一、RPC的定義
1、RPC(Romote Procedure Call):遠程過程調用,允許一台計算機程序遠程調用另外一台計算機的子程序,不用關心底層網絡通信
2、應用:分布式網絡通信
3、在Socket的基礎上實現,比socket需要更多資源
4、可作為一種通信協議(Romote Procedure Call Protocol),遠程過程調用協議,通過網絡從遠程計算機程序上請求服務
二、RPC的特點
1、透明性:調用其它機子的程序像用本地的一樣
2、高性能:RPCserver服務器能並發處理多個Client請求
三、RPC的編程思想
1、仍然采用C/S編程模式,采用同步方式進行通信
2、允許本地程序Client調用存放於遠程主機Service,和調用本地的沒有區別
3、引入存根(stub)概念
存根:
1)存在於服務器
2)接受客戶存根的請求
3)和遠程對象進行交互
4)傳送服務器相應到客戶
5)負責事物:
解壓客戶端的輸入遠程方法的參數
調用實際的遠程對象的方法
將結果打包返回給調用者

四、RPC的工作原理
1、發送方的地址空間中創建stub,接收方也創建一個
2、發送方和本地stub通信,本地stub在和接收方stub通信
3、將遠程通信封裝在stub中,發送方只和本地代理通信,接受方從本地stub獲得所有請求
五、RPC的局限
1、客戶端和服務器的計算機操作系統不一致會出現意想不到的錯誤
2、由於網絡的復雜性,可能限制消息的尺寸,可能會丟失和重排消息
3、編程語言不同也會導致問題
4、由於是面向過程,所以近年來進展不大