370 likes | 470 Views
Ginga-NCL: the Declarative Environment of the Brazilian Digital TV System. Alex Pinheiro das Graças alex.pgracas@gmail.com Lucas Augusto Scotta Merlo scotta@inf.ufes.br. Agenda. Introdução Arquitetura Ginga Ginga-NCL Comandos de edição Ginga-NCL
E N D
Ginga-NCL: the DeclarativeEnvironment of the BrazilianDigital TV System Alex Pinheiro das Graças alex.pgracas@gmail.com Lucas Augusto Scotta Merlo scotta@inf.ufes.br
Agenda • Introdução • Arquitetura Ginga • Ginga-NCL • Comandos de edição Ginga-NCL • Processamento de dados pelo Ginga Common Core • Lua: Linguagem de script pelo NCL • Ponte entre Ginga-NCL e Ginga-J • Considerações Finais
Introdução • A arquitetura e funcionalidades do Ginga foram projetadas para sistemas de broadcast. Para o sistema normal de antena. • A mesma arquitetura pode ser usada para outras maneiras de transporte do sinal ( satélite, TV a cabo e IPTV).
Agenda • Introdução • Arquitetura Ginga • Ginga-NCL • Comandos de edição Ginga-NCL • Processamento de dados pelo Ginga Common Core • Lua: Linguagem de script pelo NCL • Ponte entre Ginga-NCL e Ginga-J • Considerações Finais
Arquitetura Ginga • The Ginga Architecture can be divided in three major modules: • Common Core, • Ginga-NCL e • Ginga-J: Ginga-J is a logical subsystem of the Ginga System that processes Xlet object content.
Arquitetura Ginga Common Core • Ginga-NCL e Ginga-J são construídos sobre os serviços oferencidos pelo Ginga Common-Core module.
Agenda • Introdução • Arquitetura Ginga • Ginga-NCL • Comandos de edição Ginga-NCL • Processamento de dados pelo Ginga Common Core • Lua: Linguagem de script pelo NCL • Ponte entre Ginga-NCL e Ginga-J • Considerações Finais
Ginga-NCL - Histórico • NCL (Linguagem de Contexto Aninhado). • MHEG-1: • usava a notação sintática ASN-1 para a definição de aplicações multimídia baseadas no relacionamento entre objetos. • Modelo de Contexto Aninhado (NCM) • problema de aninhamento de composições em documentos estruturados. • MHP • primeiro padrão de middleware aberto fundado puramente em Java.
Ginga-NCL – Histórico (cont...) • Linguagem declarativa x procedural • Queda do uso puramente em JAVA. • Pelo alto grau de abstração, a lig. declarativa foi sendo adotada para trabalhar principalmente com a interação e sincronização espaço-temporal de mídias. • Os 3 principais padrões: DVB-HTML, ACAP-X e BML adotaram a linguagem declarativa. • BML usa apenas declarativa.
Ginga-NCL - XHTML • Os três padrões supracitados, utilizam XHTML como linguagem declarativa. • XHTML define as relações entre o conteúdo nele contidos junto com sua estruturação. • Usa EcmaScript (ou outra linguagem imperativa) para tratar relacionamentos de sincronização espaço-temporal, dentre outros.
Ginga NCL – Comp. das linguagens declarativas • SMIL e NCL não misturam a definição do conteúdo de um documento com sua estruturação, oferecendo: • um controle não invasivo, tanto do leiaute do documento (apresentação espacial), quanto da sua apresentação temporal. • NCL linguagem de “cola” que mantém os objetos semanticamente juntos em uma apresentação multimídia.
Ginga-NCL - Player • NCL formatter (NCL player) responsável por apresentar os diversos tipos de mídia como: • MP3, MPEG2, HTML, dentre outras. • Eventos são gerados durante e apresentação. • Devem ser informados pelo player ao formatador NCL. • Pode gerar ações para ser aplicado a esse ou outros players. • Ginga-NCL define uma API adaptadora, para padronizar a interface entre o Ginga-NCL Formatador, e cada player.
Ginga-NCL – NCL • NCL é uma aplicação XML que se segue a abordagem de modularização. • Um módulo é uma coleção de elementos XML semanticamente relacionados, atributos e valores do atributo que representa uma unidade de funcionalidade. • Uma perfil de linguagem é uma combinação de módulos. No sistema brasileiro temos: • EDTVProfile (Enhanced Digital TV Profile) e, • BDTVProfile (Basic Digital TV Profile).
Estrutura de um documento NCL • Um documento NCL é um arquivo escrito em XML. • Um cabeçalho NCL (linhas 1 e 2). <ncl> • Uma seção do cabeçalho do programa (<head>, linhas 3 a 13), onde se definem as regiões <regionBase>,descritores <descriptorBase>, conectores <connectorBase>,e as regras <ruleBase>,utilizadas pelo programa. • O corpo do programa (<body>,linhas 14 a 17) onde se definem os contextos, nós de mídia, elos e outros elementos que definem o conteúdo e estrutura do programa. • Pelo menos uma porta que indica por onde o programa começa a ser exibido (<port> ptInicio, linha 15) e • a conclusão do documento </ncl> (linha 18)
Agenda • Introdução • Arquitetura Ginga • Ginga-NCL • Comandos de edição Ginga-NCL • Processamento de dados pelo Ginga Common Core • Lua: Linguagem de script pelo NCL • Ponte entre Ginga-NCL e Ginga-J • Considerações Finais
Ginga Common Core Data Processing • Ginga Common Core é composto pelos decodificadores de conteudos mais comuns e devem suportar o modelo de decodificação especificados pelo Sistema Brasileiro de TV.
Ginga Common Core Data Processing • DSM-CC descritores de fluxo de eventos tem uma estrutura composta basicamente por : • id (identificação): identifica unicamente o fluxo de eventos como um comando de edição • Time reference: indica o momento exato quando disparar o evento. • Private data field: Campo privado com suporte a parametros de eventos.
Ginga Common Core Data Processing • A transmissão de documentos NCL podem ser feitas por carrossel de dados ou via canal de retorno. • O Ginga Common Core é responsável por montar cada organização de sistema de arquivo que compõe o parametro baseado em XML no receptor
Agenda • Introdução • Arquitetura Ginga • Ginga-NCL • Comandos de edição Ginga-NCL • Processamento de dados pelo Ginga Common Core • Lua: Linguagem de script pelo NCL • Ponte entre Ginga-NCL e Ginga-J • Considerações Finais
LUA: THE NCL SCRIPT LANGUAGE • A linguagem de script adotado peloGinga-NCL para implementear objetos procedurais embutidos dentro de documentos NCL é a Lua. • <media> elementos do tipo application/x-ginga-NCLua”.
LUA: THE NCL SCRIPT LANGUAGE • Todas as funções podem receber tempo como parâmetro opcional, desta maneira é possível especificar o momento exato que o comando de edição deverá ser executado. • Se o tempo não é especificado o comando é executado imediatamente.
LUA: THE NCL SCRIPT LANGUAGE • É possível ter acesso a API provida pelo Ginga-J dependendo da configuração do middleware. Desta maneira é possível ter acesso a alguns recursos do set-top box e funcionalidades do Ginga.
Agenda • Introdução • Arquitetura Ginga • Ginga-NCL • Comandos de edição Ginga-NCL • Processamento de dados pelo Ginga Common Core • Lua: Linguagem de script pelo NCL • Ponte entre Ginga-NCL e Ginga-J • Considerações Finais
Comunicação Ginga NCL Ginga-J • Ginga NCL -> Ginga-J: Através do NCL definida no elemento <link> que refere-se a elementos <media> representando Xlet(“application/x-ginga-NCLet” type) códigos suportados pelo Ginga-J; Lua scripts (<media> elements of the application/xginga- NCLua” type) referenciando métodos do Ginga-J.
Comunicação Ginga NCL Ginga-J • Ginga-J -> Ginga NCL : Através de funções java que podem monitorar eventos e também podem atribuir valores para atributos e elementos NCL.
Agenda • Introdução • Arquitetura Ginga • Ginga-NCL • Comandos de edição Ginga-NCL • Processamento de dados pelo Ginga Common Core • Lua: Linguagem de script pelo NCL • Ponte entre Ginga-NCL e Ginga-J • Considerações Finais
Considerações Finais • Diferentemente de outros middlewares, o ambiente declarativo é baseado em uma linguagem estruturada, a linguagem NCL. • O ambiente declarativo e procedural foi concebido para ser integrado desde o ínicio da fase de design.
C. Final - Propriedades do NCL • Ela é uma linguagem structure-based; • Provê suporte para sincronização spaço temporal. Incluindo interação com o usuário.
Ginga-NCL: the DeclarativeEnvironment of the BrazilianDigital TV System Alex Pinheiro das Graças alex.pgracas@gmail.com Lucas Augusto Scotta Merlo scotta@inf.ufes.br