“Smart people defending bad ideas”?

In a recent post, Jim argued that SOAP performance is getting better and linked to a couple of articles presenting performance measurements. Of course everyone agrees that processing an XML document has its overheads. And of course, SOAP messages are XML documents.

Michi Henning commented on Jim's post arguing in favour of ICE and its performance advantage over SOAP. Mark Little contributed to the discussion with some more comments with which I agree.

Then, the president of Zeroc, the company behind ICE, commented on the discussion through an article in issue 4 of Zeroc's Connections newsletter. In there, he rhetorically asks "how can smart people take up positions that defy any reasonable logic?" explicitly referring to Jim. Wow! I am sure Jim will produce his own reply to this but I just wanted to put my own thoughts forward...

SOAP processing is indeed slower than ICE, than pure socket communication, than Jini, CORBA, etc. It is improving though. We are even starting seeing hardware products to help with XML processing. How many hardware manufacturers have got into the ICE protocol processing market? Please note that I have nothing against ICE or any other messaging format/protocol. However, I think that there is a side of the story that Michi Henning and Marc Laukien have not considered in their arguments.

Wide adoption

The strength of XML and SOAP is not in their performance advantages but in their wide adoption and tooling support. We have a great opportunity for the first time to build interoperable systems based on a commonly agreed suite of technologies for distributed computing (well, not everyone agrees on all the WS-* specs but there is agreement on enough of them and things will only get better). Shall we compare the current momentum of SOAP to that of CORBA or ICE? As Mark says, it is always the case of using the right tool for the right job. So, I have no doubt that CORBA and ICE solutions may still be deployed inside the firewall of an enterprise. There are plenty solutions out there as my friends at IONA and BEA and others will tell you to help with the integration story. Are we going to see CORBA or ICE in cross-organisation scenarios? I seriously doubt it. Microsoft is betting on SOAP and made it a key part of its distributed computing platform, not DCOM.

Performance vs functionality

Given the adoption argument above, I wonder how those in favour of CORBA or ICE or DCOM or Jini, based solely on their performance advantages, feel about programming in Java or C++? Isn't it the case that in the beginning programming in assembly was much faster than programming in high-level languages? Granted, compiler and JIT technology progressively got faster but there was a good reason why we are always moving to higher levels of abstractions. Systems become more complex and we need new paradigms and tools to deal with them.

Nowadays, issues related to security, policies, contracts, agreements, reliability, metadata processing, semantics, etc. require us to come up with new paradigms for building distributed systems. These paradigms require new models, new protocols, new tools. Performance at first will be bad but it'll get better in the same way that C compilers got better.

Service-orientation vs RPC & Object-orientation

It seems that Michi still believes that RPC is the way to build distributed systems. Waldo has a different view. The Alpine folks have recently given a different angle to what is effectively the same discussion but from a tooling perspective. To my mind message-orientation seems to be the way forward. This topic has been exhausted so I am not going to expand further here. Google is your friend if you want to find out more.

 

I can see why the ICE folks want to support their product and promote its performance advantages; fair enough. But I also feel that their attack to Jim's views is one-sided since they fail or choose not to see all the arguments of the current distributed computing story.

2 responses to ““Smart people defending bad ideas”?”

  1. Steve Loughran
    I work with someone how his a great fan of RPC, but on things like infiniband, where latency is neglible. Personally, I think messaging is better not only when there is a lot of latency, but when there is unreliability in the comms -including the stability of the thing at the far end. Even COM process-to-process can fail in interesting ways.