Baixe o app para aproveitar ainda mais
Prévia do material em texto
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 1 Hélio Crestana Guardia - 2011 Nomeação Mecanismo de nomeação permite identificar entidades de maneira única, compartilhar recursos, fazer referência a localizações Nomes podem ser resolvidos para as entidades a que se referem Resolução de nomes permite acesso à entidade referida Resolução de nomes é feita por sistema de nomeação Implementação do sistema de nomeação pode ser distribuída e deve considerar aspectos de eficiência e escalabilidade Aspectos de interesse: Criação de nomes amigáveis (fáceis de tratar pelas pessoas) Localização das entidades asssociadas aos nomes Resolução de nomes por meio de atributos da entidade A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 2 Hélio Crestana Guardia - 2011 Nomes, identificadores e endereços • Nome: cadeia de bits ou caracteres usada para referenciar uma entidade • Entidades: – Computadores (hosts) e outros recursos: impressoras, discos, arquivos, etc. – Processos, usuários – Caixas postais, grupos de discussão, páginas WWW, janelas gráficas, mensagens, conexões de rede, etc. • Entidades são elementos ativos, que podem realizar operações • Acesso a entidades ocorre através de pontos de acesso. – Ex.: combinação endereço IP + proto transporte + número de porta • Nomes de pontos de acesso são denominados endereços • Endereço de um ponto de acesso de uma entidade é denominado endereço desta entidade • Entidades podem oferecer mais de um pontos de acesso. – Ex.: pessoas podem ser contatadas usando mais de um números de telefone A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 3 Hélio Crestana Guardia - 2011 Nomes, identificadores e endereços • Entidades podem mudar seus pontos de acesso ao longo do tempo • Endereço refere-se a ponto de acesso de uma entidade • Uso de endereço de um ponto de acesso como referência de uma entidade não é adequado: identificação pouco amigável e inflexível • Identificação de entidades pelos nomes é independente de localização • Pure name: a name that has no meaning at all; it is just a random string. Pure names can be used for comparison only. • Identificador (identifier): é um nome que tem as seguintes propriedades: – P1: um identificador referecia, no máximo, uma entidade – P2: cada entidade é referenciada por, no máximo, um identificador – P3: um identificador sempre referencia a mesma entidade e nunca é reutilizado • Nomes podem ser construídos de forma a facilitar a manipulação pelas pessoas (human-friendly names). Ex.: nomes de arquivos Unix, nomes DNS. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 4 Hélio Crestana Guardia - 2011 Nomes, identificadores e endereços • Questão: como resolver nomes e identificadores em endereços? • Resolução de nomes e roteamento de mensagens comumente estão relacionados • Sistema de nomeação mantém vinculação nome-endereço, normalmente armazenada na forma de tabelas – Uso de tabela centralizada, contudo, não é adequado em SDs • Nome é comumente decomposto em várias partes • Resolução de nomes é realizada de forma recursiva para as diversas partes. Ex: ftp.cs.vu.nl, www.dc.ufscar.br • Classes de sistemas de nomeação: – Nomeação simples – Nomeação estruturada – Nomeação baseada em atributo A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 5 Hélio Crestana Guardia - 2011 Nomeação simples (flat naming) • Identificadores podem ser apenas cadeias de bits ou caracteres, caracterizando nomes não estruturados, ou simples (flat names) • Flat names não contêm informações sobre localização do ponto de acesso da entidade associada a cada um deles • Como resolver flat names? Ou seja, como localizar pontos de acesso das entidades? – Broadcasting e multicasting – Localização nativa (home-based approaches) – Tabelas Hash distribuídas (distributed hash tables – DHTs) – Abordagens hierárquicas A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 6 Hélio Crestana Guardia - 2011 Resolução com flat naming (nomeação simples) Broadcasting e multicasting • Aplicáveis apenas em redes locais, para máquinas conectadas ao mesmo domínio de broadcast • Mensagem com identificador buscado é propagada a todos na rede • Máquinas realizam escuta permanente das requisições • Cada máquina verifica se possui o identificador associado e só responde em caso positivo • Ex.: resolução de endereços com ARP (Address Resolution Protocol) • Uso de broadcast é ineficiente quando número de nós aumenta Multicast • Permite limitar as máquinas que participam das consultas • Pode usar suporte de hardware para transmissões (Ethernet multicast) ou de endereçamento de rede (IP multicast) • Também permite identificar entidades replicadas A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 7 Hélio Crestana Guardia - 2011 Ponteiros encaminhadores (forwarding pointers) • Quando entidade muda sua localização, deixa no antigo local uma referência para a nova localização • Localização atualizada é obtida percorrendo-se uma cadeia de repassadores / encaminhadores (forwarders) a partir do local original • Vantagens do encaminhamento: – Simplicidade e transparência dos acessos • Desvantagens: – Cadeia de encaminhadores pode ser grande para entidades com grande mobilidade – Encaminhadores intermediários precisam permanecer ativos – Vulnerabilidade de enlaces rompidos • Para RPCs, client stub mantém referência original, mas chamada é repassada entre os intermediários – Retorno pode ser repassado direto ao cliente – Retorno indireto, igual chamada, permite ajuste dos stubs intermediários A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 8 Hélio Crestana Guardia - 2011 Redirecionamento de RPCs A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 9 Hélio Crestana Guardia - 2011 Redirecionamento de RPCs A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 10 Hélio Crestana Guardia - 2011 Nomeação baseada na localização nativa Nomeação baseada em localização nativa (home-based approach) • Localização em que uma entidade foi criada mantém referência sobre sua localização atual • Abordagem usada de forma complementar à de encaminhadores (forwarders) • Informações de Home address de entidades é mantida por serviço de nomeação A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 11 Hélio Crestana Guardia - 2011 Nomeação baseada na localização nativa • Ex.: mobile IP (v4) – Host móvel mantém endereço fixo – Comunicação para host é encaminhada ao home agent na rede original • Ex.: mobile IPv6 – nós móveis solicitam endereços nas redes visitadas (care-of-address – COA), e os registram com home agent – Pacotes para nó móvel são encaminhados de forma encapsulada pelo home agent para a localização atual do nó. Localização atual é informada à origem das mensagens redirecionadas. • Problemas: – Home address é fixo; inconveniente em mudanças definitivas – Escalabilidade limitada, com triangulação no encaminhamento dos dados A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 12 Hélio Crestana Guardia - 2011 Home-based naming: mobile IP A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 13 Hélio Crestana Guardia - 2011 Tabelas Hash distribuídas (DHTs) Ex.: Chord • Identificadores com m bits, escolhidos ateatoriamente para atribuição aos nós e outras entidades (arquivos, processos, etc.) • m: comumente 120 ou 160 bits, dependendo da função hash utilizada• Nós organizados em um anel lógico – Cada nó recebe um identificador aleatório (m-bits) – Cada entidade recebe um identificador aleatório (m-bits) – Responsabilidade sobre entidade com identificador k é atribuída a nó com menor identificador id >= k, denominado sucessor de k – succ(k) • Busca: – Linear, consultando cada nó no anel lógico a partir de succ(k), até localização ser encontrada, ou – Usando finger table (tabela de derivação) A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 14 Hélio Crestana Guardia - 2011 Chord DHT: Finger tables • Cada nó Chord mantém uma finger table (FTp [ ]) com no máximo m entradas (log 2 Núm_nós) • FTp [i] = succ(p + 2i−1) • FTp [i] aponta para o próximo nó, sucessor de p por ao menos 2i−1nós • Na busca de uma chave k, nó p encaminha requisição para nó com índice j, satisfazendo: q = FTp [j] ≤ k < FTp [j + 1] • Se p < k < FTp [1], requisição também é encaminhada para FTp [1] A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 15 Hélio Crestana Guardia - 2011 Chord DHT: Finger tables A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 16 Hélio Crestana Guardia - 2011 DHT: exploração de proximidade de rede Organização lógica dos nós pode levar a encaminhamentos ineficientes Soluções: • Atribuição de identificadores de nós de acordo com topologia (topology- aware node assignment) – IDs próximos devem corresponder a nós fisicamente próximos também (atribuição pode ser complexa...) • Roteamento por proximidade (proximity routing): nós mantêm lista de alternativas para encaminhamento para uma requisição, e escolhem mais próximo • Seleção de vizinho por proximidade (proximity neighbor selection): tabelas de roteamento são usadas de modo de nó mais próximo seja selecionado como vizinho A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 17 Hélio Crestana Guardia - 2011 Flat naming: abordagens hierárquicas Hierarchical Location Services (HLS) ● Rede é dividida em conjunto de domínios ● Domínio único de nível mais alto abrange toda a rede ● Domínios podem ser subdivididos ● Domínio de nível mais baixo é denominado domínio-folha e, normalmente, corresponde a uma rede local, ou célula em telefonia móvel ● Domínios têm diretório associado, que monitora atividades no domínio ● Nó de diretório no domínio de nível mais alto é denominado nó raiz, e conhece todas as entidades A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 18 Hélio Crestana Guardia - 2011 Flat naming: abordagens hierárquicas A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 19 Hélio Crestana Guardia - 2011 Flat naming: abordagens hierárquicas A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 20 Hélio Crestana Guardia - 2011 Flat naming: abordagens hierárquicas ● Consulta: encaminhamento hierárquico A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 21 Hélio Crestana Guardia - 2011 Flat naming: abordagens hierárquicas ● Inserção: transmissão do registro (a), ou ajuste de ponteiros para registro local (b) ● Remoção usa abordagens análogas A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 22 Hélio Crestana Guardia - 2011 Nomeação estruturada Nomes estruturados são compostos por nomes simples (flat) e organizados em espaços de nomes (name spaces) Name spaces: ● Grafo em que nós folhas representam entidades ● Nó folha representa entidade nomeada; não tem ramos de saída ● Nó diretório é uma entidade que se refere a outros nós ● Diretórios contêm tabelas com pares de informações: rótulo do ramo, identificador do nó ● Pathname (nome de caminho) corresponde a sequência em caminho de nomeação: N:<label-1, label-2, …, label-n> (N=primeiro nó no caminho) ● Nomes podem ser absolutos (absolute pathnames), quando incluem a raiz do gráfico de nomeação, ou relativos (relative pathnames), nos demais casos A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 23 Hélio Crestana Guardia - 2011 Nomeação estruturada ● Nós podem conter diferentes tipos de atributos, descrevendo aspectos das entidades que representam: ● Tipo da entidade ● Identificador para a entidade ● Endereço da localização da entidade ● Apelidos ● … ● Diretórios também podem ter atributos, além de apenas armazenar tabelas ● Gráfico de nomeação aproxima-se de implementações de sistemas de arquivos ● Em sistemas de arquivos, '/' é separador de rótulos; '/' no início do nome serve para indicar caminhos absolutos A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 24 Hélio Crestana Guardia - 2011 Espaços de nomes e grafos de nomeação A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 25 Hélio Crestana Guardia - 2011 Espaços de nomes e grafos de nomeação A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 26 Hélio Crestana Guardia - 2011 Resolução de nomes ● Dado um nome de caminho, deve ser possível consultar qualquer informação armazenada no nó referenciado por este nome ● Processo de busca de um nome é denominado resolução de nomes ● N:<label 1 , label 2 ,...,label n > : resolução do nome inicia no nó N do grafo de nomeação; resolução pára no último nó referenciado, com o retorno do conteúdo daquele nó. ● Mecanismo de fechamento (closure mechanism) trata da seleção do nó em um espaço de nomes para iniciar a resolução de nomes ● www.cs.vu.nl: consulta inicia-se em um servidor DNS ● /home/steen/mbox: consulda a um servidor NFS ● 0031204447784: número a ser chamado ● 130.37.24.8: rota ao Web server VU A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 27 Hélio Crestana Guardia - 2011 Ligação (link) ● Apelidos ou aliases correspondem a outros nomes usados para uma entidade ● Abordagens: ● Hard link (ponteiros estritos): vários nomes de caminho absoluto referenciam o nesmo nó ● Soft link (ponteiros simbólicos): permite que um nó contenha um nome de outro nó – First resolve O’s name (leading to O) – Read the content of O, yielding name – Name resolution continues with name A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 28 Hélio Crestana Guardia - 2011 Ligação (link) A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 29 Hélio Crestana Guardia - 2011 Montagem ● Montagem permite fundir diferentes espaços de nome ● Sistema de arquivos montado corresponde a deixar que um nó diretório armazene o identificador de um nó diretório de um espaço de nomes diferente (externo) ● Ponto de montagem externo corresponde à raiz de um espaço de nome ● Ponto de montar (local) armazena identificador de nó ● Montagem requer: ● Nome de um protocolo de acesso ● Nome do servidor ● Nome do ponto de montagem no espaço de nomes externo (Todos esses nomes precisam ser resolvidos) ● Ex.: Network File System (NFS): nfs://flits.cs.vu.nl//home/steen A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 30 Hélio Crestana Guardia - 2011 Montagem A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 31 Hélio Crestana Guardia - 2011 Implementação de um espaço de nomes Em SD de grande escala, processo de resolução de nomes deve ser distribuído sobre múltiplas máquinas Distribuição do espaço de nomes: ● Organização hierárquica com níveis de funcionalidade: ● Camada global, formada pornós de nível mais alto (raiz e nós mais próximos) ● Camada administrativa, formada por nós de diretório; representam grupos de entidades que pertencem à mesma organização ou unidade administrativa ● Camada gerencial: diretório de baixo nível. Aspecto principal é o mapeamento efetivo de nós ● Disponibilidade e desempenho podem ser providos com replicação de servidores combinados com caches no lado do cliente. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 32 Hélio Crestana Guardia - 2011 Implementação de um espaço de nomes A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 33 Hélio Crestana Guardia - 2011 Implementação de um espaço de nomes A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 34 Hélio Crestana Guardia - 2011 Resolução de nomes iterativa ● resolve(dir,[name1,...,nameK]) sent to Server0 responsible for dir ● Server0 resolves resolve(dir,name1) → dir1, returning the identification (address) of Server1, which stores dir1. ● Client sends resolve(dir1,[name2,...,nameK]) to Server1, etc. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 35 Hélio Crestana Guardia - 2011 Resolução de nomes recursiva ● resolve(dir,[name1,...,nameK]) sent to Server0 responsible for dir ● Server0 resolves resolve(dir,name1) → dir1, and sends resolve(dir1, [name2,...,nameK]) to Server1, which stores dir1. ● Server0 waits for result from Server1, and returns it to client. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 36 Hélio Crestana Guardia - 2011 Resolução de nomes recursiva A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 37 Hélio Crestana Guardia - 2011 Resolução de nomes A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 38 Hélio Crestana Guardia - 2011 Sistema de Nomes de Domínio: DNS ● Domain Name System é exemplo de sistema de nomeação estruturada ● Espaço de nomes DNS organizado como árvore com raiz ● Rótulos têm no máximo 63 caracteres; caminho completo está limitado a 255 caracteres, contendo rótulos separados por '.' ● Sub-árvores são denominadas domínio ● Nome de caminho até nó raiz é denominado nome de domínio ● Conteúdo de um nó é formado por um conjunto de registros de recursos ● Diferentes tipos de registros ● Registro Start of Authority – SOA – contém informações sobre computador onde dados sobre zonas de domínios A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 39 Hélio Crestana Guardia - 2011 Sistema de Nomes de Domínio A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 40 Hélio Crestana Guardia - 2011 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 41 Hélio Crestana Guardia - 2011 Implementações de DNS descentralizadas ● DNS na Internet usa hierarquia de servidores com 13 servidores-raiz e milhões de servidores nas folhas ● Solução para evitar sobrecarga dos servidores na raiz: cache ● Solução alternativa: calcular hash de nome DNS e usá-lo como chave de consulta em DHT ● Desvantagem: perde-se estrutura do nome original, o que dificulta consulta de filhos de um domínio específico A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 42 Hélio Crestana Guardia - 2011 Nomeação baseada em atributo ● Além da localização de entidades em função de seus nomes, pode ser interessante localizá-las em função de outros atributos ● Abordagem: descrição de entidade em termos de pares (atributo, valor) ● Entidades têm conjuntos associados de atributos ● Nas buscas, usuários definem valores que um determinado atributo deve ter ● Sistema de nomeação deve retornar entidades que atendem à descrição realizada A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 43 Hélio Crestana Guardia - 2011 Serviços de diretório ● Sistemas de nomeação baseados em atributos também são conhecidos como serviços de diretório ● Sistemas que suportam nomeação estruturada são denominados sistemas de nomeação ● Serviços de diretório permitem que entidades sejam localizadas em função de atributos ● Estrutura de descrição de recurso (resource description framework – RDF) determina como recursos podem ser descritos ● Recursos são descritos como triplas que consistem em um sujeito, um predicado em um objeto ● Ex.: (Pessoa, nome, Alice) descreve recurso Pessoa, cujo nome é Alice ● Referências em RDF são, em essência, URLs ● Consultas de valores em sistemas de nomeação baseados em atributos requer busca exaustiva em todos os descritores ● Como armazenar descritores de forma distribuída? A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 44 Hélio Crestana Guardia - 2011 Implementação hierárquica para nomeação baseada em atributos ● Serviços distribuídos de diretório: dombinação de nomeação estruturada com nomeação baseada em atributos ● LDAP (Lightweight directory access protocol): serviço de diretório derivado do serviço de diretório X.500 OSI ● LDAP consiste de diversos registros (entradas de diretório) ● Registros compostos de conjuntos de pares (atributo, valor) ● Atributos têm tipos associados ● Atributos podem ser de valor único ou de valores múltiplos ● Conjunto de entradas de um diretório LDAP é denominado base de informações de diretório (Directory Information Base – DIB) ● Cada registro na DIB é nomeado exclusivamente ● Atributos de nomeação denominados nomes relativos distinguidos (RDN – relative distinguished name) ● Árvore de informações de diretório (directory information tree – DIT) forma gráfico de nomeação de um serviço de diretório LDAP A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 45 Hélio Crestana Guardia - 2011 LDAP: atributos A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 46 Hélio Crestana Guardia - 2011 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 47 Hélio Crestana Guardia - 2011 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 48 Hélio Crestana Guardia - 2011 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas – Cap 5: Nomeação / 49 Hélio Crestana Guardia - 2011 Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Slide 47 Slide 48 Slide 49
Compartilhar