- From: Hao He <Hao.He@thomson.com.au>
- Date: Fri, 17 Jan 2003 11:41:27 +1100
- To: "'Walden Mathews'" <waldenm@optonline.net>, Assaf Arkin <arkin@intalio.com>, Peter Furniss <peter.furniss@choreology.com>, "Champion, Mike" <Mike.Champion@SoftwareAG-USA.com>, www-ws-arch@w3.org
- Message-ID: <686B9E7C8AA57A45AE8DDCC5A81596AB046AE26A@sydthqems01.INT.TISA.COM.AU>
hi, Walden, Let me try again. I was trying to provide a simple way of coordinating between a client and its server. Let's start with " a client X deposites $100 into server Y". This is a logical operation and it is non-idempotent. Let's identify this operation as "http://example.com/bank/depo/1234". To perform this operation, the client has to send a request to the server. The request identifies itself as a request instance of "http://example.com/bank/depo/1234". Now, I want the physical operation of sending such requests to be idempotent. So, if something goes wrong for whatever reason, or even the client is unsure about what has happened, the client simply sends the request again without causing the logical operation to be performed more than once. So, would you consider this still RM? Hao -----Original Message----- From: Walden Mathews [mailto:waldenm@optonline.net] Sent: Friday, January 17, 2003 1:31 AM To: Hao He; Assaf Arkin; Peter Furniss; Champion, Mike; www-ws-arch@w3.org Subject: Re: Proposed text on reliability in the web services architecture Hao, > I think Walden has made a good point. We don't really care about RM, which > itself has been solved in the TCP/IP layer or other messaging layer already. > The whole RM thing is misleading within Web Services context. What we really > care is a reliable way of coordinating a client and its server, although RM > might be helpful. Agreed. > > Making an operation idempotent seems to be a simple and effective solution. I'm leery of this. If you mean making it idempotent by enclosing it within a message and giving the message identity, then I'd say you were doing RM. If you mean recognizing that something like a deposit has identity from the client's perspecitive, and allow the client to set the value of the deposit directly, then fine. I'd call it "finding", not "making". > What we need to distinguish > is the difference between logical operations and physical operations. > > In the bank account example, depositing money into an account is a logical > operation while sending > a request to the bank's Web Services to achieve such an operation is > physical. A logical operation can > be idempotent or not, but we do want all physical operations to be > idempotent. More precisely, we mean: > 1. r=f(u,x,t), where f is a physical operation on a Web Services identified > by u, x is a request, and t is time, and r is the results returned by the > WS. > 2. r'=f(u,x',t') > 3. if x eq. x', and r eq. r', then we say that f is idempotent, where eq. > stands for "is equivalent to". > This idempotent def is different than the one in math. > > Is this summary good enough? It's not clear enough. When you say "sending a request", and having that be idempotent, what is the thing that has identity? If it's a message, then the above summarizes RM. If it's a "deposit", then the above summarizes an application level coordination. Thanks, Walden
Attachments
- text/plain attachment: InterScan_Disclaimer.txt
Received on Thursday, 16 January 2003 19:40:49 UTC