MokaByte 87 - Luglio/Agosto 2004 
Geronimo, l'uomo che sbadiglia
di
Massimiliano
Bigatti

Geronimo, il nativo americano, nacque nel 1829 in quello che oggi è il New Mexico, ma che allora era ancora territorio messicano, dalla stirpe degli Apache. Il suo nome apache era Goyathlay ("one who yawns" - colui che sbadiglia), ma non si può dire che abbia dormito sogni tranquilli, nella propria vita.

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.


MokaByte® è un marchio registrato da MokaByte s.r.l. 
Java®, Jini® e tutti i nomi derivati sono marchi registrati da Sun Microsystems.
Tutti i diritti riservati. E' vietata la riproduzione anche parziale.
Per comunicazioni inviare una mail a info@mokabyte.it