LIPS - Laboratorio di Ingegneria per la Produzione del Software
a- a+

Creare un Wiki in JSP

Praticamente il Wiki è uno strumento usato dallecomunità Web per gestire un tipo di informazione chepuò aggiornarsi anche nel giro di pochi secondi.Infatti ogni membro registrato può pubblicaremodificare o eliminarne i contenuti online, utilizzandodirettamente il browser con il quale naviga.

 

L'informazionecorre veloce

L'informazione per sua natura non è statica,può cambiare a ritmi velocissimi, soprattutto in unacomunità Web dove lo scambio di contenuti èfondamentale per l'esistenza stessa della community,perciò in questo tipo di realtà virtuale imetodi tradizionali di publishing si adattano con moltadifficoltà.

E' difficile pensare che un solo web master stiacontinuamente ad aggiornare i contenuti sul web, sia per ladifficoltà di reperire ininterrottamente leinformazioni dai membri della community sia perché ilweb master in questione dovrebbe svolgere questaattività per tutto il girono!

Infatti, anche se non abbiamo sperimentato in prima personala creazione di un sito, ci saremo sicuramente accorti dicome la struttura tramite livelli (fig. 1) dei siti web lacui informazione continua ad essere aggiornata necessita diuna ristrutturazione continua della gerarchia.

Ci basta pensare alle volte in cui c'è capitato dicercare una risorsa all'interno di un sito sotto un"ramo" (canale) diverso da quello in cuil'avevamo cercata (o nel caso di web master quante volteci accorgiamo che una stessa risorsa ha perfettamente sensosotto due o più livelli differenti)?

Il risultato è che ci troviamo davanti adun'informazione che diventa disinformazione, infatti, ilivelli sono talmente tanti e complessi che anziché ilmezzo necessario ad arrivare alla nostra informazionediventano il limite dietro il quale la stessa si nasconde.

 

 

Fig. 1 L'informazione correveloce.

 

Il Wiki risponde alla necessità di trovare un nuovomodo per accedere e per mantenere aggiornataun'informazione, che continua ad evolversi, consentendoagli utenti di diventare collaboratori nell'aggiornamentodel sito e strutturando l'informazione secondoun'organizzazione a grafo.

In un grafo tra un nodo ed un altro esistono infinite strade(fig. 2), questo tende a rendere l'informazionepiù accessibile, poiché posso arrivare dapiù punti e soprattutto con molti meno passaggi allarisorsa che mi interessa. Inoltre più la miainformazione sarà rilevante più saranno i nodiche faranno riferimento ad essa rendendola quindiautomaticamente più accessibile.

Fig. 2 L'informazione correveloce. 

 

Il cuore delWiki

Una delle fondamenta del Wiki è il suo modo di gestirei link. Per meglio capire la rivoluzione del Wiki dobbiamopensare a come oggi viene strutturata l'informazione chetroviamo sul web. La navigazione di un web si basa totalmentesul concetto di collegamento, da una pagina èpossibile collegare una qualsiasi risorsa interna od esternaal nostro sito. Il limite del collegamento classico èche il compito di creare il link e di specificare a qualerisorsa corrisponde è demandato completamente a chicostruisce la pagina.

L'innovazione del Wiki comporta che una voltaidentificata una keyword (parola chiave) alla quale vogliamocollegare una risorsa esterna ci basta"sottolinearla" per vederla automagicamentecollegata.

I vari prodotti disponibili per il Wiki Wiki Webdifferiscono leggermente nel modo di identificare le keyword,ad esempio alcuni considerano keyword le parole con al centrodelle maiuscole (come WikiWikiWeb) altri invece consentono diinserire intere frasi utilizzando le parentesi quadre (ad es.[Wiki Wiki web]), tutti i Wiki mantengono comunque lasemplicità con cui è possibile identificare unlink di modo che non è difficile adeguarsi ai varidialetti.
Ma una volta sottolineata la parola come facciamo a definirea quale risorsa questa debba essere collegata?
Ebbene se la parola chiave da noi inserita ègià presente nel nostro Wiki il link saràgenerato direttamente dal motore in modo del tuttotrasparente!

Quante volte c'è capitato di trovare collegamentiinterrotti (classico errore '404 page not found')?Quanto tempo impieghiamo a verificare la consistenza deinostri link ogni volta che apportiamo modifiche al web?
Nel Wiki la consistenza dei collegamenti è gestitadirettamente dal motore.

 

E se invece quellakeyword non è presente?

Ebbene a quel punto entra in gioco il fatto che il Wikigestisce un contenuto collaborativo. La keyword non presenteè sottolineata dal motore e diventa il punto dipartenza, nostro o di qualsiasi altro membro dellacomunità per la generazione di una nuova pagina diapprofondimento.
Il contenuto di un Wiki cresce grazie alla collaborazione diun'intera comunità di persone che si completano avicenda., proprio come succede in un normale gruppo dipersone che vivono a stretto contatto e condividono unostesso interesse. Con la differenza che il Wiki consente lacreazione di gruppi geograficamente distanti ed è ingrado di mantenere una memoria storica di tuttal'esperienza condivisa della comunità .

 

La sintassi

Il Wiki mantiene volutamente una sintassi esemplificatarispetto alle potenzialità dell'HTML perconsentirci di scrivere in nostro contenuto. Lo scopo di unWiki è gestire il contenuto e per riuscirci devecercare il più possibile di evitare all'autorequalsiasi tipo di incombenza che esuli da una chiaraesposizione del contenuto.
La formattazione del testo in un Wiki è totalmentefunzionale al messaggio, per questo è semplice daimparare e da utilizzare.
A dimostrazione della semplicità della sintassi delWiki rimando alla tabella 1 relativa alle regole di SnipSnapun Wiki in java che vedremo subito dopo.

Tab. 1 La sintassi

 

Laconfigurazione

 

a. Estraete il contenuto del pacchetto.
b. Verificate di aver configurato lavariabile JAVA_HOME con la cartella in cui si trova unaversione di java 1.4 o superiore
c. Dopo di che lanciate il file run.bat orun.sh a seconda che vi troviate su Windows o su Linux/Unixil nostro server sarà attivo ma non ancoraconfigurato.
Colleghiamoci alla pagina indicata nel prompt lanciato dalcomando run.
 

1. Storicizzazione deicontenuti

SnipSnap ci consente di salvare i nostri contenuti oltre chesu file system anche su un Database integrato (Embedded MkcoiDatabase), oppure tramite una qualsiasi fonte daticollegabile tramite Jdbc (all'interno di SnipSnap sonogià presenti i driver di PostgreSQL e su mySQL).

Naturalmente l'utilizzo del db diventa pressochénecessario nel caso di una comunità numerosa (moltiaccessi al nostro Wiki) od una notevole quantità dipagine (grande mole di dati da gestire).

Nota: Se decidiamo di usare un Database esterno dovremospecificare i parametri di connessione: JDBC Url, DatabaseDriver, Database User, Password. Operazione che non si rendenecessaria se scegliamo di conservare i nostri dati su filesystem o sul Embedded Mkcoi Database.

 

Fig. 3  Storicizzazione deicontenuti

2. Il primo utente

Il secondo passo da compiere per la configurazione del nostroSnipSnap è la creazione del primo membro del nostroWiki, ovviamente egli sarà anche l'amministratoree quindi il gestore del Wiki.
E' richiesto inoltre specificare un indirizzo e-mailtramite il quale gli utenti potranno contattarci. 

Fig. 4 Il primo utente

3. Personalizziamo il nostroWiki
 

A questo punto non ci rimane che assegnare al nostro Wiki unnome, questo sarà presente in tutte le pagine delnostro Wiki (salvo venire sostituito con il logo nel casoquesto sia presente).
In seguito in una sola riga dovremo definire lo scopo ultimodel nostro Wiki.

In realtà il sistema consente di inserire descrizioniche superano abbondantemente la singola riga, ma ricordiamociche Wiki significa rapido, veloce e quindi dobbiamo dare inmodo rapido ed immediato un'idea del perché stiamocreando un nuovo Wiki.

Abbiamo poi la possibilità di inserire il nostro logoche fungerà da link alla nostra pagina iniziale (comegià accennato nel caso in cui non avessimo un logoquesto sarà sostituito dal nome che abbiamo dato alnostro Wiki).

Infine possiamo decidere se aprire il nostro Wiki al mondooppure creare una comunità moderata in cui gli utentidovranno essere abilitati dall'amministratore.

Fig. 5 Personalizziamo il nostroWiki 

4. Lunga vita al nostro Wiki!

Fig. 6 Lunga vita al nostro Wiki!

Siamo pronti a partire, possiamo decidere di lanciareSnipSnap e preoccuparci in seguito di:
 

  • Definire un tema.
  • Possiamo scegliere uno dei tre di default o scaricarne altri da snipsnap.org oppure generare i nostri temi personalizzati.
  • Specificare la localizzazione.
  • Consentire o meno la registrazione libera di nuovi utenti.
  • Configurare il servizio di mail.
  • Configurare la mail per il servizio di weblog (o Blog).
  • Configurare il proxy server.
  • Definire delle opzioni avanzate.


 
Fig. 7 Lunga vita al nostroWiki!
 
Dopo aver premuto il "pulsantone" Start SnipSnapdopo qualche secondo saremo proiettati nella paginaprincipale del nostro Wiki.
In questa pagina troviamo una serie di rimandi alle paginedi help relative all'uso di SnipSnap dalla sintassi.
Una volta autenticati avremo la possibilità dimodificare le componenti visualizzate nella pagina e saremoin grado di apportare modifiche al nostro Wiki.
Inoltre autenticandoci come primo utente avremo lapossibilità di ritornare al setup iniziale emodificare tutti i parametri che abbiamo visto al punto 4.



 

SnipSnap un Wiki inJava

SnipSnap oltre ad essere un WikiWiki Web è anche unWebBlog, è semplicissimo da installare ancheperchè non ha bisogno di un web services visto che neha già uno al suo interno, per la precisione contienejetty che è anche JSP e Servlet Container.
Per prima cosa scarichiamo il software dall'indirizzo:ftp://snipsnap.org/snipsnap/snipsnap.tgz

 

Conclusioni

Abbiamo fatto una lunga panoramica sul Wiki, abbiamo visto acosa serve, qual è lo scopo che si prefigge e in chemodo prende le distanze da un normale sito web per perseguirela gestione di un contenuto estremamente dinamicoperchè frutto della collaborazione di un gruppo o diuna comunità. Abbiamo avuto modo di apprezzare la suasintassi semplificata orientata al contenuto più chealla sua forma estetica.

Abbiamo visto com'è facile installare un Wiki,nello specifico SnipSnap, con soli quattro passi abbiamopronto un ambiente completo per la memorizzazione e lacondivisione dei nostri contenuti.
Non rimane che prendere confidenza con il nostro Wiki epensare a tutte le attività che possiamo gestire, dalsemplice blog alla raccolta di qualsiasi genere, mole evarietà di contenuti.

 

Ringraziamenti

Un ringraziamento particolare a PaoloCastagna per il suo seminario "Wiki Wiki Web:come installarne e configurarne uno" e per il suoprogetto: http:platypusWiki.sourceforge.net

 

Wiki Wiki Web è un termine hawaiano chesignifica veloce, rapido, informale.

 

Riferimenti
L'ideatore Ward Cunningham: http://c2.com/cgi/Wiki?WardCunningham
Sito di Snip Snap: http://www.snipsnap.org
Sito di Wikipedia:http://en.wikipedia.org/wiki/Main_Page