« Hans Reiser: The Naming System Venture | Main | Tom Klaasen: false dilemma »

Two quotes from Roy Fielding on SOAP

I'm blogging these quotes because I'm convinced a lot of people working in the Java, .NET and enterprise computing worlds think REST is some kind of wacko nonsense spouted by standards wonks who don't build real systems, and thus can safely be ignored. This attitude is can be neatly summed up: 'where's the REST toolkit?'. If you've ever had that thought, please don't hit the back button yet. Roy Fielding as many of you will know, is was chairman of the ASF and coiner of the term REST.

Correction: Sam Ruby pointed out that Greg Stein is the current ASF chairmen, not Roy Fielding. Thanks, my bad. Sam took a lot of flack last year from REST advocates, stuck with it, and built a lot of bridges as a result; he's a key guy working on making sure people can have their REST and eat SOAP too.

I'll be posting more snippets on REST and webservices in the future as I come across them. Enjoy.

www-tag@w3.org from April 2002: Re: FW: draft findings on Unsafe Methods (whenToUseGet-7)

Anne Thomas Manes:
"Please review the charter of the XML Protocol working group. It explicitly says that the XML Protocol should be based on SOAP 1.1 This isn't a request to rubber stamp SOAP 1.1. We want and need to improve SOAP, but we don't want to make a complete change to its architecture. I'm also pointing out some basic realities. W3C is, at heart, an academic organization. And its perfectly reasonable for W3C to pursue its academic goals (REST and the Semantic Web). But if W3C wants to play a major role in business systems, and if W3C wants to continue receiving funding from the big software vendors, then the W3C TAG must be willing to accomodate the requirements of big business. If the REST faction continues to try to undermine the existing Web services architecture, it will alienate big business."

Hmmm, well, speaking as an academic and an open source developer AND a commercial software developer, I can say with authority that the W3C was created by big businesses specifically to prevent their own marketing departments from destroying the value inherent in the Web through their own, and their competitors', short-sighted, quarterly-revenue-driven pursuit of profits. It was not created by academics. Open source developers actively opposed the creation of a pay-to-play consortium. The only reason it is at MIT is because that's what was needed to attract the people with a clue to an underpaid job.

If we are to remain silent on this issue, then the W3C should not exist.

The Web creates more business value, every day, than has been generated by every single example of an RPC-like interface in the entire history of computers. Businesses would have to be collectively insane to place that architecture at risk just because a group of software marketing giants claims that it is the next big wave. They want people who are experts on the Web architecture to stand up and defend it when needed.

The only reason SOAP remains in the W3C for standardization is because all of the other forums either rejected the concept out of hand or refused to rubber-stamp a poor implementation of a bad idea. If this thing is going to be called Web Services, then I insist that it actually have something to do with the Web. If not, I'd rather have the WS-I group responsible for abusing the marketplace with yet another CORBA/DCOM than have the W3C waste its effort pandering to the whims of marketing consultants. I am not here to accommodate the requirements of mass hysteria.

www-tag@w3.org from April 2002: Re: draft findings on Unsafe Methods (whenToUseGet-7)

The problem with SOAP is that it tries to escape from the Web interface. It deliberately attempts to suck, mostly because it is deliberately trying to supplant CGI-like applications rather than Web-like applications. It is simply a waste of time for folks to say that "HTTP allows this because I've seen it used by this common CGI script." If we thought that sucky CGI scripts were the basis for good Web architectures, then we wouldn't have needed a Gateway Interface to implement them.

In order for SOAP-ng to succeed as a Web protocol, it needs to start behaving like it is part of the Web. That means, among other things, that it should stop trying to encapsulate all sorts of actions under an object-specific interface. It needs to limit its object-specific behavior to those situations in which object-specific behavior is actually desirable. If it does not do so, then it is not using URI as the basis for resource identification, and therefore it is no more part of the Web than SMTP.

If you're coming from a CORBA/J2EE/DCOM background to webservices you really need to absorb the lessons learned by the people who built out the web infrastructure over the last decade. If what you build isn't going to be an expensive failure and your credibility is not to go down the toilet then you need to appreciate that going from distributed object computing to webservices is as big a shift as going from desktop computing to distributed object computing. There's more to successful webservices than trying to run object method calls over HTTP.

In terms of developer mindshare and understanding, REST today is roughly where extreme programming and agile methods were three years ago. It has other things in common with agile software; its core principles have been around for a long time, are simple, are mature, are well understood and implemented (but by not enough people), and tend to get ignored in favour of stuff that doesn't work so well.

January 4, 2003 03:34 PM


Sam Ruby
(January 4, 2003 05:03 PM #)

The current ASF chairman is Greg Stein. Roy was his predecessor.

Nevertheless, the second quote is one of my favorite posts from Roy. If you can read it carefully, you come to the conclusion that not all HTTP applications are RESTful, nor do all SOAP applications suck.

This comment was brought to you by mt-comments.cgi, which also happens to be one the of the cgi applications which doesn't suck.

Bill de hra
(January 4, 2003 08:48 PM #)

Thanks for the correction Sam. Updating...

Trackback Pings

TrackBack URL for this entry: