Unterschiede zwischen den SOAP-Versionen
SOAP Version 1.1 und SOAP Version 1.2 sind W3C-Standards (World Wide Web Consortium). Es können Web-Services implementiert werden, die nicht nur SOAP 1.1, sondern auch SOAP 1.2 unterstützen. Einige Änderungen in der Spezifikation SOAP 1.2 im Vergleich mit SOAP 1.1 sind wichtig, andere von untergeordneter Bedeutung.
Die Spezifikation SOAP 1.2 beinhaltet eine Reihe von Änderungen, die seit SOAP 1.1 vorgenommen wurden. Diese Informationen enthalten keine ausführliche Beschreibung aller neuen und geänderten Features von SOAP 1.1 und SOAP 1.2. Stattdessen werden einige der wichtigsten Unterschiede zwischen den aktuellen Versionen von SOAP beschrieben.
- SOAP 1.1 basiert auf XML 1.0. SOAP 1.2 basiert auf XML Information Set
(XML Infoset).
XML Information Set (Infoset) bietet eine Möglichkeit, das XML-Dokument mit dem XSD-Schema zu beschreiben. Das Infoset serialisiert das Dokument jedoch nicht unbedingt mit der Serialisierung nach XML 1.0, auf der SOAP 1.1 basiert. Diese neue Methode zum Beschreiben des XML-Dokuments hilft, weitere Serialisierungsmethoden zu erkennen, z. B. das binäre Protokollformat. Sie können das binäre Protokollformat verwenden, um die Nachricht in ein kompaktes Format zu komprimieren, wenn einige der ausführlichen Tagging-Informationen nicht erforderlich sind.
In SOAP 1.2 können Sie die Spezifikation einer Bindung zu einem zugrunde liegenden Protokoll verwenden, um die XML-Serialisierung zu bestimmen, die in den zugrunde liegenden Protokolldateneinheiten verwendet wird. Die in SOAP 1.2, Teil 2 definierte HTTP-Bindung verwendet XML 1.0 als Serialisierung des Infoset für SOAP-Nachrichten.
- SOAP 1.2 bietet die Möglichkeit, andere Transportprotokolle als HTTP offizielle zu definieren, solange der Anbieter dem in SOAP 1.2 definierten Bindungsframework entspricht. HTTP ist zwar allgegenwärtig, jedoch nicht so zuverlässig wie andere Transportprotokolle, z. B. TCP/IP und MQ.
- SOAP 1.2 ermöglicht eine genauere Definition des SOAP-Verarbeitungsmodells, was die Mehrdeutigkeiten, die zu Problemen bei der Interoperabilität führen können, wenn keine WS-I-Profile (Web Services-Interoperability) vorhanden sind, größtenteils aufhebt. Das Ziel besteht ist, die Wahrscheinlichkeit von Interoperabilitätsproblemen zwischen SOAP-1.2-Implementierungen verschiedener SOAP-Anbieter deutlich zu reduzieren.
- SOAP with Attachments API for Java™ (SAAJ) kann auch als eigenständiges, einfaches Verfahren zum Absetzen von SOAP-Anforderungen verwendet werden. Die SAAJ-Spezifikation hat eine wesentliche Veränderung erfahren. Es können jetzt Nachrichten gemäß SOAP 1.1 und zusätzliche, gemäß SOAP 1.2 formatierte Nachrichten dargestellt werden. SAAJ Version 1.3 führt beispielsweise eine neue Gruppe von Konstanten und Methoden ein, die eher für SOAP 1.2 in SOAP-Headerelementen geeignet sind, z. B. getRole(), getRelay(). Es gibt auch zusätzliche Methoden in den Factorys für SAAJ, mit denen entsprechende Nachrichten gemäß SOAP 1.1 oder SOAP 1.2 erstellt werden können.
- Die XML-Namespaces für die Rahmenanweisung (Envelope) und die Codierungsschemata wurden für SOAP 1.2 geändert. Diese Änderungen ermöglichen SOAP-Prozessoren eine einfache Unterscheidung zwischen Nachrichten gemäß SOAP 1.1 und Nachrichten gemäß 1.2. Außerdem bieten sie die Möglichkeit, Änderungen im SOAP-Schema vorzunehmen, ohne vorhandene Implementierungen zu beeinträchtigen.
- Mit Java Architecture for XML Web Services (JAX-WS) haben Sie die Möglichkeit, sowohl SOAP 1.1 als auch SOAP 1.2 zu unterstützen. Mit JAX-RPC wurde eine Voraussetzung für die Bearbeitung einer SOAP-Nachricht in der Laufzeit eingeführt. Daher wurde es erforderlich, diese Nachricht in ihrem entsprechenden SOAP-Kontext darzustellen. JAX-WS hat verschiedene zusätzliche Erweiterungen, die sich aus der Unterstützung von SAAJ 1.3 ergeben.
- Die Spezifikation Web Services Description Language (WSDL) Version 1.1 enthält keine Angaben zu SOAP 1.2. SOAP 1.2 wird in den Entwurfsversionen von WSDL 2.0 beschrieben. WSDL Version 1.1 definiert nur, wie Nutzdaten der SOAP Version 1.1 in einem WSDL-Dokument der Version 1.1 wiedergegeben werden. Informationen zur Darstellung SOAP-1.2-basierter Services finden Sie in einem weiteren W3C-Dokument, das festlegt, wie SOAP-1.2-Nutzdaten in einem WSDL-1.1-Dokument definiert werden. Lesen Sie die Informationen zu den Bindungserweiterungen für SOAP 1.2 in WSDL 1.1.
- SOAP 1.1 ist ein Einzeldokument. Die Spezifikation SOAP 1.2 ist in folgende Teile eingeteilt:
- Teil 0 ist eine nicht normative Einführung in SOAP.
- Teil 1 beschreibt die Struktur von SOAP-Nachrichten, das SOAP-Verarbeitungsmodell und ein Framework für die Bindung von SOAP an Basisprotokolle. Konforme SOAP-Implementierungen müssen Teil 1 vollständig implementieren.
- Teil 2 beschreibt optionale Zusätze zum SOAP-Kern, einschließlich eines Datenmodells und einer Codierung, einer RPC-Konvention und einer Bindung an HTTP. Konforme SOAP-Implementierungen können Teil 2 vollständig implementieren. Geschieht dies, müssen sie jedoch den relevanten Teilen der Spezifikation entsprechen.
SOAP Version 1.2 weist auch in der Syntax verschiedene Änderungen auf und hat im Vergleich zu SOAP 1.1 zusätzliche bzw. bereinigte Semantikelemente. Im Dokument "SOAP 1.2 Primer" werden diese SyntaxäÄnderungen aufgelistet und beschrieben.