Mediation Components

Mediation is the process of resolving differences between two entities for example, when bridging transport or interface differences.

Mediation components provide support for enterprise service bus (ESB) features and manage interactions between service consumers and service providers. TIBCO ActiveMatrix Mediation components are implemented with Mediation Flows, which are created using the Mediation Flow Editor. The TIBCO ActiveMatrix Mediation Flow Editor provides a zero coding graphical tool that allows you to build mediation flows between service consumers and service providers that are described using WSDL files. The primary building block of a mediation flow is called a mediation task. Mediation tasks are primitives that implement ESB functions such as logging, data transformation, routing, and so on.

Mediation flows:
  • Map requests to one or more service providers. For example route requests based on the message content, the message context, or both.
  • Send back response messages received from service providers with or without transforming them.
  • Manage faults. Mediation flows can throw faults, catch faults from service providers and transform them to the faults expected by service consumers.
  • Construct and send reply messages to service consumers without invoking the service providers.
  • Provide access to metadata such as security context, SOAP headers and other message context details.
  • Use custom mediation tasks, which can be developed with custom mediation task wizards. TIBCO ActiveMatrix mediation features provides wizards and a public API for developing custom mediation tasks.

Composites containing mediation components can address the following ESB scenarios:

  • Service virtualization
  • Transport bridging
  • Message exchange pattern bridging
  • Message content and context-based routing
  • Static and dynamic routing
  • Data transformation
  • Data enrichment
  • Data validation
  • Message filtering
  • Log message and context data

By applying one or more ESB scenarios you can implement ESB patterns such as:

  • Gateway (Route)
  • VETO (Validate, Enrich, Transform, Operate)
  • VETRO (Validate, Enrich, Transform, Route, Operate)
The following figure shows how a service consumer invokes a mediation flow and how the mediation flow interacts with target services.
Mediation


In this figure:

  1. The service consumer, accessing the mediation service over SOAP/HTTP, invokes the query operation in the mediation service to request information.
  2. Based on the contents of the message, a route task directs the message to one of three target operations, provided by web services in Asia, Europe, and the United States. Transport and interaction-protocol bridging allow communication with the target service providers to proceed.
  3. For Asia and Europe, transform tasks transform the message structure and contents provided by the service consumer to ones that the target service providers can accept.

In summary, TIBCO ActiveMatrix mediation technology provides:

  • Service virtualization A mediation service hides the location of service providers and details of how the services are provided (for example, the transport protocol, message format, and schema) from service consumers. Virtualization enables:
    • Location transparency The location of the service providers is hidden from service consumers.
    • Transport bridging A composite application containing one or more mediation components can provide a bridge between service consumers and service providers that use different transport protocols.
    • Connections between mediation operations and target operations Mediation flows associate each mediation operation with one or more target operations.
  • Content and context-based routing A routing task placed on the input path of a mediation flow can route service requests to alternative target services based on the message content, message context, mediation flow parameters or all of these. A routing task can also route service requests to Throw Fault tasks, as a means of rejecting requests.
  • Data transformation When routing a service request to alternative service providers, it might be necessary to transform the message structure, data types, or contents used by the service consumer to the ones expected by the service provider, and vice versa. Transform tasks perform these transformations.
  • Fault management Mediation flows provide the ability to map fault types reported by service providers to ones understood by service consumers. A mediation flow can also throw faults based on routing cases, rather than sending every message to a service provider. Finally, mediation flows handle runtime faults that occur in the mediation flow itself.
  • Logging Log tasks can log elements of the message content, message context, mediation flow context or all of these elements.
  • Custom mediation tasks To provide a mediation feature not present in pre-defined mediation tasks, you can write code that performs a custom mediation task, and incorporate the task in the Mediation Flow Editor using wizards.

The following figure shows a Hello World mediation flow containing a log task opened in the Mediation Editor.

Mediation Flow


For information on Mediation components, see Mediation Component Development.