1 / 35

Serviço de Nome

Serviço de Nome. Sistemas Distribuídos Coulouris (Capitulo 9) Tanenbaum (Capitulo 4). Introdução. Nomes exercem importante papel em todos os sistemas computacionais. São usados: Compartilhamento de recursos Identificação única de entidades Para referenciar locais, ...

Download Presentation

Serviço de Nome

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Serviço de Nome Sistemas Distribuídos Coulouris (Capitulo 9) Tanenbaum (Capitulo 4)

  2. Introdução • Nomes exercem importante papel em todos os sistemas computacionais. • São usados: • Compartilhamento de recursos • Identificação única de entidades • Para referenciar locais, ... • A diferença entre serviço de nome em sistemas distribuídos e não distribuídos consiste na forma em que o mesmo é implementado

  3. Funções de Serviço de Nome • A principal função de um serviço de nomes é permitir a associação de um nome (ou uma outra representação alternativa mais simples) a recursos computacionais como: • endereços de memória, de rede, de serviços • objetos e referências • códigos em geral • Suas duas funções básicas são: • Associar (mapear) um nome a um recurso • Localizar um recurso a partir de seu nome • Exemplos: • Sistema de arquivos: liga caminho a bloco(s) de memória • Sistema DNS: liga nome de domínio a endereço IP

  4. Namespaces • Nomes em sistemas distribuídos são organizados em namespace, que são grafos direcionados cujos nós são nomeados. • Implementado em sistemas de arquivos • O nome de uma entidade inclui o caminho no grafo (path) que identifica sua localização • Nomes em XML • Usados na estruturação de documentos • Referências globais (URI – Uniform resource identifier) • Tipo especial de URI (URL – Uniforme resource locator)

  5. URL http://www.cdk3.net:8888/WebExamples/earth.html DNS lookup Resource ID (IP number, port number, pathname) 55.55.55.55 8888 WebExamples/earth.html Web server Network address file 2:60:8c:2:b0:5a Socket Nomes e Recursos

  6. Resolução de Nomes • Namespaces oferecem um mecanismo conveniente para armazenar e recuperar informações sobre entidades através de nomes • Resolução de nomes é o processo de busca de um nome • Exige o conhecimento preliminar sobre onde e como começar a busca • É possível definir diversos nomes a uma mesma entidade (alias)

  7. NS2 2 Name 1 NS1 servers Client 3 NS3 Resolução de NomesInteração direta do Cliente

  8. NS2 NS2 2 2 4 3 1 1 NS1 NS1 client client 3 5 4 NS3 NS3 Non-recursive Recursive server-controlled server-controlled Resolução de NomesInteração indireta

  9. Implementação de Namespace estabilidade

  10. Montagem • Em sistemas distribuídos é possível mesclar diferentes namespaces de forma transparente. • Para tal é necessário: • Nome do protocolo de acesso • Nome do servidor • Nome do ponto de montagem

  11. Montagem

  12. Serviço de nome usado na Internet Consiste em uma base de dados hierárquica e distribuída Usado principalmente para resolução de host name e mail host a.root-servers.net (root) uk ns1.nic.uk purdue.edu (uk) yahoo.com ns.purdue.edu (purdue.edu) co.uk ns0.ja.net ac.uk (ac.uk) * .purdue.edu ic.ac.uk qmw.ac.uk *.dcs.qmw.ac.uk dcs.qmw.ac.uk *.ic.ac.uk *.qmw.ac.uk alpha.qmw.ac.uk dns0.dcs.qmw.ac.uk dns0-doc.ic.ac.uk (qmw.ac.uk) (dcs.qmw.ac.uk) (ic.ac.uk) Exemplo de Serviço de NomeDNS - Domain Name System

  13. API para Serviço de NomeJNDI – Java Naming and Directory Interface • É uma ponte sobre os diversos serviços de nomes e diretórios diferentes • Vantagens • Só é preciso aprender uma única API para acessar vários tipos de informação de serviços de diretório • Isola a aplicação dos detalhes específicos do protocolo • Pode ser usada para ler objetos Java (serializados) que estejam armazenados em um diretório • Pode combinar diferentes tipos de diretório (federação) e tratá-los como um diretório único • Componentes • API - Application Programming Interface • SPI - Service Provider Interface que permite que novos serviços sejam plugados transparentemente

  14. Arquitetura JNDI

  15. Principais Classes JNDI • A API JNDI consiste de cinco pacotes • O principal pacote é javax.naming que contém as principais classes e interfaces • Context: interface onde se pode recuperar, ligar, desligar e renomear objetos, e criar e destruir contextos • InitialContext: ponto de partida (raiz) para todas as operações • Name: abstração de um nome. Contém geralmente um String de texto que corresponde ao nome do objeto ou contexto • NameClassPair: contém nome do objeto e de sua classe • Binding: contém nome do objeto ligado, nome da classe do objeto e o próprio objeto • Reference: abstração de uma referência para um objeto • NamingEnumeration: um tipo de java.util.Enumeration usado para colecionar componentes de um contexto • NamingException: principal exceção do JNDI

  16. Recuperação de Objetos JNDI • Para obter a referência para um objeto de um contexto usa-se o método lookup() • Para usar o objeto retornado é preciso conhecer o seu tipo e fazer o cast (ou narrow, se objeto remoto) para promover a referência • Se o objeto for um contexto, lookup() age como um método para mudar de contexto (como o chdir, em Unix)

  17. Serviço de Diretório • Também chamadas páginas amarelas • Retorna atributos de qualquer objeto que corresponde ao atributo especificado • Atributos são mais poderosos que nomes como designadores de objetos • Programas podem ser escritos para selecionar objetos de acordo com especificações precisas de atributos, onde nomes podem não ser conhecidos • Outra vantagem de atributos é que não expõem a estrutura das organizações • Contudo, serviços de nomes (páginas brancas) são mais simples que serviços de diretórios

  18. Descoberta de Serviço • Serviço de diretório facilita o registro de serviços fornecidos em um ambiente de rede espontâneas (Ad hoc) • Fundamental em ambientes onde clientes e serviços mudam dinamicamente mas devem ser integrados sem intervenção do usuário • Fornece interface para registro e desligamento automático de serviços • Fornece interface para localização (lookup) de serviços pelos usuários • Ex: localização e uso de serviço de impressão (com determinada qualidade) por um usuário eventual de um hotel • Um URL especifica a localização da impressora na rede • http://www.hotelX.com/services/printer57 • O contexto de descoberta (scope) é definido pela alcançabilidade da rede

  19. Localização de Entidades Móveis • Por sua natureza, serviços de nome tradicionais não são convenientes para mapeamento (nome-endereço) que mudam com regularidade • Cada vez que a entidade se move, uma operação de busca não-local é necessária • Características essenciais: • Tolerância a falhas • Escalabilidade • Resolução eficiente de nomes (ênfase)

  20. Abordagens de Mapeamento (a) Mapeamento direto, em serviços de nome tradicionais. (b) Mapeamento indireto, para entidades móveis: serviço de nome + serviço de localização.

  21. Mecanismos para Localização de entidade móvel • Localizar entidades móveis pode ser feito mais eficientemente usando identificadores independente de localização • Existem basicamente 4 abordagens para localização de entidades móveis: • Broadcasting e Multicasting • Forwarding Pointers • Home-Based Approach • Hierarchical Approach

  22. Broadcasting e Multicasting • O identificador da entidade a ser localizada é anunciada para todo processo no sistema distribuído • O processo que oferece access point para a entidade, responde fornecendo um endereço para o ponto de acesso • Essa abordagem tem escalabilidade limitada

  23. Forwarding Pointers • Quando uma entidade se muda de A para B, deixa um ponteiro em A para a sua nova localização • Mobilidade totalmente transparente para o cliente • Problema de performance em cadeia longa

  24. Otimização para Forwarding Pointers • (a) Para reduzir a cadeia de busca (proxy, skeleton), uma invocação traz a identificação do proxy de onde a chamada foi iniciada. • (b) A resposta com a localização atual do objeto é registrada e usada diretamente pelo cliente nas invocações posteriores • Apesar do ganho em performance, somente o proxy inicial é ajustado, introduzindo ponto de falha

  25. Home-Based Approach • Usado em IP Móvel • Cada host móvel recebe um IP fixo. Toda comunicação é inicialmente direcionada para o home agent (localizado na LAN do host) • Sempre que se move, o host solicita um IP temporário e o registra no home agent

  26. Hierarchical Approach • A localização é feita por proximidade de domínios • A busca tem início no local de origem, caso a entidade tenha se movido a busca continua seguindo trilha ascendente na hierarquia de domínios

  27. Busca Hierárquica

  28. Remoção de entidades não referenciadas • Entidades que não podem ser localizadas devem ser removidas • Uma importante uso de nomes em sistemas distribuídos é organizar referências às entidades, de forma que entidades não referenciadas possam ser automaticamente removidas • Esse GC requer suporte de mecanismos específicos (counting e tracing)

  29. Entidades não referenciadas

  30. Técnica para GCD:Reference Counting • Uma entidade conta o número de referências externas a ela • Quando o contador chega em zero, a entidade pode ser removida • Ao invés de contagem de referências, é possível manter uma lista de processos (reference listing) que fazem referência a entidade (usado em Java RMI) • Lista de referência é um mecanismo mais robusto do que a contagem, mas possui problemas de escalabilidade

  31. Problemas com falha de comunicação

  32. Problema Uma das soluções possíveis Problemas com passagem de referência entre objetos • É necessária a introdução de mais uma mensagem na comunicação (ACK) • Pode ter problemas de desempenho em sistemas distribuídos em larga-escala • Impõe condições de corrida para incremento/decremento do contador

  33. Advanced Reference Counting Qdo nova referência remota é criada, metade do peso armazenado no skeleton é associado ao novo proxy Cada objeto tem um peso inicial fixo Passagem de referência entre processos

  34. Técnica para GCD: Reference Tracing • Com método baseados em trace, todas as entidades que são direta ou indiretamente referenciadas em um dado conjunto de entidades raiz são marcadas como alcançáveis • Trace distribuído é difícil de ser implementado, pois requer que todas as entidades no sistema possam ser inspecionadas • Soluções variam, mas em geral são baseadas em coletores de lixo tradicionais usados em sistemas monoprocessados

  35. atingível inatingível Objetos para GC

More Related