<?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">Flexible Provisioning of Service Workflows</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Sebastian</forename><surname>Stein</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">University of Southampton</orgName>
								<address>
									<postCode>SO17 1BJ</postCode>
									<country key="GB">United Kingdom</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Nicholas</forename><forename type="middle">R</forename><surname>Jennings</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">University of Southampton</orgName>
								<address>
									<postCode>SO17 1BJ</postCode>
									<country key="GB">United Kingdom</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Terry</forename><forename type="middle">R</forename><surname>Payne</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">University of Southampton</orgName>
								<address>
									<postCode>SO17 1BJ</postCode>
									<country key="GB">United Kingdom</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Flexible Provisioning of Service Workflows</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">9CFE0954C8860FC1F3F15DA8EDDFDC51</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T14:54+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/>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Background</head><p>Computer systems are becoming increasingly complex, distributed and open in nature. In so doing, they pose new challenges to contemporary software engineering techniques, as applications need to deal with many widely distributed and dynamic resources. In this context, service-oriented computing has gained popularity as an appropriate paradigm to build such systems. In this approach, resources are offered as services, which are advertised to consumer applications using computerreadable descriptions and then provisioned dynamically when needed, often as part of complex workflows.</p><p>A defining feature of these distributed systems is that participants are usually heterogeneous, self-interested agents that act autonomously in accordance with their own private goals. As such, agents choose actions that maximise their own welfare, and so they cannot be assumed to honour every request, to be available whenever they are needed or even to report their capabilities and status truthfully. Additionally, network problems, competition for resources or even software bugs exacerbate the potential for service failures. Thus, when interacting with service providing agents and making real investments that depend on their performance (whether in terms of money, time or other resources), dealing with service failures becomes a vital issue to consider.</p><p>Against this background, we believe that flexible service provisioning (i.e., selecting and allocating service providers to specific tasks) is the key to handling and controlling service failures. It allows the consumer to dynamically select service providers based on their performance characteristics and provision replacement providers when services fail. Specifically, provisioning services in the context of a workflow enables a consumer agent to identify particularly failure-prone tasks and invest additional resources in them. To date, however, this provisioning process has received comparatively little attention. In particular, the fact that a type of service might be offered by multiple providers is seldom explored, and most research is concerned with finding and invoking the first matching service that helps fulfil a given goal. Such a naïve approach means that a single service failure will result in the failure of the whole workflow, which is highly undesirable, especially when success is critical to the interests of the consumer agent.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Flexible Provisioning</head><p>To address this issue, in our paper <ref type="bibr" target="#b0">[1]</ref> we investigate the process of provisioning service workflows in environments where service success is not generally guaranteed. We show that the current approach of provisioning single providers is insufficient in such environments, and then advance the state of the art by developing several strategies that deal proactively with unreliable providers. In particular, we propose two key techniques:</p><p>Parallel Provisioning: To increase the probability of success, n agents that provide the same service can be provisioned in parallel for a single task in the workflow. The task will then succeed as long as at least one service completes successfully.</p><p>Serial Provisioning: Providers can also be re-provisioned when it becomes obvious that they have failed. As failure may not be communicated explicitly by the providers, this process involves provisioning an initial set of agents, and then waiting for some time w, after which a new set of agents is provisioned for the same task (and so on). Now, the appropriate choice of n and w for each task depends on the performance characteristics of the available services. For example, if services are cheap and unreliable, a high value for n might be chosen. If services generally take a long time to complete, then a high w would reflect this.</p><p>Because finding the right level of parallelism and waiting times is non-trivial to perform manually, and because it depends on the consumer's valuation of the workflow and associated timeconstraints, we automate this choice by employing decision theory. To this end, we attach a utility function to each workflow, in order to represent the value of completing the workflow after some time t. As provisioning providers optimally (i.e., maximising the expected utility) is intractable, we then use a hill-climbing algorithm that uses a heuristic estimation of the true expected utility and explores a small subset of the decision space by iteratively modifying a candidate solution.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Results</head><p>In order to verify our approach, we also report our empirical results. These clearly demonstrate the value of flexible service provisioning over current approaches. For example, Figure <ref type="figure" target="#fig_1">1</ref> (taken from <ref type="bibr" target="#b0">[1]</ref>) shows our provisioning strategies in environments with varying service uncertainty. In particular, the naïve strategy represents current approaches that rely on single providers, parallel(2) and parallel(6) are strategies where the number of parallel providers (n) is fixed statically, and the flexible strategy is our heuristic provisioning approach.  The flexible strategy clearly dominates the others, and, in fact, we show that it successfully completes over 90% of its workflows in most environments where current approaches complete none. Furthermore, our results indicate that it achieves a 350% improvement in average utility over the naïve strategy.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Average utility in environments with increasing service failure probability.</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">This is an extended abstract of<ref type="bibr" target="#b0">[1]</ref>.</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Flexible provisioning of service workflows</title>
		<author>
			<persName><forename type="first">Sebastian</forename><surname>Stein</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Nicholas</forename><forename type="middle">R</forename><surname>Jennings</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Terry</forename><forename type="middle">R</forename><surname>Payne</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of 17th European Conference on Artificial Intelligence (ECAI-06)</title>
				<meeting>17th European Conference on Artificial Intelligence (ECAI-06)<address><addrLine>Riva del Garda, Italy</addrLine></address></meeting>
		<imprint>
			<publisher>IOS Press</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="295" to="299" />
		</imprint>
	</monogr>
</biblStruct>

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