La creazione dei contenuti si semplifica. I Content Management System.
Uno dei problemi che ben presto il Web evidenziò fu quello della difficoltà nella gestione dei contenuti da parte dell’utenza normale. Lo stesso inventore del Web, Tim Berners Lee, nel suo blog [LEE05] scrive: “ Nel 1989 uno dei principali obiettivi del WWW era quello di essere uno spazio per la condivisione delle informazioni. Sembrava evidente che sarebbe stato uno spazio in cui chiunque poteva essere creativo, a cui chiunque avrebbe potuto contribuire. Il primo browser era in effetti un browser/ editor, che consentiva a chiunque di modificare qualsiasi pagina, e di salvare nuovamente sul Web se si avevano i diritti di accesso. Curiosamente, il Web ha perso molto come medium per la pubblicazione di contenuti, e gli utenti eseguono le modifiche in modalità non in linea. Stranamente erano disposti a utilizzare la divertente parentesi angolare del codice sorgente HTML, ma non a pretendere un editor what you see is what you get. Il WWW fu presto pieno di un sacco di cose interessanti, ma non era più uno spazio per la progettazione collaborativa”
Il processo di creazione di contenuti quindi non era ad appannaggio di chiunque, ma occorreva saper produrre codice per il Web e quindi molto spesso chi voleva pubblicare un sito era costretto ad affidarsi ad un fornitore specializzato che occupava dell’impaginazione e della pubblicazione dei contenuti che il cliente gli aveva consegnato. Naturalmente questa pubblicazione “differita” oltre che generare costi, causava molto spesso la nascita di siti Web statici, i cui contenuti non venivano mai più aggiornati, o gli aggiornamenti erano molto rari e la gestione collaborativa dei contenuti era ovviamente impensabile. La nascita dei cosiddetti siti dinamici può essere ricondotta ad un primo efficace tentativo di sopperire a queste lacune.; essi sono siti in cui si realizza per la prima volta la separazione tra la forma (costituita da una struttura grafica fissa) ed i contenuti (memorizzati e prelevati da un database). La loro implementazione viene eseguita attraverso linguaggi di scripting lato server, quali ad esempio PHP (acronimo ricorsivo di Hypertext Preprocessor) [PHP07], Python [PYT07] o ASP (Active Server Pages) [ASP-MIC] che costruiscono dinamicamente la pagina HTML riempiendola dei contenuti estratti ad hoc da un database. Il vantaggio di questo tipo di approccio risiede nel fatto che la progettazione e la realizzazione di un singolo layout grafico può permettere la generazione di numerosissime pagine Web.
I siti Web dinamici tuttavia da soli non colmano la lacuna del Web evidenziata da Berners Lee, ovvero non consentono la generazione di contenuti Web da parte di un’utenza non esperta: i Content Management System (CMS) si inseriscono proprio a colmare questi limiti del Web riportandolo alla sua dimensione originaria. I CMS sono delle applicazioni Web progettate per rendere facile per degli utenti privi di conoscenze tecniche creare, modificare e gestire un sito Web in un’ottica di creazione collaborativa dei documenti e dei contenuti. Originariamente i CMS non nacquero per il Web ma come applicazione sviluppata ad uso interno da una grossa organizzazione la CNET per la gestione della notevole mole delle proprie pubblicazioni, ma nel Web trovarono la loro dimensione di maggior successo. I CMS sono applicazioni lato server costituite da una sezione amministrativa per l’organizzazione e la supervisione, detta back end e da una sezione invece dedicata all’inserimento, modifica ed aggiornamento dei contenuti ad uso degli utenti denominata front end; i processi fondamentali che ne costituiscono l’architettura consentono di gestire i contenuti a partire dalla loro creazione (authoring), all’organizzazione del loro flusso all’interno di un gruppo di lavoro (workflow), alla loro archiviazione (storage).
Un CMS non è costituito da un’unica applicazione, ma è costitutito da un kernel modulare in cui ogni modulo si occupa della gestione di una parte delle funzionalità. Si possono individuare alcune funzionalità fondamentali che costituiscono le fondamenta di un CMS e che interagiscono ottimamente fra loro in::
• il database per l’archiviazione dei contenuti;
• il motore di pubblicazione dei contenuti su differenti media;
• il sistema per la gestione collaborativa dei contenuti.
Ancora una volta il concetto chiave che ritorna in gioco è la netta separazione tra il contenuto e la forma che in questo caso permette di realizzare una separazione di ruoli per cui semplificando, l’utenza non tecnica, ma detentrice dei contenuti riesce in maniera autonoma a gestirli e pubblicarli delegando all’utenza esperta la gestione della forma (creazione dei templates grafici) e la definizione dei ruoli degli utenti (organizzazione del workflow).
L’architettura dei CMS è scalabile, ovverosia permette un’evoluzione del sistema, mediante la modifica o l’aggiunta di nuove funzionalità e questo è probabilmente una delle punti cardine che ne hanno decretato il successo, assieme alla possibilità di redefinire il template grafico di un sito senza dover riscriverne struttura e contenuti. Con il corso degli anni sono nati numerosissimi CMS, sempre più evoluti ed in particolare molti di essi vengono riliasciati con licenza GNU General Public License (GPL) [GNU-GPL] ovverosia viene consentito all’utente libertà di utilizzo, copia, modifica e distribuzione del software. Tale condizione ha permesso alle numerose comunità di utilizzatori di partecipare allo svuluppo del software, permettendone una rapida ed inesorabile crescita. Allo stato attuale i CMS integrano al loro interno funzionalità sempre più avanzate che si possono riassumere nei seguenti:
• supporto alla metadatazione per l’archiviazione, la ricerca e la condivisione dei contenuti proteso alla realizzazione di un Web semantico;
• supporto all’accessibilità. Molti CMS dell’ultima generazione soddisfato i requisiti imposti dalle direttive della Web Accessibility Initiative (WAI) del W3C [WAI] tesi a rendere il Web accessibile a tutti, promuovendo tecnologie che tengano conto delle notevoli differenze in termini di cultura, formazione, capacità, risorse materiali, e limitazioni fisiche degli utenti in tutti i continenti;
• gestione multilingua, ovvero possibilità di presentare gli stessi contenuti in lingue differenti;
• automatismo nella creazione della navigazione e della mappa del sito, ovvero il CMS aggiorna menu e collegamenti in maniera automatica;
• possibilità di estensione delle funzionalità del CMS attraverso plug-in.
• gestione dei contenuti multimediali.
Pertanto i CMS nel corso del tempo, da semplici strumenti per la costruzione guidata di siti Web sono assurti a strumenti potenti per la completa gestione dei contenuti sul Web in linea con le nuove tendenze e direttive imposte dal W3C e dalla comunità internazionale.
[LEE05] Tim Berners Lee, “So I have a blog”, 12 dicembre 2005, http://dig.csail.mit.edu/breadcrumbs/blog/4
[GNU-GPL] Free Software Foundation, GNU General Public License Version 3, http://www.fsf.org/licensing/licenses/gpl.html, 2007
[WAI-W3C] W3C, Web Accessibility Initiative, http://www.w3.org/WAI/ , 2007
[PHP07] The PHP Group, PHP: Hypertext Preprocessor, 2007, http://www.php.net
[PYT07] Python Software Foundation, Python Programming Language – Official Website, 2007, http://www.python.org
[ASP-MIC] Microsoft Corporation, The Official Microsoft ASP.NET 2.0 Website, 2007, http://www.asp.net










