Télécharger la présentation
Publié parFrancine Gaillard Modifié depuis plus de 10 années
1
Principes de persistance dans les applications orienté objet
Encadrant : POISSONNIER Jean-Marie LAFFONT Benjamin TORGUET Patrice Étudiants : Travail Étude et Recherche Principes de persistance dans les applications orienté objet Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
2
Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
Sommaire Introduction Mapping Implémentation Schéma Problèmes Exemple Persistance Méthodes Points négatifs Frameworks disponibles Conclusion Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
3
Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
Introduction Principe de la persistance Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
4
Mapping : Implémentation
Description du problème Lien modèle objet ↔ modèle relationnel Modèle objet Identité, État, Comportement, Encapsulation Modèle relationnel Relation (table), N-uplets (lignes), Attributs (colonnes) Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
5
Mapping : Schéma de fonctionnement
Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
6
Mapping : Problèmes (1/2)
Difficultés d’implémentation Encapsulation Types de données Transaction Manipulation des données Différences de structure et d’intégrité Difficultés d’implémentation Encapsulation Problème d’héritage (public – privé) Types de données Pas de référence et pointeurs, Contraintes de taille maxi en relationnel et pas en objet (ex string-varchar) Transaction Pas de transaction en objet Manipulation des données Type d’accès au donnée différent entre objet(accesseurs) et relationnel (requêtes) Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
7
Mapping : Problèmes (2/2)
Différences de structure et d’intégrité Difficultés d’implémentation Différences de structure et d’intégrité 1/Portée des variables objet vers relationnel 2/ Contraintes d’intégrité de la base pseudo portée coté objet Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
8
Mapping : Arbre d’héritage de classe
Diagramme de classe Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
9
Mapping : Arbre d’héritage de classe
Mapping vertical Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
10
Mapping : Arbre d’héritage de classe
Mapping horizontal Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
11
Mapping : Arbre d’héritage de classe
Mapping filtré Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
12
Persistance : méthodes (1/3)
Géré par le programme Cohérence mémoire – programme avec ou sans cache et optimisation Comptage des lignes des tables Expiration des données Géré par la base Système de trigger Champs supplémentaires (Date ou Heure) Géré par le programme Cohérence mémoire – programme avec ou sans cache Lors d’un ajout le programme détermine si il faut envoyer les requêtes, les grouper, les optimiser, … Comptage de la base Count(*) Expiration des données Timeout threadé de façon externe au thread principal et géré en toute transparence Géré par la base Système de trigger Lors des différentes actions sur la base, celle-ci lève un événement Champs supplémentaires (Date ou Heure) Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
13
Persistance : méthodes (2/3)
Géré par une tierce partie Système de cache distribué (ex : JCache) Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
14
Persistance : points négatifs (3/3)
Performance Non adaptable à tous les projets Contraintes sur l’écriture de code Tests supplémentaires Césure entre le relationnel et l’objet Pas de polymorphisme Pas de type-checker robuste Performance Non adaptable à tous les projets Contraintes sur l’écriture de code annotation , Type de donnée (type-checker robuste) Tests supplémentaires Césure entre le relationnel et l’objet Pas de correspondance exacte : R->O Classes non robuste, peux d’objet et O->R Problème de mapping… (CF JM) Pas de polymorphisme Etudiant – Professeur Homme alors exemple : Pas de liste générique Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
15
Frameworks disponibles (1/3)
Hibernate – Nhibernate Java et C# Permet de faire toutes les générations relationnel – Objet Top-Down, Bottom-Up, Middle-Out, Meet in the middle Compatible toute base de donnée Facile à prendre en main Open source Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
16
Frameworks disponibles (2/3)
IBatis Java et .Net Proche du SQL et bonnes performances Optimisé cache de requête Open source Rapide à mettre en place Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
17
Frameworks disponibles (3/3)
Toplink Java Plutôt adapté Oracle Mature, testé et supporté par Oracle Adapté aux applications en cluster Propriétaire Demande une certaine maîtrise Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
18
Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
Conclusion Technologie jeune Historique Tous les problèmes ne sont pas résolus Multiples avantages Choix difficile Relationnel milieu des années 70 Révolution objet début des années 90 Fort rapprochement des deux Réduit les efforts, les couts et le temps de développement Faire abstraction du lien relationnel – objet Choix utilisation O/N et quel FW ? Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
19
Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
Questions ? Principes de persistance - POISSONNIER Jean-Marie et LAFFONT Benjamin
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.