Integração Entre Sistemas através de Serviços Web REST

Propaganda
Integração Entre Sistemas através de Serviços Web REST1
Victor Girotto2, Jeysel de Paula3, Jair Alves Barbosa4
Resumo
Não são poucas as vezes em que dois sistemas precisam acessar os mesmos dados. Existem
diversas maneiras de se alcançar esta integração. Uma delas são os Serviços Web, que têm se
popularizado nos últimos anos, sendo usado principalmente pelas redes sociais. E foi desta
maneira que dois sistemas em uso pelo Serviço de Atendimento Imediato ao Cidadão, o Na Hora,
foram integrados, de forma a se utilizarem dos mesmos dados.
Palavras-chave: REST, Web Services, Java
1. Introdução
Muitas vezes dois sistemas distintos precisam utilizar os mesmos dados, como é o caso entre
dois sistemas utilizados na diretoria do Serviço de Atendimento Imediato ao Cidadão, o Na Hora. O
primeiro, denominado SIGEP Na Hora, gerencia o setor de recursos humanos do serviço, e contém
a base de todos os servidores associados a ele. O segundo, denominado DigitalDoc, gerencia os
documentos recebidos e enviados pelo Na Hora.
Não são poucas as opções existentes no mercado para se fazer esta interoperabilidade. No
entanto muitas demonstram dificuldades e fragilidades que as impedem de serem plenamente
utilizadas. Poder-se-ia simplesmente utilizar o mesmo banco de dados, o que implicaria que
qualquer mudança no banco causaria impacto em duas aplicações e não em apenas uma, o que
dificultaria futuras manutenções. Outra alternativa é o uso de RMI, o que comprometeria a
possibilidade do uso desta funcionalidade futuramente por outras plataformas ou tecnologias.
Viu-se então nos Serviços Web, mais especificamente na arquitetura REST
(Representational State Transfer), uma solução viável e confiável para este problema.
2. Metodologia
A integração entre os dois sistemas foi realizada através de Serviços Web REST . Esta
arquitetura de Web Services, elaborada por Roy Fielding, se baseia fortemente no protocolo HTTP
(FIELDING, 2000). Ela se contrasta com outras arquiteturas de Web Services principalmente por
utilizar informações que o próprio protocolo HTTP oferece, no lugar de colocá-las como uma parte
a mais no corpo da requisição. No REST, existem recursos que contemplam os dados desejados que
são acessados via identificadores – as URIs. Existem quatro princípios fundamentais desta
arquitetura:
1 Trabalho desenvolvido como projeto de pesquisa para suporte ao ensino do curso de RESTful Web Services –
Projeto de Extensão.
2 Aluno do curso de Bacharelado em Ciência da Computação
3 Professor Orientador
4 Professor Co-Orientador
1. HTTP e sua falta de estado: cada requisição HTTP contém toda a informação necessária
para se entender a mensagem.
2. Conjunto definido de operações: a ação a ser invocada encontra-se definida no método
HTTP. As ações mais comuns são GET, POST, PUT e DELETE.
3. Um identificador de recursos: cada recurso do pode ser localizado através de uma URI
própria a ele.
4. Hipermídia: um recurso pode ter ligação a outros recursos através de links.
Existem diversas bibliotecas que dão suporte a esta arquitetura. No sistema DigitalDoc, foi
utilizada a biblioteca Jersey, por ser em Java – linguagem utilizada no sistema –, e por ser a
implementação padrão da API JAX-RS, a especificação do Java para Web Services REST. Através
desta biblioteca, foi possível disponibilizar os dados por meio de um serviço no SIGEP Na Hora,
permitindo que o DigitalDoc utilizasse os recursos necessários. Esta foi a metodologia utilizada
para a integração entre os dois sistemas.
Foi necessário ainda ser garantida a segurança destes dados. Para isto, foi utilizada a
framework JAAS (Java Authentication and Authorization Service), que possibilita uma verificação
da requisição enviada pelo cliente, buscando nela informações obrigatórias de autenticação. A
Figura 1 representa o esquema final da integração entre os sistemas.
Figura 1: Representação final do esquema de integração
entre sistemas.
3. Resultados
Devido a sua simplicidade de código, interoperabilidade e baixo overhead, os serviços web
REST se mostraram uma solução altamente simples e eficaz ao problema de troca de dados entre o
SIGEP Na Hora e o DigitalDoc. Esta integração já está funcionando em produção e tem auxiliado
no gerenciamento dos servidores no DigitalDoc, ao permitir o acesso aos dados existentes no
SIGEP Na Hora.
4. Conclusão
A arquitetura REST de serviços web mostrou que sua crescente popularidade é justificada, e
se mostrou uma maneira confiável de se realizar a integração entre diferentes sistemas. Graças à
framework JAAS, foi possível realizar a autenticação das requisições feitas ao serviço web,
permitindo que apenas clientes cadastrados possam obter os dados.
Em recente manutenção realizada percebeu-se a possibilidade de parar somente um dos
sistemas e não ambos, o que trouxe pouco prejuízo ao negócio.
5. Referências bibliográficas
- ORACLE. Java Authentication and Authorization Service (JAAS) Reference Guide.
Disponível
em:
<http://download.oracle.com/javase/6/docs/technotes/guides/security/jaas/JAASRefGuide.html>
Acessado em: 20/09/2011.
- FIELDING, Roy T.; Representational State Transfer (REST). 2000, Disponível em:
<http://www.ics.uci.edu/~fielding/pubs/dissertation/faq.htm>. Acessado em: 16/09/2011.
- RICHARDSON, Leonard; RUBY, Sam; RESTful Web Services. O'Reilly, 2007. 448p.
Download