Architecture Décentralisée

1 639 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 639
Sur SlideShare
0
Issues des intégrations
0
Intégrations
17
Actions
Partages
0
Téléchargements
35
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Architecture Décentralisée

  1. 1. Architectures des applications de l’Internet du Futur Décentralisées, Partagées, Mobile par tous Didier Parigot www-sop.inria.fr/members/Didier.Parigot Didier. [email_address]
  2. 2. Programmable Overlay Network Prototype de recherche 13 000 lignes de Java Avec Baptiste Boussemart (1 an d’ingénieur)
  3. 3. Plan <ul><li>Court CV </li></ul><ul><li>Survol rapide de PON </li></ul><ul><li>Contexte : Les quatre couches </li></ul><ul><li>Quelques petites applications de PON </li></ul><ul><li>Squelette de programmation </li></ul><ul><li>Architecture de PON </li></ul><ul><ul><li>Architecture Orientée Service </li></ul></ul><ul><ul><li>Information publiées dans l’Overlay Network </li></ul></ul><ul><ul><li>Communication, Protocole de transport </li></ul></ul><ul><li>Conclusion </li></ul>
  4. 4. Mes travaux de recherche <ul><li>Grammaire Attribuée : FNC-2 [1986-2000] </li></ul><ul><ul><li>Programmation dirigée par la grammaire, [méta-modèle] </li></ul></ul><ul><ul><li>par Domain Specific Language (DSL) </li></ul></ul><ul><ul><li>Programmation générative par excellence </li></ul></ul><ul><li>Fabrique logicielle : SmartTools [2000] </li></ul><ul><ul><li>Programmation générative </li></ul></ul><ul><ul><li>Programmation par DSLs, par Aspects </li></ul></ul><ul><ul><li>Programmation par composants, Architecture Orientée Services (SOA) </li></ul></ul><ul><li>Programmable Overlay Network : PON [2008] </li></ul><ul><ul><li>Architecture Orientée Services en Pair à Pair </li></ul></ul>
  5. 5. SOA de SmartTools CM C3 C2 C1 Instances de composant SOA Locale ConnectTo OSGi Bundles Passage en Réparti Pair à Pair ? DHT
  6. 6. Organisation en P2P d’une application Organisation Décentralisée Client Fournisseur Fournisseur Client Client Client Client Client Client Client Ses services Ses services Client Arrivée d’un Client Départ d’un Fournisseur Ses services Départ d’un Fournisseur Ses services Arrivée d’un
  7. 7. Pub/Sub des services en pair à pair Réseaux de recouvrement CHORD Client Fournisseur Fournisseur Fournisseur Client Client Client Client Client Client Client Client Fournisseur Ses services Ses services Ses services SOA P2P
  8. 8. PON: les quatre couches OSGi CM C3 Fournisseur Client Bundles Composants OSGi Chord CHORD Navigateur Serveur GWT VirtPipes JXTA
  9. 9. Wireless, Ad-hoc Network, Mobile Internet of Things The Future of The Internet Extensible Decentralization Self organization Interoperability Scalability Security Discovery Invocation Composition Planification Orchestration Mobility Topology Fault tolerance Load Balancing Reputation Services Components Protocols Resources Underlay Network Virtual Pipes Overlay Network Pub/Sub Overlay Application SOA WEB
  10. 10. Programmable Overlay Network Quelques applications
  11. 11. Chat instantané en P2P <ul><li>Les utilisateurs s'inscrivent ( put ) sur un SON et demandent à être en communication avec quelqu'un ( get , connect ) </li></ul>
  12. 12. Localisation de Services <ul><li>Le prestataire de services publie pour une zone géographique leurs services dans un SON : put() </li></ul><ul><li>l'utilisateur recherche en fonction de sa position, les services dans sa zone : get() et se connecte à un service </li></ul>Utilisateur Prestataire
  13. 13. Publication d’information en P2P <ul><li>Publication d’une information (une liste) par un utilisateur Publication, Connexion, Partage, Edition </li></ul>Utilisateur Application de type Web 3.0 Eric Didier
  14. 14. Underlay Network Virtual Pipes Overlay Network Pub/Sub Overlay Application SOA Squelette de programmation Un DSL ConnectTo() Put() Connect() Get() Send() Receive()
  15. 15. La programmation avec PON Ecriture des services Création d’un projet Ecriture d’un projet Génération et lancement
  16. 16. Programmable Overlay Network Archictecture
  17. 17. Architecture Modulaire de PON Communication Publication/Recherche VirtPipes ST Mod “ local” ST Mod “ PON” CM VP Key Values Storage Services “ Openchord” ST Mod ... Modules VP Mod ... Modules KVS Mod ... Modules
  18. 18. Architecture Orientée Services le «  Run-time  » de SmartTools <ul><li>Architecture Orientée Services </li></ul><ul><ul><li>Composant Orienté Services (publication, recherche) </li></ul></ul><ul><ul><li>Déclarative à l’aide d’un DSL (CDML) </li></ul></ul><ul><ul><li>Couplage faible </li></ul></ul><ul><ul><li>Inversion du contrôle </li></ul></ul><ul><ul><li>Messages Asynchrones </li></ul></ul><ul><ul><li>Dynamique (connexion des services) </li></ul></ul><ul><ul><li>Orchestration </li></ul></ul><ul><li>Intégration dans OSGi , Eclipse </li></ul><ul><li>En mode distribué et décentralisé </li></ul><ul><ul><li>Publication, Recherche, Organisation en P2P. </li></ul></ul>
  19. 19. Technologies SOA : OSGi, Spring, SCA WebServices… <ul><li>Passerelle OSGi </li></ul><ul><li>Bundle = composant </li></ul><ul><li>POJO (Objets) </li></ul><ul><li>SOA locale </li></ul><ul><li>Protocoles de </li></ul><ul><li>communication </li></ul>Internet des Objets The Dynamic Module System for Java™
  20. 20. Publication et recherche des services <ul><li>Architecture Orientee Service ; SOA </li></ul>Appels synchrones sur des objets
  21. 21. Cycle de vie des Bundles: OSGi Gestion : ClassPath Dynamique
  22. 22. SOA de SmartTools au-dessus OSGi Gestionnaire de Composants Déclaration des Services Opération de connexion connectTo(C1, C2) Gestion des messages asynchrones Passerelle OSGi
  23. 23. Ingénierie dirigée par les modèles Multi paradigmes Auto utilisée
  24. 24. Intégration de SmartTools dans Eclipse
  25. 25. Programmable Overlay Network Publication et Recherche des Services en Pair à Pair
  26. 26. Service-Oriented Architecture + Overlay Network Une ressource = un ensemble de services = un composant P2P apporte une Architecture Décentralisée (intelligente) SOA apporte un Modèle de programmation (d’application)
  27. 27. Informations publiées dans Chord <ul><li>Services : à chaque création de composant </li></ul><ul><li>Nom de l’instance du composant-> </li></ul><ul><ul><li>Description des services du composant </li></ul></ul><ul><ul><li>ID unique du tuyau virtuel d’entrée du composant </li></ul></ul><ul><ul><li>ID du tuyau virtuel du gestionnaire de composants </li></ul></ul><ul><ul><li>Map de services de sorties qui donne pour chacun un ID du tuyaux virtuel de sortie </li></ul></ul><ul><li>VirtPipes : à chaque JVM </li></ul><ul><ul><li>ID-VirtPipe -> ID-VirtPipesService </li></ul></ul><ul><ul><li>ID-VirtPipesService -> liste des adresses IP + port </li></ul></ul>clé -> valeur put (clé, valeur) valeur ← get (clé) 0 3 6 9 8 11 1 2
  28. 28. Programmable Overlay Network Communication
  29. 29. Communication à la JXTA <ul><li>Tuyau Virtuel </li></ul><ul><li>Identificateur Unique par Tuyau </li></ul><ul><li>API lectures/écritures non bloquantes (NIO) </li></ul><ul><li>Publication/Recherche des tuyaux ou des services indépendant </li></ul>
  30. 30. Connexion entre A et B (unicast) ST Mod “ local” ST Mod “ PON” CM A CM VirtPipes TCP VirtPipes Chord NIO NIO Chord ST Mod “ local” ST Mod “ PON” A B B A A B PUT GET B
  31. 31. Tuyau de communication : unicast <ul><li>Pour chaque composant un tuyau d'entrée (service fourni) </li></ul><ul><ul><li>Publié dans le SON : nom du composant -> tuyau </li></ul></ul><ul><li>Connexion connect (A,B) , B à distance </li></ul><ul><ul><li>Le DS de A recherche dans le SON le tuyau d'entrée de B. </li></ul></ul><ul><ul><li>Le DS de A crée un proxy associé au tuyau d'entrée de B. </li></ul></ul><ul><ul><li>Le DS associe les sorties (service requis) de A à ce proxy B. </li></ul></ul><ul><ul><li>L'opération connect s'effectue aussi dans l'autre sens. </li></ul></ul><ul><li>Autres informations publiées sur le SON </li></ul><ul><ul><li>Tuyau de service d'un DS pour effectuer les connexions dans le sens inverse . </li></ul></ul>
  32. 32. Connexion entre A et B, B1 (multicast) ST Mod “ local” ST Mod “ PON” CM A CM VirtPipes TCP VirtPipes Chord NIO NIO Chord ST Mod “ local” ST Mod “ PON” GET A.a A.b PUT B B1 A.a A.b A.a A.b
  33. 33. Tuyau de communication : Multicast <ul><li>Communication en MultiCast, écriture d'un seul message pour l'envoi d'un message vers une même JVM. </li></ul><ul><li>Pour chaque service en sortie (écriture) d'un composant, publication d'un tuyau de sortie sur le SON. </li></ul><ul><li>connect (A,B) et connect (A,B1) , B et B1 sur la même JVM </li></ul><ul><ul><li>Le DS de B et B1 recherche sur le SON le tuyau de sortie (écriture) de A pour l'associé au service d'entrée (lecture) de B et B1 </li></ul></ul><ul><ul><li>Le DS associe ce tuyau au service d'entrée (lecture) de B et B1 </li></ul></ul><ul><li>Une seule écriture du message pour deux lectures </li></ul>
  34. 34. Distribution de PON <ul><li>Distribution sous http://gforge.inria.fr/projects/smarttools/ </li></ul><ul><ul><li>PON (Programmable Overlay Net) </li></ul></ul><ul><ul><ul><li>Les Bundles/Plugins de base pour PON. </li></ul></ul></ul><ul><ul><ul><li>Version Plugins ou Bundles </li></ul></ul></ul><ul><ul><li>Exemples en version Standalone </li></ul></ul><ul><ul><ul><li>Chat </li></ul></ul></ul><ul><ul><ul><li>Transport </li></ul></ul></ul><ul><li>Le site de PON http://www-sop.inria.fr /members/Didier.Parigot/ pon/ </li></ul><ul><ul><li>Informations sur l'installation et utilisation (source plugins/Eclipse) </li></ul></ul><ul><li>Développement en java </li></ul><ul><ul><li>Linux, Windows, Mac, Nokia 800 </li></ul></ul>
  35. 35. Petit logiciel http://www-sop.inria.fr/members/Didier.Parigot/pon/
  36. 36. Logiciel modulaire http://www-sop.inria.fr/members/Didier.Parigot/pon/
  37. 37. Underlay Network Virtual Pipes Overlay Network Pub/Sub Overlay Application SOA Conclusion Quelques perspectives Web Annuaire intelligent Protocole Serveur de requêtes WorkFlow Alignement
  38. 38. Résumé Architecture Décentralisée = Partagée Pour Tous = Mobile Pluridisciplinaire Petit logiciel
  39. 39. Programmable Overlay Network FIN www-sop.inria.fr/members/Didier.Parigot
  40. 40. Composition Structurelle A A’ g Traitement Donnée B f Transformation Donnée B g’ B’ Traitement g’  g O f Donnée

×