• Nenhum resultado encontrado

STD29006 Sistemas Distribuídos

N/A
N/A
Protected

Academic year: 2021

Share "STD29006 Sistemas Distribuídos"

Copied!
102
0
0

Texto

(1)

STD29006 – Sistemas Distribu´ıdos

Tipos e arquiteturas de Sistemas Distribu´ıdos

Prof. Emerson Ribeiro de Mello

Instituto Federal de Santa Catarina – IFSC campus S˜ao Jos´e

[email protected]

http://docente.ifsc.edu.br/mello/std

08 de agosto de 2017

(2)
(3)

Sistemas de computa¸c˜ao distribu´ıdos

(4)

Sistemas de computa¸c˜

ao distribu´ıdos

Cluster: agrupamento de m´aquinas

Aglomerado de computadores semelhantes

Mesmo sistema operacional e conectados atrav´es de uma rede local O administrador ´e dono de todo do cluster

Usado para processamento paralelo – mestre distribui tarefas pelos n´os

(5)

Sistemas de computa¸c˜

ao distribu´ıdos

Cluster: agrupamento de m´aquinas

Tianhe-2 - China - O mais r´apido em 2015, hoje o segundo – 33.86 PFlop/s 3.120.000 n´ucleos

(6)

Sistemas de computa¸c˜

ao distribu´ıdos

Cluster: agrupamento de m´aquinas

Sunway TaihuLight - China - O mais r´apido atualmente – 93 PFlop/s 10.649.600 n´ucleos, mem´oria: 1.310.720 GB

(7)

Sistemas de computa¸c˜

ao distribu´ıdos

Cluster: agrupamento de m´aquinas

Titan - EUA - O terceiro mais r´apido atualmente – 17.59 PFlop/s 560.640 n´ucleos

(8)

Sistemas de computa¸c˜

ao distribu´ıdos

Cluster: agrupamento de m´aquinas

Tup˜a - Brasil - Em 2010 ficou na posi¸c˜ao 29/500 – 258TFlop/s R$ 23 milh˜oes e ´e 2.580 mais r´apido que um core i7

31/01/17 – Crise amea¸ca o Inpe e pode parar superm´aquina da previs˜ao do tempo

(9)

Sistemas de computa¸c˜

ao distribu´ıdos

Cluster: agrupamento de m´aquinas

Santos Dumont - Brasil - Atualmente o mais r´apido da Am´erica Latina – 1,1 PFlop/s

18.144 n´ucleos, 756 n´os computacionais

(10)

Sistemas de computa¸c˜

ao distribu´ıdos

Cluster: agrupamento de m´aquinas

(11)

Sistemas de computa¸c˜

ao distribu´ıdos

Cluster: agrupamento de m´aquinas

Cluster com Playstation3

Em 2010 a for¸ca a´erea americana fez um com 1.760 PS3, obtendo 500TFlop/s – posi¸c˜ao 33/500

(12)

Sistemas de computa¸c˜

ao distribu´ıdos

Cluster: agrupamento de m´aquinas

(13)

Sistemas de computa¸c˜

ao distribu´ıdos

Cluster: agrupamento de m´aquinas

(14)

Sistemas de computa¸c˜

ao distribu´ıdos

(15)

Sistemas de computa¸c˜

ao distribu´ıdos

Cluster: agrupamento de m´aquinas

(16)

Sistemas de computa¸c˜

ao distribu´ıdos

Grades computacionais ou Grid

Cluster

Ambiente homogˆeneo: hardware, sistema operacional, rede local, administra¸c˜ao central

Grid

Ambientes heterogˆeneos: cada n´o pode ter um hardware, S.O., rede, dom´ınio administrativo e pol´ıticas de seguran¸ca diferentes

Middleware ´e respons´avel por prover abstra¸c˜ao para esta heterogeneidade

Grids geralmente s˜ao usadas para constituir Organiza¸c˜oes Virtuais

Diversas institui¸c˜oes colaboram com seus recursos (cluster, armazenamento, etc.)

Pol´ıticas de uso determinam quanto tempo cada organiza¸c˜ao poder´a usar a grid

(17)

Sistemas de computa¸c˜

ao distribu´ıdos

Cloud Computing ou Computa¸c˜ao em Nuvem

Computa¸c˜ao em Nuvem permite que recursos computacionais possam ser providos de maneira r´apida e com m´ınimo esfor¸co de gerenciamento por parte do provedor de servi¸co

Permite adicionar ou remover recursos de acordo com a demanda

Similar as redes de energia e de telefonia

(18)

Sistemas de computa¸c˜

ao distribu´ıdos

Cloud Computing ou Computa¸c˜ao em Nuvem

Computa¸c˜ao em Nuvem consiste em oferecer como servi¸co aplica¸c˜oes, bem como softwares e hardwares que hospedam estas aplica¸c˜oes

A “nuvem” ´e conjunto de hardware e software no datacenter

Modelo de implanta¸c˜ao

Nuvem privada

Toda a nuvem a constru´ıda dentro dos limites de uma institui¸c˜ao e ´e voltada exclusivamente para seus usu´arios

Ex: Nuvem USP – http://goo.gl/bK24Xr

Nuvem p´ublica

Oferece os servi¸cos e a tarifa¸c˜ao ´e feita de acordo com o uso A nuvem armazena dados de diferentes clientes

(19)

Sistemas de computa¸c˜

ao distribu´ıdos

Cloud Computing ou Computa¸c˜ao em Nuvem

(20)

Sistemas de computa¸c˜

ao distribu´ıdos

(21)

Sistemas de computa¸c˜

ao distribu´ıdos

Cloud Computing ou Computa¸c˜ao em Nuvem

(22)

Sistemas de computa¸c˜

ao distribu´ıdos

(23)

Sistemas de computa¸c˜

ao distribu´ıdos

Cloud Computing ou Computa¸c˜ao em Nuvem

(24)

Sistemas de computa¸c˜

ao distribu´ıdos

(25)

Sistemas de informa¸c˜ao distribu´ıdos

(26)

Sistemas de informa¸c˜

ao distribu´ıdos

Processamento de Transa¸c˜oes

Sistema do hotel indispon´ıvel, ou o hotel n˜ao tem mais vaga (acesso concorrente de diversos clientes)

(27)

Sistemas de informa¸c˜

ao distribu´ıdos

Processamento de Transa¸c˜oes

Sistema do hotel indispon´ıvel, ou o hotel n˜ao tem mais vaga (acesso concorrente de diversos clientes)

(28)

Sistemas de informa¸c˜

ao distribu´ıdos

Processamento de Transa¸c˜oes

Sistema do hotel indispon´ıvel, ou o hotel n˜ao tem mais vaga (acesso concorrente de diversos clientes)

(29)

Sistemas de informa¸c˜

ao distribu´ıdos

Processamento de Transa¸c˜oes

Sistema do hotel indispon´ıvel, ou o hotel n˜ao tem mais vaga (acesso concorrente de diversos clientes)

(30)

Sistemas de informa¸c˜

ao distribu´ıdos

Processamento de Transa¸c˜oes

Transa¸c˜oes tem por objetivo garantir a integridade de recursos

Recurso acessado por diversos processos de forma concorrente Processo realizando opera¸c˜oes sobre um ou mais recursos

Modo de opera¸c˜ao das transa¸c˜oes

1 Indicar in´ıcio da transa¸c˜ao

2 Realizar opera¸c˜oes sobre os recursos

3 Indicar o t´ermino da transa¸c˜ao

commit – tenta salvar as altera¸c˜oes

abort – ignora as altera¸c˜oes e volta para os valores originais

Ou todas as opera¸c˜oes na transa¸c˜ao s˜ao executadas ou nenhuma delas ser´a executada

(31)

Sistemas de informa¸c˜

ao distribu´ıdos

Caracter´ısticas das Transa¸c˜oes Atˆomica

Para um observador externo, a transa¸c˜ao ´e indivis´ıvel ´

E executada em sua totalidade ou n˜ao executa

Consistente

Toda transi¸c˜ao leva o sistema de um estado v´alido para um outro estado v´alido

Isolada

Transa¸c˜oes concorrentes n˜ao geram interferˆencia entre si

Dur´aveis

Uma vez que a transa¸c˜ao foi conclu´ıda com sucesso (commit), ent˜ao as modifica¸c˜oes feitas por ela s˜ao permanentes

(32)
(33)

Sistemas distribu´ıdos ub´ıquos

Formado por dispositivos m´oveis pequenos, alimentados por bateria e com conex˜ao sem fio

Ex: Laptop, tablet, celular, dispositivos de automa¸c˜ao residencial ou para sa´ude, rede de sensores sem fio

Requisitos para sistemas ub´ıquos

Reagir a mudan¸cas do contexto

O dispositivo deve estar continuamente ciente das mudan¸cas no ambiente

Encorajar composi¸c˜oes ad hoc

Deve ser f´acil cooperar com outros dispositivos

Compartilhamento de recursos ´e algo impl´ıcito

Prover facilidades para compartilhar informa¸c˜oes

(34)

Sistemas distribu´ıdos ub´ıquos

(35)

Arquiteturas para Sistemas Distribu´ıdos

(36)

Arquiteturas para Sistemas Distribu´ıdos

Organiza¸c˜ao dos Sistemas Distribu´ıdos

Estilos de arquitetura – formas de projetar o software do SD

Camadas Objetos Eventos

Espa¸co de dados compartilhados

Arquitetura de sistema – organiza¸c˜ao do SD em m´aquinas reais

Centralizados Descentralizados H´ıbridos

(37)

Arquitetura de software

Estilos de arquitetura

Estilos s˜ao definidos por componentes de software (processos) e como estes se conectam uns aos outros

Baseada em camadas Baseada em objetos Baseada em eventos Espa¸co de dados compartilhados 15/31

(38)

Arquitetura de software

Estilos de arquitetura

Estilos s˜ao definidos por componentes de software (processos) e como estes se conectam uns aos outros

Baseada em camadas Baseada em objetos Baseada em eventos Espa¸co de dados compartilhados Database with Web pages Query generator Ranking component HTML generator User interface Keyword expression Database queries

Web page titles with meta-information Ranked list of page titles HTML page containing list Processing level User-interface level Data level

Processos das camadas superiores invocam processos das camadas inferiores

(39)

Arquitetura de software

Estilos de arquitetura

Estilos s˜ao definidos por componentes de software (processos) e como estes se conectam uns aos outros

Baseada em camadas

Baseada em objetos

Baseada em eventos Espa¸co de dados compartilhados

Cada objeto cont´em um estado e ´e capaz de realizar opera¸c˜oes que podem ser invocadas por outros objetos O objeto seria um componente de software

Os conectores entre os objetos podem ser representadas por chamadas de

procedimento remoto (RPC)

(40)

Arquitetura de software

Estilos de arquitetura

Estilos s˜ao definidos por componentes de software (processos) e como estes se conectam uns aos outros

Baseada em camadas Baseada em objetos

Baseada em eventos

Espa¸co de dados compartilhados

Comunica¸c˜ao entre os processos ´e feita atrav´es de eventos, que podem ou n˜ao conter dados

O barramento de eventos (middleware) ´e o respons´avel pelo transporte

Ex: Sistema publish/subscribe

Processos registram o interesse em determinados eventos (subscribe) Processos publicam eventos

Middleware notifica somente os processos que assinaram aquele evento

(41)

Arquitetura de software

Estilos de arquitetura

Estilos s˜ao definidos por componentes de software (processos) e como estes se conectam uns aos outros

Baseada em camadas Baseada em objetos

Baseada em eventos

Espa¸co de dados compartilhados

desacoplamento espacial – um processo n˜ao precisa referenciar diretamente um outro

(42)

Arquitetura de software

Estilos de arquitetura

Estilos s˜ao definidos por componentes de software (processos) e como estes se conectam uns aos outros

Baseada em camadas Baseada em objetos Baseada em eventos

Espa¸co de dados compartilhados

Semelhante ao baseado em eventos, por´em os dados persistem no middleware Acontece tamb´em o desacoplamento temporal

Dados persistem, mesmo se os processos n˜ao estiverem mais ativos

(43)

Arquitetura de sistema

Centralizada – modelo cliente-servidor

Aplica¸c˜ao ´e modelada como um conjunto de servi¸co que s˜ao providos pelos servidores e um conjunto de clientes que acessam esses servi¸cos

Cliente envia um pedido ao servidor e aguarda por sua resposta

Clientes precisam conhecer os servidores, por´em o inverso n˜ao ´e verdade

Em um sistema distribu´ıdo, ´e poss´ıvel que um servidor tamb´em seja cliente de um outro servidor

(44)

Arquitetura Centralizada – modelo cliente-servidor

Problemas com m´ultiplos clientes e um ´unico servidor

Servidor pode se tornar um gargalo e ponto ´unico de falhas

Client

Request Reply

Server

Provide service Time Wait for result

(45)

Arquitetura Centralizada – modelo cliente-servidor

Problemas com m´ultiplos clientes e um ´unico servidor Solu¸c˜ao: M´ultiplos servidores

CS655! 2-22!

Communication in Multitier

Systems!

From Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e ! © Pearson Education Inc., 2007 "

(46)

Arquitetura Centralizada – modelo cliente-servidor

Problemas com m´ultiplos clientes e um ´unico servidor

(47)

Arquitetura de sistema

Centralizada – modelo cliente-servidor

Cliente e servidor executando em m´aquinas distintas ´e a organiza¸c˜ao mais comum

User interface User interface User interface Application User interface Application User interface Application Database Application Application Application

Database Database Database Database Database

User interface

(a) (b) (c) (d) (e)

Client machine

Server machine

(a) Cliente como terminal burro – Ex: Xorg

Ao cliente cabe apenas apresentar a interface gr´afica

(48)

Arquitetura de sistema

Centralizada – modelo cliente-servidor

Cliente e servidor executando em m´aquinas distintas ´e a organiza¸c˜ao mais comum

User interface User interface User interface Application User interface Application User interface Application Database Application Application Application

Database Database Database Database Database

User interface

(a) (b) (c) (d) (e)

Client machine

Server machine

(b) Cliente fica somente com o frontend

(49)

Arquitetura de sistema

Centralizada – modelo cliente-servidor

Cliente e servidor executando em m´aquinas distintas ´e a organiza¸c˜ao mais comum

User interface User interface User interface Application User interface Application User interface Application Database Application Application Application

Database Database Database Database Database

User interface

(a) (b) (c) (d) (e)

Client machine

Server machine

(c) Parte da l´ogica da aplica¸c˜ao fica no cliente

Ex: Valida¸c˜oes sobre preenchimento de formul´arios seria feita antes de enviar pela rede

(50)

Arquitetura de sistema

Centralizada – modelo cliente-servidor

Cliente e servidor executando em m´aquinas distintas ´e a organiza¸c˜ao mais comum

User interface User interface User interface Application User interface Application User interface Application Database Application Application Application

Database Database Database Database Database

User interface

(a) (b) (c) (d) (e)

Client machine

Server machine

(d) Toda a aplica¸c˜ao fica no cliente e esta invoca o servidor de Banco de Dados

(51)

Arquitetura de sistema

Centralizada – modelo cliente-servidor

Cliente e servidor executando em m´aquinas distintas ´e a organiza¸c˜ao mais comum

User interface User interface User interface Application User interface Application User interface Application Database Application Application Application

Database Database Database Database Database

User interface

(a) (b) (c) (d) (e)

Client machine

Server machine

(e) Cliente armazena parte do banco de dados

Ex: Cache do navegador web

(52)

Arquitetura de sistema

Centralizada – modelo cliente-servidor

User interface User interface User interface Application User interface Application User interface Application Database Application Application Application

Database Database Database Database Database User interface

(a) (b) (c) (d) (e)

Client machine

Server machine

1 Qual destas seria mais

f´acil manter?

2 Qual destas est´a em

evidˆencia atualmente?

Clientes leves – thin client

Maior facilidade para manter

Aplicar atualiza¸c˜ao

Pior desempenho

depende da latˆencia da rede

Clientes pesados – fat client

Dificuldade para manter

Diferentes vers˜oes de S.O Conflitos com outros softwares

Instala¸c˜ao e atualiza¸c˜ao demandam mais tempo

Melhor desempenho

(53)

Arquitetura de sistema

Centralizada – modelo cliente-servidor

User interface User interface User interface Application User interface Application User interface Application Database Application Application Application

Database Database Database Database Database User interface

(a) (b) (c) (d) (e)

Client machine

Server machine

1 Qual destas seria mais

f´acil manter?

2 Qual destas est´a em

evidˆencia atualmente? Clientes leves – thin client

Maior facilidade para manter

Aplicar atualiza¸c˜ao

Pior desempenho

depende da latˆencia da rede

Clientes pesados – fat client

Dificuldade para manter

Diferentes vers˜oes de S.O Conflitos com outros softwares

Instala¸c˜ao e atualiza¸c˜ao demandam mais tempo

Melhor desempenho

N˜ao depende muito da rede

(54)

Arquitetura de sistema

Descentralizada – Redes Par a Par (Peer-to-Peer – P2P)

Motiva¸c˜ao

Evitar ponto ´unico de falhas Escalabilidade

Aproveitar recursos de todos os n´os participantes da rede

Caracter´ısticas

Todo n´o na rede possui a mesma funcionalidade

Pode acessar servi¸cos de outros n´os, bem como prover

N´os s˜ao autˆonomos e n˜ao confi´aveis Rede dinˆamica

N´os ingressam e saem da rede a todo instante

(55)

Arquitetura de sistema

Descentralizada – Redes Par a Par (Peer-to-Peer – P2P)

Potenciais benef´ıcios

Escala para um grande n´umero de n´os

Organiza¸c˜ao dinˆamica diante de ingressos e egressos na rede Balanceamento de carga

Processamento em paralelo

Alta disponibilidade por meio de replica¸c˜ao dos recursos nos n´os Qual topologia seria mais escal´avel?

Redes P2P s˜ao comumente utilizadas para distribui¸c˜ao de conte´udo

Compartilhamento de arquivos, mensageiros instantˆaneos, voz sobre IP

(56)

Arquitetura de sistema

Descentralizada – Redes Par a Par (Peer-to-Peer – P2P)

Potenciais benef´ıcios

Escala para um grande n´umero de n´os

Organiza¸c˜ao dinˆamica diante de ingressos e egressos na rede Balanceamento de carga

Processamento em paralelo

Alta disponibilidade por meio de replica¸c˜ao dos recursos nos n´os Qual topologia seria mais escal´avel?

Redes P2P s˜ao comumente utilizadas para distribui¸c˜ao de conte´udo

Compartilhamento de arquivos, mensageiros instantˆaneos, voz sobre IP

(57)

Arquitetura de sistema

Descentralizada – Redes Par a Par (Peer-to-Peer – P2P)

Aplica¸c˜oes descentralizadas necessitam estabelecer previamente um canal de comunica¸c˜ao

O estabelecimento de canais de comunica¸c˜ao entre os n´os de um sistema distribu´ıdo, resulta em uma rede sobreposta (overlay )

Rede l´ogica constru´ıda sobre uma rede f´ısica existente

2. Redes Overlay: Conceitos e Experi ˆencias 10

2.2 Redes Overlay

Uma rede overlay ´e uma rede l´ogica constru´ıda sobre uma rede f´ısica existente. Este n˜ao ´e exatamente um conceito novo: a pr´opria Internet foi inicialmente implementada sobre a rede p´ublica de telefonia, e ainda hoje boa parte dos seus dados trafegam por circuitos telefˆonicos.

A figura 2.1 mostra um exemplo de como uma rede overlay se sobrep˜oe a uma rede f´ısica. Cada n´o da rede overlay ´e tamb´em um n´o da rede f´ısica. Tipicamente, a rede f´ısica ´e a pr´opria Internet (geralmente a camada IP), e os n´os overlay s˜ao implementados por hosts, n˜ao por roteadores. Uma conex˜ao entre dois n´os da rede overlay ´e chamada de enlace virtual, e corresponde `a rota entre os respectivos n´os na rede f´ısica. Cada n´o ´e respons´avel por processar e rotear pacotes segundo crit´erios espec´ıficos da rede overlay. As conex˜oes entre os n´os do overlay s˜ao implementadas na rede f´ısica usando alguma forma de tunelamento (isto ´e, os pacotes da rede overlay s˜ao encapsulados em pacotes da rede subjacente), e n˜ao necessitam seguir nenhuma topologia predeterminada. Assim como em uma camada de rede t´ıpica, as func¸˜oes principais de uma rede overlay s˜ao o encaminhamento de pacotes, que determina como os n´os da rede processam um pacote em trˆansito para que ele chegue ao seu destino, e o roteamento, que ´e o processo atrav´es do qual o conhecimento sobre as diferentes rotas entre n´os da rede ´e calculado, armazenado e disseminado.

rede física rede overlay

Figura 2.1: Rede overlay sobreposta a uma rede f´ısica

Recentemente, um n´umero crescente de autores passou a defender a id´eia de que a Internet est´a engessada em raz˜ao de seu pr´oprio sucesso: a rede que um dia foi essencialmente acadˆemica e por isso afeita a experiˆencias tornou-se uma infra-estrutura cuja estabilidade hoje ´e cr´ıtica para um grande n´umero de pessoas e organizac¸˜oes, e que portanto tornou-se refrat´aria a experimentac¸˜oes fora da ca-mada de aplicac¸˜ao [Peterson et al., 2002]. Exemplos claros desse fenˆomeno podem ser vistos na len-tid˜ao na transic¸˜ao do IPv4 para o IPv6 e na dificuldade de se implementar suporte nativo a IP multicast nos backbones da rede. As redes overlay oferecem uma soluc¸˜ao para driblar esse engessamento: em vez de propor alterac¸˜oes aos protocolos fundamentais da Internet, pesquisadores e desenvolvedores podem implementar novas funcionalidades em um overlay constru´ıdo sobre a pr´opria Internet.

Outro benef´ıcio da migrac¸˜ao de funcionalidades para a camada de aplicac¸˜ao proporcionada pelas redes overlay ´e que os roteadores podem se ocupar apenas de tarefas b´asicas, como o encaminhamento

(58)

Arquitetura de sistema

Descentralizada – Topologias de redes P2P

N˜ao estruturadas

Exemplos: Napster, Gnutella, Freenet

N˜ao estruturadas com super-n´os

Exemplos: Kazaa

Estruturadas

(59)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Napster

Arquivos s˜ao mantidos em cada n´o da rede

Lista de arquivos s˜ao enviados para o servidor central do Napster Servidor retorna a lista de IPs que possuem o arquivo

Transferˆencia de arquivos entre 2 clientes

(60)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Gnutella Cada n´o possui um ´ındice parcial que representa um subconjunto de todos os n´os participantes da rede – n˜ao existe n´o central

Lei de potˆencia – muitos n´os possuem poucos vizinhos e poucos n´os possuem muitos vizinhos (conceito de Mundo Pequeno)

1 4 5 2 3 6 9 7 10 12 11 13 initial final 8 14 Busca por inunda¸c˜ao (flood )

(61)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Gnutella Cada n´o possui um ´ındice parcial que representa um subconjunto de todos os n´os participantes da rede – n˜ao existe n´o central

Lei de potˆencia – muitos n´os possuem poucos vizinhos e poucos n´os possuem muitos vizinhos (conceito de Mundo Pequeno)

1 4 5 2 3 6 9 7 10 12 11 13 initial final 8 14 Busca por inunda¸c˜ao (flood ) 25/31

(62)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Gnutella Cada n´o possui um ´ındice parcial que representa um subconjunto de todos os n´os participantes da rede – n˜ao existe n´o central

Lei de potˆencia – muitos n´os possuem poucos vizinhos e poucos n´os possuem muitos vizinhos (conceito de Mundo Pequeno)

1 4 5 2 3 6 9 7 10 12 11 13 initial final 8 14 Busca por inunda¸c˜ao (flood )

(63)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Gnutella Cada n´o possui um ´ındice parcial que representa um subconjunto de todos os n´os participantes da rede – n˜ao existe n´o central

Lei de potˆencia – muitos n´os possuem poucos vizinhos e poucos n´os possuem muitos vizinhos (conceito de Mundo Pequeno)

1 4 5 2 3 6 9 7 10 12 11 13 initial final 8 14 Busca por inunda¸c˜ao (flood ) 25/31

(64)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Gnutella Cada n´o possui um ´ındice parcial que representa um subconjunto de todos os n´os participantes da rede – n˜ao existe n´o central

Lei de potˆencia – muitos n´os possuem poucos vizinhos e poucos n´os possuem muitos vizinhos (conceito de Mundo Pequeno)

1 4 5 2 3 6 9 7 10 12 11 13 initial final 8 14 Busca por inunda¸c˜ao (flood )

(65)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Gnutella Cada n´o possui um ´ındice parcial que representa um subconjunto de todos os n´os participantes da rede – n˜ao existe n´o central

Lei de potˆencia – muitos n´os possuem poucos vizinhos e poucos n´os possuem muitos vizinhos (conceito de Mundo Pequeno)

1 4 5 2 3 6 9 7 10 12 11 13 initial final 8 14 Busca por inunda¸c˜ao (flood ) 25/31

(66)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Gnutella Cada n´o possui um ´ındice parcial que representa um subconjunto de todos os n´os participantes da rede – n˜ao existe n´o central

Lei de potˆencia – muitos n´os possuem poucos vizinhos e poucos n´os possuem muitos vizinhos (conceito de Mundo Pequeno)

1 4 5 2 3 6 9 7 10 12 11 13 initial final 8 14 Busca por inunda¸c˜ao (flood )

(67)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Gnutella Cada n´o possui um ´ındice parcial que representa um subconjunto de todos os n´os participantes da rede – n˜ao existe n´o central

Lei de potˆencia – muitos n´os possuem poucos vizinhos e poucos n´os possuem muitos vizinhos (conceito de Mundo Pequeno)

1 4 5 2 3 6 9 7 10 12 11 13 initial final 8 14 Busca por inunda¸c˜ao (flood ) 25/31

(68)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Gnutella Cada n´o possui um ´ındice parcial que representa um subconjunto de todos os n´os participantes da rede – n˜ao existe n´o central

Lei de potˆencia – muitos n´os possuem poucos vizinhos e poucos n´os possuem muitos vizinhos (conceito de Mundo Pequeno)

1 4 5 2 3 6 9 7 10 12 11 13 initial final 8 14 Busca por inunda¸c˜ao (flood + tabela cache)

(69)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Gnutella Cada n´o possui um ´ındice parcial que representa um subconjunto de todos os n´os participantes da rede – n˜ao existe n´o central

Lei de potˆencia – muitos n´os possuem poucos vizinhos e poucos n´os possuem muitos vizinhos (conceito de Mundo Pequeno)

1 4 5 2 3 6 9 7 10 12 11 13 initial final 8 14 Busca por inunda¸c˜ao (flood + tabela cache) 25/31

(70)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Gnutella Cada n´o possui um ´ındice parcial que representa um subconjunto de todos os n´os participantes da rede – n˜ao existe n´o central

Lei de potˆencia – muitos n´os possuem poucos vizinhos e poucos n´os possuem muitos vizinhos (conceito de Mundo Pequeno)

1 4 5 2 3 6 9 7 10 12 11 13 initial final 8 14 Busca por inunda¸c˜ao (flood + tabela cache)

(71)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Gnutella Cada n´o possui um ´ındice parcial que representa um subconjunto de todos os n´os participantes da rede – n˜ao existe n´o central

Lei de potˆencia – muitos n´os possuem poucos vizinhos e poucos n´os possuem muitos vizinhos (conceito de Mundo Pequeno)

1 4 5 2 3 6 9 7 10 12 11 13 initial final 8 14 Busca por inunda¸c˜ao (flood + tabela cache) 25/31

(72)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Gnutella Cada n´o possui um ´ındice parcial que representa um subconjunto de todos os n´os participantes da rede – n˜ao existe n´o central

Lei de potˆencia – muitos n´os possuem poucos vizinhos e poucos n´os possuem muitos vizinhos (conceito de Mundo Pequeno)

1 4 5 2 3 6 9 7 10 12 11 13 initial final 8 14 Busca por inunda¸c˜ao (flood + tabela cache)

(73)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas – Busca por conte´udo – Ex: Gnutella Cada n´o possui um ´ındice parcial que representa um subconjunto de todos os n´os participantes da rede – n˜ao existe n´o central

Lei de potˆencia – muitos n´os possuem poucos vizinhos e poucos n´os possuem muitos vizinhos (conceito de Mundo Pequeno)

1 4 5 2 3 6 9 7 10 12 11 13 initial final 8 14 Protocolos epidˆemicos s˜ao mais eficientes. Ex: gossip 25/31

(74)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas com Ultrapeers – Ex: Kazaa

final initial

Busca por inunda¸c˜ao ´e muito custosa

Supern´os concentram ´ındices de seus vizinhos

Temos aqui duas redes sobrepostas: uma para os supern´os e outra para os n´os comuns

(75)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas com Ultrapeers – Ex: Kazaa

query

final initial

Busca por inunda¸c˜ao ´e muito custosa

Supern´os concentram ´ındices de seus vizinhos

Temos aqui duas redes sobrepostas: uma para os supern´os e outra para os n´os comuns

Como determinar quem ser´a supern´o?

(76)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas com Ultrapeers – Ex: Kazaa

query

final initial

Busca por inunda¸c˜ao ´e muito custosa

Supern´os concentram ´ındices de seus vizinhos

Temos aqui duas redes sobrepostas: uma para os supern´os e outra para os n´os comuns

(77)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas com Ultrapeers – Ex: Kazaa

final initial

Busca por inunda¸c˜ao ´e muito custosa

Supern´os concentram ´ındices de seus vizinhos

Temos aqui duas redes sobrepostas: uma para os supern´os e outra para os n´os comuns

Como determinar quem ser´a supern´o?

(78)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas com Ultrapeers – Ex: Kazaa

queryHit

final initial

Busca por inunda¸c˜ao ´e muito custosa

Supern´os concentram ´ındices de seus vizinhos

Temos aqui duas redes sobrepostas: uma para os supern´os e outra para os n´os comuns

(79)

Arquitetura de sistema

Descentralizada – Redes P2P n˜ao estruturadas com Ultrapeers – Ex: Kazaa

queryHit

final initial

Busca por inunda¸c˜ao ´e muito custosa

Supern´os concentram ´ındices de seus vizinhos

Temos aqui duas redes sobrepostas: uma para os supern´os e outra para os n´os comuns

Como determinar quem ser´a supern´o?

(80)

Arquitetura de sistema

Descentralizada – Redes P2P estruturadas – Distributed Hash Table (DHT) Tabela de dispers˜ao / Tabela hash – Hash Table

O dado passa por um algoritmo de resumo (hash) para encontrar a posi¸c˜ao (´ındice ou chave) onde ser´a armazenado

Colis˜oes podem ser tratadas por meio de listas encadeadas

Distributed Hash Table

Algoritmo de hash serve para determinar em qual n´o ficar´a disponibilizada a informa¸c˜ao sobre a localiza¸c˜ao de um recurso

(81)

Arquitetura de sistema

Descentralizada – Redes P2P estruturadas – Distributed Hash Table (DHT) Tabela de dispers˜ao / Tabela hash – Hash Table

O dado passa por um algoritmo de resumo (hash) para encontrar a posi¸c˜ao (´ındice ou chave) onde ser´a armazenado

Colis˜oes podem ser tratadas por meio de listas encadeadas

Distributed Hash Table

Algoritmo de hash serve para determinar em qual n´o ficar´a disponibilizada a informa¸c˜ao sobre a localiza¸c˜ao de um recurso

(82)

Arquitetura de sistema

Descentralizada – Distributed Hash Table (DHT) – Ex: Chord Sequˆencia de n´umeros dispostos

de forma circular

Cada n´o ocupa uma posi¸c˜ao no c´ırculo

posi¸c˜ao= hash(IP) mod n Figura ao lado mostra uma rede com 4 n´os (1, 6, 11 e 13)

n ´e um valor relativamente grande de forma que ´e bem improv´avel que dois IPs distintos resultem em uma mesma posi¸c˜ao Cada n´o s´o precisa conhecer seu sucessor (sentido hor´ario)

(83)

Arquitetura de sistema

Descentralizada – Distributed Hash Table (DHT) – Ex: Chord

Adicionando dados

Cada n´o ´e respons´avel por armazenar um subconjunto de todos os ´ındices (chave,valor)

O dado ´e atribu´ıdo a um n´o com base no hash de sua chave

Exemplo

N´o 1 ´e respons´avel pelas chaves: 14, 15, 0 e 1 N´o 6 ´e respons´avel pelas chaves: 2, 3, 4, 5 e 6 N´o 11 ´e respons´avel pelas chaves: 7, 8, 9, 10 e 11 N´o 13 ´e respons´avel pelas chaves: 12 e 13

(84)

Arquitetura de sistema

Descentralizada – Distributed Hash Table (DHT) – Ex: Chord

Ingresso de um novo n´o na rede N´o 11 era respons´avel pelas chaves: 7, 8, 9, 10 e 11

N´o 8 ´e respons´avel pelas chaves: 7 e 8

N´o 11 ´e agora respons´avel pelas chaves: 9, 10 e 11

(85)

Arquitetura de sistema

Descentralizada – Distributed Hash Table (DHT) – Ex: Chord

Buscando por um recurso

Cada n´o s´o precisa conhecer seu sucessor

Buscas s˜ao encaminhadas para n´os sucessores at´e encontrar o detentor do valor que est´a sendo buscado

Complexidade da busca O(n) (linear)

(86)

Arquitetura de sistema

Descentralizada – Distributed Hash Table (DHT) – Ex: Chord

Uso de finger table permite otimizar as buscas – O(log n)

Cada n´o armazena uma lista parcial dos demais n´o da rede Rede com 14 n´os 96 92 88 68 62 key = 12 Finger table 8+1 8+2 8+4 8+8 8+16 8+32 14 14 14 21 32 42 14 21 51 8 56 48 32 38 42 H: 54 1 2 3 4 5 6 7 8 9 10 11 12 13 14

No1 buscando pelos recursos

h = hash(12) 54

(87)

Arquitetura de sistema

Descentralizada – Distributed Hash Table (DHT) – Ex: Chord

Uso de finger table permite otimizar as buscas – O(log n)

Cada n´o armazena uma lista parcial dos demais n´o da rede Rede com 14 n´os 96 92 88 68 62 key = 12 Finger table 8+1 8+2 8+4 8+8 8+16 8+32 14 14 14 21 32 42 14 21 51 8 56 48 32 38 42 H: 54 1 2 3 4 5 6 7 8 9 10 11 12 13 14

No1 buscando pelos recursos

h = hash(12) 54

com chave do No12

(88)

Arquitetura de sistema

Descentralizada – Distributed Hash Table (DHT) – Ex: Chord

Uso de finger table permite otimizar as buscas – O(log n)

Cada n´o armazena uma lista parcial dos demais n´o da rede Rede com 14 n´os 96 92 88 68 62 key = 12 Finger table 8+1 8+2 8+4 8+8 8+16 8+32 14 14 14 21 32 42 14 21 51 8 56 48 32 38 42 H: 54 1 2 3 4 5 6 7 8 9 10 11 12 13 14

No1 buscando pelos recursos

h = hash(12) 54

(89)

Arquitetura de sistema

Descentralizada – Distributed Hash Table (DHT) – Ex: Chord

Uso de finger table permite otimizar as buscas – O(log n)

Cada n´o armazena uma lista parcial dos demais n´o da rede Rede com 14 n´os 96 92 88 68 62 key = 12 Finger table 8+1 8+2 8+4 8+8 8+16 8+32 14 14 14 21 32 42 14 21 51 8 56 48 32 38 42 H: 54 1 2 3 4 5 6 7 8 9 10 11 12 13 14

No1 buscando pelos recursos

h = hash(12) 54

com chave do No12

(90)

Arquitetura de sistema

H´ıbrida: Combina centralizada com descentralizada

N´o central mant´em um ´ındice sobre os demais n´os ativos na rede e os recursos disponibilizados por esses

Ex: Bittorrent

Arquivos s˜ao fracionados em blocos e esses s˜ao compartilhados

Requisitante obt´em blocos sem ordem espec´ıfica

Arquivo .torrent cont´em informa¸c˜oes sobre o tracker

Tracker – servidor que mant´em a lista de n´os ativos para um determinado .torrent

Onde est´a ponto cr´ıtico de falha ou gargalo de desempenho?

(91)

Arquitetura de sistema

H´ıbrida: Combina centralizada com descentralizada

N´o central mant´em um ´ındice sobre os demais n´os ativos na rede e os recursos disponibilizados por esses

Ex: Bittorrent

Arquivos s˜ao fracionados em blocos e esses s˜ao compartilhados

Requisitante obt´em blocos sem ordem espec´ıfica

Arquivo .torrent cont´em informa¸c˜oes sobre o tracker

Tracker – servidor que mant´em a lista de n´os ativos para um determinado .torrent

Onde est´a ponto cr´ıtico de falha ou gargalo de desempenho?

R: trackers

(92)

Arquitetura de sistema

H´ıbrida: Combina centralizada com descentralizada

N´o central mant´em um ´ındice sobre os demais n´os ativos na rede e os recursos disponibilizados por esses

Ex: Bittorrent

Arquivos s˜ao fracionados em blocos e esses s˜ao compartilhados

Requisitante obt´em blocos sem ordem espec´ıfica

Arquivo .torrent cont´em informa¸c˜oes sobre o tracker

Tracker – servidor que mant´em a lista de n´os ativos para um determinado .torrent

Onde est´a ponto cr´ıtico de falha ou gargalo de desempenho?

(93)

Arquitetura de sistema

H´ıbrida – Ex: Bittorrent (figura wikipedia)

Motivo de sucesso

Encontrou uma forma para acabar com n´os ego´ıstas

Um n´o P ao notar que um n´o Q est´a pegando muito mais do que cedendo, ent˜ao P diminui sua taxa de envio para Q

(94)

Arquitetura de sistema

H´ıbrida – Ex: Bittorrent (figura wikipedia)

Motivo de sucesso

Encontrou uma forma para acabar com n´os ego´ıstas

Um n´o P ao notar que um n´o Q est´a pegando muito mais do que cedendo, ent˜ao P diminui sua taxa de envio para Q

(95)

Arquitetura de sistema

H´ıbrida – Ex: Bittorrent (figura wikipedia)

Motivo de sucesso

Encontrou uma forma para acabar com n´os ego´ıstas

Um n´o P ao notar que um n´o Q est´a pegando muito mais do que cedendo, ent˜ao P diminui sua taxa de envio para Q

(96)

Arquitetura de sistema

H´ıbrida – Ex: Bittorrent (figura wikipedia)

Motivo de sucesso

Encontrou uma forma para acabar com n´os ego´ıstas

Um n´o P ao notar que um n´o Q est´a pegando muito mais do que cedendo, ent˜ao P diminui sua taxa de envio para Q

(97)

Arquitetura de sistema

H´ıbrida – Ex: Bittorrent (figura wikipedia)

Motivo de sucesso

Encontrou uma forma para acabar com n´os ego´ıstas

Um n´o P ao notar que um n´o Q est´a pegando muito mais do que cedendo, ent˜ao P diminui sua taxa de envio para Q

(98)

Arquitetura de sistema

H´ıbrida – Ex: Bittorrent (figura wikipedia)

Motivo de sucesso

Encontrou uma forma para acabar com n´os ego´ıstas

Um n´o P ao notar que um n´o Q est´a pegando muito mais do que cedendo, ent˜ao P diminui sua taxa de envio para Q

(99)

Arquitetura de sistema

H´ıbrida – Ex: Bittorrent (figura wikipedia)

Motivo de sucesso

Encontrou uma forma para acabar com n´os ego´ıstas

Um n´o P ao notar que um n´o Q est´a pegando muito mais do que cedendo, ent˜ao P diminui sua taxa de envio para Q

(100)

Arquitetura de sistema

H´ıbrida – Ex: Bittorrent (figura wikipedia)

Motivo de sucesso

Encontrou uma forma para acabar com n´os ego´ıstas

Um n´o P ao notar que um n´o Q est´a pegando muito mais do que cedendo, ent˜ao P diminui sua taxa de envio para Q

(101)

Arquitetura de sistema

H´ıbrida – Ex: Bittorrent (figura wikipedia)

Motivo de sucesso

Encontrou uma forma para acabar com n´os ego´ıstas

Um n´o P ao notar que um n´o Q est´a pegando muito mais do que cedendo, ent˜ao P diminui sua taxa de envio para Q

(102)

Arquitetura de sistema

H´ıbrida – Ex: Bittorrent (figura wikipedia)

Motivo de sucesso

Encontrou uma forma para acabar com n´os ego´ıstas

Um n´o P ao notar que um n´o Q est´a pegando muito mais do que cedendo, ent˜ao P diminui sua taxa de envio para Q

Referências

Documentos relacionados