Buscar

Criando um aplicativo multicamadas - 3ª parte

nome

Eder Rueda Fernandes

Colunista ainda sem descrição. Caro colunista, por favor envie-nos sua descrição.

Olá pessoal, aqui estou de novo!
Conforme eu disse essa é a ultima parte do nosso artigo sobre a
criação de um aplicativo que trabalha com multicamadas.
Nesta ultima parte estarei mostrando os conceitos teóricos do que
fizémos até aqui.
Agradeço a todos que acompanharam o artigo até aqui e os que
deixaram seus comentários!
Então.....vamos lá..........

Artigo - 1ª Parte

Sobre a parte do banco de dados, não precisa nem dizer, neh?
Simplesmente criamos um "link" no interbase para o arquivo employee.gdb.
Vamos começar pela criação do nosso servidor de aplicações.
Quando nós criamos um Remote Data Module, nós estavamos criando
exatamente um data module, para acesso remoto. Como assim?
Por meio da tecnologia COM(artigo em breve!) nós podemos acessar
de forma remota ou local todos os recursos/serviços que o aplicativo
permite/disponibiliza. (No caso o Data Module).
O serviço que estavamos disponibilizando por meio deste Remote
Data Module era uma conexão com o banco de dados, usando o DBEXPRESS.
Assim como fizemos, acrescentamos o componente SQLCONNECTION(que faz a
conexão com o banco de dados!(SOMENTE BANCO DE DADOS, e não
BASE DE DADOS)).
Logo após acrescentamos o SQLDATASET(Responsável por executar por exemplo
SQL´s (criação de parametros e por ai a fora...)), que irá selecionar os dados na tabela customer.
É importante considerar que se fizéssemos a conexão apenas com estes itens e 1 datasource teríamos um banco de dados unidirecional.(segue somente um sentido)(façam um exemplo usando somente estes componentes e vejam o que acontece....)
Para isso não ocorrer(a navegação do banco unidirecional) acrescentamos o DataSetProvider, que fica com uma "ponta" conectado ao SQLDATASET e a outra com o ClientDataSet que deixamos lá no aplicativo cliente.
Lembrando também que configuramos o form para mostrar quando estivessemos com
o servidor em uso! Em seguida executamos a nossa aplicação, que criou um registro no windows e se tornou ativa para conexões !

Artigo - 2ª Parte

Já no aplicativo cliente, usamos o DCOM para "chamar" o nosso servidor de aplicações.
É este componente que cria uma instância do servidor em nossa máquina(como se ele
estivesse local) e nos permite usar os componentes/serviços do nosso servidor de aplcações.
Então nós configuramos de modo que a conexão fosse local(localhost) e que ele conectaria com o nosso servidor de aplicações coServidor1.
Apesar que se tivéssemos 10 servidores de aplicação, poderiamos selecionar qualquer um dos 10 !
Acrescentamos depois disso o ClientDataSet que irá passar pelo DCOM e chamar o DATASETPROVIDER.
É interessante mencionar que toda vez que executamos uma SQL pelo ClientDataSet,
ele passa pelo DCOM, depois pelo DataSetProvider e depois chega no SQLDATASET e depois a informação solicitada retorna pelo caminho contrário.(o que faz com que a conexão não seja unidirecional).
O ClientDataSet assim que recebe as informações solicitadas, ele coloca todas estas informações na memória e trabalha com elas em memória até que o comando ApplyUpdates seja executado!
Neste momento ele verifica o que foi modificado e faz a atualização!
O uso deste componente é muito interessante pois ele pode trabalhar com xml, tbm!
Por exemplo poderiamos fazer uma rotina que assim que o comando ApplyUpdates é executado ele verifica a conexão com o banco. E se o banco estiver off-line ele salva as informações em um arquivo xml.(Estou pensando seriamente em escrever um artigo sobre isso!)
Quando iniciassemos o aplicativo ele verificaria se o banco de dados está disponivel, e se estiver...
e existir o arquivo xml ele passa a atualizar as informações no banco!
Em outras palavras... estamos criando um recurso que mesmo que banco de dados esteja offline o usuario cliente continua trabalhando com informações.
Toda vez que ele salva as atualizações, mesmo que o banco de dados não esteja disponivel ele consegue salvar as modificações e nem percebe que salvou local.
É claro que há diversos elementos a serem analisados para a criação de um recurso como esse.
Mas é muito interessante, e há muito o que ser explorado!
Bem... finalmente nas nossas configurações... conectamos o DataSource ao ClientDataSet, e o DBNavigator/DBGrid ao DataSource e nossa aplicação já funciona!
Temos uma apliação 3 Camadas. Abaixo segue um diagrama de como definimos 3 camadas.


E finalmente finalizamos!
Pessoal.... espero que vocês tenham aproveitado bastante as informações que coloquei a disposição de vocês. É verdade que ainda há muita informação para esgotarmos o assunto,
mas procurei de maneira simples e prática colocarmos as principais informações para podermos desenvolver aplicações que trabalhe com multicamadas.
Parabéns e meus agradecimentos aos que leram todos os 3 artigos!

Como sempre estou disponível para duvidas e esclarecimentos sobre todas estas informações.
eder_fernandes@hotmail.com

E até a próxima!

Éder R. Fernandes

Publicidade

Vote no artigo




Quantidade de votos: 1 voto
Aceitação: 60%


Detalhes do artigo

Categoria: Banco de dados
Adicionado dia: 09/04/05
Por: Eder Rueda Fernandes
Visualizado: 35778 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009