1. 程式人生 > >遠端過程呼叫 RPC 及其協議

遠端過程呼叫 RPC 及其協議

遠端過程呼叫

簡介

RPC是遠端過程呼叫(Remote Procedure Call)的縮寫形式。SAP系統RPC呼叫的原理其實很簡單,有一些類似於三層構架的C/S系統,第三方的客戶程式通過介面呼叫SAP內部的標準或自定義函式,獲得函式返回的資料進行處理後顯示或列印。

IPC 程序間通訊(IPC)是在多工作業系統或聯網的計算機之間執行的程式和程序所用的通訊技術。有兩種型別的程序間通訊(IPC)。

本地過程呼叫(LPC)LPC用在多工作業系統中,使得同時執行的任務能互相會話。這些任務共享記憶體空間使任務同步和互相傳送資訊。遠端過程呼叫(RPC)類似於LPC,只是在網上工作。RPC開始是出現在Sun微系統公司和HP 公司的執行UNIX作業系統的計算機中。

原理

通過IPC和RPC,程式能利用其它程式或計算機處理的程序。客戶機/伺服器模擬計算把遠端過程呼叫和其他技術(如訊息傳遞)一道,作為系統間通訊的一種機制。客戶機執行自己的任務,但靠伺服器提供後端檔案伺服器。RPC為客戶機提供向後端伺服器申請伺服器的通訊機制。如果把客戶機/伺服器應用程式想作為一個分離的程式,伺服器能執行資料訪問部分,因為它離資料最近,客戶機能執行資料表示和與使用者互動的前端部分。這樣,遠端過程呼叫可看做是把分割的程式通過網路重組的部件。LPC有時也稱耦合(Coupling)機制。

用這種方式分割程式,當用戶要訪問資料時無需每次拷貝整個資料庫或它的大部分程式到使用者系統。其實,伺服器只處理請求,甚至只執行一些資料計算,把得出的結果再發送給使用者。因為當資料存放在一個地方時,資料庫同步很容易實現,所以多個使用者可同時訪問相同的資料。

分散式計算環境是由一個通訊系統(網路連線的計算機叢集),我們可以把這個網路看做一個計算平臺,若是對等方式,其中任何一臺計算機都能成為客戶機或伺服器。一些處理任務可被分成獨立執行程式在不同的網路計算機上並行處理,而獨立的程式被交給最合適這個任務的計算機處理。這種策略可利用計算機空閒資源,提高網路的效益。一個典型的企業王闊包括許多執行這不同作業系統的的異構計算機系統。

隨著企業網的產生,開發商必須編制可在各種計算機和網路通訊協議中都能執行的程式,現在人們正努力使得遠端過程呼叫獨立,這意味著開發商就不用考慮底層的網路和網路上資料傳輸所用的協議。

應用

RPC在分散式系統中的系統環境建設和應用程式設計中有著廣泛的應用,應用包括如下方面:

1.分散式作業系統的程序間通訊

程序之間通訊是作業系統必須提供的基本設施之一,分散式作業系統必須提供分佈於異構的結點機上程序間的通訊機制,RPC是實現訊息傳送模式的分散式程序間通訊的手段之一。

2.構造分散式計算的軟體環境

由於分散式軟體環境本身地理上的分佈性,它的各個組成成為之間存在大量的互動和通訊,RPC是其基本的實現方法之一。ONC+和DCE兩個流行的分散式計算軟體環境都是使用RPC構造,其他一些分散式軟體環境也採用了RPC方式。

3.遠端資料庫服務

在分散式資料庫中,資料庫一般駐存在伺服器上,客戶機通過遠端資料庫服務功能訪問資料庫伺服器,現有的遠端資料庫服務是使用RPC模式。例如,Sybase和Oracle都提供了儲存過程機制,系統與使用者定義的儲存過程儲存在資料庫伺服器上,使用者在客戶端使用RPC模式呼叫儲存過程。

4.分散式應用程式設計

RPC機制與RPC工具為分散式應用程式設計提供了手段和方便,使用者可以無需知道網路結構和協議細節而直接使用RPC工具設計分散式應用程式。

5.分散式程式的除錯

RPC可用於分散式程式的除錯。使用反向RPC伺服器成為客戶並向它的客戶程序發出RPC,也可以除錯分散式程式。例如,在伺服器上執行一遠端除錯程式包,他不斷接受客戶端的RPC,當遇到一個除錯程式斷點時,它向客戶機發回一個RPC,通知斷點已經到達,這要是RPC用於程序通訊的例子。

遠端過程呼叫協議

簡介

RPC(Remote Procedure Call)—遠端過程呼叫,它是一種通過網路從遠端計算機程式上請求服務,而不需要了解底層網路技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通訊程式之間攜帶資訊資料。在OSI網路通訊模型中,RPC跨越了傳輸層應用層。RPC使得開發包括網路分散式多程式在內的應用程式更加容易。

RPC採用客戶機/伺服器模式。請求程式就是一個客戶機,而服務提供程式就是一個伺服器。首先,客戶機呼叫程序傳送一個有程序引數的呼叫資訊到服務程序,然後等待應答資訊。在伺服器端,程序保持睡眠狀態直到呼叫資訊到達為止。當一個呼叫資訊到達,伺服器獲得程序引數,計算結果,傳送答覆資訊,然後等待下一個呼叫資訊,最後,客戶端呼叫程序接收答覆資訊,獲得程序結果,然後呼叫執行繼續進行。

有多種 RPC模式和執行。最初由 Sun 公司提出。IETF ONC 憲章重新修訂了 Sun 版本,使得 ONC RPC 協議成為 IETF 標準協議。現在使用最普遍的模式和執行是開放式軟體基礎的分散式計算環境(DCE)。

工作原理

執行時,一次客戶機對伺服器的RPC呼叫,其內部操作大致如下十步:

1.呼叫客戶端控制代碼;執行傳送引數

2.呼叫本地系統核心傳送網路訊息

3,訊息傳送到遠端主機

4.伺服器控制代碼得到訊息並取得引數

5.執行遠端過程

6.執行的過程將結果返回伺服器控制代碼

7.伺服器控制代碼返回結果,呼叫遠端系統核心

8.訊息傳回到本地主機

9.客戶機控制代碼由核心接收資訊

10.客戶接收控制代碼返回的資料

文章全部來自於百度百科