Doctoral Thesis DIS-2012-01

BibliographySchuhmann, Stephan: Automated Composition of Adaptive Pervasive Applications in Heterogeneous Environments.
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Doctoral Thesis (2012).
214 pages, english.
CR-SchemaC.2.4 (Distributed Systems)
D.2.11 (Software Engineering Software Architectures)
I.2.8 (Problem Solving, Control Methods, and Search)
Abstract

Distributed applications for Pervasive Computing represent a research area of high interest. Configuration processes are needed before the application execution to find a composition of components that provides the required functionality. As dynamic pervasive environments and device failures may yield unavailability of arbitrary components and devices at any time, finding and maintaining such a composition represents a nontrivial task. Obviously, many degrees of decentralization and even completely centralized approaches are possible in the calculation of valid configurations, spanning a wide spectrum of possible solutions. As configuration processes produce latencies which are noticed by the application user as undesired waiting times, configurations have to be calculated as fast as possible. While completely distributed configuration is inevitable in infrastructure-less Ad Hoc scenarios, many realistic Pervasive Computing environments are located in heterogeneous environments, where additional computation power of resource-rich devices can be utilized by centralized approaches. However, in case of strongly heterogeneous pervasive environments including several resource-rich and resource-weak devices, both centralized and decentralized approaches may lead to suboptimal results concerning configuration latencies: While the resource-weak devices may be bottlenecks for decentralized configuration, the centralized approach faces the problem of not utilizing parallelism. Most of the conducted projects in Pervasive Computing only focus on one specific type of environment: Either they concentrate on heterogeneous environments, which rely on additional infrastructure devices, leading to inapplicability in infrastructure-less environments. Or they address homogeneous Ad Hoc environments and treat all involved devices as equal, which leads to suboptimal results in case of present resource-rich devices, as their additional computation power is not exploited. Therefore, in this work we propose an advanced comprehensive adaptive approach that particularly focuses on the efficient support of heterogeneous environments, but is also applicable in infrastructure-less homogeneous scenarios. We provide multiple configuration schemes with different degrees of decentralization for distributed applications, optimized for specific scenarios. Our solution is adaptive in a way that the actual scheme is chosen based on the current system environment and calculates application compositions in a resource-aware efficient manner. This ensures high efficiency even in dynamically changing environments. Beyond this, many typical pervasive environments contain a fixed set of applications and devices that are frequently used. In such scenarios, identical resources are part of subsequent configuration calculations. Thus, the involved devices undergo a quite similar configuration process whenever an application is launched. However, starting the configuration from scratch every time not only consumes a lot of time, but also increases communication overhead and energy consumption of the involved devices. Therefore, our solution integrates the results from previous configurations to reduce the severity of the configuration problem in dynamic scenarios. We prove in prototypical real-world evaluations as well as by simulation and emulation that our comprehensive approach provides efficient automated configuration in the complete spectrum of possible application scenarios. This extensive functionality has not been achieved by related projects yet. Thus, our work supplies a significant contribution towards seamless application configuration in Pervasive Computing.

--

Verteilte Anwendungen für Szenarien des allgegenwärtigen Rechnens (so genannte Pervasive Computing Umgebungen) stellen einen aktuell sehr relevanten Forschungsbereich dar. In solchen Szenarien sind Konfigurationsprozesse vor der tatsächlichen Ausführung der Anwendungen erforderlich, um eine Menge von verteilten Komponenten zu finden, welche der Anwendung die benötigte Funktionalität bereitstellen. Weil die erhöhte Dynamik in Pervasive Computing Umgebungen sowie auftretende Gerätefehler jederzeit zur Nichtverfügbarkeit beliebiger Komponenten und Geräten führen können, repräsentiert das Bereitstellen solch einer Konfiguration eine nichttriviale Aufgabe. Selbstverständlich sind Ansätze mit verschiedenstem Grad der Verteilung sowie komplett zentralisierte Ansätze bei der Berechnung einer gültigen Konfiguration möglich, wodurch sich ein breites Spektrum möglicher Lösungsansätze ergibt. Die Konfigurationsvorgänge verursachen Latenzen, die von Anwendungsnutzern als unerwünschte Wartezeiten wahrgenommen werden. Daher müssen Konfigurationen so schnell wie möglich berechnet werden. Während in infrastrukturlosen Ad Hoc Umgebungen eine komplett dezentral durchgeführte Konfigurationsberechnung unumgänglich ist, prägen sich in vielen typischen Pervasive Computing Umgebungen heterogene Szenarien aus, in denen die durch leistungsstarke Geräte zusätzlich zur Verfügung gestellten Rechenressourcen durch einen zentralisierten Ansatz ausgenutzt werden können. In stark heterogenen Umgebungen mit mehreren leistungsstarken wie auch leistungsschwachen Geräten führen jedoch sowohl der zentralisierte als auch der dezentrale Ansatz zu suboptimalen Ergebnissen hinsichtlich der entstehenden Latenzen: während die leistungsschwachen Geräte zu Flaschenhälsen für die dezentralisierte Konfigurationsmethode werden können, muss sich der zentralisierte Ansatz mit dem Problem auseinandersetzen, dass die Berechnungen nicht in paralleler Weise durchgeführt werden. Die meisten der bisher durchgeführten Projekte im Pervasive Computing fokussieren lediglich auf einen bestimmten Umgebungstyp: Entweder konzentrieren sie sich auf heterogene Umgebungen und erfordern die Verfügbarkeit zusätzlicher Infrastrukturgeräte, wodurch ihre Ansätze in infrastrukturlosen Umgebungen nicht verwendet werden können. Oder sie adressieren homogene Ad Hoc Umgebungen und betrachten alle Geräte als gleichwertig für die Konfigurationsvorgänge, was zu ineffizienten Konfigurationsprozessen im Falle von zusätzlich vorhandenen leistungsstarken Geräten führt, da deren erhöhte Leistungsfähigkeit nicht gesondert für die Konfigurationsberechnungen verwendet wird. In dieser Arbeit schlagen wir daher einen erweiterten, weitreichenden und adaptiven Ansatz vor, welcher hauptsächlich auf die effiziente Unterstützung heterogener Umgebungen mit leistungsstarken Geräten ausgerichtet ist, aber zusätzlich auch in infrastrukturlosen homogenen Umgebungen verwendet werden kann. Dafür stellen wir mehrere Konfigurationsansätze mit verschiedenen Graden der Verteilung bei der Konfigurationsberechnung für verteilte Anwendungen vor, die für bestimmte Szenarien optimiert wurden. Die vorgestellte Lösung ist in der Weise adaptiv, dass der tatsächliche Konfigurationsansatz basierend auf der aktuellen Systemumgebung ausgewählt wird und die Anwendungskonfiguration basierend auf den zur Verfügung stehenden Berechnungsressourcen bestimmt wird. Dieses Vorgehen stellt sicher, dass selbst in Umgebungen, welche häufig dynamischen Änderungen unterworfen sind, Konfigurationen in einer sehr effizienten Weise berechnet werden. Darüber hinaus umfassen viele typische Pervasive Computing Umgebungen eine feste Menge von Anwendungen und Geräten, die dort häufig verwendet werden. In solchen Szenarien enthalten die nachfolgenden Konfigurationsberechnungen meist Ressourcen, welche bereits in zuvor berechneten Konfigurationen inkludiert waren. Das bedeutet, dass sich die Konfigurationsvorgänge beim Starten einer Anwendung häufig ähneln. Eine komplette Neuberechnung einer Konfiguration beim Starten der Anwendung dauert jedoch nicht nur sehr lange, sondern erhöht auch den Kommunikationsaufwand sowie den Energieverbrauch der an der Konfiguration beteiligten Geräte. Daher stellen wir eine Methode vor, welche die Ergebnisse vergangener Konfigurationsvorgänge automatisch für zukünftige Konfigurationen speichert und bereitstellt, um diese Konfigurationsvorgänge einfacher und effizienter zu gestalten. Wir zeigen durch vorgenommene Messungen auf einer prototypischen Umsetzung sowie auf Simulations- und Emulationsumgebungen, dass unser umfassender Ansatz eine effiziente, automatisierte Konfiguration im kompletten Spektrum der betrachteten Pervasive Computing Umgebungen ermöglicht. Diese weitreichende Funktionalität wurde zuvor von keinem der verwandten Projekte bereitgestellt. Daher stellt diese Arbeit einen bedeutsamen Beitrag zur nahtlosen Konfiguration von verteilten Anwendungen in Pervasive Computing Umgebungen dar.

Full text and
other links
PDF (12992396 Bytes)
Department(s)University of Stuttgart, Institute of Parallel and Distributed Systems, Distributed Systems
Superviser(s)Rothermel, Kurt; Becker, Christian
Project(s)3PC
UBICONF
Entry dateMarch 20, 2013
   Publ. Institute   Publ. Computer Science