Ginga es la capa de software intermedio (middleware) que permite el desarrollo de aplicaciones interactivas para televisión digital de forma independiente de los fabricantes de hardware de terminales de acceso (set-top boxes).
Es resultado de años de investigación dirigido por la Universidad Católica de Río de Janeiro (PUC-Río) y la Universidad Federal de Paraíba (UFPB), Ginga crea un conjunto de tecnologías e innovaciones que hacen de la especificación brasileña la mas avanzada y al mismo tiempo la más adecuada a la realidad de los países latinoamericanos.
El Middleware Ginga se puede dividir en tres subsistemas principales: Ginga-CC, Ginga-NCL y Ginga-J.
Ginga-CC (Ginga Common-Core) proporciona soporte básico para ambientes declarativos (Ginga-NCL) y procedurales(Ginga-J). Dependiendo de la funcionalidad requerida en el diseño de cada aplicación, un paradigma de programación (declarativo o procedural) será mas adecuado que otro.
Ginga-NCL fue desarrollada por la PUC-Rio para promover la infraestructura de presentación de aplicaciones basadas en documentos hipermedia en lenguaje NCL, con facilidades para las especificaciones de aspectos de interactividad, la sincronización espacio-temporal de objetos multimedia, capacidad de adaptación y soporte para varios dispositivos. NCL tiene a Lua como su lenguaje de scripting.
Cabe señalar que los desarrollos relacionados con el lenguaje NCL se aplican a la situación de la televisión digital, pero también se aplican en otros escenarios de aplicaciones multimedia, tales como Web, IPTV, etc. La TV Digital Interactiva es sólo un caso especial de aplicación multimedia.
Fuente: Comunidad Ginga