From 2553abc67ad30d0a3e27b4f4c167d91c8fd7509f Mon Sep 17 00:00:00 2001 From: louis_royer Date: Thu, 12 Dec 2019 12:45:53 +0100 Subject: [PATCH 1/2] Mise en forme README.md --- README.md | 42 ++++++++++++++++-------------------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 6e9f960..eab1b7b 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,37 @@ -# Projet Répartition +# Projet Répartition : Téléchargement FTP P2P -Téléchargement FTP P2P +Lien vers le [document original](https://stri-online.net/FTLV/mod/resource/view.php?id=1753). ---- -But : le but de ce projet est de créer une application répartie en Java de téléchargement de fichier en mode P2P (peer to peer ou poste à poste). +**But** : le but de ce projet est de créer une application répartie en Java de téléchargement de fichier en mode P2P (peer to peer ou poste à poste). Les étapes suivantes sont conseillées. -Étape 1 : Téléchargement à la FTP +## Étape 1 : Téléchargement à la FTP La première étape doit permettre de télécharger un fichier en intégralité d'une machine vers une autre machine de façon similaire aux applications suivant le protocole FTP. Plan de travail : +- Lire le sujet jusqu'au bout et la RFC FTP ([version anglaise](https://www.ietf.org/rfc/rfc959.txt), [version française](http://abcdrfc.free.fr/rfc-vf/pdf/rfc959.pdf)) ; +- Concevoir l'application répartie avec UML ; +- Écrire l'application serveur et l'application cliente. -Lire le sujet jusqu'au bout et la RFC FTP (version anglaise, version française) ; - -Concevoir l'application répartie avec UML ; - -Écrire l'application serveur et l'application cliente. - -Étape 2 : Téléchargement en parallèle +## Étape 2 : Téléchargement en parallèle Dans la seconde étape, on permet à un client de télécharger le fichier depuis plusieurs serveurs. Le fichier sera découpé en plusieurs blocs de tailles égales (par exemple 4 Ko) qui seront téléchargés depuis plusieurs serveurs. Dans cette étape c'est le client qui choisit (par exemple aléatoirement) quel bloc télécharger depuis quel serveur. Plan de travail : +- Modifier le serveur pour gérer l'envoi de n'importe quel bloc d'un fichier ; +- Modifier le client pour qu'il puisse demander le téléchargement de n'importe quel bloc et re-créer le fichier complet. -Modifier le serveur pour gérer l'envoi de n'importe quel bloc d'un fichier ; - -Modifier le client pour qu'il puisse demander le téléchargement de n'importe quel bloc et re-créer le fichier complet. - -Étape 3 : Transformation en P2P simple +## Étape 3 : Transformation en P2P simple Dans cette étape, il n'y a plus de clients ni de serveurs ; les applications sont les deux à la fois. Chaque application devra noter de quelle partie du fichier elle dispose. Au démarrage certaines applications auront le fichier complet et les autres aucun bloc. Les applications demanderont aléatoirement chaque bloc manquant à n'importe quelle autre application qui renverra soit le bloc soit un message d'erreur. -Étape 4 : P2P coordonné +## Étape 4 : P2P coordonné Dans cette étape, on ajoute un serveur dont le rôle est de maintenir la liste des applications gérant le téléchargement d'un fichier et quel bloc chaque application possède. Ce serveur coordonnera le téléchargement en précisant à chaque application, à qui se connecter et ce qui y est disponible. @@ -48,13 +42,9 @@ Dans cette étape, on doit s'assurer que les applications envoient et reçoivent On essaiera ainsi de désavantager les applications qui ne font que télécharger et n'envoient rien. Options : - -Créer une IHM (interface homme machine) Graphique pour les applications avec Swing par exemple. - -Gérer à la fois des communications UDP et TCP. - -Permettre la recherche de fichiers à partir de leur nom ou de toute autre caractéristique. A l'issu de la recherche on devra pouvoir connaître un ensemble d'application possédant le fichier et commencer le téléchargement. - -Gérer le protocole d'une application de téléchargement P2P existante (bittorrent, emule ou autre). +- Créer une IHM (interface homme machine) Graphique pour les applications avec Swing par exemple. +- Gérer à la fois des communications UDP et TCP. +- Permettre la recherche de fichiers à partir de leur nom ou de toute autre caractéristique. À l'issu de la recherche on devra pouvoir connaître un ensemble d'application possédant le fichier et commencer le téléchargement. +- Gérer le protocole d'une application de téléchargement P2P existante (bittorrent, emule ou autre). Note : toute fonctionnalité supplémentaire ne sera prise en compte dans la notation que si toutes les étapes ont été correctement traitées. \ No newline at end of file From 1d6e926b696b0c8ec9d0b8cbc0264fb715f008ad Mon Sep 17 00:00:00 2001 From: louis_royer Date: Thu, 12 Dec 2019 12:46:42 +0100 Subject: [PATCH 2/2] Mise en forme README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eab1b7b..3a7cac2 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Les applications demanderont aléatoirement chaque bloc manquant à n'importe qu Dans cette étape, on ajoute un serveur dont le rôle est de maintenir la liste des applications gérant le téléchargement d'un fichier et quel bloc chaque application possède. Ce serveur coordonnera le téléchargement en précisant à chaque application, à qui se connecter et ce qui y est disponible. -Étape 5 : P2P coopératif +## Étape 5 : P2P coopératif Dans cette étape, on doit s'assurer que les applications envoient et reçoivent globalement les même quantités. On essaiera ainsi de désavantager les applications qui ne font que télécharger et n'envoient rien.