The World Wide Web Consortium has released SOAP Version 1.2 as a W3C Recommendation. Final 'Recommendation' is "the equivalent of a Web standard, indicating that this W3C-developed specification is stable, contributes to Web interoperability, and has been reviewed by the W3C Membership, who favor its adoption by the industry. SOAP Version 1.2 is a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment such as the Web."
As an XML-based messaging framework for building distributed applications on the Web, SOAP Version 1.2 offers several benefits over SOAP/1.1. SOAP Version 1.2 is: "(1) Cleaner, providing clear processing and extensibility models, with increased interoperability; (2) More integrated, designed for better integration with XML standards and the architecture of the Web; (3) More versatile, specifying a binding framework that provides protocol independence; (4) Faster, based upon XML Infoset that supports performance optimizations." The W3C Recommendation is published in four parts, including: SOAP Version 1.2 Part 0: Primer, SOAP Version 1.2 Part 1: Messaging Framework, SOAP Version 1.2 Part 2: Adjuncts, and SOAP Version 1.2 Specification Assertions and Test Collection.
SOAP Version 1.2 Benefits
The W3C has published a document "From SOAP/1.1 to SOAP Version 1.2 in 9 Points" which highlights changes and benefits brought by SOAP Version 1.2. Excerpts (adpated):
Processing Model: "SOAP Version 1.2 provides a clear processing model. Many interoperability issues in SOAP/1.1 were caused by ambiguities in the processing model: scope of the mustUnderstand attribute in the processing of a message, processing done by intermediaries, etc. In the process of evaluating SOAP/1.1, the XML Protocol Working Group discovered and addressed around 400 issues in order to make the SOAP Version 1.2 and its processing model robust and unambiguous."
Binding Framework: "SOAP Version 1.2 gives developers protocol independence by providing a binding framework. Building on top of the XML Infoset, the SOAP Version 1.2 specification defines a binding framework explaining what is the responsibility of the mechanism carrying a SOAP message from one SOAP node to another. This makes SOAP processors underlying-protocol agnostics and SOAP Version 1.2 protocol independent: SOAP Version 1.2 messages could be carried by HTTP, SMTP, or any other protocol for which a binding conforms to the binding framework. [Thus,] SOAP Version 1.2 is truly protocol independent... SOAP 1.2 includes HTTP binding for better integration to the World Wide Web. Web services are Web applications. A consequence of belonging to the Web is that they need to conform to Web architectural principles. SOAP Version 1.2 defines a Web Method feature and the SOAP HTTP binding provides support for both HTTP GET and POST operations. This means that SOAP gets the benefits of the Web infrastructure such as HTTP caches. SOAP Version 1.2 uses existing, established Web technologies for improved performance."
Extensibility Model: "SOAP Version 1.2 delivers a very well-defined extensibility model. The power of SOAP Version 1.2 comes from its extensibility model. The SOAP/1.1 model has been reworked and formalized as features and properties that can be expressed either in the SOAP envelope or via the underlying protocol binding, making SOAP Version 1.2 very flexible and making it take advantage of any feature that the underlying protocol would be providing. [Thus] SOAP Version 1.2 has better, more formalized extensibility."
Based on XML Information Set: "SOAP Version 1.2 is based on the XML Information Set. This is a significant change. A SOAP Version 1.2 message is specified as an Infoset which is carried from one SOAP node to another. While SOAP/1.1 was based on XML 1.0 serialization, SOAP 1.2 places no restriction about how the Infoset is transported. It could be using HTTP and an XML 1.0 serialization, or a completely different means. SOAP Version 1.2 processors are agnostic to this. This allows for compression, optimization, and other performance gains."
SOAP Version 1.2 Recommendation Documents
SOAP Version 1.2 Part 0: Primer. Edited by Nilo Mitra (Ericsson). W3C Recommendation 24-June-2003. Version URL: http://www.w3.org/TR/2003/REC-soap12-part0-20030624/. Latest version URL: http://www.w3.org/TR/soap12-part0/. Previous version URL: http://www.w3.org/TR/2003/PR-soap12-part0-20030507/. "SOAP Version 1.2 Part 0: Primer is a non-normative document intended to provide an easily understandable tutorial on the features of the SOAP Version 1.2 specifications. In particular, it describes the features through various usage scenarios, and is intended to complement the normative text contained in Part 1 and Part 2 of the SOAP 1.2 specifications."
SOAP Version 1.2 Part 1: Messaging Framework. Edited by Martin Gudgin (Microsoft) Marc Hadley (Sun Microsystems), Noah Mendelsohn (IBM), Jean-Jacques Moreau (Canon), and Henrik Frystyk Nielsen (Microsoft). W3C Recommendation 24-June-2003. Version URL: http://www.w3.org/TR/2003/REC-soap12-part1-20030624/. Latest version URL: http://www.w3.org/TR/soap12-part1/. Previous version URL: http://www.w3.org/TR/2003/PR-soap12-part1-20030507/. "SOAP Version 1.2 (SOAP) is a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment. It uses XML technologies to define an extensible messaging framework providing a message construct that can be exchanged over a variety of underlying protocols. The framework has been designed to be independent of any particular programming model and other implementation specific semantics. Two major design goals for SOAP are simplicity and extensibility. SOAP attempts to meet these goals by omitting, from the messaging framework, features that are often found in distributed systems. Such features include but are not limited to 'reliability', 'security', 'correlation', 'routing', and 'Message Exchange Patterns' (MEPs). While it is anticipated that many features will be defined, this specification provides specifics only for two MEPs. Other features are left to be defined as extensions by other specifications..."
SOAP Version 1.2 Part 2: Adjuncts. Edited by Martin Gudgin (Microsoft), Marc Hadley (Sun Microsystems), Noah Mendelsohn (IBM), Jean-Jacques Moreau (Canon), and Henrik Frystyk Nielsen (Microsoft). W3C Recommendation 24-June-2003. Version URL: http://www.w3.org/TR/2003/REC-soap12-part2-20030624/. Latest version URL: http://www.w3.org/TR/soap12-part2/. Previous version URL: http://www.w3.org/TR/2003/PR-soap12-part2-20030507/. "SOAP Version 1.2 Part 2: Adjuncts defines a set of adjuncts that may be used with SOAP Version 1.2 Part 1: Messaging Framework. This specification depends on SOAP Version 1.2 Part 1: Messaging Framework." (1) The SOAP Data Model represents application-defined data structures and values as a directed, edge-labeled graph of nodes; (2) The SOAP Encoding defines a set of rules for encoding instances of data that conform to the SOAP Data Model for inclusion in SOAP messages; (3) The SOAP RPC Representation defines a convention for how to use the SOAP Data Model for representing RPC calls and responses; (4) A Section 5 'Convention for Describing Features and Bindings' describes features and bindings, defining a convention for describing features and binding in terms of properties and property values; (5) A Section 6 'SOAP-Supplied Message Exchange Patterns and Features' is a section on SOAP-Supplied Message Exchange Patterns and Features which defines a request response message exchange pattern and a message exchange pattern supporting non-SOAP requests for SOAP responses; (6) SOAP Web Method Feature defines a feature for control of methods used on the World Wide Web; (7) SOAP HTTP Binding defines a binding of SOAP to HTTP (RFC 2616) following the rules of the SOAP Protocol Binding Framework.."
SOAP Version 1.2 Specification Assertions and Test Collection. Edited by Hugo Haas (W3C), Oisin Hurley (IONA Technologies), Anish Karmarkar (Oracle Corp.), Jeff Mischkinsky (Oracle Corp.), Mark Jones (AT&T), Lynne Thompson (Unisys), and Richard Martin (Active Data Exchange). W3C Recommendation 24-June-2003. Version URL: http://www.w3.org/TR/2003/REC-soap12-testcollection-20030624/. Latest version URL: http://www.w3.org/TR/soap12-testcollection. Previous version URL: http://www.w3.org/TR/2003/PR-soap12-testcollection-20030507/. "This document draws on assertions found in the SOAP Version 1.2 specifications and provides a set of tests in order to show whether the assertions are implemented in a SOAP processor. A SOAP 1.2 implementation that passes all of the tests specified in this document may claim to conform to the SOAP 1.2 Test Suite, 2003 06 24. It is incorrect to claim to be compliant with the SOAP Version 1.2 specifications merely by passing successfully all the tests provided in this test suite. It is also incorrect to claim that an implementation is non compliant with the SOAP Version 1.2 specifications based on its failure to pass one or more of the tests in this test suite..."
From the SOAP Version 1.2 FAQ Document
What's New? SOAP Version 1.2 is based on a layered and extensible model:
- Over 400 issues raised both in the SOAP 1.1 and early SOAP 1.2 specifications have been resolved
- SOAP version 1.2 supports Web standards such as XML Schema and XML Infoset
- The 'transport' layer makes it easy to switch between protocols like HTTP, BEEP and others to fit your application needs.
- Extensions and the processing of those extensions has been improved and clarified, to ensure more extensibility and interoperability
- Error reporting has been improved
Internationalization: SOAP Version 1.2 has provisions for internationalization, including the ability to provide multiple error messages in different languages, encodings, character sets. Applications themselves still have to be internationalized, but that is a separate matter. SOAP Version 1.2 itself puts no restriction to a particular language.
Interoperability: SOAP Version 1.2 provides more -- and proven -- interoperability, support for Web standards, and an easier way to extend and update your applications. It also allows you to define applications that can scale better through a more effective use of Web infrastructure - namely with the option of using the HTTP binding. For a more complete reply, see 'From SOAP/1.1 to SOAP Version 1.2 in 9 Points'. In order to be sure an implementation is interoperable, you should see the SOAP Version 1.2 Specification Assertions and Test Collection, and contact the implementers listed in the implementation report to set up tests. [Adapted from "SOAP Version 1.2: Frequently Asked Questions."]
From the W3C Announcement
The XML Protocol Working Group has the goal of developing technologies which enable two or more peers to communicate in a distributed environment, using XML as the encapsulation language. Their solution allows a layered architecture on top of a simple and extensible messaging format, which provides robustness, simplicity, reusability and interoperability.
An introduction for users such as application designers, the Primer is an easily understandable tutorial that describes the features of SOAP Version 1.2 through examples and links to the specification. The SOAP Version 1.2 specification provides a framework for XML-based messaging systems in two parts, the Messaging Framework and Adjuncts.
SOAP Version 1.2 Messaging Framework provides a processing model (the rules for processing a SOAP message), an extensibility framework (enabling developers to use extensions inside and outside the SOAP envelope), the message construct (the rules for constructing SOAP messages), and the protocol binding framework (the rules for specifying the exchange of SOAP messages over underlying protocols such as HTTP).
SOAP Version 1.2 Adjuncts completes the specification. It includes rules for representing remote procedure calls (RPCs), for encoding SOAP messages, for describing SOAP features and SOAP bindings. It also provides a standard binding of SOAP to HTTP (Hypertext Transfer Protocol), allowing SOAP messages to be exchanged using the mechanisms of the World Wide Web.
Intended to help implementers write SOAP processors, the Specification Assertions and Test Collection provide a set of tests drawn from the assertions found in the Messaging Framework and Adjuncts. These tests show whether the assertions are implemented in a SOAP processor, and are designed to foster interoperability between different SOAP Version 1.2 implementations.
In addition to fulfilling requirements spelled out in the Working Group charter, SOAP Version 1.2 integrates core XML technologies. SOAP Version 1.2 is designed to work seamlessly with W3C XML schemas, maximizing SOAP's utility with a broad range of XML tools, and paving the way for future work on the Web Services Description Language (WSDL). It also makes use of Namespaces in XML as a flexible and lightweight mechanism for handling XML language mixing.
SOAP Version 1.2 describes a refined processing model, thus removing ambiguities found in SOAP 1.1. SOAP Version 1.2 includes improved error messages that will help developers to write better applications.
After its Candidate Recommendation period, the W3C XML Protocol Working Group tracked seven SOAP Version 1.2 implementations from W3C Member organizations and independent developers to ensure the viability and interoperability of implementations based on the specification. The Working Group previously identified and resolved over 400 technical and editorial issues raised in public review of SOAP 1.1 and the resulting SOAP Version 1.2.
Current participants in the Working Group include industry and technology leaders: AT&T; BEA Systems; Canon; DaimlerChrysler Research and Technology; Ericsson; Fujitsu Limited; IBM; IONA Technologies; Macromedia; Matsushita Electric Industrial Co., Ltd.; Microsoft Corporation; Oracle Corporation; SAP AG; SeeBeyond; Software AG; Sun Microsystems; and Systinet.
- Announcement 2003-06-24: "World Wide Web Consortium Issues SOAP Version 1.2 as a W3C Recommendation. W3C XML Protocol Working Group Delivers Essential Component for Web Services."
- SOAP Version 1.2 - Frequently Asked Questions
- "From SOAP/1.1 to SOAP Version 1.2 in 9 Points." Highlights of changes and benefits brought by SOAP Version 1.2.
- SOAP 1.2 Implementation Summary
- Testimonials for W3C's SOAP 1.2 Recommendation. From BEA Systems, IBM, Microsoft Corporation, Oracle Corporation, SeeBeyond, SunMicrosystems, Systinet Corporation, webMethods Inc., and WS-I.
- SOAP Version 1.2 Recommendation documents:
- W3C Web Services Activity
- W3C XML Protocol Working Group
- XML Protocol Working Group Charter
- Mail Archives for W3C list 'xmlp-comments'
- XML Protocol Working Group IPR Statements
- See: "W3C Publishes SOAP Version 1.2 as a Proposed Recommendation." News item 2003-05-07.
- "Simple Object Access Protocol (SOAP)" - Main reference page.