• Nenhum resultado encontrado

3 AMBIENTE VIRTUAL COLABORATIVO

4.2 Estudo Comparativo de Protocolos ALM

4.2.2 Abordagens ALM

Protocolos ALM organizam seus membros no grupo em duas topologias, a topologia de dados e a topologia de controle. Os membros que são pares (vizinhos) na topologia de controle trocam mensagens periódicas de atualização para identificar a queda ou saída de um membro do grupo e reparar a árvore multicast caso necessário. A topologia de dados em geral é um subconjunto da topologia de controle e identifica o caminho de dados dos pacotes multicast na sobre-camada. Pela grande conectividade entre membros na topologia de controle, essa topologia é chamada de malha (mesh), enquanto a topologia de dados é chamada de árvore (tree).

Dependendo da seqüência na construção dessas topologias, protocolos ALM podem ser classificados em três diferentes categorias: primeiro-malha (mesh-first), primeiro-árvore (tree-first) ou abordagem implícita (implicit approach).

Na abordagem mesh-first, membros dos grupos são organizados entre si em uma topologia de sobre-camada em malha, existindo caminhos alternativos entre um par de membros. Cada membro na topologia calcula um caminho único para cada outro membro da topologia. Assim, uma árvore de raiz específica em cada membro, pode então ser criada utilizando um protocolo bem conhecido de encaminhamento no caminho reverso (RPF) usado por alguns protocolos IP Multicast, por exemplo, o DVMRP (WAITZMAN, 1998).

Já protocolos baseados na abordagem tree-first, constroem de forma distribuída diretamente uma árvore compartilhada de entrega de dados. Em seguida, cada membro descobre alguns outros membros da sobre-camada que não são seus vizinhos e então, estabelece e mantém enlaces de controle para eles. O caminho de entrega de dados somado aos novos enlaces de controle estabelecidos formam a topologia de controle da abordagem mesh-first.

Protocolos que usam abordagem implícita criam uma topologia de controle com algumas propriedades específicas. O caminho de entrega de dados está implicitamente definido na topologia de controle por alguma regra de encaminhamento de pacotes, a qual impõe as propriedades da topologia de controle para criar caminhos multicast livres de loop. Assim, na abordagem implícita, a malha

e a árvore são simultaneamente definidas pelo protocolo, dispensando a interação entre membros para isso.

4.2.2.1 ABORDAGEM MESH-FIRST

BANERJEE (2002b) descreve o protocolo ALM Narada (CHU, 2000) como representante da abordagem mesh-first.

O protocolo ALM Narada foi um dos primeiros a demonstrar a possibilidade de implementação de funcionalidade multicast na camada de aplicação.

Em Narada se um membro deseja participar de um grupo, ele deve receber por meio de algum mecanismo uma lista contendo membros participantes do grupo. O novo membro então envia mensagens JOIN a um subconjunto de membros dessa lista. O procedimento JOIN é finalizado quando um dos membros da lista aceita o novo membro como vizinho na malha.

Mensagens periódicas de atualização são propagadas dentro da malha e o novo membro vai aprendendo sobre todos os vizinhos na malha. Assim, cada membro do grupo conhece e divulga mensagens a todos os demais membros gerando um alto overhead de controle O(N2), onde N é o número de membros na malha.

BANERJEE (2002b) ainda fala sobre a formação do caminho de entrega de dados a cada membro em Narada, obtido usando um bem conhecido protocolo de encaminhamento no caminho reverso (RPF - Reverse Path Forwarding). BANERJEE (2002b) cita também como Narada procede para reparar possíveis partições dentro da malha, além de como Narada suporta refinamento da malha - periodicamente a malha pode ser re-calculada a fim de se obter melhores caminhos na topologia de dados segundo uma métrica determinada.

4.2.2.2 ABORDAGEM TREE-FIRST

A abordagem tree-first BANERJEE (2002b) possui dois outros protocolos como seus representantes: Yoid (FRANCIS, 1999) e HMTP (ZHANG, 2002).

Yoid, assim como Narada, foi um dos primeiros protocolos ALM. Yoid cria a árvore do caminho de dados tendo controle direto sobre vários aspectos da árvore como: out-degree de membros (limite máximo de vizinhos por membro) e escolha dos vizinhos na árvore.

Em Yoid um membro que deseja participar do grupo faz o requerimento de uma lista de membros a um RP (Rendezvous Point). Um RP é um sistema final que pode possuir diferentes funções de gerenciamento no suporte a protocolos ALM. De posse dessa lista, o membro então é responsável por encontrar um pai mais apropriado dentro da árvore para se anexar. Periodicamente cada membro busca encontrar outros potenciais pais dentro da árvore para melhor se anexar dentro dela.

O protocolo HMTP (ZHANG, 2002) é outro protocolo tree-first. Ele possui similaridades com o protocolo Yoid, porém, suas diferenças não interferem nas características ALM abordadas aqui por BANERJEE (2002b). Assim, não entraremos em detalhes sobre sua implementação.

4.2.2.3 ABORDAGEM IMPLÍCITA

BANERJEE (2002b) descreve quatro protocolos para essa abordagem: Nice (BANERJEE, 2002a), Scribe (CASTRO, 2002), Bayeux (ZHUANG, 2001) e CAN- Multicast (RATNASAMY, 2001b).

O protocolo Nice está descrito no capítulo 2 deste trabalho enquanto Scribe é abordado no capítulo 4 e CAN-Multicast no capítulo 5.

O protocolo Bayeux é construído no topo de um sistema P2P chamado Tapestry (ZHAO, 2001). A infra-estrutura de sobre-camada da Tapestry é similar à infra- estrutura de sobre-camada da Pastry (ROWSTRON, 2001). Assim, Bayeux e Scribe

são similares. Porém, Bayeux e Scribe diferem basicamente na forma como seus caminhos de entrega de dados são construídos.

4.2.3 ESTUDO COMPARATIVO

Na tabela 4.1, BANERJEE (2002b) compara diferentes esquemas de multicast na camada de aplicação. Nela, os protocolos tree-first (Yoid (FRANCIS, 1999) e HMTP (ZHANG, 2002)) criam árvores compartilhadas, enquanto todos os demais protocolos criam árvores de origem específica. No entanto, as árvores de origem específicas criadas não são necessariamente a melhor para cada origem de dados, pois a flexibilidade da escolha de uma árvore específica a cada origem é limitada pela estrutura da topologia de controle.

TAB. 4.1 Comparação entre Diferentes Esquemas ALM

Esquema Abordagem Tipo da árvore Tam. Máx. do Caminho Grau Máx. da Árvore Overhead de controle médio Narada Mesh-first Origem-específica Ilimitado Aprox. Limitada O(N) HMTP/Yoid Tree-first Compartilhada Ilimitado O(grau máx.) O(grau máx.) Bayeux/Scribe Implicita Origem-específica O(log N) O(log N) O(log N) CAN-multicast Implicita Origem-específica O(dN1/d) constante constante

NICE Implicita Origem-específica O(log N) O(log N) constante

Fonte: (BANERJEE, 2002b)

BANERJEE (2002b) também mostra na tabela 4.1 a medida do tamanho do caminho pelo número de saltos em nível de aplicação e o grau máximo de um membro no caminho de entrega de dados na árvore. Essas métricas estão indiretamente relacionadas com as métricas de stress e strech as quais são facilmente analisadas por diferentes protocolos. A quantidade de saltos em nível de aplicação é ilimitada tanto para a abordagem mesh-first e tree-first.

Em Yoid e HMTP, membros escolhem por si só seus graus, e assim determinam um limite superior para o grau na árvore. Embora Narada defina uma noção de grau máximo na malha, algumas vezes ele relaxa esse grau e permite que novos membros se juntem à malha. Outras vezes, em alguns casos, novos membros vão sofrer uma longa latência antes de encontrarem um membro na malha com grau abaixo do máximo para se anexarem. Visto isso, BANERJEE (2002b) define o grau da árvore para Narada como aproximadamente limitado.

O overhead de controle médio é alto para protocolos mesh-first, pois, nessa abordagem, cada membro deve trocar informação de estado com cada outro na malha. Já o overhead de controle médio nos membros é constante tanto para NICE quanto para CAN-Multicast.

Baseado nas informações acima, BANERJEE (2002b) faz as seguintes inferências na aplicabilidade dos protocolos para diferentes aplicações:

• Protocolos mesh-first são eficientes para grupos multicast pequenos, enquanto protocolos implícitos escalam bem com o aumento do tamanho do grupo;

• Protocolos tree-first são menos adequados para aplicações sensíveis à latência (ex. tempo real), mas são úteis para transferência de dados quando há alta-banda;

• Protocolos implícitos são particularmente benéficos para tamanhos de grupos grandes e podem ser adaptados em aplicações sensíveis à latência (devido seu pequeno tamanho no caminho) e em aplicações de alta-banda (devido ao baixo grau da árvore).

4.3 OUTROS TRABALHOS

Em HOSSEINI (2003) há uma abordagem um pouco diferente de KNUTSSON (2004) quanto às propostas ALM. Em HOSSEINI (2003) uma proposta própria ALM é apresentada para aplicações específicas de vídeo-conferência 3D, enquanto em KNUTSSON (2004) propostas ALM existentes são comparadas.

Documentos relacionados