Nomeação Conteúdo Introdução Sistemas de Nomeação Introdução Nomes representam um papel importante na computação, em especial nos Sistemas Distribuídos. Permitem que um componente/entidade seja identificado facilmente e, por vezes, com abstração da sua localização. Em Sistemas Distribuídos, nomes são usados para representar pontos de acesso a recursos, abstraindo seu endereço. O objetivo é favorecer o acesso, independente de localização, de forma amigável. Sistemas de Nomeação Nomeação Simples Utilização de nomes simples para identificar/localizar recursos. Usáveis em redes locais. Veremos, a seguir, algumas possibilidades. Sistemas de Nomeação Soluções simples Broadcasting / Multicasting É enviada uma mensagem broadcasting/multicasting com identificador da entidade procurada Cada máquina verifica se possui tal identidade Entidade responde com o endereço do ponto de acesso. É ineficiente quando a rede cresce em grande escala. Sistemas de Nomeação Soluções simples Ponteiros Repassadores É uma abordagem para a localização de entidades móveis. Quando uma entidade A se move para B, deixa para trás,em A, uma referência (ponteiro repassador) para sua nova localização. O cliente percorre a cadeia de ponteiros repassadores. As principais desvantagens são que as cadeias podem se tornar muito longas, o custo computacional da localização pode se tornar proibitivo e pode haver rompimento de enlaces (perda de ponteiro). Sistemas de Nomeação Abordagens baseadas na localização nativa Baseadas no monitoramento da localização de uma determinada entidade, com o uso de ponteiros localizadores. Um agente nativo consulta a localização do hospedeiro móvel. Se ele estiver na rede local, repassa. Senão, envia até a rede na qual o hospedeiro se encontra. Mantém sempre o remetente atualizado com o novo endereço. Sistemas de Nomeação Tabelas Hash Distribuídas (DHT) Cada nó possui uma tabela de derivação para outros nós que possuem endereços de recursos. Para encontrar um recurso de chave K, referências na tabela de derivação são utilizados como atalhos para os nós existentes no espaço de identificadores. Abordagens Hierárquicas (Domínios) A medida que a escala de endereços aumenta, uma solução viável é estruturá-los em domínios. Cada domínio representa um sub-conjunto do espaço de identificadores para facilitar a localização dos recursos. Sistemas de Nomeação Nomeação Estruturada Nomes simples costumam ser melhores para máquinas do que para humanos. Para esses últimos, nomes estruturados são melhores. Conceitos importantes: Espaço de nomes São representados como grafos dirigidos com dois tipos de nós: folhas (entidade), diretório (subramos). Resolução de nomes É o processo de busca de um nome no grafo, indicando o caminho para sua localização Sistemas de Nomeação Nomeação Estruturada Mecanismo de fechamento Determina por onde começar a resolução de nomes, a raiz dos caminhos de localização. Ligação e montagem Combina os espaços de nomes distribuídos, apontando uma referência para o mecanismo de fechamento utilizado. Sistemas de Nomeação Nomeação baseada em atributos Uma evolução da nomeação estruturada com o uso de meta-informação. Alguns exemplos: Serviços de diretório Implementação básica de nomeação por atributos Implementações Hierárquicas (LDAP) Combinação de nomeação estruturada e baseada em atributos Implementações Descentralizadas Voltados para soluções P2P