Assistiamo ad una costante crescita nell’adozione di software open source, spinta da una serie di vantaggi che risultano sempre più evidenti agli occhi degli operatori.
All’interno della variopinta galassia di prodotti e opportunità offerte da questo mercato, emergono e si distinguono alcune tecnologie. Qualcuna poi si diffonde al punto da diventare mainstream, come nel caso di Alfresco e Liferay, premiate dagli analisti e dal mercato.
Nonostante le due piattaforme appartengano a distinte categorie (content management framework e portal server), sembrano mostrare molti punti di sovrapposizione funzionale e spesso questo ha sollecitato dibattiti tra i nostri team di sviluppo. Ora, grazie alla loro grandissima diffusione, il dibattito si è spostato dalla nostra sala caffè ai tavoli delle riunioni con i clienti, che sempre più spesso ci chiedono di fornire elementi per una valutazione consapevole di quale piattaforma adottare. Siamo quindi chiamati a rispondere correttamente alla domanda: “Lo facciamo con Liferay o con Alfresco?”
La prima risposta istintiva, da tifoso, motivata dalla conoscenza approfondita di solo uno dei due strumenti, ovviamente non è la risposta giusta.
Partiamo con un rapido riepilogo:
- Tutti e due sono inquadrabili nella famiglia dei framework Open Source Java a trazione community.
- Condividono l’intelligenza di Apache Lucene per la ricerca.
- Hanno in comune:
- le funzionalità di collaboration (calendari, blog, wiki…),
- la “portalizzazione” delle applicazioni,
- la modularità delle portlet (o dashlet),
- la capacità di gestire documenti e contenuti e di costruire interfacce per workflow (guarda caso integrando perfettamente Activiti, altro membro della felice famiglia).
A prima vista può sembrare molto, ma in proporzione all’iceberg delle funzionalità che si nascondono sotto la superficie è quasi nulla.
Provo allora a fornire qualche elemento in più, limitandomi al mio punto di osservazione da puro Alfreschista e invitando i colleghi e i conoscitori del mondo Liferay a portare i loro contributi e la loro esperienza, per confermare o correggere le mie conclusioni finali.
Soffermandomi sulle funzionalità in comune, la prima da valutare è la “gestione dei contenuti”, il mestiere primario per cui è nato il nostro Alfresco, per il quale è naturale maneggiare volumi anche nell’ordine dei milioni di documenti. Ma il focus sui soli volumi mi pare debole e non è l’unica discriminante per la scelta.
Sono, infatti persuaso, che la differenza nella gestione dei documenti stia nel come li gestisco e non nel quanti ne gestisco.
Alfresco consente di strutturare l’archivio con logiche sofisticate, permettendo la definizione di due livelli di metadati (Type e Aspect) e insiemi di regole per la gestione del comportamento e dello stato delle informazioni. Permette di rappresentare le informazioni strutturandole logicamente, garantendo una facile navigazione, salvaguardando al contempo l’integrità dell’archivio ed eliminando tutti i limiti del file system, tra cui la gestione dei diritti e degli utenti. In più ha un ricchissimo set di funzionalità documentali…
Ma ecco che, proprio cercando di elencare queste funzionalità, ci accorgiamo che spesso non sono proprie di Alfresco in quanto framework di content management, ma della sua interfaccia utente nativa: Alfresco Share. Osservando la struttura di Alfresco, possiamo dividerla in Alfresco-Repository e Alfresco Share-interfaccia utente. Subito ci salta all’occhio che anche Liferay può comportarsi egregiamente come interfaccia di Alfresco.
Ecco l’uovo di Colombo.
Dando quindi per acquisito che per archiviare, gestire, indicizzare e definire i contenuti e i documenti il repository Alfresco è lo strumento indicato, il terreno di confronto tra le nostre due tecnologie si sposta sulla scelta dell’interfaccia. Sulla presentazione si gioca una partita diversa: i fattori determinanti sono la ricchezza di funzionalità e l’esperienza d’uso.
Con queste due metriche è facile capire che Liferay risulta l’ideale per presentare i contenuti quando è necessario ottimizzare anche il look and feel, e quando le procedure sono orientate all’esterno verso clienti o cittadini, o quando l’upload o la visualizzazione di un contenuto è un’azione finita (allego un documento ad una richiesta, interrogo la mia fattura dal portale clienti).
Alfresco Share si presta maggiormente a lavorazioni più complesse, ricerche, viste, correlazioni tra informazioni, cambi di stato e lavorazioni sui documenti, processi documentali, creazione dinamica di documenti e contenuti, approvazioni e firme, lavorazioni automatizzate, conservazione digitale.
La vera domanda quindi potrebbe essere “Alfresco Share o Liferay?”. E, per riassumere, la risposta potrebbe essere:
front-end = Liferay, back-end = Share
Ma la questione più importante che si evidenzia è che queste due tecnologie non sono in opposizione e non rappresentano due scelte alternative. La vera forza è proprio l’interoperabilità e allora approfittiamo della sinergia tra Alfresco, Alfresco Share, Liferay (e Activiti), perché è inutile chiedersi con quale strumento suonare un brano se si dispone di un’orchestra!
Vi lascio con una applicazione pratica di questa sinergia.
Ciao Alessandro
preso atto della sinergia tra i due strumenti. Ma nell’ambito mobile che la fa da padrone? Accedo ai miei documenti con un app “Alfresco” o un app Liferay ?
Penso di conoscere la risposta, ma nel caso d’uso che hai presentato esiste questa esigenza? Se sì come l’avete affrontata?
Grazie Ciao Mirko
Mirko, nell’uso e nella progettazione delle APP l’attenzione all’ergonomia, all’esperienza d’uso e agli scopi per cui è pensata la soluzione è ancora più evidente. E’ quindi necessario valutare di volta in volta se può andar bene una APP standard, come l’APP di Alfresco, che garantisce la comodità di essere free e immediatamente pronta all’uso o una APP custom che ha il vantaggio di poter rispondere puntualmente ad un preciso bisogno. In questo caso la discriminante è se la mia APP deve coprire altre funzioni oltre al solo accesso al documento, di conseguenza si potrà decidere se APP Alfresco o Liferay. Per approfondimenti sul caso d’uso ti rimando ad una prossima risposta del collega owner del progetto, o magari a interventi più autorevoli di colleghi del Mobile ; ) .
Era la risposta che già conoscevi?
Grazie e buon lavoro