Recently published book SOA Design Patterns by Thomas Erl has encouraged me to look into principles of Service Orientation. What I have found is a delicate evolutionally shift in wording and meaning of some principles. I think this is a great evidence of survival ability of Service Orientation. The shift happened sometime between 2007 and 2008 when Principles of Service Orientation (SO) transformed into Service-Orientation Design Principles. Following Thomas' books and the ServiceOrientation.org, I list the principles along time line for you to compare:
• services share a formal contract
• services are loosely coupled
• services abstract underlying logic
• services are composable
• services are reusable
• services are autonomous
• services are stateless
• services are discoverable
• Standardized Service Contracts
• Service Loose Coupling
• Service Abstraction
• Service Reusability
• Service Autonomy
• Service Statelessness
• Service Discoverability
• Service Composability
As we know, 'the devil is in details', and I decided to look into the changes of the meaning of these principles. This is especially interesting because SOA has walked difficult way and crossed IT boundaries for last few years. However, before digging into separate principles, I have noticed a motivating word 'Design' in new collective title of the principles.
My understanding of this phenomenon is quite subjective but, I believe, here is something that deserves attention. Simple logical interpretation of appearance of the word 'Design' leads to conclusion that SO principles are not necessarily the same thing as SO Design principles. At the level of speculation, I can also conclude that now we cannot say whether the entity is service oriented based on its appearance if we do not know if it was designed according to the service orientation principles. I find this a bit odd.
The real concern is about potential mismatch between SO design principles and principles of SO concept. Presence of design element converts the concept into the tool, which is practical. But are we sure we have not altered the concept when placed it into the tool-box?