EzEventForGinga-J - Sites de Eventos via TV Digital Interativa

Transcrição

EzEventForGinga-J - Sites de Eventos via TV Digital Interativa
ISSN 2316-2872
T.I.S. São Carlos, v. 2, n. 3, p. 251-262, set-dez 2013
©Tecnologias, Infraestrutura e Software
EzEventForGinga-J - Sites de Eventos via TV
Digital Interativa
Hebert Luchetti Ribeiro, Daniel Lucrédio
Resumo: A TV Digital e o middleware brasileiro Ginga utilizam tecnologias que trazem a interatividade para os telespectadores, permitindo o
uso de aplicações através de vários dispositivos de interação. O Ginga possui dois subsistemas ou módulos: o Ginga-NCL, que suporta a
execução de aplicações declarativas escritas na linguagem NCL, e o Ginga-J, sobre o qual executam aplicações imperativas escritas na linguagem Java. O presente trabalho apresenta o desenvolvimento de uma aplicação para TV Digital Interativa, compatível com o ambiente
Ginga-J do Sistema Brasileiro de TV Digital. A aplicação deste trabalho disponibiliza ao usuário o acesso a uma aplicação de sites de eventos
chamado EzEvent. O usuário pode acompanhar as atualizações do evento em tempo real, inserir dados e pesquisar a programação das
atividades do evento. Este artigo apresenta a arquitetura do sistema proposto, as principais decisões de projeto e o raciocínio por trás delas.
Também apresenta as lições aprendidas, para que outros pesquisadores/desenvolvedores possam aprender e dar continuidade ao trabalho.
Palavras-Chave: tv digital, ginga-j, ginga.
EzEventForGinga-J – Event sites via interactive Digital TV
Abstract: Digital TV and Brazilian middleware Ginga use technologies that bring interactivity to the viewers, allowing the use ofapplications
through multiple interaction devices. Ginga has two subsystems or modules: Ginga-NCL, which supports declarative applications written in
the NCL language and Ginga-J, which runs imperative applications written in the Java language. This paper presents the development ofan
application for Digital Interactive TV, compatible with Ginga-J environment, created in the Brazilian Digital TV System. The application of
this paper provides the user access to an event site application called EzEvent. The user can follow the events updates in real time, enter data
and search the schedule for event activities. This paper presents the architecture of the proposed system, the main design decisions and the
reasoning behind them. It also presents the lessons learned so that other researchers / developers can learn from them and continue the work.
Keywords: digital tv, ginga-j, ginga.
I. INTRODUÇÃO
O Sistema Brasileiro de TV Digital (SBTVD) é uma realidade no Brasil (SBTVD, 2012). Com esse cenário, a televisão
digital começa a criar um novo mercado de aplicações interativas.
Durante a definição desse sistema no Brasil, utilizou-se
como base o sistema japonês de TV digital (ISDB-T). Ele se
configurou como o mais avançado e o que oferecia maior
convergência e possibilidade de segmentação. Ao mesmo
tempo em que o padrão oferecia alta definição, permitia
portabilidade, de forma gratuita e simultânea. Outra
justificativa foi a de melhor adaptação na captação de sinal
por receptores móveis e melhor desempenho em áreas
densamente povoadas (BOLAÑO; BRITTOS, 2007).
Contudo, para o sistema brasileiro criou-se uma nova especificação de middleware, denominada Ginga. É nesta camada
que a aplicação é executada e também é realizada a
intermediação de toda a comunicação entre a aplicação e o
resto dos serviços disponíveis. Algumas das funcionalidades
do Ginga são inovadoras, desenvolvidas especificamente para
a realidade brasileira, entre elas, o desenvolvimento de
aplicações interativas para TV Digital se destaca por permitir
o desenvolvimento de programas mais adequados a esta
realidade (DAMASCENO, 2010).
Essa especificação segue dois paradigmas de programação:
o declarativo, conhecido como Ginga-NCL, para aplicações
declarativas NCL (GINGA NCL, 2012); e o procedural
chamado de Ginga-J, para aplicações procedurais Java
(GINGA CDN, 2012). A escolha do paradigma mais
adequado depende das funcionalidades necessárias de cada
aplicação.
Graças à criação do middleware Ginga para o Sistema Brasileiro de TV Digital, surgiu a necessidade de ferramentas que
pudessem auxiliar os desenvolvedores a testarem suas aplicações em um ambiente amigável, permitindo, por exemplo, a
execução da aplicação interativa para TV Digital em seu
computador pessoal. Criou-se então o emulador para o GingaJ, uma ferramenta para execução de aplicações Ginga-J que
segue a especificação JavaDTV (JAVADTV, 2012).
Mais tarde surgiu o OpenGinga (OPENGINGA, 2012) que
Departamento de Computação - Universidade Federal de São Carlos (UFSCar)
Caixa Postal 676 – 13.565-905 – São Carlos – SP – Brasil
Autor para correspondência: [email protected], [email protected]
Hebert Luchetti Ribeiro, Daniel Lucrédio
é a implementação de referência do ambiente Ginga-J. Tem o
objetivo de oferecer uma implementação completa, não
emulada de código aberto de um middleware de TV Digital
compatível com o padrão SBTVD e executável em ambiente
de computador pessoal. Para oferecer as Application
Programming Interfaces (APIs) definidas nas especificações
Ginga-J e GingaNCL ocorreu a união da implementação de
referência Ginga-J sob responsabilidade do Laboratório de
Aplicações de Vídeo Digital (LAVID) da Universidade
Federal da Paraíba (UFPB) (GINGA CDN, 2012) e a
implementação
de
referência
Ginga-NCL sob
responsabilidade do Laboratório Telemídia da PUC-Rio
(GINGA NCL, 2012).
Apesar de a Internet estar bastante difundida no Brasil,
pesquisas mostram que o percentual de brasileiros que
possuem computadores em suas residências é de 38,3% e com
acesso a Internet chega a 27% (IBGE, 2010). Esses resultados
mostram que a Internet ainda não faz parte do cotidiano da
maioria da população. A TV aparece em 95,1% dos lares.
Essa presença maciça de televisores faz da TV Digital uma
ferramenta que se mostra como um dos importantes meios de
inclusão digital.
Este trabalho visa, neste contexto, aproveitar as potencialidades da TV Digital Interativa (TVDI) como um terminal de
acesso a serviços de aplicações baseadas no modelo de web
utilizando-se do ambiente de TVDI para benefício público.
Possui o intuito de popularizar o acesso a informação principalmente oriunda do meio acadêmico.
Para isto foi criada uma aplicação para a TV digital interativa (EzEventForGinga-J), compatível com o ambiente procedural Ginga-J, de acesso à aplicação do gerenciador de eventos denominada EzEvent. A aplicação EzEvent foi criada no
curso de pós-graduação Lato Sensu (Especialização em Desenvolvimento de Software para Web) da Universidade Federal de São Carlos. O usuário pode assistir a seu programa de
televisão e ao mesmo tempo acompanhar as atividades da
programação de diferentes eventos, tais como feiras e
reuniões científicas.
A aplicação EzEventForGinga-J possui conformidade com
as regras e normas da especificação Ginga-J, tornando-se
portável a qualquer aparelho receptor compatível com o
Ginga-J (GINGA CDN, 2012).
Três foram as contribuições deste trabalho: desenvolver
uma aplicação no ambiente para TV Digital com
interatividade fazendo uso de canal de retorno, demonstrar a
viabilidade de integração da aplicação EzEvent de ambiente
web no ambiente de TV Digi-tal e ajudar outros
desenvolvedores, relatando a experiência e lições aprendidas.
II. REFERENCIAL TEÓRICO
Nesta seção são detalhadas características de um sistema de
TV digital iterativa e a contextualização dos padrões e
bibliotecas existentes. São abordados os detalhes sobre o
sistema brasileiro de TV digital, seus conceitos gerais e a
arquitetura do middleware Ginga. Alguns trabalhos de
referência Ginga-J disponíveis para o desenvolvimento do
protótipo também são abordadas. Além disso, são explorados
T.I.S. 2013; 2 (3): 251-262
conceitos da aplicação do gerenciador de eventos EzEvent, de
onde as informações foram obtidas para serem utilizadas na
aplicação deste trabalho.
A) Middleware
O conceito de middleware consiste em uma camada
intermediária de software posicionada entre as aplicações e o
sistema operacional do receptor. Possui serviços padronizados
para as aplicações tornando transparentes as particularidades
das camadas inferiores (compressão, transporte, modulação),
permitindo portabilidade para receptores digitais que
suportem o mid-dleware (MONTEZ; BECKER, 2006). Todo
sistema de transmissão necessita de um middleware específico
para a sua plataforma.
Utilizando-se APIs padronizadas, as aplicações se tornam
compatíveis com diferentes sistemas e receptores. O middleware é capaz de executar aplicações interativas nativas, embarcadas pelo fabricante diretamente na memória do receptor
ou transmitidas via sinal digital pelas redes de TV.
B) Televisão Digital
Um sistema de TV digital é um típico sistema
cliente/servidor. O servidor é um ambiente de radiodi-fusão ou
provedor de conteúdo e o cliente é o ambiente do receptor
(set-top-box) ou terminal de acesso (FERNANDES; LEMOS;
SILVEIRA, 2004).
A TV Digital Interativa (TVDI), é viabilizada através de um
conjunto de equipamentos e sistemas que relacionam várias
organizações. O telespectador tem a possibilidade de interação
através de um conjunto de hardware e software. O hardware é
o aparelho receptor (set-top-box) ou TV com este dispositivo
embutido e o software é composto pelo middleware e
aplicações associadas aos seus serviços.
C) Interatividade
Um dos aspectos mais importantes da TV Digital é a
interatividade, mas para que isso seja possível é necessária a
existência de um canal de interação, denominado por canal de
retorno (MONTEZ, 2006). O canal de retorno é o meio onde o
aparelho de TV se comunica com a emissora do sinal digital
ou com a Internet. Os canais de retorno podem ser via cabo,
linhas telefônicas fixas (ADSL) e celulares (GPRS). Na
maioria das vezes é utilizada a comunicação TCP/IP e a
conexão do canal pode ser feita via modem a cabo, Ethernet,
etc. Permite a criação de aplicações interativas e o acesso à
Internet. A interatividade pode ser de três tipos:
•
Local: Simplesmente não existe um canal de retorno,
isto é, os dados não podem ser enviados pelo recep-tor de
volta ao provedor/difusor. Ocorre somente a exibição dos
canais televisivos permitindo também lidar com gráficos,
imagens e textos transmitidos junto com o sinal recebido;
•
Intermitente: Existe a capacidade de interatividade
local e também existe um canal de retorno, mas so-mente
unidirecional (por exemplo, mensagem SMS só em um
sentido, respostas simples, votação);
•
Permanente: Soma de todas as capacidades dos itens
252
EzEventForGinga-J - Sites de Eventos via TV Digital Interativa
com a adição da característica do canal de retorno ser
bidirecional (por exemplo, mensagem SMS nos dois sentidos,
download e upload, e-mails, navegação na Internet).
D) Ginga
Ginga é o nome dado ao middleware do Sistema NipoBrasileiro de TV Digital Terrestre (ISDB-TB). Esta camada
contém máquinas de execução de certas linguagens e
bibliotecas que possibilitam o desenvolvimento de aplicações
interativas para a TV Digital. No padrão Ginga, estas
aplicações podem ser desenvolvidas em linguagens como
Java, NCL ou LUA. O middleware Ginga é um software livre,
portanto pode-se contribuir com aplicações interativas. O
intuito deste fato foi o desenvolvimento das TVs comunitárias
e das grandes emissoras, contribuir para a inclusão digital,
proporcionar acesso à informação, educação à distância e
outros serviços com o uso da TV digital.
O Ginga é dividido em três subsistemas principais interligados: Ginga-J, Ginga-NCL e Ginga Common-Core (GingaCC) (Figura 1). No Ginga é possível o desenvolvimento de
aplicações utilizando-se dois paradigmas de programação
diferentes, o declarativo e procedural.
Figura 1 – Os subsistemas principais interligados do middleware
Ginga. Fonte: Paulinelli e Kulesza (2009)
Figura 2 – Visão geral do middleware Ginga. Fonte: Paulinelli e Kulesza (2009)
O subsistema Ginga-CC oferece o suporte necessário aos
ambientes declarativo e procedural, e tem como funções
principais a exibição dos vários objetos de mídia, o controle
do plano gráfico, o tratamento do canal de retorno, e várias
outras.
O Ginga-NCL foi desenvolvido no laboratório TeleMídia
(TELEMIDIA, 2006) da PUC-Rio para prover uma infraestrutura de apresentação de aplicações declarativas baseadas em
253
T.I.S. 2013; 2 (3): 251-262
Hebert Luchetti Ribeiro, Daniel Lucrédio
documentos hipermídia escritos em linguagem Nested Context Language (NCL) e a sua linguagem de script Lua. NCL é
uma linguagem de aplicação EXtensible Markup Language
(XML). com facilidades para a especificação de aspectos de
interatividade, sincronismo espaço-temporal entre objetos de
mídia, adaptabilidade e suporte a múltiplos dispositivos
(Ginga NCL, 2012).
O Ginga-J foi desenvolvido pelo laboratório LAVID (LAVID, 2006) da UFPB e provê uma infraestrutura de execução
de aplicações baseadas na linguagem de programação Java,
direcionada ao ambiente de TV digital. É um subsistema
lógico do middleware Ginga que compõe uma máquina
virtual Java (Java Virtual Machine - JVM), que suporta a
execução de aplicações procedurais (SOUZA FILHO;
LEITE; BATISTA, 2007). A Figura 2 mostra a arquitetura e
os componentes do Ginga.
Uma aplicação Ginga-J possui uma classe principal, denominada Xlet. É essa a classe que é instanciada pelo gerenciador de aplicações do middleware quando a aplicação é
executada no terminal de acesso. Xlet é uma aplicação Java
que proporciona interatividade para a TV Digital. É similar a
um Applet, que é adicionado em páginas HTML ou MIDlet
em celulares. O Xlet é incluído em um serviço de TV Digital.
O middleware identifica o ponto de entrada da aplicação
(classe que implementa a interface javax.tv.xlet.Xlet) e
executa a aplicação utilizando a máquina virtual Java. O
middleware geralmente possui um componente que é
responsável por gerenciar o ciclo de vida das aplicações, que
instancia a classe principal e invoca os métodos responsáveis
pela mudança de estados (BATISTA, 2007). A Figura 3
ilustra os estados de uma Xlet.
Figura 3 - Ciclo de vida de um Xlet
A aplicação Xlet possui quatro estados principais:
•
Carregado (Loaded);
•
Paralisado (Paused);
•
Iniciado (Started); e
•
Destruído (Destroyed).
E) Emuladores Ginga
T.I.S. 2013; 2 (3): 251-262
Os dois principais emuladores para o middleware Ginga
são o OpenGinga e o Astrobox:
OpenGinga é uma plataforma criada em código aberto que
possibilita a execução de aplicações Ginga em um ambiente
de computador pessoal. Inclui um sistema operacional, uma
implementação de referência do middleware de TV Digital
compatível com o padrão SBTVD, o emulador Ginga-J em
Java e aplicações de exemplo (OPENGINGA, 2012). As APIs
Ginga-J e Ginga-NCL, estão sob responsabilidade do LAViD/UFPB e Telemídia da PUC-RJ, respectivamente.
O AstroTV é a implementação do middleware brasileiro
Ginga, 100% compatível com a especificação brasileira, em
um formato comercial e otimizado. A TQTVD (TOTVD,
2012) disponibiliza para os desenvolvedores a ferramenta de
desenvolvimento AstroBox (ASTROBOX, 2012). AstroBox é
um emulador para PC e contém o middleware AstroTV totalmente baseado no padrão de TV Digital brasileiro. Essa ferramenta é oferecida associada à máquina virtual VirtualBox
(VIRTUALBOX, 2012) possibilitando a criação de
aplicativos num ambiente otimizado para isso.
F) EzEvent - Gerenciador de Eventos
Atualmente, o controle, criação e divulgação de sites de
eventos de instituições de ensino é feito de forma
personalizada, localizada e manual. Não é feito o
reaproveitamento de formatos, padrões, consul-tas e
estatísticas relacionadas tornando o evento mais custoso. A
aplicação desenvolvida oferece uma automatização e
padronização destas tarefas com o objetivo de diminuir o
tempo de criação de um site de evento e aumentar o controle
sobre as informações geradas para o mesmo.
A aplicação EzEvent também visa facilitar e agilizar o processo de criação de sites de eventos, permitindo sua reutilização para várias edições e para outros eventos inclusive. O
EzEvent almeja instituições educacionais que promovam
eventos acadêmicos através de seus departamentos.
A aplicação permite a criação e gerenciamento de sites para
eventos, onde um administrador do sistema e um coordenador
de eventos publicam um site na Internet com informações
sobre o evento. Participantes podem se cadastrar, submeter
trabalhos que são avaliados por revisores, acompanhar a
revisão destes trabalhos e informações sobre o evento.
III. TRABALHOS CORRELATOS
Neste trabalho o enfoque está na integração de uma
aplicação no ambiente web com uma aplicação no ambiente
TV Digital.
Neste contexto, Gerosa et al (2007) adaptaram um sistema
para gerenciar conteúdos e para hospedar serviços colaborativos na web, chamado AulaNet, para oferecer suporte ao ensino-aprendizagem na TV digital. No trabalho de Schroeder
(2007) é citado o uso de servidor Rich Site Summary (RSS)
de forma interativa com a TV Digital. A aplicação interage
com um provedor de serviço de difusão, através do canal de
retor-no e recebe informações e notícias no formato RSS.
Este trabalho também utiliza o padrão Multimidia Home
Plataform (MHP), compatível com o sistema europeu de TV
254
EzEventForGinga-J - Sites de Eventos via TV Digital Interativa
digital.
Um portal para aplicações colaborativas em ambiente de
TVDI, denominado InteraTV, é proposto por Andreata (2006)
apud Martini (2010) . O portal tem a função de suporte à área
de educação à distância (T-learning).
Uma aplicação de acesso ao Twitter (TWITTER DEVELOPERS, 2012) via TVDI também foi descrito por Martini
(2010).
O trabalho de Araújo (2011) apresenta o desenvolvimento
de um aplicativo para TV digital, desenvolvido em Ginga-J,
que permite acessar informações disponibilizadas pela plataforma Ushahidi (USHAHIDI, 2012), para o acompanhamento
do tráfego viário nas grandes cidades. A aplicação
disponibiliza informações sobre ruas congestionadas ou
bloqueadas, podendo planejar a melhor rota para chegar ao
seu destino enquanto assiste algum programa de televisão
antes de sair de sua residência.
Constatou-se que boa parte das aplicações para TV Digital
também se encontram na web, surgindo então a possibilidade
de integração entre as aplicações desses ambientes (BARRÉRE et al., 2009). Este artigo apresenta uma metodologia desenvolvida para integrar aplicações web e aplicações para TV
Digital, evitando assim o desenvolvimento de uma aplicação
nova para cada novo ambiente computacional.
IV. S ITES DE EVENTOS VIA TV DIGITAL – UM ESTUDO DE
CASO
Esta seção descreve a integração da aplicação web de um
site de evento gerado a partir do gerenciador de eventos, denominado EzEvent, com a aplicação interativa de TV Digital
desenvolvida utilizando Ginga-J, cujo nome é EzEventForGinga-J. A aplicação EzEventForGinga-J acessa informações
e interage com a aplicação web EzEvent. São descritas também as próprias aplicações EzEvent, EzEventForGinga-J, os
Web Services gerados para a troca de mensagens entre as duas
primeiras aplicações, a arquitetura do sistema e orientações
para o ambiente de desenvolvimento.
A) Integração Entre os Ambientes TVDI e Web
São três os componentes importantes no ambiente de TVDI
para o con-texto deste trabalho: o Servidor Web, o Set-top
Box e o Prove-dor de Serviços Interativos (PSI).
O PSI no ambiente de TVDI tem a mesma função de um
provedor de Internet no ambiente web. Promove a integração
do Set-top Box com os demais recursos do ambiente. Para o
ambiente de TVDI podem existir vários PSIs provendo serviços distintos, como serviços de educação, rede social, rede
bancária, interatividade e outros.
Neste trabalho se utiliza somente o PSI para a integração
com a ambiente web. A integração entre o ambiente TVDI e
web é mostrada na Figura 4.
O provedor PSI-Acesso realiza a integração entre os ambientes TVDI e web trocando informações entre os dois e fazendo a conversão dos formatos de endereçamento e dados
necessários (BARRÉRE et al., 2009).
Existem basicamente dois fluxos de comunicação entre os
três componentes do sistema:
•
Fluxo 1: Representa o canal de comunicação entre os
dois ambientes. Um módulo no PSI-Acesso realiza o acesso
ao Servidor Web sempre que requisitado pela aplicação no
Set-top Box; e
•
Fluxo 2: Representa o canal de troca de informações
entre um Set-top Box e o PSI-Acesso, via canal de retorno.
A troca de informações entre o Set-top Box, o PSI-Acesso e
o Servidor Web, representa a integração entre os dois ambientes. Todas as informações são intercambiadas em arquivos de
formato EXtensible Markup Language (XML) préestabelecido pelas aplicações que participam da integração.
Figura 4 – Arquitetura de integração entre ambiente web e TVDI
Os participantes da integração no contexto deste trabalho
são:
•
•
255
EzEvent é um módulo do Servidor Web;
Servidor de Aplicações é um módulo do PSI-Acesso,
T.I.S. 2013; 2 (3): 251-262
Hebert Luchetti Ribeiro, Daniel Lucrédio
para gerenciar a comunicação entre os dois ambien-tes; e
•
EzEventForGinga-J é uma aplicação da TVDI, executada na Set-top Box, e que faz as requisições ao Servidor
Web.
B) Metodologia de Integração entre os Ambientes
Neste trabalho foi adotada a metodologia proposta por
Barrére et al. (2009) para o desenvolvimento visando a
integração da aplicação de ambiente web EzEvent com a
aplicação de ambiente TVDI EzEventForGinga-J.
As etapas de projeto foram as seguintes:
•
Etapa 1: Definição das funcionalidades que existem
na aplicação web e que devem ser também disponibilizadas
na aplicação de TVDI. A seleção tem como critério a
simplicidade de uso no ambiente TVDI e ao mesmo tempo
serem funcionalidades úteis e importantes para o sistema. As
funcionalidades selecionadas foram:
a) Efetuar login na aplicação web EzEvent quando for
necessário obter dados não públicos do sistema;
b) Disponibilizar a programação de cada evento
selecionado; e
c) Requerer informações de cada evento e de cada
atividade da programação.
•
Etapa 2: A aplicação web EzEvent foi criada
seguin-do o padrão MVC (Modelo, Visão e Controle)
(KRASNER; POPE, 1988). As informações são a-cessadas
através da camada do modelo via fachada, que por sua vez
acessa a camada de persistência. As funcionalidades podem
sempre ser acessadas quando requisitadas.
•
Etapa 3: Definição de quais são as informações a serem trocadas para a obtenção das funcionalidades. As
informações selecionadas para serem trocadas foram:
a) Identificação de Edição de Evento;
b) Usuário e Senha;
c) Lista de Atividades de um evento;
d) Dados de edições de eventos;
e) Dados das programações.
•
Etapa 4: Definidos os tipos e quantidades de mensagens utilizou-se o padrão XML para formatá-las. As
informações são trocadas através de arquivos XML via Web
Services com os protocolos Hypertext Transfer Protocol
(HTTP),
Simple
Object
Access
Protocol
(SOAP)/REpresentational State Transfer (REST) (SNELL;
TIDWELL; KULCHENKO, 2001) utilizando-se um servidor
de web e de aplicações.
•
Etapa 5: Desenvolvimento dos módulos:
a) Módulo da aplicação web: (EzEvent) - Res-ponsável
por receber as requisições oriundas do ambiente de TVDI
através de arquivos XML via Web Services. Realiza o acesso
ao sistema, ob-tendo as informações solicitadas
encaminhando-as, via Web Services (arquivos XML),
seguindo sempre as regras de negócios estabelecidas para a
aplicação;
b) Módulo da aplicação PSI-Acesso: (Servidor de
Aplicações - Web Services) - Responsável pela mediação
entre os ambientes. Sua função é a in-tegração e não o
processamento dos dados;
T.I.S. 2013; 2 (3): 251-262
c) Módulo da aplicação TVDI: (EzEventForGin-ga-J) Responsável pelo acesso às funcionalida-des que são
chamadas pela aplicação como se estivessem locais apesar de
estarem remotas,. Esse módulo realiza a comunicação com o
mó-dulo da aplicação web, via troca de arquivos XML a partir
de Web Services.
•
Etapa 6: Realizar os testes de validação da
integração e finalizar o processo.
C) Arquitetura do Sistema
Nesta seção é apresentada uma visão geral das aplicações
EzEvent, EzEventForGinga-J e dos Web Services
disponibilizados pelo sistema.
EzEvent é uma aplicação web e realiza todo o cadastramento de informações necessárias para criação de sites de
eventos para a posterior utilização destas informações pelas
aplicações TV Digital Interativas ou outros dispositivos de
acesso (Figura 5).
A aplicação EzEventForGinga-J tem como função a
utilização destas informações no ambiente interativo de TV
Digital. Para que o canal de retorno estabeleça a comunicação
a aplicação web EzEvent faz uso da arquitetura que utiliza o
padrão de projeto MVC para viabilizar o fornecimento de uma
resposta às requisições.
A aplicação web EzEvent estabelece uma comunicação através de um Servidor Web onde permanece hospedado. O
servidor utilizado foi o Glassfish (GLASSFISH, 2012) e desempenha a função de Servidor Web. A aplicação EzEvent
tem interação com um servidor de aplicações e contém todas
as regras de negócio que são utilizadas para cadastramento e
utilização de informações. É composto por uma camada de
visão web e outra camada de negócios.
A aplicação web e TVDI utilizam protocolos baseados em
padrões XML que permitem a geração automática tanto do
código cliente quanto do código do servidor. A comunicação
distribuída ocorre por meio de mensagens XML, formatadas e
encapsuladas segundo o protocolo SOAP/REST e
transportadas via requisição HTTP.
As aplicações Web Services são aplicações de integração
entre qualquer dispositivo de acesso e as regras de negócio
presentes no servidor de aplicações. Os dispositivos podem
ser a TV Digital Interativa, Tablets, Smartphones, PCs ou
outro dispositivo de acesso.
Os dispositivos de acesso podem realizar uma requisição de
serviço através do protocolo SOAP ou REST para um Web
Service que esteja disponível em um Servidor Web como
apresentado na Figura 5.
Assim que a requisição é recebida no Web Service, a mesma é repassada para um serviço através de um servidor de
aplicações. Os serviços fazem parte da aplicação EzEvent e
podem se comunicar com o banco de dados para obter as
informações requisitadas. As requisições são processadas e as
respostas são devolvidas para o Web Service que as repassa
para o dispositivo de origem.
256
EzEventForGinga-J - Sites de Eventos via TV Digital Interativa
Figura 5 – Arquitetura da aplicação
D) Aplicação Web EzEvent
A aplicação EzEvent possui uma arquitetura padrão MVC
(KRASNER; POPE, 1988). São usados linguagem,
frameworks e banco de dados de uso livre. Uma chamada é
iniciada através de uma página XHTML que dispara uma
requisição enviada e recebida em uma classe de Controle
(Managed Bean) (JAVA BUILDING, 2012).
Algumas das responsabilidades do Managed Bean são intermediar a comunicação entre as páginas e o modelo de
negócios, escutar os eventos, processá-los e delegar para a
camada de negócios.
Para acessar as regras de negócio, o Managed Bean realiza
uma chamada a uma classe Fachada que por sua vez repassa a
chamada ao Enterprise Java Beans (EJB) do serviço
(ORACLE, 2012). A chamada chega até a camada de
negócios onde as regras são executadas.
É possível ainda a chamada da classe Data Access Object
(DAO) através da Fachada relacionada à classe da camada de
negócios que fará a carga e/ou persistência das informações
no banco de dados. Realizado o processamento na camada de
negócio, a requisição é devolvida para a origem da requisição
e apresentada na interface gráfica.
E) Aplicação TVDI EzEventForGinga-J
Na implementação da aplicação EzEventForGinga-J foi
utilizada a ferramenta de desenvolvimento AstroBox
(ASTROBOX, 2012). Essa ferramanta permite emular um
ambiente de TVDI utilizando-se o middleware Ginga.
A Figura 6 mostra a tela de trabalho da máquina virtual
para o emulador de PC AstroBox que utiliza o middleware
AstroTV baseado no Ginga (ASTROBOX, 2012).
A solução adotada na aplicação TVDI para o consumo de
serviços com protocolo SOAP foi o uso das bibliotecas KSOAP e KXML (KSOAP2, 2012) criadas para a tecnologia Java
ME. Estas bibliotecas são utilizadas por ambientes com poucos recursos computacionais como, por exemplo, aplicações
Java ME e JavaDTV (JAVADTV, 2012).
As bibliotecas KXML e KSOAP permitem aos dispositivos
móveis e TVDI acessarem serviços baseados em XML. Esse
funcionamento acontece através da codificação, serialização e
envio dos métodos e seus argumentos. Esses métodos são
recebidos, decodificados e desserializados de maneira
transparente pelo servidor.
Para o uso da biblioteca KSOAP apenas o código fonte necessário foi incorporado ao projeto para ser compilado com a
aplicação. Foi adotado também o protocolo REST devido à
facilidade no seu uso mesmo usando-se XML.
A aplicação TVDI desenvolvida EzEventForGinga-J possui
então possibilidade de consumo de Web Services via HTTP
tanto em SOAP XML quanto em REST XML. A tarefa de
criar serviços SOAP e RESTFul foi facilitada pelo IDE Netbeans (SILVA, 2012; NETBEANS, 2012).
O IDE Netbeans possui frameworks que automatizam essa
criação e a tornam bem simples para o usuário. Criados os
serviços XML SOAP no ambiente Netbeans, a criação do
XML REST é ainda mais simples. Existe uma operação que
cria o serviço REST a partir do mesmo serviço já criado para
SOAP.
Para o parser do XML a biblioteca KSOAP utiliza outra biblioteca chamada KXML. Também bem simples para uso em
ambientes com pouca capacidade computacional. Já para o
257
T.I.S. 2013; 2 (3): 251-262
Hebert Luchetti Ribeiro, Daniel Lucrédio
Figura 6 – Máquina virtual do emulador AstroBox
Figura 7 – Ícone da aplicação TVDI EzEventForGinga-J
Na janela que emula a tela de uma TV Digital com Ginga a
aplicação TVDI deste trabalho pode ser inicializada selecionando-se o ícone (Figura 7) através do controle remoto da TV
ou com a tecla Enter do computador.
A aplicação TVDI possui um menu de abas com três opções (Figura 8):
•
Login;
•
EzEvent; e
•
Infomação.
A aba Informação, quando selecionada, mostra em uma
janela as informações sobre quais teclas são usadas para
navegar–se pelos menus da aplicação EzEventForGinga-J,
como mostrado na Figura 9. As teclas são usadas no emulador
de PC AstroBox para simular os botões do controle remoto da
TVDI (ASTROBOX, 2012).
A aba Login, quando selecionada, mostra uma janela com
campos onde se pode entrar o nome de usuário e senha para
se conectar ao sistema web. Esse login é necessário somente
para acessar informações não públicas da aplicação EzEvent,
como mostrado na Figura 10. Nessa funcionalidade é
consumido um serviço (Web Service) para se conectar ao
T.I.S. 2013; 2 (3): 251-262
sistema web onde as informações de login estão armazenadas.
Na aba EzEvent é mostrada uma janela com menus que
contêm informações de um evento selecionado. Quando
selecionada essa opção um serviço é requisitado ao servidor de
aplicações para o consumo do mesmo. Este serviço busca os
eventos disponíveis no sistema web.
A Figura 11 apresenta a tela com a lista de eventos, mas
sem a seleção de algum deles. Na região superior se encontram os eventos disponíveis no sistema. Se o usuário escolhe
um dos eventos, são disponibilizados os dados desse evento e
suas atividades programadas na região esquerda e direita do
menu, respectivamente (Figura 12). Nesse momento outro
serviço é consumido pela aplicação para a obtenção dos itens
de programação desse evento.
Quando o usuário seleciona um dos itens do menu de programação do evento uma nova janela é exibida com as informações desse item selecionado. Essa janela pode ser vista na
Figura 13.
Para ter acesso a estes dados de programação um outro
serviço é requisitado e consumido passando-se como
referência o evento e o item de programação selecionados.
258
EzEventForGinga-J - Sites de Eventos via TV Digital Interativa
Figura 8 – Menu de abas da aplicação TVDI com as opções Login, EzEvent e informações
Figura 10 – Opção Login do menu de abas
Figura 9 – Opção Informação do menu de abas
Figura 11 – Janela da opção EzEvent do menu de abas sem um evento selecionado
259
T.I.S. 2013; 2 (3): 251-262
Hebert Luchetti Ribeiro, Daniel Lucrédio
Figura 12 – Janela da opção EzEvent do menu de abas com informações de um
evento selecionado
Figura 13 – Janela da opção EzEvent do menu de abas com
informações de um item da programação selecionado
V. RESULTADOS E DISCUSSÕES
Nesta aplicação TVDI necessitou-se de total controle sobre
o programa, sendo indispensável conhecimento dos recursos
T.I.S. 2013; 2 (3): 251-262
da linguagem de programação. O Ginga-J oferece suporte às
aplicações usando a linguagem Java. Aplicações nesta plataforma requerem domínio da linguagem de programação, pois
todo o fluxo de controle e execução do programa tem que ser
260
EzEventForGinga-J - Sites de Eventos via TV Digital Interativa
informado. O domínio da linguagem Java já era realidade
para o desenvolvedor deste trabalho e o uso do paradigma
declarativo Ginga-NCL do middleware Ginga (GINGA NCL,
2012) traria uma curva de aprendizado maior para a criação
da aplicação. Assim, para o desenvolvimento dos elementos
de software na TVDI, foi escolhido o paradigma procedural
do ambiente Ginga-J (GINGA CDN, 2012).
A escolha pela utilização do emulador AstroBox (ASTROBOX, 2012), desenvolvido pelo pela empresa TOTVS
(TOTVD, 2012), se deu porque o mesmo foi desenvolvido
atendendo as normas ABNT do Ginga e porque seu milddleware AstroNet foi adotado por vários fabricantes de TV brasileiras (IDGNOW, 2012). Como o presente trabalho tem enfoque procedural do padrão Ginga-J, pode ser utilizado como
referência para o desenvolvimento de aplicações seguindo a
especificação dos padrões da ABNT (SBTVD, 2012).
VI. CONCLUSÃO E TRABALHOS F UTUROS
O trabalho desenvolvido atingiu o objetivo de prover um
aplicativo para TVDI de acesso a aplicação web EzEvent e
compatível com a especificação Ginga-J. A interação através
da utilização do canal de retorno através de Web Services
enquadrou-se na especificação. Provou-se também a
utilização da norma Ginga-J para desenvolvimento de
aplicativos em TVDI integrada com outra aplicação web de
gerenciamento de eventos. O funcionamento adequado da
aplicação de TVDI EzEventForGinga-J durante a execução
do mesmo pelo emulador AstroBox (ASTROBOX, 2012) é
uma das provas da conformidade do aplicativo com a norma
do middleware Ginga (SBTVD, 2012).
Outra contribuição deste trabalho é o conhecimento adquirido, que pode ser útil a outros desenvolvedores de aplicações
de TVDI já que material sobre esse assunto ainda é escasso e
está muito disperso na Internet.
Durante o desenvolvimento do trabalho foram encontradas
algumas dificuldades. Em sua maioria devido à falta de
material didático relacionado a Ginga-J. Grande parte do
material está disperso na Internet e livros de referência não
existem.
Outra dificuldade foi no consumo de serviços com
protoco-lo SOAP. No ambiente do Ginga-J não existe uma
biblioteca nativa para esses acessos. Foi necessário então o
uso de bi-blioteca KSOAP (KSOAP, 2012) criada para a
tecnologia Java ME. Foi observado que o protocolo REST
facilita o consumo das operações dos serviços diretamente
via HTTP, sem a necessidade de bibliotecas de acesso
(SILVA, 2012), portanto optou-se pela criação também dos
serviços neste protocolo.
Durante os testes e validações das aplicações não foi possível utilizar-se de um dispositivo físico compatível com a norma Ginga-J (GINGA CDN, 2012) para a execução da aplicação, ou seja, TV Digital/Set-top Box com middleware Ginga.
Por esse motivo, as aplicações foram executadas apenas no
emulador AstroBox (ASTROBOX, 2012).
Durante o desenvolvimento desse trabalho constatou-se
que seria útil a criação da funcionalidade de visualização de
vídeos das palestras já realizadas nos eventos que disponibili-
zassem esse recurso. No entanto, após uma pesquisa realizada
sobre os recursos para se exibir vídeos no ambiente TVDI
constatou-se que, até o momento da escrita deste artigo, o
emulador AstroBox não possuía essa característica pois o seu
middleware não continha a implementação para isso. Segundo
os desenvolvedores do AstroBox (ASTROBOX, 2012), essa
funcionalidade estará presente nas próximas versões
(TOTVD, 2012).
Já no outro emulador estudado neste trabalho, o OpenGinga
(OPENGINGA, 2012), a mesma funcionalidade existe e
funciona bem. Assim, como trabalho futuro, sugere-se a
conversão da aplicação desenvolvida neste trabalho do
AstroBox para o OpenGinga e ter acesso a rodar vídeos no
ambiente TVDI enquanto o AstroBox não integrar essa
funcionalidade.
Além disso, existe a possibilidade do uso de equipamentos
físicos com Ginga-J e não somente no emulador para PC.
Executando as aplicações no dispositivo físico obteríamos
melhores respostas de visualização das telas e interferências
das mesmas na visualização da programação da TV.
Pode-se também substituir, no protocolo de serviço REST,
as mensagens no formato XML para o formato JavaScript
Object Notation (JSON). O JSON é considerado um recurso
bem eficiente, porque permite transportar um objeto serializado e complexo transformando-o num objeto simples de
manipular. As mesmas mensagens geradas em XML são
menos complexas e menores em JSON (FONSECA;
SIMÕES, 2007). Existem poderosos parsers para JSON em
todos os grandes browsers de Internet do mercado, e portanto
esta opção é bastante promissora também no contexto de TV
digital.Outra possibilidade de extensão deste trabalho é a
ampliação dos serviços disponíveis no sistema de eventos para
outras funcionalidades existentes no sistema web e que não
são atendidas via TVDI.
REFERÊNCIAS
ANDREATA, J. A. InteraTV: Um Portal para Aplicações
Colaborativas em TV Digital Interativa Utilizando
Plataforma MHP. 2006. 110 f. Dissertação (Mestrado em
Engenharia Elétrica) - Universidade Federal de Santa
Catarina, Florianópolis, 2006.
ARAÚJO, R. V. L. Proposta de Aplicativo para TV Digital
Interativa de Acesso a Plataforma Ushahidi no Controle do
Trânsito nas Grandes Cidades. 2011. Trabalho de
Conclusão de Curso (Tecnólogo em Análise e
Desenvolvimento de Sistemas) Instituto Federal de
Educação, Ciência e Tecnologia do Piauí, Teresina, 2011.
ASTROBOX.
Disponível
em:
<https://www.astrodevnet.com.br/AstroDevNetForum/foru
ms/list.page>. Acesso em: 10 ago. 2012.
BARRÉRE, E.; LEITE, P. M. Metodologia de Integração
entre Aplicações Web e Aplicações para TV Digital. 2009.
Disponível
em:
<http://www.aedb.br/seget/artigos09/193_Web_TVDI.pdf
>. Acesso em: 03 set. 2012.
BATISTA, C. E. TV Digital - Java na sala de estar. Mundo
Java, Curitiba, n. 17, ano III - Editora Mundo, p. 30-39,
261
T.I.S. 2013; 2 (3): 251-262
Hebert Luchetti Ribeiro, Daniel Lucrédio
2006.
BOLAÑO, C. R. S.; BRITTOS, V. C. A televisão brasileira
na era digital: exclusão, esfera pública e movimentos
estruturantes. 1. ed. São Paulo: Paulus, 2007, v. 1, 324 p.
DAMASCENO, J. R. Middleware Ginga, Escola de
Engenharia – Universidade Federal Fluminense (UFF),
Niterói, RJ, 2010.
DTN. Site Oficial da TV Digital. Disponível em:
<http://www.dtv.org.br>. Acesso em: 03 mar. 2012.
FERNANDES, J.; LEMOS, G.; SILVEIRA, G.: Intrdução à
Televisão Digital Interativa: Arquitetura, Protocolos,
Padrões e Práticas. In: XXII Jornada de Atualização em
Informática do XXIV Congresso da Sociedade Brasileira
de Computação (JAI-SBC), Salvador, 2004.
FONSECA, R., SIMÕES, A. Alternativas ao XML: YAML e
JSON. In: XATA 2007-5ª Conferência Nacional em XML,
Aplicações e Tecnologias Aplicadas, p. 33-46, fev. 2007.
GEROSA, M. A.; BARRETO, C. G.; FUKS, H.; LUCENA,
C. J. P. Integração do AulaNet com a TV Digital. In:
XVIII Simpósio Brasileiro de Informática na Educação SBIE 2007, São Paulo, 28-30 nov.
GINGA
NCL.
Disponível
em:
<http://www.gingancl.org.br/pt-br>. Acesso em: 27 mar.
2012.
GINGA CDN. Disponível em: <http://ginga.lavid.ufpb.br>.
Acesso em: 03 mai. 2012.
GLASSFISH. Disponível em: <http://glassfish.java.net/>.
Acesso em: 03 OUT. 2012.
IBGE. Pesquisa Nacional por Amostra de Domicilios.
Instituto Brasileiro de Geografia e Estatistica. 2010.
Disponível
em:
<http://www.censo2010.ibge.gov.br/resultados_do_censo
2010.php>. Acesso em: 12 set. 2012.
IDGNOW. TV Digital: Totvs e PUC vendem 3 milhões de
licenças
do
Ginga.
Disponível
em:
<http://idgnow.uol.com.br/ti-pessoal/2012/07/13/tvdigital-totvs-vende-3-milhoes-de-licencas-do-ginga/>.
Acesso em: 12 ago. 2012.
ITVBR. Engenharia de Sistemas. Disponível em:
<http://www.itvbr.com.br>. Acesso em: 03 mai. 2012.
JAVA
BUILDING.
Disponível
em:
<http://sergiotaborda.javabuilding.com/2011/05/mvconde-e-como/ >.Acesso em: 12 set. 2012.
JAVADTV.
Disponível
em:
<http://www.tvdi.inf.br/site/artigos/Normas%20ABNT/15
606-6-Middleware.pdf>. Acesso em: 02 mar. 2012.
KSOAP2. Disponível em: < http://ksoap2.sourceforge.net/>.
Acesso em: 02 set. 2012.
KRASNER, G. E.; POPE, S. T. A Cookbook for Using the
Model-View Controller User Interface Paradigm in
Smalltalk-8O. Journal of Object-Oriented Programming,
v.1, p. 26-49. 1988.
LAVID - Laboratório de Aplicações de Vídeo Digital.
Disponível em: <http://www.lavid.ufpb.br/>. Acesso em:
26 fev.2012.
MARTINI, M. E. Aplicativo Para TV Digital Interativa de
Acesso ao Twitter, 2010.Trabalho de Conclusão de Curso
T.I.S. 2013; 2 (3): 251-262
(Bacharelado em Ciências da Computação) Centro de
Ciências Exatas e Naturais, Universidade Regional de
Blumenau, Blumenau.
MONTEZ, C; BECKER, V. TV Digital Interativa: Conceitos,
Desafios e Perspectivas para o Brasil. Florianópolis: Ed.
UFSC, 2006, 2ª ed. 200 p.
NETBEANS. Desenvolvimento de serviços da Web.
Disponível em: <http://netbeans.org/features/web/webservices_pt_BR.html>. Acesso em: 02 out. 2012.
OPENGINGA.
Disponível
em:
<http://ginga.lavid.ufpb.br/news/13>. Acesso em: 15 mar.
2012.
ORACLE.
Disponível
em:
<http://www.oracle.com/technetwork/java/javaee/ejb/inde
x.html>.Acesso em: 12 set. 2012.
PAULINELLI, F.; KULESZA, R. Histórico Ginga-J. João
Pessoa,
2009.
Disponível
em:
<http://gingacdn.lavid.ufpb.br/projects/47/wiki/GingaJ_History>. Acesso em: 05 set. 2012.
SBTVD. Fórum do Sistema Brasileiro de TV Digital
Terrestre.
Disponível
em:
<http://www.forumsbtvd.org.br>. Acesso em: 03 mai.
2012.
SCHROEDER, E. Desenvolvimento de servidor de RSS para
TV digital interativa. 2007. 73 f. Trabalho de Conclusão
de Curso (Bacharelado em Ciências da Computação).
Centro de Ciências Exatas e Naturais, Universidade
Regional de Blumenau, Blumenau.
SILVA, B. L. P. Web Service REST. Disponível em:
<http://www.linhadecodigo.com.br/artigo/2059/webservices-rest.aspx>. Acesso em: 09 set. 2012.
SNELL, J.; TIDWELL, D.; KULCHENKO, P. Programming
Web Services with SOAP. O’Reilly & Associates, Inc.,
2001.
SOUZA FILHO, G. L. de; LEITE, L. E. C.; BATISTA, C. E.
C. F. Ginga-J: The Procedural Middleware for the
Brazilian Digital TV System. In: Journal of the Brazilian
Computer Society, 2007, Porto Alegre, n. 4, v. 13. p. 4756, 2007.
TELEMIDIA. Disponível em: <http://www.telemidia.pucrio.br/>. Acesso em: 25 fev.2012.
TOTVD.
Disponível
em:
<http://www.tqtvd.com/novo/br/index.html>. Acesso em:
05 set. 2012.
TWITTER
DEVELOPERS.
Disponível
em:
<https://dev.twitter.com/docs>. Acesso em: 05 set. 2012.
USHAHIDI.
Disponível
em:
<http://www.ushahidi.com/about-us/press-kit>.Acesso em:
10 jan. 2011.
VIRTUALBOX.
Disponível
em:
<https://www.virtualbox.org/ >. Acesso em: 10 ago. 2012.
ZANCANARO, A. Conhecimento envolvido na construção de
conteúdo para TV Digital Interativa na EaD. 2011. 196 f.
Dissertação (Mestrado). Departamento de Engenharia do
Conhecimento, Universidade Federal de Santa Catarina,
Florianópolis, 2011.
262

Documentos relacionados

Segurança da informação para o ambiente do Sistema Brasileiro de

Segurança da informação para o ambiente do Sistema Brasileiro de empresas e dos provedores de serviços. O novo ambiente e o avanço na implantação da TV digital descortinam um cenário com diversas possibilidades, oportunidades e desafios a serem enfrentados, como...

Leia mais