-
Java EE 5
Aujourd’hui de nombreux projets Java EE sont construits autour de spécifications communes.
On peut citerEJB :
La technologie EJB ou entreprise JavaBeans est une architecture de composant logiciels côtés serveurs pour la plateforme de développement JEE. Cette architecture définie un cadre pour la création de composants distribués (déployés sur des machines distantes).
La spécification EJB permet de séparer l’abstraction de données des services de l’application. Elle incite de plus à développer des composants réutilisables et autonomes et permet une gestion affinée des transactions métiers grâce à JTA.
Intégrés à la plate-forme JEE en 2001 en version 2.0, les EJBs ont pour but de fournir une technologie de composants distribuables et transactionnels. La lourdeur d’EJB 2.0, puis 2.1 furent à l’origine d’une levée de bouclier de la part d’un certain nombre d’acteurs du monde Java.
En 2004, Rod Johnson et Juergen Holler lancent le framework Spring, qui constitue une alternative à EJB 2.1 en proposant la création de composants (bean) transactionnels et supportant l’injection de dépendance.
En 2005, EJB 3.0 voit le jour. Il n’a pas grand chose à voir avec son prédécesseur si ce n’est le nom. En effet, EJB 3.0 est une technologie très puissante, et beaucoup plus facile à mettre en œuvre que son ancêtre.JPA via Hibernate :
Hibernate est un Framework java de mapping objet relationnel, implémentant JPA. Il permet de faire le mapping entre Objets Java et Objets stockés en base relationnelle. De plus il en assure la persistance.
Hibernate a été écrit sous la responsabilité de Gavin King qui fait partie de l’équipe JBoss et qui est aussi le fondateur de Seam.
Il permet un gain de productivité énorme dans le sens ou il utilise la structure d’objet annotés avec JPA pour créer et modifier les tables.
Concrètement, cela veut dire qu’Hibernate permet de manipuler les données d’une base de données relationnelle sous forme d’objet.JSF :
JSF ou Java Server Faces est un framework java pour le développement de clients riches pour les applications web. Contrairement à la majorité des frameworks MVC à base d’actions, JSF est basé sur la notions de composant gérant des événements, il reprend le modèle d’autres framework pour l’IHM tel que Swing ou SWT ou l’état d’un composant est enregistré lors du rendu de la page pour être ensuite restauré au retour de la requête.
Malheureusement lorsqu’il voit le jour en 2004, JSF est marqué par un certain nombre de défauts qui ont considérablement ralenti son adoption (complexité à mettre en œuvre, lourdeur des fichiers de configuration XML, impossibilité d’utiliser du code HTML, pas de mécanisme de templating). Facelets apportera une solution aux deux derniers points.
Ces défauts ont considérablement ralenti l’adoption de JSF tout en favorisant l’émergence de framework orientés composant comme Wicket.
Aujourd’hui avec Seam les derniers défauts de JSF sont levés et l’arrivée de JSF 2 permettra d’unifier toutes les technologies utilisées pour rendre JSF pleinement exploitable pour le développement web.Mais on peut aussi citer JMS, JAAS, EL etc etc …
Ces technologies sont très nombreuses, et on ne sait parfois pas quoi choisir pour un cas d’utilisation bien précis. Il est aussi courant de n’avoir besoin que d’une toute petite partie d’une technologie mais d’être rebutée à l’utiliser vu la complexité de configuration et d’intégration qu’elle va apporter.Bien que très puissants, JSF et EJB 3.0 sont très éloignés. Créer une application JEE 5.0 nécessite donc beaucoup de code pour les faire cohabiter.
Seam a été conçu pour combler ce vide et faire la jointure entre ces deux technologies.
Toutefois, Seam intègre aussi un conteneur de composant permettant de se passer des EJB (ou même, d’utiliser Spring) tout en conservant un moteur transactionnel.RichFaces
RichFaces développé par JBoss est une bibliothèque de composants JSF et Ajax open-source et personnalisables à volonté, aussi bien graphiquement que dans leur comportement.
En effet les composants du framework JSF sont pauvres et peu nombreux, l’apparition de bibliothèques de composant a donc rapidement eu lieu, on peut citer aussi ICEFaces, et Apache Tomahawk.


