Sincronización. 1.Información de servicios 2.Acceso a la Tabla TDT 3.Sincronismo 4.MHPRelojDigital.

Slides:



Advertisements
Presentaciones similares
UNIVERSIDAD PRIVADA SAN PEDRO ESCUELA INGENIERIA CIVIL
Advertisements

El consorcio DVB Consorcio de mas de 300 entidades
Db4o y JDBC Bases de Datos en MHP.
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME RMS Ing. Ronald Criollo.
Observador (observer) Visita (Visitor) Singleton
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Programación Interactiva Hilos
Fundamentos de la programación orientada a objetos
ATS – Cliente .
Lenguaje de programación Java
Arquitectura CLARO-TECNOTREE
Introducción a Remoting
Siguiente Excepciones Introducción. AnteriorSiguiente Definición Una excepción es un evento que ocurre durante la ejecución de un programa que desestabiliza.
RMI Remote Method Invocation
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
RMI (Remote Method Invocation)
Aplicación del paradigma orientado a objetos
Diseño y programación de
Encapsulamiento y Abstracción
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
 son segmentos de código de un programa que se ejecutan secuencialmente de modo independiente de las otras partes del programa.
Java. Threads (Hebras) Los sistemas operativos actuales permiten la multitarea, aunque esta se de tiempo compartido cuando se trabaja con un solo procesador.
Modificadores.
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Lic. Rosemary Torrico Bascopé
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Tema 10: Interfaces Antonio J. Sierra.
Direccionamiento IP Clases de direcciones. 01 de octubre de 2004Cesar Guisado2 TCP/IP La familia de protocolos TCP/IP fue diseñada para permitir la interconexión.
Igor Santos Grueiro. Ahora tenemos datos y datos …
Remoting.Net Michel Rener. TEMARIO ¿Qué es una Aplicación Distribuida? ¿Qué es una Aplicación basada en Cliente/Servidor? ¿Qué es la Tecnología de Objetos.
1 Interfaces Agustín J. González ELO Introducción En C++ se permite la herencia múltiple; es decir, es posible derivar una clase de dos o más clases.
ESQUEMAS BASICOS DE RED
Un hilo es un único flujo de ejecución dentro de un proceso. Un proceso es un programa ejecutándose dentro de su propio espacio de direcciones. Los.
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Patrón Observador Un patrón de diseño es una descripción de clases y objetos comunicándose entre si adaptada para resolver un problema de diseño general.

Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
Programación Orientada a Aspectos (POA)
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
UNIDAD 3: “Desarrollo Orientado a Objetos con UML”
SPRING MVC.
Capítulo 5 - b: Hilos. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Ejemplo de hilos: un applet Un.
HERNANDEZ RAMIREZ CAROLINA CONALEP IXTAPALUCA 236.
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) PROGRAMACION DE INTERFASES.
Enterprise Java Beans. EJBs Beans gestionados por un contenedor del servidor de aplicaciones para gestionar el acceso a recursos (bases de datos, colas.
Servicio horario NTP - Protocolo NTP Luis Villalta Márquez.
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Aplicaciones Web de Servidor
TEMA 9: DIAGRAMA DE CLASE EN UML
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
CRUCIGRAMA HORIZONTALES: VERTICALES:
Arquitecturas de cortafuegos Gabriel Montañés León.
Arquitecturas de cortafuegos:
FUNDAMENTOS DE PROGRAMACION
UD09 Sergio Lucas Madrid. Es un protocolo de Internet para sincronizar los relojes de los sistemas informáticos a través del ruteo de paquetes en redes.
Hilos Java Profesor Elian Rojas Berrocal
S EGURIDAD Y A LTA D ISPONIBILIDAD Nombre: Adrián de la Torre López.
Clases “ Es una Abstracción de un elemento del mundo real ”
“DESFRAGMENTADOR DEL FLUJO DE TRANSPORTE (TS) Y ANALIZADOR DE TABLAS PARA EL SISTEMA DE TELEVISIÓN DIGITAL TERRESTRE ISDB-T” Autor: Nelson Benavides Director:
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Las interfaces Predicate y Function Versión Unidad Didáctica 17 Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versión.
Tema 1: Concurrencia con Java
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Arrays, Cadenas y Vectores Tipos Genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 5 Versión
Transcripción de la presentación:

Sincronización

1.Información de servicios 2.Acceso a la Tabla TDT 3.Sincronismo 4.MHPRelojDigital

Las aplicaciones deben ser señalizadas antes de transmitirlas en una trama de transporte para: –Indicar al receptor de la presencia de dicha aplicación –Indicar al receptor el contenido y/o localización de dicha aplicación –Eventualmente mandar señales desde el broadcaster a la aplicación Introducción

La Información de Servicios (SI) contiene metadatos para poder localizar, sintonizar y mostrar dichos servicios Esta información viene bien estructurada y repartida en tablas de Información, las cuales contienen Descriptores (Unidad más pequeña de datos de SI) Introducción

La Información de Servicios (SI) contiene metadatos para poder localizar, sintonizar y mostrar dichos servicios Esta información viene bien estructurada y repartida en tablas de Información, las cuales contienen Descriptores (Unidad más pequeña de datos de SI) Introducción

Tablas de información comunes: –Program Allocation Table (PAT) –Program Mapping Table (PMT) –Condicional Access Table (CAT) –Bouquet Associantion Table (BAT) –Service Description Table (SDT) –Network Information Table (NIT) –Event Information Table (EIT) –Time and Date Table (TDT) –Time Offset Table (TOT) Tablas de Información

Existen ciertas tablas independientes de la trama de transporte sitonizada –Time and Date Table (TDT) –Time and Offset Table (TOT) –Network Information Table (NIT) Dentro de una misma Red de Emisión –Bouquet Information Table (BAT) (*) Dentro de un mismo bouquet de servicios Tablas de Información

El acceso a Tablas de Información se realiza asíncronamente porque: –La información no es accesible inmediatamente –No debemos bloquear una aplicación –Podemos recibir distintos tipos de información Introducción

Podemos acceder a las tablas de información a través de 2 paquetes –org.dvb.si –javax.tv.service javax.tv.service nos da un grado mayor de abstracción org.dvb.si nos da una granularidad mayor Introducción

Tabla comparativa entre JavaTv y Dvb.Si para acceso a tablas de Información

Dvb.SI : –El modelo dvb.si mapea claramente la estructura de DVB-SI –Mas cómodo cuando se manejan varias peticiones a la vez puesto que tenemos una mejor semántica en las respuestas –Sintonizar otras tramas de transporte sin para obtener sus SI sin salirnos del Servicio –Todas las peticiones que no sean a EIT deberían ser realizadas con dvb.si –Acceso directo a descriptores solo posible desde dvb.si Javax.tv –Fácil acceso a la tabla EIT, solución bastante adecuada para realizar EPG’s –Cambio de Servicio es solo posible desde javax.tv Casos de Uso de JavaTv y Dvb.SI

El procedimiento de acceso a TDT es válido para cualquier otra tabla en general y se divide en 6 pasos: 1.Recuperar una lista de Información (SIDatabase) de servicios (uno por cada interfaz de televisión) 2.Crear y realizar una petición (SIRequest) pasando como objeto la petición concreta (suele ser un String) 3.Cuando la información esté disponible la SIDatabase genera un SISuccessfulRetrieveEvent que nos informa de que la petición ha devuelto el objeto con la información exitosamente. Podemos ahora comprobar si es la información solicitada comprobando el objeto pasado 4.Una vez obtenido el objeto de respuesta podemos llamar a getResult() que nos devuelve un Iterador conteniendo los objeto (valores) de Información requeridos 5.Podemos ahora iterar por cada uno de estos objetos que implementan la interfaz SIInformation para hacer uso de ellos Acceso a la Tabla TDT

La información solicitada puede estar ya disponible en el propio terminal por eso se distinguen tres peticiones –FROM_CACHE_ONLY –FROM_STREAM_ONLY –FROM_CACHE_OR_STREAM En el caso del acceso a TDT siempre deberemos hacer FROM_STREAM_ONLY Acceso a la Tabla TDT

¿Como nos podemos mantener actualizados en cuanto a Información de Servicio? –Podemos realizar una petición cada X tiempo –Se puede realizar una monitorización de tablas de Información Nos notifican mediante eventos si ha habido algún cambio en alguna tabla No tiene sentido hacer monitorización sobre algunas tablas de cambios continuos Monitorización de Tablas

Podríamos querer acceder a un descriptor privado o a la información de teletexto Dbv.Si nos ofrece el poder acceder directamente al descriptor de una tabla Acceso directo a descriptores

Se pretende ahora sincronizar una aplicación con la hora actual (local) donde reside el Set-Top Box Nos vienen a la cabeza varias alternativas: –Sincronizar el reloj haciendo uso de un servidor externo por el Return Channel –Sincronizar el reloj consultando con la hora del sistema (como se podría hacer en Desktop) –Sincronizar el reloj haciendo peticiones a las tablas de Información Introducción

Sincronizar el reloj haciendo uso de un servidor externo por el Return Channel –Sería una buena alternativa el poder sincronizar el reloj de nuestro terminal con la hora exacta a través de un servidor de reloj universal –El problema nos surge al por dar por hecho que todos los set-top boxes tienen implementado un canal de retorno y más aún hacer una petición tan corta y simple a través de modem Introducción

Sincronizar el reloj consultando con la hora del sistema (como se podría hacer en Desktop) –Este sistema es bastante usual en sistemas desktop donde la máquina lleva un reloj interno (gracias a la pila del BIOS) –El problema se nos presenta al dar por hecho que nuestro reloj del sistema ya está puesto en hora y permanece encendido siempre Introducción

Sincronizar el reloj haciendo peticiones a las tablas de Información –En vista de todos estos problemas MHP nos ofrece la sincronización del reloj haciendo uso de las tablas de información sin más que hacer peticiones reiterativas cada X tiempo Introducción

Se pretende realizar un reloj digital que esté sincronizado con la hora local del terminal El reloj debe ser reutilizable y autocontenido El reloj debe ser un componente MHP El reloj no debe bloquear la aplicación Introducción

En el desarrollo del MHPRelojDigital se han obtenido las siguientes resoluciones: –La hora y fecha del sistema es automáticamente sincronizado con las tablas de información al arrancar el terminal y configurado desde el Setup del mismo –El terminal sobrescribe el método getUTCTime() que nos devuelve la hora universal y hace una llamada a System.getCurrentMilles() que nos devuelve la hora actual del sistema en milisegundos –Por tanto es equivalente acceder a la hora y fecha mediante tablas de información que con la hora del sistema (siendo este último método mucho más rápido) Desarrollo

Problemas en cuanto a implementación –Se requería que el reloj fuese a su vez componente y no bloquease el programa Para solucionarlo debemos tener el reloj en un hilo aparte y a su vez que herede de HComponent. Implementación

¿Como creamos un hilo? 1. Hacemos que la clase extienda de Thread e implemente el método run() –Creamos un objeto con MiReloj miReloj = new MiReloj(); 2. Hacemos que la clase implemente la interface Runnable y el método run() –Creamos un objeto con MiReloj miReloj = new MiReloj(); Thread Mihiloreloj = new Thread(miReloj); Implementación

En cualquiera de los dos casos, al final obtenemos un Thread el cual no podemos añadir como componente a ningún contendor –La primera solución visible pasa por tener un MiReloj que extienda de HComponent y que tenga un objeto Thread aparte como atributo que se encargue del proceso de repintado Perderíamos una de las premisas de que sea autocontenido, aparte que tendríamos que cambiar el paint() de un componente desde otro objeto (!!!) Implementación

La solución final pasa por tener un MiReloj que extienda de Hcomponent e implemente Runnable, y que a su vez contenga un atributo tipo Thread (hilo) que, al instanciar un MiReloj se añade a si mismo al hilo… ¿Comor? Implementación

public class MHPReloj extends KDBComponent implements Runnable, Serializable { private Thread hiloReloj; … public MHPReloj(int x, int y, int width, int height) { registerKeyListener(); setBounds(x, y, width, height); this.crearHilo();} … public void crearHilo() { hiloReloj = new java.lang.Thread(this,"MHPReloj"); hiloReloj.start();} Implementación Tenemos un atributo privado de tipo Thread (hiloReloj) En el constructor creamos un hilo y nos añadimos como objeto del hilo puesto que implementamos Runnable

Presentación

Ruegos y Preguntas Acceso a Tablas de Información (sincronización) [ Proyecto ] MHProject v2.0 E.T.S de Ingenieros de Telecomunicación Universidad Pública de Navarra [ Autor ] Alejandro Fanjul [ Tutor ] Mikel Sagues [ Bibliografía ] KDB Reference guide MHP-kdb.org Interactive Tv Standards Steven Morris 18/12/2006 Creative Commons 2.5: MHProject.orgMHProject.org C r é d i t o s y B i b l i o g r a f í a