In
his blog,
David Chappell puts down what a lot of people have been slowly and quietly accepting over the past year or so:
To anybody who's paying attention and who's not a hopeless partisan, the war between REST and WS-* is over. The war ended in a truce rather than crushing victory for one side--it's Korea, not World War II. The now-obvious truth is that both technologies have value, and both will be used going forward.
Ignoring whether
the debate was ever about
REST versus WS-* or
REST versus SOA, this level of acceptance (or
fence sitting) has
been coming for a while. As David goes on to point out:
... take a look at Microsoft's forthcoming support for creating RESTful applications in the next release of Windows Communication Foundation (WCF). The official Java world is also on board, with the impending creation of JAX-RS.
But Microsoft and others have been
saying good things about REST and WS-* for several years, so this shouldn't come as a surprise. Only a few people still believe that Web Services are a global panacea. The same for REST. But this does raise the obvious question: when to use REST and when to use WS-*? In David's opinion:
A RESTful approach is a natural for data-oriented applications that focus on create/read/update/delete scenarios. Lots and lots of apps fit this model, especially on the public Internet. A solution based on WS-* makes more sense for service/method-oriented applications, especially those that need more advanced behaviors such as transactions and more-than-basic security.
But
Mark Baker disagrees:
He’ll get no argument from me that REST is good for data-oriented applications, but saying that it’s only good for the subset that fit the CRUD model is wrong. It’s wrong because CRUD doesn’t have an equivalent for HTTP POST. Once you incorporate POST into your repertoire, then you can do all kinds of interesting things like, say, ordering stuff.
Mark's open to education on this point, with:
Perhaps David - or anybody else - could point me towards a data oriented application which can’t fit (well) into such a model (not REST, just the uniform interface part).
So when David finishes his article with:
It's a real pleasure to see fanaticism recede and reason win the day. The war really is over.
is he right, or are we just in a lull while the generals decide on new battle strategies?