07.03.2014 Views

BPMN and Beyond Business process modelling notation, workflow ...

BPMN and Beyond Business process modelling notation, workflow ...

BPMN and Beyond Business process modelling notation, workflow ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

WorkflowTransition(node) represents an abstract state machine, in fact a scheme (sometimes<br />

also called a pattern) for a set of concrete machines that can be obtained by further specifying<br />

the guards <strong>and</strong> the submachines for each given node. In the next section we illustrate such<br />

an instantiation <strong>process</strong> to define the behavior of <strong>BPMN</strong> gateways by ASM rules taken from the<br />

high-level <strong>BPMN</strong> interpreter defined in [13].<br />

5 Instantiating WorkflowTransition for <strong>BPMN</strong> Gateways<br />

In this section we instantiate WorkflowTransition for <strong>BPMN</strong> gateways, nodes st<strong>and</strong>ing for<br />

one of the three types of <strong>BPMN</strong> flow objects. The other two types are event <strong>and</strong> activity nodes,<br />

whose behavior can be described by similar instantiations, see [13] for the details. We start with<br />

the rule for so-called complex gateway nodes, from which the behavior of the other <strong>BPMN</strong> gateway<br />

constructs can be defined as special cases.<br />

5.1 ComplexGateTransition<br />

Gateways are used to describe the convergence (also called merging) <strong>and</strong>/or divergence (also called<br />

splitting) of control flow, in the sense that tokens can ‘be merged together on input <strong>and</strong>/or split<br />

apart on output’ [15, p.68]. For both control flow operations one has to determine the set of<br />

incoming respectively outgoing arcs they are applied to at the given node. The particular choices<br />

depend on the node, so that we represent them by two abstract selection functions, namely to<br />

select Consume the incoming arcs where tokens are consumed,<br />

select Produce the outgoing arcs where tokens are produced.<br />

Both selection functions come with constraints: select Consume is required to select upon each<br />

invocation a non-empty set of enabled incoming arcs, whose firingTokens are to be consumed in<br />

one transition. 5 select Produce is constrained to select upon each invocation a non-empty subset<br />

of outgoing arcs o satisfying an associated OutCond(o). On these arcs complxGateTokens are<br />

produced, whose particular form may depend on the firingTokens. We skip that in addition, as<br />

(part of) DataOp(node), multiple assignments may be ‘performed when the Gate is selected’ [15,<br />

Table 9.30 p.86] (read: when the associated rule is fired).<br />

ComplexGateTransition(node) =<br />

let<br />

I = select Consume (node)<br />

O = select Produce (node)<br />

in WorkflowTransition(node, I , O)<br />

where<br />

CtlCond(node, I ) = (I ≠ ∅ <strong>and</strong> forall in ∈ I Enabled(in))<br />

CtlOp(node, I , O) =<br />

if O ≠ ∅ <strong>and</strong> O ⊆ {o ∈ outArc(node) | OutCond(o)} then<br />

ProduceAll({(complxGateToken(firingToken(I ), o), o) | o ∈ O})<br />

ConsumeAll({(t i , in i ) | 1 ≤ i ≤ n}) where<br />

[t 1 , . . . , t n ] = firingToken(I ), [in 1 , . . . , in n ] = I<br />

5 A function firingToken(A) is used to express a structural relation between the consumed incoming <strong>and</strong><br />

the produced outgoing tokens, as described in [15, p.35]. It is assumed to select for each element a of<br />

an ordered set A of incoming arcs some of its token(a) to be Consumed. For the sake of exposition<br />

we make the usual assumption that inQty(in) = 1, so that we can use the following sequence <strong>notation</strong>:<br />

firingToken([a 1 , . . . , a n ]) = [t 1 , . . . , t n ] denotes that t i is the token selected to be fired on arc a i .<br />

7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!