Monday, March 05, 2007

REST vs WS-*

Tim Bray has a post about how the Web Services standards are unworkable and should be abandoned for REST.

This controversy is completely new to me, as in coming out of nowhere. I would be very interested in hearing from my programming readers, what do you think?

See also Bray's SOA and WCF.

Edit -

This seemed relevant -

Raines’ Rule #7 – Lessons & Roads Not Taken
7.Implement in phased, successive chunks
}as narrow in scope and brief in duration as practicable,
}each of which solves a specific part of an overall mission problem and
}delivers a measurable net benefit independent of future chunks.

4 comments:

Alex said...

SOAP and the WS-* stack is overly complex (combined specs are now approaching the 2000 PDF pages mark), and has been proven hard to provide interoperability. Using REST is in fact taking a step back, observe something that has been proven to be scalable, simple and extendible; HTTP and the Web. It's a step towards being resource orientated instead of too much focus on programming idioms (such as object-orientation, etc) and the shambles of RPC.

REST has a positive impact far outside the area of application development and network communication; it dictates good design also on your individual application level, where parts of your application is specified through what resources it works on; you don't need an API to specify this and the interactions. Also, the uniform HTTP interface makes wonders for interoperability unmatched by any API out there.

It's good stuff. REST as an architectural style has become increasingly popular after about 2002/2003. Often the best solution is sitting there right in front of you, but we're too busy to notice. I suspect more and more will notice. It's a good thing.

Alice said...

Obviously there is a lot I am missing here, because I had thought that Web Services were the answer to interoperability.

Alex said...

Alice: Interoperability requires all parties to adhere to specifications pedantically. The WS-* stack of standards documents are reaching the 2000 PDF pages mark, so I think it's fair to say that interoperability is becoming increasingly difficult, especially given that all these standards are most often either last drafts or version 1.0 of recomendations. REST is based on the basics of HTTP1.1 where interoperability is achieved through a uniform interface (you GET something, you POST something, you DELETE it, or you PUT to it, and you do all these things through URL's instead of API's)

Web Services (SOAP + WSDL + UDDI) seems to work when in a silo environment where you only communicate with systems based on the same vendor, which hardly can be called interoperable, and certainly not the the scale of the Web. Web Services is just an extension of the old CORBA -> RPC thing, although lately there's been movememnts in a more OO friendly direction (but that's extremly early days, and still littered with hundreds of yet more standards documentation).

Alice said...

When a standard reaches 2,000 pages PDF it sounds like it is no longer a standard, sounds like it is just a set of ideas.

I am really missing a lot.