DESENVOLVIMENTO DE APLICAÇÕES PARA TV DIGITAL COM GINGA E JAVA

Tamanho: px
Começar a partir da página:

Download "DESENVOLVIMENTO DE APLICAÇÕES PARA TV DIGITAL COM GINGA E JAVA"

Transcrição

1 UNIVERSIDADE DO PLANALTO CATARINENSE DEPARTAMENTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE SISTEMAS DE INFORMAÇÃO (BACHARELADO) WAGNER LUSA MENDES DESENVOLVIMENTO DE APLICAÇÕES PARA TV DIGITAL COM GINGA E JAVA LAGES (SC) 2009

2 WAGNER LUSA MENDES DESENVOLVIMENTO DE APLICAÇÕES PARA TV DIGITAL COM GINGA E JAVA Trabalho de Conclusão de Curso submetido à Universidade do Planalto Catarinense para obtenção dos créditos de disciplina com nome equivalente no curso de Sistemas de Informação - Bacharelado. Orientação: Prof. Wilson Castello Branco Neto, Dr. LAGES (SC) 2009

3 WAGNER LUSA MENDES DESENVOLVIMENTO DE APLICAÇÕES PARA TV DIGITAL COM GINGA E JAVA ESTE RELATÓRIO, DO TRABALHO DE CONCLUSÃO DE CURSO, FOI JULGADO ADEQUADO PARA OBTENÇÃO DOS CRÉDITOS DA DISCIPLINA DE TRABALHO DE CONCLUSÃO DE CURSO, DO 8º. SEMESTRE, OBRIGATÓRIA PARA OBTENÇÃO DO TÍTULO DE: BACHAREL EM SISTEMAS DE INFORMAÇÃO Lages (SC), 01 de julho de 2009 Prof. Wilson Castello Branco Neto, Dr. Orientador BANCA EXAMINADORA: Prof. Marcos André Pishing, M.Sc. UNIPLAC Prof. Daiana Petry Leite, MSc. UNIPLAC Prof. Wilson Castello Branco Neto, Dr. Professor de TCC Prof. Angelo Augusto Frozza, M.Sc. Coordenador de Curso

4 Dedico a minha esposa, pais e filhos que me apoiaram, incentivaram e dividiram o peso destes quatro anos de jornada, para a realização de um sonho, o qual esta se realizando hoje, obrigado.

5 Agradeço aos mestres e amigos que ao longo destes quatro anos nos mostraram o caminho da sabedoria, nos incentivaram, nos cobraram para hoje ver o resultado dos seus esforços em formar e informar cidadãos melhores para a sociedade e o mercado de trabalho. Obrigado.

6 Uma paixão forte por qualquer sonho assegurará o sucesso, porque o desejo pelo objetivo mostrará os meios. (William Hazlitt).

7 LISTA DE ILUSTRAÇÕES FIGURA 1 - Arquitetura do Ginga FIGURA 2 - Ciclo de vida de um Xlet FIGURA 3 - XletView FIGURA 4 - Propriedades do projeto FIGURA 5 - Adicionando as bibliotecas FIGURA 6 - Tela inicial XLetIMC FIGURA 7 - Painel inferior FIGURA 8 - Método calcular executado FIGURA 9 - Hierarquia de classes FIGURA 10 - Tela Inicial do protótipo Show de Calouros FIGURA 11 - Container Cantores FIGURA 12 - Container Votar FIGURA 13 - Container resultado QUADRO 1 - Código contendo a declaração dos imports necessários QUADRO 2 - Declaração da classe e dos componentes QUADRO 3 - Código mostrando o método initxlet QUADRO 4 - Código do método startxlet QUADRO 5 - Método getpanelmenurodape QUADRO 6 - Código ButtonCalcular QUADRO 7 - Código do método calcularimc QUADRO 8 - Código do método keypressed QUADRO 9 - Código do método destroyxlet QUADRO 10 - Declaração dos imports da classe ShowDeCalourosXlet.java QUADRO 11 - Método initxlet QUADRO 12 - Método startxlet QUADRO 13 - Métodos pausexlet e destroyxlet QUADRO 14 - Método keypressed QUADRO 15 - Declaração dos imports da classe ContainerPrincipal.java QUADRO 16 - Declaração da classe ContainerPrincipal QUADRO 17 - Construtor da classe ContainerPrincipal.java QUADRO 18 - Método keypressed da classe ContainerPrincipal.java QUADRO 19 - Imports da classe VideoPlayer.java... 49

8 QUADRO 20 - Declaração da classe VideoPlayer.java QUADRO 21 - Construtor da classe VideoPlayer.java QUADRO 22 - Métodos que gerenciam a execução dos vídeos

9 LISTA DE ABREVIATURAS E SIGLAS ABNT Associação Brasileira de Normas Técnicas ACATS Adivisory Commitee on Advanced Television API Application Programming Interface ATSC Advanced Television Systems Committee AWT Abstract Window Toolkit CA Conditional Access CC Common-Core CD Compact Disc CDC Connected Device Configuration DAVIC Digital Audio Video Council DVB Digital Video Broadcasting DVD Digital Video Disc HAVi Home Audio Video Interoperability HD High Definition HDMI High Definition Multimedia Interface IDE Integrated Developement Environment IPTV Internet Protocol Television ISDB Integrated Services Digital Broadcasting JDK Java Development Kit JEE Java Enterprise Edition JME Java Micro Edition JMF Java Media Framework JSE Java Standard Edition JVM Java Virtual Machine LCD Liquid Crystal Display MHP Multimedia Home Platform NASA National Aeronautics and Space Administration NBR Norma Brasileira NCL Nested Context Language NCM Nexted Context Model PUC-RJ Pontifícia Universidade Católica do Rio de Janeiro SET/ABERT Sociedade de Engenharia de Televisão /Associação Brasileira de Emissoras de Rádio e Televisão SI Service Information

10 TV UFPB W3C XML Televisão Universidade Federal da Paraíba World Wide Web Consortium Extensible Markup Language

11 RESUMO A transmissão de sinais televisivos é de fundamental importância para a propagação de informações, entretenimento e cultura no Brasil e no mundo. A TV Digital, além de uma maior qualidade nesta transmissão, tem como grande diferencial a capacidade de fornecer aos telespectadores novos serviços que antes não eram possíveis no sistema analógico, como a interatividade. Com ela, o telespectador deixa de ser um mero espectador e passa a interagir com a programação, podendo também usufruir de uma variedade de serviços computacionais através da TV. Em 2006, o governo brasileiro criou o Sistema Brasileiro de Televisão Digital o SBTVD, com base no padrão Japonês. Como o padrão brasileiro chegou depois dos internacionais, este pôde inovar utilizando tecnologias mais recentes, criando o Middleware Ginga. Com o rápido surgimento da TV Digital no Brasil surgiu à dúvida de qual padrão adotar, após estudos adotou-se o padrão japonês, dentre outros fatores o mais influenciou foi o não pagamento de royalties. Com isso, surge o problema da falta de conhecimento deste novo padrão por parte dos desenvolvedores de aplicações para TV Digital, o que leva as empresas desenvolvedoras destas aplicações a encontrar muita dificuldade em contratar mão-de-obra especializada. O objetivo é realizar um estudo técnico a cerca do padrão adotado no Brasil para a TV Digital e, com base neste estudo, desenvolver diferentes tipos de aplicações fazendo uso do Middleware Ginga e da API JavaTV. Enfim é demonstrada a construção do primeiro protótipo, o qual tem como finalidade calcular a massa corporal de uma pessoa, apresentando se esta pessoa esta acima, abaixo ou esta com o peso normal. Em seguida é apresentada a criação do segundo protótipo, que tem como objetivo a interação do telespectador com um programa de show de calouros. Estes protótipos demonstram parte do potencial desta nova tecnologia. O mercado de TV Digital mostra-se muito promissor para os próximos anos, tendo em vista que hoje em dia há poucas empresas desenvolvendo aplicativos com possibilidades de interação com o usuário. Prevista para o ano de 2009 a interação por parte do telespectador, resultará numa busca por mão-de-obra especializada e softwares interativos. Palavras-chave: TV Digital, Java, Ginga, Desenvolvimento de Aplicações.

12 ABSTRACT The broadcasting of televising signals has fundamental importance for the propagation of information, entertainment and culture in Brazil and around the world. Digital TV, besides a better quality in this transmission, has as great differential the capacity to supply to the new viewers services that before were not possible in the analogical system, as interactivity. Thus, the viewer is not a mere spectator but interacts with the programming, also being able to usufruct a variety of computational services through TV. In 2006, the Brazilian government created the Brazilian Digital TV System - SBTVD, on the basis of the Japanese standard. As the Brazilian standard arrived after the international ones, it could innovate using more recent technologies, creating the Ginga middleware. With the sprouting of the Digital TV in Brazil it appeared a doubt of which standard to adopt; after studies it was adopted the Japanese standard due to the no payment of royalties. With that, there was a problem on the lack of knowledge about this new standard on the part of the researchers for Digital TV, what takes the development companies of those applications to find a lot of difficulty in contracting specialized handwork. The objective of this study is to make a technician study about the standard adopted in Brazil for Digital TV, based of this research, developing different types of applications making use of the Ginga middleware and Java TV API. So, the construction of the first archetype is demonstrated, which has as purpose to calculate the corporal mass of a person, presenting if this person is over, above or with the normal weight. After that, it is presented the creation of the second archetype, which has as objective the interaction of the viewer with a talk show. These archetypes demonstrate part of the potential of this new technology. The market of Digital TV reveals itself very promising for the next years, because of nowadays there are few companies developing applicatory with possibilities of interaction with the user. Foreseen for the year of 2009, the interaction on the part of the viewer will result in a search for specialized handwork and interactive software. Keywords: Digital TV, Java, Ginga, Development of Applications.

13 SUMÁRIO 1 INTRODUÇÃO Apresentação Descrição do problema Justificativa Objetivo geral Objetivos específicos Metodologia TV DIGITAL Conceitos básicos Tecnologias envolvidas O middleware Ginga Linguagem NCL Linguagem Java API JavaTV Conclusão DESENVOLVIMENTO E APRESENTAÇÃO DOS PROTÓTIPOS Ferramentas Utilizadas Configurando o ambiente Protótipo 1 - Aplicação que calcula massa corporal Protótipo 2 Aplicação para programa de show de calouros Conclusão CONSIDERAÇÕES FINAIS REFERÊNCIAS BIBLIOGRÁFICAS APÊNDICES... 57

14 13 1 INTRODUÇÃO 1.1 Apresentação Além de uma maior qualidade na transmissão, o grande diferencial da TV Digital é a capacidade de fornecer aos telespectadores novos serviços que antes não eram possíveis no sistema analógico. Dentre estes serviços, destacam-se: as recepções móveis; a gravação de programas no próprio aparelho, mesmo quando o espectador estiver assistindo outro canal; o acesso à Internet; jogos; enquetes; compras, entre outros. Desde 1994, 17 emissoras de televisão e pouco mais de uma dezena de empresas interessadas criaram o grupo SET/ABERT (Sociedade de Engenharia de Televisão) /(Associação Brasileira de Emissoras de Rádio e Televisão) e, juntamente com a Universidade Mackenzie, passaram a pesquisar os três sistemas de transmissão de TV Digital: o modelo ATSC (Advanced Television Systems Comittee) americano, o modelo DVB (Digital Video Broadcasting) europeu e o modelo ISDB (Integrated Services Digital Broadcasting) japonês. O ano de 1996 ficou marcado pela chegada ao Brasil da DirecTV padrão DVB, primeiro sistema de TV Digital no país, porém pago e inacessível à maioria da população. No final daquele ano chegou a SKY, também com o padrão europeu (DVB), para competir nesse mercado (TELEVISÃO, 2008). Atualmente existem diferentes modelos, sistemas e padrões de TV Digital no mundo. No Brasil, a definição final do padrão adotado dependeu da harmonização de

15 14 um modelo (arcabouço legal e institucional) e de diferentes sistemas (tecnologias de software e hardware). A legislação brasileira foi bastante flexível com relação à portabilidade da televisão digital no Brasil, permitindo a sua utilização nos mais variados dispositivos (TELEVISÃO, 2008). A interatividade da TV Digital é possibilitada pela execução de programas sobre um middleware instalado no aparelho conversor, o set-top Box. Especificamente para o padrão brasileiro, foi criado o middleware Ginga, camada de software intermediária e open source que permite o desenvolvimento de aplicações NCL (Nested Context Language) e Java interativas para a TV Digital de forma independente da plataforma de hardware dos fabricantes de terminais de acesso (settop Box) (GINGA, 2008). O JavaTV é uma plataforma para o desenvolvimento e distribuição de serviços para televisão digital interativa, composto por um conjunto de APIs (Application Programming Interface). Por se tratar de uma API Java, possui um alto nível de controle e flexibilidade sobre o aspecto e comportamento das aplicações, tornando possível o desenvolvimento de aplicações interativas. Desenvolvido pela Sun Microsystems, em parceria com empresas do ramo da televisão digital, o JavaTV é uma extensão da plataforma Java, que visa atender às funcionalidades dos receptores (set-top Box) de televisão digital interativa, como: streaming de áudio/vídeo; acesso mediante identificação (CA - Conditional Access); acesso às Informações de Serviço (SI - Service Information); controle e troca do canal do receptor; controle dos gráficos na tela, entre outros. As aplicações desenvolvidas em Java com a API JavaTV são chamadas de Xlets (JAVATV, 2007). O estudo e o desenvolvimento de aplicações baseadas no Ginga e no JavaTV são os temas abordados ao longo deste trabalho que se divide em 4 capítulos. O primeiro capítulo é uma apresentação geral do problema abordado e dos objetivos a serem atingidos neste trabalho. O segundo capítulo apresenta um estudo sobre a TV Digital, com destaque para o middleware Ginga, Java e a API JavaTV. O terceiro capítulo descreve a implementação dos protótipos desenvolvidos. O quarto capítulo contém as conclusões do trabalho.

16 Descrição do problema O rápido surgimento da televisão digital no Brasil, juntamente com a existência de diversos padrões em todo mundo, gerou a dúvida de qual a melhor solução para o país, em termos de tecnologia a ser utilizada. Após vários estudos e discussões optou-se por adotar o padrão Japonês (ISDB - Integrated Services Digital Broadcasting) de transmissão, entre outros motivos, por não ser necessário o pagamento de royalties. Para tanto, foi criado um Middleware nacional, chamado Ginga, que serve de base para as aplicações desenvolvidas para esta tecnologia. Com isso, surge o problema da falta de conhecimento deste novo padrão por parte dos desenvolvedores de aplicações para TV Digital, o que leva as empresas desenvolvedoras destas aplicações a encontrar muita dificuldade em contratar mão-deobra especializada. 1.3 Justificativa O Brasil esteve por muito tempo atrasado em termos de tecnologia, inclusive a de comunicação. Somente na década de noventa apareceram os primeiros serviços digitais, através de sistemas pagos e com custo acima do poder aquisitivo da grande maioria da população. Atualmente, com a convergência dos meios de comunicação multimídia e a busca do Governo pela democratização da informação, a TV Digital Interativa parece ser a porta de entrada para esses usuários historicamente excluídos da era digital A TV Digital oferece para o usuário não apenas melhor qualidade de imagem e som, mas também uma gama de novos serviços e aplicações de entretenimento e de informações. Assim sendo, a adoção da TV Digital no Brasil aliada ao avanço da tecnologia poderá permitir que serviços e aplicações sejam disponibilizados mesmo em localidades remotas, contribuindo para a universalização e democratização de informações e serviços eletrônicos, permitindo a inclusão social de uma parcela maior da população brasileira (JUCÁ, LUCENA e FERRAZ, 2006). Com base neste histórico de exclusão digital, o Governo Federal optou por

17 16 desenvolver a TV digital no Brasil, como forma de contribuir para a inclusão digital de forma mais simples do que ocorre com outras tecnologias, como o computador. Para facilitar a integração de todas as pessoas, independente da sua familiaridade com a tecnologia, optou-se pela adoção de um padrão de Middleware totalmente novo, pois os padrões existentes em outros países já são utilizados há muitos anos e a interatividade dos usuários com eles é muito mais avançada, proporcionando interações mais sofisticadas, porém complexas. Se aplicados no Brasil, esses padrões poderiam causar uma certa resistência dos futuros usuários, uma vez que apenas uma pequena parcela da população já possui algum contato com a TV interativa ou mesmo com outras tecnologias de interação, como a Internet (JUCÁ, LUCENA e FERRAZ, 2006). Com esse intuito, foi criado um padrão próprio de middleware, chamado Ginga, para interagir com o equipamento de recepção, set-top Box, adaptado para o Brasil. Este padrão oferece uma interação mais simples e fácil de ser utilizada, de acordo com a realidade dos usuários do Brasil. A adoção de um padrão totalmente novo de software de comunicação com o receptor leva à criação de tecnologias específicas para esse padrão, tanto em termos de infra-estrutura, como para desenvolvimento de aplicações. Isso se traduz em falta de conhecimento do padrão específico adotado no Brasil, entre os profissionais relacionados às tecnologias de comunicação. Como a área de comunicação é um mercado muito abrangente, a falta de profissionais com conhecimento sobre este padrão já assola a maioria das empresas e a tendência é aumentar a demanda de mãode-obra (JUCÁ, LUCENA e FERRAZ, 2006). A pesquisa através da Internet parece ser a principal, se não a única fonte de informações. Os principais sites para obter informações a respeito são: o site da Sun Microsystems (JAVATV, 2007), no qual se encontra vasta documentação sobre a API JavaTV; o site da PUC-RJ - Pontifícia Universidade Católica do Rio de Janeiro (PUC- RJ, 2008) que, em conjunto com a Universidade Federal de Paraíba, vem desenvolvendo o Middleware Ginga (GINGA, 2008) e a própria Universidade Federal de Paraíba (UFPB, 2008). Estas fontes possuem vários artigos e documentações

18 17 relacionados ao Ginga e à API JavaTV, como também exemplos básicos de aplicações para a TV Digital. Apesar das informações disponibilizadas nestes sites, é importante o estudo contínuo sobre estas tecnologias, para que novos documentos com informações sobre os recursos sejam elaborados e disponibilizados em locais públicos estratégicos visando suprir a necessidade de documentos e exemplos com o uso destas tecnologias. Dessa forma, esse material pode auxiliar para que profissionais das áreas afins possam interar-se do assunto de forma fácil e rápida, com textos e implementações usando a API JavaTV e o Middleware Ginga. 1.4 Objetivo geral Realizar um estudo técnico a cerca do padrão adotado no Brasil para a TV Digital e, com base neste estudo, desenvolver diferentes tipos de aplicações fazendo uso do Middleware Ginga e da API JavaTV. 1.5 Objetivos específicos Os objetivos específicos deste trabalho estão descritos a seguir: a) Apresentar como são desenvolvidas aplicações para TV Digital com o padrão exclusivo de Middleware adotado no Brasil; b) Explorar as potencialidades do Middleware Ginga e da API JavaTV; c) Desenvolver protótipos para a interação do usuário com a televisão digital, através das tecnologias citadas no item anterior. 1.6 Metodologia Primeiramente, foi realizado um estudo sobre a TV Digital, seu histórico pelo mundo, seus diversos padrões e as tecnologias adotadas nos principais padrões. Paralelamente, foi estudado o Ginga, Middleware criado no Brasil, o histórico do seu

19 18 desenvolvimento, o seu diferencial em relação aos Middleware existentes e a tecnologia adotada em sua criação. Após adquirir o conhecimento básico sobre o assunto com estes estudos, foi realizado um aprofundamento sobre a API do Java, o JavaTV, a qual foi a base do desenvolvimento de aplicações interativas para TV Digital. Com base neste estudo foi feita a redação do Capítulo 2, que aborda todos estes tópicos. O próximo passo foi a modelagem das aplicações a serem desenvolvidas ao longo do trabalho. Após concluir a modelagem das aplicações, começou a etapa de implementação das mesmas, adotando-se nesta etapa, as seguintes tecnologias: Ginga para a comunicação com o receptor; Java para linguagem de programação, a API JavaTV como principal biblioteca; o Eclipse 3.4 Ganymede como ferramenta de desenvolvimento; e para emular o set-top Box o XletView. Concluída a etapa de desenvolvimento, foram realizados os testes para correção de possíveis erros. Concluída a fase de testes, foi feita a redação do capítulo três, que descreve as aplicações desenvolvidas e os resultados dos testes. Por fim, foram elaboradas as conclusões deste trabalho, as quais são apresentadas no Capítulo quatro.

20 19 2 TV DIGITAL Este capítulo tem como objetivo apresentar algumas das tecnologias envolvidas na transmissão e captação de sinal digital para TV (Televisão). Ele aborda, primeiramente, o modo analógico e como começou a transmissão do sinal televisivo. Em seguida, descreve como começou a transmissão digital no mundo e sua evolução. Ainda neste capítulo são apresentadas as tecnologias com as quais é possível se transmitir e receber o sinal digital como: set-top Box, aparelho responsável pela conversão do sinal digital para a Televisão, o Middleware Ginga, software responsável pela comunicação entre o software aplicativo e o hardware, no caso o set-top Box, e a linguagem Java e a API (Application Program Interface) JavaTV. 2.1 Conceitos básicos A televisão, no mundo, vem evoluindo de forma lenta. Em março de 1935 iniciou-se oficialmente as transmissões de televisão na Alemanha e, em novembro na França, sendo a Torre Eiffel o posto emissor (TELEVISÃO, 2008). Primeiramente, existia apenas imagem Preto/Branco. Depois, agregou-se o som à imagem ainda em Preto/Branco e, apenas após alguns anos, criou-se a televisão colorida. As transmissões regulares em cores começaram, nos Estados Unidos, em 1954 (TELEVISÃO, 2008). A transmissão de tudo isso, porém, ocorria de forma analógica. Na transmissão analógica são utilizadas ondas eletromagnéticas contínuas, sendo estas uma combinação de um campo elétrico e um campo magnético que se propagam através do espaço transportando energia, análogas aos sinais originais (TV-

21 20 ANALOGICA, 2008). Depois de muitos anos transmitindo desta forma, em 1987, pesquisadores nos Estados Unidos iniciaram estudos com o objetivo de desenvolver novos conceitos no serviço de televisão. Foi então criado o ACATS (Adivisory Commitee on Advanced Television) (TELEVISÃO, 2008). Em 1993, sete empresas e instituições participantes dos testes (AT&T, GI, MIT, Phillips, Sarnoff, Thomson e Zenith) se uniram formando a Grande Aliança para desenvolver um padrão juntas. Desenvolveram, então, a primeira forma de transmissão e recepção de TV Digital: o padrão ATSC (Advanced Television Systems Comittee). Essa mudança na forma de transmitir de analógico para digital trouxe como benefício imediato a qualidade da imagem e som (RAIO X, 2007). Na transmissão digital é utilizada uma corrente de bits, em código binário, formada de zeros e uns, ou seja, a mesma linguagem digital dos computadores, dos CDs (Compact Disc), dos DVDs (Digital Video Disc) e do celular. Conversores transformam as ondas eletromagnéticas contínuas do sinal analógico, que representam sons, imagens, fotos, gráficos, textos, vídeos em bits (TV-ANALOGICA, 2008). Esta tecnologia possibilita, assim, uma transmissão de imagem e som de alta qualidade, onde a onda é codificada em bits, diferentemente da forma de transmissão analógica que é feita através de propagação de ondas, que podem se perder, e são de difícil recuperação. Já na transmissão digital, quando uma parte do sinal é perdida a mesma pode ser recuperada, já que a onda está representada em código binário, sendo reconstituída antes de mostrar a imagem. No final de 1993, os europeus também decidiram desenvolver um padrão totalmente digital e criaram o padrão DVB (Digital Video Broadcasting), que, além de melhorar a qualidade do sinal, permitia alguma interação com o usuário (RAIO X, 2007). Só em 1997, os Japoneses decidiram desenvolver o seu padrão digital: o padrão ISDB (Integrated Services Digital Broadcasting), que entrou em operação com transmissão via satélite em Este padrão agrega à qualidade da transmissão digital, a interação com o usuário e a possibilidade de se transmitir em aparelhos

22 21 móveis em velocidade, como dentro de um carro, trem ou avião, além de transmitir inúmeros programas simultaneamente de acordo com os canais de transmissão (RAIO X, 2007). No Brasil, a história da TV Digital começou com a DirecTV que adota o padrão Europeu. Logo em seguida veio a Sky, também com o padrão europeu e, em 2008, a TV aberta com base no sistema Japonês, o qual possibilita uma maior interação com os usuários (TELEVISÃO, 2008). Um dos fatores que influenciou na escolha do padrão japonês, além do não pagamento de royalties, foi justamente a interação com o usuário. Desta forma, o governo pretende incluir usuários excluídos da era digital, já que, praticamente, toda a população possui um ou mais aparelho de televisão em casa. Os serviços serão oferecidos não só pelas emissoras, mas também pelo governo, tanto para programas sociais, como jurídicos e burocráticos. Já as emissoras terão jogos interativos com os telespectadores, pesquisas de opiniões, venda de produtos e serviços na hora que eles aparecem para o telespectador, como hoje são as propagandas. Todos estes serviços serão disponibilizados através de aplicativos de software. Os aplicativos para TV Digital podem ter os mais variados objetivos, assim como é na computação, mas pode-se destacar como mais relevantes, os aplicativos de interação com o telespectador como: enquete, guia de programação das emissoras, pesquisas ao vivo, gravação de programas, jogos on-line e off-line, compras entre outros. 2.2 Tecnologias envolvidas Para que a recepção do sinal digital seja possível, algumas mudanças nos aparelhos de TV são necessárias, já que os mesmos estão preparados somente para captar o sinal analógico. Para isso foi criado um aparelho receptor chamado set-top Box. O set-top Box é um aparelho eletrônico, na sua grande maioria, dotado de

23 22 processador, memória volátil e não-volátil, entradas e saídas, responsável por captar o sinal digital e converter para a TV (TV DIGITAL, 2007). Há dois tipos de conversores no mercado. Os mais simples contam apenas com saída de áudio/vídeo e, por isso, são indicados para televisores de tubo. O outro modelo de conversor, mais caro, que tem duas saídas uma de áudio/vídeo e outra HDMI (High Definition Multimedia Interface), é recomendado para quem possui TV de plasma e LCD (Liquid Crystal Display) com resoluções de 720 ou linhas. Porém, esses modelos mais caros podem ser usados também para os televisores convencionais, pois têm saída de áudio/vídeo (TV DIGITAL, 2007). Há aparelhos de TV de três tipos à venda. Os de definição padrão podem exibir uma imagem melhor que a analógica; os HD Ready têm resolução ainda melhor e os Full HD são os únicos preparados para exibir a alta definição, com uma imagem seis vezes superior à atual. Qualquer um destes aparelhos pode vir com o set-top Box embutido ou não (TV DIGITAL, 2007). É no set-top Box onde estão as aplicações e o Middleware. Este é a camada de software localizada entre as aplicações e o sistema operacional ou entre um software e um hardware. No caso da TV Digital, o Middleware foi desenvolvido totalmente no Brasil e batizado com o nome de Ginga (MDIC, 2007). Este Middleware é responsável pela comunicação de um aplicativo diretamente com o set-top Box (Hardware). Atualmente, ele suporta as linguagens de Programação C++, Java e NCL, sendo esta última criada especialmente para o Middleware Ginga (MDIC, 2007). O processo de produção de aplicações para televisão digital é muito semelhante ao desenvolvimento de qualquer aplicação para computador. A grande diferença está na distribuição e nas características dessa aplicação que, depois de prontas, são transmitidas juntamente com o sinal de televisão e executadas no set-topbox (JUCÁ, LUCENA e FERRAZ, 2006).

24 O middleware Ginga O Ginga é um software intermediário, um Middleware gratuito que permite que aplicações desenvolvidas para a TV Digital possam ser utilizadas de forma independente da plataforma e do hardware dos fabricantes de terminais de acesso (set-top Box) (GINGA, 2008). Este Middleware é resultado de anos de pesquisas feitas pela Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) e pela Universidade Federal da Paraíba (UFPB). O Ginga reúne várias tecnologias de ponta e inovações brasileiras que o tornam a especificação de middleware mais avançada e, ao mesmo tempo, mais adequada à realidade do país (GINGA, 2008). O Middleware Ginga pode ser dividido em três partes: Ginga-CC, Ginga-J e Ginga-NCL, mostrados na Figura 1 (GINGA, 2008). FIGURA 1 - Arquitetura do Ginga Ginga-CC (Ginga Common-Core): Oferece o suporte básico para os ambientes declarativo (Ginga-NCL) e orientado a objetos (Ginga-J). Dependendo das funcionalidades requeridas no projeto de cada aplicação, um paradigma de programação (declarativo ou procedural) possui uma melhor adequação que o outro; Ginga-J: Desenvolvido pela UFPB para prover uma infra-estrutura de

25 24 execução de aplicações baseada na linguagem Java, com facilidades, especificamente, voltadas para o ambiente de TV digital; JavaTV: extensão para a plataforma Java para sustentar a produção de conteúdo interativo de forma procedural para a televisão digital, com base nas tecnologias Java. DAVIC: Digital Audio Video Council (Conselho de Áudio e Vídeo Digital): conjunto de especificações que têm como principal objetivo sustentar uma interoperabilidade real de ponta a ponta para as plataformas envolvidas na execução de serviços de áudio e vídeo transmitidos via radiodifusão. HAVi: Home Audio Video Interoperability (Interoperabilidade Doméstica de Áudio e Vídeo): determinam uma rede doméstica padrão focada na interoperabilidade de dispositivos de áudio e vídeo, de forma que todos os dispositivos de áudio e vídeo componentes de uma rede HAVi possam interagir uns com os outros. DVB: incluiu alguns pacotes para estender as funcionalidades oferecidas pelo JavaTV, HAVi e DAVIC. Essas funcionalidades incluem API de Informações de Serviço, Intercomunicação entre Xlets, persistência entre outras. Ginga-NCL: Desenvolvido pela PUC-Rio para prover uma infra-estrutura de apresentação de aplicações baseadas em documentos hipermídia escritos na linguagem NCL, com facilidades para a especificação de aspectos de interatividade, sincronismo espaço-temporal de objetos de mídia, adaptabilidade e suporte a múltiplos dispositivos. NCL possui Lua como sua linguagem de script. NCL é o responsável pelo processamento de documento NCL. XHTML é o responsável pela interpretação de arquivos contendo html, css e javascript. LUA responsável pela interpretação de scripts Lua.

26 25 Com o intuito de facilitar o desenvolvimento de aplicações Ginga-NCL, a PUC-Rio desenvolveu também a ferramenta Composer, um ambiente de autoria voltado para a criação de programas NCL para TV digital interativa (GINGA, 2008). Nessa ferramenta, as abstrações são definidas em diversos tipos de visões que permitem simular um tipo específico de edição (estrutural, temporal, layout e textual). Essas visões funcionam de maneira sincronizada, a fim de oferecer um ambiente integrado de autoria (GINGA, 2008). Cabe observar que os desenvolvimentos relacionados à linguagem NCL e à ferramenta Composer estão aplicados ao cenário de TV Digital, mas já são aplicados em outros cenários de aplicações multimídia e hipermídia, como Web, IPTV (Internet Protocol Television) etc. TV Digital Interativa é apenas um caso particular de aplicação multimídia (GINGA, 2008). Independente da linguagem adotada para o desenvolvimento de aplicações para TV Digital, o Ginga permite que sejam criados canais de interatividade entre o usuário da TV Digital e empresas que queiram vender produtos ou disponibilizar informações pela TV, como é feito pela Sky, por exemplo. Somente com o Ginga instalado no set-top Box, é possível ter acesso à transmissão digital no Brasil. Ele vem instalado de fábrica nos set-top Box nacionais. Desta forma, se for importado um conversor ou aparelho de TV de outro país, o mesmo não funcionará, já que esta tecnologia é especifica do Brasil e segue as normas ABNT (Associação Brasileira de Normas Técnicas). As Normas ABNT relativas ao Ginga fazem parte do grupo Codificação de dados e especificações de transmissão para radiodifusão digital. Nesse grupo, as normas aprovadas e publicadas até março de 2008 são as seguintes: ABNT (Associação Brasileira de Normas Técnicas) NBR (Norma Brasileira) : Televisão digital terrestre - Codificação de dados e especificações de transmissão para radiodifusão digital - Parte 1: Codificação de dados (ABNT, 2007); ABNT NBR : Televisão digital terrestre - Codificação de

27 26 dados e especificações de transmissão para radiodifusão digital - Parte 2: Ginga-NCL para receptores fixos e móveis - Linguagem de aplicação XML para codificação de aplicações (ABNT, 2007); ABNT NBR : Televisão digital terrestre - Codificação de dados e especificações de transmissão para radiodifusão digital - Parte 3: Especificação de transmissão de dados (ABNT, 2007); ABNT NBR : Televisão digital terrestre - Codificação de dados e especificações de transmissão para radiodifusão digital - Parte 5: Ginga-NCL para receptores portáteis - Linguagem de aplicação XML para codificação de aplicações (ABNT, 2007). 2.4 Linguagem NCL A linguagem NCL (Nested Context Language) é uma linguagem declarativa para criação de documentos de hipermídia baseados no modelo conceitual NCM (Nexted Context Model) seguindo os princípios adotados pelo W3C (World Wide Web Consortium) (NCL, 2003). Seguindo padrões atuais, a NCL foi especificada de forma modular, possibilitando a combinação de seus módulos em perfis de linguagem. Cada perfil pode agrupar um subconjunto de módulos de NCL, proporcionando a criação de linguagens de acordo com a necessidade (NCL, 2003). O Ginga-NCL foi desenvolvido pela PUC-Rio para fornecer uma infraestrutura de apresentação para aplicações multimídia/hipermídia sob o paradigma declarativo, escritas em linguagem NCL. A linguagem NCL proporciona facilidades para a especificação de aspecto de interatividade, sincronismo espaço-temporal entre objetos de mídia, adaptabilidade e suporte a múltiplos dispositivos (GINGA-NCL, 2008). Para o desenvolvimento de aplicações utilizando GINGA-NCL foi desenvolvida também pela PUC-Rio uma ferramenta chamada Composer com o intuito de facilitar a criação das aplicações (GINGA-NCL, 2008).

28 Linguagem Java Java é uma linguagem de programação orientada a objetos, desenvolvida em 1991 por uma pequena equipe de pessoas. Entre eles trabalhavam James Grosling, Mike Sheridan e Patrik Naughton na Sun Microsystems, com o nome de Oak. Por problemas de copyrigth (já existia uma linguagem chamada Oak) o nome foi mudado, em 1995, para Java, em homenagem à ilha de Java, de onde vinha o café consumido pela equipe da Sun (JAVAFREE, 2006). No início, foi desenvolvida para ser uma linguagem-base de projetos de software para produtos eletrônicos como microondas, geladeiras entre outros. Com sua sintaxe muito parecida com a linguagem C e sua orientação a objetos herdada da linguagem Smalltalk, foi de fácil adesão por parte de programadores de todo mundo. Java ficou mundialmente conhecida em 1995 com o sucesso da Word Wide Web (JAVAFREE, 2006). Java é multiplataforma. Quando um programa Java é compilado um código intermediário é gerado, chamado de bytecode. Este bytecode é interpretado pelas máquinas virtuais java (JVM) para a maioria dos sistemas operacionais. A máquina virtual é a responsável por criar um ambiente multiplataforma, ou seja, se alguém construir um sistema operacional novo, basta criar uma máquina virtual java que traduza os bytecodes para código nativo para que todas as aplicações java rodem sem problemas (JAVAFREE, 2006). Entre outras funções, a máquina virtual Java também é responsável por carregar de forma segura todas as classes do programa, verificar se os bytecodes aderem a especificação JVM e se eles não violam a integridade e a segurança do sistema (JAVAFREE, 2006). Java é uma linguagem que não se prende a nenhuma arquitetura e a nenhuma empresa, é rápida e estável. Pode construir sistemas críticos, sistemas que precisam de velocidade e até sistemas que vão para fora do planeta, como a sonda Spirit enviada pela NASA (National Aeronautics and Space Administration) para Marte (JAVAFREE, 2006).

29 28 Suas versões são JSE (Java Standard Edition) voltada para desenvolvimento de aplicações para desktop, JME (Java Micro Edition) para dispositivos móveis e JEE (Java Enterprise Edition) para desenvolvimento de aplicações Web (JAVAFREE, 2006). Java, atualmente, tem uma comunidade de desenvolvedores muito grande e ativa, proporcionando a criação das mais variadas APIs, bibliotecas de suporte a tipos específicos de aplicações, entre elas esta a API JavaTV (JAVAFREE, 2006). 2.6 API JavaTV Um dos motivos que levam a linguagem Java a ser difundida mundialmente e uma das mais utilizadas atualmente é a sua versatilidade, ou seja, se deseja-se um aplicativo para um automóvel, existe a Java Car, se deseja que um anel com capacidades de processamento execute um programa específico, existe a API JavaRing, além de inúmeros outros casos como celular e web. Não é diferente com TV Digital, onde, existe uma API completa, chamada de JavaTV, que é um pacote opcional para a plataforma JME (Java Micro Edition), mais especificamente para a configuração CDC (Connected Device Configuration), que fornece, segundo (LOUREIRO, 2004), as seguintes funcionalidades: Fluxo de áudio e vídeo; Acesso condicional; Acesso aos dados nos canais de transmissão; Acesso aos dados do Service Information; Controle do sintonizador de canais; Sincronização da mídia; Gerenciamento do ciclo de vida das aplicações. JavaTV necessita de um ambiente PersonalJava e usa um subconjunto do AWT (Abstract Window Toolkit) para construir as interfaces do usuário e o JMF (Java Media Framework) para o controle da mídia. A API está organizada nos seguintes

30 29 pacotes: javax.tv.xlet modelo de ciclo de vida das aplicações e classes de apoio; javax.tv.locator provê mecanismos para referências em formato de URL para serviços de broadcast e clipes de mídia broadcast; javax.tv.net provê mecanismo para acessar datagramas IP contidos em um fluxo de broadcast; javax.tv.carousel acesso a arquivos de broadcast agregados em um sistema de arquivos no fluxo de vídeo; javax.tv.graphics adiciona um suporte mínimo à biblioteca gráfica AWT, para solução de questões específicas em TV (sobreposição de imagens em vídeo, etc.); javax.tv.util classes utilitárias para aplicações JavaTV, incluindo gerência de temporizadores e eventos temporizados; javax.tv.media extensões para suporte à integração JMF; javax.tv.media.protocol suporte JMF para protocolos de streaming broadcast; javax.tv.service descrição de alto nível de serviços de TV Digital, incluindo também mecanismos básicos para a coleta de informações sobre serviço do fluxo broadcast; javax.tv.service.guide suporte para aplicações do tipo EPG (Eletronic Program Guide) um Guia Eletrônico de Programação e seus conceitos associados (horário, classificação etária, etc.). javax.tv.service.navigation suporte à navegação em serviços de TV Digital. Isso inclui suporte à lista de serviços favoritos, componentes agregados a serviços, etc.; javax.tv.service.transport conceitos descrevendo os mecanismos de transporte para um serviço de TV Digital; javax.tv.service.selection conceitos descrevendo como os serviços são apresentados ao usuário e como um novo serviço pode ser selecionado. Há também a possibilidade de apresentação de múltiplos serviços de uma

31 30 só vez (picture-in-picture). A API JavaTV fornece um gerenciamento do ciclo de vida dos aplicativos. Como os applets ou os MIDlet, os programas em JavaTV são chamados de Xlet e sua estrutura é mostrada na Figura 2. FIGURA 2 - Ciclo de vida de um Xlet Uma vez que a classe é carregada no aparelho, ela está no estado Loaded (entra neste estado uma única vez), a partir deste momento, a aplicação pode ser executada através dos métodos initxlet() e StartXlet(), entrando no estado Started, e, posteriormente, ser pausada (Paused, estado onde a aplicação Xlet é paralisada) ou destruída (Destroyed, onde termina o ciclo de vida). Semelhante ao que ocorre com applets e MIDlets, as Xlets também fornecem métodos para um completo gerenciamento do ciclo de vida de uma aplicação (JAVATV, 2007). Toda Xlet deve possuir um contexto, que de maneira geral serve para isolar a aplicação do resto da máquina virtual. Um objeto XletContext é passado a uma Xlet quando ele é inicializado. É através desta interface que o Gerenciador de Aplicações controla o estado de um Xlet. Entre outras funções, o contexto permite a Xlet descobrir informações a respeito do ambiente de execução. A interface XletContext define os seguintes métodos (JAVATV, 2007): notifydestroyed: Este método sinaliza ao Gerenciador de Aplicações que

32 31 a Xlet entrou no estado Destruída após a Xlet ter completado sua execução e estar pronto para ser destruído; notifypaused: Este método sinaliza ao Gerenciador de Aplicações que a Xlet entrou no estado Pausada. Deve-se entrar neste estado quando a Xlet não for prover um serviço por um curto período de tempo; getxletproperty: Este método possibilita a Xlet obter informações sobre o ambiente de execução; resumerequest: Este método sinaliza ao Gerenciador de Aplicações que a Xlet deseja entrar no estado em execução. 2.7 Conclusão O desenvolvimento deste capítulo foi de fundamental importância para adquirir o conhecimento necessário para a implementação dos protótipos propostos neste trabalho e, também, conhecer as tecnologias de forma mais abrangente. Com este conhecimento, tanto sobre TV Digital quanto sobre Ginga e Java, é possível explorá-los para tirar melhor proveito destas tecnologias com os protótipos de TV Interativa. As maiores dificuldades foram encontrar material de entidades renomadas, pois devido à tecnologia ser recente o material é escasso. Contudo, isto não impediu o avanço do trabalho e possibilitou um bom fundamento sobre as tecnologias envolvidas na TV Digital.

33 32 3 DESENVOLVIMENTO E APRESENTAÇÃO DOS PROTÓTIPOS Este Capítulo apresenta o processo de desenvolvimento de dois protótipos para TV Digital utilizando a API (Application Programming Interface) JavaTV. Ele descreve as ferramentas utilizadas, o que precisa ser configurado antes de iniciar o desenvolvimento, faz uma breve descrição das API utilizadas e explica o ciclo de vida de uma Xlet, demonstrando, com exemplos práticos, como construir uma Xlet e como executá-la utilizando o Xletview. 3.1 Ferramentas Utilizadas Para implementar e executar o projeto proposto é necessário utilizar um conjunto de programas, que são: o Kit de Desenvolvimento Java (JDK), uma IDE (Integrated Development Environment) para desenvolvimento Java e o Emulador XletView. Java Development Kit (JDK) é um conjunto de ferramentas, composto por compilador e bibliotecas, que permite criar sistemas de software para a plataforma Java. IDE, ou Ambiente Integrado de Desenvolvimento, é um programa de computador que reúne características e ferramentas de apoio ao desenvolvimento de software com o objetivo de facilitar este processo. Para o desenvolvimento de aplicações Java é bastante recomendável o uso de uma IDE. As duas mais conhecidas e utilizadas são Eclipse e Netbeans. Os exemplos apresentados nas próximas seções foram implementados na IDE Eclipse Ganymed. Como os programas desenvolvidos neste projeto serão executados a partir de

34 33 um computador, existe a necessidade de um emulador para simular o ambiente do settop Box, com seus recursos e limitações. Neste projeto foi utilizado o XletView. O XletView, cuja interface é apresentada na Figura 3, é uma ferramenta que emula Xlets para TV Digital em um computador. Ele possui código aberto (Open Source), recursos multimídias implementados para utilização dos componentes HAVi (Home Audio Video Interoperability) e uma API que permite ao programador criar elementos para a interface com o usuário. Ele provê uma extensão ao pacote java.awt, permitindo, assim, suporte a controle remoto, transparência, entre outros (ALBUQUERQUE e LOPES, 2008). O XletView é baseado no padrão MHP (Multimedia Home Platform - Plataforma Doméstica de Multimídia) e fornece uma maneira fácil e rápida de testar as aplicações. FIGURA 3 - XletView. Como é programado totalmente em Java, o XletView pode ser executado tanto em plataforma Linux como Windows, bastando para isso utilizar o Java 2 Standard Development Kit para compilar Xlets e executar o XletView. É recomendado executar o Xletview através da linha de comando java jar xletview.jar, pois desta forma é possível ver no terminal o resultado de comandos como System.out.println() e

35 34 mensagens de erro. A versão utilizada deste emulador foi a em conjunto com o JMF O XletView possui muitas limitações, pois não dá suporte a todas as funcionalidades oferecidas pela API JavaTV e não reproduz muitas das codificações de vídeo. 3.2 Configurando o ambiente O projeto deve conter as bibliotecas necessárias para a construção de aplicativos para TV Digital. Para isso é necessário informar o caminho onde estas se encontram, ou seja, importar o arquivo javatv.jar referente a biblioteca da API JavaTV. Para que a aplicação possa referenciar as bibliotecas do MHP, HAVi, DAVIC e JMF é necessário importar, também, o arquivo xletview.jar. FIGURA 4 - Propriedades do projeto Para realizar esta operação, no Eclipse, após ter um projeto criado, deve-se

36 35 acessar suas propriedades, como mostra a Figura 4, a qual apresenta a opção Java Build Path. Na aba Libraries existe a opção de adicionar o.jar externo como mostra a Figura 5. FIGURA 5 - Adicionando as bibliotecas 3.3 Protótipo 1 - Aplicação que calcula massa corporal Esta seção apresenta a implementação de um exemplo de aplicação interativa, desenvolvida para calcular a massa corporal, que permite o usuário informar seu peso e altura e obter o resultado e informar se esta acima ou a baixo do peso ideal. O usuário está assistindo, por exemplo, um conteúdo que fala sobre bons hábitos de saúde ou qualquer outro programa de TV. Através do controle remoto, o usuário digita sua altura e seu peso e a aplicação calcula seu índice de massa corporal. Com base neste índice, o telespectador pode saber se está ou não acima do peso e, se necessário, ir ao consultório médico.

37 36 Essa mesma aplicação pode ser expandida e utilizada para marcar uma consulta com um médico da rede pública em caso de obesidade sem a necessidade de deslocamento até o posto mais próximo. A Figura 6 apresenta a tela inicial da aplicação com os campos para informar os valores usados no cálculo, que são peso e altura. Através dos botões de navegação do controle remoto do XletView acontece a escolha dos campos para edição e dos botões com ações. FIGURA 6 - Tela inicial XLetIMC. O Quadro 1 mostra as bibliotecas necessárias para executar a aplicação. Dentre elas esta a AWT, responsável pela criação dos textos, painéis, campos para edição e os botões. A API JavaTV é utilizada para a criação do Xlet cuja classe principal implementa a interface javax.tv.xlet.xlet. Outra API utilizada é a HAVi que é responsável pela cena que contém o painel da aplicação e o vídeo que esta rodando em segundo plano.

38 37 QUADRO 1 - Código contendo a declaração dos imports necessários. 01 import java.awt.button; 02 import java.awt.color; 03 import java.awt.component; 04 import java.awt.label; 05 import java.awt.panel; 06 import java.awt.rectangle; 07 import java.awt.textarea; 08 import java.awt.textfield; 09 import java.awt.event.keyevent; 10 import java.awt.event.keylistener; 12 import javax.media.player; 13 import javax.tv.media.awtvideosize; 14 import javax.tv.media.awtvideosizecontrol; 15 import javax.tv.service.selection.servicecontenthandler; 16 import javax.tv.service.selection.servicecontextfactory; 17 import javax.tv.xlet.xlet; 18 import javax.tv.xlet.xletcontext; 19 import javax.tv.xlet.xletstatechangeexception; 20 import org.havi.ui.hscene; 21 import org.havi.ui.hscenefactory; 22 import org.havi.ui.hscreen; 23 import org.havi.ui.hstatictext; 24 import org.havi.ui.event.hrcevent; O código do Quadro 2 mostra a declaração da classe que implementa a interface Xlet responsável pelo ciclo de vida da aplicação, contendo os métodos básicos de uma aplicação para TV Digital e o KeyListener, responsável por conter os métodos referentes ao eventos. O Quadro 2 mostra, ainda, a declaração dos componentes responsáveis pela construção da tela (os componentes Panel responsáveis por agrupar os demais componentes, os TextField para entrada de informação, Label para texto estático e Button para criação dos botões, fazem parte da API AWT) e os componentes context e scene que são específicos de aplicações para TV Digital. QUADRO 2 - Declaração da classe e dos componentes. 01 public class IMCXlet implements Xlet, KeyListener { 02 private XletContext contexto; 03 private HScene scene; 04 private Panel panelmenurodape = null; 05 private Button buttoncalcular = null;

39 38 06 private Button buttondietas = null; 07 private Panel panelmenulateral = null; 08 private Label labelpeso = null; 09 private TextField textfieldpeso = null; 01 private Label labelaltura = null; 02 private TextField textfieldaltura = null; 03 private Label labelresultado = null; 04 private Label labelresultadodesc = null; 05 private Button buttonlimpar; 06 private TextArea textareainformacoes; No código do Quadro 3 é mostrado o método responsável por carregar a aplicação o initxlet, que recebe como parâmetro um XletContext, o qual é chamado pelo Middleware do set-top Box passando o xletcontext. É através deste objeto que o gerenciador de aplicações controla o estado de um Xlet. O xletcontext permite ao Xlet descobrir informações a respeito do ambiente de execução, ou seja, dos recursos disponíveis no hardware set-top Box, e no Middleware Ginga. QUADRO 3 - Código mostrando o método initxlet 01 public void initxlet(xletcontext xletcontext) throws 02 XletStateChangeException { 03 this.contexto = xletcontext; } O código apresentado no Quadro 4 mostra o método responsável por iniciar a aplicação. Ele contém o componente ou container scene da API HAVi responsável por adicionar os painéis da aplicação, gerenciar as camadas de apresentação e transparência. QUADRO 4 - Código do método startxlet 01 public void startxlet() throws XletStateChangeException { 02 HSceneFactory hscenefactory = HSceneFactory.getInstance(); 03 scene = 04 hscenefactory.getfullscreenscene(hscreen.getdefaulthscreen(). 05 getdefault.hgraphicsdevice()); 06 scene.setsize(640, scene.setlayout(null); 08 scene.add(getpanelmenurodape()); 09 scene.add(getpanelmenulateral()); 10 scene.setvisible(true); 11 textfieldpeso.requestfocus(); 12 }

40 39 O código do Quadro 5 mostra a criação de um panel da API AWT. Ele é instanciado e são definidos a cor, o tamanho, a posição e também são adicionados outros componentes dentro dele. O panel instanciado pode ser visualizado na Figura 7. A criação do painel é a mesma utilizada na programação desktop. O método do panel lateral responsável por mostrar informação sobre a tabela de massa corporal segue o mesmo contexto do painel rodape. QUADRO 5 - Método getpanelmenurodape. 01 private Panel getpanelmenurodape() { 02 if (panelmenurodape == null) { 03 panelmenurodape = new Panel(); 04 panelmenurodape.setlayout(null); 05 panelmenurodape.addkeylistener(this); 06 panelmenurodape.setbounds(new Rectangle(0, 476, 525, )); 08 panelmenurodape.setbackground(color.blue); 09 panelmenurodape.add(getbuttoncalcular(), null); 10 panelmenurodape.add(getbuttondietas(), null); 11 panelmenurodape.add(getlabelpeso(), null); 12 panelmenurodape.add(gettextfieldpeso(), null); 13 panelmenurodape.add(getlabelaltura(), null); 14 panelmenurodape.add(gettextfieldaltura(), null); 15 panelmenurodape.add(getlabelresultado(), null); 16 panelmenurodape.add(getlabelresultadodesc(), null); 17 panelmenurodape.add(getbuttonlimpar(), null); 18 } 19 return panelmenurodape; 20 } FIGURA 7 - Painel inferior. O método mostrado no Quadro 6 é responsável pela instanciação do botão calcular mostrado na Figura 7, com seu tamanho, localização e cor, nele também é adicionada uma ação chamada actionlistener, responsável pela ação do botão, que chama o método calcularimc, cuja implementação é mostrada no Quadro 7.

41 40 QUADRO 6 - Código ButtonCalcular 01 private Button getbuttoncalcular() { 02 if (buttoncalcular == null) { 03 buttoncalcular = new Button(); 04 buttoncalcular.setname("start"); 05 buttoncalcular.setbounds(new Rectangle(72, 57, 89, 06 23)); 07 buttoncalcular.setlabel("calcular"); 08 buttoncalcular.addkeylistener(this); 09 buttoncalcular.addactionlistener(new 10 java.awt.event.actionlistener() { 11 public void 12 actionperformed(java.awt.event.actionevent e) { 13 calcularimc(); 14 } 15 }); 16 } 17 return buttoncalcular; 18 } O método apresentado no Quadro 7 é responsável por calcular a massa corporal através da formula de IMC. Este método é chamado ou disparado através do evento executado pelo botão calcular mostrado na linha 13 do Quadro 6. Este evento se dá quando o usuário seleciona o botão calcular através do controle remoto e pressiona o botão OK do mesmo. QUADRO 7 - Código do método calcularimc 01 protected void calcularimc() { 02 Double resultado = peso / (altura * altura); 03 setresultado(resultado); 04 setinf();

42 41 FIGURA 8 - Método calcular executado. A Figura 8 mostra a tela da aplicação após executar o método calcularimc(), através da ação do botão executar. É mostrado o resultado do calculo e uma relação dos pesos e a descrição se esta acima ou abaixo do normal. O Quadro 8 mostra o método que implementa a interface KeyListener. Ele é responsável pelos eventos do controle remoto do emulador. Quando é pressionada uma tecla do controle remoto é chamado este método. O parâmetro passado é o evento o qual é interpretado para saber qual botão foi pressionado, chamando o seu método específico. A navegação através do controle remoto é feita através das setas e o Enter é obtido através da tecla OK. QUADRO 8 - Código do método keypressed 02 public void keypressed(keyevent e) { 03 if (e.getkeychar()==hrcevent.vk_enter) { 04 if(buttoncalcular.isfocusowner()) 05 calcularimc(); 06 else if(buttonlimpar.isfocusowner())

43 42 07 limpar(); 08 } 09 else if (e.getkeychar()==hrcevent.vk_0) { 10 if(textfieldpeso.isfocusowner()) 11 textfieldpeso.settext(textfieldpeso.gettext()+"0"); 12 else 13 textfieldaltura.settext(textfieldaltura.gettext()+"0");14 14 }else if (e.getkeychar()==hrcevent.vk_1) { 15 if(textfieldpeso.isfocusowner()) 16 textfieldpeso.settext(textfieldpeso.gettext()+"1"); 17 else 18 textfieldaltura.settext(textfieldaltura.gettext()+"1"); Por fim, é apresentado o método no Quadro 9, que é chamado em uma aplicação Xlet ao finalizá-la, para isto deve-se implementar o método destroyxlet() da interface Xlet. Este método é chamado neste caso através do botão Exit do controle remoto. QUADRO 9 - Código do método destroyxlet. 01 public void destroyxlet(boolean unconditional) throws 02 XletStateChangeException { 03 if (scene!=null) { 04 scene.setvisible(false); 05 scene.removeall(); 06 scene = null; 07 } 08 contexto.notifydestroyed(); 3.4 Protótipo 2 Aplicação para programa de show de calouros. O segundo protótipo consiste em uma aplicação para TV Digital onde o telespectador interage com um programa de show de calouros, assistindo os candidatos, votando no seu preferido e vendo os resultados parciais. Como a aplicação é somente um protótipo, ela não terá canais de transmissão e recepção. Os vídeos dos candidatos estão armazenados em disco e são carregados em tempo de execução. A Figura 9 mostra a estrutura do projeto separado pelos pacotes bussines, container, vo e xlet. As classes do pacote container são responsáveis por adicionar os painéis laterais e inferiores na aplicação. As classes do pacote vo são responsáveis por armazenar os atributos manipulados pela aplicação. A classe do pacote bussines é responsável por manipular os vídeos apresentados na aplicação. O pacote xlet contém

44 43 a classe responsável pelo gerenciamento da aplicação, que implementa a interface javax.tv.xlet.xlet. Esta classe é denominada ShowDeCalourosXlet.java e contém os métodos definidos na interface Xlet como initxlet(), startxlet(), pausexlet() e destroyxlet(). FIGURA 9 - Hierarquia de classes O Quadro 10 mostra as bibliotecas utilizadas pela classe ShowDeCalourosXlet.java que implementa a interface Xlet da API JavaTV, são elas: a API AWT, responsável pela parte gráfica da aplicação; HAVI, responsável pela cena que contém o painel da aplicação e o vídeo que esta rodando em segundo plano. Ainda no Quadro 10 é mostrada a declaração da classe ShowDeCalourosXlet.java a qual estende a classe HContainer e implementa as interfaces Xlet e KeyListener. QUADRO 10 - Declaração dos imports da classe ShowDeCalourosXlet.java 01 package com.br.tvinterativa.xlet; 02 import java.awt.rectangle; 03 import java.awt.event.keyevent; 04 import java.awt.event.keylistener; 05 import javax.media.player; 06 import javax.tv.media.awtvideosize; 07 import javax.tv.media.awtvideosizecontrol; 08 import javax.tv.service.selection.servicecontenthandler; 09 import javax.tv.service.selection.servicecontextfactory;

45 44 10 import javax.tv.xlet.xlet; 11 import javax.tv.xlet.xletcontext; 12 import javax.tv.xlet.xletstatechangeexception; 13 import org.havi.ui.hcontainer; 14 import org.havi.ui.hscene; 15 import org.havi.ui.hscenefactory; 16 import org.havi.ui.hscreen; 17 import org.havi.ui.hstatictext; 18 import org.havi.ui.event.hrcevent; 19 import com.br.tvinterativa.container.containerprincipal; 20 public class ShowDeCalourosXlet extends HContainer implements 21 Xlet, KeyListener{ 22 private XletContext contexto; 23 private HScene scene; 24 private ContainerPrincipal menuprincipal; A classe ShowDeCalourosXlet.java contém o atributo contexto, responsável pelas variáveis do emulador, o atributo scene, responsável por agrupar os containeres e vídeos, e o atributo menuprincipal - um objeto do tipo HContainerPrincipal que é instanciado e desenhado na tela pelo método startxlet. O Quadro 11 mostra a implementação do método initxlet. Na linha 03 o atributo contexto recebe o parâmetro passado pelo emulador; a linha 05 mostra a instanciação do objeto scene responsável por conter os containeres e vídeos apresentados na tela. QUADRO 11 - Método initxlet. 01 public void initxlet(xletcontext xletcontext) 02 throws XletStateChangeException { 03 contexto = xletcontext; 04 HSceneFactory hscenefactory = HSceneFactory.getInstance(); 05 scene = 06 hscenefactory.getfullscreenscene(hscreen.getdefaulthscreen(). 07 getdefaulthgraphicsdevice()); 08 scene.setsize(720, 576); 09 scene.setlayout(null); 10 scene.addkeylistener(this); 11 scene.setvisible(true); 12 scene.requestfocus(); 13 } O Quadro 12 mostra a implementação do método startxlet o qual renderiza a

46 45 imagem que está sendo exibida no momento em que a aplicação é invocada. O método também é responsável por instanciar o container MenuPrincipal. QUADRO 12 - Método startxlet. 01 public void startxlet() throws XletStateChangeException { 02 Rectangle source = new Rectangle(4, 4, 720, 576); 03 Rectangle destination = new Rectangle(4, 4, 580, 450); 04 resize(new AWTVideoSize(source, destination)); 05 menuprincipal = new ContainerPrincipal(580,0,135,450, 06 scene); 07 scene.add(menuprincipal); 08 scene.repaint(); 09 menuprincipal.transferfocus(); 10 } O Quadro 13 mostra a implementação da método destroyxlet o qual é responsável por finalizar a aplicação e renderizar novamente a imagem que está sendo exibida durante a execução da aplicação. QUADRO 13 - Métodos pausexlet e destroyxlet 01 public void destroyxlet(boolean flag) throws 02 XletStateChangeException { 03 if (scene!= null) { 04 scene.setvisible(false); 05 scene.removeall(); 06 scene = null; 07 } 08 Rectangle source = new Rectangle(0, 0, 580, 450); 09 Rectangle destination = new Rectangle(0, 0, 720, 576); 10 resize(new AWTVideoSize(source, destination)); 11 contexto.notifydestroyed(); 12 } O Quadro 14 apresenta o método keypressed, responsável pelos eventos do controle remoto. Dependendo do botão pressionado no controle remoto ele executa um determinado método. QUADRO 14 - Método keypressed 01 public void keypressed(keyevent e) { 02 if (e.getkeychar()==hrcevent.vk_colored_key_2) { 03 menuprincipal.transferfocus(); 04 } 05 else if (e.getkeychar()==hrcevent.vk_escape) { 06 try {

47 46 07 destroyxlet(true); 08 } 09 catch(xletstatechangeexception 11 xletstatechangeexception) { 12 xletstatechangeexception.printstacktrace(); 13 } 14 } 15 } No Quadro 15 é mostrada a declaração dos imports para a classe ContainerPrincipal.java. QUADRO 15 - Declaração dos imports da classe ContainerPrincipal.java 01 package com.br.tvinterativa.container; 02 import java.awt.graphics; 03 import java.awt.event.keyevent; 04 import java.awt.event.keylistener; 05 import org.dvb.ui.dvbcolor; 06 import org.havi.ui.hcontainer; 07 import org.havi.ui.hscene; 08 import org.havi.ui.htextbutton; 09 import org.havi.ui.event.hrcevent; 10 import com.br.tvinterativa.vo.meuhtextbutton; A Figura 10 mostra a tela inicial do protótipo com o container inicial na parte inferior da tela e o container principal já instanciado do lado esquerdo da tela.

48 47 FIGURA 10 - Tela Inicial do protótipo Show de Calouros O Quadro 16 mostra a implementação da classe ContainerPrincipal.java mostrada na Figura 10, a qual contém os objetos do tipo HTextButton responsáveis por mostrar os botões do menu principal, o container principal, o atual e o objeto scene. QUADRO 16 - Declaração da classe ContainerPrincipal 01 public class ContainerPrincipal extends HContainer implements 02 KeyListener{ 03 private HTextButton botaocantor, botaoenquete, botaoresultado, 04 botaosair; 05 private HContainer containeratual; 06 private ContainerInicial containerpadrao; 07 private HScene scene; No construtor mostrado no Quadro 17 é passado por parâmetro o tamanho que este container e o objeto scene devem ter. No construtor também são instanciados os seus botões que são declarados no Quadro 16, definindo seus tamanhos, cores, fontes e adicionados no container. QUADRO 17 - Construtor da classe ContainerPrincipal.java 01 public ContainerPrincipal(int x, int y, int width, int height,

49 48 02 HScene scene) { 03 super(x, y, width, height); this.scene = scene; 06 botaocantor = new 07 HTextButtonEdit("Cantores",10,20,120,80, new 08 DVBColor(DVBColor.BLUE), 09 new DVBColor(DVBColor.LIGHT_GRAY), new 10 DVBColor( DVBColor.GREEN)); 11 this.add(botaocantor); 12 botaocantor.setfocustraversal(botaosair, botaoenquete, 13 null, null); 14 botaocantor.addkeylistener(this); 15 containerpadrao = new ContainerInicial(0,450,715,120); 16 scene.add(containerpadrao); 17 containeratual = containerpadrao; 18 botaocantor.requestfocus(); O Quadro 18 mostra a implementação do método keypressed, chamado ao pressionar algum botão do controle remoto. Ele é responsável por instanciar os containeres que são chamados pelo container principal como o dos cantores, do voto, do resultado e o de sair, dependendo do botão pressionado (Figura 11). QUADRO 18 - Método keypressed da classe ContainerPrincipal.java 01 public void keypressed(keyevent e) { 02 if (e.getkeychar()==hrcevent.vk_enter) { 03 if (e.getsource()== botaocantor) { 04 scene.remove(containeratual); 05 ContainerCantores containercant = new 06 ContainerCantores(0,450,715,120, this, scene); 07 scene.add(containercant); 08 scene.repaint(); 09 containeratual = containercant; 10 containeratual.requestfocus(); 11 }else if (e.getsource()== botaoenquete) { A Figura 11 mostra o container cantores, nele são apresentados os candidatos, com o nome, nome da música e gênero musical, com a possibilidade de exibir o vídeo de cada cantor. Através das teclas de navegação do controle remoto (esquerda e direita) pode-se navegar entre os candidatos. Para execução do vídeo do cantor desejado basta selecioná-lo e pressionar a tecla OK do controle remoto. Pode-se voltar a navegar no container principal pressionando a tecla EXIT.

50 49 FIGURA 11 - Container Cantores. O Quadro 19 mostra a declaração dos imports da classe VideoPlayer.java responsável por gerenciar os vídeos exibidos. QUADRO 19 - Imports da classe VideoPlayer.java 01 package com.br.tvinterativa.bussines; 02 import java.awt.component; 03 import java.io.ioexception; 04 import javax.media.controllerevent; 05 import javax.media.controllerlistener; 06 import javax.media.endofmediaevent; 07 import javax.media.manager; 08 import javax.media.mediaexception; 09 import javax.media.medialocator; 10 import javax.media.player; 11 import javax.media.time; 12 import javax.media.protocol.datasource; No Quadro 20 é apresentada a declaração da classe VideoPlayer.java e seus atributos. Ela é responsável por carregar, iniciar, pausar e destruir a execução de um

51 50 vídeo. A classe implementa a interface ControllerListener e contém o atributo VIDEO_URL o qual tem o caminho do vídeo a ser exibido. QUADRO 20 - Declaração da classe VideoPlayer.java 01 public class VideoPlayer implements ControllerListener { 02 private String VIDEO_URL = ""; 03 private Player player; 04 private MediaLocator medialocator; O Quadro 21 mostra a implementação do construtor da classe VideoPlayer.java, o qual recebe como parâmetro um número inteiro que deve conter o número do vídeo a ser exibido. Na linha 07 é instanciado o objeto MediaLocator, passando por parâmetro o caminho do arquivo a ser executado; na linha 08 é mostrada a instanciação do objeto player com o método estático da classe Manager enviando como parâmetro o medialocator. QUADRO 21 - Construtor da classe VideoPlayer.java 01 public VideoPlayer(int video) 02{ 03 if ( video == 1) 04 VIDEO_URL = "file://c:/roubaramminhasgalinhas.avi"; 05 else if ( video == 2) try { 07 medialocator = new MediaLocator(VIDEO_URL); 08 player = Manager.createRealizedPlayer(mediaLocator); 09 DataSource datasource = 10 Manager.createDataSource(mediaLocator); 11 datasource.connect(); 12 datasource.start(); 13 player = Manager.createPlayer(dataSource); 14 player.realize(); 15 player.prefetch(); 16 player.addcontrollerlistener(this); 17 } 18 catch (IOException e) { 19 e.printstacktrace(); 20 } 21 catch (MediaException e) { 22 e.printstacktrace(); 23 } A Figura 12 mostra o container votar, no qual pode-se navegar para escolha dos candidatos, para votar seleciona-se o candidato e pressiona a tecla OK do controle

52 51 remoto. FIGURA 12 - Container Votar. O Quadro 22 mostra a implementação dos métodos start, pause e close. QUADRO 22 - Métodos que gerenciam a execução dos vídeos. 01 public void start() { 02 if(player!= null) 03 player.start(); 04 } 05 public void pause() { 06 if(player!= null) 07 player.stop(); 08 } 09 public void close(){ 10 if(player!= null) { 11 player.close(); 12 player = null; 13 } 14 } A Figura 13 apresenta o container resultado, nele é possível ver os candidatos com suas respectivas porcentagens de votos.

53 52 FIGURA 13 - Container resultado. 3.5 Conclusão A criação dos protótipos foi de suma importância para o entendimento do conteúdo abordado. Com o desenvolvimento pôde-se conhecer as API s e seus principais métodos e classes. Apesar de haver pouco material para tomar como base de conhecimento, os protótipos sugeridos foram desenvolvidos com sucesso no tempo previsto.

Sistema de acesso a dispositivos eletrônicos através da TV Digital interativa. Aluno: Rodrigo Brüning Wessler Orientador: Francisco Adell Péricas

Sistema de acesso a dispositivos eletrônicos através da TV Digital interativa. Aluno: Rodrigo Brüning Wessler Orientador: Francisco Adell Péricas Sistema de acesso a dispositivos eletrônicos através da TV Digital interativa Aluno: Rodrigo Brüning Wessler Orientador: Francisco Adell Péricas Roteiro da Apresentação Introdução Objetivos Fundamentação

Leia mais

Middleware Ginga. Jean Ribeiro Damasceno. Escola de Engenharia Universidade Federal Fluminense (UFF) RuaPassoda Pátria, 156 Niterói RJ Brasil

Middleware Ginga. Jean Ribeiro Damasceno. Escola de Engenharia Universidade Federal Fluminense (UFF) RuaPassoda Pátria, 156 Niterói RJ Brasil Fundamentos de Sistemas Multimídia Prof. ª Débora C. Muchaluat Saade Middleware Ginga Jean Ribeiro Damasceno Escola de Engenharia (UFF) RuaPassoda Pátria, 156 Niterói RJ Brasil jeanrdmg@yahoo.com.br Introdução

Leia mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

comum apresentando, em caráter informativo, os três padrões anteriormente mencionados.

comum apresentando, em caráter informativo, os três padrões anteriormente mencionados. 1 Introdução A possibilidade de se encapsular dados, juntamente com o áudio e vídeo, em sistemas de TV Digital, abre espaço para uma vasta gama de oportunidades capaz de proporcionar uma maior interatividade

Leia mais

Aplicativo para TV Digital Interativa de acesso ao Twitter

Aplicativo para TV Digital Interativa de acesso ao Twitter Universidade Regional de Blumenau Centro de Ciências Exatas e Naturais Curso de Bacharelado em Ciência da Computação Aplicativo para TV Digital Interativa de acesso ao Twitter Acadêmico: Marcos Ernani

Leia mais

Aplicações para TV Digital em Java Como começar a desenvolver?

Aplicações para TV Digital em Java Como começar a desenvolver? Aplicações para TV Digital em Java Como começar a desenvolver? Manoel Marques Neto, Lile Palma Hattori e Sylvio Siqueira Silva Uma das principais vantagens da chegada da TV Digital no país é a possibilidade

Leia mais

Roteiro. Módulo IV 3 horas. A arquitetura de um sistema digital de televisão Padrões de Middleware DASE MHP ARIB GINGA

Roteiro. Módulo IV 3 horas. A arquitetura de um sistema digital de televisão Padrões de Middleware DASE MHP ARIB GINGA Roteiro Módulo I 6 horas. Introdução à Organização; Arquitetura de Computadores; Hardware / Software / etc.; Processador Memória e Entrada / Saída (E/S); Sistema Operacional (SO): Características, Tipos

Leia mais

Desenvolvimento de Software I

Desenvolvimento de Software I Desenvolvimento de Software I Prof. Arnaldo Martins Hidalgo Junior arnaldo@flash.tv.br http://aulashidalgo.wordpress.com 5 h/a (2 aulas semanais) http://aulashidalgo.wordpress.com 1 Competências Avaliar

Leia mais

Arquitetura do Sistema Brasileiro. Novos Recursos. Aplicações. Middleware

Arquitetura do Sistema Brasileiro. Novos Recursos. Aplicações. Middleware Departamento de Ciência da Computação TV Digital no Brasil Introdução a TV Digital Interativa no Brasil Padrão Brasileiro Transmissão terrestre Transmissão terrestre digital de sinais de televisão (radiodifusão),

Leia mais

1.1. Objetivos e Contribuições

1.1. Objetivos e Contribuições 1 Introdução Um sistema de TV Digital (TVD) pode ser definido, resumidamente, como um conjunto de especificações que determinam as tecnologias envolvidas na transmissão de conteúdo pelas emissoras (ou

Leia mais

Introdução ao Desenvolvimento de

Introdução ao Desenvolvimento de Introdução ao Desenvolvimento de Aplicações Web com JSF e PrimeFaces Marcelo Vinícius Cysneiros Aragão ICC Inatel Competence Center marcelovca90@inatel.br Santa Rita do Sapucaí, 15 de março de 2016 Conteúdo

Leia mais

TV INTERATIVA SE FAZ COM GINGA

TV INTERATIVA SE FAZ COM GINGA TV INTERATIVA SE FAZ COM GINGA Autor: Luiz Fernando Gomes Soares Departamento de Informática - Universidade Católica do Rio de Janeiro - Rua Marquês de São Vicente, 225 - Fone: (21) 3527-1530 (FAX) CEP

Leia mais

AULA 1 INTRODUÇÃO AO JAVA

AULA 1 INTRODUÇÃO AO JAVA AULA 1 INTRODUÇÃO AO JAVA Ao término dessa aula você terá aprendido: História e características do Java Ambientes e plataformas Java O Java é a base para praticamente todos os tipos de aplicações em rede

Leia mais

A linguagem Java foi projetada tendo em vista os seguintes objetivos:

A linguagem Java foi projetada tendo em vista os seguintes objetivos: Java Disciplina: Programação II Professora: Mai-Ly Vanessa Histórico do Java Em 1991 a Sun Microsystems financiou uma pesquisa sobre o que seria a nova onda digital. Desta pesquisa resultou a criação da

Leia mais

As múltiplas possibilidades do middleware Ginga

As múltiplas possibilidades do middleware Ginga 76 As múltiplas possibilidades do middleware Ginga Autor : Prof. Luiz Fernando Gomes Soares Coordenador do Grupo de Trabalho de Middleware Colaborou: Paulo Henrique Castro Coordenador do Módulo Técnico

Leia mais

Aplicações para TV Digital com Ginga-J do ambiente à execução

Aplicações para TV Digital com Ginga-J do ambiente à execução tv digital_ Aplicações para TV Digital com Ginga-J do ambiente à execução Construindo uma aplicação passo a passo para TV Digital com Ginga-J O artigo primeiramente apresenta alguns conceitos sobre a TV

Leia mais

Introdução 15. representações definidas pelo MHEG-1, porém foi cancelado por falta de recursos.

Introdução 15. representações definidas pelo MHEG-1, porém foi cancelado por falta de recursos. 1 Introdução A evolução das técnicas de codificação digital, aliada aos esquemas eficientes de modulação para transmissões digitais, tornou possível o advento da TV digital. Atualmente, os sistemas de

Leia mais

TV Interativa se faz com Ginga

TV Interativa se faz com Ginga TV Interativa se faz com Ginga Luiz Fernando Gomes Soares Departamento de Informática Universidade Católica do Rio de Janeiro Rua Marquês de São Vicente 225 Fone: (21) 3527-1530 (FAX) CEP 22453-900 Rio

Leia mais

GINGAWAY UMA FERRAMENTA PARA CRIAÇÃO DE APLICAÇÕES GINGA NCL INTERATIVAS PARA TV DIGITAL

GINGAWAY UMA FERRAMENTA PARA CRIAÇÃO DE APLICAÇÕES GINGA NCL INTERATIVAS PARA TV DIGITAL UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA GINGAWAY UMA FERRAMENTA PARA CRIAÇÃO DE APLICAÇÕES GINGA NCL INTERATIVAS PARA TV DIGITAL PROPOSTA DE TRABALHO

Leia mais

Tópicos. Visão geral do sistema Modelo de referência Algumas demonstrações Requisitos para um middleware Ginga Consideraçõesfinais

Tópicos. Visão geral do sistema Modelo de referência Algumas demonstrações Requisitos para um middleware Ginga Consideraçõesfinais . TV interativa se faz com Ginga Copyright 2006 TeleMídia Tópicos Visão geral do sistema Modelo de referência Algumas demonstrações Requisitos para um middleware Ginga Consideraçõesfinais 2. TV interativa

Leia mais

Norma de TV digital criada a partir do ISDB-T (Integrated Services Digital Broadcasting Terrestrial) e adicionando modificações Brasileiras

Norma de TV digital criada a partir do ISDB-T (Integrated Services Digital Broadcasting Terrestrial) e adicionando modificações Brasileiras Inovações Introduzidas pelo Brasil no Sistema ISDB-T Zalkind Lincoln HXD Interative Television ISDB-TB Norma de TV digital criada a partir do ISDB-T (Integrated Services Digital Broadcasting Terrestrial)

Leia mais

Algoritmos e Programação

Algoritmos e Programação ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA ELÉTRICA

Leia mais

Instalação JDK. Joyce França. Professora de Ciência da Computação - IFNMG

Instalação JDK. Joyce França. Professora de Ciência da Computação - IFNMG Instalação JDK Joyce França Professora de Ciência da Computação - IFNMG Máquina Virtual Java utiliza-se do conceito de máquina virtual, onde existe uma camada extra entre o sistema operacional e a aplicação,

Leia mais

Programação Estruturada e OO Aula 1.2 Introdução a Paradigmas de Programação. Prof. Bruno Moreno

Programação Estruturada e OO Aula 1.2 Introdução a Paradigmas de Programação. Prof. Bruno Moreno Programação Estruturada e OO Aula 1.2 Introdução a Paradigmas de Programação Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Motivação Por que existe mais de uma LP? Propósitos diferentes; Avanços tecnológicos;

Leia mais

Instalação JDK 10/03/2017

Instalação JDK 10/03/2017 1 Instalação JDK 10/03/2017 Máquina Virtual Java utiliza-se do conceito de máquina virtual, onde existe uma camada extra entre o sistema operacional e a aplicação, responsável por traduzir o que sua aplicação

Leia mais

Laboratório 01 NetBeans

Laboratório 01 NetBeans Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 2o. Semestre de 2017 Prof. Renato Pimentel Atividade individual. Laboratório 01 NetBeans 1 Introdução Os

Leia mais

Algoritmos e Programação

Algoritmos e Programação ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS Algoritmos e Programação

Leia mais

Linguagem de Programação II Programação Orientada a Objetos. Ambientes de Programação

Linguagem de Programação II Programação Orientada a Objetos. Ambientes de Programação Linguagem de Programação II Programação Orientada a Objetos Ambientes de Programação Prof. Alessandro Borges 2 Tópicos Prompt de comando JDK IDE NetBeans Eclipse Jbuilder Visual Café Visual J++ NetBeans

Leia mais

3 Trabalhos Relacionados

3 Trabalhos Relacionados 3 Trabalhos Relacionados As propostas para ambientes de apresentação declarativos compatíveis com sistemas que implementem o GEM são relativamente recentes. A própria especificação MHP, como já mencionado,

Leia mais

Curso online de Fundamentos em Android. Plano de Estudo

Curso online de Fundamentos em Android. Plano de Estudo Curso online de Fundamentos em Android Plano de Estudo Descrição do programa A Certificação Android ensina como usar as ferramentas necessárias para projetar e implantar aplicativos Android para dispositivos

Leia mais

Desenvolvimento de Sistemas para TV Digital. Prof. Fabrício J. Barth fbarth@tancredo.br Faculdades Tancredo Neves

Desenvolvimento de Sistemas para TV Digital. Prof. Fabrício J. Barth fbarth@tancredo.br Faculdades Tancredo Neves Desenvolvimento de Sistemas para TV Digital Prof. Fabrício J. Barth fbarth@tancredo.br Faculdades Tancredo Neves Objetivo Apresentar os conceitos básicos para o desenvolvimento de sistemas para TV Digital.

Leia mais

TV DIGITAL E SUAS TECNOLOGIAS. Willian Assalin da Silva - Acadêmicos da Faculdade Cenecista de Varginha - FACECA

TV DIGITAL E SUAS TECNOLOGIAS. Willian Assalin da Silva - Acadêmicos da Faculdade Cenecista de Varginha - FACECA TV DIGITAL E SUAS TECNOLOGIAS Willian Assalin da Silva - Acadêmicos da Faculdade Cenecista de Varginha - FACECA José Eduardo Silva Gomes - Orientador RESUMO Demonstrar os benefícios obtidos com a integração

Leia mais

Um estudo sobre localização de serviços sensíveis ao contexto para Televisão Digital Móvel

Um estudo sobre localização de serviços sensíveis ao contexto para Televisão Digital Móvel Um estudo sobre localização de serviços sensíveis ao contexto para Televisão Digital Móvel VALDESTILHAS, André RESUMO A popularização de dispositivos eletrônicos como celular e GPS (Global Position System)

Leia mais

Introdução à plataforma Java

Introdução à plataforma Java Introdução à plataforma Java Apresentação: Professor: Galvez Gonçalves prof.gago@gmail.com O que estudaremos 1. Os conceitos de programação orientada a objetos através de uma linguagem de programação que

Leia mais

Introdução ao IDE Netbeans (Programação Java)

Introdução ao IDE Netbeans (Programação Java) Universidade Federal do ABC Disciplina: Processamento da Informação (BC-05045) Assunto: Introdução ao IDE Netbeans Introdução ao IDE Netbeans (Programação Java) Conteúdo 1. Introdução... 1 1.1. Programas

Leia mais

5 Implementação 5.1 Plataforma 5.2 Arquitetura

5 Implementação 5.1 Plataforma 5.2 Arquitetura 5 Implementação Neste capítulo são apresentados os detalhes sobre a implementação da ferramenta. São discutidas as tecnologias envolvidas, assim como as limitações e problemas encontrados durante o desenvolvimento.

Leia mais

Ginga e a TV Digital Interativa no Brasil

Ginga e a TV Digital Interativa no Brasil Ginga e a TV Digital Interativa no Brasil Bruno Ghisi Engenheiro de Software weblogs.java.net/brunogh Alexandre Lemos Engenheiro de Software Objetivo Introduzir o conceito do cenário brasileiro de TV Digital,

Leia mais

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli Técnico em Informática Web JavaScript Profª Ana Paula Mandelli anapaula_mandelli@hotmail.com Para o JavaScript - NetBeans O NetBeans é um ambiente de desenvolvimento integrado (IDE) Java desenvolvido pela

Leia mais

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli Programa de computador sequência de comandos ou instruções executados por um computador com a finalidade de produzir um resultado e resolver um problema; Linguagem de programação método para a criação

Leia mais

INTRODUÇÃO A SISTEMAS OPERACIONAIS

INTRODUÇÃO A SISTEMAS OPERACIONAIS INTRODUÇÃO A SISTEMAS OPERACIONAIS Prof. Me. Hélio Esperidião DEFINIÇÃO DE SISTEMA OPERACIONAL. O sistema operacional é uma camada de software colocada sobre o hardware para gerenciar todos os componentes

Leia mais

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis Programação para Dispositivos Móveis Professor Ariel da Silva Dias Apresentação Android e IDEs Por que estudar programação para dispositivos móveis? Linha histórica da indústria durante os séculos Feudalismo

Leia mais

Curso online de. Formação em Front-End. Plano de Estudo

Curso online de. Formação em Front-End. Plano de Estudo Curso online de Formação em Front-End Plano de Estudo Descrição do programa O Programa de Desenvolvimento Web lhe oferece conhecimentos para desenvolver habilidades necessárias para se tornar um Desenvolvedor

Leia mais

Comunicado de imprensa

Comunicado de imprensa Toshiba apresenta nova gama de televisores para diferentes experiências multimédia Lisboa, 27 de março de 2014 A Toshiba lança no mercado nacional nova gama de televisores que vão revolucionar a forma

Leia mais

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis Programação para Dispositivos Móveis Professor Ariel da Silva Dias Desenvolvendo para Android Por que estudar programação para dispositivos móveis? Linha histórica da indústria durante os séculos Feudalismo

Leia mais

Uso da plataforma Ionic para Desenvolvimento de Aplicativo Móvel

Uso da plataforma Ionic para Desenvolvimento de Aplicativo Móvel 66 Resumos Expandidos: XII Mostra de Estagiários e Bolsistas... Uso da plataforma Ionic para Desenvolvimento de Aplicativo Móvel Thiago Merino Rodrigues Barbosa¹ Carlos Marcelo Tonisso Júnior² João Camargo

Leia mais

Por Bruno T Aquino, Roberto Luiz e Ricardo Vinicius Fabri, Abril 14, 2009.

Por Bruno T Aquino, Roberto Luiz e Ricardo Vinicius Fabri, Abril 14, 2009. J2ME E O PERFIL MIDP Por Bruno T Aquino, Roberto Luiz e Ricardo Vinicius Fabri, Abril 14, 2009. INTRODUÇÃO Com o passar do tempo os aparelhos celulares deixaram de ser apenas para ligações e agenda para

Leia mais

TV Digital Estamos preparados?

TV Digital Estamos preparados? TV Digital Estamos preparados? por Manoel Carvalho Marques Neto, Lile Palma Hattori e Sylvio Siqueira Silva A televisão digital é mais um grande avanço tecnológico que deverá chegar aos lares brasileiros

Leia mais

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br

Leia mais

ABINEE-TEC. Painel: Padrão TV Digital e Rádio Perspectivas para a Indústria de Componentes Investimentos e Mercado.

ABINEE-TEC. Painel: Padrão TV Digital e Rádio Perspectivas para a Indústria de Componentes Investimentos e Mercado. ABINEE-TEC Painel: Padrão TV Digital e Rádio Perspectivas para a Indústria de Componentes Investimentos e Mercado mkzuffo@lsi.usp.br Consórcio TAR Meios Eletrônicos Interativos Laboratório de Sistemas

Leia mais

Conferência Internacional Espectro, Sociedade e Comunicação IV. Rafael Diniz - Universidade de Brasília

Conferência Internacional Espectro, Sociedade e Comunicação IV. Rafael Diniz - Universidade de Brasília Conferência Internacional Espectro, Sociedade e Comunicação IV TV e Rádio Digitais Interativos: o apagão da tv analógica, a definição do Sistema Brasileiro de Rádio Digital e o futuro do broadcasting Conteúdo

Leia mais

6 Arquitetura do Sistema

6 Arquitetura do Sistema 6 Arquitetura do Sistema Nos capítulos anteriores são apresentados diversos aspectos relacionados com a geração das histórias (conteúdo, geração, níveis de interatividade, diversidade), que têm como apoio

Leia mais

Linguagem de Programação II

Linguagem de Programação II Centro Federal de Educação Tecnológica de Minas Gerais - CEFET-MG Linguagem de Programação II Tiago Alves de Oliveira tiago@div.cefetmg.br Sumário UNIDADE 1 CONCEITOS BÁSICOS E AMBIENTE DE DESENVOLVIMENTO

Leia mais

Informática I. Aula 2. Ementa

Informática I. Aula 2.  Ementa Informática I Aula 2 http://www.ic.uff.br/~bianca/informatica1/ Aula 2-29/08/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript e

Leia mais

Universidade Estadual do Piauí Centro de Ciências Exatas e Tecnológicas - CCET Bacharelado em Ciência da Computação.

Universidade Estadual do Piauí Centro de Ciências Exatas e Tecnológicas - CCET Bacharelado em Ciência da Computação. Universidade Estadual do Piauí Centro de Ciências Exatas e Tecnológicas - CCET Bacharelado em Ciência da Computação PSTI TV Digital M.Sc Nairon Viana nairon.viana@gmail.com 2010 Nairon Saraiva Viana 1

Leia mais

Middleware é um programa de computador que faz a mediação entre outros

Middleware é um programa de computador que faz a mediação entre outros 1 Introdução Este capítulo descreve, inicialmente, a motivação para a realização do trabalho. Posteriormente, são apresentados os objetivos traçados e, finalmente, detalhamos a organização desta dissertação.

Leia mais

Objetivos. Responder o que é Java; Mostrar as vantagens e desvantagens do Java; Compilar e executar um programa simples.

Objetivos. Responder o que é Java; Mostrar as vantagens e desvantagens do Java; Compilar e executar um programa simples. O que é Java Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/ 1 Objetivos Responder o

Leia mais

Manoel Campos da Silva Filho Mestre em Engenharia Elétrica / UnB 16 de novembro de 2011

Manoel Campos da Silva Filho Mestre em Engenharia Elétrica / UnB  16 de novembro de 2011 Sistemas Pós graduação em Telemática - Introdução à TV Digital Manoel Campos da Silva Filho Mestre em Engenharia Elétrica / UnB http://manoelcampos.com Instituto Federal de Educação, Ciência e Tecnologia

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS Tecnologia em Análise e Desenvolvimento de Sistemas 5ª. Série Programação Distribuída A atividade prática supervisionada (ATPS) é um método de ensinoaprendizagem desenvolvido

Leia mais

Java Standard Edition (JSE)

Java Standard Edition (JSE) Java Standard Edition (JSE) Capítulo 01. Introdução à tecnologia JAVA Esp. Márcio Palheta MSN: marcio.palheta@hotmail.com 1 Agenda Apresentação: Formação, graduação, certificação, área de atuação; Apresentação

Leia mais

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias 1 IDES E PROGRAMAÇÃO Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias {claudio,macdias}@icmc.usp.br 2 Agenda Conceitos Instalação e Configuração Compilação e Execução de Código IDEs Exemplo

Leia mais

Desenvolvedor Android: Avançado. Plano de Estudo

Desenvolvedor Android: Avançado. Plano de Estudo Desenvolvedor Android: Avançado Plano de Estudo Descrição do programa A Certificação Android fornece as ferramentas necessárias para projetar e implementar aplicativos para dispositivos Android, com base

Leia mais

Android OLÁ MUNDO MÓVEL. Prof. Dr. Joaquim assunção.

Android OLÁ MUNDO MÓVEL. Prof. Dr. Joaquim assunção. Android OLÁ MUNDO MÓVEL Prof. Dr. Joaquim assunção. Parte 1/3 SDK e Android Studio Java SE Development Kit Download and Install JDK 6 http://www.oracle.com/technetwork/java/javase/downloads/index.html

Leia mais

INTERFACES DE DESENVOLVIMENTO DE APLICAÇÕES PARA TV DIGITAL BASEADO NO MIDDLEWARE MHP. Aluno: Joel Alexandre Darós Orientador: Mauro Marcelo Mattos

INTERFACES DE DESENVOLVIMENTO DE APLICAÇÕES PARA TV DIGITAL BASEADO NO MIDDLEWARE MHP. Aluno: Joel Alexandre Darós Orientador: Mauro Marcelo Mattos INTERFACES DE DESENVOLVIMENTO DE APLICAÇÕES PARA TV DIGITAL BASEADO NO MIDDLEWARE MHP Aluno: Joel Alexandre Darós Orientador: Mauro Marcelo Mattos Roteiro da Apresentação Introdução e Objetivos Arquitetura

Leia mais

Prof. Daniel Hasse. Multimídia e Hipermídia

Prof. Daniel Hasse. Multimídia e Hipermídia Prof. Daniel Hasse Multimídia e Hipermídia AULA 01 O que é multimídia? Prof. Daniel Hasse Livro - Multimídia: conceitos e aplicações Os principais conceitos da tecnologia da multimídia serão abordados

Leia mais

Comparação entre o Desenvolvimento de Aplicações MHP e OpenTV

Comparação entre o Desenvolvimento de Aplicações MHP e OpenTV Comparação entre o Desenvolvimento de Aplicações MHP e OpenTV Paulyne Jucá 1, Andrino Coêlho 1, Rafael Duarte 1, Carlos Ferraz 2 1 Centro de Estudos e Sistemas Avançados do Recife C.E.S.A.R Rua Bione,

Leia mais

TV Digital. Análise de Sistemas de Comunicações 2017/II Maria Cristina Felippetto De Castro

TV Digital. Análise de Sistemas de Comunicações 2017/II Maria Cristina Felippetto De Castro Pesquisa em inicia nos anos 70 Visava qualidade da imagem (cinema) Dificuldade em melhorar a qualidade da transmissão a partir de uma plataforma analógica Solução encontrada com o advento das tecnologias

Leia mais

Protocolos de Aplicação WAP

Protocolos de Aplicação WAP Protocolos de Aplicação WAP WAP - Wireless Application Protocol Protocolo para aplicações sem fio; Padrão internacional para aplicações que utilizam comunicações sem fio; Foi desenvolvido para prover serviços

Leia mais

Nosso Primeiro Programa Java

Nosso Primeiro Programa Java Java linguagem, jvm, jdk, jre, ide Nosso Primeiro Programa Java Professoras: Ariane Machado Lima Fátima L. S. Nunes 1 Lembrando os objetivos desta disciplina Aprender a programar. Para isso precisamos

Leia mais

Java TV: Visão Geral

Java TV: Visão Geral Java TV: Visão Geral Ricardo da Silva Ogliari Juliana Rosa Santos Introdução Depois que o governo brasileiro definiu o padrão de TV Digital no Brasil, o assunto, de certa forma, tomou proporções elevadas,

Leia mais

TELEVISÃO DIGITAL INTERATIVA, UM NOVO HORIZONTE PARA A EDUCAÇÃO A DISTÂNCIA

TELEVISÃO DIGITAL INTERATIVA, UM NOVO HORIZONTE PARA A EDUCAÇÃO A DISTÂNCIA TELEVISÃO DIGITAL INTERATIVA, UM NOVO HORIZONTE PARA A EDUCAÇÃO A DISTÂNCIA José Daniel PEREIRA Ribeiro Filho (1); Rafael FERNANDES Lopes (2); Omar Andrés Carmona CORTES(3) (1) IFMA, São Luís-MA Brasil,

Leia mais

TV Digital Interativa: Oportunidade ou Sonho? TV Digital

TV Digital Interativa: Oportunidade ou Sonho? TV Digital TV Digital Interativa: Oportunidade ou Sonho? Luiz Fernando Gomes Soares Departamento de Informática PUC-Rio lfgs@inf.puc-rio.br Resumo. Esta apresentação discute primeiramente as características da TV

Leia mais

Aprender os conceitos de sistemas multimídia Conhecer os elementos multimídia Desenvolver projetos multimídia

Aprender os conceitos de sistemas multimídia Conhecer os elementos multimídia Desenvolver projetos multimídia Prof. Fabiano Taguchi fabianotaguchi@gmail.com http://fabianotaguchi.wordpress.com (66) 9953-7642 Aprender os conceitos de sistemas multimídia Conhecer os elementos multimídia Desenvolver projetos multimídia

Leia mais

Introdução ao middleware de TV Digital brasileiro

Introdução ao middleware de TV Digital brasileiro Introdução ao middleware de TV Digital brasileiro Bruno Ghisi Fundação CERTI SCJA, SCJP, SCMAD, SCSNI e IBM Certified Specialist SQ Ian Ribas Fundação CERTI SCEA Objetivo Fornecer uma visão geral sobre

Leia mais

Ciências da Computação Disciplina:Computação Gráfica

Ciências da Computação Disciplina:Computação Gráfica Ciências da Computação Disciplina:Computação Gráfica Professora Andréia Freitas 2013 7 semestre Aula 06 MEMORIA, F. Design para a Internet. 1ª Edição. Rio de Janeiro: Campus, 2005. ALVES, W. P. Crie, anime

Leia mais

Informática para Concursos

Informática para Concursos Informática para Concursos Professor: Thiago Waltz Ferramentas Multimídia a) Ferramentas Multimídia Multimídia: Multimídia é a combinação, controlada por computador, de pelo menos um tipo de mídia estática

Leia mais

APP WORK - SISTEMA DE GERENCIAMENTO DE HORÁRIO PONTO E GEOLOCALIZAÇÃO 1 APP WORK - POINT AND GEOLOCALIZATION SCHEME MANAGEMENT SYSTEM

APP WORK - SISTEMA DE GERENCIAMENTO DE HORÁRIO PONTO E GEOLOCALIZAÇÃO 1 APP WORK - POINT AND GEOLOCALIZATION SCHEME MANAGEMENT SYSTEM APP WORK - SISTEMA DE GERENCIAMENTO DE HORÁRIO PONTO E GEOLOCALIZAÇÃO 1 APP WORK - POINT AND GEOLOCALIZATION SCHEME MANAGEMENT SYSTEM Rafael Marisco Bertei 2, Vinícius Maciel 3, Josué Toebe 4 1 Projeto

Leia mais

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos. AULA 02 OBJETIVO: Características da Linguagem Orientada a Objetos. HABILIDADES TRABALHADAS: Comparação das características das linguagens orientadas a objetos frente às linguagens estruturadas. Conhecimentos

Leia mais

1) DADOS DA OBRA: Programando em Java 2 Teoria e Aplicações Rui Rossi dos Santos 2004 Axcel Books (

1) DADOS DA OBRA: Programando em Java 2 Teoria e Aplicações Rui Rossi dos Santos 2004 Axcel Books ( 1) DADOS DA OBRA: Título: Programando em Java 2 Teoria e Aplicações Autor: Rui Rossi dos Santos Ano: 2004 Editora: Axcel Books (http://www.axcel.com.br) Páginas: 580 Encadernação: Capa dura 2) DESCRIÇÃO

Leia mais

SISTEMAS MULTIMÍDIA PROF MOZART DE MELO

SISTEMAS MULTIMÍDIA PROF MOZART DE MELO SISTEMAS MULTIMÍDIA PROF MOZART DE MELO Programa da Disciplina Multimídia conceitos, comunicação homemmáquina. Autoria produção de diversos tipos de aplicativos multimídia, examinando-se as alternativas

Leia mais

UMA INTERFACE DE GERENCIAMENTO DE REDES DEFINIDAS POR SOFTWARE

UMA INTERFACE DE GERENCIAMENTO DE REDES DEFINIDAS POR SOFTWARE UMA INTERFACE DE GERENCIAMENTO DE REDES DEFINIDAS POR SOFTWARE Fagner Jefferson de Araújo Silva; Whasley Sousa Cardoso; Marcelo Portela Sousa. Instituto Federal de Educação, Ciência e Tecnologia da Paraíba

Leia mais

O TDT e as televisões interconectadas

O TDT e as televisões interconectadas O TDT e as televisões interconectadas Bruno Pinho (up201305783) Fábio Pacheco (up201305406) José Miguel Rua (up201304346) Leonor Mendes de Freitas (201207603) Marcelo Silva (up201304681) 1 Resumo A evolução

Leia mais

2 Conceitos Preliminares

2 Conceitos Preliminares 2 Conceitos Preliminares No capítulo anterior foram citados os três middleware para TV Digital terrestre mais populares: o europeu (MHP), o americano (ATSC) e o japonês (ISDB). Além desses, foi citado

Leia mais

Curso Online de E-commerce. Plano de Estudo

Curso Online de E-commerce. Plano de Estudo Curso Online de E-commerce Plano de Estudo Descrição do programa O programa oferece metodologias e técnicas necessárias para a implementação de soluções web baseadas no CMS para o suporte, estratégias

Leia mais

Grupo de Usuários Java do Noroeste Paulista. Introdução à tecnologia Java

Grupo de Usuários Java do Noroeste Paulista. Introdução à tecnologia Java Grupo de Usuários Java do Noroeste Paulista Introdução à tecnologia Java Referências http://www.java.sun.com; Ivan Luiz Marques Ricarte, Faculdade de Engenharia Elétrica e de Computação-UNICAMP (http://www.dca.fee.unicamp.br/~ricarte/welcome.html);

Leia mais

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software AJA Software www.ajasoftware.wordpress.com De Olho na Pista Documento de Arquitetura Confidencial De Olho na Pista, 2013 1 Sumário 1. Introdução 3 2. Metas e Restrições da Arquitetura 3 3. Padrão da Arquitetura

Leia mais

ORGANIZAÇÃO DE COMPUTADORES

ORGANIZAÇÃO DE COMPUTADORES ORGANIZAÇÃO DE COMPUTADORES TECNOLOGIAS EM REDES DE COMPUTADORES Semestre 2015.2 Prof. Dsc. Jean Galdino Arquitetura de Computadores Aula 03 Organização de computadores DEFINIÇÕES BÁSICAS e PARTES DE UM

Leia mais

ESTUDO DE PLATAFORMAS PARA A CONSTRUÇÃO DE APLICAÇÕES MÓVEIS. Gabriel de Biasi¹; Nilton Cézar de Paula²

ESTUDO DE PLATAFORMAS PARA A CONSTRUÇÃO DE APLICAÇÕES MÓVEIS. Gabriel de Biasi¹; Nilton Cézar de Paula² ESTUDO DE PLATAFORMAS PARA A CONSTRUÇÃO DE APLICAÇÕES MÓVEIS Gabriel de Biasi¹; Nilton Cézar de Paula² ¹ Acadêmico de Ciência da Computação e bolsista de Iniciação Científica, e-mail: biasi131@gmail.com

Leia mais

Televisão Digital Interativa se faz com Ginga

Televisão Digital Interativa se faz com Ginga Televisão Digital Interativa se faz com Ginga Guido Lemos de Souza Filho Luiz Eduardo Cunha Leite LAVID DI - UFPB Instituições Selecionadas para Elaborar Propostas de Alternativas Tecnológicas Requisitos

Leia mais

Algoritmia e Programação APROG. Tecnologia JAVA. IDE Netbeans. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Algoritmia e Programação APROG. Tecnologia JAVA. IDE Netbeans. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 APROG Algoritmia e Programação Tecnologia JAVA IDE Netbeans Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 Tecnologia Java Sumário Tecnologia Java Desenvolvimento de Programas Ambientes de Desenvolvimento

Leia mais

WAP. Determinação de Superfícies. Visíveis. José Almir Freire de Moura Júnior.

WAP. Determinação de Superfícies. Visíveis. José Almir Freire de Moura Júnior. WAP Determinação de Superfícies José Almir Freire de Moura Júnior Visíveis {jafmj@cin.ufpe.br} Tópicos Motivação Introdução Histórico Visão geral Modelo WAP Rede WAP Arquitetura WAP WAE WML WSP WTP WTLS

Leia mais

Desenvolvimento de Aplicações Móveis Multiplataforma Utilizando Ionic 2

Desenvolvimento de Aplicações Móveis Multiplataforma Utilizando Ionic 2 Universidade Federal de Pernambuco Centro de Informática Graduação em Ciência da Computação Desenvolvimento de Aplicações Móveis Multiplataforma Utilizando Ionic 2 Bruno Dutra de Lemos Neto Proposta de

Leia mais

1 Introdução Motivação

1 Introdução Motivação Introdução 15 1 Introdução Em sua origem, a WWW - World-Wide Web (Berners-Lee, 1994) foi concebida como uma aplicação de hipertexto, visando apresentar informações científicas com referências cruzadas

Leia mais

Obs.: para realizar estas atividades tenha certeza de que já tenha instalado no sistema operacional o Java JDK e o NetBeans.

Obs.: para realizar estas atividades tenha certeza de que já tenha instalado no sistema operacional o Java JDK e o NetBeans. 1 - Criando meu primeiro programa em Java Para criar um programa Java podemos utilizar um editor de textos (Bloco de Notas/Windows, Notepad ++ ou GEdit/Linux) e o console do sistema operacional, ou um

Leia mais

IMPLEMENTAÇÃO DE UM BLOQUEADOR DE CONTEÚDO PARA TV DIGITAL

IMPLEMENTAÇÃO DE UM BLOQUEADOR DE CONTEÚDO PARA TV DIGITAL IMPLEMENTAÇÃO DE UM BLOQUEADOR DE CONTEÚDO PARA TV DIGITAL Gabriel de Souza LEITÃO (1), Vicente Ferreira LUCENA Jr (2) (1) Universidade Federal do Amazonas, Av. Gen. Rodrigo Octávio Jordão Ramos, 3000,

Leia mais

Linguagem Técnica I. Prof. Jonatas Bastos

Linguagem Técnica I. Prof. Jonatas Bastos Linguagem Técnica I Prof. Jonatas Bastos Email: jonatasfbastos@gmail.com 1 Objetivo da Disciplina p Entender os conceitos da programação orientada a objetos; p Aplicar conceitos básicos relativos a objetos

Leia mais

Implementação da Especificação de Tempo Real Java para o EPOS

Implementação da Especificação de Tempo Real Java para o EPOS UNIVERSIDADE FEDERAL DE SANTA CATARINA Curso de Ciências da Computação Implementação da Especificação de Tempo Real Java para o EPOS ANDERSON LUIS ZAPELLO Florianópolis, julho de 2005 ANDERSON LUIS ZAPELLO

Leia mais