Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Orientação na utilização do Apache Camel

Primeiramente Nico, parabéns pelo excelente curso que você ministrou, fiz o curso de JMS seu tb e segue o mesmo padrão, são ótimos.

Com o decorrer do curso, comecei a pensar em 'n' maneiras de utilizar o Apache Camel e no momento estou envolvido em um projeto que acredito que seja possível a utilização deste framework. Gostaria da opinião sua e de mais pessoas que possam me falar se realmente é viável utilizar este framework para estes fins ou não.

O Cenário é o seguinte:

Preciso desenvolver uma aplicação em Java que deve rodar em filiais da empresa como um serviço do Windows, para a seguinte finalidade:

  • Preciso obter algumas informações do banco de dados de um software de terceiro que não poderá ser alterado. Porém eu tenho a senha e o usuário do banco de dados (MySQL) p/ que eu tenha acesso aos dados que preciso.

    • A aplicação que vou desenvolver, precisa obter periodicamente determinados dados do banco de dados (MySQL) da aplicação de terceiro e enviá-los para um Web Service REST.

    • Esta aplicação também deverá realizar uma auditoria no banco de dados da aplicação de terceiro.

    • Será necessário que eu envie também dados para o banco de dados das filiais.

    • E também envie e obtenha dados de uma chave USB (NetRockey4) de proteção de software que utilizamos para controlar o acesso a aplicação.

Pensei em utilizar o Apache Camel (rodando de forma local nas filiais), nesta aplicação que estou desenvolvendo. A utilização do Camel seria da seguinte maneira:

  • Buscar as informações no banco de dados da aplicação de terceiro, transformar esses dados em XML ou JSON e armazenar em uma determinada pasta.

    • Esses dados devem ser enviados para um webservice REST duas vezes ao dia. Vendo a documentação do Apache Camel, vi que ele tem o Quartz, com isso eu podia fazer periodicamente essas tarefas.

    • A parte de auditoria, como eu estou criando um xml dos dados que obtive no banco de dados, posso realizar uma analise e enviar para o webservice apenas os novos registros e atualizações.

    • A parte que eu devo enviar informações para banco de dados da filial. Pensei em colocar o Camel para verificar 1 vez ao dia por exemplo, determinado Endpoint e com isso verificar se as informações do banco de dados estão atualizadas. Caso contrário, ele acessa outro Endpoint, obtem um get e atualiza o banco de dados.

    • E utilizando a mesma estrategia, colocar o Camel para verificar outro Endpoint, onde ele obtem informações envie para a chave USB.

Será que é possivel fazer isso com o Apache Camel, ou estou viajando e provavelmente isso não vai dar certo?

Pois estou bastante inclinado a adicionar este framework para ele ser o middleware que irá controlar estes acessos.

Obrigado e desculpe o tamanho da mensagem.

2 respostas
solução!

Oi André,

pra mim parece ser sim um cenário ideal para Apache Camel. O que vc descreveu são integrações que precisam ser executadas periodicamente, lado forte do Camel.

A única dúvida que tenho como usar aquele chave no USB. Ai precisa testar bem antes de implementar tudo.

abs

Muito obrigado Nico, vou então adicionar o Apache Camel no projeto e realizar testes.