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
- 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
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.