Leonard Richardson: The “POX” in HTTP+POX basically means “no SOAP”, but what specifically don’t HTTP+POX people like about SOAP? Is it the complexity of the SOAP message itself? Plain old XML can get pretty complex too. Or is it the fact that the SOAP message contains information (like the method name) that they think should go in the URI?
The closer you look, the less obvious the distinctions are.
Another way to look at this is to ask yourself whether the wire format is the interface, or is merely a serialization of a higher level abstraction? In some carefully designed, document literal interfaces, the API can be viewed in both ways.
For an example of a popular higher level abstraction, look here, then here. This model achieves simplicity by viewing the transport as a black box:
.
Developing this book in public is going to be fun.
A good engineering principle is to take out unnecessary features until there’s nothing more to remove. By that principle, if you wrap your document in an envelope that never gets used, you added an unnecessary complex feature.
SOAP also requires the soapAction header, forces using POST, guesses the operation from the element type, and requires some namespace fancy work. That’s four more features that you’re adding.
Is it just a wire-format on top of an abstract interface? Only if your architecture is tightly coupled into a SOAP stack that can understand the protocol, unravel the namespace contexts, decide on operations, etc.
The moment you try using wget to fetch some data, it stops being a wire format and becomes a burdensome interface. (And the same can be said for HTTP when you all want to do is sniff TCP packets)
I like how news of Sam and Leonard’s REST book is kicking off a new REST/SOAP thread. This time though, it seems the tables are turned and it’s the Web services proponents who are having to defend their preferred architectural style,...
It’s time to reawaken this blog, and the current POX/REST/SOAP thing is as good a reason as any. Everyone has something good to say, and I have comments for everybody. Leonard Richardson kicked it off while ruminating about the forthcoming...
Sam Ruby: POX and SOAP Leonard Richardson: The “POX” in HTTP+POX basically means “no SOAP”, but what specifically don’t HTTP+POX people like about SOAP? Is it the complexity of the SOAP message itself? Plain old XML can get... mickn soap...