400 likes | 545 Views
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
E N D
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
Programmable Overlay Network Prototype de recherche 13 000 lignes de Java Avec Baptiste Boussemart (1 an d’ingénieur)
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
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
SOA de SmartTools C3 C1 C2 Passage en Réparti Pair à Pair ? DHT ConnectTo CM Instances de composant OSGi Bundles SOA Locale
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
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
PON: les quatre couches Navigateur C3 GWT Serveur Client Fournisseur CM Composants CHORD JXTA Chord VirtPipes OSGi Bundles OSGi
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
Programmable Overlay Network Quelques applications
Chat instantané en P2P • Les utilisateurs s'inscrivent (put) sur un SON et demandent à être en communication avec quelqu'un (get, connect)
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
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
Squelette de programmation Un DSL ConnectTo() Overlay Application SOA Put() Get() Overlay Network Pub/Sub Send() Receive() Connect() Underlay Network Virtual Pipes
Création d’un projet La programmation avec PON Ecriture d’un projet Ecriture des services Génération et lancement
Programmable Overlay Network Archictecture
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
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.
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
Publication et recherche des services • Architecture Orientee Service ; SOA Appels synchrones sur des objets
Cycle de vie des Bundles: OSGi Gestion : ClassPath Dynamique
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
Ingénierie dirigée par les modèles Multi paradigmes Auto utilisée
Programmable Overlay Network Publication et Recherche des Services en Pair à Pair
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
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é)
Programmable Overlay Network Communication
Communication à la JXTA Tuyau Virtuel Identificateur Unique par Tuyau API lectures/écritures non bloquantes (NIO) Publication/Recherche des tuyaux ou des services indépendant
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
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.
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
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
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
Petit logiciel http://www-sop.inria.fr/members/Didier.Parigot/pon/
Logiciel modulaire http://www-sop.inria.fr/members/Didier.Parigot/pon/
Conclusion Quelques perspectives Web Protocole WorkFlow Overlay Application SOA Annuaireintelligent Alignement Overlay Network Pub/Sub Serveur de requêtes Underlay Network Virtual Pipes
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 B Traitement Transformation A A’ g f Donnée Donnée B B’ Traitement g’ g’ g O f Donnée