(3) Réaliser une version distribuée sur cet application en s'appuyant sur RMI
C'est maintenant le serveur qui va enregistrer dans le registry un objet de type collection sous un nom (par exemple "collobj") qui servira au client à récupérer une référence sur cette collection.
Fichiers sources nécessaires :
obj.java - version légèrement modifiée de obj.java de la partie 2
remcol.java - interface remote
remcolobj.java - class d'implémentation (~= copie modifiée de colobj.java de la partie 2)
remser.java - serveur
remcli.java - client
* Le serveur va instancier une collection d'objets et y stocker 2 objets qu'il aura lui-même créés et initialisés.
* Le serveur enregistrera la collection auprès du registry, en utilisant obligatoirement pour le registry un port autre que 1099 (par exemple 2000 + votre numéro de binôme).
* Le client récupèrera une référence sur la collection.
* Le client récupèrera un objet déjà stocké et affiche son contenu.
* Le client enverra un objet déjà stocké et un objet nouveau.
Exemple d'exécution :
% java -Djava.security.policy=./policy/ remser
--putObj-- id=ident_o1
put o1 n=1
--putObj-- id=ident_o2
put o2 n=1
--getObj-- id=ident_o2
--getObj-- i=1
o=obj@34a1fc
obj=ident_o2 description_o2 21 22 20.2345
Remote colobj ready to use <--- ici le serveur est initialisé il attend les connexions des clients
--getObj-- id=ident_o2
--getObj-- i=1
--getObj-- id=ident_o3
--getObj-- i=-2
--putObj-- id=ident_cli1
--getObj-- id=ident_cli1
--getObj-- i=2
% java -Djava.security.policy=./policy/ remcli
o1 local créé
try lookup rem obj
got rem obj
get o2=obj@b1b4c3
obj=ident_o2 description_o2 21 22 20.2345
get o3=null
put o1 n=1
get o4=obj@1193779
obj=ident_cli1 obj-fait-sur-cli1 1111 2222 123.987