Articulo de referencia

Java en tiempo real

Java en tiempo real es un término genérico que engloba una combinación de tecnologías que permite a los programadores escribir programas que satisfacen las exigencias de los sis...

Java en tiempo real es un término genérico que engloba una combinación de tecnologías que permite a los programadores escribir programas que satisfacen las exigencias de los sistemas en tiempo real utilizando el lenguaje de programación Java .

La sofisticada gestión de memoria de Java , su soporte nativo para subprocesos y concurrencia, la seguridad de tipos y su relativa simplicidad han generado una gran demanda para su uso en numerosos ámbitos. Sus capacidades se han mejorado para dar soporte a las necesidades computacionales en tiempo real:

La propuesta inicial [ 1 ] para un estándar abierto para Java en tiempo real fue presentada por Kelvin Nilsen, quien entonces era miembro del profesorado de investigación en la Universidad Estatal de Iowa. Un artículo de revisión posterior fue publicado en Communications of the ACM . [ 2 ] La respuesta abrumadoramente positiva a estas primeras propuestas dio lugar a una serie de reuniones organizadas por el Instituto Nacional de Estándares y Tecnología (NIST) en un esfuerzo por establecer un estándar abierto para Java en tiempo real. Finalmente, se le comunicó al NIST que no era el organismo apropiado para establecer estándares relacionados con el lenguaje Java, ya que Java era una marca registrada y las tecnologías eran propiedad de Sun Microsystems. Por lo tanto, el NIST concluyó sus esfuerzos con la publicación de requisitos consensuados. [ 3 ] que podrían ser considerados por futuros esfuerzos de estandarización alojados por Sun Microsystems.

Cuando se formó la comunidad Java , el primer esfuerzo fue la especificación para Java en tiempo real, JSR001. Han surgido varias implementaciones de la especificación resultante para Java en tiempo real ( RTSJ ), incluyendo una implementación de referencia de Timesys , WebSphere Real Time de IBM , Java SE Real-Time Systems de Sun Microsystems , [ 4 ] PTC Perc de PTC, Inc. , [ 5 ] o JamaicaVM de aicas.

El RTSJ abordó los problemas críticos al exigir una especificación mínima para el modelo de subprocesos (y permitir la integración de otros modelos en la máquina virtual) y al proporcionar áreas de memoria que no están sujetas a la recolección de basura, junto con subprocesos que no pueden ser interrumpidos por el recolector de basura. Estas áreas se gestionan mediante la administración de memoria basada en regiones . La última especificación, la 2.0, también admite el acceso directo al dispositivo y la recolección de basura determinista.

Especificación en tiempo real para Java

La Especificación en Tiempo Real para Java (RTSJ) es un conjunto de interfaces y mejoras de comportamiento que permiten la programación informática en tiempo real en el lenguaje de programación Java . RTSJ 1.0 se desarrolló como JSR 1 bajo el Proceso de la Comunidad Java , que aprobó el nuevo estándar en noviembre de 2001. RTSJ 2.0 se está desarrollando bajo JSR 282. Una versión preliminar está disponible en una página del JCP. [ 6 ] Puede encontrar más información en Aicas. [ 7 ]

Véase también

  • Javolution – Biblioteca Java compatible con RTSJ

Referencias

  1. "Problemas en el diseño e implementación de Java en tiempo real" (PDF) . Archivado del original (PDF) el 9 de agosto de 2017.
  2. Nilsen, Kelvin (1998). "Añadiendo capacidades en tiempo real a Java" . Communications of the ACM . 41 (6): 49– 56. doi : 10.1145/276609.276619 .
  3. "Laboratorio de Tecnologías de la Información" (PDF) . NIST . 28 de abril de 2015.
  4. "Sistema en tiempo real de Sun Java" . java.sun.com .
  5. "Java en tiempo real con PTC Perc | PTC" .
  6. https://www.jcp.org/en/jsr/detail?id=282 JSR 282
  7. "Especificación en tiempo real para Java | aicas.com" . Archivado del original el 26 de mayo de 2015. Consultado el 17 de febrero de 2025 .
  • Problemas en el diseño e implementación de Java en tiempo real
  • Agregar capacidades en tiempo real a Java
  • Requisitos para extensiones en tiempo real para la plataforma Java
  • Especificación en tiempo real para Java 2.0 (RTSJ 2.0)
  • JSR-282
  • Especificación en tiempo real para Java (RTSJ)
  • JSR-1
  • IBM WebSphere Real Time es una máquina virtual RTSJ SE totalmente compatible.
  • JamaicaVM Archivado el 29/02/2012 en Wayback Machine : una implementación de RTSJ SE con recolección de basura determinista.
  • PTC Perc es una máquina virtual en tiempo real basada en Java Standard Edition, pero con una tecnología patentada de recolección de basura determinista en lugar de RTSJ.
  • Sistema en tiempo real Sun Java SE
  • Apogee Java en tiempo real con recolector de basura en tiempo real (descontinuado)
  • Kit de herramientas para la implementación y prueba de Timesys RTSJ
  • jRate (Java Real-Time Extension) es una extensión de código abierto del sistema de ejecución y front-end del compilador GNU GCJ que añade soporte para la mayoría de las características requeridas por RTSJ.
  • Taller Internacional sobre Tecnologías Java para Sistemas en Tiempo Real y Embebidos (JTRES 2005) Archivado el 31/08/2013 en Wayback Machine JTRES 2006 JTRES 2007 Archivado el 06/02/2012 en Wayback Machine JTRES 2008 Archivado el 28/06/2008 en Wayback Machine JTRES 2009 Archivado el 14/07/2015 en Wayback Machine JTRES 2010 JTRES 2011 JTRES 2012 Archivado el 07/10/2013 en Wayback Machine JTRES 2013 Archivado el 07/10/2013 en Wayback Machine JTRES 2014 JTRES 2015
  • LJRT Lund, basado en Java, software de código abierto en tiempo real.
  • Óvulo
  • Java en tiempo real para la máquina virtual Fiji
  • Máquinas virtuales Java en tiempo real