Please use this identifier to cite or link to this item: http://dx.doi.org/10.14279/depositonce-3076
Main Title: Optimized Aspect Execution Mechanisms inside Virtual Machines for Embedded Systems
Translated Title: Optimierte Aspektausführungs-Mechanismen innerhalb von Virtuellen Maschinen für Eingebettete Systeme
Author(s): Hundt, Christine
Advisor(s): Glesner, Sabine
Granting Institution: Technische Universität Berlin, Fakultät IV - Elektrotechnik und Informatik
Type: Doctoral Thesis
Language: English
Language Code: en
Abstract: Der rasant wachsende Mobilgerätemarkt verlangt nach immer komplexeren Anwendungen für eingebettete Mobilgeräte, wie Smartphones. Um diese Komplexität beherrschbar zu machen und gleichzeitig die Produktzyklen möglichst kurz zu halten, ist es nötig fortgeschrittene Softwareentwicklungsmethoden anzuwenden. Die aspektorientierte Programmierung (AOP) stellt fortgeschrittene Modularisierungs- und Abstraktionsmechanismen zur Verfügung. Die wichtigsten Vorteile dieses Konzeptes sind die verbesserte Wartbarkeit, Wiederverwendbarkeit und Erweiterbarkeit von Anwendungen. Darüber hinaus ist dynamische Aspektorientierung dazu geeignet die dynamische Anpassung von mobilen Anwendungen an wechselnde Kontexte, wie z.B. den Standort, zu realisieren. Allerdings schränkt der Overhead, der durch die zusätzlichen Abstraktionsmechanismen entsteht, die Anwendbarkeit auf eingebettete Mobilgeräte ein, da diese im Vergleich zu Desktop PCs beschränkte Ressourcen (CPU, Speicher) aufweisen. Um dieses Problem zu bewältigen, präsentieren wir eine Reihe von Optimierungen, welche den Overhead von typischen AOP-Mechanismen signifikant reduzieren und damit AOP für eingebettet Mobilgeräte anwendbar machen. Die Grundlage unserer Arbeit ist eine gründliche Analyse des Overheads, der typischerweise durch die Realisierung von AOP-Mechanismen entsteht. Die Kernidee unseres Ansatzes ist eine tiefe Integration der AOP-Mechanismen in die virtuelle Maschine. Zu diesem Zweck verschieben wir diese Mechanismen, wie etwa die Registrierung von aktiven Aspekten, auf die Ebene der JVM. Weiterhin optimieren wir die Ausführung von AOP Programmen durch die Einführung von Cache-Mechanismen, sowie spezialisierten Bytecode-Instruktionen, die auf die Ausführung von AOP-Mechanismen zugeschnitten sind. Darüber hinaus analysieren wir AOP-spezifische semantische Code-Eigenschaften und entwickeln darauf aufbauend Optimierungen, die sich diese Eigenschaften und typische AOP Benutzungsschemata zunutze machen. Zusätzlich zu den AOP-Optimierungen realisieren wir einen effizienten dynamischen Aspekt-Deploy Mechanismus. Wir wenden unsere Optimierungen auf die Java-basierte aspektorientierte Programmiersprache ObjectTeams an, indem wir die extrem kleine und für eingebettete Systeme portierte JamVM erweitern. Um unseren Ansatz zu evaluieren führen wir Mikro-Benchmarks aus und untersuchen den Effekt unserer Optimierungen auf eine echte Anwendung. Unsere Evaluierung zeigt eine erhebliche Performanz-Steigerung für die Aspekt-Aktivierung und die Aspekt-Ausführung von ObjectTeams. Unsere Optimierungen verbessern die Performanz von häufig verwendeten AOP-Konstrukten um bis zu 90%. Gleichzeitig verringern wir die Code-Größe adaptierter Klassen, was ebenfalls wichtig ist für kleine Geräte. Schließlich zeigen wir mit unserer Fallstudie, der Spieleanwendung OTPong, dass unser Ansatz in der Lage ist, die Ausführungszeit von echten Anwendungen signifikant zu optimieren. Unser wichtigster Beitrag ist die signifikante Reduzierung des Overheads von höheren AOP-Konstrukten, die wir durch unserer Experimente untermauern konnten. Der Erfolg der Optimierungen zeigt, dass fortgeschrittene höhere Abstraktionstechniken wie AOP effizient auf eingebetteten Mobilgeräten verwendet werden können. Außerdem zeigt unserer Arbeit, wie effizientes dynamisches Aspekt-Deployment auf der Ebene der JVM umgesetzt werden kann. Dadurch konnten wir die dynamischen Fähigkeiten von ObjectTeams maßgeblich erweitern.
The rapidly growing mobile market has stimulated the demand for more and more complex custom applications for embedded mobile devices, for example, smart phones. To manage this complexity and, at the same time, to keep the time to market small, advanced software engineering methods have to be applied. Aspect-oriented programming (AOP) provides advanced modularization and abstraction mechanisms. The main advantages of this concept are improved maintainability, reusability, and extensibility of applications. Furthermore, dynamic AOP can be used to implement the dynamic adaptation of mobile device applications to changing contexts, like the location. However, the overhead introduced by the additional abstraction mechanisms limits the applicability to embedded mobile devices because they have limited resources (CPU, memory) compared to desktop PCs. To overcome this problem, we present a set of optimizations that significantly reduce the overhead of common AOP mechanisms and, finally, make AOP applicable for embedded mobile devices. The foundation of our work is a thorough analysis of the overhead that is typically generated by the realization of AOP mechanisms. The key idea of our approach is a deep integration of AOP mechanisms into the virtual machine. To this end, we shift mechanisms like the registration of activated aspects to the level of the JVM. Furthermore, we optimize the execution of AOP programs by introducing caching mechanisms and specialized bytecode instructions that are tailored for the execution of AOP mechanisms. Moreover, we analyze AOP-specific semantic code properties in order to develop optimizations that utilize these AOP-specific semantic information and that exploit typical AOP usage schemes. In addition to the AOP optimizations, we realize an efficient dynamic aspect deployment mechanism. We apply our optimizations to the Java-based aspect-oriented programming language ObjectTeams by extending the extremely small and portable JamVM Java virtual machine. To evaluate our approach, we execute micro benchmarks, investigate the effect of our optimizations on a real-world application, and finally discuss the transferability of our optimizations to other approaches. Our evaluation shows a considerable performance gain for the aspect activation and the aspect execution of ObjectTeams. In particular, we demonstrate that our optimizations improve the performance of commonly used AOP mechanisms by up to 90%. At the same time, we reduce the code size of the adapted classes, which is also important for small devices. Finally, with our case study, namely the OTPong game application, we show that our approach is capable of significantly optimizing the execution time of real-word applications. Our main contribution is a significant reduction of the overhead of high-level AOP constructs, which is also demonstrated by the results of our experiments. The success of the optimizations provides evidence that advanced high-level abstraction techniques like AOP can be efficiently used in embedded mobile devices. Furthermore, our work shows that efficient dynamic aspect deployment can be supported on the level of the JVM. This substantially enhances the dynamic capabilities of ObjectTeams.
URI: urn:nbn:de:kobv:83-opus-33786
http://depositonce.tu-berlin.de/handle/11303/3373
http://dx.doi.org/10.14279/depositonce-3076
Exam Date: 4-Nov-2011
Issue Date: 11-Jan-2012
Date Available: 11-Jan-2012
DDC Class: 004 Datenverarbeitung; Informatik
Subject(s): Aspektorientierte Programmierung
Eingebettete Systeme
Laufzeitumgebungen
Optimierung
Virtuelle Maschinen (Java)
Aspect-oriented Programming
Embedded Systems
Java Virtual Machine
Optimization
Run-time environments
Usage rights: Terms of German Copyright Law
Appears in Collections:Technische Universität Berlin » Fakultäten & Zentralinstitute » Fakultät 4 Elektrotechnik und Informatik » Institut für Softwaretechnik und Theoretische Informatik » Publications

Files in This Item:
File Description SizeFormat 
Dokument_44.pdf3,23 MBAdobe PDFThumbnail
View/Open


Items in DepositOnce are protected by copyright, with all rights reserved, unless otherwise indicated.