<?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">Peer-to-Peer Execution of BPEL Processes</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Weihai</forename><surname>Yu</surname></persName>
							<email>weihai@cs.uit.no</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">University of Tromsø</orgName>
								<address>
									<country key="NO">Norway</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Peer-to-Peer Execution of BPEL Processes</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">0C8400BC6C143A04C4E6723A51C5C07F</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T06:56+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>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>This paper presents a peer-to-peer approach to execution of BPEL processes. It does not pre-allocate resources as in existing decentralized approaches. Nor does it involve global coordination for normal executions. The approach is of continuation-passing style, where continuations, or the reminder of executions, are passed along with messages for process execution. Two continuations are associated with an execution: a success continuation and a failure continuation. Recovery plans for processes are automatically generated at runtime and attached to failure continuations.</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>WS-BEPL <ref type="bibr" target="#b7">[8]</ref>, or simply BPEL, is becoming a de-facto standard for services composition based on the workflow technology. Using BPEL, a composite service is a BPEL process that uses other services (processes) in some prescribed order. Today, executions of BPEL processes are typically conducted by heavyweight central engines. The cost of deploying a central engine is usually too high for a large number of small businesses or end-users. Moreover, a central engine can become a potential processing and communication bottleneck as well as a central point of failure <ref type="bibr" target="#b0">[1]</ref>.</p><p>Several decentralized or peer-to-peer approaches have been proposed <ref type="bibr" target="#b1">[2]</ref>[3][4] <ref type="bibr" target="#b4">[5]</ref> <ref type="bibr" target="#b5">[6]</ref>[7] <ref type="bibr" target="#b8">[9]</ref>. Common to most of these, a process is instantiated prior to its execution. During instantiation, proper resources and control are pre-allocated in the distributed environment. These approaches inevitably allocate resources even for the parts that are not executed. They also tend to have limited adaptability at runtime due to the complication of re-allocating the pre-allocated resources and control.</p><p>Our peer-to-peer approach does not involve process instantiation before execution. The approach is of continuation-passing style, which is a common practice in the functional programming community. Basically, a continuation represents the rest of an execution at a certain point of the execution. It is automatically derived during the execution. By knowing the continuation of the current execution, the control can be passed to the proper subsequent processing entities without the involvement of a central engine. In addition, the approach supports automatic process recovery by associating two continuations with any particular point of execution. The success continuation represents the path of execution towards the successful completion of the process. The failure continuation represents the path of execution towards the proper compensation of committed effects after certain failure events.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">BPEL Processes</head><p>In BPEL, processes and (composite) services are synonymous. A (sub-) process is an activity, which has a hierarchical structure. Basic activities include empty activities, activities for providing and invoking services, cast of fault events, etc. A structured activity consists of a collection of activities to be executed in some prescribed order, such as in sequence and in parallel.</p><p>Activities run within scopes, which provide boundaries for fault handling and recovery. A process instance runs within a top-level scope. A scope can be associated with a number of activities, including a number of event handlers and fault handlers, an optional compensation handler, and a primary activity that defines its normal behavior. Within a scope, a fault can be thrown with a fault name. The fault will be captured by the scope and handled with a corresponding fault handler. A fault handler typically contains a compensation activity, which executes the compensation operations currently installed within the scope.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Continuation-Passing Messaging for Process Execution</head><p>Basically, a message tells a site what to do next. If a message also contains a continuation, the site can figure out the execution plan that follows up. In our approach, conducting the execution of a process is the sequences of sending and interpreting messages that contain continuations.</p><p>There are some specific issues to be addressed for peer-to-peer process execution using continuations. 1. A partially executed process must be rolled back if some fault event occurs. To enable process rollbacks, two continuations are associated with any particular execution point. The success continuation represents the path of execution towards the successful completion of the process. The failure continuation represents the path of execution towards the proper compensation of committed effects after certain failure events. 2. Some management tasks, such as proper handling of parallel branches and termination of scopes, must be carried out by the proper sites at proper time. The management tasks are defined as auxiliary activities that are automatically added into continuations during execution. 3. Parallel branches must be kept track of in order to: (a) stop all branches of a scope when the scope terminates, and (b) stop and rollback all branches of a scope in case of some fault event. This is done with scope agents. More specifically, a message for process execution contains a control activity and two continuations. The control activity is the activity to be executed immediately. It is either a BPEL activity or an auxiliary activity. One of the two continuations, the success or the failure continuation, is to be executed after the control activity. A continuation is represented as a stack of activities.</p><p>The local architecture at a site is shown in Figure <ref type="figure">1</ref>. Requests for process executions at the site are delivered to its message queue <ref type="bibr" target="#b0">(1)</ref>. A process interpreter is a pool of threads that interpret the messages. A thread dequeues a message from the message queue (2) and decides the next action according to the control activity of the message. There are two possibilities here: either can the process move on with local processing, or it is dependent on some other messages that are not available yet, such as a provided service waiting for an incoming invoking message. In the former case, the thread invokes (3, 4) some local programs, which might interact with human users. In the latter case, the current message is put in the pending message pool <ref type="bibr" target="#b4">(5)</ref>. This message will be used later (6) when a dependent message is available (2 again). After the execution of local programs, new messages are either put in the pending message pool <ref type="bibr" target="#b4">(5)</ref> or sent to a remote site <ref type="bibr" target="#b6">(7)</ref>.</p><p>to network If a site is also a scope agent, it maintains the scope state in the scope registry <ref type="bibr" target="#b7">(8,</ref><ref type="bibr" target="#b8">9)</ref>. Basically, the scope state contains the current locations of all active parallel branches. The location of a branch changes when a message is sent. To keep this location state up to date, when a site sends a message <ref type="bibr" target="#b6">(7)</ref>, it also notifies the management agent of the immediate enclosing scope. To terminate a scope, the scope agent asks all registered sites to stop and clear up the corresponding local activities. To rollback a scope, all these sties run the respective parts of failure continuations.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Discussions and Related Work</head><p>One important property of our approach is that the next step a site should take is only dependent on local information. No global coordination is needed. Moreover, housekeeping of runtime states is limited within scopes. This inherently addresses the scalability and reliability problems of centralized approaches <ref type="bibr" target="#b0">[1]</ref>.</p><p>Another important property of our approach is that it allows for dynamic invocation of services and just-in-time distribution of resources. That is, the resources can be allocated when the services are to be executed. This is contrary to most other decentralized approaches <ref type="bibr" target="#b2">[3]</ref> <ref type="bibr" target="#b8">[9]</ref> where resources for the entire process are pre-allocated during process instantiation a prior to their executions. INCA <ref type="bibr" target="#b1">[2]</ref> goes a step further than most of the decentralized approaches. A message (called information carrier, INCA) contains a log of the execution so far and rules for further enactment. The rules and the log thus play the roles similar to success and failure continuations of our approach. INCA does not totally eliminate pre-allocation of resources: workflows are enacted using both rules carried in messages and pre-installed local rules. This paper extends our earlier work <ref type="bibr" target="#b9">[10]</ref> by dealing with features specific to BPEL processes, including dependencies between parallel branches and scope management.</p><formula xml:id="formula_0">[4][5][6][7]</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusion</head><p>Our contribution is a new peer-to-peer approach to execution of BPEL processes. The continuation-passing style of the approach makes the conduction of process execution as local operations rather than global coordination. As a distinct feature, it does not unnecessarily pre-allocate resources prior to process executions. Furthermore, it supports process recovery by automatically generating recovery plans into failure continuations. The approach is supported by a working prototype.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>Figure 1. Local architecture of a site</figDesc></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Functionality and Limitations of Current Workflow Management Systems</title>
		<author>
			<persName><forename type="first">G</forename><surname>Alonso</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Agrawal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">El</forename><surname>Abbadi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Mohan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Expert</title>
		<imprint>
			<biblScope unit="volume">12</biblScope>
			<biblScope unit="issue">5</biblScope>
			<date type="published" when="1997">1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">INCAs: Managing Dynamic Workflows in Distributed Environments</title>
		<author>
			<persName><forename type="first">D</forename><surname>Barbara</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Mehrotra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Rusinkiewicz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Database Management, Special Issues on Multidadatabases</title>
		<imprint>
			<biblScope unit="volume">7</biblScope>
			<biblScope unit="issue">1</biblScope>
			<date type="published" when="1996">1996</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Facilitating the Rapid Development and Scalable Orchestration of Composite Web Services</title>
		<author>
			<persName><forename type="first">B</forename><surname>Benatallah</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Dumas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Q</forename><forename type="middle">Z</forename><surname>Sheng</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Distributed and Parallel Databases</title>
		<imprint>
			<biblScope unit="volume">17</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="5" to="37" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Decentralized Orchestration of Composite Web Services</title>
		<author>
			<persName><forename type="first">G</forename><surname>Chafle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Chandra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Mann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">13th international World Wide Web conference (Alternate track papers &amp; posters)</title>
				<imprint>
			<date type="published" when="2004-05">May, 2004</date>
			<biblScope unit="page" from="134" to="143" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Design and Implementation of a Distributed Workflow Enactment Service</title>
		<author>
			<persName><forename type="first">E</forename><surname>Gokkoca</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Altinel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Cingil</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Tatbul</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Koksal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Dogac</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">2nd IFCIS International Conference on Cooperative Information Systems (CoopIS 97)</title>
				<imprint>
			<date type="published" when="1997-06">June, 1997</date>
			<biblScope unit="page" from="89" to="98" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Aurora: An Architecture for Dynamic and Adaptive Work Sessions in Open Environments</title>
		<author>
			<persName><forename type="first">M</forename><surname>Marazakis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Papadakis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Nikolaou</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">9th International Conference on Database and Expert Systems Applications (DEXA 98)</title>
				<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="1998-08">August, 1998</date>
			<biblScope unit="volume">1460</biblScope>
			<biblScope unit="page" from="480" to="491" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">From Centralized Workflow Specification to Distributed Workflow Execution</title>
		<author>
			<persName><forename type="first">P</forename><surname>Muth</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Wodtke</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Weißenfels</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">K</forename><surname>Dittrich</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Weikum</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Intelligent Information Systems</title>
		<imprint>
			<biblScope unit="volume">10</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="159" to="184" />
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<author>
			<persName><surname>Ws-Bpel</surname></persName>
		</author>
		<ptr target="http://docs.oasis-open.org/wsbpel/2.0/wsbpel-specification-draft.pdf" />
		<title level="m">Web Services Business Process Execution Language Version 2.0</title>
				<imprint>
			<date type="published" when="2006-08-23">August 23, 2006</date>
		</imprint>
	</monogr>
	<note>public review draft</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Enacting Business processes in a Decentralised Environment with p2p-Based Workflow Support</title>
		<author>
			<persName><forename type="first">J</forename><surname>Yan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Yang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Raikundalia</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">4th International Conference on Web-Age Information Management (WAIM 03)</title>
				<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2003-09">September, 2003</date>
			<biblScope unit="volume">2762</biblScope>
			<biblScope unit="page" from="290" to="297" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Continuation-Passing Enactment of Distributed Recoverable Workflows</title>
		<author>
			<persName><forename type="first">W</forename><surname>Yu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Yang</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Annual ACM Symposium on Applied Computing (SAC 2007)</title>
				<meeting><address><addrLine>Seoul, Korea</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2007">March 11 -15, 2007</date>
		</imprint>
	</monogr>
</biblStruct>

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