I am going to write a quick note here to add to some excellent comments made by Bobby Woolf in a recent posting. In his posting he correctly partitions an SOA solution into a provider part and a coordinator part, though I think what he has described is one of a number of possible patterns (for an excellent book on patterns see Bobby's book) for thinking about SOA topologies. The reason I say this is one possible pattern is that a number of customers I have talked with express a number of additional partitions; or rather they tend to break down the two that Bobby has identified into subpartitions.
For example, we can break down the provider partion into into at least two sub areas, one for business services (customer/account managemet, scheduling, HR, etc.) and a separate partition for infrastructure services (messaging, data integration, etc). In the same way we can imagine a number of sub partitions for the service coordinator area and again for example one customer separated out the process coordination area from presentation services such that the application functionality the user interacts with (in this case through a portal) interacts with a coordination partition that specifically uses a choreography engine. The purpose of this separation is to allow for the user experience to evolve independantly and according to user requirements while the process that the user is interacting with can be flexibly implemented as a coordination of both business and infrastructure services.
Again, I want to be clear that in the same way we moved from client/server (2 tiers) to 3-tier and then n-tier patterns for application development I think we have to realize that there will be n tiers in a SOA solution, categorized at a high level by Bobby's two tiers. So, before I finish I'd like to also comment on the difference between application and solution, the terms I have used here. When I think of the word application I think of a silo of code, a top-to-bottom design and implementation. When I think of solution I think of something more flexible, something that is far more business-aligned and where reuse is more prevalent. Most customers see one advantage of the move to SOA as an opportunity to build a common and enterprise-wide provider tier, i.e. all the business and infrastructure services are common across all solutions, solutions themselves are realized within the process and presentation tiers.[Read More]
Tooling platforms and RESTful ramblings
skjohnston 120000GMPN 557 Visits