Clemens Vasters: Enterprise Development & Alien Abductions
Thoughts about Microsoft .NET, Enterprise Services, XML and other dull and boring things.
Updated: 9/30/2002; 5:43:56 PM.

 














Subscribe to "Clemens Vasters: Enterprise Development & Alien Abductions" in Radio UserLand.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.

 
 

Sunday, September 08, 2002

More on Binary XML.

My idea of Binary XML is not for persistent data. It's just for transient inter process messages and RPC. The core question for me is: Why do I have support infinitive time to live for transient messages which are only for a very short amount of time semantically and contextually correct. We're talking about fractions of seconds, seconds or maybe minutes or hours here. Most architectures and implementations won't change that often. [Ingo Rammer's DotNetCentric]

A single message lives a second. The endpoint consuming or feeding messages may live for years. As soon as you deploy the endpoint in real life, it becomes a legacy integration problem. You may need to integrate with it in five or ten years from now, if the system has considerable scale, reflects a major investment and "just works". Changing the system may not be an option, because you simply may not own it! We, today, owe the simplest possible, most interoperable network data representation to the people who want to integrate with our stuff tomorrow: text.


8:50:16 PM      comment []

So, I am back from 1 1/2 weeks in Norway and 1 week of self-imposed abstinence from all things related to work, because I was in severe danger from getting into a burnout condition. 4 weeks of writing a book under pressure and then doing a monster tour isn't healthy. So, I haven't even looked at what's going on in blogland.

What I did is to finally play with my XBox that I got for my birthday. By now, I have almost finished Halo (fantastic game). The only thing that I can't get past is the ending sequence, which is a bit too much arcade-style for me. Same goes for "007 Agent under fire", where I am also stuck at the final scene :) 

So, in the last two days or so, I've started to look at the DM mailing lists again (after a long while where the lists just piled up in a folder in Exchange) and have a nice little conversation with Ingo on binary XML serialization, which I am going to pull into blogland now (I simply assume Ingo is cool with that).

A little conversation on binary serialization for XML

Ingo Rammer: we'd need the W3C to come out with a standardized format for binary serialization of the XML infoset as I don't really believe in angle brackets for .NET to .NET communication. Performance still matters.

Clemens: I am strictly against any binary serialization format for XML. Consider this: Hammer an XML document into a block of marble and bury that block of marble in your backyard. With some luck, someone will find that block in 2000 years. They'll be able to figure out your XML document. This wouldn't be true for anything binary. The longevity of binary formats is about 10 years, text works for some 4000 years now.

Ingo: Good point. When using XML as a persistent data format: agreed. But especially for SOAP (be it RPC or message oriented), where a single message has quite a short lifespan, binary serialization would improve performance both in terms of network load and in terms of parsing time. Also I guess the number of times where you would need to get access the exact representation of an RPC call you did some hundred years ago is quite limited. In fact, even if you would be able to read it, you maybe won't have access to its exact semantics or the state of the system at this time.

Clemens: You are leaving out one very important aspect here, Ingo. We need to integrate not only laterally across systems, but also across the time axis. When I write a system today and deploy it, it will have to be integrated into other systems from that point on. The best system will eventually have to be replaced in, say, 7-10 years, max. There is no guarantee any vendor can honestly give you that anything they do in a binary format will be supported in that time frame. Binary formats have severe drawbacks. They depend on byte-orders, data type representations, bitness, etc. It may be okay for today to say that everything ought to be binary for speed, but the fact of the matter is that you are paying for this with integration problems in the future -- as we're seeing at present and which is the primary motivation for people flocking towards text based data representations.

The least that we need is a text-based (XML) manifest that references binary data for any transmission where binary formats make sense: multimedia streams, for instance. So, WS-Attachments (I guess that's the most recent name) makes a whole lot of sense here, but I don't think that a fully binary format does make a lot of sense. In the end, we'd be going back to having a common network data representation format along the lines of DCE RPC and/or CORBA IIOP, which will, in the end, require a huge set of infrastructure to make it work. Interoperability across systems with binary data has failed.

I do agree with you, however, for vertical integration on the same technology stack. For interconnecting backend servers, binary data is the best choice. However, for these high-speed connections, the entire idea of SOAP may not be a good one. Systems with a need for very high speed connectivity and deep integration are typically one system distributed over multiple machines. I think that wiring up components of the same system via DCOM, IIOP or .NET Remoting is and remains a valid choice.

 .... to be continued ...


10:54:27 AM      comment []


© Copyright 2002 Clemens Vasters.



Click here to visit the Radio UserLand website.

 


Send email to Clemens
September 2002
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
Aug   Oct