开发者

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

开发者 https://www.devze.com 2023-01-22 18:58 出处:网络
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
开发者_运维百科

We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.

Closed 2 years ago.

Improve this question

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?


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.

  • AN/FPS-85 radar uses JavaRTS, and though this is a relatively low count, it's a rather high criticality application
  • US Navy's Aegis Weapon System uses PERC
  • US Navy's DDG-1000 uses IBM WebSphere RT
  • aicas' JamaicaVM is in use in avionics platforms, but they are understandably coy about specifics

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.


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.


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:

  • http://www.azulsystems.com/sites/default/files//images/wp_pgc_zing_v5.pdf
  • http://www.azulsystems.com/sites/default/files/images/c4_paper_acm.pdf


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

0

精彩评论

暂无评论...
验证码 换一张
取 消