This Article And A Hrefhttpwwwblogstreamcompauls

This article and this one (both by Paul Prescod) and this one by Sam Ruby I think are finally getting through my thick skull why "REST" is being used as a proxy statement for "the challenges that many Web Service developers will face." They're much better reading than the REST Wiki.

I think what they're saying is that it all boils down to where you encode the state. You need state for most non-trivial transactions. But where do you keep that state? Ruby cheekily says "get prepared for the object reference to move outside of the parenthesis." REST people seem almost fetishistic about the importance of URIs. They argue that a major reason the Web succeeded is because state representations are transferred (REpresentational State Transfer == REST) in a simple cut-and-pastable thing called a URI. I'm not sure about the fundamental advantages of the URI over other ways to represent state (see my question WhatsSoWrongWithRpc?) but it's certainly true that it should be transparent and transportable, that "the object reference" should "move outside of the parenthesis."

On the other hand, the problem with transferring a representation of state around is that by making the state representation concrete, you may find yourself locking yourself into, well, one particular representation of state (as opposed to an abstraction of a process by which state and behavior combine to generate value, i.e., an object). So the challenge you may face is that the "object reference" that is now "outside the parentheses" is not a reference to an abstract interface, but is a representation of the service request or response as it exists at 12:20 PM on September 24.