STD29006 – Sistemas Distribu´ıdos
Tipos e arquiteturas de Sistemas Distribu´ıdosProf. Emerson Ribeiro de Mello
Instituto Federal de Santa Catarina – IFSC campus S˜ao Jos´e
http://docente.ifsc.edu.br/mello/std
08 de agosto de 2017
Sistemas de computa¸c˜ao distribu´ıdos
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
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
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
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
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
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
Sistemas de computa¸c˜
ao distribu´ıdos
Cluster: agrupamento de m´aquinas
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
Sistemas de computa¸c˜
ao distribu´ıdos
Cluster: agrupamento de m´aquinas
Sistemas de computa¸c˜
ao distribu´ıdos
Cluster: agrupamento de m´aquinas
Sistemas de computa¸c˜
ao distribu´ıdos
Sistemas de computa¸c˜
ao distribu´ıdos
Cluster: agrupamento de m´aquinas
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
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
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
Sistemas de computa¸c˜
ao distribu´ıdos
Cloud Computing ou Computa¸c˜ao em Nuvem
Sistemas de computa¸c˜
ao distribu´ıdos
Sistemas de computa¸c˜
ao distribu´ıdos
Cloud Computing ou Computa¸c˜ao em Nuvem
Sistemas de computa¸c˜
ao distribu´ıdos
Sistemas de computa¸c˜
ao distribu´ıdos
Cloud Computing ou Computa¸c˜ao em Nuvem
Sistemas de computa¸c˜
ao distribu´ıdos
Sistemas de informa¸c˜ao distribu´ıdos
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)
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)
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)
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)
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
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
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
Sistemas distribu´ıdos ub´ıquos
Arquiteturas para Sistemas Distribu´ıdos
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
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
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
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)
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
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
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
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
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
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 "
Arquitetura Centralizada – modelo cliente-servidor
Problemas com m´ultiplos clientes e um ´unico servidor
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
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
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
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
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
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
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
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
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
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
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
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
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
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 )
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
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 )
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
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 )
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
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 )
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
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)
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
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)
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
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)
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
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
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?
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
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?
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
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?
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
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
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)
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
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
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)
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
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
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
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
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?
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
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?
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
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
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
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
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
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
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
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
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
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