Développement d'un outil de recherche et de téléchargement de fichiers répartis à base de sources multiples

Sujet de TER - Université Paul Sabatier - 2003

v1.3 - S. L. - 21/03/2003.

Le système s'inspire du logiciel edonkey2000 (http://www.edonkey2000-france.com)

Description :
  Sur un réseau de grande taille, chaque site (un site=une machine) contient un ensemble de fichiers partagés de format quelconque (accessibles en lecture) avec une description associée a chacun d'eux.
Une description étant une suite d'informations permettant d'identifier et de retrouver ces fichiers,  l'une des informations est un résumé (digest) permettant de déterminer de manière sûre si deux fichiers sont identiques.
  Un site peut être serveur (il propose la diffusion de fichiers), client (il permet de chercher et télécharger des fichiers distants) ou les deux à la fois.

  On veut utiliser des acteurs JavAct pour effectuer la recherche et paralléliser le transfert de fichiers à partir de sources qui peuvent être multiples.

Exemple : (Depuis le site initial I, on peut accéder aux  sites distants A, B et C)
Site A :
fic1 : {signature, nom, taille, type, auteur...}
fic2 : {...}
fic3 : {...}
fic4 : {...}
Site B :
fic1 : {signature, nom, taille, type, auteur...}
fic4 : {...}
fic5: {...}
fic6 : {...}
Site C :
fic1 : {signature, nom, taille, type, auteur...}
fic7 : {...}
fic8 : {...}

Phase 1 : Recherche par agent mobile
  L'utilisateur lance la recherche depuis le site I, avec pour critère de recherche Cr={type="mp3" & auteur="Arcangel"}
  Deux protocoles sont envisagés :
    - Dans le premier un agent explore successivement l'ensemble des sites accessibles depuis le site I, en faisant les recherches localement.  Il enregistre la liste des fichiers et des sites correspondant au critère. Lorsqu'il revient sur le site I, il retourne la réponse={f1,f4,f8} (c'est l'ensemble des fichiers, avec leurs descriptions, qui correspondent au critère)
    - Dans le second, un agent est créé sur chaque site (A,B,C) et peut se déplacer ensuite vers les nouveaux sites (sites accessibles depuis A, B et C) qui n'ont pas été explorés, pour augmenter le nombre de réponses.

Cette réponse est proposée à l'utilisateur, qui fait un choix (fichiers a télécharger parmi ceux qui correspondent a la recherche), par exemple Cu={f1,f8}.

Phase 2 : Téléchargement à partir de sources multiples
  Comme f1 est disponible sur plusieurs sites, et afin d'optimiser le transfert, chaque site doit emettre une partie du fichier  :

REM : Les calculs des valeurs des indices sont à discuter, ainsi que le mode de transfert pour plusieurs fichiers sur un même site. On peut aussi envisager de rendre ces paramètres dynamiques.



Objectif :
  Pour l'équipe JavAct, l'objectif est de valider expérimentalement le modèle et l'outil de programmation, mais aussi de disposer in fine d'une "démo" significative.
  Le logiciel doit donc proposer une interface homme-machine (IHM) qui permette l'interaction de l'utlisateur dans les deux modes (client, serveur), et de visualier les tâches et la localisation des acteurs durant toute l'exécution.

Moyens :
  Le début du travail sera consacré à la compréhension du problème et des technologies évoquées ci-dessus. La procédure actuelle de déploiement sera présentée. Des programmes
pourront être écrits afin de se familiariser avec les principes de la programmation par acteurs.

La version 4.0 de JavAct est disponible sous forme de logiciel libre sous licence LGPL, avec sources et exemples. Par ailleurs, un grand nombre de documents concernant Java sont
disponibles, ainsi que (dans la mesure du possible) les connaissances et l'expérience de l'équipe JavAct.

Mots-clés :
  Java, acteurs, agents mobiles, application répartie, recherche d'information

Taille de l'équipe :
  Environ 2 à 4 personnes

Langage :
  Java

Modules Conseillés :
  Systèmes répartis, Réseaux

Encadrants :
  Jean-Paul Arcangeli (arcangel@irit.fr) et Sébastien Leriche (leriche@irit.fr) à contacter pour plus de précisions !