Académique Documents
Professionnel Documents
Culture Documents
PARA COM
ERCIO ELETR
ONICO NO
SISTEMA BRASILEIRO DE TV DIGITAL
MANOEL CAMPOS DA SILVA FILHO
DISSERTAC
AO DE MESTRADO EM ENGENHARIA EL
ETRICA
DEPARTAMENTO DE ENGENHARIA EL
ETRICA
FACULDADE DE TECNOLOGIA
UNIVERSIDADE DE BRAS
ILIA
UNIVERSIDADE DE BRAS
ILIA
FACULDADE DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA EL
ETRICA
ARQUITETURA ORIENTADA A SERVIC OS
PARA COM
ERCIO ELETR
ONICO NO
SISTEMA BRASILEIRO DE TV DIGITAL
MANOEL CAMPOS DA SILVA FILHO
Orientador: PROF. DR. PAULO ROBERTO DE LIRA GONDIM, ENE/UNB
DISSERTAC
AO DE MESTRADO EM ENGENHARIA EL
ETRICA
PUBLICAC
AO PPGENE.DM - 439/2011
BRAS
ILIA
FACULDADE DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA EL
ETRICA
ARQUITETURA ORIENTADA A SERVIC OS
PARA COM
ERCIO ELETR
ONICO NO
SISTEMA BRASILEIRO DE TV DIGITAL
MANOEL CAMPOS DA SILVA FILHO
DISSERTAC
AO DE MESTRADO ACAD
ETRICA.
APROVADA POR:
Prof. Dr. Paulo Roberto de Lira Gondim, ENE/UnB
Orientador
Prof. Dr. Divanilson Rodrigo Campelo, ENE/UnB
Examinador interno
Prof. Dr. Dbio Leandro Borges, CIC/UnB
Examinador externo
BRAS
AFICA
MANOEL CAMPOS DA SILVA FILHO
Arquitetura orientada a servicos para com ercio eletr onico no Sistema Brasileiro de TV
Digital
2011xv, 107p., 201x297 mm
(ENE/FT/UnB, Mestre, Engenharia El etrica, 2011)
Dissertac ao de Mestrado - Universidade de Braslia
Faculdade de Tecnologia - Departamento de Engenharia El etrica
REFER
ENCIA BIBLIOGR
AFICA
MANOEL CAMPOS DASILVAFILHO(2011) Arquitetura orientada a servicos para com ercio
eletr onico no Sistema Brasileiro de TV Digital. Dissertac ao de Mestrado em Engenha-
ria El etrica, Publicac ao 439/2011, Departamento de Engenharia El etrica, Universidade de
Braslia, Braslia, DF, 107p.
CESS
AO DE DIREITOS
AUTOR: Manoel Campos da Silva Filho
T
ITULO: Arquitetura orientada a servicos para com ercio eletr onico no Sistema Brasileiro de
TV Digital.
GRAU: Mestre ANO: 2011
ARIO
RESUMO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II
ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III
1 INTRODUC
AO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 OBJETIVOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 GERAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 ESPEC
IFICOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 JUSTIFICATIVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 METODOLOGIA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 ORGANIZAC
AO DO TRABALHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 REVIS
AO BIBLIOGR
AFICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1 COM
ERCIO ELETR
ERCIO ELETR
AO IMPLEMENTADA . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2.1 MELHORIA DE DESEMPENHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.2 TEMAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5 FRAMEWORK DE COMUNICAC
AO DE DADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.1 INTEGRAC
AO ENTRE Web E TV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.2 DELIMITAC
AO DO PROBLEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.3 TECNOLOGIAS ENVOLVIDAS E TRABALHOS RELACIONADOS . . . . . . . . . . . . 61
5.3.1 TECNOLOGIAS DE Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.3.2 LUA E OS scripts NCLUA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.3.3 PROTOCOLO TCP NO GINGA-NCL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.3.4 IMPLEMENTAC
OES DE SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.4 PROPOSTA DE NOVAS IMPLEMENTAC
OES DE HTTP E SOAP . . . . . . . . . . . . 66
5.4.1 DECIS
OES DE PROJETO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.4.2 NCLUA HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.4.3 NCLUA SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.5 EXEMPLOS DE USO E TESTES DE INTEROPERABILIDADE . . . . . . . . . . . . . . . . . 70
5.5.1 EXEMPLOS DE USO DO NCLUA HTTP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.5.2 EXEMPLOS DE USO DO NCLUA SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.6 AMBIENTE DE DESENVOLVIMENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.7 AVALIAC
AO DE DESEMPENHO E COMPARAC
OES . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.7.1 AVALIAC
AO DE DESEMPENHO DO NCLUA SOAP . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.7.2 COMPARATIVO ENTRE OS M
OES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.2 TRABALHOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
REFER
ENCIAS BIBLIOGR
AFICAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
AP
ENDICE A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
SCREENSHOTS DA APLICAC
AO DE T-Commerce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
LISTA DE FIGURAS
2.1 Arquitetura de Aplicac ao Distribuda (adaptada de [InterSystems 2010]). ....... 15
2.2 Arquitetura conceitual de sistemas orientados a servicos............................. 17
2.3 Organizac ao da Especicac ao do WSDL................................................. 24
3.1 Vis ao Geral da Arquitetura SOA proposta para T-Commerce ....................... 29
3.2 Diagrama de Casos de Uso: Funcionalidades providas a desenvolvedores....... 32
3.3 Diagrama de Casos de Uso: Funcionalidades providas aos usu arios .............. 33
3.4 Tecnologias Core da arquitetura de T-Commerce....................................... 34
3.5 Aplicac ao de T-Commerce: Tela inicial mostrando os produtos em destaque ... 36
3.6 Aplicac ao de T-Commerce: Diagrama de sequ encia do processo de compra .... 37
3.7 NCLua RSS Reader - Leitor de Notcias para TV Digital ............................ 38
3.8 Rastreamento de encomendas pela TVD: Inserc ao do c odigo de rastreamento . 39
3.9 Rastreamento de encomendas pela TVD: Situac ao da entrega da encomenda .. 40
3.10 Diagrama de Classes dos Web Services implementados .............................. 41
3.11 Diagrama das classes utilizadas internamente pelos WSs implementados ...... 42
3.12 Web Service dos Correios: Calculando preco e prazo de entrega de encomenda 44
3.13 Arquitetura de T-Commerce: Diagrama de Distribuic ao/Implantac ao............. 46
4.1 Novo diagrama de classes do LuaOnTV.................................................. 57
4.2 Gr aco de M aquinas de Estados da classe EventManager ........................... 58
4.3 Classes relacionadas ao novo recurso de temas do LuaOnTV....................... 58
4.4 Diagrama de Componentes do LuaOnTV ................................................ 59
5.1 Diagrama de M aquinas de Estados do M odulo tcp.lua................................ 64
5.2 Diagrama de M aquinas de Estados do M odulo tcp.lua (co-rotinas em execuc ao) 65
5.3 Diagrama de Componentes do NCLua SOAP e NCLua HTTP ..................... 70
6.1 Aplicac ao de T-Commerce: Tela inicial com produtos em destaque ............... 87
6.2 Aplicac ao de T-Commerce: Busca de produtos ......................................... 87
6.3 Aplicac ao de T-Commerce: Login (utilizando e-mail ou CPF)...................... 88
6.4 Aplicac ao de T-Commerce: Recuperar senha por e-mail ou SMS.................. 88
6.5 Aplicac ao de T-Commerce: Cadastro de Clientes ...................................... 89
6.6 Aplicac ao de T-Commerce: Cadastro de Enderecos ................................... 89
6.7 Aplicac ao de T-Commerce: Selec ao de Enderecos ..................................... 90
vi
6.8 Aplicac ao de T-Commerce: Formas de Pagamento .................................... 90
6.9 Aplicac ao de T-Commerce: Finalizar Compra .......................................... 91
LISTA DE TABELAS
3.1 Requisitos da Arquitetura de T-Commerce ............................................... 28
3.2 Requisitos funcionais e n ao funcionais da aplicac ao de T-Commerce ............. 35
4.1 Requisitos implementados na nova vers ao do LuaOnTV............................. 53
5.1 Avaliac ao de Desempenho do NCLua SOAP............................................ 74
5.2 Comparativo entre aplicac oes de TVD sem e com os m odulos implementados 76
5.3 Comparac ao entre NCLua SOAP e outros toolkits SOAP............................ 77
6.1 Objetivos Especcos Alcancados.......................................................... 80
viii
LISTA DE C
ODIGOS FONTE
2.1 Estrutura de um envelope SOAP [Curbera et al. 2002] ............................... 17
2.2 Envelope SOAP transportado via HTTP [Curbera et al. 2002]...................... 18
2.3 Chamada SOAP RPC empacotada em HTTP [Curbera et al. 2002] ............... 19
2.4 Resposta de requisic ao SOAP empacotada em HTTP [Curbera et al. 2002] .... 20
2.5 Fragmento de uma descric ao de WSDL [Curbera et al. 2002] ...................... 22
2.6 Informac oes concretas de ligac ao em um WSDL [Curbera et al. 2002] .......... 23
5.1 Exemplo de tabela Lua gerada a partir do XML de uma resposta SOAP ......... 68
5.2 Exemplo de simplicac ao de retorno de resposta SOAP pelo NCLua SOAP ... 69
5.3 Exemplo de envio de requisic ao GET com NCLua HTTP ........................... 70
5.4 Exemplo de consumo de Web Service de previs ao do tempo ........................ 71
5.5 Exemplo de consumo de WS de consulta de endereco a partir do CEP........... 72
ix
LISTA DE TERMOS E SIGLAS
AJAX Asynchronous Javascript And XML
API Application Programming Interface
ATSC Advanced Television Systems Committee
B2B Business-to-Business
B2C Business-to-Consumer
BPEL Business Process Execution Language
CASE Computer-Aided Software Engineering
CEP C odigo de Enderecamento Postal
CETIC.br Centro de Estudos sobre as Tecnologias da Informac ao e da Comunicac ao
CGI.br Comit e Gestor da Internet no Brasil
COM+ Component Object Model Plus
CORBA Common Object Request Broker Architecture
CSS Cascade Style Sheets
DAO Data Access Objects
DCOM Distributed Component Object Model
DVB Digital Video Broadcast
E-Commerce Com ercio Eletr onico
EAI Enterprise Application Integration
ECT Empresa Brasileira de Correios e Tel egrafos
EDI Eletronic Data Interchange
HTML HyperText Markup Language
x
HTTP HyperText Transfer Protocol
IDE Integrated Development Environment
ISDB-T Integrated Services Digital Broadcasting Terrestrial
Java EE Java Enterprise Edition
JAX Java API for XML
JAX-WS Java API for XML Web Services
JDBC Java Database Connectivity
JDK Java Development Kit
JPA Java Persistent API
JRE Java Runtime Environment
JSON JavaScript Object Notation
LAN Local Area Network
LWUIT Light Weight UI Toolkit
M-Commerce Com ercio M ovel
MIME Multipurpose Internet Mail Extensions
MTA Mail Transfer Agent
NCL Nested Context Language
NIC.br N ucleo de Informac ao e Coordenac ao do Ponto BR
OO Orientac ao a Objetos
PNBL Plano Nacional de Banda Larga
REST Representational State Transfer
RIA Rich Internet Application
RMI Remote Method Invocation
RPC Remote Procedure Call
RSS Really Simple Syndication
SBTVD Sistema Brasileiro de TV Digital
SBTVD-T Sistema Brasileiro de Televis ao Digital Terrestre
SGBD Sistema Gerenciador de Banco de Dados
SMS Short Message Service
SMTP Simple Mail Transfer Protocol
SOA Service Oriented Architecture
SOAP Simple Object Access Protocol
SQL Structured Query Language
STB Set-top Box (Conversor Digital)
T-Commerce Com ercio pela TV Digital
UBR UDDI Business Registry
UDDI Universal Description, Discovery and Integration
UML Unied Modeling Language
UMTS Universal Mobile Telecommunications System
URI Uniform Resource Identier
URL Uniform Resource Locator
W3C World Wide Web Consortium
Web, WWW World Wide Web
WLAN Wireless Local Area Network
WS Web Service
WSDL Web Service Description Language
XML eXtensible Markup Language
XSD XML Schema Denition
Captulo 1
Introduc ao
Nas ultimas d ecadas, observou-se uma evoluc ao gradual das tecnologias da informac ao,
e como desdobramento desse evento, a organizac ao e o comportamento humano sofreram
modicac oes. Prova disso s ao os sistemas de compras pelas redes de computadores, que nos
ultimos tempos tiveram um crescimento acelerado. O Brasil, assim como outros pases pelo
mundo, possui v arios casos de sucesso de lojas de com ercio eletr onico (E-Commerce)
1
.
Esse fato se deve ` a comodidade de, a partir de um computador ligado ` a Internet, poder-se
realizar compras de bens e servicos. Nesse modelo, o usu ario tem a facilidade e a liberdade
de se usar o tempo que julgar necess ario para avaliar o produto que deseja adquirir, al em de
efetuar pesquisas em v arias lojas ao mesmo tempo.
Outro fator importante, est a na qualidade do atendimento, devido aos atendentes
possurem em m aos um sistema de informac ao para prover respostas ageis e credenciadas.
Assim, o usu ario economiza tempo e se exime de problemas naturais da organizac ao con-
tempor anea como: as las, gastos de deslocamento, tr ansito e estacionamento.
Al em disso, as lojas virtuais possuem sistemas de recomendac ao de produtos, que com
base no perl e nas aquisic oes habituais do usu ario, oferecem produtos incentivando o
usu ario a utilizar o E-Commerce. Todos esses benefcios s ao alguns dos fatores de sucesso
das maiores lojas de E-Commerce no Brasil e no mundo.
A Pesquisa sobre o Uso das Tecnologias de Informac ao e Comunicac ao no
Brasil/TIC Domiclios em 2009 ( ultima divulgada at e a data de nalizac ao desta
dissertac ao)[CETIC.br 2009], realizada pelo Centro de Estudos sobre as Tecnologias da
Informac ao e da Comunicac ao (CETIC.br)
2
e ao Comit e Gestor da Internet no Brasil
(CGI.br) mostrou que, de 2008 para 2009, houve um aumento de 8% na consulta a precos de
produtos ou servicos na Internet, passando de 44% para 52% em todo o Brasil, e que houve
um crescimento nas compras on line de 3%, passando de 16% para 19% nacionalmente. A
pesquisa ainda revela que, do total de domiclios pesquisados em 2009, 32% tinham compu-
1
www.americanas.com.br, www.submarino.com.br, www.pontofrio.com.br e outros
2
Vinculado ao N ucleo de Informac ao e Coordenac ao do Ponto BR (NIC.br)
1
tador (contra 25% em 2008) e 25% tinham acesso ` a Internet (contra 18% em 2008).
Assim os dados da pesquisa supracitada mostram que, no Brasil, as buscas por produtos
e servicos na Internet e crescente e que gradualmente mais pessoas t em acesso ao com ercio
eletr onico.
O com ercio eletr onico possui outros suportes al em do computador, tais como o celular
e, mais recentemente, a TV digital. A compra de produtos pela TV n ao e algo novo. Atual-
mente existem at e canais especcos para tal atividade, no entanto, o usu ario precisa utilizar
um outro canal para nalizar o processo de compra. A TV Digital traz a facilidade de permi-
tir que todo este processo seja iniciado e nalizado diretamente do controle remoto da TV,
trazendo mais comodidade para os usu arios, em uma modalidade denominada T-Commerce.
As possibilidades dos recursos de interatividade da TV Digital (TVD) s ao in umeras,
dependendo da criatividade das produtoras de conte udo e desenvolvedores de software. Um
dos sonhos atualmente possveis com as tecnologias de TVD e a compra de produtos que
estejam sendo exibidos em um programa de TV convencional, como um t enis, uma bolsa,
um quadro, ou qualquer outro.
Tendo em vista esta tend encia crescente de provimento de servicos nas mais diversas
plataformas e o sucesso de v arios servicos de com ercio eletr onico no Brasil e no mundo, a
presente dissertac ao descreve uma arquitetura para provimento de com ercio eletr onico pela
TV Digital (T-Commerce). A arquitetura proposta e composta por diversos servicos Web
que, juntos, agregam todos os servicos que s ao disponibilizados aos usu arios dos sistemas
de T-Commerce a serem desenvolvidos a partir de tal arquitetura. Esta arquitetura e ent ao
enquadrada como uma Arquitetura Orientada a Servicos (Service Oriented Architecture -
SOA), voltada para o provimento de servicos de T-Commerce.
Tal arquitetura foi elaborada devido n ao terem sido encontrados outros trabalhos que
tratem de uma proposta de com ercio eletr onico para a TV Digital. Assim, a proposta aqui
apresentada serve como base para o desenvolvimento de aplicac oes de T-Commerce, visando
a popularizac ao de servicos de com ercio eletr onico pelo Sistema Brasileiro de TV Digital.
Considerando que o sinal anal ogico de TV Digital est a previsto para ser desligado em 2016,
segundo previs ao do Minist erio das Comunicac oes
3
, todos os brasileiros que desejarem re-
ceber sinal de TV, precisar ao de um televisor com conversor integrado ou um conversor para
conectar ` a um televisor convencional. Desta forma, sistemas de T-Commerce podem ter um
grande alcance.
A arquitetura proposta, elaborada a partir de requisitos funcionais e n ao funcionais, serve
de base para a implementac ao de aplicativos para com ercio eletr onico, para o qual s ao
tamb em elicitados requisitos funcionais e n ao funcionais. Esses aplicativos s ao construdos
com base em um modelo de templates para denir a identidade visual da mesma, permitindo
que, ao ser alterado o template, toda a identidade visual da aplicac ao seja alterada.
3
http://goo.gl/nLVnW
2
A arquitetura e a aplicac ao de T-Commerce propostas utilizam Web Services para dispo-
nibilizar funcionalidades aos usu arios. Desta forma, tal proposta vai ao encontro da tamb em
crescente tend encia de integrac ao entre Web e TV. Tal integrac ao e possvel por meio de pro-
tocolos de comunicac ao padronizados, como o caso dos protocolos HTTP e SOAP, que neste
trabalho s ao objeto de implementac oes especcas.
Para esta integrac ao entre Web e TV, apresenta-se uma proposta de framework de
comunicac ao de dados que possibilita a comunicac ao entre aplicac oes de TV Digital e
servicos disponveis na Web, o qual tem seu emprego demonstrado n ao somente por meio de
aplicac oes de T-Commerce, mas tamb em de rastreamento de encomendas, leitor de RSS e
outras.
Um framework e um conjunto de classes que incorporam um projeto abstrato de soluc oes
para uma famlia de problemas relacionados[Johnson e Foote 1988]. O mesmo pode ser
tamb em denominado como arcabouco, estrutura, esqueleto, suporte e outros termos.
Alguns dos requisitos do aplicativo de T-Commerce supracitado s ao contemplados com
a extens ao do framework LuaOnTV para permitir o uso de temas e a adaptac ao autom atica
da interface de usu ario da aplicac ao para diferentes tamanhos de TV ou at e mesmo em dis-
positivos m oveis como telefones celulares.
1.1 Objetivos
1.1.1 Geral
Propor e desenvolver uma arquitetura orientada a servicos, por meio de Web Services
SOAP, para provimento de com ercio eletr onico pela TV Digital, favorecendo a converg encia
Web-TV.
1.1.2 Especcos
Como objetivos especcos, prop oe-se:
A) elicitar requisitos funcionais e n ao funcionais a serem atendidos por uma arquitetura
baseada em padr oes de servicos Web, a ser utilizada para com ercio eletr onico via TV
Digital;
B) propor uma arquitetura de servicos de T-Commerce, que atenda aos requisitos citados;
C) a partir da arquitetura , implementar um framework para comunicac ao de dados, baseado
nos protocolos HTTP e SOAP, para permitir a comunicac ao de aplicac oes de TV Digital,
desenvolvidas nas linguagens NCL e Lua, que permita a interoperac ao com servicos
Web;
3
D) caracterizar o emprego do framework de comunicac ao de dados para desenvolvimento
de aplicac oes tais como Leitor de RSS, Rastreador de Encomendas, Cliente de Twitter,
Enquete e Quiz;
E) estender o framework LuaOnTV[J unior e Gondim 2009] incluindo recursos de temas
para permitir a denic ao centralizada das caractersticas visuais das aplicac oes desen-
volvidas, al em de incluir suporte a m ultiplos dispositivos com diferentes resoluc oes de
tela, como TVs e aparelhos celulares;
F) um modelo de desenvolvimento de aplicac oes para TV Digital (TVD), de forma que
todos os formul arios da aplicac ao (p aginas/telas) tenham um mesmo conjunto de com-
ponentes b asicos, permitindo a criac ao de templates para denir a identidade visual da
mesma. Assim, ao ser alterado o template, toda a identidade visual da aplicac ao dever a
ser alterada;
4
1.2 Justicativa
Como o incio das operac oes do Sistema Brasileiro de TV Digital (SBTVD) e bastante
recente, onde a primeira transmiss ao de sinal digital foi realizada em 2007 na cidade de S ao
Paulo, at e a data de elaborac ao da presente dissertac ao, s o conhecia-se um caso de aplicac ao
de T-Commerce no Brasil, como citado em [Sntese 2010], no qual apenas exibem-se os
produtos e o processo de compra deve ser realizado pelo usu ario utilizando outro canal como
a loja virtual (Internet) ou o call center da empresa.
Al em disso, tal aplicac ao de com ercio eletr onico foi desenvolvida para o middleware
ByYou (implementac ao do Ginga desenvolvida pela empresa TOTVS)[TeleTime 2010], e seu
uso ca restrito aos conversores digitais e televisores que possuam tal middleware. Por usar
APIs especcas do ByYou, a aplicac ao s o executa em tal implementac ao do middleware
Ginga.
Como o Brasil possui diversos casos de sucesso no mercado de com ercio eletr onico em
larga escala, a disponibilizac ao de aplicac oes de com ercio para TV Digital e uma tend encia
natural, podendo aumentar consideravelmente as vendas das empresas do ramo, devido ` a
grande penetrac ao do aparelho de TV nos lares brasileiros (cerca de 96%)[IBGE 2009], al em
de ser uma nova plataforma de E-Commerce para os usu arios.
Da falta de uma arquitetura para provimento de com ercio eletr onico para o SBTVD,
surgiu este trabalho de dissertac ao, que apresenta uma proposta de arquitetura orientada a
servicos (Service Oriented Architecture - SOA) para a estruturac ao de um ambiente de T-
Commerce. Considerando que tal arquitetura e bastante utilizada para a integrac ao de siste-
mas heterog eneos, ele vai ao encontro de umdos objetivos do projeto: prover uma arquitetura
de T-Commerce que utilize servicos Web que, juntos, atuem de forma interoper avel com o
SBTVD e os padr oes W3C.
Desta forma, como a arquitetura SOA pode, comumente, ser baseada em Web Services
SOAP, faz-se necess aria a implementac ao de protocolos como Hypertext Transfer Protocol
(HTTP) e Simple Object Access Protocol (SOAP) em que se baseiam as tecnologias relacio-
nadas a SOA, sendo tais implementac oes objetivos principais deste trabalho.
Com a implementac ao dos protocolos HTTP e SOAP (onde n ao se tem conhecimento,
at e a data de elaborac ao desta dissertac ao, de nenhuma implementac ao de c odigo aberto
dos mesmos para o ambiente de TVD) criam-se enormes possibilidades de construc ao de
aplicac oes para integrac ao entre Web e TV, um dos objetivos deste projeto com sua arquite-
tura de T-Commerce. Como durante as pesquisas observou-se que a falta de implementac ao
de tais protocolos era uma queixa recorrente nos f oruns da Comunidade Ginga no Portal
do Software P ublico
4
e em outros f oruns de discuss ao, a implementac ao de tais protoco-
los representa uma grande contribuic ao para o desenvolvimento do SBTVD. Assim, ap os
a publicac ao inicial das implementac oes dos protocolos HTTP e SOAP, alguns trabalhos
4
http://www.softwarepublico.gov.br/dotlrn/clubs/ginga/
5
importantes foram desenvolvidos, como ser a apresentado no Captulo 5.
6
1.3 Metodologia
Para o desenvolvimento da presente dissertac ao foi feito um levantamento bibliogr aco
sobre as tecnologias, linguagens, ferramentas e trabalhos relacionados para nortear a
implementac ao da arquitetura e soluc ao proposta.
O projeto, an alise e desenvolvimento da soluc ao seguiu o processo de desenvolvimento
em cascata juntamente com o processo de componentizac ao[Sommerville 2011]. O processo
em cascata foi adotado pois os requisitos estavam bem denidos, havendo pequena probabi-
lidade de mudancas radicais. J a o processo de componentizac ao foi tamb em adotado devido
ao uso de alguns componentes reutiliz aveis (como Web Services pr oprios e de terceiros)
realizando a integrac ao destes diversos componentes.
No processo de desenvolvimento em cascata, foram seguidas as seguintes etapas:
especicac ao de requisitos - foram denidos os requisitos funcionais e n ao funcionais,
que s ao apresentados ao longo do trabalho;
projeto - foi adotado o paradigma de Orientac ao a Objetos (OO), utilizando-se a Uni-
ed Modeling Language (UML) para modelagem, com o auxlio de ferramenta CASE
(Computer-Aided Software Engineering);
implementac ao - a implementac ao seguiu o paradigma OO, conforme denido na fase
de projeto;
testes - foram feitos testes de interoperabilidade/integrac ao para vericar se os com-
ponentes da arquitetura estavam se comunicando conforme o esperado.
Optou-se, para o desenvolvimento do projeto, pelo paradigma de orientac ao a objetos
pois o mesmo permite um alto grau de reutilizac ao de c odigo, tornando o mesmo mais orga-
nizado e f acil de manter.
Para a comunicac ao entre os componentes da arquitetura da soluc ao, foi escolhido o pro-
tocolo de comunicac ao SOAP, uma vez que a aplicac ao de TV Digital desenvolvida faz parte
de uma arquitetura distribuda e precisa realizar comunicac ao com servidores Web por meio
da Internet. Assim, foi preciso usar um protocolo que n ao tivesse problemas de bloqueio em
rewalls. Desta forma, o protocolo SOAP foi escolhido tamb em por ser padr ao do World
Wide Web Consortium (W3C).
Para as aplicac oes de TV Digital, foi escolhido o sub-sistema Ginga-NCL do middleware
Ginga do Sistema Brasileiro de TV Digital (SBTVD), devido ` a grande quantidade de docu-
mentos, f oruns de discuss ao, ferramentas e exemplos disponveis em relac ao ` a outra vertente
de desenvolvimento utilizando a linguagem Java no sub-sistema Ginga-J. Considerando-se
ainda que o Ginga-NCL e o unico sub-sistema obrigat orio para dispositivos m oveis, isto foi
decisivo para a escolha, pois assim, a arquitetura e as aplicac oes desenvolvidas podem, em
7
tese, ser executadas em receptores (conversores/Set-bop Boxes) de TV Digital xos, m oveis
ou port ateis.
Com a escolha do Ginga-NCL, foi necess aria a implementac ao do protocolo SOAP para
este sub-sistema, utilizando-se a linguagem Lua, uma vez que o primeiro s o disponibiliza
protocolos at e a camada de transporte do modelo OSI/ISO, como o TCP. Com isto, foi ne-
cess ario realizar testes de interoperabilidade entre aplicac oes de TV Digital desenvolvidas
com as linguagens NCL e Lua e Web Services desenvolvidos em diferentes plataformas e
linguagens, pois um dos grandes benefcios do protocolo SOAP e a integrac ao de sistemas
heterog eneos. Assim, tais testes foram necess arios para garantir esta interoperabilidade.
Os requisitos da aplicac ao foram levantados tomando por base as funcionalidades exis-
tentes na grande maioria dos Web sites de com ercio eletr onico disponveis na Internet e
bastante difundidos no Brasil.
Para a construc ao da interface de usu ario das aplicac oes de TV Digital, optou-se pela
utilizac ao do framework LuaOnTV para abstrair as primitivas gr acas para renderizac ao
da interface. A mesma foi projetada baseada em recursos de templates, o que permite a
personalizac ao e adaptac ao autom atica para diferentes resoluc oes de tela, tendo sido esten-
dido o LuaOnTV para incluir tais recursos.
8
1.4 Organizac ao do Trabalho
O Captulo 2 apresenta uma revis ao bibliogr aca das tecnologias empregadas e relaci-
onadas ao desenvolvimento do trabalho.
O Captulo 3 apresenta a arquitetura de T-Commerce proposta.
O Captulo 4 apresenta o Framework LuaOnTV, utilizado na construc ao das interfaces
gr acas das aplicac oes desenvolvidas.
O Captulo 5 apresenta um framework de comunicac ao de dados, utilizado para a
integrac ao das aplicac oes desenvolvidas com servicos Web.
Por m, o Captulo 6 apresenta as conclus oes e trabalhos futuros.
9
Captulo 2
Revis ao bibliogr aca
2.1 Com ercio Eletr onico: E-Commerce, M-Commerce e T-
Commerce
No incio da World Wide Web (comumente denominada apenas Web) as primeiras
p aginas de Internet possuam apenas conte udo est atico permitindo pouca ou nenhuma
interac ao do usu ario. A Web era apenas um reposit orio de informac oes. Com a cres-
cente demanda de troca de informac oes entre empresas, o advento de padr oes abertos de
comunicac ao, e a necessidade das mesmas de alcancarem novos clientes e mercados, du-
rante a d ecada de 90 comecou a surgir um novo g enero de Web sites: os sites de com ercio
eletr onico[Chu et al. 2007].
Tais Web sites possibilitaram a realizac ao de neg ocios entre compradores e vende-
dores e entre vendedores e seus parceiros. Desta forma surgiu o E-Commerce. Este
e baseado na possibilidade de realizac ao de transac oes de forma eletr onica. Segundo
[Veijalainen, Terziyan e Tirri 2006]:
uma transac ao eletr onica e uma venda ou compra de produtos ou servicos, entre
empresas, familiares, indivduos, governos e outras organizac oes p ublicas ou
privadas, conduzidas por redes mediadas por computador.
A troca de informac oes entre essas empresas era feita por meio de Eletronic Data In-
terchange (EDI) (troca eletr onica de informac oes), no entanto, isto requeria realizac ao de
acordos entre as organizac oes[Chu et al. 2007], o que poderia dicultar tais parcerias. O ad-
vento de padr oes abertos como o XML permitiu a evoluc ao de tais processos de interc ambio
de dados e integrac ao entre empresas.
Atualmente existem diversas empresas consolidadas na area de com ercio eletr onico. Al-
gumas nasceram na era digital e vendem exclusivamente pela Internet, alcancando novos
clientes e mercados nacionais e internacionais.
10
Com a recente popularizac ao de dispositivos m oveis e da Internet sem o como rede
de grande abrang encia (por exemplo, utilizando as tecnologias de comunicac ao m ovel
de 3
a
gerac ao como o Universal Mobile Telecommunications System - UMTS), surgem
novas oportunidades para as lojas de com ercio eletr onico. Estas entram em uma nova
era, com novas perspectivas de captac ao de clientes e mercados. Com isto surgem no-
vas tend encias como o denominado Com ercio M ovel (M-Commerce), onde as transac oes
s ao feitas utilizando-se dispositivos e redes de acesso m oveis, tais como Wireless Local
Area Networks (WLANs), redes de telecomunicac oes 2G ou 3G, conex oes Bluetooth ou
infravermelho[Veijalainen, Terziyan e Tirri 2006].
Tais dispositivos m oveis permitem que os usu arios possam realizar compras em qualquer
lugar que eles estejam, at e mesmo em suas horas livres, durante o trajeto para o trabalho,
ou no hor ario de almoco. Desta forma, as lojas virtuais t em um mercado em potencial para
aumentar suas vendas.
Com o advento dos sistemas de televis ao digital interativa e a possibilidade de se ter apli-
cativos executando juntamente com a programac ao audio-visual, abre-se um novo mercado
para as lojas de com ercio eletr onico: a venda de produtos pela TV. Tais servicos de vendas
pela TV n ao s ao novos, mas antes da TV Digital Interativa (TVDi), os canais de venda pela
TV apenas anunciavam produtos e os telespectadores que desejavam comprar um produto
precisavam utilizar outro canal de comunicac ao, como o telefone ou recorrer ao Web site da
loja na Internet. Utilizando-se os recursos da TV Digital Interativa, todo o processo de com-
pra pode ser realizado diretamente pelo controle remoto da TV, desde que a mesma esteja
conectada ` a Internet.
As tecnologias da TV Digital trazem um novo benefcio aos usu arios: a possibilidade de
comprar produtos a partir de um receptor de TV Digital, caracterizando uma nova modali-
dade de com ercio eletr onico, denominada T-Commerce.
Em pases norte-americanos e europeus, que t em sistemas de TV Digital Interativa h a
mais tempo que o Brasil, existem algumas empresas disponibilizando soluc oes para a area
de T-Commerce
1 2 3
. No Brasil, apesar de as transmiss oes de TV Digital terem inici-
ado somente em 2007 na cidade de S ao Paulo[G1 2007], em 2010 j a h a soluc oes iniciais
para T-Commerce[Sntese 2010], apesar de a nalizac ao da compra ainda precisar ser feita
utilizando-se outros canais como o telefone.
Devido ao Brasil ser um pas de caractersticas bem diferentes dos outros pases, espera-
se que a interatividade seja um grande diferencial para o pas. Como o Governo Federal
pretende realizar inclus ao social/digital por meio da TV, de acordo com o Decreto n umero
4.901, de 26 de novembro de 2003, espera-se que a disponibilizac ao de servicos pela TV
seja crescente. Um fator importante para a difus ao da interatividade no pas e a exist encia
de aparelhos de TV em 96% das resid encias[IBGE 2009], tendo grandes possibilidades de
1
http://www.ensequence.com/t-commerce
2
http://www.digisoft.tv/applications.html
3
http://www.icuetv.com/ets_platform/applications/t_commerce
11
as aplicac oes interativas terem um enorme p ublico, considerando ainda as dimens oes con-
tinentais do Brasil e sua enorme populac ao de 185.712.713 habitantes, segundo o Censo
2010[IBGE 2010].
Outra medida tomada pelo governo que beneciar a a interatividade pela TV Digital e
a criac ao do Plano Nacional de Banda Larga (PNBL), por meio do Decreto n umero 7.175,
de 12 de maio de 2010, visando prover Internet banda larga, a um custo reduzido, em mu-
nicpios onde n ao exista tal servico.
2.2 Sistema Brasileiro de TV Digital (SBTVD)
O Sistema Brasileiro de TV Digital (SBTVD) atualmente e o mais avancado do mundo.
A necessidade de o Brasil implantar um sistema de TV Digital levou o Governo Federal a
emitir o Decreto 4.901, de 26 de novembro de 2003, instituindo o referido sistema.
A partir da, o governo passou a investir diretamente na pesquisa de tecnologias para
TV Digital. Considerando que j a havia outros padr oes de TV Digital no mundo, como o
americano ATSC (Advanced Television Systems Committee), o europeu DVB (Digital Video
Broadcast) e o japon es ISDB-T (Integrated Services Digital Broadcasting Terrestrial), tais
estudos concluram que o melhor para o pas seria a adoc ao do sistema japon es ISDB-T, que
seria estendido para atender ` as caractersticas e necessidades do Brasil.
Desta forma, o Decreto 5.820, de 29 de junho de 2006 estabelece o uso do ISDB-T como
base para o Sistema Brasileiro de TV Digital Terrestre (SBTVD-T). O decreto ainda dene
a criac ao do F orum SBTVD (F orum do Sistema Brasileiro de TV Digital). Tal f orum, como
menciona o decreto supracitado, tem como atribuic oes:
a assessoria acerca de polticas e assuntos t ecnicos referentes ` a aprovac ao
de inovac oes tecnol ogicas, especicac oes, desenvolvimento e implantac ao do
SBTVD-T.
O mesmo foi composto, como cita o decreto:
entre outros, por representantes do setor de radiodifus ao, do setor industrial e
da comunidade cientca e tecnol ogica
Dentre as contribuic oes do Brasil para a area de TVD, destaca-se a construc ao do Ginga
4
como padr ao de middleware para aplicac oes interativas e n ao interativas. O Ginga e uma
inovac ao nacional, atuando como respons avel pela execuc ao e controle do ciclo de vida das
3
http://www.forumsbtvd.org.br
4
http://www.ginga.org.br
12
aplicac oes interativas, abstraindo o sistema operacional e o hardware para elas, al em de rea-
lizar tarefas especializadas como a disponibilizac ao de Application Programming Interfaces
(APIs) para facilitar o desenvolvimento de aplicac oes interativas[Soares e Barbosa 2009].
O Ginga e composto por dois sub-sistemas: um para a execuc ao de aplicac oes decla-
rativas, denominado Ginga-NCL
5
, e outro para execuc ao de aplicac oes procedurais, de-
nominado Ginga-J
6
. Aplicac oes declarativas s ao aquelas implementadas utilizando-se uma
linguagem declarativa, como XML, de forma n ao algortmica, apenas declarando elemen-
tos que compor ao a mesma. Tais linguagens abstraem muitos detalhes do desenvolvedor.
Aplicac oes procedurais s ao aquelas implementadas utilizando uma linguagem procedural,
como Java, onde o desenvolvedor precisa escrever um algoritmo e especicar cada operac ao
a ser realizada, necessitando de conhecimento em linguagens de programac ao.
O sub-sistema Ginga-NCL permite a construc ao de aplicac oes declarativas por meio da
linguagem NCL, a Nested Context Language
7
. Esta e conhecida como uma linguagem de
cola, que permite criar aplicac oes declarativas juntando-se diferentes tipos de mdias como
imagens, texto, hipertexto (HTML), vdeos e outros. Um de seus principais recursos e a
sincronizac ao de mdias, muito importante no contexto de aplicac oes interativas. Tal recurso
garante que, por exemplo, uma legenda seja sincronizada com um vdeo em exibic ao, ou que
uma imagem apareca depois de determinado tempo que o vdeo iniciou. As aplicac oes NCL
podem ter seu poder estendido com a inclus ao de mdias especiais: os scripts Lua
8
, conheci-
dos em aplicac oes NCL como NCLua. Tais scripts adicionam caractersticas procedurais ` as
aplicac oes NCL.
O outro sub-sistema que comp oe o Ginga e o chamado Ginga-J, que permite a construc ao
de aplicac oes interativas utilizando a linguagem Java. Os outros padr oes de middleware de
TV Digital pelo mundo, na parte procedural, normalmente utilizam a linguagem Java e a
API JavaTV. No entanto, os fabricantes, para embarcarem a m aquina virtual Java e tal API
nos conversores de TV Digital precisam pagar royalities ` a Oracle, empresa que atualmente
det em os direitos sobre a marca Java. Com isto, o preco dos conversores e encarecido.
Al em disto, tal API e baseada no toolkit gr aco AWT, que e bastante antigo e n ao possui
componentes com visual bonito e elegante. Devido ` as quest oes de pagamento de royalities,
o F orum SBTVD decidiu fazer um acordo entre a ent ao Sun, hoje Oracle, para a denic ao
de uma nova API para ser utilizada pelo SBTVD, a qual foi batizada de JavaDTV
9
. Tal API
e livre de royalities e e baseada no toolkit gr aco LWUIT
10
, o Light Weight UI Toolkit. O
LWUIT e um toolkit que possui componentes bonitos e elegantes e e o mesmo utilizado em
aplicac oes para celulares.
Com as contribuic oes brasileiras, o ISDB-T e o SBTVD-T passaram a compartilhar
5
http://www.gingancl.org.br
6
http://dev.openginga.org
7
http://www.ncl.org.br
8
http://www.lua.org
9
http://www.forumsbtvd.org.br/materias.asp?id=75
10
http://lwuit.java.net
13
uma denominac ao internacionalmente conhecida como ISDB-TB, onde Brepresenta as
contribuic oes do Brasil para o ISDB-T[SBTVD 2010].
As melhorias resultantes da parceria realizada levaram o ISDB-TB a se tornar norma
internacional de TV Digital no ITU-T (International Telecommunications Union - Telecom-
munication Standardization Sector)[InfoExame 2009][IDGNow 2010]. O Ginga se tornou
padr ao de middleware para TVD, relativo ` a recomendac ao ITU-T J.200[ITU-T 2010]. Seu
sub-sistema declarativo Ginga-NCL se tornou recomendac ao ITU-T J.201[ITU-T 2009] e
seu sub-sistema imperativo Ginga-J se tornou recomendac ao ITU-T J.202[ITU-T 2010].
Ressalta-se, tamb em, a recente normatizac ao, no ambito do ITU-T, referente a IPTV,
conhecida como H.761, baseada fortemente no middleware Ginga e seu sub-sistema Ginga-
NCL. Desta forma, o Ginga pode chegar a novas plataformas que n ao apenas a TV aberta, e
as aplicac oes interativas e n ao interativas desenvolvidas em NCL/Lua para o SBTVD podem
tamb em ser executados em sistemas de IPTV que adotem o Ginga-NCL.
2.3 A Tecnologia de Web Services
H a alguns anos as aplicac oes corporativas eram desenvolvidas principalmente em um
modelo cliente/servidor de duas camadas, existindo uma aplicac ao desktop que fazia acesso
direto a um banco de dados. Pela natureza destas aplicac oes, que precisam ser instaladas
em cada computador onde ser ao executadas, existe um grande esforco para atualizar todos
os computadores com novas vers oes do sistema. Mesmo que haja um processo automati-
zado para esta atualizac ao, isto demanda recursos como tempo e largura de banda. Com o
avanco das tecnologias de comunicac ao de dados, o avanco da Web e suas linguagens de
programac ao e, principalmente, com o advento da tecnologia AJAX, atualmente e possvel
desenvolver aplicac oes de Internet ricas (Rich Internet Applications, RIA) com componen-
tes visuais que v ao al em dos componentes b asicos oferecidos pela linguagem HTML. Isto
permitiu que muitas empresas migrassem seus sistemas desktop para a plataforma Web, sem
perder funcionalidades existentes naquele tipo de interface.
Essa mudanca de paradigma desktop para Web vem seguida ainda de outra tend encia: a
dos sistemas distribudos. Estes s ao sistemas que comumente utilizam a arquitetura cliente/-
servidor, no entanto, s ao compostos de tr es ou mais camadas. Segundo [Sommerville 2011]:
um sistema distribudo e uma colec ao de computadores independentes que apa-
rece para o usu ario como um unico sistema coerente.
A Figura 2.1 apresenta uma arquitetura de um sistema distribudo em quatro camadas.
As mesmas s ao descritas a seguir.
Camada de Apresentac ao: pode contar tanto com aplicac oes desktop leves, conhecidas
como thin client (cliente magro/leve), possuindo apenas uma interface gr aca que faz
14
acesso a um servidor de aplicac ao, por meio de chamadas de procedimento remoto;
quanto com um browser, que faz acesso a um servidor Web, respons avel por gerar as
interfaces HTML.
Camada Web: composta por um ou mais servidores Web, respons aveis por gerar a
interface HTML para os clientes Web. As aplicac oes desktop n ao acessamesta camada,
tendo ligac ao direta com a Camada de Aplicac ao.
Camada de Aplicac ao: composta por um ou mais servidores de aplicac ao onde as re-
gras de neg ocios da aplicac ao est ao implementadas. Desta forma, alterac oes na l ogica
de neg ocios n ao requer a atualizac ao dos clientes. Os servidores de aplicac ao adicio-
nam toler ancia a falhas e balanceamento de cargo ao sistema.
Camada de Dados: composta por um ou mais servidores de banco de dados, acessveis
apenas pelos servidores de aplicac ao, o que garante transpar encia e independ encia de
banco de dados aos clientes.
Figura 2.1: Arquitetura de Aplicac ao Distribuda (adaptada de [InterSystems 2010]).
Segundo [Coulouris, Dollimore e Kindberg 2007], umsistema distribudo traz benefcios
como: permitir a heterogeneidade de componentes, possibilitar a escalabilidade, ser tolerante
a falhas, dentre outros.
15
Neste contexto, Web Services (WSs) proveem um framework extensvel para
comunicac ao de aplicac ao para aplicac ao, que utiliza protocolos Web existentes e base-
ados em padr oes XML abertos [Curbera et al. 2002]. Eles s ao a maior tecnologia para
publicac ao de servicos na Web e t em signicativa adoc ao em areas como integrac ao de
aplicac oes, computac ao distribuda de larga escala e cooperac ao business-to-business (B2B)
[KOPECK
E importante lembrar que tal abordagem e util em cen arios de aplicac oes stateless, que
n ao mant em estado entre uma requisic ao e outra, como o caso do HTTP/1.0 e das chamadas
SOAP. Aplicac oes que precisem manter a conex ao aberta, como mensageiros instant aneos,
precisam utilizar diretamente as func oes do m odulo tcp.lua.
64
Figura 5.2: Diagrama de M aquinas de Estados do M odulo tcp.lua (co-rotinas em execuc ao)
5.3.4 Implementac oes de SOAP
Existem diversos toolkits para provimento e consumo de Web Services, disponveis em
diferentes linguagens e plataformas. Nas sub-sec oes seguintes s ao apresentados alguns des-
tes.
5.3.4.1 LuaSOAP
Para acesso a Web Services SOAP a partir de aplicac oes Lua, pode-se utilizar o m odulo
LuaSOAP [Ierusalimschy, Carregal e Guisasola 2004].
O protocolo SOAP envolve a troca de mensagens em formato XML, permitindo
a interoperabilidade entre sistemas desenvolvidos em diferentes linguagens. No en-
tanto, para fazer o parse de arquivos XML, o LuaSOAP depende da biblioteca Expat
[Jr e Waclawek 2007][Cooper 1999], que e um parser XML desenvolvido em linguagem C,
cujos problemas de uso em aplicac oes de TVDi foram apresentados na Sec ao 5.2. O projeto
tamb em depende da biblioteca LuaSocket, que tamb em usa m odulos em C.
O LuaSOAP n ao permite a gerac ao autom atica de stubs para realizar a chamada aos
m etodos remotos do Web Service. Desta forma, o desenvolvedor precisa ler o documento
WSDL e obter as informac oes sobre o m etodo que deseja invocar. A ultima atualizac ao do
projeto foi em 2004, o que mostra que o mesmo n ao est a acompanhando as novas vers oes de
Lua, como a 5.1 utilizada na implementac ao de refer encia do Ginga.
Uma das vantagens do projeto e que as chamadas aos m etodos remotos no Web Service
s ao sncronas, o que facilita bastante o uso.
5.3.4.2 gSOAP
O gSOAP e classicado como um Software Development Kit (SDK) para permitir que
aplicac oes legadas, sistemas embarcados e de tempo real, desenvolvidos em linguagens C,
C++ e Fortran, possam consumir Web Services [Engelen e Gallivan 2005]. O projeto possui
um utilit ario capaz de gerar stubs em C/C++, a partir do documento WSDL do servico.
Em tal stub s ao includos m etodos proxies para realizar chamadas aos m etodos remotos do
servico, tornando-as transparentes para a aplicac ao cliente.
65
As chamadas realizadas com gSOAP tamb em s ao sncronas, o que facilita muito o de-
senvolvimento das aplicac oes clientes, pois o envio da requisic ao e tratamento da resposta
pode ser todo feito em uma unica rotina.
Pelo fato do projeto ser desenvolvido em C, o mesmo s o poderia ser utilizado em
aplicac oes de TVD residentes no conversor digital, como j a comentado na Sec ao 5.2. A
utilizac ao de linguagens compiladas como C/C++ permite que o (un)marshalling seja feito
em tempo de compilac ao, o que garante que a aplicac ao ter a maior velocidade na execuc ao.
No entanto, a necessidade de tal processo de compilac ao elimina a grande vantagem do di-
namismo existente em linguagens interpretadas como Lua.
5.3.4.3 Apache Axis
Em [Davis e Parashar 2005] s ao apresentados alguns outros toolkits para provimento e
consumo de Web Services. Um dos projetos citados e o Apache Axis, uma implementac ao
de SOAP para Java e C, que tem, como uma das vantagens, o uso do parser XML SAX, o
qual e completo e bastante eciente. Ele tamb em possui a vantagem de gerar stubs Java ou
C, a partir do documento WSDL.
Mesmo o Ginga permitindo o uso de Java, o Apache Axis pode n ao ser uma soluc ao
ideal para aplicac oes de TVD, uma vez que inclui o SAX como parser XML. Considerando
a capacidade de hardware restrita dos conversores de TV Digital, tal parser pode n ao ser
ideal em tais equipamentos, al em de poder n ao estar em conformidade com as normas do
Sistema Brasileiro de TV Digital (SBTVD). Parsers mais simples como o NanoXML
1
, que
demandam menos capacidade de processamento, podem ser mais adequados neste cen ario.
Por m, o Apache Axis n ao atende a um dos requisitos elicitados: ser implementado em Lua
para uso direto por aplicac oes NCLua.
5.4 Proposta de Novas Implementac oes de HTTP e SOAP
O Ginga-NCL prov e protocolos de rede at e o TCP, assim, qualquer protocolo acima da
camada de transporte do modelo OSI precisa ser implementado. Como o envio de envelopes
SOAP e normalmente feito por HTTP, tal protocolo precisou ser implementado como um
m odulo NCLua, ao qual denominou-se NCLua HTTP, que ser a utilizado pelo NCLua SOAP.
5.4.1 Decis oes de Projeto
Para o desenvolvimento do projeto, optou-se por seguir o padr ao de m odulos, ampla-
mente utilizado na atual vers ao da linguagem Lua. Um m odulo encapsula func oes com
objetivos correlatos e tal padr ao e bastante conhecido dos programadores Lua.
1
http://nanoxml.sourceforge.net
66
Tal modelo segue o paradigma de programac ao estruturada, assim, um m odulo consiste
de um conjunto de func oes que s ao chamadas pelo desenvolvedor que for utiliz a-lo.
Na gerac ao das requisic oes SOAP, optou-se por fazer o (un)marshalling de XML para
tabelas Lua por estas serem as estruturas de dados padr oes disponibilizadas pela linguagem
e por serem estruturas bastante exveis e f aceis de manipular, devendo ser de conhecimento
de qualquer programador Lua.
Como o conte udo das requisic oes HTTP e SOAP e apenas texto, formatado segundo
o padr ao de cada protocolo, a gerac ao e formatac ao deste conte udo foi bastante simples
e direta. Devido a strings em Lua serem imut aveis[Ierusalimschy 2006], para economizar
mem oria na concatenac ao das strings que comp oe cada requisic ao, as tabelas de Lua foram
utilizadas como um buffer de strings para otimizar o uso de mem oria RAM.
Na obtenc ao dos resultados, procurou-se facilitar ao m aximo tal tarefa para o desenvol-
vedor, permitindo que ele tenha acesso direto aos dados retornados, sem precisar conhecer
o caminho dentro do XML de retorno onde a resposta est a armazenada, assim como fazem
outros toolkits SOAP como a API JAX-WS.
Quanto ao parser XML escolhido, n ao haviam muitas opc oes implementadas intei-
ramente em Lua. Todas as implementac oes testadas foram encontradas em http://
lua-users.org e em [Ierusalimschy 2006]. Optou-se pelo uso do LuaXML
2
, pois foi
a implementac ao que fazia o unmarshalling de XML para tabelas Lua com a estrutura mais
simples e f acil de manipular. Al em do mais, as outras implementac oes encontradas n ao fun-
cionaram adequadamente para XMLs mais complexos retornados por alguns Web Services.
5.4.2 NCLua HTTP
O NCLua HTTP
3
implementa alguns dos principais recursos do protocolo HTTP/1.0. Ele
e um m odulo escrito inteiramente em linguagem Lua para ser utilizado em scripts NCLua.
O mesmo utiliza o protocolo TCP da forma como especicado na norma do Ginga-NCL em
[ABNT 2008], por meio da classe de eventos tcp de NCLua. Pela simplicidade do protocolo
HTTP, o m odulo possui apenas algumas func oes que permitem a gerac ao de requisic oes e
tratamento de respostas. Atualmente existem os seguintes recursos implementados:
suporte ` a autenticac ao b asica, uso de portas especcas e download de arquivos;
suporte ` a requisic oes GET e POST;
passagem de par ametros em requisic oes POST;
suporte ` a passagem de cabecalhos HTTP e denic ao de User-Agent;
2
http://lua-users.org/wiki/LuaXml
3
http://ncluahttp.manoelcampos.com e http://labtvdi.unb.br
67
suporte ` a separac ao autom atica dos dados do cabecalho e do corpo da resposta de uma
requisic ao.
5.4.3 NCLua SOAP
O NCLua SOAP
4
implementa as principais funcionalidades do protocolo SOAP 1.1 e
1.2. Ele tamb em e um m odulo inteiramente escrito em Lua, que faz o parse de arquivos
XML, realizando o marshalling e unmarshalling de/para tabelas Lua, permitindo que o de-
senvolvedor Lua trabalhe com a estrutura de dados principal da linguagem: o tipo table.
O m odulo utiliza o NCLua HTTP para transportar as mensagens SOAP. Assim, todos
os detalhes do protocolo HTTP s ao encapsulados pelo respectivo m odulo. Com isto, a
implementac ao do SOAP ca bastante simplicada, tornando o c odigo f acil de ser man-
tido. O NCLua SOAP encarrega-se apenas de gerar o XML da requisic ao SOAP, utilizando
o NCLua HTTP para enviar tal XML no corpo da mensagem. O parse e unmarshalling do
XML para uma tabela Lua e todo encapsulado pelo m odulo LuaXML
5
.
Um importante recurso, n ao disponvel em implementac oes como o LuaSOAP (ci-
tada na Sec ao 5.3), e que facilita bastante a utilizac ao do m odulo, e a simplicac ao do
XML retornando como resposta, que e convertido (unmarshalling) automaticamente para
uma tabela Lua. Para demonstrar este recurso, utilizar-se- a o Web Service de consulta de
endereco a partir de um CEP, disponvel em http://www.bronzebusiness.com.
br/webservices/wscep.asmx. Tal WS possui um m etodo chamado cep, que re-
cebe um determinado CEP e retorna o endereco referente ao mesmo. O XML do retorno do
m etodo cep, convertido para uma tabela Lua, e semelhante ao mostrado na Listagem 5.1.
A estrutura da tabela reete o c odigo XML retornado. Como pode ser visto, o elemento
da tabela que cont em de fato os dados do endereco retornado (tbCEP) est a envolvido em
v arias outras tabelas que n ao cont em dado algum, sendo estruturas completamente desne-
cess arias para a aplicac ao NCLua. Com isto, para o desenvolvedor poder acessar, por exem-
plo, a cidade do CEP indicado, precisar a conhecer toda a estrutura retornada, utilizando uma
instruc ao como result.cepResult.diffgr.NewDataSet.tbCEP.cidade.
Para esconder estes detalhes do desenvolvedor, o NCLua SOAP simplica qualquer re-
sultado que contenha estruturas desnecess arias, como o mostrado na Listagem 5.1.
Listagem 5.1: Exemplo de tabela Lua gerada a partir do XML de uma resposta SOAP
1 { c e pRe s ul t = { d i f f g r = { NewDat aSet = { tbCEP = {
2 nome= Cl n 407 , b a i r r o =Asa Nor t e , UF=DF , c i da de = Br a s i l i a
3 } } } } }
Desta forma, para o exemplo citado, a tabela Lua (gerada a partir do XML de retorno
da requisic ao) car a como apresentado na Listagem 5.2, o que simplica o acesso aos ele-
4
http://ncluasoap.manoelcampos.com e http://labtvdi.unb.br
5
Parser XML escrito inteiramente em Lua, adaptado para funcionar com Lua 5
68
mentos da estrutura retornada, permitindo, por exemplo, que o campo cidade seja acessado
utilizando-se apenas a instruc ao result.cidade.
Listagem 5.2: Exemplo de simplicac ao de retorno de resposta SOAP pelo NCLua SOAP
1 { nome= Cl n 407 , b a i r r o =Asa Nor t e , UF=DF , c i da de = Br a s i l i a }
O m odulo ainda conta com um script (wsdlparser.lua), em fase inicial de implementac ao,
que realiza o parse de um documento WSDL e obt em algumas das informac oes que precisa-
se passar ao NCLua SOAP para que ele realize a requisic ao (como o namespace do servico,
o nome do m etodo desejado e a lista de par ametros de entrada). Atualmente o script apenas
l e o WSDL e exibe algumas das informac oes citadas, cabendo ao desenvolvedor copi a-las e
pass a-las ao m etodo call do NCLua SOAP para realizar a chamada a um determinado m etodo
remoto. No entanto, a extrac ao de tais informac oes j a ajuda de alguma forma, principalmente
os usu arios menos experientes na tecnologia de Web Services e no NCLua SOAP.
Para resumir, as caractersticas principais do NCLua SOAP s ao:
suporte a SOAP 1.1 e 1.2;
suporte a par ametros de entrada e sada do tipo struct e array (sendo feito marshalling
e unmarshalling de/para tabelas Lua automaticamente);
facilidade para manipulac ao de chamadas assncronas, caracterstica do protocolo TCP
disponvel no Ginga-NCL;
simplicidade na obtenc ao do retorno de uma requisic ao a um m etodo remoto;
suporte a SOAP Fault para captura de erros SOAP;
suporte a SOAP Header[W3C 2007] possibilitando a passagem de par ametros es-
peccos da aplicac ao (como informac oes sobre autenticac ao, pagamento, etc);
realizac ao de testes com Web Services desenvolvidos em diferentes linguagens.
A Figura 5.3 apresenta um diagrama de componentes dos m odulos implementados. O
m odulo event faz parte do Ginga-NCL e e respons avel por tratar eventos, como requisic oes
e obtenc ao de respostas por meio do protocolo TCP. Ele e a base para toda a implementac ao.
O m odulo tcp.lua facilita o gerenciamento das requisic oes TCP assncronas, geradas por
meio do m odulo event. O m odulo ncluahttp.lua implementa o protocolo HTTP, utilizando o
TCP como camada de transporte. O m odulo ncluasoap.lua implementa o protocolo SOAP,
utilizando o ncluahttp.lua para enviar os envelopes SOAP por HTTP. Uma aplicac ao cliente,
que queira utilizar o protocolo HTTP (NCLua HTTP Client App), pode fazer uso direto
das func oes do m odulo ncluahttp.lua, abstraindo todos os outros m odulos. Uma aplicac ao
cliente, que queira consumir Web Services SOAP (NCLua Web Service Client App), pode
fazer uso direto das func oes do m odulo ncluasoap.lua, tamb em abstraindo todos os outros
m odulos.
69
Figura 5.3: Diagrama de Componentes do NCLua SOAP e NCLua HTTP
5.5 Exemplos de Uso e Testes de Interoperabilidade
Nesta sec ao s ao apresentados os exemplos de utilizac ao e aplicac oes desenvolvidas uti-
lizando os m odulos NCLua HTTP e NCLua SOAP, bem como testes de interoperabilidade
realizados.
5.5.1 Exemplos de uso do NCLua HTTP
A utilizac ao b asica do m odulo NCLua HTTP e por meio de uma chamada GET a uma
determinada URI, utilizando o m etodo request do m odulo, como exemplicado no script
NCLua da Listagem 5.3. Tal exemplo envia uma requisic ao HTTP GET para a p agina em
http://manoelcampos.com/votacao/votacao2.php, enviando um par ametro
votocomvalor igual a sim, obtendo o resultado (umc odigo HTML neste caso) e exibindo
no terminal. N ao existe interface gr aca neste exemplo, desta forma, o script cont em apenas
detalhes da requisic ao HTTP, mas e inteiramente funcional.
Na Listagem 5.3, a linha 1 adiciona o m odulo NCLua HTTP. A linha 8 chama a func ao
http.request que envia a requisic ao HTTP. Devido ` a particularidade assncrona do protocolo
TCP no Ginga-NCL (que e utilizado para transportar as mensagens HTTP), como explicado
na Sec ao 5.3.3, para facilitar o envio de requisic oes e recebimento de respostas, o m odulo
NCLua HTTP utiliza co-rotinas de Lua. Por este motivo, a obtenc ao do retorno deve ser feita
dentro de uma func ao, como a denida na linha 6, contendo os par ametros header e body
(comentados na denic ao da mesma). Tal func ao deve ser passada como par ametro ` a func ao
http.request, para que seja chamada por esta quando a resposta for obtida.
Listagem 5.3: Exemplo de envio de requisic ao GET com NCLua HTTP
1 r e q u i r e h t t p
2 Funcao de c a l l b a c k e x e c ut ada de f orma as s i nc r ona pe l o modulo ,
3 quando a r e s p o s t a da r e q u i s i c a o eh obt i da .
4 @param header Headers HTTP e nv i ados na r e s p o s t a
5 @param body Corpo da mensagem HTTP
6 f u n c t i o n get Res pons e ( header , body ) p r i n t ( Res pos t a o b t i d a \n , body ) end
7
8 h t t p . r e q u e s t ( h t t p : / / manoel campos . com/ vot o . php ? vot o=si m , get Res pons e )
O envio de requisic oes POST e bastante semelhante ao exemplo apresentado anterior-
mente. Neste caso, os par ametros devem ser passados ` a func ao http.request por meio de
70
uma tabela Lua. A formatac ao destes valores, como exigido pelo protocolo HTTP, e feita
automaticamente pelo NCLua HTTP.
Algumas aplicac oes foram desenvolvidas como prova de conceito do uso do m odulo
NCLua HTTP, as quais s ao apresentadas a seguir:
Enquete TVD: enquete com registro de voto e apurac ao a partir de servidor Web;
NCLua RSS Reader: leitor de notcias RSS de um provedor de conte udo na Web;
NCLua Tweet: envio e recebimento de mensagens pelo micro blog Twitter.
5.5.2 Exemplos de uso do NCLua SOAP
A seguir s ao apresentados exemplos de uso do NCLua SOAP para consumo de alguns
Web Services disponveis na Internet.
A Listagem 5.4 apresenta um exemplo de aplicac ao para exibir a previs ao do tempo
de uma cidade. A mesma n ao possui interface gr aca, mostrando o resultado no termi-
nal, para simplicar o c odigo. A linha 10 realiza a chamada ao m etodo remoto. Os dados
para realizac ao da requisic ao (incluindo o endereco do servico, nome do m etodo remoto e
par ametros de entrada) devem ser informados em uma tabela Lua, como mostrado entre as
linhas 4 a 8. A obtenc ao do retorno do m etodo remoto n ao e direta, devido ` a caracterstica
assncrona do protocolo TCP no Ginga-NCL, como j a explanado nas Sec oes 5.3.3 e 5.4.2.
Desta forma, e necess aria a denic ao de uma func ao que deve receber apenas um par ametro
(normalmente nomeado de result), como a func ao getResponse exibida na linha 2. Tal func ao
deve ser passada como par ametro ao m etodo call do m odulo ncluasoap, como mostrado na
linha 10. O envio da requisic ao ser a executado dentro de uma co-rotina Lua, criada pelo
NCLua SOAP. A func ao getResponse ser a executada automaticamente quando o retorno for
obtido. Desta forma, todo o controle das chamadas assncronas e feito pelo NCLua SOAP,
como j a amplamente discutido na Sec ao 5.4.2.
Como o servico consumido neste exemplo retorna apenas uma string com a previs ao
do tempo (chuvoso, nublado, ensolarado, etc), para exibir tal resultado basta imprimir o
par ametro result da func ao getResponse, como apresentado na linha 6.
Listagem 5.4: Exemplo de consumo de Web Service de previs ao do tempo
1 r e q u i r e nc l ua s oa p
2 f u n c t i o n get Res pons e ( r e s u l t ) p r i n t ( Pr e v i s a o do Tempo : , r e s u l t ) end
3
4 l o c a l msg = {
5 a ddr e s s = h t t p : / / www. d e e p t r a i n i n g . com/ we bs e r vi c e s / weat her . asmx ,
6 namespace = h t t p : / / l i t wi n c o n s u l t i n g . com/ we bs e r vi c e s / ,
7 oper at i onName = Get Weat her , par ams = { Ci t y = New York }
8 }
71
9
10 nc l ua s oa p . c a l l ( msg , get Res pons e )
O exemplo apresentado na Listagem 5.5 consume um servico para obtenc ao de um
endereco a partir do CEP. Observe que o que muda entre as linhas 6 e 10, em relac ao ao
exemplo anterior, s ao apenas os valores da tabela msg, que cont em os dados para gerac ao
da requisic ao SOAP. Na func ao getResponse, entre as linhas 2 e 4, note que agora, o resul-
tado retornado e um tipo composto, que e acessado como uma tabela Lua. Tal tabela conter a
campos com os valores armazenados no XML enviado pelo Web Service.
Listagem 5.5: Exemplo de consumo de WS de consulta de endereco a partir do CEP
1 r e q u i r e nc l ua s oa p
2 f u n c t i o n get Res pons e ( r e s u l t )
3 p r i n t ( r e s u l t . nome , r e s u l t . b a i r r o , r e s u l t . ci dade , r e s u l t . UF)
4 end
5
6 l o c a l msg = {
7 a ddr e s s = h t t p : / / www. b r o n z e b u s i n e s s . com. br / we bs e r vi c e s / wscep . asmx ,
8 namespace = h t t p : / / t e mpur i . or g / ,
9 oper at i onName = cep , par ams = { s t r c e p = 70855530 }
10 }
11
12 nc l ua s oa p . c a l l ( msg , get Res pons e )
Algumas aplicac oes foram desenvolvidas como prova de conceito de utilizac ao do
m odulo. Entre elas est ao o rastreamento de encomendas postadas pelos Correios, consulta
de cotac ao do D olar, previs ao do tempo, consulta de endereco a partir do CEP e outras.
5.5.2.1 Testes de Interoperabilidade
Os diversos servicos consumidos pelas aplicac oes apresentadas s ao desenvolvidos em
diferentes linguagens e plataformas. Procurou-se realizar testes com estes diferentes servicos
para vericar a interoperabilidade do NCLua SOAP (um dos requisitos fundamentais, se n ao
o mais importante, para qualquer implementac ao SOAP). Com os testes realizados p ode-se
comprovar a eci encia do m odulo, uma vez que para todos os servicos testados, obteve-se o
retorno esperado, tratando-o de forma padronizada.
No incio, alguns usu arios do f orum do projeto relataram problemas ao utilizar servicos
desenvolvidos em linguagem Java. Os problemas encontrados foram devido aos Web Servi-
ces criados com a API JAX-WS, padr ao da plataforma Java, especicarem os tipos de dados
utilizados pelo servico em um arquivo XSD (XML Schema Denition) externo, no lugar
de especicar diretamente dentro do documento WSDL. Tal caracterstica requer pequenas
mudancas no formato da mensagem SOAP a ser enviada para consumir tais Web Services.
Assim, foi preciso adequar o m odulo para entrar em conformidade com o padr ao SOAP.
Particularidades encontradas em Web Services PHP tamb em foram relatadas e o m odulo
72
foi adequado para permitir a interoperabilidade com tais servicos.
E importante ressaltar
que, no caso de tais servicos PHP, estes foram desenvolvidos utilizando o tookit nuSOAP
6
.
Tal tookit n ao leva em conta os nomes dos par ametros de entrada e sim a ordem dos mes-
mos, n ao estando em conformidade com o padr ao SOAP. Assim, o problema e especco da
implementac ao do nuSOAP, mas que foi contornado pelo NCLua SOAP para evitar quais-
quer transtornos ao consumir Web Services desenvolvidos com tal tookit.
5.6 Ambiente de desenvolvimento
Para o desenvolvimento do projeto foram utilizados:
sistema operacional GNU/Linux Ubuntu 10.10 como sistema desktop para realizac ao
das tarefas de desenvolvimento:
ferramentas telnet e curl para teste de envio de requisic oes HTTP/SOAP geradas
com os m odulos implementados.
soapUI 3.5.1 para testes de consumo de Web Services SOAP;
Astah Community 6.1 (antigo Jude) para modelagem UML;
IDE Eclipse 3.6:
plugin NCLEclipse 1.5.1;
plugin LuaEclipse 1.3.1.
ferramenta LuaDoc
7
para gerac ao de documentac ao;
implementac ao de refer encia do Ginga-NCL (Ginga Virtual Set-top Box 0.11.2):
m odulo tcp.lua
8
para envio de requisic oes TCP;
m odulo LuaXML para tratamento de XML;
m odulo LuaProler
9
para realizac ao das an alises de desempenho, descritas na
Sec ao 5.7.
interpretador Lua para execuc ao do script wsdlparser.lua fora do Ginga Virtual Set-top
Box.
6
http://sourceforge.net/projects/nusoap
7
http://luadoc.luaforge.net
8
http://www.lua.inf.puc-rio.br/
francisco/nclua/
9
http://luaprofiler.luaforge.net
73
5.7 Avaliac ao de Desempenho e Comparac oes
5.7.1 Avaliac ao de Desempenho do NCLua SOAP
Utilizando-se a ferramenta LuaProler (que precisou ter seu processo de compilac ao al-
terado para funcionar em aplicac oes NCLua
10
) foram feitas algumas an alises do desempenho
do NCLua SOAP para avaliar o tempo gasto para gerac ao da requisic ao SOAP. Por meio da
func ao collectgarbage da biblioteca padr ao de Lua, p ode-se vericar o total de mem oria
consumida pelo m odulo.
O percentual de uso da CPU foi obtido por meio da ferramenta top, existente no sistema
operacional do Ginga Virtual Set-top Box. Para a obtenc ao deste percentual, executou-se a
aplicac ao NCL (que n ao inicia o script Lua automaticamente) e vericou-se o uso da CPU
pelo processo de nome ginga(respons avel pela execuc ao das aplicac oes interativas) no
momento em que este se tornava est avel. Em seguida, por meio de um comando na aplicac ao
NCL, o script Lua e ent ao executado, gerando e enviando a requisic ao SOAP. Ap os isto,
vericou-se o pico de uso do processador, considerando que os scripts Lua testados somente
enviam a requisic ao SOAP e exibem o retorno no terminal. Com a diferenca entre o pico
de uso do processador depois da execuc ao do script e o valor observado antes do incio do
mesmo, obt em-se o percentual de uso do processador pelo NCLua SOAP.
A Tabela 5.1 apresenta os resultados obtidos para algumas das aplicac oes testadas.
Web Service consumido Par ametros
de entrada
Tempo de gerac ao da
requisic ao:
chamada ao m etodo
call (em segundos)
Uso de
Mem oria
RAM
(em KB)
% de Uso
da CPU
Situac ao do tempo
http://www.deeptraining.
com/webservices/weather.
asmx
City = Braslia 0.13 121.78 0.3
Convers ao de Moeda
http://www.webservicex.
net/CurrencyConvertor.asmx
FromCurrency = USD
ToCurrency = BRL
0.13 121.65 0.3
Consulta de endereco a partir do CEP
http://www.maniezo.com.br/
webservice/soap-server.php
cep = 77021682 0.13 133.17 0.3
Tabela 5.1: Avaliac ao de Desempenho do NCLua SOAP
Como pode ser observado na Tabela 5.1, o tempo para gerac ao da requisic ao, ou seja,
a chamada ao m etodo call do m odulo, na implementac ao de refer encia do Ginga (Ginga
Virtual Set-top Box, vers ao 0.11.2) est a em torno de 0.13 segundo. O m etodo call inclui a
convers ao dos dados passados em uma tabela Lua para o formato XML para serem envia-
dos ao Web Service. Tal m etodo n ao aguarda a conex ao ao servidor Web e nem o envio e
resposta da requisic ao, pois tais operac oes s ao assncronas no Ginga-NCL. Assim, o tempo
10
http://goo.gl/42CQA
74
de execuc ao do m etodo call reete apenas o tempo de gerac ao da requisic ao SOAP. Os tem-
pos obtidos nos testes n ao variaram muito, e a variac ao vai depender apenas do total de
par ametros passados.
O uso de mem oria RAM tamb em cou baixo, em torno de 120KB, que varia de acordo
com os par ametros de entrada e sada do m etodo remoto.
Em todos os exemplos executados, p ode-se observar que o percentual de uso da CPU se
manteve est avel em 0.3%, sendo um valor consideravelmente baixo.
Foram feitas an alises do uso direto do m odulo tcp.lua para vericar o overhead causado
pelo NCLua SOAP, que e uma camada sobre o tcp.lua. Nos tr es exemplos apresentados na
Tabela 5.1, o tempo de uso da CPU se manteve tamb em est avel e igual aos valores obtidos
com o NCLua SOAP, 0.3%. N ao foram feitas medidas quanto ao tempo gasto (em segundos)
para gerac ao da requisic ao, pois, para uso direto do tcp.lua, o desenvolvedor precisa passar
ao m odulo uma string j a com a requisic ao SOAP formatada. Assim, n ao h a um delay para
gerac ao da requisic ao pois o tcp.lua recebe a mesma pronta para envio (o que e bastante
complicado para o desenvolvedor gerar manualmente tal requisic ao HTTP/SOAP, al em de
ser totalmente inexvel).
Quanto ao consumo de mem oria RAM, o uso direto do tcp.lua permite uma otimizac ao
neste sentido, uma vez que a quantidade de var aveis e estruturas de dados declaradas e muito
menor, considerando que o m odulo deve receber a requisic ao pr e-formatada. Para o primeiro
exemplo da Tabela 5.1, a aplicac ao consumiu 76.02 KB de mem oria RAM, para o segundo
consumiu 75.59 KB e para o terceiro exemplo consumiu 66.28 KB. Tais valores mostram
que o consumo de mem oria est a em torno de 50% do consumido pelo NCLua SOAP.
Foram feitas aplicac oes para consumir os mesmos Web Services apresentados na Tabela
5.1 utilizando o m odulo LuaSOAP. No entanto, a aplicac ao funcionou apenas para o Web
Service de obtenc ao de endereco a partir do CEP, que implementa o SOAP 1.1. Para os outros
Web Services testados, que implementam SOAP 1.2, o LuaSOAP n ao enviou a requisic ao
no formato esperado e os Web Services retornaram mensagens de erro. O LuaSOAP e um
projeto que n ao tem atualizac oes desde 2004, assim, tais problemas eram esperados. Com o
Web Service de busca de endereco, a aplicac ao consumiu 139.20KB de mem oria RAM, cerca
de 6KB a mais que com o NCLua SOAP. O tempo de gerac ao da requisic ao foi de apenas
0.01 segundo, bem inferior ao do NCLua SOAP, que levou 0.13 segundo. Presume-se que
este tempo reduzido gasto pelo LuaSOAP e devido ao mesmo utilizar m odulos escritos em
C, que por serem compilados, t em este ganho de desempenho.
Quanto ao uso de CPU, a aplicac ao com o LuaSOAP teve pico de 1.0%, sendo que com o
NCLua SOAP este percentual foi de apenas 0.3. Presume-se que tal valor elevado e devido ao
fato de uso do parser XML Expat, que e uma implementac ao mais completa que o LuaXML
usado no NCLua SOAP.
Com tais valores apresentados anteriormente, considera-se que o NCLua SOAP e bas-
tante eciente em quest oes de tempo de processamento e uso de mem oria. Presume-se que
75
o tempo de processamento pode ser reduzido em um hardware dedicado como o dos Set-
top Boxes, pois os testes foram realizados em uma sistema operacional Linux com v arias
aplicac oes em execuc ao e em uma m aquina virtual (cujo desempenho e inferior a de uma
m aquina real com nalidades especcas).
5.7.2 Comparativo entre os m odulos implementados e o uso direto do
m odulo tcp.lua
Nesta sec ao e feito umcomparativo entre aplicac oes desenvolvidas utilizando os m odulos
implementados e o uso direto do m odulo tcp.lua[SantAnna 2010].
O NCLua SOAP, juntamente como o NCLua HTTP, encapsulam toda a complexidade
de envio de requisic oes SOAP por meio do protocolo HTTP, facilitando a utilizac ao de tais
protocolos em aplicac oes de TVDi. A quantidade de c odigo necess aria para a realizac ao de
requisic oes HTTP ou SOAP e bastante reduzida com os m odulos implementados, permitindo
uma maior agilidade no desenvolvimento de aplicac oes, al em de minimizar a possibilidade
de erros e reduzir a duplicac ao de c odigo.
A Tabela 5.2 apresenta um comparativo do total de linhas existentes em aplicac oes uti-
lizando os m odulos desenvolvidos e outras que n ao os utilizam, mostrando como o c odigo
das aplicac oes e reduzido com o uso dos m odulos implementados. A utilizac ao dos m odulos
no desenvolvimento de aplicac oes, al em de reduzir o c odigo das mesmas, libera o desen-
volvedor da necessidade de conhecer detalhes de implementac ao dos protocolos HTTP e
SOAP. Sem a utilizac ao do m odulo tcp.lua, com o uso direto da classe de eventos tcp do
Ginga-NCL, o c odigo das aplicac oes aumentaria substancialmente, em torno de 100 linhas
de c odigo.
Aplicac ao/Protocolo Sem m odulos implementados Com m odulos implementados
Enquete/HTTP 14 linhas de c odigo
5 func oes utilizadas diretamente
5 linhas de c odigo = 35% do anterior
1 func ao usada diretamente
Cotac ao do d olar/SOAP 64 linhas de c odigo
5 func oes utilizadas diretamente
15 linhas de c odigo = 23% do anterior
(9 s ao par ametros do WS) 1 func ao usada diretamente
Tabela 5.2: Comparativo entre aplicac oes de TVD sem e com os m odulos implementados
5.7.3 Comparativo entre o NCLua SOAP e outras implementac oes
A Tabela 5.3 apresenta um comparativo entre alguns toolkits SOAP e o NCLua SOAP.
76
Caractersticas Axis Axis2 PHP gSOAP NCLua SOAP
Linguagem Java Java PHP 5 C++ NCLua
SOAP 1.1 Sim Sim Sim Sim Sim
SOAP 1.2 Sim Sim Sim Sim Sim
SOAP com Anexos Sim Sim Sim Sim Ainda n ao
Gerac ao de c odigo cliente a partir do WSDL Sim Sim Sim Sim Ainda n ao
Suporte para formato document/literal Bom Bom M edio Bom Bom
Requisitos de runtime JVM JVM PHP engine Nenhum Ginga-NCL
Documentac ao Boa Pequena M edia Boa M edia
Tabela 5.3: Comparac ao entre NCLua SOAP e outros toolkits SOAP (adaptada de
[Louridas 2006]).
Como pode ser observado na Tabela 5.3, o NCLua SOAP s o n ao possui dois dos recursos
encontrados nos outros toolkits: suporte a anexos e gerac ao de c odigo cliente a partir do
WSDL. O uso de anexos n ao e algo comumente encontrado nos Web Services disponveis na
Web e com os quais foram feitos testes de interoperabilidade. A falta de gerac ao autom atica
de c odigo cliente a partir do WSDL n ao inviabiliza o uso do m odulo, pois tal c odigo pode
ser escrito pelo desenvolvedor que desejar consumir algum servico, obtendo manualmente
as informac oes necess arias no WSDL. No entanto, considera-se que tal recurso facilitar a
bastante o uso do m odulo.
5.8 Limitac oes do m odulo NCLua SOAP
A atual vers ao do NCLua SOAP possui algumas limitac oes, que entendemos n ao intere-
ferirem no uso do mesmo:
necessidade de o desenvolvedor saber a vers ao do protocolo SOAP do servico que ele
deseja consumir;
necessidade de extrair manualmente alguns dados como o namespace do servico;
falta de tratamento de erros retornados pelo protocolo HTTP, o que causar a comporta-
mentos inesperados na aplicac ao;
necessidade de saber se o servico utiliza um arquivo XML Schema Denition (XSD)
externo, para poder indicar isto no momento da chamada ao m etodo remoto;
n ao permitir o envio de anexos em formato Multipurpose Internet Mail Extensions
(MIME)[IETF 1996] dentro de uma mensagem SOAP.
77
Captulo 6
Conclus oes e Trabalhos Futuros
6.1 Conclus oes
As implementac oes apresentadas nesta dissertac ao s ao todas originais, por n ao haver ne-
nhuma outra implementac ao (pelo menos de c odigo aberto) para o sub-sistema Ginga-NCL
dos protocolos HTTP e SOAP, de um framework de componentes gr acos e de aplicac oes
de T-Commerce. Tais implementac oes permitem o desenvolvimento de aplicac oes dos mais
variados tipos para o Ginga-NCL, alavancando o desenvolvimento de aplicac oes interativas
para o SBTVD (ISDB-TB).
Os m odulos NCLua HTTP e NCLua SOAP facilitam a converg encia entre Web e TV,
escondendo os detalhes de implementac ao dos protocolos HTTP e SOAP do desenvol-
vedor de aplicac oes de TVDi, permitindo o surgimento de novas aplicac oes interativas
que fazem uso de conte udo da Internet. O NCLua SOAP permitiu o desenvolvimento de
aplicac oes de T-Government como apresentado em [Barbosa, Kutiishi e Lima 2010], en-
tre outras. Na p agina do projeto, em http://ncluasoap.manoelcampos.com e
em http://labtvdi.unb.br, existe um link para o f orum de discuss ao do m odulo,
onde alguns usu arios relatam a utilizac ao do mesmo, por exemplo, em aplicac oes de
recomendac ao de conte udo e T-Learning.
Atualmente, o processo de obtenc ao dos dados para realizar a chamada a um m etodo
remoto em um Web Service ainda e praticamente todo manual, no entanto, ap os o desenvol-
vedor obter tais dados para o m etodo remoto desejado, a realizac ao da requisic ao e bastante
simplicada, principalmente pelo fato de Lua ser uma linguagem de tipagem din amica, n ao
obrigando a declarac ao de vari aveis com seus respectivos tipos. O feedback dos usu arios
tem mostrado que o m odulo est a sendo bastante util para a comunidade, al em de permitir a
evoluc ao do mesmo.
A arquitetura proposta serve de base para o desenvolvimento de servicos de T-Commerce
para o SBTVD, mostrando como diversos servicos podem ser integrados em uma unica ar-
quitetura para um prop osito nal. Tal arquitetura tamb em serve como um estudo de caso
78
dos percalcos enfrentados para a elaborac ao de um ambiente de desenvolvimento e testes de
aplicac oes para o SBTVD, mostrando as ferramentas necess arias para isto.
As an alises de desempenho apresentadas dos protocolos implementados mostraramcomo
a soluc ao proposta e eciente em uso de processador e mem oria RAM, sendo uma soluc ao
ideal para uso em ambientes restritos de recursos, como os Set-top Boxes.
Os protocolos implementados s ao a base da integrac ao entre Web e TV e est ao sendo
bastante uteis em diversos outros trabalhos, como apresentado no Captulo 5, mostrando
como os resultados alcancados se tornaram importantes para a comunidade de TV Digital no
Brasil e na Am erica Latina, onde quase todos os pases j a adotaram o ISDB-TB.
A aplicac ao de T-Commerce desenvolvida delineia o processo de desenvolvimento de
aplicac oes que fogem do trivial, mostrando como aplicar recursos como orientac ao a obje-
tos na linguagem Lua, uso do canal de retorno/interatividade no SBTVD, uso de arquivos
XML e arquivos de dados em formato Lua, al em de outros recursos. O uso do framework
LuaOnTV para construc ao de interfaces gr acas de usu ario e bastante exvel e d a suporte
a m ultiplos dispositivos, adaptac ao autom atica das dimens oes dos componentes gr acos da
aplicac ao, al em do uso de templates para permitir uma denic ao centralizada da identidade
visual da aplicac ao. Tal recurso de templates permite alterar a identidade visual da aplicac ao
facilmente, podendo-se ter templates diferentes para tipos de dispositivos diferentes (como
TVs e celulares).
Outras aplicac oes foram desenvolvidas, como o NCLua RSS Reader e o Rastreador de
Encomendas que servem como prova de conceito dos protocolos como HTTP e SOAP, im-
plementados nesta dissertac ao.
Os objetivos apresentados na Sec ao 1.1 foram todos alcancados, apresentando uma
soluc ao completa, desde o ambiente de desenvolvimento, at e a realizac ao de an alises de
desempenho das aplicac oes desenvolvidas.
A Tabela 6.1 apresenta uma descric ao de como tais objetivos foram alcancados.
79
Objetivo
Especco
Como foi alcancado
A Os requisitos funcionais e n ao funcionais foram elicitados, tendo servido de
guia para o desenvolvimento da arquitetura proposta;
B a arquitetura foi proposta e desenvolvida, apresentando-se a mesma por meio
de guras e diagramas UML, al em da montagem de uma distribuic ao GNU/-
Linux contendo todo o ambiente de desenvolvimento elaborado;
C um framework de comunicac ao de dados foi desenvolvido, composto pelos
m odulos NCLua HTTP e NCLua SOAP, que implementam os protocolos
HTTP e SOAP, respectivamente, sendo a base de toda a interoperac ao das
aplicac oes desenvolvidas com diferentes provedores de servicos Web;
D as diferentes aplicac oes de TVDi propostas foram desenvolvidas e apresenta-
das, servindo como prova de conceito do uso dos frameworks desenvolvidos
ou estendidos;
E o framework LuaOnTV foi estendido, incluindo-se suporte a temas. O re-
curso de temas foi utilizado na aplicac ao de T-Commerce desenvolvida. A
adaptac ao autom atica da interface da aplicac ao foi testada em ambiente vir-
tual de TV Digital (o Ginga Virtual Set-top Box) com diferentes resoluc oes de
tela. Em tal ambiente, a adaptac ao autom atica do tamanho da interface gr aca
da aplicac ao ao tamanho da tela do televisor mostrou-se satisfat oria, possibi-
litando que a aplicac ao de adapte automaticamente a diferentes dispositivos
receptores de TVD;
F um modelo de desenvolvimento de aplicac oes de TVDi baseado em templa-
tes foi elaborado e apresentado. Tal modelo foi utilizado na aplicac ao de T-
Commerce desenvolvida, o que permitiu uma agilidade no desenvolvimento
da mesma, denindo um conjunto de componentes gr acos b asicos e uma
identidade visual comum a todas as telas da aplicac ao desenvolvida.
Tabela 6.1: Objetivos Especcos Alcancados
6.2 Trabalhos Futuros
Como trabalhos futuros, pretende-se concluir a implementac ao do parser autom atico do
documento WSDL e gerac ao de stubs Lua, contendo func oes proxies para realizar a chamada
aos m etodos remotos (semelhante a ferramentas como o wsdl2java
1
, pretende-se transformar
o script wsdlparser em um wsdl2nclua) e incluir tratamento de excec oes para permitir que as
aplicac oes de TVDi possam emitir mensagens amig aveis ao usu ario quando uma requisic ao
HTTP falhar.
O m odulo NCLua HTTP permite que seja utilizado qualquer m etodo HTTP em uma
1
http://ws.apache.org/axis/java/user-guide.html
80
requisic ao, no entanto, apenas os m etodo GET e POST foram testados. Desta forma,
pretende-se realizar testes de conformidade utilizando-se os m etodos HTTP OPTIONS,
HEAD, PUT e DELETE. Pretende-se tamb em implementar mais funcionalidades no m odulo,
como realizar redirecionamentos automaticamente a partir de respostas HTTP como 301 e
302, al em de implementar alguns recursos do HTTP/1.1, como conex oes persistentes.
A arquitetura tamb em pode ser estendida nos pontos a seguir:
incluir suporte a metadados na aplicac ao para que a mesma possa oferecer produtos
vinculados a um programa televisivo, permitindo que a oferta do produto seja mostrada
ao telespectador em momento determinado no arquivo de metadados, utilizando os
recursos de sincronizac ao de mdias existente na linguagem NCL;
estudar a viabilidade e uso do protocolo de autorizac ao Open Authentication (oAuth)
2
,
que e bastante utilizado atualmente em redes sociais, permitindo ao usu ario ter um
login e senha unicos para acesso a diferentes servicos, agilizando o processo de login
(caso o usu ario decida salvar localmente, de forma criptografada, as informac oes de
autorizac ao);
estender a arquitetura para um modelo baseado em descoberta de servicos que pos-
sibilite a integrac ao de diferentes lojas virtuais que implementem a arquitetura aqui
proposta, utilizando recursos como a linguagem BPEL (Business Process Execution
Language) para permitir a composic ao de servicos e tornar tal integrac ao transparente
para aplicac ao de TVDi;
utilizar a extens ao WS-Security[OASIS 2006] para permitir a seguranca na
comunicac ao entre os Web Services e as aplicac oes cliente;
criar ferramenta, para execuc ao do lado da emissora de TV, que permita o envio dos
produtos em oferta via broadcast, possibilitando a usu arios, sem conex ao com a Inter-
net, visualizarem tais produtos na tela de seu equipamento de TVD.
2
http://oauth.net
81
Refer encias Bibliogr acas
[ABNT 2008]ABNT, N. 15606-2. Televis ao digital terrestreCodicac ao de dados e
especicac oes de transmiss ao para radiodifus ao digital Parte 2: Ginga-NCL para receptores
xos e m oveisLinguagem de aplicac ao XML para codicac ao de aplicac oes, 2008.
[Barbosa, Kutiishi e Lima 2010]BARBOSA, R. de C.; KUTIISHI, S. M.; LIMA, V. de. De-
senvolvendo servicos de governo eletr onico multiplataforma para TV interativa utilizando
Web Services. Simp osio Brasileiro de Sistemas Multimdia e Web (WebMedia 2010), 2010.
[Barbosa e Soares 2008]BARBOSA, S. D. J.; SOARES, L. F. G. TV digital interativa no
Brasil se faz com Ginga: Fundamentos, Padr oes, Autoria Declarativa e Usabilidade.
Atualizac oes em Inform atica, p. 105174, 2008.
[Board 2009]BOARD, R. A. RSS 2.0 Specication. Disponvel em: http://www.
rssboard.org/rss-specification. Acessado em: 20 mar. 2009., 2009.
[Braga e Restani 2010]BRAGA, A. M.; RESTANI, G. S. Introduc ao ` a seguranca de
aplicac oes para a TV digital interativa brasileira. Simp osio Brasileiro de Seguranca (SBSeg
2010), 2010.
[CETIC.br 2009]CETIC.BR. Tic Domiclios e Usu arios - Pesquisa sobre o Uso das Tecnolo-
gias da Informac ao e da Comunicac ao no Brasil. Disponvel em: http://cetic.br/
usuarios/tic/. Acessado em: 04 mar. 2010., 2009.
[Chu et al. 2007]CHU, S. C. et al. Evolution of e-commerce Web sites: A conceptual fra-
mework and a longitudinal study. Information & Management, Elsevier, v. 44, n. 2, p.
154164, 2007. ISSN 0378-7206.
[Cooper 1999]COOPER, C. Using expat. Disponvel em: http://www.xml.com/pub/
a/1999/09/expat/. Acessado em: 20 dez. 2010., 1999.
[Costa 2009]COSTA, L. C. de P. Seguranca para o Sistema Brasileiro de Televis ao Digital:
Contribuic oes ` a Protec ao de Direitos Autorais e ` a Autenticac ao de Aplicativos. Dissertac ao
de Mestrado. Escola Polit ecnica da Universidade de S ao Paulo, 2009.
[Coulouris, Dollimore e Kindberg 2007]COULOURIS, G.; DOLLIMORE, J.; KINDBERG,
T. Sistemas Distribudos: Conceitos e Projeto. Porto Alegre, 4a. ed.: Bookman, 2007.
82
[Curbera et al. 2002]CURBERA, F. et al. Unraveling the Web services web: an introduction
to SOAP, WSDL, and UDDI. IEEE Internet computing, v. 6, n. 2, p. 8693, 2002. ISSN
1089-7801.
[Davis e Parashar 2005]DAVIS, D.; PARASHAR, M. Latency performance of SOAP imple-
mentations. In: IEEE. 2nd IEEE/ACM International Symposium on Cluster Computing
and the Grid. [S.l.], 2005. ISBN 0769515827.
[Engelen e Gallivan 2005]ENGELEN, R. A. V.; GALLIVAN, K. A. The gSOAP toolkit for
web services and peer-to-peer computing networks. In: Cluster Computing and the Grid,
2002. 2nd IEEE/ACM International Symposium on. [S.l.: s.n.], 2005. ISBN 0769515827.
[Fern andez e Goldenberg 2008]FERN
Y e Simperl 2008]KOPECK