You are on page 1of 25

Desenvolvimento de 

Aplicações Java para TV 
Digital
Douglas Braga de Alencar, Pesquisador em TV Digital do 
Centro de Pesquisa e Desenvolvimento em Tecnologia 
Eletrônica e da Informação (CETELI) da Universidade Federal 
©2007 CETELI
do Amazonas (UFAM)
dbalencar@ufam.edu.br
Middleware

É  a  camada  de  software  intermediário  que  permite  o 


desenvolvimento de aplicações interativas para a TV Digital de 
forma  independente  da  plataforma  de  hardware  dos  fabricantes 
de terminais de acesso (set­top boxes).

Os  padrões  de  Middleware  adotam  versões  modificadas, 


reduzidas  ou  estendidas  de  três  blocos  fundamentais.  São  eles: 
DAVIC, HAVi e JavaTV.

©2007 CETELI

2
DAVIC
(Digital Audio­Visual Council)

É  uma  associação  que  representa  diversas  indústrias  do 


segmento  Audiovisual.  Seu  objetivo  é  especificar  um  padrão 
comum  para  difusão.  Neste  padrão  são  definidas  interfaces  em 
diversos pontos de referência, onde cada interface é definida por 
um  conjunto  de  fluxo  de  informações  e  protocolos.  A 
especificação  também  define  formatos  para  fonte,  texto, 
hipertexto,  áudio  e  vídeo.  Controle  de  acesso,  filtragem  de 
informações,  notificação  de  modificação  de  recursos, 
informações de serviço, estão dentro do escopo de atividades do 
DAVIC.

©2007 CETELI

3
HAVi
(Home Audio Video Interoperability)

É  uma  iniciativa  das  oito  maiores  companhias  de  produtos 


eletrônicos  que  especifica  um  padrão  para  interconexão  e 
interoperação  de  dispositivos  de  áudio  e  vídeo.  Esta 
especificação  possui  mecanismos  para  permitir  que  as 
funcionalidades de um dispositivo sejam remotamente usadas e 
controladas,  a  partir  de  outros  dispositivos.  Esta  especificação 
provê  uma  independência  da  plataforma  e  da  linguagem  de 
programação para os dispositivos envolvidos, fazendo assim que 
diferentes equipamentos possam interagir.

©2007 CETELI

4
JavaTV
É uma extensão da plataforma Java que permite a  produção de 
conteúdo para TV Interativa. Sua função é permitir a criação de 
aplicações  interativas  portáteis  para  TV,  independentes  da 
tecnologia  de  transmissão.  Java  TV  Consiste  basicamente  de 
uma  máquina  virtual  Java  e  bibliotecas  de  códigos  reusáveis  e 
específico para TV Interativa. A máquina virtual é residente no 
receptor e pode ser usadas por outros blocos funcionais (como o 
DAVIC, HAVi e bibliotecas do Middleware). Java TV permite 
níveis  avançados  de  interatividade,  com  ou  sem  canal  de 
retorno,  e  associado  ou  não  com  fluxo  de  broadcast  (vídeo  e 
áudio).

©2007 CETELI

5
Middlewares Proprietários
• OpenTV (OpenTV)
• MediaHighway (NDS)
• TV Pack (Microsoft)

©2007 CETELI

6
NDS

DASE
Liberate ATSC
MHP

Horizontal
Satellite DVB
Vertical
Market

Market
MHEG
Terrestrial OpenTV UK GEM
Cable OCAP
CableLabs
BML
MSTV Japan

Media
Highway

O mercado de TV Digital está atualmente migrando de soluções 
©2007 CETELI
proprietárias em mercados verticais para padrões abertos em 
7 mercados horizontais.
HAVi

MHEG­5 MHEG­6 DAVIC MHP

Java JavaTV

©2007 CETELI MHP e sua relação com padrões abertos anteriores de ITV
8
MHP 1.1 MHP 1.1.1

OCAP 1.0 OCAP 2.0

MHP 1.0.2 GEM MHP 1.0.3

ARIB B.23

JavaTV DASE ACAP

©2007 CETELI As relações entre MHP, GEM e outros padrões
9
Padrões Abertos de Middleware
Ainda não temos um padrão de Middleware universal. Três 
grupos tentam formalizar um padrão aberto:

• Multimedia Home Platform – MHP (Digital Video 
Broadcasting – DVB/Europa)
• OpenCable Application Platform – OCAP e Advanced 
Common Aplication Platform – ACAP (Advanced 
Television Systems Committee – ATSC/Estados Unidos)
• Association of Radio Industries and Business – ARIB 
(Integrated Services Digital Broadcasting – ISDB/Japão)

©2007 CETELI

10
Globally Executable MHP
GEM

GEM é o padrão especificado pelo MHP Umbrella Group 
–  MUG,  um  grupo  formado  por  representantes  de  3  áreas 
©2007 CETELI
de padronização.
11
Controle de Funções 
Específicas do STB
• Informações de Serviço;
• Dados do fluxo MPEG;
• Decodificação e Visualização de Mídia transmitida por 
Broadcast;
• Visualização de Gráficos e Interfaces do Usuário de um 
modo amigável na TV
• ...

©2007 CETELI

12
Aplicações Interativas

A principal característica de um sistema de TV Interativa é a 
habilidade de executar aplicações que foram baixadas como 
parte de um Broadcast Stream: isto é realmente o que faz a 
diferença entre um sistema de TV interativa e uma TV digital 
básica, que não faz nada mais do que a sua TV atual.

©2007 CETELI

13
Tópicos
• Gerenciamento de Recursos
• APIs Gráficas
• Tratamento de Entradas do Usuário
• Mostrando Texto
• APIs de Controle de Mídia (JMF)
• Vídeos e Gráficos
• Trabalhando com Som
• Selecionando um novo Serviço
• Acesso a Informação de Serviço
• Arquivos (DSM­CC Object Carousel) e Persistência
©2007 CETELI
• Canal de Retorno
14 • Segurança e Acesso Condicionado
Aplicações Java
• Não são aplicações Java propriamente ditas;
• Têm diferenças de APIs;
• Têm restrições no que podem fazer;
• Ciclo de vida mais parecido com o do Applet:
– Controlado pelo Middleware e não pelo Usuário;
– Pode ser diferente do da JVM que o executa;
• Conhecidos como Xlets (Especificação JavaTV).

©2007 CETELI

15
javax.tv.xlet.Xlet
public interface Xlet {

  public void initXlet(XletContext ctx)
    throws XletStateChangeException;

  public void startXlet()
    throws XletStateChangeException;

  public void pauseXlet();
  public void destroyXlet(boolean unconditional)
    throws XletStateChangeException;
©2007 CETELI }
16
Diagrama de Estado

©2007 CETELI

17
Xlet Contexts

©2007 CETELI

18
Xlet Contexts

©2007 CETELI

19
Do's e Don'ts
• Nunca chame o método System.exit();
• O método destroyXlet() deve matar todas as threads da 
aplicação e cancelar todas as requisições assíncronas 
pendentes;
• O método destroyXlet() e o método pauseXlet() devem 
liberar contextos gráficos que a aplicação criou. O 
middleware manterá referências a não ser que sejam 
liberados propriamente com uma chamada 
java.awt.Graphics.dispose();
• A aplicação deve lembrar que pode ser pausada ou destruída 
a qualquer momento, e deve ter certeza de poder realizar sua 
limpeza;
©2007 CETELI

20
Do's e Don'ts
• A aplicação deve respeitar as restrições que possam ser 
impostas às APIs core do Java;
• Problemas com recursos são especialmente importantes em 
um ambiente de TV digital, uma aplicação deve cooperar 
com outras onde possível e, principalmente não deve prender 
recursos escassos além do necessário;
• Sua aplicação deve ser confiável o quanto possível. Se um 
método lançar uma excessão você deve tratá­la, pois esta é a 
razão de serem lançadas.

©2007 CETELI

21
Brasil

©2007 CETELI

22
http://www.ginga.org.br

Resultado  de  anos  de  pesquisas  lideradas  pela  Pontifícia 


Universidade  Católica  do  Rio  de  Janeiro  (PUC­Rio)  e  pela 
Universidade  Federal  da  Paraíba  (UFPB),  Ginga  reúne  um 
conjunto de tecnologias e inovações brasileiras que o tornam a 
especificação de middleware mais avançada e, ao mesmo tempo, 
mais adequada à realidade do país.

O  Middleware  Ginga  pode  ser  dividido  em  dois  subsistemas 


principais,  que  permitem  o  desenvolvimento  de  aplicações 
seguindo  dois  paradigmas  de  programação  diferentes. 
Dependendo  das  funcionalidades  requeridas  no  projeto  de  cada 
aplicação, um paradigma possuirá uma melhor adequação que o 
outro. Conheça o Ginga­j e o Ginga­ncl.
©2007 CETELI

23
Ginga­j

Ginga­j  foi  desenvolvido  pela  UFPB  para  prover  uma  infra­


estrutura  de  execução  de  aplicações  baseadas  em  linguagem 
Java, com facilidades especificamente voltadas para o ambiente 
de TV digital.

http://www.lavid.ufpb.br/

©2007 CETELI

24
Obrigado!

Perguntas???

©2007 CETELI

25

You might also like