TA1 – O-R Mapping - HibernateDESS IPINT - 2004/2005 - Cours TA1 Mardi 26 octobre 2004Solutions pour le niveau de persistanceIntroduction à HibernateCedric Dumoulin / Gautier KoscielnyModule Technologies AvancéesDESS IPINT – 2004/2005Cedric.dumoulin@lifl.frBonnes pratiques du développement à base de composants 1Cedric Dumoulin - master 2 IPINTTA1 – O-R Mapping - HibernateDESS IPINT - 2004/2005 - Cours TA1 Mardi 26 octobre 2004Plan• Le niveau de persistance;• Les solutions de niveau de persistance;• Développement avec hibernate;• Langage de requêtes;3Bonnes pratiques du développement à base de composants 2Cedric Dumoulin - master 2 IPINTTA1 – O-R Mapping - HibernateDESS IPINT - 2004/2005 - Cours TA1 Mardi 26 octobre 2004Le 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;4Bonnes pratiques du développement à base de ...
Solutions pour le niveau de persistance Introduction à Hibernate
Cedric Dumoulin/ Gautier Koscielny
Module Technologies Avancées
DESS IPINT – 2004/2005
Cedric.dumoulin@lifl.fr
Plan
Le niveau de persistance;
Les solutions de niveau de persistance;
Développement avec hibernate;
Langage de requêtes;
3
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 uneadaptation objet relationnel(OR mapping) et quigénèrele code pourles objets du domaine de l'application;
4
Solutions maison pour le niveau de persistance
Sérialisation Java"Do it yourself!" –JMaoye;npeucoûteuxderendrepersistantuneinstancedeclasseva – 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!" –rPeolntiostnannedlaerndSdQeLb;asniveaupourcommuniqueravecunSGBDat –pCooumrpleétpeinrceepraercdoennnuoemebnreeunxtrdeépvriesleo,pupteiliusrésJpaovuar;lemeilleurete en utilisant l tter ccess Object –(ADmAéOli)o;rationpossiblepanDataA – Trop coûteux en temps de développement; – codes et objets difficiles à maintenir.
5
Inconvénients des solutions maison
on ob et rPerlaotbiolènnmelenoércgeassniitseautinoencnoeolp:érationentredeuxj'Lpadaitat pdopmualiantionsdontl'expeerdtéisveelso'exprimeentdansdeuxo l'adminiesstraditisotinncdtess:blasesdedpopnenméesroelbajteitonetnelles.adDdéapnmsindisetsmraegtnretausnddie(fsfDéoBrreAgn)atasnipaspauatxirotipnersin,onrdieténévtseàldoifdpfepésreeunrtseest;rs arte
Tailll'eacduèscaoudxed:nUe(ReudétbbWe..Bidni)reeuqonnerrpeésetjséne ue usqu'à 40% du cqodetotcald'uneapplicationdanslessystèmesdesenétcreprises.Lesexpertsestimentquelatailleducodee d'un ob et anppleiscsataiifrevaaruiesteonctrkeagdeesetceànltaairneecsheertcdhesmilliersjdelignes !
Peu réutilisable :Une solution maison est rarement réinvente la roue et entraîne des aCdpéhvpaleiqlcuoaepbplpeeromajueextntaeuttrleestaesptp;licateisonpsoudrella'enotrnecperpitsieo.n,ledépenses inutiles, redondant c
nt des informati sCollouitsioonnnmeaimsoen crée des "silos" doendsoeénndqaseviurrnaslnIe:eu'un organisation entravant la libre circulation des informations entre le a fonctionnelles;sdéprtementsetlesunités
7
Plan
Le niveau de persistance;
Les solutions de niveau de persistance;
Développement avec hibernate
Langage de requêtes;
2.1.6;
8
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écrire des modèles d'objets complexes tout en conservant de bonnes performances et une variabilité d'échelle. Comment ? En simplifiant la conception du modèle de données et l'adaptation objetrelationnel avec des outils automatiques; En générant un niveau de persistance de grande qualité, flexible qui réduit les coûts liés au test et au débogage; En intégrant le code généré avec un système de gestion de cache pour assurer de bonnes performances et une intégrité des données sans programmation additionnelle.
9
Solutions pour le niveau de persistance (EJB 2) EJB2 (Enterprise Java Bean): – StandardJ2EE pour l'adaptation objetrelationnel sous la forme de composant bean d'entité; ean sessi bean –pDi'laotuétrepsartympeesssdaegec)o;mposantsexistent(Bon, – Expertise reconnue, utilisée par de nombreux professionnels; – Succès dû en partie au marketing de Sun; –NMéaccersosmiteediuan)coountgernateuuirt(dJ'EOJnBA,Sc,oJûBteosusx);(Websphere,Weblogic,– Nécessite des descripteurs de déploiement propriétaires; –Déceptionencequiconcernele'esstpeprafosrlemacnacsedseeJtOlenAsuS)p;porttechnique (heureusement, ce n –sDpeémiafincdateiounntempsd'apprentissagenonnégligeabledelac J2EE avant de développer; – Ce qui explique que les développeurs découragés par cette complexité utilisent JDBC pour le pire;
10
Solutions pour le niveau de persistance (EJB 3 JPA)
Java Persistance Api(JPA) – Standard Java pour la persistance
Plusieurs implémentations existent
Prend le meilleur des solutions passées: – EJB 2, hibernate, ORM
Utilise les annotations Java <5
Simple d’utilisation
11
Hibernate Core
Caractéristiques : (OLuGtiPlLd)';adaptationobjetrelationnelJavalibreetopensource Utilisé dans le serveur d'application JBoss; , cMoomdpèloesidtieonp,rougtirliasamtimoantidoenl'oAbPjeItd:ehcéorlilteacgtieo,npJolayvma;orphisme Granularité fine : propose une variété d'adaptation pour les collections et les objets dépendants; Aucune manipulation du byte code; Variabilité d'échelle : bonnes performances en utilisant une architecture de cache à deux niveaux, possibilité d'utiliser un cluster; Langage de requêtes; Supportpourleslteransactionsdites"applicatives":Hibernateoffrentextes transact de l ue durée et uutnilissuepupnorstypstoèumresdecoverrouoptimiste;ionnelsong http://hibernate.bluemars.net/4.html