# Ginga (middleware)

O Ginga é resultado de vários anos de pesquisa e desenvolvimento realizados pela Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) e pela Universidade Federal da Paraíba (UFPB). Inicialmente desenvolvido para suporte ao desenvolvimento de aplicações hipermídia, um novo perfil do sistema foi particularizado tendo como foco a TV digital terrestre, durante o esforço feito por várias instituições de pesquisa do Brasil, na concepção do Sistema Brasileiro de TV Digital (SBTVD).

## Variações

Ginga é o middleware de especificação aberta adotado pelo Sistema Nipo-Brasileiro de TV Digital Terrestre (ISDB-T) a ser instalado em conversores (set-top boxes), em televisores e em dispositivos portáteis, como, por exemplo, telefones celulares. Ginga é uma camada de software intermediária, entre o sistema operacional e as aplicações. Ela 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 é o responsável por dar suporte à interatividade.
Em outras palavras, um middleware para aplicações de TV digital consiste de 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 vão possibilitar, por exemplo, acesso à internet, operações bancárias, envio de mensagens para o canal de TV ao qual se está assistindo, entre outros.
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 atualmente, e a melhor solução para os requisitos do país.
O sistema Ginga foi a primeira contribuição brasileira, na área de tecnologia da informação e comunicação (TIC), a se tornar, na íntegra, um padrão mundial, reconhecido pela União Internacional de Telecomunicações (ITU-T). Por definição da Recomendação ITU-T, e como marca registrada da PUC-Rio e UFPB, o sistema Ginga é subdividido em dois subsistemas principais interligados: o núcleo comum (Ginga-CC) e o ambiente de execução das aplicações. O ambiente de execução de aplicações é composto pelo ambiente de execução de aplicações NCL (Ginga-NCL) integrado ao ambiente de execução de aplicações Java (Ginga-J). Ambos os ambientes são obrigatórios no Sistema Brasileiro de TV Digital Terrestre para terminais fixos, enquanto o ambiente Ginga-J é opcional no caso de terminais portáteis. Também para sistemas de TV digital IPTV, segundo Recomendação ITU-T apenas o ambiente Ginga-NCL é obrigatório.
Ginga-NCL e Ginga-J 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 imperativo (Ginga-J). Entre suas principais funções estão aquelas para tratar da exibição dos vários objetos de mídia que compõem uma aplicação, como JPEG, MPEG-4, MP3, GIF, entre outros formatos. O Ginga-CC fornece também o controle do plano gráfico, o controle para obtenção dos dados transmitidos por difusão (broadcast) e pelo Canal de Interatividade (ou canal de retorno), para obtenção e transmissão de dados sob demanda.

### Ginga-NCL

O Ginga-NCL foi desenvolvido pela PUC-Rio com o objetivo de prover uma infraestrutura 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 declarativa 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 tarefas que requerem uma programação algorítmica, NCL tem Lua como sua linguagem de script.
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 inicialmente desenvolvido pela UFPB para prover uma infraestrutura de execução de aplicações baseadas na linguagem Java, com facilidades especificamente voltadas para o ambiente de TV digital, fornecidas pelas especificações Globally Executable MHP (GEM), que foram a posterior substituídas pela especificação aberta Java DTV desenvolvida pela SUN Microsystems, hoje Oracle Corporation.
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 e de fácil aprendizagem. É também livre de royalties para qualquer programador que produza conteúdo interativo. A arquitetura do ambiente de execução de aplicações NCL (Ginga-CC e Ginga-NCL) oferece também uma implementação de referência, reconhecida pelo ITU-T, de código aberto e livre de royalties, 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.

## Especificações

As normas técnicas da estrutura do software já são Normas ABNT.
Na Associação Brasileira de Normas Técnicas (ABNT) podem ser encontradas todas as Normas referentes ao Ginga, referentes à codificação de dados e especificações de transmissão para radiodifusão digital.
As transmissões digitais no Brasil iniciaram em dezembro de 2007. Porém, a interatividade ainda não chegou em larga escala aos telespectadores. No entanto, vários fabricantes já oferecem produtos com o Ginga no Brasil, como os televisores da Samsung, Sony, Panasonic, Semp-Toshiba e LG, e celulares da Samsung (Galaxy S), LG (GM600) e Nokia.

## DTVi

Os televisores e conversores digitais preparados para a interatividade com o Ginga recebem o selo DTVi.

## Críticas

O projeto recebeu críticas, pelo fato de não ter aproveitado a experiência dos três padrões principais (americano, europeu e japonês), que trabalhavam em XHTML e ECMAScript, e ter seguido uma linha de desenvolvimento puramente nacional. Os programas desenvolvidos na linguagem criada NCL-Lua e Java decepcionaram, pela excessiva simplicidade e falta de recursos. Muitos previram que os usuários não deixariam de usar o videogame ou PC para acessar um aplicativo no controle remoto. A explosão dos tablets e smartphones confirmaram essas previsões.$^[$
Também foram levantadas suspeitas sobre a real utilidade do projeto, que recebeu dinheiro público, visto o fato dos fabricantes já poderem entregar os aparelhos com aplicações nativas. As SmartTVs sepultaram tecnologicamente o conceito por trás do middleware, e muitos fabricantes deixaram de entregar funções dedicadas ao Ginga nos novos modelos de televisores e celulares.$^[$
Na verdade, o middleware brasileiro foi apanhado por uma tempestade perfeita, formada por um conjunto de fatores.
Um deles foi a recusa dos radiodifusores em adotar a interatividade na TV aberta. A publicidade de lançamento do Ginga previa sua adoção como ferramenta de interatividade colada à programação de TV. Assim, o espectador poderia clicar num produto anunciado e fazer a compra online ou, por exemplo, ter acesso a estatísticas de uma partida de futebol.
Mas para os radiodifusores, capitaneados pela Globo, a interatividade sempre foi associada ao aumento de custos e, principalmente, à evasão de audiência. Com a interatividade, o espectador poderia ter acesso a outros conteúdos e se afastar da programação normal das emissoras, diminuindo sua audiência e, portanto, o faturamento em publicidade. Assim, com seu enorme poder político junto ao governo, os radiodifusores retardaram ao máximo a adoção do Ginga no sistema digital e a TV interativa perdeu mais um estímulo para a sua adoção.
Os fabricantes de aparelhos de TV também não viam com bons olhos o software brasileiro. Mas, ao contrário dos radiodifusores, o que os fabricantes de TVs querem é implantar a interatividade, só que por meio de aparelhos que ficaram conhecidos como smart TVs. Ou seja, querem vender a interatividade para os consumidores, mas não por meio de aparelhos de TV que tenham um software de código-fonte aberto instalado. Para empresas como Samsung, LG e Sony, a TV interativa só faz sentido se for controlada por elas próprias, através de seus próprios sistemas operacionais, que definam quais aplicativos de interatividade podem ou não ser instalados. Para essas empresas, as TVs interativas são uma nova fonte de recursos, que o Ginga poderia desestabilizar.
Por conta disso, depois de atender a sucessivos pedidos dos fabricantes para adiar a adoção do Ginga nessas TVs, o governo definiu, somente em 2013, que 75% dos aparelhos fabricados no Brasil teriam que vir com o Ginga instalado, dispensando a necessidade do uso de conversores. Até o ano passado, 10% dos aparelhos fabricados seguiram dispensados dessa obrigação.
Outra dificuldade enfrentada pelo Ginga foi a pequena quantidade de aplicativos desenvolvidos para o sistema. Todos sabemos que, para além das características técnicas, é a quantidade e a qualidade de aplicativos que determina o sucesso de um sistema operacional. Porém, passados quase dez anos do Decreto presidencial que introduziu a TV digital aberta no Brasil, o Ginga teve apenas a experiência-piloto do “Brasil 4D”, que se destinava a prover acesso a informações de saúde, educação e outros temas de utilidade pública por meio dos conversores da TV digital. Foi o projeto do Brasil 4D que garantiu a inclusão, no planejamento do governo, da entrega dos conversores aos beneficiários do Bolsa Família, por meio do Ministério do Desenvolvimento Social. Porém, como dito, apenas uma parte deles agora poderá usufruir do sistema.
Por fim, caso quisesse, o governo poderia ter definido uma política de digitalização para a TV a cabo que também incluísse o Ginga. Essa iniciativa teria duas vantagens. Primeiro, a implantação do Ginga começaria pelos consumidores de maior renda, como em geral acontece com as tecnologias bem-sucedidas. São esses usuários que estão dispostos a pagar mais caro pelo acesso às novas tecnologias e que começam a criar a escala necessária para o seu barateamento. Em segundo lugar, operações de TV a cabo já possuem naturalmente o canal de retorno necessário para a interatividade e seria possível iniciar a produção de aplicativos realmente interativos. Porém, a opção do governo foi prever o uso do Ginga apenas na TV aberta.

### Outras limitações à TV interativa

Uma limitação da TV interativa, que vai além do Ginga, é seu caráter de tela coletiva, em geral para toda a família, colocada de forma privilegiada nas salas das residências. Ao contrário de PCs, notebooks, tablets e smartphones, que são utilizados por um único usuário, as TVs interativas não permitem uma condição de interatividade com privacidade. Assim, aplicativos como banco eletrônico e redes sociais, que chegaram a ser pensados para as TVs interativas, teriam enormes dificuldades de serem adotados.
Talvez por isso, mesmo nas modernas smart TVs, a interatividade acabou restrita ao consumo de aplicativos de vídeo por demanda, como a Netflix. E, embora haja uma quantidade razoável de outros aplicativos que podem ser instalados nas TVs, sua utilização é desprezível, seja no Brasil ou em outros países.
Por conta desse conjunto de fatores, é possível concluir que a janela de oportunidade para a adoção do Ginga na TV aberta brasileira já está fechada. Os esforços necessários para reabri-la seriam politicamente enormes e há que se questionar se ainda são válidos diante do necessário esforço para garantir a universalização do acesso à Internet.