:: Enseignements :: Master :: M1 :: 2009-2010 :: Programmation d'Applications Réseaux ::
[LOGO]

Proxy HTTP filtrant


Le projet consiste à implanter un proxy pour HTTP capable de réaliser du filtrage.
Le 08/03/2010 : Précisions concernant l'utilisation du proxy.

Description du sujet

Le projet consiste à implanter un proxy pour HTTP capable de réaliser du filtrage

Vous serez jugés sur votre capacité à implanter un proxy pratique et puissant: le choix de la manière dont est réalisé et spécifié le filtrage, et l'interface de paramétrage du proxy, sont laissés à votre appréciation. Il va sans dire, par exemple, que le proxy devra être paramétrable au moins par un utilisateur non programmeur.

Ajout au 08/03/2010 : Vous pouvez tester votre proxy en indiquant à votre client (e.g. un navigateur internet) que les requêtes http doivent passer par votre proxy. Comme il n'est pas possible de modifier le proxy utilisé par le firefox installé sur les machines étudiantes, vous pouvez utiliser Galeon.

Votre proxy devra pouvoir servir plusieurs clients simultanément. Il n'est pas obligatoire de réaliser un proxy en utilisant les fonctionnalités non blocantes des E/S de Java; cependant, vous serez jugés aussi sur la capacité de votre serveur à tenir la charge ainsi que sur son efficacité.

L'implantation du pipeline est optionnelle. Pensez à avoir une base de projet propre et qui fonctionne bien avant de vous lancer dans des extensions complexes. Par exemple, vous pourrez commencer à développer un proxy HTTP 1.0 puis, une fois qu'il fonctionnera, le continuer par l'implantation de HTTP 1.1.

Bien sûr, votre proxy devra être implanté en utilisant avec soin les concepts objets et les différents éléments de la bibliothèque.

Remise du projet

Ce projet est un travail à faire en binôme. On rappelle qu'un binôme est constitué d'exactement deux personnes travaillant de manière équitable sur le projet. La note des deux membres du binôme pourra être différente à l'appréciation du correcteur, s'il juge que le travail n'a pas été justement partagé.

Le projet consiste à programmer ce qui est demandé. La correction sera basée sur les codes sources de ce que vous avez fait, sur un rapport qui devra contenir entre autres :

Votre code source devra être correctement organisé :

Votre projet sera également accompagné d'une documentation au format javadoc.

Le projet pourra faire l'objet d'une soutenance.

Le projet doit être envoyé dans un fichier zip le 11 avril à 23h59 au plus tard sur le dépôt suivant sur etudiant :
/home/shares/igm/prof/Projet_M1_11042010 . Le zip contiendra
  • un fichier jar exécutable
  • la documentation
  • le rapport
  • les sources
  • les classes compilées
  • un fichier build.xml permettant de
    • compiler les sources (target compile)
    • creer le jar (target jar)
    • generer la javadoc (target javadoc)
    • nettoyer le projet (target clean)
(bref, tout ce qui concerne le projet). Le zip aura un nom formé à partir de vos noms (par exemple, si vous vous appelez Toto et votre binôme Tatenpion, TotoTartenpion.jar). L'extraction de cette archive devra créer un répertoire du nom de l'archive pour contenir tous les éléments demandés ci-dessus (par exemple, un répertoire TotoTartenpion).

Cas de pénalités :