通過以這種方式劃分程序,用戶不需要在每次想要訪問數據時將整個數據庫或其大部分程序復制到用戶系統中。其實服務器只是處理請求,甚至是進行壹些數據計算,然後把結果發給用戶。因為當數據存儲在壹個地方時,數據庫同步很容易實現,所以多個用戶可以同時訪問相同的數據。
分布式計算環境是由通信系統-網絡連接的計算機集群。很容易把這個網絡想象成壹個計算平臺。如果是點對點,任何壹臺電腦都可以成為客戶端或者服務器。有些處理任務可以分成獨立運行的程序在不同的網絡計算機上並行處理,獨立的程序交給最適合這個任務的計算機。這種策略可以利用計算機的閑置資源,提高網絡的效率。典型的企業網絡包括許多運行不同操作系統的異構計算機系統。
隨著企業網絡的出現,開發人員必須編寫可以在各種計算機和網絡通信協議下運行的程序。現在人們正試圖使遠程過程調用獨立,這意味著開發人員不必考慮底層網絡和網絡上用於數據傳輸的協議。這裏介紹在開放軟件基金會(OSF)的分布式計算環境(DCC)中實現RPC的相關方法。RPC在各種分布式計算環境中工作。
SunSoft的開放網絡計算(ONC)的遠程過程調用/外部數據表示(RPC/XDR)協議被廣泛采用。在運行網絡文件系統(NFS)的310萬個系統中,有280萬個系統使用ONCRPC庫,並在分布式應用程序中充當客戶機或服務器。所有IBM操作系統都支持ONCRPC(OS/400除外)。Un ⅸ系統實驗室將RPC/XDR視為UNⅸSystem V Release 4的標準部分。Novell支持下壹代ONC+傳輸自支持遠程過程調用(TI-RPC)技術。TI-RPC使用傳輸層接口(TLI)來實現傳輸自支持。TLI提供了壹種訪問面向連接或無連接傳輸服務的通用方法(在“STERAMS環境”中有描述)。
開放軟件基金會(OSF)
RPC工具提供了壹種編程語言和編譯器,它使用可以被視為本地進程的模塊,並在客戶端和服務器上運行,以開發分布式應用程序。運行時工具使分布式應用程序能夠在多臺機器的異構系統上運行,這使得底層架構和傳輸協議對應用程序是透明的。
程序員使用接口定義語言(IDL)來建立接口定義。IDL是程序員用來設計遠程運行的進程的工具。IDL編譯器將IDL接口定義轉換成連接到客戶機和服務器的存根。客戶端上的占位符可以加入服務器的進程,服務器上的占位符也可以加入客戶端的進程。位於客戶機服務器上的RPC運行時工具與占位符協作來提供RPC操作。
在異構環境中使用RPC的壹個問題是不同的機器有不同的數據表示。OSFRPC通過使用調用機器的基本數據表示的特性調用來解決這個問題。當接收到呼叫時,如果從特征得知兩臺機器的數據表示不同,則接收器執行數據轉換。
RPC運行時工具提供了向服務器發送客戶端請求以及在Internet上發送和接收響應的功能。DCERPC運行時工具還與網絡上的其他DCE服務交互,包括命名、安全和計時服務。運行時工具具有以下特征:
可以在各種網絡上運行。開發者不需要為每個網絡編寫特定的應用程序。
在客戶端、服務器或網絡上提供故障恢復。它支持傳輸可變長度數據的文件系統、數據庫和其他服務。
提供壹種基於獨立於任何目錄服務的名稱來定位服務器的方法。
為安全工具提供接口,防止RPC通信被破壞。安全服務確保機密信息的機密性,並提供身份驗證以保護通信的完整性。
支持互聯網上並發或並行處理的多線程調度,使壹個應用可以同時執行多個操作。
提供由多個供應商提供的系統環境的可移植性和互操作性。
有幾種RPC模式。壹個流行的模型是開放軟件基金會的分布式計算環境(DCE)。1991年11月,美國電氣和電子工程師協會在其ISO遠程過程調用規範(ISO/IEC CD 11578n 651,ISO/IEC)中定義了遠程過程調用。
遠程過程調用(RPC)跨越開放系統互連(OSI)網絡通信模型中的傳輸層和應用層。遠程過程調用使得開發應用程序更加容易。
客戶機/服務器通信的替代方案包括消息隊列和IBM的高級程序間通信(APPC)。