Architecture Décentralisée

Post on 28-Nov-2014

1.622 views 0 download

description

 

Transcript of Architecture Décentralisée

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