Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Segurança e Manutenção
Message
De
16/03/2002 07:39:56
 
 
À
15/03/2002 23:30:14
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Divers
Thread ID:
00633637
Message ID:
00633717
Vues:
18
Bom dia, Walney

Desculpe a intromissão, apenas na tentativa de ajudar, quero fazer algum comentário:

>> estou pegando uma carona no assunto, onde acho mais informações estes projetos em 3 camadas ? o que seria isso...

Comentarei somente sobre este ítem: "o que seria isso..."

Aplicações em 3 camadas são aplicações assim:
1ª Camada: Telas da aplicação - podem ser em VFP, ASP, VB, Delphi...
2ª Camada: São componentes onde estão as regras do negócio
3ª Camada: É o banco de dados
OBS. Na 2ª Camada é que está toda a sua programação - a 1ª Camada se limita a fazer chamada aos métodos dos objetos que estão dentro dos componentes da 2ª Camada
Quanto à validação dos dados é uma parte polêmica: tem gente que acha que devem ser validados somente na 2ª Camada possibilitando o funcionamento da aplicação em bancos de dados diferentes sem ter que sair programando diversos tipos de bancos de dados e, fatalmente, facilitando o trabalho de manutenção; tem gente que não abre mão da necessidade de se validar os dados na 3ª Camada para evitar que alguém insira dados desorientadamente no banco.
------------------------------------------
Em outubro de 2001 esse assunto foi, exaustivamente, comentado no FoxBrasil. Copiei, de lá, alguns esclarecimentos postados pelo Carlos Moisés. Dê uma olhada:
(aproveitando, como que eu faço pra deixar um bloco de texto em destaque como vocês fazem? gostaria de ter deixado este bloco entre os tracejados em branco.)
------------------------------------------
"Mensagem postada no FoxBrasil em 28 de outubro de 2001 por Carlos Moisés"
Caro Vidigal e demais,

Entrando um pouco nesta discussão...

Na primeira camada podemos ter aplicativos VFP ou outra linguagem como VB,
por exemplo, além do Internet Explorer (navegador). Além disto, na primeira
camada fica também, conceitualmente, o IIS para instanciar os componentes
ASP, no caso da utilização do navegador como interface com o usuário.

Pois é... mesmo você tendo uma estrutura com dois servidores (um WEB e outro
de negócios/dados), o acesso via WEB usando ASP passaria por seu servidor
WEB (IIS) para chegar ao servidor onde está o MTS gerenciando os componentes
da camada do meio. Para a filosofia, estes serviços WEB oferecidos pelo IIS
seriam, também, serviços da primeira camada.

Na segunda camada ficam apenas os componentes com as regras do negócio,
gerenciados pelo MTS, que recebem as requisições a partir dos módulos da
primeira camada, que podem até ser também DLL. Os módulos da 2ª camada
apenas efetuam chamadas, ou instanciam, componentes da 3ª camada e retornam
conteúdos para a 1ª camada!!!

Já a terceira camada, que você diz estar "embananado", não é só o banco
propriamente dito, quer seja DBC, SQL-Server, Oracle, etc., mas também
componentes COM, que neste caso não precisariam, obrigatoriamente, ser
gerenciados pelo MTS.

São estes componentes da 3ª camada que fazem acesso ao banco de dados,
através da forma que você definir (ADO, OLE-DB, acesso nativo, no caso de um
componente escrito em VFP acessando o banco DBC do VFP, ODBC, etc.).

Repare que, sendo assim, os compoentes da 2ª camada, gerenciados pelo MTS,
não precisam e nem devem saber nada do banco de dados que está na ponta
final do esquema. Eles precisam apenas instanciar objetos da 3ª camada e
utilizar métodos que com certeza efetuarão transações no banco de dados que
estiver em uso.

Assim, num componente da 2ª camada, por exemplo, poderíamos ter, num metódo
qualquer, a seguinte linha de código assim:

oBanco.ExcluirCliente( iClienteId )

onde oBanco seria um objeto instanciado a partir de um componente da 3ª
camada e iClienteId seria o ID exclusivo do cliente que se deseja excluir.

Veja que esta linha de código estaria num médoto de um componente da 2ª
camada e olhando o código desta forma jamais imaginaremos qual será
realmente o banco que estamos utilizando, pois não é de interesse da 2ª
camada se preocupar com o banco.

Desta forma, teríamos um esquema mais ou menos assim (espero que não saia
todo bagunçado)...

[ IE ] [ VFP ] && 1ª camada
| |
[ IIS ] |
|-----------
[ MTS ] && 2ª camada
[ COM de regra de negócios ]
|
[ COM de acesso aos dados ] && 3ª camada
|
[ Banco de Dados ]

E quanto a observação do Lassala em falarmos "n camadas" e não apenas "3
camadas" é que se aprofundarmos mais no tema, chegaremos ao ponto de
discutirmos "arquiteturas estratificadas" e "mapeamento de camadas entre os
estratos".

Desta forma teríamos o conceito implementado em apenas uma máquina
(uniestratificada), duas máquinas (biestratificada), três máquinas
(triestratificada) e "n" máquinas (n-estratificada) e também em tipos de
clientes (máquinas, não pessoas): Cliente Gordo, Cliente Médio, Cliente
Magro. Ampliando a discussão a este nível, teríamos uma misturada só, pois
poderíamos ter partes da camada de negócios até mesmo no cliente (seria uma
validação simples, por exemplo); parte da camada de dados na camada de
negócio (seria um construtor de SQL, por exemplo) e até mesmo uma parte da
camada de negócio no banco de dados (triggers, por exemplo).

Mas vamos deixar isto mais pra frente, pois até eu que estou pesquisando
estas definições ainda estou "embananado" com esta variedade de formatos
:-))


[]s


Carlos Moisés
carlosmoises@uol.com.br
Mossoró-RN
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform