|
Innanzitutto, una osservazione importante. RMI è molto adatta per l'uso
con i Web Browser e le applet. Consente infatti di spostare sul server molte
operazioni normalmente svolte dal client. Questo è molto utile ad esempio
con le applet che accedono ad un database. Invece di caricare sul client un
driver JDBC da utilizzare per l'accesso al database, si può incapsulare la
gestione del database in un server RMI che giri magari sulla stessa macchina
del database. Questa soluzione presenta parecchi vantaggi che non staremo
a discutere qui.
Quello di cui invece vogliamo discutere è: con quali browser è possibile
usare RMI. Innanzitutto naturalmente HotJava 1.0, interamente in Java e basato
sul JDK 1.1, quindi il primo a supportare pienamente il JDK 1.1 e di conseguenza
RMI. Un altro serio contendente è il Netscape Navigator 4.03. Questa versione
però non consente ancora di utilizzare applet che utilizzano il modello ad
eventi del JDK 1.1. Comunque Netscape è decisa a fornirlo con una prossima
versione del Navigator, ed è già possibile scaricare dal sito di Netscape
la patch 1.1 (attualmente in PreRelease 2). Per questo motivo l’applet che
vedremo è stata sviluppata con Netscape Navigator 4.03 con la patch installata.
RMI invece non è assolutamente supportata con Microsoft Internet Explorer
4.0. Nonostante le affermazioni di Microsoft che sul fatto che Explorer è
conforme al JDK 1.1, in realtà sono state escluse dalla libreria standard
proprio le classi di RMI. Un’altra differenza si riscontra nella virtual
machine, che non supporta JNI. Ci sono molte altre piccole differenze che
rendono difficoltosa la compatibilità della JVM Microsoft con il resto del
mondo Java. Queste incompatibilità hanno portato Sun a citare in giudizio
Microsoft per rottura di contratto di licenza del Java, che imponeva di mantenere
la compatibilità con il Java così come viene definito da Sun. Microsoft a
sua volta ha citato Sun per rottura della compatibilità all’indietro del JDK
1.1 rispetto al JDK 1.0. Comunque sia, queste diatribe sono al di fuori degli
obiettivi di questo articolo, quindi ritorniamo all’argomento principale.
|