sexta-feira, 14 de março de 2008

Um modelo de arquitetura em anel baseado na implementação Pastry


Introdução ao artigo

Com o surgimento da abstração Distributed Hash Table (DHT) foram resolvidos alguns problemas das redes p2p como localização de nós e de arquivos. Esse mecanismo sugere que um nó ativo fornece primitivas para enviar uma mensagem a uma chave. Cada nó mantém uma tabela de roteamento, formada pelor Id’s dos nós mapeados a seus endereços IP. A rede é organizada de forma que cada nó mantenha uma pequena tabela de roteamento de tamanho constante. Alguns sistemas de implementação do DHT são CAN, Chord, Kademlia, Pastry e Tapestry.

O objetivo deste artigo é propor uma infra-estrutura que forneça uma solução para alguns problemas que não são atingidos pelos sistemas acima, como por exemplo, publicação, recuperação e Binding de serviços. Publicação e recuperação fornecem mecanismos que permitem que o usuário busque e instale apenas serviços de seu interesse e Binding provê todo o código necessário para instalação de um serviço em outro nó.

Os sistemas atuais citados acima são ineficazes para estes problemas, uma vez que, exigem que cada nó da rede suporte o mesmo conjunto de aplicações e que elas estejam pré-instaladas em todos os nós.

O artigo usa a implementação Pastry como exemplo de protocolo p2p estruturado.

Pastry

Pastry direciona mensagens para o nó o qual o id é numericamente mais perto da chave de destino numa estrutura circular que podemos chamar de anel. Cada nó mantém um conjunto de folhas e uma tabela de roteamento. Cada folha no conjunto possui o endereço para o próximo nó no sentido horário. A tabela de roteamento é organizada em 32 linhas e 16 colunas de maneira que o número de nós populados na tabela seja apenas logaritmo de 16 na base n.
Em um procedimento normal de roteamento, um nó pastry direciona a mensagem para o nó onde o id compartilha com a chave de destino um prefixo que é pelo menos um dígito mais longo que o compartilhado pela chave e o id do nó que está enviando. Se não houver nenhum nó que possua um id com essa característica, a mensagem é direcionada para o nó que compartilha o prefixo com a chave tão longo quanto o do nó que está enviando.

Para cada serviço é fornecido um service id, e quando um nó descobre que está numericamente perto da chave de destino, segundo o mecanismo citado acima, ele entrega a mensagem para o serviço local que corresponde ao service id da mensagem. Isso permite a realização de cache nos nós intermediários por onde passa a mensagem destinada a um serviço.

O anel Universal

Primeiramente cada nó deve obter um id fornecido por uma entidade de controle, após isso, para cada id é atribuído um certificado, uma chave pública e uma privada para garantir a segurança. Em seguida cada nó precisa obter o endereço do seu nó de contato no anel. Através de um multicast de endereço IP ou outras formas de flooding controlado.

Serviços

O primeiro serviço oferecido é o de armazenamento persistente de pares chave-arquivo para um acesso eficiente aos arquivos através de suas chaves. Esse serviço apoiará o armazenamento de informações sobre outros serviços, como o código necessário para rodar e a lista de nós que fornecem um determinado serviço.

O segundo é um multicast de serviço em nível de aplicação.

O terceiro é a busca distribuída por serviços, que permite que usuários façam uma busca textual pelo serviço desejado através de palavras-chave.

O quarto serviço é a publicação e descoberta de serviços, onde cada serviço criado possuirá um certificado de serviço que conterá um nome e uma descrição textual de cada serviço, além disso, esse certificado também terá um conjunto de code keys onde cada code key identificará uma implementação diferente do serviço criado.

Opinião

A arquitetura proposta permite a publicação, a descoberta e a vinculação de serviços através de máquinas interligadas em um “anel universal” de forma que não seja mais necessário que todas as máquinas tenham disponibilidade para rodar todo o conjunto de aplicações e nem que estas aplicações estejam pré-instaladas em todas as máquinas. Isso facilita o uso de serviços de forma que uma pessoa dotada de um celular possa executar processos extremamente necessários em um dado momento, porém, custosos para dispositivos móveis.

O artigo deixou um pouco a desejar no que diz respeito às entidades gerenciadoras responsáveis pelos certificados citados acima, como elas reconheceriam uma falha em um dos nós ou o impacto da entrada e da saída de um nó no anel, e ainda, a arquitetura tem como alvo a implementação Pastry, e não ficou explicitado como seria o seu comportamento com outras implementações do DHT como o Chord ou o CAN.


Fonte : M. Castro, P. Druschel, A-M. Kermarrec and A. Rowstron, "One ring to rule them all: Service discovery and binding in structured peer-to-peer overlay networks", SIGOPS European Workshop, France, September, 2002. [ pdf.zip ].

Link: http://research.microsoft.com/~antr/pastry/pubs.htm (O terceiro artigo desta página).

Thiago R. Nunes / 105040501
Sistemas Distribuidos
UCAM

Nenhum comentário: