asd-Nomeação(Tanembaum)

Propaganda
10/6/2013
Nomeação
Nomeação
• Nomes são usados para denotar entidades em um
SD.
– Para operar em uma entidade, precisamos acessa-la
em um ponto de acesso.
– Pontos de acesso são entidades que são nomeadas
através de um endereço.
• Nota: Um nome independente de localização
para uma entidade E é independente do endereço
do ponto de acesso oferecido por E.
1
10/6/2013
Identificadores
• Nome Puro: Um nome que não tem significado,
é apenas um string. Nomes puros são usados
apenas para comparação.
• Identificador: Um nome que tem as seguintes
propriedades:
– P1 cada identificador refere-se a no máximo 1
entidade
– P2 cada entidade é referenciada por no máximo 1
identificador
– P3 um identificador sempre refere a uma mesma
entidade
Espaços de Nomes (1)
• Um grafo no qual um nodo folha representa uma entidade. Um nodo
diretório é uma entidade que refere outros nodos.
• Nota: Um nodo diretório contém uma tabela de pares (nome
aresta, identificador nodo).
2
10/6/2013
Espaços de Nomes (2)
• Observação: podemos armazenar todo tipo de
atributos em um nodo, descrevendo aspectos da
entidade que o nodo representa:
–
–
–
–
–
Tipo da entidade
Um identificador para aquela entidade
Endereço de localização da entidade
Apelidos
…
• Nodos diretório também podem ter atributos além de
armazenar a tabela diretório.
Resolução de Nomes
• Problema: Para resolver um nome precisamos um nodo
diretório. Como achamos o tal nodo?
• Mecanismo Closure: mecanismo para selecionar o
contexto implícito a partir do qual a resolução de nome
inicia:
–
–
–
–
www.cs.vu.nl: inicia em um servidor de nomes DNS
/home/steen/mbox: inicia no servidor de arquivos local NFS
0514566765: disca um numero de telefone
130.37.24.8: roteia para o servidor Web VU
• Observação: um mecanismo closure pode também
determinar como resolução de nome deve proceder.
3
10/6/2013
Ligação e Montagem (1)
• Hard Link: O que descrevemos como nome do
caminho um nome que é resolvido seguindo um
caminho específico em um grafo de nomeação nodo a
nodo.
• Soft Link: permite um nodo O conter um nome de outro
nodo:
– Primeiro resolve o nome O
– Ler conteúdo de O, nome
– Resolução de nome continua com nome
• Observações:
– O processo de resolução determina ler o conteúdo do nodo
– De uma forma ou de outra , sabemos onde e como iniciar
resolução de nome dado nome
Ligação e Montagem (2)
• O conceito de uma ligação simbólica em um grafo de
nomeação (n5 tem apenas um nome).
4
10/6/2013
Ligação e Montagem (2)
• Problema: Temos espaços de nomes diferentes que
desejamos acessar de qualquer espaço de nomes.
– Solução 1: Introduzir um esquema de nomes pelo qual
pathnames de diferentes espaços de nomes são simplesmente
concatenados (URL).
– Solução 2: Introduzir nodos que contém um nodo em um
espaço de nomes externo, junto com informação de como
selecionar o contexto inicial naquele espaço de nomes (Jade).
– Solução 3: Usar apenas pathnames completos, nos quais o
contexto inicial é explícitamente identificado e combinado
através da adição de um novo nodo raiz (DCE)
Ligação e Montagem (3)
Montando espaço de nomes remoto através de protocolo específico.
5
10/6/2013
Ligação e Montagem (4)
Organização do Serviço de Nomes Global DEC
Distribuição de Espaço de Nomes (1)
• Básico: Distribuir o processo de resolução de nomes assim como
o gerenciamento do espaço de nomes através de múltiplas
máquinas, distribuindo nodos do grafo de nomeação.
• Considere um grafo de nomeação hierárquico com 3 níveis:
– Nivel Global: Composto por nodos diretórios de alto nível. Estes nodos
tem que ser gerenciados de forma conjunta por diferentes administrações.
– Nível Administrativo: Contém nodos nível médio que podem ser
agrupados de forma que cada grupo pode ser atribuído a uma
administração diferente.
– Nível Gerencial: Composto de nodos de baixo nível dentro de uma única
administração. Questão principal é efetivamente mapear nodos diretórios
para servidores de nome locais.
6
10/6/2013
Distribuição de Espaço de Nomes (2)
•
Um exemplo do particionamento de espaço de nomes DNS, incluíndo
arquivos acessíveis por Internet, em 3 níveis.
Distribuição de Espaço de Nomes (2)
Item
Global
Administrational
Managerial
Geographical scale of network
Worldwide
Organization
Department
Total number of nodes
Few
Many
Vast numbers
Responsiveness to lookups
Seconds
Milliseconds
Immediate
Update propagation
Lazy
Immediate
Immediate
Number of replicas
Many
None or few
None
Is client-side caching applied?
Yes
Yes
Sometimes
• Uma comparação entre servidores de nomes na implementação de
nodos de um espaço de nomes (grande escala) particionado em nível
global, nível administrativo e nível gerencial.
7
10/6/2013
Implementação Resolução de Nomes (1)
• O princípio de resolução de nomes iterativa.
Implementação Resolução de Nomes (2)
• O princípio da resolução de nomes recursiva.
8
10/6/2013
Implementação Resolução de Nomes (3)
Server for
node
Should
resolve
Looks up
Passes to
child
Receives
and caches
Returns to
requester
cs
<ftp>
#<ftp>
--
--
#<ftp>
vu
<cs,ftp>
#<cs>
<ftp>
#<ftp>
#<cs>
#<cs, ftp>
ni
<vu,cs,ftp>
#<vu>
<cs,ftp>
#<cs>
#<cs,ftp>
#<vu>
#<vu,cs>
#<vu,cs,ftp>
root
<nl,vu,cs,ftp>
#<nl>
<vu,cs,ftp>
#<vu>
#<vu,cs>
#<vu,cs,ftp>
#<nl>
#<nl,vu>
#<nl,vu,cs>
#<nl,vu,cs,ftp>
• Resolução recursiva de <nl, vu, cs, ftp>. Servidores
armazenam (cache) resultados intermediários para busca.
Implementação Resolução de Nomes (4)
• Comparação entre resolução recursiva e iterativa em
relação a custos de comunicação.
9
10/6/2013
Questões de Escalabilidade (1)
• Escalabilidade de Tamanho: Precisamos assegurar
que servidores podem tratar um grande número de
requisições por unidade de tempo => servidores de
alto nível tem problemas sérios.
• Solução: Assumir que o conteúdo dos nodos raramente
muda. Neste caso, podemos utilizar replicação ( nodos
em múltiplos servidores, utilizar o mais perto).
•Observação: Um atributo importante em muitos nodos
é o endereço onde a entidade representada pode ser
contactada. Replicar os nodos faz com que servidores de
nomes (de grande escala) tradicionais não adequados
para localizar entidades móveis.
Questões de Escalabilidade (2)
• Escalabilidade Geográfica: Precisamos assegurar
que o processo de resolução de nomes escala através
de grandes distâncias geográficas.
• Problema: Mapear nodos para servidores que podem,
a princípio, estar localizados em qualquer lugar,
introduz uma dependência de localização implícita no
esquema de nomeação.
• Solução: Nenhuma (geral) disponível ainda.
10
10/6/2013
Espaço de Nomes DNS
Type of
record
Associated
entity
Description
SOA
Zone
Holds information on the represented zone
A
Host
Contains an IP address of the host this node represents
MX
Domain
Refers to a mail server to handle mail addressed to this node
SRV
Domain
Refers to a server handling a specific service
NS
Zone
Refers to a name server that implements the represented zone
CNAME
Node
Symbolic link with the primary name of the represented node
PTR
Host
Contains the canonical name of a host
HINFO
Host
Holds information on the host this node represents
TXT
Any kind
Contains any entity-specific information considered useful
Tipos de registros de recursos, formando os conteúdos dos
nodos em um espaço de nomes DNS.
DNS Implementação (1)
Um mostra da
base de
dados do
DNS para a
zona
cs.vu.nl.
11
10/6/2013
DNS Implementação (2)
Name
Record type
Record value
cs.vu.nl
NIS
solo.cs.vu.nl
solo.cs.vu.nl
A
130.37.21.1
• Parte da descrição para o domínio vu.nl
que contém o domínio cs.vu.nl .
Espaço de Nomes X.500 (1)
Attribute
Abbr.
Value
Country
C
NL
Locality
L
Amsterdam
Organization
L
Vrije Universiteit
OrganizationalUnit
OU
Math. & Comp. Sc.
CommonName
CN
Main server
Mail_Servers
--
130.37.24.6, 192.31.231,192.31.231.66
FTP_Server
--
130.37.21.11
WWW_Server
--
130.37.21.11
• Um exemplo de uma entrada de diretório X.500 usando
as convenções de nomeação X.500.
12
10/6/2013
Espaço de Nomes X.500 (2)
Parte da árvore
diretório de
informações.
Espaço de Nomes X.500 (3)
Attribute
Value
Attribute
Value
Country
NL
Country
NL
Locality
Amsterdam
Locality
Amsterdam
Organization
Vrije Universiteit
Organization
Vrije Universiteit
OrganizationalUnit
Math. & Comp. Sc.
OrganizationalUnit
Math. & Comp.
Sc.
CommonName
Main server
CommonName
Main server
Host_Name
star
Host_Name
zephyr
Host_Address
192.31.231.42
Host_Address
192.31.231.66
Two directory entries having Host_Name as RDN.
13
10/6/2013
Localização de Entidades Móveis
•
•
•
•
Nomeação x Localização
Soluções simples
Abordagem baseada em home
Abordagem hierárquica
Nomeação X Localização
•
•
•
•
Serviço de Localização: fornecer endereços das
localizações atuais das entidades.
Suposição - entidades são móveis, assim o endereço
atual pode mudar com frequência.
Serviço de Nomes: dado um nome, fornecer conteúdo
dos nodos em um espaço de nomes. Conteúdo consiste
de diferentes pares (atributo,valor).
Suposição - conteúdo do nodo no nível administrativo
e global é relativamente estável para escalabilidade.
14
10/6/2013
Nomeação X Localização
•
Problema - não é real assumir conteúdos de nodos estáveis no
nível local de nomeação.
•
Solução - desvincular nomeação de localização de entidades
Localização de Entidades
•
Broadcasting - transmite ID requisitando a entidade retornar
seu endereço atual.
–
–
•
Pode não escalar além de redes LAN
Requer que todos os processos escutem as requisições de localização
que chegam.
Apontadores de avanço - cada vez que uma entidade move, ela
deixa um apontador que diz onde ela foi.
–
–
–
acesso pode ser feito totalmente transparente para os clientes
simplesmente seguindo a cadeia de apontadores
Atualizar uma referencia assim que localização presente é encontrada.
Problemas de escalabilidade geográfica
•
•
grandes cadeias não são tolerantes a falhas
aumento da latência de rede no acesso
15
10/6/2013
Forwarding Pointers (1)
Forwarding Pointers (2)
16
10/6/2013
Abordagem Home-Based
• Esquema único nível - deixar um home manter
informações de onde a entidade esta
– o endereço home de uma entidade é registrado em um serviço
de nomes
– este registra os endereços externos da entidade
– o cliente sempre contata o home primeiro, depois continua
com a localização externa
Abordagem Home-Based
O princípio do IP móvel.
17
10/6/2013
Abordagem Home-Based
• Esquema dois níveis - manter informação das
entidades visitantes
– verificar primeiro registro local do visitante
– volta a localização home se procura local falhar
• Problemas
– endereço home deve ser suportado enquanto a entidade existe
– endereço home é fixado, significando uma obrigação não
necessária quando a entidade se movimenta de forma
permanente para outra localização
– escalabilidade geografica pobre
Abordagem Hierárquica (1)
• Idéia básica- construir uma árvore de busca de grande escala para
qual a rede é dividida em domínios hierárquicos. Cada domínio é
representado por um nodo diretório associado.
18
10/6/2013
Abordagem Hierárquica (2)
Organização da árvore
• o endereço de uma entidade é armazenado em um nodo
folha, ou em um nodo intermediário
• nodos intermediários contém um apontador para um filho se
e sómente se a sub-árvore filha armazena um endereço para
a entidade
• a raiz conhece todas as entidades
Abordagem Hierárquica (2.1)
– Um exemplo de armazenagem de informação de uma entidade com 2
endereços em diferentes domínios folha.
19
10/6/2013
Abordagem Hierárquica (3)
Operação de Busca
• inicia busca no nodo folha local
• se o nodo conhece a entidade, segue apontador para baixo,
senão vai um nível acima
• busca para cima sempre para na raiz
Abordagem Hierárquica (3.1)
Busca de uma localização em um serviço de localização hierárquico.
20
10/6/2013
Abordagem Hierárquica (4)
a) Uma requisição de inserção é repassada para o primeiro nodo que
conhece a entidade E.
b) Uma cadeia de apontadores para um nodo folha é criada.
Caching de Apontadores (1)
– Caching uma referência a um nodo diretório no domínio de mais
baixo nível no qual uma entidade reside maior parte do tempo.
21
10/6/2013
Caching de Apontadores (2)
– Uma entrada na cache que precisa ser invalidada porque ela retorna
um endereço não local, enquanto o endereço está disponível.
Questões de Escalabilidade (1)
• Escalabilidade de tamanho, problema de sobrecarga em nodos
de nível mais alto
– solução é particionar um nodo em um número de sub-nodos e igualmente
atribuir entidades a sub-nodos
– particionamento simples pode introduzir um problema de gerenciamento de
nodo, visto que um sub-nodo pode ter que saber como seu pai e filho são
particionados
• Escalabilidade geografica, precisamos assegurar que operações
de busca geralmente procedem de forma monotônica na direção
onde iremos encontrar um endereço
– se entidade E geralmente reside no Brasil, não deixar a raiz de um subnodo localizado na França armazenar registro de contato de E
– infelizmente, colocação de sub-nodos não é tão fácil e apenas algumas
tentativas de solução são conhecidas
22
10/6/2013
Questões de Escalabilidade (2)
– Questões de escalabilidade relacionadas a colocação uniforme de sub nodos de
um nodo raiz particionado pela rede coberta por um serviço de localização.
Objetos Não-referenciados
• Suposição - Objetos podem existir apenas se é sabido
que eles podem ser contatados
– cada objeto deve ser nomeado
– cada objeto pode ser localizado
– uma referência pode ser resolvida para comunicação clienteobjeto
• Problema - Remoção de objetos não referenciados
– como sabemos quando um objeto não é mais referenciado?
– quem é responsável pela (decisão) remoção de um objeto?
23
10/6/2013
Objetos Não-referenciados
– Um exemplo de um grafo representando objetos contendo
referências entre eles.
Contador de Referência (1)
• Princípio - Cada vez que um cliente cria (remove) uma
referência para um objeto O, um contador de referência local a
O é incrementado (decrementado).
• Problema 1 - tratar com mensagens perdidas (e duplicadas)
– um incremento é perdido, assim o objeto pode ser prematuramente
removido
– um decremento é perdido, assim o objeto nunca é removido
– um ACK é perdido, assim o incremento/decremento é re-enviado.
• Solução - manter informações de requisições duplicadas
24
10/6/2013
Contador de Referência (1.1)
– O problema de manter um contador de referência apropriado na
presença de comunicação não confiável.
Contador de Referência (2)
Problema 2 - Tratar com referências duplicadas, cliente P1 diz
ao cliente P2 sobre objeto O
–
–
cliente P2 cria uma referência para O mas desreferência pode
levar tempo
se a última referência conhecida para O é removida antes de P2
falar com O, o objeto é removido prematuramente
Solução 1 - assegurar que P2 fale com O em tempo
–
–
–
deixar P1 dizer a O que ele passará uma referência para P2
deixar O contatar P2 imediatamente
uma referência nunca pode ser removida antes que O de ACK
aquela referência para o detentor
25
10/6/2013
Contador de Referência (2.1)
a) Copiando uma referência para outro processo e
incrementando o contador muito tarde
b) Uma solução.
Contador de Referência Avançado (1)
Solução 2 - evitar mensagens de incremento e
decremento
–
deixar O permitir um máximo de M referências
•
–
nova referência remota => garante crédito de M/2
•
•
–
armazenado no proxy
restante permanece no skeleton
cliente P1 diz a P2 sobre O, ele passa metade do seu
crédito para P2
•
–
na criação peso total é armazenado no skeleton
armazenado no proxy copiado
deleção de referência
•
•
•
passa crédito atual de volta para O
subtrai valor do peso total no skeleton
peso total = 0, sem referência => remover objeto
26
10/6/2013
Contador de Referência Avançado (1.1)
a) A atribuição inicial de pesos na abordagem contador de referência
b) Atribuição de pesos na criação de uma nova referência.
Contador de Referência Avançado (1.2)
c) Atribuição de peso na cópia de uma referência.
27
10/6/2013
Contador de Referência Avançado (1.3)
Criando uma indireção quando o peso parcial de uma referência
chegou a 1.
Contador de Referência Avançado (1.4)
Criando e copiando uma referência remota na abordagem
geração de contador de referência.
28
10/6/2013
Lista de Referências
• É possível evitar muitos problemas se podemos tolerar
perda e duplicação de mensagem.
• Lista de referências: deixar um objeto manter uma lista
de seus clientes
– Operação de incremento é substituída por insere
– Operação de decremento por remove
– Operações são idempotentes
• Problemas
– Passagem de referências: cliente B tem que estar na lista de O
antes de remover ultima referência em O
– Cliente quebra: é preciso remover registros fora de prazo
Identificar Entidades Não-referenciados
• É impossível remover entidades não alcançáveis a
partir do conjunto raiz com o que foi visto.
• É preciso método onde todas as entidades sejam
rastreadas - Coletor de lixo baseado em rastreamento.
– Abordagem + simples (uniprocessador)
• Fase de marcação, entidades que podem ser encontradas são marcadas
• Fase de varredura, entidades não marcadas são retiradas
– Extensão com 3 cores (branco, preto e cinza)
• Problema - grafo de alcançabilidade deve ser o mesmo
nas 2 fases
– processos precisam sincronizar, mudam para coletor e depois
continuam
29
10/6/2013
Localização em Grupos (1)
Marcação inicial dos skeletons.
Localização em Grupos (2)
Depois de propagação local em cada processo.
30
10/6/2013
Localização em Grupos (3)
Marcação final.
31
Download