Overview
This tool mentor describes how to create ServiceInterfaces and to note their exposure from candidate services, which are
modeled using SoaML Capabilities. The instructions apply for Rational Software Architect for WebSphere
Software, Version 7.5.4 or later.
The following steps are performed in this tool mentor:
Model element creation techniques are described in Tool Mentor: Create SoaML Model Elements. Those instructions are not repeated here.
The following diagram illustrates the portions of the service model structure that are used in this tool mentor.
Notable aspects include:
-
Capabilities are created in the Capabilities package.
-
An implementation package structure -- the part of the model that "owns" the ServiceInterfaces and supporting
model elements -- has been created.
-
Important elements like ServiceInterfaces are packaged with supporting elements, such as diagrams.
-
Two building blocks are available to create ServiceInterface packages and the elements they contain:
-
In one case, we create a ServiceInterface that is a stereotyped Class. This is used when the service is
involved in more than simple request-response communication patterns and thereby requires at least one
provided interface and at least one required interface.
-
In the other case, we create a ServiceInterface that is a stereotyped Interface. This is used when
the service is involved only in simple request-response communication.

-
Determine where the ServiceInterface you are about to create needs to be located within the implementation package
structure. In the Package Explorer, create the hierarchy of owning packages if it doesn't already exist.
-
Select the appropriate ServiceInterface building block. If you aren't certain whether the ServiceInterface you are
creating will be "simple" or "collaborative," select the "collaborative" building block.
-
Copy the building block and paste it under the appropriate owning package structure.
-
Use standard building block text find-and-replace procedures to name the elements of the building block
appropriately.
-
Create an <<Expose>> relationship from the
ServiceInterface to the capability. There are many ways to do this. We describe one.
-
In the Project Explorer, select the newly created ServiceInterface.
-
Right-click and select the Add Services Modeling > Expose menu item.
-
Use the resulting dialog to identify the Candidate Service to which the relationship is to be created.
It can be useful to build one or more diagrams that graphically depict the expose decisions. A Free Form diagram under
either the Capabilities package or the Services View is good for this. Communicate your decision to your fellow users,
so that you collectively can be consistent in your approach. In our sample design model, we depict the <<Expose>> relationships on the Capabilities -- Overview diagram.
Place the capabilities from which ServiceInterfaces are to be exposed onto a Free Form diagram under the
Capabilities package.
-
Select each such capability.
-
Right-click, select Add Services Modeling and then either Simple or Collaborating
ServiceInterface, whichever is appropriate.
A new ServiceInterface is created, owned by the package that owns the Free Form diagram you are using. An <<Expose>> relationship also is created from the ServiceInterface
to the capability.
Relocate the ServiceInterface to the appropriate place in the implementation package structure.
-
Determine where the ServiceInterface you created needs to be located within the implementation package
structure.
-
In the Package Explorer, create the hierarchy of owning packages, if it doesn't already exist.
-
Under this owning package structure, create a package with key words that indicate that it is a
<<serviceSpecPackage>>.
-
Cut and paste (or drag) the ServiceInterface from the Capabilities package and into the serviceSpecPackage.
|