soa and softwareaehso on 09 Aug 2006 12:50 am
Dion Hinchliffe’s recent WOA/Client article went pretty close to making my head explode. Calling WOA/Client the “Pragmatic Service-Oriented Architecture”, the article contains a pretty diagram that reduces the use of web services to five key patterns that are defined in detail in another article Dion wrote for The Architecture Journal titled Patterns for High-Integrity Data Consumption and Composition:
- Frequent run-time checking of only the part of the contract you care about
- Minimal surface area dependence on Web service
- Lowest possible distance between client data representation and server representation
- Tolerant, robust, federated data modification (incomplete updates must never break the application)
- Managing multiple data sources in a maintainable way. Use MVC to knit them/update them.
How this differs from any other SOA, beyond being an incomplete subset of considerations for any enterprise architect to muse over, is very questionable. Why we need another term for this set of patterns is questionable. How these patterns qualify as pragmatic when others (such as defining an interface versioning strategy up front) are somehow not is questionable.
On a deeper level, how well-defined these patterns are is also questionable. For example, I find it difficult to reconcile the use of the MVC pattern on an enterprise architecture level. Are we supposed to define model services and view services? Where does the controller get implemented and do we have to provide view callback interfaces (for the model to update the view). Do the view services have to maintain state? Sorry, the granualarity and complexity doesn’t fit distributed services at all.
And I’m still not sure what the term Client in WOA/Client signifies. I have to agree with Sam Ruby - articles like this signify that the term SOA has entered the realm of Newspeak. WOA/Client seems to be bordering on the stuff that Dilbert cartoons are made of. It may only serve to further disconnect and confuse the very architects who are struggling to embrace existing, concrete, service oriented architecture definitions.