SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 1 Hélio Crestana Guardia - 2011
Nomeação

Mecanismo de nomeação permite identificar entidades de maneira
única, compartilhar recursos, fazer referência a localizações

Nomes podem ser resolvidos para as entidades a que se referem

Resolução de nomes permite acesso à entidade referida

Resolução de nomes é feita por sistema de nomeação

Implementação do sistema de nomeação pode ser distribuída e deve
considerar aspectos de eficiência e escalabilidade

Aspectos de interesse:

Criação de nomes amigáveis (fáceis de tratar pelas pessoas)

Localização das entidades asssociadas aos nomes

Resolução de nomes por meio de atributos da entidade
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 2 Hélio Crestana Guardia - 2011
Nomes, identificadores e endereços
• Nome: cadeia de bits ou caracteres usada para referenciar uma entidade
• Entidades:
– Computadores (hosts) e outros recursos: impressoras, discos, arquivos, etc.
– Processos, usuários
– Caixas postais, grupos de discussão, páginas WWW, janelas gráficas, mensagens,
conexões de rede, etc.
• Entidades são elementos ativos, que podem realizar operações
• Acesso a entidades ocorre através de pontos de acesso.
– Ex.: combinação endereço IP + proto transporte + número de porta
• Nomes de pontos de acesso são denominados endereços
• Endereço de um ponto de acesso de uma entidade é denominado endereço
desta entidade
• Entidades podem oferecer mais de um pontos de acesso.
– Ex.: pessoas podem ser contatadas usando mais de um números de telefone
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 3 Hélio Crestana Guardia - 2011
Nomes, identificadores e endereços
• Entidades podem mudar seus pontos de acesso ao longo do tempo
• Endereço refere-se a ponto de acesso de uma entidade
• Uso de endereço de um ponto de acesso como referência de uma entidade
não é adequado: identificação pouco amigável e inflexível
• Identificação de entidades pelos nomes é independente de localização
• Pure name: a name that has no meaning at all; it is just a random string.
Pure names can be used for comparison only.
• Identificador (identifier): é um nome que tem as seguintes propriedades:
– P1: um identificador referecia, no máximo, uma entidade
– P2: cada entidade é referenciada por, no máximo, um identificador
– P3: um identificador sempre referencia a mesma entidade e nunca é
reutilizado
• Nomes podem ser construídos de forma a facilitar a manipulação pelas
pessoas (human-friendly names). Ex.: nomes de arquivos Unix, nomes DNS.
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 4 Hélio Crestana Guardia - 2011
Nomes, identificadores e endereços
• Questão: como resolver nomes e identificadores em endereços?
• Resolução de nomes e roteamento de mensagens comumente estão
relacionados
• Sistema de nomeação mantém vinculação nome-endereço,
normalmente armazenada na forma de tabelas
– Uso de tabela centralizada, contudo, não é adequado em SDs
• Nome é comumente decomposto em várias partes
• Resolução de nomes é realizada de forma recursiva para as diversas
partes. Ex: ftp.cs.vu.nl, www.dc.ufscar.br
• Classes de sistemas de nomeação:
– Nomeação simples
– Nomeação estruturada
– Nomeação baseada em atributo
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 5 Hélio Crestana Guardia - 2011
Nomeação simples (flat naming)
• Identificadores podem ser apenas cadeias de bits ou caracteres,
caracterizando nomes não estruturados, ou simples (flat names)
• Flat names não contêm informações sobre localização do ponto de
acesso da entidade associada a cada um deles
• Como resolver flat names? Ou seja, como localizar pontos de acesso
das entidades?
– Broadcasting e multicasting
– Localização nativa (home-based approaches)
– Tabelas Hash distribuídas (distributed hash tables – DHTs)
– Abordagens hierárquicas
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 6 Hélio Crestana Guardia - 2011
Resolução com flat naming (nomeação simples)
Broadcasting e multicasting
• Aplicáveis apenas em redes locais, para máquinas conectadas ao mesmo
domínio de broadcast
• Mensagem com identificador buscado é propagada a todos na rede
• Máquinas realizam escuta permanente das requisições
• Cada máquina verifica se possui o identificador associado e só responde em
caso positivo
• Ex.: resolução de endereços com ARP (Address Resolution Protocol)
• Uso de broadcast é ineficiente quando número de nós aumenta
Multicast
• Permite limitar as máquinas que participam das consultas
• Pode usar suporte de hardware para transmissões (Ethernet multicast) ou de
endereçamento de rede (IP multicast)
• Também permite identificar entidades replicadas
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 7 Hélio Crestana Guardia - 2011
Ponteiros encaminhadores (forwarding pointers)
• Quando entidade muda sua localização, deixa no antigo local uma referência
para a nova localização
• Localização atualizada é obtida percorrendo-se uma cadeia de repassadores /
encaminhadores (forwarders) a partir do local original
• Vantagens do encaminhamento:
– Simplicidade e transparência dos acessos
• Desvantagens:
– Cadeia de encaminhadores pode ser grande para entidades com grande mobilidade
– Encaminhadores intermediários precisam permanecer ativos
– Vulnerabilidade de enlaces rompidos
• Para RPCs, client stub mantém referência original, mas chamada é repassada
entre os intermediários
– Retorno pode ser repassado direto ao cliente
– Retorno indireto, igual chamada, permite ajuste dos stubs intermediários
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 8 Hélio Crestana Guardia - 2011
Redirecionamento de RPCs
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 9 Hélio Crestana Guardia - 2011
Redirecionamento de RPCs
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 10 Hélio Crestana Guardia - 2011
Nomeação baseada na localização nativa
Nomeação baseada em localização nativa (home-based approach)
• Localização em que uma entidade foi criada mantém referência sobre
sua localização atual
• Abordagem usada de forma complementar à de encaminhadores
(forwarders)
• Informações de Home address de entidades é mantida por serviço de
nomeação
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 11 Hélio Crestana Guardia - 2011
Nomeação baseada na localização nativa
• Ex.: mobile IP (v4)
– Host móvel mantém endereço fixo
– Comunicação para host é encaminhada ao home agent na rede original
• Ex.: mobile IPv6
– nós móveis solicitam endereços nas redes visitadas (care-of-address – COA), e
os registram com home agent
– Pacotes para nó móvel são encaminhados de forma encapsulada pelo home agent
para a localização atual do nó. Localização atual é informada à origem das
mensagens redirecionadas.
• Problemas:
– Home address é fixo; inconveniente em mudanças definitivas
– Escalabilidade limitada, com triangulação no encaminhamento dos
dados
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 12 Hélio Crestana Guardia - 2011
Home-based naming: mobile IP
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 13 Hélio Crestana Guardia - 2011
Tabelas Hash distribuídas (DHTs)
Ex.: Chord
• Identificadores com m bits, escolhidos ateatoriamente para atribuição
aos nós e outras entidades (arquivos, processos, etc.)
• m: comumente 120 ou 160 bits, dependendo da função hash utilizada
• Nós organizados em um anel lógico
– Cada nó recebe um identificador aleatório (m-bits)
– Cada entidade recebe um identificador aleatório (m-bits)
– Responsabilidade sobre entidade com identificador k é atribuída a nó
com menor identificador id >= k, denominado sucessor de k – succ(k)
• Busca:
– Linear, consultando cada nó no anel lógico a partir de succ(k), até
localização ser encontrada, ou
– Usando finger table (tabela de derivação)
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 14 Hélio Crestana Guardia - 2011
Chord DHT: Finger tables
• Cada nó Chord mantém uma finger table (FTp [ ]) com no máximo m
entradas (log2
Núm_nós)
• FTp [i] = succ(p + 2i−1
)
• FTp [i] aponta para o próximo nó, sucessor de p por ao menos 2i−1
nós
• Na busca de uma chave k, nó p encaminha requisição para nó com índice j,
satisfazendo:
q = FTp [j] ≤ k < FTp [j + 1]
• Se p < k < FTp [1], requisição também é encaminhada para FTp [1]
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 15 Hélio Crestana Guardia - 2011
Chord DHT: Finger tables
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 16 Hélio Crestana Guardia - 2011
DHT: exploração de proximidade de rede
Organização lógica dos nós pode levar a encaminhamentos ineficientes
Soluções:
• Atribuição de identificadores de nós de acordo com topologia (topology-
aware node assignment)
– IDs próximos devem corresponder a nós fisicamente próximos também
(atribuição pode ser complexa...)
• Roteamento por proximidade (proximity routing): nós mantêm lista de
alternativas para encaminhamento para uma requisição, e escolhem mais
próximo
• Seleção de vizinho por proximidade (proximity neighbor selection): tabelas
de roteamento são usadas de modo de nó mais próximo seja selecionado
como vizinho
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 17 Hélio Crestana Guardia - 2011
Flat naming: abordagens hierárquicas
Hierarchical Location Services (HLS)
●
Rede é dividida em conjunto de domínios
●
Domínio único de nível mais alto abrange toda a rede
●
Domínios podem ser subdivididos
●
Domínio de nível mais baixo é denominado domínio-folha e,
normalmente, corresponde a uma rede local, ou célula em
telefonia móvel
●
Domínios têm diretório associado, que monitora atividades no
domínio
●
Nó de diretório no domínio de nível mais alto é denominado nó
raiz, e conhece todas as entidades
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 18 Hélio Crestana Guardia - 2011
Flat naming: abordagens hierárquicas
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 19 Hélio Crestana Guardia - 2011
Flat naming: abordagens hierárquicas
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 20 Hélio Crestana Guardia - 2011
Flat naming: abordagens hierárquicas
● Consulta: encaminhamento hierárquico
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 21 Hélio Crestana Guardia - 2011
Flat naming: abordagens hierárquicas
● Inserção: transmissão do registro (a), ou ajuste de ponteiros para
registro local (b)
● Remoção usa abordagens análogas
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 22 Hélio Crestana Guardia - 2011
Nomeação estruturada
Nomes estruturados são compostos por nomes simples (flat) e organizados em
espaços de nomes (name spaces)
Name spaces:
● Grafo em que nós folhas representam entidades
● Nó folha representa entidade nomeada; não tem ramos de saída
● Nó diretório é uma entidade que se refere a outros nós
● Diretórios contêm tabelas com pares de informações: rótulo do ramo,
identificador do nó
● Pathname (nome de caminho) corresponde a sequência em caminho de
nomeação:
N:<label-1, label-2, …, label-n> (N=primeiro nó no caminho)
● Nomes podem ser absolutos (absolute pathnames), quando incluem a raiz
do gráfico de nomeação, ou relativos (relative pathnames), nos demais
casos
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 23 Hélio Crestana Guardia - 2011
Nomeação estruturada
● Nós podem conter diferentes tipos de atributos, descrevendo aspectos das
entidades que representam:
● Tipo da entidade
● Identificador para a entidade
● Endereço da localização da entidade
● Apelidos
● …
● Diretórios também podem ter atributos, além de apenas armazenar tabelas
● Gráfico de nomeação aproxima-se de implementações de sistemas de
arquivos
● Em sistemas de arquivos, '/' é separador de rótulos; '/' no início do nome
serve para indicar caminhos absolutos
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 24 Hélio Crestana Guardia - 2011
Espaços de nomes e grafos de nomeação
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 25 Hélio Crestana Guardia - 2011
Espaços de nomes e grafos de nomeação
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 26 Hélio Crestana Guardia - 2011
Resolução de nomes
● Dado um nome de caminho, deve ser possível consultar qualquer
informação armazenada no nó referenciado por este nome
● Processo de busca de um nome é denominado resolução de nomes
● N:<label1
, label2
,...,labeln
> : resolução do nome inicia no nó N do grafo de
nomeação; resolução pára no último nó referenciado, com o retorno do
conteúdo daquele nó.
● Mecanismo de fechamento (closure mechanism) trata da seleção do nó em
um espaço de nomes para iniciar a resolução de nomes
● www.cs.vu.nl: consulta inicia-se em um servidor DNS
● /home/steen/mbox: consulda a um servidor NFS
● 0031204447784: número a ser chamado
● 130.37.24.8: rota ao Web server VU
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 27 Hélio Crestana Guardia - 2011
Ligação (link)
● Apelidos ou aliases correspondem a outros nomes usados para
uma entidade
● Abordagens:
● Hard link (ponteiros estritos): vários nomes de caminho absoluto
referenciam o nesmo nó
● Soft link (ponteiros simbólicos): permite que um nó contenha um
nome de outro nó
– First resolve O’s name (leading to O)
– Read the content of O, yielding name
– Name resolution continues with name
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 28 Hélio Crestana Guardia - 2011
Ligação (link)
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 29 Hélio Crestana Guardia - 2011
Montagem
● Montagem permite fundir diferentes espaços de nome
● Sistema de arquivos montado corresponde a deixar que um nó diretório
armazene o identificador de um nó diretório de um espaço de nomes
diferente (externo)
● Ponto de montagem externo corresponde à raiz de um espaço de nome
● Ponto de montar (local) armazena identificador de nó
● Montagem requer:
● Nome de um protocolo de acesso
● Nome do servidor
● Nome do ponto de montagem no espaço de nomes externo
(Todos esses nomes precisam ser resolvidos)
● Ex.: Network File System (NFS): nfs://flits.cs.vu.nl//home/steen
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 30 Hélio Crestana Guardia - 2011
Montagem
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 31 Hélio Crestana Guardia - 2011
Implementação de um espaço de nomes
Em SD de grande escala, processo de resolução de nomes deve ser
distribuído sobre múltiplas máquinas
Distribuição do espaço de nomes:
● Organização hierárquica com níveis de funcionalidade:
● Camada global, formada por nós de nível mais alto (raiz e nós mais
próximos)
● Camada administrativa, formada por nós de diretório; representam
grupos de entidades que pertencem à mesma organização ou unidade
administrativa
● Camada gerencial: diretório de baixo nível. Aspecto principal é o
mapeamento efetivo de nós
● Disponibilidade e desempenho podem ser providos com replicação de
servidores combinados com caches no lado do cliente.
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 32 Hélio Crestana Guardia - 2011
Implementação de um espaço de nomes
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 33 Hélio Crestana Guardia - 2011
Implementação de um espaço de nomes
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 34 Hélio Crestana Guardia - 2011
Resolução de nomes iterativa
● resolve(dir,[name1,...,nameK]) sent to Server0 responsible for dir
● Server0 resolves resolve(dir,name1) → dir1, returning the identification
(address) of Server1, which stores dir1.
● Client sends resolve(dir1,[name2,...,nameK]) to Server1, etc.
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 35 Hélio Crestana Guardia - 2011
Resolução de nomes recursiva
● resolve(dir,[name1,...,nameK]) sent to Server0 responsible for dir
● Server0 resolves resolve(dir,name1) → dir1, and sends resolve(dir1,
[name2,...,nameK]) to Server1, which stores dir1.
● Server0 waits for result from Server1, and returns it to client.
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 36 Hélio Crestana Guardia - 2011
Resolução de nomes recursiva
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 37 Hélio Crestana Guardia - 2011
Resolução de nomes
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 38 Hélio Crestana Guardia - 2011
Sistema de Nomes de Domínio: DNS
● Domain Name System é exemplo de sistema de nomeação estruturada
● Espaço de nomes DNS organizado como árvore com raiz
● Rótulos têm no máximo 63 caracteres; caminho completo está
limitado a 255 caracteres, contendo rótulos separados por '.'
● Sub-árvores são denominadas domínio
● Nome de caminho até nó raiz é denominado nome de domínio
● Conteúdo de um nó é formado por um conjunto de registros de
recursos
● Diferentes tipos de registros
● Registro Start of Authority – SOA – contém informações sobre
computador onde dados sobre zonas de domínios
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 39 Hélio Crestana Guardia - 2011
Sistema de Nomes de Domínio
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 40 Hélio Crestana Guardia - 2011
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 41 Hélio Crestana Guardia - 2011
Implementações de DNS descentralizadas
● DNS na Internet usa hierarquia de servidores com 13
servidores-raiz e milhões de servidores nas folhas
● Solução para evitar sobrecarga dos servidores na raiz: cache
● Solução alternativa: calcular hash de nome DNS e usá-lo como
chave de consulta em DHT
● Desvantagem: perde-se estrutura do nome original, o que
dificulta consulta de filhos de um domínio específico
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 42 Hélio Crestana Guardia - 2011
Nomeação baseada em atributo
● Além da localização de entidades em função de seus nomes, pode ser
interessante localizá-las em função de outros atributos
● Abordagem: descrição de entidade em termos de pares (atributo, valor)
● Entidades têm conjuntos associados de atributos
● Nas buscas, usuários definem valores que um determinado atributo deve ter
● Sistema de nomeação deve retornar entidades que atendem à descrição
realizada
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 43 Hélio Crestana Guardia - 2011
Serviços de diretório
● Sistemas de nomeação baseados em atributos também são conhecidos
como serviços de diretório
● Sistemas que suportam nomeação estruturada são denominados sistemas
de nomeação
● Serviços de diretório permitem que entidades sejam localizadas em função
de atributos
● Estrutura de descrição de recurso (resource description framework – RDF)
determina como recursos podem ser descritos
● Recursos são descritos como triplas que consistem em um sujeito, um
predicado em um objeto
● Ex.: (Pessoa, nome, Alice) descreve recurso Pessoa, cujo nome é Alice
● Referências em RDF são, em essência, URLs
● Consultas de valores em sistemas de nomeação baseados em atributos
requer busca exaustiva em todos os descritores
● Como armazenar descritores de forma distribuída?
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 44 Hélio Crestana Guardia - 2011
Implementação hierárquica para nomeação
baseada em atributos
● Serviços distribuídos de diretório: dombinação de nomeação estruturada
com nomeação baseada em atributos
● LDAP (Lightweight directory access protocol): serviço de diretório derivado
do serviço de diretório X.500 OSI
● LDAP consiste de diversos registros (entradas de diretório)
● Registros compostos de conjuntos de pares (atributo, valor)
● Atributos têm tipos associados
● Atributos podem ser de valor único ou de valores múltiplos
● Conjunto de entradas de um diretório LDAP é denominado base de
informações de diretório (Directory Information Base – DIB)
● Cada registro na DIB é nomeado exclusivamente
● Atributos de nomeação denominados nomes relativos distinguidos (RDN –
relative distinguished name)
● Árvore de informações de diretório (directory information tree – DIT)
forma gráfico de nomeação de um serviço de diretório LDAP
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 45 Hélio Crestana Guardia - 2011
LDAP: atributos
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 46 Hélio Crestana Guardia - 2011
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 47 Hélio Crestana Guardia - 2011
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 48 Hélio Crestana Guardia - 2011
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 49 Hélio Crestana Guardia - 2011

Mais conteúdo relacionado

Mais procurados

Manipulação de arquivos e pastas no windows
Manipulação de arquivos e pastas no windowsManipulação de arquivos e pastas no windows
Manipulação de arquivos e pastas no windowsDyogoMondegoMoraes1
 
Roteiro de aula montagem e manutenção 2012
Roteiro de aula montagem e manutenção 2012Roteiro de aula montagem e manutenção 2012
Roteiro de aula montagem e manutenção 2012Carlos Melo
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processosvini_campos
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosrobsons75
 
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAASSistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAASAdriano Teixeira de Souza
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidorSandu Postolachi
 
Peer-to-peer
Peer-to-peerPeer-to-peer
Peer-to-peerLeo-Sotto
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
Introdução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosIntrodução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosVictor Hazin da Rocha
 
Replicação, transcrição e tradução da informação genética.pdf
Replicação, transcrição e tradução da informação genética.pdfReplicação, transcrição e tradução da informação genética.pdf
Replicação, transcrição e tradução da informação genética.pdfEveraldo29
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisCid de Andrade
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCAdriano Teixeira de Souza
 
Módulo 3-Sistema Operativo Servidor - V3.pdf
Módulo 3-Sistema Operativo Servidor - V3.pdfMódulo 3-Sistema Operativo Servidor - V3.pdf
Módulo 3-Sistema Operativo Servidor - V3.pdfFChico2
 
Protocolo MQTT: Message Queuing Telemetry Transport
Protocolo MQTT: Message Queuing Telemetry TransportProtocolo MQTT: Message Queuing Telemetry Transport
Protocolo MQTT: Message Queuing Telemetry TransportNorberto Enomoto
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisLuciano Crecente
 
So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012Bill Lima
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Arthur Emanuel
 
Redes de computadores 1 - Conceitos Gerais
Redes de computadores 1 - Conceitos GeraisRedes de computadores 1 - Conceitos Gerais
Redes de computadores 1 - Conceitos GeraisJosé Ronaldo Trajano
 
Palestra de Windows Server 2016
Palestra de Windows Server 2016Palestra de Windows Server 2016
Palestra de Windows Server 2016Fábio dos Reis
 

Mais procurados (20)

Manipulação de arquivos e pastas no windows
Manipulação de arquivos e pastas no windowsManipulação de arquivos e pastas no windows
Manipulação de arquivos e pastas no windows
 
Roteiro de aula montagem e manutenção 2012
Roteiro de aula montagem e manutenção 2012Roteiro de aula montagem e manutenção 2012
Roteiro de aula montagem e manutenção 2012
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
 
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAASSistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidor
 
Peer-to-peer
Peer-to-peerPeer-to-peer
Peer-to-peer
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Introdução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosIntrodução a Sistemas Distribuídos
Introdução a Sistemas Distribuídos
 
Replicação, transcrição e tradução da informação genética.pdf
Replicação, transcrição e tradução da informação genética.pdfReplicação, transcrição e tradução da informação genética.pdf
Replicação, transcrição e tradução da informação genética.pdf
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
 
Módulo 3-Sistema Operativo Servidor - V3.pdf
Módulo 3-Sistema Operativo Servidor - V3.pdfMódulo 3-Sistema Operativo Servidor - V3.pdf
Módulo 3-Sistema Operativo Servidor - V3.pdf
 
Protocolo MQTT: Message Queuing Telemetry Transport
Protocolo MQTT: Message Queuing Telemetry TransportProtocolo MQTT: Message Queuing Telemetry Transport
Protocolo MQTT: Message Queuing Telemetry Transport
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 
So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012
 
Montando o Computador
Montando o ComputadorMontando o Computador
Montando o Computador
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02
 
Redes de computadores 1 - Conceitos Gerais
Redes de computadores 1 - Conceitos GeraisRedes de computadores 1 - Conceitos Gerais
Redes de computadores 1 - Conceitos Gerais
 
Palestra de Windows Server 2016
Palestra de Windows Server 2016Palestra de Windows Server 2016
Palestra de Windows Server 2016
 

Nomeação em SDs

  • 1. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 1 Hélio Crestana Guardia - 2011 Nomeação  Mecanismo de nomeação permite identificar entidades de maneira única, compartilhar recursos, fazer referência a localizações  Nomes podem ser resolvidos para as entidades a que se referem  Resolução de nomes permite acesso à entidade referida  Resolução de nomes é feita por sistema de nomeação  Implementação do sistema de nomeação pode ser distribuída e deve considerar aspectos de eficiência e escalabilidade  Aspectos de interesse:  Criação de nomes amigáveis (fáceis de tratar pelas pessoas)  Localização das entidades asssociadas aos nomes  Resolução de nomes por meio de atributos da entidade
  • 2. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 2 Hélio Crestana Guardia - 2011 Nomes, identificadores e endereços • Nome: cadeia de bits ou caracteres usada para referenciar uma entidade • Entidades: – Computadores (hosts) e outros recursos: impressoras, discos, arquivos, etc. – Processos, usuários – Caixas postais, grupos de discussão, páginas WWW, janelas gráficas, mensagens, conexões de rede, etc. • Entidades são elementos ativos, que podem realizar operações • Acesso a entidades ocorre através de pontos de acesso. – Ex.: combinação endereço IP + proto transporte + número de porta • Nomes de pontos de acesso são denominados endereços • Endereço de um ponto de acesso de uma entidade é denominado endereço desta entidade • Entidades podem oferecer mais de um pontos de acesso. – Ex.: pessoas podem ser contatadas usando mais de um números de telefone
  • 3. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 3 Hélio Crestana Guardia - 2011 Nomes, identificadores e endereços • Entidades podem mudar seus pontos de acesso ao longo do tempo • Endereço refere-se a ponto de acesso de uma entidade • Uso de endereço de um ponto de acesso como referência de uma entidade não é adequado: identificação pouco amigável e inflexível • Identificação de entidades pelos nomes é independente de localização • Pure name: a name that has no meaning at all; it is just a random string. Pure names can be used for comparison only. • Identificador (identifier): é um nome que tem as seguintes propriedades: – P1: um identificador referecia, no máximo, uma entidade – P2: cada entidade é referenciada por, no máximo, um identificador – P3: um identificador sempre referencia a mesma entidade e nunca é reutilizado • Nomes podem ser construídos de forma a facilitar a manipulação pelas pessoas (human-friendly names). Ex.: nomes de arquivos Unix, nomes DNS.
  • 4. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 4 Hélio Crestana Guardia - 2011 Nomes, identificadores e endereços • Questão: como resolver nomes e identificadores em endereços? • Resolução de nomes e roteamento de mensagens comumente estão relacionados • Sistema de nomeação mantém vinculação nome-endereço, normalmente armazenada na forma de tabelas – Uso de tabela centralizada, contudo, não é adequado em SDs • Nome é comumente decomposto em várias partes • Resolução de nomes é realizada de forma recursiva para as diversas partes. Ex: ftp.cs.vu.nl, www.dc.ufscar.br • Classes de sistemas de nomeação: – Nomeação simples – Nomeação estruturada – Nomeação baseada em atributo
  • 5. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 5 Hélio Crestana Guardia - 2011 Nomeação simples (flat naming) • Identificadores podem ser apenas cadeias de bits ou caracteres, caracterizando nomes não estruturados, ou simples (flat names) • Flat names não contêm informações sobre localização do ponto de acesso da entidade associada a cada um deles • Como resolver flat names? Ou seja, como localizar pontos de acesso das entidades? – Broadcasting e multicasting – Localização nativa (home-based approaches) – Tabelas Hash distribuídas (distributed hash tables – DHTs) – Abordagens hierárquicas
  • 6. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 6 Hélio Crestana Guardia - 2011 Resolução com flat naming (nomeação simples) Broadcasting e multicasting • Aplicáveis apenas em redes locais, para máquinas conectadas ao mesmo domínio de broadcast • Mensagem com identificador buscado é propagada a todos na rede • Máquinas realizam escuta permanente das requisições • Cada máquina verifica se possui o identificador associado e só responde em caso positivo • Ex.: resolução de endereços com ARP (Address Resolution Protocol) • Uso de broadcast é ineficiente quando número de nós aumenta Multicast • Permite limitar as máquinas que participam das consultas • Pode usar suporte de hardware para transmissões (Ethernet multicast) ou de endereçamento de rede (IP multicast) • Também permite identificar entidades replicadas
  • 7. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 7 Hélio Crestana Guardia - 2011 Ponteiros encaminhadores (forwarding pointers) • Quando entidade muda sua localização, deixa no antigo local uma referência para a nova localização • Localização atualizada é obtida percorrendo-se uma cadeia de repassadores / encaminhadores (forwarders) a partir do local original • Vantagens do encaminhamento: – Simplicidade e transparência dos acessos • Desvantagens: – Cadeia de encaminhadores pode ser grande para entidades com grande mobilidade – Encaminhadores intermediários precisam permanecer ativos – Vulnerabilidade de enlaces rompidos • Para RPCs, client stub mantém referência original, mas chamada é repassada entre os intermediários – Retorno pode ser repassado direto ao cliente – Retorno indireto, igual chamada, permite ajuste dos stubs intermediários
  • 8. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 8 Hélio Crestana Guardia - 2011 Redirecionamento de RPCs
  • 9. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 9 Hélio Crestana Guardia - 2011 Redirecionamento de RPCs
  • 10. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 10 Hélio Crestana Guardia - 2011 Nomeação baseada na localização nativa Nomeação baseada em localização nativa (home-based approach) • Localização em que uma entidade foi criada mantém referência sobre sua localização atual • Abordagem usada de forma complementar à de encaminhadores (forwarders) • Informações de Home address de entidades é mantida por serviço de nomeação
  • 11. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 11 Hélio Crestana Guardia - 2011 Nomeação baseada na localização nativa • Ex.: mobile IP (v4) – Host móvel mantém endereço fixo – Comunicação para host é encaminhada ao home agent na rede original • Ex.: mobile IPv6 – nós móveis solicitam endereços nas redes visitadas (care-of-address – COA), e os registram com home agent – Pacotes para nó móvel são encaminhados de forma encapsulada pelo home agent para a localização atual do nó. Localização atual é informada à origem das mensagens redirecionadas. • Problemas: – Home address é fixo; inconveniente em mudanças definitivas – Escalabilidade limitada, com triangulação no encaminhamento dos dados
  • 12. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 12 Hélio Crestana Guardia - 2011 Home-based naming: mobile IP
  • 13. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 13 Hélio Crestana Guardia - 2011 Tabelas Hash distribuídas (DHTs) Ex.: Chord • Identificadores com m bits, escolhidos ateatoriamente para atribuição aos nós e outras entidades (arquivos, processos, etc.) • m: comumente 120 ou 160 bits, dependendo da função hash utilizada • Nós organizados em um anel lógico – Cada nó recebe um identificador aleatório (m-bits) – Cada entidade recebe um identificador aleatório (m-bits) – Responsabilidade sobre entidade com identificador k é atribuída a nó com menor identificador id >= k, denominado sucessor de k – succ(k) • Busca: – Linear, consultando cada nó no anel lógico a partir de succ(k), até localização ser encontrada, ou – Usando finger table (tabela de derivação)
  • 14. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 14 Hélio Crestana Guardia - 2011 Chord DHT: Finger tables • Cada nó Chord mantém uma finger table (FTp [ ]) com no máximo m entradas (log2 Núm_nós) • FTp [i] = succ(p + 2i−1 ) • FTp [i] aponta para o próximo nó, sucessor de p por ao menos 2i−1 nós • Na busca de uma chave k, nó p encaminha requisição para nó com índice j, satisfazendo: q = FTp [j] ≤ k < FTp [j + 1] • Se p < k < FTp [1], requisição também é encaminhada para FTp [1]
  • 15. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 15 Hélio Crestana Guardia - 2011 Chord DHT: Finger tables
  • 16. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 16 Hélio Crestana Guardia - 2011 DHT: exploração de proximidade de rede Organização lógica dos nós pode levar a encaminhamentos ineficientes Soluções: • Atribuição de identificadores de nós de acordo com topologia (topology- aware node assignment) – IDs próximos devem corresponder a nós fisicamente próximos também (atribuição pode ser complexa...) • Roteamento por proximidade (proximity routing): nós mantêm lista de alternativas para encaminhamento para uma requisição, e escolhem mais próximo • Seleção de vizinho por proximidade (proximity neighbor selection): tabelas de roteamento são usadas de modo de nó mais próximo seja selecionado como vizinho
  • 17. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 17 Hélio Crestana Guardia - 2011 Flat naming: abordagens hierárquicas Hierarchical Location Services (HLS) ● Rede é dividida em conjunto de domínios ● Domínio único de nível mais alto abrange toda a rede ● Domínios podem ser subdivididos ● Domínio de nível mais baixo é denominado domínio-folha e, normalmente, corresponde a uma rede local, ou célula em telefonia móvel ● Domínios têm diretório associado, que monitora atividades no domínio ● Nó de diretório no domínio de nível mais alto é denominado nó raiz, e conhece todas as entidades
  • 18. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 18 Hélio Crestana Guardia - 2011 Flat naming: abordagens hierárquicas
  • 19. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 19 Hélio Crestana Guardia - 2011 Flat naming: abordagens hierárquicas
  • 20. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 20 Hélio Crestana Guardia - 2011 Flat naming: abordagens hierárquicas ● Consulta: encaminhamento hierárquico
  • 21. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 21 Hélio Crestana Guardia - 2011 Flat naming: abordagens hierárquicas ● Inserção: transmissão do registro (a), ou ajuste de ponteiros para registro local (b) ● Remoção usa abordagens análogas
  • 22. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 22 Hélio Crestana Guardia - 2011 Nomeação estruturada Nomes estruturados são compostos por nomes simples (flat) e organizados em espaços de nomes (name spaces) Name spaces: ● Grafo em que nós folhas representam entidades ● Nó folha representa entidade nomeada; não tem ramos de saída ● Nó diretório é uma entidade que se refere a outros nós ● Diretórios contêm tabelas com pares de informações: rótulo do ramo, identificador do nó ● Pathname (nome de caminho) corresponde a sequência em caminho de nomeação: N:<label-1, label-2, …, label-n> (N=primeiro nó no caminho) ● Nomes podem ser absolutos (absolute pathnames), quando incluem a raiz do gráfico de nomeação, ou relativos (relative pathnames), nos demais casos
  • 23. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 23 Hélio Crestana Guardia - 2011 Nomeação estruturada ● Nós podem conter diferentes tipos de atributos, descrevendo aspectos das entidades que representam: ● Tipo da entidade ● Identificador para a entidade ● Endereço da localização da entidade ● Apelidos ● … ● Diretórios também podem ter atributos, além de apenas armazenar tabelas ● Gráfico de nomeação aproxima-se de implementações de sistemas de arquivos ● Em sistemas de arquivos, '/' é separador de rótulos; '/' no início do nome serve para indicar caminhos absolutos
  • 24. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 24 Hélio Crestana Guardia - 2011 Espaços de nomes e grafos de nomeação
  • 25. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 25 Hélio Crestana Guardia - 2011 Espaços de nomes e grafos de nomeação
  • 26. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 26 Hélio Crestana Guardia - 2011 Resolução de nomes ● Dado um nome de caminho, deve ser possível consultar qualquer informação armazenada no nó referenciado por este nome ● Processo de busca de um nome é denominado resolução de nomes ● N:<label1 , label2 ,...,labeln > : resolução do nome inicia no nó N do grafo de nomeação; resolução pára no último nó referenciado, com o retorno do conteúdo daquele nó. ● Mecanismo de fechamento (closure mechanism) trata da seleção do nó em um espaço de nomes para iniciar a resolução de nomes ● www.cs.vu.nl: consulta inicia-se em um servidor DNS ● /home/steen/mbox: consulda a um servidor NFS ● 0031204447784: número a ser chamado ● 130.37.24.8: rota ao Web server VU
  • 27. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 27 Hélio Crestana Guardia - 2011 Ligação (link) ● Apelidos ou aliases correspondem a outros nomes usados para uma entidade ● Abordagens: ● Hard link (ponteiros estritos): vários nomes de caminho absoluto referenciam o nesmo nó ● Soft link (ponteiros simbólicos): permite que um nó contenha um nome de outro nó – First resolve O’s name (leading to O) – Read the content of O, yielding name – Name resolution continues with name
  • 28. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 28 Hélio Crestana Guardia - 2011 Ligação (link)
  • 29. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 29 Hélio Crestana Guardia - 2011 Montagem ● Montagem permite fundir diferentes espaços de nome ● Sistema de arquivos montado corresponde a deixar que um nó diretório armazene o identificador de um nó diretório de um espaço de nomes diferente (externo) ● Ponto de montagem externo corresponde à raiz de um espaço de nome ● Ponto de montar (local) armazena identificador de nó ● Montagem requer: ● Nome de um protocolo de acesso ● Nome do servidor ● Nome do ponto de montagem no espaço de nomes externo (Todos esses nomes precisam ser resolvidos) ● Ex.: Network File System (NFS): nfs://flits.cs.vu.nl//home/steen
  • 30. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 30 Hélio Crestana Guardia - 2011 Montagem
  • 31. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 31 Hélio Crestana Guardia - 2011 Implementação de um espaço de nomes Em SD de grande escala, processo de resolução de nomes deve ser distribuído sobre múltiplas máquinas Distribuição do espaço de nomes: ● Organização hierárquica com níveis de funcionalidade: ● Camada global, formada por nós de nível mais alto (raiz e nós mais próximos) ● Camada administrativa, formada por nós de diretório; representam grupos de entidades que pertencem à mesma organização ou unidade administrativa ● Camada gerencial: diretório de baixo nível. Aspecto principal é o mapeamento efetivo de nós ● Disponibilidade e desempenho podem ser providos com replicação de servidores combinados com caches no lado do cliente.
  • 32. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 32 Hélio Crestana Guardia - 2011 Implementação de um espaço de nomes
  • 33. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 33 Hélio Crestana Guardia - 2011 Implementação de um espaço de nomes
  • 34. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 34 Hélio Crestana Guardia - 2011 Resolução de nomes iterativa ● resolve(dir,[name1,...,nameK]) sent to Server0 responsible for dir ● Server0 resolves resolve(dir,name1) → dir1, returning the identification (address) of Server1, which stores dir1. ● Client sends resolve(dir1,[name2,...,nameK]) to Server1, etc.
  • 35. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 35 Hélio Crestana Guardia - 2011 Resolução de nomes recursiva ● resolve(dir,[name1,...,nameK]) sent to Server0 responsible for dir ● Server0 resolves resolve(dir,name1) → dir1, and sends resolve(dir1, [name2,...,nameK]) to Server1, which stores dir1. ● Server0 waits for result from Server1, and returns it to client.
  • 36. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 36 Hélio Crestana Guardia - 2011 Resolução de nomes recursiva
  • 37. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 37 Hélio Crestana Guardia - 2011 Resolução de nomes
  • 38. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 38 Hélio Crestana Guardia - 2011 Sistema de Nomes de Domínio: DNS ● Domain Name System é exemplo de sistema de nomeação estruturada ● Espaço de nomes DNS organizado como árvore com raiz ● Rótulos têm no máximo 63 caracteres; caminho completo está limitado a 255 caracteres, contendo rótulos separados por '.' ● Sub-árvores são denominadas domínio ● Nome de caminho até nó raiz é denominado nome de domínio ● Conteúdo de um nó é formado por um conjunto de registros de recursos ● Diferentes tipos de registros ● Registro Start of Authority – SOA – contém informações sobre computador onde dados sobre zonas de domínios
  • 39. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 39 Hélio Crestana Guardia - 2011 Sistema de Nomes de Domínio
  • 40. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 40 Hélio Crestana Guardia - 2011
  • 41. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 41 Hélio Crestana Guardia - 2011 Implementações de DNS descentralizadas ● DNS na Internet usa hierarquia de servidores com 13 servidores-raiz e milhões de servidores nas folhas ● Solução para evitar sobrecarga dos servidores na raiz: cache ● Solução alternativa: calcular hash de nome DNS e usá-lo como chave de consulta em DHT ● Desvantagem: perde-se estrutura do nome original, o que dificulta consulta de filhos de um domínio específico
  • 42. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 42 Hélio Crestana Guardia - 2011 Nomeação baseada em atributo ● Além da localização de entidades em função de seus nomes, pode ser interessante localizá-las em função de outros atributos ● Abordagem: descrição de entidade em termos de pares (atributo, valor) ● Entidades têm conjuntos associados de atributos ● Nas buscas, usuários definem valores que um determinado atributo deve ter ● Sistema de nomeação deve retornar entidades que atendem à descrição realizada
  • 43. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 43 Hélio Crestana Guardia - 2011 Serviços de diretório ● Sistemas de nomeação baseados em atributos também são conhecidos como serviços de diretório ● Sistemas que suportam nomeação estruturada são denominados sistemas de nomeação ● Serviços de diretório permitem que entidades sejam localizadas em função de atributos ● Estrutura de descrição de recurso (resource description framework – RDF) determina como recursos podem ser descritos ● Recursos são descritos como triplas que consistem em um sujeito, um predicado em um objeto ● Ex.: (Pessoa, nome, Alice) descreve recurso Pessoa, cujo nome é Alice ● Referências em RDF são, em essência, URLs ● Consultas de valores em sistemas de nomeação baseados em atributos requer busca exaustiva em todos os descritores ● Como armazenar descritores de forma distribuída?
  • 44. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 44 Hélio Crestana Guardia - 2011 Implementação hierárquica para nomeação baseada em atributos ● Serviços distribuídos de diretório: dombinação de nomeação estruturada com nomeação baseada em atributos ● LDAP (Lightweight directory access protocol): serviço de diretório derivado do serviço de diretório X.500 OSI ● LDAP consiste de diversos registros (entradas de diretório) ● Registros compostos de conjuntos de pares (atributo, valor) ● Atributos têm tipos associados ● Atributos podem ser de valor único ou de valores múltiplos ● Conjunto de entradas de um diretório LDAP é denominado base de informações de diretório (Directory Information Base – DIB) ● Cada registro na DIB é nomeado exclusivamente ● Atributos de nomeação denominados nomes relativos distinguidos (RDN – relative distinguished name) ● Árvore de informações de diretório (directory information tree – DIT) forma gráfico de nomeação de um serviço de diretório LDAP
  • 45. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 45 Hélio Crestana Guardia - 2011 LDAP: atributos
  • 46. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 46 Hélio Crestana Guardia - 2011
  • 47. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 47 Hélio Crestana Guardia - 2011
  • 48. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 48 Hélio Crestana Guardia - 2011
  • 49. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 49 Hélio Crestana Guardia - 2011