[firebase-br] Duvida

Carlos H. Cantu listas em warmboot.com.br
Qui Mar 25 15:48:13 -03 2010


O conceito de 3 camadas realmente transmite a idéia que o BD seja
usado somente para repositório de dados, mas eu não concordo 100% com
isso, ou então vamos voltar para a era dos "DBFs da vida".

Eu suma, apesar de nunca pessoalmente ter desenvolvido nada em 3
camadas, acredito que mesmo neste modelo, ainda há espaço para ter
algumas coisas implementadas em triggers, procedures e regras de
integridade. Entra aí a perspicácia do desenvolvedor de saber o que
deve ser feito no servidor de aplicação, e o que pode ser mantido no
BD.

[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br

DB> Olá, boa tarde!

DB> Bom, vou explicar um modelo em 3 camadas que implementamos recentemente.

DB> Basicamente um sistema em 3 camadas tem: 
DB> - Camada Client : Interface e interação com o usuário
DB> - Camada de Negôcio (Server)- É a aplicação que provem toda a regra do
DB> sistema, desde um simples calculo de desconto até uma geração completa da
DB> NF-e por exemplo.
DB> - Banco de dados - Nesse modelo N camadas, a BD serve apenas para gravar
DB> informações. Não existe operações no banco como trigger, SP, SF, nada.

DB> Aqui na empresa temos dois ERP, um para pequenas e médias empresa (Firebird)
DB> e outro para grandes empresa (Oracle). O fato de ter 2 sistema é uma
DB> politica antiga que foi implementada, mas enfim.
DB> Com a necessidade da NF-e, precisamos criar os processos para os 2 ERP's....
DB> mas fazer 2 vezes não rola, nossa solução foi:
DB> - Criamos uma aplicação servidora que iria se conectar em QUALQUER banco e
DB> utilizar algumas tabelas padrões para fazer todo o processo da Nfe. E como é
DB> uma aplicação server também iria disponibilizar métodos de consulta,
DB> cancelamento de NF, geração de PDF, etc.
DB> - Criamos uma app Client para que o usuário pudesse visualizar as Nfes, onde
DB> iria se conectar na app server e ter as opções disponibilizadas no server.

DB> Então, tanto o ERP Firebird quanto o ERP Oracle utilizam a mesma solução
DB> para emissão de NF-e, porque quem define para a app Client qual banco está
DB> usando é a app Server. Inclusive tem clientes que estão utilizando
DB> geo-distribuição (server está em SP, e tem o client rodando em manaus)

DB> Agora vou listar alguns problemas que tivemos:
DB> Como utilizamos os drivers nativos do DBExpress, tivemos muita
DB> incompatibilidade de campos ao acessar as base oracle ou firebird. Tipo, se
DB> eu adicionasse um campo do tipo NUMERIC(6) do Oracle, a Query retornava um
DB> tipo BCD, ao tentar usar a base Firebird com o mesmo tipo de campo
DB> NUMBER(6), dava erro de esperando FMTBCD, ou seja, não conseguimos com o
DB> driver nativo utilizar master-detail.
DB> Fora isso, é show de bola!

DB> Daniel Buona
DB> AFL Sistemas
DB> fone/fax : (14) 3405-1199  - Pompéia / SP
DB> www.aflsistemas.com.br
DB> skype:danielbuona.afl 





Mais detalhes sobre a lista de discussão lista