Monthly Archives: July 2004

Cache, don’t download

A big +1 to Lucas;

If there’s a song on the web with a URL, let it be itself. Don’t download and rename the song, because the minute you do that you break the single most useful thing about it: the URL. Download it, sure, but put the download where it belongs: in your web cache.

Yup. I mentioned this in a list I put together to demonstrate that there’s still a lot of room for innovation left in the browser (though arguably this should be an OS feature .. but then again, where does the browser end and the OS begin?).

Jim Webber on REST pros and cons

A great one from Jim this morning, about how REST seems to be all the buzz in various distributed computing communities. I noticed that too; it’s very cool, and a long time coming.

As for the cons, this one sentence of his seems to sum it up;

Sure REST’s message-oriented approach is sensible, but it has the downside of mixing the semantics of the SOAP message with those of the transport protocol.

What can I say? As I see it, that’s been the “Big Disconnect” since the whole Web services thing got started. Far too many people – especially those weened on CORBA, DCOM, and similarly styled architectures – just don’t appreciate the HUGELY important role played by application protocols. This is evident by the continual de-emphasis of them by treating them as transport protocols, as Jim does there, intentionally or not.

Document oriented SOAP messages should have no semantics by themselves, not even processMessage (modulo TCP – see below). The semantics should be provided by the underlying application protocol. That way, the semantics of a SOAP envelope being transferred with HTTP PUT won’t be confused with one being transferred with HTTP POST or SMTP DATA; they mean different things, and you can lookup those meanings in the HTTP and SMTP specs.

Now, if you sent it over TCP and want POST/DATA/processMessage-like semantics, you need to bind those semantics to the TCP port via an IANA registry.

Transport protocol (e.g. TCP, UDP) independence is good. Application protocol independence must die die die!

Identification specs; there can be only one

A good one from Sanjiva Weerawarana;

For the success of the Web services platform, it is ABSOLUTELY critical that there be one and only one addressing/referenceing/whatchamacallit standard. Until we get there everything is and will be broken.

I couldn’t agree more. Identification anybody?

Sometimes I think Web services advocates are so close to understanding what the Web is. Other times, erm, not so much. 8-(