You are probably familiar with SOAP/1.1. You have heard of SOAP Version 1.2 but don't know exactly what's the relationship between the two. This document outlines the changes and benefits brought by SOAP Version 1.2.
SOAP Version 1.2: cleaner, better Web integration, more versatile, faster.
The XML Protocol Working Group was chartered in September 2000 to design an XML-based protocol. As part of their work, the Working Group evaluated the technical solutions proposed by SOAP/1.1 to the requirements that they identified. The result of this 2.5 year-long work is SOAP version 1.2, an extensible and protocol-independent XML-based messaging framework.
SOAP Version 1.2 can do everything that SOAP/1.1 does, and more.
The rest of the document outlines the improvements that SOAP Version 1.2 brings to those developing Web services applications.
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.
Both the SOAP Version 1.2 specification and SOAP Version 1.2 implementations were tested with a test collection resulting in a comprehensive implementation report.
SOAP Version 1.2 brings better interoperability thanks to a clarified processing model, comprehensive review, and testing.
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.
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.
SOAP Version 1.2 is truly protocol independent.
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.
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.
SOAP Version 1.2 has better, more formalized extensibility.
SOAP Version 1.2 and its SOAP encoding incorporate the work done at W3C on the XML Information Set, XML Base, XML Schema 1.0. It also takes into account internationalization issues that are inherent to the World Wide Web.
SOAP Version 1.2 has better support of Web standards.
SOAP Version 1.2 becomes the best-suited XML-based messaging framework for building distributed applications on the Web.
WSDL 1.2 (Web Services Description Language), which is coming up early 2004, will express all the powerful extensibility of SOAP Version 1.2. However, there is no need to wait for WSDL 1.2 to start using SOAP Version 1.2.
With the existing WSDL 1.1 binding from the SOAPBuilders development community, services using SOAP Version 1.2 can already be described and SOAP Version 1.2 can be used in place of SOAP/1.1.