Dissertation DIS-2009-08

Bibliograph.
Daten
Handte, Marcus: System Support for Adaptive Pervasive Applications.
Universität Stuttgart, Fakultät Informatik, Elektrotechnik und Informationstechnik, Dissertation (2009).
247 Seiten, englisch.
CR-Klassif.D.2.13 (Software Engineering Reusable Software)
D.2.9 (Software Engineering Management)
D.2.11 (Software Engineering Software Architectures)
D.1.5 (Object-oriented Programming)
D.2.6 (Software Engineering Programming Environments)
Kurzfassung

Driven by the ongoing miniaturization of computer technology as well as the proliferation of wireless communication technology, Pervasive Computing envisions seamless and distraction-free task support by distributed applications that are executed on computers embedded in everyday objects. As such, this vision is equally appealing to the computer industry and the user. Induced by various factors such as invisible integration, user mobility and computer failures, the resulting computer systems are heterogeneous, highly dynamic and evolving. As a consequence, applications that are executed in these systems need to adapt continuously to their ever-changing execution environment. Without further precautions, the need for adaptation can complicate application development and utilization which hinders the realization of the basic vision. As solution to this dilemma, this dissertation describes the design of system software for Pervasive Computing that simplifies the development of adaptive applications. As opposed to shifting the responsibility for adapting an application to the user or the application developer, the system software introduces a component-based application model that can be configured and adapted automatically. To enable automation at the system level, the application developer specifies the dependencies on components and resources in an abstract manner using contracts. Upon application startup, the system uses the contractual descriptions to compute and execute valid configurations. At runtime, it detects changes to the configuration that require adaptation and it reconfigures the application. To compute valid configurations upon application startup, the dissertation identifies the requirements for configuration algorithms. Based on an analysis of the problem complexity, the dissertation classifies possible algorithmic solutions and it presents an integrated approach for configuration based on a parallel backtracking algorithm. Besides from scenario specific modifications, retrofitting the backtracking algorithm requires a problem mapping from configuration to constraint satisfaction which can be computed on-the-fly at runtime. The resulting approach for configuration is then extended to support the optimization of a cost function that captures the most relevant cost factors during adaptation. This enables the use of the approach for configuration upon startup and reconfiguration during runtime adaptation. As basis for the evaluation of the system software and the algorithm, the dissertation outlines a prototypical implementation. The prototypical implementation is used for a thorough evaluation of the presented concepts and algorithms by means of real world measurements and a number of simulations. The evaluation results suggest that the presented system software can indeed simplify the development of distributed applications that compensate the heterogeneity, dynamics and evolution of the underlying system. Furthermore, they indicate that the algorithm for configuration and the extensions for adaptation provide a sufficiently high performance in typical applications scenarios. Moreover, the results also suggest that they are preferable over of alternative solutions. To position the presented solution within the space of possible and existing solutions, the dissertation discusses major representatives of existing systems and it proposes a classification of the relevant aspects. The relevant aspects are the underlying conceptual model of the system and the distribution of the responsibility for configuration and adaptation. The classification underlines that in contrast to other solutions, the presented solution provides a higher degree of automation without relying on the availability of a powerful computer. Thus, it simplifies the task of the application developer without distracting the user while being applicable to a broader range of scenarios. After discussing the related approaches and clarifying similarities and differences, the dissertation concludes with a short summary and an outlook on future work.

--

Angetrieben von der voranschreitender Miniaturisierung und der anhaltenden exponentiellen Leistungssteigerung, waren Rechnersysteme über die letzten Jahrzehnte in der Lage, sich ständig neue Einsatzgebiete zu erschließen. Bereits heute wird der überwiegende Teil an Rechnern nicht mehr als Allzweckrechner eingesetzt, sondern er findet seine Bestimmung als eingebettetes System zur Überwachung und Steuerung von physikalischen Prozessen. Mit Hilfe von drahtloser Vernetzungstechnik, wird es zukünftigen Generationen von eingebetteten Systemen in verstärktem Maße möglich sein, miteinander zu kommunizieren. Aufbauend auf diesen Trends beschreibt die Vision des Pervasive Computings – also die Vision des alles durchdringenden Rechnens – einen grundlegenden Paradigmenwechsel hinsichtlich des Einsatzes und der Nutzung von Rechnersystemen. Durch die Integration werden Rechner immer weniger als solche zu erkennen sein und durch die drahtlose Vernetzung können sie bei Bedarf spontan miteinander interagieren. Dadurch sind sie in der Lage, selbständig komplizierte Aufgaben zu lösen, die nicht oder nur bedingt von einem einzelnen eingebetteten System gelöst werden können. Die Anwendungen, die gemeinsam von diesen eingebetteten Systemen ausgeführt werden, werden ihre Nutzer nahtlos in ihrem täglichen Leben unterstützen, ohne sie von ihren Aufgaben abzulenken. Die aus dieser Vision resultierenden vernetzten Systeme unterscheiden sich von herkömmlichen. Insbesondere werden sie, bedingt durch die Spezialisierung einzelner Rechner, hochgradig heterogen sein. Weiterhin werden sie durch die Eigenschaften der drahtlosen Kommunikationstechnik und durch die Mobilität von Benutzern und Rechnern zeitweise hoch dynamisch sein. Darüber hinaus wird sich die eingesetzte Rechnertechnik schneller entwickeln als sie von ihren Eigentümern ersetzt wird. Dies führt letztlich dazu, dass die vernetzten Systeme aus Rechnern unterschiedlicher Generationen bestehen werden. Aus Sicht der Anwendungen führen diese Eigenschaften zu zusätzlichen Anforderungen, da sie sich an die Heterogenität und Dynamik anpassen müssen um dem Anwender eine möglichst nahtlose Unterstützung zu bieten. Allerdings können Anwendungen zur Steuerung der Anpassung nicht auf den Nutzer zurückgreifen, da dieser durch die zusätzliche Interaktion von der zu erledigenden Aufgabe abgelenkt wird. Dies wiederum erschwert die Aufgabe des Anwendungsentwicklers, da dieser neben der eigentlichen Anwendungslogik zusätzlich noch robuste Anpassungslogik entwickeln muss. Um diesem Problem zu begegnen, entwickelt, beschreibt und bewertet diese Arbeit Konzepte und Verfahren, mit denen die Anpassung einer verteilten Anwendung an die verfügbaren Ressourcen automatisiert werden kann. Neben der strukturellen Anpassung der Verteilung durch Konfiguration wird dabei auch die Anpassung einzelner Anwendungsteile durch Parametrisierung berücksichtigt. Der Fokus liegt vornehmlich auf einer reaktiven Anpassung bei der auch Änderungen berücksichtigt werden können, die während der Ausführung nur schlecht oder überhaupt nicht vorherzusehen sind. Im Gegensatz zu existierenden Konzepten und Verfahren zielt die vorliegende Arbeit vorwiegend auf den Einsatz in spontan vernetzten Systemen ab, die aus einer Reihe von ressourcenarmen Rechnern bestehen. Da deshalb nicht von der ständigen Verfügbarkeit eines ressourcenreichen Rechners ausgegangen werden kann, sind die resultierenden Verfahren grundsätzlich vollständig verteilt. Zum einen kann der vorgestellte Ansatz dadurch in einem breiten Spektrum unterschiedlicher Szenarien effektiv eingesetzt werden und zum anderen kann dadurch die inhärente Parallelität dieser vernetzten Systeme zur Leistungssteigerung ausgenutzt werden.

Volltext und
andere Links
PDF (4734435 Bytes)
Abteilung(en)Universität Stuttgart, Institut für Parallele und Verteilte Systeme, Verteilte Systeme
BetreuerRothermel, Kurt
Projekt(e)UBICONF
Eingabedatum9. März 2011
   Publ. Abteilung   Publ. Institut   Publ. Informatik