As written here http://blogs.mulesoft.org/how-to-define-services/ derived from concepts defined in Thomas Erl’s SOA series. The fundamental idea is that there are three levels of services
Thomas takes great care to walk the spectrum and discuss use and reuse of services within the scope of the layer in order to accomplish the ultimate business objectives.
The reason why this model is important is because if you compare it to recent discussions on Maslow there is a clear and consistent pattern. The lowest level of your “services” could be modeled as infrastructure or utility level services. This layer can be decomposed to reveal additional components or sub components but YOU don’t HAVE to do that. The reason that we shouldn’t decompose this layer is because it will only create confusion. Part of working in the world of services or cloud computing is the fundamental understanding that it requires TRUST. This engineering approach should really be called “Trust Computing”.
The second layer or entity layer isn’t an equivalent to Maslow’s needs but this layer does build upon and requires the lower level to be satisfied. The same can be said about the task layer. Without the lower layers the task layer can not and will not be composed. As with Maslow we can’t reach self actualization. We build service models in line with human nature. Which gets us back to the concept and issue of trust.
Why this is “Trust Computing” and why that matters. Services are costly. The purpose of the service oriented or cloud computing approach is to reduce duplicated efforts, create and leverage process to ultimately meet and achieve business goals. The idea is invest more upfront and in the future do more with less. SOA is costly but the idea is that it is only costly up front and over the life of the investment you will save money. The hidden requirement is that once a service is created and established if we are to leverage this service we must understand that this becomes a dependency. We are dependent on the service provider and our business then must TRUST that this provider will maintain operations.
Since fundamentally the entire service model is based on the idea (hidden as it may be) that we MUST trust the service providers it is only logical to conclude that the service models themselves need not be complicated. In other words, if you trust the provider then you trust them.
I am writing this point to simply point out the obvious. Trust computing requires trust in people. The service oriented model and cloud computing models are consistent with human behavior and human needs. Understanding this may help leaders make better technical decisions. Just a thought.