“Internet SOAP” vs. REST: Huh?

, Dec 28, 2007

Ganesh wrote about “paying back RESTafarians in their own coin” (be sure to check out the comments); Mark Little did a write-up about this for InfoQ; Paul Fremantle seems to like it. Mark also has a very good follow-up article.

I did not find Ganesh’s article convincing, as his premise is wrong — at least if I understand him correctly. His point seems to be that similar to the way REST folks are saying “just use the Web instead of layering WS-* on top of it”, a similar argument could be made for “just use TCP instead of layering the Web on top of it”. If TCP is all you need, I’m all for it. HTTP is an application protocol on top of TCP — if it matches your needs, use it, if it doesn’t, don’t. The difference is that WS-* does not add benefit on top of HTTP and the Web.

Steve Vinoski puts it best:

I don’t believe any system based either on interface specialization (i.e., the opposite of the uniform interface constraint) or on “processThis” can scale to Web scale. Interface specialization significantly increases coupling while reducing visibility and applicability, while “processThis” is so devoid of semantics that it offers nowhere to practically apply constraints like caching and statelessness that are so critical to scalability.