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 Luís F. Faina - 2013 Pg. 1/108 Cap. 05 – Nomeação 5.3 – Nomeação Estruturada 5.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 Atributo 5.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. 2/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. 3/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. 4/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. 5/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. 6/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 independente 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. 7/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. 8/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. 9/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 adaptados para as pessoas e não para os sistemas computacionais. 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 ● “human-friendly names” - normalmente representados por “strings” de caracteres e não de bits, constituem nomes adaptados para as pessoas e não para os sistemas computacionais; ● e.g., ... nomes no Sistema de Arquivo do UNIX podem ser compostos 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. 11/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 identificadores podem ser resolvidos/associados para/com endereços. Luís F. Faina - 2013 Pg. 12/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. 13/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 possibilitam 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 entidade 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. 14/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. 15/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. 16/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 computador 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 entidade 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. 17/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. 18/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. 19/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. 20/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. 21/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. 22/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. 23/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. 24/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. 25/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. 26/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. 27/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. 28/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. 29/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. 30/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. 31/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. 32/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. 33/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. 34/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. 35/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. 36/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. 37/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. 38/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. 39/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. 40/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. 41/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. 42/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. 43/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. 44/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 ponteiros 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. 45/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. 46/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. 47/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. 48/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. 49/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. 50/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. 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. ● “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. 52/108 5 Nomeação – 5.3 Nomeação Estruturada … 5.3.1 Espaço de Nomes Luís F. Faina - 2013 Pg. 53/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. 54/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. 55/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. 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: ● “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. 57/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. 58/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. 59/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 acessar 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. 60/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. 61/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 acessar 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. 62/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 usualmente 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. 63/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. 64/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. 65/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 denominadas 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. 66/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. 67/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. 68/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. 69/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. 70/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. 71/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. 72/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. 73/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. 74/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. 75/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. 76/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. 77/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. 78/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. 79/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. 80/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. 81/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. 82/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. 83/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. 84/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, virtualmente 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. 85/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. 86/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. 87/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. 88/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. 89/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. 90/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. 91/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. 92/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. 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 (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. 94/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. 95/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 marcadas 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 apropriado de atributos, o que não é nada trivial. Luís F. Faina - 2013 Pg. 96/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 apropriado 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. 97/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. 98/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. 99/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. 100/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. 101/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. 102/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. 103/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. 104/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 representar 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. 105/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. 106/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. 107/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; Luís F. Faina - 2013 Pg. 108/108