Présentation PFE VF 3.0pptx

Preview:

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

Recommended