Labo 1: Implémentation d`un algorithme distribué de base en

publicité
 Labo 1: Implémentation d’un algorithme distribué de base en utilisant les sockets Septembre 2015 L’objectif de ce travail pratique est de programmer l’un des quatre algorithmes suivants : 1.
Broadcast avec vague 2.
Broadcast avec vague avec ACK 3.
Construction d'un arbre de recouvrement en largeur d'abord 4.
Construction d'un arbre de recouvrement en profondeur d'abord Les messages sont transmis entre les nœuds du réseau via les sockets. Chaque nœud est serveur et client en même temps. Il est implémenté sur une machine différente de celles allouées aux autres nœuds. Un nœud est représenté par : -
un numéro de port, -
l’ensemble des voisins du nœud en question Ces informations sont stockées dans un fichier .txt (texte) ayant comme nom : voisin-­‐x.txt. x étant le numéro du nœud en question. Exemple : Nom du fichier : voisin-­‐01.txt. Ce fichier représente le nœud 1 Contenu du fichier : 3 // nombre de voisins du nœud 1 129.194.184.101 // identifiant du 1er voisin 129.194.184.110 // identifiant du 2ème voisin 129.194.184.111 // identifiant du 3ème voisin Le programme distributed_alg à écrire doit être appelé comme suit : distributed_alg num_port voisin-­‐x.txt INIT voisin-­‐x.txt WAIT ou distributed_alg num_port INIT : signifie que le nœud en question commence l’exécution sans attendre la réception du premier message. WAIT : signifie que le nœud en question attend la réception du premier message avant de commencer à envoyer des messages. voisin-­‐x.txt est le fichier qui doit être lu par le nœud concerné. On vous demande d’écrire le programme distributed_alg (qui représente l’un des quatre algorithmes cités en haut) et de le déployer sur un réseau d’ordinateurs en utilisant un script. Le développement de ce programme doit se faire en C, python ou Java. Vous devez suivre la chronologie suivante : Etapes Livrables Conception du protocole de communication entre les Un document d’une demie-­‐page doit être remis au nœuds. professeur/assistant avant de passer à l’étape suivante Conception d’une structure de données distribuée adaptée à l’algorithme distribué à implémenter Ecriture du programme distributed_alg et son exécution Une démonstration doit être faite au professeur/assistant sur un seul ordinateur. Chaque nœud est représenté par avant de passer à l’étape suivante un serveur socket installé sur un port différent. Déploiement manuel sur plusieurs nœuds Déploiement manuel sur plusieurs nœuds Ecriture et exécution d’un script qui déploie le Démonstration finale. programme distributed_alg sur un ensemble de machines distantes. Le script doit permettre : un login à distance sur les machines du réseau une exécution de l’algorithme distributed_alg •
•
Le déploiement de ce travail peut se faire sur les machines de la salle A406 ou sur la plateforme hepiaCloud. Critères d’évaluation: 1.
Chaque nœud lit correctement le fichier « voisin » tel que décrit dans l’énoncé. Les noms des fichiers voisins doivent respecter l’énoncé. 2.
L’algorithme est déployé en local. Dans ce cas, chaque nœud utilise un port différent 3.
L’algorithme est déployé manuellement sur 5 nœuds (ordinateurs) minimum. 4.
Le cas échéant, l’algorithme utilise les threads pour l’envoie des messages et l’attente des réceptions. Cette option permet de garantir des envois parallèles. 5.
Le système est déployé en utilisant un script. Celui-­‐ci doit éviter la saisie des mots de passes sur les différentes machines (une recherche sur internet est conseillée pour trouver une solution). 6.
Il sera tenu compte de la présence durant les séances de labo. Déroulement du labo et planning des séances Trois séances d’une heure 15 minutes sont réservées pour le suivi et l’encadrement de ce travail (voir planning sur ce lien : http://lsds.hesge.ch/distributed-­‐systems/). Un travail personnel d’environ 1h30/semaine est nécessaire pour accomplir ce labo. Durant les trois séances réservées pour ce labo, chaque étudiant-­‐e est évalué-­‐e en fonction des critères cités plus haut. 
Téléchargement