Java en Tiempo Real (RTSJ)
La Especificación de Tiempo Real para Java (RTSJ), o JSR 1, especifica cómo un sistema Java debería comportarse en un contexto de tiempo real. La especificación fue desarrollada durante varios años por expertos de Java y de aplicaciones en tiempo real.
Para aquellos que no les suene el concepto de tiempo real, la característica diferenciadora de los Sistemas de Tiempo Real es que sus acciones deben producirse dentro de unos intervalos de tiempo determinados por la dinámica del sistema físico que supervisan o controlan. Se encuentran en multitud de aplicaciones, desde la electrónica de consumo hasta el control de complejos procesos industriales. Están presentes en prácticamente todos los aspectos de nuestra sociedad como, teléfonos móviles, automóviles, control de tráfico, ingenios espaciales, procesos automáticos de fabricación, producción de energía, aeronaves, etc.
Se puede clasificar a los sistemas en tiempo real dependiendo de los requerimientos del sistema. Un sistema de tiempo real inflexible es aquel en el cual el sistema tiene que complir todas sus metas de tiempo sin excepción. Usualmente estos sistemas también tienen baja latencia, el tiempo entre que ocurre un evento disparador y se inicia o completa la respuesta a este evento, generalmente medido en microsegundos o milisegundos.
Muchos sistemas de tiempo real inflexible se los clasifica como sistemas de seguridad crítica. Estos sistemas se usan para proteger a humanos de resultar heridos o quedar en peligro. Los sistemas de seguridad crítica deben pasar por un testing exhaustivo y revisión de código línea-por-línea antes de ser certificados.
La tecnología Java para sistemas de seguridad críticos está siendo estudiada en JSR 302, y actualmente no forma parte de RTSJ.
La RTSJ está diseñada para extender la familia Java (toda la plataforma Java, Java SE, Java EE, Java Micro Edition y demás), y tiene el requerimiento de que cualquier implementación debe pasar el Test de Compatibilidad JSR 1 (TCK) y el TCK propio de la plataforma en la cual está basada. Es decir RTSJ extiende naturalmente cualquiera de las plataformas Java existentes.
RTSJ introduce varias caraterísticas nuevas para soportar operaciones en tiempo real. Estas características incluyen nuevos tipos de thread, nuevos modelos de gestión de memoria, y otros frameworks también nuevos.
Vía Dos Ideas llego a un resumen muy interesante en castellano sobre todo este tema y sus características introducidas en Java a este respecto.
Eso si, si realmente estamos interesados en el tema, recomiendo como es habitual las fuentes de Sun (en inglés), donde podemos encontrar información bastante más completa sobre todo esto. Está dividido en dos artículos de tamaño medio que podemos seguir desde aquí:
- An Introduction to Real-Time Java Technology – Part 1, The Real-Time Specification for Java (JSR 1)
- An Introduction to Real-Time Java Technology – Part 2, Garbage Collection and the Sun Java Real-Time System (Java RTS)








