Xlets Multimedia Home Protocol

Anuncio
Xlets
Multimedia Home Protocol
Xlets
Mapa de Índice
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.2
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)
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.4
Introducción
Cómo localizamos a
la Xlet?
Un registro en la AIT
nos localiza la clase
inicial de la Xlet
(Initial_class_byte)
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.5
CICLO DE VIDA
LifeCycle de una aplicación Xlet
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
E.T.S de Ingenieros de Telecomunicación
.7
Ciclo de Vida
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.8
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
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.10
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.
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.11
Aplication Manager (2)
Identifica y Cachea la información de las
aplicaciones procedentes de las Tablas
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.12
Aplication Manager (3)
Define el protocolo de comunicación entre la
Aplicación y él mismo.
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.13
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)
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.15
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)
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.16
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.
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.17
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
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.18
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.
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.20
Como implementar Bien
Tiempo de Carga o Cambio de Aplicación
en condiciones normales
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.21
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.
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.22
Como implementar Bien
Linea de tiempo con y sin precarga.
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.23
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
E.T.S de Ingenieros de Telecomunicación
.24
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
E.T.S de Ingenieros de Telecomunicación
.25
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.
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.26
Como implementar Bien
Ejemplo de lanzador: Menú
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.28
Como implementar Bien
Ejemplo de lanzador: icono de testeo.
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.29
Como implementar Bien
Linea de tiempo del icono de testeo.
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.30
Como implementar Bien
Linea de tiempo de la carga del mensaje.
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.31
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.
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.32
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).
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.33
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
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.34
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.
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.35
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
{…}
}
10/04/2005
E.T.S de Ingenieros de Telecomunicación
.37
Descargar