1 / 40

Architectures des applications de l’Internet du Futur Décentralisées, Partagées, Mobile par tous Didier Parigot

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. Parigot@inria.fr. Programmable Overlay Network. Prototype de recherche 13 000 lignes de Java Avec Baptiste Boussemart

kristopher
Download Presentation

Architectures des applications de l’Internet du Futur Décentralisées, Partagées, Mobile par tous Didier Parigot

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Architectures des applications de l’Internet du Futur Décentralisées, Partagées, Mobile par tousDidier Parigot www-sop.inria.fr/members/Didier.Parigot Didier.Parigot@inria.fr

  2. Programmable Overlay Network Prototype de recherche 13 000 lignes de Java Avec Baptiste Boussemart (1 an d’ingénieur)

  3. Plan • Court CV • Survol rapide de PON • Contexte : Les quatre couches • Quelques petites applications de PON • Squelette de programmation • Architecture de PON • Architecture Orientée Service • Information publiées dans l’Overlay Network • Communication, Protocole de transport • Conclusion

  4. Mes travaux de recherche • Grammaire Attribuée :FNC-2 [1986-2000] • Programmation dirigée par la grammaire, [méta-modèle] • par Domain Specific Language (DSL) • Programmation générative par excellence • Fabrique logicielle :SmartTools [2000] • Programmation générative • Programmation par DSLs, par Aspects • Programmation par composants, Architecture Orientée Services (SOA) • Programmable Overlay Network :PON [2008] • Architecture Orientée Services en Pair à Pair

  5. SOA de SmartTools C3 C1 C2 Passage en Réparti Pair à Pair ? DHT ConnectTo CM Instances de composant OSGi Bundles SOA Locale

  6. Organisation en P2P d’une application Client Arrivée d’un Organisation Décentralisée Client Client Départ d’un Fournisseur Ses services Client Client Client Client Fournisseur Ses services Client Arrivée d’un Client Fournisseur Ses services Client Fournisseur Départ d’un Ses services

  7. Pub/Sub des services en pair à pair SOA P2P Client Client Fournisseur Client Réseaux de recouvrement CHORD Ses services Client Client Client Fournisseur Ses services Client Client Fournisseur Fournisseur Ses services Client

  8. PON: les quatre couches Navigateur C3 GWT Serveur Client Fournisseur CM Composants CHORD JXTA Chord VirtPipes OSGi Bundles OSGi

  9. The Future of The Internet Composition Planification Orchestration Mobility WEB Interoperability Scalability Security Services Overlay Application SOA Discovery Invocation Extensible Decentralization Self organization Components Resources Overlay Network Pub/Sub Topology Fault tolerance Load Balancing Reputation Protocols Underlay Network Virtual Pipes Wireless, Ad-hoc Network, Mobile Internet of Things

  10. Programmable Overlay Network Quelques applications

  11. Chat instantané en P2P • Les utilisateurs s'inscrivent (put) sur un SON et demandent à être en communication avec quelqu'un (get, connect)

  12. Localisation de Services • Le prestataire de services publie pour une zone géographique leurs services dans un SON : put() • l'utilisateur recherche en fonction de sa position, les services dans sa zone : get()et se connecte à un service Prestataire Utilisateur

  13. Publication d’information en P2P Eric • Publication d’une information (une liste) par un utilisateur Publication, Connexion, Partage, Edition Utilisateur Application de type Web 3.0 Didier

  14. Squelette de programmation Un DSL ConnectTo() Overlay Application SOA Put() Get() Overlay Network Pub/Sub Send() Receive() Connect() Underlay Network Virtual Pipes

  15. Création d’un projet La programmation avec PON Ecriture d’un projet Ecriture des services Génération et lancement

  16. Programmable Overlay Network Archictecture

  17. Architecture Modulaire de PON CM ST Mod “local” ST Mod “PON” ST Mod Services Modules ... VirtPipes VP VP Mod KVS Mod Communication ... ... Modules Modules “Openchord” Key Values Storage Publication/Recherche

  18. Architecture Orientée Services le « Run-time » de SmartTools • Architecture Orientée Services • Composant Orienté Services (publication, recherche) • Déclarative à l’aide d’un DSL (CDML) • Couplage faible • Inversion du contrôle • Messages Asynchrones • Dynamique (connexion des services) • Orchestration • Intégration dans OSGi, Eclipse • En mode distribué et décentralisé • Publication, Recherche, Organisation en P2P.

  19. Technologies SOA : OSGi, Spring, SCA WebServices… The Dynamic Module System for Java™ • Passerelle OSGi • Bundle = composant • POJO (Objets) • SOA locale • Protocoles de communication Internet des Objets

  20. Publication et recherche des services • Architecture Orientee Service ; SOA Appels synchrones sur des objets

  21. Cycle de vie des Bundles: OSGi Gestion : ClassPath Dynamique

  22. SOA de SmartTools au-dessus OSGiGestionnaire de Composants Déclaration des Services Opération de connexion connectTo(C1, C2) Gestion des messages asynchrones Passerelle OSGi

  23. Ingénierie dirigée par les modèles Multi paradigmes Auto utilisée

  24. Intégration de SmartTools dans Eclipse

  25. Programmable Overlay Network Publication et Recherche des Services en Pair à Pair

  26. Service-Oriented Architecture +Overlay Network P2P apporte une Architecture Décentralisée (intelligente) SOA apporte un Modèle de programmation (d’application) Une ressource = un ensemble de services = un composant

  27. 0 Informations publiées dans Chord 1 11 2 9 3 8 6 Services : à chaque création de composant Nom de l’instance du composant-> • Description des services du composant • ID unique du tuyau virtuel d’entrée du composant • ID du tuyau virtuel du gestionnaire de composants • Map de services de sorties qui donne pour chacun un ID du tuyaux virtuel de sortie VirtPipes : à chaque JVM • ID-VirtPipe -> ID-VirtPipesService • ID-VirtPipesService -> liste des adresses IP + port clé → valeur put(clé, valeur) valeur ← get(clé)

  28. Programmable Overlay Network Communication

  29. Communication à la JXTA Tuyau Virtuel Identificateur Unique par Tuyau API lectures/écritures non bloquantes (NIO) Publication/Recherche des tuyaux ou des services indépendant

  30. Connexion entre A et B (unicast) B A B TCP B CM CM A A ST Mod “local” ST Mod “PON” ST Mod “local” ST Mod “PON” VirtPipes VirtPipes NIO NIO PUT GET Chord Chord B A

  31. Tuyau de communication : unicast • Pour chaque composant un tuyau d'entrée (service fourni) • Publié dans le SON : nom du composant → tuyau • Connexion connect (A,B), B à distance • Le DS de A recherche dans le SON le tuyau d'entrée de B. • Le DS de A crée un proxy associé au tuyau d'entrée de B. • Le DS associe les sorties (service requis) de A à ce proxy B. • L'opération connect s'effectue aussi dans l'autre sens. • Autres informations publiées sur le SON • Tuyau de service d'un DS pour effectuer les connexions dans le sens inverse.

  32. Connexion entre A et B, B1 (multicast) A.a A B TCP B1 A.a A.b A.b CM CM ST Mod “local” ST Mod “PON” ST Mod “local” ST Mod “PON” VirtPipes VirtPipes NIO NIO GET PUT Chord Chord A.aA.b

  33. Tuyau de communication : Multicast • Communication en MultiCast, écriture d'un seul message pour l'envoi d'un message vers une même JVM. • Pour chaque service en sortie (écriture) d'un composant, publication d'un tuyau de sortie sur le SON. • connect (A,B) et connect (A,B1), B et B1 sur la même JVM • 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 • Le DS associe ce tuyau au service d'entrée (lecture) de B et B1 • Une seule écriture du message pour deux lectures

  34. Distribution de PON • Distribution sous http://gforge.inria.fr/projects/smarttools/ • PON (Programmable Overlay Net) • Les Bundles/Plugins de base pour PON. • Version Plugins ou Bundles • Exemples en version Standalone • Chat • Transport • Le site de PON http://www-sop.inria.fr/members/Didier.Parigot/pon/ • Informations sur l'installation et utilisation (source plugins/Eclipse) • Développement en java • Linux, Windows, Mac, Nokia 800

  35. Petit logiciel http://www-sop.inria.fr/members/Didier.Parigot/pon/

  36. Logiciel modulaire http://www-sop.inria.fr/members/Didier.Parigot/pon/

  37. Conclusion Quelques perspectives Web Protocole WorkFlow Overlay Application SOA Annuaireintelligent Alignement Overlay Network Pub/Sub Serveur de requêtes Underlay Network Virtual Pipes

  38. Résumé Architecture Décentralisée = Partagée Pour Tous = Mobile Pluridisciplinaire Petit logiciel

  39. Programmable Overlay Network FIN www-sop.inria.fr/members/Didier.Parigot

  40. Composition Structurelle B Traitement Transformation A A’ g f Donnée Donnée B B’ Traitement g’ g’  g O f Donnée

More Related