实时Java互操作性

5
我想知道 JRE6 和 rtsj 的 JVM 之间的互操作性如何。看起来我必须只使用它们的实现(因为代码将使用它们的 JVM 进行解释),所以我不能使用 Java 6 提供的许多功能。它能支持 GUI 吗?(例如,修改工业过程的参数)。
我可能错了,希望得到您的反馈。
此外,似乎有更多的 Java 实时实现。你用过哪一个,最喜欢哪一个?
3个回答

3
请看我的另一个回答,了解更多RTSJ商业级实现的示例。最新版本(2.1)与JDK1.5兼容,因此您应该有可用的Swing / AWT。
虽然在同一JVM中编写GUI以执行实时进程是可行的,但这不是一个好的架构决策。更可能的是,您希望将实时行为隔离在一个JVM中,并提供可分离的接口,该接口在单独的内存空间中实现GUI。
原则上,您应该能够编写RTSJ代码,使其在非实时线程(我已经做了很多这样的工作)运行在同一JVM中,但要正确同步可能会很困难。

3
为了提供实时行为,JVM需要非常具体的工程化。这包括在操作系统级别进行集成,以获取主机操作系统的实时调度功能。
例如,Sun实时JVM与J2SE5兼容。http://java.sun.com/javase/technologies/realtime/faq.jsp#4 通常,任何提供特定功能(如安全性或实时行为)的系统(操作系统、JVM等)的专门实例都倾向于落后于通用版本。
至于在实时环境中使用GUI,您应该研究使用类似JMX、RMI或Web服务(最轻量级的)的2层客户端-服务器控制实时过程。直接在实时代码中使用GUI似乎会引入许多潜在问题,因为它试图在实时约束条件下执行。

如果你有一个实时GUI工具包,那就很好。将关注点分离成应用程序和UI层(或者更加疯狂),但是要记住,对于某些工作,UI必须是实时的。 - Tim Williscroft
肯定会有需要人类输入的系统,但我觉得实时系统因为等待人类输入而阻塞的想法是矛盾和有趣的。不过,如果确实需要人类输入,那么这可能非常关键。 - Dave Stenglein
不要阻塞用户界面,但系统必须等待用户。那么防抱死制动呢?电子油门呢? - Tim Williscroft

0
正如this书所描述的那样,Sun Java的JRE和rtsj实现之间可以进行互操作。

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