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
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