SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
Introdução ao middleware de TV Digital
              brasileiro
                        Bruno Ghisi
                    Fundação CERTI
    SCJA, SCJP, SCMAD, SCSNI e IBM Certified Specialist SQ
                        Ian Ribas
                      Fundação CERTI
                          SCEA
Objetivo
Fornecer uma visão geral sobre o middleware brasileiro de TV
Digital, o Ginga, e seus subsistemas Ginga-NCL e Ginga-J
Agenda
● Contextualização
● Middleware Ginga
● Subsistema Ginga-NCL
● Subsistema Ginga-J
● Ponte
Agenda
● Contextualização
● Middleware Ginga
● Subsistema Ginga-NCL
● Subsistema Ginga-J
● Ponte
Histórico
 ● Novembro 2003
    ○ Ato federal para criação de um sistema de TV Digital
    ○ SBTVD (Sistema Brasileiro de TV Digital Terrestre)
 ● Junho 2006
    ○ Definição do padrão ISDB-T
 ● Novembro 2007
    ○ Início da transmissão do sinal da TV Digital no Brasil
 ● Janeiro 2017
    ○ Fim da TV Analógica
Cadeia de valor
● Radiodifusor
● OEM
● Academia
● Empresa de middleware
● Fabricante de chipset
● Gerador de conteúdo
● ...
Fórum SBTVD e ABNT
● Fórum SBTVD
   ○ Define as especificações e propões soluções de acordo
     com a realidade brasileiro
   ○ Dissemina o padrão
● ABNT
   ○ Normatiza as especificações
   ○ Gerencia as normas
O que é o Ginga?




● Ginga® é o nome do Middleware Aberto do
  Sistema Brasileiro de TV Digital (SBTVD)
Norma Middleware Ginga
● ABNT NBR 15606 - Middleware Ginga
    ○ Middleware brasileiro de TV Digital
    ○ É uma especificação X implementação
● Parte 1: Codificação de dados
    ○ Estrutura geral do middleware, requisitos e integração
      com o hardware
● Parte 2: Ginga-NCL para receptores fixos e móveis -
  Linguagem de aplicação XML para codificação de
  aplicações
ABNT NBR 15606
● Parte 3: Especificação de transmissão de dados
● Parte 4: Ginga-J — Ambiente para a execução de
  aplicações procedurais
   ○ Em processo de homologação
● Parte 5: Ginga-NCL para receptores portáteis - Linguagem
  XML para codificação de aplicações
Agenda
● Contextualização
● Middleware Ginga
● Subsistema Ginga-NCL
● Subsistema Ginga-J
● Ponte
O que é um middleware de TVD?
● O que é um middleware?
   ○ Camada de software intermediário que oculta
     dependências de plataforma e permite que aplicações
     sejam desenvolvidas de maneira independente
● O que é um middleware de TV Digital?
   ○ Middleware que irá rodar no conversor (set top box) ou
     embarcado na TV
Exemplo 1
Exemplo 2
Exemplo 3
Arquitetura Básica de Middleware
Arquitetura Ginga
 ● Aplicações podem ser
    ○ declarativas (Ginga-NCL)
    ○ procedurais (Ginga-J)
    ○ híbridas (Ponte)
 ● Ginga Common Core
    ○ Decodificadores
    ○ Acesso aos recursos
Arquitetura Middleware Ginga
Receptores full-seg e one-seg
● Full-seg
   ○ ex: set top box e televisão
● One-seg
   ○ ex: celular
● Ginga-NCL é mandatório para todos receptores
● Ginga-J é mandatório para receptores full-seg
● Canal de retorno: Full-seg, opcional; one-seg,
  obrigatório
Exemplos de aplicações
 ● Sincronismo de apresentação
     ○ assíncrono
     ○ sincronismo programa
     ○ sincronismo tempo
 ● Exs
     ○ Relacionado com serviço de difusão
          ■ Participação em programas -> Vendas, questionários, etc.
               ■ Canal de retorno
          ■ Informação suplementar sobre programas -> Produção,
            programa, informação de produto, notícias da emissora etc.
     ○ Independente com serviço de difusão
          ■ Informação Independente -> Notícias, previsão do tempo,
            informação de tráfego, informações de mercado, desastres,
            eleições, etc
     ○ Serviço de função
          ■ Download -> Correção de erros, upgrade de versão
Processo de Apresentação
Agenda
● Contextualização
● Middleware Ginga
● Subsistema Ginga-NCL
● Subsistema Ginga-J
● Ponte
Middleware Ginga - Ginga-NCL
Ginga-NCL
● NCL (Nested Context Language) é a parte declarativa do
  Ginga
● Linguagem XML
● Código NCL define os objetos de mídia e a estrutura da
  apresentação
● Formatador NCL controla
    ○ fluxo da apresentação
    ○ ciclo de vida dos players de mídia
Documento NCL
      o quê? nós
       onde? regiões
      como? descritores
    quando? elos e conectores




          Fonte: Oficina de introdução de aplicações para o Ginga. Telemídia, 2009.
Ginga-NCL




   Conector dispara um evento
    ● action
    ● de um nó de mídia
   Baseado na ocorrência de outro evento
    ● condition
    ● de um nó de mídia


Fonte: Oficina de introdução de aplicações para o Ginga. Telemídia, 2009.
Players
 ● Players de mídia específicos apresentam o conteúdo para
   o usuário
     ○ Vídeo, Imagens
     ○ Player Lua - interpretador para scripts Lua
     ○ Player de Xlets Java
     ○ Player XHTML - decodifica conteúdo XHTML, incluindo
       CSS (stylesheets) e ECMAScript
Lua
● Linguagem de script poderosa, leve e extensível
● Implementado como uma biblioteca, escrita em C
● Linguagem procedural, com sintaxe semelhante ao C
    ○ Tipo string
    ○ Dinamicamente tipado
    ○ Sem ponteiros
    ○ Coletor de lixo
    ○ Tabela associativas dinâmicas como a única estrutura
      de dados
    ○ Funções são variáveis de primeira classe
    ○ Suporta alguns conceitos de OOP e FP
● Referência completa em: http://www.lua.org
NCLua
● Módulos extras que devem ser implementados e
  automaticamente carregados:
   ○ módulo canvas: oferece uma API para desenhar
     primitivas gráficas e manipular imagens
   ○ módulo event: permite aplicações NCLua se
     comunicarem com o middleware através de eventos
     (NCL e eventos de tecla). Oferece mecanismo para
     interatividade(tcp class)
   ○ módulo settings: exporta uma tabela com variáveis
     definidas pelo autor do documento NCL e variáveis
     reservadas de ambiente contidas no nodo application/x-
     ginga-settings
   ○ módulo persistent: exporta uma tabela com variáveis
     persistentes, que podem ser manipulados por objetos
     imperativos.
Agenda
● Contextualização
● Middleware Ginga
● Subsistema Ginga-NCL
● Subsistema Ginga-J
● Ponte
Middleware Ginga - Ginga-J
Histórico
 ● Ginga-J foi proposto pela UFPB (Universidade da Paraíba)
   em Dez/07 e ocorreram algumas questões de propriedade
   intelectual em função do MHP (APIs HAVI & DAVIC)
     ○ Forum SBTVD e a Sun Microsystems propuseram uma
       nova especificação
         ■ Java DTV
Stack Ginga-J
 ● Ginga-J define o ambiente de execução para aplicação
   procedurais: Java Xlets
CDC / FP / PBP
 ● Connected Device Configuration (CDC)
    ○ A configuração mais abrangente do Java ME
    ○ CDC fornece uma implementação completa da
      linguagem Java 1.4
    ○ Com a a adição dos profiles, pode se chegar na API
      Java SE
 ● Foundation Profile (FP)
    ○ Adiciona APIs ao CDC
        ■ io, security, network, utility
 ● Personal Basis Profile (PBP)
    ○ Ambiente de aplicação para aplicativos baseados em
      AWT que usam somente componentes leves
    ○ Muitos dos pacotes e classes do PBP são subcojuntos do
      seus equivalentes em Java SE
Java TV
● Acesso ao dados transmitido com o sinal de TV
● Acesso aos dados do SI (Service Information)
● Controle dos media players específicos da TV via JMF
● APIs definidas no Java TV fornecem um framework
● Outros middlewares utilizam como stack básica Java TV
Java DTV
● Informações de serviço, tuner, transporte (MPEG streams)
● Media players
    ○ Controle das mídias: áudio,vídeo e legendas (close caption)
    ○ API de acesso aos recursos de mídia da plataforma
● Propriedades do usuário
● Acesso aos arquivo da transmissão (broadcast)
● Persistência (limitada)
● Canal de retorno
    ○ Acesso aos dispositivos de rede
● Comunicação Inter-Xlet
    ○ Integra com o IXC do PBP
● LWUIT
● Segurança
LWUIT
● LWUIT - LightWeight User Interface Toolkit
    ○ Componentes gráficos de alto nível
    ○ Temas personalizáveis para os componentes gráficos
    ○ Tratador de eventos hierárquico através dos containers e
      componentes
    ○ Abstração dos componentes nativos
● Componentes podem ser animados
● Suporta temas (styles)
● Permite a personalização dos compontes que podem assumir
  qualquer forma ou personalização através de look and feels
● Resource bundles permitem o empacotamento dos recursos de
  maneira portável
    ○ Temas, fontes, imagens, animações e mensagens
Modelo de aplicação (XLet)




  ● O gerenciador de aplicativos (AMS)
      ○ Carrega, configura, instancia e roda aplicativos
      ○ Controla o ciclo de vida dos aplicativos
  ● Cada aplicativo roda separado e não pode compartilhar
    class loaders
Extensões brasileiras
 ● Complementam e extendem a Java DTV
 ● API de informações de serviço dependente de protocolo
    ○ Acessa informações dos serviços específicas do
      padrão brasileiro (baixo nível)
 ● API extensões para sintonia (zapping) de canais
 ● API da ponte NCL
 ● API adicional de acesso ao canal de retorno
    ○ Reserva e conexão
    ○ Envio de mensagens
 ● API de acesso baixo nível aos planos gráficos
 ● API de integração de dispositivos externos
Agenda
● Contextualização
● Middleware Ginga
● Subsistema Ginga-NCL
● Subsistema Ginga-J
● Ponte
Middleware Ginga - Ponte
Ponte - NCL -> Java
● A ponte funciona em ambos os sentidos
● Há um XLet Player, usado integrar o ambiente procedural no
  formatador NCL
    ○ Ginga-J (Xlets) são representados como elementos
      <media>
    ○ No documento NCL, é possível sincronizar Xlets com
      outros tipos de mídia
● Elementos <property> podem ser associados com métodos
  ou atributos no Xlet, a serem modificados por eventos NCL

● Scripts Lua tem acesso à API Java do Ginga-J
   ○ Tem um mapeamento dos tipos entre as liguagens
Ponte - Java -> NCL
● A API da ponte NCL contém um conjunto de classes que
  implementam a comunicação entre o ambiente imperativo e
  o declarativo do ambiente Ginga
● Controle da apresentação do documento NCL pelo
  programa Java
    ○ NCLPlayer é um player dos documentos NCL para ser
      incluido no Xlet Java
    ○ NCLEdit permite edição dinâmica do documento NCL
● Notificação dos eventos do formatador NCL para um Xlet
    ○ NCLEventListener precisa ser implementado para
      receber NCLEvents
Referências
● http://www.forumsbtvd.org.br
● http://www.softwarepublico.gov.br
● https://javatv-developers.dev.java.net
● Lista TV Digital SouJava em tvdigital-subscribe@soujava.
  dev.java.net
● http://clube.ncl.org.br
Obrigado
Bruno Ghisi
weblogs.java.net/blog/brunogh
bcg@certi.org.br

Ian Ribas
iri@certi.org.br



                           Estamos contratando!

Más contenido relacionado

Similar a Ginga - OpenTDC 2009

TV Digital interativa - Projeto TeouVi
TV Digital interativa - Projeto TeouViTV Digital interativa - Projeto TeouVi
TV Digital interativa - Projeto TeouViLucas Augusto Carvalho
 
Seminário sobre ferramenta GINGA para tv digital
Seminário sobre ferramenta GINGA para tv digitalSeminário sobre ferramenta GINGA para tv digital
Seminário sobre ferramenta GINGA para tv digitalVictor Hugo Micheli
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Gingalabmidiaufmg
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Gingalabmidiaufmg
 
Apresentação oswaldo
Apresentação oswaldoApresentação oswaldo
Apresentação oswaldolabmidiaufmg
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Gingalabmidiaufmg
 
Desenvolvimento para tv digital interativa [ dia 2]
Desenvolvimento para tv digital interativa [ dia 2]Desenvolvimento para tv digital interativa [ dia 2]
Desenvolvimento para tv digital interativa [ dia 2]Diemesleno Souza Carvalho
 
Qt tchelinux-2010
Qt tchelinux-2010Qt tchelinux-2010
Qt tchelinux-2010Wagner Reck
 
Farmácia na TV: Informações interativas de preço de medicamentos
Farmácia na TV: Informações interativas de preço de medicamentosFarmácia na TV: Informações interativas de preço de medicamentos
Farmácia na TV: Informações interativas de preço de medicamentosmercuriocfg
 
Histórico e Fundamentos das Redes de Nova Geração (NGN)
Histórico e Fundamentos das Redes de Nova Geração (NGN)Histórico e Fundamentos das Redes de Nova Geração (NGN)
Histórico e Fundamentos das Redes de Nova Geração (NGN)Frederico Madeira
 
Conhecendo o ambiente ginga(software livre) para aplicações
Conhecendo o ambiente ginga(software livre) para aplicaçõesConhecendo o ambiente ginga(software livre) para aplicações
Conhecendo o ambiente ginga(software livre) para aplicaçõesSuzyanne Oliveira
 
Ginga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the InteractiveGinga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the InteractiveDiegoCBarboza
 
Ginga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the InteractiveGinga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the Interactiveguestb3ade7
 

Similar a Ginga - OpenTDC 2009 (20)

TV Digital interativa - Projeto TeouVi
TV Digital interativa - Projeto TeouViTV Digital interativa - Projeto TeouVi
TV Digital interativa - Projeto TeouVi
 
Ginga
GingaGinga
Ginga
 
Seminário sobre ferramenta GINGA para tv digital
Seminário sobre ferramenta GINGA para tv digitalSeminário sobre ferramenta GINGA para tv digital
Seminário sobre ferramenta GINGA para tv digital
 
TV Digital com Linux
TV Digital com LinuxTV Digital com Linux
TV Digital com Linux
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Ginga
 
Ginga - i-JAE
Ginga - i-JAEGinga - i-JAE
Ginga - i-JAE
 
Eripi2018 p4 tutorial
Eripi2018 p4 tutorialEripi2018 p4 tutorial
Eripi2018 p4 tutorial
 
Guday netflix oss
Guday netflix ossGuday netflix oss
Guday netflix oss
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Ginga
 
Apresentação oswaldo
Apresentação oswaldoApresentação oswaldo
Apresentação oswaldo
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Ginga
 
Desenvolvimento para tv digital interativa [ dia 2]
Desenvolvimento para tv digital interativa [ dia 2]Desenvolvimento para tv digital interativa [ dia 2]
Desenvolvimento para tv digital interativa [ dia 2]
 
Qt tchelinux-2010
Qt tchelinux-2010Qt tchelinux-2010
Qt tchelinux-2010
 
Farmácia na TV: Informações interativas de preço de medicamentos
Farmácia na TV: Informações interativas de preço de medicamentosFarmácia na TV: Informações interativas de preço de medicamentos
Farmácia na TV: Informações interativas de preço de medicamentos
 
Apresentação SET Norte 2012
Apresentação SET Norte 2012Apresentação SET Norte 2012
Apresentação SET Norte 2012
 
Histórico e Fundamentos das Redes de Nova Geração (NGN)
Histórico e Fundamentos das Redes de Nova Geração (NGN)Histórico e Fundamentos das Redes de Nova Geração (NGN)
Histórico e Fundamentos das Redes de Nova Geração (NGN)
 
OpenIoT
OpenIoT OpenIoT
OpenIoT
 
Conhecendo o ambiente ginga(software livre) para aplicações
Conhecendo o ambiente ginga(software livre) para aplicaçõesConhecendo o ambiente ginga(software livre) para aplicações
Conhecendo o ambiente ginga(software livre) para aplicações
 
Ginga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the InteractiveGinga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the Interactive
 
Ginga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the InteractiveGinga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the Interactive
 

Más de Bruno Ghisi

De programador a cto na sua startup
De programador a cto na sua startupDe programador a cto na sua startup
De programador a cto na sua startupBruno Ghisi
 
De programador a cto na sua startup
De programador a cto na sua startupDe programador a cto na sua startup
De programador a cto na sua startupBruno Ghisi
 
Qcon SP 2015 - Escalando times e salvando casamentos com continuous delivery
Qcon SP 2015 - Escalando times e salvando casamentos com continuous deliveryQcon SP 2015 - Escalando times e salvando casamentos com continuous delivery
Qcon SP 2015 - Escalando times e salvando casamentos com continuous deliveryBruno Ghisi
 
Palestra MIDI - Como o marketing digital pode melhorar o seu funil de vendas
Palestra MIDI  - Como o marketing digital pode melhorar o seu funil de vendasPalestra MIDI  - Como o marketing digital pode melhorar o seu funil de vendas
Palestra MIDI - Como o marketing digital pode melhorar o seu funil de vendasBruno Ghisi
 
Agile Brazil 2014 - Case RD Station: escalando agile e lean na gestão compl...
Agile Brazil 2014  - Case RD Station: escalando agile e lean na gestão compl...Agile Brazil 2014  - Case RD Station: escalando agile e lean na gestão compl...
Agile Brazil 2014 - Case RD Station: escalando agile e lean na gestão compl...Bruno Ghisi
 
Empreendendo na Ilha do Silício - UDESC 2014
Empreendendo na Ilha do Silício - UDESC 2014Empreendendo na Ilha do Silício - UDESC 2014
Empreendendo na Ilha do Silício - UDESC 2014Bruno Ghisi
 
Empreendendo na Ilha do Silício
Empreendendo na Ilha do SilícioEmpreendendo na Ilha do Silício
Empreendendo na Ilha do SilícioBruno Ghisi
 
GURU-SC: Case RD Station
GURU-SC: Case RD StationGURU-SC: Case RD Station
GURU-SC: Case RD StationBruno Ghisi
 
Ruby on Ruby na Cloud com Heroku
Ruby on Ruby na Cloud com HerokuRuby on Ruby na Cloud com Heroku
Ruby on Ruby na Cloud com HerokuBruno Ghisi
 
Ruby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosRuby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosBruno Ghisi
 
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011Bruno Ghisi
 
SuggesTV - webmedia 2011
SuggesTV - webmedia 2011SuggesTV - webmedia 2011
SuggesTV - webmedia 2011Bruno Ghisi
 

Más de Bruno Ghisi (12)

De programador a cto na sua startup
De programador a cto na sua startupDe programador a cto na sua startup
De programador a cto na sua startup
 
De programador a cto na sua startup
De programador a cto na sua startupDe programador a cto na sua startup
De programador a cto na sua startup
 
Qcon SP 2015 - Escalando times e salvando casamentos com continuous delivery
Qcon SP 2015 - Escalando times e salvando casamentos com continuous deliveryQcon SP 2015 - Escalando times e salvando casamentos com continuous delivery
Qcon SP 2015 - Escalando times e salvando casamentos com continuous delivery
 
Palestra MIDI - Como o marketing digital pode melhorar o seu funil de vendas
Palestra MIDI  - Como o marketing digital pode melhorar o seu funil de vendasPalestra MIDI  - Como o marketing digital pode melhorar o seu funil de vendas
Palestra MIDI - Como o marketing digital pode melhorar o seu funil de vendas
 
Agile Brazil 2014 - Case RD Station: escalando agile e lean na gestão compl...
Agile Brazil 2014  - Case RD Station: escalando agile e lean na gestão compl...Agile Brazil 2014  - Case RD Station: escalando agile e lean na gestão compl...
Agile Brazil 2014 - Case RD Station: escalando agile e lean na gestão compl...
 
Empreendendo na Ilha do Silício - UDESC 2014
Empreendendo na Ilha do Silício - UDESC 2014Empreendendo na Ilha do Silício - UDESC 2014
Empreendendo na Ilha do Silício - UDESC 2014
 
Empreendendo na Ilha do Silício
Empreendendo na Ilha do SilícioEmpreendendo na Ilha do Silício
Empreendendo na Ilha do Silício
 
GURU-SC: Case RD Station
GURU-SC: Case RD StationGURU-SC: Case RD Station
GURU-SC: Case RD Station
 
Ruby on Ruby na Cloud com Heroku
Ruby on Ruby na Cloud com HerokuRuby on Ruby na Cloud com Heroku
Ruby on Ruby na Cloud com Heroku
 
Ruby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosRuby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviços
 
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
 
SuggesTV - webmedia 2011
SuggesTV - webmedia 2011SuggesTV - webmedia 2011
SuggesTV - webmedia 2011
 

Ginga - OpenTDC 2009

  • 1. Introdução ao middleware de TV Digital brasileiro Bruno Ghisi Fundação CERTI SCJA, SCJP, SCMAD, SCSNI e IBM Certified Specialist SQ Ian Ribas Fundação CERTI SCEA
  • 2. Objetivo Fornecer uma visão geral sobre o middleware brasileiro de TV Digital, o Ginga, e seus subsistemas Ginga-NCL e Ginga-J
  • 3. Agenda ● Contextualização ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ponte
  • 4. Agenda ● Contextualização ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ponte
  • 5. Histórico ● Novembro 2003 ○ Ato federal para criação de um sistema de TV Digital ○ SBTVD (Sistema Brasileiro de TV Digital Terrestre) ● Junho 2006 ○ Definição do padrão ISDB-T ● Novembro 2007 ○ Início da transmissão do sinal da TV Digital no Brasil ● Janeiro 2017 ○ Fim da TV Analógica
  • 6. Cadeia de valor ● Radiodifusor ● OEM ● Academia ● Empresa de middleware ● Fabricante de chipset ● Gerador de conteúdo ● ...
  • 7. Fórum SBTVD e ABNT ● Fórum SBTVD ○ Define as especificações e propões soluções de acordo com a realidade brasileiro ○ Dissemina o padrão ● ABNT ○ Normatiza as especificações ○ Gerencia as normas
  • 8. O que é o Ginga? ● Ginga® é o nome do Middleware Aberto do Sistema Brasileiro de TV Digital (SBTVD)
  • 9. Norma Middleware Ginga ● ABNT NBR 15606 - Middleware Ginga ○ Middleware brasileiro de TV Digital ○ É uma especificação X implementação ● Parte 1: Codificação de dados ○ Estrutura geral do middleware, requisitos e integração com o hardware ● Parte 2: Ginga-NCL para receptores fixos e móveis - Linguagem de aplicação XML para codificação de aplicações
  • 10. ABNT NBR 15606 ● Parte 3: Especificação de transmissão de dados ● Parte 4: Ginga-J — Ambiente para a execução de aplicações procedurais ○ Em processo de homologação ● Parte 5: Ginga-NCL para receptores portáteis - Linguagem XML para codificação de aplicações
  • 11. Agenda ● Contextualização ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ponte
  • 12. O que é um middleware de TVD? ● O que é um middleware? ○ Camada de software intermediário que oculta dependências de plataforma e permite que aplicações sejam desenvolvidas de maneira independente ● O que é um middleware de TV Digital? ○ Middleware que irá rodar no conversor (set top box) ou embarcado na TV
  • 17. Arquitetura Ginga ● Aplicações podem ser ○ declarativas (Ginga-NCL) ○ procedurais (Ginga-J) ○ híbridas (Ponte) ● Ginga Common Core ○ Decodificadores ○ Acesso aos recursos
  • 19. Receptores full-seg e one-seg ● Full-seg ○ ex: set top box e televisão ● One-seg ○ ex: celular ● Ginga-NCL é mandatório para todos receptores ● Ginga-J é mandatório para receptores full-seg ● Canal de retorno: Full-seg, opcional; one-seg, obrigatório
  • 20. Exemplos de aplicações ● Sincronismo de apresentação ○ assíncrono ○ sincronismo programa ○ sincronismo tempo ● Exs ○ Relacionado com serviço de difusão ■ Participação em programas -> Vendas, questionários, etc. ■ Canal de retorno ■ Informação suplementar sobre programas -> Produção, programa, informação de produto, notícias da emissora etc. ○ Independente com serviço de difusão ■ Informação Independente -> Notícias, previsão do tempo, informação de tráfego, informações de mercado, desastres, eleições, etc ○ Serviço de função ■ Download -> Correção de erros, upgrade de versão
  • 22. Agenda ● Contextualização ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ponte
  • 23. Middleware Ginga - Ginga-NCL
  • 24. Ginga-NCL ● NCL (Nested Context Language) é a parte declarativa do Ginga ● Linguagem XML ● Código NCL define os objetos de mídia e a estrutura da apresentação ● Formatador NCL controla ○ fluxo da apresentação ○ ciclo de vida dos players de mídia
  • 25. Documento NCL o quê? nós onde? regiões como? descritores quando? elos e conectores Fonte: Oficina de introdução de aplicações para o Ginga. Telemídia, 2009.
  • 26. Ginga-NCL Conector dispara um evento ● action ● de um nó de mídia Baseado na ocorrência de outro evento ● condition ● de um nó de mídia Fonte: Oficina de introdução de aplicações para o Ginga. Telemídia, 2009.
  • 27. Players ● Players de mídia específicos apresentam o conteúdo para o usuário ○ Vídeo, Imagens ○ Player Lua - interpretador para scripts Lua ○ Player de Xlets Java ○ Player XHTML - decodifica conteúdo XHTML, incluindo CSS (stylesheets) e ECMAScript
  • 28. Lua ● Linguagem de script poderosa, leve e extensível ● Implementado como uma biblioteca, escrita em C ● Linguagem procedural, com sintaxe semelhante ao C ○ Tipo string ○ Dinamicamente tipado ○ Sem ponteiros ○ Coletor de lixo ○ Tabela associativas dinâmicas como a única estrutura de dados ○ Funções são variáveis de primeira classe ○ Suporta alguns conceitos de OOP e FP ● Referência completa em: http://www.lua.org
  • 29. NCLua ● Módulos extras que devem ser implementados e automaticamente carregados: ○ módulo canvas: oferece uma API para desenhar primitivas gráficas e manipular imagens ○ módulo event: permite aplicações NCLua se comunicarem com o middleware através de eventos (NCL e eventos de tecla). Oferece mecanismo para interatividade(tcp class) ○ módulo settings: exporta uma tabela com variáveis definidas pelo autor do documento NCL e variáveis reservadas de ambiente contidas no nodo application/x- ginga-settings ○ módulo persistent: exporta uma tabela com variáveis persistentes, que podem ser manipulados por objetos imperativos.
  • 30. Agenda ● Contextualização ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ponte
  • 32. Histórico ● Ginga-J foi proposto pela UFPB (Universidade da Paraíba) em Dez/07 e ocorreram algumas questões de propriedade intelectual em função do MHP (APIs HAVI & DAVIC) ○ Forum SBTVD e a Sun Microsystems propuseram uma nova especificação ■ Java DTV
  • 33. Stack Ginga-J ● Ginga-J define o ambiente de execução para aplicação procedurais: Java Xlets
  • 34. CDC / FP / PBP ● Connected Device Configuration (CDC) ○ A configuração mais abrangente do Java ME ○ CDC fornece uma implementação completa da linguagem Java 1.4 ○ Com a a adição dos profiles, pode se chegar na API Java SE ● Foundation Profile (FP) ○ Adiciona APIs ao CDC ■ io, security, network, utility ● Personal Basis Profile (PBP) ○ Ambiente de aplicação para aplicativos baseados em AWT que usam somente componentes leves ○ Muitos dos pacotes e classes do PBP são subcojuntos do seus equivalentes em Java SE
  • 35. Java TV ● Acesso ao dados transmitido com o sinal de TV ● Acesso aos dados do SI (Service Information) ● Controle dos media players específicos da TV via JMF ● APIs definidas no Java TV fornecem um framework ● Outros middlewares utilizam como stack básica Java TV
  • 36. Java DTV ● Informações de serviço, tuner, transporte (MPEG streams) ● Media players ○ Controle das mídias: áudio,vídeo e legendas (close caption) ○ API de acesso aos recursos de mídia da plataforma ● Propriedades do usuário ● Acesso aos arquivo da transmissão (broadcast) ● Persistência (limitada) ● Canal de retorno ○ Acesso aos dispositivos de rede ● Comunicação Inter-Xlet ○ Integra com o IXC do PBP ● LWUIT ● Segurança
  • 37. LWUIT ● LWUIT - LightWeight User Interface Toolkit ○ Componentes gráficos de alto nível ○ Temas personalizáveis para os componentes gráficos ○ Tratador de eventos hierárquico através dos containers e componentes ○ Abstração dos componentes nativos ● Componentes podem ser animados ● Suporta temas (styles) ● Permite a personalização dos compontes que podem assumir qualquer forma ou personalização através de look and feels ● Resource bundles permitem o empacotamento dos recursos de maneira portável ○ Temas, fontes, imagens, animações e mensagens
  • 38. Modelo de aplicação (XLet) ● O gerenciador de aplicativos (AMS) ○ Carrega, configura, instancia e roda aplicativos ○ Controla o ciclo de vida dos aplicativos ● Cada aplicativo roda separado e não pode compartilhar class loaders
  • 39. Extensões brasileiras ● Complementam e extendem a Java DTV ● API de informações de serviço dependente de protocolo ○ Acessa informações dos serviços específicas do padrão brasileiro (baixo nível) ● API extensões para sintonia (zapping) de canais ● API da ponte NCL ● API adicional de acesso ao canal de retorno ○ Reserva e conexão ○ Envio de mensagens ● API de acesso baixo nível aos planos gráficos ● API de integração de dispositivos externos
  • 40. Agenda ● Contextualização ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ponte
  • 42. Ponte - NCL -> Java ● A ponte funciona em ambos os sentidos ● Há um XLet Player, usado integrar o ambiente procedural no formatador NCL ○ Ginga-J (Xlets) são representados como elementos <media> ○ No documento NCL, é possível sincronizar Xlets com outros tipos de mídia ● Elementos <property> podem ser associados com métodos ou atributos no Xlet, a serem modificados por eventos NCL ● Scripts Lua tem acesso à API Java do Ginga-J ○ Tem um mapeamento dos tipos entre as liguagens
  • 43. Ponte - Java -> NCL ● A API da ponte NCL contém um conjunto de classes que implementam a comunicação entre o ambiente imperativo e o declarativo do ambiente Ginga ● Controle da apresentação do documento NCL pelo programa Java ○ NCLPlayer é um player dos documentos NCL para ser incluido no Xlet Java ○ NCLEdit permite edição dinâmica do documento NCL ● Notificação dos eventos do formatador NCL para um Xlet ○ NCLEventListener precisa ser implementado para receber NCLEvents
  • 44. Referências ● http://www.forumsbtvd.org.br ● http://www.softwarepublico.gov.br ● https://javatv-developers.dev.java.net ● Lista TV Digital SouJava em tvdigital-subscribe@soujava. dev.java.net ● http://clube.ncl.org.br