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.
For each Participant that provides a composite service, create a Participant which assembles instances of all the
Participants that are involved in the composition.
- 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.
- Use standard building block text find-and-replace operations to name the
package and its internal elements.
- 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.
- Open the Structure diagram for the assembly Participant.
- 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.
- 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.
Do the following for each ServicePoint that the composite Participant provides:
- In the Structure diagram, select the containing element (the assembly Participant).
- Right-click and select Add Service Modeling > ServicePoint.
- In response to the resulting dialog, type this ServicePoint with the same
ServiceInterface that is applied to the composite Provider's ServicePoint.
- 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:
- From the Composite Structure drawing tool palette, select the Role
Binding tool.
- Draw a binding from the CollaborationUse to the Part which is
being bound.
- 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.
|