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