HOME

TheInfoList



OR:

An enterprise service bus (ESB) implements a communication system between mutually interacting software applications in a
service-oriented architecture In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. By consequence, it is also applied in the field of software design where services are provide ...
(SOA). It represents a
software architecture Software architecture is the fundamental structure of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations. ...
for distributed computing, and is a special variant of the more general client-server model, wherein any application may behave as server or client. ESB promotes agility and flexibility with regard to high-level protocol communication between applications. Its primary use is in
enterprise application integration Enterprise application integration (EAI) is the use of software and computer systems' architectural principles to integrate a set of enterprise computer applications. Overview Enterprise application integration is an integration framework comp ...
(EAI) of heterogeneous and complex service landscapes.


Architecture

The concept of the enterprise service bus is analogous to the
bus A bus (contracted from omnibus, with variants multibus, motorbus, autobus, etc.) is a road vehicle that carries significantly more passengers than an average car or van. It is most commonly used in public transport, but is also in use for cha ...
concept found in computer hardware architecture combined with the modular and concurrent design of high-performance computer operating systems. The motivation for the development of the architecture was to find a standard, structured, and general purpose concept for describing implementation of loosely coupled software components (called
services Service may refer to: Activities * Administrative service, a required part of the workload of university faculty * Civil service, the body of employees of a government * Community service, volunteer service for the benefit of a community or a p ...
) that are expected to be independently deployed, running, heterogeneous, and disparate within a network. ESB is also a common implementation pattern for
service-oriented architecture In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. By consequence, it is also applied in the field of software design where services are provide ...
, including the intrinsically adopted network design of the
World Wide Web The World Wide Web (WWW), commonly known as the Web, is an information system enabling documents and other web resources to be accessed over the Internet. Documents and downloadable media are made available to the network through web ...
. No global standards exist for enterprise service bus concepts or implementations. Most providers of
message-oriented middleware Message-oriented middleware (MOM) 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 comple ...
have adopted the enterprise service bus concept as ''de facto'' standard for a service-oriented architecture. The implementations of ESB use
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 ...
and standards-based message-oriented middleware in combination with
message queue In computer science, message queues and mailboxes are software-engineering components typically used for inter-process communication (IPC), or for inter- thread communication within the same process. They use a queue for messaging – the ...
s as technology frameworks. However, some software manufacturers relabel existing middleware and communication solutions as ESB without adopting the crucial aspect of a bus concept.


Functions

An ESB applies the design concept of modern
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
s to independent services running within networks of disparate and independent computers. Like concurrent operating systems, an ESB provides commodity services in addition to adoption, translation and routing of client requests to appropriate answering services. The primary duties of an ESB are: * Route messages between services * 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 * Provide commodity services like event handling, data transformation and mapping, message and event queuing and sequencing, security or
exception handling In computing and computer programming, exception handling is the process of responding to the occurrence of ''exceptions'' – anomalous or exceptional conditions requiring special processing – during the execution of a program. In general, an ...
, protocol conversion and enforcing proper quality of communication service.


History

The first published usage of the term "enterprise service bus" is attributed to Roy W. Schulte from the Gartner Group 2002 and the book ''The Enterprise Service Bus'' by David Chappell. Although a number of companies take credit for coining the phrase, in an interview, Schulte said that the first time he heard the phrase was from a company named Candle and went on to say: "The most direct ancestor to the ESB was Candle’s Roma product from 1998" whose Chief Architect and patent application holder was Gary Aven. Roma was first sold in 1998 making it the first commercial ESB in the market, but that Sonic's product from 2002 was also one of the early ESBs on the market. * 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 A bus (contracted from omnibus, with variants multibus, motorbus, autobus, etc.) is a road vehicle that carries significantly more passengers than an average car or van. It is most commonly used in public transport, but is also in use for cha ...
* 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


ESB as software

The ESB is implemented in software that operates 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 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 transmits and receives. 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 has 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 An adapter or adaptor is a device that converts attributes of one electrical device or system to those of an otherwise incompatible device or system. Some modify power or signal attributes, while others merely adapt the physical form of one c ...
. ESBs rely on accurately constructing the enterprise message model and properly designing the functionality offered by applications. If the message model does not completely encapsulate the application functionality, then other applications that desire that functionality may have to bypass the bus, and invoke the mismatched applications directly. Doing so violates the principles of the ESB model, and negates many of the advantages of using this architecture. The beauty of the ESB lies in its platform-agnostic nature and the ability to integrate with anything at any condition. It is important that
Application Lifecycle Management Application lifecycle management (ALM) is the product lifecycle management (governance, development, and maintenance) of computer programs. It encompasses requirements management, software architecture, computer programming, software testing, ...
vendors truly apply all the ESB capabilities in their integration products while adopting SOA. Therefore, the challenges and opportunities for EAI vendors are to provide an integration solution that is low-cost, easily configurable, intuitive, user-friendly, and open to any tools customers choose.


Characteristics

¹ ''Some do not regard process choreography as an ESB function. For example, see M.Richards. ² ''While process choreography supports implementation of complex business processes that require coordination of multiple business services (usually using
BPEL The Web Services Business Process Execution Language (WS-BPEL), commonly known as BPEL (Business Process Execution Language), is an OASIS standard executable language for specifying actions within business processes with web services. Process ...
), service orchestration enables coordination of multiple implementation services (most suitably exposed as an aggregate service) to serve individual requests.'' These solutions often focus on low-level ESB functions, such as connectivity, routing and transformation, and require coding or scripting to implement orchestration. Developers operating at a project or tactical level, e.g., just trying to fix a problem, often gravitate toward lightweight service bus technologies, but there is often ongoing tension between these initiatives and an enterprise architecture whose goal it is to optimize infrastructure across multiple projects. If the message broker, the ESB software, translates a message from one format to another, then as with any translation, there is the issue of semantics of the message. For example, a record can be translated from JSON to XML, but the same set of fields can be interpreted differently by different applications, specifically in the case of the various corner cases that are usually known only to developers that have extensive experience with the application that is connected to the ESB. For the known corner cases the number of tests that cover all corner cases increases exponentially with every application that is connected to the ESB, because every ESB-connected application must be tested against every other application that is connected to the ESB.


Key benefits

* Scales from point-solutions to enterprise-wide deployment (distributed bus) * More configuration rather than integration coding * No central rules-engine, no central broker * Easy plug-in and plug-out and loosely coupling system


Key disadvantages

* Slower communication speed, especially for those already compatible services *
Single point of failure A single point of failure (SPOF) is a part of a system that, if it fails, will stop the entire system from working. SPOFs are undesirable in any system with a goal of high availability or reliability, be it a business practice, software appl ...
, can bring down all communications in the Enterprise * High configuration and maintenance complexity


Products

Notable products include: * Proprietary ** Candle's Roma ESB - bought by IBM and became WebSphere ESB ** IBM App Connect, formerly IBM Integration Bus and IBM WebSphere ESB **
InterSystems InterSystems Corporation is a privately held vendor of software systems and technology for high-performance database management, rapid application development, integration, and healthcare information systems. The vendor's products includInter ...
Ensemble ** Information Builders iWay Service Manager ** Microsoft Azure Service Bus **
Microsoft BizTalk Server Microsoft BizTalk Server is an inter-organizational middleware system (IOMS) that automates business processes through the use of ''adapters'' which are tailored to communicate with different software systems used in an enterprise. Created by M ...
** Mule ESB **
Oracle Enterprise Service Bus Oracle Enterprise Service Bus (Oracle ESB), a fundamental component of Oracle's Services-Oriented Architecture suite of products, provides integration of data and enterprise applications within an organisation and their connected ( "extended" or ...
**
Progress Software Progress Software Corporation (Progress) is an American public company that offers software for creating and deploying business applications. Headquartered in Burlington, Massachusetts with offices in 16 countries, the company posted revenues ...
Sonic ESB (acquired by
Trilogy A trilogy is a set of three works of art that are connected and can be seen either as a single work or as three individual works. They are commonly found in literature, film, and video games, and are less common in other art forms. Three-part wor ...
) ** SAP Process Integration **
TIBCO Software TIBCO Software Inc. is an American business intelligence software company founded in 1997 in Palo Alto, California. It has headquarters in Palo Alto, California, and offices in North America, Europe, Asia, the Middle East, Africa and South A ...
ActiveMatrix BusinessWorks **
webMethods webMethods was an enterprise software company focused on application integration, business process integration and B2B partner integration. Founded in 1996, the company sold systems for organizations to use web services to connect software app ...
enterprise service bus (acquired by
Software AG Founded in 1969, Software AG is an enterprise software company with over 10,000 enterprise customers in over 70 countries. The company is the second largest software vendor in Germany, and the seventh largest in Europe. Software AG is traded on t ...
) **
Sonic ESB Progress Software Corporation (Progress) is an American public company that offers software for creating and deploying business applications. Headquartered in Burlington, Massachusetts with offices in 16 countries, the company posted revenues ...
from Aurea ** XIATech Single Data View *
Open-source software Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Op ...
** Apache Camel **
Apache ServiceMix Apache ServiceMix is an open-source software project to implement a distributed enterprise service bus (ESB). Architecture ServiceMix is based on the service-oriented architecture (SOA) model. It is a project of the Apache Software Foundation ...
**
Apache Synapse Apache Software Foundation, Apache Synapse is a simple, lightweight and high performance open source enterprise service bus (ESB) and mediation engine. It began incubation at the Apache Software Foundation on August 22, 2005, and became a sub pr ...
**
Fuse ESB Red Hat Fuse is an open source integration platform based on Apache Camel. It is a distributed integration platform that provides a standardized methodology, infrastructure, and tools to integrate services, microservices, and application compo ...
from Red Hat ** JBoss ESB **
NetKernel NetKernel is a British software company and software platform by the same name that is used for High Performance Computing, Enterprise Application Integration, and Energy Efficient Computation. It allows developers to cleanly separate code from ar ...
**
Open ESB ''OpenESB'' is a Java-based open-source enterprise service bus. It can be used as a platform for both enterprise application integration and service-oriented architecture. OpenESB allows developers to integrate legacy systems, external and intern ...
**
Petals ESB Petals are modified leaves that surround the reproductive parts of flowers. They are often brightly colored or unusually shaped to attract pollinators. All of the petals of a flower are collectively known as the ''corolla''. Petals are usually ...
** Spring Integration **
UltraESB UltraESB is a lightweight enterprise service bus (ESB) capable of supporting many transports and message formats natively. It allows messages to be mediated via Java or JSR 223 scripting languages through an API, and is the first ESB to claim sup ...
** WSO2 ESB


See also

*
Enterprise Integration Patterns ''Enterprise Integration Patterns'' is a book by Gregor Hohpe and Bobby Woolf and describes 65 patterns for the use of enterprise application integration and message-oriented middleware in the form of a pattern language. The integration (messa ...
* Event-driven messaging *
Java Business Integration Java Business Integration (JBI) is a specification developed under the Java Community Process (JCP) for an approach to implementing a service-oriented architecture (SOA). The JCP reference is JSR 208 for JBI 1.0 and JSR 312 for JBI 2.0. JSR 312 w ...
*
Business Process Management Business process management (BPM) is the discipline in which people use various methods to discover, model, analyze, measure, improve, optimize, and automate business processes. Any combination of methods used to manage a company's business p ...
* Universal Integration Platform *
Enterprise application integration Enterprise application integration (EAI) is the use of software and computer systems' architectural principles to integrate a set of enterprise computer applications. Overview Enterprise application integration is an integration framework comp ...
*
Business Service Provider A business service provider (BSP) is one of several categories of service provider in the business world. As opposed to an application service provider which provides application components over a computer network, the services provided by a BSP a ...
*
Message Oriented Middleware Message-oriented middleware (MOM) 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 comple ...
*
Complex event processing Event processing is a method of tracking and analyzing (processing) streams of information (data) about things that happen (events), and deriving a conclusion from them. Complex event processing, or CEP, consists of a set of concepts and techniques ...
*
Event Stream Processing In computer science, stream processing (also known as event stream processing, data stream processing, or distributed stream processing) is a programming paradigm which views data streams, or sequences of events in time, as the central input and o ...
*
Event-driven programming In computer programming, event-driven programming is a programming paradigm in which the flow of the program is determined by events such as user actions (mouse clicks, key presses), sensor outputs, or message passing from other programs or thr ...
*
Comparison of Business Integration Software This article is a comparison of notable business integration and business process automation software. General Scope Scope of this comparison: * Service-oriented architecture implementations; * Message-oriented middleware and message brokers ...
* Comparison of BPEL engines * Comparison of BPMN 2.0 Engines *
Composite application In computing, a composite application is a software application built by combining multiple existing functions into a new application. The technical concept can be compared to mashups. However, composite applications use business sources (e.g., exi ...
*
Event-driven SOA Event-driven SOA is a form of service-oriented architecture (SOA), combining the intelligence and proactiveness of event-driven architecture with the organizational capabilities found in service offerings. Before event-driven SOA, the typical SOA ...
* Integration Platform as a service (iPaaS)


References


Further reading

* David Chappell, "Enterprise Service Bus" (O’Reilly: June 2004, ) * Binildas A. Christudas, "Service-oriented Java Business Integration" (Packt Publishers: February 2008, ; ) * Michael Bell, "Service-Oriented Modeling: Service Analysis, Design, and Architecture" (2008 Wiley & Sons, )


External links


"Lasting concept or latest buzzword?"
(Nicolas Farges, 2003)

(July 22, 2005)
JSR-208: Java Business Integration
(August 2005)
The Role of the Enterprise Service Bus (InfoQ - Video Presentation)
(October 23, 2006)
ESB Roundup Part One: Defining the ESB (InfoQ)
(July 13, 2006)
ESB Roundup Part Two: Use Cases (InfoQ)
(July 5, 2006)
"Services Fabric—Fine Fabrics for New Era Systems"
(Binildas A. Christudas, 2007)

(Dennis Byron, September 20, 2007)
Aggregate Services in ServiceMix JBI ESB: PACKT Publishers
(Binildas A. Christudas, November 30, 2007)
ESB Topology alternatives
(InfoQ, A. Louis, May 23, 2008)
Rethinking the ESB: Building a Simple, Secure, Scalable Service Bus with a SOA Gateway
(Computerworld, J. Ryan, 2011) *

(IBM developer Works, Greg Flurry and Kim Clark, May 2011) {{DEFAULTSORT:Enterprise Service Bus Enterprise application integration Message-oriented middleware Service-oriented (business computing) Software architecture