Is REST Winning?

, May 31, 2007

I just posted this to InfoQ:

The topic of REST as an alternative way for Web-based integration — as opposed to Web services, which are perceived by a small, but vocal community to violate the Web’s principles — has been debated on InfoQ many times before.

The oldest discussions of SOAP vs. HTTP date back to the year 2000, where #1 evangelist Mark Baker replied to James Snell. As early as 2002, Paul Prescod wrote an article claiming that the principles embodied in the Web’s architecture make it superior to “DCOM for the Internet” (his label for SOAP RPC). Since then, the debate has been going on and on, with a noticeable tendency that more and more experts support either both the WS-* and REST camps. Discussions here at InfoQ with Mark Baker, Sanjiva Weerawarana, and Pete Lacey have received lots of comments, arguing both for and against the merits of the REST approach.

More and more Web services tools, such as Apache Axis2 and CXF, have started to offer some support for the REST model. Sun has started JSR 311 to standardize support for RESTful web applications on the Java platform. Ruby on Rails has supported REST since version 1.2. Most recently, Microsoft’s support for REST made the news.

In February, the W3C organized a workshop where one of the submission papers (by Nick Gall, a Gartner VP) contained the following claim:

Web Services based on SOAP and WSDL are “Web” in name only. In fact, they are a hostile overlay of the Web based on traditional enterprise middleware architectural styles that has fallen far short of expectations over the past decade.

Now a significant statement in favor of REST comes from none other than Burton Group analyst Anne Thomas Manes, who has been one of the most prominent public figures in the Web services space (and also authored a book on the topic):

If you’re ready for REST I suggest you jump on board right away and get ahead of the curve […] You’ll have to train your developers in REST principles. You’ll probably want to adopt one of the new frameworks or help build one yourself to help your developers implement RESTful applications. You definitely need to provide guidance to your people. What you want to do is work to the point where REST becomes the default for all your distributed applications.

Taking off my editorial hat for a second, I fully admit that I am clearly biased towards REST, so possibly I am perceiving this wrongly. It’s also entirely possible that Pete Lacey is right and they can’t hear you. But it seems obvious that REST is significantly gaining mind share among former SOAP/WS-* proponents, and that finally, the vendors have started to support this.

Is REST “Web services done right”, and will the WS-* universe disappear and be replaced by Web technology? Is REST just another technology choice, irrelevant in the larger context? Are Web services based on SOAP, WSDL, and WS-* the obvious, correct and undisputed choice for supporting SOA?

What is your opinion?

Let’s discuss over here.