Labo 1 : Implémentation d`un algorithme distribué en utilisant les

publicité
Labo1:Implémentationd’unalgorithmedistribuéenutilisantlessockets
05Décembre2016
L’objectifdecetravailpratiqueestdeprogrammerl’undesalgorithmessuivants:
1.
Broadcastavecvague
2.
BroadcastavecvagueavecACK
3.
Constructiond'unarbrederecouvrementenlargeurd'abord
4.
Constructiond'unarbrederecouvrementenprofondeurd'abord
5.
Constructiond’unarbrederecouvrementsansracineconnueàl’avance
6.
AlgorithmeTest_Connectivity
7.
Algorithmedupluscourtcheminversionsynchrone
8.
AlgorithmeGnutella
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.Ilestimplémentésurunemachinedifférentedecellesallouéesauxautresnœuds.
Unnœudestreprésentépar:
-
unnumérodeport,
-
l’ensembledesvoisinsdunœud
Cesinformationssontstockéesdansunfichier.txt(texte)ayantcommenom:voisin-x.txt.xétantlenumérodunœud.
Exemple:
Nomdufichier:voisin-01.txt.Cefichierreprésentelenœud1
Contenudufichier:
3
//nombredevoisinsdunœud1
129.194.184.101
//identifiantdu1ervoisin
129.194.184.110
//identifiantdu2èmevoisin
129.194.184.111
//identifiantdu3èmevoisin
Leprogrammedistributed_algàécriredoitêtreappelécommesuit:
distributed_alg num_port
voisin-x.txt
INIT
voisin-x.txt
WAIT
ou
distributed_alg num_port
INIT:signifiequelenœudenquestioncommencel’exécutionsansattendrelaréceptiondupremiermessage.
WAIT: signifie que le nœud en question attend la réception du premier message avant de commencer à envoyer des
messages.
voisin-x.txtestlefichierquidoitêtreluparlenœudconcerné.
On vous demande d’écrire le programme distributed_alg(qui représente l’un des algorithmes cités en haut) et de le
déployersurunréseaud’ordinateursenutilisantunscriptshell.
LedéveloppementdeceprogrammedoitsefaireenpythonouJava.
Vousdevezsuivrelachronologiesuivante:
Etapes
Livrables
Conception du protocole de communication entre les Un document d’une page maximum doit être remis sur
nœuds.
moodle(cyberlearn)avantdepasseràl’étapesuivante
Conception d’une structure de données distribuée
adaptéeàl’algorithmedistribuéàimplémenter
Ecriture du programme distributed_alg et son exécution Unedémonstrationdoitêtrefaiteauprofesseur/assistant
sur un seul ordinateur. Chaque nœud est représenté par avantdepasseràl’étapesuivante
unserveursocketinstallésurunportdifférent.
Déploiementmanuelsurplusieursnœuds
Déploiementmanuelsurplusieursnœuds
Ecriture et exécution d’un script qui déploie le Démonstration finale. Remise d’un fichier compressé
programmedistributed_algsurunensembledemachines contenant:
distantes.Lescriptdoitpermettre:
1. Lecodesourcedevotreprogramme
• unloginàdistancesurlesmachinesduréseau
2. Les fichiers .txt représentant un exemple de
• uneexécutiondel’algorithmedistributed_alg
réseau(5nœudsminimum)
LedéploiementdecetravailpeutsefairesurlesmachinesdelasalleA406ousurlaplateformeCloudhepiaCloud.Les
étudiantsdesorientationstélécometmatérieldoiventutiliserlaplateformeCloud:hepiaCloud.
Critèresd’évaluation:
1.
Chaque nœud lit correctement le fichier «voisin» tel que décrit dans l’énoncé. Les noms des fichiers voisins
doiventrespecterl’énoncé.
2.
L’algorithmeestdéployéenlocal.Danscecas,chaquenœudutiliseunportdifférent
3.
L’algorithmeestdéployémanuellementsur5nœuds(ordinateurs)minimum.
4.
Danscertainsalgorithmes(lesalgorithmescitésenhaut),lesenvoisdemessagesdoiventsefaireenparallèle.
Danscecas,distributed_algdoitutiliserlesthreads.
5.
Lesystèmeestdéployéenutilisantunscript.Celui-cidoitéviterlasaisiedesmotsdepassessurlesdifférentes
machines(unerecherchesurinternetestconseilléepourtrouverunesolution).
6.
Ilseratenucomptedelaprésencedurantlesséancesdelabo.
Déroulementdulaboetplanningdesséances
Troissemainessontréservéespourlesuivietl’évaluationdecetravail:12Décembre2016,19Décembre2016et9
Janvier2017.Untravailpersonneld’environ1h30/semaineestnécessairepouraccomplircelabo.
Durantlestroisséancesréservéespourcelabo,chaqueétudiantestévaluéenfonctiondescritèrescitésplushaut.
LetravailfinalseraévaluéleLundi9Janvier2017(de13:00à14:00)
Téléchargement