ZAWWW-2st1.2-w04.tresc-1.0-Slajd15
Dostęp lokalny czy zdalny?
W celu podjęcia decyzji czy komponent EJB powinien umożliwiać dostęp zdalny czy lokalny, należy odpowiedzieć sobie na kilka pytań.
Po pierwsze, czy związki między poszczególnymi komponentami EJB są ścisłe czy raczej luźne? Jeśli komponenty często wywołują nawzajem swoje metody w celu realizacji złożonego zadania, odpowiedni może być dla nich dostęp lokalny, ze względu na większą efektywność komunikacji.
Po drugie, jakiego typu klienci będą korzystać z komponentu? Jeśli klienci aplikacyjni, to komponent musi pozwalać na dostęp zdalny. Jeśli tylko komponenty, które mogą być zainstalowane na tym samym serwerze aplikacji, to można rozważyć dostęp lokalny.
Po trzecie, czy szczególnie istotna jest skalowalność aplikacji? Jeśli tak, to dostęp zdalny daje więcej możliwości, gdyż umożliwia w razie potrzeby rozproszenie komponentów między serwerami aplikacji.
Ogólnie można stwierdzić, że dostęp zdalny daje większą elastyczność. W roli zdalnego klienta może wystąpić klient działający na tej samej maszynie wirtualnej, a dostęp zdalny umożliwi łatwą zmianę lokalizacji komponentów względem siebie gdy zajdzie taka potrzeba. Zaletą dostępu lokalnego jest większa efektywność.
Analizując wpływ rozproszenia komponentów na wydajność aplikacji, należy stwierdzić, że nie jest on jednoznaczny. Z jednej strony, rozproszenie zmniejsza obciążenie serwerów i zwiększa całkowitą dostępną moc obliczeniową. Z drugiej strony, umieszczenie komponentów aplikacji na tym samym serwerze redukuje koszty komunikacji i umożliwia efektywny dostęp lokalny do EJB.
Na zakończenie dyskusji należy zwrócić uwagę, że interfejs biznesowy komponentu EJB może mieć dwie adnotacje: @Remote i @Local, choć jest to rzadko stosowane.