Różnica Między EJB2 I EJB3

Różnica Między EJB2 I EJB3
Różnica Między EJB2 I EJB3

Wideo: Różnica Między EJB2 I EJB3

Wideo: Różnica Między EJB2 I EJB3
Wideo: What are EJBs Enterprise Java Beans? 2024, Marzec
Anonim

EJB2 vs EJB3

EJB (Enterprise JavaBeans) to Java API (Application Programming Interface) znajdująca się w specyfikacji Java EE (Java Platform, Enterprise Edition). EJB opisuje model architektoniczny służący do tworzenia aplikacji korporacyjnych. Jest to model zarządzany po stronie serwera, który może uchwycić logikę biznesową aplikacji korporacyjnej. IBM jest oryginalnym twórcą EJB, który opracował go w 1997 roku. Firma Sun Microsystems przyjęła go w 1999 roku.

Przed wprowadzeniem EJB stwierdzono, że rozwiązania problemów występujących w kodzie biznesowym zaplecza 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ść transakcji i bezpieczeństwo. EJB zapewnia standardowe sposoby rozwiązywania tych problemów z zapleczem, określając, w jaki sposób serwer aplikacji powinien przetwarzać transakcje, integrować się z usługami JPA (Java Persistence API), obsługiwać kontrolę współbieżności, obsługiwać zdarzenia JMS (Java Message Service), rozwiązywać problemy z nazewnictwem za pomocą JNDI (Java Naming and Directory Interface), twórz bezpieczne programy z 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 internetowe, 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 pulowanie połączeń. Kolejnym celem było umożliwienie programistom jednorazowego napisania „Bean” i uruchomienia go w dowolnym miejscu bez ponownej kompilacji (zgodnie ze sloganem języka Java „napisz raz, uruchom gdziekolwiek”). Ponadto EJB2 miał na celu umożliwienie komponentom opracowanym przez różnych dostawców łatwej współpracy i umożliwienie dostawcom pisania rozszerzeń do ich produktów, które mogą obsługiwać EJB.

EJB3

EJB3 (EJB 3.0) został wydany 11 maja 2006 roku. EJB3 bardzo ułatwił życie programistom, umożliwiając im używanie adnotacji zamiast deskryptorów wdrażania, które były używane w poprzednich wersjach. EJB3 zawiera interfejs biznesowy i specyficzny komponent bean encji, który może zaimplementować ten interfejs biznesowy, eliminując potrzebę używania interfejsów home / remote oraz pliku ejb-jar.xml. Ogólna wydajność EJB3 jest znacznie lepsza w porównaniu z EJB2, aw tej wersji EJB znacznie poprawiono 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 z EJB2. Jednym z powodów tej poprawy wydajności jest użycie POJO (zwykły stary obiekt Java) z metadanymi i deskryptorami wdrażania XML przez EJB3 zamiast wyszukiwań JNDI używanych w EJB2 dla odniesień do obiektów. Konfiguracja EJB3 jest dużo prostsza, ponieważ programista nie musi implementować interfejsów Home / Remote i innych (np. SessionBean), co eliminuje konieczność stosowania metod wywołania zwrotnego kontenera (np. 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ą wspomniane powyżej interfejsy). Zapytania do bazy danych napisane w EJB3 są bardzo elastyczne, ponieważ używają udoskonalonego EJB-QL zamiast starszej wersji EJB-QL, która miała kilka ograniczeń. EJB3 usuwa wszystkie problemy z przenośnością EJB2 (który używa komponentów bean encji 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 kontenera EJB do wykonania, EJB3 może być wykonywany w niezależnej JVM (wirtualnej maszynie Java) bez konieczności używania kontenerów (jest to możliwe, ponieważ nie implementuje on standardowych interfejsów). W przeciwieństwie do EJB2, EJB3 można łatwo podłączyć do dostawców trwałości oferowanych przez strony trzecie. Inną ważną różnicą między EJB3 i EJB2 jest to, że EJB3 może używać zabezpieczeń opartych na adnotacjach, podczas gdy EJB2 używa zabezpieczeń opartych na deskryptorach wdrażania. Oznacza to, że zadania konfiguracyjne i konfiguracyjne są znacznie łatwiejsze w EJB3 i występuje znaczne zmniejszenie narzutów wydajnościowych w porównaniu z EJB2.

Zalecane: