Protocolo Simples para Acesso a Objectos (SOAP)

O SOAP (também conhecido como Protocolo Simples para Acesso a Objectos) é um protocolo leve 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. Este produto 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 faculta um nível mais baixo de abstracção e requer mais trabalho de programação, se estiver a utilizar os ambientes em tempo de execução do SOAP ou do Apache Axis da IBM®.

Estilos de codificação

Em ambientes de computação distribuída, os estilos de codificação definem a forma como os valores dos dados definidos na aplicação podem ser convertidos para e a partir de um determinado formato de protocolo. O processo de conversão é conhecido como serialização e anulação de serialização.

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

Codificação SOAP:  O estilo de codificação SOAP permite serializar/anular a serialização 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 nomes. O SOAP padrão define as regras para a construção de tipos de dados. Um esquema XML específico de um projecto tem de definir os tipos de dados actuais. 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

Actualmente, estão disponíveis implementações diferentes do protocolo SOAP. Por exemplo, a Apache Foundation faculta o Apache SOAP, que se desenvolveu a partir de um projecto da IBM denominado SOAP4J, assim como os ambientes em tempo de execução Apache Axis e IBM WebSphere®. Esta edição de ferramentas de serviços Web suporta a implementação do Axis 1.0.

Correlações

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

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