Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2
captulo
Modelos de arquitetura de sistemas
distribudos
Clientes realizam pedidos a servidores
result result
Server
Client
Key:
Process: Computer:
Modelos de arquitetura de sistemas
distribudos
Clientes realizam pedidos a servidores,
exemplos:
Gerenciamento de eventos
3
Modelos de arquitetura de sistemas
distribudos Peer 2
Aplicativo Peer 1
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
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
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
9
Modelos de arquitetura de sistemas
distribudos
Applets web
Requisio do cliente resulta no download de um
applet
11
Modelos de arquitetura de sistemas
distribudos
Clientes leves e servidores de
computao
Compute server
Network computer or PC
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
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
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
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