IBM BPM, V8.0.1, All platforms > Get started with IBM BPM > Key concepts > The enterprise service bus in IBM BPM

Connecting services through an enterprise service bus

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 do not have to know the location or identity of other participants.

For example, requesters do not have to 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 do not have to 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 do not have to agree on a common interface. An ESB reconciles differences by transforming request and response 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.

Using mediations, an enterprise service bus carries out the following actions between requester and service:

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 focus on your core business rather than your computer systems. You can change or add to the services if required; 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.

The enterprise service bus in IBM BPM