ODBC interface for Remote Wireless Sensor Network Jun Ma Jun.Ma@csiro.au
What is Wireless Sensor Network • This wireless sensor is called a “mote”. It’s a small-scale computers with sensors, a microprocessor, RF communication and battery. • It is intended to be very small and very cheap so that it can be massively distributed.
What is Wireless Sensor Network • A number of wireless sensors forms an wireless adhoc network which provides functionality like message routing. • WSN can be used in a wide range of applications, including environmental monitoring, surveillance, smart buildings, health, traffic monitoring, and military systems.
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 java 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.
Software platform • An ODBC driver for Windows platform. • Wireless sensor runs TinyOS which is an open-source 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 translates 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 are 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 mapped to database paradigm. • Balancing query latency vs. power consumption.
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.
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.
Function Sequence • Applications retrieve data from ODBC driver by calling functions in a certain sequence.
Decorated Name DEF file LIBRARY ODBCWSN EXPORTS ;SQLAllocConnect @1 ;SQLAllocEnv @2 ;SQLAllocStmt @3 ;SQLBindCol @4 ;SQLCancel @5