Sei sulla pagina 1di 9

Criando um aplicativo multicamadas - 1 parte (com imagens)

Ol pessoal, meu nome der e este meu primeiro artigo sobre a criao de aplicativos multicamadas. Na verdade teremos daqui pra frente uma srie de 3 artigos descrevendo passo-a-passo como criar uma aplicao 3 camadas. Na primeira e segunda parte consideraremos todo o desenvolvimento prtico, e iremos concluir(3 parte) com uma abordagem terica de todo o processo utilizado para o desenvolvimento. Nesta primeira parte ns iremos configurar o nosso banco de dados, como j mencionado o Interbase, e desenvolveremos o aplicativo que vai "rodar" como nosso servidor de aplicaes.Teremos pela frente um "bocado" de informaes, portanto pacincia e mos a obra! rsrsrs Ento.... vamos l.... No caso a verso do interbase que estou usando para este artigo o 6.5 e do Delphi o 7.0(mas serve no 2005 (for win32) tbm). No caso do interbase prefervel que se faa a instalao completa por que usaremos o banco employee.gdb para os nossos exemplos, ou para os que conhecem bem do Interbase pode ser outro. Inicialmente vamos abrir o nosso IBCONSOLE .... (Iniciar-> Programas -> Interbase -> IBConsole)

Dentro do IBConsole teremos o item LocalServer.... 2 cliques e certamente ele vai pedir para colocarmos o User Name e o password, e ns colocaremos: SYSDBA para o user name e masterkey para o password. O prximo passo clicarmos no '+' em LocalServer e selecionar DataBases.

E vamos registrar o nosso banco: Menu DataBase -> Register. Vamos primeiro localizar a nossa data base, que no meu caso(WinXPPROSP2) fica em: C:\Arquivos de programas\Borland\InterBase\examples\Database\employee.gdb Depois clicamos em ok e ..... registramos o banco! Podemos fechar o IBConsole depois disso.

Bem... agora com o banco de dados ok, vamos desenvolver o nosso servidor de aplicaes. Vamos abrir o Delphi, e vamos em File->New->Application. Acrescentamos um Label (Fica na aba Standard) e no caption do label colocamos: Servidor de Aplicaes Ativo. E reduzimos o form para ele ficar proporcional em relao ao label. Faremos isso para saber quando o nosso servidor de aplicaes estiver ativo. O prximo passo inserirmos um Remote Data Module: File->New->Other->Multitier->Remote Data Module. Na CoClassName colocaremos coServidor1 e deixamos o resto como fica. Instancing: Multiple Instance e Threading Model: Apartment.

E agora vamos inserir os componentes que faro a conexo com o banco. Usaremos o DBEXPRESS como conexo! Explicaremos em outro artigo(parte terica) por que temos enormes vantagens ao usar o DBEXPRESS (ClientDataSet e cia ltda).{DATASNAP} A forma mais facil de acrescentarmos os componentes usando o Component List... para no ficarmos procurando e procurando por algum componente.

Vamos em View->Component List. (Lembrando que a janela ativa deve ser do Remote Data Module (coServidor1)) e digitamos tsqlconnection e automaticamente ele aparece na lista. E clicamos em add to form. Faremos o mesmo para tsqldataset e tdatasetprovider.

Vamos dar 2 cliques no componente SQLConnection1 e no menu a esquerda(Connection Name) clicamos em IBConnection.No menu do lado direito(Connection Settings) colocaremos no data base o endereo do nosso arquivo gdb.No meu caso: C:\Arquivos de Programas\Borland\InterBase\examples\Database\employee.gdb Na parte superior desta janela haver um boto de check(aquela seta de correto) e ele vai abrir a tela de login do banco, pedindo user name e password e colocaremos SYSDBA e masterkey e clicamos em ok. E se tivermos feito tudo correto at aqui ele dar uma mensagem dizendo que a conexo foi executada com sucesso. Clicamos em Ok nesta tela e na outra de configurao do SQLConnection1. Ainda no SQLConnection1 mudaremos a propriedade LoginPrompt para False para que ele no venha pedir senha toda hora que fizermos a conexo com o banco. Tendo a conexo com o banco pronta vamos para o SQLDataSet1. Mudaremos a propriedade SQLConnection para SQLConnection1, e na propriedade CommandText colocaremos a sql... Select * from Customer e clicamos em ok. E iremos configurar o ltimo componente, o DataSetProvider1. Colocaremos a propriedade DataSet para SQLDataSet1.

E compilamos o nosso projeto para ele ser registrado, afinal ele usa toda aquela histria de componentes COM, mas isso j histria para um outro artigo.(Mais informaes pra vcs, aguardem... conforme diz nosso amigo Silvio Santos). Salvamos o nosso projeto e isso ai.... dificil?! O nosso servidor de aplicaes j est pronto! Se vocs seguiram tudo a risca.... nosso servidor de aplicaes j existe e est registrado em nosso micro. No prximo artigo vamos ver como criar o nosso cliente e usar o nosso application server. Um abrao a todos vocs e bons estudos. Espero que tenham gostado e tirado bastante proveito deste primeiro artigo. Ah... aos que quiserem eu posso fornecer um arquivo doc com todos os printscreen dos passos acima e coloco-me a disposio para quaisquer dvidas com respeito ao que vimos. (eder_fernandes@hotmail.com) Agora sim... at mais pessoal!

der R. Fernandes

Ol pessoal, tudo tranquilo com vocs??? Neste segundo artigo veremos como criar o nosso cliente para usar o nosso servidor de aplicaes que criamos no artigo anterior. Tudo pronto com nosso servidor de aplicaes, ento vamos ao nosso aplicativo cliente.... Dentro do Delphi vamos em File->New->Application. Para conectarmos ao nosso servidor de aplicaes temos alguns componentes como o Socket Connection/DCOM e podemos usar o ConnectionBroker... mas para fins de estudo usaremos apenas o DCOM.(Vou abordar em outro artigo como usar os outros 2!) Vamos em View->Component List e digitamos TDComConnection. E depois clicamos em Add to form. E faremos o mesmo para TClientDataSet e para TDataSource e TDBGrid e TDBNavigator. Selecionando o nosso componente DCOMConnection mudaremos a propriedade ComputerName para localhost(ou para o ip/nome do micro que "roda" o nosso servidor de aplicaes) e mudaremos a propriedade ServerName para o nosso servidor que ir aparecer na lista(coServidor1).

Mudamos a propriedade Connected para True e veremos que o nosso form criado l no servidor ir abrir!

NO FECHEM! POR QUE SENO "MATAREMOS A CONEXO". Vamos agora para o ClientDataSet1 e mudaremos a propriedade RemoteServer para o DCOMConnection1 e a propriedade ProviderName para o DataSetProvider criado l no Remote Data Module do nosso servidor de aplicaes.. Colocaremos a propriedade Active para True e passamos para o componente DataSource1.

Modificaremos a propriedade DataSet para ClientDataSet1.

Agora no grid mudaremos a propriedade datasource para DataSource1 e voil!

J estamos conectados com o nosso servidor de aplicaes e ele por sua vez conectado no banco de dados. 3 CAMADAS!

O ltimo passo mudarmos a propriedade DataSource do nosso DBNavigator1 para DataSource1 e podemos rodar a nossa aplicao cliente! Viu s pessoal? Trabalhar com multicamadas no nenhum bicho de sete cabeas. No prximo artigo veremos os conceitos tericos de tudo o que fizemos desde o primeiro artigo, ok? Assim como no outro artigo coloco-me a disposio para esclarecer duvidas e mandar um arquivo doc com todos os printscreen.... eder_fernandes@hotmail.com Um abrao a todos vocs e.... bons estudos! der R. Fernandes

Ol pessoal, aqui estou de novo! Conforme eu disse essa a ultima parte do nosso artigo sobre a criao de um aplicativo que trabalha com multicamadas. Nesta ultima parte estarei mostrando os conceitos tericos do que fizmos at aqui. Agradeo a todos que acompanharam o artigo at aqui e os que deixaram seus comentrios! Ento.....vamos l.......... Artigo - 1 Parte Sobre a parte do banco de dados, no precisa nem dizer, neh? Simplesmente criamos um "link" no interbase para o arquivo employee.gdb. Vamos comear pela criao do nosso servidor de aplicaes. Quando ns criamos um Remote Data Module, ns estavamos criando exatamente um data module, para acesso remoto. Como assim? Por meio da tecnologia COM(artigo em breve!) ns podemos acessar de forma remota ou local todos os recursos/servios que o aplicativo permite/disponibiliza. (No caso o Data Module). O servio que estavamos disponibilizando por meio deste Remote Data Module era uma conexo com o banco de dados, usando o DBEXPRESS. Assim como fizemos, acrescentamos o componente SQLCONNECTION(que faz a conexo com o banco de dados!(SOMENTE BANCO DE DADOS, e no BASE DE DADOS)). Logo aps acrescentamos o SQLDATASET(Responsvel por executar por exemplo SQLs (criao de parametros e por ai a fora...)), que ir selecionar os dados na tabela customer. importante considerar que se fizssemos a conexo apenas com estes itens e 1 datasource teramos um banco de dados unidirecional.(segue somente um sentido)(faam um exemplo usando somente estes componentes e vejam o que acontece....) Para isso no ocorrer(a navegao 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 tambm que configuramos o form para mostrar quando estivessemos com o servidor em uso! Em seguida executamos a nossa aplicao, que criou um registro no windows e se tornou ativa para conexes ! Artigo - 2 Parte J no aplicativo cliente, usamos o DCOM para "chamar" o nosso servidor de aplicaes. este componente que cria uma instncia do servidor em nossa mquina(como se ele estivesse local) e nos permite usar os componentes/servios do nosso servidor de aplcaes. Ento ns configuramos de modo que a conexo fosse local(localhost) e que ele conectaria com o nosso servidor de aplicaes coServidor1. Apesar que se tivssemos 10 servidores de aplicao, 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 informao solicitada retorna pelo caminho contrrio.(o que faz com que

a conexo no seja unidirecional). O ClientDataSet assim que recebe as informaes solicitadas, ele coloca todas estas informaes na memria e trabalha com elas em memria at que o comando ApplyUpdates seja executado! Neste momento ele verifica o que foi modificado e faz a atualizao! 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 conexo com o banco. E se o banco estiver off-line ele salva as informaes 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 informaes no banco! Em outras palavras... estamos criando um recurso que mesmo que banco de dados esteja offline o usuario cliente continua trabalhando com informaes. Toda vez que ele salva as atualizaes, mesmo que o banco de dados no esteja disponivel ele consegue salvar as modificaes e nem percebe que salvou local. claro que h diversos elementos a serem analisados para a criao de um recurso como esse. Mas muito interessante, e h muito o que ser explorado! Bem... finalmente nas nossas configuraes... conectamos o DataSource ao ClientDataSet, e o DBNavigator/DBGrid ao DataSource e nossa aplicao j funciona! Temos uma apliao 3 Camadas. Abaixo segue um diagrama de como definimos 3 camadas.

E finalmente finalizamos! Pessoal.... espero que vocs tenham aproveitado bastante as informaes que coloquei a disposio de vocs. verdade que ainda h muita informao para esgotarmos o assunto, mas procurei de maneira simples e prtica colocarmos as principais informaes para podermos desenvolver aplicaes que trabalhe com multicamadas. Parabns e meus agradecimentos aos que leram todos os 3 artigos! Como sempre estou disponvel para duvidas e esclarecimentos sobre todas estas informaes. eder_fernandes@hotmail.com E at a prxima! der R. Fernandes

Potrebbero piacerti anche