architecture décentralisée

40
1 [email protected] 2010 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]

Upload: parigot

Post on 28-Nov-2014

1.622 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Architecture Décentralisée

1

[email protected]

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]

Page 2: Architecture Décentralisée

2

[email protected]

Programmable Overlay Network

Prototype de recherche13 000 lignes de Java

Avec Baptiste Boussemart(1 an d’ingénieur)

Page 3: Architecture Décentralisée

3

[email protected]

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

Page 4: Architecture Décentralisée

4

[email protected]

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

Page 5: Architecture Décentralisée

5

[email protected]

SOA de SmartTools

CM

C3

C2C1

Instances de composant

OSGiBundles

Passage en Réparti

Pair à Pair

?

DHT

SOA Locale

ConnectTo

Page 6: Architecture Décentralisée

6

[email protected]

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

Page 7: Architecture Décentralisée

7

[email protected]

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

Page 8: Architecture Décentralisée

8

[email protected]

PON: les quatre couches

OSGi

CM

C3

Fournisseur

Client

Bundles

Composants

ChordCHORD

OSGi

Navigateur

ServeurGWT

VirtPipes

JXTA

Page 9: Architecture Décentralisée

9

[email protected]

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

Page 10: Architecture Décentralisée

10

[email protected]

Programmable Overlay Network

Quelques applications

Page 11: Architecture Décentralisée

11

[email protected]

Chat instantané en P2P

Les utilisateurs s'inscrivent (put) sur un SON et demandent à être en communication avec quelqu'un (get, connect)

Page 12: Architecture Décentralisée

12

[email protected]

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

Page 13: Architecture Décentralisée

13

[email protected]

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

Page 14: Architecture Décentralisée

14

[email protected]

Underlay NetworkVirtual Pipes

Overlay NetworkPub/Sub

Overlay ApplicationSOA

Squelette de programmation Un DSL

ConnectTo()

Put()

Connect()

Get()

Send() Receive()

Page 15: Architecture Décentralisée

15

[email protected]

Ecriture des services

La programmation avec PON

Création d’un projetEcriture d’un projetGénération et lancement

Page 16: Architecture Décentralisée

16

[email protected]

Programmable Overlay Network

Archictecture

Page 17: Architecture Décentralisée

17

[email protected]

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”

Page 18: Architecture Décentralisée

18

[email protected]

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.

Page 19: Architecture Décentralisée

19

[email protected]

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

Page 20: Architecture Décentralisée

20

[email protected]

Publication et recherche des services

•Architecture Orientee Service ; SOAArchitecture Orientee Service ; SOA

Appels synchrones sur des objets

Page 21: Architecture Décentralisée

21

[email protected]

Cycle de vie des Bundles: OSGi

Gestion : ClassPath Dynamique

Page 22: Architecture Décentralisée

22

[email protected]

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

Page 23: Architecture Décentralisée

23

[email protected]

Ingénierie dirigée par les modèles

Multi paradigmesAuto utilisée

Page 24: Architecture Décentralisée

24

[email protected]

Intégration de SmartTools dans Eclipse

Page 25: Architecture Décentralisée

25

[email protected]

Programmable Overlay Network

Publication et Recherche des Services en Pair à Pair

Page 26: Architecture Décentralisée

26

[email protected]

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)

Page 27: Architecture Décentralisée

27

[email protected]

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é)

Page 28: Architecture Décentralisée

28

[email protected]

Programmable Overlay Network

Communication

Page 29: Architecture Décentralisée

29

[email protected]

Communication à la JXTA

Tuyau Virtuel

Identificateur Unique par Tuyau

API lectures/écritures non bloquantes (NIO)

Publication/Recherche des tuyaux ou des services indépendant

Page 30: Architecture Décentralisée

30

[email protected]

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

Page 31: Architecture Décentralisée

31

[email protected]

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.

Page 32: Architecture Décentralisée

32

[email protected]

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

Page 33: Architecture Décentralisée

33

[email protected]

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

Page 34: Architecture Décentralisée

34

[email protected]

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

Page 35: Architecture Décentralisée

35

[email protected]

Petit logiciel

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

Page 36: Architecture Décentralisée

36

[email protected]

Logiciel modulaire

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

Page 37: Architecture Décentralisée

37

[email protected]

Underlay NetworkVirtual Pipes

Overlay NetworkPub/Sub

Overlay ApplicationSOA

Conclusion Quelques

perspectives Web

Annuaire intelligent

Protocole

Serveur de requêtes

WorkFlow

Alignement

Page 38: Architecture Décentralisée

38

[email protected]

Résumé

Architecture Décentralisée = Partagée

Pour Tous = Mobile

Pluridisciplinaire

Petit logiciel

Page 39: Architecture Décentralisée

39

[email protected]

Programmable Overlay Network

FIN

www-sop.inria.fr/members/Didier.Parigot

Page 40: Architecture Décentralisée

40

[email protected]

Composition Structurelle

A A’g

Traitement

Donnée

Bf

Transformation

Donnée

B g’ B’

Traitement

g’ g O f

Donnée