遠程過程調用

遠程過程調用

RFC是遠程過程調用(Remote Function Call,也叫遠程函式調用,請求註解,Request For Comments)的縮寫形式。SAP系統RFC調用的原理其實很簡單,有一些類似於三層構架的C/S系統,第三方的客戶程式通過接口調用SAP內部的標準或自定義函式,獲得函式返回的數據進行處理後顯示或列印。

簡介

遠程過程調用RemoteProcedureCall

RFC調用的模型RFC調用的模型

進程間通信(IPC)是在多任務作業系統或聯網的計算機之間運行的程式和進程所用的通信技術。有兩種類型的進程間通信(IPC)。

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

原理

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

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

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

隨著企業網的產生,開發商必須編制可在各種計算機和網路通信協定中都能運行的程式。現在人們正努力使得遠程過程調用獨立,這意味著開發商就不用考慮底層的網路和網路上數據傳輸所用的協定,下面介紹RPC在開放式軟體基金(OSF)的分散式計算環境(DCC)中實現的相關方法。RPC工作於多種分散式計算環境。

SunSoft的開放網路計算(ONC)的遠過程調用/外部數據表示(RPC/XDR)協定被廣泛採用。在三百一十萬個運行網路檔案系統(NFS)的系統中,有二百八十萬個使用ONCRPC庫,並在分散式套用中作為客戶機或伺服器。ONCRPC被IBM的所有作業系統所支持(除了OS/400)。UNIX系統實驗室把RPC/XDR當作是UNIXSystemVRelease4的一個標準部分。Novell支持下一代ONC+傳輸自立遠程過程調用(TI-RPC)技術.TI-RPC使用運輸層接口(TLI)實現傳輸自立。TLI提供了一種訪問面向連線或非連線傳輸服務的通用方法(這在“STERAMS環境”中有所敘述)。OpenSoftwareFoundation(OSF)RPC開放軟體基金會(OSF)的RPCRPC工具提供了一種程式語言和編譯器,它們使用可看作是本地過程的可運行於客戶機和伺服器上的模組開發分散式應用程式。運行時設施(run-timefacility)使得分散式應用程式能在多機種異構系統上運行,這樣使得底層體系結構和運輸協定對於應用程式是透明的。

程式設計師用接口定義語言(IDL)建立接口定義(interfacedefinition)。IDL是程式設計師用來設計遠程運行的過程的工具。IDL編譯器把IDL接口定義轉換成與客戶機和伺服器相連的占位程式(stub)。客戶機上的占位程式可加入到伺服器的過程,而伺服器上的占位程式也可加入到客戶機過程。位於客戶機伺服器的RPC運行時設施與占位程式合作,來提供RPC操作。

異構環境中使用RPC的一個問題在於,不同的機器有不同的數據表示,OSFRPC通過具有調用機器的基本數據表示的特徵調用來解決這個問題。當收到調用時,若根據特徵知道兩台機器數據表示不同的話,接收器就進行數據轉換。

RPC運行時設施提供把客戶機請求傳送給伺服器和在網上傳送和接收回響的功能。DCERPC運行時設施也和網路上其它DCE服務相互作用,這些DCE服務有命名、安全和定時服務。運行時設施有下列特徵:

可在多種網路上運行。開發者無需為每個網路編寫特定的應用程式。

提供客戶機或伺服器或網路上的故障恢復。它支持檔案系統、資料庫和其它傳輸可變長數據的服務。

提供獨立於任何一個目錄服務的基於名字定位伺服器的方法。

提供安全工具的接口,以防RPC通信遭受破壞。安全服務保證機密信息的保密性和提供鑑別來保護通信完備性。

支持網上並發或並行處理的多執行緒調度,於是一個應用程式就能同時執行多個操作

提供多供應商提供的系統環境的可移植性和相互操作性。

相關詞條

相關搜尋

熱門詞條

聯絡我們