tipos e arquiteturas - std29006 engenharia de...
TRANSCRIPT
Tipos e arquiteturasSTD29006 – Engenharia de Telecomunicações
Prof. Emerson Ribeiro de Mello
http://docente.ifsc.edu.br/mello/std
30 DE MARÇO DE 2020
Tipos de Sistemas Distribuídos
Sistemas de computação distribuídos
Cluster: agrupamento de máquinas
Aglomerado de computadores semelhantesMesmo sistema operacional e conectados através de uma rede local
O administrador é dono de todo do cluster
Usado para processamento paralelo – no primário distribui tarefaspara os demais nós
Ex: cluster Beowulf criado pela NASA em 1994
1/37
Cluster: agrupamento de máquinas
Summit - EUA - O mais rápido atualmente – 148.6 PFlop/s2.414.592 núcleos
2/37
Cluster: agrupamento de máquinas
Sunway TaihuLight - China - O mais rápido em 2017 – 93 PFlop/s10.649.600 núcleos, memória: 1.310.720 GB
2/37
Cluster: agrupamento de máquinas
Tupã - Brasil - Em 2010 ficou na posição 29/500 – 258TFlop/sR$ 23 milhões e é 2.580 mais rápido que um core i7
2/37
Cluster: agrupamento de máquinas
Santos Dumont - Brasil - 1,1 PFlop/s18.144 núcleos, 756 nós computacionais
http://sdumont.lncc.br
2/37
Cluster: agrupamento de máquinas
Cluster Beowulf - simples, porém acessível
2/37
Cluster: agrupamento de máquinas
Cluster com Playstation3Em 2010 a força aérea americana fez um com 1.760 PS3, obtendo
500TFlop/s – posição 33/500
2/37
Cluster: agrupamento de máquinas
Cluster com 32 raspberry PI Linux
2/37
Cluster: agrupamento de máquinas
2/37
Cluster: agrupamento de máquinas
2/37
Cluster: agrupamento de máquinas
2/37
Grades computacionais ou Grid
GridAmbientes heterogêneos: cada nó pode ter um hardware, S.O., rede,domínio administrativo e políticas de segurança diferentes
Middleware é responsável por prover abstração para estaheterogeneidade
Grids geralmente são usadas para constituir Organizações VirtuaisDiversas instituições colaboram com seus recursos (cluster,armazenamento, etc.)
Políticas de uso determinam quanto tempo cada organização poderáusar a grid
3/37
Cloud Computing ou Computação em Nuvem
Permite que recursoscomputacionais possam serprovidos de maneira rápida ecom mínimo esforço degerenciamento por parte doprovedor de serviço
Permite adicionar ou removerrecursos de acordo com ademanda
Similar as redes de energia ede telefonia
4/37
Cloud Computing ou Computação em Nuvem
Ofere como serviço aplicações, bem como softwares e hardwaresque hospedam estas aplicações
A “nuvem” é conjunto de hardware e software no datacenter
Modelo de implantaçãoNuvem privada
Toda a nuvem a construída dentro dos limites de uma instituição e évoltada exclusivamente para seus usuários
Ex: Nuvem USP – http://goo.gl/bK24Xr
Nuvem públicaOferece os serviços e a tarifação é feita de acordo com o uso
A nuvem armazena dados de diferentes clientes
Ex: Amazon EC2 – http://goo.gl/iGKA8K
5/37
Cloud Computing ou Computação em Nuvem
6/37
Cloud Computing ou Computação em Nuvem
6/37
Cloud Computing ou Computação em Nuvem
6/37
Cloud Computing ou Computação em Nuvem
6/37
Cloud Computing ou Computação em Nuvem
6/37
Sistemas distribuídos ubíquos – IoT
7/37
Sistemas distribuídos ubíquos – IoT
7/37
Fog computing – computação em névoa
Nuvem
8/37
Fog computing – computação em névoa
Névoa
8/37
Fog computing – computação em névoa
8/37
Fog computing – computação em névoa
8/37
Fog computing – computação em névoa
Poder do processamentomais perto do limite daborda da rede
Dados, computação,medição são distribuídos ecolocados nos locais maisadequados e eficientes
Redução da quantidade dedados transmitidos
8/37
Sistemas de informação distribuídos
Processamento de Transações
Sistema do hotel indisponível, ou o hotel não tem mais vaga (acessoconcorrente de diversos clientes)
9/37
Processamento de Transações
Sistema do hotel indisponível, ou o hotel não tem mais vaga (acessoconcorrente de diversos clientes)
9/37
Processamento de Transações
Sistema do hotel indisponível, ou o hotel não tem mais vaga (acessoconcorrente de diversos clientes)
9/37
Processamento de Transações
Sistema do hotel indisponível, ou o hotel não tem mais vaga (acessoconcorrente de diversos clientes)
9/37
Processamento de Transações
Transações tem por objetivo garantir a integridade de recursosRecurso acessado por diversos processos de forma concorrente
Processo realizando operações sobre um ou mais recursos
Modo de operação das transações1 Indicar início da transação
2 Realizar operações sobre os recursos
3 Indicar o término da transaçãocommit – tenta salvar as alterações
abort – ignora as alterações e volta para os valores originais
Ou todas as operações na transação são executadas ou nenhuma delasserá executada
10/37
Características das Transações
AtômicaPara um observador externo, a transação é indivisível
É executada em sua totalidade ou não executa
ConsistenteToda transição leva o sistema de um estado válido para um outroestado válido
IsoladaTransações concorrentes não geram interferência entre si
DuráveisUma vez que a transação foi concluída com sucesso (commit), entãoas modificações feitas por ela são permanentes
11/37
Sistemas distribuídos ubíquos
Formado por dispositivos móveis pequenos, alimentados por bateriae com conexão sem fio
Ex: Laptop, tablet, celular, dispositivos de automação residencial oupara saúde, rede de sensores sem fio
Requisitos para sistemas ubíquosReagir a mudanças do contexto
O dispositivo deve estar continuamente ciente das mudanças noambiente
Encorajar composições ad hocDeve ser fácil cooperar com outros dispositivos
Compartilhamento de recursos é algo implícitoProver facilidades para compartilhar informações
12/37
Arquiteturas paraSistemas Distribuídos
Arquiteturas para Sistemas DistribuídosOrganização dos Sistemas Distribuídos
Estilos de arquitetura – formas de projetar o software do SDCamadas
Objetos
Eventos
Espaço de dados compartilhados
Arquitetura de sistema – organização do SD em máquinas reaisCentralizados
Descentralizados
Híbridos
13/37
Arquitetura de softwareEstilos de arquitetura
Estilos são definidos por componentes de software (processos) e comoestes se conectam uns aos outros
Baseada emcamadasBaseada em objetosBaseada em eventosEspaço de dadoscompartilhados
14/37
Arquitetura de softwareEstilos de arquitetura
Estilos são definidos por componentes de software (processos) e comoestes se conectam uns aos outros
Baseada emcamadasBaseada em objetosBaseada em eventosEspaço de dadoscompartilhados
Databasewith Web pages
Querygenerator
Rankingcomponent
HTMLgenerator
User interface
Keyword expression
Database queries
Web page titleswith meta-information
Ranked listof page titles
HTML pagecontaining list
Processinglevel
User-interfacelevel
Data level
Processos das camadas superiores invocamprocessos das camadas inferioresSemelhante à pilha TCP/IP
14/37
Arquitetura de softwareEstilos de arquitetura
Estilos são definidos por componentes de software (processos) e comoestes se conectam uns aos outros
Baseada emcamadasBaseada em objetosBaseada em eventosEspaço de dadoscompartilhados
Cada objeto contém um estado e écapaz de realizar operações que podemser invocadas por outros objetosO objeto seria um componente desoftwareOs conectores entre os objetos podemser representadas por chamadas deprocedimento remoto (RPC)
14/37
Arquitetura de softwareEstilos de arquitetura
Estilos são definidos por componentes de software (processos) e comoestes se conectam uns aos outros
Baseada emcamadasBaseada em objetosBaseada em eventosEspaço de dadoscompartilhados
Comunicação entre os processos é feitaatravés de eventos, que podem ou nãoconter dadosO barramento de eventos (middleware) éo responsável pelo transporteEx: Sistema publish/subscribe
Processos registram o interesse emdeterminados eventos (subscribe)Processos publicam eventosMiddleware notifica somente osprocessos que assinaram aqueleevento
14/37
Arquitetura de softwareEstilos de arquitetura
Estilos são definidos por componentes de software (processos) e comoestes se conectam uns aos outros
Baseada emcamadasBaseada em objetosBaseada em eventosEspaço de dadoscompartilhados
desacoplamento espacial – um processonão precisa referenciar diretamente um outro
14/37
Arquitetura de softwareEstilos de arquitetura
Estilos são definidos por componentes de software (processos) e comoestes se conectam uns aos outros
Baseada emcamadasBaseada em objetosBaseada em eventosEspaço de dadoscompartilhados
Semelhante ao baseado em eventos,porém os dados persistem nomiddlewareAcontece também o desacoplamentotemporal
Dados persistem, mesmo se osprocessos não estiverem mais ativos
14/37
Arquitetura Centralizada – modelo cliente-servidor
Aplicação é modelada como um conjunto de serviço que sãoprovidos pelos servidores e um conjunto de clientes que acessamesses serviços
Cliente envia um pedido ao servidor e aguarda por sua resposta
Clientes precisam conhecer os servidores, porém o inverso não éverdade
Em um sistema distribuído, é possível que um servidor também sejacliente de um outro servidor
15/37
Arquitetura Centralizada – modelo cliente-servidor
Problemas com múltiplos clientes e um único servidor
Servidor pode se tornar um gargalo e ponto único de falhas
16/37
Arquitetura Centralizada – modelo cliente-servidor
Solução: Múltiplos servidores
16/37
Arquitetura Centralizada – modelo cliente-servidor
Múltiplas camadas – Servidor torna-se cliente de outro servidor
16/37
Arquitetura de sistemaCentralizada – modelo cliente-servidor
Cliente e servidor executando em máquinas distintas é a organizaçãomais comum
User interface User interface User interface
Application
User interface
Application
User interface
Application
Database
ApplicationApplication Application
Database Database Database Database Database
User interface
(a) (b) (c) (d) (e)
Client machine
Server machine
(a) Cliente como terminal burro – Ex: XorgAo cliente cabe apenas apresentar a interface gráfica
17/37
Arquitetura de sistemaCentralizada – modelo cliente-servidor
Cliente e servidor executando em máquinas distintas é a organizaçãomais comum
User interface User interface User interface
Application
User interface
Application
User interface
Application
Database
ApplicationApplication Application
Database Database Database Database Database
User interface
(a) (b) (c) (d) (e)
Client machine
Server machine
(b) Cliente fica somente com o frontendToda lógica da aplicação fica no servidor
17/37
Arquitetura de sistemaCentralizada – modelo cliente-servidor
Cliente e servidor executando em máquinas distintas é a organizaçãomais comum
User interface User interface User interface
Application
User interface
Application
User interface
Application
Database
ApplicationApplication Application
Database Database Database Database Database
User interface
(a) (b) (c) (d) (e)
Client machine
Server machine
(c) Parte da lógica da aplicação fica no clienteEx: Validações sobre preenchimento de formulários seria feita antesde enviar pela rede
17/37
Arquitetura de sistemaCentralizada – modelo cliente-servidor
Cliente e servidor executando em máquinas distintas é a organizaçãomais comum
User interface User interface User interface
Application
User interface
Application
User interface
Application
Database
ApplicationApplication Application
Database Database Database Database Database
User interface
(a) (b) (c) (d) (e)
Client machine
Server machine
(d) Toda a aplicação fica no cliente e esta invoca o servidor de Banco deDados
Organização bem comum em sistemas de gestão comercial, etc.
17/37
Arquitetura de sistemaCentralizada – modelo cliente-servidor
Cliente e servidor executando em máquinas distintas é a organizaçãomais comum
User interface User interface User interface
Application
User interface
Application
User interface
Application
Database
ApplicationApplication Application
Database Database Database Database Database
User interface
(a) (b) (c) (d) (e)
Client machine
Server machine
(e) Cliente armazena parte do banco de dadosEx: Cache do navegador web
17/37
Arquitetura de sistemaCentralizada – modelo cliente-servidor
User interface User interface User interface
Application
User interface
Application
User interface
Application
Database
ApplicationApplication Application
Database Database Database Database Database
User interface
(a) (b) (c) (d) (e)
Client machine
Server machine
1 Qual destas seria maisfácil manter?
2 Qual destas está emevidência atualmente?
Clientes leves – thin clientMaior facilidade para manter
Aplicar atualizaçãoPior desempenho
depende da latência da rede
Clientes pesados – fat clientDificuldade para manter
Diferentes versões de S.OConflitos com outrossoftwaresInstalação e atualizaçãodemandam mais tempo
Melhor desempenhoNão depende muito da rede
18/37
Arquitetura de sistemaCentralizada – modelo cliente-servidor
User interface User interface User interface
Application
User interface
Application
User interface
Application
Database
ApplicationApplication Application
Database Database Database Database Database
User interface
(a) (b) (c) (d) (e)
Client machine
Server machine
1 Qual destas seria maisfácil manter?
2 Qual destas está emevidência atualmente?
Clientes leves – thin clientMaior facilidade para manter
Aplicar atualizaçãoPior desempenho
depende da latência da rede
Clientes pesados – fat clientDificuldade para manter
Diferentes versões de S.OConflitos com outrossoftwaresInstalação e atualizaçãodemandam mais tempo
Melhor desempenhoNão depende muito da rede
18/37
Arquitetura Descentralizada – (Peer-to-Peer – P2P)
Motivação
Evitar ponto único de falhasEscalabilidadeAproveitar recursos de todos os nós participantes da rede
CaracterísticasTodo nó na rede possui a mesmafuncionalidade
Pode acessar serviços de outros nós,bem como prover
Nós são autônomos e não confiáveisRede dinâmica
Nós ingressam e saem da rede a todoinstante
19/37
Arquitetura Descentralizada – (Peer-to-Peer – P2P)
Potenciais benefícios
Escala para um grande número de nósOrganização dinâmica diante de ingressos e egressos na redeBalanceamento de cargaProcessamento em paraleloAlta disponibilidade por meio de replicação dos recursos nos nós
Qual topologia seria mais escalável?
Redes P2P são comumenteutilizadas para distribuição deconteúdo
20/37
Arquitetura Descentralizada – (Peer-to-Peer – P2P)
Potenciais benefícios
Escala para um grande número de nósOrganização dinâmica diante de ingressos e egressos na redeBalanceamento de cargaProcessamento em paraleloAlta disponibilidade por meio de replicação dos recursos nos nós
Qual topologia seria mais escalável?
Redes P2P são comumenteutilizadas para distribuição deconteúdo
20/37
Arquitetura Descentralizada – (Peer-to-Peer – P2P)
Aplicações descentralizadas necessitamestabelecer previamente um canal decomunicação
O estabelecimento de canais de comunicaçãoentre os nós de um sistema distribuído,resulta em uma rede sobreposta (overlay)
Rede lógica construída sobre uma rede físicaexistente
2. Redes Overlay: Conceitos e Experiencias 10
2.2 Redes Overlay
Uma rede overlay e uma rede logica construıda sobre uma rede fısica existente. Este nao eexatamente um conceito novo: a propria Internet foi inicialmente implementada sobre a rede publicade telefonia, e ainda hoje boa parte dos seus dados trafegam por circuitos telefonicos.
A figura 2.1 mostra um exemplo de como uma rede overlay se sobrepoe a uma rede fısica. Cadano da rede overlay e tambem um no da rede fısica. Tipicamente, a rede fısica e a propria Internet(geralmente a camada IP), e os nos overlay sao implementados por hosts, nao por roteadores. Umaconexao entre dois nos da rede overlay e chamada de enlace virtual, e corresponde a rota entre osrespectivos nos na rede fısica. Cada no e responsavel por processar e rotear pacotes segundo criteriosespecıficos da rede overlay. As conexoes entre os nos do overlay sao implementadas na rede fısicausando alguma forma de tunelamento (isto e, os pacotes da rede overlay sao encapsulados em pacotesda rede subjacente), e nao necessitam seguir nenhuma topologia predeterminada. Assim como emuma camada de rede tıpica, as funcoes principais de uma rede overlay sao o encaminhamento depacotes, que determina como os nos da rede processam um pacote em transito para que ele chegueao seu destino, e o roteamento, que e o processo atraves do qual o conhecimento sobre as diferentesrotas entre nos 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 numero crescente de autores passou a defender a ideia de que a Internet estaengessada em razao de seu proprio sucesso: a rede que um dia foi essencialmente academica e porisso afeita a experiencias tornou-se uma infra-estrutura cuja estabilidade hoje e crıtica para um grandenumero de pessoas e organizacoes, e que portanto tornou-se refrataria a experimentacoes fora da ca-mada de aplicacao [Peterson et al., 2002]. Exemplos claros desse fenomeno podem ser vistos na len-tidao na transicao do IPv4 para o IPv6 e na dificuldade de se implementar suporte nativo a IPmulticastnos backbones da rede. As redes overlay oferecem uma solucao para driblar esse engessamento: emvez de propor alteracoes aos protocolos fundamentais da Internet, pesquisadores e desenvolvedorespodem implementar novas funcionalidades em um overlay construıdo sobre a propria Internet.
Outro benefıcio da migracao de funcionalidades para a camada de aplicacao proporcionada pelasredes overlay e que os roteadores podem se ocupar apenas de tarefas basicas, como o encaminhamento
21/37
Arquitetura Descentralizada – Topologias de redes P2P
Não estruturadasExemplos: Napster e Gnutella
Não estruturadas com super-nósExemplos: Kazaa
EstruturadasExemplos: Chord, Tapestry
22/37
Redes P2P não estruturadas – Busca por conteúdo
Arquivos são mantidos emcada nó da redeLista de arquivos são enviadospara o servidor central doNapsterServidor retorna a lista de IPsque possuem o arquivoTransferência de arquivos entre2 clientes
23/37
Busca por conteúdo – Ex: Gnutella
Cada nó possui um índice parcial que representa um subconjunto detodos os nós participantes da rede – não existe nó central
Lei de potência – muitos nós possuem poucos vizinhos e poucos nóspossuem muitos vizinhos (conceito de Mundo Pequeno)
1
4
5
2
3
6
9
7
10
1211
13initial
final
8
14
Busca porinundação(flood)
24/37
Busca por conteúdo – Ex: Gnutella
Cada nó possui um índice parcial que representa um subconjunto detodos os nós participantes da rede – não existe nó central
Lei de potência – muitos nós possuem poucos vizinhos e poucos nóspossuem muitos vizinhos (conceito de Mundo Pequeno)
1
4
5
2
3
6
9
7
10
1211
13initial
final
8
14
Busca porinundação(flood)
24/37
Busca por conteúdo – Ex: Gnutella
Cada nó possui um índice parcial que representa um subconjunto detodos os nós participantes da rede – não existe nó central
Lei de potência – muitos nós possuem poucos vizinhos e poucos nóspossuem muitos vizinhos (conceito de Mundo Pequeno)
1
4
5
2
3
6
9
7
10
1211
13initial
final
8
14
Busca porinundação(flood)
24/37
Busca por conteúdo – Ex: Gnutella
Cada nó possui um índice parcial que representa um subconjunto detodos os nós participantes da rede – não existe nó central
Lei de potência – muitos nós possuem poucos vizinhos e poucos nóspossuem muitos vizinhos (conceito de Mundo Pequeno)
1
4
5
2
3
6
9
7
10
1211
13initial
final
8
14
Busca porinundação(flood)
24/37
Busca por conteúdo – Ex: Gnutella
Cada nó possui um índice parcial que representa um subconjunto detodos os nós participantes da rede – não existe nó central
Lei de potência – muitos nós possuem poucos vizinhos e poucos nóspossuem muitos vizinhos (conceito de Mundo Pequeno)
1
4
5
2
3
6
9
7
10
1211
13initial
final
8
14
Busca porinundação(flood)
24/37
Busca por conteúdo – Ex: Gnutella
Cada nó possui um índice parcial que representa um subconjunto detodos os nós participantes da rede – não existe nó central
Lei de potência – muitos nós possuem poucos vizinhos e poucos nóspossuem muitos vizinhos (conceito de Mundo Pequeno)
1
4
5
2
3
6
9
7
10
1211
13initial
final
8
14
Busca porinundação(flood)
24/37
Busca por conteúdo – Ex: Gnutella
Cada nó possui um índice parcial que representa um subconjunto detodos os nós participantes da rede – não existe nó central
Lei de potência – muitos nós possuem poucos vizinhos e poucos nóspossuem muitos vizinhos (conceito de Mundo Pequeno)
1
4
5
2
3
6
9
7
10
1211
13initial
final
8
14
Busca porinundação(flood)
24/37
Busca por conteúdo – Ex: Gnutella
Cada nó possui um índice parcial que representa um subconjunto detodos os nós participantes da rede – não existe nó central
Lei de potência – muitos nós possuem poucos vizinhos e poucos nóspossuem muitos vizinhos (conceito de Mundo Pequeno)
1
4
5
2
3
6
9
7
10
1211
13initial
final
8
14
Busca porinundação(flood)
24/37
Busca por conteúdo – Ex: Gnutella
Cada nó possui um índice parcial que representa um subconjunto detodos os nós participantes da rede – não existe nó central
Lei de potência – muitos nós possuem poucos vizinhos e poucos nóspossuem muitos vizinhos (conceito de Mundo Pequeno)
1
4
5
2
3
6
9
7
10
1211
13initial
final
8
14
Busca porinundação(flood + tabelacache)
24/37
Busca por conteúdo – Ex: Gnutella
Cada nó possui um índice parcial que representa um subconjunto detodos os nós participantes da rede – não existe nó central
Lei de potência – muitos nós possuem poucos vizinhos e poucos nóspossuem muitos vizinhos (conceito de Mundo Pequeno)
1
4
5
2
3
6
9
7
10
1211
13initial
final
8
14
Busca porinundação(flood + tabelacache)
24/37
Busca por conteúdo – Ex: Gnutella
Cada nó possui um índice parcial que representa um subconjunto detodos os nós participantes da rede – não existe nó central
Lei de potência – muitos nós possuem poucos vizinhos e poucos nóspossuem muitos vizinhos (conceito de Mundo Pequeno)
1
4
5
2
3
6
9
7
10
1211
13initial
final
8
14
Busca porinundação(flood + tabelacache)
24/37
Busca por conteúdo – Ex: Gnutella
Cada nó possui um índice parcial que representa um subconjunto detodos os nós participantes da rede – não existe nó central
Lei de potência – muitos nós possuem poucos vizinhos e poucos nóspossuem muitos vizinhos (conceito de Mundo Pequeno)
1
4
5
2
3
6
9
7
10
1211
13initial
final
8
14
Busca porinundação(flood + tabelacache)
24/37
Busca por conteúdo – Ex: Gnutella
Cada nó possui um índice parcial que representa um subconjunto detodos os nós participantes da rede – não existe nó central
Lei de potência – muitos nós possuem poucos vizinhos e poucos nóspossuem muitos vizinhos (conceito de Mundo Pequeno)
1
4
5
2
3
6
9
7
10
1211
13initial
final
8
14
Busca porinundação(flood + tabelacache)
24/37
Busca por conteúdo – Ex: Gnutella
Cada nó possui um índice parcial que representa um subconjunto detodos os nós participantes da rede – não existe nó central
Lei de potência – muitos nós possuem poucos vizinhos e poucos nóspossuem muitos vizinhos (conceito de Mundo Pequeno)
1
4
5
2
3
6
9
7
10
1211
13initial
final
8
14
Protocolosepidêmicossão maiseficientes. Ex:gossip
24/37
Redes P2P não estruturadas com Ultrapeers – Ex: Kazaa
final
initial
Busca por inundação émuito custosa
Supernós concentramíndices de seus vizinhos
Temos aqui duas redes sobrepostas: uma para os supernós e outrapara os nós comuns
Como determinar quem será supernó?
25/37
Redes P2P não estruturadas com Ultrapeers – Ex: Kazaa
query
final
initial
Busca por inundação émuito custosa
Supernós concentramíndices de seus vizinhos
Temos aqui duas redes sobrepostas: uma para os supernós e outrapara os nós comuns
Como determinar quem será supernó?
25/37
Redes P2P não estruturadas com Ultrapeers – Ex: Kazaa
query
final
initial
Busca por inundação émuito custosa
Supernós concentramíndices de seus vizinhos
Temos aqui duas redes sobrepostas: uma para os supernós e outrapara os nós comuns
Como determinar quem será supernó?
25/37
Redes P2P não estruturadas com Ultrapeers – Ex: Kazaa
final
initial
Busca por inundação émuito custosa
Supernós concentramíndices de seus vizinhos
Temos aqui duas redes sobrepostas: uma para os supernós e outrapara os nós comuns
Como determinar quem será supernó?
25/37
Redes P2P não estruturadas com Ultrapeers – Ex: Kazaa
queryHit
final
initial
Busca por inundação émuito custosa
Supernós concentramíndices de seus vizinhos
Temos aqui duas redes sobrepostas: uma para os supernós e outrapara os nós comuns
Como determinar quem será supernó?
25/37
Redes P2P não estruturadas com Ultrapeers – Ex: Kazaa
queryHit
final
initial
Busca por inundação émuito custosa
Supernós concentramíndices de seus vizinhos
Temos aqui duas redes sobrepostas: uma para os supernós e outrapara os nós comuns
Como determinar quem será supernó?
25/37
Tabelas de dispersão (Hash table)
Função hash sobre um valor (V) para encontrar a posição (índice)onde será armazenado
Para buscar: Dado uma chave (K), retornará um valor (V)
1 Map<String, Filme> catalogo = new HashMap<>();
2 Filme objeto = new Filme("Titulo");
3 catalogo.put("film~ao", objeto);
45 Filme res = catalogo.get("film~ao");
26/37
Redes P2P estruturadas – Distributed Hash Table (DHT)
Algoritmo de hash serve para determinar em qual nó (índice) seráarmazenado um valor
Mapeia chaves (K) ⇒ Nós
Apresentam mecanismos que controlam a topologia da rede edistribuem os recursos por nós específicos
Adequado para ambientes de larga escala
Buscam tendem a ser mais eficientes do que nas redes nãoestruturadas
Aplicações que usam DHTTracker distribuído do BitTorrent, eDonkey, Freenet
27/37
Chord – protocolo e algoritmo para P2P DHT
Especifica como as chaves (K) sãoatribuídas aos nós
Como um nó descobrirá o valor (V)para uma dada chave (K)
Cada nó ocupa uma posição no círculoposição= hash(IP) mod n
Figura ao lado mostra uma rede com4 nós (1, 6, 11 e 13)
Sucessor
O sucessor de um identificador é o primeiro nó no sentido horáriocujo ID é igual ou sucede o identificador
Quais os sucessores dos Ids: 12, 1, 4 e 8?
28/37
Chord – protocolo e algoritmo para P2P DHT
Especifica como as chaves (K) sãoatribuídas aos nós
Como um nó descobrirá o valor (V)para uma dada chave (K)
Cada nó ocupa uma posição no círculoposição= hash(IP) mod n
Figura ao lado mostra uma rede com4 nós (1, 6, 11 e 13)
Sucessor
O sucessor de um identificador é o primeiro nó no sentido horáriocujo ID é igual ou sucede o identificador
Quais os sucessores dos Ids: 12, 1, 4 e 8?
28/37
Chord
Cada nó mantém um ponteiro para o seu nó sucessor
O sucessor do nó n é sucessor(n+1)O sucessor de 1 é:
O sucessor de 6 é:
O sucessor de 11 é:
O sucessor de 13 é:
29/37
Chord
Cada nó mantém um ponteiro para o seu nó sucessor
O sucessor do nó n é sucessor(n+1)O sucessor de 1 é: sucessor(2) = 6
O sucessor de 6 é: sucessor(7) = 11
O sucessor de 11 é: sucessor(12) = 13
O sucessor de 13 é: sucessor(14) = 1
29/37
DHT Chord – adicionando dados na rede
Cada nó é responsável por armazenar um subconjunto de todos osíndices (chave,valor)O resultado da função hash sobre um dado irá indicar em qual nóessa informação será armazenada
Exemplo
Chaves no Nó 114, 15, 0 e 1
Chaves no Nó 62, 3, 4, 5 e 6
Chaves no Nó 117, 8, 9, 10 e 11
Chaves no Nó 1312 e 13
30/37
DHT Chord – adicionando dados na rede
31/37
DHT Chord – adicionando dados na rede
31/37
DHT Chord – ingresso de um nó na rede na posição 8
AntesChaves no Nó 1
14, 15, 0 e 1Chaves no Nó 6
2, 3, 4, 5 e 6Chaves no Nó 11
7, 8, 9, 10 e 11Chaves no Nó 13
12 e 13
Depois
Chaves no Nó 114, 15, 0 e 1
Chaves no Nó 62, 3, 4, 5 e 6
Chaves no Nó 87 e 8
Chaves no Nó 119, 10 e 11
Chaves no Nó 1312 e 13
32/37
DHT Chord – ingresso de um nó na rede na posição 8
33/37
DHT Chord – ingresso de um nó na rede na posição 8
33/37
DHT Chord – busca por um recurso na rede
Calcule o hash(K) e envia mensagem de sucessor para sucessor atéatingir o nó sucessor de K
Complexidade da busca O(n) (linear) (pior caso com N nós)
Nó 1 busca por “música”
hash("musica") = 9
Busca percorre os nós 1, 6 e 11
Nó 11 responde para nó 1
34/37
DHT Chord - otimizando buscas com finger table
Cada nó possui Finger table (tabela de roteamento) que contémponteiro para sucessores(n+ 2i−1), onde i = 1 . . . j e sendo j onúmero de linhas na finger table
log2(N) saltos de qualquer nó para qualquer outro nó
Complexidade da busca O(log n)
Exemplo: log2(10.000.000) ' 23
35/37
DHT Chord - otimizando buscas com finger table
Cada nó possui Finger table (tabela de roteamento) que contémponteiro para sucessores(n+ 2i−1), onde i = 1 . . . j e sendo j onúmero de linhas na finger table
log2(N) saltos de qualquer nó para qualquer outro nó
Complexidade da busca O(log n)
Exemplo: log2(10.000.000) ' 23
35/37
Híbrida: Combina centralizada com descentralizada
Nó central mantém um índice sobre os demais nós ativos na rede eos recursos disponibilizados por essesEx: Bittorrent
Arquivos são fracionados em blocos e esses são compartilhadosRequisitante obtém blocos sem ordem específica
Arquivo .torrent contém informações sobre o trackerTracker – servidor que mantém a lista de nós ativos para umdeterminado .torrent
Onde está ponto críticode falha ou gargalo dedesempenho?
R: trackers
36/37
Híbrida: Combina centralizada com descentralizada
Nó central mantém um índice sobre os demais nós ativos na rede eos recursos disponibilizados por essesEx: Bittorrent
Arquivos são fracionados em blocos e esses são compartilhadosRequisitante obtém blocos sem ordem específica
Arquivo .torrent contém informações sobre o trackerTracker – servidor que mantém a lista de nós ativos para umdeterminado .torrent
Onde está ponto críticode falha ou gargalo dedesempenho?
R: trackers
36/37
Híbrida: Combina centralizada com descentralizada
Nó central mantém um índice sobre os demais nós ativos na rede eos recursos disponibilizados por essesEx: Bittorrent
Arquivos são fracionados em blocos e esses são compartilhadosRequisitante obtém blocos sem ordem específica
Arquivo .torrent contém informações sobre o trackerTracker – servidor que mantém a lista de nós ativos para umdeterminado .torrent
Onde está ponto críticode falha ou gargalo dedesempenho?
R: trackers
36/37
Híbrida – Ex: Bittorrent (figura wikipedia)
Motivo de sucesso
Encontrou uma forma paraacabar com nós egoístasUm nó P ao notar que um nó Qestá pegando muito mais doque cedendo, então P diminuisua taxa de envio para Q
37/37
Híbrida – Ex: Bittorrent (figura wikipedia)
Motivo de sucesso
Encontrou uma forma paraacabar com nós egoístasUm nó P ao notar que um nó Qestá pegando muito mais doque cedendo, então P diminuisua taxa de envio para Q
37/37
Híbrida – Ex: Bittorrent (figura wikipedia)
Motivo de sucesso
Encontrou uma forma paraacabar com nós egoístasUm nó P ao notar que um nó Qestá pegando muito mais doque cedendo, então P diminuisua taxa de envio para Q
37/37
Híbrida – Ex: Bittorrent (figura wikipedia)
Motivo de sucesso
Encontrou uma forma paraacabar com nós egoístasUm nó P ao notar que um nó Qestá pegando muito mais doque cedendo, então P diminuisua taxa de envio para Q
37/37
Híbrida – Ex: Bittorrent (figura wikipedia)
Motivo de sucesso
Encontrou uma forma paraacabar com nós egoístasUm nó P ao notar que um nó Qestá pegando muito mais doque cedendo, então P diminuisua taxa de envio para Q
37/37
Híbrida – Ex: Bittorrent (figura wikipedia)
Motivo de sucesso
Encontrou uma forma paraacabar com nós egoístasUm nó P ao notar que um nó Qestá pegando muito mais doque cedendo, então P diminuisua taxa de envio para Q
37/37
Híbrida – Ex: Bittorrent (figura wikipedia)
Motivo de sucesso
Encontrou uma forma paraacabar com nós egoístasUm nó P ao notar que um nó Qestá pegando muito mais doque cedendo, então P diminuisua taxa de envio para Q
37/37
Híbrida – Ex: Bittorrent (figura wikipedia)
Motivo de sucesso
Encontrou uma forma paraacabar com nós egoístasUm nó P ao notar que um nó Qestá pegando muito mais doque cedendo, então P diminuisua taxa de envio para Q
37/37
Híbrida – Ex: Bittorrent (figura wikipedia)
Motivo de sucesso
Encontrou uma forma paraacabar com nós egoístasUm nó P ao notar que um nó Qestá pegando muito mais doque cedendo, então P diminuisua taxa de envio para Q
37/37
Híbrida – Ex: Bittorrent (figura wikipedia)
Motivo de sucesso
Encontrou uma forma paraacabar com nós egoístasUm nó P ao notar que um nó Qestá pegando muito mais doque cedendo, então P diminuisua taxa de envio para Q
37/37