Daily Archives: December 9, 2005

RPC vs Doc Literal

It is really cool the way Jon Udell manages to snip multimedia content.
He was telling me about this during a break at last month’s Executive SOA Forum. He discovered how to do it by and trial and error. He figured if a media player could display the elapsed time, there had to be a way to reference that time point using a URL.
In the associated text, however, Jon did characterize the comment a bit more narrowly than I intended, as Tim Ewald points out.
I actually wrote an entire article on this topic to help promote my first Web services book.
The article also contains my definition of a Web service, which I made several attempts to standardize during my nearly two-year tenure as an editor of the W3C Web Services Architecture Specification.
While I didn’t exactly succeed, I did at least win the argument over separating the definition from the execution environment (i.e., the execution agent).
Paul Downey also contributes a good and succinct entry on the distinction between rpc-encoded and doc literal data formats, how we have finally settled on doc literal, and the consequences thereof. (And yes, Paul, I am still working on getting someone from IONA to join your WG. I haven’t fogotten 😉
But getting back to the original point, I can remember clearly the first time I had to come to grips with the differences in processing model between the XML/markup world and the “traditional” distributed computing world. A few months after I joined IONA I took over as chair of the XML/Value effort.
One example I use to illustrate the difference is one that I learned during those long XML Value conference calls and meetings. One of the XML folks from IBM used the analogy of HTML frames to illustrate the point about processing only what you understand of the data (or message). Today frames are pretty much taken for granted, but five years ago it was easy to remember when some versions of browsers didn’t support them. But those browsers still displayed the HTML that they could understand, ignoring the frames since that was part of a newer version of HTML that they didn’t understand.
In the binary world of distributed computing – let’s say CORBA for example – even a byte’s difference between what the server expects and what the client sends would cause a failure in communication. Not in the XML world. (This is by the way one definition of loose coupling.)
Web services represent a kind of unification of various computing “cultures,” each of which tends to view Web services through the lens of the technology they’re most familiar with. Let’s hope these various worlds can work together in a positive and fruitful way, and that we will all be able to create good standards and solutions that work for everyone.