Você está na página 1de 43

+

Sistemas Distribudos
MIDDLEWARE
Engenharia da Computao Sistemas Peer-to-Peer (P2P)
Prof. Jairson Rodrigues
jairson.rodrigues@univasf.edu.br

+
MIDDLEWARE
Sistemas Peer-to-Peer
(P2P)
AGENDA
Introduo
NAPSTER
Middleware P2P
Sobreposio de Roteamento
Pastry e Tapestry
Estudo de Caso: GNUTella

Sistemas P2P
Introduo
n A

demanda por servios na Internet tem crescido a


largas escalas

n Paradigma

para construo de sistemas distribudos


nos quais muitos hosts na Internet participam
conjuntamente para prover um servio uniforme,
compartilhando dados e recursos computacionais

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

Sistemas P2P
Limitaes da abordagem centrada em servidor
n

Altos custos de implantao

Altos custos de manuteno

Limites de escalabilidade

Gerenciamento de falhas

Limitaes de largura de banda

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

Sistemas P2P
Objetivos
n

Explorar recursos de dezenas de milhares de hosts na


Internet

Compartilhamento de dados e recursos em larga escala sem


a necessidade de servidores especficos e sua infra-estrutura
associada
n

Arquivos, cache web, informao distribuda, outros servios

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

Sistemas P2P
Objetivos
n

Disponibilizar um servio:
n
n

Auto-gerencivel
Completamente descentralizado

Balanceamento dinmico de armazenamento


Balanceamento dinmico de processamento

Expansvel dinamicamente

Hosts podem entrar e sair do servio automaticamente

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

Sistemas P2P
Caractersticas
n

Cada n (host) contribue com recursos para o sistema

Todo n tem as mesmas funcionalidades e responsabilidades

A operao correta do sistema independe de administrao


centralizada

Oferecem anonimato (limitado) entre provedores e


consumidores de recurso

Algoritmo para localizao e acesso a dados de forma a


garantir a eficincia do servio

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

Sistemas P2P
Caractersticas
n

Redes e computadores altamente heterogneos

Recursos compartilhados so volteis

No h garantias de ns ligados, conectados ou livre de


falhas

A disponibilidade de recursos imprevisvel

Entretanto, a probabilidade de falha tende a ser pequena


(replicao)

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

O gatilho para o uso de P2P


n O

que motivou/possibilitou a adoo de sistemas


P2P?
Nmero significante de usurios com largura de banda
disponvel
n Ocorreu pela primeira vez nos Estados Unidos, em 1999
n Em meados de 2004 j havia mais de 100.000.000 de
usurios conectados no mundo
n

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

10

Geraes de P2P
n

1 gerao
n
n

2 gerao
n
n
n
n

Primrdios
Servio de troca de msicas NAPSTER, 1999

Anonimato
Alta escalabilidade
Tolerncia a Falhas
Gnutella, Kazaa, Freenet, BitTorrent

3 gerao
n

Surgimento de middleware especfico: Pastry, Tapestry, CAN,


Chord, Kademila etc

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

11

Compartilhando recursos
Objetos mutveis versus objetos imutveis
n

Recursos e hosts so identificados atravs de GUID (Global


Unique IDentifier)
n

Ex: { f3b25284-8f65-4caa-85b2-7fd42c9468cf }

Hash do estado do contedo => GUID

GUID => segurana (contedo auto-assinado)


n

Desde que o contedo no mude: msicas, vdeos, binrios, arquivos


PDF etc

Para recursos mutveis


n
n
n

Adio de servidores confiveis


Sequncia de verses
Identificador de verso atual do recurso

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

12

NAPSTER
n

Primeiro uso para compartilhamento de informaes em


escala global foi
n

Msica (MP3 e outros)

Primeiro aplicativo: NAPSTER

No auge, o NAPSTER teve milhes de usurios registrados e


milhares de objetos trocados simultaneamente

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

13

NAPSTER

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

14

Modo de operao do NAPSTER

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

15

NAPSTER
Herana
n

Demonstrou ser possvel criar um servio de larga escala,


distribudo, baseado em recursos ordinrios, como
notebooks e desktops ao redor do mundo

Limitaco: ndice unificado e replicado de localizao de


msicas

Descoberta de arquivos era um gargalo

Era dependente do domnio da aplicao (baseado no fato


de que msica no muda) => objetos imutveis, apenas.

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

16

NAPSTER
Questes legais | Importante: PIRATARIA CRIME!
n

O Napster foi descontinuado devido a processos judiciais


contra seus operadores

O Napster no copiava nada. O recurso estava espalhado nos


computadores de milhes de pessoas. Podia ser
responsabilizado?

Anonimato permite a distribuio de responsabilidade e


protege contra questes legais

Justificativa?
n
n
n

Legitimidade de Direitos Autorais versus Legitimidade Social e


Poltica do Anonimato. Quem prevalece?
Anonimato assegura liberdade de expresso em sociedades
opressoras
Resistncia censura e opresso

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

17

GNUTELLA

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

+ Gnutella: protocolo
GNUTELLA
n Mensagem de consulta

(query) enviada pelas


conexes TCP existentes
n Os pares encaminham

a mensagem de consulta em
cascata, quando necessrio
n Escalabilidade: flooding de

alcance limitado

218

19

Middleware P2P
n

Problema-chave: acessar recursos de forma rpida e


confivel

Napster: mantinha cpia unificada de ndices, fornecendo o


endereo de rede de seus hosts participantes

Sistemas P2P de 2 gerao utilizam ndices particionados e


distribudos de eficincia reduzida

O problema da localizao de recursos

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

20

Middleware P2P
O Problema da Localizao de Recursos
n

J existia em muitos servios antes da era peer-to-peer

Ex: Sun NFS e V-Nodes


n

No escalvel para alm do gerenciamento de uma nica


organizao

O middleware P2P projetado para solucionar a insero,


busca e localizao de recursos

Simplificar a construo de servios vastamente distribudos

Habilidade para adicionar e remover recursos e ns (hosts)

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

21

Middleware P2P
Requisitos no-funcionais
n

Escalabilidade global

Balanceamento de carga

Otimizao para interaes locais entre pares (distncia de


rede)

Disponibilidade dinmica de hosts

Segurana de dados

Anonimato, negao de responsabilidade e resistncia


censura

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

22

Middleware P2P
Localizao particionada e distribuda

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

23

Middleware P2P
Exemplos
n

Jabber

JXTA

AntHill

SpeakEasy

Pastry and Scribe

Outros: XNap, Windows P2P, Groove, JINI

Leitura recomendada: A Survey of P2P Middlewares


disponvel na pgina da disciplina em:
http://www.univasf.edu.br/~jairson.rodrigues, ou em:
http://www.info.ucl.ac.be/~pvr/forDistoz/85-tutcdulghd.pdf

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

24

Sobreposio de Roteamento
Definio
n

Algoritmo responsvel pela localizao de ns (hosts) e


objetos

O Middleware faz o papel de uma camada responsvel por


rotear os pedidos de qualquer cliente para um recurso em
um dado hospedeiro

O objeto pode ser relocado para qualquer outro hospedeiro,


sem envolvimento do cliente

Sobreposio => roteamento realizado na camada de


aplicao separado de qualquer mecanismo de rede
(roteamento IP)

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

25

Sobreposio de Roteamento
Como funciona?
n

Sistemas P2P armazenam rplicas de objetos

O algoritmo explorando o conhecimento que cada n tem da


localidade de um determinado objeto atravs de requisies
em sequncia, n a n.

O algoritmo busca o primeiro n vivo mais prximo que


contenha uma rplica vlida do objeto

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

26

Sobreposio de Roteamento
Responsabilidades
n

Roteamento de pedidos

Insero de objetos
n
n

Remoo de objetos
n

put (GUID, data)


value = get(GUID)

remove (GUID)

Adio e Remoo de ns (hosts)


n

Ao entrar novo n assume responsabilidades de outros ns

Ao sair responsabilidades do n so redistribudas para outros ns

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

27

Sobreposio de Roteamento
GUIDs, DHT e DOLR
n

GUID 'Globally Unique Identifier


n
n
n
n
n

Ex: { f3b25284-8f65-4caa-85b2-7fd42c9468cf }
RFC 4122 - http://www.ietf.org/rfc/rfc4122.txt
Nmero inteiro de 128 bits
Utilizado para identificar unicamente recursos / dados
Se forem gerados 1.000.000.000 de GUIDs por segundo durante um ano
OU se cada ser humano na Terra gerasse 600.000.000 de GUIDs a
probabilidade de duplicao de apenas 50%

Em sistemas P2P so gerados a partir de funo de hash (ex: SHA-1)


do contedo de um dado recurso

DHT = Distributed Hash Tables

DOLR = Distributed Object Location and Routing

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

28

Sobreposio de Roteamento
GUIDs, DHT e DOLR
n DHT

= Distributed Hash Tables

Objeto de GUID = X armazenado no host cujo GUID


prximo numericamente do valor X e nos seus r hosts mais
prximos.
n r- fator de replicao. Usualmente: 16
n

n DOLR

= Distributed Object Location and Routing

Objeto pode ser armazenado em qualquer host, inclusive com


mesmo GUID em hosts diferentes
n A camada DOLR se encarregar de direcionar o pedido para a
rplica mais prxima
n

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

29

Sobreposio de Roteamento
GUIDs e Pesquisa Humana
n

GUIDs no so legveis por humanos -> { 9427f319ae88-401b-8d86-b49f3f5b9f86 }

Humanos buscam baseados em nomes de recursos

Necessidade de mapear GUIDs para nomes de recursos

Problema NAPSTER de ndices?

H casos de manuteno destes ndices em websites (ex:


BitTorrent)

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

30

Pastry
http://research.microsoft.com/en-us/um/people/antr/pastry/
n

GUIDs de 128 bits


n
n

Ns - computado a partir de funo de hash da chave pblica do n


Objetos computado a partir de hash do nome ou parte do dado
armazenado
Randomicamente distribudos de 0 at 2128 -1

Roteamento
n

N ns roteamento em O(log N) passos

Entrega ao n com GUID especificado ou numericamente mais


prximo

Normalmente utiliza protocolo UDP

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

31

Pastry
Proximidade entre ns
n

Proximidade um conceito inteiramente artificial

Baseado no espao de GUIDs

Transporte real envolve muitos saltos IP

Mtrica para roteamento em cada n = qtde de saltos ou


latncia de ida e volta

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

32

Pastry
Algoritmo de Roteamento
n

Tabela de roteamento prpria em cada n

Para efeitos didticos consideram-se dois estgios

Estgio 1 forma simplificada, ineficiente, sem tabela de


roteamento
n

Analogia didtica para entendimento

Estgio 2 algoritmo real com roteamento de mensagens


para qualquer n em O (log N) mensagens

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

33

Algoritmo de roteamento Pastry


Estgio 1
n

Cada n possui um vetor de folhas de tamanho L = 2l

Vetor contm os GUIDs e IPs de ns numericamente


prximos de cada lado do n em questo ( t acima e t
abaixo )

Conjuntos so reorganizados a cada entrada, sada ou falha


de um n

Espao de GUIDs tratado como circular: o vizinho do GUID


0 o GUID 2128 1

~ N/2t saltos em uma rede de N ns

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

34

Algoritmo de roteamento Pastry


Estgio 1 | t = 4; 2T = 8

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

35

Algoritmo de roteamento Pastry


Estgio 2
n

Mais eficiente com uso de tabela de roteamento em cada n

GUIDs so vistos como nmeros hexadecimais


n
n
n
n

Classificao baseada em dgitos hexadecimais


Uma tabela de roteamento por n
32 dgitos: { f3b25284-8f65-4caa-85b2-7fd42c9468cf }
32 linhas na tabela de roteamento de cada n

Cada linha possui 32 entradas, cada entrada 15 dgitos


n

Exceto o dgito referente ao n em questo (que possui a tabela)

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

36

Algoritmo de roteamento Pastry


Estgio 2 Tabela de Roteamento

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

37

Algoritmo de roteamento Pastry


Estgio II Execuo do Algoritmo

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

38

Integrao de hosts
Adicionando um n
n

Novo n precisa adquirir tabela de roteamento e conjunto de


folhas prprios

Passos (resumido)
n
n

Novo n computa GUID


Novo n cria sua prpria tabela de roteamento e conjunto de ns
vizinhos
n Contacta vizinho mais prximo (dist. de rede)
n

Novo n constri tabela a partir de dados de seus vizinhos

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

39

Remoo de hosts
Falha ou sada
n

Considera-se que um host falhou ou saiu quando seus


vizinhos no espao GUID (L = 2t) no podem mais se
comunicar com este

Recuperao
n

Atualizar todas as tabelas de roteamento que possuem o host que


saiu ou falhou

N (host) que descobriu a falha requisita cpia do espao de


GUID de algum vizinho do n falho

Substitui o valor do n falho por valor apropriado encontrado


neste espao cpia
Vizinhos do n que descobriu a falha so notificados e realizam a
mesma operao

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

40

Tapestry
n

Implementa DHT e roteamento entre hosts baseados em


GUID usando prefixos hexadecimais, similar ao Pastry

Identificadores de 160 bits para ns (hosts) e objetos


n
n

NodeIDs hosts
GUIDs objetos

Esconde a DHT em uma Interface DOLR Distributed Object


Location and Routing

Primitivas
n
n
n

publish(GUID)
unpublish(GUID)
sendToObj(msg, GUID, [n])

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

41

Tapestry
n

Ns que possuem recursos usam a primitiva publish (GUID)


para torn-los publicados na rede

Estes ns continuam responsveis por armazen-los

Rplicas de objetos so armazenados com o mesmo GUID

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

42

Tapestry
Roteamento

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

43

Referncias
Bibliografia, fontes, crditos, imagens
n

Sistemas Distribudos Princpios e Paradigmas,


2 Edio Prentice Hall. Tanenbaum, Andrew; Van
Steen, Maarten

Sistemas Distribudos Conceitos e Projeto, 4


Edio Bookman. Coulouris, George; Dollimore,
Jean; Kindberg, Tim

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

05/05/15

Você também pode gostar