| Programmez par plaisir! |
30-07-2010 03:40 |
Introduction
Description
Screenshots
Documentation
Téléchargements
Il s'agit de réaliser un chat avec Java RMI. Plusieurs versions de ce chat seront à réaliser. La première version comporte un serveur qui reçoit chaque message et le fait suivre aux autres clients. Dans la deuxième version, le serveur sert juste d'annuaire et permet à tout nouveau client de se connecter directement aux autres clients. Enfin, dans la troisième version, on optimise le maillage de connexions en connectant chaque client à un nombre restreint d'autres clients.
Première version : version client/serveur.
La première version comporte un serveur qui reçoit chaque message et le fait suivre
aux autres clients. On obtient donc une architecture en étoile avec le serveur au centre de
l'étoile. On peut utiliser les interfaces suivantes :
public interface ClientDistant extends java.rmi.Remote {
public void msg(Message m) throws RemoteException;
}
public interface ServeurChat extends ClientDistant {
public void connect(String url) throws RemoteException;
public void disconnect(String url) throws RemoteException;
}
Deuxième version : version peer to peer complètement
connectée.
Dans cette seconde version, le serveur sert juste d'annuaire et permet à tout nouveau client
de se connecter directement aux autres clients. Par la suite, chaque client envoie les messages
directement aux autres clients. On obtient donc une architecture totalement connectée.
On peut utiliser les interfaces suivantes :
public interface ClientDistant extends java.rmi.Remote {
public void msg(Message m) throws RemoteException;
public void connect(String url) throws RemoteException;
public void disconnect(String url) throws RemoteException;
}
public interface ServeurChat extends java.rmi.Remote {
public PeerList register(String url) throws RemoteException;
public void unRegister(String url) throws RemoteException;
}
Dernière version : version peer to peer optimale.
Dans cette dernière version, on veut optimiser le maillage de connexions. Chaque client sera
connecté à un nombre restreint d'autres clients (appelé les Peers ou Pairs en
Français) et fera suivre en plus de ses propres messages, les messages envoyés par
n'importe quel autre Peer à tous ses autres "Peers".
Ainsi tout message envoyé par un client sera reçu par tout autre client après
avoir traversé 0 ou plusieurs clients. On peut utiliser pour cette version les interfaces
de la version précédente.
Extensions de l'application :
En plus de ce qui est demandé vous pouvez :Sujet et documentation (pdf) [101 Ko]
Les trois versions avec sources et la doc (zip) [344 Ko]
Code source de la version 3 : (cliquable)
rmichat/ :
AfficherAPropos.java,
AfficherManuel.java,
ClientDistantImpl.java,
ClientDistant.java,
ClientGUI.java,
Client.java,
Constantes.java,
EcouteurDeconnexion.java,
EcouteurMessage.java,
Message.java,
ServeurChatImpl.java,
ServeurChat.java,
Serveur.java
rmichat/aide/ :
APropos.html,
Manuel.html,
rmichat/ressources/ :
client_de_DE.properties,
client_en_US.properties,
client_es_ES.properties,
client_fr_FR.properties,
server_de_DE.properties,
server_en_US.properties,
server_es_ES.properties,
server_fr_FR.properties,