Which real-time (RTSJ) JVM is most preferred? [closed]
Asked Answered
D

4

23

There seems to be only a handful of JVMs that are implementations of the Real-Time Specification for Java (RTSJ). The Sun/Oracle Java Real-Time System is over $6000 and IBM's real-time WebSphere is over $7000, so many Java developers may never have the opportunity to use either of them. Oracle's JRockit seems to be a free real-time Java implementation with predictable, deterministic behavior, although I am not sure, since their documentation is pretty heavy on marketing language. Other smaller real-time JVMs seem risky by virtue of being developed by small organizations and having smaller user-bases.

Which real-time JVMs are preferred? Which are most used, trusted, and loved by developers?

Deep answered 29/10, 2010 at 12:45 Comment(5)
Sun JVM has a trial version, also you can apply for academic use, if you are doing some research project. JRockit doesn't look like a RTSJ system at all, it doesn't implement it. Probably it will give some features of soft-real time, like Deterministic garbage collector, but it looks like that's all what it has. What are your latency requirements? If it is not less than ~200 microseconds, it is achievable even without JRT.Loram
Actually, using OpenJDK on Ubuntu, I've measured a large amount of jitter in polling. With round trip send/receive times of ~17ms, there is about the same amount of jitter over a relatively small number of polls. Obviously hardware has a huge play in jitter, and my requirements are going to be much different that other people's requirement, so I'd like to steer clear of them and get general answers regarding real-time JVMs. I hope to learn and provide information about real-time Java development by first finding a trusted, predictable, deterministic JVM.Deep
The same polling done in pure C produced only ~10% jitter.Deep
JRockit is probably best called a "soft real-time" JVM, and makes no attempt to offer RTSJ compliance. It's not really in the same domain as the other JVMs you've cited.Sissel
I've noted on some of the related questions that Oracle appears to have terminated the JavaRTS product (March 2012) but there isn't any public information available.Sissel
S
31

Update (March 2012): Oracle appears to have quietly disassembled their JavaRTS development team.

There isn't a good answer to this question. There certainly isn't enough critical mass to say there's a current most-popular RT JVM.

US Defense systems I'm aware of use JavaRTS, IBM's WebSphere RT, and PERC. Aviation platforms use aicas JamaicaVM. Most of those folks haven't been too concerned about licensing costs, to date. They are concerned by much higher program risks. I've worked with a number of these programs, and I find that the products are of high quality, and there is (at times extraordinary) support from the vendors.

Many of the vendors have focused on specific clients or domains, and their designs and support infrastructure tend to fall in line with that. If you have a specific application profile in mind, maybe we can get you a better answer.

The high licensing costs you cite reflect the high expectations users of these products have, and the relatively low density of the demand. The developer community (such as it is) is also more fragmentary because systems with real-time or safety-critical constraints are typically of greater sensitivity (defense, aviation, SCADA) or protected proprietary value (automotive) or both. One excellent forum for real-time Java theory and practice is the annual JTRES conference, which is a close-knit group of academics and technically-savvy vendors.

Related on SO: Primitives-only in Java, who uses RTSJ.

Sissel answered 3/11, 2010 at 1:37 Comment(0)
M
8

It is true, that there are only few virtual machines that implement the RTSJ. Oracle's JavaRT, IBM's real-time WebSpere, and aicas JamaicaVM, but PERC from Atego is not one of them, not even remotely. PERC has some proprietary extensions for realtime programming instead. Oracle's JRocket is also not a realtime VM.

Both PERC and JamaicaVM, although they are both from smaller companies than IBM or Oracle, have substantial user bases. Most developers are less familiar with PERC and JamaicaVM because they are used primarily for embedded applications, not desktop or server ones. JamaicaVM is being used by major corporations such as Boeing, Siemens, Zeiss, and Lockheed Martin and it has been on the market for over ten years.

If you would like to try out the Real-Time Specification for Java, then you can download the JamaicaVM Personal Addition. It can be used on any Linux platform that is on the network. It is available from "http://www.aicas.com/jamaica-pe.html" free of charge.

The JamaicaVM not only supports the RTSJ, but also it has a fully preemptive garbage collector. This means that one can write realtime code without having to resort to using scoped and immortal memory areas. JamaicaVM also has a static or ahead of time (AoT) compiler, so that realtime performance is not inhibited by a JIT compiler. One can still use RealtimeThreads, RawMemoryAccess, AsyncEventHandlers, and other features of the RTSJ that promote realtime programming.

Mittiemittimus answered 23/6, 2012 at 14:18 Comment(0)
E
2

Despite Azul Zing is not an RTSJ implementation (but rather a J2SE implementation), they claim this JVM is capable of running real-time applications due to the pauseless C4 garbage collector.

More on C4:

Estes answered 27/11, 2014 at 7:56 Comment(0)
B
0

Aonix has most used RTSJ implementation. They have a wide range of real-time java solutions from CDC to Java SE level.

Boche answered 30/10, 2010 at 9:39 Comment(4)
Why are they most used in comparison to Sun's Java RTS, IBM's, etc.? Is it because Atego's Anoix Perc Raven "satisfies the highest levels of criticality, even Level A as defined in the DO-178B software safety guidelines required by the FAA for airborne systems?" Are they less expensive? Are they the most proven?Deep
Do you have some quantifiable evidence that Aonix (now Atego) is most used?Sissel
Also note that not all PERC JVM's are completely RTSJ compliant. This may be irrelevant for many users, but Atego folks have done their own thing to get their customers what they need, and deviate from the RTSJ when it gets in the way. I'm OK with that, and the various customers of theirs with whom I've worked have no problem. I think it's fair to say that the CTO at Atego (and a technical leader in RT Java), has some significant concerns with the RTSJ spec.Sissel
My only quantifiable evidence is number of references in their web site. For a software library, I think this is very important. Also they have a wide range of implementations from safety critical to RT. I know that not all of them RTSJ compliant but for some of the use cases you may need to sacrifice compatibility.Boche

© 2022 - 2024 — McMap. All rights reserved.