Sincronização de Dados - Aplicação WEB com Desktop

4 respostas
DeGuedes

Galera to com uma duvida agora…

Tenho um sistema WEB para emissão de pedidos para representantes, o problema é que alguns lugares não tem conexão com a internet, impossibilitando o representante a fazer o pedido na hora. Então resolvi fazer um sistema Offline, desktop.

A idéia é simples, o representante faz o pedido no sistema desktop, e quando tiver conexão ele envia isso via webService… Porém, me surgiu uma dúvida na sincronização dos dados. Ex: no sistema web, foi alterado o endereço do cliente X, logo, o sistema Desktop deverá receber essa informação. Aí que eu não sei como fazer… me surgiram 2 idéias:

1 - A cada alteração no sistema web é gerado um log com numero de revisão (mesmo estilo que subversion), e aí fazer o controle em cima desse numero.
Ex: sistema desktop esta atualizado até a revisao 104… aí ele busca tudo com id maior que 104 para atualizar…

2 - Verificação de todas as tabelas - Ao iniciar a sincronia de dados, o sistema olha registro por registro em busca de alterações… (inviável, pois, demoraria muito tempo)…

Alguém ja fez algo parecido? Ou tem ideia melhor?

vlw

4 Respostas

romarcio

Eu usaria Java Message Service (JMS).

Você teria uma alteração qualquer no sistema web. Em cada alteração, você gera uma mensagem e envia para um Tópico, ou uma Fila, dependendo o numero de consumidores.

Quando a aplicação desktop conectar a internet, ela faz também uma conexão a sua fila ou tópico, assim as mensagens são recebidas e a base local é atualizada.

DeGuedes

hum… dei uma pesquisada e achei bem interessante…

tu nao teria um exemplo aí talvez?

vlw

romarcio

DeGuedes:
hum… dei uma pesquisada e achei bem interessante…

tu nao teria um exemplo aí talvez?

vlw

Da uma procurada no google que você vai encontrar bastante material sobre o assunto.

Um bom livro: O?REILLY, Java Message Service, Second Edition by Mark Richards, Richard Monson-Haefel, and David A. Chappell.
Pagina da API na Oracle: http://www.oracle.com/technetwork/java/jms/index.html

Hebert_Coelho

Só tome cuidado com relação a performance. Fazer um update em uma tabela pode custar mais do que fazer um delete e depois um insert.

O que você poderia fazer era caso a linha 33 foi atualizada, apaga e depois insere novamente. [=

Criado 17 de novembro de 2012
Ultima resposta 18 de nov. de 2012
Respostas 4
Participantes 3