You are on page 1of 34

TV.

COMmunity | Entidade Promotora:

Parceiros:

17-05-2011

Arquitectura Funcional da Plataforma

0/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

ndice
ndice de Ilustraes........................................................................................................................................... 3 Introduo .......................................................................................................................................................... 4 Tecnologias e Metodologias ............................................................................................................................... 5 Scrum.............................................................................................................................................................. 5 XML................................................................................................................................................................. 6 XML Schemas.................................................................................................................................................. 7 JSON................................................................................................................................................................ 8 HTML5 ............................................................................................................................................................ 9 .NET Framework ...........................................................................................................................................10 Visual Studio .................................................................................................................................................11 WCF ..............................................................................................................................................................12 JavaScript ......................................................................................................................................................12 CSS ................................................................................................................................................................13 SQL Server ....................................................................................................................................................13 WPF ..............................................................................................................................................................14 Arquitectura Base .............................................................................................................................................15 Utilizadores...................................................................................................................................................15 Servidor ........................................................................................................................................................16 Mdulos especficos .........................................................................................................................................17 Agregao de contedos ..............................................................................................................................17 Keywords ......................................................................................................................................................18 Distribuio via Web, RIA e mobile ..............................................................................................................19 Gesto de grupos e Partilha de Contedos ..................................................................................................20 Plugins ..........................................................................................................................................................21 Diagrama Final ..................................................................................................................................................22 Interfaces entre componentes .........................................................................................................................24 Interfaces de servios comuns s vrias instncias do TV.COMmunity .......................................................24
1/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Interfaces de servios no ambiente de SmartTVs ........................................................................................26 Interfaces de servios no ambiente Corporate ............................................................................................27 Interfaces nas Listas Elsticas .......................................................................................................................27 Interfaces no processo de upload e encoding de vdeos .............................................................................28 Interfaces na obteno de Keywords e correlao de contedos ...............................................................29 Interfaces de servios no ambiente de E-Learning ......................................................................................30

2/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

ndice de Ilustraes
Figura 1: Arquitectura base do projecto ..........................................................................................................15 Figura 2: Componentes para agregao de contedos....................................................................................17 Figura 3: Mdulo das Keywords .......................................................................................................................18 Figura 4: Web Ria e Mobile ..............................................................................................................................19 Figura 5: Gesto de grupos e partilha ..............................................................................................................20 Figura 6: Plugins e API para developers ...........................................................................................................21 Figura 7: Diagrama Final ...................................................................................................................................22

3/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Introduo
Este documento tem como objectivo a descrio da arquitectura da plataforma que ser implementada no projecto TV.COMmunity. Sero abordados os vrios mdulos que a constituem, apresentando a sua estrutura, descrevendo as tecnologias utilizadas e as respectivas formas de utilizao. Para cada mdulo ser apresentado o sub-diagrama da sua arquitectura, em que os mdulos correspondentes aparecero caracterizados a cor de laranja, facilitando assim a compreenso da forma como os mesmos esto relacionados com os restantes mdulos e com a arquitectura base. Como o prprio nome indica o TV.COMmunity um projecto que tem como objectivo a entrega de contedos multimdia como vdeo, texto e imagens, a uma comunidade especfica de consumidores. Os consumidores podem ser de dois tipos: activos ou passivos. A arquitectura apresentada tenta maximizar os vrios mdulos, de forma que estes sejam compatveis para os dois tipos de consumidores evitando assim a criao de ferramentas demasiado direccionadas. Alm dos consumidores, tambm importante referir, a parte da arquitectura e respectivas ferramentas direccionadas para a administrao dos contedos, acedidas pelos gestores da plataforma e que permitem um controlo dos contedos e a adio de novas fontes de informao.

4/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Tecnologias e Metodologias
Neste captulo sero enumeradas as tecnologias e metodologias que so provveis candidatas a serem integradas no desenvolvimento do projecto TV.COMmunity.

Scrum
O Scrum no uma tecnologia mas sim uma metodologia de desenvolvimento gil de software que se caracteriza por ser iterativa e incremental, tendo como objectivo normalizar e estruturar o desenvolvimento de aplicaes complexas. Originalmente o Scrum foi uma tcnica desenvolvida num contexto de desenvolvimento de projectos industriais, que por sua vez foi buscar inspirao tctica Scrum de Rugby, que se baseia em progredir no campo de jogo atravs de vrias corridas, do Ingls, Sprints que vo sendo reajustados medida da evoluo do jogo. O Scrum aplicado a projectos de desenvolvimento de software tem trs intervenientes: o dono do produto, o Scrum Master e a equipa de desenvolvimento. O dono do produto ou da aplicao de software a pessoa ou pessoas para quem ser desenvolvida a aplicao. O Scrum Master o gestor que gere o projecto e a equipa de desenvolvimento, assim como as metodologias, tecnologias e abordagens usadas durante o seu desenvolvimento prtico. A equipa de desenvolvimento responsvel pelo desenvolvimento e implementao da aplicao. No desenvolvimento de uma aplicao de software atravs da metodologia do Scrum so efectuados vrios passos. No inicio do projecto, o Scrum Master conjuntamente com o dono do produto renem-se e estabelecem uma Lista de Requisitos (Backlog) de produto, que uma lista de requisitos/objectivos de alto nvel para a aplicao. O desenvolvimento da aplicao dividido em vrias etapas, sendo denominadas por sprints. Por norma cada sprint tem a durao compreendida entre duas a quatro semanas, sendo entregue no fim de cada, uma parte concluda do projecto. No final das vrias corridas obter-se- a totalidade dos objectivos do projecto. No incio de cada sprint efectuada uma reunio com a equipa de desenvolvimento onde definida uma lista de objectivos denominada de Sprint Backlog. Essa lista um conjunto de tpicos concretos de implementao, que cobrem uma parte dos objectivos de alto nvel definidos na Lista de Requisitos do produto. No final de cada sprint tambm efectuada outra reunio onde so apresentados resultados ao dono do produto e onde se discutem as dificuldades e problemas que surgiram durante o sprint.
5/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Durante o sprint, o Scrum Master efectua diariamente uma breve reunio de 15 minutos com a equipa de desenvolvimento. Essas reunies denominam-se Reunio Diria de Scrum ou Daily Scrum Meeting. A debatem-se os avanos que foram efectuados desde a ultima reunio, o trabalho que vai ser efectuado at prxima reunio, e se surgiram dificuldades tanto no trabalho efectuado como no trabalho a efectuar.

Esta metodologia j utilizada pela Viatecla noutros projectos e apresentou sempre bons resultados. A parte de desenvolvimento do Projecto TV.COMmunity apresenta-se como um cenrio ideal para aplicar novamente esta metodologia e assim agilizar todo o processo de desenvolvimento.

XML
O XML uma norma reconhecida pela W3C e o seu nome provm do ingls, eXtensible Markup Language e essencialmente uma linguagem de marcao com a caracterstica de ser totalmente aberta. Isto , as etiquetas no esto pr-definidas nem fazem parte de um conjunto finito e pr-estabelecido de etiquetas. Desta forma o XML pode ser utilizado em qualquer contexto ou domnio, sendo da responsabilidade dos utilizadores estabelecerem a sintaxe pretendida para um determinado contexto. Foi inicialmente desenvolvida a partir de 1990 com o intuito de ser de fcil legibilidade tanto por computadores como por humanos sem recurso a softwares especiais de leitura. Os contedos encontramse separados da formatao, permitindo a criao de tags e atributos sem qualquer limitao. Os documentos podem estar organizados de forma hierrquica e ser altamente portveis para qualquer arquitectura ou sistema operativo. Actualmente reconhecido que o XML tem alguns pontos menos fortes, nomeadamente o facto de ser pouco compacto e de se tornar lento, pesado e com grande redundncia em grandes quantidades de informao. No entanto no pode deixar de ser considerado por ser um padro de facto e ser universalmente aceite e que qualquer linguagem de programao ou framework possua suporte nativo para o parsing e processamento dos ficheiros em XML. De seguida apresentado um exemplo de um ficheiro XML:

6/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

<?xml version="1.0" encoding="ISO-8859-1"?> <receita nome="po" tempo_de_preparo="5 minutos" tempo_de_cozimento="1 hora"> <titulo>Po simples</titulo> <ingredientes> <ingrediente quantidade="3" unidade="xcaras">Farinha</ingrediente> <ingrediente quantidade="7" unidade="gramas">Fermento</ingrediente> <ingrediente quantidade="1.5" unidade="xcaras" estado="morna">gua</ingrediente> <ingrediente quantidade="1" unidade="colheres de ch">Sal</ingrediente> </ingredientes> <instrucoes> <passo>Misture todos os ingredientes, e dissolva bem.</passo> <passo>Cubra com um pano e deixe por uma hora em um local morno.</passo> <passo>Misture novamente, coloque numa bandeja e asse num forno.</passo> </instrucoes> </receita>

No contexto do TV.COMmunity a utilizao de XML far todo o sentido tendo em conta todas as suas vantagens acima referidas.

XML Schemas
Os XML Schemas podem ser vistos como modelos de documentos XML, isto , definem as classes, tipos e atributos que um determinado XML pode ter. Os XML Schemas so muitas vezes utilizados como filtro de validao ao consumo e processamento de um XML. Por exemplo, um web service que consome XML sobre os meta dados de livros, ento ir ter um XML Schema especifico sobre esse contexto. Esse XML Schema invalidar qualquer XML que no seja sobre livros e que no obedea a sintaxe estabelecida no XML Schema sobre Livros. O XML Schema tambm ser til para filtrar ficheiros XML que sejam sobre Livros mas que contenham erros de formatao ou de sintaxe. Como anteriormente j foi referido, o XML uma linguagem de marcas completamente aberta, de onde surge a necessidade de ter sempre XML Schemas que validem os contedos processados em cada contexto. De seguida apresentado um exemplo de um XML Schema:

7/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/contactExample" xmlns:tns="http://www.example.org/contactExample" elementFormDefault="qualified"> <xs:element name="Contacts"> <xs:annotation> <xs:documentation> File of personal contacts. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence maxOccurs="unbounded"> <xs:element name="Person"> <xs:complexType> <xs:sequence> <xs:element name="PersonGivenName" /> <xs:element name="PersonFamilyName" /> <xs:element name="PersonBirthDate" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

A utilizao dos XML Schemas no TV.COMmunity ser de todo imperativa a partir do momento que se opte por utilizar XML, de modo a manter a criao e consumo de XML estvel, obedecendo a regras para assim garantir a integridade dos diversos componentes do TV.COMmunity que efectuaram trocas de XML entre si.

JSON
O nome JSON provm do acrnimo em ingls JavaScript Object Notation e um formato leve para efectuar a troca de dados entre servios e aplicaes. Originalmente foi desenvolvido para ser utilizado em ambientes de JavaScript, pois at a sua estrutura equivalente s listas de JavaScript. No entanto, teve tanto sucesso que actualmente utilizado nos mais diversos ambientes e linguagens de programao para alm de JavaScript. O JSON considerado por muitos uma verso moderna, actualizada e mais leve do XML. No entanto o seu suporte e disseminao ainda no to abrangente como o XML. As principais linguagens que j suportam JSON nativamente ou atravs de APIs so: JavaScript, ActionScript, C, C++, C#, Java, Perl, PHP, Python, Ruby e Lua. De seguida apresentado um exemplo simples em JSON.
8/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

{ "Aluno" { { { ] }

: [ "nome": "Joo", "notas": [ 8, 9, 7 ] }, "nome": "Maria", "notas": [ 8, 10, 7 ] }, "nome": "Pedro", "notas": [ 10, 10, 9 ] }

No contexto do TV.COMmunity faz todo o sentido usar JSON sempre que possvel e desde que no seja imperativo utilizar XML. Ao utilizar o JSON, estar-se- a agilizar processos e a melhorar a performance de toda a plataforma.

HTML5
O HTML a principal e mais difundida linguagem para apresentao de contedos na internet. atravs dela que os browsers constroem os elementos textuais e visuais para serem exibidos no ecr do utilizador. O HTML5 a sua mais recente verso que traz um conjunto de vantagens sobre as anteriores verses. Essas alteraes permitem dotar as pginas web com recursos multimdia mais ricos e mais interactivos, resultando numa experincia mais enriquecedora para o utilizador consumidor de contedos. Outra grande vantagem do HTML5 a possibilidade de poder integrar nas pginas web contedos multimdia, tais como, canvas, SVGs, udio e vdeo sem recorrer utilizao de plugins proprietrios externos como era o caso do Silverlight e do Flash. Tecnologias essas que eram problemticas a nvel de portabilidade e compatibilidade entre plataformas e especialmente problemticas em plataformas mveis, nomeadamente os tablets e os smartphones. Para alm das principais novidades do HTML 5 anteriormente referidas, ainda se destacam as seguintes: Novo parsing do HTML5, mais flexvel e rpido Possibilidades de embutir SVGs e MathML directamente no cdigo HTML5 Novas Tags: o Article o Figure o Aside o Footer o Audio o Header o Bdi o Hgroup o canvas o Keygen o Command o Mark o Data o Meter o Datalist o Nav o Details o Output o Embed o Progress o Figcaption o Rp

o o o o o o o o o

Rt ruby section source summary time track video Wbr

9/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

No context do TV.COM, o HTML5 faz todo o sentido ser adoptado devido aos factos j mencionados de ser polivalente e transversal a qualquer plataforma ou sistema operativo. As suas valncias no vdeo tambm se mostram bastantes interessantes no mbito do TV.COMmunity.

.NET Framework
.NET Framework uma plataforma / framework unificada que permite o desenvolvimento e a criao de aplicaes desktop, aplicaes Web e Web Services. Tal plataforma tem uma arquitectura semelhante plataforma JAVA, pois as aplicaes nela criada podem ser executadas em qualquer dispositivo, mesmo que tenha uma arquitectura diferente. Ao criar uma aplicao atravs desta plataforma, esta no vai ser exclusiva para o sistema/arquitectura em que foi criada, mas vai poder ser executada em qualquer sistema que tenha a plataforma .NET instalada, porque ao compilar a aplicao em vez de ser criado cdigo nativo criado cdigo binrio que ser executado pela mquina virtual instalada em cada sistema. Ao contrrio da plataforma JAVA, em que as aplicaes s podem ser escritas unicamente em JAVA, na plataforma .NET as aplicaes podem ser escritas em mais de 20 linguagens de programao distintas, tais como C\#, COBOL, C++, Fortran, Haskell, JAVA, Java script, LUA, Pascal, Perl, Python, Ruby e SmallTalk, entre outras. Tambm de um modo semelhante plataforma JAVA, a plataforma .NET funciona a dois passos. As aplicaes criadas na plataforma .NET so compiladas duas vezes, sendo esta a caracterstica que permite a portabilidade entre sistemas. A primeira compilao ocorre sobre a linguagem em que a aplicao foi desenvolvida e gera uma linguagem comum intermdia plataforma .NET. Essa linguagem intermdia em cdigo binrio igual em qualquer sistema em que a aplicao seja compilada e independentemente da linguagem em que a aplicao tenha sido escrita. Cada uma das linguagens suportadas pela plataforma .NET tem o seu prprio compilador especfico para a linguagem intermdia. A partir da linguagem intermdia, cada sistema tem um segundo compilador que transforma a linguagem intermdia em linguagem mquina nativa. Este segundo compilador distinto para cada arquitectura do sistema em que corre a aplicao de modo a poder ser compatvel e optimizado a cada arquitectura. A plataforma .NET semelhana da API de JAVA, tambm dispe de uma enormssima biblioteca de classes utilitrias, e que permitem ao programador usar um nmero bastante elevado de componentes, funes e objectos sem os ter de programar de raiz. Essa biblioteca de classes bastante completa e dispe de muitos recursos na criao de interfaces grficos, estruturas de dados, conectividade a bases de dados, criptografia, criao de interfaces Web, Web services e vrios protocolos de comunicao.
10/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Esta plataforma no esttica; desde o seu incio em 2002 tem tido, ao longo do tempo, uma grande evoluo, surgindo em cada nova verso mais funcionalidades e potencialidades. Devido sua abrangncia e polivalncia e aliado ao facto da Viatecla ter um longo historial e experincia com esta plataforma, uma ferramenta que facilmente ser utilizada em diversos componentes / interfaces no desenvolvimento do TV.COMmunity.

Visual Studio
O Visual Studio um IDE, (Ambiente de Desenvolvimento Integrado - do Ingls Integrated Development Environment) bastante poderoso que permite desenvolver diversos tipos de aplicaes, em diversas linguagens de programao e para diversas plataformas. Permite desenvolver aplicaes, desde as mais simples de linha de comandos, s mais completas com interface grfico. Permite tambm desenvolver pginas Web e aplicaes Web baseadas em Web Services. Com este IDE possvel desenvolver projectos para diversas plataformas, como o: .NET Framework, .Net compact Framework e Windows Phone. Ao nvel de linguagens o IDE Visual Studio permite trabalhar nativamente com C, C++, Visual Basic, C\#, F\#, M, Python. No entanto, permite tambm desenvolver em qualquer outra linguagem suportada na Framework .NET atravs da instalao de mdulos e plugins. Este IDE suporta tambm nativamente vrias tecnologias da rea Web, tais como XML, XSLT, HTML, XHTML, Java Script e CSS. A nvel de edio de cdigo, o Visual Studio possui as tradicionais ferramentas dos IDE mais complexos, tais como realce de sintaxe/colorao de sintaxe, completao de cdigo, permite inserir marcadores no cdigo e colapsar blocos de cdigo. A nvel de debug, a caracterstica mais notvel que permite efectuar debug a dois nveis: um durante a primeira compilao a nvel do cdigo intermdio, e outro durante a segunda compilao a nvel da compilao para linguagem mquina. Permite ainda criar interfaces grficas, desde as mais simples WinForms at as mais complexas interfaces Web baseadas em WPF ou HTML/CSS. Esta ferramenta devido tambm a sua polivalncia ser o principal candidato a IDE de desenvolvimento para o projecto TV.COMmunity.

11/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

WCF
Resumidamente o nome WCF tem origem no Ingls, Windows Communication Foundation. uma API inserida no .NET Framework a partir da verso 3.0 em Dezembro de 2006. Esta API foi criada seguindo uma abordagem SOAP (Simple Object Access Protocol) tendo em vista o objectivo de permitir aos programadores da plataforma .NET a fcil criao de servios, webservices e criao de aplicaes distribudas segundo a filosofia dos sistemas distribudos. A comunicao WCF entre processos clientes e processos servidores feita sobre mensagens SOAP codificadas num formato binrio optimizado de alta performance. No entanto, um processo WCF, seja ele um cliente ou servidor, no est restrito a comunicar com outros servios exclusivamente WCF. possvel comunicar com outros processos que no sejam WCF, sendo nestes casos a comunicao feita com a informao codificada em XML. Neste caso a performance menor do que com o formato binrio nativo. Tendo em conta que no desenvolvimento do TV.COMmunity sero necessrios diversos web services entre diversos mdulos, o WCF um forte candidato a ser utilizado durante o seu desenvolvimento.

JavaScript
O JavaScript uma linguagem de programao muito difundida e utilizada no contexto Web Client-side, ou seja, do lado do Browser do utilizador. uma linguagem imperativa, orientada a objectos e com tipagem fraca. Grande parte dos seus comandos e instrues de cdigo tiveram origem no JAVA e no C++. A grande utilidade do JavaScript a sua facilidade em tornar o DOM do HTML dinmico, reactivo e interactivo por via de eventos. Funcionalidades tais como abrir uma nova janela, controlar o seu tamanho e posio, validar campos de formulrios, alternar imagens no mesmo campo, animar elementos da pagina web e alterar estilos sem necessitar de efectuar o reload da pgina. O JavaScript praticamente uma tecnologia incontornvel no desenvolvimento do TV.COMmunity, pois pretende-se que o TV.COMmunity seja dinmico, apelativo e interactivo para o utilizador, premissas essas que tornam o JavaScript relevante.

12/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

CSS
O CSS uma linguagem que serve para definir estilos visuais de documentos escritos em XML ou HTML. CSS tem origem nos termos em ingls Cascading Style Sheets, e foi criado com o intuito de separar os contedos das pginas Web da sua formatao visual. Desta forma, para uma determinada pgina web, o cdigo HTML fica num ficheiro enquanto todas as formataes visuais ficam separadas no respectivo ficheiro CSS. Para tal separao poder funcionar devidamente, o HTML ou o JavaScript tem vrios selectores que so comuns no CSS, permitindo desta forma estabelecer a ligao entre eles. Os selectores tm diversos graus de abrangncia desde os mais globais e genricos aos mais especficos sobre uma instancia concreta de um elemento HTML. Os selectores indo dos mais gerais para os mais especficos so: Tipo, Classe, Grupo e Id. O CSS ser uma tecnologia priori garantida no desenvolvimento do TV.COMmuniy devido facilidade e modularidade que possibilita no desenvolvimento de interfaces Web enriquecidos.

SQL Server
O SQL Server um sistema de gesto de bases de dados relacionais desenvolvido pela Microsoft. semelhana de outros, este sistema permite desenvolver consultas, queries, vistas e manipular os dados atravs delas. A plataforma permite ainda integrar o cdigo SQL em aplicaes da plataforma .NET, e receber instrues de consulta, insero e edio provenientes das diversas linguagens de programao suportadas pela plataforma .NET, quer sejam aplicaes desktop, pginas web ou web services. As suas linguagens de consulta so o ANSI SQL e uma extenso de SQL, a T-SQL que foi desenvolvida pela Microsoft em conjunto com a Sybase, lder mundial na rea das bases de dados relacionais. Para o desenvolvimento do TV.COMmunity, esto previstas a utilizao de bases de dados para dar apoio ao funcionamento e aos dados transaccionados no TV.COMmunity, sendo o SQL Server um dos principais candidatos.

13/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

WPF
O Windows Presentation Foundation (ou WPF), uma plataforma grfica inserida na Framework .NET na verso 3.0 e que se mantem presente e melhorada nas novas verses da mesma framework. O WPF usa uma linguagem de marcao, conhecida como XAML para desenvolvimento de interfaces grficas ricas. Este oferece um modelo consistente de programao para construir aplicaes e uma clara separao entre interface com o utilizador e lgica de funcionamento. Uma aplicao WPF pode ser desenvolvida tanto para ambiente Desktop ou para integrar um site da web, criando assim interfaces ricas e de experincia mais envolvente, interactiva e gratificante para o utilizador. Como as premissas desta tecnologia orientadas s interfaces ricas e interactivas coincidem com os objectivos do TV.COMmunity, est tambm uma tecnologia candidata a ser utilizada durante o seu desenvolvimento.

14/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Arquitectura Base
A arquitectura da plataforma assenta essencialmente no modelo Cliente-Servidor em que cada uma das camadas de software tem papis e funes bem definidas. De seguida sero analisados em pormenor o papel de servidor e o papel de cliente.

Figura 1: Arquitectura base do projecto

Utilizadores
Existem dois tipos principais de utilizadores, o cliente que consome os contedos e o administrador que cria e define os contedos que so apresentados (elementos multimdia e respectivos metadados). Associados a cada um destes tipos de utilizadores existem vrios subtipos que sero apresentados no decorrer do documento, consoante os mdulos que lhes correspondem.

15/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

O consumidor visualiza os contedos atravs do seu browser, acedendo a uma pgina Web. Tal como o Consumidor, o Administrador tambm acede ao servio utilizando o seu browser para realizar a gesto da plataforma, sendo necessrio realizar a sua autenticao prvia no BackOffice.

Servidor
No componente servidor, a responsabilidade inteiramente da entidade que disponibilizar o servio, e responsvel pela manuteno do mesmo e as actualizaes necessrias para que o cliente, na vertente Administrador consiga realizar as suas aces sem problemas. O servidor constitudo por 5 ferramentas essenciais: Gestor de Contedo Mdulo responsvel pela gesto do contedo que apresentado nas pginas de visualizao. este mdulo que organiza o contedo consoante as variveis definidas pelo administrador. BackOffice Ambiente Web a que o Administrador acede para adicionar, actualizar ou remover contedo apresentado ao consumidor. Base de dados Local onde so armazenadas de forma persistente todas as informaes relativas aos acessos, utilizadores e dados relativos s pginas destinadas aos utilizadores. A base de dados tem um papel fundamental no controlo dos utilizadores, sendo esta quem guarda a informao das permisses no BackOffice. Repositrio de contedos Local onde so guardados os contedos, tanto em formato vdeo como texto ou imagens, em sistema de ficheiros. Para alm do Repositrio interno possvel a utilizao de um ou mais Repositrios externos (presentes em outras infra-estruturas). API de acesso a contedo O mdulo da API de acesso a contedos utilizado para normalizar todos os acessos informao, sejam eles atravs do BackOffice ou atravs de outros servios (aplicaes cliente internas e externas plataforma).

16/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Mdulos especficos
Nesta parte do documento sero abordados os mdulos especficos e as funes que desempenham no projecto. Sero adicionados progressivamente ao diagrama arquitectural, mdulo a mdulo, os componentes constituintes de cada um.

Agregao de contedos

Figura 2: Componentes para agregao de contedos

17/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Este mdulo permite que a plataforma consiga utilizar fontes exteriores de informao e contedo, reutilizando a mesma e possibilitando a sua apresentao ao consumidor. A informao de sites como o Facebook e o Twitter pode ser apresentada atravs da plataforma de um modo completamente diferente. O Auto Content o principal mdulo responsvel por essa agregao e reutilizao de informao. permitido ao administrador da plataforma a edio e criao dos templates, que so utilizados pelo Auto Content para gerar automaticamente novos contedos agendados por si no sistema. Aps ser gerado um novo contedo, o Auto Content disponibiliza-o ao utilizador atravs do gestor de contedos, em que esse novo contedo pode ficar arquivado ou ser logo automaticamente exibido nos canais do utilizador da plataforma consoante os fluxos de aprovao definidos pelo Administrador.

Keywords

Figura 3: Mdulo das Keywords

O mdulo das Keywords ou Palavras-chaves pensado e dirigido sobretudo para o processamento de informao no servidor. Constitudo pelas funes mais comuns, como a utilizao das keywords para
18/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

caracterizar de forma mais rpida determinados dados, mas principalmente para direccionar o contedo da forma mais correcta e relevante para o tipo de utilizador que o solicitou ao gestor de contedos. Extraindo keywords de um contedo, ele pode ser catalogado e indexado. Este mdulo tem como funes, pesquisar feeds com uma determinada keyword, verificar se existem dados novos sobre um tema ou associar um vdeo sobre um certo assunto se este tiver meta dados textuais. Consoante as keywords encontradas e as que so definidas pelo administrador, o mdulo decide se deve ou no processar essa informao. Todas estas funes tornam a plataforma bastante dinmica e direccionada.

Distribuio via Web, RIA e mobile

Figura 4: Web Ria e Mobile

A compatibilidade com as diversas formas de visualizar contedos essencial numa plataforma deste tipo. por isso indispensvel um mdulo, que gere o contedo consoante o dispositivo ou mtodo que o

19/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

consumidor utilize para navegar na informao. Com o transcoder de vdeo, a plataforma consegue criar o formato de vdeo que melhor se adequa necessidade do consumidor. Antes de comunicar com o transcoder de vdeo, o gestor verifica se existe em cache o contedo que pretende. Caso no exista, o transcoder ter que regerar o contedo e enviar ao gestor.

Gesto de grupos e Partilha de Contedos

Figura 5: Gesto de grupos e partilha

Como forma de tornar a plataforma mais colaborativa, no s para o Consumidor mas tambm para o Administrador, esto presentes funes de gesto de grupos e de partilha de contedos. O Administrador acede ao BackOffice, que pode ser acedido tambm pelo Produtor de Contedos, que lhe d acesso as ferramentas de administrao atravs da API de acesso a contedos. A API acede ao mdulo de gesto de utilizadores que consoante as permisses do utilizador que est a aceder, mostra as funcionalidades de BackOffice que este pode utilizar.

20/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

permitido ao Administrador a criao de Grupos, tanto a nvel de utilizador de BackOffice como ao nvel dos consumidores. Com a criao dos grupos o Administrador pode dar privilgios aos Produtores de Contedo para executarem novas funes no BackOffice ou pode criar vrios grupos de consumidores definindo que tipo de informao apresentada aos consumidores e que tipos de permisses de interactividade lhes foram atribudas.

Plugins

Figura 6: Plugins e API para developers

De forma a conseguir expandir ao mximo a plataforma, est presente na mesma, um mdulo de bastante importncia, o mdulo de gesto de plugins. Este mdulo utilizado por um novo tipo de utilizador da plataforma o Developer. Com acesso a uma API especfica da plataforma, o Developer consegue criar aplicaes / aplicaes ad-hoc que sero utilizadas como contedos e que so incorporadas na plataforma.
21/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Tal como o Administrador e o Produtor de Contedo, o Developer acede aos contedos e API atravs do BackOffice, contudo as suas funes so de criao de plugins para a plataforma e essa criao realizada localmente. Atravs da criao de Plugins direccionados para um determinado contedo o Sistema torna-se polimrfico e adaptvel a diferentes tipos ou formatao de contedos. Por exemplo, um cliente que tenha diversos sites com diferentes contedos e layouts, consegue utilizar a plataforma apenas necessitando de criar um plugin especfico para cada site.

Diagrama Final

Figura 7: Diagrama Final

Aqui apresentado o diagrama final com todos os mdulos que constituem o sistema. Alm dos mdulos referidos no princpio do documento, so tambm de destacar os seguintes:
22/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Cliente Front End Interactivo Atravs deste Front End o grupo de Consumidores Interactivos consegue interagir com o sistema, podendo escolher os contedos que pretende no se limitando a assistir aos contedos propostos.

BackOffice Administrador Atravs do BackOffice os perfis de Administrador, Developer e Produtor de Contedo, conseguem aceder s ferramentas do sistema de forma a fazer a gesto do mesmo sem ser necessrio aceder directamente as configuraes e propriedades do mesmo.

Servidor Transcoder de vdeo O Transcoder de vdeo o mdulo responsvel pela codificao em vrios formatos de um determinado contedo. Este mdulo essencial para que os contedos da plataforma estejam disponveis nos vrios devices (mobile,corporate, TV-IP e Web). Sem este mdulo seria impossvel por exemplo, disponibilizar ao utilizador de um dispositivo mvel um contedo que originalmente estava em alta definio. Auto Content a principal ferramenta de gerao de contedos com base em dados exteriores para a plataforma. atravs deste mdulo que so moldadas as informaes provenientes do exterior, de acordo com os templates definidos pelo administrador. Aps formatar os contedos o Auto Content envia os mesmos para o gerador de contedos que os organiza na pgina solicitada pelo gestor. O Auto Content desempenha as suas funes quando o gerador de contedos solicita contedos externos. Gesto de Utilizadores Este mdulo acede base de dados atravs do Gestor, garantido a segurana do sistema de BackOffice, concedendo os privilgios adequados aos utilizadores que se tentam ligar ao sistema.

23/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Interfaces entre componentes


Ao longo do desenvolvimento do TV.COMmunity sero necessrios diversos interfaces de comunicao entre os diversos mdulos do projecto. O presente captulo antecipa esses interfaces e avana com uma proposta concreta para cada situao.

Interfaces de servios comuns s vrias instncias do TV.COMmunity


O TV.COmmunity, ir assentar muito sobre a arquitectura de cliente-servidor. No servidor, onde vai estar alojada a parte lgica da plataforma, assim como os servios que respondero aos pedidos dos clientes. No lado do servidor ainda existir a noo de agrupador e gestor de contedos, que permitir aos administradores da plataforma efectuar de uma forma fcil, o controlo dos contedos inseridos na plataforma, assim como a sua classificao e validao. Nesse gestor de contedos tambm haver a noo de canais e de playlists, para permitir que numa nica plataforma e de uma forma centralizada, existam diversos canais distintos com contedos e targets distintos. Assim, as vrias instncias de clientes do TV.COMmunity necessitaro de efectuar pedidos ao servidor para obter informao sobre os canais de contedos e as suas propriedades para permitir a construo de canais, playlists e montar todas as estruturas necessrias a exibio de contedos.

O primeiro mtodo para obter as primeiras informaes dos canais de contedos ser: public Stream GetChannelInfoJson(string channelId) Onde efectuado um pedido onde simplesmente se envia o Id do canal, sendo obtida uma resposta em JSON com todos os dados necessrio. Essa resposta JSON poder ser semelhante a: {"ContactsLink":"http:\/\/www.viatecla.com\/","CopyrightText":" 20082011 VIATECLA", "Culture":"pt-PT", "LogoImage":null, "MiddleRoll":null, "Name":"Labs", "Overlay":null, "PostRoll":null, "PreRoll":null, "VideoChannelId": "95c39a8c-6695-467e-9bfdb150526c2006"}

24/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Desta resposta podemos destacar argumentos como a endereo da entidade responsvel pelo canal (ContactsLink), a lngua associada ao canal (Culture) e a imagem associada ao canal (LogoImage). Este exemplo dado de uma resposta JSON hipottica foi apenas demonstrativo do tipo de respostas obtidas. Daqui em diante, para os diversos servios apresentados, no sero indicadas respostas por irem ser meramente especulativas e ainda no estarem completamente definidas nesta fase do projecto. De seguida far sentido questionar o canal sobre as suas categorias, para tal ser necessrio outro pedido do tipo: public Stream GetChannelCategoriesJson(string channelId) Em que o argumento de pedido continua a ser simplesmente o ID do canal pretendido. Neste caso a resposta obtida continua a ser um formato JSON.

De seguida ser necessrio um pedido para obter informaes sobre todos os contedos existentes numa determinada categoria de um determinado canal. public Stream GetCategoryContentsJson(string contentId, string first, string max) channelId, string

A proposta aqui apresentada, necessita como parmetros de entrada do ID do canal, o ID dos contedos, e a indicao do incio do intervalo e a sua dimenso para limitar a pesquisa.

No caso das aplicaes efectuarem o sharing para redes sociais e afins, ser partilhado um URL simplificado. No entanto a plataforma ao receber um pedido de exibio a partir de um URL simplificado de partilha ter de o traduzir e obter o JSON com os dados necessrios desse contedo. Esse mtodo remoto ter a seguinte forma: public Stream GetVideoJson(string channelId, string shortId) Onde recebe como parmetros o id do canal e o short id que a URL simplificada.

As diversas instncias do TV.COMmunity tambm tero mecanismos de pesquisa sobre os diversos contedos disponveis na plataforma. Esse servio poder ter a seguinte forma:

25/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

public Stream SearchVideosCategoriesJson(string query, string first, string max)

channelId,

string

Onde recebe como argumentos o id do canal onde efectuada a pesquisa, a query de pesquisa e mais dois argumentos de limitao do numero de resultados apresentados. Neste caso a resposta tambm ser devolvida no formato JSON.

Interfaces de servios no ambiente de SmartTVs


No ambiente de SmartTVs para alm dos servios e pedidos genricos apresentados anteriormente sero necessrios mais alguns servios especficos deste ambiente.

Ser necessrio um pedido que obtm informaes sobre as categorias de um canal formatadas para as SmartTVs, o servio poder ter a seguinte assinatura: public Stream GetCategoriesJSON(string channelId) Em que simplesmente recebe o id do canal pretendido e devolve o JSON com todos os dados das diversas categorias desse canal.

Ser ainda necessrio outro servio com resposta especifica para as SmartTVs, nomeadamente a obteno de contedos para um determinado canal e numa determinada categoria. Stream GetCategoryContentsJson(string categoryChannelId, categoryContentId, string first, string max); string

O servio precisa de receber o id do canal, o id da categoria e mais dois parmetros sobre a limitao do nmero de contedos enviados na resposta. A resposta vem formatada especialmente para o contexto das SmartTV e vir no formato JSON.

26/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Interfaces de servios no ambiente Corporate


Neste ambiente apenas necessrio mais um servio especfico para alm dos genricos s vrias instncias da plataforma. A necessidade deste servio especifico no se prende com o facto de ser um pedido diferente, mas sim, da resposta necessitar de vir num outro formato diferente do JSON dos servios genricos. public Channel GetChannel(Guid channelID) Este servio apenas recebe o id do canal pretendido, no entanto a resposta j no enviada no formato JSON.

Interfaces nas Listas Elsticas


As listas elsticas esto presentes em diversas instncias do TV.COMmunity. Para o seu correcto funcionamento necessitam de alguns interfaces especficos. Concretamente vo necessitar de dois servios, um para quando integradas em ambientes de BackOffice e outro para quando integradas em ambientes de FrontEnd. De seguida so apresentadas as duas propostas: public Stream GetVideoElastics() Public Stream GetCreatorVideos(string userid); A primeira proposta destinada aos ambientes de FrontEnd, em que simplesmente efectuado um pedido de todos os contedos vdeo disponveis, desta forma no enviado nenhum parmetro no pedido. A resposta ser no formato JSON e conter todos os dados necessrios para a construo das listas elsticas.

A segunda proposta destinada aos ambiente de Back Office, e difere da primeira por necessitar de um parmetro, o id do utilizador. O motivo de necessitar desse parmetro o facto de no BackOffice apenas serem apresentados os vdeos referentes ao utilizador em questo.

27/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Interfaces no processo de upload e encoding de vdeos


Uma etapa fundamental do TV.COMmunity alimentar e enriquecer a plataforma de contedos vdeo. Para tal necessrio um processo de upload em que os utilizadores/administradores da plataforma possam efectuar a insero de vdeos. Esse processo efectuado em duas fases distintas mas interligadas. A primeira o upload para a plataforma de diversos dados referentes ao vdeo conjuntamente com os bytes que constituem o vdeo. Essa primeira etapa poder ter a seguinte assinatura: public void UploadChunk(string fileKey, string chunkNumber, string totalChunks, Stream data) fileName, string

Neste caso o servio no devolver nenhuma resposta na forma de JSON ou de objecto, apenas uma mensagem de sucesso ou falha. A nvel de parmetros, ser necessrio enviar a chave para indexar o vdeo, o nome do ficheiro, o tamanho e o numero de blocos necessrios para representar o vdeo e por fim, a stream com o vdeo em formato binrio.

Aps esta primeira etapa, a segunda ser desencadeada automaticamente e ser responsvel por efectuar os diversos encodings do vdeo, de modo a torna-lo polivalente para os diversos dispositivos e resolues de displays onde o TV.COMmunity possa ser visualizado. A chamada a essa segunda etapa poder ter a seguinte forma: public void StartEncode(string metadataFilepath) Onde apenas recebe o caminho onde o ficheiro proveniente do upload foi alocado. Por sua vez, a evocao deste servio ir evocar diversos servios internos, um para cada tipo de encoding pretendido. De seguida so apresentados dois exemplos, nomeadamente o encoding para webm e mp4, que so em conjunto os formatos mais abrangentes e polivalentes.

28/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

case "webm": process.StartInfo.Arguments = string.Format( "-i {0} -b:v 2000k -vcodec libvpx -acodec libvorbis -ab 160000 -f webm -g 30 -s 1280x720 {1}", Input.FilePath, Input.VideoFiles [filestoconvertkey].Path); break; case "mp4": process.StartInfo.Arguments = string.Format( "-i {0} -vcodec libx264 -crf 24 -g 25 -acodec libmp3lame -ab 2000k -ar 44100 {1}", Input.FilePath, Input.VideoFiles [filestoconvertkey].Path); break;

Ainda na rea de uploads, o TV.COmmunity tambm ir necessitar de efectuar o uploads dos contedos de enriquecimento dos vdeos, designados por extras. Esses extras podero ser de diversos formatos. Para a plataforma no ficar esttica a apenas alguns formatos, o processo de upload necessita de ser o suficiente genrico para comportar formatos que no futuro se mostrem relevantes. A assinatura no servio para tal poder ser semelhante a: public void ProcessRequest(HttpContext context) Em que necessrio o parmetro HttpContext. Esse parmetro ser essencialmente o contedo de um pedido POST de HTTP, com os respectivos campos e o body data em binrio que poder conter qualquer formato. Desta forma ficar assegurada a capacidade de realizar o upload de extras em qualquer formato.

Interfaces na obteno de Keywords e correlao de contedos


Para a obteno de keywords no contexto do TV.COMmunity e sendo o motor de keywords um mdulo independente, tambm so necessrios alguns servios de comunicao entre mdulos. O primeiro servio, simplesmente ir receber texto ou textos em bruto, process-los, extrair as keywords e devolver ento uma lista com essas palavras chave. A sua assinatura ser semelhante a : public string[] getKeywords(string text)

29/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Outro servio importante ser conseguir correlacionar contedos textuais e assim efectuar ou no a associao entre eles, sempre baseando-se nas keywords previamente extradas de cada um. Tal servio poderia ter a seguinte assinatura: public double keywordsText2) documentsRelation(string[] keywordsText1, string[]

Onde receber as listas de keywords dos dois documentos em comparao e devolver uma mtrica que relacionar o grau de proximidade entre os dois documentos. Essa mtrica ser contida numa escala continua compreendida entre 0 e 1, em que 0 significa nada relacionados e o 1 que so documentos iguais.

Interfaces de servios no ambiente de E-Learning


Para o ambiente de Video-Leraning do TV.COMmunity e devido a este ser o mais interactivo, tambm o ambiente com mais interfaces e servios entre mdulos. Para comear necessrio que os clientes de Front End obtenham meta dados sobre um determinado vdeo, de modo a poderem construir a interface grfica de acordo com as informaes recebidas, nomeadamente o nmero e nome dos captulos, o nmero e tipo de extras por capitulo, etc. Esse servio inicial ser do tipo get e poder ter uma assinatura semelhante a: url : "../ws/TVCOMService.svc/getvideometadata/" + video_id, Em que enviado como argumento o id do vdeo em questo, sendo a resposta devolvida no formato JSON.

Como anteriormente j foi visto, na vertente de E-Learning tambm esto disponveis tiny URL para efectuar partilhas nas diversas rede sociais. Essas URL reduzidas ao serem requisitadas na plataforma tm de ser reconvertidas na URL convencional para assim poder lanar a aplicao normalmente. Esse servio de converso ser do tipo get e ter uma assinatura semelhante a: url : "../ws/TVCOMService.svc/getvideoidbyshortid/" + short_id,

30/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Como argumento, simplesmente recebe o tiny URL e devolve a respectiva URL convencional dentro de um formato JSON.

Do lado do Back Office onde efectuado o enriquecimento dos vdeos, sempre que se gravam alteraes realizadas, sejam a criao/alterao de captulos ou a insero/alterao de nomes e descries, os meta dados referentes ao vdeo tm de ser actualizados no servidor. Para isso existir um servio do tipo Post com a seguinte assinatura: url: "../ws/TVCOMService.svc/savevideometadata?videoid=" + video_id, Como argumento ser enviado o id do vdeo que sofreu alteraes, e no body do Post ser enviado o ficheiro XML com as alteraes propriamente ditas.

Para a insero, obteno e remoo de notas e comentrios por parte dos utilizadores so necessrios mais alguns servios dedicados a estas funes. Assim, ser necessrio haver um total de 6 mtodos, para inserir comentrios e notas (2), para obter notas e comentrios (outros 2) e para efectuar a remoo novamente de notas e comentrios (mais 2). sempre necessrio existir esta dualidade entre o mesmo servio para as notas e para os comentrios, devido a estes serem internamente objectos diferentes com comportamentos distintos. Para obter as notas e os comentrios teremos: url: "../ws/TVCOMService.svc/getvideocomments/" + video_id, url: "../ws/TVCOMService.svc/getvideousernotes/" + video_id + ";" + user_id, O primeiro para a obteno dos comentrios de um vdeo, ser um pedido get e receber como parmetro apenas o id do Video em questo. O segundo ser destinado obteno das notas de um respectivo vdeo, ser tambm do tipo get e receber como parmetros o id do vdeo em questo e ainda o id do utilizador. Este ultimo parmetro novo em relao ao getVideoComments, e isso deve-se ao facto das notas serem individuais e referentes a cada utilizador, da a necessidade de acrescentar este parmetro.

Para a insero de comentrios e notas existiro mtodos semelhantes a:

31/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

url: "../ws/TVCOMService.svc/insertcomment", data = { comment: arg_comment, mark: arg_mark, videoId: video_id, userId: user_id }; url: "../ws/TVCOMService.svc/insertnote", data = { note: arg_note, mark: arg_mark, videoId: video_id, userId: user_id } Neste caso ambos os servios sero do tipo Post e todos os parmetros de envio no estaro representados na assinatura do mtodo, mas sero anexados no body data do mtodo Post. No primeiro referente a insero de comentrios, como possvel observar, na URL do servio no ser agregado qualquer parmetro. J no body data do Post iro diversos parmetros, nomeadamente o texto do comentrio, a marca temporal onde o comentrio ser anexado ao vdeo, o id do vdeo em questo e por fim o id do user que criou o comentrio. No segundo mtodo para inserir notas, tambm no enviado nenhum argumento na assinatura do mtodo, mas sim apenas no body data do Post. Neste caso os argumentos so os mesmos que anteriormente referidos para a insero de comentrios.

Para a remoo dos comentrios e das notas propem-se os servios com as seguintes assinaturas: url: "../ws/TVCOMService.svc/deletecomment/" + comment_id, url: "../ws/TVCOMService.svc/deletenote/" + note_id, Em ambos os casos so servios do tipo Get e recebem como parmetros o id do comentrio ou da nota, respectivamente. Como resposta a estes dois servios apenas enviada uma mensagem textual de sucesso ou falha na remoo.

Ainda do lado do front end, como existir uma funcionalidade para obter vdeos relacionados com o vdeo em visualizao, ento um servio para obter essa informao com uma assinatura bastante simples: url: "../ws/TVCOMService.svc/related/" + video_id,

32/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Ser um servio get e apenas ter como argumento o id do vdeo em visualizao, como resposta obter uma estrutura JSON com diversas informaes sobre os vdeos relacionados com este.

Por fim, ainda no lado do front end tambm haver a necessidade de efectuar o download dos extras presentes no enriquecimento de um determinado vdeo. Para o download da maioria dos extras no ser necessrio nenhum servio ou mtodo especial para o realizar. Pois esse download ser realizado atravs das funcionalidades de qualquer browser. No entanto, o extra do tipo Slide Show no apenas um elemento que se possa facilmente efectuar o download por via do browser, visto ser uma coleco de imagens. Para contornar tal problema, existir um servio capaz de comprimir todas essas imagens num nico ficheiro zip e facilitar assim o download. Esse servio poder ter a seguinte assinatura: url: "../ws/TVCOMService.svc/downloadslideshow", Ser um servio do tipo Post, no ter qualquer argumento na sua assinatura, pois os parmetros sero enviados dentro do body data do Post. Esses argumentos internos sero o id do vdeo e o id do extra. Internamente este servio ter uma cache, para coleces de imagens j agrupadas e comprimidas, dessa forma, evita-se comprimir vrias vezes a mesma coleco.

33/1 Projecto em curso com o apoio de:

You might also like