Nella nostra serie sui portali, iniziamo ad approfondire le funzionalità di Liferay per mostrarne la completezza, la semplicità d‘uso e le innumerevoli funzionalità. Vediamo come Liferay consenta in maniera semplice ed efficace di costruire portali enterprise di elevata qualità.
Introduzione
Nei precedenti articoli ci siamo soffermati su alcuni concetti di base sui portali e sulle tecnologie Java ad essi dedicate. Da questo articolo in poi la discussione prende due strade parallele: da una parte si approfondiranno gli aspetti legati allo sviluppo sulla piattaforma Liferay mostrando come questa sia in realtà un vero e proprio framework per la realizzazione di applicazioni in ottica portale, dall’altra si presenteranno le funzionalità di Liferay dal punto di vista dell’utente al fine di mostrare come, utilizzando questo potentissimo prodotto open source, anche un utilizzatore a digiuno di nozioni di programmazione possa realizzare portali completi di tutte le funzionalità richieste oggi nel mondo del web 2.0. L’obiettivo finale dei due percorsi è fornire una serie di indicazioni che diano un quadro completo di ciò che è Liferay e delle innumerevoli potenzialità che offre.
I primi passi
Installazione
Nel precedente articolo ci eravamo lasciati parlando dell’installazione di Liferay. Per installare Liferay è sufficiente andare nella sezione “Downloads” del sito ufficiale [3] e scaricare la versione desiderata. Liferay viene rilasciato in bundle con molti dei più comuni servlet container/application server disponibili. Noi ci riferiremo alla versione 6.0 GA3 (6.0.5 CE August 2010) in bundle con Apache Tomcat 6.0.26. Per installare il prodotto è sufficiente estrarre il file compresso in un qualsiasi percorso sul file system locale ed effettuare lo startup di Tomcat (startup.bat per Windows o startup.sh per Linux nella cartella bin sotto la cartella radice di Tomcat). Prima di avviare il server Tomcat bisogna ricordarsi di cancellare dalla cartella webapps l’applicazione sevencogs-hook che introduce delle personalizzazioni al prodotto poco utili per i nostri scopi.
Una volta completata la procedura di startup di Tomcat all’indirizzo
http://localhost:8080
ci viene presentata la home page della comunità Guest (Figura 1), la comunità di default di Liferay. Vedremo in seguito cosa sono le comunità ma, per il momento, notiamo come in questa pagina sia stata inserita la portlet che ci consente di accedere alla parte riservata del portale.
Accesso a Liferay come amministratore
Accediamo quindi come amministratore, ovvero come l’utente tra quelli del portale che ha il più elevato livello di privilegi: inseriamo quindi
test@liferay.com
nel campo “Email address” e
test
nel campo “Password”.
Figura 1 – Pagina home della comunità Guest di Liferay.
Una volta effettuato l’accesso, data conferma al disclaimer che ci viene presentato e rispondendo alla richiesta di inserimento della coppia domanda/risposta per il recupero della password, ci viene presentata la stessa pagina, ma con alcune differenze (Figura 2).
Figura 2 – Pagina home della comunità Guest di Liferay dopo l’autenticazione.
Come possiamo vedere, accedendo come amministratore all’area riservata del portale, abbiamo la possibilità di effettuare operazioni di configurazione che non sono ovviamente possibili accedendo alla medesima pagina come utente Guest, cioè come utente non autenticato. Nella parte alta della pagina compare una barra con una serie di comandi a disposizione che andiamo a illustrare brevemente per introdurre il lettore all’interfaccia utente di Liferay 6 che è stata notevolmente migliorata rispetto alle versioni precedenti.
L’interfaccia e il menu
Partendo da sinistra troviamo il menù “Add” dal quale possiamo aggiungere pagine al portale oppure applicazioni alla pagina visualizzata. Quando si parla di applicazioni, in terminologia Liferay, ci si riferisce a portlet per cui d’ora in poi useremo i due termini indifferentemente, salvo ulteriori specificazioni. Sulla definizione delle pagine torneremo tra un attimo; per quel che riguarda invece l’aggiunta di una portlet ad una pagina possiamo sin da subito mostrare come questa sia una operazione veramente semplice e immediata. Proviamo dal menù “Add” a cliccare sulla voce “More..”. Ci appare una serie di categorie nelle quali sono raggruppate tutte le portlet disponibili nell’installazione standard di Liferay.
Figura 3 – Menù per l’aggiunta di una portlet alla pagina.
Clicchiamo sulla categoria “Tools” e clicchiamo su “Add” in corrispondenza della portlet “Language”. Con un semplice click la portlet appare nella pagina nella prima posizione disponibile in base al layout della stessa. Posizionando il puntatore del mouse nella parte alta della portlet è possibile farne il drag&drop in qualsiasi punto della pagina si voglia che essa appaia. Posizioniamola nel centro della pagina ed otteniamo ciò che si vede in Figura 4.
Figura 4 – Portlet aggiunta alla pagina.
In pochi semplici passi abbiamo inserito nella nostra home page la portlet che ci consente di selezionare la lingua di utilizzo del portale. Questo procedimento vale ogniqualvolta desideriamo aggiungere una portlet a una pagina, operazione come si vede estremamente intuitiva e rapida.
Continuando nell’esplorazione del menù troviamo la voce “Manage”. Qui sono presenti una serie di comandi utili per la gestione del portale. Cliccando su “Page” si accede all’applicazione che ci consente di aggiungere, modificare, cancellare le pagine del portale. Dalla voce “Page Layout” è possibile modificare il layout della pagina visualizzata. Liferay mette a disposizione molti layout predefiniti ma se ne possono ovviamente sviluppare a piacimento. Dalla voce “Sitemap” si accede alla visualizzazione della mappa delle pagine del sito. Dalla voce “Settings” è possibile configurare alcune impostazioni per la comunità corrente ed infine dalla voce “Control Panel” si accede al pannello di controllo dell’intero portale.
Dopo la voce “Manage” troviamo il check-box “Toggle Edit Controls”. Selezionando e deselezionando questo check-box è possibile attivare/visualizzare i controlli di editazione delle varie componenti delle pagine in modo da poter vedere la pagina, quando si è autenticati come un utente in grado di effettuare modifiche, come la vedrebbe un utente Guest a seguito delle nostre modifiche.
Infine nella parte alta a destra troviamo il menù “GoTo” che ci consente di andare alle pagine pubbliche e private della varie comunità definite nel portale e il nome dell’utente collegato e autenticato al portale.
La strutturazione degli utenti in Liferay 6
Prima di addentrarci oltre nelle funzionalità del portale, è opportuno introdurre l’argomento degli utenti di Liferay 6 senza la cui conoscenza alcuni concetti che esporremo in seguito risulterebbero poco comprensibili. Liferay ha una struttura di utenti, gruppi e ruoli molto ricca e flessibile che risponde davvero a tutte le esigenze possibili di configurazione e di assegnazione di permessi. Nella Figura 5, presente sul portale ufficiale di Liferay [2], sono raffigurate in modo molto semplice ed intuitivo le relazioni tra le varie entità che hanno a che fare con la strutturazione degli utenti nel portale. Le frecce nella figura rappresentano il concetto di appartenenza a una entità.
Figura 5 – La strutturazione degli utenti in Liferay 6.
L’Utente è l’entità principale, dove per utente si intende un account di accesso al portale. Come si evince dalla figura, un utente può appartenere a una comunità, a una organizzazione, a un gruppo di utenti, a un ruolo o a un team.
Un Gruppo di Utenti è un insieme di utenti creato dall’amministratore in base ad una qualche logica di aggregazione. Sia utenti che gruppi di utenti possono far parte di una comunità.
Una Comunità è un insieme di utenti che hanno interessi in comune. Ad esempio un insieme di utenti che condividono la passione per gli scacchi potrebbero decidere di creare all’interno del portale una comunità dedicata agli scacchi stessi. Ciò che caratterizza una comunità rispetto a un gruppo di utenti è che a una comunità corrisponde un insieme di pagine a cui può essere associato un virtual host sia per la parte pubblica del portale che per quella privata. Una comunità è quindi un vero e proprio sito a se’ stante all’interno del portale. Le comunità sono di tre tipi: Open, Restricted ed Hidden. Alle comunità Open si può registrare qualsiasi utente mentre a quelle Restricted deve essere l’amministratore a dare l’accesso. Le comunità Hidden sono comunità Restricted particolari in quanto sono nascoste e non vengono mostrate nell’elenco delle comunità del portale. In pratica quindi le comunità sono aggregazioni trasversali di utenti ai quali corrisponde un vero e proprio sito dedicato all’interno di un portale. In una singola istanza di Liferay possono coesistere innumerevoli comunità ognuna con il suo virtual host, il che significa che ad una singola istanza di portale possono in realtà corrispondere innumerevoli siti distinti.
Anche le Organizzazioni sono aggregazioni di utenti ma si distinguono dalle comunità in quanto alle organizzazioni è associato un concetto di gerarchia. Le organizzazioni mappano in genere una struttura gerarchica di una azienda o di un ente. Anche alle Organizzazioni, come per le comunità corrisponde un insieme di pagine ben definito. Le Organizzazioni a loro volta possono essere membri di una Comunità.
Utenti, Gruppi di Utenti, Organizzazioni e Comunità possono essere membri di Ruoli. I Ruoli definiscono i permessi che le entità ad essi associate hanno sulle varie componenti del portale: portlet, pagine, contenuti etc. I ruoli possono avere scope differenti: possono essere validi a livello di portale, di comunità o di organizzazione.
L’ultima aggregazione possibile di utenti sono i Team. Un Team viene definito all’interno di una organizzazione o di una comunità e ha valenza solo all’interno della singola organizzazione o della singola comunità. Possono essere usati per raggruppare utenti all’interno di una comunità e non a livello di intero portale.
Utilizzando al meglio le diverse entità descritte si può adattare il proprio portale a qualsiasi esigenza organizzativa e autorizzativa, il tutto utilizzando le funzionalità presenti nella versione standard del portale senza necessità di alcuno sviluppo o personalizzazione. Liferay come default definisce la comunità Guest che è la comunità di base a disposizione subito dopo l’installazione per la costruzione del portale. Come default inoltre Liferay associa ad ogni utente definito nel portale una propria comunità, con parte pubblica e privata, che costituisce il portale personale dell’utente che ogni utente può personalizzare e costruire a suo piacimento.
Dal menù “GoTo” presente nella barra dei comandi visualizzata all’utente di ruolo Administrator una volta autenticato (Figura 2) è possibile accedere alle pagine pubbliche e private delle varie comunità definite nel portale.
Il Control Panel
Chiusa la spiegazione sulla struttura degli utenti torniamo a occuparci delle funzionalità fondamentali di Liferay 6. Una importante novità introdotta nelle versioni recenti di Liferay è il “Control Panel” accedibile come già visto in precedenza dal menù “Manage” presente nella barra in alto nella pagina (Figura 6).
Figura 6 – Accesso al Control Panel.
Il Control Panel è la pagina dalla quale possiamo effettuare come amministratori tutte le possibili configurazioni; in pratica è la console di gestione di Liferay in quanto accentra in un unico comodo punto tutte le operazioni di configurazione, installazione e monitoraggio possibili sul portale, tutto ovviamente in base ai nostri privilegi. Ciascun utente del portale può accedere al Control Panel, non solo l’amministratore, ma ciascuno avrà a disposizione solo le funzionalità connesse al suo ruolo. Nel nostro caso, avendo fatto l’accesso come Administrator, le abbiamo tutte.
Le funzionalità del Control Panel sono suddivise in quattro aree principali:
- La prima è dedicata alle impostazioni legate all’utente, in questo caso Joe Bloggs ovvero l’utente Administrator.
- La seconda mette a disposizione tutte le funzionalità per gestire la comunità selezionata, che nel nostro caso è “Liferay”, ovvero la cosiddetta comunità Guest.
- La terza mette a disposizione funzionalità di gestione dell’intero portale.
- La quarta consente di gestire l’istanza server su cui è installato il portale.
Come è facile vedere, le funzionalità a disposizione sono davvero molte e nel corso della serie cercheremo di mostrare almeno quelle più utili e di uso più comune. Sicuramente una di queste è la funzionalità che consente di definire le pagine della nostra comunità.
Definire le pagine di una comunità in Liferay 6
Accedendo alla funzionalità “Pages” abbiamo la possibilità di definire l’intero albero di pagine nell’ambito della comunità corrente. Liferay prevede una strutturazione gerarchica ad albero delle pagine di un sito, dove per sito in questo caso intendiamo l’insieme delle pagine di una singola comunità all’interno del portale. In Figura 7 vediamo la funzione che consente di definire gli attributi della pagina Welcome della comunità Liferay, ovvero l’home page della comunità.
Figura 7 – Definizione attributi di una pagina.
Per ogni singola pagina è possibile definire molti attributi tra i quali il nome della stessa così come comparirà nell’albero delle pagine, il titolo HTML e il friendly URL fondamentali per l’indicizzazione da parte dei motori di ricerca. Altro attributo importante è il tipo della pagina. Può essere Portlet se la pagina deve contenere portlet, oppure URL se è un semplice puntamento a una pagina presente in un altro sito. Si può definire il target della pagina nel caso si tratti di un URL o, mediante il check-box “Copy page”, si può decidere di copiare la pagina da un’altra simile alla nostra per evitare di ripetere operazioni già fatte. Si possono poi inserire informazioni utili ai motori di ricerca e altre cose ancora. Non è il nostro scopo scrivere una guida dettagliata che è possibile trovare tra i riferimenti bibliografici [1]. È importante però da subito vedere come dalla funzionalità Pages si può iniziare a costruire il nostro sito aggiungendo pagine a piacimento in base alla progettazione che abbiamo fatto in precedenza.
Supponiamo ad esempio di voler creare una nuova pagina nel nostro sito allo stesso livello della pagina home. Clicchiamo nell’albero sulla radice, “Liferay”, per far apparire la funzionalità di creazione di nuove pagine (Figura 8).
Figura 8 – Creazione di una nuova pagina
In corrispondenza del tab “New Page” inseriamo il nome della nuova pagina, ad esempio News, e clicchiamo su “Add Page”. La nuova pagina apparirà nell’albero a sinistra che raffigura la struttura di tutte le pagine della nostra comunità. Cliccando ora sul link “Back to Liferay” in alto a sinistra torniamo alle pagine pubbliche della comunità Liferay e notiamo come nel menù sia apparsa una nuova pagina, la nostra pagina “News” appena creata e ovviamente ancora vuota.
Figura 9 – Una nuova pagina nel portale.
Abbiamo così mostrato come in questo modo, e anche in questo caso con pochi semplici click, ho creato una nuova pagina nel portale pronta per contenere le applicazioni e i contenuti che desidero.
Dai primi semplici esempi di aggiunta di una portlet a una pagina e di creazione di una nuova pagina in una comunità, abbiamo messo in evidenza come l’interfaccia utente di Liferay sia estremamente semplice ed intuitiva e pensata per un utilizzatore non necessariamente esperto di informatica ne’ tantomeno di Java.
Conclusioni
In questo articolo abbiamo iniziato ad esplorare Liferay 6 dal punto di vista dell’utente che desidera costruire un portale enterprise utilizzando questo potentissimo e flessibile prodotto. Le potenzialità offerte da Liferay 6 sono veramente innumerevoli considerando che essendo anche una piattaforma di sviluppo è praticamente personalizzabile ed estendibile in ogni sua parte. In queste prime righe abbiamo iniziato ad introdurre alcuni concetti fondamentali e a presentare alcuni elementi di base quali la strutturazione degli utenti e l’interfaccia utente di Liferay. Nei successivi articoli descriveremo le funzionalità di uso più comune per dare una idea almeno di base al lettore delle grandi possibilità che uno strumento open source e gratuito può offrire a chi desidera costruire un portale completo di classe enterprise.
Riferimenti
[1] Jonas X. Yuan, Liferay Portal 6 Enterprise Intranets, Packt Publishing, Maggio 2010
[2] Liferay 6 Official Documentation
http://www.liferay.com/documentation/liferay-portal/6.0/getting-started
[3] Sito ufficiale di Liferay: downloads
http://www.liferay.com/downloads/liferay-portal/available-releases