Foreword to the Second Edition

In his Foreword to the first edition of the Real-Time Specification for Java, written before the RTSJ had been completed, Doug Jensen stated that he expected the RTSJ "to become the first real-time programming language to be both commercially and technologically successful." Using the major advantage now accorded by hindsight, it seems clear that his optimism was not misplaced, even though his prediction cannot yet be completely verified.

Indeed, since its official release in 2001, the RTSJ and the community it has spawned has steadily and continuously matured to the point that there are now several viable implementations, many research papers, and a number of major real-time or embedded projects using the RTSJ. Thus, it now requires considerably less prescience to predict that the RTSJ will become the first real-time programming language to be both commercially and technologically successful.

It is interesting to consider that, as with many prior technology advances, the domain of applicability of the RTSJ has proven to be greater than its designers originally intended. Clearly, the RTSJ was targeted to real-time systems that can be described as systems whose correctness requires reasoning about their timing properties in addition to their functional properties, such as flight control or industrial sensor control systems. It has, moreover, now become clear that the RTSJ provides capabilities that greatly enhance Java's use in embedded systems, regardless of whether they require real-time performance. Embedded systems can be described as systems whose owners and users are not concerned, and may even be unaware, that computers are present. Examples cover an extremely wide spectrum from cell phones to air traffic control systems. In general, real-time systems

Thus, it has now become clear that the RTSJ's name does not adequately express its scope of applicability. The RTSJ is certainly targeted toward real-time systems by providing critical real-time capabilities such as explicit support for scheduling, bounded priority inversion, periodic RealtimeThreads, and even NoHeapRealtimeThreads for hard-real-time support. However, designers of embedded systems with no requirements, or only minimal requirements for real-time performance find the RTSJ useful because of capabilities such as AsyncEvents and AsyncEventHandlers, Clocks, Timers, and POSIXSignalHandlers. In fact, as implementers have increased their use of RTSJ-compliant platforms, they have discovered that handling POSIX/UNIX/Linux signals in RTSJ Java is far easier and far less error-prone than it has been in C or C++.

Change is a nearly universal property of successful standards. The only static standards are those that are not used. Thus, it is hardly surprising that the RTSJ has been continuously clarified, extended, and corrected since its initial release. Its maintainers, now under the direction of Peter Dibble from TimeSys, have carefully sought to ensure that existing applications and implementations will be unaffected or minimally affected by these updates, but such updates are a characteristic of all successful standards.

The RTSJ community is concurrently in the process of considering additional standards built on the RTSJ framework. The Open Group, in concert with several vendors and developers, is considering a Safety-Critical subset of Java based on the RTSJ. Several groups of developers are considering the creation of profiles of the RTSJ targeting specific application domains such as military command and control or consumer electronics.

As the RTSJ continues to mature, its community can be expected to further expand. At this point, it appears likely that the RTSJ will not only succeed, but it can be expected to make a significant difference in how real-time and embedded applications are designed, resulting in major improvements in responsiveness, maintainability, portability, and controlled development cost.

Indeed, it exactly these characteristics that have always been, and continue to be, the fundamental goals for all of the RTSJ's architects and contributors!

Doug Locke
Mount Lebanon, PA