Serviços Web: Conceitos, Arquiteturas e Protocolos
Pontos principais
- Serviços web permitem a comunicação entre sistemas de software independentemente da linguagem de programação utilizada.
- A arquitetura REST é amplamente preferida em APIs modernas por ser sem estado e mais leve que o SOAP.
- O modelo SOAP baseia-se no uso de XML para formatação, SOAP para transporte e WSDL para a descrição da interface.
- O UDDI, originalmente planejado como um diretório global de serviços, perdeu relevância para motores de busca devido à sua complexidade.
Um serviço web (do inglês web service) é uma funcionalidade de software disponibilizada em um endereço de rede, projetada para suportar a interação interoperável entre máquinas através de uma rede, geralmente a Internet. Essencialmente, trata-se de um método de comunicação que permite que dois sistemas de software, independentemente de suas linguagens de programação ou plataformas, troquem dados de forma padronizada.
Na prática, um serviço web fornece frequentemente uma interface baseada na web para um servidor de banco de dados, sendo consumido por outros servidores web ou aplicativos móveis que, por sua vez, apresentam a interface final ao usuário. Muitas organizações disponibilizam seus dados em páginas HTML para humanos e, simultaneamente, via serviços web em formatos como XML ou JSON para permitir a sindicação e o consumo automatizado por outras máquinas.
Arquiteturas e Tecnologias Modernas
Atualmente, a evolução dos serviços web moveu-se em direção a comunicações mais simples e eficientes, com destaque para as APIs Web.
Representational State Transfer (REST)
O REST é uma arquitetura para serviços web que visa a escalabilidade em nível de Internet. De acordo com definições do W3C, os serviços REST focam na manipulação de representações de recursos web utilizando um conjunto uniforme de operações sem estado (stateless). Diferente de protocolos mais rígidos, as APIs RESTful não exigem protocolos complexos baseados em XML para suportar suas interfaces, utilizando predominantemente o protocolo HTTP para a transferência de dados.
AJAX e Formatos de Dados
O AJAX (Asynchronous JavaScript and XML) é uma tecnologia dominante para a implementação de serviços web no lado do cliente. Embora o nome mencione XML, o AJAX é frequentemente utilizado com JSON (JavaScript Object Notation) devido à sua leveza e facilidade de processamento por navegadores, embora o XML continue sendo uma opção válida para a transferência de arquivos legíveis por máquina.
Serviços Web Padronizados (W3C)
O W3C define o serviço web como um sistema de software com uma interface descrita em formato processável por máquina, interagindo via mensagens SOAP, tipicamente transportadas por HTTP com serialização XML.

Componentes Fundamentais do Modelo SOAP
Para garantir a interoperabilidade entre sistemas heterogêneos, o modelo tradicional de serviços web baseia-se em quatro pilares:
- XML (Extensible Markup Language): O formato de dados utilizado para conter a informação e fornecer metadados.
- SOAP (Simple Object Access Protocol): O protocolo utilizado para transferir os dados entre as partes.
- WSDL (Web Services Description Language): O arquivo (extensão .wsdl) que descreve as regras de comunicação, parâmetros necessários e a estrutura dos dados produzidos.
- UDDI (Universal Description, Discovery, and Integration): Um diretório que permite a descoberta de quais serviços web estão disponíveis e quem deve ser contatado para obter determinados dados.
Modelos de Design Automatizado
A criação de serviços web pode ser auxiliada por ferramentas automatizadas seguindo dois modelos principais:
- Modelo Bottom-up: O desenvolvedor escreve as classes de implementação primeiro e, em seguida, utiliza uma ferramenta para gerar o WSDL, expondo os métodos como um serviço web. É mais simples de desenvolver, porém mais difícil de manter se as classes mudarem frequentemente.
- Modelo Top-down (Contract-First): O desenvolvedor escreve o documento WSDL primeiro e utiliza ferramentas para gerar o esqueleto do código. Este modelo é considerado mais robusto e resistente a mudanças, pois o contrato entre o remetente e o receptor é o ponto de partida.
Análise Crítica e Manutenção
Serviços web não-RESTful (como os baseados em SOAP) são frequentemente criticados por sua complexidade e dependência de grandes fornecedores de software. Além disso, há preocupações quanto ao desempenho, dado que o envelope SOAP e a serialização XML são mais pesados do que as alternativas modernas como JSON.
Testes de Regressão e Gestão de Mudanças
O teste de serviços web é realizado através do parsing do WSDL. Testes de regressão focam em identificar mudanças no WSDL ou no código para garantir que atualizações não quebrem a interoperabilidade. Ferramentas como SoapUI, Selenium e Oracle Application Testing Suite (OATS) são comumente utilizadas para automatizar esses processos.
O Declínio do UDDI
Embora o UDDI tenha sido concebido como o diretório universal de serviços, muitos fornecedores (incluindo Microsoft, SAP e IBM) descontinuaram suas soluções entre 2005 e 2008. Estudos indicam que a complexidade do design do UDDI tornou os motores de busca convencionais fontes mais eficientes para a descoberta de serviços web do que os registros especializados.
Perguntas frequentes
Qual a diferença entre REST e SOAP?
O SOAP é um protocolo rígido baseado em XML que define regras estritas de comunicação e é frequentemente usado em ambientes corporativos. O REST é um estilo arquitetural mais flexível, geralmente utilizando HTTP e formatos como JSON, sendo mais escalável e leve para a web moderna.
Para que serve o arquivo WSDL?
O WSDL (Web Services Description Language) funciona como um contrato técnico que descreve exatamente quais operações um serviço web oferece, quais parâmetros ele aceita e qual será a estrutura da resposta.
O que é uma API Web?
Uma API Web é uma evolução dos serviços web, focando em comunicações simplificadas, geralmente baseadas em REST, que permitem que diferentes aplicações interajam entre si via HTTP sem a necessidade de protocolos complexos como SOAP.
Por que o JSON é preferido ao XML em muitos serviços web?
O JSON é geralmente mais conciso, mais fácil de ler para humanos e significativamente mais rápido de processar por linguagens de programação, especialmente JavaScript, em comparação com a estrutura mais verbosa do XML.