Curso Multimedia Home Platform 1.1.2



Documentos relacionados
Curso Multimedia Home Platform 1.1.2

Curso Multimedia Home Platform 1.1.2

Curso Multimedia Home Platform Internet Clients. Internet Access Profile

Curso Multimedia Home Platform 1.1.2

Curso Multimedia Home Platform 1.1.2

GTI PC-IDE. Alvaro Anguix Asociación gvsig 1 Of 20

Curso Multimedia Home Platform 1.1.2

Curso Multimedia Home Platform 1.1.2

Curso Multimedia Home Platform 1.1.2

Curso Multimedia Home Platform 1.1.2

Curso Multimedia Home Platform MHP Stored Services & Cached Apps Stored Services, Apps Cache & APIs

gvsig e os padrões O que ocorre quando se coloca a raposa para cuidar do galinheiro?

Curso Multimedia Home Platform 1.1.2

Contenido. Qué es gvsig? Actividades en torno a gvsig en Uruguay. Casos de uso. Qué son las Comunidades gvsig? Ejemplos de Comunidades existentes

Escalada de privilegios mediante infección ELF

Innovación en Modelos de Negocio. La única salida?

DSpace da Universidade de Santiago de Compostela

Documentación técnica y de usuario Soporte para capas georss

Distribución y Recepción de Señales de Televisión Digital Interactividad en DVB: MHP

Heroe de la Montaña.

gvsig: Software libre para gestión espacial

El mejor regalo de Navidad

RMI. Aplicaciones Distribuidas

El héroe de la montaña.

El Mejor Regalo De Navidad

JAVA RMI: ESTRUCTURA INTERNA RMI

Java RMI. Sistemas Distribuidos Rodrigo Santamaría

Química I. Libro de ejercicios. José Mauricio Rodas Rodríguez

Alvaro Anguix Asociación gvsig gvsig: un proyecto global Casos de éxito

Tema 2 El Modelo de referencia OSI (ISO 7498)

1. Visión general de RMI

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA

WebForms con LeadTools

Introducción para el Nuevo Testamento en Rabinal Achí El Nuevo Testamento, al igual que el Antiguo Testamento, es reconocido dentro de la literatura

Programación en Red, Tema 4: RMI. Llamada a procedimientos remotos. Automatización Ventas ebay. Llamada a procedimientos remotos. Server.

Curso Multimedia Home Platform 1.1.2

en otra máquina exactamente de la misma manera que si se encontrará en la misma máquina

Java RMI. Sistemas distribuidos

Tema 2: Programación en Red, RMI

Llamada a procedimientos remotos. Programación en Red, Tema 3: RMI

Formación geográfica de la Economía Ganadera Vacuna en la Provincia Ciego de Ávila, Cuba.

JAVA RMI (REMOTE METHOD INVOCATION)

Invocación de métodos remotos en Java: JAVA - RMI

5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI

ODJFS Bureau of Civil Rights. ODJFS Bureau of Civil Rights. ODJFS Bureau of Civil Rights. ODJFS Bureau of Civil Rights

Sistemas Distribuidos Java RMI (Remote Method Invocation) Alberto Lafuente Mikel Larrea Dpto. ATC, UPV/EHU

VCC-HD2300/HD2300P VCC-HD2100/HD2100P

CMMI SCAMPI en un contexto ÁGIL. Ramiro Carballo. Certified SCAMPI Lead Appraiser Caelum Information & Quality Technologies, S. L

RMI. Ingeniería del Software II Curso 2009/2010.

A. Goñi, J. Ibáñez, J. Iturrioz, J.A. Vadillo OCW 2013

Invocación de Métodos Remotos: Prácticas de Laboratorio

Representación de Sólidos

Workplace Safety - The Role of Staff

MANUAL PARA LA TRANSFORMACION DE FORMATOS GIS A CAD CON CAMBIO DE SISTEMA DE REFERENCIA MEDIANTE MICROSTATION

Connecting Cloudino Connector to FIWARE IoT

Tema 1 Introducción. Conceptos Generales. Curso 2004/2005

Angulos de Cuerdas, Secantes, y Tangentes

Abierta y Estratégica enacción

El servicio de echo en Java-RMI

Manzanas! Matemáticas/Math Bilingual, K - 3. Cuatro actividades para trabajar las tablas de sumar, multiplicar, y dividir.

Universidad Nacional Autónoma de México

Barbara Quaid. March 1, Dear Ventura County Teachers:

Rational Developer for System z Unit Test. Sergio González Consultor Calidad Ingeniería del Software

Breve introducción al Software Libre

Employer Employer Address Phone. Phone: Home Work Cell

Legal issues in promoting FOSS in R+D projects Policy, Organisation and Management

Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java

Introducción para el Nuevo Testamento en Rabinal Achí, versión renuvado El Nuevo Testamento, al igual que el Antiguo Testamento, es reconocido dentro

Remote Method Invocation (RMI)

Los bloques DLL (Figura A.1) externos permiten al usuario escribir su propio código y

Apéndice C. Correos con permisos para publicar interfaces de sistemas comerciales del Capítulo 1.

Invocación remota de métodos. Jorge Iván Meza Martínez

Código Fuente. Creamos en C:\ una carpeta para ubicar el código fuente del servidor. En mi caso, he creado una carpeta denominada rmi4

Juan Pavón Mestras Dep. Sistemas Informáticos y Programación Universidad Complutense de Madrid.

gvsig_des_2.x_d: Curso de desarrolladores de gvsig Desktop v 2.x Introducción Introducción Novedades de desarrollo en gvsig 2.0

GENERAR DOCUMENTACIÓN ON-DEMAND

Objetos Distribuidos

Object Oriented Middleware: Java RMI

PELICULAS CLAVES DEL CINE DE CIENCIA FICCION LOS DIRECTORES LOS ACTORES LOS ARGUMENTOS Y LAS ANECD

Ecuaciones con Valor Absoluto

Cursos técnicos gratuitos en línea

Utilizando Google Sites para alojar contenidos

Guía práctica de estudio 03. Tipo de dato abstracto

TU EMBARAZO Y EL NACIMIENTO DEL BEBE GUIA PARA ADOLESCENTES EMBARAZADAS TEEN PREGNANCY AND PARENTI

Guía práctica de estudio 04. Almacenamiento en tiempo de ejecución

Objetos Distribuidos - Componentes. Middleware

RMI [Remote Method Invocation]

Introducción. 50,SURSRUFLRQDFRPXQLFDFLyQUHPRWDHQWUHSURJUDPDVHVFULWRVHQHOOHQJXDMHGH SURJUDPDFLyQ-DYD

Asociación Internacional de Radiodifusión International Association of Broadcasting

FAMILY INDEPENDENCE ADMINISTRATION James K. Whelan, Executive Deputy Commissioner

Propiedad Industrial y Material Biológico. Rodrigo A. Salinas Departamento de Ciencias Neurológicas Facultad de Medicina, Universidad de Chile

1) Through the left navigation on the A Sweet Surprise mini- site. Launch A Sweet Surprise Inicia Una dulce sorpresa 2016

DESARROLLO DE APLICACIONES JAVA EN PLAYSTATION: APLICACIONES EN DISCO PARA USOS ATÍPICOS TOMÁS GARCÍA-MERÁS

MANUAL MÓDULO WIFI DE MOWAY

OSCILLATION 512 (LM 3R)

TELEVISIÓN HÍBRIDA Y REALIDAD AUMENTADA

El Derecho de los Padres

MHP. Entorno de Trabajo MHP Stubs 1.1.2

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Transcripción:

Curso Multimedia Home Platform 1.1.2 Inter-Xlet Communication Comunicación entre Xlets en el STB 1

Curso MHP 1.1.2 Curso Multimedia Home Platform 1.1.2 Copyright 2008 Enrique Pérez Gil Licensed under the Creative Commons Attribution-Non-Commercial-No Derivative Works 3.0 Unported License. You may not use this file except in compliance with the License. You may obtain a copy of the License at: http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode This is a human-readable summary of the License applied: (http://creativecommons.org/licenses/by-nc-nd/3.0/) You are free to Share, to copy, distribute and transmit the work Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). Noncommercial. You may not use this work for commercial purposes. No Derivative Works. You may not alter, transform, or build upon this work. For any reuse or distribution, you must make clear to others the license terms of this work. Any of the above conditions can be waived if you get permission from the copyright holder. Nothing in this license impairs or restricts the author's moral rights. 2

Introducción Para empezar hay que decir que los Xlets están aislados unos de otros por motivos de seguridad. No es posible usar servicios comunes en una sola instanciación. Un Xlet se carga con un ClassLoader distinto a otro Xlet (DVBClassLoader). Recordemos que en Java una clase es igual a otra si se llaman igual y si han sido cargadas por el mismo Loader, de lo contrario son tratadas como clases dintintas. MHP NO permite el uso de ClassLoaders propios, sin embargo se puede usar el org.dvb.lang.dvbclassloader para obtener clases desde URLs. Por lo tanto si por ejemplo queremos usar Servicios comunes que residan en un Xlet: cómo acceder? Java dispone de Java RMI para acceder a objetos remotos, y algo parecido es lo que se va a usar... 3

Uso de RMI Java RMI funciona de la forma siguiente: Los objetos a los que queremos acceder deben registrarse en un registry (rmiregistry) con un nombre, que es mediante el cual podremos buscarlos. Además deben implementar el interface java.rmi.remote. También hemos de generar los stubs a partir del Interface Remoto para que desde los clientes puedan lanzarse los métodos en el servidor. Esto se hace mediante rmic. La comunicación se basa en TCP/IP. MHP no puede soportar todos estos requerimientos: Puede que no tengamos TCP/IP, rmic, remiregistry, stubs... Hemos de simplificar el modelo para que se pueda usar en un contexto de ejecución como el de MHP. 4

Cómo entonces? No es necesario el uso de Stubs! (o sí, pero lo hace la plataforma internamente) En lugar de usar el rmiregistry y java.rmi.naming vamos a usar un Registry propio que no nos obliga a usar esquemas TCP/IP ni a generar stubs antes: org.dvb.io.ixc.ixcregistry: public static Remote lookup(javax.tv.xlet.xletcontext xc, String path) public static void bind(javax.tv.xlet.xletcontext xc, String name, java.rmi.remote obj) public static void bind(javax.tv.xlet.xletcontext xc, String name, java.rmi.remote obj, int scope) public static void unbind(javax.tv.xlet.xletcontext xc, String name) public static void rebind(javax.tv.xlet.xletcontext xc, String name, java.rmi. Remote obj) public static void rebind(javax.tv.xlet.xletcontext xc, String name, java.rmi.remote obj, int scope) public static String[] list(javax.tv.xlet.xletcontext xc) 5

IxcRegistry Para entender el API de org.dvb.io.ixc.ixcregistry : XletContext: Siempre el del Xlet que está importando/exportando. Bind: sin scope es equivalente a bind con scope = SERVICE (abajo vemos las posibilidades) Bind: name = nombre_remoto Path para BUSCAR: /orgid/appid/nombre_remoto orgid y appid: valores en Hex. Sin 0x, por ejemplo 2A/3 name = nombre con el que publicamos el Xlet. Scope: puede valer org.dvb.io.ixc.ixcregistry.global = Accesible desde cualquier Xlet en el terminal org.dvb.io.ixc.ixcregistry.page= para DVB-HTML. Accesible solo a Xlets residentes en la DVB-HTML application org.dvb.io.ixc.ixcregistry.service= sólo para Xlets en el ServiceContext actual. 6

IxcRegistry Pregunta: ya tengo el objeto remoto, a qué lo casteo? Al Interfaz remoto que sea Pregunta: Cómo ejecuto un método? Reflection, Introspection? Si quieres...aunque lo lógico es castear y ejecutar el método que te interese. Pregunta: Deben de ser los objetos devueltos por los métodos Serializables? Sí, como siempre en RMI Ojo: los métodos que queramos accesibles en el objeto publicado han de lanzar java.rmi.remoteexception. Ojo: el objeto que publicáis ha de ser el Xlet, NO os va a funcionar si lo hacéis con uno cualquiera Bien, hagamos un ejercicio!!! 7

Ejercicios Bloque INTERX-1 8

Seguridad Las aplicaciones signed NO pueden comunicarse con las unsigned y viceversa. Los permisos otorgados para unsigned y signed son (ved 12.6 MHP1.1.2 y javax.microedition.xlet.ixc.ixcpermission): Unsigned IxcPermission("dvb:/unsigned/*", "lookup") IxcPermission("dvb:/unsigned/organisation_id/application_id/*", "bind") IxcPermission("dvb:/ixc/organisation_id/application_id/*", "bind") IxcPermission("dvb:/ixc/*", "lookup") Signed IxcPermission("dvb:/signed/*", "lookup") IxcPermission("dvb:/signed/organisation_id/application_id/*", "bind") IxcPermission("dvb:/ixc/organisation_id/application_id/*", "bind") IxcPermission("dvb:/ixc/*", "lookup") 9

Referencias ISO/IEC 13818-1 ISO/IEC 13818-6 ETSI EN 300 468 ETSI EN 301 192 ETSI TR 101 202 ETSI TR 101 162 ETSI TR 102 154 ETSI TR 101 211 ETSI TR 101 200 DAVIC HAVI Interactivetvweb Wikipedia DSMCC MHP 1.1.2 MHP 1.1.3 CDC 1.1 PBP 1.1 MHP.org INTRO MHP 1.1.3 Part 1. Elementary Streams transport definition Part 6. Extensions for DSM-CC. Digital Storage Media Command and Control Digital Video Broadcasting (DVB);Specification for Service Information (SI) in DVB systems DVB specification for data broadcasting Implementation Guidelines for Data broadcasting Digital broadcasting systems for television, sound and data services; Allocation of Service Information (SI) codes for Digital Video Broadcasting (DVB) systems Implementation guidelines for the use of MPEG-2 Systems, Video and Audio in Contribution and Primary Dist Guidelines on implementation and usage of Service Information (SI) Digital Video Broadcasting (DVB); A guideline for the use of DVB specifications and standards Digital Audio Visual Council. davic 1.4.1 Specification of the Home Audio/Video Interoperability (HAVi) Architecture http://www.interactivetvweb.org/ http://en.wikipedia.org/wiki/dsm-cc Multimedia Home Platform, A068r1 & tam668r23_11xdraft_20061115 Multimedia Home Platform, A068r3 Connected Device Configuration (CDC) 1.1 (JSR=218). Personal Basis Profile 1.1 (JSR 217) www.mhp.org tam1032r1-mhp-iptv-presentation 10