Introdução ao middleware de TV Digital              brasileiro                        Bruno Ghisi                    Funda...
ObjetivoFornecer uma visão geral sobre o middleware brasileiro de TVDigital, 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 D...
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  ...
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çã...
ABNT NBR 15606● Parte 3: Especificação de transmissão de dados● Parte 4: Ginga-J — Ambiente para a execuçã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 ...
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) ● ...
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 p...
Exemplos de aplicações ● Sincronismo de apresentação     ○ assíncrono     ○ sincronismo programa     ○ sincronismo tempo ●...
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...
Documento NCL      o quê? nós       onde? regiões      como? descritores    quando? elos e conectores          Fonte: Ofic...
Ginga-NCL   Conector dispara um evento    ● action    ● de um nó de mídia   Baseado na ocorrência de outro evento    ● con...
Players ● Players de mídia específicos apresentam o conteúdo para   o usuário     ○ Vídeo, Imagens     ○ Player Lua - inte...
Lua● Linguagem de script poderosa, leve e extensível● Implementado como uma biblioteca, escrita em C● Linguagem procedural...
NCLua● Módulos extras que devem ser implementados e  automaticamente carregados:   ○ módulo canvas: oferece uma API para d...
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 proprieda...
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 ...
Java TV● Acesso ao dados transmitido com o sinal de TV● Acesso aos dados do SI (Service Information)● Controle dos media p...
Java DTV● Informações de serviço, tuner, transporte (MPEG streams)● Media players    ○ Controle das mídias: áudio,vídeo e ...
LWUIT● LWUIT - LightWeight User Interface Toolkit    ○ Componentes gráficos de alto nível    ○ Temas personalizáveis para ...
Modelo de aplicação (XLet)  ● O gerenciador de aplicativos (AMS)      ○ Carrega, configura, instancia e roda aplicativos  ...
Extensões brasileiras ● Complementam e extendem a Java DTV ● API de informações de serviço dependente de protocolo    ○ Ac...
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  fo...
Ponte - Java -> NCL● A API da ponte NCL contém um conjunto de classes que  implementam a comunicação entre o ambiente impe...
Referências● http://www.forumsbtvd.org.br● http://www.softwarepublico.gov.br● https://javatv-developers.dev.java.net● List...
ObrigadoBruno Ghisiweblogs.java.net/blog/brunoghbcg@certi.org.brIan Ribasiri@certi.org.br                           Estamo...
Upcoming SlideShare
Loading in...5
×

Ginga - OpenTDC 2009

515

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
515
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ginga - OpenTDC 2009

  1. 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. 2. ObjetivoFornecer uma visão geral sobre o middleware brasileiro de TVDigital, o Ginga, e seus subsistemas Ginga-NCL e Ginga-J
  3. 3. Agenda● Contextualização● Middleware Ginga● Subsistema Ginga-NCL● Subsistema Ginga-J● Ponte
  4. 4. Agenda● Contextualização● Middleware Ginga● Subsistema Ginga-NCL● Subsistema Ginga-J● Ponte
  5. 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. 6. Cadeia de valor● Radiodifusor● OEM● Academia● Empresa de middleware● Fabricante de chipset● Gerador de conteúdo● ...
  7. 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. 8. O que é o Ginga?● Ginga® é o nome do Middleware Aberto do Sistema Brasileiro de TV Digital (SBTVD)
  9. 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. 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. 11. Agenda● Contextualização● Middleware Ginga● Subsistema Ginga-NCL● Subsistema Ginga-J● Ponte
  12. 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
  13. 13. Exemplo 1
  14. 14. Exemplo 2
  15. 15. Exemplo 3
  16. 16. Arquitetura Básica de Middleware
  17. 17. Arquitetura Ginga ● Aplicações podem ser ○ declarativas (Ginga-NCL) ○ procedurais (Ginga-J) ○ híbridas (Ponte) ● Ginga Common Core ○ Decodificadores ○ Acesso aos recursos
  18. 18. Arquitetura Middleware Ginga
  19. 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. 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
  21. 21. Processo de Apresentação
  22. 22. Agenda● Contextualização● Middleware Ginga● Subsistema Ginga-NCL● Subsistema Ginga-J● Ponte
  23. 23. Middleware Ginga - Ginga-NCL
  24. 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. 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. 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ídiaFonte: Oficina de introdução de aplicações para o Ginga. Telemídia, 2009.
  27. 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. 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. 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. 30. Agenda● Contextualização● Middleware Ginga● Subsistema Ginga-NCL● Subsistema Ginga-J● Ponte
  31. 31. Middleware Ginga - Ginga-J
  32. 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. 33. Stack Ginga-J ● Ginga-J define o ambiente de execução para aplicação procedurais: Java Xlets
  34. 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. 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. 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. 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. 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. 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. 40. Agenda● Contextualização● Middleware Ginga● Subsistema Ginga-NCL● Subsistema Ginga-J● Ponte
  41. 41. Middleware Ginga - Ponte
  42. 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. 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. 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
  45. 45. ObrigadoBruno Ghisiweblogs.java.net/blog/brunoghbcg@certi.org.brIan Ribasiri@certi.org.br Estamos contratando!
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×