logo

Zdalne wywołanie procedury (RPC) w systemie operacyjnym

Zdalne wywołanie procedury (RPC) to potężna technika konstruowania rozproszone aplikacje oparte na kliencie-serwerze . Opiera się na rozszerzeniu konwencjonalnego lokalnego wywoływania procedur tak, aby wywoływana procedura nie musi znajdować się w tej samej przestrzeni adresowej co procedura wywołująca . Te dwa procesy mogą znajdować się w tym samym systemie lub mogą znajdować się w różnych systemach połączonych siecią.

Podczas wykonywania zdalnego wywołania procedury:



1. Środowisko wywołujące zostaje zawieszone, parametry procedury przesyłane są siecią do środowiska, w którym procedura ma zostać wykonana, i tam procedura jest wykonywana.

but wiosenny

2. Kiedy procedura zakończy się i wygeneruje wyniki, jej 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.



UWAGA: RPC szczególnie dobrze nadaje się do pracy klient-serwer (np. zapytanie-odpowiedź) interakcja, w której przepływ kontroli na zmianę dzwoniący i odbierany . Koncepcyjnie klient i serwer nie są wykonywane jednocześnie. Zamiast tego wątek wykonania przeskakuje od wywołującego do wywoływanego, a następnie z powrotem.

Działanie RPC



Podczas RPC wykonywane są następujące kroki:

  1. Klient wywołuje a procedura kodu pośredniczącego klienta , przekazując parametry w zwykły sposób. Sekcja klienta znajduje się we własnej przestrzeni adresowej klienta.
  2. Odcinek klienta Marshalle (opakowanie) parametry w wiadomości. Marshalling obejmuje konwersję reprezentacji parametrów na standardowy format i kopiowanie każdego parametru do komunikatu.
  3. Odcinek klienta przekazuje wiadomość do warstwy transportowej, która wysyła ją do zdalnego serwera.
  4. Na serwerze warstwa transportowa przekazuje wiadomość do odcinka pośredniczącego serwera, który demarshalls (rozpakuj) parametry i wywołuje żądaną procedurę serwera przy użyciu zwykłego mechanizmu wywoływania procedur.
  5. Po zakończeniu procedury serwera następuje powrót do kodu pośredniczącego serwera (np. poprzez powrót do normalnego wywołania procedury) , który łączy zwracane wartości w komunikat. Następnie odcinek serwera przekazuje wiadomość do warstwy transportowej.
  6. Warstwa transportowa wysyła komunikat wynikowy z powrotem do warstwy transportowej klienta, która przekazuje komunikat z powrotem do odcinka klienta.
  7. Odcinek klienta rozdziela parametry zwrotne i zwraca wykonanie do obiektu wywołującego.

Kluczowe kwestie do rozważenia przy projektowaniu i wdrażaniu systemów RPC to:

    Bezpieczeństwo: Ponieważ RPC obejmuje komunikację przez sieć, bezpieczeństwo jest głównym problemem. Należy wdrożyć środki takie jak uwierzytelnianie, szyfrowanie i autoryzacja, aby zapobiec nieautoryzowanemu dostępowi i chronić wrażliwe dane. Skalowalność: wraz ze wzrostem liczby klientów i serwerów wydajność systemu RPC nie może się pogorszyć. Techniki równoważenia obciążenia i efektywne wykorzystanie zasobów są ważne dla skalowalności. Tolerancja błędów: system RPC powinien być odporny na awarie sieci, awarie serwerów i inne nieoczekiwane zdarzenia. Środki takie jak nadmiarowość, przełączanie awaryjne i płynna degradacja mogą pomóc w zapewnieniu odporności na awarie. Standaryzacja: dostępnych jest kilka frameworków i protokołów RPC i ważne jest, aby wybrać standardowy i powszechnie akceptowany, aby zapewnić interoperacyjność i kompatybilność na różnych platformach i językach programowania. Dostrajanie wydajności: Dostrajanie systemu RPC w celu uzyskania optymalnej wydajności jest ważne. Może to obejmować optymalizację protokołu sieciowego, minimalizację danych przesyłanych przez sieć oraz zmniejszenie opóźnień i narzutu związanego z wywołaniami RPC.

PROBLEMY RPC :
Kwestie, które należy rozwiązać:

25 c do k

1. Środowisko wykonawcze RPC:
System wykonawczy RPC to biblioteka procedur i zestaw usług obsługujących komunikację sieciową leżącą u podstaw mechanizmu RPC. W trakcie wywołania RPC obsługa kodu systemów wykonawczych po stronie klienta i serwera wiążące, nawiązują komunikację za pośrednictwem odpowiedniego protokołu, przekazują dane połączeń między klientem a serwerem i obsługują błędy komunikacyjne.

2. Odcinek:
Funkcja odgałęzienia polega na zapewniają przejrzystość kodu aplikacji napisanego przez programistę .

    Po stronie klienta kod pośredniczący obsługuje interfejs pomiędzy lokalnym wywołaniem procedury klienta a systemem wykonawczym, organizując i unmarshalując dane, wywołując protokół wykonawczy RPC i, jeśli jest to wymagane, wykonując niektóre wiążące kroki. Po stronie serwera kod pośredniczący zapewnia podobny interfejs pomiędzy systemem wykonawczym a procedurami lokalnego menedżera wykonywanymi przez serwer.

3. Wiązanie: Skąd klient wie, do kogo zadzwonić i gdzie znajduje się usługa?
Najbardziej elastycznym rozwiązaniem jest użycie wiązania dynamicznego i znalezienie serwera w czasie wykonywania, gdy po raz pierwszy wykonywane jest RPC. Przy pierwszym wywołaniu kodu pośredniczącego klienta kontaktuje się on z serwerem nazw w celu ustalenia adresu transportowego, pod którym znajduje się serwer.

Wiązanie składa się z dwóch części:

  • My:
  • Lokowanie:
    Serwer posiadający usługę do zaoferowania eksportuje dla niej interfejs. Eksport interfejsu powoduje jego zarejestrowanie w systemie, dzięki czemu klienci mogą z niego korzystać. Klient musi zaimportować (wyeksportować) interfejs, zanim będzie mogła rozpocząć się komunikacja.

4. Semantyka wywołań związana z RPC:
Jest on podzielony głównie na następujące opcje:

    Komunikat z prośbą o ponowną próbę –
    Określa, czy ponowić próbę wysłania wiadomości z żądaniem, gdy serwer ulegnie awarii lub odbiorca nie otrzyma wiadomości. Filtrowanie duplikatów –
    Usuń zduplikowane żądania serwera. Retransmisja wyników –
    Aby ponownie wysłać utracone wiadomości bez ponownego wykonywania operacji po stronie serwera.

ZALETY :

co to jest przesyłanie katalogu
  1. RPC zapewnia ABSTRAKCJA tj. charakter komunikacji sieciowej polegający na przekazywaniu komunikatów jest ukryty przed użytkownikiem.
  2. RPC często pomija wiele warstw protokołu, aby poprawić wydajność. Nawet niewielka poprawa wydajności jest ważna, ponieważ program może często wywoływać wywołania RPC.
  3. RPC umożliwia korzystanie z aplikacji w środowisku rozproszonym, a nie tylko lokalnym.
  4. Dzięki RPC wysiłek związany z ponownym pisaniem/ponownym opracowywaniem kodu jest zminimalizowany.
  5. Modele zorientowane na proces i wątki obsługiwane przez RPC.

Bibliografia: