View
1.622
Download
0
Category
Preview:
DESCRIPTION
Citation preview
1
Didier.Parigot@inria.fr2010
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
2
Didier.Parigot@inria.fr2010
Programmable Overlay Network
Prototype de recherche13 000 lignes de Java
Avec Baptiste Boussemart(1 an d’ingénieur)
3
Didier.Parigot@inria.fr2010
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
Didier.Parigot@inria.fr2010
Mes travaux de rechercheGrammaire 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 excellenceFabrique 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
Didier.Parigot@inria.fr2010
SOA de SmartTools
CM
C3
C2C1
Instances de composant
OSGiBundles
Passage en Réparti
Pair à Pair
?
DHT
SOA Locale
ConnectTo
6
Didier.Parigot@inria.fr2010
Organisation en P2P d’une application
Organisation Décentralisée
Client
Fournisseur
Fournisseur
Client
Client
Client
Client
Client
ClientClient
ClientArrivée d’un
ClientDépart d’un
Ses services
Ses services
Fournisseur
Ses servicesDépart d’un
Fournisseur Ses services
Arrivée d’un
7
Didier.Parigot@inria.fr2010
Pub/Sub des services en pair à pair
Réseaux de recouvrement
CHORD
Client
Fournisseur
Fournisseur
Fournisseur
Client
Client
Client
Client
Client
ClientClient
Client
Fournisseur
Ses services
Ses services
Ses services
SOA P2P
8
Didier.Parigot@inria.fr2010
PON: les quatre couches
OSGi
CM
C3
Fournisseur
Client
Bundles
Composants
ChordCHORD
OSGi
Navigateur
ServeurGWT
VirtPipes
JXTA
9
Didier.Parigot@inria.fr2010
Extensible DecentralizationSelf organization
Interoperability ScalabilitySecurity
Wireless, Ad-hoc Network, MobileInternet of Things
Discovery Invocation
CompositionPlanificationOrchestrationMobility
TopologyFault toleranceLoad BalancingReputation
The Future of The Internet
Services
Components
Protocols
Resources
Underlay NetworkVirtual Pipes
Overlay NetworkPub/Sub
Overlay ApplicationSOA
WEB
10
Didier.Parigot@inria.fr2010
Programmable Overlay Network
Quelques applications
11
Didier.Parigot@inria.fr2010
Chat instantané en P2P
Les utilisateurs s'inscrivent (put) sur un SON et demandent à être en communication avec quelqu'un (get, connect)
12
Didier.Parigot@inria.fr2010
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
UtilisateurPrestataire
13
Didier.Parigot@inria.fr2010
Publication d’information en P2P Publication d’une information (une liste) par un utilisateur
Publication, Connexion, Partage, Edition
Utilisateur
Application de type Web 3.0
Eric
Didier
14
Didier.Parigot@inria.fr2010
Underlay NetworkVirtual Pipes
Overlay NetworkPub/Sub
Overlay ApplicationSOA
Squelette de programmation Un DSL
ConnectTo()
Put()
Connect()
Get()
Send() Receive()
15
Didier.Parigot@inria.fr2010
Ecriture des services
La programmation avec PON
Création d’un projetEcriture d’un projetGénération et lancement
16
Didier.Parigot@inria.fr2010
Programmable Overlay Network
Archictecture
17
Didier.Parigot@inria.fr2010
Architecture Modulaire de PON
Communication
Publication/Recherche
VirtPipesVirtPipes
ST ST ModMod
““locallocal””
ST ST ModMod““PONPON
””
CMCM ST ST ModMod
...
Modules
VP VP VP VP ModMod... Modules
Key Key ValuesValuesStorageStorage
Services
KVS KVS ModMod... Modules
““OpeOpenchornchor
d”d”
18
Didier.Parigot@inria.fr2010
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
Didier.Parigot@inria.fr2010
Technologies SOA : OSGi, Spring, SCA WebServices…
•Passerelle OSGi•Bundle = composant•POJO (Objets)•SOA locale•Protocoles de communication
The Dynamic Module System for Java™
Internet des Objets
20
Didier.Parigot@inria.fr2010
Publication et recherche des services
•Architecture Orientee Service ; SOAArchitecture Orientee Service ; SOA
Appels synchrones sur des objets
21
Didier.Parigot@inria.fr2010
Cycle de vie des Bundles: OSGi
Gestion : ClassPath Dynamique
22
Didier.Parigot@inria.fr2010
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
Didier.Parigot@inria.fr2010
Ingénierie dirigée par les modèles
Multi paradigmesAuto utilisée
24
Didier.Parigot@inria.fr2010
Intégration de SmartTools dans Eclipse
25
Didier.Parigot@inria.fr2010
Programmable Overlay Network
Publication et Recherche des Services en Pair à Pair
26
Didier.Parigot@inria.fr2010
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
Didier.Parigot@inria.fr2010
Informations publiées dans Chord
00
33
66
99
88
1111
11
22
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é → valeurput(clé, valeur)valeur ← get(clé)
28
Didier.Parigot@inria.fr2010
Programmable Overlay Network
Communication
29
Didier.Parigot@inria.fr2010
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
Didier.Parigot@inria.fr2010
BB
Connexion entre A et B (unicast)
ST ST ModMod
““locallocal””
ST ST ModMod““PONPON
””
CMCM
AA
CMCM
VirtPipeVirtPipess
TCP
BB
AAA
VirtPipeVirtPipess
ChordChord
NIONIO NIONIO
ChordChord
ST ST ModMod
““locallocal””
ST ST ModMod““PONPON
””
A B
PUTGET
B
31
Didier.Parigot@inria.fr2010
Tuyau de communication : unicastPour 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
Didier.Parigot@inria.fr2010
Connexion entre A et B, B1 (multicast)
ST ST ModMod
““locallocal””
ST ST ModMod““PONPON
””
CMCM
AA
CMCM
VirtPipeVirtPipess
TCP
VirtPipeVirtPipess
ChordChord
NIONIO NIONIO
ChordChord
ST ST ModMod
““locallocal””
ST ST ModMod““PONPON
””
GET
A.a A.b
PUT
BB
B1B1
A.a
A.b
A.aA.a
A.bA.b
33
Didier.Parigot@inria.fr2010
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
Didier.Parigot@inria.fr2010
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
Didier.Parigot@inria.fr2010
Petit logiciel
http://www-sop.inria.fr/members/Didier.Parigot/pon/
36
Didier.Parigot@inria.fr2010
Logiciel modulaire
http://www-sop.inria.fr/members/Didier.Parigot/pon/
37
Didier.Parigot@inria.fr2010
Underlay NetworkVirtual Pipes
Overlay NetworkPub/Sub
Overlay ApplicationSOA
Conclusion Quelques
perspectives Web
Annuaire intelligent
Protocole
Serveur de requêtes
WorkFlow
Alignement
38
Didier.Parigot@inria.fr2010
Résumé
Architecture Décentralisée = Partagée
Pour Tous = Mobile
Pluridisciplinaire
Petit logiciel
39
Didier.Parigot@inria.fr2010
Programmable Overlay Network
FIN
www-sop.inria.fr/members/Didier.Parigot
40
Didier.Parigot@inria.fr2010
Composition Structurelle
A A’g
Traitement
Donnée
Bf
Transformation
Donnée
B g’ B’
Traitement
g’ g O f
Donnée
Recommended