Post on 05-Apr-2015
SWISSQMStephan Wagner
Seminar Datenmanagement in Sensornetzen
SS 2007, Prof. Ulf Leser, Dipl-Inf. Timo Mika Gläßer
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
Eckpunkte SWISSQM
• Entwicklung im Rahmen des XTream Projektes an ETH Zürich
• SWISSQM = Scalable Wireless Sensor Network Query Machine
• auf Stack basierende integer VM
• ist Turingvollständig
• Unterstützung benutzerdefinierter Funktionen
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
Motivation
1. Trennung der Sensoren vom externen Interface- Knoten sollen keine anwendungsspezifische Funktionalität beinhalten (z.B. Parsen)
2. Dynamische multi-user- und multi-programing-Umgebung
3. Effiziente Benutzung der Sensoren- Empfangen, Berechnen und Senden von Daten
4. Erweiterbarkeit- benutzerdefinierte Funktionen- Benutzung von „higher data processing layers“
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
Anwendungsmöglichkeit: Der Vesuv
• letzter Ausbruch ereignetesich im Jahre 1944
• gilt als gefährlichster Vulkan Europas
• es wird ein baldiger Ausbruch befürchtet (ca. 1-100 Jahre)
• am Fuß des Vulkans liegt die Stadt Neapel mit mehr als einer Million Menschen
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
Beispiel SWISSQM: Sensorknoten
• Netzwerk von Sensorknoten amVesuv
• Sensoren messen Tektonik und Hitze
• Zweck: Vorwarnung
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
Netzwerktopologie: Koten
• Knoten sind in Baumangeordnet und sendenDaten zum Gateway
• Unterstützt werden verschiedene Bäume undAdressierungen
• auf Sensoren läuft eine QM
• multi-hop routing (TinyOS)
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
Netzwerktopologie: Gateway
•Gateway generiert Bytecodeprogramme
•Speichert Daten die Effizienz des Netzes beeinträchtigen würden du liefert diese bei Bedarf aus
•Interface zur Kontrolle der Knoten (reset, stop, Code senden usw.)
•Funktionsweise:- Gateway wandelt Benutzerquerys über virtuelle Querys in Netzwerk-Querys um (liegen in Bytecode vor)
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
Beispiel SWISSQM: Gateway
Netzwerktopologie: KotenSELECT parent, MAX(temp), MAX(uschall)WHERE temp > 400 AND beben > 5FROM Sensoren GROUP BY parent
SAMPLE PERIOD 5s
Gateway übersetzt folgenden Querys in Bytecode Programme und sendet diese an Sensorknoten: 1 .section delivery, "@5s"
2 get_parent 3 istore 0 4 get_temp 5 istore 1 6 iload 17 ipushw 4008 if_icmpge 9 9 get_uschall 10 istore 2 11 iload 212 ipushb 513 if_icmpge 1414 iconst_215 Iconst_2 16 iconst_2 17 iconst_2 18 merge 19 send_sy 20 21 .section reception22 iconst_223 iconst_2 24 iconst_2 25 iconst_2 26 merge
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
SWISSQM: Speicheraufbau
• SWISSQM und Benutzerprogramme sind im FLASH-Memory jedes Sensorknotens gespeichert
• SRAM speichert nichtbeständigenglobalen Zustand von SWISSQM aus FLASH-Memory während des Bootens
• SWISSQM benötigt 3KB + 1KBfür Stack
• für Programme werden 384 byte alloziertpro Programm:- 16byte Stack- 16byte Übertragungspuffer- 16byte * #Elemente Synopsis
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
SWISSQM: Virtuelle Maschine
Virtuelle Maschine besteht aus:
1. Stack (beinhaltet Operanten und Befehle)
2. Übertragungspuffer (speichert Daten für Forwarding)
3. Synopsis ermöglicht Ausführung von Aggregationen
4. Sensoren
5. QM-Programme
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
SWISSQM: Querymaschine
• Bytcodeinterpreter • Übertragungspuffer• Stack• Synopsis
- raw mode: Array wird benutzt wie Übertragungspuffer- managed mode: ermöglicht Kombination von Daten des Übertragungspuffers und Synopsis- hat Tabellenstruktur
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
Beispiel SWISSQM: QM
parent MAX(temp) MAX(uschall)
id 1 wert 1 wert 1
id 2 wert 2 wert 2
. . .
. . .
. . .
id k wert k wert k
Synopsis
1 .section delivery, "@5s"2 get_parent 3 istore 0 4 get_temp 5 istore 1 6 iload 17 ipushw 4008 if_icmpge 9 9 get_uschall 10 istore 2 11 iload 212 ipushb 513 if_icmpge 1414 iconst_215 Iconst_2 16 iconst_2 17 iconst_2 18 merge 19 send_sy 20 21 .section reception22 iconst_223 iconst_2 24 iconst_2 25 iconst_2 26 merge
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
SWISSQM: Querymaschine
• QM Programm besteht aus 3 Sektionen:
init section: wird nur beim Programmstartausgeführt und initialisiert Synopsis
delivery section: wird einmal pro Samplingperiode ausgeführt, tastet Sensoren ab, sammelt Daten,„mergen“ mit localer Synopsis
reception section: beinhaltet Daten vom Kindknoten, leitet Daten weiter
1 .section init2 4003 istore 245 .section delivery, "@5s"6 get_parent 7 istore 0 8 get_temp 9 istore 1 10 iload 111 iload 212 if_icmpge 13 13 iconst_2 14 iconst_1 15 iconst_1 16 merge 17 send_sy 18 19 .section reception20 iconst_2 21 iconst_1 22 iconst_1 23 merge
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
SWISSQM: Befehlssatz
• Befehlssatz ermöglicht: Manipulation, Logik, Arithmetik, Jumps und Kontrolle
• pro Befehl 1 byte -> 256 Befehle möglich
• Befehlssatz sind modular und dadurch leicht erweiterbar
• 7 verschiedene Sensorbefehle
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
SWISSQM: Merge-Befehl
ermöglicht komplexe Berechnung trotz einfacher Bytecodebefehle
merge-Syntax: merge(n,m,aggop1,aggop2,
…,aggopm)
n = Anzahl der Gruppen m = Anzahl der Aggregationen aggop = Aggregation
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
Beispiel SWISSQM: Beispielrechnung für 2. Knoten
0 temp 443
uschall 9
1 temp 450
uschall 8
2 temp 417
uschall 8
3 temp 415 4 temp 410 5 temp 413
uschall 7 uschall 6 uschall 7
6 temp 401
uschall 5
parent MAX(temp) MAX(uschall)
4 401 5
2 413 7
1 417 8
parent MAX(temp) MAX(uschall)
4 401 5
2 413 7
1 417 8
parent tempuschall
2 415 8merge
GATEWAY
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
Beispiel SWISSQM: Synopsis für 0. Knoten
parent MAX(temp) MAX(uschall)
4 401 5
2 413 7
1 417 8
0 450 9
gateway 443 9
0 temp 443
uschall 9
1 temp 450
uschall 8
2 temp 417
uschall 8
3 temp 415 4 temp 410 5 temp 413
uschall 7 uschall 6 uschall 7
6 temp 401
uschall 5
GATEWAY
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
SWISSQM
GATEWAY
Evakuieren
Abschalten
Timo Mika Gläßer & Ulf Leser - Data Management in Wireless Sensor Networks
SWISSQM: Vor- und Nachteile
Vorteile Nachteilehohes Abstraktionslevel
Baumstruktur
leichte Programmierung
Updates werden über jeden Knoten gesendet
Multiprograming Ausfall eines Knotens führt zum Ausfall seiner Kindknoten
Aktuallisierung der Knoten per Funk