Programmez par plaisir! 30-07-2010
03:40
Réalisé à l'UPS.
UPS
Prog-Info > Projets > Chat (Java RMI).

Chat (Java RMI)

Introduction
Description
Screenshots
Documentation
Téléchargements

Introduction

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.

Top


Description

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;
}

Notes :

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;
}

Notes :

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.

Notes :

Extensions de l'application :

En plus de ce qui est demandé vous pouvez :

Top


Screenshots

Serveur | Client.

Top


Documentation

Sujet et documentation (pdf) [101 Ko]

Top


Téléchargements

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,

Top



[Plan Plan] [A propos A Propos] [ 661203 ]
Copyright ©2002-2009 Prog-info Tous droits réservés.