MC714 - Sistemas Distribuídos Leandro Villas Aula de Hoje Nomes, Identificadores, Endereços Nomeação Simples Nomeação Estruturada Leandro Villas Nomeação Nomes Compartilhar recursos Identificar entidades de maneira única Fazer referência a localizações Nome deve ser resolvido para a entidade à qual se refere Sistema de Nomeação (Ex. DNS) Leandro Villas Nomeação Em um SD, a implementação de um sistema de nomeação costuma ser distribuída por várias máquinas Modo como é feita a distribuição desempenha papel fundamental na eficiência e escalabilidade do Sistema Leandro Villas Nomeação Entidade: máquinas, impressoras, processos, usuários, páginas Web, janelas gráficas, discos etc. São acessadas através de um ponto de acesso, ou simplesmente, endereço • EX: Servidor e seu número IP Portanto, um endereço pode ser utilizado como uma maneira de nomear, identificar uma entidade • • Problema: Entidade pode mudar facilmente de ponto de acesso! Ex: Servidor Web alocado em outra rede Leandro Villas Nomeação Como nomear entidades, sem utilizar especificamente seu endereço, ou seja, nomeá-las independentemente da sua posição física (localização)? Identificadores ou Nomes amigáveis a seres humanos Leandro Villas Nomeação Identificador possui as seguintes propriedades: Referencia, no máximo, UMA entidade Cada entidade é referenciada por, no máximo, um identificador Um identificador sempre referencia a mesma entidade, isto é, nunca é reutilizado Nomes amigáveis nomes representados por uma cadeia de caracteres Pathnames, domínios na Internet Ex: /etc/passwd; http://unicamp.br Leandro Villas Nomeação Como resolvemos nomes e identificadores para endereços? Sistemas de Nomeação Mantém uma vinculação nome-endereço Na forma mais simples Tabela de pares (nome,endereço) Contudo, sistemas que abrangem redes de grande porte, uma tabela centralizada não vai funcionar Em SDs, usualmente o nome é decomposto em várias partes, e a resolução é realizada por meio de consultas recursivas Leandro Villas Nomeação Sistemas de Nomeação Três Classes Nomeção Simples Nomeação Estruturada Nomeação Baseada em Atributos Leandro Villas Nomeação Simples Nomes simples: não contêm nenhuma informação sobre como localizar o ponto de acesso de sua entidade associada Problema: Dado um identificador, como localizar o ponto de acesso (endereço)? Soluções Simples Broadcasting, Multicasting e Ponteiros repassadores Soluções baseadas na Localização Nativa Tabelas de Hash Distribuídas Serviço hierárquico de localização Leandro Villas Nomeação Simples - Broadcasting Recursos oferecidos por redes locais nas quais todas as máquinas estão conectadas a um único cabo ou seu equivalente lógico Como funciona? Mensagem que contém o identificador da entidade é enviada por broadcast a cada máquina da rede Cada uma das máquinas verifica se tem esta entidade Somente as máquinas com ponto de acesso para a entidade enviam uma msg que contém o endereço do ponto de acesso Esse princípio é utilizado no protocolo de resolução de endereços ( Adress Resolution Protocol – ARP) Leandro Villas Nomeação Simples - Broadcasting Se torna ineficiente quando a rede cresce Largura de banda da rede é desperdiçada, com grande número de mensagens de requisição Aumento da probabilidade de colisões de mensagens, diminuindo o throughput do sistema Grande número de máquinas pode ser interrompido por requisições que não podem responder Alternativa: Multicasting Somente um grupo restrito de máquinas recebe a requisição Leandro Villas Nomeação Simples – Ponteiros Repassadores Princípio Vantagem: simplicidade Quando uma entidade se move de A para B, deixa para trás, em A, uma referência a sua nova localização em B Cliente pode consultar o endereço corrente da entidade percorrendo uma cadeia de ponteiros repassadores Tem problemas de escala geográfica Longas cadeias não são tolerantes a falhas Latência Leandro Villas Nomeação Sistemas de Nomeação Três Classes Nomeção Simples Nomeação Estruturada Nomeação Baseada em Atributos Leandro Villas Nomeação Estruturada Nomes simples são bons para máquinas, mas não são convenientes para a utilização de seres humanos Sistemas de nomeação comumente suportam nomes estruturados Exemplo: Nomeação de arquivos, Hosts na Internet Nomes são organizados em um espaço de nomes Leandro Villas Nomeação Estruturada Espaços de nomes podem ser representados como um grafo dirigido, com dois tipos de nós: Nó-folha: representa uma entidade nomeada sem saídas Geralmente armazena informações sobre a entidade Nó de diretório: entidade que se refere a outros nós vários ramos de saída Nó de diretório armazena uma tabela no qual o ramo de saída é representado por um par <rótulo do ramo, identificador do nó> Sistemas de nomeação possuem, na maioria, um nó raiz Leandro Villas Nomeação Estruturada Cada caminho no grafo de nomeação pode ser referenciado pela sequência dos labels correspondentes aos ramos naquele caminho, como N:<label1, label2,..., labeln> Nome de caminho absoluto: primeiro nó no caminho é a raiz Nome de caminho relativo: primeiro nó pode ser qualquer nó Leandro Villas Nomeação Estruturada Espaços de nomes oferecem um mecanismo para armazenar e recuperar informações sobre entidades por meio de nomes Dado um nome de caminho, deve ser possível consultar qualquer informação armazenada no nó referenciado por aquele nome O processo de busca de um nome é denominado resolução de nomes Problema: Para resolver um nome, precisamos de um nó de diretório. Como escolher este nó inicial? Leandro Villas Nomeação Estruturada Mecanismo de fechamento: Trata da seleção do nó inicial em um espaço de nomes a partir do qual a resolução de nomes deve começar. São implícitos ao contexto em que a resolução de nomes está se aplicando www.cs.vu.nl: início da resolução é feito através do servidor de nome DNS (raiz) Leandro Villas Implementação de um Espaço de Nomes Serviço de nomeação é implementado por servidores de nomes Servidores de nomes devem prover: Escalabilidade Manutenção descentralizada Tolerância a falhas, robustez Escopo global: Nomes possuem o mesmo significado em todos lugares Leandro Villas Implementação de um Espaço de Nomes Espaço de nomes para um SD de grande escala costumam ser organizados em hierarquia Camada global Raiz e seus filhos Principal característica: Estabilidade Podem representar organizações Camada Administrativa Nós de diretórios Gerenciados por uma única organização Relativamente estáveis Camada Gerencial Nós cujo comportamento típico é a mudança periódica Mantidos por administradores de sistemas e usuários finais Leandro Villas Implementação de um Espaço de Nomes Leandro Villas Implementação de um Espaço de Nomes Camada global Camada Administrativa Alta disponibilidade: se falhar, grande parte do espaço fica inalcançável Desempenho: Baixa taxa de mudança; cache local é útil. Não precisam responder tão rapidamente. Replicação pode ser aplicada. Se falhar, muitos recursos dentro da organização podem ficar inalcançáveis Deve responder mais rapidamente que a camada global Camada Gerencial Indisponibilidade temporária afeta poucos usuários Desempenho é crucial Muda com frequência cache pode não funcionar muito bem Leandro Villas Implementação de um Espaço de Nomes Item Global Administrativa Gerencial Escala Geográfica da rede Mundial Organização Departamento Número total de nós Poucos Muitos Grandes quantidades Capacidade de resposta a consultas Segundos Milissegundos Imediata Propagação de atualizações Lerda Imediata Imediata Quantidade de réplicas Muitas Nenhuma ou poucas Nenhuma É aplicada cache do lado cliente Sim Sim Leandro Villas Às Vezes Implementação de resolução de nomes Suponha que o nome da caminho (absoluto) deva ser resolvido root:<nl, vu, cs, ftp, pub, globe, index.html> Usando uma notação URL, esse nome de caminho corresponderia a ftp://ftp.cs.vu.nl/pub/globe/index.html Há dois modos de implementar resolução de nomes Resolução iterativa de nomes Resolução recursiva de nomes Leandro Villas Como resolver nomes? Resolução Iterativa Servidor responde somente o que sabe: o nome do próximo servidor que deve ser buscado Cliente procura iterativamente os outros servidores Leandro Villas Como resolver nomes? Resolução recursiva Servidor passa o resultado para o próximo servidor que encontrar Para o cliente, somente existe uma mensagem de retorno: o endereço do nome ou 'não encontrado' Leandro Villas Iterativa versus Recursiva Leandro Villas Iterativa versus Recursiva Leandro Villas Nomeação Baseada em Atributo Fornecer uma descrição da entidade que está sendo procurada Descrever uma entidade em termos de pares <atributo, valor> Serviços de diretório retornam uma ou mais entidades que atendam a descrição do usuário Leandro Villas