Dopo aver introdotto l‘argomento dei portali e delle tecnologie Java ad essi connesse, iniziamo ad approfondire l‘argomento dello sviluppo di soluzioni. Con questo articolo introduciamo Liferay Portal, la piattaforma open source per la realizzazione di portali che useremo per gli esempi pratici.
Introduzione
Nei precedenti articoli si è parlato del concetto di portale e si è brevemente accennato alle Java Portlet, il componente di base per la realizzazione di portali in Java. Con questo articolo introduciamo Liferay Portal, la piattaforma open source per la realizzazione di portali che useremo per gli esempi pratici che svilupperemo nella seconda sezione della serie che avrà un taglio più pratico rispetto ai primi tre articoli. Ovviamente nel mondo open source e nell’ambito dei prodotti commerciali esistono numerosi prodotti che consentono di realizzare portali compatibili con le specifiche Portlet 2.0 (JSR 268). Non è l’obiettivo della serie quello di fare un confronto tra diversi prodotti. Si è scelto di proporre Liferay Portal per le caratteristiche che lo rendono un prodotto completo e di semplice utilizzo. Nell’articolo introdurremo Liferay per poi utilizzarlo come piattaforma per lo sviluppo degli esempi nei seguenti articoli.
Caratteristiche di base
Liferay è un portale open source Java-based ricco di funzionalità che consente la realizzazione di portali web in modo molto semplice e veloce. Dal punto di vista dell’utilizzatore è un prodotto molto completo in quanto dispone di più di 60 portlet già pronte per l’uso che assolvono a tutti i più comuni compiti di un moderno portale di livello enterprise. Con Liferay è possibile mettere in piedi un portale web in pochissimo tempo senza necessità di scrivere codice, vista la notevole disponibilità di portlet e di temi grafici già pronti per l’uso.
Quello che è più interessante dal punto di vista dello sviluppo di funzionalità custom è che Liferay è anche una completa piattaforma di sviluppo, un vero e proprio framework per lo sviluppo di portali in Java. Questa seconda caratteristica , meno evidente ad un utilizzatore finale, lo rende una delle migliori piattaforme di sviluppo di portali e di applicazioni web in genere disponibili oggi nel mondo open source. Ovviamente Liferay Portal è perfettamente conforme a quanto si diceva nel primo articolo della serie rispetto agli ambiti di applicazioni di un portale web; è un gestore di contenuti, un aggregatore di applicazioni e un potente strumento di collaborazione.
È bene sottolineare da subito che Liferay non è un semplice CMS ma, come detto, è una piattaforma software che tra le molteplici funzionalità ha anche tutte le funzionalità tipiche di un CMS. Per cui, in base a ciò, non ha senso dal punto di vista funzionale e tecnico paragonare Liferay con prodotti CMS che si prefiggono il solo scopo della gestione dei contenuti. Il campo di applicazione della piattaforma Liferay va ben oltre quello della gestione dei contenuti che non è neanche la sua funzionalità più importante; anzi se si desidera una gestione dei contenuti più completa e sofisticata Liferay può essere integrato con piattaforme di gestione dei contenuti più potenti e complesse quali ad esempio Alfresco.
Liferay è quindi una piattaforma di sviluppo, integrazione e collaborazione realizzata secondo i principi della architettura a servizi. Dispone di tutte le funzionalità necessarie alla realizzazione di un portale web quali web publishing, content management, enterprise collaboration e social networking, il tutto costruito su una piattaforma open source completamente realizzata in accordo a standard aperti e allineata alle ultime tecnologie.
Di seguito sono elencate a titolo esemplificativo alcune delle caratteristiche principali di Liferay Portal versione 6. Per un esame di tutte le caratteristiche tecniche e funzionali si rimanda ai link riportati tra i riferimenti [1].
Tools pronti per l’uso
È distribuito con numerose funzionalità già pronte per l’uso che coprono la gran parte delle esigenze comunemente previste per un moderno portale web di classe enterprise. Funzionalità di content management, social networking, web publishing per un totale di più di 60 componenti applicative pronte per l’uso out-of-the-box.
Gestione di utenti e ruoli
Dispone di una gestione di utenti, gruppi, ruoli e permessi molto potente e flessibile che arriva fino alla gestione dei permessi di un singolo contenuto o di un singolo elemento del portale.
Gestione single sign-on
È integrato con diversi sistemi di gestione delle identità quali OpenID, OpenSSO, CAS ed abilita la fruizione in modalità single sign-on a sistemi eterogenei.
Supporto multilingua
È localizzato in più di venti lingue e fornisce tutte le funzionalità per la localizzazione di ogni elemento del portale nella lingua desiderata.
Gestione communities
Consente la gestione di comunità nell’ambito di un medesimo portale per una gestione flessibile ed organizzata di comunità di utenti.
SOA Framework
L’architettura di riferimento è l’architettura orientata a servizi. Liferay è quindi una vera e propria piattaforma di sviluppo e integrazione strutturata secondo un paradigma architetturale flessibile ed efficiente.
Gestione dei contenuti
Le funzionalità di CMS di Liferay consentono la gestione aggregata e unificata di tutti i contenuti: articoli, documenti, immagini. È insita nel prodotto la gestione delle versioni di ogni singolo contenuto e dei workflow di redazione, approvazione e pubblicazione degli stessi tali da soddisfare le più disparate esigenze organizzative redazionali.
Liferay dispone di funzionalità di gestione di tag, di tassonomie, di ricerca contenuti, di indicizzazione, di ottimizzazione per il posizionamento nei motori di ricerca (SEO): tutto ciò che serve per la gestione efficace di ogni tipo di contenuto.
Collaborazione
Liferay dispone di tutte le funzionalità di collaborazione e di social networking. Sono già fornite pronte per l’uso funzionalità quali blog, wiki, forum, chat, RSS, calendari condivisi, sondaggi che fanno del portale un potente strumento di collaborazione in ottica Web 2.0.
Riassumendo, la scelta di Liferay Portal va valutata quando si deve realizzare una soluzione in ottica portale di livello enterprise per la quale sia necessario avere una piattaforma:
- open source;
- completamente gratuita, sia per la componente di gestione del portale che per i tool di sviluppo;
- allo stato dell’arte della tecnologia;
- costantemente evoluta a costo zero a seguito delle innovazioni tecnologiche;
- di livello enterprise, quindi progettata per le esigenze di organizzazioni complesse;
- fondata su standard aperti, quindi senza vincoli tecnologici legati a standard proprietari imposti da un singolo vendor;
- ben documentata e supportata da una vasta comunità, il che garantisce di non essere vincolati al know-how proprietario di un singolo fornitore
- personalizzabile in tutte le sue parti.
Strumenti di sviluppo
Rispetto alle versioni precedenti, la versione 6 di Liferay ha fatto ulteriori passi in avanti nella disponibilità di strumenti di sviluppo e framework che facilitino la realizzazione di soluzioni in maniera semplice e rapida. Come già detto, si può senza dubbio affermare che Liferay può essere oggi considerato come un vero e proprio framework di sviluppo completo di tutto ciò che serve per realizzare applicazioni web complesse. L’argomento dello sviluppo sarà approfondito nei prossimi articoli ma già da ora possiamo accennare brevemente ai principali strumenti messi a disposizione dalla piattaforma.
PluginSDK
PluginSDK è lo strumento di base per la realizzazione di plug-in per Liferay, dove per plug-in intendiamo portlet, temi, layout, hook: insomma tutti i componenti elementari deployabili in Liferay. Il PluginSDK è uno strumento utilizzabile con un editor di testo purche’ si disponga di ANT per l’esecuzione delle procedure di build ed è quindi ipoteticamente integrabile con qualsiasi strumento di sviluppo.
Liferay IDE
Il Liferay IDE è una estensione di Eclipse che consente di realizzare i plug-in per Liferay in un ambiente integrato. Il Liferay IDE consente lo sviluppo in Eclipse di portlet, layout, temi, hook, service e plug-in in modalità ext ed è ovviamente costruito sul PluginSDK. Negli articoli dedicati allo sviluppo saranno approfonditi gli elementi citati, ma è importante sottolineare che oggi lo sviluppatore dispone di strumenti di sviluppo dedicati a Liferay e utilizzabili in Eclipse , uno degli IDE open source più diffusi per lo sviluppo Java.
Service Builder
Il service builder è un tool di Liferay, anch’esso presente nel Liferay IDE, che consente di sviluppare in maniera molto rapida applicazioni data-driven. In pratica partendo dalla definizione dello schema dati su cui operare, con il service builder è possibile generare in automatico tutte le classi del back end di gestione della persistenza di una applicazione. Il tutto si fonda sull’utilizzo di Spring e Hibernate, ma il vantaggio è che il tool assolve per noi a molti dei compiti, che altrimenti andrebbero compiuti a mano, nella generazione dei vari file di configurazione e delle varie classi DAO e Service. Il tutto ovviamente è facilmente estensibile e personalizzabile.
Installazione
Visto che abbiamo parlato di Liferay è giunto il momento di vederlo all’opera. L’installazione di Liferay è quanto di più semplice si possa immaginare. Basta andare sul sito del prodotto [2] e scaricare una delle versioni fornite in bundle con i più comuni application server. Con il prerequisito di avere una JDK installata sulla macchina, è sufficiente scaricare la versione bundle Liferay-Tomcat 6.x e decomprimere il file in un percorso a scelta.
A questo punto ci si posiziona nella cartella bin sotto la cartella radice della distribuzione Tomcat, si lancia il comando startup.bat o startup.sh a seconda del sistema operativo utilizzato ed il gioco è fatto. Un consiglio: prima di effettuare lo startup è bene eliminare dalla cartella webapps di Tomcat l’applicazione sevencogs-hook che introduce delle personalizzazioni al prodotto Liferay base necessarie al sito di demo sviluppato nella distribuzione base.
Terminata la procedura di startup, Liferay sarà attivo sulla porta http 8080. Cliccando sull’icona del Login sarà possibile autenticarsi come amministratore con l’utente test@liferay.com / test.
Come default, Liferay utilizza un database HSQL che va bene solo per scopi di test. Se si vuole utilizzare il prodotto in un ambiente effettivo, è meglio connetterlo a un database diverso. Per impostare la connessione è sufficiente creare un file denominato portal-ext.properties nella cartella root di Liferay e configurare in esso la connessione al DB desiderato.
Ad esempio per MySQL la configurazione è la seguente:
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF
-8&useFastDateParsing=false
jdbc.default.username=prova
jdbc.default.password=prova
Lo schema sul database va creato precedentemente. Una volta creato lo schema e configurata così la connessione al database, al successivo start-up Liferay provvederà a creare nello schema indicato tutte le tabelle necessarie.
Una volta installato e avviato, autenticandosi a Liferay, è possibile iniziare a prendere confidenza con gli strumenti di gestione. Si può iniziare a sperimentare le diverse portlet a disposizione semplicemente effettuandone il drag&drop nella pagina desiderata.
Nei riferimenti è riportato un testo [3] che può costituire un’ottima guida nell’utilizzo di Liferay Portal versione 6.
Conclusioni
Nel presente articolo abbiamo introdotto Liferay Portal che useremo nei successivi articoli della serie per mostrare alcuni esempi pratici di sviluppo di soluzioni di tipo portale. Nell’articolo sono stati introdotti gli elementi di base di quella che è una vera e propria piattaforma di sviluppo. Ovviamente Liferay non è l’unica scelta nel mondo open source per la realizzazione di portali Java-based ma è sicuramente una delle migliori sotto molti punti di vista.
Una volta terminati questi articoli di introduzione sulla tematica dei portali nel mondo Java siamo pronti per affrontare le parti della serie dedicate agli approfondimenti connessi allo sviluppo delle soluzioni.
Riferimenti
[1] Liferay Portal – Portal Features
http://www.liferay.com/products/liferay-portal/features/portal
[2] Liferay Portal Website
[3] Jonas X. Yuan, “Liferay Portal 6 Enterprise Intranets”, Packt Publishing Ltd, Aprile 2010