Escolar Documentos
Profissional Documentos
Cultura Documentos
INTERNET DAS
COISAS
Introdução
Um Web service é uma solução utilizada na integração de sistemas e na
comunicação entre diferentes aplicações. Com essa tecnologia, novas
aplicações podem interagir com aquelas que já existem, além de permitir
que sistemas desenvolvidos em plataformas diferentes sejam compatíveis.
Diferentes protocolos podem ser utilizados para comunicação com Web
services, com destaque para o modelo REST e para o modelo SOAP.
Neste capítulo, você vai conhecer as respectivas características de
uma arquitetura REST e de uma arquitetura SOAP. Além disso, encontrará
aplicações dessas diferentes arquiteturas de Web service.
Cada camada da API REST tem uma relação entre um verbo HTTP e a
Uniform Resource Locator (URL). Os recursos no banco de dados em um
aplicativo podem ser mapeados com um terminal de API no REST. Quando
você usa um aplicativo móvel, seu telefone pode estar conversando secretamente
com muitos serviços em nuvem para recuperar, atualizar ou excluir seus dados.
Os serviços REST têm um enorme impacto em nossas vidas diárias. Vejamos
a seguir suas principais características:
O REST é a abstração que usa verbos HTTP para criar serviços Web. Por sua vez, o título
de RESTful é reservado à implementação correta e em plenitude de tudo aquilo que
a arquitetura REST propicia para implementação dos serviços/APIs. Resumidamente,
é preciso adotar o conjunto das melhores práticas do REST para algo ser classificado
como RESTful.
4 Web services e suas aplicações
para clientes e servidores que usam idiomas diferentes. O SOAP, por sua vez,
expõe uma maneira-padrão de comunicação dos processos, mas aproveita as
tecnologias existentes.
As solicitações SOAP são fáceis de gerar e um cliente pode processar facil-
mente as respostas. Um aplicativo pode se tornar um cliente programático dos
serviços de outro aplicativo, cada um trocando informações ricas e estruturadas.
A capacidade de agregar serviços Web poderosos e distribuídos permite que o
SOAP forneça um modelo de programação robusto que transforma a Internet
em uma plataforma de desenvolvimento de aplicativos.
O SOAP integra a arquitetura voltada a serviços (SOA, do inglês Service-
-Oriented Architecture) e emprega especificações de serviços da Web associa-
das à SOA. Como permite que o remetente crie uma rota de mensagem com
base nos serviços lógicos que devem ser aplicados à mensagem no caminho
para seu destino, ele se presta a fornecer conexões seguras e compatíveis,
controlando o acesso, oferecendo entrega confiável e recuperação de falhas e
dando suporte à descoberta dinâmica de serviços.
Em alto nível, o SOAP é definido em XML, mas a maioria dos aplicativos
SOAP usa Web Services Definition Language (WSDL) criada em XML. A
estrutura XML do SOAP auxilia aplicativos que esperam que suas informações
sejam fornecidas no formato XML, e o fato do SOAP poder rodar em uma
variedade de protocolos de rede, incluindo HTTP, significa que é facilmente
transmitido por firewalls mesmo em situações em que outros protocolos podem
exigir acomodação especial.
A estrutura de dados do SOAP baseada em XML é semelhante em muitos
aspectos ao HTML usado para definir páginas da Web. Assim como o HTML,
o XLM é amplamente legível por humanos, o que facilita bastante a compre-
ensão de mensagens SOAP, mas também as torna relativamente grandes em
comparação com o CORBA e o protocolo Remote Procedure Call (RPC), que
acomoda dados binários.
A maior desvantagem do SOAP (e do SOA em geral) é que se trata de um
protocolo pesado para uma arquitetura pesada. A noção de uma mensagem
atravessando uma série de nós para ser processada por cada um deles parece
misturar protocolos e modelos de arquitetura de barramento de serviço para
software, o que não é considerado ideal para o desenvolvimento baseado em
microsserviços, como o SOAP é popularmente usado.
O SOAP é um protocolo quase sempre usado no contexto de uma estrutura
de serviços Web/SOA. Como tal, sua API geralmente está oculta pela inter-
face de nível superior para SOA. Existem ferramentas de middleware da API
SOA disponíveis para quase todas as linguagens de programação modernas.
6 Web services e suas aplicações
Figura 4. Estrutura de um
documento WSDL.
Fonte: Dal Moro, Dorneles e Rebo-
natto (2011, documento on-line).
Web é como uma estrada que liga duas cidades distantes que até então não
tinham rota direta de comunicação. No caso de aplicações, uma API pode ser
utilizada por diferentes aplicações de negócio, sem exigir que cada aplicação
conheça os detalhes da sua implementação.
Uma API pode ser acessada por meio de um endereço. Vamos supor que
estamos acessando a API disponibilizada por um serviço Web de uma escola
para pesquisar alguns registros disponíveis sobre os alunos. Perceba que
isso é uma vantagem das APIs também, pois neste exemplo os únicos dados
retornados para a nossa aplicação são o nome e a idade do aluno. Mesmo que
os registros dos alunos apresentem muitos outros dados, nossa aplicação não
tem que se preocupar com a implementação da busca em si, bastando consul-
tar o serviço Web da escola, que implementa a busca, disponibilizando, por
questões internas, apenas as informações de nome e idade.
Digamos que o endereço da API é escola.com.br/api/v1/alunos. Eis, então,
o arquivo JSON de retorno para a nossa aplicação:
{
"alunos":
[
{
"nome": "Aluno1",
"idade": 12
},
{
"nome": "Aluno2",
"idade": 13
},
{
"nome": "Aluno3",
"idade": 14
},
{
"nome": "Aluno4",
"idade": 15
}
]
}
10 Web services e suas aplicações
Com esse exemplo, podemos ver uma API em que várias aplicações-clientes
poderiam solicitar os dados dos alunos da escola e usariam essa informação. Por
sua vez, o modelo de arquitetura REST nos permite criar uma API utilizando
o protocolo HTTP para requisições.
No link a seguir, você encontrará um tutorial de API REST segundo o Modelo de Ma-
turidade de Richardson (em inglês).
https://qrgo.page.link/cWUjw
BOX, D. et al. Simple object access protocol (SOAP) 1.1. [S. l.]: W3C, 2000. Disponível em:
https://www.w3.org/TR/2000/NOTE-SOAP-20000508/. Acesso em: 28 nov. 2019.
DAL MORO, T.; DORNELES, C. F.; REBONATTO, M. T. Web services WS-* versus Web services
REST. Revista de Iniciação Científica, v. 11, n. 1, p. 36-51, 2011. Disponível em: https://seer.
ufrgs.br/reic/article/viewFile/22140/12928. Acesso em: 28 nov. 2019.
HAINES, S.; POTTS, S. Java 2: primer plus. Indianapolis: SAMS, 2003.
Web services e suas aplicações 11
Leituras recomendadas
BOOTH, D. et al. (ed.). Web services architecture. [S. l.]: W3C, 2004. Disponível em: http://
www.w3.org/TR/ws-arch/. Acesso em: 28 nov. 2019.
GOOGLE. Android developers. 2019. Disponível em: https://developer.android.com.
Acesso em: 28 nov. 2019.
HU, V. C. et al. Attribute-based access control. Boston: Artech house, 2018.
MAGRANI, E. A internet das coisas. Rio de Janeiro: FGV Editora, 2018.
Os links para sites da Web fornecidos nesse capítulo foram todos testados, e seu
funcionamento foi comprovado no momento da publicação do material. No entanto,
a rede é extremamente dinâmica; suas páginas estão constantemente mudando de
local e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade sobre
qualidade, precisão ou integralidade das informações referidas em tais links.