Composite MaterialsRon Ten-Hove's Weblog |
|
Tuesday Apr 11, 2006
What Is Enterprise Service Bus? Enterprise Service Bus (ESB) is a way to create a service-oriented architecture. Leaving aside the marketing wars between various ESB vendors (and wanna-be vendors), the following are useful definitions of an ESB, and ones that we use in the Open ESB project. In a Sentence An Enterprise Service Bus (ESB) is a distributed middleware system for integrating enterprise IT assets using a service-oriented approach. In a Paragraph An Enterprise Service Bus (ESB) is a distributed infrastructure used for enterprise integration. It consists of a set of service containers, which integrate various types of IT assets. The containers are interconnected with a reliable messaging bus. Service containers adapt IT assets to a standard services model, based on XML message exchange using standardized message exchange patterns. The ESB provides services for transforming and routing messages, as well as the ability to centrally administer the distributed system. As a Bullet List An Enterprise Service Bus (ESB) is an infrastructure used for enterprise integration using a service-oriented approach. Its main features are:
Posted at 05:40PM Apr 11, 2006 by rtenhove in Service Oriented Architecture | Comments[4] |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Posted by Bruce Silver on April 11, 2006 at 06:40 PM EDT #
A service container in an ESB can be many things: an integration framework, a host for Java connectors, or even a BPEL engine. Containers provide and consume services; the ESB links the containers together, allowing them to interact.
I don't think it is really profitable to talk about BPMS and ESB; it is more reasonable to talk about BPMS and SOA. (ESB is just a way to create a SOA.) The BPM view of SOA has, to my mind, always been a bit shakey. BPEL is a good example. Orchestration of web services is not equivalent to business process management; web services are not equivalent to the various types of work performers in a BPMS. (I worked on workflow engines years ago, so my definition of "business process" is colored by that experience.)
Your comments about vendors is all too true; ESB has become one of those "must have" acronyms. Since ESB isn't well-defined yet, a lot of marketing muscle is being spent trying to "win" this new market in various ways. To me, ESB will always primarily mean Extra Special Bitter.
Posted by Ron Ten-Hove on April 12, 2006 at 09:19 AM EDT #
Posted by Hossam Karim on April 15, 2006 at 08:28 PM EDT #
I'm glad you found this definition helpful. The Open ESB team has found it to be helpful as well.
Your points about service orchestration are well taken. Most use cases for an ESB involve creation of composite applications, which almost always involve orchestration. I don't think we disagree there. However, I look at an ESB as a way of creating a SOA, and orchestration as a way of using a SOA. A minor distinction, to be sure. Any "real" ESB will include support for orchestration, such as a BPEL engine.
I think we are getting close to having Open ESB cover all the points I gave in my definition, and you gave in yours; it certainly includes a BPEL engine now.
One of the key features of JBI-based ESB's (such as Open ESB) is extensibility based on standard, plug-in components. This opens the ESB service containers, allowing you to add support for new technologies to the ESB. This is an important (and pragmatic!) feature for any integration technology, which must be extensible to integrate all those things that haven't been integrated in the past!
Posted by 192.18.42.249 on April 17, 2006 at 08:13 AM EDT #