The Relationship of Web Services and an ESB
As foundational infrastructure for SOA, the fundamental functionality of an ESB to connect, mediate and control services and their interactions can be understood in the context of its interaction with Web services consumers and providers. At the highest level, an ESB is SOA infrastructure which 1) consumes and provides Web services, 2) mediates their interactions both among themselves and with other non-Web service enabled IT resources, and 3) facilitates change through configuration-driven control of these interactions, including interactions driven by service orchestration. An ESB which supports advanced Web services, such as WS-RM, WS-Addressing and WS-Security, will fully support the on-the-wire protocols required for reliable, secure and asynchronous interaction with these Web services.
Mediation provided by an enterprise service bus begins with the brokering of Web services communications, providing the flexibility to introduce arbitrary processing steps in between a Web services consumer and provider. Richer ESB mediation can take the forms of transformation, content-based routing, splitting and aggregation of Web services messages. It can also bridge between the semantics of synchronous Web services and asynchronous Web services. Mediation with non-Web services enabled IT resources is facilitated through adapters to other middleware, packaged applications, file data or relational data sources.
Service orchestration makes it easy to compose Web services as well as interactions with non-Web service enabled IT resources into business processes, which are then also made available as Web services. Like any service, the details of its implementation unknown to the service consumer. The Web services provided by an ESB can be configured to support advanced Web services specifications such as WS-RM, WS-Addressing and WS-Security. The enterprise service bus should, however, guarantee that any service invoked as part of the implementation support the quality of service associated with the exposed service; the chain is only as strong as its weakest link.
The control provided by an ESB makes it easy to model, configure, test, and deploy any number of business processes or other kinds of Web service mediation scenarios in a coherent manner. It enhances overall agility by allowing reconfiguration of either the logical processing or the physical topology (including scaling or relocation of services or communications brokers) in an arbitrary manner.