Unterschied Zwischen EJB2 Und EJB3

Unterschied Zwischen EJB2 Und EJB3
Unterschied Zwischen EJB2 Und EJB3

Video: Unterschied Zwischen EJB2 Und EJB3

Video: Unterschied Zwischen EJB2 Und EJB3
Video: Working with EJB3 (EJB Tutorial Part 1) 2024, April
Anonim

EJB2 gegen EJB3

EJB (Enterprise JavaBeans) ist eine Java-API (Application Programming Interface), die in der Java EE-Spezifikation (Java Platform, Enterprise Edition) enthalten ist. EJB beschreibt ein Architekturmodell für die Entwicklung von Unternehmensanwendungen. Dies ist ein verwaltetes serverseitiges Modell, das die Geschäftslogik der Unternehmensanwendung erfassen kann. IBM ist der ursprüngliche Entwickler von EJB, der es 1997 entwickelt hat. Sun Microsystems hat es 1999 übernommen.

Vor der Einführung von EJB wurde festgestellt, dass Lösungen für Probleme im Back-End-Geschäftscode von den Programmierern häufig erneut implementiert wurden. Infolgedessen wurde EJB eingeführt, um diese allgemeinen Probleme wie Persistenz, Transaktionsintegrität und Sicherheit anzugehen. EJB bietet Standardmethoden zur Behandlung dieser Back-End-Probleme, indem festgelegt wird, wie der Anwendungsserver Transaktionen verarbeiten, in JPA-Dienste (Java Persistence API) integrieren, die Parallelitätskontrolle behandeln, JMS-Ereignisse (Java Message Service) behandeln und Namensprobleme mit JNDI lösen soll (Java Naming and Directory Interface), Entwicklung sicherer Programme mit JCE (Java Cryptography Extension) und JAAS (Java Authentication and Authorization Service), Bereitstellung von Komponenten, Remote-Kommunikation mit RMI-IIOP (Java Remote Method Invocation-Schnittstelle über das Internet Inter-Orb Protocol),Entwickeln Sie Webdienste, rufen Sie asynchrone Methoden auf und verwenden Sie den Timer-Dienst.

EJB2

EJB2 (EJB 2.0) wurde am 22. August 2001 veröffentlicht. Es beschreibt die Spezifikation für die Entwicklung verteilter objektorientierter Anwendungen in Java durch Kombination von Tools, die von verschiedenen Anbietern entwickelt wurden. Eines der Hauptziele von EJB2 war es, Programmierern die Entwicklung von Unternehmensanwendungen zu erleichtern, ohne Details auf niedriger Ebene wie Multithreading und Verbindungspooling verstehen zu müssen. Ein weiteres Ziel war es, Programmierern zu ermöglichen, eine „Bean“einmal zu schreiben und ohne Neukompilierung überall auszuführen (unter Einhaltung des Slogans „Einmal schreiben, überall ausführen“der Java-Programmiersprache). Darüber hinaus sollte EJB2 es Komponenten, die von verschiedenen Anbietern entwickelt wurden, ermöglichen, problemlos zusammenzuarbeiten, und Anbietern ermöglichen, Erweiterungen für ihre Produkte zu schreiben, die EJBs unterstützen können.

EJB3

EJB3 (EJB 3.0) wurde am 11. Mai 2006 veröffentlicht. EJB3 machte Programmierern das Leben sehr einfach, indem es ihnen ermöglichte, Anmerkungen anstelle von Bereitstellungsdeskriptoren zu verwenden, die in früheren Versionen verwendet wurden. EJB3 enthält eine Geschäftsschnittstelle und eine bestimmte Entity-Bean, die diese Geschäftsschnittstelle implementieren kann, sodass keine Heim- / Remote-Schnittstellen und die Datei ejb-jar.xml verwendet werden müssen. Die Gesamtleistung von EJB3 ist im Vergleich zu EJB2 erheblich verbessert, und die Konfigurierbarkeit, Flexibilität und Portabilität dieser Version von EJB hat erheblich zugenommen.

Was ist der Unterschied zwischen EJB2 und EJB3?

EJB3 hat eine spürbare Verbesserung der Konfiguration und Leistung gegenüber EJB2. Ein Grund für diese Leistungsverbesserung ist die Verwendung des POJO (Plain Old Java Object) mit Metadaten und XML-Bereitstellungsdeskriptoren durch EJB3 anstelle von JNDI-Lookups, die in EJB2 für Objektreferenzen verwendet werden. Die Konfiguration von EJB3 ist viel einfacher, da der Programmierer keine Home / Remote-Schnittstellen und andere (z. B. SessionBean) implementieren muss, wodurch die Verwendung von Container-Rückrufmethoden (wie ejbActivate und ejbStore) entfällt.

Darüber hinaus ist EJB3 in den Bereichen Flexibilität und Portabilität besser als EJB2. Beispielsweise ist es einfach, EJB3-Entitäten in DAO (Data Access Object) zu konvertieren und umgekehrt, da EJB3-Entitäten leichtgewichtig sind (im Gegensatz zu den schwergewichtigen EJB2-Entitäten, die die oben genannten Schnittstellen implementieren). In EJB3 geschriebene Datenbankabfragen sind sehr flexibel, da anstelle der älteren Version von EJB-QL, die mehrere Einschränkungen aufwies, eine verfeinerte EJB-QL verwendet wird. EJB3 beseitigt alle Portabilitätsprobleme von EJB2 (das Entity Beans für den Datenbankzugriff verwendet), indem allgemeinere JPA für alle Datentransaktionen unterstützt werden.

Im Gegensatz zu EJB2, für dessen Ausführung ein EJB-Container erforderlich ist, kann EJB3 in einer unabhängigen JVM (Java Virtual Machine) ausgeführt werden, ohne dass Container verwendet werden müssen (dies ist möglich, da keine Standardschnittstellen implementiert sind). Im Gegensatz zu EJB2 kann EJB3 problemlos mit Persistenzanbietern von Drittanbietern verbunden werden. Ein weiterer wichtiger Unterschied zwischen EJB3 und EJB2 besteht darin, dass EJB3 annotationsbasierte Sicherheit verwenden kann, während EJB2 auf Bereitstellungsdeskriptoren basierende Sicherheit verwendet. Dies bedeutet, dass Konfigurations- und Einrichtungsaufgaben in EJB3 viel einfacher sind und der Leistungsaufwand im Vergleich zu EJB2 erheblich reduziert wird.

Empfohlen: