MokaByte Numero 32  -  Luglio Agosto 99
 
Oracle 8i e Java
di 
Pier Luigi Bisio
Una analisi su uno dei database più utilizzati al mondo e sulla integrazione con la tecnologia Java


Oracle, il primo produttore di database al mondo,  scommette su Java e lo fa proponendo nella nuova versione dei suoi prodotti, un complesso di applicazioni e di funzionalità innovative che mirano a strutturare la gestione dei dati in una veste rinnovata essenzialmente WEB centrica.
Oracle 8i è di fatto molto  più che una semplice nuova release di un prodotto rodato, è un vera e propria svolta tecnologica,  pensata per offrire alle utenze una architettura applicativa rivoluzionata.
Le intenzioni dichiarate dalla casa di Redwood Shores a fine '98,  di giungere ad una “macchina  Oracle” interamente dedicata al DB senza più necessità di un sistema operativo (integrando al più parti di Solaris della SUN), vedono una prima sintesi concreta nell’offerta attuale del prodotto, instradato verso una sempre maggiore autonomia dai vari OS. 
Pensando al server WEB come al nucleo centrale per  una base applicativa aperta ed accessibile da qualsiasi postazione, sia essa fissa, mobile, WorkStation o thin client,   Oracle 8i apre un orizzonte vastissimo di opportunità, ed è inevitabile che lo strumento ideale utilizzato per seguire una simile impronta filosofica non possa che essere Java. 
Il browser supportato da qualsiasi tipo di client  è il ganglio periferico di un sistema informatico che riparte dal centro, rivolto ad un'utenza che ha sempre meno bisogno di essere Personal Computer dipendente ma che non per questo vuole perdere quanto di buono il PC ha saputo dare.
Oracle 8i " il database pensato per Internet" non è certo solo uno slogan commerciale. Il nuovo DB è accessibile e gestibile interamente via Web, introduce un nuovo tipo di supporto per Java attraverso la Virtual Machine integrata con il Server, propone una serie di strumenti di sviluppo: il WebDB e la Suite JDeveloper espressamente pensati per facilitare la costruzione di applicazioni "broser-based" in modo rapido, integrate con il database. Infine presenta alcune novità (in rilascio nella release prevista a fine estate) come iFS ovvero l'internet File System ed interMedia di sicuro interesse per la gestione del multimedia e dei servizi per l'office automation .
 
 

La JVM in breve

La Java Virtual Machine di Oracle 8i è un ambiente standard Java al 100% che si attiene alle specifiche del JDK 1.1.6 ed è formato da diverse componenti integrate tra loro in modo da ottenere una prestazione ottimale nell'interazione con la base dati. E' in estrema sintesi formata dal Library Manager che si occupa della gestione dei programmi Java nel DB, questi importabili od esportabili dall'utente sotto forma di sorgenti, binari o archivi ( .jar), è poi composto dall'Object Memory Management delegato alla gestione della memoria , dal Garbage Collector, e dal Java Class Loader che si incarica di  caricare e inizializzare le classi Java  immagazzinate nel database.
La JVM mette naturalmente a disposizione il compilatore per sorgenti Java ed un interprete con associato runtime per l'esecuzione delle classi. Supporta inoltre tutte le librerie del JDK 1.1.6 tranne le AWT di cui peraltro non si sente la mancanza in questo ambito, essendo VM del server rivolta ad operazioni di calcolo e non di interfaccia.
 
 

L'integrazione tra Java ed il DB

I dati e gli oggetti immagazzinati in un DB Oracle sono di fatto tutte strutture maneggiabili attraverso il linguaggio SQL.  L'integrazione con Java  permette ora di accedere a tutti gli oggetti via JDBC e via SQLJ.
Le  JDBC API sono sicuramente note agli sviluppatori Java ed offrono una via semplice per interagire con una base dati. SQLJ è invece una soluzione nuova proposta da Oracle.  Offre la possibilità di scrivere programmi che eseguono istruzioni SQL in modo più immediato rispetto ai JDBC e soprattutto ne potenzia il controllo permettendo di eseguire il debug, sul codice SQL presente nel programma Java, già al momento della compilazione.
Attraverso il JDBC le istruzioni SQL sono infatti inviate al database come una stringa e come tale non controllate, mentre SQLJ le verifica direttamente, evidenziando magari una SELECT non corretta o una INSERT impropria.
Inoltre un vantaggio non secondario consiste nel minor  numero di righe che con SQLJ occorre scrivere in un programma che lavora sui dati, e le istruzioni da digitare riescono decisamente più immediate.
Il JDBC è comunque un buon strumento di accesso alle informazioni ma pecca forse di alcune rigidità che SQLJ risolve in modo immediato e semplice. Occorre comunque riconoscergli un vantaggio nella costruzione di istruzioni dinamiche essendo SQLJ sicuramente più indicato per le query statiche.
E' da sottolineare inoltre che ora le stored procedures, ovvero quei programmi che risiedono e vengono eseguiti tradizionalmente nei database, si possono creare dei programmi veri e propri in Java, programmi che poi si possono eseguire direttamente in Oracle 8i grazie alla già menzionata integrazione della Java Virtual Machine.
A margine di quanto appena detto si può inoltre aggiungere che secondo molti addetti ai lavori il PL/SQL, linguaggio di programmazione proprietario Oracle, abbia ormai i giorni contati proprio a vantaggio di Java .
 
 

Oracle Enterprise Manager

E' lo strumento principale nell'amministrazione di Oracle ed è costruito con un'architettura a tre strati.
Il primo strato riguarda la gestione dell'interfaccia verso l'utente la Enterprise Manager Console che è sviluppata in Java e può essere eseguita anche da un browser. 
Il secondo livello è il vero e proprio motore dell'applicazione, consiste in una "intelligenza" centralizzata che controlla i nodi , il System job, l'event system, ed i servizi responsabili dei controlli di sistema e del load-balancing. Il terzo livello infine comprende la  gestione dei dati e delle applicazioni.
Grazie alla sua interfaccia grafica l'Enterprise Manager possiede una semplicità di utilizzo veramente elevata e permette un accesso immediato alla potenza di Oracle. Già nella precedente versione erano presenti strumenti di enterprise management facili da utilizzare e completi nelle funzioni, ora la novità più convincente è anche qui comparsa grazie ad una vigorosa iniezione di elasticità funzionale apportata da java. 
L'azienda che lavora con Oracle si gestirà via WEB: è questo in sintesi il messaggio che si percepisce inequivocabilmente.
Aprire Netscape Navigator, scegliere un URL e vedere comparire la console di gestione del database aziendale ha un impatto visivo abbastanza forte, ma le conseguenze che si porta appresso sono molto estese e permeano nel profondo tutte le strutture dell'EDP. 
L' Enterprise Manager offre, la potenza di poter amministrare da qualsiasi postazione dotata di un browser i lavori  e gli eventi di sistema, gli Utenti i Gruppi e tutte le opzioni di security. Oltre ad aprire all'immediatezza della forma grafica una serie enorme di funzioni. 
Le gestioni dei backup, le schedulazioni dei lavori possono quindi tranquillamente essere gestite da un amministratore collegato via intranet.
Oracle Enterprise Manager è costruito sugli stadard di Internet, JAVA, CORBA, e IIOP che forniscono una solida base a quella che è la prima vera struttura di management aziendale disegnata per l'Internet computing.
 
 
 

Il WebDB

E' lo strumento di cui Oracle dispone per produrre programmi browser-based rivolti ad Internet ed alle intranet.
Attraverso un'interfaccia HTML di immediata e facile utilizzazione, WebDB consente agli utenti lo sviluppo rapido di applicativi per il Web e permette di concentrare tutta l'attenzione sul dato da gestire delegando gli aspetti più strettamente connessi alla programmazione ai suoi potenti tools.
Attraverso MS Explorer o Netscape Navigator si possono produrre applicazioni che si presenteranno come semplici pagine web accessibili da qualsiasi punto della rete e ben performanti anche su linee a bassa velocità. La semplicità di utilizzo è sicuramente uno dei punto di forza di questo prodotto che permette di creare query,  report e chart senza necessariamente scrivere codice SQL e grazie all'implementazione di wizard ben strutturati permette di raggiungere ottimi livelli di produttività.
Menzione particolare meritano gli strumenti di controllo e monitoraggio del database che WebDB propone sotto forma di report precostituiti in grado di fornire agli amministratori di sistema anche i dati più particolareggiati su performance, accessi, statistiche di utilizzo e quant'altro sia misurabile.
 
 
 

La Suite Jdeveloper

E' un prodotto di sviluppo visuale che offre elevata integrazione con i dati.
Questo strumento è forse il mezzo migliore per comprendere dal punto di vista applicativo quanto Java si sia avvicinato al  mondo dei database.
Chi già conosce la famiglia dei prodotti JBuilder di Borland, troverà in questo strumento una grande affinità dal punto di vista funzionale e nell'interfaccia grafica veramente molto simile, con in più alcune interessanti estensioni per le funzionalità di accesso ai dati.
Attraverso una serie di wizard si possono creare applicazioni in Java in modo semplice e veloce, concentrandosi sul risultato  senza pensare troppo al codice.
Anche per procedure aziendali di media o piccola complessità, costruire una maschera di immissione o una tabella di visualizzazione diviene così quasi un  aspetto secondario del lavoro, e ci si può invece permettere una migliore concentrazione sulla struttura del programma.
Una serie di tools permettono di navigare il database di reperire tabelle e campi con grande semplicità. Una su tutte il Query Editor che aiuta a testare le istruzioni SQL verificando la sintassi e la coerenza delle istruzioni digitate.
Guardando all'aspetto più tecnico le opportunità principali che la Suite presenta risiedono nelle innovative architetture che le sue applicazioni possono offrire: ad esempio il completo supporto per la creazione ed il debug di programmi SQLJ in modo rapido ed immediato. 
JDeveloper è anche lo strumento ideale per la costruzione degli Enterprise JavaBeans che sono l'architettura di base per produrre componenti riutilizzabili nelle applicazioni WEB.
Gli EJB sono abbastanza facili da produrre e da integrare con i dati di Oracle, la loro creazione è guidata e semplificata  attraverso una serie Wizard. E' scindibile in due passi principali, uno di sviluppo ed uno di "deployment", il primo genera le classi ed il secondo provvede alla loro archiviazione ed alla loro disposizione in Oracle 8i.
 
 

Un esempio

Al fine di chiarire meglio alcune funzionalità vi propongo un breve esempio.
Per produrre un programma SQLJ con JDeveloper è sufficiente creare un sorgente SQLJ nel progetto e lo si può fare scegliendo l’icona SQLJ file dal pannello dei wizard di creazione. Si produce così una struttura .sqlj che comprende gli “import  sqlj.runtime.*;” e “import sqlj.runtime.ref.*;”. Nella stessa struttura si possono poi includere con facilità le istruzioni SQL  digitando essenzialmente il necessario ad esempio: #sql{SELECT FROM DIPENDENTI WHERE (NOME =’PierLuigi’) },  lasciando così agli automatismi del wizard il rimanente codice.
Quando si compila il programma, Jdeveloper produrrà la classe relativa, ma oltre a ciò translerà anche in un sorgente .java il codice SQLJ trasformandolo in chiamate standard JDBC. 
E' inoltre offerta la possibilità di eseguire il controllo, durante la traslazione delle istruzioni SQLJ, direttamente sulle istruzioni SQL limitando in tal modo le possibilità di errori. 
 
 

iFS

iFS ovvero l'internet File System è al momento una promessa di cui a breve (fine estate probabilmente) si potranno avere i primi assaggi ed è un ulteriore importante passaggio verso l'indipendenza del DB dai Sistemi Operativi. 
Come dice il nome stesso si tratta di un File System per internet ovvero la possibilità di visualizzare i dati come se fossero una qualsiasi unità disco connessa sulla rete. Il tutto grazie ad una applicazione che opera sulla JVM di Oracle 8i. Ed esattamente come i files in una cartella, saranno navigabili, copiabili, incollabili, modificabili e su di essi si potranno eseguire ricerche di testo.
Con interMedia  inoltre Oracle  propone un supporto interessante nella gestione  del dato in forma multimediale, aprendo il database all'integrazione di audio, video ed immagini. 
 
 

Conclusioni

Ripensando a ciò che è stato il terminale "stupido", che si connetteva al mainframe e permetteva all'amministratore di controllare ogni processo ed ogni livello applicativo in modo sicuro e con costi di gestione relativamente bassi, guardando poi al client\server con il suo elevato potenziale produttivo ma anche ai suoi elevati costi di manutenzione e alla conseguente anarchia gestionale che si è portato appresso, emerge ora in modo estremamente promettente il connubio database -Web che Oracle propone.
Coniugando al meglio quell'indipendenza dai sistemi proprietari che è punto di forza della tecnologia Java, Oracle 8i
scardina i presupposti fondamentali delle consuete archittetture client/server, offrendo applicazioni facili da mantere e controllabili dal centro ma non per questo meno efficienti e produttive, promettendo inoltre dal lato client una connettività quanto più possibile aperta: dalle WorkStation ai palmari, dai PC alle JavaStation.

  
 

MokaByte rivista web su Java

MokaByte ricerca nuovi collaboratori
Chi volesse mettersi in contatto con noi può farlo scrivendo a mokainfo@mokabyte.it