7. Visão geral de Serviços Web
Ainda que SOAP às vezes seja confundido com Serviços Web (do inglês Web Services, são tecnologias distintas. Enquanto SOAP é um protocolo que define sintaxe de mensagens, um Serviço Web é uma solução de integração baseada em vários protocolos, dentre eles o SOAP. Sendo assim, Serviços Web apenas usam SOAP.
Descrição
A solução completa de Serviços Web se baseia em 3 protocolos:
- SOAP: especifica a sintaxe das mensagens entre o Cliente e o Servidor;
- Web Services Description Language (WSDL): documento XML que, resumidamente, descreve as operações disponíveis em um Servidor de Serviço Web;
- Universal Description Discovery and Integration (UDDI): registro de Serviços Web disponíveis.
A arquitetura consiste no seguinte:
Uma aplicação ora chamada de cliente usa o UDDI para localizar o Serviço Web desejado. O UDDI envia a localização e a descrição (WSDL) do serviço web desejado para o cliente. Este analisa o documento WSDL e escreve uma mensagem SOAP de acordo com as definições lidas. A mensagem é, então, enviada para o servidor do serviço. Esse servidor interpreta a mensagem (do inglês parsing) e invoca o método apropriado, passando os parâmetros fornecidos na mensagem. O método executado, então, retorna o resultado para o Servidor SOAP, que escreve uma mensagem com esse resultado e envia para o cliente SOAP. Por fim, este último lê a mensagem e repassa o resultado para a aplicação que originalmente fez o pedido, completando o ciclo.
Exemplos reais
O melhor exemplo de Serviços Web publicamente consultáveis hoje em dia são os da Amazon. A Amazon, uma das maiores empresas da Web que tem como principal atividade o comércio eletrônico, possui um leque de Serviços Web que podem ser acessados pelos parceiros fornecedores da empresa. Todo o processo de disponibilização de produtos e edição do cadastro dos mesmo, ente outras atualizações, são feitas por esses Serviços Web.
Outro exemplo interessante é um Serviço Web do Google que, apesar de já ter sido descontinuado (pois devido ao seu propósito, ele pôde ser substituído por soluções em AJAX), ainda oferece funcionalidades interessantes. Sua descrição declara as seguintes operações:
- Busca Google: essa operação recebe como parâmetro uma string de busca e retorna uma série de resultados para aquela busca, que podem ser exibidos e processados para diversos fins.
- Correção ortográfica: essa operação recebe um string e retorna a mesma com sugestões de correções.
- Recuperar página guardada no Cache do Google: essa operação recebe uma string com uma URL e retorna o documento html para o qual essa URL aponta ou apontava.