Ginga-J · PDF fileoutros países, dando ao Brasil uma posição de destaque...

6
: : www.mundoj.com.br : : Mário de Sá Vera ([email protected]) é graduado em Ciência da Computação pela Universidade Federal Fluminense e trabalha com Arquitetura de Sistemas utilizando Orientação a Objetos. Acompanhou a evolução da linguagem Java – pela qual é entusiasta, e liderou o desenvolvimento de sistemas nas áreas de Geoprocessamento, Sistemas de Mensageria e Visão Computacional. Atualmente faz parte do grupo de Inovação da M4U Soluções, com foco nas possibilidades de interatividade em convergência entre Telefonia Móvel e TV Digital. David Campêlo ([email protected]) é graduado e mestre em Ciência da Computação pela Universidade Federal do Ceará, onde atuou como pesquisador e líder de projetos nas áreas de ensino a distância e TV Digital Interativa. Em 2005, foi membro efetivo de jornadas de integração em trabalhos coletivos de pesquisa no Projeto SBTVD. Já trabalhou com TV Participativa e atuou como docente de ensino superior. Atualmente, na TOTVS é coordenador técnico da primeira implementação comercial completa do middleware Ginga e sistemas IPTV. Mesmo em tempos onde netbooks e iTablets têm preços bem atraentes, ninguém discorda que a TV ainda é o eletrodoméstico mais presente na casa dos brasileiros. Hoje, mais de 90% dos lares contam com pelo menos uma TV. E, para os que ainda não sabem, já é possível executar aplicativos Java enquanto assistimos a um programa de televisão. Em paralelo, instituições brasileiras se movimentam para divulgar o padrão baseado no JavaDTV em outros países, dando ao Brasil uma posição de destaque internacional em termos de interatividade na TV. Neste artigo, apresentamos um panorama com o cenário atual da TV Digital Interativa (DTVi), que tem evoluído bastante, e damos ao leitor uma introdução ao Ginga-J indicando ferramentas e possibilidades de desenvolvimentos avançados. Ginga-J: O Java na TV brasileira e no mundo! Os novos avanços rumo à TV Interativa a Copa do Mundo da África, algumas emissoras já transmitiram aplicativos interativos desenvolvidos com tec- nologia Ginga-J, que consiste no módulo de interatividade do padrão nipo-brasileiro ISDB- Tb de TV Digital baseado na tecnologia Java. Este ano, a tecnologia se consolidou recebendo, inclusive, aprovação na UIT (União Internacio- nal de Telecomunicações). O mercado começa a dar sinais de vida com diversos fabricantes de dispositivos lançando versões de aparelhos já suportando o Ginga-NCL e Ginga-J e as principais emissoras já realizando testes com aplicativos sendo transmitidos juntamente com sua programação. No decorrer deste artigo descreveremos a arquitetura do Ginga-J e ferramentas de desen- volvimento serão apresentadas para que o leitor se sinta capaz de se iniciar neste promissor mer- cado de software para dispositivos televisivos no Brasil e no mundo. 50

Transcript of Ginga-J · PDF fileoutros países, dando ao Brasil uma posição de destaque...

: : www.mundoj.com.br : :

Mário de Sá Vera ([email protected]) é graduado em Ciência da Computação pela Universidade Federal Fluminense e trabalha com Arquitetura de Sistemas utilizando Orientação a Objetos. Acompanhou a evolução da linguagem Java – pela qual é entusiasta, e liderou o desenvolvimento de sistemas nas áreas de Geoprocessamento, Sistemas de Mensageria e Visão Computacional. Atualmente faz parte do grupo de Inovação da M4U Soluções, com foco nas possibilidades de interatividade em convergência entre Telefonia Móvel e TV Digital.

David Campêlo ([email protected]) é graduado e mestre em Ciência da Computação pela Universidade Federal do Ceará, onde atuou como pesquisador e líder de projetos nas áreas de ensino a distância e TV Digital Interativa. Em 2005, foi membro efetivo de jornadas de integração em trabalhos coletivos de pesquisa no Projeto SBTVD. Já trabalhou com TV Participativa e atuou como docente de ensino superior. Atualmente, na TOTVS é coordenador técnico da primeira implementação comercial completa do middleware Ginga e sistemas IPTV.

Mesmo em tempos onde netbooks e iTablets têm preços bem atraentes, ninguém discorda que a TV ainda é o eletrodoméstico mais presente na casa dos brasileiros. Hoje, mais de 90% dos lares contam com pelo menos uma TV. E, para os que ainda não sabem, já é possível executar aplicativos Java enquanto assistimos a um programa de televisão. Em paralelo, instituições brasileiras se movimentam para divulgar o padrão baseado no JavaDTV em outros países, dando ao Brasil uma posição de destaque internacional em termos de interatividade na TV. Neste artigo, apresentamos um panorama com o cenário atual da TV Digital Interativa (DTVi), que tem evoluído bastante, e damos ao leitor uma introdução ao Ginga-J indicando ferramentas e possibilidades de desenvolvimentos avançados.

Ginga-J: O Java na TV brasileira e

no mundo! Os novos avanços rumo à TV Interativa

a Copa do Mundo da África, algumas emissoras já transmitiram aplicativos interativos desenvolvidos com tec-

nologia Ginga-J, que consiste no módulo de interatividade do padrão nipo-brasileiro ISDB-Tb de TV Digital baseado na tecnologia Java. Este ano, a tecnologia se consolidou recebendo, inclusive, aprovação na UIT (União Internacio-nal de Telecomunicações). O mercado começa a dar sinais de vida com diversos fabricantes de dispositivos lançando versões de aparelhos já suportando o Ginga-NCL e Ginga-J e as principais emissoras já realizando testes com aplicativos sendo transmitidos juntamente com sua programação.

No decorrer deste artigo descreveremos a arquitetura do Ginga-J e ferramentas de desen-volvimento serão apresentadas para que o leitor se sinta capaz de se iniciar neste promissor mer-cado de software para dispositivos televisivos no Brasil e no mundo.

50

51

Padrão Ginga de Interatividade

JavaDTV

Dentre as normas que definem a arquitetura do padrão brasileiro de TV digital consta a especificação do middleware Ginga, cama-da de software que tem como objetivo abstrair especificidades de hardware presentes em dispositivos de recepção de conteúdo tele-visivo digital. O Ginga expõe serviços de modo padronizado para aplicações interativas, escondendo peculiaridades de camadas in-feriores, como, por exemplo, a tecnologia usada para compressão, modulação, persistência etc.

O padrão Ginga comporta dois motores de execução para aplica-ções interativas, um para execução de aplicações construídas uti-lizando a linguagem NCL/Lua (Ginga-NCL) e outro para execução de aplicações utilizando a linguagem Java (Ginga-J). Apesar de serem funcionalmente semelhantes, a adoção da linguagem Java para criação de aplicações interativas permite um controle mais refinado do ambiente de TV digital (em grande parte por conta de suas APIs, as quais serão vistas em detalhes ao longo deste artigo), bem como aproveita a grande massa de desenvolvedores Java já formados e disponíveis no mercado. Vale lembrar que a lin-guagem NCL/Lua foi criada por pesquisadores brasileiros durante trabalhos realizados ao longo dos últimos anos.

O motor de execução Ginga-J tem como base as APIs livres Java-TV versão 1.1 e JavaDTV versão 1.3, ambas especificadas pela Sun Microsystems, empresa criadora da tecnologia Java. Além disso, para que as aplicações Java possam ser executadas pelo Ginga-J, faz-se necessária a presença de uma JVM (Java Virtual Machine) no receptor de TV digital. Segundo a especificação do Ginga-J, a JVM empregada deve ser compatível com a arquitetura para sistemas embarcados CDC/FP (Connected Device Configuration/Foundation Profile) versão 1.1.2 e perfil PBP (Personal Basis Pro-file) versão 1.1.

Como já é de se esperar, a arquitetura definida pelo Ginga-J asse-melha-se às arquiteturas já existentes baseadas em J2ME (repre-sentada na figura 1), o que deixa em vantagem os desenvolvedores que já tiveram alguma experiência com aplicativos para celulares, por exemplo.

Figura 1. Arquitetura J2ME.

Fruto de uma das maiores polêmicas enfrentadas pelo Fórum SBTVD (entidade responsável pela padronização do sistema de TV digital bra-sileiro), o JavaDTV teve como motivação libertar fabricantes, emissoras e consumidores de um grande problema: o pagamento de royalties.

Por basear-se no GEM (Globally Executable MHP – especificação criada no escopo do padrão de TV digital Europeu DVB), a antiga especificação do Ginga-J determinava o pagamento de royalties tanto por unidade de recepção como por quantidade de telespectadores. Os encargos atrelados ao GEM assombraram membros do Fórum SBTVD durante meses, até que, após aliança firmada com a Sun Microsystems em meados de 2008, um time de técnicos foi designado para a criação de uma especificação funcionalmente equivalente à especificação base-ada no GEM. Nasceu assim o JavaDTV.

Além de definir extensões ao JavaTV, o JavaDTV emprega uma biblio-teca já conhecida por muitos desenvolvedores Java para dispositivos móveis. O LWUIT (Light-Weight User Interface Toolkit) é uma biblio-teca de widgets gráficos inspirada no SWING e seus componentes são bastante leves e fáceis de usar. O emprego do LWUIT na nova especi-ficação possibilitou ainda uma maior convergência entre os aplicativos desenvolvidos para celulares e para receptores de TV digital interativa. Na prática, aplicações escritas utilizando LWUIT em ambiente J2ME podem ser facilmente adaptadas para o ambiente televisivo.

Assim, o JavaDTV é uma especificação de ambiente de execução Java livre de royalties que define extensões para o JavaTV. A tabela 1 lista os principais pacotes do JavaDTV, descrevendo em linhas gerais suas funções.

Tabela 1. Pacotes que compõem a API do Java DTV.

Pacote Descrição

com.sun.dtv.appli-

cation

Este pacote fornece meios de controlar o ciclo de

vida das várias aplicações disponíveis no receptor.

com.sun.dtv.broadcast

Este pacote contém mecanismos para monitoramen-

to dos sistemas de arquivos transmitidos, bem como

dos eventos de fluxo (stream events) sinalizados.

com.sun.dtv.filtering

Este pacote fornece mecanismos para uso refinado

dos filtros de seção da plataforma para acesso a da-

dos transmitidos na tabelas PSI/SI (Program Specific

Information/Service Information).

com.sun.dtv.ioEste pacote estende o pacote java.io e indica as

permissões de acesso para arquivos persistentes.

com.sun.dtv.mediaEste pacote define controles de mídia para uso em

cenários de interatividade avançados.

com.sun.dtv.net

Utilizando as funções deste pacote é possível contro-

lar os dispositivos de canal de interatividade presen-

tes no receptor a partir da classe NetworkDevice.

com.sun.dtv.platformEste pacote contém meios para manter propriedades

de usuário mantidas na plataforma.

com.sun.dtv.resources

Este pacote traça diretivas acerca da utilização de

recursos escassos do sistema, como eventos de tecla,

planos gráficos, sintonizador, filtros de seção etc.

com.sun.dtv.security

Neste pacote são definidos mecanismos adicionais

para segurança (nota: o JavaDTV importa em sua

especificação as API JSSE e JCE).

com.sun.dtv.smartcardEste pacote define acesso à leitura de smartcards

segundo configurações presentes na plataforma.

com.sun.dtv.transportEste pacote provê acesso às componentes presentes

no fluxo de transporte (transport stream).

com.sun.dtv.ui

São definidas neste pacote funcionalidades

específicas para interação com usuário, bem como

renderização nos planos gráficos.

com.sun.dtv.lwuit

Este pacote importa os componentes do framework

gráfico LWUIT, além de introduzir componentes

específicos para o ambiente de TV.

52

: : www.mundoj.com.br : :

Para ser interpretada como uma aplicação para TV Digital toda aplicação deve ter um ponto de entrada, que consiste em uma classe principal que implementa a interface javax.tv.xlet.Xlet. A partir de chamadas enviadas a esta classe o sistema pode controlar o ciclo de vida da aplicação. E como não podia deixar de ser, a pri-meira aplicação que mostraremos aqui (apresentada na Listagem 1) é um HelloWorld utilizando a API gráfica LWUIT. O resultado é apresentado na figura 2.

Nota: vale lembrar que segundo a especificação Ginga-J são suportados os bytecodes gerados em versões entre 45.3 e 47 (equivalente à versão 1.3 do Java).

Figura 2. Hello world! do Ginga-J.

O ambiente de desenvolvimento

Além de conhecimentos de TV digital interativa e das APIs adota-das pelo Ginga-J, desenvolvedores Java necessitam apenas de um emulador para adentrar no mundo das aplicações interativas. Um bom emulador é muito importante para suporte a testes no bom e velho PC antes dos testes em ambiente real.

Há opções livres de emuladores disponíveis na Internet. Dentre estas estão o OpenGinga (www.openginga.org) e o MOSTVD (www.middlewareopensource.com), que são livres e podem ser baixados gratuitamente. Outra opção de emulador é o ByYouS-tudio (www.byyou.com.br/byyoudevnet/), que conta com uma implementação comercial do Ginga para o ambiente Linux PC.

Após os testes preliminares no ambiente emulado chega o mo-mento dos testes em ambiente real de produção. Para isso, faz-se necessário um playout para transmissão da aplicação interativa, além do receptor de sinal digital.

Já é possível encontrar no mercado televisores dotados de imple-mentações do Ginga-J. No entanto, infelizmente não há imple-mentações de playouts livres compatíveis com o padrão brasileiro de TV digital. Encontram-se como opções comerciais de playouts o ByYou Play (www.tqtvd.com) e o EiTV (www.eitv.com.br).

Para Saber Mais

Playout é um componente de software ou hardware responsá-vel pela geração do transport stream contendo as componen-tes de áudio, vídeo e dados, incluindo a aplicação interativa. Além disso, o Playout também é responsável pela transmissão do transport stream gerado que será enviado over the air (OTA) até os receptores de TV Digital.

Listagem 1. Código-fonte do Hello world!

import java.awt.Color;

import com.sun.dtv.lwuit.Font;

import com.sun.dtv.lwuit.Form;

import com.sun.dtv.lwuit.Label;

import com.sun.dtv.lwuit.geom.Dimension;

import com.sun.dtv.lwuit.layouts.CoordinateLayout;

import javax.microedition.xlet.Xlet;

import javax.microedition.xlet.XletContext;

import javax.microedition.xlet.XletStateChangeException;

public class HelloLWUIT implements Xlet {

/**

* Inicializando a aplicação. Neste método deve ser feita a inicialização

* da aplicação. Se algo der errado, então uma XletStateChangeException

* será gerada para notificar o sistema que a aplicação não foi inicializada.

*/

public void initXlet(XletContext ctx) throws XletStateChangeException {}

/**

* Executando a aplicação. Neste ponto a aplicação pode exibir seus

* gráficos na tela

* e iniciar a interação com o usuário, ou mesmo realizar qualquer

* atividade necessário ao seu funcionamento.

*/

public void startXlet() throws XletStateChangeException {

Form mainForm = new Form(“Hello Form”);

Label label = new Label(“Hello world!”);

mainForm.getStyle().setBgColor(Color.WHITE);

label.getStyle().setBgColor(Color.BLUE);

label.getStyle().setFgColor(Color.WHITE);

label.getStyle().setFont(Font.createSystemFont(

Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_LARGE));

mainForm.addComponent(label);

mainForm.show();

}

/**

* Pausar a aplicação. Neste ponto recomenda-se que a aplicação libere

* qualquer

* recurso escasso, como threads, conexões etc.

*/

public void pauseXlet() {}

/**

* Parar a aplicação. O parâmetro boleano diz ao método se o

* Xlet tem a opção de continuar em execução por mais um tempo.

*/

public void destroyXlet(boolean unconditional) throws

XletStateChangeException { }

}

53

A arquitetura de J2ME prevê diversos profiles para atender às limitações de hardware de um determinado dispositivo. O mesmo vale para os STBs que rodarão os aplicativos sendo transmitidos ou já embarcados de fábrica. A seguir, exploramos um pouco do que pode ser feito com o Ginga-J.

O que se pode fazer com o Ginga-J?

Enquete

Nesta seção, são listados alguns casos de uso reais de aplicativos Ginga-J, alguns deles inclusive já transmitidos durante a progra-mação de grandes emissoras de TV do Brasil.

Por considerar que o elemento principal da programação tele-visiva é o vídeo transmitido, é bastante comum que aplicações interativas não sejam exibidas em modo de tela-cheia. É bastante comum também o uso de transparência nas imagens

A aplicação de enquete é um excelente caso de uso para observar a opinião dos telespectadores sem que para isso seja necessário usar outro dispositivo além da própria TV. Utilizando a API padrão java.net.Socket para efetuar a comunicação com um servidor de votação e uma API de RSS para buscar novas notícias, a aplicação constitui uma excelente alternativa aos programas de Quiz e similares. Vale lembrar que toda a comunicação via TCP/IP ou HTTP já é imple-mentada na própria API de sockets Java padrão, o que facilita o desenvolvimento. Em seguida, temos a enquete rodando na telinha:

Figura 3. Aplicação enquete.

Figura 4. Aplicação Plantão de Notícias.

A enquete pode servir também como uma ferramenta para conhe-cer melhor o espectador de modo a fazer publicidade direcionada ou apresentação de conteúdo publicitário diferenciado.

Nesta aplicação, faz-se uso da API para reserva exclusiva de teclas de modo a capturar os eventos numéricos do controle remoto (por padrão, o teclado numérico é usado para trocas de canal). A Listagem 2 apresenta o trecho de código desta aplicação responsá-vel por essa funcionalidade.

Plantão de notícias

Durante toda a programação é possível que a emissora deseje lan-çar notícias na tela de modo preciso e rápido. Assim, esta aplica-ção utiliza a API de monitoramento de arquivos transmitidos pelo sinal de modo a receber eventos de atualização de suas mídias. Em seguida, temos o Plantão de Notícias rodando na telinha:

Listagem 2. Código-fonte com o controle de eventos nu-méricos da aplicação enquete.

/**

* Este trecho de código utiliza o pattern Observer para registrar no

* gerente de eventos

* (UserInputEventManager) de interação com o usuário um listener. O

* dispositivo que disparará

* o evento é a tela (Screen) e o evento a ser tratado será do tipo

* KeyEvent – evento de teclado.

*/

class EventReceiver implements com.sun.dtv.ui.event.UserInputEventListener

{

public synchronized void reserveKeys() {

UserInputEventManager inputManager;

KeyEvent event_1;

KeyEvent event_2;

Screen currentScreen = Screen.getCurrentScreen();

inputManager = UserInputEventManager.getUserInputEventManager(

currentScreen);

event_1 = new KeyEvent(null, KeyEvent.KEY_PRESSED, 0, 0,

KeyEvent.VK_1, ‘0’);

event_2 = new KeyEvent(null, KeyEvent.KEY_PRESSED, 0, 0,

KeyEvent.VK_2, ‘0’);

inputManager.addUserInputEventListener( (UserInputEventListener)

this, event_1);

inputManager.addUserInputEventListener(

(UserInputEventListener) this, event_2);

}

public void userInputEventReceived(UserInputEvent evt) {

// redirects the event

MainForm.dispatchEvent(evt);

}

}

54

: : www.mundoj.com.br : :

Este caso de uso é bastante comum em cenários de interatividade nos quais é necessária a atualização intensa do conteúdo veicula-do. Casos de uso como este tornam bastante peculiar o ambiente de TV Digital para desenvolvedores Java.

T-Commerce

Fazendo uma analogia com o e-commerce, na TV digital temos o t-commerce que, como o nome sugere, enquadra os aplicativos de comércio eletrônico feito pelo canal de interatividade da TV. Um exemplo é a loja de mídias para celulares (ringtones, wallpapers etc.) criada pela empresa M4 TV e batizada de Top Fun. Em segui-da, vemos a aplicação Top Fun rodando na telinha:

Figura 5. Aplicação Top Fun.

Por lidar com informações sensíveis (dados de senhas e cartões dos usuários), aplicações deste tipo podem beneficiar-se do uso de mecanismos de segurança já previstos no padrão Ginga-J, como transação segura de dados, criptografia, dentre outros.

Nota: a norma ABNTNBR-15605 especifica as resoluções de segurança do padrão.

Aplicações como essa eventualmente podem precisar redimensio-nar o vídeo principal transmitido pela emissora, de modo a evitar que seus elementos sobreponham o conteúdo televisivo. Para isso, foi usada a API JMF para modificar as dimensões do vídeo prin-cipal. A Listagem 4 apresenta um trecho do código da aplicação correspondente a essa funcionalidade:

O momento atual do Ginga

As principais vantagens técnicas do ISDB-Tb (padrão nipo-brasileiro para TV Digital) são a especificação de interatividade por si (Ginga) e a codificação em H264 que aumenta a banda de transmissão em comparação com os codificadores utilizados em outros padrões. Todas as especificações do Ginga podem ser encontradas na rede e vem sendo disponibilizadas pelo Fórum de TV Digital Brasileiro (SBTVD).

Listagem 3. Código-fonte do controle de eventos de notí-cias da aplicação Plantão de Notícias

Listagem 4. Código-fonte em JMF para resize de vídeo na aplicação Top Fun.

/**

* Neste trecho de código utilizamos, novamente, o pattern Observer

* para registrar desta vez

* um listener para o conteúdo de um arquivo contendo as novas

* notícias as serem apresentadas.

*/

class BroadcastFileEventReceiver implements

com.sun.dtv.broadcast.BroadcastFileListener {

public void registerListener(String file)

throws javax.tv.locator.MalformedLocatorException,

java.io.IOException, javax.tv.locator.InvalidLocatorException {

Locator locator = LocatorFactory.getInstance().createLocator(file);

com.sun.dtv.broadcast.BroadcastFile bFile =

new com.sun.dtv.broadcast.BroadcastFile(locator);

bFile.addListener(this);

}

public void broadcastFileChanged(BroadcastFileEvent event) {

System.out.println(“File [“+ event.getBroadcastFile().

getAbsolutePath()+”] has changed!”);

MainForm.refreshInterface(event.getBroadcastFile());

}

public void broadcastFileLost(BroadcastFileEvent event) {

System.out.println(“File [“+ event.getBroadcastFile().

getAbsolutePath()+”] is no longer transmitted!”);

}

}

/**

* Neste trecho de código fazemos uso da classe javax.media.Player

* criando um objeto a partir da

* especificação do protocolo para indicar o vídeo principal (DEVICE 0).

* A partir desta instância

* criamos um controle AWT específico para a troca do tamanho

* original do video (rect).

*/

public static void resizeVideo(java.awt.Rectangle rect)

throws javax.media.NoPlayerException, java.io.IOException {

javax.media.Player videoPlayer =

javax.media.Manager.createPlayer(

new javax.media.MediaLocator(“sbtvd-ts://0”));

if (videoPlayer == null) return;

javax.media.Control control =

videoPlayer.getControl(“javax.tv.media.AWTVideoSizeControl”);

if (!(control instanceof javax.media.AWTVideoSizeControl)) {

System.err.println(“No AWTVideoSizeControl available!”);

return;

}

javax.media.AWTVideoSizeControl awtControl =

(javax.media.AWTVideoSizeControl) control;

javax.media.AWTVideoSize sizeDefault = awtControl.getDefaultSize();

presentationControl.setSize(

new javax.media.AWTVideoSize(sizeDefault.getSource(), rect));

}

O governo tem absoluto interesse na TV Digital como ferramenta de inclusão social. Esperamos que através de iniciativas como o PL-29 possamos encontrar o caminho para um modelo de negó-cios que depende ainda de um incentivo para um ambiente mais propício à produção de STBs suportando o Ginga, que hoje já é adotado em quase todos os países da América do Sul, além de alguns países da África e da América Central.

Até o final do ano de 2010, o Fórum SBTVD deverá atingir o obje-tivo de ter as normas de interatividade apresentadas e aprovadas. Atualmente há apenas pendências nas normas que dizem respeito à segurança no ambiente interativo.

São inúmeras as razões pelas quais a tecnologia Java foi escolhida para compor o padrão de interatividade Ginga. Além do grande número de desenvolvedores e do fato de ser uma tecnologia livre, a tecnologia tem emprego expressivo mundo afora*:• 930 milhões de downloads do JRE a cada ano;• 1.4 bilhões de JavaCards sendo produzidos por ano;• 1.1 bilhões de desktops com Java;• 6.5 milhões de desenvolvedores ao redor do mundo.

* dados atualmente disponíveis em www.java.com

O governo brasileiro já conseguiu o reconhecimento internacio-nal do Ginga-J junto ao ITU (International Telecommunication Union) em conjunto com várias entidades relacionadas ao desen-volvimento da tecnologia. Trata-se de uma grande vitória, pois gera muitas oportunidades para o mercado brasileiro no exterior, em especial para a indústria de software.

Considerações finais

Enquanto emissoras se movimentam para buscar um novo mo-delo comercial incluindo a interatividade nas suas grades de pro-gramação, fabricantes correm contra o tempo para lançar novos modelos de TV.

Com os altos preços dos receptores digitais e televisores de LCD, plasma e LED, o objetivo de incluir a população carente de infor-mação ainda não foi alcançado. No entanto, os benefícios introdu-zidos pela interatividade na TV já são percebidos nos aplicativos disponibilizados nos grandes centros do país. Sejam aplicações informativas, publicitárias ou mesmo de entretenimento, a intera-tividade pela TV já mostrou que veio para ficar.

O suporte à Java pelo padrão brasileiro de TV Digital será fator importante na disseminação da cultura de desenvolvimento de aplicativos sofisticados a serem transmitidos ou embutidos em receptores (STBs), trazendo assim uma experiência mais produti-va para desenvolvedores e mais prazerosa para os usuários destes produtos. Atualmente, boa parte dos fabricantes de televisores já fornecem seus produtos high end com recursos sofisticados em telas LCD e suportando Ginga-J. Com a crescente oferta destes aparelhos somada à perspectiva de venda de STBs no varejo com preços populares esperamos um cenário propício à formação de um mercado para os desenvolvedores de aplicativos Ginga-J•

• Forum SBTVD

www.forumsbtvd.org.br

• Ginga

www.ginga.org.br

• JavaTV

www.jcp.org/en/jsr/detail?id=927

• JavaDTV

www.forumsbtvd.org.br/materias.asp?id=200

• CDC

www.jcp.org/en/jsr/detail?id=218

• FP

www.jcp.org/en/jsr/detail?id=219

• PBP

www.jcp.org/en/jsr/detail?id=217

• J2ME

www.mobilegametutorials.blogspot.com/2009/09/j2me-architecture-and-configura-

tion.html

Referências

55