Vous êtes sur la page 1sur 3

Faculte des Sciences de Bizerte

Section SI3

A.U 2012/2013
20 septembre 2014

Syst`
emes distribu
es
Travaux diriges N 1 : mod`ele client/serveur
Exercice 1
1. Rappeler la definition dun syst`eme distribue.
2. Quels sont les principaux avantages de la distribution ?
3. Quels sont les principaux inconvenients de la distribution ?
4. Quelles sont les principales caracteristiques des syst`emes distribues ?
5. Quel est selon vous le probl`eme le plus important pose par la distribution ?
6. Un programme serveur necessite generalement une machine puissante. Pourquoi ?
7. Est ce quun serveur necessite une excellente carte graphique ou un ecran cher ?
8. Donner des exemples dapplications se basant sur le paradigme client/serveur.
1. Un Syst`eme distribue est une collection de calculateurs independants qui apparat aux
utilisateurs comme une seule machine.
2. Acc`es aux ressources distantes (ex : serveurs Web, SGBD), tolerance aux fautes,
agregation des ressources (clusters, etc), collaboration (teleconferences, skype, etc.)
3. Complexite, pannes plus frequentes, securite
4. Absence dhorloge et detat global, separation des espaces memoire, latence, etc.
5. La coordination (on peut accepter securite ou defaillances, mener une discussion/comparaison en se basant sur plusieurs crit`eres : generalite, gravite (risques), difficulte
(theoriques et techniques) etc.)
6. Pour repondre aux besoins de plusieurs clients (parfois le service `a rendre demande `a lui
seul beaucoup de ressources de stockage ou de traitement)
7. Non puisque les clients utilisent leurs propres ecrans pour laffichage
8. Firefox/serveur Web ; Outlook/serveur mail, etc.

Exercice 2
1. En general, les parties client et serveur dune application distribuee ne sont pas
ecrites par les memes equipes de developpement. Donner un exemple. Quel genre de
probl`emes risque t-il de se poser ? Donner une solution.
2. En general, est ce que le code du client est plus complique que le code du serveur ?
justifier.
3. Est ce que le client necessite generalement plus ressources que le serveur ?
4. Quelle est lutilite dun serveur dimpression ? Est t-il possible de sen passer ? justifier.
5. Rappeler les differents elements `
a preciser lors de la specification dun mod`ele client/serveur.
1/3

Khaled Barbaria

Faculte des Sciences de Bizerte


Section SI3

A.U 2012/2013
20 septembre 2014

1. Exemple ceux qui developpent pour google ne sont pas les memes que pour les navigateurs Web. Le risque le plus important est au niveau de laccessibilite du service. On
resout se probl`eme gr
ace `
a la definition de protocoles (applicatifs et de transport) et
`a la standardisation de ces protocoles (exemples : HTTP, SMTP, le serveur Daytime
(standardise dans une RFC))
2. En general le code du serveur est plus complique, le serveur doit fournir le service
demande et en plus gerer les probl`emes de concurrence, montee de charge, etc.
3. En general, cest le serveur qui necessite plus de ressources.
4. Permet dordonnancer les demandes dimpression et deviter les acc`es concurrents.
5. Protocole applicatif, protocole de transport, code du client code du serveur.

Exercice 3
Il sagit de concevoir une application client/serveur permettant de calculer la factorielle
dun entier. On suppose que le serveur a de tr`es grandes capacites de calcul.
1. Quels sont les elements `
a preciser lors de la definition dun mod`ele client/serveur ?
2. Il vaut mieux que le serveur renvoie une chane de caract`eres, pourquoi ?
3. Proposer un mod`ele client/serveur pour cette application.
4. Preciser les differentes etapes de la mise en place de votre application.
5. Proposer une implementation en Java de votre application.

1. Les 4 elements `
a preciser lors de la definition dun mod`ele client/serveur sont : le protocole applicatif (definition, signification et enchanement des messages) le protocole de
transport (utilise pour le transport effectif des donnees) et les (pseudo)codes du client
et du serveur.
2. Le resultat des calculs depasse rapidement la capacite quallouent les OS pour stocker
les entier (par exemple factorielle (30) contient au moins 20 chiffres). En plus, en cas
derreur il est plus facile dutiliser ce meme message.
3. Protocole applicatif : message m1 : envoye par le client contient lentier dont on souhaite
connatre la factorielle. message m2 : envoye par le serveur contient une chane de caract`eres : soit le resultat du calcul soit ERR en cas de probl`eme. Protocole de transport
TCP (pour sa fiabilite).
Code serveur : loop(){
Code client : se connecter
attendre cnx
envoyer m1
attendre m1
attendre m2
calculer laf actorielle
se deconnecter
envoyer m2
af f icher reponse
deconnecter client}

4. Ecrire
codes client et serveur, compiler client et serveur, lancer serveur puis client.
5. voir TD2.

2/3

Khaled Barbaria

Faculte des Sciences de Bizerte


Section SI3

A.U 2012/2013
20 septembre 2014

Exercice 4
1. Proposer un mod`ele client/serveur dune application permettant `a un utilisateur de
stocker des fichiers de musique sur le serveur puis de les ecouter.
2. Pour des raisons de securite, le serveur authentifie dabord le client gr
ace `a la verification
de login et de mot de passe. Ajuster votre mod`ele.

1. Protocole applicatif : message m1 : envoye par le client pour enregistrer son fichier
contient (le type de loperation (E), le nom de lutilisateur, le nom du fichier ainsi
quun dernier champ avec les octets du fichier), message m2 : envoye par le client pour
recuperer son fichier contient (le type de loperation (R) le nom dutilisateur et le nom du
fichier). message m4 : envoye par le serveur en cas reponse (correcte) contient la chane
OK, message m4 : envoye par le serveur en cas reponse (correcte) `a m2 contient le
nom dutilisateur, nom de fichier et les octets du fichier. message m4 : envoye par le
serveur en cas derreur contient la chane ERR ainsi quun code derreur. Protocole
de transport TCP (pour sa fiabilite).
Code serveur : loop(){
attendre cnx
Code client : se connecter
attendre m1 /m2
envoyer m1 /m2
traitermessage
attendre m3 /m4 /m5
envoyer m3 /m4 /m5
se deconnecter
deconnecter client}
2. Protocole applicatif : ajouter un message m6 contenant le login et le mot de passe et
un autre, m7 , `
a envoyer par le serveur en cas dauthentification reussie. m7 contient
un identifiant unique de session (ajouter cet identifiant `a chaque message envoye par le
client).

3/3

Khaled Barbaria