Hannes Wallnöfer <[EMAIL PROTECTED]> writes:

> Here's my view on the frozen spec issue, as well as some background
> info for those who are relatively new to XML-RPC.
>
> As far as I know, the primary reason for Dave wanting the spec frozen
> is to not have too much of his small company's manpower tied up to
> following a moving spec. What he wants is to have a simple
> interoperability protocol that he knows works, and to be able to
> concentrate on whatever feature his company is currently working
> on. This is, IMHO, not a shortcoming per se but one of the very nice
> things about XML-RPC which makes it an ideal tool for the "small
> people". It also distinguishes it from something like SOAP, which can
> be very time consuming to follow/understand/implement.
>
> What this means is that the spec is not frozen for some fundamental
> reasons, but for pragmatical ones. It also means that implementations
> were always judged by pragmatical criteria of interoperability. One
> example is the use of ASCII encoding as prescribed in the spec. Of
> course not even Userland's software is using pure ASCII encoding, but
> for example ISO-8859-1 (or Microsoft's superset thereof), so it was
> generally accepted (and in fact highly desirable everywhere outside
> the English speaking area) that implementations could use extended
> encodings.
>
> I think there's some hope that the current issues with HTTP/1.1
> support may work out in a similar pragmatical manner. There is a lot
> of HTTP server and client infrastructure out there, and I think there
> is enough natural pressure on everybody (including Userland and
> ourselves) to keep up with what's out there and be as close to the
> HTTP spec as possible. For example, if one day Userland Frontier (or
> any other XML-RPC client implementation) would cease to work with a
> new Apache httpd (which of course implements the HTTP spec very well)
> there would be little use to hold up the XML-RPC spec and claim it was
> Apache's fault. After all, the XML-RPC spec also says XML-RPC uses
> HTTP POST, and the HTTP POST method is defined by the HTTP specs (and
> the servers and clients out there implementing it).
>
> The situation is a bit different for the things that lie completely
> within XML-RPC. One example is missing null support (see my previous
> posting). I really wanted null support (and in fact I relied on it
> with my own work). But making that kind of extensions on the spec will
> undermine the core purpose of XML-RPC (interoperability) and hurt
> developers. So if the frustrations with core XML-RPC capabilities gets
> to big, the solution is to either create a new protocol or go with one
> that offers more flexibility (and complexity, I guess) from the start.

Hannes, thank you for the background and lucid description of the
current situation.  I concur.

I'm not proposing changes to the server which would result in the
XML-RPC specification becoming a moving target -- nobody wants that.
What I would like is for the specification to become HTTP version
agnostic, which really has very little to do with XML-RPC itself.  In
fact, the only necessary modification to allow this is the lifting of
the arbitrary requirement of a Content-Length header.

[spec pseudo-diff]
-The Content-Length must be specified and must be correct.
+Content-Length is specified as per the HTTP version supported by the
 client.

Many clients (such as the Frontier and XML-RPC Perl implementations)
use external HTTP libraries which support this change seemlessly
(i.e. libwww-perl).  Other clients and servers (such as our own Apache
Java implementation) do not make use of the Content-Length header at
all, and supply it only because the specification says to do so.


                             Thanks, Dan

Reply via email to