Architektura EJB

Ten temat zawiera ogólny przegląd architektury komponentów rozproszonych zdefiniowanej w specyfikacji architektury Sun Microsystems Enterprise JavaBeans™ (EJB).

Pełne specyfikacje i opisy technologii EJB są dostępne w serwisie WWW java.sun.com.

Komponenty EJB są pod różnymi względami korzystne dla programistów aplikacji:

Komponenty EJB
Komponent EJB to niewizualny komponent rozproszonej, zorientowanej na transakcje aplikacji korporacyjnej. Komponenty EJB są zazwyczaj wdrażane w kontenerach EJB i uruchamiane na serwerach EJB. Można je dostosować, zmieniając ich deskryptory wdrażania, i złożyć z innymi komponentami bean, aby utworzyć nowe aplikacje. Istnieją trzy typy komponentów EJB: komponenty bean sesji, komponenty bean encji i komponenty bean sterowane komunikatami.
  • Komponenty bean sesji: komponenty bean sesji są nietrwałymi komponentami EJB. Mogą one być stanowe lub bezstanowe. Stanowy komponent bean sesji działa w imieniu pojedynczego klienta i zachowuje informacje o sesji właściwe dla klienta (tzw. stan konwersacji) na potrzeby wielu transakcji i wywołań metod. Komponent taki istnieje przez czas trwania sesji klient/serwer. Bezstanowy komponent bean sesji, dla odmiany, nie zachowuje stanu konwersacji. Bezstanowe komponenty bean sesji są łączone w pule przez ich kontener, aby mogły wykonywać wiele żądań wielu klientów.
  • Komponenty bean encji: komponenty bean encji to komponenty EJB, które zawierają trwałe dane i mogą być zapisywane w różnych trwałych składnicach danych. Każdy komponent bean encji ma własną tożsamość. Komponenty bean encji, które zarządzają własną trwałością, są nazywane komponentami bean encji o trwałości sterowanej przez komponent bean (BMP) . Komponenty bean, które delegują swoją trwałość na kontener EJB, są nazywane komponentami bean encji o trwałości sterowanej przez kontener (CMP).
  • Komponenty bean sterowane komunikatami: komponenty bean sterowane komunikatami to komponenty EJB, które otrzymują komunikaty JMS i je przetwarzają. W odróżnieniu od komponentów bean sesji i encji komponenty bean sterowane komunikatami nie mają interfejsów. Są one dostępne wyłącznie przez przesyłanie komunikatów i nie zachowują żadnego stanu konwersacji. Komponenty bean sterowane komunikatami zezwalają na komunikację asynchroniczną między kolejką a nasłuchiwaniem, a także umożliwiają oddzielenie przetwarzania komunikatów od logiki biznesowej.
Zdalny widok klienta
Specyfikacja zdalnego widoku klienta została udostępniona, poczynając od EJB 1.1. Widok zdalnego klienta komponentu EJB jest niezależny od położenia. Klient działający w tej samej maszynie JVM co instancja komponentu bean używa tego samego interfejsu API, aby uzyskać dostęp do komponentu bean, co klient działający w innej maszynie JVM na tym samym lub innym komputerze.
  • Zdalny interfejs: zdalny interfejs określa zdalne metody biznesowe, które klient może wywoływać w komponencie EJB.
  • Zdalny interfejs macierzysty: zdalny interfejs macierzysty określa metody używane przez zdalnych klientów do lokalizacji, tworzenia i usuwania instancji klas komponentów EJB.
Lokalny widok klienta
Specyfikacja lokalnego widoku klienta jest dostępne w EJB w wersji 2.0 lub nowszej. W odróżnieniu od zdalnego widoku klienta, lokalny widok klienta komponentu bean jest zależny od położenia. Dostęp lokalnego widoku klienta do komponentu EJB wymaga zarówno lokalnego klienta, jak i komponentu EJB, który udostępnia lokalny widok klienta w tej samej maszynie JVM. W związku z tym lokalny widok klienta nie zapewnia przezroczystości położenia, którą zapewnia zdalny widok klienta. Lokalne interfejsy i lokalne interfejsy macierzyste umożliwiają obsługę uproszczonego dostępu z komponentu EJB do klientów lokalnych. Komponenty bean sesji i encji mogą być ściśle powiązane ze swoimi klientami, co umożliwia dostęp bez narzutu zazwyczaj związanego ze zdalnymi wywołaniami metod.
  • Lokalny interfejs: lokalny interfejs to uproszczona wersja zdalnego interfejsu dla klientów lokalnych. Zawiera metody logiki biznesowej, które mogą być wywoływane przez lokalnego klienta.
  • Lokalny interfejs macierzysty: lokalny interfejs macierzysty określa metody używane przez lokalnych klientów do lokalizacji, tworzenia i usuwania instancji klas komponentów EJB.
Widok klienta usługi WWW
W specyfikacji EJB 2.1 architektury EJB umożliwiono obsługę usług WWW. Klientem dla komponentu bean sesji może być klient usług WWW. Klient usług WWW może korzystać z widoku klienta usługi WWW bezstanowego komponentu bean sesji mającego odpowiedni interfejs punktu końcowego usługi.
  • Interfejs punktu końcowego usługi: Interfejs punktu końcowego usługi dla bezstanowego komponentu bean sesji udostępnia funkcję komponentu bean sesji jako punkt końcowy usługi WWW. W dokumencie WSDL (Web Service Description Language) usługi WWW jest ona opisana jako zestaw punktów końcowych operujących na komunikatach. W dokumencie WSDL interfejs punktu końcowego usługi bezstanowego komponentu bean sesji może być zawarty jako jeden z punktów końcowych. Istniejący bezstanowy komponent bean sesji można zmodyfikować, włączając do niego widok klienta usługi WWW; można również odwzorować interfejs punktu końcowego usługi z istniejącego dokumentu WSDL, aby udostępnić poprawny interfejs.

    Widok klienta usługi WWW jest niezależny od położenia i dostępny przez zdalne wywołania

Plik JAR klienta EJB
Plik JAR klienta EJB to opcjonalny plik JAR, który może zawierać interfejsy klienta wymagane przez program klienta do korzystania z widoków klienta komponentów EJB zawartych w pliku JAR EJB. Jeśli plik JAR klienta EJB nie zostanie utworzony dla modułu EJB, wszystkie klasy interfejsu klienta będą się znajdowały w pliku JAR EJB. Domyślnie w środowisku roboczym są tworzone projekty JAR klienta EJB dla każdego projektu EJB.
Kontener EJB
Kontener EJB to środowisko wykonawcze służące do zarządzania komponentem lub komponentami EJB. Kontener EJB zarządza cyklami życia komponentów EJB, koordynuje rozproszone transakcje i implementuje zabezpieczenia obiektu. Generalnie, każdy kontener EJB jest udostępniony przez serwer EJB i zawiera zestaw komponentów EJB uruchamianych na serwerze.
Deskryptor wdrażania
Deskryptor wdrażania to plik XML połączony z komponentami EJB w pliku JAR EJB lub pliku EAR. Zawiera on metadane opisujące treść i strukturę komponentów EJB oraz informacje o bezpieczeństwie i transakcji wykonawczej dla kontenera EJB.
Serwer EJB
Serwer EJB to aplikacja lub proces wysokiego poziomu, który udostępnia środowisko wykonawcze do obsługi wykonywania aplikacji serwera wykorzystujących komponenty EJB. Serwer EJB udostępnia usługę nazw dostępną na podstawie nazw JNDI, koordynuje przydzielanie zasobów do aplikacji klienckich i zarządza nimi, umożliwia dostęp do zasobów systemu i udostępnia usługę transakcji. Serwer EJB może być udostępniony np. przez serwer aplikacji lub bazy danych.

(C) Copyright IBM Corporation 2000, 2005. Wszelkie prawa zastrzeżone.