sistemas distribuídos · sistemas p2p - questões, questões, questões!! ... sistemas...
TRANSCRIPT
![Page 1: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/1.jpg)
Sistemas DistribuídosAULA 2: Arquitetura dos SDs
Prof. Adriano Maranhão
![Page 2: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/2.jpg)
Resumo
Aquitetura de SdsArquitetura de Midleware
![Page 3: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/3.jpg)
Definir a arquitetura
● SDs são complexas peças de software
● Componentes estão espalhados por diversas
máquinas
● Sistemas devem ser organizados adequadamente!
● Organização lógica do conjunto de componentes
● Como organizar os componentes fisicamente?
![Page 4: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/4.jpg)
Estilos Arquitetônicos
Um componente é uma unidade modular com
interfaces requeridas e fornecidas bem
definidas que é substituível dentro
do seu ambiente
![Page 5: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/5.jpg)
Estilo Arquitetônico
● É formulado em termos de componentes● Modo como os componentes estão conectados
● Dados trocados entre componentes
● Maneira como os componentes são configurados
em conjunto para formar um sistema
![Page 6: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/6.jpg)
Estilo Arquitetônico
● Arquiteturas em Camadas● Arquiteturas baseadas em objetos
● Arquiteturas centradas em dados
● Arquiteturas baseadas em eventos
![Page 7: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/7.jpg)
Arquiteturas em Camadas
● Idéia Básica: um componente na camada
tem permissão de chamar componentes na camada
subjacente
![Page 8: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/8.jpg)
Arquiteturas baseadas em objetos
● Idéia Básica: Cada objeto corresponde ao quedefinimos como componente, e esses componentes
são conectados por meio de chamada de
procedimento (remota), p. ex., Java RMI
●Exemplo: Aplicação distribuída de uma rede de
locadoras, onde clientes podem alugar DVDs em
diversas filiais.
![Page 9: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/9.jpg)
Arquiteturas baseadas em
objetos
![Page 10: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/10.jpg)
Arquiteturas centradas em
dados● Idéia Básica: Processos se comunicam por meio
de um repositório comum.
●Exemplo: Grande conjunto de aplicações em rede
que dependem de um sistema distribuído de
arquivos compartilhados o qual praticamente toda
a comunicação ocorre por meio de arquivos: Web
![Page 11: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/11.jpg)
Arquiteturas centradas emdados
![Page 12: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/12.jpg)
Arquiteturas centradas em
eventos● Idéia Básica: Nesta arquitetura, processos
demonstram o interesse por um evento ou
conjunto de eventos (processo se subscreve)
e esperam pela notificação de qualquer um
desses eventos, gerados por um processo notificador. Em outras palavras, o produtor publicauma informação em um gerenciador de eventos(middleware),e os consumidoresse subescrevem parareceber as informações deste gerenciador. Eventos e notificações. ●Exemplo: Consultas em vários bancos de dados.
![Page 13: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/13.jpg)
Arquiteturas centradas em
eventos
![Page 14: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/14.jpg)
Arquiteturas centradas em
eventos
![Page 15: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/15.jpg)
Arquiteturas de SistemasComo diversos sistemas
distribuídos são
realmente organizados?
Onde são colocados os
componentes de software?
Como é estabelecida ainteração entre as peças de
software?
![Page 16: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/16.jpg)
Arquiteturas de Sistemas
● Arquiteturas Centralizadas● Cliente-Servidor: vídeo sob demanda,
terminais bancários
● Arquiteturas Descentralizadas
● Peer-to-peer (P2P): Chord
● Arquiteturas Híbridas
● Peer-to-peer (P2P): BitTorrent, PPLive
![Page 17: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/17.jpg)
Arquiteturas Centralizadas
Modelo Cliente-Servidor● Processos são divididos em dois grupos
(possível sobreposição)
● Servidor: processo que implementa um serviço
específico
● Cliente: processo que requisita um serviço ao
servidor. Requisição → Resposta
![Page 18: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/18.jpg)
Arquiteturas Centralizadas
![Page 19: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/19.jpg)
Arquiteturas Centralizadas
![Page 20: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/20.jpg)
Arquiteturas Centralizadas
●Modelo Cliente-Servidor: questões, questões!!
● Clientes e Servidores multithreads?
● Comunicação???
● Qual o tipo de aplicação?● Sem conexão, não confiável (UDP)?
● Com conexão, confiável (TCP)?
![Page 21: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/21.jpg)
Arquiteturas Centralizadas
Camadas de Aplicação (estilo arquitetônico)
● Considerando aplicações
cliente-servidor que visam dar suporte ao
acesso de usuários a banco de dados:
● Nível de interface● Nível de processamento
● Nível de dados
![Page 22: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/22.jpg)
Arquiteturas Centralizadas
Camadas de Aplicação
● Exemplo: Google
Usuário Processamento Dados
![Page 23: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/23.jpg)
Arquiteturas Centralizadas
Camadas de Aplicação
● Exemplo: Suporte à decisão (corretora de
valores)
Usuário Processamento Dados
![Page 24: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/24.jpg)
Arquiteturas Centralizadas
Com a distinção entre três níveis lógicos, como
distribuir fisicamente uma aplicação
cliente-servidor por várias máquinas?
● Arquitetura de duas divisões físicas
● Arquitetura de três divisões físicas
![Page 25: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/25.jpg)
Arquiteturas Centralizadas
●Arquitetura de duas divisões físicas
● Parte da interface é dependente
de terminal
● Aplicações controlamremotamente a apresentação
dos dados
![Page 26: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/26.jpg)
Arquiteturas Centralizadas
●Arquitetura de duas divisões físicas
● Nesse modelo, o software
cliente não faz nenhum
processamento excetoo necessário para apresentar
a interface da aplicação
25
![Page 27: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/27.jpg)
Arquiteturas Centralizadas
●Arquitetura de duas divisões físicas
● Formulário que precise
ser completamente preenchido
antes do processamento.
Cliente pode verificar a correção
e consistência
● Editor de texto com funçõesbásicas no cliente e ferramentas
avançadas no servidor
![Page 28: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/28.jpg)
Arquiteturas Centralizadas
●Arquitetura de duas divisões físicas
● Pcs conectados por meio de uma
rede a um sistema de arquivos
distribuídos ou a um banco de
dados
![Page 29: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/29.jpg)
Arquiteturas Centralizadas
●Arquitetura de duas divisões físicas
● Consulta a Web, com browser
um cliente pode construir
gradativamente uma enorme
cache em disco local com aspáginas Web mais recentemente
consultadas
![Page 30: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/30.jpg)
Arquiteturas Centralizadas
Arquiteturas de três divisões físicas
![Page 31: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/31.jpg)
Arquiteturas Descentralizadas
Clientes e servidores são fisicamentesubdivididos em partes logicamente equivalentes,
mas cada parte está operando em sua própria
porção do conjunto completo de dados,
o que equilibra a carga!!!!Interação entre os processos é simétrica: cada
processo agirá como um cliente e um servidor ao
mesmo tempo
![Page 32: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/32.jpg)
Arquiteturas Descentralizadas
Sistemas P2P - questões, questões, questões!!
● Como organizar os peers em uma rede de
sobreposição (overlay)?
● Como difundir o conteúdo?
● Como incentivar os peers
a colaborarem?
![Page 33: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/33.jpg)
Arquiteturas Descentralizadas
Considerando o overlay e modo de construção
● Redes Estruturadas → procedimento
determinístico para definição do overlay,
p.ex, tabela de hash distribuída (DHT)● Redes Não-estruturadas → algoritmos aleatórios
para construção da rede de sobreposição,
gerando um grafo aleatório
![Page 34: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/34.jpg)
Arquiteturas Descentralizadas
Arquiteturas P2P estruturadas
●Sistema Chord
(Stoica et al, 2003)
●Nós estão logicamente
organizados em um anel
●Item de dado com chave k
é mapeado para o nó com id >=
●LOOKUP(k)
![Page 35: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/35.jpg)
Arquiteturas Descentralizadas
Arquiteturas P2P não-estruturadas
●Algoritmos aleatórios
● Cada peer possuiuma lista de vizinhos
(visão parcial)
● Para encontrar dados,
inundar a rede (no pior
caso)●Importante atualizar
a lista de vizinhos
● Mas como?
![Page 36: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/36.jpg)
Arquiteturas Descentralizadas
Arquiteturas P2P não-estruturadas
●Threads que solicitam
aos vizinhos a visão parcial (pull) ou que empurram
(push) a visão a seus vizinhos
● Algoritmos que atualizem avizinhança a cada x unidades de informação
enviadas
![Page 37: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/37.jpg)
Arquiteturas Descentralizadas
Arquiteturas P2P não-estruturadas
●Um dos problemas: como encontrar os
dados de maneira eficiente
● Muitos sistemas utilizam nós especiais, quepossuem um índice de itens de dados → Superpeers
● Características especiais?
● Como associar peers comuns a estes superpeers
● Como escolher estes peers?
![Page 38: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/38.jpg)
Arquiteturas Descentralizadas
![Page 39: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/39.jpg)
Arquiteturas DescentralizadasArquiteturas Híbridas
BitTorrent(Cohenm, 2003)Tracker
Torrent
peer
![Page 40: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/40.jpg)
Arquiteturas Descentralizadas
Arquiteturas Híbridas
BitTorrent(Cohenm, 2003)
C
![Page 41: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/41.jpg)
Arquiteturas versus
MiddlewareCada middleware possui um estilo arquitetônico
específico, com o objetivo de simplificar o projeto
de aplicações
● Como fazer com que um middleware genérico se
adapte a aplicação?
● Middleware “inchado”
● Interceptores podem ser usados parainterromper o fluxo de execução para que uma
procedimento específico da aplicação possa ser
executado
![Page 42: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/42.jpg)
Arquiteturas versus
Middleware
![Page 43: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/43.jpg)
Autogerenciamento em SDs
Sistemas distribuídos devem ser capazes de reagir
a mudanças em seu ambiente
● Ex: Troca dinâmica de políticas de alocação
de recursos; Troca de codificação voz/vídeo
para se adequar a condições de
congestionamento na redeDesafio: Deixar que o comportamento reativo
ocorra sem intervenção humana!
![Page 44: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/44.jpg)
Autogerenciamento em SDsIdéia: Através de observações do comportamentodo SD, componentes de estimativa de medições e de
análise coletam dados e realimentam o sistema,
modificando parâmetros controláveis.
![Page 45: Sistemas Distribuídos · Sistemas P2P - questões, questões, questões!! ... Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente Ex: Troca dinâmica de](https://reader034.vdocuments.pub/reader034/viewer/2022042516/5fb25cbdca922d309a495366/html5/thumbnails/45.jpg)
Autogerenciamento em SDs
Alguns Exemplos:
● Astrolabe: ferramenta para observaçãode Sds. Resultados podem ser usados para
alimentar um componente de análise para
possíveis ações corretivas