most profound implications of the loose-coupling is
the ease with which components (e.g. legacy
systems) can be connected and aggregated into new
services called composite services (CS). Composite
Services (CS) aggregate multiple services into one
logical unit to accomplish a complex task (e.g.
business process). This aggregation is achieved by
defining a workflow that orchestrates the underlying
services in a manner consistent with the desired
functionality. Since CS can aggregate atomic and
other CS they foster the development of service
layers and reuse of already existing functionality.
This gave rise to the idea of service networks in
which resources and workflows are shared across
organizational boundaries.
Over time many different approaches for modelling
business processes have been developed and
consequently there is no shortage of languages or
concepts for implementing composite services.
Below are two different approaches (sequential
workflow and state-machine workflow) of modelling
a business process that orchestrates three services.
Figure 2: Business Process.
While a sequential workflow (left) models the
business process from a process-driven viewpoint, a
state-machine workflow (right) models it as a finite
state machine in which state transitions are the result
of events.
Sequential workflows are prescriptive and like a
script or program define to the order in which the
operations (underlying services) are executed.
Using constructs such as loops, conditional
statements and basic exception handling they
assume a scenario in which the workflow is in
control since the path of execution is determined by
workflow internal factors. State-Machine based
workflows follow the opposite approach, since they
rely on events to trigger state transitions. State-
machine workflows are often used for business
processes that are event-driven (e.g. involve human
feedback) and that should therefore enable many
paths of execution. Sequential workflows on the
other side, are most often used for implementing
machine workflows (e.g. process automation) that
are sequential in nature, and have little or no human
involvement.
As already mentioned, the aggregation of
services enables the definition of new services and
thus layers of services arise. But by defining
workflows existing services that may expose local
resources (e.g. legacy applications) are also
subjected to novel and potentially dangerous
workloads. This is particularly worrisome for
sequential workflows that automate processes and
are therefore more likely to experience overloads
that can cause ripple effects throughout a network of
services.
This paper focuses on the behaviour of
sequential workflows that experience short-lived
load bursts. Section two presents a brief discussion
of general server behaviour. This is followed by the
presentation of the experimental setup (section
three) and the results of exposing workflows to
different loads (section four). The paper concludes
with a summary and an outlook on future work.
2 BEHAVIOUR OF SINGLE
SERVERS
If a service provider does not share resources with
other providers (e.g. no two providers expose the
same data base), it can be modelled as a server. If
such a provider is capable of handling multiple
requests simultaneously it must assign resources for
dealing with the incoming requests. Assuming that
servers have a finite amount of resources and that
each new consumer request will (temporary) reduce
the available server resources, it is interesting to
examine server behaviours under various loads.
Studies (Heiss, 1991) show that servers respond in a
common way to loads.
If a server is gradually exposed to an ever-increasing
number of service requests it is possible to observe
three distinct stages, namely under-load, saturation
and over-load. At the beginning the server
experiences a load that is below its capacity (under-
load). As the number of requests is increased, the
throughput (number of completed jobs per time unit)
improves. As the rate of incoming requests increases
EXPOSING WORKFLOWS TO LOAD BURSTS
219