Udi Dahan posted an excellent and thoughtful opinion about one of my posts on intermediation. I really like his thinking. One thing though, is that I don’t see a lot of disagreement about concepts… it appears to be more about terminology.
It is so much more fun to disagree on the actual concepts. Alas, terminology haunts us in this business. That’s why I really like the article by Shy Cohen in this month’s Architectural Journal that goes into the differences between service types.
From what I can tell, Udi was failing to find value in intermediation because his Process Services already handled the composition of other Activity and Capability services under the covers. Therefore, intermediating between the composing application and the process service didn’t make sense.
My statement was there is value in intermediating between the process and the capability services and/or intermediating between the activity and capability services. There is also value in intermediating between the capability and entity services.
I agree with Udi in this: There is less visible value in intermediating between a composed application and a process service.
IMHO, this is because there is usually a great deal of business context implied in a process service. Therefore, the ability to get value out of intermediation of a service is inversely proportional to the amount of deep business context that the service encapsulates. That doesn’t mean that it is impossible. It is not. But it is more difficult. So if you want your apps to call the top-level services using a non-interceptable protocol, that is probably not a major obstacle to agility. Of course, in the world of SQL Service Broker, this is nearly never the place where a service call is being made.
As far as differentiating composable vs. non-composable services: many entity services and a few bus services are not composable. I don’t think that all services need to be. Some clearly do, and those need to be centrally managed. Non-composable services have their place.
I hope this clears up what appears to be a disagreement between Udi and I. We are on the same page. We are just using the same words in a different way.