In his post More SOAP vs. REST arguments Stefan Tilkov askes
I just noticed an interesting thing in the most recent iteration of the
SOAP-vs.-REST debate: this time, nobody seems to have mentioned the benefit — if
you believe that’s what it is — of protocol independence. Why is
that?
For the record, I personally believe it’s one of the weakest arguments.
When I was on the XML team, we used to talk about XML infosets and
data format independence to imply that it made sense if people could
use transfer formats that were optimized for their use cases but still
get the benefit of the XML machinary such as XML APIs (DOM, SAX, etc),
XPath querying, XSLT transformations, etc. This philosophy is what has
underpined the arguments for protocol independence at the SOAP level.
Now that I'm actually a customer of web services toolkits as opposed to
a builder of the framework that they depend on, my perspective has
changed. Protocol independence isn't really that important at the SOAP
level. Protocol independence is
important at the programming model/toolkit level. I should be able to
write some business logic once and then simply be able to choose to
expose it as SOAP, XML-RPC, RSS, or a proprietary binary protocol
without rewriting a bunch of code. That's what is important to my
business needs.
It took a while but I eventually convinced some of the key Indigo folks that this was the right direction to go with in the Windows Communication Foundation.
I damn near clapped when Doug demoed a
WS-Transfer RSS service exposing a HTTP/POX endpoint, a HTTP/SOAP endpoint, and a TCP/Binary SOAP endpoint at an internal summit a couple of months ago.
Bottom Line: Protocol independence is important to providers of Web services. However it isn't required at the SOAP level.