- Xlet
-
Xlet es el nombre que reciben las aplicaciones tipo DVB-J (DVB-Java). Son desarrolladas en lenguaje de programación Java para la interfaz API MHP, que define una plataforma común para las aplicaciones interactivas de televisión digital. Xlet es por lo tanto un conjunto de clases que son transmitidas con un servicio de TV.
El concepto Xlet es similar al de Java applet y está dirigido al desarrollo de aplicaciones para televisión digital dentro de la especificación Java TV de Sun Microsystems. Como los applets convencionales permite arrancar y terminar la aplicación, pero a diferencia de estos últimos, Xlet permite pausar y reanudar la aplicación.
Contenido
Concepto
El modelo convencional Java applet realiza una serie de consideraciones acerca del entorno que no son compatibles para el entorno de televisión digital. En particular, asume que una única aplicación se está ejecutando en la Java VM (ó Máquina virtual de Java) y que cuando la aplicación termina también lo hace la VM. En un PC, esto no supone un problema pero sí en aquellos sistemas donde no puedes hacer estas suposiciones. Además, el ciclo de vida de este tipo de aplicación supone que el applet será cargado, iniciará su ejecución inmediatamente y entonces finalizará, algo que no pasa en todos los entornos. Por ejemplo, en un entorno formado por un receptor de televisión digital, pueden existir diferentes aplicaciones ejecutándose al mismo tiempo, y las limitaciones del hardware, dado que se trata de un producto de consumo generalizado y no profesional, significan que sólo una de esas aplicaciones será visible al usuario. De esta manera, las aplicaciones que no son visibles, necesitan ser pausadas para poder ahorrar recursos y utilizarlos para la aplicación que está siendo utilizada. El hecho de poder pausar y reanudar la aplicación supone la principal diferencia entre un Xlet y un applet convencional. En este sentido, el ciclo de vida de las aplicaciones Java en el entorno Web es más parecido al del Xlet: el buscador web carga el Java applet en una Java VM, la inicializa y la ejecuta. Si la página web contiene dos applets, éstos pueden seguir corriendo en la misma VM sin interferirse mutuamente.
Ciclo de vida
Un Xlet tiene cinco estados principales: Loaded, Initialised, Started, Paused y Destroyed.
- Loaded: El application manager (aplicación de administración que controla el MHP) carga el archivo .class principal del Xlet y crea una instancia de la propia Xlet para llamar a un constructor por defecto.
- Initialised: Para ejecutar la aplicación interactiva, el application manager llama al método
initXlet()
, pasándole un objetoXletContext
específico para el Xlet. El Xlet puede usar el objetoXletContext
para precargar aquellos datos que podrían suponer un tiempo excesivo para ser cargados posteriormente, como por ejemplo imágenes. - Started: Una vez el método
initXlet()
retorna, el application manager llama al métodostartXlet()
habilitando la interacción de la aplicación con el usuario. - Paused: El application manager puede parar la ejecución del Xlet con el método
pauseXlet()
, para liberar recursos o porque la funcionalidad de la aplicación lo ha decidido. Posteriormente se puede reanudar mediantestartXlet()
. - Destroyed: Al final del ciclo de vida, el application manager llama al método
destroyXlet()
liberando de esta manera todos los recursos.
Como se ha dicho previamente, pueden haber diferentes Xlet ejecutándose al mismo tiempo, lo que significa que un Xlet no puede llevar a cabo ninguna acción que afecte el estado global de la Java VM, y por ello muchas acciones no están permitidas explícitamente en las especificaciones MHP. Por ejemplo, un Xlet, nunca debería llamar al métodoSystem.exit()
; algunas de las primeras aplicaciones lo hacían con lo que se terminaba la Java VM tan pronto el Xlet finalizaba.Referencias
- Morris, Steven; Anthony Smith-Chaigneau (2005). Interactive TV Standars: a guide to MHP, OCAP and JavaTV. Focal Press. ISBN 0-240-80666-2.
Enlaces externos
Categorías:- Tecnologías Java EE
- Televisión interactiva
- Televisión digital
Wikimedia foundation. 2010.