Artigo Java Magazine 68 - Conhecendo um pouco mais a TV Digital

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Artigo da Revista Java Magazine Edição 68.

Esse artigo faz parte da revista Java Magazine edição 68. Clique aqui para ler todos os artigos desta edição

Conhecendo um pouco mais a TV Digital

Exemplo de aplicação interativa utilizando o canal de retorno

Um exemplo de aplicação que utiliza NCL e Lua no lado do cliente, Java no servidor e ferramentas de auxílio ao desenvolvedor

 

De que se trata o artigo:

Evolução do artigo “Conhecendo a TV Digital”, apresentado na Edição 66, com a apresentação de novas ferramentas de apoio ao desenvolvimento. Inclui um exemplo prático de uma aplicação interativa para TV Digital, um pouco mais elaborada e simulando a utilização do canal de retorno, com NCL e Lua no lado do cliente e Java no lado do servidor.

 

Para que serve:

Enquanto aguardamos definições sobre Java no lado do cliente (Ginga-J), explorar e aprender um pouco mais de NCL e Lua, com o apoio do Ginga-NCL Virtual Set-Top Box.

 

Em que situação o tema é útil:

Para o desenvolvimento de aplicações interativas para TV Digital, além do Java, será muito útil também o conhecimento das linguagens NCL e Lua.

 

Conhecendo um pouco mais a TV Digital:

Como toda nova tecnologia, o início é repleto de indefinições e novos aprendizados. Para que o desenvolvedor de software esteja preparado para este novo cenário, este é o momento ideal para embarcar na TV Digital.

No artigo “Conhecendo a TV Digital” (Edição 66) foram apresentados alguns conceitos básicos da TV Digital e uma aplicação com interatividade local, em NCL e Java (Xlet). Neste artigo é apresentada uma aplicação com interatividade remota (cliente-servidor), com NCL e Lua no cliente (set-top box), e Java no servidor. Para emular a aplicação do exemplo é utilizado o Ginga-NCL Set-Top Box Virtual.

 

 

No artigo anterior foram apresentados vários conceitos sobre a TV Digital, o middleware Ginga e uma aplicação de exemplo simples, com interatividade local, isto é, sem a comunicação do set-top box com um servidor.

Neste artigo, apresentaremos um exemplo mais elaborado, com interatividade remota, simulando o pedido de uma pizza através da TV. O exemplo é executado no “Ginga-NCL Virtual Set-Top Box”, máquina virtual que contém a implementação de referência do middleware. O servidor é implementado em Java e o cliente nas linguagens Lua e NCL.

Devido ao fato do Ginga-NCL Virtual Set-Top Box não suportar a execução de código Java, não podemos codificar um Xlet no lado do cliente. A parte Java deste exemplo fica por conta apenas do servidor.

Por falar em Java no lado do cliente, temos novidades em relação ao Ginga-J (veja o quadro “JavaDTV”).

Exemplo 

O código do exemplo deste artigo, disponível para download no site da revista, é uma aplicação cliente-servidor. O cliente utiliza as linguagens NCL e Lua, e se comunica com o servidor Java através de uma conexão via sockets. A aplicação simula o pedido de compra de uma pizza pela televisão. O cliente insere o número de seu telefone através das teclas 0-9 do controle remoto, e então confirma os dados apertando a tecla verde ou OK do controle. O servidor busca então o cadastro do cliente e retorna suas informações, tais como nome e endereço. A partir daí, o cliente pode então escolher opções de tamanho e sabor da pizza. Para finalizar, é requisitada a confirmação do pedido ao cliente. Se este for confirmado, a requisição é enviada ao servidor. Abaixo seguem instruções para instalação, configuração e execução do servidor e do cliente.

Servidor

O objetivo do servidor neste exemplo é simular um provedor de serviço, como o que será responsável por atender às requisições dos telespectadores que irão interagir com a aplicação deste provedor. No nosso exemplo, o provedor do serviço é a pizzaria.

O código do servidor está na pasta servidor, pacote pizzaserver. É disponibilizado o código-fonte da aplicação no diretório PizzaServer/src. Também está disponível o arquivo build.xml utilizado para compilação com o Ant.

O código já compilado encontra-se no diretório PizzaServer/dist. Para executar utilize o comando:


 java -jar PizzaServer.jar

 

O servidor fica à espera de requisições do cliente, exibindo a mensagem "Pronto para receber requisições...".

Como não é o foco principal do artigo, este servidor é muito simples, mas em uma aplicação real teríamos uma arquitetura com um servidor de aplicações e banco de dados, por exemplo.

 

Cliente

Faça o download do Ginga-NCL Virtual Set-top Box, versão 0.9.28 (aprox. 320 Mb), que pode ser obtido a partir da comunidade Ginga do Portal do Software Público Brasileiro (seção Links). O Set-top Box Virtual Ginga-NCL é uma máquina virtual que contém o Ginga-NCL versão C++, que em termos de implementação de funcionalidades, é mais completa que o Ginga NCL Player mostrado no artigo anterior. Como já mencionado, esta versão do Set-Top Box Virtual não suporta a execução de Java (Xlets), mas em contrapartida, suporta a execução de scripts Lua.

Descompacte o arquivo fedora-fc7-ginga-i386-0.9.28.zip no diretório de sua preferência. A seguir são descritos os passos necessários para instalação da máquina virtual.

Para executar a máquina virtual, há três opções: VMware Player (Windows ou Linux), VMware Workstation (Windows ou Linux), ou VMware Fusion (Mac OS X). Os dois últimos são trials e podem ser obtidos em http://www.vmware.com/products/ws/ e http://www.vmware.com/products/fusion/, respectivamente. O VMWare Player é gratuito e pode ser obtido em http://www.vmware.com/products/player/.

No exemplo utilizaremos o VMWare Player. A partir da tela inicial do VMware Player, carregue o arquivo fedora-fc7-ginga-i386.vmx da máquina virtual.

Na inicialização da máquina virtual, o boot loader (grub) apresenta duas opções. A opção default, Ginga-NCL Development Set-top Box - v.0.9.28, carrega a máquina virtual.

A Figura 1 mostra a tela inicial apresentada após o boot do set-top box virtual. Esta tela mostra como carregar aplicações no set-top box virtual e como executá-las. Também é mostrado o IP da máquina virtual, que na figura aparece como 192.168.19.128, mas pode mudar na sua instalação, e a correspondência entre os botões que seriam do controle remoto e o teclado padrão do computador.

As teclas direcionais do controle remoto são mapeadas diretamente para as teclas direcionais do teclado. A tecla ENTER do teclado corresponde ao botão OK do controle remoto. Os botões menu e info correspondem às teclas F5 e F6 respectivamente. Já para os botões coloridos do controle remoto, a tecla F1 está associada ao botão vermelho, a tecla F2 ao botão verde, a tecla F3 ao botão amarelo, e a tecla F4 ao botão azul.

 

Figura 1. Tela inicial do Ginga-NCL Set-top box.

A máquina virtual deve ser acessada remotamente pelo protocolo SSH (Secure Shell). Os arquivos que compõem a aplicação são carregados na máquina virtual com a utilização dos protocolos SFTP ou SCP, que implementam a cópia remota segura de arquivos. Algumas ferramentas que implementam clientes destes protocolos estão disponíveis gratuitamente. Para sistemas Linux, pode ser utilizado o OpenSSH (www.openssh.org). Para Windows, estão disponíveis ainda o WinSCP e o SSH Secure Shell Client (http://www.colorado.edu/its/security/SSHSecureShellClient.exe). Além das citadas, pode ser utilizada qualquer outra de sua preferência. Seja qual for a ferramenta escolhida, o importante é que ela possibilite a conexão por SSH e a cópia remota de arquivos. Neste artigo é utilizada a ferramenta SSH Secure Shell Client, cuja instalação é trivial.

Ao executar o SSH Secure Shell Client, selecione no menu File a opção Quick connect. No campo Host Name insira o endereço IP da máquina virtual, e no campo User Name, o usuário "root", conforme mostra a "

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?