Monday, January 09, 2012

Service mediation within the government

In a government, we find organisations who provide data, and those who consume data.

Those who provide data make this available through (web) services, generally not taking care of the business needs of the consumers. And why should they? It's their data, they know everything about it, and they keep it consistent. They are the "authentic source" of the data. There role is to focus on their data, not others' business.

Those who consume data need data within a specific context, often unique to their business. It is quite complex for them to connect to the providers's (web) services. Those services often give much more data than the individual consumers need and often consist of complex data models, described by complex XML schemas.

In the middle between providers and consumers should be a mediator. The mediator is the glue between the consumers' needs and the providers' offering. The mediator should look both left and right: it should implement both consumer-driven and data-driven approaches to mediation. The technical implementation can be done using a service bus, but mediation is more than just a technical issue.

Data-driven mediation is a bottom-up approach. Some characteristics:
  • Consumers are tightly coupled to providers: service life cycles, data models, ...
  • Any change in a provider service involves complex governance of both mediator and all consumers
  • Each consumer must interpret the data and assemble it correctly before it can be used in the business; the provider's data model is captured by the consumer
  • The role of the mediator is limited: just expose the same interface as the service provider; only some technical advantages of a common security model, common logging and auditing, etc.; no added business value

Consumer-driven mediation is a top-down approach. Some of its characteristics:
  • Consumers are loosely coupled to providers: consumer service life cycles and data models do not depend on those offered by the provider
  • A change in a provider service does not automatically imply a change at the consumer's side, which simplifies governance
  • The mediator interprets the provider's data and transforms it into the business domain language; the provider's data model is shielded from the consumer; there is an abstraction made by the mediator
  • The role of the mediator is extensive: it is the glue between the data service providers and the business consumers

It is clear that the initial cost of consumer-driven mediation is larger than that for data-driven mediation. This is probably why data-driven mediation is seen so frequently: you can quickly expose services. And for the first few consumers, this is probably the cheapest solution.

But if you start re-using services, governance start to take over the budget. Changes will occur, and will propagate to everywhere. The governance nightmare starts, and the maintenance costs of the SOA will rise.

So, if the goal of mediation is to expose reusable services, then it does make sense to make the initial investment and to go for consumer-driven mediation. The mediator becomes an important part of the IT integration landscape, and its role should not be underestimated.

In a government SOA, there should thus be an integration mediator, which interacts with both authentic sources —  the data providers — and consumers, and which should have enough power in order to fulfil its role as consumer-driven mediator.


  1. I agree that consumer driven is better. In the end this means that you will have some kind of virtual data model on your esb that represents business data.

    If there are many applications that use this virtual model (many consumers), then this will result in multiple versions of this virtual model, since not all applications need the same data details.

    For example some applications will need only a main adress wheras others may need every possible adres of a person or company.
    It's the same data with different detail.

    So you will still need to govern these versions, but they can evolve independently, based on what the consumer needs. For example a country may be aded to the version with one address, but not to the one with the multiple adresses.

    You still need to keep track which consumers use which version. But you will be better off then the data driven approach, since your contract is now with the esb, not with the producer.

  2. This comment has been removed by the author.

  3. Mediation is the process where we and our spouse and a mediator enter into an agreement to mediate.

    Family Mediation Service & Mediation Services