36
www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction d’Intergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq, V. Quéma , J.-B. Stefani Projet Sardes, INRIA-LSR-IMAG

Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

Embed Size (px)

Citation preview

Page 1: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org

DREAM: un Canevas Logiciel à Composants pour la Construction d’Intergiciels Orientés Messages Configurables

CFSE7 avril 2005

M. Leclercq, V. Quéma, J.-B. StefaniProjet Sardes, INRIA-LSR-IMAG

Page 2: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 2 - 06/04/2005

Plan

Contexte et motivations

DREAM

Expérimentations

Conclusion et travaux en cours

Page 3: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 3 - 06/04/2005

Contexte

Intergiciels orientés messages (MOM pour Message-Oriented Middleware)

Permettent des échanges de messages asynchrones entre composants répartis

MonitoringGlue entre applications faiblement couplées [Banavar -

DISC99]

Divers modèles de communications existentFiles de messages répartiesPublication/AbonnementÉvénement/RéactionBus à messages

Page 4: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 4 - 06/04/2005

Motivations (1)

Les MOM existantsFournissent une API figée

JMS (JORAM, WebSphere MQ, iBus, …)Ad-Hoc (BEA MessageQ, Gryphon, SIENA, …)

Ont des PNF coûteuses et peu configurables

Ont une architecture monolithique

Le développeur d’applications est contraint à des abstractions fixées

Page 5: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 5 - 06/04/2005

Motivations (2)

Nécessité de construire des MOM configurables

FonctionnellementConstruire divers paradigmes de communications

–Message passing, événement/réaction, publication/souscription

Non fonctionnellementFournir diverses propriétés non fonctionnelles

–Ordonnancement, persistance, sécurité, …

ArchitecturalementAdaptés à divers types d’environnements

–PC, PDA, téléphones mobiles, …

Page 6: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 6 - 06/04/2005

Plan

Contexte et motivations

DREAM

Expérimentations

Conclusion et travaux en cours

Page 7: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 7 - 06/04/2005

Proposition

DREAM (Dynamic Reflective Asynchronous Middleware)

Canevas logiciel pour la construction d’intergiciels asynchrones

Un modèle de composants + définitions d’abstractionsLibrairie de composantsDes outils permettant de décrire, configurer, déployer et

administrer des MOM

N’impose aucune abstractionAPI

FonctionnelleDe contrôle

Architecturale

Page 8: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 8 - 06/04/2005

Modèle de composants

Les composants DREAM sont une spécialisation des composants Fractal [CBSE 2004] Récursif, Réflexif, Extensible

Activités + messages 2 interfaces particulières : Push et Pull

sous composant

liaison

contenu

interface serveur

contrôleur

interfaces de contrôle

composant partagé

Page 9: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 9 - 06/04/2005

Messages

Les Messages sont des objets Java encapsulant

Des chunksDes sous-messages

Gestionnaires de messagesComposants partagés qui gèrent le cycle de vie des

messages et des chunksUtilisation de pools

PerformancesPolitiques de gestion de ressources

Page 10: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 10 - 06/04/2005

Activités

Un composant DREAM peut être actif ou passif

Un composant actif définit des tâches à exécuter

Les tâches sont enregistrées auprès de gestionnaires d’activités

Un appel sur une interface cliente peut intervenirDans le flot d’exécution d’un composant effectuant un appel sur

une interface serveurDans l’activité du composant

Page 11: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 11 - 06/04/2005

Gestionnaire d’activités

Composant partagé qui contient des tâches et des ordonnanceurs

Activity manager

Task(thread)

FIFO Scheduler

Task A1 Task A2 Task B

Component A

Third party

Component B

taskManager

schedulerManager

taskController

Task(thread)

schedule

executeregister(A1)

Page 12: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 12 - 06/04/2005

Librairie de composants

Files Permettent le stockage des message

Transformateurs Transforment les messages reçus en entrés

Routeurs Routent les messages reçus en entrée sur une (ou plusieurs) sortie(s)

Pompes

Diffusion Diffusion de messages à un ensemble de destinations

Codec Encode/décode les messages

Sérialisateurs/désérialisateurs

Synchro Mutex, Sémaphores, Condition, Lecteur/Redacteur

Page 13: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 13 - 06/04/2005

Outils

Configuration, déploiementFractal ADL

Langage extensible pour la description des composants et de leurs interconnexions

Usine extensible pour le déploiement distribué

Extension DREAM Prise en compte des composants patrimoniaux (ajouts

dynamiques de composants)

ContrôleFractal-explorer

Navigation dans une application en cours d’exécutionReconfiguration + monitoring

Page 14: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 14 - 06/04/2005

Plan

Contexte et motivations

DREAM

Expérimentation

Conclusion et travaux en cours

Page 15: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 15 - 06/04/2005

Expérimentations

ButsVérifier que

Plusieurs personnalités peuvent être construites à l’aide de DREAM

Il y a un gain en configurabilitéLes performances sont comparables pour des MOM

fonctionnellement équivalentsLes performances peuvent être meilleures quand les MOM sont

configurés de façon adéquate

ExpérimentationsLPBCast : Lightweight Probabilistic BroadcastSEDA : Staged Event-Driven ArchitectureJoram : implantation open-source de l’API JMS (ObjectWeb)

Page 16: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 16 - 06/04/2005

Architecture d’un serveur Joram

Network1 Network2

Channel

Engine

Prx T1Q1

Exécution d’«agents »• persistance• atomicité

Communication (TCP, HTTP, …)• ordonnancement (FIFO, causal)

Page 17: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 17 - 06/04/2005

Router

Atomic Reactor

Agent Factory

Agent Repository

MessageT

oNotif

NotifT

oMessage

ConduitRouter

Causal Sorter

DestinationResolver

ChannelOut ChannelIn

DestinationResolver

ChannelOut ChannelIn

AtomicityProtocolEngine

Repository

Network 1 Network 2

Page 18: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 18 - 06/04/2005

Joram - évaluation

Gain en configurabilitéPossibilité de changer (dynamiquement) les propriétés non fonctionnellesPossibilités d’avoir plusieurs EnginesPossibilité de changer le nombre de threads (organisation des flots

d’exécution)

PerformancesÉquivalentes pour la même configurationSensiblement meilleures pour certaines configurations dans certaines

conditionsInférieures en totalement reconfigurable

Empreinte mémoireLa version DREAM a une empreinte mémoire supérieure (< 10%)

Page 19: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 19 - 06/04/2005

Router

Atomic Reactor

Agent Factory

Agent Repository

MessageT

oNotif

NotifT

oMessage

ConduitRouter

Causal Sorter

DestinationResolver

ChannelOut ChannelIn

DestinationResolver

ChannelOut ChannelIn

AtomicityProtocolEngine

Repository

Network 1 Network 2

Page 20: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 20 - 06/04/2005

Agent Factory

Agent Repository

MessageT

oNotif

NotifT

oMessage

ConduitRouter

DestinationResolver

ChannelOut ChannelIn

DestinationResolver

ChannelOut ChannelIn

EngineRepository

Network 1 Network 2

Page 21: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 21 - 06/04/2005

Router

Atomic Reactor

Agent Factory

Agent Repository

MessageT

oNotif

NotifT

oMessage

ConduitRouter

Causal Sorter

DestinationResolver

ChannelOut ChannelIn

DestinationResolver

ChannelOut ChannelIn

AtomicityProtocolEngine

Repository

Network 1 Network 2

Page 22: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 22 - 06/04/2005

Router

Atomic Reactor

Agent Factory

Agent Repository

MessageT

oNotif

NotifT

oMessage

ConduitRouter

Causal Sorter

DestinationResolver

ChannelOut ChannelIn

DestinationResolver

ChannelOut ChannelIn

AtomicityProtocolEngine

Repository

Network 1 Network 2

Page 23: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 23 - 06/04/2005

Router

Atomic Reactor

Agent Factory

Agent Repository

MessageT

oNotif

NotifT

oMessage

ConduitRouter

Causal Sorter

DestinationResolver

ChannelOut ChannelIn

DestinationResolver

ChannelOut ChannelIn

AtomicityProtocolEngine

Repository

Network 1 Network 2

stockage

stockage

ordonnancement

Page 24: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 24 - 06/04/2005

Router

Atomic Reactor

Agent Factory

Agent Repository

MessageT

oNotif

NotifT

oMessage

TCPChannelIn(Pull)

TCPChannelOut(Push)

RepositoryAtomicityProtocol

Engine

ChannelOut(Pull)

TCPChannelIn(Push)

Conduit

Network (détails non montrés)

RemoteRepresentative

Vers les autres serveurs

Équipement mobile Proxy

Équipement aux ressources restreintes

Page 25: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 25 - 06/04/2005

Plan

Contexte et motivations

DREAM

Expérimentations

Conclusion et travaux en cours

Page 26: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 26 - 06/04/2005

Conclusion

DREAMCanevas logiciel à composants pour la construction de MOMFlexiblePerformantOpen source : ObjectWeb (http://dream.objectweb.org)

Page 27: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 27 - 06/04/2005

Travaux en cours

Migration de Joram (12/2005)Haute disponibilitéPersistance

Support pour les sessionsImplantation de personnalités synchrones (RMI)

Communication de groupeOrdre total uniforme en collaboration avec EPFL (Guerraoui)

AOP + composants pour traçage des consommations de ressources

Système de types dans Fraktal pour vérifier la validité des assemblages de composants DREAM

Page 28: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 28 - 06/04/2005

Questions?

http://dream.objectweb.org

http://sardes.inrialpes.fr/~quema

http://sardes.inrialpes.fr

Page 29: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 29 - 06/04/2005

Schedulers and tasks

Schedulers are responsible for mapping higher level tasks onto lower-level tasks

Schedule server interfaceExecute client interfaceImplement a scheduling policy

FIFO, round-robin, with priority, ...

TasksExecute server interfaceSchedule client interfaceThree kinds of tasks

Higher-level tasks = applicative tasksLowest-level tasks = threads (Execute = Runnable)Middle-level tasks = allow inter-schedulers scheduling

Page 30: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 30 - 06/04/2005

SEDA-Dream architecture

PumpEvent

Queue EventHandler

Stage

Activity manager

Task(thread)

taskManager

threadManager

taskControllerFunctional interfaces

batchingAttribute

ActivityManager

Stage

StagePumpTask

Task(thread)

Task(thread)

Scheduler

Page 31: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 31 - 06/04/2005

Performances (1)

Compare performance of the same application running on SEDA and its Dream based implementation

Three stages organized in a ringEach stage forwards received messages to the next stage in

the ringMeasure

The average time it takes for a message to be processed by all stages

Page 32: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 32 - 06/04/2005

Performances (2)

Average time (ms)

SEDA 0,415

DREAM (non-reconf) 0,410

DREAM (reconf) 0,420

Dream non-reconfOptimized binding

Interface object bypassed

No lifecycle interceptorNon stoppable application

No execution cost (and low memory cost)

Page 33: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 33 - 06/04/2005

Performances (3)

Average time (ms)

SEDA 1,31

DREAM (reconf) 1 thread per stage 1,38

DREAM (reconf) 1 thread per server 1,23

Implementation of HaboobHTTP server made of 10 stages

Message transmissionDisk I/OHTTP protocol (reception, parsing, caching, sending, etc.)

Average time for an HTTP request to be processed

Page 34: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 34 - 06/04/2005

Configurability assessment

Event handlers have direct control over threadsAllows avoiding the use of locks, …

Activity managers can be shared between several stages

Common scheduling policy for accessing shared state

Every architectural element is a componentReconfigurationOrdered queues

Allows changing the concurrency model

Page 35: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 35 - 06/04/2005

Travaux connexes

Sous-systèmes de communicationsClick, Coyote/Cactus

Modèles de composants limités et platsPas de configuration distribuéeConfiguration statique

Modèles de composants générauxCOM/Knit

Configuration statiqueModèle de composants platPas de contrôlePas de configuration distribuée

OpenORB, dynamicTAO, …Ciblent les intergiciels synchrones (ORB, Multimedia)Modèles de composants centralisésCapacitées de contrôle limitées (méta-niveau limité)

Page 36: Www.objectweb.org DREAM: un Canevas Logiciel à Composants pour la Construction dIntergiciels Orientés Messages Configurables CFSE 7 avril 2005 M. Leclercq,

www.objectweb.org CFSE - 36 - 06/04/2005

LCC

LCC

LCC

Connecteur asynchrone

Composite

Sonde CPU

Sonde Mémoire

LCC

Reconfiguration

Console de Supervision

Topic

Domaine de causalité

Liaisonsécurisée

LCC

Bus