The new Simple Object Access Protocol (SOAP) version 1.2 specifications may play a pivotal role in the development of Web services. The World Wide Web Consortium (W3C) XML Protocol Working Group has currently designated SOAP 1.2 as a Proposed Recommendation. In short, this is the final stage of the submission process before the specifications are adopted as an official Web standard. The final review of the submission by the W3C membership is scheduled to end on July 7, 2003. Let's discuss SOAP's features and how SOAP fits into the bigger Web services picture.
First, there was SOAP 1.1
The technological foundation that makes up Web services includes SOAP, the Web Service Description Language (WSDL), Universal Description, Discovery, and Integration (UDDI), and XML. Specifically, SOAP provides a heterogeneous mechanism to allow the invocation and communication between Web services.
This newest version of SOAP—1.2—clarifies, updates, and corrects some of the shortcomings of SOAP version 1.1. The previous version was described in a single document published on May 8, 2000. But this version contains a number of interoperability issues and ambiguities that resulted in differences of interpretation. For example, Java ONE and .NET Web services are currently not compatible. SOAP 1.1 is based on XML 1.0 and can only use HTTP POST headers to transmit SOAP messages. As a result, it isn't really suitable for wide-scale applications. The test group for SOAP 1.1 consisted of five principal companies: IBM, Microsoft, Lotus, DevelopMentor, and UserLand.
In contrast, SOAP 1.2 provides a tighter, more robust set of specifications based on an abstract model for binding protocols and XML serialization schemes. SOAP 1.2 also has been tested by a wide variety of participants, including IBM, Microsoft, Sun Microsystems, BEA systems, and the Apache Software Foundation. It has undergone many reviews and drafts and has seen a tremendous amount of public feedback. The W3C tested the interoperability of the specifications by successfully implementing seven projects.
SOAP 1.2 is now extensively documented in three parts: a Primer, Complete Messaging Framework, and Model And Optional Add-ins. SOAP 1.2 is now defined as an XML infoset, not XML syntax.
SOAP 1.2 documentation
To review the documentation for the three parts of SOAP 1.2, check out these links:
- SOAP Version 1.2 Part 0: Primer
- SOAP Version 1.2 Part 1: Messaging Framework
- SOAP Version 1.2 Part 2: Adjuncts
One of the major enhancements to the SOAP specification is the addition of the HTTP GET method as opposed to HTTP POST. This change, originally proposed by the Technical Architecture Group (TAG), aligns SOAP with standard Web resources retrieval systems. Plus, each SOAP resource now has its own URI. SOAP 1.2 now incorporates the W3C standard method of namespacing, which allows SOAP processors to distinguish between version 1.1 and version 1.2 SOAP messages. The new version of SOAP also incorporates more than 150 bug fixes and more descriptive and elaborate fault handling.
After two and a half years of development, more than 400 issues have been resolved in shaping the current SOAP specifications. One major problem that has yet to be resolved is security. The W3C has intentionally omitted protocol-specific security features in the specs to speed up the standardization process.
The Organization for the Advancement of Structured Information Standards (OASIS) established a technical committee to come up with recommendations for implementing concrete security for Web services. (SOAP security would most likely make up part of those recommendations.) Current SOAP implementers may use standard Web security techniques, such as point-to-point encryption and authentication. Since security is a basic IT requirement, SOAP's current lack of built-in security may present a hurdle for mass acceptance and implementation. Other issues could arise if the W3C decides to make additions or changes to the HTTP 1.1 specifications because SOAP would have difficulty binding with them.
Overall, SOAP 1.2 is a very likely candidate for endorsement by the W3C. The SOAP protocol has major corporate support from companies such as IBM and Microsoft. There is a serious commitment of financial resources and infrastructure to make Web services work on a large scale. Also, developers have embraced SOAP 1.1, and adoption has been widespread. The new SOAP 1.2 enhancements, especially the increased compatibility with HTTP, will make it easier to use and more appealing to users and developers. The SOAP 1.2 specifications will certainly help promote and develop Web services in the long term.