Loose Coupling and Mediation
|
|
In my previous entry "The Network is Hetergenous", I suggested an architecture where the different interoperability layers are loosely coupled. The idea was that we could mix and match implementations based on the choices made by our partners in communication.
That's all nice, however, what happens if we don't want to change a layer. For example, what if we a process flow or even a document that we've coupled tightly to our internaly systems? In otherwords, we can't make the same interoperability choice as our partner. When you do that you implicitly couple your implementation with theirs.
The conventional decoupling techinique of course is to introduce an intermediary. That is couple your implementation to a mediator that will be responsible for the translation. So in affect, the interoperability is such that at every layer there's a possibility of introducing a mediator that performs a point to point translation to the other parties representation.
When I speak of a mediator object a refering to it on a more general sense. In one sense you can think of the usual document mapping tools, in another sense you can think of it mediating between two parties that have different interaction patterns.
Mediators at different interoperability layers has been studied in a paper "Web Service Modeling Framework" which discusses the different places where you can insert a mediator. I'll discuss this in a later entry. However, this topic has some nice synergies with "Programming with Adaptors".

