Вы находитесь на странице: 1из 8

Introduo ao Modelo Multicamadas

Modelo Multicamadas
Este artigo apresenta os conceitos envolvidos na tecnologia de multicamadas, bem como os elementos necessrios para a composio de um ambiente baseado neste mtodo e suas caractersticas. Inicialmente feito uma explanao sobre o histrico e evoluo dos sistemas distribudos, bem como o funcionamento bsico do modelo de uma camada, a tcnica de duas camadas e finalmente o modelo multicamadas. Alm disso, abordado um comparativo de multicamadas em relao a duas camadas, apontando os benefcios que um sistema utilizando este modelo pode trazer.

Modelo de uma camada


Tambm chamado de sistemas centralizados ou de arquitetura uni processada, o modelo de uma camada era caracterizado por manter todos os recursos do sistema (banco de dados, regras de negcios e interfaces de usurio) em computadores de grande porte, os conhecidos mainframes. Os terminais clientes no possuam recursos de armazenamento ou processamento, sendo conhecidos como terminais burros ou mudos. Nesta arquitetura, o mainframe tinha a responsabilidade de realizar todas as tarefas e processamento.

Modelo de duas camadas


Com o passar do tempo e com o surgimento dos computadores pessoais, cada vez mais microcomputadores estavam disponveis nas mesas dos usurios, fato que foi tornando necessria a utilizao do poder de processamento destas mquinas dentro do sistema. Tambm devido grande expanso das redes de computadores, os mtodos de desenvolvimento de software foram aos poucos evoluindo para uma arquitetura descentralizada, na qual no somente o servidor o responsvel pelo processamento, mas as estaes clientes tambm assumem parte desta tarefa. Dentro deste contexto que surgiu o modelo de duas camadas, justamente com o objetivo de dividir a carga de processamento entre o servidor e as mquinas clientes. Igualmente conhecido como modelo cliente e servidor de duas camadas, esta tcnica composta por duas partes distintas: uma executada na estao cliente e outra no servidor. A camada cliente tem a funo de prover a interface para que os usurios possam manipular as informaes, ou seja, atravs dela realiza-se a interao entre o usurio e o sistema. desenvolvida para se conectar diretamente ao banco de dados, tendo como responsabilidade fazer as solicitaes dos dados necessrios ao servidor, sendo que este os processa e devolve o resultado. Neste modelo, as regras de negcios (tais como funes, validaes

entre outros) podem ficar armazenadas no cliente, no servidor ou em ambos. Quando contidas no cliente, apresentam-se na forma de cdigos da linguagem de programao que est sendo utilizada. J quando localizadas no servidor, esto na forma de recursos do banco de dados, como triggers e stored procedures, por exemplo. O cliente recebe a denominao de cliente gordo quando a maior parte das regras so nele implementadas, enquanto que o servidor recebe a qualificao de servidor gordo quando as regras so nele desenvolvidas em maior nmero. Em suma, a base do funcionamento desta tcnica consiste em armazenar determinado volume de dados em um computador central e deixa-lo encarregado de manipul-los e devolve-los estao cliente que os requisitou. A figura seguinte mostra a arquitetura de duas camadas.

Como se pode observar na figura, existem trs estaes clientes que fazem as requisies diretamente ao servidor de banco de dados

Modelo multicamadas
Tambm conhecido como modelo cliente e servidor de vrias camadas, este mtodo uma evoluo da tecnologia de duas camadas e tem como princpio bsico o fato de que a estao cliente jamais realiza comunicao direta com o servidor de banco de dados, mas sim com uma camada intermediria, e esta, com o banco de dados. Isto proporciona uma srie de vantagens sobre a tcnica de duas camadas, as quais sero explanadas adiante. Um sistema multicamadas faz uso de objetos distribudos aliados utilizao de interfaces para executar seus procedimentos, o que torna o sistema independente de localizao, podendo estar tanto na mesma mquina

como em mquinas separadas. Desta forma, a aplicao pode ser dividida em vrias partes, cada uma bem definida, com suas caractersticas e responsvel por determinadas funes. Em um aplicativo nestes moldes, pelo menos trs camadas so necessrias: apresentao, regras de negcios e banco de dados. A seguir, cada uma das partes do modelo explicada. Apresentao A camada de apresentao fica fisicamente localizada na estao cliente e responsvel por fazer a interao do usurio com o sistema. uma camada bastante leve, que basicamente executa os tratamentos de telas e campos e geralmente acessa somente a segunda camada, a qual faz as requisies ao banco de dados e devolve o resultado. tambm conhecida como cliente, regras de interface de usurio ou camada de interface. Regras de negcios Em um sistema seguindo este modelo, a aplicao cliente nunca acessa diretamente a ltima camada que a do banco de dados, pois quem tem essa funo a camada de regras de negcios, na qual podem se conectar diversas aplicaes clientes. Esta parte do sistema responsvel por fazer as requisies ao banco de dados e todo o seu tratamento, ou seja, somente ela que tem acesso direto ao banco de dados. tambm conhecida como lgica de negcios, camada de acesso a dados, camada intermediria ou servidor de aplicao por geralmente se tratar de um outro computador destinado somente ao processamento das regras. O servidor de aplicao , geralmente, uma mquina dedicada e com elevados recursos de hardware, uma vez que nele que ficam armazenados os mtodos remotos (regras de negcios) e realizado todo o seu tratamento e processamento. Banco de dados a ltima diviso do modelo, na qual fica localizado o sistema gerenciador de banco de dados. tambm conhecida como camada de dados.

Adicionalmente a essas trs divises, tambm pode ser implementada uma camada somente para validao, na qual so executados todos os procedimentos necessrios para garantira integridade dos dados digitados na camada de apresentao. A figura seguinte ilustra o esquema de comunicao de um sistema multicamadas.

Na figura, na poro superior est localizado o servidor de banco de dados, o qual se comunica com os servidores de aplicao atravs de algum protocolo de rede (TCP/IP, por exemplo) e o acesso aos dados realizado por meio da linguagem SQL (Structured Query Language). Na parte inferior esto as estaes clientes, que fazem a comunicao com a camada intermediria atravs da utilizao de interfaces. Este basicamente o esquema de comunicao desta arquitetura e o mesmo no pode ser alterado. Ainda pode-se observar na figura anterior que tambm possvel haver a interao entre os servidores de aplicao. Com isso possvel obter o recurso de escalabilidade que ser detalhado adiante. Outro recurso que pode ser utilizado e no est representado na figura uma estao cliente, que possui melhores recursos de hardware, agir tanto como cliente quanto como servidor de aplicao. Este fato plausvel desde que a mquina possua os protocolos necessrios para realizar tal funo.

Vantagens do desenvolvimento em multicamadas


Uma aplicao desenvolvida neste modelo apresenta vrias vantagens sobre a tcnica de duas camadas, dentre elas pode-se destacar a modularizao, a facilidade de redistribuio, os clientes leves, a economia de licenas de acesso ao banco de dados, a economia de conexes no servidor, a

escalabilidade e a independncia de localizao, de linguagem de programao e de sistema gerenciador de banco de dados. A seguir ser detalhado cada um desses benefcios. Modularizao A modularizao refere-se a separar a lgica do negcio e regras de acesso ao banco de dados da camada de apresentao. Desta maneira, vrias aplicaes clientes podem compartilhar as mesmas regras, que ficam encapsuladas em uma camada de acesso comum. Assim sendo, as regras ficam centralizadas em um nico local, ao contrrio de em uma aplicao desenvolvida em duas camadas; na qual geralmente existe redundncia nestas regras e uma mudana mesmo que pequena acarretar na redistribuio do aplicativo em cada estao cliente. Um exemplo prtico deste fato a construo de um simples cadastro de clientes que deve ser disponibilizado com uma interface padro baseada em formulrios e outra baseada em um browser para acesso pela Internet. No modelo de duas camadas, se determinada validao for implementada na aplicao feita com formulrios, esta dever ser recodificada na outra aplicao justamente por no estar centralizada. Neste exemplo, a camada de regras de negcios poderia executar o papel de centralizadora, atendendo as duas situaes descritas e solucionando a questo. Outro problema comum que pode ocorrer no controle de verso, pois se determinado usurio possui uma verso mais antiga do que outro, ocorrer erros de dados lgicos no processamento das regras de negcios. Facilidade de redistribuio Como as estaes clientes acessam uma mesma camada em comum, qualquer alterao realizada nas regras de negcios (geralmente um EXE ou uma DLL no servidor de aplicao) ser vista por todas as aplicaes clientes. Clientes leves (thin-clients) Ao contrrio de em uma aplicao duas camadas na qual h a diviso das regras de negcios entre o cliente e o servidor, em multicamadas isto no ocorre, pois como a camada intermediria a responsvel por fazer todo o processamento das solicitaes de dados no servidor de banco de dados, cabe camada de apresentao somente exibir estes dados, tendo no mximo os cdigos de tratamento de telas e campos. Com isso, a aplicao cliente apresenta grande diminuio de cdigo e todo o trabalho de instalao bastante reduzido, possuindo somente uma configurao para o cliente ter acesso camada intermediria. Por esta razo, h diminuio de custos, uma vez que no existe necessidade de fazer upgrade nas estaes clientes que apresentam poucos recursos de hardware ou que so computadores antigos. Economia de licenas de acesso ao banco de dados Em um modelo construdo em duas camadas, a estao cliente faz acesso

direto ao servidor de banco de dados atravs de um conjunto de bibliotecas que ficam localizadas no computador cliente e que tm a funo de viabilizar a comunicao entre ambos. Visto que muitos fabricantes de sistemas gerenciadores de banco de dados cobram taxas por licenas adicionais para utilizao dessas bibliotecas, com o modelo multicamadas elas ficam localizadas somente na camada de acesso a dados, eliminando assim custos extras com licenas. Economia de conexes no servidor No modelo de duas camadas, se existirem, por exemplo, quinhentas estaes clientes conectadas simultaneamente no servidor, o mesmo nmero de conexes no banco de dados sero realizadas, uma para cada cliente. Numa arquitetura multicamadas isso no ocorre, porque se uma conexo for realizada pelo servidor de aplicao, est ser compartilhada por todas as mquinas que nele se conectarem. Atravs desta caracterstica, possvel solucionar eventuais problemas com o nmero de conexes no banco de dados desejadas maior que a quantidade de licenas de acesso disponveis. Escalabilidade Com a utilizao do modelo de duas camadas, comum que ocorra uma queda de desempenho quando um grande nmero de mquinas clientes simultneas se conecta ao servidor. Este fato conhecido como gargalo de rede e mesmo que o servidor seja um computador potente e localizado em uma rede veloz, pode ocorrer o problema de gargalo de I/O ( Input/Output) na mquina servidora. Com o modelo multicamadas este problema pode ser evitado, uma vez que possvel ter a mesma regra de negcio dividida entre vrios servidores atravs do balanceamento de carga, ou seja, quando algum deles ficar sobrecarregado o outro entra em ao para ajud-lo. Se ocorrer algum problema com algum servidor e este no puder mais responder as requisies (ficar off-line, por exemplo), outro servidor poder entrar em seu lugar. Pode-se observar na figura anterior que existem dois servidores de aplicao com as regras de negcios do mdulo de compras. Atravs disso, se um deles estiver sobrecarregado ou ficar desconectado, o outro entrar em ao como descrito anteriormente. Outra caracterstica importante que se o sistema for de grande porte, pode-se dividi-lo em vrios servidores de aplicao, um para cada setor como mostrado na figura (vendas e compras), evitando assim o gargalo na rede e melhorando o desempenho. Independncia de localizao Visto que esta arquitetura utiliza objetos distribudos, o servidor de banco de dados e o servidor de aplicao podem estar fisicamente distantes da aplicao cliente. Se alguma empresa, por exemplo, possuir cinco filiais geograficamente distribudas, todas podem acessar o mesmo servidor de aplicao.

Independncia de linguagem de programao Como so utilizadas interfaces na construo da arquitetura, uma camada de regras de negcios construda sobre o protocolo COM, por exemplo, pode ser acessada por aplicaes clientes desenvolvidas em diversas linguagens de programao que possuem suporte ao COM. Independncia de sistema gerenciador de banco de dados Numa arquitetura multicamadas, o banco de dados utilizado somente como um continer para armazenar as tabelas e dados, pois quando recursos como triggers e stored procedures so implementados, ocorre uma ligao direta da aplicao com o banco de dados, fato que pode tornar bastante trabalhoso o processo de migrao no caso da aplicao mudar de banco de dados. Isto ocorre porque cada soluo possui suas particularidades, ou seja, a construo de uma trigger ou stored procedure em determinada ferramenta geralmente ser diferente de outra. Por isso, em sistemas multicamadas devese evitar usar tais recursos, deixando o servidor de aplicao encarregado deste controle. Concluso Aplicaes multicamadas podem ser utilizadas normalmente como um substituto do habitual modelo de duas camadas, pois como observado anteriormente, apresenta vantagens bastante significativas, principalmente no que diz respeito organizao, manuteno, custos, desempenho e portabilidade. Se, por exemplo, determinada aplicao desenvolvida em duas camadas apresentar problemas relacionados disperso das regras de negcios entre cliente e servidor, dificuldade de redistribuio do aplicativo nas estaes clientes, problemas em migrar de banco de dados devido s regras estarem armazenadas em formas de stored procedures ou triggers, e, principalmente, queda de desempenho por causa do gargalo na rede; so fortes indcios de que a aplicao deve ser mudada para o modelo multicamadas, pois este, como visto anteriormente, possui recursos adequados para resolver os problemas supracitados e ainda, oferecer outras facilidades. O desenvolvimento atravs do modelo multicamadas vem crescendo constantemente, sendo que seu uso mais comumente indicado para sistemas complexos e de grande porte, que requerem grande volume de dados, alto grau de processamento, grande quantidade de usurios conectados simultaneamente e utilizao em ambientes heterogneos. Referncias BHERING, Luiz Fernando Campos. Mini-curso Multicamadas. Revista Active Delphi. So Paulo, n.17, p.20-21, 2005. LEO, Marcelo. Delphi 6 e Kylix: curso completo. Rio de Janeiro: Axcel Books, 2001.

PAULI, Ghinter. Vdeo Aula Criando uma aplicao multicamadas . Disponvel para assinantes em <http://www.devmedia.com.br/portal/>. Acesso em 28 mar. 2007. PEREIRA, Thiago Falco; PAULO, Adriano di. Delphi 5: Banco de Dados e MIDAS. So Paulo: Editora rica, 2000. RODRIGUES, Anderson Haertel. Sistemas Multicamadas com Delphi DataSnap e dbExpress. Florianpolis: Visual Books, 2002. TEIXEIRA, Steve; PACHECO, Xavier. Delphi 5: Guia do Desenvolvedor. Rio de Janeiro: Editora Campus, 2000.

Вам также может понравиться