Jeremy Smith's blog

Entry Is Labelled

REST v. SOAP

I've been banging the drums for REST based Web Services for quite a while now. The other two common choices are SOAP and XML-RPC. There's plenty of information on the Internet describing the protocols and their differences, merits, trade-offs; so I needn't get into that here (maybe another entry). On the topic, though, James Governor weighs in on SOAP is boring, wake up Big Vendors or get niched (found via Another Loyal Oppositionist).

The piece pointed out in Governor's entry, Using Java with CC Web Services, has a funny quote:

We launced the Creative Commons Web Services several months ago. At the time, the goal was to provide a “beta� experience, as well as one that would power “ccPublisher’s� license chooser. At the time, we planned to develop both SOAP and REST implementations, but left the SOAP implementation incomplete due to time constraints. It’s been on my list to finish “real soon now� ever since.

In the meantime, let’s review the CC web services scorecard:

This has, actually, been shown time-and-time again. REST services are easier to develop atop of, are less complex, and fit the niche nicely in that they have already shown that they scale. Flickr: REST. del.icio.us: REST. WWW: REST. Amazon has two APIs for their web services, a SOAP based one and a REST based one. In Tim O'Reilly's article, REST vs. SOAP at Amazon, he mentions the usage statistics:

I was recently talking with Jeff Barr, creator of syndic8 and now Amazon's chief web services evangelist. He let drop an interesting tidbit. Amazon has both SOAP and REST interfaces to their web services, and 85% of their usage is of the REST interface. Despite all of the corporate hype over the SOAP stack, this is pretty compelling evidence that developers like the simpler REST approach.

I think SOAP was a near case of Architecture Astronauts. Fear... fear the Architecture Astronauts — they're well meaning people but are a real show stopper.

Comments

  1. gravatar

    I guess another question then is what toolsets are being used to make these calls? that is something i am going to try and dig into a little