MokaByte Numero 18 - Aprile 1998
 

 
JAVA STUDIO 1.0
di
Matteo Baccan
Una vista d'insieme del nuovo ambiente di sviluppo prodotto da SUN 

 

 



 

JAVA Studio è un nuovo ambiente di sviluppo RAD prodotto da SUN che si basa sul JDK 1.1.3 e che permette di realizzare applicazioni Java in modo completamente visuale. Per ottenere un'applicazione non è necessario scrivere manualmente del codice, ma è sufficiente impostare delle proprietà all'interno dei vari Wizard e Customizer disponibili, lasciando a JAVA Studio il compito di generare il codice necessario al funzionamento dell'applicazione.




L'ambiente
L'installazione di JAVA Studio occupa circa 40 MB di spazio sul disco fisso.
Oltre al JDK 1.1.3 e all'ambiente di sviluppo vero e proprio, vengono installati anche vari esempi esplicativi delle funzionalità del prodotto, e la documentazione in linea in formato HTML. L'ambiente di sviluppo si presenta diviso in tre parti:

  1. Main Window. È la finestra principale di JAVA studio. Comprende la toolbar, le palette dell'ambiente di sviluppo, e vari menu. La toolbar è completamente personalizzabile e permette di aggiungere componenti custom alle applicazioni create.
  2. Design Window. È la finestra nella quale vengono impostate le connessioni tra le componenti non visuali dell'applicazione. In questa finestra è possibile impostare un collegamento, per esempio, tra una tabella ed una connessione JDBC, oppure modificare i parametri di un particolare oggetto dell'applicazione.
  3. GUI Window. È la finestra al cui interno viene definita l'interfaccia dell'applicazione. Ogni volta in cui si renda necessario aggiungere un componente di interfaccia all'interno di una form, bisogna utilizzare questa finestra.
Rispetto ad altri ambienti di sviluppo visuali come ad esempio Jbuilder di Borland o Power J++ di Sybase, JAVA Studio introduce un modo leggermente diverso di lavorare, imponendo il completo distacco fra la progettazione dell'applicazione (design) e il disegno dell'interfaccia grafica (GUI).

All'interno di altri strumenti, normalmente, è invece possibile gestire elementi non visuali e elementi d'interfaccia utilizzando lo stesso editor grafico, tipicamente il Form Designer.

 

Una visione d'insieme
Iniziamo ad analizzare più in dettaglio le caratteristiche dei tre ambienti presenti all'interno di JAVA Studio. Il primo di questi è la Main Window, che contiene una palette divisa in sette pagine (o tab), ognuna delle quali fornisce allo sviluppatore una determinata categoria di componenti che possono essere utilizzate nell'applicazione. Le pagine disponibili sono le seguenti:

  1. GUI. I componenti di questa pagina appaiono sia nella Main Window che all'interno della Design Window. Si tratta di comuni elementi grafici, come Label, Button e CheckBox, ma anche di nuovi componenti introdotti da JAVA Studio, come VJLabel3D e VJDirectionButton. L'inserimento di questi componenti all'interno dell'applicazione può essere effettuato semplicemente trascinando l'elemento selezionato, tramite drag-and-drop, dalla palette verso la finestra di destinazione.
  2. Data Flow. Contiene i componenti che controllano il flusso dei messaggi fra i vari oggetti dell'applicazione, tra cui Distributor, Merger, Multiplexor, Switch, Logical e External Connector.
  3. Computation. Contiene tutti i componenti che si occupano di effettuare operazioni logiche o aritmetiche, tra cui Math, If, Logical Evaluator, Relational, e diversi altri componenti che possono essere utilizzati per la manipolazione di stringhe.
  4. Multimedia. Contiene tutti i componenti relativi alla realizzazione di effetti multimediali, tra cui Image Map, Sound Player e VJ Animator.
  5. Internet. Contiene solamente un componente, chiamato URL opener, che permette di accedere ad un determinato sito WEB.
  6. Database. Contiene tutti i componenti necessari per la gestione di un database, tra cui Database Access, Table Output e Validation Text Field. Il primo di questi permette la connessione, tramite JDBC, con un server di database; il secondo è una griglia che visualizza i dati restituiti da una query, mentre il terzo è un control che permette la visualizzazione del valore di un campo all'interno di un edit control.
  7. Debug. Contiene tutti i componenti necessari per effettuare il debug dell'applicazione.

I Connettori
La prima cosa che si nota non appena si inserisce un control di qualsiasi tipo all'interno della GUI Window è la comparsa, all'interno della Design Window, di un oggetto chiamato "connettore". I connettori sono associati ad ogni tipo di oggetto inserito nella Design Window; alcuni oggetti, addirittura, sono formati da soli connettori. Un connettore rappresenta visivamente il modo con cui il componente ad esso associato può leggere dei dati in input e restituire dei valori di output. Cerchiamo di chiarire questo concetto con un esempio. Supponiamo di avere a disposizione un control di tipo Slider. Un control di questo tipo, dal punto di vista grafico, non è altro che una barra che contiene un cursore in grado di muoversi al suo interno.

Gli attributi di input di uno Slider possono essere, ad esempio, il suo valore minimo, il valore massimo, il valore iniziale, il colore, lo stato di attivazione e così via. Il valore di output è invece costituito dalla posizione attuale del cursore interno dello Slider. A questo punto, supponiamo di dover inserire un secondo control all'interno della GUI Window. In particolare, immaginiamo di dover inserire un control di tipo TickerTape. Un control di questo tipo si limita a visualizzare sulla finestra una scritta in movimento. A questa scritta può essere associato un attributo temporale, che non rappresenta altro che un elemento di input del control TickerTape. A questo punto abbiamo la possibilità di utilizzare un attributo in output, il cui valore viene restituito dallo Slider, e un attributo in input, accettato dal componente TickerTape. All'interno della finestra di design è possibile collegare i connettori di questi componenti, utilizzando il mouse per tracciare una riga dall'input del primo all'output del secondo. La conseguenza di questa connessione sarà che, muovendo il cursore dello Slider, la velocità di scroll del TickerTape aumenterà o diminuirà in base alla posizione attuale di tale cursore.

Come modalità di funzionamento, la logica dei connettori è un po' diversa rispetto al normale modo di lavorare tipicamente utilizzato con strumenti di sviluppo di tipo visuale. Grazie ai connettori, però, diventa molto semplice definire delle applicazioni in cui risulti ben chiara la progettazione delle varie finestre.

 

Il tutorial
Una parte molto apprezzabile di JAVA Studio è il tutorial, che spiega, molto chiaramente, come introdurre dei componenti all'interno di un'applicazione, e come utilizzare in modo corretto i connettori. L'intera documentazione fornita con il prodotto è in formato HTML, ed è possibile consultarla utilizzando qualsiasi browser Web. Viene fornita insieme al prodotto anche una versione leggermente modificata di HotJava, che può essere utilizzata per navigare normalmente all'interno di siti Web, ma è soprattutto progettata per permettere agli utenti di JAVA Studio di comunicare le proprie impressioni agli sviluppatori di questo strumento. Infatti è stato aggiunto un comando al menu principale, tramite il quale è possibile inviare dei messaggi di posta elettronica al supporto tecnico SUN, per segnalare eventuali malfunzionamenti del prodotto.

 

L'accesso ai dati
Uno degli aspetti più importanti di qualsiasi moderno prodotto di sviluppo, è sicuramente quello relativo all'accesso a database. Al riguardo JAVA Studio dà la possibilità di connettersi a qualsiasi tipo di database, utilizzando un driver JDBC. Durante lo sviluppo dell'applicazione, per potersi collegare alle finestre create con JAVA Studio, è necessario spostarsi nella palette che contiene i vari componenti legati ai database ed inserire un componente non visuale di tipo Simple DB-Access all'interno della finestra. A questo punto è possibile accedere alle proprietà di questo componente, e impostare, prima di tutto, alcune caratteristiche che servono per identificare il driver che verrà utilizzato. La prima caratteristica da cambiare riguarda lo User Name e la Password della connessione. Questi due dati dovranno poi essere confermati all'atto dell'effettiva connessione dell'applicazione col database. Oltre a questi parametri, sicuramente si dovranno specificare anche i parametri relativi alla connessione fisica al driver, cioè URL e Driver. Il primo parametro indica quale tipo di connessione si vuole utilizzare. I tipi di connessione disponibili sono tre:

Driver nativo. In questo caso è sufficiente costruire l'URL nella forma

                jdbc:<driver>:<directory>

dove il primo parametro indica che stiamo effettuando un collegamento tramite JDBC; il secondo specifica il driver da utilizzare, ed il terzo indica la directory nella quale andare a reperire le tabelle da utilizzare.

JDBC-ODBC Bridge. Con questa modalità è possibile attivare l'interfaccia verso il mondo dei Driver ODBC. Per attivare questa caratteristica bisogna modificare il valore dei parametri URL e Driver. Nel primo parametro occorre specificare che viene eseguito un collegamento tramite interfaccia ODBC, ed il nome del datasource utilizzato, nel formato:

            jdbc:odbc:<nome del datasource>

I primi due identificatori indicano che si intende utilizzare il "ponte" tra JDBC e ODBC, mentre l'ultimo è il nome del datasource, come indicato all'interno della maschera di configurazione dei driver ODBC. Nel parametro Driver, invece, occorre specificare quale driver dovrà usare la nostra applicazione per sfruttare il "ponte". Questo driver normalmente è

            sun.jdbc.odbc.JdbcOdbcDriver

Database con JDBC driver. Nel caso in cui si vogliano utilizzare driver JDBC prodotti da terze parti, i due parametri di configurazione sono utilizzati a discrezione del produttore del driver JDBC, e devono essere utilizzati come dalle specifiche dei singoli prodotti utilizzati.

Dopo aver inserito nella finestra il componente di accesso al database Simple DB-Access è possibile utilizzare questa connessione sia tramite dei componenti di tipo ValidationTextField, sia tramite dei componenti di tipo TableOutput. Nel primo caso la connessione verrà effettuata fra un singolo campo e un classico control di edit, mentre nel secondo caso la tabella selezionata all'interno del componente Simple DB-Access verrà visualizzata in una griglia. Una caratteristica interessante legata a questa modalità di lavoro è legata al fatto che, se vengono connessi diversi oggetti allo stesso componente Simple DB-Access, ogni modifica apportata ad uno di essi aggiorna automaticamente tutti quelli ad esso collegati. Per esempio, se viene effettuata una connessione tra un Simple DB-Access ed un componente TableOutput, e una seconda connessione tra lo stesso Simple DB-Access ed un componente ValidationTextField, si vedrà che, spostando il cursore all'interno della griglia, l'aggiornamento del valore visualizzato dal control di edit verrà effettuato in modo automatico.
 

La generazione
Dopo aver creato una applicazione con JAVA Studio, si può passare alla generazione del programma corrispondente. La fase di generazione permette di scegliere tra quattro opzioni diverse:

Importazione di Bean
Una delle parti più interessanti di JAVA Studio è costituita dalla possibilità di importare dei bean creati con altri strumenti di sviluppo. Questa apertura verso l'esterno permette sicuramente al programmatore più smaliziato di personalizzare la propria palette di oggetti, e addirittura di creare dei propri componenti personalizzati utilizzando questo ambiente di sviluppo. L'importazione di bean è altresì interessante perché permette, anche a chi non è in grado di creare oggetti per proprio conto, di utilizzare in modo molto semplice quelli messi a disposizione da altri programmatori. In confronto ad altri ambienti di programmazione, sicuramente JAVA Studio è quello più semplice ed intuitivo per quanto riguarda la creazione di oggetti e il loro inserimento all'interno della palette degli strumenti.

 

Conclusioni
Ho avuto la fortuna di provare anche la versione per SUN Solaris di questo prodotto e la cosa veramente lodevole è che i due ambienti sono praticamente identici, e tutte le applicazioni prodotte con uno dei due strumenti possono essere riutilizzate con l'altro.

Sicuramente JAVA Studio è un prodotto interessante, perché permette in modo semplice ed intuitivo di creare applicazioni Java, senza conoscere minimamente la struttura del codice utilizzato per crearle. D'altro canto, è necessario avere almeno una minima conoscenza di SQL per connettere dei database ad una qualsiasi finestra, e una discreta conoscenza di Java per poter connettere dei bean alle proprie applicazioni. Sicuramente un programmatore esperto, che si trova nell'impossibilità di scrivere del codice sorgente, può rimanere un po' spiazzato dall'architettura di JAVA Studio, ma i programmatori meno esperti, o chi non ha intenzione di utilizzare Java al massimo livello, magari solo perché deve sviluppare delle piccole parti di un progetto, o semplicemente perché non è un programmatore professionista, grazie alla possibilità di delegare la generazione del codice allo strumento, può trovare un grande conforto nell'utilizzare un prodotto come questo.

 

Bibliografia
[1] Informazioni su java: www.javatoday.com.
[2] Sito Lotus: www.sun.com.
[3] Sito di OpenJ Builder: www.borland.com.
[4] Sito di PowerJ++: www.powersoft.com.
[5] Yuri Bettini, "OOP e Java" DEV 38, 39, Edizioni Infomedia 1997.
[6] Michele Sciabarrà, "Lezioni di Java" Computer Programming 53, 54, 55, 56, 57 Edizioni Infomedia 1996/1997.
[7] Michele Sciabarrà "Java: il JDBC" Computer Programming 61 Edizioni Infomedia 1997.
[8] Michele Sciabarrà, "Cos'è Java" e "Dissolvenze in Java", Computer Programming 48, Edizioni Infomedia 1997.
[9] James Gosling, "Core Java", Addison-Wesley 1996.
[10] David Flanagan, "Java in a Nutshell", O'Reilly & Associates 1996.
[11] Michael Morrison et al., "Java Unleashed", Sams.net Publishing 1997.
 

 
Matteo Baccan è uno specialista di progettazione e sviluppo in C++. È coautore di dBsee 4 e dBsee++, ed autore di dBsee400. Attualmente si occupa dello sviluppo della versione per AS400 di dBsee++ presso ISA Italian Software Agency. Può essere contattato tramite e-mail all'indirizzo mbaccan@infomedia.it 

 

 
 
 

MokaByte rivista web su Java

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