Mise en oeuvre de la technologie RMI
Quelques liens utiles
- Les transparents du cours RMI
- sont disponibles
- Le guide de JavaSoft sur les RMI
- http://java.sun.com/javase/7/docs/technotes/guides/rmi/
- Les packages RMI
- http://java.sun.com/javase/7/docs/api/java/rmi/package-summary.html
http://java.sun.com/javase/7/docs/api/java/rmi/registry/package-summary.html
http://java.sun.com/javase/7/docs/api/java/rmi/server/package-summary.html
Sujet de la mise en pratique
- Commencez par lire le cours sur les RMI. Tester l'exemple proposé en créant trois projets Eclipse : un pour les spécifications (interfaces et javabeans), un pour l'implantation (qui utilise le premier) et un dernier pour le client (qui utilise également le premier).
- Faites en sorte que la voiture devienne un objet distant.
Je vous propose ensuite de travailler sur un système d'authentification :
- Les clients se connectent à un serveur distant pour authentifier une couple (nom d'utilisateur, mot de passe).
- En cas de réussite ils récupèrent une référence distante sur un objet qui défini l'utilisateur.
- On peut interroger cet objet pour savoir quelles sont les authentifications en cours et à partir de quelle machine.
- On peut également demander une déconnexion.
Les CallBack RMI
Dans le cas ou un client se déconnecte sans appeler la routine de déconnexion, le serveur continue de penser que le client est actif. Afin d'éliminer ce comportement, nous allons partir du principe que le serveur doit, périodiquement, s'assurer de la présence des clients. Pour ce faire,
- Le client doit implanter une interface de CallBack fournie par le serveur. Cette interface va contenir une seul méthode définie par le serveur, implantée par le client et appelée par le serveur.
- Toutes les trente secondes, un thread du serveur va essayer d'appeler, pour chaque client, cette méthode en CallBack. Le serveur devient client et le client serveur. C'est un moyen simple pour s'assurer que le client est toujours actif.
Pour réaliser cet exercice, je vous conseille de chercher des informations sur les CallBack RMI sur internet.