Ce document et les sources du programme sont consultables sur mon site internet.
Pour toute question,
Post-it est une application client serveur utilisée pour la diffusion de messages. Elle peut être exécutée à partir d'un navigateur internet disposant d'une machine vituelle java compatible java 1.2 : mozilla, netscape 6 ou konqueror. Elle doit être également capable de fonctionner avec d'autres navigateurs dont la machine virtuelle java est compatible avec le Jdk Sun version 1.2 ou supérieure ou encore avec le programme appletviewer contenu dans les différentes versions du Jdk. Elle a été testée avec succès sous Mozilla (version Linux et windows), netscape 6 et Jdk 1.3 Linux.
L'objectif de ce programme est de permettre la communication entre tous les utilisateurs enregistrés auprès du serveur.
L'interface est composée de trois panneaux accesibles via des onglets.
Il est composé de deux champs de textes : celui du haut sert à l'affichage des messages reçus mais également à l'affichage html. Ce champ de texte n'est pas éditable et permet un affichage comparable à celui dispensé par les navigateurs internet. Celui du bas, au contraire éditable, permet une saisie sur plusieurs lignes des messages à envoyer. La saisie de balises internet est acceptée permettant ainsi de mettre en valeur et/ou en forme vos messages. Ainsi <h1>bonjour</h1> permettra une mise en valeur du mot bonjour, lui donnant la mise en forme d'un titre.
Sur ce même panneau, le bas se découpe en deux zones, l'une composée par une liste défilante répertoriant les différents utilisateurs recensés sur le serveur, c'est une liste dans laquelle les sélections multiples sont autorisées et qui permet d'interagir avec la zone à sa gauche, celle des quatre boutons d'action :
Il est composé de quatre champs éditables identifiés par des labels vous permettant d'entrer les informations pour vous connecter au serveur.
Affiche des informations relatives à l'utilisation du programme, tels que le nom de l'auteur ou les termes de la licence d'utilisation.
#/bin/bash port=1234 ip=193.250.41.36 rmiregistry $port & java RunServeur $ip:$port
Pour l'implémentation de ce client de messagerie simplifié, j'ai opté pour une architecture rmi qui a l'avantage sur une technologie classique d'être plus rapide à mettre en oeuvre et ne nécessite pas la mise au point d'un protocole de communication. (J'ai fait ce projet seul n'ayant pu trouver de binôme). Par ailleurs, cela permet une réutilisation intéressante du code (je pense entre autres à la classe Message utilisée à la fois par le client et le serveur et qui transite directement sur le réseau après avoir été sérialisée).
Au démarrage du serveur, une instance de la classe Serveur est créée. C'est avec elle que dialogueront les clients de la classe ApplicationPostIt. Selon les paramètres passés à chaque requête login et passwd, l'instance de la classe Serveur effectuera une redirection à chacune des instances de la classe Connexion correspondant à autant d'utilisateurs connectés. C'est donc à cette classe Serveur qu'incombe toute la sécurité de l'application. Les différences instances de Connexion sont stockées dans une table de hashage où chacune des clefs correspond à un login.
Le client est une encapsulation de différentes classes. La plus importante d'entre elles, la classe ApplicationPostIt s'occupe du dialogue entre le client et le serveur et met à jour l'interface graphique par l'intermédiaire des méthodes de la classe InterfacePostIt .
Pour ce qui concerne la mise à jour de l'affichage et la récupération régulière de données ils sont confiés à la classe Rafraichissement, une thread qui, à intervalle de temps réguliers, interroge le serveur pour savoir si de nouveaux messages arrivent ou bien si de nouveaux utilisateurs se sont fait recenser sur le serveur.
Pour les erreurs, en particulier en ce qui concerne les problèmes d'authentification, une classe d'exception a été créée, c'est la classe UtilisateurException
Ci-dessous une capture d'écran
Cette capture montre 4 utilisateurs en ligne simultanément.
L'utilisateur en haut à gauche est "Bad Sheep", celui d'en dessous est "Justine", celui en haut à droite est "Pierre", celui en dessous est "le quatrième larron". Ce dernier consulte l'historique. N'ayant reçu qu'un seul message (et de lui même). On peut observer sur la capture que "Bad Sheep" a envoyé un message à Pierre et Justine qui quant à eux, n'ont pas encore lu le message du quatrième larron (le bouton avec la mention "Suivant" l'atteste).
Sur cette capture, le système fonctionne en local (adresse 127.0.0.1), cependant, le système a été testé avec succès sur des adresses distantes avec jusqu'à 7 participants.