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: Największy BŁĄD podczas marynowania mięsa na grilla! 2024, Listopad
Anonim

EJB2 kontra EJB3

EJB (Enterprise JavaBeans) to Java API (interfejs programowania aplikacji) znajdujący się 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 roku. Firma Sun Microsystems przyjęła go w 1999 roku.

Przed wprowadzeniem EJB okazało się, że rozwiązania problemów znalezionych w back-endowym kodzie biznesowym były często ponownie wdrażane przez programistów. W rezultacie wprowadzono EJB, aby rozwiązać te typowe problemy, takie jak trwałość, integralność transakcyjna i bezpieczeństwo. EJB zapewnia standardowe sposoby obsługi tych problemów zaplecza, określając, jak 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 nazewnictwa 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 (Java Remote Method Invocation interface over the Internet Inter-Orb Protocol), twórz usługi sieciowe, wywołuj metody asynchroniczne i korzystaj z usługi Timer.

EJB2

EJB2 (EJB 2.0) został wydany 22 sierpnia 2001. Opisuje specyfikację tworzenia rozproszonych aplikacji obiektowych w Javie poprzez łą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 łączenie połączeń. Kolejnym celem było umożliwienie programistom jednorazowego napisania „fasoli” i uruchomienia w dowolnym miejscu bez rekompilacji (zgodnie z hasłem „napisz raz, uruchom wszędzie” języka programowania Java). Ponadto celem EJB2 było umożliwienie łatwej współpracy komponentów opracowanych przez różnych dostawców oraz umożliwienie dostawcom pisania rozszerzeń dla ich produktów, które obsługują EJB.

EJB3

EJB3 (EJB 3.0) został wydany 11 maja 2006. EJB3 bardzo ułatwił życie programistom, pozwalając im na używanie adnotacji zamiast deskryptorów wdrażania, które były używane w poprzednich wersjach. EJB3 zawiera interfejs biznesowy i konkretny komponent bean encji, który może zaimplementować ten interfejs biznesowy, eliminując potrzebę korzystania z interfejsów domowych/zdalnych oraz pliku ejb-jar.xml. Ogólna wydajność EJB3 jest znacznie poprawiona w porównaniu z EJB2, a w tym wydaniu EJB nastąpił znaczny wzrost konfigurowalności, elastyczności i przenośności.

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 (Plain Old Java Object) z metadanymi i deskryptorami wdrażania XML przez EJB3 zamiast wyszukiwań JNDI używanych w EJB2 dla odwołań do obiektów. Konfiguracja EJB3 jest znacznie prostsza, ponieważ programista nie musi implementować interfejsów Home/Remote i innych (np. SessionBean), co eliminuje konieczność korzystania z kontenerowych metod wywołań zwrotnych (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ć encje EJB3 na DAO (obiekt dostępu do danych) i odwrotnie, ponieważ encje EJB3 są lekkie (w przeciwieństwie do ciężkich encji EJB2, które implementują wyżej wymienione interfejsy). Zapytania bazodanowe napisane w EJB3 są bardzo elastyczne, ponieważ używa dopracowanego EJB-QL, w miejsce starszej wersji EJB-QL, która miała kilka ograniczeń. EJB3 usuwa wszystkie problemy związane z przenośnością EJB2 (który używa elementów bean encji do dostępu do bazy danych), obsługując bardziej uogólnione JPA dla wszystkich transakcji danych.

W przeciwieństwie do EJB2, który wymaga kontenera EJB do wykonania, EJB3 można wykonać w niezależnej maszynie JVM (Java Virtual Machine) 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ć 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, a koszty ogólne wydajności są znacznie mniejsze niż w EJB2.

Zalecana: