.NET Framework 4.0 to become less SOAP-centric, embrace REST
It was surprising enough when four years ago, Microsoft made an historic decision to ditch its own Web services architecture attempts and go with the flow. Today, it announced its next version of Windows will go with a different flow.
For the last four years, one of the most prominent signs of Microsoft's change of thinking with regard to the division of labor in programming, has been its embrace of Simple Object Access Protocol (now just called SOAP, after too much deliberation over the acronym) in Windows Communication Foundation (WCF). It was Web standards organizations, not Microsoft, that initially drove the widespread adoption of so-called WS-* services that use SOAP, but Windows' embrace of SOAP later cemented the standard as a fixture of Web development.
Initially, WS-* support was to be the hallmark of Microsoft's next-generation operating system back when it was still code-named "Longhorn," but later it was retrofitted to later editions of Windows XP, as well as to the .NET Framework.
But now that the tide of developer sentiment has recently shifted toward a new Web services model, that trades SOAP's platform independence for a more simplistic transaction structure called Representational State Transfer (REST), Microsoft is saying that it will be building what it's calling a "unified XAML model" into the next editions of both WCF and .NET. Those components will premiere in Windows 7, and beta testing will begin later this month.
As .NET Framework product manager Steven Martin described on his blog this afternoon, "As developers are broadly adopting the use of web services to build applications (using a spectrum of both advanced WS-* services as well as lighter weight RESTful services), they are reusing services that can live disparately across their enterprises, or on the Web. The best part of composite applications is that they can improve productivity and efficiency on the dev side and give more power to end users for accessing and managing data that's most critical to the business. As a result of the growing popularity of composite apps, developers require new levels of sophistication for building distributed, long-running, and workflow-centric applications."
That's the crux of Microsoft's marketing message explaining the move toward the REST model. But a white paper also released by Microsoft today takes that language somewhat deeper, going so far as to call into question the viability of the very aspects the company had cited as recently as months earlier as its reasons for embracing SOAP in the first place.
"Composite apps present new challenges around scalability, performance and reliability," reads Microsoft's latest "Overview" white paper on its new "RESTful" technology, code-named "Dublin" (DOCX available here). "The tried and true strategies for optimizing traditional applications do not satisfy in the more complex environment of composite applications. To address these requirements, composite applications must adopt more sophisticated application architectures -- including managing of highly asynchronous transactions, automation of long-running durable workflows, coordination of processes across very heterogeneous environments and seamless interoperability across platforms using standards. Increasingly, customers are turning to workflow-centric and 'declarative' approaches of defining application logic to help manage this complexity."
On the day that Microsoft first announced its WS-* technology adoption publicly, its product managers cited as its reasons for doing so what they called the "four pillars:" scalability, performance, availability, and reliability. (Marketers since that time have merged the final two items into one.) This February 2007 study by WCF program manager Saurabh Gupta graphically demonstrated the superior performance, scalability, and availability of WS-* Web services over the technologies that Microsoft had previously employed prior to embracing WS-* and SOAP, including ASP.NET Web Services (ASMX) and the Web Services Enhancements (WSE) add-on to Visual Studio 2005.
"To summarize the results, WCF is 25%-50% faster than ASP.NET Web Services, and approximately 25% faster than .NET Remoting," reads Gupta's conclusions. "Comparison with .NET Enterprise Service is load dependant, as in one case WCF is nearly 100% faster but in another scenario it is nearly 25% slower. For WSE 2.0/3.0 implementations, migrating them to WCF will obviously provide the most significant performance gains of almost 4x." Earlier in the study, Gupta warned that the chief limiting factor in any SOA system is the implementation of that service, rather than the underlying technology.
Whether a REST implementation will be significantly more scalable or perform better than a similar SOAP implementation may yet be proven by similar tests. Perhaps we'll see some of those tests during Microsoft's PDC in Los Angeles at the end of the month.
Next: The real differences between SOAP and REST...