The following two examples show (1) a model of a Participant that has a ServicePoint typed by a ServiceInterface, and
(2) a Participant with a ServicePoint that is typed by a simple UML Interface.
In Figure 1, an invoicing service is provided by an Invoicer Participant. The Invoicer
Participant is seen to realize the Invoicing UseCase that describes the high-level requirements for the service
provider and its services. The invoicing ServicePoint is typed by the InvoicingService ServiceInterface that defines
the interface to the service. A ServiceInterface, rather than a UML Interface, was used here because use of the
Service requires a protocol that describes the choreography between the service provider and the service
consumer. This follows from the ServiceInterface having both a provided interface and a required
interface. The protocol definition is not part of this example.
The Invoicer Participant has two ownedBehaviors, one an Activity and the other an OpaqueBehavior that
are the methods for the Operations provided through the invoicing service and model the implementation of those
capabilities - no stereotypes are provided as these are standard UML constructs.
Figure 1. ServicePoint typed with a ServiceInterface
Figure 2 shows an example of a scheduling Service provided by a Scheduling Participant. In this
case, the type of the Service is a simple Interface indicating what capabilities are provided through the Service, and
that consumers are not required to provide any capabilities and there is no protocol for using the service
capabilities. SoaML allows Services type typed by a simple interface in order to support this common case.
Figure 2. ServicePoint typed with a simple UML Interface
|