30/06/2009

Real-time Java VMs

Although real-time Java is becoming well known, the specific Virtual Machines implementing its functionalities are still known only to the community. There is no list of VMs supporting real-time features, furthermore, every VM is implementing a different subset of RTSJ. 
Therefore, I am posting a list of RTSJ-compatible VMs that are available up to this date (sorted by first release date).
  • TimeSys RTSJ Reference Implementation Only licensed for non-commercial use. Runs on X86/Linux. Available at www.timesys.com.
  • Java RTS Sun - Java SE Real-time (Java RTS). Runs on Sparc/Solaris (Beta for SUSE Linux Enterprise Realtime 10, and Red Hat Enterprise MRG 1.0.). Available at http://java.sun.com/javase/technologies/realtime/rts/.
  • IBM WebSphere Real Time. IBM WebSphere Real Time V2 for Real Time Linux, running on main-line real-time Linux distributions (Red Hat MRG and Novell SLERT). However, there are limitations on the hardware supported. The main reason for the hardware limitation is that the supported models have modified firmware to allow better control over SMI event prioritization, in order to achieve determinism of the underlying hardware. Availale at www.ibm.com/software/webservers/realtime/.
Furthermore, other real-time, Java-like platforms have been developed, either commercial or academic projects. Usually, these VMs are not fully compliant with RTSJ.
  • OVM is an academia research project at Purdue University that implements RT VM. Available at http://www.ovmj.org
  • JamaicaVM implements RTSJ and a deterministic garbage collector. Runs on various platforms. Available at http://www.aicas.com/jamaica.html.
  • jRate (Java Real-Time Extension) is an extension of the GNU GCJ compiler front-end and runtime system which adds support for most of the features required by the RTSJ. Available at http://jrate.sourceforge.net/.
  • Aonix PERC is a commercial project targeting many hard real-time, safety critical and embedded systems. The PERC platform is introducing many trade-offs and therefore is not fully compliant with RTSJ, however, allows developers to target a broader scope of applications rather than having strict limitations as it is the case of RTSJ. Available at www.aonix.com/perc.
  • aJ100 is a hardware coded JVM. Available at www.ajile.com.
  • JRockit Real-Time JRockit Enterprise Java Runtime provided by ORACLE is a Java VM featuring real-time garbage collection suitable for soft real-time systems. Available at www.oracle.com/jrockit.
  • IBM/Apogee Aphelion is comprised of reliable and high performance JREs for deploying Java applications on devices based on embedded systems. Supports many OS platforms, further details at http://www.apogee.com/
  • [UPDATE: 07/2011] LJRT - Lund Java based Real-Time, http://www.robot.lth.se/java
  • [UPDATE: 07/2011] FijiVM - FijiVM, http://www.fiji-systems.com/, more also at this post.
Source: Real-time Java programming book, discussions in the Real-time Java Group.
Please, let me know if there is any VM missing in this list.

29/06/2009

Why This Blog?

The goal of this blog is to inform about the new technologies and trends in the domain of Real-time Java programming. Currently, there is no consistent source of information about RT Java, this blog will try to close this gap.

During the past few years, I have gathered some links, documents, experience and knowledge about Real-time Java. I would like to share them in this blog.

Anyone who would like to contribute and become a co-author is welcomed!