Protokół zdalnego wywołania procedury (RPC) w systemie rozproszonym
Co to jest RPC?
Zdalne wywołanie procedury (RPC) jest techniką komunikacji międzyprocesowej. Pełna forma RPC to Remote Procedure Call. Jest używana w aplikacjach klient-serwer. Mechanizmy RPC są używane, gdy program komputerowy powoduje wykonanie procedury lub podprogramu w innej przestrzeni adresowej, która jest kodowana jako normalne wywołanie procedury bez konieczności specjalnego kodowania przez programistę szczegółów zdalnej interakcji.
To wywołanie procedury zarządza również protokołem transportowym niskiego poziomu, takim jak protokół datagramów użytkownika, Transmission Protokół kontrolny/protokół internetowy itp. Służy do przenoszenia danych komunikatów pomiędzy programami.
Rodzaje RPC
Trzy typy RPC to:
- wywołanie zwrotne RPC
- Transmisja RPC
- RPC w trybie wsadowym
wywołanie zwrotne RPC
Ten typ RPC umożliwia paradygmat P2P pomiędzy uczestniczącymi procesami. Pomaga procesowi być zarówno usługą klienta, jak i serwera.
Funkcje wywołania zwrotnego RPC:
- Zdalnie przetwarzane problemy z aplikacjami interaktywnymi
- Oferuje serwer z obsługą klienta
- Wywołanie zwrotne powoduje, że proces klienta czeka
- Zarządzaj blokadami wywołań zwrotnych
- Ułatwia paradygmat peer-to-peer pomiędzy uczestniczącymi procesami.
Transmisja RPC
Broadcast RPC to żądanie klienta, które jest rozgłaszane w sieci i przetwarzane przez wszystkie serwery posiadające metodę przetwarzania tego żądania.
Funkcje Broadcast RPC:
- Umożliwia określenie, czy komunikat żądania klienta ma być rozgłaszany.
- Możesz zadeklarować porty rozgłoszeniowe.
- Pomaga zmniejszyć obciążenie sieci fizycznej
RPC w trybie wsadowym
Tryb wsadowy RPC umożliwia kolejkowanie i rozdzielanie żądań RPC w buforze transmisyjnym po stronie klienta, a następnie wysyłanie ich przez sieć w jednej partii do serwera.
Funkcje RPC w trybie wsadowym:
- Minimalizuje obciążenie związane z wysyłaniem żądań, ponieważ wysyła je przez sieć w jednej partii do serwera.
- Ten typ protokołu RPC jest skuteczny tylko w przypadku aplikacji wymagających niższych stawek za połączenia.
- Wymaga niezawodnego protokołu transmisji.
RPC Architektura
Architektura RPC składa się z pięciu głównych komponentów programu:
- klientem
- Sekcja klienta
- Środowisko wykonawcze RPC
- Odgałęzienie serwera
Jak działa RPC?
Podczas procesu RPC wykonywane są następujące kroki:
Krok 1) Klient, odcinek klienta i jedna instancja środowiska wykonawczego RPC są wykonywane na komputerze klienckim.
Krok 2) Klient rozpoczyna proces pośredniczący klienta, przekazując parametry w zwykły sposób. Sekcja klienta przechowuje dane we własnej przestrzeni adresowej klienta. Prosi także lokalne środowisko wykonawcze RPC o odesłanie do kodu pośredniczącego serwera.
Krok 3) Na tym etapie RPC jest dostępne dla użytkownika poprzez wykonanie regularnej Lokalnej Kalibracji Proceduralnej. RPC Runtime zarządza transmisją wiadomości między siecią przez klienta i serwer. Wykonuje również zadania retransmisji, potwierdzenia, routingu i szyfrowania.
Krok 4) Po zakończeniu procedury serwera wraca do kodu pośredniczącego serwera, który pakuje (zestawia) zwracane wartości w wiadomości. Następnie odcinek serwera wysyła wiadomość z powrotem do warstwy transportowej.
Krok 5) Na tym etapie warstwa transportowa odsyła komunikat wynikowy do warstwy transportowej klienta, która zwraca komunikat do odcinka pośredniczącego klienta.
Krok 6) Na tym etapie odcinek klienta demarshalluje (rozpakowuje) zwracane parametry w pakiecie wynikowym, a proces wykonawczy wraca do osoby wywołującej.
Charakterystyka RPC
Oto podstawowe cechy RPC:
- Wywoływana procedura znajduje się w innym procesie, który prawdopodobnie znajduje się na innej maszynie.
- Procesy nie współdzielą przestrzeni adresowej.
- Parametry są przekazywane tylko przez wartości.
- RPC jest wykonywane w środowisku procesu serwera.
- Nie oferuje dostępu do środowiska procedury wywołującej.
Funkcje RPC
Oto ważne funkcje RPC:
- Prosta składnia wywołania
- Oferuje znaną semantykę
- Zapewnij dobrze zdefiniowany interfejs
- Może komunikować się pomiędzy procesami na tej samej lub różnych maszynach
Zalety RPC
Oto zalety/korzyści RPC:
- Metoda RPC pomaga klientom komunikować się z serwerami poprzez konwencjonalne wykorzystanie wywołań procedur w językach wysokiego poziomu.
- Metoda RPC wzorowana jest na lokalnym wywołaniu procedury, ale wywoływana procedura najprawdopodobniej zostanie wykonana w innym procesie i zwykle na innym komputerze.
- RPC obsługuje modele zorientowane na procesy i wątki.
- RPC sprawia, że wewnętrzny mechanizm przekazywania wiadomości jest ukryty przed użytkownikiem.
- Nakład pracy związany z ponownym napisaniem i ponownym opracowaniem kodu jest minimalny.
- Zdalne wywołania procedur można wykorzystać w środowisku rozproszonym i lokalnym.
- Angażuje wiele warstw protokołu w celu poprawy wydajności.
- RPC zapewnia abstrakcję. Na przykład charakter komunikacji sieciowej polegający na przekazywaniu komunikatów pozostaje ukryty przed użytkownikiem.
- RPC umożliwia korzystanie z aplikacji w środowisku rozproszonym, czyli nie tylko lokalnym.
- Dzięki kodowi RPC wysiłek związany z ponownym pisaniem i ponownym opracowywaniem jest zminimalizowany.
- Obsługa modeli zorientowanych na proces i wątki przez RPC.
Wady RPC
Oto wady/wady korzystania z RPC:
- Zdalne wywołanie procedury przekazuje parametry tylko według wartości i wartości wskaźników, co jest niedozwolone.
- Czas zdalnego wywołania procedury (i powrotu) (tj. koszty ogólne) może być znacznie niższy niż w przypadku procedury lokalnej.
- Mechanizm ten jest bardzo podatny na awarie, ponieważ obejmuje system komunikacyjny, inną maszynę i inny proces.
- Koncepcję RPC można wdrożyć na różne sposoby, co nie jest standardowe.
- Nie oferuje żadnej elastyczności w RPC dla architektury sprzętowej, ponieważ opiera się ona głównie na interakcji.
- Koszt procesu zwiększa się ze względu na zdalne wywołanie procedury.
Podsumowanie
- Zdalne wywołanie procedury to: komunikacja międzyprocesowa technika.
- Trzy typy RPC to 1) wywołanie zwrotne RPC 2) rozgłoszenie RPC i 3) RPC w trybie wsadowym
- Architektura RPC składa się z pięciu głównych komponentów programu: 1) Klient, 2) Klient-Sub, 3) Środowisko wykonawcze RPC, 4) Serwer-Sub i 5) Serwer.
- W metodzie RPC procesy nie współdzielą przestrzeni adresowej
- RPC oferuje prostą składnię wywołań i znaną semantykę
- Metoda RPC pomaga klientom komunikować się z serwerami poprzez konwencjonalne wykorzystanie wywołań procedur w językach wysokiego poziomu.
- Największą wadą metody RPC jest to, że jest ona bardzo podatna na awarie, ponieważ obejmuje system komunikacyjny, inną maszynę i inny proces.