A Methodology for Transforming Java Applications Towards Real-Time Performance
Keywords:
Real-time, Java, VDM-RT, Methodology, TJARPAbstract
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.
Downloads
Published
How to Cite
Issue
Section
License
Reproduction permitted provided the source is explicitly acknowledged.
The authors have all rights to the reports.