Forthcoming software technology upgrades should give developers more choice in how they implement web services, says consultant Dennis Sosnoski.
Of the two underlying technologies used to build web services, SOAP (Simple Object Access Protocol) is by far the better known, having been “pushed by the corporate heavies like Microsoft and IBM” for several years. It requires relatively complex frameworks which adapt it to particular languages and platforms.
The alternative, REST (Representational State Transfer) has arisen as a grass-roots movement among developers worried by the complexity of SOAP.
REST does not need the complex frameworks required for SOAP. “It’s simple enough that no framework is needed,” Sosnoski says. XML is used flexibly for transmission of data. But REST does not have the more complex system’s ability to use multiple protocols. REST uses only HTTP and builds the parameters of a web services query into the URI. Moreover it is capable of only synchronous communications, whereas SOAP can pass data asynchronously.
While SOAP has its shortcomings, and some positive enhancements are being delayed by “standards squabbles”, Sosnoski says it remains the most widely used protocol whereby data can be requested and returned from web services.
The current Web Services Description Language (WSDL version 1.1), which provides metadata describing the web service, is more suited to working with SOAP, but the with coming WSDL 2.0 improves handling of REST, bettering the latter’s prospects of emerging as a major alternative force.
However, some major framework improvements are about to be released. In particular, Microsoft is ready with WCF (Windows Communication Foundation), originally part of the Longhorn (Windows Vista) project, but separated out as a distinct project. This adds much needed security and reliability controls to the SOAP environment. To a large extent, REST can rely on the in-built security capabilities of web servers.
Sosnoski says both technologies have their positive aspects. “SOAP has enterprise-level features, but REST has simplicity and ease of programming.” An analogy can be drawn with Enterprise Java Beans in the Java world, he says.
“Use SOAP if enterprise-level security, transactions and alternate transports are needed. Use REST if these are not important concerns,”says Sosnoski.
There are limitations with both when it comes to the complexity of XML, and it is wise to keep schemas simple.
Sosnoski has emigrated to New Zealand, having been based in Seattle, where he has worked with Microsoft. Having earlier explored New Zealand, he says it’s a nice place to live, but the direction US society and politics is taking was another motivating factor in his decision to move here, says Sosnoski.