Bom dia pessoal,
estou desenvolvendo uma aplicação comercial onde terei um sistema de vendas em PDVs com base de dados independente e um sistema retaguarda…
de tempos em tempos, necessitarei fazer a sincronização das bases dos PDVs com a base do retaguarda para:
- Atualizar preços e cadastro de clientes;
- Atualizar estoque;
Pesquisei várias formas de fazer essa sincronização, sempre levando em consideração a confiabilidade, interoperabilidade e simples gerenciamento de fila. Estou pensando em fazer com mensageria, até encontrei frameworks OpenSource como o Apache ActiveMQ e o JBoss HornetQ para auxiliar nesta tarefa…
Gostaria de saber a opinião de alguém que tenha experiência nesta área, preciso saber se essa estratégia é a mais adequada para o meu caso pois conheço pouco dessa técnica e se não for se há uma solução mais viável.
Agradeço desde já.
Aqui na empresa onde trabalho deve uma situação de replicação de dados de uma base para outra, nessa casso os clientes da empresa que eram cadastrados numa base, por um sistema, teriam que ser visto em outro sistema, com outra base de dados
eu usei Apache ActiveMQ para fazer a replicação dos dados de uma base para outra e naum tive problemas, faz dois messes que a replicação esta acontecendo e ate agora naum tive problemas
eu recomendo ActiveMQ claro que naum conheco nenhuma outra tecnologias que faça isso
mas pelo conhecimento que tenho mq eu o acho um framework muito facil de ser utilizado
[quote=CristianPalmaSola10]Aqui na empresa onde trabalho deve uma situação de replicação de dados de uma base para outra, nessa casso os clientes da empresa que eram cadastrados numa base, por um sistema, teriam que ser visto em outro sistema, com outra base de dados
eu usei Apache ActiveMQ para fazer a replicação dos dados de uma base para outra e naum tive problemas, faz dois messes que a replicação esta acontecendo e ate agora naum tive problemas
eu recomendo ActiveMQ claro que naum conheco nenhuma outra tecnologias que faça isso
mas pelo conhecimento que tenho mq eu o acho um framework muito facil de ser utilizado[/quote]
Bacana, vou dar uma olhada na documentação…
Sabe me dizer se o envio dos dados é instantâneo assim como uma replicação ou é possível configurar um time para executar a atualização da base como se fosse uma carga?
Por serem bases com dados diferentes a incrementação na base do retaguarda tem que ser bem feita para não haver perdas, ele gerenciar bem as filas?
[quote=henriquecosta]Bom dia pessoal,
estou desenvolvendo uma aplicação comercial onde terei um sistema de vendas em PDVs com base de dados independente e um sistema retaguarda…
de tempos em tempos, necessitarei fazer a sincronização das bases dos PDVs com a base do retaguarda para:
- Atualizar preços e cadastro de clientes;
- Atualizar estoque;
Pesquisei várias formas de fazer essa sincronização, sempre levando em consideração a confiabilidade, interoperabilidade e simples gerenciamento de fila. Estou pensando em fazer com mensageria, até encontrei frameworks OpenSource como o Apache ActiveMQ e o JBoss HornetQ para auxiliar nesta tarefa…
Gostaria de saber a opinião de alguém que tenha experiência nesta área, preciso saber se essa estratégia é a mais adequada para o meu caso pois conheço pouco dessa técnica e se não for se há uma solução mais viável.
Agradeço desde já.
[/quote]
Essa ideia funciona. Eu mesmo já usei. Não para replicação, mas para cache. O bom da mensageria é que o dado é atualizado assim que ele é atualizado no sistema central. Vc poderia usar um banco embutido como o HSQL ou o H2 e manter o sincronismo com mensageria (topicos, claro, não filas)
Uma tecnica melhor que a mensageria é a justaposição (JTXA) que se utiliza em clusters ( o jboss tem uma api disso que usava nos AS antigos, não sei se ainda está sendo suportada - chama-se JGroups)
[quote=sergiotaborda][quote=henriquecosta]Bom dia pessoal,
estou desenvolvendo uma aplicação comercial onde terei um sistema de vendas em PDVs com base de dados independente e um sistema retaguarda…
de tempos em tempos, necessitarei fazer a sincronização das bases dos PDVs com a base do retaguarda para:
- Atualizar preços e cadastro de clientes;
- Atualizar estoque;
Pesquisei várias formas de fazer essa sincronização, sempre levando em consideração a confiabilidade, interoperabilidade e simples gerenciamento de fila. Estou pensando em fazer com mensageria, até encontrei frameworks OpenSource como o Apache ActiveMQ e o JBoss HornetQ para auxiliar nesta tarefa…
Gostaria de saber a opinião de alguém que tenha experiência nesta área, preciso saber se essa estratégia é a mais adequada para o meu caso pois conheço pouco dessa técnica e se não for se há uma solução mais viável.
Agradeço desde já.
[/quote]
Essa ideia funciona. Eu mesmo já usei. Não para replicação, mas para cache. O bom da mensageria é que o dado é atualizado assim que ele é atualizado no sistema central. Vc poderia usar um banco embutido como o HSQL ou o H2 e manter o sincronismo com mensageria (topicos, claro, não filas)
Uma tecnica melhor que a mensageria é a justaposição (JTXA) que se utiliza em clusters ( o jboss tem uma api disso que usava nos AS antigos, não sei se ainda está sendo suportada - chama-se JGroups)
[/quote]
Legal Sergio, não conhecia essa técnica, parece interessante, vou dar uma pesquisada
Eu acredito que mensageira (MOM) não se encaixa no seu cenário não…
Não tenho com dar opinião sem a totalidade dos requisitos…mas no caso…mas vai uma ideia:
sua aplicação disponibiliza um web services simples REST que sera invocado pelos dispositivos moveis para atualização.
Vc agenda um timer na solução nativa no dispositivo movel para ser disparado automaticamente de tempos em tempos ou manualmente para atualização da base local.
Tem que analizar bem tua infra-estrutura e os teus requisitos.
Tem que ter alguma forma de sincronismo de contingência. Se por algum problema de infra-estrutura um PDV ficar 4 horas sem sincronizar com a base principal, tem que ter uma forma de sincronizar em lote o que não foi sincronizado. Mesmo com ActiveMQ/HornetQ você vai ter que desenvolver algo em caso de problemas desse tipo.
É importante ver o número de PDVs, a frequência com que os dados vão ser atualizados e precisam ser sincronizados e o volume de dados.