Logiciel P2P pour le partage de ressources bibliographiques

Responsable

Arnaud Casteigts (arnaud.casteigts@labri.fr),
LaBRI, bureau 124, 05.40.00.24.88

L'idée principale

L'un des éléments clés de la recherche scientifique est le partage d'information entre chercheurs. Ce partage se fait généralement par le biais de publications scientifiques (articles de journaux, articles de conférences, livres, etc.). L'objectif de ce projet est d'élaborer une plateforme de type pair à pair, totalement décentralisée, pour partager ces ressources dans un réseau local (p.ex. le LaBRI), ou à une plus grande échelle (p.ex. Internet).

Travail souhaité

L'application demandée, en mode texte dans un premier temps, doit permettre à un utilisateur de mettre à disposition des autres l'ensemble des publications dont il dispose sur sa machine locale, ces publications pouvant être indexées de différentes manières (mots clés, auteurs, titre, résumé, note personnelle, etc.). De façon symétrique, le système doit permettre à un utilisateur d'effectuer des requêtes pour rechercher une ressource donnée (selon les mêmes critères d'indexation).

Principe réseau

Chaque utilisateur doit avoir sur sa machine un serveur qui tourne, sur un port prédéfini, ce serveur permettant de répondre aux requêtes provenant d'autres utilisateurs. Côté client, plusieurs fonctionnalités pourront être envisagées : scanner le réseau à la recherche de pairs (serveurs d'autres utilisateurs) disponibles, récupération de la liste des pairs connus par un pair, requête par mots clés, auteurs, titre, etc. sur plusieurs serveurs simultanément, téléchargement de documents (si électroniquement disponibles).

Principe de stockage

L'utilisation d'un moteur de base de données embarqué, tel que SQLite (le schéma de la base sera fourni).

Priorité

Il s'agit de ne pas se perdre parmi les innombrables fonctionnalités qu'un tel système peut proposer, en se concentrant dans un premier temps sur la réalisation d'une maquette (client et serveur minimaux, découverte du voisinage, requêtes minimales, téléchargement). Les traitements engendrés par le client doivent être exécutés en tâches de fond, et de manière non bloquante. Enfin, pour les communications, l'élaboration d'un "mini-protocole" dédié pourra être envisagé.

Évaluation

L'évaluation tiendra compte de la quantité de travail réalisé (avec prise en compte des difficultés rencontrées), ainsi que de la réutilisabilité du code. L'aboutissement du projet sur un produit fini n'est pas une priorité, et sera considérée comme un bonus.