XML is starting to implode

ziggy on 2002-04-23T17:36:36

Recent discussions on xml-dev have been focusing on the Google SOAP API released last week. Paul Prescod has been one firm voice that SOAP is fundementally broken in a few key areas:

  • The web is made up of many resources, many of which are idempotent (resources that always return the same conceptual response each time they are fetched: http://www.google.com/search?q=perl)
  • According to HTTP, idempotent resources should be requested using GET rather than POST, thus allowing certain interesting optimizations to be made, such as page caching
  • Entire classes of applications should be possible using simple GET requests; among these are XSLT stylesheets using the document() function to refer to external resources
  • SOAP operates in a world of POST requests, nullifying many of the properties that make the web what it is today
  • As such, XSLT stylesheets cannot originate SOAP requests (or XML-RPC requests for that matter), therefore cannot fetch an entire class of resources on the web
The SOAP-cabal appears hell-bent to ignore some of these issues, which happend to be the predicate of REST (Representational State Transfer; RPC and message passing through simple HTTP, not necessarily requiring SOAP envelopes).

One of the observations I've had during this debate is that the XML community is beginning to see significant fractures, and possibly irrecoverable ones. On the one hand, there is the SOAP-cabal, who believe that a generic interchange format (such as theirs) is the foundations of all that is to come. On the other hand, there are the old folks who recognize that there are some benefits to SOAP (such as an XML-based IDL: WSDL), and continually point out that SOAP literally breaks the web as we know it today. On the gripping hand, there are XML proponents who do not even touch RPC, message passing or idempotent web fetches, and don't really have an opinion about the SOAP vs. REST debate.

Combine this with other recent issues, such as the stagnation that is XML Schema, lukewarm adoption of RDF, and doubts on the direction and need of XML Query/XPath 2.0. All of a sudden, XML is beginning to look like it has grown to such a size (or allowed Microsoft in to such a degree) that it is crumbling from the inside out.

Unfortunately, even in that sorry state, it's still the best option we have for widespread information exchange.


Soap is starting to saponify

TorgoX on 2002-04-23T19:15:56

So make SOAP that works over GET. End of problem. Go do it, and ignore any excuses why it can't be done. I CHOOSE YOU, ZIGZOR!

BTW, saying "According to HTTP, idempotent resources should be requested using GET rather than POST, thus allowing certain interesting optimizations to be made, such as page caching" is, to say the least, an overstatement. This hoped-for GET/POST disinction is not exactly the cornerstone of the Web. Among other things, you can't send arbitrarily large data in a GET request, but you can in a POST request. That trumps the frankly little known "idempotency" consideration.

And XML is not the same thing as every daffy system built on it. It's a simple data format, and things that elaborate on that (whether Schemas, DocBook, Soap, or RDF) have to live or die on their own merits, not by rallying under the banner of "WE ARE XML!".

Re:Soap is starting to saponify

ziggy on 2002-04-23T19:46:49

So make SOAP that works over GET.
I'd like to point to Tim Bray's solution instead of crafting my own. The issue I'm raising is less of SOAP not working over GET, but rather that this particular SOAP issue is a symptom of a much larger problem. Believe it or not, XML used to be about crafting a small, easy-to-implement specification to encourage interoperability. Now, it's a teeming mess that's encouraging vendor-driven complexity over interoperability.
Among other things, you can't send arbitrarily large data in a GET request, but you can in a POST request. That trumps the frankly little known "idempotency" consideration.
I can say with all honesty that idempotency of GET requests never entered my mind until a few weeks ago.

Now that I've seen what the issue is all about, I can also say that wholesale deprecation of idempotency is a bad idea, whatever logic or technology is responsible. It's not so much that the web as a whole isn't idempotent, or isn't as idempotent as it should be. It's more that idempotency is a good idea in some applications, and ignoring it outright has the effect of making information more difficult to share and reuse -- something that takes the Web two steps backwards.

And XML is not the same thing as every daffy system built on it.
XML is many things. It's a simple grammar for tagging data. It's a family of standards for processing that tagged data. And it's a series of uses of tagged data, processed with those standards. (I've probably missed a few layers of floor wax and dessert topping in this many-layer cake.)

In this case, I was talking about the general world of XML development, and specifications for building systems to produce, consume and share XML-tagged data. That's probably definition 4 or 5 out of 12 for XML. In that sense, XML as a W3C standard platform revolves around a few things, including the use of URIs to address resources (using GET by default, and only GET with XSLT, RDF, XLink, XInclude, et. al.).

What's surprising is that something so simple as an RPC mechanism is bifurcating the XML world. It's even more surprising that this hasn't been an issue for the last 4 years.

Re:saponify

jjohn on 2002-04-24T00:55:44

From Webster's:

Saponify \Sa*pon"i*fy\, v. t. [imp. & p. p. Saponified; p. pr. & vb. n. Saponifying.] [L. sapo, -onis, soap + -fy: cf. F. saponifier.]

To convert into soap, as tallow or any fat; hence (Chem.), to subject to any similar process, as that which ethereal salts undergo in decomposition; as, to saponify ethyl acetate.

Cool word, TorgoX! Thanks!

XML

gnat on 2002-04-23T21:01:22

It's not so much that XML is falling apart, as we're seeing fundamental flaws in the W3C process. I've heard good things about OASIS as a possible replacement as standards body ...

--Nat

Re:XML

Matts on 2002-04-23T21:43:35

What XML doesn't need is more standards bodies. IMHO.

Re:XML

jhi on 2002-04-23T21:49:51

Yup. XML needs much more a bulldozer than a building crane.

Re:XML

darobin on 2002-04-24T04:26:56

The W3C's process isn't worse nor better than the processes of any organisation of comparable size. In the end, what counts is the people on any given Working Group, and how they interoperate (iow it's no different from any other project, you still get humans involved in there).

When you have a good WG, such as the SVG one which is mostly cooperative and composed of several quality people (look for a familiar name in the next rev of the spec ;), you get a good spec. When you look at the XML Protocols WG (behind SOAP) or the XML Schema WG (behind the monster), you don't even need to read the spec to be afraid: you're facing a bunch of marketing people defending corporate interest above all.

OASIS is a viable alternative to a certain degree (they need to produce something massively visible to managers to get more cred I think) and is certainly hosting excellent things such as RelaxNG in a much more open manner ($250 membership, create your TC if you have enough people, etc.), but I'd like to agree with Matt that we don't need more standard bodies. It was hard enough to get people to follow a spec rather than a company, and fragmenting standard bodies will probably set us back to leaving M$ in full control.

One thing however that I'd like to point out is that we certainly need less all-encompassing standards. People should concentrate more on "vertical" and ad hoc standards that get the job done.

XML is not falling apart, it's budding in springtime. It now has gone way beyond critical mass and quite naturally the XML community is finding out that it's not agreeing on everything. So what? There'll be fractures along certain lines, but all in all it sounds rather healthy -- if occasionally chaotic -- to me.

As a side note, it might be time for Perlians to look beyond the boring hype into the truly cool parts. I've seen a few early skeptics be recently "converted" (for lack of a less cult-orientated word, perhaps "unskepticized") to the XML model simply because it did make things a lot easier for them. "It looks like a huge mess with tons of things I don't need and lots of stuff that is completely obfuscated" is not an informed judgement. If I correlate my first reaction to Perl (and later CPAN) with my present feelings about it, such a knee-jerk reaction could in fact be construed a good omen ;)

Re:XML

Matts on 2002-04-24T10:32:13

Umm frankly having spent the last week trying to implement parts of it, the SVG spec bites. It contains all sorts of edge cases where it basically says loud and clear "SVG is not XML" - it's a subset of XML (actually it may even be a deviation from XML in some places). Check the docs for <path> for example. I'm sure this is simply because it's meant to be more of a consumer spec than the other specs, but it really has no place in a spec that uses XML.

Re:XML

darobin on 2002-04-24T15:41:14

Um... do you mind clarifying? I'm not exactly sure what you mean, or what you're referring to in the docs for path (which aren't exactly short ;).

Re:XML

Matts on 2002-04-24T15:51:14

Sure. See you on #axkit-dahut. :-)

Re:XML

darobin on 2002-04-24T16:01:07

Sure, I've been planning to take a breath and drop by soon :-) Right now I've got to rush out (hence my preference for async communication), but with any hope by the end of the week I'll have sorted out a sufficient number of things to take a pause ;)

Re:XML

ziggy on 2002-04-24T13:20:56

XML is not falling apart, it's budding in springtime. ... [A]ll in all it sounds rather healthy -- if occasionally chaotic -- to me.
I sure hope you're right about this. That hype driven chaos sounds about as healthy as malignant brain tumor with an appetite for desctruction.