Portofino è un framework in Java per lo sviluppo di applicazioni web
model-driven. Su questo sito
abbiamo già parlato di
ManyDesigns, l'azienda che lo ha ideato, in occasione dell'
intervista a uno dei suoi fondatori; in questa mini serie di articoli presenteremo questo framework, esaminandone anche alcuni aspetti implementativi.
Per iniziare occorre scaricare l'ultima release di
Portofino dalla
sezione download del sito di
ManyDesigns; attualmente siamo alla 2.0.16, il che ci fa subito comprendere che ci si trova di fronte a un progetto già uscito dalle fasi beta o simili:
Portofino è attualmente utilizzato da diverse realtà, sia della pubblica amministrazione che private, fra le quali occorre citare il
Comitato Olimpico Nazionale Italiano e
Datasiel s.p.a, la società informatica
in-house della Regione Liguria.
Questo aspetto, spesso trascurato quando si è alla ricerca di progetti open source per uso personale, va a mio parere attentamente valutato quando si tratta di scegliere un framework o una piattaforma sui quali baseremo le nostre attività di sviluppo o professionali. Parlando di utilizzo professionale, è bene chiarire subito l'aspetto delle
licenze:
Portofino è rilasciato con licenza
GNU General Public License con
FLOSS Exception, quindi può essere utilizzato anche con le applicazioni
FOSS (Free/Libre and Open Source) con una licenza incompatibile con la GPL.
Tale licenza è utilizzabile nella
distribuzione di software open source, oppure nel caso si utilizzi il framework per lo sviluppo di software a uso interno. Per chi fosse invece interessato a non rilasciare il proprio lavoro con una licenza open source, è disponibile anche una licenza commerciale con diversi livelli di assistenza previsti; per le licenze GPL l'assistenza è fornita dai forum, o a pagamento mediante sottoscrizione singola.
Per il download sono disponibili due differenti forme di distribuzione:
la prima comprende, oltre alla versione binaria ed i sorgenti, anche il file WAR per il deploy in un Java application server e i template per creare l'ambiente necessario nei differenti database supportati. La seconda forma di distribuzione, chiamata
one-click-start, contiene la sola versione binaria, ed è l'ideale per chi vuole provare
Portofino per la prima volta, in quanto richiede solo la presenza di un ambiente Java JRE o JDK per funzionare; entrambe le versioni, ovviamente, offrono le stesse funzionalità. Per la nostra prova abbiamo utilizzato la versione completa, ricorrendo a Microsoft SQL Server come database e ad Apache Tomcat come Java application server.
L'installazione è abbastanza agevole, soprattutto se si ha un minimo di dimestichezza con il deploy di una Java web application; per chi fosse alle prime armi è sicuramente consigliabile l'utilizzo del pacchetto
one-click-start; per tutti è disponibile una esaustiva
guida all'installazione, nella ricca
documentazione presente sul sito.
Prima di iniziare ad analizzare il framework “dal di dentro”, possiamo dare un'occhiata a una
applicazione demo messa a disposizione da
ManyDesigns, accessibile con credenziali
demo/demo; tale applicazione implementa un
sistema di gestione dei ticket, argomento ben noto agli sviluppatori, ed è un ottimo punto di partenza per capire quale possa essere il risultato dei nostri sforzi.
È utile anche riepilogare i
requisiti di sistema per l'installazione di
Portofino: è necessaria una macchina con almeno 512 MB di RAM e 800 MB di spazio su disco; il sistema operativo può essere scelto fra Windows, Solaris, Linux e Mac OS X; fondamentali, vista la natura dell'applicazione, sono ovviamente la presenza di un JDK/JRE Standard o Enterprise di versione uguale o superiore alla 1.5 e di un application server a scelta fra Tomcat 5.5.x o 6.x, JBoss 4.2.x, GlassFish, Oracle OC4J/Oracle AS, Sun Java System Application Server 9.1.
Sul fronte
database,
Portofino supporta sia i più blasonati marchi commerciali, quali Oracle dalla versione 9i, SQL Server dalla versione 2005, IBM DB2 9 e successivi, sia i più diffusi ambienti open, quali PostgreSQL 8.1, MySQL 5.1 e Derby 10, quest'ultimo in modalità
embedded, non utilizzabile in ambienti di produzione. Ovviamente sono supportati i
browser più utilizzati, quale unico requisito per i client.