Services and Service Descriptions

Services

The central actor is services. A service, as the term is generally understood, also combines the following related ideas:

In addition to capabilities, a service consists of the service description, the execution context of the service and the contracts and policies that relate to services and service participants.

These concepts emphasize a distinction between a capability and the ability to bring that capability to bear. Needs and capabilities exist independently of SOA, however within SOA, services are the mechanism by which needs and capabilities are brought together.

A core capability of the service is providing a service interface. The service interface includes "specific protocols, commands, and formats for information exchange by which actions are initiated that result in the real world effects as specified through the service functionality portion of the service description".

Generally, this is accomplished by sending and receiving messages, but it is also possible to initiate some action by referring to the state of something external to either the service consumer without exchanging messages, such as a value in a database.

Service Descriptions

The service description (and a corresponding description associated with the service consumer and its needs) contains information that can include:

The service description promotes visibility between the service consumer and provider. The description provides the elements required to determine the needs of the parties involved in the interaction. This is particularly important when the participants are in different ownership domains, that is they may be previously unknown to each other and have no history of interactions.

A service description expresses the function of the service and the real world effects that result from it being invoked. This portion of the description has a vocabulary to accommodate translation between different domains, in other words employing either a common vocabulary or one that can be translated ( is mappable ).

The documents states: "The description of functionality may include, among other possibilities, a textual description intended for human consumption or identifiers or keywords referenced to specific machine-processable definitions. For a full description, it MAY indicate multiple identifiers or keywords from a number of different collections of definitions".