Enterprise JavaBeans

Enterprise JavaBeans (EJB) – technologia działająca po stronie serwera, która jest jednym z elementów specyfikacji JEE. EJB jest podobny do podzbioru możliwości JEE w kontekście zarządzania ziarnami (ang. beans), udostępniającymi usługi takie jak transakcyjność, trwałość, rozproszenie, bezpieczeństwo, wielodostęp itp. Jedyną rzeczą wymaganą od programisty korzystającego ze specyfikacji EJB jest dostosowanie się do pewnego interfejsu EJB (wymogów implementacyjnych), którego zastosowanie zwalnia użytkownika EJB (dostawcy ziarna lub całego modułu ziaren EJB) z konieczności opracowywania własnych metod obsługi komponentów.

Idea EJB opiera się na tworzeniu komponentów (ziaren EJB), które mogą być osadzane na serwerze aplikacji (tzw. kontenerze EJB), który z kolei udostępnia je do wykonania lokalnie (dostęp z części aplikacji uruchomionej na tej samej wirtualnej maszynie) lub zdalnie poprzez protokół RMI over IIOP.

Wyróżnia się trzy główne rodzaje ziaren EJB:

  • sesyjne EJB (ang. session EJB) bezstanowe i stanowe,
  • sterowane komunikatami EJB (ang. message-driven EJB),
  • encyjne EJB (ang. entity EJB) (w EJB 3.0 zastąpione przez encje, które doczekały się własnej specyfikacji - Java Persistence API - wciąż jednak będące częścią specyfikacji EJB).

Każde z ziaren ma różne zastosowanie. Ziarna sesyjne są używane do umieszczania w nich logiki aplikacji - kodu, który przetwarza dane. Encyjne EJB reprezentują w sposób obiektowy dane (np. dostarczają obiektowego spojrzenia na relacyjną bazę danych). Ziarna sterowane komunikatami znajdują zastosowanie w przetwarzaniu asynchronicznym i w zaawansowanych modelach współpracy oprogramowania. Np. model abonent-dostawca: bean rejestruje się jako dostawca pewnej usługi, klienci mogą zarejestrować się jako abonenci.

Główną zaletą EJB jest nakierowanie projektanta na pewne sprawdzone sposoby rozwiązania typowych problemów w systemie rozproszonym: zarządzanie połączeniami, transakcja rozproszona, mapowanie danych na model obiektowy itp.

Zobacz też edytuj

Linki zewnętrzne edytuj