Upload
belahcen-benzaratahar
View
74
Download
1
Embed Size (px)
Citation preview
B www.bolodewo.com
الجزائر - اآللي لإلعالم العليا الوطنية -المدرسةEcole Nationale Supérieure d’Informatique-ESI-Alger
PRÉSENTÉ PAR:BENZARA TAHAR Belahcen et MATOUK Meriem
PROPOSÉ ET ENCADRÉ PAR
Mr. Mostefai Mohamed AmineDimanche 27 septembre 2015
Une approche méthodique pour l’évaluation des ORMs
Présentation du sujet du master:
B www.bolodewo.com
MISE EN CONTEXTE
B www.bolodewo.com
3
2003 2004 2005 2006 20070%
2%
4%
6%
8%
10%
12%
14%
16%
Real Annual Growth in US
US. Software and Related Services All US Industries
[Source: OECD, STAN Database for Structural Analysis, ed. 2008]
Plus de 260 Milliards $ dans la valeur de l’économie des Etats Unis!
Taux de croissance estimé à 14% Comparé à 2% pour le reste des secteurs!
L’INDUSTRIE DES LOGICIELS
B www.bolodewo.com
4QUELQUES INTERPRÉTATIONS
2 La demande élevée sur les logiciels (3,6 Milliards de logiciel étaient déployés en 2008!)
3 L’évolution rapide des technologies (frameworks)
1 Très bonne conditions de travail Salaire moyen est 85k $195% du moyen national
[Source: OECD, STAN Database for Structural Analysis, ed. 2008]
B www.bolodewo.com
Langages OOP (Java, C++, C#, PHP, …etc)01
Le reste des paradigmes (C,Asm, SQL, Matlab, …etc)
02
<57%Langages de
programmation orienté objet
43% 57%
5THE TIOBE PROGRAMMING COMMUNITY INDEX
B www.bolodewo.com6
L’ORIENTÉ OBJET
Modularité Réutilisabilité
Extensibilité
6
B www.bolodewo.com
< 80%Les SGBDs
relationnels
db-engines.com (September 2015)
Les SGBD Relationnels01
Les SGBDs Clé-Valeurs03
Autres…04
Document Datastore02
6,6% 9% 81%3,4%
7
B www.bolodewo.com8
LE MODÈLE RELATIONNEL
Solidité Maturité,Standardisati
on
Flexibilité
SQL
8
B www.bolodewo.com9
LE MODÈLE RELATIONNEL ET LE MODÈLE OBJETModèle Relationnel Modèle Objet
Enregistrement
Relation
Table
Instance
Référence d’objet
Classe
30% du code Pour régler l’incompabilité
entre les deux modèles
30%
9
B www.bolodewo.com
TYPE DE DONNÉESObjet: Nombres complexesRelationnel: /
IDENTITÉ
HÉRITAGEObjet: support existeRelationnel: /
GRANULARITÉObjet: Une classe peut avoir plusieurs niveaux Relationnel: /
ASSOCIATIONSObjet: Navigation par référence d’objetRelationnel: Clé étrangères => Navigation par des jointures
Innapdation d’impédance
Objet: Adresse mémoire…etcRelationnel: Clé primaire
10
B www.bolodewo.com
SOLUTION : Le Mapping Objet Relationnel 11
Augmenter la productivité
Accélérer le cycle de développement
Eliminer la duplication du code
Assurer une persistance
transparente
B www.bolodewo.com
PROBLEMATIQUE
B www.bolodewo.com
Multiple de choix
13
LA DIFFUCLTÉ DE
L’ÉVALUATIONDapper
Data ObjectNHibernate
SubSonic
LLGB Gen
Entity Framework
NEO
Data Access
Speed Light
ECO
DX XPO
Quick Object
NHidryte
Speed Light
EntitySpaces
Active Record
iBatis
Linq2Sql
B www.bolodewo.com
subjectivité
Multiple de choix
14
LA DIFFUCLTÉ DE
L’ÉVALUATION
Absence d’un processus d ’évaluation
Manque d’expertise
B www.bolodewo.com
OBJECTIFS
B www.bolodewo.com
Analyse des performances
Classification méthodologique
des critères
Processus d’évaluation des ORMs
Critères d’évaluation des ORMs
16
Définir une approche pour l’évaluation et la comparaison des
ORMs
Objectifs
B www.bolodewo.com17
PLAN DE LA PRÉSENTATION
Synthèse bibliographiq
ue
Conception et
Implémentation
Le Mapping Objet
Relationnel
Processus d’évaluation
des ORMs
Test et
Résultats
Conclusion et
perspectives
B www.bolodewo.com
LE MAPPING OBJET RELATIONNEL
B www.bolodewo.com
19Le Mapping Objet Relationnel
Base de donnéesORM
fichier de mapping
fichier de mapping
Application
Objets + traitement métiers
Présentation
DéfinitionLe mapping objet-relationnel est une technique qui tente d’automatiser le passage entre le monde orienté objet et le monde relationnel, en illuminant la duplication des données, le coût de la maintenance et la susceptibilité aux erreurs associées.
B www.bolodewo.com
20Le Mapping Objet Relationnel (Exemple)
AbsenceAbsenceIDDateEstJustifeJustificationEdutiantID
EtudiantEtudiantIDNomPrenom
Le modèle Relationnel Le modèle Objet
B www.bolodewo.com
21
Techniques d’optimisation
Une couche d’abstraction pour offrir la transparence aux développeurs
Plus de traitements
Il faut des techniques pour optimiser les performances
B www.bolodewo.com
22
Techniques d’optimisation
Avec ses deux niveaux:
Local (L1) Global (L2)
Le cache
Future QueriesMinimiser les accès à la base de données
Mises a jour retardées
Lazy/Eager loadingMinimiser les accès
a la base de données
Stratégies de chargement
B www.bolodewo.com
SYNTHESE BILBLIOGRAPHIQUE
B www.bolodewo.com
Systematic Review 24
ORM Evaluation Criteria
Evaluation Of ORMs
ORM Performance Analysis
Exposing the ORM cache
ORM impedance mismatch
Planification de la recherche
Exécution du protocole de la recherche
Conclure la revue et exposer les résultat
1
3
2
B www.bolodewo.com
Planification de la recherche25
Définir l’objectif de la recherche Identifier les criteres d’evaluation des ORMs
Définir les questions de la recherche
• Quels sont les démarche suivie• Quels sont les criteres utlisés• Quels sont les principaux résultats obtenus
Planification de la recherche Exécution du protocole de la recherche Conclure la revue et exposer ses résultats
B www.bolodewo.com
Exécution du protocole de la recherche26
Planification de la recherche Exécution du protocole de la recherche Conclure la revue et exposer ses résultats
Sélection des sources de données nécessaire pour faire la recherche
Sources utilisées: ACM, IEE; Springer Link, WOS, Littératures grises
Sélection des études primaires • Critères d’inclusions • Critères d’exlcusion
Extraction des données • Etudes sélectionnées : 21 études• Extraire les critères d’évaluation
1
3
2
B www.bolodewo.com
Conclure la revue 27
Base de données Résultats totaux Articles en Anglais Articles sélectionnées
ACM 175 175 6 ‘2 en commun avec IEEE’
Web Of Science 146 145 2
IEEE 91 91 4
Springer Link 172 1453
‘1 en commun avec WOS’ ‘1 en commun avec ACM’
Literature grise - - 10
Total 584 556 21
Planification de la recherche Exécution du protocole de la recherche Conclure la revue et exposer ses résultats
B www.bolodewo.com
Limitations28
Les résultats sont incomplets
Les résultats ne sont pas mis à jour
Nombre de publications limité
Absence d’une méthodologie d’évaluation
B www.bolodewo.com
PROCESSUS D’EVALUATION DES ORMS
B www.bolodewo.com
30Modèle de qualité des ORMs
(Basé sur ISO 9126)
Line 3D InfographicMaintenabilité
Fonctionnalité
Utilisabilité
Efficacité
Portabilité
Pertinence
Facilité de compréhension Facilité d’apprentissage
Facilité d’analyse Facilité de modification
Comportement temporel Utilisation des ressources
Facilité d’adaptation Interchangeabilité
Caractéristique Sous Caractéristique
B www.bolodewo.com
31Le processus de sélection des ORMs
0302
01
Définition des besoins, spécifications fonctionnelles et techniques
et des resources
03Spécifications techniques
01Spécifications fonctionnelles
02Modèle de données
04Resource disponibles
B www.bolodewo.com
32Le processus de sélection des ORMs 01Choix des critères
d’évaluation
0302
01
w
Choix et pondération des critères
Définition des besoins, spécifications fonctionnelles et techniques
et des resources
B www.bolodewo.com
33
Mapping
Classification des critères
• Support de mapping de l’héritage, les relations n-m, 1-n…etc
B www.bolodewo.com
34
Mapping
Gestion• Support des mise à jours en cascade
• Support des transactions
• …etc
Classification des critères
B www.bolodewo.com
35
MappingLorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur elementum posuere pretium.
Gestion
Requêtes
• Qualité de requêtes générées
• Support de LINQ • Methode de requêtes
supportées (LINQ, SQL …etc.)
Classification des critères
B www.bolodewo.com
36
Mapping
Gestion
Requêtes
Performance
• Temps de réponce pour les différentes opration CRUD
• …etc
Classification des critères
B www.bolodewo.com
37
Mapping
Gestion
Requêtes
Performanceadipiscing elit. Curabitur elementum
posuere pretium.
Optimisations
• Support de cache• Support de batch• Support de
chargement immediat/ différé
• …etc
Classification des critères
B www.bolodewo.com
38
Mapping
Gestion
Requêtes
Cout
Performance
Optimisations
• Prix• Open Source/
Commercial• Temps
d’apprentissage• …etc
Classification des critères
B www.bolodewo.com
39
Mapping
Gestion
Requêtes
Ecosystème
Cout
Performance
Optimisations
• SGBDs supportées• Plateformes
Supportés• …etc
Classification des critères
B www.bolodewo.com
40
Mapping
Gestion
Requêtes
Ecosystème
Cout
Performance
Optimisations
• Maturité, Communauté ..,etc
Classification des critères
Support et apprentissage
B www.bolodewo.com
41Sélection basée sur les attributs de qualité
Modèle de qualité des ORMs Correspondance
Caractéristique Sous Caractéristiques Mapping Gestion Requête Performance et Optimisation Ecosystème Support Cout
Fonctionnalité Pertinence (suitability) X X X X X
Utilisabilité
Facilité de compréhension (understandability) X X
Facilité de d’apprentissage (learnability) X X
Efficacité
Comportement temporel (time behavior) X X
Utilisation des ressources (resource utilization) X X
MaintenabilitéFacilité d’analyse (analyzability) X X
Facilité de modification (changeability) X X X
PortabilitéFacilité d’adaptation (adaptability) X
Interchangeabilité (replaceability) X X X X X
B www.bolodewo.com
42Le processus de sélection des ORMs
Critère important mais il n’est pas requis
Critère très important mais pas requis
Critère requis
Critère peu important, son absence n’affecte pas le choix de l’ORM.
4
3
2
1
01Choix des critères d’évaluation
02Attribution des poids
0302
01 Choix et pondération des critères
Définition des besoins, spécifications fonctionnelles et techniques et des
resources
B www.bolodewo.com
43Le processus de sélection des ORMs
0302
01
w
Définition des besoins, spécifications fonctionnelles et techniques et des
resources
Calcul de score et sélection de l’ORM
Choix et pondération des critères
Sélection selon La méthode MAUT
B www.bolodewo.com
44Méthode de sélection
MAUT (Multi-Attribut Utility Theory)
Méthode quantitative de comparaison qui applique des fonctions utilitaires pour transformer les mesures des différentes concept à une échelle commune afin
d’établir la décision la plus pertinente
Poids
Critère jCritère iCritère kNiveau
de support
B www.bolodewo.com
45Méthode de sélection
• Ci=1: support complet
• Ci=x: support partiel
• Ci=0,5: support mais avec extension
• Ci=0: Absence du support
Niveau de support du critère i
Sr=
r=
Calcule du score
Sr Score associé au ORM r
Pi Poids associé au critère i
Ci Niveau de support du critère i
B www.bolodewo.com
46Niveau de Support (Ci)
Un critère peut être
satisfait par plusieurs ORM
mais:
A Avec un effort de mise en place différent
B Avec des performances différentes
B www.bolodewo.com
CONCEPTION ET IMPLEMENTATION
B www.bolodewo.com
48Architecture
DAL Couche d’access aux
données
Test SuitesLogiques des tests
Test Runner Logique d’exécution des
test
ViewCouche présentation
Com
mon
View
ViewModel
Model
B www.bolodewo.com
49Mesure de performance
Tests de CUD• CUD simple• CUD par lot
Test de Stress• Opérations concurrentielles (10 clients)
Tests de Sélection• LINQ• SQL Dérivé• SQL Natif
Comparaison avec ADO.NET
B www.bolodewo.com
Complexité des tests de sélections Test Taille du résultat
retourné Cotés explorés
Simple Sélection par ID 1 Efficacité de la recherche
Sélection des 1000 premiers employés 1000 Matérialisation des objets
Obtenir la liste des employés qui ont la fonction ‘Design Engineer’ 100 Traitement de l’héritage
Obtenir la liste des employés du département ‘production’ 180 Relation n-n+ héritage
Obtenir le total des frais des ventes ordonnés livré pendant l’année 2007 groupés par cité de livraison.
371Qualité du SQL généré pour une requête complexe (fonction d’agrégation + jointures + trie + groupement)
50
B www.bolodewo.com
51Benchmark utiliséTable Enregistrements
Person 19 972
Address 19 972
Employee 290
EmployeeDepartmentHistory 295
Department 16
PurchaseOrderHeader 4 012
ShipMethod 5
Customer 19 820
SalesOrderHeader 31 465
SaledTerritory 10
B www.bolodewo.com
ORM KING
Oracle + SQL
Server
DevExpress Chart controls
DevExpress MVVM
Windows Presentation Foundation
Visual Studio Commynity
2015
.NET framework
4,5
Technologies utilisées
MVVMWPF
52Outils utilisés
B www.bolodewo.com
53
Version 2015.2.624.1Version 4.0.4.4000 Inclu dans .NETVerion 6.1.3
ORMs comparés Référentiel
B www.bolodewo.com
TESTS ET RESULTATS
B www.bolodewo.com
Ultimate NHibernate Entity Framework
Data Access
55
Approches de mapping
Types de données
Mapping d’une table sur plusieurs classesMapping d’une classe sur plusieurs tables
Mapping de l’héritage
Support des vues
Procédures stockées
Code first, database first, model first
n-m, 1-n, 1-1
Oui
OUi
TPC, TPH, TPT
OUi
OUi
Code first, database first, model first
n-m, 1-n, 1-1
Oui
OUi
TPC, TPH, TPT
OUi
OUi
Code first, database first, model first
n-m, 1-n, 1-1
Oui
OUi
TPC, TPH, TPT
OUi
OUi
Comparaison des caractéristiques
La Catégorie Mapping
B www.bolodewo.com
Ultimate NHibernate Entity Framework
Data Access
Mises a jour en cascade
Références circulaires
Liens bidirectionnels
Support des transactions
Gestion de la concurence
Etats des données
Support de la validation
Oui
Oui
Oui
OUi
Optimiste, Pessimiste
OUi
OUi
Oui
Oui
Oui
OUi
Optimiste, Pessimiste
OUi
OUi
Oui
Oui
Oui
OUi
Optimiste, Pessimiste
OUi
OUi
Migration automatique OUi OUi OUi
Comparaison des caractéristiques 56
La Catégorie Gestion
B www.bolodewo.com
Ultimate NHibernate Entity Framework
Data Access
Mécanisme de cache
Mises a jour par lot
Stratégies de chargement
L1 et L2
Modification et suppression
Eazy/Eager Loading
L1 et L2
Oui
Eazy/Eager Loading
L1 seulement
Non (possible avec une extension
Eazy/Eager Loading
Migration automatique
Comparaison des caractéristiques 57
Ultimate NHibernate Entity Framework
Data Access
Support des agrégations
Support des jointures
Langage de requêtes
Support du link
Simplicité/ Complexité des requêtes
Qualité des requêtes générées
Oui
Oui
LINQ, Sql Natif
OUi
/
/
Oui
Oui
HQL, Query Over, API Criteria, LINQ, Sql natif
OUi
/
/
Oui
Non
EntitySql, LINQ, Sql natif
OUi
/
/
Migration automatique
La Catégorie Optimisations
La Catégorie Requêtes
B www.bolodewo.com
Moins est mieux
Résultats des tests de performances 58
SQL Server
CUD Simple
LINQ
Sql dérivé
SQL natif
0
5
10
15
20
25
Nhibernate
EntityFramework
ADO.NET
DataAccess2.4
15.07
14.56
10.3
2.53
14.57
14.14
8.94
0.9
0
0
8.6
14.09
0
0
24.8
Nhibernate EntityFramework ADO.NET DataAccess
B www.bolodewo.com
Moins est mieux
Résultats des tests de performances (CUD par lot)
59
SQL Server
10 50 100 250 500 10000
200
400
600
800
1000
1200
DataAccessNHibernate EntityFramework
10 50 100 250 500 10000
200400600800
100012001400160018002000
Insertion par lot
Suppression par lot
Modification par lot
10 50 100 250 500 10000
50
100
150
200
250
300
350
B www.bolodewo.com
Moins est mieux
Résultats des tests de performances (Stress)
60
SQL Server
197
169
348
Temps d’éxecution en milliseconds de test de stress de chaque ORM
DataAccessNHibernate EntityFramework
B www.bolodewo.com
Moins est mieux
Résultats des tests de performances 61
Oracle
CUD Simple
LINQ
Sql dérivé
SQL natif
0
5
10
15
20
25
30
Nhibernate
EntityFramework
DataAccess
ADO.NET
3.75
18.55
23
12.12.51
24.33
18
10.21
9.87
0
25.48
0.997
Nhibernate EntityFramework DataAccess ADO.NET
B www.bolodewo.com
Moins est mieux
Résultats des tests de performances (CUD par lot)
62
OracleDataAccessNHibernate EntityFramework
Insertion par lot
Suppression par lot
Modification par lot
10 50 100 250 500 10000
200
400
600
800
1000
1200
1400
1600
10 50 100 250 500 10000
200
400
600
800
1000
1200
1 2 3 4 5 60
50
100
150
200
250
300
350
B www.bolodewo.com
Moins est mieux
Résultats des tests de performances (Stress)
63
OracleDataAccessNHibernate EntityFramework
Temps d’éxecution en milliseconds de test de stress de chaque ORM
B www.bolodewo.com
Synthèse des résultats de performance 64
ADO.NET performe raisonnablement mieux que les autres ORMs
Entity Framework et NHibernate présente des me
Telerik Data Access présente des mauvais résultats
La différence de performance entre les ORM et l’approche classique ADO.NET est acceptable
2
4
3
1
B www.bolodewo.com
CONCLUSION ET PERSPECTIVES
B www.bolodewo.com66
ConclusionIdentification des critères de sélection en utilisant la méthode
Systematic Review
Définition d’un processus d’évaluation et de comparaison des ORMs :1. Définition des besoins 2. Choix et pondération des critères3. Calcul du score et sélection de l’ORM
Définition d’un benchmark pour l’évaluation des performances
Plateforme d’évaluation des performance
Analyse et interprétation des résultats
1
2
3
4
5
B www.bolodewo.com
67
Perspectives
Elaboration d’une approche pour analyser la qualité des requêtes SQL générées
Elaboration des techniques de mesure approchées pour quantifier les critères qui sont difficilement mesurables.
Amélioration de la fonction d’utilité pour inclure d’autres paramètres dans le calcul du score
Inclure d’autres outils ORM de la plateforme .NET dans l’évaluation et autres SGBDs.
Mener l’évaluation des Outils ORMs sous la plateforme Java.
01
02
03
04
05
B www.bolodewo.com
Merci pour votre Attention