Sam Ruby posted a simple SOAP message request for the Google API earlier today. The request is so simple that I had to read it over several times before I believed that it was a valid SOAP message. I had gotten so used to more complicated, almost unreadable SOAP messages and totally unreadable WSDL specifications that it was nice to see there was still some "Simple" left in SOAP.
Mark Pilgrim posted a comparison to the SOAP message using XML-RPC. I have to admit that in this case the XML-RPC actually looks more complicated.
What is sort of interesting is that in the case of XML-RPC, when using Python, I never see what goes over the wire and I never give much thought to the actual message body, just like I don't generally think about HTTP headers or individual TCP/IP message blocks. From Python, I just provide lists and dictionaries and native types to the xmlrpc calls and it does the necessary transformations. The problem I was having with SOAP was interop and just trying to connect to a SOAP service so I did have to look at the SOAP messages and WSDL and deal with their complexity. Users of MS Visual Studio.NET and automated Java tools building SOAP and WSDL probably feel the same way about using SOAP as I do about using XML-RPC. If we ever get true SOAP interop, the tools and libraries should hide the nastiness. As a general rule, XML should be produced and consumed by tools and never seen or edited by humans. It is for interchange, stupid.
Sam also produced the excellent guides: A Gentle Introduction to SOAP and A Busy Developer's Guide to WSDL 1.1. Those aren't all you'll need to know to use SOAP and WSDL, but Sam's site is a good place to start.
12:14:17 PM
|