Ginga
# Ginga

Ginga es un Middleware, conjunto de software ubicado entre el código de las aplicaciones y la infraestructura de ejecución (plataforma de hardware y sistema operativo), para el Sistema Nipo-Brasileño de TV Digital Terrestre (ISDB-Tb o SBTVDT) y es la Recomendación de UIT-T para servicios de IPTV.

## Descripción

El middleware Ginga es una capa de software intermediario que permite el desarrollo de aplicaciones interactivas para televisión digital terrestre independientemente de la plataforma del hardware de los fabricantes y terminales de acceso. Da soporte al desarrollo de aplicaciones tanto empleando un paradigma declarativo, imperativo o ambos. Los dos ambientes de ejecución son exigidos en los receptores fijos y portátiles, mientras que solo el ambiente declarativo es exigido en los receptores portátiles. La arquitectura de implementación de referencia del middleware Ginga está dividida en tres módulos Ginga-NCL, Ginga-J y Ginga-CC (Common Core, Núcleo Común).

## Ginga-NCL (Nested Context Language)

El Ginga-NCL fue desarrollado por la Pontificia Universidad Católica de Río de Janeiro PUC-Rio. Su función es la de proveer una infraestructura de presentación para aplicaciones interactivas de tipo declarativas escritas en el lenguaje NCL (Nested Context Languaje). NCL es una aplicación de XML (eXtensible Markup Language) con facilidades para los aspectos de interactividad, sincronismo, espacio-temporal entre objetos de mídia, adaptabilidad, soporte a múltiplos dispositivos y soporte a la producción de programas interactivos en vivo no-lineares. El NCL es un lenguaje del tipo basado en la estructura que define una separación bien demarcada entre el contenido y la estructura de una aplicación, permitiendo definir objetos de media estructurados y relacionados tanto en tiempo y espacio.

## Ginga-J (Java)

El Ginga-J fue desarrollado por la Universidad Federal de Paraiba UFPB, para proveer una infraestructura de ejecución de aplicaciones basadas en lenguaje Java, llamadas Xlet, con facilidades y/o detalles para el ambiente de televisión digital. Ginga-J es un subsistema lógico del Sistema Ginga que procesa aplicaciones interactivas de tipo procedimental (Xlets Java). Un componente clave del ambiente de aplicaciones procedurales es el mecanismo de ejecución de contenido procedimental, que tiene como base la máquina virtual de Java. Ginga-J está basado en tres grupos de APIs llamados Verde, Amarillo y Azul, por los colores de la bandera de Brasil.

