MULTICAMADAS
Preciso de uma dica de como desenvolver uma aplicacao multicamadas.
Este sistema é para uma rede de supermercados, este precisa de:
Para cada filial:
- um sistema frente de caixa, q possa trabalhar online e offline
- um sistema sevidor
- um sistema para controle de deposito/estoque
estes precisam atualizar uma outra base de dados q fica na matriz, via net
Qual o melhor caminho a percorrer
e quais sao as ferramentas mais seguras para esse desenvolvimento
Obs: ja tenho um sistema rodando em uma das lojas, mas este trabalha com banco local.
Jose Correa
Curtidas 0
Respostas
Rodrigo Mourão
13/02/2009
Olá Amigo !!
E muito complicado dar uma sugestão para um projeto sem conhecer todo que envolve o mesmo pois estaremos aqui lhe dando o caminho das pedras e isto e muito responsabilidade.
Para poder lher sugerir algo eu precisaria saber como as filiais se comunicam com a empresa, se é que se comunicam. Se é ful time, se vai querer o sistema em Real Time, qual o link da Matriz e etc. Pelo exposto multicamadas não seria o ideal e vou lhe explicar por que.
Muita gente faz confusão por achar que se tenho filiais ligadas à matriz então tenho multi- camadas e não é bem assim. No sistema em três camadas todas as regras estao numa aplicação a parte, que tem que implemetar uma inteface para que possa ser acessada por outras aplicações feitas ou não com Delphi.
No seu caso como trabalha com mercado o seu sistema não poderia deiaxr de funcionar caso a rede ou internet caia, correto. Então eu falo com propriedade pois meu ramo é comercial com foco em venda direta a consumidor, PDV e etc. Nesse cenário o sistema funciona da seguinte maneira. Temos uma base local em cada mercado onde os Frente de Loja de conectam e realizam a venda. Cada mercado tem seu estoque e claro todos se falam com a Matriz. Esse se falar com a matriz e feito via internet e as filiais reportam a matriz uma vez ao dia seus estoques.
Com isso não temos um sistema real time, e nem precisamos pois num mercado não se precisa fazer check de estoque para vender pois o produto se esta sendo passado no caixa e porque tem em estoque.
Entao, no meu ponto de vista seria isso: Aplicação Cliente Server nas filiais cada uma com sua base de dados em tempo real. Um vez ao dia os dados são enviado para o banco de dados da matriz que ao ser atualizado terá os estoques de cada filial e deposito sabendo assim o que falta em cada um e o que sobre.
A comunicação da matriz com a filial essa sim em 3 camadas so para persistir pois poderá ser fieta com DBX mesmo tomando os devidos cuidados com performance. PAra isso na matriz você terá que ter um IpFixo para conectar ou usar um NoIp Por exemplo. Bem esta e uma opção de arquitetura. Um segunda possibilidade é criar o sitema da matriz web e assim atualiza na web.
Segue uma imagem que vale mais que 1000 palavras rsrsrsrsrs
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
E muito complicado dar uma sugestão para um projeto sem conhecer todo que envolve o mesmo pois estaremos aqui lhe dando o caminho das pedras e isto e muito responsabilidade.
Para poder lher sugerir algo eu precisaria saber como as filiais se comunicam com a empresa, se é que se comunicam. Se é ful time, se vai querer o sistema em Real Time, qual o link da Matriz e etc. Pelo exposto multicamadas não seria o ideal e vou lhe explicar por que.
Muita gente faz confusão por achar que se tenho filiais ligadas à matriz então tenho multi- camadas e não é bem assim. No sistema em três camadas todas as regras estao numa aplicação a parte, que tem que implemetar uma inteface para que possa ser acessada por outras aplicações feitas ou não com Delphi.
No seu caso como trabalha com mercado o seu sistema não poderia deiaxr de funcionar caso a rede ou internet caia, correto. Então eu falo com propriedade pois meu ramo é comercial com foco em venda direta a consumidor, PDV e etc. Nesse cenário o sistema funciona da seguinte maneira. Temos uma base local em cada mercado onde os Frente de Loja de conectam e realizam a venda. Cada mercado tem seu estoque e claro todos se falam com a Matriz. Esse se falar com a matriz e feito via internet e as filiais reportam a matriz uma vez ao dia seus estoques.
Com isso não temos um sistema real time, e nem precisamos pois num mercado não se precisa fazer check de estoque para vender pois o produto se esta sendo passado no caixa e porque tem em estoque.
Entao, no meu ponto de vista seria isso: Aplicação Cliente Server nas filiais cada uma com sua base de dados em tempo real. Um vez ao dia os dados são enviado para o banco de dados da matriz que ao ser atualizado terá os estoques de cada filial e deposito sabendo assim o que falta em cada um e o que sobre.
A comunicação da matriz com a filial essa sim em 3 camadas so para persistir pois poderá ser fieta com DBX mesmo tomando os devidos cuidados com performance. PAra isso na matriz você terá que ter um IpFixo para conectar ou usar um NoIp Por exemplo. Bem esta e uma opção de arquitetura. Um segunda possibilidade é criar o sitema da matriz web e assim atualiza na web.
Segue uma imagem que vale mais que 1000 palavras rsrsrsrsrs
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Jose Correa
13/02/2009
olá !
muito bem, é isso mesmo, ja estou entendendo.
Perfeitamente, a atualizacao da base de dados da matriz nao precisa ser atualizada em tempo real, mesmo porque a conexao com as filiais nao é assim tao boa.
E no caso da base de dados das filiais.
Vou ter um sistema de cadastro e manutencao de produtos, emissao de etiquetas, etc. Em um micro q fica no deposito.
Outro sistema q emite alguns relatorios, posicao de estoque local, supervisao de caixa, e cadastro de pedidos,etc.
E um frente de caixa.
Se caso a rede local cair por exemplo, os sistemas de frente de caixa nao podem parar.
Existe uma forma segura de atualizar os dados localmente até q a conexao da rede local volte, e o sistema possa
automaticamente atualizar as vendas no servidor
Quais componentes, e como deve ser feito para q isto funcione?
Tenho q ter tabelas de um banco em cada pdv?
Um arquivo xml, pode resolver?
GOSTEI 0
Rodrigo Mourão
13/02/2009
Olá José!
O que uso nos meus PDV é o seguinte! Quando ele é acionado pela manhã e é emitida a leitura X eu atualizo uma base local com XML no formato do Client Data Set mesmo. Com os Dados do produto, Código Barra, Descrição, Preço.
Na hora da venda vou lançado os itens para a impressora e lançando num CDS, no final de cada venda eu verifico a conexão com banco, se estiver de pé, eu dou um Apply Update se não simplesmente faço: CDS.SaveToXML (ddmmyyyyhhmmss.XML).
Com isso se eu não tenho acesso à base eu salvo a venda em XML. Na próxima venda se a conexão estiver estabelecida novamente então chamo uma rotina que varre esta pasta e aplica a venda do XML no banco !
Use o Client Data Set pois ele já salva em XMl pra nós e isso facilita muito ! Com ele basta ter um XMl com os produtos para poder ler o preço e no caso de falha da rede ele salva um XML pra você.Isso funciona nos meus PDV e é bem simples de ser feito !!!!
Abs !!!Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
O que uso nos meus PDV é o seguinte! Quando ele é acionado pela manhã e é emitida a leitura X eu atualizo uma base local com XML no formato do Client Data Set mesmo. Com os Dados do produto, Código Barra, Descrição, Preço.
Na hora da venda vou lançado os itens para a impressora e lançando num CDS, no final de cada venda eu verifico a conexão com banco, se estiver de pé, eu dou um Apply Update se não simplesmente faço: CDS.SaveToXML (ddmmyyyyhhmmss.XML).
Com isso se eu não tenho acesso à base eu salvo a venda em XML. Na próxima venda se a conexão estiver estabelecida novamente então chamo uma rotina que varre esta pasta e aplica a venda do XML no banco !
Use o Client Data Set pois ele já salva em XMl pra nós e isso facilita muito ! Com ele basta ter um XMl com os produtos para poder ler o preço e no caso de falha da rede ele salva um XML pra você.Isso funciona nos meus PDV e é bem simples de ser feito !!!!
Abs !!!Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Rodrigo Mourão
13/02/2009
Olá Amigo, há mais alguma dúvida ???
Podemos encerrar o chamado ????
Estamos no aguardo, obrigado !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Podemos encerrar o chamado ????
Estamos no aguardo, obrigado !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0