I know what you are saying. The Middle-Out Approach for SOA has 3 steps in a cycle or at least this was the way it was presented up until now: Expose, Compose and Consume which is applied for every business drive we decide to deal with. However, if we drill down we see that we need 6 steps from which expose is divided into 4 sub-steps of Expose:
- Find the relevant functionalities that are reusable and will participate in the later compose stage for this business drive. This is a place where an architect experience is required and there are not many solutions here. In some projects, this phase is skipped and the result is that no legacy system is exposed as a set of services. This happens because it is easier for developers to write code than read code (At least this is what they say), so reusing old implementations is not that appealing.
- Expose the above functionalities as services: This is the place where the world is divided into two parts: The MS World and the non-MS world. The non-MS functionalities can be developed as web services or exposed using adapters to products like BizTalk 2006 R2. The MS functionalities can be exposed with WSE or even better WCF which support the standards. After talking about WCF, it is pretty easy to see that exposing with WCF is a different experience.
- Build new services that couldn't be exposed from the existing systems. In here products such as the Service Factory can be handy because they make it easier to build new services that comply to standards and design patterns.
- Subscribe to services from the cloud (Internet): Some services that might be part of the business process we'll compose will not be part of our organization because it doesn't make sense to develop them and maintain them.
And in addition to those we have the two next steps of:
- Compose all the services exposed in the previous 4 stages into a business process
- Consume the business process from different new and old clients.
And Voila, we have 6 steps!
Here are the 6 steps in an example of a business drive of treat patient style from the presentation I'm delivering on SOA:





