Nelson Minar: "It just doesn't
work.
Maybe with enough effort SOAP interop could eventually be made to
work. It's not such a problem if you're writing both the client and
the server. But if you're publishing a server for others to use?
Forget it.
The
deeper problem with SOAP is strong typing. WSDL accomplishes its magic
via XML Schema and strongly typed messages. But strong typing is a bad
choice for loosely coupled distributed systems. The moment you need to
change anything, the type signature changes and all the clients that
were built to your earlier protocol spec break. And I don't just mean
major semantic changes break things, but cosmetic things like
accepting a 64 bit int where you use used to only accept 32 bit ints,
or making a parameter optional. SOAP, in practice, is incredibly
brittle. If you're building a web service for
the world to use, you need to make it flexible and loose and a bit
sloppy. Strong typing is the wrong choice.
The REST / HTTP+POX services typically assume that the clients will be flexible and
can make sense of messages, even if they change a bit. And in practice
this seems to work pretty well. My favourite API to use is the Flickr API, and my
favourite client for it is 48
lines of code. It supports 100+ Flickr API methods."