J’ai un problème qui consiste à réaliser une application plusieurs clients \ serveur en langage JAVA sachant suivants le contexte :
Ce projet entre dans le cadre du développement d’application clients\serveur tournant dans un réseau local ou sur internent
Le projet consiste à réaliser un serveur de messagerie instantanée (chat) connectant plusieurs clients d’un même organisme.les clients se connectent selon leurs droits d’accès. Le serveur offre plusieurs services en plus de la messagerie instantanée comme la gestion d’accès aux fichiers placés dans les dossiers partagés entre clients, ainsi que l’archivage des différents messages échangés par les clients et/ou l’établissement de statistiques relatives à l’utilisation du service.
Cahier de charge d’administrateur (un administrateur peut :
-lancer et arrêter le service
-consulter un journal d’événements (connexion, déconnexion, etc.)
-consulter un historique des messages échangés
-bannir ou autoriser la connexion à des clients selon leurs adresse IP et/ou leurs noms d’utilisateur
-consulter un la liste des fichiers partagés
-pouvoir modifier ou supprimer les fichiers partagés des clients

Cahier de charge de client (un client peut :
- se connecter au serveur par le nom d’utilisateur et un mot de passe valide
- - voir la liste des clients connectés
- Envoyer et/ou voir les messages échangés
- Discuter en privé avec un ou plusieurs clients
- Mettre et/ou ouvrir des fichiers partagés (images, textes, etc.)
- Télécharger sous format texte tous les messages d’une session

Le problème :

Je vous souhaite me faire une interface pour la coté client et autre pour la coté serveur sachant que l’implémentation de cette application doit être concurrente (multi threadée), distribuée physiquement sur plusieurs postes d’un réseau local et exécutée dans un environnement multi plateformes. Merci