Cap. 05 – Nomeação

Propaganda
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
Download