<!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>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>(Extended Abstract)</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nicholas R. Jennings</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Terry R. Payne</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Flexible Provisioning</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Southampton</institution>
          ,
          <addr-line>SO17 1BJ</addr-line>
          ,
          <country country="UK">United Kingdom</country>
        </aff>
      </contrib-group>
      <abstract>
        <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. 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. 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. To address this issue, in our paper [1] 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: 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>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Background</title>
      <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).</p>
      <p>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.
3</p>
    </sec>
    <sec id="sec-2">
      <title>Results</title>
      <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 1 (taken
from [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]) 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.
      </p>
      <p>0
0.2
0.4
0.6
0.8</p>
    </sec>
    <sec id="sec-3">
      <title>References</title>
      <p>naïve
parallel(2)
parallel(6)
flexible</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Sebastian</given-names>
            <surname>Stein</surname>
          </string-name>
          ,
          <string-name>
            <surname>Nicholas R. Jennings</surname>
          </string-name>
          , and
          <string-name>
            <surname>Terry</surname>
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Payne</surname>
          </string-name>
          .
          <article-title>Flexible provisioning of service workflows</article-title>
          .
          <source>In Proceedings of 17th European Conference on Artificial Intelligence (ECAI-06)</source>
          ,
          <source>Riva del Garda</source>
          , Italy, pages
          <fpage>295</fpage>
          -
          <lpage>299</lpage>
          . IOS Press,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>