在Android中,遠程過程調用采用的是ONC RPC(Open Network Computing Remote Procedure Call)標準(RFC1790),該標準初由Sun公司提出,在經過進一步完善后成為IETF的標準協(xié)議。著名的文件系統(tǒng)NFS,也是基于ONC RPC實現的。
ONC RPC遠程調用
遠程過程調用指的是由本地系統(tǒng)上的進程激活遠程系統(tǒng)上的進程。
遠程過程調用涉及的對象有兩個, 一個是本地客戶端, 一個是遠程服務器。對調用進程來說,為了獲取遠程服務器提供的服務,首先由本地客戶端生成一個消息, 通過網絡系統(tǒng)調用將消息發(fā)給遠程服務器。網絡信息中包括過程調用所需要的參數, 遠程服務器接到消息后調用相應過程進行處理, 然后將處理結果通過網絡返回給本地客戶端, 再由本地客戶端將結果返回給調用進程。因此, 遠程過程調用對調用進程表現為本地過程調用, 但實際上是調用了遠程進程上的過程。如圖1-1所示為遠程過程調用的示意圖。

圖1-1 遠程過程調用
遠程過程調用由于基于兩個不同的地址空間,存在著通信開銷較大,且不能在過程中傳遞指針,而且遠程調用不能共享調用者的環(huán)境等缺點。但遠程過程調用很好地滿足了分布式計算的需求,有利于集中資源、各負其責解決復雜度較高的計算。
在Android中,遠程過程調用主要有兩個層次,第一是處理器間的遠程過程調用,第二是Dalvik虛擬機間的遠程過程調用。關于處理器間的遠程過程調用,將在3.2節(jié)過程調用中展開討論。關于Dalvlk虛擬機間的遠程過程調用,Android將遠程過程調用封裝在了android.os.IBinder中,關于IBinder通信機制華清遠見教育科技集團會在明天給大家做詳細介紹,敬請關注!