Dynamic Service Selection in Workflows Using Performance Data
Scientific Programming
1058-9244
Dynamic service selection in workflows using performance data
David W. Walker 0
Lican Huang 0
Omer F. Rana 0
Yan Huang 0
0 School of Computer Science, Cardiff University , 5 The Parade, Roath, Cardiff CF24 3AA , UK
An approach to dynamic workflow management and optimisation using near-realtime performance data is presented. Strategies are discussed for choosing an optimal service (based on user-specified criteria) from several semantically equivalent Web services. Such an approach may involve finding “similar” services, by first pruning the set of discovered services based on service metadata, and subsequently selecting an optimal service based on performance data. The current implementation of the prototype workflow framework is described, and demonstrated with a simple workflow. Performance results are presented that show the performance benefits of dynamic service selection. A statistical analysis based on the first order statistic is used to investigate the likely improvement in service response time arising from dynamic service selection.
1. Introduction
The Grid computing community is converging on a
service-oriented architecture in which applications are
composed from geographically-distributed, interacting
Web services, and are expressed in a workflow
description language, typically based on XML. Such
applications are often executed under the control of a
workflow engine. Workflow techniques provide a means
for a collection of services to be combined
dynamically. However, although there is broad consensus on the
overall architecture of the Grid, there are many
unresolved issues that are still active research areas and for
which implementations are not publicly available. One
such area is the discovery and selection of services that
may be combined in a workflow.
In a service-rich environment, it is possible that
multiple copies of a service may exist. For instance, there
may be multiple semantically equivalent versions of
a service on different machines, each making use of
a different implementation (such as programming
language or algorithm). Selecting an optimal service from
this set of equivalent services is a decision that is often
undertaken manually by a user. Most techniques for
selecting from a set of such services are determined at
design time. There is, however, little support for
dynamically choosing a Web service as part of a workflow
enactment strategy.
This paper presents a mechanism to discover, select,
and invoke a Web service at runtime – thereby
providing a means for optimizing a workflow by dynamically
binding a service name to a service instance. This is
also known as “just-in time scheduling”, and corresponds
to a late binding operation, whereby Web service
instances are resolved based on a user-defined set of
optimization criteria. The motivations for this work include
improving fault-resistance and performance based on
factors that cannot be determined at design time. When
one service instance fails, the workflow engine should
be able to utilize another service instance. For
computationally intensive Web services, selecting services
with a specific performance profile is beneficial to the
execution of the entire workflow. There are various
use scenarios that necessitate the choice of “optimal
services” only at run-time, such as an image
analysis/visualization service that needs to respond within a
particular time. Another scenario involves the choice
of services in a changing environment, where
particular service instances may not persist over long time
periods.
Many scientific workflow applications are
computeintensive, and may be long-running – lasting weeks or
even months. Here, the selection of “optimal” Web
services among the available ones can shorten the
computation time. When running a complete scientific
workflow application, if one service fails, the whole
workflow must be run again. Dynamic Web service selection
involves the discovery of a list of candidate services,
and if one service fails, then the next one can be tried,
thereby avoiding the need to repeat the whole
workflow. Scientific workflow applications may require
heterogeneous computing resources such as
supercomputers, clusters, and networks of workstations/PCs. Some
applications need a guarantee of completion within a
given period of time, which requires some way of
predicting the likely completion time. Therefore,
dynamic selection involves choosing a suitable service
according to the current conditions (such as workload on
the machine where the service is hosted) and service
performance models.
In general, it is not necessary to dynamically select
every service in a workflow. The services for which
dynamic selection will be most effective in reducing
the overall workflow makespan are those lying on the
critical path, and that are sufficiently long-running for
the benefits of dynamic selection to outweigh the
overheads incurred. Given a detailed performance model (...truncated)