The following people use the service interface:
-
Implementers of the services, for an understanding of the interface the service provides,
but also the behavior its clients expect.
-
Implementers of service clients, for an understanding of the interface the service
provides, but also how the service expects to be interacted with.
-
Designers of services, in understanding the relationship between specifications and the
relationship between services and the specifications they implement.
-
Those who design the next version of the system, to understand the functionality in the service model.
-
Those who test the classes, to plan testing tasks.
The service specification has to provide both the provider (implementer) of a service and the consumer of a service
with a reasonable and complete specification of the following aspects:
-
Interface Specification; this specifies the set of operations provided by a service realizing this
specification. Each operation is named and provides a signature composed of input, output, and exception messages.
-
Behavioral Specification; this specifies the protocol between the service and the consumer. A service may be
stateful (either explicit or implicit - see the guideline State Management for Services) or it may have certain conversational
requirements fulfilled by the client.
-
Policy Specification; this specifies constraints and policies regarding the operation of the service.
Examples of policies include security, availability, quality of service and so on; these also represent
non-functional requirements of the solution as a whole.
|