Windows DevCenter    
 Published on Windows DevCenter (http://www.windowsdevcenter.com/)
 See this if you're having trouble printing code examples


News -- MS SOAP SDK vs IBM SOAP4J: Comparison & Review

by James Snell
06/01/2000

With the recent submission of the Version 1.1 Specification of the Simple Object Access Protocol (SOAP) to the W3C, the fledgling new XML-messaging/rpc protocol has been getting a lot of attention -- mostly from developers wanting to know how exactly to use it in their enterprise applications. Not wanting to disappoint, the two largest supporters of SOAP, IBM and Microsoft, have both recently released two vastly different (and unfortunately, incompatible) reference implementations of SOAP.

If you're new to SOAP, I'd recommend first taking a look at the specification before playing around with either package so you can have a better understanding of what is going on behind the scenes. If you are already familiar with SOAP, I've done my best to put together a side by side comparison of the two packages as they relate to SOAP Version 1.1 Conformance, ease of use, stability, deployability and compatibility.

The Contenders

SOAP Version 1.1 Conformance

IBM wins overall regarding SOAP Version 1.1 conformance. The areas I looked at include the formatting of the SOAP Envelope, namespace usage, data type support, and fault response structure.

Ease Of Use

Microsoft wins for overall ease of use. The areas I looked at include ease of installation, implementation code complexity, and debugging.

Stability

IBM wins, hands down. Here, I looked at bugs in the package and how those errors were handled.

As I mentioned earlier, the IBM package is wonderfully stable -- and I would wager to say that it's nearly production ready.

Compatibility

IBM wins. I examined the interoperability of each package with other SOAP v1.1 implementations.

As a quick experiment, try using an MS SOAP Client application to hit an IBM SOAP For Java server. I'll tell you now that it won't work unless you manually code the SOAP envelope XML and pass it through using nothing but the WireTransfer object included in the Rope.dll. The problem lies with the improper and inconsistent SOAP version 1.1 conformance, and the bugs, within the Microsoft SOAPPackager component. Because the SOAP Packaging is incorrect, it takes a lot of massaging to get the Microsoft toolkit to work with other, more compliant SOAP v1.1 implementations. The reverse is also true -- IBM SOAP For Java clients do not work "out of the box" with an MS implemented SOAP server.

IBM's SOAP For Java, on the other hand, works beautifully with clients and servers designed tightly around the SOAP v1.1 specification.

Conclusion

When all is said and done, the Microsoft toolkit currently works very well with SOAP implementations designed specifically around its envelope encoding quirks and errors. However, this doesn't make the Microsoft toolkit very useful for developers wanting to integrate with existing SOAP implementations on other platforms.

I do, however, remain optimistic that the situation will get better. Microsoft has put a lot of time and energy into SOAP and has committed a good deal of resources to the task. The MS SOAP toolkit will be improved over time. On the IBM side of things, the recent news that the Apache Software Foundation has taken over the SOAP For Java project means there is no doubt that the package will only get better with time.

James Snell

Copyright © 2009 O'Reilly Media, Inc.