Typically, one person or a small team is responsible for a set of service specifications, services and their
collaborations. This person/team is responsible for fleshing out the design details of the elements and completing all
operation definitions and behavioral models for the service specification as well as the definition of relationships to
other services and service specifications. This person/team may organize the model according to packages or subsystems
in a traditional UML way or may use service partitions to provide logical views of the organization of the model.
Typically the designer responsible for the service collaboration or other models of the composition of services should
be familiar with the binding and encoding options for service channels and messages. These options have differing
performance and security characteristics and the trade-offs made when choosing one over another should be made with the
overall solution non-functional requirements in mind.
While the individual service model elements are refined, the use-case realizations must be refined to reflect the
evolving responsibilities of the service model elements. Typically, one person or a small team is responsible for
refining one or more related use-case realizations. As service model elements are added or refined, the use-case
realizations need to be reconsidered and evolved as they become outdated, or as improvements in the service model allow
for simplifications in the use-case realizations. The individuals or teams responsible for use-case realizations need
to have broader understanding of the behavior required by the use cases and of the trade-offs of different approaches
to allocating this behavior amongst service model elements. In addition, since they are responsible for selecting the
elements that will perform the use cases, they need to have a deep understanding of specified behaviors of the service
model elements themselves.
|