Programmation des Applications Réparties Introduction P2P

Transcription

Programmation des Applications Réparties Introduction P2P
Programmation des Applications
Réparties
Introduction P2P
Luiz Angelo Steffenel
[email protected]
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
1
Motivation
●
Informatique Grand Public
–
●
●
Terminal (PC), Connexion quasi permanente (Forfait ADSL,
Modem Cable, …)
Usage
–
A la fois client
–
A la fois serveur (de ressources)
Exemples
–
Calcul massivement distribué (SETI@home, XtremWeb, ...)
–
Partage de fichiers
●
–
Steffenel
Napster, GnuTella, Kazaa, BitTorrent
Plate-forme de développement (JXTA)
Programmation des Applications Réparties – Master M1 - 2007-2008
2
Définitions
●
●
●
Steffenel
Un « peer » est un « individu du réseau » qui peut recevoir et traiter
des messages issus des autres « peers » mais aussi envoyer ses
messages à ces peers.
Un système P2P n'est rien qu'un réseau où des pairs échangent des
messages selon les besoins d'une application réseau : partage de
fichiers, traitement de données, messagerie instantanée
Une application est vraiment P2P ?
–
Elle adresse les aspects liés à la volatilité de la connection et des
adresses du réseau ?
–
Les noeuds sont suffisamment autonomes lorsqu'ils se retrouvent
partiellement ou totalement déconnectés du réseau ?
Programmation des Applications Réparties – Master M1 - 2007-2008
3
Modèle Client-Serveur
Steffenel
●
Modèle assez courant dans l'Internet
●
Distinction claire (?) entre les rôles
●
Exemples
–
accès à un serveur Web
–
FTP
–
DNS
–
mail (?)
Programmation des Applications Réparties – Master M1 - 2007-2008
4
Modèle P2P
●
Ressources partagées
●
Communications bidirectionnelles
●
Exemples :
–
partage fichier
●
–
calcul distribué
●
–
seti@home
messagerie instantanée
●
Steffenel
gnutella
ICQ
Programmation des Applications Réparties – Master M1 - 2007-2008
5
Un peu d'histoire
●
années 1970 à 1980
–
●
●
début d'Internet avec une architecture P2P (ARPANet)
années 1990
–
standardisation de l'architecture et des protocoles Internet
–
dissémination de services client-serveur
Fin des années 1990 jusqu'à présent
–
le partage de fichiers reouvre l'intérêt sur le P2P
●
–
Steffenel
actuellement, ce sont les applications les plus populaires de
l'Internet
étude sur les réseaux P2P comme possible évolution de l'Internet
Programmation des Applications Réparties – Master M1 - 2007-2008
6
L'Internet aujourd'hui
●
Internet aujourd’hui
–
Zone IP Stable
●
●
–
Principalement les serveurs d’entreprise mais aussi des PC
des particuliers (abonnement illimité …)
Zone IP Non Stable
●
●
Steffenel
Ordinateurs (nœud) connectés de manière permanente au
réseau
Ordinateurs connectés de manière intermittente au réseau
Dispositifs mobiles (téléphone cellulaire, PDAs, ordinateurs
portables)
Programmation des Applications Réparties – Master M1 - 2007-2008
7
P2P « pur »
●
Une vraie application P2P doit implémenter des protocoles qui ne font
aucune distinction entre les pairs
–
●
●
Telles applications sont très rares
La plupart des réseaux et applications P2P contient ou utilise des
éléments non-P2P, comme par exemple un serveur DNS
–
Steffenel
Ne pas reconnaître les concepts de « serveur » et « client »
DNS est un service qui fait la traduction entre nom et IP. DNS est
un service fondé sur une hiérarchie de serveurs qui sont
contactés lorsqu'on a besoin de traduire un nom de machine en
une adresse IP
Programmation des Applications Réparties – Master M1 - 2007-2008
8
P2P avec Index Centralisé
●
Index centralisé (en zone stable)
●
Stockage décentralisé (en zone instable)
●
Principe
●
Steffenel
–
Chaque pair annonce à l’index la liste des ressource qu’il sert
–
Un pair requête l’index pour connaître la liste des pairs qui
servent une ressources
–
Le chargement des données se fait de pair à pair
Exemples
–
Napster
–
SoulSeek
Programmation des Applications Réparties – Master M1 - 2007-2008
9
P2P avec Index Centralisé
●
●
Avantages
–
Performance
–
Contrôle d'accès (facturation?, bannissement)
Inconvénients
–
Single point of failure
●
Steffenel
peut être résolu avec des serveurs qui se relayent
–
Passage à l'échelle
–
Modèle abandonné surtout à cause des implications légales
Programmation des Applications Réparties – Master M1 - 2007-2008
10
P2P avec Index décentralisé /
Données décentralisées
●
Index décentralisés (en zone instable/stable)
●
Stockage décentralisé (en zone instable)
●
Principe
–
Découverte des pairs qui servent l’index
●
–
●
●
Steffenel
inondation du réseau (flooding)
Les pairs qui servent d’index peuvent s’annoncer
Avantages : environnement P2P pur, scalabilité, tolérance aux fautes
Inconvénients : Performance dégradée sur des grands réseaux,
sécurité, disponibilité, fiabilité
Programmation des Applications Réparties – Master M1 - 2007-2008
11
P2P avec Index décentralisé /
Données décentralisées
●
Steffenel
Exemple : le réseau GnuTella
Programmation des Applications Réparties – Master M1 - 2007-2008
12
P2P décentralisé avec
sélection de routes
●
Pour pallier au problème du flooding, certaines applications P2P font
de la sélection des routes sur lesquelles les messages sont relayés
–
principe des « supernodes »
●
●
●
Steffenel
stockage temporaire de données (cache)
un peer devient automatiquement supernode s'il a le débit et
la puissance nécessaire
exemple : FastTrack
Programmation des Applications Réparties – Master M1 - 2007-2008
13
P2P avec Hachage des Index
Décentralisé (DHT)
●
Steffenel
Principe :
–
les index sont décentralisés
–
une application de hachage permet de connaître le peer qui a la
plus grande probabilité de connâitre le index pour les informations
demandées
–
exemples
●
Chord
●
Pastry
●
Tapestry
Programmation des Applications Réparties – Master M1 - 2007-2008
14
P2P avec Hachage des Index
Décentralisé (DHT)
●
Steffenel
Chord
–
les noeuds et les clés partagent un espace d'identification
–
les clés sont stockés dans les noeuds avec l'ID immédiatement
supérieur
Programmation des Applications Réparties – Master M1 - 2007-2008
15
P2P avec Hachage des Index
Décentralisé (DHT)
●
Chord
–
Steffenel
lors d'une requête, la demande est relayé dans l'ordre croissante
des noeuds jusqu'à trouver le noeud avec l'index demandé
Programmation des Applications Réparties – Master M1 - 2007-2008
16
Pros et Contres
●
●
Steffenel
Avantages
–
scalabilité
–
équilibrage de charge
–
qualité de service
Inconvénients
–
coût pour garder les états à jour
–
indisponibilité partielle des index lors d'une défaillance
–
sécurité (attaques genre « man in the middle »)
Programmation des Applications Réparties – Master M1 - 2007-2008
17
Résume P2P - Avantages
●
Échanges plus rapides
–
●
Optimisation de l’utilisation de la bande passante du réseau
–
●
ressources réparties
Tolérance aux pannes
–
Steffenel
équilibrage de la charge du réseau
Maintenance et coûts réduits
–
●
connexion directe
réplication des ressources
●
Extensibilité
●
Utilisation des ressources inutilisées
–
CPU, Stockage,
…
Programmation des Applications
Réparties – Master M1 - 2007-2008
18
Résume P2P - Inconvénients
●
●
●
●
Steffenel
Sécurité
–
Virus, backdoors (spyware)
–
Distributed Denial of Service (DDoS)
–
Confidentialité, Authentification
Contenu trompeur
–
Consistance
–
Contradiction
Loi : Wild Wild Web
–
Droit d’auteurs
–
Contenu immoral
Régulation / Répression
Programmation des Applications Réparties – Master M1 - 2007-2008
19
Un autre problème des réseaux P2P
●
Steffenel
Intéroperabilité
–
la plupart des applications P2P ne sont pas compatibles
–
Solution : une plate-forme P2P générique
Programmation des Applications Réparties – Master M1 - 2007-2008
20
JXTA – un framework pour P2P
●
introduit par SUN en 2001
–
●
objectif : une plate-forme commune pour le développement
d'applicaitons P2P
JXTA définit
–
Concepts
●
–
Peers, peergroups, advertisements, modules, pipes, security
6 protocoles centraux
●
Discovery, Resolver, Information, Endpoint Routing,
Rendezvous, Pipe Binding
–
Une architecture réseau
●
Steffenel
Modèles de communication (unicast, diffusion)
Programmation des Applications Réparties – Master M1 - 2007-2008
21
Avec JXTA on peut
●
Steffenel
Localiser dynamiquement d'autres peers même à travers
des pare-feux
●
Envoyer des messages et partages des ressources
●
Retrouver des ressources
●
Créer groupes de peers pour fournir des services
●
Contrôler l'activité d'autres peers
●
Échanger des messages avec sécurité et cryptographie
Programmation des Applications Réparties – Master M1 - 2007-2008
22
Les Peers JXTA
●
●
●
●
Processus ou dispositifs sur le réseau qui
implémentent un ou plusieurs protocoles JXTA
Peuvent opérer indépendamment et
asychronement par rapport aux autres peers
Identifiés par un Peer ID unique
Leur interface réseau est publiée comme un seul
point d'accès sur le réseau (endpoints)
–
Steffenel
les points d'accès sont utilisés pour établir une connexion point-àpoint entre deux peers
Programmation des Applications Réparties – Master M1 - 2007-2008
23
Les Groupes JXTA
●
●
●
Steffenel
Un groupe de peers qui se sont mis d'accord sur un ensemble
commun de services
Les peers s'organisent naturellement en peer-groups, chacun
identifié par un peer group ID unique
Les peergroups peuvent déterminer leur propre politique
d'appartenance (membership)
●
Un peer peut appartenir à plusieurs groupes simultanément
●
Les peergroups permettent la création de
–
environnements sécurisés
–
environnements ciblés
–
environnements d'observation
Programmation des Applications Réparties – Master M1 - 2007-2008
24
Les Advertisements (Annonces)
●
Utilisés pour décrire toutes les ressources dans un réseau JXTA
●
Description en langage neutre - XML documents
●
●
Steffenel
Les protocoles JXTA utilisent des advertisements pour décrire et
annoncer les ressources d'un peer
Les protocoles JXTA définissent 8 advertisements de base dont :
–
Peer Advertisement
–
PeerGroup Advertisement
–
Pipe Advertisement
–
Rendezvous Advertisement
–
Peer Info Advertisement
–
...
Programmation des Applications Réparties – Master M1 - 2007-2008
25
Les « Pipes » (communication)
●
Les Pipes sont des canaux de communication virtuelle qui
peuvent connecter des peers qui n'ont pas une liaison
directe
–
●
Steffenel
exemple : peers en réseaux différents
Plusieurs types de pipes
–
Point-to-point Pipes
–
Propagate Pipes (diffusion)
–
Secure Unicast Pipes
Programmation des Applications Réparties – Master M1 - 2007-2008
26
Les Messages
●
Unité de base pour l'échange de données entre peers
●
Les messages transms peuvent être
●
–
en format Binaire
–
en format Textuel (XML ou pas)
Les protocoles JXTA sont spécifiés comme des ensembles
de messages échangés entre les peers
–
●
Steffenel
Par exemple, un advertisement est encapsulé dans un message
Chaque implémentation définit comment un message est
traduit vers la structure native des données (objets Java,
structures C, ...)
Programmation des Applications Réparties – Master M1 - 2007-2008
27
La Sécurité
●
Cinq services de sécurité de base doivent être garantis :
–
Confidentialité
–
Authentification
–
Autorisation
–
Intégrité des données
–
Refutabilité
●
●
Steffenel
un message transmit ne peut jamais être la retransmission
d'un message précédent
Ces services de sécurité s'appliquent sur
–
les couches de transport
–
le membership des groupes
Programmation des Applications Réparties – Master M1 - 2007-2008
28
Les IDs
●
●
Chaque ressource ou peer sont identifiés de manière unique avec un
ID
–
array de 64 octets
–
indépendant du système d'identification du réseau (IP, MAC)
Six types d'ID ont été définis
–
●
peers, peergroup, pipes, contents, module classes et module
specifications
Un ID est représenté comme un Uniform Resource Name (URN)
–
Exemple de peer ID JXTA:
●
Steffenel
urn:jxta:uuid59616261646162614A78746150325033F3BC76
FF13C2414CBC0AB663666DA53903
Programmation des Applications Réparties – Master M1 - 2007-2008
29
L'Architecture JXTA
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
30
La Pile des Protocoles
●
Steffenel
Endpoint Routing
Protocol (ERP)
–
Utilisé pour trouver des routes pour
contacter d'autres peers
–
La route découverte inclut la liste
des peers utilisés pour relayer les
messages jusqu'à leur destination
Programmation des Applications Réparties – Master M1 - 2007-2008
31
La Pile des Protocoles
●
Steffenel
Rendezvous Protocol (RVP)
–
Établit la connexion entre les
peers et les services
–
Contrôle la propagation des
messages dans le réseau
●
Time To Live
●
Détection de Loopbacks
Programmation des Applications Réparties – Master M1 - 2007-2008
32
La Pile des Protocoles
●
Steffenel
Peer Resolver Protocol
(PRP)
–
Permet à un peer de lancer une
requête générique et de recevoir
la réponse associée
–
Requêtes/Réponses peuvent être
envoyées à tout le groupe ou à
un peer spécifique à l'intérieur
d'un groupe
Programmation des Applications Réparties – Master M1 - 2007-2008
33
La Pile des Protocoles
●
Pipe Binding Protocol
(PBP)
–
Steffenel
Utilisé par les peers pour établir
un canal de communication
virtuel (le pipe) entre un ou
plusieurs peers
Programmation des Applications Réparties – Master M1 - 2007-2008
34
La Pile des Protocoles
●
Peer Information Protocol
(PIP)
–
Steffenel
Utilisé par les peers pour obtenir
des informations sur d'autres
peers
●
état
●
uptime
●
trafic récent
●
etc.
Programmation des Applications Réparties – Master M1 - 2007-2008
35
La Pile des Protocoles
●
Steffenel
Peer Discovery Protocol
(PDP)
–
Utilisé pour les peers pour
annoncer leurs propres
ressources (peer ID, peergroups,
pipes, services) et pour découvrir
les ressources des autres peers
–
Chaque ressource est décrit et
publié dans un Advertisement
Programmation des Applications Réparties – Master M1 - 2007-2008
36
Exemple d'Utilisation - BibShare
●
●
●
Steffenel
Groupe de peers qui partagent des références bibliographiques
–
Les peers peuvent recherches des références spécifiques ou faire
une requête pour tout le groupe à la recherche d'entrées qui
correspondent à un critère donné
–
Les entrées bibliographiques de chaque peer sont disponibles
uniquement si le peer est conecté
Les requêtes au groupe sont faites à l'aide du Peer Discovery
Protocol
L'acquisition d'une référence spécifique est faite à l'aide du Peer
Resolver Protocol
Programmation des Applications Réparties – Master M1 - 2007-2008
37

Documents pareils