RPC(Remote Procedure Call Protocol),遠程過程�(diào)用協(xié)�,一種通過�(wǎng)絡從遠程計算機程序上請求服務,而不需要了解底層網(wǎng)絡技術的�(xié)�。它是一項廣泛用于支持分布式應用程序(不同組件分布在� 同計算機上的應用程序)的技��
遠程過程�(diào)用(RPC)是一個協(xié)�,程序可以使用這個協(xié)議請求網(wǎng)絡中另一臺計算機上某程序的服務而不需知道�(wǎng)絡細節(jié)。(過程�(diào)用有時也稱作函數(shù)�(diào)�,或子例行程序調(diào)�。)RPC使用client/server模型。請求程序是client,而服務提供程序則為server。就像一般的本地過程�(diào)用一樣,RPC是一個同步操�,直到遠程過程結果返回請求程序才可以掛起。盡管如�,使用輕�(zhì)進程或線程時,它們共享同一地址空間,是允許多個RPC并發(fā)�(zhí)行的�
當使用RPC的程序語句被編譯成可�(zhí)行程序時,一個存根將會被包括在編譯的代碼�,它相當于遠程過程代碼的代表�
當程序運�,過程調(diào)用發(fā)�,存根收到請求并將其轉發(fā)給本地計算機中的一個客戶端運行時刻程序。這個客戶端運行時刻程序知道如何訪問遠程計算機及服務器應用程�,它將向�(wǎng)絡發(fā)送請求遠程過程的消息。類似地,服務器也包括一個運行時刻程序及與遠程過程連接的存根程�。結果將以相同方式返��
有多種RPC的模型與實現(xiàn)。一種較流行的模型與實現(xiàn)是開放軟件基金會(Open Software Foundation)的分布式計算環(huán)境(DCE�。電子和電氣工程師協(xié)會IEEE在它1991�11月的ISO Remote Procedure Call Specification, ISO/IEC CD 11578 N6561, ISO/IEC中定義了RPC�
RPC跨越了網(wǎng)絡通信的開放系�(tǒng)互聯(lián)(OSI)模型中的傳輸層與應用層。RPC使得一個包括網(wǎng)絡中分布的多個程序的應用程序的開�(fā)變得更容易�
不同的client/server的通信方法還有消息隊列及IBM的程�?qū)Τ绦蛲ㄐ牛ˋPPC��
RPC的概念與技術早�1981年由Nelson提出1984年,Birrell和Nelson把其用于支持異構型分布式系統(tǒng)間的通訊…Birrel的RPC模型引入存根進程(stub)作為遠程過程的本地代�,調(diào)用RPC運行時庫(RPCruntime)來傳輸網(wǎng)絡中的調(diào)�。Stub和RPCruntime屏蔽了網(wǎng)絡調(diào)用所涉及的許多細節(jié),特別是,參�(shù)的編碼/譯碼及網(wǎng)絡通訊是由stub和RPCruntime完成的因此這一模式被各類RPC所采用由于分布式系�(tǒng)的異構性及分布式計算模式與計算任務的多樣�,RPC作為�(wǎng)絡通訊與委托計算的實現(xiàn)機制,在方法、協(xié)�、語義實�(xiàn)上不斷發(fā)展,種類繁多,其中SUN公司和開放軟件基金會(OSF)在其分布式產(chǎn)品中所建立和使用的RPC較為典型�
在SUN公司的網(wǎng)絡文件系�(tǒng)NFS及開放網(wǎng)絡計算環(huán)境ONC�,RPC是基本實�(xiàn)技術。OSF醞釀和發(fā)展的另一個重要的分布式計算軟件環(huán)境DCE也是基于RPC�。在這兩個系�(tǒng)中,RPC既是其自身的實現(xiàn)機制,又是提供給用戶設計分布式應用程序的工具。由于對分布式計算的廣泛需�,ONC和DCE成為Client/Server模式分布式計算環(huán)境的主流�(chǎn)�,而RPC也成為實�(xiàn)分布式計算的事實標準之一�
如前所述RPC其實也是一種C/S的編程模�,有點類似C/SSocket編程模式,但要比它更高一層。當我們在建立RPC服務以后,客戶端的調(diào)用參�(shù)通過底層的RPC傳輸通道,可以是UDP,也可以是TCP(也即TI-RPC—無關性傳輸),并根據(jù)傳輸前所提供的目的地址及RPC上層應用程序號轉至相應的RPC Application Porgramme Server,且此時的客戶端處于等待狀�(tài),直至收到應答或TimeOut超時信號。當服務器端獲得了請求消�,則會根�(jù)注冊RPC時告訴RPC系統(tǒng)的例程入口地址,執(zhí)行相應的操作,并將結果返回至客戶端�
當一次RPC�(diào)用結束后,相應線程發(fā)送相應的信號,客戶端程序才會繼續(xù)運行。當�,一臺服務主機上可以有多個遠程過程提供服�,那么如何來表示一個存在的遠程過程�?一個遠程過程是有三個要素來確定的:程序號、版本號和過程號。程序號是用來區(qū)別一組相關的并且具有過程號的遠程過程。一個程序可以有一個或幾個不同的版本,而每個版本的程序都包含一系列能被遠程�(diào)用的過程,通過版本的引�,使得不同版本下的RPC能同時提供服�。每個版本都包含有許多可供遠程調(diào)用的過程,每個過程則有其標示的過程號�
RPC 的主要目的是為組件提供一種相互通信� 方式,使這些組件之間能夠相互�(fā)出請求并傳遞這些請求的結果�
RPC在分布式系統(tǒng)中的系統(tǒng)�(huán)境建設和應用程序設計中有著廣泛韻應用,應用包括如下方面:
1.分布式操作系統(tǒng)�
進程間通訊進程間通訊是操作系�(tǒng)必須提供的基本設施之一,分布式操作系統(tǒng)必須提供分布于異構的結點機上進程間的通訊機制,RPC是實�(xiàn)消息傳送模式的分布式進程間通訊的手段之一�
2.構造分布式計算的軟件環(huán)�
由于分布式軟件環(huán)境本身地理上的分布性它的各個組成成份之問存在大量的交互和通訊,RPC是其基本的實�(xiàn)方法之一。ONC+和DCE兩個流行的分式布計算軟件環(huán)境都是使用RPC構造的,其它一些分布式軟件�(huán)境也采用了RPC方式�
3.遠程數(shù)�(jù)庫服�
在分布式�(shù)�(jù)庫舞�(tǒng)�,數(shù)�(jù)庫一般駐存在服務器上,客戶機通過遠程�(shù)�(jù)癢服務功能訪問數(shù)�(jù)庫服務器,現(xiàn)有的遠程�(shù)�(jù)庫服務是使用RPC模式�。锝�,Sybase和Oacle都提供了存儲過程機制,系�(tǒng)與用戶定義的存儲過程存儲在數(shù)�(jù)摩服務鋸�,用戶在客戶端使用RPC模式�(diào)用存儲過��
4.分布式應用程序設計
RPC機制與RPC工具為分布式應用程序設計提供了手段和方便,用戶可以無需知道�(wǎng)絡結構和�(xié)議細節(jié)而直接使用RPC工具設計分布式應用程序�
5.分布式程序的調(diào)�
RPC可用于分布式程序的調(diào)�。使用反RPC使服務器成為客戶并向它的客戶進程�(fā)出RPC,可以調(diào)試分布式程序。例如.在服務器上運行一個遠端調(diào)試程序,它不斷接收客戶端的RPC,當遇到一個調(diào)試程序斷點時,它向客戶機�(fā)回一個RPC,通知斷點已經(jīng)到達,這也是RPC用于進程通訊的例��
更多精彩詞條,請登入維庫電子�
維庫電子�,電子知�,一查百��
已收錄詞�162412�