transaction. Now we may encounter the following
problems:
First, rolling back a business transaction is not
always free of charge, and so the cancellation of the
hotel reservation may give rise for a special charge.
Second, there are two semantics for the hotel
reservation transaction: From composed transactions
point of view the reservation is a reservation of
resource which will be realized only if all the
subtransaction succeed (with traditional transaction
processing such a function is carried out by locks).
From hotel point of view the reservation of a
composed business transaction is like any
reservation.
In addition, compensation is not always possible.
For example, withdrawing 100 euros from account
A is the compensation of deposing 100 euros on
account A. However, the withdrawing will fail if the
balance of account A is less than 100 euros.
In order to avoid these problems we have
developed a new transaction model, called
Composed Web Service Transaction model, or CWS-
transaction model for short. It deviates from other
advanced transaction models in that it is not based
on compensating transactions, but rather it divides
the traditional business transaction into two
successive transactions, called request transaction
and decision transaction. The commitment of the
request transaction ensures that the decision
transaction will not fail, and so the atomicity of the
CWS-transaction can be ensured.
The rest of the paper is organized as follows.
First, in Section 2, we specify the syntax and
semantics of the CWS-transaction model. Then, in
Section 3, we specify the coordination requirements
for the execution of CWS-transactions. In particular,
the message interchange between web services is
illustrated. In Section 4, we illustrate how the
request transaction and the decision transaction can
be implemented in a local application. The required
transactions are presented by an SQL-like notation.
Section 5 concludes the paper by discussing the
advantages and limitations of the CWS-transaction
model.
2 THE STRUCTURE OF THE
CWS-TRANSACTIONS
In this section we specify the components of the
CWS-transaction model and their execution
dependencies.
In our terminology we refer by the term web
service transaction, or WS-transaction for short, to
the execution of a web service. So, for example,
WS-transaction is an execution of a web service
which makes a reservation on a hotel through.
Further WS-transaction comprises of one or more
web service operations, or WS-operations for short.
For example, requesting the prises of hotel rooms
and making the actual room reservation are the WS-
operations comprising a WS-transaction.
Further, we make the difference between read
operations and update operations of a WS-
transaction, e.g., requesting the prises is a read
operation whereas making the actual reservation is
an update operation.
Transactional feature (Gray and Reuter, 1993) in
the context WS-transactions means that all or none
of its update operations are executed. For example,
if the function of a flight reservation WS-transaction
is to make a reservation on flight A and B, then both
or none of the reservations are done.
Even though the WS-transaction model is useful
for executing and analyzing single web services, it is
not enough powerful for modelling composed web
services. Therefore we use WS-transaction as
components in the CWS-transaction model.
The structure of the CWS-transaction is
presented in Figure 1.
The function of the root (CWS-transaction) is to
coordinate the execution of the leaf transactions
(Participant Web Service transactions, or PWS-
transactions for short).
Further each PWS-transaction is divided into a
request transaction and a decision transaction
(Figure 2). The function of a successfully executed
request transaction is to ensure that the decision
transaction will not semantically fail. The decision
transaction will only be executed if the
corresponding request transaction is successfully
executed. Further, each decision transaction either
Composed web
services transaction
(CWS-transaction)
Participant web
service transaction
(PWS-transaction)
Participant web
service transaction
(PWS-transaction)
…
Figure 1. The structure of the CWS-transaction.
Figure 1: The structure of the CWS-transaction.
WEBIST 2006 - INTERNET TECHNOLOGY
70