xlets multimedia home protocol. 10/04/2005.2 e.t.s de ingenieros de telecomunicación xlets mapa de...
TRANSCRIPT
Xlets
Multimedia Home Protocol
10/04/2005 .2E.T.S de Ingenieros de Telecomunicación
Xlets
Mapa de Índice
INTRODUCCIÓN
Introducción a las Xlets
10/04/2005 .4E.T.S de Ingenieros de Telecomunicación
Introducción
Diferencia entre Aplicación Xlet e Interface Xlet Las Xlets como aplicaciones, parecidas a los
Applets o MidletsUna aplicación debe implementar el
javax.tv.xlet.Xlet InterfaceAplicaciones iniciadas automáticamente por el
Broadcaster o manualmente por el Set-top Box (Mando a distancia Usuario)
10/04/2005 .5E.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
CICLO DE VIDA
LifeCycle de una aplicación Xlet
10/04/2005 .7E.T.S de Ingenieros de Telecomunicación
CICLO DE VIDA
Una aplicación entra en el estado Loaded cuando 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 Paused o bien terminar la aplicación pasando al estado Destroyed.
10/04/2005 .8E.T.S de Ingenieros de Telecomunicación
Ciclo de Vida
APLICATION MANAGER
¿Qué Es? ¿Qué hace?
10/04/2005 .10E.T.S de Ingenieros de Telecomunicación
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
10/04/2005 .11E.T.S de Ingenieros de Telecomunicación
Aplication Manager (2)
Establece el XletContext para cada AplicaciónMediante el XletContext Inteface, el Application
Manager se comunica con las Xlets para ser notificado de sus cambios de estado.
10/04/2005 .12E.T.S de Ingenieros de Telecomunicación
Identifica y Cachea la información de las aplicaciones procedentes de las Tablas
Aplication Manager (2)
10/04/2005 .13E.T.S de Ingenieros de Telecomunicación
Define el protocolo de comunicación entre la Aplicación y él mismo.
Aplication Manager (3)
Interfaces: Xlet y XletContext
Definen una serie de métodos abstractos pero no los
implementan
10/04/2005 .15E.T.S de Ingenieros de Telecomunicación
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)
10/04/2005 .16E.T.S de Ingenieros de Telecomunicación
pauseXlet()A menudo ignorado por los desarrolladoresTambién ignorado por algunas herramientas
de desarrolloLos 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)
Xlet Interface
10/04/2005 .17E.T.S de Ingenieros de Telecomunicación
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.
Xlet Interface
10/04/2005 .18E.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
Formas y maneras de implementar bien el Xlet
Interface
Como implementar Bien
10/04/2005 .20E.T.S de Ingenieros de Telecomunicación
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.
Como implementar Bien
10/04/2005 .21E.T.S de Ingenieros de Telecomunicación
Tiempo de Carga o Cambio de Aplicación en condiciones normales
Como implementar Bien
10/04/2005 .22E.T.S de Ingenieros de Telecomunicación
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.
Como implementar Bien
10/04/2005 .23E.T.S de Ingenieros de Telecomunicación
Linea de tiempo con y sin precarga.
Como implementar Bien
10/04/2005 .24E.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.
10/04/2005 .25E.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.
10/04/2005 .26E.T.S de Ingenieros de Telecomunicación
Recursos disponibles.1.5MB de memoria para datos.4MB de memoria para imágenes.4MB de contenido de carrusel, dividido en
varios carruselesLimitada cantidad de filtros.
• Usado para ficheros dinámicos, stream events, datos del SI…
• Un uso máximo de 10 ficheros dinámicos.
Como implementar Bien
10/04/2005 .28E.T.S de Ingenieros de Telecomunicación
Ejemplo de lanzador: Menú
Como implementar Bien
10/04/2005 .29E.T.S de Ingenieros de Telecomunicación
Ejemplo de lanzador: icono de testeo.
Como implementar Bien
10/04/2005 .30E.T.S de Ingenieros de Telecomunicación
Linea de tiempo del icono de testeo.
Como implementar Bien
10/04/2005 .31E.T.S de Ingenieros de Telecomunicación
Linea de tiempo de la carga del mensaje.
Como implementar Bien
10/04/2005 .32E.T.S de Ingenieros de Telecomunicación
Evitar implementaciones extraCuando 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.
Como implementar Bien
10/04/2005 .33E.T.S de Ingenieros de Telecomunicación
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).
Como implementar Bien
10/04/2005 .34E.T.S de Ingenieros de Telecomunicación
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
recursosNo necesita notificar al XletContext
Como implementar Bien
10/04/2005 .35E.T.S de Ingenieros de Telecomunicación
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.
Como implementar Bien
Ejemplo de Xlet
Ejemplo sencillo de Xlet
10/04/2005 .37E.T.S de Ingenieros de Telecomunicación
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{…}
}