MIME-RPC (was Re: REST)

Jeff Bone jbone@jump.net
Wed, 16 Jan 2002 11:00:09 -0600


"S. Alexander Jacobson" wrote:

> If REST is just the "web itself", it is saying
> nothing.

Actually, it speaks volumes --- you just have to listen carefully. :-)  (BTW,
I'm a relatively recent convert --- after being rather REST-antagonistic for
at least a couple of years, I had my gestalt moment sometime last summer.
There are some profound implications in the REST argument that are pretty
subtle.)  I cannot count the number of times I read and re-read and *used*
(for example) the URI spec before getting that second-order understanding.
(Before it was like "yeah, yeah, resources, fine, whatever.")

One basic message is this:  the *existing* Web and its abstractions and
mechanisms --- if used properly --- obviate the need for a large number of
the things people seem dead-set on creating new mechanisms to do.  The
architectural style and its constraints give way to a design style that is
well suited for building large, loosely-coupled, Internet-scalable
distributed services.  It's not clear that other approaches --- such as the
RPCs --- do so, and relatively good arguments to suggest that they do not.
Many developers do not recognize this because (a) they are too steeped in the
culture of RPCs and tight coupling to recognize the problems it creates, and
(b) developers like building infrastructure;  when faced with the choice,
they would rather recast and (naively) extend the Web to support their
particular design solution rather than recast their design solution to fit
what the Web already provides.

Sure, there need to be standard representations of datastructures and types.
Sure, the Web's connector set is relatively empoverished, and their need to
be methods for doing asynchronous communications.  Sure, there need to be
standard (or at least conventional) mechanisms for programmatic description
of interfaces.  Other efforts address some of these things --- some in ways
that are REST-friendly and do not break the architectural style of the Web,
others in ways that are REST-antagonistic and constitute abandoning a lot of
the goodness of the Web.  On the whole, REST-as-philosophy is about taking an
aggressive attitude towards understanding and utilizing what the Web already
provides.

You should ping Mark Baker about this.  He spent over a year trying to beat
this into my thick skull, and *finally* it clickfed.  :-)  (That or the
trauma to the brain started to take effect. ;-)  Check out the REST Wiki [1]
--- it's a good collection of resources and musing about REST.  The case
studies of how to convert various things like the Blogger XML-RPC API to a
pure REST style are particularly helpful, IMHO  (...the author said. ;-)

jb

[1] http://internet.conveyor.com/RESTwiki/moin.cgi