Tuesday, November 27, 2007

XML Goes Binary with EXI

A new standard from the W3C promises to allow web servers to talk to each other super-fast.

When it comes to bandwidth usage, binary beats text any day. The same is true when it comes to CPU processing of data. That's why programs are compiled and why most databases don't simply store data in giant text files. So, it doesn't make much sense for XML, a metalanguage who's primary purpose is the interchange of data on the Web, to take the form of plain text.

To address this issue the W3C has recently been developing a standard called EXI (Efficient XML Interchange) that represents XML data in a binary form. This should mark a significant improvement over both data compression and commercial XML hardware-accelerators available on the market today. "It is unlike data compression, which has overhead associated with it", explained John Schneider, co-editor of the EXI working draft, "There are people out there that are buying XML accelerators and hardware to speed up XML processing... but it doesn't do anything for bandwidth."

Representing XML as binary will help solve both issues because it will not only be the most minimal possible size representation of the XML (which is good for bandwidth), but the data can be stored and processed directly in its EXI form. So not only will you not have the added overhead associated with data compressors, but processing will actually be significantly faster in this new binary form than in it's plain-text XML representation. According to Schneider, "on average, 12 to 14 times faster than processing normal XML." The way I see it, even if EXI in the real world doesn't even come close to their estimates, it'll still be hella-fast.

The best part about this whole thing is that, chances are, us programmers won't have to do a thing to take advantage of EXI. John says it will be embedded at the lowest level of the XML stack, in the parser or serializer, so your Web server will do all the work for you.

Read: W3C
Read: XML Developer

Labels: , ,

4 Comments:

At 11/27/07 1:44 PM, Blogger phpdiscovery said...

Do you have any links to your sources that you got the information from.

 
At 11/27/07 2:00 PM, Blogger Grinn said...

Sure. Not sure if I used all of these for the article, but here some more stuff you can read:
SD Times, Issue 185 (print media)
http://www.w3.org/XML/EXI/
http://bitworking.org/news/W3C_Launches_Efficient_XML_Interchange_Working_Group
http://searchsoa.techtarget.com/tip/0,289483,sid26_gci1271908,00.html

 
At 11/27/07 2:25 PM, Blogger JohnSchneider said...

Thanks for drawing attention to the W3C's work in this area Grinn! As it turns out, the W3C chose to base EXI on a mature technology that's already seen very broad use(called Efficient XML), so you don't have to wait to see how it performs on real-world use cases. If you want to see how it performs on your data, you can download free evals of several different EXI products from http://www.agiledelta.com/efx_download.html.

Be Efficient!, :-)

John

 
At 11/27/07 3:01 PM, Blogger Grinn said...

Thanks for the tip, John. XML's efficiency has been something that has troubled it from the start. Thanks for helping to do something about it!

 

Post a Comment

Links to this post:

Create a Link

<< Blog Home