2. Sistemi di gestione del
contenuto
Un sistema di gestione di contenuti (content management) è un software che, secondo la (7), offre le funzionalità di:
creazione aggiornamento pubblicazione traduzione archiviazione ed utilizzo workflow
su contenuti informativi di vario genere.
Il content management viene utilizzato da varie persone o gruppi di persone, che possono anche collaborano tra loro per l’ottemperanza delle funzionalità di cui sopra.
E’ possibile distinguere i ruoli base di un sistema di content management che sono i seguenti:
Autore principale: creatore del contenuto
Curatore (o autore secondario): responsabile dell’aspetto formale, dello stile e della rappresentazione del contenuto
Editore: responsabile della diffusione del contenuto
Amministratore: gestore delle versioni del contenuto negli archivi
2.1 Terminologia
I sistemi di gestione di contenuti è composto da molte parti, ognuna delle quali ha assunto, per motivazioni di marketing, diverse nomenclature.
Tra quelle riscontrate vengono definiti i seguenti.
2.2.1 Electronic Document Management
Electronic Document Management (EDM) è l’insieme degli strumenti che permettono la creazione, gestione e memorizzazione di documenti elettronici.
2.2.2 Document Image
Document Image (DI) è l’insieme degli strumenti utilizzati per effettuare l’inserimento di un documento cartaceo all’interno di sistemi di ECM (Enterprise content management).
2.2.3 Digital Asset Management
Digital asset management (DAM) è l’insieme degli strumenti per l’archiviazione, la conservazione ed il recupero di informazioni digitali.
Questo tipo di strumenti a volte incorporano componenti di catalogazione di dati oltre che a strumenti di gestione di workflow per creazioni digitali come immagini, clip audio e la gestione dei diritti ed autorizzazioni (9).
2.2.4 Shared Drives
Shared Drives (SD) è l’insieme di strumenti atti alla condivisione di documenti elettronici tramite l’utilizzo di gerarchie di cartelle.
2.2.5 Version Control
Version Control (VC) è l’insieme di strumenti che permettono a diversi utenti di accedere e modificare documenti. Infatti questi strumenti dirimono le contese di accesso bloccando allo stato di sola lettura nel caso di modifiche contemporanee.
Questi strumenti, inoltre, permettono di avere la history delle diverse versioni differenti dello stesso documento.
2.2.6 Records Management
Records management (RM) (7) è l’insieme di quegli strumenti che servono per poter : classificare
indicizzare conservare salvaguardare
Questi strumenti sono indispensabili per garantire che un informazione precedentemente salvata, venga recuperata correttamente.
2.2.7 Collaborative Project Management Tools
Collaborative Project Management Tools (CPMT) è l’insieme degli strumenti utilizzati per rendere più semplice la collaborazione tra diverse persone. Tra questi si ricordano strumenti di videoconferenza, calendari elettronici, sistemi di editing collaborativi e strumenti come blog e wiki.
2.2.8 Knowledge Management
La (8) definisce la KM (Knowledge Management) come “set of professional practices which improves the capabilities of the organization’s human resources and enhances their ability to share what they know”.
La Knowledge ha un proprio lifecycle la cui rappresentazione è la seguente:
Figura 1: Lifecyle di Knowledge
2.2.9 Web Content Management System
Un Web Content Management System (WCMS) è un’applicazione web che ha scopo di pubblicare contenuti si senza necessità di avere particolari conoscenze tecniche.
Sono formati da un front-end che visualizza i contenuti e di un back-end per la gestione, di solito sia front-end che back-end sono siti web.
2.2.10 Document Management System
I Document Management System (DMS) sono uno strumenti, spesso facente parte di un ECM, utilizzato per la memorizzazione di contenuti come testi o immagini proveniente da documenti cartacei.
Essi sono nati negli anni ’80 per dare supporto alle grande mole di pagine che erano a supporto del loro business.
Nel corso degli anni, l’evoluzione tecnologia ha portato gli strumenti di DMS a gestire documenti digitali creati su vari computer.
Per questo gli strumenti di DMS si sono arricchiti di funzionalità come: Electronic DM
Document imaging Version control Shared drives
2.2.11 Enterprise Content Management
Enterprise content management (ECM) si riferisce a quell’insieme di tecnologie che provvedono alla creazione, memorizzazione, distribuzione e pubblicazione per un uso aziendale (10).
Dal 2005 l’Association for Information and Image Management (AIIM) ha cercato di dare un definizione univoca per i sistemi ECM. Dopo anni di variazioni ed aggiunte, nel 2008 un sistema ECM è stato definito come:”Enterprise Content Management (ECM) is the strategies, methods and tools used to capture, manage, store, preserve, and deliver content and documents related to organizational processes. ECM tools and strategies allow the management of an organization's unstructured information, wherever that information exists”.
Essendo un ECM un sistema che deve emulare l’ambiente in cui le persone lavorano, occorre che questi abbiano incorporati i concetti di gruppo e dipartimento.
In generale è possibile distinguere cinque componenti principali che formano un sistema di ECM: capture manage store preserve deliver
Del modulo “capture” fanno parte tutte quelle tecnologie che permettono di generare, creare, acquisire ed elaborare informazioni sia analogiche che digitali.
Un primo sistema di creazione di contenuti è quello manuale ai sistemi di acquisizione e riconoscimento di testo stampato.
Tra le tecnologie di riconoscimento si ricordano:
1. optical character recognition (OCR): per convertire immagini di testo scritto a mano o di testo stampato in testo codificato per la macchina
2. handprint character recognition (HCR): che migliora sostanzialmente il riconoscimento di testi scritti a mano
3. intelligent character recognition (ICR): sviluppo dell’HCR che potenzia la possibilità di riconoscimento dei testi scritti a mano
4. barcode recognition: ossia la tecnologia che permette il riconoscimento di codici a barre che possono essere sia di tipo unidimensionale che bidimensionale (per esempio i codici QR)
5. optical mark recognition (OMR): ossia il processo di riconoscimento di marcamenti (segni scusi) in punti predefiniti della pagina
Il modulo “manage” è composto da componenti che servono per la gestione, l’elaborazione e l’uso di informazioni. Esso incorpora:
database
Il modulo “store” è composto da tutti quei componenti per la memorizzazione temporanea delle informazioni che non richiedono l’archiviazione.
Il modulo “preserve” si compone dei componenti che servono per la memorizzazione a lungo termine.
Infine il modulo “deliver” si occupa del processo di presentazione delle informazioni dei moduli di componenti “manage”, “store” e “preserve”.
I sistemi ECM possono essere dividere in due categorie: collaboration
content
Nella prima categoria vengono inclusi portali, rich media and messaging, mentre nella seconda vengono inclusi sistemi di document management, web content management e document lifecycle management.
2.2 Prodotti conosciuti
I software di content management sono ormai tantissimi e di moltissimi tipi e questi prodotti, molti dei quali sono rilasciate tramite licenza open source, hanno spesso la caratteristica comune di avere un community di supporto al software.
Ovviamente in questi paragrafi verranno introdotti i content management che attualmente sono considerati i più utilizzati.
2.2.1 Alfresco
Alfresco è secondo (11) una piattaforma ECM (Enterprise Content Management) creato per la gestione documentale e workflow.
Tra le caratteristiche di Alfresco si citano: 1. file system virtuale
2. supporto protocollo portlet JSR-168 (12) 3. supporto Java Content Repository JSR-170 (13) 4. classificazione automatica dei metadati
5. servizi di conversione da Office a ODF/PDF e Power Point a Flash 6. gestione del flusso di lavoro con integrazione jBPM
7. integrazione di record management 8. integrazione di image management 9. supporto di web services
10. gestione di più siti
11. editoria di moduli usando schemi XML standard 12. interfaccia utente AJAX
Alfresco permette la creazione di documenti strutturati e la loro gestione oltre che l’inserimento di quelli presi da un disco locale.
Figura 2: ECM Alfresco
I contenuti possono includere blog, wiki ed altri documenti, inoltre Alfresco mette a disposizione caratteristiche di gestione collaborativa molto simili a Google Docs (14) ed a CentralDesktop (15).
E’ presente un sistema di Check-in a Check-out per la gestione della consistenza in caso di editing collaborativo tra più utenti.
Alfresco mette a disposizione un’interfaccia per la gestione di workflow che può essere vista come lista di attività e lavori che devono essere fatti da un’insieme di persone.
Un documento, una volta creato, passa per più persone che lo editano, lo modificano, lo approvano secondo una serie di passi prestabiliti.
Il sistema di gestione di workflow di Alfresco soffre di alcune limitazione come l’uso di solo due modalità di uscita dal flusso (approve, reject), si rimanda a (16) per una trattazione più completa.
Alfresco mette a disposizione la possibilità di supportare di web services tramite il seguente set:
Servizio
Descrizione
Authentication login e logout
Repository query e model manipulation
Content manipolazione del contenuto
Authoring creazione di contenuti in maniera collaborativa
Classification Gestione di classificazioni e categorie
Access Control permessi e ruoli
Action gestione di ruoli
Administration gestione utenti
Dictionary model description
CMIS Content Management Interoperability Services, modello per la collaborazione di CMIS
Ovviamente questa è una gestione server di web services, infatti Alfresco mette a disposizione una modalità di accesso remoto (16).
In conclusione, per sue potenzialità, è uno strumento molto completo, infatti possiede strumenti per tutte le fasi della gestione di informazioni e quindi di pone di diritto come applicativo adatto per la gestione dell’informazione aziendale di grosse imprese.
2.2.2 Drupal
Come verrà meglio introdotto successivamente, Drupal, vedi riferimento (17), è un sistema di WCMS multiutente ed opensource realizzato in PHP e rilasciato sotto licenza GNU GPL 2. Esso permette la creazione di siti istituzionali, portali web, sistemi di e-commerce.
Drupal è un content management ampiamente modificabile e personalizzabile, inoltre è espandibile tramite l’installazione di moduli esterni che introducono ulteriori funzionalità al WCMS.
Drupal introduce vari concetti come quello di tipologia di documento (content type) per indicare il modello elettronico di un prestampato cartaceo.
Questo concetto viene ulteriormente potenziato tramite il modulo CCK (21).
Inoltre Drupal inserisce nel proprio “core” l’utilizzo di servizi remoti tramite l’integrazione della libreria XML-RPC (22).
Drupal, in virtù di queste sue caratteristiche, è considerabile come un framework di sviluppo di web application.
2.2.3 Joomla
Joomla (18) è un WCMS realizzato in PHP rilasciato sotto licenza open source GNU GPL 2 nato nel settembre 2005 da una scissione (fork) con il WCMS Mambo.
Dal punto di vista funzionale, Joomla offre caratteristiche simili, anche se un po’ ridotte rispetto a Drupal, inoltre permette la realizzazione di moduli esterni per l’aggiunta di altre funzionalità.
Tra questi si ricorda sistemi di catalogazione dei contenuti come K2 e ZOO che offrono funzioni molto simili al modulo CCK di Drupal.
Inoltre è presente un modulo per l’utilizzo della tecnologia XML-RPC per implementare servizi web.
Nonostante la notevole potenza, Joomla, attualmente, non è al livello di Drupal infatti quest’ultimo possiede maggiori funzioni senza l’ausilio di moduli esterni.
2.2.4 DoQui
DoQui è un ECM scritto in Java (19), nato dalla collaborazione fra la Regione Piemonte il comune di Torino e la provincia di Torino, che permette di organizzare, archiviare e condividere documenti in formato digitale.
Tra i punti di forza di DoQui si ricorda:
ottimizzazione dei processi tracciabilità delle azioni
garanzia della sicurezza e della riservatezza delle informazioni ricerca di documenti
riduzione del consumo di carta
Inoltre Doqui è basato su tecnologie open source, è flessibile, gratuito ed orientato al riuso dei componenti, queste caratteristiche lo rendono particolarmente adatto per:
enti di pubblica amministrazione per implementare l’adesione ad obblighi di legge in materia di amministrazione digitale
aziende per la gestione documentale
L’infrastruttura di DoQui si basa su due moduli: 1. Index
2. Flux
Index è il motore che gestisce i contenuti digitali, basato su un modello SOA (Servic Oriented Architecture) che rende disponibili servizi di document management.
Tra le sue funzionalità ricordiamo: Check-in e check-out visualizzazione accesso
supporto di firma digitale e marcatura temporale ricerca e indicizzazione
workflow documentale
funzioni di trasformazione di formati
Figura 3: DoQui component
Flux è un sistema di gestione del ciclo di vita dei processi di business a supporto per le pratiche lavorative di un’azienda.
Infatti fornisce strumenti per la configurazione e la realizzazione di soluzioni applicative per l'automazione di processi orientati all'interazione umana.
Tra queste funzionalità si hanno:
Modelizzazione di processi Esecuzione di processi
DoQui Flux è rappresentabile tramite il seguente grafico:
Figura 4: Integrazione DoQui ed altri componenti
2.2.1 Nuxeo
Nuxeo Enterprise (20) è un ECM distribuito sotto licenza LGPL ed è sviluppato usando Java EE e tecnologie quali JBoss.
Nuxeo gestisce le seguenti funzioni: 1. gestione documentale 2. lavoro di gruppo
3. business process management (workflow) 4. record management (RM)
5. digital assett management (DAM)
La piattaforma Nuxeo si compone dei seguenti componenti:
Nuxeo Runtime, strato che permette l’installazione su Java application contanirs vari
Nuxeo Core che rappresenta il modulo di gestione documentale di basso livello (archiviazione, gestione, …)
Nuxeo Enterprise Platform (EP) che fornisce servizi di altro livello per la gestione documentale (indicizzazione, ricerca, flusso di lavoro, …) che possono essere gestiti pure tramite protocolli come RESTful a SOAP
Nuxeo Rich Client Platform (RPC) che rappresenta la piattaforma costruita su Nuxeo SP
Nuxeo WebEngine ossia lo strato per la generazioni di web application
Quindi Nuxeo gestisce nativamente la tecnologia dei web services, ma in modo similare ad Alfresco.
2.3 Limiti attuali dei sistemi di gestione dei contenti
Ovviamente tutti i sistemi di content management qui presentati presentano caratteristiche in parte simili tra di loro, quindi una scelta può risultare ardua.
Tutti questi sistemi possono essere molto utili per applicativi di gestione di documenti, anche se la maggiore completezza di Alfresco, Doqui e Nuxeo può essere determinante in ambito aziendale.
Un altro punto di forza di Alfresco e Nuxeo è la gestione nativa di web services, anche se limitato all’utilizzo ad-hoc delle funzioni già presenti internamente.
In particolare come detto nel primo capitolo, la gestione di scambio di informazioni potrebbe portare alla richiesta di estensioni non previste attualmente all’interno di Alfresco e Nuxeo.
Inoltre la relativa leggerezza di WCMS quali Drupal e Joomla potrebbe essere determinante in applicativi più particolari dove un sistema completo di ECM risulta superfluo.
Drupal e Joomla supportano la tecnologia XML-RPC, ma quest’potrebbe risultare insufficiente in ambienti come l’infrastruttura CART (vedi capitolo 1).
L’ottimo sarebbe avere a disposizione un framework leggero ed estendibile che possa permettere lo sviluppo di applicativi che prendono in considerazione buona parte della casistica generale di scambio di informazioni tra sistemi e che utilizzi la tecnologia dei web service per la comunicazioni di informazioni.
2.4 Drupal
Come detto precedentemente Drupal (17) è un WCMS (Web Content Management System) multiutente e sviluppato in PHP utilizzato sia per la costruzione di portali web o siti istituzionali, che per la creazione di Web Application.
Le potenzialità di Drupal come sistema di content management sono affermate, infatti viene utilizzato in:
siti istituzionale (l'università di Harvard, il governo del Belgio , whitehouse.org) portali e community (Amnesty International)
siti Intranet
blog singoli e multiutente (blog di Tim Berners-Lee) directory di contenuti (MTV)
e-commerce (Warner Brothers Records)
cloni di servizi come digg.com, emuli di youtube e flick Rich Web Application
Drupal è formato da un “core” molto piccolo che implementa le funzionalità base, a questi è possibile aggiungere, come la maggior parte dei moderni CMS, moduli esterni che aggiungono funzionalità.
Lo stack tecnologico di Drupal è il seguente:
Figura 6: Drupal Stack Architecture
Drupal tra i veri CMS offre stabilità, sicurezza e performance oltre che all’estendibilità tramite moduli.
Infatti, Drupal è sviluppato usando una logica ad eventi che possono essere: creazione, cancellazione e visualizzazione di una pagina
creazione e modificata di un utente login e logout
L’importanza di questa scelta progettuale è dovuta alla possibilità di poter agganciare ad un evento un “hook”, meglio definita come callback, di un modulo installato.
Grazie anche a questa potenzialità, i moduli sviluppati per Drupal, tutti raggiungibili su www.drupal.org, sono innumerevoli e spaziano da sistemi di e-commerce alla gestione di file ai giochi.
Inoltre un modulo sviluppato può utilizzare le funzionalità offerte da altri moduli, questo rende Drupal uno dei framework ideale per lo sviluppo in ambito Web.
Drupal ha una gestione nativa della famiglia di tecnologie AJAX tramite la libreria “ahah” (38) che da un supporto base le la gestione di richiesta asincrone ed l’immissione dei dati prelevati dentro elementi HTML.
Purtroppo questa libreria è molto limitativa e non permette di realizzare interfacce utente complesse.
2.4.1 Content Type
In Drupal una pagina contenente delle informazioni da visualizzare è denominato nodo, ognuno dei quali ha:
ID: valore numerico univoco che identifica il nodo title: titolo del nodo
body: contenuto informativo
Per creare nuovi nodi, drupal mette a disposizione il menù “create content”.
Drupal introduce per il concetto di content type (letteralmente tipo di contenuto) che è assimilabile ad una web form per l’inserimento dei dati.
Di default Drupal mettere a disposizione due tipo di contenuto standard chiamati “Page” e “Story”, la schermata di creazione di un tipo di contenuto (Create content) è la seguente:
Figura 7: Create Content
Per esempio per il tipo di contenuto “page” è il seguente:
Dall’immagine sopra si vede come il tipo di contenuto “Page” faccia inserire solo le informazioni base quali titolo e body.
Per maggiori chiarimenti sulla gestione dei nodi si rimanda a (17).
Spesso occorre gestire contenuti più complessi rispetto a quelli standard come “page” e “story” ed in generale l’ottimo sarebbe avere la possibilità di creare nuove forme di contenuti che possono andare a replicare un qualunque genere di documento (quindi con più aree di inserimento dati).
Un tipo di contenuto quindi assume il significato di una serie di campi visualizzati come una web form e che possiedono all’interno di Drupal una semantica.
Per questo è nato il modulo Content Construction Kit (CCK) (20) che permette la creazione, tramite apposita interfaccia Web, di un nuovo tipo di contenuto.
Questo avviene tramite l’aggiunta di campi che verranno salvati come tabelle all’interno del database di Drupal e visualizzati come web form.
Questo sistema permette di dare una semantica all’interno di Drupal al content type che una volta creato potrà essere gestito come i tipi di contenuto quali “page” e “story” tramite il menu di creazione di contenuti.
L’immagine sotto mostra il menu di creazione di contenuti in seguito all’aggiunta di nuovi content type.
2.4.2 Integrazione di Drupal con servizi esterni
Come descritto nel (17) , Drupal “plays well with others”, infatti ha nativamente il supporto alla tecnologia XML-RPC (22).
Questa tecnologia permette di effettuare remote procedure call (RPC) ad altri applicativi che usano questa tecnologia.
La tecnologia XML-RPC è stata creata da Dave Winer di UserLand Software nel 1998 ed utilizza XML per lo scambio di informazioni, utilizzando per la comunicazione la porta del web server (si solito la porta 80).
XML-RPC permette la scambio informazioni di diversi tipo (testo, numeri), anche se gestisce un ridotto set di tipo, inoltre XML-RPC è sincrono, non è object oriented e non è molto sicuro.
Questi limiti rendono XML-RPC in posizione di svantaggio rispetto a tecnologie più complesse, ma meno limitate, come SOAP.
Comunque a parte le limitazioni intrinseche della tecnologia, il supporto a XML-RPC nativo rende Drupal un interessante strumento in tutti quei casi in cui sia necessario la comunicazione tra diversi applicativi.