MokaByte
Numero 34 - Ottobre 99
|
||||
|
eSuite e Java |
|||
|
|
|
||
Uno degli esempi commerciali che rappresenta più efficacemente la possibilità di far interagire le caratteristiche di numerose tecnologie basate su Java è senza dubbio la versione 2 della eSuite di Lotus (www.esuite.lotus.com). Il DevPack 2.0 della eSuite di Lotus è costituito da un set di Java applets e utility per creare applicazioni web based come reports, calendario, lista contatti. In questo articolo vedremo come utilizzare queste applet per creare un report di vendite i cui dati sono contenuti in una vista della Release 5 di Lotus Notes. Questo esempio ci consentirà di apprezzare il livello di interoperabilità che è possibile raggiungere in un ambiente Java enabled. Vediamo aggiormente nel dettaglio quali sono e come interagiscono le varie tecnologie che consentono di per ottenere questo semplice report. |
||||||||||
R5 e CORBA
La grande rivoluzione della release 5 di Domino (d'ora in poi R5) è rappresentata dall'introduzione di CORBA per l'accesso ai dati. L'acronimo CORBA sta per Common Object Request Broker Architecture ed è costituito da una serie di specifiche standard necessarie per costruire gli ORB (Object Request Broker), oggetti distribuiti che devono essere in grado di dialogare tra di loro. Questi oggetti distribuiti comunicano tra loro attraverso messaggi costruiti seguendo le regole del protocollo GIOP (General Inter-ORB Protocol), la cui implementazione più conosciuta è l'IIOP (Internet Inter-ORB Protocol) nel quale il livello di trasporto utilizzato è il celeberrimo TCP/IP. Quindi CORBA fornisce le specifiche necessarie per costruire oggetti distribuiti (gli ORB), implementabili in vari linguaggi quali, ad esempio, Java, C, C++ e per consentire ad essi di comunicare fra loro anche se sono stati costruiti da produttori di software diversi grazie al GIOP e alla sua più conosciuta implementazione, l'IIOP. Per approfondimenti su CORBA trovate su Mokabyte del dicembre 1998 l'articolo di Bemporad o fate riferimento al sito della OMG (www.omg.org), la società che ha creato le specifiche. L'implementazione di un ORB (Object Request Broker) all'interno del motore della R5, infatti, ha cambiato radicalmente la modalità di accesso ai database Domino: non occorre più un Notes client per interagire direttamente con il server ma è sufficiente un'applet in grado di parlare IIOP. In particolare, insieme alla R5, vengono distribuiti alcuni file JAR che consentono di accedere agli oggetti Notes (documenti, viste, lista degli accessi, ecc.) via Java. Tra questi troviamo i file NCSO.JAR e NCSOC.JAR che contengono l'implementazione delle classi CORBA a lato client. Questo consente due cose: creare applet o applicazioni Java in grado di accedere agli oggetti Domino attraverso IIOP. L'applet, tramite le classi CORBA, potrà avere accesso alla Notes Object Interface (d'ora in poi NOI) e colloquiare direttamente con il server per visualizzare il contenuto di viste, documenti, ecc. L'utilizzo del
NOI attraverso Java è stato introdotto da Puliti in Mokabyte di
Giugno 1999.
In questo modo
si attiva il demone dell'IIOP (l'ORB) e la porta 63148 si pone in attesa
di connessioni. Ora non resta che stabilire chi potrà accedere a
questa posta attraverso la voce IIOP nella cartella Security
In questo caso
ho usato * per indicare che tutti possono accedere al DIIOP esclusivamente
a scopo di test: solitamente si definisce un ACL che contiene l'utente
Anonymous per le richieste da Internet.
Torniamo al NOI.
La radice dell'Object Model di Notes è rappresentato dall'oggetto
Session. Instanziandolo, sono in grado di accedere ai database, da questi
alle viste e così via.
Un piccolo esempio
di applicazione Java stand alone che visualizza il nome dell'utente e del
database su di una macchina priva del Notes client ma dotata dei file NCSO.JAR
e NOTES.JAR:
import java.lang.*;
LiveConnectQuesta tecnologia inventata da Netscape consente di leggere, scrivere proprietà, invocare metodi di un applet usando JavaScript. Quindi se voglio cambiare la proprietà sfondo di un applet che ho chiamato esempio attraverso Javascript, non devo far altro che usare l'istruzione:document.esempio.sfondo = "yellow".
Grazie a LiveConnect,
invoco via JavaScript il metodo openSession() dell'applet. In questo modo
ho istanziato sul browser un oggetto Session e ho aperto un canale di comunicazione
con il server Domino.
function DatiMinimi {
Infobus
Report esemplificativoRiassumiamo brevemente il funzionamento del nostro piccolo esempio: i dati sono contenuti all'interno di un database Notes e, in particolare in una vista creata ad hoc e chiamata AcquistiStat.Per coloro che
non hanno dimestichezza con l'ambiente Notes, una vista è una raccolta
di documenti che hanno caratteristiche comuni. Una sorta di query SQL anche
se il parallelo fra i database relazionali e Notes, database documentale,
non è diretto.
Quando apro il
form con il browser, vengono caricate tre applet: l'applet PinPoint per
creare il canale di comunicazione CORBA con il server, l'applet Script
Helper che chiameremo bridge che avrà il compito di pubblicare il
data item sull'InfoBus e infine l'applet Chart che chiameremo statistiche
che dovrà visualizzare i dati delle vendite ricevuti da Domino.
Inizialmente
il grafico non viene mostrato in quanto non contiene dati.
ConclusioniCome si può notare abbiamo raccolto in questo esempio alcune delle tecnologie più recenti che coinvolgono il mondo Java. Da questo punto di vista Lotus è senz'altro all'avanguardia e la R5 rappresenta un notevole passo in avanti per trasformare la piattaforma Domino in una piattaforma aperta.In questo esempio abbiamo velocemente percorso l'integrazione fra numerose tecnologie per farvi comprendere come sia semplice e allo stesso tempo molto potente integrare funzionalità basate su Java. I difetti di questo tipo di applicazioni basati sulla eSuite sono comunque piuttosto evidenti. Primo fra tutti la velocità: mediamente le applet della suite "pesano" 200 KB e la versione "compact" delle classi CORBA lato client, NCSOC.JAR, consta di 790 KB. Questo significa che l'avvio dell'applicazione su di un Pentium 133 con 32 MB di RAM risulta completo dopo circa un minuto di attesa. Ovviamente è possibile installare i JAR localmente e quindi "pagare" lo startup solo una volta ma comunque a meno che non si possieda una connessione piuttosto veloce, le applicazioni basate sulla eSuite sono fortemente orientate alla presenza di una Intranet. I vantaggi comunque sono evidenti: indipendenza dalla piattaforma e ridotto traffico fra client e server rendono comunque una soluzione basata sulla eSutie molto interessante. Grazie all'accesso via CORBA infatti non sarà più necessario il "ping-pong" fra browser e server per avere i dati aggiornati ma sarà possibile leggerli via JavaScript in tempo reale. |
|
||
|
||
MokaByte ricerca
nuovi collaboratori
|
||
|