Chapter 3. SOA and the Enterprise Service Bus 37
3.2.1 SOA infrastructure requirements
The Enterprise Service Bus (ESB) is emerging as a middleware infrastructure
component that supports the implementation of SOA within an enterprise. The
need for an ESB can be seen by considering how it supports the concepts of
SOA implementation by:
򐂰 Decoupling the consumer’s view of a service from the implementation of a
service
򐂰 Decoupling technical aspects of service interactions
򐂰 Integrating and managing services in the enterprise
Decoupling the consumer’s view of a service from the actual implementation
greatly increases the flexibility of the architecture. It allows the substitution of one
service provider for another (for example, because another provider offers the
same services for lower cost or with higher standards) without the consumer
being aware of the change or without the need to alter the architecture to support
the substitution.
This decoupling is better achieved by having the consumers and providers
interact through an intermediary. Intermediaries publish services to consumers
.
The consumer binds to the intermediary to access the service, with no direct
coupling to the actual provider of the service. The intermediary maps the request
to the location of the real service implementation.
In an SOA, services are described as being loosely coupled. However, at
implementation time, there is no way to loosely couple a service or any other
interaction between systems. The systems must have some common
understanding to conduct an interaction. Instead, to achieve the benefits of loose
coupling, consideration should be given to how to couple or decouple various
aspects of service interactions, such as the platform and language in which
services are implemented, the communication protocols used to invoke services,
the data formats used to exchange input and output data between service
consumers and providers.
Further decoupling can be achieved by handling some of the technical aspects of
transactions outside of applications. This could apply aspects of interactions
such as:
򐂰 How service interactions are secured
򐂰 How the integrity of business transactions and data are maintained, for
example through reliable messaging, the use of transaction monitors, or
compensation techniques
򐂰 How the invocation of alternative service providers is handled in the event
that the default provider is unavailable

Get Patterns: Implementing Self-Service in an SOA Environment now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.