Pessoal, um dos protocolos utilizados em web services e que encontramos algumas questões de concurso é o SOAP (Simple Object Access Protocol), que é um padrão de trocas de mensagens que oferece suporte à comunicação entre os atores de uma arquitetura SOA.
Após conhecer a assinatura de um serviço, o próximo passo do solicitante do serviço é invocá-lo. Em web services, isso é realizado por meio de mensagens SOAP.
SOAP é uma especificação para a troca de informações estruturadas em um ambiente descentralizado e distribuído. Como tal, representa a forma principal de comunicação entre os três atores-chave em uma SOA. O objetivo principal desse design é ser simples e extensível.
SOAP permite que os desenvolvedores invoquem processos em execução em sistemas operacionais diferentes (como Windows, macOS e Linux) para autenticar, autorizar e se comunicar, usando XML. Como protocolos da Web estão instalados e em execução em todos os sistemas operacionais, SOAP permite que os clientes invoquem web services e recebam respostas independentemente da linguagem e da plataforma.
Assim, podemos concluir que o protocolo SOAP tem três características principais:
- Extensibilidade (segurança e WS-Addressing estão entre as extensões em desenvolvimento).
- Neutralidade (SOAP pode operar com qualquer protocolo, como HTTP, SMTP, TCP, UDP).
- Independência (SOAP pode ser utilizado por qualquer linguagem de programação).
As principais vantagens do uso de SOAP podem ser resumidas no seguinte: as mensagens são firewal-friendly, XML é amplamente conhecido, é um protocolo utilizado por grandes organizações e existe uma variedade de bibliotecas para sua utilização.
O passo a passo de uma comunicação com SOAP pode ser resumida a seguir:
- O cliente cria um envelope SOAP especificando o nome da operação requisitada e os nomes e valores dos parâmetros da operação.
- A requisição é enviada pela rede ao provedor do serviço.
- A requisição é recebida e interpretada.
- A operação requisitada é executada.
- A resposta, se houver, é colocada em um envelope SOAP e enviada ao cliente.
Para terminar, vamos falar um pouco da estrutura de uma mensagem SOAP. Toda mensagem SOAP é unidirecional e sem estado. Trata-se de um documento XML comum, que contém os seguintes elementos:
- Envelope: Identifica o documento XML como uma mensagem SOAP.
- Header: Contém informações do cabeçalho.
- Body: Contém informações de chamada e resposta.
- Fault: Fornece informações sobre os erros que ocorreram durante o processamento da mensagem.
Esquematicamente, temos:
O Envelope define o começo da mensagem SOAP, o Header possui informações específicas da aplicação (dados de autenticação, número de transação, etc.) e o Body contém a mensagem propriamente dita, ou seja, os dados que devem ser transmitidos, organizados de forma estruturada (graças ao XML).
Para terminar, vamos ver uma questão de concurso:
Questão 01 (adaptada) (CESPE/ANÁLISTA DE SISTEMAS/TRE-MS/2013)
No que se refere a SOA e webservices, avalie:
SOAP é um protocolo do tipo statefull, independente de sistema operacional, embasado em troca de mensagem one-way e projetado para ser simples e extensível por meio de tecnologia XML.
SOAP é stateless, ou seja, não armazena o estado do serviço. Por isso, a questão está ERRADA.
Clique nos links abaixo:
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
Clique no link abaixo e inscreva-se gratuitamente: