Uno degli strumenti che maggiormente hanno 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.
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: 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.
Di prodotti per creare un Wiki ce ne sono molti e basati su diverse tecnologie come Java (p.e.: xWiki, JSPWiki e VeryQuick Wiki), ASP (p.e.: WikiPot), PHP (p.e.: PhpWiki) e Perl; molti di questi prodotti sono open source [WIKIPEDIA] [XWIKI]. Nei nostri esempi utilizzeremo xWiki (vedere [XWIKI]).
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
Installazione di xWiki
xWiki si installa come una normale Web App. Per il deploy su Tomcat è sufficiente scompattare il file WAR sotto <
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 omcat-5.5.15webappsxwikiWEB-INFhibernate.cfg.xml) la locazione in cui verrà creato il file di repository.
ÃÂ jdbc:hsqldb:file:/C:/installed/tomcat-5.5.15/webapps/xwiki/myxwiki_db;shutdown=truesa org.hsqldb.jdbcDriver org.hibernate.dialect.HSQLDialect
Avviando Tomcat (<
http://localhost:8080/xwiki
si ottiene la pagina iniziale del Wiki.
Figura 3 -ÃÂ xWiki: pagina iniziale
Selezionando il link “XWiki Home Page” si può iniziare a modificare la prima pagina del Wiki mediante “edit this page”.
Figura 4 – La pagina di modifica di xWiki
Come si vede è possibile modificare la pagina, aggiungere file in allegato (come immagini, documenti, risorse) e aggiungere commenti alla pagina con estrema facilità .
Nei Wiki tradizionali, ci sono tre rappresentazioni per ogni pagina:
- il codice HTML
- la pagina “renderizzata” (ciò che risulta dalla visione di quel codice con un browser web)
- il codice sorgente modificabile dagli utenti (a partire dal quale il server produce l‘HTML)
Per creare una pagina, i Wiki tipicamente forniscono due modalità di editing: la prima mediante l‘uso diretto del linguaggio “wikitext”, la seconda mediante editing grafico in modalità WYSIWYG (What You See Is What You Get).
“wikitext” è di fatto un linguaggio di markup semplificato il cui stile e la cui sintassi variano tra i vari strumenti. Anche un utente che non conosca HTML, Javascript e CSS potrà produrre semplicemente contenuti ottenendo dei buoni risultati grafici.
La sintassi base dei wikitext è facile ed immediata; di seguito si riporta un semplice esempio:
1 Titolo: Esempio di pagina WIKI
1.1 Sotto titolo
Testo: *testo in bold*
* Item 1
* Item 2
Image Attachment: {image:filename.gif}
Document Attachment:{attach:filename.doc}
~~Fine esempio pagina~~
Il risultato prodotto dal server xWiki è una pagina HTML:
Wiki - Sample Site
. . .
ÃÂ
ÃÂ ÃÂ
ÃÂ ÃÂ ÃÂ
ÃÂ ÃÂ ÃÂ ÃÂ
ÃÂ ÃÂ ÃÂ ÃÂ
ÃÂ ÃÂ ÃÂ ÃÂ ÃÂname="Titolo%3A+Esempio+di+pagina+WIKI">Titolo: Esempio di pagina WIKI
Sotto titolo
Testo: testo in boldImage Attachment:
- Item 1
- Item 2
Document Attachment:filename.doc
Fine esempio pagina
. . .
Figura 5 -ÃÂ xWiki text
Gli strumenti più recenti forniscono anche tool integratiÃÂ di editing visuale (WYSIWYG) che permettono agli utenti di creare pagine senza conoscere neppure Wiki scripting. Tipicamente queste funzionalità visuali sono fornite grazie a controlli ActiveX o “editor Ajax” che traducono i comandi di formattazione inseriti graficamente (come “grassetto”,”corsivo”, “linea”, …) nei tag HTML corrispondenti.
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]).Figura 6:ÃÂ xWiki: modalità wikitext (a sinistra) ed editor WYSIWYG (a destra)
Altro esempio di Wiki Java open source è JSPWiki [JSPW]. Distribuito anch‘esso come Web Application (.war) è facilmente installabile su qualsiasi Servlet Engine. JSPWiki è utilizzato per la pubblicazione della documentazione dei progetti Sun GlassFish.
Figura 7 – JSPWiki, un altro Wiki Java open source
ConclusioniDal punto di vista sociale, il Web 2.0 è fatto da individui che propongono, interagiscono e collaborano attivamente nella produzione di contenuti condivisi. Il tal senso, il Wiki, come strumento volto a semplificare la collaborazione e la comunicazione, ha svolto e svolge un ruolo fondamentale nello sviluppo di un “approccio Web 2.0”.
In questo articolo abbiamo visto brevemente caratteristiche e ambiti di utilizzo del Wiki, per passare poi alla presentazione di un prodotto Java open source: xWiki. Attraverso poche semplici operazioni, abbiamo visto come sia possibile installarlo e come sia facile utilizzarlo.
Nel prossimo articolo proseguiremo l‘analisi del complesso scenario Web 2.0 continuando a parlare di altre tecnologie.
Riferimenti
[MOKAWEB2_I]
S. Rossini – G. Morello: “Il Web 2.0 – I parte: principi e tecnologie, una visione introduttiva”, Mokabyte 117, Aprile 2007[WIKIPEDIA]
http://www.wikipedia.org/[WP_WK]
http://it.wikipedia.org/wiki/Wiki[XWIKI]
http://www.xwiki.org/xwiki/bin/view/Main/WebHome[XWII] XWiki Installation Instructions
http://www.xwiki.org/xwiki/bin/view/AdminGuide/[WMS] Wiki Markup Standard
http://www.usemod.com/cgi-bin/mb.pl?WikiMarkupStandard[JSPW] JSPWiki
http://www.jspwiki.org/Wiki.jsp[VQW] VeryQuick Wiki
http://www.vqwiki.org
Stefano Rossini è nato a Giussano (MI) il 29/10/1970 e ha conseguito il diploma universitario in Ingegneria Informatica presso il Politecnico di Torino. Ha maturato più di venti anni di esperienza in diversi progetti Enterprise mission-critical ricoprendo i ruoli di IT Program Manager, Project Manager & Software Architect presso importanti gruppi bancari, pubblica sanità, pubblica amministrazione e software house.
Attualmente ricopre il ruolo di Sofware Factory Manager, Lean Change Agent ed Enterprise Architect presso Capgemini.
Esperto in ambito di sanità pubblica come Project/Program Manager per la governance dei progetti IT strategici di Cartella Clinica Elettronica (CCE) e Fascicolo Sanitario Elettronico (FSE).
Esperto in ambito bancario dove ha ricoperto per una decina d'anni il ruolo di Project Manager e Leader Software Architect (BPM, IWBank e BPS) occupandosi della pianificazione e gestione del progetto, del coordinamento del gruppo di sviluppo software sia InHouse che Nearshore/Offshore. Esperto nella conduzione di progetti secondo metodologia di Project Management PMBok e metodologia agile Scrum.
Si occupa di Java dal 1999 arrivando da precedenti esperienze in C e C++ in ambito Telco (Alcatel & Siemens). Ha pubblicato più di un centinaio di articoli su argomenti di IT Governance, Project Management, architetture enterprise e problematiche di Integrazione e SOA. È coautore dei libri "Manuale pratico di Java" (2001) e "La programmazione della piattaforma J2EE" (2005) editi da Hops/Tecniche Nuove. Certificazioni IT Governance: COBIT V.4.1 Foundation Certificate; certificazioni IT Service Management: ITIL V.3 Foundation Examination; certificazioni Project Management: CSM - Scrum Master, CSPO - Scrum Product Owner, PMI: 35 contact hours.
Profilo linkedin: http://www.linkedin.com/pub/stefano-rossini/30/977/242
Stefano Rossini
Stefano Rossini è nato a Giussano (MI) il 29/10/1970 e ha conseguito il diploma universitario in Ingegneria Informatica presso il Politecnico di Torino. Ha maturato più di venti anni di esperienza in diversi progetti Enterprise mission-critical ricoprendo i ruoli di IT Program Manager, Project Manager & Software Architect presso importanti gruppi bancari, pubblica sanità, pubblica amministrazione e software house. Attualmente ricopre il ruolo di Sofware Factory Manager, Lean Change Agent ed Enterprise Architect presso Capgemini. Esperto in ambito di sanità pubblica come Project/Program Manager per la governance dei progetti IT strategici di Cartella Clinica Elettronica (CCE) e Fascicolo Sanitario Elettronico (FSE). Esperto in ambito bancario dove ha ricoperto per una decina d'anni il ruolo di Project Manager e Leader Software Architect (BPM, IWBank e BPS) occupandosi della pianificazione e gestione del progetto, del coordinamento del gruppo di sviluppo software sia InHouse che Nearshore/Offshore. Esperto nella conduzione di progetti secondo metodologia di Project Management PMBok e metodologia agile Scrum. Si occupa di Java dal 1999 arrivando da precedenti esperienze in C e C++ in ambito Telco (Alcatel & Siemens). Ha pubblicato più di un centinaio di articoli su argomenti di IT Governance, Project Management, architetture enterprise e problematiche di Integrazione e SOA. È coautore dei libri "Manuale pratico di Java" (2001) e "La programmazione della piattaforma J2EE" (2005) editi da Hops/Tecniche Nuove. Certificazioni IT Governance: COBIT V.4.1 Foundation Certificate; certificazioni IT Service Management: ITIL V.3 Foundation Examination; certificazioni Project Management: CSM - Scrum Master, CSPO - Scrum Product Owner, PMI: 35 contact hours. Profilo linkedin: http://www.linkedin.com/pub/stefano-rossini/30/977/242Tutti gli articoli Nello stesso numeroLoading...IV parte: Continuous Integration
III parte: Integrare ed estendere il framework
Integrare CICS con il Binding Component sviluppato dal Gruppo Imola
IV parte: Approfondimenti sul POM
L‘utilità del semantic web in due casi di studio
II parte - Il ciclo di vita di elaborazione delle richieste
II parte: Integrazione di Web Services
III parte: Iniziamo a percorrere i binari di Rails
Nella stessa serieLoading...IV parte: RSS
III parte: AJAX
I parte: principi e tecnologie, una visione introduttiva