Protokół zdalnego wywołania procedury (RPC) w systemie rozproszonym
⚡ Inteligentne podsumowanie
Zdalne wywołanie procedury (RPC) to protokół komunikacji międzyprocesowej, który umożliwia programowi wykonywanie procedury w innej przestrzeni adresowej lub na innej maszynie, ukrywając szczegóły sieciowe za zwykłym wywołaniem funkcji lokalnej w rozproszonych systemach klient-serwer.

Co to jest RPC?
Zdalne wywołanie procedury (RPC) jest komunikacja międzyprocesowa Technika stosowana w aplikacjach klient-serwer. Pełna nazwa RPC to Zdalne Wywołanie Procedury (Remote Procedure Call). Mechanizmy RPC są używane, gdy program komputerowy powoduje wykonanie procedury lub podprocedury w innej przestrzeni adresowej, zakodowanej jako zwykłe wywołanie procedury, bez jawnego kodowania przez programistę szczegółów zdalnej interakcji.
To wywołanie procedury zarządza również protokołami transportu niskiego poziomu, takimi jak UDP i TCP/IP, w celu przesyłania 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 peer-to-peer (P2P) między uczestniczącymi procesami. Pomaga procesowi działać zarówno jako klient, jak i serwer.
Funkcje wywołania zwrotnego RPC:
- Zajmuje się problemami związanymi z aplikacjami przetwarzanymi zdalnie i interaktywnie.
- Dostarcza serwerowi uchwyt klienta.
- Wywołanie zwrotne powoduje oczekiwanie procesu klienta.
- Zarządza blokadami wywołań zwrotnych.
- Ułatwia współpracę peer-to-peer pomiędzy uczestniczącymi procesami.
Transmisja RPC
Rozgłoszeniowe wywołanie RPC to żądanie klienta rozgłaszane w sieci i przetwarzane przez wszystkie serwery dysponujące metodą przetwarzania tego żądania.
Funkcje Broadcast RPC:
- Umożliwia określenie, że żądanie klienta musi zostać rozesłane.
- Możesz zadeklarować porty rozgłoszeniowe.
- Pomaga zmniejszyć obciążenie sieci fizycznej.
RPC w trybie wsadowym
Tryb wsadowy RPC umożliwia kolejkowanie oddzielnych żą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 żądania, ponieważ żądania są wysyłane przez sieć do serwera w jednej partii.
- Ten typ protokołu RPC jest wydajny wyłącznie w przypadku aplikacji wymagających niższej liczby wywołań.
- 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
RPC Architektura
Jak działa RPC?
Podczas procesu RPC wykonywane są następujące kroki:
Krok 1) Klient, szkielet klienta i jedna instancja środowiska wykonawczego RPC są wykonywane na komputerze klienta.
Krok 2) Klient uruchamia proces szczątkowy klienta, przekazując parametry w standardowy sposób. Szczyt klienta jest przechowywany w przestrzeni adresowej klienta. Prosi również lokalne środowisko wykonawcze RPC o wysłanie żądania do szczątkowego serwera.
Krok 3) Na tym etapie użytkownik uzyskuje dostęp do RPC, wykonując standardowe wywołanie procedury lokalnej. Środowisko wykonawcze RPC zarządza transmisją komunikatów między klientem a serwerem przez sieć. Zajmuje się również retransmisją, potwierdzaniem, routingiem i szyfrowaniem.
Krok 4) Po zakończeniu procedury serwera, wykonanie wraca do szczątkowego serwera, który pakuje (marszałkuje) wartości zwracane do komunikatu. Następnie szczątkowy serwer odsyła komunikat do warstwy transportowej.
Krok 5) Na tym etapie warstwa transportowa odsyła komunikat wynikowy do warstwy transportowej klienta, która zwraca komunikat do szczątkowego klienta.
Krok 6) Na tym etapie klient rozpakowuje (demarshalluje) parametry zwracane w pakiecie wynikowym, a wykonywanie powraca do programu wywołującego.
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 umożliwia dostępu do środowiska procedury wywołującej.
Funkcje RPC
Oto ważne funkcje RPC:
- Prosta składnia wywołania.
- Oferuje znaną semantykę.
- Zapewnia dobrze zdefiniowany interfejs.
- Może komunikować się między procesami na tej samej lub różnych maszynach.
Zalety RPC
Oto zalety i korzyści RPC:
- RPC umożliwia klientom komunikację z serwerami poprzez konwencjonalne wykorzystanie wywołań procedur w językach wysokiego poziomu.
- RPC jest modelowane na podstawie lokalnego wywołania procedury, ale wywoływana procedura jest najprawdopodobniej wykonywana w innym procesie i zwykle na innym komputerze.
- RPC obsługuje modele zorientowane na procesy i wątki.
- RPC ukrywa przed użytkownikiem wewnętrzny mechanizm przekazywania wiadomości.
- Angażuje wiele warstw protokołu w celu poprawy wydajności.
- RPC zapewnia abstracna przykład natura komunikacji sieciowej polegająca na przesyłaniu wiadomości pozostaje ukryta przed użytkownikiem.
- Protokół RPC można stosować zarówno w środowiskach rozproszonych, jak i lokalnych.
- Nakład pracy potrzebny do przepisania i ponownego opracowania kodu jest minimalny.
Wady RPC
Oto wady/wady korzystania z RPC:
- Zdalne wywołanie procedury przekazuje parametry wyłącznie za pomocą wartości; wartości wskaźników (odniesień) nie są dozwolone.
- Czas wywołania procedury zdalnej (i jej powrotu) — narzut — jest znacznie dłuższy niż w przypadku procedury lokalnej.
- Mechanizm ten jest bardzo podatny na awarie, gdyż wymaga systemu komunikacji, innej maszyny i innego procesu.
- Koncepcję RPC można wdrożyć na różne sposoby, dlatego nie ma jednego standardu.
- Nie zapewnia elastyczności pod względem architektury sprzętowej, gdyż opiera się głównie na interakcji.
- Koszt procesu wzrasta ze względu na zdalne wywołanie procedury.

