哪种实时(RTSJ)JVM 最受欢迎?

23
目前实现Java实时规范(RTSJ)的JVM似乎只有少数几个。Sun/Oracle Java实时系统售价超过6000美元,IBM的实时WebSphere售价超过7000美元,因此许多Java开发人员可能永远没有机会使用它们。据称Oracle的JRockit是一种免费的实时Java实现,具有可预测、确定性行为,尽管我不确定,因为他们的文档非常重视营销语言。其他较小的实时JVM似乎存在风险,因为它们由小型组织开发,并且用户群较小。

哪些实时JVM是首选?哪些被开发人员最广泛使用、信任和喜爱?


Sun JVM有试用版本,如果您正在进行一些研究项目,也可以申请学术使用。JRockit看起来并不像RTSJ系统,它没有实现它。可能会提供一些软实时特性,如确定性垃圾收集器,但看起来这就是它所拥有的全部功能。您的延迟要求是什么?如果不低于约200微秒,则即使没有JRT也可以实现。 - Stas
2
实际上,在Ubuntu上使用OpenJDK,我测量了大量的抖动。在往返发送/接收时间约为17毫秒的情况下,相对较少的轮询中有大约相同数量的抖动。显然,硬件在抖动方面起着巨大的作用,而我的要求将与其他人的要求大不相同,因此我希望避开它们,并获得关于实时JVM的一般答案。我希望通过首先找到可信、可预测、确定性的JVM来学习和提供有关实时Java开发的信息。 - Matt
1
在纯C中进行的相同轮询仅产生了约10%的抖动。 - Matt
JRockit 可能最好被称为“软实时”JVM,并且不尝试提供 RTSJ 兼容性。它与您引用的其他 JVM 不属于同一领域。 - andersoj
2
我注意到一些相关问题上提到Oracle似乎已经终止了JavaRTS产品(2012年3月),但是没有任何公开信息可用。 - andersoj
4个回答

31

更新(2012年3月):甲骨文公司似乎已经悄悄解散了他们的JavaRTS开发团队。

对于这个问题,没有一个好的答案。当然,没有足够的关键质量来说当前最流行的RT JVM是什么。

我知道的美国国防系统使用IBM的WebSphere RT和PERC,航空平台使用aicas JamaicaVM。迄今为止,这些人大多没有太关注许可费用,而是更关注更高的程序风险。我曾与许多这样的项目合作,我发现产品质量很高,并且供应商在某些时候提供了非常出色的支持。

许多供应商都专注于特定的客户或领域,他们的设计和支持基础设施往往与此相一致。如果您有特定的应用程序配置文件,请告诉我们,也许我们可以为您提供更好的答案。 您提到的高许可成本反映了这些产品用户的高期望值,以及需求密度相对较低。开发人员社区(虽然有)也更加零散,因为具有实时或安全关键约束的系统通常具有更大的敏感性(国防、航空、SCADA),或受保护的专有价值(汽车)或两者兼而有之。JTRES会议是一个优秀的实时Java理论和实践论坛,该会议由学术界和技术娴熟的供应商组成。 在SO上相关:Java中仅限原始类型, 谁使用RTSJ.

8

确实,只有少数虚拟机实现了RTSJ。Oracle的JavaRT、IBM的实时WebSpere和aicas JamaicaVM,但Atego的PERC不是其中之一,甚至与之毫不相似。PERC具有一些专有的实时编程扩展。Oracle的JRocket也不是实时VM。

尽管PERC和JamaicaVM都来自比IBM或Oracle小的公司,但它们都拥有大量用户。大多数开发人员对PERC和JamaicaVM不太熟悉,因为它们主要用于嵌入式应用,而不是桌面或服务器应用。JamaicaVM被波音、西门子、蔡司和洛克希德马丁等大型企业使用,并已上市十多年。

如果您想尝试Java实时规范,则可以下载JamaicaVM个人版。它可在任何联网的Linux平台上使用。它可以从“http://www.aicas.com/jamaica-pe.html”免费下载。

JamaicaVM 不仅支持 RTSJ,而且具有完全抢占式垃圾回收器。这意味着可以编写实时代码,而无需使用作用域和不朽内存区域。 JamaicaVM 还具有静态或预编译器(AoT)编译器,因此实时性能不受 JIT 编译器的限制。仍然可以使用 RealtimeThreads、RawMemoryAccess、AsyncEventHandlers 和其他促进实时编程的 RTSJ 特性。

2

0
Aonix拥有最常用的RTSJ实现。他们提供从CDC到Java SE级别的广泛实时Java解决方案。

它们为什么比Sun的Java RTS、IBM等更常用?是因为Atego的Anoix Perc Raven“满足了最高级别的关键性,甚至包括FAA对机载系统所需的DO-178B软件安全指南中定义的A级吗?”它们价格更低吗?它们是最经过验证的吗? - Matt
你有一些可量化的证据表明Aonix(现在是Atego)最常用吗? - andersoj
1
请注意,并非所有的PERC JVM都完全符合RTSJ标准。这对许多用户来说可能无关紧要,但Atego公司已经采取了自己的方式来满足客户需求,并在RTSJ妨碍其发展时偏离了该标准。我认为这是可以接受的,而我与之合作过的各个客户也没有问题。可以说,Atego的CTO(以及RT Java的技术领袖)对RTSJ规范有一些重大的担忧。 - andersoj
我的唯一可量化的证据是他们网站上的引用数量。对于一个软件库来说,我认为这非常重要。此外,他们拥有从安全关键到实时的广泛实现范围。我知道并非所有实现都符合RTSJ标准,但对于某些用例,您可能需要牺牲兼容性。 - Deniz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接