Task: Model Service Dependencies
This task defines and specifies the services and structure of a service-oriented solution in terms of collaborations of contained design elements and external subsystems/interfaces.
Purpose
  • To define the services and structure of a service-oriented solution in terms of collaborations of contained design elements and external subsystems/interfaces.
  • To analyze the service for commonality and variability (see Guideline: Variability Analysis).
  • To document the specification of services.
  • To determine the dependencies and the communication between services.
Relationships
Main Description
This task refines the set of Artifact: Service Specifications identified and qualified during Activity: Existing Asset Analysis and provides additional structure and detail. This design-level detail includes the interface, message and composition of services and the allocation of services to providers.
Steps
Model Service Dependencies

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.

Properties
Multiple Occurrences
Event Driven
Ongoing
Optional
Planned
Repeatable
More Information