Tool Mentor: Assemble Participants
Assemble instances of Participants that collaborate to realize composite services, business processes, and use cases.
Tool: Rational Software Architect
Relationships
Main Description

Overview

We reduce coupling in the service model by not statically linking Participants.   We don't create associational or dependency relationships between these elements.   Rather, we favor describing how instances of Participants are related at run time [JAM09d].   Do this using the following steps:

Model element creation techniques are described in Tool Mentor: Create SoaML Model Elements.   Those instructions are not repeated here.

The provided instructions apply for Rational Software Architect for WebSphere Software, Version 7.5.4 or later.

Identify and create "Assembly" participants

For each Participant that provides a composite service, create a Participant which assembles instances of all the Participants that are involved in the composition.

  1. Create an "assembly" Participant package and its constituent elements by using the <<serviceParticipantPackage>> building block. Use standard building block copy-and-paste techniques. Create this new package so that it is at the same level in the model's package hierarchy as is the composite for which it serves as an assembler. In the sample SoaML design model, the example of this relationship is OrderProcessor as the composite and Manufacturer as the assembler.
  2. Use standard building block text find-and-replace operations to name the package and its internal elements.
  3. Use the guidance provided in Tool Mentor: Create and Configure Participants to determine which of the supporting internal model elements need to be retained. Do not eliminate the Structure diagram; it is essential.

Add and connect parts

  1. Open the Structure diagram for the assembly Participant.
  2. From Project Explorer, drag into the Structure diagram each Participant that is involved in the composition. This will be (a) the Participant that provides the composite service and (b) Participants that collectively offer all of the services that the composite uses to realize its provided operations. These parts represent instances of these Participants.
  3. From the Service drawing tool palette, select the Service Channel tool. Draw a ServiceChannel from each RequestPoint on the instance of the composite Participant to a ServicePoint on a used instance which has the same type as the RequestPoint.

Add ServicePoints and Delegate behavior

Do the following for each ServicePoint that the composite Participant provides:

  1. In the Structure diagram, select the containing element (the assembly Participant).  
  2. Right-click and select Add Service Modeling > ServicePoint.
  3. In response to the resulting dialog, type this ServicePoint with the same ServiceInterface that is applied to the composite Provider's ServicePoint.
  4. Draw a ServiceChannel from the assembly Participant's ServicePoint to the composite's ServicePoint. The ServiceChannel should have an arrow on the end next to the composite. If not, select the ServiceChannel, select its Properties View, select the Advanced tab, and set its Kind property to Delegation.

Optionally, drag onto the diagram a ServicesArchitecture that defines the contract for the interactions between the assembled Participant instances, thereby creating a CollaborationUse. Bind the roles in the CollaborationUse to the parts in the Structure diagram. Follow these steps to perform the binding:

  1. From the Composite Structure drawing tool palette, select the Role Binding tool.  
  2. Draw a binding from the CollaborationUse to the Part which is being bound.  
  3. Use the resulting dialog to select the CollaborationUse role to which the Part is being bound.  

Do this until all CollaborationUse roles have been bound.

The result is expected to be similar to what is shown in Example: Manufacturer Structure Diagram with Services Architecture.

More Information