La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Principes de persistance dans les applications orienté objet

Présentations similaires


Présentation au sujet: "Principes de persistance dans les applications orienté objet"— Transcription de la présentation:

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


Télécharger ppt "Principes de persistance dans les applications orienté objet"

Présentations similaires


Annonces Google