2009-02-04 21 views
5

Me pregunto cómo es la interoperabilidad entre JRE6 y la JVM desde rtsj. Parece que tengo que usar solo su implementación (ya que el código se interpretará usando su JVM), así que no puedo usar muchas de las características que Java 6 tiene para ofrecer. ¿Puede soportar una GUI? (digamos, por ejemplo, para modificar los parámetros de un proceso industrial).Interoperabilidad Java en tiempo real

Podría estar equivocado, con la esperanza de obtener algunos comentarios de usted.

Además, parece que hay más implementaciones en tiempo real para Java. ¿Cuál usaste y cuál te gustó más?

Respuesta

0

Como this libro describe, puede haber interoperabilidad entre el JRE de Sun Java y la implementación de rtsj.

3

Para proporcionar un comportamiento en tiempo real, la JVM necesita una ingeniería muy específica. Esto incluye la integración en el nivel del sistema operativo para obtener acceso a las funciones de programación en tiempo real del sistema operativo host.

La JVM Sun rea-time es compatible con J2SE5, por ejemplo. http://java.sun.com/javase/technologies/realtime/faq.jsp#4

Generalmente, cualquier instancia especializada de un sistema (SO, JVM, etc.) que ofrezca funcionalidad de nicho, como seguridad o comportamiento en tiempo real, tiende a ser una versión detrás de la versión de propósito general.

En cuanto a usar una GUI para tiempo real, debe investigar el uso de un control cliente-servidor de 2 niveles del proceso en tiempo real usando algo como JMX, RMI o servicios web (cualquiera que sea el más ligero). El uso de una GUI directamente en código en tiempo real parece que podría introducir muchos problemas potenciales para la aplicación mientras intenta ejecutar restricciones en tiempo real.

+0

Está bien si tiene un kit de herramientas GUI en tiempo real. Separe las preocupaciones en una aplicación y capa de IU (o enloquezca), pero recuerde que para algunos trabajos, la IU tiene que ser en tiempo real. –

+0

Ciertamente van a haber sistemas en los que la entrada de personas es necesaria, solo encuentro la idea de un bloqueo de sistema en tiempo real contra entrada humana contradictorio/divertido. Si la entrada humana es necesaria, sin embargo, es probable que sea bastante crítico. –

+0

No bloquea la IU con entrada humana, pero el sistema debe esperar al usuario. ¿Qué hay de ABS frenado? Conducir por cable? –

3

Consulte my answer to another question para ver algunos ejemplos más de implementaciones comerciales de RTSJ. La última versión (2.1) es compatible con JDK1.5, por lo que debe tener Swing/AWT disponible.

Si bien es factible escribir una GUI para ejecutar dentro de la misma JVM que los procesos en tiempo real, no está claro que esta sea una buena decisión arquitectónica. Es más probable que prefiera aislar los comportamientos en tiempo real en una JVM y proporcionar una interfaz separable que implemente a la GUI en un espacio de memoria separado.

En principio, se supone que usted puede escribir código RTSJ de modo que se ejecute en la misma JVM con subprocesos en tiempo no real (y he hecho mucho de esto) pero puede ser difícil obtener sincronización derecho.

Cuestiones relacionadas