Another key aspect of the Artifact: Service Model which must be developed during specification
is the capture of the dependencies between services. As
a part of the service model, a number of dependencies are naturally captured. These can be as obvious as the
relationship between a service and its specification or more complex, such as the logical relationship between two
independent services because they both implement the same specification. These dependencies (described in Artifact: Service Model and Report: Service Dependencies) are important in understanding the ability to deploy a
service as an autonomous unit and will affect its evolution over time as dependencies become constraints on the service
ability to change.
Service dependencies describe the relationships between services that arise in the larger context of how they will be
used. When a service is formed from a composition of other services, the composing service depends on the composed
services. When services are used in the context of a business process, there is a process related dependency that
arises from the inherent sequence of steps in the business process that dictates the order in which services will be
used.
-
Functional dependencies/Composite Dependency that arise from composition of multiple services.
-
-
Example: Reserve Vehicle will depend on Check rates and Make Reservation for its functionality
-
Temporal dependency where there is some pre- or post- condition or processing requirement that will need to
be accounted for in compositions or choreographies.
-
-
Pre-condition dependency - i.e. another service invocation must have executed successfully before
the current invocation can begin execution.
-
Processing dependency - i.e. another service invocation is required to complete the successful
execution of the current service.
-
Post-condition dependency - this appears in cases where a service requires another service
invocation after its execution.
These dependencies may often be a part of the decision process a service client has to go through in choosing to reuse
a service, particularly if there are multiple implementations to chose from.
The kinds of dependencies/associations in the service model that are important as listed below.
-
The relationship between a service and the Service Providers that implements it.
-
The relationship between a service and the Service Specification it implements.
-
The relationship between a service and any Service Specification it requires.
-
The relationship between a service and any Service Channel that connects it to other services and therefore the
service on the other end of the channel.
-
The relationship between a service and any Service Partition in which the service appears.
It is therefore important that all service specifications be complete, not only with respect to the operations and
messages they provide, but also any dependencies such as required interfaces for callback operations. The report Service Dependencies provides an overview of the important dependencies for the
service model.
|