Il sistemi di Content Management System (CMS), ovvero “sistema di gestione dei contenuti”, sono una categoria di sistemi software che consentono di organizzare e facilitare la creazione collaborativa di contenuti di diverso formato, attraverso il controllo delle procedure necessarie alla gestione del loro ciclo di vita. In funzione del dominio di riferimento i CMS possono essere suddivisi in differenti categorie, tra le quali le principali sono: Enterprise Content Management (ECM), i Web Content Management System (WCMS) ed i Document Management System (DMS).
Le soluzioni di ECM sono orientate alla gestione della documentazione prodotta e ricevuta all’interno di un’organizzazione, indipendentemente dal suo formato. Dal punto di vista tecnologico una soluzione completa di ECM è caratterizzata dalle componenti di acquisizione (OCR, Web Form, etc.), gestione (Document Management, Record Management, Business process Management, etc.), conservazione (Hard Disk, NAS, Nastri Magnetici, Dischi ottici, etc.) e distribuzione (internet ed intranet, e-mail, fax, etc.) dei documenti gestiti.
Nel presente post sono messi a confronto alcune piattaforme di ECM che, per diffusione e fama, costituiscono un riferimento nel mercato attuale. Tutte le soluzione proposte hanno le funzionalità tipiche di un ECM e dispongono quindi dei moduli necessari a soddisfare le esigenze tipiche di diverse aree applicative:
- Document Managemnte;
- Web Content Management;
- Collaboration e Workflow;
- Repository Management;
- Record Management;
- Image Management;
- Etc.
Per tale motivo, piuttosto che basare il confronto sulle funzionalità offerte delle soluzioni, si è preferito concentrare l’analisi dei prodotti sui seguenti aspetti:
- Lo stack tecnologico sul quale la piattaforma si fonda;
- I protocolli supportati e le API fornite;
- L’integrazione con le suite di automazione di ufficio;
- La disponibilità di tool di sviluppo e personalizzazione;
- L’esistenza di integrazioni di terze parti;
Overview delle Piattaforme a Confronto
I prodotti che sono oggetto del confronto sono: Alfresco Enterprise Edition, Microsoft SharePoint e Oracle UCM (Universal Content Management). Le tre soluzioni considerate sono reputate dai loro produttori delle piattaforme estendibili dal cliente attraverso personalizzazioni o integrazione con soluzioni di terze parti.
Microsoft SharePoint
La versione 2010 della piattaforma è stata rilasciata nel primo trimestre dell’anno e si caratterizza principalmente per una diversa visione rispetto alla precedente release che risale al 2007. Il focus principale non è infatti sulle tecnologie che la caratterizzano (CMS, Collaboration, Search, etc.) ma principalmente su come tali tecnologie supportano il cliente nello svolgimento del loro business (community, contenuti, etc.). Microsoft considera inoltre la sua nuova piattaforma una “Business Collaboration Suite” ovvero una soluzione completa che consente di avere più applicazioni (enterprise search, content management, collaboration e business intelligence) in una unica piattaforma applicativa.
Le caratteristiche che vengono maggiormente evidenziate nelle presentazioni ufficiali sono circa una decina, e principalmente evidenziano un grande sforzo compiuto nel miglioramento delle funzionalità dell’interfaccia utente (multi browser, ribbon, dialog, preview, silver light, etc.) e di collaborazione tra utenti.
Alfresco Enterprise Edition
Alfresco è una piattaforma open source il cui core (Alfresco Content Repository) è basato sulle specifiche JSR-170 (metterei una nota esplicativa). Tutti i servizi e le funzionalità offerte dalla piattaforma o implementate come add-on dai partner sono sviluppate al di sopra di tale strato utilizzando diverse tecnologie, tra le quali: REST, SOAP Web Services, CMIS (Content Management Interoperability Services), Java ed il protocollo MS Office SharePoint.
La piattaforma è disponibile in due licenze, una Community Edition, completamente open source e liberamente scaricabile, ed una Enterprise Edition che richiede la sottoscrizione di una licenza annuale che da accesso ad un insieme di servizi aggiuntivi:
- Technical Support;
- Alfresco Network;
- Maintenance, patches ed hot fixes;
- Processo di Quality Assurance (QA) esteso;
- Extensive Platform Support;
- Garanzia.
Oracle Universal Content Management
Oracle UCM è il risultato dell’acquisizione della piattaforma Stellent nel 2006, e della sua inclusione nella linea di prodotti Oracle Fusion Middleware (OFM).
La release 11g di Oracle Fusion Middleware è rilasciata nel 2009 e include prodotti e tecnologie differenti ed integrate fra loro per fornire agli utenti un’architettura unica per lo sviluppo, il deploy e la manutenzione delle applicazioni. Fanno parte della suite il noto WebLogic Server, vari strumenti di integrazione e gestione processi come BPEL Process Manager, tool per la gestione dei contenuti e prodotti per l’Enterprise Performance Management, come quelli della suite Hyperion, applicazioni di business intelligence e data integration, strumenti di gestione di sistema come Enterprise Manager e per l’high availability e l’Identity Management.
La principale caratteristica della nuova release riguarda l’introduzione dell’architettura hot-pluggable, che consente ai clienti di implementare le soluzioni Oracle in maniera graduale, aggiungendo le stesse all’infrastruttura IT esistente, preservando gli investimenti effettuati e consentendo contestualmente l’innovazione dei processi.
Confronto delle Piattaforme
Lo Stack Tecnologico
SharePoint 2010 è una soluzione completamente fondata sull’intero stack architetturale Microsoft che include Windows Server, SQL Server, Internet Information Server, etc., senza alcuna apertura verso altre infrastrutture. Inoltre la versione 2010 è esclusivamente a 64 bit. Per la profilazione e gestione degli utenti ha necessità di Windows Identity Foundation (WIF), una soluzione interamente basata su Active Directory.
Di particolare interesse è infine la disponibilità, nella versione Enterprise, delle funzionalità del motore di ricerca Fast Search Server (acquistato da Microsoft nel 2009) che includono un motore di processamento dei contenuti indicizzati basati su tecnologie di analisi linguistica e testuale. I contenuti non strutturati sono così arricchiti con tag e metadati strutturati che migliorano l’esperienza nella ricerca dei contenuti.
Nel proprio sito Alfresco fornisce una descrizione dettagliata dello stack tecnologico richiesto da ciascuna delle sue release. Fondamentalmente la sua piattaforma può essere deploiata su un qualsiasi stack in grado di supportare JAVA, quindi, sebbene per filosofia è incoraggiato l’uso di soluzioni open source come Apache, Linux e MySQL, la piattaforma può essere installata su Microsoft Windows Server ed utilizzare MS SQL-Server come DBMS.
Lo stack tecnologico completo per l’ultima release è descritto qui.
Il discorso è replicabile in modo analogo alla piattaforma Oracle UCM. E’ comunque da evidenziare che la suite è certificata su JRockit JDK 6, come alternativa alla JVM della SUN, che è specificatamente progettato per applicazioni di alta affidabilità ad elevate prestazioni su piattaforme Intel a 32 e 64 bit. Non trascurabile è inoltre la possibilità di deploiare la piattaforma su Web Logic Server (sempre facente parte della suite OFM di Oracle) che è attualmente una delle migliori piattaforme J2EE e che permette una elevata scalabilità delle applicazioni attraverso il suo cluster.
Dal punto di vista delle certificazioni ufficiali, la suite Oracle UCM supporta comunque tutte le principali piattaforme tecnologiche oggi disponibili a 32 e 64 bit: Windows, Sun, HP, IBM AIX. Il DBMS supportati sono ovviamente Oracle ma anche MS SQL-Server e IBM DB2.
Protocolli Supportati ed API
Alfresco si focalizza principalmente nell’uso dei web service come punto di integrazione con il suo repository documentale anche se fornisce comunque API di tipo REST e supporta il protocollo SharePoint. Inoltre è accessibile attraverso RSS e WebDAV e recepisce le specifiche CMIS (Content Interoperability Specification).
Il mondo Java può accedere ai contenuti di Share Point esclusivamente attraverso l’utilizzo dei suoi web service, mentre gli sviluppatori Microsoft hanno a disposizione l’intero stack tecnologico che include ASP.NET, WCF (Windows Communication Foundation), XML, etc. Inoltre la sviluppo di Rich Internet Application (RIA) è supportato attraverso le tecnologie Silverlight ed ASP.NET AJAX. Anche SharePoint supporta i protocolli RSS, WebDAV e CMIS.
Oracle UCM è sviluppato su una piattaforma unificata basata su SOA (Service Oriented Architecture). Questo implica che ogni funzione disponibile ha un corrispondente servizio ben documentato e semplice da utilizzare anche per i non sviluppatori. Ad esempio un amministratore li può utilizzare per creare gerarchie, schedulare processi, automatizzare la migrazione di contenuti, etc.
Le API disponibili, tutte documentate, includono SOAP e REST Web Service, Java API, JSP, ASP, COM e DOT.NET. In particolare Oracle enfatizza l’utilizzo dei REST Web Service come tecnologia di integrazione ad elevate prestazioni rispetto ai classici servizi SOAP. E’ infine interessante rilevare che i Web Service disponibili possono essere integrati con altri definiti dall’utente attraverso interfaccia grafica, combinando i servizi SOA sottostanti.
Integrazione con Suite di Automazione
Tutte le soluzioni presentate dispongono di integrazioni con la Suite Office di Microsoft la quale già da tempo ha aperto la propria soluzione di Office Automation all’interoperabilità rilasciandone le specifiche al pubblico[1]. La suite Share Point 2010 integra inoltre la componente Microsoft Office Web Application, complementare a Microsoft Word, Excel, PowerPoint e OneNote, che offre un modo semplice per accedere, visualizzare e modificare i documenti direttamente nel browser Web.
Tool di Sviluppo e Personalizzazione
Tutti i prodotti considerati offrono almeno un paio di soluzioni per lo sviluppo e la personalizzazione della piattaforma, fermo restando che tali attività potrebbero essere eseguite anche utilizzando un semplice editor di testo.
Il codice sorgente di Alfresco è disponibile per il download attraverso il protocollo SVN e sul sito è chiaramente indicato come poter eseguire il set-up su Eclipse IDE, compilarlo ed avviarlo. In modo analogo Alfresco dispone di un SDK, liberamente scaricabile, che comprende diversi progetti di esempio importabili in Eclipse che coprono alcune tra le principali aree della piattaforma.
Alfresco offre inoltre il Web Editor Framework (WEF), un framework JavaScript (quindi lato client) per il rendering di una barra degli strumenti e dei comandi associati, che consente agli sviluppatori di estendere qualsiasi funzionalità in-context eventualmente necessaria. WEF permette inoltre agli sviluppatori di creare e pacchettizzare con facilità plug-in ed estensioni per una gestione e un’interoperabilità più semplici.
La personalizzazione della suite Share Point può essere realizzata attraverso l’utilizzo dell’IDE Microsoft Visual Studio (per gli sviluppatori avanzati), per il quale Microsoft offre un ambiente altamente personalizzato e di semplice utilizzo basato su componenti preconfezionati, o mediante l’applicazione, liberamente scaricabile, Share Point Designer, un ambiente RAD di personalizzazione che non necessità della scrittura di alcun codice e che consente il ridisegno dell’interfaccia utente, l’integrazione con sistemi esterni, la definizione dei workflow, etc.
Oracle UCM, sullo stile del più famoso DBMS, dispone di strumenti per la personalizzazione di ciascuno degli aspetti che caratterizzano il prodotto. Abbiamo già citato la possibilità di creare Web Service attraverso la composizione di altri servizi, ma è da evidenziare anche la possibilità di personalizzare la visibilità sui documenti definendo ACL (Access Control List) personalizzate mediante interfaccia grafica o la capacità di realizzare semplici siti web con Oracle Site Studio.
Per il programmatore l’ambiente di sviluppo preferenziale è ovviamente Oracle JDeveloper, per il quale è fornito un ambiente personalizzato che consente un classico sviluppo RAD. Il medesimo ambiente è comunque disponibile per Eclipse, anche se la compatibilità per il momento non è totale.
Infine un set di tag library personalizzate è disponibile per la scrittura di pagine JSP destinate ai servizi di content management.
Integrazioni di Terze Parti
Sin dal suo primo rilascio molti System Integrator hanno prodotto una miriade di applicazioni e soluzioni integrate con Share Point al fine di estenderne le capacità. Molte di tali soluzioni sono inoltre disponibili e liberamente scaricabili su CodePlex (una comunità open source dedicata alla tecnologia Microsoft) in cui è presente un’area specificatamente destinata a Share Point.
Dalla sua parte Alfresco ha un ecosistema vitale di partner che sviluppano componenti ed add-on per la piattaforma. Inoltre ha stabili relazioni con alcuni vendor di terze parti che offrono soluzioni integrate con la piattaforma.
Relativamente ad Oracle UCM, si consideri che Oracle, sin dall’acquisto della piattaforma Stellent, ha impiegato un effort considerevole per il suo sviluppo e la certificazione della stessa sul proprio stack tecnologico al punto da disporre, probabilmente, del gruppo più grande di esperti e sviluppatori, con un numero di partner in crescita esponenziale negli ultimi anni.
Conclusioni
La piattaforma Microsoft Share Point è principalmente focalizzata sugli aspetti di collaboration, ha ottime interfacce utente (decisamente user friendly), assolutamente orientata verso gli aspetti che caratterizzano il WEB 2.0. E’ evidente lo sforzo compiuto nel rendere la piattaforma semplice da deploiare e di facile utilizzo per l’utente finale con l’introduzione di molte funzionalità utente di grande utilità.
Inoltre dispone di un gran numero di strumenti di personalizzazione e, non meno importante, tutte le estensioni sono programmabili in un qualsiasi linguaggio DOT.NET all’interno dell’IDE Visual Studio, che è sicuramente uno dei migliori ambienti per lo sviluppo RAD attualmente esistenti sul mercato.
Per contro lo stack applicativo è esclusivamente Microsoft ed è quindi difficoltosa l’introduzione della piattaforma in ambienti con tecnologie miste. Infine i documenti sono conservati all’interno della base dati e non sul file system, conseguentemente sono accessibili esclusivamente attraverso le API di prodotto.
In sintesi Share Point si caratterizza principalmente per essere una piattaforma di online collaboration piuttosto che per un vero e proprio sistema di Enterprise Content Management. L’ambito di applicabilità ottimale della piattaforma è sicuramente quello dell’SMB (Small and Medium Business) dove pochi utenti contemporanei (circa 50 per CPU/Core) utilizzano il sistema.
Alfresco è certamente una piattaforma matura ed estendibile, manutenuta da una software company reale (con una sede fisica) che basa il suo modello di business sul modello open source. E’ evidentemente caratterizzato da tutti i vantaggi e svantaggi tipici di tale tipologia di modello, non ultimo il fatto che basa la propria strategia di supporto e delivery sull’ampio e vitale ecosistema dei partner. Questo implica che se l’IT di una compagnia intende utilizzare la piattaforma come sistema di gestione della propria documentazione, deve necessariamente rivolgersi ad un partner certificato che abbia stabilmente al suo interno gli skill richiesti o crearne di propri.
E’ comunque non trascurabile l’aspetto legato ai costi di licenza, che sono naturalmente inferiori rispetto alle atre piattaforme, soprattutto in considerazione del fatto che molto spesso i sistemi di CMS sono considerati delle commodity i cui costi sono difficilmente giustificabili.
Il primo ed indiscutibile pregio di Oracle UCM è il suo posizionamento nel Magic Quadrant di Gartner, relativamente agli ECM, in cui oltre ad essere tra i leader è anche la piattaforma che, rispetto agli anni precedenti, ha avuto l’avanzamento maggiore. Si tratta sicuramente di una piattaforma ECM molto robusta che può contare su uno stack applicativo stabile e che garantisce alla stessa una elevata scalabilità. I punti in cui si dimostra maggiormente carente sono l’interfaccia di utilizzo degli utenti finali, non sempre user friedly, ed il motore di ricerca integrato che mostra alcune evidenti lacune tra le quali lo scarso arricchimento dei risultati (modello Google) che si contrappone, ad esempio, a Microsoft Fast che invece restituisce più informazioni di quante ne siano effettivamente necessarie.
In conclusione la piattaforma di Oracle si configura principalmente come uno strumento Middleware ad elevate prestazioni di supporto ad altre applicazioni e componenti che contribuiscono alla definizione di una soluzione completa.
[1] Microsoft fu obbligata dall’anti-trust dell’UE a rilasciare la documentazione relativa ad alcuni dei suoi formati di interoperabilità.