Slashdot Mirror


W3C launches Binary XML Packaging

Spy der Mann writes "Remember the recent discussion on Binary XML? Well, there's news. The W3C just released the specs for XML-binary optimized packaging (XOP). In summary, they take binary data out of the XML, and put it in a separate section using MIME-Multipart. You can read the press release and the testimonials from MS, IBM and BEA."

9 of 239 comments (clear)

  1. nothing else to work on? by seanadams.com · · Score: 3, Interesting

    The tech industry seems really starved for ideas lately.

    Binary file formats are hard.
    Let's use XML because it's easier.
    No wait... let's represent that XML in a more efficeint binary format.
    Ah yeah that's the ticket - the best of both worlds!

    Now let me just fire up my code-morphing processor which, through emulation ahieves x86 compatibility with "low" power consumption. Never mind it's slower overall and has worse MIPS/mW than an underclocked x86 - look Ma, we *inveted* something!!!!

    There are some real technical problems out there... why are people chasing non-problems like XML?

  2. As a software developer by Anonymous Coward · · Score: 4, Interesting

    As a software developer I find this particularly good.

    While I myself would prefer to write a binary protocol and send the data through a TCP socket I can no longer do that.

    When we land big contracts at work that deal in government and health the key thing they need now is interoperability with others. What does this mean? XML. Whether or not you like it, XML is here to stay. Its what everyone is pushing.

    Therefore we had to adapt and start using it. Not just for B2B, our rich desktop clients now communicate with the server using XML web services.

    The problem we've encountered is sending binary data. Right now we have to encode the data in base64 XML which uses lots of resources. I will give more look at this but it looks particularly good.

  3. Re:Seems like a great way to package media... by malfunct · · Score: 2, Interesting

    I would assume because base64 coding of binary data bloats its size (I think up to 40% additional size over the uncoded binary) and takes time to encode/decode. If you were to be able to put a marker in an element that says "binary blob 100 goes here" and include binary blob 100 in some other area that is pure binary then you would have the binary data without encoding overhead.

    --

    "You can now flame me, I am full of love,"

  4. Re:Noscript by tomhudson · · Score: 2, Interesting
    I'd tell them to switch to firefox :-)

    It's time to stop thinking of "web sites" and start thinking along the lines of "web apps" - not the old-style form-based "web app", but more along the lines of gmail - heavily client-side-scripted, nice presentation and data manipulation.

    What I see is very few pages (or even just 1 page) as the UI, data exchanged between server and client w/o page refreshes (can be done just w. javascript by sticking the data in iframes with a width and height of 0px, and reading/writing to the iframe. no need for a separate "data window" hidden from view - happy coincidence - I wrote code to do this last night).

    These work without a hassle even with popup blockers, etc. It's not necessary to turn off *all* scripting capabilities. Just get a competent browser :-)

  5. Script Data Structures in place of XML by Camel+Pilot · · Score: 3, Interesting
    I am currently writing a xul client/server application. I am using the xmlhttprequest function. however instead of processing xml data which is very slow, especially when you need to parse a data set several times a second, I started sending data stuctures in javascript code instead. This I believe is what Google Suggest does also.

    In addition the server code is written in perl so for storing status and configuration information, I used serialized perl data strucures processing requirements fell dramatically. With serialized scipt you still have the clear text editing and inspection capabilities without the speed and space issues. for example instead of
    <container>
    <title name="title">
    <item><name>Name1</name>
    <item><name>Name2</name>
    <description>Bla bla</description>
    </container>

    You have:

    {
    title=>"title",
    item=>[ { name=>"Name1" }, { name=>"Name2" } ],
    description=>"Bla bla"
    }
    It seems like serialized script code, in either perl, python, java provides the benefits of xml without the headaches.
  6. I'd have to agree with you on this... ;-( by PaulBu · · Score: 3, Interesting

    I've been thinking about the shortcomings of HTML (and everything else that followed it!) from the position of a computer scientist for YEARS... Those standards ARE shitty, big time.

    Conmtrast this to IEEE standards -- they get developed when a bunch of companies are ready to invest several mega$$ for a chip spin -- and they just want to choose the best course, arguing with each other about technical merit of this or that approach. And in the whole HT|X/ML world there can be (almost) no competition on technical merits, just a bunch of guys arguing if it should be or BAR .

    I wish I'd have the time on my hands and their budgets to actually try something revolutionary. Leke the original WWW, which was NOT designed by a committee...

    Paul B.

  7. Re:a bit confused by MassacrE · · Score: 3, Interesting

    Incorrect.

    XML, being a text format, required proper text encoding. In particular, XML does not allow most of the codepoints (speaking in unicode terms) between 0 and 31 (tab and newline excluded). If you use UTF-8, you cannot use byte values beyond 126 as those are used for forming higher-value unicode characters. In addition, the five main XML markup characters (< > and &) can only be used in some places.

    So, to make a long story short, you base64 everything. For every three bytes you have, you output 4, giving you a 33% increase in space.

    outside of the XML document you do not have to require text. data can be considered 8-bit clean and sent in a big binary block.

    So for example, an additional requirement of 200 bytes for specifying all the MIME information would be made up for within the first 600 bytes worth of binary data. Even without this space benefit, you get the benefits of a standard way of including binaries, and the ability to potentially access the binary data directly if the transport was indeed 8-bit clean.

  8. SXML by Anonymous Coward · · Score: 1, Interesting
    Ever heard of SXML? It's XML represented as Lisp-family S-Expressions. This makes it a native data structure to e.g. the Scheme programming language. It's also lighter than XML, since it is less redundant and verbose. Your XML (which is not well-formed XML, you left out a bunch of closing tags) example would become:
    (*TOP*
    (container
    (title (@ (name "title")))
    (item (name "Name1"))
    (item (name "Name2"))
    (description "Bla bla")
    ))
  9. Re:Binary... XML... Nah! by passionplay · · Score: 3, Interesting

    I think everyone that's posted to this thread to this point has missed the point here. This XOP optimization has nothing to do with making XML more compact or anything. It has to do with delaying latency for large payload transfers and allowing the client application to decide if it wants the large binary payload.

    Seriously, you guys need to re-read the article again.

    The problem with XML binary payloads now is that you find out that you have a large chunk of payload too late in the game and can't avoid it if you don't need it.

    This method allows you to know everything there is to know about the payload before you get to the payload.

    In theory, you should be able to skip all the payload data until such time as you really need it, thereby speeding up large transfers of XML data when only the metadata about the payload is required.

    Make sense? I think so too.

    P.S. Binary XML is entirely different animal.