Over 90 percent of all microprocessors are now used for real-time and embedded applications, and the behavior of many of these applications is constrained by the physical world. Higher-level programming languages and middleware are needed to robustly and productively design, implement, compose, integrate, validate, and enforce real-time constraints along with conventional functional requirements and reusable components. It is essential that the production of real-time embedded systems can take advantage of languages, tools, and methods that enable higher software productivity. The Java programming language has become an attractive choice because of its safety, productivity, its relatively low maintenance costs, and the availability of well trained developers.
Although it features good software engineering characteristics, standard Java is unsuitable for developing real-time embedded systems, mainly due to under-specification of thread scheduling and the presence of garbage collection. These problems are addressed by the Real-Time Specification for Java (RTSJ). The intent of this specification is the development of real-time applications by providing several additions such as extending the Java memory model and providing stronger semantics in thread scheduling.
Interest in real-time Java in both the research community and industry has recently increased significantly, because of its challenges and its potential impact on the development of embedded and real-time applications. The goal of the proposed workshop is to gather researchers working on real-time and embedded Java to identify the challenging problems that still need to be solved in order to assure the success of real-time Java as a technology, and to report results and experiences gained by researchers.
The following two topics are of special interest:
* Multiprocessor and distributed real-time Java
* Verification and validation of real-time Java programs
Nowadays, real-time systems demand more functionality than in previous years. Consequently the execution platforms are often multiprocessors or distributed systems. Although the Real-Time Specification for Java has addressed some multiprocessor issues, other issues are still outstanding. Furthermore, defining the appropriate RTSJ abstractions for distributed real-time programming is still an open topic.
Real-time programs are often components of safety-critical systems. Such applications requires thorough validation through testing and analysis. In this context there is much research within the areas of model checking, abstract interpretation, and other analysis techniques that apply to real-time Java in general and in particular the specialised Safety Critical Java (SCJ) profile.