une infrastructure à base de composants pour la gestion personnalisée dobjets persistants luciano...
TRANSCRIPT
Une infrastructure à base de Une infrastructure à base de composants pour la gestion composants pour la gestion
personnalisée d’objets persistantspersonnalisée d’objets persistants
Luciano García-BañuelosLuciano García-Bañuelos
Phuong-Quynh DuongPhuong-Quynh Duong
Christine ColletChristine Collet
Équipe NODS, LSR/IMAGÉquipe NODS, LSR/IMAG
Grenoble, FRANCEGrenoble, FRANCE
BDA'02 Evry FRANCE 2
Systèmes de gestion de base de donnéesSystèmes de gestion de base de donnéesOne size fits all ?One size fits all ?
A l’heure actuelle, logiciel monolithique :A l’heure actuelle, logiciel monolithique : Ajouter/éliminer des fonctions est difficile !Ajouter/éliminer des fonctions est difficile !
L’empreinte d’un SGBD peut être coûteuse L’empreinte d’un SGBD peut être coûteuse dans dans certains contextes!certains contextes!
BDA'02 Evry FRANCE 3
Notre visionNotre vision
SGBD : un ensemble de services adaptables, SGBD : un ensemble de services adaptables, composablescomposables
Objectif : fournir une infrastructure Objectif : fournir une infrastructure permettant de construire des gestionnaires permettant de construire des gestionnaires de données persistantes de données persistantes ad hocad hoc
• PersistancePersistance• DuplicationDuplication• Tolérance Tolérance aux fautesaux fautes
• InterrogationInterrogation• Transactions Transactions mobilesmobiles etc …etc …
BDA'02 Evry FRANCE 4
PlanPlan
ContexteContexte
ApprocheApproche
InfrastructureInfrastructure
Travaux connexesTravaux connexes
ConclusionsConclusions
BDA'02 Evry FRANCE 5
ApprocheApproche
Une infrastructure à base de composantsUne infrastructure à base de composants Composants pour :Composants pour :
Construire des gestionnaires de données Construire des gestionnaires de données persistantes pour applications avec des persistantes pour applications avec des besoins particuliersbesoins particuliers
Développer des intergiciels base de donnéesDévelopper des intergiciels base de données Améliorer la réutilisation et le partage de Améliorer la réutilisation et le partage de
ressourcesressources
BDA'02 Evry FRANCE 6
DémarcheDémarche
SGBDSGBDmonolithiquemonolithique
RepriseReprisePersistancePersistance
CacheCacheCacheCache
StockagStockagee
StockagStockagee
JournalisatioJournalisationn
JournalisatioJournalisationnVerrouillaVerrouilla
gege
VerrouillaVerrouillagege
CacheCache
StockageStockage
JournalisationJournalisation
PropagationPropagationdes MàJdes MàJ
Gestion de la persistanceGestion de la persistanceSéparation des problèmesSéparation des problèmes
Caractérisation desCaractérisation descomposants et de leurcomposants et de leur
dépendancesdépendances
GestionnaireGestionnaireTransactionnelTransactionnel
Gestionnaire fiableGestionnaire fiablesans transactionsans transaction
AssemblageAssemblagedes gestionnairesdes gestionnaires
personnaliséspersonnalisés
BDA'02 Evry FRANCE 7
PlanPlan
ContexteContexte
ApprocheApproche
InfrastructureInfrastructure
Travaux connexesTravaux connexes
ConclusionsConclusions
BDA'02 Evry FRANCE 8
Architecture de l’infrastructureArchitecture de l’infrastructure
ReliablePersistenceManagerReliablePersistenceManager LogManagerLogManager
PersistenceManagerPersistenceManager
CacheManagerCacheManager
StorageManagerStorageManager
TransactionalPersistenceMngrTransactionalPersistenceMngr ConcurrencyControlConcurrencyControl
-Défaut d’objetsDéfaut d’objets-Propagation des Propagation des
MàJ MàJ
Reprise après panne Reprise après panne
Gestion de Gestion de transactionstransactions
BDA'02 Evry FRANCE 9
Composants : éléments d’architectureComposants : éléments d’architecture
PersistenceManagerPersistenceManager<<component>><<component>>
ICacheManagerICacheManager<<interface>><<interface>>
lookuplookupaddToCacheaddToCache
fixfixunfixunfix
IStorageManagerIStorageManager<<interface>><<interface>>
loadloadstorestorecreatecreate
destroydestroy
<<requires>>
IPersistenceManagerIPersistenceManager<<interface>><<interface>>
readIntentionreadIntentionreadCompletionreadCompletionwriteIntentionwriteIntention
writeCompletionwriteCompletion
<<provides>>
• Quand faut-il Quand faut-il matérialiser un objet?matérialiser un objet?
• Quand faut-il forcer le Quand faut-il forcer le stockage d’un objet?stockage d’un objet?
BDA'02 Evry FRANCE 10
Composants et assemblageComposants et assemblage
PersistenceManagerPersistenceManager
CacheManagerCacheManager
StorageManagerStorageManager
Gestion d’objets en mémoire d’exécution
(inclus gestion du remplacement)
Stockage d’objets :• Gestionnaire ad hoc fourni• SGBD à travers d’un adaptateur (wrapper)
Coordonne les transferts entre
cache/stockage :• Défaut d’objets• Propagation des MaJ
BDA'02 Evry FRANCE 11
Défaut d’objetsDéfaut d’objets
PersistenceManagerPersistenceManager
CacheManagerCacheManager
StorageManagerStorageManager
readIntention()readIntention()writeIntention()writeIntention()
Défaut d’objet
BDA'02 Evry FRANCE 12
Défaut d’objetsDéfaut d’objets
PersistenceManager:PersistenceManager: CacheManager:CacheManager: StorageManager:StorageManager:
readIntentionlookup
fix
load
addToCache
null
object
BDA'02 Evry FRANCE 13
Propagation des mises à jourPropagation des mises à jourPersistenceManagerPersistenceManager
CacheManagerCacheManager
StorageManagerStorageManager
readIntention()readIntention()writeIntention()writeIntention()
CacheEvectionListener
Eviction d’objets
Propagation des MàJ
readCompletion()readCompletion()writeCompletion()writeCompletion()
DirtyObjMgr FlushHintsListener
BDA'02 Evry FRANCE 14
Propagation des MàJPropagation des MàJ
CacheEventListener:CacheEventListener: DirtyObjectManager:DirtyObjectManager: StorageManager:StorageManager:
markDirty
flushstore
handleCacheEviction
BDA'02 Evry FRANCE 15
Propagation des MàJ :Propagation des MàJ :Responsabilité d’un nouveau sous-composant!Responsabilité d’un nouveau sous-composant!
PersistenceManagerPersistenceManager
CacheEvectionListenerCacheEvectionListener
FlushingHintsListenerFlushingHintsListener
CacheManagerCacheManager
GroupCommitListenerGroupCommitListener
TransactionalPersistenceMngrTransactionalPersistenceMngr
CheckpointingListenerCheckpointingListener
ReliablePersistenceManagerReliablePersistenceManager
BDA'02 Evry FRANCE 16
Reprise, séparation de problèmesReprise, séparation de problèmes
Un seul algorithme et deux problèmes : Un seul algorithme et deux problèmes : reprise après panne et reprise de reprise après panne et reprise de transactions (cf. ARIES)transactions (cf. ARIES)
Notre approche : architecture multicouche Notre approche : architecture multicouche et une méthode de reprise multi-niveauet une méthode de reprise multi-niveau
0 : Persistance non fiable0 : Persistance non fiable 1 : Reprise après panne1 : Reprise après panne 2 : Implantation du concept « transaction »2 : Implantation du concept « transaction »
BDA'02 Evry FRANCE 17
Reprise multi-niveauReprise multi-niveau
2 : Reprise des transactions (atomicité)2 : Reprise des transactions (atomicité)
1 : Reprise après panne (durabilité, permanence)1 : Reprise après panne (durabilité, permanence)
TypeType
d’enregist.d’enregist. MàJMàJ MàJMàJ
DéfaireDéfaire XX00 YY00
RefaireRefaire XX11 YY11 XX00YY00
Fin TxFin TxComp.Comp.Comp.Comp.
BDA'02 Evry FRANCE 18
Architecture multicoucheArchitecture multicouche
ReliablePersistenceManagerReliablePersistenceManager LogManagerLogManager
PersistenceManagerPersistenceManager
CacheManagerCacheManager
StorageManagerStorageManager
TransactionalPersistenceMngrTransactionalPersistenceMngr ConcurrencyControlConcurrencyControl
Durabilité
AtomicitéIsolation
BDA'02 Evry FRANCE 19
Reprise multi-niveau (Journalisation)Reprise multi-niveau (Journalisation)
TransPersMgr:TransPersMgr: LogManager:LogManager: PersistenceMgr:PersistenceMgr:
writeIntention
ReliablePersMgr:ReliablePersMgr:
writeLogRecord
Info pour défaire
commitwriteLogRecord
Info pour refaire
writeCompletion
writeCompletion
writeLogRecord
Enreg. validation
BDA'02 Evry FRANCE 20
Scénarios de déploiementScénarios de déploiement
CacheManagerCacheManager
StorageManagerStorageManager
PersistenceManagePersistenceManagerr
Systèmes sans MàJ• Cache logiciel• Support à l’interrogation (Vues matérialisées)
CacheManagerCacheManager
StorageManagerStorageManager
PersistenceManagePersistenceManagerr
ReliablePersistMngReliablePersistMngrr
LogManagerLogManager
Systèmes fiables (Checkpoint)• Mondes virtuels persistants• Gestion de sessions persistantes
BDA'02 Evry FRANCE 21
Scénarios de déploiement (cont.)Scénarios de déploiement (cont.)
CacheManagerCacheManager
StorageManagerStorageManager
PersistenceManagePersistenceManagerr
ReliablePersistManagerReliablePersistManager LogManagerLogManager
Systèmes transactionnels• Gestionnaires d’objets légers (cf. embarqués sur PDA)• Persistance au sein des serveurs d’application (cf. EJB)
TransactionalPersistMngrTransactionalPersistMngr ConcurrencyControConcurrencyControll
BDA'02 Evry FRANCE 22
PlanPlan
ContexteContexte
ApprocheApproche
InfrastructureInfrastructure
Travaux connexesTravaux connexes
ConclusionsConclusions
BDA'02 Evry FRANCE 23
Architectures SGBD Architectures SGBD adaptablesadaptables
Génération de code pour SGBDGénération de code pour SGBD Genesis [Batory et al., 1988]Genesis [Batory et al., 1988]
SGBD avec sous-système de types extensibleSGBD avec sous-système de types extensible Postgres [Stonebraker et. al., 1986]Postgres [Stonebraker et. al., 1986] Starburst [Schwarz et. al., 1986]Starburst [Schwarz et. al., 1986]
Boîte à outils (noyau SGBD)Boîte à outils (noyau SGBD) Exodus & Shore [Carey et. al., 1986 & 1994]Exodus & Shore [Carey et. al., 1986 & 1994] DASDBS [Schek et. al., 1990]DASDBS [Schek et. al., 1990]
Unité d’opération ou de déploiement :Unité d’opération ou de déploiement :
Systèmes avec toutes les fonctions BD!!Systèmes avec toutes les fonctions BD!!
BDA'02 Evry FRANCE 24
Notre positionNotre position
Générateur SGBD (+ nouveaux modèles de données)Générateur SGBD (+ nouveaux modèles de données)
FonctionsFonctionsembarquéesembarquées
SGBDSGBD
SGBD avec sous-système de types extensibleSGBD avec sous-système de types extensible
Noyau SGBD (boîte à outils)Noyau SGBD (boîte à outils)
Notre infr.Notre infr.
pas fiablepas fiable fiablefiable transactionneltransactionnel
Services NODSServices NODS
Ce n’est pas notre but!Ce n’est pas notre but!
Gestionnaire d’objets persistantsGestionnaire d’objets persistants
BDA'02 Evry FRANCE 25
SGBD à composants ?SGBD à composants ?
Quelques produits :Quelques produits :
Poet Navajo (FastObjects j2)Poet Navajo (FastObjects j2) Architecture modulaireArchitecture modulaire Ajout/élimination des modules pour :Ajout/élimination des modules pour :
importation/exportation de données XMLimportation/exportation de données XML journalisation et synchronisation des donnéesjournalisation et synchronisation des données
Microsoft OLE DBMicrosoft OLE DB Composants pour l’interrogation de donnéesComposants pour l’interrogation de données
BDA'02 Evry FRANCE 26
Standards industrielsStandards industriels
Plusieurs propositions :Plusieurs propositions : OMG : POS et PSSOMG : POS et PSS ODMG 3ODMG 3 Java JDOJava JDO
Une interface unique d’accèsUne interface unique d’accès Le manque d’une spécification détaillée Le manque d’une spécification détaillée
mène aux implantations « boîte noire »mène aux implantations « boîte noire »
BDA'02 Evry FRANCE 27
Notre positionNotre position
Notre infrastructureNotre infrastructure
ODMODMGG
ODMODMGG
PSSPSSPSSPSS
JDOJDOJDOJDO
PSSRuntime
PersistMgrStorageMgr
CacheMgr
RelPMgr LogMgr
besoinsbesoinscodagecodage
instanciationinstanciation
PSSPSSPSSPSS
BDA'02 Evry FRANCE 28
PlanPlan
ContexteContexte
ApprocheApproche
InfrastructureInfrastructure
Travaux connexesTravaux connexes
ConclusionsConclusions
BDA'02 Evry FRANCE 29
ConclusionsConclusions
Développement d’une infrastructure à Développement d’une infrastructure à composants pour la gestion d’objets composants pour la gestion d’objets persistantspersistants
Description des composants, et de leur Description des composants, et de leur interdépendancesinterdépendances
Reprise : Séparation de problèmesReprise : Séparation de problèmes Une méthode de reprise multi-niveauUne méthode de reprise multi-niveau Une architecture multicoucheUne architecture multicouche
BDA'02 Evry FRANCE 30
État actuel et perspectivesÉtat actuel et perspectivesPrototype fonctionnel : PERSEUSPrototype fonctionnel : PERSEUS
Persistance fiable sans transactionsPersistance fiable sans transactions Mondes virtuels persistants (Projet Européen IST)Mondes virtuels persistants (Projet Européen IST)
Persistance transactionnelPersistance transactionnel
Perspectives :Perspectives :
PERSEUS dans ObjectWebPERSEUS dans ObjectWeb Couplage PERSEUS & RS2.7 (Gestionnaires Couplage PERSEUS & RS2.7 (Gestionnaires
d’objets répartis)d’objets répartis)