I just discovered this article by David, apparently reprinted from an old weblog entry that I must have missed while at XML 2004. While I think I’ve said my piece on the topic of distributed objects vs. services, I wanted to respond to a couple of points in the article …
First, in the “State” section, Dave seems to make the mistake of confusing the different types of state (or at least the different locations of state). He says “Web resources that have a URI that are stateless and work with HTTP GET”, which is clearly not the case, since any resource that answers a GET request answers it with a representation of their state. When you hear “stateless” in the context of the Web architecture, it’s usually in reference to the protocol, not the resource … though you can, of course, have stateless resources if you want to.
I’m also not sure where he’s going with “on the Web” bit. It’s a cute phrase, but doesn’t seem to hold a lot of technical value.
But the next three paragraphs seem to mix the different types of state up willy-nilly such that you can’t really make sense of it. The major theme does seem to be about services with state, yet Dave makes reference to conversational/application state mechanisms such as cookies. Perhaps I’m missing something.
Next, in “Network knowledge”, he adds;
Effectively, Web services is remote method invokes but with knowledge of the remoteness.
I won’t disagree with that, but what the heck happened to document orientation?! That was the single most significant architectural advancement upon RPC that I’d seen come out of the Web services space since it began (at least from a service POV – clients were still as tightly coupled to the services they used as with RPC).