MokaByte
Numero 27 - Febbraio 1999
|
|||
|
|||
Mauro Molino |
|
||
Java Blend è un prodotto targato Sun Microsystems in collaborazione con la Baan Company, che si pone come scopo quello di semplificare il più possibile lo sviluppo di applicazioni di gestione dati integrate all’interno della filosofia Java. La principale promessa del prodotto è quella di ridurre drasticamente i tempi di sviluppo di tali applicazioni rendendo l’accesso a dati relazionali semplice e rapido. In questo articolo vedremo le caratteristiche di questo strumento di sviluppo. Dopo un lungo
periodo di preparazione , la Sun ha reso disponibile quello che dovrebbe
essere il suo strumento di punta nel campo del database-programming sotto
Java, Java Blend. Il prodotto si colloca nel gruppo delle Enterprise-API,
in compagnia di Enterprise Java Beans, JINI etc. Java Blend è costituito
da un tool di sviluppo più un ambiente di runtime che dovrebbe facilitare
la creazione di applicazioni complesse che integrino Java. La filosofia
del prodotto è quella di lavorare a doppio senso per quel che riguarda
oggetti Java e strutture di database, permettendo cioè la intercambiabilità
delle due tipologie di dati. Vediamo di chiarire meglio questo concetto,
che poi e quello fondamentale per la comprensione dello strumento in esame.
Facciamo l’esempio di programma gestionale; per la sua scrittura si richiede
la conoscenza di un linguaggio di sviluppo per tutta la parte propriamente
applicativa più la conoscenza del SQL per la parte di gestione dati.
In Java il discorso è analogo: scriviamo in Java tutta la parte
di interfaccia, di elaborazione etc. e, tramite un driver JDBC o JDBC/ODBC
ci colleghiamo al database scrivendo delle istruzioni in SQL. Alla base
di Java Blend sta l’osservazione da parte della Sun che la coesistenza
delle due tipologie di linguaggio genera una dilatazione dei tempi di sviluppo
non indifferente, poiché il programmatore deve far coincidere due
“viste” della stessa struttura dati, cioè la vista rappresentata
dal SQL ( “SELECT xxx FROM yyy “ ) e quella rappresentata dagli oggetti
Java all’interno dei quali verranno a trovarsi i dati stessi ( es. la classe
ResultSet) . Nell’ottica Sun , l’utilizzo di uno strumento che permetta
l’utilizzo di un unico modello di sviluppo può ridurre i tempi di
sviluppo e permettere un maggior controllo dell'applicazione e un suo miglior
debugging. Vediamo come questo possa essere possibile.
Mapping Oggetto/Relazionale La comparsa sul mercato dei primi database relazionali a oggetti, ha notevolmente alleviato il problema accennato nel paragrafo precedente, lasciando però aperto il problema per tutti i database relazionali preesistenti, cioè non a oggetti. Java Blend supera questa limitazione utilizzando appunto il Mapping Oggetto/Relazionale. Attraverso questa tecnica, Java Blend è in grado di utilizzare qualsiasi database relazionale, a oggetti o meno, per il quale esista lo specifico driver JDBC, allo stesso identico modo, trattando cioè qualsiasi base dati come se fosse ad oggetti. Questo permette un maggior grado di libertà per quel che riguarda la scelta del database da utilizzare, soprattutto se ci si trova a dover sviluppare una applicazione su un database preesistente ( caso frequentissimo nelle soluzioni aziendali). Come è facile capire, il mapping consiste essenzialmente in una trasposizione della struttura dati relazionale in struttura dati Java, il tutto effettuato automaticamente da Java Blend e in più nei due sensi. La Sun attribuisce al suo prodotto le seguenti caratteristiche :
Altre caratteristiche Oltre ai già
citati vantaggi , Java Blend offre una serie di altre caratteristiche che
possono orientare lo sviluppatore Java verso un suo proficuo utilizzo ;
è degna di nota la possibilità per lo sviluppatore
di scegliere fra concorrenza ottimistica o pessimistica a livello transazionale.
Non ultima la possibilità di completa personalizzazione del mapping
del database a seconda delle esigenze. Questo permette ad esempio di definire
nomi simbolici dei campi mappati diversi da quelli originali, o la possibilità
di implementare delle regole di traduzione dei tipi di dati.
Portabilità Naturalmente
una delle prime cose richieste ad uno strumento di questo tipo è
la portabilità, come per tutti i prodotti legati a Java. In questo
caso però la situazione è leggermente più complessa,
perché oltre a ricercare la portabilità fra piattaforme,
si chiede anche che le applicazioni sviluppate siano indipendenti dal database
utilizzato. Entrambe le richieste non vengono disattese da Java Blend.
Intanto sia il tool che il runtime sono 100% Java, il che soddisfa pienamente
la prima richiesta. Quindi niente metodi nativi e completa libertà
rispetto alla piattaforma utilizzata. Per quanto concerne invece il secondo
punto, Java Blend si appoggia al JDBC, per cui qualsiasi database relazionale
per il quale esista il corrispondente driver JDBC è un potenziale
candidato all’utilizzo da parte dello sviluppatore. In questo modo, la
stessa applicazione potrebbe, una volta ultimata, funzionare indifferentemente
su diversi database relazionali. Per di più Java Blend è
conforme alle specifiche del consorzio ODMG ( Object Data Management Group)
per quanto riguarda il mapping oggetto/relazionale, consentendo così
la portabilità anche su database ad oggetti.
Prestazioni Precedentemente
in questo articolo abbiamo già citato la possibilità di Java
Blend di implementare algoritmi di query-processing e di caching. Questi
algoritmi, estremamente sofisticati, consentono un alleggerimento dell’attività
elaborativa del server di database ed eliminano la ridondanza dovuta ad
una eventuale richiesta multipla della stessa query. Tutto questo, come
facilmente arguibile, può incidere pesantemente in certe situazioni
sulle prestazioni globali dell’applicazione, soprattutto nel caso di un
server di database sottoposto a pesanti elaborazioni o ad un numero molto
alto di accessi contemporanei. Il pieno supporto delle transazioni completa
poi il panorama delle tecniche di ottimizzazione presenti nel prodotto.
Ci si possono aspettare prestazioni che al peggio sono come quelle del
driver JDBC utilizzato da solo, ma in molti casi migliori per i motivi
di cui sopra.
Limitazioni Fermo restando
che gli annunci della Sun promettano di rendere il prodotto il più
completo possibile nelle prossime versioni e malgrado Java Blend presenti
già segni di un discreto grado di maturazione, vediamo quali sono
alcuni dei difetti di gioventù del prodotto; la prima cosa che si
nota è che non è possibile aprire più di un database
per volta. La cosa può in alcuni casi non presentare grossi problemi,
però è almeno peculiare questa mancanza. E’ comunque già
annunciata la correzione nella prossima versione, così come è
annunciato il supporto per i BLOBs che adesso manca. Se ci si trova di
fronte a una query già utilizzata che debba essere usata così
come è, come nel caso di una query altamente ottimizzata, per il
momento si deve ricorrere a chiamate a API JDBC in quanto attualmente Java
Blend non sarebbe in grado di riutilizzarla. Come si vede , a parte il
primo problema, il prodotto non pare soffrire di eccessive limitazioni,
anche se al momento della stesura di questo articolo non ci risultano riscontri
di una certa importanza sull’utilizzo del prodotto . Staremo a vedere……….
Applicazioni multi-tier Java Blend sembra
in grado di poter essere utilizzato in applicazioni multi-tier, non solo
a livello client, ma anche in posizione di middle-tier. Potrebbe a d esempio
fare la parte del server per la business-logic, e questo sta diventando
sempre più un ambito nel quale Java sembra poter dare una marcia
in più; il numero di sviluppatori e di software-house che utilizzano
Java per lo sviluppo degli application-server è in continuo aumento,
sia per la rapidità di sviluppo consentita, sia perché ormai
le prestazioni di Java su lato server sono diventate equiparabili agli
altri sistemi, con la differenza che in Java sussistono molti meno problemi
legati alla gestione della memoria e alla stabilità del sistema.
Sistemi supportati Java Blend gira
su qualsiasi piattaforma con una Java Virtual Machine conforme alle specifiche
del JDK1.1. A livello database, attualmente fra i motori più noti
il supporto esiste per : MS SQL 6.5, Oracle 7.x e Sybase 10 e 11. Tenendo
conto del fatto che sia Oracle, sia IBM stanno migrando o hanno già
migrato i propri database proprietari anche su piattaforma Linux,
è facile rendersi conto delle potenzialità di un modello
( quello di Java ovviamente), che può realmente essere totalmente
indipendente dalla piattaforma utilizzata.
Conclusioni Il prodotto è nuovo ma non sembra soffrire troppo della sua tenera età. L’idea di base è molto buona, e può veramente risultare di estrema utilità per chi abbia la necessità di cimentarsi nella scrittura di una applicazione gestionale complessa in Java. Il prodotto è rilasciato commercialmente , e il suo prezzo parte da oltre 2000 dollari in su. Questo potrebbe scoraggiare i potenziali utilizzatori, ma forse tutto dipende dal tipo di diffusione che avrà e da quanto manterrà le promesse originali. Nel frattempo non possiamo che rallegrarci del proliferare di tool di sviluppo per Java, segno che questa tecnologia ha già indotto un riconoscimento e una presa di coscienza da parte del mondo informatico. |
|
||
MokaByte ricerca
nuovi collaboratori.
|
||
|