Forschungsthemen
[DA] A Role-Oriented Virtual Machine
25.4.2018
Motivation
Today’s software developers have to deal with a tremendous increase in the complexity and context-dependence of modern software applications. Above all, future software systems must adapt themselves to changes in their immediate context and able to interact with other components in unforeseen ways (Piechnick et al. 2012). An established approach to model such changes is to implement the application with roles, because they allow for dynamically adapting parts of the system in response to context changes (Kühn et al. 2014). Due to the fact that object-oriented programming languages lack the notion of roles (Kühn et al. 2014), several researchers introduced special role-oriented programming languages (RPLs). Unfortunately, Recent analysis indicate, e.g., (Schütze and Castrillon 2017; Morgenstern 2018), that RPLs are still slow compared to an implementation with the Role Object Pattern (Bäumer et al. 1998) using only forwarding. More recently, the RoleVM
(Morgenstern 2018) showcased the benefits of invokedynamic
for fast true delegation (Lieberman 1986) for RPLs. However, this prototype had several limitations, most importantly, limiting the number of roles per player to one. Additionally, previous analysis either utilized coarse-grained benchmarks (Schütze and Castrillon 2017) or micro-benchmarks (Rahne 2014; Morgenstern 2018), yet neither respected best practices for rigorous performance evaluation (Georges, Buytaert, and Eeckhout 2007). This significantly limits the reliability of previous results.
Problem Definition
Currently, there exists no virtual machine (VM) for RPLs that supports crucial features of RPLs, such as, permiting objects to play multiple roles of multiple types simultaneously. Thus, this thesis will improve the RoleVM
wrt. the supported features of roles (Kühn et al. 2014) and the performance of the underlying dynamic method dispatch. In order to evaluate its performance, a fair benchmark must be performed. Yet, there exists no benchmark suite for evaluating RPL implementations. Consequently, this work will develop a benchmark suite that encompasses both macro- and micro-benchmarks following the best practices for benchmarks (Georges, Buytaert, and Eeckhout 2007). In conclusion, this will enable reproducible, reliable, and rigorous evaluations of RPL performance, as well as the analysis of the causes of the observed performance overhead (Schütze and Castrillon 2017).
Goals of This Thesis
To achieve these goals, this thesis will perform the following tasks:
- Survey role-oriented programming languages and their representation of roles at runtime and, in particular, in virtual machines,
- Identify the requirements for the native execution of roles within virtual machines,
- Develop a role-oriented virtual machine fulfilling these requirements,
- Develop an advanced benchmarking suite for role-oriented virtual machines including macro- and micro-benchmarks utilizing the Java Benchmarking Harness, and
- Evaluate the suitability and performance of the developed role-oriented virtual machine by applying the requirements and the established benchmarking suite, respectively.
Bäumer, Dirk, Dirk Riehle, Wolf Siberski, and Martina Wulf. 1998. “The Role Object Pattern.” In Washington University Dept. of Computer Science. Citeseer.
Georges, Andy, Dries Buytaert, and Lieven Eeckhout. 2007. “Adding Rigorous Statistics to the Java Benchmarker’s Toolbox.” In Companion to the 22nd ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications Companion, 793–94. ACM.
Kühn, Thomas, Max Leuthäuser, Sebastian Götz, Christoph Seidl, and Uwe Aßmann. 2014. “A Metamodel Family for Role-Based Modeling and Programming Languages.” In Software Language Engineering, 8706:141–60. Lecture Notes in Computer Science. Springer.
Lieberman, Henry. 1986. “Using Prototypical Objects to Implement Shared Behavior in Object-Oriented Systems.” ACM Sigplan Notices 21 (11). ACM: 214–23.
Morgenstern, Martin. 2018. “Analysis of the Representation of Roles In Virtual Machines Establishing Roles at Runtime.” Major Thesis, Faculty for Computer Science: Technische Universität Dresden.
Piechnick, Christian, Sebastian Richly, Sebastian Götz, Claas Wilke, and Uwe Aßmann. 2012. “Using Role-Based Composition to Support Unanticipated, Dynamic Adaptation-Smart Application Grids.” In ADAPTIVE 2012, The Fourth International Conference on Adaptive and Self-Adaptive Systems and Applications, 93–102.
Rahne, Matthias. 2014. “Untersuchung Paralleler Rollenbasierter Programmierung.” Bechalor thesis, Faculty of Computer Science: Technische Universität Dresden.
Schütze, Lars, and Jeronimo Castrillon. 2017. “Analyzing State-of-the-Art Role-Based Programming Languages.” In Companion to the First International Conference on the Art, Science and Engineering of Programming, 9. ACM.
Betreuer: Thomas Kühn