A Methodology for Transforming Java Applications Towards Real-Time Performance - Qualen, Mads von; Andersen, Martin Askov (Technical Report Electronics and Computer Engineering, 2013)
The development of real-time systems has traditionally been based on low-level programming languages, such as C and C++, as these provide a fine-grained control of the applications temporal behavior. However, the usage of such programming languages suffers from increased complexity and high error rates compared to high-level languages such as Java. The Java programming language provides many benefits to software development such as automatic memory management and platform independence. However, Java is unable to provide any real-time guarantees, as the high-level benefits come at the cost of unpredictable temporal behavior. This thesis investigates the temporal characteristics of the Java language and analyses several possibilities for introducing real-time guarantees, including official language extensions and commercial runtime environments. Based on this analysis a new methodology is proposed for Transforming Java Applications towards Real-time Performance (TJARP). This method motivates a clear definition of timing requirements, followed by an analysis of the system through use of the formal modeling language VDM-RT. Finally, the method provides a set of structured guidelines to facilitate the choice of strategy for obtaining real-time performance using Java. To further support this choice, an analysis is presented of available solutions, supported by a simple case study and a series of benchmarks. Furthermore, this thesis applies the TJARP method to a complex industrial case study provided by a leading supplier of mission critical systems. The case study proves how the TJARP method is able to analyze an existing and complex system, and successfully introduce hard real-time guarantees in critical sub-components.