• Nenhum resultado encontrado

Adaptações de Redes Baseadas em DHT para Suportar Nós Heterogêneos e Instáveis

N/A
N/A
Protected

Academic year: 2021

Share "Adaptações de Redes Baseadas em DHT para Suportar Nós Heterogêneos e Instáveis"

Copied!
12
0
0

Texto

(1)

Adaptações de Redes Baseadas em DHT para Suportar Nós

Heterogêneos e Instáveis

Luciana Pereira Oliveira, Ramide Dantas, Auristela Silva, Djamel Sadok

Centro de Informática – Universidade Federal de Pernambuco (UFPE) Caixa Postal 7851 – Cidade Universitária – 50.732-970 – Recife – PE

{lpo, ramide, auristela, jamel}@gprt.ufpe.br

Abstract. Ubiquitous networks were proposed to address issues as mobility,

heterogeneity and self-configuration. However, current proposals present limited scalability. Overlay networks based on Distributed Hash Tables (DHTs) provide good scalability but were not designed for mobile and heterogeneous nodes. This paper presents the concept of Stable Society and its use on Chord algorithm. Such concept was called Stable Society over Distributed Hash Table (SSDHT) and aims at adapting DHT for ubiquitous networks. Preliminary results showed that SSDHT was more efficient in network maintenance than original Chord on presence of instable and heterogeneous nodes.

Resumo. Redes ubíquas tratam questões como mobilidade, heterogeneidade e

auto-configuração. No entanto, as propostas atuais apresentam limitações quanto à escalabilidade. Redes overlay baseadas em DHT - Distributed Hash Table - fornecem escalabilidade, mas não foram desenvolvidas para ambientes heterogêneos e com mobilidade. Nesse contexto este artigo apresenta um novo conceito denominado Sociedade Estável. A aplicação deste no algoritmo Chord tem como objetivo a adaptação de DHT para redes ubíquas, sendo denominada de SSDHT - Stable Society over DHT. Resultados preliminares mostraram que o SSDHT foi mais eficiente em manter a rede que o Chord original na presença de nós instáveis e heterogêneos. *

1. Introdução

A popularização dos dispositivos móveis e o uso de equipamentos heterogêneos têm agravado problemas no anúncio e busca de informações. No futuro, espera-se que qualquer usuário possa utilizar diversas tecnologias para trocar informações sem interrupções. Por exemplo, um usuário poderá utilizar um serviço através de um computador pessoal no escritório com uma interface Ethernet. Ao final do expediente o dispositivo do usuário descobre que existe o mesmo serviço dentro da rede de um transporte coletivo e com melhor qualidade, resultando no uso do serviço sem interrupções. Neste cenário é possível identificar as características de mobilidade, troca de tecnologia de acesso, descoberta dinâmica de serviços e adaptações da comunicação.

(2)

O cenário acima é típico de computação ubíqua cujo objetivo é permitir o uso da computação de forma transparente para o usuário por meio de configuração, auto-organização e adaptações de acordo com o contexto do usuário. Alguns desafios deste cenário são a localização e o encaminhamento de informações para equipamentos heterogêneos, trocados dinamicamente. Além disso, é importante tratar questões de mobilidade, instabilidade e escalabilidade. A instabilidade existe na ocorrência de desconexões e conexões intermitentes, de inserções e remoções de dados, e de trocas de máquinas durante o acesso a serviços.

Nesse contexto há alguns frameworks, tais como Jini1 e UPnP2, os quais oferecem as funcionalidades de descoberta e configuração automática de nós. Um grande problema para essas redes é a escalabilidade, já apresentado em [Choi 2005] como uma importante questão de pesquisa.

Devido especificamente a essa ineficiência em relação à escalabilidade, o trabalho [Choi 2005] propõe um mecanismo escalável baseado em DHT - Distributed

Hash Table – para descoberta de serviço em redes ubíquas. Por outro lado, existe a

dificuldade em aplicar diretamente algoritmos DHT, pois estes algoritmos prevêem que todos os nós na rede possuem as mesmas capacidades físicas (por exemplo, memória) para gerenciar os conjuntos de chaves e roteamento. Também se pressupõe que o comportamento dos nós é estável, ou seja, após sua entrada na rede DHT a freqüência de saídas e de entradas será praticamente irrelevante. Caso contrário, a instabilidade dos nós gerará um elevado número de mensagens de atualizações na rede, o que dificulta o roteamento de mensagens, conseqüentemente a escalabilidade [Hsiao e King 2005], [Heer 2006], [Pucha 2004], [MacQuire 2006] e [Futai 2004].

Observando a necessidade de algoritmos escaláveis para redes ubíquas e a dificuldade das redes DHT em tratar instabilidade e heterogeneidade, este artigo propõe um novo conceito denominado de Sociedade Estável (ver seção 2). Este conceito foi aplicado no algoritmo Chord, sendo o novo algoritmo denominado SSDHT - Stable

Society over DHT – cujo objetivo é apresentar um conjunto de nós instáveis e

heterogêneos em uma sociedade (nó) homogênea e estável. Essa nova abordagem permite que algoritmo SSDHT apresente um comportamento escalável em ambiente ubíquo. Os resultados obtidos mostraram um crescimento linear de atualizações para o SSDHT e exponencial para o Chord, quando submetidos à entrada de um conjunto de nós. Essa eficiência ocorreu no SSDHT devido à topologia hierárquica e às distintas classificações dos nós para evitar a propagação de atualizações para toda rede DHT.

É importante destacar que o trabalho apresentado neste artigo tem foco na descrição do conceito de Sociedade Estável e no algoritmo SSDHT. O algoritmo apresentado foi implementado para fins da realização de avaliações preliminares, porém a proposta continua em desenvolvimento e uma análise de desempenho mais profunda ainda será necessária, incluindo a formalização e estudo analítico do algoritmo.

1 Jini Network Technology - http://www.jini.org

(3)

As outras seções deste artigo estão estruturadas como segue. A Seção 2 detalha a definição de Sociedade Estável e apresenta a motivação da aplicação do novo conceito em redes DHT. A Seção 3 apresenta o algoritmo de SSDHT aplicado ao Chord. A Seção 4 apresenta a validação da declaração sobre o desempenho do SSDHT. A Seção 5 compara o conceito de Sociedade Estável e SSDHT com trabalhos relacionados. Finalmente, é apresentado o resumo das contribuições na Seção 6.

2. Sociedade Estável em Redes DHT

2.1 Visão Geral

O conceito de Sociedade Estável especifica um método para agrupar nós instáveis e heterogêneos como forma de apresentá-los como um nó estável e homogêneo. Esse conceito baseia-se no trabalho [Tenhunen 2005] e no significado da palavra Sociedade - grupo de indivíduos que vivem por vontade própria sob um regulamento e que se obrigam a reunir recursos para consecução de um fim comum [Ferreira 1991]. A proposta [Tenhunen 2005] define três tipos de nós (gateway, host e clusterheader) em uma rede móvel, objetivando o número de mensagens de atualizações no processo de gerenciamento das tabelas de roteamento, garantindo maior estabilidade e escalabilidade.

Semelhante a proposta [Tenhunen 2005], foi definido um modelo hierárquico e classes de atuação na sociedade para tomada de decisões. Diferente de [Tenhunen 2005], cada participante da sociedade pode estar em um ou mais níveis de hierarquia ao mesmo tempo, uma vez que podem implementar uma ou mais classes de atuação. Dessa forma, uma sociedade pode ser formada por apenas um indivíduo que implementa todas as classes de atuação, mas uma sociedade não pode existir se alguma das classes não existir na sociedade. As classes de atuação foram definidas como: guardas, mensageiros, operários e líderes.

Os guardas são as entidades mais estáveis, por exemplo, uma interface Ethernet. Por isso são os pontos de entrada e saída na sociedade. Também podem ser vistos como ponto de conexão entre as sociedades. Eles não recebem um endereçamento virtual dos líderes e apenas possuem o endereço real cuja tecnologia os líderes compreendam.

Os mensageiros são responsáveis por descobrir caminhos alcançáveis para um determinado operário e por encaminhar mensagens quando solicitados. Além disso, se um mensageiro não encontra um caminho alcançável para o operário, ele tem a função de encaminhar as mensagens para os líderes e notificá-los que o operário não está alcançável. Eles não recebem um endereçamento virtual dos líderes, apenas possuem o endereço real de acordo com a tecnologia em que os líderes e operários compreendam.

Os operários possuem a função de realizar a manutenção de rotas virtuais, rotear mensagens para os mensageiros e armazenar informações da sociedade. São indivíduos semelhantes a um host do trabalho [Tenhunen 2005] (entidade mais simples da sociedade), uma vez que não tomam decisões para organizar a sociedade. De acordo com sua capacidade, podem solicitar aos mensageiros para notificarem aos líderes a sua saída da sociedade, ou mesmo, solicitar a redução de suas funções de roteamento e

(4)

armazenamento. Os operários possuem um endereçamento virtual formado pelo prefixo dos líderes mais um identificador único dentro da sociedade estável.

Os líderes possuem a responsabilidade de organizar o agrupamento dos nós semelhante à entidade clusterhead da referência [Tenhunen 2005] e são caracterizados pela maior capacidade de memória e processamento, bem como estão conectados aos mensageiros e guardas. Eles organizam a sociedade por meio da atribuição e revogação das classes de atuação de acordo com as características dos nós em determinado instante. Os líderes só assumem o papel do roteamento e armazenamento de informação quando um operário se ausenta da sociedade, ou quando este não tem recursos suficientes para executar suas funções. Os líderes determinam o prefixo do endereçamento virtual da sociedade estável. Esse identificador é único na visão interna e externa de um conjunto de sociedade (líderes) interligadas, conseqüentemente cada operário e líder possuem identificadores únicos no conjunto de sociedades.

Essas classes de atuação são organizadas de maneira hierárquica com níveis interno (dentro da sociedade) e externo (entre sociedades) para amenizar instabilidades geradas pelas conexões intermitentes e heterogeneidade. No nível externo, existe a comunicação virtual (overlay) entre líderes e a comunicação física (camada de rede) entre os guardas. No nível interno existe a comunicação virtual entre operários e líder da mesma sociedade, e a comunicação física entre mensageiros. A diferença entre guardas e mensageiros é que cada tipo possui uma reação específica quando não encontram uma rota para um destino d. Quando um guarda não encontra uma rota, ele deve informar ao líder que não existe rota para d. Quando o nó é to tipo mensageiro, este deve informar ao líder da sociedade que o nó d não está presente na Sociedade Estável e solicitar que o líder assuma o papel do operário ausente na sociedade estável.

2.2 SSDHT

A aplicação do conceito de Sociedades Estáveis em algoritmos DHT tem como meta a adaptação de DHT para oferecer a localização, o endereçamento e o armazenamento de informações de maneira estruturada e escalável em rede ubíquas. Essa adaptação foi denominada de Stable Society over DHT (SSDHT).

A vantagem de aplicar Sociedades Estáveis em redes DHT é a preservação das vantagens de DHT que são a escalabilidade, o balanceamento de carga através da função

hash distribuída, a alta disponibilidade e o ajuste automático da organização do

roteamento para refletir novas entradas ou falhas de nós. Além disso, SSDHT trata das seguintes características de redes ubíquas:

• Heterogeneidade: a aplicação das classes de atuação do conceito de Sociedade Estável em um algoritmo DHT faz com que as restrições de cada dispositivo sejam respeitadas, pois cada dispositivo pode indicar quanto pode contribuir com seus recursos. Além disso, a utilização de mensageiros e guardas no nível físico, e líderes e operários no nível virtual da rede permitem uma maior flexibilidade e integração das heterogêneas tecnologias de acesso.

(5)

• Mobilidade: as atualizações geradas pelas conexões e desconexões intermitentes não são disseminadas pelos níveis externos e internos da rede SSDHT. Os líderes são os únicos notificados quando os nós entram e saem da sociedade, evitando atualizações na rede externa. Os líderes também são responsáveis por assumir o papel dos operários que estão ausentes da rede, evitando atualizações na rede interna. Além disso, o líder e o guarda SSDHT são implementados por nós mais estáveis.

• Adaptações de acordo com o contexto do usuário: cada usuário pode ser considerado como uma Sociedade Estável e as modificações do seu contexto são representadas pelas entradas e saídas de dispositivos heterogêneos, pelas freqüentes conexões e desconexões, e pela inserção e remoção dinâmica de serviços. Portanto, pode-se considerar que SSDHT realiza adaptações para tratar das mudanças no contexto do usuário - heterogeneidade e mobilidade.

Os conceitos que envolvem roteamento virtual, endereçamento/nomeação e adaptações da rede DHT realizados pelos líderes e operários foram implementados através da modificação do algoritmo Chord. Isto permitiu avaliar o desempenho da solução SSDHT em um cenário predominantemente instável. A implementação está detalhada na seção 3. O roteamento físico (mensageiros e guardas) foi apresentado de maneira mais sucinta, indicando apenas quando ele precisa ser utilizado. Optou-se por omitir o pseudo-código e privilegiar a descrição das funções para uma melhor leitura.

3. Implementação do SSDHT Utilizando o Algoritmo Chord

O algoritmo SSDHT é o resultado da modificação das operações do Chord e da estrutura denominada tabela finger. A referência [Stoica 2003] descreve detalhadamente quando se deve utilizar essas operações. Por isso, esta seção apenas apresenta as modificações das operações do Chord para incorporar o conceito de Sociedade Estável. No entanto, este artigo não especifica como o roteamento da camada de rede é realizada pelos mensageiros e guardas, apresentando apenas quando estas classificações de nós são utilizadas pelo SSDHT. Portanto, esta seção apresenta as modificações das funções do Chord que são executadas pelos líderes e operários: roteamento virtual, gerenciamento dos caminhos virtuais, entrada de novos nós e recuperação da rede quando ocorrem falhas ou entradas e saídas de nós da rede.

3.1 Visão Geral

Ao longo da seção 3 será possível observar que o SSDHT separa o endereço do nó em prefixo e o sufixo para gerar uma topologia hierárquica. Devido à importância da função

hash na topologia, roteamento e armazenamento de chaves, ela foi modificada para

tratar dessas partes do endereço de acordo com o tipo do nó - líder ou operário.

Nas próximas seções, o termo “chave” será utilizado para referenciar o valor original da informação, bem como o valor gerado pela função hash. De maneira similar, “nó” referenciará tanto o nó, como o seu valor determinado pela função hash. Os termos “líder” e “operários” serão utilizados quando for necessário especificar o tipo de nó na SSDHT. O termo “id” referenciará o identificador da chave ou nó. Sucessor é o nó com

(6)

id posterior a um determinado id. Predecessor é o nó com id anterior a um determinado id. Tabela finger é a tabela de roteamento dos líderes e operários com valores fixos de entrada. Esses valores, fixos da tabela do nó com valor n, possuirão m entradas e valores (n+2k-1) mod 2m, onde m é o número de bits para definir o prefixo ou sufixo do endereço do nó. Se o nó é do tipo líder, então o intervalo do valor de k é 1≤k≤valor do prefixo para cada índice de entrada k. Se o nó é do tipo operário, então o intervalo do valor de k é 1≤k≤valor do sufixo para cada índice de entrada k. Por fim, o termo “tabela

virtual_finger” referencia a tabela do operário ausente e gerenciada pelos líderes. 3.2 Função de Hash

A função de hash do Chord tem a meta de criar identificadores (incluindo, o endereço virtual único do nó) de maneira circular. Este objetivo é semelhante na função de hash do SSDHT, mas esta não gera valor unitário, ou melhor, a modificação da hash produz dois valores correspondentes a prefixo e sufixo. Esses valores são interpretados diferentemente pelos tipos de classificação do nó, permitindo a existência de um roteamento e gerenciamento hierárquico. Este modelo de roteamento hierárquico é visualizado na figura 1(b) que apresenta sub-círculos internos (anel de operários) e um sub-circulo externos (anel de líderes). Os guardas e mensageiros não são visualizados na figura 1, pois estão abaixo desse overlay, executando funções da camada de rede.

(a) Endereçamento - 13 nós armazenando 5 chaves. (b) Roteamento. Figura 1 Topologias do SSDHT

Esta topologia hierárquica do roteamento e as classificações dos nós explicam a importância de saber se a função será aplicada a um nó ou a uma informação a ser armazenada. Embora a topologia de endereçamento do SSDHT seja apresentada de maneira circular como a figura 1(a), a função de hash é aplicada de maneira diferente de acordo com o tipo do nó a fim de facilitar a topologia hierárquica de roteamento como a figura 1(b). Os líderes e operários utilizam partes diferentes da chave para rotear: os líderes utilizam o prefixo; e os operários utilizam o sufixo. Portanto, é necessário definir corretamente o prefixo e sufixo dos nós.

Cada identificador (prefixo e sufixo) possui tamanho de m-bit totalizando um tamanho de 2m-bit. O líder determina o prefixo de todos os identificadores na sua sociedade estável a partir da aplicação da função de hash em seu endereço físico e possui sufixo igual ao valor zero em m-bit. Já os operários determinam apenas o sufixo do seu endereço virtual, aplicando a função hash em seu endereço físico e adquirindo o prefixo do seu líder. Dessa forma, a determinação do id de um nó respeita uma hierarquia, em que o líder especifica o prefixo dos nós de sua sociedade. Porém, pode-se perceber na figura 1(a) que cada nó tem endereço virtual único e circular na rede.

(7)

A preocupação com o tamanho de m é desnecessária, devido à pré-verificação da existência do identificador do nó que deseja entrar na rede. No entanto, ainda não foi definida uma maneira para renegociar o id do nó que foi bloqueado, devido à existência de outro nó com mesmo id na rede. Então se o desejável é evitar que um nó seja bloqueado, deve-se colocar um valor alto para m, porque quanto maior for esse valor, menor será a probabilidade de bloquear a entrada de um nó na rede.

No anel existe um total de 4m identificadores, que podem ser representados como um único círculo, e cada sufixo e prefixo varia de 0 a 2m. Semelhante ao Chord, a chave

k é atribuída ao primeiro nó cujo id é igual ou segue valor de k no anel. Este nó é

denotado por sucessor(k), nó sucessor da chave k. Uma restrição é que o sucessor de um operário só será um nó do tipo operário, e o sucessor de um líder só será um nó do tipo líder. No restante deste artigo, o círculo maior será referenciado como Anel; os sub-círculos serão denominados de Sociedade e os identificadores serão únicos em ambos.

As figuras 1(a) e (b) mostram o SSDHT com m = 3, onde o anel tem 13 nós e armazena 5 chaves. O sucessor do nó 6.4 é outro operário cujo id é 6.3 e esses estão conectados ao líder 6.0. Seguindo conceito do Chord sobre sucessores, os responsáveis pelo armazenamento das chaves 6.1 e 6.2 é o nó 6.3, e o sucessor de 2.1 é o nó 2.1. Quando não existe uma sociedade com um determinado prefixo (por exemplo, 3 e 4), então o líder com prefixo sucessor a chave é responsável por essa, uma vez que a capacidade (por exemplo de armazenamento) do líder ou grupo de líderes é maior que a dos operários na rede SSDHT. Portanto o sucessor das chaves 4.1 e 3.3 é o líder 5.0.

A aplicação do conceito de Sociedades Estáveis na função hash foi projetada para evitar a propagação de atualizações na tabela hash, quando os nós entram e saem da rede. Porém, o algoritmo do Chord foi preservando quando existem entradas e saídas do último líder de uma sociedade, porque ele é essencial para permitir a existência da sociedade estável. Então quando uma sociedade s entra no anel, esta recebe um conjunto de chaves com valores que são predecessores a s. Quando a sociedade s deixa a rede, todas suas chaves são atribuídas para o sucessor de s.

No entanto, o Chord não foi preservando quando existem entradas e saídas de operários, porque existe a negociação entre o operário e os líderes. Os líderes assumem o papel dos operários ausentes, e quando os operários entram na rede, eles solicitam as chaves aos líderes. Dessa forma o SSDHT garante uma maior estabilidade global do sistema, mesmo quando existem instabilidades pontuais nas sociedades.

3.3 Localização da Chave

Semelhante ao Chord, o SSDHT mantém informações adicionais de roteamento para acelerar as buscas de informações, mas as funções relacionadas ao gerenciamento e ao roteamento foram modificadas. Como descrito anteriormente, 2m será o número de bits dos identificadores. A figura 2 apresenta a rede SSDHT aplicada ao Chord formada por quatro sociedades correspondentes aos líderes N1.0, N.2.0, N5.0 e N6.0, bem como um tabela de roteamento do líder N5.0 e operário N2.1. Pode-se observar que cada nó mantém m entradas na tabela denominada finger. A i-ésima entrada na tabela do nó n contém o id do primeiro nó que é sucessor de n por no mínimo 2i-1 no círculo de

(8)

identificadores. Porém, os líderes utilizam a tabela no roteamento externo e armazenamento de informações correspondentes ao prefixo do id. Os operários utilizam a tabela no roteamento interno e armazenamento de informações correspondentes ao sufixo do id. Os líderes também possuem outra tabela de tamanho variável com m.s entradas, denominada virtual_finger, onde s é a quantidade de operários ausentes que solicitaram a virtualização da tabela finger deles. A i-ésima entrada desta tabela contém o id do primeiro nó que é sucessor de operário s por no mínimo 2i-1 na sociedade.

Figura 2 Rede SSDHT Aplicada ao Chord

Este esquema tem duas importantes características. Primeiro cada nó armazena informações sobre apenas um pequeno número de outros nós, e sabe mais sobre nós próximos do que os outros que estão mais longes. Segundo, uma tabela finger do nó geralmente não contém informação suficiente para determinar diretamente o sucessor de uma chave k. Uma grande vantagem do SSDHT é que ts (tamanho da tabelas finger do SSDHT) será sempre menor ou igual ao tc (tamanho da tabela tradicional do Chord), porque quanto maior a diferença entre o número de operários e de sociedades estáveis, menor o valor de tc-ts que tende a zero e menor o número de hierarquias, ou seja, o SSDHT aproxima-se da topologia do Chord (único anel).

A operação localiza_sucessor do Chord usa a tabela finger e é executada de maneira diferente pelo nó n do tipo líder e operário. Se o nó for operário, primeiro ele verifica se o valor id pertence ao intervalo da sociedade - (prefixo.0 , prefixo.2m], porque se não estiver dentro deste intervalo, então a requisição é encaminhada para o seu líder. Se estiver nesse intervalo e o id é igual a n ou pertence ao intervalo (n,

successor], então a operação localiza_sucessor é finalizada. Caso contrário o nó n

procura na tabela finger pelo nó n’ cujo valor mais imediato precede id, e então utiliza o mensageiro para encaminhar uma mensagem de solicitação da execução da operação

localiza_sucessor em n’. A razão dessa escolha de n’ é que o mais próximo n’

provavelmente saberá informar sobre o id no anel.

A operação localiza_sucessor executada pelo líder, primeiramente, verifica se o

id não pertence ao intervalo da sociedade. Se id não pertencer ao intervalo, então o líder

realiza o roteamento externo, procurando na tabela finger pelo nó tipo líder n’ cujo valor mais próximo de id. Depois utiliza um guarda para encaminhar uma mensagem correspondente à função localiza_sucessor para n’. Caso contrário o líder procura na tabela virtual_finger pelo n’ cujo valor mais próximo de id. Depois utiliza mensageiros para encaminhar uma mensagem correspondente à função localiza_sucessor em n’. Porém, o próprio líder é responsável pelo id, se n’ não existir.

(9)

Portanto, desde que cada nó tem entradas finger na potência de dois intervalos em volta do identificador do círculo, cada nó pode encaminhar uma consulta no mínimo metade do caminho ao longo do resto da distância entre o nó e o identificador destino.

3.4 Falhas e Operações Dinâmicas

Na prática, o SSDHT e o Chord precisam de uma negociação entre os nós para manipularem com falhas e entrada ou a saída voluntária de nós. Por isso, esta seção descreve como SSDHT aplicado ao Chord manipula essas situações. É importante relembrar que o sucessor e o predecessor de um nó só pode ser um nó do mesmo tipo, por exemplo, o sucessor de operário, só pode ser outro operário da mesma sociedade.

O SSDHT tem que garantir que cada nó e entrada da tabela (finger ou

virtual_finger) apontem para o sucessor correto, a fim de garantir que as buscas de

chaves e o roteamento sejam executados corretamente, mesmo quando a rede é alterada. Isto é possível devido ao uso de um protocolo de estabilização (funções estabiliza,

fix_finger e check_predecessor) que é executado periodicamente pelos nós. Lembrando

que a alteração, gerada por saída e entrada de operários, é identificada pelos mensageiros e guardas, que reagem diferentemente, e corrigida pelo líder (ver seção 2).

Alterações na tabela finger podem ocorrer na criação de uma sociedade, entrada/saísa de operários nesta, bem como a entrada/saída de sociedade no Anel por meio do nó do tipo líder. Para criar uma sociedade, um líder l executa a função

criar_sociedade_estável que define os guardas e mensageiros da sociedade, inicializa a

tabela finger de l e configura o predecessor de l para valor nulo. Após essa criação, o operário op pode entrar na sociedade executando sua função join, que configura o predecessor de op para valor nulo, inicializa a tabela finger de op, indica aos mensageiros que o nó op está na rede e pergunta a um nó op’ o sucessor de op na sociedade. Para adicionar uma nova sociedade na rede de sociedades estáveis, o líder l executa a função join que configura o predecessor de l para valor nulo, inicializa a tabela finger de l, indica aos guardas sua presença na rede de sociedades e pergunta a um nó l’ o sucessor do líder l. No entanto, em ambas as operações join, se o sucessor do nó n é um nó com mesmo id de n, então é proibida a entrada do novo nó, porque existe no Anel um nó com mesmo id. Já a saída do último líder da sociedade obriga a execução de uma nova eleição de líder (ainda em estudo) ou a desconexão de todos operários, afetando apenas o anel de líderes identificado e corrigido pela estabiliza.

Na operação estabiliza, o nó n utiliza o mensageiro ou guarda para saber o predecessor de n.sucessor. Considerando que o n.sucessor retorna x, o nó n verifica se x deve ser o novo sucessor. Isto deverá ocorrer no caso do nó x entrar no sistema e x pertencer ao intervalo (n, n.sucessor]. Além disso, a operação estabiliza notifica ao

n.sucessor da existência de n, permitindo ao n.sucessor a atualização do predecessor de n.sucessor para n, somente se o predecessor de n.sucessor tem valor nulo.

A operação fix_finger executa a função localiza_sucessor (k) em cada k entrada da tabela finger do nó n, para certificar se o sucessor de k está correto. Enquanto que

check_predecessor configura o predecessor de n para valor nulo, quando o nó n for

(10)

Esse esquema de estabilização é garantido para adicionar nós em anéis internos e externos do SSDHT a fim de preservar a alcançabilidade dos nós, mesmo no caso de entradas concorrentes, perdas e reordenamento de mensagens. Este protocolo de estabilização não irá corrigir um sistema SSDHT que tenha se dividido. Se produzir esse erro, este caso pode ser detectado e reparado por amostragens da topologia.

4. Avaliação e Análise de Resultados

4.1 Configuração do Experimento

Para realizar a avaliação, escolheu-se a opção de implementar em Java o Chord para propiciar o completo domínio da implementação. Em seguida o algoritmo foi modificado através da aplicação do conceito de Sociedades Estáveis, semelhante à seção 3, e todos os processos de operários e líderes foram executados em uma mesma máquina. A avaliação compara o tempo para estabilização da rede e o número de mensagens do protocolo de estabilização (ver seção 3.4) até que a rede esteja estável. A rede é considerada estável quando todas as tabelas de roteamento estão com todos os valores corretos, após a inserção de novos nós. Um cenário que representa a entrada de 12 nós na rede foi configurado e executado em cada algoritmo. No entanto, a simulação foi previamente configurada para que o SSDHT apresentasse topologia final formada por 4 líderes e 8 operários. Além disso, a inserção dos nós no cenário do SSDHT seguiu a seguinte configuração – inicialmente foram adicionadas sociedades formadas por um líder e um operário até chegar um total de 4 sociedades (total de 4 líderes e 4 operários), depois um operário entra em cada sociedade até chegar um total de 12 nós (4 líderes e 8 operários) e estabilizar a rede SSDHT. Abstraíram-se os guardas e mensageiros, considerando-se que estão respectivamente na camada de rede do líder e do mensageiro. A seção 4.2 apresenta os resultados fundamentados na descrição deste experimento.

4.2 Impacto da Entrada de Nós no Roteamento

A figura 3 mostra o comportamento do SSDHT e Chord de acordo com a quantidade de nós utilizados para realizar a formação da rede. As mensagens contabilizadas no experimento são aquelas originadas pelo método localiza_sucessor. Essas mensagens são enviadas pelos dois algoritmos para manter a tabela de roteamento consistente com as mudanças na rede.

(a) Tempo de estabilização ( b ) Taxa de mensagens durante estabilização

Figura 3 Entrada de nós nas redes Chord e SSDHT

Portanto, quanto maior for o número dessas mensagens, mais instável será a rede. Nas figuras 3(a) e (b), o SSDHT apresentou um menor tempo e menor número de

(11)

mensagens, porque o conceito de Sociedades Estáveis permite a configuração de hierarquias para roteamento. Portanto a entrada de nós gera atualizações da tabela de roteamento sem propagação para toda rede DHT. Dessa forma, vários nós podem entrar de maneira simultânea sem afetar o roteamento global.

5. Trabalhos Relacionados

Existem disponíveis na literatura algumas propostas que usam abordagens do conceito de Cluster para o roteamento físico e para o roteamento lógico, visando melhorar a escalabilidade e tolerância a falhas das redes. Muitos trabalhos sugerem modificações nos algoritmos DHT para suportar a mobilidade. Outros propõem soluções para cenários com heterogeneidade, modificação de contexto e instabilidade.

No sentido de aplicação do conceito de Cluster no roteamento físico, o trabalho [Tenhunen 2005] agrupa nós fisicamente próximos em Clusters para reduzir o número de mensagens utilizadas no processo de gerenciamento das tabelas de roteamento. A definição de Sociedade Estável possui semelhanças com o conceito de Cluster utilizado por [Tenhunen 2005] cujos nós trabalham como sendo uma única entidade e define 3 classificações para os nós: clusterhead, host e gateways [Baker e Ephremides 1981]. No conceito de Sociedade Estável as duas primeiras classificações são semelhantes respectivamente aos líderes e operários, no entanto estes são aplicados no roteamento lógico. O conceito de gateways é subdividido em mensageiros e guardas responsáveis pelo roteamento físico, as quais se diferenciam pela estabilidade do link e comportamento quando identificam um caminho inalcançável.

Em termos de Cluster no roteamento lógico, o trabalho [Triantafillou 2003] aplica esse conceito ao algoritmo DHT para melhorar escalabilidade, mas não trata os problemas dos ambientes dinâmicos. Já [Futai 2004] aplica Cluster em DHT para amenizar problemas de heterogeneidade e instabilidade, por meio de decomposições de

Clusters e migrações de nós, quando a quantidade de nós for maior que uma constante

predeterminada. Sociedade Estável diferencia-se desses, pois define regras e classes de nós para evitar instabilidades globais e locais geradas pela decomposição dos Clusters.

Ainda no sentido de alterações em DHT, já existem trabalhos para suportar a mobilidade tais como [Heer 2006], [MacQuire 2006] e [Cramer e Fuhrmann 2005]. Em [MacQuire 2006] os nós com restrições são tratados como nós virtuais e não contribuem com a rede. Em [Cramer e Fuhrmann 2005] a proposta integra o algoritmo DSR com DHT, mas não trata da heterogeneidade, porque todos os nós estão em uma rede ad-hoc e com capacidade semelhantes. Já em [Heer 2006] diversos problemas encontrados em ambientes dinâmicos são abordados, assim como são apresentadas possíveis soluções. 6. Conclusões e Contribuições

Redes ubíquas são caracterizadas pela heterogeneidade e instabilidade, além do mais é desejável que sejam escaláveis. Por isso, existem propostas para descoberta de serviços baseadas em DHT para redes ubíquas. No entanto, não se pode aplicar DHT diretamente nesse contexto. Isso motivou a especificação, a implementação e avaliação do SSDHT que usa o conceito de Sociedades Estáveis para agrupar nós instáveis em uma topologia hierárquica, onde cada nó tem uma ou mais funções na rede DHT – líder, operário,

(12)

mensageiro e/ou guarda. Isso resultou no tratamento de nós heterogêneos e instáveis em redes DHT, e uma possível solução para descoberta de serviços em redes ubíquas.

A entrada de diversos nós de forma concorrente pode ser vista como um requisito crítico para essas redes e suportado de maneira satisfatória pelo SSDHT, quando comparado ao Chord. Os resultados da avaliação mostraram um menor tempo para estabilização da rede e a redução no número de mensagens de atualização das tabelas de roteamento durante a entrada de novos nós. Embora este artigo apresente o conceito de Sociedades Estáveis aplicado no algoritmo Chord, este conceito pode ser facilmente estendido para ser construído em outros sistemas DHT.

Está em andamento o detalhamento do conceito de Sociedades Estáveis, sendo especificada a auto-organização e negociação entre os nós, por meio da apresentação de um protocolo para interação entre os nós que formarão uma sociedade de forma autônoma e dinâmica. Além disso, tem-se como objetivo continuar as avaliações do algoritmo SSDHT. Neste último, as descrições de implementação e avaliação de desempenho estão sendo detalhadas para avaliar não só a eficiência do algoritmo, mas também parâmetros que caracterizem heterogeneidade e adaptações na rede. Pretende-se analisar o impacto da instabilidade nas buscas e recuperação de informações.

Referências

Baker, D. J. e Ephremides, A. (1981). “The architectural organization of a mobile radio network via a distributed algorithm”. IEEE Transactions on Communications.

Choi, K.H. et al (2005). “D2HT: directory federation using DHT to support open scalability in ubiquitous network”. PerCom Workshops.

Cramer, C. e Fuhrmann, T. (2005). “Proximity Neighbor Selection for a DHT in Wireless Multi-Hop Networks”. Peer-to-Peer Computing.

Ferreira, A. B. H. (1991). ”Dicionário Aurélio Básico da Língua Portuguesa”.

Futai, Z. et al. (2004). “SHT: Adaptive DHT Topology Model Based on Session Heterogeneity for Dynamic Network”. ICACT.

Heer, T. et al (2006). “Adapting Distributed Hash Tables for Mobile Ad Hoc Networks”. Mobile P2P.

Hsiao, H.-C. e King, C.-T. (2005). “Mobility churn in DHTs”. MPPS.

MacQuire, A. et al (2006). “Performance Analysis of Stealth DHT with Mobile Nodes”. PERCOMW.

Pucha, H. et al (2004). “How to Implement DHTs in Mobile Ad Hoc Networks?”. NMC Stoica, I. et al (2003). “Chord: A scalable peer-to-peer lookup protocol for internet

applications”. IEEE/ACM Transactions on Networking.

Tenhunen, J. et al (2005). “Stability-Based Multi-Hop Clustering Protocol”. PIMRC. Triantafillou, P. (2003). “Peer-to-Peer Network Architectures: The Next Step”.

Referências

Documentos relacionados

Os objetivos específicos foram: revisar os efeitos das condições instáveis na propulsão na natação a partir de estudos que compararam as condições estáveis e instáveis;

(grifos nossos). b) Em observância ao princípio da impessoalidade, a Administração não pode atuar com vistas a prejudicar ou beneficiar pessoas determinadas, vez que é

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

No entanto, maiores lucros com publicidade e um crescimento no uso da plataforma em smartphones e tablets não serão suficientes para o mercado se a maior rede social do mundo

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política

•   O  material  a  seguir  consiste  de  adaptações  e  extensões  dos  originais  gentilmente  cedidos  pelo 

13 Assim, a primeira fase no momento da dispensa de um MSRM é a validação da receita, por isso, independentemente do modo de disponibilização da prescrição, a receita

O romance Usina, diferentemente dos demais do conjunto da obra pertencente ao ciclo-da-cana-de-açúcar, talvez em função do contexto histórico em que se insere, não