RSS interativo

December 1st, 2004 § 3 comments

A pergunta da Su sobre o SCORM continuou a martelar na minha cabeça mesmo depois que eu coloquei a resposta aqui no blog. Como eu mesmo indiquei no final da resposta, eu a achei um tanto insatisfatória. Considerando isso, eu comecei a pensar em alternativas viáveis para o contexto em que ela fez a pergunta.

Depois de refletir um pouco sobre o assunto, eu me voltei para o que ela tinha mencionado sobre blogs. Isso me levou, meio que obviamente, ao RSS. E eu resolvi fazer um pequeno experimento.

No contexto em que a pergunta foi feita, há a necessidade de minizar tanto custos quanto complexidade, ao mesmo tempo em que é preservada a capacidade para a interação e agregação de dados. Obviamente, a melhor maneira de minimizar custos é construir sobre um infra-estrutura já existente. E o RSS oferece a oportunidade de fazer isso de uma maneira bem simples.

O experimento, então, foi criar um feed RSS interativo, capaz de reagir às opções feitas pelo usuário e se comportar de uma maneira aproximada do fluxo de trabalho em um curso apresentando por um LMS comum. Como eu vou comentar mais adiante, o RSS oferece possibilidades que são tão ou mais interessantes do que os padrões existentes. Ao começar o experimento, a primeira dificuldade que encontrei foi o bloqueio por parte da maioria dos agregadores de alguns elementos HTML como script e object. Esse bloqueio é resultado do temor gerado por alguns textos do Mark Pilgrim e outros blogueiros alguns meses atrás. Uma boa parte dos agregadores mais famosos implementaram uma remoção completa desses elementos do texto de um feed sem considerar as conseqüências disso. Como fica óbvio ao se pensar na idéia, um bloqueio indiscriminado previne completamente o uso de mídia rica.

O temor é válido, embora as implementações deixem a desejar. Idealmente, um agregador implementaria algo como zonas de segurança (comos os navegadores). Feeds confiáveis poderiam usufruir de privilégios maiores, enquanto a opção padrão seria realmente bloquear qualquer conteúdo duvidoso.

Para passar por essa limitação, eu tive que encontrar um agregador que permitisse esse tipo de conteúdo. Bloglines, SharpReader e FeedDemon bloqueiam os elementos em graus variáveis. Eu fiquei então com o FeedReader para experimentar, já que ele possui, inclusive, um controle incipiente nessa parte. O NewsGator também permite o uso de mídia mais rica. Como eu só pude testar no Windows no momento, não verifiquei agregadores para Linux.

Caso você queria visualizar o experimento agora, basta seguir para a seção de testes do meu site. Acesse a página inicial do experimento e use o seu agregador para subscrever-se à URL especificada na página. Fique à vontade para testar quantas vezes quiser, gerando novos feeds se necessário. Lembre-se apenas que o seu navegador não deve bloquear os elementos mencionados acima. Ao completar cada item do feed, force o seu agregador a atualizar este último. (A propósito, devido ao pouco tempo que eu tive para fazer o exemplo, eu não embuti nenhum controle de erro. Se tiver problemas, tente gerar outro feed.)

Continuando, algumas considerações sobre o experimento:

Como eu disse em minha resposta à Su, não existe nada no SCORM que não possa ser duplicado facilmente. A simplicidade e limitações do padrão garantem isso. E, dada a natureza da API cliente do mesmo, ela é completamente passível de engenharia reversa. Isso implica, por exemplo, que é possível modificar o experimento acima para realmente falar com um LMS compatível com o SCORM, ganhando as vantagens do padrão sem perder os benefícios do RSS. Obviamente, no caso da engenharia reversa é desnecessário dizer que isso pode significar correr atrás de um alvo móvel. Mas é possível visualizar o cenário de um LMS oferencendo uma API SCORM externa que cursos em outros formatos possam usar.

O acesso ao LMS pode ser feito diretamente (como no caso de uma API baseada em uma combinação de JavaScript e XML) ou através de alguma espécie de proxy (como no case de um API baseada em Java ou ActiveX). De qualquer forma, não seria muito complicado de ser fazer isso, principalmente considerando que o conjunto de informações que podem ser trocadas entre o servidor e o cliente são limitadas e fixadas por uma especificação. No experimento, cada item no RSS conversa com o servidor através de XML, em um Flash.

Essa possibilidade de comunicação externa abre a porta para a criação de uma API diferente que pode ser adaptada a cenários mais abertos do que o SCORM e traduzida para o mesmo se assim houver necessidade, sem que quaisquer limitações sejam introduzidas na distribuição do curso.

Independentemente do uso do SCORM, entretanto, o uso do RSS de maneira dinâmica já oferece um ambiente capaz de proporcionar uma experiência completa de aprendizado. Através do uso de um RSS customizado e único por participante, o que não é novidade, é possível controlar a experiência de ensino com que granularidade for desejada. O mais importante a notar aqui é que, dependendo das ações tomadas pelo usuário em relação a um item no feed, é possível mudar o RSS para que o mesmo siga caminho diferentes de acordo com as opções feitas. Embora isso não seja demonstrado no experimento, é uma conseqüência lógica.

Existem, porém, alguns problemas e limitações no uso que, embora não seja capazes de impedir a utilização do RSS nesse contexto, devem ser consideradas também.

O primeiro problema, já mencionado anteriormente, é o do bloqueio de determinados elementos HTML. A correção desse problema envolve a adaptação dos próprios agregadores, constituindo, então, a parte mais complicada da equação. Uma solução temporária seria usar agregadores alternativos que não possuam tais restrições.

Um segundo problema seria o do cross-domain scripting, ou seja, o uso de código JavaScript de um contexto de segurança qualquer dentro de outro. Esse, inclusive, é um problema do próprio SCORM. Depedendo, porém, do modo como o agregador for implementado é possível evitá-lo completamente. E caso a questão tenha que ser considerada, existem outras soluções como o uso de Flash e outros métodos que limitem ou minimizem o problema.

Um terceiro problema seria a limitação que muitos agregadores possuem na questão de atualização de feeds. Idealmente, seria necessário algo que informasse o agregador automaticamente de que aquele feed pode ser atualizado. Na falta disso, resta a atualização manual. A atualização em intervalos pré-definidos talvez não seja uma opção aqui pela necessidade de permitir que o usuário escolha os melhores momentos para executar cada módulo.

Um último problema seria a limitação do uso offline de um feed, considerando que a API que proporciona a dinâmica do curso provavelmente exige uma conexão à Internet para funcionar.

Mesmo considerando esses problemas, é fácil perceber que a utilização do RSS nesse contexto é viável, não necessitando de outros padrões para ser útil, embora possa se beneficar de alguns deles para a melhoria da experiência por partes dos usuarios.

Existem também, além das opções demonstradas no experimento, outras possibilidades como o uso de formulários HTML comunicando-se via XML com o servidor, a abertura de novas janelas para permitir formas de interação diferentes e ainda mais ricas, Podcasting para vídeo e áudio, um controle mais refinado dos feeds através de uso do elemento guid do mesmo, entre outros.

O fato de que um servidor está sendo usado para distribuir o conteúdo não deve indicar que algumas limitações do SCORM são automaticamente resolvidas. Tanto por causa dos clientes quanto por causa do que vai rodar do servidor, há um limite prático para a tecnologia a ser empregada. Com o RSS é possível esticar esse limite um pouco mais, mas ele não deixa de existir.

§ 3 Responses to RSS interativo"

  • Su says:

    Show! Vou levar um bom tempo para entender isso tudo. Como o curso/módulo/conteúdo vai ser não é importante, mas é possível entregá-lo (para acesso)via rss. Num LMS, poderia haver na página pessoal de cada aluno um mini-agregador que entregasse aquilo que foi postado para aquele aluno numa página/local específica rssficada.
    Pode ser? (aqui podia entrar aquele java agregador que eu falei)
    abraço,

    Su

  • rss & scorm

    Penso que as minhas turbulências mentais contagiaram o Ronaldo e, nem bem ele tinha postado uma excelente resposta, já ampliou em muito a linha de pensamento sobre o assunto.

  • Ronaldo says:

    Como eu disse no comentário lá no seu blog, a aplicação que eu fiz já consegue fazer essa distribuição no RSS mesmo mas depende do agregador. Infelizmente, o Bloglines não tem o suporte necessário. Mas existem outros em que dá para fazer os “módulos” que eu criei diretamente no agregador. Do modo como eu imaginei, você pode ter o conteúdo todo e as avaliações diretamente via RSS. No caso do conteúdo, parte pode ir no próprio corpo de RSS e parte pode ir via enclosures, como o Podcasting faz. No caso de avaliações, você precisa de algo como o Flash que eu coloquei lá. Mas é perfeitamente possível.

    Além disso, embora não seja muito visível na forma que eu fiz, um único RSS poderia ser dinâmico ao ponto de distribuir conteúdo separado para cada aluno. O RSS do meu experimento já faz isso. Apesar de ser o mesmo RSS, cada pessoa pode estar em um “módulo” diferente. E pode haver caminhos diferentes de acordo com o que o aluno fizer. As possibilidade são ilimitadas.

What's this?

You are currently reading RSS interativo at Superfície Reflexiva.

meta