Admittedly, the adapted definition of SOA is a pretty high level, but a number of SOA architects have determined a more in depth delineation of what SOA is all about and what it includes. A number of different vendors sometimes put forward their own versions and variations and so for simplicity sake I offer up the Wikipedia version with its helpful outline of key components…
· Service encapsulation – Many web services are consolidated to be used under the SOA. Often such services were not planned to be under SOA.
· Service loose coupling – Services maintain a relationship that minimizes dependencies and only requires that they maintain an awareness of each other
· Service contract – Services adhere to a communications agreement, as defined collectively by one or more service description documents
· Service abstraction – Beyond what is described in the service contract, services hide logic from the outside world
· Service reusability – Logic is divided into services with the intention of promoting reuse
· Service composability – Collections of services can be coordinated and assembled to form composite services
· Service autonomy – Services have control over the logic they encapsulate
· Service optimization – All else equal, high-quality services are generally considered preferable to low-quality ones
· Service discoverability – Services are designed to be outwardly descriptive so that they can be found and assessed via available discovery mechanisms
· Service Relevance – Functionality is presented at a granularity recognized by the user as a meaningful service
Going forward, Dynamic Work blog will look at each of these in turn as describe how the principles which are transforming the systems world can and are also being applied in the human world as well.