Uma Solução de Webcast para Ensino à Distância Isidro Lopes da Silva Neto Fundação CPqD [email protected] Anderson Luiz Brunozi Fundação CPqD [email protected] Resumo Este trabalho explora as possibilidades de uso de webcast de conteúdo multimídia para Ensino à Distância apresentando uma solução que compreende uma ferramenta de autoria e uma arquitetura cliente-servidor para armazenamento, acesso, difusão e consumo deste tipo de conteúdo ao vivo ou sob demanda. Os usuários têm acesso ao conteúdo multimídia por meio de sessões RTSP [4] e HTTP [5] síncronas através das quais são transportadas mídias dinâmicas (áudio e vídeo) e estáticas (imagens) respectivamente. 1. Introdução Webcast ou webdifusão significa transmissão de mídia na web. Webcast emprega uma tecnologia chamada streaming que permite que a mídia seja transmitida pelo provedor e assistida pelo usuário simultaneamente, descontados os atrasos intrínsecos de software e de rede. Observe que streaming é diferente de outras tecnologias tais como o download e o progressive download nas quais o usuário deve esperar que a mídia (ou pelo menos parte dela) seja “baixada” para que sua apresentação tenha início. Webcast também pode ser confundido com webconference, mas são coisas diferentes. No primeiro caso a transmissão é ponto-multiponto e no segundo caso a transmissão é multiponto-multiponto. De fato, uma webconference é um conjunto de “pequenos” webcasts dado que o número de pontos envolvidos numa webconference geralmente é bem menor do que o número de pontos envolvidos num webcast. O conteúdo de um webcast pode ser constituído por uma mídia simples como um vídeo, que é a situação mais freqüente, ou pelo que chamamos de rich media, que é a composição de várias mídias elementares tais como áudio, vídeo, imagens, texto e até mesmo páginas da web. Este trabalho propõe uma solução de webcast baseada em rich media, como uma ferramenta complementar para suporte a EaD. EaD HTTP JPEG PNG Real Media RTSP SMIL SVG URL W3C web services webcast WSDL XML Vinicius de Lima Fundação CPqD [email protected] Ensino à Distância Hypertext Transfer Protocol [5] Joint Photographic Experts Group [17] Portable Network Graphics [18] Formato de compactação de mídia desenvolvido pela Helix Community [6] Real Time Streaming Protocol [4] Synchronized Multimedia Integration Language [2] Scalable Vector Graphics [16] Uniform Resource Locator World Wide Web Consortium [7] Arquitetura que provê meio padronizado de interoperação entre aplicações diferentes [3] O mesmo que webdifusão. Significa transmissão de mídia na web. Web Services Description Language [3] Extensible Markup Language[1] 3. Casos de uso Abaixo apresentamos vários casos de uso da solução de webcast, conforme ilustra a Figura 1. Figura 1. Casos de Uso 2. Abreviações e acrônimos Termo Descrição AJAX Asynchronous JavaScript And XML 1- XVII Programa de Atualização Continuada em Oftalmologia “Grand Round” – 2007, Departamento de Oftalmologia UNIFESP/EPM, transmitido ao vivo às segundas feiras das 19:30 às 21 horas, SP, SP. Até o momento este foi o caso de uso mais completo e bem sucedido para Educação à Distância, graças aos organizadores da Escola Paulista de Medicina. Foram apresentados casos médicos reais, muito bem ilustrados com imagens impressionantes. Sob a coordenação do preceptor dos residentes, a audiência, tanto presencial como virtual, era convidada a propor diagnóstico e conduta para cada um dos casos apresentados, os quais, após o debate, eram desvendados com a apresentação do diagnóstico, conduta e recuperação do paciente. Havia também sessões em Inglês para permitir a participação de convidados estrangeiros. Este acervo está gravado e disponível para um grupo de usuários administrados pelos organizadores. 2- Workshop de P&D do Projeto GIGA da RNP, transmitido ao vivo no período de 03/09/07 a 06/09/07, Petrópolis, RJ. Disponível sob demanda no endereço: http://dmdweb.giga.cpqd .com.br/rnp 3- V Simpósio InCor sobre Doença Arterial Coronariana transmitido ao vivo no período de 23/11/07 a 24/11/07, SP, SP. Não disponível sob demanda. 4- Medicina em Evidência acessível através do portal do CREMESP (Conselho de Medicina do Estado de São Paulo), no endereço: http://www.cremesp.org.br/ conjunto de regiões da tela que podem ser ocupadas pelas mídias elementares dinamicamente. O comportamento temporal é fundamentalmente descrito por dois elementos XML principais denominados par e seq. O elemento par define mídias que devem ser apresentadas simultaneamente e o elemento seq define as mídias que devem ser apresentadas seqüencialmente no tempo. A Figura 2 apresenta um exemplo de um particular encadeamento dos elementos par e seq e o conseqüente comportamento temporal gerado. Barras verticais indicam elementos to tipo par e barras horizontais indicam elementos do tipo seq. Observe-se que cada elemento par pode conter um número qualquer de elementos seq e viceversa, permitindo, desta forma, ampla liberdade para o autor definir o comportamento temporal de sua apresentação. 4. Fundamentos Teóricos Nesta seção serão descritas algumas das tecnologias e conceitos empregados no projeto. Como poderá ser observado, buscou-se a conformidade com as especificações do W3C [7], que é um consórcio cujo objetivo é especificar padrões de interoperabilidade para conduzir a web ao seu potencial pleno. 4.1 SMIL SMIL [2] ou Synchronized Multimedia Integration Language é uma especificação do W3C [7] de linguagem XML [1] que habilita a construção simples de apresentações audiovisuais interativas. Tipicamente é usada para produção de apresentações rich media permitindo a integração e sincronização de áudio e vídeo com imagens, texto ou qualquer outro tipo de mídia. Atualmente encontra-se disponível a especificação SMIL 2.1, de dezembro de 2005 e já existe uma publicação candidata para a versão SMIL 3.0, publicada em janeiro de 2008. Usando SMIL, o autor de uma apresentação rich media poderá descrever o seu comportamento temporal, associar hiperlinks com objetos de mídia e ainda desenhar o layout de sua apresentação na tela. O layout de uma apresentação é descrito por um Figura 2. Comportamento temporal de uma apresentação SMIL 4.2 SVG e outros formatos de imagens Os padrões de imagens estáticas mais comuns em webcasts são JPEG [16] e PNG [17]. Estes padrões permitem a compressão de imagens para um determinado tamanho, com ou sem perdas, resultando em imagens com uma determinada quantidade total de pixels. Caso haja necessidade de ampliação, este tipo de imagem perde qualidade visual, dado que sua área aumenta, mas a quantidade total de pixels permanece a mesma. A Figura 3 ilustra este efeito apresentando três imagens padrão PNG denominadas A, B e C. A imagem B é a imagem A reduzida quatro vezes e a imagem C é a imagem B ampliada quatro vezes. É possível observar a perda de qualidade visual da imagem C em relação à imagem A. O padrão SVG [18], ou Scalable Vector Graphics, é uma especificação de linguagem XML [1] do W3C [7] para imagens gráficas bidimensionais escaláveis. Figura 3. Zoom de imagens não escaláveis Por imagens escaláveis entende-se aquelas que, mesmo ampliadas ou reduzidas, apresentam sempre a mesma densidade de pixels e, conseqüentemente, a mesma qualidade visual. Se o padrão das imagens da Figura 3 fosse SVG as imagens A e C seriam idênticas. Uma imagem padrão SVG é um arquivo XML [1] e, por esta razão, necessita de um visualizador que interprete seu conteúdo para transformá-lo em imagem apresentável na tela do computador. O visualizador gratuito mais empregado atualmente é o Adobe SVG Viewer [10] que oferece qualidade visual excelente. Para produzir imagens no padrão SVG existem vários editores de mercado, tais como o Corel Draw e o Adobe Illustrator. Há também o INKSCAPE [11], que foi usado para ilustrar este trabalho. É gratuito, fácil de usar e também produz imagens de excelente qualidade. A imagem A da Figura 3 foi obtida de um dos exemplos de imagem padrão SVG do INKSCAPE exportada para o padrão PNG. O padrão SVG permite ainda importação de imagens não escaláveis tais como fotos e ainda dá suporte para animação, interatividade e scripting. Normalmente os visualizadores SVG permitem o uso de lupas sobre estas imagens, facilidade esta interessante para imagens detalhadas, tais como mapas, gráficos de funções matemáticas e ilustrações de anatomia, o que torna este padrão ainda mais atrativo para trabalhos como EaD que exigem qualidade visual de imagem. 4.3 Produção, difusão e consumo de conteúdo. A Figura 4 ilustra o processo de produção, consumo e difusão de conteúdo rich media. Conceitualmente uma ferramenta de autoria de conteúdo rich media é um programa capaz de realizar a captura e gravação de todas as mídias elementares de uma apresentação (áudios, vídeos, imagens e textos) simultaneamente com o registro do comportamento temporal das mesmas. Um player de conteúdo rich media é um programa capaz de reproduzir este conteúdo a partir do registro feito pela ferramenta de autoria e de um layout de apresentação que define as regiões da tela do computador onde as mídias elementares devem ser exibidas. Conforme dito no item 4.1, a linguagem SMIL [2] dá suporte à descrição tanto do layout como do comportamento temporal das mídias elementares de uma apresentação, sendo por esta razão empregada por várias ferramentas de autoria. Opcionalmente a ferramenta de autoria pode transmitir o conteúdo rich media para o servidor http/rtsp ao vivo, via stream, enquanto realiza a gravação. Um player SMIL, tal como o Real Player [8] ou Quick Time [9] pode então consumir este conteúdo local ou remotamente. Vamos imaginar, numa primeira aproximação, que este conteúdo foi produzido off line e depois enviado a um servidor RTSP. O consumo local deste conteúdo ocorreria sem problemas, mas o consumo remoto, via servidor RTSP, poderia sofrer algumas restrições que serão descritas a seguir. Figura 4. Produção, difusão e consumo de conteúdo rich media. Normalmente as imagens de uma apresentação são arquivos de tamanho 50 a 100 kbytes. Transportá-las na mesma conexão RTSP é possível, mas isso causaria picos de ocupação de banda durante as mudanças de imagem, propiciando travamentos eventuais da apresentação. Por esta razão, alguns players fazem o parser do arquivo SMIL identificando e baixando previamente todas as imagens da apresentação causando um outro efeito colateral indesejável: o usuário tem que esperar o download de todas as imagens antes que a apresentação se inicie. Tomemos, a título de exemplo, em uma conexão a 128 kbps e uma apresentação com 100 slides de tamanho médio 100kbytes. Teríamos, neste caso, um tempo de download de imagens superior a 10 minutos, intolerável para qualquer usuário. Outro problema é que não podemos empregar esta mesma abordagem para apresentações ao vivo, pois o arquivo SMIL só ficará pronto após o final da produção. Para evitar os problemas descritos acima, uma alternativa interessante é enviar as imagens a um servidor HTTP [5] e o stream para um servidor RTSP [4]. Este stream precisaria ser composto não somente por pacotes de vídeo e áudio, mas também por pacotes de dados que contêm a informação da URL da imagem corrente da apresentação. Os players teriam então acesso à apresentação através de duas sessões: uma HTTP e a outra RTSP. Inicialmente o player estabelece uma sessão HTTP com o servidor obtendo o arquivo SMIL da apresentação. Este arquivo contém a URL para estabelecimento da sessão RTSP. Estabelecida a sessão RTSP, o player passa a receber o stream composto por pacotes de áudio e vídeo e dados a partir dos quais ele recompõe, respectivamente, as mídias de áudio e vídeo e a seqüência de URL das imagens da apresentação. Com esta seqüência o player sincroniza a sessão HTTP que passa a apresentar estas imagens em intervalos de tempo coerentes com o áudio e o vídeo. Esta coerência é garantida independentemente dos atrasos de rede e da inevitável buferização de pacotes ao longo de toda cadeia. A Figura 5 apresenta a ocupação de banda causada pelo par de sessões RTSP e HTTP durante uma apresentação, para um acesso a 256 kbps. Observa-se o valor quiescente da ocupação correspondente à banda consumida pela sessão RTSP (aproximadamente 128 kbps) e os picos correspondem à banda consumida pela sessão HTTP. outro tipo de atividade educacional de forma que o aluno não sentisse a diferença entre estar real ou virtualmente presente. Com a tecnologia que dispomos hoje, tanto de rede como de processamento de imagens, a virtualização imersiva é possível, mas seriam necessários recursos de captura, de rede e de processamento que inviabilizariam o projeto do ponto de vista econômico. Para maximizar esta sensação de presença, uma solução de compromisso seria aquela que atendesse os seguintes requisitos de interface com usuário: 1) O aluno deve poder ver e ouvir o professor; 2) O aluno deve poder fazer perguntas textuais para o professor; 3) O aluno deve poder ver as imagens apresentadas durante a aula com a melhor definição e tamanho possíveis. Além dos requisitos acima, seria desejável atender a requisitos de audiência e de plataforma: 4) O acesso às aulas deve ser possível a partir de conexões de 128 kbps; 5) O acesso às aulas deve ser possível a partir das plataformas Windows, Linux e Mac OS. Figura 6. A solução CPqD Webcasting Figura 5. Ocupação de banda das sessões HTTP e RTSP 5. A solução CPqD Webcasting Parte do tempo das aulas, sobretudo em universidades, são ocupadas com apresentações durante as quais os alunos têm interatividade plena com o professor: eles podem vê-lo, ouvi-lo, observar as imagens por ele apresentadas e fazer perguntas verbais a qualquer hora. Um grande desafio para um projeto de EaD seria a virtualização imersiva de uma aula presencial ou qualquer A solução CPqD Webcasting foi desenvolvida para contemplar estes requisitos. Trata-se de uma suíte que compreende três aplicações: o Webcast Recorder, o Webcast Server e o Webcast Client conforme ilustra a Figura 6. Estas aplicações correspondem a ferramenta de autoria, ao servidor http/rtsp e ao player SMIL descritos na seção 4.3, mas suas funcionalidades foram estendidas para que os webcasts ocorram em salas de chat permitindo interatividade entre alunos e entre alunos e professor. A seguir serão descritas resumidamente as principais características de cada uma destas aplicações bem como suas interfaces com usuários. 5.1 Webcast Recorder O Webcast Recorder é uma implementação da ferramenta de autoria de conteúdo rich media, baseado em SMIL, descrita no item 4.3 e um cliente chat. A Figura 7 ilustra a interface com usuário desta aplicação. Esta aplicação realiza a aquisição de vídeo, de áudio e de eventos associados a mudanças de imagens gerando um único stream composto, em formato Real Media, que é transmitido para o Webcast Server. As imagens podem ser importadas diretamente de arquivos PowerPoint, quando há necessidade de zoom em ambientes amplos como auditórios. Com relação ao áudio, é possível fazer captura estereofônica desde que o computador esteja equipado com hardware adequado. Após a gravação, esta aplicação oferece suporte para criação de índice, conforme ilustra a Figura 8, para facilitar a navegação do usuário no conteúdo multimídia. Esta aplicação foi implementada empregando as linguagens Java e C++ e software da Comunidade Helix [6]. 5.2 Webcast Server O Webcast Server é uma implementação do servidor http/rstp descrita no item 4.3 e um servidor de chat que associa a cada webcast uma sessão de chat exclusiva, criando assim uma interatividade próxima a uma sala de aula. Mesmo aulas gravadas ocorrem em salas de chat onde os alunos podem tirar dúvidas uns com os outros ou mesmo com o professor, se este estiver na sala. Esta aplicação oferece serviço completo de webcasting compreendendo as operações de criação (com eventual upload de conteúdo), supressão e acesso a conteúdo. Além destes há os serviços de cadastro on-line com envio de senha por e-mail e geração de relatórios de participação por aluno e por aula. É possível integrar os serviços de webcasting a qualquer ambiente de suporte a EaD, empregando web services, conforme será descrito no item 5.4. Esta aplicação foi implementada empregando linguagem Java e software da Comunidade Helix [6] sobre servidor Apache Tomcat [20]. Figura 7. Interface com usuário do Webcast Recorder 5.3 Webcast Client Open Office Impress ou diretórios de imagens JPEG, PNG ou SVG. Assim que importadas, as imagens são enviadas para o Webcast Server no caso de webcasts ao vivo. Cada importação gera um lote de imagens cuja visualização em miniatura fica disponível na região de pré-visualização (do lado direito da tela) permitindo que o professor as apresente seqüencial ou aleatoriamente. A imagem corrente da apresentação é exibida na parte central da tela. O professor pode ler as perguntas formuladas pelos alunos, visíveis na região de mensagens, podendo então optar por respondê-las textual ou verbalmente. A produção de conteúdo é realizada de forma simples e amigável empregando facilidades tais como a descoberta automática dos dispositivos de captura de áudio e vídeo e a programação das bandas de transmissão para audiências de 128, 256, 512 e 1024 kbps. No caso da captura de vídeo podem ser empregadas desde câmeras web até câmeras digitais, sendo estas últimas mais indicadas O Webcast Client é uma implementação do player SMIL descrito no item 4.3 e um cliente chat que permite que o aluno participe de aulas on-demand ou ao vivo, atendendo todos os requisitos enunciados no início desta seção. A Figura 8 ilustra interface com usuário desta aplicação. A linha tracejada indica a separação das sessões RTSP e HTTP. A sessão RTSP apresenta o vídeo e o áudio do professor com eventual índice para webcasts de aulas gravadas. Há também duas regiões para imagens adicionais e controles de pause (que pode ser usado mesmo para webcasts ao vivo), stop, play, volume e uma barra deslizante que permite o avanço ou retrocesso no tempo de webcasts gravados. A sessão HTTP apresenta as imagens da apresentação e uma janela de chat retrátil, que pode ser minimizada quando não estiver em uso. Esta solução visa maximizar a região de imagens que é o principal foco de atenção do aluno. A camada de apresentação da sessão HTTP foi construída empregando as práticas AJAX e a camada de apresentação da sessão RTSP foi desenhada com o suporte a layout da linguagem SMIL e implementada com o uso do plug-in do Real Player [8]. 5.4 Integração com Ambientes de suporte a EaD As instituições de ensino empregam diferentes ambientes de suporte a EaD. Tanto alunos como professores já estão acostumados ao uso destes ambientes e substituí-los poderia ser um transtorno. Por esta razão a aplicação Webcast Server oferece interface para integração baseada em Web Services [3] que é uma especificação do W3C [7] para dar suporte à comunicação entre aplicações na web. A integração se dá por meio de um arquivo WSDL que expõe o serviço de webcasting descrito na seção 5.2. A partir deste arquivo é possível gerar agentes de forma automatizada para qualquer linguagem de programação. os alunos estão naturalmente reunidos e podem, além de executar suas tarefas escolares, desenvolver suas habilidades de interação social tais como discussão, colaboração, acordo, procura de consenso, compromisso, ajuda e encorajamento dos colegas em dificuldade [19]. 7. Conclusão A solução para webcasting apresentada neste trabalho permite um avanço nos mecanismos de Educação à Distância oferecendo suporte para autoria, armazenamento e webcast de aulas e apresentações ao vivo ou gravadas podendo ser integrada a qualquer ambiente de suporte a EaD. Tanto professores como alunos podem produzir material multimídia de forma simples, rápida e econômica e acessar este material onde estiverem e sempre que precisarem. A idéia de o aluno poder apresentar os resultados de seu trabalho em formato multimídia, que incorpora as linguagens escrita, visual, falada e gestual, incentiva o aluno a desenvolver sua capacidade de criação e expressão como cidadão, além de estimular o trabalho colaborativo em ambientes educacionais virtuais. A solução, se aplicada no contexto de um programa nacional, poderia contribuir para o nivelamento e melhoria da qualidade de ensino. 8. Referências Figura 8. Interface com usuário do Webcast Client [1] [2] [3] [4] Estes agentes podem então ser incorporados aos ambientes de EaD de forma que o serviço de webcasting fique disponível como mais um recurso destes ambientes. Até o momento foram realizadas integrações bem sucedidas com os ambientes TelEduc [12], Moodle [13] e Sakai [14]. [5] 6. Orientação Pedagógica [11] [12] [13] [14] [15] A solução apresentada neste trabalho é agnóstica à orientação pedagógica das instituições de ensino. Contudo, independentemente de qual seja esta orientação, webcast de conteúdo didático pode ser de grande auxílio para o educador. Sem a intenção de recomendar, que não é de competência dos autores, mas apenas para avaliar o alcance, o uso de webcast poderia, numa situação econômica ideal, até inverter o paradigma tradicional de “aulas na escola e tarefas em casa” para “aulas em casa e tarefas na escola”. O tempo na escola poderia ser aproveitado para o trabalho colaborativo em grupo onde [6] [7] [8] [9] [10] [16] [17] [18] [19] [20] Extensible Markup Language http://www.w3.org/XML Synchronized Multimedia http://www.w3.org/AudioVideo/ Web Services Activity http://www.w3.org/2002/ws/ Real Time Streaming Protocol, RFP2326, http://tools.ietf.org/html/rfc2326 HTTP - Hypertext Transfer Protocol http://www.w3.org/Protocols/ Helix Community http://helixcommunity.org/ W3C World Wide Web Consortium http://www.w3.org/ Real Player http://www.realplayer.com/ Quick Time Player http://www.apple.com/quicktime/ Adobe SVG Viewer http://www.adobe.com/svg/viewer/install/ INKSCAPE http://www.inkscape.org/ TelEduc http://teleduc.nied.unicamp.br/pagina/ Moodle http://moodle.org/ Sakai http://sakaiproject.org/ IMS Global Learning Consortium http://www.imsglobal.org/ SVG, XML Graphics for the Web http://www.w3.org/Graphics/SVG/ Joint Photographic Experts Group http://www.jpeg.org/ Portable Network Graphics http://www.w3.org/TR/PNG/ Sandra Audrey Hennings, “A Psycho-educational Approach to Facilitate Synergy with Respect to Teaching and Learning in a Secondary School”, Mini-Dissertation, University of Johannesburg, May 2004. Apache Tomcat http://tomcat.apache.org/