REST vs SOAP

Padrão

rest-vs-soap

Elaborado por Beatriz VerderamiWilliam Henrique

Este artigo foi disponibilizado parcialmente no Blog, a partir de uma pesquisa realizada para conclusão de uma disciplina da Pós Graduação de Engenharia de Software.

1. INTRODUÇÃO

Apesar das arquiteturas REST vs SOAP terem particularidades únicas, relevantes a diferentes tipos de necessidades, ambas são capazes de disponibilizar os mesmos serviços para o responsável da aplicação, basta neste caso, levantar a real necessidade para escolher entre as duas.

Neste artigo iremos detalhar as particularidades únicas entre as duas arquiteturas. Lembrando que nenhuma tecnologia pode ser considerada boa ou ruim, o que fazem serem diferenciadas é justamente a necessidade do negócio, portanto, é de fundamental importância levar em consideração diversas particularidades para uma possível tomada de decisão estratégica.

2. SOAP

SOAP (Simple Object Access Protocol) é um protocolo leve para troca de informações estruturadas em um ambiente distribuído e descentralizado. (GUDGIN, et al. 2003). É também uma tecnologia que utiliza a tecnologia XML para definir uma estrutura extensível de troca de mensagens, fornecendo deste modo uma construção que pode usar uma variedade de protocolos subjacentes. (SCHEPKE, et al. 2010).

De acordo com Simple (2011), o SOAP é um protocolo projetado para invocar aplicações remotas através de RPC – técnica utilizada para desenvolvimento de aplicações distribuídas que segue o modelo clienteservidor ou trocas de mensagens, em um ambiente independente de plataforma e linguagem de programação. (SIMPLE, 2011).

É fácil de implementar, testar e usar o protocolo SOAP. Ele é um padrão da indústria e foi adotado pelo W3C. A mensagem é transportada através do protocolo HTTP por meio de pacotes virtualmente idênticos. Os protocolos de autenticação e encriptação são os mesmos. (LIMA, 2012).

3. REST 

REST (Representational State Transfer) é uma abstração arquitetural criada a partir da tese de mestrado criada por Roy Fielding, um dos principais autores da especificação do protocolo HTTP (Hypertext Transfer Protocol), utilizado na comunicação Web.

Segundo Fielding (2000), REST é um conjunto coordenado de restrições de arquitetura que tenta minimizar a dependência e a escalabilidade das implementações dos componentes.

Os sistemas que são baseados em REST são denominados RESTful e devem seguir os princípios descritos por Fielding em sua tese: “Architectural Styles and the Design of Network-based Software Architectures”, Fielding ainda diz que o protocolo HTTP (Hypertext Transfer Protocol) possui recursos suficientes para realizar todas as transações comuns na WEB como: inserção, atualização, exclusão e recuperação de informação. Utilizando apenas seus métodos (verbos: POST, GET, PUT, DELETE, HEAD e OPTIONS) padrões e o endereço de requisição (URI: Uniform Resource Identifier).

Um aspecto essencial da arquitetura RESTful é que elas são stateless, o servidor não pode manter nenhum contexto de cliente entre transações, e toda transação deve conter todas as informações necessárias para satisfazer a solicitação. Essa característica tende a tornar as arquiteturas RESTful mais confiáveis e também ajuda a expandir sua escalabilidade.

4. REST vs SOAP

O protocolo SOAP e o modelo de design REST entre diversas opções são as que possuem maior destaque nos dias de hoje, estando presentes em diversas arquiteturas orientadas a serviços na web. No entanto, entre elas, como qualquer outra tecnologia é preciso levantar a real necessidade do negócio e avaliar a usabilidade.

Na imagem abaixo realizamos uma comparativa entre as duas tecnologias, levando em consideração o conhecimento agregado na realização deste artigo.

soap-vs-rest

Figura 1: REST vs SOAP

5. CONSIDERAÇÕES FINAIS

Neste artigo visamos referenciar o REST vs SOAP, portanto, a escolha entre eles conforme analisado dependerá exclusivamente da real necessidade nossa e/ou do negócio, isso porque existem várias tecnologias, e entre elas existem particularidades únicas que poderão agregar melhor dentro de um negócio, segmento ou necessidade, mas para isso é preciso ter um embasamento que justifique essa escolha.

Portanto, podemos reforçar que a melhor escolha estará atrelada ao todo dentro um cenário em que estamos inseridos. E talvez a decisão de uma delas seja melhor que a outra.

6. REFERÊNCIAS BIBLIOGRÁFICAS

ALMEIDA, M. Uma introdução ao XML, sua utilização na Internet e alguns conceitos complementares. Disponível em: http://www.scielo.br/pdf/ci/v31n2/12903 Acessado em: 23/10/16 às 11h50.

ALVES, F. Utilização de Web Services Para Integração de Sistemas. Disponível em: http://www.fatecsp.br/dti/tcc/tcc00066.pdf Acessado em: 12/10/16 às 11h27.

FERREIRA, C. el al. Comparando Aplicação Web Service REST e SOAP. Disponível em: http://web.unipar.br/~seinpar/2014/artigos/pos/Cleber_de_F_Ferreira_Roberto_ Dias_Mota%20(1).pdf Acessado em: 12/10/16 às 12h44

HANSEN, R. et al. Construindo Ambientes de Educação Baseada na Web Através de Web Services Educacionais. Disponível em: http://www.brie.org/pub/index.php/sbie/article/view/236/222 Acessado em: 23/10/16 às 14h10.

LIMA, J. Web Services (SOAP X REST). Disponível em: http://www.fatecsp.br/dti/tcc/tcc00056.pdf Acessado em: 23/10/16 às 10h50.

NAKAMURA, L. Utilização de web semântica para seleção de informações de web services no registro UDDI uma abordagem com qualidade de serviço. Disponível em: http://www.teses.usp.br/teses/disponiveis/55/55134/tde-30032012- 134557/en.php Acessado em: 23/10/16 às 15h20.

OLIVEIRA, R. Avaliação de manutenibilidade entre as abordagens de web services RESTful e SOAP-WSDL. Disponível em: http://www.teses.usp.br/teses/disponiveis/55/55134/tde-24072012- 164751/en.php Acessado em: 19/10/16 às 9h16

SCHEPKE, C. et al. Avaliação de Desempenho de SOAP sobre HTTP, SMTP e BEEP. Disponível em: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.516.3366&rep=rep1&t ype=pdf Acessado em: 20/10/16 às 16h37

Até o Próximo Post.

E não deixem de curtir a nossa página do Facebook: facebook.com/tieprojetos