Gestão de nomes: Objectivo - PDF
Download "Gestão de nomes: Objectivo"
Mafalda Ribas Paranhos
1 Gestão de Nomes Sistemas Distribuídos 12/13 1 Gestão de nomes: Objectivo Associar nomes a objectos Objectos podem ser computadores, serviços, objectos remotos, ficheiros, utilizadores, etc Nomes facilitam comunicação e partilha de recursos Necessários quando de faz pedido a um sistema para actuar sobre um determinado recurso (de entre vários) Exemplo: URL para abrir página Permitem partilhar recursos Exemplo: objecto remoto Permitem comunicar Exemplo: endereço permite a utilizadores trocarem mensagens Permitem associar atributos a recursos descritivos a recursos, e fazer procuras baseadas em atributos Exemplo: procurar impressora a cores na rede local Sistemas Distribuídos 12/13 2 Page 1
2 Gestão de nomes: Objectivo Associar nomes a objectos para: Identificar os objectos Localizar os objectos Partilhar os objectos Obter atributos associados ao objecto Simplificar a interface com os utentes Simplificar a gestão do sistema Sistemas Distribuídos 12/13 3 Exemplos de nomes Nome ficheiro URL UUID Número de telefone Matrículas de automóveis Número do Bilhete de Identidade Nome de uma empresa Nome de um produto Sistemas Distribuídos 12/13 4 Page 2
3 Conceitos Base Espaço de Nomes conjunto de regras que define um universo de nomes admissíveis Autoridade gere o recurso que suporta a implementação do objecto Define as regras de gestão dos identificadores Deve garantir que as regras de gestão de nomes são cumpridas Autoridade pode ser delegada (hierarquias) Sistemas Distribuídos 12/13 6 Gestão de nomes: Nomes e autoridades Nome Endereço IP Endereço Ethernet Endereço do controlador de disco Autoridade IANA (Internet Assigned Numbers Authority) Xerox e fabricante da placa Configuração do computador Nome de um ficheiro UUID Nome DNS Sistema de ficheiros DCE; IETF standard IANA/ICANN + delegação (FCCN em Portugal) Sistemas Distribuídos 12/13 7 Page 3
4 Gestão de nomes: Conceitos base Identificador mecanismo de discriminação de um objecto Sob controlo do sistema Sem carga semântica para os humanos Sequências de bits Se o identificador permitir encontrar directamente o objecto é normalmente designado por endereço (um endereço pode deixar de referenciar o objecto se este mudar de localização) Nome mecanismo de discriminação de um objecto Usado por humanos Programadores, utentes, etc. Com carga semântica para os humanos sequências legíveis de caracteres Permite normalmente obter um identificador para o objecto Nomes vs. Identificadores: nomes representam marcas gera contenção. Exemplo: quem detém o nome nissan.com? Sistemas Distribuídos 12/13 8 Associações nome nome e nome objecto (bindings) O nome que identifica um objecto raramente é o identificador que permite aceder-lhe A associação nome objecto é lógica A partir do nome de um objecto existe uma cadeia de associações entre nomes, geralmente de espaço de nomes diferentes Exemplo: Nome de ficheiro UNIX a/b/c i-number inode partição e bloco de disco Nó da rede Internet mega.ist.utl.pt endereço IP endereço Ethernet Sistemas Distribuídos 12/13 9 Page 4
5 Gestão de nomes: Conceitos base Contexto conjunto de associações pertencentes a um determinado espaço de nomes Define domínio em que se considera válidos um determinado conjunto de nomes Directório tabela (ou conjunto de tabelas) que materializa(m) as associações entre nomes e objectos de um contexto Um directório também é um objecto que tem de ter um nome associado Sistemas Distribuídos 12/13 10 Contexto vs. Directório Contexto Contexto objectos Directório Contexto Directório objectos objectos Directório Sistemas Distribuídos 12/13 11 Page 5
6 Propriedades dos Nomes Unicidade referencial Âmbito Homogeneidade/heterogeneidade Pureza Persistência Sistemas Distribuídos 12/13 12 Unicidade referencial Num determinado contexto, um nome só pode estar associado a um objecto Caso contrário, haveria ambiguidade referencial Não se poderia distinguir o objecto Não se poderia endereça-lo A situação inversa não é verdadeira, um objecto pode estar associado a vários nomes Os nomes simbólicos são normalmente nomes alternativos para um mesmo objecto no mesmo contexto Sistemas Distribuídos 12/13 13 Page 6
7 Gestão de espaços de nomes: Atribuição de nomes globais Problema: garantir a unicidade referencial É preciso garantir que um dado nome é resolvido sempre para o mesmo objecto em todo e qualquer contexto Soluções: Atribuição central Grande latência, ponto único de falha Endereços IP oficiais (públicos) Endereços Ethernet (de fábrica) Atribuição local e difusão para os outros contextos Impraticável em larga escala Simples e prático em redes locais Sistemas Distribuídos 12/13 14 Gestão de espaços de nomes: Atribuição de nomes globais Nomes não estruturados com grande amplitude referencial Podem ser atribuídos independentemente por qualquer contexto Podem ser gerados de forma pseudo-aleatoriamente ou mesmo totalmente aleatória Identificadores com 128 ou mais bits Nomes hierárquicos nomes globais compostos pela concatenação de nomes locais Números de telefone (ex ) Nomes DNS (ex. mega.ist.utl.pt.) Nomes de ficheiros (ex. /a/b/b) Sistemas Distribuídos 12/13 15 Page 7
8 Nome Hierárquico URL DNS lookup Resource ID (IP number, port number, pathname) WebExamples/earth.html Network address 2:60:8c:2:b0:5a file Web server Socket Sistemas Distribuídos 12/13 16 Namespaces: Solução hierárquica de nomes no XML Problema: troca de dados XML entre organizações <banco> pode referir-se a uma instituição bancária num documento e a uma peça de mobiliário noutro Solução: usar tags na forma nome único : nome do elemento Para comprimir os nomes únicos usam-se XML Namespaces <bank Xmlns:FB= > <FB:branch> <FB:branchname>Downtown</FB:branchname> <FB:branchcity>Brooklyn</FB:branchcity> </FB:branch> </bank> Sistemas Distribuídos 12/13 17 Page 8
9 Âmbito de um nome Global (absoluto) um nome tem o mesmo significado em todos os contextos onde o espaço de nomes é válido Independentes da localização do utilizador Simples de transferir entre contextos Difíceis de criar para garantir a unicidade referencial Local (relativo) O contexto apenas engloba parte do sistema, os nomes são válidos só nesse contexto. Nomes são atribuídos independentemente em cada contexto. Permite criação eficiente de nomes Nomes têm que ser traduzidos quando transferidos para outros contextos Exemplo: Endereços IP? Respostas diferentes consoante se considera existência de NATs Sistemas Distribuídos 12/13 18 Heterogeneidade/Homogeneidade Homogéneo: Formado por uma única componente Endereço de uma placa Ethernet Formado por várias componentes com igual estrutura e significado Pathname UNIX: /a/b/c Heterogéneos Formado por várias componentes com estruturas e significados diferentes Pathname Windows: C:/a/b/c URL: Sistemas Distribuídos 12/13 19 Page 9
10 Pureza dos nomes Puro: o nome não contém informação sobre a localização do objecto O nome não contém identificadores O nome não reflecte os mecanismos de resolução do sistema Flexibilidade, facilidade de reconfiguração Impraticável em larga escala Impuro parcelas do conteúdo do nome são utilizadas na sua resolução O nome contém identificadores ou informação topológica O nome reflecte os mecanismos de resolução do sistema Realização fácil, extensível, escalável Reconfiguração difícil Sistemas Distribuídos 12/13 20 Exemplos de âmbito e pureza Pureza Puro Impuro UUID - DCE/IETF Porto TCP/IP ou UDP/IP Endereço Ethernet URL Âmbito Global Número de rede num endereço IP (público) URN Endereço IP (público) Pathname AFS Pathname UNIX (/XXX/) Local Nome de um ficheiro num directório UNIX Servidor Sun RPC Tag XML i-numbers num directório UNIX Endereço IP (qualquer) Pathname UNIX (XXX/) Pathname NFS Sistemas Distribuídos 12/13 21 Page 10
11 Persistência Uma referência é persistente se não estiver ligada a nenhum domínio administrativo ou entidade Implica que o objecto possa mudar de domínio administrativo sem que a referência seja perdida Exemplos: URLs: Problemático... Mudança de ISP implica um HTTP redirect permanente no ISP anterior Números de telemóvel em Portugal: persistência foi imposta por legislação Sistemas Distribuídos 12/13 22 Propriedades do espaço de nomes: Relevância consoante a acção Relevantes para o registo de nomes (registo de associações nomes objecto) Unicidade referencial Âmbito Homogeneidade Persistência Relevantes para a resolução de nomes (obtenção de um objecto dado um nome) Pureza Sistemas Distribuídos 12/13 23 Page 11
12 Uniform Resource Identifiers (URIs) Standard de nomes de recursos na WWW Sintaxe: [prefixo]:[sufixo-específico-do-protocolo] Exemplos: urn:isbn: https://www.ist.utl.pt/index.html Duas funções distintas: Identificar univocamente um recurso na internet Chamados URNs (Uniform Resource Names) e/ou Localizar um recurso na internet Chamados URLs (Uniform Resource Locator) 12/13 Sistemas Distribuídos 24 Exemplo: UUID na Interface em IDL DCE [ uuid(00918a0c-4d50-1c17-9bb3-92c1040b0000), version(1.0) ] interface banco { typedef enum { SUCESSO, ERRO, ERRO_NA_CRIACAO, CONTA_INEXISTENTE, FUNDOS_INSUFICIENTES } resultado Identificador global, homogéneo, puro, persistente Gerado por uma aplicação Sistemas Distribuídos 12/13 26 Page 12
13 Exemplo: Sun RPC bancoprog_1(char *host) { CLIENT *clnt; pedirextratoin pedirextrato_1_arg; #define MAXLINE 1024 char comando[maxline]; } clnt = clnt_create(host, BANCOPROG, BANCOVERS, "tcp"); if (clnt == (CLIENT *) NULL) { clnt_pcreateerror(host); Resolução do nome exit(1); Local ao servidor de nomes da máquina identificada em host Sistemas Distribuídos 12/13 27 Serviços de Directório Sistemas Distribuídos 12/13 28 Page 13
14 Serviços de Directório Os serviços de nomes tinham por objectivo efectuar a tradução de nomes em identificadores de objectos A sua estrutura era constituída por pares <nome, atributo> Serviços mais complexos podem armazenar relações entre nomes e múltiplos atributos e permitir a pesquisa por atributos São normalmente designados serviços de directórios. Permite genericamente dois tipos de serviços de procura: White-pages: capacidade de procura por nome Yellow-pages: capacidade de procura por conteúdo semântico associado aos nomes Sistemas Distribuídos 12/13 29 Serviços de Directório Um directório é constituído por: Esquema mapa lógico da base de dados. O esquema inclui quais os objectos que podem ser criados, os atributos dos objectos, e os tipos de dados Classes tipos abstractos que podem ser herdados Atributos define informação sobre objectos Valores para um atributo ter significado tem de ser instanciado por um valor Objecto instancia de uma classe com os respectivos atributos Os serviços de directório podem ser usados para diversos nomes utilizados pelo sistema ou por aplicações ex.: utilizadores, credenciais de segurança, etc. Não têm uma linguagem de query como as bases de dados Sistemas Distribuídos 12/13 30 Page 14
15 Arquitectura dos Serviços de Nomes e Directório Sistemas Distribuídos 12/13 31 Serviços de nomes: Funcionalidade Registo das associações Verifica se a sintaxe do nome respeita o espaço de nomes Armazena a associação Distribuição das associações Actualização dos directórios nos contextos onde a associação deve ser válida Resolução dos nomes Tradução do nome noutro nome ou num identificador Normalmente feita sem conhecimento da estrutura completa do nome Processo pode ser repetido recursivamente em vários níveis Resolução inversa Dado um identificador, devolve o seu nome Sistemas Distribuídos 12/13 32 Page 15
16 Serviços de nomes: Características dos sistemas distribuídos Larga escala Distribuição geográfica Heterogeneidade de nomes e protocolos Necessidade de grande disponibilidade Uso de caches Estabilidade Os nomes variam pouco Consistência fraca Manutenção de caches com algum grau de erro Sistemas Distribuídos 12/13 33 Arquitectura dos serviços de nomes: Evolução da Arquitectura Ficheiros replicados em todas as máquinas Ficheiros UNIX /etc/hosts, /etc/services, etc. Ficheiro Windows LmHosts Pedido em difusão respondendo o nó que tem o objecto NetBIOS IP ARP Arquitectura cliente-servidor (solução habitual) Pergunta directa dos clientes a servidores específicos DNS, NIS, UDDI, Active Directory Sistemas Distribuídos 12/13 34 Page 16
17 Arquitectura dos serviços de nomes: Componentes Agente do serviço de nomes Efectua o processamento do cliente Oferece uma interface ao programador Servidores de nomes Realizam o serviço de nomes Base de dados de nomes Mecanismo de armazenamento persistente da informação nos servidores Sistemas Distribuídos 12/13 35 Arquitectura dos serviços de nomes: Diagrama de interacções aplicação Código que usa o SN servidor servidor Agente do SN servidor servidor Informação do SN Sistemas Distribuídos 12/13 36 Page 17
18 Arquitectura dos serviços de nomes: Agente Conjunto de utilitários e rotinas de adaptação (stubs) Que efectuam os pedidos aos servidores Exemplos: gethostbyname, gethostbyaddr, JNDI Java naming & Directory Interface Localização do(s) servidor(es): Porto do servidor é fixo (well-known) Ex. Sun RPC, DNS Difusão periódica do endereço dos servidores Pedido do cliente em difusão Ex. NIS Sistemas Distribuídos 12/13 37 Arquitectura dos serviços de nomes: Modelos de resolução de nomes Baseada em multicast Iterativo Interativo controlado pelo servidor Recursivo Sistemas Distribuídos 40 Sistemas Distribuídos 12/13 40 Page 18
19 Arquitectura dos serviços de nomes: Modelo de resolução baseado em multicast Cliente envia nome a resolver em difusão para múltiplos servidores de nomes Quem souber, responde O que assumir se ninguém responde? Escalável para redes de grande escala? Sistemas Distribuídos 12/13 41 Arquitectura dos serviços de nomes: Modelo de resolução iterativo NS2 Client 2 1 NS1 Name servers 3 NS3 Sistemas Distribuídos 12/13 42 Page 19
20 Arquitectura dos serviços de nomes: Modelo de resolução iterativo NS2 Client 2 1 NS1 Name servers 3 NS3 Sistemas Distribuídos 12/13 43 Arquitectura dos serviços de nomes: Modelos de resolução controlada pelo servidor NS2 NS2 client 1 4 NS1 2 3 NS3 client 1 5 NS NS3 Iterativa controlada pelo servidor Recursiva Sistemas Distribuídos 12/13 44 Page 20
21 Arquitectura dos serviços de nomes: Comparação dos modelos Iterativo: A mais complexa para o agente Pode interactuar com vários servidores Tem que manter contexto de resolução Mais fácil lidar com falhas Recursivo: A mais simples para o agente Apenas interactua com um servidor A mais complexa para os servidores Tem que manter contexto de resolução Permite fazer caching nos servidores Simplifica a coabitação com barreiras de segurança Iterativo controlado pelo servidor Combina algumas vantagens de ambos. Quais? Sistemas Distribuídos 12/13 45 Arquitectura dos serviços de nomes: Servidores Aproximação simplista: servidor centralizado Ponto singular de falha Excesso de informação Estrangulamento no acesso Complexidade do controlo de acesso Aspectos relevantes para a optimização: Os nomes mudam com pouca frequência Incoerências na resolução de nomes são normalmente toleráveis Podem ser contornadas por repetição da resolução É viável usar caches ou replicação em clientes e servidores intermediários Sistemas Distribuídos 12/13 46 Page 21
22 Arquitectura dos serviços de nomes: Servidores e caches Um servidor centralizado, caches nos clientes Não existe partilha das caches pelos clientes Não facilita os registos Múltiplos servidores e caches Caches em servidores intermédios podem ser usadas por vários clientes Sistemas Distribuídos 12/13 47 Análise de Serviços de Nomes Sistemas Distribuídos 12/13 48 Page 22
23 Exemplos de Serviços de Nomes e Directório Serviço de Nomes DNS (Domain Name System) Serviços de Directórios NIS (Network Information System) X500 Active Directory da Microsoft DCE: CDS (Cell Directory Service) GDS (Global Directory Service) UDDI Sistemas Distribuídos 12/13 49 Características Genéricas Organização do espaço de nomes Esquema de nomes estrutura, atributos Propriedades Arquitectura Cliente-servidor Esquema de autoridades Persistência Disponibilidade Replicação de Servidores Desempenho Cache em clientes e servidores Sistemas Distribuídos 12/13 50 Page 23
24 DNS (Domain Name Service): Introdução Arquitectura para registo e resolução de nomes de máquinas da Internet Inicialmente proposta em 1983 Concretizações: UNIX: BIND (Berkeley Internet Name Domain) Microsoft: Windows 2000 DNS Integrado com o Active Directory Sistemas Distribuídos 12/13 51 DNS: Características Espaço de nomes hierárquico, e homogéneo Âmbito dos nomes: Global (Fully Qualified Domain Name) Ex. mega.ist.utl.pt. Local (resolvido no domínio corrente) Ex. mega Cada contexto designa-se por domínio Cada domínio é gerido por uma entidade administrativa: Pode criar e remover nomes Resolve nomes Pode delegar responsabilidades em sub-domínios Nomes impuros Sistemas Distribuídos 12/13 52 Page 24
25 DNS: Estrutura Note: Name server names are in italics, and the corresponding domains are in parentheses. Arrows denote name server entries ns1.nic.uk (uk) co.uk ac.uk a.root-servers.net (root) uk purdue.edu yahoo.com ns0.ja.net (ac.uk) ns.purdue.edu (purdue.edu) *.purdue.edu ic.ac.uk qmw.ac.uk dcs.qmw.ac.uk *.qmw.ac.uk *.dcs.qmw.ac.uk *.ic.ac.uk alpha.qmw.ac.uk (qmw.ac.uk) dns0.dcs.qmw.ac.uk (dcs.qmw.ac.uk) dns0-doc.ic.ac.uk (ic.ac.uk) Sistemas Distribuídos 12/13 53 DNS: Estrutura. Nome de Gerido pelo Internet Network Information Center domínio com Tipo de organização Comercial edu com net org gov / int / mil edu org Educação Sem fins lucrativos mit amazon linux iso net gov mil Redes Governamental (não militar) Governamental e militar lcs num Números de telefone Gerido pelo MIT MIT MIT Domain arpa Reverse DNS xx Código de país (2 letras) ISO 3166 Sistemas Distribuídos 54 Sistemas Distribuídos 12/13 54 Page 25
26 DNS: Zonas Unidades de fraccionamento da hierarquia de autoridades Uma zona é uma unidade de administração: Cada domínio pertence a uma zona Cada zona pode gerir um ou mais domínios A Zona constitui a autoridade. Sistemas Distribuídos 12/13 55 Servidores DNS Associado a uma zona existe sempre um servidor Contém a base de dados com os nomes desse conjunto de domínios Servidor sempre replicado Primário: mantém a base de dados, onde se efectuam as actualizações Secundário: contém uma cópia da informação do primário, actualizada periodicamente com um protocolo dedicado Todos os servidores mantêm caches Validade indicada pelo parâmetro TTL Cada servidor indica a sua autoridade sobre os dados que fornece Primário: autoridade total sobre os dados do domínio Secundários: não possuem autoridade alguma Sistemas Distribuídos 12/13 56 Page 26
27 DNS: Esquema de Informação Registos RR (Resource Register) Pares nome valor tipificados A tipificação exprime: Classe: família de nomes (ex. IN para endereços IP) Tipo: semântica de utilização do nome Cada RR possui um TTL (time to live) Serve para invalidar periodicamente RR em cache Informação estrutural (RRs do tipo NS) Localização de servidores de zonas Sistemas Distribuídos 12/13 57 DNS: Tipos de registos Tipo de registo Conteúdo A CNAME HINFO NS MX SOA PTR TXT WKS Endereço IP Nome simbólico para outro nome DNS Arquitectura e sistema operativo do nó Servidor de uma zona Máquina ou domínio do servidor preferencial de Parâmetros que definem a zona Nome DNS para resolução inversa de um endereço IP Texto arbitrário Descrição de um serviço com os respectivos nomes e protocolos Sistemas Distribuídos 12/13 58 Page 27
28 DNS: Informação do domínio ist.utl.pt $ORIGIN 1D IN SOA ciistr1 root.ciistr1 ( ; serial 4H ; refresh 2H ; retry 1W ; expiry 1D ) ; minimum Definições da zona (Obrigatório no ficheiro do primário) ciistr1 1D IN TXT "The_Domain_Name_Server_for ist.utl.pt" Nomes simbólicos www 1D IN CNAME ci ftp 1D IN CNAME ci proxy 1D IN CNAME ci samba 1D IN CNAME ci Servidores da 1D IN NS ciistr1 ist.utl.pt 1D IN NS alfa 1D IN NS ci 1D IN NS ns.utl.pt. 1D IN NS civil2.civil 1D IN NS inesc.inesc.pt. Servidores da zona rnl 1D IN NS ns2.rnl rnl.ist.utl.pt 1D IN NS ciistr1 1D IN NS 1D IN MX 5 ciistr1 secreta 1D IN MX 5 seca Servidores de alfa 1D IN A Nome IP Sistemas Distribuídos 12/13 59 DNS: Resoluções recursivas ou iterativas Name Server iterative queries Name Server (root server) pt. Name Server sapo.pt. Name Server pt sapo. 1 8 recursive query www resolver o cliente pede o IP de Sistemas Distribuídos 12/13 60 Page 28