none
Duvida em aplicação WEB RRS feed

  • 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 ?

    quinta-feira, 4 de novembro de 2010 01:27

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

     

     

    terça-feira, 14 de dezembro de 2010 20:45

Todas as Respostas

  • Cara isso é meio complicado acho que o mais correto seria vc tentar trabalhar com loadbalance entre os server.
    quinta-feira, 4 de novembro de 2010 10:58
  • Prezado(a),

    Estou migrando seu post para o fórum correto.

    Por favor, das próximas vezes que for postar alguma dúvida referente a esse assunto, poste por lá.

    Obrigado.
    quinta-feira, 4 de novembro de 2010 10:58
  • como seria esse loadbalance ?
    terça-feira, 16 de novembro de 2010 23:12
  • 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

     

     

    terça-feira, 14 de dezembro de 2010 20:45
  • 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.

    quarta-feira, 5 de janeiro de 2011 00:00
  • ?????
    sábado, 8 de janeiro de 2011 20:58
  • 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
    quinta-feira, 13 de janeiro de 2011 17:01