In Computing, an enterprise service bus refers to a category of middleware infrastructure products or technologies, based on Web services standards, that enable a service-oriented architecture via an event-driven and XML-based¹ messaging engine (the bus). An enterprise service bus generally provides an abstraction layer on top of an Enterprise Messaging System which allows integration architects to exploit the value of messaging without writing code.
=Common characteristics=
Although the exact definition of an ESB varies, most agree that the following are characteristics of an ESB::
it requires the clear separation of message headers and message body
it is usually operating system and language independent; it should work between Java and .Net applications, for example
it (often) uses XML and Web services to transport messages
it includes adapter standards (such as J2C) for incorporating existing applications into the bus
it includes support for asynchronous processing
it includes intelligent, content-based routing
it includes a standardized security model to authorize, authenticate, and audit use of the ESB
it includes transformation services (such as XSLT) between the format of the sending application and the receiving application, including the transformation of data formats
it includes validation against schemas for sending and receiving messages
it can uniformly apply business rules, enrichment of the message from other sources, splitting and combining of multiple messages, and the handling of exceptions
it can conditionally route or transform messages based on a central policy
it is monitored for message latency and other characteristics described in a Service Level Agreement
it (often) facilitates service classes, responding appropriately to higher and lower priority users
it supports queuing, holding messages if applications are temporarily unavailable
it handles a publish and subscribe messaging model, including event handling
=Key benefits=
faster and cheaper accommodation of existing systems
increased flexibility: easier to change as requirements change
standards-based
scales from point solutions to enterprise wide deployment
=See also=
The Information Bus (TIB)
Enterprise nervous system
Digital Nervous System
Java Business Integration
Universal Server
Service Oriented Architecture
Business Process Management
Universal integration platform
Enterprise application integration
= External links =
[http://www.infoworld.com/article/05/07/22/30FEesb_1.html Enterprise service buses hit the road : Infoworld Test Center] (July 22, 2005)
[http://publib-b.boulder.ibm.com/Redbooks.nsf/RedpieceAbstracts/sg246346.htmlOpen IBM Redbook: Implementing an SOA Using an Enterprise Service Bus] (July 2004)
[http://www.redbooks.ibm.com/abstracts/redp3908.htmlOpen IBM Redbook: Using Business Service Choreography In Conjunction With An Enterprise Service Bus] (October 2004)
[http://www.redbooks.ibm.com/redpieces/abstracts/sg246494.htmlOpen IBM Redbook: Implementing an SOA Using an Enterprise Service Bus with WebSphere Application Server V6] (March 2005)
[http://www.polarlake.com/en/assets/whitepapers/BestofBreed_ESBs.pdf Best of Breed ESBs: Identifying best-of-breed characteristics in Enterprise Service Buses (ESBs)] (2003)
[http://www.polarlake.com/en/assets/whitepapers/esb.pdf Understanding the ESB: What it is, why it matters and how to choose one] (2004)
[http://www.psgroup.com/detail.aspxID=612 Enterprise Service Bus Evaluation Framework, Criteria for Selecting an Enterprise Service Bus as an Integration Backbone ] (July 2005)
[http://www.jcp.org/en/jsr/detailid=208 Java Business Integration] (August 2005)
= ESB-related vendors =
Some have argued that an ESB is not a product, although this is no longer a common view. There are a number of vendors who offer ESB products. Here s a partial list (in alphabetical order by vendor):
[http://incubator.apache.org/synapse/index.html Apache]: Synapse (Open Source)
BEA: AquaLogic Service Bus
[http://www.brunswickwdi.com/bie BIE]: Business integration Engine
[http://www.capeclear.com Cape Clear Software]: Cape Clear 6
Cordys: [http://www.cordys.com/en/Products/Cordys_ESB_overview.htm Cordys ESB]
[http://www.fiorano.com Fiorano Software]: FioranoESB
Platform
Iona: Artix
[http://celtix.objectweb.org ObjectWeb]: Celtix (Open Source, LGPL)
[http://www.polarlake.com PolarLake]: Integration Suite
[http://www.oracle.com/solutions/integration/index.html Oracle]: Oracle Integration products
[http://www.servicemix.org ServiceMix]: ServiceMix ESB (Open Source, Apache Lic.)
Software AG: EntireX
[http://www.sonicsoftware.com Sonic Software]: Sonic ESB
or go direct to [http://www.microsoft.com/biztalk Microsoft site]
TIBCO Software
Virtuoso Universal Server
Webmethods: webMethods Fabric
[http://mule.codehaus.org/ Mule]: SymphonySoft (Open Source)
= Footnotes =
¹ An alternative view, particularly for high performance enterprise service buses, is that standard message formats should flow across the bus, not just XML. Generating XML and parsing it can be costly in terms of processing and memory, and high volume scenarios may not be viable.