[Back]


Diploma and Master Theses (authored and supervised):

J. Zarnikov:
"Energy-efficient persistence for extensible virtual shared memory on the android operating system";
Supervisor: E. Kühn, T. Dönz; 185/1, 2012; final examination: 2012-06-12.



English abstract:
The result of the rapid growth of the Internet is that most computers in developed countries are always online. This always-connected state is now also spreading to mobile devices. This allows us to develop a new generation of distributed and mobile applications. However coordination of processes within a distributed application is a difficult task. Space based computing solves the coordination problem by writing information into a virtual shared medium called the space. The space (sometimes also called blackboard) decouples the processes and eliminates explicit communication between them.
eXtensible Virtual Shared Memory (XVSM) is a specification of a space based middleware. Until now MozartSpaces (the reference implementation of XVSM) did not support persistence which means that all data was lost when the space was shut down or crashed. Previously it was attempted to solve this problem by either implementing persistence as orthogonal functionality with aspects or by replacing the core of MozartSpaces with a database. Unfortunately both approaches have serious drawbacks: the incompatibility with the XVSM transactions and in the case of the aspect-base solution the problematic management of entry IDs. Therefore a new approach has to be found. Also to our knowledge there is currently no space based middleware that can run and store data on a mobile platform without the need for a server.
The solution proposed in this thesis is a new persistence layer which is tightly integrated into the core of MozartSpaces. The persistence layer hides the database-specific details and can use different database engines. Currently supported databases are Berkeley DB and SQLite but it is possible to add support for further databases.
A benchmark suite was developed to evaluate the performance of the persistence. The results show that both Berkeley DB and SQLite are very fast.
A nice side effect of using a database to store data is a significantly reduced memory footprint at runtime. An important requirement was also the energy-efficiency of the persistence on mobile devices running the Android operating system. This goal was reached only partially because there are no energy profilers that can measure the energy consumption of all relevant components on a scale small enough to be usable for code optimization.
Overall the new persistence implementation works very well. The new extended version of MozartSpaces offers good performance and remains compliant with the XVSM specification.

German abstract:
Das Ergebnis des rapiden Wachstums des Internets ist, dass die meisten Computer in entwickelten Ländern immer online sind. Dieser Zustand des Immer-verbunden-seins breitet sich jetzt auch auf mobile Geräte aus. Das ermöglicht uns eine neue Generation von verteilten mobilen Anwendungen zu entwickeln. Die Koordination der Prozesse einer verteilten Anwendung ist eine schwierige Aufgabe. Space Based Computing löst das Problem der Koordination indem Informationen in ein gemeinsames virtuelles Medium namens Space geschrieben werden. Der Space (manchmal auch Blackboard genannt) entkoppelt die Prozesse und eliminiert explizite Kommunikation zwischen ihnen.
eXtensible Virtual Shared Memory (XVSM) ist eine Spezifikation einer Space-Based-Middleware. Bis jetzt hat MozartSpaces (eine Implementierung von XVSM) keine Persistenz unterstützt, was bedeutet, dass alle Daten verloren gingen, wenn der Space abgeschaltet wurde oder abgestürzt ist.
Es wurde bereits versucht dieses Problem zu lösen, indem die Persistenz als orthogonale Funktionalität mit Aspekten implementiert wurde oder indem der Kern von MozartSpaces durch eine Datenbank ersetzt wurde. Es hat sich leider gezeigt dass beide Ansätze Nachteile mit sich bringen, nämlich die Inkompatibilität zu den XVSM-Transaktionen und im Falle der aspektbasierten Lösung das problematische Management der IDs der Einträge. Weiters gibt es derzeit nach unserer Kenntnis keine Space-Based-Middleware, die auf mobilen Geräten laufen und Daten speichern könnte ohne dabei einen Server zu benötigen.
Die in dieser Diplomarbeit vorgeschlagene Lösung ist eine neue Persistenzschicht, die in den Kern von MozartSpaces integriert ist. Die Persistenzschicht versteckt die datenbank-spezifischen Details und kann unterschiedliche Datenbanken verwenden. Derzeit werden Berkeley DB und SQLite unterstützt aber die Unterstützung weiterer Datenbanken kann einfach hinzugefügt werden.
Eine Reihe von Benchmarks wurde entwickelt um die Leistung der Persistenz zu evaluieren. Die Ergebnisse zeigen, dass sowohl Berkeley DB als auch SQLite sehr schnell sind. Eine schöner Nebeneffekt bei der Verwendung einer Datenbank ist, dass der Speicherverbrauch zur Laufzeit gesenkt werden konnte.
Eine wichtige Anforderung war auch, dass die Persistenz auf mobilen Geräten mit dem Android-Betriebssystem stromsparend ist. Dieses Ziel wurde nur teilweise erreicht, da die verfügbaren Energie-Profiler nicht den Stromverbrauch aller relevanten Komponenten messen können. Weiters ist die Granularität der Messungen für Code-Optimierungen nicht fein genug.
Insgesamt funktioniert die neue Implementierung der Persistenz sehr gut.
Die neue erweiterte Version von MozartSpaces bietet eine gut Performance ohne dabei die XVSM-Spezifikation zu verletzen.

Created from the Publication Database of the Vienna University of Technology.