Courses
Untersuchung der Repräsentation von Rollen in virtuellen Maschinen
Dipl.-Medieninf. Max Leuthäuser (max.leuthaeuser@tu-dresden.de)
24.03.2014
Motivation
Heutige verteilte und hochverfügbare Softwareinfrastrukturen müssen stets einen sich wechselnden Kontext antizipieren. Neue Geschäftsregeln und Funktionen müssen implementiert und an die jeweiligen Zielplattformen angepasst werden. Das Konzept der Rollenmodellierung und Rollenprogrammierung ist in der Literatur in verschiedenen Fachbereichen seit Jahrzehnten immer wieder aufgekommen und diskutiert wurden . Damit können kontextbezogene Informationen, insbesondere unter Betrachtung des dynamischen Wechsels von Kontexten, modelliert und umgesetzt werden. In zukünftigen Softwareinfrastrukturen ist daher die Einführung eines solchen Rollenkonzeptes nötig. Dessen Umsetzung mit bisherigen (objektorientierten) Programmiersprachen bedarf dabei aber stets der Generierung einer eigenen Laufzeitumgebung und Management-Code . Da die Ausdrucksstärke dieser Sprachen für essentielle rollen-spezifische Konzepte nicht ausreicht, um z.B. True Delegetion oder dynamisches Binden von Rollen abzubilden, müssen hier stets Entwurfsmuster und zusätzlicher Verwaltungscode erstellt werden. Dies führt jedoch zu fehleranfälligen sowie schlecht wart- und erweiterbaren Anwendungen.
Einen Ausweg bildet das Etablieren des Rollenkonzepts auf der Ebene der virtuellen Maschinen (VM). Erstens ermöglichen die reichen Befehlssätze etablierter VMs, die Repräsentation komplizierter Verhaltens- und Objektstrukturen. Zweitens, existieren für diese VMs bereits Werkzeuge zur Optimierung und Codeanalyse. Drittens, ermöglicht dieser Ansatz, rollenbasierte Programme auf allen gebräuchlichen Plattform auszuführen. Damit bilden sie die perfekte Grundlage für die plattformunabhängige Ausführung von rollenbasierten Programmen.
Problemstellung
Aktuell gibt es keine VM, welche die Ausführung rollenbasierter Programme nativ unterstützt. Im Rahmen dieser Arbeit soll daher ein geeigneter Prototyp einer Rollen-VM entwickelt werden, die auf moderne VMs aufbaut, sowie einen minimalen Befehlssatz für die Ausführung rollenbasierter Programme unterstützt. Das umfasst die Repräsentation, Manipulation, und Verwaltung von Rollen, Compartments, und Relationships zur Laufzeit. Zusätzlich muss die entwickelte Lösung leicht zu warten sowie zu erweitern sein.
Forschungsfragen
Um diese Ziele zu erreichen müssen die folgenden Teilaufgaben bearbeitet werden:
- Umfangreiche Literaturrecherche zur Einordnung des Rollenkonzepts und deren Repräsentation zur Laufzeit,
- Ableitung der Anforderungen für die Ausführung des Rollenkonzepts in einer VM,
Untersuchung und Vergleich dreier etablierter VMs anhand dieser Anforderungen, zum Beispiel:
- Java’s VM, entwickelt von Oracle
- .Net CLR, entwickelt von Microsoft
- LLVM, entwickelt von LLVM Developer Group
- Prototypische Implementierung einer Rollen-VM und
Evaluation dieser Implementierung anhand der Anforderungen, eines Beispiels sowie umfangreicher Testfälle.