Welcome!

SOA & WOA Authors: David Deans, Salvatore Genovese, Yeshim Deniz, Christopher Keene, Dave Haynes

Related Topics: SOA & WOA

SOA & WOA: Article

ESB Technology & Innovation

Extending Web services with asynchronous message delivery and intelligent routing

Called to larger tasks, messaging technology is now in a phase of evolution. A mixed message model is needed to combine the best of Web services and traditional asynchronous message delivery to provide the flexibility required for today's real-time enterprise.

Traditional message-queuing middleware will soon be replaced by enterprise service bus (ESB) technology - taking messaging to the next level. The new ESB backbone, which will enable the next generation of integration and application platform products, will bring radical improvements to the software infrastructure of most enterprises. The industry transition to messaging and ESB as the core application platform infrastructure model will mark an inflection point - triggering a massive new wave of innovation around businesses' use of their information resources; capitalizing on the architecture of events. This will dispel any recently raised doubts about the critical role that IT can play in strategic business differentiation.

Introduction

Over the last decade, competitive pressures have combined with technology to fundamentally change the rhythm of business. In the past businesses could make decisions based on month-end batch reporting. Now, just-in-time processes mean that this morning's raw materials glitch or power cut becomes this afternoon's inability to deliver and invoice finished goods. The business has to react more and more quickly to unexpected events - otherwise, it goes to the wall. The "zero latency enterprise" has finally arrived.

Today's enterprise environments have grown piecemeal to meet this challenge. "Islands of computing" - isolated functional or departmental stovepipes of application and data - are supported by heterogeneous storage, networks, and hardware, making utilization and management overly complex and resource-intensive. This complexity is an obstruction to the most pivotal challenges that an enterprise must face:

  • To meet continuously growing demands for rich information services delivered through a variety of channels
  • To manage infrastructure to meet changing business requirements in real time.
  • To diversify business offerings to flexibly grow the business and mitigate economic risks associated with stagnant product lines
  • To guarantee customers, partners, and employees quick and high-quality responses to requests for information services
The rapid evolution of EAI, B2B, and application development segments over the last few years has led to the development of several key technologies and standards that have driven dramatic advances in the infrastructure space:
  • XML has arrived as the universal, self-describing data exchange format for the majority of applications. Web-oriented information exchange and the infrastructure behind it, together with XML, have made the use of Web services inevitable.
  • Java has been accepted as a major technology to use on the server side, and J2EE has been accepted as the standard for application servers.
  • The use of an enterprise message bus for both transactional message exchange and real-time event notification has become standardized around the Java Message Service (JMS).
  • A common management framework for server-side components has been realized through Java Management Extension (JMX) standards.
Infrastructures Must Behave the Way a Business Behaves
The ever-changing market requires the delivery of rich information services through diverse channels. The next-generation enterprise calls for loosely federated resources sharing a common communication and management infrastructure across multiple domains. Enterprise infrastructure has to behave the way a bricks-and-mortar business behaves, allowing the dynamic management of resources to meet fluctuating demand from customers and partners at the same time as dealing with changes in the supply and availability of system resources. Enterprise applications also require a standards-based collaboration model to maximize the utilization of this infrastructure. To achieve this, the real-time enterprise uses best practices from real-time infrastructure and server-side grid technologies.

The Components of the Real-Time Enterprise

The real-time enterprise is founded on some of the same concepts used to define server-side grid environments, and a structure similar to Gartner's five-layer grid technology model can be used to describe its core components (see Table 1).

An ESB builds on existing widely adopted technologies and open standards to provide an adaptable distributed architecture for services collaboration, management, and control. The ESB supports runtime deployment of business services anywhere in the enterprise and provides services for collaboration and notification as part of its core infrastructure. Let's see how ESB technology maps onto the five layers of the model.

Infrastructure Resources and Virtual Operating System
Layer 0 consists of the infrastructure resources, including networks, servers, storage, and operating system environments for each server. Layer 1 sits above the infrastructure layer and establishes a distributed operating system across multiple resources that support functions such as work scheduling, integrating resource names into a global structure, and ensuring consistent authentication across disparate systems.

Although Gartner places J2EE as a Layer 2 technology, we believe the combination of distributed JMX and a J2EE-based application server has the characteristics of a virtual operating system. Using a container or micro-kernel that provides hot deployment and full JMX management of all components and services allows remote activation and management of services.

JMX as a technology was originally designed to manage individual agents, such as an application server. By combining JMX with JMS, its scope can be extended to manage individual agents, clusters, or loosely coupled federations (super-clusters, if you like), allowing complete life-cycle and deployment management of a federated ESB infrastructure. Because JMX also integrates with more traditional management protocols such as SNMP, the ESB infrastructure can provide on-demand hot deployment and self-annealing infrastructure across Java, Web services, and legacy platforms.

Distributed Programming Model
A distributed programming model forms Layer 1 of the real-time enterprise: core infrastructure that enables collaboration and notification between applications and services - whether internal or external. The ESB provides event notification, dynamic routing, and transactional guaranteed delivery; and a well-defined process language is used to allow applications to coordinate activities through a common API.

The real-time enterprise demands the ability to move the right data to the right place at the right time; JMS (the Java Message Service) provides the means for event distribution and transactional guaranteed delivery. An intelligent data fabric is also needed that can distribute information around the network for when it is required in order to increase throughput and reduce load on expensive back-end systems. The backbone of this fabric is formed by JCache - the Java universal caching framework.

A Linda-like tuple space combines the "one and only one" delivery semantics of a message queue with the broadcast capability of publish/subscribe and the loose coupling of a peer-to-peer system. A tuple space acts like an associative memory shared by an unlimited number of processes. Processes can add a tuple (essentially, a data object) into the space, or take a tuple out to work on exclusively - waiting until there is a matching object if necessary. Processes can also read tuples without removing them from the space. This paradigm - which combines the "one and only one" delivery semantics of a message queue with the broadcast capability of publish/subscribe and the loose coupling of a peer-to-peer system - is mapped on top of JCache, providing a high performance distributed implementation of the concept.

This can be combined with a business process model engine (for example, jBpm: www.jbpm.org) to provide a rich set of distributed programming domains. Each process works independently of others - taking appropriate inputs from the tuple space and placing outputs back there for successor tasks. The order in which processes execute on a tuple can be less tightly constrained than in a traditional workflow system. This model provides distributed shared memory, generic clustering, parallel computing, and therefore the foundations for distributed workflow and BPM.

Applications
The applications that form Layer 3 of the real-time enterprise depend on the resources of the enterprise infrastructure and communicate with each other using a collaborative programming model. Rather than developing monolithic or simple two-tier client/server applications, architects are realizing the benefits of a more loosely coupled and multi-layered component model. The adoption of standards for definition, discovery, and actual execution of this model (such as WSDL, UDDI, and SOAP for Web services) has helped to bring service-oriented architectures to fruition.

The J2EE application server that forms the basis of the virtual operating system provides a transactional secure service-based integration point for the infrastructure. As a distributed ESB is a grid-like enabling technology, a Web services interface based on the OGSI open source definitions is a natural choice. OGSI is currently the de facto standard for externalizing grid technologies and allows grid services written in one environment to be easily deployed in others.

In addition, the ESB can offer a scalable rules engine based on an optimized Rete algorithm. Externalizing business rules makes it possible to manage rapidly changing business processes, decision mechanisms and, at a lower level, message filtering and routing, without requiring code-level changes to underlying applications. That frees the business from its dependency on tardy code development cycles, allowing business-aware analysts to make the changes necessary to support the introduction of new products or regulatory requirements without interrupting system operations.

Administrative Support
The real-time enterprise requires services to manage and coordinate applications and their services at both the macro and micro levels. Layer 4 provides the administrative support necessary for implementing security polices, defining resource usage guidelines, and integrating operational processes. Essential capabilities include:

  • Monitoring: Collating events and statistics in order to understand application performance, resource usage, and operational behavior. This allows for simulation, fault determination, and manual and automatic balancing of resource utilization throughout the infrastructure.
  • Reactive coordination: Requiring intelligent management, control, self-annealing, and tuning of applications by heuristic analysis, dynamic rules, and flexible workflow. Through the use of efficient dynamic topologies (running the right number of applications in the right locations), the real-time enterprise manages utilization load and chooses the right hardware and location to run applications.
The ESB management fabric combines distributed JMX with statistical event collection and correlation, and the same standards-based Java rules framework that is used at the application level. This provides location transparency, discovery, remote control and collation of statistics for resource usage, performance monitoring and alert notification. These technologies allow predictive decisions to be made about the environment for intelligent resource visualization, orchestration, and provisioning throughout the real-time enterprise, delivering insight to both IT and business managers.

Conclusion

Using a distributed enterprise service bus, businesses can maximize the utilization of their existing investments in hardware and software by using standards to provide an agile real-time "service on demand" infrastructure. This agile infrastructure:
  • Provides technologies that actively align IT resources so that business leaders can transform core information services to meet a changing market
  • Creates a unified IT foundation built on open standards that enables flexible change for future requirements
  • Lowers the cost of the IT infrastructure while maintaining high levels of performance.
These goals are achieved through a rich combination of enterprise messaging, real-time caching, and distributed active management technologies. The result is an IT foundation that comes with a lower overall cost to the business and a greater ability to meet business change as it happens. Through its reliance on standards, this real-time infrastructure pulls disparate technologies together into a continuous fabric that provides the means to rapidly align software and hardware infrastructure to serve the enterprise's real-time business needs.

More Stories By Nigel Thomas

Nigel Thomas offers independent product marketing consultancy in the application infrastructure software market place, and can be contacted at nigel.thomas@lyntonresearch.com.

Nigel recently spent two years as Director of Product Management for SpiritSoft's Java messaging, caching and integration products. Prior to that, he spent five years with EAI pioneer Constellar as product architect and then director of product management for the flagship Constellar Hub product. Nigel spent over eight years at Oracle Corporation, architecting and delivering Oracle's Accounting products and then moving on to worldwide performance consulting and CASE development assignments.

More Stories By Robert Davies

Rob Davies, director of open source development at IONA, has more than 20 years of experience developing high-performance distributed enterprise systems and products for telecom and finance corporations. He is responsible for leading the development of IONA's FUSE family of open source products, which are based on leading projects at the Apache Software Foundation. Rob is a founder of the Apache ActiveMQ, Apache ServiceMix and Apache Camel projects. Prior to joining IONA, Rob served as the founder and vice president of product development at LogicBlaze, which was acquired by IONA in 2007. Previously, Rob served as founder and CTO of integration software developer SpiritSoft.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.