MokaByte 94 - Marzo 2005 
Nuvole nel cielo
di
Massimiliano Bigatti
Al LinuxWorld del 2004, IBM ha annunciato l'intezione di donare il proprio database Cloudscape all'Apache Software Foundation. Con il nome di Derby, il progetto è stato accolto nell'incubatore della fondazione, in attesa di essere promosso a progetto di primo livello all'interno dell'Apache DB Project

Per scovare le origini di Derby è necessario tornare indietro negli anni e spostarci di molte migliaia di chilometri, fino ad Oakland, California. È il 1996, e la startup Cloudscape Inc viene fondata con il preciso obiettivo di sviluppare tecnologia di database utilizzando il linguaggio Java. La prima versione, con il nome di JBMS, avvenì nel 1997. Da quel momento iniziò un ciclo di revisioni semestrali, che portò al rilascio di diverse versioni successive. Probabilmente Cloudscape non ebbe la fortuna sperata, e nel 1999 vendette le attività ad Informix. Pochi anni dopo, nel 2001, IBM acquisì tutte le attività legate ai database dalla stessa Informix, sicuramente allo scopo di ridurre la competizione per DB2 ed acquisire nuovi clienti.
Il gigante IBM si trovò dunque in mano questo piccolo database full Java, studiato per l'utilizzo all'interno di applicazioni Java e cominciò a chiedersi cosa farne.

Obiettivo Comunità
Il prodotto non doveva riscuotere molto successo, anche se negli anni passati ogni tanto lo si sentiva nominare. Ricordo anche una Java Conference al Marriott Hotel, a Milano, dove veniva promosso insieme ad altri prodotti. Non mi sembra però avesse un successo strepitoso, e non si può dire che le aziende che lo hanno posseduto abbiano prosperato, visto che sono state comprate da concorrenti più grandi. Anche la recente mossa di IBM verso l'open source è una sorta di conferma: se il prodotto fosse richiesto ed i clienti disposti a pagare, perché rilasciarlo gratuitamente?
La prassi di rilasciare del software nato all'interno delle mura dell'azienda con logica open source vede illustri predecessori, come Netscape. Ma se si osserva la fondazione Mozilla, si nota che ci vuole del tempo prima che del software nato come commerciale possa funzionare in un contesto open source.
In questi casi ci sono infatti almeno due problemi:
1. il codice. Spesso il codice non è scritto con la leggibilità come uno dei primi obiettivi, visto che lo scopo di un'azienda è quello di consegnare in tempo e non quello di rendere i propri sorgenti facilmente leggibili da parte degli sviluppatori esterni alla stessa;
2. la comunità. Un aspetto essenziale del mondo open source è la comunità. Non basta avere del software open source perché gli utenti lo utilizzino. È necessario costruire una rete di sviluppatori, utenti, tester, traduttori/localizzatori, supporter in genere che componga la comunità di supporto ad un progetto.

Il secondo aspetto è forse quello di importanza più fondamentale e più difficile da creare. Il fatto di donare i sorgenti ad Apache Software Foundation (ASF) è infatti, nelle stesse dichiarazioni di IBM, un modo per costruire questa comunità, che ad oggi manca. Con la grande penetrazione nel mondo degli sviluppatori che può vantare ASF, IBM si aspetta un grande aiuto su questo aspetto.

 

Un piano preciso
La strategia di IBM è quella già adottata in altri ambiti: offrire una determinata tecnologia o componente software di valore all'interno dei propri prodotti. Su questi fornire assistenza, consulenza, formazione e tutto quanto necessario a supportare il cliente nell'utilizzo del prodotto. Un esempio è l'http server di Apache, rivenduto come parte di WebSphere sotto il nome di IBM http server.
Il modello è molto simile a quello adottato da JBoss Inc, con la differenza che IBM si fa pagare anche i prodotti, mentre JBoss non impone costi di licenza.
Derby sarà dunque integrato nell'offerta software di IBM, con lo scopo di divenire un ulteriore componente "standard" dell'insieme di tecnologie Java. Non tanto uno standard certificato dal JCP, non avrebbe senso vista la natura del software, un database, che già è garantito dalle API standard JDBC e JTA.
L'intenzione di IBM è piuttosto che Derby diventi una commodity data per scontata dagli sviluppatori Java, come se fosse il parser XML, un provider JMS od il supporto a CORBA. Una funzionalità che, quando serve, viene importata nel progetto, magari sviluppato con Eclipse, ed utilizzata nell'applicazione.
In cambio, IBM chiede alla comunità l'impegno a supportare e sviluppare ulteriormente il software, correggendo malfunzionamenti ed aggiungendo funzionalità.

 

Tuffarsi nelle nuvole
Cloudscape (o Derby) è un database che risiede all'interno di un file JAR di circa 2MB, completamente transazionale e relazionale. È scritto completamente in Java ed è conforme alle API JDBC. Utilizza il linguaggio SQL implementando la concorrenza, i constraint, i trigger e le copie di sicurezza in tempo reale. Supporta CLOB e BLOB, tabelle temporanee e cursori.
Il software richiede una JVM 1.3 o superiore e può girare su J2SE o J2EE.
Non richiede amministrazione, anche se le precedenti versioni di Cloudscape disponevano di un tool di accesso al database chiamato Cloudview. Non si trova traccia ora di questo elemento delle pagine di Apache Software Foundation, ma è probabile che lo strumento salti fuori di nuovo in futuro.
Derby pone attenzione anche all'aspetto legato alla sicurezza. In situazioni normali un database server gira su una macchina dedicata, che solitamente risiede all'interno di un'area protetta. Questo elemento già offre un grado di protezione sufficiente a garantire che utenti non autorizzati accedano a dati sensibili. Essendo Derby uno strumento che può girare su hardware non presidiato, questi deve mettere in atto i meccanismi necessari alla protezione dei dati.
Un altro aspetto interessante è la possibilità di eseguire Derby anche in modalità autonoma, senza la necessità di istanziarlo all'interno della propria applicazione. In questo caso cambia il driver JDBC da utilizzare e la configurazione è una tipica client/server. Questa configurazione però impone di rinunciare ad uno dei vantaggi principali di Derby, la sua natura embedded.

 

Conclusioni
"L'affare Cloudscape" può rivelarsi interessante per lo sviluppatore. La disponibilità di un database server che gira all'interno dell'applicazione, open source, con una community comunque supportata da IBM potrebbe rivelarsi un successo. La licenza di Derby, quella impiegata nei progetti di Apache, prevede l'utilizzo del software all'interno delle proprie applicazioni senza la necessità di pagare alcunché ad ASF. L'unica richiesta è quella di inserire una nota nel software e nella documentazione per dichiarare l'uso di parti di codice fornite da ASF.
Le applicazioni desktop, ma anche quelle J2EE non fortemente orientate ai dati, potrebbero integrare Derby per memorizzare dati temporanei o di persistenza a breve o medio periodo, mantenendo la possibilità di esportarli verso una base dati relazionale classica (come Oracle o DB2) in un secondo momento.
Ad oggi Derby è già disponibile, e si può scaricare la versione 10.0.2.1, ottenibile a questo indirizzo: http://cvs.apache.org/dist/incubator/derby/10.0.2.1/.

 

Bibliografia e riferimenti
[1] Jon Prial - "Why IBM is Open Sourcing Cloudscape as Derby", IBM DeveloperWorks, 10/2004, http://www-106.ibm.com/developerworks/db2/library/techarticle/dm-0410prial/
[2] Vari - "Cloudscape gains momentum", Slashdot 01/2005, http://developers.slashdot.org/article.pl?sid=05/01/26/0231217
The Apache DB Project, http://db.apache.org/
IBM Software - Cloudscape, http://www-306.ibm.com/software/data/cloudscape/
IBM Software - Informix Product Family, http://www-306.ibm.com/software/data/informix/
Apache Derby Project, http://incubator.apache.org/derby/


Massimiliano Bigatti é autore di diversi libri su Java, tra cui "Java ed Open Source" e "Da Visual Basic a Java". È 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