Articoli Manifesto Tools Links Canali Libri Contatti ?
Web / Portali

I Portali

Abstract
Per la società in cui lavoro ho svolto una breve ricerca sui progetti OpenSource in ambiente Java proiettati verso il mondo dei Portali. Nel seguito illustrerò i criteri che ho usato per valutarli e le conclusioni a cui sono giunto.
Data di stesura: 13/02/2003
Data di pubblicazione: 28/02/2003
Ultima modifica: 04/04/2006
di Daniele Guarneri Discuti sul forum   Stampa

Ero alla ricerca di un prodotto che mi permettesse di creare un Portale personalizzabile, espandibile, sicuro e alla portata di tutti, anche ai non informatici. L'obiettivo era di confezionare una soluzione che permettesse alla piccola e media impresa (PMI) e alla pubblica amministrazione (PA) di avvantaggiarsi dei servizi offerti da un Portale senza spendere cifre esorbitanti.

A questo punto è d'obbligo precisare cosa si intende per Portale. Un Portale è l'aggregazione di dati provenienti da fonti differenti, che può essere consultato su Internet. È una raccolta di informazioni organizzate per essere facilmente accessibili. Naturalmente la natura dei Portali cambia in conseguenza dei propri contenuti. Si possono così distinguere portali generalistici (ad esempio Libero, CiaoWeb etc.) e portali specialistici (ad esempio XML.com).

Tornando alle mie ricerche, il motivo per cui mi sono concentrato sui prodotti OpenSource deriva da un articolo dell'ing. Giulio Mazzolini che ho letto di recente su Linux Magazine, in cui si spiegavano i vantaggi del software libero. "L'introduzione del software libero", dice Mazzolini, "induce la domanda di programmatori Linux o simili, di manutentori e di installatori di programmi liberi, creando quindi una effettiva diffusione capillare delle conoscenze delle tecniche di programmazione, migliorandone la professionalità e creando un humus fertile dal quale possono nascere molte iniziative benefiche per la nostra economia". Insomma, per una società di servizi, quanto affermato nell'articolo significa lavoro incentrato sulle competenze piuttosto che sui prodotti. Lavoro senza gabella ai produttori di software. Un altro aspetto che mi spinge verso i prodotti OpenSource è il convincimento che le PA debbano usare programmi OpenSource per erogare i propri servizi ai cittadini. Servizi che vanno dall'anagrafe allo sportello unico e dalla richiesta di documenti alle informazioni di pubblica utilità. Da qui la necessità delle PA di servirsi dei Portali, per aggregare tutte queste informazioni e poterle meglio presentare ai cittadini.

La mia ricerca ha preso spunto da queste riflessioni, con l'aggiunta di altri due ingredienti: XML e Java. Anzi per essere più precisi il prodotto che ricercavo doveva avere le seguenti caratteristiche:

  • essere OpenSource
  • essere scritto in Java
  • usare XML
  • separare il contenuto dalla presentazione
  • essere J2EE compatibile
  • essere configurabile
  • essere facilmente personalizzabile
  • avere un sistema di autenticazione e autorizzazione
  • avere un sistema di content management (CMS)
  • avere la possibilità di cambiare il Look & Feel tramite template (XSLT)
  • accedere a diverse fonti dati per reperire il contenuto

Per alcune settimane mi sono inoltrato nei mari più o meno ospitali di Internet alla ricerca della mia balena bianca e ho trovato una moltitudine di informazioni e di progetti in via di sviluppo o già terminati, ma nessuno che mi soddisfacesse appieno. La mia attenzione comunque si è concentrata su tre soluzioni: Jetspeed, Cocoon e uPortal.

I primi due progetti appartengono alla famiglia di Apache.org, mentre l'ultimo è un'idea del Java in Administration Special Interest Group (JA-SIG).

Jetspeed è l'implementazione OpenSource di un Portale informativo basato su Java e XML. Si basa sul concetto di aggregazione di fonti disponibili sulla rete. Usa il sistema delle portlet per presentare in un'unica pagina le informazioni provenienti da diverse sorgenti. Offre anche una serie di tool di supporto, per facilitare la creazione dei portali da parte dell'utente finale. Gli utenti possono accedere ai Portali costruiti con Jetspeed con diversi tipologie di device, dal browser Web ai telefonini WAP. Le portlet possono essere alimentate o tramite trasformazione di XML con appositi template XSL o tramite generazione dinamica di HTML per mezzo di pagine JSP. Jetspeed fornisce anche un supporto per alcuni framework di pubblicazione dei contenuti come Cocoon, WebMacro e Velocity. La documentazione è un po' scarsa, rispetto agli altri progetti, e con copre tutti i temi d'interesse. Il progetto è ormai fermo da dicembre 2002 alla versione 1.4b3.

Cocoon 2 è un framework per la pubblicazione su web ed è giunto alla versione 2.0.4 (la versione 2.1 è in sviluppo e dovrebbe essere rilasciata a fine febbraio 2003). Al suo interno è presente anche un framework dedicato alla costruzione di Portali che mette a disposizione dello sviluppatore una serie di strumenti per gestire l'autenticazione e la protezione di alcune parti del sito e per usare le portlet introdotte da JetSpeed che qui si chiamano coclet (Cocoon Portlet). La maggior parte delle caratteristiche ricercate è soddisfatta da Cocoon. Il suo punto di forza è la separazione del contenuto dalla presentazione, che si basa sul concetto di pipeline. La pipeline è una catena di processi che si occupa, a fronte di una richiesta, di formattare in output il risultato. Le pipeline sono composte da tre componenti principali: un generatore, uno o più trasformatori e un serializzatore. Il generatore si occupa di prelevare l'informazione da una fonte e di immettere il risultato nella pipeline sotto forma di eventi SAX (tutto il processo di pipeline avviene manipolando XML). Il trasformatore filtra il dato grezzo preparandolo per essere presentato al richiedente. Il serializzatore infine si occupa di erogare il dato finale nella forma più consona al richiedente (HTML, WML, testo etc.) . Naturalmente Cocoon fornisce una serie di componenti già fatte che ricoprono la maggior parte delle esigenze, ma nulla vieta di scrivere i propri componenti. Quindi si può dire che Cocoon è un prodotto molto malleabile, ma purtroppo difficile da utilizzare se non si è dei tecnici, anche se il concetto di pipeline aiuta a suddividere il lavoro tra figure professionale differenti, come per esempio programmatori JAVA (componenti) e grafici (template XSLT). Ricco di documentazione e di esempi, grazie al contributo di numerosi accoliti, Cocoon risulta semplice da capire con una curva d'apprendimento decisamente dolce.

uPortal è anch'esso un framework che si basa sul concetto di canale, che viene definito come una sorgente di informazioni. Dato un insieme di canali e una ricetta su come presentarli (stylesheet), uPortal coordina la compilazione del documento finale. uPortal lavora con tre livelli di trasformazione per definire l'organizzazione astratta dei canali (user layout): la struttura della presentazione finale del documento (structure transformation), la veste grafica (theme transformation) e la serializzazione dei contenuti nel formato adatto al device del richiedente. Anche in questo caso esistono dei canali già sviluppati, che permettono per esempio di pubblicare immagini o di accedere a server RSS, ma è possibile creare il proprio canale personale (è una classe Java) che acceda alle informazioni, immagazzinate in una specifica sorgente. Questo prodotto, come anche Jetspeed, mette a disposizione dell'utente un'interfaccia web per costruire il portale, anche se a dire il vero non è molto intuitiva. La documentazione disponibile aiuta la sua comprensione anche se non c'è paragone con Cocoon 2.

Per concludere, penso che Cocoon sia lo strumento che meglio si adatta alle caratteristiche ricercate, anche se necessita di un po' di lavoro, magari della creazione di una pannello di amministrazione che renda più semplice la sua configurazione e la creazione di pipeline anche da parte di chi non è un tecnico. Se corredato di strumenti che lo rendono più amichevole Cocoon è senz'altro un ottimo prodotto.

Informazioni sull'autore

Daniele Guarneri, classe 1971. Laureato in Informatica all'università di Pavia, attualmente è Application Developer Senior alla Consoft Sistemi s.r.l. sede di Milano. Con quasi tre anni di esperienza presso Il Sole 24 ORE si è specializzato nello sviluppo di portali in ambiente UNIX fortemente incentrati su JAVA e XML.

È possibile consultare l'elenco degli articoli scritti da Daniele Guarneri.

Altri articoli sul tema Web / Portali.

Risorse

  1. "Pirateria, protezione della copia e libera copia"
    Linux magazine / N.ro 2 (27) / Febbraio 2003 Edizioni Master / ISSN 1592-8152
    http://www.edmaster.it/linuxmag
  2. Sito di LinuxDidattica con gli articoli dell'ing. Giulio Mazzolini
    http://www.linuxdidattica.org
  3. Sito di Jetspeed
    http://jakarta.apache.org/jetspeed/site/index.html
  4. Sito di Cocoon 2
    http://xml.apache.org/cocoon
  5. Sito di uPortal
    http://mis105.mis.udel.edu/ja-sig/uportal/
Discuti sul forum   Stampa

Cosa ne pensi di questo articolo?

Discussioni

Questo articolo o l'argomento ti ha interessato? Parliamone.