Vous êtes sur la page 1sur 2

Faculté des Sciences de Bizerte A.

U 2021/2022
Section GLSI3 22 septembre 2021

Développement d’applications réparties


Travaux pratiques N° 1 : Rappel sur les I/O en java

Exercice 1 Rappels du cours


1. Donner deux exemples d’applications C/S où le client a besoin de plus de ressources
que le serveur. Quel terme peut désigner ce genre de clients ?
2. Donner la définition et deux exemples de clients légers.
3. Rappeler la notion d’état d’un serveur. Donner deux exemples de serveurs avec et sans
état.
4. Quel est l’avantage du multithreading pour un serveur ?
5. Donner une définition et préciser l’utilité des RFC.

1. Outlook, Jeux 3D etc. On les désigne par client lourds. Le client lourd ne dépend du ser-
veur que pour l’échange des données dont il prend généralement en charge l’intégralité
du traitement. .
2. Un client léger est un processus qui n’a presque pas de logique d’application. Il dépend
donc surtout du serveur pour le traitement. Exemples : navigateur Web, simple client
mail, etc.
3. L’état d’un serveur est l’ensemble des données qui persistent après le traitement des
requêtes. La réponse à une requête par un serveur avec état dépend généralement des
résultats des requêtes qui l’ont précède. Exemple de serveur avec état : SGBD, serveur
d’une banque. Exemple de serveur sans état : serveur Web simple, serveur de date.
4. L’avantage du multithreading pour un serveur est la possibilité de traiter les requêtes
en concurrence ce qui peut améliorer les temps de réponse.
5. (Request for Comment) Demande de Commentaire : il s’agit d’un texte sur internet
qui peut présenter une documentation, la spécification d’une norme ou d’un protocole.
Ces documents ne sont publiés qu’après avoir reçu des critiques ou commentaires et
y avoir répondu. A titre d’exemple, la RFC 894 décrit le protocole IP pour Ethernet,
la RFC 1180 est un mode d’emploi du protocole TCP / IP, la RFC 1866 spécifie le
standard HTML. Chaque RFC a un numéro qui permet de le retrouver (www.ietf.org)

Exercice 2 Copie de fichier en java


1. Donner le code java d’un programme qui copie un fichier en un autre. Les noms des
deux fichiers sont sasis en ligne de commande. Vous pouvez utiliser les méthodes read
et write des classes FileInputStream et FileOutputStream. Les exceptions doivent
être correctement gérées et des messages d’erreurs adéquats doivent être affichés.
Exemple de commande : java Copie source.txt destination.txt
2. Mesurer le temps de la copie.

1/2 Khaled Barbaria


Faculté des Sciences de Bizerte A.U 2021/2022
Section GLSI3 22 septembre 2021

3. (Bonus +2) accélérer la copie en utilisant d’autres classes java.

Exercice 3 Communication basée sur le système de fichier


Pour faire communiquer deux processus donnés, nous allons utiliser le système de fi-
chiers comme espace partagé permettant d’échanger les données. Considérons une application
répartie constituée de deux processus, le premier (client) écrit un entier dans un fichier “re-
quetes.txt”, attend pendant une seconde, ensuite il lit et affiche la réponse qu’il va trouver
dans le fichier “reponses.txt”. Le second processus (serveur) ouvre périodiquement (toutes les
250 ms) le fichier des requêtes, s’il trouve un entier, il calcule sa factorielle et met la réponse
dans le fichier des réponses.
1. Donner un exemple de fichiers “requetes.txt” et “réponses.txt” possible.
2. Préciser le modèle client/serveur de cette application.
3. Ecrire les programmes Client.java et Serveur.java Correspondant aux client et au ser-
veur.
4. Noter les problèmes rencontrés, ils seront résolus dans ce cours !
5. Quels sont les avantages et inconvénients de cette méthode de communication ?

2/2 Khaled Barbaria

Vous aimerez peut-être aussi