TP 5 - Réalisation d'un système de diffusion en Java RMI

Le but de ce TP est de réaliser une couche de communication offrant un service de diffusion de messages avec une mise en oeuvre basée sur Java RMI.

Description de l'application

Deux types d'éléments forment l'application :

Pour diffuser un message à tous les autres clients, un client appelle un service sur le serveur qui enverra ensuite ce message à tous les clients. Le serveur doit donc connaître tous les clients. Au lancement d'un client, la première chose que fait ce client est d'informer le serveur de sa présence.

Contraintes de réalisation

Le seul élément offrant des méthodes appelables à distance qui s'enregistre auprès d'un registry est le serveur. Les clients n'ont pas besoin eux de s'enregistrer auprès d'un registry.

Au niveau du serveur, on réalisera 2 interfaces de services RMI : une pour la gestion de l'enregistrement d'un nouveau client et une pour toutes les autres communications nécessaires entre le serveur et les clients.

Note : pour réaliser cette application, vous pouvez vous inspirez de l'exemple sur les observateurs vus en cours

Correction

L'archive diffusion.zip contient le code de toutes les classes et leur description.

L'application fonctionne en lançant d'abord le serveur puis en lançant chaque client en lui passant en paramètre le nom de la machine où tourne le serveur. Au lancement de chaque client, une fois enregistré auprès du serveur, il fait une pause de 4 secondes puis diffuse un message à tous les autres clients connectés.

Pour la compilation, ne pas oublier de générer les stubs des classes Client et Serveur avec rmic. Au lancement, le rmiregistry doit être (seuement) lancé sur la machine où s'exécute le serveur.