XWiki

XWiki Platform è un’applicazione web open source sviluppata in linguaggio Java, consistente(*) in un motore wiki (Wiki Engine) simile a quello sul quale è basata Wikipedia. Il principio cardine del wiki è la collaborazione: tutti gli utenti possono contribuire liberamente alla redazione dei suoi contenuti.
Tuttavia definire XWiki un semplice Wiki Engine è veramente riduttivo, non ho dubbi infatti nel ritenere che in molti ambienti enterprise un’installazione di XWiki potrebbe soddisfare gran parte delle esigenze di informatizzazione. Mi piacerebbe poter illustrare subito le tante caratteristiche interessanti di questo pacchetto ma il rischio è di precipitare in una trattazione confusa. Rimando dunque i dettagli ai prossimi articoli e mi limito qui ad un’infarinatura che spero risulti chiara ed immediata.

Il concetto di condivisione della conoscenza lanciato da Wikipedia piace sempre di più anche alle aziende come pure ai team di sviluppo indipendenti che spesso decidono di crearsi il loro wiki “privato”. Avrete forse notato che spesso la documentazione delle applicazioni, in particolare di quelle open source, è resa disponibile sotto forma di wiki per permettere a tutti gli sviluppatori di correggerla ed aggiornarla agevolmente. Ad una azienda potrebbe inoltre interessare che i propri dipendenti condividano determinate conoscenze tra loro, e allora perché non realizzare, ad esempio, un glossario di termini specifici ad uso interno, consultabile ed aggiornabile dai dipendenti stessi? È chiaro che in questi casi l’adozione della struttura collaborativa wiki rappresenta la soluzione ideale del problema, e secondo me XWiki è il motore wiki più flessibile tra quelli open source scritti in Java.

Iniziare ad usare XWiki, inoltre, è davvero semplice: dopo aver installato il WAR in un Web Container, è sufficiente una semplice configurazione per ottenere un wiki perfettamente funzionante, corredato di pagine esemplificative e di interfacce di amministrazione già pronte all’uso.

Ma il bello deve ancora venire! Tornando un momento all’esempio di Wikipedia, i più attenti avranno notato che non tutte le sue pagine sono statiche: vi sono infatti alcune voci speciali che, ad esempio, mostrano l’elenco di tutte le pagine appartenenti ad una specifica categoria o comunque caratterizzate da un particolare attributo. Queste pagine speciali, dunque, non contengono testo come le normali voci wiki, ma uno script, un pezzo di codice che genera HTML in base a determinati parametri. XWiki permette di scrivere pagine dinamiche con i linguaggi Velocity e Groovy inserendo il codice direttamente nella voce wiki; questa caratteristica, unita alla grande flessibilità di tutta la piattaforma XWiki e alle sue API molto versatili, consente al programmatore di creare di tutto: pagine che ricevono parametri come fossero servlet, che richiamano il contenuto di altre pagine, che creano nuove pagine o modificano attributi di pagine esistenti, che spediscono e-mail in automatico e molto molto altro; insomma è possibile creare vere e proprie sotto-applicazioni destinate agli usi più vari e che di fatto poco hanno a che vedere con il wiki in senso stretto. Tutto questo senza dover ricompilare nemmeno una riga del codice del motore XWiki, senza dover deployare (orrore linguistico) nuovi WAR, senza dover operare direttamente sul DB, ma semplicemente lavorando con un browser.

Ah, dimenticavo: il versioning è “in omaggio” grazie alla struttura stessa del wiki che mantiene una cronologia completa di tutte le revisioni di ogni pagina. Tutto gratis, dietro le quinte. Si potrà comunque decidere in qualsiasi momento di ripulire la cronologia di determinate pagine, magari scrivendo una procedura automatizzata in Velocity, tanto per cambiare.

Spero di avervi incuriosito almeno un po’; sarò ben lieto di approfondire l’argomento nei prossimi post anche con degli esempi. Se sono stato poco chiaro in qualche punto, ci vediamo nella sezione commenti!


(*) ero tentato di scrivere “che implementa”, ma trovo che implementare sia un verbo orribile.