IBM BPM, V8.0.1, All platforms > Authoring services in Integration Designer > Services and service-related functions > Building mediation flows

Mediation flows overview

Mediation flows intercept and modify messages that are passed between existing services (providers) and clients (requesters) that want to use those services. They are most commonly used for transforming data and accessing header information, such as JMS, MQ or SOAP headers.

Mediation modules can be deployed on the WebSphere Enterprise Service Bus or the IBM Process Server.

In SOA, services represent business functions that can be reused and combined in an ad hoc manner to create responsive business systems. These services have loosely coupled connections, rather than being connected directly to each other.

Introducing mediation flows between services enables you to process the messages that are being passed between these services. A message is a communication sent from one application or service to another application or service. Mediation flows provide the logic that processes the messages.

For example, mediation flows can be used to find services with specific characteristics that a requester is seeking and to resolve interface differences between requesters and providers. For complex interactions, mediation primitives can be linked sequentially. Typical mediations include:


Stock Quote example: building a mediation flow

To illustrate a mediation flow, we will use an example of a simple mediation flow that provides stock prices. A client application provides a query containing a stock symbol and customer ID to the mediation flow, which processes the query. The customer's subscription level is determined, and depending on the level of subscription, the query is routed to the appropriate service provider. The quote that is returned from the service provider is converted into the customer's preferred currency before it is returned to the client application.

We are using a mediation flow because we want to use different interfaces from two external service providers, and expose a single interface to the client application. We need to build the service quickly, with the ability to change the application on demand, and without modeling a business process. We also want the ability to change the service provider without disrupting the service.

The following picture shows the complete mediation:

Building mediation flows