Proceedings of the 6th international workshop on Java technologies for real-time and embedded systems
Venue: ACM International Conference Proceeding Series; Vol. 343 (2008)

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. Designing real-time and embedded systems that implement their required capabilities, are dependable and predictable, and are parsimonious in their use of limited computing resources is hard; building them on time and within budget is even harder. Moreover, due to global competition for market share and engineering talent, companies are now also faced with the problem of developing and delivering new products in ever decreasing time frames. Embedded applications also include mission-critical and safety-critical systems in which critical human infrastructures and even human life is sometimes at stake. Therefore it is essential that the production of real-time embedded systems take advantage of languages, tools, and methods that enable higher software productivity. Ideally, developers should use a programming language that shields them from many accidental complexities, such as type errors, memory management, and steep learning curves. The Java programming language has become an attractive choice because of its safety, productivity, relatively low maintenance costs, and the availability of well trained developers. Although it has good software engineering characteristics, Java has often been deemed unsuitable for developing real-time embedded systems, mainly due to under-specification of thread scheduling and the presence of garbage collection. Recently, to address these problems, some significant advances have been made in real-time garbage collection algorithms and a number of extensions to Java have been introduced by such efforts as the Java Community Process Expert Group for the Real-Time Specification for Java (RTSJ). The intent of these specifications is the development of real-time applications by extending the Java memory model, providing stronger semantics in thread scheduling, and so on. Interest in real-time Java in both the research community and industry, because of its challenges and its potential impact on the development of embedded and real-time applications, has recently undergone a significant increase. This industry interest in robust, time-constrained computational platforms comes not only from developers of traditional embedded applications such as industrial automation, but also, for example, from developers of investment trading applications. Topics of interest to this workshop include, but are not limited to: &bull; New real-time programming paradigms and language features &bull;Industrial experience and practitioner reports &bull;Real-Time garbage collection for Java &bull;Real-time design patterns and programming idioms &bull;Formal models of real-time computation &bull;Extensions to the RTSJ &bull;Virtual machines and execution environments &bull;Memory management and real-time garbage collection &bull;Compiler analysis and implementation techniques &bull;Distributed real-time Java and Java-based distributed real-time middleware &bull;Scheduling frameworks, feasibility analysis, and timing analysis &bull;High-integrity and safety critical system support &bull;Java-based real-time operating systems and processors &bull;Exploiting multi-core systems and Java &bull;Direct device management in Java &bull;Transactional memory and Java