On composing Dependable Web Services using undependable web

Int. J. Simulation and Process Modelling, Vol. 3, Nos. 1/2, 2007
45
On composing Dependable Web Services using
undependable web components
Anatoliy Gorbenko
and Vyacheslav Kharchenko
Department of Computer Systems and Networks (503),
National Aerospace University,
Kharkiv, 61070, Ukraine
E-mail: [email protected]
E-mail: [email protected]
Alexander Romanovsky*
School of Computing Science,
Newcastle University,
Newcastle upon Tyne, NE1 7RU, UK
E-mail: [email protected]
*Corresponding author
Abstract: This paper proposes a novel approach to constructing and modelling Dependable Web
Services (DeW) that are built by composing web components that can be undependable. This is
achieved by applying a structured approach to the Web Services (WSs) development, based on
the Web Service Composition Actions (WSCAs) scheme and a corresponding event-driven
simulation model of composite WS. The dependability and fault-tolerance of composite WS is
achieved by employing forward error recovery based on multilevel system structuring enabling
application-specific exception handling.
Keywords: web service composition; dependability; error recovery; simulation.
Reference to this paper should be made as follows: Gorbenko, A., Kharchenko, V. and
Romanovsky, A. (2007) ‘On composing Dependable Web Services using undependable web
components’, Int. J. Simulation and Process Modelling, Vol. 3, Nos. 1/2, pp.45–54.
Biographical notes: Anatoliy Gorbenko received his PhD in Technical Science at the National
Aerospace University (Kharkiv, Ukraine). He is a Lecturer at the Department of Computer
Science and Network, National Aerospace University. His main research interests are computer
networks and web service security and dependability. He has published a number of research
papers in national and international journals and conference proceedings.
Vyacheslav Kharchenko received his PhD in Technical Science at the Military Academy named
after Dzerzhinsky (Moscow, Russia) and Doctor of Technical Science Degree in Kharkiv
Military University (Ukraine). He is a Professor and Head of the Computer Systems and
Networks Department, National Aerospace University, Ukraine. His research interests include
dependable computer systems, multi version design technologies, software verification and
expert analysis. He has co-authored more than 140 scientific papers, reports and book chapters,
more than 500 inventions, edited and co-edited nine books in these and related areas. He has been
the principal investigator of several projects on dependable systems development and a
consultant in a number of I&C NPP. Now he is a Leading Researcher on safety-related software
of State Science-Technical Center of Nuclear and Radiation Safety (Ukraine).
Alexander Romanovsky is a Professor at the School of Computing Science (University of
Newcastle upon Tyne, UK). He has been involved in a number of National and European projects
on various aspects of dependability, including the Design for Validation ESPRIT Basic Project,
the Diversity with Off-The-Shelf Components EPSRC/UK Project, and the Dependable Systems
of Systems IST Project. Now he is coordinating the Rigorous Open Development Environment
for Complex Systems IST Project. His research interests include dependability, fault tolerance,
software diversity, exception handling, system structuring for error confinement. He has
co-authored more than 130 scientific papers and book chapters, and co-edited seven books in
these and related areas.
Copyright © 2007 Inderscience Enterprises Ltd.
46
1
A. Gorbenko, V. Kharchenko and A. Romanovsky
Introduction
The WS architecture (Ferguson et al., 2003) is rapidly
becoming a de facto standard environment for achieving
interoperability between various software applications
running on a variety of platforms. This architecture supports
development and deployment of open systems in which
component discovery and system integration can be
postponed until the systems are executed. The individual
components (i.e., WSs) advertise their services via a registry
(typically developed using the UDDI standard) in which
their descriptions, given in a standard XML-based language
called Web Service Definition Language (WSDL), can be
looked up. After a WS capable of delivering the required
service has been found, it can be used or even dynamically
integrated into a composite WS.
Developing the WS architecture is in effect a further
step in the evolution of the well-known component-based
system development techniques supporting the integration
of Off-The-Shelves (OTS) components (Szyperski, 2003).
The main advances in the WS architecture have been made
by the standardisation of the integration process using a set
of interrelated standards, such as SOAP, WSDL, UDDI, etc.
These technologies provide easy interoperability between
software components developed by and deployed in
different organisations. WS are the OTS components for
which a standard way of advertising and employing
functionality has been widely adopted. The WS architecture
is now extensively used in developing various critical
applications, such as banking, auctions, internet shopping,
hotel/car/flight/train reservation and booking, e-business,
e-science, business account management. This is why
ensuring dependability in this architecture is an emerging
area of research and development (Ferguson et al., 2003;
Tartanoglu et al., 2003a).
System dependability is defined as the reliance that can
be justifiably placed on the service the system delivers
(Avizienis et al., 2004). There are four dependability
technologies by which dependability is attained:
•
rigorous design, which aims at preventing the
occurrence or the introduction of faults
•
verification and validation, which aims at reducing the
number or severity of faults
•
fault tolerance, which aims at delivering correct service
despite the presence of faults
•
system evaluation, which aims at estimating the present
number, the future incidence and the likely
consequences of faults.
The challenge in developing DeWs is posed by the specific
characteristics of this architecture, including its openness,
heterogeneity of components and platforms, asynchronous
nature of communication and autonomy of components.
In addition to that, the components to be integrated are
ready-made black boxes of unknown quality, which belong
to different organisations and are out of the control of the
systems using them.
WS composition is an emerging area of research
(Milanovic and Malek, 2004). The current work on WS
verification and validation is being carried out in several
directions, including testing (Tsai et al., 2004) and
model-based verification (Foster et al., 2003). A novel
approach to dependability evaluation focusing on
availability assessment is proposed in Kaaniche et al.
(2003). Paper (Tartanoglu et al., 2003b) analyses several
existing approaches to incorporating fault tolerance
measures (including both backward and forward error
recovery mechanisms) into the composite WSs.
In this work we focus on forward error recovery as one
of the main means of achieving WS fault-tolerance.
This type of recovery is usually implemented by exception
handling. Recovery by exception handling can require
considerable extra time, so the application of this type of
techniques should be accompanied by a thorough analysis of
its cost. This paper introduces a novel two-level exception
handling scheme to be used for building fault tolerant
composite WS and a simulation model developed to analyse
the scheme effect on the two dependability attributes:
reliability (probability of successful request processing) and
availability (mean request processing time). It is our belief
that these solutions will allow us to make considerable
progress towards achieving the ultimate goal: developing
approaches that make it possible to build dependable
composite WSs using undependable web components.
2
On Dependable Web Service (DeW)
composition
2.1 Web Service Composition Actions (WSCAs)
In our previous work we have developed a structured
approach to the composition of WS (Tartanoglu et al.,
2003b). WSCAs allow composite WSs to be structured
in terms of Coordinated Atomic actions (CA actions)
(Xu et al., 1995) that have a well-defined behaviour, both in
the absence and in the presence of service failures.
This solution has no impact on the autonomy of the
individual WSs, while exploiting their possible support for
fault tolerance (e.g., transaction support at the level of
each service). WSCA participants specify interactions with
composed WSs, stating the role of each WS in the
composition. Each WS is viewed as an external resource.
However, unlike the base CA action model, interactions do
not have to be transactional. The interactions adhere to the
semantics of the WS operations that are invoked.
The development process of a WSCA-based composite
WS comprises the definitions of the required abstract
interfaces of the component WSs that are to be
integrated and of the composition process that gives the
binding information as well as the WSCA standard and
exceptional behaviours. The scheme enforces recursive
(e.g., hierarchical) system structuring during the system
composition and supports forward error recovery as the
main means of providing fault tolerance. Each WSCA can
deliver a number of normal and exceptional outcomes.
On composing Dependable Web Services using undependable web components
metrics that characterise this function (its reliability,
security, execution time, etc.).
When an exceptional outcome is reported all responsibility
for the recovery is transferred to the higher level in the
system structure (the containing WSCA).
A component WS produces results of two main types:
a) success; b) failure. In some cases, a partial result also
can be provided in the ways which we explain later.
The behaviour of a component WSs may in some cases
depend on time.
2.2 Structured approach to Web Service (WS)
development
The structured approach we are putting forward is based on
the development of a composite WS built as a multilevel
hierarchy with regular and nested recursive structure.
The basic principles of the structured approach are as
follows:
•
•
Requests sent by the users to the composite
WS are handled as top level WSCAs. There are several
types of such Arriving Requests (ARs) to be processed
by the composite WS. The execution of each of these is
structured out of the execution of several Nested
Actions (NAs). This structuring is application-specific
and is defined during WS composition. The type of an
individual AR (corresponding to a WSCA, in the
general case) depends on the number and the types of
the NAs. In turn, each of the NAs is a WSCA of the
adjacent lower level, which can be also decomposed
into several NAs, and so on.
The composite WS has a multilevel hierarchical
structure (see Figure 1), which, as a whole, coincides
with the WSCA nesting scheme. The composite WS is
a ‘white box’. It contains a number of component WSs
that process separate parts of the ARs (i.e., a set of
nested WSCAs). For the composite WS any of the
component WSs is a ‘black box’. However, the
component WS inside also can be treated as a
‘white box’ which in turn is composed of a number of
component WSs at the next lower decomposition layer,
and so on.
Thus, at any decomposition level we can consider two
alternative views on the structure: the ‘white box’ one
(jth composite WS of ith level) and several ‘black
boxes’ (a set of component WSs related to the i, jth
composite WS), i.e., a composite WS is structured in
both the vertical and the horizontal directions, as shown
in Figure 1.
•
Generally, the component WSs at the bottom level of
the structure are the pre-developed services with known
or predicted characteristics (reliability, security,
dependability in general). New WSs are built by
composing in various ways these component WSs.
An individual component WS is described by its
functionality, i.e., the realised function, and a set of
47
•
To process WSCAs a composite WS executes a number
of corresponding operations by invoking one or several
component WSs and combining their results. Inside the
composite WS the following three types of the WSCA
processing result are defined:
•
if all of the NAs of a WSCA are successfully
completed by the set of the component WSs, the
overall result of the WSCA is successful
•
if not all of the NAs of a WSCA are processed
successfully, then the partial successful result is
produced
•
if all of the NAs of a WSCA are processed with
failures, then the result of WSCA processing is
erroneous.
Producing the results of the second type, called here
‘partial successful result’, depends on:
•
the type and the individual parameters of the
processed WSCA
•
the dependability characteristics of the composite
WSs
•
the dependability characteristics of all the
component WSs involved in the processing of the
WSCA NAs.
During the development of a composite WS, the designer
decides which of the component WSs to use depending on
their functionality, dependability and other characteristics
(e.g., performance, cost and time of development). The
overall structure of the composite WS will be defined by its
granularity.
Besides, each component WS that processes only
WSCAs of a specified type may be executed on a Dedicated
Server (DS). A better throughput can be achieved when all
WSCAs are processed in parallel on different DSs. In other
cases when several component WSs are executed on the
same server, WSCAs are processed in a parallel-sequential
mode. The application logic of the Composite WS can affect
the mode of request execution as well.
A more detailed description of the proposed approach
can be found in Gorbenko et al. (2004).
48
Figure 1
A. Gorbenko, V. Kharchenko and A. Romanovsky
Structure of a composite Web Service
2.3 Ensuring fault-tolerance and dependability
3
The Travel Agency (TA) example
High dependability and fault-tolerance of the composite
WS are ensured by using different kinds of redundancy
and diversity that are available at different levels
of the composite WS hierarchy. Developing fault tolerant
mechanisms for composite WSs has been an active area of
research over the last several years (see Tartanoglu et al.,
2003a, for a survey). In Tartanoglu et al. (2003b) the
backward (based on rolling system components back
to the previous correct state) and forward (which involves
transforming system components into any correct state)
error recovery for the WSs is discussed.
The WSCA concept for tolerating faults is based on
exception handling of two types: internal (i.e., inside the
component WS) and external (which requires cooperative
handling at the level of the composite WS) exception
handling. For example, an exception handler can implement
a simple backward error recovery using operation retry to
tolerate transient failures.
In our scheme the exception handlers of a WS can be
both application-specific and general. The approach in
Alwagait and Ghandeharizadeh (2004) uses general
exception handlers to ensure independence from the
physical locations of services. The DeW framework uses a
predefined ‘WebServiceNotFound’ exception to handle
situations when a service migrates by redirecting the
request to the new location known to the DeW middleware
component, which monitors the system configuration.
To demonstrate the WSCA scheme and WSs composition
we consider joint booking of accommodation and flights,
excursion and car hire using four separate component WSs.
Then, the composite WS operation is specified using
WSCAs as follows (Tartanoglu et al., 2003b). The top-level
TravelUser WSCA comprises the User and the Travel
participants; the former interacts with the user while the
latter achieves joint booking according to the user’s request
through call to the WSCA that composes the Flight, Car,
Hotel and the Excursion participants or only some of them.
An example of the diagrammatic specification of a
WSCA with booking of accommodation and flights is
shown in Figure 2. In the TravelUser WSCA, the User
participant requests the Travel participant to book a flight
ticket and a hotel room for the duration of the given stay.
This leads the Travel participant to invoke the joint booking
WSCA FlightHotel that composes the Hotel Web Service
and the Flight Web Service. The participants of the
FlightHotel WSCA respectively requests for a hotel room
and a flight ticket, given the travel itinerary and dates
provided by the user.
Each request is divided into reservation for the given
period and subsequent booking if the reservation succeeds.
If both the Hotel and the Flight participants raise the
unavailable exception, then concurrent exception resolution
applies. As a result the FlightHotel WSCA signals an
exception to the Travel participant of the TravelUser
On composing Dependable Web Services using undependable web components
WSCA, where the exception gets handled in a cooperation
with the User denoted by the grey box in the figure (e.g., the
user is requested to give alternative dates). In the case
where either the reservation or the booking of one of the
participants fails, the participant raises an exception
(unavailableHotel in the example) that is cooperatively
handled at the level of the FlightHotel WSCA. If one
participant has already confirmed a reservation, the booking
that has succeeded is cancelled and an unavailableHotel
exception is signalled to the calling TravelUser WSCA for
recovery with a user intervention (see Figure 2).
Figure 2
49
The logical subsystem of the simulation model defines a
set of ARs to be processed by the composite WS, a set of
the nested WSCAs on which each of the ARs can be
decomposed and a set of the component WSs that process
the defined type of nested WSCAs. The physical subsystem
of the simulation model (see Figure 3) defines a relationship
between the logical model and the overall hardware
architecture, taking into account the number of DSs and
theirs specialisation.
Figure 3
Physical model of composite Web Service
WSCA processing by the Travel Agency composite
Web Service
The failures are simulated in the following way. At the
second level of the model, the failures are represented as
the events in which the component WS cannot deliver the
service requested by WSCA cased by the following:
Note that if the handling fails and the cancellation is not
possible failure exception is signalled to the calling WSCA
providing it with the sufficient information about failed
operations to help later recovery.
4
Modelling of the composite Web Services (WSs)
dependability
In this section we describe a simulation model of composite
WS used for a specific target environment – the TA WS.
•
hardware faults
•
software faults
•
application-specific situations when component WS
cannot satisfy the WSCA requirements.
In case of failure, the component WS catches an exception
and activates the error handling mechanism. As a result of
error handling some of the failures will be tolerated inside
the component WS. The composite WS will not even know
about them (encapsulation of the internal behaviour).
Thus, for the nested WSCA, processed by a component
WS, two outcomes are possible:
•
The WSCA is processed successfully (including the
situations when a failure occurred but was tolerated
inside the component WS). The component WS returns
a normal result back to the composite WS.
•
The WSCA is processed with a failure not tolerated by
the error handling inside of the component WS. In this
case, the component WS propagates an exception to the
composite WS.
4.1 A general approach to modelling
We use a two-level WSCA-based approach for the
composite WS modelling. At the first level, we have a
composite WS which processes the input request stream
and returns outputs to the output stream. The ARs (WSCAs
of the first level) are decomposed into a number of nested
WSCAs (WSCAs of the second level). These nested
WSCAs are then processed by the corresponding
component WSs.
The failures at the top level of the model include the
exceptions propagated by the component WSs as well as the
exceptions raised by the composite WS itself when it detects
its own errors.
50
A. Gorbenko, V. Kharchenko and A. Romanovsky
These failures can also be tolerated using the error
handling by the composite WS. When the composite WS
fails to deliver the service required by an AR, it reports an
exceptional outcome to the output stream.
•
PReq[1..ReqCount] is an array which specifies the
arrival probabilities of the requests of each type.
•
MServ[1..ServCount, 1..CnCount] is an array which
specifies the set of DSs.
4.2 Assumptions and their foundation
Figure 4
Composite WS simulation schema
We simulate a specific behaviour of a composite WS under
the following assumptions:
•
The failures of the component WSs occur when the
component WSs fail to deliver the services that WSCAs
require.
•
These failures can be tolerated inside the Component
WSs by the error handling. The probability of tolerating
errors is given for each of the component WSs.
•
The time of error handling is equal to the normal
(without failures) execution time of the component WS.
•
When the component WS cannot tolerate a failure, it
reports an exception up to the composite WS.
•
The failures of the composite WS are reported as
exceptions propagated by them.
•
The probability with which the composite WS can
tolerate these failures is proportional to the ratio
between the number of nested WSCAs processed
without failures by the component WSs and the total
number of nested WSCAs.
•
The time of error handling executed by the composite
WS is equal to the normal (without failures) execution
time of the AR.
•
When the composite WS cannot tolerate these failures,
it reports an exceptional outcome to the output stream.
The simulation data and the recorded results are as follows.
•
ReqNo is the type of the current AR (1..ReqCount).
•
TReq is the execution time for the AR, in seconds.
•
CnOut[1..CnCount] is an array which specifies the
processing result of the nested WSCAs initiated by the
AR: ‘0’ – this WSCA is not executed (the AR does not
require this WSCA); ‘1’ – WSCA executes without
failures; ‘2’ – WSCA executes with a failure which is
tolerated by the error handling mechanism of the
component WS; ‘3’ – WSCA executes with a failure
which is not tolerated.
•
ReqOut presents the detailed processing result of the
AR. This includes ‘1’ – all nested WSCAs are
processed successfully; ‘2’ – several nested WSCAs are
processed with failures all of which are tolerated using
error handling inside the component WS; ‘3’ – several
nested WSCAs are processed with failures not all of
which are tolerated inside the component WSs,
however, the partially executed request is tolerated by
error handling of the composite WS; ‘4’ – several
(or all) nested WSCAs are processed with failures not
all of which are tolerated inside the component WSs
and the partially executed request is not tolerated by the
error handling mechanism of the composite WS.
•
ReqStat – execution outcomes of processing an AR
4.3 Specification of the input and output data
The input data and settings for the simulation are
(see Figure 4):
•
CnCount is the number of bottom-level WSCAs of
different types (equal to the number of the component
WSs processing them).
•
ReqCount is the number of different types of requests.
•
ServCount is the number of DSs on which the
component WSs can be deployed.
•
PCn[1..CnCount, 1..3] is a matrix which specifies the
probabilities of different outcomes of processing a
WSCA (failure free, tolerated failure and non-tolerated
failure) for each of the component WSs.
•
TCn[1..CnCount] is an array which specifies the
execution time of processing a WSCA without failures
for each of the component WSs, in seconds.
•
MReq[1..ReqCount, 1..CnCount] is a matrix which
specifies the set of ARs.
(IF ReqOut = {1, 2, 3} THEN ReqStat = 1 ELSE
ReqStat = 0): ‘1’ – the request is executed successfully
(including the situation when failures occurr, but they
are tolerated inside the component WSs or by the
composite WS); ‘0’ – the request is executed with
failures which are not tolerated.
•
ServLoad[1..ServCount] – array which specifies the
load time for each of the DSs during the processing of
an AR, in seconds.
On composing Dependable Web Services using undependable web components
4.4 Model structure
An event-driven simulation model of the composite WS is
proposed to analyse its overall performance as a function of
the number and characteristics of the component WSs.
The model is developed using the M-File programming and
is simulated in the MATLAB 6.0 environment. The internal
model structure (see Figure 5) includes the Request Random
Generator, which creates the ARs, the Request Composer
and the Server Loader distributing WSCAs to the
Figure 5
The proposed model is used to simulate the TA WS
taking into account the results stated in Tartanoglu et al.
(2003b).
The following input data and settings are used for the
TA simulation.
•
corresponding component WSs and the Result Analyser,
which processes statistical information and aggregates
results. Component WSs are implemented as program
functions by using the M-File language and invoked
by the composite WS, which is the main model function.
A particular type of the AR and the outcomes of WSCAs
processing are generated according to the specified
probabilities by using the MATLAB function ‘rand’.
All model settings and simulation results are represented in
the matrix form.
Travel Agency model (three-servers configuration) and partial simulation results
4.5 Foundation of input data values
•
51
There are four types of component WS (CnCount = 4):
•
CnWS1: ‘Booking of flight tickets’, which
process WSCA1: ‘Flight’
•
CnWS2: ‘Car hire’, which process
WSCA2: ‘Car’
•
CnWS3: ‘Hotel reservation’, which process
WSCA3: ‘Hotel’
•
CnWS4: ‘Excursion order’, which process
WSCA4: ‘Excursion’.
When error handling is used we assume that that there
are three possible outcomes for each of the composites:
•
PCn1(CnWSi): probability that the component
WSi processes WSCAi without failure
•
PCn2(CnWSi): probability that the component
WSi processes WSCAi with a failure tolerated
by the error handling inside of component
WSi
•
PCn3(CnWSi): probability that the component
WSi processes WSCAi with a failure not
tolerated by the error handling inside of
component WSi.
Table 1 shows the probabilities values of different
outcomes for each component WS used in the
simulation. These probabilities should be specified
for a particular WS by taking into account the results
of service testing and monitoring.
This will help us to analyse the effectiveness of the
proposed technique and the advantages gained during
WS development or reengineering.
52
•
•
A. Gorbenko, V. Kharchenko and A. Romanovsky
Suppose that the normal (without failure)
execution time of each component WS is as follows:
T(CnWS1) = T(CnWS2) = T(CnWS3) = T(CnWS4) = 0.1
sec. This time is chosen using our experiments within
the local network. Generally speaking, it depends on
the service function complexity, host performance and
network delays. The execution time of the real WS
deployed on the internet may be longer.
4.6 Simulation results
In simulations the seven types of request
(ReqCount = 7) that can arrive from the users to the
composite WS are used (see Table 2). Each type of the
ARs contains certain WSCAs. Thus, MReq = [1,0,0,0;
0,1,0,0; 1,1,0,0; 1,0,1,0; 1,1,1,0; 1,0,1,1; 1,1,1,1].
•
simulation results of the composite WSs with error
handling at the component and composite WS levels
are shown in Figure 6
•
simulation results for composite WSs without error
handling are given in Figure 7
•
Figure 8 shows the comparison of the number and the
request processing times of successful and unsuccessful
requests for composite WSs with and without error
handling.
•
Suppose that the probabilities of requests of
each type arriving are equal. Thus, Preq(ARi) =
1/ReqCount = 0.14286.
•
We experimented with several physical configurations
of the composite WS with one, two, three and four DSs.
For example, Figure 5 shows the structure of the
composite WS simulation model with the three DSs.
The ‘Booking of flight tickets’ and ‘Car hire’
component WSs are launched on the same server DS1,
whereas ‘Hotel reservation’ and ‘Excursion order’ are
launched on the Dedicated Servers DS2 and DS3 (i.e.,
ServCount = 3; Mserv = [1,1,0,0; 0,0,1,0; 0,0,0,1]):
•
Dedicated Server DS1 serves the component WSs
CnWS1 and CnWS2
•
Dedicated Server DS2 serves the component WS
CnWS3
•
Dedicated Server DS3 serves the component WS
CnWS4.
The initial settings and the results of a particular
simulation of the TA composite WS are shown on
Figure 5.
Table 1
Probabilities of the different outcomes for each
component WS
CnWS1 ‘Booking of flight tickets’
CnWS2 ‘Car hire’
CnWS3 ‘Hotel reservation’
CnWS4 ‘Excursion order’
Table 2
PCn1
0.50
0.50
0.50
0.50
PCn2
0.25
0.25
0.25
0.25
PCn3
0.25
0.25
0.25
0.25
Types of the Arriving Requests, processed by the
composite WS
WSCA1 ‘Flight’
WSCA2 ‘Car’
WSCA3 ‘Hotel’
WSCA4 ‘Excursion’
AR1 AR2 AR3 AR4
Yes
Yes Yes
Yes Yes
Yes
AR5 AR6
Yes Yes
Yes
Yes Yes
Yes
AR7
Yes
Yes
Yes
Yes
The results are obtained by averaging the simulation
outcomes of 1000 ARs.
These results are compared for the composite WSs
with and without the error handling mechanism under the
assumption that this mechanism is capable of tolerating all
detected faults.
Figure 6
Simulation results for a composite WS with error
handling
On composing Dependable Web Services using undependable web components
Figure 7
Figure 8
Simulation results for a composite WS without error
handling
Comparison of the number and request processing
times for a composite WS with and without error
handling
5
53
Discussion
The analysis above shows that the WSCA-based
composition of WSs and the use of exceptions handling
allow us to significantly increase the ratio of the
successfully serviced requests. At the same time, there is an
increase of the mean time of request processing.
However, employing more than one DSs allows us to
essentially decrease this time as Figure 8 clearly indicates.
We can conclude, therefore, that the performance of the
composite WSs depends significantly on the hardware
architecture and as the level of concurrency increases the
negative impact of the overhead owing to exception
handling decreases.
The results reported here have been obtained under the
assumption that the confidence intervals of the initial values
used in the simulation and the settings may be determined
using data from the previous experience or trustworthy
prediction methods. By changing parameters used in the
particular simulation set up (e.g., varying the values of the
times used and probabilities of the various events involved)
we can analyse whether the observed effects depend on the
values of the parameters or not.
For instance, for a wide range of parameters the negative
impact of exception handling on the performance is
observed (see Figure 8), in these cases extensive
concurrency of WSs with exception handling can be
recommended. Note, that the analysis above ignores
the additional cost caused by the increased level of
concurrency. Although it is clear that in some
application-specific situations, there will be no additional
cost. It is in our future plan to work on a refined model
dealing with this issue.
Acknowledgement
Vyacheslav Kharchenko has been partially supported by the
Royal Society grant (RS 16114). Alexander Romanovsky is
supported by FP6 IST RODIN Project (511599). We are
grateful to the anonymous reviewers for their valuable
comments.
References
Alwagait, E. and Ghandeharizadeh, S. (2004) ‘DeW: a dependable
web services framework’, 14th International Workshop on
Research Issues on Data Engineering: Web Services for
E-Commerce and E-Government Applications (RIDE’04),
Boston, Massachusetts.
Avizienis, A., Laprie, J-C., Randell, B. and Landwehr, C. (2004)
‘Basic concepts and taxonomy of dependable and secure
computing’, IEEE Transactions on Dependable and Secure
Computing, Vol. 1, No. 1, pp.11–33.
Ferguson, D.F., Storey, T., Lovering, B. and Shewchuk, J. (2003)
Secure, Reliable, Transacted Web Services: Architecture
and Composition, MS and IBM Technical Report,
http://www-106.ibm.com/developerworks/webservices/library/
ws-securtrans.
54
A. Gorbenko, V. Kharchenko and A. Romanovsky
Foster, H., Uchitel, S., Magee, J. and Kramer, J. (2003)
‘Model-based verification of web service compositions’,
Automated Software Engineering (ASE) Conference,
Montreal, Canada.
Gorbenko, A., Kharchenko, V., Popov, P., Romanovsky, A. and
Boyarchuk, A. (2004) Development of Dependable Web
Services out of Undependable Web Components, School of
Computing Science, University of Newcastle upon Tyne, UK.
Kaaniche, M., Kanoun, K. and Rabah, M. (2003) ‘Multi-level
modelling approach for the availability assessment of
e-business applications’, Software Practice and Experience,
Vol. 33, No. 14, pp.1323–1341.
Milanovic, N. and Malek, M. (2004) ‘Current solutions for
web service composition’, IEEE Internet Computing, Vol. 8,
No. 6, pp.51–59.
Szyperski,
C.
(2003)
Component
Software:
Beyond
Object-Oriented Programming, Addison-Wesley, Harlow,
England, p.608.
Tartanoglu, F., Issarny, V., Levy, N. and Romanovsky, A. (2003a)
‘Dependability in the web service architecture’, Architecting
Dependable Systems, LNCS 2677, Springer-Verlag, Berlin,
Heidelberg, Germany, pp.89–108.
Tartanoglu, F., Issarny, V., Romanovsky, A. and Levy, N. (2003b)
‘Coordinated forward error recovery for composite web
services’, 22th Symposium on Reliable Distributed Systems
(SRDS), Florence, Italy.
Tsai, W-T., Chen, Y., Cao, Z., Bai, X., Huang, H. and Paul, R.J.
(2004) ‘Testing web services using progressive group testing.
Advanced workshop on content computing’, in Chi, C-H. and
Lam, K-Y. (Eds.): Content Computing, Advanced Workshop
on Content Computing, AWCC 2004, Springer, pp.314–322.
Xu, J., Randell, B., Romanovsky, A., Rubira-Calsavara, C.M.F.,
Stroud, R.J. and Wu, Z. (1995) ‘Fault tolerance in concurrent
object-oriented software through coordinated error recovery’,
25th International Symposium on Fault-Tolerant Computing,
(FTCS-25), Pasadena, California, USA.