Object Relational Mapping - Java Persistence API
Java Persistence API, la théorie
Présentation
Java Persistence API ou J.P.A est la spécification Java de l'O.R.M. Il s'agit d'une sous spécification de la norme EJB3 (JSR220) du framework Java Enterprise 5.
La spécification J.P.A est le fruit du rassemblement des travaux issus des O.R.M Java pré existants.
Java Enterprise Edition
Cette édition de la plate-forme Java se base sur l'édition standard à laquelle elle ajoute les librairies permettant le développement de solutions multi-tiers, distribuées et tolérantes aux pannes. En 2008, Java Enterprise Edition est disponible dans sa version 5.
Les implémentations
Il existe de nombreuses implémentations de la couche de persistance J.P.A. Dans les lignes qui suivent, on décrira uniquement les trois principales :
Oracle Toplink
Cette implémentation proposée par l'éditeur de logiciel Oracle se décline en deux versions :- Oracle Toplink, est la version commerciale de la couche J.P.A Oracle ;
- Oracle Toplink Essential, il s'agit de la version gratuite et OpenSource. Cette version est l'implémentation de référence de la spécification J.P.A. Ainsi elle correspond au strict minimum de cette norme et garanti le respect le plus total de cette dernière. Cette version est également fournit avec le serveur d'application JEE5 OpenSource de Sun appelé Glassfish.
Hibernate
Hibernate est la couche de persistance du serveur
d'application JBoss propriété de la société éponyme
et division de RedHat
. Cette implémentation
fournit un ensemble d'outils supplémentaires important et
permettant de simplifier davantage la manipulation de
données. De part ces ajouts, cette implémentation s'écarte de
la spécification à proprement parler. Son utilisation avancée
peut rendre difficile une hypothétique migration vers une
autre implémentation.
OpenJPA
Cette implémentation est un projet de la fondation Apache. Ce projet encore jeune a fournit une première version stable en août 2007. On dispose actuellement de peu de retour sur cette nouvelle implémentation, en particulier dans le monde de l'entreprise.
Environnement d'exécution
J.P.A a été conçu pour être utilisé dans les deux environnements de développement suivants :
- StandAlone, il s'agit d'une architecture 2-Tiers classique mettant en jeu un client contenant la couche présentation et métier et se connectant à une base de données ;
- Conteneur d'EJB, c'est à dire dans un environnement 3-Tiers.
Il est important de noter que le code produit dans l'un des environnements est utilisable dans le second sans aucune modification.
Les bénéfices apportés
- L'utilisation d'une implémentation J.P.A permet de s'affranchir de la base de données sous-jacente grĂ¢ce à l'abstraction qu'elle fournit. Ainsi il est possible de changer le S.G.B.D sans modification du reste du code ;
- De plus le support des architectures 2-Tiers et 3-Tiers sans modification du code permet par exemple d'effectuer un passage à l'échelle par la migration d'une application 2-Tiers vers 3-Tiers.