Ginga - Solisc 2010

647 views
522 views

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
647
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • assíncrono sincronismo programa sincronismo tempo
  • Resistência a interferência - verificar no pdf da palestra NCL do JAI 2008 para ver se é mesmo e porquê
  • Canal de retorno também chamado de canal de interatividade
  • Aplicações podem ser  declarativas (Ginga-NCL) procedurais (Ginga-J) híbridas (Ponte) Ginga Common Core Decodificadores Acesso aos recursos
  • Aplicações podem ser  declarativas (Ginga-NCL) procedurais (Ginga-J) híbridas (Ponte) Ginga Common Core Decodificadores Acesso aos recursos
  • persistent é análogo a um cookie - limitado a 48 kb
  • 48K limitadas 6MB mas esperam 3MB
  • Ginga - Solisc 2010

    1. 1. Introdução ao middleware de TV Digital brasileiro Bruno Ghisi Alexandre Lemos
    2. 2. Objetivo Introduzir o conceito do cenário brasileiro de TV Digital, middleware Ginga, aplicações interativas e  ferramentas open source relacionadas.
    3. 3. Agenda <ul><ul><li>Contextualização </li></ul></ul><ul><ul><li>Demo </li></ul></ul><ul><ul><li>Padrão Brasileiro TVD </li></ul></ul><ul><ul><li>Middleware Ginga </li></ul></ul><ul><ul><li>Subsistema Ginga-NCL </li></ul></ul><ul><ul><li>Subsistema Ginga-J </li></ul></ul><ul><ul><li>Ferramentas </li></ul></ul><ul><ul><li>Comunidades </li></ul></ul><ul><ul><li>Status atual </li></ul></ul>
    4. 4. Agenda <ul><ul><li>Contextualização </li></ul></ul><ul><ul><li>Demo </li></ul></ul><ul><ul><li>Padrão Brasileiro TVD </li></ul></ul><ul><ul><li>Middleware Ginga </li></ul></ul><ul><ul><li>Subsistema Ginga-NCL </li></ul></ul><ul><ul><li>Subsistema Ginga-J </li></ul></ul><ul><ul><li>Ferramentas </li></ul></ul><ul><ul><li>Comunidades </li></ul></ul><ul><ul><li>Status atual </li></ul></ul>
    5. 5. Histórico <ul><ul><li>Novembro 2003 </li></ul></ul><ul><ul><ul><li>Ato federal para criação de um sistema de TV Digital  </li></ul></ul></ul><ul><ul><ul><li>SBTVD (Sistema Brasileiro de TV Digital Terrestre) </li></ul></ul></ul><ul><ul><li>Junho 2006 </li></ul></ul><ul><ul><ul><li>Definição do padrão ISDB-Tb </li></ul></ul></ul>
    6. 6. Cadeia de valor <ul><ul><li>Radiodifusor </li></ul></ul><ul><ul><li>Fabricante de produto (OEM) </li></ul></ul><ul><ul><li>Academia </li></ul></ul><ul><ul><li>Fornecedor de middleware </li></ul></ul><ul><ul><li>Fornecedor de JVM </li></ul></ul><ul><ul><li>Fabricante de chipset </li></ul></ul><ul><ul><li>Gerador de conteúdo </li></ul></ul><ul><ul><li>Fornecedor de ferramentas </li></ul></ul><ul><ul><li>... </li></ul></ul>
    7. 7. Fórum SBTVD e ABNT <ul><ul><li>Fórum SBTVD </li></ul></ul><ul><ul><ul><li>Define as especificações e propões soluções de acordo com a realidade brasileira </li></ul></ul></ul><ul><ul><ul><li>Dissemina o padrão  </li></ul></ul></ul><ul><ul><li>ABNT </li></ul></ul><ul><ul><ul><li>Normatiza as especificações </li></ul></ul></ul><ul><ul><ul><li>Gerencia as normas </li></ul></ul></ul>
    8. 8. Agenda <ul><ul><li>Contextualização </li></ul></ul><ul><ul><li>Demo </li></ul></ul><ul><ul><li>Padrão Brasileiro TVD </li></ul></ul><ul><ul><li>Middleware Ginga </li></ul></ul><ul><ul><li>Subsistema Ginga-NCL </li></ul></ul><ul><ul><li>Subsistema Ginga-J </li></ul></ul><ul><ul><li>Ferramentas </li></ul></ul><ul><ul><li>Comunidades </li></ul></ul><ul><ul><li>Status atual </li></ul></ul>
    9. 9. T-Commerce
    10. 10. Agenda <ul><ul><li>Contextualização </li></ul></ul><ul><ul><li>Demo </li></ul></ul><ul><ul><li>Padrão Brasileiro TVD </li></ul></ul><ul><ul><li>Middleware Ginga </li></ul></ul><ul><ul><li>Subsistema Ginga-NCL </li></ul></ul><ul><ul><li>Subsistema Ginga-J </li></ul></ul><ul><ul><li>Ferramentas </li></ul></ul><ul><ul><li>Comunidades </li></ul></ul><ul><ul><li>Status atual </li></ul></ul>
    11. 11. Padrão Brasileiro TVD <ul><ul><li>ISDB-Tb  -  padrão japonês </li></ul></ul><ul><ul><ul><li>Vídeo H.264 </li></ul></ul></ul><ul><ul><ul><li>Áudio MPEG-4 </li></ul></ul></ul><ul><ul><ul><li>Ginga </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><li>Mobilidade </li></ul></ul><ul><ul><ul><li>One-seg (1Seg) </li></ul></ul></ul>
    12. 12. Padrão Brasileiro TVD <ul><ul><li>Países que escolheram: </li></ul></ul><ul><ul><ul><li>Brasil </li></ul></ul></ul><ul><ul><ul><li>Peru </li></ul></ul></ul><ul><ul><ul><li>Argentina </li></ul></ul></ul><ul><ul><ul><li>Chile </li></ul></ul></ul><ul><ul><ul><li>Venezuela </li></ul></ul></ul><ul><ul><ul><li>Equador </li></ul></ul></ul><ul><ul><ul><li>Costa Rica </li></ul></ul></ul><ul><ul><ul><li>Paraguai </li></ul></ul></ul><ul><ul><ul><li>Bolívia </li></ul></ul></ul><ul><ul><ul><li>Nicarágua </li></ul></ul></ul>
    13. 13. Receptores full-seg e one-seg <ul><ul><li>Full-seg  </li></ul></ul><ul><ul><ul><li>1920x1080i, 1280x720p, 720x480p </li></ul></ul></ul><ul><ul><ul><li>ex: set top box e televisão </li></ul></ul></ul><ul><ul><li>One-seg  </li></ul></ul><ul><ul><ul><li>320x240 </li></ul></ul></ul><ul><ul><ul><li>ex: celular </li></ul></ul></ul><ul><ul><li>Ginga-NCL é mandatório para todos receptores </li></ul></ul><ul><ul><li>Ginga-J é mandatório para receptores full-seg </li></ul></ul><ul><ul><li>Canal de retorno: Full-seg, opcional; one-seg, obrigatório </li></ul></ul>
    14. 14. Agenda <ul><ul><li>Contextualização </li></ul></ul><ul><ul><li>Demo </li></ul></ul><ul><ul><li>Padrão Brasileiro TVD </li></ul></ul><ul><ul><li>Middleware Ginga </li></ul></ul><ul><ul><li>Subsistema Ginga-NCL </li></ul></ul><ul><ul><li>Subsistema Ginga-J </li></ul></ul><ul><ul><li>Ferramentas </li></ul></ul><ul><ul><li>Comunidades </li></ul></ul><ul><ul><li>Status atual </li></ul></ul>
    15. 15. Middleware de TVD <ul><ul><li>O que é um middleware? </li></ul></ul><ul><ul><ul><li>Camada de software intermediário que oculta dependências de plataforma e permite que aplicações sejam desenvolvidas de maneira independente  </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><li>O que é um middleware de TV Digital? </li></ul></ul><ul><ul><ul><li>Middleware que irá rodar no conversor (set top box) ou embarcado na TV </li></ul></ul></ul>
    16. 16. Carrossel Objetos
    17. 17. O que é o Ginga? <ul><ul><li>Ginga é o nome do Middleware Aberto do Sistema Brasileiro de TV Digital (SBTVD) </li></ul></ul>
    18. 18. Norma Middleware Ginga <ul><ul><li>ABNT NBR 15606 - Middleware Ginga </li></ul></ul><ul><ul><ul><li>Middleware brasileiro de TV Digital </li></ul></ul></ul><ul><ul><ul><li>É uma especificação X implementação </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><li>ABNT NBR 15606 é dividida em 6 partes </li></ul></ul>NBR 15601 Transmissão NBR 15602 Codificação NBR 15603 Multiplexação NBR 15604 Receptores NBR 15605 Segurança NBR 15606 Middleware NBR 15607 Canal de Interatividade NBR 15608 Guia de operação
    19. 19. Arquitetura Middleware TVD
    20. 20. Arquitetura Middleware Ginga
    21. 21. Agenda <ul><ul><li>Contextualização </li></ul></ul><ul><ul><li>Demo </li></ul></ul><ul><ul><li>Padrão Brasileiro TVD </li></ul></ul><ul><ul><li>Middleware Ginga </li></ul></ul><ul><ul><li>Subsistema Ginga-NCL </li></ul></ul><ul><ul><li>Subsistema Ginga-J </li></ul></ul><ul><ul><li>Ferramentas </li></ul></ul><ul><ul><li>Comunidades </li></ul></ul><ul><ul><li>Status atual </li></ul></ul>
    22. 22. Middleware Ginga - Ginga-NCL
    23. 23. NCL <ul><ul><li>PUC-Rio  </li></ul></ul><ul><li>  </li></ul><ul><ul><li>NCL (Nested Context Language) é a parte declarativa do Ginga  </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Linguagem formato XML </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Código NCL define os objetos de mídia e a estrutura da apresentação </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Formatador NCL controla  </li></ul></ul><ul><ul><ul><li>fluxo da apresentação </li></ul></ul></ul><ul><ul><ul><li>ciclo de vida dos players de mídia </li></ul></ul></ul>
    24. 24. NCL
    25. 25. Players <ul><ul><li>Players de mídia específicos apresentam o conteúdo para o usuário </li></ul></ul><ul><ul><ul><li>Vídeo, Imagens </li></ul></ul></ul><ul><ul><ul><li>Player Lua - interpretador para scripts Lua </li></ul></ul></ul><ul><ul><ul><li>Player de Xlets Java </li></ul></ul></ul><ul><ul><ul><li>Player XHTML - decodifica conteúdo XHTML, incluindo CSS (stylesheets) e ECMAScript </li></ul></ul></ul>
    26. 26. Lua <ul><ul><li>PUC-Rio 1993  </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Linguagem de script poderosa, leve e extensível </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Implementado como uma biblioteca, escrita em C </li></ul></ul><ul><ul><li>Linguagem procedural, com sintaxe semelhante ao C </li></ul></ul><ul><ul><ul><li>Dinamicamente tipado </li></ul></ul></ul><ul><ul><ul><li>Sem ponteiros </li></ul></ul></ul><ul><ul><ul><li>Coletor de lixo </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><li>http://www.lua.org </li></ul></ul>
    27. 27. Lua
    28. 28. NCLua <ul><ul><li>Extensões ao Lua </li></ul></ul><ul><ul><ul><li>módulo canvas </li></ul></ul></ul><ul><ul><ul><ul><li>desenhar diretamente em uma área da TV </li></ul></ul></ul></ul><ul><ul><ul><li>módulo event </li></ul></ul></ul><ul><ul><ul><ul><li>comunicação com players no NCL </li></ul></ul></ul></ul><ul><ul><ul><ul><li>input </li></ul></ul></ul></ul><ul><ul><ul><ul><li>canal de retorno </li></ul></ul></ul></ul><ul><ul><ul><ul><li>informações do programa de TV </li></ul></ul></ul></ul><ul><ul><ul><li>módulo settings </li></ul></ul></ul><ul><ul><ul><ul><li>configurações do NCL e receptor </li></ul></ul></ul></ul><ul><ul><ul><li>módulo persistent </li></ul></ul></ul><ul><ul><ul><ul><li>permite armazenar pequena quantidade de dados no receptor </li></ul></ul></ul></ul>
    29. 29. Agenda <ul><ul><li>Contextualização </li></ul></ul><ul><ul><li>Demo </li></ul></ul><ul><ul><li>Padrão Brasileiro TVD </li></ul></ul><ul><ul><li>Middleware Ginga </li></ul></ul><ul><ul><li>Subsistema Ginga-NCL </li></ul></ul><ul><ul><li>Subsistema Ginga-J </li></ul></ul><ul><ul><li>Ferramentas </li></ul></ul><ul><ul><li>Comunidades </li></ul></ul><ul><ul><li>Status atual </li></ul></ul>
    30. 30. Middleware Ginga - Ginga-J
    31. 31. Histórico <ul><ul><li>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) </li></ul></ul><ul><ul><ul><li>Forum SBTVD e a Sun Microsystems propuseram uma nova especificação </li></ul></ul></ul><ul><ul><ul><ul><li>Java DTV </li></ul></ul></ul></ul>
    32. 32. Stack Ginga-J <ul><ul><li>Ginga-J define o ambiente de execução para aplicação procedurais: Java Xlets </li></ul></ul>
    33. 34. CDC / FP / PBP <ul><ul><li>Connected Device Configuration (CDC)  </li></ul></ul><ul><ul><ul><li>A configuração mais abrangente do Java ME </li></ul></ul></ul><ul><ul><ul><li>CDC é compatível com sintaxe Java 1.4 </li></ul></ul></ul><ul><ul><ul><li>Com a a adição dos profiles, pode se chegar na API Java SE </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><li>Foundation Profile (FP) </li></ul></ul><ul><ul><ul><ul><li>APIs io, security, network, utility  </li></ul></ul></ul></ul><ul><li>  </li></ul><ul><ul><li>Personal Basis Profile (PBP)  </li></ul></ul><ul><ul><ul><li>AWT </li></ul></ul></ul>
    34. 36. Java TV <ul><ul><li>Acesso aos dados do SI (Service Information) </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Controle dos media players específicos da TV via JMF  </li></ul></ul><ul><li>  </li></ul><ul><ul><li>APIs definidas no Java TV fornecem um framework  </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Outros middlewares TVD utilizam como stack básica Java TV  </li></ul></ul>
    35. 38. Java DTV <ul><ul><li>Informações de serviço, tuner, transporte (MPEG streams) </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Propriedades do usuário </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Acesso aos arquivo da transmissão (broadcast) </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Persistência (limitada) </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Canal de retorno </li></ul></ul><ul><ul><ul><li>Acesso aos dispositivos de rede </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><li>Comunicação Inter-Xlet </li></ul></ul><ul><li>  </li></ul><ul><ul><li>LWUIT </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Segurança </li></ul></ul>
    36. 39. LWUIT <ul><ul><li>LWUIT - LightWeight User Interface Toolkit </li></ul></ul><ul><ul><ul><li>Componentes gráficos de alto nível </li></ul></ul></ul><ul><ul><ul><li>Tratador de eventos hierárquico através dos containers e componentes </li></ul></ul></ul><ul><ul><ul><li>Abstração dos componentes nativos (Graphics, Font, etc) </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><li>Suporte a style, theme e look and feel </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Resource bundles permitem o empacotamento dos recursos de maneira portável </li></ul></ul><ul><ul><ul><li>Temas, fontes, imagens, animações e mensagens </li></ul></ul></ul>
    37. 41. Extensões brasileiras (SBTVD) <ul><ul><li>Complementam e extendem a Java DTV </li></ul></ul><ul><ul><li>  </li></ul></ul><ul><ul><li>  API de informações de serviço dependente de protocolo </li></ul></ul><ul><ul><ul><li>Acessa informações dos serviços específicas do padrão brasileiro (baixo nível) </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><li>API da ponte NCL </li></ul></ul>
    38. 42. Middleware Ginga - Ponte
    39. 43. Agenda <ul><ul><li>Contextualização </li></ul></ul><ul><ul><li>Demo </li></ul></ul><ul><ul><li>Padrão Brasileiro TVD </li></ul></ul><ul><ul><li>Middleware Ginga </li></ul></ul><ul><ul><li>Subsistema Ginga-NCL </li></ul></ul><ul><ul><li>Subsistema Ginga-J </li></ul></ul><ul><ul><li>Ferramentas </li></ul></ul><ul><ul><li>Comunidades </li></ul></ul><ul><ul><li>Status atual </li></ul></ul>
    40. 44. Ferramentas   Eclipse Eclipse Public License www.eclipse.org   LuaEclipse Licença MIT http://luaeclipse.luaforge.net/ http://github.com/KINFOO/LuaEclipse   NCL Eclipse Duplo Licenciamento (semelhante ao MySql) http://laws.deinf.ufma.br/~ncleclipse/faq.html http://laws.deinf.ufma.br/~ncleclipse/index.html   STB Virtual - implementação referência Ginga-NCL Licença indeterminada http://www.gingancl.org.br/ferramentas.html Ref http://www.bravaitv.com.br/fisl
    41. 45. Ferramentas   Emulador Ginga-J - Open Ginga - implementação referência Ginga-J GPLv2 http://ginga.lavid.ufpb.br/projects/gingaj-emulator/wiki   Ant Apache Software License http://ant.apache.org   Lunity Creative Commons http://phrogz.net/lua/lunity.lua   LuaCov Licença MIT http://luacov.luaforge.net Ref http://www.bravaitv.com.br/fisl
    42. 46. Agenda <ul><ul><li>Contextualização </li></ul></ul><ul><ul><li>Demo </li></ul></ul><ul><ul><li>Padrão Brasileiro TVD </li></ul></ul><ul><ul><li>Middleware Ginga </li></ul></ul><ul><ul><li>Subsistema Ginga-NCL </li></ul></ul><ul><ul><li>Subsistema Ginga-J </li></ul></ul><ul><ul><li>Ferramentas </li></ul></ul><ul><ul><li>Comunidades </li></ul></ul><ul><ul><li>Status atual </li></ul></ul>
    43. 47. Comunidades e Listas <ul><ul><li>http://www.forumsbtvd.org.br </li></ul></ul><ul><ul><li>http://www.softwarepublico.gov.br </li></ul></ul><ul><ul><li>http://clube.ncl.org.br </li></ul></ul><ul><ul><li>https://javatv-developers.dev.java.net   </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Listas </li></ul></ul><ul><ul><ul><li>Lista TV Digital SouJava em tvdigital-subscribe@soujava.dev.java.net  </li></ul></ul></ul><ul><ul><ul><li>[email_address] </li></ul></ul></ul><ul><ul><ul><li>tvinterativa@googlegroups.com </li></ul></ul></ul>
    44. 48. Agenda <ul><ul><li>Contextualização </li></ul></ul><ul><ul><li>Demo </li></ul></ul><ul><ul><li>Padrão Brasileiro TVD </li></ul></ul><ul><ul><li>Middleware Ginga </li></ul></ul><ul><ul><li>Subsistema Ginga-NCL </li></ul></ul><ul><ul><li>Subsistema Ginga-J </li></ul></ul><ul><ul><li>Ferramentas </li></ul></ul><ul><ul><li>Comunidades </li></ul></ul><ul><ul><li>Status atual </li></ul></ul>
    45. 49. Receptores
    46. 50. Copa - Band
    47. 51. Copa - Globo
    48. 52. Tititi - Globo
    49. 53. Passione - Globo
    50. 54. Caminho das Índias - Globo
    51. 55. A Fazenda - Record
    52. 56. Portal SBT
    53. 57. Obrigado Bruno Ghisi weblogs.java.net/blog/brunogh  [email_address] Alexandre Lemos [email_address] Estamos contratando: TVD, Web, Mobile, Java, C/C++, Unix, embedded, XP http://www.certi.org.br/ccd

    ×