Présence et communication peer-to-peer Diplômant : Yves Bresson Professeur responsable : Yves Dennebouy EIVD Septembre - Décembre 2003
Plan de présentation Introduction Introduction Objectifs du projet Objectifs du projet Peer-to-peer Peer-to-peer Développement réalisé Développement réalisé Perspectives Perspectives Conclusion Conclusion Démonstration Démonstration Questions Questions
Introduction (1/2) Messagerie Instantanée (IM) Echange instantané de messages entre participants. Echange instantané de messages entre participants. Problèmes à résoudre : Problèmes à résoudre : –Authentification des participants –Transmission des messages –Problème de la ‘Présence’ Solution la plus simple : serveur central. Solution la plus simple : serveur central.
Introduction (2/2) Présence Savoir si un ordinateur est présent et connaître sa position. Savoir si un ordinateur est présent et connaître sa position. La résolution de ce problème nécessite : La résolution de ce problème nécessite : –un protocole d'annonce de présence –un protocole de demande (requête) de présence Solution la plus simple : serveur central. Solution la plus simple : serveur central.
Objectifs du projet (1/2) Applications existantes (IM) IdentificationPrésenceMessages ICQcentralisécentralisé centralisé / p2p AIMcentralisécentralisécentralisé Yahoo!centralisécentralisécentralisé Messengercentralisécentralisécentralisé Jabber n serveurs Projet (PIM) p2pp2pp2p
Objectifs du projet (2/2) Cahier des charges But : messagerie instantanée peer-to-peer But : messagerie instantanée peer-to-peer Objectifs : Objectifs : –Définir et mettre en place un réseau peer-to-peer –Définir un mécanisme de présence sur ce réseau –Développer un système de messagerie instantanée –Intégrer ces points au sein d’une même application, en privilégiant la portabilité
Peer-to-peer (1/2) Architecture réseau dans laquelle chaque ordinateur (peer) est équivalent. Architecture réseau dans laquelle chaque ordinateur (peer) est équivalent. Chaque peer est client et serveur. Chaque peer est client et serveur.
Peer-to-peer (2/2) client-serveur vs peer-to-peer + fiable, facile à organiser+ grande puissance, bon marché -- cher, dépendant du serveur,-- fiabilité pas à 100%, difficile à puissance limitée organiser puissance limitée organiser
Développement réalisé (1/5) Vue d’ensemble PDP PDP –Réseau de peers PIM PIM –Gestion / utilisation des contacts Plugins Plugins –Fonctionnalités utilisables Messagerie instantanée Messagerie instantanée autres autres PIM PDP Plugin
Développement réalisé (2/5) PDP Module responsable du réseau de peers : Module responsable du réseau de peers : –Communication (deux niveaux) Interne / PDP (TCP et UDP) Interne / PDP (TCP et UDP) Service avec confirmations offert aux pdpAppelants (TCP) Service avec confirmations offert aux pdpAppelants (TCP) –Découverte –Recherche (service offert aux pdpAppelants) –Identification –Relaying –Maintenir les informations du réseau (liste des peers)
Développement réalisé (3/5) PIM Module de gestion / utilisation des peers : Module de gestion / utilisation des peers : –Interface utilisateur Ajout (recherche) Ajout (recherche) Suppression Suppression Utilisation ( plugins événements, ex: IM) Utilisation ( plugins événements, ex: IM) –Evénements (source connue / inconnue, persistance) –Contrôle (statut) Remarques : Remarques : –Technique : PIM est un pdpAppelant pour PDP –Concept : évolution de IM vers un système de plugins
Développement réalisé (4/5) Les plugins (1/2) Interface plugins de PIM Interface plugins de PIM –Méthodes à implémenter par les plugins Méthodes utilisables par les plugins Méthodes utilisables par les plugins –Méthodes publiques de PIM Pas de recompilation de PIM Pas de recompilation de PIM –Chargement à l’exécution depuis /plugins/*
Développement réalisé (5/5) Les plugins (2/2) Deux types (utilisation) : Deux types (utilisation) : –Contact PIM Messenger –Système PIM Settings Deux modes (événements) : Deux modes (événements) : –Utilisateur –Direct
Perspectives (1/3) Problèmes réseau Points améliorables : Points améliorables : –Accès au réseau. (peers avec firewall / NAT, sans multicast) –Structurer le réseau. (meilleure auto-organisation, liste des peers répartie)
Perspectives (2/3) Cryptage Utiliser un cryptage à clé publique / clé privée, par exemple pour : Utiliser un cryptage à clé publique / clé privée, par exemple pour : –Renforcer la phase d’identification des peers. (échange de challenge-strings) –Sécuriser les messages transmis. (authenticité, confidentialité et intégrité)
Perspectives (3/3) XML Utiliser XML pour les messages de PDP : Utiliser XML pour les messages de PDP : <type>envois-liste</type><dest-id> </dest-id><donnees><peer><id> </id><ip> </ip<port>4043</port></peer>...</donnees></pdp>
Conclusion Améliorations possibles Améliorations possibles Actuellement bien adapté au réseau local (voir même LAN élargi avec un minimum de configuration) Actuellement bien adapté au réseau local (voir même LAN élargi avec un minimum de configuration)
Démonstration PIM PIM
Questions ?