Você está na página 1de 45

Sistemas Distribudos

Captulo 2 - Aula 2

Aula passada

Introduo, metas e
tipos de Sistemas
Distribudos,
Exemplos

Aula de hoje

Estilos
Arquitetnicos
Arquitetura de
Sistemas
Arquiteturas e
Middleware

Por qu definir uma


arquitetura?
SDs so complexas peas de software

Componentes esto espalhados por diversas


mquinas

Sistemas devem ser organizados adequadamente!

Organizao lgica do conjunto de componentes

Como organizar os componentes fisicamente?

Estilos Arquitetnicos (1/3)


Um componente uma unidade modular com
interfaces requeridas e fornecidas bem
definidas que substituvel dentro
do seu ambiente

Estilo Arquitetnico (2/3)


formulado em termos de componentes

Modo como os componentes esto conectados

Dados trocados entre componentes

Maneira como os componentes so configurados


em conjunto para formar um sistema

Estilo Arquitetnico (3/3)


Arquiteturas

Arquiteturas

Arquiteturas

Arquiteturas

em Camadas
baseadas em objetos
centradas em dados
baseadas em eventos

Arquiteturas em Camadas

Idia Bsica: um componente na camada Li

tem permisso de chamar componentes na camada


subjacente Li-1

Arquiteturas baseadas em
objetos (1/2)
Idia Bsica: Cada objeto corresponde ao que
definimos como componente, e esses componentes
so conectados por meio de chamada de
procedimento (remota), p. ex., Java RMI

Exemplo: Aplicao distribuda de uma rede de


locadoras, onde clientes podem alugar DVDs em
diversas filiais.

Arquiteturas baseadas em
objetos (2/2)

Arquiteturas centradas em
dados (1/2)
Idia Bsica: Processos se comunicam por meio
de um repositrio comum.

Exemplo: Grande conjunto de aplicaes em rede


que dependem de um sistema distribudo de
arquivos compartilhados o qual praticamente toda
a comunicao ocorre por meio de arquivos: Web

Arquiteturas centradas em
dados (2/2)

Arquiteturas centradas em
eventos (1/3)

Idia Bsica: Nesta arquitetura, processos


demonstram o interesse por um evento ou
conjunto de eventos (processo se subscreve)
e esperam pela notificao de qualquer um
desses eventos, gerados por um processo
notificador. Em outras palavras, o produtor publica
uma informao em um gerenciador de eventos
(middleware),e os consumidores
se subescrevem para receber as
informaes deste gerenciador. Eventos e notificaes.

Exemplo: Consultas em vrios bancos de dados

Arquiteturas centradas em
eventos (2/3)

The Many Faces of Publish/Subscribe Eugster


et al. ACM Comput. Surv. (35)2:114-131

Arquiteturas centradas em
eventos (3/3)

The Many Faces of Publish/Subscribe Eugster


et al. ACM Comput. Surv. (35)2:114-131

Arquiteturas de Sistemas (1/2)


Como diversos sistemas
distribudos so
realmente organizados?

Onde so colocados os
componentes de software?
Como estabelecida a
interao entre as peas de
software?

Arquiteturas de Sistemas (2/2)

Arquiteturas Centralizadas

Cliente-Servidor: vdeo sob demanda,


terminais bancrios
Arquiteturas Descentralizadas

Peer-to-peer (P2P): Chord

Arquiteturas Hbridas

Peer-to-peer (P2P): BitTorrent, PPLive

Arquiteturas Centralizadas
(1/14)
Modelo Cliente-Servidor

Processos so divididos em dois grupos


(possvel sobreposio)

Servidor: processo que implementa um servio


especfico

Cliente: processo que requisita um servio ao


servidor. Requisio Resposta

Arquiteturas Centralizadas
(2/14)

Arquiteturas Centralizadas
(3/14)

Arquiteturas Centralizadas
(4/14)
Modelo Cliente-Servidor: questes, questes!!

Clientes e Servidores multithreads?

Comunicao???

Qual o tipo de aplicao?

Sem conexo, no confivel (UDP)?

Com conexo, confivel (TCP)?

Arquiteturas Centralizadas
(5/14)
Camadas de Aplicao (estilo arquitetnico)

Considerando aplicaes
cliente-servidor que visam dar suporte ao
acesso de usurios a banco de dados:

Nvel de interface

Nvel de processamento

Nvel de dados

Arquiteturas Centralizadas
(6/14)

Camadas de Aplicao

Exemplo: Google

Usurio

Processamento
Dados

Arquiteturas Centralizadas
(7/14)

Camadas de Aplicao

Exemplo: Suporte deciso (corretora de


valores)

Usurio

Processamento
Dados

Arquiteturas Centralizadas
(8/14)
Com a distino entre trs nveis lgicos, como
distribuir fisicamente uma aplicao
cliente-servidor por vrias mquinas?

Arquitetura de duas divises fsicas

Arquitetura de trs divises fsicas

Arquiteturas Centralizadas
(9/14)
Arquitetura de duas divises fsicas

Parte da interface dependente


de terminal

Aplicaes controlam
remotamente a apresentao
dos dados

Arquiteturas Centralizadas
(10/14)
Arquitetura de duas divises fsicas

Nesse modelo, o software


cliente no faz nenhum
processamento exceto
o necessrio para apresentar
a interface da aplicao

25

Arquiteturas Centralizadas
(11/14)
Arquitetura de duas divises fsicas

Formulrio que precise


ser completamente preenchido
antes do processamento.
Cliente pode verificar a correo
e consistncia

Editor de texto com funes


bsicas no cliente e ferramentas
avanadas no servidor

Arquiteturas Centralizadas
(12/14)
Arquitetura de duas divises fsicas

Pcs conectados por meio de uma


rede a um sistema de arquivos
distribudos ou a um banco de
dados

Arquiteturas Centralizadas
(13/14)
Arquitetura de duas divises fsicas

Consulta a Web, com browser


um cliente pode construir
gradativamente uma enorme
cache em disco local com as
pginas Web mais recentemente
consultadas

Arquiteturas Centralizadas
(14/14)

Arquiteturas de trs divises fsicas

Arquiteturas Descentralizadas
(1/8)
Clientes e servidores so fisicamente
subdivididos em partes logicamente equivalentes,
mas cada parte est operando em sua prpria
poro do conjunto completo de dados,
o que equilibra a carga!!!!
Interao entre os processos simtrica: cada
processo agir como um cliente e um servidor ao
mesmo tempo

Arquiteturas Descentralizadas
(2/8)
Sistemas P2P questes, questes, questes!!

Como organizar os peers em uma rede de


sobreposio (overlay)?

Como difundir o contedo?

Como incentivar os peers


a colaborarem?

Arquiteturas Descentralizadas
(3/8)
Considerando o overlay e modo de construo

Redes Estruturadas procedimento


determinstico para definio do overlay,
p.ex, tabela de hash distribuda (DHT)

Redes No-estruturadas algoritmos aleatrios


para construo da rede de sobreposio,
gerando um grafo aleatrio

Arquiteturas Descentralizadas
(4/8)
Arquiteturas P2P estruturadas
Sistema Chord
(Stoica et al, 2003)

Ns esto logicamente
organizados em um anel

Item de dado com chave k


mapeado para o n com id >=

LOOKUP(k)

Arquiteturas Descentralizadas
(5/8)

Arquiteturas P2P no-estruturadas

Algoritmos aleatrios

Cada peer possui


uma lista de vizinhos
(viso parcial)

Para encontrar dados,


inundar a rede (no pior
caso)

Importante atualizar
a lista de vizinhos

Mas como?

Arquiteturas Descentralizadas
(6/8)
Arquiteturas P2P no-estruturadas

Threads que solicitam


aos vizinhos a viso parcial (pull) ou que empurram
(push) a viso a seus vizinhos

Algoritmos que atualizem a


vizinhana a cada x unidades de informao
enviadas

Arquiteturas Descentralizadas
(7/8)

Arquiteturas P2P no-estruturadas

Um dos problemas: como encontrar os


dados de maneira eficiente

Muitos sistemas utilizam ns especiais, que


possuem um ndice de itens de dados Superpeers

Caractersticas especiais?

Como associar peers comuns a estes superpeers

Como escolher estes peers?

Arquiteturas Descentralizadas
(7b/8)

Arquiteturas Descentralizadas (8/8)


Arquiteturas Hbridas
BitTorrent(Cohenm, 2003)
Tracker

Torrent

peer

Arquiteturas Descentralizadas
Arquiteturas Hbridas
BitTorrent(Cohenm, 2003)
C

Arquiteturas versus
Middleware

Cada middleware possui um estilo arquitetnico


especfico, com o objetivo de simplificar o projeto
de aplicaes

Como fazer com que um middleware genrico se


adapte a aplicao?

Middleware inchado

Interceptores podem ser usados para


interromper o fluxo de execuo para que uma
procedimento especfico da aplicao possa ser
executado

Arquiteturas versus
Middleware

Autogerenciamento em SDs
Sistemas distribudos devem ser capazes de reagir
a mudanas em seu ambiente

Ex: Troca dinmica de polticas de alocao


de recursos; Troca de codificao voz/vdeo
para se adequar a condies de
congestionamento na rede
Desafio: Deixar que o comportamento reativo
ocorra sem interveno humana!

Autogerenciamento em SDs
Idia: Atravs de observaes do comportamento
do SD, componentes de estimativa de medies e de
anlise coletam dados e realimentam o sistema,
modificando parmetros controlveis.

Autogerenciamento em SDs
Alguns Exemplos:

Astrolabe: ferramenta para observao


de Sds. Resultados podem ser usados para
alimentar um componente de anlise para
possveis aes corretivas

Resumo

SDs podem ser organizados de diferentes


maneiras.

Software: Estilos arquitetnicos

Fsico: Arquitetura de sistemas

O projeto de sistemas autogerenciadores visa


a adaptao do SD ao ambiente em que est
sendo executado, obtendo um maior desempenho
do mesmo

Você também pode gostar