Enterprise JavaBeans

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Enterprise JavaBeans (EJB) – technologia "po stronie serwera" będąca jednym z elementów specyfikacji Korporacyjnej Javy JEE / J2EE. Na EJB można spojrzeć jak na podzbiór możliwości Korporacyjnej Javy w kontekście zarządzania beanami - ziarnami EJB - udostępniających im usługi jak transakcyjność, trwałość, rozproszenie, bezpieczeństwo, wielodostęp, itp. Jedyne, co wymaga się od programisty korzystającego ze specyfikacji EJB, to dostosowanie 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ę 3 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 - czyli 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 | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]