5.3 SOBRE M IDDLEWARE PARA MANETS
5.3.3 Baseados em Eventos
Nesta seção serão considerados sistemas de middleware baseados no modelo de comunicação usando eventos como o publicação/assinatura (publish/subscribe) definido por Bates [Bates et al. 1996].
STEAM
O STEAM [Meier et al. 2002] introduz o conceito de middleware baseado em evento no ambiente de redes móveis ad hoc e satisfaz algumas limitações específicas relacionadas às MANETs. Uma delas é que os componentes de middleware dos serviços de evento não podem ser localizados em máquinas físicas independentes. Ainda, alguns componentes podem deixar de ser localizados e apresentarem problemas quanto à disponibilidade, consistência, cobertura e recursos computacionais. O STEAM utiliza o modelo
publish/subscribe e não requer um cluster fixo e dedicado de servidores de eventos para operar diferentemente do modelo P2P [Parameswaran et al. 2001]. Significativamente, o modelo publish/subscribe permite que aplicações consumidoras se inscrevam em um tipo de evento particular e que aplicações publicadoras se inscrevam em eventos de publicação. Tendo principal motivação para sua construção o domínio de aplicações em áreas geográficas como o sistema de gerenciamento de tráfego de veículos, o STEAM usa um modelo de comunicação de grupo baseado em proximidade, de forma geográfica ou funcional. Os aspectos geográficos especificam a área onde a informação é válida e os dispositivos móveis dentro do alcance de propagação. Os aspectos funcionais representam os interesses comuns de produtores e consumidores baseados no tipo de informação propagada entre eles. Usando estes dois aspectos os dispositivos móveis se descobrem e se comunicam, sendo suportados três filtros de eventos: assunto, proximidade e conteúdo. O uso de filtros de conteúdo permite as aplicações consumidoras expressarem consultas de granularidade fina, filtrando as notificações dos eventos. Já os filtros de proximidade e de assunto são utilizados pelas aplicações publicadoras objetivando uma maior escalabilidade do middleware, pois os eventos somente entregues as aplicações consumidoras se ambos coincidirem.
Levantando-se as características do STEAM sobre os critérios de análise, tem-se:
CM1. A sobrecarga causada pela presença de filtros diminui o suporte a
heterogeneidade de dispositivos.
CM2. Não provê um mecanismo eficiente de descoberta de recursos para
o ambiente de alta dinamicidade.
CM3. Uma boa escalabilidade é obtida somente quando os hosts estão
dentro da proximidade do grupo de comunicação, sendo comprometida quando os hosts não estão pertos o suficiente.
CM4. O complexo processamento de filtro de conteúdo compromete a
limitação de recursos dos dispositivos.
CM5. Devido à falta de mecanismos para o tratamento em caso de falhas
JMS on Mobile Ad-Hoc Network
Definido pelos autores como o primeiro middleware Java construído para MANETs, o JMS on Mobile Ad-Hoc Network [Vollset et al. 2003] provê um protocolo de roteamento multicast, através da semântica publish/subscribe, que mapeia os tópicos de interesse em endereços multicast. Este middleware tem como base o modelo de mensagens do JMS (Java Message System) [Hapner 2002], tratando as características relativas à configuração e ao transporte de mensagens. Sobre as características de confiabilidade e coordenação foi usado o padrão da especificação e não foram tratadas de início. A adaptação do JMS provê uma semântica de tópicos do tipo não persistente em que todos os clientes, que participam de uma troca de mensagem, tenham uma cópia idêntica do arquivo de configuração com informações de endereços (para realização de
lookup). Isto tira a necessidade da intervenção de um administrador de rede para configuração dos hosts. Quanto ao transporte das mensagens, a implementação de um protocolo de roteamento multi-hop no nível de aplicação foi realizada com base no ODMRP (On Demand Multicast Routing Protocol) por causa de seu bom desempenho e controle dos pacotes durante os estudos de simulação. Esse protocolo, chamado Jomp (Java on-demand multicast routing
protocol), foi integrado ao Arjuna Message Service (Arjuna-MS)19 (antigo
Hewlett Packard Message Service), o qual provê o transporte de mensagem baseado ou não em serviço. Os testes foram simulados no JNS20 (Java Network
Simulator) e executados em rede fixa cabeada no ambiente real.
Levantando-se as características do JMS on Mobile Ad-Hoc Network sobre os critérios de análise, tem-se:
CM1. A presença do Arjuna-MS exige dispositivos mais potentes e a
heterogeneidade de dispositivo fica comprometida também por não objetivar a plataforma Java ME.
CM2. A configuração estática das informações para lookup limita a
utilização do middleware em ambiente de alta dinamicidade, além do que o
middleware somente foi testado em rede fixa.
CM3. A escalabilidade também é comprometida pela necessidade de
configuração prévia do arquivo de configuração.
CM4. Apesar da eficiência do protocolo de roteamento utilizado a
presença do Arjuna-MS exige dispositivos de recursos maiores, o que compromete a limitação de recursos dos dispositivos.
CM5. A abertura é bastante limitada, pois não há a possibilidade de
adaptação de outro protocolo.
EMMA
O EMMA (Epidemic Messaging Middleware for Ad Hoc Networks) [Musolesi et al. 2005] faz uso de um padrão para middleware orientado a mensagem usado em sistemas tradicionais, o JMS [Hapner 2002], adaptando-o para o cenário de MANETs. A maior vantagem desse uso é permitir aos desenvolvedores de aplicação o uso dos mesmos padrões nos sistemas móveis e dinâmicos além de permitir a interoperabilidade entre os ambientes de rede fixa
19 Site do mantenedor do Arjuna Message Service: http://www.arjuna.com/ 20 Site da ferramenta de simulação JNS: http://jns.sourceforge.net/
134 Sobre Middleware para MANETs
e ad hoc. O EMMA é um middleware orientado a mensagem que explora o JMS originalmente projetado para redes nômades através da mudança da passagem de mensagens e pela adição do mecanismo de roteamento epidêmico que facilita a entrega de mensagens. Desta forma, assim como no JMS, as aplicações podem usar a comunicação ponto a ponto ou publish/subscribe. Na primeira, a melhor localização das filas de mensagens é determinada pelo processo de negociação que é dependente da aplicação, o qual torna o middleware ciente de contexto. Para permitir que hosts recebam mensagens mesmo não estando no raio de alcance, o protocolo de roteamento epidêmico assíncrono é usado. Cada host possui um buffer com as mensagens criadas e as mensagens recebidas. Na segunda, as mensagens dos tópicos são trocadas pelo grupo de membros assinantes usando um protocolo assíncrono ou epidêmico.
Levantando-se as características do EMMA sobre os critérios de análise, tem-se:
CM1. Suporta heterogeneidade de dispositivo por ser implementado em
Java, porém não suporta interoperabilidade entre plataformas.
CM2. O modelo de comunicação assíncrona baseado no JMS facilita na
questão do tratamento da mobilidade.
CM3. A escalabilidade é afetada pelo baixo desempenho do protocolo
epidêmico.
CM4. O baixo desempenho do protocolo epidêmico quanto ao número de
réplicas causa uma utilização demasiada de recursos.
CM5. Não provê outro mecanismo de descoberta de recurso além do
epidêmico comprometendo a abertura.