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