Task: D1 - Identify and categorize services
To identify the services needed to perform the business processes modeled in the Business Modeling Discipline, classifying them by type of service. To define the Services Architecture diagram specified in OMG SoaML standard identifying participants, services to be provided to other parties and consumed from other parties based on interchanged messages, and service contracts to define the roles in the services interaction. The BPMN business process models has to be marked with additional information such as defining as "Service" the type of the activities to be supported by services, to be generated by means of the defined QVT transformations from BPMN to SoaML.
Purpose

To identify the services needed to perform the business processes modeled in the Business Modeling Discipline, classifying them by type of service. To define the Services Architecture diagram specified in SoaML identifying participants, services to be provided to other parties and consumed from other parties based on interchanged messages, and service contracts to define the roles in the services interaction.

Relationships
RolesPrimary: Additional: Assisting:
InputsMandatory: Optional:
  • None
External:
  • None
Outputs
Main Description

Services represent features related to business concepts, business process and their sub-processes and required functionalities, which have to be provided by services mapped to software subsystems. The use of SoaML in this activity implies defining the Services Architecture (SA) diagram which specifies the participants, the contracts for the services and the roles they play in each one as provider or consumer of the service. To identify the services to support the business process, we look at each interchanged message between the pools, first defining which activities will be supported by services, and setting the activity type to “Service”. This identification is carried out from the point of view of the provider of the service. Upon considering the direction of the interchanged messages, we therefore define that the activity to which the message is an incoming message is that to be supported by a service. The activity from which the message is an outcoming message is therefore the consumer of the service. The pool containing each activity will define the participant that provides or consumes the service, depending on where the activity is supported or invokes the defined service. This information will then be set in the Service Contract for the defined service, indicating the consumer and provider roles as defined. For each general Participant, its internal participants are also identified in correspondence with its internal defined Lanes, and the internal Architecture for the Participant corresponding to the organization in which the development effort is carried out, can be later defined using an specific Service Architecture diagram for that participant only. QVT transformations are defined to generate services models specified in the OMG SoaML standard from business process models specified in BPMN, that can be executed in the Eclipse environment. 


SoaML Services Architecture diagram for the Reseller business process:

 


Other view in the Services Architecture diagram shows some of the participants defined along with their ports for providing (Service) and consuming (Request) identified services, and its interfaces (provided and consumed) corresponding to each port.   

The categorization of services into a conceptual hierarchy is helpful for avoiding their proliferation in an indiscriminate manner, which is known as "services syndrome", and can be done analyzing the service obtained (atomic, composed).

Properties
Multiple Occurrences
Event Driven
Ongoing
OptionalYes
PlannedYes
Repeatable
Key Considerations
Services models are specified using the OMG SoaML standard which is an UML profile for services modeling providing a metamodel an stereotypes specifc for services.For this activity the SoaML Services Architecture diagram has to be modeled using some UML tool that also provides the profile (Cameo SOA+ Magic Draw, Modelio, etc.).