JRE6 とrtsjの JVM との間の相互運用性がどのようになっているのか疑問に思っています。(コードは JVM を使用して解釈されるため) 実装のみを使用する必要があるように思われるため、Java 6 が提供する多くの機能を使用できません。GUIをサポートできますか?(たとえば、産業プロセスのパラメータを変更するとします)。
間違っているかもしれませんので、ご意見をいただければ幸いです。
また、Java のよりリアルタイムな実装のようです。どちらを使用し、どれが一番気に入りましたか?
JRE6 とrtsjの JVM との間の相互運用性がどのようになっているのか疑問に思っています。(コードは JVM を使用して解釈されるため) 実装のみを使用する必要があるように思われるため、Java 6 が提供する多くの機能を使用できません。GUIをサポートできますか?(たとえば、産業プロセスのパラメータを変更するとします)。
間違っているかもしれませんので、ご意見をいただければ幸いです。
また、Java のよりリアルタイムな実装のようです。どちらを使用し、どれが一番気に入りましたか?
リアルタイムの動作を提供するには、JVMを非常に特別に設計する必要があります。これには、ホストOSのリアルタイムスケジューリング機能にアクセスするためのオペレーティングシステムレベルでの統合が含まれます。
たとえば、SunのリアルタイムJVMはJ2SE5と互換性があります。http://java.sun.com/javase/technologies/realtime/faq.jsp#4
一般に、セキュリティやリアルタイム動作などのニッチな機能を提供するシステムの特殊なインスタンス(OS、JVMなど)は、汎用バージョンの背後にあるリリースになる傾向があります。
リアルタイムでGUIを使用する場合は、JMX、RMI、またはWebサービス(最も軽量な方)などを使用して、リアルタイムプロセスの2層クライアントサーバー制御を使用して調査する必要があります。リアルタイムコードでGUIを直接使用すると、リアルタイムの制約を使用して実行しようとするため、アプリケーションに多くの潜在的な問題が発生する可能性があるようです。
RTSJ商用グレードの実装の例については、別の質問に対する私の回答を参照してください。最新バージョン (2.1) は JDK1.5 に準拠しているため、Swing/AWT を使用できる必要があります。
リアルタイム プロセスと同じ JVM 内で実行する GUI を作成することは可能ですが、これが適切なアーキテクチャ上の決定であるかどうかは明らかではありません。JVM でリアルタイム動作を分離し、別のメモリ空間で GUI に実装する分離可能なインターフェイスを提供することを好む可能性が高くなります。
原則として、非リアルタイム スレッドを使用して同じ JVM で実行されるように RTSJ コードを記述できるはずですが (私はこれをたくさん実行しました)、同期を正しく行うのは難しい場合があります。
この本で説明されているように、Sun Java の JRE と rtsj 実装の間には相互運用性があります。