Verteilte Anwendungen, Plattformen und Systeme - Themen

Auf dieser Seite finden Sie ausgeschriebene offene Themen zu den Projektmodulen Verteilte Anwendungen, Plattformen und Systeme. Falls Sie sich für eines der Themen interessieren, wenden Sie sich bitte (gerne auch während des Semesters) an den genannten Betreuer. Häufig haben wir auch noch kurzfristig zusammengestellte Themen, bei denen wir nicht selten auch auf Ihre Vorlieben eingehen können. Sollte in der folgenden Liste nichts für Sie dabei sein, kontaktieren Sie bitte einen der Betreuer oder Prof. Hauck.

„User interface for the in.Crease person and committee module,“ Projektarbeit, F. J. Hauck (Betreuung), F. J. Hauck (Prüfer), Inst. of Distr. Sys., Ulm Univ., 2024 – Verfügbar.
in.Crease ist ein geplantes Informationssystem für Studierende. In Vorarbeiten wurde bereits ein Modul entworfen, um Personen und Gremien zu verwalten und geeignet darszustellen. Ziel dieses Projekts ist es die Anforderungen an die Darstellung von Personen und Gremien zu überarbeiten und neu zusammen zu stellen. Auch das Datenmodell soll auf Vollständigkeit und Konsistenz abgeklopft werden. Im Anschluss sollen UI-Elemente sowie entsprechende Berechtigungen für die einzelnen Use-Cases implementiert werden - je nach Umfang eventuell nur eine Teilmenge von wichtigen Use-Cases. Zu den Use-Cases gehören nicht nur lesende Zugriffe in Form von geeigneten Anzeigeelementen sondern auch Editier-, Anlege- und Löschfunktionen. Die Arbeit hat damit einen konzeptionellen Anteil sowie einen Implementierungsanteil, der mit TypeScript und Angular in Verbindung mit einem Redux-Store.
„Reconfiguration of BFT-SMaRt replica groups at run-time,“ Projektarbeit, F. J. Hauck (Betreuung), F. J. Hauck (Prüfer), Inst. of Distr. Sys., Ulm Univ., 2024 – Verfügbar.
State-machine replication (SMR) is a fault-tolerance concept where multiple servers (replicas) execute the same requests. Replicas are then able to replace each other in case of faulty servers. BFT-SMaRt is a popular framework to implement SMR. BFT-SMaRt is able to add and remove replicas from the replica group at runtime. Unfortunately only the latest of the added replicas can be removed again, which is obviously an odd restriction. It is likely that the reconfiguration part is just a proof-of-concept implementation. As part of this project the restrictions should be removed so that any replica can be removed by a reconfiguration request. This needs a cleanup in the internal software as replicas are internally numbered from 0 upwards and only the replica with the highest number can be removed. This numbering scheme has to be replaced by a more sophisticated solution.
„Liberating BFT-SMaRt from configuration files,“ Projektarbeit, F. J. Hauck (Betreuung), F. J. Hauck (Prüfer), Inst. of Distr. Sys., Ulm Univ., 2024 – Verfügbar.
State-machine replication (SMR) is a fault-tolerance concept where multiple servers (replicas) execute the same requests. Replicas are then able to replace each other in case of faulty servers. BFT-SMaRt is a popular framework to implement SMR. One of its drawbacks is that clients and replicas need the same set of configuration files. This projects is supposed to "liberate" replicas and clients mostly from these files. The configuration should be expressed by Java objects (BFT-SMaRt internally already does something like this). Further, these objects should be handed out by our commander application that is already able to initialise a group of replicas – currently by copying configuration files. This copy operation should be replaced by object passing. The student has to identify all accesses to configuration files and update the software accordingly. For clients there should be the choice of using configuration files or a serialised configuration object that could be retrieved from the commander app.
„Evaluation of multiple deterministic multi-threading approaches for state-machine replication,“ Projektarbeit, Bachelorarbeit oder Masterarbeit, F. J. Hauck (Betreuung), F. J. Hauck (Prüfer), Inst. of Distr. Sys., Ulm Univ., 2024 – Verfügbar.
Deterministic execution is crucial for state-machine replication, a fault-tolerance concept where multiple servers (replicas) execute the same requests. Replicas are then able to replace each other in case of faulty servers. In order to gain efficiency, multiple approaches for deterministic multithreading have been proposed, some of them by the Institute of Distributed Systems. The goal of this work is to evaluate multiple approaches and to measure their benefit, e.g. as speedup compared to a sequential solution. This has to be done with multiple workloads, of which some should be standard, e.g. the YCSB benchmark. Depending on the type of work the actual goals have to be adapted. As a Master's thesis, we expect contributions of the student in the direction of a qualified comparison which approaches are suitable for which workloads supported by measurements. Even specific workload creation may be required to underpin corner cases where a particular approach works best or worst.
„A Performance Evaluation of Gramine,“ Projektarbeit, A. Heß (Betreuung), F. J. Hauck (Prüfer), Inst. of Distr. Sys., Ulm Univ., 2024 – Verfügbar.
Intel SGX is a technology that allows to launch tamper-proof enclaves in main memory, which isolate parts of applications that deal with sensitive data. There is a broad spectrum of application scenarios, ranging from fault-tolerant systems to privacy-preserving machine learning approaches. Intel provides a native SDK that can be used to derive low-level wrapper functions from a function definitions provided in a DSL, which are then used to interact with the protected parts of the application applications. However, the SDK requires special care during the design process as well as C/C++ programming skills, in order to create a bulletproof interface to the enclave. The Gramine project promises to simplify the SGX application development process by providing functionality to wrap unmodified linux applications in Intel SGX enclaves. Since this approach trades in performance for usability, the goal of this project is to conduct a performance evaluation for different applications launched natively and wrapped with Gramine.
„A fault-aware message layer for state-machine replication,“ Projektarbeit, Bachelorarbeit oder Masterarbeit, F. J. Hauck (Betreuung), F. J. Hauck (Prüfer), Inst. of Distr. Sys., Ulm Univ., 2024 – Verfügbar.
State-machine replication is a fault-tolerance solution where multiple servers (replicas) execute the same requests. In order to manage the replicas, they have to handle complex replication protocols, a checkpoint mechanism etc. Obviously replicas have to communicate among each other and also with clients. As the currently available solutions are not really modular, we would like to build our own replication framework. As a first step there is a need for a messaging layer that is able to interconnect replicas and clients. Communication has to authenticated by various means (SSL, asymmetric and symmetric cryptography, message authentication codes). Further, the layer has to be aware of unavailable clients and replicas and to automatically reconnect as soon as these are back and up again. The communication layer should stick to gRPC fundamentals, e.g ProtocolBuffers but perhaps even more, to gain some interoperability and language independence. Part of the work is also an appropriate configuration concept, so that replicas know their buddy replicas and their key material. As part of a Master's thesis we would expect performance measurements and appropriate optimizations and the consideration of overload situations.