The Service Interface
Service interfaces are key specification elements within service design. A service interface must specify
everything that a potential consumer of the service needs to know to decide if they are interested in using the
service, as well as exactly how to use it. It must also specify everything a service provider must know to successfully
implement the service. At the heart of SOA is the construction of service value chains that connect consumer needs with
compatible provider capabilities. Service interfaces define the goals, needs and expectations of consuming participants
as well as the value propositions, capabilities and commitments of provider participants. They therefore provide the
information necessary to determine compatible needs and capabilities.
Ideally, this information is provided in a single place. This makes it easy to search asset repositories for reusable
services and to get all of the necessary information without having to navigate many different documents or search for
related elements. Service interfaces include at least this information:
-
The name of the service, suggesting its purpose.
-
The provided and required interfaces, thereby defining the functional capabilities that are provided by the service
and those that it requires of its consumers Note: This is not about how the service is implemented, but rather the
interaction between the consumers and providers for this service.
-
Any protocol that specifies rules for how the functional capabilities are used or in what order.
-
Constraints that reflect what successful use of the service is intended to accomplish and how it will be evaluated.
-
Qualities that service consumers expect to receive and that providers are expected to provide, such as
cost, availability, performance, footprint, suitability to the task, competitive information, and so forth.
-
Policies for using the service, such as security and transaction scopes for maintaining security and integrity or
for recovering from the inability to successfully perform the service or any required service.
Service interfaces are modeled in SoaML using the ServiceInterface model element.
|