Presentation - Computer Science

Download Report

Transcript Presentation - Computer Science

ODBC interface for Remote
Wireless Sensor Network
Jun Ma
[email protected]
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.

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 opensource operating system designed specially for
wireless embedded sensor networks.
 GPRS modem runs Nut/OS which is an opensource 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.
Mapping sensor network to database
paradigm
Step 1: Connect
SQLAllocHandle(ENV)
Step 2: Building and
Executing an SQL
statement
SQLSetEnvAttr
SQLTables
SQLAllocHandle(DBC)
SQLNumResultCols
SQLDriverConnect
SQLDescribeCol
SQLSetConnectAttr
SQLBindCol
SQLGetInfo
SQLFetch
SQLGetFunctions
SQLExecuteDirect
SQLAllocHandle(STMT)
SQLSetStmtAttr
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 Name
EXPORTED 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@ABV
0@@Z
CMyClass::SAbout()
6
?SAbout@CMyClass@@QAEXXZ
CMyClass::SHowdy()
7
?SHowdy@CMyClass@@QAEXXZ
DEF file
LIBRARY ODBCWSN
EXPORTS
;SQLAllocConnect @1
;SQLAllocEnv @2
;SQLAllocStmt @3
;SQLBindCol @4
;SQLCancel @5
TinyDB packet