[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Transactional Web Services (LONG)
- From: Jeff Greif <jgreif@alumni.princeton.edu>
- To: "W. E. Perry" <wperry@fiduciary.com>, XML DEV <xml-dev@lists.xml.org>
- Date: Fri, 24 Aug 2001 06:24:16 -0700
Isn't the purpose of the 2PC model merely to ensure that all the parties in
the transaction complete it the same way, either committing or aborting as a
group the operations they have individually undertaken as their part of the
transaction? Once all the parties have agreed to commit (by replying to the
"prepare" message from the coordinator), all have the means to do so even if
they crash before the "commit" message from the coordinator reaches them,
and can recover correctly when they restart by asking the coordinator or one
of the other parties whether the transaction was actually committed. There
is not necessarily any common data shared by all parties or any common
understanding of some data structure. The transaction comprises a set of
operations divided among the parties by the requester or an interpreter
acting on behalf of all the parties. Each party may be told only about the
operations it is expected to perform. Only if it thinks it understands the
instructions (in its own way, which might not agree with what the requester
intended) and can carry them out in some sort of persistent scratch area
will it reply affirmatively to the "prepare" message. How does the souk
model remove the need for agreement to be reached among the parties about
how to complete the transaction, and how can this agreement be communicated
without the transaction monitor of the 2PC, whose purpose is to avoid race
conditions arising from other ways of attempting to communicate agreement?
Jeff
----- Original Message -----
From: "W. E. Perry" <wperry@fiduciary.com>
To: "Nicolas LEHUEN" <nicolas.lehuen@ubicco.com>; "XML DEV"
<xml-dev@lists.xml.org>
Sent: Thursday, August 23, 2001 12:45 PM
Subject: Re: Transactional Web Services (LONG)
...
> The souk model which I propose is therefore 'principal' in transaction
nature,
> like the monolithic model, but like the 2PC model is inherently
peer-to-peer
> between the nodes which are parties to a transaction. It does not require
the
> transaction monitor of the 2PC protocol precisely because the primary task
of
> each transacting node is to decide, based on its knowledge of its own
processes,
> whether it can instantiate, from the message offered to it as the basis of
a
> transaction, data from which those processes can yield a useful result.
The
> criterion, that is, for whether to consummate a transaction is not, as in
2PC,
> that both parties have managed to instantiate precisely the same data, but
that
> each party has managed to instantiate data which it can use, and will
therefore
> take principal responsibility for. The transaction monitor is dispensed
with
> because the criterion is not whether the two parties have obtained
identical
> results but whether each party has obtained a result that it will commit
to.