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.

<strong>and</strong> refer the interested reader for this to the AsmBook [6]. To define the various interpretations of<br />

the OR-join as different instantiations of one abstract model we make use of the ASM refinement<br />

method defined in [3].<br />

3.2 <strong>Business</strong> Process Diagrams<br />

As common in the field, we mathematically represent any business <strong>process</strong> as a graph. The nodes<br />

represent the <strong>workflow</strong> objects, where activities are performed depending on a) resources being<br />

available, b) data or control conditions to be true <strong>and</strong> c) events to happen, as described by transition<br />

rules associated to nodes. These rules define the meaning of the corresponding <strong>workflow</strong> constructs.<br />

The arcs define the graph traversal, i.e. the order in which the <strong>workflow</strong> objects are visited for the<br />

execution of the associated rules.<br />

We freely use the usual graph-theoretic concepts, for example source(arc), target(arc) for source<br />

<strong>and</strong> target node of an arc, pred(node) for the set of source nodes of arcs that have the given node<br />

as target node, inArc(node) for the set of arcs with node as target node, similarly succ(node) for<br />

the set of target nodes of arcs that have the given node as source node, outArc(node) for the set<br />

of arcs with node as source node, etc.<br />

All the <strong>workflow</strong> transition rules, associated to nodes to describe the meaning of the <strong>workflow</strong><br />

construct associated to this node, take the following form (usually instantiated by additional parameters).<br />

They state upon which events <strong>and</strong> under which further conditions on the control flow,<br />

the underlying data <strong>and</strong> the availability of resources, the rule can fire to perform specific operations<br />

on the underlying data (‘how to change the internal state’) <strong>and</strong> control (‘where to proceed’), to<br />

possibly trigger new events (besides consuming the triggering ones) <strong>and</strong> to operate on the resource<br />

space to take possession of the needed (or to release not any more needed) resources.<br />

WorkflowTransition(node) =<br />

if EventCond(node) <strong>and</strong> CtlCond(node)<br />

<strong>and</strong> DataCond(node) <strong>and</strong> ResourceCond(node) then<br />

DataOp(node)<br />

CtlOp(node)<br />

EventOp(node)<br />

ResourceOp(node)<br />

A <strong>workflow</strong> or business <strong>process</strong> modeling language interpreter is a set of such rules, covering all<br />

language constructs, together with a scheduler to choose at each moment a node where a rule can<br />

be fired, which is the case when its guard is true in the current state. In this way one can define<br />

for example the semantics of the <strong>BPMN</strong> st<strong>and</strong>ard by an interpreter with rules (more precisely rule<br />

schemes) for each <strong>BPMN</strong> flow object (activities, events, gateways) [7]. For the discussion of the<br />

OR-join problem we can focus the discussion on gateways only (see Sect. 3.4). Furthermore, for<br />

this discussion events <strong>and</strong> resources play no role <strong>and</strong> therefore will not be mentioned any more.<br />

3.3 Token-Based Sequence Flow Interpretation<br />

Although the <strong>BPMN</strong> st<strong>and</strong>ard document declares to use the token-based interpretation of control<br />

flow only for illustrative purposes [8, p.35], for the sake of definiteness we represent it mathematically<br />

by associating tokens—elements of a set Token—to arcs, using a dynamic function<br />

token(arc). 8 A token typically includes information on (the <strong>process</strong>ID of) the <strong>process</strong> instance to<br />

which it belongs. Typically token(arc) denotes a multiset of tokens currently residing on arc.<br />

token : Arc → Multiset(Token)<br />

8 We deliberately avoid introducing yet another category of graph items, like the so-called places in Petri<br />

nets, whose only role would be to hold these tokens.<br />

6

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

Saved successfully!

Ooh no, something went wrong!