The ESB : Key Middleware Infrastructure for Business Components
An ESB is a middleware platform that supports intelligent routing of information between business components distributed across a network. Unlike other platforms, ESBs support both request/ reply as well as event-driven interactions between business components on a single technology base with a shared component model and common tools for design, development, deployment, security and administration.
Figure 1 : Enterprise Service Bus
ESBs have four important characteristics that distinguish them from other forms of middleware:
- Communication - an ESB must support both request/response communication as well as one-way event-driven communication. Most ESBs typically support communication over a variety of protocols such as SOAP/HTTP and JMS among others. The better ESBs support distributed peer-to-peer communication for enhanced fault-tolerance and scalability, together with features such as store-and-forward.
- Intelligent Routing and Mediation - an ESB must make it's client applications (i.e. business components) independent of each other by allowing the routing of data between components to be controlled externally. This is typically accomplished via routing rules that direct messages between business components connected to the ESB across the network. The better ESBs allow routing rules to be changed on-the-fly, allowing enterprise business processes to be modified dynamically in response to changing business conditions. The ESB serves as an intermediary between business components connected to the bus, allowing it to provide address indirection, rules-based routing and other features essential for the development of distributed applications.
- Message Envelopes - an ESB must have a method of creating or accessing metadata that documents the request/reply and event-driven interfaces of business components that exchange information across the bus. ESB Metadata is typically represented in XML, with interface definitions in WSDL.
- Web Services - an ESB must support basic Web-Services standards for communication, including WSDL, SOAP and XML over multiple transports.
Importantly, an ESB can be used not only for application integration but also for the development of general purpose distributed applications connecting business components created by independent teams of developers.
Learn More: