Sujet TER - Master 1 - Année 2004-2005

Partage de documents en mode Peer to peer sous Madkit

Présenté par Jacques Ferber

Ce projet consiste à réaliser un logiciel de partage de documents en mode peer-to-peer à l'aide d'une plate-forme multi-agent MadKit.

MadKit est une plate-forme de développement de systèmes multiagents fonctionnant en Java. Madkit fonctionne en mode distribué de manière "transparente" à partir d'une architecture "peer to peer" sans nécessiter de serveur dédié. Il est ainsi possible de faire communiquer des agents à distance sans avoir à se préoccuper des problèmes de communication qui sont gérés par la plate-forme. Madkit utilise le protocole TCP et les sockets pour la gestion des messages entre agents.

Madkit utilise le modèle AGR (Agent/Groupe/Rôle) pour structurer les communications entre agents. Les groupes sont distribués de manière automatique sur les différents noyaux Madkit présents. MadKit est un système OpenSource que vous pouvez télécharger à www.madkit.org.

Le modèle AGR, à partir duquel est construit MadKit est fondé sur une interaction entre groupes, rôles et agents :

L'organisation de MadKit sous forme de groupes et de rôles.

Image du "bureau" de MadKit
(cliquer sur l'image pour l'élargir)

Madkit fonctionne de manière distribuée selon un mode peer to peer. Il introduit aussi la notion de « communauté », c’est à dire d’application distribuée à laquelle un ensemble d’agents peuvent se réunir et partager des applications et des documents. Il est ainsi possible de réaliser facilement de nombreuses applications distribuéees: chat, partage de documents, jeux distribués, etc..

Les années précédentes dernière, des équipes d'étudiants en TER avait permis d'aboutir à une première version de partage de fichiers. On dispose maintenant d'un système de serveur et de transfert relativement robuste de fichiers.

Mais il reste encore du travail en particulier pour répartir les charges de téléchargement entre plusieurs sites, et d'autre part pour réaliser une recherche de documents efficace. Enfin, il y a encore un travail important de réalisation d'interface, de manière à ce que l'interface de ce logiciel ressemble à celle que l'on rencontre dans les logiciels de ce genre.

Travail à fairedans le cadre du TER

Le sujet porte sur la conception et la réalisation d'un ensemble de logiciels sous Madkit pour assurer le partage de documents entre plusieurs sites sur un mode peer-to-peer. Notamment, il s'agira d'écrire un mécanisme de répartition des téléchargements et de recherche de documents par mots clés ou critère de recherche.

Partage de documents par fichiers

Il s'agit de mettre à jour et d'améliorer un logiciel qui permette de partager des documents entre plusieurs utilisateurs de Madit. Le partage de documents passe par deux types d'agents:

Seuls les clients et les serveurs appartenant au même groupe peuvent échanger des documents. Ils tiendront les rôles respectifs de 'server' et de 'client'.

Ce qu'il faut faire cette année:

La réalisation sera faite en Java et éventuellement en langage de scripts (Python, Jess, Scheme, etc...) si le besoin s'en fait sentir.