Aplicação web + offline, como fazer?

Olá galera…

Seguinte… estou fazendo o levantamento de um sistema de gerenciamento de consultores/vendedores.
O sistema vai ser desenvolvido para rodar na intranet do cliente (ou internet, ainda não foi decidido), normal… Os usuários acessam o servidor e utilizam… até aí blz.

Porém, os consultores externos também deverão acessar o sistema com seus notebooks. E o grande problema é que, na maioria das vezes, esses consultores estarão em locais sem acesso a internet (zona rural, fazendas, etc).

Como proceder, então?

Qual a melhor maneira de eu fazer uma versão/módulo offline de minha aplicação+bd para instalar facilmente nestes notebooks?
Também aceito idéias para fazer a sincronia do banco de dados… :wink:

De preferência alguma maneira que não envolva swing…

Valew…

Pra não ficar parecendo que veio ao GUJ buscar consultoria gratuita vc pode comecar dizendo como pretende fazer, então o povo pode discutir emcima da sua solução.

Minha opinião é a seguinte:

Se os caras precisariam acessar o sistema mas não possuem internet, eles precisam de uma versão identica do sistema que roda no servidor para trabalhar offline.

Você poderia exportar os dados do banco offline de um consultor e criar uma área no sistema online para importação. Então você lê estes dados e faz um merge com o banco online.

Ou você pode configurar uma rotina, onde ao se conectar com a internet e acessar o sistema, o consultor possa replicar seus dados para o banco online.
Veja mais em http://dev.mysql.com/doc/refman/4.1/pt/replication.html

:slight_smile:

biro

É isto que eu estou imaginando mesmo…
Mas alguém conhece alguma tecnologia que facilite essa instalação/atualização da aplicação para os outros computadores?
Como se fosse um instalador mesmo (tipow aqueles .msi da MS…), que consiga instalar o conteiner, o bd e publicar a aplicação nos notebooks dos caras, entendeu?

Eu pensei até em gravar essas informações “offlined” em arquivos xml, ou algo assim… pra não precisar instalar o MySQL nos notes e tals…
Mas é isso que eu queria… tipo, ideias mesmo… alguma maneira que o próprio cliente consiga instalar essa aplicação sozinho, sem precisar que eu vá lá, toda vez, pra instalar o banco, o tomcat, etc nos notebooks dos vendedores…

Eu andei olhando aquele WebStart, mas me parece que é meio voltado para swing… e tbm não ajuda no controle do BD…

Obrigado,

Qual o seu problema de usar o swing? vc pode usar o Derby embedded para o banco.
não vai precisar instalar um conteiner pros cara usarem o sistema.

[]'s

Hmm… acho q estou achando o caminho…

Pelo que eu li, o Jetty pode ser embutido e iniciado pela aplicação…
Dae, talvez usando o HSQL eu nem precise me preocupar com a instalação do banco…

Dessa maneira, o único pré-requisito ficaria a cargo da jre. Certo?

O único porem seria a sincronia do BD Java com o MySQL do servidor… eu teria que fazê-la no braço, via código?

Vlws

Voce parece ter total aversão à swing, awt e outros… usando alguma solucao desktop com java webstart (ja fiz, é MUITO legal a maneira como funciona, atualiza os clients e tudo mais) voce poderia, como ja indicaram, usar algum db embedded, como o hsqldb ou o derby mesmo e tendo o sistema na internet/intranet fazer algum esquema para replicar os dados entre os sistemas. acho só que é um pouco mais complicado do que você está colocando ai…

Admito… tenho bastante aversão mesmo a estas interfaces graficas… (antes que me cruscifiquem, não estou condenando ou criticando elas… é apenas questão de preferência pessoal!)

Pelo que andei lendo, o web start é realmente bacana… seria legal se eu conseguisse algo similar para manter as versões de meus wars…

Sobre estes bancos embeddeds… alguém os utiliza em ambiente de produção, para bases com muitos registros, pra me dar uma referência?
Pergunto pq todas as vezes q usei o HSQL foi pra “aplicaçõezinhas” demos e tals… com o mínimo de registros e tabelas.

E se assim for, eu teria q usar ele (HSQL) no meu módulo offline, e usar um Postgre/Mysql no servidor… Dae no meio disso, vai ser um perrengue pra sincronizar ambos…

abs

Já usei HSQLDB mas bem pouco, não sei como ele suportaria uma aplicação como a que você está para desenvolver.

Pensa bem, você pode ter em desktop (seja em swing, .net, ou o que voce quiser usar para essa parte) apenas a parte que importa aos vendedores externos e no HSQLDB tambem apenas os registros que interessem a esse modulo.

O problema maior está na replicação de dados, pode te dar alguns problemas se não pensar direito em como fazer.

Carinha, tem o google gears, derrepente pode ser uma alternativa.

http://code.google.com/intl/pt-BR/apis/gears/

Abraço.

Bacana essa google gears… vou dar uma testada nele…

Tem até uma espécie de banco de dados local… só q vc tem q criar as tabelas locais via JS…
Não entendi ainda como ele faz a sincronia desses dados só…