Flávio Ferry de Oliveira Moreira

Tamanho: px
Começar a partir da página:

Download "Flávio Ferry de Oliveira Moreira"

Transcrição

1 Pós-Graduação em Ciência da Computação Módulo de Suporte a Som para um Sistema Tutor Inteligente Por Flávio Ferry de Oliveira Moreira Dissertação de Mestrado Universidade Federal de Pernambuco RECIFE, Fevereiro/2003

2 UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO FLÁVIO FERRY DE OLIVEIRA MOREIRA Módulo de Suporte a Som para um Sistema Tutor Inteligente" 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: FERNANDO DA FONSECA DE SOUZA RECIFE, FEVEREIRO/2003

3 Dedico este trabalho aos meus pais Edmilson e Ana e a minha namorada Aline.

4 iv Agradecimentos A Deus pelo Dom da Vida e Inteligência. A José Edmilson Moreira e Ana Maria Ferry de Oliveira Moreira, que desde que aprendi a falar nunca chamei de papai e mamãe, mas nós sabemos que eles são mais que isso para mim. A minha futura esposa Francisca Aline, por todo apoio recebido, inclusive pelas brigas quando pensei em desistir e sem esquecer do apoio financeiro que ocorreu em alguns momentos. A toda minha família pelo incentivo. Aos amigos de Teresina, em especial a Ricardo Ramos e a Fábio Jesus, grupo de estudos que perdeu algumas noites de sono nesta empreitada. Ao amigão Jesse James pela preocupação e dedicação em ajudar nos assuntos relacionados a dúvidas de implementação. Aos amigos de Recife, especialmente a Adalberto Cajueiro a quem devo, além de gratidão, algumas desculpas por ter atrapalhado em algum momento suas atividades. Ao amigo Gil Alves Júnior que sempre me acolheu em seu apartamento e conseguiu me aturar em todas as viagens feitas ao Recife. Ao amigo e orientador Fernando da Fonseca de Souza, meu agradecimento especial, mesmo com a distância, a preocupação com meu sucesso e sua presença forte me serviram de incentivo a procurar sempre fazer o melhor. Aos componentes da banca examinadora, por aceitarem o convite para participarem da banca de defesa com disposição e interesse. A todos os ex-alunos, tanto da UESPI quanto da FATEPI pelas mensagens de incentivo. Enfim, a todos que tentaram me incentivar de alguma forma e até mesmo aqueles que torceram contra, pois o sucesso só tem graça quando serve de contraprova a torcida da oposição.

5 v Resumo Dentre as tecnologias de ensino a distância existem desde aquelas mais tradicionais como as que inicialmente foram denominadas de CAI (Computer Aided Instruction Instrução Assistida por Computador) às mais adaptativas, como os STI (Sistemas Tutores Inteligentes). Os CAI são sistemas que adotam a filosofia de ensino pelo computador, sem personalizações de conteúdos e sem considerar as necessidades individuais de cada aluno. Os STI, por outro lado, pertencem a uma categoria de programas que são capazes de tomar decisões pedagógicas em tempo real, apresentando o conteúdo ao aluno de maneira personalizada. Uma característica desejável de todo sistema de ensino-aprendizagem à distância, além da troca de documentos escritos é o suporte a áudio, que seria um aliado muito importante para que o usuário pudesse interagir diretamente com seu instrutor, seja através de conferências ou através de aulas armazenadas em um banco de dados, que poderiam ter o acesso controlado via evolução do aluno no curso. O principal objetivo deste trabalho é propor um módulo adicional a um Sistema Tutor Inteligente, para torná-lo capaz de enviar áudio através da Internet ou outras redes de computadores onde possa ser utilizado. O trabalho estuda as tecnologias envolvidas com o tratamento de áudio por sistemas computacionais, incluindo questões de tamanho a ser armazenado, a qualidade do som e o envio pela rede. São também abordados a Linguagem de Programação escolhida para a implementação do protótipo e suas Tecnologias e o Sistema de Gerenciamento de Banco de Dados envolvido neste processo. Finalmente, unindo esses conhecimentos, uma solução é mostrada sob a forma de protótipo, que servirá de base para integração com Sistemas Tutores Inteligentes existentes no mercado. Também são descritas propostas de trabalhos futuros que possam ser desenvolvidos a partir deste trabalho. Palavras Chave: Banco de Dados, Multimídia, Sistemas Tutores Inteligentes, Educação a Distância, Som.

6 vi Abstract Amongst the technologies used for distance education there are several artifacts ranging from those more traditional such as Computer Aided Instruction (CAI) to the more adaptive ones such as Intelligent Tutoring Systems (ITS). CAI are systems that adopt the computer teaching philosophy without contents customization nor taking into consideration the pupil s individual needs. ITS, on the other hand belong to the category of programs that is able of pedagogical decision making on real time delivering its contents to pupils in a customized way. A desirable characteristic of all distance teaching-learning system besides documents interchange is audio support. This would be a very important allied to the user in order that he or she could interact directly with the instructor regardless the means: since conferences to recorded classes in a database whose access could be controlled by the pupils evolution. Therefore, the main goal of this work is to propose an additional module to ITS systems in order to enable them to send audio through the Internet or other computer networks where them can be used. Thus, this work studies the technologies involved with audio handling by computer systems including file size to be stored, sound quality and sending it through the network. The programming language chosen to the prototype implementation along with its technologies and the Database Management System employed are also addressed in this work. Finally, a solution uniting such knowledge is shown through a prototype which can be used as the basis for the integration with ITS existing in the market. Also, proposals for future work are presented. Key Words: Database, Multimedia, Intelligent Tutoring Systems, Education, Sound.

7 vii Sumário Agradecimentos iv Resumo v Abstract vi Sumário vii Índice de Figuras ix Índice de Tabelas x Capítulo Introdução Bases Pedagógicas dos STI O Sistema de Ensino Inteligente - SEI Uso de Som em Sistemas de Computação Sons não falados Sons falados Novo módulo de Suporte a Som A estrutura da dissertação 9 Capítulo Multimídia: Tecnologias de som O Som Internet e Áudio Características Tipos de Som Digital Áudio Digital e seus componentes Projetando som integrado ao ambiente Web Técnicas e Algoritmos de Compressão Técnica de streaming de áudio A importância do som em um STI A Técnica Escolhida 30

8 viii Capítulo Tecnologias Envolvidas A Linguagem escolhida Tecnologias Java Envolvidas Servlets JSP (Java Server Pages) O Sistema de Gerenciamento de Banco de Dados Oracle 9i O Ambiente Oracle O Servidor Web Apache Tomcat 52 Capítulo O Protótipo AulaSom Arquitetura de software Aspectos de Implementação Dicionário de Dados Recursos de Hardware e Software Básico Programas Auxiliares Aspectos de Funcionamento Testes realizados Conclusões sobre a solução 70 Capítulo Conclusões e Trabalhos Futuros Considerações Finais Contribuições Específicas Sugestões de Trabalhos Futuros 74 Referências Bibliográficas 76

9 ix Índice de Figuras Fig 3.1 Funcionamento dos Servlets Integrado a um Servidor Web 38 Fig 3.2 Etapas da primeira execução de uma página JSP[37] 43 Figura 4.1. Diagrama de Caso de Uso da Solução Apresentada 57 Figura 4.2. Arquitetura de Software do Protótipo 57 Figura 4.3. Diagrama de Classes do AulaSom 60 Figura 4.4. Diagrama de Seqüência do Funcionamento do Protótipo 61 Figura 4.5. Gravador de Som do Microsoft Windows 63 Figura 4.6. Microsoft Windows Media Player 64 Figura 4.7. Nullsoft WinAmp 65 Figura 4.8. Tela Inicial de Demonstração do AulaSom 66 Figura 4.9. Tela de Inclusão de AulaSom 66 Figura Tela de Remoção de Som do Banco de Dados 67 Figura Tela Inicial da Consulta do AulaSom 67 Figura Resultado de Consulta ao AulaSom 69 Figura Reprodução do Som Escolhido pelo Usuário 70

10 x Índice de Tabelas Tabela 2.1. Exemplos de Aplicações de Som Digital e seus Padrões de Amostragem 15 Tabela 2.2. Comparativo de Arquivo de som tipo MIDI e Tipo Áudio Digital 17 Tabela 2.3. Tamanhos de Arquivos e Sampling Rates 18 Tabela 2.4. Formatos de Arquivos de Áudio 20 Tabela 2.5. Formatos de Compressão 31 Tabela 3.1. Objetos disponíveis em JSP 40 Tabela 3.2. Comparativo entre JSP e ASP 44 Tabela 4.1. Dicionário de Dados para a Tabela SOM 62

11 Capítulo 1 Apresenta a introdução, objetivos e estrutura deste trabalho.

12 Capítulo 1 Introdução 2 1. Introdução Dentre as tecnologias de ensino à distância já desenvolvidas existem aquelas mais tradicionais como as que inicialmente foram denominadas de CAI (Computer Aided Instruction Instrução Assistida por Computador) e as mais adaptativas, como os STI (Sistemas Tutores Inteligentes). Os CAI são sistemas que adotam a filosofia de ensino pelo computador, sem personalizações de conteúdos, sem considerar as necessidades individuais de cada aluno. Ainda hoje são produzidos programas assim, porém, existe uma categoria mais evoluída e didaticamente mais eficiente para o processo ensino-aprendizagem apoiado por computador, que são os STI. Estes programas são capazes de tomar decisões pedagógicas em tempo real, apresentam o conteúdo ao aluno de maneira personalizada [10]. Dentre estes programas, alguns se encontram em fase de pesquisa, como: Multi-Ecológico: Ambiente de Ensino Inteligente para Suporte ao Ensino de Educação Ambiental [3], Um Sistema Tutor Inteligente Multiagentes em Harmonia Musical [4] e o SEI Sistema de Ensino Inteligente [1,2]. Entretanto, o SEI, fruto de pesquisas realizadas principalmente no Centro de Informática da Universidade Federal de Pernambuco, é um dos sistemas mais evoluídos no sentido de funcionalidades implementadas. O referido projeto conta com uma arquitetura modularizada, faz uso da tecnologia de orientação a objetos e é baseado em agentes inteligentes, o que contribui para a concepção de novos trabalhos para sua implementação com sucesso. Uma característica desejável de todo sistema de ensino-aprendizagem à distância, além da troca de documentos escritos é o suporte a áudio, que seria um aliado muito importante para que o usuário pudesse interagir diretamente com seu instrutor, através de aulas tipo conferência, ou através de aulas armazenadas em um banco de dados, que poderia ter seu acesso controlado via evolução do aluno no curso. O principal objetivo deste trabalho é propor um módulo adicional a um Sistema Tutor Inteligente, para torná-lo capaz de enviar áudio através da Internet ou outras redes de computadores onde possa ser utilizado. Tal envio seria solicitado pelo aluno em cada lição e disparado pelo agente controlador. São também abordados a Linguagem de Programação

13 Flávio Ferry de Oliveira Moreira 3 escolhida para a implementação do protótipo e suas Tecnologias e o Sistema de Gerenciamento de Banco de Dados envolvido neste processo. Assim, um dos demais objetivos deste trabalho é discutir tecnologias de envio de áudio pela Internet, até mesmo aquelas que transmitem o áudio em si, sem o envio do arquivo que o contém, devido à questão que envolve os direitos do autor da aula. Dentre estas tecnologias, uma será escolhida para ser integrada ao projeto do STI. Não é objetivo deste trabalho discutir a eficácia de métodos de ensino à distância e suas linhas pedagógicas[5,7,8,9], mas sim detalhar melhor a manipulação e uso de som dentro de ferramentas de aprendizado a distância. Ficando nas propostas de trabalhos futuros, ao final deste a proposta de uma aplicação e aprofundamento deste estudo sob a luz da pedagogia e da didática. As tecnologias de áudio aqui abordadas são usadas atualmente na Internet para aplicações como: rádios virtuais, transmissões de eventos, e até mesmo para servir de alternativa às antigas transmissões de rádio via ondas curtas. Não será apresentada aqui nenhuma tecnologia inovadora de envio de áudio à distância, entretanto, será discutido como uma destas tecnologias será incorporada a STIs, para que se torne possível ativar um módulo de ensino via computador com uso de som. Este módulo é apresentado em funcionamento e pronto para ser integrado em STI, utilizando os recursos de banco de dados, diferente do estudo realizado por Fischer[104] em sua dissertação de mestrado, onde são aplicadas ferramentas de terceiros e não há referências ao uso de banco de dados. Futuramente, este trabalho poderá servir de base para a adoção de envio de vídeo das respectivas aulas Bases Pedagógicas dos STI Definir mecanismos formais de representação do conhecimento, de raciocínio e de tomada de decisão são fatores determinantes para a construção de Sistemas Tutores Inteligentes. Nestes sistemas, a base pedagógica é formada pela visão construtivista do aprendizado. Esta teoria é muito importante, pois enfatiza o produto do processo de aprendizado. Assim, os modelos teóricos que constituem a base dos STIs são baseados no construtivismo, e este é fundamentado por quatro propriedades básicas[118]:

14 Capítulo 1 Introdução 4 Cumulatividade capacidade de acumular conhecimento com o passar do tempo; Construtividade capacidade de construir conhecimentos relacionando conhecimentos anteriores e novas descobertas; Auto-regulação capacidade de tomadas de decisão em tempo real; Refletibilidade poder refletir sobre o que foi aprendido. Nas questões que envolvam o tempo de aprendizagem, o sistema deverá tratar da propriedade da cumulatividade, responsável pelo acúmulo do conhecimento através do tempo. Sendo este acúmulo encaixado com conhecimentos prévios e formando um novo conhecimento maior. Este encaixe é garantido pela propriedade da construtividade. Outra importante propriedade a ser implementada é a auto-regulação, que garante ao sistema tomada de decisão em resposta a ações do usuário. Finalmente, a propriedade da refletividade garante uma reorganização constante do conhecimento adquirido para aumentar as habilidades para o presente curso em experiências subseqüentes. O sistema que segue estas propriedades deve ser capaz de tomar decisões em tempo real sobre as oportunidades de aprendizagem a serem providas aos alunos, levando em consideração as situações que envolvem cada um em particular. As teorias construtivistas enfatizam uma regra de aprendizado autônomo através do desenvolvimento dos conteúdos para que o aluno construa suas próprias interpretações. A interação de conhecimento com a base de domínio não é explicitamente separada do contexto da aplicação. O foco está no processo de aprendizagem do qual os aprendizes passam por experiências que resultarão em conhecimento formado através de fatos passados e novas descobertas para formar o saber. O processo construtivista enfatiza quatro aspectos que coexistem holisticamente: 1. O Contexto essencial parte da aprendizagem. Leva em consideração tudo que cerca o estudante e esteja relacionado com a atividade, tais como: entidades físicas, ferramentas e outras pessoas;

15 Flávio Ferry de Oliveira Moreira 5 2. Atividade todo o conhecimento é construído baseado em experiências dos alunos com fatos que pertencem ao domínio explorado; 3. Estruturas cognitivas conhecimentos adquiridos previamente influenciam em novos aprendizados; 4. Tempo-extensão a construção do conhecimento ocorre no tempo em que os aprendizes demoram para ligar experiências passadas para desenvolver as novas. Neste contexto, um Sistema Tutor Inteligente deve estar preparado para lidar com o processo ensino-aprendizado, situações criadas pelo aluno, prever os tipos de situações que podem ocorrer durante o processo, trabalhar os casos de situações cognitivas e relacionar todas elas quando necessário O Sistema de Ensino Inteligente - SEI O SEI Sistema de Ensino Inteligente é um STI que foi proposto na dissertação de mestrado no Centro de Informática da UFPE por Tedesco [2]. A motivação inicial de sua concepção foi criar um ambiente de ensino-aprendizado por computador que pudesse auxiliar professores e alunos em disciplina de computação, mais especificamente a disciplina de Introdução à Computação ofertada pelo referido Centro a diversos cursos da UFPE. Pesquisas foram realizadas para aferir o grau de importância desta disciplina para os cursos em que é ofertada e a opinião dos alunos que a cursavam e professores ministrantes. Acrescentando a esta pesquisa vem a experiência com alunos da UFPI Universidade Federal do Piauí e da UESPI Universidade Estadual do Piauí, em que esta disciplina também é ofertada para os diversos cursos, onde os alunos compartilham de opiniões e necessidades semelhantes àquelas levantadas por Tedesco. Analogamente, os professores ministrantes desta disciplina consideram que uma ferramenta auxiliar ao ensino motivaria até mais os alunos que não têm muita empatia pela disciplina. Deste modo, fica explicitada a necessidade de um sistema como o SEI ser usado tanto a nível local quanto até mesmo ser exportado para outras instituições, justificando-se que este projeto seja levado a frente, com novas pesquisas para aperfeiçoamentos. Dentro da arquitetura do SEI, existem divisões em modelos que contam com seus papéis bem definidos, são modelo do domínio, modelo do estudante e a sociedade de agentes.

16 Capítulo 1 Introdução 6 No modelo do domínio estão os conteúdos que o professor pode preparar em seu plano de curso para o uso desta ferramenta. Aqui ficam armazenados também os arquivos de áudio necessários para as aulas, juntamente com o curso, as lições, os tópicos e as apresentações, mais precisamente dentro destas últimas. No modelo do estudante, o módulo permite tratar os alunos de maneira individualizada, devido a manter uma base de conhecimento sobre os alunos, com características individuais sobre o aprendizado de cada um. A novidade, acrescida pelo módulo deste trabalho, fica por conta de uma leve mudança de interface com o aluno sempre que tiver áudio disponível para o tópico que esteja sendo estudado. Como este modelo permite que cada estudante percorra o curso dentro de seu ritmo particular, em um ambiente de múltiplos usuários simultâneos, como numa sala de aula (laboratório), faz-se interessante o uso de fones de ouvidos individuais para evitar interferências no aprendizado dos vizinhos. Na sociedade de agentes, mudanças são necessárias apenas para possibilitar o suporte a uso de áudio e gerenciamento do envio destes para os usuários. Estes são os módulos responsáveis pelo funcionamento interno do sistema, garantindo a adaptação em tempo real para respostas ao usuário de acordo com seus comandos e escolhas personalizadas. Ao todo são usados cinco agentes, a saber: 1. O Agente Domínio mantém informações sobre o domínio sendo ensinado; 2. O Agente Estudante mantém as informações relativas ao estudante. Este agente é o que garante a adaptatividade típica dos STIs; 3. O Agente Tutor faz manipulação das estratégias pedagógicas a serem empregadas pelo STI; 4. O Agente Controlador cuida do funcionamento do sistema, controlando a comunicação com os demais componentes; 5. O Agente Comunicador trata da interface do sistema, é o módulo que faz a montagem da interface que seja a mais amigável para o usuário. De acordo com esta breve descrição, a implementação do protótipo deste ambiente, realizada em [2] foi feita usando a linguagem Java[28], devido as suas características de independência de plataforma e orientação a objetos (garantia de reusabilidade). Além das

17 Flávio Ferry de Oliveira Moreira 7 características supracitadas, têm-se ainda o fato do trabalho com suporte a multi threading, que possibilita a manipulação de eventos em tempo real pela própria linguagem, o que facilita muito a criação e uso dos agentes inteligentes. Características de tratamento de multimídia e suporte à rede com segurança também foram determinantes na escolha desta linguagem. Então, o protótipo foi implementado com a seguinte arquitetura: no lado do cliente, o usuário usa seu navegador com suporte a scripts, Java e a tecnologia de Java Servlets. A comunicação é feita no servidor pelo agente controlador que por sua vez interage com os agentes de domínio, estudante e tutor Uso de Som em Sistemas de Computação Dentre os sons utilizados em aplicações de multimídia, existem duas categorias: os não falados (conhecidos por earcons ou tics) e os falados Sons não falados Os chamados sons não falados, conhecidos por earcons ou tics, foram estudados por BREWSTER[119] e indicados como um recurso para melhorar a usabilidade de sistemas de computação. O referido trabalho concluiu que os tics são identificados pelos usuários com 81,5% de acurácia. Este fato indica que os tics são um método poderoso para comunicação direta com o usuário. Uma aplicação imediata para estes sons seria nos sistemas de auto-atendimento por telefone, os menus com sons associados são melhor percebidos pelos usuários, nestes casos, menus via voz são mais confusos pois o menu confunde-se com as informações que são prestadas pelo sistema. Os tics não correm este risco por se tratarem de sons não falados. Na área do treinamento pessoal, os participantes chegam a lembrar em média de 73% dos tics associados aos conteúdos, no caso destes treinamentos serem realizados em forma puramente textual, a média de lembranças dos conteúdos foi bem mais baixa. Isto significa que o uso do som para o aprendizado atua como reforçador do processo e ainda acaba provendo uma boa navegabilidade do sistema, visto que ao indicar hierarquia de menus, os tics são associados e lembrados por parte dos usuários em 97% dos casos.

18 Capítulo 1 Introdução 8 Portanto, os tics são um recurso importante de interface, bastante úteis para viabilizar a navegação de menus com o auxilio de sons, ou puramente através destes. Também ajudam na operação de sistemas gráficos, especialmente quando a interface possui limitações, tais como o tamanho da tela ou a quantidade de informações que deverá estar sendo exibida na tela em dado momento Sons falados Para o uso de sons em geral, inclusive os falados, existe a defesa comum da idéia que o som atua como reforço didático, tornando os ensinamentos transmitidos via multimídia mais eficientes do que aqueles que usam materiais puramente impressos. Experimentos citados por Narayanan[120] comprovam que uma apresentação feita em multimeios é mais eficiente que sua versão impressa. Uma informação em multimídia deve prover um modelo facilitador de aprendizado para unir integração de conteúdos e compreensão, deve haver uma harmonia entre os múltiplos meios e ainda existir um projeto que trate das situações que podem ocorrer, fazendo assim um controle sobre o conhecimento a ser mostrado. O conteúdo multimídia deve ser de fácil manuseio, ter controles similares aqueles que o usuário tem hábito de usar tais como os de um vídeo-cassete ou de um aparelho de DVD. O som é um recurso didático adicional que ajuda a fixação dos conteúdos e ainda contribui para a formação de novos conhecimentos, aplicando assim o método construtivista. O projeto deve seguir uma lógica bem definida e contar com uma boa base física, tudo para fazer o aluno tirar o máximo de proveito do conteúdo fornecido. Um bom projeto de uso de som em ambientes para ensino deve prover um ambiente cognitivo para que o aprendiz tenha sua compreensão facilitada. Estudos como citado em [120] mostram que o aproveitamento dos conteúdos aumenta muito com o uso de sons de todas as formas e tal como mostrado em [119], os sons não falados também têm seu papel didático muito importante e bem definido.

19 Flávio Ferry de Oliveira Moreira Novo módulo de Suporte a Som Este novo módulo aqui proposto será adicionado à estrutura existente para dar ao sistema a capacidade de emitir som pela rede. Isto se torna particularmente útil quando a idéia é educação a distância. A ferramenta pode até chegar a ser usada para treinamentos de empregados de uma empresa ou auxiliar em programas de graduação ou pós-graduação a distância, tendo em vista que a interação através de som ajuda os alunos a compreender melhor os conteúdos explicados pelo professor A estrutura da dissertação Os demais capítulos deste trabalho estão estruturados como segue: Capítulo 2 Multimídia: Tecnologias de Som Discussão e Comparação das Tecnologias de Som com uso da Internet. Capítulo 3 Tecnologias Envolvidas Aborda a Linguagem de Programação utilizada para a construção do protótipo, tecnologias envolvidas e serviços de rede necessários para o funcionamento do referido protótipo. Capítulo 4 Módulo AulaSom O protótipo do módulo de suporte a áudio, sua especificação e implementação. Descrever arquitetura, implementação, testes e resultados obtidos do módulo de suporte a som para ambientes de ensino a distância. Capítulo 5 Considerações Finais Conclusões e sugestões de trabalhos futuros. Referências Bibliográficas Bibliografia consultada para a realização do trabalho.

20 Capítulo 2 Trata das tecnologias relacionadas ao som e as formas de tratamento digital, e ainda faz a indicação de qual tecnologia será adotada neste trabalho.

21 Flávio Ferry de Oliveira Moreira Multimídia: Tecnologias de som Uma das necessidades básicas dos seres humanos, a comunicação através de sons é importante para uma boa convivência. O desenvolvimento de tecnologias de áudio proporcionou o uso destas na Internet para diversas finalidades, a saber [13]: Decoração de sites; Música, jogos, gráficos com animações; Palestras ou aplicações de ensino à distância; Rádio tradicional ao vivo; Rádios que existem somente na Internet; Demonstrações de produtos e Áudio de conteúdo jornalístico. Algumas vantagens aparecem com o uso do som agregado ao texto: É um canal adicional ao monitor; A fala pode (e deve) ser usada para melhorar a compreensão do texto, e oferecer informações adicionais; Ambienta melhor o internauta no contexto mostrado no conteúdo. Se existe uma preocupação de ensino a distância, usando um ambiente computacional, este provendo meio de mídia sonora torna-se mais agradável de ser usado que apenas em modo de texto e imagens. O recurso multimídia do uso de som melhora a usabilidade dos programas de ensino à distância apoiados por computador [21]. Com a finalidade principal de reforçar o impacto de informações em STIs, o software deve apresentá-las em diferentes mídias, como: voz, som, música, figura, foto, animação, vídeo. É desejável usar a mídia mais conveniente para um determinado conteúdo, ou apresentá-lo em mais mídias, por exemplo, um texto muito longo pode ser enriquecido com uma animação ou uma explicação muito longa pode ser substituída por uma simulação animada. Por outro lado, o programa não pode exagerar no uso das mídias, pois poderia se parecer com um circo e prejudicar a sua intenção educacional. Além disso, o uso de explicação via voz torna a compreensão do tópico mais fácil. Algo desejável para alguns casos seria a possibilidade de ser usado um som de fundo, configurável e opcional. Os sons, tipo campainhas, tics, efeitos, entre outros, não devem assustar e nem atrapalhar quem está na periferia, mas simplesmente cumprir o seu objetivo, que é alertar o usuário. As vozes devem ser perfeitamente audíveis e compreensíveis. Se o usuário quiser, o som pode ser desligado, pois em determinados momentos poderá atrapalhar.

22 Capítulo 2 Multimídia: Tecnologias de som O Som O som viaja através do ar causando movimentos de ida e volta. Estes movimentos lembram ondas que se movem no mar, por este motivo que são chamados de formas de onda (waveform)[20]. No mundo real o som é percebido usualmente como uma massa de ar vibrando. Estas vibrações, durante alguns anos, eram capturadas mecanicamente, em geral usando um diafragma de metal fino, que conectados a outras ferramentas registravam as informações. Este tipo de método é conhecido como analógico e possui diversas limitações físicas, pois dependem da natureza do material utilizado. Porém, tem como vantagem sua resposta de freqüência disponível, chegando a alguns sistemas profissionais de 10Hz 100KHz (Hz 1 é uma medida de freqüência que descreve o número de vezes que um evento ocorreu em um dado período de tempo). Atualmente, muitos registros de sons são digitais. Isto significa que conversores analógico para digital convertem as vibrações reais em números ou pacotes de dados que matematicamente representam estas vibrações. Os registros digitais são livres de impurezas ou ruídos e a reprodução do som original é bastante clara, entretanto sofrem duas grandes limitações. A primeira é que a faixa de freqüência digital é limitada para um máximo de aproximadamente 20KHz. A segunda diz respeito os registros digitais trazerem formas de onda lineares suaves que são divididas em amostras (quantização), que nunca serão inteiramente exatas. O termo amostra refere-se para a um pequeno número inteiro (usualmente 8 ou 16 bits, com alguns poucos sistemas chegando a 32 bits). Devido representação discreta de algo que na natureza é contínuo, sempre existirá o erro computacional presente. A solução passa por fazer estas porções com o menor tamanho possível, usando tantos bits quanto necessário para representar cada amostra quando digitalmente registrada, a quantização se tornará invisível. As limitações de áudio digital geralmente não são percebidas pela maioria das pessoas, daí a popularidade da tecnologia de CDs. Devido ao grande avanço tecnológico observado nos últimos anos e ao grande interesse comercial, a rede mundial de computadores tem fortemente crescido e está cada vez mais entrelaçando sua tecnologia com novas formas e aperfeiçoamentos a fim de suportar as exigências da sociedade. A Internet, assim como a 1 Hz lê-se Hertz, unidade de medida de freqüência de som, seus múltiplos usuais são o KHz (KiloHertz) e o MHz (MegaHertz), significando grandeza de mil e milhão respectivamente.

23 Flávio Ferry de Oliveira Moreira 13 tecnologia de CDs, citada anteriormente, vem alcançando uma grande popularidade. A tecnologia aplicada na World Wide Web tem crescido de tal forma que hoje, a partir das novas ferramentas e aplicações existentes, Webmasters podem adicionar som e músicas a simples páginas Web. Ao utilizar o poder do som, é possível fazer a diferença entre uma simples apresentação multimídia e uma apresentação profissional. Em projetos multimídia não é necessário o conhecimento de harmonia, intervalo, ondas, claves, etc. Porém é indispensável se ater a três pontos: como criar o som; como gravar e editar o som; e como incorporar o som ao projeto Internet e Áudio Integrar som em ambientes Web é tão fácil quanto produzir ligações na confecção de um site. MPEG é o padrão mundial em áudio e compressão de vídeo. Conseqüentemente como imagens JPEG e outras imagens gráficas podem sofrer compressões 2, pode-se fazer o mesmo com áudio e vídeo. Devem ser consideradas as razões de portabilidade e qualidade quando selecionando um formato de áudio. Um entendimento dos componentes de um arquivo de áudio deve ajudar a selecionar um formato apropriado. Informação de áudio é uma parte regular da hipermídia. Para sua apresentação em computadores, é necessário que o som passe por processos específicos a fim de transformá-lo em um produto entendível aos sistemas digitais. O áudio em forma de onda deve ser amostrado, quantizado e digitalmente codificado. A necessidade para comprimir as informações deste tipo de mídia é obvia. Infelizmente, os sinais de áudio são difíceis de comprimir. Diferente de imagens fotográficas ou vídeo, existe pouca relação entre amostras vizinhas ou quadros consecutivos. Os níveis de compressão práticos, entretanto, são limitados para muito menos de 10:1 (compressão de vídeo de 25:1 pode ser legivelmente produzida). Companhias como a Sono e Philips têm gasto milhões para desenvolver esquemas proprietários (ATRAC e PASC respectivamente) para este fim. Enquanto estes esquemas produzem qualidade eles são muito complexos e usados proprietariamente. Vários outros algoritmos estão disponíveis para compressão ou compactação de dados, e enquanto todos não 2 O termo compactação, bastante usual na Informática não é bem empregado para arquivos multimídia, sendo o termo compressão mais adequado para estes.

24 Capítulo 2 Multimídia: Tecnologias de som 14 são igualmente apropriados para os sinais de áudio, alguns são capazes de compressão relativamente alta com excelente qualidade Características Dados de áudio são caracterizados por determinados parâmetros, que correspondem a armação de conversores análogico-digital(a/d) usados quando estes são registrados. Vários esquemas são usados para codificar as informações de áudio. Eles diferem no número de amostras por segundo, resolução e números de canais. Entretanto, eles todos compartilham um ponto comum: a quantidade de dados necessária para qualidade razoável de áudio é considerável. Como um exemplo, o registro de CD (16 bits, amostras/s, 2 canais), requer mais do que 1.4 Mbits/s para dados puros (e acidentalmente 1.6 Mbits/s suspenso como sincronização, localizar número e índice, proteção de cópia, etc.). Geralmente, o mesmo ambiente deve ser usado para executar os dados. Mas alguns fatores influenciam diretamente na qualidade da conversão obtida, tais como: padrões em amostras por segundo (tais como 8000 ou 44100), números de bits por segundo (tais como 8 ou 16), número de canais (um para mono, dois para estéreo, e assim por diante). Amostras padrões são freqüentemente citadas em hertz (Hz) ou um de seus múltiplos, e são também referenciadas como amostras por segundo(amostras/segundo). Padrões amostrados são geralmente medidos por canal, assim para canais estéreos dados registrados em 8000 amostras por canais, implicam na existência de amostras em um segundo. Amostras multicanais são geralmente transmitidas quadro-por-quadro. Caso existam n canais, os dados são uma seqüência de quadros, onde cada quadro contém n amostras, uma de cada canal (deste modo, a amostra padrão é realmente o número de quadros por segundo). Para canais estéreos, o canal esquerdo usualmente vem primeiro. A especificação dos números de bits para amostras u-law é problemática. Estas amostras são logaritmicamente codificadas em 8 bits, mas a faixa dinâmica delas é de 12 bits de dados linear. A definição oficial é especificada no padrão CCITT G.711. Existe outro esquema de codificação similar para u-law, chamado A-law, que é usado como um padrão de tecnologia européia. Enquanto o formato u-law é altamente suportado pelas estações Unix, existe pouco suporte para formato A-law nessas estações.

25 Flávio Ferry de Oliveira Moreira 15 Alguns padrões amostrados são mais populares do que outros, por várias razões. Enquanto alguns hardware registrados são restringidos para estes padrões, alguns playbacks têm suporte direto para outros padrões. A popularidade de divisores de padrões comuns pode ser explicada pela simplicidade do relógio de freqüência dividindo circuitos que são usados como uma referência em tradução de som. Tabela 2.1. Exemplos de Aplicações de Som Digital e seus Padrões de Amostragem Amostras/Segundo Descrição 5500 Um-quarto dos padrões amostrados Macintosh 7333 Um-terço dos padrões amostrados Macintosh 8000 Exatamente 8000 amostras/s é um padrão de telefonia que se une com a codificação u-law. Alguns sistemas usam padrões diferentes; em particular estações NeXT usam , que aparentemente é o padrão usado pelo Telco CODECs /11025 Um quarto dos padrões de amostras de cds, ou metade dos padrões amostrados Macintosh Usado por exemplo, pelo padrão de compressão G Padrão CD-ROM/XA 22000/22050 Metade dos padrões amostrados em CD, ou o padrão Mac Usado em rádio digital, e outros trabalhos de TV, no mínimo UK Padrões para CD-ROM/XA para mais alta qualidade Este padrão não usual é usado pelos equipamentos profissionais de áudio para integrar um número substancial de amostras em um quadro de vídeo Padrões amostrados de CD Padrões amostrados DAT para uso doméstico Para áudio que será usado para transportar dados de som e voz, os padrões amostrados 8000 e são mais adequados. Para registros de mais alta qualidade associados com a música e áudio biológico e científico, o padrão é mais recomendado Tipos de Som Digital Para armazenar arquivos de som em computadores, existem diversas técnicas usadas. Algumas guardam apenas partituras das músicas, como a técnica usada pelos arquivos MIDI, outras guardam o áudio sem fazer compressão, é o caso dos arquivos WAVE. Existem também muitos formatos de arquivos que usam algum tipo de compressão e alguns até que usam algum algoritmo de manutenção de direitos autorais. Vários destes arquivos são próprios para uma determinada plataforma de hardware e software.

26 Capítulo 2 Multimídia: Tecnologias de som 16 Dentre aqueles que usam compressão tem um que se destaca: o MP3, devido sua alta taxa de compressão, chega a valores como 12 para 1, e manutenção da qualidade original do arquivo, este formato está sendo bastante usado atualmente. Áudio Digital WAVE No Sistema Windows, os arquivos de sons são do tipo WAVE e estão residentes no subdiretório Windows\Media. Além dos já existentes, é possível a criação/adição de novos arquivos de som, armazená-los como arquivos do tipo WAVE no diretório Windows\Media e usar o painel de controle, na opção Som para selecioná-los. Este tipo de arquivo geralmente não possui compressão. As ondas simplesmente são convertidas de analógico para digital e gravadas diretamente no arquivo. Áudio Digital e MIDI MIDI (Musical Instrument Digital Interface) é um padrão de comunicação criado no início dos anos 80 para instrumentos musicais eletrônicos e computadores. Permite que instrumentos musicais (como por exemplo sintetizadores) de diferentes fabricantes se comuniquem através do envio de mensagens por cabos conectados entre os diversos dispositivos. O protocolo da interface MIDI passa detalhes como, por exemplo, descrição do escore musical, notas, seqüência das notas, e qual instrumento toca estas notas. Entretanto, dados de um arquivo MIDI não são sons digitais e sim representações musicais feitas à mão (ou por algum software que interaja com partituras) e armazenadas num formato numérico. Áudio digital é uma gravação enquanto MIDI é um escore, onde o primeiro depende da qualidade do sistema de som e o outro da qualidade do instrumento musical e da capacidade do sistema de som. Os arquivos no formato MIDI tendem a ser menores do que os arquivos no formato digital, enquanto o som digital não depende dos dispositivos, os MIDI são dependentes dos dispositivos a serem usados para playback. Vantagens dos arquivos MIDI: São arquivos mais compactos (em geral são de 200 a 1000 vezes menores que os digitais) e independem da qualidade do dispositivo do playback, por conseqüência não ocupa muito memória RAM, espaço em disco e recursos da CPU; Como são arquivos pequenos levam vantagens (na carga e na execução) sobre os digitais quando embutidos (embedded) nas páginas da Web;

27 Flávio Ferry de Oliveira Moreira 17 Em alguns casos (quando a fonte do MIDI é de excelente qualidade) o som produzido por este tipo de arquivo é melhor do que o digital; Os dados de um arquivo MIDI são editáveis, portanto se pode modificar o seu tamanho sem modificar a música ou a sua qualidade, isto é, só modificando o tempo. Porém, os arquivos do tipo MIDI têm algumas desvantagens: Como os dados de um arquivo MIDI representam não o som e sim o instrumento musical, o playback só irá funcionar adequadamente se o dispositivo utilizado para este propósito for idêntico ao dispositivo de origem da produção; Os arquivos MIDI não podem ser usados facilmente para reproduzirem diálogos (voz). Em geral, a maior qualidade dos arquivos digitais vem da sua consistência na qualidade do playback. Isto leva a uma maior utilização deste tipo de arquivo nos projetos multimídia, porque garante a qualidade do som do início até o fim. Pode-se ainda acrescentar duas razões para o uso deste tipo de arquivo: Uma quantidade maior de aplicações que suportam arquivos de som digital; Não requer conhecimento de teoria da música. Em que circunstâncias se deve usar cada tipo de arquivo: Tabela 2.2. Comparativo de Arquivo de som tipo MIDI e Tipo Áudio Digital Arquivos do tipo MIDI Quando não se tem memória (RAM) suficiente, ou espaço em disco, ou capacidade de processamento da CPU, ou largura da banda Quando se tem um dispositivo MIDI de alta qualidade Quando se tem um controle completo sobre o dispositivo que será utilizado para playback Quando não é necessária a utilização de diálogos (voz) Arquivos de áudio digital Quando não se tem controle sobre o hardware que será utilizado para o playback Quando se tem recursos computacionais e largura de banda suficientes para manipular arquivos digitais Quando é necessária a utilização de diálogos (voz) Áudio Digital e seus componentes O som pode ser digitalizado a partir de microfone, sintetizador, reprodução de fitas cassetes, programas de rádio ou televisão, de CDs, entre outros. Em geral, se pode digitalizar sons de qualquer fonte, seja natural ou pré-gravada. Som digital pode ser representado como

28 Capítulo 2 Multimídia: Tecnologias de som 18 pedaços de som (samples), onde a cada fração de segundo um pedaço do som é armazenado no formato digital, ou seja, a informação é representada na forma de bits e bytes. Algumas definições são importantes, como: qual a freqüência que os samples são retirados, a sampling rate; qual o montante de informação que é armazenado para cada sample, o sample size. As três freqüências mais utilizadas na multimídia para os samples são: 44.1 khz (qualidade de CD), khz e khz. O som estéreo é mais realístico que o mono porque o ser humano possui dois ouvidos, por outro lado, o som estéreo requer duas vezes mais espaço do que o mono. A Tabela 2.3 apresenta alguns tamanhos de arquivos para diferentes sampling rates. Sampling Rate Tabela 2.3. Tamanhos de Arquivos e Sampling Rates Resolução Estéreo ou Mono Bytes por Minuto Comentários 44.1 khz 16-bit Estéreo 10.5 MB Qualidade de gravação de CD, o reconhecido padrão para áudio khz 16-bit Mono 5.25 MB Boa qualidade para gravações do tipo mono como voz 44.1 khz 8-bit Mono 2.6 MB Apropriada para gravações de uma fonte mono khz khz khz khz 16-bit Estéreo 5.25MB Não possui a qualidade do CD, têm dois fatores importantes: estéreo e a resolução de 16-bits. 16-bit Mono 2.5 MB É uma boa escolha para discursos, porém pode se baixar para 8-bit e economizar espaço em disco. 8-bit Estéreo 2.6MB É a escolha popular para gravações em estéreo quando não é possível toda a largura de banda no playback. 8-bit Mono 1.3 MB Muito usado porque qualquer MPC pode tocar, a qualidade é tão boa como a da televisão. 11 khz 8-bit Estéreo 1.3 MB Como a sampling rate é muito baixa não existe vantagem em ser estéreo. 11 khz 8-bit Mono 650 KB Na prática ainda se consegue alguns resultados razoáveis. As operações básicas para edição de som são: TRIMMING remove espaço em branco do início da gravação e tempo desnecessário do final da gravação. No menu das aplicações de edição, os comandos mais comuns para esta atividade são: Cut, Clear, Erase ou Silence;

29 Flávio Ferry de Oliveira Moreira 19 SPLICING AND ASSEMBLY Para remoção de barulhos estranhos; VOLUME ADJUSTMENTS Para se ter um volume consistente dentro de toda a gravação. Não se deve utilizar volumes muito altos, pois podem distorcer o som;. FORMAT CONVERSION No Macintosh os formatos são do tipo SND e AIF, no Windows é do tipo.wav; RESAMPLING OU DOWSAMPLING Para economizar espaço em disco quando se utiliza baixas freqüências ou resoluções; FADE-INS E FADES-OUTS Importante para suavizar o início ou fim de um som; EQUALIZATION Permite modificar a freqüência de gravação para tornar o som mais brilhante ou não; TIME STRETCHING Os programas mais avançados permitem que se modifique o tamanho (em tempo) do arquivo de som sem alterar a música; DIGITAL SIGNAL PROCESING (DSP) Permite a criação de efeitos especiais como vibração, por exemplo; REVERSING SOUNDS Pode reverter parte ou todo o arquivo. Pode ser interessante para um discurso ser apresentado de trás para frente. Formato de Arquivos para Áudio na tabela 2.4. Alguns dos mais comuns formatos de arquivos de som usados na multimídia estão

30 Capítulo 2 Multimídia: Tecnologias de som 20 Tabela 2.4. Formatos de Arquivos de Áudio Extensão Tipo do MIME Plataforma Uso Aif Áudio/x-aiff Mac, SGI Áudio Aifc Áudio/x-aiff Mac, SGI Áudio (comprimido) AIFF Áudio/x-aiff Mac, SGI Áudio Aiff Áudio/x-aiff Mac, SGI Áudio Au Audio/basic Sun, NeXT Dados audio do ULAW Mov Video/QuickTime Mac, Win Vídeo QuickTime Mpe Video/mpeg Todas Vídeo Mpeg Mpeg Video/mpeg Todas Vídeo Mpeg Mpg Video/mpeg Todas Vídeo Mpeg Qt Video/QuickTime Mac, Win Vídeo QuickTime Ra, ram Áudio/x-pn-realaudio Todas Som RealAudio Snd Audio/basic Sun, NeXT Dados audio do ULAW Vox Audio/ Todas Voz VoxWare Wav Audio/x-wav Win Áudio WAVE Existem muitas maneiras de se armazenar os bits e bytes que descrevem um trecho de som no formato de ondas (waveform). O método usado pelo Red Book Audio para gravar as músicas dos CDs é conhecido como Linear Pulse Code Modulation e pode prover até 76 minutos de gravação. O CD-I (compact disc-interactive) foi desenvolvido pela Philips como uma alternativa ao padrão Red Book e usa o Adaptive Delta Pulse Code Modulation (ADPCM) para fornecer até duas horas de música estéreo de alta qualidade ou até 20 horas da qualidade voz por CD. Porém é necessário um CD-ROM/XA para tocar estes arquivos Projetando som integrado ao ambiente Web A preocupação natural dos projetos de sites da Web ainda é com a banda da rede 3, pois esta característica torna-se fator limitante no uso de tecnologias na Internet, principalmente quando é necessário usar arquivos multimídia, que normalmente são arquivos relativamente grandes. Um dos conceitos que surgem de início nos projetos voltados a Internet é o de compactação ou compressão de arquivos. A compactação é mais usada para arquivos de texto ou que não tenham necessariamente dados multimídia, já os algoritmos de compressão são aplicados a imagens, sons e vídeos. 3 Capacidade que uma rede tem de transmitir informações em um determinado intervalo de tempo.

31 Flávio Ferry de Oliveira Moreira 21 Nesta seção serão mostrados conceitos envolvidos na compressão de áudio, aplicações, técnicas e resumos de algoritmos encontrados. A quantidade de bytes que os dados de áudio consomem é enorme, aproximadamente bits de dados para cada segundo de som com qualidade de CD. Falando em termos computacionais, isto é equivalente a 176KB por segundo. Desta forma, um disco flexível 3,5 polegadas de alta densidade seria capaz de armazenar alguns poucos segundos de áudio. E foi devido a este motivo - quantidades de dados massivas envolvidas na armazenagem e transmissão de texto, som, imagens e vídeos em muitas aplicações - que muitas pessoas têm trabalhado para desenvolver sistemas de compressão de dados que reduzem a quantia de dados armazenados, e que podem ser reconstituídos aos seus dados originais através de uma descompressão, geralmente ao tempo que o arquivo é usado. Compressão é o processo de representar dados mais eficientemente, isto significa reduzir o tamanho dos arquivos (menores quantidades de bytes). Tem como objetivo reduzir os requerimentos de armazenagem e transmissão dos mesmos. Sua principal restrição se encontra na reconstrução perfeita dos dados comprimidos. Umas das estratégias mais utilizadas para a compressão é a redução de redundâncias de dados. Para dados de áudio a forma mais básica de comprimir (reduzir) envolve a redução do número de bits e padrões de amostras de áudio Técnicas e Algoritmos de Compressão A compressão de áudio divide-se em duas categorias: lossless ou lossy. Nesta seção serão descritas ambas categorias juntamente com alguns algoritmos utilizados. I) Compressão LossLess[106] Algoritmos de compressão lossless retornam dados de áudio idênticos a informação original. A compressão de som através de algoritmos lossless é surpreendente, entretanto ela não produz um padrão de alta compressão. A entropia de recurso da informação representa a quantia mais baixa de bits necessários para codificação não ambígua dos dados. Todos os algoritmos lossless requererão igual número ou mais bits para a compressão.

32 Capítulo 2 Multimídia: Tecnologias de som 22 Código de Huffman[107] Compressão de Huffman é uma técnica de compressão de dados estatística que reduz o tamanho do código médio para representar os símbolos de um alfabeto. Pode ser construído da seguinte maneira: 1. Ordenar todos os símbolos em ordem de probabilidade de ocorrência; 2. Combinar os dois símbolos de probabilidade mais baixa para formar um novo símbolo composto. Isto construirá uma árvore binária onde cada nó tem a probabilidade de todos os nós inferiores a ele; 3. Codificar um símbolo e traçar um caminho para sua folha, notando a direção de cada nó. Os bits individuais do código dependem da direção trazida de cada nó. A compressão de Huffman usa a abordagem bottom up com o objetivo para codificar símbolos altamente prováveis com muito poucos bits. Para uma dada freqüência de distribuição, existem muitos códigos de Huffman possíveis, mas o tamanho total comprimido será o mesmo. É possível definir uma árvore Huffman canônica, isto é selecionar uma destas árvores alternativas. Deste modo, uma árvore canônica pode então ser representada muito compactamente, pela transmissão do tamanho de bit de cada código. Esta técnica é usada em muitos arquivos (pkzip, lha, zoo, arj,...) A decodificação é trivial, tão logo a tabela de codificação seja enviada antes dos dados. Existe um bit superior para enviar isto, negligenciável caso os dados do arquivo sejam grandes. Nenhum código é prefixo para qualquer outro código (todos os símbolos são únicos), que fazem a implementação da decodificação fácil. Caso estatísticas estejam disponíveis e sejam exatas, então a codificação de Huffman é muito boa. Torna-se ótima se as probabilidades dos símbolos são potências integrais de ½. Algoritmo de Shannon-Fano[108] Uma técnica relacionada para codificação de Huffman é a codificação de Shannon- Fano. Usa a abordagem top down e trabalha como segue: 1. Dividir o conjunto de símbolos em dois subconjuntos iguais ou quase iguais na probabilidade de ocorrência de caracteres em cada subconjunto. O primeiro subconjunto é atribuído um "0" binário, e ao segundo um "1" binário;

33 Flávio Ferry de Oliveira Moreira Repetir o passo (1) até todos os subconjuntos terem um elemento simples. Enquanto a codificação de Huffman sempre gera códigos ótimos (se as probabilidades de símbolos são potência de ½), Shannon-Fano algumas vezes usa um pouco mais de bits. Código Adaptativo O algoritmo de compressão requer o conhecimento estatístico, que é freqüentemente não disponível (exemplo, vida de áudio, vídeo). A solução é usar algoritmos adaptativos. Durante as atualizações do modelo estatístico, mudanças ocorridas no codificador deverão ocorrer também no decodificador. A chave deve ter tanto codificador e decodificador para usar exatamente a mesma inicialização e rotinas de atualizar modelos. Código Aritmético[109] Os códigos de Huffman e Shannon-Fano são significados perfeitos de compressão de dados. Entretanto, isto é verdade quando as probabilidades dos símbolos são potências de ½, que usualmente não é o caso. A técnica de codificação aritmética não tem esta restrição. Trabalha representando um número por um intervalo de números reais entre 0 e 1. Como a mensagem se torna mais longa, o intervalo necessário para representar se torna cada vez menor, e o número de bits necessários para especificar aquele intervalo aumenta. Para codificar uma mensagem, é necessário enviar bits suficientes de uma fração binária que unicamente especifica o intervalo (na prática, é também necessário adicionar um símbolo de fim de dados, que adiciona um pequeno cabeçalho). O código aritmético não é muito eficiente com mensagens pequenas, mas como as mensagens tornam-se mais longas, a eficiência da codificação chega a 100%. A eficiência pode ser melhorada usando modelos adaptativos ou considerando probabilidades entre símbolos. O ponto negativo do código aritmético é o fato que ele consome quantias grandes de recursos computacionais tanto em termos de CPU quanto de memória. Além disso, geralmente é patenteado. Existe, entretanto uma abordagem alternativa, uma classe de

34 Capítulo 2 Multimídia: Tecnologias de som 24 compressores geralmente referida como compressores substitucionais ou baseados em dicionários. Também chamados de algoritmos LZW (proposto primeiro por Jakob Ziv e Abraham Lempel em 1977, melhorado por Terry Welch em 1984). A idéia básica de um compressor substancial é colocar uma ocorrência de uma fase particular ou grupo de bytes numa peça de dados com uma referência para uma ocorrência prévia daquela fase (índice para um dicionário). O esquema trabalha com fases inteiras dentro de um dicionário e então, quando uma ocorrência repetida daquela fase particular é encontrada, é produzido o índice de dicionário da fase. O dicionário pode, deste modo, ser construído gradualmente e interativamente. LZW começa com um dicionário 4K, no qual entradas se referem a bytes, e entradas se referem a substrings. Cada vez um novo código é gerado, significando uma nova string ter sido sintaticamente analisada. Novas strings são geradas pela concatenação do caracter corrente k para o fim de uma string w existente. As strings são construídas caracter-por-caracter, iniciando-se com um valor de código 256. No fim, a entrada do dicionário é transmitida para o decodificador sem transmissão explícita. No fim da execução o decodificador terá um dicionário idêntico ao codificador, construído inteiramente como parte do processo de decodificação. Limitações de Lossless Padrões baixos de compressão (cerca de 2:1); Esta técnica não pode comprimir todas as possíveis entradas por no mínimo um bit. II) Compressão Lossy[110] A compressão lossy de áudio pode produzir uma variedade de diferentes padrões de compressão, baseados na habilidade do hardware e software para decodificar uma musica em tempo real. O grau de desorganização das informações de áudio é relativamente alto e, assim, os padrões de compressão de vários métodos lossless (exemplo, Huffman, Aritmético, LZW) não são auto-suficientes para aliviar os problemas com armazenagem de dados e comunicação de

35 Flávio Ferry de Oliveira Moreira 25 redes. Soluções têm sido buscadas com algoritmos de compressão lossy que trazem uma quantia de propriedades estatísticas de som. Seguem alguns exemplos. G711[111] É um padrão fundamental em que todas as aplicações de conferência de vídeo são baseadas. Ele define a modulação por codificação de pulso (PCM Pulse Code Modulation). Em PCM, uma amostra representando as amplitudes instantâneas da forma de onda de entrada é trazida regularmente, o padrão recomendado é 8000 amostras por segundo. Neste padrão, freqüências entre Hz são codificáveis. Isto tem sido adequado para comunicação de voz, e parece fornecer uma qualidade de música aceitável em ambientes de ruídos. O padrão negocia mais com codificação do que compressão, embora a redução de resoluções para 8 bits possa ser estimada como compressão. Às amostras trazidas é atribuído um de 212 valores. Estas amostras são então armazenadas em 8 bits usando uma codificação logarítmica de acordo com um dos dois regulamentos (A-law e u-law). Em telecomunicações, a codificação A-law tende a ser mais amplamente usada na Europa, enquanto u-law predomina nos Estados Unidos. ADPCM (Adaptive Delta Pulse Code Modulation)[112] Permite compressão de entradas codificadas PCM cujo poder varia com o tempo. O feedback de uma versão reconstruída do sinal de entrada é subtraído do sinal de entrada real, que é então quantizado para dar um valor de saída de 4 bits. Deste modo, a diferença entre o sinal real e a forma de onda prognosticada e codificada e transmitida. Esta compressão dá um padrão de saída de 32Kbit/s. ADPCM e definido em G.721. Este padrão foi recentemente estendido em G.726, para permitir conversões entre PCM de 64Kbit/s e canais de 40,32,24 ou 16Kbit/s. A codificação de mais alta qualidade (50Hz-7KHz) é coberta em G.722 e G.725, e é produzida pela utilização da sub banda de codificação ADPCM em duas freqüências sub bandas; o padrão de saída e de 64Kbit/s.

36 Capítulo 2 Multimídia: Tecnologias de som 26 LPC e CELP[113] Codificação preditiva linear (LPC-Linear Predictive Coding) é usada para comprimir áudio abaixo de 16Kbit/s. Neste método, o codificador ajusta a velocidade para uma amostra, modelo analítico da região vocal. Apenas os parâmetros descritos no modelo sintético são transmitidos ao decodificador. Um decodificador LPC usa estes parâmetros para gerar velocidades similares à original. O CELP (Code Excited Linear Predictor) é muito similar ao LPC. O codificador CELP faz a mesma modelagem LPC, entretanto computa os erros entre a velocidade original e o modelo sintético e transmite tanto os modelos de parâmetros quanto uma representação comprimida dos erros. A representação comprimida é um índice dentro de um "livro de código" compartilhado entre decodificadores e codificadores. O resultado de CELP e uma qualidade muito mais alta de velocidade em padrões de dados baixos. Um codificador CELP trabalha muito mais do que um codificador LPC e o resultado é uma velocidade de maior qualidade: 1016 CELP fornece essencialmente a mesma qualidade de um codificador de 32Kbit/s ADPCM. Cada diferente codificador/decodificador (codec) tem diferentes tamanhos e fraquezas. Tipicamente, a codificação traz um longo período de tempo e grandes quantias de poder de processamento. A decodificação deve ser em tempo real ou muito mais rápida capaz de decodificar e executar som simultaneamente. MPEG Layer III (MP3)[114] MP3 é um padrão de codificação de arquivos (MPEG Layer III Norma: ISO-MPEG Audio Layer-3 (IS e IS )) para armazenar áudio (waveform), semelhante aos arquivos.wav (wave), porém conseguem armazenar música com alta taxa de compressão e são tocados com softwares específicos, conhecidos como players[22]. Gravar uma música de CD num arquivo wave normal, usando uma placa de som e os programas de gravação que a acompanham, com qualidade de 44 khz, 16-bits, estéreo (qualidade de CD), em uma música de aproximadamente 1 minuto, seria gasto cerca de 12MB

37 Flávio Ferry de Oliveira Moreira 27 de espaço de armazenamento. Usando um encoder 4 MP3, o arquivo diminuirá cerca de 12 vezes, ou seja, terá depois de convertido para o formato MP3, apenas 1 MB e com qualidade muito próxima ao CD. Basta um programa simples para ouvi-los. Sendo um pouco mais específico: a taxa de amostragem de um CD é 44kHz, ou seja, amostras de som por segundo. Multiplicando essa taxa por 2, levando em conta que o som é estéreo. Fazendo algumas contas simples, para o caso de uma música de 1 minuto: amostras/s * 2 canais * 2 bytes/amostra * 60 s/min = cerca de 10 MBytes Agora baixando este áudio da Internet num modem 28.8: bytes * 8 bits/byte / ( bits/s * 60 s/min) = cerca de 49 minutos Codificar um arquivo MP3 requer um bom trabalho da CPU. Nos computadores atuais (Pentium II 300Mhz), 5 minutos de áudio pode demorar cerca de 5 minutos e 30 segundos ou 6 minutos para serem compressos com o codec Fraunhover e 2 minutos com o codec da Xing Corporation[23]. Os arquivos também podem ser compactados com qualidade inferior, o que é mais rápido e torna os arquivos ainda menores, porém perde-se muito em qualidade Técnica de streaming de áudio O uso de arquivos de som digital e a Internet estão ajudando a proliferar gravações não autorizadas de obras de artistas como cantores e produtores de filmes, programas de rádio e televisão. Para contornar este problema sem tirar dos internautas a possibilidade do usufruto do áudio digital via rede, foi criada a tecnologia que permite transmitir rádio via Internet, a esta se deu o nome de streaming de áudio [14]. Esta novidade possibilita enviar o áudio gravado ou transmitido ao vivo, sem que seja possível para o usuário gravar o áudio em seu disco. A tecnologia de streaming (fluxo contínuo) oferece justamente a facilidade de ouvir e ver enquanto carrega - áudio e vídeo podem ser reproduzidos no computador do usuário quase imediatamente após a sua solicitação. Na prática, enquanto o download está sendo 4 Programa que faz a conversão de formato de áudio. Responsável por aplicar o algoritmo de compressão necessário.

38 Capítulo 2 Multimídia: Tecnologias de som 28 efetuado, o usuário já está apreciando o conteúdo. Como se fosse sintonizar uma emissora de rádio [11] via computador e até o momento sem ter como gravar em arquivo. Existem várias tecnologias concorrentes, que são capazes de distribuir mídia streaming[12]. A RealNetworks[15], com seus padrões RealAudio e RealVideo, predomina em sites de conteúdo de multimídia. A Microsoft[16] também entrou na batalha, tentando impor sua tecnologia Windows Media. O QuickTime da Apple[17] também trabalha com streaming de vídeo e áudio e se tornou mais popular por causa dos arquivos de filmes em formatos MOV e QT. A Nullsoft vem ganhando terreno por ter elaborado uma técnica que transforma arquivos MP3 em fluxos contínuos, possibilitando a transmissão de rádios com base nesse padrão, que mais tem músicas digitalmente convertidas. A Macromedia[18], em menor escala, também oferece sua contribuição com a tecnologia Shockwave, para transmissão de animações e outras produções confeccionadas por computador (o Shockwave possibilita criar, por exemplo, jogos on-line). Para reproduzir uma mídia streaming, é necessário ter um programa tipo player instalado que, em geral, pode ser obtido gratuitamente pela Internet. Do lado do servidor, é preciso implementar uma infra-estrutura para transmissão do streaming. As mesmas empresas que oferecem o player fornecem também a tecnologia de servidor para criar, gerenciar e difundir os fluxos de áudio e vídeo. Com exceção do Shoutcast da Nullsoft[19], os demais servidores são acessíveis apenas aos que estão dispostos a investir alto na oferta de conteúdo baseado em streaming. O Shoutcast, por ter versão livre para Linux[24, 25 e 26], permite que curiosos montem sua própria rádio e transmitam aos amigos músicas MP3. A tecnologia Shoutcast pode, por um lado, incentivar a divulgação de músicos alternativos, mas, por outro, induzir pessoas à ilegalidade nas questões de direitos autorais. A empresa AudioBase[27] também oferece uma tecnologia de streaming própria, que se diferencia das demais por dispensar programas adicionais no lado do usuário. Somente por meio da linguagem Java[28, 29 e 30], pode-se reproduzir áudio enquanto se navega na Internet. Menos difundida, a tecnologia da AudioBase pode ser uma boa alternativa para colocar som e vozes em banners publicitários e música em sites especiais. A tecnologia de envio de áudio via Internet funciona como descrito a seguir[12]. Assim que o usuário seleciona um link solicitando a reprodução de um áudio ou vídeo streaming, inicia-se o download das informações. Antes de começar a executar o streaming, o player armazena um certo volume de dados em um buffer, a fim de tornar a exibição mais

39 Flávio Ferry de Oliveira Moreira 29 fluente. Quando o buffer é preenchido o que pode levar menos de cinco segundos até 30 segundos ou mais, dependendo das condições da conexão, o player começa a reproduzir o conteúdo. E, paralelamente à exibição, o download prossegue, preenchendo continuamente o buffer, até que se encerre o conteúdo. O streaming de áudio, mais simples que o de vídeo, oferece resultados bastante satisfatórios. É possível ouvir músicas com qualidade próxima à de um CD, mesmo em conexões de média velocidade, como 28,8 kbps. Os players disponíveis atualmente oferecem equalizadores digitais que permitem controlar os sinais graves e agudos, tal qual é feito em um aparelho de som convencional. Para que uma audição ocorra normalmente sem interrupções, o buffer do player não pode ser esvaziado por completo antes do download se encerrar. Nesse momento é que se destaca o valor de cada tecnologia disponível, que vem sendo aprimorada a cada ano. O RealAudio, por exemplo, trabalha com níveis de qualidade de som permitindo transmissões em condições precárias, ou seja, é possível receber conteúdos audíveis mesmo com um certo congestionamento na rede. Para arquivos de voz (não música), não se nota muita diferença de qualidade. Por esse motivo, o RealAudio está presente em tantos servidores. O fator decisivo para a eficiência de uma tecnologia de streaming é a técnica de compressão utilizada. No caso do som, certas faixas de freqüências muito altas ou muito baixas podem ser eliminadas quando a música é digitalizada. Outros tipos de sinais também podem ser reduzidos, sem que o ouvido humano perceba. Assim, sucessivamente, o tamanho do sinal original é reduzido e representado em um conjunto de dados cada vez menor. Oferecer o melhor som possível, que possa ser transmitido pela Internet, é o desafio de quem desenvolve a tecnologia de streaming. E balancear tamanho do arquivo com a qualidade final, mantendo compatibilidade com várias condições de conexão, é o que diferencia uma tecnologia da outra. Pesquisas já foram realizadas com usuários, com o objetivo de identificar quem oferece a melhor qualidade de som na Internet. Até o momento, a conclusão obtida é que os concorrentes estão muito próximos e que escolher entre um ou outro é uma questão muito subjetiva. As tecnologias de áudio via Internet são consideradas atualmente como sendo de grande importância para melhorar a qualidade da comunicação humana[13]. Seminários de diversas áreas do conhecimento humano são feitos para discutir estes tipos de tecnologia.

40 Capítulo 2 Multimídia: Tecnologias de som A importância do som em um STI O suporte a áudio encontrado em um STI é fundamental sob muitos aspectos. O primeiro deles diz respeito a aumentar o grau de interação do aluno com o curso que ele está fazendo. Outro aspecto é que o som pode ser usado como uma ferramenta de estratégia pedagógica, agregando às explicações textuais, falas dos professores, exemplos sonorizados e até mesmo possibilitando ao aluno interagir via comandos de voz, ou mesmo comunicar-se com os professores via ambiente do STI. A proposta deste trabalho é construir um módulo adicional a um STI já existente para que ele incorpore inicialmente algumas destas características, como permitir que o professor tenha condições de enviar áudio junto com os textos das aulas. Pode-se até mesmo fazer uso do sistema para aulas ao vivo, ou seja, aulas com transmissão simultânea pelo STI. Para isto a infra-estrutura a ser usada é a Internet. O STI que motivou esta pesquisa foi o SEI desenvolvido por pesquisadores da UFPE A Técnica Escolhida Diversos formatos existem para transmitir áudio na Internet, conforme discutido nas seções anteriores, destes alguns são bastante populares como os da empresa Real Networks, ou aqueles da Microsoft. Mas algumas considerações devem ser feitas antes de adotar alguma destas soluções. Comparação entre formatos de compressão Para ilustrar a variação dos atributos de uma mesma amostra de som gravada em diferentes formatos, tem-se a Tabela 2.3, abaixo. Ela descreve as características de um trecho, com aproximadamente 30 segundos, de uma canção.

41 Flávio Ferry de Oliveira Moreira 31 Arquivo sample1 (5.1MB) Tabela 2.5. Formatos de Compressão sample2 (336KB) sample1 (488KB) Extensão.wav.wav.mp3.mp3 sample2 (76KB) Tamanho(KB) 5.380,244Kb 336,306Kb 488,923Kb 76,791Kb Amostras/seg Hz Hz Hz Hz N-bit format 16 bit 8 bit 16 bit 8 bit Canais Estéreo Mono Estéreo Mono Bit rate 128 kbps 64 kpbs 128 kbps 64 kpbs Observando os valores acima, tende-se a usar tecnologias que adotem o algoritmo de compressão MPEG-3 (Movie and Pictures Experts Group Terceira Camada), devido a sua taxa de compressão. Um arquivo de cerca de 5 MB cai para menos de 500 KB quando convertido para MP3. Maiores detalhes podem ser vistos a partir de [20] e suas hiperligações. Uma técnica de envio do som seria streamming media, devido ao uso da tecnologia mais popular para tratamento de áudio no momento: a MP3 (MPEG Layer3), já discutida em seções anteriores, além deste fato conta-se também com o fato de ser um servidor de áudio em fluxo contínuo tipo freeware, os demais apresentam custos muito altos e padrões proprietários que podem dificultar a viabilidade deste projeto. Porém esta técnica, assim como outras baseadas em fluxo de áudio, apresenta a desvantagem de trabalhar com uma lista estática de arquivos, fato que dificulta a montagem de streammings a partir de um banco de dados, por exemplo, além de contar com outros fatores negativos como: características da rede, que pode prejudicar a qualidade e até o conteúdo do áudio, disponibilidade do servidor e outros. Então a solução mais adequada é armazenar arquivos de áudio compressos em MP3 em um banco de dados com suporte a arquivos binários (suporte ao tipo blob), e neste banco realizar consultas que retornem os arquivos de áudio em formas de links para que o usuário possa escolher qual arquivo quer ouvir. Para a criação dos arquivos, o professor poderá usar qualquer programa que grave sons a partir do microfone conectado a placa de som do computador, desde que este programa tenha suporte a salvar no formato MPEG-Layer 3. Uma alternativa bem popular seria usar o próprio gravador de som do sistema operacional Microsoft Windows[34]. No tocante às consultas realizadas pelos usuários (alunos), basta ter

42 Capítulo 2 Multimídia: Tecnologias de som 32 um programa que seja capaz de reproduzir os arquivos MP3, existem soluções muito populares como o Windows Media Player da Microsoft e o Winamp[19] da Nullsoft. Todos estes programas possuem similares em plataformas Linux e Machintosh.

43 Capítulo 3 Este capítulo mostra as tecnologias envolvidas para a viabilização da solução proposta neste estudo. Apresenta a linguagem de programação utilizada, as tecnologias envolvidas nesta linguagem, o Sistema Gerenciador de Banco de Dados e o Servidor Web que disponibiliza a aplicação.

44 Capítulo 3 Tecnologias Envolvidas Tecnologias Envolvidas Neste capítulo serão abordadas as linguagens, Sistemas Gerenciadores de Bancos de Dados (SGBD) e outras tecnologias aplicáveis ao protótipo descrito no capítulo seguinte. Para tanto será discutida a linguagem Java e suas tecnologias de interesse para o trabalho, juntamente com o SGBD Oracle 9i, utilizado para o armazenamento dos arquivos de áudio. Finalizando, será apresentada uma descrição do servidor Web Tomcat, usado para disponibilizar a solução na Internet A Linguagem escolhida A linguagem que foi escolhida para implementação deste trabalho foi Java[28], usando a tecnologia de servlets. Java é uma linguagem de programação orientada a objetos desenvolvida pela Sun Microsystems. Modelada depois de C++[61,62], a linguagem Java foi projetada para ser pequena, simples e portável a todas as plataformas e sistemas operacionais, tanto o código fonte como os binários. Esta portabilidade é obtida pelo fato da linguagem ser interpretada, ou seja, o compilador gera um código independente de máquina chamado byte-code. No momento da execução este byte-code é interpretado por uma máquina virtual instalada no sistema de computação. Assim, para portar uma aplicação Java para uma arquitetura de hardware específica, basta instalar a máquina virtual (interpretador). Além de ser integrada à Internet, Java também é uma excelente linguagem para desenvolvimento de aplicações em geral[31], dando suporte ao desenvolvimento de software em larga escala, especialmente com a plataforma J2EE[60]. Esta linguagem trabalha com dois tipos básicos de programas-objeto: os aplicativos e os applets. Os applets são programas escritos de maneira adaptada para serem instalados e executados dentro de um navegador de Internet. Os aplicativos são programas mais gerais, tais como os que são desenvolvidos em outras linguagens, não requerendo navegadores de Internet para serem executados, mas necessitando da máquina virtual Java instalada localmente.

45 Flávio Ferry de Oliveira Moreira 35 As principais características encontradas na linguagem Java[39] são: Parecida com C, C++: Java tem a aparência de C[63] ou de C++, embora a filosofia da linguagem seja diferente. Por este motivo as comparações com alguma destas linguagens são inevitáveis. Java também possui características herdadas de muitas outras linguagens de programação: Objective-C[64], Smalltalk[65], Eiffel[66] e Modula-3[67,68]. Muitas das características desta linguagem não são totalmente novas. Java é uma feliz união de tecnologias testadas por vários centros de pesquisa e desenvolvimento de software. Compilada: Um programa em Java é compilado para o chamado byte-code, conforme explicado anteriormente, que é próximo das instruções de máquina, mas não de uma máquina real. O byte-code é um código de uma máquina virtual idealizada pelos criadores da linguagem. Por isso Java pode ser mais rápida do que se fosse simplesmente interpretada. Portável: Java foi criada para ser portável. O byte-code gerado pelo compilador para a sua aplicação específica pode ser transportado entre plataformas distintas que suportam Java (Solaris 2.3 [69], Windows-NT [34], Windows-95 [34], Mac/OS[70]). Não é necessário recompilar um programa para que ele rode numa máquina e sistema diferente ao contrário do que acontece, por exemplo, com programas escritos em C e outras linguagens. Esta portabilidade é importante para a criação de aplicações para a heterogênea internet. Em Java um inteiro, por exemplo, tem sempre 32 bits, independentemente da arquitetura. O próprio compilador Java é escrito em Java, de modo que ele é portável para qualquer sistema que possua o interpretador de byte-codes. Um exemplo de programa escrito em Java é o navegador hotjava[71].

46 Capítulo 3 Tecnologias Envolvidas 36 Orientada a Objetos: A portabilidade é uma das características que se inclui nos objetivos almejados por uma linguagem orientada a objetos. Em Java, ela foi obtida de maneira inovadora com relação ao grupo atual de linguagens orientadas a objetos. Essa linguagem suporta herança, mas não herança múltipla. A ausência de herança múltipla pode ser compensada pelo uso de herança e interfaces, onde uma classe herda o comportamento de sua superclasse além de oferecer uma implementação para uma ou mais interfaces. Java também permite a criação de classes abstratas. Segura: A presença de coleta automática de lixo, evita erros comuns que os programadores cometem quando são obrigados a gerenciar diretamente a memória (C, C++, Pascal ). A eliminação do uso de ponteiros, em favor do uso de vetores, objetos e outras estruturas substitutivas traz benefícios em termos de segurança. O programador é proibido de obter acesso à memória que não pertence ao seu programa, além de não ter chances de cometer erros comuns tais como reference aliasing e uso indevido de aritmética de ponteiros. Estas medidas são particularmente úteis quando se objetiva aplicações comerciais desenvolvidas para a Internet. Ser fortemente tipada também é uma vantagem em termos de segurança, que está aliada a eliminação de conversões implícitas de tipos de C++. A presença de mecanismos de tratamento de exceções torna as aplicações mais robustas, não permitindo que elas abortem, mesmo quando rodando sob condições anormais. O tratamento de exceções será útil na segunda parte para modelar situações tais como falhas de transmissão e formatos incompatíveis de arquivos, por exemplo.

47 Flávio Ferry de Oliveira Moreira 37 Suporta concorrência: A linguagem permite a criação de maneira fácil, de vários threads [72] de execução. Este tópico será útil quando o trabalho é com animações, e é particularmente poderoso nos ambientes em que aplicações Java são suportadas, ambientes estes que geralmente podem mapear os threads da linguagem em processamento paralelo real. Eficiente: Como Java foi criada para ser usada em computadores pequenos, ela exige pouco espaço, pouca memória. Java é muito mais eficiente que grande parte das linguagens de script existentes, embora seja cerca de 20 vezes mais lenta que C, o que não é um marco definitivo. Com a evolução da linguagem, serão criados geradores de byte-codes cada vez mais otimizados que trarão as marcas de performance da linguagem mais próximas das de C++ e C. Além disso, um dia Java permitirá a possibilidade de gerar código executável de uma particular arquitetura on the fly, tudo a partir do byte-code. Suporte para programação de sistemas distribuídos: Java fornece facilidades para programação destes sistemas com: sockets[46], remote method call e tcp-ip Tecnologias Java Envolvidas Dentre as muitas tecnologias suportadas pela Linguagem Java, duas merecem atenção por sua importância e utilização neste trabalho: Servlets e Java Server Pages Servlets Os servlets[59] são classes Java que são instanciadas e executadas com servidores Web, atendendo a requisições de navegadores que usam o protocolo HTTP[46]. Uma vez acionado, o servlet executa e monta a resposta a ser enviada para o navegador. Esta pode ser HTML[74] ou qualquer conteúdo MIME[73]. Além de servidores Web, os servlets também

48 Capítulo 3 Tecnologias Envolvidas 38 contam com capacidade de acessarem outros servidores como: de banco de dados e de arquivos, por exemplo. Trabalham independentemente de plataformas ou de protocolos. Os servlets são tipicamente usados na construção de sites dinâmicos, ou seja, aqueles sites cujo conteúdo de algumas páginas é construído no momento em que ocorrem as requisições HTTP. Assim, é possível criar páginas personalizadas pelo usuário, atualizadas automaticamente ou ainda com conteúdo vindo de um banco de dados[32]. A Interface dos servlets na verdade é uma API onde os serviços por eles prestados ficam armazenados em forma de container. O container é um ambiente Java que gerencia as requisições e providencia as respostas, provendo os serviços de rede necessários para tais operações. Tipicamente, existe apenas uma instância no servlet, mas o container pode criar vários threads, de modo que uma instância servlet pode atender a mais de uma requisição simultaneamente[33]. Uma vez criado e instalado em um servidor que o suporte, o servlet é iniciado ao receber sua primeira requisição, ficando executando até que o servidor Web tenha sua execução interrompida. Geralmente, cada requisição direcionada a uma instância de servlet é tratada por um thread sobre a instância de servlet. Isto quer dizer que a cada nova requisição, um novo thread é criado para tratá-la. O fato de threads serem criados no lugar de processos torna o servidor menos sobrecarregado, pois estes costumam ser mais leves que os processos. A figura 3.1 resume a tecnologia de servlets explicada acima. Usuário 1 Usuário 2 Requisições thread1 thread2 Servlet Servidor Web com suporte a Servlets Fig 3.1 Funcionamento dos Servlets Integrado a um Servidor Web JSP (Java Server Pages) Este recurso de Java, na realidade, é uma linguagem de script que foi criada com o objetivo de facilitar o desenvolvimento de sites dinâmicos com os recursos da linguagem,

49 Flávio Ferry de Oliveira Moreira 39 inclusive o uso de servlets para processar requisições. Esta preocupação de JSP é bastante prática, pois se na equipe de desenvolvimento de um site tem um Webdesigner que não entende nada de Java e um programador que não tem muitas habilidades com design, as alterações no formato do site têm que ser feitas de forma que um dos dois tenha que entrar na área do outro. Pensando em agilizar estas equipes, a SUN Microsystems criou a linguagem JSP, que são páginas HTML com código Java inserido e outros tags especiais. Sendo assim, o webdesigner pode criar suas artes e depois o programador apenas insere os tags com elementos Java adequados para a realização da tarefa. Quando a Sun lançou Java no mercado, a linguagem tinha o propósito de gerar pequenos programas locais (stand-alone) nomeados Applets, incrementando assim funcionalidades ao navegador do cliente. Entretanto, em 1996 a Sun lançou a linguagem Java para adicionar dinamismo ao lado do servidor: os Servlets. E o JSP veio para integrar todas essas tecnologias. O enlace entre uma página JSP e seu correspondente servlet se realiza por meio de duas classes contidas dentro do pacote javax.servlet.jsp classes de um pacote destinado à manipulação de servlets. Essas duas classes são JSPPage e HttpJspPage que permitem criar a interface de JSP compilada, ou dito de outra maneira, a partir do servlet. Alguns métodos possuem leves diferenças daqueles associados aos servlets tradicionais. A finalidade desses métodos é: inicialização, destruição e determinação do tipo de serviço que se chama por parte do cliente[38]. As páginas em JSP acessam objetos comuns, que são divididos em escopos, tais como segue: De página (page) - Os objetos se declaram nesse nível são só acessíveis dentro da página onde foram criados. As referências dos objetos criados com alcance de página se armazenam em outro objeto denominado pagecontext; De requisição (request) - Nesse caso os objetos declarados nesse nível são acessíveis por todas as páginas que vão processar a mesma requisição. As referências criadas sobre esse objetos se armazenam no objeto request; De sessão (session) - Os objetos com alcance de sessão são acessíveis por todas aquelas páginas que estão processando requisições dentro da mesma

50 Capítulo 3 Tecnologias Envolvidas 40 sessão na qual o objeto foi criado. As referências dos objetos criados se armazenam dentro do objeto session; De aplicação (aplication) - É o nível mais alto no sentido de que os objetos criados nesse nível são acessíveis por todas as páginas que processam requisições dentro da mesma aplicação. As referências se armazenam no objeto application. Toda página JSP se compõe de dois elementos básicos: as diretivas (directives) e as ações (actions). As diretivas são utilizadas para proporcionar informação global à página JSP, quer dizer, servem para estabelecer determinados valores que são válidos independentemente das requisições que a página receba. Esses valores são utilizados para indicar à máquina Java como deve gerar a página. Está disponibilizada na tabela 3.1 uma série de objetos que se encontram integrados em JSP e que são muito úteis para acessar a determinadas propriedades. Tabela 3.1. Objetos disponíveis em JSP OBJETO Request Response Out Session application Config DESCRIÇÃO Corresponde ao HttpServletRequest associado com a requisição, e permite acessar a seguinte informação:os parâmetros que se passam com a requisição, através do método getparameter, o tipo de requisição, ou seja, se é um get, um post. E os cabeçalhos HTTP, como os cookies. Corresponde ao HttpServletResponse associado com a resposta do cliente. É o PrintWriter usado para enviar a saída ao cliente. O uso de out se aplica quase sempre em scriptlets 5 já que as expressões JSP obtém um lugar no stream de saída e por isso raramente se referem explicitamente a out. Esse é o objeto HttpSession associado com a requisição. Corresponde ao ServletContext obtido por meio getservletconfig().getcontext(). Esse é o objeto ServletConfig para a página. 5 Tags especiais de HTML que servem para inserir comandos de linguagens de script.

51 Flávio Ferry de Oliveira Moreira 41 O JSP é um sistema híbrido de templates, ora parecido com o ColdFusion[75], ora como ASP[76], SSJS[77] e PHP[78]. A linguagem padrão utilizada em JSP é Java puro. Mas qualquer tipo de linguagem script pode ser utilizada no lugar de Java, como XML e ColdFusion. As especificações de JSP 1.1 implementam tags especiais que substituem o código Java puro dentro da página JSP[35]. Os servlets e JSP, em 1998, tiveram suas primeiras versões incorporadas ao Java Web Server. A Sun eventualmente lançou a tecnologia dos servlets como uma extensão padrão do Java, e JSP veio em sua primeira versão das especificações API. As novas especificações vieram com o JSP 1.0 em Junho de Então, os recursos Java ficaram montados desta maneira[36]: ClientSide JavaScript Linguagem script que roda no lado do cliente, utilizada para controlar ações, métodos e propriedades do navegador e seus componentes. ServerSide JavaScript (SSJP) Linguagem script que ficou obsoleta com a chegada de JSP. JSP, ASP-based tags Linguagem script que roda no lado do servidor e veio em substituição do SSJS. Permite codificação do método "_jspservice", assim como os servlets. O que não é dito explicitamente pelos autores é que JSP nada mais é que um servlet, ou seja, um JSP pode ser considerado um container para acessar servlets, outras páginas JSP e API, através do JavaBean[79]. JSP, XML-based tags de parâmetros. Linguagem baseada em XML para inclusão de componentes JavaBean e passagem

52 Capítulo 3 Tecnologias Envolvidas 42 JavaBeans Não é exatamente uma variação do Java, pois é Java puro, mas é um tipo de construção seguindo normas estabelecidas pela Sun para acessar sua API. Através desta podese criar componentes reutilizáveis. JavaServlets Os sevlets, assim como as páginas JSP tratam chamadas (request) e respostas (response) de HTTP. A diferença entre JSP e os servlets é que as páginas JSP são mais fáceis de se trabalhar com o front-end do usuário, ou seja, o HTML. JavaApplets Ao contrário dos servlets, os applets rodam no lado do cliente, dentro do navegador do cliente, mais especificamente. Antes mesmo da Sun lançar a versão JSP 1.1, a parceria com a Apache gerou o Projeto Jakarta, permitindo a integração do software de ambas as empresas. Ou seja, este projeto tem como objetivo desenvolver um código aberto (que pode ser melhorado por internautas) para implementar aplicações Java no servidor mais famoso do Linux e Unix, o Apache Server. A Sun então anunciou as plataformas de desenvolvimento Java 2, divididas em 3 categorias: J2SE[80] (versão para PCs stand-alone), J2ME[81] (micro plataforma para palms pilot) e J2EE[60] (versão corporativa). Quando uma página JSP é carregada pela primeira vez pelo container, o código Java é compilado, gerando um servlet que é executado, que por sua vez gera uma página em HTML que é enviada para o navegador. As chamadas seguintes são atendidas diretamente pelo servlet, não sendo mais necessária a sua geração e compilação.

53 Flávio Ferry de Oliveira Moreira 43 A figura 3.2 a seguir ilustra a execução de páginas com JSP, simulando uma primeira execução. Na etapa (1) a requisição é enviada para um servidor Web que a reencaminha para o container Servlet/JSP (etapa 2). Na etapa (3) o container verifica que não existe nenhuma instância de servlet correspondente àquela necessária para a página JSP. Neste caso, a página JSP é traduzida para código fonte de uma classe Servlet que será usada na resposta à requisição. Na etapa (4) o código fonte do servlet é compilado, e na etapa (5) é criada uma instância da classe. Finalmente, na etapa (6) é invocado o método service( ) da instância Servlet para gerar a resposta à requisição. Navegador 1. Requisição de página JSP Servidor Web 6. Resposta à requisição 2. Encaminha a requisição Container Servlet/JSP 3. Traduz Página JSP 5. Instacia e executa Bytecode Servlet 4. Compila Fonte Servlet Fig 3.2 Etapas da primeira execução de uma página JSP[37] O uso de linguagens de script para gerar páginas HTML dinâmicas não é restrito apenas à linguagem Java. Existem outras linguagens bastante usadas para esta finalidade, como por exemplo: PHP e ASP, muito populares. O PHP (Personal Home Pages) é uma linguagem de script para ser executada no lado do servidor, criada em 1994 e atualmente está na versão 4. A sintaxe é baseada em C com elementos de C++, Java e Perl[82]. Possui suporte a orientação a objetos e acesso a Sistemas Gerenciadores de Bancos de Dados. Esta linguagem é menos poderosa que JSP e é indicada para aplicações de porte menor. O ASP (Active Server Pages) é a solução de script para suporte a páginas dinâmicas sugerida pela Microsoft. Esta solução é oficialmente suportada pelo Internet Information

54 Capítulo 3 Tecnologias Envolvidas 44 Server (IIS), servidor web da Microsoft, porém outros servidores Web populares já contam com suporte a essa linguagem, como é o caso da nova versão do Apache. O script ASP segue a sintaxe do Visual Basic, que é linguagem proprietária da Microsoft, tornando seu uso mais restrito. Além disso, JSP é mais portável para outros sistemas operacionais que não sejam Microsoft. As páginas JSP ou Java Server Pages são uma boa tecnologia desenvolvida pela Sun Microsystems como resposta às páginas ASP (Active Server Pages) da Microsoft. A tabela 3.2 mostra as diferenças que existem entre uma e outra tecnologia. Tabela 3.2. Comparativo entre JSP e ASP Características JSP ASP Servidores web disponíveis Plataformas HW Internet Information Server Apache Netscape Disponível em todas as plataformas que exista Java Internet Information Server Personal Web Server Plataformas compatíveis com Win32 Uso de scripts Uso do JavaScript Uso do VBScript e JavaScript Segurança Acesso a bases de dados Personalização de tags Modelo de segurança do Java Através de JDBC Pode ser ampliada através do uso de bibliotecas Modelo de segurança baseado na arquitetura do NT Através de ADO (Active Data Object) Não pode ser ampliada 3.2. O Sistema de Gerenciamento de Banco de Dados Para o controle de acesso e armazenamento das informações, um Sistema de Gerenciamento de Banco de Dados (SGBD) é exigido. Um SGBD é o software que conduz todos os requerimentos dos usuários para acessar Bancos de Dados. Ele controla o armazenamento, retirada e modificação dos dados sob o interesse dos usuários, contendo uma descrição completa dos bancos de dados. Essas informações são armazenadas no catálogo do SGBD, o qual contém a estrutura de cada arquivo, o tipo e o formato de armazenamento de cada tipo de dado e

55 Flávio Ferry de Oliveira Moreira 45 restrições, entre outros. No processamento tradicional de arquivos, o programa que irá manipular os dados deve conter esse tipo de informação, ficando limitado a manipular as informações que o mesmo conhece. Utilizando a abordagem de banco de dados, a aplicação pode manipular diversas bases de dados diferentes. Vantagens dos SGDB[44]: - Consistência e Eliminação da Redundância de Dados - Evitam que os dados estejam duplicados em diversos arquivos diferentes, e cada arquivo correndo o risco de estar com as estruturas diferentes entre si, em decorrência do uso de linguagens diferentes entre os sistemas que manipulam estes arquivos; - Integridade - Mantêm os valores dos dados satisfazendo as exigências das regras de negócio que estão armazenadas no banco de dados. Por exemplo, considere-se que o balanço de uma conta bancária não possa ser menor que R$ 25,00. Usando bancos de dados pode-se colocar estas restrições direto no banco de dados, não sendo necessário alterar os sistemas sempre que uma nova restrição surgir; - Controle de concorrência - O banco de dados garante o controle ao acesso aos dados, quando vários usuários estão tentando acessar os mesmos dados ao mesmo tempo. Por exemplo, dois usuários estão fazendo saques de uma mesma conta bancária, ao mesmo tempo. Esta conta está com saldo de R$ 400,00. O usuário A retira o valor de R$ 50,00, e o usuário B o valor de R$ 100,00. Se o controle não for correto, o saldo poderá ficar igual a R$ 350,00 ou R$ 300,00, quando deveria ser de R$ 250,00; - Controle de Segurança - Garantem o acesso ao banco de dados com mecanismos de senhas, hierarquias e permissões de acesso e execução, por usuário e grupos de usuários. - Recuperação e Backup O mecanismo de recuperação usa a técnica de log (ou journal) que grava informações sobre todas as operações e transações que foram realizadas no Banco de Dados. Os backups realizam cópias físicas dos dados e do log. Estas duas técnicas garantem que os dados sejam recuperados de forma adequada, se algo ocorre ao sistema de computadores ou de arquivos.

56 Capítulo 3 Tecnologias Envolvidas 46 O SGBD aciona também uma interface entre o armazenamento do Banco de Dados (onde e como os dados estão armazenados realmente) e os usuários do Banco de Dados. Quando um usuário lança um requerimento de acesso, o SGBD interpreta o requerimento e realiza a necessária operação no Banco de Dados, caso esta seja permitida aquele usuário[42]. Assim, o SGBD protege o Banco de Dados garantindo a segurança e proteção dos dados contra falhas humanas e das máquinas tornando possível a montagem da política de acesso e manutenção destes dados. Com o passar dos anos, os modelos de SGBD foram evoluindo, desde os hierárquicos, que usavam estruturas de armazenamento em forma de árvores, passando pelos modelos em rede, que faziam uso de grafos mais genéricos que as árvores, chegando até os modelos mais populares que ainda são os mais usados no mundo todo. Entre eles está a relacional, que tem seu armazenamento visto como tabelas e sua teoria baseada na teoria dos conjuntos. Outro modelo que tenta se firmar é o orientado a objetos, o qual está aguardando uma padronização de linguagens de Definição e de Manipulação de Dados. Finalmente, aliando a popularidade e padronização do relacional com a praticidade e integração com as linguagens atuais do orientado a objetos, tem-se os SGBDs objeto-relacionais, que trabalham de maneira relacional, mas sem deixar de dar suporte a armazenamento e manipulação de objetos Oracle 9i Esse SGBD foi o escolhido para a implementação do sistema por alguns motivos, dentre os quais: já existência de um STI em desenvolvimento na Universidade Federal de Pernambuco, o SEI Sistema de Ensino Inteligente, usando este sistema e seu suporte a armazenamento de arquivos binários. Outra razão é a sua liderança de mercado e confiabilidade por ser um dos SGBD com menor histórico de falhas de programação. O Sistema Oracle 9i[40] tem características de banco de dados relacional e, ao mesmo tempo, tem capacidade de trabalhar com orientação a objetos, o que o classifica como banco de dados objeto-relacional[40]. Neste trabalho, o enfoque será mais voltado para as características relacionais do produto.

57 Flávio Ferry de Oliveira Moreira 47 A arquitetura deste banco de dados é baseada na tecnologia cliente-servidor, ou seja, em uma rede de computadores tem-se obrigatoriamente um (ou mais) servidor de banco de dados e estações que são os clientes deste servidor. Esta arquitetura conta com algumas vantagens e desvantagens[41]: Vantagens: - Separação das tarefas de solicitação e processo: solicitação efetuada pela estação de trabalho e o processo no servidor, ou seja: as tarefas de tratar e manipular os dados. O tráfego na Rede diminui sensivelmente, pois são entregues os dados necessários e solicitados pela pesquisa do cliente, e estes depois de tratados são atualizados ao final da transação no servidor. Ao contrário dos Sistemas de Bancos de Dados sem a tecnologia Cliente/Servidor, que disponibiliza todo o banco de dados, indiferente às necessidades reais quando da solicitação pelo Cliente; - Independência da estação de trabalho: os usuários não ficam restritos a um tipo de sistema ou plataforma; - Preservação da integridade dos dados: mesmo quando são efetuados Backups em tempo real ou até a encriptação dos dados. Nestes casos, o SGBD utiliza o espelhamento dos dados enquanto eles são acessados, gravando sempre a última fotografia dos dados antes da cópia de segurança; - Processamento de transações: A grande vantagem deste método é guardar durante um certo tempo as modificações efetuadas no Banco de Dados. Podendo, recuperá-las em caso de queda de energia ou mesmo quando o usuário do Banco desiste da modificação. Desvantagens: - A maior delas é o aumento do custo administrativo e a contratação de pessoal especializado para dar suporte e manter o Banco de Dados sempre ativo. Necessita do profissional Administrador de Bancos de Dados;

58 Capítulo 3 Tecnologias Envolvidas 48 - O aumento do custo de hardware também é significativo, pois parte integrante desta tecnologia Cliente/Servidor[40], exige a distribuição do processamento quando a rede for grande; - Quando da utilização do Processamento Distribuído, a complexidade aumenta, o número de equipamentos diversos também aumenta e nem sempre é fácil encontrar profissionais no mercado com um conhecimento tão diversificado O Ambiente Oracle O SGBD Oracle inclui o Gerenciador de Banco de Dados e várias ferramentas para assessorar os usuários e Administradores de Banco de Dados na manutenção, monitoramento e uso dos Dados. Para realizar as tarefas de manipulação de administração dos dados, o Oracle possui uma série de ferramentas que tornam possível definir e manipular os dados no banco, ou seja, ferramentas que trabalham com as linguagens DDL (Linguagem de Definição de Dados) e DML (Linguagem de Manipulação de Dados). Como segue o padrão relacional, sua linguagem de criação e de manipulação de dados é SQL (Structured Query Language)[83], que é a linguagem adotada universalmente pelos SGBDs relacionais. Dentre as ferramentas e linguagens deste Gerenciador de Banco de Dados, tem-se: SQL*Plus[84], que é o ambiente onde os comandos de SQL podem ser executados agindo sobre o banco de dados. O centro do SGBD é o Kernel, que controla as tarefas: Gerenciar o Armazenamento e Definição dos Dados; Controlar e restringir o acesso aos dados e concorrência; Conceder Backup (Cópia) e retorno dos dados; Interpretar o SQL. Os comandos SQL são usados por todos os programas e usuários para acessar dados no Banco de Dados Oracle. Aplicações e Ferramentas Oracle geralmente permitem aos usuários acessar o Banco de Dados sem que percebam o SQL, mas essas aplicações também

59 Flávio Ferry de Oliveira Moreira 49 precisam usar o SQL quando executam o requerimento do usuário. Assim o Banco de Dados pode ser acessado somente usando o SQL. Uma parte do kernel é o optimiser. O optimiser examina a alternativa dos caminhos para acessar os dados, de modo a encontrar a melhor rota para montar o comando SQL. Existe uma variação de ferramentas adicionais para acessar dados no Banco de Dados. Essas ferramentas incluem desde menu-driven até as de tela e de suporte de interface suportados por várias Linguagens de Programação. PL/SQL[85] é a linguagem procedural SQL do Oracle, composta basicamente por um conjunto de comandos SQL e mais alguns comandos que permitem que o SQL trabalhe de maneira procedural. Quando é usada a SQL, as declarações e procedimentos são enviadas para o SGBD um por vez. Quando a interação é com um bloco PL/SQL ele contém um número de declarações SQL combinadas com PL/SQL, que construídas são enviadas para o kernel numa vez. Essa característica pode melhorar dramaticamente o desempenho em ambiente de trabalho. Esses comandos em PL/SQL fazem parte do kernel. As declarações SQL são processadas pelo executor de declarações SQL, e as outras por partes específicas do SGBD. PL/SQL adiciona processos potentes para aplicações e ferramentas de desenvolvimento como SQL*Forms[40]. Por outro lado, aplicativos escritos em PL/SQL são portáveis para vários tipos de computadores ou Sistemas Operacionais, os quais podem executar um SGBD Oracle dando suporte a PL/SQL. O SGBD Oracle em sua versão mais recente, a 9i (que está aplicada neste trabalho), foi lançado com suporte para as funcionalidades[43]: Desenvolvimento de aplicações, Gerenciamento de Conteúdo de Internet, Integração de Dados, Disponibilidade, Gerenciabilidade, Plataforma de Inteligência de Negócios, Escalabilidade com bom desempenho, Segurança e Integração com o Windows Para desenvolvedores de aplicações, o Oracle disponibiliza suporte para[43]: XML, Enterprise Java Engine, novas implementações de SQL e PL/SQL e Globalização. No plano das características próprias do Oracle 9i, observa-se ferramentas e recursos de segurança e integridade, disponibilidade, escalabilidade, portabilidade, encriptação de

60 Capítulo 3 Tecnologias Envolvidas 50 dados, Oracle Internet Directory, integração de dados, suporte a banco de dados distribuídos, suporte a ferramentas de Datamining, suporte a XML (extensible Markup Language) e desenvolvimento multi-camadas. Detalhando as características mais importantes, tem-se: Tuning Dinâmico e Reparos de Banco de Dados: estas características permitem ao Administrador de Banco de Dados fazer ajustes de alocação de espaço dinamicamente para o bom funcionamento do sistema. Além disso, se ocorrer algum problema que venha a corromper os dados, a técnica de reparos precisos é capaz de recuperar dados mesmo que a tabela esteja online. O banco é restaurado para um estado consistente (o mais recente estado consistente) graças ao uso do LogMiner. Nos casos de configurações maiores é usado também um nó de backup (espelhamento do Banco de Dados); A Disponibilidade é garantida pelo mecanismo de proteção contra erros de conexão, novamente com o auxílio do LogMiner. Montando uma FlashBack Query, o usuário também é capaz de desfazer uma alteração do banco de dados, obrigando-o a voltar no tempo analisando o log de transações; Escalabilidade e Portabilidade são garantidas nessa plataforma: o servidor pode ser escalável de acordo com a demanda pelos seus serviços e a portabilidade vem do fato de aplicações em diversas plataformas serem capazes de acessar dados do Oracle de maneira transparente, sem precisarem ser reescritas, ou que haja qualquer alteração nas plataformas de hardware e software das estações envolvidas. O controle de múltiplas versões executando concorrentemente também é feito nessa nova versão; A segurança é um fator muito importante: aplicações que são executadas via Internet, redes internas de corporações sem muitos mecanismos de segurança, não podem ser motivo para que os dados armazenados fiquem vulneráveis. O Oracle 9i apresenta características importantes de segurança de dados que incluem: segurança em três camadas, padrões baseados em infra-estrutura de chave pública, Deep Data Protection, gerenciamento de usuários, encriptação de dados e serviços de diretório. Todos estes

61 Flávio Ferry de Oliveira Moreira 51 mecanismos são usados em conjunto para garantir a maior segurança possível aos dados armazenados pelo SGBD Oracle 9i; Este Gerenciador de Bancos de Dados também conta com serviços de integração de dados: através dos Streams do Oracle 9i, é possível manter réplicas, datawarehouses e datamarts, bancos de dados tradicionais, aplicações de mensagens e um datastore operacional. Estes recursos facilitam o uso de SQL distribuída, com características importantes de transparência mantidas. Também as Streams são aplicáveis nos processamentos OLTP (On-Line Analitical Processing)[40, 88] e DataMining[86, 87]. No tocante a Plataforma de Desenvolvimento: essa nova versão do Oracle dá suporte ao armazenamento dos mais diferentes tipos de dados, desde os tradicionais dados relacionais, passando pelos objetos como imagens, áudio, vídeo, textos, gráficos e objetos com estruturas complexas diversas. Os dados também são preparados para aplicações via Internet: o suporte a XML[89] interage com aplicações Web, o desenvolvimento pode ser armazenado em PL/SQL ou Java e ser acessado por qualquer linguagem de programação com suporte a acesso a Bancos de Dados. Passa a existir também o suporte a PL/SQL server pages[90], que são páginas de Internet com comandos PL/SQL embutidos. Como alternativa mais barata para esta solução, poderia ser usado também um dos bons SGBD gratuitos, como o Interbase[116] ou o MySQL[115], pois estes sistemas também contam com suporte a armazenamento de campos blob e contam com bons recursos de segurança e manutenção de auto-incremento. A escolha do Oracle foi também motivada pelo seu uso no STI já implementado no Centro de Informática da Universidade Federal de Pernambuco.

62 Capítulo 3 Tecnologias Envolvidas O Servidor Web Cerca de 22 anos depois da criação da Internet, Tim Bernes-Lee[93] propõe um novo sistema baseado em busca de informações por hipertexto[91], que são textos contendo elementos que ligam o documento atual a outros documentos, sendo a área que é sensível ao clique do mouse conhecida como âncora. Dois anos depois, Marc Andreesen[92] lança um programa navegador de hipertextos compatível com o protocolo HTTP (Hypertext Tranfer Protocol): o Mosaic. Este é o relato do nascimento do serviço da Internet que ficou popularizado pelo nome de World Wide Web (teia de aranha de alcance global), que muitas vezes é referenciado de maneira resumida por Web[45]. Os documentos apresentados na Web não têm um formato rígido a ser seguido, mas a presença de alguns arquivos codificados em HTML (Hypertext Markup Language), ou alguma outra linguagem também derivada de SGML (Standard General Markup Language)[94] são sempre bem-vindos, pois os servidores e navegadores sempre buscam preferencialmente este tipo de arquivo. Mas qualquer tipo de arquivo pode trafegar pelo HTTP, desde que haja uma especificação de tipo através de uma solicitação do navegador via comando HTML, que o servidor responde enviando o tipo de arquivo requerido. Esta estrutura toda é baseada na arquitetura cliente-servidor, portanto sendo o navegador o programa cliente, do outro lado existe o programa servidor, o chamado servidor Web. Dentre os muitos servidores Web existentes no mercado, um será de interesse para este trabalho: o Tomcat[47], servidor desenvolvido pela equipe do Apache Web Server[95], de uso livre e que conta com a característica de dar suporte às tecnologias Java necessárias para a execução deste trabalho: Servlets e JSP Apache Tomcat A SUN, através do Java Community Process[96], define as especificações das tecnologias Java e O Projeto Apache Jakarta [97] desenvolve as implementações dentro de um servidor web chamado Tomcat. Este servidor é o container usado como referência oficial da SUN para a implementação das tecnologias Java Servlets e Java Server Pages. Sua origem vem do

63 Flávio Ferry de Oliveira Moreira 53 Jserv[98], que foi um servidor desenvolvido pela próprios criadores do Java. Este pequeno servidor foi concebido tanto para ser executado em modo isolado, que é ideal para fazer desenvolvimento e depurações de aplicações que necessitem das tecnologias a que dá suporte, quanto também pode ser usado em um contexto maior, integrado a um outro servidor Web. Atualmente existe a possibilidade de integrá-lo ao Apache, Microsoft Internet Information Services e Netscape Web Server[58]. Este servidor possui Máquina Virtual Java própria e por isso é capaz de tomar arquivos com scripts JSP e com Servlets e executá-los, disponibilizando seus serviços. A configuração deste servidor é simples e baseada em arquivos no formato XML. São basicamente dois arquivos: o server.xml e o web.xml. A função do arquivo server.xml é configurar padrões como: uso do servidor Tomcat em conjunto com outro servidor, seja ele Tomcat ou não; os diretórios que servirão de base para a execução da aplicação; configurações do TCP/IP, detalhes a nível de porta e outros parâmetros. Já o arquivo web.xml é o responsável por configurações de contexto para cada aplicação que executa baseada no Tomcat. Uma especificação completa de cada função que pode ser implementada por este arquivo é encontrada em [59], nas especificações de Servlets da SUN. Na prática, este arquivo é utilizado no Tomcat em dois diretórios distintos: no conf para especificar todos os contextos de execução de servlets e JSP e outro web.xml pode ser encontrado no diretório WEB-INF de cada aplicação, ou contexto, para definir as configurações mais especificas para este contexto. A primeira versão do Tomcat foi a 3.0.x, que já suportava as novas tecnologias Java. Sendo a de Servlets especificação 2.2 e a de JSP especificação 1.1 Algumas correções de bugs foram feitas em novos releases, alguns recursos foram implementados, como na versão 3.1.x onde foi adicionado o suporte a arquivos WAR e conectores compatíveis com os servidores Web da Netscape e da Microsoft (os IIS Internet Information Services). Evoluindo para a versão 4.x, o Tomcat passa a dar suporte à especificação 2.3 de Servlets e 1.2 de JSP. Além de dar suporte a algumas novas tecnologias, existe um novo container de servlets denominado Catalina[99], que foi desenvolvido para prover flexibilidade e bom desempenho. O compilador de páginas JSP, o Jasper[100], foi reescrito e o suporte a XML aprimorado. A última versão disponível ainda esta no estágio alpha, a que dá suporte a servlets na especificação 2.4 e JSP na especificação 2.0[47].

64 Capítulo 3 Tecnologias Envolvidas 54 Este trabalho utiliza o Tomcat versão 4.0, devido ser uma das versões atualmente estáveis e ainda fazer parte do pacote JBuilder 7 Enterprise da Borland[48], ferramenta usada como ambiente Java que tem suporte nativo para o servidor Tomcat e suas tecnologias. Este servidor é capaz de dar suporte a toda a nova tecnologia Java usada nesta implementação. A configuração deste servidor é fácil, através de uma estrutura de diretórios e um arquivo em XML que serve de reorientador para as denominações e localizações de servlets e outros recursos necessários. Sua execução está em plataforma Microsoft Windows 2000, mas poderia ser também executado em ambiente Unix. No momento, não há necessidade de integrá-lo a outro servidor Web, mas se isto for necessário, para efeitos de aproveitamento do módulo em diversos outros Sistemas Tutores Inteligentes, este servidor interage com Apache Web Server, Microsoft Internet Information Server e Netscape Web Server.

65 Capítulo 4 Esse capítulo apresenta o protótipo implementado - o AulaSom - e seus detalhes de projeto, implementação e funcionamento.

66 Capítulo 4 O Protótipo AulaSom O Protótipo AulaSom Neste capítulo serão descritos os aspectos de implementação do protótipo que torna possível mostrar na prática a possibilidade de adição de áudio das aulas em um Sistema Tutor Inteligente. Também serão descritos resultados de alguns testes realizados com a parte funcional da aplicação. No final do capítulo estão as conclusões sobre esta solução implementada Arquitetura de software Para propor uma implementação que torne possível a prática do uso de som em um STI, foi usada a linguagem Java, juntamente com seus recursos de Servlets[59] e JSP[35]. Para ser aplicada na prática, esta implementação requer apenas que o professor tenha um programa de gravação de áudio, que suporte a compressão MPEG-Layer 3 (MP3)[20], e um navegador de Internet que suporte scripts e linguagem Java. O aluno deverá ter apenas um navegador de Internet semelhante ao do professor e um programa que seja capaz de reproduzir arquivos de áudio MP3, tais como Netscape Communicator[53] e Internet Explorer[54]. No lado do servidor, a solução está baseada em JSP, Servlets e SGBD Oracle 9i. Sendo os JSP e Servlets executados pelo servidor web Tomcat[58]. Todos eles foram abordados no capítulo anterior. A Visão mais geral do funcionamento deste módulo pode ser vista na figura 4.1 que representa o diagrama de caso de uso (Use-Case) da solução aqui apresentada, criado com o auxílio da ferramenta Rational Rose da Rational Corporation[103].

67 Flávio Ferry de Oliveira Moreira 57 Professor inserearquivosom (f rom Actors) consultasomaula Sistema Aluno Figura 4.1. Diagrama de Caso de Uso da Solução Apresentada 4.2. Aspectos de Implementação O protótipo, no lado servidor, foi desenvolvido seguindo o modelo de três camadas, conforme mostrado na figura 4.2. Servidor Web Tomcat 4.0 JSP Fachada Classes de Negócios 1. Interface com o usuário 2. Lógica da aplicação Classes de Dados Classes Básicas Acesso via JDBC SGBD Oracle 9i 3. Dados e funcionalidades Figura 4.2. Arquitetura de Software do Protótipo Esta arquitetura foi montada de acordo com [117] e suas definições a respeito do modelo de três camadas para aplicações na Web.

68 Capítulo 4 O Protótipo AulaSom 58 Seguindo este modelo de camadas, a implementação constituiu-se de: criar a tabela para armazenar os arquivos no Banco de Dados, implementar as camadas Fachada e os JSPs e configurar o servidor Web. A camada JSP é usada diretamente pelo navegador do cliente, seja no módulo de envio de arquivos, função a ser disponibilizada aos professores e criadores de conteúdo para o Sistema, ou na função de consulta, módulo a ser disponibilizado aos alunos cadastrados. Esta camada JSP faz uso da camada Fachada, onde estão encapsulados os comandos encarregados de fazer a conexão com o Banco de Dados e as operações de Inclusão, Exclusão e Consulta, o que torna o uso do sistema mais seguro e transparente para o cliente. Ainda na classe Fachada, existem métodos que desempenham papéis importantes como é o caso de writetoblob( ) e writetofile ( ). O primeiro método serve para capturar os bytes que foram recebidos pelo servlet MultipartRequest, que será mostrado mais adiante, e inserí-los em uma variável tipo BLOB para posterior inserção no banco de dados. O segundo método tem sua função requisitada durante as operações de consulta, seu mecanismo consiste em fazer a leitura do campo BLOB do banco de dados e transformá-lo em um arquivo binário que possa ser aberto pelo usuário na forma de um hiperlink. Este arquivo que é criado em caráter temporário, tem sua vida delimitada pela classe de negócios MyListener, que foi implementada para interagir com o servidor Web Tomcat. A atuação da classe MyListener baseia-se em dois eventos que são disparados pelo Tomcat: sessioncreated( ) e sessiondestroyed( ), com as funções respectivas de detectar e identificar a sessão que o navegador do cliente criou e o outro método com a função de detectar a sessão que expirou. O tempo para que a sessão expire, chamado time-out, pode ser definido via parâmetro de configuração do servidor Tomcat, no seu arquivo web.xml. O processo de gerenciamento de arquivos temporários é bastante simples: quando uma sessão é iniciada o identificador desta sessão é carregado em uma variável pública da classe MyListener, caso a operação seja de consulta e esta retorne algum arquivo na forma de link para o usuário, o arquivo é criado num diretório temporário e, ao nome deste arquivo, é adicionado o identificador da sessão como se fosse uma assinatura de propriedade do arquivo. Quando o tempo desta sessão expirar, o método sessiondestroyed( ) da classe MyListener, faz uma busca no diretório temporário e elimina todos os arquivos cujo nome seja iniciado com o

69 Flávio Ferry de Oliveira Moreira 59 identificador da sessão que acabou de ser destruída. Sendo assim, não ficam arquivos gravados inutilmente no servidor da aplicação. Nesta solução, os arquivos temporários foram necessários por uma razão básica: em caso de um retorno de múltiplos arquivos a uma consulta, o usuário ter condições de optar por qual arquivo quer ouvir. Para evitar a redundância no lado do servidor, ainda que por um intervalo de tempo curto, estes arquivos temporários poderiam ser gravados na máquina do usuário do sistema. Porém, esta solução não se mostra ser ideal porque muitos usuários ainda possuem acesso lento a redes como a Internet, uma vez que o acesso discado mais comum nos dias atuais está na velocidade dos 56 kilobits por segundo. Este fato deixa claro que uma consulta que retorne pelo menos dois arquivos de áudio de tamanho aproximado de quatro megabytes cada um poderia levar uma boa fração de hora para ser armazenada de maneira temporária no computador do usuário final. Influenciando ainda mais de maneira negativa a esta solução, seria o fato de mesmo o usuário tendo a paciência de ter esperado pela chegada de todos os arquivos temporários necessários, nenhum deles satisfizer o seu real interesse. Sendo este armazenamento temporário feito no próprio servidor, as respostas chegam ao usuário de maneira mais rápida e a conexão deste com a rede passa a ser mais ocupada apenas quando houver a decisão de ouvir um dos arquivos. A ferramenta usada para a implementação foi o JBuilder, versão Enterprise 7.0[48], por se tratar de um ambiente de programação mais amigável, funcionando em ambiente gráfico. Além disso, esse ambiente de programação Java conta com integração com o servidor Web utilizado na arquitetura proposta, dando suporte a JSP e Servlets. Dentre as classes de negócios, foi incorporada a biblioteca MultipartRequest[50, 51], disponível no site Servlets.com[49]. A função dessa biblioteca, que na verdade é também um servlet, é permitir operações de upload de arquivos a partir do navegador do cliente para o servidor. Essa operação a princípio seria trivial, se fosse suposto que os professores e produtores de conteúdo para o sistema tivessem bastante familiaridade com os comandos do serviço de transferência de arquivos pela Internet, o FTP[46]. Porém, essas operações não chegam a ser tão simples assim, ainda mais se fazendo em seguida à transferência, a inclusão desses arquivos em um banco de dados. Sendo assim, a biblioteca citada interage com um

70 Capítulo 4 O Protótipo AulaSom 60 formulário do navegador Web e faz a transferência automática do arquivo da máquina do cliente para o servidor. Chegando lá, o arquivo já é tratado por código Java específico para inserí-lo no Banco de Dados, sem a necessidade de gravação em um diretório do servidor para posterior inclusão no referido Banco de Dados. Nas classes de dados, a tecnologia usada para interação com o Sistema Gerenciador de Banco de Dados foi JDBC[101], que é padrão da linguagem Java. Bastou fazer uso do driver específico para o banco de dados Oracle 9i, que é disponibilizado pela própria Oracle Corporation[52], e realizar algumas tarefas de configuração da conexão e da sessão do banco de dados. Finalmente, as classes básicas da arquitetura proposta são as classes fundamentais da linguagem Java, que permitem instruções de entrada e saída, além de processamento de eventos, dentre outras operações. A figura 4.3 mostra o Diagrama de Classes desta proposta de arquitetura. paginacadastro uploader.js p Descricao by tes main() Consulta.jsp Descricao main() retornoc onsulta paginacons ulta Fac hada multipartrequest Descricao Arquiv o Codigo abreconexao() inseredados() consultadados() apagadados() writetofile() writetoblob() f echaconexao() My Listener sessao sessioncreated() criapref ixo() sessiondestroy ed() jav a.sql.* jav a.util.* jav a.io.* Figura 4.3. Diagrama de Classes do AulaSom

71 Flávio Ferry de Oliveira Moreira 61 Além dos aspectos implementados, a solução foi criada a partir do modelo Java Singleton[102], modelo este que permite o fornecimento de um ponto de acesso global. Isto torna o uso do sistema mais confiável, pois os arquivos multimídia são de tamanhos maiores e sua manipulação requer mais recursos computacionais por parte do servidor da aplicação. A outra característica deste modelo, que trata de assegurar que cada classe tenha apenas uma instância, não foi utilizada nesta solução. Quanto ao funcionamento do protótipo, a figura 4.4 mostra o diagrama de seqüência que exibe o mecanismo de ação da solução implementada. Para tanto, supõe-se que as ações básicas de autenticação de usuário e definição de direitos de acesso já estejam previamente definidas no STI onde este módulo for implantado. Menu inicial Cadastro Exclusão Consulta Retorno da operação 1. seleção de opção 2. resposta do sistema Figura 4.4. Diagrama de Seqüência do Funcionamento do Protótipo 4.3. Dicionário de Dados Na interação com o Sistema de Gerenciamento de Banco de Dados, apenas uma tabela se faz necessária para que este módulo funcione: é a tabela chamada SOM, cuja estrutura está detalhada na tabela 4.1 a seguir.

72 Capítulo 4 O Protótipo AulaSom 62 Tabela 4.1. Dicionário de Dados para a Tabela SOM SOM Nome do Campo Tipo Tamanho Propriedade Código Number Chave Primária Descrição Varchar2 100 Requerido Conteúdo BLOB Requerido Esta tabela pode ser adicionada à base de dados de qualquer Sistema Tutor Inteligente(STI), e os arquivos JSP com as bibliotecas de Java são usados para tornar o STI em questão hábil para prover suporte ao som da aula. Quanto aos tipos dos campos da tabela, tem-se que o inteiro serve como chave primária. Esta chave código é gerada e gerenciada pelo próprio SGBD Oracle, através de seu recurso de seqüências. A descrição do arquivo é do tipo varchar2 e serve para ajudar a localizar conteúdos inseridos no banco de dados, enquanto que o conteúdo do arquivo de som é armazenado em um campo tipo BLOB, cujo limite chega aos 3 gigabytes, sendo portanto um campo bastante adequado para armazenar conteúdos de áudio, e num futuro trabalho, vídeo também. O fato dos três gigabytes serem a capacidade do BLOB não significa que qualquer inclusão de elementos menores alocará três gigabytes. A alocação é feita de acordo com a necessidade de armazenamento. Neste protótipo, existe ainda o fato de ser usado o navegador de Internet e recursos de upload, portanto a classe responsável por esta operação também influencia neste armazenamento. Atualmente, a classe MultipartRequest está limitada, por configuração, a arquivos de tamanho máximo de dez megabytes, com este tamanho de arquivo, para uma gravação de voz em boa qualidade, conforme discutido no capítulo dois, pode significar até uma hora de discurso. Além do mais um arquivo que passa de um megabyte tende a demorar alguns minutos para ser acessado pela Internet discada, dez megabytes provavelmente é o limite de paciência da maioria dos internautas que usam conexões deste tipo Recursos de Hardware e Software Básico Este módulo, em seu lado servidor, requer o hardware capaz de executar o servidor web, Jackarta-Tomcat, com suporte a Servlets e JSP: um PC com Linux[57] ou com Microsoft Windows 2000 (ou superior). Como a base de dados está em Oracle, um servidor

73 Flávio Ferry de Oliveira Moreira 63 deste banco de dados é necessário. É desejável que seja uma máquina específica a este fim, pois executar os dois servidores na mesma máquina pode causar prejuízos no desempenho da aplicação ou do SGBD. No site oficial da Oracle Corporation[52] existe a especificação de qual hardware é necessário para executar a versão mais recente do SGBD Oracle. No lado cliente, o hardware necessário é um PC típico para acessar Internet, desde que tenha placa de som e caixas acústicas (ou fones de ouvido) e, para o produtor de conteúdo, também é necessário ter um microfone Programas Auxiliares Na máquina do cliente desta aplicação, ainda é necessário o uso de alguns programas auxiliares. Para produzir o material (o arquivo de som), o professor (produtor de conteúdo) deverá usar um programa de gravação de som. Existem muitos destes programas distribuídos livremente na Internet. Porém o mais comum é o gravador de som do sistema operacional Windows da Microsoft, ilustrado na figura 4.5. Basta ter o cuidado de, ao salvar o arquivo, selecionar o formato MPEG Layer 3. Ainda é possível também neste momento escolher a quantidade de amostras por segundo, a quantidade de bits (8 ou 16) e o padrão do arquivo: se estéreo ou mono. Para efeitos de otimizar o aproveitamento dos dez megabytes disponibilizados para cada arquivo desta aplicação, a recomendação para voz seria de um arquivo MP3 mono de 8 bits com amostras por segundo, a economia de espaço é alta e a qualidade do som é bastante aceitável. Qualquer padrão abaixo deste torna o som parecido com uma ligação telefônica de qualidade ruim, ou até pior que isso. Figura 4.5. Gravador de Som do Microsoft Windows

74 Capítulo 4 O Protótipo AulaSom 64 Ainda no lado cliente, o aluno (pessoa habilitada a consultar os sons), deverá ter também um programa auxiliar para reprodução dos arquivos que chegarão pela Internet. Os navegadores mais populares, como Internet Explorer[54] e Netscape[53] em suas versões mais recentes (6.0 e 7.0 respectivamente), contam com programas reprodutores de arquivos MP3 incorporados aos seus pacotes de instalação e integrados a suas interfaces. O Internet Explorer é integrado ao Windows Media Player, mostrado na figura 4.6, que também é um produto pertencente à Microsoft[34]. Já o Netscape 7.0 traz o programa WinAmp[19], ilustrado na figura 4.7, como opcional para ser instalado e integrado à sua interface. Caso este não seja instalado, o navegador passa a reproduzir estes arquivos de som usando o programa que estiver associado pelo sistema operacional a este tipo de arquivo. Além da versão para Microsoft Windows, o Navegador Netscape ainda é distribuído em versões compatíveis com os sistemas MacOS (Machintosh)[55] e Linux, sendo o suporte à reprodução de MP3 nestes sistemas garantido por programas que normalmente já acompanham as distribuições destes sistemas operacionais. No caso do MacOS versão X, por exemplo, o programa de MP3 é o QuickTime versão 6[56] (que já suporta até o novo formato conhecido por MP4[105]). No caso do Linux, vários programas para reproduzir MP3 são disponibilizados em suas mais diversas distribuições. Alguns até com código-fonte disponível para ser modificado e recompilado. Figura 4.6. Microsoft Windows Media Player

75 Flávio Ferry de Oliveira Moreira 65 Figura 4.7. Nullsoft WinAmp 4.6. Aspectos de Funcionamento Quanto à operação, este módulo supõe que seu uso seja integrado a um Sistema Tutor Inteligente que conte com uma política de segurança e autenticação de usuários definida e implementada. Portanto, não é função deste módulo solicitar identificação de usuário e verificar seus direitos de acesso às funções. Operações de inclusão e exclusão devem ser realizadas por usuários com mais privilégios, como professores, produtores de conteúdo e administradores do sistema. Já a operação de consulta pode ser franqueada para todos os usuários que tenham permissão de usar o STI. Este módulo apresenta-se como uma demonstração das classes criadas para serem incorporadas ao STI, sendo assim, a figura 4.8 apresenta a tela inicial que o usuário da demonstração verá.

76 Capítulo 4 O Protótipo AulaSom 66 Figura 4.8. Tela Inicial de Demonstração do AulaSom As figuras 4.9, 4.10 e 4.11 exibem as telas de inserção, remoção e consulta, respectivamente. Observa-se que na tela de inserção são solicitados do usuário dados sobre o som a ser inserido, tais como: descrição e nome do arquivo a ser copiado. A chave primária numérica é gerada automaticamente pela classe Fachada e pelo próprio SGBD Oracle. Figura 4.9. Tela de Inclusão de AulaSom

77 Flávio Ferry de Oliveira Moreira 67 Para apagar uma linha da tabela, é solicitado ao usuário que informe o código que está associado a esta. Figura Tela de Remoção de Som do Banco de Dados Na consulta, o usuário informa uma palavra que faça parte da descrição do arquivo e o sistema faz a busca no banco de dados. Figura Tela Inicial da Consulta do AulaSom

78 Capítulo 4 O Protótipo AulaSom Testes realizados Durante a fase de implementação, foram feitos testes usando diversas configurações, desde um PC AMD K6-II de 400 MHz com 64MB de RAM até um PC Pentium III de 750MHz com 256MHz de RAM, todos acessando o servidor de Banco de Dados Oracle do Centro de Informática da Universidade Federal de Pernambuco. Os resultados foram considerados bastante satisfatórios, pois em nenhum dos casos houve demora no tempo de resposta às inclusões ou às buscas. Num primeiro momento, uma versão tipo beta deste protótipo foi testada em Teresina, usando dois computadores com acesso discado a Internet com provedores diferentes. O Servidor, um K6-2 de 450MHz, com 128MB de RAM, serviu a aplicação e o SGBD Oracle, nesta etapa o personal Oracle 8i. Esse foi conectado ao provedor ibest. O Cliente, um PC AMD Duron de 1.0GHz, com 128MB de RAM, foi conectado ao provedor Universo On-Line (UOL) e acessou o servidor Tomcat através do navegador Internet Explorer 6.0. Nesta ocasião, foram realizadas com sucesso as operações de upload de arquivos e consulta, porém as inclusões no banco de dados apresentaram falhas. As consultas foram feitas em um diretório do computador que foi configurado para ser o servidor da aplicação. O módulo Som da Aula foi melhorado e testado nas suas interfaces de envio, remoção e consulta, posteriormente, na rede interna da Universidade Federal de Pernambuco. Seu desempenho nos computadores Pentium III 700MHz, com 256 MB de RAM, foi altamente satisfatório, sendo que ocorreram pequenos atrasos para as primeiras execuções de cada página JSP, fato perfeitamente justificável pela própria tecnologia, conforme descrito anteriormente. Já o desempenho deste em uma plataforma AMD K6-2 de 400MHz, com 64MB de RAM, foi cerca de quatro vezes mais lento, sendo que o usuário teria que esperar aproximadamente um minuto pela primeira execução de cada JSP, sendo essa então escolhida para ser a configuração mínima aceitável para o módulo ser executado isoladamente e acessando um servidor de banco de dados em uma máquina independente na rede. Ainda durante os testes realizados, o mecanismo de resposta a consultas do AulaSom foi alterado no sentido de ganhar um melhor desempenho. Pois antes, para cada ocorrência encontrada, era gerado um arquivo temporário no servidor da aplicação. Agora

79 Flávio Ferry de Oliveira Moreira 69 esta classe foi alterada de tal forma que o arquivo temporário somente é gerado quando o usuário decide ouvi-lo, clicando no botão para tocá-lo. Isso garante um melhor desempenho do servidor da aplicação que vai ter que gerenciar apenas os arquivos temporários que foram realmente necessários para a tarefa solicitada pelo usuário. Outra alteração relevante é o fato de o arquivo agora tocar embutido dentro do HTML da página, nos primeiros testes o programa de tocar MP3 do usuário era aberto em janela separada. Na versão atual, o tocador de mídia do usuário é exibido dentro da janela do navegador, simplificando ainda mais o uso do programa. As figuras 4.12 e 4.13 mostram o resultado de uma consulta de acordo com as últimas modificações realizadas. Figura Resultado de Consulta ao AulaSom

80 Capítulo 4 O Protótipo AulaSom 70 Figura Reprodução do Som Escolhido pelo Usuário 4.8. Conclusões sobre a solução Esta solução pode parecer simples a princípio, mas sua aplicação na prática tende a ser um diferencial para Sistemas Tutor Inteligentes. Vários trabalhos chegam a especificar STIs que usam tecnologias abordadas no capítulo 2 deste trabalho, e até mesmo indo além como é o caso de Fischer[104]. A maioria deles monta na teoria um sistema que suporta até mesmo vídeos gravados das aulas. Porém, estes trabalhos não fazem previsão de que estas aulas tenham arquivos e conteúdos gerenciados por um SGBD. Alguns propõem uso de streamming de áudio e até de vídeo, porém da maneira tradicional, onde um administrador do site disponibiliza os arquivos e monta o streamming no servidor, ficando a critério do usuário apenas clicar no link para ouvir o resultado em um programa compatível com a tecnologia do site. Os trabalhos pesquisados não demonstram preocupação com armazenamento dos conteúdos em banco de dados, nem em montar um servidor de streamming que seja automaticamente disparado a partir de um resultado de consulta a um banco de dados.

Mídias Contínuas. Mídias Contínuas

Mídias Contínuas. Mídias Contínuas Mídias Contínuas Processamento da Informação Digital Mídias Contínuas Mídias Contínuas (dinâmicas ou dependentes do tempo) Digitalização de Sinais Áudio Vídeo 1 Digitalização de Sinais Codificadores de

Leia mais

Sistemas e Conteúdos Multimédia. 4.4. Áudio. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Sistemas e Conteúdos Multimédia. 4.4. Áudio. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Sistemas e Conteúdos Multimédia 4.4. Áudio Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt O som é um fenómeno físico causado pela vibração da matéria (p. ex. a pele de um tambor) A vibração provoca

Leia mais

1 Noções de software musical Conteúdo

1 Noções de software musical Conteúdo Introdução Conceitos básicos de software educacional e informática na educação O software musical como auxílio aos professores de música Software para acompanhamento Software para edição de partituras

Leia mais

Conteúdo. SCC5909 Fundamentos de Multimídia. Ementa do Curso. 1. Apresentação da Disciplina. Ementa do Curso. Ementa do Curso

Conteúdo. SCC5909 Fundamentos de Multimídia. Ementa do Curso. 1. Apresentação da Disciplina. Ementa do Curso. Ementa do Curso SCC5909 Fundamentos de Multimídia Aula 1 Conteúdo Apresentação da disciplina Conceitos e definições em multimídia Princípios de compressão Prof.: Dr. Rudinei Goularte (rudinei@icmc.usp.br) Instituto de

Leia mais

COMPRESSÃO DE DADOS MULTIMÍDIA

COMPRESSÃO DE DADOS MULTIMÍDIA COMPRESSÃO DE DADOS MULTIMÍDIA Por que Compressão? Apesar da expansão das capacidade de comunicação e computação, a demanda das novas aplicações multimídia cresce rapidamente Custo de transmissão e armazenagem

Leia mais

Prof. Daniel Hasse. Multimídia e Hipermídia

Prof. Daniel Hasse. Multimídia e Hipermídia Prof. Daniel Hasse Multimídia e Hipermídia AULA 02 Agenda: Algoritmos de Codificação/Decodificação; Codec de Áudio. Atividade complementar. Algoritmos de Codificação/Decodificação - Comunicação tempo real,

Leia mais

SENAI São Lourenço do Oeste. Introdução à Informática. Adinan Southier Soares

SENAI São Lourenço do Oeste. Introdução à Informática. Adinan Southier Soares SENAI São Lourenço do Oeste Introdução à Informática Adinan Southier Soares Informações Gerais Objetivos: Introduzir os conceitos básicos da Informática e instruir os alunos com ferramentas computacionais

Leia mais

Capitulo 11 Multimídias

Capitulo 11 Multimídias Capitulo 11 Multimídias Neste capítulo são exploradas as ferramentas multimídias presentes no SO Android customizadas para o Smartphone utilizado neste manual. É inegável o massivo uso destas ferramentas,

Leia mais

Computadores VII: Digitalizando Sons - Final

Computadores VII: Digitalizando Sons - Final Computadores VII: Digitalizando Sons - Final A2 Texto 4 http://www.bpiropo.com.br/fpc20050808.htm Sítio Fórum PCs /Colunas Coluna: B. Piropo Publicada em 08/08/2005 Autor: B.Piropo Semana passada vimos

Leia mais

Introdução à Multimédia conceitos

Introdução à Multimédia conceitos 1. Introdução à Multimédia conceitos Popularidade mercado potencial aparece nos anos 90 Avanços Tecnológicos que motivaram o aparecimento/ desenvolvimento da MULTIMÉDIA Indústrias envolvidas - Sistemas

Leia mais

Introdução... 2. Características das placas de som... 2

Introdução... 2. Características das placas de som... 2 á Placa de som: principais características... 2 Introdução... 2 Características das placas de som... 2 Conversores ADC e DAC... 2 Resolução das placas de som... 2 Taxa de amostragem... 3 Resposta de freqüência...

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS Universidade do Contestado Campus Concórdia Curso de Engenharia Ambiental Prof.: Maico Petry SISTEMAS OPERACIONAIS DISCIPLINA: Informática Aplicada DEFINIÇÃO É um programa de controle do computador. O

Leia mais

Trabalhando com arquivos de som. Prof. César Bastos Fevereiro 2008

Trabalhando com arquivos de som. Prof. César Bastos Fevereiro 2008 Trabalhando com arquivos de som Prof. César Bastos Fevereiro 2008 Usando a mídia de som Vamos considerar os programas gratuitos como base de nossas ferramentas nesse curso, assim todos poderão usufruir

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Aula 04: Sistema Operacional Material Didático do Livro: Introdução à Informática Capron,, H. L. e Johnson, J. A Pearson Education Sistemas Operacionais: Software Oculto Serve

Leia mais

Programa da disciplina, i metodologia de ensino, avaliações e bibliografia básica. Objetivos da Disciplina

Programa da disciplina, i metodologia de ensino, avaliações e bibliografia básica. Objetivos da Disciplina Circuitos Digitais Cap. 1 Prof. José Maria P. de Menezes Jr. Circuitos Digitais Tópicos Digitais I- Engenharia Elétrica -UFPI Programa da disciplina, i metodologia de ensino, avaliações e bibliografia

Leia mais

Computadores e Informação Digital

Computadores e Informação Digital Computadores e Informação Digital Sérgio Nunes Comunicações Digitais e Internet Ciências da Comunicação, U.Porto 2011/12 Computadores Computador O que é um computador? Um computador é uma máquina programável,

Leia mais

CAPTURA SINCRONIZADA DE VÍDEO NO ENSINO DE CIÊNCIAS

CAPTURA SINCRONIZADA DE VÍDEO NO ENSINO DE CIÊNCIAS CAPTURA SINCRONIZADA DE VÍDEO NO ENSINO DE CIÊNCIAS INTRODUÇÃO A imagem e o áudio têm ocupado cada vez mais espaço na constituição e expressão do conhecimento humano, seja no âmbito da informação, do entretenimento

Leia mais

17:47:08. Introdução à Informática com Software Livre

17:47:08. Introdução à Informática com Software Livre 17:47:08 Introdução à Informática com Software Livre 1 17:47:09 Audacity 2 Audacity 17:47:09 Audacity é um Software Livre de edição digital de áudio, disponível principalmente nas plataformas: Windows,

Leia mais

Softwares de Sistemas e de Aplicação

Softwares de Sistemas e de Aplicação Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?

Leia mais

Introdução à Transmissão Digital. Funções básicas de processamento de sinal num sistema de comunicações digitais.

Introdução à Transmissão Digital. Funções básicas de processamento de sinal num sistema de comunicações digitais. Introdução à Transmissão Digital Funções básicas de processamento de sinal num sistema de comunicações digitais. lntrodução à transmissão digital Diferença entre Comunicações Digitais e Analógicas Comunicações

Leia mais

Banco de Dados Multimídia

Banco de Dados Multimídia Banco de Dados Multimídia Nomes: Ariane Bazilio Cristiano de Deus Marcos Henrique Sidinei Souza Professor Mauricio Anderson Perecim Conteúdo Banco de Dados Multimídia... 3 Conceitos... 3 Descrição... 3

Leia mais

Pág 31. UC Introdução a Informática Docente: André Luiz Silva de Moraes 1º sem Redes de Computadores. 5 Introdução ao uso do BrOffice Impress

Pág 31. UC Introdução a Informática Docente: André Luiz Silva de Moraes 1º sem Redes de Computadores. 5 Introdução ao uso do BrOffice Impress 5 Introdução ao uso do BrOffice Impress O pacote BrOffice é um pacote de escritório muito similar ao já conhecido Microsoft Office e ao longo do tempo vem evoluindo e cada vez mais ampliando as possibilidades

Leia mais

Oficina de Multimédia B. ESEQ 12º i 2009/2010

Oficina de Multimédia B. ESEQ 12º i 2009/2010 Oficina de Multimédia B ESEQ 12º i 2009/2010 Conceitos gerais Multimédia Hipertexto Hipermédia Texto Tipografia Vídeo Áudio Animação Interface Interacção Multimédia: É uma tecnologia digital de comunicação,

Leia mais

Realização de Vídeos Relatório Final

Realização de Vídeos Relatório Final Universidade Estadual de Campinas (UNICAMP) Instituto de Física Gleb Wataghin (IFGW) Disciplina F 809 Instrumentação para Ensino (Professor Lunazzi) Realização de Vídeos Relatório Final 2º Semestre de

Leia mais

ANÁLISE E IMPLEMENTAÇÃO DE ALGORITMOS DE COMPRESSÃO DE DADOS. Maria Carolina de Souza Santos 1 Orientador: Prof.º Ms.

ANÁLISE E IMPLEMENTAÇÃO DE ALGORITMOS DE COMPRESSÃO DE DADOS. Maria Carolina de Souza Santos 1 Orientador: Prof.º Ms. ANÁLISE E IMPLEMENTAÇÃO DE ALGORITMOS DE COMPRESSÃO DE DADOS Maria Carolina de Souza Santos 1 Orientador: Prof.º Ms. Mauricio Duarte 2 Centro Universitário Euripides de Marilia UNIVEM FATEC Faculdade de

Leia mais

1 - Processamento de dados

1 - Processamento de dados Conceitos básicos sobre organização de computadores 2 1 - Processamento de dados O que é processamento? O que é dado? Dado é informação? Processamento é a manipulação das informações coletadas (dados).

Leia mais

2- Conceitos Básicos de Telecomunicações

2- Conceitos Básicos de Telecomunicações Introdução às Telecomunicações 2- Conceitos Básicos de Telecomunicações Elementos de um Sistemas de Telecomunicações Capítulo 2 - Conceitos Básicos de Telecomunicações 2 1 A Fonte Equipamento que origina

Leia mais

Sistemas de Informação James A. O Brien Editora Saraiva Capítulo 5

Sistemas de Informação James A. O Brien Editora Saraiva Capítulo 5 Para entender bancos de dados, é útil ter em mente que os elementos de dados que os compõem são divididos em níveis hierárquicos. Esses elementos de dados lógicos constituem os conceitos de dados básicos

Leia mais

Informática Aplicada Revisão para a Avaliação

Informática Aplicada Revisão para a Avaliação Informática Aplicada Revisão para a Avaliação 1) Sobre o sistema operacional Windows 7, marque verdadeira ou falsa para cada afirmação: a) Por meio do recurso Windows Update é possível manter o sistema

Leia mais

Conheça o seu telefone

Conheça o seu telefone Conheça o seu telefone O nome MOTOROLA e sua logomarca estilizada M estão registrados no Escritório de Marcas e Patentes dos EUA. Motorola, Inc. 2008 Algumas funções do telefone celular dependem da capacidade

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

Soluções completas de segurança em vídeo IP

Soluções completas de segurança em vídeo IP Soluções completas de segurança em vídeo IP Soluções completas de segurança em vídeo IP www.indigovision.com IndigoVision Visão geral A solução empresarial de segurança IP IndigoVision garante o monitoramento

Leia mais

Introdução à Informática. Aula 04. Sistemas Operacionais Aplicativos e Utilitários Transmissão e meios de transmissão de dados. Prof.

Introdução à Informática. Aula 04. Sistemas Operacionais Aplicativos e Utilitários Transmissão e meios de transmissão de dados. Prof. Aula 04 Sistemas Operacionais Aplicativos e Utilitários Transmissão e meios de transmissão de dados Sistema Operacional Um conjunto de programas que se situa entre os softwares aplicativos e o hardware:

Leia mais

Por razões, é requerido um módulo de E/S, que deve desempenhar duas funções principais:

Por razões, é requerido um módulo de E/S, que deve desempenhar duas funções principais: Entrada e Saída Além do processador e da memória, um terceiro elemento fundamental de um sistema de computação é o conjunto de módulos de E/S. Cada módulo se conecta com o barramento do sistema ou com

Leia mais

Desenvolvimento de Algoritmos de Compressão de Dados e Sua Viabilidade Computacional Aplicada a VoIP

Desenvolvimento de Algoritmos de Compressão de Dados e Sua Viabilidade Computacional Aplicada a VoIP Desenvolvimento de Algoritmos de Compressão de Dados e Sua Viabilidade Computacional Aplicada a VoIP Resumo Jerônimo Berbetz Neto 1, John Anderson Freitas Mendes 2 A compressão de dados consiste no armazenamento

Leia mais

Consultoria para desenvolvimento de estratégias de treinamento on-line

Consultoria para desenvolvimento de estratégias de treinamento on-line 1 2 A HIPOCAMPUS é uma empresa de consultoria em comunicação e ensino digital com foco nos profissionais de saúde. Estamos prontos a auxiliar empresas dos diferentes segmentos da área de saúde a estabelecer

Leia mais

ESTRUTURAS DE DADOS II

ESTRUTURAS DE DADOS II ESTRUTURAS DE DADOS II Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF Conteúdo Programático 1. Introdução

Leia mais

Sistemas Operacionais. (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto

Sistemas Operacionais. (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto Sistemas Operacionais (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Classificações 3. CPU 4. Memória 5. Utilitários O que se

Leia mais

- Aula 1 - ARQUITETURA DE COMPUTADORES

- Aula 1 - ARQUITETURA DE COMPUTADORES - Aula 1 - ARQUITETURA DE COMPUTADORES Em arquitetura de computadores serão estudados aspectos da estrutura e do funcionamento dos computadores. O objetivo é apresentar de forma clara e abrangente a natureza

Leia mais

Formatos de Arquivos da Internet

Formatos de Arquivos da Internet Guia de Consulta Rápida Formatos de Arquivos da Internet Marcelo Silveira Novatec Editora www.novateceditora.com.br Guia de Consulta Rápida Formatos de Arquivos da Internet de Marcelo Silveira Copyright

Leia mais

COMO DIGITALIZAR E FINALIZAR SEUS PROGRAMAS DE RÁDIO EM CD 1 Mariana Moura e Marcelo Berg

COMO DIGITALIZAR E FINALIZAR SEUS PROGRAMAS DE RÁDIO EM CD 1 Mariana Moura e Marcelo Berg COMO DIGITALIZAR E FINALIZAR SEUS PROGRAMAS DE RÁDIO EM CD 1 Mariana Moura e Marcelo Berg Para que possamos digitalizar nossos programas de rádio gravados em fita cassete, utilizaremos: - o próprio gravador

Leia mais

Relatório Final Disciplina F 809 1º Sem / 2004

Relatório Final Disciplina F 809 1º Sem / 2004 Relatório Final Disciplina F 809 1º Sem / 2004 Aluno: Rafael Lima Brandão Orientador : Prof. Jose Joaquim Lunazzi Resumo Os experimentos apresentados todo o semestre na disciplina F809 são filmados e gravados

Leia mais

Sistemas Multimédia. Ano lectivo 2006-2007. Aula 11 Conceitos básicos de Audio Digital. MIDI: Musical Instrument Digital Interface

Sistemas Multimédia. Ano lectivo 2006-2007. Aula 11 Conceitos básicos de Audio Digital. MIDI: Musical Instrument Digital Interface Sistemas Multimédia Ano lectivo 2006-2007 Aula 11 Conceitos básicos de Audio Digital Sumário Aúdio digital Digitalização de som O que é o som? Digitalização Teorema de Nyquist MIDI: Musical Instrument

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO PARANÁ GOVERNO DO ESTADO COLÉGIO ESTADUAL DE PARANAVAÍ ENSINO FUNDAMENTAL, MÉDIO, NORMAL E PROFISSIONAL CURSO TÉCNICO EM INFORMÁTICA DISCIPLINA: INTERNET E PROGRAMAÇÃO WEB 1º MÓDULO SUBSEQUENTE MECANISMOS

Leia mais

O vídeo. O vídeo. Sistemas analógicos de vídeo. O vídeo. 2001 Wilson de Pádua Paula Filho

O vídeo. O vídeo. Sistemas analógicos de vídeo. O vídeo. 2001 Wilson de Pádua Paula Filho O vídeo O vídeo Interfaces de vídeo Sistemas de televisão: as características do sinal de vídeo são determinadas pelos padrões de televisão principais padrões existentes: televisão em preto-e-branco televisão

Leia mais

Introdução à Programação de Computadores

Introdução à Programação de Computadores 1. Objetivos Introdução à Programação de Computadores Nesta seção, vamos discutir os componentes básicos de um computador, tanto em relação a hardware como a software. Também veremos uma pequena introdução

Leia mais

Provedor de Digital Signage. Apresentação Comercial. contato@rj21.net www.rj21.net

Provedor de Digital Signage. Apresentação Comercial. contato@rj21.net www.rj21.net Apresentação Comercial contato@rj21.net www.rj21.net O que é Digital Signage? Uma mídia dinâmica e interativa Exibe mensagens digitais em pontos de venda, espaços públicos, transportes, TVs corporativas,

Leia mais

Introdução à multimídia na Web

Introdução à multimídia na Web Aplicações Multimídia Aplicações Multimídia para Web Introdução à multimídia na Web Co-autoria com Profº. Diogo Duarte Aplicações Multimídia para Web Multimídia Multimídia é tudo que você ouve ou vê. Textos,

Leia mais

DESAFIO ETAPA 1 Passo 1

DESAFIO ETAPA 1 Passo 1 DESAFIO Um dos maiores avanços percebidos pela área de qualidade de software foi comprovar que a qualidade de um produto final (software) é uma consequência do processo pelo qual esse software foi desenvolvido.

Leia mais

Gravador Digital SUPER MONITOR Descrição Geral

Gravador Digital SUPER MONITOR Descrição Geral Gravador Digital SUPER MONITOR Descrição Geral Documento confidencial Reprodução proibida 1 Introdução Em um mundo onde as informações fluem cada vez mais rápido e a comunicação se torna cada vez mais

Leia mais

1.0 Apresentação. 2.0 O que é o produto? 3.0 Do que é composto? 4.0 Como funciona? 5.0 Instalando a interface da Rec-All mono (Hardware)

1.0 Apresentação. 2.0 O que é o produto? 3.0 Do que é composto? 4.0 Como funciona? 5.0 Instalando a interface da Rec-All mono (Hardware) 1.0 Apresentação 2.0 O que é o produto? 3.0 Do que é composto? 4.0 Como funciona? 5.0 Instalando a interface da Rec-All mono (Hardware) 6.0 Instalando o Software Rec-All mono 7.0 Configuração do Software

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

A música e a voz. A música e a voz. Síntese musical. A música e a voz. 2001 Wilson de Pádua Paula Filho. Tópicos: Definição:

A música e a voz. A música e a voz. Síntese musical. A música e a voz. 2001 Wilson de Pádua Paula Filho. Tópicos: Definição: A música e a voz Tópicos: A música e a voz Técnicas de síntese digital de som Definição: Técnicas de produção de seqüências de áudio a partir de uma seqüência de eventos musicais. Tipos de síntese: tempo

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

PROPOSTA DE UM MODELO DE SISTEMA HIPERMÍDIA PARA APRESENTAÇÃO DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

PROPOSTA DE UM MODELO DE SISTEMA HIPERMÍDIA PARA APRESENTAÇÃO DO CURSO DE CIÊNCIA DA COMPUTAÇÃO PROPOSTA DE UM MODELO DE SISTEMA HIPERMÍDIA PARA APRESENTAÇÃO DO CURSO DE CIÊNCIA DA COMPUTAÇÃO Fabiana Pacheco Lopes 1 1 Universidade Presidente Antônio Carlos (UNIPAC) fabipl_21@yahoo.com.br Resumo.Este

Leia mais

Arquitetura e Organização de Computadores Introdução à Organização do Computador

Arquitetura e Organização de Computadores Introdução à Organização do Computador 1 Arquitetura e Organização de Computadores Introdução à Organização do Computador Professor: João Paulo de Brito Gonçalves Curso: Sistemas de Informação Introdução 2 O Computador é uma ferramenta que

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Marcelo Gonçalves Rubinstein Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Ementa Introdução a Redes de

Leia mais

EXAME NACIONAL DO ENSINO SECUNDÁRIO

EXAME NACIONAL DO ENSINO SECUNDÁRIO EXAME NACIONAL DO ENSINO SECUNDÁRIO 11.º/12.º Anos de Escolaridade (Decreto-Lei n.º 74/2004, de 26 de Março) PROVA 703/8 Págs. Duração da prova: 120 minutos 2007 2.ª FASE PROVA PRÁTICA DE APLICAÇÕES INFORMÁTICAS

Leia mais

Sistema Tutor Inteligente baseado em Agentes. Pedagógicas da Universidade Aberta do Piauí. Prof. Dr. Vinicius Ponte Machado

Sistema Tutor Inteligente baseado em Agentes. Pedagógicas da Universidade Aberta do Piauí. Prof. Dr. Vinicius Ponte Machado Sistema Tutor Inteligente baseado em Agentes na Plataforma MOODLE para Apoio às Atividades Pedagógicas da Universidade Aberta do Piauí Prof. Dr. Vinicius Ponte Machado Parnaíba, 14 de Novembro de 2012

Leia mais

Informática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1

Informática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1 Informática I Aula 19 http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Princípios de TI - Computadores. Sistema Operacional. CECOMP Colegiado de Engenharia da Computação. Prof. Fábio Nelson. Slide 1

Princípios de TI - Computadores. Sistema Operacional. CECOMP Colegiado de Engenharia da Computação. Prof. Fábio Nelson. Slide 1 Sistema Operacional Slide 1 Sistema Operacional Um conjunto de programas que se situa entre os softwares aplicativos e o hardware: Gerencia os recursos do computador (CPU, dispositivos periféricos). Estabelece

Leia mais

Programação de Computadores

Programação de Computadores Aula 01 Introdução Departamento de Computação Universidade Federal de Ouro Preto 2011.1 1 Processamento de dados 2 Organização de Computadores 3 Sistemas de Numeração Processamento de dados Processamento

Leia mais

Peça para um amigo baixar o programa também, e você pode começar a experimentar o VoIP para ver como funciona. Um bom lugar para procurar é

Peça para um amigo baixar o programa também, e você pode começar a experimentar o VoIP para ver como funciona. Um bom lugar para procurar é VOIP Se você nunca ouviu falar do VoIP, prepare-se para mudar sua maneira de pensar sobre ligações de longa distância. VoIP, ou Voz sobre Protocolo de Internet, é um método para pegar sinais de áudio analógico,

Leia mais

Informática Aplicada. Aula 2 Windows Vista. Professora: Cintia Caetano

Informática Aplicada. Aula 2 Windows Vista. Professora: Cintia Caetano Informática Aplicada Aula 2 Windows Vista Professora: Cintia Caetano AMBIENTE WINDOWS O Microsoft Windows é um sistema operacional que possui aparência e apresentação aperfeiçoadas para que o trabalho

Leia mais

1.0 Apresentação. 2.0 O que é o produto? 3.0 Do que é composto? 4.0 Como funciona? 5.0 Instalando a interface da Call Rec (Hardware)

1.0 Apresentação. 2.0 O que é o produto? 3.0 Do que é composto? 4.0 Como funciona? 5.0 Instalando a interface da Call Rec (Hardware) 1.0 Apresentação 2.0 O que é o produto? 3.0 Do que é composto? 4.0 Como funciona? 5.0 Instalando a interface da Call Rec (Hardware) 6.0 Instalando o Software Call Rec 7.0 Configuração do Software Call

Leia mais

Informática. Prof. Macêdo Firmino. Macêdo Firmino (IFRN) Informática Setembro de 2011 1 / 16

Informática. Prof. Macêdo Firmino. Macêdo Firmino (IFRN) Informática Setembro de 2011 1 / 16 Informática Prof. Macêdo Firmino Representação da Informação Macêdo Firmino (IFRN) Informática Setembro de 2011 1 / 16 Introdução Estamos acostumados a pensar nos computadores como mecanismos complexos,

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: ICO Aula N : 09 Tema: Unidade Central de

Leia mais

Multimédia, Qualidade de Serviço (QoS): O que são?

Multimédia, Qualidade de Serviço (QoS): O que são? Multimédia, Qualidade de Serviço (QoS): O que são? Aplicações Multimédia: áudio e vídeo pela rede ( meios contínuos ) QoS a rede oferece às aplicações o nível de desempenho necessário para funcionarem.

Leia mais

MICROSOFT POWER POINT 2003

MICROSOFT POWER POINT 2003 MICROSOFT POWER POINT 2003 APOSTILA PAGINAS.TERRA.COM.BR/EDUCACAO/INFOCAO 1 Sumário Software de Apresentação 03 Exemplos de Software de Apresentação 04 Considerações para uma boa Apresentação 05 Apresentações

Leia mais

Apostilas OBJETIVA Cargo: AGENTE DE TELECOMUNICAÇÕES PC Polícia Civil do Estado de São Paulo - Concurso Público 2015. 3º Caderno.

Apostilas OBJETIVA Cargo: AGENTE DE TELECOMUNICAÇÕES PC Polícia Civil do Estado de São Paulo - Concurso Público 2015. 3º Caderno. 3º Caderno Índice Pg. Editor de Apresentações MS-PowerPoint 2010... Exercícios pertinentes... Edição de textos, planilhas e apresentações BROffice... Exercícios pertinentes... Conceitos, ferramentas, aplicativos

Leia mais

Disciplina: Aplicações Informáticas B Ano Letivo: 2011/2012

Disciplina: Aplicações Informáticas B Ano Letivo: 2011/2012 Disciplina: Aplicações Informáticas B Ano Letivo: 2011/2012 Professora: Angélica Vieira Realizado por: Miguel Sandim nº21 e Susana Ribeiro nº24 12ºF Índice Introdução... 3 Resumo... 4 Conceito Multimédia...

Leia mais

DIGITALIZAÇÃO E EDIÇÃO DE VÍDEOS DIDÁTICOS DA DISCIPLINA F809 RELATORIO FINAL 25 UNIVERSIDADE ESTADUAL DE CAMPINAS

DIGITALIZAÇÃO E EDIÇÃO DE VÍDEOS DIDÁTICOS DA DISCIPLINA F809 RELATORIO FINAL 25 UNIVERSIDADE ESTADUAL DE CAMPINAS 25-1 25 UNIVERSIDADE ESTADUAL DE CAMPINAS Projeto de Instrumentação para o Ensino F809 RELATORIO FINAL DIGITALIZAÇÃO E EDIÇÃO DE VÍDEOS DIDÁTICOS DA DISCIPLINA F809 Aluno: Gustavo M. S. Valente Orientador:

Leia mais

4 Conversor EDTV Raw. 4.1 Arquitetura

4 Conversor EDTV Raw. 4.1 Arquitetura 4 Conversor EDTV Raw O conversor EDTV Raw é o programa que lê um documento escrito no perfil NCL EDTV e gera um documento Raw equivalente, i.e. que define a mesma apresentação. Este capítulo, apresenta

Leia mais

Multimídia. Hardware/Software para Multimídia (Parte I) Sistemas Multimídia. Tópico. Hardware e Software para Multimídia

Multimídia. Hardware/Software para Multimídia (Parte I) Sistemas Multimídia. Tópico. Hardware e Software para Multimídia Multimídia Hardware/Software para Multimídia (Parte I) Sistemas Multimídia Tópico Hardware e Hardware para Multimídia Com a popularização dos sistemas multimídia foi criado o padrão MPC (PC Multimídia)

Leia mais

Exercícios Rede de Computadores I (27/05/2006)

Exercícios Rede de Computadores I (27/05/2006) UNIVERSIDADE FEDERAL DE VIÇOSA CENTRO DE CIÊNCIAS EXATAS E TECNOLOGICAS DEPARTAMENTO DE INFORMÁTICA Exercícios Rede de Computadores I (27/05/2006) Marcelo Santos Daibert Juiz de Fora Minas Gerais Brasil

Leia mais

Sinal analógico x sinal digital. Sinal analógico. Exemplos de variações nas grandezas básicas. Grandezas básicas em sinais periódicos

Sinal analógico x sinal digital. Sinal analógico. Exemplos de variações nas grandezas básicas. Grandezas básicas em sinais periódicos Plano Redes de Computadores Transmissão de Informações nálise de Sinais ula 04 Introdução Dados, sinais e transmissão Sinal analógico x sinal digital Sinais analógicos Grandezas básicas Domínio tempo x

Leia mais

Princípios de Tecnologia e Sistemas de Informação (PTSI) Eduardo Ribeiro Felipe erfelipe@yahoo.com.br

Princípios de Tecnologia e Sistemas de Informação (PTSI) Eduardo Ribeiro Felipe erfelipe@yahoo.com.br Princípios de Tecnologia e Sistemas de Informação (PTSI) Eduardo Ribeiro Felipe erfelipe@yahoo.com.br Hardware Processo Informação Codificação Armazenamento Decodificação Informação Modelo computacional

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Registro aqui o agradecimento ao professor Osvaldo (DCC-UFMG) e a vários professores do DECOM (Marcelo, Sabir, José Maria, Andrea, David) por ceder material que foi usado na

Leia mais

3 Qualidade de serviço na Internet

3 Qualidade de serviço na Internet 3 Qualidade de serviço na Internet 25 3 Qualidade de serviço na Internet Além do aumento do tráfego gerado nos ambientes corporativos e na Internet, está havendo uma mudança nas características das aplicações

Leia mais

Comunicações a longas distâncias

Comunicações a longas distâncias Comunicações a longas distâncias Ondas sonoras Ondas electromagnéticas - para se propagarem exigem a presença de um meio material; - propagam-se em sólidos, líquidos e gases embora com diferente velocidade;

Leia mais

01/04/2012. Voltar. Voltar

01/04/2012. Voltar. Voltar Introdução à Informática Capítulo 3 Sistemas Operacionais: Software em Segundo Plano Objetivos Descrever as funções de um sistema operacional. Explicar os fundamentos do sistema operacional de um computador.

Leia mais

Aula 8 Conversação e rede social na web

Aula 8 Conversação e rede social na web Aula 8 Conversação e rede social na web Aula 8 Conversação e rede social na web Meta Apresentar um programa de voz sobre IP (VoIP), o Skype, e fazer uma breve introdução ao mundo das redes sociais online,

Leia mais

UM LABORATÓRIO WEB PARA ENSINO ORIENTADO A AUTOMAÇÃO E CONTROLE

UM LABORATÓRIO WEB PARA ENSINO ORIENTADO A AUTOMAÇÃO E CONTROLE UM LABORATÓRIO WEB PARA ENSINO ORIENTADO A AUTOMAÇÃO E CONTROLE Cleonilson Protásio de Souza 1 e José Tarcísio Costa Filho 2 Universidade Federal do Maranhão 1 Departamento de Engenharia de Eletricidade

Leia mais

Geral O que é Mediasite Live? O que é uma mídia de apresentação? Como se compara Mediasite Live a outras soluções de apresentação?

Geral O que é Mediasite Live? O que é uma mídia de apresentação? Como se compara Mediasite Live a outras soluções de apresentação? Geral O que é Mediasite Live? Mediasite Live é um poderoso sistema de comunicação via web que permitem os usuários a capturar rapidamente, publicar e assistir uma apresentação e transformando-o automaticamente

Leia mais

Strings (Compressão) Estrutura de Dados II Jairo Francisco de Souza

Strings (Compressão) Estrutura de Dados II Jairo Francisco de Souza Strings (Compressão) Estrutura de Dados II Jairo Francisco de Souza Compressão de Dados Objetivos Reduzir espaço de armazenagem Reduzir tempo de transmissão Muito importante Informação (e dados) tende

Leia mais

Hardware e Software. Exemplos de software:

Hardware e Software. Exemplos de software: Hardware e Software O hardware é a parte física do computador, ou seja, é o conjunto de componentes eletrônicos, circuitos integrados e placas, que se comunicam através de barramentos. Em complemento ao

Leia mais

Entenda os formatos mais populares de vídeo

Entenda os formatos mais populares de vídeo Entenda os formatos mais populares de vídeo Com o grande crescimento da internet banda larga no país muitos internautas estão cada vez mais tendo contato com arquivos de vídeo, tanto na visualização online

Leia mais

Roxio Easy CD & DVD Burning

Roxio Easy CD & DVD Burning Roxio Easy CD & DVD Burning Guia de Introdução 2 Começando a usar o Easy CD & DVD Burning Neste guia Bem-vindo ao Roxio Easy CD & DVD Burning 3 Sobre este guia 3 Sobre o conjunto Easy CD & DVD Burning

Leia mais

Sistema de Aquisição de Dados

Sistema de Aquisição de Dados Sistema de Aquisição de Dados Versão 2013 RESUMO Nesta experiência será desenvolvido o projeto de um sistema de aquisição e armazenamento de dados analógicos em formato digital. O sinal de um sensor de

Leia mais

Manual de referência do Device Storage Manager

Manual de referência do Device Storage Manager Manual de referência do Device Storage Manager Avisos sobre direitos autorais e marcas comerciais Copyright 2003 Hewlett-Packard Development Company, L.P. É proibida a reprodução, adaptação ou tradução

Leia mais

DO ANALÓGICO AO DIGITAL: CONCEITOS E

DO ANALÓGICO AO DIGITAL: CONCEITOS E DO ANALÓGICO AO DIGITAL: CONCEITOS E TÉCNICAS BÁSICASB Fernando Pereira Instituto Superior TécnicoT Digitalização Processo onde se expressa informação analógica de forma digital. A informação analógica

Leia mais

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos:

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos: Estruturas de Sistemas Operacionais Podemos analisar um sistema operacional sob diversos aspectos: Os serviços que o sistema operacional oferece. A interface que o sistema operacional torna disponível

Leia mais

Informática. Informática. Valdir

Informática. Informática. Valdir Informática Informática Valdir Questão 21 A opção de alterar as configurações e aparência do Windows, inclusive a cor da área de trabalho e das janelas, instalação e configuração de hardware, software

Leia mais

Fundamentos de Arquitetura de Computadores. Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

Fundamentos de Arquitetura de Computadores. Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Fundamentos de Arquitetura de Computadores Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Hardware de um Sistema Computacional Hardware: são os componentes

Leia mais

Módulo 1 Introdução às Redes

Módulo 1 Introdução às Redes CCNA 1 Conceitos Básicos de Redes Módulo 1 Introdução às Redes Ligação à Internet Ligação à Internet Uma ligação à Internet pode ser dividida em: ligação física; ligação lógica; aplicação. Ligação física

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE Capítulo 6 ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 6.1 2003 by Prentice Hall OBJETIVOS Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações

Leia mais

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT Power Point Básico Santa Maria, julho de 2006 O Power Point é um aplicativo do Microsoft Office direcionado à criação de apresentações.

Leia mais

Introdução a Computação

Introdução a Computação Sistemas Operacionais: Software Oculto Introdução a Computação Sistemas Operacionais Serve como um intermediário entre o hardware e os softwares aplicativos. Sistema Operacional Software de sistemas Kernel

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 1- MODELO DE CAMADAS 1. INTRODUÇÃO A compreensão da arquitetura de redes de computadores envolve a compreensão do modelo de camadas. O desenvolvimento de uma arquitetura de redes é uma tarefa complexa,

Leia mais