• Nenhum resultado encontrado

3.4 Soluções Envolvendo a SITRUS

3.4.4 Economia de Energia

A última solução envolvendo a SITRUS é o seu mecanismo de economia de energia, que está implementado em todos os seus módulos, desde a tomada de decisão fora da RSSF, o sistema de consultas a partir de uma base de dados semântica e o esquema de reconfiguração paramétrica para os nós sensores.

Além disso, o RAMSES foi desenvolvido utilizando-se do conceito de baixo consumo

de energia proporcionado pelo TinyOS (LEVIS et al.,2005), onde a antena fica acessível apenas

em momentos controlados pela aplicação, que também pode ter seu tempo de acessibilidade alterado pelo esquema de reconfiguração da Infraestrutura.

Outro ponto a ser observado é o modelo de distribuição assíncrona de passagem de men- sagens desenvolvida para o RAMSES, que é o mais adequado para um modelo de disseminação de dados, o que contribui para o gerenciamento de energia.

3.5

Considerações Finais

Este capítulo descreveu os principais detalhes sobre a Infraestrutura Semântica para Rede de Sensores Sem Fio (SITRUS). No início do capítulo, foi exposta uma visão geral do seu funcionamento, a fim de contextualizar e apresentar melhor a sua importância. A seguir, os diferentes cenários de uso da Infraestrutura foram discutidos. Depois, foi apresentada a sua arquitetura e como as partes se comunicam para formar a SITRUS. Por fim, foram descritas as funcionalidades a partir da arquitetura definida e dos cenários de uso.

49 49 49

4

RAMSES: Middleware Ciente de Reconfi-

guração para Rede de Sensores Sem Fio

Este capítulo apresenta o RAMSES (acrônimo em inglês para Reconfiguration Aware

Middleware for Wireless Sensor Networks) (BISPO; ROSA; CUNHA,2014), uma parte impor-

tante da SITRUS, que é responsável pelo transporte de dados e gerenciamento de serviços das aplicações que são executadas nos nós sensores. Dentre os serviços oferecidos pelo RAMSES, o serviço de reconfiguração é o mais importante e é baseado em mensagens enviadas pelo Módulo de Processamento Semântico da Informação (SIP).

As próximas seções descrevem o funcionamento do RAMSES de forma mais detalhada. Primeiro, uma visão geral será apresentada para contextualizar a sua importância. Em seguida, será discutida como sua arquitetura e suas camadas se comunicam para formar o RAMSES. Depois, a implementação da arquitetura é descrita a partir de suas funcionalidades e diagramas. Por fim, são discutidas as considerações finais do RAMSES.

4.1

Visão Geral

Middleware Ciente de Reconfiguração para Rede de Sensores Sem Fio (RAMSES) é

um middleware orientado à mensagem para RSSF. Ele foi desenvolvido para interagir com a

Camada de Dados das Redes de Sensoresda SITRUS. Assim, o RAMSES é o responsável pelo

transporte de dados, pelo gerenciamento de serviços disponibilizados às aplicações executadas nos nós sensores, além de executar os mecanismos de reconfiguração desses nós sensores.

Devido à escassez de recursos, tais como memória, processamento, armazenamento e energia, desenvolver um projeto de middeware para RSSF não é uma tarefa trivial. Ao contrário das plataformas de middleware tradicionais, que possuem diversos serviços, o projeto de middleware para RSSF inclui um número reduzido deles, por exemplo, o serviço de agregação de dados e reconfiguração. Mesmo tendo limitações de hardware e serviços reduzidos, os benefícios da utilização de middleware em um cenário tão complexo como são as RSSFs se

Um projeto de middleware para RSSF deve sempre considerar as restrições impostas pelo hardware e mecanismos internos dos sistemas operacionais, a fim de esconder essas complexidades dos desenvolvedores de aplicações. Entretanto, como o desenvolvimento de um middleware deve suportar e otimizar uma grande classe de aplicações, o “tradeoff ” entre

o grau de generalidade do middleware e o grau de especialização devem ser explorados (YU;

KRISHNAMACHARI; PRASANNA,2004).

Nesse contexto, o RAMSES aparece como uma alternativa aos sistemas de middleware para RSSF, por apresentar um serviço de comunicação orientado a mensagens, serviços de gerenciamento de recursos com preocupações constantes na economia de energia e um serviço de reconfiguração paramétrica, baseado em informações processadas e transmitidas por uma infra- estrutura semântica. Desta forma, os serviços providos pelo RAMSES atendem às necessidades das aplicações e se adequam aos ambientes das RSSFs e da SITRUS.

O RAMSES foi construído para nós sensores que executam o TinyOS (LEVIS et al.,

2005), utilizando assim seu modelo de execução orientado a componentes, o que facilita o

desenvolvimento.

As próximas seções detalham o funcionamento de cada uma das etapas do processo de desenvolvimento do RAMSES, bem como descrevem a implementação de cada umas das etapas.

4.2

Arquitetura

A arquitetura do RAMSES, apresentada na Figura 4.1, é uma arquitetura em 3 camadas, com funcionalidades distintas entre elas, mas que se comunicam oferecendo serviços umas para as outras. De acordo com a arquitetura apresentada, o RAMSES está posicionado acima do sistema operacional, encapsulando seus detalhes internos e fornecendo serviços de alto nível para a aplicação do nó sensor.

4.2.1

Camada de Transporte

A Camada de Transporte lida com os detalhes de transporte de dados providos pelo TinyOS, encapsulando assim toda a complexidade de transmissão de dados do sistema operacio- nal. Por ser a camada que lida com a comunicação, é a responsável pela transmissão e aquisição das mensagens do Módulo de Processamento Semântico da Informação (SIP).

Toda vez que uma nova mensagem é enviada do SIP para um nó sensor ou uma deter- minada RSSF, esta mensagem é encaminhada da Camada de Transporte para a Camada de Serviços, para que possa ser processada pelo serviço de reconfiguração. No sentido inverso de comunicação, sempre que um novo dado de sensoriamento é gerado e está pronto para ser transmitido, a aplicação envia esses dados para o middleware para serem processados, até chegar na Camada de Transporte e ser enviado.

4.2. ARQUITETURA 51

Figura 4.1: Arquitetura do Middleware RAMSES

4.2.2

Camada de Distribuição

A Camada de Distribuição é a camada que lida com o modelo de comunicação publish/- subscribe, publicando as mensagens e intermediando a comunicação entre os demais serviços do middleware. Além disso, ela permite a comunicação entre clientes remotos de forma transparente, abstraindo a localização, protocolo de comunicação e hardware utilizado.

O serviço de comunicação do RAMSES é baseado em um modelo assíncrono de pas-

sagem de mensagens (RADHIKA; MALARVIZHI,2012;YONEKI,2003), mais adequado ao

modelo de disseminação de informações requerido pelas aplicações de RSSF. Neste tipo de comunicação, um fornecedor de informação (publisher) publica as mensagens que são enviadas a um ou mais assinantes (subscribers).

A comunicação assíncrona é a principal vantagem deste modelo de comunicação no contexto de ambientes ad-hoc e difuso, como são as RSSFs. Além disso, uma extensão do

modelo foi utilizada, permitindo que mensagens sejam associadas a tópicos (SOUTO et al.,2005).

Neste caso, para economizar energia, somente as mensagens referentes aos tópicos assinados são transmitidas.

A escolha do modelo publish/subscribe deve-se ao fato de que as aplicações em RSSFs são essencialmente baseadas em eventos (event-driven), o que sugere um modelo de comunicação mais adequado do que o modelo request/response tradicional, que é síncrono. Dessa forma, um

modelo de comunicação mais adequado para disseminação de informações (SILVA et al.,2014;

KRISHNAMACHARI; ESTRIN; WICKER,2002b) é o modelo assíncrono, necessário para

A quantidade de informações geradas em uma rede fisicamente dispersa com inúmeros nós sensores trocando dados é imensa. Neste cenário, nem sempre alguns nós sensores e algumas estações base estão ativos na rede ao mesmo tempo e se comunicando. Dessa forma, nem sempre a comunicação síncrona, baseada no modelo request/response é adequada para satisfazer a tais requisitos.

O modelo de distribuição publish/subscribe será apresentado com maiores detalhes na Seção 4.3.4.

4.2.3

Camada de Serviços

A Camada de Serviços fornece serviços a outras camadas do middleware e às aplicações. O serviço de agregação de dados, por exemplo, permite a redução do volume de dados na rede.

Com a agregação de dados, cada nó sensor espera por uma quantidade de mensagens pré-determinada (valor configurável), agregando todos os dados recebidos durante esse período, e em seguida os envia para Camada de Distribuição, para que possam ser associados ao tópico correto, sendo transmitidos pela Camada de Transporte.

O serviço de agregação tem a finalidade de reduzir o número de transmissões na rede, agregando seus dados a partir de alguma função pré-determinada, por exemplo a média, moda ou mediana. A implementação deste serviço no RAMSES é parametrizada, deixando para o serviço de reconfiguração a quantidade de dados que serão agregados e qual função de agregação a ser escolhida.

Outro serviço fornecido é o serviço de reconfiguração. Todas as mensagens enviadas do SIP para um nó sensor são processadas por esse serviço, modificando assim o comportamento da aplicação executada, da RSSF ou do próprio middleware. Como exemplo, podemos citar a alteração da taxa de amostragem ou o período que cada nó pode ficar com a antena ligada.

Todas as ações de reconfiguração visam reduzir o consumo e são baseadas em mensagens enviadas pelo SIP, a partir do processamento semântico de mensagens enviadas pelos nós sensores das RSSFs. Assim, todo o processo de tomada de decisão para alterar determinado comportamento fica fora da RSSF, economizando energia.

4.3

Implementação

O projeto do RAMSES foi realizado visando a sua customização e extensão de forma simples. Portanto, toda a implementação foi dividida em interfaces e componentes com respon- sabilidades distintas, que possibilitam uma fácil adição de novos recursos, seguindo a arquitetura proposta para o RAMSES. Para prover essas características, o middleware é baseado no modelo de componentes do TinyOS, usando a linguagem de programação nesC, uma linguagem orientada a eventos usada para construir aplicações para o TinyOS.

4.3. IMPLEMENTAÇÃO 53 preocupação constante em reduzir o consumo de energia a partir de seus componentes ou como aproveitar melhor os componentes já existentes, alterando apenas parâmetros em seus algoritmos.

Assim, todos os serviços desenvolvidos para o RAMSES são parametrizáveis, de forma que o serviço de reconfiguração possa atuar e alterar o comportamento do nó sensor durante sua execução. Outro procedimento importante utilizado visando a economia de energia foi a utilização de mecanismos de baixo consumo para a transmissão de dados, tendo em vista que o

componente de hardware que mais consome energia é a antena (ANASTASI et al.,2009), com

suas transferências e aquisições de dados.