19
ISEBED - 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, Germany 2 Research Academic Computer Technology Institute, Patras, Greece * Supported by the EU-project WISEBED http://wisebed.eu

WISEBED - Wireless Sensor Network Testbeds Wiselib: A Generic Algorithm Library for Heterogeneous Sensor Networks* Tobias Baumgartner 1, Ioannis Chatzigiannakis

Embed Size (px)

Citation preview

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

Wiselib – A Generic Algorithm Library – http://www.wiselib.org

Baumgartner, Chatzigiannikis, Fekete, Koninis, Kröller, Pyrgelis

Thank you!

19

http://www.wiselib.org