MATISSE - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

MATISSE

Description:

Comment attaquer la base. Depuis un langage non-objet - C. Matisse fournit des fonctions : ... Comment attaquer la base. Depuis un langage objet - Java. Gr ce un ... – PowerPoint PPT presentation

Number of Views:326
Avg rating:3.0/5.0
Slides: 24
Provided by: psi109
Category:
Tags: matisse | attaquer

less

Transcript and Presenter's Notes

Title: MATISSE


1
MATISSE
  • Les bases de données (orientés) objet

Nicolas DelestreLaboratoire PSI
2
Un peu dhistoire
3
Le SGBDOO MATISSE
  • Caractéristiques générales
  • SGBD Orienté Objet
  • Jusquà 4 Milliards dobjets
  • Taille maximale de chaque objet 4Go
  • Multiplateforme (Serveur Sun, DEC VAX, Windows
    NT, HP 9000/UX, etc.)
  • API en C, C, Smalltalk, JAVA
  • Accès aux données rapide (Technologie RAID)

4
Utilisation de le technologie RAID
2
1
3
1
2
3
2
3
5
Comparaison
  • Architecture RAID
  • Architecture Multi-Thread
  • Concurrence optimisé

Test avec 650 000 Documents
6
Architecture de MATISSE
  • Architecture client-serveur

Matisse Database Administrator
Matisse Editor
Clients
Silos
Serveur MATISSE
7
Le  versioning 
  • Principe
  • La base garde trace de toutes les versions des
    objets
  • Conséquences
  • Accès temporel, lecture cohérente sans bloquage

t2
t1
t1
t
t
t
O1
O2
O3
O1
O2
O3
8
Le méta-schéma
Mt Universal Method
Légende
Mt Internal FunctionMt DocumentationMt
Overridable
Mt Message
Classe
Relation
Mt SelectorMt Documentation
Attribut 1Attribut 2...
Mt Method
Mt Internal FunctionMt Documentation
Mt Relationship
Mt Attribute
Mt Class
Mt NameMt Relationship Check FunctionMt Before
Adding SuccessorMt After Adding SuccessorMt
Before Removing SuccessorMt After Removing
SuccessorMt Cardinality
Mt NameMt Default ValueMt Attribute Ckeck
FunctionMt Make Entry FunctionMt Before
Attribute Modification FunctionMt Type
Mt NameMt Instance Check Function
Mt Index
Mt NameMt Criteria SizeMt Criteria Order
9
Définition du schéma
  • Les modélisations objet sont implémentées telles
    quelles
  • Exemple

MtAttributes
MtName NomMtType String MtDefaultValue
10
Définition du schéma
11
Définition du schéma
12
Comment attaquer la base
  • Depuis un langage non-objet - C
  • Matisse fournit des fonctions
  • De connections à la base
  • MtConnect, MtDisconnect,etc
  • D accès à la base
  • MtStartTransaction, MtCommitTransaction, ...
  • D obtention d objet, attributs, relations,
    index
  • MtGetClassFromObject, MtGetValue,
    MtGetSuccessors,...
  • De requête
  • MtExecSQL,...

13
Comment attaquer la base
  • Depuis un langage objet - Java
  • Grâce à un driver ODBC/JDBC
  • Grâce à la persistance par héritage
  • On définie le schéma de la base
  • L éditeur peut alors générer un fichier ODL
  • On obtient alors les classes JAVA avec les
    méthodes d accès aux attributs et relations
  • Il ne reste plus qu à implémenter les méthodes
    utilisateurs

14
Exemple de fichier ODL
// --c-- // //
Generated schema description // in MT_ODL (c)
from ADB MATISSE // // Generation date Fri Feb
05 104129 1999 // Generated from database
personne on host LIRNTSERVEUR // // Interface
Definitions //---------------------- interface
Adresse persistent relationship
ListltPersonnegt AdresseToPersonne inverse
PersonnePersonneToAdresse interface
Personne persistent attribute MtString Nom
"" relationship ListltAdressegt
PersonneToAdresse inverse AdresseAdresseToPe
rsonne
15
Exemple de fichier JAVA
// --java-- // //
Personne.java // // Created with release 4.0.0 of
mt_odl (c) from ADB MATISSE // Creation date Fri
Feb 05 104301 1999 // the package and extends
declarations // are generated by mt_odl, do not
modify them public class Personne extends
MATISSE.MtObject // BEGIN generation of
accessors by mt_odl // DO NOT MODIFY UNTIL THE
'END of mt_odl generation' MARK BELOW //
generated with release 4.0.0 of mt_odl (c) from
ADB MATISSE // Date Fri Feb 05 104301
1999 // Class variables and methods //
--------------------------- // default
constructor public Personne(MATISSE.MtClass
aClass) throws MATISSE.MtException
super(aClass) // static methods public
static MATISSE.MtObjectCursor openInstanceCursor(i
nt numObjPerBuffer) throws MATISSE.MtException
return mtClass().mtOpenInstanceCursor(numObjPe
rBuffer)
16
Exemple de fichier JAVA
// Attributes // ---------- // Nom private
static MATISSE.MtAttribute nom null public
static MATISSE.MtAttribute nom() if (nom
null) nom MATISSE.MtAttribute.mtInitializer
("Nom", "Personne") return
nom public java.lang.String getNom() throws
MATISSE.MtException return mtGetString(nom())
public Personne setNom(java.lang.String val)
throws MATISSE.MtException mtSetString(nom(),
val) return this public Personne
clearNom() throws MATISSE.MtException
mtRemoveValue(nom()) return this
17
Exemple de fichier JAVA
// Relationships // ------------- //
PersonneToAdresse private static
MATISSE.MtRelationship personneToAdresse
null public static MATISSE.MtRelationship
personneToAdresse() if (personneToAdresse
null) personneToAdresse MATISSE.MtRelations
hip.mtInitializer("PersonneToAdresse",
"Personne") return personneToAdresse p
ublic MATISSE.MtObjectSetCursor
getPersonneToAdresse() throws MATISSE.MtException
return mtOpenSuccessorCursor(personneToAdresse
()) public int getPersonneToAdresseCardinalit
y() throws MATISSE.MtException return
mtGetSuccessorNumber(personneToAdresse()) pub
lic Personne appendPersonneToAdresse(MATISSE.MtObj
ectVector succs) throws MATISSE.MtException
mtAddSucc(personneToAdresse(),
succs) return this public Personne
appendPersonneToAdresse(MATISSE.MtObjectSetCursor
succs) throws MATISSE.MtException
18
Exemple de fichier JAVA
mtAddSucc(personneToAdresse(), succs) return
this public Personne appendPersonneToAdresse(
MATISSE.MtObject succ) throws MATISSE.MtException
mtAddSucc(personneToAdresse(), succ,
MATISSE.MT.APPEND) return this public
Personne pushPersonneToAdresse(MATISSE.MtObject
succ) throws MATISSE.MtException
mtAddSucc(personneToAdresse(), succ,
MATISSE.MT.FIRST) return this public
Personne insertPersonneToAdresse(MATISSE.MtObject
succ, MATISSE.MtObject after) throws
MATISSE.MtException mtAddSucc(personneToAdress
e(), succ, after) return this public
Personne removePersonneToAdresse(MATISSE.MtObjectV
ector succs) throws MATISSE.MtException
mtRemSucc(personneToAdresse(),
succs) return this public Personne
removePersonneToAdresse(MATISSE.MtObject succ)
throws MATISSE.MtException mtRemSucc(personneT
oAdresse(), succ) return this public
Personne clearPersonneToAdresse() throws
MATISSE.MtException mtClearSuccs(personneToAdr
esse()) return this
19
Un exemple SEMUSDI
  • SEMUSDI
  • est une encyclopédie multimédia sur les sciences
    de lingénieur,
  • permet à des enseignants, étudiants, chercheurs
    et ingénieurs de rechercher, consulter,
    télécharger et soumettre des documents via le
    Web,
  • est composé déléments de base (briques
    élémentaires)

20
Larchitecture de SEMUSDI
21
Le modèle objet de SEMUSDI
22
L architecture future de SEMUSDI
Java Script
Packages
Solution 1
Servlet
Java Script
MATISSE
Sockets, CORBA
Applet
Serveur Java
Java
RMI or HORB
Solution 2
Serveur
Client
23
Conclusion MATISSE
  • Une base de donnée
  • Fiable
  • Rapide
  • Souple à utiliser
  • Malheureusement
  • Peu répandu
  • Peu doutils d administration et développement
Write a Comment
User Comments (0)
About PowerShow.com