Sei sulla pagina 1di 19

Ginga -NCL

Ivn Bernal, Ph.D.


Ivan.bernal@epn.edu.ec http://ginga.epn.edu.ec

Escuela Politcnica Nacional


Quito Ecuador

Copyright @2010, I. Bernal

Agenda Generalidades
TV digital Interactividad
STB

Ginga (middleware)
Ginga-NCL Ginga-J

Composer y emulador de STB


NCL: regiones, descriptores y medios Documentos hipermedia: nodos y enlaces Conectores Ejemplo

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

Bibliografa
1. http://wiki.ginga.org.ar (varios artculos)

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

Generalidades
Ginga es el nombre que recibe el middleware. Ginga permite ejecutar aplicaciones interactivas dentro de un STB (Set-Top Box).
En el mercado existen STBs de distintos fabricantes y puede variar la plataforma de hardware/software de los mismos. Necesidad clara de tener un middleware que permita correr aplicaciones sin importar que STB se tenga. Los STBs tendrn la capacidad de actualizar su firmware as como tambin la versin de Ginga.
Se puede actualizar por aire: mtodo de actualizacin masivo, y es el broadcaster de TV quien se encarga de emitir la actualizacin. A travs de un dispositivo USB: el fabricante provee un pendrive o bajando la actualizacin desde la web.
Diciembre 2010/ Draft Ivn Bernal, Ph.D. 4

Generalidades
Ginga
Middleware abierto. Se subdivide en dos subsistemas interrelacionados que permiten el desarrollo de aplicaciones siguiendo dos paradigmas de programacin diferentes.
Ginga-J (para aplicaciones procedimentales Java) Ginga-NCL (para aplicaciones declarativas NCL)

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

Generalidades
NCL (Nested Context Language)
NCL is an XML application language based on the NCM (Nested Context Model)
NCM is a conceptual model for hypermedia document specification, with temporal and spatial synchronization among its media objects.

Lenguaje declarativo que provee facilidades para especificar aspectos de interactividad, sincronismos espacial/temporal entre objetos de multimedia, adaptabilidad y soporte para mltiples dispositivos, es decir construir aplicaciones. Ginga-NCL
nico middleware estndar internacional tanto para IPTV como para TV digital terrestre (en todos los tipos de dispositivos). nico estndar abierto. El mismo fue creado en la Pontificia Universidad Catlica de Ro de Janeiro (PUC-Rio) . Ofrece una infraestructura de presentacin de aplicaciones de multimedia/hipermedia desarrolladas sobre el paradigma declarativo, escritas en el lenguaje NCL y el lenguaje de scripting Lua.
Diciembre 2010/ Draft Ivn Bernal, Ph.D. 6

Generalidades
NCL (Nested Context Language)
Las aplicaciones se pueden ejecutar de dos maneras en el STB. Las aplicaciones a ejecutar en los STBs vienen dentro de la seal que reciben, en un canal de datos dedicado para las aplicaciones. Este canal, recibe el nombre de carrusel de datos, dado que se va iterando sobre los datos de manera circular envindolos constantemente. Esto es necesario porque cuando se sintoniza un canal de televisin, el STB debe poder descargar el contenido completo del carrusel. Luego ya sea por voluntad del usuario, o por eventos emitidos desde el brodcaster la aplicacin se ejecuta. La aplicacin es cargada a travs de un dispositivo USB y ejecutada.

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

Generalidades NCL (Nested Context Language)


Lenguaje declarativo
Significa que los programas declaran el resultado esperado. Quien ejecuta el programa debe articular los recursos necesarios para obtener lo que se declara.
Para comprender esta idea, considerar el lenguaje declarativo HTML, donde se declara una pgina web pero no se indica paso a paso como obtenerla, sino que el navegador web interpreta esta declaracin y la muestra con sus propios algoritmos en base a los recursos que maneja.

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

Generalidades NCL (Nested Context Language)


El lenguaje declarativo NCL puede adems complementarse con el lenguaje de scripting Lua, combinando programacin declarativa+procedural. Salvando la diferencia entre lenguajes y el uso especfico para aplicaciones de TV interactiva de Ginga-NCL-Lua.
Este enfoque es anlogo al uso del lenguaje declarativo HTML con el de scripting Javascript que se aplica en el desarrollo de paginas web.

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

Generalidades
The basic NCL structure module defines: Te root element, called <ncl>, and its children elements:
The <head> element The <body> element

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

10

Generalidades
The <head> element may have the following elements as its children: <importedDocumentBase> <ruleBase> <transitionBase> <regionBase> <descriptorBase> <connectorBase> <meta> and <metadata>

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

11

Generalidades
The <body> element may have the following elements as its children:
<port> <property> <media> <context> <switch> <link>

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

12

Ejemplo

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

13

Ejemplo

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

14

Ejemplo
Dentro de <head>:
Definir una <region> dentro de <regionBase>
Una regin define el espacio de exhibicin de un objeto medio

Definir un <descriptor> dentro de <descriptorBase>


Un descriptor define las caractersticas de presentacin de un medio y la regin en el que se muestra. Define como se presentan los medios.

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

15

Ejemplo

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

16

Ejemplo
Dentro de <body>:
Indicar un <port> de inicio.
Un <port> indica cul es el medio que comienza la exhibicin del documento NCL.

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

17

Ejemplo
Dentro de <body>: Definir los medios <media> que se emplearn Cada objeto medio debe tener:
id src: fuente de origen descriptor asociado tipo

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

18

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

19

Ejemplo
Los documentos hipermedios estn compuestos generalmente por nodos (ns) y enlaces (links, elos).
Cada nodo representa un medio y cada enlace representa la relacin entre medios. Una relacin entre medios puede especificar, por ejemplo, que en un determinado momento de la presentacin de un medio, otro debe iniciarse.

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

20

10

Ejemplo
Ejemplo: considerando un programa audiovisual interactivo que al iniciar la presentacin de un video, inicie tambin la presentacin de una imagen y texto. La disposicin en la ventana se organiza como se indica en la figura a) y la vista estructural b) correspondiente que presenta los nodos y enlaces.

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

21

Ejemplo
NCM (Nested Context Model) Modelo de Contextos anidados
Modelo subyacente de NCL va ms alls de los grficos presentados. En NCM los grficos pueden ser anidados, permitiendo segmentar y estructurar el documento como se desee. Esto se hace con los nodos de composicin, que son nodos compuestos de grafos NCM. Un nodo de composicin tambin se conoce como contexto. Captulo 1 y captulo 2 son contextos (nodos de composicin) mientras que los crculos son cada uno un nodo de contenido.

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

22

11

Ejemplo
NCM (Nested Context Model) Modelo de Contextos anidados
Para estructurar/organziar de mejor manera la seccin body (que es un contexto global), pueden emplearse los contextos para enmarcar algunos medios que estn estrechamente relacionados. Por ejemplo: los tems de un men.

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

23

Ejemplo
NCM (Nested Context Model) Modelo de Contextos anidados
En NCM un nodo puede ser de dos tipos:
No do de contenido o de medios, asociado a un elemento de medios como video, audio, imagen, texto, etc. Nodo de composicin o contexto (del cual SWITCH s un caso particular)

Para construir un documento hipermedia es necesario definir:


Qu se quiere reproducir En dnde (en qu regin de la ventana del dispositivo) Cmo (con que volumen, con que reproductor, con o sin borde) Cundo (antes/despus de que medio se presenta o despus de presionar qu tecla)

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

24

12

Ejemplo
En NCL, el sincronismo de inicio y fin entre medios est dado por los enlaces entre los medios. El comportamiento de un enlace est definido por el conector asociado. Un conector define uno o mas papeles/roles para una condicin de activacin del enlace y uno o mas papeles/roles para acciones que deben realizarse cuando el enlace sea activado. Ejemplo: uso de lo conectores onBeginStart y onEndStop

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

25

Ejemplo
onBeginStart
Apenas existe un rol de condicin y un rol de activacin. onBegin: condicin que indica que el enlace se activa cuando el nodo asociado a este rol es iniciado. start : accin indicando que el enlace, al ser activado, inicia una presentacin del nodo asociado a este rol. El conector onBeginStart inicia la presentacin del nodo ligado al rol start cuando el nodo asociado al rol onBegin es presentado

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

26

13

Ejemplo
Si se quiere presentar dos nodos de medios simultneamente: video e imagen. Un enlace utilizando un conector onBeginStart para cuando inicie el video tambin inicie la imagen. Un enlace utilizando onEndStop para cuando el video termine tambin termine la imagen.

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

27

Ejemplo

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

28

14

Ejemplo
En NCL 3.0 solo hay un tipo de conector : causal connector.
Define condiciones sobre las cuales el enlace puede ser activado y las acciones que sern realizadas cuando el enlace sea activado. Un conector causal debe poseer por lo menos una condicin y una accin. Cada condicin o accin est asociada a un rol, punto de interfaz del conector que participar de las asociaciones (bind) del enlace. Se lee: cuando la condicin, entonces la accin Cuando <algn nodo> inicia, termina <algn nodo>

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

29

Ejemplo

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

30

15

Ejemplo

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

31

Sobre descriptores

Un descriptor puede asociarse con varios medios

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

32

16

Sobre anchors (area/interface)

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

33

Sobre anchors (area/interface)

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

34

17

Acceso a variables de entorno


Se puede acceder a los valores de variables de entorno mediante el Mdulo Settings de NCLua.
Este mdulo ofrece acceso desde Lua a las variables definidas en el objeto settings del documento NCL. Ejemplos en Lua:
lang = settings.system.language age = settings.user.age val = settings.default.selBorderColor settings.service.myVar = 10 settings.user.age = 18 --> ERROR

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

35

Acceso a variables de entorno


Mdulo settings
Exporta la tabla settings con:
Variables definidas por el autor del documento NCL. Variables de ambiente reservadas, contenidas en el nodo: application/x-ginga-settings.

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

36

18

Acceso a variables de entorno


La forma de leer y escribir los settings desde NCL es mediante un objeto media de tipo application/x-ginga-settings.
Si se quiere definir una variable en un documento NCL:
<media id="misVariables" type="application/x-ginga-settings"> <property name="nombreDeVariable" value="unValor"/> </media>

Ejemplo:
<media type="application/x-ginga-settings" id="nodeSettings"> <property name="idioma"/> </media>

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

37

Acceso a variables de entorno


La forma de leer y escribir los settings desde NCL es mediante un objeto media de tipo application/x-ginga-settings.
Por otro lado hay variables de sistema o usuario, por ejemplo la edad del usuario que est utilizando el STB. Un ejemplo de como leer esta variable podra ser en la definicin de una regla: <ruleBase> <rule id="esMayor" var="user.age" comparator="gt" value="18" /> </ruleBase> y esa regla se podra utilizar en un switch para decidir si mostrar o no un contenido.

Diciembre 2010/ Draft

Ivn Bernal, Ph.D.

38

19

Potrebbero piacerti anche