Julien Sopena

TP 04 – Java RMI

L'objectif de ce TP est de mettre en oeuvre le mécanisme d'invocation de méthodes distantes RMI du langage Java.

Exercice 1: Client/Serveur RMI

On souhaite mettre en place un service d'annuaire permettant d'enregistrer des noms et des numéros de téléphone et permettant de retrouver un numéro à partir d'un nom. L'annuaire doit être accessible à distance par RMI. On considère que le nom et le numéro de téléphone sont des chaînes de caractères.

On considère dans cet exercice que l'objet serveur s'enregistre auprès d'un serveur de noms (RMIRegistry) local.

Question 1.1 )

Définir une interface RMI répondant à ces spécifications.

Question 1.2 )

Développer un objet serveur implantant cette interface.

Question 1.3 )

Développer un client interrogeant l'objet serveur précédent.

Exercice 2: Passage de paramètres par valeur (sérialisation)

En repartant de l'exercice 1, on souhaite, en plus du numéro de téléphone, stocker pour chaque personne son prénom, son adresse et le nombre de fois où cette personne a été recherchée dans l'annuaire.

Question 2.1 )

Définir une classe Personne stockant ces informations.

Question 2.2 )

Modifier les programmes de l'exercice 1 afin que l'annuaire stocke pour chaque individu, une instance de cette classe.

Exercice 3: Passage de paramètres par référence

On ne souhaite plus que l'annuaire stocke l'ensemble des informations concernant une personne, mais simplement une référence RMI vers l'instance de la classe Personne.

Question 3.1 )

Modifier le programme précédent afin que les instances de la classe Personne ne soient plus passées par valeur, mais par référence.

Exercice 4: Service de nommage

Question 4.1 )

Reprendre l'exercice 1 en faisant en sorte que le serveur de noms soit situé sur un site distant. Pour des questions de sécurité, le serveur de noms de SUN interdit l'enregistrement d'objets à distance. Pour contourner ce problème, vous pourrez utiliser le serveur fourni ici à la place.

Question 4.2 )

Reprendre l'exercice 1 pour faire en sorte de ne plus utiliser le serveur de noms. Pour cela, le programme de lancement de l'objet serveur enregistre la souche d'accès à l'objet serveur dans un fichier qui est lu par le client.

Designed by OWSD.org. Valid CSS & XHTML
Ce site et l'ensemble de son contenu est mis à disposition sous un contrat Creative Commons.
Creative Commons License