The Open Group has just published SOA Source Book a snapshot of the work at The Open Group in standardization of SOA design and implementation. The book covers a lot of ground from SOA definition to SOA architecture and its relationship to the enterprise architecture to SOA Governance.
The book defines SOA as "an architectural style that supports service orientation". The main characteristics of a service, as defined by the book, are:
- Is a logical representation of a repeatable business activity that has a specified outcome (e.g., check customer credit; provide weather data, consolidate drilling reports)
- Is self-contained.
- May be composed of other services.
- Is a "black box" to consumers of the service.
And the most distinctive features of the SOA architectural style are:
- It is based on the design of the services - which mirror real-world business activities - comprising the enterprise (or inter-enterprise) business processes.
.- Service representation utilizes business descriptions to provide context (i.e., business process, goal, rule, policy, service interface, and service component) and implements services using service orchestration.
.- It places unique requirements on the infrastructure - it is recommended that implementations use open standards to realize interoperability and location transparency.
.- Implementations are environment-specific - they are constrained or enabled by context and must be described within that context.
- It requires strong governance of service representation and implementation.
- It requires a "Litmus Test", which determines a "good service".
The book also defines the following main building blocks of SOA:
- Service
...a repeatable activity that has a specified outcome. A service has a provider, can have one or more consumers, and produces effects that are of value to its consumers.
- Business Processes
... an activity that is related to the enterprise's business mission and that is conducted in a defined, repeatable way. The software services of an SOA exist to support the enterprise's business processes. This relation can and should be symbiotic. Analysis of the business processes is the main way of identifying software services. On the other hand, the existence of the right software services enables new business processes to be developed, to meet new business opportunities.
- Human Actors
Human actors appear when business processes are modeled, and also in models showing other aspects of the system, such as management and security.
- Events
... events appear when business processes are modeled, and also in models showing other aspects of the system, such as management and security.
- Service Descriptions, Contracts, and Policies
An important feature of services in SOA is that they have descriptions that state clearly what they do and how to interact with them. A service contract may be an implicit agreement that the service will conform to its description, or it may be a more formal agreement, which could be recorded in a signed internal enterprise document, or be a legal contract executed between enterprises. A service policy is a course of action that a service provider intends to follow in providing a service, or intends that the service consumers should follow. Service description, contract and policy building blocks appear in models that show how services are consumed. In SOA, this is a very important aspect of system implementation and operation.
- Service Compositions
Service composition is a provider's concept. It relates, not to what a service does, but to how it is performed. Services can be composed of other services. Business processes can be composed of services and other business processes. Service compositions appear in models that show how business processes are supported by services.
- Information Items, Data Items, and Data Stores
Data can be defined as "a re-interpretable representation of information in a formalised manner suitable for communication, interpretation or processing" ... they appear in models that show how services are performed, models that show how services are integrated with each other and with other system components, models that show how the architected system processes data, and in models showing other system aspects, such as performance, management, security, and governance.
As Richard Veryard states in his post:
Most of the ideas in the SOA Sourcebook have been circulating around the SOA world for some time.
They can be found, for example, at CBDI Service Oriented Architecture Practice Portal or Applied SOA: Service-Oriented Architecture and Design Strategies book. Nevertheless, as Antony Reynolds concludes, the book is a "... good place to start getting someone's head around SOA concepts. Well worth a look."