Java RMI-wprowadzenie

ogłoszenia

RMI oznacza Remote Method Invocation. Jest to mechanizm, który pozwala obiektowi przebywającemu w jednym systemie (JVM) na dostęp/wywołanie obiektu działającego na innym JVM.

RMI służy do tworzenia aplikacji rozproszonych; zapewnia zdalną komunikację między programami Java. Jest on dostarczany w pakiecie java.rmi.

Architektura aplikacji RMI

w aplikacji RMI piszemy dwa programy, program serwerowy (rezyduje na serwerze) i program kliencki (rezyduje na kliencie).

  • wewnątrz programu serwera tworzony jest obiekt zdalny, a odniesienie do tego obiektu jest udostępniane klientowi (za pomocą rejestru).

  • program klient żąda zdalnych obiektów na serwerze i próbuje wywołać jego metody.

poniższy diagram przedstawia architekturę aplikacji RMI.

Architektura RMI

omówmy teraz komponenty tej architektury.

  • warstwa transportowa-ta warstwa łączy klienta i serwer. Zarządza istniejącym połączeniem, a także tworzy nowe połączenia.

  • Stub-stub jest reprezentacją (proxy) zdalnego obiektu w kliencie. Znajduje się w systemie klienckim; działa jako brama dla programu klienckiego.

  • szkielet-jest to obiekt, który znajduje się po stronie serwera. stub komunikuje się z tym szkieletem, aby przekazać żądanie do zdalnego obiektu.

  • Rrl (Remote Reference Layer) – jest to warstwa, która zarządza referencjami dokonanymi przez Klienta do odległego obiektu.

działanie aplikacji RMI

poniższe punkty podsumowują sposób działania aplikacji RMI−

  • kiedy klient wykonuje połączenie do zdalnego obiektu, jest on odbierany przez stub, który ostatecznie przekazuje to żądanie do RRL.

  • kiedy RRL po stronie klienta otrzymuje żądanie, wywołuje metodę o nazwie invoke () obiektu remoteRef. Przekazuje żądanie do RRL po stronie serwera.

  • RRL po stronie serwera przekazuje żądanie do szkieletu (proxy na serwerze), który ostatecznie wywołuje wymagany obiekt na serwerze.

  • wynik jest przekazywany z powrotem do klienta.

Marshalling i Unmarshalling

gdy klient wywołuje metodę, która akceptuje parametry na zdalnym obiekcie, parametry są dołączane do wiadomości przed wysłaniem przez sieć. Parametry te mogą być typu prymitywnego lub obiektów. W przypadku typu prymitywnego parametry są łączone i dołączany jest do nich nagłówek. W przypadku, gdy parametry są obiektami, wtedy są serializowane. Proces ten jest znany jako marshalling.

po stronie serwera, spakowane parametry są rozdzielane, a następnie wywoływana jest wymagana metoda. Proces ten jest znany jako unmarshaling.

rejestr RMI

rejestr RMI jest przestrzenią nazw, w której znajdują się wszystkie obiekty serwera. Za każdym razem, gdy serwer tworzy obiekt, rejestruje go za pomocą RMIregistry (przy użyciu metod bind() lub reBind ()). Są one rejestrowane przy użyciu unikalnej nazwy znanej jako bind name.

aby wywołać obiekt zdalny, klient potrzebuje odniesienia do tego obiektu. W tym czasie klient pobiera obiekt z rejestru przy użyciu jego nazwy bind (przy użyciu metody lookup ()).

Poniższa ilustracja wyjaśnia cały proces –

 rejestr

cele RMI

Poniżej znajdują się cele RMI−

  • aby zminimalizować złożoność aplikacji.
  • aby zachować bezpieczeństwo typu.
  • rozdawanie śmieci.
  • Minimalizuj różnicę między pracą z obiektami lokalnymi i zdalnymi.
ogłoszenia



+