Sie sind auf Seite 1von 45

Sistemas Distribudos

Jorge Surian
jsurian@uol.com.br
Sistemas Distribudos: Nomeao

Nomeao: Conceitos Bsicos

Nomes, Identificadores e Endereos


Entidades: Mquinas, impressoras, discos,
processos, usurios, pginas Web, janelas
grficas, mensagens, etc.
So acessadas atravs de um ponto de acesso,
ou simplesmente, endereo
Ex: Servidor e seu nmero IP

Um endereo pode ser utilizado como uma


maneira de nomear, identificar uma entidade
Problema: Entidade pode mudar facilmente de ponto de
acesso!

Ex: Servidor Web alocado em outra rede

2
2

Nomeao: Conceitos Bsicos

Nomes, Identificadores e Endereos


Como nomear entidades, sem utilizar
especificamente seu endereo, ou seja, nomelas independentemente da sua posio fsica
(localizao)?
Resposta: Identificadores ou Nomes
amigveis a seres humanos. muito
comum estabelecer nomes de pases, de
jogadores de futebol do passado ou de
deuses mitolgicos. mais fcil ao
usurio entender que Afrodite no est
disponvel do que XPTO001X est
indisponvel...

3
3

Nomeao: Conceitos Bsicos

Identificadores
Em muitos casos, so cadeias aleatrias de
bits, com as seguintes propriedades:
Um identificador referencia, no mximo, UMA
entidade
Cada entidade referenciada por, no mximo, um
identificador
Um identificador sempre referencia a mesma
entidade, isto , nunca reutilizado

Exemplo: Identificadores de entidades em


sistemas P2P baseados no sistema Chord

4
4

Nomeao: Conceitos Bsicos

Nomes Amigveis
Nomes representados por uma cadeia de
caracteres
Pathnames, domnios na Internet, nmeros de
processos
Ex: http://www.gmail.com; /etc/linux

Como resolver a questo dos nomes e


identificadores para endereos?
Com Sistemas de Nomeao

5
5

Nomeao: Sistemas de Nomeao

Mantm uma vinculao nome-endereo


Na forma mais simples
Tabela de pares (nome,endereo)
Contudo, sistemas que abrangem redes de grande
porte, uma tabela centralizada no vai funcionar
como necessrio...

Trs Classes
Nomeao Simples
Nomeao Estruturada
Nomeao Baseada em Atributo

6
6

Nomeao: Sistemas de Nomeao

Nomeao Simples
Aplicada a identificadores
Cadeias aleatrias de bits nomes simples
No contm sequer uma informao sobre como
localizar o ponto de acesso de uma entidade
associada

Problema: Dado um identificador, como


localizar o ponto de acesso (endereo)?
Solues Simples (broadcasting)
Localizao Nativa
Tabelas de Hash Distribudas (DHT)

7
7

Nomeao Simples

Nomeao Simples Broadcasting e


Multicasting
Consideradas solues simples
Aplicveis somente a redes locais
Broadcasting
Recursos oferecidos por redes locais nas quais
todas as mquinas esto conectadas a um
nico cabo ou seu equivalente lgico
Como funciona?
Mensagem que contm o identificador da entidade
enviada a todos as mquinas da rede.
Cada uma das mquinas verifica se tem esta
entidade.
Mquinas com ponto de acesso para a entidade,
enviam uma mensagem que contm o endereo
procurado.

8
8

Nomeao Simples

Broadcasting
Se torna ineficiente quando a rede cresce
Largura de banda da rede desperdiada, com
grande nmero de mensagens de requisio
Aumento da probabilidade de colises de mensagens,
diminuindo o throughput do sistema
Grande nmero de mquinas pode ser interrompido
por requisies que no podem responder

9
9

Nomeao Simples

Multicasting
Somente um grupo restrito de mquinas recebe
a requisio
Banco de Dados Replicado
Endereo multicast associado a uma entidade
replicada.
Multicasting usado para localizar a rplica mais
prxima.
Requisio para o endereo multicast, cada rplica
responde com seu endereo IP,
Rplica mais prxima aquela cuja resposta chega
antes.

10
10

Nomeao Simples

Multicasting

11
11

Nomeao Simples

Localizao Nativa
Abordagem para suportar entidades mveis em
redes de grande escala
Monitora a localizao corrente de uma
entidade
Localizao nativa costuma ser escolhida como
o lugar em que a entidade foi criada

12
12

Nomeao Simples

Mobile IP
Cada host mvel usa um endereo fixo
Toda a comunicao dirigida inicialmente ao
agente nativo do host mvel (situado na rede
local do endereo do host)
Ao mudar de rede, host recebe um endereo
externo (care-of-adress) e registra no agente
nativo
Quando o agente nativo recebe um pacote para
o host mvel
Se na rede local pacote repassado
Seno tnel at a localizao corrente

13
13

Nomeao Simples

Localizao Nativa

14
14

Nomeao Simples

Localizao Nativa
Desvantagens
Para se comunicar com uma entidade mvel,
em primeiro lugar um cliente tem que
contatar a localizao nativa, que pode estar
em um lugar completamente diferente
Latncia de comunicao
Assegurar que a localizao nativa sempre
exista
Entidade decide mudar permanentemente
para outra localizao localizao nativa
deve tambm mudar.

15
15

Nomeao: Tabelas de Hash Distribudas


(DHT)
Exemplo: Ns so organizados logicamente em
um anel (Chord)
Usa um espao de identificadores de m bits
para designar ns e entidades especficas
(arquivos, processos)
Nmero m bits usualmente 128 ou 160
Entidade com chave k cai sob a jurisdio do
n que tenha o menor identificador id >= k
succ(k)
Como resolver com eficincia uma chave k para o
endereo de succ(k)?
Abordagem linear
Tabela de Derivao
16
16

Nomeao: Tabelas de Hash Distribudas (DHT) Chord


Abordagem linear
Cada n p monitora o sucessor succ(p+1) e o
predecessor pred(p)
Ao receber uma requisio para a chave k, p
repassa a requisio para os seus vizinhos, a
menos que
pred(p) < k <= p p retorna o prprio endereo
No escalvel!

17
17

Nomeao: Tabelas de Hash Distribudas (DHT)


- Chord
a) Suponhamos que
p = 4 receba uma
requisio para
k=7
succ(p+1)
repassa a
requisio ao n
=9
b) Suponhamos que
p = 4 receba uma
requisio para
k = 3 como
pred(4) = 1<
3<=4 retorna o
prprio endereo.
18
18

Nomeao: Tabelas de Hash Distribudas (DHT)


- Chord
Tabela de derivao (finger table)
Possui, no mximo, m entradas
Denotando a tabela de derivao de p por Ftp
Ftp[i]=succ(p+2 i -1) i-sima entrada aponta para o primeiro
n que sucede p por no mnimo 2 i -1

19
19

Nomeao: Tabelas de Hash Distribudas (DHT)


- Chord
Como encontrar uma entidade k?
Referncias na tabela de derivao so atalhos
para ns existentes no espao de
identificadores.
Distncia do atalho em relao ao n p
aumenta exponencialmente medida que o
ndice na tabela de derivao cresce.
Para consultar uma chave k, o n p repassar a
requisio ao n q com ndice j na tabela de
derivao de p.
q = Ftp [ j ] <= k <= Ftp [j+1]

20
20

Nomeao: Tabelas de Hash Distribudas (DHT)


- Chord

Exemplo:
1) Considere a resoluo de k=26, a
partir do n 1.
2) N 1 consultar k=26 verifica
que o valor maior do que
FT1[5].
3) Requisico ser repassada para o
n 18.
4) O n 18 selecionar o n 20,
porque FT18[2] < k<= FT18[3].
5) Por fim, requisio repassada
do n 20 para o n 21 e deste
para 28
Consulta O(log(N)) passos

21
21

Proximidade na Rede

Problema: Organizao lgica do ns em uma


rede de sobreposio (orvelay) pode levar a uma
escolha errada no roteamento de mensagens k
e succ(k+1) podem estar muito longe
fisicamente!
Soluo:
Identificar ns com base na topologia:
Ao atribuir um ID a um n, ter certeza que ns prximos no
espao de endereamento estejam tambm prximos
fisicamente.

Roteamento por proximidade:


Manter mais de um sucessor e repassar a requisio para o
mais prximo.

Seleo de vizinho por proximidade:


Ao escolher um vizinho (no em Chord), pegue o mais
prximo
22
22

Nomeao Estruturada

Nomes simples so bons para mquinas, mas no


so convenientes para a utilizao de seres
humanos
Sistemas de nomeao comumente suportam
nomes estruturados
Exemplo: Nomeao de arquivos, hosts na
Internet
Nomes so organizados em um espao de nomes
Espaos de nomes podem ser representados como
um grafo dirigido, com dois tipos de ns:
N-folha: entidade
N de diretrio: entidade que se refere a outros
ns
N de diretrio possui uma tabela de diretrio
<nome aresta, nome n>

23
23

Nomeao Estruturada

Sistemas de nomeao possuem, na maioria, um


n raiz
Cada caminho no grafo de nomeao pode ser
referenciado pela sequncia dos labels nas
arestas N:<label1, label2, ..., labeln>
Nome de caminho absoluto: primeiro n no
caminho a raiz
Nome de caminho relativo: primeiro n pode
ser qualquer n.

24
24

Nomeao Estruturada Resoluo de Nomes

Espaos de nomes oferecem um mecanismo para


armazenar e recuperar informaes sobre
entidades por meio de nomes.

Dado um nome de caminho, deve ser possvel


consultar qualquer informao armazenada no n
referenciado por aquele nome.

Problema: Para resolver um nome,


precisamos de um n de diretrio. Como
escolher este n inicial?

25
25

Nomeao Estruturada Resoluo de Nomes

Mecanismo de fechamento: Trata da seleo do


n inicial em um espao de nomes a partir do
qual a resoluo de nomes deve comear.

So implcitos ao contexto em que a resoluo de


nomes est se aplicando
www.cs.vu.nl: incio da resoluo feito atravs
do servidor de nome DNS
/home/steen/mbox:incio da resoluo ocorre no
servidor local NFS

26
26

Nomeao Estruturada Resoluo de Nomes


- Alias
Outro nome para a mesma entidade
Vrios nomes absolutos para o mesmo n (hard
link)

27
27

Nomeao Estruturada Resoluo de Nomes


- Alias

Symbolic link: permite a um n-folha ter


associado um caminho absoluto.

28
28

Nomeao Estruturada Resoluo de Nomes

Diversos Espaos de Nomes


Como fundir diferentes espaos de nomes de
maneira transparente? Dado dois espaos de
nomes A e B, como A acessa B e B acessa A?
Possvel Soluo: Montagem (Mouting).

Mount point: O n de diretrio que armazena o


identificador de n do espao de nome externo.
Mounting point: N de diretrio no espao de
nomes externo.

29
29

Implementao de um Espao de Nomes

Implementao de um Espao de Nomes


Servio que permite que usurios e processo
adicionem, removam e consultem nomes
Servio de nomeao implementado por
servidores de nomes
Servidores de nomes devem prover:
Escalabilidade
Manuteno descentralizada
Tolerncia a falhas, robustez
Escopo global: Nomes possuem o mesmo significado
em todos lugares

30
30

Implementao de um Espao de Nomes

Costumam ser organizados em hierarquia


Segundo Cheriton e Mann (1989) conveniente
dividir os espao de nomes em trs camadas
Camada global
Raiz e seus filhos
Principal caracterstica: Estabilidade
Podem representar organizaes

31
31

Implementao de um Espao de Nomes

Segundo Cheriton e Mann (1989) conveniente


dividir os espao de nomes em trs camadas
Camada Administrativa
Ns de diretrios
Gerenciados por uma nica organizao
Relativamente estveis

Camada Gerencial
Ns cujo comportamento tpico a mudana
peridica
Mantidos por administradores de sistemas e usurios
finais

32
32

Implementao de um Espao de Nomes

33
33

Comparao entre servidores de Nomes

34
34

Como resolver nomes?

Resoluo Iterativa
Servidor responde somente o que sabe: o nome
do prximo servidor que deve ser buscado
Cliente procura iterativamente os outros
servidores

Resoluo Recursiva
Servidor passa o resultado para o prximo
servidor que encontrar
Para o cliente, somente existe uma mensagem
de retorno: o endereo do nome ou 'no
encontrado'
35
35

Como resolver nomes?

36
36

Resoluo Iterativa x Recursiva

37
37

Resoluo Iterativa x Recursiva

38
38

DNS: Domain Name System

Pessoas: muitos identificadores:


CPF, nome, no. da Identidade
Hospedeiros, roteadores Internet :
endereo IP (32 bit) - usado para enderear
datagramas.
nome, ex., jambo.ic.uff.br - usado por gente
complexidade na borda da rede.

39
39

DNS: Domain Name System

Pergunta: como mapear entre nome e endereo


IP?
Resposta: DNS - Domain Name System!
base de dados distribuda implementada na
hierarquia de muitos servidores de nomes
protocolo de camada de aplicao permite que
hospedeiros, roteadores, servidores de nomes
e comuniquem para resolver nomes (traduo
endereo/nome)
Nota: funo imprescindvel da Internet
implementada como protocolo de camada de
aplicao.

40
40

DNS: Domain Name System


Servios DNS.
Traduo de nome de hospedeiro para IP
Apelidos para hospedeiros (aliasing)
Nomes cannicos e apelidos
Apelidos para servidores de e-mail
Distribuio de carga
Servidores Web replicados: conjunto de
endereos IP para um nome cannico.

41
41

DNS: Domain Name System


Servios DNS.
Por que no centralizar o DNS?
ponto nico de falha
volume de trfego
base de dados centralizada e distante
manuteno (da BD)
No escalvel!

42
42

DNS: Domain Name System

Base de Dados Hierrquica e Distribuda

43
43

DNS Servidores Raiz

Procurado por servidor local que no consegue


resolver o nome, remetido ao servidor raiz.
Servidor raiz (13 espalhados pelo mundo):
procura servidor oficial se mapeamento desconhecido
obtm traduo
devolve mapeamento ao servidor local

44
44

Fonte:
Tanenbaum, Andrew S. e Steen, Marteen Van. Sistemas
Distribudos, So Paulo: Prentice Hall, 2008.

Copyright 2010 Prof. Jorge Surian


Todos direitos reservados. Reproduo ou divulgao total ou parcial
deste documento expressamente probido sem o consentimento formal,
por escrito, do Professor Surian.

45
45

Das könnte Ihnen auch gefallen