Merge branch 'master' of louis_royer/Projet_JAVA_P2P_STRI2A into master
commit
1e21d95552
@ -1,60 +1,50 @@
|
||||
# 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.
|
||||
|
||||
É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.
|
||||
|
||||
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.
|
Loading…
Reference in New Issue