Usuário com melhor resposta
Duvida em aplicação WEB

Pergunta
-
Olá
Pretendo fazer um ERP on-line.
Porem estou com um problema.
No cliente a única coisa local que terá será o PDV.
Mas se a internet cair, eu preciso que ele consiga trabalhar.
O meu banco de dados será apenas um, onde conterá todas as informações de todos os clientes, e esse BD ficará em um DataCenter.
Ai caso a internet caia, terei que fazer algum tipo de replicação.
Mas a dúvida é: Eu vou replicar no computador do cliente, o meu banco de dados centralizado que contem as informações de todos os cliente ? Ou tem como eu só replicar a parte desse banco que contem só as informações desse cliente ?
- Movido Seilor Bonancio Junior quinta-feira, 4 de novembro de 2010 10:59 (De:ASP.NET)
Respostas
-
Henrique,
Você tem algumas soluções.
1) Como o Seilor indicou, você pode ter um servidor configurado para que quando um caia o outro assuma o controle. Horas um atende a requisição, horas o outro atende. Neste caso é necessário verificar onde a aplicação vai ficar e se o servidor em questão permite isso. Mesmo assim se a Internet no cliente estiver fora do ar, seu banco também estará.
2) Uma outra alternativa seria criar um aplicativo (ASP.NET ou não) e deixá-lo rodando LOCALMENTE. Este apontaria para um banco de dados LOCAL com uma réplica do seu banco online. Vide:
http://www.sqldev.org/sql-server-replication/onlineoffline-application-that-must-synchronize-with-sql-2005-75347.shtml
Dizem que é o mais simples de implementar....
3) Utilizar o Microsoft Sync Framework e fazer o sincronismo você mesmo. Veja:http://www.sqldev.org/sql-server-replication/onlineoffline-application-that-must-synchronize-with-sql-2005-75347.shtml
4) Utilizar o SQL CE na aplicação cliente e sincronizar com o banco na WEB. Apesar do CE ser criado para mobile, ele também funciona em aplicações windows.
5) Utilizar o Ultralite (da sybase) é um pequeno banco de dados para uso em mobile ou aplicações off-line. Ele sincroniza com SQL Server, Sybase, etc (quase tudo que é banco) diretamente (precisa ter uma máquina com um serviço chamado mobilink) e você informa se os dados de uma determinada tabela deve estar apenas no servidor e fazer uma réplica (download only), se a tabela deve estar apenas na aplicação offline (upload only) ou se deve ser feito o sincronismo. Seria algo parecido com o SQL CE em termos de solução.
Os dois últimos testei apenas com mobile mesmo. O ultralite é muito bom e na documentação indica que pode ser usado num aplicativo normal.
Um ponto importante é que se você corre o risco de ter mais de um ponto (PDV, cliente, aplicativo) sincronizando com o mesmo servidor, suas chaves primárias deverão ser GUID (existe o pool de chaves, mas assim é mais fácil).
Att,
Ricardo
- Sugerido como Resposta Carlos Feitosa quinta-feira, 20 de janeiro de 2011 22:43
- Marcado como Resposta Wagner dos Santos VasconcellosModerator sexta-feira, 25 de março de 2011 02:48
Todas as Respostas
-
-
-
-
Henrique,
Você tem algumas soluções.
1) Como o Seilor indicou, você pode ter um servidor configurado para que quando um caia o outro assuma o controle. Horas um atende a requisição, horas o outro atende. Neste caso é necessário verificar onde a aplicação vai ficar e se o servidor em questão permite isso. Mesmo assim se a Internet no cliente estiver fora do ar, seu banco também estará.
2) Uma outra alternativa seria criar um aplicativo (ASP.NET ou não) e deixá-lo rodando LOCALMENTE. Este apontaria para um banco de dados LOCAL com uma réplica do seu banco online. Vide:
http://www.sqldev.org/sql-server-replication/onlineoffline-application-that-must-synchronize-with-sql-2005-75347.shtml
Dizem que é o mais simples de implementar....
3) Utilizar o Microsoft Sync Framework e fazer o sincronismo você mesmo. Veja:http://www.sqldev.org/sql-server-replication/onlineoffline-application-that-must-synchronize-with-sql-2005-75347.shtml
4) Utilizar o SQL CE na aplicação cliente e sincronizar com o banco na WEB. Apesar do CE ser criado para mobile, ele também funciona em aplicações windows.
5) Utilizar o Ultralite (da sybase) é um pequeno banco de dados para uso em mobile ou aplicações off-line. Ele sincroniza com SQL Server, Sybase, etc (quase tudo que é banco) diretamente (precisa ter uma máquina com um serviço chamado mobilink) e você informa se os dados de uma determinada tabela deve estar apenas no servidor e fazer uma réplica (download only), se a tabela deve estar apenas na aplicação offline (upload only) ou se deve ser feito o sincronismo. Seria algo parecido com o SQL CE em termos de solução.
Os dois últimos testei apenas com mobile mesmo. O ultralite é muito bom e na documentação indica que pode ser usado num aplicativo normal.
Um ponto importante é que se você corre o risco de ter mais de um ponto (PDV, cliente, aplicativo) sincronizando com o mesmo servidor, suas chaves primárias deverão ser GUID (existe o pool de chaves, mas assim é mais fácil).
Att,
Ricardo
- Sugerido como Resposta Carlos Feitosa quinta-feira, 20 de janeiro de 2011 22:43
- Marcado como Resposta Wagner dos Santos VasconcellosModerator sexta-feira, 25 de março de 2011 02:48
-
Provavelmente terei vários PDVs. Como eu faço ?
Pois, tenho o BD em um datacenter, o site do ERP está lá. Ai no cliente ele acessa o Site do ERP. E no cliente tem os PDVs que fazem as vendas e tudo mais (isso é desktop). Teoricamente estaria salvando tudo no datacenter.
Ai a internet cai. Desta forma as vendas e tudo o que roda local para, mas isso não pode acontecer. Então as coisas devem funcionar local. E desta forma o BD tem que estar local.
Ai farão vendas durante 2hs sem internet, ai a internet volta, e o BD do datacenter está desatualizado, ai já irá dar um grande problema.
Qndo a internet volta, os 2 BD devem ficar igual para voltar a rodar em cima do DataCenter.
E é meio confuso, ainda estou meio perdido nisso.
Outra coisa, essas NFe, ou NF Paulista, a cada compra que eu faço conecta na internet ou isso pode ser feito no final do dia ?
Detalhe, talvez irei usar o PostGree como BD.
Essa duvida toda é o que está me impedindo de começar a migrar a ferramenta que já tenho para Web.
E mais uma coisa, pretendo ter um único BD para X empresas, pois assim é mais fácil para gerenciar tudo eu acho, posso estar errado.
-
-
Kra do jeito q vc ta pensando em fazer acho meio impossível rodar off-line. Uma forma bacana seria usando Silverlight, o silverlight consegue atualizar o mesmo ate possui classes e eventos para informar quando a conexao é perdida ou conectada.
O silverlight trabalha possibilita armazenamento de dados locais, vc no caso pode gravar os produtos e ir salvando os objetos das vendas e depois subir para o servidor quando a conexao for estabelecida.
Ja pensou nesta possíbilidade?
1000ton - MSN: milton.filho@msn.com