Pedro J. A. de Lima <pedrojramancio@yahoo.com.br>
Guido Lemos de Souza Filho <guido@dimap.ufrn.br>
Virgínia C. C. de Paula <virginia@dimap.ufrn.br>
DIMAp - CCET - UFRN
Universidade Federal de Rio Grande do Norte
Resumo
1. Introdução
2. Especificação UML do DynaVideo
3. Projeto e Implementação
4. Conclusão
Referências bibliográficas
Resumo
Um sistema de vídeo sob demanda (VoD - Video on Demand) é um sistema onde um servidor envia a um cliente vídeo sob demanda, em tempo real, sobre uma infra-estrutura de rede de comunicação. Este trabalho foi realizado no contexto do projeto Natalnet , cujo principal objetivo foi realizar testes em aplicações multimídia como videoconferência, vídeo sob demanda e ensino a distância. Dentre as aplicações alvo do projeto, destaca-se a necessidade de disponibilizar o acervo de vídeos da TVU (TV Universitária da UFRN) sob demanda para usuários conectados à rede NatalNet. Esta demanda motivou o desenvolvimento de um sistema VoD que foi denominado DynaVideo (Dynamic Video Distribution Service). O projeto e implementação do DynaVideo seguiu as etapas usuais da engenharia de software: pesquisa e testes de outros sistemas existentes para definição dos requisitos; modelagem do sistema em UML e implementação. O protótipo do sistema foi implementado em Java. Atualmente, estamos avaliando seu desempenho.
1. Introdução
No contexto do Projeto Natalnet, foi identificada a necessidade de se utilizar um sistema de vídeo sob demanda para disponibilizar o acervo de vídeo da TVU para os integrantes do NatalNet. A partir deste ponto havia duas opções: comprar ou desenvolver um sistema. Optou-se por desenvolver, antes de mais nada porque no projeto não dispúnhamos de recursos suficientes para comprar um sistema pronto com suporte para vídeos MPEG. Além disso, identificou-se no projeto pessoal e infra-estrutura adequados.
Um sistema de vídeo sob demanda consiste, em linhas gerais, de um conjunto de equipamentos e de software que permitem ao usuário, por intermédio de uma interface instalada em um equipamento terminal (aparelho de televisão ou computador pessoal, por exemplo), enviar comandos a um equipamento servidor de vídeo, localizado nas instalações de uma empresa provedora do serviço, para estabelecer a programação que deseja assistir. Considerando esta definição, foram definidos os seguintes requisitos:
- oferecer interação com usuário t-vod (true-video on demand), onde o usuário tem total controle sobre a apresentação do vídeo, ou seja, são disponibilizadas as funções de um videocassete;
- trabalhar com vídeo no formato MPEG, porque este é o padrão para DTV (Digital Television) e o sistema está sendo usado para permitir o acesso ao acervo de vídeos de uma emissora de TV;
- fornecer um serviço de pesquisas de títulos, para facilitar a localização dos vídeos pelos usuário.
Foram consideradas ainda as seguintes características técnicas:
- uso da arquitetura cliente-servidor;
- disponibilizar interface para a web, facilitando a distribuição e o acesso; e
- implementar um cliente como applet, aumentando assim a portabilidade do sistema.
2. Especificação UML do DynaVideo
Baseado nos requisitos citados na introdução, o sistema foi modelado em UML. UML se utiliza de diagramas para expressar as várias visões que o sistema possui e para atender todas as etapas da engenharia de software.
A Figura 1 apresenta o diagrama de classes do DynaVideo. Este diagrama apresenta a arquitetura de software do sistema, mostrando uma visão estrutural (estática), através da descrição de suas classes e dos relacionamentos entre as classes.

Figura 1 - Diagrama de Classes do Sistema DynaVideo
Após concluída a etapa de especificação do sistema, partimos para a implementação de um protótipo com o objetivo de validar a especificação realizada.
3. Projeto e Implementação
O projeto do sistema adequou a modelagem ao ambiente escolhido para implementação da primeira versão do sistema: a plataforma Java. Java é uma linguagem de programação orientada a objetos que possui várias APIs (Application Programming Interface) que oferecem suporte a diferentes tarefas, tais como:
- suporte a banco de dados, utilizando servlets;
- programação distribuída, socktes;
- manusear vídeo e sessões RTP (Real Time Protocol), API JMF (Java Media Framework);
- desenvolvimento de aplicações para web, applets.
Assim, a opção por Java nos forneceu a infra-estrutura necessária para a implementação do sistema. Vale salientar que utilizamos também HTML para construção das interfaces da aplicação.
Os componentes do sistema foram implementados segundo a seguinte seqüência. Inicialmente, foi projetada e desenvolvida sua interface web. Essa interface foi construída com o uso de páginas HTML. O segundo passo foi implementar, usando servlets, o subsistema de busca de vídeos. A seguir foi implementado, com base na API JMF (Java Media Framework), o transmissor de vídeo. Durante o desenvolvimento, implementamos duas versões do cliente: uma como aplicação Java e outra como applet.
É válido ressaltar que a implementação foi bastante trabalhosa. A principal dificuldade encontrada foi a API JMF, pois a implementação de referência ainda é muito instável. Apesar da implementação ter sido concluída recentemente, os testes iniciais já mostram seu principal problema: o desempenho do cliente. Como ele é executado como um applet no browser da máquina do usuário, a qualidade do vídeo decodificado fica aquém do esperado.
A Figura 2 apresenta os módulos do DynaVideo que foram implementados.

Figura 2 - Diagrama de componentes do sistema DynaVideo
4. Conclusão
Do trabalho realizado, destacamos as seguintes contribuições:
- levantamento das características de vários sistemas VoD;
- modelagem do sistema de vídeo sob demanda DynaVideo que, embora utilizada como base para implementação deste sistema, serve de material de referência para o desenvolvimento de sistemas correlatos;
- protótipo do sistema funcionando.
O trabalho já realizado abre várias perspectivas de trabalhos futuros, dentre os quais destacam-se:
- a implementação do sistema usando outras plataformas de desenvolvimento, visando melhorar sua performance; e
- a implementação de servidores secundários, cujo objetivo seria disponibilizar caches para aliviar a carga de processamento no servidor primário.
Referências bibliográficas
[1] RIBEIRO, Berthier A. Vídeo sob Demanda no Lar: Ficção ou Realidade? Departamento de Ciência da Computação, UFMG. 01/outrubro/1999.
<
http://www.vod.dcc.ufmg.br/doc/jornal.html
>
[2] CECÍLIO, Edmundo L. & RODRIGUES, Rogério F. Vídeo Sob Demanda. Relatório Técnico TM 10, Laboratório Telemídia, Depto. de Informática, PUC-Rio. Outubro /1996. (60p.)
[3] STRATTON, Angela. Implementation of a Video on Demand MPEG Client-Server Model and ATM Networks. Tampere University of Technology, Filândia. 01/outubro/1999.
<
http://www.cs.tut.fi:80/tlt/stuff/vod/VoDOverview/vod.html
>
[4] ABRAM-PROFETA , Emmanuel L. e Shin , Kang G. Providing Unrestricted VCR Functions in Multicast Video-on-Demand Servers. IEEE International Conference on Multimedia Computing and Systems.
<
http://dlib.computer.org/conferen/icmcs/8557/pdf/85570066.pdf
>
[5] VIDEOCHARGER, IBM DB2 Digital Library. VideoCharger Server Key Features. Manuais de instalação. 27/01/2000.
<
http://www-4.ibm.com/software/data/videocharger/vcserverkey.html
>
[6] REALNETWORKS. Realserver Administration Guide RealSystem G2. Manual do Administrador. 13/11/1998.
<
http://service.real.com/help/library/guides/g2/realsrvr.htm
>
[7] Booch, Gary; Jacobson, Ivar e Rumbagh, James. The Unified Modeling Language User Guide. Rational Rose Coorporation. Ed. Addison-Wesley. Outubro/1998.
[8] SOUZA, Guido Lemos de. Projeto NatalNet. Projeto de pesquisa. Departamento de Informática e Matemática Aplicada - UFRN. 1997.
[9] GHEZZI, Carlo, JAZAYERI, Mehdi, & MANDRIOLI, Dino. Fundamentals of Software Engineering. Prentice-Hall International Editions. 1991.
NewsGeneration, um serviço oferecido pela RNP – Rede Nacional de Ensino e Pesquisa
Copyright © RNP, 1997 – 2004
