<!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>Real-time Web Services Orchestration and Choreography</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Kawtar Benghazi</string-name>
          <email>benghazi@ugr.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Manuel Noguera</string-name>
          <email>mnoguera@ugr.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Carlos Rodr´ıguez-Dom´ınguez</string-name>
          <email>carlosrodriguez@ugr.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ana Bel´en Pelegrina</string-name>
          <email>abpelegrina@ugr.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jos´e Luis Garrido</string-name>
          <email>jgarrido@ugr.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Granada Department of Languages and Computer Systems GEDES Research Group C/ Periodista Daniel Saucedo Aranda</institution>
          <addr-line>S/N. 18071 Granada</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2010</year>
      </pub-date>
      <fpage>142</fpage>
      <lpage>153</lpage>
      <abstract>
        <p>Real-Time issues are not usually considered when describing and composing web services. However, modern web services are usually involved in the software implementation of time-constrained business processes [1]. The satisfaction of time constraints is crucial in order to ensure the validity of systems where the response to a certain stimulation has to take place in a shortened period of time. Thus, the service composition problem becomes more complex, since time restrictions should be taken into account both in the choreography and orchestration processes in order to establish the temporal consistency of the web services. In this paper, we present a formal approach for real-time service orchestration and choreography. In this regard, we use UML-RT as a visual and user-friendly notation in order to model services and their interactions, Timed CSP as an underlying formal grounding to enable services verification and WS-BPEL as an execution language.</p>
      </abstract>
      <kwd-group>
        <kwd>Timed-web services</kwd>
        <kwd>web-services composition</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>Web services are loosely-coupled modular software applications that interact
with each other through web technologies. In order to enable inter and intra
organizational integration, these web services should be composed to work together
to carry out the integrated business process goals.</p>
      <p>The choreography and orchestration are important emerging mechanism that
deal with the problem of web services composition. Choreography is concerned
with the web services interaction coordination, and orchestration is concerned
with the creation of high level web services (called orchestrators) from existing
ones.</p>
      <p>
        Whenever web services are involved in the implementation of time-constrained
business processes [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], their composition becomes very complex, since time
restrictions should be taken into account both in the choreography and
orchestration processes in order to establish the temporal consistency of the web services.
To this matter, it is important to introduce the notion of timed web services,
which are services whose behavior and interactions with other services have to
accomplish pre-established time restrictions.
      </p>
      <p>
        Capturing time restrictions in orchestration and choreography requires the
usage of languages with enough expressive power to represent complex relations
about timely interaction between services. Moreover, it is very important to use
formal methods with a well defined syntax and semantics in order to ensure
the compositionally of timed web services and in order to verify the temporal
properties that they should fulfill. Several authors (e.g., [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]) have advocated
for the usage of process algebra for describing services and for reasoning on
their properties. In this paper, we use Timed CSP [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] for the orchestration and
choreography of timed web services. Timed CSP has several characteristics that
make it suitable in order to describe both the behavior and the interactions of
timed web services:
– It allows the description of temporal constraints.
– It has a well defined denotational and operational semantics [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. On that basis,
it can be checked whether processes satisfy properties of models by means of
model checker tools (e.g., HORAE [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], FDR [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]) or bisimulation
– Compositionally: the denotation of a process is constructed from denotations
of its parts.
      </p>
      <p>
        Timed CSP and formal methods have the disadvantage of being tedious to
use. In order to overcome this problem we combine this language with UML
notations, specifically with timed sequence diagrams [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and timed state diagrams
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Thus, both the choreography and the orchestration of timed web services are
carried out in a visual manner and, then, are mapped to Timed CSP processes
by applying a set of transformation rules.
      </p>
      <p>In the field of web services, the Web Service-Business Process Execution
Language (WS-BPEL) is a commonly adopted standard with a rich set of
constructs to compose services. In this paper, we establish a set of mapping rules
to systematically derive code from Timed CSP processes to WS-BPEL.</p>
      <p>
        Several works in the literature have addressed the composition of web services
[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], sequence diagrams are used for the choreography of web services. Also,
the transformation from sequence diagrams to WS-BPEL is given. In [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ],
UMLRT is used in order to describe timed web services. Other Works use formal
methods for describing and reasoning on web services. For example, [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
uses petri nets, [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] use CCS and [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] uses π-calculus. However, the time
constraints and the temporal consistency between services was not addressed in
any of these approaches.
      </p>
      <p>This paper is organized as follows: Section 2 gives an overview of Timed
CSP language. In Section 3, the timed web services and its constituents are
defined. Both Section 4 and Section 5 describe proposed web services
composition techniques. In Section 6, a mapping from Timed CSP to WS-BPEL is
defined. Finally, brief conclusions drawn from this paper and some ongoing work
is described in Section 7.</p>
    </sec>
    <sec id="sec-2">
      <title>2 An Overview of Timed CSP</title>
      <p>
        Timed CSP has been proposed as a specification language in order to model
and to reason on concurrent, parallel systems that must fulfill explicit time
constraints. Timed CSP in an extension over CSP [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] that introduces the capability
of quantifying temporal aspects of sequencing and synchronization [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. In this
paper, Timed CSP terms are constructed according to the following grammar:
P ::= Stop | Skip | W ait t | a → P | P ; Q |
      </p>
      <p>t</p>
      <p>P Q | P ⊲ Q | P k Q
These terms has the following intuitive interpretations:
– P is a process.
– Stop is a deadlocked, stable process which will never engage in any external
communication. It is the “broken program”.
– Skip does nothing except to end successfully √. This process is equivalent to
√ → ST OP .
– W ait t does nothing, but it is ready to end after a delay t.
– a → P is a process that is initially prepared to engage in an event a, and then
it behaves as P .
– P ; Q corresponds to the sequential composition of P and Q. It represents
a process that behaves like P until P chooses to terminates and becomes
to behave like Q. The process Q is turned on at the exact moment that P
terminates.
– P Q corresponds to a process that is willing to behave like either P or Q. The
choice is made by the environment. The decision is taken on the first visible
event (The process is non deterministic only if the first visible event of P and
Q are equal).</p>
      <p>t
– P ⊲ Q, is the process that initially gives P the priority of turning on. If no
visible event from P has occurred in t units of time, the process behaves as
Q, and P never turns on.
– P k Q represents a parallel composition of processes P and Q.
A variety of semantic models were defined for the Timed CSP language.</p>
      <p>The Timed CSP operational semantic model is given in terms of two relations:
an evolution relation, which describes the situation in which a process becomes
another one by simply allowing time to pass, and a timed transition relation,
which describes when a process becomes another one by performing an action
at a particular time.</p>
      <p>The denotational model is used in order to provide formal semantics to Timed
CSP terms. It also allows to specify the required behavior of a process, that is,
its desired properties.</p>
      <p>The properties to be satisfied by a system or a process are defined in terms
of timed failures (or timed traces). This definition characterizes some timed
failures (timed traces) as acceptable and some others as non-acceptable. A process
complies with its specification only if all its executions are acceptable, that is,
none of its executions violates its specification.</p>
      <p>Likewise, if we denote (tr, ℵ) as a timed failure and S(tr, ℵ) as a predicate in
the timed failure, then it is said that P satisf ies or complies with S(tr, ℵ) if
S(tr, ℵ) holds for any timed failure (trace) of P .</p>
      <p>P sat S(tr, ℵ) ⇔ ∀(s, ℵ) ∈ tf ailure(P ) : S(tr, ℵ)</p>
      <p>
        The specification of a process in terms of timed traces allows the description
of both safety and liveness properties [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>3 Real-Time Service Elements</title>
      <p>Services are self-contained active entities. Real-time services are services that
must behave under certain time restrictions. Thus, the operation of a real-time
service can only be considered correct if it delivers a valid result in a predefined
time range.</p>
      <p>A real-time service is conceptually equal to a capsule in UML-RT. Thus, in
this paper it is used the same visual representation of an UML-RT capsule to
represent real-time services. Figure 1 shows the elements involved in a
communication with services.</p>
      <p>S1</p>
      <sec id="sec-3-1">
        <title>Uses</title>
        <p>P: In-Out
provides
&lt;&lt;Interfaces&gt;&gt;</p>
        <p>In
inbound request
&lt;&lt;Interfaces&gt;&gt;</p>
        <p>Out
outbound requests
&lt;&lt;Protocol Role&gt;&gt;</p>
        <p>In-out
inbound request
outbound requests</p>
        <p>A real-time service Si communicates with other services through a set of
interaction ports Pk and according to a pre-established communication protocol.
It is important to mention that ports in our approach are active and therefore
they have an associated behavior.</p>
        <p>Each port can be associated to one or two interfaces. This interfaces
represents access points that control the behavior of the whole service. We can
distinguish between two types of interfaces:
– Provided interfaces that describe the set of input requests and represent the
set of public operations provided by the service.
– Required interfaces that describe the set of output requests and represent the
set of public operations required by the service.</p>
        <p>The set of input and output requests are encapsulated in protocols and
protocol roles.</p>
        <p>Definition 1: Real-time services Real-time services are modular software
applications that interact with each other through interfaces. This definition
coincide of the definition of a process in Timed CSP conceptual framework.
Thus, a real-time service can be represented by a process P in Timed CSP.</p>
        <p>A real-time service has an internal and an external timed behavior:
– Internal timed behavior. It describes the behavior of the service that is
associated with the accomplishment of its internal tasks. This behavior can be
represented as a set of timed events that may be observed during the service
execution. These are the timed traces σ = h(σ1, t1), (σ2, t2) . . . (σn, tn)i with
∀i ∈ 1..n, σi ∈ α(P ), α(P ) the set of all action of P and ti the time occurrence
of the event σi.
– External timed behavior. It describes the set of interactions between a service
and its environment (i.e., a system composed by other services). Moreover, it
provides a black box that only shows an abstraction over the functionality that
is provided by a service, which will also hide its internal actions. Formally, the
internal behavior σint of a timed-service can be deduced from its internal one
by hiding all its internal actions: σint = σ \ IN T , with IN T a set of internal
action of a service.</p>
        <p>It is possible to distinguish two types of real-time services:
– Primitive services are services that are not able to be divided.
– Composite services or orchestrators are a set of services that are composed of
existing services.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4 Real-time Service Choreography</title>
      <p>
        The choreography is concerned with the interaction between services. This
interaction is carried out through a set of messages exchanged between the interfaces
or the ports of the services. Due to this message passing nature, undesirable
situations such as deadlocking can be reached if the behavior of the services is
inconsistent. In order to ensure behavior consistency between communicating
services, the communications between their interfaces or ports must be
coordinated.
Definition 2: Business Protocol The business protocol represents a valid
communication sequence (conversation) and can be specified by a timed sequence
diagram (as it is shown in figure 2) or its corresponding timed traces (by applying
the rules described in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]) and a set of temporal restrictions. Each trace has the
form h(e1, t1), (e2, t2) . . . (en, tn)i, where each ti represents the instant of time
when the corresponding event ei occurs and, therefore, it establishes a partial
order in the occurrence of events. The set of the temporal restrictions has the
form {ti Op tj [+d]}, being Op a relational operator and d an optional amount
of time.
      </p>
      <sec id="sec-4-1">
        <title>Port S1</title>
      </sec>
      <sec id="sec-4-2">
        <title>Behaviour</title>
        <p>S1
Port</p>
        <p>S1
t1
ex1
ey1
ex2
ey2
Port
S2
t2&gt;t1+5
S2</p>
      </sec>
      <sec id="sec-4-3">
        <title>Port S2</title>
      </sec>
      <sec id="sec-4-4">
        <title>Behaviour</title>
        <p>Protocol Behaviour</p>
        <p>Definition 3: Deadlock free A communication between two services σ1 and
σ2 is deadlock free if the parallel composition of the two services preserves the
execution order of the messages and the temporal constraints specified in a
conversation SD. Formally,</p>
        <p>σ1||σ2 |=T SD</p>
        <p>As an application example, let us consider a wire transfer order in an
online banking system. Once the client has confirmed all data and has ordered to
proceed through his/her web client, the transfer validation web service at the
bank server generates a random key and sends it out to the client’s mobile phone
by invoking another web service of the client’s mobile network operator. It also
randomly selects one position in the matrix of secret codes that every client has
and that each branch office provides to its clients. We call that value the code
card matrix position (CCMP). Then, the transfer validation service requests
the web client for the two codes: the one randomly generated and sent to the
client’s cell phone and the one from the client’s code card. This process has to
be completed in 15 seconds, from the time the proceed order is received until
the time an SMS is delivered to the client’s cell phone. Afterwards, the client
has 150 seconds to provide the requested codes. Otherwise the transfer would
be canceled. The interaction between the transfer validation and the web client
services is described in figure 3.</p>
        <p>Alt</p>
        <p>Web
Client</p>
        <sec id="sec-4-4-1">
          <title>Proceed_Transfer</title>
        </sec>
        <sec id="sec-4-4-2">
          <title>Ask_CCMP</title>
        </sec>
        <sec id="sec-4-4-3">
          <title>Security_Codes</title>
        </sec>
        <sec id="sec-4-4-4">
          <title>Transfer_Receipt</title>
        </sec>
        <sec id="sec-4-4-5">
          <title>Cancellation</title>
          <p>Transfer
Validation
0&lt;t&lt;150
timeout
t&gt;150</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5 Bottom-Up Service Orchestration</title>
      <p>
        In our approach, the internal behavior of primitive services is modeled by
transforming its timed sequence diagram into a corresponding timed state diagram,
following a set of rules established in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. A specification of this behavior in
Timed CSP syntaxis can be derived from a timed state diagram. Figure 4 shows
the internal behavior of the web client and the transfer validation services that
were introduced in previous section.
      </p>
      <p>Proceed_Transfer \ Code_generation;</p>
      <p>Code; Ask_CCMP
timeout\ Cancellation
I[0, 150]. Security_Codes
\ Order_Transfer</p>
      <p>Transfer Validation</p>
      <p>Transfer_Receipt</p>
      <p>The specification of composite services or orchestrators is deduced from the
formal specification of its components (i.e, existing services) following a
bottomup process, as it is shown in figure 5. These new services can be considered as
black-boxes that interact with the environment through their ports.
Definition 4: Orchestrators The behavior of an orchestrator Σ is defined by
the parallel composition of its lower level timed web services σi, ..., σn, by hiding
all their internal actions. Formally,</p>
      <p>Σ =ki=1..n σi \ IN T</p>
      <p>For example, the specification of the orchestrator that results from the
composition of both services TV and WC services is like follows:</p>
      <p>Orchestrator = (T V k W C) \ {Code Generation, Code}
1 In Timed CSP, the ? symbol represents “a waiting for requests” operation and the
! symbol represents a “send request” operation.</p>
      <sec id="sec-5-1">
        <title>Timed CSP</title>
      </sec>
      <sec id="sec-5-2">
        <title>Specification of</title>
      </sec>
      <sec id="sec-5-3">
        <title>Orchestrators</title>
      </sec>
      <sec id="sec-5-4">
        <title>Timed CSP</title>
      </sec>
      <sec id="sec-5-5">
        <title>Specification of</title>
      </sec>
      <sec id="sec-5-6">
        <title>Orchestrators</title>
      </sec>
      <sec id="sec-5-7">
        <title>Timed CSP</title>
      </sec>
      <sec id="sec-5-8">
        <title>Specification of primitive services</title>
        <p>P</p>
        <p>Pj
Composition</p>
        <p>Orchestration
P1
…
…</p>
        <p>Pn
Composition
Orchestration</p>
        <p>CCoommppoossiittiioonn
Orchestration</p>
        <p>Composition
Orchestration
P10 … P1k …</p>
        <p>Pj0 … Pjl
…</p>
        <p>Pn0 …Pnm
In this section we establish the transformation rules between Timed CSP and
WS-BPEL XML format. Table 1 summarizes these rules.</p>
        <p>Events to basic activities The main elements of Timed CSP framework are
events. Events represent atomic indivisible actions in the behavior of a process
and, thus, correspond to messages in WS-BPEL. These events may be either
reception or sending actions.
– The reception actions correspond to the basic activity &lt; receive &gt; .. &lt;
/receive &gt;.
– The sending actions may correspond to &lt; reply &gt; .. &lt; /reply &gt; or to &lt;
invoke &gt; .. &lt; /invoke &gt; basic activities, depending on whether the sending
action is an output-response to a previous request or a call to another service
with input parameters, respectively.</p>
        <p>Processes to structured activities
– SKIP is a process that indicates a successful termination and can be mapped
to the terminate activity.
– ST OP is a deadlock stable process that does not engage in any external
communication. This process models abnormal activity termination and, thus,
it corresponds to terminate activity.</p>
        <p>SKIP
STOP
P1; P2; …; Pn
P1 || P2 || …|| Pn
P</p>
        <p>Q
Wait t;
a ? P
Timed CSP</p>
        <p>WS-BPEL
empty
terminate
&lt;sequence&gt;</p>
        <p>Activity P1
….</p>
        <p>Activity Pn
&lt;\sequence&gt;
&lt;flow&gt;</p>
        <p>Activity P1
….</p>
        <p>Activity Pn
&lt;\flow&gt;
&lt;pick&gt;
&lt;\pick&gt;
&lt;Onmessage…..\&gt;
&lt;OnAlarm…\&gt;</p>
        <p>Wait for= “0 ” until=“t”
&lt; sequence &gt;
&lt; invoke, receive or reply.../ &gt;
activityP
&lt; /sequence &gt;
– a → P is the process that is initially prepared to engage in an event a and,
then, it behaves like P. This process corresponds to:</p>
        <p>&lt; sequence &gt;
&lt; /sequence &gt;
&lt; invoke, receive or reply.../ &gt;
activityP
– P 1||P 2 corresponds to a parallel execution of the structured activities P1, P2.., Pn,
expressed as &lt; f low &gt; P1, P2, Pn &lt; /f low &gt;.
– Delay wait t corresponds to:</p>
        <p>&lt; wait &gt;
&lt; /wait &gt;</p>
        <p>&lt; f or &gt; t &lt; /f or &gt;
t
– A time-sensitive choice (a → P ⊲ Q is a process that initially gives the turning
on priority to the process (a → P ). If the event a does not occur in t units
of time, a timeout occurs and the process behaves as Q and P never turns
itself on. This choice corresponds to a “pick” activity with an &lt; onM essage &gt;
activity and an &lt; onAlarm &gt; one.</p>
        <p>&lt; pick &gt;
&lt; pick &gt;
&lt; onM essage &gt; .. &lt; /onM essage &gt;</p>
        <p>ActivityP
&lt; onAlarm &gt;&lt; f or &gt; n &lt; /f or &gt;&lt; /onAlarm &gt;</p>
        <p>activityQ</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>7 Conclusions and Future Work</title>
      <p>Despite the fact that time in which processes and services have to take place
is capital in system design, there exists few proposals that address the capture
of time constraints when composing services. In this paper we have presented a
set of techniques for the orchestration and choreography of timed web services
that combines UML-RT, Timed CSP and WS-BPEL. This approach enables the
verification of some of the properties of real-time services while using a user
friendly notation.</p>
      <p>The techniques presented above will set the grounding for a model based
approach intended to develop time-constrained business processes based on web
services. This approach will be defined as a set of transformations between
different models, as in a Model-Driven Engineering (MDE) methodology.</p>
      <p>
        The intended development process can be summarized as follows:
1. CIM level. The business processes are designed using timed activity
diagrams as presented in previous work [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
2. PIM level. The specification of services and its composition is carried out by
      </p>
      <p>UML diagrams and its corresponding Timed CSP and WS-BPEL processes.
3. PSM level. An implementation of the models is specified in programming
languages like RT-CORBA, Java-RT, etc..</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Benghazi</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garrido</surname>
            ,
            <given-names>J.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Noguera</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hurtado</surname>
            ,
            <given-names>M.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chung</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Extending and formalizing uml 2.0 activity diagrams for the specification of time-constrained business processes</article-title>
          .
          <source>In: RCIS</source>
          . (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. Salau¨n, G.,
          <string-name>
            <surname>Bordeaux</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schaerf</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Describing and reasoning on web services using process algebra</article-title>
          .
          <source>In: ICWS '04: Proceedings of the IEEE International Conference on Web Services</source>
          , Washington, DC, USA, IEEE Computer Society (
          <year>2004</year>
          )
          <fpage>43</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Schneider</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Concurrent and Real-Time Systems - The CSP Approach</article-title>
          . John Wiley &amp; Sons, Ltd.,
          <string-name>
            <surname>Chichester</surname>
          </string-name>
          , England (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Schneider</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>An operational semantics for timed csp</article-title>
          .
          <source>Inf. Comput</source>
          .
          <volume>116</volume>
          (
          <issue>2</issue>
          ) (
          <year>1995</year>
          )
          <fpage>193</fpage>
          -
          <lpage>213</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Hao</surname>
            ,
            <given-names>P</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>J.S.D.J.S.</given-names>
            ,
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <surname>X.</surname>
          </string-name>
          :
          <article-title>Reasoning about timed csp models</article-title>
          .
          <source>In: 14th International Symposium on Formal Methods (FM'06)</source>
          . (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Roscoe</surname>
            ,
            <given-names>A.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoare</surname>
            ,
            <given-names>C.A.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bird</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <source>The Theory and Practice of Concurrency</source>
          . Prentice
          <string-name>
            <surname>Hall</surname>
            <given-names>PTR</given-names>
          </string-name>
          , Upper Saddle River, NJ, USA (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Benghazi</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Medistam-RT</surname>
          </string-name>
          : Metodolog´ıa de Disen˜o y An´alisis de Sistemas de Tiempo-Real.
          <source>Phd Thesis</source>
          , University of Granada, Spain (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Rauf</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Iqbal</surname>
            ,
            <given-names>M.Z.Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malik</surname>
            ,
            <given-names>Z.I.</given-names>
          </string-name>
          :
          <article-title>Uml based modeling of web service composition - a survey</article-title>
          .
          <source>In: SERA '08: Proceedings of the 2008 Sixth International Conference on Software Engineering Research, Management and Applications</source>
          , Washington, DC, USA, IEEE Computer Society (
          <year>2008</year>
          )
          <fpage>301</fpage>
          -
          <lpage>307</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Bauer</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , Mu¨ller,
          <string-name>
            <surname>J.P.</surname>
          </string-name>
          :
          <article-title>Mda applied: From sequence diagrams to web service choreography</article-title>
          .
          <source>In: ICWE</source>
          . (
          <year>2004</year>
          )
          <fpage>132</fpage>
          -
          <lpage>136</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Cambronero</surname>
            ,
            <given-names>M.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Diaz</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pardo</surname>
            ,
            <given-names>J.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Valero</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Using uml diagrams to model real-time web services</article-title>
          .
          <source>In: ICIW '07: Proceedings of the Second International Conference on Internet and Web Applications and Services</source>
          , Washington, DC, USA, IEEE Computer Society (
          <year>2007</year>
          )
          <fpage>24</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Yeung</surname>
          </string-name>
          , W.:
          <article-title>Csp-based verification for web service orchestration and choreography</article-title>
          .
          <source>Simulation</source>
          <volume>83</volume>
          (
          <issue>1</issue>
          ) (
          <year>2007</year>
          )
          <fpage>65</fpage>
          -
          <lpage>74</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Martens</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Analyzing web service based business processes</article-title>
          .
          <source>In: FASE</source>
          . (
          <year>2005</year>
          )
          <fpage>19</fpage>
          -
          <lpage>33</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. C´amara, J.,
          <string-name>
            <surname>Canal</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cubo</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vallecillo</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Formalizing wsbpel business processes using process algebra</article-title>
          .
          <source>Electron. Notes Theor. Comput. Sci</source>
          .
          <volume>154</volume>
          (
          <issue>1</issue>
          ) (
          <year>2006</year>
          )
          <fpage>159</fpage>
          -
          <lpage>173</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Puhlmann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Soundness verification of business processes specified in the picalculus</article-title>
          .
          <source>In: OTM Conferences (1)</source>
          . (
          <year>2007</year>
          )
          <fpage>6</fpage>
          -
          <lpage>23</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Hoare</surname>
            ,
            <given-names>C.A.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoare</surname>
            ,
            <given-names>C.A.R.</given-names>
          </string-name>
          :
          <article-title>Communicating sequential processes</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>21</volume>
          (
          <year>1985</year>
          )
          <fpage>666</fpage>
          -
          <lpage>677</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Dong</surname>
            ,
            <given-names>J.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sun</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hao</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Reasoning about timed csp models (</article-title>
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Dong</surname>
            ,
            <given-names>J.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hao</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sun</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          :
          <article-title>A Reasoning Method for Timed CSP Based on Constraint Solving</article-title>
          .
          <source>In: Formal Methods and Software Engineering</source>
          . Springer Berlin / Heidelberg (November
          <year>2006</year>
          )
          <fpage>342</fpage>
          -
          <lpage>359</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Benghazi</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          , Tun˜´on,
          <string-name>
            <given-names>M.I.C.</given-names>
            ,
            <surname>Holgado</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.A.</given-names>
            ,
            <surname>Mendoza</surname>
          </string-name>
          ,
          <string-name>
            <surname>L.E.</surname>
          </string-name>
          :
          <article-title>Towards uml-rt behavioural consistency</article-title>
          .
          <source>In: ICEIS (3)</source>
          . (
          <year>2007</year>
          )
          <fpage>612</fpage>
          -
          <lpage>615</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mukerji</surname>
          </string-name>
          , J.:
          <source>MDA Guide Version 1.0.1. Technical report, OMG</source>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>