Forschungsthemen
[GB] Untersuchung dynamischer Datentypen in der JVM im Kontext rollen-basierter Programmierung
Moderne 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. Es existiert jedoch im Moment keine passende Laufzeitumgebung um dieses Rollenkonzept auf Implementierungsebene zu etablieren. Bisherige Systeme leiden unter der Notwendigkeit der Generierung einer eigenen Laufzeitumgebung und Management-Code.
Mit Einführung der invokedynamic Bytecode-Instruktion in Java 7 bietet sich ein interessantes neues Konzept in statisch getypten JVM-Sprachen. Erstens erlaubt dieses das Erzeugen von dynamische Datentypen, welche für das Rollenkonzept vorteilhaft sind. Zweitens können dynamische Methodenaufrufe emuliert werden, welche einen Ansatzpunkt für rollen-dynamischen Methoden-Dispatch ergeben. Damit bildet diese neue Bytecode-Instruktion eine gute Grundlage für die Umsetzung von rollenbasierten Programmen auf der JVM.
Aktuell gibt es keine Laufzeitumgebung, welche die Ausführung rollenbasierter Programme nativ unterstützt. Im Rahmen dieser Arbeit soll daher ein Prototyp im Zusammenspiel mit der invokedynamic Bytecode-Instruktion und einer geeigneten JVM-basierten, statisch getypten Programmiersprache entwickelt werden. Das umfasst die Repräsentation, Manipulation, und Verwaltung von Rollen und Relationships zur Laufzeit. Zusätzlich muss die entwickelte Lösung leicht zu warten sowie zu erweitern sein.
Um diese Ziele zu erreichen, sind die folgenden Teilaufgaben zu bearbeiten:
- Umfangreiche Literaturrecherche zur Einordnung des Rollenkonzepts und deren Repräsentation zur Laufzeit in statisch getypten Programmierprachen,
- Ableitung der Anforderungen für die Ausführung des Rollenkonzepts im Zusam- menhang mit InvokeDynamic,
- Untersuchung und Einordnung der Vor- und Nachteile der Umsetzung mit Invoke- Dynamic,
- Prototypische Implementierung und
- Evaluation dieser Implementierung anhand der Anforderungen, Beispielen und um- fangreichen Testfällen.
Betreuer: Max Leuthäuser