Le ultime settimane hanno visto il rilascio della Release Candidate e poi della Community Edition – General Availability della nuova versione di Liferay, la 6.1. Analizziamo le novità e le evoluzioni della piattaforma: a un primo sguardo, le positive prospettive della piattaforma Java leader per lo sviluppo di portali sembrano confermate.
Introduzione
Nello scorso mese di dicembre 2011 è stata pubblicata la prima Release Candidate della nuova versione di Liferay Portal, la 6.1, ed è di questi giorni il rilascio della versione General Availability della Community Edition. Abbiamo parlato diffusamente di Liferay nelle pagine di MokaByte e abbiamo esaminato molte delle caratteristiche principali di quella che è la piattaforma Java leader nello sviluppo di portali di classe enterprise. Nello scorso numero, inoltre, all’interno dell’articolo sul Liferay Symposium, è stato riportato un quadro riassuntivo delle novità che saranno contenute nella nuova versione della piattaforma Java per lo sviluppo di portali.
La versione 6.1 si propone di costituire un notevole passo avanti per le numerose nuove funzionalità introdotte e per l’aggiornamento di alcuni concetti e la revisione di alcuni aspetti di base. Probabilmente l’uscita della versione 6.1 rappresenta uno dei passi in avanti più consistenti di Liferay.
In questo articolo daremo una panoramica degli elementi principali visto che è impossibile in poche righe approfondire tutte le novità. Ci riserviamo di farlo quando uscirà la tanto attesa versione definitiva.
Le novità introdotte
Come dicevamo, numerose sono le novità introdotte e gli ambiti interessati da modifiche e evoluzioni in questa nuova versione. Molto è stato fatto per ciò che riguarda i contenuti ma le evoluzioni riguardano anche altri aspetti. Sintetizzando possiamo dire che sono state interessate alcune aree principali:
- contenuti (integrazione, gestione, pubblicazione)
- nuove funzionalità
- piattaforma di sviluppo
Una lista di alcune delle novità è presente sul sito di Liferay e la riportiamo di seguito integralmente:
- integrazione Multi-Repository e support a CMIS 1.0
- unificazione della Document Library e della Image Gallery
- supporto nativo per la memorizzazione di video e altri tipi di media
- gestione dei metadata dei contenuti
- definizione di relazioni tra contenuti (Related Assets)
- miglioramento alle funzionalità di staging (Branching, Versioning e Rollback)
- template dinamici di siti e pagine
- pagine personalizzabili dagli utenti
- Dynamic Data Lists
- Workflow-enabled Forms
- rilevamento di dispositivi mobili
- gestione utenti unificata
- RESTful Web Services
- supporto a OpenSocial 1.1
- miglioramenti a Liferay IDE 1.4
- nuove funzionalità di social networking e collaborazione
- migliore scalabilità
- miglioramenti nelle funzionalità di Management and Monitoring
- miglioramenti nella documentazione
- migliore qualità complessiva del prodotto
- …e molto altro!
Dalla lista è evidente il notevole sforzo effettuato nel miglioramento e nella evoluzione della piattaforma esistente e i numerosi ambiti che sono stati oggetto di intervento nella realizzazione della nuova versione. È impossibile parlare di tutte le novità ma ci soffermeremo solo su alcune di esse che appaiono come le più significative.
La nuova gestione dei contenuti
Sicuramente una delle aree su cui si è intervenuti maggiormente è quella della gestione dei contenuti arricchendo le funzionalità di Liferay già esistenti e aggiungendo molte interessanti caratteristiche che ne fanno una vera e propria piattaforma completa di gestione dei contenuti.
Unificazione di Document Library e Image Library e gestione multi-repository
Uno dei cambiamenti più significativi è sul fronte della gestione dei contenuti. Tutti i contenuti, indipendentemente dal tipo, sono ora gestiti in maniera univoca con la medesima funzionalità e non vi è più la vecchia distinzione tra Document Library, gestione dei documenti, e Image Gallery, galleria delle immagini. Ora si ha a disposizione la Documents and Media (figura 1) che è il repository unificato di tutti i contenuti del portale, fatta eccezione per i web content, qualunque sia il loro tipo.
Figura 1 – Gestione documenti e media.
Cosa veramente interessante è la possibilità di definire secondo le proprie esigenze tipi di contenuti e insiemi di metadati da associare ai tipi stessi, il che consente di catalogare e definire veramente qualsiasi genere di contenuto in base ai propri requisiti. Si ha quindi a disposizione un vero e proprio gestore di contenuti con tanto di definizione flessibile e personalizzabile di tipi e metadati.
In figura 2 è visualizzata la schermata di definizione di un nuovo tipo di documento con la possibilità di inserimento visuale dei metadati da associare al tipo stesso.
Figura 2 – Definizione di un nuovo tipo di documento.
Vengono forniti all’atto dell’installazione del prodotto alcuni esempi di tipi predefiniti per dare un’idea delle potenzialità che sono state aggiunte alla piattaforma. Definire i metadati da associare a un contenuto è veramente semplice e alla portata di tutti in quanto può essere fatto visualmente, senza il bisogno di intervenire su file di configurazione sicuramente ostici per un utente che non ha competenze informatiche specialistiche.
In figura 3 a titolo di esempio è mostrata la definizione del tipo di documento Contract che mette in evidenza l’insieme dei metadati ad esso associati.
Figura 3 – Metadati associati ad un tipo di documento.
Esiste anche la possibilità di definire insiemi predefiniti di metadati che è poi possibile associare ad un nuovo tipo di documento in fase di definizione.
Una volta definiti i tipi di contenuto che coprono le nostre esigenze, sarà possibile poi aggiungere un nuovo contenuto scegliendone il tipo (figura 4).
Figura 4 – Aggiunta di un nuovo documento.
In automatico, la pagina di definizione del contenuto presenterà i campi per inserire i metadati associati.
Figura 5 – Inserimento dei metadati.
Altra importante funzionalità è la possibilità di integrare la Documents and Media con repository esterni secondo la standard CMIS (Content Management Interoperability Services), il protocollo per l’accesso vendor-neutral ai repository documentali approvato dal consorzio OASIS e sviluppato con il contributo di tutti i più importanti player del settore della gestione documentale. Con questa modalità è possibile integrare Liferay con prodotti documentali che supportano lo standard CMIS, quali ad esempio Alfresco, ed avere la possibilità di gestire in maniera unificata anche i contenuti provenienti da sorgenti esterne.
C’è da dire per chiarezza che ad oggi lo standard CMIS non è ancora maturo, ma espone in modalità standard solo un subset di funzionalità rispetto a quanto normalmente ci si aspetta da un sistema di gestione dei contenuti. Non è possibile con lo standard CMIS ad esempio gestire in maniera standard workflow o metadati.
CMIS è però una specifica in costante evoluzione e diventerà certamente lo standard di riferimento per l’interoperabilità tra repository documentali eterogenei. Il fatto che Liferay lo supporti nativamente è garanzia di interoperabilità e dell’integrabilità della piattaforma in ambienti eterogenei.
Pubblicazione dei contenuti
Significativi passi in avanti sono stati fatti nella pubblicazione dei contenuti aggiungendo nuove modalità e funzionalità. In fase di creazione di un contenuto web è ora possibile definire quale sia la sua pagina di pubblicazione evitando al redattore di dover intervenire sulle singole pagine del portale.
Figura 6 – Definizione della display page di un web content.
Affinche’ sia possibile definire una pagina come Display Page per un contenuto web è necessario che nella pagina sia stata precedentemente inserita una Asset Publisher configurata come pubblicatore di default per la pagina stessa.
Ciò significa che una volta che l’amministratore del portale ha definito la struttura delle pagine, il redattore deve solo creare i contenuti disinteressandosi di dove saranno pubblicati e il pubblicatore, che può essere o non essere la stessa persona, si occuperà di definire dove il contenuto va pubblicato.
Questa è una delle tante caratteristiche che Liferay mette a disposizione per consentire una buona separazione dei ruoli e delle figure coinvolte nella gestione del portale e delle attività ad esso connesse.
Una nuova caratteristica, veramente interessante, è quella dei Related Assets che consente di definire relazioni tra contenuti dando la possibilità di gestirli separatamente ma di pubblicarli automaticamente in maniera contestuale.
Creando un contenuto è possibile definire quali siano i suoi Related Assets, ossia gli altri contenuti associati al contenuto web che si sta definendo.
Figura 7 – Definizione dei related assets di un web content.
Sia la Asset Publisher che la Web Content Display prevedono in configurazione la possibilità di selezionare il check-box Enable Related Assets che abilita la pubblicazione automatica di tutti gli asset collegati al contenuto che si sta pubblicando.
Figura 8 – Abilitazione dei related assets nella asset publisher.
Esiste inoltre una portlet dedicata, la Related Assets, che consente di pubblicare in una pagina in un colpo solo tutti gli asset collegati al contenuto principale della pagina stessa. Questa funzionalità è davvero molto interessante ed è utilizzabile in svariati modi in quanto consente di pubblicare automaticamente asset di qualsiasi tipo, articoli di blog, wiki, calendari, collegandoli logicamente tra di loro. In pratica consente di stabilire relazioni tra asset diversi stabilite in base alle proprie logiche che consentono poi in maniera semplice e soprattutto automatica di pubblicare contestualmente tutti gli asset collegati.
Molto è stato fatto anche per l’evoluzione della funzionalità di Staging, attivabile come nella versione precedente nelle due modalità: locale o remota. In figura 9 è visualizzata la gestione delle pagine di un sito per cui è stata attivato lo staging locale, ossia un sito per cui il sito live e quello staged risiedono sulla stessa macchina. Ora con lo staging è possibile fare per le pagine del sito qualcosa di analogo a quanto si fa per gli oggetti software con un sistema di gestione della configurazione. È possibile mantenere versioni diverse di una stessa pagina decidendo quale pubblicare nella sezione live e fare operazioni di rollback di modifiche fatte e gestire tutte le versioni delle pagine.
Figura 9 – Definizione delle pagine di un sito con staging locale attivato.
In figura 10 è mostrato l’esempio di una pagina pubblicata nella versione live del portale. Si vede in alto come appaiano le informazioni sull’utente che ha pubblicato la pagina, sul tempo intercorso dalla pubblicazione e sul branch dal quale la pagina è stata pubblicata. Attivando lo staging tutte le modifiche devono essere fatte sulla versione staged e saranno visualizzate nel sito live solo dopo la pubblicazione.
Figura 10 – Esempio di pagina live di un sito con staging attivato.
In figura 11 è invece raffigurata la medesima pagina del sito ma nella versione in staging. Nella barra in alto è possibile vedere le informazioni sulla versione della pagina e sul suo stato ed è possibile anche gestire le diverse varianti della pagina ovvero i diversi branch di sviluppo che una pagina può avere.
Figura 11 – Esempio di pagina in staging.
Lo staging è quindi un sistema molto ricco e completo che può essere adattato a qualsiasi esigenza di gestione in esercizio di portali complessi o che comunque richiedono un elevato livello di controllo sui contenuti da pubblicare.
Altre novità
I contenuti sono il cuore di un portale e su questi il team e la comunità di Liferay hanno svolto gran parte del lavoro. Ma numerose altre novità sono state introdotte, alcune delle quali andiamo di seguito a elencare brevemente.
Nuova organizzazione della struttura del portale
Con la versione 6.1 scompaiono le tanto care communities il cui concetto viene mutuato nei Sites. In pratica ora una singola istanza di portale Liferay può ospitare più Sites ognuno dei quali con la propria struttura di pagine e contenuti. Scompaiono le organizzazioni intese come elemento strutturale al quale potevano essere associate delle pagine ma rimangono come concetto all’interno di un singolo site razionalizzando quello che nelle precedenti versioni di Liferay poteva dare adito a confusione e ambiguità.
Interfaccia di gestione
L’interfaccia di gestione dei siti è stata leggermente migliorata e ora l’accesso ad alcune funzionalità di gestione del singolo sito è presente direttamente nella barra posta nella parte superiore della pagina senza che sia necessario andare nel Control Panel (figura 12) che è invece accessibile dal menù nella parte sinistra dell’header della pagina.
Figura 12 – Nuovo accesso alle funzionalità di gestione di un sito.
Liste dinamiche
Le Dynamic Data List sono una nuova funzionalità introdotta in Liferay Portal con la versione 6.1. Una prima descrizione si può leggere in alcuni articoli del blog della community che trovate nei riferimenti [2] e [3].
In pratica sono un modo per la definizione, presentazione e raccolta di insiemi di dati simile ai noti Google Forms. È possibile definire record contenenti dati e form per la raccolta degli stessi da parte degli utenti. Ciò è molto comodo in quanto consente senza necessità di scrittura di codice di definire form di raccolta dati in maniera molto semplice e soprattutto veloce.
Nella versione RC la portlet Dynamic Data Form, annunciata nella documentazione, non è ancora presente ma come descritto nel blog consentirà di raccogliere in maniera molto semplice ed immediata dati inseriti dagli utenti senza necessità di sviluppo ad hoc.
Mobile Device Rules
Liferay si sta muovendo rapidamente nell’ottica di fornire un sempre migliore supporto ai dispositivi mobili che ormai sono altamente diffusi e costituiscono la modalità privilegiata di accesso al web per molti utenti. Nella nuova versione di Liferay sono state introdotte features per il riconoscimento dei dispositivi mobili ed è stata introdotta la funzionalità di definizione delle Mobile Device Rules. Sarà possibile definire delle regole per modificare dinamicamente l’aspetto dei contenuti e delle singole pagine in base al dispositivo dal quale proviene la richiesta. Non c’è molto ancora nella documentazione su questa feature che appare ad oggi quindi ancora dai confini non del tutto chiari. L’abbiamo però citata per dimostrare come il team di Liferay sia ben conscio che il precedente ridotto supporto ai dispositivi mobili non può più essere sufficiente in un mercato in cui oggi questi dispositivi sono più venduti degli stessi notebook.
Miglioramenti a Liferay IDE
Una interessantissima novità del Liferay IDE, la piattaforma di sviluppo di Liferay Portal, è la funzionalità di Remote Development. Per i dettagli si può consultare l’articolo del blog presente nella community di Liferay che descrive come configurare la features [4].
La cosa merita attenzione in quanto consente in pratica lo sviluppo su un server remoto come se si lavorasse sul proprio server locale di sviluppo proprio come comunemente fatto dagli sviluppatori. Ciò consente un migliore controllo di una istanza remota di Liferay e fornisce ulteriori margini di intervento agli sviluppatori.
Come già detto, quindi, Liferay 6.1 introduce numerosi elementi di novità nella piattaforma che forniranno a utilizzatori e sviluppatori ulteriori possibilità nella costruzione con Liferay Portal di portali e applicazioni basate su portlet.
Liferay si conferma quindi non solo come un prodotto leader nel suo settore ma anche come un progetto in continua evoluzione e sempre molto attento ai trend di settore e alle spinte del mercato che in questo ambito sono rapidissime e in continuo mutamento.
Conclusioni
In questo articolo abbiamo descritto alcune delle numerose novità ed evoluzioni di Liferay Portal che molto presto saranno a disposizione nella versione 6.1. La notevole evoluzione dà conferma del continuo investimento che viene fatto sul prodotto per tenerlo allineato ai migliori standard del settore e per farlo evolvere accrescendone funzionalità e potenzialità.
È molto positivo il fatto che in questa nuova versione siano stati fatti notevoli miglioramenti nelle funzionalità WCM che era un ambito in cui Liferay riceveva alcune critiche dai sostenitori di piattaforme concorrenti. Con la versione 6.1 Liferay diventa un potente gestore di contenuti con caratteristiche difficilmente riscontrabili in piattaforme analoghe. Ciò conferma la bontà del progetto e garantisce longevità dei propri investimenti e garanzia massima per il futuro a chi ha adottato Liferay come soluzione di riferimento per lo sviluppo di portali.
Nei prossimi numeri di MokaByte non mancherà il modo di approfondire ulteriormente le nuove features magari dedicando articoli di approfondimento alle singole funzionalità di maggiore interesse.
Riferimenti
[1] Liferay Community
http://www.liferay.com/community/welcome/dashboard
[2] Dynamic Data Lists I
http://www.liferay.com/web/marcellus.tavares/blog/-/blogs/9961174
[3] Dynamic Data Lists II
http://www.liferay.com/web/marcellus.tavares/blog/-/blogs/10123376
[4] New Liferay 6.1 Feature – Remote Development from Liferay IDE
http://www.liferay.com/about-us/news/-/blogs/11789178/maximized