Graduiertenkolleg 1194 "Selbstorganisierende Sensor-Aktor-Netzwerke"

K4.1: Anfragebearbeitung in Sensornetzen

Ziel der Informationsverarbeitung in Sensornetzen aus Datenbank-Sicht ist, eine deklarative Anfrage an ein Sensornetz stellen zu können. Dies erleichtert dem Nutzer die Interaktion mit Sensornetzen, da er lediglich spezifizieren muss, was, d. h. welche Information, beschafft werden soll. Die Festlegung, wie diese Daten beschafft werden, ist Aufgabe der Anfragebearbeitung.

Die grundlegende Idee, die deklarative Anfragen an Sensornetze ermöglicht, ist die Betrachtung des Netzes als eine Relation im Datenbank-Sinn: Hierbei handelt es sich um eine virtuelle Tabelle „Sensoren“, deren Spalten den verschiedenen Sensortypen der Knoten entsprechen (z.B. Feuchtigkeit, Temperatur, usw.), erweitert um die Position des jeweiligen Sensorknotens. Dazu sind weitere Attribute möglich, wie beispielsweise die Sensor-ID, ein Zeitstempel oder die verbleibende Batterieleistung.

Das Auslesen der Sensoren entspricht dem Anhängen eines Tupels an die Relation („append-only“). Anfragen werden mit Hilfe einer Teilmenge von SQL gegen das Sensornetz als Ganzes gestellt.

Bisher wurde auf dem Gebiet der Bearbeitung deklarativer Anfragen v. a. betrachtet, wie die Bearbeitung deklarativer Anfragen grundsätzlich auszusehen hat, welche Optimierungsmöglichkeiten bei der Bearbeitung bestehen, sowie die Frage, wie ein möglichst großer Teil der Anfragebearbeitung im Netz ausgeführt werden kann („In-Network Processing“). Die in den bisherigen Arbeiten unterstützten Anfragen setzten sich dabei aus Selektion, Projektion sowie der Aggregation über Attributen zusammen.

Ziel dieses Projekts ist es nun, die Menge der in deklarativen Anfragen unterstützten Operatoren zu erweitern. Hintergrund ist, dass es zur Zeit notwendig ist, all die Informationsbedürfnisse, die sich nicht mit Hilfe der drei genannten Operatoren formulieren lässt, in einer Sensornetz-spezifischen Programmiersprache zu implementieren. Was deklarative Anfragen gegenüber einer low-level Programmierung auszeichnet, ist, dass sie es gestatten, das Sensornetz als virtuelle Einheit zu programmieren und damit die Komplexität der Programmierung verteilter Systeme vom Nutzer verbergen (diese Eigenschaft wird manchmal als „Macroprogramming“ bezeichnet). So gesehen stellen deklarative Anfragen einen besonders benutzerfreundlichen Ansatz dar. Ein direkt damit verbundener Vorteil ist, dass die Anfragebearbeitung, d.h. die Umsetzung der deklarativen Anfragen in die zugrunde liegenden verteilten Algorithmen, von Spezialisten erstellt wird und somit hoch optimiert werden kann. Die angesprochenen Optimierungen beziehen sich vor allem auf die Skalierbarkeit sowie die Energieeffizienz der Informationsverwaltung. Letztlich stellt dieser Ansatz einen Weg dar, Gemeinsamkeiten der Informationsbeschaffung heraus zu faktorisieren und somit wieder zu verwenden.

Mit Blick auf die Erfordernisse der Anwendungen soll im Rahmen dieses Projekts untersucht werden, welche Operatoren neben den drei vorhandenen von Anwendungen benötigt werden (z. B. Join). Für diese Operatoren ist dann eine möglichst effiziente Bearbeitung zu entwerfen, bei der zu untersuchen ist, welche Teile im Netz ausgeführt werden sollten, um den Kommunikationsaufwand zu minimieren, und wie die Anfrageoptimierung bei der nun erweiterten Menge an Operatoren auszusehen hat.