SOAP

SOAP (anteriormente conocido como Simple Object Access Protocol) es un protocolo ligero para el intercambio de información en entornos descentralizados y distribuidos. Los mensajes SOAP son las transmisiones de información de remitentes a destinatarios. Los mensajes SOAP se pueden combinar para crear patrones de petición/respuesta.

SOAP es independiente del transporte pero habitualmente se lleva a través de HTTP para ejecutarse con la infraestructura de Internet existente. SOAP habilita el enlace y la utilización de servicios Web descubiertos definiendo una vía de acceso de mensajes para direccionar mensajes. Se utiliza SOAP para consultar UDDI para servicios Web. El entorno de trabajo admite SOAP 1.1.

SOAP es un protocolo basado en XML que define tres partes en todos los mensajes:

Estilos de enlace

SOAP admite dos estilos de comunicación distintos:

Llamada a procedimiento remoto (RPC): invocación de una operación que devuelve un resultado. Normalmente se utiliza con la codificación SOAP, que no es compatible con WS-I.

Estilo de documento:  Conocido también como estilo orientado a documento u orientado a mensaje. Este estilo proporciona una capa más baja de abstracción y necesita más trabajo de programación.

Estilos de codificación

En entornos informáticos distribuidos, los estilos de codificación definen cómo los valores de datos definidos en la aplicación pueden convertirse a y de un formato de protocolo determinado. El proceso de conversión se llama serialización y deserialización.

La especificación SOAP define el estilo de codificación SOAP:

Codificación SOAP:  El estilo de codificación SOAP permite serializar/deserializar valores de tipos de datos del modelo de datos SOAP. Este estilo de codificación está definido en el estándar SOAP 1.1 y no está en conformidad con WS-I.

WSDL define el estilo de codificación XML Literal:

XML Literal: literal se refiere al hecho de que debe leerse el documento tal cual está, sin codificar. El documento se serializa como XMI, lo que significa que el mensaje XML cumple con el esquema de WSDL. Cuando se utiliza la codificación Literal, cada parte del mensaje hace referencia a una definición de esquema en concreto. La codificación Literal es compatible con WS-I.

Modelo de datos

El objetivo del modelo de datos SOAP es proporcionar una abstracción independiente del lenguaje para tipos de datos utilizados por tipos de lenguajes de programación comunes. Consta de:

Todos los elementos e identificadores que componen el modelo de datos SOAP se definen en el URI del espacio de nombres. El estándar SOAP define las normas para construir los tipos de datos. Un esquema XML específico del proyecto debe definir los tipos de datos reales. Los elementos de la especificación SOAP se definen en http://schemas.xmlsoap.org/soap/envelope/ y http://schemas.xmlsoap.org/soap/encoding/

Implementaciones de SOAP

Hoy en día hay diferentes implementaciones del protocolo SOAP disponibles. Por ejemplo, Apache Foundation proporciona Apache SOAP que surgió de un proyecto de IBM llamado SOAP4J, así como los entornos de ejecución Apache Axis e IBM WebSphere.

Correlaciones

Una correlación define una asociación entre un nombre de elemento XML calificado, un nombre de clase Java y un estilo de codificación. La correlación especifica cómo, bajo la codificación dada, se convierte un elemento XML entrante con un nombre totalmente calificado en una clase Java y viceversa.

Si desea más información acerca de Apache SOAP, consulte xml.apache.org/soap. Si desea más información acerca de SOAP, consulte www.w3.org/TR/SOAP.