Différence entre EJB2 et EJB3

Différence entre EJB2 et EJB3

Ejb2 vs ejb3

EJB (Enterprise Javabeans) est une API Java (interface de programmation d'application) trouvée dans Java EE (plate-forme Java, Enterprise Edition). EJB décrit un modèle architectural pour le développement d'applications d'entreprise. Il s'agit d'un modèle géré côté serveur 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 de l'EJB, il a été constaté que les solutions aux problèmes trouvées dans le code d'entreprise back-end étaient fréquemment réimplémentées par les programmeurs. En conséquence, l'EJB a été introduit pour résoudre ces problèmes communs tels que la persistance, l'intégrité transactionnelle et la sécurité. EJB fournit des moyens standard de gérer ces problèmes de dos, en spécifiant comment le serveur d'applications doit traiter les transactions, s'intégrer aux services JPA (Java Persistance API), gérer le contrôle de concurrence, gérer les événements JMS (service de message Java), résoudre les problèmes de dénomination avec JNDI ( Java Naming and Directory Interface), développez des programmes sécurisés avec JCE (Java Cryptographic Extension) et JAAS (Java Authentication and Authorization Service), déploient des composants, communiquez à distance avec RMI-IIOP (interface d'invocation de la méthode à distance Java sur Internet Inter-Orb Protocol) , développer des services Web, invoquer des méthodes asynchrones et utiliser le service de minuterie.

Ejb2

Ejb2 (ejb 2.0) a été publié le 22 août 2001. Il décrit les spécifications pour développer des applications axées sur des objets distribués en Java en combinant des outils développés par différents fournisseurs. L'un des principaux objectifs de l'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 multi-thread et la mise en commun de connexions. Un autre objectif était de permettre aux programmeurs d'écrire une fois «Bean» et d'exécuter n'importe où sans recompilation (adhérer au slogan «Écrire une fois, courir n'importe où» du langage de programmation Java). De plus, EJB2 destiné à permettre aux composants développés par différents fournisseurs d'interopérer facilement et de permettre aux fournisseurs d'écrire des extensions pour leurs produits qui peuvent prendre en charge les EJB.

Ejb3

Ejb3 (ejb 3.0) a été publié le 11 mai 2006. EJB3 a rendu la vie des programmeurs très facile en leur permettant d'utiliser des annotations à la place des descripteurs de déploiement qui ont été utilisés dans les versions précédentes. EJB3 contient une interface commerciale et une entité spécifique qui peut implémenter cette interface commerciale, supprimant le besoin d'utiliser des interfaces domestiques / distantes et l'EJB-JAR.fichier xml. Les performances globales de l'EJB3 sont bien 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 de EJB.

Quelle est la différence entre EJB2 et EJB3?

EJB3 a une amélioration notable de la configuration et des performances sur EJB2. L'une des raisons de cette amélioration des performances est l'utilisation du POJO (Old Java Object) avec des descripteurs de déploiement de métadonnées et XML par EJB3 au lieu des recherches JNDI utilisées dans EJB2 pour les références d'objet. La configuration de l'EJB3 est beaucoup plus simple car le programmeur n'a pas besoin d'implémenter les interfaces domestiques / distantes et autres (E.g. SessionBean), qui supprime la nécessité d'utiliser des méthodes de rappel de conteneurs (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 les entités EJB3 en DAO (objet d'accès aux données) et vice versa parce que les entités EJB3 sont légères (par opposition aux entités EJB2 poids lourds, qui mettent en œuvre les interfaces mentionnées ci-dessus). Les requêtes de base de données écrites dans EJB3 sont très flexibles car elle utilise un EJB-QL raffiné, à la place de l'ancienne version d'EJB-QL, qui avait plusieurs limites. EJB3 supprime tous les problèmes de portabilité de l'EJB2 (qui utilise des haricots d'entité pour l'accès à la base de données) en prenant en charge le JPA plus généralisé pour toutes les transactions de données.

Contrairement à EJB2, qui a besoin d'un conteneur EJB à exécuter, EJB3 peut être exécuté dans un JVM indépendant (machine virtuelle Java) sans avoir à utiliser de conteneurs (cela est possible car il n'implémente pas les interfaces standard). Contrairement à EJB2, EJB3 est facilement enfichable avec des fournisseurs de persistance offerts par des tiers. Une autre différence importante entre EJB3 et EJB2 est que EJB3 peut utiliser la sécurité basée sur l'annotation, tandis que EJB2 a utilisé la sécurité basée sur les descripteurs de déploiement. Cela signifie que les tâches de configuration et de configuration sont beaucoup plus faciles dans EJB3, et il y a une réduction considérable des frais généraux de performance par rapport à EJB2.