什麼是遠端過程呼叫?
遠端過程呼叫 (RPC) 是一種用於訪問網路服務中程式的呼叫型別。
當一個計算機程式需要訪問或執行另一個服務網路上的程式時,而不是直接從該網路傳送和接收資料,呼叫會被伺服器本身接管,伺服器會接收到這個呼叫並在該網路服務中訪問該程式,而無需任何遠端位置的程式設計師的幫助。這有助於使本地過程呼叫能夠從任何遠端位置被伺服器接管。
當需要進行遠端呼叫時,呼叫環境會暫停。所有過程都需要傳輸到另一個網路,以便在該網路中執行呼叫。
當呼叫在另一個網路環境中執行後,呼叫會連同所有過程一起返回到呼叫環境,在那裡執行恢復其常規過程呼叫。
RPC 的主要用途或目標是隱藏網路的存在。接管呼叫的過程將隱藏所有使用者資訊。它省略所有協議以提高效能。
此 RPC 最適合客戶端-伺服器互動。客戶端-伺服器不能同時執行程式。
RPC 期間的步驟
在 RPC 期間需要執行以下步驟:
客戶端呼叫位於客戶端自身地址空間中的“客戶端存根”。
此存根根據客戶端的網路服務將訊息轉換為標準格式。
然後它將訊息傳輸到遠端網路服務。
另一方面,伺服器呼叫“伺服器存根”,伺服器存根根據其標準格式解碼傳輸的訊息並接管常規過程呼叫。
一旦根據其過程執行了呼叫,呼叫就會返回到伺服器存根,並且伺服器存根將訊息傳輸到傳輸層。
然後傳輸層將訊息傳送回客戶端伺服器存根。
然後客戶端伺服器存根將訊息解碼成其標準形式,並且呼叫完成。
遠端過程呼叫 (RPC) 的示意圖如下所示:

虛擬碼/步驟
RPC 的虛擬碼/步驟如下:
客戶端呼叫客戶端存根。
存根生成系統呼叫以轉發訊息,並將引數新增到訊息中。
透過客戶端作業系統將訊息從客戶端轉發到伺服器。
在作業系統的幫助下,訊息進一步傳遞到伺服器存根。
訊息引數被移除。
伺服器存根呼叫伺服器過程。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP