Boas Praticas: Integração com outros sistemas
12/09/2012 12:49
1
Pessoal,

gostaria de saber a experiência de vocês com integração entre o Grails e outros sistemas. Estou desenvolvendo um sistema em Grails porém necessito de integrar outros sistemas, desenvolvidos em outras linguagens (PHP, Java, etc...) ao mesmo, porém sem alterar o código fonte dos programas de outras linguagens.

O Meio mais eficaz que pensei foi desenvolver scripts em Groovy recebendo por parametro as variaveis a se alterar no banco de dados. Assim, quando a outra aplicação quiser efetuar alguma alteração em meu banco de dados, ele acessará meu servidor e executará o Script com informações repassadas via parametro.

Confesso que não estou convencido que esta seja a melhor opção para permitir tal alteração, pois gera uma vulnerabilidade de segurança em meu sistema.

Gostaria de saber de vocês O QUE fariam e COMO fariam para permitir que outros sistemas alterassem ou incluisse informações em meu banco de dados? Descrevam suas experi~encias com bastante detalhe.
Tags: integração, banco de dados, sistemas


0
Oi ivgsilva,

sua aplicação que dominará o banco de dados ou a outra? Se for a outra, há algumas soluções para o seu problema.

Uma delas, e a mais perigosa do ponto de vista de desempenho é a criação de views do lado da sua aplicação que reflitam o banco de dados legado. É uma solução perigosa do ponto de vista de performance porque caso seja necessário fazer joins e tal.

Uma outra alternativa é você desenvolver alguma estratégia que, de tempos em tempos, busque registros novos no banco de dados e estes sejam populados em uma tabela do seu lado. Nesta segunda alternativa, o único perigo seria você buscar registros que ainda não existam do lado da aplicação legado, mas é um problema fácilmente resolvível se vocês adotarem alguma política mais interessante de atualização. Neste caso é importante também que você não permita edição nas tabelas do seu lado.

Tirando isto, tem também as estratégias mais limpas, como implemntação de interfaces REST ou SOAP, mensageria, etc.


0
Ola Henrique,

minha aplicação que dominará o Banco de Dados. Não sabia que o gerenciamento de views consumia tanto desempenho no Grails.

Gostei de sua ideia em criar uma tabela paralela e buscar de tempos em tempos. Talvez um Trigger nessa tabela paralela poderia ajudar. Você conhece algum material que poderia me ajudar nessa integração?

12/09/2012 22:04


1
Oi Ivgsilva,

no caso, para o Grails se é uma view ou uma tabela é indiferente. O seu problema vai estar no banco de dados. Imagine que para cada consulta do tipo join, este precise consultar uma view que, por sua vez, é uma consulta por si só. Na realidade toda consulta sua com join será aquela consulta + 1.

E com outro problema: você não tem como criar na sua view índices para otimizar consultas, tal como faria em uma tabela física real. Se estiver trabalhando com o Oracle, há uma possibilidade muito interessante que são as views materializadas, que fazem este trabalho que propus acima pra você de forma automática e bem otimizada.

O melhor material que conheço a respeito de integração é um livro chamado Enterprise Integration Patterns, que você pode acessar neste link. No caso, não é algo específico pra Groovy/Grails, mas como o próprio nome já diz, é uma coleção de padrões de projeto que você pode aplicar em situações como a sua. Se não me engano, o nome deste padrão de projeto é "shared database".


1
Aliás IvgSilva, se sua aplicação é que vai dominar o banco de dados, você tem em mãos uma oportunidade excelente de fazer um trabalhinho foda.

Implemente uma API no formato REST ou SOAP e faça com que todo o acesso a estas informações se dê através da mesma. Assim de cara você evita os problemas de bancos de dados compartilhados.


0
Henrique,


confesso que não conheço REST nem SOAP... vou ter que iniciar meus estudos sobre o tema. Mas acho que todos sempre nos depararemos com situações que necessitarão de integração com outros sistemas.

Se possuir materiais de REST ou SOAP compartilha ai que será de grande valia.

mais uma vez obrigado pela ajuda.

Abraços
13/09/2012 15:02


0
Oi IvgSilva,

na documentação do Grails tem uma seção sobre REST que mostra como criar este tipo de API.



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto