Académique Documents
Professionnel Documents
Culture Documents
Toutes les applications nont pas une complexit qui ncessite une architecture ntiers Ce cours dcrit les grands modles dapplications qui utilisent une base de donnes relationnelle
Richard Grin
Richard Grin
page 2
Outils de dveloppement
Des outils permettent de gnrer des classes Java partir du schma dune base ou inversement de gnrer le schma dune base partir des classes Java des objets persistants Si la base prexiste et ne peut tre modifie, le mapping objet-relationnel devra tenir compte la fois de la conception objet et du schma de la base Sinon, le schma de la base pourra tre gnr automatiquement partir des classes Java
2 points importants pour processus de dveloppement de lapplication : n La base de donnes qui sera utilise existe-telle dj ou non ? n S la base prexiste, le dveloppeur de lapplication peut-il modifier, au moins partiellement, la structure de la base ?
Richard Grin
page 3
3 modles
Toutes les applications nont pas une complexit qui ncessite une architecture n-tiers 3 modles schmatiques darchitecture : n Modle procdural n Modle objet simple avec persistance intgre aux objets n Modle objet avec utilisation dun outil de mapping
Richard Grin
page 5
Richard Grin
page 6
Modle procdural
Richard Grin
Les traitements de lapplication doivent tre pauvres en traitements mtier et essentiellement lis la persistance des donnes : n ajouts et suppressions denregistrements n modifications simples de donnes effectues directement par lutilisateur
Richard Grin
page 10
Richard Grin
page 12
Richard Grin
page 13
Exemple
Une mthode qui recherche tous les employs dun dpartement Choix 1 :
Elles peuvent tre mises : n dans une classe qui se charge des recherches (un finder) n en static dans la classe mtier qui correspond au type renvoy n dans le cas particulier o le critre de recherche correspond une des classes mtier, la mthode peut tre mise dans cette classe mtier (choix 3 du transparent suivant)
Types dapplication pour la persistance page 15
de la classe Employe
Richard Grin
Richard Grin
Dsavantages
Les classes mtier sont trop lies au support de persistance utilis En consquence tout refactoring entranant une modification du modle objet va obliger revoir le code de la persistance Le code pour la persistance se rvle vite long, fastidieux et difficile crire et mettre au point ds que le modle objet se complexifie et quon recherche des bonnes performances dans un environnement charg
Richard Grin
page 18
Outils de mapping
La correspondance objet-relationnel est dcrite dans des fichiers des configuration ou par des annotations La persistance peut devenir presque transparente pour le dveloppeur qui crit le code Java Difficile dcrire soi-mme de tels outils car ils sont trs complexes
Richard Grin
page 19
Richard Grin
page 20
JPA
Spcification standard pour la persistance de objets Java (tudi la fin de ce cours) Fait partie de la spcification EJB 3, framework pour les applications dentreprise TopLink Essentials est limplmentation de rfrence de JPA
Hibernate
Avec Toplink, loutil de mapping le plus utilis dans le monde Java Utilise un gestionnaire de persistance, lintrospection et lenrichissement de code lexcution pour rcuprer les valeurs des proprits des objets et grer leur persistance Les dernires versions sont conformes au standard JPA
Richard Grin
page 21
Richard Grin
page 22
Autres possibilits
JDO (Java Data Objects) est une autre API qui offre des possibilits semblables JPA Utilise lenrichissement de code pendant la phase de compilation
Framework (cadre de
dveloppement)
Ensemble de classes et ressources prexistantes que le dveloppeur doit complter Utilisation dune librairie : lexcution est dirige par le code crit par le dveloppeur, qui fait appel aux classes de la librairie Utilisation dun framework : lexcution est dirige par le framework qui fait appel au code crit par le dveloppeur
Richard Grin Types dapplication pour la persistance page 24
Richard Grin
page 23
EJB
Le framework standard pour les applications Java dentreprise, EJB (Entreprise Java Beans), est fourni par J2EE, la version dentreprise de Java Il ncessite lutilisation dun serveur dapplications qui est un logiciel lourd rserver pour les grosses applications dentreprises
EJB
Classes Java qui implmentent les fonctionnalits dune application Le dveloppeur crit le code li aux fonctionnalits du mtier, sans soccuper des services techniques (scurit, distribution sur plusieurs machines, transactions, persistance,) Le serveur dapplications utilise ce code et y ajoute tous les services techniques indispensables au bon fonctionnement de lapplication
Richard Grin Types dapplication pour la persistance page 26
Richard Grin
page 25
Richard Grin
page 27
EJB version 3
Les EJB entits nexiste plus en tant que tels dans EJB 3 Une entit est une classe Java ordinaire POJO dont la persistance est prise en charge par JPA (tudi dans la suite du cours) Les entits nont plus hriter de classes spciales et peuvent tre tests en dehors du serveur dapplications
Richard Grin
page 29
Richard Grin
page 30
Passerelle
Classe qui contient tout le code pour grer la persistance Chaque table a une classe passerelle qui lui correspond Le reste de lapplication fait appel aux passerelles pour grer la persistance
Passerelles
Richard Grin
page 31
Richard Grin
page 32
Utilisation
Isolent la persistance du reste de lapplication Facilitent les changements de SGBD et permettent dallger le code des classes mtier Peuvent tre utilises avec les 3 modles vus prcdemment
2 types de passerelle
Une instance de passerelle par table (le plus frquent) Une instance de passerelle par ligne de table Le pattern DAO (Data Access Object), trs utilis et tudi plus loin dans ce cours, correspond au type une passerelle par table
Richard Grin
page 33
Richard Grin
page 34
Exemple de passerelle
La classe EmployeDAO gre la persistance des instances de la classe Employe et correspond la table employe Elle contient la mthode ajouter(int matricule, String nom,)
Exemple de passerelle
Avec une instance de passerelle par ligne, on aurait une mthode ajouter() car la passerelle aurait toutes les informations sur lemploy auquel elle est lie
La mthode prend en paramtre les informations sur lemploy ajouter car il existe une seule instance de la classe EmployeDAO pour tous les employs
Richard Grin Types dapplication pour la persistance page 35 Richard Grin Types dapplication pour la persistance page 36
Bibliographie
Richard Grin
page 37