SOAP

O SOAP (antes conhecido como Protocolo Simples para Acesso a Objectos) é um protocolo ligeiro para a permuta de informações num ambiente descentralizado e distribuído. Uma mensagem SOAP é uma transmissão de informação de um emissor para um receptor. As mensagens SOAP podem ser combinadas de modo a executar padrões pedido/resposta.

O SOAP é independente de transporte, mas é geralmente transportado pelo HTTP de modo a ser executado com a infra-estrutura existente da Internet. O SOAP permite a associação e a utilização de serviços Web identificados, ao definir um caminho de mensagem para mensagens de encaminhamento. O SOAP é utilizado para consultar a UDDI de serviços Web. A área de trabalho suporta o SOAP 1.1.

O SOAP é um protocolo baseado em XML que define três partes de cada mensagem:

Estilos de associação

O SOAP suporta dois estilos de comunicação diferentes:

Chamada de procedimento remota (RPC):  Invocação de uma operação que apresenta um resultado. É tipicamente utilizado com a codificação SOAP, que não é compatível com a WS-I.

Estilo de Documento:  Também conhecido como estilo orientado pelo documento ou pela mensagem.  Este estilo fornece um nível mais baixo de abstracção e requer mais trabalho de programação.

Estilos de codificação

Em ambientes de computação distribuída, os estilos de codificação definem o modo como os valores de dados definidos na aplicação podem ser traduzidos para e a partir de um formato de protocolo. O processo de tradução é conhecido como serialização e desserialização.

A especificação SOAP define o estilo de codificação do SOAP:

Codificação SOAP:  O estilo de codificação SOAP permite seriar/anular a seriação de valores de tipos de dados do modelo de dados SOAP. Este estilo de codificação é definido no SOAP 1.1 padrão e não é compatível com a WS-I.

O WSDL define o estilo de codificação do XML Literal:

XML Literal: Literal refere-se ao facto de o documento dever ser de leitura tal como está ou descodificado. O documento é serializado como XMI, o que significa que o XML da mensagem está em conformidade com o Esquema no WSDL. Ao utilizar uma codificação Literal, cada parte da mensagem referencia uma definição de esquema concreta. A codificação Literal está em conformidade com a WS-I.

Modelo de dados

O objectivo do modelo de dados SOAP é facultar uma abstracção de linguagem independente para tipos de dados utilizada por tipos de linguagem de programação comuns. Isto consiste em:

Todos os elementos e os identificadores que contenham o modelo de dados SOAP estão definidos no URI de espaço de nome. O SOAP padrão define as regras para a construção de tipos de dados. Um esquema XML específico de projecto deve definir os tipos de dados reais. Os elementos da especificação SOAP estão definidos em http://schemas.xmlsoap.org/soap/envelope/ e em http://schemas.xmlsoap.org/soap/encoding/

Implementações do SOAP

Estão disponíveis hoje implementações diferentes do protocolo SOAP. Por exemplo, a Apache Foundation faculta Apache SOAP, que se desenvolveu de um projecto daIBM® denominado SOAP4J, bem como Apache Axis e os ambientes de tempo de execução de IBM WebSphere.

Correlações

Uma correlação define uma associação entre um nome de elemento XML qualificado, um nome de classe Java™ e um estilo de codificação.  A correlação especifica como, de acordo com a codificação dada, é convertido um elemento XML recebido com um nome totalmente qualificado para uma classe Java e vice-versa.

Para obter mais informações sobre o Apache SOAP, consulte xml.apache.org/soap  Para obter mais informações obre o SOAP, consulte www.w3.org/TR/SOAP