Anda di halaman 1dari 48

Arquiteturas

2
captulo
Modelos de arquitetura de sistemas
distribudos
Clientes realizam pedidos a servidores

Client invocation invocation Server

result result
Server

Client
Key:
Process: Computer:
Modelos de arquitetura de sistemas
distribudos
Clientes realizam pedidos a servidores,
exemplos:
Gerenciamento de eventos

Sistemas de biblioteca online

Sistemas de cadastro em geral

3
Modelos de arquitetura de sistemas
distribudos Peer 2

Aplicativo Peer 1
Applicat ion

distribudo Applicat ion

baseado em Sharable
objects
Peer 3

arquitetura Application

ponto a ponto

Peer 4

Applicat ion

Peers 5 .... N
Modelos de arquitetura de sistemas
distribudos
Aplicativo distribudo baseado em
arquitetura ponto a ponto, exemplos:
Napster

Emule

Aplicativos baseados em bittorrent

5
Modelos de arquitetura de sistemas
distribudos
Servio fornecido por vrios servidores
Service

Server
Client

Server

Client
Server
Modelos de arquitetura de sistemas
distribudos
Servio fornecido por vrios servidores,
exemplos
Grandes sistemas de e-mail como google e
hotmail

Aplicaes coorporativas como sistemas


bancrios e governamentais

7
Modelos de arquitetura de sistemas
distribudos
Servidor proxy web

Client Web
server
Proxy
server

Client Web
server
Modelos de arquitetura de sistemas
distribudos
Servidor proxy web, exemplo
Sistema de proxy para pginas estticas

Sistemas que necessitam de uma baixa


latncia e no possui muito dinamismo dos
componentes

9
Modelos de arquitetura de sistemas
distribudos
Applets web
Requisio do cliente resulta no download de um
applet

O cliente interage com o applet


Modelos de arquitetura de sistemas
distribudos
Applets web, exemplos
Sistemas de execuo local, como
simuladores didticos, para ensino de fsica
bsica

Visualizadores de distribuies estatsticas


com parmetros passados pelos usurios

11
Modelos de arquitetura de sistemas
distribudos
Clientes leves e servidores de
computao
Compute server
Network computer or PC

Thin network Application


Client Process
Modelos de arquitetura de sistemas
distribudos
Clientes leves e servidores de
computao, exemplos
Mais antigos, Mainframes

Terminais burros, como por exemplo


computador popular

Aplicaes em nuvens

13
Estilos arquitetnicos
A arquitetura do software define como os vrios
componentes que o compe devem ser
organizados e como devem interagir

Em camadas Baseado em objetos 14


Estilos arquitetnicos
Arquitetura em Camadas
Um componente da camada Li tem permisso
para chamar componentes da camada Li-1 mas
no o contrrio;
O controle flui de camada para camada:
requisies descem pela hierarquia, resultados
fluem para cima.
Arquitetura Baseada em Objetos
Cada objeto corresponde a um componente e
esses componentes so conectados por meio de
chamadas a mtodos remotos;
Se ajusta a arquitetura de sistemas cliente-
servidor
15
Estilos arquitetnicos

Baseada em eventos Baseado nos dados

16
Estilos arquitetnicos
Arquitetura Baseada em Eventos
Processos se comunicam por meio de
propagao de eventos, que eventualmente
transportam dados;
Associado, em geral, a sistemas
publicar/subscrever;
Processos so fracamente acoplados.
Arquitetura Centrada nos Dados
Processos se comunicam por meio de um
repositrio comum;
Sistemas baseados na Web so em grande parte
centrados nos dados. 17
Introduo ao modelo
cliente/servidor
Uma questo fundamental em sistemas distribudos a
definio de como devemos organizar os processos;
Um modelo bastante popular, organiza os processos em
clientes que requisitam servios de servidores.

18
Introduo ao modelo
cliente/servidor
Comunicao
Atravs de um protocolo simples sem conexo
Utilizado quando a rede razoavelmente confivel, como a
maioria das LANs;
Vantagem: eficincia;
Desvantagem: dificuldades de tornar a aplicao resistente a
falhas de transmisso;
Se o cliente no recebe resposta, ele no tem como detectar
se a mensagem original foi perdida ou se isto ocorreu com a
resposta;
O cliente pode reenviar a requisio;
Para requisies como retorne o saldo da minha conta isto
no gera problemas mas para mensagens do tipo transfira
10.000,00 da minha conta o reenvio da requisio seria
desastroso.
19
Introduo ao modelo
cliente/servidor
Comunicao
Atravs de protocolo confivel orientado a
conexo
Desvantagem: desempenho relativamente baixo;
Funciona muito bem em WANs;
Exemplo: praticamente todas as aplicaes na
Internet utilizam conexes TCP/IP.

20
Distribuio horizontal e vertical do
modelo cliente/servidor
Camadas de uma aplicao: uma
aplicao pode ser estruturada em trs
nveis
Interface com o usurio

Processamento

Dados

21
Distribuio horizontal e vertical do
modelo cliente/servidor
Camada de interface com o usurio
Consiste dos programas que permitem a
interao dos usurios com a aplicao;
Pode ser muito simples, utilizando uma interface
a caractere simples ou mais sofisticado utilizando
interfaces grficas;
Exemplo simples: interface de terminal onde o
mainframe controla toda a interao inclusive o
monitor e teclado;
Exemplo sofisticado: Interface de sistema que
permite ao usurio arrastar o cone que
representa o arquivo para uma lixeira provocando
sua excluso.
22
Distribuio horizontal e vertical do
modelo cliente/servidor
Camada de processamento
Contm a funcionalidade principal da
aplicao;
Exemplo: uma ferramenta de busca na
Internet;
Ela deve transformar a string que o usurio
digitou em uma ou mais consultas a um
grande banco de dados e formatar os
resultados obtidos em pginas HTML a serem
apresentadas para o usurio.
23
Distribuio horizontal e vertical do
modelo cliente/servidor
Camada de dados
Na sua forma mais simples consiste de um
sistema de arquivos mas comum que sejam
utilizados banco de dados;
Alm de apenas armazenar dados pode
tambm tratar sua consistncia e realizar
funes como gerar uma notificao quando
uma dada condio ocorrer;
Estas aes so muitas vezes implementadas
atravs de stored procedures.

24
Distribuio horizontal e vertical do modelo
cliente/servidor

1-28

Exemplo de uma ferramenta de busca


25
Distribuio horizontal e vertical do
modelo cliente/servidor *
Considere um sistema de suporte
deciso para uma corretora de valores:
Uma camada frontal implementa a interface
com o usurio;
Uma camada de dados armazena os dados
financeiros;
Uma camada de processamento realiza a
anlise dos dados, o que eventualmente
exige mtodos e tcnicas sofisticados de
estatstica e inteligncia artificial.

26
Distribuio horizontal e vertical do
modelo cliente/servidor
Arquiteturas multidivididas
A distino entre os trs nveis lgicos sugere vrias
possibilidades para a distribuio fsica de uma
aplicao Cliente/Servidor;
A organizao mais simples requer apenas dois tipos
de mquinas:
Cliente: que executa os programas que compreendem a
interface com o usurio;
Servidor: que implementa as camadas de processamento e
de dados.
Esta organizao conhecida como Cliente/Servidor
em duas camadas;
No entanto, diversas outras arquiteturas podem ser
utilizadas

27
Distribuio horizontal e vertical do modelo
cliente/servidor
Alternative client-server organizations (a) (e).

1-29

Possveis organizaes Cliente/Servidor


28
Distribuio horizontal e vertical do
modelo cliente/servidor
Na alternativa (a), executa-se no cliente s a parte da interface
dependente do terminal;
Na alternativa (b), todo o software de interface com usurio executa
no cliente;
Exemplo da alternativa (c): verificao de consistncia do
preenchimento de um formulrio feito no cliente;
Na alternativa (d), a aplicao executa na mquina cliente, indo
para o servidor somente as operaes sobre as base de dados.
Exemplo: muitas aplicaes bancrias;
Na alternativa (e), o disco local no cliente mantm parte dos dados.
Exemplo: browser web mantendo uma cache;
Recentemente tem-se evitado as alternativas (d) e (e) devido a
problemas de gerenciamento e por tornar o software cliente
dependente da plataforma subjacente do cliente;
Clientes gordos (abordagens (d) e (e));
Clientes magros (abordagens (a) a (c)): mais fceis de
gerenciar.
29
Distribuio horizontal e vertical do modelo
cliente/servidor
Arquitetura em trs camadas: Um servidor pode tambm
agir como cliente, resultando em uma arquitetura em
trs nveis

1-30

30
Distribuio horizontal e vertical do
modelo cliente/servidor
Arquitetura em trs camadas
Nesta arquitetura, programas que formam o nvel
de processamento residem em um servidor
separado;
Um exemplo tpico o processamento de
transaes, onde o monitor de transaes
coordena as transaes em servidores de dados
possivelmente diferentes;
Outro exemplo a organizao usual de sites na
Web, onde o servidor Web age como ponto de
entrada para um site, passando requisies para
um servidor de aplicao no qual ocorre o
processamento propriamente dito. 31
Distribuio horizontal e vertical do
modelo cliente/servidor
Distribuio horizontal
A distribuio do modelo Cliente/Servidor em
mltiplas camadas vista anteriormente
conhecida por distribuio vertical;
O modelo Cliente/Servidor pode tambm ser
distribudo horizontalmente, dividindo-se o
cliente ou servidor em partes logicamente
equivalentes;
Um exemplo popular um servidor Web
replicado em vrias mquinas de forma a
prover um balanceamento da carga de
trabalho. 32
Distribuio horizontal e vertical do
modelo cliente/servidor
Distribuio horizontla de um servidor web

1-31

33
Distribuio horizontal e vertical do
modelo cliente/servidor
Cluster de servidores
Conjunto de mquinas conectadas por uma
rede de alta largura de banda e baixa latncia
onde cada mquina executa um ou mais
servidores;
Normalmente organizado logicamente em trs
camadas:
Comutador que responsvel pelo roteamento
das requisies de clientes;
Servidores de aplicao/computao;
Sistema de arquivos distribudo/banco de dados.
34
Distribuio horizontal e vertical do
modelo cliente/servidor

Cluster de servidores
35