【问题标题】:Real-time Java interoperability实时 Java 互操作性
【发布时间】:2009-02-04 10:29:10
【问题描述】:

我想知道 JRE6 和来自 rtsj 的 JVM 之间的互操作性如何。看来我只能使用它们的实现(因为代码将使用它们的 JVM 来解释),所以我不能使用 Java 6 必须提供的许多特性。 它可以支持图形用户界面吗? (例如修改工业过程的参数)。

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

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

【问题讨论】:

    标签: java real-time rtsj real-time-java


    【解决方案1】:

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

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

    通常,任何提供特殊功能(如安全或实时行为)的系统(操作系统、JVM 等)的专用实例往往是通用版本之后的发布。

    至于使用实时图形用户界面,您应该使用诸如 JMX、RMI 或 Web 服务(以最轻量级为准)之类的东西来研究使用 2 层客户端-服务器控制实时过程。在实时代码中直接使用 GUI 似乎会给应用程序带来许多潜在问题,因为它试图在实时约束下执行。

    【讨论】:

    • 如果你有一个实时的 GUI 工具包就好了。将关注点分离到应用程序和 UI 层(或发疯),但请记住,对于某些工作,UI必须是实时的。
    • 肯定会有需要人工输入的系统,我只是发现实时系统阻止人工输入的想法是矛盾的/有趣的。但是,如果需要人工输入,那么它可能非常关键。
    • 不会用人工输入阻塞 UI,但系统必须等待用户。 ABS制动怎么样?有线驱动?
    【解决方案2】:

    有关 RTSJ 商业级实施的更多示例,请参阅 my answer to another question。最新版本 (2.1) 与 JDK1.5 兼容,因此您应该可以使用 Swing/AWT。

    虽然编写 GUI 以在与实时进程相同的 JVM 中执行是可行的,但尚不清楚这是否是一个好的架构决策。您更有可能更喜欢隔离 JVM 中的实时行为,并提供一个可分离的接口,该接口在单独的内存空间中实现 GUI。

    原则上,您应该能够编写 RTSJ 代码,使其在具有非实时线程的同一个 JVM 中运行(我已经做了很多这样的工作),但要正确同步可能很困难.

    【讨论】:

      【解决方案3】:

      正如this 书中所述,Sun Java 的 JRE 和 rtsj 实现之间可以互操作。

      【讨论】:

        猜你喜欢
        • 2017-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-06
        • 2010-09-21
        • 1970-01-01
        • 1970-01-01
        • 2011-09-29
        相关资源
        最近更新 更多