Session Facade

Intencje

Dostarczenie jednolitego, zorientowanego na przepływ sterowania interfejsu do różnych enterprise bean (dalej nazywanych komponentami).

Powody

Różne typy aplikacji używają różnych podzbiorów funkcji do przepływu sterowania. Standardowym rozwiązaniem jest, że obiekt po stronie klienta wywołuje metody bezpośrednio z komponentu. Być może komponent będzie wywoływał metody kolejnych komponentów. Ten sposób rozwiązania powoduje następujące problemy:

  1. Klient musi wiedzieć o związkach miedzy komponentami. Nic nie zabezpiecza komponentów przed nieprawidłowym użyciem.

  2. Kiedy zmienimy API komponentu, obiekt po stronie klienta tez musi zostać zmieniany.

  3. Nawet jeżeli zbiór komponentów (powiązanych przez przepływ sterowania) znajduje się na tym samym serwerze to klient wciąż musi wywoływać zdalne wywołania dla każdego komponentu z osobna. To powoduje duży ruch w sieci.

Rozwiązaniem tego problemu jest session facade, która zapewnia jednolity, zorientowany na przepływ sterowania interfejs do zbioru komponentów. Ta fasada jest implementowana jako sesion bean.

Sequence Diagram Before and After

Struktura

Structure Diagram

Opis

SessionFacade

EnterpriseBeans

Zyski z rozwiązania

Wariancje rozwiązania