title: Xlet
text: # 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.
  
  ## 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 (o 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.
  
  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étodo System.exit; algunas de las primeras aplicaciones lo hacían con lo que se terminaba la Java VM tan pronto el Xlet finalizaba.
  
  