An Enterprise Service Bus is an advanced middleware tool that serves multiple purposes to enable a managed SOA integration environment. If you're doing SOA, plan on getting one. And if you're doing SOA and you don't have one, you're not doing SOA - you're just using SOAP and XML for quick and easy point to point integrations.
So what does an ESB do for you?
• Communications and Protocol Transformation – The tool connects to systems providing a service or function one way, and allows systems requesting a service or function to communication another way. For example, the providing system may expose the function by MQ (IBM’s messaging protocol), while the requesting system may request via a SOAP (TCP/IP & HTTP). The ESB acts as the intermediary.
• Data Format Transformation – The providing system exposes the data in one format, the requesting system needs it in another format. Example, the providing system exposes it’s custom format record as a fixed length format. The requesting system needs to receive it in an XML format. The ESB performs the transformation (and provides a development environment for creating it, usually with a visual tool, quickly and easily.)
• Orchestration or Integration Workflow – This is the real power of an ESB. Combining multiple granular services into an integration workflow allows sophisticated multi-system processes to be quickly assembled in the ESB context. Such workflow may include sophisticated logic including things such as content based routing, the activation of appropriate transformations, protocols, processing, etc, and combine it all into a single sophisticated integration process.
• Messaging and Process Management – Not included in all ESB’s (or sometimes as additional components within the vendor suite), a messaging paradigm becomes of increasing importance as business processes spread across systems, with a corresponding decrease in reliability (simply because more systems are involved). Messaging and process management provide the integration space with the tools to compensate for and manage the cross-system processes.
With an ESB, the application developers no longer concern themselves with each individual system connection, dealing with different protocols and different data formats. The systems architect gains the ability to design ‘virtual’ operations that are composed of orchestrated web services bridging multiple systems. And all the individual steps required for doing so become reusable integration components (at least in the context of the ESB environment).
ESB - a must have for current generation multi-system and multi-business-process integration.