Вы находитесь на странице: 1из 4

O uso de Banco de Dados Orientado a Documentos em uma aplicação para TV

Digital

Danilo Araújo PORTELA (1); Fábio de Jesus Lima GOMES (2)


(1) Instituto Federal de Educação, Ciência e Tecnologia Piauí, Praça da Liberdade, n°1597, Centro. Tel:(86) 3215-
5224,Fax: (86) 3215-5206, e-mail: daniloparaujo@gmail.com
(2) Instituto Federal de Educação, Ciência e Tecnologia Piauí, e-mail: fabiojlgomes@gmail.com

RESUMO
O trabalho visa o desenvolvimento de uma implementação de referência para persistência em banco de
dados, com aplicações para TV Digital desenvolvidas em NCL e Lua executando sob o Ginga, middleware
do Sistema Brasileiro de TV Digital (SBTVD). O banco de dados utilizado é o CouchDB, Banco de Dados
Orientado a Documentos que implementa API REST, interface padrão de consultas, inserção, atualização e
remoção de dados. Através do canal de interatividade proposto pelo SBTVD a aplicação em NCLua faz o
uso do protocolo HTTP para conexão direta com o banco de dados não necessitando de uma aplicação
intermediária do lado do servidor para gerenciar as requisições da aplicação para TV Digital que atua como
cliente.

Palavras-chave: TV-Digital, Bancos de Dados Orientado a Documentos, API-REST, HTTP

1 INTRODUÇÃO
Um dos grandes desafios quando é proposto desenvolver aplicações para o Sistema Brasileiro de TV Digital
(SBTVD), é fazer com que as mesmas utilizem banco de dados. A arquitetura do middleware Ginga, camada
de software intermediário para o SBTVD, não provê algum componente que trate desta questão,
impossibilitando que aplicações utilizem banco de dados no dispositivo padrão (Set-top Box - STB) que
segue a norma para decodificação do sinal digital no Brasil.
Portanto é proposto o desenvolvimento de uma aplicação de referência para persistência em banco de dados,
facilitando o uso dos mesmos em aplicações declarativas utilizando a linguagem declarativa NCL e de script
Lua sob o Ginga-NCL, subsistema lógico do Ginga que processa documentos NCL. Para tanto, é utilizado
um banco de dados não-convencional, o Apache CouchDB, um Banco de Dados orientado a documentos
livre de esquema, acessível através de uma API denominada REST e que trabalha com dados utilizando a
notação JavaScript Object Notation (JSON).

Explorando o canal de interatividade do SBTVD, é possível fazer uso de alguns protocolos para o acesso à
internet, como o HTTP. O CouchDB possui uma API REST, o que o torna pronto para receber requisições de
qualquer cliente que implemente o protocolo HTTP (Fielding), neste caso, a aplicação executando sob o
Ginga-NCL. Então, através deste protocolo é possível fazer qualquer tipo de persistência no banco de dados,
como escrita, leitura, atualização e remoção utilizando a API do próprio CouchDB, sem precisar de
aplicações intermediárias, para poder prover o acesso aos dados. Atuando a aplicação para a TV Digital
como Cliente e o Banco de Dados como Servidor.
Nas seções a seguir será mostrado como funciona as aplicações para o SBTVD, o middleware Ginga e o
banco de dados Apache CouchDB. Além da proposta de ferramenta para persistência em banco de dados.

2 A TV DIGITAL NO BRASIL
Atualmente o Brasil está em processo de transição do sistema analógico de transmissão para o sistema de TV
digital. Nos países em que essa transição já ocorreu, o principal objetivo de utilizar essa nova plataforma era
a possibilidade de uma melhor qualidade de áudio e vídeo e utilizar serviços interativos. No Brasil, Segundo
o Decreto presidencial 4.901, de 26 de novembro de 2003, o objetivo maior não é a troca de tecnologias e
sim promover a inclusão social, e segundo o Decreto 5.820, de 29 de julho de 2006, define que a TV digital
no Brasil possibilitará interatividade, transmissão em alta definição, mobilidade, transmissão digital
simultânea para recepção fixa, móvel, portátil e também define as tecnologias e regras para implantação da
TV digital.
A interatividade permitida por esta nova plataforma de comunicação digital retira o usuário da posição
passiva convencional da TV analógica. A TV digital poderá abranger áreas absolutamente distintas do que se
tem atualmente como papel da televisão na sociedade, como os serviços de t-commerce (comércio eletrônico
via televisão), t-banking (serviços bancários via televisão), troca de mensagens eletrônicas (e-mail) e
governo eletrônico (T-gov).

3 MIDDLEWARE GINGA
O Ginga está sendo desenvolvido pelas universidades Pontifícia Universidade Católica do Rio de Janeiro
(PUC-RIO) e Universidade Federal da Paraíba (UFPB) e traz uma série de vantagens para a arquitetura da
TV digital brasileira como a portabilidade (é independente do hardware que o embarga), e interatividade.
Esse middleware é uma especificação em código aberto, em que qualquer pessoa pode desenvolver
aplicações interativas, logo não é uma plataforma disponibilizada apenas por grandes emissoras.

3.1 Arquitetura
O middleware do padrão brasileiro de TV digital é o Ginga [2] que dispõe de uma arquitetura que pode ser
dividida em três grandes módulos: Ginga-J (ambiente para processamento de aplicações procedurais
utilizando java), o Ginga-NCL (ambiente para aplicações declarativas usando NCL) e o Ginga-CC (é uma
camada que dar suporte aos ambientes declarativos e procedural do Ginga), como mostra a Figura1.

Figura 1 – Grafo de uma rede social


Neste artigo, será abordado o Ginga-NCL que é o módulo composto por três componentes principais: uma
máquina virtual Lua (que interpreta os scripts Lua), um formatador NCL e um exibidor baseado em
XHTML. NCL é uma linguagem declarativa adotada pelo ambiente Ginga-NCL, além do mesmo suportar
Lua, que é uma linguagem imperativa, de script, e muito utilizada no desenvolvimento de jogos e aplicações
industriais, além de ter padrão mundial na área de entretenimento.

4 APACHE COUCHDB
O CouchDB é um banco de dados orientado a documentos (BDOD) livre de esquema e distribuído, que
utiliza a Web como princípio arquitetural. Lennon (Lennon, 2009) observa que o termo “Couch” é o
acrônimo para “Cluster of Unrealiable Commodity Hardware” (Conjunto de Hardware Commodity Não-
Confiáveis), refletindo o objetivo do banco de dados ser extremamente escalável, oferecendo alta
disponibilidade e confiabilidade, mesmo quando executando em um hardware que é tipicamente suscetível a
falhas.
O CouchDB disponibiliza uma aplicação Web para gerenciamento de suas instâncias chamada Futon. Esta
aplicação implementa diretamente a API REST disponibilizada pelo servidor, onde o browser, que também
implementa o protocolo HTTP, atua como cliente para realizar chamadas remotas à API (Lennon, 2009).

4.1 API REST


Fielding trata a interação entre componentes como sendo um estilo cliente-servidor estruturado em camadas,
onde estas camadas são estruturas de requisição e resposta que têm aparência de um estilo de invocação
remota, mas, no conceito do REST, estas mensagens são de fato são enviadas a um recurso conceitual ao
invés de uma implementação de fato.
O REST utiliza o padrão de Universal Resource Identifier (URI), que é uma especificação projetada para
possibilitar um padrão unificado de identificação de recursos. Através de uma URI e dos quatro métodos
HTTP (GET, PUT, POST, DELETE), a arquitetura REST permite a realização de virtualmente qualquer
número de operações (Tikov, 2010).

Figura 2 - Exemplo de URI [8]


O Hypertext Transfer Protocol (HTTP) é utilizado como protocolo de transporte para realização de
consultas, operações de atualização e remoção de dados e administração do banco de dados. Por ser um
protocolo sem estado e com recursos de armazenamento, a escalabilidade do protocolo HTTP é utilizada
como uma importante propriedade dos BDODs.

5 DESCRIÇÃO DO TRABALHO
Este trabalho visa o desenvolvimento de uma aplicação para o uso de banco de dados em aplicações
implementadas para a TV Digital Brasileira. Foi escolhido o contexto do Ginga-NCL por oferecer uma maior
quantidade de ferramentas de testes e já prover interatividade diante dos Set-Top Box em uso no Brasil.
A linguagem Lua possui uma biblioteca denominado LuaSocket, que é composto por duas partes: um núcleo
C que fornece suporte para as camadas de transporte TCP e UDP, e um conjunto de módulos Lua que
adiciona o suporte para a funcionalidade geralmente necessária para acessar a internet.
Portanto, na aplicação desenvolvida utilizando as linguagens NCL e LUA executando sob o middleware
Ginga, será utilizado o banco CouchDB através da API REST. O módulo LuaSocket se comunicará com o
banco de dados utilizando o protocolo HTTP para a comunicação e transmissão das informações.
Os dados serão tratados através de JSON (JavaScript Object Notation) , um padrão leve de intercâmbio de
dados, projetado para facilitar a leitura e a escrita de estruturas, também sendo de fácil interpretação. O
CouchDB utiliza o JSON como padrão de armazenamento de dados. Do lado da aplicação executando no
STB será utilizada uma biblioteca para tratar esses dados, o LuaJSON.
Fazendo a aplicação desta maneira, elimina-se uma aplicação intermediária do lado do servidor para a
comunicação entre a requisição da aplicação cliente para a TV Digital e o banco de dados, pois o CouchDB,
ao possuir uma API REST, já trata diretamente as requisições HTTP, e através dos métodos faz as operações
necessárias de persistência no banco de dados.
A arquitetura da aplicação pode ser vista na figura 3.
Figura 3. Arquitetura da aplicação proposta

6 CONCLUSÕES
A partir da tecnologia descrita neste artigo pode-se perceber que é viável o desenvolvimento de aplicações
para TV Digital com persistência em banco de dados remotos sem a necessidade de aplicações intermediárias
do lado do servidor para gerenciar a persistência no banco de dados.
E o uso do BDOD CouchDB provê também um melhor desempenho no acesso aos dados devido à grande
facilidade de escalabilidade e distribuição do mesmo, até geograficamente.
Com o uso das linguagens NCL e Lua e o banco de dados CouchDB pode-se desenvolver uma aplicação para
determinar as reais condições do uso de banco de dados com aplicações para TV Digital, e a viabilidade de
uso devido à velocidade de conexão com a internet, a partir do canal de interatividade, que segundo a CETIC
(Centro de Estudos sobre as Tecnologias da Informação e da Comunicação) (2009) é de até 256kbps em 34%
dos domicílios no Brasil.

REFERÊNCIAS

Fielding, R. T. Architetural Styles and the Design of Network-based Software Architetures. University
of California Irvine.
GINGA. Disponível em: < http://www.ginga.org.br/>. Acesso em jun. 2010.
L.F.G. Soares ET AL. Digital terrestrial television – Data coding and transmission specification for
digital broadcasting – Part 2: Ginga-NCL for fixed and mobile receivers – XML application language
for application coding.
CETIC – Centro de Estudos sobre as Tecnologias da Informação e da Comunicação. Velocidade da conexão
à internet utilizada no domicílio, 2009. Disponível em: <http://www.cetic.br>
Lennon, J. (31 de Março de 2009). Explorando o CouchDB. Acesso em 12 de junho de 2010.
http://www.ibm.com/developerworks/br/library/os-couchdb/
ABNT NBR 15607-1:2008
JSON. Introducing JSON. Disponível em: http://www.json.org/ Acesso em em jun de 2010
TIKOV, S. A Brief Introduction to REST. Disponível em: <http://www.infoq.com/articles/rest-
introduction>. Acesso em jun de 2010
SBTVD Forum, 2008. Norma ABNT NBR 15606-2:2007.

Вам также может понравиться