I've tended to assume that I understood the REST vs SOAP distinction in web services, though as it has turned out most of the WS work I've done up to now has been in SOAP/WSDL territory. So REST was something I'd read blog posts about, but not used seriously. Today I got a copy of Leonard Richardson and Sam Ruby's book RESTful web services. Julie our admin dropped the newly-delivered book off at my desk about 9.30. As I usually do, I flicked through the contents to get a sense of the book before parking it on The Pile of things Intended To Be Read (eventually). A few hours later I'd read the first four chapters thoroughly and skimmed the rest of the book. This is a really well-written book, striking – for me – the perfect balance between explaining the principles and showing the techniques. Too many other CS text books either give you recipes to follow slavishly and leave you to reverse-engineer the principles, or else they part company with the ground and never return. Anyway, big kudos to Richardson and Ruby for a job well done.
So, I now get REST. I don't know that I completely buy all of the arguments, but only because I have a research interest in automation and agent systems, and I think those need more scaffolding. It seems to me that REST works particularly well – and the book makes a compelling case that it does – when you have a team of human developers trying to build usable, useful applications to deploy today. That's a big and important aim, no doubt, and good luck to them. However, if you want to build an autonomous system over a web services foundation, I think you probably need some of the things that SOAP and WS-* were reaching for. The problems with Big Web Services, as I see them, lie in the imperfect execution of the design and specification processes, rather than being fundamentally in a blind alley. I haven't (yet) caught the meme that REST good, Old School web services bad-in-principle. That being said, I think it would make an interesting investigation to think about layering an agent architecture over a RESTful base. Something to work on. Oh, and WADL looks interesting – something else to follow up on.
Richardson and Ruby's book is O'Reilly, so they have an animal picture on the front cover. In this case, a vulpine phalanger. Is that obscure or what? Note to self: write book for O'Reilly before all the cute animals are taken, and you're left with a choice of slug, horsefly or amoeba!