Table of Contents


遠程服務調用**(Remote Procedure Call, RPC)**


進程間通訊(Inter-Process Communication, IPC)

通訊的成本

(不過後續還是有人站出來,起草了 RPC 的協議)

遠程服務調用 (RPC) 是指位於互不重合的內存地址空間中的兩個程序,在語言層面上,以同步的方式使用帶寬有限的信道來傳輸程序控制訊息。

三個基本問題

DCE/RPC 與 ONC RPC (Sun RPC) 以及後續所流行過的 RPC,不外乎都是為了解決以下三個問題:

  1. 如何表示數據:這裡的數據包含傳遞給方法的參數,以及方法執行後的回傳值。有效的做法是 “序列與反序列化”:將交互雙方所涉及的數據轉換為某種事先約定好的中立數據流格式來進行傳輸,將數據流轉換回不同語言中對應的數據類型來進行使用。
  2. 如何傳遞數據:如何透網路,在兩個服務的 Endpoint 之間互相操作、交換數據。許多與業務邏輯之外的數據,如異常、超時、安全、認證、授權、事務等等,都可能產生雙方需要交換訊息的需求。兩個 Endpoint 之間交換這類數據的行為,稱為《Wire Protocol》。