1. 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 Amine
Dimanche 27 septembre
Une approche méthodique pour l’évaluation des
ORMs
Présentation du sujet du master:
3. B www.bolodewo.com
3
0%
2%
4%
6%
8%
10%
12%
14%
16%
2003 2004 2005 2006 2007
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
4. B www.bolodewo.com
4
QUELQUES 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]
5. 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%
5
THETIOBE PROGRAMMING COMMUNITY INDEX
9. B www.bolodewo.com9
LE MODÈLE RELATIONNEL ET LE MODÈLE OBJET
Modè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
10. B www.bolodewo.com
TYPE DE DONNÉES
Objet: Nombres complexes
Relationnel: /
IDENTITÉ
HÉRITAGE
Objet: support existe
Relationnel: /
GRANULARITÉ
Objet: Une classe peut avoir
plusieurs niveaux
Relationnel: /
ASSOCIATIONS
Objet: Navigation par référence d’objet
Relationnel: Clé étrangères => Navigation par
des jointures
Innapdation
d’impédance
Objet: Adresse mémoire…etc
Relationnel: Clé primaire
10
11. 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
13. B www.bolodewo.com
Multiple de
choix
13
LA DIFFUCLTÉ DE
L’ÉVALUATIONDapper
Data Object
NHibernate
SubSonic
LLGB Gen
Entity
Framework
NEO
Data Access
Speed
Light
ECO
DX
XPO
Quick
Object
Speed
Light
EntitySpac
es
Active
Record
iBatis
Linq2Sql
16. 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
17. B www.bolodewo.com17
PLAN DE LA PRÉSENTATION
Synthèse
bibliographique
Conception
et
Implémentatio
n
Le Mapping
Objet
Relationnel
Processus
d’évaluation
des ORMs
Test
et
Résultats
Conclusion
et
perspectives
19. B www.bolodewo.com
19
Le Mapping Objet Relationnel
Base de donnéesORM
fichier de mapping
fichier de mapping
Application
Objets + traitement métiers
Présentation
Définition
Le 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.
20. B www.bolodewo.com
20
Le Mapping Objet Relationnel (Exemple)
Absence
AbsenceID
Date
EstJustife
Justification
EdutiantID
Etudiant
EtudiantID
Nom
Prenom
Le modèle Relationnel Le modèle Objet
22. B www.bolodewo.com
22
Techniques d’optimisation
Avec ses deux
niveaux:
Local (L1)
Global (L2)
Le cache
Future Queries
Minimiser les accès à
la base de données
Mises a jour retardées
Lazy/Eager loading
Minimiser les accès
a la base de
données
Stratégies de
chargement
24. B www.bolodewo.com
Systematic Review
24
ORM Evaluation Criteria
Planification de la recherche
Exécution du protocole de la recherche
Conclure la revue et exposer les résultat
1
3
2
25. B www.bolodewo.com
Planification de la recherche
25
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
26. B www.bolodewo.com
Exécution du protocole de la recherche
26
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
27. 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 145
3
‘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
30. B www.bolodewo.com
30Modèle de qualité des ORMs
(Basé sur ISO 9126)
Line 3D Infographic
Maintenabilité
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
31. B www.bolodewo.com
31
Le processus de sélection des ORMs
03
02
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
32. B www.bolodewo.com
32
Le processus de sélection des
ORMs 01
Choix des critères
d’évaluation
03
02
01
w
Choix et pondération des critères
Définition des besoins, spécifications fonctionnelles et techniques
et des resources
35. B www.bolodewo.com
35
Mapping
Lorem 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
41. B www.bolodewo.com
41
Sé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
42. B www.bolodewo.com
42
Le 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
01
Choix des critères
d’évaluation
02Attribution des poids
03
02
01 Choix et pondération des critères
Définition des besoins, spécifications fonctionnelles et techniques et des
resources
43. B www.bolodewo.com
43
Le processus de sélection des ORMs
03
02
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
44. B www.bolodewo.com
44
Méthode de sélection
MAUT (Multi-Attribut UtilityTheory)
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 j
Critèr
e i
Critèr
e k
Niveau
de
support
45. B www.bolodewo.com
45
Mé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= 𝑖=0
𝑛
𝐶𝑖 𝑃𝑖
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
46. B www.bolodewo.com
46
Niveau 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
49. 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
50. 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.
371
Qualité du SQL généré pour une requête
complexe (fonction d’agrégation + jointures +
trie + groupement)
50
51. 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
52. 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
55. B www.bolodewo.com
Ultimate NHibernate
Entity
Framework
Data Access
55
Approches de mapping
Types de données
Mapping d’une table sur
plusieurs classes
Mapping 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
56. 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
57. 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
58. B www.bolodewo.com
Moins est mieux
Résultats des tests de performances
58
SQL Server
Nhibernate
EntityFramework
ADO.NET
DataAccess
0
5
10
15
20
25
CUD Simple
LINQ
Sql dérivé
SQL natif
2.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
59. B www.bolodewo.com
Moins est mieux
Résultats des tests de performances (CUD par lot)
59
SQL Server
0
200
400
600
800
1000
1200
10 50 100 250 500 1000
DataAccessNHibernate EntityFramework
0
500
1000
1500
2000
2500
3000
3500
4000
4500
10 50 100 250 500 1000
Insertion par lot Suppression par lotModification par lot
0
50
100
150
200
250
300
350
10 50 100 250 500 1000
60. 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
DataAccessNHibernate EntityFramework
61. B www.bolodewo.com
Moins est mieux
Résultats des tests de performances
61
Oracle
Nhibernate
EntityFramework
DataAccess
ADO.NET
0
5
10
15
20
25
30
CUD Simple
LINQ
Sql dérivé
SQL natif
3.75
18.55
23
12.1
2.51
24.33
18
10.21
9.87
0
25.48
0.99
7
Nhibernate EntityFramework DataAccess ADO.NET
62. B www.bolodewo.com
Moins est mieux
Résultats des tests de performances (CUD par lot)
62
OracleDataAccessNHibernate EntityFramework
Insertion par lot Suppression par lotModification par lot
0
200
400
600
800
1000
1200
1400
1600
10 50 100 250 500 1000
0
200
400
600
800
1000
1200
10 50 100 250 500 1000
0
50
100
150
200
250
300
350
1 2 3 4 5 6
63. 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
64. 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 DataAccess 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
66. B www.bolodewo.com66
Conclusion
Identification 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ères
3. 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
67. 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
… And its contribution has historically grownmuch faster than the rest of the economy• OUTPERFORMING THE ECONOMY:In 2007, the software and related services sector experienceda real annual growth rate of 14%, compared with a realannual growth rate of 2% for all US industries. This sector hasoutpaced the rest of the economy in each year since 2003.[Source: OECD, STAN Database for Structural Analysis, ed. 2008]
… And its contribution has historically grownmuch faster than the rest of the economy• OUTPERFORMING THE ECONOMY:In 2007, the software and related services sector experienceda real annual growth rate of 14%, compared with a realannual growth rate of 2% for all US industries. This sector hasoutpaced the rest of the economy in each year since 2003.[Source: OECD, STAN Database for Structural Analysis, ed. 2008]
DONNER DES EXEMPLES
Prioritatsion
PB: difficulty d’évaluation
titles
Multidatabaese
Definition
historiQUE
Multidatabaese
Definition
historiQUE
, l’outil ORM fournit donc certains mécanismes d'amélioration de performances tel que :
Le cache pour la sauvegarde des objets et des requêtes
Les mis à jour retardé pour minimiser les accès à la base de données
Le chargement différé qui consiste à un changement à la demande des objets depuis la base des données sans perdre du temps à charger des détails inutiles
Démarche du projet
Ce travail a été mené par la revue systématique : c’est une méthode de recherche qui existait dans le domaine de la recherche médicale et qui a été adopté par la recherche technique pour sa rigueur et ses résultats qui permettent de synthétiser l’état actuel de la recherche dans un domaine donné
La une méthode se déroule sur 3 phases qui sont brièvement :
Planification de la recherche : définir l'objectif de la recherche et fixer clairement ses besoins
Exécution du protocole de la recherche : sélectionnées les sources de données nécessaire pour faire la recherche qui peuvent être des bibliothèques numériques, sites internet, et littérature grise et d’autres … suivi de Sélection des études primaires et Extraction de données
et enfin conclure la revue et exposer les résultat
Ce travail a été mené par la revue systématique : c’est une méthode de recherche qui existait dans le domaine de la recherche médicale et qui a été adopté par la recherche technique pour sa rigueur et ses résultats qui permettent de synthétiser l’état actuel de la recherche dans un domaine donné
La une méthode se déroule sur 3 phases qui sont brièvement :
Planification de la recherche : définir l'objectif de la recherche et fixer clairement ses besoins
Exécution du protocole de la recherche : sélectionnées les sources de données nécessaire pour faire la recherche qui peuvent être des bibliothèques numériques, sites internet, et littérature grise et d’autres … suivi de Sélection des études primaires et Extraction de données
et enfin conclure la revue et exposer les résultat
Ce travail a été mené par la revue systématique : c’est une méthode de recherche qui existait dans le domaine de la recherche médicale et qui a été adopté par la recherche technique pour sa rigueur et ses résultats qui permettent de synthétiser l’état actuel de la recherche dans un domaine donné
La une méthode se déroule sur 3 phases qui sont brièvement :
Planification de la recherche : définir l'objectif de la recherche et fixer clairement ses besoins
Exécution du protocole de la recherche : sélectionnées les sources de données nécessaire pour faire la recherche qui peuvent être des bibliothèques numériques, sites internet, et littérature grise et d’autres … suivi de Sélection des études primaires et Extraction de données
et enfin conclure la revue et exposer les résultat
iso9126
ORM//titile
Le poids est attribué pour chaque critère pour refléter son importance
Le calcul du score global pour chaque alternative est effectué par le biais l’une fonction d'utilité qui doit être précisément identifié par l’utilisateur
Le poids est attribué pour chaque critère pour refléter son importance
Le calcul du score global pour chaque alternative est effectué par le biais l’une fonction d'utilité qui doit être précisément identifié par l’utilisateur
Comme nous pouvons le constater, il n y a pas une grande différence entre les fonctionnalités offertes entres les trois outils, puisqu‟il s‟agit des trois exemples d'outils ORM les plus réussis dans la plateforme .NET, EntityFramework et NHibernate sont open source, et gratuits, considérés matures par la communauté des développeurs. DataAccess étais un ORM commercial sous le nom de OpenAccess jusqu‟à 2014, il bénéfice d‟un support technique actif et d‟une très bonne documentation.
Utiliser les temps
Utiliser les temps
Utiliser les temps
Utiliser les temps
Utiliser les temps
Utiliser les temps
Utiliser les temps
Comme nous pouvons le constater, il n y a pas une grande différence entre les fonctionnalités offertes entres les trois outils, puisqu‟il s‟agit des trois exemples d'outils ORM les plus réussis dans la plateforme .NET, EntityFramework et NHibernate sont open source, et gratuits, considérés matures par la communauté des développeurs. DataAccess étais un ORM commercial sous le nom de OpenAccess jusqu‟à 2014, il bénéfice d‟un support technique actif et d‟une très bonne documentation.