28.11.2014 Views

Modelagem e Especificação de um Middleware para Redes de ...

Modelagem e Especificação de um Middleware para Redes de ...

Modelagem e Especificação de um Middleware para Redes de ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

46 3.3 <strong>Middleware</strong>s baseados em bancos <strong>de</strong> dados<br />

3.2.2 Medical MoteCare<br />

O Medical MoteCare [43] é baseado no protocolo Simple Network Management<br />

Protocol (SNMP), <strong>de</strong> modo que cada nodo é <strong>um</strong> agente SNMP (da suíte <strong>de</strong> software<br />

Harvard Co<strong>de</strong>Blue) gerenciado por <strong>um</strong>a ferramenta proprietária chamada JAguarSX.<br />

Foram <strong>de</strong>finidos vários Object IDentifiers SNMP (OIDs) <strong>para</strong> os recursos da RSSF,<br />

portanto a RSSF po<strong>de</strong> ser acessado por qualquer ferramenta que comunique via SNMP.<br />

O middleware possui <strong>um</strong>a arquitetura <strong>de</strong> três camadas que possibilita o controle tanto<br />

<strong>de</strong> recursos compatíveis com SNMP, quanto <strong>de</strong> recursos não compatíveis, através <strong>de</strong> <strong>um</strong><br />

proxy SNMP.<br />

3.3 <strong>Middleware</strong>s baseados em bancos <strong>de</strong> dados<br />

Toda a re<strong>de</strong> <strong>de</strong> sensores é vista como <strong>um</strong> banco <strong>de</strong> dados relacional virtual. Provê<br />

<strong>um</strong>a interface <strong>de</strong> uso fácil, mas com resultados aproximados, o que lhe faz não possuir<br />

suporte <strong>para</strong> aplicações <strong>de</strong> tempo real e <strong>de</strong>sta forma não ser i<strong>de</strong>al <strong>para</strong> RSSF em área <strong>de</strong><br />

saú<strong>de</strong>.<br />

3.3.1 Cougar<br />

O Cougar [64, 65] implementa operações <strong>de</strong> gerenciamento na forma <strong>de</strong> consultas<br />

similares às <strong>de</strong> SQL, <strong>de</strong> modo que o banco <strong>de</strong> dados <strong>de</strong> sensores contenha dados<br />

armazenados e dados <strong>de</strong> sensores. Seu uso é mais apropriado quando se tem <strong>um</strong>a gran<strong>de</strong><br />

quantida<strong>de</strong> <strong>de</strong> sensores, por ser fácil a agregação <strong>de</strong> dados, no entanto, tem <strong>um</strong> gasto consi<strong>de</strong>rável<br />

<strong>de</strong> recursos na transmissão <strong>de</strong>ste montante <strong>de</strong> dados brutos dos nodos sensores<br />

ao servidor <strong>de</strong> banco <strong>de</strong> dados. Cada dado é datado, <strong>para</strong> facilitar as consultas, e então<br />

armazenado. Há também suporte ao conceito <strong>de</strong> streaming, no qual po<strong>de</strong>-se especificar<br />

por quanto tempo serão feitas leituras nos sensores e a taxa <strong>de</strong> atualização e <strong>para</strong> manter<br />

as visualizações persistentes <strong>de</strong> consultas em curso, os resultados <strong>de</strong>stas são mostrados <strong>de</strong><br />

forma incremental [15].<br />

3.3.2 TinyDB<br />

O TinyDB é <strong>um</strong> sistema processador <strong>de</strong> consultas em estilo SQL <strong>para</strong> extrair<br />

informações <strong>de</strong> dispositivos sensores. A <strong>de</strong>speito <strong>de</strong> outras soluções baseadas em TinyOS<br />

[31] (que é <strong>um</strong> sistema operacional e plataforma <strong>para</strong> RSSF), ele não exige que o usuário<br />

escreva código embarcado <strong>para</strong> os sensores, a única complexida<strong>de</strong> é a própria interface<br />

SQL. É também provida <strong>um</strong>a API Java <strong>para</strong> escrita <strong>de</strong> programas na estação <strong>de</strong> trabalho<br />

[37, 36].

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!