Architectures des applications de l’Internet du Futur  Décentralisées, Partagées, Mobile  par tous   Didier Parigot www-so...
Programmable Overlay Network Prototype de recherche 13 000 lignes de Java Avec Baptiste Boussemart (1 an d’ingénieur)
Plan <ul><li>Court CV </li></ul><ul><li>Survol rapide de PON </li></ul><ul><li>Contexte : Les quatre couches </li></ul><ul...
Mes travaux de recherche <ul><li>Grammaire Attribuée :   FNC-2  [1986-2000] </li></ul><ul><ul><li>Programmation dirigée pa...
SOA de SmartTools  CM C3 C2 C1 Instances de composant SOA Locale ConnectTo OSGi Bundles Passage en Réparti Pair à Pair  ? ...
Organisation en P2P d’une application Organisation Décentralisée Client Fournisseur Fournisseur Client Client Client Clien...
Pub/Sub des services en pair à pair Réseaux de recouvrement CHORD Client Fournisseur Fournisseur Fournisseur Client Client...
PON: les quatre couches OSGi CM C3 Fournisseur Client Bundles Composants OSGi Chord CHORD Navigateur Serveur GWT VirtPipes...
Wireless,  Ad-hoc Network, Mobile Internet of Things The Future of The Internet Extensible  Decentralization Self organiza...
Programmable Overlay Network Quelques applications
Chat instantané en P2P <ul><li>Les utilisateurs s'inscrivent ( put ) sur un SON et demandent à être en communication avec ...
Localisation de Services <ul><li>Le prestataire de services publie pour une zone géographique leurs services dans un SON :...
Publication  d’information en P2P <ul><li>Publication d’une information (une liste) par un utilisateur  Publication, Conne...
Underlay Network Virtual Pipes Overlay Network Pub/Sub Overlay Application SOA Squelette de programmation  Un DSL  Connect...
La programmation avec PON  Ecriture des services  Création d’un projet Ecriture d’un projet Génération et lancement
Programmable Overlay Network Archictecture
Architecture Modulaire de PON Communication Publication/Recherche VirtPipes ST Mod “ local” ST Mod “ PON” CM VP  Key Value...
Architecture Orientée Services  le «  Run-time  » de SmartTools <ul><li>Architecture Orientée Services </li></ul><ul><ul><...
Technologies SOA :  OSGi, Spring, SCA WebServices… <ul><li>Passerelle OSGi </li></ul><ul><li>Bundle = composant </li></ul>...
Publication et recherche des services <ul><li>Architecture Orientee Service ; SOA </li></ul>Appels synchrones sur des objets
Cycle de vie des Bundles: OSGi Gestion : ClassPath Dynamique
SOA de SmartTools au-dessus OSGi Gestionnaire de Composants Déclaration des Services Opération de connexion connectTo(C1, ...
Ingénierie dirigée par les modèles  Multi paradigmes Auto utilisée
Intégration de SmartTools dans Eclipse
Programmable Overlay Network Publication et Recherche des Services  en Pair à Pair
Service-Oriented Architecture  + Overlay Network Une ressource = un ensemble de services  = un composant P2P apporte une A...
Informations publiées  dans Chord <ul><li>Services  : à chaque création de composant </li></ul><ul><li>Nom de l’instance d...
Programmable Overlay Network Communication
Communication à la JXTA <ul><li>Tuyau Virtuel </li></ul><ul><li>Identificateur Unique par Tuyau </li></ul><ul><li>API lect...
Connexion entre A et B (unicast) ST Mod “ local” ST Mod “ PON” CM A CM VirtPipes TCP VirtPipes Chord NIO NIO Chord ST Mod ...
Tuyau de communication : unicast <ul><li>Pour chaque composant un tuyau d'entrée (service fourni) </li></ul><ul><ul><li>Pu...
Connexion entre A et B, B1 (multicast) ST Mod “ local” ST Mod “ PON” CM A CM VirtPipes TCP VirtPipes Chord NIO NIO Chord S...
Tuyau de communication : Multicast <ul><li>Communication en MultiCast, écriture d'un seul message pour l'envoi d'un messag...
Distribution de PON <ul><li>Distribution sous  http://gforge.inria.fr/projects/smarttools/ </li></ul><ul><ul><li>PON (Prog...
Petit logiciel http://www-sop.inria.fr/members/Didier.Parigot/pon/
Logiciel modulaire http://www-sop.inria.fr/members/Didier.Parigot/pon/
Underlay Network Virtual Pipes Overlay Network Pub/Sub Overlay Application SOA Conclusion  Quelques perspectives Web Annua...
Résumé Architecture Décentralisée = Partagée Pour Tous = Mobile Pluridisciplinaire Petit logiciel
Programmable Overlay Network FIN www-sop.inria.fr/members/Didier.Parigot
Composition Structurelle A A’ g Traitement Donnée B f Transformation Donnée B g’ B’ Traitement g’    g O f Donnée
Prochain SlideShare
Chargement dans…5
×

Architecture Décentralisée

1 730 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 730
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

×