Skip to content

A rant about the complexity of working with SOAP services

For the second draft of Chapters 6 and 7, I've been writing up a section on working with SOAP. I knew that it might be complicated to explain but I had no idea that it would be so difficult to distill the subject down to clear rules of thumbs that really work. I need to give up right now on trying to figure out all the kinks — of which there are many — in consuming SOAP services from a variety of languages. I've made a lot of progress but that work has been really slow-going and extremely frustrating. More to the point, the contribution that a section on SOAP/WSDL makes towards finishing the book are insufficient to justify the immense amount of effort I have to expend on the topic.

I've come to some basic conclusions about SOAP and WSDL. A fundamental problem with tightly coupled exchange protocols such as SOAP is that there too many places where errors can be made. And when you run into problems, It's hard to even know where the error are. And the protocols are pretty complicated. Underlying complexity wouldn't matter if everything just worked. But that's the case right now, forcing people who want to consume SOAP services to dive down into the details of the protocol. It seems that it's been difficult for people to write and interpret the protocol properly. Or people in scripting community have generally thought it not worth the effort to do so. SOAP+WSDL are very fragile technology

Ideally, you wouldn't have to know much about how the underlying technology works. But the documentation of SOAP libraries is often bad. You are not told what certain parameters mean. That means you need to know about how SOAP works to make sense of the parameters. That really shouldn't have to be the case. Moreover, there is more coupling between the conceptual models of SOAP and WSDL than one would know. So much easier to get started with REST, even if REST has a lot of subtleties of its own.

Comments anyone? I'd really like to be shown where my thinking is wrong and how I can start using SOAP and WSDL with ease in PHP, Python, etc.

{ 1 } Comments

  1. sdubois | August 23, 2007 at 4:57 pm | Permalink

    I disagree quite a bit. I think the assumption you make here is that to use SOAP as a developer, you have to know the intricacies of the protocols (SOAP and WSDL). But you really don't have to. It all depends on the toolkit you use.

    I'll take an analogy. Do we require internet users to know HTML to navigate the web? No we don't. On the user side, the browser takes care of it. If end users had to read HTML pages in plain text they would find it very obscure indeed.

    On the server side you could be writing your HTML by hand (which you would then need to understand) or you could use some advance tool that allowed you to write pages in a WYSIWIG fashion and completely hide the HTML.

    So it all depends on the tools and how well they hide the protocol from you.

    If you want to write a web service by hand, you will have to know SOAP and WSDL. If you use a good toolkit, all you have to do is write a function call and you have a web service.

    If you want to consume a web service without a good SOAP toolkit, you will have to learn the standards but not otherwise. I personnaly wrote dozens of web services which collectively have served billions of SOAP requests to hundreds of firms around the world yet I have never read the SOAP specs and I can barely read a WSDL by hand. All I had to do was to write meaningful function calls.

    Clients who use good SOAP toolkit can go from pointing to our WSDL to consuming data in their application in less that 60 seconds without a hint of what the protocols are about (Something impossible to do with REST).

    Those who come to us with more primitive languages will have to spend more time working out the details.

    SOAP's bad rap comes from those who just have not wanted to use more advanced SOAP toolkits.

    It's very sad indeed. To me is it as if back in 1996, we had abandoned the power of the web and stopped building web pages because a bunch of people insisted in using a text editor to open HTML pages instead of a browser and complained about how unreadable this HTML was.

    Unfortunately, :-), php and python are not ones of those better SOAP toolkits.

    I would love to discuss further

    I've written around 50 web

{ 1 } Trackback

  1. […] SOAP vs. REST debate, mainly because this blog started after the battle began raging. But a recent post by Raymond Yee–who is writing a book about mashups–suggested a […]

Post a Comment

You must be logged in to post a comment.