Luís F. Faina - 2013 Pg. 1/108
Cap. 05 – Nomeação
5.1 – Nomes e Endereços
5.2 – Nomeação Plana5.2.1 Solução Simples
5.2.2 Abordagem “Home-Based”
5.2.3 Distributed Hash Tables – DHT
5.2.4 Abordagem Hierárquica
5.3 – Nomeação Estruturada5.3.1 Espaço de Nomes
5.3.2 Resolução de Nomes
Luís F. Faina - 2013 Pg. 2/108
Cap. 05 – Nomeação
5.3 – Nomeação Estruturada5.3.1 Espaço de Nomes
5.3.2 Resolução de Nomes
5.3.3 Implementação do Espaço de Nomes
5.3.4 Examplo: Domain Name System
5.4 – Atribuição de Nomes baseada em Atributo5.4.1 Serviços de Diretório
5.4.2 Implementação Hierárquica - LDAP
5.4.3 Implementações Descentralizadas
Luís F. Faina - 2013 Pg. 3/108
Referências Bibliográficas
● Andrew S. Tanenbaum; Maarten van Steen - Distributed Systems: Principles and Paradigms, Prentice-Hall, 2007, ISBN-10: 0132392275, ISBN-13: 9780132392273
… Lectures dos autores Andrew S. Tanenbaum e Maarteen van Steen (“www.cs.vu.nl” e “www.distributed-systems.net/”)
● George Coulouris; Jean Dollimore; Tim Kindberg – Sistemas Distribuídos: Conceitos e Projeto, Bookman, 4th Edition, 2007, ISBN 9788560031498
● Notas de Aula do Prof. Ricardo Anido do Instituto de Computação (IC) da UNICAMP - www.ic.unicamp.br/~ranido/
Luís F. Faina - 2013 Pg. 4/108
5 Nomeação - Introdução
Introdução
● “names” – responsáveis pela identificação unívoca de entidades bem como localizações, desempenham um importante papel nos sistemas computacionais;
● “name systems” - responsáveis pela resolução dos nomes;
● … se diferenciam pela forma como são implementados em sistemas distribuídos e sistemas não distribuídos.
● ... em sistemas distribuídos a implementação de sistemas de nomes é distribuída em diferentes máquinas;
● ... assim, a forma como é implementado desempenha um papel chave para a eficiência e escalabilidade do sistema.
Luís F. Faina - 2013 Pg. 5/108
5 Nomeação – 5.1 Nomes, Identificadores e Endereços
5.1 – Nomes, Identificadores e Endereços
● “name” - ... em sistemas distribuídos, é uma “string” de bits ou caracteres utilizada para referenciar uma entidade;
● e.g., entidades – processos, usuários, caixa de email, grupo de notícias, janela gráfica, mensagens, conexões de rede, etc.
● ... para operar uma entidade é necessário acessá-la através do que se chama “access point”, que por sua vez é um tipo especial de entidade em sistemas distribuídos;
● ... “address” - nome de um “access point”.
● “addresses” - são simplesmente tipos especiais de nomes que referenciam “access points” como entidades.
Luís F. Faina - 2013 Pg. 6/108
5 Nomeação – 5.1 Nomes, Identificadores e Endereços
… 5.1 – Nomes, Identificadores e Endereços
● “entities” - podem oferecer mais de um ponto de acesso bem como alterá-los no decorrer do tempo;
● e.g., ... servidor sendo executado em um “host” terá seu endereço formado pelo endereço IP e nro de “port”;
● e.g., ... quando um computador se move para um outro local, é atribuído um nro. IP diferente do que lhe foi atribuído no passado.
● problema - ... como entidades oferecem mais de um ponto de acesso, qual endereço utilizar como referência ?!
● e.g., ... muitas organizações distribuem os seus serviços Web em vários servidores espalhados na Internet.
● ... podemos encontrar uma solução melhor ?!
Luís F. Faina - 2013 Pg. 7/108
5 Nomeação – 5.1 Nomes, Identificadores e Endereços
… 5.1 – Nomes, Identificadores e Endereços
● problema - ... como entidades oferecem mais de um ponto de acesso, qual endereço utilizar como referência ?!
● e.g., ... muitas organizações distribuem os seus serviços Web em vários servidores espalhados na Internet;
● ... se utilizarmos os endereços destes servidores como referência, não é óbvio qual endereço deve ser escolhido como o melhor.
● “solução” - … termos um único nome para o serviço indepen- dente dos endereços dos servidores Web.
● conclusão – ... associação de nomes a entidades de forma independente dos seus endereços é frequentemente mais fácil e flexível de se usar - “location independent”.
Luís F. Faina - 2013 Pg. 8/108
5 Nomeação – 5.1 Nomes, Identificadores e Endereços
… 5.1 – Nomes, Identificadores e Endereços
● conclusão – ... associação de nomes a entidades de forma independente dos seus endereços é frequentemente mais fácil e flexível de se usar - “location independent”.
● ... adicionalmente, há outros tipos de nomes que merecem tratamento especial, tais como nomes usados para identificar univocamente uma entidade - “identifier”;
● “identifiers” - apresenta as seguintes propriedades:
● um identificador referencia no máximo uma entidade;
● cada entidade é referenciada no máximo por um identificador;
● um identificador sempre referencia a mesma entidade (sem reuso).
Luís F. Faina - 2013 Pg. 9/108
5 Nomeação – 5.1 Nomes, Identificadores e Endereços
… 5.1 – Nomes, Identificadores e Endereços
● “identifiers” - apresenta as seguintes propriedades:
● um identificador referencia no máximo uma entidade;
● cada entidade é referenciada no máximo por um identificador;
● um identificador sempre referencia a mesma entidade (sem reuso).
● e.g., ... considere 02 processos que fazem referência a uma entidade através de um identificador;
● ... para verificar se ambos os processos referenciam a mesma entidade é suficiente testar se os 02 identificadores são iguais ?!
● ... não é suficiente se os dois processos não estiverem utilizando nomes regulares, nomes não únicos e nomes não identificáveis;
● ... igualmente, se um endereço pode ser reatribuído para uma outra entidade, não podemos utilizar o nome como identificador.
Luís F. Faina - 2013 Pg. 10/108
5 Nomeação – 5.1 Nomes, Identificadores e Endereços
… 5.1 – Nomes, Identificadores e Endereços
● conclusão – endereços e identificadores são importantes tipos de nomes cada qual utilizado para diferentes propósitos;
● e.g., ... em sistemas computacionais, nomes e endereços formam “strings” de bits - “machine readable form”;
● ... endereço ethernet é essencialmente uma “string” de 48 bits;
● ... endereço de memória é representado por “strings” de 32 ou 64 bits como uma função da arquitetura do sist. computacional.
● “human-friendly names” - normalmente representados por “strings” de caracteres e não de bits, constituem nomes adapta- dos para as pessoas e não para os sistemas computacionais.
Luís F. Faina - 2013 Pg. 11/108
5 Nomeação – 5.1 Nomes, Identificadores e Endereços
… 5.1 – Nomes, Identificadores e Endereços
● “human-friendly names” - normalmente representados por “strings” de caracteres e não de bits, constituem nomes adapta- dos para as pessoas e não para os sistemas computacionais;
● e.g., ... nomes no Sistema de Arquivo do UNIX podem ser com- postos por até 255 caracteres e são definidos pelo usuário.
● Uma vez discutido os conceitos de “names”, “identifiers” e “addresses”, a questão central é como resolver/associar “names” e “identifiers” para “addresses” ?!
Luís F. Faina - 2013 Pg. 12/108
5 Nomeação – 5.1 Nomes, Identificadores e Endereços
… 5.1 – Nomes, Identificadores e Endereços
● ... antes de iniciarmos esta discussão é importante lembrar que há uma relação estreita entre sistema de nomes em sistemas distribuídos e roteamento de mensagens;
● ... entretanto, em sistemas distribuídos que transcendem diferentes redes e nos quais muitos recursos precisam ser nomeados, sistemas centralizados de dados não funcionam.
● Nas próximas seções iremos considerar as diferentes classes de sistemas de nomeação, inicialmente discutindo como identifica- dores podem ser resolvidos/associados para/com endereços.
Luís F. Faina - 2013 Pg. 13/108
5 Nomeação – 5.2 Nomeação Plana- “Flat Naming”
5.2 Nomeação Plana - “Flat Naming”
● “flat names” - também denominados nomes planos ou não estruturados - “unstructured names”, muitas das vezes se apresentam como uma “string” de bits aleatórios;
● ... propriedade importante - nome da entidade não contém qualquer informação em como localizar o “access point” da entidade que está associada ao referido nome.
Luís F. Faina - 2013 Pg. 14/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
5.2.1 Soluções Simples
● Inicialmente iremos considerar 02 soluções simples que possibi- litam a localização da entidade no escopo de redes locais;
● premissa – considere um sistema distribuído construído sobre uma rede local de computadores que oferece facilidades como “broadcasting” de mensagens;
● ... localizar uma entidade consiste em radiodifundir - “broadcast” uma mensagem contendo o identificador da entidade;
● ... somente a máquina que contém um “access point” para a enti- dade em questão irá responder com uma mensagem contendo o endereço daquele “access point”;
● e.g., ... este princípio é utilizado no Protocolo ARP – “Address Resolution Protocol” da Arquitetura Internet.
Luís F. Faina - 2013 Pg. 15/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.1 Soluções Simples
● desvantagem - ... “broadcast” é ineficiente quando a rede cresce não somente pelo gasto de banda mas também pelo fato de que muitos “hosts” serão interrompidos e interrogados;
● ... muitos “hosts” são requisitados a responder o que eles não tem como responder, pois, possivelmente apenas um “host” atende a requisição.
● e.g., ... uma solução possível é restringir o grupo de “hosts” que recebe a requisição como na rede ethernet que suporta “multicast” no enlace.
● “multicasting” - ... entrega de informação para um subgrupo de entidades de um grupo maior em um única transmissão;
● ... pode ser utilizado para localizar entidades em Redes P2P (Point to Point Protocol).
Luís F. Faina - 2013 Pg. 16/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.1 Soluções Simples
● e.g., Internet suporta “multicasting” no nível de rede permitindo que “hosts” se juntem a um grupo “multicast” específico;
● ... este grupo é identificado por um endereço “multicast” e cabe a camada de rede entregar a mensagem para cada membro;
● “local network control block” 224.0.0.0 a 224.0.0.255
● “internetwork control block” 224.0.1.0 a 224.0.1.255 (224.0.1/24)
● “ad-hoc block” 224.0.2.0 a 224.0.255.255
● “reserved” 224.1.0.0 a 224.1.255.255 (224.1/16)
● “SDP/SAP Block” 224.2.0.0 a 224.2.255.255 (224.2/16)
● … ...
Luís F. Faina - 2013 Pg. 17/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.1 Soluções Simples
● Endereço “multicast” pode ser utilizado como um serviço de localização geral para múltiplas entidades;
● e.g., ... considere uma organização onde cada empregado possui compu- tador móvel que quando conectado à rede recebe um endereço IP e na sequência se junta a um endereço “multicast”;
● ... quando um processo quer localizar o Computador A, ele simplesmente pergunta ao grupo “multicast” onde está o Computador A ?
● Endereço “multicast” pode ser utilizado para associar uma enti- dade com uma entidade réplica, possivelmente a mais próxima.
● e.g., ... ao enviar uma requisição para um endereço “multicast”, cada réplica responde com o corrente endereço de rede;
● ... na sequência selecione o mais próximo selecionando aquele cuja resposta chegou primeiro - “próximo em responder”.
Luís F. Faina - 2013 Pg. 18/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.1 Soluções Simples
● “forwarding pointers” - quando uma entidade move de A para B, ela deixa em A a referência da sua nova localização (B);
● vantagem - tão logo a entidade tenha atualizado os seus dados na nova localização, um cliente pode encontrar seu endereço corrente simplesmente seguindo a cadeia de ponteiros;
● desvantagens - ... se a cadeia de novas localizações se tornar muito grande, a sua localização pode se tornar proibitiva;
● ... todas as localizações intermediárias precisam manter a cadeia de encaminhamentos (ponteiros de encaminhamentos);
● ... abordagem altamente vulnerável em caso de quebra ou erros na cadeia de ponteiros de encaminhamento.
Luís F. Faina - 2013 Pg. 19/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.1 Soluções Simples
● Fig. 5.1 – ... princípio de “forwarding pointers” utilizando pares<“client stub”,“server stub”>
Luís F. Faina - 2013 Pg. 20/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.1 Soluções Simples
● “Fowarding Pointers” utilizando pares “client stub” e “server stub”:
● “server stub” - contém uma referência local para o objeto atual ou uma referência local para o “stub” cliente daquele objeto;
● ... quando um objeto se move de A para B, ele deixa o “stub” cliente em A e instala o “stub” servidor que se refere a ele em B;
● nesta abordagem a migração é totalmente transparente para o cliente.
● ... para atalhar a cadeia de pares, uma invocação de objeto mantém a identificação do “stub” cliente de onde a invocação foi iniciada;
● ... quando uma invocação atinge o objeto na sua localização corrente, uma resposta é enviada ao “stub” cliente no qual a invocação foi iniciada;
● ... informação da localização corrente pega carona - “piggyback” - na resposta enviada pelo “stub” servidor para o cliente.
Luís F. Faina - 2013 Pg. 21/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.1 Soluções Simples
● Fig. 5.2 (a) - Redirecionamento de ponteiro de encaminhamento através do armazenamento do atalho no “stub” cliente.
Luís F. Faina - 2013 Pg. 22/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.1 Soluções Simples
● Fig. 5.2 (b) - Redirecionamento de ponteiro de encaminhamento através do armazenamento do atalho no “stub” cliente.
Luís F. Faina - 2013 Pg. 23/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.1 Soluções Simples
● e.g., ... considere que P1 (Fig. 5.1) passe sua referência para um Objeto O em P2 – o que pode ser feito instalando um cópia “p'” do “stub” cliente “p” no espaço de endereçamento de P2;
● ... “stub” cliente “p'” refere-se ao mesmo “stub” servidor “p”, de modo que o mecanismo de encaminhamento funcione.
● problema - ... aparece quando uma cadeia de pares <”client stub”, “server stub”> se quebra ou se torna inatingível;
● solução – permitir que a máquina onde o objeto foi criado - “home location” mantenha a referência para a corrente localização;
● ... assim quando a cadeia de pares é quebrada, é possível requisitar ao objeto “home location” a localização corrente do objeto em questão.
Luís F. Faina - 2013 Pg. 24/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.1 Soluções Simples
● Fig. 5.1 – ... princípio de “forwarding pointers” utilizando pares <“client stub”,“server stub”>
Luís F. Faina - 2013 Pg. 25/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
5.2.2 Abordagem “Home Based”
● ... uso de “broadcasting” ou “multicasting” são difíceis de serem implementados de forma eficiente em redes de larga escala;
● razão - ... as longas cadeias de ponteiros de encaminhamento introduzem problemas de desempenho bem como são susceptíveis a quebra de “links”;
● “home location” - suporte às entidades móveis em redes de larga escala para rastrear a localização corrente de uma entidade a partir do local onde foi instanciada;
● ... abordagem utilizada como mecanismos de recuo - “fall-back” - para serviços de localização baseados em ponteiros de encaminhamento, e.g., IP Móvel.
Luís F. Faina - 2013 Pg. 26/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.2 Abordagem “Home Based”
● Fig. 5.3 – Princípio do IP Móvel.
Luís F. Faina - 2013 Pg. 27/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.2 Abordagem “Home Based”
● Desvantagens “Home-based Approach” em redes de larga escala:
● ... para se comunicar com um entidade móvel, um cliente precisa contactar a entidade origem - “home” - que por sua vez pode estar em um local completamente diferente da entidade móvel;
● ... utilização de localização fixa para a entidade origem (“home), exigindo assim que a localidade “home” sempre exista.
● ... alternativas para resolver estes problemas envolvem o serviço de nomes permitindo que antes da conexão com a entidade móvel o cliente obtenha a referência da entidade “home”.
Luís F. Faina - 2013 Pg. 28/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
5.2.3 “Distributed Hash Tables”
● “Distributed Hash Table” (DHT) – possibilitam a identificação de entidades sem considerar quanto distante estão umas das outras.
● “Chord System” - utiliza um espaço de identificadores de “m” bits para atribuir aleatoriamente identificadores aos nós assim como identificadores (chaves) às entidades nos nós;
● ... normalmente, “m” é igual a 128 ou 160 bits e entidades podem representar qualquer coisa, e.g., processos, arquivos, etc.
● regra – entidade com identificador “k” terá como nó responsável o nó cujo identificador “id” seja imediatamente superior “>= “k”;
● ... este nó é referenciado como sucessor de “k” - succ(k).
Luís F. Faina - 2013 Pg. 29/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.3 “Distributed Hash Tables”
● Sistemas baseados em DHT são eficientes pois resolvem a chave “k” encontrando o sucessor de “k” - succ(k);
● ... uma abordagem escalável óbvia é permitir que cada nó “p” mantenha rastreado o sucessor de “p” - succ(p+1) assim como o predecessor de “p” - pred(p);
● ... neste cenário quando um nó “p” recebe uma requisição para resolver a chave “k”, este nó simplesmente encaminha a requisição para um de seus vizinhos, e.g., mais apropriado;
● “exceção” - quando pred(p) < k <= p, situação em que o nó “p” deve retornar o seu próprio endereço para o processo que encaminhou a requisição para resolver a chave “k”.
Luís F. Faina - 2013 Pg. 30/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.3 “Distributed Hash Tables”
● “Chord Systems” - mantém uma tabela “finger table”
● FTp [ i ] = succ( p + 2^(i-1) ), ou seja, a “i”-ésima entrada aponta para o primeiro nó que sucede “p” por pelo menos “2^(i-1)”;
● ... note que estas referências são atalhos para nós existentes no espaço de identificadores, no qual a distância de salto para “p” aumenta exponencialmente a medida que o índice de tabela aumenta;
● ... para se encontrar a chave “k” um nó “p” deve encaminhar a requisição para o nó “q” com índice “j” em FT de “p”, onde:
● q = k onde “k” >= FTp [ j ] e “k” < FTp [ j+1]
Luís F. Faina - 2013 Pg. 31/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.3 “Distributed Hash Tables”
● Fig. 5.4 – “Chord System”
● requisição para nó 1 com a “key” 26;
● requisição para nó 28 com a “key” 12.
Luís F. Faina - 2013 Pg. 32/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.3 “Distributed Hash Tables”
● Como um nó “p” pode se juntar a Sistema baseado em DHT ?!
● ... nó “p” contacta um nó arbitrário no sistema e encaminha uma requisição para saber quem é o sucessor – succ( p ).
● ... como já visto a complexidade está em manter tabelas “finger tables” atualizadas para cada um dos nós da DHT.
● Obs.: Para todo nó “q”, a FTq [ 1 ] é correta se a entrada refere-se ao próximo nó do anel, ou seja, sucessor de “q+1”.
● ... para tanto cada nó “q” regularmente contacta o succ(q+1) e requisita que retorne o predecessor – pred( succ(q+1) );
● ... se “q” = pred( succ(q+1) ), “q” sabe que sua informação é consistente com aquela do seu sucessor.
Luís F. Faina - 2013 Pg. 33/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.3 “Distributed Hash Tables”
● ... como discutido no início desta seção, estes sistemas não levam em consideração a não proximidade entre os nós, o que possibilita o roteamento incorreto na rede;
● ... por isso a necessidade de considerar a rede subjacente.
● “topology-based assignment of node identifiers” - ... atribuir identificadores aos nós de tal modo que 02 identificadores próximos indiquem que os nós também são próximos.
Luís F. Faina - 2013 Pg. 34/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.3 “Distributed Hash Tables”
● “topology-based assignment of node identifiers” - ... atribuir identificadores aos nós de tal modo que 02 identificadores próximos indiquem que os nós também são próximos;
● Como veremos, esta restrição impõe alguns problemas em sistemas relativamente simples como “Chord Systems”:
● ... construir um anel para mapear os nós não é nada trivial além de expor falhas correlacionadas, posto que nós próximos na mesma rede receberão identificadores relativamente próximos;
● ... quando esta rede se torna inatingível, teremos uma lacuna ou caso contrário a distribuição uniforme de identificadores.
Luís F. Faina - 2013 Pg. 35/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.3 “Distributed Hash Tables”
● “proximity routing” - mantém uma lista de rotas alternativas para encaminhar requisições para destinatários;
● e.g., ... em vez de manter apenas um sucessor, cada nó pode manter informações de “r” sucessores.
● ... esta redundância pode ser aplicada a toda entrada na FT de modo que para cada “p”, FTp [ i ] aponta para o primeiro nó no intervalo [ p+2^(i-1), p+2^i – 1 ];
● ... se um nó “p” rastrear “r” nós no intervalo, cada nó pode ser usado para rotear uma requisição para uma chave k > p + 2^i -1;
● ... neste caso, quando de um encaminhamento de requisição, um nó pega um dos “r” sucessores mais próximos dele.
Luís F. Faina - 2013 Pg. 36/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.3 “Distributed Hash Tables”
● “proximity neighbor selection” - ... otimizar as tabelas de roteamento de modo que o nó mais próximo seja selecionado como o nó vizinho;
● ... mas só funciona quando há mais nós vizinhos para serem selecionados, ou seja, para “Chord Systems” não é o caso !
Luís F. Faina - 2013 Pg. 37/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
5.2.4 Abordagem Hierárquica
● “hierarchical scheme” - rede é dividida em uma coleção de domínios que podem ser subdivididos em domínios menores e que estão interligados direta ou indiretamente a um nó raiz;
● ... cada domínio “D” possui um nó diretório dir(D) que mantém rastreadas entidades naquele domínio (Fig. 5.5).
Luís F. Faina - 2013 Pg. 38/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.4 Abordagem Hierárquica
● Para se rastrear uma entidade, cada entidade de um domínio “D” é representada por um registro de localização no nó dir(D);
● e.g., ... registro de localização para entidade “E” no nó diretório “N” contém o endereço corrente da entidade naquele domínio;
● ... em contraste, o nó diretório “N'” para o próximo domínio de mais alto nível “D'” que contém “D” terá o registro de localização para “E” contendo somente um ponteiro para “N”;
● ... nó pai de “N'” irá armazenar o registro de localização para “E” contendo somente o ponteiro para “N'”;
● ... como consequência, nó raiz terá um registro de localização para cada entidade e cada registro armazena um ponteiro para o nó diretório do sub-domínio de menor nível em que está localizado.
Luís F. Faina - 2013 Pg. 39/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.4 Abordagem Hierárquica
● Uma entidade pode ter múltiplos endereços, p.e., se replicada;
● e.g., ... uma entidade tem um endereço no domínio folha “D1” e “D2”, então o nó diretório do menor domínio contendo “D1” e “D2” tem 02 ponteiros uma para cada subdomínio;
● ... cada subdomínio contém por sua vez um endereço;
● ... isto conduz a uma organização geral em árvore (Fig. 5.6).
Luís F. Faina - 2013 Pg. 40/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.4 Abordagem Hierárquica
● Fig. 5.6 – Armazenamento de informação em uma entidade que tem 02 endereços em 02 domínios folha.
Luís F. Faina - 2013 Pg. 41/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.4 Abordagem Hierárquica
● !? como se processa uma operação de busca ?!
● e.g, ... cliente deseja localizar uma entidade “E”, assim requisita ao nó diretório do domínio folha “D” onde reside;
● ... se o nó diretório não armazena o registro para a entidade, isto significa que a entidade não está localizada em “D”;
● ... neste caso, o nó encaminha para o seu nó pai que por sua vez representa um domínio maior que o domínio de “D”;
● ... tão logo a requisição alcance o nó diretório “M”, este domínio encaminha a requisição para os seus subdomínios até que a requisição alcance o nó folha;
● ... registro armazenado no nó folha contém a localização de “E”, assim, este endereço pode ser retornado para o cliente.
Luís F. Faina - 2013 Pg. 42/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.4 Abordagem Hierárquica
● Fig. 5.7 – Cliente tenta localizar entidade “E”, assim requisita a busca para o nó diretório “D” onde reside.
Luís F. Faina - 2013 Pg. 43/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.4 Abordagem Hierárquica
● !? como se processa uma operação de atualização ?!
● e.g., ... considere uma entidade “E” criada como réplica no domínio folha “D” e no qual deseja inserir o seu endereço;
● ... inserção é iniciada no nó folha do dir(D) que imediatamente encaminha a requisição de inserção para o seu nó pai;
● ... nó pai encaminha a requisição até alcançar o diretório “M” que já tem informação do registro de “E”;
● ... assim, nó “M” armazena ponteiro para registro “E” que por sua vez referencia o nó filho do qual a requisição de inserção partiu;
● ... neste ponto, o nó filho criou um registro de localização para “E” contendo um ponteiro para o próximo nó de menor nível;
● ... finalmente o nó folha cria um registro com o endereço da entidade no domínio folha associado ao nó.
Luís F. Faina - 2013 Pg. 44/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.4 Abordagem Hierárquica
● Considere uma entidade “E” conhecida pelo nó “M” que será replicada como nó folha no domínio “D” - Fig. 5.8
Luís F. Faina - 2013 Pg. 45/108
5 Nomeação – 5.2 Nomeação Plana - “Flat Naming”
… 5.2.4 Abordagem Hierárquica
● ... inserir um endereço como descrito gera uma cadeia de pontei- ros na abordagem “top-down” iniciando no nó diretório de menor nível que contém o registro da entidade “E”.
Luís F. Faina - 2013 Pg. 46/108
5 Nomeação – 5.3 Nomeação Estruturada
5.3.1 Nomeação Estruturada
● ... nomes planos são aplicáveis às máquinas, mas não são convenientes para serem usados por seres humanos;
● ... como alternativa, sistemas de nomes normalmente suportam nomes estruturados, ou seja, nomes compostos de nomes simples e legíveis por seres humanos.
● Objetivos desta seção:
● descrição de nomes estruturados;
● como resolver a associação de nome para endereço.
Luís F. Faina - 2013 Pg. 47/108
5 Nomeação – 5.3 Nomeação Estruturada
5.3.1 Espaço de Nomes
● “name space” - podem ser representados por grafos rotulados com 02 tipos de nós: “leaf node” e “directory node”
● “leaf node” - nó que representa uma entidade nomeada e é atingível a partir de um nó diretório;
● nó folha ou “leaf node” não possui saída para qualquer outro nó – apenas entrada do nó diretório ao qual está ligado.
● “directory node” - contempla inúmeras entradas e saídas para nós, cada qual rotulada com um nome normalmente representado por um par (“edge label”,”node identifier”);
● “root node” - contempla inúmeras saídas mas nenhuma entrada.
● Obs.: Embora um Grafo de Nomes possa contemplar inúmeros nós raiz, por simplicidade, muitos sistemas de nomes tem apenas um nó raiz.
Luís F. Faina - 2013 Pg. 48/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.1 Espaço de Nomes
● Fig. 5.9 – Grafo de Nomes geral com um único nó raiz.
Luís F. Faina - 2013 Pg. 49/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.1 Espaço de Nomes
● “path name” - ... sequência de nomes de enlaces em um caminho contínuo, ou seja, sem saltos/lacunas entre nós.
● e.g., N : < lable-1, label-2, ..., label-n> onde N é o 1o Nó
● “absolute path name” - ... sequência de nomes de enlaces em um caminho contínuo onde o primeiro nó é o nó raiz;
● “relative path name” - ... sequência de nomes de enlaces em um caminho contínuo onde o primeiro nó NÃO é o nó raiz.
● “global name” - nome atribuído a uma única entidade cujo escopo de utilização é global no sistema.
● “local name” - nome atribuído a uma entidade e que depende do escopo de utilização no sistema, ou seja, escopo restrito.
Luís F. Faina - 2013 Pg. 50/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.1 Espaço de Nomes
● e.g., ... descrição de um grafo de nomes está próxima do que é implementado em muitos sistemas de arquivos;
● .. ao invés de escrever a sequência de nomes de enlaces para representar o caminho, nomes em sistema de arquivos são representados por nomes de enlaces separados pelo caracter “/”;
● ... “/home/steen/mbox” ou invés de “no:< home, steen, mbox>”
● Obs.: Esta abordagem é análoga a implementação de um Grafo de Nomes único para todos os recursos em um Sistema Distribuído.
● “directed acyclic graph” - grafo de nomes no qual um nó pode ter mais de um enlace de entrada, mas não pode acomodar um ciclo fechado entre enlaces.
Luís F. Faina - 2013 Pg. 51/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.1 Espaço de Nomes
● Fig. 5.10 – Organização Geral do Sistema de Arquivo no UNIX para blocos contíguos de disco de um disco lógico.
● ... no Grafo de Nomes UNIX um nó diretório representa um diretório de arquivo, ou seja, nó folha representa um arquivo e o nó raiz representa o diretório raiz – nó a partir do qual todos os demais estão ligados.
● ... restante da implementação consiste de uma série contígua de blocos do disco lógico, geralmente divididos em bloco de “boot”, “superblock”, “index nodes” ou “inodes” e blocos de dados do arquivo.
● “boot block” - bloco especial de dados e instruções carregado automaticamente na memória quando do “boot” do sistema;
● “superblock” - ... informa o tamanho do sistema de arquivo, blocos não alocados no disco, “inodes” não utilizados, etc.
Luís F. Faina - 2013 Pg. 52/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.1 Espaço de Nomes
● Fig. 5.10 – Organização Geral do Sistema de Arquivo no UNIX para blocos contíguos de disco de um disco lógico.
● “inode” - ... contém informações sobre o proprietário, data de criação, data da última modificação, dados de proteção e de localização dos dados referente ao arquivo que o “inode” representa.
Luís F. Faina - 2013 Pg. 54/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.1 Espaço de Nomes
● Layout do Sistema de Arquivo do UNIX
Luís F. Faina - 2013 Pg. 55/108
5 Nomeação – 5.3 Nomeação Estruturada
5.3.2 Resolução de Nomes
● “name resolution” - processo de busca de informação em um espaço de nomes tendo por base o nome da entidade.
● e.g., ... considere o “path name” N:<label1, label2, ..., labeln>.
● ... resolução de nome inicia no Nó “N” do Grafo de Nomes, onde o nome “label1” é buscado na tabela de diretório, que por sua vez retorna o identificador do nó cuja referência é o nome “label1”;
● ... resolução de nomes continua do nó identificado no passo anterior, mas agora a busca se dá pelo nome “label2 ”;
● ... assumindo que o caminho nomeado e objeto da busca exista, a busca termina no nó referenciado pelo nome “labeln” - retorna o conteúdo do nó.
● Obs.: ... busca por nome retorna o identificador de um nó a partir do qual o processo de resolução de nomes continua, o que por outro lado exige a tabela de diretório do nó identificado.
Luís F. Faina - 2013 Pg. 56/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.2 Resolução de Nomes
● “aliases” - fortemente relacionado a resolução de nomes, representa o pseudônimo de uma entidade:
● “hard link” - permite que caminhos absolutos referenciem o mesmo nó em um grafo, ou seja, o nó armazena o endereço ou o estado da entidade;
● e.g., ... nó n5 pode ser referenciado por 02 “path names”: “keys” e “/home/steen/keys” como mostrado na Fig. 5.9.
Luís F. Faina - 2013 Pg. 57/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.2 Resolução de Nomes
● “aliases” - fortemente relacionado a resolução de nomes, representa o pseudônimo de uma entidade:
● “symbolic link” - representa uma entidade como um nó folha, mas ao invés de armazenar o endereço ou estado da mesma, o nó armazena o seu caminho absoluto como mostrado na Fig. 5.11.
Luís F. Faina - 2013 Pg. 58/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.2 Resolução de Nomes
● “mount point” - representa um nó em um espaço de nomes que armazena o identificador de um nó diretório de uma espaço de nomes diferente, ou seja, “foreign name space”;
● ... nó raiz do espaço de nomes visitado é denominado “mounting point” e o ponto de montagem é denominado “mount point”;
● ... durante a resolução de nome, o “mounting point” observado e a resolução se processa acessando sua tabela de diretórios.
Luís F. Faina - 2013 Pg. 59/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.2 Resolução de Nomes
● Princípio de montagem pode ser generalizado para outros espa- ços de nomes e é utilizado em muitos Sistemas Distribuídos.
● e.g., ... considere uma coleção de espaços de nomes distribuídos por diferentes máquinas, mais precisamente, com cada espaço de nomes implementado por um servidor diferente;
● ... se quisermos montar um espaço de nomes NS 2 em um espaço de nomes NS1, será necessário estabelecer um canal de comuni- cação sobre a rede com o servidor NS2;
● ... para montar o espaço de nomes visitado em um sistema distribuído serão necessárias as seguintes informações:
● nome do protocolo de acesso; nome do servidor; e nome do “mounting point” no espaço de nomes visitado - “foreign name space”.
Luís F. Faina - 2013 Pg. 60/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.2 Resolução de Nomes
● e.g., ... considere um usuário com o “notebook” que deseja aces- sar arquivos armazenados em um servidor de arquivos remoto;
● ... máquina cliente e servidor de arquivos configurados com o NFS - “Network File System” da SUN;
● NFS é um Sistema de Arquivo Distribuído que descreve como um cliente pode acessar um arquivo armazenado em um Servidor de Arquivo NFS;
● ... para acessar um arquivo, um cliente pode especificar que arquivo deseja acessar informando p.e. a URL: “nfs://flits.cs.vu.nl//home/steen”;
● ... este localizador informa que arquivo “/home/steen” no Servidor NFS “flits.cs.vu.nl” pode ser acessado pelo cliente por meio do protocolo “NFS”;
● ... Fig. 5.12 mostra a montagem do espaço de nomes remoto através de um protocolo de acesso específico.
Luís F. Faina - 2013 Pg. 61/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.2 Resolução de Nomes
● Fig. 5.12 – Montagem do espaço de nomes remoto através de um protocolo de acesso específico.
Luís F. Faina - 2013 Pg. 62/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.2 Resolução de Nomes
● e.g., ... considere um usuário com o “notebook” que deseja aces- sar arquivos armazenados em um servidor de arquivos remoto;
● ... para acessar um arquivo, um cliente pode especificar que arquivo deseja acessar informando p.e. a URL: “nfs://flits.cs.vu.nl//home/steen”;
● ... este localizador informa que arquivo “/home/steen” no Servidor NFS “flits.cs.vu.nl” pode ser acessado pelo cliente por meio do protocolo “NFS”;
● ... como mostrado na figura, o diretório raiz contempla entradas definidas pelo usuário dentre as quais o subdiretório “/remote”;
● ... este subdiretório é utilizado para acomodar “mount points” para espaços de nomes visitados tais como o diretório “home” do usuário “Maarten Van Steen” - “steen” at Vrije University – Amsterdam;
● ... nó diretório nominado por “/remote/vu” é utilizado para armazenar a URL (Universal Resource Locator) “nfs://flits.cs.vu.nl//home/steen”.
Luís F. Faina - 2013 Pg. 63/108
5 Nomeação – 5.3 Nomeação Estruturada
5.3.3 Implementação do Espaço de Nomes
● “name service” - ... responsável por permitir aos usuários e processos a adição, remoção e busca de nomes de entidades;
● problema - ... em sistemas distribuídos de larga escala com 100s de entidades espalhadas, é necessário distribuir a implementação do espaço de nomes em múltiplos servidores de nomes;
● ... normalmente, espaços de nomes de larga escala são usual- mente organizados hierarquicamente em camadas lógicas para que a implementação seja efetiva.
● Neste contexto, Cheriton; Mann (1989) distinguem 03 camadas:
● “global layer”; “administrative layer” e “managerial layer”.
Luís F. Faina - 2013 Pg. 64/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● Neste contexto, Cheriton; Mann (1989) distinguem 03 camadas:
● “global layer” - formada pelos nós no nível mais alto, ou seja, nó raiz e outros nós diretórios logicamente próximos ao nó raiz;
● “administrative layer” - formada por nós diretórios que conjuntamente são gerenciados por uma única organização;
● ... ou seja, representam grupos de entidades que pertencem a mesma organização ou unidade administrativa;
● “managerial layer” - consiste de nós que mudam regularmente;
● ... ou seja, nós representando “hosts” em uma rede local, arquivos compartilhados tais como bibliotecas ou binários, diretórios e arquivos definidos pelo usuário.
Luís F. Faina - 2013 Pg. 65/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● Fig. 5.13 – Particionamento do espaço de nomes do DNS, incluindo arquivos de acesso a Internet em 03 camadas.
Luís F. Faina - 2013 Pg. 66/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● DNS “Name Space” - dividido em partes não sobrepostas deno- minadas zonas - “zones” e que são normalmente implementadas por um servidor de nomes em separado (Fig. 5.13).
● ... se olharmos para a “availability” e “performance”, servidores de nomes em cada camada suportam requisitos diferentes;
● “availability” - ... is the proportion of time a system is in a functioning condition” at Wikipedia
● ... the ratio of (a) the total time a functional unit is capable of being used during a given interval to (b) the length of the interval.
● “performance” - “how well a person, machine, etc. does a piece of work or an activity” at Cambridge Dictionary
Luís F. Faina - 2013 Pg. 67/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● ... se olharmos para a disponibilidade e desempenho, servidores de nomes em cada camada suportam requisitos diferentes;
● “availability” e “performance” na “global layer”:
● “availability” – é crítico se o servidor de nomes falha, parte considerável do espaço de nomes torna-se inacessível pois o servidor não pode ser alcançado;
● “performance” – como o resultado da busca permanece válido por longos períodos em razão do baixo nro de mudanças/alterações na “global layer”, estes resultados podem ser salvaguardados.
● “availability” e “performance” podem ser alcançadas na camada global utilizando-se replicação de servidores em combinação com “caching” - salvaguarda de dados - de clientes;
Luís F. Faina - 2013 Pg. 68/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● “availability” e “performance” na “administrative layer”:
● “availability” na camada administrativa é mais importante para clientes de uma mesma organização, pois em caso de falha, recursos na organização tornam-se inalcançáveis;
● “performance” na camada administrativa apresenta características similares às características apresentas para a camada global;
● “availability” e “performance” podem ser alcançadas na camada administrativa utilizando-se máquina de alto desempenho para servidores de nomes bem como pela salvaguarda de dados no cliente - “caching” no cliente.
Luís F. Faina - 2013 Pg. 69/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● “availability” e “performance” na “managerial layer”:
● “availability” na camada de gerência é geralmente menos exigente e, frequentemente o uso de máquinas dedicadas para servidores de nomes é frequentemente suficiente;
● “performance” na camada de gerência é crucial, pois usuários esperam que as operações aconteçam imediatamente;
● ... neste contexto a salvaguarda de informações no cliente - “caching” no cliente – é frequentemente menos efetiva.
Luís F. Faina - 2013 Pg. 70/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● Fig. 5.14 – Comparação entre servidores de nomes para implementação de nós em espaços de nomes de larga escala dentro das camadas “global”, “administrative” e “managerial”.
Luís F. Faina - 2013 Pg. 71/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● Para discussão da implementação do serviço de nomes em larga escala a premissa é que os servidores de nomes não estejam replicados e que o “caching” de dados não seja utilizado;
● ... ... cada cliente tem acesso ao “name resolver” local que é o responsável por garantir a resolução do nome.
● e.g., ... tendo por base a Fig. 5.13, como resolver o endereço absoluto “root:<nl, vu, cs, ftp, pub, globe, index.html>”
● ... utilizando a notação de URL este “path name” corresponde “ftp://ftp.cs.vu.nl/pub/globe/index.html”
● ... podemos resolver o nome de 02 maneiras: “iteractive name resolution” ou “recursive name resolution”.
Luís F. Faina - 2013 Pg. 72/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● Fig. 5.13 – Particionamento do espaço de nomes do DNS, incluindo arquivos de acesso a Internet em 03 camadas.
Luís F. Faina - 2013 Pg. 73/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● “iteractive name resolution” - resolvedor de nomes repassa integralmente o nome para o servidor de nomes raiz;
● ... servidor raiz pode resolver somente o “label” “nl” e para o qual ele retorna o endereço do servidor de nome associado;
● ... cliente repassa o restante do nome - “nl:<vu, cs, ftp, pub, globe, index.html>” para o servidor de nome;
● ... servidor de nome pode resolver somente o “label” “vu” e para o qual retorna o endereço do servidor de nome associado;
● ... cliente repassa o restante do nome - “vu:<cs, ftp, pub, globe, index.html>” para o servidor de nome;
● ... servidor de nome pode resolver somente o “label” “cs” e para o qual retorna o endereço do servidor de nome associado;
Luís F. Faina - 2013 Pg. 74/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● ...cliente repassa o restante do nome - “cs:<ftp, pub, globe, index.html>” para o servidor de nome;
● ... servidor de nome pode resolver somente o “label” “ftp” e para o qual retorna o endereço do servidor de “FTP”;
● ... cliente contacta o Servidor FTP para que resolva o restante do nome - “ftp:<pub, globe, index.html>”;
● ... servidor FTP resolve os “labels” “pub”, “globe” e “index.html” e transfere o arquivo solicitado.
Luís F. Faina - 2013 Pg. 75/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● Fig. 5.15 – Princípio da resolução iterativa de nome.
Luís F. Faina - 2013 Pg. 76/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● “recursive name resolution” - ... cada servidor de nome passa o resultado de busca para o próximo servidor de nome até que por recursividade o servidor retorne o resultado final (Fig. 5.16)
Luís F. Faina - 2013 Pg. 77/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● “recursive name resolution”
● desvantagem – ... demanda por alto desempenho por parte de cada servidor de nome, ou seja, o servidor manipula a resolução completa do nome;
● vantagens – salvaguarda/“caching” de resultados é mais efetivo comparado com a resolução iterativa de nomes, bem como os custos de comunicação podem ser minimizados.
Luís F. Faina - 2013 Pg. 78/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.3 Implementação do Espaço de Nomes
● Fig. 5.17 – Resolução Recursiva de Nome para <nl, vu, cs, ftp> onde servidor de nome mantém cópia / ”caching”.
Luís F. Faina - 2013 Pg. 79/108
5 Nomeação – 5.3 Nomeação Estruturada
5.3.4 Exemplo: Domain Name System
● Domain Name System – primariamente utilizado para busca de endereços IP de “hosts” e servidores de “email”;
● ... há pesquisas que concluem que após 30 anos de vida o DNS faz bem o que se propõe a fazer – não há porque ser substituído.
Luís F. Faina - 2013 Pg. 80/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● DNS “Name Space” - ... espaço de nomes é hierarquicamente organizado como uma árvore com uma única raiz;
● e.g., ... seja uma string representando um “path name” consistindo de uma lista de “labels” - “root:<nl, vu, cs, flits>”
● ... “label” é uma string de caracteres alfanuméricos com até 63 caracteres e um “path name” está limitado a 255 caracteres.;
● ... este “path name” pode ser representado por “flits.cs.vu.nl.” que inclui o “.” mais a direita para representar o nó raiz;
● ... pelo fato de um nó DNS conter apenas 01 enlace de entrada, exceto o nó raiz, o “label” associado ao enlace do nó de entrada é também usado para o nome do respectivo nó;
Luís F. Faina - 2013 Pg. 81/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● Pelo fato de um nó DNS conter apenas 01 enlace de entrada, exceto o nó raiz, o “label” associado ao enlace do nó de entrada é também usado para o nome do respectivo nó;
● ... conteúdo de um nó no espaço de nomes do DNS é formado por uma coleção de registros - “resource records” ;
● ... este nó DNS frequentemente representa várias entidades do mesmo tipo, p.ex., domínio “vu.nl” representa dois tipos de registros: “domain” e “zone” (“domain” = several “zones”)
Luís F. Faina - 2013 Pg. 82/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● Fig. 5.19 – Tipos mais importantes de registros que formam os conteúdos de nós no Espaço de Nomes DNS.
Luís F. Faina - 2013 Pg. 83/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● SOA - “Start of Authority Record” – especifica a informação chave acerca de uma Zona DNS, incluindo o servidor primário, o administrador do domínio bem como o seu email;
● A – “Address Mapping Record” - especifica o IP (IPv4) de um dado “host” e, normalmente, é usado para converter nomes de domínios para endereços IP.
● MX - “Message eXchanger Record” - especifica o servidor de mensagens para o domínio DNS e, normalmente, é usado pelo SMTP para rotear emails para os hosts.
● SRV Record – especifica a localização de um serviço, p.ex., portas específicas para serviços.
Luís F. Faina - 2013 Pg. 84/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● NS - “Name Service Record” - especifica o nome do servidor com autoridade para responder “requests” para um dado “host”.
● CNAME - “Canonical Name Record” - especifica um nome de domínio que deve ser consultado para resolver uma “query” original, ou seja, usado como “aliases” de nomes de domínio.
● PTR - “Reverse Lookup Pointer Record” - usado para encontrar o nome de domínio tendo por base o endereço IP.
● HINFO - “Host Information Record” - usado para obter informação geral sobre um “host”, p.ex., tipo de CPU e Sist. Oper.
● TXT - “Text Record” - estritamente informal, é usado para manter informações arbitrárias em texto não formatado de até 255 caracteres e não tem carater funcional.
Luís F. Faina - 2013 Pg. 85/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● Implementação do DNS – ... é um banco de dados implementado como uma coleção de pequenos arquivos, que contém os registros de recursos para todos os nós em uma zona em particular.
● ... pode-se considerar que a camada gerencial, normalmente formada por sistemas de arquivos locais, não faça parte do DNS e, deste modo, não seja gerenciada por ele;
● ... cada zona é implementada por um servidor de nomes, virtual- mente sempre replicado para aumentar a disponibilidade;
● ... cabe ao servidor primário a modificação dos dados locais quando atualizações são necessárias;
● ... já o servidor secundário não acessa diretamente a base de dados, mas a requisita através do servidor primário;
Luís F. Faina - 2013 Pg. 86/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● ... para um melhor entendimento dos aspectos de implementação do “domain name system” seja uma pequena parte do arquivo de registros do domínio “cs.vu.nl”;
● ... nó “cs.vu.nl” representa o domíno assim como também a zona, tanto que contém informações específicas da validade do arquivo;
● ... há 04 servidores de nomes para esta zona que são referenciados pelos seus pseudônimos - “canonical names”.
Luís F. Faina - 2013 Pg. 87/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● ... há 02 servidores de email no DNS, mas servidores de email contactam inicialmente aquele de maior prioridade, ou seja, número que precede o nome do servidor;
Luís F. Faina - 2013 Pg. 88/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● ... as linhas “zephyr.cs.vu.nl” dão informações sobre o servidores de email do departamento, que por sua vez é mantido por outro servidor - “tornado.cs.vu.nl”;
Luís F. Faina - 2013 Pg. 89/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● ... as próximas linhas mostram a configuração típica do servidor Web do departamento, assim como o servidor FTP;
● ... ambos são implementados na máquina “soling.cs.vu.nl”;
Luís F. Faina - 2013 Pg. 90/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● ... as linhas contendo “vucs-das1.cs.vu.nl” mostram informações de um “cluster” antigo do departamento, p.ex., o endereço associado - “130.37.198.0”.
Luís F. Faina - 2013 Pg. 91/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● ... as linhas contendo “inkt.cs.vu.nl” mostram informações de 02 impressoras conectadas na rede local, que por terem endereços privados são acessíveis apenas na rede interna.
Luís F. Faina - 2013 Pg. 92/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● Domínio “cs.vu.nl” é implementado como uma única zona e não inclui referências para outras zonas que eventualmente poderiam fazer parte do mesmo domínio.
Luís F. Faina - 2013 Pg. 93/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● DNS – ... é implementado com servidores hierarquicamente organizados com 13 servidores raiz – “www.icann.org.br”
Luís F. Faina - 2013 Pg. 94/108
5 Nomeação – 5.3 Nomeação Estruturada
… 5.3.4 Exemplo: Domain Name System
● DNS – ... é implementado com servidores hierarquicamente organizados com 13 servidores raiz (ICANN) com 1.000.000s de servidores dispostos nos ramos – nós folha;
● “Internet Corporation for Assigned Names and Numbers” - ICANN
● Obs.: nós dispostos nos níveis mais altos recebem mais requisi- ções que nós dispostos nos níveis mais baixos;
● ... neste contexto, é possível minimizar o nro de requisições para os nós de alto nível através do “caching” nestes servidores.
● problema - ... restrições para escalabilidade como estes podem ser evitados com uma solução completamente descentralizada.
Luís F. Faina - 2013 Pg. 95/108
5 Nomeação – 5.4 Nomeação Baseada em Atributos
5.4 Nomeação Baseada em Atributos
● Nomeação Plana e Estruturada geralmente refereciam entidades de forma única/unívoca e independente da localização;
● ... além disso, nomeação estruturada foi concebida para prover nomes de entidades legíveis para seres humanos;
● ... entretanto, a independência de localização e legibilidade não são critérios únicos para nomeação de entidade;
● ... em particular, a medida que mais informações tornam-se disponíveis, faz-se necessário uma abordagem que possibilite a busca pela descrição do que se está procurando;
● “attribute-based naming” - ... abordagem popular na qual a entidade é descrita em termos do par <attribute, value>.
Luís F. Faina - 2013 Pg. 96/108
5 Nomeação – 5.4 Nomeação Baseada em Atributos
5.4.1 Serviços de Diretório
● “directory services” - ... também denominados “attribute-based naming”, contemplam no processo de busca a utilização de uma série de atributos que estão associados às entidades;
● e.g., ... em um sistema de email, mensagens podem ser marca- das com atributos como: remetente, destinatário, assunto, etc.
● ... ainda no sistema de email, problemas surgem quando da necessidade de outros descritores/filtros.
● conclusão - ... tudo se resume no projeto de um conjunto apro- priado de atributos, o que não é nada trivial.
Luís F. Faina - 2013 Pg. 97/108
5 Nomeação – 5.4 Nomeação Baseada em Atributos
… 5.4.1 Serviço de Diretório
● conclusão - ... tudo se resume no projeto de um conjunto apro- priado de atributos, o que não é nada trivial.
● ... ainda que haja consenso no conjunto de atributos, a prática mostra que a atribuição valores de forma consistente por diversas pessoas é um problema em si;
● e.g., ... seja experiência de diferentes pessoas quando do acesso a banco de dados de música e vídeo na Internet.
● Para amenizar alguns desses problemas, pesquisas vem sendo conduzidas para unificar a forma como recursos são descritos.
Luís F. Faina - 2013 Pg. 98/108
5 Nomeação – 5.4 Nomeação Baseada em Atributos
… 5.4.1 Serviço de Diretório
● “Resource Description Framework” (RDF) – ... contribuição relevante em sistemas distribuídos, descreve os recursos como triplas formadas por “subject”, “predicate” e “object”;
● ... neste modelo cada elemento da tripla, ou seja, “subject”, “predicate” e “object” pode ser um recurso.
● e.g., (Person, name, Alice) descreve um recurso “Person” cujo nome - “name” é “Alice”.
● … se a descrição do recurso é passível de ser armazenada, é possível consultar este dado de alguma forma.
Luís F. Faina - 2013 Pg. 99/108
5 Nomeação – 5.4 Nomeação Baseada em Atributos
… 5.4.1 Serviço de Diretório
● Se a descrição do recurso é passível de ser armazenada, é possível consultar este dado de alguma forma;
● e.g., ... uma aplicação pode solicitar uma informação associada a uma pessoa chamada Alice;
● ... esta consulta pode retornar a referência de um recurso de pessoa associado com Alice, que por sua vez pode ser referenciado pela aplicação.
● Não há razão para que os recursos residam no mesmo local, entretanto, não manter as descrições no mesmo local pode incorrer em problemas de desempenho;
● justificativa – diferentemente de sistemas de nomes estruturados, a busca baseada em atributos requer busca exaustiva em todos os descritores.
Luís F. Faina - 2013 Pg. 100/108
5 Nomeação – 5.4 Nomeação Baseada em Atributos
5.4.2 Implementação Hierárquica
● Abordagem comum largamente adotada em serviços de diretórios distribuídos é a combinação de nomeação estruturada com nomeação baseada em atributos;
● e.g., ... serviço de diretório em sistemas operacionais utilizam o protocolo “Lightweight Directory Access Protocol” ou LDAP
● Serviço de Diretório LDAP – consiste de um número de registros, usualmente referenciados como entradas de diretório;
● ... uma entrada de diretório é comparável a um registro de recurso, ou seja, para cada atributo <attribute, value> há um tipo associado para um dado registro => <subject, predicate, object>
Luís F. Faina - 2013 Pg. 101/108
5 Nomeação – 5.4 Nomeação Baseada em Atributos
… 5.4.2 Implementação Hierárquica
● Fig. 5.22 – Exemplo de entrada de diretório LDAP usando a Convenção de Nomes LDAP.
Luís F. Faina - 2013 Pg. 102/108
5 Nomeação – 5.4 Nomeação Baseada em Atributos
… 5.4.2 Implementação Hierárquica
● Coleção de todas entradas de diretório no Serviço de Diretório LDAP é chamado DIB - “Directory Information Base”;
● ... aspecto de projeto importante é que um registro é nomeado univocamente, assim ele pode ser consultado;
● ... cada atributo de nome em cada registro é denominado “Relative Distinguished Name” ou RDN.
● e.g., ... 05 primeiros atributos na Fig. 5.22 são atributos de nomes, assim podem ser utilizados para formar um nome global;
● ... nome LDAP “/C=NL/O=Vrije Universiteit/OU=Comp. Sc.” análogo ao nome DNS “nl.vu.cs”
Luís F. Faina - 2013 Pg. 103/108
5 Nomeação – 5.4 Nomeação Baseada em Atributos
… 5.4.2 Implementação Hierárquica
● Como no DNS, o uso de nomes globais únicos como sequências de RDNs leva a uma organização hierárquica de entradas de diretórios, ou seja, “Directory Information Tree” DIT (Fig. 5.23).
Luís F. Faina - 2013 Pg. 104/108
5 Nomeação – 5.4 Nomeação Baseada em Atributos
… 5.4.2 Implementação Hierárquica
● ... um nó pode agir como um diretório no sentido tradicional e, assim, contemplar vários filhos e para o qual age como nó pai;
Luís F. Faina - 2013 Pg. 105/108
5 Nomeação – 5.4 Nomeação Baseada em Atributos
… 5.4.2 Implementação Hierárquica
● Nó em um Grafo de Nomes LDAP pode simultaneamente repre- sentar um diretório no sentido tradicional como discutido, assim como um Registro LDAP.
● ... esta distinção é suportada por 02 operações de busca diferentes, ou seja, operação “read” e “list”.
● “read operation” - lê um registro simples dado seu “path name” na árvore de informação de diretório;
● “list operation” - lista nomes de todos os enlaces de saída para um dado nó em uma árvore de informação de diretório.
Luís F. Faina - 2013 Pg. 106/108
5 Nomeação – 5.4 Nomeação Baseada em Atributos
… 5.4.2 Implementação Hierárquica
● e.g., ... operação “read” com o parâmetro de entrada “/C=NL/O=Vrije Universiteit/OU=Comp. Sc.” irá retornar o registro apresentado na Fig. 5.22.
Luís F. Faina - 2013 Pg. 107/108
5 Nomeação – 5.4 Nomeação Baseada em Atributos
… 5.4.2 Implementação Hierárquica
● ... se chamarmos a operação “list” como o parâmetro de entrada “/C=NL/O=Vrije Universiteit/OU=Comp. Sc.” iremos obter como retorno o registro apresentado na Fig. 5.23 (b).
Luís F. Faina - 2013 Pg. 108/108
5 Nomeação – 5.4 Nomeação Baseada em Atributos
… 5.4.2 Implementação Hierárquica
● Implementação do LDAP é semelhante a implementação do Serviço de Nomes, exceto que suporta mais operações;
● ... quando se lida com diretório de larga escala, a árvore de informações (DIT) é usualmente particionada e distribuída em vários servidores conhecidos Directory Service Agents – DSA;
● ... cada parte da DIT corresponde a uma zona no DNS e cada DSA se comporta como um Servidor de Nomes, exceto que implementa serviços típicos de diretório;
Top Related