Geronimo
fu infatti il più famoso partigiano della resistenza
dei nativi americani verso le nuove popolazioni che stavano
colonizzando il nuovo continente. Si arrese nel 1886 alla
fine dell'ultima più significativa azione di guerriglia
indiana negli Stati Uniti, per diventare coltivatore ed esibirsi
in fiere vendendo souvenir.
Ma la battaglia che vuole disputare Apache Geronimo (il software),
deve ancora iniziare, e l'avversario non sono i coloni americani,
ma pericolosissimi application server proprietari, o concorrenti
open source, come JBoss o JOnAS.
Fuor di metafora, Apache Geronimo è il tentativo di
Apache Software Foundation (ASF) di costruire un application
server J2EE completo, dotato di tre caratteristiche fondamentali:
la licenza ASF, la compatibilità e l'utilizzo della
vasta base di codice di ASF (figura 1).
Figura 1 - Alcune proposte di logo per il progetto Geronimo;
quello definitivo deve essere ancora deciso.
Questioni
politiche
La licenza dovrà essere - ovviamente - quella della
fondazione Apache che, certificata come Open Source, ha il
vantaggio di offrire il software per un utilizzo libero e
gratuito, anche se con restrizioni minori rispetto a GPL (licenza
utilizzata ad esempio per il concorrente JBoss). La licenza
di Apache è più orientata al business, consentendo
che le opere derivate non siano integralmente open source
anch'esse (GPL richiede che tutte le parti di una opera derivata
vengano rilasciate sotto GPL). Quando infatti un'organizzazione
esegue modifiche ad un software GPL, non può ridistribuire
il solo compilato, ma deve rendere disponibili anche i sorgenti
modificati. Ad esempio, se qualcuno volesse fare modifiche
su JBoss e poi ridistribuire una versione modificata, chiamandola
ad esempio JBossNew, dovrebbe rilasciare anche i sorgenti
modificati. Nel caso della licenza ASF, invece, se qualcuno
modificasse il server Web Apache e lo ridistribuisse chiamandolo
ApacheNew, non sarebbe obbligato a rilasciarne i sorgenti,
ma solo ad indicare nella documentazione del programma che
il prodotto è basato su Apache Web Server di ASF. Questa
è una differenza sostanziale, che rimarca le differenze
di intenti tra la Free Software Foundation (FSF), creatrice
della licenza GPL, e la Apache Software Foundation: la prima
vuole promuovere la libertà, contestualizzata nella
produzione ed utilizzo del software, ASF vuole invece produrre
programmi di alta qualità per supportare il funzionamento
del Web.
Questa diversità è stata sfruttata da diversi
produttori di software, primo fra tutti IBM, che utilizza
Apache nel suo WebSphere, rinominandolo WebSphere HTTP Server.
Compatibilità
Un altro obiettivo dichiarato del progetto Geronimo è
quello di supportare le API in versione 1.4 e di passare i
test di compatibilità di SUN TCK (Technology Compatibility
Kit); se raggiunto, questo obiettivo farebbe di Geronimo il
primo application server open source certificato, aspetto
che manca ai suoi concorrenti JBoss e JOnAS. La compatibilità,
nel mondo J2EE, è fondamentale: assicura che una applicazione,
ad esempio sviluppata per un'application server, possa essere
installata e funzionare correttamente su un altro application
server, a patto che entrambi supportino lo stesso livello
di specifiche (p.e. 1.4) e che siano perfettamente conformi.
Senza questa compatibilità viene meno tutto il castello
costruito da SUN, che prevede la suddivisione tra API ed implementazione;
se l'indipendenza dall'implementazione non fosse realizzata
veramente, si darebbe ragione la visione opposta (un prodotto
= una API), rappresentata ad esempio da .NET. Per questo motivo
per SUN è fondamentale assicurarsi che gli application
server che si dichiarano compatibili con J2EE lo siano effettivamente,
e per questo motivo ha creato un programma di certificazione
dotato di un test di compatibilità, che verifica che
ogni singolo "bit&byte" funzioni come richiesto
dalle specifiche.
La questione della compatibilità si può vedere
su due piani differenti: dal punto di vista tecnico, il toolkit
di SUN per la compatibilità è un aiuto a determinare
il funzionamento conforme di un application server, che però
può essere raggiunto anche con altri mezzi; dal punto
di vista "politico", invece, il bollino di certificazione
di SUN non è solo una garanzia per l'utente, ma anche
un mezzo promozionale per il fornitore.
Fino all'autunno dell'anno scorso gli application server open
source non potevano essere certificati da SUN, per via del
tipo di licenza che veniva imposta ai produttori; dopo una
accesa diatriba tra SUN e JBoss Inc, la prima ha deciso di
modificare la licenza e la seconda di pagare quanto richiesto
(in precedenza ritenuta una cifra eccessiva). Di conseguenza
oggi i diversi application open source: Geronimo, JBoss e
JOnAS possono ambire alla certificazione SUN.
Un
pieno di tecnologie
Nell'intento di Apache Software Foundation, le componenti
di Geronimo dovranno utilizzere il miglior software disponibile
oggi rilasciato con licenza ASF/BSD; d'altra parte, già
oggi uno dei maggiori Web Container, Tomcat, è prodotto
proprio da ASF. Ad oggi il gruppo di sviluppo di Geronimo
non ha ancora prodotto una versione stabile del software,
ma ha reso disponibile una milestone in modo che gli interessati
possano provare il software, senza le problematiche che sorgono
costruendolo a partire dai sorgenti (come ad esempio l'installazione
e l'utilizzo di Maven). Guardando nelle note di release emerge
l'elenco delle tecnologie integrate in Geronimo allo scopo
di fornire le funzionalità che un application server
J2EE deve offrire.
La prima cosa che balza all'occhio è l'utilizzo di
Jetty (http://jetty.mortbay.org/jetty/index.html), il Web
Container realizzato da Mort Bay Consulting e rilasciato con
licenza open source; è meno famoso di Tomcat, ma distribuito
o integrato con altri prodotti open source di punta, come
JBoss, JOnAS, JXTA, Tapestry, Cocoon, Avalon. Ha quindi dimostrato
sul campo la propria affidabilità. E' strano: dalla
dichiarazione di intenti di ASF, che indicava i software della
stessa ASF come quelli naturalmente propensi all'integrazione
in Geronimo, mi sarei aspettato la presenza di Tomcat, e non
di Jetty. Ad ogni modo, l'utilizzo di Jetty 5 beta 0 porta
l'implementazione di Servlet 2.4 (JSR 154) e JSP 2.0 (JSR
152).
Un altro elemento essenziale è OpenEJB (http://www.openejb.org/),
l'implementazione di un contenitore di EJB configurabile ed
estensibile sviluppato inizialmente all'interno del progetto
Exolab (http://www.exolab.org, sponsorizzato da Intalio, http://www.intalio.com),
ma che ora sembra essere gestito dal sempre più grande
"cappello" CodeHaus (http://www.codehaus.org/),
iniziativa che raccoglie una serie di importanti ed emergenti
progetti open source Java. Dietro CodeHaus ci sono nomi noti:
per primo Bob McWhirter, il fondatore di The Werken Company
e realizzatore dei noti progetti open source Jaxen e drools.
Prima l'azienda sosteneva questi ed altri progetti open source
in prima persona, ora lo fa attraverso CodeHaus. Un altro
sponsor di questa iniziativa è ThoughtWorks, l'azienda
che impiega, come chief architect, un nome molto noto nel
mondo Java e non solo: Martin Fowler. Interessante il modello
di sviluppo open source che ne sta derivando: da un panorama
dove i progetti erano sviluppati primariamente da un gruppo
di privati, che solo in un secondo tempo, forse, riuscivano
ad ottenere la sponsorizzazione da parte di aziende (si veda
il progetto hibernate). Si sta passando ad un modello dove
le aziende incoraggiano e sostengono i progetti open source
come via per promuovere l'azienda stessa, e forse anche ridurre
i tempi di sviluppo dei propri progetti, utilizzando le componenti
open source sviluppati in collaborazione con altri, oltre
che valorizzare i propri talenti offrendogli la possibilità
di lavorare su componenti pubbliche che solitamente sono sempre
interessanti dal punto di vista tecnico.
Conclusioni
Il nuovo nato della famiglia degli Apache è ancora
giovane, ma ha avuto un periodo di incubazione (quel momento
di tempo in cui ASF si riserva di valutare un progetto per
l'eventuale adozione all'interno delle proprie strutture)
abbastanza breve, segno inequivocabile dell'enorme interesse
che ruota attorno a questa nuova iniziativa. JOnAS, ma soprattutto
JBoss, già trema all'idea si essere scalzato dal trono
del miglior application server open source e - visto il peso
di Apache Software Foundation - questo timore potrebbe essere
ben motivato.
Riferimenti
Geronimo - Application Server J2EE di ASF - http://geronimo.apache.org/
JBoss - Application Server os leader di mercato - http://www.jboss.org
JOnAS - Altro application server open source - http://jonas.objectweb.org/
CodeHaus - Organizzazione per la gestione di progetti open
source - http://www.codehaus.org/
Jetty - Web Container open source - http://jetty.mortbay.org/jetty/index.html
OpenEJB - EJB Container open source - http://www.openejb.org/
Exolab - Altra organizzazione di gestione di progetti open
source, un po' in disuso - http://www.exolab.org
Intalio - Sponsor di Exolab - http://www.intalio.com
Massimiliano
Bigatti é autore dei libri "Da Visual Basic
a Java", "Da Visual Basic a C#" e "Java
Web Application". E' certificato, tra le altre, come
SUN Certified Enterprise Architect for Java Platform, Enterprise
Edition Technology. E' content editor del portale dedicato
ai Web Services http://javawebservices.it.
|