Enterprise service bus
Encyclopedia
An enterprise service bus (ESB) is a software architecture
Software architecture
The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both...

 model used for designing and implementing the interaction and communication between mutually interacting software applications in Service Oriented Architecture. As a software architecture model for distributed computing it is a specialty variant of the more general client server software architecture model and promotes strictly asynchronous message oriented design
Message-oriented middleware
Message-oriented middleware is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complexity of developing applications that span multiple...

 for communication and interaction between applications. Its primary use is in Enterprise Application Integration
Enterprise application integration
Enterprise Application Integration is defined as the use of software and computer systems architectural principles to integrate a set of enterprise computer applications.- Overview :...

 of heterogeneous and complex landscapes.

Overview

The concept has been developed in analogy to the Bus concept found in computer hardware architecture
Computer architecture
In computer science and engineering, computer architecture is the practical art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals and the formal modelling of those systems....

 combined with the modular and concurrent design of high-performance computer operating systems. Motivation was to find a standard, structured and general purpose concept for describing implementation of loosely coupled software components (called: services) that are expected to be independently deployed, running, heterogeneous and disparate within a network. ESB is also the intrinsically adopted network design of the World Wide Web
World Wide Web
The World Wide Web is a system of interlinked hypertext documents accessed via the Internet...

 and the common implementation pattern for Service Oriented Architecture.

Duties of an ESB

An ESB transports the design concept of modern operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s to networks of disparate and independent computers. Like concurrent operating systems an ESB caters for commonly needed commodity services in addition to adoption, translation and routing of a client request to the appropriate answering service.

The prime duties of an ESB are:
  • Monitor and control routing of message exchange between services
  • Resolve contention between communicating service components
  • Control deployment and versioning of services
  • Marshal use of redundant services
  • Cater for commonly needed commodity services like event handling and event choreography, data transformation and mapping, message and event queuing and sequencing, security or exception handling, protocol conversion and enforcing proper quality of communication services

ESB and Atomic Services

An ESB generally provides an abstraction layer
Abstraction layer
An abstraction layer is a way of hiding the implementation details of a particular set of functionality...

 on top of an implementation of an enterprise messaging system
Enterprise messaging system
An enterprise messaging system is a set of published Enterprise-wide standards that allows organizations to send semantically precise messages between computer systems. EMS systems promote loosely coupled architectures that allow changes in the formats of messages to have minimum impact on...

. In order for an integration broker to be considered a true ESB, it would need to have its base functions broken up into their constituent and atomic parts. The atomic components would then be capable of being separately deployed across the bus while working together in harmony as necessary.

Ambiguous Use of the Term ESB in Commerce

There is no commonly accepted definition of the term ESB.
Most modern providers of Message-oriented middleware
Message-oriented middleware
Message-oriented middleware is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complexity of developing applications that span multiple...

 have adopted the ESB concept as de facto standard for SOA. Today's implementations of ESB use event-driven
Event-driven
Event driven may refer to:The term event-driven refers to a methodology that focuses on events and event dependencies.Examples include:* Event-driven finite-state machine, finite-state machine where the transition from one state to another is triggered by an event or a message* Event-driven...

 and standards-based Message-oriented middleware
Message-oriented middleware
Message-oriented middleware is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complexity of developing applications that span multiple...

 in combination with message queue
Message queue
In computer science, message queues and mailboxes are software-engineering components used for interprocess communication, or for inter-thread communication within the same process. They use a queue for messaging – the passing of control or of content...

s as technology frameworks. Unfortunately confusion is occasionally caused by software manufacturers who relabel their existing middleware and communication solutions as ESB without adopting the crucial spirit of a bus concept.

History and Name

The first usage of the term Enterprise Service Bus is attributed to Analyst Roy W. Schulte from the Gartner Group 2002[2] and the book "The Enterprise Service Bus" by David Chappell from SONIC Software[3]. However, there is common belief that the term has been used for many years before.
  • Service - denotes non-iterative and autonomously executing programs that communicate with other services through message exchange
  • Bus - is used in analogy to a computer hardware bus
  • Enterprise - the concept has been originally invented to reduce complexity of enterprise application integration within an enterprise; the restriction has become obsolete since modern Internet communication is no longer limited to a corporate entity


In fact, the term "bus" was created in the '80s by Teknekron Software Systems. Frustrated by how software seemed to always under-deliver, while hardware was always on time and under budget, Vivek Ranadivé set out to build software based on the premise of a "Software Bus" (which later became known as "The Information Bus," a.k.a. TIB), where a "bus" is the standard data highway by which various elements – like a computer system such as the CPU, the memory, the I/O devices, etc. — communicate. This concept would allow for the "tight" coupling of applications.

In 1986, Teknekron embarked on a consulting project with Goldman Sachs to redefine the "trading floor of the future" applying this approach. In 1987, the first TIB — for the integration and delivery of market data such as stock quotes, news and other financial information — went live at Fidelity, followed by First Interstate Bank, then Salomon, eventually digitizing all of Wall Street. Teknekron was later acquired by Reuters in 1994 to expand its use of the Information Bus in the financial services markets. In January 1997, Ranadivé founded TIBCO Software Inc. to create and market software for use in the integration of business applications outside the financial services sector. In 1998, TIBCO Software released TIB/ActiveEnterprise suite. In July 1999, TIBCO went public on the NASDAQ Stock Market under the ticker symbol TIBX. TIBCO stands for The Information Bus Company.

ESB Architecture

ESB is a modular and component based architecture
Component-based software engineering
Component-based software engineering is a branch of software engineering that emphasizes the separation of concerns in respect of the wide-ranging functionality available throughout a given software system...

. It assumes that services are generally autonomous and availability of a service at a certain moment of time cannot be guaranteed. Therefore messages need to be routed consequently through the message bus for buffering (message queuing
Message queue
In computer science, message queues and mailboxes are software-engineering components used for interprocess communication, or for inter-thread communication within the same process. They use a queue for messaging – the passing of control or of content...

) to allow inspection and enhancement of content as well as filtering, correction and rerouting of message flow.

Managed Message Processing

The word “bus” reflects the analogy to a computer hardware bus that is common architecture in computer design today. Like in a computer bus it is the basic concept to allow applications to be easily plugged in and out (switched on and off) the network without impact on other components and without the need to restart the system or even stop running applications.

In an enterprise architecture
Enterprise architecture
An enterprise architecture is a rigorous description of the structure of an enterprise, which comprises enterprise components , the externally visible properties of those components, and the relationships between them...

 that makes use of an ESB, an application will communicate via the bus, which acts as the single message turntable between applications. That approach reduces the number of point-to-point connections between communicating applications. This, in turn, makes impact analysis for major software changes simpler and more straightforward. By reducing the number of points-of-contact from and to a particular application, it is easier to monitor for failure and misbehavior in highly complex systems and allows easier changing of components.

It is an essential design concept of an ESB that every client directs all its requests through the ESB instead of passing it directly to a potential server. This indirection allows the ESB to monitor and log the traffic. The ESB can then intervene in message exchange and overwrite standard rules for service execution. Possible uses of an intervention are:
  • Buffer and delay a message in a staging area and automatically deliver it when the receiver is ready.
  • Monitor Messages and services to be well-behaving.
  • Enforce compliance with dynamic processing and security policies.
  • Marshal service execution based on dynamic rules.
  • Prioritize, delay, and reschedule message delivery and service execution.
  • Write logs and raise exception alerts.

ESB Commodity Services

An ESB hosts a large collection of services. There will be many commodity services that are useful and regularly needed by other services. Most services deal with directing and marshalling the routing of messages, doing common and often needed data transformations. Popular commodity service are compressing and encrypting data, splitting data into smaller chunks, filter unwanted data, extract routing information from the content via a rule engine.

Basic commodity services rendered by an ESB are the transformation and conversion of multiple protocols. Delegation of protocol conversion, mapping and transformation to an ESB gives services of many different legacies a convenient and standardized way to easily plug into the bus system, no matter which protocol it decides to use to initiate a request or the response needs to be delivered in. That way even older and exotic legacy systems can be easily hooked up into the SOA without requiring the service client to adapt itself to it.

Commonly needed commodity services
  • Event handling - guarantee event processing
  • protocol conversion - transparently translate between communication protocols (e.g. HTTP, FTP, REST, SOAP, JSON, DCOM, CORBA, SAP RFC etc.)
  • Mapping - Transfer between tabular data formats
  • Translation and transformation - Change data content based on rules
  • Queuing and buffering - Handle differing data processing speeds between sender and receiver

ESB and Message Queueing

A mandatory and hence characteristic component of an ESB is a staging (buffering) component that usually is implemented as a message queue
Message queue
In computer science, message queues and mailboxes are software-engineering components used for interprocess communication, or for inter-thread communication within the same process. They use a queue for messaging – the passing of control or of content...

 and can be controlled and used by internal and external services at discretion. The message queue is required to cope with differing handling speed and temporary failure of services as well as being able to reschedule processing in case of a processing error of a service.

ESB as software

In such a complex architecture, the ESB represents the piece of software that lives between the business applications and enables communication among them. Ideally, the ESB should be able to replace all direct contact with the applications on the bus, so that all communication takes place via the ESB. To achieve this objective, the ESB must encapsulate
Information hiding
In computer science, information hiding is the principle of segregation of the design decisions in a computer program that are most likely to change, thus protecting other parts of the program from extensive modification if the design decision is changed...

 the functionality offered by its component applications in a meaningful way. This typically occurs through the use of an enterprise message model. The message model defines a standard set of messages that the ESB will both transmit and receive. When the ESB receives a message, it routes the message to the appropriate application. Often, because that application evolved without the same message-model, the ESB will have to transform the message into a format that the application can interpret. A software “adapter” fulfills the task of effecting these transformations (analogously to a physical adapter
Adapter
An adapter or adaptor is a person that adapts or a device that converts attributes of one device or system to those of an otherwise incompatible device or system.Some adapters may only affect physical attributes:...

). Commentators disagree whether or not these adapters should be considered part of the ESB.

ESBs rely on accurately connecting the enterprise message model and the functionality offered by applications. If the message model does not completely encapsulate the applications’ functionality, then other applications that desire that functionality may have to bypass the bus, and invoke
Invocational media
Invocational media are communication technologies based on digital computers. Invocational media infrastructures assign names to given entities , and perform events to call up these named entities from invocable domains on demand Invocational media are communication technologies based on digital...

 the mismatched applications directly. Doing so violates all of the principles outlined above, and negates many of the advantages of using an ESB.

Salient characteristics

Most observers accept certain core capabilities as functions of an ESB:
Category Functions
Invocation support for synchronous and asynchronous transport protocols, service mapping (locating and binding)
Routing addressability, static/deterministic routing, content-based routing, rules-based routing, policy-based routing
Mediation adapters, protocol transformation, service mapping
Messaging message-processing, message transformation and message enhancement
Process choreography implementation of complex business processes
Service orchestration
Orchestration (computers)
Orchestration describes the automated arrangement, coordination, and management of complex computer systems, middleware, and services.It is often discussed as having an inherent intelligence or even implicitly autonomic control, but those are largely aspirations or analogies rather than technical...

²
coordination of multiple implementation services exposed as a single, aggregate service
Complex event processing
Complex Event Processing
Complex event processing consists of processing many events happening across all the layers of an organization, identifying the most meaningful events within the event cloud, analyzing their impact, and taking subsequent action in real time....

event-interpretation, correlation, pattern-matching
Other quality of service
Quality of service
The quality of service refers to several related aspects of telephony and computer networks that allow the transport of traffic with special requirements...

security (encryption and signing), reliable delivery, transaction management
Management
Systems management
Systems management refers to enterprise-wide administration of distributed systems including computer systems. Systems management is strongly influenced by network management initiatives in telecommunications....

monitoring, audit, logging, metering, admin console, BAM
Business activity monitoring
Business activity monitoring is software that aids in monitoring of business activities, as those activities are implemented in computer systems....

 (BAM is not a management capability in other words the ESB doesn’t react to a specific threshold. It is a business service capability surfaced to end users. )
Agnosticism
Agnosticism
Agnosticism is the view that the truth value of certain claims—especially claims about the existence or non-existence of any deity, but also other religious and metaphysical claims—is unknown or unknowable....

general agnosticism to operating-systems and programming-languages; for example, it should enable interoperability between Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 and .NET applications
Protocol Conversion comprehensive support for topical communication protocols service standards
Message Exchange Pattern
Message Exchange Pattern
In software architecture, a messaging pattern is a network-oriented architectural pattern which describes how two different parts of a message passing system connect and communicate with each other....

s
support for various MEPs (Message Exchange Pattern
Message Exchange Pattern
In software architecture, a messaging pattern is a network-oriented architectural pattern which describes how two different parts of a message passing system connect and communicate with each other....

s) (for example: synchronous request/response, asynchronous request/response, send-and-forget, publish/subscribe)
Adapters adapters for supporting integration with legacy systems, possibly based on standards such as JCA
Security a standardized security-model to authorize, authenticate and audit use of the ESB
Transformation facilitation of the transformation of data formats and values, including transformation services (often via XSLT
XSL Transformations
XSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,...

 or XQuery
XQuery
- Features :XQuery provides the means to extract and manipulate data from XML documents or any data source that can be viewed as XML, such as relational databases or office documents....

) between the formats of the sending application and the receiving application
Validation validation against schemas for sending and receiving messages
Governance
SOA Governance
SOA governance is a concept used for activities related to exercising control over services in a service-oriented architecture . SOA governance can be seen as a subset of IT governance which itself is a subset of corporate governance. The focus is on those resources to be leveraged for SOA to...

the ability to apply business rules uniformly
Enrichment enriching messages
Event-driven SOA
Event-driven SOA is a form of service-oriented architecture , combining the intelligence and proactiveness of event-driven architecture with the organizational capabilities found in service offerings...

 from other sources
Split and Merge the splitting and combining of multiple messages and the handling of exceptions
Abstraction the provision of a unified abstraction across multiple layers
Routing and Transformation routing or transforming messages conditionally, based on a non-centralized policy (without the need for a central rules-engine)
Queuing and staging queuing, holding messages if applications temporarily become unavailable or work at different speeds
Commodity Services provisioning of commonly used functionality as shared services depending on context


² While process choreography supports implementation of complex business processes that require coordination of multiple business
Business
A business is an organization engaged in the trade of goods, services, or both to consumers. Businesses are predominant in capitalist economies, where most of them are privately owned and administered to earn profit to increase the wealth of their owners. Businesses may also be not-for-profit...

 services (usually using BPEL), service orchestration enables coordination of multiple implementation services (most suitably exposed as an aggregate service) to serve individual requests..

Key benefits

  • Increased flexibility; easier to change as requirements change.
  • Scales from point-solutions to enterprise-wide deployment (distributed bus).
  • More configuration rather than integration coding.
  • No central rules-engine, no central broker.
  • Incremental patching
    Patch (computing)
    A patch is a piece of software designed to fix problems with, or update a computer program or its supporting data. This includes fixing security vulnerabilities and other bugs, and improving the usability or performance...

     with zero down-time; enterprise becomes "refactorable".

Key disadvantages

  • Increase overhead, slow down communication speed; especially for those already compatible services.

See also

  • Enterprise Integration Patterns
    Enterprise Integration Patterns
    Enterprise Integration Patterns is a book by Gregor Hohpe and Bobby Woolf and describes a number of design patterns for the use of enterprise application integration and message-oriented middleware....

  • Java Business Integration
    Java Business Integration
    Java Business Integration is a specification developed under the Java Community Process for an approach to implementing a service-oriented architecture . The JCP reference is JSR 208 for JBI 1.0 and JSR 312 for JBI 2.0....

  • Business Process Management
    Business process management
    Business process management is a holistic management approach focused on aligning all aspects of an organization with the wants and needs of clients. It promotes business effectiveness and efficiency while striving for innovation, flexibility, and integration with technology. BPM attempts to...

  • Universal Integration Platform
    Universal integration platform
    A universal integration platform is a development- and/or configuration-time analog of a universal server. The emphasis on the term: "platform" implies a middleware environment from which integration oriented solutions are derived...

  • Enterprise application integration
    Enterprise application integration
    Enterprise Application Integration is defined as the use of software and computer systems architectural principles to integrate a set of enterprise computer applications.- Overview :...

  • Business Service Provider
    Business service provider
    Business service providers are companies that offer state-of-the-art business applications over the Web. These are Application service providers where applications are built as service-based applications...

  • Message Oriented Middleware
  • Complex event processing
    Complex Event Processing
    Complex event processing consists of processing many events happening across all the layers of an organization, identifying the most meaningful events within the event cloud, analyzing their impact, and taking subsequent action in real time....

  • Event Stream Processing
    Event Stream Processing
    Event stream processing, or ESP, is a set of technologies designed to assist the construction of event-driven information systems. ESP technologies include event visualization, event databases, event-driven middleware, and event processing languages, or complex event processing...

  • Event-driven programming
    Event-driven programming
    In computer programming, event-driven programming or event-based programming is a programming paradigm in which the flow of the program is determined by events—i.e., sensor outputs or user actions or messages from other programs or threads.Event-driven programming can also be defined as an...

  • Comparison of Business Integration Software
    Comparison of business integration software
    This article is a comparison of business integration and business process automation software.-Scope:Scope of this comparison:* Service-oriented architecture implementations;* Message-oriented middleware and message brokers;...

  • Comparison of BPEL engines
    Comparison of BPEL engines
    This article is a comparison of BPEL and BPMN engines.- See also :* Business Process Execution Language* Comparison of business integration software...

  • Event-driven SOA
    Event-driven SOA
    Event-driven SOA is a form of service-oriented architecture , combining the intelligence and proactiveness of event-driven architecture with the organizational capabilities found in service offerings...


Commercial and Open Source Products

A more complete overview can also be found in the Comparison of business integration software
Comparison of business integration software
This article is a comparison of business integration and business process automation software.-Scope:Scope of this comparison:* Service-oriented architecture implementations;* Message-oriented middleware and message brokers;...

 in Wikipedia.

  • Commercial
    • SoftwareAG - webMethods
      WebMethods
      webMethods is an enterprise software company, acquired by Software AG, focused on application integration, business process integration and B2B partner integration. Founded in 1996, the company pioneered the use of web services to connect software applications together within a single organization...

       Enterprise Service Bus (ESB)
    • TIBCO Software
    • IBM WebSphere ESB
      IBM WebSphere ESB
      IBM WebSphere ESB provides an Enterprise Service Bus for IT environments built on open standards, SOA, messaging and Web services technologies of WebSphere Application Server. WebSphere ESB is a Java centric ESB that has strong integration with Web services-based connectivity and service-oriented...

    • Microsoft BizTalk Server
      Microsoft BizTalk Server
      Microsoft BizTalk Server, often referred to as simply "BizTalk", is an Enterprise Service Bus. Through the use of "adapters" which are tailored to communicate with different software systems used in an enterprise, it enables companies to automate business processes...

    • Oracle Enterprise Service Bus
      Oracle Enterprise Service Bus
      Oracle Enterprise Service Bus is a fundamental component of Oracle's Services-Oriented Architecture that provides a loosely-coupled framework for inter-application messaging....

       (BEA Logic)
    • Progress Sonic ESB
      Progress Software
      Progress Software Corporation , formerly Data Language Corporation, is an American software company that sells business application infrastructure software. Its best known product is the OpenEdge ABL , which was developed in the early 1980s. The best known application written in Progress is...

    • Fiorano SOA Platform
    • IONA
      IONA Technologies
      IONA Technologies was an Irish software company. It was founded in 1991.The company began life as a campus company in Trinity College, Dublin and maintains headquarters in Dublin, Boston and Tokyo....


  • Open Source
    • Apache ServiceMix
      Apache ServiceMix
      Apache ServiceMix is an enterprise-class open-source distributed enterprise service bus and service-oriented architecture . It was built from the ground up on the semantics and APIs of the Java Business Integration specification JSR 208 and released under the Apache License...

    • Apache Synapse
      Apache Synapse
      Apache Synapse is a simple, lightweight and extremely high performance open source enterprise service bus and mediation engine. It began incubation at the Apache Software Foundation on August 22, 2005, and graduated as a sub project of the Apache Web Services project on January 2, 2007...

    • Progress Software FUSE
      FUSE (Certified Open Source SOA Solution)
      FuseSource is company that sells a set of open source software components which are tested, certified and productized distributions of Apache Software Foundation Service-oriented architecture projects....

       (Managed adoption of Apache Service Mix)
    • JBoss ESB
    • NetKernel
      NetKernel
      NetKernel is an implementation of the resource oriented computing abstraction.ROC is a logical computing model that resides on top of but is completely isolated fromthe physical realm of code and objects....

    • Petals ESB
    • Open ESB
      Open ESB
      Open ESB is a Java based open source enterprise service bus. Open ESB can be used as a platform for both Enterprise Application Integration and SOA. Open ESB is built on open standards....

    • WSO2 ESB
    • Mule
    • UltraESB
      UltraESB
      UltraESB is a lightweight enterprise service bus capable of supporting many transports and message formats natively. It allows messages to be mediated via Java or JSR 223 scripting languages over the JDK support, and is the first ESB to claim support for Zero-Copy proxying of messages.The initial...



Books

  • David Chappell, "Enterprise Service Bus" (O’Reilly: June 2004, ISBN 0-596-00675-6)
  • Binildas A. Christudas, "Service Oriented Java Business Integration" (Packt Publishers: February 2008, ISBN 1-84719-440-0; ISBN 978-1-84719-440-4)
  • Michael Bell, "Service-Oriented Modeling: Service Analysis, Design, and Architecture" (2008 Wiley & Sons, ISBN 978-0-470-14111-3)
  • Rademakers, Tijs, Dirksen, Jos, "Open-Source ESBs in Action" (2008 Manning, ISBN 1-933988-21-5), http://manning.com/rademakers/

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK