Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano...

30
Une infrastructure à Une infrastructure à base de composants pour base de composants pour la gestion personnalisée la gestion personnalisée d’objets persistants d’objets persistants Luciano García-Bañuelos Luciano García-Bañuelos Phuong-Quynh Duong Phuong-Quynh Duong Christine Collet Christine Collet Équipe NODS, LSR/IMAG Équipe NODS, LSR/IMAG Grenoble, FRANCE Grenoble, FRANCE

Transcript of Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano...

Page 1: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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

Page 2: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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!

Page 3: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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 …

Page 4: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

BDA'02 Evry FRANCE 4

PlanPlan

ContexteContexte

ApprocheApproche

InfrastructureInfrastructure

Travaux connexesTravaux connexes

ConclusionsConclusions

Page 5: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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

Page 6: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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

Page 7: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

BDA'02 Evry FRANCE 7

PlanPlan

ContexteContexte

ApprocheApproche

InfrastructureInfrastructure

Travaux connexesTravaux connexes

ConclusionsConclusions

Page 8: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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

Page 9: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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?

Page 10: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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

Page 11: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

BDA'02 Evry FRANCE 11

Défaut d’objetsDéfaut d’objets

PersistenceManagerPersistenceManager

CacheManagerCacheManager

StorageManagerStorageManager

readIntention()readIntention()writeIntention()writeIntention()

Défaut d’objet

Page 12: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

BDA'02 Evry FRANCE 12

Défaut d’objetsDéfaut d’objets

PersistenceManager:PersistenceManager: CacheManager:CacheManager: StorageManager:StorageManager:

readIntentionlookup

fix

load

addToCache

null

object

Page 13: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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

Page 14: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

BDA'02 Evry FRANCE 14

Propagation des MàJPropagation des MàJ

CacheEventListener:CacheEventListener: DirtyObjectManager:DirtyObjectManager: StorageManager:StorageManager:

markDirty

flushstore

handleCacheEviction

Page 15: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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

Page 16: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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 »

Page 17: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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.

Page 18: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

BDA'02 Evry FRANCE 18

Architecture multicoucheArchitecture multicouche

ReliablePersistenceManagerReliablePersistenceManager LogManagerLogManager

PersistenceManagerPersistenceManager

CacheManagerCacheManager

StorageManagerStorageManager

TransactionalPersistenceMngrTransactionalPersistenceMngr ConcurrencyControlConcurrencyControl

Durabilité

AtomicitéIsolation

Page 19: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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

Page 20: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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

Page 21: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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

Page 22: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

BDA'02 Evry FRANCE 22

PlanPlan

ContexteContexte

ApprocheApproche

InfrastructureInfrastructure

Travaux connexesTravaux connexes

ConclusionsConclusions

Page 23: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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!!

Page 24: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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

Page 25: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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

Page 26: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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 »

Page 27: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

BDA'02 Evry FRANCE 27

Notre positionNotre position

Notre infrastructureNotre infrastructure

ODMODMGG

ODMODMGG

PSSPSSPSSPSS

JDOJDOJDOJDO

PSSRuntime

PersistMgrStorageMgr

CacheMgr

RelPMgr LogMgr

besoinsbesoinscodagecodage

instanciationinstanciation

PSSPSSPSSPSS

Page 28: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

BDA'02 Evry FRANCE 28

PlanPlan

ContexteContexte

ApprocheApproche

InfrastructureInfrastructure

Travaux connexesTravaux connexes

ConclusionsConclusions

Page 29: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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

Page 30: Une infrastructure à base de composants pour la gestion personnalisée dobjets persistants Luciano García-Bañuelos Phuong-Quynh Duong Christine Collet Équipe.

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)