Desenvolvimento de Aplicações Java para TV Digital
©2007 CETELI
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 do Amazonas (UFAM)
[email protected]
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 (settop 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 AudioVisual 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 ATSC
OpenTV
MSTV
Horizontal Market
Satellite Terrestrial Cable
Vertical Market
Liberate
MHEG UK BML Japan
MHP DVB
GEM OCAP CableLabs
Media Highway
©2007 CETELI
7
O mercado de TV Digital está atualmente migrando de soluções proprietárias em mercados verticais para padrões abertos em mercados horizontais.
HAVi MHEG5 Java
©2007 CETELI
8
MHEG6
DAVIC
MHP
JavaTV
MHP e sua relação com padrões abertos anteriores de ITV
MHP 1.1.1
MHP 1.1 OCAP 1.0
GEM
MHP 1.0.2
OCAP 2.0
MHP 1.0.3
ARIB B.23 JavaTV ©2007 CETELI
9
DASE
ACAP
As relações entre MHP, GEM e outros padrões
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
©2007 CETELI
11
GEM é o padrão especificado pelo MHP Umbrella Group – MUG, um grupo formado por representantes de 3 áreas de padronização.
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 (DSMCC Object Carousel) e Persistência ©2007 CETELI
14
• Canal de Retorno • 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 (PUCRio) 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 Gingaj e o Gingancl. ©2007 CETELI
23
Gingaj
Gingaj 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