<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Proposals for a Virtual Machine for Business Processes</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Thomas M. Prinz</string-name>
          <email>Thomas.Prinz@uni-jena.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Chair of Software Technology, Friedrich Schiller University Jena</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <fpage>10</fpage>
      <lpage>17</lpage>
      <abstract>
        <p>Business process management (BPM) promises an efficient and simple application of business processes. Although there are many approaches belonging to BPM, BPM suffers from the wide heterogeneity of tools and approaches and their missing integration into a homogenous workflow. In this paper, we argue for a consistent system, which supports each step of BPM. The system consists of a virtual machine, a process intermediate representation, a compiler, and analyses. Thereby, the major focus lies on the derivation of requirements on a virtual machine for business processes and its intermediate representation. In a first conceptual approach, we present our proposals for such a virtual machine.</p>
      </abstract>
      <kwd-group>
        <kwd>Virtual machine</kwd>
        <kwd>processes</kwd>
        <kwd>business process management</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        The state of the art in research of business process management (BPM) conveys
a simple and efficient application in practice. Popular business process modeling
languages, e.g., the Business Process Model and Notation (BPMN) [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and
the Web Services Business Process Excution Language (BPEL) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], as well as
verifiable process properties, which promise the absence of deadlocks for example
(cf. soundness [
        <xref ref-type="bibr" rid="ref1 ref13">1,13</xref>
        ]), strengthen this impression. In addition to the prevalence
of service-oriented architectures (SOA) in companies, there is no reason why the
safe and dynamic application of BPM should not be able to work successfully: (1)
the process is analyzed, (2) implemented, and (3) applied. During the process’s
use, it is (4) evaluated (monitored) and (5) improved continuously — the life
cycle of a business process (cf. Fig. 1) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        However, Koehler et al. already recognized the lacks in the life cycle [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
such that the tool landscape of BPM suffers from its wide heterogeneity and
its missing integration into a homogenous workflow. Take the development of a
business process as example: In most graphical process modeling languages exist
elements, whose semantics have obvious dependencies to the process developer’s
intension and are therefore not universally and basically definable. In addition,
most common used process modeling languages (except BPEL) neither have
clear definitions for documents nor for instructions to modify them. As result,
I
p
m
a
t
mel
tne .2
noi
      </p>
      <sec id="sec-1-1">
        <title>5. Continuous</title>
        <p>Improvement
ig
n
r
nio
t
o
4.M</p>
      </sec>
      <sec id="sec-1-2">
        <title>1. Analyses</title>
      </sec>
      <sec id="sec-1-3">
        <title>3. Execution</title>
        <p>the majority of processes is performed manually and only an insignificant part
of processes of an organization is executed by a process engine. In short: BPM
would benefit from a system, which combines research approaches and which
homogenizes the life cycle by new research results furthermore. In this paper, we
focus on such a system and, especially, on requirements and on a conception of a
homogenous virtual machine for the execution of business processes.</p>
        <p>
          The remainder of this paper is as follows: At first, we explain our overall
system’s approach [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] (Section 2). In Section 3, we derive requirements of a
machine, which are implemented in a first conception (Section 4). Eventually, we
give an outlook on future work in Section 5.
2
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Overall Approach</title>
      <p>
        Our approach is a system, which is organized into a producer side (where
the business process is developed) and a consumer side (where the process
is then executed), inspired by Amme et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] regarding mobile code. Our
proposed system [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] consists of a compiler and a virtual machine (cf. Fig.
2), which support the development, analysis, storage, execution, maintenance,
evaluation, and improvement of processes. We argue for a compiler since the
development process of business processes has adjusted itself to the process of
software development (cf. the life cycle of business processes to the spiral model
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]). Furthermore, the efficient development of software was improved through a
well-defined computer architecture as well as the programming languages based
on it. The consideration of state-of-the-art tools for business process development
(for a list, visit http://www.bpmn.org/) shows that there is a wide heterogeneity
of different execution techniques and that most tools are monolithically, i.e., it is
hard to include additional analyses and to distribute processes between different
execution engines.
      </p>
      <p>Starting from these coniderations, the first step should be the definition of
a (virtual) machine, which realizes the execution of a (technical) process. In
e
d
i
s
r
e
c
u
d
o
r</p>
      <p>P</p>
      <sec id="sec-2-1">
        <title>Developer</title>
      </sec>
      <sec id="sec-2-2">
        <title>Business process</title>
      </sec>
      <sec id="sec-2-3">
        <title>Process intermediate representation (PIR)</title>
      </sec>
      <sec id="sec-2-4">
        <title>Compiler</title>
      </sec>
      <sec id="sec-2-5">
        <title>Error handler</title>
      </sec>
      <sec id="sec-2-6">
        <title>Business process repository</title>
      </sec>
      <sec id="sec-2-7">
        <title>Virtual Machine</title>
      </sec>
      <sec id="sec-2-8">
        <title>Execution PIR</title>
      </sec>
      <sec id="sec-2-9">
        <title>Services/Tools</title>
      </sec>
      <sec id="sec-2-10">
        <title>Users</title>
        <p>C
o
n
s
u
m
e
r
s
i
d
e
the second step, we should develop a technical and general process description
language (process intermediate representation (PIR)). Afterwards, in the third
step, existing process description languages should be modified in such that
the automatic transformation into the PIR is possible. It is not the goal, in
doing so, that the iterative derivation of a process from an abstract model to a
technical process should be automated, since the inclusion of the process analyst
is essential (cf. requirements analysis in software engineering). The goal is to
define limitations for which such a transformation is possible at all and to allow
a stepwise refinement of the business process into a technical one. In the last
step, verifiable properties of processes based on the PIR should be found and
some analyses should be developed which seriously support a solution-oriented
failure diagnostic. Especially, in the context of business processes, such analyses
must be applied to minimize the enormous costs in cases of malfunctions.</p>
        <p>As mentioned before, in this paper, we focus on the first two steps: a conception
of a virtual machine for the execution of business processes and the definition of
a PIR. For this, we derive requirements for such a virtual machine in the next
section.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Requirements on a Virtual Machine</title>
      <p>One of the most famous virtual machines is the Java Virtual Machine (JVM). The
JVM supports the execution of Java Bytecode (JBC), which is generated from
Java programs by a compiler. The advantage is, that also other programming
languages can be compiled to JBC and, therefore, programs based on multiple
programming languages are possible. A process engine should follow that approach
as it grows its flexibility. For this, (R.1) a virtual machine has to allow for the
execution of a process code, i.e., the conception of such a machine affiliates with
the language to be executed.</p>
      <p>Popular process modeling languages have a quite large common subset of
description elements on closer considerations. (R.1.1) A virtual machine should
allow the handling of basic elements to model the control flow, e.g., exclusive
decisions, parallelisms, inclusive decisions, and simple tasks. (R.1.2) These elements
should be extended by explicit exception and error handling, high-language loops,
events and signals, as they are frequently used in processes. Furthermore, (R.1.3)
the inclusion of roles also is essential to ensure organizational structures as well
as access permissions and common security. Eventually, (R.2) a process modeling
language should naturally enable the usage of instructions and data structures
for the modification of data and branch conditions. Such instructions are
currently rare in previous languages as mentioned before. (R.2.1) The reception and
sending of messages besides the usage of documents and conditions naturally
are very important. With traditional programming languages in mind, (R.2.2)
arithmetic operations, comparisons, objects, and method invocations on objects
should be part of a process modeling language to modify and compare data. For
this, documents are special cases of objects. Method invocations encapsulate the
access on object fields and have to be restricted on state changes of objects, in
such that side effects are rare and the analysis of processes is more simple. The
start of sub processes is incumbent upon the "super" process.</p>
      <p>(R.3) A virtual machine has to be able to load
processes, which are ready to be started. As re- P1
sult, (R.3.1) the virtual machine should have a
separate storage for processes. Besides the stor- 1 define A
age for processes, it needs a further data storage
since a process being executed modifies objects.
sFeupratrhaetremdo(rwe,it(hRr.e3f.e2r)entchee tdoataasisntogrleagceonsthrooul lfldobwe) P2 23 uussee AB P3 4 define B
in a local and a global part as processes have
commonly different parallel control flows with their
own (private) data. (R.3.3) Each of those
concurrent control flows should have its own local storage.</p>
      <p>It then has only the permission to access the
local storages of those control flows leading to its aFnigduursees3.datAa process defines
execution, i.e., those local storages are global with
regard to that single control flow. This is
mandatory as some information is not safe on some points of the process. With this in
mind, consider the process P 1 of Fig. 3 in BPMN. This process defines a local
object A in a task and starts two parallel sub processes P 2 and P 3. Both sub
processes get the global object A and have access on it (like done in process
P 2). However, the process P 2 has no permission to access the local object B of
process P 3 since P 3 does not start P 2 (neither direct nor indirect). Therefore,
the instruction (3) use B is displaced. For this, (R.3.4) a virtual machine and
the corresponding process intermediate representation should define the scopes
of objects carefully.</p>
      <p>
        The separation between local and global objects has less attention in previous
research. The determination of local and global objects is simple in structured
processes as it can be done like for traditional programming languages, e.g.,
by data flow analyses [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. We propose the application of a process structure
tree (PST) for unstructured or irreducible processes, who structures the process
as a tree [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Although we worked on analyses for irreducible processes in
previous work [
        <xref ref-type="bibr" rid="ref10 ref12">10,12</xref>
        ], we (R.4) plead in or for transformations to structured
processes to simplify analyses or to make them possible at all. This step towards
"structures" was already done for today’s programming languages. However, the
transformation of irreducible processes into structured ones is challenging since
most algorithms (e.g., node splitting [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]) only work for sequential processes and
have an exponential growth behavior of the entire graph.
      </p>
      <p>The terms of local and global objects belong to a single control flow in processes
and belong not to their spatial position. In general, (R.5) sub and partial processes
of a process should be able to be executed on different physical machines. That
belongs to the fact, that business processes are almost implemented by the use of
SOA and that they work beyond company borders. As result, (R.5.1) a virtual
machine has to abstract from the underlying physical network. For this reason,
our considerations have a secure business network and standardized processes
in mind as, otherwise, we have to know all details about processes which is
commonly not the case. The difficulty is to identify communication partners in
networks and to guarantee the correct usage of state-based services.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Conception of a Virtual Machine</title>
      <p>
        The requirements mentioned before are implemented as a conception in the
following. For this, Figure 4 shows the overall structure of our proposed virtual
machine. Concluding from requirements (R.1) and (R.3), the machine owns a
process loader which loads a process and recognize the PIR part. We recommend to
use a PIR in a tree representation as such a representation has many advantages
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and leads to structured processes (R.4). Furthermore, the representation
should contain instructions (R.1.1) - (R.2.2). Since the PIR is in a linearized
file form, a decoder has to rebuild the PIR and, afterwards, a verificator checks
the PIR for unallowed modifications with regard to security properties, e.g.,
soundness and reference safety. Then, the process is executed in the process
interpreter.
      </p>
      <p>
        As argued in previous work [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], a dynamic semantic analyser should monitor
and analyze the process’s execution to detect possible runtime process failures as
early as possible. Those failures could be tried to be solved by a runtime error
handler which interacts with the user or developer. So, a “rescue” of the process
is still possible in failure situations and, afterwards, the process interpreter can
continue its work.
      </p>
      <p>The process interpreter gets the PIR and creates a new process frame. The
structure of such a process frame illustrates Fig. 5. Each frame defines the state of
each (sub) process and hence stores all necessary execution information (R.3.1):
A process object stack, a process extract, an in-/output, a process position
pointer, and a process stack. The process stack (illustrated as arc in the figure)
contains all process frames of started sub processes. Once a sub process starts,</p>
      <sec id="sec-4-1">
        <title>Verificator</title>
      </sec>
      <sec id="sec-4-2">
        <title>Decoder PIR PIR</title>
      </sec>
      <sec id="sec-4-3">
        <title>Process interpreter</title>
      </sec>
      <sec id="sec-4-4">
        <title>Process frame</title>
      </sec>
      <sec id="sec-4-5">
        <title>Permanent object storage</title>
      </sec>
      <sec id="sec-4-6">
        <title>Dynamic semantic analyser</title>
      </sec>
      <sec id="sec-4-7">
        <title>Process loader</title>
      </sec>
      <sec id="sec-4-8">
        <title>Runtime error handler</title>
      </sec>
      <sec id="sec-4-9">
        <title>Process (PIR)</title>
        <p>the virtual machine creates a process frame for it. and pushs the frame on the
process stack on the calling process. If the work of the sub process is done, its
frame can be popped from the process stack. The “super” process can continue
its work not until its process stack is empty (as, otherwise, it has to wait for
the results of its sub processes). Although other implementations are possible,
this stack-based approach reflects all hierarchic dependencies between different
processes in a simple way. For example, Java uses a stack for its hierarchy of
method invocations.</p>
        <p>The process extract shows a subgraph of a tree representation (from the
PIR) of the process that should be executed (R.3.1). That tree representation
is generated by the compiler with the help of the PST (R.4). Each node of this
tree has its own functionality (branch, parallelism, task, etc.) (R.1.1) - (R.2.2).
Through link edges in the tree, sequences are implicit and the tree can be traversed
easily. Furthermore, that fact guarantees a simple reference safety, since global
objects can be derived by a backward traverse from the current executed node to</p>
        <sec id="sec-4-9-1">
          <title>Process 1</title>
        </sec>
        <sec id="sec-4-9-2">
          <title>Process 2</title>
        </sec>
        <sec id="sec-4-9-3">
          <title>Process ...</title>
        </sec>
        <sec id="sec-4-9-4">
          <title>Process n L1 L0 G1</title>
          <p>G0</p>
        </sec>
        <sec id="sec-4-9-5">
          <title>Process object stack</title>
        </sec>
        <sec id="sec-4-9-6">
          <title>Input/Output</title>
        </sec>
        <sec id="sec-4-9-7">
          <title>Local</title>
        </sec>
        <sec id="sec-4-9-8">
          <title>Global</title>
        </sec>
        <sec id="sec-4-9-9">
          <title>Process position pointer</title>
          <p>IF link PAR
T</p>
          <p>T</p>
          <p>IF</p>
          <p>T</p>
        </sec>
        <sec id="sec-4-9-10">
          <title>Process extract</title>
        </sec>
        <sec id="sec-4-9-11">
          <title>Process stack</title>
          <p>the root of the tree (R.3.4). The current executed node is marked by the process
position pointer as the machine has to know which process’s nodes are currently
executed. The execution semantics of a node depends on its functionality. For
example, if the current node produces parallelism, for each of its child nodes,
the virtual machine creates a process frame, passes the process object stack,
determines the subtree as process extract, and pushes the frame on the current
process’s process stack. After each sub process is finished, the process frames
are popped from the process stack and the link node is executed afterwards.
If an execution produces objects, they are pushed on the process object stack
and they are locatable via this stack (R.3.3). That stack contains all objects,
which the (sub) process can access (R.3.2),(R.3.4). Objects, which are stored
over process borders, are stored within a permanent object storage (data base).
Only processes, which have the permission, can access those objects.</p>
          <p>If the execution arrives at an instruction for the reception or sending of a
message and event, respectively, (R.2.1) the virtual machine uses the in-/output
mechanism that handles the communication — regardless whether it talks locally
or via a network (R.5),(R.5.1). For this, each virtual machine can provide its
processes by a RESTful web service, i.e., it automatically creates an unique
uniform resource identifier (URI) for each process. Another process may then
contact that URI via a network and gets an URI for the resource which points
to the corresponding started instance of the process. Now, it is simply possible
to communicate with a state-based process via a network. However, for this, it
has to know its communication partners before.
5</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Outlook</title>
      <p>In this paper, we have extracted the need for a complete and consistent system
for the development, analysis, and execution of processes in business process
management. For this, we have focused on the conception of a virtual machine
for the execution of processes. Besides the conception, we derived requirements
for such a virtual machine.</p>
      <p>In future work, these proposals have to be implemented and have to be
compared to and extended for its application on business process management.
Additionally, some parts of the machine (e.g., an efficient intermediate
representation of a process) are in our focus of research.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hirnschall</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verbeek</surname>
            ,
            <given-names>H.M.W.E.</given-names>
          </string-name>
          :
          <article-title>An alternative way to analyze workflow graphs</article-title>
          . In: Pidduck,
          <string-name>
            <given-names>A.B.</given-names>
            ,
            <surname>Mylopoulos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Woo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.C.</given-names>
            ,
            <surname>Özsu</surname>
          </string-name>
          , M.T. (eds.)
          <source>Advanced Information Systems Engineering</source>
          , 14th International Conference, CAiSE
          <year>2002</year>
          , Toronto, Canada, May
          <volume>27</volume>
          -31,
          <year>2002</year>
          ,
          <source>Proceedings. Lecture Notes in Computer Science</source>
          , vol.
          <volume>2348</volume>
          , pp.
          <fpage>535</fpage>
          -
          <lpage>552</lpage>
          . Springer (
          <year>2002</year>
          ), http://link.springer. de/link/service/series/0558/bibs/2348/23480535.htm
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>ter Hofstede</surname>
            ,
            <given-names>A.H.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weske</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Business process management: A survey</article-title>
          . In: van der Aalst,
          <string-name>
            <given-names>W.M.P.</given-names>
            ,
            <surname>ter Hofstede</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.H.M.</given-names>
            ,
            <surname>Weske</surname>
          </string-name>
          , M. (eds.) Business Process Management, International Conference, BPM 2003,
          <article-title>Eindhoven, The Netherlands</article-title>
          , June 26-27,
          <year>2003</year>
          ,
          <source>Proceedings. Lecture Notes in Computer Science</source>
          , vol.
          <volume>2678</volume>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          . Springer (
          <year>2003</year>
          ), http://dx.doi.org/10. 1007/3-540-44895-
          <issue>0</issue>
          _
          <fpage>1</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Amme</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heinze</surname>
          </string-name>
          , T.S.,
          <string-name>
            <surname>von Ronne</surname>
          </string-name>
          , J.:
          <article-title>Intermediate representations of mobile code</article-title>
          .
          <source>Informatica (Slovenia)</source>
          <volume>32</volume>
          (
          <issue>1</issue>
          ),
          <fpage>1</fpage>
          -
          <lpage>25</lpage>
          (
          <year>2008</year>
          ), http://www.informatica.si/PDF/ 32-1/11_Amme-Intermediate%
          <article-title>20Representations%20of%20Mobile%20Code</article-title>
          .pdf
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Boehm</surname>
            ,
            <given-names>B.W.:</given-names>
          </string-name>
          <article-title>A spiral model of software development and enhancement</article-title>
          .
          <source>IEEE Computer 21(5)</source>
          ,
          <fpage>61</fpage>
          -
          <lpage>72</lpage>
          (
          <year>1988</year>
          ), http://doi.ieeecomputersociety.
          <source>org/10.1109/ 2</source>
          .59
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Hecht</surname>
            ,
            <given-names>M.S.</given-names>
          </string-name>
          :
          <article-title>Flow Analysis of Computer Programs</article-title>
          . Elsevier Science Inc., New York, NY, USA (
          <year>1977</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Hecht</surname>
            ,
            <given-names>M.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ullman</surname>
            ,
            <given-names>J.D.</given-names>
          </string-name>
          :
          <article-title>Flow graph reducibility</article-title>
          .
          <source>SIAM J. Comput</source>
          .
          <volume>1</volume>
          (
          <issue>2</issue>
          ),
          <fpage>188</fpage>
          -
          <lpage>202</lpage>
          (
          <year>1972</year>
          ), http://dx.doi.org/10.1137/0201014
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Juric</surname>
          </string-name>
          , M.B.:
          <article-title>Business Process Execution Language for Web Services BPEL and BPEL4WS 2Nd Edition</article-title>
          . Packt
          <string-name>
            <surname>Publishing</surname>
          </string-name>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Koehler</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gschwind</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Küster</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Völzer</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zimmermann</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Towards a compiler for business-it systems - A vision statement complemented with a research agenda</article-title>
          . In: Huzar,
          <string-name>
            <given-names>Z.</given-names>
            ,
            <surname>Kocí</surname>
          </string-name>
          , R., Meyer,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Walter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Zendulka</surname>
          </string-name>
          ,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (eds.) Software Engineering Techniques - Third
          <source>IFIP TC 2 Central and East European Conference, CEE-SET</source>
          <year>2008</year>
          , Brno, Czech Republic,
          <source>October 13-15</source>
          ,
          <year>2008</year>
          ,
          <source>Revised Selected Papers. Lecture Notes in Computer Science</source>
          , vol.
          <volume>4980</volume>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>19</lpage>
          . Springer (
          <year>2008</year>
          ), http://dx.doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -22386-
          <issue>0</issue>
          _
          <fpage>1</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. OMG:
          <article-title>Business Process Model and Notation 2.0</article-title>
          . formal/2011-01-
          <fpage>03</fpage>
          (
          <year>2011</year>
          ), http: //www.omg.org/spec/BPMN/2.0
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Prinz</surname>
            ,
            <given-names>T.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Amme</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          :
          <article-title>Practical compiler-based user support during the development of business processes</article-title>
          . In: Lomuscio,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Nepal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Patrizi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Benatallah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Brandic</surname>
          </string-name>
          , I. (eds.)
          <string-name>
            <surname>Service-Oriented Computing - ICSOC 2013 Workshops -</surname>
            <given-names>CCSA</given-names>
          </string-name>
          , CSB, PASCEB, SWESE, WESOA, and
          <source>PhD Symposium</source>
          , Berlin, Germany, December 2-
          <issue>5</issue>
          ,
          <year>2013</year>
          .
          <source>Revised Selected Papers. Lecture Notes in Computer Science</source>
          , vol.
          <volume>8377</volume>
          , pp.
          <fpage>40</fpage>
          -
          <lpage>53</lpage>
          . Springer (
          <year>2013</year>
          ), http://dx.doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -06859-
          <issue>6</issue>
          _
          <fpage>5</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Prinz</surname>
            ,
            <given-names>T.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heinze</surname>
            ,
            <given-names>T.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Amme</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kretzschmar</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Beckstein</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Towards a compiler for business processes - a research agenda</article-title>
          . In: de Barros,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Rückemann</surname>
          </string-name>
          , C.P. (eds.)
          <source>SERVICE COMPUTATION</source>
          <year>2015</year>
          ,
          <article-title>The Seventh International Conferences on Advanced Service Computing</article-title>
          . pp.
          <fpage>49</fpage>
          -
          <lpage>55</lpage>
          . IARIA, IARIA XPS Press, Nice,
          <source>France (March</source>
          <volume>22</volume>
          - 27
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Prinz</surname>
            ,
            <given-names>T.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Spieß</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Amme</surname>
            ,
            <given-names>W.:</given-names>
          </string-name>
          <article-title>A first step towards a compiler for business processes</article-title>
          . In: Cohen,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (ed.)
          <source>Compiler Construction - 23rd International Conference, CC</source>
          <year>2014</year>
          ,
          <article-title>Held as Part of the European Joint Conferences on Theory and Practice of Software</article-title>
          ,
          <source>ETAPS</source>
          <year>2014</year>
          , Grenoble, France, April 5-
          <issue>13</issue>
          ,
          <year>2014</year>
          .
          <source>Proceedings. Lecture Notes in Computer Science</source>
          , vol.
          <volume>8409</volume>
          , pp.
          <fpage>238</fpage>
          -
          <lpage>243</lpage>
          . Springer (
          <year>2014</year>
          ), http://dx.doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -54807-9_
          <fpage>14</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Sadiq</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Orlowska</surname>
            ,
            <given-names>M.E.</given-names>
          </string-name>
          :
          <article-title>Analyzing process models using graph reduction techniques</article-title>
          .
          <source>Inf. Syst</source>
          .
          <volume>25</volume>
          (
          <issue>2</issue>
          ),
          <fpage>117</fpage>
          -
          <lpage>134</lpage>
          (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Vanhatalo</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Völzer</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Koehler</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>The refined process structure tree</article-title>
          .
          <source>Data Knowl. Eng</source>
          .
          <volume>68</volume>
          (
          <issue>9</issue>
          ),
          <fpage>793</fpage>
          -
          <lpage>818</lpage>
          (
          <year>2009</year>
          ), http://dx.doi.org/10.1016/j.datak.
          <year>2009</year>
          .
          <volume>02</volume>
          .015
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>