• Nenhum resultado encontrado

Uma característica interessante para RSSF é a capacidade de reconfiguração em tempo de execução. Essa reconfiguração pode ser simples, com a mudança de alguns parâmetros, ou complexa, com a mudança de toda a aplicação. Muitos estudos tem sido feito com esse intuito,

como a elaboração de novos protocolos para habilitar a reconfiguração (BAPAT; ARORA,2006).

7.3.1

Maté

Maté (LEVIS; CULLER,2002), um interpretador bytecode construído sobre o TinyOS,

propõe um esquema de reprogramabilidade de aplicações a partir de ajustes de parâmetros para obter atualizações de programas completos. Ele é um componente do TinyOS que é colocado no topo de vários componentes do sistema, dentre eles os nós sensores e a camada de rede.

Os programas desenvolvidos para o Maté são divididos em cápsulas com capacidade para 24 instruções. Este limite permite que uma cápsula possa ser transmitida em único pacote do TinyOS, e dessa forma, programas maiores podem ser compostos de múltiplas cápsulas,

7.3. SISTEMAS ADAPTATIVOS PARA RSSF 107 facilmente injetáveis na rede. Cada código da cápsula contém informações sobre seu tipo e número de versão.

Maté define quatro tipos de código de cápsula: para o envio de mensagens, para recepção de mensagens, de tempo e de sub-rotinas, que permitem programas mais complexos. Estas cápsulas podem se auto propagar através da RSSF a partir de uma simples instrução. As instruções contidas nas cápsulas ocultam o modelo assíncrono e o tratamento de concorrência do TinyOS.

Outra característica importante do Maté é sua capacidade de atualização dos programas na rede. Quando esse sistema recebe uma versão mais recente de uma cápsula de um tipo específico do que a existente, ele executa a instalação. Após um nó executar a cápsula, ela pode ser transmitida para outros nós vizinhos. De tempos em tempos, o novo código é disseminado pela da rede, via broadcast.

7.3.2

Impala

O ImpalaLIU; MARTONOSI (2003), um middleware adaptável para RSSF, propõe

uma camada assíncrona baseada em eventos que utiliza módulos de programas (agentes móveis) compilados em instruções binárias. Ele garante adaptação da aplicação em tempo de execução e pode discernir automaticamente ajustes necessários dos parâmetros ou da aplicação. Novos protocolos podem ser conectados a qualquer momento e a alternância entre os protocolos podem ser realizados sempre que necessário.

O Impala adota um sistema baseado no módulo com um número de versão, onde cada aplicação contém o seu número. Antes de realizar as atualizações de software, os nós sensores primeiro trocam os índice dos módulos dos aplicativos, e em seguida, apenas solicitam os módulos com mudanças de índice para a transmissão, economizando largura de banda. Um módulo de programa, que antes de ser transmitido é compilado em instruções binárias, não será vinculado ao programa principal para a instalação até que toda a atualização esteja concluída.

Impala fornece adaptação de aplicações em tempo de execução pelo seu modelo de arquitetura, e garante a segurança contra erros de programação. O middleware Impala tem uma abordagem autônoma, é auto-organizável e utiliza mecanismos para escolher e alternar entre protocolos adequados. Ele usa atualizações usando pequenos módulos e apresenta pouca sobrecarga de transmissão.

7.3.3

Durin

Durin (MARQUES; SILVA TEÓFILO; ROSA,2013), um ambiente para apoiar o desen-

volvimento, manutenção e implantação de aplicativos para RSSF, tem como objetivo fornecer uma solução para atualização de software dos nós sensores em tempo de execução. Ele utiliza um compilador para programação de alto nível para o desenvolvimento de aplicações para RSSF,

RONAN; ROSA,2009), além de um gerenciador para enviar atualização de aplicações para os nós sensores.

A TinyReef é uma máquina virtual baseada em registro (register-based) para RSSF construída para TinyOS. Por ser uma arquitetura register-based, em vez de um baseado em pilha, programas exigem menos instruções para realizar uma tarefa. Desta forma, o programa torna-se menor, reduzindo o custo interpretação da máquina virtual.

O fluxo de desenvolvimento do Durin consiste nas seguintes etapas, que vão da compila- ção do código à sua interpretação pela máquina virtual:

 O primeiro passo é compilar o código-fonte de uma linguagem em alto nível para a

linguagem suportada pelo TinyReef.

 O próximo passo consiste em converter o arquivo gerado pelo compilador em um

arquivo mais compacto, removendo partes desnecessárias para a interpretação. Isso é feito para reduzir a quantidade de dados transmitidos pela rede, diminuindo assim o consumo de energia.

 Em seguida, existe a transmissão de dados da aplicação a ser interpretada pelo

TinyReef.

 Por fim, o último passo é a interpretação da aplicação pelo TinyReef.

7.3.4

KSpot

+

No trabalho deANDREOU et al.(2014), os autores desenvolveram um framework que

otimiza o uso da RSSF, combinando componentes de balanceamento de carga, minimização de recepção de dados ineficientes e um módulo de processamento de consultas, que utiliza processamento semântico.

Para realizar tal tarefa, os autores otimizaram a eficiência da rede através da combinação de 3 fatores:

 Balanceamento da topologia da rede, que equilibra a carga de trabalho de cada nó

sensor através de construção de topologias mais eficientes.

 Módulo de balanceamento de carga, que minimiza as ineficiências de recepção de

dados, sincronizando os intervalos de atividade de rede de sensores.

 Módulo de processamento de consultas, que suporta semântica processamento de

consultas semânticas avançadas.

7.3.5

Discussão Sobre os Trabalhos

Alguns trabalhos que comentam sobre sistemas adaptativos em Rede de Sensores Sem Fio foram comparados com a SITRUS e seus resultados foram sumarizados na Tabela 7.3.

7.4. CONSIDERAÇÕES FINAIS 109

Tabela 7.3: Sumário da Discussão sobre Sistemas Adaptativos para Rede de Sensores Sem Fio

Toda a Aplicação Reconfiguração Paramétrica Reconfiguração por Módulos Processamento Fora da RSSF Processamento Semântico dos Dados

Preocupação com o Consumo de Energia SITRUS * * * * Maté * * * Impala * * * Durin * * * KSpot+ * * *

Assim como o Maté, a SITRUS suporta adaptação dinâmica a partir de ajustes de parâmetros e tem uma preocupação com a economia de energia. Mas, diferentemente do Maté, a adaptação na SITRUS pode ser feita de forma individual nos nós da rede, e não apenas da rede como um todo.

O Impala é um middleware adaptativo, assim como o RAMSES. A diferença entre ambos está na forma da atualização. Enquanto no Impala existe a possibilidade da mudança completa da aplicação, através da transmissão de seus módulos pela rede, no RAMSES só existe a possibilidade da mudança de parâmetros da aplicação ou do próprio middleware. No entanto, o Impala não suporta heterogeneidade em termos de plataforma de hardware, sendo projetadas para executar apenas em HP/Compac iPAQ Pocket executando Linux.

O Durin utiliza uma máquina virtual, a TinyReef, para auxiliar na atualização de software que ocorre em tempo de execução. A utilização de uma arquitetura baseada em registros torna as aplicações menores, mas com um processamento mais alto para decodificação das instruções em relação à utilização de uma arquitetura baseada em pilha. Como a codificação para o TinyReef é realizada fora da RSSF e transmitida pelo gerenciador, o processo torna-se menos dispendioso para a RSSF. O Durin e a SITRUS se assemelham no objetivo de reconfigurar o nó sensor em tempo de execução e de ter parte do seu processamento fora dos nós sensores, mas trabalhando de formas distintas para realizarem seus objetivos.

Por fim, no KSpot+, mesmo com um ganho nas reduções de consumo de energia

apresentados na pesquisa, todas as etapas para economia de energia são processadas pelos nós sensores, além de que a ontologia apenas é utilizada para realização das consultas, sem utilizá-la para reconfigurar a rede.

7.4

Considerações Finais

Este capítulo apresentou os principais trabalhos relacionados com a SITRUS. Diversos trabalhos foram apresentados e as principais características descritas. Por fim, estes trabalhos foram comparados, ressaltando-se as principais diferenças entre eles.

8

Conclusão e Trabalhos Futuros

Este capítulo apresenta as conclusões e as principais contribuições dessa tese, bem como seus aspectos mais relevantes. Além disso, serão destacadas as limitações existentes e os trabalhos futuros a serem realizados em cima dessa linha de pesquisa.

8.1

Conclusão

Este trabalho apresentou um mecanismo de economia para Rede de Sensores Sem Fio (RSSFs) baseado em uma infraestrutura semântica, chamada de SITRUS. Ela tem por obje- tivo reduzir o consumo de energia a partir do uso de um middleware orientado a mensagens com serviço de reconfiguração paramétrica, chamado de RAMSES, e do Módulo de Processa- mento Semântico da Informação, chamado de SIP. Com SITRUS, os dados tem enriquecimento semântico e compartilhamento de dados sem ambiguidades a partir do uso de ontologias.

O RAMSES é o responsável pelo transporte de dados dos nós sensores, que são enviados para o SIP para instanciação e processamento correto na ontologia desenvolvida para a SITRUS. O RAMSES é a parte da infraestrutura que controla todo o software executado nos nós sensores e além disso, cuida dos mecanismos de distribuição de dados, que é baseado em um modelo publish/subscribe. Quanto ao SIP, é um módulo usado para comunicação entre as RSSFs e a parte semântica da infraestrutura, que tem por objetivos gerar a base de dados semântica e gerir o processo de tomada de decisões, que servem de base para o processo de reconfiguração dos nós sensores.

Como apresentado pela avaliação experimental utilizada para avaliar o consumo de energia e apresentar também a quantidade de memória utilizada pelos aplicações, dentro do que foi proposto, a SITRUS atende bem as necessidades de controle do consumo de energia, mostrando que sua implementação é mais eficiente utilizando esse tipo de Infraestrutura do que o envio de pacotes individuais em uma taxa constante com a antena sempre ligada, além dos benefícios da utilização de serviços de middleware em aplicações e semântica nos dados transmitidos pela rede. Além disso, observou-se que existe espaço suficiente para implementação de novos serviços, devido ao uso de memória apresentada nos experimentos.