Ginga

Ginga é o middleware de especificação aberta adotado pelo Sistema Brasileiro de TV Digital Terrestre (SBTVD) para instalação em conversores (set-top boxes) e em televisores.

É uma camada de software intermediária, entre o sistema operacional e as aplicações. Ele tem duas funções principais: uma é tornar as aplicações independentes do sistema operacional da plataforma de hardware utilizados. A outra é oferecer um melhor suporte ao desenvolvimento de aplicações. Ou seja, o Ginga será o responsável por dar suporte à interatividade.

Um middleware para aplicações de TV digital é constituído por máquinas de execução das linguagens oferecidas e bibliotecas de funções, que permitem o desenvolvimento rápido e fácil de aplicações interativas para TV digital. Essas aplicações possibilitam, por exemplo, acesso à internet, operações bancárias e envio de mensagens para o canal de TV ao qual se está assistindo, entre outros.

Dessa maneira, pode-se afirmar que o Ginga é uma tecnologia que leva ao cidadão todos os meios para que ele obtenha acesso à informação, educação a distância e serviços sociais, utilizando apenas sua TV. O Ginga é uma especificação aberta, de fácil aprendizagem e livre de royalties, possibilitando que qualquer programador produza conteúdo interativo, impulsionando a programação de TVs comunitárias, por exemplo. Com o desenvolvimento do Ginga, o Brasil se tornou o primeiro país a oferecer um conjunto de soluções em software livre para TV digital.

O Ginga é constituído por um conjunto de tecnologias padronizadas e inovações brasileiras que o tornam a especificação de middleware mais avançada do mundo e a melhor solução para os requisitos do país. O Ginga é o resultado de vários anos de pesquisas realizadas pela Universidade Católica do Rio de Janeiro (PUC-Rio) e pela Universidade Federal da Paraíba (UFPB).

O sistema é dividido em três subsistemas principais interligados (Ginga-CC, Ginga-NCL e Ginga-J), que permitem o desenvolvimento de aplicações seguindo dois paradigmas de programação diferentes. Dependendo das funcionalidades requeridas no projeto de cada aplicação, um paradigma será mais adequado do que o outro.

Ginga-CC

O Ginga-CC (Ginga Common-Core) oferece o suporte básico para os ambientes declarativos (Ginga-NCL) e procedural (Ginga-J), de maneira que suas principais funções sejam para tratar da exibição de vários objetos de mídia, como JPEG, MPEG-4, MP3, GIF, entre outros formatos. O Ginga-CC fornece também o controle do plano gráfico para o modelo especificado para o ISDB-TB e controla o acesso ao Canal de Retorno, módulo responsável por controlar o acesso à camada de rede.

Ginga-NCL

O Ginga-NCL foi desenvolvido pela PUC-Rio com o objetivo de prover uma infra-estrutura de apresentação para aplicações declarativas escritas na linguagem NCL (Nested Context Language), que é uma aplicação XML com facilidades para a especificação de aspectos de interatividade, sincronismo espaço-temporal entre objetos de mídia, adaptabilidade, suporte a múltiplos dispositivos e suporte à produção ao vivo de programas interativos não-lineares.

Para facilitar o desenvolvimento de aplicações Ginga-NCL, a PUC-Rio criou também a ferramenta Composer, um ambiente de autoria voltado para a criação de programas NCL para TV digital interativa. Nessa ferramenta, as abstrações são definidas em diversos tipos de visões que permitem simular um tipo específico de edição (estrutural, temporal, layout e textual). Essas visões funcionam de maneira sincronizada, a fim de oferecer um ambiente integrado de autoria.

Ginga-J

O Ginga-J foi desenvolvido pela UFPB para prover uma infra-estrutura de execução de aplicações baseadas na linguagem Java, com facilidades especificamente voltadas para o ambiente de TV digital.

Para mais informações sobre o Ginga, acesse o site ginga.org.br.