TP Interconnexion de Systèmes n°1
Programmation répartie avec RMI
Titre | Réalisation d'un forum de discussion distribué sur le réseau |
Organisation | Binôme |
Durée de réalisation | 3 semaines |
Temps conseillé | 10h par personne |
Outils nécessaires | JDK = à la version 1.2
Editeur de texte |
Date de rendu | fin de semaine(semaine de distribution + 3) |
Contenu du rendu | Un rapport explicatif (moins de 3 pages) au
format html.
L'ensemble des classes documentées <files.java |
Forme du rendu | Présentation au cours d'une démonstration |
Boite | L'interface utilisateur Talk.jar
et l'accès au directory et a la doc
La version 1 de démonstration et l'accès au directory et a la doc |
Sommaire |
2 Objectif * 3 Spécification * 4 Informations disponibles * 4.1 Structure générale de l'application * 4.2 Les classes et interfaces * |
L'objectif de ce TP est l'initiation à la programmation répartie.
Il consiste à programmer une application typique comportant de la
répartition à l'aide du mécanisme RMI de Java.
Vous devez programmer les parties "client" et "serveur" de cette application
et la faire exécuter dans un environnement fait de plusieurs machines
virtuelles. Ces machines pouvant être sur une seule machine physique
ou dispersées sur plusieurs. Vous pouvez utiliser hoff et les Pcs
comme machines physiques de support.
Schéma 1 : Schéma de principe
L'objectif est la gestion d'un forum de discussion pouvant faire
intervenir un nombre quelconques d'intervenants. Chaque intervenant peut
émettre des messages qui sont diffusés à l'ensemble
des intervenants. Les messages ne sont pas mémorisés par
le forum. Seuls les intervenants présents sur le forum reçoivent
les messages émis. Pour émettre un intervenant doit être
connecté au forum. Le protocole d'un forum est très simple
et se résume par la spécification des opérations autorisées
Enter : permet à un intervenant de se connecter au forum
Leave : permet à un intervenant de se déconnecter d'un forum
Say : permet à un intervenant d'émettre un message
Who : permet à un intervenant de connaître l'ensemble des intervenants connectés au forum
Un intervenant ne peut être connecté qu'à un seul forum simultanément.
Pour lancer une exécution avec le serveur RMI attaché au port <Port>,
coté serveur, c'est la même chose qu'avant :
rmiregistry <Port> &
java -Djava.rmi.server.codebase= http://<X>/<ForumServer>/ -Djava.security.policy=policy Forum //<X>:<Port>/toto
coté client, on lance avec :
java -Djava.security.policy=policy Intervenant Claudius Chiffon
Ces informations sont directement accessible dans l'armoire électronique
du serveur intranet de l'UFR à l'adresse relative suivante : .
Le schéma décrit la partie interface utilisateur (GUI)
de l'application. Vous n'êtes concerné que par les partie
non grisées qui correspondent aux interfaces fournies et à
fournir. L'interface _TalkEventIntervenantAdaptator décrit les fonctionnalités
pouvant être utilisées par la classe Intervenant, l'interface
_IntervenantComposant décrit les fonctionnalités devant être
fournies par la classe Intervenant.
Vous trouverez dans la version 1, le code d'initialisation de la partie GUI.
Comme vous pouvez le constater en lisant le code de Chargeur.java, le chargeur crée une instance de la première classe qu'il charge (en l'occurrence Intervenant), puis appelle la méthode main(String[]) spécifiée dans l'interface Chargeable et que la classe chargée doit implantée.
Pour lancer une exécution avec le serveur RMI attaché au port <Port>,
coté serveur, c'est la même chose qu'avant :
java -Djava.rmi.server.codebase= http://<X>/<ForumServer>/ -Djava.security.policy=policy Forum //<X>:<Port>/toto