The Protocol [was: Syntax] is API Fallacy

Jonathan Borden jborden at
Wed May 5 21:13:05 BST 1999

David Brownwell wrote:

>There's a signifcant issue with the quality of the linking.  RPC systems
>hide significant parts of the network, which need to be surfaced.  They
>don't expose faults well, or recovery mechanisms; they complicate callback
>style messaging patterns unduly; they bury encoding issues, and impose
>specific protocol-to-API mappings even in environments where they're not
>at all appropriate.

    This isn't the problem with RPC systems at all (including CORBA, Java
RMI, DCOM, DCE-RPC etc), and certainly the current defacto web 'protocol'
namely a form and www-form-encoding or a CGI query string is hardly a robust
way for programs to communicate. Rather, the ubiquity of firewalls allows
HTTP and SMTP traffic to flow where no RPC can go.

    You are missing the picture. Designing your own network protocol for
each new application is as useful as writing your own XML parser for each
new application. We have learned something from layering, interfaces and
code reuse (despite your protests). Why should a developer need understand
network issues etc when all they wish to do is send a message across the
network. This is what libraries are for. All modern languages are object
oriented (e.g. Java, Python, C++ etc.). One of the hallmarks of object
orientation is enabling code reuse. Why reinvent a protocol when a library
implements it?

>Consider that no RPC system in the world (CORBA, ONC, DCE, etc) has had
>the reach of some rather basic non-RPC systems like E-Mail (SMTP, POP,
>IMAP) or the web (HTTP, HTML, XML, etc).  For folk who have spent a lot
>of time working on architectural issues, this is telling:  it says that
>there's quite likely a problem with the RPC approach.

    That's exactly my point, there is no reason not to layer IDL on top of
perfectly good protocols such as HTTP and SMTP. There is no reason not to
use perfectly good standards such as MIME. Why reinvent the wheel when you
can *interface* to the wheel. Change the body of the car and reuse the
wheel. This is what layering is all about. Why do you compare RPC to XML?
They are different species. This confuses the issue. XML and HTML are
document standards, CORBA is a distributed object standard. The fact that
SMTP can punch through firewalls like no CORBA is important (and one reason
why the reach is so extended). I'm suggesting that HTTP and SMTP are to be
used as the protocol. Are you suggesting otherwise?

    I'm suggesting that the abstraction afforded by IDL and RPC can be
layered on top of HTTP and SMTP via XML? Do you have a problem with this?

    Web native distributed computing means using XML and HTTP and SMTP. This
doesn't replace the need to specify interfaces (for example the DOM is
delivered as an IDL specification). The point here is whether distributed
objects are good or bad (this becomes nothing more than your personal
opinion ... others would differ) rather how can object technology, including
distributed objects and object modelling be integrated with internet
standards such as XML,RDF,HTTP and SMTP.

    This is my suggestion (feel free to propose another): Distributed
systems can communicate via HTTP and SMTP using XML documents as the
contents of their MIME messages and function in the same fashion as
distributed systems which employ IIOP or DCE-RPC.

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list