Cedric Dumoulin - IPINT Qualité et Tests unitaires Qualité et Tests unitaires DESS IPINT - 2005/2006 - Cours TA1 20/10/2009Solutions pour le niveau de persistanceIntroduction aux ORM et à JPA Cedric DumoulinIPINTCedric.dumoulin@lifl.frPlan§ Problématique§ slides 08§ slides grim sur les solutions§ Les mapping objets – relationnel§ slides grim§ JPA§ slides grim tres bien, mais tres long !§ attention, c’est fait dans EJB 3 L2Bonnes pratiques du développement à base de composants 1Cedric Dumoulin - IPINT Cedric Dumoulin - IPINT Qualité et Tests unitaires Qualité et Tests unitaires DESS IPINT - 2005/2006 - Cours TA1 20/10/2009Bibliographie§ Master the New Persistence Paradigm with JPA§ http://www.devx.com/Java/Article/33650/0§ Persistence Pays Offs: Advanced Mapping with JPA§ http://www.devx.com/Java/Article/33906§ ORM§ http://deptinfo.unice.fr/~grin/mescours/minfo/modpersobj/supports/mappingOR6.pdf§ http:///~grin/mescours/minfo//supports/TypesApplication6.pdf§ JPA§ http://deptinfo.unice.fr/~grin/mescours/minfo/bdavancees/supports/jpa1-6.pdf§ http:///~grin/mescours/minfo/modpersobj/supports/jpa2-6.pdf 3Plan§ Le niveau de persistance;§ Les solutions de niveau de persistance;§ Développement avec hibernate;§ Langage de requêtes;4Bonnes pratiques du développement à base de composants 2Cedric Dumoulin - IPINT Cedric Dumoulin - IPINT Qualité et Tests unitaires Qualité et Tests unitaires DESS IPINT - 2005/2006 - Cours TA1 20/10/2009Le ...
Solutions pour le niveau de persistance Introduction aux ORM et à JPA
Cedric Dumoulin IPINT
Cedric.dumoulin@lifl.fr
Plan
§ Problématique § slides 08 § slides grim sur les solutions § Les mapping objets relationnel § slides grim § JPA § slides grim tres bien, mais tres long ! § attention, cest fait dans EJB 3 L
2
Bibliographie
§ Master the New Persistence Paradigm with JPA § http://www.devx.com/Java/Article/33650/0 § Persistence Pays Offs: Advanced Mapping with JPA § http://www.devx.com/Java/Article/33906 § ORM § http://deptinfo.unice.fr/~grin/mescours /minfo/modpersobj/supp orts/mappingOR6.pdf § http://deptinfo.unice.fr/~grin/mescours /minfo/modpersobj/supp orts/TypesApplication6.pdf § JPA § http://deptinfo.unice.fr/~grin/mescours /minfo/bdavancees/supp orts/jpa1-6.pdf § http://deptinfo.unice.fr/~grin/mescours /minfo/modpersobj/supp orts/jpa2-6.pdf
Plan
§ Le niveau de persistance; § Les solutions de niveau de persistance; § Développement avec hibernate; § Langage de requêtes;
3
4
Le niveau de persistance
§ Coût élevé du développement de la gestion de la persistance des données; § À l'exécution, les opérations d'accès au niveau de persistance sont les plus coûteuses en terme de performance; § Problématique actuelle : § Le développement objet domine aujourd'hui en entreprise; § La majeure partie des données critiques pour l'activité d'une organisation est entreposée dans des systèmes de gestion de bases de données relationnelles (SGBD/RDMBS); § Pour combler ce vide, il est primordial d'utiliser des outils de gestion de la persistance qui offre une adaptation objet-relationnel (O-R mapping) et qui génère le code pour les objets du domaine de l'application ;
Solutions maison pour le niveau de persistance
§ Sérialisation Java "Do it yourself!" § Moyen peu coûteux de rendre persistant une instance de classe Java; § Dépend de la version de la classe et du compilateur Java; § Non accessible à distance, non portable; § Pas de niveau transactionnel, pas de niveau d'intégrité. § JDBC (Java Database Connectivity) "Do it yourself!" § Pont standard de bas niveau pour communiquer avec un SGBD relationnel en SQL; § Compétence reconnue en entreprise, utilisé pour le meilleur et pour le pire par de nombreux développeurs Java; § Amélioration possible en utilisant le pattern Data Access Object (DAO); § Trop coûteux en temps de développement; § codes et objets difficiles à maintenir.
5
6
Inconvénients des solutions maison
§ r P e r la o t b io lè nn m el e n o é r c g e a s nisation c n o e o l : érLa'atidoanpteanttiroendoebujxet-site une p x ldp'aoodpmmualiianntiiesotsrnadstiisdotionnnctdtles'se:xblpeaesrdetéissvedeleso'dpeopenprnmiémeenestrdoealbnajsteitodenetnuexlles.rs et adDdéapnmasirntdiesetsmraegtnretausnrdsdie(fsfDéorregn)atsanipaspauatxirotpinreisno,nridetéénvsteàldoifdpfeépsreeuntes; BA
§ Taille du co u d x e d : oUnnneéeésturdeepr(éR.B.Websbqer')ài4n0dique% du cqoudeel'taoctcaèlsd'auneapplicationdasnesnlteesjsuystuèmesdesentrepri x anpépcleicssataiisfreevsa.arLiueessteonectrkpeaegrdteessecsetinmtaeinnetecsqheueretcldhaeetsda'imlulielnlideorubsjcedotedeet à la r lignes !
Inconvénients des solutions maison
§ d Pi e è s t o re bj e q t u s a d li a t n é s : uLn'eécbriatsuereddeedcoondneéepsoeurstscaouvmeprlel'xéetaettsource d'erreur fréquentes (mais non moins classiques);
§ Peu réutilisable : Une solution maison est rarement de l'entr . Caphpalqicuaeblperoajuextaruéitrnevsenatpeplliacartoiuoensetentraîneepdriessence ddéévpeelnospepseimnuetniltees,tlreedteosntd;antespourlacoption,le
t des informatio rrive u'une § s C o l l o u i t s io o n n n m e ai m so e n n crée des "silos" de n d s o:nInléaesdanqsuneorganisation entravant la libre circulation des ifnofnocrmationsentrelesdépartementsetlesunitéstionnelles;
7
8
Plan
§ Le niveau de persistance; § Les solutions de niveau de persistance; § Développement avec hibernate § Langage de requêtes;
Les outils de persistance
§ Une solution idéale pour l'accès aux données libère les développeurs d'écrire du code bas niveau et permet de d'écriredesmodèlnenseds'opbejreftosrmcoamncpelexestouetveanbilitéconservant de bo s et un ria d échelle. Comment ? § En simplifiant la conception du modèle de données et l'adaptation objet-relationnel avec des outils automatiques; it § fElenxigbélneéqrauintréudnuintilveesacuodûetsplieérssisatuatnecsetdeetagruadnédbeoqguaagle;é,§ dEenicnatcéhgerantlecodegénéréavecunsystèmnecedseegteustnieonintégritédpeosudroansnséureesrsdaensboprnongersapmemrfaotriomnaadditionnelle.
9
10
Un modèle objet complexe avec outil de mapping § Un outil de mapping ou un framework permet dautomatiser en partie la correspondance objet-relationnel et diminue beaucoup la quantité de code à écrire pour gérer la persistance
Outil de mapping
§ La correspondance objet-relationnel est décrite par des fichiers de configuration ou des annotations § La persistance est très simplifiée pour le développeur qui écrit le code objet § Les données de la base sont vues par lapplication à travers le modèle objet, et pas le modèle relationnel § Permet souvent de générer des classes objet à partir des tables dune BD, ou inversement
11
12
Désavantages
§ Difficiles à écrire soi-même car très complexes § Mais il existe de nombreux projets gratuits et open source § Il faut apprendre à sen servir (pas toujours simple ) § Pour les modèles objets très complexes (en particulier avec des structures arborescentes), le mapping objet-relationnel montre ses limites § (aller voir du côté des SGBD objets ?)
Hibernate
§ Avec Toplink, loutil de mapping le plus utilisé dans le monde Java § Utilise un gestionnaire de persistance, lintrospection et lenrichissement de code à lexécution pour récupérer les valeurs des propriétés des objets et gérer leur persistance § Les dernières versions sont conformes au standard JPA
13
14
Autres possibilités
§ JDO (Java Data Objects) est une autre API qui offre des possibilités semblables à JPA § Utilise lenrichissement de code pendant la phase de compilation
EJB (Entreprise Java Beans)
§ Spécification qui offre un Framework standard pour les applications Java dentreprise § Code fourni par J2EE, la version dentreprise de Java § Nécessite lutilisation dun serveur dapplications qui est un logiciel lourd (non fourni par J2EE) § Plutôt pour les grosses applications dentreprises
15
16
EJB 2 (Enterprise Java Bean)
§ Standard J2EE pour l'adaptation objet-relationnel sous la forme de composant bean d'entité; § pDi'laoutérestypesdecomposantsexistent(Beansession,bean t par message); § Expertise reconnue, utilisée par de nombreux professionnels; § Succès dû en partie au marketing de Sun; coûteux § NMéaccreossmiteediuan)coountgernaetuuirtd('JEOJnBA,S,JBoss)(;Websphere,Weblogic,§ Nécessite des descripteurs de déploiement propriétaires; § tDeécchenpiqtiuoen(ehneucreequusiecmoenncte,rcneelne'esstpeprafsorlemacnascedseeJtOlensAuS)p;port§ DeémiafincdaetiounnJt2eEmEpasvda'antppdreendtéisvsealogpepneor;nnégligeabledelasp c § CequlieexixpéliuqtuilieseqnuteJleDsBCdépvoeluorplpeepuirrse;découragésparcettecomp t
JPA
§ Spécification standard pour la persistance des objets Java § Fait partie de la spécification EJB 3 , § framework pour les applications dentreprise § TopLink Essentials est limplémentation de référence de JPA § Utilise les annotations Java 1.5 § Simple dutilisation
17
18
§ Les mappings objets
relationnel
Correspondance Objet - Relationnel
§ Ce cours explique les problèmes de base qui se posent quand on veut faire correspondre§ les données contenues dans un modèle objet § avec les données contenues dans une base de données relationnelle
§ CopyrightRichard Grin
19
20
§ § §
§
2 paradigmes
Les paradigmes objet et relationnel sont bien distincts Le paradigme objet est plus riche Par exemple, pas de notion dobjet, dhéritage ou dassociation dans le paradigme relationnel Dès quun modèle objet est complexe (de lhéritage et beaucoup dassociations) il nest pas simple de faire correspondre des objets et des tables relationnelles