- SOA is essentially a set of principles used during the design and development of systems that must enable interoperability with other systems. … SOA tends to be a loosely coupled system of functionality exposed over a network (i.e., Internet) that allows users to combine and use the resources exposed. (Info-Tech Research Group)
- SOA is the underlying structure supporting communications between services. SOA defines how two computing entities, such as programs, interact in such a way as to enable one entity to perform a unit of work on behalf of another entity. Each interaction is self-contained and loosely coupled, so that each interaction is independent of any other interaction. (SearchSOA)
And I asked a connection, Grady Booch, if he would share his expert opinion and answer the following question, do these two definitions align, or is one correct or more correct?
Here is his reply:
My take is that these two perspectives are in reasonable harmony. Three things that both of them don’t address, however:
- SOA is more than just message-passing on steroids…and yet, a naive interpretation of the first definition could lead one to conclude that. It would be valuable to describe what SOA is not (it’s not just message-passing).
- The hard part of SOA is reaching the right granularity of service. Too fine-grained and it requires too much work to make the parts fit and leads to misuse, unless you provide patterns of good use. Too coarse and it’s hard to integrate with new, unforeseen uses.
- SOA is not just about web services; one may still have an SOA architecture and use more than heavyweight web services.
On a related note Grady points out that:
Quality and value are two of the forces that shape as well as are emergent from the architecture of a software-intensive system. Interestingly, these factors—quality and value—appear to be consistent with architectural elegance and simplicity. (From a review of Inherent Quality Simplicity)
Here is one of Grady’s presentations (“SOA as an Architectural Pattern: Best Practices in Software Architecture”), and here is the SOA Manifesto (Grady, of course, is one of the noted authors).
Looking forward to reading your comments and opinions in relation to the noted definitions, and in general about SOA. Here also is an interesting job posting involving SOA (Director of Insights), and here a some additional links as food for thought:
- SOA Consortium discussion paper (“Business Architecture: The Missing Link between Business Strategy and Enterprise Architecture”)
- Study on cloud and service oriented architecture for e-government
- TechRepublic SOA white papers & case studies
- SOA migration case studies and lessons learned