Université Pierre & Marie Curie
U.F.R d'infomatique
Maîtrise -- 2000-01 --
Programmation Objet et Distribution



Tavaux pratiques n° 1

Une machine à café distribuée

Le but du TP est de manipuler à la fois la communication entre threads présents sur un même hôte et la communication par sockets entre programmes situés sur des machines distinctes selon l'architecture client-serveur.

Principe de fonctionnement du serveur
Le serveur lance un processus (léger) qui simule une machine à café puis se met à l'écoute des clients. À chaque connexion, le serveur lance un processus (léger) (que nous appellerons un garçon) pour traiter la requête. Et continue à écouter.
Le processus simulant la machine et les garçons partageront un certain nombre de ressources communes : une file d'attente pour les commandes et une liste des boissons prêtes.
La machine et le serveur partageront une valeur boolèenne (que nous appelerons on) indiquant si celle-là est active ou non. Le serveur boucle tant que cette valeur vaut true.

Architecture de la machine à café
La machine à café boucle sur la séquence suivante :
  1. attendre une commande ;
  2. incrémenter la recette ;
  3. un délai de préparation de la boisson ;
  4. décrémenter le stock de boisson ;
  5. ajouter la boisson (ou le code d'erreur) à la liste des boisson prêtes.
Pour faire simple, la recette et les stocks de boissons sont des ressources locales à la machine. Celle-ci affichera périodiquement le montant de la recette. Lorsque tous les stocks sont épuisés, la machine met la variable on à faux et s'arrête.

Fonctionnement du garçon
Le garçon : On se contentera d'implanter le serveur. On simulera un client en utilisant telnet.

Indications
Vous réaliserez le serveur en vous inspirant du lecteur-écrivain ou du serveur pong vu en TD (vous utiliserez, dans ce second cas, des threads en place des << processus lourds >>.)

N'oubliez pas non plus d'utiliser les entrées-sorties compatibles avec les threads (module ThreadUnix).




This document was translated from LATEX by HEVEA.