WebRogue: Web Communities e Formazione a Distanza

Davide Carboni
CRS4 – Center for Advanced Studies, Research and Development in Sardinia
Parco Scientifico e Tecnologico, POLARIS, Edificio 1, 09010 PULA (CA - Italy)
dcarboni@crs4.it

Ivan Marcialis
CRS4 – Center for Advanced Studies, Research and Development in Sardinia
Parco Scientifico e Tecnologico, POLARIS, Edificio 1, 09010 PULA (CA - Italy)
ivan@crs4.it

Alessandro Soro
CRS4 – Center for Advanced Studies, Research and Development in Sardinia
Parco Scientifico e Tecnologico, POLARIS, Edificio 1, 09010 PULA (CA - Italy)
asoro@crs4.it

Sommario
WebRogue è un’applicazione per la “presenza virtuale” sul Web, che permette agli utenti che si soffermano contemporaneamente su una stessa pagina Web di “incontrarsi” e di comunicare in modo semplice ed immediato. 
L’obiettivo di WebRogue consiste nel facilitare la nascita di comunità online imperniate, ma non limitate, su siti Web di interesse, permettendo agli utenti di scambiare opinioni e informazioni in modo libero, senza limiti o censure e senza bisogno che particolari servizi siano installati server-side dagli amministratori del sito Web: esso funziona infatti in modo del tutto indipendente dal portale, che ha solo il ruolo di luogo d’incontro per gli utenti.
WebRogue si propone come possibile soluzione alla desertica realtà che contraddistingue i siti presenti in rete, “luoghi” che attraggano l’attenzione di numerosi utenti ma che risultano essere sempre drammaticamente vuoti.

1.  Introduzione
Il portale Web è uno degli strumenti centrali per l’erogazione a distanza di lezioni e contenuti formativi. Esso è il centro della vita in rete della scuola o dell’università e svolge il ruolo, oltre che di archivio di informazioni, anche di punto di incontro fra studenti e fra studenti e docenti. Non a caso fra gli strumenti accessori disponibili sul portale, solitamente non mancano i tipici strumenti di comunicazione sincrona e asincrona: chat e mailing list, dotati per l’occasione di un’apposita interfaccia Web. Tali strumenti, così concepiti, hanno tuttavia alcune serie limitazioni. Sono spesso inaccessibili agli utenti non registrati, tale pratica è comprensibile ma ha due spiacevoli conseguenze: da un lato la sensazione o la consapevolezza di una supervisione (da parte di un moderatore) inibisce la comunicazione tra pari (gli studenti, cui il servizio sarebbe dedicato); dall’altro restano completamente esclusi gli studenti di altre scuole o i visitatori. Per analogia ciò equivarrebbe a registrare ogni conversazione che si svolga nei locali scolastici e a negare completamente la parola agli ospiti. 
La comunicazione, inoltre, può svolgersi solo all’interno del portale Web (addirittura in una particolare pagina del portale). Ciò impedisce la nascita di una vera comunità online, perché limita la comunicazione e gli scambi allo specifico contesto della scuola o dell’università.
La conseguenza immediata è che spesso gli utenti scelgono di avvalersi di strumenti alternativi, che garantiscono più libertà, di parola e di movimento. Ad esempio applicazioni di chat o instant messaging come Microsoft Messenger o AIM, o i servizi di mailing list forniti gratuitamente dalla maggior parte degli Internet Service Provider.
Tali strumenti a loro volta sono limitati sotto vari aspetti, non essendo forniti dall’istituto il loro uso resta circoscritto al più all’interno di ogni singola classe. In pratica si formano delle micro comunità chiuse con poche o nessuna sovrapposizione. Inoltre il portale Web perde il proprio ruolo di punto d’incontro fra gli utenti e gli scambi con l’esterno e con i docenti sono praticamente azzerati.
Diversamente dagli strumenti descritti sopra, WebRogue non richiede alcuna registrazione da parte degli utenti ed essendo uno strumento indipendente dal portale Web non obbliga l’istituto a gestire o moderare le comunicazioni. L’uso di WebRogue, inoltre, non è limitato al portale, qualunque sia la pagina caricata sul browser l’utente può vedere la lista degli altri utenti collegati a quella pagina e scambiare messaggi con essi, in altre parole la comunità online può estendersi a più siti, secondo l’interesse. Chiunque usi WebRogue per collegarsi al portale dell’istituto troverà gli altri utenti online e potrà scambiare messaggi con essi, esattamente come chiunque si rechi fisicamente nei locali della scuola vi troverebbe studenti e professori.

Figura 1: Interfaccia grafica di WebRogue
2.  Funzionalità
WebRogue si presenta agli utenti come una finestra perfettamente integrata al browser, non dissimile dalle comuni toolbar messe a disposizione da numerosi siti Web, che potrà essere abilitata o disabilitata con assoluta semplicità. Al suo interno, oltre all’area per scrivere e leggere i messaggi di chat, è presente la lista degli utenti che in quel momento hanno il loro browser aperto sulla medesima pagina. Tale lista può essere filtrata in base alle informazioni fornite dagli utenti (lingua, nazionalità, età, ecc.) o in base ad altri rapporti di “vicinanza”, come la posizione geografica o semplicemente il caso, un po’ come accade quando si accede ad un posto affollato e si entra immediatamente in contatto con le persone che ci stanno accanto. 
La lista delle persone con le quali è possibile entrare in comunicazione può essere inoltre allargata a tutti gli utenti presenti all’interno del portale oppure a quegli utenti con i quali si è scelto di rimanere in contatto anche quando non ci si trova contemporaneamente sulla stessa pagina.
Il server è attualmente strutturato su una semplice applicazione PHP accessibile attraverso il Web server Apache e comunica con il client attraverso un rudimentale sistema di polling. Tale applicazione simula il comportamento di un semplice server IRC, i cui i canali sono rappresentati da ogni singola pagina presente sul Web. Come per questo tipo di chat, anche WebRogue prevede funzionalità aggiuntive a quelle indispensabili alla comunicazione, attualmente è comunque in grado di interpretare solo un set limitato di comandi.

2.1  Comandi di comunicazione:
•	Dire (comando say). E’ il commando che viene attivato in difetto di altri comandi specifici di comunicazione. Quando un utente dice qualcosa, tutti gli utenti presenti nella stessa stanza (sulla stessa pagina Web quindi) possono leggere ciò che viene detto. Se consideriamo il portale Web come l’analogo digitale dell’edificio scolastico e la singola pagina come l’analogo di un’aula, ciò equivale a dire una frase ad alta voce, in modo che essa possa essere udita da tutte le persone presenti nella stanza. In altre parole ogni pagina Web del sito può essere usata come una chat room, i cui ospiti sono tutti gli utenti che stanno visualizzando la pagina in quel momento.
•	Sussurrare (comando whisper). Questo comando viene utilizzato per le comunicazioni private tra due utenti e simula il comportamento di un tipico software di instant messaging. Le frasi sussurrate appaiono solo sul client del destinatario del messaggio.
•	Gridare (comando scream). Tutti i messaggi che vengono urlati dagli utenti saranno invece uditi da tutte le persone collegate al portale. Tale funzionalità può apparire inopportuna ma WebRogue è stato ideato nello spirito della libertà di parola e di comunicazione. D’altra parte per evitare confusione è possibile scegliere di non visualizzare sul proprio client i messaggi urlati (provenienti cioè da altre stanze) o di non visualizzare i messaggi provenienti da un particolare utente con il quale non siamo interessati a comunicare. In altre parole non è possibile impedire ad alcuno di parlare, ma si può scegliere di non ascoltare.

2.2  Comandi sociali:
•	Scambiarsi i contatti (commando handshake). In una comunità virtuale potenzialmente molto estesa è utile creare dei canali di comunicazione preferenziali da usare con particolari utenti. Due utenti che abbiano deciso di scambiarsi un biglietto da visita possono comunicare utilizzando WebRogue senza bisogno di ritrovarsi nella stessa pagina Web. Come nel caso dei tipici software di instant messaging gli utenti con cui si è effettuato un handshake vengono aggiunti ad una lista personale di contatti che mostra se questi sono online e permette di inviargli messaggi.
•	Formare gruppi (commando follow). Questo commando permette di seguire (con il suo consenso) un altro utente durante la navigazione. Ogni volta che l’utente seguito carica una nuova pagina Web (ad esempio cliccando su un link ipertestuale) la stessa pagina viene caricata sul Web browser degli utenti che lo stanno seguendo. Ciò permette di navigare in coppia o in gruppo ad esempio fra le slide di una lezione tenuta online, o semplicemente per divertimento, non necessariamente all’interno del portale dell’istituto. E’ inoltre possibile sussurrare una frase in modo che venga udita solo dai membri del gruppo che viene formato dalla guida e da chi lo segue, nello stesso identico modo con cui si può sussurrare una frase ad un singolo utente.
•	Mettersi in coda (commando wait). Per interagire con un utente impegnato in altre conversazioni e possibile attendere il proprio turno entrando a far parte di una vera e propria coda. Tale commando può apparire superfluo all’interno di una comunità gravitante attorno ad una normale chat, ma appare evidente la sua utilità se la comunità in questione gravita attorno ad un negozio virtuale e si attende di parlare con il commesso.
Questi comandi, come gli altri che verranno sviluppati in seguito, sono attivabili attraverso procedure differenti:
•	Prompt. Ovvero attraverso l’input del nome del commando (preceduto da uno slash) all’interno del textfield che si usa per inviare i messaggi, esattamente come avviene per le chat  IRC. Se si vuole sussurrare qualcosa ad un utente non si dovrà fare altro che scrivere  /whisper nome_utente frase_da_sussurrare, se invece si intende seguire una persona si scriverà /follow nome_utente. Se non viene inserito nessun commando viene utilizzato il comando di default “say”, quindi premere INVIO dopo aver scritto una frase, equivale a scrivere: /say frase_pronunciata.
•	Menù. Tutti i comandi disponibili sono presenti anche all’interno di un menù grazie al quale è possibile selezionare l’azione che si intende compiere. Selezionando il comando wait, ad esempio, apparirà un sottomenù con l’elenco degli utenti che hanno una fila di persone a cui rispondere, se invece si seleziona il commando scream la frase che viene inviata al server sarà urlata, il client aggiungerà infatti (in modo assolutamente trasparente per l’utente) il nome del commando selezionato. Inoltre cliccando col tasto destro su uno dei nomi nella lista degli utenti presenti, apparirà una finestrella con le azioni attraverso le quali è possibile interagire con l’utente selezionato.
•	Toolbar. L’applicazione mette a disposizione anche una toolbar all’interno della quale è possibile trascinare dal menù i comandi che vengono utilizzati più di frequente, creando dei tasti di scelta rapida. Esattamente come accade nella barra dei bookmarks presente in tutti i più comuni Web browser.
Quando si attiva un commando che necessita dell’approvazione di un altro utente per essere eseguito (come ad esempio il comando follow), all’utente che deve dare il suo assenso apparirà una finestra di dialogo attraverso la quale potrà scegliere come rispondere alla richiesta.
La progettazione e lo sviluppo dell’interfaccia grafica è comunque ad uno stato embrionale e qualora i comandi disponibili dovessero crescere considerevolmente nel numero o nella loro complessità sarà certamente necessario riprogettare la GUI nel suo insieme.

3.  e-learning
La possibilità di formare un gruppo guidato da un utente rappresenta di per sé un utile strumento per la formazione a distanza. Un docente o un tutor può infatti invitare altri utenti a seguirlo e guidarli attraverso le slide di una lezione virtuale. Quando il “capogruppo” cambia la pagina del proprio browser, automaticamente anche i browser degli utenti che lo seguono visualizzano la pagina scelta. Il docente non dovrà quindi fare altro che spostarsi di pagina in pagina soffermandosi quando lo riterrà necessario. 
Le pagine che compongono la lezione possono risiedere su qualunque Web server presente su internet e il docente, se riterrà sufficienti i contenuti presenti sul Web, non dovrà fare altro che preparare un percorso tra siti diversi all’interno del quale guiderà la classe che lo sta seguendo. Appare inoltre utile la possibilità di “mettersi in coda” per porre delle domande al docente su una determinata pagina, questo permetterà di gestire in modo ordinato la lezione ed eviterà che il docente cambi pagina senza aver prima esaurito la coda di domande.
All’interno di un determinato portale è inoltre possibile distinguere categorie diverse di utenti. Allo stato attuale questo viene fatto semplicemente in base al nome scelto dall’utente che apparirà di colore diverso all’interno della lista dei contatti. In questo modo per un ospite del portale dell’istituto sarà semplice distinguere tra gli utenti quali sono docenti, quali studenti e quali semplici visitatori. 
WebRogue attualmente non prevede nessuna politica di registrazione. Se, all’interno di un portale, si sceglie che i nick name che terminano con un determinato set di caratteri vengano rappresentati come docenti, nulla impedisce ad un utente qualsiasi di cambiare il proprio nome ad hoc, in modo da esser “scambiato per un professore”.

4.  Altri scenari di utilizzo
L’idea che sta alla base di WebRogue è quella di facilitare l’incontro tra utenti internet che si ritrovano a navigare all’interno dei siti di loro interesse e di facilitare le basilari interazioni tra persone che si ritrovano in un ambiente virtuale: parlare, conoscersi, ritrovarsi, scambiarsi degli oggetti ecc. Questo fa si che WebRogue trovi una perfetta collocazione in numerosi e differenti scenari:
•	Shopping virtuale. All’interno del sito web di un negozio, WebRogue offre numerose opportunità. Qualora sia connesso, si può parlare direttamente con un commesso chiedendo a lui maggiori informazioni riguardanti un determinato prodotto, discutere della sua disponibilità e del prezzo. In alternativa si possono ricevere consigli e suggerimenti da gli altri acquirenti presenti sulla medesima pagina.
•	Visita virtuale di un museo. Caricando la home page di un museo utilizzando WebRogue, un utente può trovare una guida e un gruppo di persone in procinto di iniziare una tour virtuale tra le pagine del museo. L’utente può decidere di unirsi al gruppo e seguire la guida attraverso le varie stanze, ascoltare le spiegazione, porre delle domande.
•	Mercato virtuale. Aggiungendo alcune funzionalità, più o meno complesse, che consentano di gestire una propria “bancarella”, gli utenti avranno la possibilità di mettere in vendita, attraverso WebRogue, i propri oggetti e discutere di questi con i possibili acquirenti presenti on line. In questo senso le possibilità di sviluppo sono molto ampie se si pensa che potrebbero essere realizzati dei portali ad hoc per sfruttare tali funzionalità.
•	Giochi in rete. Gli sviluppi ludici che un’applicazione come WebRogue può assumere sono particolarmente interessanti. Possono essere facilmente organizzati dei quiz a cui partecipare in gruppo o singolarmente; delle vere e proprie “caccia al tesoro” attraverso differenti siti Web oppure sistemi più complessi, simili ai MUD.

5.	Problemi aperti e possibili soluzioni
Il primo problema che si intende risolvere è quello relativo allo sviluppo di un server in grado di gestire un elevato traffico di messaggi e che possa utilizzare un protocollo standard per il loro trasferimento. Jabber pare rappresentare un’ottima soluzione. Si tratta di un insieme di tecnologie e protocolli per lo streaming di XML che consentono con semplicità di scambiarsi messaggi, lo stato della presenza online ed altri dati strutturati. Le informazioni vengono formattate secondo lo standard descritto da XMPP formalizzato dall’Internet Engineering Task Force.
L’utilizzo di un unico server, per quanto performante, può comunque provvedere a risolvere le richieste di un numero limitato di utenti e di stanze, per la scalabilità del sistema sarà dunque necessario prevedere un’architettura di server distribuiti. E’ auspicabile che gli utenti possano rintracciare la presenza di un server WebRogue all’interno del dominio di cui si sta visualizzando la pagina o, in assenza di questo, collegarsi ad un server “pubblico”.
Il secondo problema che si intende affrontare è quello relativo all’identità degli utenti. La filosofia di assoluta libertà che sta alla base del progetto richiede di evitare noiose e spesso inutili registrazioni, per lo stesso motivo per cui non è richiesto identificarsi per accedere ad un qualsiasi luogo pubblico. Come si è rilevato in precedenza, però, possono esistere dei casi in cui accertare l’identità di un utente può rivelarsi indispensabile. All’interno di un istituto scolastico, ad esempio, può essere utile riconoscere quali utenti sono docenti e quali no. Individuare il commesso quando si entra nel sito Web di un negozio e, per il negoziante, riconoscere gli acquirenti con i quali ha già effettuato delle vendite, può rivelarsi ugualmente utile. Identificare in modo univoco gli utenti risulta inoltre indispensabile per lo sviluppo della lista dei contatti che si riempie attraverso l’utilizzo del commando handshake. Il problema può essere facilmente risolto con l’utilizzo dei certificati digitali e un sistema di crittografia a doppia chiave, alla cui generazione ed interpretazione assolverà il client WebRogue. Utilizzando un sistema come questo si risponde solo parzialmente alla richiesta di evitare i lunghi form di registrazione, in quanto ogni utente può essere identificato solo se in possesso della propria chiave privata, la quale, solitamente, non fa parte degli “oggetti” che ognuno porta con se, di conseguenza un utente può essere identificato solo se si collega utilizzando il computer su cui è salvata la chiave. Nessuno delle soluzioni per ora individuate pare convincente ma non è certo compito di WebRogue risolvere il problema dell’identificazione degli utenti sulla rete internet.

Figura 2: Sintesi del possibile sviluppo di WebRogue 

Uno degli sviluppi che pare essere più interessante è quello relativo all’ estensibilità. Ciò che si intende realizzare è un semplice protocollo per descrivere comandi aggiuntivi. Le funzionalità offerte (say, scream, handshake, follow, ecc.), per quanto possano diventare numerose, non saranno mai sufficienti a soddisfare le esigenze particolari di ogni sito Web. Ogni pagina, attraverso i suoi header per esempio, potrebbero pubblicare un proprio set di comandi utilizzabili dagli utenti, se questa prospettiva dovesse raggiungere la concretezza desiderata, potrebbe rappresentare il primo passo verso una nuova modalità di interazione tra portali Web e utenti. In questa ottica non appare impossibile lo sviluppo di utenti virtuali, utenti WebRogue pilotati da computer, avatar lavoratori che potrebbero essere impiegati come commessi, guide turistiche, bibliotecari, operatori del custmer service e simili.

6.  Riferimenti bibliografici e lavori correlati
Jabber: Open Instant Messaging and a Whole Lot More. http://www.jabber.org
IRC: Internet Relay Chat. http://www.irc.org
Moulin C., Girouux S., Pintus A., Sanna R., Mobile Lessons Using Geo-referenced Data in e-Learning, Porc. of 6th Intenational Conference Intelligent Tutoring Systems, France, Biarritz, 2002, p. 1004
Carboni D., Giroux S., Piras A., Sanna S., The Web Around The Corner: Argumentig the Browser with GPS, Proc. of the 13rd International Word Wide Web Conference – Alternate Track Papers & Posters, USA, New York, 2004, pp. 318-319.
Soro A., Sanna R., Angioni M., Carboni D, Paddeu G., DJ-Lab: Laboratorio di Informatica Distribuito, Proc. of Didamatica 2004 e-Learning: qualità didattica e knowledge management, Italy, Ferrara, 2004, pp. 389-395.
Soro A., Marcialis I,, Carboni D., WebRogue: Meet Web People, Proc. of the IADIS International conference, Web Based Communities 2005, Portugal, Algarve, 2005, pp. 267-271.