Loading…
Thumbnail Image

Double-Anchored Software Architecture for Wireless Sensor Networks

Handziski, Vlado

Nach einem Jahrzehnt intensiver Forschung und Entwicklung sind drahtlose Sensornetze (WSNs) kurz davor, sich von einer unbekannten Technologie in ein tragfähiges Marktsegment zu verwandeln. Während dieses Zeitraums hat sich die WSN-Knoten-Hardware ständig verbessert, was zu erhöhter Funktionalität und einer Reduzierung von Formfaktor, Kosten und Energieverbrauch geführt hat. Leider konnte die Software-Entwicklung nicht mit demselben Tempo voranschreiten. Die Begrenztheit der Betriebsmittel und anwendungsspezifische Anforderungen sind dafür verantwortlich, dass Entwickler geschlossene und integrierte Lösungen anstreben, was die Wiederverwendung von Entwürfen und Programmiercode behindern. Dies führt dazu, dass der erforderliche Aufwand für die Entwicklung neuer Anwendungen und ihre Anpassung an die sich kontinuierlich entwickelnde Hardware ansteigt. Das Fehlen einer allgemeinen Softwarearchitektur für WSNs wird von vielen Mitgliedern der wissenschaftlichen Gemeinschaft als wesentlicher Faktor für die existierenden Defizite angesehen. Wir präsentieren eine doppelverankerte Softwarearchitektur für drahtlose Sensornetze, die eine effektive WSN Entwicklung ermöglicht, indem traditionelle Methoden des Entwurfes und der Wiederverwendung von Programmiercode angewendet werden, unter Einhaltung von bewährten Prinzipien wie funktioneller Entkoppelung und dem Verbergen von Komplexität. Gleichzeitig wird ein Mechanismus zur Steuerung des inhärenten Kompromisses zwischen Effizienz und Wiederverwendung zur Verfügung gestellt, so dass sich die genannten Vorteile im Vergleich mit einer maßgeschneiderten und vertikal integrierten Lösung ohne einen übermäßig hohen Nachteil an Leistungsfähighkeit realisieren lassen. Die vorgestellte Architektur ist als ein Komponenten-System ausgeführt, das um zwei “Anker” angeordnet ist, die Beständigkeit ermöglichen und als die Basis für den Entwurf und die Wiederverwendung von Programmiercode dienen. Der untere Portabilitäts-Anker abstrahiert die Hardware und ermöglicht explizite Kontrolle des Performance-Portabilität Trade-offs. Der obere Interoperabilität-Anker abstrahiert die Knoten-lokalen Dienste mithilfe einer expressiven Publish/Subscribe Schnittstelle und unterstützt anwendungsspezifische Anpassung. Diese Dissertation vertritt die These, dass eine breite Softwarearchitektur, die auf diesen beiden Ebenen des Software-Stacks verankert ist, wirksam Portabilität und Interoperabilität fördern kann und dass dies unter Beachtung der Kosten für die involvierten Abstraktionen geschieht. Wir werten diese Behauptungen in qualitativer und quantitativer Art und Weise aus, und zwar anhand eines Beispiels, das eine Reihe von Prototyp-Implementierungen realisiert, von denen einige breite Anwendung in der WSN-Forschungs-Gemeinschaft gefunden haben. Zur Unterstützung der Auswertung haben wir eine spezifische Test-Infrastruktur entwickelt, die eine effiziente Prüfung der funktionalen und nicht-funktionalen Eigenschaften von WSN-Protokollen und -Diensten ermöglicht.
After a decade of intense research and development, Wireless Sensor Networks (WSNs) are on the verge of transforming from an obscure technology into a viable market segment. In this period, the WSN node hardware has constantly improved, resulting in better functionality while size, cost and energy consumption have been reduced. Unfortunately, the software development process has not been able to keep the same pace. The tight resource constraints and the application-specific requirements are driving developers into closed and integrated solutions which impede design and code reuse, increasing the required effort for developing new applications and adapting them to an ever evolving hardware. The lack of a common software architecture for WSNs is seen by many in the research community as significant contributing factor for the existing inefficiencies. We introduce a double-anchored software architecture that enables effective WSN development through traditional methodologies of design and code reuse, using time-tested principles like functional decoupling and complexity hiding. At the same time, it provides mechanisms for controlling the inherent trade-offs between efficiency and reuse so the above benefits can be achieved without paying a prohibitively high price in performance, compared to a customized and vertically integrated solution. The proposed architecture is specified in the form of a component framework organized around two “anchors” that provide rigidity and establish a base for design and code reuse. The lower portability anchor abstracts the hardware while enabling explicit control over the performance-portability trade-offs. The upper interoperability anchor abstracts the node-local services behind an expressive publish/subscribe interface and supports application-specific customization. This dissertation contends that a broad software architecture, anchored at these two levels of the software stack, can effectively promote portability and interoperability while maintaining high sensibility towards abstraction costs. We evaluate these claims in qualitative and quantitative way, on the example of several prototype implementations, some of which are in wide use in the WSN community. To support the evaluation we have also developed a custom distributed testing infrastructure that enables efficient testing of functional and non-functional properties of WSN protocols and services.