WS-I Basic Profile
Das Web Services-Interoperability (WS-I) Basic Profile ist eine Gruppe nicht gesetzlich geschützter Web-Service-Spezifikationen zur Förderung der Interoperabilität. WebSphere Application Server unterstützt das WS-I Basic Profile 1.1.
Federführend für das WS-I Basic Profile ist ein Konsortium branchenführender Unternehmen, zu denen auch IBM® gehört, unter Leitung der WS-I Organization. Das Profil umfasst eine Reihe von Prinzipien für die Etablierung offener Standards für die Web-Service-Technologie. Alle Organisationen, die ein Interesse an einer verbesserten Interoperabilität von Web-Services haben, sollten sich der Web Services Interoperability Organization anschließen.
Für den Aufbau und die Implementierung von Web-Services werden verschiedene IT-Komponenten verwendet, z. B. Komponenten für Nachrichtenaustausch, Beschreibung, Erkennung und Sicherheit. Jede dieser Komponenten wird von Spezifikationen und Normen unterstützt, zu denen unter anderem SOAP 1.1, XML 1.0 (Extensible Markup Language), HTTP 1.1, WSDL 1.1 (Web Services Description Language) und UDDI (Universal Description, Discovery and Integration) gehören. Das WS-I Basic Profile gibt an, wie diese IT-Komponenten zusammenwirken, um Interoperabilität zu erreichen, und definiert für die Verwendung der Technologien ggf. bestimmte Bedingungen. Weitere Informationen zum WS-I Basic Profile finden Sie auf der Website der WS-I Organization.
Da Technologiekomponenten aktualisiert werden, werden diese Komponenten auch bei der Komposition und Implementierung von Web-Services verwendet. Ein Beispiel hierfür ist, dass jetzt sowohl SOAP 1.1 als auch SOAP 1.2 unterstützt werden.
- WS-I Basic Profile V1.2 baut auf WS-I Basic Profile V1.0 und WS-I Basic Profile V1.1 auf und fügt die Unterstützung für WS-Addressing (WS-A) und für SOAP Message Transmission Optimization Mechanism (MTOM) hinzu. Die Spezifikation WS-Addressing ermöglicht die Verwendung des asynchronen Nachrichtenaustauschmusters und damit die Entkopplung der Serviceanforderung von der Serviceantwort. Der SOAP-Header in der Anforderung des Senders enthält den Wert wsa:ReplyTo, der die Endpunktreferenz definiert, an die die Antwort des Providers gesendet wird. Durch Entkopplung von Anforderung und Antwort werden Web-Service-Interaktionen mit langer Laufzeit ermöglicht. Wird die Unterstützung des asynchronen Programmiermodells in JAX-WS Version 2.1 zusammen mit WS-Addressing genutzt, können jetzt Web-Service-Aufrufe erstellt werden, in denen der Client seine Arbeit fortsetzen kann, ohne auf die Rückgabe einer Antwort zu warten. Dies bietet ein dynamischeres und effizienteres Modell für den Aufruf von Web-Services. Mit MTOM können binäre Daten in einer SOAP-Nachricht optimal gesendet und empfangen werden.
- WS-I Basic Profile V2.0 baut auf Basic Profile V1.2 auf und fügt die Unterstützung für SOAP 1.2 hinzu.
- WS-I Reliable Secure Profile 1.0 baut auf WS-I Basic Profile V1.2, WS-I Basic Profile V2.0, WS-I Basic Security Profile V1.0 und WS-I Basic Security Profile V1.1 auf und fügt die Unterstützung für WS-Reliable Messaging 1.1, WS-Make Connection 1.0 und WS-Secure Conversation 1.3 hinzu. WS-Reliable Messaging 1.1 ist ein sitzungsbasiertes Protokoll, das für Web-Service-Interaktionen die Zuverlässigkeit auf Nachrichtenebene sicherstellt. WS-Make Connection 1.0 wurde von der Arbeitsgruppe für WS-Reliable Messaging für Szenarien entwickelt, in denen sich ein Web-Service-Endpunkt hinter einer Firewall befindet oder in denen der Endpunkt keine sichtbare Endpunktreferenz hat. Wenn ein Web-Service-Endpunkt die Verbindung während einer zuverlässigen Sitzung verliert, ist WS-Make Connection eine effektive Methode, um die zuverlässige Sitzung wiederherstzustellen. Außerdem ist WS-Secure Conversation V1.3 ein sitzungsbasiertes Sicherheitsprotokoll, das für die Sicherheit auf Nachrichtenebene einen effizienten Verschlüsselungsalgorithmus auf der Basis eine symmetrischen Schlüssels verwendet. WS-I Reliable Secure Profile V1.0 bietet sichere und zuverlässige sitzungsorientierte Web-Service-Interaktionen.
Für jede der IT-Komponenten gelten Voraussetzungen, über die Sie sich auf der Website der WS-I Organization informieren können. Das WS-I Basic Profile 1.0 fordert beispielsweise die Unterstützung für die Codierung UTF-16 (Universal Transformation Format). UTF-16 ist eine Art Unicode-Codierungsschema, das Zeichen des Universalzeichensatzes (UCS, Universal Character Set) in 16-Bit-Werten speichert. Im Internet ist die Codierung UTF-8 am weitesten verbreitet. Die Codierung UTF-16 wird in der Regel für Java™- und Windows-Produktanwendungen verwendet und die Codierung UTF-32 für verschiedene Linux- und UNIX-Systeme. Im Gegensatz zu UTF-8 wird in UTF-16 zwischen Big-Endian und Little-Endian unterschieden. Zur Angabe des Endian-Formats wird oft BOM (Byte Order Mark) verwendet. BOM ist für die Codierung UTF-16 verbindlich und für UTF-8 optional.
Der Anwendungsserver unterstützt nur die UTF-8- und UTF-16-Codierung von SOAP-Nachrichten.
Wie Sie Ihre Codierung von UTF-8 in UTF-16 ändern, können Sie in den Informationen zum Ändern der SOAP-Nachrichtencodierung für die Unterstützung von WSI-Basic Profile nachlesen.
Bytes | Codierung aus |
---|---|
EF BB BF | UTF-8 |
FF FE | UTF-16, Little-Endian |
FE FF | UTF-16, Big-Endian |
00 00 FE FF | UTF-32, Big-Endian |
FF FE 00 00 | UTF-32, Little-Endian |
POST http://www.whitemesa.net/soap12/add-test-rpc HTTP/1.1
Content-Type: application/soap+xml; charset=utf-16; action=""
SOAPAction:
Host: localhost: 8080
Content-Length: 562
OxFF0xFE<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2002/12/soap-envelope"
xmlns:soapenc="http://www.w3.org/2002/12/soap-encoding
xmlns:tns="http://whitemesa.net/wsdl/soap12-test"
xmlns:types="http://whitemesa.net/wsdl/soap12-test/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<q1:echoString xmlns:q1="http://soapinterop.org/">
<inputString soap:encodingStyle="http://example.org/unknownEncoding"
xsi:type="xsd:string">
Hello SOAP 1.2
</inputString>
</q1:echoString>
</soap:Body>
</soap:Envelope>
Im Beispielcode repräsentiert 0xFF0xFE die Bytecodes. Die Deklaration <?xml> ist dagegen eine Textdarstellung.
OxFF0xFE<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2002/12/soap-envelope"
xmlns:soapenc="http://www.w3.org/2002/12/soap-encoding
xmlns:tns="http://whitemesa.net/wsdl/soap12-test"
xmlns:types="http://whitemesa.net/wsdl/soap12-test/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<q1:echoString xmlns:q1="http://soapinterop.org/">
<inputString xsi:type="xsd:string">
Hello SOAP 1.2
</inputString>
</q1:echoString>
</soap:Body>
</soap:Envelope>
Eine vollständige Liste der unterstützten Standards und Spezifikationen finden Sie in der Dokumentation zu den Web-Service-Spezifikationen und den Anwendungsprogrammierschnittstellen.