Você está na página 1de 55

Aplicaes Multi-Camadas

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.

Modelo de uma camada


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 sistemas.

Modelo de duas camadas


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.

Modelo de duas camadas


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.

Modelo de duas camadas


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.

Modelo de duas camadas


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.

Modelo de duas camadas


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.

10

Modelo de duas camadas


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.

11

Modelo de duas camadas


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.
12

Modelo de duas camadas


Nesta abordagem temos aplicativos instalados em estaes clientes contendo toda a lgica da aplicao (clientes ricos ou gordos). Um grande problema neste modelo o gerenciamento de verses pois para cada

alterao os aplicativos precisam ser atualizados em todas


as mquinas clientes.

13

Exemplo de duas Camadas


VB, SQL

14

Modelo multicamadas
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.

15

Modelo multicamadas
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.

16

Modelo multicamadas
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.

17

Modelo multicamadas
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.

18

Modelo multicamadas
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.
19

Modelo multicamadas
Regras de negcios 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.
20

Modelo multicamadas
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.

21

Modelo multicamadas
A figura seguinte ilustra o esquema de comunicao de um sistema
multicamadas.

22

Exemplo Modelo multicamadas (3 camadas)


JSP, Apache e o SQL

23

Exemplo Modelo multicamadas (3 camadas)


JSP, Apache e o SQL

24

Modelo 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.

25

Modelo multicamadas
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

independncia

de

localizao,

de

linguagem

de

programao e de sistema gerenciador de banco de dados.


26

Modelo multicamadas
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.

27

Modelo multicamadas
Modularizao 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.

28

Modelo multicamadas
Modularizao 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.
29

Modelo multicamadas
Modularizao 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.

30

Modelo multicamadas
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.

31

Modelo multicamadas
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.
32

Modelo multicamadas
Clientes leves (thin-clients) 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.

33

Modelo multicamadas
Clientes leves (thin-clients) 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.

34

Modelo multicamadas
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.

35

Modelo multicamadas
Modularizao 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.

36

Modelo multicamadas
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.
37

Modelo multicamadas
Economia de conexes no servidor 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.

38

Modelo multicamadas
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.

39

Modelo multicamadas
Escalabilidade 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.
40

Modelo multicamadas
Escalabilidade 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.

41

Modelo multicamadas
Escalabilidade 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.

42

Modelo multicamadas
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.

43

Modelo multicamadas
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.

44

Modelo multicamadas
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.
45

Modelo multicamadas
Independncia de sistema gerenciador 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 deve-se evitar usar tais recursos, deixando o servidor de aplicao encarregado deste controle.

46

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.

47

Concluso
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,

48

Concluso
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.

49

Concluso
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.

50

Mini ATPS
Voc foi desenvolver contratado por uma empresa para uma aplicao WEB que possua

informaes sobre a rea de atuao e que esta possua tambm uma interface de negcios (comrcio eletrnico)

Exemplo.: Livraria, discuta em grupo de trs pessoas no


mximo como dever se comportar as duas aplicaes tratando-se de camadas, ou seja, como voc desenvolveria este layout por completo. Cont....
51

Mini ATPS
Definio do site e do e-commerce
Definio do contedo a ser inserido no site (o que o site

ter???)
Definio do layout do site Definio do mapa do site (pginas que o site ter. Ex: home, histria, quem somos, produtos, servios, contato, localizao, etc.) Definio do tipo de cadastro que ter no site (ser um cadastro de clientes, cadastro para newsletter, etc.)

O site precisa ter, obrigatoriamente, 5 (cinco) pginas e 1 (um) 52


cadastro (form)

Mini ATPS
Definio da tecnologia a ser usada
Escolha do sistema operacional a ser usado

Definir se freeware, software livre, pago, etc..


Definir o SO dos servidores e das estaes de trabalho Definir as quantidades de licenas

Escolha dos aplicativos a serem usados Definir se freeware, software livre, pago, etc.. Definir quais aplicativos sero usados nos servidores e das estaes de trabalho Definir as quantidades de licenas
53

Mini ATPS
Especificao dos equipamentos a serem usados (escritrio e

rede)
Definir a configurao dos equipamentos a serem usados. Ex: computadores e notebooks (processador, memria, HD, driver ptico, monitor, etc.), impressoras e multifuncionais (velocidade, resoluo, interfaces, etc.), servidores, switches, roteadores, tipos de cabos, etc. Principalmente os Servidores.
54

Mini ATPS
Oramento dos softwares e equipamentos

Elaborar uma tabela com a cotao de tudo que deve ser comprado, por preo unitrio e preo total.

Claro que tudo isso deve ser entregue no formato de ATPS. Boa sorte a todos.
55

Você também pode gostar