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.