Forschungsthemen
[BA] Towards Change in Role-based Software Systems
Todays distributed and highly available software infrastructures always need to anticipate changing context.
New business rules and functions should be implemented.
The concept of role modeling and programming is frequently discussed for decades across different scientific areas.
It allows the modeling and implementation of context dependent information w.r.t. dynamically changing context.
Hence future software infrastructure have the intrinsic need to introduce such a role concept.
But even after implementing such a system one needs to be able to update and adapt it to changing requirements or applying new features by adding, removing or changing the roles and relationships it contains.
When handling upcoming change in a software system based on the Java Virtual Machine using roles and compartments there exists no way of updating the participating software objects (like roles, compartments and relationships) without restarting the system.
Nevertheless, there are already some techniques available for hot swapping (e.g. JRebel).
However, e.g. the Java HotSwap VM has some serious limitations since no structural changes in classes are allowed.
This means that adding new methods or fields to a class and perform the hot swapping is impossible.
Only method bodies can be exchanged. This is far to limiting in the context of role based programming.
Currently there exists no technique that is able to handle the evolution of roles, compartments, and relationships at runtime.
Luckily there is a new experimental JVM available called Dynamic Code Evolution VM supporting unlimited class redefinition at runtime.
Thus, the goal of this project is to develop and evaluate an implementation allowing change of role based software systems at runtime based on DCEVM.
In particular, this includes the manipulation and management of roles, compartments and relationships at runtime. In addition to that, the provided solution must be easy to maintain and extend to enable further development.
To achieve these goals, the student must perform the following tasks:
- Survey the literature to establish the role concept and its representation at runtime,
- Derive a list of requirements for the evolution of roles, compartments, and relationships at runtime,
- Investigate and evaluate different hot swapping technologies and frameworks, i.e.:
- Java HotSwap VM
- JRebel
- DCEVM
- Develop a prototypical solution, and
- Evaluate this implementation by applying the requirements, implementing an example, and extensive test-cases.
Betreuer: Max Leuthäuser