ODBC interface for Remote Wireless Sensor Network Jun Ma Jun.Ma@csiro.au.

Post on 18-Dec-2015

221 views 1 download

Tags:

transcript

ODBC interface for Remote ODBC interface for Remote Wireless Sensor NetworkWireless Sensor Network

Jun MaJun Ma

Jun.Ma@csiro.auJun.Ma@csiro.au

What is Wireless Sensor NetworkWhat is Wireless Sensor Network This wireless sensor is called a “This wireless sensor is called a “motemote”. It’s a ”. It’s a

small-scale computers with small-scale computers with sensorssensors, a , a microprocessormicroprocessor, , RF communicationRF communication and and batterybattery..

It is intended to be very small and very cheap so It is intended to be very small and very cheap so that it can be massively distributed.that it can be massively distributed.

A number of wireless sensors forms an wireless adhoc netwA number of wireless sensors forms an wireless adhoc network which provides functionality like message routing.ork which provides functionality like message routing.

WSN can be used in a wide range of applications, including WSN can be used in a wide range of applications, including environmental monitoring, surveillance, smart buildings, healenvironmental monitoring, surveillance, smart buildings, health, traffic monitoring, and military systems. th, traffic monitoring, and military systems.

What is Wireless Sensor NetworkWhat is Wireless Sensor Network

What is Remote WSN A wireless sensor

network deployed at very remote locations.

Data is collected remotely through telephone network like GPRS or CDMA.

A Database for WSNs TinyDB is a database system written in jav

a for extracting information from a WSN.

Project Motivation

We can’t interface with WSN like a standard database.

WSN can be much easier to use if it could be used directly from the standard tools for programmatically interfacing with database.

Objective Improve usability of WSN by providing a standard

ODBC interface between TinyDB and most normally available database tools.

Map the sensor network to a database paradigm. Make the whole sensor network looks like an

standard database table.

Node ID Temperature Humidity Light Sound

1 21.5 13 67 34

2 22.2 14 56 40

3 23.8 12 77 21

Software platform An ODBC driver for Windows platform. Wireless sensor runs TinyOS which is an open-so

urce operating system designed specially for wireless embedded sensor networks.

GPRS modem runs Nut/OS which is an open-source operating system designed for Atmel microcontroller.

TinyDB which is a database engine for WSN. TinyDB proxy which is a java application which tra

nslates SQL query into something motes can understand.

Programming language: C, C++ and Java

Driver Development An ODBC driver is a DLL on windows platform. The driver implements functions specified in the

ODBC standard. The driver must make sure the ODBC functions ar

e called in correct sequence. Sending query to TinyDB Proxy server Retrieving data from the XMLBlaster server. Decoding TinyDB binary messages. Mapping errors to ODBC SQLSTATEs.

Programming Considerations

Make the ODBC driver fully thread-safe, so that the driver can handle an ODBC call from any thread at any time .

The ODBC driver resides in the same memory space of the user application.

All the ODBC functions must be exported with its original name using a module-definition (.DEF) file instead of __declspec(dllexport).

A event logger is needed for debugging.

Research issues

Supporting TinyDB specific SQL . How effectively can a sensor network be ma

pped to database paradigm. Balancing query latency vs. power consump

tion.

Supporting TinyDB specific SQL .

If a query contains TinyDB-Speicific SQL, the driver sends it to TinyDB proxy for processing.

A SAMPLE PERIOD is appended to SQL queries if it doesn’t exist.

Replace “*” in the query with a list of all available attributes in the sensor network.

Mapping sensor network to database paradigm

Step 1: Connect

SQLAllocHandle(ENV)

SQLSetEnvAttr

SQLAllocHandle(DBC)

SQLDriverConnect

SQLSetConnectAttr

SQLGetInfo

SQLGetFunctions

SQLAllocHandle(STMT)

SQLSetStmtAttr

Step 2: Building and Executing an SQL statement

SQLTables

SQLNumResultCols

SQLDescribeCol

SQLBindCol

SQLFetch

SQLExecuteDirect

Step 3: Fetch result

SQLNumResultCols

SQLDescribeCol

SQLBindCol

SQLFetch

SQLGetData

Balancing query latency vs. power consumption.

Polling instead of continuous sampling saves power.

Changing the schedule scheme to balance power consumption vs. latency.

Summary

With an standard ODBC interface, Wireless Sensor networks have greater usability, functionality, extensibility and ease of integration.

However some new restrictions like large latency and difficulties with event driven sampling are introduced.

Any Questions?

Function Sequence

Applications retrieve data from ODBC driver by calling functions in a certain sequence.

Decorated NameEXPORTED FUNCTION ORDINAL DECORATED NAME

Prod 1 ?Prod@@YAJJJ@Z

Sum 2 ?Sum@@YAJJJ@Z

CMyClass::CMyClass() 3 ??0CMyClass@@QAE@XZ

CMyClass::~CMyClass() 4 ??1CMyClass@@QAE@XZ

CMyClass::operator= 5 ??4CMyClass@@QAEAAV0@ABV0@@Z

CMyClass::SAbout() 6 ?SAbout@CMyClass@@QAEXXZ

CMyClass::SHowdy() 7 ?SHowdy@CMyClass@@QAEXXZ

LIBRARY ODBCWSNEXPORTS;SQLAllocConnect @1;SQLAllocEnv @2;SQLAllocStmt @3;SQLBindCol @4;SQLCancel @5

DEF file

TinyDB packet