HIDOORS logo
      High Integrity Distributed Object-Oriented Realtime Systems
Main Page
Objectives
Upcoming Events
Publications
News
Partners
Contact
internal

HIDOORS Objectives

Introduction

The continued rapid development of integrated circuit technology both in increased performance and reduced cost has made it economically feasible to build microprocessors into virtually every conceivable device. This is driving a massive shift from desktop applications to embedded systems. The PITAC [The (US) presidential IT advisory committee report to the president Information Technology Research: Investing in Our Future ] Feb'99 report describes this as the phenomenon of the ``disappearing computer.''

Not only are many traditional IT systems moving from visible desktop computers to invisible embedded computers in intelligent devices, but new applications are constantly being found for intelligent embedded systems. Industrial automation is becoming increasingly decentralized, relying on distributed embedded devices to acquire and preprocess data and run increasingly sophisticated applications programs for control and self diagnostics. New application domains for embedded controls are being created in automotive, avionics, medical equipment, surveillance, domestic appliance, and home entertainment industries. On top of this, mobile communications systems are riding this wave into everyone's pocket. Next generation mobile communications systems will expand the possibilities further.

What many of these applications have in common is that they interact with their environment in realtime and that they need to work reliably and deterministically. Increasingly, these systems are employed in safety critical environment, where human life and health depends on the proper functioning of computing devices. Thus, the safety and correctness of these systems are of utmost importance.

The PITAC report also notes that ``technologies to build reliable and secure software are inadequate.'' This is especially critical when the growth of applications far exceeds the increase in qualified programmers. Only by making programming embedded systems easier and safer can one hope to raise the productivity of programmers sufficiently to fill this gap. These problems are multiplied in a distributed environment. A standard object-oriented programming language that uses techniques like automatic memory management, protected pointer manipulation, and strong typing could go a long way to address these issues.

The Java programming language fills these criteria. It is quickly expanding into areas well beyond its original scope. Java is already finding its way into realtime critical applications, often in small embedded systems. The driving force behind this movement is the enormous advantage the use of this modern programming tool brings to software development in terms of increased safety and productivity.

Unfortunately, Java can not yet live up to the full requirements of embedded, realtime systems. So far, Java system providers have not payed much attention to the embedded systems market. Consequently, there are no truly realtime Java implementations that provide suitable interfaces for this market. From a technical point of view, there are several obstacles to the deployment of Java in embedded, realtime systems.

Several key scientific issues need to be solved before Java can be used for safety-critical realtime systems:

  • predictability (determinism) in the context of automatic memory management, multi-threading, and multiprocessing;
  • providing predictable realtime networking and distributed event handling;
  • the provision of adequate modeling and analysis tools for Java-based, distributed, realtime systems; and
  • adaptation to limited system resources (CPU power, memory, etc.).

Standardization efforts for embedded, realtime applications in Java are being undertaken by several international committees. The J-Consortium and the Java Community Process are the most important ones. Since the technology for making Java truly hard realtime capable is not yet widely understood and available, these efforts tend towards making Java applicable to safety critical, realtime systems by disallowing features like automatic memory management for realtime tasks. Though much of the work these groups are doing is important, failure to demonstrate hard realtime capable memory management techniques would result in Java being robbed of some of its most desirable features.

The goal of HIDOORS is resolve these problems by providing the full functionality of the modern programming language Java for the development of distributed, realtime and safety critical systems and to provide a powerful environment of tools that support modeling, analysis, and proof of correctness of systems developed in Java.

objectives

HIDOORS: bringing Java Technology to realtime and safety-critical applications

Objectives

The HIDOORS project must overcome major obstacles to the use of Java for software development in distributed, realtime and safety-critical applications, if it is to meet its project goals.

  • Current approaches for the application of Java for realtime and safety-critical applications focus on subsetting the language to a more predictable set of operations. Instead, this project will develop and implement techniques to enable a deterministic implementation of the full Java language. The implementation will support the full bandwidth of modern object-oriented software development for this application domain.
  • Though Java provides Remote Method Invocation (RMI) as a means to communicate between components in a distributed environment, this facility is inadequate for realtime distributed systems. HIDOORS will improve the efficiency and flexibility of RMI to provide for realtime network and distributed event support. This will enable distributed, embedded components to work together in real time.
  • Currently, no tools exist, that support the development and analysis of Java applications in distributed, realtime and safety-critical applications. Tools support must automate as much of the software development process as possible. HIDOORS will include the development of graphical UML-based modeling tools that facilitate the construction and verification of high integrity realtime systems in Java.
  • A major constraint in embedded, realtime system is resource restrictions: limited CPU power and memory are employed while maximum realtime performance and reliability is required. This project will focus on improving the memory and runtime performance of the system through the use of new compiler optimization techniques, while maintaining the determinism required for realtime and safety-critical systems.
  • For software developers to accept the resultant technology, the tools need to be integrated in a way to form a consistent, useful product. HIDOORS will integrate the new technologies, supporting tools for software development and analysis, and existing software development tools into a realtime Java integrated development environment.
  • The development of Java for realtime, distributed, embedded systems requires a stronger set of standards than currently available. Since the J Consortium is the organization most concerned with the issues of using Java for realtime and embedded system, participation in its ongoing standards efforts is paramount to success. HIDOORS will work together with applicable J Consortium working groups (HIP, RTDA, RTDM, etc.) to shape and demonstrate standards for realtime distributed applications.

Summary

There are currently several other research and development programs in place that propagate the use of Java in embedded systems. AJACS is a project with the goal of establishing Java as a base for automotive applications. Another related project is JOSES, which aims to harmonize the special hardware and software requirements of high performance embedded systems with the power and virtues of the fastest growing programming language: Java. These projects show the strong interest for Java in the area of embedded systems, but they do not provide a solution for realtime, distributed systems development in Java.

The results of the HIDOORS project will enable the European realtime software industry to apply the object-oriented paradigm of Java to the software development process for realtime systems and safety critical systems. HIDOORS will provide the missing technological links that enable the use of modern object-oriented software development methods for realtime, distributed applications.

Standardization of the technology is essential for its wide application. Therefore, HIDOORS partners are involved in the J-Consortium's Java standardization processes. HIDOORS will support the development of these standard by actively contributing to the J-Consortium working groups and providing reference implementation of standards proposed by the J-Consortium.

By combining a high integrity, object oriented platform for distributed, realtime systems development, HIDOORS will bring about a faster software development process, the ability to produce reliable, maintainable, and reusable software, and higher quality and trust in the developed systems. The consortium will not just design and implement the new system, but also test it in real world applications. The main thrust of HIDOORS is to improve the productivity software development for realtime, distributed systems by 30%, to reduce the time to market by 20% and hence increase the competitiveness of European industry.