SOUP e REST
A comunicação entre sistemas e a capacidade de oferecer
serviços por meio da internet está se tornando cada vez mais comum. Muitas
empresas de software oferecem serviços que podem ser acessados remotamente ou
dentro de uma rede e que permitem a comunicação entre um ou mais dispositivos
eletrônicos, tornando-os capazes de enviar e processar dados de acordo com sua
funcionalidade. Para que essa comunicação ocorra é necessário que os sistemas
envolvidos sigam um mesmo formato de transmissão de dados. Por causa disso os
web services se tornaram populares, pois permitem que plataformas diferentes
(Java, C#, C++, Python) se comuniquem sem grandes esforços.
Entre as abordagens
existentes para a implementação de web services as opções mais comuns encontradas
são SOAP e REST. Começaremos por definir o que são e o que significam essas
siglas. Ambas definem a maneira como as APIs são criadas. API é uma sigla que provém
do inglês Application Programming Interface e trata de um conjunto de rotinas e
padrões estabelecidos por um software para utilização de suas funcionalidades
por outras aplicações que por sua vez não terão conhecimento algum sobre os
detalhes de implementação, mas apenas utilizarão seus serviços.
O REST (Representational State Transfer) é um conjunto de
princípios de arquitetura que foi desenvolvido juntamente com o protocolo HTTP
1.1 e trazendo algumas ideias de como utilizar corretamente os verbos HTTP
(GET, POST, PUT, DELETE...) enquanto o SOAP (Simple Object Access Protocol) é
um protocolo oficial mantido pela W3C (World Wide Web Consortium) e que teve
grande destaque no mercado no início da década de 2000, sendo o padrão mais
implementado na época e deixando um legado de sistemas e integrações até hoje.
O padrão SOUP utiliza XML para a transferência de objetos entre
aplicações e HTTP para transporte. O XML segue um padrão definido pelo
protocolo e serve para que a partir de um objeto seja possível serializá-lo
para XML e depois deserializá-lo de volta para o formato original. Na
serialização forma-se a mensagem SOAP, composta pelo objeto denominado envelope
SOAP ou SOAP-ENV. Esse envelope é o elemento raiz do documento XML e pode
conter declarações de namespaces e atributos adicionais como a definição do
estilo de codificação. Além do envelope, o protocolo SOUP pode conter
opcionalmente um cabeçalho que carregará informações adicionais, como por
exemplo, se a mensagem deve ser processada por um nó intermediário. Por último
temos o Body que é obrigatório e contém o payload ou informação que será
transportada para o receptor da mensagem. O Body pode ainda conter o elemento
opcional Fault, usado para carregar status ou erros retornados pelos receptores
ao processarem a mensagem.
Mas como um cliente de um web service sabe qual o formato
dos métodos a serem chamados e quais parâmetros precisam ser passados? Para
isso foi criada a WSDL ou Web Services Description Language que é uma linguagem
baseada em XML que além de descrever o serviço, especifica como acessá-lo e
quais as operações ou métodos disponíveis. Então quando duas empresas que podem
ser concorrentes mas que desejam atender um mesmo cliente utilizando web services
então a única coisa que precisa ser fornecida é a URL do WSDL. Normalmente o
WSDL é encontrado quando acrescentamos “?wsdl” ao final da URL onde o web service
está hospedado.
No caso do REST cada mensagem HTTP contém toda a informação necessária
para compreender a requisição. Portanto não é necessário que nem o cliente e
nem o servidor gravem nenhum estado das comunicações entre as mensagens. É mais
utilizado para APIs públicas e utiliza vários padrões como JSON ou XML. São
necessários menos recursos e largura de banda em comparação com o SOAP.
Com isso podemos entender um pouco mais sobre os dois
padrões mais utilizados para comunicação entre softwares e ver sua importância na
integração de dados entre as organizações. Embora o REST seja mais utilizado
pelas grandes empresas, não podemos diminuir a importância do SOUP que está
presente em muitos sistemas ainda hoje operantes.
Referências
DANTAS, D.C.T. Simple Object Access Protocol. UFRJ - Redes de Computadores II
Disponível em: <https://www.gta.ufrj.br/grad/07_2/daniel/>
Maycon. WSDL: Simplifique a integração de dados via Web Service.
Disponível em: <https://www.devmedia.com.br/wsdl-simplifique-a-integracao-de-dados-via-web-service/30066>
REST - MDN Web Docs
Disponível em: <https://developer.mozilla.org/pt-BR/docs/Glossary/REST>


Comentários
Postar um comentário