For implementing SOA (Service Oriented Architecture), the SOA principles must be supported by both infrastructure and applications. Enabling of the applications involves the development and creation of service interfaces to new or existing functions, either by using adapters or directly. At the most basic level, the enabling of infrastructure involves the provision of capability to transport and route service requests to the right service provider. The role played by ESB (Enterprise Service Bus) is to simply enable the infrastructure in this manner.
The true value of ESB concept, however, lies in enabling the infrastructure for SOA Architecture in a manner which coincides with the requisites of the enterprises in today’s environment, that is, to provide suitable manageability and service levels, and to integrate and operate in a heterogeneous environment. The implications of these requisites and specifications go much beyond basic routing and transport capability.
An ESB must enable the substitution of a service implementation by the other without any effect on the clients of that service. It requires both the service interfaces which the SOA has specified and that the ESB gives the functionality of invoking the services to the client code in a manner which is independent of the communication protocol which is involved and the service location.
Multiple Integration Paradigms are supported by ESB
Whether proprietary or an open source ESB, in order to completely support the variety of interaction patterns which are required in a comprehensive SOA, for instance, events, publish/ subscribe, request / response, the ESB must support the following three major styles of Enterprise Integration in one infrastructure:
Message Driven Architectures
These are the architectures in which messages are sent by applications through ESB to the receiving applications, that is ESB facilitates communication via messages between sender and receiver.
Service Oriented Architectures
These are the architectures in which communication between applications is facilitated through reusable services with explicit, well-defined interfaces. Event communication models and underlying messages are leveraged by service-oriented interactions.
Event Driven Architectures
These are the architectures in which messages are generated and consumed by applications independently of each other.
The ESB facilitates this whilst providing additional capabilities for transforming or mediating the interactions and service messages, enabling a broad spectrum of behaviors and supporting different models of coupling interaction.
ESB also distributes processing and centralizes control and is sometimes also described as distributed infrastructure.