Rapport projet final system reparti

481 vues

Publié le

Module system réparti.
programmation d’une architecture de messagerie instantanée avec intégration d'annuaire distribué

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Rapport projet final system reparti

  1. 1. UCAD/ESP/DGI Master 1 TR 2015-2016 Projet Systèmes répartis Master 1 TR 2015-2016 Page 1 UCAD/ESP/DGI/MASTER 1_TR [2015-2016] Professeur : Mr Bamba Gueye GROUPE 2 RAPORTEURS Cheikh Tidiane Diabang Papa Moussa Fall Nelvy jenny ABEGHE INTRODUCTION GENERAL Etant conscient de la convergence de l'informatique et des télécommunications marquée par l'apparition des réseaux de nouvelles générations, des recherches sont orientés dans le développement d'applications facilement utilisables dans ce nouveau contexte. Des Contributions à la réduction des effets de la séparation géographique entre les acteurs des universités virtuelles : Proposition d'un IP - SMSC intégrant de solutions de services à valeur ajoutée et l'intégration des réseaux sociaux dans les environnements e-learning ; une solution de réduction du taux d'abandon et un facteur de reconstruction des relations entre les différents acteurs de l'enseignement à distance. MODULE SYSTEMES REPARTIS
  2. 2. UCAD/ESP/DGI Projet Systèmes répartis Master 1 TR 2015 1ère partie Le but de cette partie est la programmation d’une architecture de messagerie instantané simplifiée. Cette architecture est composé de deux parties : une application client et une application serveur. Ces deux applications communiquent via le protocole de transport TCP Principe ou fonctionnement de l’application serveur Le programme serveur ouvre un socket TCP d’écoute et se met en attente de connexion. Le serveur fonctionne en multi-threadé. Lorsqu’un client se connecte au serveur, le serveur lui envoie une phrase de bienvenue ("Bonjour client <IP du client> :<port du cl Le serveur se met ensuite en attente de messages du client. Le client envoie un message "PING" et le serveur répond par un message "PONG", suivi d'un numéro : au premier ping, le serveur répond PONG 1, au second PONG 2, etc. Il y a en tout 5 échanges entre le client et le serveur. Fin de la communication : le serveur doit détecter la réception d’un message contenant la chaîne "QUIT", et fermer alors le socket de service (utilisé pour la communication avec le client). Le serveur se remet en atten Voici ci-après le programme et les illustrations UCAD/ESP/DGI Master 1 TR 2015 Master 1 TR 2015-2016 Le but de cette partie est la programmation d’une architecture de messagerie instantané simplifiée. Cette architecture est composé de deux parties : une application client et une application serveur. Ces deux applications communiquent via le protocole de transport TCP Principe ou fonctionnement de l’application serveur : Le programme serveur ouvre un socket TCP d’écoute et se met en attente de connexion. Le threadé. Lorsqu’un client se connecte au serveur, le serveur lui envoie une phrase de bienvenue ("Bonjour client <IP du client> :<port du cl Le serveur se met ensuite en attente de messages du client. Le client envoie un message "PING" et le serveur répond par un message "PONG", suivi d'un numéro : au premier ping, le serveur répond PONG 1, au second PONG 2, etc. Il y a en tout 5 anges entre le client et le serveur. : le serveur doit détecter la réception d’un message contenant la chaîne "QUIT", et fermer alors le socket de service (utilisé pour la communication avec le client). Le serveur se remet en attente du prochain client. et les illustrations implémentant les fonctionnalités Master 1 TR 2015-2016 Page 2 Le but de cette partie est la programmation d’une architecture de messagerie instantanée simplifiée. Cette architecture est composé de deux parties : une application client et une application serveur. Ces deux applications communiquent via le protocole de transport TCP. Le programme serveur ouvre un socket TCP d’écoute et se met en attente de connexion. Le threadé. Lorsqu’un client se connecte au serveur, le serveur lui envoie une phrase de bienvenue ("Bonjour client <IP du client> :<port du client>"). Le client envoie un message "PING" et le serveur répond par un message "PONG", suivi d'un numéro : au premier ping, le serveur répond PONG 1, au second PONG 2, etc. Il y a en tout 5 : le serveur doit détecter la réception d’un message contenant la chaîne "QUIT", et fermer alors le socket de service (utilisé pour la communication avec le es fonctionnalités du serveur :
  3. 3. UCAD/ESP/DGI Projet Systèmes répartis Master 1 TR 2015 Au démarrage du serveur on a Une fois que le client est conn Principe ou fonctionnement de l’ Le client cherche à se connecter au serveur, l’adresse IP et le port de ce dernier doivent être passé en arguments. Le client attend la phrase de bienvenue du serveur et l’affiche à l’écran. Chaque message saisi par l’utilisateur est envoyé au serveur lors de l’appui sur la touche ’Entrée’, le client attend alors la réponse du serveur. L’utilisateur peut se déconnecter en tapant la chaîne "QUIT" ; une fois la chaîne e fermera son socket. Nous donnerons envoyés à la fin de la communication au niveau du client. UCAD/ESP/DGI Master 1 TR 2015 Master 1 TR 2015-2016 Au démarrage du serveur on a : Une fois que le client est connecté on a : Principe ou fonctionnement de l’application cliente : Le client cherche à se connecter au serveur, l’adresse IP et le port de ce dernier doivent être en arguments. Le client attend la phrase de bienvenue du serveur et l’affiche à l’écran. Chaque message saisi par l’utilisateur est envoyé au serveur lors de l’appui sur la touche ’Entrée’, le client attend alors la réponse du serveur. peut se déconnecter en tapant la chaîne "QUIT" ; une fois la chaîne e fermera son socket. Nous donnerons le délai minimum et le délai maximum des 5 messages envoyés à la fin de la communication au niveau du client. Master 1 TR 2015-2016 Page 3 Le client cherche à se connecter au serveur, l’adresse IP et le port de ce dernier doivent être en arguments. Le client attend la phrase de bienvenue du serveur et l’affiche à l’écran. Chaque message saisi par l’utilisateur est envoyé au serveur lors de l’appui sur la touche peut se déconnecter en tapant la chaîne "QUIT" ; une fois la chaîne envoyée, il le délai minimum et le délai maximum des 5 messages
  4. 4. UCAD/ESP/DGI Projet Systèmes répartis Master 1 TR 2015 Ci-après le programme et les illustrations Une fois le client démarré on a : Par suite on renseigne une chaîne de caractère UCAD/ESP/DGI Master 1 TR 2015 Master 1 TR 2015-2016 et les illustrations implémentant les fonctionnalités du client îne de caractère comme suit : Master 1 TR 2015-2016 Page 4 client :
  5. 5. UCAD/ESP/DGI Projet Systèmes répartis Master 1 TR 2015 Dès lors on peut envoyer les pings Dans un premier temps Dans un second temps UCAD/ESP/DGI Master 1 TR 2015 Master 1 TR 2015-2016 Dès lors on peut envoyer les pings : Dans un premier temps on envoi 2 pings puis on quitte le programme temps on envoi 5 pings puis le programme s’arrête Master 1 TR 2015-2016 Page 5 programme : illustration ête : illustration
  6. 6. UCAD/ESP/DGI Master 1 TR 2015-2016 Projet Systèmes répartis Master 1 TR 2015-2016 Page 6 2ème partie Cette partie consiste à écrire un annuaire distribué. Un serveur conserve une liste de personnes, chacune correspondant à un nom, un prénom et un identifiant unique. Pour simplifier, l'identifiant correspond à la position de la personne dans la liste. Un client envoie un identifiant et le serveur retourne la personne correspondante. Nous utiliserons le mode non connecté. Réponse aux questions 1°) La classe Personne public class Personne { String nom; String prenom; int identifiant; public Personne(String pnom, String pprenom, int pid){ this.nom=pnom; this.prenom=pprenom; this.identifiant=pid; } public String getNom(){ return this.nom; } public String getPrenom(){ return this.prenom; } public int getIdentifiant(){ return this.identifiant; } public void setNom(String pnom){ this.nom=pnom; } public void setPrenom(String pprenom){ this.nom=pprenom; } public void setIdentifiant(int pid){ this.identifiant=pid; } } 2°) Les différents cas à gérer dans les communications entre un client et le serveur Il faudra gérer ces cas : port d’écoute coté client et serveur, indiquer l’adresse du serveur au client, …..
  7. 7. UCAD/ESP/DGI Projet Systèmes répartis Master 1 TR 2015 3°) Les programmes serveur et client Programme serveur UCAD/ESP/DGI Master 1 TR 2015 Master 1 TR 2015-2016 programmes serveur et client Master 1 TR 2015-2016 Page 7
  8. 8. UCAD/ESP/DGI Projet Systèmes répartis Master 1 TR 2015 Au démarrage du serveur on a Programme client UCAD/ESP/DGI Master 1 TR 2015 Master 1 TR 2015-2016 on a : Master 1 TR 2015-2016 Page 8
  9. 9. UCAD/ESP/DGI Projet Systèmes répartis Master 1 TR 2015 Au démarrage du client nous avons 4°) On souhaite permettre au client retourne l'identifiant correspondant à la personne ajoutée Ci-après les illustrations pour chacun des cas 5°) Lors de l’exécution d’un client, si le serveur n’est pas connecté il y a Une erreur de connexion 6°) Il est possible de détecter le problème via le message Exception in thread "main" UCAD/ESP/DGI Master 1 TR 2015 Master 1 TR 2015-2016 u démarrage du client nous avons : On souhaite permettre au client d'ajouter une nouvelle personne. Dans ce cas, le serveur retourne l'identifiant correspondant à la personne ajoutée après les illustrations pour chacun des cas : c'est-à-dire l’ajout et l’affichage de contact 5°) Lors de l’exécution d’un client, si le serveur n’est pas connecté il y a : 6°) Il est possible de détecter le problème via le message d’erreur qui est affiché. Exception in thread "main" java.net.ConnectException: Connection refused: connect Master 1 TR 2015-2016 Page 9 d'ajouter une nouvelle personne. Dans ce cas, le serveur affichage de contact d’erreur qui est affiché. : Connection refused: connect
  10. 10. UCAD/ESP/DGI Projet Systèmes répartis Master 1 TR 2015 Généralité 1°) Pour gérer une communication avec un seul client, nécessaires côté serveur.  Description du rôle de chacun des objets et leurs classes d’appartenance ServerSocket : - appartient à la classe abstraite java.net.InetSocketAddress - Il permet demandes de connexion initiées du coté client) Socket : - appartient à la classe abstraite java.net. - Il gère la communication et le transport des données 2°) La signification de chacun des arguments -l’adresse d’une machine : c’est l’identifiant qui permet d réseau et de le localiser via des réseaux. -le numéro de port : C’est une porte d’échange entre les intervenants lors d’une communication. Le port local de la connexion est choisit d’une manière à ce que seul les entité désirant communiquer utiliseront ce port. 3°) -Il nécessaire d’appeler la primitive close() sur le clien arrêter la connexion et libérer les ressources qui ont été allouées. -Donnons les messages échangés UCAD/ESP/DGI Master 1 TR 2015 Master 1 TR 2015-2016 1°) Pour gérer une communication avec un seul client, 2 objets de type socket sont Description du rôle de chacun des objets et leurs classes d’appartenance appartient à la classe abstraite java.net.InetSocketAddress Il permet de créer un socket d’écoute sur un port (l demandes de connexion initiées du coté client). appartient à la classe abstraite java.net.SocketAddress Il gère la communication et le transport des données La signification de chacun des arguments : : c’est l’identifiant qui permet de reconnaitre un équipement dans un réseau et de le localiser via des réseaux. : C’est une porte d’échange entre les intervenants lors d’une Le port local de la connexion est choisit d’une manière à ce que seul les entité désirant communiquer utiliseront ce port. primitive close() sur le client et sur le serveur arrêter la connexion et libérer les ressources qui ont été allouées. Donnons les messages échangés pour chacun des deux appels à la primitive Master 1 TR 2015-2016 Page 10 de type socket sont Description du rôle de chacun des objets et leurs classes d’appartenance appartient à la classe abstraite java.net.InetSocketAddress n socket d’écoute sur un port (les e reconnaitre un équipement dans un : C’est une porte d’échange entre les intervenants lors d’une Le port local de la connexion est choisit d’une manière à ce que seul les entités t et sur le serveur pour pouvoir des deux appels à la primitive close().
  11. 11. UCAD/ESP/DGI Projet Systèmes répartis Master 1 TR 2015 4°) Du point de vu TCP l’envoi vers le serveur n’est pas immédiat Car une fois que tous les caractères sont récupérés dans le buffer, des entêtes sont ajoutées aux données pour le contrôle de d’erreur, ainsi é l’ensemble est encapsulé dans le socket de sortie et envoyé au destinataire. 5°) - Le rôle de la méthode sendUrgentData() de la classe données urgentes via le flux de sorti. -Le flag TCP manipulé par cette méthode - Les conséquences lors de l’émission/réception de trames L’utilisation de la méthode SendUrgentData entraine une mise en pause de l’exécution de la requête concernée. Et à la réception il y a un traitement au préalable de cette requête et envoi de la réponse. UCAD/ESP/DGI Master 1 TR 2015 Master 1 TR 2015-2016 Du point de vu TCP l’envoi vers le serveur n’est pas immédiat Car une fois que tous les caractères sont récupérés dans le buffer, des entêtes sont ajoutées aux données pour le contrôle de d’erreur, ainsi évités des pertes de paquets. A l’issu de cette opération l’ensemble est encapsulé dans le socket de sortie et envoyé au destinataire. Le rôle de la méthode sendUrgentData() de la classe ‘Socket’ est d’envoyer un octet de via le flux de sorti. Le flag TCP manipulé par cette méthode : pour cela on a ci-dessous une illustration es conséquences lors de l’émission/réception de trames : L’utilisation de la méthode SendUrgentData entraine une mise en pause de l’exécution de la requête concernée. Et à la réception il y a un traitement au préalable de cette requête et envoi de la réponse. Master 1 TR 2015-2016 Page 11 Car une fois que tous les caractères sont récupérés dans le buffer, des entêtes sont ajoutées aux vités des pertes de paquets. A l’issu de cette opération est d’envoyer un octet de dessous une illustration L’utilisation de la méthode SendUrgentData entraine une mise en pause de tout envoi futur et l’exécution de la requête concernée. Et à la réception il y a un traitement au préalable de cette
  12. 12. UCAD/ESP/DGI Projet Systèmes répartis Master 1 TR 2015 6°) - Le rôle de la méthode setTcpNoDelay données avec un minimum de temps de latence. - Le flag TCP manipulé par cette méthode - Les conséquences lors de l’émission/réception de trames L’appel des méthodes setTcpNoDelay() et getTcpNoDelay(), permet entre autre une évaluation de temps de transit des paquets. Mais avec l’option TcpNoDelay les données à envoyer ont une plus grande priorité de traitement, que sa soit en émission ou en réception UCAD/ESP/DGI Master 1 TR 2015 Master 1 TR 2015-2016 setTcpNoDelay() de la classe ‘Socket’ est de permettre l’envoi de c un minimum de temps de latence. e flag TCP manipulé par cette méthode : es conséquences lors de l’émission/réception de trames L’appel des méthodes setTcpNoDelay() et getTcpNoDelay(), permet entre autre une it des paquets. Mais avec l’option TcpNoDelay les données à envoyer ont une plus grande priorité de traitement, que sa soit en émission ou en réception Master 1 TR 2015-2016 Page 12 est de permettre l’envoi de L’appel des méthodes setTcpNoDelay() et getTcpNoDelay(), permet entre autre une it des paquets. Mais avec l’option TcpNoDelay les données à envoyer ont une plus grande priorité de traitement, que sa soit en émission ou en réception

×