With an enterprise service bus (ESB),
you can maximize the flexibility of an SOA. Participants in a service
interaction are connected to the ESB, rather than directly to one
another.
When the service requester connects to the ESB, the ESB takes responsibility
for delivering its requests, using messages, to a service provider
offering the required function and quality of service. The ESB facilitates
requester-provider interactions and addresses mismatched protocols,
interaction patterns, or service capabilities. An ESB can also enable
or enhance monitoring and management. The ESB provides virtualization
and management features that implement and extend the core capabilities
of SOA.
The ESB abstracts the following features:
- Location and identity
- Participants need not know the location or identity of other participants.
For example, requesters need not be aware that a request could be
serviced by any of several providers; service providers can be added
or removed without disruption.
- Interaction protocol
- Participants need not share the same communication protocol or
interaction style. For example, a request expressed as
SOAP over HTTP can be serviced by a provider that only understands
SOAP over Java™ Message Service (JMS).
- Interface
- Requesters and providers need not agree on a common interface.
An ESB reconciles differences by transforming request and response
messages into a form expected by the provider.
- Requesters and providers need not agree on a common interface
- An ESB reconciles differences by transforming request messages
into a form expected by the provider.
- Qualities of (interaction) service
- Participants, or systems administrators, declare their quality-of-service
requirements, including authorization of requests, encryption and
decryption of message contents, automatic auditing of service interactions,
and how their requests should be routed (for example, optimizing for
speed or cost).
Interposing the ESB between participants enables you to modulate
their interaction through a logical construct called a mediation.
Mediations operate on messages in-flight between requesters and providers.
For example, mediations can be used to find services with specific
characteristics that a requester is asking for, or to resolve interface
differences between requesters and providers. For complex interactions,
mediations can be chained sequentially.
An
enterprise service bus, with
mediations, performs the following actions between requester and service:
- Routing messages between services. An enterprise service bus offers a common
communication infrastructure that can be used to connect services,
and thereby the business functions they
represent, without the need for programmers to write and maintain
complex connectivity logic.
- Converting transport protocols between requester
and service. An enterprise service bus
provides a consistent, standards-based way to integrate business functions that use
different IT standards. This enables integration of business functions that could
not normally communicate, such as to connect applications in departmental
silos or to enable applications in different companies to participate
in service interactions.
- Transforming message formats between requester and
service. An enterprise service bus enables business functions to exchange
information in different formats, with the bus ensuring that the information
delivered to a business function is
in the format required by that application.
- Handling business events from disparate sources.
An enterprise service bus supports
event-based interactions in addition to the message exchanges to handle
service requests.
Figure 1. An enterprise service bus.
The enterprise
service bus is routing messages between applications, which are requesters
or providers of services. The bus is converting transport protocols
and transforming message formats between requesters and providers.
In this figure, each application uses a different protocol (represented
by the different geometric shapes of their connectors) and uses different
message formats.
By using the enterprise service bus you
can concentrate focus on your core business rather than your computer
systems. You can change or add to the services when you need to; for
example, to respond to changes in the business requirement, to add
extra service capacity, or to add new capabilities. You can make the
required changes by reconfiguring the bus, with little or no impact
to existing services and applications that use the bus.