MIME-RPC (was Re: REST)

Paul Prescod paul@prescod.net
Wed, 16 Jan 2002 11:27:18 -0800


"S. Alexander Jacobson" wrote:
> 
> Ok.  So, if I want to send a message to an HTTP
> server and have it call back my HTTP server later,
> how do I specify that?
> 
> If I want to send an integer, a real, and a
> picture, how do I do that?

Two answers.

Answer #1. 

<blah>
 <blah xsi:type="integer">5</blah>
 <blah xsi:type="real">5.0</blah>
 <img href="...."/>
</blah>

The href could use MIME-multipart to textually include the image but
arguably it would be better to use a link so you can get some caching
going.

Answer #2.

Don't think about it as sending an integer, a real and a picture. Think
about it as sending a "employee record" which happens to include a
height (real), a weight (integer) and a picture.

<employee>
 <height>5.3</height>
 <width>4</width>
 <picture href="..."/>
</employee>

Then you write a schema for this record format. Then you publish that on
the Web and (ideally) get hundreds of other organizations to agree to
it.

Answer #1 is basically today's SOAP practice and also seems to be the
model endorsed by MIME-RPC. I don't know of any massively deployed web
services that use that model. It is best for small, ad hoc systems where
widely shared interoperability is not important.

Ansewr #2 is the picture I think is necessary for massive
interoperability. The two "web services" that I can point to that use it
are "the Web" which standardized on the HTML (and now XHTML) schema. And
the world of content serialization (e.g. Meerkat) which standardized on
RSS.

Creating a strongly defined schema with obvious element type names and
wide industry buy-in is much harder than just sending parameters through
RPC. But if your goal is to build a massively interoperable web system
then that is what you must do. This may help you to understand why Jeff
Bone says that REST doesn't have to be standardized. Rather, to use REST
with XML we will have to standardized hundreds of XML vocabularies. Go
forth and standardize!

(actually some REST advocates have expressed a dislike of XML but I
really don't know what else you could use to do the vocabulary
standardization part of REST...)

 Paul Prescod