1 [email protected] 2010 architectures des applications de linternet du futur...
TRANSCRIPT
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 [email protected]
2
Programmable Overlay Network
Prototype de recherche13 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 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
SOA de SmartTools
CM
C3
C2C1
Instances de composant
OSGiBundles
Passage en Réparti
Pair à Pair
?
DHT
SOA Locale
ConnectTo
6
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
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
PON: les quatre couches
OSGi
CM
C3
Fournisseur
Client
Bundles
Composants
ChordCHORD
OSGi
Navigateur
ServeurGWT
VirtPipes
JXTA
9
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
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
UtilisateurPrestataire
13
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
Underlay NetworkVirtual Pipes
Overlay NetworkPub/Sub
Overlay ApplicationSOA
Squelette de programmation Un DSL
ConnectTo()
Put()
Connect()
Get()
Send() Receive()
15
Ecriture des services
La programmation avec PON
Création d’un projetEcriture d’un projetGénération et lancement
17
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
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…
•Passerelle OSGi•Bundle = composant•POJO (Objets)•SOA locale•Protocoles de communication
The Dynamic Module System for Java™
Internet des Objets
20
Publication et recherche des services
•Architecture Orientee Service ; SOAArchitecture Orientee Service ; SOA
Appels synchrones sur des objets
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
25
Programmable Overlay Network
Publication et Recherche des Services en Pair à Pair
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
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é)
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
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
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
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
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
37
Underlay NetworkVirtual Pipes
Overlay NetworkPub/Sub
Overlay ApplicationSOA
Conclusion Quelques
perspectives Web
Annuaire intelligent
Protocole
Serveur de requêtes
WorkFlow
Alignement
38
Résumé
Architecture Décentralisée = Partagée
Pour Tous = Mobile
Pluridisciplinaire
Petit logiciel
40
Composition Structurelle
A A’g
Traitement
Donnée
Bf
Transformation
Donnée
B g’ B’
Traitement
g’ g O f
Donnée