Here is an introduction to some of the design principles associated with Service Oriented Solution.
Standardized Service Contract
Services expose their capabilities and functions through a service contract. The Standardized Service Contract emphasizes on the things to consider when you design the Services public technical interface and monitoring the quantity and nature of content that will be exposed as the service’s contract.
Emphasis is place on the aspects of contract design, including how data types and data models are defined and policies are asserted.
There is also a focus on making sure the service contracts are optimized, granular enough and standardized to guarantee that the endpoints exposed are consistent, reliable and maintainable.
Reuse is an extremely important principle in Service-Orientation. It’s so important that it becomes the core part of the typical service analysis and design processes and also forms the basis for service models.
This principle of Service Reusability emphasizes the positioning of services as an enterprise resources with agnostic functional contexts. Many design considerations are applied to make sure that individual service capabilities are designed in relation to an agnostic service context and to ensure they can promote the necessary reuse requirement.
Service Loose Coupling
Coupling is a connection or relationship between two entities. Coupling depends on the level of dependency between entities or components. This principles emphasizes on the creation of specific type of relationship within and outside of service boundaries, with main emphasis on reducing dependencies between Service contract, its implementation and the Service consumers.
Service Loose Coupling design principle promotes independent design and development of service log and implementation while still maintaining its interoperability with consumer that rely on the service capabilities.
There are numerous types of coupling in the design of Service, each of which can influence the content and granularity of its contract.
Service Abstraction principle emphasizes the need to hide the details of the service. Hiding the details enables and promotes loosely coupled relationships.
When considering different abstraction levels various forms of meta data comes into picture. The extent to which the Service Abstraction principle is applied can affect the granularity of the Service Contract and can also influence the cost of manageability of the service.
For services to be able to function consistently and reliably, their solution logic needs to have good control over its environment and resources.
The Service Autonomy principle supports the extent to which other design principles can be effectively realized in real world production environments by promoting design characteristics that maximizes a service’s reliability and predictability.
This principle refers to various problems that relates to the design of service logic and the service’s actual implementation environment. Isolation levels and service normalization considerations are considered to achieve optimum level of autonomy, especially for reusable services.
For services to be used as IT assets they should be easily identifiable and understood and a reusable need occurs. The service design needs to take the communications quality and its individual capabilities into account.
Excessive state information can compromise the availability of a service and reduce its scalability potential. Services should be ideally designed to be stateful only when required.
Applying the principle of Service Statelessness requires that the means of attainable statelessness be analyzed, based on the ability of the environments technology architecture to provide state management delegation.
The ability of effectively compose services is critically important to achieve the fundamental goals of service oriented computing. Services are expected to be able to participate as effective composition members, regardless of whether they need to be immediately added to the composition. The principle of Service Composability takes care of this ensuring that a variety of considerations are taken into account.
SOA: Principles of Service Design –by Thomas Erl