Różnica między EJB2 a EJB3

EJB2 vs EJB3

EJB (Enterprise JavaBeans) to Java API (interfejs programowania aplikacji) znaleziony w specyfikacji Java EE (Java Platform, Enterprise Edition). EJB opisuje model architektoniczny do tworzenia aplikacji korporacyjnych. Jest to zarządzany model po stronie serwera, który jest w stanie uchwycić logikę biznesową aplikacji korporacyjnej. IBM jest oryginalnym twórcą EJB, który opracował go w 1997 r. Firma Sun Microsystems przyjęła go w 1999 r.

Przed wprowadzeniem EJB ustalono, że rozwiązania problemów występujących w wewnętrznym kodzie biznesowym były często ponownie wdrażane przez programistów. W rezultacie wprowadzono EJB w celu rozwiązania tych powszechnych problemów, takich jak trwałość, integralność transakcyjna i bezpieczeństwo. EJB zapewnia standardowe sposoby radzenia sobie z tymi problemami zaplecza, określając sposób, w jaki serwer aplikacji powinien przetwarzać transakcje, integrować się z usługami JPA (Java Persistence API), obsługiwać kontrolę współbieżności, obsługi zdarzeń JMS (Java Message Service), rozwiązać problemy z nazewnictwem za pomocą JNDI Java Naming and Directory Interface), twórz bezpieczne programy za pomocą JCE (Java Cryptography Extension) i JAAS (Java Authentication and Authorization Service), wdrażaj komponenty, komunikuj się zdalnie z RMI-IIOP (interfejs Java Remote Method Invocation przez Internet Inter-Orb Protocol) , rozwijaj usługi sieciowe, wywołuj metody asynchroniczne i korzystaj z usługi Timer.

EJB2

EJB2 (EJB 2.0) został wydany 22 sierpnia 2001 r. Opisuje specyfikację tworzenia rozproszonych aplikacji obiektowych w Javie poprzez połączenie narzędzi opracowanych przez różnych dostawców. Jednym z głównych celów EJB2 było umożliwienie programistom łatwiejszego tworzenia aplikacji korporacyjnych bez konieczności rozumienia szczegółów niskiego poziomu, takich jak wielowątkowość i pula połączeń. Kolejnym celem było umożliwienie programistom napisania „Fasoli” raz i uruchomienia w dowolnym miejscu bez ponownej kompilacji (przestrzeganie hasła „Napisz raz, uruchom w dowolnym miejscu” języka programowania Java). Ponadto EJB2 ma na celu umożliwienie komponentom opracowanym przez różnych dostawców łatwej współpracy oraz umożliwienie dostawcom pisania rozszerzeń dla swoich produktów, które mogą obsługiwać EJB.

EJB3

EJB3 (EJB 3.0) został wydany 11 maja 2006 r. EJB3 ułatwił programistom życie, umożliwiając im stosowanie adnotacji zamiast deskryptorów wdrażania, które były używane w poprzednich wersjach. EJB3 zawiera interfejs biznesowy i konkretny komponent bean, który może implementować ten interfejs biznesowy, eliminując potrzebę używania interfejsów domowych / zdalnych i pliku ejb-jar.xml. Ogólna wydajność EJB3 jest znacznie ulepszona w porównaniu do EJB2, a w tej wersji EJB znacznie wzrosła konfigurowalność, elastyczność i przenośność..

Jaka jest różnica między EJB2 a EJB3?

EJB3 ma zauważalną poprawę konfiguracji i wydajności w porównaniu do EJB2. Jednym z powodów tego wzrostu wydajności jest użycie POJO (Plain Old Java Object) z metadanymi i deskryptorami wdrażania XML przez EJB3 zamiast wyszukiwania JNDI używanego w EJB2 dla odniesień do obiektów. Konfiguracja EJB3 jest znacznie prostsza, ponieważ programista nie musi implementować interfejsów domowych / zdalnych i innych (np. SessionBean), co eliminuje potrzebę korzystania z metod wywołania zwrotnego kontenera (takich jak ejbActivate i ejbStore).

Ponadto EJB3 jest lepszy niż EJB2 pod względem elastyczności i przenośności. Na przykład łatwo jest przekonwertować jednostki EJB3 na DAO (Data Access Object) i odwrotnie, ponieważ jednostki EJB3 są lekkie (w przeciwieństwie do ciężkich jednostek EJB2, które implementują wyżej wymienione interfejsy). Zapytania do bazy danych napisane w EJB3 są bardzo elastyczne, ponieważ wykorzystuje on wyrafinowany EJB-QL, zamiast starszej wersji EJB-QL, który miał kilka ograniczeń. EJB3 usuwa wszystkie problemy związane z przenośnością EJB2 (który wykorzystuje komponenty bean jednostek do dostępu do bazy danych), obsługując bardziej uogólniony JPA dla wszystkich transakcji danych.

W przeciwieństwie do EJB2, który wymaga wykonania kontenera EJB, EJB3 może być wykonany w niezależnej maszynie JVM (wirtualnej maszynie Java) bez konieczności używania kontenerów (jest to możliwe, ponieważ nie implementuje standardowych interfejsów). W przeciwieństwie do EJB2, EJB3 można łatwo podłączyć z dostawcami trwałości oferowanymi przez strony trzecie. Inną ważną różnicą między EJB3 i EJB2 jest to, że EJB3 może korzystać z zabezpieczeń opartych na adnotacjach, podczas gdy EJB2 korzysta z zabezpieczeń opartych na deskryptorach wdrażania. Oznacza to, że zadania konfiguracyjne i konfiguracyjne są znacznie łatwiejsze w EJB3, a także znacznie zmniejsza się koszty ogólne wydajności w porównaniu do EJB2.