Context-Aware Systems

Supporting Context Awareness in Highly Dynamic Network Environments

Dissertation zur Erlangung des akademischen Grades Dr.tech. in der Studienrichtung Informatik

Angefertigt am Institut für Systemsoftware
Von
Dipl.-Ing. Wolfgang Beer

Gutachter
o.Univ.-Prof. Dipl.-Ing. Dr. Hanspeter Mössenböck
o.Univ.-Prof. Mag. Dr. Alois Ferscha

Linz, 01.05.2004

Abstract
The aim of context-aware services and applications is to react flexibly on the environmental state. Traditional services and applications are completely independent from their environment and therefore not able to react on state changes in the environment. The introduction of location-based services, which provide location-specific services to the users, represents the first practical appearance of context-aware services. Location-based services take the location information of the service client and return a location-specific service result. Context awareness is not limited to the location information, but includes all sorts of information which are relevant to classify the situation of a service client. This PhD thesis introduces a software framework that supports the collection and processing of generic sensor data, in order to provide the information to services and applications. The open framework architecture of the framework enables the use of different transport protocols to deliver the information. The software architecture also enables the integration of new protocol implementations. As an example transport module a web service standard based module was implemented. The integration of web service standards into the transport layer offers language and platform independent service description and delivery for a multitude of different service clients. With the discovery and lookup mechanism of the framework service clients are able to discover service providers even in ad-hoc networks. One of the main characteristics of the software framework is the possibility to map sensorial state transitions with specific actions. Interpreted rules, which are defined by the application designer or even by a user, realize the mapping between state transitions and the actions. These rules define how the application reacts on a specific state. Through the interpretation of the rules it is possible to change the rule repository or single rules at run time and to change the application’s behavior dynamically. To discover possible communication partners, the framework implements a role-based classification mechanism. The role-based mechanism uses the collection of a service provider’s service interfaces to decide in which role the service provider acts in an application. Comparable software frameworks often use static classification hierarchies to classify communication partners which leads to problems in ad-hoc networks. The framework enables the creation of context-sensitive applications through XML configurations. XML configurations simplify the use of visual development tools for designing context-sensitive applications. To demonstrate the framework, four example applications were developed and tested in practice.

Zusammenfassung
Das Ziel von Kontext-sensitiven Diensten und Anwendungen ist es, auf den Zustand der Umgebung flexibel reagieren zu können. Traditionelle Dienste und Anwendungen sind von ihrer Umgebung völlig unabhängig und somit auch nicht in der Lage auf Änderungen geeignet zu reagieren. Mit der Einführung von ortsbasierten Diensten, die je nach Position und Ort des Benutzers spezifisch konfigurierte Dienste anbieten, wurde der erste Schritt zu Kontext-sensitiven Diensten realisiert. Ortsbasierte Dienste verwenden nur die Position des Benutzers, um Informationen über die Umgebung des Benutzers zu sammeln und das Ergebnis von Anfragen damit geeignet zu konfigurieren. Kontext Sensitivität bezieht sich aber nicht nur auf den Ort eines Benutzers, sondern vielmehr auf alle Informationen die Aufschluß über die aktuelle Situation eines Dienstnehmers geben. Im Zuge dieser Arbeit wurde ein Software Framework erstellt, das es ermöglicht beliebige Sensordaten digital zu erfassen und zu verarbeiten, mit dem Ziel die gewonnenen Informationen Diensten und Anwendungen zur Verfügung zu stellen. Die offene Software Architektur des Frameworks ermöglicht es beliebige Kommunikationsprotokolle für die Übertragung der Informationen zu verwenden und jederzeit neue zu integrieren. Durch die Integration von WebService Standards ist die Beschreibung und die Ausführung der, durch das Framework angebotenen, Dienste für eine Vielzahl von verschiedenen Dienstnehmern gewährleistet. Der Discovery und Lookup Mechanismus des Frameworks ermöglicht es, dass sich Dienstanbieter und Dienstnehmer auch in einem dezentral verwalteten Netzwerk finden können. Zu den wichtigsten Eigenschaften des Frameworks zählt die Möglichkeit Zustandsübergänge von Sensoren mit Aktionen zu verknüpfen. Diese Verknüpfung wird in Form von interpretierten Regeln angegeben, die der Anwendungsentwickler definiert oder auch vom Benutzer selbst angelegt werden können. Diese Regeln bestimmen wie sich eine Anwendung zur Laufzeit in einem bestimmten Zustand verhält. Durch die Interpredation der Regeln ist es möglich den Regelsatz oder einzelne Regeln zur Laufzeit zu verändern um die Reaktion der Anwendung dynamisch zu ändern. Um mögliche Kommunikationspartner zu finden wurde im Framework ein rollenbasierter Ansatz zur Klassifikation gewählt. Dieser rollenbasierte Ansatz verwendet die Summe der Dienstschnittstellen eines Dienstanbieters um über dessen Rolle in einer Anwendung zu entscheiden. Vergleichbare Software Frameworks verwenden statische Klassenhierarchien, die aber in in dezentral verwalteten Netzwerken zu Problemen führen. Das Framework ermöglicht die Erstellung von Kontext-sensitiven Anwendungen durch XML Konfigurationen. Die Erstellung von graphischer Entwicklungssoftware wird dadurch wesentlich vereinfacht. Zur Demonstration der Anwendung des Frameworks wurden 4 Beispielanwendungen erstellt und in der Praxis erprobt.