Over a million developers have joined DZone.

Interview: John Pampuch on Java RTS

DZone's Guide to

Interview: John Pampuch on Java RTS

· Java Zone ·
Free Resource

Get the Edge with a Professional Java IDE. 30-day free trial.

Timing, rather than speed, is the core concern of of Sun Microsystem's Java Real-Time System (Java RTS). "The ability to reliably and predictably respond to real-world events" is its purpose. John Pampuch is the Director of VM Technology in the Java Platform Group at Sun Microsystems. His group delivers the Java VM for Java SE, Embedded Java SE, and Java RTS. Below he introduces Java RTS and talks about the latest release, 2.1.

In a nutshell, what is Java RTS?

Java RTS is Sun's Java SE platform that implements JSR-1. The implementation makes Java a more deterministic platform enabling it to meet rigorous timing requirements of mission critical applications.

Who needs it or who will be using it?

Simply put, application developers who need predictable response time from their applications. Historically, conventional Java trades off ease of use for, among other things, predictable response time. Java RTS, on the other hand, has focused on delivering highly predictable response time, and dependable thread priority.

For control systems (for example automotive, avionics, robotics, etc.), the value of Java RTS is straightforward. It is a better tool for developing applications. It provides better tools for development, debugging, and offers a higher-level of abstraction for the application than is practical with C or assembler. As applications get more complex, better tools become more and more critical.

Further, for some kinds of enterprise applications, like stock trading systems, temporal correctness can make the difference between making millions and losing millions. While it is possible to create such applications in C, or worse, in assembler, don't forget that there can be unexpected unpredictability found there too.

What's the history of the project?

Java RTS is Sun's commercial implementation of JSR-1. That is the real starting point for Java RTS. JSR-1, the "Real-Time Specification for Java", jointly submitted by IBM and Sun, was a collaboration of experts from many disciplines with a focus on real-time application programming. Greg Bollella was IBM's lead on this JSR. Later, he came to Sun to drive the Sun's product development.

Who's working on it?

In addition to Greg, Sun has a team of engineers lead by David Therkelsen in Grenoble France: Bertrand Delsart, Romain Guider, Olivier Lagneau, Frederic Parain, and Roland Westrelin. David Holmes, in Australia, is another contributor on this team.

Where are things right now?

Java RTS 2.1 has been released.

What are the newest key features?

This release has added many new debugging, monitoring and serviceability features, but the big news is Linux support. Earlier releases only supported Solaris, both SPARC and x86, but this release also includes support for SUSE Linux Enterprise Real-Time (SLERT). We expect to support a future release of Red Hat MRG as well.

What are your personal favorite features?

Without a doubt, my personal favorite is real-time garbage collection. With RTGC, Java developers can get high-quality real-time services for their applications using most of the constructs and services that they are already familiar with. On the other hand, DTrace is cool, and is a big help in finding a whole range of bugs.

What kind of tool support is there?

Aside from DTrace, many of the tools that work with the regular Java platform work too, like Visual VM, NetBeans IDE, most profilers and debuggers, etc. Also, there are included tools like the JRTS Thread Scheduling Visualizer, and a tool to help in configuring ITC.

How does one get started with all of this?

Start with:


From here, you can get evaluation downloads, blogs, support, news and many other features and documents.

Get the Java IDE that understands code & makes developing enjoyable. Level up your code with IntelliJ IDEA. Download the free trial.


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}