2009-02-04 119 views
5

我想知道它是如何在JRE6和从rtsj JVM之间的互操作性。似乎我只能使用它们的实现(因为代码将使用它们的JVM进行解释),所以我不能使用Java 6提供的许多功能。 它可以支持GUI吗? (比如说修改一个工业过程的参数)。实时Java互操作性

我可能是错的,希望得到你的一些反馈。

此外,它似乎是更实时的Java实现。你最喜欢哪一个?你最喜欢哪一个?

回答

0

由于this书中描述,Sun Java的JRE和rtsj实现之间可能存在互操作性。

3

为了提供实时行为,JVM需要非常专门的设计。这包括在操作系统级集成以访问主机操作系统的实时调度功能。

例如,Sun实时JVM与J2SE5兼容。 http://java.sun.com/javase/technologies/realtime/faq.jsp#4

通常,任何提供诸如安全性或实时行为等小生境功能的系统(OS,JVM等)的特定实例往往是通用版本背后的版本。

对于实时使用GUI,您应该使用诸如JMX,RMI或Web服务(以最轻的重量为准)使用2层客户端服务器控制实时进程。直接在实时代码中使用GUI似乎可能会给应用程序带来很多潜在问题,因为它会尝试以实时约束执行。

+0

如果你有一个实时的GUI工具包,那很好。将关注点分解为应用程序和UI层(或发疯),但请记住,对于某些工作,UI将是实时的。 – 2009-02-17 02:55:19

3

请参阅my answer to another question了解RTSJ商业级实施的更多示例。最新版本(2.1)符合JDK1.5,因此您应该有Swing/AWT。

虽然编写GUI可以在与实时进程相同的JVM内执行,但是这不是一个很好的架构决策。您更倾向于在JVM中隔离实时行为,并在单独的内存空间中提供实现GUI的可分离接口。

原则上,您应该能够编写RTSJ代码,使其运行在具有非实时线程的同一JVM中(并且我已经完成了大量的工作),但实现同步可能很困难对。