TU BRAUNSCHWEIG
| Carl-Friedrich-Gauß-Fakultät | Informatik
Informatikzentrum

Implementierung und Evaluation verteilter und paralleler WSN-Simulationen

BetreuerSven Pullwitt
Robert Hartung
ProfessorProf. Dr.-Ing. Lars Wolf
IBR GruppeCM (Prof. Wolf)
ArtBachelorarbeit, Projektarbeit
Statusoffen

Einleitung

Drahtlose Sensornetzwerke (engl.: Wireless Sensor Networks, WSNs) werden schon heute vielseitig in unserem Alltag eingesetzt, beispielsweise für die Überwachung von Tieren, Gebäuden oder den Verkehr. Für die Überwachung werden (meist drahtlose) Knoten eingesetzt, welche vor der Herausforderung eines begrenzten Energievorrats bei gleichzeitigen Leistungsanforderungen stehen. Um die Lebenszeit eines Netzes zu erhöhen, wird robuste, zuverlässige und optimierte Software benötigt.

Contiki

Diese Knoten basieren auf verschiedenen Plattformen und Hardware-Architekturen, die durchaus auch gemischt eingesetzt werden. Daher ist es notwendig, die Anwendung so zu entwickeln, dass sie flexibel auf verschiedenen Plattformen eingesetzt werden kann. Betriebssysteme sind dafür seit je der Weg, Software so flexibel zu schreiben, dass sie auf unterschiedlichen Plattformen lauffähig ist. Contiki ist ein weitverbreitetes Betriebssystem, das im Bereich der drahtlosen Sensornetze seit vielen Jahren eingesetzt wird.

Cooja

Cooja ist ein JAVA-basierter Netzwerksimulator, der entwickelt wurde, um Contiki Software auf Anwendungsebene zu simulieren. Mit Hilfe dieses Simulators können verschiedene Szenarien erstellt werden um Anwendungen und Protokolle in einer kontrollierten Umgebung zu testen. Neben der Portabilität, die durch die Verwendung von Java erreicht wird, ist die Erweiterbarkeit durch Plugins, welche zur Integration vieler Features wie die Simulation von Interferenzen oder dem Energieverbrauch geführt hat.

Avrora

Avrora ist ein Simulator für die AVR Architektur, welcher in Java geschrieben wurde. Obwohl Avrora als selbständiger Simulator entwickelt wurde, wurde ein Cooja-Plugin basierend auf Avrora entwickelt, das es ermöglicht, AVR Knoten auf Registerebene in Cooja zu simulieren.

Aufgaben

Simulatoren können von großer Hilfe beim Entwickeln von WSNs sein, da sie es ermöglichen, eine große Zahl an Test in kurzer Zeit durchzuführen, was in echten Experimenten zumeist auf Grund von Platz- und Kostenlimitierungen nicht möglich ist. Dieser Vorteil ist vor Allem bedingt durch die erreichbare Simulationsgeschwindigkeit. Die Simulation von WSNs ist eine rechenzeitaufwändige Anwendung und die Geschwindigkeit des zur Simulation genutzten Systems hat einen starken Einfluss auf die Simulationsgeschwindigkeit. Cooja nutzt zur Simulation eine sogenannte Event-Queue, in der atomare Simulationsschritte in der Reihenfolge ihrer Ausführung gespeichert sind. Die dadurch garantierte feste Reihenfolge des Ausführung kommt mit der Nachteil eines sehr hohen Bedarfs an Single-Core-Rechenleistung, welche nicht unbegrenzt zur Verfügung steht. Cooja in Kombination mit Avrora erreicht nicht die Simulationsgeschwindigkeiten, welche bei der Simulation von MPS430 Knoten mit der gleichen Architektur erreicht werden. Für kleine WSNs ist die erreichte Geschwindigkeit in den meisten Fällen hinreichend, allerdings skaliert das System sehr schlecht, was einen Einfluss auf die Nutzbarkeit des Simulators hat.

Da Cooja in Kombination mit MSPSim deutlich höhere Simulationsgeschwindigkeiten erreicht, soll die Ursache für diesen Unterschied ermittelt werden. Um diese Einschränkung zu umgehen, soll Cooja um eine verteile Simulation erweitert werden, die es ermöglicht die rechenintensive Simulation vom User-Interface zu trennen. Durch die Verwendung von Java-RMI soll eine Simulation der Knoten auf einem Server im Netzwerk realisiert werden, während das User-Interface auf einem Client-PC läuft. Basierend auf dieser verteilen Simulation sollen die Möglichkeiten für einen parallele Simulation analysiert und implementiert werden.

  • Analysiere und dokumentiere die Event-Queue Architektur sowohl mit Avrora und MSPSim
  • Implementiere eine Remote-Ausführung von Cooja-Knoten mittels Java-RMI
  • Evaluiere und implementiere eine parallele Remote-Ausführung von mehreren simulierten Cooja-Knoten

Fähigkeiten

Die folgenden Fähigkeiten helfen dir bei der Bearbeitung dieses Themas:

  • Java
  • C
  • Java RMI
  • Cooja

Links


aktualisiert am 04.12.2018, 15:33 von Sven Pullwitt
printemailtop