<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Real-time Web Services Orchestration and Choreography</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Kawtar</forename><surname>Benghazi</surname></persName>
							<email>benghazi@ugr.es</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Languages and Computer Systems GEDES Research Group C</orgName>
								<orgName type="institution">University of Granada</orgName>
								<address>
									<addrLine>Periodista Daniel Saucedo Aranda S/N</addrLine>
									<postCode>18071</postCode>
									<settlement>Granada</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Manuel</forename><surname>Noguera</surname></persName>
							<email>mnoguera@ugr.es</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Languages and Computer Systems GEDES Research Group C</orgName>
								<orgName type="institution">University of Granada</orgName>
								<address>
									<addrLine>Periodista Daniel Saucedo Aranda S/N</addrLine>
									<postCode>18071</postCode>
									<settlement>Granada</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Carlos</forename><surname>Rodríguez-Domínguez</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Languages and Computer Systems GEDES Research Group C</orgName>
								<orgName type="institution">University of Granada</orgName>
								<address>
									<addrLine>Periodista Daniel Saucedo Aranda S/N</addrLine>
									<postCode>18071</postCode>
									<settlement>Granada</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Ana</forename><forename type="middle">Belén</forename><surname>Pelegrina</surname></persName>
							<email>abpelegrina@ugr.es</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Languages and Computer Systems GEDES Research Group C</orgName>
								<orgName type="institution">University of Granada</orgName>
								<address>
									<addrLine>Periodista Daniel Saucedo Aranda S/N</addrLine>
									<postCode>18071</postCode>
									<settlement>Granada</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">José</forename><forename type="middle">Luis</forename><surname>Garrido</surname></persName>
							<email>jgarrido@ugr.es</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Languages and Computer Systems GEDES Research Group C</orgName>
								<orgName type="institution">University of Granada</orgName>
								<address>
									<addrLine>Periodista Daniel Saucedo Aranda S/N</addrLine>
									<postCode>18071</postCode>
									<settlement>Granada</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Real-time Web Services Orchestration and Choreography</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">BFD3FE7718C2A6F13E9A2D7364BF9F5B</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T17:58+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>Timed-web services, web-services composition</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><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 <ref type="bibr" target="#b0">[1]</ref>. 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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><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 <ref type="bibr" target="#b0">[1]</ref>, 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.</p><p>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., <ref type="bibr" target="#b1">[2]</ref>) have advocated for the usage of process algebra for describing services and for reasoning on their properties. In this paper, we use Timed CSP <ref type="bibr" target="#b2">[3]</ref> 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:</p><p>-It allows the description of temporal constraints.</p><p>-It has a well defined denotational and operational semantics <ref type="bibr" target="#b3">[4]</ref>. On that basis, it can be checked whether processes satisfy properties of models by means of model checker tools (e.g., HORAE <ref type="bibr" target="#b4">[5]</ref>, FDR <ref type="bibr" target="#b5">[6]</ref>) 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 <ref type="bibr" target="#b6">[7]</ref> and timed state diagrams <ref type="bibr" target="#b6">[7]</ref>. 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 <ref type="bibr" target="#b7">[8]</ref>. In <ref type="bibr" target="#b8">[9]</ref>, sequence diagrams are used for the choreography of web services. Also, the transformation from sequence diagrams to WS-BPEL is given. In <ref type="bibr" target="#b9">[10]</ref>, UML-RT is used in order to describe timed web services. Other Works use formal methods for describing and reasoning on web services. For example, <ref type="bibr" target="#b10">[11]</ref>  <ref type="bibr" target="#b11">[12]</ref> uses petri nets, <ref type="bibr" target="#b1">[2]</ref> and <ref type="bibr" target="#b12">[13]</ref> use CCS and <ref type="bibr" target="#b13">[14]</ref> 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><p>2 An Overview of Timed CSP 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 <ref type="bibr" target="#b14">[15]</ref> that introduces the capability of quantifying temporal aspects of sequencing and synchronization <ref type="bibr" target="#b15">[16]</ref>. In this paper, Timed CSP terms are constructed according to the following grammar:</p><formula xml:id="formula_0">P ::= Stop | Skip | W ait t | a → P | P ; Q | P Q | P t ⊲ Q | P Q</formula><p>These terms has the following intuitive interpretations:</p><p>-P is a process.</p><p>-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 .</p><p>-W ait t does nothing, but it is ready to end after a delay t.</p><p>-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>-P t ⊲ 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><p>-P Q represents a parallel composition of processes P and Q.</p><p>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 <ref type="bibr" target="#b16">[17]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Real-Time Service Elements</head><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 <ref type="figure" target="#fig_0">1</ref> shows the elements involved in a communication with services. A real-time service S i communicates with other services through a set of interaction ports P k 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:</p><p>-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. 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:</p><p>-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 σ = (σ 1 , t 1 ), (σ 2 , t 2 ) . . . (σ n , t n ) with ∀i ∈ 1..n, σ i ∈ α(P ), α(P ) the set of all action of P and t i 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:</p><formula xml:id="formula_1">σ int = σ \ IN T , with IN T a set of internal action of a service.</formula><p>It is possible to distinguish two types of real-time services:</p><p>-Primitive services are services that are not able to be divided.</p><p>-Composite services or orchestrators are a set of services that are composed of existing services.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Real-time Service Choreography</head><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.</p><p>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 <ref type="figure" target="#fig_2">2</ref>) or its corresponding timed traces (by applying the rules described in <ref type="bibr" target="#b17">[18]</ref>) and a set of temporal restrictions. Each trace has the form (e 1 , t 1 ), (e 2 , t 2 ) . . . (e n , t n ) , where each t i represents the instant of time when the corresponding event e i occurs and, therefore, it establishes a partial order in the occurrence of events. The set of the temporal restrictions has the form {t i Op t j [+d]}, being Op a relational operator and d an optional amount of time.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>S1 S2</head><p>Port S1  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><formula xml:id="formula_2">σ 1 ||σ 2 |= T SD</formula><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 <ref type="figure" target="#fig_3">3</ref>. 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 <ref type="bibr" target="#b17">[18]</ref>. A specification of this behavior in Timed CSP syntaxis can be derived from a timed state diagram. Figure <ref type="figure" target="#fig_4">4</ref> shows the internal behavior of the web client and the transfer validation services that were introduced in previous section. By deriving timed state diagrams in figure <ref type="figure" target="#fig_4">4</ref> to Timed CSP, it is obtained the formal specification of the transfer validation service (annotated as TV) and the formal specification of the client (annotated as WC)<ref type="foot" target="#foot_1">1</ref> :</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Transfer Validation</head><note type="other">Web</note><formula xml:id="formula_3">T V = C1?P roceed T ransf er → Code Generation → C2!Code → C1!Ask CCM P ) (C1?Security Codes → (C1!T ransf er Receipt → SKIP )) 150 ⊲ (C1!Cancellation → SKIP ) W C = C1!P roceed T ransf er → (C1!Security Code → C1?T ransf er Receipt → SKIP ) 150 ⊲ (C1?Cancellation → SKIP )</formula><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 <ref type="figure" target="#fig_5">5</ref>. These new services can be considered as black-boxes that interact with the environment through their ports.</p><p>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><formula xml:id="formula_4">Σ = i=1..n σ i \ IN T</formula><p>For example, the specification of the orchestrator that results from the composition of both services TV and WC services is like follows:  In this section we establish the transformation rules between Timed CSP and WS-BPEL XML format. Table <ref type="table" target="#tab_1">1</ref> summarizes these rules.</p><formula xml:id="formula_5">Orchestrator = (T V W C) \ {Code</formula><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.</p><p>-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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Processes to structured activities</head><p>-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. ⊲ 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>&lt; pick &gt;</head><p>&lt; onM essage &gt; .. &lt; /onM essage &gt; ActivityP &lt; onAlarm &gt;&lt; f or &gt; n &lt; /f or &gt;&lt; /onAlarm &gt; activityQ &lt; pick &gt;</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7">Conclusions and Future Work</head><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:</p><p>1. CIM level. The business processes are designed using timed activity diagrams as presented in previous work <ref type="bibr" target="#b0">[1]</ref>. 2. PIM level. The specification of services and its composition is carried out by 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></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Service, port, interfaces and protocol role.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Services choreography using Timed sequence diagram.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. Timed sequence diagram</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. Internal behavior of web client and transfer validation services</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Fig. 5 .</head><label>5</label><figDesc>Fig. 5. Bottom-up service orchestration</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 1 .</head><label>1</label><figDesc>Mapping from Timed CSP to WS BPEL -the sequence P 1 ; P 2 ; ..P n obviously, corresponds to -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 1||P 2 corresponds to a parallel execution of the structured activities P 1 , P 2 .., P n , expressed as &lt; f low &gt; P 1 , P 2 , P n &lt; /f low &gt;. -Delay wait t corresponds to:</figDesc><table><row><cell>Timed CSP Timed CSP</cell><cell>WS-BPEL WS-BPEL</cell></row><row><cell>SKIP SKIP</cell><cell>empty empty</cell></row><row><cell>STOP STOP</cell><cell>terminate terminate</cell></row><row><cell>P 1 ; P 2 ; …; P n P 1 ; P 2 ; …; P n</cell><cell>&lt;sequence&gt; &lt;sequence&gt;</cell></row><row><cell></cell><cell>Activity P 1 Activity P 1</cell></row><row><cell></cell><cell>…. ….</cell></row><row><cell></cell><cell>Activity P n Activity P n</cell></row><row><cell></cell><cell>&lt;\sequence&gt; &lt;\sequence&gt;</cell></row><row><cell>P 1 || P 2 || …|| P n P 1 || P 2 || …|| P n</cell><cell>&lt;flow&gt; &lt;flow&gt;</cell></row><row><cell></cell><cell>Activity P 1 Activity P 1</cell></row><row><cell></cell><cell>…. ….</cell></row><row><cell></cell><cell>Activity P n Activity P n</cell></row><row><cell></cell><cell>&lt;\flow&gt; &lt;\flow&gt;</cell></row><row><cell></cell><cell>&lt;pick&gt; &lt;pick&gt;</cell></row><row><cell>P Q P Q</cell><cell>&lt;Onmessage…..\&gt; &lt;Onmessage…..\&gt;</cell></row><row><cell></cell><cell>&lt;OnAlarm…\&gt; &lt;OnAlarm…\&gt;</cell></row><row><cell></cell><cell>&lt;\pick&gt; &lt;\pick&gt;</cell></row><row><cell>Wait t; Wait t;</cell><cell>Wait for= "0 " until="t"</cell></row><row><cell>a ? P</cell><cell>&lt; sequence &gt;</cell></row><row><cell></cell><cell>&lt; invoke, receive or reply.../ &gt;</cell></row><row><cell></cell><cell>activityP</cell></row><row><cell></cell><cell>&lt; /sequence &gt;</cell></row><row><cell></cell><cell>&lt; sequence &gt;</cell></row><row><cell></cell><cell>P 1</cell></row><row><cell></cell><cell>P 2</cell></row><row><cell></cell><cell>..</cell></row><row><cell></cell><cell>P n</cell></row><row><cell></cell><cell>&lt; /sequence &gt;</cell></row><row><cell>&lt; sequence &gt;</cell><cell></cell></row><row><cell></cell><cell>&lt; invoke, receive or reply.../ &gt;</cell></row><row><cell></cell><cell>activityP</cell></row><row><cell>&lt; /sequence &gt;</cell><cell></cell></row></table><note>&lt; sequence &gt;&lt; invoke, receive or reply.../ &gt; activityP &lt; /sequence &gt; a ? P Wait for= "0 " until="t"</note></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_0">Real-time Web Services Orchestration and Choreography</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_1">In Timed CSP, the ? symbol represents "a waiting for requests" operation and the ! symbol represents a "send request" operation.</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Extending and formalizing uml 2.0 activity diagrams for the specification of time-constrained business processes</title>
		<author>
			<persName><forename type="first">K</forename><surname>Benghazi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">L</forename><surname>Garrido</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Noguera</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">V</forename><surname>Hurtado</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Chung</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">RCIS</title>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Describing and reasoning on web services using process algebra</title>
		<author>
			<persName><forename type="first">G</forename><surname>Salaün</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Bordeaux</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Schaerf</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICWS &apos;04: Proceedings of the IEEE International Conference on Web Services</title>
				<meeting><address><addrLine>Washington, DC, USA</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page">43</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">Concurrent and Real-Time Systems -The CSP Approach</title>
		<author>
			<persName><forename type="first">S</forename><surname>Schneider</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2000">2000</date>
			<publisher>John Wiley &amp; Sons, Ltd</publisher>
			<pubPlace>Chichester, England</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">An operational semantics for timed csp</title>
		<author>
			<persName><forename type="first">S</forename><surname>Schneider</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Inf. Comput</title>
		<imprint>
			<biblScope unit="volume">116</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="193" to="213" />
			<date type="published" when="1995">1995</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Reasoning about timed csp models</title>
		<author>
			<persName><forename type="first">P</forename><surname>Hao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">S D J S</forename><surname>Zhang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">14th International Symposium on Formal Methods (FM&apos;06)</title>
				<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">The Theory and Practice of Concurrency</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">W</forename><surname>Roscoe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">A R</forename><surname>Hoare</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Bird</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1997">1997</date>
			<publisher>Prentice Hall PTR</publisher>
			<pubPlace>Upper Saddle River, NJ, USA</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<author>
			<persName><forename type="first">K</forename><surname>Benghazi</surname></persName>
		</author>
		<title level="m">Medistam-RT: Metodología de Diseño y Análisis de Sistemas de Tiempo-Real</title>
				<meeting><address><addrLine>, Spain</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
		<respStmt>
			<orgName>University of Granada</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Phd Thesis</note>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Uml based modeling of web service composition -a survey</title>
		<author>
			<persName><forename type="first">I</forename><surname>Rauf</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">Z Z</forename><surname>Iqbal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><forename type="middle">I</forename><surname>Malik</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2008 Sixth International Conference on Software Engineering Research, Management and Applications</title>
				<meeting>the 2008 Sixth International Conference on Software Engineering Research, Management and Applications<address><addrLine>Washington, DC, USA</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="301" to="307" />
		</imprint>
	</monogr>
	<note>SERA &apos;08</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Mda applied: From sequence diagrams to web service choreography</title>
		<author>
			<persName><forename type="first">B</forename><surname>Bauer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">P</forename><surname>Müller</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ICWE</title>
		<imprint>
			<biblScope unit="page" from="132" to="136" />
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Using uml diagrams to model real-time web services</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">E</forename><surname>Cambronero</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Diaz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">J</forename><surname>Pardo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Valero</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICIW &apos;07: Proceedings of the Second International Conference on Internet and Web Applications and Services</title>
				<meeting><address><addrLine>Washington, DC, USA</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page">24</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Csp-based verification for web service orchestration and choreography</title>
		<author>
			<persName><forename type="first">W</forename><surname>Yeung</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Simulation</title>
		<imprint>
			<biblScope unit="volume">83</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="65" to="74" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Analyzing web service based business processes</title>
		<author>
			<persName><forename type="first">A</forename><surname>Martens</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">FASE</title>
		<imprint>
			<biblScope unit="page" from="19" to="33" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Formalizing wsbpel business processes using process algebra</title>
		<author>
			<persName><forename type="first">J</forename><surname>Cámara</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Canal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Cubo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Vallecillo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Electron. Notes Theor. Comput. Sci</title>
		<imprint>
			<biblScope unit="volume">154</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="159" to="173" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Soundness verification of business processes specified in the picalculus</title>
		<author>
			<persName><forename type="first">F</forename><surname>Puhlmann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">OTM Conferences</title>
		<imprint>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="6" to="23" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Communicating sequential processes</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">A R</forename><surname>Hoare</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">A R</forename><surname>Hoare</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Communications of the ACM</title>
		<imprint>
			<biblScope unit="volume">21</biblScope>
			<biblScope unit="page" from="666" to="677" />
			<date type="published" when="1985">1985</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<monogr>
		<title level="m" type="main">Reasoning about timed csp models</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">S</forename><surname>Dong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Zhang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Sun</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Hao</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">A Reasoning Method for Timed CSP Based on Constraint Solving</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">S</forename><surname>Dong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Hao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Sun</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Zhang</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Formal Methods and Software Engineering</title>
				<meeting><address><addrLine>Berlin / Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2006-11">November 2006</date>
			<biblScope unit="page" from="342" to="359" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Towards uml-rt behavioural consistency</title>
		<author>
			<persName><forename type="first">K</forename><surname>Benghazi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">I C</forename><surname>Tuñón</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Holgado</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">E</forename><surname>Mendoza</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ICEIS</title>
		<imprint>
			<biblScope unit="volume">3</biblScope>
			<biblScope unit="page" from="612" to="615" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<author>
			<persName><forename type="first">J</forename><surname>Miller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Mukerji</surname></persName>
		</author>
		<title level="m">MDA Guide Version 1</title>
				<meeting><address><addrLine>OMG</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
	<note type="report_type">Technical report</note>
	<note>0.1</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
