WS-I Basic Profile
Web Services-Interoperability (WS-I) Basic Profile es un conjunto de especificaciones de servicios web no propietarios que promocionan la interoperatividad. WebSphere Application Server es compatible con WS-I Basic Profile Versión 1.1 y WS-I Basic Security Profile Versión 1.0.
WS-I Basic Profile está regido por un consorcio de corporaciones líderes del sector, incluida IBM®, bajo la dirección de la WS-I Organization. El perfil consta de un conjunto de principios que intentan fomentar estándares abiertos para la tecnología de servicios web. Todas las organizaciones que estén interesadas en promocionar la interoperabilidad entre servicios web están invitadas a formar parte de Web Services Interoperability Organization.
Varios componentes tecnológicos se utilizan en la composición e implementación de los servicios web, incluidas mensajería, descripción, descubrimiento y seguridad. Cada u no de estos componentes está soportado por especificaciones y estándares, entre los que se cuentan SOAP 1.1, Extensible Markup Language (XML) 1.0, HTTP 1.1, Web Services Description Language (WSDL) 1.1 y Universal Description, Discovery and Integration (UDDI). WS-I Basic Profile especifica cómo se utilizan conjuntamente estos componentes tecnológicos para conseguir el objetivo de la interoperabilidad y determina un uso específico de cada una de las tecnologías cuando sea pertinente. Encontrará más información acerca de WS-I Basic Profile en el sitio web de WS-I Organization.
A medida que se actualizan los componentes tecnológicos, estos componentes también se utilizan en la composición e implementación de los servicios web. Un ejemplo es que ahora están soportados SOAP 1.1 y SOAP 1.2.
- WS-I Basic Profile V1.2 se basa en WS-I Basic Profile V1.0 y WS-I Basic Profile V1.1 y añade soporte para WS-Addressing (WS-A) y SOAP Message Transmission Optimization Mechanism (MTOM). La especificación WS-Addressing habilita el patrón de intercambio de mensajería asíncrona, de modo que se puede desconectar la solicitud de servicio de la respuesta de servicio. La cabecera SOAP de la solicitud del remitente contiene el valor wsa:ReplyTo que define la referencia de punto final a la que se envía la respuesta del proveedor. Desconectar la solicitud de la respuesta permite interacciones de servicios web de larga duración. Si utiliza el soporte del modelo de programación asíncrono de JAX-WS de la versión 2.1 junto con WS-Addressing, podrá aprovechar la capacidad de crear invocaciones de servicios web en las que el cliente pueda continuar el trabajo de proceso sin esperar una respuesta. Esto proporciona un modelo más dinámico y eficaz para invocar servicios web. Mediante MTOM, puede enviar y recibir datos binarios de una manera óptima en un mensaje SOAP.
- WS-I Basic Profile V2.0 se basa en Basic Profile V1.2, al que añade soporte para SOAP 1.2.
- WS-I Reliable Secure Profile 1.0 se basa en WS-I Basic Profile V1.2, WS-I Basic Profile V2.0, WS-I Basic Security Profile V1.0 y WS-I Basic Security Profile V1.1, y añade soporte para WS-Reliable Messaging 1.1, WS-Make Connection 1.0 y WS-Secure Conversation 1.3. WS-Reliable Messaging 1.1 es un protocolo basado en sesiones que proporciona fiabilidad a nivel de mensajes para las interacciones de servicios web. WS-Make Connection 1.0 ha sido desarrollado por el WS-Reliable Messaging para tratar los casos en los que un punto final de servicios web se encuentra detrás de un cortafuegos o en los que el punto final no tiene una referencia de punto final visible. Si un punto final de servicios web pierde la conectividad durante una sesión fiable, WS-Make Connection proporciona un método eficaz para restablecer la sesión fiable. Además, WS-Secure Conversation V1.3 es un protocolo de seguridad basado en sesiones que utiliza un algoritmo de cifrado eficaz basado en claves simétricas para la seguridad a nivel de mensajes. WS-I Reliable Secure Profile V1.0 proporciona interacciones fiables y seguras de servicios web orientados a sesiones.
Cada uno de los componentes tecnológicos tiene requisitos acerca de los que puede informarse con detalle en el sitio web de WS-I Organization. Por ejemplo, se necesita el soporte de la codificación UTF-16 (Universal Transformation Format) en WS-I Basic Profile. UTF-16 es un tipo de esquema de codificación Unicode que utiliza valores de 16-bit para almacenar caracteres UCS (Universal Character Set). UTF-8 es la codificación más común que se utiliza en Internet; la codificación UTF-16 suele utilizarse para aplicaciones Java™ y Windows; y UTF-32 suele utilizarse en distintos sistemas Linux y UNIX. A diferencia de UTF-8, UTF-16 tiene problemas con big-endian y little-endian, y suelen estar relacionados con el uso de BOM (Byte Order Mark) para indicar el endian. BOM es obligatorio para la codificación UTF-16 y puede utilizarse en UTF-8.
El servidor de aplicaciones sólo soporta el cifrado UTF-8 y UTF-16 de los mensajes SOAP.
Consulte la información sobre cómo cambiar la codificación de mensajes SOAP para soportar el perfil básico de WSI para aprender a modificar la codificación de UTF-8 a UTF-16.
Bytes | Formato de codificación |
---|---|
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>
En el código de ejemplo, 0xFF0xFE representa los códigos de byte, mientras que la declaración <?xml> es la representación textual.
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>
Para obtener una lista completa de los estándares y las especificaciones a los que se da soporte, consulte las especificaciones y la documentación de la API de los servicios Web.