2009-02-04 137 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中(並且我已經完成了大量的工作),但實現同步可能很困難對。