Even though REST was only formalized in 2000, it is fundamentally based on the Web architecture and its core standards: HTTP and URI. At the same time, efforts to port on the Web older technologies such as CORBA, RMI and DCOM resulted in the specification of SOAP, WSDL and soon after of a full stack of interrelated standards commonly known as WS-*.
While adopting the “Web Services” name as an umbrella for their specification efforts, WS-* proponents didn’t initially realize that they were actually porting an older “remote procedure call” paradigm on top of the Web. But, the Web was already a proven distributed system, based on a set of standards and an informal architecture. Thanks to the amazing work of Roy T. Fielding and a core group of REST proponents (often named RESTafarians) like Mark Baker and Paul Prescod (check this recent interview), the mismatch between both approaches became progressively evident.
This tension, often described as a battle, was in fact fruitful to both sides. The WS-* proponents realized that their approach brought in too much complexity, leading to inextricable interoperability issues (as an illustration, see this video from Simon Guest, a product manager at Microsoft). The REST proponents, within an active community, progressively built a common body of best practices and dedicated tools.
It seems to me that, like in 2000, we are at a cross-road. Hopefully, 2007 will be the year of reconciliation between both camps. REST proponents would understand and start to address more complex enterprise needs, like integration through business processes and provide more concrete guidance on REST usage and better tooling support. WS-* proponents would finally consider REST as the foundation of their architecture and would slowly refactor their stack of specifications into of simpler and coherent set. Everyone would benefit, first by stopping the waste of energy in endless pro/con arguments. REST would become a respected part of the SOA industry and WS-* would be respected as a real and usable Web Services platform.
The W3C members part of the Architecture Domain will meet at the end of February for a workshop on the Web of Services for Enterprise Computing. Looking at the position papers from Mark Baker, BEA, IBM, Iona, Progress Software or Yahoo!, it seems that the whole industry is finally going back on a more sensible track.
- The presentations slides are now also available online
- Eric Newcomer (Iona) has a nice two parts summary of the event! (part 1, part 2)
- Paul Downey (BT), Paul Sandoz (Sun), Pete Lacey and Johnathan Marsh (WSO2) have also reported back
- Dave Orchard also reported and talks about some ways of reconciling REST and WS-*, namely usage of WADL to formally describe REST applications and a new SOAP binding for HTTP/URI/XML that would be consumable by REST clients. That sounds like very useful propositions to me.