View
2
Download
0
Category
Preview:
Citation preview
UNIVERSIDADE FEDERAL DE PERNAMBUCO
CENTRO DE INFORMÁTICA
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
Armando Soares Sousa
Um Servidor de dados multimídia para sistemas virtuais de ensino
ESTE TRABALHO FOI APRESENTADO À PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO DO CENTRO DE INFORMÁTICA DA UNIVERSIDADE FEDERAL DE PERNAMBUCO COMO REQUISITO PARCIAL PARA OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIA DA COMPUTAÇÃO.
ORIENTADOR: Prof.Dr FERNANDO DA FONSECA DE SOUZA
RECIFE, JUNHO/2008
Pós-Graduação em Ciência da Computação
Um Servidor de Dados Multimídia para Sistemas
Virtuais de Ensino
Por
Armando Soares Sousa
Dissertação de Mestrado
Universidade Federal de Pernambuco posgraduacao@cin.ufpe.br
www.cin.ufpe.br/~posgraduacao
RECIFE, JUNHO/2008
Sousa, Armando Soares Um servidor de dados multimídia para sistemas virtuais de ensino / Armando Soares Sousa. - Recife: O Autor, 2008. 161 p. : il., fig., quadros. Dissertação (mestrado) – Universidade Federal de Pernambuco. CIn. Ciência da Computação, 2008. Inclui bibliografia e apêndices. Sistema multimídia – Banco de dados. 2. Realidade virtual. 3. Educação a distância . I. Título. 006.6 CDD (22.ed.) MEI2008-069
1
Agradecimentos
Agradeço primeiramente a Deus, por ter nos dado saúde e força de vontade para
vencer os desafios que a vida nos impõe, e por ter nos dado a inteligência e a capacidade
de evoluir e trabalhar em prol de uma sociedade melhor.
Agradeço, sobre tudo, a meus pais Beninu do Carmo Sousa e Maria dos Santos
Soares Sousa, por terem me mostrado os caminhos do bem e fornecido condições de
crescimento pessoal e profissional.
Agradeço a minha irmã, Fernanda Soares Sousa, por ter sido uma grande
conselheira, amiga e motivadora pela busca constante do conhecimento e atualização
profissional.
Agradeço a minha namorada Mariana Diel Amorim, por ser uma grande
companheira, exemplo de pessoa e motivadora constante durante esta importante etapa
de minha vida, pois nunca me deixou desanimar em nenhum momento e sempre
acreditou que eu iria até o final.
Agradeço a meus Mestres do Centro de Informática por primarem pela
excelência no aprendizado, mostrando a importância do constante aprendizado, pela
busca da qualidade e profissionalismo, contribuindo para a formação do conhecimento,
principalmente ao professor Dr. Fernando Fonseca pela oportunidade, atenção e
orientação durante minhas atividades acadêmicas, projetos, conselhos, críticas e
revisões.
Agradeço à figura ilustre do professor Dr. Alex Sandro Gomes por ter fornecido
um ambiente propício, colaborativo, entusiástico e aplicado que é o projeto
AMADEUS-MM. Além da motivação constante para a pesquisa e empreendimento.
Agradeço a Antonio Josivaldo Nascimento Filho por ter me ajudado nos
experimentos do trabalho, nas pesquisas, implementações e sugestões de melhorias.
Agradeço a todos os meus amigos do mestrado, em especial Vinícius Pádua e
Guilherme Avelino, pela motivação, exemplo de estudo, revisões, discussões acaloradas
sobre pesquisa e aplicação. Além da convivência fraterna que contribuiu para meu
crescimento pessoal e de pesquisa durante o mestrado.
Agradeço a todos os amigos do C.E.S.A.R que compreenderam esse momento
dual pesquisador-colaborador e ao próprio C.E.S.A.R por ter me proporcionado a bolsa
de incentivo de mestrado e por primar pela qualidade de seus profissionais sempre
2
incentivando a educação contínua fornecendo pessoas e um ambiente que permita
construir essa via.
3
Resumo
O grande diferencial dos LMS (Learning Management System) mais sofisticados
está no fato deles disponibilizarem uma maior aproximação e facilidade de
entendimento do conteúdo gerenciado e disponibilizado ao aluno ou aprendiz. Para isso,
o uso de recursos multimídia como áudio, imagens, vídeos e objetos de realidade
virtual, inseridos no conteúdo oferecido, permite um aprendizado mais agradável e mais
atrativo para o aluno que usa o LMS com estes recursos.
Devido à grande dificuldade de se manipular, inserir e recuperar tais objetos
multimídia e de realidade virtual nos conteúdos gerenciados por LMS, sentiu-se a
necessidade de especificar e implementar um servidor de dados que facilitasse tal
manipulação integrada a um LMS
O objetivo principal deste trabalho é desenvolver um Servidor de Dados para
manipulação e gerenciamento de objetos multimídia e objetos de realidade virtual em
um LMS, tendo sido escolhido como estudo de caso o LMS AMADEUS-MM. O
referido servidor tem como finalidade principal o gerenciamento de conteúdo
multimídia em ambientes virtuais de ensino, com particular eficiência no
armazenamento e transferência de dados multimídia (imagens, áudios, vídeos) e mundos
de realidade virtual.
O Servidor de Dados Multimídia provê uma estrutura de dados para o
gerenciamento do conteúdo multimídia em um ambiente virtual de ensino, além de
fornecer componentes (armazenamento, negócio e interface) para dar suporte à gestão
de componentes multimídia (imagens, áudio e vídeo) e mundos de realidade virtual
(VRML e X3D). Sua arquitetura permite a integração com plataformas de ensino a
distância via troca de mensagens XML de forma que a plataforma de ensino possa
usufruir de maneira transparente os serviços que o Servidor de Dados Multimídia provê.
Para isso, foi feito um estudo sobre cada tipo de objeto multimídia e de realidade
virtual e de como são armazenados tais objetos em banco de dados; foi elaborado e
implementado um conjunto de protótipos, um para cada forma de armazenamento
estudada, e foi feito um conjunto de avaliações baseadas em engenharia de desempenho
de forma a definir a melhor abordagem para armazenar e recuperar estes objetos
multimídia para ambientes de ensino a distância. Além disso, foi proposto um modelo
de integração entre o servidor e plataformas de ensino a distância de forma que tais
4
plataformas possam usufruir dos serviços oferecidos de forma transparente. O servidor
proposto nessa pesquisa faz parte de um projeto de pesquisa intitulado Projeto
Amadeus_MM1, cujo objetivo é desenvolver um ambiente virtual para ensino baseado
em uma proposta pedagógica centrada em processos de medição e avaliação,
coordenado pelos professores Fernando Fonseca e Alex Sandro Gomes (Cin/UFPE).
Palavras Chaves: LMS, Objetos Multimídia, Objetos de Realidade Virtual, Gestão de
Conteúdo, Educação a Distância, AMADEUS-MM.
1 Processo CNPq n. 507497/2004-4
5
Abstract
The biggest differential of the most sophisticated LMS (Learning Management
System) is that they provide a greater and better proximity and facility of understanding
the managed and available content to the student or apprentice. For this, the use of
multimedia resources such as audio, images, videos and virtual reality objects, inserted
in the content that is offered by the LMS, allows a more pleasant learning, as well as
turning the system more appealing to the students that use the LMS, which supports
such resources.
Due to a great difficulty to manipulate, insert and recover such multimedia and
virtual reality objects in the content managed through LMS there is a need of specifying
and implementing a Data Server that could facilitate such manipulation integrated to a
LMS.
The main objective of this work is to develop a Data Server to manipulate
multimedia and virtual reality objects inside a LMS; in this case the LMS chosen was
AMADEUS-MM. This Server has the main purpose of managing the multimedia
content in a virtual learning environment, with peculiar efficiency in the storage and in
the transfer of the multimedia data (image, audio, and video) and virtual reality worlds.
The Multimedia Data Server provides a data structure to the administration of
the multimedia content in a virtual learning environment, as well as supplies
components (storage, business and interface) to give support to the management of
multimedia content (images, audios and videos) and virtual reality worlds (vrml e x3d).
Its architecture allows the integration with distance learning platforms through the
exchange of XML messages so that such platforms can use, in a transparent way, the
services that the Multimedia Data Server provides.
For this, a study of each type of multimedia and virtual reality objects and how
these objects are storaged in a database was carried out. A group of prototypes were
elaborated and implemented, one for each form of studied storage and a group of
evaluation based in performance engineering was done, so that a better approach to the
storage and recovery of these multimedia objects for teaching through distance
environment could be defined. It was also proposed an integration model between the
Server and distance learning platforms, so that those platforms can take advantage of the
services, which are offered in a transparent way. This server in this research is part of a
6
larger project called Amadeus-MM Project, whose objective is to develop a learning
virtual environment based on a pedagogic purposal centred in mediation and evaluation
processes, coordinated by the Professors Fernando Fonseca and Alex Sandro Gomes
(Cin/UFPE).
Key words: LMS, Multimidia Objects, Virtual Reality Objects, Content Management,
Distance Education, AMADEUS-MM.
7
Sumário
1 Introdução .................................................................. 12
1.1 Motivação ....................................................................................................... 12
1.2 Objetivos ......................................................................................................... 13
1.3 Organização da Dissertação............................................................................ 13
2 Fundamentos de Objetos Multimídia ........................ 16
2.1 Multimídia ...................................................................................................... 16
2.2 Imagem Digital ............................................................................................... 18
2.2.1 Características Fundamentais de Imagens .................................................. 19
2.2.2 Padrões de Compressão de Imagem Digital ............................................... 21
2.2.3 Image Magick ............................................................................................. 22
2.3 Vídeos Digitais ............................................................................................... 22
2.3.1 Características de Vídeo Digital ................................................................. 23
2.3.2 Padrões de Compressão de Vídeo Digital .................................................. 26
2.3.3 FFMPEG – Ferramenta de Manipulação de Vídeo .................................... 32
2.4 Áudio Digital .................................................................................................. 32
2.4.1 Características fundamentais de áudio ....................................................... 33
2.4.2 Compressão de Áudio ................................................................................. 34
2.5 Objetos de Mundos Virtuais ........................................................................... 38
2.5.1 Grafos de Cena ........................................................................................... 39
2.5.2 X3D ............................................................................................................ 41
2.6 Considerações Finais ...................................................................................... 42
3 Manipulação de Objetos Multimídia ......................... 43
3.1 Recuperação de Objetos Multimídia baseada em conteúdo ........................... 43
3.1.1 Recuperação de Imagens ............................................................................ 43
3.1.2 CBIR - Content Based Image Retrievel ...................................................... 44
3.1.3 Content Based Multimedia Retrieval ......................................................... 46
3.2 Recuperação de Objetos Multimídia baseada em Metadados ........................ 47
3.2.1 Busca baseada em Metadados .................................................................... 47
3.2.2 Classificação de Metadados........................................................................ 50
3.3 Armazenamento e Recuperação de Objetos Multimídia ................................ 52
3.4 Considerações Finais ...................................................................................... 55
4 Plataformas de Ensino a Distância ............................ 57
4.1 Ambientes Virtuais de Ensino ........................................................................ 57
4.2 Sistemas de Gestão de Conteúdo .................................................................... 58
4.2.1 Moodle (Modular Object-Oriented Dynamic Leanring Enviroment) ........ 59
4.2.2 ClaroLine .................................................................................................... 61
4.2.3 Amadeus ..................................................................................................... 63
4.3 Considerações finais ....................................................................................... 66
5 O Protótipo do Servidor de Dados Multimídia ......... 67
5.1 Análise de Competidores ................................................................................ 67
5.2 Definição dos requisitos básicos..................................................................... 69
5.2.1 Requisitos Funcionais ................................................................................. 69
8
5.2.2 Requisitos Não-Funcionais ......................................................................... 69
5.2.3 Diagrama de Casos de Uso ......................................................................... 73
5.2.4 Diagrama de Pacotes .................................................................................. 74
5.3 Prototipação e Avaliação de Desempenho dos Protótipos ............................. 75
5.3.1 Análise de Desempenho de servidores ....................................................... 75
5.3.2 Etapas dos Testes ........................................................................................ 83
5.3.3 Protótipo 4 .................................................................................................. 83
5.4 Arquitetura Proposta ..................................................................................... 106
5.4.1 Modelo de Componentes .......................................................................... 106
5.5 Interface do protótipo com o usuário ............................................................ 113
5.6 Considerações Finais .................................................................................... 118
6 Estudo de Caso: Integração com a plataforma Amadeus ........................................................................ 119
6.1 Arquitetura de Integração com a Plataforma Amadeus-MM ....................... 119
6.1.1 Padrões Arquiteturais da plataforma Amadeus-MM ................................ 119
Servidor AmadeusMM ......................................................................................... 120
Middleware AmadeusMM .................................................................................... 120
WebSite, MicroMundos e Mídias. ........................................................................ 121
6.2 Visualização da Interface de Integração entre SDMM e Amadeus-web. ..... 126
6.3 Considerações Finais .................................................................................... 133
7 Conclusões ............................................................... 134
7.1 Resumo das Contribuições ........................................................................... 134
7.2 Limitações e Trabalhos Futuros ................................................................... 135
Referências .................................................................... 137
Apêndice A - Manipulação de Objetos Multimídia em SGBD Convencionais ................................................... 147
Apêndice B – Testes de desempenho com o Jmeter ..... 159
9
Lista de Figuras Figura 1: Etapas de Digitalização de uma imagem. Adaptado de [GATTASS 2005] ................ 19
Figura 2 : Exemplo de resolução em pixels. Adaptado de [GATTAS 2005] .............................. 20
Figura 3: Exemplo de resolução em dpi (respectivamente 600, 300, 150, 60, 30) . Adaptado de [GATTAS 2005] ................................................................................................................. 20
Figura 4: Proporção entre diversas resoluções. Adaptado de [SONY 2007] .............................. 24
Figura 5: Proporção entre diversos aspect ratios ......................................................................... 24
Figura 6: Relação Mídia x Espaço Ocupado. Adaptado de [FERNANDES 2006] ..................... 25
Figura 7: Componentes do MPEG-4. Adaptado de [TODESCO 2000]. ..................................... 29
Figura 8: Usos do H.264. Adaptado de [APPLE 2006]. ............................................................. 30
Figura 9 Comparação entre H.264 e MPEG4 part 2. Adaptado de [APPLE 2006]. ................... 31
Figura 10 Áudio Analógico (Vermelho) em Digital (Cinza). [MPEG 2007] .............................. 33
Figura 11: Codificador MP3. Adaptado de [CHIARIGLIONE 1996]. ....................................... 36
Figura 12: Exemplo de grafo de cena. Adaptado de [Walsh 2002]. ............................................ 40
Figura 13: Editando um conteúdo no Moodle ............................................................................. 60
Figura 14: Inserindo uma imagem no Moodle. ........................................................................... 60
Figura 15: Imagem inserida em um conteúdo. ............................................................................ 61
Figura 16: Editando um conteúdo no ClaroLine. ........................................................................ 62
Figura 17: Inserindo uma imagem no conteúdo. ......................................................................... 62
Figura 18; Imagem inserida no conteúdo. ................................................................................... 63
Figura 19: Tela de acesso ao Amadeus. ...................................................................................... 64
Figura 20: Inserindo material no conteúdo ................................................................................. 65
Figura 21: Visualizando referência de material no conteúdo ...................................................... 65
Figura 22: Visualizar material multimídia no Amadeus. ............................................................ 66
Figura 23: Modelo de Casos de Uso ........................................................................................... 73
Figura 24: Diagrama de Pacotes do Sistema ............................................................................... 74
Figura 25: Diagrama de Classes do Protótipo do Servidor de Dados Multimídia. .......... 81
Figura 26:Modelo de transferência dos objetos multimídia e de realidade virtual ..................... 82
Figura 27: Tabelas do Protótipo 4 ............................................................................................... 83
Figura 28: Plano de Testes de Desempenho – Interface do JMeter ............................................ 86
Figura 29: Plano de testes – Detalhamento de Inserção de Imagem – Interface do JMeter ........ 87
Figura 30: Plano de testes – Detalhamento de Consulta de Imagem – Interface do Jmeter. ....... 87
Figura 31: Inserção de Imagem em ambiente local (10 usuários) ............................................... 88
Figura 32: Inserção de Imagem em ambiente local (100 usuários) ............................................. 89
Figura 33: Consulta de Imagem em ambiente local (10 usuários) .............................................. 89
Figura 34: Consulta de Imagem em ambiente local (100 usuários) ............................................ 89
Figura 35: Inserção de Áudio em ambiente local (10 usuários) .................................................. 90
Figura 36: Inserção de Áudio em ambiente local (100 usuários) ................................................ 91
Figura 37: Consulta de Áudio em ambiente local (10 usuários) ................................................. 91
Figura 38: Consulta de Áudio em ambiente local (100 usuários) ............................................... 91
Figura 39: Inserçao de Vídeo em ambiente local (10 usuários) .................................................. 93
Figura 40: Inserçao de Vídeo em ambiente local (100 usuários) ................................................ 93
Figura 41: Consulta de Vídeo em ambiente local (10 usuários) ................................................. 93
Figura 42: Consulta de Vídeo em ambiente local (100 usuários) ............................................... 93
Figura 43: Consulta de Objeto de Realidade Virtual em ambiente local (10 usuários) .............. 95
Figura 44: Consulta de Objeto de Realidade Virtual em ambiente local (100 usuários) ............ 95
Figura 45: Inserção de Objeto de Realidade Virtual em ambiente local (10 usuários) ............... 95
Figura 46: Inserção de Objeto de Realidade Virtual em ambiente local (100 usuários) ............. 95
Figura 47: Inserção de Imagem em ambiente local (10 usuários) ............................................... 98
Figura 48: Inserção de Imagem em ambiente local (100 usuários) ............................................. 98
Figura 49: Consulta de Imagem em ambiente local (10 usuários) .............................................. 98
Figura 50: Consulta de Imagem em ambiente local (100 usuários) ............................................ 98
Figura 51: Inserção de Áudio em ambiente real (10 usuários) .................................................. 100
10
Figura 52: Inserção de Áudio em ambiente real (100 usuários) ................................................ 100
Figura 53: Consulta de Áudio em ambiente real (10 usuários) ................................................. 100
Figura 54: Consulta de Áudio em ambiente real (100 usuários) ............................................... 100
Figura 55: Inserção de Vídeo em ambiente real (10 usuários) .................................................. 102
Figura 56: Inserção de Vídeo em ambiente real (100 usuários) ................................................ 102
Figura 57: Consulta de Vídeo em ambiente real (10 usuários) ................................................. 102
Figura 58: Consulta de Vídeo em ambiente real (100 usuários) ............................................... 103
Figura 59: Inserção de Objeto de realidade virtual em ambiente real (10 usuários) ................. 104
Figura 60: Inserção de Objeto de realidade virtual em ambiente real (100 usuários) ............... 104
Figura 61: Consulta de Objeto de realidade virtual em ambiente real (10 usuários) ................ 104
Figura 62: Consulta de Objeto de realidade virtual em ambiente real (100 usuários) .............. 105
Figura 63: A arquitetura do Servidor de Dados Multimídia...................................................... 106
Figura 64: Componentes do Servidor de Aplicação do SDMM................................................ 108
Figura 65: Detalhamento da Camada de Apresentação dos Objetos ......................................... 108
Figura 66: Diagrama de Classes representando o Componente Apresenta Imagem ................. 109
Figura 67: Datalhamento da Camada do ConversorHTMLXML dos Objetos ......................... 110
Figura 68: Diagrama de Classes representando o Componente ConversorHTX Imagem ........ 110
Figura 69: Detalhamento da Camada de Manipulação dos Objetos .......................................... 111
Figura 70: Detalhamento da camada de Persistencia dos Objetos ............................................ 112
Figura 71: Modelo Lógico do Banco de Dados ........................................................................ 112
Figura 72: Interação entre o usuário e o Servidor de Dados Multimídia .................................. 113
Figura 73: Tela Principal do Protótipo 4 ................................................................................... 113
Figura 74: Inserção de Vídeo no Protótipo 4 ............................................................................ 114
Figura 75: Consulta de Vídeos no Protótipo 4 .......................................................................... 115
Figura 76: Visualização de Vídeo no Protótipo 4 ..................................................................... 115
Figura 77: Consulta de imagens no Protótipo 4 ........................................................................ 116
Figura 78: Consulta de áudios no Protótipo 4 ........................................................................... 117
Figura 79: Visualizando um Objeto de Realidade Virtual ........................................................ 117
Figura 80: Arquitetura do Amadeus-MM [ref] ......................................................................... 119
Figura 81: Integração entre o SDMM e Amadeus-MM ............................................................ 121
Figura 82: Componente ConversorHTMLtoXML .................................................................... 123
Figura 83: Subcomponentes do ConversorHTMLtoXML ........................................................ 123
Figura 84: Componente ConversorXMLtoHTML e templates para a Plataforma de Ensino ... 125
Figura 85: Professor Cria um curso na Plataforma Amadeus ................................................... 128
Figura 86: Professor cria um módulo dentro do curso recém criado ........................................ 128
Figura 87: Consultando um vídeo dentro da Plataforma Amadeus ........................................... 129
Figura 88: Visualizando lista de vídeos disponíveis após consulta ........................................... 129
Figura 89: Visualizando um vídeo selecionado na lista de vídeos ............................................ 130
Figura 90: Tela de acesso ao Amadeus ..................................................................................... 130
Figura 91: Aluno seleciona curso .............................................................................................. 131
Figura 92: Aluno seleciona módulo e atividade vídeo .............................................................. 131
Figura 93: Conjunto de salas disponíveis para a discussão do vídeo da atividade .................... 132
Figura 94: Ambiente de vídeo-chat para a discussão do vídeo ................................................. 132
Figura 95: Exemplo de Test Plan no JMeter ............................................................................. 159
Figura 96: Plano de Testes de Desempenho – Interface do JMeter .......................................... 160
Figura 97: Plano de Testes ........................................................................................................ 161
11
Lista de Quadros
Quadro 1: Exemplos de bit rate em áudio digital. ....................................................................... 34
Quadro 2: Comparativo entre as formas de armazenamento [Silva 2006]. ................................. 54
Quadro 3: Critérios estabelecidos na análise de competidores ................................................... 68
Quadro 4: Listagem dos requisitos funcionais básicos ............................................................... 69
Quadro 5: Requisitos de Processo elicitados para o protótipo. ................................................... 70
Quadro 6: Requisitos de Segurança elicitados para o protótipo .................................................. 71
Quadro 7: Requisitos de Desempenho elicitados para o protótipo .............................................. 71
Quadro 8: Requisitos de Capacidade elicitados para o protótipo ................................................ 71
Quadro 9: Requisitos de Portabilidade elicitados para o protótipo ............................................. 72
Quadro 10: Requisitos de Usabilidade elicitados para o protótipo ............................................. 72
Quadro 11: Requisitos de Manutenibilidade elicitados para o protótipo .................................... 72
Quadro 12: Requisitos Legais elicitados para o protótipo .......................................................... 72
Quadro 13: Requisitos Interoperabilidade elicitados para o protótipo ........................................ 72
Quadro 14: Comparação dos Protótipos avaliados em [NASCIMENTO 2007] ......................... 79
Quadro 15: Cenários de Testes de Desempenho ......................................................................... 85
Quadro 16: Comparação do Desempenho dos Protótipos para Imagem em ambiente local ....... 90
Quadro 17: Comparação do Desempenho dos Protótipos para Áudio em ambiente local .......... 92
Quadro 18: Comparação do Desempenho dos Protótipos para Vídeo em ambiente local .......... 94
Quadro 19: Comparação do Desempenho dos Protótipos para ORV em ambiente local ........... 96
Quadro 20: Comparação do Desempenho dos Protótipos para Imagem em ambiente real ........ 99
Quadro 21: Comparação do Desempenho dos Protótipos para Áudio em ambiente real.......... 101
Quadro 22: Comparação do Desempenho dos Protótipos para Vídeo em ambiente real .......... 103
Quadro 23: Comparação do Desempenho dos Protótipos para ORV em ambiente real ........... 105
12
1 Introdução
Com o advento da Internet e o surgimento posterior de ambientes
virtuais, o ensino a distância tornou-se um caminho para unir conhecimentos
remotamente dispersos, com uma estratégia, ou semântica, tal que permita
maximizar o processo de aprendizagem [EBERSPACHER 2006].
Para viabilizar o ensino a distância, diversos aplicativos de gestão de
conteúdo surgiram. Esses sistemas de Gestão de Conteúdo ou Learning
Managment System (LMS) são programas geralmente baseados em tecnologia
WEB, criados para planejar, implementar e avaliar um processo de
aprendizagem específico a distância [WHATIS 2006]. Basicamente, um LMS
provê meios para criar e disponibilizar conteúdo, monitorar a participação do
estudante e avaliar seu desenvolvimento. Este pode também prover, ao
estudante, condições para usar recursos interativos tais como sala de discussão
e vídeo conferência. LMS é considerado hoje como “agente revolucionário da
formação” [ANDERSON 2006].
O crescimento acelerado e exponencial de mídias áudios-visuais tem
gerado a necessidade de se criar sistemas que armazenem, consultem,
recuperem e compartilhem estas mídias entre usuários e outros sistemas. Isto
faz com que cada vez mais os ambientes virtuais de ensino busquem por
maneiras de dar suporte a esta demanda por uso de objetos multimídia,
gerando assim um conhecimento de maior valor agregado.
1.1 Motivação
O grande diferencial dos LMS mais sofisticados está no fato deles
disponibilizarem uma maior aproximação e facilidade de entendimento do
conteúdo gerenciado e disponibilizado ao aluno ou aprendiz. Para isso, o uso
de recursos multimídia como áudio, imagens, vídeos e objetos de realidade
virtual, inseridos no conteúdo oferecido pelo LMS, permite um aprendizado
13
mais agradável e mais atrativo para o aluno que usa o LMS que dá suporte a
estes recursos.
Devido à grande dificuldade de se manipular, inserir e recuperar tais
objetos multimídia e de realidade virtual nos conteúdos gerenciados por LMS,
sentiu-se a necessidade de especificar e implementar um servidor de dados que
facilitasse tal manipulação integrada a um LMS.
1.2 Objetivos
O objetivo principal deste trabalho é desenvolver um Servidor de Dados
para manipulação de objetos multimídia e objetos de realidade virtual que dê
suporte a LMS, no caso foi escolhido o AMADEUS-MM. O referido servidor
tem como finalidade principal o gerenciamento de conteúdo multimídia em
ambientes virtuais de ensino, com particular eficiência no armazenamento e
transferência de dados multimídia (imagens, áudios, vídeos) e mundos de
realidade virtual.
Para a criação do protótipo foram realizados os seguintes itens:
i) Foi feita a definição da estrutura de dados para o gerenciamento do
conteúdo multimídia em um ambiente virtual de ensino;
ii) Foram criados componentes (armazenamento, negócio e interface) para
dar suporte à gestão de componentes multimídia (imagens, áudio e
vídeo) e mundos de realidade virtual (VRML e X3D); e
iii) O servidor foi integrado ao sistema AMADEUS-MM, de forma que esta
plataforma possa usufruir, de maneira transparente, os serviços providos
pelo servidor.
1.3 Organização da Dissertação
Além deste capítulo introdutório, esta dissertação é composta por mais seis
capítulos, como segue:
O Capítulo 2, Fundamentos de Objetos Multimídia, discute conceitos
fundamentais de objetos multimídia, tipos de objetos multimídias que serão
14
manipulados, tais como características fundamentais de imagem, vídeo, aúdio e objetos
de realidade virtual.
No Capítulo 3, Manipulação de Objetos Multimídia, é feita uma abordagem
dos aspectos relacionados a técnicas de recuperação de objetos multimídia baseadas em
conteúdo do objeto e técnicas baseadas em indexação textual com associação manual ou
automática de metadados a cada tipo de objeto. Também são abordados, neste capítulo,
fatores conceituais sobre as possíveis formas de armazenamento e recuperação de
objetos multimídia em bancos de dados.
No Capítulo 4, Plataformas de Ensino a Distância, é estudada a caracterização
dos Ambientes Virtuais de Ensino, mostrando sua importância, principais
funcionalidades, mostra os aspectos essenciais para um sistema de gestão de conteúdo e
avaliar as plataformas de ensino a distância open source mais difundidas e
disseminadas, além de verificar a capacidade ou não de gerenciamento de objetos
multimídia e mundos de realidade virtual.
No Capítulo 5, O Protótipo do Servidor de Dados Multimídia, é apresentado
o que as plataformas de ensino a distância têm em comum, além das lacunas existentes
com relação ao gerenciamento de conteúdo multimídia. Logo após, foi feita uma análise
de competidores entre as plataformas de ensino a distância escolhidas para que, desta
forma, fosse criado um conjunto mínimo de requisitos para a criação do protótipo. Uma
vez definido o conjunto de requisitos básicos do sistema, foi feita uma prototipação das
possíveis implementações das formas de armazenamento e recuperação de objetos
multimídia em banco de dados, e logo em seguida, foi definido e realizado um protocolo
de avaliação de desempenho dos protótipos implementados visando definir um protótipo
alvo que seria usado como cerne do Servidor de Dados Multimídia e finalmente
estabelecida a sua arquitetura e interface com o usuário final.
No Capítulo 6, Estudo de caso: Integração com a plataforma Amadeus, uma
vez que o Servidor de Dados Multimídia foi implementado de forma operacional e
executával no ambiente real, partiu-se para a implementação das lacunas observadas na
plataforma de ensino a distância escolhida. Foram observados detalhes da arquitetura e
implementação do Amadeus e foi estabelecida uma ponte de ligação com a arquitetura
do Servidor de Dados Multimídia, de forma que a integração fosse o mais transparente
15
possível. Foi então escolhido o cenário de gerenciamento de vídeos como
implementação completa da funcionalidade de integração.
O Capítulo 7, Conclusões e Trabalhos futuros, apresenta as conclusões da
dissertação com um breve resumo dos resultados obtidos, dificuldades enfrentadas,
apontando algumas limitações, além das perspectivas de trabalhos futuros.
Por fim, o Capítulo 8 apresenta as referências bibliográficas utilizadas na
elaboração deste trabalho.
16
2 Fundamentos de Objetos Multimídia
Neste capítulo será abordada a base conceitual necessária ao entendimento da
importância dos objetos multimídia e suas classificações bem como da manipulação de
objetos multimídia em servidores de dados multimídia. Serão estudas as características
fundamentais de imagens, áudios, vídeos digitais e objetos de realidade virtual, bem
como serão abordados diversos padrões de compressão existentes, devido a extrema
importância por implicarem diretamente com o tamanho do objeto e a sua qualidade.
2.1 Multimídia
O termo multimídia foi criado para designar sistemas de software ou hardware,
que processam várias formas de mídia eletrônica, como vídeo, áudio, imagem, gráfico,
animação e textos hiperligados. A multimídia descreve os tipos de dados que
apresentam tanto conteúdo estático como dinâmico [SITARAM 1999]. O presente
trabalho utiliza o termo multimídia tanto para dados dependentes do tempo (áudio e
vídeo) quanto para dados independentes do tempo (imagem e objetos de realidade
virtual).
O termo mídia pode ser associado a diferentes significados, como mostra a
classificação [STEINMETZ 1995] apresentada logo abaixo:
• Mídia de percepção – Este tipo se caracteriza pela maneira com que os
usuários tomam conhecimento da informação contida no ambiente de
computação. Essas informações podem ser percebidas através das mídias
visuais, por exemplo: vídeo e imagem, e auditivas como audio;
• Mídia de Representação – Este tipo caracteriza-se pelo formato das mídias
quando representadas no ambiente computacional. Por exemplo, as
informações do tipo texto podem ser representadas no formato ASCII2,
EBCDIC3, entre outros;
2 ASCII (acrônimo para American Standard Code for Information Interchange) é um conjunto de códigos para o computador representar números, letras, pontuação e outros caracteres. Surgido em 1961, um dos seus inventores foi Robert W. Bemer. 3 O código EBCDIC (Extended Binary Coded Decimal Interchange Code) descende diretamente do código BCD com 6 bit e foi criado pela IBM como um padrão no início dos anos 1960 e usado no IBM 360. Fonte: http://www.ascii.cl/htmlcodes.htm acesso em 10/12/2007
17
• Mídia de Apresentação – Este tipo se refere as ferramentas e dispositivos
para efetuar a entrada e saída de dados. Por exemplo, os formulários,
monitores de vídeo ou caixas de som são mídias usadas para permitir a
saída de informação para o usuário. Já o teclado, mouse, scaners, câmara
de vídeo e microfones são mídias de coleta de informação dos usuários;
• Mídia de Armazenamento – Este tipo caracteriza-se pela forma como as
informações multimídia são armazenadas. Por exemplo, algumas
informações são armazenadas através de microfilmagem, em disco rígido,
CD-ROM, DVD, ou dispositivos de memória flash;
• Mídia de Transmissão – Este tipo caracteriza-se pelos meios físicos de
transmissão de dados contínuos de um local para o outro. Por exemplo,
dados podem ser transmitidos através de uma rede; e
• Mídia de Intercâmbio de Informação – Este tipo caracteriza-se pelos
dispositivos que são utilizados na troca de informação entre diferentes
locais. Por exemplo, a informação pode passar por mídias de
armazenamento, através da transmissão direta, via rede de computadores
ou através do uso combinado de mídia de transmissão e armazenamento.
Com o avanço da tecnologia, o barateamento e a massificação de equipamentos
eletrônicos como desktops, notebooks, câmeras digitais, celulares, dispositivos providos
de memória flash, como MP3 players e vídeo players portáteis e a integração de todos
estes dispositivos com a Internet, culminaram na explosão de consumo, geração e
distribuição de materias multimídias. Pode-se tomar como referência os sites mais
visitados na Internet segundo ferramentas de audiência como o serviço Alexa [ALEXA
2007], um serviço da internet que entre outras funcionalidades, faz o monitoramento do
tráfego mundial da Internet. A partir daí, pode-se observar entre os 10 sites mais
visitados do mundo, 3 sites são serviços que disponibilizam exibição, consulta ou
compartilhamento de mídias áudio-visuais, tais como publicação e compartilhamento de
vídeo (youtube) [YOUTUBE 2007], publicação de imagens (fotolog) [FOTOLOG
2007] e serviço de relacionamento e compartilhamento de conteúdo multimídia, entre
eles músicas (myspace) [MYSPACE 2007].
Na próxima seção serão tratados, de forma mais detalhada, aspectos
fundamentais de mídia de percepção, mais precisamente imagens, vídeos, áudio e
18
objetos de realidade virtual, visto que estes foram os elementos escolhidos pela
pesquisa para serem manipulados e gerenciados por um servidor, de forma que tal
servidor dê suporte a requisões multimídias de um ambiente virtual de educação a
distância.
2.2 Imagem Digital
O termo imagem digital se refere aos diversos padrões de armazenamento de
imagens em um meio digital. A imagem digital possibilita o compartilhamento de fotos,
figuras, desenhos, entre outros, na Internet.
Como acontece com áudio, vídeo digital e objetos de realidade virtual, que serão
abordados mais adiante, apenas realizar a transformação da imagem contínua para uma
digital não é suficiente. Para permitir o compartilhamento de imagens na WEB, é
necessário realizar uma etapa de compressão da imagem, para diminuir o espaço de
armazenamento e conseqüentemente a quantidade de informação que é necessária para
manipular imagens na Internet.
De acordo com GONZALEZ & WOODS (1992): “Uma imagem digital é uma
matriz onde os índices das linhas e colunas identificam um ponto na imagem e o valor
do elemento da matriz identifica a informação de cor ou brilho naquele ponto”. Os
elementos de tal arranjo digital são chamados de elementos da imagem, picture
elements, pixels ou pels, com os dois últimos sendo comumente usados como
abreviação de “picture elements”. Segundo GATTASS (2005): “O processo de
digitalização de imagens compreende três importantes etapas (Figura 1):
• Amostragem, nesta etapa ocorre a conversão da imagem contínua em um
conjunto de coordenadas discretizadas;
• Quantização, nesta etapa é feita a codificação de valores contínuos de cores em
um intervalo discreto; e
• Codificação, que é a representação, em seqüência de números, da imagem
digital.
19
Figura 1: Etapas de Digitalização de uma imagem. Adaptado de [GATTASS 2005]
A seguir, serão analisados três dos principais padrões de armazenamento e
compressão usados em imagens digitais na Internet. Os seguintes padrões foram
escolhidos, por serem os mais utilizados:
• JPEG, Padrão criado pelo Joint Photographic Experts Group (JPEG)
[JPEG 20007] que utiliza lossy compression (compressão com perda de
informação);
• GIF, Padrão criado pela Compuserve [COMPUSERVE 2007] que utiliza
lossless compression (compressão sem perda de informação); e
• PNG, Padrão livre regulamentado pela W3C [W3C 2007], que utiliza
lossless compression e é o principal concorrente do GIF.
2.2.1 Características Fundamentais de Imagens
Nesta seção serão descritas algumas características importantes de imagens
digitais.
20
2.2.1.1 Color Depth (Profundidade da Cor)
Profundidade da cor, ou color depth, é um termo da computação gráfica que
descreve a quantidade de bits usados para representar a cor em um único pixel numa
imagem bitmap [BIT DEPTH 2007].
2.2.1.2 Resolução
A Resolução de imagem descreve o nível de detalhe que uma imagem comporta.
Quanto maior a resolução, melhor a percepção de detalhes de uma imagem.
A resolução pode ser medida com uma matriz de pixels (horizontal x vertical) ou
em dots per inch (dpi – pontos por polegada).
As Figura 2 e Figura 3 mostram exemplos de imagens nos dois sistemas citados.
Figura 2 : Exemplo de resolução em pixels. Adaptado de [GATTAS 2005]
Figura 3: Exemplo de resolução em dpi (respectivamente 600, 300, 150, 60, 30) . Adaptado de
[GATTAS 2005]
2.2.1.3 Compressão de imagem
A compressão de imagem é uma atividade de suma importância para a viabilidade
do compartilhamento de imagens digitais de alta resolução na Internet, dada a largura de
banda que seria necessária caso não houvesse uma compressão.
O principal foco da compressão de imagem é através da percepção visual humana
eliminar valores discretizados da imagem, reduzindo assim a quantidade de informação
que a representa.
Existem dois tipos de compressão de imagem: Lossless (é usada quando se tem
imagens de baixa resolução ou imagens que precisam de alta fidelidade com a imagem
21
original, já que quando é realizada a descompressão, a imagem original é restaurada.
Exemplos de padrões que a utilizam: GIF [COMPUSERVE 2007] e PNG [W3C 2007])
e Lossy (é usada em imagens com alta resolução e que não precisam de alta fidelidade
com a imagem original, visto que ao realizar a descompressão a imagem original não é
restabelecida. Exemplo de padrão que a utiliza: JPEG [JPEG 2007]).
2.2.2 Padrões de Compressão de Imagem Digital
Nesta seção serão analisados os três principais padrões de compressão de imagens
que são utilizados na Internet: JPEG, GIF e PNG.
2.2.2.1 JPEG
Padrão criado pelo grupo JPEG em 1992 [JPEG 2007], tem 24 bits por pixel
(sendo oito bits para vermelho, oito para o verde e oito para o azul). Cmo já foi dito,
utiliza lossy compression e é o padrão mais utilizado na Internet para representar
fotografias.
2.2.2.2 GIF (Graphics Interchange Format)
Padrão criado pelo grupo CompuServe em 1987 [COMPUSERVE 2007], tem
uma paleta de cor com 256 cores por pixel. Como já foi dito, utiliza lossless
compression e ainda é um dos principais padrões para representar ícones, imagens de
baixa resolução e pequenas animações.
2.2.2.3 PNG (Portable Network Graphics)
O padrão foi criado em 1995 pela W3C [W3C 2007], contudo só começou a
ganhar popularidade a partir do ano de 1999, para ser um concorrente livre do GIF.
O PNG permite diversas paletas de cores, como: 24 bits por pixel (sendo oito bits
para vermelho, oito para o verde e oito para o azul), tons de cinza e outras.
Semelhantemente ao GIF, o PNG utiliza lossless compression, no entanto o algoritmo
(deflate) de compressão utilizado no PNG é de uso livre.
22
2.2.3 Image Magick
Após o estudo detalhado das características de imagens, surgiu a necessidade de
se pesquisar uma ferramenta que manipulasse imagens, permitindo converter, editar e
compor imagens, de forma que fosse open source e pudesse ser usada para criar outros
sistemas de manipulação a partir dela. A ferramenta escolhida foi o Image Magick
[IMAGEMAGICK 2007], devido a sua robustez, facilidade de uso e interação com
outros sistemas além de atender ao fato de ser open source.
O Image Magick é uma suíte de software para criar, editar e compor imagens
bitmap. Ele pode ler, converter, e criar imagens em uma grande variedade de formatos,
incluindo DPX [DPX 2007], EXR[EXR 2007], GIF [GIF 2007], JPEG [JPEG 2007],
PDF [PDF 2007], PhotoCD [PHOTOCD 2007], PNG [PNG 2007], Postscript
[POSTSCRIPT 2007], SVG [SVG 2007], TIFF [TIFF 2007] entre outros. O Image
Magick é usado para transladar, espelhar, rotacionar, escalonar, recortar e transformar
imagens, ajustar cores, aplicar vários efeitos especiais, desenhar texto, linhas, polígonos,
elipses e curvas de Bézier4, além de extrair informações físicas da imagem.
2.3 Vídeos Digitais
O termo vídeo digital se refere a diversos formatos de armazenamento de
animações. O vídeo digital foi criado quando a Sony [SONY 2007] em 1983 lançou o
formato Sony D-1 que transformava o vídeo analógico em digital sem fazer nenhuma
etapa de compressão, o que tornou esse processo bastante oneroso tendo em vista o
armazenamento.
Atualmente, esse formato ainda pode ser encontrado em grandes redes de
televisão, embora o mesmo esteja em um processo de substituição por formatos que
utilizam compressão e que são notavelmente mais baratos.
A seguir serão estudadas as características fundamentais de vídeos digitais bem
como serão analisados alguns dos atuais padrões de compressão de vídeo mais usados
na Internet. Dentre os padrões escolhidos, tem-se:
• MPEG, serão analisados os seguintes padrões da família MPEG: MPEG-
1, MPEG-2 e MPEG-4 [MPEG 2007];
4 É uma curva polinomial expressa como combinação baricêntrica de alguns pontos representativos, chamados de pontos de controle.
23
• WMV, Coleção de vários codecs proprietários da Microsoft [WMV
2007];
• RealVideo, padrão de vídeo proprietário desenvolvido pela RealNetworks
que é dividido em RealAudio e RealMedia [REALNETWORKS 2007];
• FLV, padrão de vídeo proprietário criado pela Adobe (Macromedia)
[ADOBE 2007];
• Ogg Theora, padrão de vídeo livre desenvolvido pela Xiph.Org
Foundation [XIPH 2007];
• H.263, padrão de vídeo livre criado pela ITU-T Video Coding Experts
Group (VCEG) [ITU-T 2007]; e
• H.264, padrão de vídeo livre criado pelo Joint Video Team (JVT) grupo
formado com pesquisadores do ITU-T VCEG e do MPEG [ITU-T 2007].
2.3.1 Características de Vídeo Digital
Nesta seção serão estudadas algumas características importantes de vídeos
digitais.
2.3.1.1 Frame Rate (taxa de quadros)
Para se determinar o frame rate é utilizada a unidade FPS (Frames per Second –
Quadros por segundo), a qual mede quanta informação é usada para armazenar e
mostrar a animação de um vídeo [SONY 2007]. Quanto maior o FPS, melhor é a
qualidade do vídeo e maior é o tamanho de armazenamento.
2.3.1.2 Resolução
Em vídeo analógico a resolução é dada por linhas. Contudo, em vídeo digital a
resolução é obtida através de pixels (um pixel é o menor ponto que forma uma imagem
digital, como já descrito).
A resolução é dada pela quantidade de pixels dispostos na horizontal e na vertical.
Dentre as resoluções comumente usadas em monitores tem-se 640 x 480 (307.200
24
pixels), 800 x 600 (480.000 pixels) e 1024 x 768 (786.432 pixels). Na Figura 4, pode-se
notar a proporção entre algumas resoluções.
Figura 4: Proporção entre diversas resoluções. Adaptado de [SONY 2007]
2.3.1.3 Aspect Ratio
Em um espaço bi-dimensional, o aspect ratio mede o quão distante a maior
dimensão é da menor. Em vídeo digital, o aspect ratio é aplicado para demonstrar a
proporção da tela, ao se dividir a quantidade de pixels dispostos horizontalmente pela
quantidade de pixels dispostos na vertical [AMPAS 2007].
Os mais usados padrões de Aspect Ratio são:
• Padrão 4:3 ou 1.33:1 - Padrão usado pelos aparelhos de TV comuns e
pela grande maioria dos monitores. Este padrão foi definido pela
Academia de Artes de Animação de Figuras e Ciências (Academy of
Motion Picture Arts and Sciences [AMPAS 2007]); e
• Padrão 16:9 ou 1.78:1 - Padrão internacional usado para HDTV (High-
Definition Television).
Na Figura 5 pode-se analisar a proporção entre alguns aspect ratios.
Figura 5: Proporção entre diversos aspect ratios
25
2.3.1.4 Qualidade de Vídeo
A medição da qualidade de um vídeo não é uma tarefa muito precisa. Segundo
VIANELLO (2006), pode-se dividir a avaliação da qualidade em dois tipos de
abordagens:
• Objetiva, que faz uso de técnicas como Signal-to-noise ratio (SNR) e
Peak Signal-to-noise ratio (PSNR), as quais através de cálculos
matemáticos tentam definir o percentual de “ruído” na construção da
imagem; e
• Subjetiva, a qual através da definição de métricas e pontuações, alguns
especialistas observam os vídeos e atribuem notas. Ao final, é realizada
uma média e se obtém o resultado da avaliação da qualidade.
2.3.1.5 Bit Rate
Tem o conceito similar a bit rate de áudio, medindo o número médio de bits que
um segundo de vídeo (ou áudio) pode consumir. O bit rate pode ser medido através da
unidade bits / segundos.
Quanto maior for o bit rate, o vídeo apresentará melhor qualidade de imagem e
conseqüentemente terá maior tamanho. Em média, um VideoCD apresenta 1 Mbit/s, um
DVD 5 Mbit/s e uma HDTV apresenta de 15 a 100 Mbit/s.
2.3.1.6 Compressão de Vídeo
A compressão de vídeo é uma atividade de suma importância para a viabilidade
do vídeo digital. A Figura 6 mostra o tamanho necessário para o armazenamento de um
vídeo digital sem compressão.
Figura 6: Relação Mídia x Espaço Ocupado. Adaptado de [FERNANDES 2006]
26
Pode-se perceber que, caso não existisse a compressão de vídeo digital, a
manipulação de vídeos na Internet seria uma tarefa inviável dada à largura de banda
necessária.
A compressão é realizada na etapa de codificação do vídeo analógico para digital.
Existem diversos formatos para a compressão de vídeos. Contudo, neste trabalho,
apenas foram abordados os formatos mais utilizados para a compressão de vídeo digital
na WEB.
Assim como em imagens e áudios, tem-se para vídeos dois tipos de compressão,
lossless e lossy. Seguindo os mesmo conceitos, a primeira apresenta uma compressão
sem degradar a qualidade do vídeo e a segunda ocorre com perda de informação do
vídeo original.
A seguir, foram listados e analisados brevemente os mais importantes padrões de
compressão de vídeo.
2.3.2 Padrões de Compressão de Vídeo Digital
Nesta seção alguns dos mais importantes padrões de compressão de vídeos
digitais foram estudados.
2.3.2.1 WMV (Windows Media Video)
O Windows Media Video é um padrão proprietário desenvolvido pela Microsoft
[WMV, 2007]. Em 2003 a Microsoft enviou a especificação do codec para a Society of
Motion Picture and Television Engineers (SMPTE) [SMPTE 2007]. O formato se
tornou aberto, contudo continuou sendo proprietário.
A grande vantagem de se utilizar esse formato é a integração dos vídeos com
programas notadamente conhecidos da Microsoft, como Windows Media Player e
Internet Explorer [MICROSOFT 2007].
2.3.2.2 RealVideo
O RealVideo é um padrão proprietário desenvolvido pela RealNetworks
[REALNETWORKS 2007]. O RealVideo normalmente é usado em conjunto com o
padrão de áudio RealAudio, produzido pela mesma RealNetworks. A sua primeira
27
versão foi lançada em 1997 usando como base H.263 [H.263 1998]. Atualmente, o
RealVideo não se utiliza mais do padrão H.263. Ele tem como base agora o codec
proprietário RV40, que foi desenvolvido também pela RealNetworks
[REALNETWORKS 2007].
2.3.2.3 FLV (Flash Live Video)
O Flash Live Video é um padrão proprietário desenvolvido pela Adobe [ADOBE
2007]. O Flash Live Video em versões anteriores à versão oito usava como codec uma
variante do H.263 [H.263 1998]. No entanto, as mais novas versões do Flash Vídeo,
além da variante do H.263, usam o codec On2 True Motion VP6 [ON2 2007], o qual
apresenta uma maior compressão que o H.263.
O Flash Video é o formato mais utilizado pelos serviços de manipulação de
vídeos na Internet por apresentar bons índices de compressão e qualidade da imagem,
além de se privilegiar do fato da Adobe [ADOBE 2007] ter um plugin (Adobe Flash
Player) que permite que vídeos neste formato possam ser vistos diretamente nos
navegadores (browsers) dos usuários.
2.3.2.4 H.263
O H.263 é um padrão de compressão desenvolvido pela ITU-T Video Coding
Experts Group (VCEG) [ITU-T 2007] em 1995, com o foco na utilização em
videoconferências.
Atualmente, esse formato ainda é usado em videoconferências baseadas nos
protocolos RTP (Real-time Transport Protocol), RTSP (Real Time Streaming Protocol)
e SIP (Session Initiation Protocol). Também é utilizado nos conteúdos de vídeos no
formato Flash (FLV), tendo um papel importante nos sistemas de compartilhamento de
vídeos como YouTube [YOUTUBE 2007], GoFish [GOFISH 2007], Metacafe
[METACAFE 2007], Google Video [GOOGLE VIDEO 2007], entre outros.
2.3.2.5 OGG Theora
O OGG Theora é um formato livre desenvolvido pela fundação Xiph.org [XIPH,
2007], sendo parte do projeto Ogg. É baseado no codec VP3 (que era proprietário e
equivalente em qualidade ao MPEG-1) e que foi doado pela On2 Technologies [ON2
28
2007] ao lançar em domínio público todas a licenças que possuía do VP3. Assim, a
Xiph.org [XIPH 2007] pôde desenvolver o OGG Theora usando como base o VP3.
2.3.2.6 MPEG-1
O padrão MPEG-1 especifica a codificação de áudio e vídeo para entrega à taxa
de 1,5 MBps, para aplicações em CD-ROM e desktop [GOULART 2003].
O MPEG-1 é divido em duas partes: MPEG-1 Video e MPEG-1 Audio (que será
analisado na seção de áudio digital)
O MPEG-1 Video foi projetado para o armazenamento de vídeos de até 1.5
MBps e com resolução 352x240 pixels e frame rate de 30fps ou resolução 352x288
pixels e frame rate de 25fps [CHIARIGLIONE 1996].
Este padrão foi desenvolvido com o intuito de armazenar vídeos em CD (VCD)
propiciando uma qualidade de imagem similar a fitas VHS (Video Home System).
2.3.2.7 MPEG-2
O padrão MPEG-2 especifica a codificação genérica de sinais de vídeo, incluindo
TV digital. MPEG-1 e MPEG-2 estão intimamente ligados ao sucesso de produtos e
serviços comerciais largamente adotados, como gravadores e reprodutores para Video
CD, DVD, difusão de áudio digital (Digital Audio Broadcasting – DAB [DAB 2007]) e
MP3 (MPEG-1 Audio Layer III [MPEG 2007]) [GOULART 2003].
O padrão MPEG-3 seria utilizado para a padronização de HDTV, mas foi
cancelado e suas funcionalidades foram incorporadas ao padrão MPEG-2.
O comitê desenvolvedor do MPEG-2 compreendeu que, para atender aos
diferentes requisitos de todas as aplicações-alvo, era necessário criar uma série de níveis
e perfis. Esses níveis e perfis facilitam a interoperabilidade entre aplicações que lidam
com o padrão MPEG-2, pois especificam detalhes com os quais essas aplicações
necessitam estar em conformidade. Os perfis definem diferentes esquemas de
codificação; os níveis se referem principalmente à resolução do vídeo produzido
[FERNANDES 2006].
A mistura de perfis e níveis permite que o MPEG-2 se torne escalável, podendo
ser usado em padrões de TV digital (alta resolução) ou em vídeos de baixa resolução.
29
2.3.2.8 MPEG-4
O padrão MPEG-4, tem como objetivo principal definir um padrão internacional
para a codificação audiovisual que permita serviços de interação [MPEG 2007].
O MPEG-4 tem uma codificação eficiente de vídeo e áudio. Além disso, este
padrão permite a representação e manipulação individual de cada objeto (vídeo, áudio,
textos, gráficos, entre outros) que compõe uma cena [MPEG 2007].
Esta divisão dos objetos que compõem uma cena permite prover uma melhor
interação entre o usuário e um determinado vídeo, ao contrário dos padrões MPEG-1 e
MPEG-2, que apenas permitem a seqüência de quadros de imagem.
O padrão MPEG-4 também especifica meios de permitir a reutilização de objetos
de mídia e a associação de direitos autorais [BATTISTA et al.1999].
Figura 7: Componentes do MPEG-4. Adaptado de [TODESCO 2000].
.
O padrão MPEG-4 com a sua divisão dos objetos de mídia, como pode ser
observado na Figura 7, possibilita uma codificação ótima para cada objeto. Dessa
forma, o padrão obtém um alto índice de compressão possibilitando uma alta qualidade
de vídeo. Com isto, o MPEG-4 obteve uma grande aceitação no mercado de vídeo
30
digital. Atualmente, este padrão evoluiu com os esforços do Joint Video Team (JVT)
[JVT 2007] e se chama H.264 (MPEG-4 part 10).
2.3.2.9 H.264
O padrão H.264 é também conhecido como H.264/MPEG-4 AVC e MPEG-4
(part 10). O H.264 surgiu como a união de especialistas de dois dos mais importantes
grupos de padronização de vídeo digital: ITU-T VCEG [ITU-T 2007] e MPEG [MPEG,
2007], que formaram um grupo chamado Joint Video Team (JVT) [JVT 2007].
O padrão H.264 é considerado a nova geração de compressão de vídeo usando
MPEG-4 [APPLE 2007]. O H.264 apresenta altos índices de qualidade de vídeo em
uma grande variação de largura de banda (de 40Kbps até acima de 10Mbps).
Figura 8: Usos do H.264. Adaptado de [APPLE 2006].
O H.264 está se consolidando cada vez mais no mercado como o principal padrão
de compressão de vídeo por apresentar excelentes índices de compressão, aliado ao fato
de poder atuar em toda a largura de banda, fato notado com a Figura 8, podendo ser
usado em dispositivos móveis (3G) até dispositivos que apresentam alta-definição de
imagem (HD).
31
Figura 9 Comparação entre H.264 e MPEG4 part 2. Adaptado de [APPLE 2006].
.
Pode-se observar, na Figura 9, que o H.264 apresenta o tamanho do quadro
(Frame) quatro vezes maior que o MPEG-4 (part 2) utilizando o mesmo tamanho para o
armazenamento.
Os impressionantes resultados obtidos pelo H.264 fizeram com que ele fosse
adotado em diversas organizações. Dentre elas pode-se citar: MPEG [MPEG, 2007],
ITU-T VCEG [ITU-T 2007], DVD Forum [DVD 2007], Blu-ray Disc Association
[BDA 2007], Digital Video Broadcasting [DVB 2007], 3rd Generation Partnership
Project [3GPP 2007] e Internet Streaming Media Alliance [ISMA 2007].
O padrão H.264 está se consolidando cada vez mais como principal padrão de
compressão de vídeo. O fato do mesmo poder atuar em uma grande variação de largura
de banda é de extrema importância para que algum dia haja uma unificação dos padrões
de compressão de vídeo digital.
32
2.3.3 FFMPEG – Ferramenta de Manipulação de Vídeo
Da mesma forma que foi feito um estudo detalhado das características de
imagens, também foi feito um estudo detalhado das principais características de vídeo e
com isso, surgiu a necessidade de se pesquisar uma ferramenta que manipulasse vídeo,
de forma que fosse open source e pudesse ser usada para criar outros sistemas de
manipulação a partir dela. A ferramenta escolhida foi o ffmpeg [FFMPEG 2007], uma
ferramenta de linha de comando do projeto FFMEPG. Tal ferramenta foi escolhida
devido sua robustez, facilidade de uso e interação com outros sistemas e atender ao fato
de ser open source, podendo ser alterada e distribuída livremente seguindo a licença
GPL(GNU Public Licence).
O projeto FFMEPG é uma suíte de software completa para gravar, converter e
manipular stream de áudio e vídeo. Ele é desenvolvido sobre a plataforma linux, mas
também pode ser compilado sob a maioria dos sistemas operacionais inclusive
Windows [FFMPEG 2007].
O ffmpeg é um rápido conversor de áudio e vídeo. É uma ferramenta baseada
em linha de comando e permite uma grande variedade de funções sobre áudio e vídeo
devido à possibilidade de derivar seus parâmetros de entradas de acordo com as
necessidades das operações solicitadas.
2.4 Áudio Digital
O termo áudio digital se refere a diversos formatos digitais de armazenamento de
sons. O áudio digital é a principal base para o compartilhamento de músicas na Internet.
Levando em conta esse cenário, apenas realizar a transformação de áudio analógico para
digital não é interessante, visto que tornaria muito custoso o armazenamento e
transferência do arquivo de som. Para solucionar este problema é necessário realizar,
assim como foi visto em imagem digital, uma etapa de compressão de áudio.
A seguir serão estudadas as características fundamentais de áudios digitais bem
como serão analisados alguns dos atuais padrões de compressão de áudio mais usados
na Internet. Dentre os padrões escolhidos, tem-se:
33
• MPEG (Moving Pictures Expert Group), serão os seguintes formatos da
família MPEG: MPEG-1 Audio Layer III, MPEG-2 AAC e MPEG-4 AAC
[MPEG 2007];
• WMA (Windows Media Audio), Coleção de vários codecs proprietários
da Microsoft [WMA 2007];
• RealAudio, Formato de áudio proprietário desenvolvido pela
RealNetworks [REALNETWORKS 2007] que é dividido em RealAudio e
RealMedia; e
• Ogg Vorbis, Formato de vídeo livre desenvolvido pela Xiph.Org
Foundation [XIPH 2007].
A Figura 10 mostra um exemplo de uma transformação de um áudio analógico em
digital.
Figura 10 Áudio Analógico (Vermelho) em Digital (Cinza). [MPEG 2007]
2.4.1 Características fundamentais de áudio
Nesta seção serão abordadas algumas características importantes de áudios
digitais.
2.4.1.1 Bit Rate
O conceito de bit rate em áudio, como em vídeo, representa a quantidade de bits
que são usados para codificar a informação que será transmitida em um segundo.
Quanto maior bit rate, o áudio apresentará uma melhor qualidade e maior tamanho do
arquivo. No Quadro 1 pode-se perceber a relação do bit rate com a qualidade do áudio
digital.
34
Quadro 1: Exemplos de bit rate em áudio digital.
Tipo de Som Bit Rate Som de um telefone 8 Kbit/s Compact Disk (CD) 1441 Kbit/s
Rádio AM (Amplitude Modulation) 32 Kbit/s Rádio FM (Frequency Modulation) 96 Kbit/s MP3 com qualidade similar ao CD 192 Kbit/s MP3 com qualidade similar ao som
analógico 224 - 320 Kbit/s
2.4.1.2 Sample Rate
O áudio analógico é um sinal contínuo, contudo, ao ser transformando em um
sinal digital que é discreto, pedaços do sinal contínuo são perdidos e a sample rate, a
freqüência que amostras do sinal contínuo em um dado instante (sample) são
convertidas para um sinal digital. Quanto maior a sample rate, melhor será a qualidade
do som digital, visto que terá perdido menos samples do som analógico. A sample rate é
medida em Kilohertz (KHz). Por exemplo, um som digital com 44,100 kHz de sample
rate apresenta a qualidade de um Compact Disk (CD) [GIBSON 2006].
2.4.2 Compressão de Áudio
Semelhantemente à compressão de imagem, a compressão de áudio é uma
atividade de suma importância para a viabilidade do compartilhamento de áudio digital
na Internet, dada a largura de banda que seria necessária caso não houvesse uma
compressão.
A compressão é realizada na etapa de codificação do áudio analógico para digital
e se dá através de conceitos da psico-acústica que estuda como as pessoas percebem o
som. O principal foco da compressão de áudio é remover sons que não são percebidos
pelo ouvido humano. Dentre eles pode-se citar sons que estão fora do limiar da audição
humana ou mesmo sons que são mascarados por outros sons.
Existem dois tipos de compressão auditiva: lossless (quando realizada a
descompressão, o sinal original é restaurado) e o segundo tipo, lossy (são removidos
dados do sinal original e depois de realizada a descompressão, o sinal obtido é diferente
do original).
Como o enfoque do trabalho é em formatos de compressão utilizados na WEB,
serão estudados apenas formatos que utilizam compressão lossy, visto que os mesmos
são usados amplamente no compartilhamento de áudio na Internet.
35
2.4.2.1 Padrões de Compressão de Áudio Digital
Nesta seção serão analisados alguns do mais importantes padrões de compressão
de áudio digital.
2.4.2.2 WMA (Windows Media Audio)
O Windows Media Audio [WMA 2007] é um padrão proprietário desenvolvido
pela Microsoft [MICROSOFT 2007]. Atualmente, o WMA contém quatro padrões
dentre os quais pode-se citar dois como mais importantes: WMA Standard (segundo
codificador de áudio mais utilizado em sons na WEB e principal concorrente do MP3
[MPEG, 2007]) e WMA Professional (concorrente do AAC como codec que apresenta
sons de alta qualidade).
O padrão WMA na maioria dos casos apresenta qualidade semelhante ao MP3
utilizando metade do bit rate e conseqüentemente utilizando metade do tamanho de um
arquivo MP3 [WMA 2007]. Contudo, apesar dessa informação, não se pode considerar
esse formato como melhor ou pior que o MP3, visto que este formato insere mais
distorções em músicas que o MP3 [WMA 2007].
2.4.2.3 RealAudio
O RealAudio é um padrão proprietário desenvolvido pela RealNetworks
[REALNETWORKS 2007]. A sua primeira versão foi lançada em 1995.
O principal uso desse formato se dá com a utilização de serviços de streaming de
áudio na Internet. O RealAudio em suas primeiras versões utilizava o protocolo aberto
Real Time Streaming Protocol (RTSP) criado pela Internet Engineering Task Force
(IETF) [IETF, 2007] para o gerenciamento da conexão com o servidor de stream de
áudio. No entanto, a transferência do áudio se processava através de um protocolo
proprietário denominado Real Data Transport (RDT). Atualmente, o RealAudio dá
suporte a streaming através do protocolo HTTP [REALNETWORKS 2007].
36
2.4.2.4 OGG Vorbis
O OGG Vorbis é um padrão aberto e livre desenvolvido pela fundação Xiph.org,
sendo parte do projeto Ogg. Começou a ser desenvolvido em 1998 e foi lançada a
versão 1.0 em 2002 [XIPH 2007].
O OGG Vorbis apresenta melhor desempenho em algumas faixas de bit rates que
os padrões mais consolidados no mercado como MP3 e WMA [XIPH 2007], bem como
também se mostra um concorrente à altura dos padrões mais atuais que apresentam
excelente qualidade de som como AAC (MPEG-4 AAC) [MPEG 2007] e WMA
Professional [WMA 2007].
O OGG Vorbis tem se mostrado um forte concorrente dos principais formatos e
apresenta uma diferença dos demais que é ser um padrão aberto (permitindo a
customização de acordo com as necessidades de desenvolvedores de formatos de
compressão).
2.4.2.5 MP3 (MPEG-1 Audio Layer III)
O MP3 é um dos primeiros padrões de compressão de áudio e atualmente ainda é
o padrão mais utilizado no mundo. A sua origem se deu através do trabalho de diversos
pesquisadores (principalmente de universidades da Alemanha) e do grupo MPEG que
formalizou o padrão.
O instituto Fraunhofer [FRAUNHOFER 2007] e a Thomson SA [THOMSON
2007] detêm uma patente (reconhecida nos Estados Unidos e Japão) que obriga quem
implementar ou distribuir codificadores ou decodificadores usando o MP3 pagar
Royalties. Este foi o principal incentivo para a criação de um padrão aberto: o OGG
Vorbis, como dito anteriormente.
A Figura 11 representa a arquitetura geral de um codificador para o padrão MP3:
Figura 11: Codificador MP3. Adaptado de [CHIARIGLIONE 1996].
37
O MP3, como já foi dito, ainda é o principal padrão de compressão de áudio
utilizado para o compartilhamento de áudio na Internet. No entanto, vem perdendo o seu
espaço para outros formatos mais novos e eficientes como OGG Vorbis [XIPH 2007],
MPEG-4 AAC [MPEG, 2007], WMA Professional [WMA 2007], entre outros.
2.4.2.6 MPEG-2 AAC (Advanced Audio Coding)
Este padrão também é conhecido como MPEG-2 part 3 [MPEG 2007]. O MPEG-
2 AAC (Advanced Audio Coding) foi definido como uma evolução dos padrões MPEG-
1 Audio, obtendo taxas de compressão bem superiores ao seu antecessor. Esse padrão
permite o uso de até 48 canais principais de áudio e 16 canais de baixa freqüência
[FERNANDES 2006]. Pode manipular maiores freqüências de sampling que o MP3
(acima de 96 KHz contra 48 KHz do MP3). Além de apresentar compatibilidade com o
MP3 [MPEG 2007].
2.4.2.7 MPEG-4 AAC (Advanced Audio Coding)
Este padrão também é conhecido por MPEG-4 part 7 [MPEG, 2007]. O MPEG-4
AAC é uma atualização do MPEG-2 AAC com três extensões: PNS (Perceptual Noise
Substitution), LTP (Long Term Predictor), Twin VQ (Transform-Domain Weighted
Interleave Vector Quantization) que permitem que o MPEG-4 AAC tenha um melhor
desempenho que o MPEG-2 AAC e exija um menor custo computacional para codificar
o áudio [MPEG 2007].
Atualmente, existe uma otimização do MPEG-4 AAC que apresenta os melhores
índices de eficiência e se chama HE-AAC (High Definition Advanced Audio Coding)
[MPEG 2007].
38
2.5 Objetos de Mundos Virtuais
A Realidade Virtual (RV) é, antes de tudo, uma “interface avançada do usuário”
para acessar aplicações executadas no computador, tendo como características a
visualização, movimentação em ambientes tridimensionais em tempo real e a interação
com elementos desse ambiente. Além da visualização em si, a experiência do usuário de
RV pode ser enriquecida pela estimulação dos demais sentidos como tato e audição
[TORI 2006].
A modelagem dos ambientes virtuais, usando linguagens como VRML (Virtual
Reality Modeling Language) e sua sucessora, X3D [WEB3D 2006], e outras linguagens
e ferramentas de autoria específicas, permite que o usuário visualize ambientes,
manipule objetos e outros elementos do cenário virtual, além de se movimentar dentro
do espaço tridimensional. Alguns objetos virtuais podem ser animados e possuírem
comportamentos autônomos ou disparados por eventos. A geração de imagens, pelo
computador, a partir de determinados pontos de vista fixos ou variáveis, permite a
visualização do mundo virtual pelo usuário. Neste contexto abrangente de realidade
virtual, os mundos virtuais no presente trabalho serão tratados apenas como uma
representação de mundos em três dimensões, com o uso de VRML e X3D.
Com relação às tecnologias que serão abordadas, VRML - Virtual Reality
Modeling Language é um padrão de arquivo formatado para representação
tridimensional interativo por vetores gráficos, particularmente projetado para a World
Wide Web. X3D – é um padrão ISO para computação gráfica 3D em tempo real. As
características de X3D estendem as características de VRML, por exemplo, animação
de humanóides, gráficos Nurbs, GeoVRM, entre outras. Ela é muito mais rica e
abrangente que VRML. A habilidade de codificar cenas usando sintaxe XML e a
extensão de programação por API (Aplication Program Interface) a tornam
extremamente poderosa para representar mundos virtuais na WEB, visto a facilidade de
manipulação de arquivos XML pelos browsers. VRML e X3D basicamente trabalham
com grafos de cena, ou seja, é feita uma definição hierárquica de componentes, após
definidas as partes de cada componente individualmente, e é definido um conjunto de
transformadas para se prover a união das partes criadas [WEB3D 2006].
Será feito um estudo das principais características de mundos virtuais, referente a
definição, descrição, formas de construção de mundos virtuais, como armazenar
39
mundos virtuais em mídias computacionais, como recuperar mundos virtuais e como
armazená-los e consultá-los de forma estruturada em um sistema de banco de dados.
Dentro do estudo sobre mundos virtuais, será feita uma pesquisa referente a
serviços de armazenamento de mundos virtuais, classificação de mundos virtuais e
recuperação de mundos virtuais na web, de forma que tais características possam ser
agregadas ao servidor de dados desenvolvido neste trbalho, permitindo assim maior
facilidade para a manipulação de tais arquivos de dados.
2.5.1 Grafos de Cena
Os grafos de cena são de suma importância para o desenvolvimento de aplicações
de RV, tanto para VRML quanto para X3D. Eles podem ser definidos como ferramentas
conceituais para representação de ambientes virtuais tridimensionais nas aplicações de
computação gráfica [Walsh 2002]. Um grafo de cena é formado por nós conectados por
arestas compondo um grafo acíclico direcionado.
Cada nó possui um conjunto de atributos que podem, ou não, influenciar seus nós
conectados. Os nós são organizados de uma maneira hierárquica correspondendo
semântica e espacialmente com o mundo modelado. Os nós podem ser divididos em três
categorias: nó raiz, nós intermediários que são chamados de nós internos ou nós de
agrupamento e os nós folha que estão localizados no final de um ramo. O nó raiz é o
primeiro nó do grafo e todos os outros nós estão ligados a ele direta ou indiretamente.
Os nós internos possuem várias propriedades, sendo o uso mais comum o de representar
transformações 3D (rotação, translação e escala). Os nós folha contêm, geralmente, a
representação geométrica de um objeto (ou dados de áudio, quando o grafo de cena
possuir esse recurso) [Silva et al. 2004].
Os grafos de cena implementam um princípio chamado de herança de estado. Os
nós internos armazenam o estado do sistema, onde estado significa a posição e a
orientação dos objetos no ambiente virtual e seus atributos de aparência. A herança de
estado é uma propriedade dos grafos de cena que determina que cada nó deve herdar as
propriedades de estado de todos os seus ancestrais no grafo até a raiz.
Considerando o modelo de uma casa e admitindo que seus objetos estejam
modelados em relação à origem do sistema de coordenada, pode-se acrescentar para
cada quarto da casa uma translação que irá posicioná-lo corretamente em relação à casa.
A casa pode ser ainda rotacionada, por exemplo, a fim de ficar voltada para uma
40
determinada direção. O grafo para essa cena é ilustrado na Figura 12. Devido à herança
de estado, todas as geometrias identificadas pelos nós raízes herdarão as propriedades
dos seus ancestrais e serão posicionadas corretamente. A herança de estado é, portanto,
uma ferramenta importante para organização da cena 3D.
Figura 12: Exemplo de grafo de cena. Adaptado de [Walsh 2002].
Além da organização hierárquica da cena, a grande vantagem do grafo de cena é a
implementação de uma série de otimizações, que são essenciais para a visualização em
tempo-real. Essas otimizações servem principalmente para reduzir a quantidade de
vértices que são enviados para a renderização na placa gráfica. O grafo de cena pode
embutir recursos de descarte por volume de visão (objetos fora do frustum do
observador), por oclusão (objetos ocultos por outros) e por tamanho (objetos muito
pequenos em cenas complexas). Também é comum que os grafos de cena tenham
recursos de níveis de detalhe (LOD – Level of Detail), cuja idéia é a de que objetos
muito distantes do observador podem ser renderizados com menor qualidade visual
(menor número de polígonos) do que objetos mais próximos [Luebke et al. 2002].
Uma vantagem direta que o grafo de cena traz com todas as otimizações que ele
implementa é a melhoria do desempenho da aplicação. Além disso, o grafo de cena traz
outras vantagens para uma aplicação de RV:
• Produtividade - o grafo de cena gerencia toda a parte gráfica, reduzindo
as várias linhas de código que seriam necessárias para implementar a
mesma funcionalidade utilizando uma interface de programação baixo
nível, como a OpenGL;
• Portabilidade - os grafos de cena encapsulam todas as tarefas de baixo
nível necessárias para renderizar a cena e ler e escrever arquivos,
reduzindo, ou até mesmo extinguindo, a quantidade de código que é
41
específica de alguma plataforma. Assim, se o grafo de cena for portável,
imediatamente toda a aplicação será portável, sendo necessário apenas
uma nova compilação ao se mudar de plataforma; e
• Escalabilidade - os grafos de cena são feitos para funcionar em
configurações simples baseadas em computadores de mesa e placas
gráficas aceleradoras convencionais ou em hardware complexo, como
cluster de máquinas gráficas, ou sistema multiprocessado (multipipe).
2.5.2 X3D
O X3D é um padrão de software aberto e escalável para definição e comunicação
em tempo real, conteúdo interativo 3D para efeitos visuais e modelagem de
comportamento. Ele pode ser usado através de dispositivos de hardware e uma grande
variedade de aplicações incluindo aplicações CAD, simulação visual, visualização
médica, GIS, entretenimento, educação e apresentações multimídias.
O X3D provê tanto codificação XML e SAI (Scene Authoring Interface)
habilitando aplicações WEB ou não-WEB para incorporar dados 3D em tempo-real,
apresentações e controle dentro de conteúdo não-3D.
Devido suas evoluções, ele é considerado o sucessor natural do VRML. Ele dá
suporte a tudo que o VRML disponibiliza mais um conjunto de novas características,
possui uma API mais avançada, formatos de codificação adicionais, uma arquitetura
componentizada que permite uso de uma abordagem modular que dá suporte a padrões
e permite compatibilidade com dados legados do VRML.
Como características adicionais:
• É open source, consequetemente não tem problemas referentes à
licensa de uso;
• Foi oficialmente incorporado ao padrão multimídia MPEG-4;
• Dá suporte, de maneira acessível, à exposição de dados 3D em
Web Services e aplicações distribuídas;
• É compatível com as próximas aplicações de aplicativos gráficos,
como por exemplo, gráficos com vetores escaláveis; e
• Permite a manipulação de objetos 3D através de linguagens como
C, C++ e Java.
42
Devido a todas essas características, o X3D se mostra um dos principais padrões
para dar suporte ao uso de realidade virtual em ambientes de ensino a distância baseados
na web.
2.6 Considerações Finais
Durante este capítulo pode-se entedender as principais características de imagens
quanto aos padrões de compressão, foi apresentada uma ferramenta open-source
ImageMagick de manipulação de imagens capaz de extrair informações, fazer
conversões entre padrões, além de operações de edição e transformação de imagens,
também foram estudas várias características de áudios, padrões e características físicas.
Foi feito um estudo sobre as características de vídeos, padrões e também foi apresentada
a ferramenta FFMpeg, que também é capaz de extrair informações tanto de aúdio
quanto vídeo digital, fazer conversões entre padrões e realizar transformações entre os
objetos escolhido e finalmente foram apresentados os objetos de realidade virtual que
serão tratados neste trabalho, mais precisamente objetos VRML e X3D para transmitir
objetos 3D na web. Este capítulo foi importante para o melhor conhecimento dos
objetos multimídia e de realidade virtual, além de servir como base para os tipos de
objetos escolhidos e propriedades tratadas pelo Servidor de Dados Multimídia.
43
3 Manipulação de Objetos Multimídia
Este capítulo apresenta uma pesquisa com as técnicas mais utilizadas para se
recuperar objetos multimídia, tanto recuperação de objetos baseada em conteúdo,
quanto para recuperação baseada em descrição textual dos objetos, utilizando
metadados. Além disso, também foram estudas formas de armazenamento e recuperação
de objetos multimídia em banco de dados convencionais, de forma que pudesse ser
gerada uma base de conhecimento para posterior uso nas implementações do trabalho.
3.1 Recuperação de Objetos Multimídia baseada em conteúdo
Nesta seção são analisados tanto aspectos de recuperação de objetos baseada em
conteúdo. Também são apresentadas técnicas de recuperação de imagens, baseada em
CBIR (Content Based Image Retrieval) além de técnicas de CBMR (Content Based
Multimedia Retrieval) para a recuperação baseada em conteúdo para os demais tipos de
objetos multimídia.
3.1.1 Recuperação de Imagens
Dado o estudo sobre as características fundamentais e padrões de compressão de
imagem, foi formado um conjunto básico de informações sobre imagem para posterior
44
uso no servidor de dados desenvolvido neste trabalho. Como o objetivo do trabalho é
armazenar e recuperar dados multimídia, foi feito um estudo complementar sobre
técnicas de armazenamento e recuperação de imagens. Porém, vale ressaltar que o
servidor não implementa técnicas de recuperação de objetos baseada em contéudo do
objeto, ele usa técnicas de associação de metadados para recuperar os objetos.
3.1.2 CBIR - Content Based Image Retrievel Também conhecida como Query by Image Content (QBIC) ou Content Based
Information Retrievel (CBVIR), CBIR é uma aplicação de visão computacional para o
problema de recuperação de imagem, ou seja, o problema de pesquisar por imagens
digitais em grandes bancos de dados [DATTA 2007].
O termo CBIR se originou em 1992 [ref], quando foi usado por T. Kato para
descrever experimentos de recuperação automática de imagens de grandes bancos de
dados de forma eficiente baseadas em cores e formas apresentadas. Desde então, o
termo foi usado para descrever o processo de recuperação de imagens desejadas de uma
grande coleção em uma base de características sintáticas de imagens. As técnicas,
ferramentas e algorítimos que são usados originaram-se de campos como: estatística,
reconhecimento de padrões, processamento de sinais e visão computacional [DATTA
2007].
Atualmente, o interesse em CBIR vem crescendo continuamente devido às
limitações em sistemas baseados em metadados [ref], bem como ao grande crescimento
de uso de recuperação de imagens. Informações textuais sobre imagens podem
facilmente ser pesquisadas usando a tecnologia existente, porem requer descrições
pessoais para todas as imagens no banco de dados.
3.1.2.1 Técnicas de CBIR baseadas em Consulta
Diferentes implementações de CBIR podem usar direfentes técnicas baseadas em
consultas, como segue [EIDENBERGER 2004]:
• Consulta baseada em exemplos – É dado um exemplo de imagem e logo após
será pesquisado no sistema imagens semelhantes;
• Recuperação semântica – O sistema ideal de CBIR seria baseado em uma busca
semântica, por exemplo, buscar todas as imagens de um determinado animal, ou
então buscar todas as imagens de uma determinada pessoa, entretanto,
45
computacionalmente falando é muito difícil para computadores diferenciarem
um cavalo de uma zebra, ou reconhecer a imagem de uma pessoa em momentos
diferentes, ou mesmo trajando roupas diferentes. Para os atuais sistemas de
CBIR, são usadas características de baixo nível, como por exemplo, cor, textura
e formato; e
• Outros métodos – outros métodos incluem especificamente a proporção de cores
desejadas, por exemplo, buscar uma imagem que tenha 80% de vermelho e 20%
de azul, ou buscar por imagens que contenham determinado objeto. Existem
também sistemas baseados em relevância nos quais o usuário pode fazer buscas
progressivas e os resultados das buscas podem ser refinados como relevantes,
irrelevantes ou neutro.
3.1.2.2 Técnicas de CBIR baseadas em comparação de conteúdo
A seguir, seguem as principais técnicas de CBIR baseadas em comparação de
conteúdo [NIBLACK et al. 1993]:
• Cor – examina imagens baseadas na cor mais usada; essa técnica é uma das mais
usadas, pois não depende do tamanho da imagem ou da orientação. A busca
baseada na cor, geralmente envolve a comparação de histogramas de cores,
entretanto essa não é a única técnica praticada;
• Textura – a medida de textura procura por padrões visuais na imagem e como
eles estão espacialmente definidos. Texturas são representadas por texls que são
colocados em um número de conjuntos dependendo em como muitas texturas
são detectadas na imagem. Esse conjunto não apenas define a textura, mas
também onde a imagem da textura está localizada; e
• Formas – não se refere às formas da imagem, mas sim em formas de uma
determinada região da imagem. As formas vão oferecer determinada
segmentação ou limites de detecção em uma imagem. Em alguns casos, a
detecção de uma forma mais precisa irá requerer a intervenção humana porque
os métodos de segmentação são muito difíceis de se complementar
automaticamente. Uma técnica comum é o uso de filtros e posterior comparação
com o resultado desses filtros.
46
Pode-se citar vários trabalhos de CBIR descritos na literatura. Entre eles, o QBIC da
IBM [NIBLACK et al. 1993], no qual as imagens são importadas para o sistema e, as
características baseadas em cor, textura, e forma são obtidas a partir de buscas baseadas
em similaridade. O VisualSeek [SMITH 1996] é outro exemplo, o qual é um sistema
híbrido que integra a recuperação de imagem baseada em conteúdos visuais e
propriedades espaciais (como tamanho, localização e relações com outras regiões) e
finalmente o Blobworld [CARSON 1999] que é uma ferramenta baseada em
segmentação de regiões, onde propriedades destas regiões, como cor, textura e forma
são utilizadas nas consultas.
Com isso, pode-se observar a complexidade e o vasto espectro de possibilidades de
se implementar a recuperação de imagens baseada no conteúdo da imagem.
3.1.3 Content Based Multimedia Retrieval
Foi visto que existem diversas técnicas para se recuperar imagens tendo como base
seu conteúdo. Da mesma forma, existem várias técnicas para se fazer busca em vídeo
baseado em seu conteúdo, como por exemplo: fazer composições baseadas em cenas;
composições baseadas em componentes, como ângulo, tomada de cena por câmera e
movimento; definir frames chaves e associar técnicas de recuperação de imagem, entre
outros. Da mesma forma, também é possível fazer busca de áudio baseada em seu
conteúdo, como por exemplo, é possível fazer a classificação e a segmentação do áudio,
assim como é possível fazer o reconhecimento da fala baseada em timbre do falante ou
padrão de fala. Além do mais, é também possível fazer uma combinação de técnicas de
consulta de imagem e aúdio em objetos de vídeo com áudio associado.
Os dois aspectos fundamentais para recuperação de informação multimídia são: (1)
procurar por um item particular de mídia; e (2) pesquisar e sumarizar uma coleção de
mídias. Neste item em particular, os sistemas correntes possuem uma significativa
limitação em reconhecer uma vasta quantidade de palavras do vocabulário dos usuários,
entendidas pelos referidos usuários [LEW et al. 2006].
Novas funcionalidades são pertinentes na medida em que podem potencialmente
melhorar a detecção e processo de reconhecimento ou ser correlacionada com a
percepção humana. Também, novos tipos de ações como abordar a natureza mutante da
mídia nas coleções ou bancos de dados são interessantes. Algumas das novas mídias
47
recentes incluem modelos 3D (ou seja, para a realidade virtual ou jogos) e dados de
biologia (isto é, para a compreensão dos mecanismos da vida). É preciso avaliar
objetivamente e aferir o desempenho dos sistemas e ter em conta fatores tais como a
satisfação do usuário com os resultados. Atualmente, não há grandes conjuntos de testes
internacionais para o grande problema de como pesquisar coleções pessoais das mais
diversas mídias. De modo significativo, esforço tem sido dispendido em direção a
desenvolver paradigmas que são eficazes para tal avaliação. Além disso, como as
coleções multimídia crescem a partir de gigabyte para terabyte e para petabytes,
algoritmos de alto desempenho serão necessários para responder a uma consulta em um
período de tempo aceitável. Atualmente, os testes mais comumente usados incluem
conjuntos envolvendo coleções pessoais de fotos na web, imagens e vídeos, patrimonio
cultural, imagens, notícias em vídeo, bem como o Corel coleção de fotografia, que é
também o mais frequentemente mencionado na literatura [LEW et al. 2006].
O uso de técnicas matriciais, vetoriais, estatísticas e de sistemas lineares para
analisar o conteúdo de objetos multimídia possui um espectro muito vasto e geralmente
soluciona nichos específicos de aplicações. O escopo desse trabalho é voltado para a
manipulação de objetos não interpretados e não possui um nicho específico de
aplicação, visto que a educação a distância é um campo que engloba qualquer campo do
conhecimento. Devido à complexidade de se abranger todas as áreas possíveis de
conhecimento que a eduação a distância manipula, optou-se por se trabalhar em técnicas
de recuperação de conteúdo baseada em palavras chaves, pois dessa forma, nenhum
conteúdo ficaria preso a uma determinada área de conhecimento [SETHI 2002].
3.2 Recuperação de Objetos Multimídia baseada em Metadados
Nesta seção são analisados aspectos referentes a busca baseada em Metadados e
classificação dos metadados com relação a objetos multimídia.
3.2.1 Busca baseada em Metadados
Um banco de dados multimídia contém imagens gráficas, vídeos, arquivos de
áudio, objetos de realidade virtual entre outros. Assim, o objeto armazenado no banco
de dados multimídia deve ser descrito de tal modo que o mesmo possa ser facilmente
localizado e recuperado [VAS 2000].
48
A Indexação é usada para determinar quais dados devem ser armazenados para
descrever os objetos multimídia e permitir a pesquisa e recuperação dos mesmos.
As pesquisas realizadas pelos usuários de banco de dados convencionais tendem
a ser bem estruturadas, enquanto que usuários de sistemas de banco de dados multimídia
podem desejar realizar consultas baseadas na descrição do conteúdo de um objeto
multimídia.
Um metadado é um descritor estruturado de recursos de informação, como por
exemplo, websites, textos eletrônicos, artefatos digitais, entre outros. Através do qual a
compilação de descritores é estruturada de acordo com um frame específico (chamado
de esquema). Tais descritores são colocados juntos para servir como uma função de
indexação na recuperação de informação [METADATA 2005]
Segundo Durval et al. (2005), é preciso levar em consideração alguns conceitos
e um conjunto de práticas, de forma que haja regras de manuseio, e conhecer as
limitações relativas a problemas de infra-estrutura de forma que se possa construir e
manter sistemas sustentáveis. Abaixo é mostrado o conjunto de práticas sugeridas por
Durval et al. (2005):
Perfis de aplicação – o objetivo é prover um meio para permitir modularidade,
extensibilidade, adaptação e combinar esquemas existentes dentro de um pacote que é
“costurado” a um requisito funcional de uma aplicação particular, enquanto retem
interoperabilidade com a base original do esquema;
Sintaxe e semântica – sintaxe é a forma, semântica é o significado. Um acordo
sobre esses dois termos é necessário para que duas comunidades possam compartilhar
metadados. É preciso existir uma conversão entre as comunidades de forma que tais
comunidades possam se comunicar de forma inteligível;
Modelos de associação – são modelos que definem como os metadados estão
integrados aos dados descritos. Pode-se definir quatro modelos de associação:
• Metadados “embutidos” - os metadados são inseridos no cabeçalho do
arquivo ou do objeto descrito. O metadado é criado no momento que o
recurso é criado;
• Metadados “associados” - o metadado usado como uma referência para o
recurso; e
• Metadados “separados” - o metadado é mantido em um repositório
separado do objeto descrito, de forma que o metadado é organizado e
relacionado com o objeto descrito através que um relacionamento.
49
Identificação de elementos nomeados – pode-se definir um conjunto de tokens
(fichas)ou labels (rótulos)
• Token – é uma referência simbólica para um recurso, por exemplo
uma URI (Universal Resource Information) para identificar a
localização de um determinado objeto descrito;
• Labels – são strings associadas a um recurso, são mais facilmente
inteligíveis por pessoas do que tokens ou símbolos.
Registro de metadados – assume características de um dicionário eletrônico. É
um importante tópico para pesquisas em bibliotecas digitais;
Completude de descrição – quanto mais informações são dadas de um objeto,
mais precisa será a pesquisa, porém acarreta em um alto custo de criação e manutenção;
Elementos essenciais e elementos opcionais – é a definição de quais
propriedades são essenciais para descrever o objeto e quais propriedades são opcionais
para descrição do objeto em questão;
Subjetividade e objetividade – as descrições manuais não baseadas em regras
são subjetivas, pois a descrição de cada objeto varia de pessoa para pessoa e de
momento para momento. Uma forma de se definir objetividade é motar uma estrutura
com um conjunto bem definido de valores, como por exemplo: autor (regra para o nome
do autor), data de criação (dever ser necessário estabelecer um formato fixo de data) e
atributos físicos (é preciso definir o conjuto dos atributos, a formatação de cada atributo
e o domínio do valor de cada um);
Geração automática de metadados – é uma forma de se minimizar o esforço para
descrição de metadados. Pode-se definir um conjunto de informações que podem ser
extraídas automaticamente por um sistema, tais como: data de criação do objeto,
elementos estruturais, formato do arquivo e propriedades intrínsecas do objeto, como
por exemplo, no caso de imagem, é possível extrair propriedades físicas como
resolução, mapa de cores, tamanho em bytes, entre outros. Outra forma de se extrair
informações do objeto é usar inferências baseadas em algoritmos de análises do objeto.
A combinação dessas abordagens pode incrementar a qualidade e reduzir o custo da
descrição de metadados.
50
3.2.2 Classificação de Metadados No contexto multimídia, metadados podem corresponder a referências a dados,
as quais são utilizadas para facilitar a recuperação baseada em descrição do conteúdo. A
seguir é descrita uma classificação para metadados [Bohms 1994]
• Metadado para representação de tipos de mídias – São informações adicionais
que são importantes para fins de representação de dados multimídia. Essas
informações podem ser utilizadas para apresentação desses dados. Exemplos
deste tipo de metadado incluem formato de condificação e técnicas aplicadas
para compressão de dados, ou seja, para cada tipo de mídia o metadados pode
assumir um valor ou um conjuto de valores definidos em um domínio. Por
exemplo, uma mídia do tipo vídeo pode assumir valores de formatos como
MPEG4, MPEG2 ou AVI; uma mídia do tipo imagem pode assumir valores de
formatos como JPEG, GIF ou PNG; uma mídia como áudio como assumir
valores de formatos como MP3, WMA ou PCM;
• Metadado para Descrição de Conteúdo – Esse tipo de metadado descreve o
conteúdo do objeto ou dos componentes do mesmo. A descrição pode ser feita
manualmente, de forma automática ou semi-automática, dependendo do tipo de
mídia tratada. Um exemplo típico é uma lista de pessoas ou instituições
relacionadas ao conteúdo de um objeto multimídia. Essa lista de pessoas é
fornecida pelo usuário de forma manual;
• Metadado para classificação de conteúdo – A classificação de conteúdo consiste
em informações adicionais que podem ser derivadas do conteúdo do documento.
Esse tipo de metadado pode ser gerado de forma automática ou semi-automática.
Por exemplo, a classificação pode ser feita pelo nível de conhecimento do leitor
sobre determinado tema;
• Metadado para composição de documentos – Componentes lógicos de
documentos multimídia têm certa semântica como parte do documento.
Metadado para composição de documentos permite conhecimentos de
características dos relacionamentos entre componentes de documentos. Este tipo
de metadado só faz sentido para documentos multimídia e não para tipos de
dados simples. Por exemplo, os modelos de hipermídia podem ter metadados
para descrever os componentes e os relacionamentos entre eles;
51
• Metadados para história de documentos – em ambientes de publicações
multimídia é comum registrar o status de dados multimídia. Esse tipo de
metadado serve tanto para um documento como para componentes individuais,
tais como data da útima atualização de um determinado documento. Metadado
desse tipo pode ser registrado automaticamente ou não. O nome do autor de
documentos, data de autoria e os relacionamentos derivados em modelos de
versões são exemplos desse tipo de metadado;
• Metadado para localização de documentos – os objetos multimídia não são
duplicados ou distribuídos, desta forma são acessados de acordo com a
necessidade de cada usuário. Metadados são utilizados para localizar
documentos. A informação sobre a localização de certos documentos e como
esses podem ser acessados são exemplos desse tipo de metadado; e
• Metadados estatístico – esse tipo de metadado quantifica a freqüência dos
documentos ou componentes de documentos com certas características. Os
aspectos de desempenho, acessos e freqüência de apresentação de documentos
em determinados período de tempo também são exemplos de metadado
estatístico.
Projeto SACCA
Um exemplo de projeto que usa busca de conteúdo baseada em metadados é o
projeto SACCA [SACCA 2004]. Ele apresenta um sistema automático de catalogação
audiovisual de vídeo para ambientes virtuais de ensino, desenvolvido pelo grupo de
pesquisa em Novas Tecnologias na Educação da Universidade Federal do Rio Grande
do Sul.
No âmbito da Internet2 foi iniciado um experimento com catalogação automática
de todo o conteúdo (full content), em que o áudio do vídeo é analisado e palavras-
chaves são identificadas e localizadas no tempo (em que momento são faladas). No
projeto SACCA, é usado o software comercial VIRAGE [VIRAGE 2007] para fazer
esta análise, mas este software somente funciona para a língua inglesa. Todavia, o
resultado é muito relevante, pois possibilita ao aluno digitar uma ou mais palavras-
chaves e receber uma coleção de URL que apontam para vídeos armazenados no
repositório (incluindo pontos específicos do vídeo onde a palavra é dita). O SACCA,
apresenta um resultado similar, pois ele só trabalha com a língua portuguesa, entretanto
vale lembrar que ele opera inicialmente de forma não automática, porque não há no
52
momento recursos (software de reconhecimento de áudio apropriado para o Português
falado no Brasil). Assim, busca-se projetar e desenvolver um sistema que apoie o
processo de catalogação full content, mas com a intermediação de um usuário que
assiste ao vídeo e seleciona as palavras-chaves a serem incluídas na catalogação.
Foi usado um software de domínio público que abre os tipos padrão de vídeo
(MPEG), identifica e separa cenas. O IBM Annotation Tool [VIDEOANNEX 2007]
pode ser utilizado para descrever arquivo de vídeo gravado no padrão MPEG (1 e 2),
gerando uma descrição XML segundo o padrão MPEG 7[MPEG 2007]. O SACCA faz
o interfaceamento com este software e permite ao usuário catalogador a digitação das
palavras-chaves, agregando de forma semi-automática as informações de tempo de
início em que as mesmas foram faladas. As informações resultantes são armazenadas
em um banco de dados invertido, com todas as palavras-chaves catalogadas e ponteiros
para os arquivos XML (MPEG 7) e para os registros do projeto SACCA, onde os
objetos de aprendizagem tipo vídeo também estarão catalogados e onde estarão as
informações referentes aos demais metadados de catalogação.
3.3 Armazenamento e Recuperação de Objetos Multimídia
Manter a consistência e integridade de dados em um Sistema de Gerenciamento
de Banco de Dados (SGBD) é um dos princípios fundamentais para um resultado
satisfatório durante a pesquisa e/ou recuperação. A maneira e a estrutura como os dados
são armazenados no banco de dados influenciam na consistência e integridade dos
dados [SILBERSCHATZ 1999].
Em relação aos objetos multimídia isso se torna ainda mais relevante, tendo em
vista que esses dados possuem grandes quantidades de bytes, podendo chegar a ter
vários gygabytes de tamanho.
A funcionalidade e integridade de banco de dados tornam-se importantes quando
o número de objetos multimídia armazenados cresce de forma significativa.
Devido a essas características, os SGBD possuem diferentes formas de
armazenar dados multimídia, assim como todos os tipos de dados não convencionais. A
seguir são abordados esses mecanismos de armazenamento [VAS 2000; FRANÇA
2005]:
• Referências externas: os bancos de dados possuem referências para os
objetos multimídia originais. Tais referências podem ser nomes de
53
arquivos ou outros identificadores que permitem localizar o dado no
ambiente. Adicionalmente, as referências contêm dados descritivos
modelados como atributos ou relacionamentos. Como o banco de dados
registra apenas o caminho do arquivo multimídia no sistema operacional,
ele não garante o controle sobre o objeto armazenado;
• Armazenamento de Dados Multimídia Não Interpretados: também
conhecidos como campos longos ou BLOB(Bynary Large Object), onde
estes podem armazenar vários Gbytes de dados e podem ser usados como
domínio para atributos. Essencialmente, podem ser acessados
parcialmente. Um sistema de gerenciamento de banco de dados dá
suporte para dados armazenados em campos longos. Entretanto, o
conteúdo ainda não é interpretado e as operações oferecidas para operar
nos dados são somente genéricas;
• Funções Externas: Alguns sistemas de bancos de dados permitem chamar
funções externas para processamento de dados armazenados. As
limitações em linguagem de manipulação de dados, tal como SQL, são
razões para introduzir chamada a funções externas. O próprio
gerenciador de banco de dados implementa uma função interna
proprietária de forma que possa manipular o objeto com operações de
importação e exportação do objeto; e
• Sistemas Orientados a objetos ou relacionais estendidos: sistemas
relacionais estenditos permitem que o programador defina tipos de dados
abstratos e os referencie em aplicações. Especialmente, a abordagem
orientada a objetos dá suporte à modelagem avançada, pela construção
de hierarquia de tipos de dados e definição de relacionamentos entre
classes. Os sistemas orientados a objetos oferecem suporte mais
adequado para informação multimídia, mas faltam alguns aspectos tais
como suporte a dados depentente do tempo, interação do usuário,
consultas baseadas em conteúdo e técnicas específicas de recuperação.
Segundo Silva(2006), cada uma das formas de armazenamento expostas
anteriormente possui características próprias, sendo possível destacar seus pontos
positivos e negativos.
A seguir é apresentado o Quadro 2 que mostra um comparativo entre as formas
de armazenamento.
54
Quadro 2: Comparativo entre as formas de armazenamento [Silva 2006].
Referência externa Campos BLOB Funções
externas
Orientação a Objetos
Consistência e
Integridade
Não Sim Sim Sim
Armazenamento
Interno
Não Sim Sim Sim
Acesso em tempo
real
Sim Não Não Não
Pesquisa via
semântica de dados
Sim Não Não Não
O Quadro 2 mostra de forma comparativa as principais características de cada
uma das formas de armazenamento expostas. A referência externa é a única forma que
possibilita acesso em tempo real ao objeto multimídia, neste caso o termo tempo real se
refere a capacidade do usuário consumir o objeto multimídia sob demanda não sendo
necessária a recuperação do objeto completo, isso se deve ao fato do objeto ficar fora
do SGBD. Essa característica faz com que esse tipo de armazenamento seja apropriado
para aplicações que necessitam disponibilizar os dados dos objetos em partes, de acordo
com a necessidade do usuário. Exemplos desse tipo de aplicação são as aplicações
baseadas em stream, as quais vão produzindo os objetos para os usuários à medida que
esse objeto vão sendo lidos. A desvantagem de se utilizar esse método é que ao
armazenar o objeto multimídia dentro de pastas no sistema operacional e fora do SGBD,
acarreta em alguns problemas como:
• Ao realizar backup da base de dados é necessário procurar as pastas onde
estão armazenados os objetos multimídia, e copiá-las de forma manual,
ou implementar uma rotina para realizar essa cópia;
• Ao excluir o registro da base de dados que contenha a referência para o
objeto multimídia, não exclui automaticamente o objeto; e
• Quando vários usuários acessam o servidor onde se encontra o SGBD,
aumenta o grau de vulnerabilidade dos objetos armazenados nas pastas
do sistema operacional.
55
Com base nesses problemas, a referência externa é considerada uma forma de
armazenamento relativamente inconsistente, onde registros podem referenciar objetos
inexistentes e objetos podem estar sem registros que os referenciem.
Os armazenamentos por Blob e funções externas possuem as mesmas
características como mostra o Quadro 2. Esses dois métodos armazenam os objetos
internamente ao SGBD, neste caso o controle é feito completamente pelo SGBD, o que
garante a integridade dos dados e neutraliza os problemas apresentados no método da
referência externa. Entretanto, devido ao tipo do campo utilizado para realizar o
armazenamento, só é possível ler o objeto e suas características semânticas quando ele
estiver totalmente recuperado do SGBD, o que impossibilita o acesso em tempo real ao
objeto, ou seja, caso o usuário quisesse consumir um objeto multimídia de um tamanho
considerável, ele deveria aguardar até que o SGBD recuperasse o objeto multimídia por
completo para só então disponibilizá-lo para o usuário.
Esses dois tipos de armazenamento podem ser utilizados em aplicações que não
exigem acesso aos objetos em tempo real, e nas aplicações que utilizam metadados para
indexar os objetos, pois com metadados, não é preciso ler o objeto para descobrir suas
características.
O armazenamento de objetos multimídia através da orientação a objetos, em
geral, possui as mesmas caracteríticas dos dois últimos métodos abordados. No entanto,
essas características dependem da maneira como o SGBD trata a orientação a objetos,
onde pode variar principalmente sua característica de disponibilizar a semântica dos
objetos dentro do próprio SGBD.
3.4 Considerações Finais
Durante este capítulo pode-se enteder a importância de se fazer um estudo mais
detalhado sobre a recuperação de objetos multimídia baseada em conteúdo. Pode-se
perceber a vasta gama de técnicas e a complexidade de se definir soluções comuns para
se recuperar tipos diferentes de objetos multimídia o que couminou na escolha de
técnicas de busca de conteúdo baseada em metadados, devido a sua melhor
generazilização de objetos independentes do tipo, características e peculiaridades
observadas em cada objeto multimídia e de realidade virtual estudados. Pode-se também
levar em consideração ferramentas e sistemas que já implementam essas técnicas de
forma que tais trabalhos relacionados serviram como embasamento para definir as
56
operações e comportamento do servidor de dados multimídia. Alem disso, o Apêndie A
mostra um estudo teórico de como é feito o armazenamento e a recuperação de objetos
multimídia e um estudo aplicado a forma de como cada um dos atuais Sistema de
Gerenciamento de Banco de Dados implementa o tratamento do armazenamento e
recuperação de tais objetos.
57
4 Plataformas de Ensino a Distância
Este capítulo tem como objetivo abordar alguns Ambientes de Ensino a
Distância, também conhecidos como Ambientes Virtuais de Ensino, para
principalmente avaliar as plataformas de ensino a distância open source mais difundidas
e disseminadas. Portanto, foram abordados o Moodle [MOODLE 2006], ClaroLine
[CLAROLINE 2006], e o Amadeus-MM [AMADEUS 2006]. Tais ambientes foram
escolhidos por serem os principais objetos de estudo do grupo de pesquisa em educação
a distância do centro de informática da UFPE.
Foram considerados aspectos fundamentais e características de cada um, além da
verificação da funcionalidade para suporte ou manipulação de objetos multimídia.
As próximas seções apresentam algumas características importantes sobre ambientes virtuais de ensino. 4.1 Ambientes Virtuais de Ensino
Nas primeiras formas de uso da Internet em contextos educacionais, os alunos
eram encorajados a acessá-la em busca de informações (conhecimento estático) com o
objetivo apenas de ampliar os limites da educação, que se resumiam ao conhecimento
dos professores e às atividades em sala de aula [EBERSPACHER 2006]
Surgiu a seguinte necessidade: alunos desejavam interagir com outros alunos e
professores de forma fácil, contribuindo também com o aprendizado de outros, além de
construir virtualmente o seu próprio conhecimento. A partir dessas necessidades
surgiram os ambientes virtuais de ensino a distância que, rapidamente, tornaram-se
muito populares.
Essa categoria de ambiente dispõe de um conjunto de funcionalidades projetadas
para armazenar, distribuir e gerenciar conteúdos de aprendizado, de forma progressiva e
interativa, podendo também registrar e relatar atividades do aprendiz, bem como seu
desempenho.
Os referidos ambientes são conhecidos também como Computer Supported
Collaborative Learning (CSCL - Aprendizagem Colaborativa Assistida por
Computador). Sua estratégia educativa visa dar condições para que dois ou mais
sujeitos, interagindo, construam o seu conhecimento através da discussão, da reflexão e
tomada de decisões, e onde os recursos informáticos atuam como mediadores do
58
processo de ensino-aprendizagem. Tais recursos abrangem: mecanismos para envio de
mensagens, bate-papo, recepção e envio de materiais e gerenciadores de tarefas. Eles
possibilitam a execução de diversas atividades de aprendizagem à distância, por parte
do aluno, de acordo com tarefas predefinidas. A grande vantagem é o compartilhamento
do conhecimento entre os participantes do ambiente, possibilitando a criação de novos
conhecimentos.
CSCL é um dos ramos da pesquisa de Computer Suported Collaborative Work
(CSCW – Trabalho Colaborativo Assistido por Computador). Tanto CSCW, quanto
CSCL, baseiam-se em sistemas computacionais que dão suporte e facilitam os processos
e as dinâmicas de grupo remotamente localizados. Esses sistemas possibilitam acesso e
transferência de informação e documentos, atividades de resolução de problemas e
formas diferenciadas de avaliação. A investigação atual, nesse domínio, abrange não
somente as técnicas de construção dessa categoria de aplicação (groupware), mas
também os aspectos sociais, psicológicos, organizacionais e de aprendizagem humana
que ocorrem mediados por esses ambientes [EBERSPACHER 2006].
A finalidade principal desse tipo de aplicação é a aprendizagem, especificamente
colaborativa, e como pode ser auxiliada pelo computador. Esse ajuda os alunos a
comunicar e a participar de atividades comuns, fornecendo também um poderoso
auxílio nos processos de coordenação e organização de atividades. Esse leque de
funções mediadoras amplia as possibilidades de uso do computador como meio através
do qual os indivíduos e os grupos podem contribuir uns com os outros, à distância, para
atingirem objetivos comuns [APRENDERNET 2006].
É primordial que tais ambientes ofereçam, aos seus usuários, meios rápidos e
eficazes para encontrar informações e desenvolver o aprendizado. Na próxima seção
descreve-se como gerenciar o conteúdo dos citados ambientes de forma eficaz.
4.2 Sistemas de Gestão de Conteúdo
Os Sistemas de Gestão de Conteúdo ou Learning Management System (LMS)
disponibilizam uma série de recursos, síncronos e assíncronos, que viabilizam o
processo de aprendizagem, permitindo planejamento, implementação e avaliação.
Basicamente, o LMS provê meios para criar e disponibilizar conteúdo, monitorar a
participação e avaliar o desempenho do aluno [APRENDERNET 2006]. A
59
aprendizagem via LMS tem trazido vantagens, como pode ser visto em
[APRENDERNET 2006] :
• Redução de custos;
• Disponibilidade a qualquer hora e local;
• Rápida distribuição e alterações dos conteúdos;
• Possibilidade de o aprendiz fazer seu próprio percurso; e
• Disponibilização de recursos interativos como e-mail, forum e sala de
discussão.
A principal característica estudada dos LMS foi a gestão de conteúdo, recurso
que permite que os instrutores criem cursos e materiais, organizando a informação de
forma que o aluno a encontre facilmente. Logo mais, serão detalhados os LMS que
serviram de base para a definição de como o servidor de dados multimídia deveria
interagir com o Amadeus-MM.
4.2.1 Moodle (Modular Object-Oriented Dynamic Leanring Enviroment)
O Moodle é um sistema Gerenciador de Cursos (Course Management System -
CMS) [Moodle 2007]. Esse ambiente permite que professores e tutores criem cursos on-
line, baseados em aplicações WEB. Ele é baseado na pedagogia social-construtivista. A
licença do moodle é open source, sendo o sistema desenvolvido na tecnologia php [PHP
2007]. O Moodle é disponibilizado em várias línguas, inclusive Português e é umas das
plataformas de ensino mais difundidas no mundo, tendo sua presença em diversas
universidades, escolas e empresas.
Na Figura 13 será mostrada uma das operações que foi usada como base de
estudo para avaliar como o Moodle manipula objetos multimídia externos a ele. Nela é
mostrado um usuário editando um conteúdo para na Figura 14 inserir uma imagem no
conteúdo editado.
60
Figura 13: Editando um conteúdo no Moodle
Na figura 13 é possível observar que o usuário criou um conteúdo chamado
prototipação e o mesmo foi editado de forma a associar um exercício sobre o conteúdo
do curso de prototipação. Logo abaixo, na figura 14, é possível observar o usuário
inserindo uma imagem no exercício associado ao conteúdo editado.
.
Figura 14: Inserindo uma imagem no Moodle.
E, finalmente, a Figura 15 mostra a imagem associada ao conteúdo editado.
61
Figura 15: Imagem inserida em um conteúdo.
A figura 15 mostra detalhes do conteúdo editado logo após a inserção da imagem no mesmo.
O Moodle também permite que o usuário insira outros objetos multimídia, como
áudio e vídeo, seguindo o mesmo princípio.
4.2.2 ClaroLine
O ClaroLine também é um LMS open-source e uma plataforma de ensino a
distância que permite professores construirem efetivamente cursos on-line e
gerenciarem aprendizado e atividades colaborativas na WEB [CLAROLINE 2007].
Da mesma forma que o Moodle, o ClaroLine é um ambiente bastante difundido
mundialmente, possuindo uma grande quantidade de usuários e uma sólida comunidade
de desenvolvedores, estando presente em escolas, universidades e centros de
treinamentos.
Seguem algumas características do ClaroLine, das quais para cada espaço de um
determinado curso, ele provê uma lista de ferramentas que permite ao professor:
• Escrever a descrição de um curso; • Publicar documentos em vários formatos, dentre eles, texto, HTML, PDF e
Vídeo; • Administração pública e privada de fóruns; • Desenvolver caminhos de aprendizagem; • Criar grupos de estudantes; • Preparar exercícios on-line; • Gerenciar agenda de atividades e deadlines; • Publicar anúncios via e-mail; • Visualizar estatísticas de atividades de usuários; e
62
• Usar uma ferramenta Wiki para produzir documentos colaborativos.
Na Figura 16 será mostrada a forma que um usuário edita um conteúdo no
ClaroLine, para logo em seguida adicionar um objeto multimídia associado ao
respectivo conteúdo. É possível observar que o usuário pode apenas fazer modificações
textuais no conteúdo editado, e a inserção de um conteúdo multimídia é feita via
associação do conteúdo multimídia com o conteúdo textual.
Figura 16: Editando um conteúdo no ClaroLine.
A Figura 17 mostra o usuário inserindo uma imagem no conteúdo. É possível
observar que, neste caso, a associação de uma imagem ao conteúdo textual é feita de
forma estática, ou seja, uma vez a imagem associada, o conteúdo final mostrará apenas
esta imagem associada.
Figura 17: Inserindo uma imagem no conteúdo.
63
A Figura 18 uma imagem inserido em um conteúdo no ClaroLine. É possível
observar a imagem inserida na forma como o conteúdo será mostrado para o usuário.
Figura 18; Imagem inserida no conteúdo.
O ClaroLine possui características e funcionalidades bastante semelhantes ao
Moodle, e também permite que o usuário insira outros tipos de objetos multimídia como
vídeo e áudio.
4.2.3 Amadeus
O Amadeus, cuja extensão multimídia é referenciada como Amadeus-MM, é um
ambiente virtual de aprendizagem, em particular uma plataforma de gestão da
aprendizagem. O Projeto Amadeus visa difundir o uso de uma plataforma de ensino que
foi criada para facilitar sua utilização por parte de professores e alunos brasileiros. Ela
foi construída ao longo de cinco anos de pesquisa sobre plataformas da mesma categoria
e análises de seu uso no contexto de ensino a distância. Além das funções básicas que
permitem ao professor disseminar seu conteúdo e ao aluno construir esse conhecimento,
a plataforma ainda oferece ferramentas para facilitar suas práticas, tornando mais
64
interessante esse processo, estimulando a interação e o aprendizado pela ação. Este
ambiente de ensino está sendo construído para facilitar as práticas de Educação a
Distância em nosso país [AMADEUS 2007].
Seguem algumas características da plataforma Amadeus, particularmente destacando-se seus principais diferenciais:
(i) o uso de código aberto, que, além de reduzir drasticamente os custos de
aquisição e implantação, também contribui, a médio e longo prazos, para a constante
atualização da ferramenta, assim como para a sua fácil personalização e a incorporação
contínua de novos recursos;
(ii) um projeto de interface usuário-máquina simplificado e intuitivo, que ainda
faz uso de tecnologias mais recentes, como por exemplo Java [JAVA 2006] e Ajax
[AJAX 2006];
(iii) a disponibilização de formas de interação alternativas, como por exemplo
através de jogos (por meio de um servidor específico para essa finalidade), do uso de
telefones celulares e significado de PDA (PDA) ou ainda de experimentos de
laboratório que podem ser realizados e analisados de forma remota.
A Figura 19 mostra a tela de acesso do Amadeus, evidenciando que o ambiente
está operacional e em pleno funcionamento
Figura 19: Tela de acesso ao Amadeus.
Na Figura 20 será mostrada a forma que um usuário edita um conteúdo no
Amadeus, para logo em seguida adicionar um objeto multimídia associado ao respectivo
conteúdo. É possível observar que, no primeiro momento, o ambiente Amadeus usa dos
65
mesmos artifícios para inserção de objetos multimídia usados tanto pelo Moodle quanto
pelo ClaroLine.
Figura 20: Inserindo material no conteúdo
A Figura 21 mostra o material adicionado ao conteúdo criado pelo professor. Neste
caso, após a imagem ter sido referenciada pelo conteúdo editado. Cada vez que o
usuário visualizar este conteúdo, o mesmo mostrará a existência de uma imagem
associada ao conteúdo. Desta forma, para o usuário visualizar a imagem associada, é
preciso abrir a imagem no link referenciado pelo conteúdo.
Figura 21: Visualizando referência de material no conteúdo
66
Figura 22: Visualizar material multimídia no Amadeus.
Pode-se observar na Figura 22, que o Amadeus MM, possui uma deficiência na
apresentação de objetos multimídia, pois uma vez o objeto multimídia inserido em um
determinado conteúdo, o mesmo, para ser visualizado precisa ser baixado para ser
visualizado.
4.3 Considerações finais
Este capítulo descreveu as principais características de Plataformas de Ensino a
Distância, mostrou a contextualização educacional de Ambientes Virtuais de Ensino
com que a Internet possibilita ampliar os limites geográficos da educação. Pode-se
observar as principais vantagens de Sistemas de Gestão de Conteúdo para a WEB.
Foram abordadas plataformas de ensino a distância open-source largamente utilizadas
pela comunidade de educação a distância e foi feito um estudo individual de cada uma
dessas plataformas de ensino a distância quanto ao gerenciamento e uso de objetos
multimídia e de realidade virtual. Desta forma, foram observadas algumas lacunas e
oportunidades de se criar um sistema que melhorasse e solucionasse o problema de
gerenciamento de objetos multimídia e de realidade virtual nas Plataformas de Ensino a
Distância. Como por exemplo:
• Os atuais Sistemas de Gestão de Conteúdo para a WEB permitem apenas
a inserção de objetos multimídia sem o compartilhamento dos mesmos
por outros usários;
67
5 O Protótipo do Servidor de Dados Multimídia
O Servidor de Dados Multimídia tem como principal objetivo o gerenciamento de
conteúdo multimídia em ambientes virtuais de ensino, com particular eficiência no
armazenamento e transferência de dados multimídia (imagens, sons, vídeos e mundos
de realidade virtual), permitindo consultas cooperativas aos dados.
No primeiro momento, foi feita a modelagem das funcionalidades básicas do
sistema e da arquitetura básica do funcionamento do mesmo e logo em seguida foi
construído um protótipo executável e operacional com as funcionalidades básicas
propostas. Seu principal objetivo é permitir que o usuário possa manipular objetos
multimídia e de realidade virtual integrados ao conteúdo de um LMS open source, como
aulas, cursos, exercícios, provas, atividades e outros conteúdos que necessitem agregar
objetos multimídia e de realidade virtual.
As funcionalidades básicas levantadas no primeiro momento foram: permitir que
o usuário possa fazer a manipulação de inserção, consulta com listagem e deleção de
objetos multimídia e de realidade virtual dentro de um ambiente web integrado.
5.1 Análise de Competidores
Para fazer o levantamento inicial das funcionalidades básicas que o protótipo deve
prover, foi feita uma análise de competidores dos LMS Open-Source disponíveis no
mercado mais utilizados pela comunidade de ensino a distância. Tal análise de
competidores permitiu a definição inicial das funcionalidades essenciais do protótipo
descrita na próxima seção.
Entre os LMS Open-Source mais difundidos dos ambientes de ensino a distância,
foram analisados o Moodle e o ClaroLine, detalhados no capítulo anterior. Para esses
LMS foram listadas as funcionalidades referentes ao gerenciamento de dados
multimídia e de realidade virtual. Além desses LMS Open-Source analisados, também
foi feito um estudo sobre que funcionalidades de gerenciamento multimídia o LMS
AMADEUS-MM dá suporte, pois, como o servidor desenvolvido neste trabalho, será
integrado a esta plataforma, foi preciso fazer uma varredura das funcionalidades do
AMADEUS-MM, de forma que não houvesse uma sobreposição de funcionalidades já
existentes. O Quadro 4 apresenta os Critérios estabelecidos na análise de competidores.
68
Quadro 3: Critérios estabelecidos na análise de competidores
Serviço Avaliado no LMS Open-Source
Existente no Moodle
Existente no ClaroLine
Existente no Amadeus
Protótipo SDMM
Associar imagem em conteudo SIM SIM SIM Não Associar video em conteúdo SIM SIM SIM Não Associar som em conteúdo SIM SIM SIM Não Associar x3d/vrml em conteúdo SIM SIM SIM Não Serviço de inserção de imagem NÃO NÃO NÃO SIM Serviço de listagem de imagem NÃO NÃO NÃO SIM Serviço de consulta de imagem NÃO NÃO NÃO SIM Serviço de exclusão de imagem NÃO NÃO NÃO SIM Serviço de inserção de vídeo SIM NÃO NÃO SIM Serviço de listagem de vídeo NÁO NÃO NÃO SIM Serviço de consulta de vídeo SIM NÃO NÃO SIM Serviço de exclusão de vídeo SIM NÃO NÃO SIM Serviço de inserção de som SIM NÃO NÃO SIM Serviço de listagem de som SIM NÃO NÃO SIM Serviço de consulta de som NÃO NÃO NÃO SIM Serviço de exclusão de som NÃO NÃO NÃO SIM Serviço de inserção de x3d/vrml NÃO NÃO NÃO SIM Serviço de listagem de x3d/vrml NÃO NÃO NÃO SIM Serviço de consulta de x3d/vrml NÃO NÃO NÃO SIM Serviço de exclusão de x3d/vrml NÃO NÃO NÃO SIM Serviço de Upload de arquivo SIM SIM SIM SIM Serviço de Download de arquivo SIM SIM SIM SIM
Pode-se observar que uma vez um objeto seja inserido tanto no Moodle, quanto
no ClaroLine, este objeto pertence somente ao conteúdo associado, ou seja, apenas
aquele conteúdo irá mostrar o objeto inserido. Desta forma, outros professores ou
tutores não terão acesso a consultas compartilhadas de objetos manipulados
anteriormente. Foi detectada a ausência de um serviço que pudesse disponibilizar os
objetos inseridos por um usuário para outros usuários, de forma que tais objetos
pudessem ser compartilhados e reutilizados por outros professores ou tutores.
Após a análise de competidores, foi definido um cojunto de requisitos básicos
para fazer a implementação dos protótipos, levando-se em conta o fato dos protótipos
contemplarem o gerenciamento dos objetos multimídia inseridos no ambiente virtual de
ensino. Esses requisitos são tratados na próxima seção, o qual descreve o protótipo
implementado.
69
5.2 Definição dos requisitos básicos
Nesta seção foram agrupados e discutidos durante o período de imersão no projeto
Amadeus-MM, os requisitos fundamentais que o Servidor de Dados Multimídia deveria
prover para o gerenciamento e compartilhamento de objetos multimídia e de realidade
virtual para a Plataforma de Ensino a Distância. Esta seção detalha estes requisitos
funcionais e não-funcionais.
5.2.1 Requisitos Funcionais
Seguindo a abordagem da engenharia de requisitos [SUMMERVILLE 2003], e a
partir da análise de competidores, análise do problema inicial e dos steakholders
(professores e alunos utilizadores da plataforma AMADEUS_MM) envolvidos, foi
criado um conjunto de requisitos funcionais para o protótipo. Após um período de
participação em loco do projeto Amadeus_MM, discutindo o problema com os
professores participantes, alunos de graduação que testam o sistema, bem como a
comunidade de desenvolvedores que implementam a plataforma, foi apresentado um
conjunto mínimo de funcionalidades que o protótipo do servidor de dados multimídia
deve implementar. O Quadro 4 apresenta um resumo dos requisitos funcionais
levantados.
Quadro 4: Listagem dos requisitos funcionais básicos
ID Descrição Prioridade RF-001-001 Importar Imagens Alta RF-001-002 Consultar Imagens Alta RF-001-003 Remover Imagens Média RF-002-001 Importar sons Alta RF-002-002 Consultar Sons Alta RF-002-003 Remover Sons Média RF-003-001 Importar vídeos Alta RF-003-002 Consultar vídeos Alta RF-003-003 Remover vídeos Média RF-004-001 Importar objetos virtuais Alta RF-004-002 Consultar objetos virtuais Alta RF-004-003 Remover objetos virtuais Média RF-005-001 Cadastrar usuário Baixa RF-005-002 Remover usuário Baixa RF-005-003 Alterar senha do usuário Baixa
5.2.2 Requisitos Não-Funcionais
Durante todo o processo de análise do problema, interação com os stakeholders e
levantamento dos requisitos funcionais, foi surgindo a necessidade de se mapear
70
requisitos não-funcionais como: a arquitetura do sistema, a necessidade de um
mapeamento das características intrínsecas dos objetos multimídia e objetos de
realidade virtual, bem como a necessidade de se estabelecer critérios para o
desenvolvimento do protótipo, necessidade de se escolher por qual linguagem de
programação o sistema deveria ser implementado, bem como qual o servidor de banco
de dados que deveria ser usado para armazenar os objetos e os dados, além de escolher
qual o servidor de aplicação deveria ser utilizado para dar suporte à solução
desenvolvida. Com isso, foi necessário prover a documentação e listagem dos requisitos
não-funcionais do sistema. A abordagem de documentação de tais requisitos foi baseada
na categorização de requisitos não-funcionais proposta por Summervile (2003).
Seguindo esta abordagem, os requisitos não-funcionais podem ser divididos em 3
grandes grupos: Requisitos Organizacionais, Requisitos de Produtos e Requisitos
Externos.
5.2.2.1 Requisitos Organizacionais
Requisitos organizacionais são procedentes de políticas e procedimentos nas
organizações do cliente e do desenvolvedor. Entre os exemplos, estão os padrões de
processo que devem ser utilizados, os requisitos de implementação, como a linguagem
de programação ou método de projeto utilizado, e os requisitos de fornecimento, que
especificam quando o produto e seus documentos devem ser entregues
[SUMMERVILLE 2003]. O Quadro 5 apresenta os Requisitos de Processo elicitados.
Quadro 5: Requisitos de Processo elicitados para o protótipo.
Id Requisito Descrição [RNF-PROC-01] O sistema deverá ser implementado de modo a ser compatível com o sistema
operacional Linux [RNF-PROC-02] A base de dados do sistema deverá ser implementada baseada no padrão
PostgreSQL [RNF-PROC-03] O sistema deverá ser implementado de modo a utilizar o TomCat [TOMCAT
2007] como servidor web e de aplicação, utilizando Servlets [SERVLETS 2007] e JSP [JSP 2007]
[RNF-PROC-04] O browser do usuário deverá possuir um plug-in que dê suporte a objetos de realidade virtual X3D/VRML
[RNF-PROC-05] O processo de implementação do sistema será acompanhado pela criação e manutenção de uma documentação contendo informações sobre a estrutura do código fonte do projeto, o esquema do banco de dados e o diagrama de classes
[RNF-PROC-06] Para o sistema ser implementado, deverá ser usada a modelagem utilizando a linguagem UML
[RNF-PROC-07] O desenvolvimento do sistema será baseado na técnica de prototipação evolucionária. Deverão ser geradas n iterações do protótipo até que ele seja aceito.
71
5.2.2.2 Requisitos de Produto
São os requisitos que especificam o comportamento do produto. Foram baseados
na abordagem segundo Summervile (2003), a qual os classifica em: Requisitos de
Segurança, Requisitos de Desempenho, Requisitos de Capacidade, Requisitos de
Portabilidade, Requisitos de Usabilidade e Requisitos de Manutenibilidade. A seguir, o
Quadro 6 mostra os Requisitos de Segurança, o Quadro 7 lista os Requisitos de
Desempenho, o Quadro 8 apresenta os Requisitos de Capacidade, o Quadro 9 cita os
Requisitos de Portabilidade, o Quadro 10 descreve os Requisitos de Usabilidade,
baseados nas solicitações dos professores e alunos que usam o sistema e o Quadro 11
informa os Requisitos de Manutenibilidade. É importante lembrar que todos esses
requisitos de produtos serão de responsabilidade do Servidor de Dados Multimídia e não
da plataforma Amadeus.
Quadro 6: Requisitos de Segurança elicitados para o protótipo
ID Requisito Descrição [RNF-SEG-01] O usuário deve se logar para usufruir das funcionalidades do sistema [RNF-SEG-02] Deverá ser utilizada criptografia para armazenar os logins e as senhas no sistema
Quadro 7: Requisitos de Desempenho elicitados para o protótipo
ID Requisito Descrição [RNF-PER-01] O sistema deverá dar suporte a até 100 acessos simultâneos [RNF-PER-02] O sistema deverá dar suporte a objetos de no máximo 100MB
Quadro 8: Requisitos de Capacidade elicitados para o protótipo
ID Requisito Descrição [RNF-CAP-01] O sistema deverá dar suporte aos seguintes tipos de imagens: JPEG, GIF, BMP e
PNG [RNF-CAP-02] O sistema deverá dar suporte aos seguintes tipos de áudio: WAV, MP3, MIDI, e
AC3 [RNF-CAP-03] O sistema deverá dar suporte aos seguintes tipos de vídeo: MOV, MPEG4, MPEG7
e AVI [RNF-CAP-04] O sistema deverá dar suporte aos seguintes tipos de objetos de realidade virtual:
X3D e VRML
72
Quadro 9: Requisitos de Portabilidade elicitados para o protótipo
ID Requisito Descrição [RNF-PORT-01] O sistema deverá ser capaz de apresentar uma interface consistente quando acessado
através dos browsers Microsoft Internet Explorer e Mozila Firefox [RNF-PORT-02] A taxa de operações de consultas/serviços mal-sucedidas não deverá ser superior a
5%
Quadro 10: Requisitos de Usabilidade elicitados para o protótipo
ID Requisito Descrição [RNF-USA-01] A interface do sistema deverá ser agradável e objetiva, isto é, suas funcionalidades
e informações deverão estar bem visíveis e disponíveis [RNF-USA-02] As mensagens de erro do sistema deverão ser precisas e informativas, apontando
sua origem e como proceder após sua ocorrência
Quadro 11: Requisitos de Manutenibilidade elicitados para o protótipo
ID Requisito Descrição [RNF-MAN-01] Eventuais problemas no funcionamento do sistema serão informados aos
operadores através de relatórios de erros gerados pelo mesmo
5.2.2.3 Requisitos Externos
Esse amplo tópico abrange todos os requisitos procedentes de fatores externos ao
sistema e a seu processo de desenvolvimento. Divide-se em Requisitos Legais e
Requisitos de Interoperabilidade [SUMMERVILE 2003]. O Quadro 12 apresenta os
Requisitos Legais, enquanto o Quadro 13 mostra os Requisitos de Interoperabilidade.
Quadro 12: Requisitos Legais elicitados para o protótipo
ID Requisito Descrição [RNF-LEG-01] Caso seja identificado algum objeto que viole as leis de direitos autorais, este
objeto deverá ser imediatamente excluído, caso a exibição do mesmo não seja permitida pelo autor de direito do objeto
Quadro 13: Requisitos Interoperabilidade elicitados para o protótipo
ID Requisito Descrição [RNF-INT-01] O sistema deverá ser capaz de interagir com a plataforma AMADEUS-MM,
de forma que a plataforma AMADEUS-MM possa usufruir de forma integrada dos benefícios que o sistema disponibiliza
73
5.2.3 Diagrama de Casos de Uso
Baseado nos requisitos levantados foi feita a modelagem do Caso de Uso
principal, o qual é mostrado na Figura 23. Aqui é possível observar a interação entre a
Plataforma de Ensino a Distância Amadeus-MM e o Servidor de Dados Multimídia,
bem como a Interação aluno e Amadeus-MM, a interação professor e Amadeus-MM,
bem como a interação professor e Servidor de Dados Multimídia via interface de acesso
disponibilizada pelo Servidor de Dados Multimídia. Maiores detalhes serão mostrados
no próximo capítulo referente a arquitetura do servidor de dados multimídia.
Figura 23: Modelo de Casos de Uso
74
5.2.4 Diagrama de Pacotes
Para o Diagrama de Pacotes, foi feita a modelagem dos pacotes principais utilizados
pelo protótipo, bem como pacotes de interface e interação do usuário. A Figura 24 exibe
o Diagrama de Pacotes do Sistema. Maiores detalhes serão mostrados no próximo
capítulo referente à arquitetura do servidor de dados multimídia.
Figura 24: Diagrama de Pacotes do Sistema
75
5.3 Prototipação e Avaliação de Desempenho dos Protótipos
Esta seção apresenta o embasamento conceitual e teórico da Análise de
Desempenho de Servidores, bem como o protocolo de testes que é detalhado na sub-
seção da Etapa de testes, além de descrever e validar os protótipos que foram avaliados
tanto no ambiente local quanto no ambiente real. Também mostra em detalhes a
arquitetura proposta após escolha do protótipo alvo e finalmente mostra a interface de
interação entre o Servidor de Dados Multimídia e o Usuário, este caso é detalhado na
Seção 5.5 que mostra o acesso direto do usuário a interface do Servidor de Dados
Multimídia, sem intermédio de uma Plataforma de Ensino a Distância.
5.3.1 Análise de Desempenho de servidores
Para se construir um servidor de dados que disponibilizará seus objetos em um
ambiente de rede de alta requisição é necessário fazer a análise de desempenho para
garantir que o mesmo funcionará a contento, de acordo com suas especificações, e
garantirá o fornecimento do serviço para os seus usuários. O servidor de dados foi
construído utilizando um container de aplicações, o Tom Cat, que é considerado um
servidor de aplicações. O interesse do trabalho é disponibilizar um servidor com tempo
de resposta para suas operações satisfatório para os seus usuários. Para tanto, deve-se
discutir as técnicas envolvidas nos projetos de avaliação de desempenho de servidores
de aplicação. Com isso, surge o seguinte questionamento sobre o processo de avaliação
de desempenho: Como avaliar, de forma precisa, o desempenho de servidores de
aplicação?
Mesmo sendo um questionamento trivial, os seguintes aspectos devem ser
considerados:
• Que serviços possuem maior impacto no desempenho global de um servidor de
aplicação?
• Quais os critérios de desempenho que devem ser considerados na realização de
uma avaliação?
• Quais parâmetros relacionados ao ambiente possuem impacto no desempenho e
podem ser ajustados com vistas a sua otimização? e
76
• Qual a técnica mais adequada para avaliar o desempenho de um servidor de
aplicação?
Abordagens sistemáticas para avaliação de desempenho devem levar em consideração
cada um dos aspectos mencionados acima e estabelecer seqüências de atividades a
serem realizadas para a obtenção dos resultados de desempenho. Uma vez estabelecida
a abordagem, esta pode ser utilizada em projetos de avaliação de desempenho realizados
com as mais distintas finalidades, tais como identificação de gargalos, realização de
tunning, planejamento de capacidade e predição de desempenho.
Três diferentes técnicas podem ser usadas em avaliações de desempenho:
medição, modelagem analítica e simulação [JAIN 1991].
A técnica de medição consiste no estabelecimento de critérios de desempenho e
sua aferição diretamente no sistema em execução. Esta técnica tem sido largamente
utilizada na avaliação de desempenho de servidores de aplicação [Ceccehet et al. 2002].
Ela apresenta uma análise de impacto das arquiteturas das aplicações e dos containers
no desempenho global de um sistema Enterprise JavaBeans (EJB) [Sun 2006]. A
despeito de sua larga utilização, a técnica de medição tem importantes limitações. É
preciso ter cuidado com sua alta sensibilidade a variações em parâmetros relacionados
ao ambiente, as quais podem comprometer a precisão dos resultados. Além disso,
experimentos de medição requerem a construção e configuração de ambientes
separados.
A modelagem analítica pode derivar métricas de desempenho rapidamente,
fornecendo informações valiosas relativas ao desempenho de um sistema sem os custos
extras decorrentes da replicação do ambiente real. Lladó e Harrison (2000) apresentam
um modelo analítico, baseado na teoria das filas, para um servidor de aplicação
idealizado. Utilizando este modelo, diferentes tendências podem ser inferidas. Contudo,
os resultados de desempenho obtidos não foram validados em um ambiente real. Liu et
al. (2004) propõem uma abordagem para predição de desempenho de aplicações ainda
na fase de projeto. Esta predição é realizada com base em um modelo de filas que é
configurado com parâmetros relacionados à carga e ao próprio servidor de aplicação
utilizado. Esse trabalho fornece uma previsão do desempenho da aplicação antes desta
ser completamente desenvolvida, porém, é preciso considerar que algumas métricas
relacionadas à utilizaçao de recursos não podem ser derivadas. Em geral, modelos
analíticos requerem muitas simplificações e suposições, o que dificulta a obtenção de
77
resultados precisos [Jain 1991]. Outro fator importante é que as ferramentas utilizadas
na modelagem analítica são conhecidas como explosão de estados. Este problema
ocorre devido ao crescimento exponencial no número de estados que estão relacionados
ao tamanho do modelo. O crescimento exponencial no número de estados implica em
um aumento exponencial do número de equações matemáticas que representa o sistema
e, consequentemente, impossibilita o cálculo das métricas de desempenho, uma vez que
recursos computacionais são rapidamente esgotados.
Uma vez que os modelos de simulação são construídos para serem executados, e
não para serem analisados, eles podem incorporar mais detalhes, e com isso, menos
suposições do que os modelos analíticos. Desta forma, estes modelos podem ser mais
flexíveis e se aproximar mais do comportamento real dos sistemas. McGuinnes e
Murphy (2005) apresentam um modelo de simulação de um cluster de servidores de
aplicação que pode ser parametrizado com dados descrevendo as interações com
usuários e com carcteriscas dos servidores que compõem o cluster. Simulações deste
modelo produzem informações acerca de diversas métricas de desempenho. Embora o
modelo seja flexível, o trabalho não apresenta uma comparação dos resultados obtidos
através dos experimentos de simulação com resultados obtidos a partir de medições em
algum servidor de aplicação.
Baseando-se nas técnicas de avaliação de desempenho estudadas, a técnica mais
adequada para o presente trabalho é a técnica baseada em medição, devido ao fato do
trabalho em questão implementar protótipos para cada tipo de forma de armazenagem e
recuperação de objetos multimídia. Desta forma, foi medido o desempenho de cada
protótipo para que, ao final das avaliações, fosse feita uma análise dos resultados e fosse
projetado um protótipo com os resultados que satisfizessem aos anseios da pesquisa.
Assim, foi desenvolvido um Trabalho de Graduação no Centro de Informática da UFPE
[NASCIMENTO 2007] cujo objetivo foi analisar os serviços de manipulação de
objetos multimídia em sistemas virtuais de ensino, não ficando restrito apenas ao
armazenamento e consulta dos objetos. Tal análise foi o insumo inicial do presente
trabalho. Foi realizado um trabalho de prototipagem de manipulação de dados
multimídia em sua totalidade, partindo da base de dados até a visualização do conteúdo
do objeto multimídia no navegador do usuário final. Por fim, de acordo com os
resultados obtidos, foram feitas análises quantitativas referentes às três abordagens de
armazenamento e recuperação de objetos multimídia e foi indicada uma abordagem que
apresentou os melhores resultados no contexto do ambiente de ensino a distância
78
Amadeus-MM. O presente trabalho é uma extensão desta análise inicial feita por
Nascimento, visando completar os protótipos com todos os requisitos levantados para o
Servidor de Dados multimídia, fazer análise detalhadas local e em ambiente real e
também prover a infra-estrutura completa para a Integração completa com a plataforma
Amadeus-MM.
Avaliação de protótipos
Em [NASCIMENTO 2007] foi realizada uma avaliação de desempenho
quantitativa baseada na técnica de performance engineering definida pela IBM
Rational Unified Process [IBMRUP 2007] na implementação de 3 protótipos,
onde cada protótipo representou uma forma de armazenamento de objetos
multimídia mas usados nos SGBD open-souce, mais especificamente, na forma
como o PostgreSQL armazena objetos multimídias, atualmente [NASCIMENTO
2007] Esse trabalho, co-orientado pelo autor desta dissertação, serviu de passo
inicial para a criação e melhoramento do Servidor de Dados Multimídia.
Logo abaixo são apresentados os protótipos que foram desenvolvidos
durante as pesquisas em conjunto com o autor do presente trabalho:
Protótipo1 – baseado em armazenamento do objeto multimídia em uma
tabela de sistema do banco de dados;
Protótipo2 – baseado no armazenamento por referência;
Protótipo3 – baseado no armazenamento de arquivos binários
diretamente no banco de dados; e
Protótipo4 - protótipo escolhido após as comparações de tempo de
acesso ao conteúdo multimídia manipulado (abordagem híbrida entre o
Protótipo1 e o Protótipo 2).
É possível visualizar no Quadro 14 as considerações finais dos
comportamentos dos protótipos inicialmente avaliados em [NASCIMENTO
2007]. Vale ressaltar que todos os protótipos foram baseados em um conjunto
mínimo dos requisitos essenciais do servidor de dados multimídia, neste
momento os protótipos iniciais trabalhavam apenas localmente, sem controle de
79
dowloads dos arquivos e sem integração com a plataforma Amadeus. O quadro
15 serviu como insumo inicial para aprofundar as pesquisas relacionadas aos
protótipos bem como serviu de parâmetros iniciais para criar um protótipo
mais robusto com gerenciamento de download, um ambiente multimiusuário
onde o servidor de dados multimídia tivesse total integração com a plataforma
de ensino Amadeus. Tais características foram desenvolvidas, refinadas e
integradas pelo presente trabalho. No presente trabalho, os protótipos básicos
foram transformados em protótipos completos que tivessem a implementação
aproximada do servidor de dados multimídia. Para isso foram implementados
três protótipos de um controle de serviço multimídia de forma que cada um
implementasse uma abordagem de controle de objetos multimídia dentro de
um ambiente web.
Quadro 14: Comparação dos Protótipos avaliados em [NASCIMENTO 2007]
Protótipo Vantagens Desvantagens Cenário de Uso
Protótipo 1 Integridade, Restrição de
Acesso e Isolamento dos
dados
Desempenho e obrigação
da exportação do objeto
recuperado para um
servidor WEB
Ambientes com poucos
usuários simultâneos e que
o desempenho não é o
primordial
Protótipo 2 Alto Desempenho Falta de controle do SGBD
sobre os objetos multimídia
e possíveis inconsistências
causadas por alterações
indevidas na pasta que
armazena os objetos
Ambientes com vários
usuários simultâneos e que
o desempenho é o único
fator relevante
Protótipo 3 Integridade, Restrição de
Acesso, Isolamento dos
dados e Envio direto do
objeto multimídia para a
aplicação cliente sem
necessidade de exportação
para um servidor WEB
Baixo Desempenho Ambientes com vários
usuários simultâneos e que
o desempenho não é o
primordial e sistemas que
necessitam enviar objetos
multimídia diretamente
para a aplicação dos
usuários
Protótipo 4 Integridade, Controle do
SGBD sobre os objetos
multimídia e Alto
Desempenho nas Consultas
Baixo Desempenho nas
Inserções
Ambientes com poucos
usuários simultâneos para
realizar inserções e
ambientes com vários
usuários simultâneos para
realizar consultas e com
foco em desempenho
80
Com base no Quadro 14, com relação às formas de abordagem de
manipulação de objetos multimídia em um ambiente web, foi possível inferir
que os Protótipos 1 e 3 apresentaram resultados inviáveis para o contexto de
Sistemas Virtuais de Ensino, visto que à medida que foi aumentando o tamanho
do objeto e a quantidade de usuários simultâneos estas duas abordagens
tiveram graves degradações de desempenho em relação ao protótipo de melhor
tempo de resposta.
O Protótipo 2, tendo com abordagem o armazenamento por referência,
abordagem explicada na subseção 3.3, como já se era esperado, apresentou o
melhor desempenho dentre todos os protótipos, porém com esta abordagem o
banco de dados não tem nenhum controle sobre os objetos multimídia e
alterações indevidas nas pastas que armazenam estes objetos podem causar
sérios problemas de consistência no banco de dados.
O Protótipo 4, protótipo criado apartir das melhores características de
manipulação de objetos multimídia (melhor tempo de inclusão para o protótipo
1 e melhor tempo de recuperação para o protótipo2), também apresentou os
resultados conforme foi esperado. Ele obteve tempos nas operações de inserção
similares ao comportamento do Protótipo 1 e tempos nas consultas próximos ao
Protótipo 2. O referido Protótipo 4 utiliza um abordagem híbrida descrita a
seguir.
A Figura 25, mostra o Diagrama de Classes utilizado para implementar
o modelo dos protótipos. É importante ressaltar que o presente trabalho
implementou um modelo completo dos protótipos com relação ao
gerenciamento do download dos objetos multimídia, e foi feita uma integração
completa com a plataforma de ensino Amadeus que poderá ser observada com
mais detalhes no capítulo 6 do presente trabalho.
81
Figura 25: Diagrama de Classes do Protótipo do Servidor de Dados Multimídia.
A abordagem do Protótipo 4 implementa o diagrama de classes,
apresentado na Figura 25. Contudo, esta última abordagem surgiu como uma
proposta de se obter a vantagem de desempenho do armazenamento por
referência com as vantagens de se guardar o objeto multimídia no SGBD
(armazenamento através de objetos).
Dentre os protótipos implementados e avaliados, o protótipo escolhido
para representar o Servidor de Dados Multimídia, foi o Protótipo 4. Sua
abordagem híbrida funciona da seguinte forma: o objeto multimídia é inserido
no SGBD usando a abordagem Large Objec (objeto implementado no
PostgreSQL para armazenamento através de objetos binários). Como é visado o
menor tempo de recuperação dos objetos, apenas é invocada a função
“lo_export” caso o objeto já não esteja disponível no servidor WEB.
A primeira vez que um objeto é consultado, ele é exportado para o
servidor WEB e ao contrário da abordagem do Protótipo 1, a pasta para onde o
objeto é exportado não tem o seu conteúdo apagado esporadicamente, já que
essa pasta não será uma pasta temporária.
Nas próximas vezes que o objeto for consultado, o Protótipo 4 faz
algumas verificações dos objetos, que acarreta um certo impacto para o
desempenho das consultas, no momento de exportar o arquivo para o servidor
WEB. Dentre elas, o protótipo verifica a existência do objeto na pasta pré-
determinada para decidir se há necessidade da recuperação dos objetos. Caso o
82
objeto não esteja lá, ele exporta. No caso contrário, ele verifica se o tamanho do
objeto e a data de modificação do mesmo conferem com o tamanho e data de
modificação que são guardados nas suas respectivas tabelas na hora da inserção
do objeto multimídia no SGBD. Em caso de alguma diferença (alteração
indevida) , o SGBD exporta o objeto. Se nenhuma das duas situações ocorre, não
é feita a recuperação do objeto.
Dessa forma, evita-se que caso o objeto já tenha sido exportado para o
servidor WEB, o SGBD o exporte novamente. Esta solução utiliza, assim, o
desempenho da abordagem por referência externa, garantindo a integridade do
banco, visto que caso ocorra alguma exclusão do objeto multimídia do servidor
WEB ou alguma modificação indevida no arquivo, o SGBD irá exportar
novamente o objeto para o servidor WEB. Na Figura 26, é possível visualizar o
modelo de transferência de objetos multimídia e de realidade virtual utilizado
pelo Protótipo 4.
Figura 26:Modelo de transferência dos objetos multimídia e de realidade virtual
A Figura 27 mostra a implementação das tabelas no SGBD PostgreSQL para o Protótipo 4. O esquema de banco de dados é apresentado na subseção 5.4, na qual mostra detalhes da arquitetura do servidor de dados multimídia impletado de forma completa e plenamente integrado a plataforma de ensino Amadeus.
83
Figura 27: Tabelas do Protótipo 4
5.3.2 Etapas dos Testes
Os testes em ambiente local e em ambiente real dão prosseguimento e
apresentam melhoramentos em relação ao trabalho de [NASCIMENTO 2007], devido
ao fato desse trabalho ter apenas implemetado o conjunto mínimo de
funcionalidades para verificar o armazenamento de objetos multimídia. Os
testes realizados por [NASCIMENTO 2007] foram re-executados e serviram de
insumo para o presente trabalho. Foi adicionado aos protótipos, o componente de
upload dos objetos multimídia, componente responsável por fazer a transferência do
objeto selecionado pelo usuário para o servidor de dados multimídia, e também foi
adicionado aos protótipos a manipulação de objetos de realidade virtual, ou seja, foram
adicionados aos protótipos todo um conjunto de apresentação, manipulação, persistência
e integração de objetos de realidade virtual.
5.3.3 Protótipo 4
Com base na avaliação dos resultados dos três protótipos inicialmente
implementados, executados nos cenários definidos, como foi dito anteriormente, o
presente trabalho é uma extensão desta análise inicial feita por Nascimento, visando
completar os protótipos com todos os requisitos levantados para o Servidor de Dados
multimídia, fazer análise detalhadas local e em ambiente real e também prover a infra-
estrutura completa para a Integração completa com a plataforma Amadeus-MM.foi
84
proposto um quarto protótipo que herdou as melhores características de cada protótipo,
no presente trabalho tal protótipo possui todas as funcionalidades implementadas por
completo, além de permitir a integração completa com a plataforma Amadeus-MM,
integração esta detalhada no capítulo 6, de forma a satisfazer as necessidades de um
ambiente de ensino a distância, no qual se prima por realizar inserções onde o tempo de
resposta da operação não é crítico, e realizar consulta de objetos de forma rápida e
eficiente.
A realização dos testes de todos os protótipos veio da necessidade de se
comprovar que mesmo após as alterações e inclusões de novas funcionalidades, citadas
na seção anterior, o comportamento dos protótipos no ambiente local e no ambiente real
continuaria com o mesmo padrão, salvo as modificações no tempo de resposta devido a
fatores de poder de processamento das máquinas e eventuais mudanças na taxa de
thougthput da rede. Mesmo com esssas variações, foi possível observar nos
experimentso realizados, pelo presente trabalho, o mesmo padrão de comportamento
dos protótipos, e com isso, atestar a escolha do Protótipo 4 como o protótipo mais viável
para a implementação completa do Servidor de Dados Multimídia.
Nas subseções seguintes serão detalhados o protocolo e os critérios utilizados
para as avaliações dos protótipos em um ambiente local controlado e em um ambiente
real controlado.
5.3.3.1 Testes de Desempenho no Ambiente Local
Quando se fala, neste trabalho, em testes de desempenho no ambiente local
significa dizer que foi usado em todos os testes e em todos os cenários, a mesma
máquina, na qual estão instalados o Servidor de Danco de Dados e o Servidor de
Aplicação, e as requisições das funcionalidades do sistema foram realizadas no próprio
browser contido nesta mesma máquina. Desta forma, pôde-se isolar a variação da
transferência dos objetos do trafego da rede e pôde-se verificar o comportamento
referente ao tempo de resposta do conjunto do sistema dentro dos cenários avaliados.
A máquina local escolhida para executar os testes possui a seguinte
configuração:
• Modelo da máquina - TravelMate 2434WLMi;
• Processador - Intel Celeron M Processor 380, 1.6 GHz, 400 MHz FSB,
1MB L2 Cache;
85
• Quantidade de memória RAM - 1GBytes;
• Capacidade do Disco Rígido - 60GBytes;
• Interface de Rede - Fast Ethernet 10/100 M e 802.11b/g wireless LAN;
• Sistema Operacional - Windows XP; e
• Processos ativos no momento do teste - Servidor de Banco de Dados,
Servidor WEB, JMeter e processos internos do Sistema Operacional.
Foi executada a mesma bateria de testes do Protótipo 4 no ambiente local para
assegurar sua eficiência nos cenários definidos como críticos. Para isso, foi escolhida
uma ferramenta de medição de desempenho de sistemas web, o Jmeter [JMETER,
2006].
O plano de testes de desempenho dos protótipos é baseado nos cenários
mostrados no Quadro 15.
Quadro 15: Cenários de Testes de Desempenho
Tipo do Objeto Operação Quantidade de
usuários concorrentes
Tamanho do objeto
Padrão de Compressão
Imagem Inserção 10 100 Kb JPEG
Imagem Consulta 10 100 Kb JPEG
Imagem Inserção 100 100 Kb JPEG
Imagem Consulta 100 100 Kb JPEG
Áudio Inserção 10 1 Mb MP3
Áudio Consulta 10 1 Mb MP3
Áudio Inserção 100 1 Mb MP3
Áudio Consulta 100 1 Mb MP3
Vídeo Inserção 10 1 Mb MPEG-4
Vídeo Consulta 10 1 Mb MPEG-4
Vídeo Inserção 100 1 Mb MPEG-4
Vídeo Consulta 100 1 Mb MPEG-4
ORV Inserção 10 1 Mb VRML
ORV Consulta 10 1 Mb VRML
ORV Inserção 100 1 Mb VRML
ORV Consulta 100 1 Mb VRML
Conforme descrito no trabalho de [NASCIMENTO 2007], cada cenário contido
no Quadro 15 tem um tempo de um minuto para que todos os usuários completem a
operação escolhida. É preciso salientar que no presente trabalho o quadro foi estendido
86
para implementar os Objetos de Realidade Virtual, além do fato de terem sido feitas
avaliações es
tendidas em ambiente local e em ambiente real. Além disso, para se obter uma
amostra maior de dados, cada cenário é executado por 10 iterações. Assim, em um
cenário onde se tem 10 usuários concorrentes, obtem-se 100 amostras de tempo (10
usuários X 10 iterações) e em outro cenário que se tem 100 usuários, obtem-se 1000
amostras de tempo (100 usuários X 10 iterações). Vale ressaltar que foram adicionados
mais 4 novos cenários referentes a ORV (Objeto de Realidade Virtual).
A Figura 28 mostra a implementação do plano de testes (baseado nos cenários
definidos) de desempenho dos protótipos do presente trabalho na ferramenta Jmeter.
Figura 28: Plano de Testes de Desempenho – Interface do JMeter
A seguir serão mostrados os resultados obtidos com a aplicação dos cenários,
descritos no Quadro 15, nos quatro protópos avaliados. Os resultados foram agrupados
por objetos multimídia (imagem, áudio e vídeo) e objetos de realidade virtual (neste
caso em VRML).
87
5.3.3.1.1 Testes nos Cenários Utilizando Arquivos de Imagem
Nesta Seção serão mostrados os planos de testes implementados no JMeter, os
gráficos obtidos pelas séries temporais [EHLERS 2007] a partir dos valores de tempo de
resposta de cada operação e logo após serão discutidos os resultados obtidos.
As Figura 29 e Figura 30 mostram a interface do JMeter.
Figura 29: Plano de testes – Detalhamento de Inserção de Imagem – Interface do JMeter
Figura 30: Plano de testes – Detalhamento de Consulta de Imagem – Interface do Jmeter.
88
Aqui vale ressaltar que uma vez os objetos sendo inseridos no banco de dados,
cada objeto gera automaticamente um identificador único. Com isso, uma vez inserido
um dado número de objetos no banco, optou-se por logo em seguida fazer uma consulta
desses objetos baseada no identificador de cada objetos inserido no banco. Tal consulta
foi criada no Jmeter de modo a gerar identificadores aleatórios em cada requisição.
Desta forma, como os objetos são consultados aleatoriamente dentro de uma faixa
existente de identificadores, foi reduzida a possibilidade do SGBD formar um cache de
consultas preexistentes. Isso pode ser observado na Figura 30, no campo path, que
contem o seguinte valor: /prototipo-sdmm-p4/ImageViewer.jsp?id=${__Random(1,100,
randomId)}. A faixa de valor randomico é modificada para cada cenário executado.
É importante resssaltar que todos os gráficos e tempos apresentados nas seções
subsequentes foram feitas pelo atual trabalho, foram feitas comparações com o outro
trabalho só para garantir que as pesquisas inicias continuaram válidas para os presente
trabalho, lembrando que este trabalho tem os protótipos completos e integrados ao
Amadeus.
As figuras 31 a 34 mostram os gráficos de séries temporais referentes à inserção
e à consulta de imagem , tanto para o cenário de 10 usuários, quanto para o cenário de
100
usuários.
Figura 31: Inserção de Imagem em ambiente local (10 usuários)
89
Figura 32: Inserção de Imagem em ambiente local (100 usuários)
Figura 33: Consulta de Imagem em ambiente local (10 usuários)
Figura 34: Consulta de Imagem em ambiente local (100 usuários)
Tendo como base os resultados dos gráficos (Figura 31, Figura 32, Figura 33 e
Figura 34), resultados estes gerados pelo presente trabalho, foi montado o Quadro 16, o
qual apresenta uma comparação da média de tempo que cada protótipo levou para
completar cada cenário de teste de imagem.
90
Quadro 16: Comparação do Desempenho dos Protótipos para Imagem em ambiente local
Operação com Imagem Protótipo 1 Protótipo 2 Protótipo 3 Protótipo 4
Inserção com 10 usuários 214 ms 255 ms 231 ms 259 ms
Inserção com 100 usuários 14567 ms 18575 ms 15570 ms 19901 ms
Consulta com 10 usuários 140 ms 48 ms 59 ms 63 ms
Consulta com 100 usuários 7084 ms 51 ms 53 ms 52 ms
Foi realizada uma comparação com os resultados obtidos no trabalho de
[NASCIMENTO 2007], e pôde-se observar que o comportamento dos resultados foi
bastante semelhante, salvo um pequeno aumento no tempo de resposta. Entretanto,
valores já esperados por que, no presente trabalho, foi adicionada aos protótipos a
funcionalidade de upload de arquivo. Da mesma forma, os melhores resultados para
inserção ficaram com o Protótipo 1, e os melhores resultados para consulta ficaram com
o Protótipo 2 e o Protótipo 4 obteve tempos próximos aos Protótipo 1 e Protótipo 2,
como era de se esperar, pois o Protótipo 4 foi concebido a partir da composição dos
Protótipo 1 e Protótipo 2.
Com isso, em relação aos cenários de imagem em ambiente local, mesmo os
protótipos tendo recebido novas funcionalidades, mantiveram o mesmo comportamento
com relação ao tempo de resposta dos testes.As curvas dos gráficos das séries temporais
se mostraram bem próximas, salvo o deslocamento para cima no eixo x, devido às novas
funcionalidades adicionadas.
5.3.3.1.2 Testes nos Cenários Utilizando Arquivos de Áudio
As figuras 35 a 38 mostram os gráficos de séries temporais referentes à inserção e a consulta de áudio , tanto para o cenário de 10 usuários, quanto para o cenário de 100 usuários.
Figura 35: Inserção de Áudio em ambiente local (10 usuários)
91
Figura 36: Inserção de Áudio em ambiente local (100 usuários)
Figura 37: Consulta de Áudio em ambiente local (10 usuários)
Figura 38: Consulta de Áudio em ambiente local (100 usuários)
Tendo como base os resultados dos gráficos (Figura 35, Figura 36, Figura 37 e
Figura 38), foi montado o Quadro 17, o qual apresenta uma comparação da média de
tempo que cada protótipo levou para completar cada cenário de teste de áudio.
92
Quadro 17: Comparação do Desempenho dos Protótipos para Áudio em ambiente local
Operação com Áudio P1 P2 P3 P4
Inserção de áudio com 10 Usuários 243 ms 112 ms 315 ms 288 ms
Inserção de áudio com 100 usuários 31588 ms 3068 ms 33019 ms 45117 ms
Consulta de áudio com 10 usuários 161 ms 48 ms 6729 ms 57 ms
Consulta de áudio com 100 usuários 6380 ms 44 ms 103861 ms 50 ms
Da mesma forma que para imagem, foi realizada uma comparação com os
resultados obtidos no trabalho de [NASCIMENTO 2007], e pôde-se observar que o
comportamento dos resultados, obtidos pelo presente trabalho, onde o presente trabalho
implementou o conjunto completo das funcionalidades listadas para o servidor de dados
multimídia visando a integração total com a plataforma de ensino Amadeus, foi bastante
semelhante, salvo um aumento no tempo de resposta, valores estes já esperados por que
foi adicionada aos protótipos a funcionalidade de upload de arquivo. Neste caso, devido
à mudança de objeto para áudio, os melhores resultados para inserção e consulta ficaram
com o Protótipo 2. Da mesma forma, o Protótipo 4 obteve tempos relativamente
próximos aos do Protótipo 1, com relação à inserção e ao Protótipo 2, tempo próximo ao
da consulta, como era de se esperar, pois o Protótipo 4 foi concebido a partir da
composição dos Protótipo 1 e Protótipo 2.
Assim, com relação aos cenários de áudio em ambiente local, mesmo os
protótipos tendo recebido novas funcionalidades, mantiveram o mesmo comportamento
com relação ao tempo de resposta dos testes. As curvas dos gráficos das séries
temporais se mostraram bem próximas, salvo o deslocamento para cima no eixo x,
devido às novas funcionalidades adicionadas.
5.3.3.1.3 Testes nos Cenários Utilizando Arquivos de Vídeo
As figuras 39 a 42 mostram os gráficos de séries temporais referentes à inserção
e à consulta de vídeo, tanto para o cenário de 10 usuários, quanto para o cenário de 100
usuários.
93
Figura 39: Inserçao de Vídeo em ambiente local (10 usuários)
Figura 40: Inserçao de Vídeo em ambiente local (100 usuários)
Figura 41: Consulta de Vídeo em ambiente local (10 usuários)
Figura 42: Consulta de Vídeo em ambiente local (100 usuários)
94
Tendo como base os resultados dos gráficos (Figura 39, Figura 40, Figura 41 e
Figura 42), foi montado o Quadro 18, o qual apresenta uma comparação da média de
tempo que cada protótipo levou para completar cada cenário de teste de vídeo.
Quadro 18: Comparação do Desempenho dos Protótipos para Vídeo em ambiente local
Operações com Vídeo P1 P2 P3 P4 Inserção com 10 Usuários 398 315 471 447 Inserção com 100 usuários 29940 3211 31058 38478 Consulta com 10 usuários 231 141 466 146 Consulta com 100 usuários 6514 42 33405 50
Da mesma forma que em imagem e áudio, foi realizada uma comparação com os
resultados obtidos no trabalho de [NASCIMENTO 2007], mais uma vez vale ressaltar
que ,todos os resultados apresentados e obtidos pelo presente trablaho, onde o presente
trabalho implementou o conjunto completo das funcionalidades listadas para o servidor
de dados multimídia visando a integração total com a plataforma de ensino Amadeus,
em [NASCIMENTO 2007] foi implementado apenas um conjunto mínimo de requisitos
de forma que pudesse ser inferida uma comparação inicial entre as abordagens de
armazenamento de objetos multimídia, e pôde-se observar que o comportamento dos
resultados foi bastante semelhante, salvo um aumento no tempo de resposta, porém,
valores já esperados por que foi adicionado aos protótipos a funcionalidade de upload
de arquivo. Neste caso, devido à mudança de objeto para vídeo, os melhores resultados
para inserção e consulta também ficaram com o Protótipo 2. Da mesma forma, o
Protótipo 4 obteve tempos relativamente próximos aos do Protótipo 1, com relação à
inserção e aos do Protótipo 2, com relação à consulta, como era de se esperar, pois o
Protótipo 4 foi concebido a partir da composição dos Protótipo 1 e Protótipo 2.
Com isso, com relação aos cenários de vídeo em ambiente local, mesmo os
protótipos tendo recebido novas funcionalidades, mantiveram o mesmo comportamento
com relação ao tempo de resposta dos testes. As curvas dos gráficos das séries
temporais se mostraram bem próximas, salvo o deslocamento para cima no eixo x,
devido às novas funcionalidades adicionadas.
95
5.3.3.1.4 Testes nos Cenários Utilizando Arquivos de Objetos de Realidade Virtual
As figuras 43 a 46 mostram os gráficos de séries temporais referentes à inserção
e à consulta de objeto de realidade virtual (ORV), tanto para o cenário de 10 usuários,
quanto para o cenário de 100 usuários.
Figura 43: Consulta de Objeto de Realidade Virtual em ambiente local (10 usuários)
Figura 44: Consulta de Objeto de Realidade Virtual em ambiente local (100 usuários)
Figura 45: Inserção de Objeto de Realidade Virtual em ambiente local (10 usuários)
Figura 46: Inserção de Objeto de Realidade Virtual em ambiente local (100 usuários)
96
Tendo como base os resultados dos gráficos (Figura 43 Figura 44, Figura 45 e
Figura 46), foi montado o Quadro 19, que apresenta uma comparação da média de
tempo que cada protótipo levou para completar cada cenário de teste de ORV.
Quadro 19: Comparação do Desempenho dos Protótipos para ORV em ambiente local
Operações com ORV P1 P2 P3 P4 Consulta com 10 Usuários 1391 145 295 343 Consulta com 100 usuários 46093 327 345 336 Inserção com 10 usuários 2354 2940 2590 2966 Inserção com 100 usuários 35906 45804 38317 49193
Diferentemente das avaliações feitas em imagem, áudio e vídeo, foram
adicionados novos experimentos com relação a objetos de realidade virtual, visto que o
presente trabalho adicionou a manipulação desses objetos, os quais não foram
contemplados no trabalho de [NASCIMENTO 2007]. Neste caso, os melhores
resultados para inserção ficaram com o Protótipo 1, e os melhores resultados para
consulta ficaram com o Protótipo 2. Também desta vez , o Protótipo 4 obteve tempos
relativamente próximos ao Protótipo 1 e ao Protótipo 2, respectivamente com relação à
inserção e com relação à consulta, como era de se esperar, pois o Protótipo 4 foi
concebido a partir da composição dos Protótipo 1 e Protótipo 2.
Com isso, com relação aos cenários de objetos de realidade virtual em ambiente
local, mesmo os protótipos tendo recebido novas funcionalidades, mantiveram o mesmo
comportamento com relação ao tempo de resposta dos testes. As curvas dos gráficos das
séries temporais se mostraram com valores e comportamentos entre imagens e vídeos,
devido ao comportamento específico de objetos de realidade virtual, mais
especificamente arquivos VRML, que hora se comportam como imagem, após serem
carregados totalmente, e hora se comportam como vídeo, uma vez que podem ser
manipulados como animação.
5.3.3.2 Testes de Desempenho no Ambiente Real
Quando se fala, neste trabalho, em testes de desempenho no ambiente real,
significa dizer que foi usado em todos os testes e em todos os cenários, para este
ambiente, um servidor dedicado da rede interna do Centro de Informática (CIn) da
UFPE. Este servidor é identificado como a máquina JUPI, acesso via http://jupi,
contendo as aplicações de desenvolvimento de EAD, do próprio CIn, mais
especificamente as aplicações de desenvolvimento do projeto AMADEUS-MM. A
97
máquina JUPI possui instalado o servidor de banco de dados de desenvolvimento do
projeto e o servidor de aplicação de desenvolvimento. As requisições aos protótipos da
pesquisa em questão foram feitas de uma máquina desktop dentro da própria rede do
CIn, e as requisições das funcionalidades do sistema foram realizadas no próprio
browser contido nesta mesma máquina desktop. Desta forma, pôde-se fazer uma
apreciação do funcionamento dos protótipos em um ambiente concorrente de rede e,
neste caso, o ambiente real está intrisicamente ligado à variação da transferência dos
objetos do tráfego da rede, uma rede fast ethernet de 100MBps. Desta forma, pôde-se
verificar o comportamento referente ao tempo de resposta do conjunto do sistema dentro
dos cenários avaliados, levando-se em consideração o processamento e gerenciamento
do sistema no servidor real, e a latência do tráfego de rede.
A máquina servidora usada para executar os estes testes possui a seguinte
configuração:
• Modelo da máquina - DELL PowerEdge SC440;
• Processador - Dual Core Intel® Xeon® 3040, 2MB Cache, 1.86GHz,
1066MHz FSB;
• Quantidade de memória RAM - 2GBytes DDR2, 667MHz;
• Capacidade do Disco Rígido – 4 discos de 80GB 7.2K RPM Serial ATA
3Gbps;
• Interface de Rede - On-Board Single Gigabit Network Adapter;
• Sistema Operacional - FreeBSD;
• Processos ativos no momento do teste - Servidor de Banco de Dados,
Servidor WEB, JMeter e processos internos do Sistema Operacional.
Foi executada a mesma bateria de testes do Protótipo 4 e o mesmo plano de
teste, proposto no ambiente local, para assegurar a eficiência nos cenários definidos
como críticos, também no ambiente real. É preciso levar em consideração as
modificações no plano de teste referentes à configuração para apontar as requisições
para o servidor real.
5.3.3.2.1 Testes nos Cenários Utilizando Arquivos de Imagem
As figuras 47 a 50 mostram os gráficos de séries temporais referentes à inserção
e à consulta de imagem, tanto para o cenário de 10 usuários, quanto para o cenário de
100 usuários no ambiente real.
98
Figura 47: Inserção de Imagem em ambiente local (10 usuários)
Figura 48: Inserção de Imagem em ambiente local (100 usuários)
Figura 49: Consulta de Imagem em ambiente local (10 usuários)
Figura 50: Consulta de Imagem em ambiente local (100 usuários)
99
Tendo como base os resultados dos gráficos (Figura 47, Figura 48, Figura 49 e
Figura 50), foi montado o Quadro 20, o qual apresenta uma comparação da média de
tempo que cada protótipo levou para completar cada cenário de teste de imagem no
ambiente real.
Quadro 20: Comparação do Desempenho dos Protótipos para Imagem em ambiente real
ambiente real P1 P2 P3 P4 Inserção com 10 usuários 246 287 266 293 Inserção com 100 usuários 3878 4525 4187 6452 Consulta com 10 usuários 139 40 54 61 Consulta com 100 usuários 6992 43 48 50
Foi realizada uma comparação com os resultados obtidos na seção 5.3.3.1.1, e
pôde-se observar que o comportamento dos resultados foi semelhante, havendo uma
diminuição nos tempo de resposta, pois como a máquina que abriga os protótipos agora
é uma máquina com maior poder computacional, houve um melhor gerenciamento do
sistema principalmente no ambiente mais estressante de 100 acessos simultâneos.
Entretanto, os comportamentos dos protótipos foram semelhantes, os melhores
resultados, mais uma vez, para inserção ficaram com o Protótipo 1, e os melhores
resultados para consulta ficaram com o Protótipo 2. O Protótipo 4 obteve tempos
próximos aos dos Protótipo 1 e Protótipo 2, como era de se esperar, pois foi concebido a
partir da composição dos Protótipo 1 e Protótipo 2.
Com isso, com relação aos cenários de imagem em ambiente real, os protótipos
mantiveram o mesmo comportamento com relação ao tempo de resposta dos testes. As
curvas dos gráficos das séries temporais se mostraram bem próximas, salvo o
deslocamento para baixo no eixo x, devido ao maior poder de processamento e
gerenciamento do servidor no ambiente real.
5.3.3.2.2 Testes nos Cenários Utilizando Arquivos de Áudio
As figuras 51 a 54 mostram os gráficos de séries temporais referentes à inserção
e à consulta de áudio , tanto para o cenário de 10 usuários, quanto para o cenário de 100
usuários no ambiente real.
100
Figura 51: Inserção de Áudio em ambiente real (10 usuários)
Figura 52: Inserção de Áudio em ambiente real (100 usuários)
Figura 53: Consulta de Áudio em ambiente real (10 usuários)
Figura 54: Consulta de Áudio em ambiente real (100 usuários)
101
Tendo como base os resultados dos gráficos (Figura 51, Figura 52, Figura 53 e
Figura 54), foi montado o Quadro 21, o qual apresenta uma comparação da média de
tempo que cada protótipo levou para completar cada cenário de teste de áudio no
ambiente real.
Quadro 21: Comparação do Desempenho dos Protótipos para Áudio em ambiente real
ambiente real P1 P2 P3 P4 Insercão 10 usuários 279 148 351 317 Inserção 100 usuários 21355 3086 24215 22571 Consulta 10 usuários 154 47 6350 55 Consulta 100 usuários 5719 41 94019 47
Foi feita uma comparação com os resultados obtidos na seção 5.3.3.1.2, e pôde-
se observar que o comportamento dos resultados foi bastante semelhante, havendo uma
diminuição nos tempo de resposta, pois como a máquina que abriga os protótipos agora
é uma máquina com maior poder computacional, houve um melhor gerenciamento do
sistema principalmente no ambiente mais estressante de 100 acessos simultâneos.
Entretanto, os comportamentos dos protótipos foram semelhantes, com os melhores
resultados, neste caso devido à mudança de objeto para áudio, para inserção e consulta
ficando com o Protótipo 2. O Protótipo 4 obteve tempos próximos aos dos Protótipo 1 e
Protótipo 2, como era de se esperar, pois o Protótipo 4 foi concebido a partir da
composição dos Protótipo 1 e Protótipo 2.
Assim, com relação aos cenários de áudio em ambiente real, os protótipos
mantiveram os mesmos comportamentos com relação ao tempo de resposta dos testes de
requisição. As curvas dos gráficos das séries temporais se mostraram bem próximas,
salvo o deslocamento para baixo no eixo x, devido ao maior poder de processamento e
gerenciamento do servidor no ambiente real.
5.3.3.2.3 Testes nos Cenários Utilizando Arquivos de Vídeo
As figuras 55 a 58 mostram os gráficos de séries temporais referentes à inserção
e à consulta de vídeo, tanto para o cenário de 10 usuários, quanto para o cenário de 100
usuários no ambiente real.
102
Figura 55: Inserção de Vídeo em ambiente real (10 usuários)
Figura 56: Inserção de Vídeo em ambiente real (100 usuários)
Figura 57: Consulta de Vídeo em ambiente real (10 usuários)
103
Figura 58: Consulta de Vídeo em ambiente real (100 usuários)
Tendo como base os resultados dos gráficos (Figura 55, Figura 56, Figura 57 e
Figura 58), foi montado o Quadro 22, que apresenta uma comparação da média de
tempo que cada protótipo levou para completar cada cenário de teste de vídeo no
ambiente real.
Quadro 22: Comparação do Desempenho dos Protótipos para Vídeo em ambiente real
ambiente real P1 P2 P3 P4 Insere 10 usuários 430 351 510 458 Inserção 100 usuários 20572 3046 23994 22622 Consulta 10 usuários 202 126 410 127 Consulta 100 usuários 5866 39 29909 47
Foi realizada uma comparação com os resultados obtidos na seção 5.3.3.1.3, e
pôde-se observar que o comportamento dos resultados foi bastante semelhante, havendo
uma diminuição nos tempo de resposta, pois como a máquina que abriga os protótipos
agora é uma máquina com maior poder computacional, houve um melhor
gerenciamento do sistema principalmente no ambiente mais estressante de 100 acessos
simultâneos. Entretanto, os comportamentos dos protótipos foram semelhantes, os
melhores resultados, neste caso devido à mudança de objeto para vídeo, para inserção e
para consulta ficaram com o Protótipo 2. O Protótipo 4 obteve tempos próximos aos
Protótipo 1 e Protótipo 2, como era de se esperar, pois foi concebido a partir da
composição dos Protótipo 1 e Protótipo 2.
Com isso, com relação aos cenários de vídeo em ambiente real, os protótipos
mantiveram os mesmos comportamentos com relação ao tempo de resposta dos testes de
requisição. As curvas dos gráficos das séries temporais se mostraram bem próximas,
104
salvo o deslocamento para baixo no eixo x, devido ao maior poder de processamento e
gerenciamento do servidor no ambiente real.
5.3.3.2.4 Testes nos Cenários Utilizando Arquivos de Objetos de Realidade Virtual
As figuras 59 a 62 mostram os gráficos de séries temporais referentes à inserção
e à consulta de Objetos de Realidade Virtual , tanto para o cenário de 10 usuários,
quanto para o cenário de 100 usuários no ambiente real.
Figura 59: Inserção de Objeto de realidade virtual em ambiente real (10 usuários)
Figura 60: Inserção de Objeto de realidade virtual em ambiente real (100 usuários)
Figura 61: Consulta de Objeto de realidade virtual em ambiente real (10 usuários)
105
Figura 62: Consulta de Objeto de realidade virtual em ambiente real (100 usuários)
Tendo como base os resultados dos gráficos (Figura 59, Figura 60, Figura 61 e
Figura 62), foi montado o Quadro 23, que apresenta uma comparação da média de
tempo que cada protótipo levou para completar cada cenário de teste de objeto de
realidade virtual no ambiente real.
Quadro 23: Comparação do Desempenho dos Protótipos para ORV em ambiente real
P1 P2 P3 P4 Inserção 10 usuários 951 1542 1180 1581 Inserção 100 usuários 26820 36587 29265 34564 Consulta 10 usuários 1334 150 289 336 Consulta 100 usuários 41596 295 310 302
Foi realizada uma comparação com os resultados obtidos na seção 5.3.3.1.4, e
pôde-se observar que o comportamento dos resultados foi bastante semelhante, havendo
uma diminuição nos tempo de resposta, pois como a máquina que abriga os protótipos
agora é uma máquina com maior poder computacional, houve um melhor
gerenciamento do sistema principalmente no ambiente mais estressante de 100 acessos
simultâneos. Neste caso, os melhores resultados para inserção ficaram com o Protótipo
1, e os melhores resultados para consulta ficaram o com o Protótipo 2. Ainda desta vez
, o Protótipo 4 obteve tempos próximos aos do Protótipo 1 e do Protótipo 2,
respectivamente com relação à inserção e com relação à consulta, como era de se
esperar, pois o Protótipo 4 foi concebido a partir da composição dos Protótipo 1 e
Protótipo 2.
Assim, com relação aos cenários de objetos de realidade virtual em ambiente
real, os protótipos mantiveram os mesmos comportamentos com relação ao tempo de
resposta dos testes de requisição. As curvas dos gráficos das séries temporais se
mostraram bem próximas, salvo o deslocamento para baixo no eixo x, devido ao maior
poder de processamento e gerenciamento do servidor no ambiente real.
106
Nesta seção pôde-se comprovar que os protótipos foram mais rápidos no
ambiente real, e a avaliação dos protótipos se manteve válida, desta forma comprovando
a escolha correta do Protótipo 4 como cerne do Servidor de Dados Multimídia em um
ambiente real.
5.4 Arquitetura Proposta
Após a avaliação dos resultados e estabelecido um protótipo alvo para ser
implementado como um sistema, foi definida a arquitetura do Servidor de Dados
Multimídia. Esta é composta por vários componentes que interagem entre si para o
correto funcionamento do sistema, representado na Figura 63, distribuídos em uma
topologia cliente-servidor.
Figura 63: A arquitetura do Servidor de Dados Multimídia
5.4.1 Modelo de Componentes
Nesta seção será apresentado o modelo de componentes do Servidor de Dados
Multimídia, como o Servidor de Aplicação, o módulo de apresentação de objetos, o
107
módulo de integração com as Plataformas de Ensino a Distância e a camada de
persistência dos objetos no Servidor de Dados Multimídia.
5.4.1.1 Servidor de Aplicação SDMM
O Servidor de Aplicação para o Servidor de Dados Multimídia desenvolvido
neste trabalho é o cerne do SDMM. Ele é o componente responsável pela persistência,
manipulação, apresentação e integração com outras plataformas dos objetos multimídia
armazenados no ambiente, ele se divide em quatro módulos principais com diferentes
responsabilidades dentro do sistema. O módulo de manipulação de objetos disponibiliza
as funcionalidades de inserção, remoção, listagem, extração de informações e consultas
dos objetos multimídia e objetos de realidade virtual armazenados no sistema. Já o
módulo de apresentação de objetos é responsável pela adequação, montagem e exibição
no browser do usuário, quando este acessa diretamente o Servidor de Dados Multimídia,
e é composto por um conjunto de classes implementadas em servlets [SERVLETS
2007] e JSP [JSP 2007] que funcionam como a interface de exibição para o usuário. O
módulo de conversão dos objetos funciona de forma semelhante ao módulo de
apresentação, porém possui uma característica adicional que é fazer o controle das
requisições e envio dos objetos para outras plataformas de ensino a distância. Ele é o
principal elemento responsável pela integração do Servidor de Dados Multimídia com
outras Plataformas de Ensino a Distância. Além destes módulos o Servidor de Dados
Multimídia também possui um módulo para a persistencia dos objetos no banco de
dados do Servidor de Dados Multimídia. O servidor de aplicação escolhido para a
implementação dos módulos citados foi o Jakarta TomCat 5.5.9 [TOMCAT 2007] que é
um container de referência para especificação de Servlets, dentro deste contexto o
Tomcat também funciona como um Servidor WEB, fazendo o controle e gerenciamento
das requisições e respostas WEB. Os componentes do Servidor de Aplicação do SDMM
são mostrados na Figura 64
108
Figura 64: Componentes do Servidor de Aplicação do SDMM
5.4.1.1.1 Módulo de Apresentação de Objetos (Apresenta Objetos)
Como já foi dito anteriormente, o módulo de apresentação de objetos é
responsável pela adequação, montagem e exibição no browser do usuário, quando este
acessa diretamente o Servidor de Dados Multimídia, e é composto por um conjunto de
classes implementadas em servlets e jsps que funcionam como a interface de exibição e
acesso para o usuário. Este módulo é composto por 4 componentes que fazem o controle
de requisição e exibição das operações solicitadas pelos usuários, quando faz o acesso
direto ao Servidor de Dados Multimídia através de sua interface de operação. Os quatro
componentes que fazem este controle são: Apresenta Imagem, Apresenta Vídeo,
Apresenta Áudio e Apresenta ORV. A Figura 65 mostra em detalhes estes componentes.
É possível observar que cada componente possui um conjunto de subcomponentes
responsáveis por cada operação.
Figura 65: Detalhamento da Camada de Apresentação dos Objetos
109
Pode-se fazer uma representação de cada componente em um Diagrama de
Classes na Figura 66, da qual é possível observar a representação e relacionamento das
classes do componente Apresenta Imagem. De forma análoga pode-se representar os
demais componentes.
Figura 66: Diagrama de Classes representando o Componente Apresenta Imagem
5.4.1.1.2 Módulo de Integração com Plataformas de Ensino a Distância (ConversorHTMLXML Objetos)
O módulo de conversão dos objetos funciona de forma semelhante ao módulo de
apresentação, porém possui uma característica adicional que é fazer o controle das
requisições e envio dos objetos para outras plataformas de ensino a distância. Ele é o
principal elemento responsável pela integração do Servidor de Dados Multimídia com
outras Plataformas de Ensino a Distância, porém vale ressaltar que tal modelo foi
validado para a Plataforma de Ensino a Distância Amadeus, outras validações ficarão
para trabalhos futuros. A Figura 67 apresenta o detalhamento da camada do
ConversorHTMLXML dos Objetos. Os detalhes do funcionamento de cada componente
e de cada subcomponente serão mostrados no capítulo 6, de estudo caso da integração
com a plataforma de ensino Amadeus.
110
Figura 67: Datalhamento da Camada do ConversorHTMLXML dos Objetos
Da mesma forma que foi feita na Camada de Apresentação de Objetos, também
é possível fazer uma representação de cada componente em um Diagrama de Classes na
Figura 68, da qual é possível observar a representação e relacionamento das classes do
componente ConversorHTX Imagem. De forma análoga pode-se representar os demais
componentes da Camada do ConversorHTMLXML de Objetos para cada objeto
específico como Vídeo, Aúdio e ORV.
Figura 68: Diagrama de Classes representando o Componente ConversorHTX Imagem
111
5.4.1.1.3 Módulo de Manipulação de Objetos (Manipula Objetos)
O módulo de manipulação dos objetos é o módulo responsável por fazer o
controle de operações sobre cada tipo de objeto e repassar o objeto tratado para a
camada de persistencia, da mesma forma também repassa o objeto tratatado para a
camada de apresentação ou para a camada de integração.
No caso de se está tratando de objetos imagens, é possível extrair
automaticamente informações físicas da imagem através do componente ImageMagick,
gerar thumbnails e finalmente repassar o objeto para a camada de persistência de forma
que todas as informações agregadas pelo usuário e extraídas automaticamente serão
gravadas. Da mesma forma quando se trata de objetos do tipo vídeo ou áudio é possível
extrair informações físicas do vídeo ou do aúdio através do componente FFMpeg para
gerar thumbnails de frames de vídeo, segmentar frames de vídeo, equalizar áudio entre
outras operações disponibilizadas pelo FFMpeg. Para o caso de Objetos de Realidade
Virtual, a minipulação se restringe a extrair informações diretamente do código VRML
ou código X3D do Objeto de Realidade Virtual que está sendo manipulado. Lembrando
que após a manipulação dos objetos, estes serão armazenados pela camada de
persistência ou exibidos pela camada de apresentação ou pela camada de integração. A
Figura 69 mostra o módulo de manipulação dos objetos em detalhes e a Figura 70
mostra a camada de persitência dos objetos.
Figura 69: Detalhamento da Camada de Manipulação dos Objetos
112
Persiste Objetos
ImagemDAO VideoDAO AudioDAO ORVDAO
DAO
Figura 70: Detalhamento da camada de Persistencia dos Objetos
5.4.1.2 SGBD do Servidor de Dados Multimídia
Este é o componente responsável por gerenciar, garantir a segurança dos objetos
armazenados contra eventuais problemas no sistema, além de impedir tentativas de
acesso não autorizado. O Sistema de Gerenciamento de Banco de Dados escolhido foi o
PostgreSQL 8.0.3, devido ao bom desempenho, fácil configuração [POSTGRESQL
2006] e também ser o mesmo Sistema de Gerenciamento de Banco de Dados adotado
pela plataforma AMADEUS_MM. Na Figura 71, é mostrado o modelo lógico do Banco
de Dados. O SGBD do Servidor de Dados Multimída se liga ao Servidor de Aplicação
do Servidor de Dados Multimía através de uma conexão JDBC criada e gerenciada no
Servidor de Aplicação.
Figura 71: Modelo Lógico do Banco de Dados
113
5.5 Interface do protótipo com o usuário
Foi desenvolvida uma interface web entre o protótipo do servidor de
dados multimídia e o usuário, de forma que este pudesse ter acesso direto às
funcionalidades básicas de manipulação de objetos multimídia para aplicações
web, como inserção, consulta baseada em características descritivas do objeto
multimídia, deleção e alteração das características descritivas do objeto
multimídia. A Figura 72 mostra o professor acessando diretamente o Servidor
de Dados Multimídia.
Figura 72: Interação entre o usuário e o Servidor de Dados Multimídia
A Figura 73 mostra a interface de entrada principal para o servidor de
dados multimídia, a qual permite ao usuário escolher qual opção será
executada pelo Servidor de Dados Multimídia.
Figura 73: Tela Principal do Protótipo 4
114
Segue um exemplo manipulação de vídeos no Servidor de Dados
Multimídia. As demais telas para manipulação de imagens, áudios e objetos de
realidade virtual, baseiam-se na mesma interface de manipulação de vídeos.
A Figura 74 mostra a interface de inserção de vídeo, permitindo ao
usuário descrever informações pertinentes ao vídeo e fazer o upload do arquivo
para o Servidor de Dados Multimídia.
Figura 74: Inserção de Vídeo no Protótipo 4
No momento da inserção do vídeo, o sistema possui um componente que
captura e registra no banco de dados, automaticamente, propriedades inerentes
do arquivo, como tamanho em Kbytes, duração em segundos, resolução, taxa
de frame rate, taxa de bit rate, entre outras características. No caso, tal
componente é implementado baseado em uma interface para a suite de
software open source de manipulação de vídeos ffmpeg [FFMPEG-2007].
A Figura 75 representa a interface de consulta de vídeos, na qual o
usuário pode fazer consultas baseadas nas informações descritas pelo próprio
usuário ou pelas características intrínsecas do arquivo, geradas
automaticamente pelo componente de manipulação de vídeo no momento da
inserção. Caso haja mais de um vídeo que case com os mesmos parâmetros
passados pela consulta, será mostrada uma lista com esses vídeos.
115
Figura 75: Consulta de Vídeos no Protótipo 4
A Figura 76 representa a visualização de um vídeo selecionado pelo
usuário no momento da consulta. Serão mostradas todas as informações do
vídeo armazenadas no sistema e, também, o próprio objeto será visualizado na
tela do usuário através do player padrão do browser do usuário.
Figura 76: Visualização de Vídeo no Protótipo 4
116
A Figura 77 representa a interface de consulta de imagens, na qual o
usuário pode fazer consultas baseadas nas informações descritas pelo próprio
usuário ou pelas características intrínsecas do arquivo, geradas
automaticamente pelo componente de manipulação de imagem. No caso, tal
componente é implementado baseado em uma interface para a suite de
software open source de manipulação de imagem ImageMagick [IMAGEMAGICK
2007]. Caso haja mais de uma imagem que case com os mesmos parâmetros
passados pela consulta, será mostrada uma lista dessas imagens.
Figura 77: Consulta de imagens no Protótipo 4
A Figura 78 representa a interface de consulta de áudios, na qual o
usuário pode fazer consultas baseadas nas informações descritas pelo próprio
usuário ou pelas características intrínsecas do arquivo, geradas
automaticamente pelo componente de manipulação de áudio. No caso, tal
componente é implementado baseado em uma interface para a suite de
software open source de manipulação de vídeo/imagem ffmpeg [FFMPEG 2007].
Caso haja mais de um áudio que case com os mesmos parâmetros passados pela
consulta, será mostrada uma lista desses áudios.
117
Figura 78: Consulta de áudios no Protótipo 4
Além de vídeos, imagens e áudios, o protótipo também manipula objetos
de realidade virtual, usando o mesmo princípio da manipulação dos objetos
apresentados.
Como os objetos de realidade virtual manipulados pelo sistema são
armazenados em VRML e X3D, os dados capturados de tais objetos são
extraídos diretamente do código dos objetos VRML E X3D. Para isso, o
manipulador de objetos virtuais possui métodos específicos de acesso direto aos
códigos VRML e X3D para a extração das informações de tais objetos. A Figura
79 mostra a visualização de um objeto de realidade virtual previamente
inserido no SDMM.
Figura 79: Visualizando um Objeto de Realidade Virtual
118
5.6 Considerações Finais
Este capítulo descreveu os requisitos elicitados, a prototipação e
avaliação de desempenho dos protótipos estudados, foi feito um estudo de
análise de desempenho de servidores para se escolher a técnica e a abordagem
que seria utilizada para comparar os protótipos estudados, foi definido um
protocolo de testes para validar, tanto em ambiente local quanto em ambiente
real os protótipos nos cenários especificados, de forma a permitir fazer uma
comparação quantitativa baseada em análise de séries temporais [EHLERS
2007]. Dada a análise dos resultados e uma vez confirmado o protótipo alvo,
dentre os protótipos avaliados, de forma que o protótipo alvo seria escolhido
para se tornar o cerne do Servidor de Dados Multimídia e agregar novas
funcionalidades. Além disso, foram apresentados a arquitetura e os
componentes do Servidor de Dados Multimídia, além da Interface de Operação
entre o Servidor de Dados Multimídia e seus usuários correntes.
119
6 Estudo de Caso: Integração com a plataforma
Amadeus
Este capítulo apresenta de forma detalhada a arquitetura da Plataforma
de Ensino a Distância Amadeus-MM, apontando o elo de integração com o
Servidor de Dados Multimídia bem como apresenta os componentes
necessários que devem ser implementados na Plataforma de Ensino a Distância
para poder se comunicar com o Servidor de Dados Multimídia. Além de
mostrar o funcionamento detalhado de cada um desses componentes, tanto do
lado da Plataforma de Ensino a Distância quanto do lado do Servidor de Dados
Multimídia.
6.1 Arquitetura de Integração com a Plataforma Amadeus-MM
Esta seção aborda como é constituída a arquitetura da plataforma
Amadeus-MM, bem como o detalhamento dos componentes desta plataforma e
a forma como foi feita a integração com o Servidor de Dados Multimídia.
6.1.1 Padrões Arquiteturais da plataforma Amadeus-MM
A plataforma AmadeusMM é composta por vários componentes que
interagem para o correto funcionamento do sistema, representados na Figura 80
distribuídos em uma topologia cliente-servidor.
Figura 80: Arquitetura do Amadeus-MM Adaptado de [AMADEUS 2006]
120
6.1.1.1 Modelo de Componentes da Plataforma Amadeus-MM
Servidor AmadeusMM
Componente responsável pela manutenção das informações dos alunos e
cursos disponibilizados pelo ambiente. Este componente atua como um
centralizador das informações que são armazenadas em SGBD. Internamente,
este componente divide-se em vários módulos, com diferentes
responsabilidades dentro do sistema. O módulo de cadastro disponibiliza as
funcionalidades de manipulação (inserção, remoção, consulta e atualização) de
dados dos usuários e cursos do ambiente. O módulo de gestão de conteúdo
permite a manipulação dos diversos materiais a serem associados aos cursos
existentes. O módulo de avaliação é específico para a criação de testes e tarefas
a serem realizadas pelos alunos como critério de aprovação nos cursos
realizados. Por fim, o módulo de percepção social contempla as funcionalidades
previstas para permitir a introdução do conceito de transparência ou percepção
social aos usuários do AmadeusMM. Este conceito indica que os usuários
devem ser conscientes de atividades que estejam acontecendo por outros
usuários e que sejam relevantes dentro de contexto (usuários presentes que
façam o mesmo curso, usuários que estejam realizando a mesma atividade).
Devido à necessidade de informações espalhadas nos demais módulos do
servidor, o módulo de percepção é dependente dos demais, representado pelas
setas de comunicação descritas na Figura 81[AMADEUS 2006].
Middleware AmadeusMM
Componente de comunicação entre aplicações clientes e a infra-estrutura
servidora do AmadeusMM. As aplicações clientes que solicitam informações da
plataforma servidora utilizam uma API, que indicam como as requisições
destes clientes devem ser tratadas pela Plataforma AmadeusMM.
121
WebSite, MicroMundos e Mídias.
O acesso ao ambiente pode ser realizado de diferentes formas.
Primeiramente, o usuário pode utilizar um browser WEB para acessar os cursos
e demais funcionalidades do ambiente. Além desta forma, os conceitos de micro
mundos e mídias permitem que usuários também utilizem aplicações desktop
distribuídas através de programas específicos ou em mídias educativas como
CD-ROMs, para acesso ao ambiente. Estas aplicações poderão se comunicar
(trocar informações, disparar novos processos) de forma síncrona, permitindo
que as ações realizadas em cada aplicação tenham influencia as demais
aplicações utilizadas pelo usuário em um dado instante.
A Figura 81 mostra a integração entre o Servidor de Dados Multimídia e
a Plataforma de Ensino a Distância Amadeus-MM. É possível observar na
Figura 81 que foi preciso implementar no Middlewere do Amadeus-MM o
componente ConversorXMLHTML, componente responsável por fazer as
requisições ao SDMM, receber as respostas do SDMM e repassar as páginas
web transformadas adequadamente para o Módulo de Gestão de Conteúdo do
Amadeus-MM.
Figura 81: Integração entre o SDMM e Amadeus-MM
122
O objetivo é permitir que além do Amadeus-MM, outras plataformas de ensino
a distância que não possuem gerenciamento de objetos multimídia possam usar
os serviços do Servidor de Dados Multimídia. Vale ressaltar que o presente
trabalho fez experimentos para a plataforma Amadeus-MM, ficando para
trabalhos futuros novos experimentos com outras plataformas de ensino
baseadas no modelo web adotado pela plataforma Amadeus-MM.
A integração entre o Servidor de Dados Multimídia e a plataforma de ensino
a distância estudada basea-se em:
• Uso de XML para a troca de dados;
• Adaptação do módulo ConversorHTMLXML no lado do Servidor de
Dados Multimídia, de forma que este módulo responda às requisições da
plataforma de ensino a distância; e
• Criação de classes ou componentes do lado da plataforma de ensino a
distância de forma que possam fazer as requisições e devidas conversões
de respostas enviadas pelo servidor de dados multimídia.
O modelo proposto permite uma integração dos serviços disponibilizados
no servidor de dados multimídia para plataformas de educação a distância
baseadas na WEB.
Uma forma eficiente de transferir dados de maneira simples é usar troca
de mensagens baseadas em XML, onde é definido um padrão de troca de
mensagem em comum entre o servidor de dados multimídia e a plataforma de
ensino a distância que usa o serviço. Para isso, é preciso que o SDMM receba
uma solicitação e transforme a resposta da solicitação em um conjunto padrão
XML que será enviado para o sistema que solicitou.
O sistema de origem também precisa implementar um recurso que
receba a resposta em um padrão XML pré-definido e converta para o padrão
HTML de sua aplicação.
A idéia de se usar troca de mensagens XML, além de facilitar a
integração entre os sistemas, permite criar componentes que não alteram de
forma intrusiva a arquitetura ou a codificação da plataforma de ensino a
123
distância que implementar as chamadas e recebimentos dos serviços
disponibilizados pelo Servidor de Dados Multimídia.
Na Figura 82, referente à arquitetura do SDMM, pode-se destacar o
elemento principal da integração com as outras Plataformas de Ensino a
Distância. Este componente é chamado de ConversorHTMLtoXML.
Figura 82: Componente ConversorHTMLtoXML
Como o próprio nome sugere, este componente é responsável por receber uma
solicitação externa de um objeto multimídia. Após a solicitação, ele faz a
consulta e o processamento no SDMM e este retorna um arquivo XML contendo
as informações do objeto multimídia e o link do objeto previamente
armazenado no Servidor WEB controlado pelo SDMM.
A Figura 83 mostra de forma detalhada um dos sub-componentes do
componente ConversorHTMLtoXML.
Figura 83: Subcomponentes do ConversorHTMLtoXML
124
Existem 5 componentes básicos no ConversorHTMLtoXML. Cada componente
é responsável por receber um tipo de solicitação, processar esta solicitação e
devolver um arquivo XML correspondente à solicitação feita pela Plataforma de
Ensino a Distância. Cada componente Object pode ser um tipo imagem, vídeo,
áudio ou objeto de realidade virtual.
Os componentes básicos são:
HTXPesquisaObject – componente responsável por receber uma solicitação de
consulta de objeto, no qual, após processamento no SDMM, ele retorna um
objeto, ou uma lista de objetos que case com a consulta, gera um arquivo XML
contendo as características do objeto e o link (URL) do objeto previamente
armazenando no servidor web controlado pelo SDMM;
HTXEditaObject - componente responsável por receber uma solicatação de
edição de um objeto já identificado pelo sistema e pelo SDMM, ou seja, na
solicitação já é conhecido o identificador único do objeto a ser editado. Após o
processamento interno no SDMM, ele retorna um arquivo XML com
características que serão editadas pelo sistema que solicitou;
HTXVizualizaObject – componente responsável por receber uma solicitação de
visualização do objeto já identificado. Após o processamento interno no SDMM,
ele retorna uma arquivo XML contendo todas as características do objeto e o link
(URL) do objeto previamente armazenado no servidor web controlado pelo
SDMM;
HTXInsereObject – é o componente responsável por receber um arquivo XML
contendo todas as informações do objeto multimídia e fazer o upload do objeto
para o SDMM. Uma vez concluída a operação, o SDMM retorna um arquivo
XML com uma mensagem de sucesso e as características do objeto e a URL do
objeto armazenado no servidor web controlado pelo SDMM;
HTXExcluiObject – é o componente responsável por excluir um objeto já
identificado. Caso haja permissão de exclusão do objeto, o componente dispara
um processo para excluir o objeto do servidor web e do banco de dados do
SDMM, e logo após, retorna um arquivo XML contendo o sucesso ou não da
operação.
125
Da mesma forma que existe no SDMM um componente
ConversorHTMLtoXML para responder as solicitações dos sistemas externos
(Plataformas de Educação a Distancia), deve existir no sistema solicitante
(Plataformas de Educação a Distancia) um componente
ConversorXMLToHTML para enviar as solicitações para o SDMM, receber as
mensagens do SDMM e converter o conteúdo dessas mensagens para um
arquivo HTML que possa ser interpretado ou integrado à plataforma de EAD.
O componente pode ser visualizado na Figura 84 e ele é composto por sub-
componentes de conversão de arquivos XML para arquivos HTML que serão
encarregados de extrair as informações das mensagens XML e montar páginas
HTML que serão visualizadas na plataforma de EAD, de acordo com as
peculiaridades do sistema de EAD.
Figura 84: Componente ConversorXMLtoHTML e templates para a Plataforma de Ensino
A seguir, serão descritos os componentes conversores XML to HTML que
devem ser implementados na Plataforma de Ensino a Distância para que possa
ser estabelecida a integração e comunicação com o SDMM:
XTHPesquisaObjeto – uma vez definido o tipo de objeto que será consultado no
SDMM (vídeo, áudio, imagem ou objeto de realidade virtual) e passados os
parâmetros de consulta via uma requisição HTTP, logo após o SDMM identifica
o tipo de solicitação, no caso uma consulta de um objeto tipo x, faz o
processamento e envia para o componente do EAD o arquivo XML
correspondente. Quando o arquivo XML é recebido pelo componente
126
cxthsearchObject, ele “monta” o HTML baseado no componente
templateSearch.html, de forma que este HTML será processado ou visualizado
de acordo com os padrões de projeto e implementação da interface do sistema
de EAD em questão;
XTHEditaObjeto – uma vez definido o tipo de objeto que será editado no
SDMM e passado os parâmetros de edição, o SDMM salva estes parâmetros e
envia o arquivo XML correspondente à edição. Quando o arquivo XML é
recebido pelo componente cxtheditobject, ele “monta” o HTML baseado no
componente templateEdit.html de forma que este HTML será processado de
acordo com os padrões de projeto e implementação de interface do sistema
EAD em questão;
Os demais componentes funcionam de forma semelhante. A descrição e o
funcionamento destes componentes implementados na Plataforma de Ensino a
Distância mostra a simplicidade de integração dos sistemas, ao mesmo tempo
em que não interfere, ou depende da arquitetura da Plataforma de Ensino a
Distância, permitindo assim uma maior flexibilidade e extensibilidade de
implementação na plataforma de EAD.
Para isso, (comprovar a eficiência, desempenho e facilidade de
integração), foi feito um estudo de caso com um ambiente real e operacional de
ensino a distancia para comprovar o funcionamento do modelo proposto.
6.2 Visualização da Interface de Integração entre SDMM e Amadeus-
web.
Nesta seção será mostrado o produto final da integração entre o Servidor
de Dados Multimídia e a plataforma de ensino a distância alvo.
Uma vez definida e implementada a arquitetura e o módulo de integração
(ConversorHTMLXML Objetos) no lado do Servidor de Dados Multimídia, foi
definido e implementado o componente de integração (ConversorXMLHTML
Objetos) do lado do Amadeus. Foram feitas chamadas a partir do módulo de
gestão de conteúdo de forma que os conteúdos criados na Plataforma de Ensino
a Distância usassem recursos do Servidor de Dados Multimídia. O seguinte
127
exemplo mostra o contexto de um trabalho desenvolvido, para a Secretaria de
Defesa Social, a qual solicitou a criação de um trabalho para desenvolver uma
atividade de vídeo-chat na plataforma de ensino a distância.
Esse contexto mostra a figura de um professor que criará um curso, o qual
será chamado de “Primeiros socorros”; logo após criar o curso, o professor
criará um módulo dentro deste curso, o qual será chamado de “Resgatando um
Acidentado”; depois de criado o curso, o professor fará uma consulta de um
vídeo armazenado no Servidor de Dados Multimídia. É possível notar que neste
passo, a interface de consulta de vídeo já está integrada ao Amadeus-MM. Após
o professor consultar a lista de vídeos retornada na pesquisa, ele escolhe o
vídeo que será adicionado ao módulo em questão e, finalmente, o professor
salva as alterações do módulo e do curso, e automaticamente este curso é
disponibilizado pela Plataforma de Ensino a Distância.
No segundo momento, o aluno deve escolher o curso que irá participar. O
aluno selecionará o módulo a ser estudado e logo em seguida visualizará o
vídeo da atividade, neste caso, o vídeo foi adicionado em uma atividade do tipo
vídeo-chat, onde dois ou mais alunos ao selecionarem o vídeo da atividade,
poderão assistir ao vídeo e em tempo real e poder conversar com outros alunos
e o professor que criou aquela atividade de vídeo-chat.
As figuras 85 a 94 permitem visualizar o contexto descrito acima no
ambiente operacional da plataforma de ensino a distância.
128
Interface na Visão do Professor usando os serviços do SDMM Professor Cria o Curso:
Figura 85: Professor Cria um curso na Plataforma Amadeus
Professor Cria o Módulo:
Figura 86: Professor cria um módulo dentro do curso recém criado
No módulo, o professor cria uma atividade e faz uma consulta de Vídeos
disponíveis no SDMM. Aqui é possível observar a interface de acesso ao
SDMM, consultar vídeo:
129
Figura 87: Consultando um vídeo dentro da Plataforma Amadeus
Professor Visualiza a lista de Vídeos Disponíveis na plataforma de ensino a distância:
Figura 88: Visualizando lista de vídeos disponíveis após consulta
O professor pode, então, visualizar o vídeo escolhido. Neste caso, o player
que o vídeo toca, é o player padrão do browser do usuário:
130
Figura 89: Visualizando um vídeo selecionado na lista de vídeos
Professor salva o vídeo como atividade.
Após o professor criar o curso, criar o módulo e adicionar a atividade, o
curso é disponibilizado na plataforma de ensino a distância.
Uma vez o curso disponibilizado, qualquer aluno poderá acessar este
curso para usufruir do seu conteúdo.
Interface na Visão do Aluno usando os serviços do EAD
Aqui é mostrado o aluno acessando a plataforma de ensino a distância
Amadeus para consultar os cursos disponíveis.
Aluno acessa Amadeus para realizar atividade:
Figura 90: Tela de acesso ao Amadeus
131
Aluno seleciona o Curso “Curso de Primeiros Socorros” no Amadeus:
Figura 91: Aluno seleciona curso
Aluno seleciona o Módulo “Resgatando o acidentado”:
Figura 92: Aluno seleciona módulo e atividade vídeo
Aluno escolhe visualizar Atividade Video-Chat.
Quando o aluno seleciona um vídeo na atividade, ele é direcionado para
um lobby de salas de discussão, no qual o aluno escolhe a sala e logo após é
iniciada a visualização do vídeo, junto com outros alunos que escolheram a
mesma sala.
132
Figura 93: Conjunto de salas disponíveis para a discussão do vídeo da atividade
Finalmente, o aluno poderá assistir ao vídeo e discutir o vídeo junto com
outros alunos e o professor que criou esta atividade.
Figura 94: Ambiente de vídeo-chat para a discussão do vídeo
133
6.3 Considerações Finais
Neste capítulo foi feito um estudo sobre a arquitetura da Plataforma de Ensino a
Distância Amadeus, e a partir deste estudo foi definida a forma de integração levando
em consideração o middleware disponibilizado pelo AMADEUS-MM, de forma que foi
implementado um conjunto de componentes que viabilizasse a troca de mensagens entre
o Servidor de Dados Multimídia e o Amadeus-MM. Cada um dos componentes
implementados nos dois lados foram descritos e visualizados. Este capítulo culminou
em uma desmonstração aplicada da integração do Servidor de Dados Multimídia com o
Amadeus-MM, mostrando a interação do começo ao fim dos sistemas integrados. Foi
possível acompanhar uma demanda real de Ensino a Distância gerada pela Secretaria de
Defesa Social de Pernambuco e implementada junto com a equipe do projeto Amadeus-
MM, de forma que demonstrou o funcionamento da arquitetura e interfaces
desenvolvidas para a integração entre o Servidor de Dados Multimídia e a Plataforma de
Ensino a Distância.
134
7 Conclusões
Nesse trabalho, foram investigados aspectos conceituais de objetos multimídia e
de realidade virtual, bem como técnicas de manipulação, armazenamento e recuperação
de objetos em banco de dados. Foram realisados estudos com relação ao uso de objetos
multimídia e de realidade virtal em Plataformas de Ensino a Distância, tendo sido
definidos, especificados e implementados protótipos nas abordagens estudadas sobre
armazenamento e recuperação de objetos multimídia e de realidade virtual em
ambientes de ensino a distância. Foram executados planos de avaliação de desempenho
dos protótipos tanto em ambiente local, quanto em ambiente real para assegurar a
escolha do protótipo mais eficiente para ser usado como cerne do servidor de dados
multimídia. Foi criada uma arquitetura do servidor de dados multimídia de forma que o
mesmo pudesse ser integrado a plataformas de ensino a distância de forma transparente
para a plataforma e, por fim, foram alcançados todos os objetivos planejados na
pesquisa.
A seguir será apresentado um resumo das principais contribuições do presente
trabalho (Seção 7.1), e propostas de alguns trabalhos futuros (Seção 7.2). As
considerações finais serão feitas na seção 7.3.
7.1 Resumo das Contribuições
A seguir é apresentado um resumo das principais contribuições do dsete
trabalho:
• Formação de um material de estudo sobre aspectos conceituais e de
manipulação de objetos multimídia e de realidade virtual;
• Formação de um material de estudo sobre aspectos de recuperação de
objetos baseada em conteúdo e recuperação de objetos baseada em meta-
dados;
• Adaptação de ferramentas open-source para manipulação de objetos
multimídia para plataformas de ensino a distância, mostrando os recursos
135
do ImageMagick e FFMpeg para manipulação, transformações e
extração de informações de objetos multimídia;
• Uma nova abordagem para gerenciamento colaborativo de objetos
multimídia e de realidade virtual para plataformas de ensino a distância,
permitindo que vários professores, ou tutores, possam compartilhar
material multimídia e de realidade virtual em um ambiente integrado e de
fácil usabilidade, reaproveitando materiais e incrementando a descrição
dos mesmos de forma colaborativa;
• Os experimentos sobre a avaliação dos protótipos estudados geraram um
trabalho final de graduação em ciência da computação, trabalho
intitulado: Análise de Serviços de Manipulação de Objetos Multimídia
em Sistemas Virtuais de Ensino, por Antonio Josivaldo do Nascimento
Filho;
• O presente trabalho serviu de base e recurso para desenvolvimento de um
trabalho da disciplina de Ciência da Computação do Centro de
Informática da UFPE, intitulada Desenvolvimento de Projetos, por meio
do Professor Alex Sandro Gomes e a Equipe Brainz, que desenvolveu o
trabalho de criação de um video-chat integrado com uma plataforma de
ensino a distância, trabalho que por sua vez utilizou, efetivamente,
recursos do Servidor de Dados Multimídia desenvolvido neste trabalho.
7.2 Limitações e Trabalhos Futuros
O modelo do Servidor de Dados Multimídia proposto, atualmente, permite fazer
consultas apenas baseadas em metadados de descrição do objeto, ou seja, as buscas são
realizadas nas informações armazenadas na tabela do banco de dados que descreve o
objeto. Foram estudas no Capítulo 3, várias técnicas de busca baseadas em conteúdo de
imagem, de vídeo, de áudio e de objetos de realidade virtual, com isso pode ser indicado
como trabalho futuro o estudo dessas técnicas aplicadas à busca de conteúdo associada
com plataformas de ensino a distância. Dessa forma, tais buscas baseadas em conteúdo
agregariam mais valor a sistemas virtuais de ensino.
136
Também foi observado que a transmissão dos objetos multimídia e objetos de
realidade virtual são feitas sob demanda e os objetos são enviados de forma constante,
ou seja, não existe nenhum tipo de adaptação do conteúdo, ou adaptação de banda de
transmissão. Existem várias técnicas de computação pervasiva e de qualidade de serviço
que permitem a adaptação dos objetos de acordo com o contexto solicitado, por
exemplo, caso o usuário estivesse usando um celular, no momento que ele fizesse uma
solicitação de um objeto multimídia ou de realidade virtual do servidor de dados
multimídia, automaticamente o servidor de dados multimídia reconheceria a capacidade
média da banda de transmissão do requisitante, o tipo de equipamento do requisitante, a
resolução com suporte no dispositivo do requisitante, e através dessas informações farai
transformações que adaptariam o conteúdo ao equipamento do solicitante.
Fazer estudos referentes à escalabilidade do servidor, permitindo que o servidor
acomode aumentos possivelmente grandes no número de usuários, aplicações e novas
funcionalidades. O servidor deverá permitir escalonamento tanto na escalabilidade
horizontal (adicionando mais máquinas), quanto na escalabilidade vertical (fazer a troca
de máquinas com maior poder de processamento), de forma que a arquitetura proposta
para Servidor de Dados Multimídia permitisse tal escalabilidade sem sofrer grandes
alterações que impactassem no fornecimento e manutenção do serviço.
137
Referências [ADOBE 2007] ADOBE. Site oficial da Adobe, 2007. Disponível em:
http://www.adobe.com Acesso em: 02/05/2007.
[AJAX 2006] AJAX: A new Approuche to Web Applications. Disponível em http://www.adaptivepath.com/ideas/essays/archives/000385.php Acesso em: 12/06/2006.
[ALEXA 2007] ALEXA. The Web Information Company, 2007. Disponível em http://www.alexa.com Acesso em 10/12/2007.
[AMADEUS 2006] AMADEUS. Plataforma de Educação à distância. Disponível em http://amadeus.cin.ufpe.br. Acesso em: 01/04/2006.
[AMPAS 2007] AMPAS. Academy of motion pictures arts and sciences, 2007 . Disponível em: http://www.oscars.org Acesso em: 15/05/2007.
[ANDERSON 2006] ANDERSON T., Theory and Practice of Online Learning. Atabasca University Canada, 2006. Disponível em http://cde.athabascau.ca/online_book. Acesso em 16/11/2006
[ANNOTATION 2007] ANNOTATION. IBM Annotation tool, 2007. Disponível em http://www.alphaworks.ibm.com/tech/videoannex Acesso em 03/09/2007
[APACHE 2007] APACHE. Apache Software Foundation, 2007. Disponível em http://www.apache.org Acesso em 20/02/2007
[APPLE 2007] APPLE. QuickTime and MPEG-4: Now Featuring H.264, 2007. Disponível em: http://images.apple.com/quicktime/pdf/H264_Technology_Brief.pdf. Acesso em: 02/06/2007.
[APRENDERNANET 2006]
APRENDERNANET. Construir uma infra-estrutura para o e-Learning, 2006. Disponível em http://portal.aprendernanet.com Acesso em 25/06/2006
[BARBER 2007] BARBER R. Scott. Beyond Performance Testing – A performance Engineering Strategy, 2007. Disonível em http://www.perftestplus.com/resources/BPT2.pdf Acessom em 01/10/2007
138
[BATTISTA et al.1999] BATTISTA, S., CASALINO F.; LANDE, C., 1999. MPEG-4: A Multimedia Standard for the Third Millennium - Part 1. IEEE MultiMedia. Revisar
[BDA 2007] BDA. Blu-ray Disc Association, 2007. Disponível em: http://www.blu-raydisc.com/. Acesso em: 01/05/2007.
[BITDEPTH 2007] BITDEPTH. Understanding Bit Depth, 2007. Disponível em: http://www.cambridgeincolour.com/tutorials/bit-depth.htm Acesso em 10/05/2007.
[BOHMS 1994] BOHMS K. Metadata for multimedia documents. SIGMOD RECORD, 23(4):21-26, 1994 Revisar
[CARSON 1999] CARSON C., BELONGIE S., GREENSPAN H., MALIK J. Blobworld: Image segmentation using Expectation-Maximization and its application to image querying, Third International Conference on Visual Information Systems 1999.
[CECCEHET et al 2002] CECCHET E., MARGUERITE J., ZWAENEPOEL W., “Performance and Scalability of EJB Applications”, Proc 17th Conference on Object-Oriented Programming, Systems, Languages and Applications, Seatle, WA. 2002
[CHIARIGLIONE 1996] CHIARIGLIONE, L. Short MPEG-1 description, 1996. Disponível em: http://www.chiariglione.org/mpeg/standards/mpeg-1/mpeg-1.htm. Acesso em: 02/05/2006.
[CLAROLINE 2006] CLAROLINE – Open Source Learning Management System, 2007. Disponível em http://www.claroline.net. Acesso em 05/07/2007
[COMPUSERVE 2007] COMPUSERVE. Site oficial da Compuserve, 2007. Disponível em: http://www.compuserve.com. Acesso em: 02/05/2007.
[CORNELL 2000] CORNELL. Moving theory into practice: Digital imaging tutorial. Relatório Técnico, Cornell University Library. 2002
[DA SILVA 2006] DA SILVA, R. C., 2006. Benchmark em banco de dados multimídia: Análise de desempenho em recuperação de objetos multimídia. Dissertação de Mestrado, Universidade Federal do Paraná. Disponível em: http://dspace.c3sl.ufpr.br/dspace/bitstream/1884/4683/1/di
139
sserta_ricardo.pdf. Acesso em: 10/05/2007.
[DATTA et al 2007 ] DATTA R., JOSHI D.J, LI J.and JAMES Z. WANG . Image Retrieval: Ideas, Influences and Trends of the New Age. The Pennsylvania State University, 2007. Disponível em http://infolab.stanford.edu/~wangz/project/imsearch/review/JOUR/datta.pdf Acesso em 23/10/2007
[DPX 2007] Digital Picture Exchange - The Society of Motion Pictures and Television Engineers, 2007. Disponível em www.smpte.org Acesso em 23/07/2007
[EBERSPACHER 2006] EBERSPACHER F., JAMU H., ELEUTÉRIO M. Using a web-based learning environment for distance education, 2006. Disponível em ftp://ftp.lami.pucpr.br/Pub/Docs/Art9906.pdf Pontifical Catholic University of Paraná – PUCPR. Acesso em 11 nov. 2006.
[EHLERS 2007] EHLERS Ricardo S. Análise de Séries Temporais. Laboratório de Estatística e Geoinformação. Universidade Federal do Paraná, 2007. Disponível em http://leg.ufpr.br/~ehlers/notas/stemp.pdf Acesso em 10/10/2007
[EIDENBERGER et al 2002]
EIDENBERGER H., BREITENEDER C., HITZ M. A Framework for Visual Information Retrieval Visual Information and Information Systems. 2002
[EXR 2007] Open EXR - Site oficial, 2007. Disponível em www.openexr.org Acesso em 23/07/2007
[FFMPEG 2007] FFMEP. Site oficial Ffmpeg, 2007. Disponível em http://ffmpeg.mplayerhq.hu. Acesso em 04/06/2007
[FOTOLOG 2007] FOTOLOG. Site oficial do Fotolog, 2007. Disponível em http://www.fotolog.com. Acesso em 15/05/2007
[FRANÇA 2005] FRANÇA, B. M. Banco de Dados Multimídia. Disponível em: http://www.inf.ufrgs.br/~clesio/cmp151/cmp15120021/artigo_montgomery.pdf Acesso em: 11 set. 2006.
140
[FRAUNHOFER 2007] FRAUNHOFER. Instituto Fraunhofer, 2007. Disponível em: http://www.iis.fraunhofer.de/. Acesso em: 10/05/2007.
[FREEBSD 2007] FreeBSD. The FreeBSD Project, 2007. Disponível em http://www.freebsd.org. Acesso em 10/07/2007
[GATTASS 2005] GATTASS, M.,. Imagem Digital, 2005. Disponível em: http://www.tecgraf.puc-rio.br/~mgattass/cg/pdf/03_ImagemDigital.pdf. Acesso em: 10/05/2007.
[GIBSON 2006] GIBSON, B., Sampling Rates from The AudioPro Home Recording Course, 2006. Disponível em: http://digitalproducer.digitalmedianet.com/articles/viewarticle.jsp?id=7408. Acesso em: 13/05/2006.
[GOFISH 2007] GoFish, Site oficial, 2007. Disponível em: http://www.gofish.com/. Acesso em: 02/05/2007.
[GONZALEZ & WOODS 1992]
GONZALEZ, R. C. and WOODS, R. E., Digital Image Processing, 1992. Addison-Wesley Publishing Company.
[GOOGLE VIDEO 2007] GOOGLE VIDEO, Site oficial, 2007. Disponível em: http://www.googlevideo.com. Acesso em: 02/05/2007.
[GOULART 2003] GOULART, R., Personalização e adaptação de conteúdo baseadas em contexto para TV Interativa, 2003. Tese apresentada ao Instituto de Ciências Matemáticas e de Computação - ICMC-USP. Disponível em: http://www.mpeg.org.br/arquivos/rudinei.pdf. Acesso em: 02/05/2007.
[IBMRUP 2007] IBMRUP. Beyond Performance testing: A performance engineering strategy, 2007. Disponível em http://www-128.ibm.com/developerworks/rational/library/4215.html. Acesso em 03/06/2007
[IETF 2007] IETF. Internet Engineering Task Force, 2007. Disponível em: http://www.ietf.org. Acesso em: 02/05/2007.
[IMAGEMAGICK 2007] IMAGEMAGICK . Image Magick – A tool to convert, Edit and compose images, 2007. Disponível em http://www.imagemagick.org Acesso em 10/06/2007
[INTERMEDIA 2007] INTERMEDIA . Oracle Intermedia, 2007.Disponível em http://www.oracle.com/technology/documentation/intermedia.html. Acesso em 26/10/2007
141
[ISMA 2007] ISMA. Internet Streaming Media Alliance, 2007. Disponível em: http://www.isma.tv/. Acesso em: 02/05/2007.
[ITU-T 2007] ITU-T. International Telecommunication Union - ITU-T, 2007. Disponível em: http://www.itu.int/ITU-T. Acesso em: 12/05/2007.
[JAIN 1991]. JAIN, R. “The art of computer systems performance evaluation”, 1991. Wiley Computer Publishing, ISBN: 0-47150336-3
[JAVA 2006] JAVA. Site oficial, 2007 Disponível em http://sun.java.com Acesso em 10/10/2007
[JMETER 2007] JMETER. Site oficial, 2007. Disponível em http://jakarta.apache.org.jmeter. Acesso em 10/04/2007
[JPEG 2007] JPEG. Joint Photografic Experts Group – JPEG, 2007. Disponível em: http://www.jpeg.org. Acesso em: 10/05/2007.
[JSP 2007] JSP. Sun Microsystems, JSP – JavaServer Pages, 2007. Disponível em http://java.sun.com/products/jsp. Acesso em 02/05/2007
[JVT 2007] JVT. Joint Video Team – JVT, 2007. Disponível em: http://www.itu.int/ITU-T/studygroups/com16/jvt/index.html. Acesso em: 10/05/2007.
[LEW et al. 2006] LEW M.S., NICU S. Leiden. Content-based Multimedia Information Retrieval:State of the Art and Challenges, University, University of Amsterdam, The Netherlands and RAMESH JAIN, 2006. University of California at Irvine, USA CHABANE DJERABA, LIFL, France.
[Liu et al 2004] LIU, Y., GORTON, I. “Predicting the Performance of Middelware-based Applications at the Design Level”, Proc. 4th Int, 2004. Workshop on Software and Performance.
[LINUX 2007] Linux. Linux on-line homepage, 2007. Disponível em http://www.linux.org Acesso em 07/02/2007.
[LLADÓ e HARRISON 2000]
LLADÓ, C. e HARRISON, P.. “Performance Evaluation of an Enterprise JavaBeans Server Implementation”, proc. 2nd international Workshop on Software and Performance, 2000, Ottawa, Canada, pp.17-20.
142
[LUEBKE et al 2002] LUEBKE, D. et al., Level of Detail for 3D Graphics, Morgan Kaufmann; 2002.
[MCGUINNES e MURPHY 2005]
MCGUINNES, D., e MURPHY, L. “A simulation modelo f a multi-server systems, 2005, A-MOST’05, St. Louis, Missouri, USA.”
[MEDIAWIKI 2007] MEDIAWIKI. Site oficial, 2007. Disponível em http://www.mediawiki.org. Acesso em 04/02/2007
[METACAFE 2007] METACAFE. Site oficial, 2007 Disponível em: http://www.metacafe.com. Acesso em: 02/05/2007.
[METADATA 2005] METADATA: A cataloger’s primer - Richard P. Smiraglia Long Island University 2005 by The Howorth Press Inc.
[MICROSOFT 2007] MICROSOFT® Corporation. Site oficial 2007. Disponível em: http://www.microsoft.com. Acesso em: 02/05/2007.
[MOODLE 2006] MOODLE. Site oficial, 2007. Disponível em http://www.moodle.org. Acesso em 30/06/2006
[MPEG 2007] MPEG. Moving Picture Experts Group – MPEG, Site oficial, 2007. Disponível em: http://www.mpeg.org. Acesso em: 05/05/2007.
[MYSPACE 2007] MYSPACE. Site oficial, 2007. Disponível em http://www.myspace.com. Acesso em 15/05/2007
[MYSQLAB 2007] MYSQLAB. Site oficial MySQL, 2007. Disponível em http://www.mysql.com/companny acesso em 05/02/2007
[NASCIMENTO 2007] NASCIMENTO F. J. Antonio. Análise de Serviços de Manipulação de Objetos Multimídia em Sistemas Virtuais de Ensino, 2007. Trabalho de Conclusão de Curso, Universidade Federal de Pernambuco. Disponível em: http://www.cin.ufpe.br/~tg/2007-1/ajnf.pdf
[NIBLACK et al 1993] NIBLACK, R. BARBER, W. Equitz, M.Flickner, E.Glasman, DPetkovic and P.Yanker.IBM QBIC System 1993. The QBIC Project: Quering Images by content using color, textura and shape. SPIE Conference on Storage and Retrieval for Image and Video Databases, pages 173-187, 1993
143
[ON2 2007] ON2 Technologies. Site oficial, 2007. Disponível em: http://www.on2.com/. Acesso em: 03/05/2007.
[ORACLE 2007] ORACLE. Site oficial, 2007. Disponível em http://www.oracle.com. Acesso em 25/02/2007
[PDF 2007] Adobe Portable Document Format. Site oficial, 2007. Disponível em www.adobe.com/pdf. Acesso em 23/07/2008
[PHP 2007] PHP. Site oficial, 2007. Disponível em http://www.php.net. Acesso em 30/06/2007
[POSTGRESQL 2006] POSTGRESQL. Site oficial, 2006 Disponível em http://www.postgresql.org. Acesso em 17/10/2006.
[POSTSCRIPT 2007] Adobe Postscript. Site oficial, 2007. Disponível em www.adobe.com/postscript. Acesso em 23/07/2007
[PHOTOCD 2007] Kodak pro photocd system - site oficial, 2007. Disponível em www.kodak.com/go/photocd. Acesso em 23/07/2008
[REALNETWORKS 2007] REALNETWORKS. Site oficial, 2007. Disponível em: http://www.realnetworks.com. Acesso em: 04/05/2007.
[SACCA 2004] SACCA – Sistema Automático de Catalogação de Conteúdo, Audiovisual, Renato Luís de Souza Dutra, Liane Margarida Rockenbach Tarouco, Mary Lucia Pedroso Konrath. Universidade Federal do Rio Grande do Sul. 2004
[SETHI 2002] SETHI I. K.Content-based Multimedia Information Retrievel - Intelligent Information Engineering Laboratory - Department of Computer Science & Engineering - Oakland University - Rochester, MI 48309 www.cse.secs.oakland.edu/isethi. Acesso em 03/10/2007
[SERVLETS 2007] SERVLETS. Java Servlets Technology, Site oficial, 2007. Disponível em http://java.sun.com/products/servelt Acesso em 05/05/2007
[SILBERSCHATZ 1999] SILBERSCHATZ, H. F. Korth and S. Sudarsh. Sistema de Banco de dados. Terceira Edição. São Paulo: Makron Books, 1999.
144
[SITARAM 1999] D. SITARAM and A. Dan. Multimedia Servers: Applicactions, Environments and Design. Morgan Kaufmann Publishers, October 1999.
[SMITH et al 1996] SMITH J.R., MENG H.J., WANG H., ZHONG D., Finding Images/Video in Large Archives , CNRI Digital Library Magazine, Feb. 1996.
[SMPTE 2007] SMPTE. Society of Motion Picture and Television Engineers – SMPTE, Site official, 2007. Disponível em: http://www.smpte.org/. Acesso em: 07/05/2007.
[SONY 2007] Sony. Disponível em http://www.sony.com Acesso em 11/05/207
[SQL92 2007] SQL92. Padrão SLQ 92, 2007. Disponível em http://www.sqlteam.com/article/ansi-sql-92-standard. Acesso em 10/02/2007
[SQL SERVER 2007] SQLSERVER. Microsoft SQL SERVER Express Edition. Site oficial, 2007. Disponível em http://www.microsoft.com/sqlsever. Acesso em 20/02/2007
[SQLMAGAZINE 2007] SQLMAGAZINE. Revista Sql Magazinne - Blobs em Sistemas de Gerenciamento de Banco de Dados. Edição 32. 2007
[STEINMETZ 1995] STEINMETZ R. and LINDSAY B.. Multimedia: Computing, Communications and Applications. Pretince Hall, 1995.
[SUMMERVILLE 2003] SUMMERVILLE, I. Engenharia de Software, 6a. Edição. São Paulo: Addison Wesley, 2003.
[SUN 2007] SUN. Site oficial, 2007. Disponível em http://www.sun.com Acesso em 05/04/2007
[SVG 2007] Scalable Vector Graphics - SVG- world wide web consortium. Site official, 2007. Disponível em www.w3.org/Graphics/SVG. Acesso em 23/07/2007
[THOMSON 2007] THOMSON S.A. Images and Beyond Solutions, 2007. Disponível em: http://www.thomson.net. Acesso em: 11/05/2007.
[TIFF 2007] Abobe Target Image File Format – TIFF. Site oficial. Disponível em www.abobe.com/tiff. Acesso em 23/07/2008
145
[TODESCO 2000] TODESCO, G.,. Criação de Ambientes Virtuais Multiusuário através do Padrão MPEG-4, 2000. Programa de Pós-Graduação, Universidade Federal de São Carlos - SP. Disponível em: http://www.mpeg.org.br/arquivos/todesco2000a.pdf. Acesso em: 10/05/2007.
[TOMCAT 2007] TOMCAT. Site oficial, 2007. Disponível em http://tomcat.apache.org. Acesso em 03/04/2007
[TORI 2006] TORI R, Kirner C - Fundamentos de Realidade Virtual - VIII Symposium on Virtual Reality - Belem - PA, 02 de Maio de 2006.
[UNISYS 2007] UNISYS. Site oficial, 2007. Disponível em: http://www.unisys.com. Acesso em: 07/05/2007.
[VAZ 2000] VAZ, M. S. M. G. MetaMídia – Um Modelo de Metadados na Indexação, Recuperação de Objeto Multimídias. Recife, 2000. Tese (Doutorado Ciência da Computação) – Universidade Federal de Pernambuco.
[VIDEOANNEX 2007] VIDEOANNEX Annotation Tool, 2007. Disponível em http://www.research.ibm.com/VideoAnnEx. Acesso em 24/06/2007
[VIRAGE 2007] VIRAGE SoftSound, 2007. Disponível em http://www.softsound.com. Acesso em 17/04/2007.
[VIANELLO 2006] VIANELLO, J. M. Métodos de Estimação de Movimento com Resolução em Subpixel no CODEC H264/AVC, 2006. Dissertação de mestrado, PUC-RIO. Disponível em: http://www.maxwell.lambda.ele.puc-rio.br/cgi-bin/PRG_0599.EXE/10168_3.PDF?NrOcoSis=32747&CdLinPrg=pt. Acesso em: 13/05/2007.
[VISUALINFORMATION 2007]
VISUALINFORMATION. Oracle Visual Information, 2007. Disponível http://www.eisti.fr/~info/docs/ORACLE/doc/inter.817/a85335/toc.htm. em Acesso em 27/11/2007.
[W3C 2007] W3C. World Wide Web Consortium – W3C, 2007. Disponível em: http://www.w3.org/. Acesso em: 04/05/2007.
[WALSH 2002] A. E. WALSH. Java 3D: API Jump-start. Upper Saddle River, NJ: Prentice Hall, 2002. 245 p.
[WEB3D 2006] WEB3D "X3D Overview". Site oficial, 2006. Disponível em http://www.web3d.org/x3d/overview.html acesso em 2/11/2006
146
[WHATIS 2006] WHATIS . The leading IT encyclopedia and learning center. Site oficial, 2007. Disponível em http://www.whatis.com. Acesso em: 01/10/2006.
[WMA 2007] WMA. Windows Media Audio. Site oficial, 2007. Disponível em: http://www.microsoft.com/windows/windowsmedia. Acesso em: 12/05/2007.
[XIPH 2007] XIPH. Xiph.org Foundation. Site oficial, 2007. Disponível em: http://xiph.org/. Acesso em: 15/05/2007.
[YOUTUBE 2007] YOUTUBE. You Tube site oficial, 2007. Disponível em: http://www.youtube.com. Acesso em: 15/05/2007.
147
Apêndice A - Manipulação de Objetos Multimídia
em SGBD Convencionais
Este apêndice apresenta como os bancos de dados convencionais trabalham com
objetos multimídia, além de armazenar apenas textos também dão suporte a outros tipos
de dados, como dados geográficos, dados espaciais e dados multimídia (arquivos de
imagem, arquivos de vídeo, arquivos de áudios e demais arquivos binários). Dentre os
sistemas de gerenciamento de banco de dados relacionais mais utilizados (Postgresql
[POSTGRESQL 2006], MySql [MYSQLAB 2007], Microsoft Sql
Server[SQLSERVER 2007] e Oracle [ORACLE 2007]), todos eles oferecem suporte a
tipos de dados multimídia usando BLOB que é um campo criado para armazenamento
de qualquer tipo de informação em formato binário em uma tabela de Banco de Dados.
Alguns desses SGBD, como o Oracle, dão suporte a tipos específicos de Objetos
Multimídia, como tipo image, tipo video ou tipo audio que podem ser operados pelo
próprio SGBD [SQLMAGAZINE 2007].
A.1 Postgresql
O PostgreSQL é um servidor de banco de dados objeto-relacional distribuído
sob a licença flexivel BSD-style [FREEBSD 2007]. Ele oferece uma alternativa para
outros sistemas de banco de dados, pois é free e similar a outros projetos open-source
como o Apache [APACHE 2007], Linux [LINUX 2007] e Mediawiki[MEDIAWIKI
2007] Originalmente, o projeto PostgresSQL foi criado na Universidade de Berkley,
com um projeto liderado pelo professor Michel Stonebraker. Entretanto, após muitas
evuluções e sucesso do projeto, o PostgreSQL atualmente não é controlado por
nenhuma companhia, mas sim por uma comunidade global de desenvolvedores e
companhias que trabalham em conjunto para mantê-lo e desenvolvê-lo.
O PostgreSLQ é um poderoso sistema de banco de dados open-source. Ele foi e
está sendo desenvolvido há mais de 15 anos e provê uma arquitetura que é estável para
aplicações reais. Ele pode ser utilizado na maioria dos sistemas operacionais, incluindo
Linux, Unix e Windows. EsteSGBD dá suporte às propriedades ACID (Atomicidade,
Consistência, Integridade e Durabilidade), como também suporte para chaves
estrangeiras, joins, views, triggers e stored procedures. Tambem inclui tipos de dados
148
padrão SQL92[SQL92 2007], SQL99, e na sua versão mais recente, a versão 8.2, dá
suporte ao padrão ANSI SQL 2003, incluindo integer, numeric, boolean, char, varchar,
date, interval e timestamp. Ainda dá suporte ao armazenamento de dados binarios e
large objects, incluindo imagens, sons e vídeos. Uma outra característica importante é
promover acesso nativo a várias interfaces de programação como C/C++, Java, .Net,
Perl, Python, Ruby, Tcl, ODBC, entre outros [POSTGRESLQ, 2007].
Com relação ao suporte de tipos de dados multimídia, o PostgreSQL
disponibiliza os seuguintes tipos: Bytea e lo (large object). Cada um destes tipos serão
analisados a seguir:
Bytea - o tipo bytea é um campo blob de armazenamento de objetos não
interpretados, que guarda o objeto diretamente na tabela do usuário, ou seja, quando se
deseja incluir um objeto multimídia em uma tabela com este campo, a aplicação passa
um stream de bytes diretamente para o campo do tipo bytea e o objeto é armazenado
diretamente na tabela criada pelo usuário. No caso da recuperação do objeto multimídia,
é feito o processo inverso: uma vez o registro encontrado, o SGBD retorna diretamente
para a aplicação, o stream de bytes do campo de tipo bytea.
lo - o tipo lo (large objet) é um campo blob de armazenamento de objetos não
interpretados. Quando se declara um campo de uma tabela com o tipo lo (large object),
o objeto propriamente dito é armazenado em uma tabela interna do banco, a tabela
pg_largeobjects com o mesmo identificador atribuído ao campo destinado ao objeto, ou
seja, na tabela do usuário é guardado um apontador para a tabela pg_largeobjects. Desta
forma, quando é feita uma consulta à tabela do usuário que contem o objeto multimídia
armazenado, o banco retorna apenas a referência deste objeto na tabela pg_largeobjects.
O carregamento do objeto multimídia se dá por uma função interna do SGBD,
“lo_import”, passando-se o caminho do arquivo. Para se recuperar um objeto
multimídia armazenado no campo lo, é preciso invocar outra função interna do SGBD,
“lo_export”, que faz o caminho inverso da primeira. Para tanto, é preciso passar o nome
do campo, de “lo”, e o local para onde o arquivo deve ser exportado.
A.1.1 Manipulando tipos Blob no PostgreSQL
Para incluir um aquivo binário no PostgreSQL é preciso criar uma tabela com um
campo do tipo de um Blob com suporte no sistema, no caso, tipo bytea para
149
armazenamento direto na tabela criada pelo usuários, ou tipo lo para armazenamento na
tabela interna do SGBD. Segue o exemplo da operação usando o tipo bytea.
Criação da tabela TestBlob:
Inserindo um arquivo de imagem na tabela TestBlob:
A aplicação precisa definir um tipo de manipulação de stream de bytes:
array_bytes = stream de bytes de “c:/nome_arquivo.jpg”
> Insert into TestBlob(id, imagem) values (1, array_bytes);
Para recuperar o objeto inserido no banco de dados, é feita uma consulta na tabela que
armazenou o objeto e é recuperado um stream de bytes do campo solicitado. Segue o
exemplo:
Recuperando um objeto imagem na tabela TestBlob:
> Select imagem from TestBlob where id=1;
Array_bytes = stream de bytes do campo imagem
Onde array de bytes é um tipo definido na aplicação que receberá o stream de bytes
enviado pelo banco de dados.
O PostgreSQL também dá suporte ao armazenamento de blob utilizando-se de suas
funções internas, lo_import e lo_export, como citado. Segue um exemplo do uso das
referidas funções:
> Create Table TestBlob2(id int, imagem lo);
Inserindo um arquivo de imagem na tabela TestBlob2:
> Insert into TestBlob2(id, imagem) values (1, lo_import(“c:/nome_arquivo.jpg”));
Para recuperar o objeto inserido, usa-se a função lo_export, implementada no
Postgresql, cuja ação é recuperar o objeto armazenado e guardá-lo em um arquivo
especificado na chamada à função. Segue o exemplo:
Recuperando um objeto imagem na tabela TestBlob2:
150
> Select lo_export(TestBlob2.imagem, “c:/temp/nome_arquivo.jpg”) from TestBlob
where id=1;
Foi observado que o PostgreSQL disponibiliza em sua release oficial, as funções
lo_import e lo_export para manipulação de objetos binários. Com isso, pode-se observar
que ele trabalha tanto com o armazenamento de Blob com Funções Internas ao SGBD,
quanto com o armazenamento e recuperação baseada em stream de bytes do objeto.
Desta forma, é possível inserir o objeto por completo ou recuperar o objeto por
completo, ou então é possível no PostgreSQL trabalhar com recuperação do Blob via
stream de bytes, permitindo assim a recuperação sob demanda do objeto.
A.2 MySQL
O MySQL é um SGBD com código fonte aberto que reúne características
capazes de atender às necessidades dos mais variados tipos de usuários. Este produto
tem sido utilizado como solução para desenvolvedores de sistemas, provedores de
serviços, aplicações Enterprise, aplicações em universidades e centros de pesquisas,
bem como para dar suporte a aplicações livres do tipo de licença GLP5.
O MySQL é reconhecido mundialmente por sua facilidade de uso, desempenho,
confiabilidade, suporte aos usuários do produto, bem como à sua disseminação de uso.
Por conseqüência desta ampla comunidade, tem-se muitas documentações e livros
sobre o produto. Portanto, o MySQL é uma solução confiável e de baixo custo para as
mais diversas aplicações de banco de dados, com grandes volumes de dados e que
necessitam de uma alta disponibilidade das aplicações construídas sobre ele. Vale
ressaltar que a versão avaliada neste trabalho foi a Versão 5.0 e também foram
instaladas ferramentas adicionais como o MySQL Adiministrator e o MySQL Query,
ferramentas desenvolvidas pela própria MySQL AB [MYSQLAB 2007] que provê
facilidades para manipulação de usuários, configurações, backups, execução de
consultas e uso de DML (Data Manipulation Language) do próprio SGBD.
Com relação ao suporte de tipos de dados multimídia, o MySQL disponibiliza os
seuguintes tipos: TinyBlob, Blob, MediumBlob e LongBlob. Cada um destes tipos será
analisado a seguir:
5 GLP – Ginu Licence Public – é uma licença de código OPEN SOURCE.
151
TinyBlob - campo blob de armazenamento máximo igual a 255 caracteres (8
bits) mais 1 de controle; correspondendo a 255 Bytes. Este tipo não se aplica ao
armazenamento de objetos multimídia, visto que grande parte dos arquivos multimídia
gerados são maiores que a ordem de 1Kbyte;
Blob - o mesmo que o Tinyblob, porém armazenando até 16535 caracteres (16
bits) mais 2 de controle, correspondendo a 16Kbytes de armazenamento. Este tipo é
aconcelhado para armazenar imagens de grande compressão com resoluções pequenas
(160x120), como por exemplo thumbnails em formatos GIF ou PNG;
MediumBlob - o mesmo que o Tinyblob, porém armazenando até 16777216
caracteres (24 bits) mais 3 de controle, correspondendo a 16MBytes de armazenamento.
Este tipo se aplica a armazenar imagens de maior resolução em padrões de compressão
JPG, além de áudio e vídeos de baixa resolução com alto fator de compressão. É o tipo
mais aconcelhado para armazenar arquivos até 16Mbytes, pois possue o melhor
benefício com relação ao tamanho do arquivo manipulado e o tempo de resposta de
recuperação do arquivo no banco de dados; e
LongBlob – o mesmo que o Tinyblob, porém armazenando até 4294967295
caracteres (32 bits) mais 4 de controle, correspondendo a 4GBytes de armazenamento.
Este tipo se aplica a objetos extremamente grandes de qualquer tipo de mídia de alta
resolução, de baixo padrão de compressão ou de alto padrão de compressão, porém, é o
tipo de menor desempenho quanto ao tempo de recuperação do objeto no banco de
dados.
A.2.1 Manipulando tipos Blobs no MySQL
Para incluir um aquivo binário no MySQL é preciso criar uma tabela com um campo do
tipo de um Blob com suporte no sistema e logo após utilizar a função de banco de dados
implementada no MySQL, chamada de LOAD_FILE. Segue o exemplo da operação
usando o tipo mediumblog.
Criação da tabela TestBlob:
> Create Table TestBlob(id int, imagem mediumblob);
Inserindo um arquivo de imagem na tabela TestBlob:
152
> Insert into TestBlob(id, imagem) values (1, LOAD_FILE(“c:/nome_arquivo.jpg”));
Para recuperar o objeto inserido, usa-se o comando OUTFILE, implementado no
MySQL, cuja função é recuperar o objeto armazenado e guardá-lo em um arquivo
especificado no comando. Segue o exemplo:
Recuperando um objeto imagem na tabela TestBlob:
> Select imagem into OUTFILE “c:/temp/nome_arquivo.jpg” from TestBlob where
id=1;
Foi observado que o MySQL disponibiliza em sua release oficial, apenas as funções
LOAD_FILE e OUTFILE para manipulação de objetos binários. Com isso, pode-se
observar que ele trabalha apenas com o armazenamento de tipos Blob com Funções
Internas ao SGBD, inserindo o objeto por completo ou recuperando o objeto por
completo. Desta forma, não é possível no MySQL trabalhar com recuperação do Blob
via stream de bytes, pois o sistema não dá suporte a funções de recuperação parcial do
objeto.
A.3 Microsoft SQL Server
O Microsoft SQL 2005 Express Edition é a versão free do Microsoft SQL
Server. Por questões de limitações de uso de licença, foi escolhida esta versão para
avaliação de tratamento de dados multimídia. Porém, vale ressaltar que a única
limitação desta versão avaliada com relação à versão completa, está no fato da versão de
avaliação limitar o tamanho total do banco de dados a 4Gbytes. As demais
características do produto estão presentes na versão de avaliação. O SQL Server 2005
Express Edition é baseado nas tecnologias do SQL Server 2005, portanto usa o mesmo
engine de banco de dados. Não foi necessário usar nenhuma ferramenta adicional ao
SQL Server, pois o mesmo disponibiliza o SQL Server Management Studio que provê
facilidades de adiministração, manipulação de usuários, configurações, backups,
execução de consultas e uso de DML (Data Manipulation Language) do próprio SGBD.
153
Com relação ao suporte de tipos de dados multimídia, o MicroSoft SQL Server
disponibiliza os seguintes tipos: Binary, VarBinary e Image. Cada um destes tipos será
analisado a seguir:
Binary – Campo de armazenamento máximo de até 8Mbytes. Neste tipo, se a
quantidade de dados armazenados no campo for menor do que o tamanho especificado,
o resto do campo é preenchido com espaços em branco;
VarBinary – Campo de armazenamento máximo de até 8Mbytes. Se a
quantidade de dados armazenados no campo for menor do que o tamanho especificado,
então o resto do campo não é preenchido( o campo Image se comporta da mesma
forma). É o tipo mais aconcelhado para armazenar arquivos até 8Mbytes, pois possui a
melhor relação custo-benefício com relação ao tamanho do arquivo manipulado e o
tempo de resposta de recuração do arquivo no banco de dados, além de usar apenas o
tamanho exato do objeto armazenado no banco de dados; e
Image – Campo de armazenamento máximo de 2 Gbytes. Diferentemente dos
tipos Binary e VarBinary, o tipo Image não permite valores padrão. Este tipo se aplica
para armazenar objetos extremamente grandes de qualquer tipo de mídia de alta
resolução, de baixo padrão de compressão ou de alto padrão de compressão, porém, é o
tipo de menor desempenho quanto ao tempo de recuperação do objeto no banco de
dados.
A.3.1 Manipulando Tipos Blob no SQL Server
Para incluir um aquivo binário no SQL Server, é preciso criar uma tabela com um
campo do tipo de um Blob com suporte no sistema. Segue o exemplo da operação
usando o tipo image.
Criação da tabela TestBlob:
> Create Table TestBlob (id int, imagem image);
Inserindo um arquivo de imagem na tabela TestBlob:
A aplicação precisa definir um tipo de manipulação de stream de bytes:
array_bytes = stream de bytes de “c:/nome_arquivo.jpg”
154
> Insert into TestBlob(id, imagem) values (1, array_bytes);
Para recuperar o objeto inserido no banco de dados, é feita uma consulta na tabela que
armazenou o objeto e é recuperado um stream de bytes do campo solicitado. Segue o
exemplo.
Recuperando um objeto imagem na tabela TestBlob:
> Select imagem from TestBlob where id=1;
Array_bytes = stream de bytes do campo imagem
Onde array de bytes é um tipo definido na aplicação que receberá o stream de bytes
enviado pelo banco de dados.
Foi observado que o SQL Server não possui uma função específica para manipular
objetos binários, pois o SGBD trata objetos binários como um stream de bytes. Tal
característica permite que a aplicação que acessa o banco recupere o objeto binário sob
demanda.
A.4 Oracle
O Oracle 10g Express Edition [ORACLE 2007] é a versão free do Oracle 10g.
Por questões de limitações do uso de licença, foi escolhida esta versão para avaliação de
tratamento de dado multimídia. Porém, vale ressaltar que esta versão tem limites
referentes á quantidade de processadores disponíveis na máquina. No caso, ele só
gerencia até 1 processador, não sendo possível utilizá-lo em máquinas com
multiprocessadores. Ele também só dá suporte até 4GBytes de dados para aplicações
dos usuários. Porém, o Oracle Express Edition traz recursos de desempenho,
confiabilidade e segurança da versão 2 do Oracle 10g, pois foi construído sobre a
mesma base de código, garante o fabricante. Por ser compatível com toda a família de
produtos do Oracle, ele permite a facilidade de começar com uma solução básica e ir
mudando para outras versões, quando necessário. Permite ainda que os desenvolvedores
de aplicação usufruam do Oracle Aplication Expresss para rápido desenvolvimento e
implementação de aplicativos baseados na WEB.
155
Com relação ao suporte de tipos de dados multimídia, o Oracle Express Edtion
disponibiliza os seguintes tipos: Blob, Bfile, Clob e Nblob. Todos estes tipos dão
suporte ao armazenamento de objetos de até 4Gbytes, porém cada um possui suas
peculiaridades. Cada um destes tipos será analisado a seguir:
Blob – Campo de armazenamento interno ao Banco de Dados. Armazena objetos
no formato Binário;
BFile – Campo de armazenamento externo ao Banco de Dados Armazena o
arquivo dentro do sistema operacional, em formato TXT ou HTML. Na tabela do banco
de dados que contém este campo, é armazenado apenas um ponteiro para o arquivo
armazenado no Sistema Operacional;
Clob – Campo de armazenamento interno ao Banco de Dados. Ele armazena o
objeto no formato alfa-numérico compatível com o charset do SGBD. Diferentemente
do tipo BFile, o tipo Clob, armazena internamente o objeto como um stream de bytes na
tabela que contém este campo; e
NBlob – Campo de armazenamento do objeto no formato alfanumérico
compatível com o national charset do SGBD.
A.4.1 Manipulando Tipos Blob no Oracle Express Edition
Os tipos LOB(Large Object Binary) no Oracle são acessados através dos
métodos internos Read e CopyToFile. Tais tipos também podem ser diretamente
modificados pelo SGBD através dos métodos Write, Append, Erase, Trim, Copy,
CopyFromFile, and CopyFromBFile. Antes de modificar o conteúdo de uma coluna
LOB em uma linha, a linha do registro deve ser obtida.
Para incluir um aquivo binário no Oracle Express Edition é preciso criar uma
tabela com um campo do tipo de um dos Blob com suporte no Oracle Express Edition.
Vale lembrar que, como o Oracle trabalha tanto com armazenamento interno, controle
de armazenamento exteno e funções estendidas, as operações de manipulação de objetos
binários são tratadas de formas diferentes. Segue o exemplo da operação usando o tipo
Blob, para manipulação direta de stream de bytes.
Criação da tabela TestBlob:
156
> Create Table TestBlob (id int, imagem blob);
Inserindo um arquivo de imagem na tabela TestBlob:
A aplicação precisa definir um tipo de manipulação de stream de bytes:
array_bytes = stream de bytes de “c:/nome_arquivo.jpg”
> Insert into TestBlob(id, imagem) values (1, array_bytes);
Para recuperar o objeto inserido no banco de dados, é feita uma consulta na tabela que
armazenou o objeto e é recuperado um stream de bytes do campo solicitado. Segue o
exemplo.
Recuperando um objeto imagem na tabela TestBlob:
> Select imagem from TestBlob where id=1;
Array_bytes = stream de bytes do campo imagem
Onde array de bytes é um tipo definido na aplicação que receberá o stream de bytes
enviado pelo banco de dados.
Foi observado que o SQL Server não possui uma função específica para
manipular objetos binários, pois o SGBD trata objetos binários como um stream de
bytes. Tal característica permite que a aplicação que acessa o banco recupere o objeto
binário sob demanda.
Além dos tipos básicos de Blob com suporte no Oracle, o sistema disponibiliza
tipos estendidos para manipulação através de ferramentas como o Oracle InterMedia
[INTERMEDIA 2007] e o Oracle Visual Information Retrieval
[VISUALINFORMATION 2007]. Tais ferramentas serão analisadas com mais detalhes
nas próximas sub-seções.
A.4.2 Oracle InterMedia
O Oracle InterMedia, também conhecido como Oracle Multimedia é uma
característica do SGBD Oracle presente tanto na versão Standard, quanto na versão
Enterprise. A seguir são listadas algumas propriedades:
157
• É uma característica de propóstio geral que permite gerenciamento,
armazenamento e recuperação de imagem, áudio e vídeo;
• Reconhece a maioria dos formatos multimídia e pode automatizar a
extração de metadados e fazer processamento básico de imagem; e
• Possui desenvolvimento voltado para aplicações multimídia usando JSP
[JSP 2007], Servlets [SERVLETS 2007], PL/SQL [referência] ou usando
as próprias ferramentas disponibilizadas pela Oracle, como o JDeveloper
[JDEVELOPER 2007] e Oracle Portal [ORACLEPORTAL 2007].
O Oracle InterMedia possui a capacidade de gerenciar dados multimídia no
próprio Oracle sob controle de transação ou, alternativamente, o sistema pode
armazenar e indexar meta-informação junto com referências externas que permitem um
acesso eficiente para conteúdo multimídia armazenado fora do Banco de Dados.
Ele permite acesso padrão SQL manipulando imagens, áudio, vídeo, tipos de
dados multimídia, operadores e gerenciamento de metadados. Além da manipulação
baseada no padrão SQL, o InterMedia usa tipos de objeto semelhantes a classes Java e
C++. Ele também usa as seguintes classes de sistema para manipular os referidos
objetos: ORDAudio, ORDImage, ORDVideo. As instâncias dos objetos são compostas
dos dados da mídia e de metadados, como por exemplo, tamanho, duração, formato ou
tipo de compressão e finalmente, cada objeto possui métodos específicos de cada mídia
manipulada [INTERMEDIA 2007].
A.4.3 Oracle Visual Information Retrieval
O Oracle Visual Information Retrieval (VIR) é uma extensão do Oracle
Enterprise Edition, a qual provê armazenamento de imagem, recuperação baseada em
conteúdo e capacidade de fazer diversos tipos de conversão de formatos através de um
tipo objeto. Ele dá suporte ao armazenamento de imagem usando binary large
objects(BLOB) e referências externas a dados de imagem usando tipos BFile ou URL.
O VIR dá suporte a imagens estáticas, as imagens bi-dimensionais. As imagens
podem ser bitonais, fotografias em tons de cinza ou fotografias coloridas. A maioria dos
formatos e padrões de compressão de imagem é reconhecida por ele. O VIR permite
extrair propriedades automaticamente, converter para outros formatos ou outros padrões
de compressão e aplicar transformações básicas na imagem armazenada. As imagens
armazenadas são manipuladas através da classe de sistema ORDVir. Isso permite que
projetistas de banco de dados possam estender aplicações de banco de dados com novas
158
aplicações que manipulam imagem e também permite que desenvolvedores de software
possam usar funções básicas providas pelo VIR, especializadas em aplicações de
imagem [VISUALINFORMATION 2007].
159
Apêndice B – Testes de desempenho com o Jmeter
O Jtemer é uma ferramenta, baseada na plataforma Java [JAVA 2007],
desenvolvida para realizar teste de comportamento de carga e medida de desempenho,
que foi originalmente desenvolvida para testes sobre aplicações Web, mas foi estendida
para outros testes funcionais. O Jmeter pode ser usado para teste de desempenho tanto
estatisticamente quanto para recursos dinâmicos como arquivos, Servlets, Scripts Perl,
Objetos Java, Bancos de Dados, Servidores FTP e WebServices. Ele pode ser usado
para simular um pesado teste de carga em um servidor, rede ou objeto para testar o quão
robusto é ou para fazer a análise de carga sobre diferentes tipos de cargas de objetos e
processos. Pode ser usado para fazer análises gráficas da desempenho ou testar o
servidor/script/objeto, ou o comportamento sob as codições de carga estressante. Para
realizar um determinado teste de carga, basicamente é preciso criar um plano de teste.
Este é composto por uma árvore de elementos, onde cada elemento representa uma
configuração/ação da entidade que será testada.
A Figura 95 apresenta um exemplo de plano de teste do Jmeter.
Figura 95: Exemplo de Test Plan no JMeter
A Figura 96 mostra a implementação do plano de testes (baseado nos cenários
definidos) de desempenho dos protótipos do presente trabalho na ferramenta Jmeter.
160
Figura 96: Plano de Testes de Desempenho – Interface do JMeter
A Figura 96 mostra a implementação dos elementos de um test plan. Os
elementos básicos são:
• ThreadGroup – é o ponto inicial do test plan. Nele se define o número de
threads, que funciona como se cada thread fosse um usuário; é definido
o período de execução da thread e o número de vezes que a thread será
chamada. Na Figura 96 o ThreadGroup é representado pelo nó
InsertImageThreadGroup-10users;
• Controller – É o elemento responsável por enviar a requisição ao
servidor que está sendo testado. Na Figura 97, pode ser visto o Controller
HTTPRequestHTTPClientInsertImage10users. Nele podem ser
observados os dados do servidor e os parâmetros passados na requisição
HTTP;
• Listeners – São os elementos que proveem acesso às
informações geradas pelo JMeter enquanto os test cases estão sendo
executados. Ele armazena os resultados em um arquivo XML que contem
informações como o tempo de resposta da requisição, o código
respondido pelo servidor, as mensagens de respostas do servidor,
161
througput, e dados estatísticos com erros e desvio padrão relativo ao
tempo de resposta da requisição.
Figura 97: Plano de Testes
162
Recommended