Ambiente para Desenvolvimento de Aplicaes Declarativas

Propaganda
Ambiente para Desenvolvimento de Aplicações Declarativas para a
TV Digital Brasileira
Laboratório TeleMídia
Depto. Informática PUC-Rio
Introdução
Um middleware fica localizado entre as aplicações e o sistema operacional,
proporciona às aplicações um rápido e fácil desenvolvimento e garante
heterogeneidade de sistemas operacionais e hardwares.
As aplicações para TV Digital podem ser do tipo declarativa (entidade inicial
declarativa, baseado em uma linguagem de descrição declarativa) ou
procedural (entidade inicial procedural, implementação algorítmica (linguagens
baseadas em módulos, orientadas a objetos), maior poder do programador
sobre o código).Essas aplicações utilizam objetos baseados em ferramentas
(AVID, Final Cut) para gerações gráficas, de objetos de texto, etc. Para a
geração de conteúdo multimídia, uma solução seria uma linguagem de “cola”
de objetos.
Uma aplicação pode ser do tipo declarativa, procedural ou pode ser híbrida,
onde o conjunto de entidades mantém os dois modelos e cada um desses pode
ainda, referenciar conteúdo um do outro, coexistindo nos sistemas de TV
Digital.
Este artigo trata ainda do desenvolvimento de middlewares e o modelo
brasileiro Ginga, bem como o uso da linguagem declarativa NCL.
Histórico
MHEG foi um dos primeiros padrões abertos para TV Digital e utilizava notação
sintática ASN-1. Em 1991 o modelo de contextos aninhados NCM propôs uma
solução para aninhamento de composições, que foi adotado pelo MHEG em
1992. O NCM tinha foco apenas para Web e MHEG começou a ter
portabilidade Java, formando base para TV interativa (DAVIC – Digital Áudio
Visual Council).
MHP foi o primeiro middleware de puro Java, e foi incluído pelo uso do HTML,
que ainda é uma linguagem delicada por tratar apenas a interatividade, sem
sincronismo.
O middleware do padrão japonês ISDB, utiliza a linguagem SMIL, que não
funciona para temporizações em tempo real. Em 2006 começou a ser estudada
a junção de um perfil SMIL com a linguagem NCL, e o sistema ISDB adota um
perfil XHTML nos sitemas DVB e ATSC, com base em linguagem declarativa
BML. Esta linguagem possui sincronismo e adaptabilidade através de
entidades procedurais.
O sistema brasileiro de TV Digital é mais recente e buscou eficiência nas novas
tecnologias, em termos de custo e desempenho, criando o middleware Ginga
que possui sincronismo de mídia, interatividade particular, adaptabilidade de
conteúdo e suporte a múltiplos dispositivos de interação e exibição.
O Ambiente Declarativo do Middleware Ginga
Ginga-NCL processa documentos NCL e esta linguagem tem um controle não
invasivo e não define nenhum objeto de mídia. No Ginga, objetos de vídeo e
áudio MPEG-4 são tratados por exibidores de hardware.
O XLet (Java TV) é um objeto de execução que faz parte da ponte entre
ambiente declarativo e procedural do Ginga. Outro objeto com suporte no
Ginga é o LUA, que é uma linguagem projetada para estender aplicações,
ideal para configuração, automação e prototipagem rápida. LUA é interpretada
a partir de bytecodes para uma máquina virtual, tem gerenciamento de
memória e coleta de lixo. Existe ainda uma blblioteca LuaJava, permitindo a
integração entre as duas linguagens. As características da Lua são
simplicidade, eficiência, portabilidade, e baixo impacto de inclusão em
aplicações, tornando-se mais eficiente tanto em termos de CPU quanto
memória. Lua é muito utilizada na área de entretenimento e o NCL-Lua é o
ambiente ideal no sistema brasileiro de TV Digital.
O padrão Ginga define uma API padrão que todo exibidor deve reportar seus
eventos (parar, iniciar, pausar) e todo relacionamento entre as condições de
eventos é especificado pela linguagem NCL.
Aplicações geradas em outros sistemas podem ter suporte ao Ginga e
aplicações geradas em NCL podem ter suporte em outros tipos de
middlewares, por causa do duplo sentido na interoperabilidade gerada pela
implementação Java em conjunto com o formatador NCL.
Considerações Finais
As aplicações para TV Digital deverão permitir ao usuário o acesso ao sistema
em diversos dispositivos, bem como adaptabilidade ao perfil do usuário, local
onde o mesmo se encontra e interação com o sistema. Essas funcionalidades
de acordo com o Sistema Brasileiro Ginga, são eficientes tanto em termos de
tempo de CPU, quanto de utilização de memória.
NCL, que é uma linguagem utilizada no Sistema Brasileiro Ginga, vem sendo
utilizada para aplicações de TV Digital e tem foco em sincronismo e
adaptabilidade, o que faz com que esta seja incorporada também em outros
padrões internacionais.
Download