Re: Transactional Web Services (LONG)
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@f...> To: "Nicolas LEHUEN" <nicolas.lehuen@u...>; "XML DEV" <xml-dev@l...> 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.
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format