pends on conditions and parameters, different execu-
tions of the same Web service may call different Web
services and execute different local code.
We call the execution of a transaction procedure a
global transaction T. The application AP is only inter-
ested in the result of T, i.e. whether the execution of
a global transaction T has been committed or aborted.
In case of commit, AP is also interested in the return
values of the parameters of T.
The relationship between transactions, Web ser-
vices, and sub-transactions is recursively defined as
follows: We allow each transaction or sub-transaction
T to dynamically invoke additional Web services of-
fered by physically different nodes. We call the exe-
cution of such Web services invoked by the transac-
tion T or by a sub-transaction T
i
the sub-transactions
T
si
. . . T
sj
of T or of T
i
, respectively. This invocation
hierarchy can be arbitrarily deep.
Whenever T
1
, . . . , T
n
denote all the sub-
transactions called by either T or by any child
or descendant sub-transaction T
s
of T during the
execution of the global transaction T, atomicity
of T requires that either all transactions of the set
{T, T
1
, . . . , T
n
} commit or all of these transactions
abort.
We assume that each Web service only knows the
Web services that it calls directly, but not whether or
not the called Web services call other Web services.
Therefore, at the end of its execution, each transac-
tion T
i
knows which sub-transactions T
is
1
. . . T
is
j
it has
called, but T
i
, in general, will not know which sub-
transactions have been called by T
is
1
. . . T
is
j
. Further-
more, we assume that usually a transaction T
i
does
not know how long its sub-transactions T
is
1
. . . T
is
j
are
going to run.
We assume that each sub-transaction consists of
the following phases: a read-phase, a coordinated
commit decision phase, and, in case of successful
commit, a write-phase. During the read-phase, each
sub-transaction performs write operations on its pri-
vate storage only. After commit, during the write
phase, write operations on the private storage are
transferred to the database, such that the changes done
throughout the read-phase become visible to other
transactions after completion of the write-phase.
In the architecture for which our protocol is de-
signed, Web services are invoked by messages instead
of invoking them by a synchronous call to a Web
service for the following reason. We want to avoid
that a Web service T
i
that synchronously calls a sub-
transaction T
j
cannot complete its read phase and can-
not vote for commit before T
j
sends its return value
to T
i
. Therefore, we allow sub-transactions only to
return values indirectly by asynchronously invoking
corresponding receiving Web services, and not syn-
chronously by return statements
1
. Since (sub-) trans-
actions describe general services, the nodes that exe-
cute these (sub-) transactions may be arbitrary nodes
and are not necessarily databases. We therefore call
these nodes resource managers (RM).
One characteristic of our Web service transac-
tional model is that the initiator and the Web ser-
vices do not know every sub-transaction that is gener-
ated during transaction processing. Our model differs
from other models that use nested transactions (e.g.
(Dunham et al., 1997), (OMG, 2003), (Cabrera et al.,
2005)) in some aspects including but not limited to
the following:
• Since network partitioning makes it difficult
or even impossible to compensate all sub-
transactions, we consider each sub-transaction
running on an individual resource manager to
be non-compensatable. Therefore, no sub-
transaction is allowed to commit independently of
the others or before the commit coordinator guar-
antees that all sub-transactions can be committed.
• Different from CORBA OTS ((OMG, 2003),
(Liebig and K
¨
uhne, 2005)), we assume that we
cannot identify a hierarchy of commit decisions,
where aborted sub-transactions can be compen-
sated by executing other sub-transactions.
• Different from the Web service transaction model
described in (Cabrera et al., 2005), the Initiator of
a transaction in our model does not need to know
all the transaction’s sub-transactions. We assume
that the Initiator is only interested in the commit
status and the result of the transaction, but not in
knowing all the sub-transactions that have con-
tributed to the result.
• A Web service may consist of control struc-
tures, e.g. if
<Condition> then <T1> else
<T2>.
This means that a sub-transaction execut-
ing this Web service may create other sub-trans-
actions dynamically. These dynamically created
sub-transactions also belong to the global transac-
tion and must be executed in an atomic fashion.
• Communication is message-oriented, i.e., a Web
service does not explicitly return a result, but may
1
However, if the application needs synchronous calls,
e.g. because of dependencies between sub-transactions, the
intended behavior can be implemented by splitting T
i
into
T
i
1
and T
i
2
as follows. T
i
1
includes T
i
’s code up to and in-
cluding an asynchronous invocation of its sub-transaction
T
j
; and T
i
2
contains the remaining code of T
i
. T
j
performs
an asynchronous call to T
i
2
which may contain return values
computed by T
j
that shall be further processed by T
i
2
ICEIS 2007 - International Conference on Enterprise Information Systems
96