• Nenhum resultado encontrado

Trendtv : uma arquitetura para mudança automática de canais de TV baseada em redes sociais virtuais com graus de amizade e suporte a múltiplos dispositivos no cenário da TV digital brasileira

N/A
N/A
Protected

Academic year: 2017

Share "Trendtv : uma arquitetura para mudança automática de canais de TV baseada em redes sociais virtuais com graus de amizade e suporte a múltiplos dispositivos no cenário da TV digital brasileira"

Copied!
76
0
0

Texto

(1)

UNIVERSIDADEFEDERALDO RIO GRANDE DO NORTE

UNIVERSIDADEFEDERAL DORIOGRANDE DO NORTE CENTRO DETECNOLOGIA

PROGRAMA DEPÓS-GRADUAÇÃO EMENGENHARIAELÉTRICA

Hugo Tácito Azevedo de Sena

TrendTV: Uma Arquitetura para Mudança

Automática de Canais de TV Baseada em Redes

Sociais Virtuais com Graus de Amizade e

Suporte a Múltiplos Dispositivos no Cenário da

TV Digital Brasileira

Orientador: Prof. Dr. Aquiles Medeiros Filgueira Burlamaqui

(2)

UNIVERSIDADEFEDERALDO RIO GRANDE DO NORTE PROGRAMA DEPÓS-GRADUAÇÃO EMENGENHARIAELÉTRICA

TrendTV: Uma Arquitetura para Mudança

Automática de Canais de TV Baseada em Redes

Sociais Virtuais com Graus de Amizade e

Suporte a Múltiplos Dispositivos no Cenário da

TV Digital Brasileira

Hugo Tácito Azevedo de Sena

Orientador: Prof. Dr. Aquiles Medeiros Filgueira Burlamaqui

Dissertação de Mestrado apresentada ao

Programa de Pós-Graduação em Engenha-ria Elétrica da UFRN (área de concentração: Engenharia de Computação) como parte dos requisitos para obtenção do título de Mestre em Ciências.

(3)

Divisão de Serviços Técnicos

Catalogação da Publicação na Fonte. UFRN / Biblioteca Central Zila Mamede

Sena, Hugo Tácito Azevedo de.

TrendTV: Uma arquitetura para mudança automática de canais de TV baseada em redes sociais virtuais com graus de amizade e suporte a múltiplos dispositivos no cenário da TV digital brasileira / Hugo Tácito Azevedo de Sena - Natal, RN, 2012

82 f.; il.

Orientador: Aquiles Medeiros Filgueira Burlamaqui

Dissertação (Mestrado) - Universidade Federal do Rio Grande do Norte. Cen-tro de Tecnologia. Programa de Pós-Graduação em Engenharia Elétrica.

1. Televisão digital - Dissertação. 2. Redes sociais virtuais - Dissertação. 3. Guias de programação eletrônicos - Dissertação. 4. Programas de TV - Classi-ficação. I. Burlamaqui, Aquiles Medeiros Filgueira. II. Universidade Federal do Rio Grande do Norte. III. Título.

(4)

Automática de Canais de TV Baseada em Redes

Sociais Virtuais com Graus de Amizade e

Suporte a Múltiplos Dispositivos no Cenário da

TV Digital Brasileira

Hugo Tácito Azevedo de Sena

Dissertação de Mestrado aprovada em 13 de fevereiro de 2012 pela banca examinadora composta pelos seguintes membros:

Prof. Dr. Aquiles Medeiros Filgueira Burlamaqui (orientador) . . . . ECT/UFRN

Prof. Dr. José Carlos Aronchi de Souza . . . SECGSP

Prof. Dr. Sérgio Queiroz de Medeiros . . . DCOMP/UFS

(5)

Agradecimentos

Ao meu amigo Ricardo pelo apoio e incentivo durante a realização deste trabalho.

Ao meu orientador, professor Aquiles Medeiros Filgueira Burlamaqui, sou grato pela orientação.

À minha família, especialmente meus pais, pela paciência durante esta jornada.

(6)

Devido à grande quantidade de conteúdo televisivo, que surgiu junto com a TV Di-gital, os telespectadores estão diante de um novo desafio, saber como procurar conteúdo interessante de maneira intuitiva e eficiente. Os guias eletrônicos de programação per-sonalizada (pEPG) surgem como uma resposta para esse complexo desafio. Propomos a TrendTV, uma arquitetura em camadas que permite a formação de redes sociais entre te-lespectadores de programas de TV Digital Interativa baseada em microblog de conteúdo

on-line. Associado a um pEPG, esta rede social permite que um telespectador realize

filtragens de conteúdo sobre um determinado assunto a partir das indicações feitas por outros telespectadores de sua rede. Isto permite que o telespectador crie sua própria indicação para um determinado conteúdo no momento em que ele é exibido, ou ainda analisar a importância de um determinado programa on-line, baseado nessas indicações. Isto permite que qualquer usuário possa realizar filtros no conteúdo, além de gerar e tro-car informações com os outros usuários de modo flexível e transparente, utilizando vários dispositivos diferentes(TVs,Smartfones, Tablets ou PCs). Além disso, essa arquitetura define um mecanismo para realizar a mudança automática de canais baseado no melhor programa que está passando no momento, sugerindo novos componentes a serem agre-gados ao middleware do Sistema Brasileiro de TV Digital (Ginga). Como resultado é construída uma base de dados dinâmica e que contém a classificação de vários programas de TV, bem como uma aplicação que permite mudar automaticamente para o melhor canal do momento.

Palavras-chave: TV Digital, Redes Sociais Virtuais, Guias de Programação

(7)

Abstract

Due to the large amount of television content, which emerged from the Digital TV, viewers are facing a new challenge, how to find interesting content intuitively and ef-ficiently. The Personalized Electronic Programming Guides (pEPG) arise as an answer to this complex challenge. We propose TrendTV a layered architecture that allows the formation of social networks among viewers of Interactive Digital TV based on online microblogging. Associated with a pEPG, this social network allows the viewer to per-form content filtering on a particular subject from the indications made by other viewers of his network. Allowing the viewer to create his own indications for a particular content when it is displayed, or to analyze the importance of a particular program online, based on these indications. This allows any user to perform filtering on content and generate or exchange information with other users in a flexible and transparent way, using several different devices (TVs, Smartphones, Tablets or PCs). Moreover, this architecture defines a mechanism to perform the automatic exchange of channels based on the best program that is showing at the moment, suggesting new components to be added to the middleware of the Brazilian Digital TV System (Ginga). The result is a constructed and dynamic da-tabase containing the classification of several TV programs as well as an application to automatically switch to the best channel of the moment.

Keywords: Digital TV, Virtual Social Networks, Electronic Program Guides, TV

(8)

Sumário i

Lista de Figuras iii

Lista de Tabelas v

1 Introdução 1

1.1 Motivação . . . 4

1.2 Definição do Problema . . . 4

1.3 Objetivos . . . 5

1.4 Metodologia . . . 6

1.5 Estrutura deste trabalho . . . 6

2 Embasamento Teórico 7 2.1 Interação Humano-computador . . . 7

2.2 Sistemas Distribuídos . . . 7

2.2.1 Arquitetura Cliente Servidor . . . 8

2.2.2 Arquitetura Multi-Camadas . . . 9

2.2.3 Comunicação em Grupos . . . 9

2.2.4 Paradigma MVC . . . 10

2.3 Redes Sociais Virtuais . . . 11

2.3.1 Interações Sociais . . . 12

2.3.2 Métricas nas Redes Sociais . . . 13

2.4 Televisão Digital e Interatividade . . . 14

2.4.1 TV Social . . . 15

2.4.2 Interatividade . . . 16

2.4.3 Arquitetura Geral da TV Digital . . . 17

2.5 Middleware Ginga . . . 18

2.5.1 Ginga Common Core . . . 19

2.5.2 Ginga-NCL . . . 20

2.5.3 Ginga-J . . . 20

3 Trabalhos Relacionados 23 3.1 PTV . . . . 23

3.2 Mass Personalization . . . . 24

3.3 Tribler . . . . 25

(9)

3.4 AmigoTV . . . 26

3.5 CollaboraTVware . . . . 26

3.6 EPG-Board . . . . 26

3.7 Miso . . . . 28

3.8 TA2 . . . . 28

3.9 Comparação Entre Trabalhos . . . 28

4 Arquitetura TrendTV 31 4.1 Solução Proposta . . . 31

4.1.1 Trend4Web . . . 32

4.1.2 Trend4Mobile . . . 32

4.1.3 Trend4TV . . . 32

4.1.4 Protocolo de Comunicação para a Mudança Automática de Canais 33 4.1.5 Cálculo Para Aplicação de Pesos às Notas dos Programas . . . 34

5 Cenários da Arquitetura TrendTV 35 5.1 Cadastrar Usuário . . . 36

5.2 Adicionar Amigo . . . 36

5.3 Indicar Grau de Amizade . . . 37

5.4 Conversar . . . 37

5.5 Indicar Programa . . . 38

5.6 Receber Meta-Dados . . . 39

5.7 Enviar Meta-Dados . . . 39

5.8 Mudar Canal Automaticamente . . . 40

6 Implementação e Resultados 41 6.1 Aplicação Trend4Web . . . 41

6.2 Aplicação Trend4Mobile . . . 42

6.3 Aplicações Trend4TV . . . 43

6.3.1 Melhorias na Usabilidade . . . 45

6.3.2 Modelagem da Base de Dados . . . 45

6.3.3 Protocolo de Comunicação da Arquitetura TrendTV . . . 47

6.3.4 Implementação do Protocolo de Comunicação para a Mudança Automática de Canais . . . 48

6.3.5 Estrutura das Mensagens JSON . . . 49

7 Considerações Finais 55 7.1 Perspectivas . . . 56

(10)

1.1 Primeira página Web . . . 2

1.2 Exemplo de CSSN . . . . 2

1.3 Exemplo de Aplicação da DTV . . . . 3

2.1 Arquitetura Cliente-Servidor . . . 8

2.2 Arquitetura Multi-Camadas . . . 9

2.3 Modelos de Comunicação em Grupos . . . 10

2.4 Fluxo de Execução do Paradigma MVC . . . . 11

2.5 Exemplo de Comunidade em Redes Sociais Virtuais . . . 12

2.6 Exemplo de Grafo de Rede Social . . . 13

2.7 Arquitetura Geral da TV Digital . . . 17

2.8 Arquitetura do middleware Ginga . . . 18

2.9 Camada Ginga Common Core . . . 19

3.1 Arquitetura do Projeto PTV . . . 24

3.2 Arquitetura do Projeto Mass Personalization . . . . 24

3.3 Arquitetura do Projeto Tribler . . . . 25

3.4 Modelo de Funcionamento do AmigoTV . . . 26

3.5 Diagrama de Casos de Uso do CollaboraTVware . . . . 27

4.1 Arquitetura Geral - TrendTV . . . . 31

4.2 Fluxo de Comunicação para a Mudança Automática de Canais . . . 33

5.1 Cenário geral da Arquitetura TrendTV . . . . 35

5.2 Cenário Cadastrar Usuário . . . . 36

5.3 Cenário Adicionar Amigo . . . . 36

5.4 Cenário Indicar Grau de Amizade . . . . 37

5.5 Cenário Conversar . . . . 37

5.6 Cenário Indicar Programa . . . . 38

5.7 Cenário Receber Meta-Dados . . . . 39

5.8 Cenário Enviar Meta-Dados . . . . 39

5.9 Cenário Mudar Canal Automaticamente . . . . 40

6.1 Arquitetura Implementada - TrendTV . . . . 42

6.2 Classificação de Programas de Acordo com as Indicações dos Usuários . 43 6.3 Classificação de Programas na Aplicação Trend4Mobile . . . . 44

6.4 Mudança Automática de Canais na Aplicação Trend4Mobile . . . . 44

6.5 Mudança de Canais na Aplicação Trend4TV . . . . 45

(11)
(12)

2.1 Tipos de Interatividade . . . 16

3.1 Comparação entre os trabalhos relacionados . . . 30

6.1 Mensagens do Protocolo de Mudança Automática de Canais . . . 49

6.2 Mensagem JSON com informações de um Canal . . . . 49

6.3 Mensagem JSON com informações de um Programa . . . . 50

6.4 Mensagem JSON com informações sobre as Tendências do Momento . 51 6.5 Mensagem JSON com informações sobre as Conversas . . . 52

(13)

Capítulo 1

Introdução

Quando começaram a surgir os primeiros computadores, cada pessoa usava o compu-tador isoladamente em frente a um monitor e um teclado. Para ajudar as pessoas a lidarem de maneira mais fácil com os computadores, o campo Interação Humano-Computador (IHC) foi criado, provendo interfaces e softwares mais fáceis de usar para o usuário co-mum.

Na década de 1960, houve uma revolução quando as pessoas começaram a enviar mensagens de máquina para máquina, utilizando uma rede criada pelo Departamento de Defesa dos Estados Unidos, a ARPANET, que permitiu associar os grandes computado-res das universidades americanas a alguns de seus usuários [Cerf 1993].

Em seguida a comunicação se espalhou rapidamente através das barreiras organizaci-onais. A proliferação do correio eletrônico (e-mail) e do BBS (Bouletim Board System) na década de 80 permitiu a interligação entre computadores usando a linha telefônica e uma central de comunicação, denominada host. Estes hosts começaram a se associar uns com os outros através da rede mundial de computadores (World Wide Web) usando a comunicação entre redes distintas (Internet). Esse termo se tornou tão difundido que alguns chamam simplesmente de Net ou Web. A primeira página da web pode ser vista na Figura 1.1 [Berners-Lee & et al. 1992] :

A expansão da internet em 1990 (baseada na Web e e-mail) se tornou tão evidente que ter um computador se tornou sinônimo de estar conectado a internet. Seu rápido cresci-mento e a estrutura de uma rede formada de redes torna difícil mensurar a sua quantidade de usuários.

Com o surgimento da internet começou a surgir nas pessoas a necessidade de criarem relacionamentos virtuais de maneira mais dinâmica e para suprir essa necessidades foram criadas as CSSN (Computer Supported Social Networks) [Wellman et al. 1996]. Assim estas redes se tornaram uma base importante para uma série de interações humanas, como: trabalho colaborativo, trabalho a distância, comunidades virtuais, além de agregar mais um meio de comunicação as pessoas. A comunicação nas redes sociais é mais desinibida, criativa, informal e pode ou não estar fechada de pessoa para pessoa. Um exemplo de rede social pode ser observado na Figura 1.2 [Twitter 2010] :

(14)

Figura 1.1: Primeira página Web

(15)

3

Web), weblogs(Wordpress e Blogger), microblogs (Twitter e Jaiku), além dos sites de

relacionamento.

A televisão, por sua vez, é um dos maiores meios de comunicação em massa e uma grande ferramenta de influência social, pois ela muda o sistema de valores de uma soci-edade. A televisão também altera as atitudes pessoais individuais e também oferece as pessoas um sentimento de pertencer a uma comunidade global.

O modelo de transmissão original da televisão, e o mais utilizado até hoje, envolve a transmissão de som e imagens em movimento por ondas de radio-frequência (RF), que são captadas por um receptor (o televisor). Neste sentido, é uma extensão do rádio.

A programação é o conteúdo da transmissão dos canais de televisão que são freqüen-temente dirigidos a uma determinada audiência que estará mais presente em um determi-nado horário. Exemplos programas sobre notícias locais/nacionais/internacionais(CNN,BBC), esportes (ESPN, SPORTV), filmes (HBO, Telecine), músicas(MTV) entre outros.

Além disso, muitas redes de televisão produzem programas primetime (horário nobre) para suas emissoras próprias ou afiliadas veicularem entre 19:00 e 23:00. Fora do horário nobre, grande parte das emissoras tem sua programação produzida localmente.

Recentemente estão sendo observadas mudanças no setor da televisão em várias fren-tes, como a migração para o conteúdo digital em alta definição. O advento da TV Digital (DTV), ofereceu ao consumidor uma grande quantidade de canais e conteúdos de progra-mação além de permitir a utilização de serviços interativos. Um exemplo de aplicação para TV Digital pode ser observado na figura 1.3:

Figura 1.3: Exemplo de Aplicação da DTV

Como parte de uma pesquisa de programas em serviços de TV personalizados, estão sendo desenvolvidas técnicas de recomendação e personalização que são interessantes ao domínio da TV [Smyth & Cotter 2001][Smeaton et al. 2001].

(16)

programa que esteja passando na TV no momento e assim obter uma maior satisfação na hora de escolher um determinado canal.

Uma aplicação construída segundo esse paradigma deverá permitir que o usuário te-nha acesso a opinião de qualquer amigo que faça parte da sua rede social sobre algum programa que esteja passando naquele instante. A partir da opinião de seus amigos o usuário pode mudar para o canal mais interessante ou ainda permitir que o sistema realize a mudança automática de canais, baseado nestas informações. O usuário poderá também se guiar pelos comentários de todos os usuários dessa aplicação para saber de maneira geral se o conteúdo que ele está assistindo no momento é interessante.

1.1

Motivação

Com o advento da TV Digital Interativa, surgiram inúmeras novas oportunidades de interação com o usuário. A conexão com a internet promovida pelo canal de retorno tor-nou a interatividade ainda mais dinâmica, permitindo que diversos usuários pudessem se comunicar. Devido à possibilidade de muitos canais oferecerem conteúdos interessan-tes, fica difícil para o telespectador escolher o canal que possui o melhor programa do momento. Desta maneira, usuários iniciantes tendem a querer assistir muitos canais ao mesmo tempo, e acabam por mudar constantemente de canal. Ao invés disso o usuário deveria aproveitar os programas e utilizar o controle remoto apenas para interação. As-sim, surge a necessidade de uma ferramenta que auxilie o telespectador nesse sentido. Dessa maneira, quanto maior a relevância dos resultados produzidos por esta ferramenta maior a satisfação do usuário.

Outro fator de motivação deste trabalho foi o fato de que estudos indicam que as redes sociais (tanto reais como virtuais) possuem uma grande influência sobre as escolhas que uma pessoa faz [Hiltz et al. 1986][Kiesler et al. 1984][Rice & Love 1987][Adrianson & Hjelmquist 1991][Weisband et al. 1995]. Desse modo um sistema de indicação de con-teúdo televisivo baseado em redes sociais com suporte a multidispositivos seria bastante interessante.

Além da necessidade que os humanos tem de se comunicar, das facilidades que as redes sociais virtuais trouxeram, somado ao fato de a TV ser um meio de comunicação em massa, o conteúdo que a televisão oferece funciona como uma espécie de "moeda social", no qual grupos de amigos tendem a assistir a mesma programação com o objetivo de gerar assuntos para conversas posteriormente, tanto no ambiente real como no ambiente virtual.

1.2

Definição do Problema

(17)

1.3. OBJETIVOS 5

o uso de históricos e perfis do usuário nas suas técnicas de filtragem de conteúdo para aprender mais sobre as preferências do usuário de maneira a oferecer conteúdo relevante a seus usuários.

Embora esses dois sistemas de filtragem de conteúdo sejam eficientes, eles apenas indicam a seus usuários os programas que foram classificados de acordo com suas carac-terísticas mais gerais, não oferecendo a troca de opiniões pessoais entre seus usuários em tempo real, o que torna a sua classificação menos dinâmica e desatualizada. Além disso, esses sistemas de filtragem podem apresentar os problema de cold-start (novos usuários não conseguem recomendações por parte do sistema) e first-rater (novos conteúdos não podem ser recomendados por ainda não possuírem classificação) [Sullivan et al. 2004].

Portanto o ponto de partida para o desenvolvimento das teorias abordadas neste traba-lho foi a construção de uma arquitetura que permita que usuários possam trocar opiniões pessoais em tempo real com outros usuários, tornando a classificação dos programas de TV mais dinâmica e atualizada, além de evitar os problemas de filtragem que foram cita-dos anteriormente.

A Internet surgiu para interconectar diversos ambientes distintos, permitindo aos seus usuários navegarem por ela e utilizarem a grande diversidade de recursos que ela disponi-biliza. O crescimento vertiginoso da internet [Cisco 2010] e a evolução dos protocolos de comunicação associada ao barateamento da banda-larga permitem agora que não apenas usuários, mas também dispositivos possam realizar comunicação e troca de mensagens de maneira automática, sem o apoio do usuário.

Para permitir uma arquitetura que tenha suporte a multi-dispositivos é necessário cons-truir um padrão de comunicação comum a todos os dispositivos, disponibilizando assim uma maneira de realizar a troca de mensagens entre esses dispositivos sem a interferência humana, independentemente do fato de os dispositivos possuírem interfaces gráficas dis-tintas para o usuário. Este tipo de solução necessita que a lógica de funcionamento e as informações não relacionadas a interface sejam consistentes, ou seja, a lógica e as infor-mações precisam ter o mesmo comportamento independente do dispositivo. Deste modo, podemos afirmar que esta solução segue o paradigma MVC (Model-View-Controller) para isolarmos os dados e informações das interfaces com o usuário.

1.3

Objetivos

O presente trabalho possui um objetivo principal e dois secundários.

* O principal objetivo deste trabalho é criar uma arquitetura que permite aos teles-pectadores da TV Digital indicar a qualidade de um determinado programa de TV em tempo real utilizando o conceito de redes sociais, para facilitar o processo de decisão de um usuário baseado na influência de amigos que participam da sua rede social.

(18)

* O segundo objetivo secundário deste trabalho é desenvolver uma aplicação que va-lide a arquitetura proposta, incluindo uma aplicação que permita a troca automática de canais, baseado nas indicações realizadas por seus usuários em tempo real.

1.4

Metodologia

Para modelar a arquitetura TrendTV foi utilizada a ferramenta UML Astah*

Commu-nity [Change-Vision 2010], bem como a ferramenta de construção de diagramas online Gliffy [Gliffy 2010].

Para realizar o desenvolvimento da aplicação, foi utilizada a abordagem de desenvol-vimento de software incremental, usando a metodologia ágil associada a XP (eXtreme

Programming) [Beck & Andres 2004], que é ideal para pequenas equipes de

desenvol-vimento com requisitos em constante mudança. Para validar a arquitetura, cada um dos módulo foi implementado.

As linguagens de programação que foram utilizadas para o desenvolvimento da apli-cação para a TV foram as linguagens NCL [TeleMidia 2006], Lua [Ierusalimschy et al. 2006] ou Java [Oracle 2010], utilizando o middleware Ginga [LAViD 2006] ou o emu-lador Ginga-J [LAViD 2006] para a execução das aplicações. A interface de desenvolvi-mento dessas aplicações foi o ambiente de programação Eclipse [Campbell 2010].

A linguagem utilizada para o desenvolvimento da aplicação via Web foi a linguagem

PHP, pois além de sua facilidade de desenvolvimento é muito utilizada para gerar

con-teúdo dinâmico para a Internet [Dall’oglio 2007]. Em conjunto será utilizado o framework

CodeIgniter, que permite desenvolver rapidamente aplicações web robustas e com baixa

configuração [Upton 2007].

Para que haja troca de informações entre os usuários da aplicação, a aplicação fará uso da internet, pois além de receber, o usuário irá enviar informações. Assim, para executar essa aplicação na TV Digital existe a necessidade de se utilizar o canal de retorno.

1.5

Estrutura deste trabalho

Apresentamos no capítulo 2 um embasamento teórico sobre os conceitos que são im-portantes ao entendimento do trabalho que está sendo proposto.

No capítulo 3 discutimos os trabalhos relacionados, falando dos pontos fracos e fortes de cada um, além de realizar uma comparação com este trabalho.

O trabalho proposto será finalmente descrito no capítulo 4, no qual exibe o modelo e estruturas que compõem esta arquitetura.

O contexto em que essa arquitetura está inserida e quando e como ela pode ser usada está definido no capítulo 5 que descreve os cenários desta arquitetura.

No capítulo 6 apresentamos as implementações da nossa arquitetura, e os resultados obtidos a partir dessas implementações.

(19)

Capítulo 2

Embasamento Teórico

O trabalho proposto baseia-se em uma série de conceitos que serão agrupados em 4 tópicos principais: Interação Humano-Computador, Sistemas Distribuídos, Redes Soci-ais VirtuSoci-ais, Televisão Digital e Interatividade. Esses tópicos e outros sub-tópicos serão abordados a seguir.

2.1

Interação Humano-computador

A Interação Humano-computador (IHC), como o próprio nome diz, é o estudo da inte-ração ou relação entre pessoas (usuários) e computadores. Suas áreas de estudo abrangem a ciência da computação, ciência comportamental, design, artes, além de outros campos de estudo, sendo portanto um campo multidisciplinar. As interações entre usuários e com-putadores ocorrem através de uma interface de usuário, que inclui tanto hardware quanto software, e este é o principal foco de estudo, embora valha a pena ressaltar também que outro aspecto importante da IHC é garantir a satisfação do usuário.

Entre as áreas que a IHC estuda podemos relacionar a usabilidade e a inclusão digital. O conceito de usabilidade surgiu na psicologia, associada à fisiologia e depois foi incor-porada à área de IHC. O estudo da inclusão digital envolve áreas como sociologia, ciência política, dentre outras.

A usabilidade é uma área de estudo do Design, que trata sobre a facilidade com que uma pessoa pode empregar uma ferramenta ou um objeto criado pelo homem para alcan-çar um determinado objetivo. Na IHC, a usabilidade estuda a facilidade e clareza com que uma determinada aplicação interage com um usuário.[Nielsen 2003]

A inclusão digital surgiu para democratizar o acesso aos recursos digitais como o computador e a Internet, permitindo a inserção da população em geral na sociedade da informação, que antes era restrita apenas às camadas mais favorecidas da sociedade. [da Silva Filho 2003]

2.2

Sistemas Distribuídos

(20)

& van Steen 2006] se trata de uma "coleção de computadores independentes que se apre-senta ao usuário como um sistema único e consistente".

A computação distribuída consiste em adicionar o poder computacional realizado por todas as máquinas envolvidas para processar colaborativamente uma determinada tarefa de forma coerente e transparente, fazendo com que o usuário tenha a impressão que apenas um único e centralizado computador estivesse executando a tarefa [Andrews 2000][Dolev 2000][Ghosh 2007].

Diferentemente de sistemas multi-thread ou multi-tarefa, que utilizam mais de um pro-cessador para realizar suas operações mas compartilham o mesmo espaço de memória, os sistemas distribuídos se utilizam da comunicação inter-processos, e geralmente consistem de diferentes computadores distribuídos geograficamente se comunicando através de uma rede [Lynch 1996]. Embora hoje em dia este seja um conceito impreciso pois podemos ter um sistema distribuído dentro de um mesmo computador interagindo seus processos através de passagem de mensagem [Andrews 2000].

Para que ocorra a comunicação inter-processos num determinado sistema distribuído, é necessário que um modelo ou arquitetura seja definido, para que seja possível a troca de mensagem entre esses diferentes processos. O modelo de comunicação utilizado nesse trabalho é o modelo cliente-servidor que será apresentado no sub-tópico 2.2.1.

2.2.1

Arquitetura Cliente Servidor

A arquitetura cliente-sevidor é uma estrutura de aplicações distribuídas que divide as tarefas entre os provedores de serviço, chamados de servidores e os consumidores de serviços, chamados de clientes [Reese 2000].

A figura 2.1 mostra a troca de mensagens da arquitetura cliente-servidor. Nesta figura podemos perceber que vários clientes de um determinado serviço realizam requisições a um servidor, e em seguida o servidor envia as respostas a essa requisições realizadas pelos clientes.

Serviços que utilizam este tipo de arquitetura são os mais comuns dentre os sistemas distribuídos. Alguns exemplos de serviços são os protocolos HTTP, FTP, DNS, bancos de dados, jogos on-line, dentre outros. Como estes serviços podem ter vários clientes, é necessário algumas alterações na infra-estrutura dessa arquitetura para dar suporte a uma grande quantidade de requisições.

(21)

2.2. SISTEMAS DISTRIBUÍDOS 9

2.2.2

Arquitetura Multi-Camadas

A arquitetura multi-camadas é uma arquitetura cliente-servidor na qual a apresenta-ção, o processamento da aplicação e o gerenciamento de dados são processos separa-dos logicamente. Por exemplo, uma aplicação que usa uma camada de serviço inter-mediária entre o usuário e uma base de dados emprega esta arquitetura [Fowler 2002]. As aplicações que utilizam essa arquitetura possuem em sua grande maioria 3 camadas [Eckerson 1995].

A arquitetura multicamadas provê um modelo aos desenvolvedores de criar aplicações flexíveis e reusáveis, proporcionando um baixo-acoplamento e evitando que a aplicação seja inteiramente reconstruída caso algum erro grave aconteça.

A figura 2.2 mostra a troca de mensagens de uma arquitetura multi-camadas, onde a camada de apresentação (que mostra a interface com o usuário) realiza requisições à camada de lógica de negócios, que contém as lógicas de funcionamento das aplicações. A camada da lógica de negócios realiza requisições à camada de persistência, que contém os modelos de dados das aplicações. A camada de persistência realiza uma requisição a base de dados sobre as informações obtidas através das camadas superiores e finalmente as respostas são devolvidas em cadeia para as camadas superiores.

Figura 2.2: Arquitetura Multi-Camadas

2.2.3

Comunicação em Grupos

(22)

• Modelo Broadcast: a mensagem é transmitida para todos os processos,

indepen-dente se a mensagem interessa ou não. Quem realiza a filtragem são os processos interessados naquela mensagem.

• Modelo Multicast: a mensagem é enviada apenas para os componentes de um grupo

em particular.

• Modelo Unicast: a troca de mensagens é realizada ponto-a-ponto, onde o emissor

envia uma mensagem apenas para um destino.

A figura 2.3 exemplifica a troca de mensagens nesses 3 tipos de modelos de comuni-cação em grupos.

Figura 2.3: Modelos de Comunicação em Grupos

2.2.4

Paradigma MVC

O paradigma MVC é uma arquitetura ou padrão arquitetural de software utilizado na engenharia de software para isolar a lógica de negócio da lógica de apresentação, através de três componentes distintos de forma que as modificações em um componente não causem impacto nos demais, dessa maneira aumentamos a coesão de cada componente e diminuímos o acoplamento, permitindo o desenvolvimento, teste e manutenção isolado destes. Embora o MVC seja um padrão arquitetural, neste capítulo escolhemos tratá-lo como um paradigma, pois este foi o termo utilizado para defini-lo num dos primeiros artigos sobre o MVC [Burbec 1987].

Quem primeiro descreveu o paradigma MVC foi o pesquisador da Xerox Trygve Re-enskaug em 1979, enquanto desenvolvia a interface do Smalltalk-80. Neste paradigma, as interações do usuário, a modelagem do mundo externo, e as lógicas do negócio estão explicitamente isoladas e cada uma delas é controlada por um componente de software distinto. Estes componentes são especializados na execução de uma determinada tarefa.

A visão (View) apresenta o modelo num formato adequado ao utilizador, na saída de dados, e diferentes visões podem existir para um mesmo modelo, para diferentes propó-sitos.

O controlador (Controller) interpreta as informações transmitidas pelo usuário através dos periféricos de entrada e se encarrega de transmitir estas informações ao View ou ao

Model, caso seja necessário. Ele também é responsável pela validação e filtragem da

entrada de dados.

(23)

2.3. REDES SOCIAIS VIRTUAIS 11

Figura 2.4: Fluxo de Execução do Paradigma MVC

(geralmente requisitados pelo visão), e transmite instruções sobre eventuais mudanças de estado (geralmente requisitadas pelo controller).

A figura 2.4 demonstra o fluxo de execução do MVC:

1: O usuário faz uma requisição ao controlador.

2: O controlador filtra e processa os dados, e envia ao modelo que faz a lógica de negócios.

3: O modelo retorna os dados já processados de volta ao controlador

4: O controlador pode processar novamente os dados e então repassa esses dados pós-processaados a visão

5: Finalmente a visão retorna para o usuário os dados na interface desejada.

Ao se utilizar o paradigma MVC, é possível refazer o componente de visão, sem alte-rar nada dos outros componentes. Como cada dispositivo que foi utilizado neste trabalho (celulares, set-top-boxes, televisão e computadores) possui linguagem própria então além da interface também é necessário refazer também os componentes de controle para cada dispositivo. Além de refazer os componentes de controle e de visão, os diferentes dispo-sitivos precisam se comunicar de maneira transparente e por isso, utilizar apenas o MVC não servirá para solucionar o nosso problema, já que esse padrão arquitetural não trata de protocolos de comunicação.

2.3

Redes Sociais Virtuais

(24)

e nos mais variados formatos (como fotos, vídeos, músicas, textos, etc) podendo atraves-sar inclusive barreiras geográficas e limites políticos [ComScore.com 2007].

A grande maioria das redes sociais virtuais também permite que grupos de pessoas com a mesma afinidade por um determinado assunto possam criar comunidades virtuais e espaço para discussões, debates e apresentações de temas variados (comunidades e fó-runs) [Hof et al. 1997]. Um exemplo de comunidade virtual está apresentado na figura 2.5:

Figura 2.5: Exemplo de Comunidade em Redes Sociais Virtuais

2.3.1

Interações Sociais

Uma interação social é uma associação entre duas ou mais pessoas que podem ser pas-sageiras ou duradouras. Estas interações podem ser baseadas em paixão, amor e simpatia, negócios, ou outros tipos de comprometimento social. As interações sociais ocorrem em uma grande variedade de contextos, como família, amigos, trabalho, clubes, religiões, dentre outros. Essas interações são a base para os grupos sociais e a sociedade como um todo.

Estes relacionamentos geralmente envolvem algum nível de interdependência. Pes-soas em relacionamentos tendem a influenciar umas as outras, compartilhando seus pen-samentos e emoções, e realizar atividades juntas. Por causa dessa interdependência, se algo afeta um membro do relacionamento os outros membros também sofrem algum tipo de impacto [Berscheid & Peplau 1983].

Quando as redes de computadores começaram a criar relacionamentos entre as pes-soas, começaram a surgir as interações sociais virtuais, e daí surgiu o conceito das

Computer-Supported Social Networks.

(25)

2.3. REDES SOCIAIS VIRTUAIS 13

pesquisas apontam que as características técnicas da comunicação por computador para tarefas em grupo produzem uma maior participação do grupo, de maneira mais igualitária, e com mais ideias sendo oferecidas, tornando a liderança menos centralizada [Hiltz et al. 1986][Kiesler et al. 1984][Rice & Love 1987][Adrianson & Hjelmquist 1991][Weisband et al. 1995]. A presença social limitada também encorajou as pessoas a se comunica-rem com mais liberdade e criatividade do que em pessoa, algumas vezes até cometendo excessos de liberdade [Kiesler et al. 1984].

2.3.2

Métricas nas Redes Sociais

Para analisar o comportamento de uma rede social, os indivíduos devem ser considera-dos nós e cada nó é ligado ou conectado com outro através considera-dos relacionamentos, formando dessa maneira grafos [Freeman 2006], que permitem diversos tipos de métricas. A figura 2.6 exemplifica um grafo de uma rede social utilizando a métrica Centrality.

Figura 2.6: Exemplo de Grafo de Rede Social

Algumas métricas freqüentemente utilizadas para analisar o comportamento de redes sociais são: Centralization, Centrality, Closeness, Degree, Bridge, Reach, dentre muitas outras [Wasserman & Faust 1994].

Centralization: uma rede centralizada terá muitos de seus relacionamentos em torno

de um ou poucos nós, enquanto uma rede descentralizada é aquela em que há pouca variação entre o número de ligações que cada nó possui.

Centrality: esta medida dá uma indicação aproximada do poder social de um

indi-víduo com base em quão bem ele se conecta a uma rede. Algumas métricas como

Closeness e Degree são todas medidas de Centrality.

Closeness: o grau de amizade de um indivíduo em relação a todos os outros

(26)

acessar informações mais relevantes e importantes entre os membros da rede. Desta maneira, a métrica Closeness é inversamente proporcional a soma das menores dis-tâncias entre cada indivíduo e outra pessoa nessa rede.

Degree: indica simplesmente a quantidade de relacionamentos que um indivíduo

tem em sua rede. Esta é a métrica mais usada pelas redes sociais virtuais.

Bridge: um relacionamento é dito Bridge, quando ele conecta dois grupos

distin-tos dentro de um grafo e caso este relacionamento seja apagado, isto irá causar a separação destes grupos em dois grafos distintos.

Reach: esta métrica calcula o grau que qualquer membro de uma rede pode alcançar

outro membro de uma rede.

2.4

Televisão Digital e Interatividade

A Televisão Digital (TVD) é um modelo de transmissão de áudio e vídeo através de sinal digital, em contraste com o sinal analógico utilizado pelas TVs analógicas. Mui-tos países estão substituindo a transmissão analógica pela transmissão digital pois esta permite um melhor uso do espectro do sinal de TV.

A TV Digital proporcionou a divisão da transmissão em três categorias principais:

SDTV (Standard Definition Television), HDTV (High Definition Television) e a EDTV

(Enhanced Definition Television). A primeira é um serviço de áudio e vídeo digitais, parecida com a TV analógica, na relação de aspecto 4:3 (largura:altura da imagem), cujos aparelhos receptores possuem 408 linhas, com 704 pontos em cada uma. A HDTV, cuja imagem possui formato 16:9, é recebida em aparelhos com 1080 linhas de definição e 1920 pontos. Entre esses dois sistemas existe a EDTV, TV de média definição, que possibilita a utilização de aparelhos com 720 linhas de 1280 pontos. Dependendo da largura de banda disponível para a transmissão, é possível mesclar essas modalidades de TV digital, uma vez que a qualidade da imagem no receptor é proporcional à banda utilizada pela transmissão [Montez & Becker 2004].

A TVD tem diversas vantagens sobre a TV analógica, a mais significativa é que os canais digitais ocupam menos largura de banda, e as necessidades de banda variam conti-nuamente, dependendo da redução realizada na qualidade da imagem e os níveis de com-pressão da imagem transmitida. Isto significa que os transmissores podem transmitir mais canais digitais utilizando o mesmo espaço ou prover serviços de TV de alta-definição, ou ainda prover serviços não televisivos como transmitir multimídia ou realizar interativi-dade. A TVD também permite serviços especiais tais como multiplexação (mais de um programa no mesmo canal), guias eletrônicos de programação e suporte a nacionalização (dublagens ou legendas). A venda de serviços também poderá ser mais uma fonte de lucro para as transmissoras [Montez & Becker 2004].

(27)

2.4. TELEVISÃO DIGITAL E INTERATIVIDADE 15

2.4.1

TV Social

A TV Social surgiu como uma tecnologia que suporta a comunicação e interação so-cial entre os usuários no contexto do ambiente televisivo. Este contexto envolve o estudo do comportamento social relacionado à televisão, além de redes e dispositivos. Segundo Marie-Jose Montpetit a TV social "não é apenas sobre pessoas serem sociais; é também sobre dispositivos e até redes sendo sociais."[Montpetit 2009]. Sistemas de TV Sociais dispõe de facilidades para o telespectador assistir à televisão enquanto realiza interações sociais, podendo integrar por exemplo sistemas de recomendação e classificação de pro-gramas, chat de texto, comunicação por voz, navegação na web ou até mesmo video-conferências utilizando equipamentos auxiliares [Gross et al. 2009].

Pode parecer uma surpresa, mas o conceito de socializar utilizando a televisão não é novo, a TV já é social e sempre foi. Assistir à TV é um evento coletivo e centralizado para a família, assim como à cinqüenta anos atrás. Mas devido ao seu barateamento, estudos mostram que mais da metade das residências americanas possuem três ou mais aparelhos de TV com mais de 250 canais [Nielsen.com 2010], tornando a TV uma experiência individual. Numa tentativa de recuperar este aspecto social de assistir televisão juntos, a TV Social tenta conectar os telespectadores e seus amigos mesmo quando estes não assistem à mesma tela.

Embora exista essa fragmentação no consumo, ainda não existe mecanismo de co-municação em massa que se compare à TV como experiência social. Estudos realizados pelo Grupo Nielsen, demonstram que cerca de metade da população online comenta sobre assuntos relacionados à televisão, além de que entre 10 e 17% das tendências online do momento falam sobre programas de TV [Nielsen.com 2011]. Futebol, Copa do Mundo, Olimpíadas, Novelas, Seriados são todos programas de TV que demonstram que a TV sempre foi social na medida que reúne pessoas em torno das experiências que eles que-rem compartilhar.

Um sistema de TV Social que utiliza uma ou mais telas pode permitir consumo para-lelo e interação com o conteúdo da televisão, criando experiências mais interessantes. Por exemplo, os telespectadores poderiam realizar uma seleção dos pré-candidatos a entrar num programa de reality-show, através de dispositivos como tablets, smartphones ou a própria televisão utilizando a web, ao invés de simplesmente escolher quem irá vencer o programa. Desta maneira, os telespectadores teriam a experiência de fazer parte do início do ciclo de produção de um programa, causando impacto inclusive sobre o valor desta mídia para os patrocinadores, na medida em que através de estudos de comportamento, pode-se criar propagandas altamente focadas no usuário [Rempt 2010].

Nos Estados Unidos, cerca de 25% dos novos modelos de televisão acessam a web [Albrecht 2009]. A convergência de mídias já está acontecendo, e em um futuro próximo não haverá distinção entre o conteúdo web e o conteúdo para TV, pois as aplicações web e mobile irão se associar à TV para interagirem com formatos e conteúdos.

(28)

2.4.2

Interatividade

A interatividade na TV surgiu junto com os sistemas de TVD e permite a interação entre o telespectador e o aparelho de TV. Ela pode ser entendida de várias maneiras de acordo com o sistema de TVD que está sendo utilizado. A interação pode ocorrer simples-mente entre o Set-Top-Box (STB) e o usuário, para mudar o canal ou visualizar o EPG. Os middlewares para TVD mais modernos, como é o caso do Ginga, também permitem a interação entre o telespectador e a emissora através de canais de retorno e aplicações criadas pela própria emissora [Machado 1999].

O canal de retorno permite a comunicação bidirecional entre o telespectador, as apli-cações interativas e o provedor de conteúdo, que no caso da TVD pode ser a própria emissora ou um terceiro. O canal de retorno oferece a transmissão de informações perso-nalizadas de cada usuário, enviando dados pessoais do telespectador, como uma mensa-gem de correio eletrônico, agenda de tarefas ou acesso a home-banking. [Machado 1999] cita os diferentes tipos de interação na tabela 2.1:

Classe de Interatividade Meio Interação Forte: transmissão

bidirecional, simétrica

Redes de Comunicação de Dados e Sistema de Radiodifusão

Interação Forte: transmissão assimétrica

bidirecional, de retorno solicitada pelo usuário

Sistema de Radiodifusão

Interação Média: transmissão

assimétrica bidirecional, de retorno solicitada pela emissora

Sistema de Radiodifusão

Interação Fraca: transmissão

assimétrica bidirecional, de retorno

off-line

Sistema de Radiodifusão

Interação sem canal de retorno:

transmissão unidirecional, sendo o terminal um servidor de aplicações

Sistema de Radiodifusão

Tabela 2.1: Tipos de Interatividade

(29)

2.4. TELEVISÃO DIGITAL E INTERATIVIDADE 17

2.4.3

Arquitetura Geral da TV Digital

A arquitetura de um sistema de televisão digital interativa é dividido em 5 camadas: (1) aplicação; (2) middleware; (3) codificação; (4) transporte; (5) transmissão. A ideia central da arquitetura em camadas é cada uma oferecer serviços para a camada superior e usar os serviços oferecidos pela inferior [Oliveira & Lacerda 2008]. A figura 2.7 apresenta cada uma destas camadas [Fernandes et al. 2004], que serão descritas a seguir.

Figura 2.7: Arquitetura Geral da TV Digital

A Camada de Aplicação responde pela captura e formatação dos sinais de áudio e vídeo, bem como pela execução dos aplicativos multimídias desenvolvidos. As aplicações comportadas vão desde jogos e internet até aplicações governamentais e de comércio eletrônico.

A Camada de Middleware é uma camada usada para ocultar do programador diferen-ças de protocolos de comunicação, plataformas e dependências do sistema operacional. É geralmente constituída por módulos dotados com APIs de alto nível que proporcionam a sua integração com aplicações desenvolvidas em diversas linguagens de programação e interfaces de baixo nível que permitem a sua independência em relação ao dispositivo.

A Camada de Codificação e Decodificação remove redundâncias nos sinais de áu-dio e vídeo, reduzindo assim a taxa de bits necessária para transmitir essas informações [Mendes 2007].

A Camada de Transporte é responsável por realizar a multiplexação e demultiplexa-ção dos fluxos elementares de áudio, vídeo e dados. A idéia da multiplexademultiplexa-ção é agrupar áudio, vídeo e dados em um único fluxo a ser transmitido e demultiplexá-lo quando este fluxo chegar no receptor [Oliveira & Lacerda 2008].

(30)

2.5

Middleware Ginga

O middleware brasileiro (o sistema que irá funcionar nos Set-Top Boxes fornecendo as funções previstas nas normas regulamentadoras do SBTVD) Ginga é resultado de uma ação conjunta entre a Universidade Federal da Paraíba (UFPB), criadora do módulo responsável pela interpretação de código Java (Ginga-J) nos STBs que incorporam as especificações Globally Executable MHP (GEM, que atualmente não faz mais parte da especificação do Ginga), e a Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio), responsável pelo desenvolvimento da linguagem de marcação NCL e a linguagem de script Lua e da especificação de seu motor de apresentação (Ginga-NCL) [Moreno et al. 2011][Melo & Araújo 2008].

O Ginga é uma camada de software intermediária, situada entre o sistema operacional e as aplicações. A primeira função dele é tornar as aplicações independentes da plata-forma de hardware e a segunda função é comportar à interatividade, através do suporte ao desenvolvimento de aplicações. O sistema é composto por três módulos ou camadas principais (Ginga-CC, Ginga-NCL e Ginga-J), permitindo que aplicações sejam desen-volvidas usando modelos de programação diferentes. A figura 2.8 mostra a arquitetura do Middleware Ginga.

O middleware Ginga surgiu como uma tecnologia que leva ao cidadão todos os meios para que ele obtenha acesso à informação, educação a distância e serviços sociais, uti-lizando apenas sua TV. O Ginga é uma especificação aberta, de fácil aprendizagem e livre de royalties, possibilitando que qualquer programador produza conteúdo interativo, impulsionando a programação de TVs comunitárias, por exemplo. Quando o Ginga foi desenvolvido, o Brasil foi o primeiro pais a possuir uma solução em software livre pra TV Digital.

(31)

2.5. MIDDLEWARE GINGA 19

2.5.1

Ginga Common Core

O Ginga-CC (Ginga Common-Core) é a camada do middleware Ginga que oferece o suporte básico tanto para os ambientes procedurais quanto declarativos e é responsável por permitir a utilização de imagens (PNG, JPG e GIF), sons (MP3, WAV e MIDI) e vídeo (MPEG4). Ele também fornece métodos para o controle e obtenção dos fluxos de transmissão (ISDB-TB) e do Canal de Retorno, módulo responsável por controlar o acesso à camada de rede. A figura 2.9 mostra a estrutura desta camada e seus componentes que serão descritos a seguir [Damasceno 2008].

Figura 2.9: Camada Ginga Common Core

* Acesso Condicional: restringe os conteúdos considerados inapropriados garan-tindo segurança ao middleware.

* Canal de Retorno: ele provê a interface das camadas superiores com o canal de interação (ou canal de retorno). Além disso, ele deve gerenciar o canal de retorno de forma que dados sejam transmitidos assim que o canal esteja disponível, ou "forçar"a transmissão caso o usuário ou uma aplicação tenha definido o horário exato [Damasceno 2008].

* Gerenciamento de Contexto: captura o perfil do usuário, alertando os outros com-ponentes. O perfil pode conter informções como os horários em que o usuário assiste a TV, ou bloqueio e desbloqueio de canais, entre outros.

* Interface com o Usuário: gerencia os eventos gerados pelo usuário como coman-dos do controle remoto, e alertar outros módulos interessacoman-dos.

* Exibidor de Mídia: ferramentas para exibir e tratar arquivos de mídias recebidos, como por exemplo, os tipos MPEG, JPEG, TXT, MP3, GIF, HTML, etc.

(32)

para correção de possíveis erros encontrados em versões anteriores. Isto deve ser feito em tempo de execução, sem incomodar o uso normal da TV pelo usuário [Damasceno 2008].

* Gerenciador de Gráfico: os padrões de middleware definem como as imagens,vídeos, dados, etc, são apresentados para os usuário, gerenciando as apresentações da mesma forma que é definida no padrão ARIB [ARIB-B-24 2004]

* Iniciador de Aplicações: carregar, configura, inicializa e executa aplicações dos ambientes declarativos e procedurais, além de controlar o ciclo de vida dessas apli-cações e os recursos utilizados.

* Persistência: dá suporte ao gerenciamento de arquivos, mesmo depois do processo que o criou tenha sido finalizado, para que este possa ser aberto em outra oportuni-dade.

* Processador de Dados: gerencia os dados recebidos pela camada física, além de notificar os componentes sobre qualquer evento que tenha sido recebido.

* Filtro de Seções: uma vez sintonizado, o middleware deve ser capaz de acessar partes específicas do fluxo de transporte. Para isso, o Filtro de Seção pode procurar no fluxo a parte exata que as APIs necessitam para suas execuções, deixando passar apenas as informações requeridas pela API [Damasceno 2008].

* Sintonizador/Tuner: como o próprio nome diz, este módulo "sintoniza"o canal, escolhendo um canal físico e um dos fluxos de transporte que estão sendo enviados neste canal.

* Adaptador do A/V Principal: permite que as aplicações consigam enxergar o fluxo de áudio e vídeo. Permitindo que uma aplicação possa controlar suas ações, de acordo com o que está sendo transmitido.

2.5.2

Ginga-NCL

O Ginga-NCL foi desenvolvido pela PUC-Rio com o objetivo de prover uma infra-estrutura de apresentação para aplicações declarativas escritas na linguagem NCL (Nes-ted Context Language) [15606-2 2007] [ITU-T Recommendation H.761 2009], que é uma modelo XML com facilidades para a especificação de aspectos de interatividade, sincro-nismo espacial e temporal em sua forma mais geral, adaptabilidade de conteúdo e formas de apresentação de conteúdo, suporte a múltiplos dispositivos, dentre outros. Para alguns casos, como por exemplo a geração dinâmica de conteúdo, NCL provê o suporte de sua linguagem de script Lua [NCL.org.br 2009].

2.5.3

Ginga-J

(33)

2.5. MIDDLEWARE GINGA 21

(34)
(35)

Capítulo 3

Trabalhos Relacionados

Guias de Programação Eletrônicos que indicam as grades de programação das emis-soras de TV existem desde a década de 1980 e seu objetivo principal é ajudar o usuário a encontrar programas com mais rapidez. Contudo, hoje em dia, com a grande quantidade de emissoras e programas de TV, se torna difícil descobrir com facilidade um programa de televisão que seja interessante mesmo com o auxílio da grade de programação. Para diminuir a quantidade de informação gerada pelo crescimento no número de programas, muitos projetos utilizaram guias de programação personalizados baseados em predição ou recomendação. Mas considerando que um processo de decisão não é realizado apenas pe-las preferências pessoais mas também pelos relacionamentos [Berscheid & Peplau 1983], estes guias de programação personalizados não são os mais adequados para ajudar os usuários. No contexto da TV Digital Brasileira, é necessário ainda que seja possível ava-liar um programa de televisão utilizando vários dispositivos, devido a limitação de acesso à banda larga no Brasil.

Este capítulo apresenta alguns trabalhos que tentam solucionar os problemas apresen-tados anteriormente. A arquitetura TrendTV surge para solucionar esses mesmos proble-mas e será apresentada no próximo capítulo. Este capítulo também irá exibir as soluções e problemas apresentados pelos trabalhos discutidos.

3.1

PTV

Uma das primeiras tentativas de ferramenta para o direcionamento dos usuários atra-vés de um guia de programação personalizado foi o projeto PTV [Smyth & Cotter 2001]. Um sistema multidispositivo (celulares e PDAs), baseado em perfis de usuário e inteligên-cia artifiinteligên-cial. Mas apesar de ser considerado um guia de programação personalizável, este sistema não permitia o acesso direto através da TV, funcionando apenas em clientes web. A medida que o usuário vai assistindo aos programas e alimentando o módulo Profiler do sistema, ele guarda os programas mais assistidos do usuário e traça um perfil. A partir de uma base de dados contendo programas cadastrados e o perfil do usuário, o módulo

Recommender constrói uma lista com todos os programas recomendados. Finalmente, o

(36)

Figura 3.1: Arquitetura do Projeto PTV

3.2

Mass Personalization

Figura 3.2: Arquitetura do Projeto Mass Personalization

(37)

3.3. TRIBLER 25

sociais no contexto da televisão. Um exemplo dessa tendência é o projeto Mass

Perso-nalization [Fink et al. 2006]. Este é um framework que combina televisão com uma

experiência personalizada baseada na web. Ela unifica quatro aplicações distintas: taxas de popularidade on-line, serviços de bibliotecas de mídias virtuais, comunidades sociais ad-hoc (que é um chat com os usuários que estão assistindo o mesmo programa de TV) e camadas de conteúdo personalizado (que é uma camada extra com informações relacio-nadas a um programa de TV). Como neste trabalho, o Mass Personalization oferece um sistema de classificação de programas de TV, mas são serviços apenas baseados na web. Então o usuário tem que interagir apenas com o computador e não com uma televisão. Este único modelo de interação pode causar problemas com o usuário, pois ele precisa dividir sua atenção entre a televisão e o computador. A figura 3.2 mostra a arquitetura do Projeto Mass Personalization.

3.3

Tribler

Figura 3.3: Arquitetura do Projeto Tribler

(38)

fazem parte da sua rede social. A figura 3.3 mostra a troca de mensagens do sistema

Tribler.

3.4

AmigoTV

Figura 3.4: Modelo de Funcionamento do AmigoTV

A importância na comunicação no contexto da TV também foi abordado pelo projeto

AmigoTV [Coppens et al. 2004]. Este projeto permite comunicação utilizando a própria

voz, através da televisão. Especificamente, os usuários podem falar com seus amigos que estão identificado através do uso de avatares. Este projeto utiliza uma abordagem inovadora pois ele suporta a comunicação em tempo real. Nós preferimos a comunicação textual, pois ela continuará a ser exibida na tela caso o usuário não esteja na frente da TV no momento que a mensagem é enviada. A figura 3.4 mostra o modelo de funcionamento do protótipo de arquitetura AmigoTV.

3.5

CollaboraTVware

O projeto CollaboraTVware [Alves 2008] têm como principal objetivo propor e im-plementar uma infra-estrutura de software no cenário da TV Digital Interativa para orien-tar os usuários na escolha de programas e serviços interativos através da participação co-laborativa de outros usuários com perfis e contextos similares, baseando-se inteiramente no comportamento dos perfis de usuário e utilizando técnicas de inferências para reali-zar as recomendações. Dessa maneira, trata-se de um projeto bastante parecido com os Guias Eletrônicos de Programação Personalizáveis que foram discutidos anteriormente. A figura 3.5 mostra o diagrama de casos de uso do projeto CollaboraTVware.

3.6

EPG-Board

(39)

3.6. EPG-BOARD 27

Figura 3.5: Diagrama de Casos de Uso do CollaboraTVware

e um sistema de etiquetagem (tagging). Eles utilizam o OmegaBox1, um sistema para centros de mídia baseado em Linux. E assim como nesse trabalho, o objetivo deste projeto é influenciar na decisão das pessoas no momento da escolha de um determinado programa de televisão baseado na opinião de outros usuários.

O quadro de mensagens é uma aplicação que permite que o usuário se comunique com outros usuários on-line mas de maneira assíncrona e funciona da mesma maneira que no nosso trabalho.

O sistema de indicação compartilhado envia a opinião de um usuário sobre um de-terminado programa para a sua rede de amigos, onde é possível classificar apenas como bom ou ruim, diferentemente do modelo de classificação por notas proposto neste traba-lho, permitindo uma maior precisão na classificação. Além disso o sistema não leva em consideração a força dos laços de confiança dos usuários, que possuem pesos diferentes quanto à influência que realizam.

No sistema de etiquetagem apresentado pelo projeto EPG-Board, qualquer usuário pode definir os metadados sobre um determinado programa de televisão, como gênero, diretor, entre outros, o que poderia causar problemas de inconsistência nos dados. No nosso trabalho, os metadados sobre um determinado programa são manipulados apenas por usuários credenciados (como as próprias emissoras por exemplo).

(40)

realiza-rem qualificações absurdas, ou simplesmente apagar os meta-dados, e ao invés de facilitar pode acabar dificultando nas buscas por programas baseados nestes meta-dados.

3.7

Miso

O projeto Miso [goMiso.com 2011] é uma rede social virtual que dá uma segunda experiência para quem assiste a televisão. Ela permite aos usuários compartilharem en-tre si o que eles assistiram, através de um sistema de check-in, além de um sistema de pontuação para estimular seu uso, possuindo um comportamento que se assemelha ao

Foursquare [foursquare.com 2011]. Embora seja uma rede social para televisão, ela não

disponibiliza vídeos on-line nem permite assistir o conteúdo, sendo inteiramente voltado para a web. O sistema oferece um sistema de troca de mensagens entre usuários, mas não permite a classificação dos programas on-line, permitindo apenas uma classificação geral e atemporal, pois não existem requisitos temporais para se realizar o check-in. Além disso esta rede social apresenta o conceito de hosts que são usuários especiais, que controlam alguns meta-dados dos programas, criam enquetes sobre o programa, além de realizar outras atividades com mais privilégio que um usuário comum.

3.8

TA2

O principal objetivo do projeto Together Anywhere Anytime (TA2) é tornar a comu-nicação e os relacionamentos mais fáceis entre grupos de pessoas separados no espaço, através de um framework que centraliza todas estas atividades. Diferente das mídias atuais que são voltadas para o indivíduo este mecanismo de comunicação é voltada para grupos de pessoas e é caracterizado pela naturalidade, tornando a experiência imersiva mais in-teressante. Este projeto permite que os grupos possam jogar, tocar e aprender música, contar histórias, além de se comunicar. Este framework inclui tecnologias como: rende-rização de áudio e vídeo em alta definição sem perdas ou atrasos, ambientes de captura e reprodução de vídeos, análise dos dados permitindo caracterizar se o fluxo de vídeo é um monólogo ou um diálogo, modelo de composição multimídia permitindo a inserção de conteúdo XHTML nos vídeos, gerenciamento de serviços para coordenar o uso dos diferentes softwares e dispositivos, e finalmente a orquestração que transforma os dados de baixo nível recebidos pela ferramenta de análise em aspectos mais significativos da interação social.

3.9

Comparação Entre Trabalhos

(41)

3.9. COMPARAÇÃO ENTRE TRABALHOS 29

apresentados aqui. São eles: Suporte a Multi-Dispositivos, Serviço Web, Indicação de Programas On-line, Chat por texto, Chat por voz, Histórico de Conversas, Suporte ao Sistema Brasileiro de TV Digital, Suporte a Set-Top-Boxes, Classificação de Meta-Dados Colaborativamente, Sistema de Notas, Indicação Baseada em Inferências, Indicação Ba-seada em Influência Direta, Comunidades Virtuais, Suporte a outras redes sociais e Graus de Confiança.

O Suporte a Multi-Dispositivos diz respeito aos tipos de dispositivo que o projeto suporta, como Set-Top-Boxes, celulares, PDAS, computadores, entre outros. Como apre-sentado na tabela 3.1 os projetos que suportam multi-dispositivos foram a arquitetura

TrendTV e os projetos PTV, CollaboraTVWare, Miso, TA2.

Os serviços Web são serviços disponibilizados pelos projetos para serem acessados por outras aplicações ou pelo usuário.

Como pode ser visto na tabela 3.1 todos os projetos que tem Chat por texto, também indicam programas on-line, e mantém o histórico das conversas. Isto acontece porque foi assumido que um chat pode funcionar como um mecanismo de indicação de programas.

Os únicos projeto que utilizaram o modelo do SBTVD foram o CollaboraTVware e a arquitetura TrendTV, ambos desenvolvidos no Brasil.

O suporte a Set-Top-Boxes não foi realizado pelos projetos PTV, Mass

Personaliza-tion, Miso, TA2, sendo voltados inteiramente pra Web.

A classificação de Meta-Dados Colaborativamente diz respeito a alterar as informa-ções fundamentais sobre um determinado conteúdo, como o gênero, o horário de exibição, o idioma, a duração, entre outros. Os projetos que fazem essa classificação colaborativa são o EPG-Board e o projeto Miso.

No Sistema de Notas o usuário define uma nota para um determinado programa, que geralmente varia de 1 a 5 ou 1 a 10, permitindo uma maior precisão na classificação de um programa.

Na indicação baseada em inferências, os projetos analisam o perfil de acesso do usuá-rio através de históricos e utilizam mecanismos de inferência como Redes Neurais, Lógica

Fuzzy, Modelos Estatísticos dentre outros.

Pela tabela 3.1 podemos perceber também que todos os projetos que possuem Chat tanto por texto quanto por voz causam influência direta sobre seus usuários.

Embora vários projetos possuam chats e mecanismos de comunicação, apenas 5 proje-tos apresentaram uma comunidade virtual. A propriedade Comunidade Virtual refere-se à possibilidade de se construir uma rede de amigos duradoura, assim como as comuni-dades virtuais Facebook e Orkut, permitindo que esses laços se tornem mais fortes e influenciem cada vez mais nas decisões de seus usuários.

Apenas o projeto Miso possui suporte e integração a outras redes sociais, permitindo que o usuário possa compartilhar suas informações com o Twitter e o Facebook por exemplo.

(42)

Propriedades PTV Mass Pers. Tri-bler Ami-goTV Colla- bora-TV

EPG-Board Miso TA2 TrendTV

Multi-Dispositivo

sim não não não sim não sim sim sim

Serviço Web sim sim não sim sim não sim sim sim Indicação

On-Line

sim sim não sim não sim sim não sim

Chat por texto

não sim não sim não sim sim não sim

Chat por voz não não não sim não não não sim não Histórico de

Conversas

não sim não não não sim sim sim sim

SBTVD não não não não sim não não não sim

Set-Top-Boxes

não não sim sim sim sim não não sim

Meta-Dados Colaborativo

não não não não não sim sim não não

Sistema de Notas

não não não não sim não sim não sim

Inferências sim sim sim não sim não não não sim Influência

Direta

não sim não sim não sim sim sim sim

Comunidades Virtuais

não sim não sim não sim sim não sim

Suporta ou-tras redes sociais

não não não não não não sim não não

Graus de Confiança

não não não não não não não não sim

(43)

Capítulo 4

Arquitetura TrendTV

Neste capítulo iremos formalizar a nossa proposta de arquitetura: O TrendTV. Essa arquitetura surgiu como uma tentativa de agilizar a busca por conteúdo interessante na TV, de maneira fácil e intuitiva, permitindo inclusive a mudança automática do canal para um mais interessante que esteja disponível no momento, sem interferência humana, permitindo que o usuário se concentre mais na interatividade com a TV. A arquitetura de um modo geral será discutida a seguir.

4.1

Solução Proposta

Figura 4.1: Arquitetura Geral - TrendTV

(44)

a Arquitetura TrendTV. O cenário ideal pode ser alcançado com aplicações baseadas nessa arquitetura que alterem os canais automaticamente baseados nas influências que uns usuários realizam sobre os outros. Para facilitar a explicação dessa arquitetura iremos dividi-la em módulos e cada módulo será explicado separadamente. A figura 6.1 mostra a arquitetura do projeto TrendTV.

4.1.1

Trend4Web

O módulo Trend4Web é o módulo mais complexo dessa arquitetura e foi inteiramente desenvolvido usando o padrão arquitetural MVC voltado para web. Este módulo é res-ponsável por acomodar todas as estruturas lógicas de um guia eletrônico de programação personalizável. Este módulo define as regras de negócio e representações detalhadas das informações que serão usadas por todos os módulos, sendo o único módulo que possui o componente Model e portanto acesso direto a base de dados. Assim o componente

Con-troller desse módulo, precisa formatar as informações contidas no componente Model

para um formato universal que seja entendido por todos os outros módulos. Neste traba-lho o formato escolhido para a comunicação entre os módulos e dispositivos foi o JSON (JavaScript Object Notation) por se tratar de um formato leve para intercâmbio de dados computacionais, permitindo assim que web-services troquem informações com outros ser-viços. O funcionamento dos web-services construídos neste trabalho serão explicados na próxima seção.

4.1.2

Trend4Mobile

O módulo Trend4Mobile visa as plataformas móveis e permite que o usuário des-cubra quais os programas mais indicados do momento baseado em informações obtidas através de web-services, que foram definidos no módulo para web Trend4Web. Este mó-dulo também possui outros serviços que serão descritos na próxima seção. Para permitir a comunicação com o módulo Trend4Web, a API JSON deve ser utilizada. Este módulo também possui comunicação com o Set-Top-Box permitindo assim a mudança automática de canais.

4.1.3

Trend4TV

O módulo Trend4TV é um módulo para Set-Top-Boxes que é responsável por mostrar numa grade os canais mais indicados em um determinado momento, baseado nas escolhas dos usuários, além de outros serviços que serão descritos a seguir. As informações sobre as qualificações dos programas no momento podem ser realizadas de duas maneiras dis-tintas. Se o Set-Top-Boxes possui canal de retorno, a informação é recebida on-line através de web-services e possui as qualificações de seus amigos. Caso contrário a informação é recuperada através do ar utilizando o carrossel de dados (que consiste basicamente em um modelo de transmissão de dados que é envia as informações repetidamente em ciclos contínuos). Para tratar e utilizar as informações recebidas, a API JSON para a linguagem

(45)

4.1. SOLUÇÃO PROPOSTA 33

Este módulo também possui um componente que atua como um serviço responsável pela mudança automática de canais dentro do Set-Top-Boxes. Criamos este componente como um módulo para a camada Ginga Specific Service (a mesma camada que contém o módulo Ginga-NCL e Ginga-J), que por sua vez foi construído tendo como base as funcionalidades providas pelo Ginga Common Core cuja arquitetura foi explicada na seção 2.5.

4.1.4

Protocolo de Comunicação para a Mudança Automática de

Ca-nais

Além do protocolo de comunicação padrão da arquitetura, que utiliza o modelo JSON apresentado na seção anterior, esta arquitetura contém um protocolo de comunicação pró-prio baseado em sockets UNIX para realizar a mudança de canais. Este protocolo foi escolhido em detrimento ao JSON pois o serviço residente para a mudança de canais precisa ser o mais simples e leve possível para não comprometer o processamento e a performance do Set-Top-Box.

A figura 4.2 apresenta o fluxo de comunicação do protocolo de mudança automática de canais.

Figura 4.2: Fluxo de Comunicação para a Mudança Automática de Canais

A aplicação se conecta ao serviço e recebe a mensagem TRENDTV_MSG_ACCEPT, contendo informações sobre os canais disponíveis que já estão pré-sintonizados naquele

Set-Top-Box. Em seguida, a aplicação escolhe o canal e a seção e envia uma mensagem

TRENDTV_MSG_CHANGE_CHANNEL solicitando a mudança de canal ao serviço,

Imagem

Figura 1.1: Primeira página Web
Figura 2.2: Arquitetura Multi-Camadas
Figura 2.3: Modelos de Comunicação em Grupos
Figura 2.5: Exemplo de Comunidade em Redes Sociais Virtuais
+7

Referências

Outline

Documentos relacionados

São considerados custos e despesas ambientais, o valor dos insumos, mão- de-obra, amortização de equipamentos e instalações necessários ao processo de preservação, proteção

Ademais, a orientação jurisprudencial desta Corte está consolidada no sentido de que nos embargos de terceiros o valor da causa deve efetivamente ser atribuído em relação

In this work, improved curves are the head versus flow curves predicted based on the correlations presented in Table 2 and improved by a shut-off head prediction

 Na duração da prova, está incluído o tempo destinado à entrega do material de prova, o preenchimento do Cartão Resposta e a Folha Definitiva da Questão Discursiva;  Você

Este trabalho é resultado de uma pesquisa quantitativa sobre a audiência realizada em 1999 envolvendo professores e alunos do Núcleo de Pesquisa de Comunicação da Universidade

Modelo / Dimensão nominal / Faixa de medição / Conexão ao processo (tipo de conexão de processo, espessura do tubo, diâmetro)

No código abaixo, foi atribuída a string “power” à variável do tipo string my_probe, que será usada como sonda para busca na string atribuída à variável my_string.. O