Mini-projet systèmes & réseau serveur de «tchatche»



Documents pareils
Mise en place d un intranet de travail collaboratif. Guide utilisateur

Réservation de matériel

Outil de gestion et de suivi des projets

Chapitre 10 Lier les Données de Calc

CREER SA RADIO Premiers pas

Manuel Utilisateur. Boticely

PROCEDURE D ACCUEIL. 1 Introduction

MANUEL DE PRISE EN MAIN WEB P

Guide d aide à la mise en place d une Gestion électronique des documents (GED) dans les MDPH

Publipostage avec Calc

ASECNA REMPLACEMENT CAT ET CRT (COMMUTATEURS DE MESSAGES ET DONNEES NA ET MTO)

Manuel d utilisation : Synkron Contrôle Qualité : C. Bachmann, H. Bischoff, S. Pfeifer, C. Schomburg Traduction : C.I.N.C.

Modification d une feuille de style

Mesurer et analyser le trafic d un site internet Comment analyser l audience de son site et connaître les centres d intérêts des visiteurs?

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Présentation du langage et premières fonctions

Utilisation d ADOBE PREMIERE ELEMENTS 10

Effectuer une sauvegarde avec Nero BackItUp

Guide utilisateur pour le déblocage de cartes et/ou la modification d un code PIN

Comment relier deux ordinateurs en réseau

Téléphones IP Cisco Unified 7960G et 7940G pour Cisco Unified CallManager 5.0 (SCCP)

VOLUME 1 CRÉATION D UN SITE WEB

TROUVER UN EMPLOI AVEC INTERNET

Chapitre 1 Qu est-ce qu une expression régulière?

Ordonnancement temps réel

Chapitre 14 Le document peut-il être vecteur de coopération?

Kaspersky Endpoint Security 10 for Windows Manuel de l'administrateur

SYSTEMES MODULAIRES INDUSTRIELS DE TELETRANSMISSION TELEGESTION

iweb Premiers contacts Découvrez iweb et apprenez à créer votre site web.

Transcription:

Mini-projet systèmes & réseau serveur de «tchatche» On souhaite programmer un outil de «tchatche» (chat) sur le Web, qui permet à des internautes de dialoguer sur le réseau avec d autres utilisateurs. Il s agit d un programme fonctionnant en client/serveur (1 seul serveur et de multiples clients). Chaque utilisateur est identifié par un pseudo. Spécifications externes Le serveur doit fournir les fonctionnalités suivantes : Attente des connexions des utilisateurs ; Maintien de la liste des utilisateurs connectés ; Gestion des envois de messages d un utilisateur vers une liste d utilisateurs (éventuellement tous les utilisateurs connectés) Architecture logicielle Le serveur est tenu de fonctionner de manière asynchrone. Il sera décomposé en trois types de tâche : Une tâche d attente des connexions (tâche classique d un serveur) ; Une tâche de connexion validant le pseudo du nouvel utilisateur et créant la tâche client associée (sauf si erreur) ; Une tâche client de gestion des communications pour chaque utilisateur connecté. Attente Clients (table des utilisateurs connectés) Moniteur Connexion Client 2 Client 1 Réseau Mini-projet systèmes & réseau serveur de «tchatche» 1/3

La tâche Attente attend les connexions des utilisateurs et dès qu un utilisateur se connecte : Créé une tâche Connexion ; Se remet en attente. La tâche Connexion vérifie que le pseudo fourni est valide (qu il n existe pas déjà) puis créé une tâche Client chargée d attendre les messages de cet utilisateur ; met à jour les tables des utilisateurs ; informe les utilisateurs déjà connectés de l arrivée du nouvel utilisateur. Les tâches Client lisent les messages sur le réseau et appelle les méthodes de Clients afin de distribuer les messages à tous les destinataires. La table des utilisateurs connectés est partagée entre les différentes tâches, il est donc important de s assurer du bon déroulement des accès concurrents. Elle sera donc programmée comme un moniteur. Le protocole Bien qu on puisse très facilement échanger des objets en Java, il est souvent pratique de définir un protocole basé sur des échanges de texte, car cela permet de tester les programmes en utilisant un outil standard comme telnet. Les requêtes des clients et les réponses du serveur se feront ainsi de la façon suivante : Chaque requête sera constituée d un mot-clé en majuscules, suivi éventuellement d un ou de plusieurs paramètres. La fin de la chaîne de caractères est matérialisée par la séquence \r\n. Les paramètres éventuels seront séparés par un seul espace. Les réponses du serveur seront des chaînes de caractères dont la fin est matérialisée par la séquence \r\n. La réponse à une connexion du client sur le port n est : OK Jchat (version num_version) sur nom_machine démarré\r\n Les points suivants devront être respectés dans l implémentation de l application : Le serveur doit avertir par un message les autres clients de l arrivée d un nouvel utilisateur. Le serveur doit avertir par un message les autres clients du départ (déconnexion) d un utilisateur. Connexion À la connexion, le client envoie son nom d'utilisateur (pseudonyme) : USER nom_utilisateur\r\n Le serveur répond à l'utilisateur par un message de bienvenue : OK nom_utilisateur\r\n ou par un message d erreur : ERREUR nom_utilisateur déjà utilisé\r\n En cas de succès, il informe les autres utilisateurs connectés de son arrivée : CONNECT nom_utilisateur\r\n Mini-projet systèmes & réseau serveur de «tchatche» 2/3

Session Une fois la connexion réussie, l'utilisateur se trouve dans l'état session : il peut effectuer les requêtes suivantes, jusqu'à la commande QUIT qui met fin à la session. Envoyer le message message à une liste d utilisateurs donnée ou à tous les utilisateurs connectés (ALL) MSGTO [util1 util2 utiln] message\r\n MSGTO [ALL] message\r\n Pendant la session, le client doit également accepter des messages du serveur. Information de la connexion d un utilisateur (comme indiqué plus haut) : CONNECT nom_utilisateur\r\n Réception des messages d un autre utilisateur : MSGFROM [dequi] message\r\n Déconnexion La commande QUIT permet de se déconnecter du serveur de messagerie en direct. QUIT\r\n Le serveur informe par un message les autres utilisateurs de la déconnexion de l'utilisateur : DISCONNECT nom_utilisateur\r\n Travail à réaliser Écrire le serveur de tchatche. Vous testerez la bonne implémentation du protocole et le fonctionnement de votre serveur en utilisant le client graphique chatclient.jar qui vous est fourni dans N:\IHS\Reseaux. Vous utiliserez dans un premier temps la classe Clients (moniteur de gestion des utilisateurs connectés) qui vous sera fournie. Dans un second temps et si le calendrier le permet, vous écrirez votre propre version du moniteur Clients. Mini-projet systèmes & réseau serveur de «tchatche» 3/3