While we find many enterprise customers don't make the distinction between design patterns -- they either call it "enterprise integration" or SOA, yet there are some interesting ways to break down the patterns so you can look at your own unique situation in that light.
Tony Cook recently posted Gartner: SOA Design Patterns, on the service oriented enterprise blog. He covers the five design patterns observed by Gartner analysts and comments on each. They are:
1. Multichannel Applications
2. Composite Applications
3. Business Process Orchestration
4. Service Oriented Enterprise
5. Federated SOA
It strikes me how each of these raises the complexity bar for testing and validation. As Tony writes, Multichannel Applications separate back-end business logic from front-end logic and deliver full application functionality to a maximum number of users from various channels. This multi-channel delivery ups the validation requirements. Composite applications are often drawing from multiple data sources that the company might tightly control, but those components are often created for very different business reasons. This is an area that requires ongoing validation to make sure the multiple sources stay on course - even if they are centrally managed.
Business process management (BPM) uses a metadata repository to manage the proceedings of the business process model at runtime. Implementation requires solid business logic testing. Tony writes that the SOA-based enterprise model is a step beyond composite applications, as all applications are perceived as components of one integrated whole. This integrated whole is created from reusable components, so the same ongoing validation requirements for composite applications come into play. Federated SOA logically splits the enterprise into semi-independent SOA domains. These domains are then federated to enable inter-domain sharing of services. Here is another scene for the necessity of ongoing validation. In this realm, we have found that actual US federal agencies are leading the charge -- they call it a "Net-Centric" approach of sharing and instilling Trust across agencies.
You can buck classification, but face it, if you are integrating multiple enterprise IT assets, you fall somewhere along the axis of either highly disparate (composite) use of controlled assets, or highly controlled (federated) integration of disparate assets. Either way, you want to increase your ability to deliver functionality better and faster amidst complexity and change.
Therefore, comprehensive testing and validation is a requirement -- otherwise, trust between the teams that build and control those Services is hard to come by. As some of the contributing services may be in various stages of development, virtualization of service behaviors can also help speed things along by making the constrained or unavailable service available for this activity.

Comments