12
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

Rapport projet final system reparti

Embed Size (px)

Citation preview

Page 1: Rapport projet final system reparti

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

Page 2: Rapport projet final system reparti

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 clLe 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 clLe 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 :

Page 3: Rapport projet final system reparti

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

Page 4: Rapport projet final system reparti

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 :

Page 5: Rapport projet final system reparti

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

Page 6: Rapport projet final system reparti

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, …..

Page 7: Rapport projet final system reparti

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

Page 8: Rapport projet final system reparti

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

Page 9: Rapport projet final system reparti

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

Page 10: Rapport projet final system reparti

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().

Page 11: Rapport projet final system reparti

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 classedonné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

Page 12: Rapport projet final system reparti

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