- From: Mark Baker <distobj@acm.org>
- Date: Thu, 9 Jan 2003 14:05:27 -0500
- To: "Champion, Mike" <Mike.Champion@SoftwareAG-USA.com>
- Cc: www-ws-arch@w3.org
On Thu, Jan 09, 2003 at 10:27:27AM -0700, Champion, Mike wrote: > Thanks. Let me put this side by side with the text I wrote: > > " to the extent that one can > model a web service using the resource/representation framework, design the > interaction pattern so that retrievals are "safe" (having no side effects) > and storage operations are "idempotent" (they can be repeated multiple times > without changing the state of the resource being updated), then an > application can simply repeat an operation that fails or whose status is > uncertain. " > > [Hmm, I'm not a RESTifarian but I can emulate one reasonably well, eh? :-) ] Yes, that's good. Sorry, I still haven't read your initial message in this thread. 8-O I wanted to relate REST-based reliability to reliable messaging, which I think the reuse of the message-id mechanism did, to an extent; I think that's good value-add. > Differences worth discussing include: > > - You imply that using REST is a matter of wishing to do so, I say it's a > matter of being able to model a service using resources, representations, > etc. I guess I can accept the likelihood that any service could IN > PRINCIPLE be modeled with REST, but don't some problems lend themselves > better to REST solutions than others? Of course. Our disagreement is a matter of degree; I think a lot more problems lend themselves to a REST solution than do others in the WG. > I guess my wording is a bit too > negative, yours is a bit too positive, let's try for something neutral. Hmm, I thought my wording was a bit on the "negative" side too. Like I said about the visibility/firewalls comment, I wanted to stay away from drawing conclusions about the value of REST, because we clearly don't agree. But I'm ok with your wording there. > - This may be a rathole, but I think the essence of the idempotence issue is > whether the back end is designed to have updates be idempotent, not whether > it is exposed via HTTP PUT. A PUT can (empirically) be non-idempotent (e.g. > into a DBMS where there are side effects such as indexing, although this may > be RESTifarically incorrect), and a particular bit of code supporting POST > could be idempotent in fact even if POST is not idempotent in principle. PUT is always idempotent with respect to the state of the resource. How a PUT effects the state of the server is undefined as that snippet that Ugo quoted said; HTTP/1.1 does not define how a PUT method affects the state of an origin server. But the client doesn't care, it can assume idempotent. If the non-idempotent side effects of a PUT are significant to the server owner, they should have designed the system differently and used POST. MB -- Mark Baker. Ottawa, Ontario, CANADA. http://www.markbaker.ca Web architecture consulting, technical reports, evaluation & analysis
Received on Thursday, 9 January 2003 14:04:53 UTC