68

Middleware Ginga
Resumo

Middleware Ginga
Luiz Fernando Gomes Soares

Departamento de Informática Universidade Católica do olho olho olho olho olho ol olho olho olho olho olho olho olho olho olho ol olho olho olhoRio de Janeiro olho olho ol olho olho olho olho olho Rua Marquês de olho olho olho olho ol olho olho olho olho olho olho olho olho São Vicente 225 Fone: (21) 3527-1530 (FAX) CEP 22453-900 – Rio de Janeiro - RJ - BRASIL
☛ Autor : Prof. Luiz Fernando Gomes Soares – Coordenador do Grupo de Trabalho de Middleware Colaborou: Paulo Henrique Castro – Coordenador do Módulo Técnico do Fórum SBTVD

lfgs@telemidia.puc-rio.br

(plataforma Ginga, e sisPalavras-chave: de hardware NCL, ce, dependendo semiddleware, ambiente declarativo,imperativa. ConLua, Java, essa entidade é codifi- fas descritas de forma ambiente tema operacional), como ilustrado pelo cada segundo uma linguagem declarativa imperativo, TV do Sistema Brasi- ou imperativa. Note que aplicações de- tudo, uma linguagem declarativa usualModelo de Referência digital. mente visa um determinado domínio de

M

Este artigo apresenta a arquitetura de referência do middleware Ginga do Sistema iddleware é uma camada de um conjunto chamando atenção descritas de forma inovações Brasileiro de TV Digital Terrestre, de aplicações imperativas. para as diversas declarativa são mais software posicionada entre A entidade inicial de uma aplicação, isto introduzidas, que fazem desse middlewareaplicação, é mais expressivosconcebidas eespecialista, um dos que fáceis de seremprogramador entendidas, e eficientes. o código das aplicações e a é, aquela que dispara a sem exigir um
infra-estrutura de execução define a que conjunto a aplicação pertencomo é usualmente necessário nas tare-

leiro de TV Digital Terrestre, apresentado clarativas podem conter entidades impeaplicações e define um modelo específico na Figura 1. rativas e vice-versa, o que as caracteriza para esse domínio. Um middleware para aplicações de TV é apenas a entidade inicial. Quando uma tarefa casa com o modedigital consiste de máquinas de execução Linguagens declarativas enfatizam a lo da linguagem declarativa, o paradigdas linguagens oferecidas, e bibliotecas descrição declarativa de uma tarefa, ao ma declarativo é, em geral, a melhor esde funções, que permitem o camada deinvés de sua decomposição passo entre o colha. Linguagensaplicações e bem desenvolvia pasMiddleware é uma software posicionada código das imperativas são a mento rápido e fácil de aplicações. so, em uma definição algorítmica do fluexpressivas e de propósito geral, porém, infra-estrutura de execução (plataforma de uma máquina, como sistema operacional), como O universo das aplicações de TVD (TV xo de execução de hardware e a um elevado custo. Como mencionado, Digital) pode pelo Modelo em um ser particionado de Referência do Sistema Brasileiroelas usualmente exigem Terrestre, fazem as descrições imperativas. Por ser ilustrado de TV Digital um programaconjunto de aplicações declarativas e de mais alto nível de abstração, tarefas dor especialista, geralmente colocam

1

Introdução

apresentado na Figura 1.

Apl 1 Appl1

Apl 2 Appl2

Xletii Xlet
Bridge Bridge

...

Apl n Appln
API SO Rede Externa

Ginga-NCL Ginga-NCL

Ginga- J GingaMemria ó RF in Demodulador Decoddo Canal .

MPEG-4 HE-AAC@L4 H.264 HP@L4.0

MPEG-4 HE-AAC@L3 H.264BP@L1.3

CPU

IR

CR

D em

Dec.Vídeo Dec.Á udio

VC

Video out RF RF out Audio out Audio Surround

MPEG-2 System BST-OFDM
Figura 1: Modelo de referência do SBTVD

Figura 1: Modelo de referência do SBTVD

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.
produÇÃo proFISSIoNAL • juNho 2008

ux .

Os dois últimos módulos compõem a camada de Serviços Específicos do Ginga. Ginga-CC provê. Atualizações CA DSM-CC Canal de Int. a entidade inicial de uma aplicação é sempre declarativa. quanGinga-J é o subsistema lógico do middleware Ginga responsável pelo processamento de to para aplicações imperativas. paradigma diferente da entidade inicial aplicações imperativas. aplicações imperativas enquanto o ambiente a declarativo é exigido nos receptores por. os dois amTerrestre (SBTVD) trouxe como principal Ginga-NCL é o subsistema lógico do middleware Ginga responsável pelo processamento O ambiente declarativo de um middbientes são exigidos nos receptores fixos inovação seu middleware. A especificação ambos os casos. A especificação desse subsistema cabe às Normas NBR 15606-2 e ABNT NBR 15606-5. é oferecido suporte tanto para aplicações declarativas.264. como é o caso do sistema japonês. Ginga-NCL. a melhor escolha. Muitas vezes. como é o caso do sistema Figura 2: Arquitetura de referência do middleware Ginga Figura 2: Arquitetura de referência do middleware Ginga americano e europeu.oNCL (Nested Context que o nome Ginga? Ginga é leware dá o suporte necessário às aplicae móveis. o paradigma imperativo é. incluindo entre eles o exibidor MPEG4/H. assim. mas em ções declarativas. como mostra a Figura 2. No caso do middpodem ser definidas. Ginga-J. e imperativo.1. um nível de abstração da plataforma de hardware e sistema operacional. leware do padrão brasileiro. Por Language) e sua linguagem de A arquitetura do Ginga pode ser dividida em três módulos principais: Ginga-CC. Sistema Operacional mas as outras entidades podem ser codificadas segundo o paradigma imperativo. enquanto apenas ambiente Ginga. Um conjunto de exibidores monomídia comuns faz parte dos componentes do Ginga-CC. Gráfico DRM imperativo.desse escritas utilizando linguagem Java. implementado por hardware. No entanto.2. A arquitetura do sistema garante que apenas o módulo Ginga-CC deva ser adaptado à plataforma onde o Ginga será embarcado. GingaNCL e Ginga-J. entidades seguindo um imperativo dá o suporte necessário às táteis. subsistema caberá à Norma ABNT NBR 15606-4Oe Sistema Brasileiro de TV Digital é assunto da Seção 3. sendo assunto da Seção 3. denominado de aplicações declarativas NCL. os miProcessador de dados Gerenciador de Contexto ddlewares para TV digital provêem suG. O acesso a tais exibidores se dá através de . script Lua compõem a base para o desenvolvimento de aplicações declarativas no SBTVD. As características de tais exibidores são definidas na Norma ABNT NBR 15606-1. em geral. nos casos onde o foco de realização de uma tarefa não API núcleo API específica Máquina Formatador Gerenciador Máquina Base Privada Ginga-J Ginga-J Java NCL Lua casa com o foco da linguagem declarativa.2 Arquitetura de Referência 69 em risco a portabilidade de uma aplicação. e o controle da aplicação é muito Máquina de execução Ginga-J Máquina de apresentação Ginga-NCL mais sujeito a erros cometidos pelo proPonte gramador. texto e imagem. acessível através de APIs (Application Program Interfaces) bem definidas. vídeo. Eles são exibidores de áudio. Ginga-CC (Ginga Common Core) é o subsistema lógico que provê todas as funcionalidades comuns ao suporte dos ambientes declarativo. Muitas vezes. Núcleo comum Ginga_CC Adaptadores Por tudo o mencionado acima. porte para o desenvolvimento tanto seExibidores guindo o paradigma declarativo quanto o Sintonizador Persistencia G.

264. A especificação desse subsistema caberá à Norma ABNT NBr 15606-4. Ginga-CC provê. o Gerenciador Gráfico é o responsável pelo gerenciamento do modelo conceitual do plano gráfico de apresentação. é adaptação. Um conjunto de exibidores monomídia comuns faz parte dos componentes do Ginga-CC. Todo o acesso a dados obtidos através do canal de retorno (ou canal de interatividade) é também de responsabilidade do Ginga-CC. qualidades inerentes ao middleware brasileiro. Ginga-j é o subsistema lógico do middleware Ginga responsável pelo processamento de aplicações imperativas escritas utilizando a linguagem java. e imperativo. O acesso a tais exibidores se dá através de adaptadores. e como esses planos se superpõem. Ginga-CC (Ginga Common Core) é o subsistema lógico que provê todas as funcionalidades comuns ao suporte dos ambientes declarativo. falam. dançam e se relacionam com tudo em suas vidas. Ginga é flexibilidade. especificado nas Normas ABNT NBr 15606-2 e ABNT NBr 15606-5. Arquitetura de Referência A arquitetura do Ginga pode ser dividida em três módulos principais: Ginga-CC. texto e imagem. Ginga-j. um nível de abstração da plataforma de hardware e sistema operacional. A arquitetura do sistema garante que apenas o módulo Ginga-CC deva ser adaptado à plataforma onde o Ginga será embarcado.70 uma qualidade de movimento e atitude que os brasileiros possuem e que é evidente em tudo o que fazem. responsáveis por notificar eventos de apresentação e seleção (interação do usuário). A Norma ABNT NBr 15606-1 é responsável também por tal definição. É ele que define o plano de exibição do vídeo principal h. Ginga-NCL. Entre os exibidores também se encontra o exibidor (agente do usuário) hTML. Eles são exibidores de áudio. os planos de exibição dos outros objetos de mídia que compõem uma aplicação TVD. Na Figura 2. Ainda na Figura 2. assim. As diversas possibilidades de canal de interatividade são especificadas na Norma ABNT NBR 15607. como mostra a Figura 2. A forma como caminham. NCL (Nested Context Language) e sua linguagem de script Lua compõem a base para o desenvolvimento de aplicações declarativas no SBTVD. obtidos através de carrosséis de . incluindo entre eles o exibidor MPEG4/h. Ginga-NCL é o subsistema lógico do middleware Ginga responsável pelo processamento de aplicações declarativas NCL. implementado por hardware. As características de tais exibidores são definidas na Norma ABNT NBr 15606-1. vídeo.264. os componentes DSM-CC e Processador de Dados oferecem o suporte para obtenção de dados. os dois últimos módulos compõem a camada de Serviços Específicos do Ginga. acessível através de APIs (Application Program Interfaces) bem definidas. Ginga-NCL e Ginga-j.

.

especificado por APIs simbolizadas na Figura 2 pela ponte. D omo já mencionado. ambas desenvolvidas nos laboratórios da Pontifícia Universidade Católica do rio de janeiro. usados no sincronismo temporal e espacial da apresentação de conteúdos. Ao contrário. o componente de Persistência é o encarregado pelo gerenciamento do armazenamento de dados requisitados pelas aplicações. e torná-las disponíveis ao Ginga-NCL e Ginga-j. não existe qualquer relacionamento mestre-escravo entre os diversos ambientes de aplicação do Ginga. por exemplo o sistema Europeu. O ambiente tem por base a linguagem NCL (uma aplicação XML) e sua linguagem de script Lua. para que eles possam efetuar adaptação de conteúdos ou da forma como conteúdos deverão ser apresentados. ela pode criar. acionar métodos das classes java do objeto. a partir de então. Entre elas estão aquelas que provêem suporte a múltiplos usuários. chamadas de ApIs amarela e vermelha do Ginga-j. . O Gerenciador de Contexto é o encarregado de colher informações do dispositivo receptor. conforme especificado na Norma ABNT NBr 15606-2.72 O Ambiente Ginga-J objetos DSM-CC. conforme será especificado na Norma ABNT NBr 15606-4. Os componentes CA (Conditional Access) e DRM (Digital Right Management) são os responsáveis por determinar os privilégios de acesso às diversas mídias que compõem uma aplicação (programa) TVD. conforme ilustra a Figura 2: a máquina virtual java. Quando a entidade java é a entidade inicial. modificar e destruir documentos declarativos NCL através das APIs de comandos de edição Ginga. ou como uma entidade inicial controlando o ciclo de vida de uma entidade filha declarativa. Os demais componentes do Ginga-CC são opcionais e dependem da implementação particular de cada receptor. comuns a diversos middlewares imperativos. As APIs específicas do Ginga que podem ser exportadas para outros sistemas são chamadas de amarelas. C Ambientes Declarativo e Imperativo do Middleware Ginga iferente de outros sistemas. As APIs amarela e vermelha. e o módulo responsável pelo suporte às ApIs específicas do Ginga-j. a múltiplos dispositivos e a múltiplas redes. cabe ainda ressaltar aquelas para a comunicação com o ambiente declarativo GingaNCL. Estão também aquelas que oferecem suporte às aplicações que podem ser recebidas. em especial aplicações de inclusão social. Entre as APIs específicas. Objetos de mídia NCL com códigoimperativo java podem também comandar condições de disparos de relacionamentos NCL. Quando a entidade java é uma entidade filha. eles são ambientes pares com processo muito bem definido de comunicação. Ginga-NCL é a inovação totalmente brasileira do SBTVD. Ginga-j tem por base um conjunto de pacotes java. também chamadas ApIs verde do Ginga-j. responsáveis pela determinação da adaptação de conteúdos ou da forma como conteúdos são apresentados. As ApIs verde do núcleo são as responsáveis por manter o sistema compatível o máximo possível com os sistemas americano e europeu. podem também manipular variáveis globais de aplicações declarativas. que o distingue dos demais ambientes imperativos dos middlewares do sistema europeu e americano. são endereçadas pela ApI vermelha do Ginga-j. enquanto o componente Sintonizador é o responsável pela sintonização e controle do canal de rádio frequência. o ambiente imperativo Ginga-j oferece suporte a aplicações desenvolvidas usando a linguagem java. ela atua como um objeto de mídia NCL. e a as APIs da ponte são inovações brasileiras do ambiente imperativo Ginga-j. podendo se registrar para receber eventos NCL. conforme determinado pelas aplicações. Ginga-j é dividido em três módulos. o núcleo e suas ApIs. especificados na Norma ABNT NBr 15606-3. durante o ciclo de vida de um dispositivo receptor. uma aplicação java pode agir como entidade filha de uma aplicação declarativa. europeu (dVB-hTML) e japonês (BML-ArIB) têm por base a linguagem XhTML. armazenadas e executadas em um tempo futuro. Ao Gerenciador de Atualizações cabe o controle das atualizações de todo o software residente e do middleware Ginga. O suporte para as necessidades específicas de aplicações voltadas para o Brasil. Eventos NCL poderão. Os ambientes declarativos dos sistemas americano (ACAP-X). Ginga-j seguirá a especificação da Norma ABNT NBr 15606-4. informações sobre o perfil do usuário e sua localização.

.

automação (scripting) e prototipagem rápida (geração rápida de aplicações). Além disso. ela define vivo. Voltando nossa atenção para a Figura 2. NCL avançadoesistema no TV digitalentre outros. é possível ter navegadores BML. Outro objeto de mídia NCL que deve obrigatoriamente ser suportado pelo Ginga-NCL é o objeto de mídia baseado em XhTML. A máquina de execução Lua é responsável pelo processamento do código imperativo Lua. depende de qual navegador XhTML. Lua é tipada dinamicamente. tratando a interação do usuário ao formatador NCL (na verdade. No bém o suporte declarativo a adaptações SBTVD. uma aplicação os poucos casos particulares. NCLtrês grupos.ativadas. ra definição de alternativas (adaptação guagem segundo grupo de comandos. Outros tipos de relacionamentos. como o Ginga-J. Ginga-NCL de uma aplicação. implementação de conteúdo. o componente Formatador NCL já foi por demais citado. Tal facilidade declarativa. mas. da maioria das aplicações anteriormente comandos para aplicações para TVD são usualmente de TVD pode ser gerada ou modificadapor mencionado.do sistema brasileiro. um desses exibidores é o decode conteúdo e de formas de apresentadificador/exibidor MpEG-4. de vídeo. ou seja. Essas características fazem de Lua uma linguagem ideal para configuração. que têm como um caso particular. através de comandos exemplo. no caso de todos oferece suporte a múltiplos dispositivos de entrada saída. Assim. dVB-hTML e ACApX individualmente embutidos em um exibidor de documento NCL. garantindo que os relacionamentos espaço-temporais definidos pelo autor da aplicação sejam respeitados. vide Figura 2). O conjunto de dinâmica de delo da especificados na Norma ABNT NBR 15606-2. o suporte imperativo oferecido pela linatravés de comandos bem definidos pertencentes ao java. ainda. aplicações NCL podem ser espaço-temporal e relacionamentos pa. são Como a aplicação ao vivo. podenecessária. onde comocomunidade de usuáriosestruturados uma objetos de mídia são cria ao vivo. ter todos eles. dispor de apenas por usar as tecnologias mais avançadas. Para Em sentido contrário. A escolha de outras funcionalidades adicionais é opcional. por Quais obinteração do usuário. Como de TVD. Nesse sentido. ativação e manipulação dessas aplicações. Esses são demais objetos de mídia que podem ser também os focos da maioria das aplicarelacionados utilizando NCL. a habilitação de aplicações o um determinado canal de TV. Dessa forma. com coleta de lixo incremental. mas embute documentos (ou objetos) baseados em XhTML. terrestre. provê suporte para o prende as mídiasde aplicações a cola que grande domínio em apreseninterativas dedas linguagens descortina: as tações multimídia. atua como exibidor dessa mídia. A NCL não substitui. como é o caso de seu jetos de mídia têm espacial e temporal em sua forma mais exibidores de mídia que estão acoplados ampla. Lua é uma linguagem de programação imperativa eficiente. suporte depende dos tecnologias inovadoras. de texto. como ao centradas tempo real). O terceiro grupo e de comandos para modificações de umaNCL tem uma separação mais de conteúdo define apresentação). O Sistema Brasileiro é. Lua é uma das linguagens de script mais . portanto. privada. O primeiro grupo de comandos é responsávelAlternativamente. novaseaplicações (geração tempo e espaço. o suporte declarativo do em hardware no receptor de televisão a múltiplos dispositivos de exibição e a digital. projetada para estender aplicações. principalmente. de código imperativo o oferecido pela linguagem XhTML. qual linguagem baseada em XhTML tem suporte em um formatador NCL é uma escolha de implementação e. no de novos conteúdos e informações personalizados). Como acontece com outros objetos de mídia. em XhTML. atualmente. rápida e leve. quando a geraçãocomandos de vivo (em no vídeo. as APIs da ponte base pela ativação e desativação de uma com tador. ou seja. NCL define uma separação sobre o conteúdo e aplicações recebidas. o mode edição. É possível. não visa não apenas o suporte declarativo à como objetos de mídia NCL. Lua combina uma sintaxe simples para programação imperativa com construções poderosa para descrição de dados baseadas em tabelas associativas e em semântica extensível. suporte à interação do usuário telespecporte de sua linguagem de script Lua. cola. pausadas. ao vivo. opor canal de radio ções para TV privada que torna NCL a estrutura de dados legado de tecnologias anteriormente desenvolvidas para naopção preferencial a desenvolvimento freqüência. únicos ECMAScript. Finais mínio de aplicações de áudio. que são um trocadas entre seus membros. controle não tringe ou prescreve os tipos de conteúdo conteúdo e sua apresentação e leiaute. ma mídia per os comandos de edição ao os três esistemas citados a linguagem juntamente com si. dos objetos de mídia. incorporado no formatador NCL (na verdade suportado pelo Ginga-CC). Cobem demarcada entre o conteúdo e a esrelacionados. em outras produÇÃo proFISSIoNAL • juNho 2008 O Formatador NCL trata de aplicações recebidas pelo Ginga-CC e depositadas em uma palavras eles são simplesmente parte de uma aplicação de TVD. e tem como responsabilidade orquestrar toda a execução de uma aplicação NCL. Como conseqüência. NCL apenasTV em TVD que se baseadas aplicações para as chamadas define Diferente comunidade (Community ou Social TV). poO modelo da linguagem NCL visa um do4 Consideraçõesmais amplo do que demos ter objetos de imagem. ela não define nenhulinguagem imperativa. ela não restrutura de uma aplicação. é interpretada e tem gerenciamento automático de memória. aplicações declarativas desenvolvidas para aqueles sistemas também executariam com o suporte oferecido pelo middleware Ginga. no Ginga-NCL. linguagem XhTML tem o foco no conteúdo é ser dividido em provê o suedição. Ao contrário. usualmente definidos através de uma acurada entre o conteúdo e a estrutura Finalmente. o mais (Xlet Lua. NCL visa tamsuporte no Ginga-CC. de SBTVD). provendo mo uma linguagem de para exibição em tempo real ou invasivo da ligação entre o sob demanda. Resta mencionar que as Normas ABNT NBr 15606-2 e ABNT NBr 15606-5 definem apenas um conjunto de funcionalidades básicas para XhTML e suas tecnologias derivadas como obrigatórias.74 • Lua vs JS • LuaJIT vs JS Figura 3: ComparaçãoJavaScriptLua e o JavaScriptMozila Firefox Figura 3: Comparação entre Lua e o entre SpiderMonkey do navegador SpiderMonkey do navegador Mozila Firefox XThML carrega o chamada “base privada”. Existe uma basedigital. Cabe ao componente Gerenciador de Bases Privadasno tarefa de receber vegação textual. o vídeo e o áudio edição/produção da aplicação em tempo MpEG-4 são tratados como todos os de exibição. retomadas e desativadas. mas o sincronismo middleware Ginga. Em uma como relacionamentos de sincronização de Ginga-j podem ser usadas acionando base privada.

no Ginga-NCL. Tal facilidade declarativa. Várias listas de discussão e contribuições no desenvolvimento de aplicações. o mais avançado sistema de TV digital terrestre. e com um footprint de memória bem menor. obtida do site de avaliação de linguagens http://shootout. Como anteriormente mencionado. pode ser dividido em três grupos. pausadas. Em uma base privada. br. O conjunto de comandos de edição. Ferramentas de autoria para o desenvolvimento de aplicações NCL. livros e exemplos de várias aplicações NCL e Lua. aplicações NCL podem ser ativadas. Finalmente. podem ser encontradas na comunidade Ginga. muito mais rápida do que ECMAScript. O . mas. Documentos. O Formatador NCL trata de aplicações recebidas pelo Ginga-CC e depositadas em uma estrutura de dados chamada “base privada”. atualmente. O terceiro grupo define comandos para modificações de uma aplicação ao vivo. podem PP ser obtidos em www. como indica a Figura 3. principalmente. através de comandos de edição. ncl. bem como tutoriais.br. eficientes. Cabe ao componente Gerenciador de Bases Privadas a tarefa de receber comandos para ativação e manipulação dessas aplicações.org. uma aplicação de TVD pode ser gerada ou modificada ao vivo (em tempo real). provê suporte para o grande domínio de aplicações interativas de TVD que se descortina: as aplicações para as chamadas TV em comunidade (Community ou Social TV). artigos e tutoriais a respeito do middleware Ginga. O primeiro grupo de comandos é responsável pela ativação e desativação de uma base privada. Lua é hoje a linguagem mais importante na área de entretenimento. também em código aberto. juntamente com os comandos de edição ao vivo. GingaNCL oferece suporte a múltiplos dispositivos de entrada e saída. que são trocadas entre seus membros. A máquina Lua também se encontra disponível pelo mesmo site. através de licença MIT. retomadas e desativadas. Existe uma base privada por canal de radio freqüência. através de comandos bem definidos pertencentes ao segundo grupo de comandos. como o Ginga-j. por dispor de tecnologias inovadoras. sob de licença GpLv2.br.gov. novas aplicações (geração de novos conteúdos e informações personalizados).debian.softwarepublico. onde uma comunidade de usuários cria ao vivo. como é o caso de seu middleware Ginga. a habilitação de aplicações de um determinado canal de TV.75 Conclusões Sistema Brasileiro é. não apenas por usar as tecnologias mais avançadas.org. sobre o conteúdo e aplicações recebidas.alioth. para exibição em tempo real ou sob demanda. especificados na Norma ABNT NBr 15606-2. estão disponível ainda no mesmo site. ou seja. únicos do sistema brasileiro. em média 7 vezes mais rápida e com um uso de memória 40 vezes menor. em www.org/: Lua é. A implementação de referência do Ginga-NCL foi desenvolvida em código aberto e pode ser obtida em www.ginga.

Sign up to vote on this title
UsefulNot useful