www.objectweb.org dream: un canevas logiciel à composants pour la construction dintergiciels...
TRANSCRIPT
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
www.objectweb.org CFSE - 2 - 06/04/2005
Plan
Contexte et motivations
DREAM
Expérimentations
Conclusion et travaux en cours
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
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
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, …
www.objectweb.org CFSE - 6 - 06/04/2005
Plan
Contexte et motivations
DREAM
Expérimentations
Conclusion et travaux en cours
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
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é
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
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
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)
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
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
www.objectweb.org CFSE - 14 - 06/04/2005
Plan
Contexte et motivations
DREAM
Expérimentation
Conclusion et travaux en cours
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)
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)
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
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%)
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
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
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
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
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
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
www.objectweb.org CFSE - 25 - 06/04/2005
Plan
Contexte et motivations
DREAM
Expérimentations
Conclusion et travaux en cours
www.objectweb.org CFSE - 26 - 06/04/2005
Conclusion
DREAMCanevas logiciel à composants pour la construction de MOMFlexiblePerformantOpen source : ObjectWeb (http://dream.objectweb.org)
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
www.objectweb.org CFSE - 28 - 06/04/2005
Questions?
http://dream.objectweb.org
http://sardes.inrialpes.fr/~quema
http://sardes.inrialpes.fr
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
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
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
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)
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
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
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é)
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