Enterprise JavaBeans
Enterprise JavaBeans (EJB) - technologia "po stronie serwera" będąca jednym z elementów specyfikacji Korporacyjnej Javy 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 kontraktu 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 komponenentów.
Idea EJB opiera się na tworzeniu komponentów (ziaren EJB), które mogą być osadzane na serwerze (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) (aktualnie zastąpione przez encje, które doczekały się własnej specyfikacji 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. Mimo to użycie niektórych elementów tej technologii wydaje się wciąż dość kontrowersyjne, mimo wielu zmian w najnowszej edycji specyfikacji EJB 3.0. Np. stosowanie encyjnych EJB oznacza rezygnację z przetwarzania danych w modelu relacyjnym.