wisebed - wireless sensor network testbeds wiselib: a generic algorithm library for heterogeneous...
TRANSCRIPT
WISEBED - Wireless Sensor Network Testbeds
Wiselib: A Generic Algorithm Library for Heterogeneous Sensor Networks*
Tobias Baumgartner 1, Ioannis Chatzigiannakis 2,
Sándor Fekete 1, Christos Koninis 2,
Alexander Kröller 1, Apostolos Pyrgelis 2
1 Braunschweig Institute of Technology, IBR, Algorithms Group, Germany2 Research Academic Computer Technology Institute, Patras, Greece
* Supported by the EU-project WISEBED – http://wisebed.eu
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
2
Motivation
Architecture
Experimental Results
Wiselib Usage
Outlook
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
What is the Wiselib?
Code library of Algorithms
Heterogeneous
Highly Efficient
3
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
Hardware
Jennic Intel XScale MSP430 MSP430
Heterogeneity 4
iSense iMote2 ScatterWeb MSB Tmote Sky
Operating Systems
iSense TinyOS ScatterWeb, Contiki Contiki, TinyOS
Programming Language
C++ nesC C C, nesC
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
5
Motivation
Architecture
Experimental Results
Wiselib Usage
Outlook
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
The Wiselib 6
• Similar to STL, Boost, CGAL• Object-Oriented Programming
C++
• Generic Programming• Flexible Design
Templates
• Well-known constructs• No custom language extensions
Standard Language Features
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
A concept only exists in documentation. It describes exactly how an implementation must look like.
Example
class iSenseRadioModel {
static void enable() { ... };
}
class ShawnRadioModel {
static void enable() { ... };
}
template<typename Radio>
class Algorithm {
void enable() {
Radio::enable();
}
};
Algorithm<iSenseRadioModel> algorithm_isense;
Algorithm<ShawnRadioModel> algorithm_shawn;
7
concept Radio{ static void enable();}
A model is an implementation of a concept. It offers at least each method and each type that is described in the concept.
Another implementation awaits a model as template parameter, but knows only the concept.
Such a model is then passed as a template argument to an algorithm
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
External Architecture 8
Concept Implementations (Models)
Os Facet Contiki, iSense, OSA, ScatterWeb, Shawn, TinyOS
Radio Contiki, iSense, OSA, ScatterWeb, Shawn, TinyOS
• TxRadio iSense, Shawn
• LinkMetricRadio iSense, Shawn
Timer Contiki, iSense, OSA, ScatterWeb, Shawn, TinyOS
Debug Contiki, iSense, OSA, ScatterWeb, Shawn, TinyOS
Com/UART Contiki, iSense
Clock iSense, Shawn
Timer.
Event registration.
OS Description.
Data types and standard configuration.
Radios.
Send and receive messages. Specializations of standard radio.
Debug.
Print out debug/logging messages.
Serial Interface.
Write to serial port. E.g. for exchanging data with PC.
Clock.
Provide current time.
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
Algorithms 9
Concept Implementations (Models)
Routing DSDV, DSR, Tree, Flooding, AODV, Tora, SecureRouting
Crypto AES, ECC, ECIES, Sha1
Clustering BFS, DFS, ExtendedBfs, Hdl, SecureBfs, SecureHdl
Network Metrics OneHopMetrics, IndividualLink
Localization Triangulation
Routing.
Send messages via multi-hop to given destination. So far, a few standard algorithms implemented
Crypto.
Platform independent crypto algorithms. Come with pMP – the picoMultiPrecision library, especially designed for embedded system demands.
Clustering.
Build groups of nodes, each with own cluster-head. Here, it is also possible to combine such an algorithm with crypto.
Network Metrics.
Collect metrics for (parts of) the network. Currently, link stability in one-hop neighborhood and individual links can be evaluated.
Localization.
Provide position for nodes. Can also be abstract positions (not only euclidean coordinates), such as a triangulation of the network.
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
10
Motivation
Architecture
Experimental Results
Wiselib Usage
Outlook
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
Performance
iSense Contiki (on MSB) ScatterWeb (on MSB)
Native Wiselib Cost Native Wiselib Cost Native Wiselib Cost
Read ID 2μs 2μs 0% <1μs <1μs 0% <1μs <1μs 0%
Send Msg 282μs 282μs 0% 336μs 345μs 3% 898μs 921μs 3%
Set Timer 135μs 141μs 4% 77μs 100μs 30% 20μs 43μs 115%
11
Read node id.
Radio::node_id_t id = Radio::id(os);
Send message over radio.
Radio::node_id_t destination;Radio::send(os, destination, len, data);
Register timer event.
Timer::set_timer <self_type, &self_type::function_name> (os, wait_time, this, userdata);
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
Codesize: External Architecture
32-Bit 16-Bit (on MSP430)
iSense Contiki ScatterWeb
Radio 856 + 240 428 + 72 316 + 40
Timer 868 + 240 352 + 210 270 + 80
12
Code size as ROM (.txt) + RAM (.bss and.data) Translation between OS specific registration mechanisms and C++
member function pointers in Wiselib Constant overhead per node, node per algorithm
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
Codesize: Algorithms
16-Bit (on MSP430) 32-Bit Simulators
Algorithm Contiki ScatterWeb iSense Shawn TOSSIM
DSDV 1446+ 72 1466+ 72 4776+136 4351+4 19146+4
DSR 1964+338 1716+238 5396+356 6918+4 20845+4
Tree 920+ 16 724+ 14 4060+ 24 2974+4 9946+4
Flooding 1122+ 50 762+ 34 2864+ 68 2260+4 10192+4
13
Code size as ROM (.txt) + RAM (.bss and.data)
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
14
Motivation
Architecture
Experimental Results
Wiselib Usage
Outlook
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
Usage Scenarios
Direct Integration in own Application Write application for own platform (e.g., collecting sensor data) Use, for example, routing algorithm from Wiselib Examples: iSense Integration
- https://svn.itm.uni-luebeck.de/wisebed/wiselib/trunk/iapps
Examples: Shawn Integration- https://svn.itm.uni-luebeck.de/wisebed/wiselib/trunk/shawn_apps
Stand-Alone-Applications Applications with own application_main() Can be compiled for each platform, run directly Examples
- https://svn.itm.uni-luebeck.de/wisebed/wiselib/trunk/applications
15
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
Distributions
“Testing” Implemented against Wiselib API Algorithms may only be tested on some target platforms New concepts that may change Release Early, Release Often https://svn.itm.uni-luebeck.de/wisebed/wiselib/trunk/wiselib.testing
“Stable” Matured concepts and implementations Tested on all supported platforms Concepts may not change anymore https://svn.itm.uni-luebeck.de/wisebed/wiselib/trunk/wiselib.stable
16
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
17
Motivation
Architecture
Experimental Results
Wiselib Usage
Outlook
Wiselib – A Generic Algorithm Library – http://www.wiselib.org
Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis
Outlook
External Architecture Different radio specializations for Contiki, TinyOS, … More interfaces Maintenance of existing ones
Algorithms Add more algorithms: Routing, Localization, … Add more algorithm categories
- Time Synchronization- Target Tracking- …
18