360 likes | 501 Vues
Xlets. Multimedia Home Protocol. Xlets. Mapa de Índice. INTRODUCCIÓN. Introducción a las Xlets. Introducción. Diferencia entre Aplicación Xlet e Interface Xlet Las Xlets como aplicaciones , parecidas a los Applets o Midlets
E N D
Xlets Multimedia Home Protocol
Xlets Mapa de Índice E.T.S de Ingenieros de Telecomunicación
INTRODUCCIÓN Introducción a las Xlets
Introducción • Diferencia entre Aplicación Xlet e Interface Xlet • Las Xlets como aplicaciones, parecidas a los Applets o Midlets • Una aplicación debe implementar el javax.tv.xlet.Xlet Interface • Aplicaciones iniciadas automáticamente por el Broadcaster o manualmente por el Set-top Box (Mando a distancia Usuario) E.T.S de Ingenieros de Telecomunicación
Cómo localizamos a la Xlet? Un registro en la AIT nos localiza la clase inicial de la Xlet (Initial_class_byte) Introducción E.T.S de Ingenieros de Telecomunicación
CICLO DE VIDA LifeCycle de una aplicación Xlet
CICLO DE VIDA • Una aplicación entra en el estado Loadedcuando es cargada bien sea desde Set-top Box o bien desde el Carrousel de datos. • Después de esto, el Application manager señaliza a la aplicación para iniciarse a si misma, por lo que pasa al estado Paused. • El estado Active(Running) significa que la aplicación está en ejecución y puede volver al estado Pausedo bien terminar la aplicación pasando al estado Destroyed. E.T.S de Ingenieros de Telecomunicación
Ciclo de Vida E.T.S de Ingenieros de Telecomunicación
APLICATION MANAGER ¿Qué Es? ¿Qué hace?
Aplication Manager • Reside en el Set-top Box y se inicia cuando se enciende el mismo, hasta que se apaga • Se encarga de manejar los estados de cada Aplicación y hacer de puente a los recursos del Set-top Box • Aministra la memoria, key events, errores de ejecución de las aplicaciones • Define el modelo de ciclo de vida E.T.S de Ingenieros de Telecomunicación
Aplication Manager (2) • Establece el XletContext para cada Aplicación • Mediante el XletContext Inteface, el Application Manager se comunica con las Xlets para ser notificado de sus cambios de estado. E.T.S de Ingenieros de Telecomunicación
Aplication Manager (2) • Identifica y Cachea la información de las aplicaciones procedentes de las Tablas E.T.S de Ingenieros de Telecomunicación
Aplication Manager (3) • Define el protocolo de comunicación entre la Aplicación y él mismo. E.T.S de Ingenieros de Telecomunicación
Interfaces: Xlet y XletContext Definen una serie de métodos abstractos pero no los implementan
Xlet Interface initXlet() - startXlet() - pauseXlet() - destroyXlet() • Una aplicación debe sobreescribir estos métodos para implementar la interface Xlet • El aplication manager llamará a estos métodos para iniciar, comenzar, pausar o eliminar una aplicación de la memoria. • Es una interface muy parecida al de las Applets o los Midlets (J2me) E.T.S de Ingenieros de Telecomunicación
Xlet Interface • pauseXlet() • A menudo ignorado por los desarrolladores • También ignorado por algunas herramientas de desarrollo • Los receptores y servicios confían en que esté bien implementado • El navegador puede poner en modo pausado cuando se presenta la aplicación • Ofrece grandes ventajas (explicadas más adelante) E.T.S de Ingenieros de Telecomunicación
Xlet Interface • destroyXlet() • Una aplicación puede ser terminada en cualquier momento cuando se evoca el destroyXlet() • Esta llamada la debe hacer el Application Manager o bien la propia aplicación. E.T.S de Ingenieros de Telecomunicación
XletContext Interface getXletProperties() notifyPaused() notifyDestroyed() resumeRequest() • Actúa como puente entre el Xlet y el Application Manager • Permite que el Application Manager sea correctamente notificado de cualquier cambio en los estados de las Xlet’s E.T.S de Ingenieros de Telecomunicación
Como implementar Bien Formas y maneras de implementar bien el Xlet Interface
Como implementar Bien • Optimización del tiempo de recarga de la Xlet. • La Xlet puede ser precargada por un lanzador de aplicaciones • Se ejecuta initXlet() • Carga los recursos e inicializa la aplicación • La carga puede ser ejecutada en menos de 1 seg cuando el espectador quiere comenzar la aplicación. • Siemplemente se hace visible la Hscene. E.T.S de Ingenieros de Telecomunicación
Como implementar Bien • Tiempo de Carga o Cambio de Aplicación en condiciones normales E.T.S de Ingenieros de Telecomunicación
Como implementar Bien • La carga de aplicaciones tiene mejor sincronización. • La aplicación interactiva salta (se hace visible) en cuanto el anuncio empieza. • Evita cargas y recargas sucesivas. E.T.S de Ingenieros de Telecomunicación
Como implementar Bien • Linea de tiempo con y sin precarga. E.T.S de Ingenieros de Telecomunicación
Como implementar Bien • initXlet() vs. startXlet() • En InitXlet() ejecuta tareas de inicializacion de una vez. • Construye el Hscene, registra los listeners y carga los recursos. • StartXlet() y PauseXlet() son parejas. • Imágenes cargadas en StartXlet() son limpiadas PauseXlet(). • Hace la Hscene visible. • También realiza la carga de recursos abundantes y escasos. • También considera otras aplicaciones • Si las imágenes son cargadas en InitXlet(), la Xlet comienza más rápido. • Si muchas aplicaciones corren simultaneamente, se reserva mucha cantidad de memoria y el estado de PauseXlet() es inestable. E.T.S de Ingenieros de Telecomunicación
Como implementar Bien • Xlets corriendo simultaneamente. • Facilmente pueden correr unas 10 pequeñas aplicaciones. Generalmente el ancho de banda es el mayor problema. • El manejo de recursos necesita ser diseñado. • No usar recursos escasos en modo Pausa. • Los escenarios deben ser testeados. • Todas las Xlets corriendo simultaneamente en un escenario de máxima demanda con el receptor más restrictivo. E.T.S de Ingenieros de Telecomunicación
Como implementar Bien • Recursos disponibles. • 1.5MB de memoria para datos. • 4MB de memoria para imágenes. • 4MB de contenido de carrusel, dividido en varios carruseles • Limitada cantidad de filtros. • Usado para ficheros dinámicos, stream events, datos del SI… • Un uso máximo de 10 ficheros dinámicos. E.T.S de Ingenieros de Telecomunicación
Como implementar Bien • Ejemplo de lanzador: Menú E.T.S de Ingenieros de Telecomunicación
Como implementar Bien • Ejemplo de lanzador: icono de testeo. E.T.S de Ingenieros de Telecomunicación
Como implementar Bien • Linea de tiempo del icono de testeo. E.T.S de Ingenieros de Telecomunicación
Como implementar Bien • Linea de tiempo de la carga del mensaje. E.T.S de Ingenieros de Telecomunicación
Como implementar Bien • Evitar implementaciones extra • Cuando empieza la aplicación muestra un icono, es el comportamiento habitual de aplicaciones autoejecutables. • Aplicaciones minimizadas muestran un icono • No permite que otras aplicaciones sean usadas. • Ambos casos serán mejor implementados con un lanzador. • Evita confusiones. • Las aplicaciones tienen un modelo más simple. E.T.S de Ingenieros de Telecomunicación
Como implementar Bien • Destroy o Pause para salir de la aplicación? • Pause cuando: • La aplicación es usada con frecuencia y necesita ser de acceso rápido (EPG). • Cuando la aplicación contiene datos de actualización dinámica (teletexto digital). • Cuando el tiempo de ejecución es largo y es como si continuara más tarde (banking, T-commerce). • Destroy cuando: • Aplicaciones que están disponibles a menudo pero que son usadas ocasionalmente (juegos). E.T.S de Ingenieros de Telecomunicación
Como implementar Bien • Destroying Xlet: • Prepararse para un cambio rapido de servicio. • Muchos receptores tienen preferencia por un zapping rápido entre servicios • Los recursos pueden no estar disponibles. • Suministra un mensaje de salida DestroyXlet(false). • Señalizar DESTROY a la AIT 1 minuto antes • También llamado si el receptor se queda sin recursos • No necesita notificar al XletContext E.T.S de Ingenieros de Telecomunicación
Como implementar Bien • Conclusiones • Implementar el estado Pausa en aplicaciones • Para comportarse mejor. • Para obtener mejor rendimiento en entornos agiles. • Cuando corren múltiples aplicaciones simultaneamente • Verificar los requisitos de memoria de las aplicaciones. • Diseñar la comunicación y compartición de recursos. • No implementar estados extras en Xlets. • Permitir a un manejador de aplicaciones manejar esto. • Considerar el comportamiento de la aplicación • Antes de la extraccion de la señalización. E.T.S de Ingenieros de Telecomunicación
Ejemplo de Xlet Ejemplo sencillo de Xlet
Ejemplo de Xlet public class MyFirstExampleXlet implements javax.tv.xlet.Xlet { public MyFirstExampleXlet() {…} public void initXlet(javax.tv.xlet.XletContext context) throws javax.tv.xlet.XletStateChangeException {…} public void startXlet() throws javax.tv.xlet.XletStateChangeException {…} public void pauseXlet() {…} public void destroyXlet(boolean unconditional) throws javax.tv.xlet.XletStateChangeException {…} } E.T.S de Ingenieros de Telecomunicación