ESB, Enterprise Service Bus is an architectural pattern in an Enterprise application.It is an abstraction of a channel through which messages flow within various components of an Enterprise Application.The primary advantage of ESB is to reduce the number of point-to-point connections required to allow applications to communicate.ESBs are typically built around the exchange of XML messages. The enterprise message model is defined in terms of a series of XML Schema definitions describing the set of legal messages. The message exchange is almost always done in a platform-independent manner. This allows the ESB to integrate applications that run on a variety of client-server operating systems.
An ESB has four major functions:
- Message routing: An incoming message is sent to a destination determined either through logic known in advance, or dynamically-based on message. Routing is a key function to enable service virtualization. This level of indirection between the caller and the service allows the location of the service to be moved without the caller having to know about the change.
- Message transformation: An incoming message is transformed from one format to another. For example, a csv message might be reformatted into SOAP so that the data can be passed to a Web service.
- Protocol mediation: An incoming message is sent using a different protocol from the original. For example, the incoming message could use HTTP, while the outgoing message might use SOAP over TCP.
- Event handling: An incoming message for an event is distributed to a number of endpoints, usually through a publication and subscription model.