108
Luís F. Faina - 2013 Pg. 1/108 Cap. 05 – Nomeação 5.1 – Nomes e Endereços 5.2 – Nomeação Plana 5.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 Estruturada 5.3.1 Espaço de Nomes 5.3.2 Resolução de Nomes

Cap. 05 – Nomeação - facom.ufu.brfaina/BCC_Crs/GSI028-2014-1S/DL/DS-Ch05.pdf · Luís F. Faina - 2013 Pg. 2/108 Cap. 05 – Nomeação 5.3 – Nomeação Estruturada 5.3.1 Espaço

Embed Size (px)

Citation preview

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. 53/108

5 Nomeação – 5.3 Nomeação Estruturada

… 5.3.1 Espaço de Nomes

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;