<!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>Synthesizing an Automata-based Representation of BPMN2 Choreography Diagrams?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Marco Autili</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Davide Di Ruscio</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Amleto Di Salle</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Paola Inverardi</string-name>
          <email>paola.inverardig@univaq.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universita degli Studi di L'Aquila</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Choreographies are an emergent Service Engineering approach to compose together and coordinate distributed services. They represent a global speci cation of the interactions between the participant services. BPMN2 provides a dedicated notation, called Choreography Diagrams, to de ne choreographies. This paper presents a model transformation to automatically transform a BPMN2 choreography speci cation into an automata-based representation called Choreography LTS (CLTS). The latter is a LTS suitably extended to, on one side model the complex interactions that can be speci ed by choreography diagrams, on the other provide modelers with a means to precisely extract the not-easy-to-grasp coordination logic \hidden" into BPMN2 Choreography Diagrams. Dedicated Eclipse plugins, within the CHOReOSynt tool, have been developed to support the presented transformation.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Choreographies are an emergent Service Engineering approach to compose
together and coordinate distributed services. They describe the interactions
between the participant services by specifying the way business participants
coordinate their interactions from a global perspective. The OMG BPMN2 [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]
Choreography Diagrams are the standard de facto for specifying service
choreographies by providing powerful constructs to specify complex interactions where
message exchanges between participants go far beyond simple request-response
interactions that follow a sequential ow. Choreography diagrams permit to
specify inclusive and exclusive conditional branches, parallel branches to be joined
at later execution points, looping tasks, and so on.
      </p>
      <p>
        BPMN2 speci cations can be very complex and the standard speci cation
introduces constraints that a choreography designer shall obey to achieve
wellformed choreography speci cations. Unfortunately, the standard only provides
a textual description for these constraints, hence making their correct
understanding di cult. In the literature many approaches have been proposed to
deal with the problems of choreography realizability, conformance, and
enforcement, e.g., [
        <xref ref-type="bibr" rid="ref2 ref21 ref23 ref4 ref8 ref9">21,8,4,23,9,2</xref>
        ]). These approaches are based on di erent
interpretations of the choreography interaction semantics in terms of both the subset of
considered choreography constructs and the used formal notation. Moreover, the
adopted notations, although powerful and well known in the formal community,
? This work is partially supported by the EU FP7/2007-2013 under grant agreement
number 257178 (project CHOReOS - www.choreos.eu).
do not completely satisfy requirements related to usability and pragmatism that
BPMN2 choreography modelers usually require.
      </p>
      <p>
        In this paper we overview the model transformation we have adopted within
the CHOReOS EU project (www.choreos.eu) to generate from a BPMN2
choreography diagram an automata-based speci cation of the coordination logic
\implied" by the choreography. The transformation constitutes the core of the overall
methodology we apply in CHOReOS to solve the problem of automatic
choreography enforcement. The core objective of CHOReOS is to leverage model-based
methodologies [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and relevant SOA standards, while making choreography
development a systematic process to the reuse and the assembling of services
discovered within the Internet. Our approach has two main advances: (i) most of
the complex constructs of BPMN2 choreography diagrams, e.g., inclusive and
parallel gateways, are handled; (ii) an extension of LTSs, called Choreography
LTS (CLTS), is provided to enable explicit descriptions of the coordination logic
that must be applied to enforce the choreography, by adopting a notation that is
closer to the BPMN2 choreography one; (iii) CLTS makes explicit
coordinationrelated information that in BPMN2 is implicit. This allows to statically infer the
information needed for enabling distributed coordination that, otherwise, should
be calculated at run time for each choreography instance and for each
execution of it. For instance, the CLTS model speci es the source and target state
from which a task is initiated and terminated, the corresponding transition and
enabling condition.
      </p>
      <p>The paper is structured as follows. Section 2 introduces the considered
BPMN2 choreography constructs. Section 3 brie y outlines the model
transformation we have developed and how the introduced BPMN2 constructs are
mapped to CLTS constructs. Related works are discussed in Section 4 and
conclusions and future directions are given in Section 5.</p>
    </sec>
    <sec id="sec-2">
      <title>2 BPMN2 choreography diagram constructs</title>
      <p>In the following we leverage the in-depth study of the \meanders" of the BPMN2
standard speci cation document, and introduce the considered BPMN2
choreography diagram constructs by concisely describing their crucial characteristics.
In Figures 1 and 2, besides the BPMN2 constructs on the left side, we report
the corresponding CLTS translation that will be then discussed in Section 3.</p>
      <p>The selection of the considered BPMN2 constructs has been performed by
analysing the intrinsic aspects related to the choreography enforcement problem
and by ful lling the requirements of all the CHOReOS use cases.
With reference to Figure 1 (a)..(d), a choreography Task is an atomic activity
that represents an interaction by means of one or two (request and optionally
response) message exchanges between two participants. Graphically, BPMN2
diagrams uses rounded-corner boxes to denote choreography tasks. Each of them
is labeled with the roles of the two participants involved in the task, and the
name of the service operation performed by the initiating participant and
provided by the other one. A role contained in the white box denotes the initiating
participant. In particular, we recall that the BPMN2 speci cation employs the
theoretical concept of a token that, traversing the sequence ows and passing
through the elements in a process, aids to de ne its behavior. The start event
generates the token that must eventually be consumed at an end event.</p>
      <p>Depending on its type (i.e., ChoreographyLoopType in the BPMN2 speci
cation), a task may have one of the three markers: sequential multi-instance (b),
standard loop (c), and parallel multi-instance (d).</p>
      <p>With reference to Figure 1 (e) &amp; (f ), a Parallel Gateway is used to (e)
create and/or (f) synchronize parallel ows without checking any condition. Each
outgoing ow receives a token upon execution of this gateway. For incoming
ows, this gateway will wait for all incoming ows before triggering the ow
through its outgoing arrow. They create parallel paths of the choreography that
all Participants are aware of. With respect to the constraints imposed by the
BPMN2 o cial speci cation, the initiator participant(s) of all the tasks after the
gateway must be involved in all tasks that immediately precede such gateway.
The task that precedes the chain must also satisfy this constraint in the case
where there is a chain of gateways with no tasks in between.</p>
      <p>With reference to Figure 1 (g) &amp; (h), a Diverging (Decision) Exclusive
Gateway (g) is used to create alternative paths within a choreography. If none
of the conditional expressions (see cond1 and cond2) evaluate to true, a default
path can optionally be speci ed (see task op4). A Converging Exclusive Gateway
(h) is used to merge alternative paths. Each incoming ow token is routed to
the outgoing ow without synchronization. Being in a fully decentralized setting,
there is no central mechanism to store the data that will be used in the condition
expressions of the outgoing ows. The gateway's conditions may have natural
language descriptions but, as clari ed by the BPMN2 o cial speci cation, such
choreographies would be underspeci ed and would not be enforceable. To create
an enforceable choreography, the gateway conditions must be formal expressions
that can be precisely (and automatically for tool supported approaches) checked.
Still according to the BPMN2 o cial speci cation, the initiating participants of
the choreography tasks that follow the gateway must have sent or received the
message that provided the data upon which the conditional decision is made. In
addition, the message that provides the data for the gateway conditional decision
may be in any choreography task prior to the gateway (i.e., it does not have to
immediately precede the gateway). Thus, for the gateway to be automatically
enforced, we assume to have the speci cation of what messages provide the data
upon which the conditional decision can be actually made.</p>
      <p>With reference to Figure 2 (i) &amp; (j), a Diverging Inclusive Gateway (i) can
be used to create alternative but also parallel paths. Unlike the Exclusive
Gateway, all condition expressions are evaluated. All ows that evaluate to true will
be traversed by a token. Since each path is considered to be independent, any
combination of the paths may be taken, from zero to all. However, it should
be designed so that at least one path is taken. If none of the conditional
expressions (see cond1 and cond2) evaluate to true, a default path can optionally
be speci ed. A converging Inclusive Gateway (j) is used to merge a
combination of alternative and parallel paths. A control ow token entering an Inclusive
Gateway may be synchronized with some other token that arrives later.</p>
      <p>With reference to Figure 2 (k), a Sub-Choreography is a compound activity
task that de nes a ow of other tasks. Each sub-choreography involves two or
more participants.</p>
    </sec>
    <sec id="sec-3">
      <title>3 BPMN2-to-CLTS</title>
      <p>
        In this section we discuss how it is possible to derive CLTS models out of BPMN2
choreography speci cations. Such a translation can be done in di erent manners
including the adoption of general purpose programming languages. However,
as previously said, the presented work has been done in the context of the
CHOReOS EU project where model-driven principles and techniques [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] have
been employed to support the development of choreography-based systems.
      </p>
      <p>Before describing the model transformation, we introduce the CLTS
metamodel de ned for extending LTSs, and constitutes the foundation of the
coordination logic extracted by the synthesis process. The de nition of these
metamodels is the result of a survey we have conducted within CHOReOS. Speci cally,
in the literature a number of valuable approaches have been proposed to
transform di erent kinds of choreography notations into more formal speci cations.
For instance, by leveraging the concept of token, alternative models, such as
free-choice Petri Nets, might have been adopted (see Section 4). However, the
deep study we have initially conducted within CHOReOS to precisely de ne,
at the project level, the integration architecture for the CHOReOS Integrated
Development and Run-time Environment1 (IDRE), led the whole consortium to
agree on the de nition of the CLTS model, which best met the (both formal and
technical) requirements of all the software tools now integrated by the IDRE.
Indeed, to the purposes of de ning an integrated suite of tools to support the
whole choreography life cycle, the CLTS model brings together many features of
already existing formalisms and notations in the literature, and lters out those
ones not strictly needed. Last but not least, the main requirement was to have
a notation as close as possible to the BPMN2 choreography diagrams, while
enabling formal reasoning and automatic treatment by all the IDRE components.</p>
      <p>A fragment of the CLTS metamodel is shown in Figure 3. The metamodel
extends the basic notion of LTS state by introducing new elements to model
complex states, i.e., initial and final states, fork and join states, as well as,
activity loop and alternative states. The basic notion of labeled transition
has been extended to have the possibility of specifying participants roles,
service operations request/response/fault messages and related types,
as well as, conditions.</p>
      <p>
        As discussed later in the section, the BPMN2-to-CLTS transformation has
been implemented in a model-driven setting by means of the ATLAS
Transformation Language (ATL) [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. A model transformation takes as input one or more
models conforming to the source metamodels and generates one or more models
conforming to the target metamodels. Thus, to develop the BPMN2-to-CLTS
      </p>
      <sec id="sec-3-1">
        <title>1 http://www.choreos.eu/bin/view/Documentation/WebHome</title>
        <p>transformation, both the BPMN2 and CLTS metamodels are required. The
former is available in the Eclipse ecosystem; the latter consists of the following
elements (see Figure 3):
. the metaclass Model and its composition relations represent a choreography;
. plain states are represented by means of the metaclass State;
. initial and nal states are represented by means of the metaclasses
InitialState and FinalState, respectively;
. loop and alternative elements are represented by means of the metaclasses
ActivityLoop and Alternative, respectively;
. fork and join elements are represented by means of the metaclasses Fork and
Join, respectively;
. the set or roles played by the di erent participants in the choreography are
represented by means of the metaclass RoleDefinition, which consists of a
number of Role elements.
. the set of transition labels is represented by means of the metaclass
OperationDefinition, which contains Operation elements.
. transition relations are represented by means of the metaclass
LabeledTransition. The references initiatingParticipant, and
participant are de ned to represent the participants involved in the
considered interactions;</p>
        <p>In the remaining of the section we discuss how BPMN2 choreography diagram
constructs can be mapped to CLTS model element. The discussion is based on
the representative cases shown in Figure 1 and Figure 2.
(a)..(d) { As previously said, depending on its type (i.e.,
ChoreographyLoopType in the BPMN2 speci cation), a task may have
one of the three markers: sequential multi-instance (b), standard loop (c), and
parallel multi-instance (d). Accordingly, a task is transformed into a basic
state-to-state transition if no marker is speci ed (a), a CLTS ActivityLoop
transition with a xed number jnj of possible iterations if a BPMN2 sequential
multi-instance marker is speci ed (b), a conditional CLTS ActivityLoop
transition if a BPMN2 standard loop marker is speci ed (c), and a CLTS
state-to-state transition that can be forked (and then joined) a xed number
jnj of times if a BPMN2 parallel multi-instance marker is speci ed (d). In the
corresponding CLTS fragments, the transition label p1:m2::op1(m1):p2 speci es
that the participant p1 initiates the task op1 by sending the message m1 to the
receiving participant p2 which, in turn, returns the message m2.</p>
        <p>Note that the BPMN2 graphical elements do not show, neither the condition
expressions nor the speci ed xed number, which can only be internally speci ed.
In/out messages (i.e., request/response messages) are reported in the CLTS
transitions on the right-hand and left-hand sides of the operation name, respectively.
To bound the number of times a loop is repeated, either the condition expressions
must be evaluated (based on the data contained in the exchanged messages) in
the case of a standard loops, or counters must be employed (updated upon the
observed message exchanges) in the case of sequential and parallel multi-instance
loops. In any case, the task must be performed at least once, before checking the
condition or the counter. In this respect, it is worth to mention that one of the
reported critical issues (issue number 16554 - published in the o cial web site) is
about \underspeci cation of ChoreographyLoopType". The reported issue
basically says that it is mandatory to specify either the number of loop repetitions
or the expression that must be evaluated, on what messages and (for reasons
of enforceability) by which participant(s). In our model transformation we have
anticipated the resolution of this issue.
(e) &amp; (f ) { When used to create parallel ows, the parallel diverging gateway is
transformed using a CLTS Fork state that splits into all the outgoing ows. Note
that, in order to enforce the coordination logic implied by a parallel gateway, the
Fork state is used in a CLTS to model real parallelism (and not abstract
parallelism by means of interleaving). Complementarily, when a parallel converging
gateway is used to join parallel ows, a CLTS Join state is used.
The sequences for the remaining cases (g)..(k) can be easily obtained by
following the same method as for the previous cases.
(g) &amp; (h) { When used to create alternative paths, a diverging exclusive
gateway is transformed using a CLTS Alternative state. Note that the conditions
cond1 and cond2 are suitably combined to achieve exclusivity. When used to
merge alternative paths, a converging exclusive gateway is transformed using
state-to-state transitions that, by modeling the ows immediately preceding the
gateway, collapse into a further state-to-state transition that models the ow
immediately following the gateway. As a further clari cation, the very same
converging exclusive gateway behavior can be equivalently speci ed in BPMN2
without using the gateway construct. That is, with reference to the gure, it is
su cient to have three arrows that directly connect the tasks on the left to the
task on the right.
(i) &amp; (j) { Similarly to a diverging exclusive gateway, diverging inclusive
gateway is transformed using a CLTS Alternative state. However, to model that all
combinations of the paths may be taken, combined forking and joining paths are
used. To conform with this characteristic, the conditions cond1 and cond2 are
suitably combined to achieve exclusivity between not only single paths, but also
between the combined forking and joining paths and single paths. Considering
the previous explanations for the converging exclusive gateway and the diverging
inclusive gateway, the transformation for a converging exclusive gateway, when
merging combinations of alternative and parallel paths, is rather intuitive.
(k) Compound activities tasks are transformed by recursively applying the
previous rules. In Figure 2, only a very simple case is shown.</p>
        <p>
          All the previously discussed mappings have been automatized by means an
ATL [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] model transformation consisting of about 4.000 lines of code. By
applying the transformation rules described above, the BPMN2 choreography diagram
of Figure 4 is transformed to the corresponding CLTS diagram in Figure 5 (the
CLTS diagram has been drawn by means of the GMF-based editor we have
developed in CHOReOS). It is worth to clarify that the choreography in the
gure has been aptly created to highlight, in one choreography, most of the
crucial subtitles the transformation needs to handle. Therefore, it looks
articial from a use case point of view. For a set of realistic use cases, provided
by the CHOReOS industrial partners, and for downloading the Eclipse
plugins implementing the model transformation the interested reader can refer to
http://choreos.disim.univaq.it/.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4 Related Work</title>
      <p>The approach presented in this paper is related to a number of other valuable
approaches in the literature that, to di erent purposes, transform di erent kinds
of choreography notations into more formal speci cations.</p>
      <p>
        The de nition of our approach required the consideration of valuable
approaches in the literature (most notably [
        <xref ref-type="bibr" rid="ref2 ref21 ref23 ref4 ref8 ref9">21,8,4,23,9,2</xref>
        ]) and state-of-the-art
languages, systems, and techniques that have emerged in di erent contexts including
SOA, model-transformations, and seminal work on distributed coordination [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
Their consideration within the same research and development space [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is so far
being representing the opportunity for us to harness our knowledge towards the
systematic development of choreography-based systems.
      </p>
      <p>
        The common idea underlying the approaches in [
        <xref ref-type="bibr" rid="ref16 ref17 ref20 ref6 ref7">6,7,16,17,20</xref>
        ] is to assume a
high-level speci cation of the requirements that the choreography has to ful ll
and a behavioral speci cation of the services participating in the
choreography. From these two assumptions, by applying data and control- ow analysis, a
BPEL, WSCI or WS-CDL description of a centralized choreographer speci
cation is automatically derived. This description is derived in order to satisfy the
speci ed choreography requirements.
      </p>
      <p>
        The works described in [
        <xref ref-type="bibr" rid="ref11 ref22 ref24 ref3 ref4">22,24,3,11,4</xref>
        ] address the problem of checking
whether a choreography can be realized by a set of interacting services, each
of them synthesized by projecting the choreography speci cation on the role to
be played. This problem is known as choreography realizability check. The focus
is on verifying whether the set of services, required to realize a given
choreography, can be easily implemented by simply considering the role-based local
views of the speci ed choreography. That is, this veri cation does not aim at
extracting the global coordination logic that, as we do in CHOReOS, is needed
to check whether the collaboration among the discovered services leads to global
interactions that violate the choreography behavior.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] the authors presents a framework for verifying choreographies using
model and equivalence checking techniques. Leveraging a translation of the
choreography into LOTUS NT algebra, the framework enables the veri cation
of some analysis tasks, i.e., repairability, realizability, conformance,
synchronizability, and control for enforcing the choreography. In order to check in sequence
the system synchronizability and realizability using equivalence checking,
distributed controllers are generated through an iterative process presented in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], the authors show how to automatically generate a partial DAML-S
process model out of a WSDL description. The generated process model can be
then possibly completed manually by the developer. Although the aim of this
work is completely di erent from ours, it shows that DAML-S can be considered
as another possible notation BPMN2 choreographies could be mapped to.
      </p>
      <p>
        The work in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] presents an approach that generates a set of related
orchestrations from a choreography speci cation. Speci cally, a transformation to
derive a set of BPEL speci cations out of a CDL speci cation of the
choreography is formalized. Similarly to us, the transformation mappings is implemented
as transformation rules in ATL.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] the authors propose a model-driven method to develop collaborative
systems. The methods uses a graph transformation to derive a ow-local
choreography from a ow-global choreography. UML Activity Diagrams are used to
specify both the source model and the target model.
      </p>
      <p>
        Most of the previous approaches consider as input choreography speci ed by
using di erent notations and formalisms. Only few of them uses BPMN2
Choreography Diagrams, notably, [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. Depending on the speci c purposes, the
di erent approaches transform the choreography into di erent (formal)
representations such as Petri Net, LOTUS NT, various state machines, etc. Moreover, all
these approaches are based on di erent interpretations of the choreography
interaction semantics and consider di erent subsets of choreography constructs. A
weakness here resides on the fact that all the adopted formal notations are
distant from BPMN2.
      </p>
    </sec>
    <sec id="sec-5">
      <title>5 Conclusions and Future Work</title>
      <p>This paper presents a model transformation to extract from a BPMN2
choreography speci cation the global coordination logic and codify it into an extended
LTS, called Choreography LTS (CLTS). The expressiveness of the CLTS
metamodel allows us to fully automate the approach and to transform very complex
choreography speci cations into rigorous descriptions. The presented approach is
implemented as a REST service and it part of a model-based tool chain (named
CHOReOSynt 2) released to support the development of choreography-based
systems in the CHOReOS EU project.</p>
      <p>The approach has been applied to real-world use cases, provided by the
CHOReOS industrial partners, in the Airport, Marketing and Sale, and Taxy
Transportation domains. Interested readers can refer to the CHOReOS project
and CHOReOSynt web sites for documentation. The application of our approach
to these use cases has shown that the method is viable and practical. However,
although our preliminary validation has been carried out in a context in which
the presence of relevant to the approach stackholders are present, a real
quantitative assessment of the method needs further investigation. This is part of
our ongoing work together with an industrial partner of the CHOReOS project.
Another direction of future work will address the extension of the implemented
transformations to transform also BPMN2 choreography speci cations
containing events, as well as event-based and complex gateways.</p>
      <sec id="sec-5-1">
        <title>2 http://choreos.disim.univaq.it</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>M.</given-names>
            <surname>Aksit</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Kurtev</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Bezivin</surname>
          </string-name>
          .
          <article-title>Technological Spaces: an Initial Appraisal</article-title>
          .
          <source>International Federated Conf. (DOA</source>
          , ODBASE, CoopIS),
          <source>Industrial Track</source>
          , Los Angeles,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Autili</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Salle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Inverardi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Tivoli</surname>
          </string-name>
          .
          <article-title>A model-based synthesis process for choreography realizability enforcement</article-title>
          .
          <source>In FASE</source>
          , volume
          <volume>7793</volume>
          <source>of LNCS</source>
          , pages
          <volume>37</volume>
          {
          <fpage>52</fpage>
          .
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>S.</given-names>
            <surname>Basu</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Bultan</surname>
          </string-name>
          .
          <article-title>Choreography conformance via synchronizability</article-title>
          .
          <source>In Proc. of WWW '11</source>
          , pages
          <fpage>795</fpage>
          {
          <fpage>804</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>S.</given-names>
            <surname>Basu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Bultan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Ouederni</surname>
          </string-name>
          .
          <article-title>Deciding choreography realizability</article-title>
          .
          <source>In Procs. of POPL</source>
          <year>2012</year>
          , pages
          <fpage>191</fpage>
          {
          <fpage>202</fpage>
          . ACM,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>J.</given-names>
            <surname>Bezivin</surname>
          </string-name>
          .
          <source>On the Uni cation Power of Models. Jour. on Software and Systems Modeling (SoSyM)</source>
          ,
          <volume>4</volume>
          (
          <issue>2</issue>
          ):
          <volume>171</volume>
          {
          <fpage>188</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>A.</given-names>
            <surname>Brogi</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Popescu</surname>
          </string-name>
          .
          <source>Automated Generation of BPEL Adapters. In Proc. of ICSOC'06</source>
          , volume
          <volume>4294</volume>
          <source>of LNCS</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>D.</given-names>
            <surname>Calvanese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. D.</given-names>
            <surname>Giacomo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lenzerini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mecella</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Patrizi</surname>
          </string-name>
          .
          <article-title>Automatic service composition and synthesis: the roman model</article-title>
          .
          <source>IEEE Data Eng. Bull.</source>
          ,
          <volume>31</volume>
          (
          <issue>3</issue>
          ):
          <volume>18</volume>
          {
          <fpage>22</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Gossler and G. Salaun. Realizability of choreographies for services interacting asynchronously</article-title>
          .
          <source>In FACS</source>
          , volume
          <volume>7253</volume>
          <source>of LNCS</source>
          , pages
          <volume>151</volume>
          {
          <fpage>167</fpage>
          .
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. M. Gudemann, P. Poizat,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Salaun, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Dumont</surname>
          </string-name>
          .
          <article-title>Verchor: A framework for verifying choreographies</article-title>
          .
          <source>In FASE</source>
          , volume
          <volume>7793</volume>
          <source>of LNCS</source>
          , pages
          <volume>226</volume>
          {
          <fpage>230</fpage>
          .
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. M. Gudemann, G. Salaun, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Ouederni</surname>
          </string-name>
          .
          <article-title>Counterexample guided synthesis of monitors for realizability enforcement</article-title>
          .
          <source>In ATVA, LNCS</source>
          , pages
          <volume>238</volume>
          {
          <fpage>253</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>S.</given-names>
            <surname>Halle</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Bultan</surname>
          </string-name>
          .
          <article-title>Realizability analysis for message-based interactions using shared-state projections</article-title>
          .
          <source>In FSE</source>
          , pages
          <volume>27</volume>
          {
          <fpage>36</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. F. Han,
          <string-name>
            <surname>S</surname>
          </string-name>
          . Kathayat,
          <string-name>
            <given-names>H.</given-names>
            <surname>Le</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Brek</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Herrmann</surname>
          </string-name>
          .
          <article-title>Towards choreography model transformation via graph transformation</article-title>
          .
          <source>In Procs. of ICSESS</source>
          <year>2011</year>
          , pages
          <fpage>508</fpage>
          {
          <fpage>515</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Allilaire</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Bezivin</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Kurtev.</surname>
          </string-name>
          <article-title>ATL: A model transformation tool</article-title>
          .
          <source>Science of Computer Programming</source>
          ,
          <volume>72</volume>
          (
          <issue>1-2</issue>
          ):
          <volume>31</volume>
          {
          <fpage>39</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>R.</given-names>
            <surname>Khadka</surname>
          </string-name>
          .
          <article-title>Model-Driven Development of Service Compositions: Transformation from Service Choreography to Service Orchestrations</article-title>
          .
          <article-title>Thesis for a degree in master of science in computer science</article-title>
          , University of Twente, Enschede, The Netherlands.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>L.</given-names>
            <surname>Lamport</surname>
          </string-name>
          . Time,
          <article-title>Clocks, and the Ordering of Events in a Distributed System</article-title>
          .
          <source>Commun. ACM</source>
          ,
          <volume>21</volume>
          :
          <fpage>558</fpage>
          {
          <fpage>565</fpage>
          ,
          <year>July 1978</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>A.</given-names>
            <surname>Marconi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Pistore</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Traverso</surname>
          </string-name>
          .
          <source>Automated Composition of Web Services: the ASTRO Approach. IEEE Data Eng. Bull.</source>
          ,
          <volume>31</volume>
          (
          <issue>3</issue>
          ):
          <volume>23</volume>
          {
          <fpage>26</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. T. Melliti,
          <string-name>
            <given-names>P.</given-names>
            <surname>Poizat</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S. B.</given-names>
            <surname>Mokhtar</surname>
          </string-name>
          .
          <article-title>Distributed behavioural adaptation for the automatic composition of semantic services</article-title>
          .
          <source>In In Procs. of FASE'08/ETAPS'08</source>
          , pages
          <fpage>146</fpage>
          {
          <fpage>162</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. OMG.
          <source>Business Process Model And Notation (BPMN) Version</source>
          <volume>2</volume>
          .0. http://www. omg.org/spec/BPMN/2.0/.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>M. Paolucci</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Srinivasan</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Sycara</surname>
            , and
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Nishimura</surname>
          </string-name>
          .
          <article-title>Towards a semantic choreography of web services: from wsdl to daml-s</article-title>
          .
          <source>In In Procs. of ICWS'03</source>
          , pages
          <fpage>22</fpage>
          {
          <fpage>26</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>J. Pathak</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Lutz</surname>
            , and
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Honavar</surname>
          </string-name>
          .
          <article-title>Moscoe: An approach for composing web services through iterative reformulation of functional speci cations</article-title>
          .
          <source>International Journal on Arti cial Intelligence Tools</source>
          ,
          <volume>17</volume>
          :
          <fpage>109</fpage>
          {
          <fpage>138</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>P.</given-names>
            <surname>Poizat</surname>
          </string-name>
          and
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Salaun. Checking the Realizability of BPMN 2.0 Choreographies</article-title>
          .
          <source>In Proc. of SAC</source>
          <year>2012</year>
          , pages
          <year>1927</year>
          {
          <year>1934</year>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22. G.
          <article-title>Salaun. Generation of service wrapper protocols from choreography speci cations</article-title>
          .
          <source>In Proc. of SEFM</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>A.</given-names>
            <surname>Stefanescu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Wieczorek</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Schur</surname>
          </string-name>
          . Message choreography modeling.
          <source>Software &amp; Systems Modeling</source>
          , pages
          <volume>1</volume>
          {
          <fpage>25</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>J. Su</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Bultan</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          <string-name>
            <surname>Fu</surname>
            , and
            <given-names>X.</given-names>
          </string-name>
          <string-name>
            <surname>Zhao</surname>
          </string-name>
          .
          <article-title>Towards a theory of web service choreographies</article-title>
          .
          <source>In WS-FM</source>
          , pages
          <volume>1</volume>
          {
          <fpage>16</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>