> You keep bringing this RPC vs. REST thing up.  That's a false
> dichotomy and I think it's just confusing things for you. 

It’s not a false dichotomy at all. From Fielding’s dissertation:

6.5.2 HTTP is not RPC
[…]
“What makes HTTP significantly different from RPC is that the requests
 are directed to resources using a generic interface with standard 
semantics that can be interpreted by intermediaries almost as well as by 
the machines that originate services. The result is an application that allows 
for layers of transformation and indirection that are independent 
of the information origin, which is very useful for an Internet-scale, 
multi-organization, anarchically scalable information system. RPC 
mechanisms, in contrast, are defined in terms of language APIs, not 
network-based applications.”

So, there is indeed a dichotomy between REST  (as applied to HTTP) and
RPC.

> If you must, you should be clear to talk in terms of something 
> specific like SOAP or Java's RMI or any number of similar approaches.
> Perhaps itwould help if you thought of the URIs/URLs more like Java or 
> CORBA interfaces.?

No, because if I start thinking in terms of Java interface or CORBA IDL,
then I'll stop thinking in terms of addressable resources. 
Well, actually, I’m starting to think in terms of services again, but with 
a twist: a service becomes a resource when it is associated with a 
transaction id:
I never POST or PUT a Foo ; instead, I PUT a FooCreator or FooAction 
transaction, get a tx url (with an id) back, and POST it with the
appropriate state information. The server guarantees that a transaction
cannot be POSTed twice (idempotence), and I can even retrieve the 
result/status of a transaction at a later time.

This is where I’m at right now. I’ll see where it leads me. I’m not yet
convinced of the benefits of this approach over XML-RPC (I can achieve
idempotence by passing a tx id to all RPC’s), 
but I’ll keep exploring  RESTful architectures for now. This forum has been
very valuable so far. Thanks.

-Vincent. 

Reply via email to