Java en tiempo real con BEA WebLogic RealTime

BEA lanzó la versión 1.1 de WebLogic Realtime Core Edition, un ambiente de ejecución para aplicaciones Java a tiempo-real, que presume tiempos máximos de latencia de 30 milisegundos. Esto brinda la posibilidad de desarrollar en Java aplicaciones de tiempo-real, que tradicionalmente se han tenido que desarrollar en C o C++.

Las aplicaciones a tiempo real como son las que se utilizan para el control de vuelo, videojuegos, o manejo de transacciones en la bolsa de valores, requieren tener una latencia predeciblemente baja. Desafortunadamente, esta es una característica que Java no ha podido cumplir adecuadamente, principalmente debido a la forma en que trabaja su recolector de basura (el agente que se encarga de eliminar de memoria los objetos que ya no se están usando).

El gran diferenciador que tiene WebLogic Real Time es el uso de la máquina virtual BEA JRockit, la cual provee capacidades para recolección de basura determinística. Básicamente, lo que hace es que en lugar de detener la máquina virtual periódicamente para realizar la recolección de basura, realiza esta tarea de manera continua en el "background".

Suena bastante lógico, y parece una solución demasiado sencilla como para que les haya tomado tanto tiempo en llegar a ella. Al parecer, desde hace tiempo existen máquinas virtuales con esta capacidad, pero tienen el problema de que requieren reescribir gran parte del código para adecuarse a este funcionamiento. En cambio, JRockit funciona de manera transparente.