Systèmes Pair-à-Pair. Systèmes Pair-à-Pair. Réseaux Classiques. Réseaux P2P. Concepts. Exemples d'applications Infrastructure



Documents pareils
Réplication adaptative sur les réseaux P2P

Les protocoles Peer-to-Peer GERET. Gabrielle Feltin LORIA

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Gestion du déploiement de composants sur réseau P2P

Recherche d informations à grande échelle dans des architectures Peer-to-Peer

Robin Favre Fabien Touvat. Polytech Grenoble RICM 3 ème Année Vendredi 21 Novembre 2008 Etude d Approfondissement Réseau

Architecture d un service de partage de données modifiables sur une infrastructure pair-à-pair

Notes de cours (ENS Lyon, M1) Chapitre 2 : Réseaux Pair à Pair

Conception des systèmes répartis

Revue d article : Dynamic Replica Placement for Scalable Content Delivery

Architectures et Protocoles des Réseaux

N d ordre : 4071 ANNÉE THÈSE / UNIVERSITÉ DE RENNES 1 sous le sceau de l Université Européenne de Bretagne. pour le grade de

1. Introduction à la distribution des traitements et des données

Pair-à-Pair: Architectures et Services

Environnement pour le calcul pair à pair

Autorité de certification distribuée pour des réseaux pair-à-pair structurés : modèle, mise en oeuvre et exemples d applications

Plan du cours. Incarnations/applications du Grid Computing. Super-calcul virtuel

Les réseaux de campus. F. Nolot

Proposition d une grille d analyse pour la composition de systèmes P2P adaptés aux contextes applicatifs

Fiche de l'awt Le modèle peer to peer

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Équilibrage de Charge dans un Réseau Pair-à-Pair Structuré : une Méthode Dynamique Intégrée

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

Programmation parallèle et distribuée

L identité numérique. Risques, protection

Contributions à l expérimentation sur les systèmes distribués de grande taille

Cours Bases de données

JXTA : Un Framework Peer-to-Peer Open Source

3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. Stephane.Vialle@supelec.fr

arxiv: v1 [cs.dc] 29 Apr 2008

Introduction aux applications réparties

Le Ro le Hyper V Troisie me Partie Haute disponibilite des machines virtuelles

La Continuité d Activité

NFP111 Systèmes et Applications Réparties

Routage Efficace pour les Réseaux Pair-à-Pair utilisant des Tables de Hachage Distribuées

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Évaluation d une architecture de stockage RDF distribuée

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir.

NOTIONS DE RESEAUX INFORMATIQUES

Introduction aux algorithmes répartis

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Gestion répartie de données - 1

République Algérienne Démocratique et Populaire. Ministère de l Enseignement Supérieur et de la Recherche Scientifique

Détection d'intrusions en environnement haute performance

Conception et contrôle des SMA tolérants aux fautes

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

Proposition d une architecture pour ebay, en mettant l accent sur les notions de scalabilité, de résilience, et de tolérance aux pannes.

Systèmes et algorithmes répartis

Les environnements de calcul distribué

La haute disponibilité de la CHAINE DE

Windows Server 2012 R2 Administration avancée - 2 Tomes

Parcours en deuxième année

Ebauche Rapport finale

Algorithmique et langages du Web

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

La sécurité dans les grilles

Sur l utilisation de LDA en RI pair-à-pair

Windows Internet Name Service (WINS)

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Diagrammes de Package, de déploiement et de composants UML

ViSaGe. Virtualisation du Stockage dans les Grilles. Informatiques. RenPar 16, 6-8 Avril 2005 Thiebolt François

DESCRIPTION DU CONCOURS QUÉBÉCOIS INFORMATIQUE (GESTION DE RÉSEAUX)

Réseaux pair-à-pair structurés en ProActive

Présentation du module Base de données spatio-temporelles

Chapitre 4: Introduction au Cloud computing

WEA Un Gérant d'objets Persistants pour des environnements distribués

1 LE L S S ERV R EURS Si 5

Messagerie asynchrone et Services Web

MEAD : temps réel et tolérance aux pannes pour CORBA

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

<Insert Picture Here> Solaris pour la base de donnés Oracle

Chapitre 1. Infrastructures distribuées : cluster, grilles et cloud. Grid and Cloud Computing

Chapitre 11 : Le Multicast sur IP

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

Mr. B. Benaissa. Centre universitaire Nâama LOGO

Chapitre 2 : Abstraction et Virtualisation

Présentation et portée du cours : CCNA Exploration v4.0

Cours n 12. Technologies WAN 2nd partie

Optimisations des SGBDR. Étude de cas : MySQL

THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par.

LA VOIX SUR GPRS. 1. Introduction. P. de Frino (1), S. Robert (2), G. Cecchin (3) Résumé

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Systèmes Répartis. Pr. Slimane Bah, ing. PhD. Ecole Mohammadia d Ingénieurs. G. Informatique. Semaine Slimane.bah@emi.ac.ma

Définition et diffusion de signatures sémantiques dans les systèmes pair-à-pair

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Programmation parallèle et distribuée

Technicien Supérieur de Support en Informatique

Gestion collaborative de documents

Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July ENPC.

RESEAUX TCP/IP: NOTIONS AVANCEES. Preparé par Alberto EscuderoPascual

Réseaux. 1 Généralités. E. Jeandel

GRIDKIT: Pluggable Overlay Networks for Grid Computing

Une présentation de HP et de MicroAge. 21 septembre 2010

Spécialiste Systèmes et Réseaux

Microsoft Windows NT Server

Administration de systèmes

Proposition d architecture de réseau actif pour le déploiement d un réseau Peer to Peer

Introduction aux Technologies de l Internet

Windows Server 2012 Administration avancée

Transcription:

Systèmes Pair-à-Pair Concepts Systèmes Pair-à-Pair Exemples d'applications Infrastructure Olivier Marin Laboratoire d'informatique de Paris 6 Overlays structurés Overlays non-structurés Problèmes classiques Perspectives (problèmes ouverts) Réseaux Classiques Réseaux PP 4

Taxonomie des Systèmes Informatiques Client/Serveur vs. PP Systèmes Informatiques Systèmes Centralisés (mainframes, SMPs, stations) Systèmes Répartis Clients Pairs Client/Serveur Pair-à-Pair Serveur Plat Hiérarchique (Grilles) Hybride (Index centralisé, Super-pairs) Pur 5 6 Client/Serveur vs. PP Objectifs du PP Gérés Configurés Recherche de services Hiérarchique Ressources statiques Cycle de vie lié au serveur Centré IP Nommage basé sur le DNS Communications type RPC/RMI Synchrone Asymétrique Axé sur des modèles de liaison et d'intégration du langage de programmation (stub IDL/XDR, compilateurs, etc...) Sécurité de type Kerberos : acl, crypto Auto-Gérés Ad-hoc Découverte de services Maillage Ressources volatiles Cycle de vie autonome Non restrictif à IP Nommage spécifique Communication par messages Asynchrone Symétrique Axé sur la localisation de services, localisation du contenu, routage applicatif Anonymat, haute disponibilité Plus difficile à maîtriser Partage / réduction des coûts! Aggrégation dynamique de ressources volatiles! Autonomie totale " Système disponible 7/7-4/4 " Maintenance nulle " Indépendance vis-à-vis de l'infrastructure physique Passage à l'échelle! Disponibilité de ressources! Suppression des goulots d'étranglement Anonymat (hum...) 7 8

PP : Besoins algorithmiques Applications PP Catégories Découverte de services (nom, adresse, route, métrique,...) Recherche de voisins Routage de niveau applicatif Rémanence, récupération sur faute de liaison ou d'exécution Calcul Massivement Parallèle Collaboration Partage / Répartition de données! Plates-formes 9 0 Applications PP Calcul Massivement Parallèle But : Exécuter des programmes inexploitables autrement Partage des ressources de calcul disponibles/inactives Décomposition de l'application en micro-tâches parallélisables! Seti@home (astronomie)! genome@home (ADN)! folding@home (repliement des protéines) SETI@home Calcul massivement parallèle Expérience en radioastronomie SETI : Search for Extra-Terrestrial Intelligence Analyse des données collectées par le radiotélescope d' Arecibo Exploite la puissance inutilisée des ordinateurs connectés via Internet Participants chargent et analysent les données durant la veille écran

SETI@home Folding@home.8M utilisateurs dans 6 pays 00 années CPU / jour 8 TeraFlops soutenu (Le Earth Simulator Japonais obtient 40 TF).7 Zetaflops (0 ) pour les dernières années Calcul massivement parallèle Comprendre le repliement et l agrégation des protéines Etude de maladies résultant d un repliement anormal des protéines eg. Alzheimer, fibrose cystique, EBS (Vache Folle), nombreux cancers A dépassé le PetaFlops (0 5 ) ; supporte les PS Très hétérogène : > 77 types de processeurs! 4 Applications PP Routage IP Collaboration But : Mettre en relation des pairs par centre d'intérêt Gestion d'annuaires, transport de données! Chat/Irc, NewsGroups! Instant Messaging (AIM, ICQ, Yahoo!Messenger, MSN)! Voice/IP (Skype)! MMORPGs (WoW, Ultima Online, Second Life) Collaboration Routeurs IP découvrent une topologie et la maintiennent Ne sont ni client ni serveurs Dialoguent continuellement entre eux Sont tolérants aux pannes Sont autonomes 5 6

Skype Applications PP Collaboration Transfert de communications (VoIP) Pairs partagent leur bande passante Annuaire totalement décentralisé Routage au moyen de super-nœuds 46 millions d'utilisateurs Gros problèmes de sécurité Partage / Répartition de données But : Partager des fichiers, des objets applicatifs, des services Mise à disposition volontaire de données Système de routage/localisation! Napster, Publius, Freenet, MojoNation, FreeHaven, Groove, e-donkey! Gnutella, Kazaa, BitTorrent! Chord, Can, Pastry, Tapestry 7 8 Napster Gnutella Partage de fichiers Système d'indexation centralisé ; fichiers restent sur les clients. Connexion au serveur & chargement de la liste de fichiers (push). Envoi des critères de recherche sur la liste principale. Sélection de la meilleure réponse (ping) puis téléchargement Considéré (à tort) comme le er réseau PP SMTP UseNet News Archie : système d'indexation de serveurs FTP en accès libre Apparition des problèmes légaux (DRMs,...) Partage de fichiers Contournement des déboires légaux de Napster! Décentralisation du système d'indexation! Chaque nœud est à la fois serveur et client (servent) Routage des requêtes en best effort! Inondation de proche en proche! Durée de vie prédéfinie pour chaque requête (TTL)! Identification unique et non ambigüe des requêtes 9 0

Applications PP (Juxtapose) Plates-formes But : Permettre le développement de systèmes à large échelle Mise à disposition de composants paramétrables et réutilisables Noyau : services prédéfinis (eg. sécurité, gestion de groupes)! JXTA! Globus!.NET My Services Plate-forme de développement Spécification open source de protocoles PP! Pipes (canaux de comm.)! Peer Groups (gestion de groupes)! Rendezvous network (routage avec super-pairs) Initialement conçu par SUN pour Java! Adaptations pour C / C++ / C# (.NET) Infrastructures PP Infrastructures PP Définition d'un overlay Réseau construit au-dessus du réseau physique Ensemble des liens établis entre pairs qui se connaissent Overlays Pairs Overlay 4

Abstraction d'overlay Overlays PP Applications Outils Services Gestion de services Méta-données Ordonnancement Messagerie inter-services Couche applications Couche services Non-structurés (Gnutella, Kazaa ) Topologie du système déterminée par les utilisateurs Découverte du voisinage Placement ad-hoc des données dans le système Sans lien avec la topologie Sécurité Gestion de ressources Routage/Localisation Découverte de ressources Tol. aux pannes Réseau Couche gestion des fonctionnalités Couche gestion des nœuds / overlay Couche communications Structurés (Chord, CAN, Pastry,Tapestry) Topologie particulière (eg. anneau, arbre, grille) Placement des données tient compte de la topologie Utilisation des fonctions de «hash»! Possibilité de déterminer l'inexistence de réponse 5 6 PP non-structuré : Gnutella PP non-structuré : Gnutella Protocole de recherche de données et services Chaque nœud est à la fois client et serveur Routage par inondation (flooding) cheminement aléatoire (random walk) QueryHit C Messages Gnutella (TimeToLive) # Découverte de nœuds PING/PONG # Découverte de données (fichiers) et services Query QueryHit A Query Query B D 7 8

Overlay semi-structuré PP semi-structuré : FreeNet "Small-World Experiment" (Stanley Milgram, 969) Lettre distribuée aléatoirement à 50 personnes Omaha (Nebraska) et Wichita (Kansas) " centre des USA Contient des infos sur un dest. à Cambridge (Massachusetts) " côte ouest des USA But : faire parvenir la lettre au destinataire Transmission à des personnes susceptibles de connaître le destinataire connaissances proches uniquement (first-name basis) Indication des expéditeurs successifs pour neutraliser les boucles Résultats Nb moyen de transmissions = 5 (entre et 0 hops) Passe très bien à l'échelle (87 millions d'habitants) Basé sur des réseaux de connaissances : pas de centralisation Fiable : transmission malicieuse ne fait que redémarrer la recherche 9 Stockage persistant de données et services [Freenet00] Nœuds/Données identifiés par une clé binaire (fonction hash) Identifiant de nœud : NodeID(utilisateur) = hash(@ip) Identifiant (clé) de fichier : FileID(fichier) = hash(contenu) Gestion de tables de routage Construction de voisinages! Connaissance approximative du contenu des nœuds proches Types de requêtes Join Contact de nœuds connus : récup. d'un NodeID Publish Search Fetch Routage des données (FileID) vers le NodeID le + ressemblant Routage de requête à partir du FileID Récup. du fichier en cas de recherche fructueuse 0 PP semi-structuré : FreeNet PP semi-structuré : FreeNet Insertion de clé Diffusion d'un message routé vers le nœud tel que (key ~ nodeid) msg d'insertion = clé + nb aléatoire de sauts (hop) Chaque pair contrôle si la clé est dans son système de stockage local oui! génération d'une nouvelle clé non! routée vers le nœud suivant (hop --) jusqu'à hop == 0 hop == 0 & pas de collision! clé insérée sur tout le chemin de routage Données qui traversent un nœud sont copiées dans son cache " Utilisation de la politique LRU pour la gestion du cache " Information stockée pour chaque donnée (fichier) code hash dernier temps d accès/modification Demandeur A D 6 7 8 5 B C 4 0 9 Séquence typique de routage de requête Dissémination de proche en proche Gestion de cul-de-sac () et de boucle (7) E Propriétaire F

Gnutella vs. FreeNet PP Hybride $ Routage basé sur la diffusion (flooding) $ Aucune mémoire du trafic véhiculé $ Read-only $ Système non sécurisé $ Routage dynamique basé sur la similarité des clés $ Tables de routage + Cache $ Read/Write $ Système sécurisé Notion de super-pair Pair "plus égal" que les autres Auto-proclamé dynamiquement! Mécanisme d'acceptation/éviction au sein du voisinage Création d'un niveau hiérarchique supérieur! Connaissance étendue du voisinage (données, clés,...)! Serveur pour les pairs-pairs de ce voisinage! Prise en charge du routage avec les autres super-pairs Adopté par Gnutella et KaZaA 4 PP structuré : Motivations PP structuré : DHT Distributed Hash Table Faire mieux que les systèmes PP ad hoc Guarantir le succès des localisations de noms Bornes démontrables sur les délais de recherche Preuve théorique du passage à l'échelle Table de hash : pierre angulaire de toute indexation Put (clé, valeur) Get (clé) " valeur Remove (clé) Un identifiant global unique pour chaque nœud/fichier du système Principe : répartir la table sur l'ensemble des nœuds! Pas de connaissance globale du système Partitionnement de l'espace en propriétaires de clés Redondance pour éviter la perte d'information (0-9) (A-D) (E-G) (R-Z) (H-K) 5 (L-Q) 6

PP structuré : CAN PP structuré : CAN Idée de conception [CAN0] Espace cartésien virtuel bidimensionnel découpé en zones Routage y (x,y) Peer Chaque nœud du système est propriétaire d une zone Connait les @ des propriétaires des zones adjacentes Q(x,y) Query/ Resource Données stockées sous la forme (clé, val) hash(clé) " un point (x,y) dans l espace virtuel (clé, val) stocké sur le nœud propriétaire de (x,y) Q(x,y) key 7 x 8 Insertion de nœud PP structuré : CAN Insertion de nœud PP structuré : CAN Bootstrap node random (x,y)? I routing (x,y) J J new new node 9 40

PP structuré : CAN PP structuré : CAN Départ de nœud Départ de nœud 4 4 4 Arbre de partitionnement 4 Arbre de partitionnement Espace virtuel Espace virtuel 4 4 PP structuré : Chord PP structuré : Chord Association clés - noeuds Une infrastructure de stockage et de routage [Chord0] Identifiants sur m bits ( m identifiants) nodeid(nœud) = hash(@ip) key(fichier) = hash(contenu) L espace des IDs est organisé en anneau Un fichier de clé k (ou sa réf.) est stocké sur un nœud A tel que 7 6 0 identifiant noeud X clé successeur() = " nodeid(a) > k mod m " Il n'existe pas de nœud x pour lequel successeur(6) = 0 6 6 successeur() = { nodeid(x) > k mod m } & { nodeid(x) < nodeid(a) } 5 4 4 44

PP structuré : Chord Association clés - noeuds Entrée du noeud 6 PP structuré : Chord clé 6 clés 7 0 clés 7 0 clés 6 clés 6 6 5 4 clés 5 4 clés 45 46 PP structuré : Chord PP structuré : Chord Les raccourcis Recherche de la clé 54 finger table For. start 0+ 0 0+ 0+ 4 succ. 0 keys 6 N5 K54 N56 N N8 lookup(54) Finger table 6 7 5 0 4 finger table For. start + 0 + + 5 finger table For. start + 0 4 + 5 + 7 succ. 0 succ. 0 0 0 keys keys 47 N48 N4 N8 N N N4 N8+ N8+ N8+4 N8+8 N8+6 N8+ 4 4 4 4 48

PP structuré : Chord Caractéristiques significatives Mémoire utilisée par noeud en O(log(N)) Temps de recherche d une clé en O(log(N)) Auto-reconfigurable Tolérant aux pannes PP structuré : Pastry Une infrastructure de stockage et de routage [Pastry0] Mêmes principes de base que Chord Identifiants sur m bits ( m identifiants) nodeid(nœud) = génération aléatoire key(fichier) = génération aléatoire (ou hash(contenu)) Topologie en anneau Un fichier de clé k (ou sa réf.) est stocké sur son supérieur immédiat Mais routage amélioré Table de routage «incrémentale» 49 Voisinage logique (leafset) et physique (neighbourhood set) 50 PP structuré : Pastry PP structuré : Pastry Table de routage Voisins logiques Routage d46ac d47f d467c4 d46ba d4f Routage incrémental lookup(d46ac) dda Voisins physiques 5 65afc 5

PP structuré : Pastry Caractéristiques significatives Mémoire utilisée par noeud en O(log(N)) Auto-reconfigurable Routage optimisé (reste en O(log(N)) et sécurisé Extrêmement tolérant aux pannes Réplication des fichiers, détection de fautes dans le leafset Table de routage prévoit les départs intempestifs Applications PP Problèmes Classiques 5 Réplication de données Sécurité PP FreeNet Données copiées par les nœuds qui participent à leur routage MojoNation Dissémination des copies les plus demandées par un serveur CAN (multi-dimensionnel) Une donnée peut avoir une clé par dimension Past [PAST0] (Stockage de fichiers sur Pastry) Données répliquées dans le leafset Anonymat (majoritairement Freenet)! Eviter les cx directes entre le demandeur d information et le propriétaire! Mensonge aléatoire au cours du routage " Mandataire prend la place du demandeur / propriétaire! Utiliser de TTL choisis aléatoirement! Dissocier le propriétaire d un document de sa localisation (CAN, Chord) 55 56

Sécurité PP Sécurité PP Intégrité des données Vérification des données Clés cryptographiques (CFS, Past) Dissémination des données Fichiers à stocker décomposés en n blocs Mais m blocs (m<n) suffisent pour reconstituer le fichier (Publius, Mnemosyne, FreeHaven) «Free-riding» Un ou +sieurs utilisateurs profitent du système sans partager leur ressources Problème : écroulement du système Solutions :! Utilisation de techniques d incitation à la participation Découverte des ressources du système proportionnelle à la participation Paiement virtuel (tit for tat) ou micro-paiement (MojoNation)! Surveiller les pairs 57 58 Sécurité PP Stockage Persistant Spécification Collusion : «SYBIL attack» [Douceur0] Un utilisateur peut entrer dans le réseau en utilisant plusieurs identités Problèmes : attaques malicieuses Monopolisation des copies d'un même fichier Falsification du routage Solutions! utopique : identification unique des ressources d un nœud! à double tranchant : insertion coûteuse (paiement, computing challenge) Persistance Chaque objet est répliqué plus d'une fois dans le système Atomicité Chaque opération de lecture renvoie la dernière valeur écrite L ordre causal des événements est respecté 59 60

Stockage Persistant Abstraction Vivacité (Convergence) Invocation pour un objet «id» renvoie, au bout d un temps fini, un ensemble non vide de nœuds qui stockent les répliques de l objet Sûreté (Quorum) invocations! pour le même objet aboutissent à des résultats dont l'intersection est non-vide Equilibrage de charge invocations réalisées par le même utilisateur pour des objets! renvoient avec une forte probabilité des ensembles de nœuds distincts Implémentations (partielles) Structurés : Malkhi et al (graphes de Bruijn), Naor et al. (diagrammes de Voronoy) Non-structurés: Lynch et al. (RAMBO I, II, III), Geoquorums (version adhoc), SAM: Self-adjusting Atomic Memory (I-SPAN 005) Spécification Publication/Abonnement Légalité Si un nœud p est notifié avec un événement «e» alors p est abonné avec une condition «f» satisfaite par «e» Validité Si un noeud est notifié avec un événement «e» alors il existe un nœud dans le réseaux qui a publié «e» Vivacité - Evénement Si un événement «e» survient & si un nœud p est abonné avec une condition «f» satisfaite par «e» alors p est notifié au bout d une temps fini Equité Chaque nœud a le droit de publier infiniment souvent 6 6 Publication/Abonnement Résolution de Conflits Abstraction Toute invocation avec un événement e renvoie l ensemble connecté minimal de brokers pour les conditions f tel que e satisfait f Implémentations Systèmes PP structurés : Pastry (eg. Scribe, SPLIT-STREAM), CAN (Meghdoot) Systèmes PP non-structurés : Gossip, Structures de filtrage Problèmes ouverts Connectivité et tolérance aux fautes des structures de filtrage Réduction du nombre de nœuds qui reçoivent des événements non-désirés Spécification Sûreté Accès en exclusion mutuelle aux objets Vivacité Chaque invocation du service comporte une réponse au bout d un temps fini 6 64

Abstraction Résolution de Conflits Registre Test&Set/Reset ou exclusion mutuelle (Sûreté) Service de location de verrous (Vivacité + Equité) Implémentations Systèmes PP structurés : problème ouvert Systèmes non-structurés Mutex fiable à base de jeton géré dans un arbre dynamique [Sopena05] Philosophes mobiles auto-stables [Datta05] Problèmes ouverts PP Mise en place de travail coopératif (eg. Wikipedia, CVS, éditeurs de texte) Déploiement de code / Allocation de ressources Observation / Evaluation de performances Construction de systèmes de confiance Traitement des problèmes de sécurité 65 66 Un exemple de projet de recherche DDEFCON http://ddefcon.lip6.fr Dependable DEployment of Code in Open environments DDEFCON Dependable DEployment of Code in Open environments http://ddefcon.lip6.fr LIP6 - Equipes MoVe (Vérification et validation de systèmes) & REGAL (Algorithmique distribuée et réalisation de systèmes) Equipes REGAL & MOVE 68

Déploiement à Grande Echelle Approche Calculs massivement parallèles en environnements ouverts Typiquement, PP sur Internet Mise à disposition de ressources sur chaque nœud (PC, box, ) Actuellement Le déploiement se fait de manière centralisée! Il n y a pas de communication inter-processus! Domaines Mathématiques (Décryptage, Grands nombres premiers, ) Bio-médical (Calcul de génome, Analyse de protéines, ) Astrophysique Météorologie 69 Permettre le déploiement de code coopératif Processus échangent des infos par messages (pas de mémoire partagée) Offrir une infrastructure pour ce déploiement Totalement décentralisée Guaranties en termes de fiabilité et de sécurité Aussi transparente que possible pour le développeur d appli 70 Axes de recherche Déploiement Localisation des ressources et des données Placement des processus Sécurité Confidentialité des traitements Protection des hôtes Déploiement Centré sur un langage : DADL Manipule des composants Une application est un ensemble de composants Un composant peut encapsuler une application Fiabilité Continuité de l application en présence de fautes (matérielles ou logicielles) 7 7

Description d un composant Exemple DADL Document XML Ressources matérielles nécessaires processeurs, mémoire, espace disque, Package sources, localisation des composants, dépendances, métainfos Interfaces génération de proxies pour la communication de composants hétérogènes Cycle de vie lancement, arrêt, destruction, migration, réplication Qos demandée (= fiabilité & sécurité) 7 Description de besoins en ressources <resources xmlns="http://ddefcon.lip6.fr/ns/" xmlns:xsi="http://www.w.org/00/xmlschema-instance"> <processor> <number></number> <frequency min="700mhz" max="ghz" /> </processor> <memory> <size min="50mb" max="500mb" average="50mb" /> </memory> <storages> <storage> <size value="500mb" /> <path>/tmp</path> </storage> </storages> <system> <os> <linux> <distribution>mandriva</distribution> </linux> </os> </system> <network> <portrange>8080-808</portrange> <speed>00mb</speed> </network> </resources> 74 Infrastructure de localisation Sécurité Localisation de composants Utilisation de la DHT Pastry Chaque composant possède un identifiant unique CID Son descripteur DADL est stocké sur le nœud associé nodeid = SHA(CID) Localisation/Allocation de ressources Utilisation de Scribe (Publish/Subscribe s / Pastry) Identifiants prédéfinis pour des plages de ressources multi-critères Un groupe Scribe par identifiant Allocation First-Fit Isolation du code déployé dans une VM Chaque composant s'exécute dans son propre environnement est associé à un chargeur de code peut invoquer d'autres composants locaux L'isolation reste transparente pour le développeur du composant 75 76

Fiabilité Etat d'avancement Réplication adaptative de composants Notion de groupe de réplication (GR) Un unique réplicat est désigné pour représenter son GR Plusieurs stratégies peuvent être appliquées au sein du GR Les stratégies peuvent être adaptées dynamiquement La réplication est circonscrite au GR! transparente Adaptation dynamique de la fiabilité Chaque composant exprime la QoS désirée (criticité) Observation des ressources disponibles en cours d'exécution! Mise à jour adaptative des stratégies de réplication Infrastructure de déploiement Langage DADL Implémentation stable du service de localisation Isolation des composants Implémentation JVM modifiée en cours Réplication adaptative Spécifications des services requis en PP Nommage, Monitoring, Détection de défaillances Implémentation stable des GRs 77 78 Travaux en cours Déploiement Amélioration de l'allocation de ressources Evaluation de l'implémentation existante Sécurité Observation du code exécuté Chiffrement des composants Réplication Implémentation des services PP Bibliographie [Milojicic0] Dejan Milojicic et al., "Peer to peer computing", HP Labs Technical Report, 00 [Lua05] Eng Keong Lua et al., "A Survey and Comparison of Peer-to-Peer Overlay Network Schemes, "IEEE Communications Surveys and Tutorials, Vol. 7(), pp. 7-9, July 005 [Semenov005] Alexei Semenov, "Evolution of peer-to-peer algorithms: past, present and future", Technical Report - Helsinki University of Technology, 005 [Castro04] M. Castro, M. Costa and A. Rowstron "Peer-to-peer overlays: structured, unstructured, or both?", Microsoft Research Technical Report, 004 [CAN0] Sylvia Ratnasamy et al., "A Scalable Content-Addressable Network", in Proceedings of ACM SIGCOMM, 00 [Chord0] David Liben-Nowell, Hari Balakrishnan, and David Karger, "Analysis of the Evolution of Peer-to-Peer Systems", ACM Conf. on Principles of Distributed Computing (PODC), Monterey, CA, July 00 [Pastry0] A. Rowstron and P. Druschel, "Pastry: Scalable, decentralized object location and routing for large-scale peerto-peer systems", in ACM Distributed Systems Platforms (Middleware), Heidelberg, Germany, pp. 9-50, November 00 [PAST0] A. Rowstron and P. Druschel, "Storage management and caching in PAST, a large-scale, persistent peer-topeer storage utility", ACM Symposium on Operating Systems Principles (SOSP'0),Banff, Canada, October 00 [Gnutella0] Yatin Chawathe et al., "Making gnutella-like PP systems scalable", in Proceedings of ACM SIGCOMM, New York, NY, USA, 00 [Freenet00] Ian Clarke et al., "Protecting free expression online with Freenet", IEEE Internet Computing, 6():40--49, 00 [Douceur0] John R. Douceur, "The sybil attack", in Proc. of the IPTPS0 Workshop, Cambridge, MA, USA, March 00 [Bonnaire07] Xavier Bonnaire and Olivier Marin, "Recursive Replication: A Survival Solution for Structured PP Information Systems to Denial of Service Attacks", to appear in Int. Workshop on Peer to Peer Networks, Portugal, Nov. 007 [Sopena05] J. Sopena and L. Arantes and M. Bertier and P. Sens, "A fault-tolerant token-based mutual exclusion algorithm using a dynamic tree", in Proceedings of Euro-Par - Parallel Processing, 005 [Datta05] Ajoy Kumar Datta, Maria Gradinariu, and Michel Raynal, "Stabilizing mobile philosophers", Information Processing Letter, 95(): 99-06, 005 79 80