petra: process model based extensible toolset for redesign...

99
Petra : Process model based Extensible Toolset for Redesign and Analysis D.M.M. Schunselaar ? , H.M.W. Verbeek ? , W.M.P. van der Aalst ? , and H.A. Reijers ? Eindhoven University of Technology, P.O. Box 513, 5600 MB, Eindhoven, The Netherlands {d.m.m.schunselaar, h.m.w.verbeek, w.m.p.v.d.aalst, h.a.reijers}@tue.nl Abstract. In different settings, it is of great value to be able to compare the performance of processes that aim to fulfill the same purpose but do so in different ways. Petra is a toolset for the analysis of so-called process families, which support the use of a multitude of analysis tools, including simulation. Through the use of Petra , organisations can make an educated decision about the exact configuration of their processes as to satisfy their exact requirements and performance objectives. The CoSeLoG project, in which we work together with 10 municipalities, provides exactly the setting for this type of functionality to come into play. 1 Introduction Within the CoSeLoG project, we are cooperating with 10 different Dutch mu- nicipalities. Each of these municipalities has to legally provide essentially the same set of services to their citizens but each of these municipalities do in sub- tly different ways [1]. Such “colour locale” gives different solutions to the same problem. Interestingly, by interpolating between the solutions, a solution space with unseen and potentially better process models is spanned. There are few approaches capable of analysing a predefined solution space to identify an attractive design for a particular business process. The ones existing are based on configurable process models, but they are tailored towards a single tool yielding a limited set of performance information. In Business Process Re- design (BPR), the solution space is defined based on best practises and is aimed at finding the best process model instead of analysing a spectrum of process models. The advantage is that solutions can be found not present in any of the models. The disadvantages are that solution present in the models do not need to be found and the best practises are usually based on the intuition of a human expert. Furthermore, BPR approaches found in the literature all display any of the following deficiencies; they are limited in the performance indicators they take into consideration, they are defined with a single tool for analysis in mind, or they are only existent on paper, i.e., lack concrete tool support. ? This research has been carried out as part of the Configurable Services for Local Governments (CoSeLoG) project (http://www.win.tue.nl/coselog/).

Upload: others

Post on 12-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Petra : Process model based Extensible Toolsetfor Redesign and Analysis

D.M.M. Schunselaar?, H.M.W. Verbeek?, W.M.P. van der Aalst?, and H.A.Reijers?

Eindhoven University of Technology,P.O. Box 513, 5600 MB, Eindhoven, The Netherlands

{d.m.m.schunselaar, h.m.w.verbeek, w.m.p.v.d.aalst, h.a.reijers}@tue.nl

Abstract. In different settings, it is of great value to be able to comparethe performance of processes that aim to fulfill the same purpose butdo so in different ways. Petra is a toolset for the analysis of so-calledprocess families, which support the use of a multitude of analysis tools,including simulation. Through the use of Petra, organisations can makean educated decision about the exact configuration of their processesas to satisfy their exact requirements and performance objectives. TheCoSeLoG project, in which we work together with 10 municipalities,provides exactly the setting for this type of functionality to come intoplay.

1 Introduction

Within the CoSeLoG project, we are cooperating with 10 different Dutch mu-nicipalities. Each of these municipalities has to legally provide essentially thesame set of services to their citizens but each of these municipalities do in sub-tly different ways [1]. Such “colour locale” gives different solutions to the sameproblem. Interestingly, by interpolating between the solutions, a solution spacewith unseen and potentially better process models is spanned.

There are few approaches capable of analysing a predefined solution space toidentify an attractive design for a particular business process. The ones existingare based on configurable process models, but they are tailored towards a singletool yielding a limited set of performance information. In Business Process Re-design (BPR), the solution space is defined based on best practises and is aimedat finding the best process model instead of analysing a spectrum of processmodels. The advantage is that solutions can be found not present in any of themodels. The disadvantages are that solution present in the models do not needto be found and the best practises are usually based on the intuition of a humanexpert. Furthermore, BPR approaches found in the literature all display any ofthe following deficiencies; they are limited in the performance indicators theytake into consideration, they are defined with a single tool for analysis in mind,or they are only existent on paper, i.e., lack concrete tool support.

? This research has been carried out as part of the Configurable Services for LocalGovernments (CoSeLoG) project (http://www.win.tue.nl/coselog/).

Page 2: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Fig. 1: Architecture of Petra. Given a set of process models, each of these isanalysed using a set of tools and once analysed added to the set of analysedprocess models. Afterwards, the set of analysed process models can be reused,for example, to find the best model using a Pareto front or to support a processimplementation effort.

We improve the state-of-the-art by providing an approach that is generic, ex-tensible, and supported by automated tools. We provide a generic toolset calledPetra (Process model based Extensible Toolset for Redesign and Analysis), seeFig. 1. In this toolset, there are 3 key concepts: (1) a family of process mod-els (top left), (2) a (set of) properties (inside process models), and (3) a toolinterface (bar with A and B). The process models are defined along 5 perspec-tives; control-flow, data, resource, environment, and experiment. Control-flow ,data, and resources follow the classical subdivision of a process model along theperspectives. The environment perspective allows us to model behaviour out ofcontrol of an organisation, e.g., the arrival rate of new cases. The experiment per-spective is necessary for controlling the experiments which determine whether aprocess model is indeed an improvement.

In order to store the results of the different tools, we have introduced thenotion of a property . These properties can cover a range of things, e.g., expectedcosts, the expected number of handovers, or the sojourn time. Apart from usingthe properties for storing the results of the different tools, these properties alsoallow us to store run-time information making it possible to execute the modelautomatically. This information can vary from possible values a variable maytake and thus the execution path a case takes, to specifying the work sched-ule of resources. Via the tool interface, we can use any analysis tool to enrichthe process model with quality information. Furthermore, by not limiting theframework to a fixed set of properties, we are able to include any property ofinterest.

2

Page 3: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

In the CoSeLoG project, we are working with configurable process models, inparticular Process Trees. Configurable process models are process models whichare enriched with configuration points. An organisation may want to use theseto customise the configurable process model. For instance, an organisation maywant to use the option to remove the payment process. Each configuration pointhas a set of configuration options denoting the possibilities at that point. Byselecting for each configuration point an option, we obtain a process model.All the different process models obtainable by selecting different options for theconfiguration points forms the family of process models.

Apart from providing the architecture and implementation supporting ourtoolset, we also present a case study, which involves the application of our toolseton the models from the municipalities. This case study is twofold: (1) we showreality can be mimicked by our models, and (2) the municipalities can indeedlearn from each other. The first part is shown by simulating the process model ofthe municipalities resulting in performance indicators highly similar to reality.The second part is shown by combining the models of the municipalities into asingle configurable process model and by analysing the solution space spannedby this configurable process model.

The remainder of this paper is organised as follows: Section 2 presents thestate-of-the-art as well as some tools for analysing process models. In Sect. 3, wepresent our high-level architecture in more detail. Building upon the high-levelarchitecture, we present the parts within that architecture; the Process Treesare presented in Sect. 4, the properties currently used within our framework arestated in Sect. 5, the transformation used for our first tool (CPN Tools) is inSect. 6, and the actual implementation of our toolset (Sect. 7). After presentingthe key concepts of our framework, we show with a case study the applicabilityof Petra on a process from the municipalities (Sect. 8). Finally, in Sect. 9, wepresent our conclusions and sketch a panorama of future extensions and researchdirections.

2 Related Work

Our research touches on a number of topics. First, from our input, we haveconfigurable process models. Second, to be able to store and compute KPIs, weuse properties and analysis techniques on our process models. Finally, we can usePetra for business process redesign of process models. Each of these is treatedin isolation in the remainder of this section.

2.1 (Configurable) Process Models

Configurable process models have been defined for different modelling formalisms,e.g., configurable EPC [2,3], configurable YAWL [4], configurable BPEL [4], andCoSeNets [1]. The first 3 formalism are more expressive than the latter, i.e., theCoSeNets are based on block-structured process models. However, with the first3, explicit attention has to be paid to the soundness [1] of the configured model.

3

Page 4: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Therefore, we select CoSeNets and extend these since CoSeNets only focus onthe control-flow perspective.

The approach that is most closely related to ours is presented in [5]. Theconfigurable process models used in this approach are modelled in Protos. Byconverting the configurable process model into a CPN model, the authors can usethe same model to analyse multiple variants of the same process model. The mainlimitation of their approach is the fact that they focus on a single tool (CPNTools) which results in a non-extensible set of analysis results. Furthermore,their resource model is rather simplistic, i.e., all resources are available all of thetime, no support for data, i.e., exclusive choices are chosen randomly, and forsoundness, state space analysis has to be employed (see [6], for an overview onthe importance of correctly modelling resources).

In [7], a questionnaire-based approach is presented to deduce on a high levelthe requirements a user poses on the best instantiation of a configurable processmodel. This, in combination with functional requirements, results in an instan-tiated process model closest to the user’s requirements. This approach does notgive any performance information but it can be used to beforehand limit theto-be-analysed solution space.

The Provop framework contains context-based configuration of the config-urable process model [8]. Within the Provop framework, there are so-called con-text rules which limit the configuration possibilities by including contextual in-formation. These context rules specify, for instance, that if the user requests highquality, then certain other activities have to be included in the process model.As with the approach by [7], the focus of this approach is not on performanceinformation but can again be used to limit the to-be-analysed solution space.

2.2 Performance Indicators and Analysis Techniques

Efforts have been made in enriching BPMN models with simulation informationby the WfMC standard BPSim [9]. However, we allow, amongst others, for aricher resource model by supporting arousal-based working speeds. Furthermore,BPSim is tailored towards simulation and thus abstracting from non-simulationrelated information. We would like to be able to encode this non-simulation re-lated information as this might be of importance for different analysis techniques.The properties are related to and inspired by BPSim and efforts are made for atransformation from properties to BPSim to be able to work with a standardisedinterface towards simulation tools.

Analysis techniques can be subdivided into two groups: quantitative analy-sis and qualitative analysis. Quantitative analysis methods are mainly relatedto, amongst others, computational techniques. Qualitative analysis methods aremainly related to expert views on the quality. We focus mainly on quantitativeanalyses, i.e., we persue automated techniques for analysing our process models.

Quantitative analysis methods focus on a broad range of qualities of a pro-cess model. Some focus on correctness, e.g., Woflan [10], while others focus onperformance related information, e.g., queueing theory [11], simulation [6], andflow analysis [12].

4

Page 5: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

As our first focus is on simulation, we list some of the tools: BIMP1, CPN-Tools [13], GreatSPN [14], HPSim2, Ina3, JMT [15], Petruchio4, PiPe2 [16],PNetLab5, TimeNet [17], and Tina [18]. From these, we have selected CPNTools as our first tool for 3 reasons: (1) Flexibility in defining the to-be-computedcharacteristics, (2) by using Coloured Petri Nets, we can easily encode the moreadvanced insights in resource behaviour, and (3) through Access/CPN [19], it ispossible to simulate all the models without human involvement.

2.3 Process improvements and redesign

Within the field of BPR, different frameworks exist with quality metrics of aprocess, e.g., the Devil’s Quadrangle [20]. In [21], more relevant related work withrespect to BPR is provided. However, most of these approaches reason on a moreconceptual level, and are not applicable to our problem setting. Therefore, welimit ourselves to operational approaches, i.e., approaches which, if implemented,can be applied directly onto the process models under consideration.

An approach related to our approach is presented in [22]. On the existingprocess model, process measures are computed. Afterwards, different applicablebest practices are evaluated and applied to obtain new process models. Finally,on these process models, process measures are computed, the best process modelsare kept, and the steps are repeated. In [23], an implementation is presented.However, the focus is on simulation and time-related information. Furthermore, asingle tool is selected for the analysis, making it impossible to obtain informationnot provided by this specific tool.

Different approaches exist which generate from a model different variantsusing a library of fragments, e.g., [24,25]. The main idea of these approaches is:given a process model, substitute different part of the given process model withfragments from the library. Afterwards, evaluate the created process models andpossibly apply the previous steps again. However, the main question remainshow this library of fragments is to be constructed. Furthermore, the approachesexist on paper and tool support is lacking.

In [26], an approach is presented using process mining and simulation. First,the control flow of a process model is mined as a heuristic net. Afterwards, thecontrol flow is transformed to a CPN model and timing information is added.Finally, the CPN model is simulated, and possible improvements are to be man-ually established. The resource perspective is overly simplistic, i.e., the onlymoment resources are mentioned is during the improvement phase where a man-ual activity is replaced by an automated activity. Finally, finding improvementsis a manual step.

1 http://bimp.cs.ut.ee/, last accessed 2013-17-122 http://www.winpesim.de/hpetrisim.html, last accessed 2013-17-123 http://www2.informatik.hu-berlin.de/lehrstuehle/automaten/ina/, last accessed

2013-17-124 http://petruchio.informatik.uni-oldenburg.de/, last accessed 2013-17-125 http://www.automatica.unisa.it/PNetLab%20Download%20Page/pnetlab.htm, last

accessed 2013-17-12

5

Page 6: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

More specific approaches seek to find optimisation by modifying the structureof the process model. For instance, in [27–29] the authors propose to maximisethe set of activities which are executed in parallel as to minimise the sojourntime. In [30], different metrics are defined on the structure. Making modificationson the syntax of the model disregards the dynamic behaviour, e.g., putting partsof the model in parallel might be counter productive. For instance, if one putsactivities in parallel which are only executable by a single resource, there willnot likely be an improvement whilst the wait time increases.

Finally, the above approaches mainly focus on steady-state behaviour. In [31],an approach is presented for short-term simulations. The authors in questionuse YAWL [32] as a workflow management system; from the current state theygenerate a simulation model. By simulating the model, they seek short-termimprovements to cope with unexpected situations, e.g., in the paper they mentionthe situation where suddenly there is a large increase in arriving cases. Thisapproach can be extended for steady-state analysis, i.e., for steady-state analysisthe initial state does not matter and one needs to simulate for a longer periodof time. However, the approach is tailored towards a single process model whereone tries to optimise, for instance, resource allocation. Furthermore, they arefocussed on a single organisation, i.e., all the redesign and improvements haveto come from the organisation itself and there is no mechanism to learn fromothers.

The approaches under consideration, have either of following weaknesses:(1) it is generic but not implemented, (2) it is implemented but focusses ona predetermined set of types of qualities, e.g., syntactical qualities, or sojourntime, (3) no systematic analysis of a predetermined set of process models, or(4) overly simplified perspectives, in particular the resource perspective. Makingnone of the approaches applicable for embarking on our quest to find the bestprocess model.

There are some approaches close to our approach, e.g., [5], [22], and [31], butthese all use a single tool focussed on a limited set of performance indicatorswith oversimplified data and resource perspectives. We improve the state-of-theart by being generic, extensible with new tools and performance indicators, andallowing for a richer encoding of data and resources.

3 Architecture

To analyse the solution space spanned by a configurable process model, we pro-pose Petra, the toolset depicted in Fig. 1. In Petra, we have a family of processmodels from which we want to select the best-fitting model, i.e., the model bestfor the set of requirements of the organisation at a particular moment in time.We extend every process model with relevant properties computed using differ-ent tools, e.g., sojourn time, queue time, costs, etc. At any moment in time, atool can indicate that further computations on a particular process model arefutile, e.g., the process model does not adhere to legal requirements or the utili-sation of some resources is above 1. After obtaining the relevant properties, the

6

Page 7: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

process models are added to a set of process models. At a later stage, the usercan, via different views on this set of models, obtain the desired process model.

As mentioned, Petra consists of 3 key concepts: family of process models, setof properties, and a tool interface. In the remainder of this section, we discussthese different parts.

3.1 Family of process models

Process Trees consist of 5 perspectives: control flow, data, resources, environ-ment, and experiment. The control flow denotes the causal relationship betweenthe activities which contribute to the completion of a case. The data perspectiveis related to the variables and guards used in the process model. The resourcesare related to who may execute which activity. The uncontrollable behaviouris encapsulated in the environment perspective, i.e., everything the organisa-tion does not have any control over. Finally, the settings for an experiment areencoded in the experiment perspective, e.g., the parameters for the simulation.

Instead of having every process model specified separately, the family ofprocess models are encoded in a Process Tree. By using a configurable processmodel, we remove any ambiguity which might arise when comparing two individ-ual models. For example, if the configured yet different process models contain anactivity with the same name, it is ensured that they actually refer to the sameactivity. In this configurable process model, all perspectives are configurable,e.g., we have the option to remove activities, change allocatability of resources,change which variables are used by a task. The Process Trees are described inSect. 4.

3.2 Properties

For determining the best-fitting model, we need more information than just thecontrol-flow, data, resource, environment, and experiment perspectives. There-fore, we introduce a generic notion of a property . Properties can be independent(facts), and dependent (deduced from facts). The set of properties is extendableand part of the current set of properties is inspired by the properties as definedin the WfMC standard BPSim [9]. By not limiting the framework to a fixed setof properties, we maintain the genericity of our framework. Properties can bepart of every construct, e.g., resources, data, guard, edges, nodes, the processmodel itself, etc.

The independent properties are properties defined by the user before anyanalysis has been performed, e.g., the intensity of the arrival of cases and thedifferent values a variable may take. Dependent properties are properties re-turned by the tools, e.g., sojourn time and costs. Note that a tool may requireboth dependent and independent properties, i.e., before being able to use a par-ticular tool, another tool has to be used to compute certain properties.

Properties need to support a number of operations. The foremost operation isto define a comparator. This comparator allows for reasoning over the differentinstantiations of a property with a concrete value to find the best value (if

7

Page 8: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

an ordering is possible). Furthermore, properties need to define a default value(identity element). This default value can be used in case a tool cannot handleempty values. For instance, if there is no specification of the values a variablemay take, we need a default value because otherwise the expressions on theoutgoing edges of choice constructs cannot be evaluated.

The properties and more requirements on those properties are described inmore detail in Sect. 5.

3.3 Tool interface

To enrich the Process Trees with properties, tools can be used. If a tool does notimmediately work on Process Trees, a wrapper has to be provided to transformthe Process Tree to the tool-specific formalism (interface A). After the toolhas finished, it should enrich the Process Tree from interface A with the newlyobtained results and return this enriched Process Tree on interface B.

The properties offered on interface A can both be independent (defined bythe user), and dependent (deduced by other tools). In our framework, we assumean incremental approach, i.e., tools may only modify/overwrite or add dependentproperties, and are not allowed to remove (in)dependent properties.

In order to know which tools to use for the different properties, we requirethat a tool registers which (in)dependent properties it requires. Furthermore,to allow for chaining of tools for obtaining certain properties, we require a toolto register which dependent properties it computes. Finally, to prevent furthercomputations due to issues detected by a tool, tools may signal that futureprocessing of a process model by other tools is useless, e.g., there was no steadystate in the simulation. We have chosen to encode this on the interface levelinstead of a property. The reason for this is that the toolset is oblivious to theproperties used and it directly impacts the behaviour of the toolset.

Since the amount of possible models can be exponential in the amount of con-figuration points, we require a tool to run automatically, i.e., without the need ofhuman involvement. Therefore, for the first tool to be used in the toolset, we havechosen CPN Tools because of the existence of Access/CPN [19]. Access/CPNprovides an interface to run the simulator without any human involvement. Thetransformation of a Process Tree to a CPN model is explained in Sect. 6.

Having the architecture of our framework in place, we first introduce ourprocess model formalism: Process Trees. Afterwards, we present the propertiesas well as an implementation to use and compute these with a concrete tool, CPNTools [13], in our framework. Finally, in Sect. 7 the implementation of Petra ispresented. Note that, the ideas behind Petra transcend the exact formalism usedfor modelling process models.

4 Process Trees

Process Trees are block-structured process models, a subclass of Free-ChoicePetri nets, where every block has a single entry and a single exit. Process Trees

8

Page 9: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

v1, v2

r1

Data Control Flow Resource

Experiment

A

B C

[v1 == “1”] [v2 == “2”]

D E

Fig. 2: The different perspectives in a Process Tree. The experiment and environ-ment perspectives only consist of properties. The data perspective contains thevariables and expressions and their relation to the control-flow perspective. Thecontrol-flow perspective specifies the execution sequence of activities. Finally,the resource perspective specifies which resources may execute which activity.

are related to the RPST [33] in the sense that both work on a block-structure.However, the RPST is used to convert non-block structured models into blockstructured models and focusses on the control-flow perspective.

A Process Tree consists of 5 perspectives: control-flow, resource, data, envi-ronment, and experiment. In Fig. 2, the different perspectives are depicted andtheir relation to each other. Each of the perspectives contains a set of configu-ration points with configuration options. In the remainder of this section, we gointo each of the perspectives and show the configuration options.

4.1 Control-flow perspective

The control-flow perspective consists of nodes, and directed edges between thesenodes which denotes the order of execution. Nodes come in two different flavours:tasks and blocks. Tasks are the units of work which need to be executed, e.g., Ain Fig. 2, and can be manual (with a resource) or automatic. Blocks specify thecausal relationship between its children, e.g., the block with the arrow in Fig. 2denotes a sequential execution. All the nodes are depicted in Fig. 3 with theirPetri net semantics6. Note that, we use some of the notations for events in Petrinets from [34].

If there is an edge from a block to a node, then we say that this node is achild of that block. For all blocks except for the and, def, and event the orderof the children matters, therefore, there is a total order on the outgoing edges

6 Note that, for many nodes, Fig. 3 shows the semantics for the case with only twochildren. However, it is trivial to extend this to more children.

9

Page 10: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

A A

Manual

Automatic

A Z

A Z

seq

A Z

and A

Z

A Z

xor[gz][ga]

A

Z

[ga]

[gz ∨ ¬ga]

A Z

[gz][ga]or A

Z

[ga ∧ ¬gz]

[¬ga ∧ gz]

[ga ∧ gz]

D R E

[gr]

loopxor

D

R

E

[gr] [¬gr]

X Xis shorthand notation for

A Z

def

D R E

loopdef

do redo exit

do redo exit

Fig. 3: The different nodes and their (abstract) Petri net semantics.

of a block. In general, all nodes can have any number of children excepts for theevent, loopxor, and loopdef (see Fig. 3). Finally, the set of nodes and edgesforms a connected Directed Acyclic Graph (DAG) with a single root node, i.e., anode without any incoming edges. This DAG is a more compact representationof the tree since equivalent parts can be placed on top of each other. This isfor the sake of maintainability and does not influence the expressive power ofthe Process Tree. Note that, for most tools, this DAG will be unfolded to atree structure as the equivalence between the parts does not need to hold aftercomputing different characteristics. For instance, the sojourn time for the samesubprocess can be different dependent on where the subprocess is located in theprocess model.

The formalisation of the control-flow perspective Pf is:

Definition 1 (Control-flow perspective). A control flow perspective is a 4-tuple (N,E, r, order) where:

– N is the set of nodes, which is partitioned into the following sets:

• NT is the set of task nodes, which is partitioned into the following sets:∗ NA is the set of automatic tasks∗ NM is the set of manual tasks

• NB is the set of block nodes, which is partitioned into the following sets:

10

Page 11: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

∗ Nseq is the set of seq nodes∗ Nxor is the set of xor nodes∗ Nand is the set of and nodes∗ Nor is the set of or nodes∗ Ndef is the set of def nodes∗ Nloopxor is the set of loopxor nodes∗ Nloopdef is the set of loopdef nodes∗ Nevent is the set of event nodes

– E = {(n,m) | m ∈ order(n)} is the set of edges such that the graph (N,E)is a directed acyclic graph. If (n,m) ∈ E then n is called a parent of m andm is called a child of n.

– r ∈ N is the unique node from which all other nodes in the graph (N,E) arereachable, that is, {n ∈ N | (r, n) ∈ E∗} = N , where E∗ is the transitive andreflexive closure of E.

– order ∈ NB → N+ imposes an order on the child nodes of a block. This isrequired for, for example, a sequence node.

There are three types of configuration options: hiding, blocking, and substi-tution. Substitution entails replacing a part of the process model with a fragmentfrom a predetermined collection of fragments (see [1]). Hiding, which is shownin Fig. 4 with the curved arrow, entails substituting a part of the process modelwith an automatic task, e.g., Fig. 4(b). Blocking, shown with a no-entry signin Fig. 4, denotes the prevention of entering a part of the process model, e.g.,Fig. 4(a). Note that blocking has non-local effects, e.g., if a part of a sequenceis blocked, then the entire sequence becomes blocked. More formally:

Definition 2 (Configurable control-flow perspective). A configurable control-flow perspective is a 6-tuple (N,E, blockable, hideable, r, order) where:

– N is the set of nodes, which is partitioned into the following sets:• NT is the set of task nodes, which is partitioned into the following sets:∗ NA is the set of automatic tasks∗ NM is the set of manual tasks

• NB is the set of block nodes, which is partitioned into the following sets:∗ Nseq is the set of seq nodes∗ Nxor is the set of xor nodes∗ Nand is the set of and nodes∗ Nor is the set of or nodes∗ Ndef is the set of def nodes∗ Nloopxor is the set of loopxor nodes∗ Nloopdef is the set of loopdef nodes∗ Nevent is the set of event nodes∗ NP is the set of Placeholder nodes

– E = {(n,m) | m ∈ order(n)} is the set of edges such that the graph (N,E)is a directed acyclic graph. If (n,m) ∈ E then n is called a parent of m andm is called a child of n.

– blockable ⊆ E is the set of blockable edges

11

Page 12: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

– hideable ⊆ E is the set of hideable edges– r ∈ N is the unique node from which all other nodes in the graph (N,E) are

reachable, that is, {n ∈ N | (r, n) ∈ E∗} = N , where E∗ is the transitive andreflexive closure of E.

– order ∈ NB → N+ imposes an order on the child nodes of a block. This isrequired for, for example, a sequence node.

Configuration A configuration for a configurable control-flow perspective se-lects for configuration points (i.e., placeholder nodes, and hideable/blockableedges) which option is taken, i.e., whether it is hidden/ not hidden, blocked/not blocked, and which substitution option is selected/ are not selected. If forevery configuration point a selecting is made, this configuration is total, else it ispartial. A configurable control-flow perspective can be instantiated with a con-figuration to obtain a (partly) configured (configurable) control-flow perspective.More formally:

Definition 3 (Control-flow configuration). Let(N,E, blockable, hideable, r, order) be a configurable control-flow perspective, thena control-flow configuration Cf is a 6-tuple

(Nb, Nb, Nh, Nh, rsel, rsel

)where:

– Nb ⊆ blockable, the set of blocked edges– Nb ⊆ blockable, the set of non-blocked edges– Nh ⊆ hideable, the set of hidden edges– Nh ⊆ hideable, the set of non-hidden edges– rsel ⊆ NP ×N , the set of selected replacements for replacement nodes– rsel ⊆ NP ×N , the set of non-selected replacements for replacement nodes

Definition 4 (Valid control-flow configuration). Let(N,E, blockable, hideable, r, order) be a configurable control-flow perspective, andlet Cf =

(Nb, Nb, Nh, Nh, rsel, rsel

)be a control-flow configuration, then Cf is

valid if and only if:

– Nb ∩Nb = ∅, an edge cannot both be blocked and not blocked– Nh ∩Nh = ∅, an edge cannot both be hidden and not hidden– Nb ∩Nh = ∅, an edge cannot both be blocked and hidden– rsel ∩ rsel = ∅, a replacement option cannot both be selected and not selected– ∀(p,n),(p′,n′)∈rsel (p = p′ ⇒ n = n′), a placeholder node can have at most one

replacement node selected– ∀p∈NP

({(p, n) | n ∈ order(p)} \ rsel 6= ∅), we cannot remove all replacementoptions from a placeholder node

Note that, by transitivity an edge can both be blocked and hidden. In thiscase, we give precedence to hidden due to the non-local semantics of blocking,i.e., a hidden edge can become blocked by transitivity but a blocked edge cannotbecome hidden by transitivity.

Definition 5 (Total control-flow configuration). A configuration Cf =(Nb, Nb, Nh, Nh, rsel, rsel

)is total for a configurable control-flow perspective Pcf =

(N,E, blockable, hideable, r, order) if and only if:

12

Page 13: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

A

B C

[v1 == ”1”] [v2 == ”2”]

D E

A B

D E

A

D E

A

C

[v1 == ”1”] [v2 == ”2”]

D E

A

B C

[v1 == ”1”] [v2 == ”2”]

D E

Configurable control-flow perspective All possible configured control-flow perspectives

(a) (b)

(c) (d)

Fig. 4: The family of control flows spanned by the control-flow perspective usingblocking and hiding.

– (Nb ∪Nb) = blockable– (Nh ∪Nh) = hideable– (rsel ∪ rsel) =

⋃p∈NP

({(p, n) | n ∈ order(p)})

In Fig. 4, the space of models is depicted ((a)-(d)) using hiding and blocking.Figure 4(a) and (c), shows the configured model if we select blocking, Fig. 4(b)and (c) shows the configured model if hiding is selected and finally, Fig. 4(d)shows the configured model when none of the configuration options is selected.Note that, all models are obtained using total and valid configurations.

4.2 Data perspective

The data perspective specifies which expressions are used for the outgoing edgesof a choice (between “[” and “]”) and which variables are read and written bynodes (line from A to v1 and to v2 in Fig. 2). We have allowed to annotate allnodes with which variables are read or written. This allows for a subprocess tospecify which variables are used in the subprocess. Furthermore, the xor blockrequires variables in the evaluation of its expressions.

Expressions reason over variables and values for those variables and havethe following operators; conjunction (&&), disjunction (||), and negation (!).Furthermore, variables may be compared to values on equality and inequality.More formally:

Definition 6 (Expression). Let V be the universe of variables, let V al be theuniverse of values. An expression can be constructed using the following rules:

– If v ∈ V and val ∈ V al, then v == val, and v != val are expressions,– If p, q are expressions, then (p && q), (p || q), and !(p) are expressions.

13

Page 14: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Definition 7 (Data perspective). LetPcf = (N,E, blockable, hideable, r, order) be a configurable control-flow perspec-tive, then a data perspective is a 5-tuple (V,Ex,G, read, write) where:

– V is the set of variables– Ex ⊆ V ∪ {NoExpression} is the set of expressions, where V is the uni-

verse of logical expressions over V , and {NoExpression} denotes that noexpression is specified

– G ∈ E → Ex annotates edges with expressions guarding the execution– read ∈ N → 2V gives per node the set of read variables– write ∈ N → 2V gives per node the set of written variables

For the configurable data perspective, the user has to option to change therelation between the entities. On the outgoing edges of choice constructs, thereis the option to select an expression from one or more expressions. For variables,we can change which nodes read/write this variable.

Definition 8 (Configurable data perspective). LetPcf = (N,E, blockable, hideable, r, order) be a configurable control-flow perspec-tive, then a configurable data perspective is an 8-tuple(V,Ex,G, read, write, RG, Rread, Rwrite) where:

– V is the set of variables– Ex ⊆ V ∪ {NoExpression} is the set of expressions, where V is the uni-

verse of logical expressions over V , and {NoExpression} denotes that noexpression is specified

– G ∈ E → 2Ex annotates edges with expressions guarding the execution– read ∈ N → 2V gives per node the set of read variables– write ∈ N → 2V gives per node the set of written variables– RG ⊆ E × Ex gives the set of removable expressions from edges– Rread ⊆ N × V gives the set of removable read variables from nodes– Rwrite ⊆ N × V gives the set of removable write variables from nodes

Configuration A configuration for the data perspective entails specifying whichexpression are removed/kept, which variables are read/not read, and which vari-ables are written/ not written.

Definition 9 (Data configuration). LetPcd = (V,Ex,G, read,write, RG, Rread, Rwrite) be a configurable data perspec-tive, then a data configuration is a 6-tuple (rG, rG, rread, rread, rwrite, rwrite)where:

– rG ⊆ RG, the set of removed expressions– rG ⊆ RG, the set of non-removed expressions– rread ⊆ Rread, the set of removed read variables– rread ⊆ Rread, the set of non-removed read variables– rwrite ⊆ Rwrite, the set of removed written variables– rwrite ⊆ Rwrite, the set of non-removed written variables

14

Page 15: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Definition 10 (Valid data configuration). LetPcd = (V,Ex,G, read, write, RG, Rread, Rwrite) be a configurable data perspec-tive, and let Cd = (rG, rG, rread, rread, rwrite, rwrite) be a data configuration, thenCd is valid if and only if:

– rG ∩ rG = ∅, a guard is not both selected and not selected– ∀(e,ex),(e′,ex′)∈rG (e = e′ ⇒ ex = ex′), we only allow a single expression to be

selected for an edge– ∀e∈E ({(e, ex) | ex ∈ G(e)} \ rG 6= ∅), we do not allow to remove all the pos-

sible expressions from an edge– rread ∩ rread = ∅, a read variable cannot both be removed and not removed– rwrite ∩ rwrite = ∅, a write variable cannot both be removed and not removed

Definition 11 (Total data configuration). A configurationCd = (rG, rG, rread, rread, rwrite, rwrite) is total for a configurable data perspec-tive Pcd = (V,Ex,G, read, write, RG, Rread, Rwrite) if and only if:

– (rG ∪ rG) = RG

– (rread ∪ rread) = Rread

– (rwrite ∪ rwrite) = Rwrite

4.3 Resource perspective

The resource perspective specifies which originators are present, and which man-ual task may be executed by which originator, e.g., in Fig. 2, we have an orig-inator r1 and she may execute D and E. We have chosen to call our resourcesoriginators based on the MXML standard.

Definition 12 (Originator perspective). LetPcf = (N,E, blockable, hideable, r, order) be a configurable control-flow perspec-tive, then an originator perspective is a 2-tuple (O, originators) where:

– O is the set of originators– originators : NM → (2O \ ∅) gives the non-empty set of originators for a

manual task

A configurable originator perspective denotes which originators are removablefrom allocatability to a manual task.

Definition 13 (Configurable resource perspective). LetPcf = (N,E, blockable, hideable, r, order) be a configurable control-flow perspec-tive, then a configurable originator perspective is a 3-tuple(O, originators,Roriginators) where:

– O is the set of originators– originators : NM → (2O \ ∅) gives the non-empty set of originators for a

manual task– Roriginators ⊆ NM ×O gives the set of removable originators from a manual

task

15

Page 16: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Configuration A configuration for the originator perspective specifies which orig-inator are or are not allocatable to a manual task.

Definition 14 (Originator Configuration). LetPco = (O, originators,Roriginators) be a configurable originator perspective, thenan originator configuration is a 2-tuple (roriginators, roriginators) where:

– roriginators ⊆ Roriginators, the set of removed originators from a manual task

– roriginators ⊆ Roriginators, the set of non-removed originators from a manualtask

A configuration is valid if the sets of (non) removed originators is disjoint,and every manual task has at least one originator which may execute that task.

Definition 15 (Valid originator configuration). LetPco = (O, originators,Roriginators) be a configurable originator perspective, andlet Co = (roriginators, roriginators) be an originator configuration, then Co is totalif and only if:

– roriginators ∩ roriginators = ∅, an originator cannot both be removed and notremoved

– ∀a∈NM({(a, o) | o ∈ originators(a)} \ roriginators 6= ∅), we cannot remove all

the originators from a manual task

A total originator perspective configuration entails that for every removableoriginator the user has specified if she should be removed or not.

Definition 16 (Total originator configuration). A configurationCo = (roriginators, roriginators) is total for a configurable originator perspectivePco = (O, originators,Roriginators) if and only if:

– (roriginators ∪ roriginators) = Roriginators

4.4 Environment perspective

Currently, we only have properties in the environment perspective, these aretreated later.

4.5 Experiment perspective

Currently, we only have properties in the experiment perspective, these aretreated later.

16

Page 17: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

4.6 Process Tree

A Process Tree is a combination of all the aforementioned perspectives and ageneric labelling function. We use Σ as a shorthand for the set of characters.The Process Tree can formally be defined as:

Definition 17 (Process Tree). Let Pcf = (N,E, blockable, hideable, r, order)be a configurable control-flow perspective, letPcd = (V,Ex,G, read, write, RG, Rread, Rwrite) be a configurable data perspec-tive for Pcf , let Pco = (O, originators,Roriginators) be a configurable originatorperspective for Pcf , let Pce be a configurable environment perspective for Pcf ,and let Pcx be a configurable experiment perspective for Pcf , then a Process Treeis a 6-tuple PT = (label, Pcf , Pcd, Pco, Pce, Pcx) where:

– label ∈ (PT ∪N ∪ E ∪O ∪ V ∪ Ex)→ Σ+ is a labelling function– Pcf is a configurable control-flow perspective– Pcd is a configurable data perspective– Pco is a configurable originator perspective– Pce is a configurable environment perspective– Pcx is a configurable experiment perspective

The meta model for the Process Tree is depicted in Fig. 5. The parts in redare related to the control-flow perspective, the originator perspective is in green,and the data perspective is in blue.

Having our process model formalism in place, we can use it in our framework.In the remainder, whenever the term process model is used, we intend a ProcessTree.

17

Page 18: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Fig. 5: The meta model of the Process Tree, red is control-flow perspective, greenis originator perspective, and blue is data perspective.

18

Page 19: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

5 Properties

We first introduce the notion of a (configurable) property as these are the basis ofall the properties in this section. A property specifies a domain, e.g., the naturals,a comparator (comp) to denote which value is better, an identity value whichcan be used when a value for this property is missing, and a set of constructs onwhich this property has semantics.

The comparator is defined using ←,↔,→ instead of <,=, > since = is am-biguous, e.g., when comparing distributions we might not have equality, but theyare also not significantly different. The constructs are the constructs from theProcess Tree, e.g., nodes, the Process Tree itself, variables, etc.

As mentioned, properties come in two different flavours, independent anddependent. In general, independent properties do not have an ordering, i.e., theyare facts. We have combined independent and dependent properties into a singlegeneric notion of a property. This is done to allow properties to be used bothdependent and independent, but also on a conceptual level there is no difference,i.e., they describe characteristics of a construct.

Definition 18 (Property). A property is a 4-tuple (Dom, comp, identity, Tconstr)where:

– Dom is typing the domain of the property– comp : Dom×Dom→ {←,↔,→} is a comparator, where the arrow points

to the best value (possibly both values)– identity is the default value– Tconstr specifies for which constructs this property has semantics, e.g., the

number of originators only makes sense for originators

The configurable property specifies which values may be removed, i.e., whichvalues this property cannot take. This works since we are reasoning from a closedworld assumption for properties, i.e., beforehand the values a property may takeare specified.

Definition 19 (Configurable property). A configurable property is a 5-tuple(Dom, comp, identity, Tconstr, removable) where:

– (Dom, comp, identity, Tconstr) is a property– removable ⊆ Dom denoting the elements removable from the domain

A configuration for a property entails specifying which removable values areremoved and which are maintained.

Definition 20 (Configuration for a property). Let(Dom, comp, identity, Tconstr, removable) be a configurable property, then a con-figuration for a configurable property is a 2-tuple(Dom, comp, identity, Tconstr, removable) where:

– removed ⊆ removable, the set of removed values

19

Page 20: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

– removed ⊆ removable, the set of non-removed values

A valid configuration denotes that we not not remove all of the values. Notethat some configurable properties have an added constraint to a valid configu-ration. When this is the case, there is a definition at that property.

Definition 21 (Valid configuration property). Let(Dom, comp, identity, Tconstr, removable) be a configurable property, and let Cp =(removed, removed) be a configuration for a property, then Cp is valid if and onlyif:

– removed ∩ removed = ∅ a value cannot both be removed and not removed– Dom \ removed 6= ∅ we do not remove all of the possible values

If for each removable value we have specified if it is removed or maintained,we have a total configuration for a property. Note that, by applying a totalconfiguration to a configurable property, we transform a configurable propertyto a non-configurable property. In the remainder of this document, if the Dom ofa configurable property is the same as the Dom of the non-configurable variantof that property, we omit the definition of the property itself as this is the sameexcept for the removable element. If this is not the case, we list both, e.g., for theinitial value. The initial value of a variable can have a single value, but in orderto make it configurable one needs to be able to choose from a set of variables.

Taking 2, we have added some properties to their respective perspective inFig. 6 to show a more complete picture. The removable values are denoted witha cross.

5.1 Control-flow perspective

The control-flow perspective does not have at the moment any property associ-ated to it.

5.2 Data perspective

For the data perspective, we currently have properties for variables. The prop-erties of a variable consist of which data values that variable may take, what thenext value for a variable is, and the initial value for a variable. In Fig. 7, theproperties for a variable are encoded in a single figure. For instance, the variablev1 has initial value “0”, it may take the values “0”, “1”, and “2”, and it changesvalue according to the probabilities on the edges.

Data Values property The data values property specifies which values a variablemay take. The different values are all literals thus the values do not need tocome from the same domain, e.g., a variable may take the values {0, a,X}.These values allow for simulating real writes to, and reads from variables. Byhaving a predetermined set of values, also guards can reason on the differentvalues a variable may take.

20

Page 21: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

v1, v2

1

2

0

v1: 0.3

0.7

1

0.8

0.2

7

2

a

v2: 0.3

0.7

1

1 M Tu W Th F

o1

Environment

Data Control Flow Originator

Experiment

- Queueing: FiFo , LiFo- Allocation: Push

- Replication length: 1000- # Replications: 30 , 40 , 50

- Warm-up period: 500 , 1000 , 1500

arousal

speed

A

B C

[v1 == “1”] [v2 == “2”]

D E

Fig. 6: The different perspectives in a Process Tree. The experiment perspectivespecifies the settings for the experiment. The environment perspective allowsthe user to specify the arrival process. The data perspective specifies the initialvalue for a variable, which values a variable may take, and the probability ofchanging one value to another value. The control-flow perspective specifies theexecution sequence of activities. Finally, the originator perspective specifies whenoriginators are available (M is for Monday, etc.) and what their working speedis (different distributions).

Definition 22 (Configurable Data Values property). A configurable datavalues property is a 5-tuple (Dom, comp, identity, Tconstr, removable) where:

– Dom ⊆ Σ+ the set of values possible for a variable– comp(d ∈ Dom, d′ ∈ Dom) =↔– identity = ∅– Tconstr = {V }, the set of variables– removable ⊆ Dom the set of values a variable may not take

In Fig. 7, we have the option to remove the value 2 for variable v2. Byselecting this option, we obtain the possible values (states) depicted in (a) forv2. If we do not select this option, we obtain (b).

Data Value Matrix property The data value matrix specifies what the probabilityis for a variable to change its value. This is similar to a Markov-chain where eachstate in the Markov-chain is the possible values a variable can take. Moving froma current value to a new value is chosen probabilistically.

Definition 23 (Configurable Data Value Matrix property). A config-urable data value matrix property is a 5-tuple(Dom, comp, identity, Tconstr, removable) where:

– Dom ⊆ Σ∗ ×Σ∗ × R– comp(d ∈ Dom, d′ ∈ Dom) =↔– identity = ∅

21

Page 22: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

1

2

0

v1

0.3

0.7

1

0.8

0.2

7

2

av2

0.3

0.7

1

1

1

2

0

0.3

0.7

0.8

0.2

7

2

a

0.3

0.7

1

1

(a)

(b)

7

a

1

1

1

2

0

0.3

0.7

1

0.8

0.2

(b)

(a)

1

All possible configured data propertiesConfigurable data properties

Fig. 7: The effect of setting the configuration options for a variable. The toprow is for variable v1, the bottom row for variable v2, left of the double bar,the variable is configurable, and right of the double bar, the different configuredvariants for a variable are shown.

– Tconstr = {V }, the set of variables– removable ⊆ Dom

In Fig. 7, we have the option to remove the edge from state 2 to state 1 forvariable v1. In (a) for v1, we have selected to remove the edge, in (b) we havenot selected to remove the edge.

Initial Value property The initial value specifies which of the possible values avariable may take is the initial value at the start of a case for a variable.

Definition 24 (Initial Value property). An initial value property is a 4-tuple(Dom, comp, identity, Tconstr) where:

– Dom ∈ Σ∗– comp(d ∈ Dom, d′ ∈ Dom) =↔– identity = UNKNOWN

– Tconstr = {V }, the set of variables

Definition 25 (Configurable Initial Value property). A configurable ini-tial value property is a 5-tuple (Dom, comp, identity, Tconstr, removable) where:

– Dom ⊆ Σ∗– comp(d ∈ Dom, d′ ∈ Dom) =↔– identity = UNKNOWN

– Tconstr = {V }, the set of variables– removable ⊆ Dom

22

Page 23: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

M Tu W Th F

o1

M Tu W Th F M Tu W Th F(a) (b)

(a) (b)

Configurable originator properties All possible configured originator properties

arousal

speed

arousal

speed

arousal

speed

Fig. 8: The effect of modifying the work schedule and the arousal based workspeed. The configurable variants are left of the double bar. On the right of thedouble bar, the configured variants are shown. Note that, the arousal based workspeed is defined here for a single interval.

Since the value of the initial value property can only be a single value, weneed to guarantee in our configuration that we keep at most 1 value.

Definition 26 (Valid configuration Initial Value property). Let(Dom, comp, identity, Tconstr, removable) be a configurable initial value property,and let Cp = (removed, removed) be a configuration, then Cp is valid if and onlyif:

– removed ∩ removed = ∅ a value cannot both be removed and not removed– Dom \ removed 6= ∅ we do not remove all of the possible values– |removed| ≤ 1, we keep at most 1 value

5.3 Originator perspective

The properties of the originator perspective specify (1) when an originator isavailable to work on the process (closely related and inspired by [6]), e.g., o1 isavailable on Monday morning and evening, but not on Friday (Fig. 8), and (2)how many originators there are of a particular kind. Finally, different workingspeeds can be specified based on the busyness of an originator, this to model ef-fects such as the phenomenon described by the Yerkes-Dodson law of arousal [35].

Number of originators This property denotes the number of originators of aparticular role/group/resource are available to the process.

Definition 27 (Number of Originators property). A number of originatorsproperty is a 4-tuple (Dom, comp, identity, Tconstr) where:

– Dom ∈ N– comp(d ∈ Dom, d′ ∈ Dom) =↔– identity = 0– Tconstr = {O}, the set of originators

23

Page 24: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Definition 28 (Configurable Number of Originators property). A con-figurable number of originators property is a 5-tuple(Dom, comp, identity, Tconstr, removable) where:

– Dom ⊆ N– comp(d ∈ Dom, d′ ∈ Dom) =↔– identity = 0– Tconstr = {O}, the set of originators– removable ⊆ Dom

Since the value of the number of originators property can only be a singlevalue, we need to guarantee in our configuration that we keep at most 1 value.

Definition 29 (Valid configuration Number of Originators property).Let (Dom, comp, identity, Tconstr, removable) be a configurable number of orig-inators property, and let Cp = (removed, removed) be a configuration, then Cp

is valid if and only if:

– removed ∩ removed = ∅ a value cannot both be removed and not removed– Dom \ removed 6= ∅ we do not remove all of the possible values– |removed| ≤ 1, we keep at most 1 value

Work schedule The work schedule consists of pairs of intervals, where the firstelement denotes the presence to the process and the second the absence fromthe process. For an increase of usability, we allow for different granularities oftime, e.g., an originator may be present for 4 hours, and then absent for 1 day.The work schedule can be used to mimic the behaviour of part-time employeesor employees not full-time available to the process.

Definition 30 (Configurable Work Schedule property). A configurablework schedule property is a 5-tuple (Dom, comp, identity, Tconstr, removable) where:

– Dom ⊆(

(R× R× γ)2)∗

, the list of available, unavailable times, and γ spec-

ifying the time granularity– comp(d ∈ Dom, d′ ∈ Dom) =↔– identity = ∅– Tconstr = {O}, the set of originators– removable ⊆ Dom

When we remove an available, unavailable pair of times, we substitute this byunavailable. This way there is no difference between removing a single elementand removing a pair of elements. Note that, we do not allow to work more thanthe configurable work schedule allows, i.e., the sum of the intervals an originatoris available is maximal in the configurable work schedule property.

In Fig. 8, we have the option to remove the availability of originator o1 onWednesday. If we select the option to remove the availability on Wednesday, weobtain (a), else we obtain (b).

24

Page 25: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Yerkes-Dodson law In psychology, there is a relation between the arousal level(amount of work), and the performance (speed at which a person is operating)called the Yerkes-Dodson law [35]. A common phenomena when a deadline isapproaching and people start to work faster and faster. To accommodate Yerkes-Dodson, we allow for the specification of the processing speed of a particularoriginator executing a task when there is a number of work items allocatable tothis originator. For instance, an originator might take 10 minutes when thereare between 0 and 5 work items waiting, and takes 5 minutes when there arebetween 5 and 10 work items waiting.

We have chosen to annotate the manual tasks with the Yerkes-Dodson prop-erty, the reason for this is that first the control-flow perspective is configured.This way there is no need to go through every originator and check on existenceof the manual tasks. Note that, Distr denotes the universe of distributions.

Definition 31 (Configurable Yerkes-Dodson property). A configurableYerkes-Dodson property is a 5-tuple (Dom, comp, identity, Tconstr, removable)where:

– Dom ⊆ O × (N× N×Distr)+, the list of intervals (for allocatable workitems) with the corresponding work speed (distribution) for an originator

– comp(d ∈ Dom, d′ ∈ Dom) =↔– identity = ∅– Tconstr = {NA}, the set of manual tasks– removable ⊆ Dom

In Fig. 8, we have the option to remove a distribution for this particularinterval. The effects of choosing one of the options is depicted in (a) and (b).

5.4 Environment perspective

Currently, we only have the arrival process as property for the environmentperspective. The arrival process specifies the distribution of arrivals of new casesto the process.

Arrival Process property The arrival process property specifies the arrival processof cases for this process (Fig. 6 at the centre top). We have chosen predetermineddistributions for the ease of specifying constraint over the values specific fordistributions, i.e., by explicitly enumerating the different distributions possiblethere is no risk of allowing a distribution not intended by the designer. Notethat, Distr denotes the universe of distributions.

Definition 32 (Arrival Process property). An arrival process property is a4-tuple (Dom, comp, identity, Tconstr) where:

– Dom ∈ Distr– comp(d ∈ Dom, d′ ∈ Dom) =↔– identity = Constant(0 milliseconds), the constant distribution with an

interarrival time of 0 milliseconds

25

Page 26: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

– Tconstr = {PT}, the Process Tree itself

Definition 33 (Configurable Arrival Process property). A configurablearrival process property is a 5-tuple (Dom, comp, identity, Tconstr, removable)where:

– Dom ⊆ Distr– comp(d ∈ Dom, d′ ∈ Dom) =↔– identity = Constant(0 milliseconds), the constant distribution with an

interarrival time of 0 milliseconds– Tconstr = {PT}, the Process Tree itself– removable ⊆ Dom

Since the value of the arrival process property can only be a single value, weneed to guarantee in our configuration that we keep at most 1 value.

Definition 34 (Valid configuration Arrival Process property). Let(Dom, comp, identity, Tconstr, removable) be a configurable arrival process prop-erty, and let Cp = (removed, removed) be a configuration, then Cp is valid ifand only if:

– removed ∩ removed = ∅ a value cannot both be removed and not removed– Dom \ removed 6= ∅ we do not remove all of the possible values– |removed| ≤ 1, we keep at most 1 value

5.5 Experiment perspective

The experiment perspective currently consists of the simulation property.

Simulation property The simulation property specifies the arguments for thesimulation tool (Fig. 6 top left). Q denotes the chosen queue type, e.g., FiFo.The boolean denotes if push or pull allocation is used (true for push allocation,and false for pull allocation). The numbers represent warm-up period, replicationlength, and number of replications. Note that the values chosen for the identityfunction are chosen just to adhere to the requirements on a property and do notguarantee good experiments.

Definition 35 (Simulation property). An simulation property is a 4-tuple(Dom, comp, identity, Tconstr) where:

– Dom ∈ Q× B× N× N× N– comp(d ∈ Dom, d′ ∈ Dom) =↔– identity = (FiFo, true, 0, 10, 100)

– Tconstr = {PT}, the Process Tree itself

Definition 36 (Configurable Simulation property). A configurable simu-lation property is a 5-tuple (Dom, comp, identity, Tconstr, removable) where:

– Dom ⊆ Q× B× N× N× N

26

Page 27: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

– comp(d ∈ Dom, d′ ∈ Dom) =↔– identity = (FiFo, true, 0, 10, 100)

– Tconstr = {PT}, the Process Tree itself– removable ⊆ Dom

Since the value of the simulation property can only be a single value, we needto guarantee in our configuration that we keep at most 1 value.

Definition 37 (Valid configuration Simulation property). Let(Dom, comp, identity, Tconstr, removable) be a configurable simulation property,and let Cp = (removed, removed) be a configuration, then Cp is valid if and onlyif:

– removed ∩ removed = ∅ a value cannot both be removed and not removed– Dom \ removed 6= ∅ we do not remove all of the possible values– |removed| ≤ 1, we keep at most 1 value

6 Sample tool: CPN Tools

In this section, we elaborate on the transformation of a Process Tree to a CPNmodel. In Sect. 7, we mention the implementation necessarily to control CPNTools, i.e., using Access/CPN, and parsing the output.

6.1 Transforming a Process Tree to a CPN model

Transforming a Process Tree to a CPN model is done along four perspectives:control-flow, data, originators, and environment, the experiment perspective con-sists mainly of controlling CPN Tools itself. Each of the four perspectives istransformed orthogonal to the other, i.e., modifications only impacting a singleperspective also only modify the CPN model in that perspective so there is noneed to worry about the other perspectives. To be able to still allow for commu-nication between the perspectives, we have encoded a number of controllers, e.g.,the control-flow perspective can only continue if a work-item has an originatorallocated to it. The used functions in the CPN model are listed in Appendix B.2.

Control-flow perspective Within the control flow, we have that certain partsof the process model do not always contribute to a case. For instance, with an orconstruct. To prevent the explicit modelling of all possible paths through the orconstruct, we have introduced the notion of true/false tokens. If the true/falsetoken is true, then that part of the process contributes to the case, otherwisenot [36].

To be able to cope with multiple cases, we add to each token the notion ofa case identifier. Furthermore, this means that transitions for synchronising asubprocess, e.g., the parallel execution of a number of tasks, are now guardedwith the requirement that they can only synchronise if the tokens of their childrenall belong the same case, i.e., has the same identifier. With the aforementioned

27

Page 28: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

directed acyclic graph of the Process Tree, we might have interference betweenmultiple instances of the same case. By unfolding the graph to a tree and thefact that a Process Tree has single entry/single exit blocks, we do not have anyproblems with multiple instances interfering with each other.

In order to obtain timing information of the execution of a case, we haveextended every token with a timestamp, duration, and performance informa-tion about the sojourn time, processing time, queue time, and wait time. Thetimestamp denotes when a token entered a subprocess rooted at the block node.The duration denotes the processing time for a task and is updated just beforethe tasks starts. We have separated the computation of the duration from thecontrol-flow perspective as this is more flexible, e.g., in the future, one mightwant to change the way the duration is determined while the control flow doesnot change. Finally, the performance information is used to obtain informationabout subprocesses and can be used to compute the performance characteristicsof a node based on its children. We measure the sojourn time, i.e., the totaltime a case spent in a (sub)process, the queue time, i.e., the time a work itemwaited on an originator, the wait time, i.e., the time a case spent waiting tobe synchronised, and the processing time, i.e., the actual work originators haveperformed on the activities. The formal definition of a token is:

Definition 38 (Token). Let N be the universe of natural numbers, let T be theuniverse of timestamps, let B be the universe of booleans, let R be the universeof reals, then Token ∈ N × T × B × R × (R × R × R × R). Denoting the caseidentifier, time of entering the subprocess of the innermost block node, whetherthis token is true or false, the duration of the next task, and the accumulatedperformance statistics consisting of; sojourn time, processing time, queue time,and wait time.

To query individual elements of the token, we use πk as a shorthand nota-tion where k denotes the index. For instance, let t be a token, then π1t resultsin the case identifier of t. With π5t for a token t, we obtain the accumulatedperformance statistics which can again be queried with π, e.g., π1π5t yields theaccumulated sojourn time.

Nodes All nodes offer the same interface places to their parent, see Fig. 9. Theinterface places offered to the parent are: scheduled , started , withdrawn, andcompleted . Scheduled denotes that a subprocess may start. Started denotes thata subprocess actually has started. Withdrawn is specifically for accommodatingevents, in which case all events are scheduled at the same time and the event thatstarts first withdraws the others. Finally, completed denotes that the subprocesshas finished its execution. The interface places are encoded using fusion placesin CPN Tools. A fusion place is a group of places combined into a fusion group.If a place in a particular fusion group gets (un)marked, then all places in thatfusion group get (un)marked.

Connected to the interface places are some standard transitions. The with-draw transition fires when a token is received on interface place withdrawn, and

28

Page 29: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

we have not started the execution of this subprocess. If the subprocess has al-ready been started, then the withdrawn token is forwarded with high priority tothe children. By using priorities on the transitions, we guarantee that nothingordinary can happen between obtaining and forwarding the withdrawn token.When a subprocess is scheduled with a true token, then first the init transition isfired. The init transition is linked to another fusion place which forms a hook fora controller to notice that a subprocess has been scheduled, and to take action ifrequired, e.g., delay the execution to model the manual handover of work. Sim-ilar, we have a final transition to consume the token after a controller has beennotified on the completion of this subprocess. Finally, there is a skip transitionin case a false token is received in the scheduled place.

Prior to going into the tasks and blocks, we first show the root net whichis the controller connecting the environment perspective to the root node, andspecifically the controller for the arrival of cases.

Root net The root net is the controller connecting the arrival process of the envi-ronment perspective to the control-flow perspective. At the top of the root net,Fig. 10, is the communication to the arrival process. At the bottom of the rootnet, the communication with the root node is encoded using the aforementionedinterface to the parent (Fig. 9). Finally, at the right the different statistics of theentire process are collected. These statistics are the statistics which are collectedin the token.

Tasks As tasks do not have children, the interface to the parent behaves slightlydifferent (Fig. 11). The main difference is that we cannot receive a withdrawtoken after starting the task, i.e., we can only start the task after all unprocessedwithdraw tokens have been processed. In case we receive a true token, the tasksignals the controller of this task being scheduled. As soon as the task is allowedto start, a token is produced signalling that the initialisation has been finished,and the task starts and signals its parent by producing a token on the startedinterface place. Afterwards, the task obtains the duration, which was set by thecontroller, from the token, and a token is made available after the duration haselapsed. Finally, the task signals that certain variables were read and written,and signals the controller of its completion resulting in the controller releasingthe originator. We have explicitly modelled the reading of a variable as thismight be used in the future (e.g., analysis of race-conditions on the data).

The communication between the task and the allocation of originators towork items is done at the Task Controller (Fig. 12). After a task has signalledthe task controller it can be started, the task controller adds the work item tothe list of currently unallocated work items. As soon as a originator has beenallocated to a work item, the task controller notifies the task and determines theprocessing time for the task based on the Yerkes-Dodson law, i.e., the controllercomputes the pressure for the originator and looks up the speed of that originatorperforming that task. Finally, after the task signals its completion, the originatorused by the task is released.

29

Page 30: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Xor

X_86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229",

get

Wai

tTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

) el

se n

il

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Xor

X_86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229",

get

Queu

eTim

eSum

((to

ken0::

toke

n1:

:tok

en2::

nil)

, get

Queu

eTim

e(to

ken))

) el

se n

il

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Xor

X_86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229",

get

Proc

essi

ngTi

meS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

) el

se n

il

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Xor

X_86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229",

tim

e()-

get

Tim

esta

mp(t

oken

)) e

lse

nil

toke

n2 to

ken1

toke

n0

toke

n

toke

n

toke

n

updTi

mes

tam

pSta

tus(

toke

n,t

ime(

),not

(get

Sta

tus(

toke

n1))

)

toke

n1

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

updTi

mes

tam

pSta

tus(

toke

n,t

ime(

),b a

ndal

so n

ot(g

etSta

tus(

toke

n1))

)

toke

n1

updSta

tus(

toke

n1,

b o

rels

e get

Sta

tus(

toke

n1))

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

updTi

mes

tam

pSta

tus(

toke

n,

tim

e(),

b)

updSta

tus(

toke

n,

b)

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

toke

n

toke

n

toke

n

toke

n

setS

tats

Tim

e(updTi

mes

tam

pSta

tus(

toke

n,

tim

e(),

get

Sta

tus(

toke

n0)o

rels

e get

Sta

tus(

toke

n1)o

rels

e get

Sta

tus(

toke

n2))

, get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

, get

Proc

essi

ngTi

meS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

, get

Queu

eTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Queu

eTim

e(to

ken))

, get

Wai

tTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

+ g

etW

aitT

imeM

ax((

toke

n0::

toke

n1::

toke

n2::

nil)

, tim

e()

- get

Tim

esta

mp(t

oken

), g

etSoj

ourn

Tim

e(to

ken))

)

toke

n

toke

n

toke

n

toke

n

P_H

IGH

P_H

IGH

P_H

IGH

Xor

XChild

2Sch

edule

d

case

Id =

get

Cas

eId(t

oken

) an

dal

so m

atch

(tok

en::

toke

n1::

nil)

Xor

XChild

0Sch

edule

d

case

Id =

get

Cas

eId(t

oken

)

mat

ch(t

oken

::to

ken0::

toke

n1::

toke

n2::

nil)

get

Sta

tus(

toke

n)

Xor

XSch

edule

get

Sta

tus(

toke

n)not

(get

Sta

tus(

toke

n))

P_H

IGH

ER

PCSch

edule

In2

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sch

edule

InCTo

ken

CTo

ken

CTo

ken

PBSch

edule

In1

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

ched

ule

InCTo

ken

PBSch

edule

Out1

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

ched

ule

Out

CTo

ken

Xor

XChild

0Sel

ecte

d

CTo

ken

CTo

ken

PASch

edule

Out0

39967614-2

525-4

895-a

f41-5

940df5

87815Sch

edule

Out

CTo

ken

PExp

r2ad

4e0

3d0-8

180-4

ae3-b

9f9

-35ab

96c9

fbd8

CExp

r

NoE

xpre

ssio

nN

oExp

ress

ion

CExp

r

PExp

r16916a8

7d-d

9ba-

4158-a

2d0-1

f4e6

5c2

c9b5

CExp

r

CTo

ken

PXor

XFi

nal

ise

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Fi

nal

ise

CTo

ken

PXor

XIn

itia

lised

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229In

itia

lised

CTo

ken

CTo

ken

Xor

XBusy CTo

ken

PCCom

ple

ted2

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Com

ple

ted

CTo

ken

CTo

ken

PCSta

rted

26730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sta

rted

CTo

ken

PCSch

edule

d2

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sch

edule

dCTo

ken

PBCom

ple

ted1

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfC

omple

ted

CTo

ken

CTo

ken

PBSta

rted

18b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

tart

edCTo

ken

PBSch

edule

d1

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

ched

ule

dCTo

ken

PACom

ple

ted0

39967614-2

525-4

895-a

f41-5

940df5

87815Com

ple

ted

CTo

ken

CTo

ken

PASta

rted

039967614-2

525-4

895-a

f41-5

940df5

87815Sta

rted

CTo

ken

CTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

CTo

ken

CTo

ken

CTo

ken

CTo

ken

Sta

tsQ

ueu

eTim

e

Sta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

39967614-2

525-4

895-a

f41-5

940df5

87815Sta

rted

39967614-2

525-4

895-a

f41-5

940df5

87815Com

ple

ted

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

ched

ule

d

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

tart

ed

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfC

omple

ted

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sch

edule

d

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sta

rted

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Com

ple

ted

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229In

itia

lised

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Fi

nal

ise

6916a8

7d-d

9ba-

4158-a

2d0-1

f4e6

5c2

c9b5

NoE

xpre

ssio

n

ad4e0

3d0-8

180-4

ae3-b

9f9

-35ab

96c9

fbd8

39967614-2

525-4

895-a

f41-5

940df5

87815Sch

edule

Out

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

ched

ule

Out

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

ched

ule

In

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sch

edule

In

PXor

Withdra

wn

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229W

ithdra

wn

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229W

ithdra

wn

PASch

edule

In0

39967614-2

525-4

895-a

f41-5

940df5

87815Sch

edule

In39967614-2

525-4

895-a

f41-5

940df5

87815Sch

edule

In

Xor

XCom

ple

te

PXor

Com

ple

ted

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Com

ple

ted

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Com

ple

ted

PXor

Sch

edule

d86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Sch

edule

d86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Sch

edule

d

Xor

XIn

it

Xor

XChild

1Sch

edule

d

PCSch

edule

Out2

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sch

edule

Out

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sch

edule

Out

PXor

Sta

rted

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Sta

rted

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Sta

rted

Xor

XFi

nal

PBW

ithdra

wn1

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfW

ithdra

wn

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfW

ithdra

wn

Xor

XSki

p

Xor

XChild

2Sta

rted

Xor

XChild

1Sta

rted

Xor

XChild

0Sta

rted

toke

nto

ken

toke

n

toke

n

Xor

XW

ithdra

wto

ken

toke

n

toke

nupdSta

tus(

toke

n,

fals

e)

Xor

XN

oWithdra

w

PCW

ithdra

wn2

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5W

ithdra

wn

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5W

ithdra

wn PA

Withdra

wn0

39967614-2

525-4

895-a

f41-5

940df5

87815W

ithdra

wn

39967614-2

525-4

895-a

f41-5

940df5

87815W

ithdra

wn

toke

nto

ken

toke

nP_

HIG

H

Xor

XChild

1Sel

ecte

d

case

Id =

get

Cas

eId(t

oken

) an

dal

so g

etCas

eId(t

oken

) =

get

Cas

eId(t

oken

1)

PXor

XIn

itia

lise

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229In

itia

lise

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229In

itia

lise

PASch

edule

d0

39967614-2

525-4

895-a

f41-5

940df5

87815Sch

edule

d39967614-2

525-4

895-a

f41-5

940df5

87815Sch

edule

d

PXor

XFi

nal

ised

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Fi

nal

ised

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Fi

nal

ised

Fig. 9: The interface a node (xor in this case) has towards its parent.

30

Page 31: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

toke

n

if g

etSta

tus(

toke

n3)t

hen

1`(g

etCas

eId(t

oken

3),

"Roo

t",

get

Proc

essi

ngTi

me(

toke

n3))

els

e nil

toke

n3

toke

n3

toke

nto

ken

toke

n

toke

n

P_H

IGH

mat

ch(t

oken

3::

toke

n::

nil)

CTo

ken

CTo

ken

CTo

ken

CTo

ken

CTo

ken

CTo

ken

CTo

ken

CSta

t

CSta

t

CSta

t

CSta

t

PNew

Toke

nCas

eSta

rtCas

eSta

rt

Roo

tSch

edule

Child

Sch

edule

ddfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bSch

edule

ddfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bSch

edule

d

Roo

tBusy

Roo

tCom

ple

te

Child

Com

ple

ted

dfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bCom

ple

ted

dfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bCom

ple

ted

Child

Withdra

wn

dfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bW

ithdra

wn

dfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bW

ithdra

wn

Child

Sta

rted

dfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bSta

rted

dfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bSta

rted

Roo

tChild

Sta

rted

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

e

POld

Toke

nCas

eEnd

Cas

eEnd

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

if g

etSta

tus(

toke

n3)t

hen

1`(g

etCas

eId(t

oken

3),

"Roo

t",

get

Soj

ourn

Tim

e(to

ken3))

els

e nil

if g

etSta

tus(

toke

n3)t

hen

1`(g

etCas

eId(t

oken

3),

"Roo

t",

get

Wai

tTim

e(to

ken3))

els

e nil

if g

etSta

tus(

toke

n3)t

hen

1`(g

etCas

eId(t

oken

3),

"Roo

t",

get

Queu

eTim

e(to

ken3))

els

e nil

Fig. 10: The root net connecting the arrival of cases with the control flow.

31

Page 32: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

setS

ojou

rnTi

me(

toke

n,

get

Soj

ourn

Tim

e(to

ken)

+ t

ime(

) -

get

Tim

esta

mp(t

oken

))

toke

n

toke

n

toke

n(cas

eId,

rv2)

(cas

eId,

rv2 +

1) to

ken

toke

n(c

aseI

d,

rv1)

(cas

eId,

rv1 +

1)

toke

n

toke

n

(cas

eId,

rv3)

(cas

eId,

rv3)

toke

n

(get

Cas

eId(t

oken

), "

A_b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

", 0

.0)

(get

Cas

eId(t

oken

), "

A_b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

", t

ime(

)-get

Tim

esta

mp(t

oken

))

(get

Cas

eId(t

oken

), "

A_b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

", g

etD

ura

tion

(tok

en))

(get

Cas

eId(t

oken

), "

A_b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

", t

ime(

)-get

Tim

esta

mp(t

oken

))

updTi

mes

tam

p(t

oken

, tim

e())

toke

n

toke

nupdSta

tus(

toke

n,

fals

e)

toke

nto

ken

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

setP

roce

ssin

gTi

me(

toke

n,

get

Proc

essi

ngTi

me(

toke

n)

+ g

etD

ura

tion

(tok

en))

toke

n

setQ

ueu

eTim

e(to

ken,

get

Queu

eTim

e(to

ken)

+ t

ime(

)-get

Tim

esta

mp(t

oken

))

Em

pty

Updat

eVar

sPla

ce

Updat

eWrite

v2

case

Id =

get

Cas

eId(t

oken

)

P_H

IGH

ER

Updat

eWrite

v1

case

Id =

get

Cas

eId(t

oken

)

P_H

IGH

ER

Updat

eRea

dv3

case

Id =

get

Cas

eId(t

oken

)

P_H

IGH

ER

T_A_Fi

nal

T_A_In

it

get

Sta

tus(

toke

n)

T_A_Ta

skM

Withdra

w

P_H

IGH

ER

T_A_Ta

skM

NoW

ithdra

w

P_H

IGH

T_A_Ta

skM

Ski

p

not

(get

Sta

tus(

toke

n))

T_A_Ta

skM

Com

ple

teT_

A_Ta

skM

@+

+get

Dura

tion

(tok

en)

T_A_Ta

skM

Sta

rt

get

Sta

tus(

toke

n)

Aft

erU

pdat

ingv2

CTo

ken

Aft

erU

pdat

ingv1

CTo

ken

Aft

erU

pdat

ingv3

CTo

ken

Updat

eVar

s

CTo

ken

Pv3

v3CVar

iable

Pv2

v2CVar

iable

Pv1

v1CVar

iable

PT_A_Fi

nal

ised

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ised

CTo

ken

PT_A_Fi

nal

ise

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ise

CTo

ken

PT_A_In

itia

lised

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lised

CTo

ken

PT_A_In

itia

lise

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lise

CTo

ken

Task

MD

one

CTo

ken

Task

MBusy

CTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

PACom

ple

ted

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Com

ple

ted

CTo

ken

PAW

ithdra

wn

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Withdra

wn

CTo

ken

PASta

rted

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Sta

rted

CTo

ken

PASch

edule

db4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Sch

edule

dCTo

ken

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Sch

edule

db4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Sta

rted

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Withdra

wn

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Com

ple

ted

Sta

tsQ

ueu

eTim

eSta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lise

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lised

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ise

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ised

v1

v2

v3

Fig. 11: Manual task encoding

32

Page 33: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

toke

nto

ken

updD

ura

tion

(#1 c

Wor

kIte

m,

det

erm

ineD

ura

tion

(cW

orkI

tem

, #

2 (

get

Mat

chin

g(c

Wor

kIte

m,

cMat

chin

g))

, cW

orkI

tem

s))

toke

n

inM

atch

ing(c

Wor

kIte

m,

cMat

chin

g)

CO

rigin

ator

CId

CW

orkI

tem

CLO

rigin

ator

1`[]

CM

atch

ing

1`[]

CW

orkI

tem

s

CTo

ken

CTo

ken

CTo

ken

CTo

ken

PAin

itia

lise-

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lise

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lise

Porg

TFin

alis

eInitia

lisat

ion

PAin

itia

lised

-b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lised

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lised

PWor

kIte

ms

Wor

kIte

ms

Wor

kIte

ms

PAfinal

ise-

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ise

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ise

PAfinal

ised

-b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ised

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ised

4`("

Rol

e1",

(0,

[0.2

0833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "R

ole1

"),

("Rol

e",

"Rol

e1")

, ("

Gro

up",

"")

]) +

+

3`("

Eric"

, (0

, [0

.20833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "E

ric"

), (

"Rol

e",

""),

("G

roup",

"")

]) +

+

4`("

Rol

e0",

(0,

[0.2

0833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "R

ole0

"),

("Rol

e",

"Rol

e0")

, ("

Gro

up",

"")

]) +

+

5`("

Den

nis

", (

0,

[0.2

0833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "D

ennis

"),

("Rol

e",

""),

("G

roup",

"")

])

addO

rigin

ator

(org

, cL

Origin

ator

)cL

Origin

ator

TAfinal

-b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

(cas

eId,

org)

case

Id =

get

Cas

eId(t

oken

)

TAin

it-b

4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

PTok

enPl

ace

(tok

en,

[("A

ctN

ame"

, "A

")])

cWor

kIte

m

addW

orkI

tem

((to

ken,

[("A

ctN

ame"

, "A

")])

, cW

orkI

tem

s)

cWor

kIte

ms

cWor

kIte

ms

cWor

kIte

ms

rem

oveM

atch

ing(c

Wor

kIte

m,

cMat

chin

g)

cMat

chin

g

PMat

ches

Mat

chin

gM

atch

ing

POrigin

ator

sO

rigin

ator

sO

rigin

ator

s

(get

Cas

eId(#

1 c

Wor

kIte

m),

#2 (

get

Mat

chin

g(c

Wor

kIte

m,

cMat

chin

g))

)

Fig. 12: Task controller encoding

33

Page 34: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

The statistics for a task are computed as follows; the queue time is the elapsedtime between a token entering the task’s subprocess and the moment we obtainthe token back from the controller, i.e., an originator has been allocated to thework item. The processing time is the duration of a task. The wait time is 0by definition. Finally, the sojourn time is the sum of the queue time and theprocessing time, i.e., the total time a token spent in the task subprocess. Moreformally:

Definition 39 (Statistics task). Let d be the duration as determined by thecontroller, let q be the time spent inside the controller for allocating an originator(Core Controller), then the statistics are computed as follows:

– Sojourn time: d+ q– Processing time: d– Queue time: q– Wait time: 0

Blocks Blocks have the same set of places exposed to their parent as a taskhas, e.g., also a block is scheduled, and a block signals her parent that sheis completed. Dependent on the type of block, different children receive a truetoken based on different information, e.g., in case of an and block all the childrenreceive a true token, in case of a xor block only the first child for which theexpression evaluates to true receives a true token.

Blocks come in 8 different flavours and each of them is described in theremainder of this paragraph. In the figures of the blocks, we have placed thefunctions for updating the token and computing the sojourn, processing, queue,and wait time in that order at a free space in the figure for readability.

seq The sequence operator schedules its children one-by-one. As soon as a childhas finished, the next child may be scheduled. In Fig. 13 (note the positioningof the functions in the bottom middle), the encoding of the sequence operator isshown. The first step for a scheduled sequence is the notification of the controller.Afterwards, the first child is scheduled. Note that, extra hooks have been addedto notify the controller that a particular child is scheduled, this way delays inhandovers can be modelled. If the first child has started, then the entire sequencehas started and the parent is signalled. Similar, if the sequence is withdrawn,then this token is forwarded to the first child of the sequence. After the first childcompleted, the second child is scheduled after notifying the controller. Finally,after the last child has completed, the statistics are computed for this sequenceand stored, and the controller is notified of the completion of the sequence.

The statistics are computed as follows; the sojourn/ processing/ queue/ waittime of the subprocesses rooted at the seq block, is the sojourn/ processing/queue/ wait time of the token returned by the last child of the seq block sub-tracted with the sojourn/ processing/ queue/ wait time of the token arriving tothe seq block, i.e., the sojourn/ processing/ queue/ wait time of the case tillthis block. More formally:

34

Page 35: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Definition 40 (Statistics seq block). Let n1, . . . , nk be the children of theseq block, and let t1, . . . , tk be the token returned by the children, i.e., n1 returnstoken t1, and finally, let t be the token obtained from the parent of the seq block,then the statistics are computed as follows:

– Sojourn time: π1π5tk − π1π5t– Processing time: π2π5tk − π2π5t– Queue time: π3π5tk − π3π5t– Wait time: π4π5tk − π4π5t

and The and operator schedules its children all at once. After signalling thecontroller of being scheduled, the and block schedules all of its children (Fig. 31).Since we do not know which of the children will be the first to start, the startnotifications of all children are forwarded to the parent. Similar, we forward awithdraw token to all children to notify them. Finally, the and block can onlycomplete when all of the children have completed. The performance statisticsare written, and the controller is notified.

The statistics for the and block are similar to the seq block, i.e., we take thesummation of the statistics of the individual children. However, as these childrendo not have a causal relationship, we have to do the summation manually. Fur-thermore, the wait time of the and block is different from the seq block. Notethat with a decomposition of the and operator into multiple and operators, wecount the wait time multiple times, i.e., the wait times in the and operatorshappen simultaneously but are counted as sequential.

Definition 41 (Statistics and block). Let n1, . . . , nk be the children of theand block, and let t1, . . . , tk be the token returned by the children, i.e., n1 returnstoken t1, and finally, let t be the token obtained from the parent of the and, thenthe statistics are computed as follows:

– Sojourn time: max1≤i≤k (π1π5ti)− π1π5t– Processing time:

∑1≤i≤k (π2π5ti − π2π5t)

– Queue time:∑

1≤i≤k (π3π5ti − π3π5t)– Wait time: max1≤i≤k (π1π5ti)−min1≤i≤k (π1π5ti) +

∑1≤i≤k (π4π5ti − π4π5t)

xor The xor block is very similar to the and block. The main difference is in thescheduling of the children, lower left in Fig. 32. Similar to the and block, we firstsignal the controller of the scheduling of the children, this allows the controllerto, for instance, inspect the guards and take appropriate actions. Afterwards,the guards are evaluated one-by one, i.e., first the guard for the first child isevaluated, if it is true then a true token is passed to the first child and falsetokens are passed to the remaining children. If the first guard is false, the secondguard is evaluated and if true, then a true token is passed to the second child andfalse tokens are passed to the other children. Finally, if all the guards are false,then a true token is sent to the last child. This is the same as in the YAWL [32]semantics, where the last child is a default option, i.e., its guard always evaluatesto true.

35

Page 36: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Seq

S_f4

4d78c1

-ad27-4

2d6-8

656-3

b6216524dd5",

get

Wai

tTim

e(to

ken2)

- get

Wai

tTim

e(to

ken))

els

e nil

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Seq

S_f4

4d78c1

-ad27-4

2d6-8

656-3

b6216524dd5",

get

Queu

eTim

e(to

ken2)

- get

Queu

eTim

e(to

ken))

els

e nil

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Seq

S_f4

4d78c1

-ad27-4

2d6-8

656-3

b6216524dd5",

get

Proc

essi

ngTi

me(

toke

n2)

- get

Proc

essi

ngTi

me(

toke

n))

els

e nil

toke

n2

updTi

mes

tam

p(t

oken

1,

tim

e())

toke

n1

toke

n1

toke

n1

updTi

mes

tam

p(t

oken

0,

tim

e())

toke

n0

toke

n0

toke

n0

toke

n

toke

nto

ken

toke

n

toke

n

updTi

mes

tam

p(t

oken

, tim

e())

toke

n

toke

n

toke

nto

ken

toke

n2

toke

n2

setS

tats

Tim

e(updTi

mes

tam

p(t

oken

2,

tim

e())

, get

Soj

ourn

Tim

eMax

((to

ken2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

+ g

etSoj

ourn

Tim

e(to

ken),

get

Proc

essi

ngTi

meS

um

((to

ken2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

+ g

etPr

oces

singTi

me(

toke

n),

get

Queu

eTim

eSum

((to

ken2::

nil)

, get

Queu

eTim

e(to

ken))

+ g

etQ

ueu

eTim

e(to

ken),

get

Wai

tTim

eSum

((to

ken2::

nil)

, get

Wai

tTim

e(to

ken))

+ g

etW

aitT

ime(

toke

n))

toke

nupdSta

tus(

toke

n,

fals

e)

toke

n

toke

n

toke

n

toke

n

toke

n

toke

nto

ken

Con

trol

Seq

SSch

edule

Child

2

Seq

SSch

edule

Child

2

Con

trol

Seq

SSch

edule

Child

1

Seq

SSch

edule

Child

1

Seq

SChild

2Sta

rted

P_H

IGH

Seq

SChild

1Sta

rted

P_H

IGH

Seq

SChild

0Sta

rted

P_H

IGH

Seq

SSch

edule

Child

0

Seq

SN

oWithdra

w

P_H

IGH

Seq

SCom

ple

te

mat

ch(t

oken

2::

toke

n::

nil)

Seq

SFi

nal

Seq

SIn

it

get

Sta

tus(

toke

n)

Seq

SSch

edule

get

Sta

tus(

toke

n)

Seq

SSki

p

not

(get

Sta

tus(

toke

n))

Seq

SW

ithdra

w

P_H

IGH

ER

PCSch

edule

In2

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sch

edule

InCTo

ken

PCSch

edule

Out2

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sch

edule

Out

CTo

ken

PBSch

edule

In1

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sch

edule

InCTo

ken

PBSch

edule

Out1

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sch

edule

Out

CTo

ken

PASch

edule

In0

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sch

edule

InCTo

ken

PASch

edule

Out0

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sch

edule

Out

CTo

ken

PSeq

SFi

nal

ised

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Fi

nal

ised

CTo

ken

PSeq

SFi

nal

ise

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Fi

nal

ise

CTo

ken

PSeq

SIn

itia

lised

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5In

itia

lised

CTo

ken

PSeq

SIn

itia

lise

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5In

itia

lise

CTo

ken

Seq

SBusy CTo

ken

PCCom

ple

ted2

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Com

ple

ted

CTo

ken

PCW

ithdra

wn2

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96W

ithdra

wn

CTo

ken

PCSta

rted

2b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sta

rted

CTo

ken

PCSch

edule

d2

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sch

edule

dCTo

ken

PBCom

ple

ted1

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Com

ple

ted

CTo

ken

PBW

ithdra

wn1

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22W

ithdra

wn

CTo

ken

PBSta

rted

1a3

359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sta

rted

CTo

ken

PBSch

edule

d1

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sch

edule

dCTo

ken

PACom

ple

ted0

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Com

ple

ted

CTo

ken

PAW

ithdra

wn0

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878W

ithdra

wn

CTo

ken

PASta

rted

0aa

a9666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sta

rted

CTo

ken

PASch

edule

d0

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sch

edule

dCTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

PSeq

Com

ple

ted

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Com

ple

ted

CTo

ken

PSeq

Withdra

wn

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5W

ithdra

wn

CTo

ken

PSeq

Sta

rted

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Sta

rted

CTo

ken

PSeq

Sch

edule

df4

4d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Sch

edule

dCTo

ken

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Sch

edule

df4

4d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Sta

rted

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5W

ithdra

wn

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Com

ple

ted

Sta

tsQ

ueu

eTim

e

Sta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sch

edule

d

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sta

rted

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878W

ithdra

wn

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Com

ple

ted

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sch

edule

d

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sta

rted

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22W

ithdra

wn

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Com

ple

ted

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sch

edule

d

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sta

rted

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96W

ithdra

wn

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Com

ple

ted

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5In

itia

lise

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5In

itia

lised

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Fi

nal

ise

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Fi

nal

ised

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sch

edule

Out

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sch

edule

In

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sch

edule

Out

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sch

edule

In

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sch

edule

Out

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sch

edule

In

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Seq

S_f4

4d78c1

-ad27-4

2d6-8

656-3

b6216524dd5",

get

Soj

ourn

Tim

e(to

ken2)

- get

Soj

ourn

Tim

e(to

ken))

els

e nil

Fig. 13: seq operator encoding

36

Page 37: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

The statistics for the xor block are similar to the seq block, i.e., we takethe summation of the statistics of the individual (executed) children which is asingle one by definition. Since we have true and false token, we can use theseto determine if a subprocess has been executed or not. Note that, we use ashorthand notation in the definition, e.g., let b be a boolean, then 5 · b = 5 incase b is true, and 5 · b = 0 otherwise.

Definition 42 (Statistics xor block). Let n1, . . . , nk be the children of thexor block, and let t1, . . . , tk be the token returned by the children, i.e., n1 returnstoken t1, and finally, let t be the token obtained from the parent of the xor, thenthe statistics are computed as follows:

– Sojourn time: max1≤i≤k (π3ti · π1π5ti)− π1π5t– Processing time:

∑1≤i≤k (π3ti · π2π5ti − π3ti · π2π5t)

– Queue time:∑

1≤i≤k (π3ti · π3π5ti − π3ti · π3π5t)– Wait time:

∑1≤i≤k (π3ti · π4π5ti − π3ti · π4π5t)

loopxor The loopxor block is most similar to the seq block, since theloopxor block can be seen as a sequence of do, redo, . . . , exit. First, the dochild is scheduled, and, when it has completed, both the redo and exit child arescheduled. Based on the evaluation of the guard of the redo child, see Fig. 14,either the redo or exit child gets the true token. Only the guard for the redochild is used since YAWL semantics are used, i.e., if the guard for the redo childis false, then by default the guard for the exit is true, hence the negation ofthe redo guard is used. If the redo child gets a true token, then the do childis executed again after synchronising with the false token from the exit . Theloopxor block terminates if the exit child has a true token and thus the redochild has a false token. Note that, we do not strictly need to use a false tokenfor the non-selected child, this has been done for uniformity with the xor blockand loopdef block.

The statistics for the loopxor block are similar to the seq block, i.e., wetake the statistics from the last child, i.e. the exit child.

Definition 43 (Statistics loopxor block). Let n1, . . . , n3 be the children ofthe loopxor block, and let t1, . . . , t3 be the token returned by the children, i.e.,n1 returns token t1, and finally, let t be the token obtained from the parent ofthe loopxor, then the statistics are computed as follows:

– Sojourn time: π1π5t3 − π1π5t– Processing time: π2π5t3 − π2π5t– Queue time: π3π5t3 − π3π5t– Wait time: π4π5t3 − π4π5t

or The or block has the collection of statistics from the and block but takinginto account which children have been executed, and the selection of the childrenis similar to the xor block. The main difference with the xor block is that nowmultiple children may be selected. If none of the guard for the children evaluates

37

Page 38: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

2),

"Xor

Loop

D_4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445",

get

Wai

tTim

e(to

ken2)

- get

Wai

tTim

e(to

ken))

els

e nil

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

2),

"Xor

Loop

D_4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445",

get

Queu

eTim

e(to

ken2)

- get

Queu

eTim

e(to

ken))

els

e nil

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

2),

"Xor

Loop

D_4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445",

get

Proc

essi

ngTi

me(

toke

n2)

- get

Proc

essi

ngTi

me(

toke

n))

els

e nil

toke

n2

toke

n2

toke

n1

toke

n1

toke

n

toke

nto

ken

toke

n

toke

n

toke

n updTi

mes

tam

pSta

tus(

toke

n0,

tim

e(),

get

Sta

tus(

toke

n0)

andal

so n

ot(b

))

toke

n0

toke

n

updTi

mes

tam

pSta

tus(

toke

n0,

tim

e(),

get

Sta

tus(

toke

n0)

andal

so b

)

toke

n0

toke

n

updTi

mes

tam

p(t

oken

1,

tim

e())

toke

n

toke

n

toke

n

toke

nto

ken

toke

n2

toke

n2

setS

tats

Tim

e(updTi

mes

tam

p(t

oken

2,

tim

e())

, get

Soj

ourn

Tim

eMax

((to

ken2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

+ g

etSoj

ourn

Tim

e(to

ken),

get

Proc

essi

ngTi

meS

um

((to

ken2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

+ g

etPr

oces

singTi

me(

toke

n),

get

Queu

eTim

eSum

((to

ken2::

nil)

, get

Queu

eTim

e(to

ken))

+ g

etQ

ueu

eTim

e(to

ken),

get

Wai

tTim

eSum

((to

ken2::

nil)

, get

Wai

tTim

e(to

ken))

+ g

etW

aitT

ime(

toke

n))

toke

nupdSta

tus(

toke

n,

fals

e)

toke

n

toke

n

toke

n

toke

n

toke

n

toke

nto

ken

(cas

eId,

rs,

b)

(cas

eId,

rs,

b)

(cas

eId,

rs,

b)

(cas

eId,

rs,

b)

Xor

Loop

DChild

2Sta

rted

P_H

IGH

Xor

Loop

DChild

1Sta

rted

P_H

IGH

Xor

Loop

DChild

0Sta

rted

P_H

IGH

Xor

Loop

DSch

edule

Child

0

Xor

Loop

DRes

ched

ule

not

(get

Sta

tus(

toke

n2))

andal

so g

etSta

tus(

toke

n1)

Xor

Loop

DRed

oExi

t

Xor

Loop

DRed

o

case

Id =

get

Cas

eId(t

oken

0)

Xor

Loop

DExi

t

case

Id =

get

Cas

eId(t

oken

0)

Xor

Loop

DN

oWithdra

w

P_H

IGH

Xor

Loop

DCom

ple

te

mat

ch(t

oken

::to

ken2::

nil)

andal

so n

ot(g

etSta

tus(

toke

n1))

Xor

Loop

DFi

nal

Xor

Loop

DIn

it

get

Sta

tus(

toke

n)

Xor

Loop

DSch

edule

get

Sta

tus(

toke

n)

Xor

Loop

DSki

p

not

(get

Sta

tus(

toke

n))

Xor

Loop

DW

ithdra

w

P_H

IGH

ER

PCSch

edule

In2

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sch

edule

InCTo

ken

PCSch

edule

Out2

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sch

edule

Out

CTo

ken

PBSch

edule

In1

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSch

edule

InCTo

ken

PBSch

edule

Out1

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSch

edule

Out

CTo

ken

PASch

edule

In0

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSch

edule

InCTo

ken

PASch

edule

Out0

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSch

edule

Out

CTo

ken

PXor

Loop

DFi

nal

ised

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Fi

nal

ised

CTo

ken

PXor

Loop

DFi

nal

ise

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Fi

nal

ise

CTo

ken

PXor

Loop

DIn

itia

lised

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445In

itia

lised

CTo

ken

PXor

Loop

DIn

itia

lise

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445In

itia

lise

CTo

ken

Xor

Loop

DBusy

CTo

ken

NoE

xpre

ssio

nN

oExp

ress

ion

CExp

r

PExp

r17d2b6f2

e-12a0

-40f7

-b318-6

ee570029eb

0CExp

r

PExp

r23a4

b0ec

f-a4

4a-

4b36-a

807-8

4ae

a9302fd

7CExp

r

PCCom

ple

ted2

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Com

ple

ted

CTo

ken

PCW

ithdra

wn2

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Withdra

wn

CTo

ken

PCSta

rted

22362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sta

rted

CTo

ken

PCSch

edule

d2

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sch

edule

dCTo

ken

PBCom

ple

ted1

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eCom

ple

ted

CTo

ken

PBW

ithdra

wn1

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eWithdra

wn

CTo

ken

PBSta

rted

181589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSta

rted

CTo

ken

PBSch

edule

d1

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSch

edule

dCTo

ken

PACom

ple

ted0

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dCom

ple

ted

CTo

ken

PAW

ithdra

wn0

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dW

ithdra

wn

CTo

ken

PASta

rted

098d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSta

rted

CTo

ken

PASch

edule

d0

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSch

edule

dCTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

PXor

Loop

Com

ple

ted

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Com

ple

ted

CTo

ken

PXor

Loop

Withdra

wn

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445W

ithdra

wn

CTo

ken

PXor

Loop

Sta

rted

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Sta

rted

CTo

ken

PXor

Loop

Sch

edule

d4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Sch

edule

dCTo

ken

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Sch

edule

d4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Sta

rted

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445W

ithdra

wn

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Com

ple

ted

Sta

tsQ

ueu

eTim

e

Sta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSch

edule

d

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSta

rted

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dW

ithdra

wn

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dCom

ple

ted

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSch

edule

d81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSta

rted

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eWithdra

wn

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eCom

ple

ted

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sch

edule

d

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sta

rted

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Withdra

wn

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Com

ple

ted

3a4

b0ec

f-a4

4a-

4b36-a

807-8

4ae

a9302fd

7

7d2b6f2

e-12a0

-40f7

-b318-6

ee570029eb

0

NoE

xpre

ssio

n

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445In

itia

lise

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445In

itia

lised

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Fi

nal

ise

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Fi

nal

ised

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSch

edule

Out

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSch

edule

In

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSch

edule

Out

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSch

edule

In

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sch

edule

Out

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sch

edule

In

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

2),

"Xor

Loop

D_4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445",

get

Soj

ourn

Tim

e(to

ken2)

- get

Soj

ourn

Tim

e(to

ken))

els

e nil

Fig. 14: loopxor operator encoding

38

Page 39: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

OrO

_ec

a3f5

4d-f

bc3

-42a1

-b850-d

3aa

c36a8

70b",

get

Queu

eTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Queu

eTim

e(to

ken))

) el

se n

il

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

OrO

_ec

a3f5

4d-f

bc3

-42a1

-b850-d

3aa

c36a8

70b",

get

Proc

essi

ngTi

meS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

) el

se n

il

toke

n2

toke

n1

toke

n0

toke

nto

ken

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

updTi

mes

tam

pSta

tus(

toke

n,

tim

e(),

b o

rels

e not

(get

Sta

tus(

toke

n1))

)

toke

n1

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

updTi

mes

tam

pSta

tus(

toke

n,t

ime(

),b)

toke

n1

updSta

tus(

toke

n1,

b o

rels

e get

Sta

tus(

toke

n1))

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

updTi

mes

tam

pSta

tus(

toke

n,

tim

e(),

b)

updSta

tus(

toke

n,

b)

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

toke

nto

ken

toke

n

toke

n

toke

n

updSta

tus(

toke

n,

fals

e)to

ken

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

OrO

Child

2Sta

rted

P_H

IGH

OrO

Child

1Sta

rted

P_H

IGH

OrO

Child

0Sta

rted

P_H

IGH

OrO

Child

2Sch

edule

d

case

Id =

get

Cas

eId(t

oken

) an

dal

so g

etCas

eId(t

oken

) =

get

Cas

eId(t

oken

1)

OrO

Child

1Sch

edule

d

case

Id =

get

Cas

eId(t

oken

) an

dal

so g

etCas

eId(t

oken

) =

get

Cas

eId(t

oken

1)

OrO

Child

0Sch

edule

d

case

Id =

get

Cas

eId(t

oken

)

OrO

NoW

ithdra

w

P_H

IGH

OrO

Com

ple

te

mat

ch(t

oken

::to

ken0::

toke

n1::

toke

n2::

nil)

OrO

Final

OrO

Init

get

Sta

tus(

toke

n)

OrO

Sch

edule

get

Sta

tus(

toke

n)

OrO

Ski

p

not

(get

Sta

tus(

toke

n))

OrO

Withdra

w

P_H

IGH

ER

PCSch

edule

In2

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sch

edule

InCTo

ken

PCSch

edule

Out2

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sch

edule

Out

CTo

ken

OrO

Child

1Sel

ecte

d

CTo

ken

PBSch

edule

In1

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sch

edule

InCTo

ken

PBSch

edule

Out1

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sch

edule

Out

CTo

ken

OrO

Child

0Sel

ecte

d

CTo

ken

PASch

edule

In0

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sch

edule

InCTo

ken

PASch

edule

Out0

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sch

edule

Out

CTo

ken

PExp

r3bb1398af

-c749-4

3fe

-b804-e

dac

bcb

d075c

CExp

r

PExp

r12a4

1265b-7

99c-

4602-9

063-d

e9a2

fc9291b

CExp

r

PExp

r21912d320-9

ee1-4

fdf-

a30c-

9735a8

7760b8

CExp

r

POrO

Final

ised

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bFi

nal

ised

CTo

ken

POrO

Final

ise

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bFi

nal

ise

CTo

ken

POrO

Initia

lised

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bIn

itia

lised

CTo

ken

POrO

Initia

lise

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bIn

itia

lise

CTo

ken

OrO

Busy CTo

ken

PCCom

ple

ted2

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Com

ple

ted

CTo

ken

PCW

ithdra

wn2

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53W

ithdra

wn

CTo

ken

PCSta

rted

21a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sta

rted

CTo

ken

PCSch

edule

d2

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sch

edule

dCTo

ken

PBCom

ple

ted1

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Com

ple

ted

CTo

ken

PBW

ithdra

wn1

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7W

ithdra

wn

CTo

ken

PBSta

rted

193db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sta

rted

CTo

ken

PBSch

edule

d1

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sch

edule

dCTo

ken

PACom

ple

ted0

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Com

ple

ted

CTo

ken

PAW

ithdra

wn0

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1W

ithdra

wn

CTo

ken

PASta

rted

03b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sta

rted

CTo

ken

PASch

edule

d0

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sch

edule

dCTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

POrC

omple

ted

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bCom

ple

ted

CTo

ken

POrW

ithdra

wn

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bW

ithdra

wn

CTo

ken

POrS

tart

edec

a3f5

4d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bSta

rted

CTo

ken

POrS

ched

ule

dec

a3f5

4d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bSch

edule

dCTo

ken

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bSch

edule

dec

a3f5

4d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bSta

rted

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bW

ithdra

wn

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bCom

ple

ted

Sta

tsQ

ueu

eTim

e

Sta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sch

edule

d

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sta

rted 3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1W

ithdra

wn

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Com

ple

ted

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sch

edule

d

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sta

rted 93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7W

ithdra

wn

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Com

ple

ted

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sch

edule

d

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sta

rted 1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53W

ithdra

wn

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Com

ple

ted

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bIn

itia

lise

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bIn

itia

lised

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bFi

nal

ise

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bFi

nal

ised

1912d320-9

ee1-4

fdf-

a30c-

9735a8

7760b8

2a4

1265b-7

99c-

4602-9

063-d

e9a2

fc9291b

bb1398af

-c749-4

3fe

-b804-e

dac

bcb

d075c

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sch

edule

Out

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sch

edule

In

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sch

edule

Out

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sch

edule

In

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sch

edule

Out

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sch

edule

Inse

tSta

tsTi

me(

updTi

mes

tam

pSta

tus(

toke

n,

tim

e(),

get

Sta

tus(

toke

n0)o

rels

e get

Sta

tus(

toke

n1)o

rels

e get

Sta

tus(

toke

n2))

, get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

+ g

etSoj

ourn

Tim

e(to

ken),

get

Proc

essi

ngTi

meS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

+ g

etPr

oces

singTi

me(

toke

n),

get

Queu

eTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Queu

eTim

e(to

ken))

+ g

etQ

ueu

eTim

e(to

ken),

get

Wai

tTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

+ g

etW

aitT

ime(

toke

n)

+ (

get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

- g

etSoj

ourn

Tim

eMin

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

))

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

OrO

_ec

a3f5

4d-f

bc3

-42a1

-b850-d

3aa

c36a8

70b",

get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

) el

se n

il

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

OrO

_e6

0d38a4

-9170-4

527-a

a27-c

99a8

744c0

5b",

get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

- g

etSoj

ourn

Tim

eMin

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

+

get

Wai

tTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

) el

se n

il

Fig. 15: or operator encoding

39

Page 40: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

to true, then the last child is selected as the default option. The encoding of theor block into CPN Tools is depicted in Fig. 15.

The statistics for the or block are a hybrid between the and block and thexor block, i.e., we have similar formulas for the statistics, but we have to takethe true token into account as mentioned with the xor block. Since we onlywant to take the executed branches into account, we first filter the set of tokensto only contain the tokens of the executed branches (T ). This is for the sake ofreadability. Note that, similar to the and block, we might count the wait timemultiple times if the or block has been decomposed into multiple or blocks.

Definition 44 (Statistics or block). Let n1, . . . , nk be the children of the orblock, and let t1, . . . , tk be the token returned by the children, i.e., n1 returnstoken t1, and finally, let t be the token obtained from the parent of the or, thenthe statistics are computed as follows:

– T : {ti | 1 ≤ i ≤ k ∧ π3ti}– Sojourn time: maxti∈T (π1π5ti)− π1π5t– Processing time:

∑ti∈T (π2π5ti − π2π5t)

– Queue time:∑

ti∈T (π3π5ti − π3π5t)– Wait time: maxti∈T (π1π5ti)−minti∈T (π1π5ti) +

∑ti∈T (π4π5ti − π4π5t)

event Prior to showing the encoding of the def block and loopdef block, weshow the encoding of the event block. The event block starts as the otherblocks by signalling the controller. Afterwards, the event block is scheduled,and a token is produced in the Pending place, see Fig. 16. If another eventblock is started before this event block, then the Pending place is emptied, andthe token from this event block is removed. If no other event block is startedbefore this event block, then its child is scheduled and the parent is signalledsuch that it can cancel the other pending events.

The statistics for an event block are the same as the statistics of its child.The only difference is the sojourn time which also needs to contain the time untilthe the event occurred. Since the time until the the event occurred is added to thetoken before its child is started, we can simply use the difference in accumulatedsojourn time between the token obtained for the parent and the token returnedfrom its child.

Definition 45 (Statistics event block). Let n1 be the child of the eventblock, and let t1 be the token returned by the child, i.e., n1 returns token t1,and finally, let t be the token obtained from the parent of the event, then thestatistics are computed as follows:

– Sojourn time: π1π5t1 − π1π5t– Processing time: π2π5t1 − π2π5t– Queue time: π3π5t1 − π3π5t– Wait time: π4π5t1 − π4π5t

40

Page 41: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

toke

n

toke

n

updSta

tus(

toke

n,

fals

e)

toke

n

updSta

tus(

toke

n,

fals

e)

toke

nto

ken1

toke

n

toke

n

toke

nto

ken

toke

n

toke

nto

ken

toke

n1

toke

n

toke

n

toke

n

setS

ojou

rnTi

me(

updTi

mes

tam

p(t

oken

, tim

e())

, get

Soj

ourn

Tim

e(to

ken)

+ t

ime(

) -

get

Tim

esta

mp(t

oken

))

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

Eve

ntE

Sch

edule

Child

0

Eve

ntE

Final

Eve

ntE

Init

get

Sta

tus(

toke

n)

Eve

ntE

Rem

oved

P_LO

W

Eve

ntE

Rem

ove

get

Cas

eId(t

oken

) =

get

Cas

eId(t

oken

1)

P_H

IGH

ER

Eve

ntE

Child

Sta

rted

P_H

IGH

Eve

ntE

Child

Sch

edule

Eve

ntE

@+

+get

Dura

tion

(tok

en)

Eve

ntE

NoW

ithdra

w

P_H

IGH

Eve

ntE

Com

ple

te

Eve

ntE

Sch

edule

get

Sta

tus(

toke

n)

Eve

ntE

Ski

p

not

(get

Sta

tus(

toke

n))

Eve

ntE

Withdra

w

P_H

IGH

ER

PASch

edule

In0

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sch

edule

InCTo

ken

PASch

edule

Out0

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sch

edule

Out

CTo

ken

PEve

ntE

Final

ised

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Fi

nal

ised

CTo

ken

PEve

ntE

Final

ise

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Fi

nal

ise

CTo

ken

PEve

ntE

Initia

lised

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3In

itia

lised

CTo

ken

PEve

ntE

Initia

lise

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3In

itia

lise

CTo

ken

Eve

ntE

Pendin

g

CTo

ken

Eve

ntE

Don

e

CTo

ken

Eve

ntE

Busy

CTo

ken

PACom

ple

ted0

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Com

ple

ted

CTo

ken

PAW

ithdra

wn0

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0W

ithdra

wn

CTo

ken

PASta

rted

077aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sta

rted

CTo

ken

PASch

edule

d0

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sch

edule

dCTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

Pto1

Com

ple

ted

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Com

ple

ted

CTo

ken

Pto1

Withdra

wn

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3W

ithdra

wn

CTo

ken

Pto1

Sta

rted

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Sta

rted

CTo

ken

Pto1

Sch

edule

d04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Sch

edule

dCTo

ken

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Sch

edule

d04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Sta

rted

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3W

ithdra

wn

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Com

ple

ted

Sta

tsQ

ueu

eTim

e

Sta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sch

edule

d77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sta

rted

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0W

ithdra

wn

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Com

ple

ted

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3In

itia

lise

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3In

itia

lised

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Fi

nal

ise

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Fi

nal

ised

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sch

edule

Out

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sch

edule

In

if g

etSta

tus(

toke

n)

then

1`(g

etCas

eId(t

oken

), "

Eve

nt_

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3",

get

Soj

ourn

Tim

e(to

ken1)

- get

Soj

ourn

Tim

e(to

ken))

els

e nil

updTi

mes

tam

p(t

oken

1,

tim

e())

get

Cas

eId(t

oken

) =

get

Cas

eId(t

oken

1)

if g

etSta

tus(

toke

n)

then

1`(g

etCas

eId(t

oken

), "

Eve

nt_

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3",

get

Proc

essi

ngTi

me(

toke

n1)

- get

Proc

essi

ngTi

me(

toke

n))

els

e nil

if g

etSta

tus(

toke

n)

then

1`(g

etCas

eId(t

oken

), "

Eve

nt_

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3",

get

Wai

tTim

e(to

ken1)

- get

Wai

tTim

e(to

ken))

els

e nil

if g

etSta

tus(

toke

n)

then

1`(g

etCas

eId(t

oken

), "

Eve

nt_

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3",

get

Queu

eTim

e(to

ken1)

- get

Queu

eTim

e(to

ken))

els

e nil

Fig. 16: event operator encoding

41

Page 42: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

def The def block is with respect to scheduling the children the same as an andblock, i.e., all the children are scheduled. However, as soon as one of the eventblock children has started, then the other event block children are withdrawn,centre of Fig. 36.

The statistics for the def block is the same as the statistics for the xorblock. We have repeated the definition for completeness.

Definition 46 (Statistics def block). Let n1, . . . , nk be the children of thedef block, and let t1, . . . , tk be the token returned by the children, i.e., n1 returnstoken t1, and finally, let t be the token obtained from the parent of the def, thenthe statistics are computed as follows:

– Sojourn time: max1≤i≤k (π3ti · π1π5ti)− π1π5t– Processing time:

∑1≤i≤k (π3ti · π2π5ti − π3ti · π2π5t)

– Queue time:∑

1≤i≤k (π3ti · π3π5ti − π3ti · π3π5t)– Wait time:

∑1≤i≤k (π3ti · π4π5ti − π3ti · π4π5t)

loopdef The loopdef operator is a combination of the loopxor and the defblocks. Similar to the loopxor block, as soon as the do child has finished, boththe redo and exit children may start. However, instead of a true or false token,we activate both children and the event block first to start its child cancels theother event block child, e.g., if the redo event is first to start its child, then theexit event is cancelled, bottom centre of Fig. 37.

The statistics for the loopdef block are the same as for the loopxor block,i.e., there is no difference whether guards or events are used to guide the execu-tion of the children.

Definition 47 (Statistics loopdef block). Let n1, . . . , n3 be the children ofthe loopdef block, and let t1, . . . , t3 be the token returned by the children, i.e.,n1 returns token t1, and finally, let t be the token obtained from the parent ofthe loopdef, then the statistics are computed as follows:

– Sojourn time: π1π5t3 − π1π5t– Processing time: π2π5t3 − π2π5t– Queue time: π3π5t3 − π3π5t– Wait time: π4π5t3 − π4π5t

Data perspective The data perspective comprises of variables and expressions.

Variables Variables come in 2 different views; control-flow view, and guard view.In Fig. 17, the control-flow view is at the top (fusion place Pv1 ) and guard viewis at the bottom (fusion place Pv1Value). We have made the distinction becausethe different views serve two different purposes. For the control-flow view, it isirrelevant what the value of a variable is but it is important to know whether anupdate has been performed. Therefore, the control-flow view is a tuple of a caseidentifier, and a revision number. For the guard view, it is important to knowthe exact value of a variable as these are used to evaluate guards, the revision

42

Page 43: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

of a variable is not important for the guard. For instance, if we have a variableAssessment denoting the assessment of a case, then in the control flow, whenreading and writing the variable the value is not important. For the guard it isimportant what the value is but it is irrelevant how many times an update hasbeen performed on this variable.

When a new case is started, a variable for the control-flow view is createdwith a new case identifier and revision number 0. In the variable controller, aninitialise transition initialises a variable for the guard view with the variable’sdefault value (0 in case of the example). Apart from initialising the variable forthe guard view, we also store the current revision number of the variable. Thisrevision number allows us to determine if a variable has been updated, i.e., therevision number changed. When the revision number changed, we use the ValueMatrix to determine the next value for this variable. Furthermore, we store thenew revision number of the variable. After the case has terminated, the caseidentifier is removed from the list of given identifiers (fusion place top right). Assoon as a case identifier is removed, the stored revision number is removed aswell as the variable for the guard view.

Expressions An expression is a single transition guarded by the expression itself.In Fig. 18, the expression [(((v1 == "0") || (v2 == "1")) && (v3 == "4"))]

is encoded. Slightly different names for the variables are used as we are now inter-ested in the value, i.e., the guard view. For the expression, all the used variablesare inspected as well as the evaluation of the guard (true or false). If the guardof the transition is different from the stored evaluation, then we reevaluate theexpression and write the new value (true or false). If the guard of the transitionis not different, this means the evaluation of the expression did not change, hencethere is no need to change the value.

Originator perspective The originator perspective mainly comprises of thework schedule of the originators. The number of originators available to theprocess is a modification of the initial marking.

We introduce a CPN property to be more flexible with storing more attributesfor originators, e.g., in the future one might want to store more characteristicsfor a particular type of originator for instance whether a originator is a generalistor specialist.

Definition 48 (CPN Property). Let Σ be an alphabet, then a CPN propertyis defined as: Σ+ 9 Σ+.

This CPN property is used to determine the like factor between an originatorand a work item (more on this later). Furthermore, the CPN property is usedto encode role information of an originator. In Fig. 19, we have the fragment("OrgName", "Role1") denoting that this particular originator has Role1 asOrgName.

The CPN schedule is a list of reals denoting the length of the intervals of beingpresent and absent. The integer denotes at which index the schedule currently

43

Page 44: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

(caseId, rv0)

P_HIGHER

1`[("9", "0", 0.25), ("0", "1", 0.25), ("1", "2", 0.25), ("4", "5", 0.25), ("7", "8", 0.25), ("6", "7", 0.25), ("5", "6", 0.25), ("8", "9", 0.25), ("3", "4", 0.25), ("2", "3", 0.25)]

ValueMatrix

1`[]

CLCId

CVariable

CVariableValue

CVariable

PgivenIdsgivenIdsgivenIds

P_HIGHER

not(inList(caseId, lIds))

PMatrix PLastRevisionv1Lastv1Last

Tinitialise

Tfinalise

Pv1v1v1

Tupdate

(caseId, rvar)

(caseId, rvar)

(caseId, 0)

(caseId, 1)

(caseId, 1)

(caseId, rvarx)

(caseId, rvar)

Pv1Valuev1Valuev1Value

valueMatrix

valueMatrixrvar <> rvarx

P_HIGHER

(caseId, nextValue(value, valueMatrix, valueMatrix))

(caseId, "0")

(caseId, value)

(caseId, value)

lIds lIds

Fig. 17: Variable encoding

P_HIGHER

CExpr

CVariableValue

CVariableValue

CVariableValue

Pv2v2Valuev2Value

(caseId, vv1)

Pv1v1Valuev1Value

(caseId, vv2)(caseId, vv2)

(caseId, vv3)(caseId, vv3)

(caseId, vv1)

TUpdateExpr1

bx <> (((vv1 = "0") orelse (vv2 = "1")) andalso (vv3 = "4"))

PExpr1f8b07c1e-b8b9-4deb-a4d8-ae0fc83d2243f8b07c1e-b8b9-4deb-a4d8-ae0fc83d2243

(caseId, rs, (((vv1 = "0") orelse (vv2 = "1")) andalso (vv3 = "4")))

(caseId, rs,bx)

Pv3v3Valuev3Value

Fig. 18: Expression encoding

44

Page 45: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

is, and the timestamp at the end denotes at what time the last change was.For instance, we have (0, [0.20833333333333334, 0.08333333333333333,

0.2916666666666667, 0.25], 0.0) in Fig. 19 on the first line of the marking.The “0” denotes that we are at index 0, i.e., the value “0.20833333333333334”.The values between “[” and “]” are the encoding of the work schedule. Finally,the “0.0” at the end denotes the timestamp of the last change which in this caseit was at time 0.0.

Definition 49 (CPN Schedule). Let N be the universe of integers, let R be theuniverse of reals, and let T be the universe of timestamps, then a CPN scheduleis defined as: N× R+ × T .

A CPN originator has a name, a schedule, and a list of properties. Theseproperties can be used to encode different characteristics of a particular origina-tor.

Definition 50 (CPN Originator). Let S be the universe of schedules, let P bethe universe of CPN properties, then a CPN originator is defined as: Σ+×S×P∗.

In Fig. 19, we have a list of originators and two control places as guards forthe transitions. We need these control places since CPN Tools does not allowtime related guards, i.e., guards which become enabled after some time hasprogressed but the marking did not change. The controller works as follows:after the time of the current index in the schedule has elapsed, the originatoris made (un)available to the process and the index and timestamp are updatedaccording. This keeps on continuing during the execution of the process.

6.2 Environment Perspective

The environment perspective currently consists of the arrival controller. Thearrival controller is in charge of creating new cases and disposing of finishedcases.

Arrival controller The arrival controller consists of a token generator, at the lefthand-side of Fig. 20. This token generator signals to the root net that a new casehas been started and adds the case identifier to the list of identifiers. Simulta-neously, the expressions and variables are created with a standard initialisation,i.e., revision number 0. Due to historic reasons also the expressions have revisionnumbers but these are currently not used.

The right-hand side of the controller is charged with closing a case. As soon asthe root net signals the case has been ended (a token is produced on PCaseEnd),the various expression places, and variable places associated to that case areremoved. Finally, the case identifier is removed from the list of identifiers.

Controllers The controller not solely belonging to any of the aforementionedperspectives is the core controller . The core controller is in charge of the alloca-tion of originators to work items.

45

Page 46: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

()()

() ()

addOriginator(updateOriginator(org, time()), cLOriginator)cLOriginatororg

P_HIGHER

P_HIGHER

UnitT UnitT

COriginator CLOriginator

TUnavailable

TAvailable

@++getDelay(org)

POtherwiseEngaged POriginatorsOriginatorsOriginators

3`("Role1", (0, [0.20833333333333334, 0.08333333333333333, 0.2916666666666667, 0.25], 0.0), [("OrgName", "Role1"), ("Role", "Role1"), ("Group", "")]) ++ 3`("Role0", (0, [0.20833333333333334, 0.08333333333333333, 0.2916666666666667, 0.25], 0.0), [("OrgName", "Role0"), ("Role", "Role0"), ("Group", "")]) ++ 3`("Eric", (0, [0.20833333333333334, 0.08333333333333333, 0.2916666666666667, 0.25], 0.0), [("OrgName", "Eric"), ("Role", ""), ("Group", "")]) ++ 5`("Dennis", (0, [0.20833333333333334, 0.08333333333333333, 0.2916666666666667, 0.25], 0.0), [("OrgName", "Dennis"), ("Role", ""), ("Group", "")])

PNextUnavailPNextAvail

updateOriginator((#1(removeOriginator(cLOriginator))), time())

cLOriginator#2(removeOriginator(cLOriginator))

@++getDelay(#1(removeOriginator(cLOriginator)))

removableOriginator(cLOriginator)

addableOriginator([org])

3`()@0.20833333333333334 ++ 3`()@0.20833333333333334 ++ 3`()@0.20833333333333334 ++ 5`()@0.20833333333333334

Fig. 19: The work schedule for the different originators.

tokentoken

token

token

(getCaseId(token), 0)

(getCaseId(token), (nil), true)

(getCaseId(token), (0::0::nil), true)

(getCaseId(token), (0::0::0::nil), true)

P_HIGH

P_HIGH

P_HIGH

P_HIGH

P_HIGH

P_HIGH

@++duration

P_LOW CToken

CToken

1`[]

CLCId

CToken

CVariable

CExpr

CVariable

CVariable

CExpr

CExpr

TTokenGenerator

PExpr2d885f137-f3fc-443e-8011-73af31f68406d885f137-f3fc-443e-8011-73af31f68406

PToken

1`(1, 0.0, true, 0.0, (0.0, 0.0, 0.0, 0.0))

updTimestamp(nextCaseId(token), time())tokenTTokenDegeneratorEExpr2

PCaseEndCaseEndCaseEnd

PExpr1f8b07c1e-b8b9-4deb-a4d8-ae0fc83d2243f8b07c1e-b8b9-4deb-a4d8-ae0fc83d2243

Pv2v2v2

Pv1v1v1

TTokenDegeneratorEv2

TTokenDegeneratorEv1

TTokenDegeneratorEPNoExpressionNoExpressionNoExpression

Pv3v3v3

TTokenDegeneratorEv3

TTokenDegeneratorPgivenIdsgivenIdsgivenIds

PCaseStartCaseStartCaseStart

(getCaseId(token), 0)

(getCaseId(token), 0)token

token

(caseId, rv2)

TTokenDegeneratorEExpr1(caseId, rsExpr1, bExpr1)

token

token

token

token

token

token

token

updTimestamp(token, time() + duration)

input ();output (duration);action(0.000000011574074074074076 * 0.0 + 1.0 * 0.000000011574074074074076 * exponential(5.0));

removeCaseId(getCaseId(token), lIds)

lIds

getCaseId(token)::lIds

lIds

caseId = getCaseId(token)

caseId = getCaseId(token)

(caseId, rsExpr2, bExpr2)

caseId = getCaseId(token)

(caseId, rs, b)

caseId = getCaseId(token)

(caseId, rv1)

caseId = getCaseId(token)

caseId = getCaseId(token)

(caseId, rv3)

Fig. 20: The arrival controller responsible for the arrival process of cases.

46

Page 47: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Core Controller As mentioned, the core controller allocates work items to orig-inators. It operates on the list of work items, which are cases waiting to beprocessed by an activity, and on the list of currently available originators to theprocess, see Fig. 21. The allocation can be either push or pull allocation by tak-ing either the work item or originator point of view. For instance, if we take theoriginator point of view (pull), then the originator selects the work item mostdesired by her. When taking the work item point of view (push), we select theoriginator best fitting the work item.

Allocation of a work item to an originator, is a simple matching tuple, i.e.,we store the originator which is going to execute a certain work item.

Definition 51 (Matching). Let W be the universe of work items, let R be theuniverse of originators, then a matching is defined as: m ∈ W ×R.

The actual allocation takes the list of work items currently allocated, the listof originators available, and the list of work items and creates a list of matchings.

Definition 52 (Originator Allocation). LetW be the universe of work items,let R be the universe of originators, let M be the universe of matchings, thenthe matching function is defined as: W∗ ×R∗ ×M∗ →M∗

In order to determine the allocation possibility between an originator and awork item, we have a like factor.

Definition 53 (Like factor). Let W be the universe of work items, let R bethe universe of originators, then the like factor Lf :W ×R→ R.

The different allocation strategies are now defined as:

Definition 54 (matchingPush). Let W be a list of work items, let R be a listof originators, let M be a list of matchings, then matchingPush is defined as:

matchingPush(W,R,M) = matchingPush(W,R,M,R)

matchingPush([], [],M,R′) = M

matchingPush([], r :: R,M,R′) = M

matchingPush(w :: W, [],M,R′) = matchingPush(W,R′,M,R′)

matchingPush(w :: W, r :: R,M,R′) = (w, r) :: M if Lf (w, r) is maximal

matchingPush(w :: W, r :: R,M,R′) = matchingPush(w :: W,R,M,R′) if Lf (w, r) is not maximal

47

Page 48: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Definition 55 (matchingPull). Let W be a list of work items, let R be a listof originators, let M be a list of matchings, then matchingPull is defined as:

matchingPull(W,R,M) = matchingPull(W,R,M,W )

matchingPull([], [],M,W ′) = M

matchingPull([], r :: R,M,W ′) = matchingPull(W ′, R,M,W ′)

matchingPull(w :: W, [],M,W ′) = M

matchingPull(w :: W, r :: R,M,W ′) = (w, r) :: M if Lf (w, r) is maximal

matchingPull(w :: W, r :: R,M,W ′) = matchingPull(W, r :: R,M,W ′) if Lf (w, r) is not maximal

Dependent on whether push or pull allocation is desired, we first iterate overthe originators to find the best for a work item, or we first iterate over the workitems to find the best for the first originator. If a match is possible, all lists areupdated accordingly. That is, the work item and originator are removed from thelists of unallocated work items/originators, and the pair work item, originatorare added to a list of allocated work items/originators.

The maximal like factor is determined beforehand. This is computed fromeither the work item or originator point of view based on push or pull allocation.With push allocation, we take a work item and check for each originator whetherit is allocatable to this work item. In order to know wether an allocatable orig-inator was encountered, we store the max like factor found so far (variable d).After checking every originator for a particular work item two possible outcomesare possible; (1) the maximal like factor was 0, which means none of the origina-tor was allocatable, then we move to the next work item and do the above stepsagain. (2) the maximal like factor is larger than 0, which means there was anoriginator allocatable, and this value is returned. As one can see, the structureof going through the work items and originators is similar to the push allocation.

Definition 56 (Maximal like factor push). Let W be a list of work items,let R be a list of originators, then the maximal like factor for push allocation isdefine as:

maxLikeFactorPush(W,R) = maxLikeFactorPush(W,R,R, 0.0)

maxLikeFactorPush(w :: W, r :: R,R′, d) =

max(Lf (w, r),maxLikeFactorPush(w :: W,R,R′,max (Lf (w, r), d))

maxLikeFactorPush([], R,R′, d) = d

maxLikeFactorPush(w :: W, [], R′, d) =

maxLikeFactorPush(W,R′, R′, d) if d = 0.0

maxLikeFactorPush(w :: W, [], R′, d) = d if d > 0.0

For pull allocation, we have a similar computation for the maximal like factoras in the push allocation case. The main difference is in the order of traversingthe work items and originators.

48

Page 49: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Definition 57 (Maximal like factor push). Let W be a list of work items,let R be a list of originators, then the maximal like factor for push allocation isdefine as:

maxLikeFactorPull(W,R) = maxLikeFactorPull(W,R,W, 0.0)

maxLikeFactorPull(w :: W, r :: R,W ′, d) =

max(Lf (w, r),maxLikeFactorPull(W, r :: R,W ′,max (Lf (w, r), d)))

maxLikeFactorPull(W, [],W ′, d) = d

maxLikeFactorPull([], r :: R,W ′, d) =

maxLikeFactorPull(W ′, R,W ′, d) if d = 0.0

maxLikeFactorPull([], r :: R,W ′, d) = d if d > 0.0

The best is determined with the previously defined like factor. In our currentimplementation, we have a like factor of 1.0 if an originator may execute a workitem, and 0.0 otherwise. Using the aforementioned properties of an originator,we can take other aspects into account in determining the like factor withoutthe need to change any of the perspectives other than the functions for the corecontroller.

49

Page 50: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

matching(cWorkItems, cLOriginator, cMatching)

P_HIGH

1`[]

CMatching

CLOriginator

1`[]

CWorkItems

PWorkItemsWorkItemsWorkItems

POriginatorsOriginatorsOriginators

TMatchMaker PMatchesMatchingMatching

matchable(cWorkItems, cLOriginator)

cLOriginator

updateOriginatorsMatching(cLOriginator, matching(cWorkItems, cLOriginator, cMatching))

updateWorkItemsMatching(cWorkItems, matching(cWorkItems, cLOriginator, cMatching))

cWorkItems

cMatching

3`("Role1", (0, [0.20833333333333334, 0.08333333333333333, 0.2916666666666667, 0.25], 0.0), [("OrgName", "Role1"), ("Role", "Role1"), ("Group", "")]) ++ 3`("Role0", (0, [0.20833333333333334, 0.08333333333333333, 0.2916666666666667, 0.25], 0.0), [("OrgName", "Role0"), ("Role", "Role0"), ("Group", "")]) ++ 3`("Eric", (0, [0.20833333333333334, 0.08333333333333333, 0.2916666666666667, 0.25], 0.0), [("OrgName", "Eric"), ("Role", ""), ("Group", "")]) ++ 5`("Dennis", (0, [0.20833333333333334, 0.08333333333333333, 0.2916666666666667, 0.25], 0.0), [("OrgName", "Dennis"), ("Role", ""), ("Group", "")])

Fig. 21: The core controller responsible for the allocation of work items to origi-nators.

50

Page 51: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

7 Implementation

The implementation of Petra consists of the work done on the lefthand side ofthe bar with A and B in Fig. 22. On the righthand side of the bar, we havebrought the first tool into Petra namely CPN Tools (Fig. 23). Both the lefthandside and righthand side are treated in isolation in the remainder of this section.

7.1 The framework

Petra is implemented as a ProM 6 package7 called Petra. This means that ourimplementation can be used on user-created models and on mined models. Theinput to Petra is a Process Tree.

Within Petra, we iterate through the different models obtainable from theProcess Tree (this may be just a single one). First, we construct a new con-figuration and apply this on the configurable model and obtain M (Fig. 22).This model is offered on interface A to a tool, and, on interface B, we receivea model enriched with the properties obtainable from the used tool. In case ofCPN Tools, we obtain a model enriched with sojourn, processing, queue, andwait times. Finally, we add this model to the set of analysed models.

To guarantee the same configuration is not generated twice, we representa configuration as a sequence of bits. Basically, each configuration option isencoded as a single bit, i.e., selected or not selected. We now only need tostore a single bit sequence to know which configurations have been analysed andwhich have not been analysed. This in contrary to a naive implementation usinga recursive function to iterate through the different configurations. Furthermore,our approach allows for a distributed computation on ranges of bit sequences, andthe possibility to start the iteration from a given configuration (bit sequence).

As there is no control on the properties a particular perspective may contain,we have annotated every property to denote to which perspective(s) it belongs.This to prevent accidental modification due to reading a perspective not adher-ing to the subdivision of properties amongst perspectives. Apart from having anannotation, properties also have an identifier associated with them to differen-tiate similar properties with different semantics, e.g., costs can have a differentmeaning in different organisations, but both organisation would still like to callthem costs.

For allowing a user-friendly experience, and the possibility to modify/createproperties, every property registers a GUI with which the value of the propertycan be rendered and modified. Finally, to allow for storage of the process modelwith properties, every property has to implement read and write functionalityof the property with values. This read a write is based on XML, and each mayspecify its own subschedule as this is handled completely by the property itselfagain.

The interfaces and the tools are implemented as a single programming inter-face. Every tool needs to provide an implementation of the different functions

7 ProM can be downloaded from www.processmining.org

51

Page 52: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Fig. 22: Implementation of Petra

Fig. 23: Implementation of CPN Tools in Petra

required. The tool needs to implement a function for computing the dependentproperties. Furthermore, the tool should register which dependent properties itcan compute, and which (in)dependent properties it requires for doing so. Toallow for future extensions of the tool interface, we have included an abstracttool interface at the base of every tool. If the tool interface changes the abstracttool interface can accommodate for missing functionality of older tool implemen-tations.

7.2 CPN Tools

The implementation of bringing CPN Tools inside our framework entails threesteps: transforming a Process Tree to a CPN model, running the simulator onthe generated CPN model, and parsing the output of the simulator to enrich the

52

Page 53: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Process Tree. The transformation is discussed in Sect. 6. Here, we elaborate onrunning the simulator and parsing the output of the simulator.

Access/CPN, the simulator: We have made a transformation from a ProcessTree to a CPN model to be used in CPN Tools. In this CPN model, we measurethe sojourn time, i.e., the total time a case spent in a (sub)process, the queuetime, i.e., the time a work item waited on a resource, the wait time, i.e., the timea case spent waiting to be synchronised, and the processing time, i.e., the actualwork resources have performed on the activities. One of the advantages of CPNTools is the existence of Access/CPN [19]. Access/CPN provides an interface torun the simulator without any human involvement. This is an important featureas the amount of possible instantiations for a Process Tree can be exponentialin the number of configuration options.

Parsing the output: As mentioned, we measure the sojourn time, queue time,wait time, and processing time. These values are written in different files astuples of case identifier, node identifiers, and the actual value. When parsing theoutput, every node is enriched with the aggregations of different values measuredin the different replications run by the simulator.

Having presented all information about the framework, we now use Petra ina case study.

8 Case study

To demonstrate the use of Petra, we have taken the building permit process oftwo Dutch municipalities participating in the CoSeLoG project. Instead of sim-ulating the entire building permit process, we focus in particular on the Beroepen Bezwaar (objection and appeal) subprocess. The Beroep en Bezwaar subpro-cess is to allow people to object and appeal to the disposal of a building permit.Conferment means that a building permit is granted to the requester. This sub-process starts after the municipality has published the disposal of a buildingpermit. The disposal of a building permit means that the municipality agreeswith the building permit but it is not yet definitive, i.e., based on objections andappeals the municipality may decide to disagree with the building permit.

The objective for carrying out this case study is twofold: (1) To demonstratethat the results obtained by Petra closely resemble reality, and (2) to show thatPetra can indeed automatically analyse a family of process models. From themunicipality event logs, we obtained the different perspectives for each of themunicipalities. These perspectives have been combined into a Process Tree. Inorder to verify that the perspectives were obtained correctly, we first try toreproduce the behaviour recorded in the original logs from the municipalities.This way we can verify that the perspectives are encoded correctly.

8.1 Verifying perspectives

The characteristics of the logs are listed in Table 1. Furthermore, the logs span atime period of roughly 2 years. The logs consist of create events and of completed

53

Page 54: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Characteristics Municipality A Municipality B

Number of cases 302 481Number of event 586 845Number of event classes 15 23Number of originators 5 4

Table 1: The characteristics of the logs used in the case study

events, and every event has an executor associated with it. The occurrences of thedifferent event classes varies significantly. The least occurring event class occursjust once, while the most occurring event class occurs 262 times for Municipal-ity A and 451 times for Municipality B. We only estimate processing times ofactivities with at least 3 observations in the log, this to have somewhat reliablevalues for the sojourn time of events whilst not disposing too many activities.

From the event logs, we have constructed a Process Tree only consisting ofthe control-flow perspective. In order to encode the probabilities for choosing aparticular branch in the Process Tree, we have introduced variables which witha certain probability are “0” or “1” denoting true and false respectively. Sinceour choice constructs are binary, true indicates the first branch is executed andfalse indicates the second branch is executed.

Apart from the flow of the different cases, we also need to estimate theresource behaviour. First, we estimated the work schedule of the resources. Thework schedule is estimated based on observations from the log. We have takenthe timestamps of all events and we made the following assumptions:

– People work in shifts– There are two shifts: A morning shift and an afternoon shift– As there is no clear signal of breaks, we assume the shifts are consecutive– If we have at least one measurement in a shift, we assume that this person

is available for the process during that whole shift– There is a weekly iteration, e.g., if someone worked on a Monday, we assume

she can work every Monday

Based on these observations, we obtain the schedule as shown in Fig. 24. Thetop half of the schedule is for Municipality A, the bottom half is for MunicipalityB.

For the sojourn times of the activities, we have taken three separate ap-proaches and compared the results in order to have reliable estimations. Thefirst approach is based on comparing completion times between non-parallelconsecutive events. The second approach is based on aligning the log to the ear-lier obtained control-flow perspective using the work in [37]. Finally, the thirdapproach is based on observing the creation time of a work item in comparisonto the completion time of that work item.

The first and second approach, yield results similar to each other, i.e., thereis no significant difference. The third approach yielded negative values indicatingthese values are less reliable. Apart from taking the values from the log, we also

54

Page 55: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Monday Tuesday Wednesday Thursday Friday

560532

560521

4634935

560519

560458

560429

1254625

560602

560602

A

B

Fig. 24: The work schedule used, the top work schedule is for Municipality A,the bottom is for Municipality B.

consulted legislation related to the process at hand. This legislation specifiedlegal time intervals, e.g., after publishing the disposal of a building permit, thereis a 6 weeks time interval in which people may object to the conferment. Thesetime intervals are less visible in the log as there is a large variation, e.g., onaverage 6.6 weeks, with a standard deviation of 2 weeks. When a person objectsto a conferment, there is a legal limit within which the municipality has torespond. However, the law makes an exception for complicated cases. As theinformation was not present in the log about which cases have been classified ascomplicated, we can only try to make an educated guess on the sojourn time ofsuch an activity.

To take the legal constraints into account, we have explicitly added activitiesto model these time intervals. Where the law is unclear, we estimated the timeinterval in a number of weeks, as all the times observed are specified in termsof weeks. For the activities in which the law allows an exception with respect tothe legal time interval, we have made an educated guess based on the activitydescription. For instance, the activity “Beroep ingesteld” (Appeal rated) is as-sumed to take on average 30 minutes as one has to read the appeal and make ajudgement based on that.

Next to the legal time intervals, we also have taken into account the variabilityof the working speed of the different resources, i.e., the sojourn time of differentresources executing the same activity may vary. However, for most activitiesthere were no significant difference in the sojourn times. Therefore, we estimatethe sojourn time of these activities on the complete set of values. Furthermore,we have abstracted from outliers.

Since the log consists of event codes, we have included Table 2. This tableconverts the event codes to activity names, which makes it easier to understandthe amount of work required for each step. The estimated values for the differentsojourn times are listed in Table 3.

55

Page 56: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Event code Event Name

540 Objection to disposal submitted550 Treat objection550 1560 Objection wrapped up590 Received request for preliminary verdict

600 Treat preliminary verdict610 Preliminary verdict wrapped up630 Appeal set640 Received request for preliminary verdict670 Treat appeal680 Appeal wrapped up

700730 Contested disposal affected740 Verdict given by court760765766

770 Establish decision phase original decree775780 1 Create decree for the purpose of the disposal of the court780 2 Connect disposal court780 3 Register date of disposal of court790 Establish decision phase of the verdict of court

Table 2: The event codes and the description (if given).

Next to the work schedule and timing information, we also need to knowwhich originators are allowed to execute which activity. This information is sum-marised in Table 7. The left side of the table is for Municipality A, and the rightside is for Municipality B. Using this information, we were able to construct thesimulation models for both Municipality A and Municipality B. We used thefollowing simulation property in the experiment perspective:

– The queue principle is FiFo.– We use push allocation– We have a warmup period of 150,000 steps in the simulator– The number of replications is 30– The replication length is 150,000 steps in the simulator

The results per replication are listed in Table 8 and Table 9. The averagesojourn time for Municipality A is 9.5 weeks (1588.49 hours) with a standarddeviation of 1 day (23.66 hours). For Municipality B, the average sojourn timeis 5 weeks (828.34 hours) with a standard deviation of 14.25 hours.

Since the log can be seen as a single long replication, we used batch meansto be able to compute replications and to be able to compare the log to thesimulation results. See [38] for an overview of the batch means method. Since our

56

Page 57: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Event # Time out Avg. Proc.code (weeks) Time (min.)

A B A B A B

540 262 451 10 1 + 10beta(5.51, 7.88)

norm(10, 3) norm(10, 3)

550 3 8 0 4 norm(1, 0.3) norm(30, 9)

550 1 1560 2 6 0 0.23,

norm(0.08, 0.00)

590 2 8 5 norm(10, 3)

600 3 4 norm(30, 9)

610 3 0 0.1, 0.03630 29 31 6 5 norm(30, 9) norm(30, 9)

640 3 3 norm(10, 3)

670 1 2680 1 2

700 2730 17 26 0.57 0 norm(10, 3) 0740 1755 17 4 0 822.12, 0.52,

norm(0.33, 0.05),norm(0.45, 0.02)

norm(0.125, 0.00),0.07

760 1765 62 110 0 norm(0.00, 0.00) norm(0.16, 0.00)

766 3 0 0.22

770 187 170 10 4 norm(10, 3) norm(0.22, 0.03)

775 2 2780 1 1780 2 1780 3 1790 1

Table 3: The activities with the time outs and the processing times for Munici-pality A and Municipality B.

dataset is small, we cannot have too many batches, i.e., then there are batcheswhich do not contain any observations, but if we have too few batches thenthe 95% confidence interval become too large. Furthermore, the batches cannotbecome too small, because then the batches are correlated. For Municipality A,we have 16 batches and for Municipality B we have 25 batches. Fig. 25 shows theresults, where Municipality A is shown left and Municipality B is shown rightand times on the y-axis are in hours.

As one can clearly see, there is overlap in the box plots of the logs and thesimulations. Hence, we cannot conclude that our simulation model and realitydiffer in an unacceptable manner.

57

Page 58: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Fig. 25: The box plots of the logs and the results of simulating the individualCPN models, left is Municipality A and right is Municipality B. The y-axis is inhours.

8.2 Analysing a family of process models

At this point, we have shown that it is possible to closely mimic the execution ofbusiness processes with Petra. We now combine the models from MunicipalityA and Municipality B into a single Process Tree. This Process Tree is the unionof Municipality A and Municipality B but allows for more than the behaviourdisplayed by Municipality A and Municipality B. Now let us suppose that wewant to use this combined Process Tree to seek for ways to improve the sojourntime for Municipality A by potentially changing its process, borrowing behaviourfrom Municipality B. Since not all combinations make sense, e.g., MunicipalityA will not hire the employees of Municipality B, we limit the configurability ofthe Process Tree. This means that we take the characteristics of the employees ofMunicipality B into account, e.g., their work speed, but do not put the employeesof Municipality B into the Process Tree.

For the case study, we mainly focus on the activities 540 Objection to disposalsubmitted , 630 Appeal set , and 770 Establish decision phase original decree sincethese activities embody part of the significant difference between MunicipalityA and Municipality B. Furthermore, since the building permit process is heavilysubjected to legal requirements, there is not so much room to change what isdone but there are opportunities to change how things are done.

With the focus on the activities 540 , 630 , and 770 , we have a solutionspace of 8 models (all combination for performing an activity either accordingto Municipality A or Municipality B). After simulating all of these models, weobtain the results (sojourn times of the entire process in hours) as in Table 4(the full set of results is in Table 10).

As one can see, working on the activities 540 and 770 in the same way asMunicipality B would indeed significantly decrease the sojourn time for Munic-ipality A. Furthermore, one can clearly see that changing 770 and 630 without

58

Page 59: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Table 4: The different work speeds for the activities and the effects on the sim-ulation (note that 2 is the original Municipality A Process Tree).

1 2 3 4 5 6 7 8

540 A A A B A B B B630 A A B A B A B B770 B A A B B A B A

Avg 1488.78 1572.48 1570.91 806.60 1496.11 1217.32 803.67 1224.50Std. dev. 29.55 33.82 18.58 22.93 24.81 34.80 20.24 33.10

changing 540 will not yield any significant improvements. Finally, 630 does nothave any significant impact on the performance of the process.

By enabling the highly realistic simulation of actual business processes andsupporting the search for altering a process in search for performance improve-ment, we have shown the feasibility and potential of Petra.

9 Conclusion and future work

We have presented Petra, a generic and extensible toolset for the analysis of afamily of process models. The genericity is achieved by not limiting our set ofperformance indicators or the set of properties a process model may contain.The extensibility is achieved by allowing any analysis tool to be used. Finally,the implementation of our framework has been used to conduct a case study thatinvolves the data from two municipalities cooperating in the CoSeLoG project.In particular, we have demonstrated how potential improvements of an existingprocess can be established.

Our framework can be extended in a range of directions to make it evenbetter equipped for the task at hand, but also for future tasks. In the remainderof this section, we touch on some of these.

Currently, the simulation of each of the process models is a time-consumingtask. In the experiments, simulating a single model took around 3 days on asingle core of 2.80 GHz. Since simulation takes such a long time, one would like tominimise the amount of models to be simulated. In our current implementation,we naively iterate through all possible instantiations of the configurable processmodel. This means that equivalent models, obtained by different configurations,are analysed multiple times. Defining equivalence classes on configurations andtaking these into account in the iteration through the models could alreadyresult in a significant speed up. Another approach to minimise the number ofto-be-analysed models, is to gather knowledge beforehand on the performancemeasures a user wants to optimise. In this way, we would lose some of thereusability of the results but it would be possible to obtain quick estimates on therelevant measures to decide if simulating the process model will be worthwhile.

Related to quick estimations of performance measures, we also want to caterfor different analysis tools in our framework. This would make it possible touse work from simulation and queueing theory to obtain timing information.

59

Page 60: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Enabling us to chain these tools starting from fast and imprecise to slow andprecise. If different tools for the same performance measure are used, one mightwant to maintain the different measures computed by the different tools. Cur-rently the assumption is that the different tools give the correct value. Hence,there is no need to doubt the values returned by the last tool used for a property.However, it might be beneficial to remember a history of computed values (fromrough estimations, to exact value). This to be able to compare rough estimationsof one model with another, but also to be able to show the discrepancies betweenresults obtained from different analysis tools.

In our current implementation, we have limited ourselves to the time perspec-tive. The devil’s quadrangle [20], contains 4 different directions, i.e., time, cost,flexibility, and quality (internal and external). We want to extend our frameworkto also incorporate the other dimensions. Furthermore, to be able to computethese new dimensions, we want to included a larger variety of tools, and be ableto automatically chain tools to obtain the desired dimensions.

Currently, the user obtains a (large) set of analysed models. We want tosupport the user in navigating through this set to be able to find her desiredmodel quicker. This navigation could happen with the use of a Pareto front.A Pareto front is basically a method of finding the (set of) optimal solution(s)in n-dimensional space [39]. In this n-dimensional space, every property is adimension. By offering an interface for the user to specify the desired solutiondirection, we can support the user maximally in obtainment of the best processmodels from which the user can select the most desired model based on herexpert knowledge.

Finally, we want to support the user in migrating from a given configurableprocess model, a configuration and a set of cases to the new improved processmodel found by Petra. By supporting this, we would be able to support processeswhere cases have a long lifetime as well as supporting escalations of the processmodel [40], i.e., changing the behaviour of the process model at run-time. Relatedto the escalations, we would also like to be able to encode the current state ofthe workflow management system to be able to predict the near future and theshort-term effects of different configurations.

A Conversion to CPN Tools

60

Page 61: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

61

Page 62: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Xor

X_86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229",

get

Wai

tTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

) el

se n

il

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Xor

X_86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229",

get

Queu

eTim

eSum

((to

ken0::

toke

n1:

:tok

en2::

nil)

, get

Queu

eTim

e(to

ken))

) el

se n

il

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Xor

X_86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229",

get

Proc

essi

ngTi

meS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

) el

se n

il

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Xor

X_86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229",

tim

e()-

get

Tim

esta

mp(t

oken

)) e

lse

nil

toke

n2 to

ken1

toke

n0

toke

n

toke

n

toke

n

updTi

mes

tam

pSta

tus(

toke

n,t

ime(

),not

(get

Sta

tus(

toke

n1))

)

toke

n1

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

updTi

mes

tam

pSta

tus(

toke

n,t

ime(

),b a

ndal

so n

ot(g

etSta

tus(

toke

n1))

)

toke

n1

updSta

tus(

toke

n1,

b o

rels

e get

Sta

tus(

toke

n1))

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

updTi

mes

tam

pSta

tus(

toke

n,

tim

e(),

b)

updSta

tus(

toke

n,

b)

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

toke

n

toke

n

toke

n

toke

n

setS

tats

Tim

e(updTi

mes

tam

pSta

tus(

toke

n,

tim

e(),

get

Sta

tus(

toke

n0)o

rels

e get

Sta

tus(

toke

n1)o

rels

e get

Sta

tus(

toke

n2))

, get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

, get

Proc

essi

ngTi

meS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

, get

Queu

eTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Queu

eTim

e(to

ken))

, get

Wai

tTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

+ g

etW

aitT

imeM

ax((

toke

n0::

toke

n1::

toke

n2::

nil)

, tim

e()

- get

Tim

esta

mp(t

oken

), g

etSoj

ourn

Tim

e(to

ken))

)

toke

n

toke

n

toke

n

toke

n

P_H

IGH

P_H

IGH

P_H

IGH

Xor

XChild

2Sch

edule

d

case

Id =

get

Cas

eId(t

oken

) an

dal

so m

atch

(tok

en::

toke

n1::

nil)

Xor

XChild

0Sch

edule

d

case

Id =

get

Cas

eId(t

oken

)

mat

ch(t

oken

::to

ken0::

toke

n1::

toke

n2::

nil)

get

Sta

tus(

toke

n)

Xor

XSch

edule

get

Sta

tus(

toke

n)not

(get

Sta

tus(

toke

n))

P_H

IGH

ER

PCSch

edule

In2

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sch

edule

InCTo

ken

CTo

ken

CTo

ken

PBSch

edule

In1

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

ched

ule

InCTo

ken

PBSch

edule

Out1

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

ched

ule

Out

CTo

ken

Xor

XChild

0Sel

ecte

d

CTo

ken

CTo

ken

PASch

edule

Out0

39967614-2

525-4

895-a

f41-5

940df5

87815Sch

edule

Out

CTo

ken

PExp

r2ad

4e0

3d0-8

180-4

ae3-b

9f9

-35ab

96c9

fbd8

CExp

r

NoE

xpre

ssio

nN

oExp

ress

ion

CExp

r

PExp

r16916a8

7d-d

9ba-

4158-a

2d0-1

f4e6

5c2

c9b5

CExp

r

CTo

ken

PXor

XFi

nal

ise

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Fi

nal

ise

CTo

ken

PXor

XIn

itia

lised

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229In

itia

lised

CTo

ken

CTo

ken

Xor

XBusy CTo

ken

PCCom

ple

ted2

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Com

ple

ted

CTo

ken

CTo

ken

PCSta

rted

26730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sta

rted

CTo

ken

PCSch

edule

d2

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sch

edule

dCTo

ken

PBCom

ple

ted1

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfC

omple

ted

CTo

ken

CTo

ken

PBSta

rted

18b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

tart

edCTo

ken

PBSch

edule

d1

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

ched

ule

dCTo

ken

PACom

ple

ted0

39967614-2

525-4

895-a

f41-5

940df5

87815Com

ple

ted

CTo

ken

CTo

ken

PASta

rted

039967614-2

525-4

895-a

f41-5

940df5

87815Sta

rted

CTo

ken

CTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

CTo

ken

CTo

ken

CTo

ken

CTo

ken

Sta

tsQ

ueu

eTim

e

Sta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

39967614-2

525-4

895-a

f41-5

940df5

87815Sta

rted

39967614-2

525-4

895-a

f41-5

940df5

87815Com

ple

ted

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

ched

ule

d

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

tart

ed

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfC

omple

ted

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sch

edule

d

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sta

rted

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Com

ple

ted

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229In

itia

lised

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Fi

nal

ise

6916a8

7d-d

9ba-

4158-a

2d0-1

f4e6

5c2

c9b5

NoE

xpre

ssio

n

ad4e0

3d0-8

180-4

ae3-b

9f9

-35ab

96c9

fbd8

39967614-2

525-4

895-a

f41-5

940df5

87815Sch

edule

Out

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

ched

ule

Out

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfS

ched

ule

In

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sch

edule

In

PXor

Withdra

wn

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229W

ithdra

wn

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229W

ithdra

wn

PASch

edule

In0

39967614-2

525-4

895-a

f41-5

940df5

87815Sch

edule

In39967614-2

525-4

895-a

f41-5

940df5

87815Sch

edule

In

Xor

XCom

ple

te

PXor

Com

ple

ted

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Com

ple

ted

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Com

ple

ted

PXor

Sch

edule

d86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Sch

edule

d86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Sch

edule

d

Xor

XIn

it

Xor

XChild

1Sch

edule

d

PCSch

edule

Out2

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sch

edule

Out

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5Sch

edule

Out

PXor

Sta

rted

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Sta

rted

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Sta

rted

Xor

XFi

nal

PBW

ithdra

wn1

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfW

ithdra

wn

8b42ec

32-7

5c4

-4115-a

419-a

a97052193bfW

ithdra

wn

Xor

XSki

p

Xor

XChild

2Sta

rted

Xor

XChild

1Sta

rted

Xor

XChild

0Sta

rted

toke

nto

ken

toke

n

toke

n

Xor

XW

ithdra

wto

ken

toke

n

toke

nupdSta

tus(

toke

n,

fals

e)

Xor

XN

oWithdra

w

PCW

ithdra

wn2

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5W

ithdra

wn

6730652b-a

ee4-4

590-9

36a-

8985ac

275f9

5W

ithdra

wn PA

Withdra

wn0

39967614-2

525-4

895-a

f41-5

940df5

87815W

ithdra

wn

39967614-2

525-4

895-a

f41-5

940df5

87815W

ithdra

wn

toke

nto

ken

toke

nP_

HIG

H

Xor

XChild

1Sel

ecte

d

case

Id =

get

Cas

eId(t

oken

) an

dal

so g

etCas

eId(t

oken

) =

get

Cas

eId(t

oken

1)

PXor

XIn

itia

lise

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229In

itia

lise

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229In

itia

lise

PASch

edule

d0

39967614-2

525-4

895-a

f41-5

940df5

87815Sch

edule

d39967614-2

525-4

895-a

f41-5

940df5

87815Sch

edule

d

PXor

XFi

nal

ised

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Fi

nal

ised

86f5

d72f-

14e6

-47ab

-a824-2

9f3

cb85b229Fi

nal

ised

Fig. 26: The interface a node (xor in this case) has towards its parent.

62

Page 63: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

toke

n

if g

etSta

tus(

toke

n3)t

hen

1`(g

etCas

eId(t

oken

3),

"Roo

t",

get

Proc

essi

ngTi

me(

toke

n3))

els

e nil

toke

n3

toke

n3

toke

nto

ken

toke

n

toke

n

P_H

IGH

mat

ch(t

oken

3::

toke

n::

nil)

CTo

ken

CTo

ken

CTo

ken

CTo

ken

CTo

ken

CTo

ken

CTo

ken

CSta

t

CSta

t

CSta

t

CSta

t

PNew

Toke

nCas

eSta

rtCas

eSta

rt

Roo

tSch

edule

Child

Sch

edule

ddfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bSch

edule

ddfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bSch

edule

d

Roo

tBusy

Roo

tCom

ple

te

Child

Com

ple

ted

dfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bCom

ple

ted

dfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bCom

ple

ted

Child

Withdra

wn

dfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bW

ithdra

wn

dfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bW

ithdra

wn

Child

Sta

rted

dfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bSta

rted

dfe

0d4a3

-485c-

4484-b

362-3

71693bdf0

3bSta

rted

Roo

tChild

Sta

rted

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

e

POld

Toke

nCas

eEnd

Cas

eEnd

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

if g

etSta

tus(

toke

n3)t

hen

1`(g

etCas

eId(t

oken

3),

"Roo

t",

get

Soj

ourn

Tim

e(to

ken3))

els

e nil

if g

etSta

tus(

toke

n3)t

hen

1`(g

etCas

eId(t

oken

3),

"Roo

t",

get

Wai

tTim

e(to

ken3))

els

e nil

if g

etSta

tus(

toke

n3)t

hen

1`(g

etCas

eId(t

oken

3),

"Roo

t",

get

Queu

eTim

e(to

ken3))

els

e nil

Fig. 27: The root net connecting the arrival of cases with the control flow.

63

Page 64: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

setS

ojou

rnTi

me(

toke

n,

get

Soj

ourn

Tim

e(to

ken)

+ t

ime(

) -

get

Tim

esta

mp(t

oken

))

toke

n

toke

n

toke

n(cas

eId,

rv2)

(cas

eId,

rv2 +

1) to

ken

toke

n(c

aseI

d,

rv1)

(cas

eId,

rv1 +

1)

toke

n

toke

n

(cas

eId,

rv3)

(cas

eId,

rv3)

toke

n

(get

Cas

eId(t

oken

), "

A_b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

", 0

.0)

(get

Cas

eId(t

oken

), "

A_b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

", t

ime(

)-get

Tim

esta

mp(t

oken

))

(get

Cas

eId(t

oken

), "

A_b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

", g

etD

ura

tion

(tok

en))

(get

Cas

eId(t

oken

), "

A_b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

", t

ime(

)-get

Tim

esta

mp(t

oken

))

updTi

mes

tam

p(t

oken

, tim

e())

toke

n

toke

nupdSta

tus(

toke

n,

fals

e)

toke

nto

ken

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

setP

roce

ssin

gTi

me(

toke

n,

get

Proc

essi

ngTi

me(

toke

n)

+ g

etD

ura

tion

(tok

en))

toke

n

setQ

ueu

eTim

e(to

ken,

get

Queu

eTim

e(to

ken)

+ t

ime(

)-get

Tim

esta

mp(t

oken

))

Em

pty

Updat

eVar

sPla

ce

Updat

eWrite

v2

case

Id =

get

Cas

eId(t

oken

)

P_H

IGH

ER

Updat

eWrite

v1

case

Id =

get

Cas

eId(t

oken

)

P_H

IGH

ER

Updat

eRea

dv3

case

Id =

get

Cas

eId(t

oken

)

P_H

IGH

ER

T_A_Fi

nal

T_A_In

it

get

Sta

tus(

toke

n)

T_A_Ta

skM

Withdra

w

P_H

IGH

ER

T_A_Ta

skM

NoW

ithdra

w

P_H

IGH

T_A_Ta

skM

Ski

p

not

(get

Sta

tus(

toke

n))

T_A_Ta

skM

Com

ple

teT_

A_Ta

skM

@+

+get

Dura

tion

(tok

en)

T_A_Ta

skM

Sta

rt

get

Sta

tus(

toke

n)

Aft

erU

pdat

ingv2

CTo

ken

Aft

erU

pdat

ingv1

CTo

ken

Aft

erU

pdat

ingv3

CTo

ken

Updat

eVar

s

CTo

ken

Pv3

v3CVar

iable

Pv2

v2CVar

iable

Pv1

v1CVar

iable

PT_A_Fi

nal

ised

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ised

CTo

ken

PT_A_Fi

nal

ise

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ise

CTo

ken

PT_A_In

itia

lised

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lised

CTo

ken

PT_A_In

itia

lise

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lise

CTo

ken

Task

MD

one

CTo

ken

Task

MBusy

CTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

PACom

ple

ted

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Com

ple

ted

CTo

ken

PAW

ithdra

wn

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Withdra

wn

CTo

ken

PASta

rted

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Sta

rted

CTo

ken

PASch

edule

db4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Sch

edule

dCTo

ken

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Sch

edule

db4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Sta

rted

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Withdra

wn

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Com

ple

ted

Sta

tsQ

ueu

eTim

eSta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lise

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lised

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ise

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ised

v1

v2

v3

Fig. 28: Manual task encoding.

64

Page 65: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

toke

nto

ken

updD

ura

tion

(#1 c

Wor

kIte

m,

det

erm

ineD

ura

tion

(cW

orkI

tem

, #

2 (

get

Mat

chin

g(c

Wor

kIte

m,

cMat

chin

g))

, cW

orkI

tem

s))

toke

n

inM

atch

ing(c

Wor

kIte

m,

cMat

chin

g)

CO

rigin

ator

CId

CW

orkI

tem

CLO

rigin

ator

1`[]

CM

atch

ing

1`[]

CW

orkI

tem

s

CTo

ken

CTo

ken

CTo

ken

CTo

ken

PAin

itia

lise-

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lise

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lise

Porg

TFin

alis

eInitia

lisat

ion

PAin

itia

lised

-b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lised

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Initia

lised

PWor

kIte

ms

Wor

kIte

ms

Wor

kIte

ms

PAfinal

ise-

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ise

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ise

PAfinal

ised

-b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ised

b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

Final

ised

4`("

Rol

e1",

(0,

[0.2

0833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "R

ole1

"),

("Rol

e",

"Rol

e1")

, ("

Gro

up",

"")

]) +

+

3`("

Eric"

, (0

, [0

.20833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "E

ric"

), (

"Rol

e",

""),

("G

roup",

"")

]) +

+

4`("

Rol

e0",

(0,

[0.2

0833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "R

ole0

"),

("Rol

e",

"Rol

e0")

, ("

Gro

up",

"")

]) +

+

5`("

Den

nis

", (

0,

[0.2

0833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "D

ennis

"),

("Rol

e",

""),

("G

roup",

"")

])

addO

rigin

ator

(org

, cL

Origin

ator

)cL

Origin

ator

TAfinal

-b4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

(cas

eId,

org)

case

Id =

get

Cas

eId(t

oken

)

TAin

it-b

4b803d4-1

217-4

61b-8

f4f-

a1ab

af6117c4

PTok

enPl

ace

(tok

en,

[("A

ctN

ame"

, "A

")])

cWor

kIte

m

addW

orkI

tem

((to

ken,

[("A

ctN

ame"

, "A

")])

, cW

orkI

tem

s)

cWor

kIte

ms

cWor

kIte

ms

cWor

kIte

ms

rem

oveM

atch

ing(c

Wor

kIte

m,

cMat

chin

g)

cMat

chin

g

PMat

ches

Mat

chin

gM

atch

ing

POrigin

ator

sO

rigin

ator

sO

rigin

ator

s

(get

Cas

eId(#

1 c

Wor

kIte

m),

#2 (

get

Mat

chin

g(c

Wor

kIte

m,

cMat

chin

g))

)

Fig. 29: Task controller encoding.

65

Page 66: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Seq

S_f4

4d78c1

-ad27-4

2d6-8

656-3

b6216524dd5",

get

Wai

tTim

e(to

ken2)

- get

Wai

tTim

e(to

ken))

els

e nil

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Seq

S_f4

4d78c1

-ad27-4

2d6-8

656-3

b6216524dd5",

get

Queu

eTim

e(to

ken2)

- get

Queu

eTim

e(to

ken))

els

e nil

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Seq

S_f4

4d78c1

-ad27-4

2d6-8

656-3

b6216524dd5",

get

Proc

essi

ngTi

me(

toke

n2)

- get

Proc

essi

ngTi

me(

toke

n))

els

e nil

toke

n2

updTi

mes

tam

p(t

oken

1,

tim

e())

toke

n1

toke

n1

toke

n1

updTi

mes

tam

p(t

oken

0,

tim

e())

toke

n0

toke

n0

toke

n0

toke

n

toke

nto

ken

toke

n

toke

n

updTi

mes

tam

p(t

oken

, tim

e())

toke

n

toke

n

toke

nto

ken

toke

n2

toke

n2

setS

tats

Tim

e(updTi

mes

tam

p(t

oken

2,

tim

e())

, get

Soj

ourn

Tim

eMax

((to

ken2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

+ g

etSoj

ourn

Tim

e(to

ken),

get

Proc

essi

ngTi

meS

um

((to

ken2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

+ g

etPr

oces

singTi

me(

toke

n),

get

Queu

eTim

eSum

((to

ken2::

nil)

, get

Queu

eTim

e(to

ken))

+ g

etQ

ueu

eTim

e(to

ken),

get

Wai

tTim

eSum

((to

ken2::

nil)

, get

Wai

tTim

e(to

ken))

+ g

etW

aitT

ime(

toke

n))

toke

nupdSta

tus(

toke

n,

fals

e)

toke

n

toke

n

toke

n

toke

n

toke

n

toke

nto

ken

Con

trol

Seq

SSch

edule

Child

2

Seq

SSch

edule

Child

2

Con

trol

Seq

SSch

edule

Child

1

Seq

SSch

edule

Child

1

Seq

SChild

2Sta

rted

P_H

IGH

Seq

SChild

1Sta

rted

P_H

IGH

Seq

SChild

0Sta

rted

P_H

IGH

Seq

SSch

edule

Child

0

Seq

SN

oWithdra

w

P_H

IGH

Seq

SCom

ple

te

mat

ch(t

oken

2::

toke

n::

nil)

Seq

SFi

nal

Seq

SIn

it

get

Sta

tus(

toke

n)

Seq

SSch

edule

get

Sta

tus(

toke

n)

Seq

SSki

p

not

(get

Sta

tus(

toke

n))

Seq

SW

ithdra

w

P_H

IGH

ER

PCSch

edule

In2

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sch

edule

InCTo

ken

PCSch

edule

Out2

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sch

edule

Out

CTo

ken

PBSch

edule

In1

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sch

edule

InCTo

ken

PBSch

edule

Out1

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sch

edule

Out

CTo

ken

PASch

edule

In0

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sch

edule

InCTo

ken

PASch

edule

Out0

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sch

edule

Out

CTo

ken

PSeq

SFi

nal

ised

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Fi

nal

ised

CTo

ken

PSeq

SFi

nal

ise

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Fi

nal

ise

CTo

ken

PSeq

SIn

itia

lised

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5In

itia

lised

CTo

ken

PSeq

SIn

itia

lise

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5In

itia

lise

CTo

ken

Seq

SBusy CTo

ken

PCCom

ple

ted2

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Com

ple

ted

CTo

ken

PCW

ithdra

wn2

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96W

ithdra

wn

CTo

ken

PCSta

rted

2b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sta

rted

CTo

ken

PCSch

edule

d2

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sch

edule

dCTo

ken

PBCom

ple

ted1

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Com

ple

ted

CTo

ken

PBW

ithdra

wn1

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22W

ithdra

wn

CTo

ken

PBSta

rted

1a3

359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sta

rted

CTo

ken

PBSch

edule

d1

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sch

edule

dCTo

ken

PACom

ple

ted0

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Com

ple

ted

CTo

ken

PAW

ithdra

wn0

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878W

ithdra

wn

CTo

ken

PASta

rted

0aa

a9666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sta

rted

CTo

ken

PASch

edule

d0

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sch

edule

dCTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

PSeq

Com

ple

ted

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Com

ple

ted

CTo

ken

PSeq

Withdra

wn

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5W

ithdra

wn

CTo

ken

PSeq

Sta

rted

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Sta

rted

CTo

ken

PSeq

Sch

edule

df4

4d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Sch

edule

dCTo

ken

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Sch

edule

df4

4d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Sta

rted

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5W

ithdra

wn

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Com

ple

ted

Sta

tsQ

ueu

eTim

e

Sta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sch

edule

d

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sta

rted

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878W

ithdra

wn

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Com

ple

ted

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sch

edule

d

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sta

rted

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22W

ithdra

wn

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Com

ple

ted

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sch

edule

d

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sta

rted

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96W

ithdra

wn

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Com

ple

ted

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5In

itia

lise

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5In

itia

lised

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Fi

nal

ise

f44d78c1

-ad27-4

2d6-8

656-3

b6216524dd5Fi

nal

ised

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sch

edule

Out

aaa9

666b-6

ed6-4

5f7

-98ff

-5f3

c920cb

878Sch

edule

In

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sch

edule

Out

a3359777-0

f6c-

4a9

b-9

233-3

a43ec

0cd

f22Sch

edule

In

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sch

edule

Out

b32f5

fa3-c

af3-4

efb-a

3a0

-edb36309c0

96Sch

edule

In

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Seq

S_f4

4d78c1

-ad27-4

2d6-8

656-3

b6216524dd5",

get

Soj

ourn

Tim

e(to

ken2)

- get

Soj

ourn

Tim

e(to

ken))

els

e nil

Fig. 30: seq operator encoding.

66

Page 67: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

if g

etSta

tus(

toke

n0)

andal

so g

etSta

tus(

toke

n1)

andal

so g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

AndA_e1

79ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8",

get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

-

get

Soj

ourn

Tim

eMin

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

+ g

etW

aitT

imeS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

) el

se n

il

if g

etSta

tus(

toke

n0)

andal

so g

etSta

tus(

toke

n1)

andal

so g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

AndA_e1

79ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8",

get

Queu

eTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Queu

eTim

e(to

ken))

) el

se n

il

if g

etSta

tus(

toke

n0)

andal

so g

etSta

tus(

toke

n1)

andal

so g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

AndA_e1

79ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8",

get

Proc

essi

ngTi

meS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

) el

se n

il

if g

etSta

tus(

toke

n0)

andal

so g

etSta

tus(

toke

n1)

andal

so g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

AndA_e1

79ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8",

get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

) el

se n

il

toke

n2

toke

n1

toke

n0

toke

nto

ken

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

updTi

mes

tam

p(t

oken

, tim

e())

toke

n

toke

n

updTi

mes

tam

p(t

oken

, tim

e())

toke

n

toke

n

updTi

mes

tam

p(t

oken

, tim

e())

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

setS

tats

Tim

e(updTi

mes

tam

pSta

tus(

toke

n,

tim

e(),

get

Sta

tus(

toke

n0)a

ndal

so g

etSta

tus(

toke

n1)a

ndal

so g

etSta

tus(

toke

n2))

, get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

+ g

etSoj

ourn

Tim

e(to

ken),

get

Proc

essi

ngTi

meS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

+ g

etPr

oces

singTi

me(

toke

n),

get

Queu

eTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Queu

eTim

e(to

ken))

+ g

etQ

ueu

eTim

e(to

ken),

get

Wai

tTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

+ g

etW

aitT

ime(

toke

n)

+ (

get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

- g

etSoj

ourn

Tim

eMin

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

))

toke

n

updSta

tus(

toke

n,

fals

e)

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

AndAChild

2Sta

rted

P_H

IGH

AndAChild

1Sta

rted

P_H

IGH

AndAChild

0Sta

rted

P_H

IGH

AndASch

edule

Child

2

AndASch

edule

Child

1

AndASch

edule

Child

0

AndAN

oWithdra

w

P_H

IGH

AndACom

ple

te

mat

ch(t

oken

::to

ken0::

toke

n1::

toke

n2::

nil)

AndAFi

nal

AndAIn

it

get

Sta

tus(

toke

n)

AndASch

edule

get

Sta

tus(

toke

n)

AndASki

p

not

(get

Sta

tus(

toke

n))

AndAW

ithdra

w

P_H

IGH

ER

PCSch

edule

In2

9525fb

a2-d

af3-4

025-b

e60-d

be3

875f9

af5Sch

edule

InCTo

ken

PCSch

edule

Out2

9525fb

a2-d

af3-4

025-b

e60-d

be3

875f9

af5Sch

edule

Out

CTo

ken

PBSch

edule

In1

4684cf

37-5

60c-

441a-

adc1

-c4b00f3

513ea

Sch

edule

InCTo

ken

PBSch

edule

Out1

4684cf

37-5

60c-

441a-

adc1

-c4b00f3

513ea

Sch

edule

Out

CTo

ken

PASch

edule

In0

8bf2

3bb2-3

cb5-4

915-9

545-1

ec1414a2

e74Sch

edule

InCTo

ken

PASch

edule

Out0

8bf2

3bb2-3

cb5-4

915-9

545-1

ec1414a2

e74Sch

edule

Out

CTo

ken

PAndAFi

nal

ised

e179ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8Fi

nal

ised

CTo

ken

PAndAFi

nal

ise

e179ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8Fi

nal

ise

CTo

ken

PAndAIn

itia

lised

e179ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8In

itia

lised

CTo

ken

PAndAIn

itia

lise

e179ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8In

itia

lise

CTo

ken

AndABusy CTo

ken

PCCom

ple

ted2

9525fb

a2-d

af3-4

025-b

e60-d

be3

875f9

af5Com

ple

ted

CTo

ken

PCW

ithdra

wn2

9525fb

a2-d

af3-4

025-b

e60-d

be3

875f9

af5W

ithdra

wn

CTo

ken

PCSta

rted

29525fb

a2-d

af3-4

025-b

e60-d

be3

875f9

af5Sta

rted

CTo

ken

PCSch

edule

d2

9525fb

a2-d

af3-4

025-b

e60-d

be3

875f9

af5Sch

edule

dCTo

ken

PBCom

ple

ted1

4684cf

37-5

60c-

441a-

adc1

-c4b00f3

513ea

Com

ple

ted

CTo

ken

PBW

ithdra

wn1

4684cf

37-5

60c-

441a-

adc1

-c4b00f3

513ea

Withdra

wn

CTo

ken

PBSta

rted

14684cf

37-5

60c-

441a-

adc1

-c4b00f3

513ea

Sta

rted

CTo

ken

PBSch

edule

d1

4684cf

37-5

60c-

441a-

adc1

-c4b00f3

513ea

Sch

edule

dCTo

ken

PACom

ple

ted0

8bf2

3bb2-3

cb5-4

915-9

545-1

ec1414a2

e74Com

ple

ted

CTo

ken

PAW

ithdra

wn0

8bf2

3bb2-3

cb5-4

915-9

545-1

ec1414a2

e74W

ithdra

wn

CTo

ken

PASta

rted

08bf2

3bb2-3

cb5-4

915-9

545-1

ec1414a2

e74Sta

rted

CTo

ken

PASch

edule

d0

8bf2

3bb2-3

cb5-4

915-9

545-1

ec1414a2

e74Sch

edule

dCTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

PAndCom

ple

ted

e179ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8Com

ple

ted

CTo

ken

PAndW

ithdra

wn

e179ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8W

ithdra

wn

CTo

ken

PAndSta

rted

e179ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8Sta

rted

CTo

ken

PAndSch

edule

de1

79ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8Sch

edule

dCTo

ken

e179ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8Sch

edule

de1

79ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8Sta

rted

e179ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8W

ithdra

wn

e179ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8Com

ple

ted

Sta

tsQ

ueu

eTim

e

Sta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

8bf2

3bb2-3

cb5-4

915-9

545-1

ec1414a2

e74Sch

edule

d

8bf2

3bb2-3

cb5-4

915-9

545-1

ec1414a2

e74Sta

rted

8bf2

3bb2-3

cb5-4

915-9

545-1

ec1414a2

e74W

ithdra

wn

8bf2

3bb2-3

cb5-4

915-9

545-1

ec1414a2

e74Com

ple

ted

4684cf

37-5

60c-

441a-

adc1

-c4b00f3

513ea

Sch

edule

d

4684cf

37-5

60c-

441a-

adc1

-c4b00f3

513ea

Sta

rted

4684cf

37-5

60c-

441a-

adc1

-c4b00f3

513ea

Withdra

wn

4684cf

37-5

60c-

441a-

adc1

-c4b00f3

513ea

Com

ple

ted

9525fb

a2-d

af3-4

025-b

e60-d

be3

875f9

af5Sch

edule

d

9525fb

a2-d

af3-4

025-b

e60-d

be3

875f9

af5Sta

rted

9525fb

a2-d

af3-4

025-b

e60-d

be3

875f9

af5W

ithdra

wn

9525fb

a2-d

af3-4

025-b

e60-d

be3

875f9

af5Com

ple

ted

e179ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8In

itia

lise

e179ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8In

itia

lised

e179ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8Fi

nal

ise

e179ea

38-d

373-4

991-9

8a4

-d46628bf5

eb8Fi

nal

ised

8bf2

3bb2-3

cb5-4

915-9

545-1

ec1414a2

e74Sch

edule

Out

8bf2

3bb2-3

cb5-4

915-9

545-1

ec1414a2

e74Sch

edule

In

4684cf

37-5

60c-

441a-

adc1

-c4b00f3

513ea

Sch

edule

Out

4684cf

37-5

60c-

441a-

adc1

-c4b00f3

513ea

Sch

edule

In

9525fb

a2-d

af3-4

025-b

e60-d

be3

875f9

af5Sch

edule

Out

9525fb

a2-d

af3-4

025-b

e60-d

be3

875f9

af5Sch

edule

In

Fig. 31: and operator encoding.

67

Page 68: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Xor

X_1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

", g

etW

aitT

imeS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

) el

se n

il

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Xor

X_1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

", g

etQ

ueu

eTim

eSum

((to

ken0::

toke

n1:

:tok

en2::

nil)

, get

Queu

eTim

e(to

ken))

) el

se n

il

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Xor

X_1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

", g

etPr

oces

singTi

meS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

) el

se n

il

toke

n2

toke

n1

toke

n0

toke

nto

ken

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

updTi

mes

tam

pSta

tus(

toke

n,t

ime(

),not

(get

Sta

tus(

toke

n1))

)

toke

n1

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

updTi

mes

tam

pSta

tus(

toke

n,t

ime(

),b a

ndal

so n

ot(g

etSta

tus(

toke

n1))

)

toke

n1

updSta

tus(

toke

n1,

b o

rels

e get

Sta

tus(

toke

n1))

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

updTi

mes

tam

pSta

tus(

toke

n,

tim

e(),

b)

updSta

tus(

toke

n,

b)

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

toke

nto

ken

toke

n

toke

n

setS

tats

Tim

e(updTi

mes

tam

pSta

tus(

toke

n,

tim

e(),

get

Sta

tus(

toke

n0)o

rels

e get

Sta

tus(

toke

n1)o

rels

e get

Sta

tus(

toke

n2))

, get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

+ g

etSoj

ourn

Tim

e(to

ken),

get

Proc

essi

ngTi

meS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

+ g

etPr

oces

singTi

me(

toke

n),

get

Queu

eTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Queu

eTim

e(to

ken))

+ g

etQ

ueu

eTim

e(to

ken),

get

Wai

tTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

+ g

etW

aitT

ime(

toke

n))

toke

n

updSta

tus(

toke

n,

fals

e)

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

Xor

XChild

2Sta

rted

P_H

IGH

Xor

XChild

1Sta

rted

P_H

IGH

Xor

XChild

0Sta

rted

P_H

IGH

Xor

XChild

2Sch

edule

d

case

Id =

get

Cas

eId(t

oken

) an

dal

so g

etCas

eId(t

oken

) =

get

Cas

eId(t

oken

1)

Xor

XChild

1Sch

edule

d

case

Id =

get

Cas

eId(t

oken

) an

dal

so m

atch

(tok

en::

toke

n1::

nil)

Xor

XChild

0Sch

edule

d

case

Id =

get

Cas

eId(t

oken

)

Xor

XN

oWithdra

w

P_H

IGH

Xor

XCom

ple

te

mat

ch(t

oken

::to

ken0::

toke

n1::

toke

n2::

nil)

Xor

XFi

nal

Xor

XIn

it

get

Sta

tus(

toke

n)

Xor

XSch

edule

get

Sta

tus(

toke

n)

Xor

XSki

p

not

(get

Sta

tus(

toke

n))

Xor

XW

ithdra

w

P_H

IGH

ER

PCSch

edule

In2

5bfb

92ca

-a9c8

-4b46-9

f76-c

15f7

73068f3

Sch

edule

InCTo

ken

PCSch

edule

Out2

5bfb

92ca

-a9c8

-4b46-9

f76-c

15f7

73068f3

Sch

edule

Out

CTo

ken

Xor

XChild

1Sel

ecte

d

CTo

ken

PBSch

edule

In1

46f4

43e4

-9a7

e-450f-

9c0

9-e

76f9

7ea

9fd

2Sch

edule

InCTo

ken

PBSch

edule

Out1

46f4

43e4

-9a7

e-450f-

9c0

9-e

76f9

7ea

9fd

2Sch

edule

Out

CTo

ken

Xor

XChild

0Sel

ecte

d

CTo

ken

PASch

edule

In0

6f8

99b90-1

f7f-

422d-8

0ac

-5a3

655fa

7565Sch

edule

InCTo

ken

PASch

edule

Out0

6f8

99b90-1

f7f-

422d-8

0ac

-5a3

655fa

7565Sch

edule

Out

CTo

ken

PExp

r1ea

3bd208-7

84f-

4855-b

811-8

f7de3

266087

CExp

r

PExp

r26e4

f2267-4

491-4

d6d-8

517-0

17b5b6d9a7

bCExp

r

NoE

xpre

ssio

nN

oExp

ress

ion

CExp

r

PXor

XFi

nal

ised

1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Final

ised

CTo

ken

PXor

XFi

nal

ise

1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Final

ise

CTo

ken

PXor

XIn

itia

lised

1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Initia

lised

CTo

ken

PXor

XIn

itia

lise

1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Initia

lise

CTo

ken

Xor

XBusy CTo

ken

PCCom

ple

ted2

5bfb

92ca

-a9c8

-4b46-9

f76-c

15f7

73068f3

Com

ple

ted

CTo

ken

PCW

ithdra

wn2

5bfb

92ca

-a9c8

-4b46-9

f76-c

15f7

73068f3

Withdra

wn

CTo

ken

PCSta

rted

25bfb

92ca

-a9c8

-4b46-9

f76-c

15f7

73068f3

Sta

rted

CTo

ken

PCSch

edule

d2

5bfb

92ca

-a9c8

-4b46-9

f76-c

15f7

73068f3

Sch

edule

dCTo

ken

PBCom

ple

ted1

46f4

43e4

-9a7

e-450f-

9c0

9-e

76f9

7ea

9fd

2Com

ple

ted

CTo

ken

PBW

ithdra

wn1

46f4

43e4

-9a7

e-450f-

9c0

9-e

76f9

7ea

9fd

2W

ithdra

wn

CTo

ken

PBSta

rted

146f4

43e4

-9a7

e-450f-

9c0

9-e

76f9

7ea

9fd

2Sta

rted

CTo

ken

PBSch

edule

d1

46f4

43e4

-9a7

e-450f-

9c0

9-e

76f9

7ea

9fd

2Sch

edule

dCTo

ken

PACom

ple

ted0

6f8

99b90-1

f7f-

422d-8

0ac

-5a3

655fa

7565Com

ple

ted

CTo

ken

PAW

ithdra

wn0

6f8

99b90-1

f7f-

422d-8

0ac

-5a3

655fa

7565W

ithdra

wn

CTo

ken

PASta

rted

06f8

99b90-1

f7f-

422d-8

0ac

-5a3

655fa

7565Sta

rted

CTo

ken

PASch

edule

d0

6f8

99b90-1

f7f-

422d-8

0ac

-5a3

655fa

7565Sch

edule

dCTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

PXor

Com

ple

ted

1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Com

ple

ted

CTo

ken

PXor

Withdra

wn

1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Withdra

wn

CTo

ken

PXor

Sta

rted

1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Sta

rted

CTo

ken

PXor

Sch

edule

d1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Sch

edule

dCTo

ken

1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Sch

edule

d1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Sta

rted

1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Withdra

wn

1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Com

ple

ted

Sta

tsQ

ueu

eTim

e

Sta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

6f8

99b90-1

f7f-

422d-8

0ac

-5a3

655fa

7565Sch

edule

d

6f8

99b90-1

f7f-

422d-8

0ac

-5a3

655fa

7565Sta

rted

6f8

99b90-1

f7f-

422d-8

0ac

-5a3

655fa

7565W

ithdra

wn

6f8

99b90-1

f7f-

422d-8

0ac

-5a3

655fa

7565Com

ple

ted

46f4

43e4

-9a7

e-450f-

9c0

9-e

76f9

7ea

9fd

2Sch

edule

d

46f4

43e4

-9a7

e-450f-

9c0

9-e

76f9

7ea

9fd

2Sta

rted

46f4

43e4

-9a7

e-450f-

9c0

9-e

76f9

7ea

9fd

2W

ithdra

wn

46f4

43e4

-9a7

e-450f-

9c0

9-e

76f9

7ea

9fd

2Com

ple

ted

5bfb

92ca

-a9c8

-4b46-9

f76-c

15f7

73068f3

Sch

edule

d

5bfb

92ca

-a9c8

-4b46-9

f76-c

15f7

73068f3

Sta

rted

5bfb

92ca

-a9c8

-4b46-9

f76-c

15f7

73068f3

Withdra

wn

5bfb

92ca

-a9c8

-4b46-9

f76-c

15f7

73068f3

Com

ple

ted

1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Initia

lise

1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Initia

lised

1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Final

ise

1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

Final

ised

NoE

xpre

ssio

n

6e4

f2267-4

491-4

d6d-8

517-0

17b5b6d9a7

b

ea3bd208-7

84f-

4855-b

811-8

f7de3

266087

6f8

99b90-1

f7f-

422d-8

0ac

-5a3

655fa

7565Sch

edule

Out

6f8

99b90-1

f7f-

422d-8

0ac

-5a3

655fa

7565Sch

edule

In

46f4

43e4

-9a7

e-450f-

9c0

9-e

76f9

7ea

9fd

2Sch

edule

Out

46f4

43e4

-9a7

e-450f-

9c0

9-e

76f9

7ea

9fd

2Sch

edule

In

5bfb

92ca

-a9c8

-4b46-9

f76-c

15f7

73068f3

Sch

edule

Out

5bfb

92ca

-a9c8

-4b46-9

f76-c

15f7

73068f3

Sch

edule

In

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Xor

X_1ef

4d702-4

42e-

4ca

7-a

b0d-0

80c3

38e2

2a3

", g

etSoj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

) el

se n

il

Fig. 32: xor operator encoding.

68

Page 69: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

2),

"Xor

Loop

D_4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445",

get

Wai

tTim

e(to

ken2)

- get

Wai

tTim

e(to

ken))

els

e nil

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

2),

"Xor

Loop

D_4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445",

get

Queu

eTim

e(to

ken2)

- get

Queu

eTim

e(to

ken))

els

e nil

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

2),

"Xor

Loop

D_4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445",

get

Proc

essi

ngTi

me(

toke

n2)

- get

Proc

essi

ngTi

me(

toke

n))

els

e nil

toke

n2

toke

n2

toke

n1

toke

n1

toke

n

toke

nto

ken

toke

n

toke

n

toke

n updTi

mes

tam

pSta

tus(

toke

n0,

tim

e(),

get

Sta

tus(

toke

n0)

andal

so n

ot(b

))

toke

n0

toke

n

updTi

mes

tam

pSta

tus(

toke

n0,

tim

e(),

get

Sta

tus(

toke

n0)

andal

so b

)

toke

n0

toke

n

updTi

mes

tam

p(t

oken

1,

tim

e())

toke

n

toke

n

toke

n

toke

nto

ken

toke

n2

toke

n2

setS

tats

Tim

e(updTi

mes

tam

p(t

oken

2,

tim

e())

, get

Soj

ourn

Tim

eMax

((to

ken2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

+ g

etSoj

ourn

Tim

e(to

ken),

get

Proc

essi

ngTi

meS

um

((to

ken2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

+ g

etPr

oces

singTi

me(

toke

n),

get

Queu

eTim

eSum

((to

ken2::

nil)

, get

Queu

eTim

e(to

ken))

+ g

etQ

ueu

eTim

e(to

ken),

get

Wai

tTim

eSum

((to

ken2::

nil)

, get

Wai

tTim

e(to

ken))

+ g

etW

aitT

ime(

toke

n))

toke

nupdSta

tus(

toke

n,

fals

e)

toke

n

toke

n

toke

n

toke

n

toke

n

toke

nto

ken

(cas

eId,

rs,

b)

(cas

eId,

rs,

b)

(cas

eId,

rs,

b)

(cas

eId,

rs,

b)

Xor

Loop

DChild

2Sta

rted

P_H

IGH

Xor

Loop

DChild

1Sta

rted

P_H

IGH

Xor

Loop

DChild

0Sta

rted

P_H

IGH

Xor

Loop

DSch

edule

Child

0

Xor

Loop

DRes

ched

ule

not

(get

Sta

tus(

toke

n2))

andal

so g

etSta

tus(

toke

n1)

Xor

Loop

DRed

oExi

t

Xor

Loop

DRed

o

case

Id =

get

Cas

eId(t

oken

0)

Xor

Loop

DExi

t

case

Id =

get

Cas

eId(t

oken

0)

Xor

Loop

DN

oWithdra

w

P_H

IGH

Xor

Loop

DCom

ple

te

mat

ch(t

oken

::to

ken2::

nil)

andal

so n

ot(g

etSta

tus(

toke

n1))

Xor

Loop

DFi

nal

Xor

Loop

DIn

it

get

Sta

tus(

toke

n)

Xor

Loop

DSch

edule

get

Sta

tus(

toke

n)

Xor

Loop

DSki

p

not

(get

Sta

tus(

toke

n))

Xor

Loop

DW

ithdra

w

P_H

IGH

ER

PCSch

edule

In2

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sch

edule

InCTo

ken

PCSch

edule

Out2

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sch

edule

Out

CTo

ken

PBSch

edule

In1

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSch

edule

InCTo

ken

PBSch

edule

Out1

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSch

edule

Out

CTo

ken

PASch

edule

In0

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSch

edule

InCTo

ken

PASch

edule

Out0

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSch

edule

Out

CTo

ken

PXor

Loop

DFi

nal

ised

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Fi

nal

ised

CTo

ken

PXor

Loop

DFi

nal

ise

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Fi

nal

ise

CTo

ken

PXor

Loop

DIn

itia

lised

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445In

itia

lised

CTo

ken

PXor

Loop

DIn

itia

lise

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445In

itia

lise

CTo

ken

Xor

Loop

DBusy

CTo

ken

NoE

xpre

ssio

nN

oExp

ress

ion

CExp

r

PExp

r17d2b6f2

e-12a0

-40f7

-b318-6

ee570029eb

0CExp

r

PExp

r23a4

b0ec

f-a4

4a-

4b36-a

807-8

4ae

a9302fd

7CExp

r

PCCom

ple

ted2

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Com

ple

ted

CTo

ken

PCW

ithdra

wn2

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Withdra

wn

CTo

ken

PCSta

rted

22362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sta

rted

CTo

ken

PCSch

edule

d2

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sch

edule

dCTo

ken

PBCom

ple

ted1

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eCom

ple

ted

CTo

ken

PBW

ithdra

wn1

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eWithdra

wn

CTo

ken

PBSta

rted

181589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSta

rted

CTo

ken

PBSch

edule

d1

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSch

edule

dCTo

ken

PACom

ple

ted0

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dCom

ple

ted

CTo

ken

PAW

ithdra

wn0

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dW

ithdra

wn

CTo

ken

PASta

rted

098d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSta

rted

CTo

ken

PASch

edule

d0

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSch

edule

dCTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

PXor

Loop

Com

ple

ted

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Com

ple

ted

CTo

ken

PXor

Loop

Withdra

wn

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445W

ithdra

wn

CTo

ken

PXor

Loop

Sta

rted

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Sta

rted

CTo

ken

PXor

Loop

Sch

edule

d4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Sch

edule

dCTo

ken

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Sch

edule

d4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Sta

rted

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445W

ithdra

wn

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Com

ple

ted

Sta

tsQ

ueu

eTim

e

Sta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSch

edule

d

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSta

rted

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dW

ithdra

wn

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dCom

ple

ted

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSch

edule

d81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSta

rted

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eWithdra

wn

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eCom

ple

ted

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sch

edule

d

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sta

rted

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Withdra

wn

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Com

ple

ted

3a4

b0ec

f-a4

4a-

4b36-a

807-8

4ae

a9302fd

7

7d2b6f2

e-12a0

-40f7

-b318-6

ee570029eb

0

NoE

xpre

ssio

n

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445In

itia

lise

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445In

itia

lised

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Fi

nal

ise

4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445Fi

nal

ised

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSch

edule

Out

98d96ca

3-5

dfc

-4c4

b-a

3cd

-4e6

c2e4

b1c7

dSch

edule

In

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSch

edule

Out

81589419-e

68c-

47c8

-b65d-4

7691ff7be5

eSch

edule

In

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sch

edule

Out

2362a1

73-2

c05-4

b5b-b

6d9-2

6f6

d65829ce

Sch

edule

In

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

2),

"Xor

Loop

D_4767fb

17-d

018-4

19b-a

140-7

7c3

efdec

445",

get

Soj

ourn

Tim

e(to

ken2)

- get

Soj

ourn

Tim

e(to

ken))

els

e nil

Fig. 33: loopxor operator encoding.

69

Page 70: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

OrO

_ec

a3f5

4d-f

bc3

-42a1

-b850-d

3aa

c36a8

70b",

get

Queu

eTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Queu

eTim

e(to

ken))

) el

se n

il

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

OrO

_ec

a3f5

4d-f

bc3

-42a1

-b850-d

3aa

c36a8

70b",

get

Proc

essi

ngTi

meS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

) el

se n

il

toke

n2

toke

n1

toke

n0

toke

nto

ken

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

updTi

mes

tam

pSta

tus(

toke

n,

tim

e(),

b o

rels

e not

(get

Sta

tus(

toke

n1))

)

toke

n1

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

updTi

mes

tam

pSta

tus(

toke

n,t

ime(

),b)

toke

n1

updSta

tus(

toke

n1,

b o

rels

e get

Sta

tus(

toke

n1))

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

updTi

mes

tam

pSta

tus(

toke

n,

tim

e(),

b)

updSta

tus(

toke

n,

b)

toke

n

(cas

eId,r

s,b)

(cas

eId,r

s,b)

toke

n

toke

nto

ken

toke

n

toke

n

toke

n

updSta

tus(

toke

n,

fals

e)to

ken

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

OrO

Child

2Sta

rted

P_H

IGH

OrO

Child

1Sta

rted

P_H

IGH

OrO

Child

0Sta

rted

P_H

IGH

OrO

Child

2Sch

edule

d

case

Id =

get

Cas

eId(t

oken

) an

dal

so g

etCas

eId(t

oken

) =

get

Cas

eId(t

oken

1)

OrO

Child

1Sch

edule

d

case

Id =

get

Cas

eId(t

oken

) an

dal

so g

etCas

eId(t

oken

) =

get

Cas

eId(t

oken

1)

OrO

Child

0Sch

edule

d

case

Id =

get

Cas

eId(t

oken

)

OrO

NoW

ithdra

w

P_H

IGH

OrO

Com

ple

te

mat

ch(t

oken

::to

ken0::

toke

n1::

toke

n2::

nil)

OrO

Final

OrO

Init

get

Sta

tus(

toke

n)

OrO

Sch

edule

get

Sta

tus(

toke

n)

OrO

Ski

p

not

(get

Sta

tus(

toke

n))

OrO

Withdra

w

P_H

IGH

ER

PCSch

edule

In2

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sch

edule

InCTo

ken

PCSch

edule

Out2

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sch

edule

Out

CTo

ken

OrO

Child

1Sel

ecte

d

CTo

ken

PBSch

edule

In1

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sch

edule

InCTo

ken

PBSch

edule

Out1

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sch

edule

Out

CTo

ken

OrO

Child

0Sel

ecte

d

CTo

ken

PASch

edule

In0

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sch

edule

InCTo

ken

PASch

edule

Out0

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sch

edule

Out

CTo

ken

PExp

r3bb1398af

-c749-4

3fe

-b804-e

dac

bcb

d075c

CExp

r

PExp

r12a4

1265b-7

99c-

4602-9

063-d

e9a2

fc9291b

CExp

r

PExp

r21912d320-9

ee1-4

fdf-

a30c-

9735a8

7760b8

CExp

r

POrO

Final

ised

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bFi

nal

ised

CTo

ken

POrO

Final

ise

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bFi

nal

ise

CTo

ken

POrO

Initia

lised

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bIn

itia

lised

CTo

ken

POrO

Initia

lise

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bIn

itia

lise

CTo

ken

OrO

Busy CTo

ken

PCCom

ple

ted2

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Com

ple

ted

CTo

ken

PCW

ithdra

wn2

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53W

ithdra

wn

CTo

ken

PCSta

rted

21a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sta

rted

CTo

ken

PCSch

edule

d2

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sch

edule

dCTo

ken

PBCom

ple

ted1

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Com

ple

ted

CTo

ken

PBW

ithdra

wn1

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7W

ithdra

wn

CTo

ken

PBSta

rted

193db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sta

rted

CTo

ken

PBSch

edule

d1

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sch

edule

dCTo

ken

PACom

ple

ted0

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Com

ple

ted

CTo

ken

PAW

ithdra

wn0

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1W

ithdra

wn

CTo

ken

PASta

rted

03b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sta

rted

CTo

ken

PASch

edule

d0

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sch

edule

dCTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

POrC

omple

ted

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bCom

ple

ted

CTo

ken

POrW

ithdra

wn

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bW

ithdra

wn

CTo

ken

POrS

tart

edec

a3f5

4d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bSta

rted

CTo

ken

POrS

ched

ule

dec

a3f5

4d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bSch

edule

dCTo

ken

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bSch

edule

dec

a3f5

4d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bSta

rted

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bW

ithdra

wn

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bCom

ple

ted

Sta

tsQ

ueu

eTim

e

Sta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sch

edule

d

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sta

rted 3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1W

ithdra

wn

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Com

ple

ted

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sch

edule

d

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sta

rted 93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7W

ithdra

wn

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Com

ple

ted

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sch

edule

d

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sta

rted 1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53W

ithdra

wn

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Com

ple

ted

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bIn

itia

lise

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bIn

itia

lised

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bFi

nal

ise

eca3

f54d-f

bc3

-42a1

-b850-d

3aa

c36a8

70bFi

nal

ised

1912d320-9

ee1-4

fdf-

a30c-

9735a8

7760b8

2a4

1265b-7

99c-

4602-9

063-d

e9a2

fc9291b

bb1398af

-c749-4

3fe

-b804-e

dac

bcb

d075c

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sch

edule

Out

3b21f0

95-7

32e-

4374-9

29e-

5c2

cbd55e2

f1Sch

edule

In

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sch

edule

Out

93db3a6

8-6

149-4

ef3-8

084-9

2860d505f0

7Sch

edule

In

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sch

edule

Out

1a2

b1833-f

e06-4

c62-b

6ee

-9c7

86c5

a5d53Sch

edule

Inse

tSta

tsTi

me(

updTi

mes

tam

pSta

tus(

toke

n,

tim

e(),

get

Sta

tus(

toke

n0)o

rels

e get

Sta

tus(

toke

n1)o

rels

e get

Sta

tus(

toke

n2))

, get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

+ g

etSoj

ourn

Tim

e(to

ken),

get

Proc

essi

ngTi

meS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

+ g

etPr

oces

singTi

me(

toke

n),

get

Queu

eTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Queu

eTim

e(to

ken))

+ g

etQ

ueu

eTim

e(to

ken),

get

Wai

tTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

+ g

etW

aitT

ime(

toke

n)

+ (

get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

- g

etSoj

ourn

Tim

eMin

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

))

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

OrO

_ec

a3f5

4d-f

bc3

-42a1

-b850-d

3aa

c36a8

70b",

get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

) el

se n

il

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

OrO

_e6

0d38a4

-9170-4

527-a

a27-c

99a8

744c0

5b",

get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

- g

etSoj

ourn

Tim

eMin

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

+

get

Wai

tTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

) el

se n

il

Fig. 34: or operator encoding.

70

Page 71: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

toke

n

toke

n

updSta

tus(

toke

n,

fals

e)

toke

n

updSta

tus(

toke

n,

fals

e)

toke

nto

ken1

toke

n

toke

n

toke

nto

ken

toke

n

toke

nto

ken

toke

n1

toke

n

toke

n

toke

n

setS

ojou

rnTi

me(

updTi

mes

tam

p(t

oken

, tim

e())

, get

Soj

ourn

Tim

e(to

ken)

+ t

ime(

) -

get

Tim

esta

mp(t

oken

))

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

Eve

ntE

Sch

edule

Child

0

Eve

ntE

Final

Eve

ntE

Init

get

Sta

tus(

toke

n)

Eve

ntE

Rem

oved

P_LO

W

Eve

ntE

Rem

ove

get

Cas

eId(t

oken

) =

get

Cas

eId(t

oken

1)

P_H

IGH

ER

Eve

ntE

Child

Sta

rted

P_H

IGH

Eve

ntE

Child

Sch

edule

Eve

ntE

@+

+get

Dura

tion

(tok

en)

Eve

ntE

NoW

ithdra

w

P_H

IGH

Eve

ntE

Com

ple

te

Eve

ntE

Sch

edule

get

Sta

tus(

toke

n)

Eve

ntE

Ski

p

not

(get

Sta

tus(

toke

n))

Eve

ntE

Withdra

w

P_H

IGH

ER

PASch

edule

In0

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sch

edule

InCTo

ken

PASch

edule

Out0

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sch

edule

Out

CTo

ken

PEve

ntE

Final

ised

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Fi

nal

ised

CTo

ken

PEve

ntE

Final

ise

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Fi

nal

ise

CTo

ken

PEve

ntE

Initia

lised

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3In

itia

lised

CTo

ken

PEve

ntE

Initia

lise

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3In

itia

lise

CTo

ken

Eve

ntE

Pendin

g

CTo

ken

Eve

ntE

Don

e

CTo

ken

Eve

ntE

Busy

CTo

ken

PACom

ple

ted0

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Com

ple

ted

CTo

ken

PAW

ithdra

wn0

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0W

ithdra

wn

CTo

ken

PASta

rted

077aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sta

rted

CTo

ken

PASch

edule

d0

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sch

edule

dCTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

Pto1

Com

ple

ted

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Com

ple

ted

CTo

ken

Pto1

Withdra

wn

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3W

ithdra

wn

CTo

ken

Pto1

Sta

rted

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Sta

rted

CTo

ken

Pto1

Sch

edule

d04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Sch

edule

dCTo

ken

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Sch

edule

d04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Sta

rted

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3W

ithdra

wn

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Com

ple

ted

Sta

tsQ

ueu

eTim

e

Sta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sch

edule

d77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sta

rted

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0W

ithdra

wn

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Com

ple

ted

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3In

itia

lise

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3In

itia

lised

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Fi

nal

ise

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3Fi

nal

ised

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sch

edule

Out

77aa

aa19-0

fa7-4

b71-9

731-0

9b4343ea

ca0Sch

edule

In

if g

etSta

tus(

toke

n)

then

1`(g

etCas

eId(t

oken

), "

Eve

nt_

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3",

get

Soj

ourn

Tim

e(to

ken1)

- get

Soj

ourn

Tim

e(to

ken))

els

e nil

updTi

mes

tam

p(t

oken

1,

tim

e())

get

Cas

eId(t

oken

) =

get

Cas

eId(t

oken

1)

if g

etSta

tus(

toke

n)

then

1`(g

etCas

eId(t

oken

), "

Eve

nt_

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3",

get

Proc

essi

ngTi

me(

toke

n1)

- get

Proc

essi

ngTi

me(

toke

n))

els

e nil

if g

etSta

tus(

toke

n)

then

1`(g

etCas

eId(t

oken

), "

Eve

nt_

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3",

get

Wai

tTim

e(to

ken1)

- get

Wai

tTim

e(to

ken))

els

e nil

if g

etSta

tus(

toke

n)

then

1`(g

etCas

eId(t

oken

), "

Eve

nt_

04f4

1544-0

2f1

-4dd1-a

ba8

-59d7a2

db5fc

3",

get

Queu

eTim

e(to

ken1)

- get

Queu

eTim

e(to

ken))

els

e nil

Fig. 35: event operator encoding.

71

Page 72: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Def

D_13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79",

get

Wai

tTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

) el

se n

il

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Def

D_13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79",

get

Queu

eTim

eSum

((to

ken0::

toke

n1:

:tok

en2::

nil)

, get

Queu

eTim

e(to

ken))

) el

se n

il

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Def

D_13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79",

get

Proc

essi

ngTi

meS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

) el

se n

il

toke

n2

toke

n1

toke

n0

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

nto

ken

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

updTi

mes

tam

p(t

oken

, tim

e())

toke

n

toke

n

updTi

mes

tam

p(t

oken

, tim

e())

toke

n

toke

n

updTi

mes

tam

p(t

oken

, tim

e())

toke

n

toke

nto

ken

toke

n

toke

n

toke

n

setS

tats

Tim

e(updTi

mes

tam

pSta

tus(

toke

n,

tim

e(),

get

Sta

tus(

toke

n0)o

rels

e get

Sta

tus(

toke

n1)o

rels

e get

Sta

tus(

toke

n2))

, get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

+ g

etSoj

ourn

Tim

e(to

ken),

get

Proc

essi

ngTi

meS

um

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

+ g

etPr

oces

singTi

me(

toke

n),

get

Queu

eTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Queu

eTim

e(to

ken))

+ g

etQ

ueu

eTim

e(to

ken),

get

Wai

tTim

eSum

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

+ g

etW

aitT

ime(

toke

n))

toke

n

updSta

tus(

toke

n,

fals

e)

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

Def

DChild

2Sta

rted

P_H

IGH

Def

DChild

1Sta

rted

P_H

IGH

Def

DChild

0Sta

rted

P_H

IGH

Def

DSch

edule

Child

2

Def

DSch

edule

Child

1

Def

DSch

edule

Child

0

Def

DN

oWithdra

w

P_H

IGH

Def

DCom

ple

te

mat

ch(t

oken

::to

ken0::

toke

n1::

toke

n2::

nil)

Def

DFi

nal

Def

DIn

it

get

Sta

tus(

toke

n)

Def

DSch

edule

get

Sta

tus(

toke

n)

Def

DSki

p

not

(get

Sta

tus(

toke

n))

Def

DW

ithdra

w

P_H

IGH

ER

PMes

s2Sch

edule

In2

cf1bea

6f-

a6da-

4f4

b-b

28c-

044ae

d83b136Sch

edule

InCTo

ken

PMes

s2Sch

edule

Out2

cf1bea

6f-

a6da-

4f4

b-b

28c-

044ae

d83b136Sch

edule

Out

CTo

ken

PMes

s1Sch

edule

In1

dae

c3d2b-4

eaa-

4567-8

d02-e

87de8

881405Sch

edule

InCTo

ken

PMes

s1Sch

edule

Out1

dae

c3d2b-4

eaa-

4567-8

d02-e

87de8

881405Sch

edule

Out

CTo

ken

Pto1

Sch

edule

In0

c705a8

8c-

7113-4

0d6-b

d2f-

269ae

cd39af

bSch

edule

InCTo

ken

Pto1

Sch

edule

Out0

c705a8

8c-

7113-4

0d6-b

d2f-

269ae

cd39af

bSch

edule

Out

CTo

ken

PDef

DFi

nal

ised

13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79Fi

nal

ised

CTo

ken

PDef

DFi

nal

ise

13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79Fi

nal

ise

CTo

ken

PDef

DIn

itia

lised

13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79In

itia

lised

CTo

ken

PDef

DIn

itia

lise

13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79In

itia

lise

CTo

ken

Def

DBusy CTo

ken

PMes

s2Com

ple

ted2

cf1bea

6f-

a6da-

4f4

b-b

28c-

044ae

d83b136Com

ple

ted

CTo

ken

PMes

s2W

ithdra

wn2

cf1bea

6f-

a6da-

4f4

b-b

28c-

044ae

d83b136W

ithdra

wn

CTo

ken

PMes

s2Sta

rted

2cf

1bea

6f-

a6da-

4f4

b-b

28c-

044ae

d83b136Sta

rted

CTo

ken

PMes

s2Sch

edule

d2

cf1bea

6f-

a6da-

4f4

b-b

28c-

044ae

d83b136Sch

edule

dCTo

ken

PMes

s1Com

ple

ted1

dae

c3d2b-4

eaa-

4567-8

d02-e

87de8

881405Com

ple

ted

CTo

ken

PMes

s1W

ithdra

wn1

dae

c3d2b-4

eaa-

4567-8

d02-e

87de8

881405W

ithdra

wn

CTo

ken

PMes

s1Sta

rted

1dae

c3d2b-4

eaa-

4567-8

d02-e

87de8

881405Sta

rted

CTo

ken

PMes

s1Sch

edule

d1

dae

c3d2b-4

eaa-

4567-8

d02-e

87de8

881405Sch

edule

dCTo

ken

Pto1

Com

ple

ted0

c705a8

8c-

7113-4

0d6-b

d2f-

269ae

cd39af

bCom

ple

ted

CTo

ken

Pto1

Withdra

wn0

c705a8

8c-

7113-4

0d6-b

d2f-

269ae

cd39af

bW

ithdra

wn

CTo

ken

Pto1

Sta

rted

0c7

05a8

8c-

7113-4

0d6-b

d2f-

269ae

cd39af

bSta

rted

CTo

ken

Pto1

Sch

edule

d0

c705a8

8c-

7113-4

0d6-b

d2f-

269ae

cd39af

bSch

edule

dCTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

PDef

Com

ple

ted

13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79Com

ple

ted

CTo

ken

PDef

Withdra

wn

13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79W

ithdra

wn

CTo

ken

PDef

Sta

rted

13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79Sta

rted

CTo

ken

PDef

Sch

edule

d13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79Sch

edule

dCTo

ken

13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79Sch

edule

d13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79Sta

rted

13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79W

ithdra

wn

13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79Com

ple

ted

Sta

tsQ

ueu

eTim

e

Sta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

c705a8

8c-

7113-4

0d6-b

d2f-

269ae

cd39af

bSch

edule

d

c705a8

8c-

7113-4

0d6-b

d2f-

269ae

cd39af

bSta

rted

c705a8

8c-

7113-4

0d6-b

d2f-

269ae

cd39af

bW

ithdra

wn

c705a8

8c-

7113-4

0d6-b

d2f-

269ae

cd39af

bCom

ple

ted

dae

c3d2b-4

eaa-

4567-8

d02-e

87de8

881405Sch

edule

d

dae

c3d2b-4

eaa-

4567-8

d02-e

87de8

881405Sta

rted

dae

c3d2b-4

eaa-

4567-8

d02-e

87de8

881405W

ithdra

wn

dae

c3d2b-4

eaa-

4567-8

d02-e

87de8

881405Com

ple

ted

cf1bea

6f-

a6da-

4f4

b-b

28c-

044ae

d83b136Sch

edule

d

cf1bea

6f-

a6da-

4f4

b-b

28c-

044ae

d83b136Sta

rted

cf1bea

6f-

a6da-

4f4

b-b

28c-

044ae

d83b136W

ithdra

wn

cf1bea

6f-

a6da-

4f4

b-b

28c-

044ae

d83b136Com

ple

ted

13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79In

itia

lise

13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79In

itia

lised

13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79Fi

nal

ise

13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79Fi

nal

ised

c705a8

8c-

7113-4

0d6-b

d2f-

269ae

cd39af

bSch

edule

Out

c705a8

8c-

7113-4

0d6-b

d2f-

269ae

cd39af

bSch

edule

In

dae

c3d2b-4

eaa-

4567-8

d02-e

87de8

881405Sch

edule

Out

dae

c3d2b-4

eaa-

4567-8

d02-e

87de8

881405Sch

edule

In

cf1bea

6f-

a6da-

4f4

b-b

28c-

044ae

d83b136Sch

edule

Out

cf1bea

6f-

a6da-

4f4

b-b

28c-

044ae

d83b136Sch

edule

In

if g

etSta

tus(

toke

n0)

orel

se g

etSta

tus(

toke

n1)

orel

se g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

), "

Def

D_13af

fd0c-

7d90-4

6c2

-840d-e

2f8

9487e9

79",

get

Soj

ourn

Tim

eMax

((to

ken0::

toke

n1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

) el

se n

il

Fig. 36: def operator encoding.

72

Page 73: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

2),

"D

efLo

op_f3

77e8

48-5

2e1

-4821-9

168-c

813e5

917711",

get

Wai

tTim

e(to

ken2)

- get

Wai

tTim

e(to

ken))

els

e nil

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

2),

"D

efLo

op_f3

77e8

48-5

2e1

-4821-9

168-c

813e5

917711",

get

Queu

eTim

e(to

ken2)

- get

Queu

eTim

e(to

ken))

els

e nil

if g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

2),

"D

efLo

op_f3

77e8

48-5

2e1

-4821-9

168-c

813e5

917711",

get

Proc

essi

ngTi

me(

toke

n2)

- get

Proc

essi

ngTi

me(

toke

n))

els

e nil

toke

n2

toke

n2

toke

n1

toke

n1

toke

n0

toke

n0

toke

n

toke

nto

ken

toke

nto

ken

toke

n

toke

n

updTi

mes

tam

p(t

oken

0,

tim

e())

toke

n0

toke

n0

updTi

mes

tam

p(t

oken

0,

tim

e())

toke

n0

toke

n0

toke

n

toke

n

updTi

mes

tam

p(t

oken

1,

tim

e())

toke

n

toke

nto

ken

toke

n2

toke

n2

setS

tats

Tim

e(updTi

mes

tam

p(t

oken

2,

tim

e())

, get

Soj

ourn

Tim

eMax

((to

ken1::

toke

n2::

nil)

, get

Soj

ourn

Tim

e(to

ken))

+ g

etSoj

ourn

Tim

e(to

ken),

get

Proc

essi

ngTi

meS

um

((to

ken1::

toke

n2::

nil)

, get

Proc

essi

ngTi

me(

toke

n))

+ g

etPr

oces

singTi

me(

toke

n),

get

Queu

eTim

eSum

((to

ken1::

toke

n2::

nil)

, get

Queu

eTim

e(to

ken))

+ g

etQ

ueu

eTim

e(to

ken),

get

Wai

tTim

eSum

((to

ken1::

toke

n2::

nil)

, get

Wai

tTim

e(to

ken))

+ g

etW

aitT

ime(

toke

n))

toke

n0

toke

n

updSta

tus(

toke

n,

fals

e)to

ken

toke

n

toke

n

toke

n

toke

n

toke

n

toke

n

Def

Loop

DChild

2Sta

rted

P_H

IGH

Def

Loop

DChild

1Sta

rted

P_H

IGH

Def

Loop

DChild

0Sta

rted

P_H

IGH

Def

Loop

DSch

edule

Child

2

Def

Loop

DSch

edule

Child

1

Def

Loop

DSch

edule

Child

0

Def

Loop

DRes

ched

ule

Do

mat

ch(t

oken

1::

toke

n2::

nil)

andal

so g

etSta

tus(

toke

n1)

Def

Loop

DSch

edule

Red

oExi

t

get

Sta

tus(

toke

n0)

Def

Loop

DChild

1W

ithdra

wn

not

(get

Sta

tus(

toke

n0))

Def

Loop

DN

oWithdra

w

P_H

IGH

Def

Loop

DCom

ple

tem

atch

(tok

en::

toke

n1::

toke

n2::

nil)

andal

so n

ot(g

etSta

tus(

toke

n1))

Def

Loop

DFi

nal

Def

Loop

DIn

it

get

Sta

tus(

toke

n)

Def

Loop

DSch

edule

get

Sta

tus(

toke

n)

Def

Loop

DSki

p

not

(get

Sta

tus(

toke

n))

Def

Loop

DW

ithdra

w

P_H

IGH

ER

PMes

s1Sch

edule

In2

9f5

d6b86-6

e94-4

1e0

-84b7-5

61e4

2c7

def

2Sch

edule

InCTo

ken

PMes

s1Sch

edule

Out2

9f5

d6b86-6

e94-4

1e0

-84b7-5

61e4

2c7

def

2Sch

edule

Out

CTo

ken

Pto1

Sch

edule

In1

c981f8

37-b

bd8-4

e43-8

164-e

bf9

912df8

78Sch

edule

InCTo

ken

Pto1

Sch

edule

Out1

c981f8

37-b

bd8-4

e43-8

164-e

bf9

912df8

78Sch

edule

Out

CTo

ken

PASch

edule

In0

0ef

b83fb

-217b-4

e6a-

9ac

0-2

9557c2

b77deS

ched

ule

InCTo

ken

PASch

edule

Out0

0ef

b83fb

-217b-4

e6a-

9ac

0-2

9557c2

b77deS

ched

ule

Out

CTo

ken

PDef

Loop

DFi

nal

ised

f377e8

48-5

2e1

-4821-9

168-c

813e5

917711Fi

nal

ised

CTo

ken

PDef

Loop

DFi

nal

ise

f377e8

48-5

2e1

-4821-9

168-c

813e5

917711Fi

nal

ise

CTo

ken

PDef

Loop

DIn

itia

lised

f377e8

48-5

2e1

-4821-9

168-c

813e5

917711In

itia

lised

CTo

ken

PDef

Loop

DIn

itia

lise

f377e8

48-5

2e1

-4821-9

168-c

813e5

917711In

itia

lise

CTo

ken

Def

Loop

DBusy

CTo

ken

PMes

s1Com

ple

ted2

9f5

d6b86-6

e94-4

1e0

-84b7-5

61e4

2c7

def

2Com

ple

ted

CTo

ken

PMes

s1W

ithdra

wn2

9f5

d6b86-6

e94-4

1e0

-84b7-5

61e4

2c7

def

2W

ithdra

wn

CTo

ken

PMes

s1Sta

rted

29f5

d6b86-6

e94-4

1e0

-84b7-5

61e4

2c7

def

2Sta

rted

CTo

ken

PMes

s1Sch

edule

d2

9f5

d6b86-6

e94-4

1e0

-84b7-5

61e4

2c7

def

2Sch

edule

dCTo

ken

Pto1

Com

ple

ted1

c981f8

37-b

bd8-4

e43-8

164-e

bf9

912df8

78Com

ple

ted

CTo

ken

Pto1

Withdra

wn1

c981f8

37-b

bd8-4

e43-8

164-e

bf9

912df8

78W

ithdra

wn

CTo

ken

Pto1

Sta

rted

1c9

81f8

37-b

bd8-4

e43-8

164-e

bf9

912df8

78Sta

rted

CTo

ken

Pto1

Sch

edule

d1

c981f8

37-b

bd8-4

e43-8

164-e

bf9

912df8

78Sch

edule

dCTo

ken

PACom

ple

ted0

0ef

b83fb

-217b-4

e6a-

9ac

0-2

9557c2

b77deC

omple

ted

CTo

ken

PAW

ithdra

wn0

0ef

b83fb

-217b-4

e6a-

9ac

0-2

9557c2

b77deW

ithdra

wn

CTo

ken

PASta

rted

00ef

b83fb

-217b-4

e6a-

9ac

0-2

9557c2

b77deS

tart

edCTo

ken

PASch

edule

d0

0ef

b83fb

-217b-4

e6a-

9ac

0-2

9557c2

b77deS

ched

ule

dCTo

ken

Sta

tsW

aitT

ime

Sta

tsW

aitT

ime

CSta

t

Sta

tsSoj

ourn

Tim

eSta

tsSoj

ourn

Tim

e CSta

t

Sta

tsPr

ocTi

me

Sta

tsPr

ocTi

me

CSta

t

Sta

tsQ

ueu

eTim

eSta

tsQ

ueu

eTim

eCSta

t

PDef

Loop

Com

ple

ted

f377e8

48-5

2e1

-4821-9

168-c

813e5

917711Com

ple

ted

CTo

ken

PDef

Loop

Withdra

wn

f377e8

48-5

2e1

-4821-9

168-c

813e5

917711W

ithdra

wn

CTo

ken

PDef

Loop

Sta

rted

f377e8

48-5

2e1

-4821-9

168-c

813e5

917711Sta

rted

CTo

ken

PDef

Loop

Sch

edule

df3

77e8

48-5

2e1

-4821-9

168-c

813e5

917711Sch

edule

dCTo

ken

f377e8

48-5

2e1

-4821-9

168-c

813e5

917711Sch

edule

df3

77e8

48-5

2e1

-4821-9

168-c

813e5

917711Sta

rted

f377e8

48-5

2e1

-4821-9

168-c

813e5

917711W

ithdra

wn

f377e8

48-5

2e1

-4821-9

168-c

813e5

917711Com

ple

ted

Sta

tsQ

ueu

eTim

e

Sta

tsPr

ocTi

me

Sta

tsSoj

ourn

Tim

e

Sta

tsW

aitT

ime

0ef

b83fb

-217b-4

e6a-

9ac

0-2

9557c2

b77deS

ched

ule

d

0ef

b83fb

-217b-4

e6a-

9ac

0-2

9557c2

b77deS

tart

ed0ef

b83fb

-217b-4

e6a-

9ac

0-2

9557c2

b77deW

ithdra

wn

0ef

b83fb

-217b-4

e6a-

9ac

0-2

9557c2

b77deC

omple

ted

c981f8

37-b

bd8-4

e43-8

164-e

bf9

912df8

78Sch

edule

d

c981f8

37-b

bd8-4

e43-8

164-e

bf9

912df8

78Sta

rted

c981f8

37-b

bd8-4

e43-8

164-e

bf9

912df8

78W

ithdra

wn

c981f8

37-b

bd8-4

e43-8

164-e

bf9

912df8

78Com

ple

ted

9f5

d6b86-6

e94-4

1e0

-84b7-5

61e4

2c7

def

2Sch

edule

d

9f5

d6b86-6

e94-4

1e0

-84b7-5

61e4

2c7

def

2Sta

rted

9f5

d6b86-6

e94-4

1e0

-84b7-5

61e4

2c7

def

2W

ithdra

wn

9f5

d6b86-6

e94-4

1e0

-84b7-5

61e4

2c7

def

2Com

ple

ted

f377e8

48-5

2e1

-4821-9

168-c

813e5

917711In

itia

lise

f377e8

48-5

2e1

-4821-9

168-c

813e5

917711In

itia

lised

f377e8

48-5

2e1

-4821-9

168-c

813e5

917711Fi

nal

ise

f377e8

48-5

2e1

-4821-9

168-c

813e5

917711Fi

nal

ised

0ef

b83fb

-217b-4

e6a-

9ac

0-2

9557c2

b77deS

ched

ule

Out

0ef

b83fb

-217b-4

e6a-

9ac

0-2

9557c2

b77deS

ched

ule

In

c981f8

37-b

bd8-4

e43-8

164-e

bf9

912df8

78Sch

edule

Out

c981f8

37-b

bd8-4

e43-8

164-e

bf9

912df8

78Sch

edule

In

9f5

d6b86-6

e94-4

1e0

-84b7-5

61e4

2c7

def

2Sch

edule

Out

9f5

d6b86-6

e94-4

1e0

-84b7-5

61e4

2c7

def

2Sch

edule

Inif g

etSta

tus(

toke

n2)

then

1`(g

etCas

eId(t

oken

2),

"D

efLo

op_f3

77e8

48-5

2e1

-4821-9

168-c

813e5

917711",

get

Soj

ourn

Tim

e(to

ken2)

- get

Soj

ourn

Tim

e(to

ken))

els

e nil

Fig. 37: loopdef operator encoding.

73

Page 74: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

(cas

eId,

rv0)

P_H

IGH

ER

1`[(

"9",

"0",

0.2

5),

("0

", "

1",

0.2

5),

("

1",

"2",

0.2

5),

("4

", "

5",

0.2

5),

("

7",

"8",

0.2

5),

("6

", "

7",

0.2

5),

("

5",

"6",

0.2

5),

("8

", "

9",

0.2

5),

("

3",

"4",

0.2

5),

("2

", "

3",

0.2

5)]

Val

ueM

atrix

1`[]

CLC

Id

CVar

iable

CVar

iable

Val

ue

CVar

iable

Pgiv

enId

sgiv

enId

sgiv

enId

s

P_H

IGH

ER

not

(inLi

st(c

aseI

d,

lIds)

)

PMat

rix

PLas

tRev

isio

nv1

Last

v1La

st

Tinitia

lise

Tfin

alis

e

Pv1

v1v1

Tupdat

e

(cas

eId,

rvar

)

(cas

eId,

rvar

)

(cas

eId,

0)

(cas

eId,

1)

(cas

eId,

1)

(cas

eId,

rvar

x)

(cas

eId,

rvar

)

Pv1Val

ue

v1Val

ue

v1Val

ue

valu

eMat

rix

valu

eMat

rix

rvar

<>

rva

rx

P_H

IGH

ER

(cas

eId,

nex

tVal

ue(

valu

e, v

alueM

atrix,

val

ueM

atrix)

)

(cas

eId,

"0")

(cas

eId,

valu

e)

(cas

eId,

valu

e)

lIds

lIds

Fig. 38: Variable encoding.

74

Page 75: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

P_H

IGH

ER

CExp

r

CVar

iable

Val

ue

CVar

iable

Val

ue

CVar

iable

Val

ue

Pv2

v2Val

ue

v2Val

ue

(cas

eId,

vv1)

Pv1

v1Val

ue

v1Val

ue

(cas

eId,

vv2)

(cas

eId,

vv2)

(cas

eId,

vv3)

(cas

eId,

vv3)

(cas

eId,

vv1)

TUpdat

eExp

r1

bx

<>

(((

vv1 =

"0")

ore

lse

(vv2

= "

1")

) an

dal

so (

vv3 =

"4")

)

PExp

r1f8

b07c1

e-b8b9-4

deb

-a4d8-a

e0fc

83d2243

f8b07c1

e-b8b9-4

deb

-a4d8-a

e0fc

83d2243

(cas

eId,

rs,

(((v

v1 =

"0")

ore

lse

(vv2

= "

1")

) an

dal

so (

vv3 =

"4")

))

(cas

eId,

rs,b

x)

Pv3

v3Val

ue

v3Val

ue

Fig. 39: Expression encoding

75

Page 76: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

()()()

()

addO

rigin

ator

(updat

eOrigin

ator

(org

, tim

e())

, cL

Origin

ator

)cL

Origin

ator

org P_H

IGH

ER

P_H

IGH

ER

UnitT

UnitT

CO

rigin

ator

CLO

rigin

ator

TUnav

aila

ble

TAva

ilable@+

+get

Del

ay(o

rg)

POth

erw

iseE

ngag

edPO

rigin

ator

sO

rigin

ator

sO

rigin

ator

s

3`("

Rol

e1",

(0,

[0.2

0833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "R

ole1

"),

("Rol

e",

"Rol

e1")

, ("

Gro

up",

"")

]) +

+

3`("

Rol

e0",

(0,

[0.2

0833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "R

ole0

"),

("Rol

e",

"Rol

e0")

, ("

Gro

up",

"")

]) +

+

3`("

Eric"

, (0

, [0

.20833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "E

ric"

), (

"Rol

e",

""),

("G

roup",

"")

]) +

+

5`("

Den

nis

", (

0,

[0.2

0833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "D

ennis

"),

("Rol

e",

""),

("G

roup",

"")

])

PNex

tUnav

ail

PNex

tAva

il

updat

eOrigin

ator

((#

1(r

emov

eOrigin

ator

(cLO

rigin

ator

))),

tim

e())

cLO

rigin

ator

#2(r

emov

eOrigin

ator

(cLO

rigin

ator

))

@+

+get

Del

ay(#

1(r

emov

eOrigin

ator

(cLO

rigin

ator

)))

rem

ovab

leO

rigin

ator

(cLO

rigin

ator

)

addab

leO

rigin

ator

([or

g])

3`()

@0.2

0833333333333334 +

+

3`()

@0.2

0833333333333334 +

+

3`()

@0.2

0833333333333334 +

+

5`()

@0.2

0833333333333334

Fig. 40: The work schedule for the different originators.

76

Page 77: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

mat

chin

g(c

Wor

kIte

ms,

cLO

rigin

ator

, cM

atch

ing)

P_H

IGH

1`[]

CM

atch

ing

CLO

rigin

ator

1`[]

CW

orkI

tem

s

PWor

kIte

ms

Wor

kIte

ms

Wor

kIte

ms

POrigin

ator

sO

rigin

ator

sO

rigin

ator

s

TMat

chM

aker

PMat

ches

Mat

chin

gM

atch

ing

mat

chab

le(c

Wor

kIte

ms,

cLO

rigin

ator

)

cLO

rigin

ator

updat

eOrigin

ator

sMat

chin

g(c

LOrigin

ator

, m

atch

ing(c

Wor

kIte

ms,

cLO

rigin

ator

, cM

atch

ing))

updat

eWor

kIte

msM

atch

ing(c

Wor

kIte

ms,

mat

chin

g(c

Wor

kIte

ms,

cLO

rigin

ator

, cM

atch

ing))

cWor

kIte

ms

cMat

chin

g

3`("

Rol

e1",

(0,

[0.2

0833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "R

ole1

"),

("Rol

e",

"Rol

e1")

, ("

Gro

up",

"")

]) +

+

3`("

Rol

e0",

(0,

[0.2

0833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "R

ole0

"),

("Rol

e",

"Rol

e0")

, ("

Gro

up",

"")

]) +

+

3`("

Eric"

, (0

, [0

.20833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "E

ric"

), (

"Rol

e",

""),

("G

roup",

"")

]) +

+

5`("

Den

nis

", (

0,

[0.2

0833333333333334,

0.0

8333333333333333,

0.2

916666666666667,

0.2

5],

0.0

), [

("O

rgN

ame"

, "D

ennis

"),

("Rol

e",

""),

("G

roup",

"")

])

Fig. 41: The core controller responsible for the allocation of work items to origi-nators.

77

Page 78: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

toke

nto

kento

ken

toke

n

(get

Cas

eId(t

oken

), 0

)

(get

Cas

eId(t

oken

), (

nil)

, tr

ue)

(get

Cas

eId(t

oken

), (

0::

0::

nil)

, tr

ue)

(get

Cas

eId(t

oken

), (

0::

0::

0::

nil)

, tr

ue)

P_H

IGH

P_H

IGH

P_H

IGH

P_H

IGH

P_H

IGH

P_H

IGH

@+

+dura

tion

P_LO

WCTo

ken

CTo

ken

1`[]

CLC

Id

CTo

ken

CVar

iable

CExp

r

CVar

iable

CVar

iable

CExp

r

CExp

r

TTok

enG

ener

ator

PExp

r2d885f1

37-f

3fc

-443e-

8011-7

3af

31f6

8406

d885f1

37-f

3fc

-443e-

8011-7

3af

31f6

8406

PTok

en

1`(1

, 0.0

, tr

ue,

0.0

, (0

.0,

0.0

, 0.0

, 0.0

))

updTi

mes

tam

p(n

extC

aseI

d(t

oken

), t

ime(

))to

ken

TTok

enD

egen

erat

orEExp

r2

PCas

eEnd

Cas

eEnd

Cas

eEnd

PExp

r1f8

b07c1

e-b8b9-4

deb

-a4d8-a

e0fc

83d2243

f8b07c1

e-b8b9-4

deb

-a4d8-a

e0fc

83d2243

Pv2

v2v2

Pv1

v1v1

TTok

enD

egen

erat

orEv2

TTok

enD

egen

erat

orEv1

TTok

enD

egen

erat

orE

PNoE

xpre

ssio

nN

oExp

ress

ion

NoE

xpre

ssio

n

Pv3

v3v3TT

oken

Deg

ener

ator

Ev3

TTok

enD

egen

erat

orPg

iven

Ids

giv

enId

sgiv

enId

sPC

aseS

tart

Cas

eSta

rtCas

eSta

rt

(get

Cas

eId(t

oken

), 0

)

(get

Cas

eId(t

oken

), 0

)to

ken to

ken

(cas

eId,

rv2)

TTok

enD

egen

erat

orEExp

r1(c

aseI

d,

rsExp

r1,

bExp

r1)

toke

n

toke

n toke

n

toke

n

toke

n

toke

n

toke

n

updTi

mes

tam

p(t

oken

, tim

e()

+ d

ura

tion

)

input

();o

utp

ut

(dura

tion

);ac

tion

(0.0

00000011574074074074076 *

0.0

+ 1

.0 *

0.0

00000011574074074074076 *

exp

onen

tial

(5.0

));

rem

oveC

aseI

d(g

etCas

eId(t

oken

), lId

s)

lIds

get

Cas

eId(t

oken

)::l

Ids

lIds

case

Id =

get

Cas

eId(t

oken

)

case

Id =

get

Cas

eId(t

oken

)

(cas

eId,

rsExp

r2,

bExp

r2)

case

Id =

get

Cas

eId(t

oken

)

(cas

eId,

rs,

b)

case

Id =

get

Cas

eId(t

oken

)

(cas

eId,

rv1)

case

Id =

get

Cas

eId(t

oken

)

case

Id =

get

Cas

eId(t

oken

)

(cas

eId,

rv3)

Fig. 42: The arrival controller responsible for the arrival process of cases.

78

Page 79: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

B CPN Types and Functions

Here we have listed all of the CPN Types and CPN Functions present in thetransformation from a Process Tree to a CPN model. Note that not all functionsare currently used but are present due to historical reasons.

B.1 CPN types

In CPN Tools, we have the following colsets:

79

Page 80: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Type name Type specification

CTime realCTimes list CTime

CDuration realCId int

CDpe boolCSojourn real

CProcessing realCQueue real

CWait realCPerformance product CSojourn * CProcessing * CQueue * CWait

CToken product CId * CTime * CDpe * CDuration * CPerformance timedCTokens list CToken

CLabel stringCStat product CId * CLabel * CTime

CRevision intCRevisions list CRevisionCVariable product CId * CRevision

CExpr product CId * CRevisions * BOOLCLCId list CId

Key stringValue string

CVariableValue product CId * ValueProperty product Key * Value

Attributes list PropertyAvail list REAL

Schedule product INT * Avail * CTimeCOriginator product STRING * Schedule * Attributes

COriginatorCId product CId * COriginatorCWorkItem product CToken * Attributes

CWorkItems list CWorkItemCLOriginator list COriginator

CMatch product CWorkItem * COriginatorCMatching list CMatch

ValueVector product Value * Value * REALValueMatrix list ValueVector

CLCIds list CIdDomCod product REAL * REALYerkesD list DomCod

UnitT unit timed

Table 6: The colsets used

80

Page 81: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

B.2 CPN Functions

Constants We have the following constants for determining the priority of atransition:

va l P LOW=10000;va l P HIGH=100;va l P HIGHER=10;

max The max function gives the maximum of a list of time values.

fun max ( ni l : CTimes ) = 0 .0 | max ( head : : t a i l ) = i f head >max( t a i l ) then head else max( t a i l ) ;

getCaseId Gives the case identifier of a token.

fun getCaseId ( token : CToken) = #1 token ;

getTimestamp Gives the timestamp of a token.

fun getTimestamp ( token : CToken) = #2 token ;

getStatus Gives the status of a token.

fun getStatus ( token : CToken) = #3 token ;

getDuration Gives the duration of a token, this duration is used in tasks.

fun getDurat ion ( token : CToken) = #4 token ;

updTimestamp Updates the timestamp of a token.

fun updTimestamp ( token : CToken , timestamp : CTime) = (#1token , timestamp , #3 token , #4 token , #5 token ) ;

updStatus Updates the status of a token.

fun updStatus ( token : CToken , s t a t u s : CDpe) = (#1 token , #2token , s tatus , #4 token , #5 token ) ;

updTimestampStatus Updates the timestamp and status of a token.

fun updTimestampStatus ( token : CToken , timestamp : CTime ,s t a t u s : CDpe) = (#1 token , timestamp , s tatus , #4 token ,#5 token ) ;

81

Page 82: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

updDuration Updates the duration of a token.

fun updDuration ( token : CToken , durat ion : CDuration ) = (#1token , #2 token , #3 token , durat ion , #5 token ) ;

match Checks whether a list of tokens all have the same identifier.

fun match ( ni l : CTokens ) = true | match ( token : : ni l ) =true | match ( token1 : : token2 : : tokens ) = ( getCaseId (token1 ) = getCaseId ( token2 ) ) andalso match ( token2 : :tokens ) ;

write This function is used to write the performance statistics to a file.

fun wr i t e ( ( cId , l abe l , cTime ) : : cStat ) = Int . t oS t r i ng (cId ) ˆ” , ” ˆ l a b e l ˆ” , ” ˆ ModelTime . t oS t r i ng ( cTime ) ˆ

”\n” ˆ wr i t e ( cStat ) | wr i t e ( ni l ) = ”” ;

probability Gives a probability from a bernoulli experiment given a probability.

fun p r o b a b i l i t y (p : r e a l ) = i f b e r n o u l l i (p ) = 1 then trueelse fa l se ;

getSojournTime Gives the sojourn time of a token.

fun getSojournTime ( token : CToken) = #1 (#5 token ) ;

getProcessingTime Gives the processing time of a token.

fun getProcess ingTime ( token : CToken) = #2 (#5 token ) ;

getQueueTime Gives the queue time of a token.

fun getQueueTime ( token : CToken) = #3 (#5 token ) ;

getWaitTime Gives the wait time of a token.

fun getWaitTime ( token : CToken) = #4 (#5 token ) ;

setSojournTime Sets the sojourn time of a token.

fun setSojournTime ( token : CToken , timestamp : CTime) = (#1token , #2 token , #3 token , #4 token , ( timestamp ,

#2(#5 token ) , #3(#5 token ) , #4(#5 token ) ) ) ;

82

Page 83: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

setProcessingTime Sets the processing time of a token.

fun setProcess ingTime ( token : CToken , timestamp : CTime) =(#1 token , #2 token , #3 token , #4 token , (#1(#5 token ), timestamp , #3(#5 token ) , #4(#5 token ) ) ) ;

setQueueTime Sets the queue time of a token.

fun setQueueTime ( token : CToken , timestamp : CTime) = (#1token , #2 token , #3 token , #4 token , (#1(#5 token ) ,#2(#5 token ) , timestamp , #4(#5 token ) ) ) ;

setWaitTime Sets the wait time of a token.

fun setWaitTime ( token : CToken , timestamp : CTime) = (#1token , #2 token , #3 token , #4 token , (#1(#5 token ) ,#2(#5 token ) , #3(#5 token ) , timestamp ) ) ;

setStatsTime Sets the sojourn, processing, queue, and wait time of a token.

fun setStatsTime ( token : CToken , timestampSojourn : CTime ,t imestampProcess ing : CTime , timestampQueue : CTime ,timestampWait : CTime) = (#1 token , #2 token , #3 token ,#4 token , ( timestampSojourn , t imestampProcess ing ,

timestampQueue , timestampWait ) ) ;

getSojournTimeMax This function gets the maximal sojourn time in a set oftokens. We use an offset to be able to compensate for sojourn time already storedin the token but not relevant for this particular computation. For instance, whena part of the process model has already been executed, then the sojourn time isx, when we execute a subprocess then the sojourn time becomes x+ y. In orderto know the sojourn time for the subprocess, we subtract the offset (in this casex) if it is a true token.

fun getSojournTimeMax ( ni l : CTokens , o f f s e t : CTime) = Real. neg In f | getSojournTimeMax ( token : : tokens : CTokens ,o f f s e t : CTime) = i f ( ge tStatus ( token ) ) then Real . max(getSojournTime ( token ) − o f f s e t , getSojournTimeMax (tokens , o f f s e t ) ) else getSojournTimeMax ( tokens , o f f s e t) ;

getSojournTimeMin Similar to getSojournTimeMax but now yields the minimalsojourn time for a set of tokens.

83

Page 84: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

fun getSojournTimeMin ( ni l : CTokens , o f f s e t : CTime) = Real. po s In f | getSojournTimeMin ( token : : tokens : CTokens ,o f f s e t : CTime) = i f ( ge tStatus ( token ) ) then Real . min (getSojournTime ( token ) − o f f s e t , getSojournTimeMin (tokens , o f f s e t ) ) else getSojournTimeMin ( tokens , o f f s e t) ;

getWaitTimeMax The getWaitTimeMax function computes the wait time at asynchronisation (and, or or). In order to be able to compute the wait time, weneed to know the sojourn time of the of the entire subprocess. The differencebetween the sojourn time of the entire subprocess and the sojourn time of aparticular child is the wait time. Note that, we included again the offset tocompensate for sojourn time from a different subprocess.

fun getWaitTimeMax ( ni l : CTokens , sojournTime : CTime ,o f f s e t : CTime) = 0 .0 | getWaitTimeMax ( token : : tokens :CTokens , sojournTime : CTime , o f f s e t : CTime) = i f (ge tStatus ( token ) ) then Real . max( sojournTime −getSojournTime ( token ) − o f f s e t , getWaitTimeMax ( tokens ,

sojournTime , o f f s e t ) ) else getWaitTimeMax ( tokens ,sojournTime , o f f s e t ) ;

getProcessingTimeSum The getProcessingTimeSum computes the sum of theprocessing times of a list of tokens. The offset given to the function is removedfrom each of the processing times recorded by each of the tokens.

fun getProcessingTimeSum ( ni l : CTokens , o f f s e t : CTime) =0 .0 | getProcessingTimeSum ( token : : tokens : CTokens ,o f f s e t : CTime) = i f ( ge tStatus ( token ) ) then (getProcess ingTime ( token ) + getProcessingTimeSum ( tokens, o f f s e t ) − o f f s e t ) else getProcessingTimeSum ( tokens ,o f f s e t ) ;

getQueueTimeSum This function is similar to the getProcessingTimeSum apartfrom the fact it works with the queue time of this subprocess.

fun getQueueTimeSum ( ni l : CTokens , o f f s e t : CTime) = 0 .0 |getQueueTimeSum ( token : : tokens : CTokens , o f f s e t : CTime)= i f ( ge tStatus ( token ) ) then ( getQueueTime ( token ) +

getQueueTimeSum ( tokens , o f f s e t ) − o f f s e t ) elsegetQueueTimeSum ( tokens , o f f s e t ) ;

getWaitTimeSum Similar to the getQueueTimeSum but now on the wait time.

84

Page 85: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

fun getWaitTimeSum ( ni l : CTokens , o f f s e t : CTime) = 0 .0 |getWaitTimeSum ( token : : tokens : CTokens , o f f s e t : CTime)= i f ( ge tStatus ( token ) ) then ( getWaitTime ( token ) +getWaitTimeSum ( tokens , o f f s e t ) − o f f s e t ) elsegetWaitTimeSum ( tokens , o f f s e t ) ;

nextCaseId Creates a new token based on a given token, but increments the caseidentifier by one.

fun nextCaseId ( token : CToken) = (#1( token ) + 1 , #2 token ,#3 token , #4 token , #5 token ) ;

getProperty Gives the value for a given key. Note that, keys and values arestrings.

fun getProperty (k , ni l ) = ”” | getProperty (k , ( key , va lue) : : xs ) = i f ( k = key ) then value else getProperty (k , xs) ;

addWorkItem Adds a work item to a list of work items, note that this functioncomes in different flavours dependent on the queueing principle selected. Thefunctions are for FiFo, LiFo, SiRo. Note that, for the SiRo encoding, we includea function to insert the new work item in a random place in the list of workitems.

fun addWorkItem ( token : CWorkItem , xs : CWorkItems ) = rev (token : : rev ( xs ) ) ;

fun addWorkItem ( token : CWorkItem , xs : CWorkItems ) = token: : xs ;

fun addWorkItemN( token : CWorkItem , nil , ) = [ token ] |addWorkItemN( token : CWorkItem , x : : xs : CWorkItems , r :r e a l ) = i f ( r < 1 . 0 ) then token : : x : : xs else x : :addWorkItemN( token , xs , r − 1 . 0 ) ;

fun addWorkItem ( token : CWorkItem , xs : CWorkItems ) =addWorkItemN( token , xs , uniform ( 0 . 0 , Real . f romInt ( L i s t. l ength ( xs ) ) ) ) ;

removeMatching Removes a matching from the list of matching given a workitem.

fun removeMatching ( token : CWorkItem , ( a , b ) : : xs :CMatching ) = i f ( a = token ) then xs else ( a , b ) : :removeMatching ( token , xs ) | removeMatching ( token :CWorkItem , ni l : CMatching ) = [ ] ;

85

Page 86: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

inMatching Determines if a work item is present in the list of matchings.

fun inMatching (w: CWorkItem , ni l ) = fa l se | inMatching (w:CWorkItem , (w’ , r ) : :M: CMatching ) = i f (w = w’ ) then

true else inMatching (w, M) ;

getMatching Gives the matching belonging to a work item.

fun getMatching (w: CWorkItem , (w’ , r ) : :M: CMatching ) = i f (w = w’ ) then (w’ , r ) else getMatching (w, M) ;

addOriginator Adds an originator to the list of originators. This function is usedwhen a task has completed, i.e., there are no originators created.

fun addOrig inator ( org , xs ) = rev ( org : : rev ( xs ) ) ;

getLengthSchedule A function to determine the length of the schedule for anoriginator. This function was used for bounding the index such that it stayswithin the boundaries of the schedule.

fun getLengthSchedule ( org : COrig inator ) = L i s t . nth(#2 (#2org ) , (#1 (#2 org ) ) ) ;

removeElement Generic function to remove an element from a list of elements.

fun removeElement ( a , ni l ) = ni l | removeElement ( a , b : : xs )= i f ( a = b) then xs else b : : removeElement ( a , xs ) ;

isRemovableOriginator This function determines for an originator if it can beremoved (or added) to the process. First a check is done whether the schedule ofan originator is empty, if this is the case, then the originator is always availableto the process. If the schedule is not empty, then we check if the time from theprevious change is larger than the time specified for this state. On the left handside of the >=, we compute the time an originator has been (un)available to theprocess. The right hand side of the >= computes the time we are supposed tobe (un)available to the process.

fun i sRemovableOrig inator ( a : COrig inator ) = i f (#2 (#2 a )= [ ] ) then fa l se else i f ( ( time ( ) − (#3(#2 a ) ) ) >= L i s t. nth(#2 (#2 a ) , (#1 (#2 a ) ) ) ) then true else fa l se ;

hasRemovableOriginator This function determines for a list of originators if thereis an originator which can be made (un)available to the process.

fun hasRemovableOriginator ( ni l : CLOriginator ) = fa l se |hasRemovableOriginator ( a : : xs : CLOriginator ) = i f (i sRemovableOrig inator ( a ) ) then true elsehasRemovableOriginator ( xs ) ;

86

Page 87: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

getRemovableOriginator This function returns the removable originator form alist of originators. Note that, we use a default option, but this function may onlybe called if hasRemovableOriginator evaluates to true.

fun getRemovableOriginator ( ni l : CLOriginator ) = (”” , (0 ,[ ] , 0 . 0 ) , [ ] ) | getRemovableOriginator ( a : : xs :CLOriginator ) = i f ( i sRemovableOrig inator ( a ) ) then aelse getRemovableOrig inator ( xs ) ;

removeOriginator The first removable originator is removed from a list of origi-nators, and returned in a tuple. If we have a list of originators xs and a removableoriginator o, then (o, xs′, true) is returned where xs′ is the list of originators xswithout o, and true signals success of the operation.

fun removeOrig inator ( ni l : CLOriginator ) = ( (”” , (0 , [ ] ,0 . 0 ) , [ ] ) , nil , fa l se ) | removeOrig inator ( xs :CLOriginator ) = i f ( hasRemovableOriginator ( xs ) ) then (getRemovableOrig inator ( xs ) , removeElement (getRemovableOrig inator ( xs ) , xs ) , true ) else ( ( ”” , (0 ,[ ] , 0 . 0 ) , [ ] ) , nil , fa l se ) ;

removableOriginator This functions checks if there is a removable originator.

fun removableOr ig inator ( xs : CLOriginator ) = #3(removeOrig inator ( xs ) ) ;

updateOriginator The updateOriginator function, updates the schedule of anoriginator. The (((#1(#2 org)) + 1) mod (length (#2(#2 org)))) determinesthe next index in the schedule. First the current index is requested, this is incre-mented by 1, and afterwards this value is done modulo the length of the entireschedule. Furthermore, the time is updated indicating the last change.

fun updateOr ig inator ( org : COriginator , time : CTime) =((#1 org ) , ((((#1(#2 org ) ) + 1) mod ( l ength (#2(#2 org) ) ) ) , (#2 (#2 org ) ) , time ) , (#3 org ) ) ;

addableOriginator Similar to removableOriginator.

fun addab leOr ig inator ( xs ) = removableOr ig inator ( xs ) ;

determineDurationUnrolled This is the unrolling of possible allocations of orig-inators to activities. The function takes 3 arguments, the name of the activity(”C” for the first line), the name of the originator (”Role0” for the first line),and the list of work items. Based on this, the duration is determined usingYerkes-Dodson, i.e., for different intervals for waiting work items different du-rations are possible. The duration comprises of: (a) a time granularity factor

87

Page 88: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

(0.0000002777777777777778 in the first line) to transform all the values to thesame time granularity, (b) a translation factor of the distribution (0.0 in the firstline), (c) a scaling factor (1.0 in the first line), and (d) the actual distribution(normal(4.0, 1.0) in the first line).

fun determineDurat ionUnrol led (”C” , ” Role0 ” , xs ) = i f (50<= length ( xs ) andalso l ength ( xs ) < 70) then0.0000002777777777777778 ∗ 0 .0 + 1 .0 ∗0.0000002777777777777778 ∗ normal ( 4 . 0 , 1 . 0 ) else i f (10<= length ( xs ) andalso l ength ( xs ) < 20) then

0.0000002777777777777778 ∗ 0 .0 + 1 .0 ∗0.0000002777777777777778 ∗ normal ( 4 . 0 , 1 . 0 ) else i f (20<= length ( xs ) andalso l ength ( xs ) < 50) then

0.0000002777777777777778 ∗ 0 .0 + 1 .0 ∗0.0000002777777777777778 ∗ normal ( 2 . 0 , 1 . 0 ) else i f (0<= length ( xs ) andalso l ength ( xs ) < 10) then0.0000002777777777777778 ∗ 0 .0 + 1 .0 ∗0.0000002777777777777778 ∗ normal ( 5 . 0 , 1 . 0 ) else 0 . 0 |

determineDurat ionUnrol led (”A” , ”Dennis ” , xs ) = i f (50 <=length ( xs ) andalso l ength ( xs ) < 70) then0.0000002777777777777778 ∗ 0 .0 + 1 .0 ∗0.0000002777777777777778 ∗ normal ( 4 . 0 , 1 . 0 ) else i f (10<= length ( xs ) andalso l ength ( xs ) < 20) then

0.0000002777777777777778 ∗ 0 .0 + 1 .0 ∗0.0000002777777777777778 ∗ normal ( 4 . 0 , 1 . 0 ) else i f (20<= length ( xs ) andalso l ength ( xs ) < 50) then

0.0000002777777777777778 ∗ 0 .0 + 1 .0 ∗0.0000002777777777777778 ∗ normal ( 2 . 0 , 1 . 0 ) else i f (0<= length ( xs ) andalso l ength ( xs ) < 10) then0.0000002777777777777778 ∗ 0 .0 + 1 .0 ∗0.0000002777777777777778 ∗ normal ( 5 . 0 , 1 . 0 ) else 0 . 0 |

determineDurat ionUnrol led (”B” , ” Role0 ” , xs ) = i f (50 <=length ( xs ) andalso l ength ( xs ) < 70) then0.0000002777777777777778 ∗ 0 .0 + 1 .0 ∗0.0000002777777777777778 ∗ normal ( 4 . 0 , 1 . 0 ) else i f (10<= length ( xs ) andalso l ength ( xs ) < 20) then

0.0000002777777777777778 ∗ 0 .0 + 1 .0 ∗0.0000002777777777777778 ∗ normal ( 4 . 0 , 1 . 0 ) else i f (20<= length ( xs ) andalso l ength ( xs ) < 50) then

0.0000002777777777777778 ∗ 0 .0 + 1 .0 ∗0.0000002777777777777778 ∗ normal ( 2 . 0 , 1 . 0 ) else i f (0<= length ( xs ) andalso l ength ( xs ) < 10) then0.0000002777777777777778 ∗ 0 .0 + 1 .0 ∗0.0000002777777777777778 ∗ normal ( 5 . 0 , 1 . 0 ) else 0 . 0 |

determineDurat ionUnrol led ( , , ) = 0 . 0 ;

88

Page 89: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

determineDuration Determines the duration for a work item, an originators, anda list of work items waiting.

fun determineDurat ion (w: CWorkItem , r : COriginator , xs :CWorkItems ) = determineDurat ionUnrol led ( getProperty (”ActName” , (#2 w) ) , getProperty (”OrgName” , (#3 r ) ) , xs );

nextValue Is used to determine the next value for a variable. The function takesthe current value, and the ValueMatrix encoding the Markov chain for the valuesof a variable.

fun nextValue ( value , nil , xs : ValueMatrix ) = nextValue (value , xs , xs ) | nextValue ( value , ( oldValue , newValue ,p) : : valueMatr ix : ValueMatrix , xs : ValueMatrix ) = i f (

va lue = oldValue andalso b e r n o u l l i (p ) = 1) thennewValue else nextValue ( value , valueMatrix , xs ) ;

removeCaseId Removes the given case identifier from a list of case identifiers.

fun removeCaseId ( a , b : : xs ) = i f ( a = b) then xs else b : :removeCaseId ( a , xs ) ;

inList Returns whether an element is present in a list.

fun i n L i s t ( a , ni l ) = fa l se | i n L i s t ( a , b : : xs ) = i f ( a = b)then true else i n L i s t ( a , xs ) ;

getLikeFactorUnrolled Similar to the determineDurationUnrolled, we take anactivity, and an originator and if this originator may execute this activity, wereturn 1.0 else we return 0.0.

fun getL ikeFactorUnro l l ed (”C” , ” Role0 ”) = 1 . 0 |getL ikeFactorUnro l l ed (”A” , ”Dennis ”) = 1 . 0 |getL ikeFactorUnro l l ed (”B” , ” Role0 ”) = 1 . 0 |getL ikeFactorUnro l l ed ( , ) = 0 . 0 ;

getLikeFactor Gets the relevant values from the attributes of an originator anda work item, and computes the like factor with them.

fun getL ikeFactor (propW : Attr ibutes , propR : At t r ibute s ) =getL ikeFactorUnro l l ed ( getProperty (”ActName” , propW) ,

getProperty (”OrgName” , propR ) ) ;

89

Page 90: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

LikeFactor The LikeFactor gets the attributes from a work item and an origi-nator, and computes the like factor on that.

fun LikeFactor ( ( , propertiesW ) : CWorkItem , ( , ,p roper t i e sR ) : COrig inator ) = getL ikeFactor ( propertiesW, proper t i e sR ) ;

maxLikeFactorUnrolled The maxLikeFactorUnrolled comes in two flavoursbased on push or pull allocation. The general idea is to compute the maximallike factor for between a list of work items and originators. If push allocation isdesired, we take a work item and go through all the originators and find the mostsuitable one. After going through all the originators, if a suitable originator isfound then we return this, else the next work item is checked. For pull allocation,we take an originator and go through the work items.

fun maxLikeFactorUnrol led ( nil , , , d ) = d |maxLikeFactorUnrol led (w : : ws : CWorkItems , nil , R, d) =i f (d <> 0 . 0 ) then d else maxLikeFactorUnrol led (ws , R,R, d) | maxLikeFactorUnrol led (w : : ws : CWorkItems , r : : r s: CLOriginator , R: CLOriginator , d : r e a l ) =maxLikeFactorUnrol led (w : : ws , rs , R, Real . max(d ,LikeFactor (w, r ) ) ) ;

fun maxLikeFactorUnrol led ( , nil , , d ) = d |maxLikeFactorUnrol led ( nil , r : : R: CLOriginator , W:CWorkItems , d) = i f (d <> 0 . 0 ) then d elsemaxLikeFactorUnrol led (W, R, W, d) |maxLikeFactorUnrol led (w : : ws : CWorkItems , r : : r s :CLOriginator , W: CWorkItems , d : r e a l ) =maxLikeFactorUnrol led (ws , r : : rs , W, Real . max(d ,LikeFactor (w, r ) ) ) ;

maxLikeFactor The maxLikeFactor is a wrapper for the maxLikeFactorUnrolled,i.e., it duplicates the list of originators in case of push allocation, and duplicatesthe list of work items in case of pull allocation.

fun maxLikeFactor ( , ni l ) = 0 .0 | maxLikeFactor ( nil , ) =0 .0 | maxLikeFactor (W: CWorkItems , R: CLOriginator ) =maxLikeFactorUnrol led (W, R, R, 0 . 0 ) ;

fun maxLikeFactor ( , ni l ) = 0 .0 | maxLikeFactor ( nil , ) =0 .0 | maxLikeFactor (W: CWorkItems , R: CLOriginator ) =maxLikeFactorUnrol led (W, R, W, 0 . 0 ) ;

90

Page 91: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

matchingPush This functions follows directly from the formalisation in Def. 54.

fun matchingPush ( nil , nil , M: CMatching , R’ : CLOriginator )= M |

matchingPush ( nil , r : : R: CLOriginator , M: CMatching , R’ :CLOriginator ) = M |

matchingPush (w : :W: CWorkItems , nil , M: CMatching , R’ :CLOriginator ) = matchingPush (W, R’ , M, R’ ) |

matchingPush (w : :W: CWorkItems , r : : R: CLOriginator , M:CMatching , R’ : CLOriginator ) = i f ( LikeFactor (w, r ) =maxLikeFactor (w : :W, r : : R) ) then (w, r ) : :M elsematchingPush (w : :W, R, M, R’ ) ;

matchingPull This functions follows directly from the formalisation in Def. 55.

fun matchingPull ( nil , nil , M: CMatching , W’ : CWorkItems ) =M |

matchingPull (w : :W: CWorkItems , nil , M: CMatching , W’ :CWorkItems ) = M |

matchingPull ( nil , r : : R: CLOriginator , M: CMatching , W’ :CWorkItems ) = matchingPull (W’ , R, M, W’ ) |

matchingPull (w : :W: CWorkItems , r : : R: CLOriginator , M:CMatching , W’ : CWorkItems ) = i f ( LikeFactor (w, r ) =maxLikeFactor (w : :W, r : : R) ) then (w, r ) : :M elsematchingPull (W, r : : R, M, W’ ) ;

matching The matching function is an abstraction such that the core controllercan be oblivious to the chosen allocation strategy. The first function is used incase of push allocation, the second in case of pull allocation.

fun matching (W: CWorkItems , R: CLOriginator , M: CMatching )= matchingPush (W, R, M, R) ;

fun matching (W: CWorkItems , R: CLOriginator , M: CMatching )= matchingPull (W, R, M, W) ;

updateWorkItemsMatching The updateWorkItemMatching removes all work itemsfrom the given list of work items which have been allocated to an originator.

fun updateWorkItemsMatching (W: CWorkItems , ni l ) = W |updateWorkItemsMatching (W: CWorkItems , (w, r ) : :M:CMatching ) = updateWorkItemsMatching (rm w W, M) ;

91

Page 92: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

updateOriginatorsMatching The updateOriginatorsMatching removes all orig-inators for the given list of originators which have been allocated to a work item.

fun updateOrig inatorsMatching (R: CLOriginator , ni l ) = R |updateOrig inatorsMatching (R: CLOriginator , (w, r ) : :M:CMatching ) = updateOrig inatorsMatching (rm r R, M) ;

matchable Determines whether there is a match possible between any item of alist of work items and any item of a list of originators.

fun matchable ( nil , ) = fa l se | matchable ( , ni l ) = fa l se| matchable (W: CWorkItems , R: CLOriginator ) = i f (

maxLikeFactor (W, R) = 0 . 0 ) then fa l se else true ;

getDelay Gets the time an originator will be (un)available. This time is used tocreate a timed token solving the aforementioned problem with using time relatedinformation in a guard of a transition.

fun getDelay ( r : COrig inator ) = L i s t . nth(#2 (#2 r ) , (#1(#2 r ) + 1) mod length (#2(#2 r ) ) ) ;

C Case study data

92

Page 93: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

A B

Event code 560532 560521 4634935 560519 560458 560429 1254625 560602 560613

540 X X X X X X X X550 X X X550 1 X560 X X X590 X X X600 X X610 X X630 X X X X X X X640 X670 X X680 X X700 X730 X X X X740 X755 X X X X X X760 X765 X X X X X X766 X770 X X X X X X775 X X X780 1 X780 2 X780 3 X790 XTable 7: The observed activities with originators who may execute them. Orig-inators left of the double lines are for Municipality A, and right of the doublelines are for Municipality B.

93

Page 94: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Replication Sojourn Processing Queue Wait

1 1612.22112327185 0.229856140212278 15.5622744792514 1612.221123271852 1585.61932783552 0.228572617003444 17.0522000129988 1585.619327835523 1605.23400773317 0.238762756736165 16.3098603649234 1605.234007733174 1592.74092825566 0.239019045259328 16.7547051120826 1592.740928255665 1617.99877967194 0.245221418321609 19.775160922796 1617.998779671946 1592.71788872882 0.233620505900653 13.9070242339544 1592.717888728827 1533.79078133865 0.26462493915919 9.70631572370623 1533.790781338658 1574.38748515519 0.233224084130629 9.82769773689952 1574.387485155199 1625.36617099035 0.239349941274681 10.8053074791598 1625.3661709903510 1588.12035818254 0.234052894475994 12.0743869917517 1588.1203581825411 1572.04701633281 0.226055154220116 10.8675773070279 1572.0470163328112 1533.22985595812 0.225570078563927 9.57827092507011 1533.2298559581213 1621.89331501793 0.235446098070214 11.2061671996374 1621.8933150179314 1585.00546028374 0.230821112606567 10.3051076375256 1585.0054602837415 1563.84038482556 0.227472317061724 10.2251477942419 1563.8403848255616 1600.63977574163 0.247248346706576 15.3856883474569 1600.6397757416317 1557.08760784248 0.228172871763337 16.8932711100201 1557.0876078424818 1573.84184759888 0.228774540122265 16.0874152312756 1573.8418475988819 1564.67593720558 0.232314366598844 14.2983842803352 1564.6759372055820 1608.26127599673 0.235381849939744 14.8736839720352 1608.2612759967321 1573.79275213965 0.231664709408134 17.4438137324801 1573.7927521396522 1567.62619433745 0.232930874891936 14.6500160274213 1567.6261943374523 1610.24446201573 0.234198882814128 15.6191325942308 1610.2444620157324 1599.23911078275 0.238942483514538 13.9497726883193 1599.2391107827525 1588.05974310647 0.238924431543654 12.4501679359481 1588.0597431064726 1590.43837808957 0.230682141782928 14.4228594531347 1590.4383780895727 1591.91406223369 0.228915482425434 14.1377340008558 1591.9140622336928 1617.59600907846 0.237528681841463 14.7064967718827 1617.5960090784629 1602.50260864363 0.237784855769712 13.0336081645067 1602.5026086436330 1604.48359408511 0.286336085157448 12.0224713612777 1604.48359408511

Table 8: The results for Municipality A.

94

Page 95: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Replication Sojourn Processing Queue Wait

1 820.617834052972 0.194021693678179 19.0935821139414 820.6178340529722 832.3172367993 0.189259575922633 12.6532286816937 832.31723679933 822.850684594141 0.18869537701677 12.3823711458945 822.8506845941414 800.577148592002 0.180211635431849 12.7586195346657 800.5771485920025 822.950611127349 0.187702957863273 11.795850918561 822.9506111273496 805.217409118698 0.176279988876869 11.0402659988606 805.2174091186987 845.420380944496 0.187702616444503 13.7044587633065 845.4203809444968 825.587050928934 0.186510836974652 11.2337608153139 825.5870509289349 837.610185751373 0.18770475895712 12.4774538021808 837.61018575137310 812.333875562099 0.184610402547926 11.7332642473424 812.33387556209911 852.207027577056 0.189139818578167 10.1081426002 852.20702757705612 829.006471982173 0.180933528019977 11.3897446789364 829.00647198217313 812.789094196666 0.180937552700843 12.9291763142793 812.78909419666614 829.819984555536 0.195539667964852 13.0032896020216 829.81998455553615 850.174771986015 0.188527730373374 12.1155205585953 850.17477198601516 832.011651911417 0.178776856795859 9.72436354519957 832.01165191141717 837.497366356126 0.182436606869071 11.2172656026651 837.49736635612618 836.902257579932 0.183393691695624 12.226967604419 836.90225757993219 824.02487169892 0.184531856042626 12.9201293531103 824.0248716989220 834.927213713915 0.18557863749528 11.5673031217459 834.92721371391521 809.939882657637 0.188307965542436 9.72635989240702 809.93988265763722 813.071571090824 0.183926660511314 12.144391829827 813.07157109082423 845.251353884779 0.187441881266197 12.3058741271281 845.25135388477924 830.229991295176 0.183361853486166 12.7735889144577 830.22999129517625 845.655719262369 0.191616646774431 10.7643620327028 845.65571926236926 818.718792865131 0.182953046623038 10.3551927743589 818.71879286513127 855.481703006381 0.200135668320262 13.9160293843327 855.48170300638128 818.103804744154 0.186805174275945 11.3806484611856 818.10380474415429 833.390833604063 0.185767839151276 11.9703297428391 833.39083360406330 815.653899209819 0.184024166480548 14.5532453536797 815.653899209816

Table 9: The results for Municipality B.

95

Page 96: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

Replication 1 2 3 4 5 6 7 8

1 1455.99 1582.76 1594.30 841.20 1486.01 1213.22 781.65 1229.932 1520.82 1612.45 1564.58 847.83 1539.03 1200.86 802.91 1215.853 1471.06 1574.19 1581.00 838.42 1475.57 1187.05 842.24 1232.014 1436.07 1577.33 1567.40 825.14 1466.96 1304.46 804.30 1188.845 1469.43 1506.14 1567.22 813.34 1555.50 1230.57 776.38 1200.366 1464.27 1529.17 1562.33 815.51 1512.90 1196.32 790.98 1235.667 1524.01 1562.49 1598.25 791.43 1495.05 1169.80 810.43 1204.228 1460.09 1587.19 1562.63 802.96 1491.73 1238.81 811.51 1339.309 1560.93 1573.69 1565.48 821.01 1494.98 1241.78 789.52 1229.11

10 1489.40 1526.58 1585.59 837.46 1494.10 1212.70 805.53 1248.3611 1502.43 1579.15 1576.78 793.69 1484.00 1237.18 819.58 1238.8912 1523.95 1573.34 1564.88 838.27 1496.94 1240.73 828.11 1205.8013 1508.51 1610.34 1592.09 779.28 1509.99 1221.86 797.09 1185.4714 1488.06 1583.75 1583.12 842.90 1479.48 1259.14 795.57 1211.7715 1499.11 1627.86 1564.68 806.40 1462.33 1279.69 816.09 1301.1116 1522.56 1570.09 1557.85 789.72 1535.84 1164.07 782.85 1194.9417 1505.44 1542.66 1544.42 760.03 1464.14 1192.59 837.70 1210.5918 1445.92 1545.28 1556.61 783.28 1452.05 1190.30 804.58 1187.2819 1499.13 1560.00 1576.10 783.25 1474.02 1198.89 812.39 1208.5020 1483.05 1579.07 1579.58 798.95 1474.32 1163.52 800.07 1251.4421 1527.86 1623.60 1571.14 800.17 1494.14 1174.17 815.61 1236.3422 1466.18 1571.82 1571.11 797.35 1517.23 1230.87 801.29 1201.3823 1449.32 1589.89 1528.38 811.28 1511.64 1207.62 782.63 1233.1224 1487.21 1588.08 1627.24 799.24 1507.07 1200.39 784.56 1213.2925 1447.66 1617.67 1560.65 780.83 1523.26 1228.60 769.93 1229.8826 1495.07 1532.75 1579.40 772.18 1481.47 1211.29 791.97 1173.0927 1460.44 1505.35 1561.31 817.10 1485.74 1223.98 770.48 1232.9928 1503.63 1636.83 1547.46 786.82 1535.84 1290.68 846.08 1240.5129 1493.19 1551.77 1552.75 807.35 1495.48 1202.44 807.08 1229.5730 1502.63 1553.21 1582.90 815.64 1486.37 1206.18 831.05 1225.39

540 A A A B A B B B630 A A B A B A B B770 B A A B B A B A

Avg 1488.78 1572.48 1570.91 806.60 1496.11 1217.32 803.67 1224.50Std. dev. 29.55 33.82 18.58 22.93 24.81 34.80 20.24 33.10

Table 10: The results for the case study (sojourn times in hours).

96

Page 97: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

References

1. Schunselaar, D.M.M., Verbeek, H.M.W., Aalst, W.M.P. van der, Reijers, H.A.:Creating Sound and Reversible Configurable Process Models Using CoSeNets. InAbramowicz, W., Kriksciuniene, D., Sakalauskas, V., eds.: BIS. Volume 117 ofLecture Notes in Business Information Processing., Springer (2012) 24–35

2. Rosemann, M., Aalst, W.M.P. van der: A Configurable Reference Modelling Lan-guage. Information Systems 32(1) (2007) 1–23

3. La Rosa, M., Dumas, M., Hofstede, A.H.M. ter, Mendling, J.: Configurable multi-perspective business process models. Inf. Syst. 36(2) (2011) 313–340

4. Gottschalk, F.: Configurable Process Models. PhD thesis, Eindhoven Universityof Technology, The Netherlands (2009)

5. Gottschalk, F., Aalst, W. M. P. van der, Jansen-Vullers, M.H., Verbeek, H.M.W.:Protos2CPN: Using Colored Petri Nets for Configuring and Testing Business Pro-cesses. International Journal on Software Tools for Technology Transfer 10(1)(2008) 95–110

6. Aalst, W.M.P. van der, Nakatumba, J., Rozinat, A., Russell, N.: Business ProcessSimulation. In Brocke, J., Rosemann, M., eds.: Handbook on Business ProcessManagement 1. International Handbooks on Information Systems. Springer BerlinHeidelberg (2010) 313–338

7. La Rosa, M., Lux, J., Seidel, S., Dumas, M., Hofstede, A.H.M. ter: Questionnaire-driven Configuration of Reference Process Models. Advanced Information SystemsEngineering 4495 (2007) 424–438

8. Hallerbach, A., Bauer, T., Reichert, M.: Capturing Variability in Business ProcessModels: The Provop Approach. Journal of Software Maintenance and Evolution:Research and Practice 22(6-7) (November 2010) 519–546

9. Gagne, D., Shapiro, R.: BPSim 1.0. http://bpsim.org/specifications/1.0/WFMC-BPSWG-2012-01.pdf (Feb 2013)

10. Verbeek, H.M.W., Aalst, W.M.P. van der: Woflan 2.0: A Petri-Net-Based WorkflowDiagnosis Tool. In: ICATPN. (2000) 475–484

11. Gross, D., Shortle, J.F., Thompson, J.M., Harris, C.M.: Fundamentals of QueueingTheory. 4th edn. Wiley-Interscience, New York, NY, USA (2008)

12. Laguna, M., Marklund, J.: Business Process Modeling, Simulation, and Design.Prentice Hall, New York (2004)

13. Jensen, K., Kristensen, L.M.: Coloured Petri Nets - Modelling and Validation ofConcurrent Systems. Springer (2009)

14. Chiola, G., Franceschinis, G., Gaeta, R., Ribaudo, M.: GreatSPN 1.7: Graphicaleditor and analyzer for timed and stochastic Petri nets. Performance Evaluation24(1 - 2) (1995) 47 – 68

15. Bertoli, M., Casale, G., Serazzi, G.: JMT: performance engineering tools for systemmodeling. SIGMETRICS Perform. Eval. Rev. 36(4) (2009) 10–15

16. Dingle, N.J., Knottenbelt, W.J., Suto, T.: Pipe2: A tool for the performanceevaluation of generalised stochastic petri nets. SIGMETRICS Perform. Eval. Rev.36(4) (March 2009) 34–39

17. Zimmermann, A., Freiheit, J., German, R., Hommel, G.: Petri net modelling andperformability evaluation with timenet 3.0. In Haverkort, B.R., Bohnenkamp,H.C., Smith, C.U., eds.: Computer Performance Evaluation.Modelling Techniquesand Tools. Volume 1786 of Lecture Notes in Computer Science. Springer BerlinHeidelberg (2000) 188–202

97

Page 98: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

18. Berthomieu, B., Vernadat, F.: Time Petri Nets Analysis with TINA. In: Quan-titative Evaluation of Systems, 2006. QEST 2006. Third International Conferenceon. (2006) 123–124

19. Westergaard, M.: Access/CPN 2.0: A High-Level Interface to Coloured Petri NetModels. In Kristensen, L.M., Petrucci, L., eds.: Petri Nets. Volume 6709 of LectureNotes in Computer Science., Springer (2011) 328–337

20. Brand, N., Kolk, H. van der: Workflow Analysis and Design. Kluwer Bedrijfsweten-schappen, Deventer (In Dutch) (1995)

21. Dumas, M., La Rosa, M., Mendling, J., Reijers, H.A.: Fundamentals of BusinessProcess Management. Springer (2013)

22. Netjes, M., Mansar, S.L., Reijers, H.A., Aalst, W.M.P. van der: Performing Busi-ness Process Redesign with Best Practices: An Evolutionary Approach. In Filipe,J., Cordeiro, J., Cardoso, J., eds.: ICEIS (Selected Papers). Volume 12 of LectureNotes in Business Information Processing., Springer (2007) 199–211

23. Netjes, M., Reijers, H.A., Aalst, W.M.P. van der: The PrICE Tool Kit: ToolSupport for Process Improvement. (2010)

24. Hoesch-Klohe, K., Ghose, A.: Business Process Improvement in Abnoba. In Max-imilien, E.M., Rossi, G., Yuan, S.T., Ludwig, H., Fantinato, M., eds.: ICSOC Work-shops. Volume 6568 of Lecture Notes in Computer Science. (2010) 193–202

25. Essam, M.M., Mansar, S.L.: Towards a Software Framework for Automatic Busi-ness Process Redesign. ACEEE International Journal on Communication 2(1)(March 2011) 6

26. Maruster, L., Beest, N.R.T.P.: Redesigning business processes: a methodologybased on simulation and process mining techniques. Knowledge and InformationSystems 21(3) (2009) 267–297

27. Netjes, M., Reijers, H.A., Aalst, W.M.P. van der: On the Formal Generation ofProcess Redesigns. In Ardagna, D., Mecella, M., Yang, J., eds.: Business ProcessManagement Workshops. Volume 17 of Lecture Notes in Business InformationProcessing., Springer (2008) 224–235

28. Kalenkova, A.A.: Application of if-conversion to verification and optimization ofworkflows. Programming and Computer Software 36(5) (2010) 276–288

29. Kalenkova, A.A.: An algorithm of automatic workflow optimization. Programmingand Computer Software 38(1) (2012) 43–56

30. Kaiya, H., Morita, S., Kaijiri, K., Hayashi, S., Saeki, M.: Facilitating businessimprovement by information systems using model transformation and metrics. InKirikova, M., Stirna, J., eds.: CAiSE Forum. Volume 855 of CEUR WorkshopProceedings., CEUR-WS.org (2012) 106–113

31. Wynn, M.T., Dumas, M., Fidge, C.J., Hofstede, A.H.M. ter, Aalst, W.M.P. vander: Business Process Simulation for Operational Decision Support. In Hofst-ede, A.H.M. ter, Benatallah, B., Paik, H.Y., eds.: Business Process ManagementWorkshops. Volume 4928 of Lecture Notes in Computer Science. Springer BerlinHeidelberg (2008) 66–77

32. Hofstede, A.H.M. ter, Aalst, W.M.P. van der, Adams, M., Russell, N., eds.: ModernBusiness Process Automation: YAWL and its Support Environment. Springer(2010)

33. Vanhatalo, J., Volzer, H., Koehler, J.: The Refined Process Structure Tree. InDumas, M., Reichert, M., Shan, M.C., eds.: BPM. Volume 5240 of Lecture Notesin Computer Science., Springer (2008) 100–115

34. Aalst, W. M. P. van der, Hee, K. M. van: Workflow Management: Models, Methods,and Systems. The MIT Press (January 2002)

98

Page 99: Petra: Process model based Extensible Toolset for Redesign ...bpmcenter.org/wp-content/uploads/reports/2014/BPM-14-01.pdfWe improve the state-of-the-art by providing an approach that

35. Yerkes, R.M., Dodson, J.D.: The Relation of Strength of Stimulus to Rapidity ofHabit-Formation. Journal of Comparative Neurology and Psychology 18(5) (1908)459–482

36. Leymann, F., Roller, D.: Production Workflow: Concepts and Techniques. PrenticeHall PTR (September 1999)

37. Aalst, W.M.P. van der, Adriansyah, A., Dongen, B.F. van : Replaying Historyon Process Models for Conformance Checking and Performance Analysis. WileyInterdisc. Rew.: Data Mining and Knowledge Discovery 2(2) (2012) 182–192

38. Fishman, G.S.: Grouping Observations in Digital Simulation. Management Science24(5) (1978) pp. 510–521

39. Kung, H.T., Luccio, F., Preparata, F.P.: On finding the maxima of a set of vectors.J. ACM 22(4) (1975) 469–476

40. Aalst, W.M.P. van der, Rosemann, M., Dumas, M.: Deadline-based escalation inprocess-aware information systems. Decision Support Systems 43(2) (2007) 492 –511

99