novembre
2008
JPA (Java Persistence API) sera sans doute le dernier de mes joujoux technologiques pour bâtir l’architecture de la plateforme pédagogique Edupassion.com.
Tout cela fait beaucoup de technologies pour un seul homme. Ext-JS risque d’être le point faible… et le plus visible.
Le projet est donc séparé en 6 modules :
- Code Browser : HTML reçu par la front view, Ajax vers le web service
- Front view (Module Edupassion) : Distribution du HTML, redirection au Web Service
- Web Service (module wsedupassion) : http -> JSP -> Javabean -> validation -> accès données -> analyse -> résultat xml
- Code métier (module e-library) : contient les classes School, Teacher, Student, Work, etc.
- Accès données (module JPA+Crud) : Les classes Entities sont générées par Netbeans 6.5. Le Crud convertit ces entities en classes métiers de e-library.
- La base de donnée : On y accède soit par les entities, soit par des requêtes JPA, et parfois par des requêtes jdbc.
JPA
La seule originalité est la séparation franche entre les Entities issues de la Bdd et les classes métiers qui en sont presque des clones. Mais pour moi il est hors de question de rajouter la moindre ligne au milieu d’un code remplit d’annotation et de requêtes à mon avis difficile à maintenir.
J’apprécie cependant énormément de faire un Crud via ces Entities plutôt que par JDBC. La maintenance est plus simple, puisque, par exemple, en renommant une colonne de ma BDD, Netbeans génèrera des classes différentes et fera remarquer une erreur dans le code de mon CRUD. Cela est impossible avec du JDBC pur.
REST
L’accès aux web service se fait par REST, via des requêtes GET, POST, PUT et DELETE. Il a fallut pour cela modifier le fichier de Prototype, ce qui n’est pas très difficile. Un Web Service RESTFul permet principalement une montée en charge du projet sereine, sans modifier le code source.
Le blog, c’est juste pour s’amuser avec un joli dessin. Et cela me permet régulièrement d’engager des discussions plus précises avec des passants, selon leur situation.
Pour plus de pédagogie, il y a les articles comme celui-ci : http://nicolas-zozol.developpez.com/tutoriels/java/restful/jsp/
J’espère en faire d’autres quand j’aurais fini la programmation du code. L’architecture est une chose, après il faut coder. Et j’aurais certainement plus de choses intéressantes à raconter dans 2-3 mois, avec de l’expérience.
Je suis heureux de voir que vous vous intéressez à tout celà mais je pense que ça apporte très peu d’intérêt à la communauté.
Il serais plus intéressant de préciser pourquoi faire ces choix. Pourquoi pas Spring, Pourquoi TOPLink, etc.. ?