One of the more common questions we get from clients is about how to decide between enterprise service bus (ESB) and comprehensive integration solutions (CIS's) for meeting integration needs. The answer will depend on the type and depth of your integration challenges.
Forrester defines ESB's as:
"An intermediary layer of middleware through which a set of reusable business services are made widely available."
These services typically include features for supporting multiple levels of connectivity, a wide range of mediation services (including dynamic provisioning capability), lightweight orchestration and multiple features for supporting change and control aspects of the ESB's behaviour. The model below provides more details on the specific features.
The ESB Reference Architecture Model
ESB's are a great starting point for enhancing integration capability and in many cases, this level of technology is all that many enterprises need or can afford. For a deeper discussion of ESB features, check out my March 26, 2010 document entitled, "The ESB Reference Architecture Model".
In a similar vein, Forrester defines CIS's as:
"suites of tools that provide a broad array of capabilities for supporting internal and external integration requirements including enterprise application integration (EAI), B2B integration (B2Bi), and integration-centric business process management (IC-BPM)."
It is important to note that CIS products all include ESB features at their core as shown in the architecture layer of the following picture:
The CIS Reference Architecture Model
CIS's can be thought of as ESB's on steroids. The integration features are more comprehensive than those found in most ESB's and the level of support for application development is stronger as well, providing direct links between model-driven application development and business process management and B2B integration features. For a more in-depth look at CIS tools, refer to my April 19, 2010 document entitled, "The CIS Reference Architecture Model".
So, what do we recommend? Use an ESB for your basic integration needs and move up to a CIS as the business requirements demand it. Of course, the business needs may require you to implement a CIS at the outset and that's OK. Just don't make the assumption that an ESB or a CIS is automatically the best way to go. Match your needs to the most applicable solution.
Let me know what you think. Just drop me a line to email@example.com.