BTCw i Zdalne wywołanie procedury (RPC)

Donate BitcoinPOW.pl : 1LMofGNsTm4tMAzkPZH4qzK2qrLxu2pw2p

Co to jest zdalne wywołanie procedury (RPC)?
Zdalne wywoływanie procedur to programowy protokół komunikacyjny, którego jeden program może używać do żądania usługi od programu znajdującego się na innym komputerze w sieci bez konieczności rozumienia szczegółów sieci. RPC służy do wywoływania innych procesów w systemach zdalnych, takich jak system lokalny. Wywołanie procedury jest czasami nazywane wywołaniem funkcji lub wywołaniem podprogramu.

RPC korzysta z modelu klient-serwer. Program żądający jest klientem, a program świadczący usługę jest serwerem. Podobnie jak lokalne wywołanie procedury, RPC jest operacją synchroniczną wymagającą zawieszenia programu żądającego do czasu zwrócenia wyników procedury zdalnej. Jednak użycie lekkich procesów lub wątków współdzielących tę samą przestrzeń adresową umożliwia jednoczesne wykonywanie wielu wywołań RPC.

Język definicji interfejsu (IDL) — język specyfikacji używany do opisu interfejsu programowania aplikacji (API) składnika oprogramowania — jest powszechnie używany w oprogramowaniu do zdalnego wywoływania procedur. W tym przypadku IDL zapewnia pomost pomiędzy maszynami na obu końcach łącza, które mogą używać różnych systemów operacyjnych i języków komputerowych.

Co robi RPC?
Kiedy instrukcje programu korzystające ze struktury RPC są kompilowane do programu wykonywalnego, do skompilowanego kodu dołączany jest kod pośredniczący, który reprezentuje kod procedury zdalnej. Po uruchomieniu programu i wywołaniu procedury kod pośredniczy odbiera żądanie i przekazuje je do klienckiego programu wykonawczego na komputerze lokalnym. Przy pierwszym wywołaniu klienta pośredniczącego kontaktuje się on z serwerem nazw w celu ustalenia adresu transportowego, pod którym znajduje się serwer.

Program wykonawczy klienta wie, jak adresować zdalny komputer i aplikację serwera, i wysyła przez sieć komunikat żądający zdalnej procedury. Podobnie serwer zawiera program wykonawczy i kod pośredniczący, który łączy się z samą zdalną procedurą. Protokoły żądania odpowiedzi są zwracane w ten sam sposób.

Jak działa RPC?
Po wywołaniu zdalnego wywołania procedury środowisko wywołujące zostaje zawieszone, parametry procedury są przesyłane przez sieć do środowiska, w którym procedura ma zostać wykonana, a następnie procedura jest wykonywana w tym środowisku.

Po zakończeniu procedury wyniki są przesyłane z powrotem do środowiska wywołującego, gdzie wykonywanie jest wznawiane tak, jak w przypadku powrotu ze zwykłego wywołania procedury.

Podczas RPC mają miejsce następujące kroki:

Klient wywołuje kod pośredniczący klienta. Wywołanie jest lokalnym wywołaniem procedury z parametrami umieszczanymi na stosie w normalny sposób.
Odgałęzienie klienta pakuje parametry procedury do komunikatu i wykonuje wywołanie systemowe w celu wysłania komunikatu. Pakowanie parametrów procedury nazywa się zestawianiem.
Lokalny system operacyjny klienta wysyła komunikat z komputera klienckiego do zdalnego serwera.
System operacyjny serwera przekazuje przychodzące pakiety do odcinka pośredniczącego serwera.
Odcinek serwera rozpakowuje parametry — zwane unmarshalling — z wiadomości.
Po zakończeniu procedury serwer powraca do kodu pośredniczącego serwera, który przekazuje zwrócone wartości do wiadomości. Następnie odcinek serwera przekazuje wiadomość do warstwy transportowej.
Warstwa transportowa wysyła wynikowy komunikat z powrotem do warstwy transportowej klienta, która przekazuje komunikat z powrotem do odcinka klienta.
Odcinek klienta unmarshalluje zwracane parametry, a wykonanie wraca do obiektu wywołującego.

Rodzaje RPC
Istnieje kilka modeli RPC i implementacji obliczeń rozproszonych. Popularnym modelem i implementacją jest rozproszone środowisko obliczeniowe (DCE) opracowane przez Open Software Foundation (OSF). Instytut Inżynierów Elektryków i Elektroników (IEEE) definiuje RPC w swojej specyfikacji ISO dotyczącego zdalnego wywoływania procedur, ISO/IEC CD 11578 N6561, ISO/IEC, listopad 1991.

Przykłady konfiguracji RPC obejmują:

Normalna metoda działania, w której klient wykonuje połączenie i nie kontynuuje go, dopóki serwer nie zwróci odpowiedzi.
Klient wykonuje połączenie i kontynuuje swoje przetwarzanie. Serwer nie odpowiada.
Możliwość wysyłania kilku nieblokujących połączeń klientów w jednej partii.
Klienci RPC mają funkcję rozgłoszeniową, co oznacza, że mogą wysyłać wiadomości do wielu serwerów, a następnie odbierać wszystkie wynikające z nich odpowiedzi.
Klient wykonuje nieblokujące połączenie klient/serwer; serwer sygnalizuje zakończenie połączenia, wywołując procedurę powiązaną z klientem.
RPC obejmuje warstwę transportową i warstwę aplikacji w modelu komunikacji sieciowej Open Systems Interconnection (OSI). RPC ułatwia tworzenie aplikacji zawierających wiele programów rozproszonych w sieci. Alternatywne metody komunikacji klient-serwer obejmują kolejkowanie komunikatów i zaawansowaną komunikację program-program (APPC) firmy IBM.

Plusy i minusy RPC
Chociaż oferuje szeroki zakres korzyści, z pewnością istnieje wiele pułapek, o których użytkownicy korzystający z RPC powinni być świadomi.

Oto niektóre korzyści, jakie RPC zapewnia programistom i menedżerom aplikacji:

Pomaga klientom komunikować się z serwerami poprzez tradycyjne wykorzystanie wywołań procedur w językach wysokiego poziomu.
Można go używać w środowisku rozproszonym, a także w środowisku lokalnym.
Obsługuje modele zorientowane na proces i wątki.
Ukrywa przed użytkownikiem wewnętrzny mechanizm przekazywania wiadomości.
Wymaga jedynie minimalnego wysiłku, aby przepisać i przebudować kod.
Zapewnia abstrakcję, tj. charakter komunikacji sieciowej polegający na przekazywaniu komunikatów jest ukryty przed użytkownikiem.
Pomija wiele warstw protokołu, aby poprawić wydajność.
Z drugiej strony niektóre wady RPC obejmują:

Klient i serwer korzystają z różnych środowisk wykonawczych dla swoich odpowiednich procedur, a wykorzystanie zasobów (np. plików) jest również bardziej złożone. W rezultacie systemy RPC nie zawsze nadają się do przesyłania dużych ilości danych.
RPC jest bardzo podatne na awarie, ponieważ obejmuje system komunikacyjny, inną maszynę i inny proces.
Nie ma jednolitego standardu dla RPC; można go wdrożyć na różne sposoby.
RPC opiera się wyłącznie na interakcji i jako taki nie oferuje żadnej elastyczności, jeśli chodzi o architekturę sprzętową.

https://www.techtarget.com/searchapparchitecture/definition/Remote-Procedure-Call-RPC

Share this page to Telegram
Author: admin