ada-java middleware for legacy software modernization
The portability and scalability benefits of Java [1, 2] combined with improved economies of scale resulting from its popularity are motivating many organizations to switch to Java. As organizations switch to Java for new development, many face difficult challenges with respect to maintenance and evolution of their existing legacy systems. In certain critical embedded and real-time domains, important legacy systems are implemented in the Ada language. This paper describes a middleware approach to enable efficient and robust integration of Ada and Java software into mixed-language software systems. Though the technology is designed to generalize to all Ada-Java mixed-language applications, this paper focuses attention on the special challenges unique to stack management of temporary objects, as characterized by the Ravenscar profile of Ada 95 and the JSR-302 subset of traditional Java. The middleware design, known as Ada-Java Method Invocation (AJMI), simplifies inter-language calls, extends object-oriented abstractions across language boundaries, and enables reliable sharing of stack-allocated objects which are integral to the use of Ada and Java in safety-critical systems.
ada java software modernization real-time safety-critical mission-critical high-integrity systems object oriented development mixed-language development