- Conformance with the Reference Model
- Cross-coverage of core concepts
The authors of the Conformance Guidelines of the Reference Model for Service Oriented Architecture (SOA-RM, section 4) expect that any design for a system that adopts the SOA approach will:
- Have entities that can be identified as services as defined by this Reference Model;
- Be able to identify how visibility is established between service providers and consumers;
- Be able to identify how interaction is mediated;
- Be able to identify how the effect of using services is understood;
- Have descriptions associated with services;
- Be able to identify the execution context required to support interaction; and
- It will be possible to identify how policies are handled and how contracts may be modeled and enforced.
SoaML’s Conformance with SOA-RM
Be able to identify how visibility is established between service providers and consumer
SoaML defines a Service metaclass – a kind of UML Port, which establishes the interaction point between service consumers and providers. A Service’s type is a ServiceInterface that provides all the information needed by a consumer to use a service. Mechanisms for discovering existing services and descriptions consumers would use to determine the applicability of availability of existing services for their needs (awareness) are out of scope.
Be able to identify how interaction is mediated
Interaction between a service consumer and provider connected through a service channel is mediated by the protocol specified by the service provider. The protocol is defined by the service interface used as the type of the service and may include a behavior that specifies the dynamic aspects of service interaction. The interfaces realized and used by a service specification define the operations, parameters, preconditions, post conditions (real world effect), exceptions and other policy constraints that make up the static portion of the service specification.
Be able to identify how the effect of using services is understood
The effect of a service is specified by the post conditions of the provided service operations assuming the consumer follows the policies, preconditions, and protocols specified by the service interface.
Have descriptions associated with services
This specification includes a service interface for describing the means of interacting with a service. Service discovery and applicability are out of scope.
Be able to identify the execution context required to support interaction
The execution context is specified by the semantics for UML2 as extended by this specification.
It will be possible to identify how policies are handled and how contracts may be modeled and enforced
Policies are constraints that can be owned rules of any model element, including in particular service ports and service participant components. The actual form of these policies is out of scope.
The authors of the SoaML have also collected other definitions around services and SOA and are analyzing this with respect to further need for harmonization between the standardization groups, in particular for the use of the concept service.
SOA-O Conformance with SOA-RM
The Open Group SOA Ontology extends, refines, and formalizes some of the core concepts of the SOA RM. It is used for understanding of core SOA concepts and facilitates a model-driven approach to SOA development.
Cross Coverage of Core Concepts
The authors of the Service Oriented Architecture Modeling Language (SoaML, Appendix A) provided a table that compared the definition of the main concepts of the SOA-RM, the SOA-O (older version), and the SoaML:
|Service Oriented Architecture||An architectural paradigm for defining how people, organizations and systems provide and use services to achieve results.||A paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains.||An architectural style that supports service orientation. An architectural style is the combination of distinctive features in which architecture is performed or expressed.|
|Service||Service is defined as a resource that enables access to one or more capabilities. Here, the access is provided using a prescribed interface and is exercised consistent with constraints and policies as specified by the service description. This access is provided using a prescribed interface and is exercised consistent with constraints and policies as specified by the service description. A service is provided by an entity—called the provider—for use by others. The eventual consumers of the service may not be known to the service provider and may demonstrate uses of the service beyond the scope originally conceived by the provider.||A mechanism to enable access to one or more capabilities, where the access is provided using a prescribed interface and is exercised consistent with constraints and policies as specified by the service description.||A logical representation of a repeatable business activity that has a specified outcome (e.g., check customer credit; provide weather data, consolidate drilling reports). It is self-contained, may be composed of other services, and is a “black box” to its consumers.|
|Service Contract||A ServiceContract is the formalization of a binding exchange of information, goods, or obligations between parties defining a service. A ServiceContract is the specification of the agreement between providers and consumers of service as to what information, products, assets, value, and obligations will flow between the providers and consumers of that service – it specifies the service without regard for realization or implementation.||A contract represents an agreement by two or more parties. A service contract is a measurable assertion that governs the requirements and expectations of two or more parties.||Adopts SOA-RM definition|
|Service Interface||Defines the interface to a Service or Request. A ServiceInterface defines the interface and responsibilities of a participant to provide or consume a service. It is used as the type of a Service or Request port. A ServiceInterface is the means for specifying how to interact with a Service.||Service Description The information needed in order to use, or consider using, a service.||Description An information item that is represented in words, possibly accompanied by supporting material such as graphics. The Description class corresponds to the concept of a description as a particular kind of information item that applies to something in particular – the thing that it describes. It is not just a set of words that could apply to many things.|
|Collaboration||Collaboration from UML is extended to describe ServiceContracts and ServicesArchitectures.||Interaction: The activity involved in making using of a capability offered, usually across an ownership boundary, in order to achieve a particular desired real-world effect.|
|CollaborationUse||CollaborationUse shows how a Collaboration (ServiceContracts and ServiceArchitectures) is fulfilled.|
|Capability||Identifies or specifies a cohesive set of functions or capabilities that a service provides. The ability to act and produce an outcome that achieves a result. As such, capability involves the capacity, power, or fitness for some specified action or operation. This implies that the entity must have physical, mental, or legal power to generate an outcome that achieves a real world effect. (synonymous with capability). A Capability models the capability for providing, or provided by, a service specified by a ServiceContract or ServiceInterface.|
|Participant||The type of a provider and/or consumer of services. In the business domain a participant may be a person, organization, or system. In the systems domain a participant may be a system or component.||Not explicitly defined|
|Request Port (port stereotype)||A request port defines the port through which a Participant makes requests and uses or consumes services.|
|Service Port (port stereotype)||The service port stereotype of a port defines the connection point the point of interaction on a Participant where a service is actually provided or consumed.|
|ServiceChannel||A communication path between Requests and Services.|
|Real World Effect||Defined as “service operation post condition.”||The actual result of using a service, rather than merely the capability offered by a service provider.||Defined as Effect. Comprises the outcome of performance of the service, and is the value delivered.|