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