|
5. Choreography Process Analysis
The analysis model builds on previous work in modeling web service composition
with Petri nets [7]. Web Service behavior can be seen as a partially ordered set of
operations, where operations are modeled as transitions and the state of the service is
modeled by places. Arrows between places and transitions specify causal relations.
The existence of an arc between service S and transition T is expressing using the
W(S,T)=1 relationship. We extend the model as to provide explicit support for control
domains. The id of a control domain of a service is denoted using the dom function. A
transition always has one controller domain and one controllee domain, denoted by
the cler and clee functions.
The behavior of a service is modeled using a Petri net with one input place and one output place. The input place absorbs information, while the output place emits information. An activity is modeled by a net with exactly one input place and one output place. A net that represents the behavior of a service is an activity. The definition of an activity is intentionally very loose. This makes it possible to map the Petri net of the global view of a composition to different activity diagrams, hence, allowing a service composition to be seen from different perspectives. Composite services map to composite activities. The behavior of a non-composite service is an atomic activity. It cannot be further decomposed into smaller activities. Atomic activities take place within a single domain of control. An interaction is a subnet which connects activities. An interaction may have several input places and several output places. An interaction’s input places map to activity output places, and its output places map to activity input places. An interaction may span over several domains of control. An interaction is composed of interaction contributions, which execute on a single domain of control. Interaction contributions may have several input and output places. A choreography process is modeled as set of superimposed collaboration activities that form a single service net. A collaboration activity is a set of service nets. The choreography process interconnects the service nets of its collaboration activities by refining their interactions. Composition can be expressed both in terms of service entity composition and activity composition. Composition in terms of service entities is treated in [7]. We adopt the following notations: e . o represents an empty activity. It is an activity performed by the empty service e . The empty service performs no operations. I.i represents the identity activity. It is an activity performed by the identity service I. The identity service performs a null operation i. The emitted information is the same as the absorbed information. For service composition modeling, we adopt the standard service composition operators, such as sequential or parallel operators. Also, we adopt the service refinement operator [7]. ref(S1, a, S2) is a service composition operator that expands the transition labeled a within service S1 by a refining service S2. The operation modeled by the transition where the refinement is applied is replaced by a more detailed non-empty service. Refinement is the transformation of a design from a high level form to a lower level, more concrete form. It allows hierarchical modeling. We introduce the transposed operation denoted by fer(S1, i) where service S1 is replaced by the identity service I, whose identity operation is labeled i.
For activity composition modeling, we adopt the following notation. We use the
letters A, B,.. to denote activities, and the letters S,T,.. to denote services. The statement
(A)ab=(S.m)ab defines an activity A which represents the execution of operation m
on service S. The activity is initiated on domain a (an entity within domain a send a
request message on operation m of service S) and terminates on domain b (a response
message is sent to an entity of domain b).
An activity has exactly one entry transition, we denote by Ti
S.m. Similarly, an activity has exactly one exit transition, To
S.m. Interactions are refined by composing activity
transitions. Activity transitions are composed into interaction contribution by introducing
an intermediary place between the transition, represented by the * operator.
The transition composition operator is labeled with the id of the control domain that
implements the composition. Interaction contributions are therefore well localized
within a domain. For example, a sequential composition of activities that span multiple
domains can be decomposed into 4 interaction contribution, where oo
represent
the output transition of the empty service and ii
I represents the input transition of the identity service.
Figure 3a and 3b illustrate a service composition that spans 4 domains of control
and show how a BPEL composition differs from a ECF service composition.
Fig. 2. Choreography Process Metamodel |