3. Arquitetura do Sistema
Por possuir todas essas características apresentadas na seção anterior, as RSSFs podem ser aplicadas para solucionar problemas antes intratáveis em lugares inacessíveis ou de difícil acesso. Mas tudo isso depende da solução de alguns desafios. Dentre os quais o fato de ser uma rede sem-fio descentralizada (ad- hoc) necessitando de algoritmos especiais de roteamento. Tais algoritmos não podem ser os mesmo usados nas redes tradicionais devido às limitações energética e de processamento dos nós. Os algoritmos de roteamento para RSSFs devem ter como base informações sobre a energia disponível no sistema e os gastos inerentes da transmissão.
Citamos esse desafio dos algoritmos de roteamento para mostrar a necessidade de uma arquitetura específica para o sistema de redes de sensores sem-fio. Pesquisando na literatura por arquiteturas para RSSFs encontramos algumas propostas e escolhemos para esse trabalho tratar da arquitetura MANNA, desenvolvida pelo projeto SensorNet [9], e TinyOS[13], desenvolvida pela Universidade de Berkeley.
 
3.1 MANNA
Desenvolver uma solução de gerenciamento para um caso em que há centenas ou milhares de nós com características particulares não é tarefa fácil. Os três desafios principais àconstrução de uma solução em RSSF:
  • restrição de recursos
  • dependência da aplicação
  • influência do ambiente no comportamento da rede
 
 
Para lidar com esta complexidade a arquitetura MANNA estudou e organizou os vários contextos em diferentes áreas funcionais de gerenciamento(configuração, falhas, segurança, desempenho e contabilização) e níveis de gerência(elemento de rede, gerenciamento de elemento de rede, gerenciamento de rede, gerenciamento de serviço, gerenciamento de negócio). Essa arquitetura também conta com a utilização de modelos que representam o estado da rede (mapa de energia, topologia, conectividade, e modelos não determinísticos) e leva em conta as funcionalidades específicas das RSSFs (estabelecimento ou configuração, manutenção, sensoriamento, processamento, comunicação) também conhecidas como ciclo de vida de uma RSSF.
Esse estudo deu origem a uma abstração em três dimensões como mostrado na figura abaixo:
graphic
- Abstrações da Arquitetura MANNA -
Desta forma, situações complexas do gerenciamento de RSSFs são decompostas em sub-problemas menores. E através do uso desta organização são definidos serviços, funções e modelos de gerenciamento. Um esquema de construção do gerenciamento a partir da definição de serviços e funções e da utilização de modelos é exibido na figura a seguir:
graphic
- Relacionamento entre serviços, funções e modelos na arquitetura MANNA -
Note que um serviço pode utilizar mais de uma função, dois serviços podem especificar funções em comum, e algumas funções devem utilizar modelos para obter informações do estado da rede sobre algum aspecto.
Alguns serviços definidos pela arquitetura MANNA são o de estabelecimento da rede, de manutenção da rede, de processamento, de comunicação, de segurança e o serviço de QoS (para descrição completa desses serviços consultar a tese de referência [12]).
Algumas funções definidas pela arquitetura MANNA são: função de deposição de nodos, configuração de parâmetros de operação da rede, estado da rede, topologia, conectividade da rede, agregação, mapa de energia, localização dos nodos, determinação da área de cobertura da rede, controle da densidade de nodos, estado operacional do nodo, estado administrativo dos nodos, estado de uso dos nodos, custo de comunicação, sincronização, consumo de energia, nível de energia, verificação da área de cobertura da rede, verificação do tráfego, monitoração da Qualidade de Serviço, controle de QoS, integração com o usuário, orientação operacional, cooperação, análise de energia, e correlação de informação (para descrição completa dessas funções consultar a tese de referência [12]).
Alguns modelos de informações do estado da rede definidos pela arquitetura MANNA são: área de cobertura, topologia da rede, conectividade da rede, produção, energia residual, padrão de utilização, custo, modelos estruturais, modelos de cooperação, e modelos não determinísticos(para descrição completa desses modelos consultar a tese de referência [12]).
O objetivo do gerenciamento das RSSFs éestabelecer um conjunto de serviços de gerenciamento que visem promover a produtividade da planta e dos recursos disponíveis integrando as diferentes funções de gerenciamento e garantindo o nível de qualidade estabelecido para os serviços providos pela RSSF.
A partir dessa abstração a arquitetura MANNA propõe três arquiteturas de gerenciamento:
  • Arquitetura de Informação: reponsável por suprir modelos e mapas com as informações necessárias ao gerenciamento da rede. Alguns dos modelos definidos são mapa da área de cobertura (sensoriamento e comunicação), topologia da rede, conectividade da rede, produção, mapa de energia residual, padrão de utilização, custo.
  • Arquitetura Funcional: proposta para planejar entidades de gerenciamento (gerentes e agentes), serviços e funções. As informações necessárias para realizar os serviços são obtidas da arquitetura de informação.
  • Arquitetura Física: define como a informação de gerenciamento é trocada entre as entidades de gerenciamento. Pode ser vista como a implementação da arquitetura funcional. A arquitetura física é dividida em camadas:
    • camada de aplicação: consiste nos protocolos de gerenciamento e consulta da RSSF. Alguns deles são SNMP – Simple Network Management Protocol; CMIP – Common Management Information Protocol; WBM – Web Based Management; ANMP – Ad- hoc Network Management Protocol
    • camada de transporte: para todos os protocolos descritos na camada de aplicação a recepção correta dos dados das mensagens não é assegurada numa RSSF. Entrega confiável de dados ainda é uma questão de pesquisa em RSSF.
    • camada de rede: deve ser projetada considerando eficiência energética, e que RSSFs são centradas em dados.
    • camada de enlace: responsável pelos quadros de transmissão de dados, controle de acesso ao meio (MAC) e controle de erro. Na maioria das vezes é usado o protocolo CSMA/CA como controle de acesso ao meio.
    • camada física: responsável pela seleção de frequência de transmissão, geração da portadora, detecção de sinal, modulação, e criptografia de dados.
 
3.2 TinyOS
Objetivos de Projeto:
  • levar em conta os projetos atuais e semelhantes de nós e redes
  • ser flexível para permitir um diverso conjunto de implementações e aplicações, e a variação de hardware e software
  • contornar os desafios específicas de RSSF
 
A abordagem TinyOS
  • modelo de cooperação dirigido por eventos
    • processamento eficiente descentralizado para sistemas em rede
    • arquitetura “micro-threaded” sem paralelismo de hardware
  • framework modular eficiente
    • hardware de fácil abstração
    • reutilização de módulos de software comuns, através da manutenção de interfaces consistentes
  • componentes núcleo
    • inicialização processador/hardware
    • “Scheduler” para gerenciar tarefas
    • “RunTime” para facilitar interrupções de tarefas e eventos, proporciona robustez
    • Tamanho de código: menos de 500 bytes!
 
TinyOS é um sistema operacional baseado em componente (CBSE - Component- Based Software Engineering), livre e de código aberto. A plataforma tem como alvo as redes de sensores sem fio.
As aplicações TinyOS são escritas em nesC, um dialeto da linguagem de programação C otimizado para limitação de memória característica das RSSF. Os programas são construídos seguindo uma engenharia de software baseada em componentes (CBSE – Component based software engineering), componentes podem ser Módulos ou Configurações. Módulos implementam interfaces com funções (comandos e eventos), e Configurações conectam interfaces.
TinyOS provê componentes para abstrações comuns tais como comunicação, roteamento, sensoriamento, atuação e armazenagem.
Com isso, é possível perceber que interfaces podem ser fornecidas ou usadas pelos componentes. As interfaces fornecidas consistem na funcionalidade que o componente provê ao aplicativo; as interfaces usadas representam a funcionalidade necessária ao componente para executar o seu trabalho. Pode- se dizer que os componentes Módulos são interfaces bi- direcionais, eles especificam um conjunto de funções que serão implementadas pelo componente provedor da interface (comandos) e outro conjunto que seráimplementado pelo componente usuário da interface (eventos).
graphic
- Framework Modular do TinyOS -
 
A programação de um nó sensor é facilitada pelo TinyOS, pois o sistema disponibiliza um conjunto de serviços, na forma de interfaces e componentes, que implementam a maioria dos serviços necessários a uma aplicação desenvolvida para RSSF, como por exemplo:
  • Rádio, MAC, Mensagens, Roteamento: componentes que implementam a pilha de protocolos do TinyOS
  • Interface de Sensores: Interface para diversos tipos de sensores que podem ser usados no TinyOS
  • Gerência de Energia: Aplicações técnicas de economia de energia
  • Depuração: Fornece componentes e ferramentas que permitem a depuração de código
  • Temporizadores: Componentes de acesso a relógio
Funcionamento do nó sensor em cooperação dirigida por evento:
  • Eventos
    • Engatilhados por hardware
    • Executar até a completação, nunca se apropriar antecipadamente
  • Tarefas
    • Colocadas em fila
    • Executar até a completação, mas têm menor prioridade do que os eventos
    • Pode dormir quando a fila estávazia
 
Outro exemplo de funcionalidade do TinyOS é a capacidade de formar uma rede hierárquica (clusters):
graphic
  • Seleção do nó líder de grupo (cluster-head)
  • Broadcast a apartir do cluster-head
  • Os nós sensores entram para o grupo do cluster- head mais próximo
 
A arquitetura TinyOS foi projetada durante o desenvolvimento desse sistema operacional para RSSF, o qual éprevisto que seja incorporado nos componentes SmartDust.