Luciano García-Bañuelos Une infrastructure à base de composants pour la gestion personnalisée d’objets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe NODS, LSR/IMAG Grenoble, FRANCE
Systèmes de gestion de base de données One size fits all ? A l’heure actuelle, logiciel monolithique : Ajouter/éliminer des fonctions est difficile ! L’empreinte d’un SGBD peut être coûteuse dans certains contextes! BDA'02 Evry FRANCE
Notre vision SGBD : un ensemble de services adaptables, composables Objectif : fournir une infrastructure permettant de construire des gestionnaires de données persistantes ad hoc Persistance Duplication Tolérance aux fautes Interrogation Transactions mobiles etc … BDA'02 Evry FRANCE
Plan Contexte Approche Infrastructure Travaux connexes Conclusions BDA'02 Evry FRANCE
Approche Une infrastructure à base de composants Composants pour : Construire des gestionnaires de données persistantes pour applications avec des besoins particuliers Développer des intergiciels base de données Améliorer la réutilisation et le partage de ressources BDA'02 Evry FRANCE
Gestion de la persistance Séparation des problèmes Démarche Persistance Cache SGBD monolithique Reprise Journalisation Verrouillage Stockage Gestion de la persistance Séparation des problèmes Caractérisation des composants et de leur dépendances Gestionnaire fiable sans transaction Assemblage des gestionnaires personnalisés Propagation des MàJ Cache Stockage Journalisation Gestionnaire Transactionnel BDA'02 Evry FRANCE
Plan Contexte Approche Infrastructure Travaux connexes Conclusions BDA'02 Evry FRANCE
Architecture de l’infrastructure Gestion de transactions TransactionalPersistenceMngr ConcurrencyControl ReliablePersistenceManager LogManager Reprise après panne CacheManager Défaut d’objets Propagation des MàJ PersistenceManager StorageManager BDA'02 Evry FRANCE
Composants : éléments d’architecture Quand faut-il matérialiser un objet? Quand faut-il forcer le stockage d’un objet? ICacheManager <<interface>> lookup addToCache fix unfix IStorageManager load store create destroy <<requires>> PersistenceManager <<component>> IPersistenceManager <<interface>> readIntention readCompletion writeIntention writeCompletion <<provides>> BDA'02 Evry FRANCE
Composants et assemblage Gestion d’objets en mémoire d’exécution (inclus gestion du remplacement) Coordonne les transferts entre cache/stockage : Défaut d’objets Propagation des MaJ CacheManager PersistenceManager StorageManager Stockage d’objets : Gestionnaire ad hoc fourni SGBD à travers d’un adaptateur (wrapper) BDA'02 Evry FRANCE
Défaut d’objets PersistenceManager CacheManager readIntention() writeIntention() StorageManager BDA'02 Evry FRANCE
Défaut d’objets PersistenceManager: CacheManager: StorageManager: readIntention lookup load addToCache null object fix BDA'02 Evry FRANCE
Propagation des mises à jour PersistenceManager CacheEvectionListener Eviction d’objets Propagation des MàJ DirtyObjMgr FlushHintsListener CacheManager readIntention() writeIntention() StorageManager readCompletion() writeCompletion() BDA'02 Evry FRANCE
Propagation des MàJ CacheEventListener: DirtyObjectManager: StorageManager: markDirty handleCacheEviction flush store BDA'02 Evry FRANCE
Propagation des MàJ : Responsabilité d’un nouveau sous-composant! GroupCommitListener TransactionalPersistenceMngr CheckpointingListener ReliablePersistenceManager PersistenceManager FlushingHintsListener CacheManager CacheEvectionListener BDA'02 Evry FRANCE
Reprise, séparation de problèmes Un seul algorithme et deux problèmes : reprise après panne et reprise de transactions (cf. ARIES) Notre approche : architecture multicouche et une méthode de reprise multi-niveau 0 : Persistance non fiable 1 : Reprise après panne 2 : Implantation du concept « transaction » BDA'02 Evry FRANCE
Reprise multi-niveau 2 : Reprise des transactions (atomicité) Type d’enregist. MàJ Défaire X0 Y0 Refaire X1 Y1 Comp. Comp. Fin Tx 1 : Reprise après panne (durabilité, permanence) Y0 X0 BDA'02 Evry FRANCE
Architecture multicouche Atomicité Isolation TransactionalPersistenceMngr ConcurrencyControl ReliablePersistenceManager LogManager Durabilité CacheManager PersistenceManager StorageManager BDA'02 Evry FRANCE
Reprise multi-niveau (Journalisation) TransPersMgr: ReliablePersMgr: LogManager: PersistenceMgr: writeIntention writeLogRecord Info pour défaire commit writeCompletion writeLogRecord Info pour refaire writeCompletion writeLogRecord Enreg. validation BDA'02 Evry FRANCE
Scénarios de déploiement Systèmes sans MàJ Cache logiciel Support à l’interrogation (Vues matérialisées) CacheManager PersistenceManager StorageManager CacheManager StorageManager PersistenceManager ReliablePersistMngr LogManager Systèmes fiables (Checkpoint) Mondes virtuels persistants Gestion de sessions persistantes BDA'02 Evry FRANCE
Scénarios de déploiement (cont.) TransactionalPersistMngr ConcurrencyControl ReliablePersistManager LogManager CacheManager PersistenceManager StorageManager Systèmes transactionnels Gestionnaires d’objets légers (cf. embarqués sur PDA) Persistance au sein des serveurs d’application (cf. EJB) BDA'02 Evry FRANCE
Plan Contexte Approche Infrastructure Travaux connexes Conclusions BDA'02 Evry FRANCE
Architectures SGBD adaptables Génération de code pour SGBD Genesis [Batory et al., 1988] SGBD avec sous-système de types extensible Postgres [Stonebraker et. al., 1986] Starburst [Schwarz et. al., 1986] Boîte à outils (noyau SGBD) Exodus & Shore [Carey et. al., 1986 & 1994] DASDBS [Schek et. al., 1990] Unité d’opération ou de déploiement : Systèmes avec toutes les fonctions BD!! BDA'02 Evry FRANCE
Gestionnaire d’objets persistants Notre position Gestionnaire d’objets persistants SGBD Notre infr. pas fiable fiable transactionnel Services NODS Ce n’est pas notre but! Noyau SGBD (boîte à outils) SGBD avec sous-système de types extensible Générateur SGBD (+ nouveaux modèles de données) Fonctions embarquées BDA'02 Evry FRANCE
SGBD à composants ? Quelques produits : Poet Navajo (FastObjects j2) Architecture modulaire Ajout/élimination des modules pour : importation/exportation de données XML journalisation et synchronisation des données Microsoft OLE DB Composants pour l’interrogation de données BDA'02 Evry FRANCE
Standards industriels Plusieurs propositions : OMG : POS et PSS ODMG 3 Java JDO Une interface unique d’accès Le manque d’une spécification détaillée mène aux implantations « boîte noire » BDA'02 Evry FRANCE
Notre position ODMG PSS PSS JDO codage PSSRuntime besoins RelPMgr PersistMgr StorageMgr CacheMgr RelPMgr LogMgr instanciation Notre infrastructure BDA'02 Evry FRANCE
Plan Contexte Approche Infrastructure Travaux connexes Conclusions BDA'02 Evry FRANCE
Conclusions Développement d’une infrastructure à composants pour la gestion d’objets persistants Description des composants, et de leur interdépendances Reprise : Séparation de problèmes Une méthode de reprise multi-niveau Une architecture multicouche BDA'02 Evry FRANCE
État actuel et perspectives Prototype fonctionnel : PERSEUS Persistance fiable sans transactions Mondes virtuels persistants (Projet Européen IST) Persistance transactionnel Perspectives : PERSEUS dans ObjectWeb Couplage PERSEUS & RS2.7 (Gestionnaires d’objets répartis) BDA'02 Evry FRANCE