<!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>Bridging the Gap between BPMN and WS-BPEL. M2M Transformations in Practice1</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Pau Giner</string-name>
          <email>pginer@dsic.upv.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Victoria Torres</string-name>
          <email>vtorres@dsic.upv.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vicente Pelechano</string-name>
          <email>pele@dsic.upv.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Information Systems and Computation Technical University of Valencia 46022 Valencia</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The Web is being consolidating as the main platform for the development of applications. Moreover, these applications are not conceived just as isolated systems. This fact implies that the requirements that Web applications should satisfy are now more challenging than before. One important requirement for these systems is to provide support for the execution of business goals expressed by means of Business Process definitions. From the Web Engineering area, several methods have provided a solution to cope with this requirement. In this work we present, within the context of the OOWS Web Engineering method, how business process definitions are transformed into executable process definitions by the application of model-to-model transformations. To accomplish this goal, this work has been developed in the context of the Eclipse environment jointly with the BABEL project.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>Web applications are no longer conceived just as systems to perform CRUD functions
over the persistence layer. In fact, the possibilities that bring the environment in which
these applications live widen the kind of systems being build as well as introduce new
challenges such as security, reliability, integration, etc.</p>
      <p>One of the main advantages introduced by the Internet is that “services” are
available 24x7. This fact allows service providers to reach a larger community of
customers. Moreover, when these services are offered using a standard technology the
potential number of customers can grow easily. In this direction, Web services were built as
the standard technology to provide functionality over the Web.</p>
      <p>However, the great potential of services does not limit to the use of services as
units. In contrast, it is the service composition what brings value to them. Service
composition usually involves the interaction between different partners, some of them
behaving as clients and others as providers. Then, if we go one step forward, we can
see service compositions as business processes, where different services provided by
different partners are put together to accomplish certain agreed goals.
1 This work has been developed with the support of MEC under the project DESTINO
TIN2004-03534 and cofinanced by FEDER.</p>
      <p>
        In a previous work [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] we presented an extension to the OOWS [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] Web
Engineering method to provide support for the generation of Business Process Driven Web
applications. This extension embraced mainly the Navigational model. The main goal
of this work was to obtain from a business process definition the Navigational model
necessary to provide support to the original processes. Moreover, as these processes
can extend in time, we decided to introduce into the architecture of the generated
applications a process engine that was in charge of driving processes during their life.
Therefore, we need to transform these business process definitions into a format that
could be executed by the engine.
      </p>
      <p>
        Moreover, following a Model Driven Approach for the construction of these
applications allows us to define them in a technological independent way (in terms of the
service composition) as well as to perform separation of concerns. In this case, as we
bet on Web services the independence is relegated to service composition. From
service compositions defined in the BPMN [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] notation we could then transform it into
different process executable languages. In this work we focus on the generation of
WS-BPEL [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        The main contribution of this work is to present the application of the MDA
approach within a Web Engineering method for the construction of Business Process
driven Web Applications. In particular, this work focuses on the task of translating
business processes defined graphically in the BPMN notation (defined at the PIM)
into a specific language such as WS-BPEL (placed at the PSM level). Moreover, this
work has been developed within the Eclipse and BABEL [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] projects.
      </p>
      <p>
        The remainder of the paper is structured as follows. Section 2 provides a revision
over the related work developed within in the Web Engineering area. Section 3 puts
into context the work developed and presents the tools used to accomplish it. Section
4 provides a brief overview over the BPMN language (the language used in this work
for service composition). Section 5 presents step by step the process followed to
extend an existing to tool to provide full transformation from BPMN to WS-BPEL.
Section 6 presents some conclusions about the experience of this work. Finally, two
appendixes are included to show both, the schema generated for the extended tool and
the ATL [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] transformations implemented for this purpose.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2 Related Work</title>
      <p>Web Engineering methods provide modeling mechanisms (supported in some cases by
tools) to overcome the development process of web solutions. Due to the inherent
dynamism of the Web, most of these methods have evolved to provide support to the
new arising requirements. As a result of these requirements a broader range of systems
are considered by these methods. Within this range we find process-driven web
applications.</p>
      <p>
        In this context, some of the existing proposals developed within the Web
Engineering area have coped with the issue of integrating business process with navigation.
The solutions provided by these methods can be divided into two groups. In the one
hand, some of them propose introducing business process primitives into the
navigational model. Within this group we find proposals such as OOHDM [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], UWE [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] or
WSDM [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. On the other hand, others propose simply modeling the navigation that
occurs during the process execution as if it were pure navigation. In this group we find
the OO-H [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] proposal. All these proposals make use of a process notation such as
UML Activity Diagrams or Concur Task Tree to define process requirements.
However, it is important to note that the navigation allowed within a business process
execution is completely driven by the process and not by the user. This means that it is
not necessary to include in the Navigational model the process flow. In fact its
inclusion can complicated considerately the understanding and modeling of the
navigational model. Nevertheless, this do not implies that no navigation has to be defined for
business process execution. In fact, it can be desirable to improve or complete the
content of the navigational nodes (web pages) in order to generate better user
interfaces.
      </p>
      <p>
        Regarding workflows or long-running processes, WebML [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and Hera [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] provide
modeling mechanisms to support this kind of processes. The modeling of this kind of
processes involves that multiple process and activity instances can be handled by
users. Moreover, different users behaving with different roles are in charge of
performing certain process tasks. In the one hand, the webML approach introduces a
process reference model into its conceptual model. This process reference model is
interconnected with the application data model and the user model and it is used to
control the state of cases and processes. This proposal also introduces primitives to
model the navigation that occurs during process execution. However, these are not
separated from the ones that refer to pure navigation. As a result, navigational models
can get complicated not only when the size of processes is considerable or the process
grows but also if the control flow includes too many forks.
      </p>
      <p>
        Similarly, Barna et al. in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] propose a specification method for the automatic
generation of web models from a workflow model. This proposal takes into account
workflow processes providing a solution at the modeling level by introducing a task and
workflow modeling phases. This proposal also considers the asynchrony that appears
in workflow processes. To overcome it they present a mechanism based on message
queues to handle multiple workflow instances. Again, the navigation of the workflow
is moved to the navigation structure what complicates the definition of the navigation.
      </p>
      <p>Our proposal tries to introduce modeling mechanisms for developing both short
and long-running processes. Moreover, we have tried to minimize the impact that this
new mechanisms can have over the remainder models. For this reason, we introduced
the Business Process Model (BPM) that allows us defining the set of business
processes that govern the organization. The Navigational Model is only used to specify the
navigational contents that are going to be included in the implemented GUIs. No
navigation is again defined in this model. The navigation that occurs during process
execution is fixed and the user only has to follow it.</p>
      <p>This work has been developed as a part of a bigger project aimed at the
development of Business Process driven Web applications. This bigger project involves the
development of Web applications based on the MDA approach. Next two subsections
are dedicated (1) to present an overview of the whole project pointing out the part
covered in this work and (2) to reference the tools that have been used in its
development.</p>
      <sec id="sec-2-1">
        <title>3.1 Project Overview</title>
        <p>As we have mentioned previously, the project has been conceived taking into
account the MDA approach. Following this philosophy, the whole system is specified in
a technological independent fashion by means of different models which represent the
different aspects that characterize this kind of Web applications. Fig. 1 shows both the
models included in the proposal (including the dependences between them) and the
transformations required to evolve this specification into new models or even final
code (depending on the case).</p>
        <p>E
C
A
P
S
M
E
L
B
O
R
P
N
ILTUO SEPCA
O
S</p>
        <sec id="sec-2-1-1">
          <title>OO-Method</title>
        </sec>
        <sec id="sec-2-1-2">
          <title>Structural Model</title>
          <p>(Class Diagram)</p>
        </sec>
        <sec id="sec-2-1-3">
          <title>Functional Model</title>
        </sec>
        <sec id="sec-2-1-4">
          <title>Dynamic Model</title>
          <p>(STD Diagram)
»
ssu
e
«</p>
        </sec>
        <sec id="sec-2-1-5">
          <title>Business Process</title>
        </sec>
        <sec id="sec-2-1-6">
          <title>Model</title>
          <p>«uses»</p>
        </sec>
        <sec id="sec-2-1-7">
          <title>Services Model</title>
          <p>M
o
d
l-eo «eg
t-oM rne
ed ta</p>
          <p>e
Tl s»
fsrn
a
.</p>
          <p>«generates»
Model-to-Text Transf.
«generates»
Model-to-Text Transf.</p>
        </sec>
        <sec id="sec-2-1-8">
          <title>Services Layer</title>
        </sec>
        <sec id="sec-2-1-9">
          <title>Servicios Web SOAP</title>
        </sec>
        <sec id="sec-2-1-10">
          <title>Logic Layer</title>
        </sec>
        <sec id="sec-2-1-11">
          <title>WS-BPEL</title>
        </sec>
        <sec id="sec-2-1-12">
          <title>OOWS</title>
        </sec>
        <sec id="sec-2-1-13">
          <title>Navigational Model</title>
        </sec>
        <sec id="sec-2-1-14">
          <title>Presentation Model</title>
          <p>«generates»</p>
          <p>Model-to-Text Transf.</p>
        </sec>
        <sec id="sec-2-1-15">
          <title>Presentation Layer asp, jsp, php, perl, etc.</title>
          <p> the Structural Model, which defines the system structure (its classes,
operations and attributes) and relationships between classes by means of a Class
Diagram.
 the Dynamic Model, which describes (1) the different valid object-life
sequence for each class of the system using State Transitions Diagrams and (2)
the communication between objects by means of Sequence Diagrams.
 the Functional Model, which captures the semantics of the state changes to
define service effects using a textual formal specification.</p>
          <p>The Services and Business Process models were introduced to specify the
interaction with external partners.</p>
          <p>
             the Services Model, which brings up external services (functionality provided
by external partners) into the modelling level in order to manage them more
easily [
            <xref ref-type="bibr" rid="ref12">12</xref>
            ].
 the Business Process Model, which specify by means of BPMN diagrams a
set of processes in which can intervene both functionality provided by the
local system as well as functionality provided by external partners. The
activities that made up these processes represent functionality defined both in the
Structural Model and in the Services Model.
          </p>
          <p>
            The OOWS (Object Oriented Web Solutions) models were introduced in order to
extend conceptual modeling to Web environments. These models are:
 the User Model, which defines the kind of users that are going to interact
with the web application. Moreover, it defines inheritance relationships
between them.
 the Navigational Model allows us defining appropriate system views (in
terms of data and functionality) for each kind of user defined in the User
Model. This model was extended in a previous work [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ] with a set of new
primitives in order to integrate business process execution within the
Navigation.
 the Presentation Model allows us to model presentation requirements
(information paging, layout and ordering criteria) of the elements defined in the
Navigational Model.
          </p>
          <p>The whole project relies both on transformations between models (to move
knowledge between different aspects) and between model(s) and text (to generate an
equivalent/compliance representation in terms of an implementation language). In particular,
the part of the project that has been implemented and presented in this work refers to
the Model-to-Text transformation that moves process definitions represented in the
BPM into the WS-BPEL executable language.</p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>3.2 Technological Context</title>
        <p>For the development of this work we have made use of a set of tools most of them
included in the Eclipse project and that are commented in the following paragraphs.</p>
        <p>The Eclipse Modeling Framework2 (EMF) is the basis of several modeling projects
developed by the Eclipse community. EMF includes tools for the generation, edition
and serialization of models conforming to Ecore metamodels (an implementation of
the OMG’s Essential MOF to represent metamodels).</p>
        <p>The necessity of operations to work with models comes from the fact that the
Model Driven Development approach considers models as first-class citizens. The
Atlas Transformation Language3 (ATL) was defined to cope with operations referred
to model transformation. It allows the definition of transformation rules for the
creation of one or more output models from several input models. Moreover, the scope of
model transformation provided by this language is wide being quality improvement,
model refinement or model merging examples of some applications. The concept of
cartridge, a metamodel representing a technology and the corresponding code
generation in conjunction, permits the usage of model transformation to generate final
artifacts and helps to maintain the rationale of the generation in a model-to-model
transformation. With this approach, in opposition to a direct model-to-code transformation,
the artifacts involved in the development are maintained at the modeling level.</p>
        <p>XML Schemas are used to define XML-based formats, deriving an Ecore
metamodel from them allow the definition of Platform Specific Models (PSM). EMF
permits the generation of Ecore metamodels from XML Schemas. Models conforming the
generated metamodel are, when serialized, valid according to the schema. Web Tools
Platform4 (WTP) project offers several editors for different web-related formats to
ease Web applications and Web Services development. The XML tools have been
used to define XML Schemas and test them.</p>
        <p>The Babel BPMN2BPEL5 tool is a java application to transform BPMN diagrams
into WS-BPEL definitions. BPMN is a graphical notation and has no defined textual
format, so the tool input format is a concrete textual representation with no formal
description. The lack of a model behind the input format prevents integration of the
tool in a model driven environment. As the format is XML based, the definition of its
supported XML Schema and the equivalent Ecore metamodel enables us (1) the
creation of models and (2) the automatic code generation for the underlying format.
Moreover, it constitutes a cartridge usable at the modeling level.</p>
        <p>The SOA Tools Platform (STP) project aim is to offer a framework and a set of
tools to enable the development of SOA based applications. One of its sub-projects6
consists on the definition of a graphical editor to create BPMN diagrams. The editor is
based on Graphical Modeling Framework (GMF) and the BPMN metamodel has been
defined in Ecore, that enables its usage with EMF-based tools. Business Processes are
modeled using the BPMN graphical editor included in the STP project and a mapping
targeting the platform specific model of Babel tool will be defined.
2 http://www.eclipse.org/modeling/emf/
3 http://www.eclipse.org/m2m/atl/
4 http://www.eclipse.org/webtools/main.php
5 http://www.bpm.fit.qut.edu.au/projects/babel/tools/
6 http://www.eclipse.org/stp/bpmn</p>
        <p>As we have mentioned previously, service composition provide an added value to
the companies that provide them. Moreover, the execution of compositions that
include services that involve human participation can take a long time for being
completed and then it requires keeping the state of the composed service. To accomplish
this task we rely on the use of a process engine.</p>
        <p>In the following subsections we present the languages used to define and execute
service compositions.</p>
      </sec>
      <sec id="sec-2-3">
        <title>4.1 BPMN to define Service Compositions</title>
        <p>There are available several notations (such as UML Activity Diagrams, UML
EDOC Business Processes, IDEF, ebXML BPSS or BPMN among others) that can be
used to model BPs. In particular, we are going to use the BPMN notation because it
provides a mapping between the graphics of the notation to the underlying constructs
of an execution language, in particular to the WS-BPEL language, what makes this
notation a good candidate to be used. This notation is designed to cover a wide range
of type of diagrams (such as “high-level private process activities”, “detailed private
business processes”, “detailed private business processes with interactions to one or
more external entities” or “two or more detailed private business process interacting”
among others). However, as our goal is to obtain those software components that
implement these BP definitions, we are going to use the notation for the design of
“detailed private business processes with interactions to one or more external entities”.
It is important to make this clear in order to obtain, after the application of the
transformation rules, a running Web Application solution.
4.2</p>
      </sec>
      <sec id="sec-2-4">
        <title>WS-BPEL to Execute Service Compositions</title>
        <p>The growth in the adoption of the Web service technology made us to consider
services composition languages that were based on this technology. For this purpose, the
OASIS consortium is been developing Web services standards to cover for instance
issues such as security or e-business. One of these standards is the WS-BPEL, which
allows describing the behavior of a business process based on interactions between the
process and its partners through Web Service interfaces.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>5 Bridging the Gap between BPMN to WS-BPEL</title>
      <p>To achieve the goal established in this work (the translation between business
processes definitions represented in the BPMN notation into WS-BPEL executable
definitions) we have made use of the BPMN2BPEL tool. In fact, we have extended this tool
to provide support to the whole transformation.</p>
      <p>This tool is part of the process transformation tools developed in the BABEL
project (project developed by the Business Process Management group at QUT).
However, although this tool translates process models into process definitions represented
in WS-BPEL we wanted to provide the transformation directly from the BPMN
notation to WS-BPEL. Moreover, as these transformations represent just a part of a bigger
project, which is being developed within the Eclipse environment, we wanted to
integrate them as well in the same environment. Fig. 2 depicts graphically the process
followed to accomplish these goals.</p>
      <sec id="sec-3-1">
        <title>5.1 XML Schema Definition for the BPMN2BPEL tool</title>
        <p>BPMN is a graphical notation that lacks of a standard textual representation. Then,
the format used by the BPMN2BPEL tool is a particular XML application with no
definition of its grammar. In order to make the tool more interoperable it is desirable
to have, an XML Schema that represents the model behind the data. Although there
are several options to define XML applications (DTD, XML Schema, Relax NG,
Schematron, RDF and the like), we decided to use XML Schema because of its tight
integration with the EMF tools. XML Schema can be converted to an Ecore
metamodel and the instances of this model can be converted back again into an XML
conformant with the schema.</p>
        <p>First of all we needed to know the schema used by the BPMN2BPEL tool to
represent processes. Based on the suit of examples attached to the tool we could extract and
produce the process schema. The complete generated schema is included in the
Appendix A. This schema defines three elements which are nodes, arcs and code. The
first two elements refer to activities and flows respectively. The latter element allows
the definition of code that is directly copied into the generated WS-BPEL file.</p>
      </sec>
      <sec id="sec-3-2">
        <title>5.2 Transform the XML schema into the Ecore format</title>
        <p>Then, to define transformations between the original BPMN model and the process
model used by the BPMN2BPEL tool we have to transform the latter into the Ecore
Metamodel (which is used by EMF-based tools and allows us to manipulate it
properly).</p>
        <p>Fig. 3 depicts graphically a screenshot with an excerpt of the BPMN2BABEL input
model represented now in the Ecore Metamodel.</p>
      </sec>
      <sec id="sec-3-3">
        <title>5.3 Define model-to-model transformations</title>
        <p>Once we have both, source (BPMN) and target (process definition used by the
BPMN2BPEL tool) metamodels represented in the Ecore Metamodel we could
proceed to define the model-to-model transformations. To perform this transformation we
have used ATL as the transformation language. Although this language is not fully
compliance with the QVT standard it is enough mature and reliable to accomplish the
model-to-model transformations required in this project.</p>
        <p>Finally, the application of these transformations allows us to use the BPMN2BPEL
tool to obtain a process definition initially modelled following the BPMN notation
(Fig. 5) into an executable definition in WS-BPEL.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>6 Conclusions</title>
      <p>The application of a Model Driven Approach has proven satisfactory in several
aspects. In the one hand reduces the risk of manual errors (in this case the definition of
BPMN models was correct since there is a metamodel behind the scenes that enforces
a consistent definition them). On the other hand, the use of a graphical tool allows a
more comfortable definition of BPMN models.</p>
      <p>Moreover, the integration of tools at the modelling level allows the abstraction of
technological details and decouples the concepts from its physical representation.
Defining the bridge between models with a model-to-model transformation permits the
creation of simple mapping rules only dependent of both metamodels. The
transformation rules are explicit statements of the equivalence of the metamodels in a
technological agnostic way, thus the maintainability of the rules is better than ad-hoc export
solutions.</p>
      <p>The paper has presented a real application of the MDA approach in the scope of the
Web engineering area. In this case, model-to-model transformations have been
implemented in the ATL language, which has been proved adequate to achieve the
proposed goals. Moreover, the use of some of the projects developed under the Eclipse
community such as STP, WTP, EMF and M2M, have make possible its successful
development.</p>
      <p>Similar to these transformations, the rest of the project involves both
model-tomodel transformations defined in ATL (to obtain navigational models from business
process descriptions) and model-to-text transformations to obtain the executable code
that satisfies the system defined at the modeling level.</p>
    </sec>
    <sec id="sec-5">
      <title>Appendix A</title>
      <p>This appendix provides a complete listing of the XML Schema used by the
BPMN2BABEL tool as input format for business process definition.
&lt;schema
targetNamespace=http://www.bpm.fit.qut.edu.au/projects/babel/bpmn
elementFormDefault="qualified"
xmlns=http://www.w3.org/2001/XMLSchema
xmlns:tns="http://www.bpm.fit.qut.edu.au/projects/babel/bpmn"&gt;
&lt;element name="bpmn" type="tns:Bpmn"/&gt;
&lt;complexType name="Bpmn"&gt;
&lt;sequence&gt;
&lt;element name="process" type="tns:Process"/&gt;
&lt;/sequence&gt;
&lt;/complexType&gt;
&lt;complexType name="Process"&gt;
&lt;sequence&gt;
&lt;element name="code" type="anyType" maxOccurs="1" minOccurs="0"/&gt;
&lt;element name="nodes" type="tns:Nodes"/&gt;
&lt;element name="arcs" type="tns:Arcs"/&gt;
&lt;/sequence&gt;
&lt;attribute name="id" type="ID" use="required"/&gt;
&lt;/complexType&gt;
&lt;complexType name="Nodes"&gt;
&lt;sequence maxOccurs="unbounded" minOccurs="0"&gt;
&lt;element name="node" type="tns:Node"/&gt;
&lt;/sequence&gt;
&lt;/complexType&gt;
&lt;complexType name="Arcs"&gt;
&lt;sequence maxOccurs="unbounded" minOccurs="0"&gt;
&lt;element name="arc" type="tns:Arc"/&gt;
&lt;/sequence&gt;
&lt;/complexType&gt;
&lt;complexType name="Arc"&gt;
&lt;attribute name="id" type="ID" use="required"/&gt;
&lt;attribute name="source" type="IDREF" use="required"/&gt;
&lt;attribute name="target" type="IDREF" use="required"/&gt;
&lt;attribute name="guard" type="string" use="optional"/&gt;
&lt;/complexType&gt;
&lt;complexType name="Node"&gt;
&lt;attribute name="id" type="ID" use="required"/&gt;
&lt;attribute name="name" type="Name" use="optional"/&gt;
&lt;attribute name="type" type="tns:nodeType" use="optional"/&gt;
&lt;/complexType&gt;
&lt;simpleType name="nodeType"&gt;
&lt;restriction base="string"&gt;
&lt;enumeration value="StartEvent"/&gt;
&lt;enumeration value="MessageEvent"/&gt;
&lt;enumeration value="TimerEvent"/&gt;
&lt;enumeration value="XOR-Join"/&gt;
&lt;enumeration value="EB-XOR-Join"/&gt;
&lt;enumeration value="AND-Join"/&gt;
&lt;enumeration value="AND-Split"/&gt;
&lt;enumeration value="EndEvent"/&gt;
&lt;enumeration value="XOR-Split"/&gt;
&lt;enumeration value="EB-XOR-Split"/&gt;
&lt;/restriction&gt;
&lt;/simpleType&gt;
&lt;/schema&gt;</p>
    </sec>
    <sec id="sec-6">
      <title>Appendix B</title>
      <p>This appendix provides a complete listing of the ATL Transformations to move from
the BPMN to BABEL input format.
output
output
output
output
module bpmn2babel;
create OUT : babel from IN : bpmn;
helper context bpmn!Activity def: isXorJoin:Boolean=
self.activityType=#GatewayDataBasedExclusive and --XOR
self.incomingEdges.size()&gt;self.outgoingEdges.size(); --input &gt;
helper context bpmn!Activity def: isXorSplit:Boolean=
self.activityType=#GatewayDataBasedExclusive and --XOR
self.incomingEdges.size()&lt;self.outgoingEdges.size();--input &lt;
helper context bpmn!Activity def: isEbXorJoin:Boolean=
self.activityType=#GatewayEventBasedExclusive and --EBXOR
self.incomingEdges.size()&gt;self.outgoingEdges.size(); --input &gt;
output
helper context bpmn!Activity def: isEbXorSplit:Boolean=
self.activityType=#GatewayEventBasedExclusive and --EBXOR
self.incomingEdges.size()&lt;self.outgoingEdges.size();--input &lt;
helper context bpmn!Activity def: isAndJoin:Boolean=
self.activityType=#GatewayParallel and --AND
self.incomingEdges.size()&gt;self.outgoingEdges.size(); --input &gt;
output
helper context bpmn!Activity def: isAndSplit:Boolean=
self.activityType=#GatewayParallel and --AND
self.incomingEdges.size()&lt;self.outgoingEdges.size();--input &lt;
helper context bpmn!Activity def: isTask:Boolean=</p>
      <p>self.activityType = #Task;
helper context bpmn!Activity def: nodeType:babel!NodeType=
let nodeTypes: Map(Boolean,babel!NodeType)=</p>
      <p>Map{
(self.isStartEvent, #StartEvent),
(self.isMessageEvent, #MessageEvent),
(self.isTimerEvent, #TimerEvent),
(self.isXorJoin, #XORJoin),
(self.isXorSplit, #XORSplit),
(self.isEbXorJoin, #EBXORJoin),
(self.isEbXorSplit, #EBXORSplit),
(self.isAndJoin, #ANDJoin),
(self.isAndSplit, #ANDSplit),
(self.isEndEvent, #EndEvent)
rule Main {
from
bp: babel!Bpmn(</p>
      <p>process&lt;- p
),
p: babel!Process(
id&lt;-d.name,
nodes&lt;-nodes,
arcs&lt;-arcs
),
nodes: babel!Nodes(</p>
      <p>node&lt;-bpmn!Activity.allInstances() --
&gt;union(bpmn!Activity.allInstances()-&gt;select(a|a.splits and
a.isTask)&gt;collect(x|thisModule.resolveTemp(x,'gate')))
),
arcs: babel!Arcs(</p>
      <p>arc&lt;-bpmn!SequenceEdge.allInstances()--
&gt;union(bpmn!Activity.allInstances()-&gt;select(a|a.splits and
a.isTask)&gt;collect(x|thisModule.resolveTemp(x,'arc')))</p>
      <p>)
}
rule Activity2Node{
from a: bpmn!Activity
to
node: babel!Node(
id&lt;-a.iD,
name&lt;- a.name,
type &lt;- a.nodeType)
}
rule Sequence2Arc{
from s: bpmn!SequenceEdge
to
arc: babel!Arc(
id&lt;-s.iD,
source&lt;- s.source.iD,
target&lt;- s.target.iD,
guard&lt;-s.name)</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. ATL:
          <article-title>The Atlas Transformation Language</article-title>
          . http://www.sciences.univ-nantes.fr/lina/
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>BABEL</given-names>
            <surname>Project</surname>
          </string-name>
          .
          <article-title>Expressiveness Comparison and Interchange Facilitation between Business Process Execution Languages</article-title>
          . http://www.bpm.fit.qut.edu.au/projects/babel/
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Barna</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Frasincar</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Houben</surname>
            ,
            <given-names>G.J.:</given-names>
          </string-name>
          <article-title>A Workflow-driven Design of Web Information Systems</article-title>
          . In: International Conference on Web Engineering, ICWE2006, Palo Alto, USA,
          <fpage>11</fpage>
          -
          <issue>14</issue>
          <year>July 2006</year>
          , p.
          <fpage>321</fpage>
          -
          <lpage>328</lpage>
          ,
          <year>2006</year>
          , ACM.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Brambilla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ceri</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fraternali</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Manolescu</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          (
          <year>2006</year>
          ).
          <article-title>Process Modeling in Web Applications</article-title>
          .
          <source>ACM Transactions on Software Engineering and Methodology (TOSEM)</source>
          , vol.
          <volume>15</volume>
          , issue 4.
          <source>October</source>
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Business</given-names>
            <surname>Process Modeling</surname>
          </string-name>
          <article-title>Notation (BPMN) Version 1</article-title>
          .
          <fpage>0</fpage>
          - May 3,
          <fpage>2004</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <source>Business Process Execution Language for Web Services version 1.1. Feb</source>
          <year>2005</year>
          . http://www128.ibm.com/developerworks/library/specification/ws-bpel/
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>De Troyer</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Casteleyn</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          (
          <year>2003</year>
          ).
          <article-title>Modeling Complex Processes for Web Applications using WSDM</article-title>
          .
          <source>Paper presented at the Third International Workshop on Web-Oriented Software Technologies</source>
          , Oviedo, Asturias.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Koch</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kraus</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cachero</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meliá</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Integration of Business Processes in Web Application Models</article-title>
          .
          <source>Journal of Web Engineering</source>
          , vol.
          <volume>3</volume>
          , no.1 pp.
          <fpage>022</fpage>
          -
          <lpage>049</lpage>
          , May
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Pastor</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fons</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abrahao</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelechano</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Conceptual Modelling of Web Applications: the OOWS approach</article-title>
          . Web Engineering. In: Mendes,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Mosley</surname>
          </string-name>
          , N. (eds),
          <source>Springer</source>
          <year>2006</year>
          , pp.
          <fpage>277</fpage>
          -
          <lpage>302</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Schmid</surname>
            ,
            <given-names>H. A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rossi</surname>
          </string-name>
          , G.:
          <article-title>Modeling and Designing Processes in E-Commerce Applications</article-title>
          .
          <source>IEEE Internet Computing</source>
          , vol.
          <volume>8</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>19</fpage>
          -
          <lpage>27</lpage>
          , January/February,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Torres</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelechano</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Building Business Process Driven Web Applications</article-title>
          . In: Dustdar,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Fiadeiro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.L.</given-names>
            ,
            <surname>Sheth</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (eds.):
          <source>Business Process Management. 4th International Conference, BPM 2006. Lecture Notes in Computer Science</source>
          , Vol.
          <volume>4102</volume>
          , Springer Berlin / Heidelberg (
          <year>2006</year>
          )
          <fpage>322</fpage>
          -
          <lpage>337</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Torres</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelechano</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruiz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Valderas</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2005</year>
          ).
          <article-title>A Model Driven Approach for the Integration of External Functionality in Web Applications. The Travel Agency System</article-title>
          . Paper presented at the International Workshop on Model Driven Web Engineering. Sydney, Australia.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>