Différence entre EJB2 et EJB3

Différence entre EJB2 et EJB3
Différence entre EJB2 et EJB3

Vidéo: Différence entre EJB2 et EJB3

Vidéo: Différence entre EJB2 et EJB3
Vidéo: Que peut-on faire avec le nouveau grille-pain multifonctions Magimix ? Thomas vous explique ! 2024, Novembre
Anonim

EJB2 contre EJB3

EJB (Enterprise JavaBeans) est une API Java (Application Programming Interface) trouvée dans la spécification Java EE (Java Platform, Enterprise Edition). EJB décrit un modèle architectural pour le développement d'applications d'entreprise. Il s'agit d'un modèle côté serveur géré capable de capturer la logique métier de l'application d'entreprise. IBM est le créateur original d'EJB qui l'a développé en 1997. Sun Microsystems l'a adopté en 1999.

Avant l'introduction des EJB, il a été constaté que les solutions aux problèmes rencontrés dans le code métier back-end étaient fréquemment réimplémentées par les programmeurs. En conséquence, les EJB ont été introduits pour résoudre ces problèmes courants tels que la persistance, l'intégrité transactionnelle et la sécurité. EJB fournit des moyens standard pour gérer ces problèmes de back-end, en spécifiant comment le serveur d'applications doit traiter les transactions, s'intégrer aux services JPA (Java Persistence API), gérer le contrôle de la concurrence, gérer les événements JMS (Java Message Service), résoudre les problèmes de nommage avec JNDI (Java Naming and Directory Interface), développer des programmes sécurisés avec JCE (Java Cryptography Extension) et JAAS (Java Authentication and Authorization Service), déployer des composants, communiquer à distance avec RMI-IIOP (Java Remote Method Invocation interface over the Internet Inter-Orb Protocol), développer des services Web, invoquer des méthodes asynchrones et utiliser le service Timer.

EJB2

EJB2 (EJB 2.0) a été publié le 22 août 2001. Il décrit les spécifications pour le développement d'applications distribuées orientées objet en Java en combinant des outils développés par différents fournisseurs. L'un des principaux objectifs d'EJB2 était de permettre aux programmeurs de développer plus facilement des applications d'entreprise sans avoir à comprendre les détails de bas niveau, tels que le multithreading et le regroupement de connexions. Un autre objectif était de permettre aux programmeurs d'écrire un "Bean" une fois et de l'exécuter n'importe où sans recompilation (en adhérant au slogan "écrire une fois, exécuter n'importe où" du langage de programmation Java). De plus, EJB2 visait à permettre aux composants développés par différents fournisseurs d'interagir facilement et à permettre aux fournisseurs d'écrire des extensions pour leurs produits qui peuvent prendre en charge les EJB.

EJB3

EJB3 (EJB 3.0) est sorti le 11 mai 2006. EJB3 a facilité la vie des programmeurs en leur permettant d'utiliser des annotations à la place des descripteurs de déploiement qui étaient utilisés dans les versions précédentes. EJB3 contient une interface métier et un bean entité spécifique qui peut implémenter cette interface métier, éliminant ainsi le besoin d'utiliser des interfaces home/distant et le fichier ejb-jar.xml. Les performances globales d'EJB3 sont nettement améliorées par rapport à EJB2, et il y a une augmentation considérable de la configurabilité, de la flexibilité et de la portabilité dans cette version d'EJB.

Quelle est la différence entre EJB2 et EJB3 ?

EJB3 a une amélioration notable de la configuration et des performances par rapport à EJB2. L'une des raisons de cette amélioration des performances est l'utilisation du POJO (Plain Old Java Object) avec des métadonnées et des descripteurs de déploiement XML par EJB3 au lieu des recherches JNDI utilisées dans EJB2 pour les références d'objets. La configuration d'EJB3 est beaucoup plus simple car le programmeur n'a pas besoin d'implémenter les interfaces Home/Remote et autres (par exemple SessionBean), ce qui supprime le besoin d'utiliser des méthodes de rappel de conteneur (telles que ejbActivate et ejbStore).

De plus, EJB3 est meilleur que EJB2 dans les domaines de la flexibilité et de la portabilité. Par exemple, il est facile de convertir des entités EJB3 en DAO (Data Access Object) et vice versa car les entités EJB3 sont légères (par opposition aux entités EJB2 lourdes, qui implémentent les interfaces mentionnées ci-dessus). Les requêtes de base de données écrites en EJB3 sont très flexibles car elles utilisent un EJB-QL raffiné, à la place de l'ancienne version d'EJB-QL, qui présentait plusieurs limitations. EJB3 supprime tous les problèmes de portabilité d'EJB2 (qui utilise des beans entité pour l'accès à la base de données) en prenant en charge un JPA plus généralisé pour toutes les transactions de données.

Contrairement à EJB2, qui a besoin d'un conteneur EJB pour s'exécuter, EJB3 peut être exécuté dans une JVM (Java Virtual Machine) indépendante sans avoir à utiliser de conteneurs (cela est possible car il n'implémente pas d'interfaces standard). Contrairement à EJB2, EJB3 est facilement connectable avec des fournisseurs de persistance proposés par des tiers. Une autre différence importante entre EJB3 et EJB2 est qu'EJB3 peut utiliser une sécurité basée sur des annotations, tandis qu'EJB2 utilise une sécurité basée sur des descripteurs de déploiement. Cela signifie que les tâches de configuration et d'installation sont beaucoup plus faciles dans EJB3, et il y a une réduction considérable des surcharges de performances par rapport à EJB2.

Conseillé: