The Enterprise Service Bus – product or architecture?
There’s a bit of a buzz going around at the moment relating to ESB; probably the result of someone shaking a “marketing tree” somewhere!
The problem with the world of TLAs is that they are easy to invent, but it is a completely different matter to then fully define what they actually mean! ESB is a case in point. Some would have us believe that it comprises a physical component of one’s enterprise integration strategy/architecture managing the flow of messages through an enormous pipe.
However, if you actually dig a little deeper, the actual definitions of ESB do not describe the behaviour of a BUS at all; they actually describe the behaviour of the message broker integration pattern in conjunction with the conceptual SOA architectural layer (See future blog) of infrastructural services. This acts to supplement rather than provide a ‘host’ for the SOA network. See the CBDI definition below:
The Enterprise Service Bus is a uniform service integration architecture of infrastructure services that provides consistent support to business services across a defined ecosystem. The ESB is implemented as a service oriented architecture using Web Service interfaces. [CBDI]
Bit woolly, but hardly that of a bus! I like Rich Turner’s description of the product ESBs as ‘smart-plumbing with dumb nodes’ in his recent blog – a bit of an SOA anti-pattern brewing there I think;).
So all in all if ESB is a bus it can be provided as a product, and if you want to buy one, then remind yourself of the success of EAI, and good luck! But, in terms of SOA, ESB represents a poor TLA, unless you were to re-define the letter 'B' to represent "Brokers" plural.
But I guess the final word will go to marketing - ‘Enterprise Service Bus’ has a great sound to it, but as a product it is really EAI with web services:)!