Xlets - PowerPoint PPT Presentation

About This Presentation
Title:

Xlets

Description:

Destroy cuando: ... Destroying Xlet: Prepararse para un cambio rapido de servicio. ... Se alizar DESTROY a la AIT 1 minuto antes. Tambi n llamado si el receptor ... – PowerPoint PPT presentation

Number of Views:130
Avg rating:3.0/5.0
Slides: 37
Provided by: alek6
Learn more at: http://www.mhproject.org
Category:
Tags: destroying | xlets

less

Transcript and Presenter's Notes

Title: Xlets


1
Xlets
  • Multimedia Home Protocol

2
Xlets
Mapa de Índice
3
INTRODUCCIÓN
  • Introducción a las Xlets

4
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)

5
Introducción
  • Cómo localizamos a la Xlet?
  • Un registro en la AIT nos localiza la clase
    inicial de la Xlet (Initial_class_byte)

6
CICLO DE VIDA
  • LifeCycle de una aplicación Xlet

7
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.

8
Ciclo de Vida
9
APLICATION MANAGER
  • Qué Es? Qué hace?

10
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

11
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.

12
Aplication Manager (2)
  • Identifica y Cachea la información de las
    aplicaciones procedentes de las Tablas

13
Aplication Manager (3)
  • Define el protocolo de comunicación entre la
    Aplicación y él mismo.

14
Interfaces Xlet y XletContext
  • Definen una serie de métodos abstractos pero no
    los implementan

15
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)

16
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)

17
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.

18
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 Xlets

19
Como implementar Bien
  • Formas y maneras de implementar bien el Xlet
    Interface

20
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.

21
Como implementar Bien
  • Tiempo de Carga o Cambio de Aplicación en
    condiciones normales

22
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.

23
Como implementar Bien
  • Linea de tiempo con y sin precarga.

24
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.

25
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.

26
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.

27
Como implementar Bien
  • Comunicación
  • Recurso apoderado
  • Permite correr aplicaciones simultaneamente para
    compartir recursos escasos.
  • API de comunicación entre aplicaciones
  • Permite una mejor comunicación.
  • Aplicaciones individuales suministran múltiples
    servicios.

28
Como implementar Bien
  • Ejemplo de lanzador Menú

29
Como implementar Bien
  • Ejemplo de lanzador icono de testeo.

30
Como implementar Bien
  • Linea de tiempo del icono de testeo.

31
Como implementar Bien
  • Linea de tiempo de la carga del mensaje.

32
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.

33
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).

34
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

35
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.

36
Ejemplo de Xlet
  • Ejemplo sencillo de Xlet

37
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
Write a Comment
User Comments (0)
About PowerShow.com