Introduzione

Nel precedente articolo [MOKAWEB2_I] si è introdotto il Web 2.0, parlando degli aspetti tecnologici e sociali che ne consentono la definizione e fornendo una visione introduttiva sui principi delle tecnologie relative al nuovo modo di intendere il web. Ci teniamo a sottolineare come si possa parlare di Web 2.0 proprio per la concomitanza di più componenti "culturali" ("reti sociali", tagging, "folksonomy"...) e tecnologiche: può risultare quindi quasi artificioso analizzare i diversi aspetti, dedicando i vari articoli di questa serie specificamente a uno "strumento" o a un gruppo di "principi". Tenendo sempre presente questa natura "composita" del Web 2.0, riteniamo però che affrontare diffusamente determinati aspetti in ciascun articolo sia comunque un approccio adeguato, proprio per fare chiarezza e seguire un percorso che, attraverso le varie tappe della serie, ci porti a una comprensione più approfondita di quel fenomeno composito e multiforme che chiamiamo Web 2.0. Per non rimanere nel vago, ci interessa anche che i nostri lettori apprendano, al di là delle fondamentali importantissime considerazioni culturali, anche l'utilizzo operativo di strumenti e tecnologie Web 2.0.

La tipologia di strumento che maggiormente ha contribuito alla diffusione di Web 2.0 è il Wiki.

In questo articolo vedremo quali caratteristiche sono tipicamente offerte da tali strumenti attraverso un esempio pratico di utilizzo.

Che cosa è un WIKI?

Il Wiki è uno strumento con il quale è possibile inserire sul Web una serie di informazioni, in modo semplice, senza bisogno di assistenza (tecnica, ma non solo...) esterna, facilitando di conseguenza l'interazione con clienti, partner, colleghi, collaboratori e... amici. Il nome deriva dall'espressione hawaiana "wiki wiki" che significa "rapido", "molto veloce", sebbene per molti WIKI sia anche l'acronimo di "What I Know Is", a rimarcarne il significato collaborativo e di costruzione continua: il Wiki diventa lo strumento grazie al quale e il "luogo" in cui "ciò che io so" su un determinato argomento viene depositato, modificato, condiviso, accresciuto in collaborazione con altri. Un Wiki è quindi sia un sistema di gestione dei contenuti (Content Management System, CMS) che un repository web di documenti ipertestuali che permette, ad ogni utilizzatore, di aggiungere propri contenuti e di modificare quelli già esistenti inseriti da altri.

Il principio guida è quello accrescere la base di conoscenza collettiva mediante la collaborazione tra gli utenti (modello partecipativo). Le sue funzionalità tipiche sono di inserimento di testo strutturato (nelle pagine già esistenti o in nuove strutture create dall'utente) e di attach di file (p.e., documenti, immagini, ...).

Una caratteristica distintiva della tecnologia Wiki è la facilità con cui le pagine possono essere create e aggiornate prevedendo la possibilità di allegare documenti, immagini, collaborazione di testo, condivisione di informazioni. Un Wiki permette di "scrivere collettivamente" dei documenti senza necessità di particolari di conoscenze tecniche ma utilizzando un semplice linguaggio di markup (script) o text processor mediante il browser web. Il risultato sarà comunque una normale pagina Web, fruibile da un comune Browser; la caratteristica distintiva della tecnologia Wiki è quindi la facilità con cui le pagine possono essere create e aggiornate.

Alla base di un Wiki ci sono tecnologie Web note (p.e. Javascript, Php, MySql, Apache, ...) che però consentono una fruizione dei contenuti differente rispetto ai tradizionali siti Web e soprattutto spingono gli utenti ad assumere un ruolo "attivo" nella definizione di nuovi contenuti (è questa la vera innovazione del Wiki!).

L'esempio più significativo di Wiki è Wikipedia [WIKIPEDIA]: se si pensa all'utilizzo estensivo che ne viene fatto dagli utenti finali delle tipologie più disparate, magari completamente digiuni dei principi tecnologici che ne determinano il funzionamento, si comprende l'impatto sicuramente pervasivo che lo strumento Wiki è stato in grado di ottenere in tempi brevissimi su milioni di utilizzatori. Al di là delle critiche che in più casi sono state portate al valore culturale dei contenuti di Wikipedia, specie in certi ambiti del sapere, essa rimane una risorsa accessibile, aggiornata, immediata, in grado di risolvere all'istante dubbi e interrogativi degli utenti.

Figura 1 - Wikipedia (http://www.wikipedia.it/): Voce, Discussione, Modifica e Cronologia
Figura 1 - Wikipedia (http://www.wikipedia.it/): Voce, Discussione, Modifica e Cronologia

Il grande fermento legato all'espansione "del modello Web 2.0" ha ovviamente spinto una rapida diffusione di un gran numero di strumenti differenti a vari gradi di complessità.

Possiamo già parlare di almeno due "generazioni" di Wiki. Volendo semplificare, i Wiki di prima generazione mettono semplicemente a disposizione degli utenti strumenti per la gestione dei contenuti in modo collaborativo. I Wiki di seconda generazione si spingono oltre e permettono di creare applicazioni web ritagliate per le proprie specifiche esigenze mediante lo sviluppo di plugin personalizzati per le proprie esigenze come ad esempio blog, applicazioni di Mashups e RSS Feed Aggregator.

Vediamo in cosa consiste e come è possibile installarlo, configurarlo e usarlo in maniera semplice.

xWiki: un Wiki (open source) Java

XWiki è un Wiki che basa la sua architettura su prodotti prettamente open-source. Nello specifico la sua architettura si basa su:

• Hibernate: per l'accesso al database e per la memorizzazione di documenti, meta dati, immagini... • DBCP: per gestire il pooling delle connessioni al DB • JRCS: per il versioning degli attachment • Struts: per gestire gli URL scheme • Velocity: per la gestione delle viste • Radeox: come motore di rendering • OSCache: gestione della cache dei documenti • OSUser e Security Filter: per la gestione di autenticazione e autorizzazione

Figura 2 - L'architettura xWiki
Figura 2 - L'architettura xWiki

Installazione di xWiki

xWiki si installa come una normale Web App. Per il deploy su Tomcat è sufficiente scompattare il file WAR sotto

<<TOMCAT_HOME>>

/webapps (p.e.: C:\installed\tomcat-5.5.15\webapps\xwiki). xWiki ha bisogno di un DataBase per memorizzare il suo contenuto (allegati, pagine e così via) e può funzionare con svariati DB mediante JDBC (funziona, per esempio, con MySQL, HSQL, SQL Server, Oracle). In particolare, la configurazione di HSQL è piuttosto semplice: basta indicare nel file hibernate.cfg.xml (p.e.: C:\installed\tomcat-5.5.15\webapps\xwiki\WEB-INF\hibernate.cfg.xml) la locazione in cui verrà creato il file di repository.

xWiki si installa come una normale Web App. Per il deploy su Tomcat è sufficiente scompattare il file WAR sotto <<TOMCAT_HOME>>/webapps (p.e.: C:\installed\tomcat-5.5.15\webapps\xwiki). xWiki ha bisogno di un DataBase per memorizzare il suo contenuto (allegati, pagine e così via) e può funzionare con svariati DB mediante JDBC (funziona, per esempio, con MySQL, HSQL, SQL Server, Oracle). In particolare, la configurazione di HSQL è piuttosto semplice: basta indicare nel file hibernate.cfg.xml (p.e.: C:\installed\tomcat-5.5.15\webapps\xwiki\WEB-INF\hibernate.cfg.xml) la locazione in cui verrà creato il file di repository.

<property name="connection.url">
  jdbc:hsqldb:file:/C:/installed/tomcat-5.5.15/webapps/xwiki/myxwiki_db;shutdown=true
</property>
<property name="connection.username">sa</property>
<property name="connection.password"></property>
<property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <title>Wiki - Sample Site</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    ...
  </head>
  <body>
    <div id="xwikicontent" class="show-all">
      <div id="columns">
        <div class="cols-wrapper">
          <div class="float-wrapper">
            <div id="col-a">
              <div class="main-content">
                <h3 class="heading-1">
                  <a id="Titolo%3A+Esempio+di+pagina+WIKI" name="Titolo%3A+Esempio+di+pagina+WIKI">
                    Titolo: Esempio di pagina WIKI
                  </a>
                </h3>
                <h3 class="heading-1-1">
                  <a id="Sotto+titolo" name="Sotto+titolo">Sotto titolo</a>
                </h3>
                <p class="paragraph"/>
                Testo: <strong class="strong">testo in bold</strong>
                <ul class="star">
                  <li>Item 1</li>
                  <li>Item 2</li>
                </ul>
                Image Attachment:
                <img src="/xwiki/bin/download/BPMOffshore/VIR/filename.gif" alt="filename.gif" />
                <p class="paragraph"/>
                Document Attachment:
                <a href="/xwiki/bin/download/mywikisite/KOK/filename.doc">filename.doc</a>
                <p class="paragraph"/>
                <i class="italic">Fine esempio pagina</i>
                ...
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </body>
</html>

Le istruzioni di formattazione fornite variano considerevolmente a seconda dello strumento; possono essere semplici (essenzialmente editing di testo) o complesse (supporto per tabelle, immagini, formule, elementi interattivi come sondaggi e giochi). Data l'attuale confusione, è in corso un tentativo di definire un linguaggio Wiki Markup Standard (vedere [WMS]).