347o vod usando drm final.docx)ee02236/pstfc/documents/... · 2007-07-02 · resumo o presente...

121
Serviço de V DRM (D Pedro C V Orien Orienta Faculdad Departamento d Rua Rob VoD (Video on Demand Digital Rights Managem César de Bessa Magalhães Oliveir Vitor Hugo dos Santos Barbosa ntador FEUP Artur Pimenta Alve ador INESC Maria Teresa Andra de de Engenharia da Universidade do Po de Engenharia Electrotécnica e de Com berto Frias, s/n, 4200-465 Porto, Portug Julho de 2007 d) usando ment) ra es ade orto mputadores gal

Upload: others

Post on 11-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Serviço de VoD (Video on Demand) usando

DRM (Digital Rights Management)

Pedro César

Vitor Hugo dos Santos Barbosa

Orientador FEUP

Orientador INESC

Faculdade de Engenharia da Uni

Departamento de Engenharia Electrotécnica e de Computadores

Rua Roberto Frias, s/n, 4200

Serviço de VoD (Video on Demand) usando

DRM (Digital Rights Management)

Pedro César de Bessa Magalhães Oliveira

Vitor Hugo dos Santos Barbosa

Orientador FEUP – Artur Pimenta Alves

Orientador INESC – Maria Teresa Andrade

Faculdade de Engenharia da Universidade do Porto

Departamento de Engenharia Electrotécnica e de Computadores

Rua Roberto Frias, s/n, 4200-465 Porto, Portugal

Julho de 2007

Serviço de VoD (Video on Demand) usando

DRM (Digital Rights Management)

Magalhães Oliveira

Artur Pimenta Alves

Maria Teresa Andrade

versidade do Porto

Departamento de Engenharia Electrotécnica e de Computadores

465 Porto, Portugal

Page 2: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito
Page 3: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Serviço VoD (Video on Demand) usando

DRM (Digital Rights Management)

Pedro César de Bessa Magalhães Oliveira

Vitor Hugo dos Santos Barbosa

Trabalho realizado no âmbito da disciplina de Projecto, Seminário

ou Trabalho de Fim de Curso, do 2º semestre, do 5º ano, da

Licenciatura em Eng. Electrotécnica e de Computadores, Ramo

Sistemas Telecomunicações, Electrónica e Computadores da

Faculdade de Engenharia da Universidade do Porto.

Faculdade de Engenharia da Universidade do Porto

Departamento de Engenharia Electrotécnica e de Computadores

Rua Roberto Frias, s/n, 4200-465 Porto, Portugal

Julho de 2007

Page 4: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito
Page 5: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Resumo

O presente documento descreve um serviço de Video On Demand usando DRM desenvol-

vido no âmbito da disciplina de PSTFC e realizado nas instalações da Unidade de Teleco-

municações e Multimédia do INESC Porto.

O objectivo final deste serviço visa proporcionar ao cliente a possibilidade de visualizar

um filme desde que possua licença para isso. Deste modo, é condição necessária para o

acesso ao serviço a utilização de um computador com ligação à Web, um reprodutor mul-

timédia com codec MPEG-4 (por exemplo, QuickTime) e por fim um Web Browser. Exis-

te também uma solução de acesso alternativa, cuja opção não dispensa os requisitos ante-

riormente definidos, que se resume a uma aplicação cliente que permite, não só as mesmas

funcionalidades definidas pela solução do Web Browser, mas também a possibilidade de

ver um filme armazenado localmente, não descuidando as verificações necessárias e que

são o objecto central deste projecto.

A arquitectura do serviço é do tipo cliente – servidor, sendo que do lado do servidor, este é

constituído por um repositório de bitstreams de vídeo MPEG-4, uma aplicação de strea-

ming de vídeo (Darwin Streaming Server), uma outra para disponibilizar páginas Web

dinâmicas on-line (Apache2 e PHP5) e por fim uma base de dados (PostgreSQL) que

armazena a informação dos clientes, das suas preferências e licenças bem como toda a

informação relacionada com cada filme. No servidor estão também instalados mecanismos

de gestão pelo que é possível administrar remotamente a base de dados e a aplicação do

Darwin Streaming Server, sendo que a administração desta ultima permite monitorizar o

estado das ligações estabelecidas e tomar medidas de controlo como, baixar o débito do

fluxo de vídeo ou, em caso extremo, terminar a ligação.

O cliente para aceder à totalidade dos serviços necessita ter uma conta pessoal, registando-

se na aplicação e apenas poderá visualizar algum dos filmes se possuir licença, a qual

poderá ser gerada pela nossa aplicação, via acesso Browser ou Aplicação Cliente. A visu-

lização via Browser far-se-á em tempo real directamente da Web, no entanto também é

possível fazer o download do filme, armazena-lo localmente e através da nossa aplicação

visualiza-lo desde que tenha uma licença que satisfaça o requisito do filme escolhido.

Palavras-chave: projecto Video on Demand, DRM, MPEG-4, conteúdo digital, licença.

Page 6: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito
Page 7: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

LISTA DE TABELAS VII

Abstract

This document provides details on a Video on Demand system protected by DRM, devel-

oped in the scope of our final project and created on the Unidade de Telecomunicações e

Multimédia installations of INESC Porto.

This service aims to provide the possibility of playing an audiovisual content since there is

a consumption license for the required media. As a web-based service it is necessary an

internet connection, a web browser and a multimedia player (for example Quicktime) in-

stalled with MPEG-4 codec. As an alternative access solution there is a client application,

where the previous requirements must be fulfilled, that allows the user to play an audiovi-

sual content locally stored in addiction to the online functionalities. As being central for

this project, the license terms and conditions must be met before the playing authorization.

The implemented service has a client-server’s type architecture. The server is established

with a set of MPEG-4 files, a streaming server application (Darwin Streaming Server), a

dynamic web page server application (Apache 2 and PHP 5) and a database solution

(PostgreSQL). This database stores client’s information, preferences and licenses as well

as all the information related to each movie. There are also some tools, included in the

server, capable of providing the database’s and streaming server’s remote management,

enabling examination of the media connection status and taking control measures, like

reducing the bit rate or, in extreme cases, terminating connection.

The user must have a personal account to take advantage of the whole number of services,

which can be done by registering on the web application, and must hold a license that,

generated by the application, allows playing an audiovisual content.

Keywords: Video on Demand project, DRM, MPEG-4, digital content representation, li-

cense.

Page 8: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito
Page 9: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

LISTA DE TABELAS IX

Agradecimentos

Gostaríamos de agradecer ao INESC Porto – Instituto de Engenharia de Sistemas e Com-

putação do Porto – todo o equipamento e local de trabalho disponibilizados, tal como a

ajuda, disponibilidade e empatia de todos os colaboradores da UTM – Unidade de Tele-

comunicações e Multimédia, em particular o Engenheiro Filipe Sousa. Agradecemos ainda

a importante orientação da Engenheira Maria Teresa Andrade e do Professor Pimenta

Alves para a realização deste projecto.

Page 10: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito
Page 11: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

LISTA DE TABELAS XI

Índice

1 Introdução 1

1.1 Enquadramento ................................................................................................................... 1

1.2 Motivação ............................................................................................................................ 1

1.3 Objectivos ........................................................................................................................... 2

1.4 Estrutura do Relatório ......................................................................................................... 4

2 Contexto e Tecnologias de suporte 5

2.1 O Conceito de licenças ........................................................................................................ 5

2.1.1 Digital Rights Management (DRM) ............................................................................. 5

2.1.2 MPEG-21 REL ............................................................................................................. 6

2.1.3 VISNET II .................................................................................................................... 7

2.1.4 TIRAMISU ................................................................................................................. 11

2.1.5 Digital Media Project .................................................................................................. 14

2.1.6 Creative Commons ..................................................................................................... 16

2.2 Tecnologias e Protocolos .................................................................................................. 17

2.2.1 RTP (Real-Time Protocol) .......................................................................................... 18

2.2.2 RTCP (Real-Time Control Protocol) .......................................................................... 18

2.2.3 RTSP (Real Time Streaming Protocol) ...................................................................... 18

2.3 MPEG-4 ............................................................................................................................ 19

2.4 Darwin Streaming Server .................................................................................................. 20

3 Arquitectura do sistema 23

3.1 Identificação dos requisitos e arquitectura ........................................................................ 23

3.2 Configuração do Sistema Base .......................................................................................... 25

3.2.1 O Sistema Operativo ................................................................................................... 25

3.2.2 O Servidor Apache HTTP .......................................................................................... 26

3.2.3 O PHP ......................................................................................................................... 27

3.2.4 Base de Dados PostgreSQL ........................................................................................ 27

3.2.5 O phpPgAdmin ........................................................................................................... 28

3.2.6 Secure Shell ................................................................................................................ 28

3.2.7 O servidor Tomcat ...................................................................................................... 29

3.2.8 O Axis ......................................................................................................................... 30

3.2.9 O LPD ......................................................................................................................... 30

3.2.10 O Darwin Streaming Server ....................................................................................... 31

Page 12: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

4 Sistema baseado em Aplicação Web 33

4.1 O Servidor ......................................................................................................................... 33

4.1.1 As tecnologias utilizadas ............................................................................................ 34

4.1.1.1 HTML .................................................................................................................. 34

4.1.1.2 Smarty .................................................................................................................. 34

4.1.1.3 Pear ....................................................................................................................... 35

4.1.2 Os tipos de utilizador .................................................................................................. 35

4.1.3 O mapa da aplicação Web .......................................................................................... 35

4.1.4 A Criação das Licenças ............................................................................................... 41

4.1.5 A Base de Dados ......................................................................................................... 45

4.1.5.1 Descritores TV-Anytime ...................................................................................... 45

4.1.5.2 Outros descritores usados ..................................................................................... 48

4.2 O Cliente ........................................................................................................................... 49

4.2.1 O Browser ................................................................................................................... 50

4.2.2 O Reprodutor MPEG-4 ............................................................................................... 50

4.3 A conexão ao servidor de streaming ................................................................................. 50

4.4 Caso de utilização .............................................................................................................. 52

5 Sistema baseado na Aplicação Cliente residente 55

5.1 O Servidor ......................................................................................................................... 56

5.2 O Cliente ........................................................................................................................... 56

5.2.1 As características da aplicação.................................................................................... 57

5.2.2 Reprodução dos conteúdos digitais ............................................................................. 58

5.3 Caso de utilização .............................................................................................................. 58

5.4 Cliente fiável ..................................................................................................................... 61

6 Conclusões 63

7 Perspectivas de Desenvolvimento 65

Apêndice A – Base de dados 71

A.1 Tabelas .............................................................................................................................. 71

A.2 Relações entre as tabelas ................................................................................................... 73

Apêndice B – Aplicação Web 75

B.1 Apresentação da aplicação ................................................................................................ 75

B.2 Manual da aplicação web .................................................................................................. 76

Apêndice C – Aplicação Cliente 83

Page 13: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

LISTA DE TABELAS XIII

C.1 Modo Online ..................................................................................................................... 83

C.2 Modo Local ....................................................................................................................... 85

C.3 Código em Visual Basic da aplicação cliente ................................................................... 88

Page 14: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito
Page 15: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

LISTA DE TABELAS XV

Lista de Figuras

FIGURA 1 – O MODELO DE DADOS DA LICENÇA MPEG REL ............................................................ 7

FIGURA 2 – ARQUITECTURA DMAG-MIPAMS ................................................................................ 8

FIGURA 3 – CASO DE UTILIZAÇÃO DA REPRODUÇÃO DE UM CONTEÚDO PROTEGIDO ..................... 10

FIGURA 4 – ARQUITECTURA DO PROJECTO TIRAMISU ................................................................. 12

FIGURA 5 – SISTEMA DE GESTÃO DE CHAVES DO PROJECTO TIRAMISU ....................................... 13

FIGURA 6 – CONCEITO DE UM DOMÍNIO DE UTILIZADOR (HOME DOMAIN) .................................... 13

FIGURA 7 – DIAGRAMA REPRESENTATIVO DA ESTRUTURA DO CHILLOUT ..................................... 16

FIGURA 8 – PILHA PROTOCOLAR TÍPICA EM SISTEMAS DE TRANSMISSÃO DE VÍDEO SOBRE IP. ...... 18

FIGURA 9 – ARQUITECTURA DO SISTEMA DE VIDEO ON DEMAND A DESENVOLVER ...................... 24

FIGURA 10 – SERVIDOR HTTP ........................................................................................................ 26

FIGURA 11 – APARÊNCIA GRÁFICA DO PHPPGADMIN ..................................................................... 28

FIGURA 12 – A ARQUITECTURA DO SERVIDOR ................................................................................ 33

FIGURA 13 – MENU FILMES PRESENTE NA APLICAÇÃO WEB .......................................................... 36

FIGURA 14 – MENU ACTORES PRESENTE NA APLICAÇÃO WEB ....................................................... 37

FIGURA 15 – MENU REALIZADORES PRESENTE NA APLICAÇÃO WEB ............................................. 37

FIGURA 16 – MENU DISTRIBUIDORES PRESENTE NA APLICAÇÃO WEB ........................................... 37

FIGURA 17 – MENU LICENÇAS PRESENTE NA APLICAÇÃO WEB ...................................................... 38

FIGURA 18 – MENU REFERENTE À ÁREA PESSOAL DO UTILIZADOR NA APLICAÇÃO WEB .............. 38

FIGURA 19 – ESTRUTURA DA NAVEGABILIDADE DA INTERFACE WEB ........................................... 40

FIGURA 20 - A INTERFACE DO LPD ................................................................................................. 41

FIGURA 21 - DIREITO PARA REPRODUZIR ....................................................................................... 41

FIGURA 22 - EXEMPLO DE UMA COMBINAÇÃO DEFINIDA PELO UTILIZADOR .................................. 42

FIGURA 23 – INTERFACE PARA A CRIAÇÃO DE LICENÇAS ............................................................... 42

FIGURA 24 – A ARQUITECTURA NO LADO CLIENTE ........................................................................ 50

FIGURA 25 – TROCA DE MENSAGENS ENTRE O CLIENTE E A APLICAÇÃO WEB ............................... 52

FIGURA 26 – A ARQUITECTURA DO SISTEMA BASEADO NA APLICAÇÃO CLIENTE RESIDENTE ........ 55

FIGURA 27 - TAB ONLINE E LOCAL ................................................................................................. 57

FIGURA 28 – O MENU VER............................................................................................................... 57

FIGURA 29 - EDITAR DADOS DE LOGIN NO MENU EDITAR .............................................................. 58

FIGURA 30 - A ACESSIBILIDADE DA INTERFACE .............................................................................. 58

FIGURA 31 – TROCA DE MENSAGENS ENTRE A APLICAÇÃO CLIENTE E O SERVIDOR ....................... 59

Page 16: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito
Page 17: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

LISTA DE TABELAS XVII

Lista de Tabelas

TABELA 1 - DESCRIÇÃO DOS COMANDOS/MENSAGENS USADOS NO PROTOCOLO RTSP ................. 19

TABELA 2 - DESCRITORES BÁSICOS DO TV-ANYTIME .................................................................... 46

TABELA 3 – DESCRITORES DE ATRIBUTOS TÉCNICOS ..................................................................... 47

Page 18: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito
Page 19: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

GLOSSÁRIO XIX

Glossário

AAC – Advanced Audio Coding (AAC), é um formato de áudio, que recorre a compressão

com perda de dados. Foi projectado como um codec de desempenho melhor em relação ao

MP3, sendo promovido como seu sucessor para codificação de áudio em taxas de bits

médias a altas.

Aspect Ratio – Formato de imagem definido como a divisão entre a maior dimensão (hori-

zontal) e a menor dimensão (vertical) de uma imagem sendo expresso na forma “h:v”.

Toma normalmente os valores 4:3 ou 16:9.

AVC – Advanced Video Coding (AVC), é uma norma de compressão de vídeo desenvol-

vida conjuntamente entre o ITU-T e ISO/IEC Moving Pictures Experts Group (MPEG)

providenciando uma melhoria na compressão mantendo uma boa qualidade de imagem. É

usado como o motor de compressão para MPEG-4.

Base de dados – Conjuntos de dados com uma estrutura regular que organizam informação

utilizadas normalmente para um mesmo fim.

Browser – É uma aplicação de software que possibilita aos seus utilizadores verem e inte-

ragirem com páginas de hipertexto, tipicamente páginas web localizadas no World Wide

Web (WWW) ou numa rede local.

Certificado – Certificado digital é um documento digital que descreve as permissões que

um utilizador possui para aceder ou usar um serviço ou recurso.

Código fonte aberto – em inglês Open Source. É um tipo de software cujo código fonte é

visível publicamente e pode ser alterado de acordo com os objectivos do utilizador.

Copyright – É um conjunto de direitos exclusivos regulando o uso de uma expressão, ideia

ou informação particular. Em termos digitais é o nome dado ao direito que o autor tem de

controlar o uso que se faz das suas obras sendo garantido ao autor os direitos morais e

patrimoniais sobre a obra que criou.

Creative Commons – Creative Commons (também conhecido pela sigla CC) pode deno-

minar tanto um conjunto de licenças normalizadas para gestão aberta, livre e compartilha-

da de conteúdos e informação, como a organização homónima sem fins lucrativos norte-

americana que os redigiu e mantém a actualização e discussão a respeito das mesmas.

DCF – DMP Content Format (DCF), é o formato de ficheiro utilizado pelo projecto DMP

para a distribuição de conteúdos digitais associados à metadata e à licença para esse con-

teúdo.

Descrambling – Descodificar uma mensagem ou sequência de dados digitais, que de outra

forma seria imperceptível.

Page 20: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

DMP – Digital Media Project (DMP), organização formada com o objectivo de promover

o desenvolvimento e distribuição de conteúdos audiovisuais respeitando os direitos dos

criadores de forma a explorar os seus trabalhos fornecendo todas as funcionalidades requi-

sitadas pelos utilizadores finais.

DNS – Domain Name System (DNS), é um sistema de gestão de nomes hierárquico e dis-

tribuído capaz de traduzir o nome de um computador no seu endereço IP. Permite ainda a

localização de uma máquina num determinado domínio.

Download – É a transferência de dados de um computador remoto para um computador

local.

DRM – Digital Rights Management (DRM), tecnologia utilizada pelos criadores e distri-

buidores de conteúdos digitais para controlar o acesso ou uso desse mesmo conteúdo

impondo algumas restrições.

Encriptação – É a transformação da informação na sua forma original para outra forma

ininteligível, a menos que seja conhecida a sua chave de desencriptação, o que torna difícil

de ser lida por alguém que não possua essa chave. Garante-se assim, que só o receptor da

mensagem e que possui a chave pode ler a informação.

Firewall – Considerado um dispositivo de uma rede de computadores que tem por função

regular o tráfego entre redes distintas e impedir a transmissão e/ou recepção de dados

nocivos ou não autorizados.

Framework – No caso de software, uma Framework é uma estrutura de suporte, em que

um outro projecto de software pode ser organizado e desenvolvido. Pode incluir progra-

mas de suporte, bibliotecas de código, linguagens de script e outros softwares para ajudar

a desenvolver e juntar diferentes componentes de um projecto.

Home Domain – Domínio de utilizador que agrupa todos os dispositivos do mesmo utili-

zador com iguais direitos e restrições.

HTML – Hypertext Markup Language (HTML), uma linguagem de marcação utilizada

para produzir páginas na Web que podem ser interpretados por web browsers (navegado-

res web).

HTTP – Hypertext Transfer Protocol (HTTP), um protocolo da camada de Aplicação do

modelo OSI utilizado para transferência de dados na rede mundial de computadores, a

World Wide Web. Transfere também dados de hipermédia (imagens, sons e textos).

Interoperabilidade – É a capacidade de um sistema comunicar de forma transparente com

outro sistema (semelhante ou não). Para um sistema ser considerado interoperável, é muito

importante que ele trabalhe com normas abertas.

Java – Java é uma linguagem de programação orientada aos objectos. Ao contrário das

linguagens convencionais que são compiladas para código máquina, a linguagem Java é

compilada para um "bytecode" que é executado por uma máquina virtual.

Page 21: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

GLOSSÁRIO XXI

Metadata – Por vezes traduzido como metadados, são dados capazes de descrever outros

dados. De acordo com a definição do W3C, metadados são informações localizadas na

web, inteligíveis por um computador, utilizados para descrever um dado primário.

MPEG 21 – Norma desenvolvida pelo grupo Moving Pictures Experts Group (MPEG)

com o objectivo de definir uma Framework aberta para aplicações multimédia e promover

a transacção dos conteúdos multimédia. É baseado em dois conceitos essenciais: a defini-

ção de uma unidade fundamental de distribuição e transacção, o item digital, e o conceito

de utilizadores que interagem com esses itens. Define um padrão Rights Language

Expression (REL) como um meio de partilhar as permissões, restrições e direitos digitais

de um conteúdo digital desde o autor do conteúdo até ao seu consumidor.

MPEG 4 – MPEG-4 é uma norma utilizado inicialmente para compressão de dados digi-

tais de áudio e vídeo (AV). Este padrão introduziu novas funcionalidades como a codifica-

ção orientada aos objectos, interactividade com os conteúdos e acesso universal. Permitiu

uma maior eficiência na compressão relativamente às normas anteriormente disponíveis.

Multimédia – É o campo que se ocupa com a integração controlada por computador de

texto, gráficos, imagens, vídeos, animação, sons e quaisquer outros meios em que todo o

tipo de informação possa ser representada, armazenada, transmitida e processada digital-

mente devendo permitir a interactividade com o utilizador.

Near Video on Demand – É uma técnica de vídeo pay-per-view usada por redes de televi-

são multi-canais usando banda larga com os dados e imagens enviados por satélite ou

cabo. Várias cópias de um programa são enviadas distanciadas entre curtos intervalos de

tempos, dispensando a obrigação de o utilizador se sintonizar numa determinada hora.

Offline – Fora de linha, significa que não tem conectividade com a rede estando indispo-

nível para aceder a conteúdos fora do seu âmbito local.

Online – Significa estar ligado/conectado a uma rede, normalmente a World Wide Web,

estando disponível para aceder a recursos que não estejam armazenados localmente.

Overhead – Overhead é geralmente considerado qualquer processamento ou armazena-

mento em excesso, seja de tempo de computação, de memória, de largura de banda ou

qualquer outro recurso que seja requerido para ser utilizado ou gasto para executar uma

determinada tarefa.

Página dinâmica – O conteúdo (texto, imagens, formulários, etc.) numa página dinâmica

pode-se alterar em resposta a diferentes contextos ou condições permitindo uma experiên-

cia interactiva. Para criar essa interactividade podem ser utilizados scripts do lado do ser-

vidor, que modificam a informação obtida numa página web, ou scripts do lado do cliente

permitindo modificar a comportamento de uma interface. Linguagens como PHP, JSP,

ASP.Net produzem interfaces dinâmicas criadas do lado do servidor.

Parental Rating – Informação criada com o objectivo de dar uma ideia sobre os conteúdos

disponibilizados, indicando se são apropriados para uma criança/adulto.

Page 22: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Perl – Perl é uma linguagem de programação estável e multiplataforma. Foi largamente

adoptada pelas suas potencialidades em processamento de strings (variáveis de texto) e por

ser resistente a falhas arbitrárias, destacando-se o seu uso no desenvolvimento de aplica-

ções web de todos os tipos.

PHP – Hypertext Pre-Processor (PHP), é uma linguagem de programação de computado-

res interpretada, livre e muito utilizada para gerar conteúdo dinâmico na Web, orientada

aos objectos.

Protocolo – Protocolo é um padrão que especifica o formato de dados e as regras a serem

seguidas especificando como um programa deve preparar os dados para serem enviados

para o estado seguinte do processo de comunicação.

QoS – Qualidade de Serviço (Quality of Service – QoS) é o resultado da introdução de

mecanismos que pretendem oferecer ao utilizador requisitos como reserva de largura de

banda, redução do tempo de atraso e da sua variação, diminuição da probabilidade de erro

e o aumento da disponibilidade do serviço para valores próximos da total permanência.

Scrambling – Scrambling significa codificar uma mensagem ou sequência de dados digi-

tais, utilizando para isso um baralhador. Para descodificar essa sequência é necessária

saber qual a ordem com que os dados foram baralhados.

Servidor – Um servidor é uma máquina que oferece serviços a uma rede de computadores.

A rede é assim do tipo cliente-servidor.

Smartcard – Smartcard é um cartão que geralmente se assemelha em forma e tamanho a

um cartão de crédito convencional de plástico mas produzido com circuitos integrados

embebidos no próprio cartão sendo capaz de armazenar e processar informação.

Software – Um software consiste num programa desenhado de forma a permitir a um

computador desempenhar tarefas específicas.

Streaming – Streaming é a tecnologia que permite o envio de informação multimédia atra-

vés de pacotes, utilizando uma rede de computadores. A informação é normalmente rece-

bida e apresentada ao utilizador ao mesmo tempo que está a ser entregue pelo fornecedor.

Unix – Unix é um sistema operativo, multitarefa e multiutilizador originalmente criado

por Ken Thompson, que trabalhava nos Laboratórios Bell (Bell Labs) da AT&T. O siste-

ma Unix é constituído por vários componentes como o Kernel, o ambiente de desenvolvi-

mento, bibliotecas, documentos e comandos. O grande sucesso deste tipo de sistema ope-

rativo levou ao aparecimento de distribuições gratuitas baseadas em Unix, entre elas o

Linux.

URI – Uniform Resource Identifier (URI), é uma sequência de caracteres usada para iden-

tificar um nome (URN) ou um recurso (URL). O objectivo principal deste tipo de identifi-

cação é permitir a interacção com os recursos através de uma rede, tipicamente a World

Page 23: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

GLOSSÁRIO XXIII

Wide Web, usando protocolos específicos. Os URIs são definidos seguindo um esquema,

definindo uma sintaxe específica e os protocolos associados.

URL – Uniform Resource Locator (URL) é um endereço de um recurso disponível numa

rede, seja a internet ou uma rede empresarial, a intranet. O URL tem a seguinte estrutura:

protocolo://máquina/caminho/recurso

Video on Demand (VoD) – Em português vídeo a pedido, é uma aplicação em que o utili-

zador pode seleccionar e requisitar o acesso a um conteúdo específico através de uma rede

como parte de sistema interactivo de televisão. O acesso pode ser através do streaming em

tempo real do conteúdo ou através da realização do download e posterior visualização.

Qualquer que seja o método, o vídeo a pedido oferece total controlo ao utilizador sendo

que este pode executar qualquer comando como stop, pause, play, fast forward, rewind,

etc.

VoIP – Voice over IP (VoIP), é o encaminhamento de conversas de voz através da internet

ou de outra rede baseada em IP, tornando a transmissão de voz mais um dos serviços

suportados pela rede de dados.

WWW – A World Wide Web (que significa "rede de alcance mundial", em inglês; tam-

bém conhecida como Web e WWW) é um sistema de documentos hipermédia interligados

usando a Internet. Para visualizar a informação, pode-se usar um programa de computador

chamado navegador (web browser) para descarregar informações de servidores web e

mostrá-los no monitor do utilizador.

XML – Extensible Markup Language (XML), é uma recomendação da W3C para gerar

linguagens de marcação para necessidades especiais. É classificado com uma linguagem

extensível porque permite aos utilizadores definir as suas próprias marcas. O seu principal

objectivo é facilitar a partilha de informação através de diferentes sistemas de informação,

particularmente a internet.

Page 24: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito
Page 25: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Capítulo 1

1 Introdução

1.1 Enquadramento

O trabalho descrito neste relatório insere-se no âmbito da disciplina de Projecto, Seminá-

rio ou Trabalho de Fim de Curso (PSTFC) da Licenciatura em Engenharia Electrotécnica e

de Computadores (LEEC), Ramo Sistemas Telecomunicações, Electrónica e Computado-

res (TEC). O projecto decorreu nas instalações do INESC1 Porto sob proposta da investi-

gadora INESC Maria Teresa Andrade e sob supervisão do professor Artur Pimenta Alves

da Faculdade de Engenharia da Universidade do Porto (FEUP).

1.2 Motivação

A Internet tornou-se na infra-estrutura de telecomunicações por excelência. O aparecimen-

to e desenvolvimento da banda larga, com os avanços tecnológicos quanto à capacidade de

processamento e armazenamento de dados possibilitaram a emergência de tecnologias que

permitem a interacção entre diversos utilizadores em tempo real a grande distância e a um

baixo custo.

Num horizonte futuro mas não muito distante, as velocidades de banda larga atingirão

valores consideráveis permitindo soluções avançadas de comunicações, informação e

entretenimento onde se destacam aplicações multimédia como a televisão de alta defini-

ção, Video on Demand (VoD) e videoconferência.

O desafio que se revela importante nesta altura é a antecipação das necessidades dos con-

sumidores, melhorando a resposta aos seus interesses, através de mais e melhores serviços

e funcionalidades disponibilizadas. Para consolidar esta posição torna-se necessário posi-

cionar o cliente como o objecto central de negócio sendo que este poderá aceder ao servi-

ço que quiser (voz, dados, vídeo), quando quiser (24h/dia) e onde quiser (em qualquer

ponto do globo).

1 Instituto de Engenharia de Sistemas e Computadores

Page 26: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

2 CAPÍTULO 1: INTRODUÇÃO

As empresas que disponibilizam serviços através da internet precisam assim de ser inova-

doras, de apresentar e apostar em soluções capazes de trocar informação de forma organi-

zada e estruturada, dinâmica, de baixo custo e fiável, oferecendo soluções personalizáveis

e atractivas para o consumidor não descurando a eficácia, eficiência e agradabilidade em

termos de usabilidade do sistema criado.

Nos últimos anos, após o crescimento da banda larga e do aparecimento de formatos nor-

malizados como o MPEG-4 possibilitando maiores taxas de compressão e interactividade

com o utilizador, tem-se vindo a acentuar a procura e distribuição de conteúdos multimé-

dia. Desta forma, surge a possibilidade e necessidade de aposta no Video on Demand.

O Video on Demand é já um termo conhecido pela maioria das pessoas, mas a ideia que se

tem deste serviço pode ser errónea e importa assim clarificar. O serviço que se encontra

disponibilizado em vários países incluindo Portugal, é o Near Video on Demand, uma

técnica de vídeo Pay-Per-View usada por redes de televisão multi-canais usando banda

larga, com os dados e imagens enviados por satélite ou cabo, sendo enviadas múltiplas

cópias de um programa espaçadas em pequenos intervalos de tempo de forma a permitir o

acesso aos utilizadores e descartando a necessidade de se sintonizar numa altura específi-

ca.

O VoD vai muito além deste tipo de serviço pois permite ao utilizador escolher o conteúdo

que quer ver, na altura e local do seu agrado podendo ser feito através de streaming da

rede ou do download do conteúdo. São ainda acrescentadas funcionalidades não disponí-

veis no Near Video on Demand como o controlo do conteúdo com comandos normalmen-

te associados a um VCR (pause, play, fast forward, fast rewind, etc).

Para além de bons resultados e dos variados serviços, a forte expansão da internet criou e

tornou evidentes alguns problemas, destacando-se a cópia ilegal de conteúdos multimédia.

Com o intuito de ultrapassar este problema foram criadas técnicas como o Digital Rights

Management (DRM) e normalizado o formato de vídeo MPEG-21, baseadas no conceito

de criação de licenças associadas aos conteúdos digitais, as quais deverão ser adquiridas

pelo consumidor de forma a poder visualizar o vídeo ou conteúdo digital.

A proposta da criação de um serviço Video on Demand onde se prevê a gestão dos direitos

de autor através do uso de DRM, por ser inovadora, ambiciosa e muito completa do ponto

de vista de implementação como uma aplicação multimédia, revelou-se extremamente

atraente e motivadora aos olhos dos autores deste documento.

1.3 Objectivos

O principal objectivo do projecto descrito neste documento consiste no desenvolvimento

de um sistema de Video on Demand que faça a gestão dos direitos de autor e de licenças

para mediar o acesso de utilizadores finais ao serviço.

Page 27: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 1: INTRODUÇÃO 3

Os objectivos específicos deste trabalho são os seguintes:

• Analisar os requisitos do sistema de forma a identificar os vários componentes

necessários para instalação e desenvolvimento;

• Analisar os vários projectos que implementam uma plataforma de gestão dos direi-

tos de autor e de licenças associados a um conteúdo digital;

• De entre os projectos estudados, escolher o mais adequado para a integração com o

sistema desenvolvido;

• Analisar as tecnologias existentes para o desenvolvimento de uma aplicação ade-

quada possibilitando a interacção com o utilizador e de uma forma dinâmica;

• Usar descritores normalizados para a caracterização dos conteúdos digitais dispo-

nibilizados, tendo como base de estudo o padrão fornecido pelo fórum TV-

Anytime;

• Projectar os componentes de um sistema de vídeo a pedido capaz de prestar uma

boa qualidade de serviço;

• Implementar funcionalidades que permitam criar licenças para a reprodução de um

conteúdo digital;

• Testar a comunicação entre os diversos módulos que compõem o sistema;

• Desenvolver, instalar e configurar os componentes do sistema com o propósito de

oferecer uma experiência intuitiva e alargada ao utilizador mas ao mesmo tempo

usando mecanismos complexos para realizar a gestão dos direitos digitais de autor.

Tendo atingido estes objectivos com algum tempo disponível partiu-se para outra fase do

projecto. Projectou-se assim, o desenvolvimento de uma aplicação possível de instalar na

máquina do utilizador capaz de permitir a reprodução de conteúdos digitais armazenados

localmente mas prevendo a gestão dos direitos de autor desses mesmos conteúdos.

Os objectivos específicos desta segunda fase são os seguintes:

• Analisar as várias tecnologias existentes para o desenvolvimento de uma aplicação

universal capaz de disponibilizar uma interface gráfica intuitiva;

• Desenvolver uma aplicação capaz de disponibilizar uma interface com ligação à

aplicação web online de modo a disponibilizar todas as funcionalidades disponí-

veis na aplicação citada e ainda outras relevantes como a possibilidade de efectuar

o download de um conteúdo para o sistema de armazenamento do utilizador;

• Assegurar a gestão dos direitos de autor através da comunicação entre esta aplica-

ção cliente e o servidor de modo a verificar a existência de uma licença válida

associada ao utilizador em questão;

• Permitir a chamada de um reprodutor multimédia para a visualização do conteúdo

pretendido após a autorização do servidor.

Page 28: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

4 CAPÍTULO 1: INTRODUÇÃO

Concluído o desenvolvimento das aplicações mencionadas deverão ser realizados testes

sobre o sistema criado. Através destes testes deverão ser extraídas perspectivas para

desenvolvimento futuro.

1.4 Estrutura do Relatório

Este trabalho encontra-se estruturado em 7 capítulos dos quais, o primeiro é composto por

esta introdução ao trabalho.

No segundo capítulo é apresentado o contexto onde um sistema de Video on Demand se

insere e as tecnologias de suporte envolvidas. São discutidas as plataformas que oferecem

uma gestão de direitos de autor e de distribuição através da criação de licenças.

O terceiro capítulo apresenta a arquitectura do sistema. É efectuada a identificação dos

requisitos e detalhada a configuração base do servidor, apresentando as ferramentas e o

seu modo de instalação.

No quarto capítulo é apresentado o sistema baseado em aplicação web enumerando as

necessidades do lado do servidor e do lado do cliente. No lado do servidor é dada uma

relevância às tecnologias utilizadas, tipo de utilizadores, mapa da aplicação, motor de

criação de licenças e a base de dados inerente ao sistema.

O quinto capítulo apresenta o sistema baseado numa aplicação cliente residente, desenvol-

vida com o objectivo de realizar uma gestão dos direitos de autor para conteúdos armaze-

nados localmente.

O sexto capítulo contém as conclusões gerais deste trabalho, analisando os seus principais

resultados e efectuando uma comparação entre a proposta inicial e os resultados obtidos.

O último capítulo apresenta algumas perspectivas de desenvolvimento futuro.

Page 29: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Capítulo 2

2 Contexto e Tecnologias de suporte

Pretende-se com este projecto, realizar o desenvolvimento de uma aplicação que permita

disponibilizar serviços de Video on Demand a utilizadores remotos através de um acesso à

internet, fazendo a gestão dos direitos de autor e de licenças, reutilizando sempre que pos-

sível aplicações e software já existente.

O projecto teve início com uma fase de pesquisa e estudo de assuntos relacionados com

normas, especificações e software de código aberto que permitam efectuar a gestão dos

direitos de autor e de licenças. Em particular foram estudadas a norma MPEG-21 e as

especificações DMP e Creative Commons. Ainda nesta fase realizou-se a pesquisa de fer-

ramentas freeware capazes de realizar streaming de vídeo.

Para se perceber melhor o que se acabou de enunciar, neste capítulo serão apresentadas as

ideias principais que se devem reter das normas e ferramentas mencionadas. Haverá lugar

ainda para a descrição da norma MPEG-4 utilizada para realizar o streaming de vídeo.

2.1 O Conceito de licenças

Licenciar ou conceder uma licença significa dar uma permissão. Uma licença é o docu-

mento que demonstra essa permissão e deve ser concedida por um criador ou distribuidor

de licenças, a um utilizador.

Foram estudadas várias plataformas e projectos que prevêem a criação de licenças com o

objectivo de gerir os direitos de autor associados a conteúdos digitais e que passaremos a

explicar nas secções seguintes.

2.1.1 Digital Rights Management (DRM)

O DRM [1], em português Gestão de Direitos Digitais, é uma tecnologia usada por edito-

res ou proprietários de conteúdos digitais de forma a controlar e administrar o acesso ou

utilização desses mesmos conteúdos. Existem diferentes mecanismos de DRM, projecta-

dos por diferentes empresas mas que têm algumas características em comum:

Page 30: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

6 CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE

• Detectam quem acede a cada conteúdo digital, quando e sob que condições, repor-

tando essa informação ao proprietário do conteúdo.

• Autorizam ou negam o acesso ao conteúdo, de acordo com as condições estabele-

cidas pelo proprietário ou fornecedor do conteúdo.

• Quando autorizam o acesso, impõem algumas restrições estabelecidas pelo pro-

prietário da obra.

O DRM apesar de ser uma técnica que promove a distribuição e transacção dos conteúdos

digitais é também considerado como uma técnica controversa. O seu propósito é fornecer

os meios capazes de assegurar aos criadores de conteúdos digitais, a manutenção de um

controlo apropriado sobre as suas obras incluindo a possibilidade de obter alguma forma

de compensação. Esta forma de controlo torna-se controversa devido a três factores prin-

cipais: as tradições e a cultura da internet que inclui acesso livre e aberto a todo o tipo de

informação; desconhecimento das consequências do DRM ao limitar o uso de conteúdos

digitais adquiridos de forma legítima, de maneiras que tradicionalmente não se aplicam a

outros conteúdos; preocupação acerca da complexidade dos esquemas DRM, podendo

dificultar e mesmo prevenir a gestão e a investigação histórica em arquivos. Os oponentes

da técnica de DRM baseiam a sua opinião numa ou em mais do que uma destas preocupa-

ções.

2.1.2 MPEG-21 REL

O MPEG-21 [2] define uma framework normalizada para a disponibilização e entrega de

multimédia baseada em dois conceitos essenciais: a definição de uma unidade fundamen-

tal para a distribuição e transacção (DI – Digital Item) e o conceito de utilizadores que

interagem com os mesmos DIs. O DI é um objecto digital formado pelos conteúdos, por

uma identificação única (URI) e a metadata.

O MPEG Rights Expression Language (REL) [3], parte integrante do MPEG-21, é uma

ferramenta desenhada para facilitar a criação de licenças fiáveis e seguras, requeridas

pelos proprietários do conteúdo, sendo utilizadas ao longo da cadeia de utilizadores desde

o criador até ao consumidor final do conteúdo.

O elemento básico para a definição do REL é a enunciação dos direitos da licença. Aqui se

define qual ou quais as permissões que um utilizador ou consumidor tem perante esse con-

teúdo protegido, podendo existir vários níveis de complexidade ao nível das permissões e

condições necessárias. Esta expressão de direitos pode ser criada por qualquer pessoa

autorizada a disponibilizar permissões para conteúdo protegido, sendo normalmente um

criador e/ou revendedor de licenças, devendo estar assegurada a assinatura digital para que

a sua autenticidade possa ser comprovada.

Estruturalmente, uma licença MPEG REL consiste no seguinte:

Page 31: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE 7

Figura 1 – O modelo de dados da licença MPEG REL

• O direito que a licença especifica

• O conteúdo digital para o qual é gerada a licença

• As condições que devem ser verificadas antes que sejam concedidas as permissões

• O utilizador para o qual a licença é concedida

Especificados no REL, existem vários tipos de direitos que, associados a um conteúdo,

permitem executar acções como aceder a um serviço ou executar funções sobre um traba-

lho digital como visualizar um vídeo, guardar ou imprimir um documento, subscrever,

vender, emprestar, transferir, distribuir, pagar por uso, pagar por parte do conteúdo, doar,

etc.

São várias as plataformas que estabelecem os seus princípios básicos através da criação de

licenças do tipo MPEG-21 REL, nomeadamente o VISNET II e o TIRAMISU que serão

apresentados nas secções seguintes.

2.1.3 VISNET II

O VISNET II [4] é uma rede de excelência com uma visão sobre os planos de integração,

investigação e divulgação. É um consórcio criado por organizações conceituadas pelos

seus projectos de investigação no campo das tecnologias multimédia audiovisual, nomea-

damente o INESC.

Este projecto inclui uma grande variedade de actividades de investigação relacionadas

com sistemas e plataformas audiovisuais. Estas actividades estão divididas em três gran-

des temas: codificação de vídeo, processamento audiovisual e segurança, sendo este últi-

mo relevante no âmbito da criação de licenças e gestão dos direitos digitais do autor.

A leitura do paper “Intermediate Progress Report on DRM-based Content Protection Ini-

tial Integration” [5], apenas para membros mas disponibilizado pela nossa orientadora, deu

uma ideia importante da posição do VISNET II sobre o DRM.

No VISNET II pretende-se definir uma arquitectura DRM para gerir os direitos digitais de

conteúdos audiovisuais durante todo o seu ciclo de vida. Esta arquitectura será baseada

nos trabalhos desenvolvidos anteriormente e tendo em conta a existência de outras inicia-

tivas que especifiquem um sistema DRM.

Page 32: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

8 CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE

O conceito de interoperabilidade DRM tem normalmente três alternativas a seguir: na

primeira existe a necessidade de haver um formato único para a protecção dos ficheiros

audiovisuais, o que é difícil de atingir universalmente. Uma segunda alternativa será a

existência de um tradutor entre as várias implementações de DRM que faça a tradução das

operações intermédias. A última alternativa sugere que a possibilidade de o sistema DRM

realizar o download de ferramentas adequadas de forma a tornar-se capaz de processar o

conteúdo protegido.

A arquitectura defendida pelo VISNET II é a arquitectura DMAG-MIPAMS, visível na

Figura 2. Esta plataforma é orientada aos serviços e os seus módulos são planeados para

serem implementados por serviços Web fornecendo flexibilidade e permitindo uma facili-

dade no desenvolvimento dos mesmos num ambiente distribuído.

Figura 2 – Arquitectura DMAG-MIPAMS

No contexto da arquitectura DMAG-MIPAMS, define-se dois conceitos importantes: acto-

res e componentes. Um actor é um utilizador (pessoa ou organização) que usa um compo-

nente. Um componente é um módulo ou conjunto de software que oferecem funcionalida-

des relacionadas com DRM e que interagem com outros componentes.

Como é possível ver na figura anterior, a arquitectura está dividida nos seguintes módulos:

• Content Server – Este componente permite aos utilizadores explorar e seleccionar

conteúdos, fornece o conteúdo que os utilizadores finais seleccionem para visuali-

zação, codifica e insere metadata nos conteúdos provenientes dos proprietários;

• Adaptation Server – Realiza a adaptação dos conteúdos e dos seus metadados

associados, dependendo das condições de transmissão, armazenamento e reprodu-

ção;

Page 33: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE 9

• Protection Server – Esta componente realiza a protecção dos conteúdos digitais,

faz a descrição e o download das ferramentas de protecção, gera chaves de protec-

ção e armazena as chaves geradas;

• Governance Server – Este componente gera as licenças para distribuição ou utili-

zadores finais, armazena as licenças, traduz as licenças e fornece autorização para

as licenças;

• Certification Server – Está divido entre o Certification Authority, Registration Ser-

ver e o Supervision Server envolvendo várias funcionalidades diferentes.

o Certification Authority – Fornece certificados X.509 para as ferramentas

instaladas, para utilizadores registados e para os componentes de servidores

com diferente arquitectura;

o Registration Server – Usado no registo de actores e ferramentas;

o Supervision Server – Autentica e supervisiona actores e componentes do

sistema. É ainda responsável por extrair e registar informações sobre as fer-

ramentas instaladas, recebe e armazena relatórios sobre as acções dos utili-

zadores;

• Trusted Client – Este módulo é aquele que interage directamente com a aplicação

do cliente de forma a reforçar o DRM. Consiste num software de confiança para o

sistema, num repositório local de licenças, informação sobre a protecção e relató-

rios sobre operações offline.

• Intermediary – Normalmente é parte integrante do módulo Trusted Client mas

pode também estar localizado no servidor de modo a reduzir o número de compo-

nentes que o módulo no cliente necessita. Pode ser visto como um corrector com

quem o cliente comunica para obter autorização e as chaves necessárias e dessa

forma possibilitar a reprodução do conteúdo digital pretendido.

Para ilustrar a forma como a arquitectura e o processamento do conteúdo multimédia pro-

tegido estão relacionados, será apresentado um caso de utilização de conteúdo por parte de

um utilizador final. Na Figura 3 encontramos os passos necessários para a reprodução de

um conteúdo pela aplicação cliente, assumindo que não é a primeira vez que se utilizam as

ferramentas de forma que estas estejam já certificadas pelo sistema.

Page 34: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

10 CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE

Figura 3 – Caso de utilização da reprodução de um conteúdo protegido

A Figura 3 mostra os passos envolvidos na reprodução de um conteúdo protegido e

demonstra a necessidade de haver um intermediário entre o sistema de DRM e o cliente

final. Esse intermediário (Trusted Client) é uma ferramenta reconhecida e licenciada para

comunicar com o sistema.

Importante será também a troca de mensagens entre os vários módulos, resultante de um

pedido de autorização para reproduzir um conteúdo digital feito pelo reprodutor de multi-

média. No final será retornada a reposta positiva ou negativa.

Os passos envolvidos na reprodução de um conteúdo protegido, representados na Figura 3

são os seguintes:

1. O utilizador tenta ouvir a música no seu reprodutor de multimédia.

2. O reprodutor de multimédia necessita enviar o pedido para desproteger o conteúdo

a um módulo interno.

3. O módulo de confiança (Trusted Module) extrai informação local acerca da ferra-

menta, utilizador e dispositivo que quer aceder ao conteúdo. Verifica também os

relatórios acerca das acções realizadas offline, se disponível.

4. O módulo de confiança contacta o Supervision Server e envia a informação extraí-

da.

Page 35: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE 11

5. O Supervision Server realiza a autenticação do utilizador e das suas ferramentas

verificando o seu estatuto e a integridade das mesmas ferramentas. Verifica ainda a

lista de acções offline e introduz as acções na respectiva base de dados.

6. Opcionalmente, o Supervision Server guarda um relatório com os resultados da

verificação anterior.

7. O Supervision Server notifica o módulo de confiança do utilizador com o resultado

da verificação.

8. Se a resposta à verificação realizada for positiva, o módulo de confiança pede auto-

rização ao Governance Server.

9. O Governance Server determina se a informação necessária para desproteger o

conteúdo pretendido está disponível no Protection Server.

10. Se a informação estiver disponível no Protection Server é retornada ao Governance

Server.

11. Neste passo é dada a autorização, ou seja, uma licença é criada usando o repositó-

rio de licenças.

12. O Governance Server envia a informação sobre a resposta à tentativa de autoriza-

ção para o Supervision Server.

13. O Supervision Server confirma a recepção e armazenamento do relatório.

14. Neste passo o Governance Server notifica o módulo de confiança com a resposta

ao pedido de autorização. Se esta for positiva, envia a informação necessária para a

reprodução do conteúdo.

15. Se o resultado do pedido de autorização do pedido for positivo, o conteúdo será

desprotegido.

16. O conteúdo digital é enviado para a aplicação que fez o pedido.

17. O conteúdo digital é reproduzido.

2.1.4 TIRAMISU

O TIRAMISU (The Innovative Rights and Access Management Interplatform Solution)

[6] é um projecto que implementa uma Framework para a criação, distribuição, consumo e

protecção de conteúdos audiovisuais.

A framework proposta pelo TIRAMISU é baseada na norma MPEG-21 para a representa-

ção do conteúdo e ao mesmo tempo inova em vários aspectos, sendo o mais notável a

completa especificação de um esquema DRM.

Page 36: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

12

Figura 4

O ponto central deste projecto

gement System) baseado na utilização de smartcards capaz de ultrapassar alguns probl

mas que haviam dificultado uma maior adopção de sistemas DRM.

A gestão das chaves é o processo em que, n

ves para efectuar o descrambling (descodificação) do conteúdo digital, de uma forma

segura desde o proprietário do conteúdo digital até ao consumidor.

O sistema de gestão de chaves

final a um distribuidor de licenças de forma a obter a licença que pretende. Esta ligação é

necessária pois a chave de descodificação do conteúdo digital vem encriptado com a chave

pública do distribuidor de licenças, ou seja, o dis

como descodificar o conteúdo.

Depois de o distribuidor de licenças extrair a informação necessária para a descodificação

do conteúdo é gerada uma licença para um domínio definido pelo utilizador

licença é representativa das condições associadas ao consumo do conteúdo

chave para realizar a descodificação

zador e é enviada para o utilizador final.

CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE

– Arquitectura do projecto TIRAMISU

ste projecto é o original sistema de gestão de chaves KMS (Key Man

gement System) baseado na utilização de smartcards capaz de ultrapassar alguns probl

mas que haviam dificultado uma maior adopção de sistemas DRM.

A gestão das chaves é o processo em que, num sistema de DRM, são distribuídas as ch

ves para efectuar o descrambling (descodificação) do conteúdo digital, de uma forma

segura desde o proprietário do conteúdo digital até ao consumidor.

O sistema de gestão de chaves, representado na Figura 5, impõe a ligação do utilizador

final a um distribuidor de licenças de forma a obter a licença que pretende. Esta ligação é

necessária pois a chave de descodificação do conteúdo digital vem encriptado com a chave

pública do distribuidor de licenças, ou seja, o distribuidor de licenças é o único que saberia

como descodificar o conteúdo.

Depois de o distribuidor de licenças extrair a informação necessária para a descodificação

do conteúdo é gerada uma licença para um domínio definido pelo utilizador

a é representativa das condições associadas ao consumo do conteúdo e é aí inserida a

chave para realizar a descodificação, encriptada com a chave pública do domínio do util

zador e é enviada para o utilizador final.

AS DE SUPORTE

é o original sistema de gestão de chaves KMS (Key Mana-

gement System) baseado na utilização de smartcards capaz de ultrapassar alguns proble-

um sistema de DRM, são distribuídas as cha-

ves para efectuar o descrambling (descodificação) do conteúdo digital, de uma forma

a ligação do utilizador

final a um distribuidor de licenças de forma a obter a licença que pretende. Esta ligação é

necessária pois a chave de descodificação do conteúdo digital vem encriptado com a chave

tribuidor de licenças é o único que saberia

Depois de o distribuidor de licenças extrair a informação necessária para a descodificação

do conteúdo é gerada uma licença para um domínio definido pelo utilizador. Essa nova

e é aí inserida a

, encriptada com a chave pública do domínio do utili-

Page 37: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 2: CONTEXTO E TECNOLOGI

Figura 5 – Si

Inerente a este processo é a possibilidade de definição de um domínio do utilizador (home

domain) podendo agrupar vários dispositivos.

dispositivos que apresentam o mesmo

conteúdos. Quando um utilizador contacta o distribuidor de licenças para obter uma lice

ça de consumo, esta é atribuída ao seu domínio dando liberdade para reproduzir o conte

do digital em todos os disposit

entender o conceito de domínio de utilizador, este

Figura 6 – Conceito de um domínio de utilizador (Home Domain)

Um factor importante no TIRA

licença de consumo é fornecido por hardware, os smartcards.

CONTEXTO E TECNOLOGIAS DE SUPORTE

Sistema de gestão de chaves do projecto TIRAMISU

Inerente a este processo é a possibilidade de definição de um domínio do utilizador (home

domain) podendo agrupar vários dispositivos. Um domínio de utilizador é um grupo de

apresentam o mesmo conjunto de direitos relativamente ao

Quando um utilizador contacta o distribuidor de licenças para obter uma lice

ça de consumo, esta é atribuída ao seu domínio dando liberdade para reproduzir o conte

do digital em todos os dispositivos pertencentes ao seu domínio de utilizador.

domínio de utilizador, este pode ser visto na Figura 6

Conceito de um domínio de utilizador (Home Domain)

Um factor importante no TIRAMISU é a imposição de que os termos e condições da

licença de consumo é fornecido por hardware, os smartcards. Estes smartcards

13

stema de gestão de chaves do projecto TIRAMISU

Inerente a este processo é a possibilidade de definição de um domínio do utilizador (home

Um domínio de utilizador é um grupo de

relativamente ao consumo de

Quando um utilizador contacta o distribuidor de licenças para obter uma licen-

ça de consumo, esta é atribuída ao seu domínio dando liberdade para reproduzir o conteú-

ivos pertencentes ao seu domínio de utilizador. Para melhor

Figura 6.

Conceito de um domínio de utilizador (Home Domain)

MISU é a imposição de que os termos e condições da

Estes smartcards, pertencen-

Page 38: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

14 CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE

tes a um domínio de utilizador, possuem um segredo criptográfico que consiste no par

chave pública e chave privada sendo específicos para cada domínio de utilizador e antes

que estes possam ser usados devem estar registados no gestor de domínios de utilizador

(Figura 5 no canto direito – Home Domain Manager).

2.1.5 Digital Media Project

O Digital Media Project (DMP) [7] é uma organização cuja missão é promover o desen-

volvimento e utilização eficaz de conteúdos digitais respeitando os direitos de autor e de

distribuição. Para atingir os objectivos propostos, esta associação apoia-se e aposta no

desenvolvimento da tecnologia Digital Rights Management (DRM).

Tal como foi dito anteriormente, DRM é desenvolvido por diferentes empresas, o que

pode dificultar ou tornar impossível a comunicação entre utilizadores de diferentes tecno-

logias de gestão de direitos de autor. O projecto DMP aposta na interoperabilidade entre

diferentes sistemas e estabelece assim a necessidade de criar um DRM universal, partindo

da uniformização (criação de um standard) de pequenas funções para atingir esse fim.

A abordagem do DMP para atingir a uniformização do DRM é baseada nos seguintes pro-

cessos:

1. As especificações são desenvolvidas em fases.

2. Os Casos de Utilização mais significativos são identificados.

3. As funções primitivas necessárias para a implementação dos casos de utilização

são identificadas.

4. Os requisitos para as funções são registados através da contribuição de utilizadores

pertencentes à cadeia de utilizadores.

5. São apresentadas propostas para tecnologias capazes de implementar as funções

primitivas de acordo com os requisitos.

6. As tecnologias seleccionadas – ferramentas – são documentadas.

7. São desenvolvidas as especificações para as ferramentas.

8. Numa fase final são editadas ou adicionadas ferramentas necessárias ao suporte de

novas funcionalidades de ferramentas já existentes.

Ao conjunto de todas as ferramentas DRM uniformizadas dá-se o nome de “Interoperable

DRM Platform (IDP)” [8] e fornece algumas vantagens adicionais levando à total intero-

perabilidade ao longo da cadeia de utilizadores e permitindo uma contínua inovação do

sistema.

A segunda fase de desenvolvimento do IDP, a mais recente, apresenta treze tipos de Casos

de Utilização, dos quais apresentamos os mais importantes.

• Open Release – Desta forma os conteúdos digitais são disponibilizados para que os

utilizadores acedam livremente, mas não são do domínio público (Public Domain).

Page 39: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE 15

• Home Distribution # 1 – Este caso de utilização demonstra como ultrapassar as

dificuldades que alguns dos proprietários de conteúdos têm para prevenir a cópia

de um conteúdo entre vários dispositivos do mesmo utilizador.

• Home Distribution # 2 – Este caso de utilização assegura os direitos de um utiliza-

dor final, permitindo a utilização do mesmo conteúdo digital entre vários dispositi-

vos dentro de um domínio.

• Internet Distribution – Este caso de utilização assegura uma distribuição de con-

teúdo protegido através de tecnologias que providenciam interoperabilidade.

• Controlled Peer-to-Peer Distribution

• Personal Photography – Este caso de utilização assegura, aos utilizadores proprie-

tários das fotografias pessoais, o controlo destas quando as distribui para os seus

amigos.

• Open Governed Broadcast

• TVA Broadcaster – Este caso de utilização tem em consideração o broadcast usado

pelo fórum da TV Anytime.

• Open Governed Interactive Content – O aumento da largura de banda disponibili-

zada pelos serviços IP tem permitido a distribuição de vídeo e televisão a pedido.

Neste caso de utilização está considerada a distribuição de vídeo transportado atra-

vés de RTP/UDP/IP mas encontra-se ainda em fase de desenvolvimento e é apre-

sentado apenas como finalidade de ilustração.

Uma grande parte das tecnologias presentes no IDP-2 (IDP, fase 2) são baseadas no

MPEG-21 e apenas as funcionalidades não suportadas, são criadas pelo DMP de raiz. Mas

ao contrário do que acontece no MPEG-21 as tecnologias no IDP encontram-se integradas,

permitindo o aparecimento de uma plataforma IDP, o Chillout, com o cariz de um softwa-

re de código livre.

O Chillout [9] [10], em constante estado de desenvolvimento, fornece um conjunto de

bibliotecas JAVA de código livre capazes de implementar funções de DRM e também

aplicações em JAVA baseadas em bibliotecas do próprio Chillout. Esta plataforma dispo-

nibiliza ferramentas que podem ser usadas para realizar o teste de conformidade de

implementações de DRM sendo estas geradas por utilizadores independentes e também

para estabelecer a cadeia de utilizadores para essa implementação.

Encontra-se organizado, tal como representado na Figura 7, segundo a seguinte estrutura:

• JAVA plataform – Plataforma de bibliotecas JAVA nas quais assentam as seguin-

tes camadas;

• Core Library – Bibliotecas de classes capazes de implementar as funções primiti-

vas definidas nas especificações técnicas do DMP. Possui as funcionalidades

necessárias para representar as estruturas XML definidas nas normas do DMP,

gerar o formato de ficheiro DCF e actuar segundo os protocolos definidos para a

comunicação entre dois dispositivos;

Page 40: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

16

• Auxiliary Library – Apesar de não estar presente nas especificações técnicas do

DMP, esta camada disponibiliza uma biblioteca de classes

lidades adicionais;

• Applications – Um conjunto de aplicações criadas com o objectivo de utilizar os

serviços das camadas inferiores e para demonstrar as capacidades do DMP

Figura 7 – Diagrama representativo da

Entre as aplicações disponíveis pelo Chillout

LPD, e o Chillout CCD. Este último, o Content Creation Device (CCD), é uma ferramenta

que cria o conteúdo de acordo com o DMP

esse conteúdo, ferramentas de DRM e os identificadores tudo num só formato digital, o

DMP Content Format (DCF). A licença introduzida neste formato é criada pelo License

Provider Device (LPD) que gera as licenças de acorda com o DMP

tipo reproduzir, imprimir, copiar

Por fim, o Chillout SAV é a aplicação usada para fazer a visualização de conteúdos dig

tais no formato DCF.

2.1.6 Creative Commons

As licenças Creative Commons

Creative Commons (CC), permite que proprietários de conteúdo

copyright) possam disponibilizar

enquanto retêm outros.

Em Portugal, as licenças estão

vários tipos de licença e esquemas de contratos incluindo licenças de domínio público ou

conteúdo aberto e ainda metadata na forma XML descrevendo a obra e a sua licença.

Eis alguns tipos de licenças disponibilizados:

• Atribuição – Esta é a licença mais permissiva do leque de opções. Nos termos

desta licença a utilização da obra é livre, podendo os utilizadores fazer dela uso

comercial ou criar obras derivadas a partir da obra original. Essencial é, apenas,

que seja dado o devido crédito ao seu autor.

• Atribuição Não Comerciallização ampla da sua obra, limitada, contudo, pela impossibilidade de se obter

CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE

Apesar de não estar presente nas especificações técnicas do

DMP, esta camada disponibiliza uma biblioteca de classes com algumas funcion

Um conjunto de aplicações criadas com o objectivo de utilizar os

serviços das camadas inferiores e para demonstrar as capacidades do DMP

Diagrama representativo da estrutura do Chillout

Entre as aplicações disponíveis pelo Chillout destacam-se o Chillout SAV, o Chillout

Este último, o Content Creation Device (CCD), é uma ferramenta

que cria o conteúdo de acordo com o DMP combinando o conteúdo digital, a licença para

esse conteúdo, ferramentas de DRM e os identificadores tudo num só formato digital, o

DMP Content Format (DCF). A licença introduzida neste formato é criada pelo License

que gera as licenças de acorda com o DMP, inserindo direitos do

reproduzir, imprimir, copiar.

Chillout SAV é a aplicação usada para fazer a visualização de conteúdos dig

Creative Commons

As licenças Creative Commons [12] [13], criadas pela organização sem fin

Creative Commons (CC), permite que proprietários de conteúdos digitais protegido

copyright) possam disponibilizar alguns direitos sobre os seus trabalhos

Em Portugal, as licenças estão já adaptadas à legislação portuguesa disponibiliza

vários tipos de licença e esquemas de contratos incluindo licenças de domínio público ou

conteúdo aberto e ainda metadata na forma XML descrevendo a obra e a sua licença.

Eis alguns tipos de licenças disponibilizados:

Esta é a licença mais permissiva do leque de opções. Nos termos

ta licença a utilização da obra é livre, podendo os utilizadores fazer dela uso

comercial ou criar obras derivadas a partir da obra original. Essencial é, apenas,

devido crédito ao seu autor.

Atribuição Não Comercial – De acordo com esta licença o autor permite uma ut

lização ampla da sua obra, limitada, contudo, pela impossibilidade de se obter

AS DE SUPORTE

Apesar de não estar presente nas especificações técnicas do

om algumas funciona-

Um conjunto de aplicações criadas com o objectivo de utilizar os

serviços das camadas inferiores e para demonstrar as capacidades do DMP.

do Chillout

Chillout SAV, o Chillout

Este último, o Content Creation Device (CCD), é uma ferramenta

digital, a licença para

esse conteúdo, ferramentas de DRM e os identificadores tudo num só formato digital, o

DMP Content Format (DCF). A licença introduzida neste formato é criada pelo License

, inserindo direitos do

Chillout SAV é a aplicação usada para fazer a visualização de conteúdos digi-

, criadas pela organização sem fins lucrativos

protegidos (por

alguns direitos sobre os seus trabalhos ao público

islação portuguesa disponibilizando

vários tipos de licença e esquemas de contratos incluindo licenças de domínio público ou

conteúdo aberto e ainda metadata na forma XML descrevendo a obra e a sua licença.

Esta é a licença mais permissiva do leque de opções. Nos termos

ta licença a utilização da obra é livre, podendo os utilizadores fazer dela uso

comercial ou criar obras derivadas a partir da obra original. Essencial é, apenas,

De acordo com esta licença o autor permite uma uti-

lização ampla da sua obra, limitada, contudo, pela impossibilidade de se obter

Page 41: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE 17

através dessa utilização uma vantagem comercial. É também essencial que seja

dado o devido crédito ao autor da obra original.

• Atribuição Partilha nos Termos da Mesma Licença – Quando um autor opte

pela concessão de tal licença pretenderá, não só que lhe seja dado crédito pela cria-

ção da sua obra, como também que as obras derivadas desta sejam licenciadas nos

mesmos termos em que o foi a sua própria obra. Esta licença é muitas vezes com-

parada com as licenças de software livre.

• Atribuição Proibição de realização de obras derivadas – Esta licença permite a

redistribuição, comercial ou não-comercial, desde que a sua obra seja utilizada sem

alterações e na integra. É também essencial que seja dado o devido crédito ao autor

da obra original.

• Atribuição Uso Não-Comercial Partilha nos Termos da Mesma Licença – Esta

licença permite a redistribuição apenas não-comercial e também que obras deriva-

das desta sejam licenciadas nos mesmos termos em que foi a sua própria obra. É

também essencial que seja dado o devido crédito ao autor da obra original.

• Atribuição Uso Não-Comercial Proibição de Realização de Obras Derivadas –

Esta é a licença menos permissiva do leque de opções que se oferece ao autor,

permitindo apenas a redistribuição. Mediante adopção desta licença, não só não é

permitida a realização de um uso comercial, como é inviabilizada a realização de

obras derivadas. Dada a sua natureza, esta licença é muitas vezes chamada de

licença de “publicidade livre”.

2.2 Tecnologias e Protocolos

O Video-on-Demand centrado na transmissão de dados de vídeo em tempo real possui

elevados requisitos para obter elevada Qualidade de Serviço (QoS) e uma experiência

agradável para o utilizador. Entre eles encontram-se atrasos na transmissão reduzidos, que

para serem alcançados necessitam de usar um protocolo diferente do que é normalmente

usado para a transmissão de dados.

O protocolo de transporte TCP [14] é um protocolo orientado à conexão apresentando

mecanismos de controlo de fluxo, controlo de congestionamento e de retransmissões pro-

vocando um grande fluxo de mensagens e overhead desnecessário para uma transmissão

com requisitos de tempo-real em que um pacote ao chegar atrasado é um pacote perdido.

O protocolo de transporte UDP [15], por seu lado, não apresenta garantias de entrega de

pacotes mas apresenta uma latência inferior ao do TCP e não limita a largura de banda ao

emissor. É desta forma o protocolo indicado e utilizado em sistemas de transmissão de

vídeo em tempo-real. Como o protocolo UDP não envia qualquer confirmação de entrega

de pacotes, a monitorização da transmissão dos pacotes e detecção é realizada pelo proto-

colo RTP (Real-Time Protocol).

Page 42: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

18 CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE

Na figura seguinte está representada a pilha protocolar normalmente utilizada em sistemas

de transmissão de vídeo em tempo real sobre uma rede IP.

Figura 8 – Pilha protocolar típica em sistemas de transmissão de vídeo sobre IP.

2.2.1 RTP (Real-Time Protocol)

O RTP [16] é um protocolo de transporte utilizado em aplicações de tempo real fornecen-

do um serviço de entrega dos dados entre os dois extremos da comunicação. É normal-

mente usado para entrega de dados associados ao VoIP (Voice over IP – Voz sobre IP)

mas também para soluções de multimédia (áudio/vídeo) a pedido.

Este protocolo define como deve ser feita a fragmentação do fluxo de dados áudio e vídeo,

adicionando a cada fragmento informação de sequência e de tempo de entrega permitindo

a reordenação e sincronização dos pacotes recebidos. Evita assim a degradação da quali-

dade do conteúdo recebido embora utilize o UDP como protocolo de transporte o qual não

oferece qualquer garantia que os pacotes serão entregues num determinado intervalo.

2.2.2 RTCP (Real-Time Control Protocol)

O protocolo RTCP [16] é baseado na troca periódica de pacotes de controlo entre os parti-

cipantes de uma sessão de streaming multimédia, transportando informações relevantes

sobre a qualidade do serviço fornecido por uma ligação RTP. Nestas mensagens trocadas

encontram-se estatísticas sobre o número de bytes enviados, o número de pacotes perdi-

dos, a variação do atraso na chegada dos pacotes (jitter) entre outras informações que

permitem o controlo da taxa de transmissão da fonte.

2.2.3 RTSP (Real Time Streaming Protocol)

No nível da camada da aplicação encontra-se um outro protocolo para controlo de fluxo de

multimédia, o RTSP [17][18] (Real Time Streaming Protocol). Este protocolo, semelhante

Page 43: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE 19

ao protocolo HTTP, é desenvolvido para comunicar com protocolos de nível inferior,

nomeadamente o RTP, proporcionando um serviço completo de streaming sobre IP.

Streaming refere-se ao transporte de um meio multimédia em tempo real desde um servi-

dor até um cliente através de uma rede. Através desta técnica, o conteúdo multimédia é

apresentado por um software do cliente à medida que as informações vão sendo entregues,

não chegando a ser efectuado o download do conteúdo para o disco do utilizador.

Um fluxo multimédia é identificado por um endereço RTSP, isto é, é identificado por um

URL RTSP do tipo rtsp://endereço_servidor/conteudo.mp4 , onde conteudo.mp4 é o con-

teúdo pretendido pelo cliente e o endereço_servidor é o endereço IP ou nome do domínio

do servidor.

O controlo da entrega do fluxo multimédia é efectuado através da troca de mensagens

entre o servidor e o cliente. Essas mensagens são comandos de controlo Play, Stop, Pause,

Fast-Forward e Rewind, ou seja, o RTSP funciona como um controlo remoto de um servi-

dor de multimédia.

Na Tabela 1 são apresentados alguns dos mais relevantes comandos/mensagem do proto-

colo RTSP com uma pequena descrição sobre as suas funcionalidades.

Tabela 1 - Descrição dos comandos/mensagens usados no protocolo RTSP

Comando/Mensagem Função DESCRIBE Obtém discrição sobre a apresentação dos objectos multimédia

SETUP Estabelece a ligação de acordo com os parâmetros trocados PLAY Faz o pedido para iniciar ou recomeçar a transmissão de dados

PAUSE Pedido de pausa na transmissão de dados, podendo ser recomeçada TEARDOWN Termina a sessão parando todos os streamings activos

OPTIONS Obtém métodos disponíveis ANNOUNCE Altera descrição do objecto multimédia

GET_PARAMETER Retorna o valor de um parâmetro de um objecto a ser apresentado SET_PARAMETER Pedido para colocar um valor num dado parâmetro de um objecto

REDIRECT Redirecciona o cliente para um novo servidor RECORD Inicia a gravação dos dados multimédia

2.3 MPEG-4

O MPEG-4 [19][20] é uma norma da ISO/IEC desenvolvida pelo Moving Pictures Experts

Group (MPEG) onde as suas principais áreas de utilização situam-se nas áreas da Televi-

são Digital, Multimédia Interactiva e Aplicações Gráficas Interactivas.

A norma altera o paradigma da codificação em relação às anteriores normas existentes

passando a realizar uma codificação baseada em objectos, permitindo interactividade ao

utilizador e a possibilidade de edição e manipulação sem transcodificar. De entre os objec-

tos possíveis de codificar encontra-se o áudio, vídeo, gráficos, texto, objectos sintetizados

2D/3D e animação tornando possível a construção de cenas multimédia.

Page 44: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

20 CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE

A apresentação MPEG-4 é composta por objectos áudio/vídeo e informação relativa à

descrição da cena introduzida pelo BIFS (Binary Format for Scenes), protocolo este que

para além da descrição da cena descreve a interacção possível de realizar com os objectos

e também a informação para realizar a animação destes. A interactividade do utilizador

passa pela visualização e manuseamento dos objectos presentes na cena podendo inserir,

retirar ou deslocar os mesmos objectos de acordo com os seus gostos ou interesse intera-

gindo com os objectos directamente e não com a fonte do stream.

Desenhado para ser utilizado em aplicações Web, o MPEG-4 utiliza poderosos codecs de

áudio e vídeo, o AAC (Advanced Audio Coding) e o AVC (Advanced Video Coding) res-

pectivamente, conseguindo atingir uma maior compressão em relação ao MPEG-2 indis-

pensável para a transmissão de conteúdos de alta-definição a baixos débitos e possibilitan-

do a sua disponibilização através da internet e em redes móveis sem fios.

Outro objectivo do MPEG-4 prende-se com o acesso universal introduzindo uma robustez

a erros para que as aplicações sejam suportadas por uma diversidade de redes com diferen-

tes débitos e qualidades de serviço. Permite ainda uma maior escalabilidade (resolução

temporal, espacial, complexidade e qualidade) para se adaptar a redes e a terminais.

2.4 Darwin Streaming Server

O Darwin Streaming Server (DSS) [21] é um servidor de streaming de código livre, per-

tencendo ao projecto Open Source Streaming Server da Apple. Este projecto usa os proto-

colos RTP e RTSP sendo capaz de realizar o streaming dos formatos H.264, MPEG-4 e

3GPP sobre a Internet em tempo real.

O servidor está actualmente na sua versão 5.5.5, existindo versões para várias plataformas

como Mac OS, Linux e Windows e apresentando as seguintes características:

• Suporte nativo de conteúdos MPEG-4: O servidor permite a entrega de ficheiros

hinted MPEG-4, sem serem convertidos para ficheiros *.mov, a clientes que supor-

tem a reprodução de streams sobre IP.

• Streaming de MP3: O servidor permite o streaming de ficheiros MP3 sobre HTTP

possibilitando a criação de estações de rádio.

• Aplicação Web para administração do servidor: Através desta aplicação faz-se a

gestão e administração do servidor remotamente através de um web browser,

conectando-o na porta 1220. Permite a visualização de estatísticas e encontram-se

funcionalidades como o assistente de configuração.

• Autenticação: Dois tipos de autenticação, um básico e outro encriptado, para aces-

so a conteúdos multimédia protegidos.

• Streaming Unicast e/ou Multicast:

o Unicast: Cada cliente que se liga ao servidor recebe o seu próprio fluxo de

dados, ou seja, é uma transmissão de um para um;

Page 45: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 2: CONTEXTO E TECNOLOGIAS DE SUPORTE 21

o Multicast: Vários clientes ligam-se ao mesmo fluxo enviado pelo servidor,

ou seja, é uma transmissão de um para vários;

• Mecanismo de Relay: Este mecanismo permite receber fluxo de um servidor e

enviá-lo para os clientes ou fazer relay para outro servidor de streaming aumentan-

do virtualmente o número de clientes que poderá aceder ao stream enviado.

• Playlists: O servidor permite a criação de listas de reprodução (playlist) de vídeo e

áudio. Isto pode ser o ideal para a criação de uma estação virtual de rádio ou tele-

visão.

• Streaming através da porta 80: O servidor permite enviar os streams de multimédia

usando os protocolos RTP e RTSP sobre UDP através da porta 80 conseguindo

servir clientes que se encontrem por detrás de uma firewall.

• Skip Protection: Conjunto de mecanismos desenvolvidos pela Apple com o objec-

tivo de melhorar a qualidade da entrega do conteúdo multimédia ao cliente. A lar-

gura de banda em excesso que eventualmente a rede possa oferecer, é utilizada

para enviar informação em avanço para um buffer no lado do cliente de modo a

absorver flutuações da disponibilidade da rede.

• Estrutura modular: O servidor apresenta uma estrutura de módulos que podem ser

instalados acrescentando funcionalidades ao sistema base do servidor.

Existe um pré-requisito que deve ser cumprido para o DSS funcionar correctamente. Aos

ficheiros MPEG-4 deve ser aplicada a técnica “Hinting” [22], realizada na codificação do

ficheiro, durante a qual o conteúdo multimédia é dividido em pequenos pacotes nos quais

se inclui a informação sobre a altura e a forma em que devem ser apresentados, ou neste

caso, enviados pelo servidor.

Page 46: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito
Page 47: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Capítulo 3

3 Arquitectura do sistema

Neste capítulo apresentam-se os requisitos e a arquitectura do sistema implementado dan-

do relevância às ferramentas necessárias para construir o sistema base.

3.1 Identificação dos requisitos e arquitectura

Com base no estudo efectuado na primeira fase do projecto em que se fez um levantamen-

to do estado da arte em termos de implementações, tecnologias e protocolos na área das

aplicações multimédia com gestão de direitos de autor, concluiu-se que o sistema a desen-

volver deveria adoptar uma arquitectura cliente-servidor.

Foram identificados os seguintes requisitos a ser satisfeitos por funcionalidade a imple-

mentar no servidor:

– Manutenção e gestão de um repositório de filmes;

– Manutenção e disponibilização de informação adicional descritiva (metadados)

sobre os filmes;

– Disponibilização de um serviço de streaming de vídeo;

– Identificação de clientes/utilizadores, mantendo registo dos seus perfis, preferências

e historial de utilização;

– Autorização de utilizadores para acesso ao sistema;

– Criação e manutenção de licenças associadas a filmes existentes no repositório;

– Emissão de licenças a clientes e gestão de licenças emitidas;

Assim, concluímos que seria necessária a configuração de um servidor capacitado com

uma aplicação de streaming de vídeo, uma base de dados e um servidor de HTTP/PHP.

Foi necessária ainda a instalação de um servidor Tomcat (JAVA) para a realização de um

estudo aprofundado acerca da criação de licenças de acordo com o DMP/Chillout, o

esquema de licenças a ser adoptado. Esse estudo passaria pela própria criação de licenças

adoptando alguns casos de utilização e cuja análise permitiu o estudo pormenorizado da

Page 48: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

24 CAPÍTULO 3: ARQUITECTURA DO SISTEMA

plataforma de criação de licenças. Esse estudo culminaria com o desenvolvimento de uma

nova aplicação com o mesmo objectivo do Chillout.

Do lado do cliente, concluiu-se que o sistema deveria ser o mais simples e versátil possí-

vel, devendo necessariamente suportar as seguintes funcionalidades:

– Existência de uma ligação de rede (Internet);

– Interface gráfica para permitir ao utilizador pesquisar o repositório remoto de fil-

mes, navegar na informação adicional sobre filmes seleccionados e indicar a sua

selecção ao servidor;

– Possibilidade de aquisição de uma licença para visionar os filmes seleccionados;

– Possibilidade de visualizar licenças adquiridas;

– Possibilidade de reproduzir os filmes seleccionados.

Atendendo a estas especificações desenhou-se a seguinte arquitectura:

Figura 9 – Arquitectura do sistema de Video on Demand a desenvolver

Como é possível ver na Figura 9, existem dois tipos de comunicação entre o cliente e o

servidor. Numa primeira fase o cliente, por intermédio do seu Web browser, realiza pedi-

dos HTTP ao servidor de modo a navegar pela aplicação Web desenhada em PHP. O PHP

será importante, pois no lado do servidor existe a comunicação entre a aplicação Web e a

base de dados instalada, contendo informações sobre os utilizadores e filmes, permitindo a

construção automática de páginas web de acordo com os pedidos dos utilizadores.

Page 49: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 3: ARQUITECTURA DO SISTEMA 25

Numa segunda fase, escolhido o conteúdo multimédia é possível estabelecer a comunica-

ção entre o software de reprodução do cliente e o DSS de forma a realizar o streaming

através do protocolo RTSP.

Após a implementação dos requisitos anteriormente apresentados, verificou-se a necessi-

dade de adoptar uma nova estratégia para a gestão dos direitos de autor para a reprodução

do conteúdo armazenado localmente. Essa estratégia está descrita no capítulo 5 e pressu-

põe as seguintes funcionalidades:

– Possibilidade de efectuar o download de um conteúdo digital presente no repositó-

rio remoto;

– Reprodução de um conteúdo digital armazenado localmente de forma legítima.

Para que as funcionalidades acima descritas possam ser implementadas torna-se necessária

a existência de um responsável pela verificação de licenças autorizando a reprodução de

um conteúdo. Assim, para que seja concedida a autorização, os dispositivos necessitam de

comunicar com o responsável que lhes é hierarquicamente superior. Esta arquitectura pode

ser replicada a vários níveis desde que exista sempre a delegação de responsabilidades a

um dispositivo hierarquicamente superior aos dispositivos que reproduzem o conteúdo.

Este cenário de super-distribuição acabaria por ser representado apenas ao primeiro nível,

tendo sido implementada um sistema baseado numa aplicação cliente residente capaz de

comunicar com o seu responsável, o servidor.

3.2 Configuração do Sistema Base

Nesta secção serão apresentados os procedimentos realizados com o objectivo de imple-

mentar um servidor capaz de fornecer as funcionalidades necessárias para suportar os

requisitos e serviços propostos. O trabalho aqui apresentado foi desenvolvido numa fase

inicial do projecto e permitiu apenas configurar a máquina que serviu como base de traba-

lho para este projecto.

Estes procedimentos apenas se aplicam ao servidor pelo que um cliente não necessita des-

te tipo de configurações.

3.2.1 O Sistema Operativo

O primeiro passo na instalação e configuração do servidor foi sem dúvida a escolha do

sistema operativo.

Havia duas opções de base, uma arquitectura Win32 ou Unix. Como é sabido os sistemas

operativos baseados em Win32 são orientados à usabilidade do utilizador, disponibilizan-

do ferramentas que permitem uma interacção agradável mas que comprometem a eficiên-

cia do processador. Os sistemas Linux, baseados em Unix, tendem a descurar a interacti-

Page 50: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

26

vidade apostando num processamento eficiente. São estas últimas ca

pretende e que são essenciais para um servidor, pelo que, se optou por esta arquitectura.

Escolhido assim o sistema operativo,

ções Linux. Dadas as experiências passadas e a actual uti

do Ubuntu, o que facilita a troca de experiências na resolução de problemas, a escolha

recaiu sobre o Ubuntu.

3.2.2 O Servidor Apache HTTP

A necessidade de proporcionar aos utilizadores uma interface com a maior disponibilidade

possível tornou indispensável implementar uma página web dedicada à utilização do se

viço. Deste modo, o passo seguinte foi a instalação de um servidor

Apache (Apache Server) [23] dado ser o

em 1995 por Rob McCool, então funcionário do NCSA (National Center for

ting Applications), Universidade de Illinois. Na última pesquisa efectuada

www.netcraft.com, em Dezembro de 2005, foi co

supera 60% de servidores activos no mundo, dado ser uma aplicação de código fonte abe

to. Descrevem-se de seguida os comandos usados para configurar e instalar este serviço

cuja versão é 2.0.55:

$ ./configure --prefix=/wwwroot

$ make

$ make install

$ /wwwroot/bin/apachectl start

Depois de instalado e iniciado o serviço

se-á verificar o seu funcionamento:

CAPÍTULO 3: ARQUITECTURA DO SIST

vidade apostando num processamento eficiente. São estas últimas características que se

pretende e que são essenciais para um servidor, pelo que, se optou por esta arquitectura.

Escolhido assim o sistema operativo, foi necessário optar por uma das variadas distribu

ções Linux. Dadas as experiências passadas e a actual utilização massiva da distribuição

do Ubuntu, o que facilita a troca de experiências na resolução de problemas, a escolha

O Servidor Apache HTTP

A necessidade de proporcionar aos utilizadores uma interface com a maior disponibilidade

ssível tornou indispensável implementar uma página web dedicada à utilização do se

viço. Deste modo, o passo seguinte foi a instalação de um servidor HTTP

dado ser o servidor web livre mais bem sucedido. Foi criad

em 1995 por Rob McCool, então funcionário do NCSA (National Center for

ting Applications), Universidade de Illinois. Na última pesquisa efectuada

etcraft.com, em Dezembro de 2005, foi comunicado que a utilização do

de servidores activos no mundo, dado ser uma aplicação de código fonte abe

se de seguida os comandos usados para configurar e instalar este serviço

prefix=/wwwroot --enable-so

/wwwroot/bin/apachectl start

instalado e iniciado o serviço como se descreve na última linha acima, poder

á verificar o seu funcionamento:

Figura 10 – Servidor HTTP

ARQUITECTURA DO SISTEMA

racterísticas que se

pretende e que são essenciais para um servidor, pelo que, se optou por esta arquitectura.

ecessário optar por uma das variadas distribui-

lização massiva da distribuição

do Ubuntu, o que facilita a troca de experiências na resolução de problemas, a escolha

A necessidade de proporcionar aos utilizadores uma interface com a maior disponibilidade

ssível tornou indispensável implementar uma página web dedicada à utilização do ser-

HTTP, neste caso da

servidor web livre mais bem sucedido. Foi criado

em 1995 por Rob McCool, então funcionário do NCSA (National Center for Supercompu-

ting Applications), Universidade de Illinois. Na última pesquisa efectuada pelo site

que a utilização do Apache

de servidores activos no mundo, dado ser uma aplicação de código fonte aber-

se de seguida os comandos usados para configurar e instalar este serviço

como se descreve na última linha acima, poder-

Page 51: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 3: ARQUITECTURA DO SISTEMA 27

3.2.3 O PHP

A interactividade que o serviço implica, obriga ao uso de páginas web dinâmicas que por

si só, o servidor Apache HTTP não implementa.

Entre as várias tecnologias que satisfazem o dinamismo pretendido escolheu-se o PHP

[24]. PHP é um acrónimo recursivo para "PHP: Hypertext Preprocessor", caracterizado

por uma linguagem de programação de computadores interpretada, livre e muito utilizada

para gerar conteúdo dinâmico na Web. Apesar de ser uma linguagem de fácil aprendiza-

gem e utilização em scripts dinâmicos, o PHP é uma linguagem poderosa orientada a

objectos cuja sintaxe é similar à linguagem C/C++ e PERL. A justificação para o uso do

PHP ao invés de outras linguagens com objectivos idênticos, como Java Applets, deveu-se

a experiências passadas com o PHP e C/C++.

Foi necessário, então, adicionar o módulo de processamento PHP ao servidor de Apache

HTTP cuja configuração e instalação se apresenta:

$ ./configure --prefix=/wwwroot/php --with-apxs2=/wwwroot/bin/apxs --

with-config-file-path=/wwwroot/php --with-pgsql

$ make

$ make install

Foram também adicionadas as seguintes linhas ao ficheiro /var/www/conf/httpd.conf:

(…) LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php (…)

$ /wwwroot/bin/apachectl restart

3.2.4 Base de Dados PostgreSQL

O PostgreSQL [25] é um sistema de gestão de base de dados (SGBD) inicialmente desen-

volvido na Universidade de Berkeley, Califórnia. A partir de 1996, o PostgreSQL, conso-

lidou-se como um projecto de código-fonte aberto desenvolvido por uma comunidade de

voluntários sob a coordenação do PostgreSQL Global Development Group. Além de doa-

ções, o projecto PostgreSQL é financiado pelo patrocínio de diversas empresas, entre as

quais se destacam: Fujitsu, Hub.Org, NTT Group, Red Hat, Skype, SRA e Sun Microsys-

tems.

O software tem adquirido prestígio na comunidade Linux, tendo recebido diversas vezes o

prémio Linux Journal Editor's Choice de melhor SGBD.

Esta é uma aplicação indispensável para a implementação do nosso serviço, possibilitando

guardar toda a informação relevante, como os dados dos utilizadores, suas preferências e

Page 52: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

28 CAPÍTULO 3: ARQUITECTURA DO SISTEMA

licenças. É ainda armazenada informação sobre os filmes que o serviço disponibiliza aos

utilizadores estando essa informação associada de acordo com as normas de TV-Anytime.

A instalação desta ferramenta, a qual já está configurada para trabalhar com o PHP, foi

conseguida com comando:

$ apt-get install php5-pgsql

3.2.5 O phpPgAdmin

O phpPgAdmin [26] traduz-se como uma interface gráfica para a gestão da base de dados

remotamente, via protocolo HTTP e apresentação dinâmica via PHP. Deste modo é possí-

vel realizar todas a funções sobre a base de dados de maneira intuitiva. A instalação e con-

figuração deste serviço implicam o uso dos seguintes comandos:

$ apt-get install phppgadmin

$ ln -s /usr/share/phppgadmin /var/www/

A aparência gráfica que esta ferramenta apresenta poder-se-á ver na imagem seguinte:

Figura 11 – Aparência gráfica do phpPgAdmin

3.2.6 Secure Shell

Secure Shell ou SSH é, simultaneamente, um programa de computador e um protocolo de

rede que permite a conexão com outro computador, de forma a executar comandos de uma

Page 53: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 3: ARQUITECTURA DO SISTEMA 29

unidade remota. Possui as mesmas funcionalidades do TELNET, com a vantagem da

conexão entre o cliente e o servidor ser encriptada.

O SSH faz parte da lista de protocolos TCP/IP que torna segura a administração remota de

um servidor Unix.

Para a implementação do SSH no servidor, foi usado o pacote OpenSSH disponível nos

repositórios do Ubuntu. A instalação e o arranque do servidor SSH são realizados através

dos seguintes comandos:

$ apt-get install openssh-server

$ sshd

É possível assim, aceder remotamente ao servidor para operações de manutenção ou

administração.

3.2.7 O servidor Tomcat

O Tomcat [27] é um servidor de aplicações Java para Web sendo distribuído como softwa-

re livre e desenvolvido como código-fonte aberto dentro do conceituado projecto Apache

Jakarta. É oficialmente apoiado pela Sun como a Implementação de Referência (RI) para

as tecnologias Java Servlet e JavaServer Pages (JSP). O Tomcat é robusto e eficiente tor-

nando possível a sua utilização em ambiente de produção. Tem ainda, a capacidade de

actuar como servidor web/HTTP, ou pode funcionar integrado com um servidor web dedi-

cado como o Apache HTTP.

Apesar de actualmente não desempenhar um papel relevante no serviço que disponibili-

zamos, foi fundamental para a compreensão do conceito de licença e como esta pode ser

gerada. A sua instalação deveu-se ao facto de nos termos baseado no projecto Chillout do

DMP, o qual tinha como interface para o LPD (License Provider Device) uma aplicação

Web em JSP.

O LPD foi utilizado como teste, gerando um número alargado de licenças e permitindo

uma análise detalhada sobre as mesmas, dando informações relevantes para desenvolver

um criador de licenças via PHP. Assim foi possível integrar o criador de licenças na apli-

cação Web que vinha a ser desenvolvida.

Deste modo, a interface que o Chillout propõe veio a tornar-se dispensável tal como o

serviço que o Tomcat oferece. Faz-se no entanto referência pois foi uma parte importante

no arranque deste projecto, como também foi um dos serviços cuja configuração e instala-

ção consumiu mais tempo. Este serviço pressupõe a existência de uma consola de JAVA.

A instalação do Tomcat:

$ tar -zcvf apache-tomcat-6.0.13.tar.gz /usr/share/tomcat6/

De seguida é necessário editar os seguintes ficheiros, cuja configuração se apresenta:

Page 54: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

30 CAPÍTULO 3: ARQUITECTURA DO SISTEMA

/etc/apache2/workers.properties:

# Define 1 real worker using ajp13 worker.list=worker1 # Set properties for worker1 (ajp13) worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port=8009

/etc/apache2/httpd.conf:

# Load mod_jk module LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so # Where to find workers.properties JkWorkersFile /etc/apache2/workers.properties # Where to put jk logs JkLogFile /var/log/apache2/mod_jk.log # Set the jk log level [debug/error/info] JkLogLevel info # Select the timestamp log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " # Send everything for context /examples to worker named worker1 (ajp13) JkMount /examples/* worker1

Após este procedimento, basta colocar a Servlet no directório /usr/share/tomcat6/webapps

e de seguida usar a interface de gestão via browser para iniciar o serviço.

3.2.8 O Axis

O Apache Axis [28] é uma framework de código-fonte aberto, suportado pela Apache

Software Foundation e baseado na linguagem JAVA e no padrão XML. Este projecto sen-

do uma implementação do protocolo SOAP, é utilizado para construção de serviços Web

possibilitando a criação de aplicações distribuídas em Java.

O LPD dependia desta framework pelo que a sua instalação foi indispensável. A instalação

é de procedimento fácil pelo que, depois de realizar o download do seu repositório no pro-

jecto Apache, basta extrair os ficheiros no directório /usr/share/tomcat6/webapps. De

seguida executar o seguinte comando:

$ cp -R /usr/share/tomcat6/webapps/axis/WEB-INF/lib /usr/share/tomcat6/lib

Por fim basta iniciar o serviço como havia sido descrito no ponto anterior.

3.2.9 O LPD

O LPD, License Provider Device, foi uma interface desenvolvida no âmbito do projecto

Chillout do DMP (Digital Media Project) cuja finalidade se enquadra com a criação de

licenças para conteúdos digitais. A sua instalação pressupõe, como anteriormente, a cópia

dos ficheiros do Chillout_LPD para o directório /usr/share/tomcat6/webapps/ e de seguida

o arranque do serviço através da interface de gestão via web browser.

Page 55: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 3: ARQUITECTURA DO SISTEMA 31

3.2.10 O Darwin Streaming Server

Decidiu-se utilizar como servidor de streaming, o Darwin Streaming Server V5.5.4. Os

ficheiros binários para instalação foram adquiridos na página http://developer.

apple.com/opensource/server/streaming/index.html assim como toda a documen-

tação relativa à instalação, configuração e administração do servidor.

De seguida apresentam-se os comandos para instalação e configuração do servidor de

streaming. Os comandos apresentados pressupõem a existência do ficheiro DarwinStrea-

mingSrvr5.5.5-Linux.tar.gz já no servidor.

$ tar -zcvf DarwinStreamingSrvr5.5.4-Linux.tar.gz /tmp/DDS/

$ cd /tmp/DDS

$ ./Install

Após a execução destes comandos o servidor encontra-se instalado no sistema, resta ape-

nas arrancar o serviço e ajustar as configurações. Para iniciar o servidor é necessário exe-

cutar o seguinte comando:

$ streamingadminserver.pl

Após este passo, o servidor Darwin é iniciado e, para além disso, é lançado uma aplicação

web em Perl que permite a administração do servidor. Para aceder a essa aplicação é

necessário estabelecer uma ligação HTTP no porto 1220 da máquina que hospeda a apli-

cação. Através da aplicação web é possível alterar as configurações do servidor, como

permitir ou inibir fluxo na porta 80, definir o número máximo de utilizadores simultanea-

mente, a largura de banda máxima fornecida, o caminho para o repositório de filmes ou

alterar o método de autenticação entre outros. A aplicação permite também obter informa-

ções sobre os clientes conectados a um conteúdo audiovisual no servidor assim como

conhecer estatísticas sobre o servidor e controlar o seu estado.

O servidor está automaticamente configurado para escutar pedidos RTSP no porto 554 e

poderá ser configurado para permitir o fluxo de dados através do porto 80 para ultrapassar

possíveis problemas com firewalls.

O repositório dos conteúdos digitais está automaticamente integrado na estrutura do servi-

dor, ou seja, é um directório instalado por defeito em usr/local/movies/ ao qual o ser-

vidor acede quando lhe é feito um pedido de streaming. O directório poderá ser alterado

ou mesmo acrescentados novos directórios dentro desde directório principal, sendo parti-

cularmente útil para a organização dos conteúdos dentro do repositório do servidor.

Page 56: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito
Page 57: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Capítulo 4

4 Sistema baseado em Aplicação Web

Uma importante parte do projecto foi dedicada ao desenvolvimento de uma aplicação cuja

interface é acessível via web através de um browser. Pretende-se com esta interface pro-

porcionar aos utilizadores uma espécie de portal para que estes possam procurar o conteú-

do desejado, criar licenças relacionadas com esse mesmo conteúdo e por fim visualizá-lo

de forma intuitiva e transparente.

4.1 O Servidor

No contexto da arquitectura do servidor podemos definir vários módulos importantes para

a criação de um sistema seguro e fiável. Como é possível ver na Figura 12, esses módulos

são a aplicação VoD, a Base de dados, um driver para a conexão entre estes dois últimos e

o servidor de streaming.

Figura 12 – A arquitectura do Servidor

Page 58: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

34 CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB

Nesta secção serão apresentadas as tecnologias utilizadas para a criação destes diferentes

módulos.

Para a aplicação VoD serão apresentadas as tecnologias (4.1.1) que levaram à criação de

uma aplicação web, tal como os aspectos mais importantes do seu dimensionamento.

Esses aspectos englobam os tipos de utilizador (4.1.2), o mapa da aplicação (4.1.3) e o

motor de criação de licenças (4.1.4).

Ainda nesta secção haverá lugar para a apresentação da base de dados criada (4.1.5).

4.1.1 As tecnologias utilizadas

Para a concretização dos objectivos propostos para esta aplicação, recorreu-se a tecnolo-

gias para criação de páginas web dinâmicas, que permitam a interacção com uma base de

dados para o suporte da informação relativa ao projecto. Foram usadas as linguagens de

programação HTML, Smarty e PHP, e o driver Pear que permite a conexão entre o PHP e

a base de dados PosgreSQL. Nas secções seguintes serão detalhadas cada uma destas tec-

nologias, excepto o PHP já mencionada e explicada.

4.1.1.1 HTML

O HTML é uma linguagem de marcação para a descrição de hipertexto usada na criação

de páginas web. É assim possível descrever, por texto, a estrutura da informação catalo-

gando determinado texto como títulos, parágrafos, listas, etc. Possibilita também a criação

de formulários interactivos e a disposição de imagens ou outros objectos enquadrados no

texto.

O HTML é escrito na forma de etiquetas delimitadas pelo sinal menor (<) e sinal maior

(>) e descreve também a aparência e a semântica de um documento.

Com esta linguagem definimos um modelo de apresentação para a aplicação o web com-

plementada na sua semântica pelo uso das tecnologias Smarty e PHP.

4.1.1.2 Smarty

O Smarty é um sistema para a criação de modelos para páginas web desenvolvido em

PHP. Tem a vantagem de separar o código PHP (orientado a criação de funções) do

HTML (orientado à criação de modelos de apresentação) com a criação de um modelo de

apresentação HTML com marcas próprias (Smarty Tag) delimitadas pelo sinal dólar ($).

Estas marcas podem representar variáveis ou funções que permitem aos programadores de

PHP definir funções ou variáveis cujo valor será mais tarde substituído pelas marcas do

Smarty. Esta independência entre as linguagens criada pelo Smarty permite que um desig-

ner não esteja dependente do código PHP e um programador de PHP não esteja dependen-

te do modelo de apresentação.

Page 59: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB 35

Depois de criado o modelo HTML com as marcas Smarty, estas últimas tomariam valores

retirados da base de dados através do PHP permitindo a criação de páginas web dinâmicas

à medida do pedido do utilizador.

4.1.1.3 Pear

PEAR MDB2 é uma junção das camadas de abstracção dos pacotes PEAR DB e META-

BASE PHP. Proporciona uma API para os Sistemas de Gestão de Base de Dados Relacio-

nais, caso do PostgreSQL usado neste projecto. A principal diferença em relação a Maio-

ria dos pacotes de abstracção de base de dados é que o MDB2 suporta melhor a portabili-

dade.

Usada a API disponibilizada por este pacote é possível através do PHP inquirir a base de

dados recolhendo a informação relevante para o tratamento dos pedidos de cada utilizador.

4.1.2 Os tipos de utilizador

Definiram-se quatro tipos de utilizador os quais possuem permissões com níveis diferen-

ciados de interacção com a aplicação.

O Utilizador Não Registado têm um controlo reduzido sobre a aplicação, tendo apenas a

possibilidade de listar e pesquisar conteúdos.

O Utilizador Registado, para além das possibilidades já descritas para o tipo de utilizador

anterior, tem também a permissão para reproduzir os conteúdos disponibilizados, comprar

ou renovar uma licença associada a um conteúdo, fazer o download das suas licenças,

definir preferências por categorias de filme, género, actor, realizador, língua ou legenda e

por fim editar os seus dados pessoais, bem como modificar a sua senha.

Existe também um Super Utilizador o qual é visto como um Utilizador Registado com

permissões alargadas. Estas permissões prendem-se com a possibilidade de alterar a

informação na base de dados, como adicionar, editar ou remover filmes, actores, realiza-

dores, distribuidores.

O Administrador tem total controlo sobre a aplicação, e além de todos os tipos de acções

já definidas para outros utilizadores, é-lhe dada a possibilidade de delegar um Super Utili-

zador, bem como fazer a gestão da base de dados de clientes.

4.1.3 O mapa da aplicação Web

Nesta secção encontra-se descrito o mapa da aplicação web e a sua navegabilidade. A des-

crição gráfica da arquitectura está ilustrada na Figura 19, a qual passaremos a explicar.

Assim, o painel de controlo encontra-se dividido em sete grandes grupos, estes são:

• Home – Referencia a página de entrada da nossa aplicação, a qual apresenta uma

breve descrição do nosso projecto e os últimos conteúdos inseridos na base de

dados. No caso de o utilizador ter o seu login realizado, oferecemos também algu-

Page 60: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

36 CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB

mas sugestões de conteúdos de acordo com as suas preferências previamente inse-

ridas na sua área pessoal. Se o utilizador não tiver ainda qualquer preferência asso-

ciada, será convidado a fazê-lo.

• Filmes – Este menu permite ao utilizador listar todos os filmes que constam na

base de dados ou usar o motor avançado de pesquisa parametrizando-o de acordo

com as suas necessidades. Qualquer uma das opções escolhidas apresenta ao utili-

zador uma lista constituída por um ou vários nomes de filmes ao qual chamamos

“Item Filme”. Este Item Filme, por sua vez, é uma ligação para uma descrição mais

pormenorizada do filme, oferecendo também este último, ligações para descrições

pormenorizadas de cada um dos actores, realizador ou mesmo o distribuidor. É

também dada ao utilizador a opção para este ver o filme, no entanto, esta só se

concretiza se existir uma licença válida para esse filme, associada ao utilizador em

questão. Caso não exista uma licença que satisfaça os requisitos acabados de enun-

ciar é apresentada ao utilizador a hipótese de comprar ou renovar a sua licença. Por

último, no caso de um administrador ou de um super utilizador, são apresentadas

as opções para adicionar um filme ou características. Este último submenu reparte-

se por adicionar um novo género, tipo de cor, parental rating ou aspect ratio.

Figura 13 – Menu Filmes presente na aplicação Web

• Actores – Esta opção permite listar o nome dos actores que constam na base de

dados. Cada nome de actor, “Item Actor”, é uma referência a uma página com

informação detalhada sobre esse mesmo actor, a qual apresenta também referen-

cias aos filmes presentes na base de dados em que esse actor representou. Cada um

dos filmes é considerado um “Item filme”, pelo que é válido o que foi dito sobre

este item. No caso de um administrador ou super utilizador, mais uma vez, é apre-

sentada a opção de adicionar um novo actor à base de dados.

Page 61: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB 37

Figura 14 – Menu Actores presente na aplicação Web

• Realizadores – Este menu comporta-se do mesmo modo acima descrito para o

menu actores, mas neste caso, os objectos com que se interage são os realizadores.

Também neste caso, existe uma lista de “Itens Realizador” em que cada item é

uma ligação a uma página detalhada sobre esse realizador com referência aos fil-

mes presentes na base de dados já realizados. Cada um dos filmes é considerado,

novamente, um “Item filme”.

Figura 15 – Menu Realizadores presente na aplicação Web

• Distribuidores – Novamente a estrutura mantém-se como nos dois menus anterio-

res, pelo que não é necessário repetir toda a informação. Salienta-se apenas que

neste caso a informação incide sobre os distribuidores de filmes.

Figura 16 – Menu Distribuidores presente na aplicação Web

Page 62: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

38 CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB

• Licenças – Neste caso, existe uma referência a uma página de informações sobre

licenças na qual explicamos ao utilizador o que significa, para que servem e a

necessidade da sua aplicação.

Figura 17 – Menu Licenças presente na aplicação Web

• Área Pessoal – Este menu é privado e define a informação associada a cada um dos

utilizadores registados. Só é visível para utilizadores que tenham efectuado o seu

login no sistema, possibilitando-lhes a definição das suas preferências em relação

aos actores, realizadores, filmes, géneros, língua ou mesmo legendas. Estas prefe-

rências servem como base a um algoritmo que oferecem sugestões sobre conteúdo

ao utilizador, as quais podem ser consultadas na opção Sugestões deste mesmo

menu. Ainda neste menu, é possível ao cliente editar os seus dados pessoais, como

Nome, Data de Nascimento, Email e modificar a sua password. O último submenu

disponível é referente às licenças que o utilizador possui, podendo consultar e veri-

ficar o estado de cada licença.

Figura 18 – Menu referente à Área Pessoal do utilizador na aplicação Web

Page 63: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB 39

• A última referência não se identifica propriamente com um menu mas sim com

uma ligação que consta no site a todo o instante. Esta ligação permite aos utiliza-

dores efectuar o download do programa de instalação do VoD Client. Esta ferra-

menta será apresentada mais à frente neste documento e permite fazer a gestão das

licenças para conteúdo localmente armazenado.

Na Figura 19 apresenta-se o mapa completo da aplicação Web. Nesse mapa é possível

identificar as ligações entre as várias secções da aplicação através dos itens coloridos.

Cada item colorido referencia o item do menu principal onde este se encontra incluído.

É ainda possível verificar quais as permissões necessárias para poder visualizar as páginas

privadas. Essas permissões podem ser permissões de Administrador, Super-User ou de

todos os utilizadores que tenham efectuado login e estão indicadas a vermelho por baixo

das páginas privadas. A identificação das páginas privadas é assim efectuada pela presen-

ça de permissões a vermelho por baixo do seu nome.

Page 64: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

40 CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB

Figura 19 – Estrutura da navegabilidade da Interface Web

Page 65: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB 41

4.1.4 A Criação das Licenças

Dada a análise preliminar sobre plataformas para criação de licenças, optou-se, numa pri-

meira fase, por usar o LPD do Chillout. Concluímos, mais tarde, que seria trivial imple-

mentar as rotinas do LPD evitando assim a integração de dois sistemas distintos. Deste

modo, elaboramos um pequeno programa que gera o mesmo output do LPD, ou seja, um

ficheiro XML que representa uma licença.

A interface que o LPD proporciona tem como parâmetros de entrada um Utilizador, o URI

para conteúdo, um direito, uma ou várias condições e o distribuidor.

Figura 20 - A interface do LPD

Como é fácil deduzir, não poderíamos dar permissão a um utilizador para inserir todos

estes parâmetros, até porque alguns deles poderiam estar já previamente definidos. Isto é,

apenas um utilizador registado e identificado poderá criar licenças, sendo que o parâmetro

Utilizador fica desde logo definido, evitando com isto dar oportunidade a um utilizador de

criar uma licença em nome de outro. Outro caso a salientar é o direito sobre o conteúdo,

que numa aplicação de streaming apenas será adequado o direito de reproduzir.

Figura 21 - Direito para Reproduzir

O URI para conteúdo também é inserido automaticamente devido ao facto de ser gerado

pela aplicação garantindo assim que seja único. O parâmetro distribuidor, o qual varia

com o conteúdo escolhido, é também inserido automaticamente pois está inserido na base

Page 66: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

42

de dados e directamente relacionado com o c

Restam apenas as condições, fazendo claro sentido ser o utilizador a especificar que co

dição pretende para a sua licença bem como os limites associados a essa condição. Pode

se ver um exemplo das decisões que

Figura 22 - Exemplo de uma combinação definida pelo utilizador

Apresenta-se de seguida na Figura 23

permitindo criar uma licença. Neste ca

com o direito de reprodução e tod

Figura 23

CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB

de dados e directamente relacionado com o conteúdo para o qual se está a criar a licença

apenas as condições, fazendo claro sentido ser o utilizador a especificar que co

pretende para a sua licença bem como os limites associados a essa condição. Pode

se ver um exemplo das decisões que o utilizador pode tomar na Figura 22.

Exemplo de uma combinação definida pelo utilizador

se de seguida na Figura 23, a interface completa disponibilizada

permitindo criar uma licença. Neste caso cria-se uma licença para o filme

e todas as condições seleccionadas.

23 – Interface para a criação de licenças

PLICAÇÃO WEB

onteúdo para o qual se está a criar a licença.

apenas as condições, fazendo claro sentido ser o utilizador a especificar que con-

pretende para a sua licença bem como os limites associados a essa condição. Pode-

Exemplo de uma combinação definida pelo utilizador

disponibilizada ao utilizador

se uma licença para o filme O meu vídeo

Page 67: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB 43

A aplicação, através dos dados introduzidos pelo utilizador, cria a licença e introduz a sua

informação na base de dados. Pode ver-se parte do seu código do excerto seguinte.

(…) // Verifica o direito sobre o conteúdo escolhido if($right == NULL) $right='play'; else

$errors['right']=TRUE; // Verifica se a condição do tipo limite de utilização foi seleccionada // Verifica ainda se existe algum erro no valor do número de utilização if($limit == "checkbox"){

$countlimit='TRUE'; if($countLimit < 1 or !ctype_digit($countLimit)) $errors['countLimits'] = FALSE; else $errors['countLimits']=TRUE; } else { $countlimit='FALSE'; $countLimit=0; } // Verifica se a condição do tipo intervalo de tempo foi seleccionada // Verifica ainda se existe algum erro nos valores inseridos pelo // utilizador para o intervalo de validade if($time == "checkbox"){ $validityinterval='TRUE'; if($notbefore==NULL or !is_valid_date($notbefore)) $errors['notbefore']=FALSE; else $errors['notbefore']=TRUE; if($notafter==NULL or !is_valid_date($notafter)) $errors['notafter']=FALSE; else $errors['notafter']=TRUE; } else { $validityinterval='FALSE'; $notbefore=date("Y-m-d"); $notafter=date("Y-m-d"); } // Verifica se a condição do tipo território de validade // foi seleccionada // No caso de este tipo de condição estiver seleccionada verifica se os // campos país e região não estão vazios if($territory == "checkbox"){ $validityregion='TRUE'; if($countryList==NULL) $errors['countryList']=FALSE; else $errors['countryList']=TRUE; } else $validityregion='FALSE'; (…)

Page 68: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

44 CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB

// Se o utilizador ainda não possuir uma licença para este filme // insere uma nova licença na base de dados if($license === false){ // Gera um URI único para a licença criada $uri=generateURI($_SESSION["s_username"],$id); // Preenche os vários campos a incluir na licença $filme=getIssuesInfo($id); $grant_keyname=$_SESSION["s_username"]; if(!empty($filme['nome'])) $issuer_keyname=$filme['nome']; else $issuer_keyname='VoD'; // Adiciona a licença na base de dados addLicense($uri,$grant_keyname,$issuer_keyname,$countLimit,$right, $countryList,$regionList,$notbefore,$notafter,$countlimit, $validityregion, $validityinterval,$id); // A variável de sessão seguinte indica que é possível enviar o URL // do filme ao utilizador $_SESSION["s_granted"]="TRUE"; header("location: verFilme.php?id=$id"); exit(); } (…)

A aplicação, através dos dados introduzidos pelo utilizador, cria uma licença no formato

XML com o nome produzido através da associação entre o nome de utilizador e o filme

para o qual a licença é gerada sendo ainda acrescentada uma marca temporal da altura em

que é efectuado o download da licença. Passa-se a transcrever o conteúdo do ficheiro

vhsb_O meu video_1182869858.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:license xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:ns2="http://www.w3.org/2001/04/xmlenc#" xmlns:ns3="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:ns4="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:ns5="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:ns6="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:ns7="urn:mpeg:mpeg21:2006:01-REL-DACX-NS"> <ns3:grant> <ns3:keyHolder> <ns3:info> <KeyName>vhsb</KeyName> </ns3:info> </ns3:keyHolder> <ns6:play/> <ns3:digitalResource> <ns3:nonSecureIndirect URI="vhsb:1182869272:34"/> </ns3:digitalResource> <ns3:allConditions> <ns4:exerciseLimit> <ns4:count>14</ns4:count> </ns4:exerciseLimit>

Page 69: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB 45

<ns4:territory> <ns4:location> <ns4:country xmlns:iso="urn:mpeg:mpeg21:2003:01-REL-SX-NS:country">iso:PT</ns4:country> <ns4:region xmlns:iso="urn:mpeg:mpeg21:2003:01-REL-SX-NS:region">iso:PT-13</ns4:region> </ns4:location> </ns4:territory> <ns3:validityInterval> <ns3:notBefore>2007-07-03</ns3:notBefore> <ns3:notAfter>2007-07-18</ns3:notAfter> </ns3:validityInterval> </ns3:allConditions> </ns3:grant> <ns3:issuer> <ns3:keyHolder> <ns3:info> <KeyName>MGM</KeyName> </ns3:info> </ns3:keyHolder> </ns3:issuer> </ns3:license>

Tal como é possível ver na transcrição do ficheiro XML, o URI possui um valor único

gerado pela aplicação. Esse valor é criado através da associação do nome do utilizador a

uma marca temporal da altura em que a licença é gerada e também ao identificador do

filme na base de dados.

Pode ainda verificar-se no ficheiro em XML que o número de vezes que o cliente pode

visualizar o filme é catorze e não quinze como especificado na criação da licença. Isto

verifica-se porque depois de criar a licença o utilizador é redireccionado para a página que

permite a visualização do filme descontando na base de dados o número de vezes que ain-

da pode ver.

4.1.5 A Base de Dados

A base de dados é um suporte indispensável a qualquer aplicação. Nesta secção serão

apresentados alguns dos descritores usados que se figuram mais importantes e que acha-

mos essencial detalhar. As tabelas completas que constituem a base de dados serão descri-

tas no anexo A.

4.1.5.1 Descritores TV-Anytime

O Fórum TV-Anytime [29] é uma associação que procura desenvolver especificações para

permitir que conteúdo audiovisual tal como outros serviços de volume de armazenamento

digital elevado, cheguem até às plataformas do utilizador.

Este grupo teve início em Newport Beach, California, USA, entre 27 e 29 de Setembro de

1999 e as primeiras especificações foram publicadas pelo European Telecommunications

Standards Institute (ETSI) a 1 de Agosto de 2003 com a norma TS 102 822-1 'Broadcast

Page 70: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

46 CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB

and On-line Services: Search, select, and rightful use of content on personal storage sys-

tems ("TV-Anytime")'.

O fórum conta com a participação de mais de 60 instituições entre as quais se destacam

nomes como Sony, Panasonic, LG, Samsung, Sharp, Toshiba, BBC, Disney, EBU, France

Telecom, Nokia, Philips, Thomson, Motorola e Microsoft.

O seu trabalho de normalização visa atingir quatro objectivos:

1. Desenvolver especificações que permitam às aplicações tirar partido do armaze-

namento local nas plataformas electrónicas do consumidor.

2. Ser imparcial quanto ao meio de transmissão para entrega de conteúdo no equipa-

mento electrónico de consumidor, seja ele ATSC, DVB, DBS, Internet, Enhanced

TV ou outro.

3. Desenvolver especificações para a interoperabilidade e integração de sistemas des-

de o criador/fornecedor, através dos fornecedores de serviço, até aos consumido-

res.

4. Especificar as estruturas de segurança necessárias para proteger o interesse de

todas as partes envolvidas.

Dado o trabalho de normalização realizado por este fórum foi considerado interessante o

uso das especificações aconselhadas. Assim, no seguimento do projecto e pela altura de

definir a base de dados, recorreu-se aos documentos publicados por este grupo de modo a

elaborar uma base de dados o mais normalizado possível. Encontraram-se, no entanto,

especificações demasiado pormenorizadas e que, em muitos casos, não se adequavam no

âmbito deste projecto pelo que foram escolhidos os descritores mais apropriados. Cons-

truiu-se assim uma base de dados mais simplificada em concordância com as necessidades

do trabalho e de acordo com especificações normalizadas.

Os descritores TV-Anytime usados serão apresentados de seguida:

Tabela 2 - Descritores básicos do TV-Anytime

Basic Description Estrutura que define os descritores normalizados para um

programa.

Title Título do programa.

Synopsis Descrição textual do programa.

Keyword

Lista de palavras-chave para o programa. A palavra-

chave pode ser uma única palavra ou uma frase inteira

composta por várias palavras.

Genre Género do programa.

Page 71: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB 47

Parental Rating Controlo parental para o programa definindo a idade

mínima para o programa.

Production Year Ano em que o programa foi produzido.

Production Country Pais no qual o programa foi produzido. É definido pelo

código ISO de cada país.

Creation Location Localização na qual o programa foi criado.

Creation Date Data de criação do programa.

Language Linguagem do programa. Pode existir mais do que uma

linguagem para o programa.

Cast List Lista do elenco associado ao programa.

Tabela 3 – Descritores de atributos técnicos

AV Technical Attributes Estrutura, a qual define os descritores que elementa-

res dos atributos técnicos do áudio e vídeo.

File Format Descrição do formato do ficheiro do programa.

File Size Indicação do tamanho, em bytes, do programa no

local de armazenamento.

Bit Rate Indicação da taxa de débito binário (bit/s) do pro-

grama.

Audio Attributes Type Estrutura para a descrição das características do

áudio.

Coding Formato de codificação do áudio.

Num Of Channels Número de canais áudio.

Video Attributes Type Estrutura que define os elementos para a descrição

das características do vídeo.

Coding O formato de codificação do vídeo.

Scan O tipo de varrimento do vídeo.

Horizontal Size Tamanho horizontal em pixéis do vídeo.

Vertical Size Tamanho vertical em pixéis do vídeo.

Aspect Ratio O aspect ratio do vídeo.

Color O formato de cor do vídeo (ex. preto e branco)

Page 72: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

48 CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB

Aspect Ratio Type Texto que permite descrever de forma simples o

aspect ratio na forma 'h:v', onde h e v representam

as dimensões horizontal e vertical respectivamente.

4.1.5.2 Outros descritores usados

Além dos descritores já apresentados do TV-Anytime, foram usados outros mais, indis-

pensáveis à gestão de utilizadores bem como a outras funcionalidades que desejamos

implementar. A estrutura completa da base de dados poderá ser consultada no Anexo A

mas far-se-á no entanto uma breve explicação das tabelas mais importantes da base de

dados.

As tabelas A1, A3 e A12 do anexo A contêm informação básica sobre um actor, um reali-

zador e um distribuidor respectivamente.

A tabela A7 é usada para associar fotos presentes na base de dados com o actor a que cor-

respondem. Já a tabela A8, tem a mesma função, mas agora, associando um poster/cartaz a

um filme.

A tabela A16 é a de maior importância no âmbito do nosso projecto e que resume a sua

essência. Prende-se com a representação de uma licença e de todos as variáveis que a

constituem que passaremos a descriminar:

• URI: esta variável guarda um identificador, único, o qual indexa de forma inequí-

voca a licença. É gerado tendo em conta o conteúdo para o qual a licença é gerada,

o utilizador que requer a licença e a data/hora em que esta é gerada.

• Grant_KeyName: identifica o utilizador que fez o requerimento da licença para

determinado conteúdo.

• Issuer_KeyName: identifica o distribuidor do conteúdo para o qual a licença é

gerada.

• Count: armazena o número de vezes que o filme pode ser reproduzido no caso de

esta licença ter uma condição de limite de utilização.

• Content_Right: esta variável representa o direito que a licença possibilita ao utili-

zador para actuar sobre o conteúdo, por exemplo, editar, imprimir ou reproduzir,

etc.

• Country: representa o país onde pode ser executado um direito sobre um conteúdo

no caso de existir uma condição do tipo região de validade.

• Region: representa uma região dentro de determinado país, mantendo-se o caso

descrito anteriormente.

• NotBefore: variável representativa da data anterior à qual o direito não pode ser

executado sobre o conteúdo, quando existe uma condição de validade num interva-

lo de tempo.

Page 73: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB 49

• NotAfter: o mesmo que o anterior, representando no entanto, a data limite depois

da qual o direito sobre o conteúdo não pode ser executado.

• CountLimit: variável booleana que define a existência de uma condição de limite

de utilização sobre o conteúdo.

• ValidityRegion: também uma variável booleana definindo agora a existência de

uma condição de região de validade.

• ValidityInterval: o mesmo tipo de variável descrevendo a existência de uma condi-

ção do tipo validade num intervalo de tempo.

• ID_Media: identificador do filme ao para o qual a licença foi gerada.

A tabela A17 é uma aplicação dos descritores TV-Anytime, contendo dois outros campos,

representando a localização do ficheiro no disco e imagem do poster/cartaz associado.

Na tabela A18 são armazenados os dados relevantes de cada utilizador justificando-se

assim a sua utilização:

• Login: o nome que o utilizador define e usa para se identificar na nossa aplicação.

• User_Type: define o nível de permissões que o utilizador tem na sua interface com

a aplicação.

• PNome: primeiro nome do utilizador

• UNome: último nome do utilizador.

• Email: correio electrónico do utilizador, o qual necessita ser válido para o envio de

um código de activação. Só depois de activo é que o utilizador pode aceder ao sis-

tema.

• Data_Nascimento: data de nascimento do utilizador. Pode ser utilizada, por exem-

plo, para verificar o parental rating permitindo ao utilizador o acesso ou não ao

conteúdo. Esta funcionalidade não está implementada mas poderá ser desenvolvida

no futuro.

• Activated: variável booleana que indica se o utilizador já activou o seu registo.

• MD5Activation: código de activação gerado para o utilizador.

• Password: a senha do utilizador.

As tabelas A20 a A29 apenas evidenciam a relação entre as várias tabelas que constituem

a base de dados, não contendo no entanto informação relevante.

4.2 O Cliente

A abordagem web permite uma fácil organização do lado do cliente. Como é possível ver

na Figura 24, tudo o que cliente necessita para aceder à aplicação, sem qualquer tipo de

restrição, é um browser e um reprodutor multimédia.

Page 74: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

50 CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB

Figura 24 – A arquitectura no lado Cliente

4.2.1 O Browser

Possuir um browser é condição essencial para poder aceder à aplicação criada. O utiliza-

dor que pretende usufruir da totalidade dos serviços terá que ter instalado esse aplicativo

no seu terminal de acesso à Internet. Existem vários browsers disponíveis como o Internet

Explorer, Mozilla Firefox, Safari e Opera entre outros. No entanto, o design da aplicação

foi optimizado para o Mozilla Firefox pelo que aconselhamos o seu uso.

4.2.2 O Reprodutor MPEG-4

Outra condição essencial para a utilização do serviço que este projecto oferece é possuir

um reprodutor multimédia equipado com o descodificador MPEG-4, ou com capacidade

para reproduzir este tipo de ficheiros. O Windows Media Player tem esta capacidade, no

entanto, todos os testes foram realizados utilizando o QuickTime Player. Aconselhamos o

uso deste último por ser o programa aconselhado pela Apple, empresa que desenvolveu o

Darwin Streaming Server, a aplicação usada para fazer o streaming do vídeo.

4.3 A conexão ao servidor de streaming

O trabalho realizado pelo DMP parte de um pressuposto que o terminal é fiável, pelo que

não seria possível ao utilizador alterar os mecanismos de acesso estabelecidos. No entanto

sabe-se que actualmente não existe um terminal que satisfaça este pressuposto pelo que

foram implementadas algumas rotinas de segurança.

Depois de uma análise das capacidades do DSS verificou-se que este implementava con-

trolo de acesso. No entanto, um utilizador registado na base de dados do DSS, de forma

Page 75: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB 51

permanente, poderia reproduzir qualquer conteúdo que este disponibilize, independente-

mente de possuir ou não licença para essa reprodução, onde o único requisito seria saber

qual o URL para o conteúdo.

Descreve-se um caso real da sua utilização indevida: um utilizador compra uma licença de

limite de reprodução para uma única utilização. Decide então reproduzir o conteúdo, pelo

que recebe o URL desse conteúdo e visualiza-o. Após esta reprodução a sua licença expira

pelo que esse utilizador não poderá voltar a reproduzir o conteúdo. Constatou-se que ape-

sar disso, se o utilizador estivesse registado na base de dados, como possui o URL para o

conteúdo, poderia sempre visualizá-lo.

Para combater esta possível falha desenvolveu-se um sistema de protecção que se caracte-

riza por, registar o utilizador que pretende aceder ao conteúdo na base de dados do DSS,

apenas por 60 segundos. Deste modo, o utilizador pode aceder ao DSS com o seu nome de

utilizador e a sua senha nos 60 segundos após ter requerido determinado conteúdo para o

qual tinha licença. Após ter expirado essa temporização o registo é removido pelo que não

poderá voltar a aceder ao DSS a não ser que requisite de novo o filme.

A implementação desta solução obrigou à criação de um ficheiro com o nome “qtaccess”

no directório que alberga o repositório de filmes, no caso, /usr/local/movies/ e cujo con-

teúdo se representa de seguida:

<Limit WRITE> require user adminis </Limit> AuthName "Ver Filme" AuthUserFile /etc/streaming/qtusers AuthGroupFile /etc/streaming/qtgroup require user vod require group require valid-user

Foi necessária também a alteração do ficheiro /etc/sudoers possibilitando à aplicação web,

via PHP, executar comandos do sistema sem qualquer tipo de restrição. Esses comandos

são necessários para o registo de utilizadores na base de dados do DSS e a sua remoção

após a expiração do tempo de login. Salientam-se as alterações feitas no ficheiro referen-

ciado:

(…) www-data ALL=NOPASSWD: /usr/local/bin/qtpasswd, /bin/cp, /bin/mkdir, /usr/sbin/sendmail

(…)

As instruções que permitem adicionar e remover o par utilizador e a sua password à base

de dados do DSS apresentam-se respectivamente:

Page 76: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

52 CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB

(…) function addUser($username,$pass) { $output=shell_exec("sudo qtpasswd ".$username." -p ".$pass); } function removeUser($username) { $output=shell_exec("sudo qtpasswd -F -d ".$username); } (…)

Esta foi uma solução encontrada, que sabemos não ser ideal, mas dado o tempo disponibi-

lizado foi a possível. No entanto foram pensadas outras soluções as quais serão apresenta-

das no capítulo de Perspectivas de Desenvolvimento Futuro que poderão colmatar algu-

mas deficiências desta opção.

4.4 Caso de utilização

Apresentado o sistema implementado é importante dar um exemplo de utilização desse

mesmo sistema. Na Figura 25 é possível identificar um caso de utilização em que um uti-

lizador registado na aplicação tenta aceder a um vídeo da sua preferência e efectua o pedi-

do da sua reprodução.

Figura 25 – Troca de mensagens entre o cliente e a aplicação Web

Como é possível ver na Figura 25, o utilizador através do seu browser efectua o pedido da

listagem dos filmes existentes no servidor. Após a visualização da listagem de todos os

filmes, o utilizador escolhe o seu conteúdo de preferência e faz o pedido para a visualiza-

Page 77: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 4: SISTEMA BASEADO EM APLICAÇÃO WEB 53

ção das informações desse mesmo conteúdo. Após analisar as informações retornadas, o

utilizador faz um pedido de reprodução o qual é seguido por uma verificação da licença

associada ao utilizador para a reprodução desse conteúdo. Ao confirmar a autorização des-

se pedido, a aplicação VoD devolve também o URL para o conteúdo pretendido. Pode-se

verificar o código-fonte que implementa esse procedimento no extracto de código seguin-

te. Pode verificar-se a utilização de um plugin para o Quicktime, a aplicação aconselhada.

(…) <OBJECT CLASSID="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" height="32" width="32" CODEBASE="http://www.apple.com/qtactivex/qtplugin.cab">

<param name="src" value="images/play.mov"> <param name="controller" value="true"> <param name="href" value="rtsp://194.117.26.50/{$filme.file_uri}"> <param name="target" value="quicktimeplayer"> <EMBED src="images/play.mov" width="176" height="200"

controller="true" href="rtsp://194.117.26.50/{$filme.file_uri}" target="quicktimeplayer">

</EMBED> </OBJECT> (…)

O URL é utilizado pelo reprodutor multimédia Quicktime, ou caso este não exista, pelo

reprodutor predefinido para realizar a conexão ao servidor de streaming DSS através do

protocolo RTSP.

Page 78: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito
Page 79: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Capítulo 5

5 Sistema baseado na Aplicação Cliente residente

Esta aplicação caracteriza-se por ser um software para instalação local no terminal do uti-

lizador, pretendendo fornecer serviços complementares aos que são já oferecidos via apli-

cação web.

Foi desenvolvido para o sistema operativo Windows dado ser este o mais utilizado pelos

utilizadores comuns. A linguagem de programação escolhida foi o Visual Basic pois é um

produto Microsoft cuja finalidade é desenvolver aplicações para Windows. Contém todas

as bibliotecas essenciais e permite um desenho fácil para aplicações gráficas. Estas vanta-

gens levaram à sua adopção apesar do nosso escasso conhecimento sobre a linguagem.

A arquitectura para o sistema baseado na aplicação cliente residente é diferente da anterior

pelo facto da reprodução de conteúdos audiovisuais ser efectuada localmente, sendo des-

necessário o módulo referente ao servidor de streaming. A Figura 26 representa esta nova

arquitectura.

Figura 26 – A arquitectura do sistema baseado na aplicação cliente residente

Page 80: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

56 CAPÍTULO 5: SISTEMA BASEADO NA APLICAÇÃO CLIENTE RESIDENTE

5.1 O Servidor

Mantiveram-se os princípios básicos do servidor como suporte aos novos serviços ofereci-

dos por este sistema. A alteração mais importante prende-se com o facto de se ter criado

uma nova rotina capaz de processar os pedidos de reprodução de um conteúdo armazena-

do localmente no lado do cliente. Esta rotina pode ser vista com mais detalhe no capítulo

5.3 referente a um caso de utilização.

Este novo sistema permite ao cliente efectuar o download dos conteúdos audiovisuais pre-

sentes no servidor para o seu disco local, recorrendo-se a uma cópia do ficheiro pretendido

pelo cliente para uma pasta temporária, sendo retornado o link para essa transferência. O

código em PHP que permite essa funcionalidade é apresentado a seguir.

(…) //Esta função permite copiar o conteúdo para uma pasta temporária //criada de acordo com o nome do utilizador e o conteúdo pretendido //É retornado o caminho para o ficheiro function putFileTMP($username, $uri) { $mediafile = $uri; if( strrchr($uri, "/") != FALSE ) $mediafile = substr(strrchr($uri, "/"), 1); $command = "sudo mkdir tmp/".$username; $output=shell_exec($command); $download = "tmp/".$username."/".$mediafile; $command = "sudo cp /usr/local/movies/".$uri."

/var/www/vod_soft/".$download." -l"; $output=shell_exec($command); return $download; } //Este trecho de código chama a função necessária para retornar o //link para realizar o download ao utilizador $filme=getFilme($id); $file=putFileTMP($username, $filme["file_uri"]); $file="http://unhygienix.inescn.pt/vod_soft/".$file; (…)

5.2 O Cliente

Tal como já foi dito no início do presente capítulo, a aplicação cliente foi desenvolvida na

linguagem Visual Basic, linguagem desconhecida para os autores deste documento até ao

início do projecto. Essa deficiência foi ultrapassada através da consulta de manuais dispo-

nibilizados pelo MSDN permitindo o estreito contacto com esta linguagem e realçando

todas as suas potencialidades.

Na secção seguinte serão apresentadas as características da aplicação cliente.

Page 81: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 5: SISTEMA BASEADO NA APLICAÇÃO CLIENTE RESIDENTE 57

5.2.1 As características da aplicação

Na sua essência, esta aplicação pretende fazer a gestão dos direitos de autor no contexto

do conteúdo armazenado localmente no terminal do utilizador. Está dividida em duas tabs,

uma denominada Online e outra Local.

Figura 27 - Tab Online e Local

A tab Online assemelha-se a um pequeno browser possibilitando o acesso via HTTP a

uma aplicação semelhante à anterior descrita no capítulo quatro, mas com apresentação

visual adequada ao formato do software e funcionalidades diferentes. Estas funcionalida-

des passam por consultar as licenças pessoais de cada utilizador, consultar todos os filmes

disponibilizados, pesquisar, efectuar o download de um determinado filme para o disposi-

tivo de armazenamento local ou efectuar o download do ficheiro XML representativo de

uma licença.

A tab Local trata-se de uma espécie de browser local em que o utilizador navega pelo seu

sistema de armazenamento procurando o filme que deseja reproduzir. Existem várias

maneiras de listar o dispositivo de armazenamento cuja apresentação pode ser definida

pelo utilizador no menu Ver como se demonstra na Figura 28. Deste modo as possibilida-

des são: ver como miniaturas, mosaicos, lista ou ícones. É também possível aplicar um

filtro para ficheiros de filme evitando que o utilizador desvie a atenção do seu objectivo.

Figura 28 – O menu Ver

O menu Editar tem uma única opção e permite apenas inserir ou editar os dados de login

utilizados para identificar o utilizador que executa a aplicação. Assim cada utilizador defi-

ne as suas credenciais, as quais são armazenadas num ficheiro de preferências e utilizadas

sempre que seja necessária inquirir a base de dados. Garante-se assim que o utilizador não

necessita introduzir as suas credencias de todas as vezes que tenta reproduzir um vídeo.

Page 82: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

58 CAPÍTULO 5: SISTEMA BASEADO NA APLICAÇÃO CLIENTE RESIDENTE

Figura 29 - Editar dados de Login no menu Editar

Existem também alguns botões que facilitam a navegação pelo sistema de armazenamento,

isto é, o utilizador pode navegar em profundidade nos seus directórios carregando dupla-

mente no directório. Para fazer a função inversa existe um botão semelhante aos que esta-

mos habituados a utilizar nos nossos sistemas Windows. Implementou-se o conceito de

Directório Casa possibilitando ao utilizador definir qual o directório da sua preferência

para os seus filmes, esta solução evita que de todas as vezes seja necessário percorrer a

hierarquia do armazenamento para localizar determinado filme. Existe assim um botão de

acesso rápido a esse directório previamente definido com casa. Pode-se constatar esta

acessibilidade na Figura 30.

Figura 30 - A acessibilidade da interface

5.2.2 Reprodução dos conteúdos digitais

Para reproduzir um filme basta fazer duplo clique sobre o ficheiro que o representa. Nesse

momento, são executadas rotinas de verificação da autorização para a reprodução desse

conteúdo. Se no servidor existir uma licença válida, é invocado o reprodutor de multimé-

dia preferido do utilizador para reproduzir o ficheiro especificado.

5.3 Caso de utilização

Na Figura 31 é apresentado um caso de utilização em que o utilizador tenta reproduzir um

conteúdo digital para o qual possui uma licença válida. Como é possível ver na figura, a

aplicação cliente envia o pedido de reprodução para o servidor que se encarrega de verifi-

Page 83: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 5: SISTEMA BASEADO NA APLICAÇÃO CLIENTE RESIDENTE 59

car a coerência dos dados desse pedido como o nome do filme, dados do utilizador e sua

licença. Passada essa verificação, a aplicação cliente recebe a confirmação de que é possí-

vel reproduzir o conteúdo e chama o reprodutor multimédia preferido.

Figura 31 – Troca de mensagens entre a aplicação cliente e o servidor

O código da aplicação cliente, em Visual Basic, que invoca a confirmação da autorização

para a reprodução do filme apresenta-se de seguida:

(…) ‘# O URL da rotina que trata o pedido cujos parâmetros são inseridos ‘# automaticamente (username, password, nome do filme) sURL = "http://unhygienix.inescn.pt/vod_soft/offline.php?username=" & user & "&password=" & pass & "&movie=" & stFileName ‘# O pedido é enviado por HTTP wrGETURL = WebRequest.Create(sURL) wrGETURL.Proxy = WebProxy.GetDefaultProxy() ‘# A resposta ao pedido é armazenada na variável objStream objStream = wrGETURL.GetResponse.GetResponseStream() (…)

Do lado do servidor esse pedido é processado pela seguinte rotina PHP:

(…) // Se a password e o nome de utilizador coincidirem com os dados // presentes na base de dados é executada o seguinte código if ($password === $MD5Pass) { //Verifica a existência do filme

$id=getFilmeByName($movie); if($id === false){ $error = "404 - File Not Found : The movie provided does not exist."; print_r($error); die; } // Verifica a existência de uma licença de um utilizador para // determinado filme $license=getLicense($username, $id); if($license === false){ $error = "405 - Licence Required : User does not have a li-cense for the file."; print_r($error); die;

Page 84: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

60 CAPÍTULO 5: SISTEMA BASEADO NA APLICAÇÃO CLIENTE RESIDENTE

} // Verifica se a licença é válida else { $condition1=true; $condition2=true; $condition3=true; // Verifica a existência de uma condição do tipo limite de utilização if($license['countlimit'] == 't'){ if($license['count'] > 0) $condition1=true; else $condition1=false; } // Verifica a existência de uma condição do tipo intervalo de utilização if($license['validityinterval'] == 't'){ if(date("Y-m-d")>$license['notbefore'] and date("Y-m-d")<$license['notafter']) $condition2=true; else $condition2=false; } // Verifica se a licença é válida, ou seja, se todas as condições // são verdadeiras if($condition1 and $condition2 and $condition3) { updateUserLicenceOnPlay($username, $id); $answer = "200 - OK : Action completed successfully."; print_r($answer); die; } // Caso em que a licença existe mas necessita ser renovada else { $answer = "406 - Not Acceptable"; print_r($answer); die; } } } // A password fornecida está errada else {

$error = "401 - Unauthorized : User failed to provide a valid password required for access to the server."; print_r($error); die; } (…)

Caso exista alguma incoerência que iniba a reprodução do conteúdo, é apresentado ao

utilizador uma mensagem de erro que traduza esse obstáculo.

As mensagens de erro que poderão ocorrer são:

Page 85: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

CAPÍTULO 5: SISTEMA BASEADO NA APLICAÇÃO CLIENTE RESIDENTE 61

• O conjunto do seu Username e Password não coincidem, por favor redefina as

suas credenciais no menu ‘Editar > Registo’.: Como a própria mensagem de erro

sugere, o par Username e Password não está de acordo com os utilizadores regista-

dos no servidor.

• O ficheiro que pretende abrir não está disponível no servidor.: O filme que o utili-

zador pretende reproduzir não foi descarregado através do serviço que este projec-

to disponibiliza, pelo que também não se publicam licenças para esse conteúdo.

• Não têm licença para ver este filme. Compre a sua licença online.: O utilizador

nunca teve uma licença associada ao filme que pretende pelo que terá de comprar

uma nova licença.

• A sua licença para este filme expirou. Por favor renove a sua licença online.: O

utilizador já possuiu uma licença para o conteúdo pretendido, no entanto, encontra-

se expirada pelo que se aconselha a sua renovação.

• O tempo do seu pedido expirou. Tente mais tarde.: Esta mensagem de erro ocorre

quando o servidor foi inquirido mas entretanto o tempo de resposta expirou devido,

por exemplo, a problemas de conectividade.

• O serviço não está disponível, por favor tente mais tarde!: Esta mensagem ocorre

sempre que o programa cliente não consegue resolver o endereço do servidor que

deve contactar nas suas inquirições.

• Erro não definido!: Ocorre sempre que a aplicação inquere o servidor e este res-

ponde com uma mensagem desconhecida.

Quando o utilizador tenta executar, através desta aplicação, um ficheiro que não seja um

ficheiro de vídeo é notificado que não pode executar essa operação.

Esta aplicação funciona como um mediador, que permite ao utilizador escolher o filme

que deseja, verificar se o utilizador tem autorização para a acção que pretende executar e

só depois o reprodutor é invocado para abrir o filme.

5.4 Cliente fiável

Abrir um conteúdo digital directamente com o reprodutor de multimédia impede as verifi-

cações que esta aplicação implementa e pode ser considerado como uma falha na gestão

dos direitos de autor.

No entanto, desde o início do projecto que se considerou o cliente final como um cliente

fiável e tal como em outro projectos em que existe um cliente de confiança (“trusted

client”), tomou-se como adquirido que na máquina do utilizador final a única forma de

reproduzir os conteúdos digitais seria através da plataforma criada e aqui anunciada.

Page 86: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

62 CAPÍTULO 5: SISTEMA BASEADO NA APLICAÇÃO CLIENTE RESIDENTE

Assim, se olharmos para esta solução do ponto de vista de um terminal fiável ou, até num

caso mais realista, de uma set-top-box, a implementação desta aplicação de gestão dos

direitos digitais sobre os conteúdos disponibilizados faz todo o sentido.

Passa-se a explicar o conceito desta aplicação a correr numa set-top-box:

Imagine-se uma set-top-box dedicada para o acesso ao serviço, cuja interface com o utili-

zador é uma aplicação semelhante a esta até agora descrita. Deste modo o utilizador não

tem como reproduzir o filme directamente num reprodutor multimédia a não ser que utili-

ze a interface que a set-top-box lhe proporciona e que apenas invocará o reprodutor para

visualizar o filme se lhe for dada autorização.

Page 87: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Capítulo 6

6 Conclusões

Ao longo deste documento foram descritas as diversas fases do projecto que levaram à

criação de um serviço de Video on Demand usando DRM de forma a proteger os direitos

de autor. Os objectivos iniciais foram cumpridos, havendo ainda disponibilidade para se

atingir resultados para além dos objectivos propostos, deixando no ar várias perspectivas

de desenvolvimento.

Este projecto apresentou-se bastante atractivo e enriquecedor na medida em que foi possí-

vel adquirir conhecimentos sobre a criação e utilização de licenças e ainda sobre a distri-

buição de conteúdos audiovisuais através do streaming. Para tal, foi necessária uma exten-

sa fase inicial de estudo das tecnologias existentes, capazes de responder aos requisitos do

sistema a produzir. Este estudo revelou-se fundamental no arranque e progressão do pro-

jecto.

Diversas propostas para a criação e gestão de licenças foram equacionadas, vindo a ser

aprovada a proposta da plataforma de DRM do projecto DMP, o Chillout, visto ser a plata-

forma mais flexível de entre as estudadas e aquela que melhor se adequa no âmbito deste

projecto de Video on Demand. Assim, após uma antevisão teórica, esta tecnologia foi

colocada em prática tendo sido adaptada para uma melhor integração no projecto.

Foram criadas duas interfaces de modo a permitir a interactividade do serviço com o utili-

zador, uma interface baseada numa aplicação web e uma outra, baseada numa aplicação

cliente que pode ser instalada no computador do utilizador, sendo ambas produzidas com o

intuito de se revelarem interfaces dinâmicas e intuitivas.

A aplicação web, dependendo do estatuto de utilizador, apresenta a informação dos servi-

ços disponíveis e a possibilidade de edição da informação respeitando a privacidade e a

segurança da informação. Possibilita a reprodução dos conteúdos digitais se estiverem

reunidas as condições necessárias, sendo que para isso, o utilizador deve ser um utilizador

registado e possuir uma licença válida para a reprodução desse conteúdo. Essa licença

pode já existir, ser comprada ou renovada.

A aplicação cliente, VoD Client, é uma extensão do que é oferecido pela aplicação web.

Para além das funcionalidades disponibilizadas na aplicação web é possível realizar o

download do conteúdo digital e reproduzir localmente, estando salvaguardada a gestão dos

direitos de autor. Para isso é necessário haver sempre conectividade com o servidor online,

Page 88: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

64 CAPÍTULO 6: CONCLUSÕES

embora a troca de mensagens seja mínima. A implementação desta aplicação parte do

pressuposto de que o cliente se trata de um cliente seguro ou de confiança, ou seja, o clien-

te não utiliza outras ferramentas para a reprodução do conteúdo.

Este projecto revelou-se importante para a aquisição de conhecimento numa área que seria

desconhecida até ao momento, a gestão dos direitos digitais através da criação de licenças,

e também sobre as tecnologias envolvidas no sistema implementado. Os objectivos foram

cumpridos na íntegra dentro do prazo estabelecido devido a uma capacidade de organiza-

ção e a uma boa estruturação de tarefas entre as partes envolvidas no projecto.

É ainda de salientar, a experiência pessoal e profissional adquirida pela integração num

ambiente dinâmico e bastante jovem, como aquele que existe no INESC Porto.

Page 89: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Capítulo 7

7 Perspectivas de Desenvolvimento

O cumprimento dos objectivos propostos levou ao surgimento de outros novos pontos de

desenvolvimento que seriam possíveis de realizar numa fase posterior ao término do pro-

jecto.

Uma das funcionalidades possíveis de implementar seria a automatização da introdução

dos conteúdos digitais na base de dados, garantindo a coerência da informação entre esta e

o repositório de multimédia. Neste momento, a introdução do conteúdo no repositório e

das informações na base de dados são duas coisas distintas o que pode levar ao problema

de alguns conteúdos disponíveis no repositório não estarem disponíveis na base de dados

ou a sua informação estar incorrecta ou mesmo haver informação relativamente a um fil-

me que não esteja no repositório. Uma das soluções possíveis passaria por criar um fichei-

ro XML para cada filme contendo as informações relativas a esse conteúdo, havendo um

script que estaria sempre a verificar quais os conteúdos existentes no repositório e suas

alterações comunicando à base de dados acções do tipo inserir, remover ou editar as

informações de um filme.

Outra funcionalidade com possível exploração no sistema seria a verificação da idade do

utilizador tendo em conta o parental rating associado a cada filme. O cliente só poderia

reproduzir o filme se for verificada a conformidade entre a sua idade, calculada através da

informação da sua data de nascimento presente na base de dados, e o controlo parental

associado ao filme.

Na aplicação cliente, o pedido de autorização para a reprodução de um conteúdo é acom-

panhado com o nome do ficheiro que o utilizar pretende visualizar. No futuro poderá ser

pensada uma forma de passar o identificador URI do filme, inserida como metadata no

próprio ficheiro, de modo a proteger o sistema contra uma possível alteração do nome do

ficheiro e a inevitável perda de funcionalidade a partir daí.

Outra melhoria possível no presente sistema seria modificar o Darwin Streaming Server,

acrescentando-lhe um módulo para efectuar a gestão do número de vezes que o utilizador

visualiza os conteúdos. Neste momento, após o pedido de visualização por parte de um

Page 90: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

66 CAPÍTULO 7: PERSPECTIVAS DE DESENVOLVIMENTO

utilizador, actualiza-se de imediato o número de vezes que o cliente ainda pode visualizar

o filme. No entanto podem surgir situações em que o utilizador não se liga efectivamente

ao DSS. Propõe-se assim, que a gestão passe para o lado do servidor DSS e quando o uti-

lizador termina a conexão o próprio DSS comunicaria à base de dados a necessidade de

decrementar o número de vezes que o cliente pode visualizar o conteúdo.

Page 91: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Referências Bibliográficas

[1] Wikipedia.org, Digital rights management [Em linha]. Disponível em

http://en.wikipedia.org/wiki/Digital_rights_management. [Consultado em 21/06/2007]

[2] International Organization For Standardization, MPEG-21 Overview v.5, Shanghai, Outu-

bro 2002

[3] International Organization For Standardization, Introducing MPEG-21 REL - an Over-

view, Poznan, Poland, Julho 2005

[4] VISNET II Networked Audiovisual Media Technologies [Em linha]. Disponível em

http://www.visnet-noe.org/index.html. [Consultado em 16/06/2007]

[5] VISNET II Networked Audiovisual Media Technologies, D3.1.2 - Intermediate Progress

Report on DRM-based Content Protection Initial Integration, pp. 18-34, Setembro 2005

[6] Marušič, Boštjan; Dobravec, Štefan; de Cuetos, Philippe; Concolato, Cyril; Piron, Lau-

rent; Tasič, Jurij F.; TIRAMISU: A Novel Approach to Content Representation and Key

Management for Seamless Super-Distribution of Protected Media,

[7] Chiariglione, Leonardo; Navigating the Digital Media Project [Em linha]. Disponível em

http://www.dmpf.org/documents/documents/navigating_DMP.htm. [Consultado em

21/06/2007]

[8] The Digital Media Project; Technical Specification, Phase II, In Interoperable Digital

Rights Management Platform, 9 February 2006

[9] VISNET II Networked Audiovisual Media Technologies [Em linha]. Disponível em

http://www.visnet-noe.org/index.html. [Consultado em 16/06/2007]

[10] Chillout - The Interoperable DRM Platform [Em linha]. Disponível em

http://chillout.dmpf.org/index.php. [Consultado em 16/06/2007]

[11] Chillout Setup and Development Guide [Em linha]. Disponível em

http://wiki.dmpf.org/index.php/Main_Page. [Consultado em 16/06/2007]

[12] Creative Commons (CC) PT [Em linha]. Disponível em http://www.creativecommons.pt.

[Consultado em 16/06/2007]

[13] Wikipedia.org, Creative Commons [Em linha]. Disponível em

http://en.wikipedia.org/wiki/Creative_Commons. [Consultado em 21/06/2007]

Page 92: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

68 CAPÍTULO 7: PERSPECTIVAS DE DESENVOLVIMENTO

[14] Wikipedia.org, Transmission Control Protocol [Em linha]. Disponível em

http://en.wikipedia.org/wiki/Transmission_Control_Protocol. [Consultado em 14/06/2007]

[15] Wikipedia.org, User Datagram Protocol. [Em linha]. Disponível em

http://en.wikipedia.org/wiki/User_Datagram_Protocol. [Consultado em 14/06/2007]

[16] Network Working Group, RTP: A Transport Protocol for Real-Time Applications, Julho

2003 [Em linha]. Disponível em http://tools.ietf.org/html/rfc3550. [Consultado em

21/06/2007]

[17] Network Working Group, Real Time Streaming Protocol (RTSP), Abril 1998, [Em

linha]. Disponível em http://tools.ietf.org/html/rfc2326. [Consultado em 21/06/2007]

[18] Wikipedia.org, Real Time Streaming Protocol [Em linha]. Disponível em

http://en.wikipedia.org/wiki/RTSP. [Consultado em 21/06/2007]

[19] International Organization For Standardization, MPEG-4 Overview - (V.21 – Jeju Ver-

sion), In Coding Of Moving Pictures And Audio, Março 2002

[20] Alves, P.; Andrade, M. T.; Acetatos das aulas teóricas na disciplina de Televisão Digital,

Feup, Dezembro 2006

[21] Apple, QuickTime Streaming Server Administrator’s Guide [Em linha]. Disponível em

http://developer.apple.com/opensource/server/streaming/qtss_admin_guide.pdf. [Consultado

em 18/06/2007]

[22] Network Working Group, RTP Payload Format for MPEG-4 Audio/Visual Streams, RFC

3016, Novembro 2000 [Em linha]. Disponível em http://www.rfc-editor.org/rfc/rfc3016.txt.

[Consultado em 22/06/2007]

[23] The Apache HTTP Project. [Em linha]. Disponível em http://httpd.apache.org/. [Consul-

tado em 22/06/2007]

[24] PHP: Hypertext Processor. [Em linha]. Disponível em http://www.php.net/. [Consultado

em 22/06/2007]

[25] PostgreSQL. [Em linha]. Disponível em http://www.postgresql.org/. [Consultado em

22/06/2007]

[26] phpPgAdmin :: Web Based PostgreSQL Administration Tool. [Em linha]. Disponível em

http://phppgadmin.sourceforge.net/. [Consultado em 22/06/2007]

[27] Apache Tomcat. [Em linha]. Disponível em http://tomcat.apache.org/. [Consultado em

22/06/2007]

[28] WebServices – Axis. [Em linha]. Disponível em http://ws.apache.org/axis/. [Consultado

em 22/06/2007]

Page 93: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

ANEXOS 69

[29] The TV-Anytime Forum, Specification Series: S-3, em Metadata (Normative), 16 de

Fevereiro de 2001 [Em linha]. Disponível em

ftp://tva:[email protected]/pub/Specifications/SP003v10.zip. [Consultado em 22/06/2007]

Page 94: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito
Page 95: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Apêndice A – Base de dados

Nas secções seguintes são apresentadas as tabelas e relações entre as tabelas presentes na base

de dados.

A.1 Tabelas

Tabela A1 – Tabela Actor

Actor ID_Actor Nome Data_Nascimento Nacionalidade

Tabela A2 – Tabela AVTechnicaAttributes

AVTechnicalAttributes #ID_Media FileFormat FileSize BitRate

Tabela A3 - Director

Director ID_Director Nome Data_Nascimento Nacionalidade

Tabela A4 - AspectRatio

AspectRatio ID_Aspect AspectRatio

Tabela A5 - Color

Color ID_Color Color

Tabela A6 - Country

Country Abreviatura Country

Tabela A7 – Foto_Actor

Foto_Actor ID_Foto #ID_Actor

Page 96: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

72 CAPÍTULO 7: PERSPECTIVAS DE DESENVOLVIMENTO

Tabela A8 - Galery

Galery ID_Foto #ID_Media

Tabela A9 - Genre

Genre ID_Genre Genre

Tabela A10 - Language

Language ID_Language Language

Tabela A11 – ParentalRating

ParentalRating ID_PR Rating

Tabela A12 - Distributor

Distributor ID_Distributor Nome Nacionalidade

Tabela A13 - AudioAttributesType

AudioAttributesType #ID_Media AudioCoding NumOfChannels

Tabela A14 – User_Types

User_Types ID Type

Tabela A15 - Subtitles

Subtitles Abreviatura SubTitle

Tabela A16 - Licenca

Licenca

URI Grant_KeyName Issuer_KeyName Content_Right CountLimit

Count ValidityRegion ValidityInterval NotBefore NotAfter

Country Region #ID_Media

Page 97: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

ANEXOS 73

Tabela A17 - Media

Media

ID_Media KeyWord ProductionYear CreationDate File_URI

Title #ID_Genre ProductionCountry #ID_Language

Synopsis #ID_PR CreationLocation Poster

Tabela A18 – User_Info

User_Info Login PNome Email Activated Password

User_Type UNome Data_Nascimento MD5Activation

Tabela A19 - VideoAttributesType

VideoAttributesType

#ID_Media HorizontalSize Scan #ID_Aspect

VideoCoding VerticalSize #ID_Color

A.2 Relações entre as tabelas

Tabela A20 - CastList

CastList #ID_Media #ID_Actor

Tabela A21 - FilmDirector

FilmDirector #ID_Media #ID_Director

Tabela A22 - FilmDistributor

FilmDistributor #ID_Media #ID_Distributor

Tabela A23 - MediaSubTitles

MediaSubTitles #ID_Media #Abreviatura

Tabela A24 - UserPreferencesActor

UserPreferencesActor #User_Login #ID_Actor

Page 98: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

74 CAPÍTULO 7: PERSPECTIVAS DE DESENVOLVIMENTO

Tabela A25 - UserPreferencesDirector

UserPreferencesDirector #User_Login #ID_Director

Tabela A26 - UserPreferencesGenre

UserPreferencesGenre #User_Login #ID_Genre

Tabela A27 - UserPreferencesLanguage

UserPreferencesLanguage #User_Login #ID_Language

Tabela A28 - UserPreferencesMedia

UserPreferencesMedia #User_Login #ID_Media

Tabela A29 - UserPreferencesSubtitle

UserPreferencesSubtitles #User_Login #Abreviatura

Page 99: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Apêndice B

B.1 Apresentação

Tal como foi referido ao longo do relatório, a aplicação web foi dese

sido utilizado um template para o desenvolvimento do site completo. Nesta secção apresenta

se a página de entrada da interface web.

Figura B1

Apêndice B – Aplicação Web

Apresentação da aplicação

i referido ao longo do relatório, a aplicação web foi desenvolvida em PHP tendo

sido utilizado um template para o desenvolvimento do site completo. Nesta secção apresenta

se a página de entrada da interface web.

Figura B1 – Página de entrada da interface Web

Aplicação Web

nvolvida em PHP tendo

sido utilizado um template para o desenvolvimento do site completo. Nesta secção apresenta-

e Web

Page 100: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

76

B.2 Manual da aplicação

Nesta secção será apresentado um manual d

a interface ao leitor e também guiá

digital.

Depois de o utilizador aceder à

lizar o acesso à aplicação. Esse acesso, normalmente denominado login, pode ser realizado na

seguinte caixa.

Depois de efectuado o acesso

sugestões de filmes ao utilizador

sugerindo ao utilizador a especificação das suas preferências. Neste caso o utilizador já tem

algumas preferências definidas por isso

Figura B3

CAPÍTULO 7: PERSPECTIVAS DE DESENVOLVIMENTO

Manual da aplicação web

Nesta secção será apresentado um manual da aplicação web que terá a vantagem de apresentar

a interface ao leitor e também guiá-lo através do nosso site até à reprodução de um conteúdo

Depois de o utilizador aceder à página de entrada, apresentada na secção anterior

lizar o acesso à aplicação. Esse acesso, normalmente denominado login, pode ser realizado na

Figura B2 – Caixa de login

fectuado o acesso, a página de entrada altera-se dinamicamente, apresentando

sugestões de filmes ao utilizador, caso este já tenha especificado as suas preferências, ou

sugerindo ao utilizador a especificação das suas preferências. Neste caso o utilizador já tem

algumas preferências definidas por isso são apresentadas algumas sugestões.

Figura B3 – Efectuado o acesso à aplicação

NVOLVIMENTO

web que terá a vantagem de apresentar

lo através do nosso site até à reprodução de um conteúdo

apresentada na secção anterior, deverá rea-

lizar o acesso à aplicação. Esse acesso, normalmente denominado login, pode ser realizado na

se dinamicamente, apresentando

caso este já tenha especificado as suas preferências, ou

sugerindo ao utilizador a especificação das suas preferências. Neste caso o utilizador já tem

são apresentadas algumas sugestões.

Page 101: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

ANEXOS

O utilizador pode alterar as suas prefer

as suas preferências o sistema poderá sugerir filmes que estejam de acordo com

cias.

Figura B4

O próximo passo será fazer a listagem dos filmes ou pesquisar um filme específico. Estas

opções são encontradas no menu lateral esquerdo. Na Figura B5 é apresentada a listagem de

todos os filmes existentes na base de dados

para a pesquisa de filmes.

campo de pesquisa, onde se pode pesquisar não só por filmes mas também por

zadores ou distribuidores.

O utilizador pode alterar as suas preferências acedendo à sua área pessoal. Ao criar ou alterar

as suas preferências o sistema poderá sugerir filmes que estejam de acordo com

Figura B4 – Alteração das preferências do utilizador

O próximo passo será fazer a listagem dos filmes ou pesquisar um filme específico. Estas

opções são encontradas no menu lateral esquerdo. Na Figura B5 é apresentada a listagem de

s os filmes existentes na base de dados enquanto na Figura B6 é apresentado o formulário

para a pesquisa de filmes. É ainda de salientar que na Figura B6 é indicado a presença de um

campo de pesquisa, onde se pode pesquisar não só por filmes mas também por

77

dendo à sua área pessoal. Ao criar ou alterar

as suas preferências o sistema poderá sugerir filmes que estejam de acordo com as preferên-

Alteração das preferências do utilizador

O próximo passo será fazer a listagem dos filmes ou pesquisar um filme específico. Estas

opções são encontradas no menu lateral esquerdo. Na Figura B5 é apresentada a listagem de

na Figura B6 é apresentado o formulário

É ainda de salientar que na Figura B6 é indicado a presença de um

campo de pesquisa, onde se pode pesquisar não só por filmes mas também por actores, reali-

Page 102: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

78

CAPÍTULO 7: PERSPECTIVAS DE DESENVOLVIMENTO

Figura B5 – Listagem dos filmes

Figura B6 – Página de pesquisa

NVOLVIMENTO

Page 103: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

ANEXOS

Escolhido o filme é possível obter informação detalhada sobre esse mesmo fil

possível ver na Figura B7 essa informação contem todos

base de dados acrescentando

Escolhido o filme é possível obter informação detalhada sobre esse mesmo fil

igura B7 essa informação contem todos os descritores que se encontram na

base de dados acrescentando-se o elenco de actores, realizadores e distribuidores.

Figura B7 – Item filme

79

Escolhido o filme é possível obter informação detalhada sobre esse mesmo filme. Tal como é

os descritores que se encontram na

se o elenco de actores, realizadores e distribuidores.

Page 104: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

80

Se o utilizador tiver uma licença válida para o filme apresentado, poderá pedir autorização

para o visualizar. Esse pedido será aceite apresentando uma nova janela dando a indicação de

que o utilizador deve clicar na imagem de modo a executar o seu reprodutor multimédia.

nova janela apresenta também a informação da licença, mostrando por exemplo o número de

vezes que o utilizador poderá ainda reproduzir o conteúdo.

Figura B8

De notar que se o utilizador não possuir uma licença válida para o filme será reencaminhado

para a página de criação de licenças já apresentada na secção sobre a cr

tentes no capítulo 4.

A reprodução do conteúdo deve ser comunicada ao servidor de streaming e apresentará um

novo campo para a introdução do username e password. Só depois de ter fornecido os dados

correctos, de acordo com o presente

duzido o conteúdo.

CAPÍTULO 7: PERSPECTIVAS DE DESENVOLVIMENTO

Se o utilizador tiver uma licença válida para o filme apresentado, poderá pedir autorização

se pedido será aceite apresentando uma nova janela dando a indicação de

que o utilizador deve clicar na imagem de modo a executar o seu reprodutor multimédia.

nova janela apresenta também a informação da licença, mostrando por exemplo o número de

s que o utilizador poderá ainda reproduzir o conteúdo.

Figura B8 – Reprodução do conteúdo

De notar que se o utilizador não possuir uma licença válida para o filme será reencaminhado

para a página de criação de licenças já apresentada na secção sobre a criação de licenças exi

A reprodução do conteúdo deve ser comunicada ao servidor de streaming e apresentará um

novo campo para a introdução do username e password. Só depois de ter fornecido os dados

correctos, de acordo com o presente na base de dados da aplicação web, será de facto repr

NVOLVIMENTO

Se o utilizador tiver uma licença válida para o filme apresentado, poderá pedir autorização

se pedido será aceite apresentando uma nova janela dando a indicação de

que o utilizador deve clicar na imagem de modo a executar o seu reprodutor multimédia. Essa

nova janela apresenta também a informação da licença, mostrando por exemplo o número de

De notar que se o utilizador não possuir uma licença válida para o filme será reencaminhado

iação de licenças exis-

A reprodução do conteúdo deve ser comunicada ao servidor de streaming e apresentará um

novo campo para a introdução do username e password. Só depois de ter fornecido os dados

na base de dados da aplicação web, será de facto repro-

Page 105: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

ANEXOS

Figura B9 – Reprodução do conteúdo digital através do acesso ao DSS

Reprodução do conteúdo digital através do acesso ao DSS

81

Reprodução do conteúdo digital através do acesso ao DSS

Page 106: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito
Page 107: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

Apêndice C

A aplicação cliente foi desenvolvida em Visual Basic de modo a

ca intuitiva para o utilizador. Tal como foi falado na secção referente às características desta

aplicação presente no capítulo

Online e um modo Local. Nas secções seguintes serão apresentados algumas

desses modos.

C.1 Modo Online

Tal como na aplicação web, esta aplicação no seu modo online apresenta várias funcionalid

des de fácil compreensão e aprendizagem. Assim, serão apresentadas nas figuras seguintes

alguns estados dessa aplicação.

A interface gráfica sofreu algumas alterações relativamente à anterior apresentada para a apl

cação web devido ao dimensionamento da janela desta nova aplicação. A página de entrada

passa a ser a apresentada na Figura C1.

Figura C1

Apêndice C – Aplicação Cliente

A aplicação cliente foi desenvolvida em Visual Basic de modo a oferecer

ca intuitiva para o utilizador. Tal como foi falado na secção referente às características desta

capítulo 5, esta aplicação tem dois modos fundamentais, um modo

. Nas secções seguintes serão apresentados algumas

Modo Online

Tal como na aplicação web, esta aplicação no seu modo online apresenta várias funcionalid

de fácil compreensão e aprendizagem. Assim, serão apresentadas nas figuras seguintes

alguns estados dessa aplicação.

interface gráfica sofreu algumas alterações relativamente à anterior apresentada para a apl

cação web devido ao dimensionamento da janela desta nova aplicação. A página de entrada

passa a ser a apresentada na Figura C1.

Figura C1 – Página de Entrada no modo Online

Aplicação Cliente

oferecer uma interface gráfi-

ca intuitiva para o utilizador. Tal como foi falado na secção referente às características desta

5, esta aplicação tem dois modos fundamentais, um modo

. Nas secções seguintes serão apresentados algumas funcionalidades

Tal como na aplicação web, esta aplicação no seu modo online apresenta várias funcionalida-

de fácil compreensão e aprendizagem. Assim, serão apresentadas nas figuras seguintes

interface gráfica sofreu algumas alterações relativamente à anterior apresentada para a apli-

cação web devido ao dimensionamento da janela desta nova aplicação. A página de entrada

odo Online

Page 108: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

84

Realizado o acesso à aplicação, o utilizador terá à sua disposição algumas funcionalidades

como a pesquisa de filmes, listagem dos filmes para os quais o utilizador tem licença e real

zar o download do filme para o seu disco rígido. Na Figura C2

pesquisa enquanto na Figura C3 são apresentados os filmes para os quais o utilizador tem

licença. Ainda na Figura C3 é perceptível a funcionalidade de descarregar o filme do servidor.

Figura C2 –

Figura C3 – Apresentação dos filmes com licença e de algumas funcionalidades

CAPÍTULO 7: PERSPECTIVAS DE DESENVOLVIMENTO

Realizado o acesso à aplicação, o utilizador terá à sua disposição algumas funcionalidades

como a pesquisa de filmes, listagem dos filmes para os quais o utilizador tem licença e real

zar o download do filme para o seu disco rígido. Na Figura C2 é apresentado o formulário de

pesquisa enquanto na Figura C3 são apresentados os filmes para os quais o utilizador tem

licença. Ainda na Figura C3 é perceptível a funcionalidade de descarregar o filme do servidor.

Funcionalidade de Pesquisa no modo Online

Apresentação dos filmes com licença e de algumas funcionalidades

NVOLVIMENTO

Realizado o acesso à aplicação, o utilizador terá à sua disposição algumas funcionalidades

como a pesquisa de filmes, listagem dos filmes para os quais o utilizador tem licença e reali-

é apresentado o formulário de

pesquisa enquanto na Figura C3 são apresentados os filmes para os quais o utilizador tem

licença. Ainda na Figura C3 é perceptível a funcionalidade de descarregar o filme do servidor.

no modo Online

Apresentação dos filmes com licença e de algumas funcionalidades

Page 109: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

ANEXOS

No caso de o utilizador não ter licença para realizar a reprodução de um conteúdo ou no caso

de a licença ter expirado é necessário criar ou renovar a licença. Ta

interface para a criação de licenças apresentada na Figura C4.

Figura C4 – Interface para a criação de licença associada a um conteúdo

C.2 Modo Local

No modo Local é dada ao utilizador a possibilidade de reproduzir conteúdos prote

zenados localmente. De lembrar que esses conteúdos foram descarregados através do modo

Online. Para aceder aos conteúdos armazenados localmente foi criada uma interface que pe

mite ao utilizador explorar os seus directórios

dows. Essa interface pode ser vista nas Figuras C5 e C6.

No caso de o utilizador não ter licença para realizar a reprodução de um conteúdo ou no caso

de a licença ter expirado é necessário criar ou renovar a licença. Tal pode ser feito através da

interface para a criação de licenças apresentada na Figura C4.

Interface para a criação de licença associada a um conteúdo

Modo Local

No modo Local é dada ao utilizador a possibilidade de reproduzir conteúdos prote

zenados localmente. De lembrar que esses conteúdos foram descarregados através do modo

Online. Para aceder aos conteúdos armazenados localmente foi criada uma interface que pe

mite ao utilizador explorar os seus directórios tal como se tratasse de um explorador do Wi

dows. Essa interface pode ser vista nas Figuras C5 e C6.

85

No caso de o utilizador não ter licença para realizar a reprodução de um conteúdo ou no caso

l pode ser feito através da

Interface para a criação de licença associada a um conteúdo

No modo Local é dada ao utilizador a possibilidade de reproduzir conteúdos protegidos arma-

zenados localmente. De lembrar que esses conteúdos foram descarregados através do modo

Online. Para aceder aos conteúdos armazenados localmente foi criada uma interface que per-

e um explorador do Win-

Page 110: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

86

Figura C5

Figura C6 – Navegação entre os directórios da máquina do utilizador

CAPÍTULO 7: PERSPECTIVAS DE DESENVOLVIMENTO

Figura C5 – Entrada no modo Local

Navegação entre os directórios da máquina do utilizador

NVOLVIMENTO

Navegação entre os directórios da máquina do utilizador

Page 111: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

ANEXOS

Para efectuar a reprodução dos conteúdos é necessário editar as credenc

viamente. Para isso o utilizador deverá aceder ao menu

Através da nova janela que aparece, o utilizador deverá inserir os dados de username e pas

word que estão associados à sua conta utilizada na ap

ver essa o modo com esse registo é feito.

Figura C7

A reprodução do conteúdo é efectuada depois do pedido de autorizaç

este pedido transparente para o

dução do conteúdo é clicar duas vezes sobre o seu ícone. Se a licença para esse filme for vál

da o programa encarrega-

cutado. Na Figura C8 é apresentada a reprodução de um conteúdo.

Para efectuar a reprodução dos conteúdos é necessário editar as credenc

viamente. Para isso o utilizador deverá aceder ao menu Editar e escolher a opção

Através da nova janela que aparece, o utilizador deverá inserir os dados de username e pas

word que estão associados à sua conta utilizada na aplicação online. Na Figura C7 é possível

ver essa o modo com esse registo é feito.

Figura C7 – Alteração das credenciais de utilizador

A reprodução do conteúdo é efectuada depois do pedido de autorizaç

este pedido transparente para o utilizador. Tudo o que o utilizador tem que fazer para a repr

dução do conteúdo é clicar duas vezes sobre o seu ícone. Se a licença para esse filme for vál

-se de chamar o reprodutor multimédia preferido e o filme será ex

igura C8 é apresentada a reprodução de um conteúdo.

87

Para efectuar a reprodução dos conteúdos é necessário editar as credenciais de utilizador pre-

e escolher a opção Registo.

Através da nova janela que aparece, o utilizador deverá inserir os dados de username e pass-

licação online. Na Figura C7 é possível

Alteração das credenciais de utilizador

A reprodução do conteúdo é efectuada depois do pedido de autorização ao servidor, sendo

utilizador. Tudo o que o utilizador tem que fazer para a repro-

dução do conteúdo é clicar duas vezes sobre o seu ícone. Se a licença para esse filme for váli-

se de chamar o reprodutor multimédia preferido e o filme será exe-

Page 112: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

88

Figura C8 –

C.3 Código em Visual Basic da aplicação cliente

Nesta secção é apresentado o ccomentários relevantes para a compreensão do código. // Realiza a importação de bibliotecas necessárias para a implementação// das rotinas necessárias Imports System.Windows.FormsImports System.IO Imports System.Threading Imports System.Net Public Class vod Public filtered As Boolean Public UserName As String Public UserPassword As Public FileNamePath As Dim imIcons As ImageList = Shared Sub ThreadMethod() Thread.Sleep(4000) End Sub

CAPÍTULO 7: PERSPECTIVAS DE DESENVOLVIMENTO

– Reprodução de um conteúdo no modo Local

Código em Visual Basic da aplicação cliente

Nesta secção é apresentado o código em Visual Basic da aplicação cliente com alguns es para a compreensão do código.

Realiza a importação de bibliotecas necessárias para a implementaçãodas rotinas necessárias

System.Windows.Forms

Boolean = True String = "" As String = "" As String = ""

ImageList = New ImageList()

ThreadMethod() Thread.Sleep(4000)

NVOLVIMENTO

Reprodução de um conteúdo no modo Local

Código em Visual Basic da aplicação cliente

ódigo em Visual Basic da aplicação cliente com alguns

Realiza a importação de bibliotecas necessárias para a implementação

Page 113: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

ANEXOS 89

// Função que permite verificar a existência de credenciais // Se as credenciais não tiverem sido configuradas o utilizador // Recebe um aviso para a necessidade de o realizar Private Function CheckCredencial() As Boolean If Not IO.File.Exists("credenciais.txt") Then MsgBox("Ainda não definiu as suas credenciais!" & vbCrLf & _ " Dirija-se ao menu 'Editar > Registo'") Return False Else Return True End If End Function // Função executada quando o utilizador clica duas vezes no ficheiro // Verifica a existência de credenciais e também se o ficheiro // que o utilizador está a tentar executar é um ficheiro de video // Por fim chama a função responsável por abrir o video Private Sub OpenFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenFile.Click If CheckCredencial() = False Then Exit Sub End If Dim stFilePathAndName As String = "" Dim openFileDialog1 As New OpenFileDialog openFileDialog1.InitialDirectory = System.Environment.CurrentDirectory openFileDialog1.Title = "Open a File" openFileDialog1.Filter = "Movie Files (*.mov;*.mpeg;*.mpg;*.wmv)|*.mov;*.mpeg;*.mpg;*.wmv|All Files (*.*)|*.*" openFileDialog1.FilterIndex = 1 openFileDialog1.RestoreDirectory = True If openFileDialog1.ShowDialog() = DialogResult.OK Then stFilePathAndName = openFileDialog1.FileName OpenMovieFile(stFilePathAndName) End If End Sub // Função importante para a reprodução dos conteúdos // Primeiro realiza o pedido ao servidor para a autorização de reprodução // O pedido é enviado através de um pedido HTTP // Verifica a resposta do servidor e no caso de haver erro passa essa // informação para o utilizador através de mensagens de erro claraas. // No caso de a resposta ser positiva inicia a reprodução do conteúdo Private Sub OpenMovieFile(ByVal stFilePathAndName As String) Dim MyFile As IO.FileInfo = New IO.FileInfo(stFilePathAndName) Dim stFileName As String = ""

Page 114: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

90 CAPÍTULO 7: PERSPECTIVAS DE DESENVOLVIMENTO

Dim command As String = "" Dim sURL As String Dim wrGETURL As WebRequest Dim LineIn As String Dim i As Integer = 0 Dim objStream As Stream stFileName = MyFile.Name FileNamePath = stFilePathAndName Dim oRead As System.IO.StreamReader oRead = IO.File.OpenText("credenciais.txt") Dim user As String = oRead.ReadLine().ToString Dim pass As String = oRead.ReadLine().ToString oRead.Close() sURL = "http://unhygienix.inescn.pt/vod_soft/offline.php?username=" & user & "&password=" & pass & "&movie=" & stFileName wrGETURL = WebRequest.Create(sURL) wrGETURL.Proxy = WebProxy.GetDefaultProxy() objStream = wrGETURL.GetResponse.GetResponseStream() Dim objReader As New StreamReader(objStream) LineIn = objReader.ReadLine Select Case LineIn Case "200 - OK : Action completed successfully." command = Chr(34) & stFilePathAndName & Chr(34) System.Diagnostics.Process.Start(command) Case "400 - Bad Request." MsgBox("Não foi possível contactar o servidor de Licenças," & vbCrLf & _ " por favor tente mais tarde!") Exit Sub Case "401 - Unauthorized : User failed to provide a valid password required for access to the server." MsgBox(" O conjunto do seu Username e Password não coincidem," & vbCrLf & _ "por favor redefina as suas credenciais no menu 'Editar > Registo'.") Exit Sub Case "402 - User not found : User failed to provide a valid user name." MsgBox(" O seu Username não foi encontrado no servidor," & vbCrLf & _ "por favor registe-se ou redefina as suas credênciais no menu 'Editar > Registo'.") Exit Sub Case "404 - File Not Found : The movie provided does not exist." MsgBox("O ficheiro que pretende abrir não está disponível no servidor.") Exit Sub Case "405 - Licence Required : User does not have a license for the file." MsgBox("Não têm licença para ver este filme." & vbCrLf & _ " Compre a sua licença online.")

Page 115: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

ANEXOS 91

Exit Sub Case "406 - Not Acceptable" MsgBox("A sua licença para este filme expirou." & vbCrLf & _ "Por favor renove a sua licença online.") Exit Sub Case "408 - Request Timeout" MsgBox("O tempo do seu pedido expirou. Tente mais tarde.") Exit Sub Case "409 - Local Conflict" MsgBox("Um erro interno impediu o bom funcionamento do processo.") Exit Sub Case "500 - Server Error : In most cases, this error is a result of a problem with the code or program you are calling rather than with the web server itself." MsgBox("Ocorreu um erro no servidor, o processo abortou.") Exit Sub Case "503 - Service Unavailable" MsgBox("O serviço não está disponível," & vbCrLf & _ " por favor tente mais tarde!") Exit Sub Case Else MsgBox("Erro não definido!") Exit Sub End Select End Sub // A saída do programa pede ao utilizador uma confirmação Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click If MsgBox("Tem a certeza que " & _ "deseja fechar a aplicação?", _ MsgBoxStyle.Question Or _ MsgBoxStyle.YesNo Or _ MsgBoxStyle.DefaultButton2) = MsgBoxResult.No Then Exit Sub Else Me.Close() End If End Sub // A seguinte função apresenta a janela onde se introduzem as credenciais // de utilizadores Private Sub RegistoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RegistoToolStripMenuItem.Click Dim login As Form = LoginVoD

Page 116: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

92 CAPÍTULO 7: PERSPECTIVAS DE DESENVOLVIMENTO

login.Show() End Sub // Função que permite ao utilizar a selecção de um directório especifico // através da caixa de diálogo do Windows Private Sub FolderButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FolderButton.Click Dim FolderBrowserDialog1 As New FolderBrowserDialog If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then LocalPathBox.Text = FolderBrowserDialog1.SelectedPath() localListView_BeginUpdate() End If End Sub // Função que faz a listagem dos ficheiros presentes no directório // escolhido. Tem a particularidade de apresentar os ficheiros com vários // tipos de icones, tendo o tipo sido seleccionado pelo utilizador Private Sub localListView_BeginUpdate() localListView.Clear() Dim defaultDirectory As String = LocalPathBox.Text Dim directories() As String directories = System.IO.Directory.GetDirectories(defaultDirectory) Dim dlength As Integer = directories.Length Dim di As Integer For di = 0 To dlength - 1 Step 1 Dim item As ListViewItem Try imIcons.Images.Add(Bitmap.FromFile("folder.ico")) item = New ListViewItem(Path.GetFileName(directories(di)), imIcons.Images.Count - 1) item.SubItems.Add(Path.GetFullPath(directories(di))) item.SubItems.Add("Folder") localListView.Items.Add(item) Catch ex As Exception MsgBox(ex.Message) End Try Next di Dim files() As String files = System.IO.Directory.GetFiles(defaultDirectory) Dim flength As Integer = files.Length Dim fi As Integer For fi = 0 To flength - 1 Step 1

Page 117: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

ANEXOS 93

Dim item As ListViewItem Dim extension As String = Path.GetExtension(Path.GetFileName(files(fi))) Dim finfo As FileInfo = New FileInfo(files(fi)) If filtered = True Then Select Case extension Case ".mov" GoTo AddToList Case ".mpeg" GoTo AddToList Case ".mpg" GoTo AddToList Case ".wmv" GoTo AddToList Case Else GoTo EndProcedure End Select Else GoTo AddToList End If AddToList: Try Dim myIcon As System.Drawing.Icon = Icon.ExtractAssociatedIcon(Path.GetFullPath(files(fi))) imIcons.Images.Add(myIcon) item = New ListViewItem(Path.GetFileName(files(fi)), imIcons.Images.Count - 1) item.SubItems.Add(Path.GetFullPath(files(fi))) item.SubItems.Add("File") localListView.Items.Add(item) myIcon = Nothing Catch ex As Exception MsgBox(ex.Message) End Try EndProcedure: Next fi localListView.SmallImageList = imIcons localListView.LargeImageList = imIcons End Sub // A função seguinte define a vista como miniaturas Private Sub Miniaturas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Miniaturas.Click localListView.View = View.SmallIcon End Sub

Page 118: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

94 CAPÍTULO 7: PERSPECTIVAS DE DESENVOLVIMENTO

// A função seguinte define a vista como mosaicos Private Sub MosaicosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MosaicosToolStripMenuItem.Click localListView.View = View.Tile End Sub // A função seguinte define a vista como uma lista Private Sub ListaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListaToolStripMenuItem.Click localListView.View = View.List End Sub // A função seguinte define a vista como icones Private Sub ÍconesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ÍconesToolStripMenuItem.Click localListView.View = View.LargeIcon End Sub // A função seguinte verifica o tipo de filtragem especificada (se pretende // ver todos os tipos de ficheiros ou apenas os ficheiros de video) e // actualiza a listagem do directório Private Sub FilterToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FilterToolStripMenuItem.Click If filtered = False Then filtered = True ElseIf filtered = True Then filtered = False End If localListView_BeginUpdate() End Sub // Função que verifica o duplo clique nos itens apresentados na listagem // do directório. No caso de ser um directório entra nesse directório, // no caso de um ficheiro de video tenta executá-lo através da função // específica ou se for outro tipo de ficheiro indica que deve escolher // apenas um ficheiro de vídeo. Private Sub localListView_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles localListView.DoubleClick Dim objDrawingPoint As Drawing.Point Dim objListViewItem As ListViewItem objDrawingPoint = localListView.PointToClient(Cursor.Position) If Not IsNothing(objDrawingPoint) Then With objDrawingPoint objListViewItem = localListView.GetItemAt(.X, .Y) End With If Not IsNothing(objListViewItem) Then

Page 119: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

ANEXOS 95

If CheckCredencial() = False Then Exit Sub End If Dim spath As String = localListView.Items(objListViewItem.Index).SubItems.Item(1).Text Dim stype As String = localListView.Items(objListViewItem.Index).SubItems.Item(2).Text If stype.ToString = "Folder" Then LocalPathBox.Text = spath localListView_BeginUpdate() Else Dim extension As String = Path.GetExtension(Path.GetFileName(spath)) Select Case extension Case ".mov" GoTo OpenMovieFile Case ".mpeg" GoTo OpenMovieFile Case ".mpg" GoTo OpenMovieFile Case ".wmv" GoTo OpenMovieFile Case Else MsgBox("O ficheiro que pretende abrir não é um video") GoTo ExitProcedure End Select OpenMovieFile: OpenMovieFile(spath) ExitProcedure: End If End If End If End Sub // Através desta função o directório escolhido passa a ser aquele que o // utilizador tem definido como seu directório casa. A definição deste // directório pode ser vista mais adiante. Private Sub HomeButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HomeButton.Click If IO.File.Exists("home.txt") Then Dim homepath As String Dim oRead As System.IO.StreamReader oRead = IO.File.OpenText("home.txt") homepath = oRead.ReadLine() oRead.Close() If Not String.IsNullOrEmpty(homepath) Then LocalPathBox.Text = homepath localListView_BeginUpdate() End If Else

Page 120: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

96 CAPÍTULO 7: PERSPECTIVAS DE DESENVOLVIMENTO

MsgBox(" Ainda não definiu o seu directório Casa," & vbCrLf & _ " por favor navegue até ao directório pretendido" & vbCrLf & _ "e pressione o botao 'Definir Directório com Casa'") End If End Sub // Esta função realiza a actualização do directório actual Private Sub RefreshButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RefreshButton.Click If Not String.IsNullOrEmpty(LocalPathBox.Text) Then localListView_BeginUpdate() End If End Sub // Esta função vai para o directório pai do directório em que se encontra // de momento. Private Sub ParentDirButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ParentDirButton.Click If Not String.IsNullOrEmpty(LocalPathBox.Text) Then If Not LocalPathBox.Text = Directory.GetDirectoryRoot(LocalPathBox.Text) Then LocalPathBox.Text = Directory.GetParent(LocalPathBox.Text).FullName localListView_BeginUpdate() End If End If End Sub // Através desta função é definido o directório casa introduzindo num // num ficheiro de preferências, essa informação Private Sub DefineHomeButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DefineHomeButton.Click Dim oWrite As System.IO.StreamWriter If String.IsNullOrEmpty(LocalPathBox.Text) Then MsgBox("Não seleccionou nenhum directório!") Else oWrite = IO.File.CreateText("home.txt") oWrite.WriteLine(LocalPathBox.Text) oWrite.Close() End If End Sub // Ao iniciar a aplicação esta função teste se existe algum directório // definido como casa. Se existir abre esse directório para listagem. Caso // contrário abre o explorador em branco e deixa o utilizador navegar // pela árvore de directórios Private Sub vod_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If IO.File.Exists("home.txt") Then

Page 121: 347o VoD usando DRM Final.docx)ee02236/pstfc/documents/... · 2007-07-02 · Resumo O presente documento descreve um serviço de Video On Demand usando DRM desenvol-vido no âmbito

ANEXOS 97

Dim homepath As String Dim oRead As System.IO.StreamReader oRead = IO.File.OpenText("home.txt") homepath = oRead.ReadLine() oRead.Close() If Not String.IsNullOrEmpty(homepath) Then LocalPathBox.Text = homepath localListView_BeginUpdate() End If End If End Sub End Class