RPC是什么意思?[通俗易懂](一文带你搞懂RPC)
原文地址:http://baike.baidu.com/link?url=ZV6b0T5v04pem1NluXrFwslmhOosGK3YAeKYBfXHF3J-cg96O7CE9j_opGpKCftpBKWqLtY9-LycDAX0ULaLpssX4IIVmK6fSdtZBzz6nbFRsA-vXppB4IV1KBfDu07pY2dgZYTn5A65RkuhPO00bf5ngU6qfujFC14JqgumBPLgqXgt1VnAzQ7xOwSbJbJkqtNcGRdPxt9f_d7reHUeTq 工作中總是會(huì)遇到RPC這個(gè)詞,每次都忘記是啥意思,現(xiàn)在將這個(gè)詞的解釋搬到自己的博客中,希望下次遇到不會(huì)忘記,^_^
釋義:
RPC(Remote Procedure Call Protocol)——
遠(yuǎn)程過(guò)程調(diào)用
協(xié)議,
它是一種通過(guò)網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)程序上請(qǐng)求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議
。
RPC協(xié)議
假定某些
傳輸協(xié)議
的存在,如TCP或UDP,為通信程序之間攜帶信息數(shù)據(jù)。在OSI
網(wǎng)絡(luò)通信
模型中,RPC跨越了
傳輸層
和
應(yīng)用層
。RPC使得開(kāi)發(fā)包括網(wǎng)絡(luò)
分布式
多程序在內(nèi)的應(yīng)用程序更加容易。 RPC采用客戶機(jī)/服務(wù)器模式。請(qǐng)求程序就是一個(gè)客戶機(jī),而服務(wù)提供程序就是一個(gè)服務(wù)器。首先,客戶機(jī)調(diào)用進(jìn)程發(fā)送一個(gè)有進(jìn)程參數(shù)的調(diào)用信息到服務(wù)進(jìn)程,然后等待應(yīng)答信息。在服務(wù)器端,進(jìn)程保持睡眠狀態(tài)直到調(diào)用信息到達(dá)為止。當(dāng)一個(gè)調(diào)用信息到達(dá),服務(wù)器獲得進(jìn)程參數(shù),計(jì)算結(jié)果,發(fā)送答復(fù)
信息,然后等待下一個(gè)調(diào)用信息,最后,客戶端調(diào)用進(jìn)程接收答復(fù)信息,獲得進(jìn)程結(jié)果,然后調(diào)用執(zhí)行繼續(xù)進(jìn)行。 有多種 RPC模式和執(zhí)行。最初由 Sun 公司提出。IETF ONC 憲章重新修訂了 Sun 版本,使得 ONC RPC 協(xié)議成為 IETF 標(biāo)準(zhǔn)協(xié)議。現(xiàn)在使用最普遍的模式和執(zhí)行是開(kāi)放式軟件基礎(chǔ)的分布式計(jì)算
環(huán)境(DCE)。 工作原理(以Windows操作系統(tǒng)為例):
運(yùn)行時(shí),一次客戶機(jī)對(duì)服務(wù)器的RPC調(diào)用,其內(nèi)部操作大致有如下十步: 1.調(diào)用客戶端句柄;執(zhí)行傳送參數(shù) 2.調(diào)用本地系統(tǒng)
內(nèi)核發(fā)送網(wǎng)絡(luò)消息 3.
消息傳送到遠(yuǎn)程
主機(jī) 4.服務(wù)器句柄得到消息并取得參數(shù)
5.執(zhí)行遠(yuǎn)程過(guò)程
6.執(zhí)行的過(guò)程將結(jié)果返回服務(wù)器句柄 7.服務(wù)器句柄返回結(jié)果,調(diào)用遠(yuǎn)程系統(tǒng)
內(nèi)核 8.消息傳回
本地主機(jī) 9.客戶句柄由內(nèi)核接收消息 10.客戶接收句柄返回的數(shù)據(jù) RPC OVER HTTP Microsoft RPC-over-HTTP 部署(RPC over HTTP)允許RPC客戶端安全和有效地通過(guò)Internet 連接到RPC 服務(wù)器程序并執(zhí)行
遠(yuǎn)程過(guò)程調(diào)用。這是在一個(gè)名稱為RPC-over-HTTP 代理,或簡(jiǎn)稱為RPC 代理的
中間件的幫助下完成的。 RPC 代理運(yùn)行在IIS計(jì)算機(jī)上。它接受來(lái)自Internet 的RPC 請(qǐng)求,在這些請(qǐng)求上執(zhí)行認(rèn)證,檢驗(yàn)和訪問(wèn)檢查,如果請(qǐng)求通過(guò)所有的測(cè)試,RPC 代理將請(qǐng)求轉(zhuǎn)發(fā)給執(zhí)行真正處理的RPC
服務(wù)器。通過(guò)RPC over HTTP,RPC客戶端不和服務(wù)器直接通信,它們使用RPC 代理作為中間件。 協(xié)議結(jié)構(gòu): 遠(yuǎn)程過(guò)程調(diào)用
(RPC)信息協(xié)議由兩個(gè)不同結(jié)構(gòu)組成:調(diào)用信息和答復(fù)信息。信息流程如下所示: RPC:遠(yuǎn)程過(guò)程調(diào)用流程 RPC 調(diào)用信息:每條遠(yuǎn)程過(guò)程調(diào)用信息包括以下無(wú)符號(hào)整數(shù)字段,以獨(dú)立識(shí)別遠(yuǎn)程過(guò)程: 程序號(hào)(Program number) 程序版本號(hào)(Program version number) 過(guò)程號(hào)(Procedure number) RPC 調(diào)用信息主體形式如下: struct call_body { unsigned int rpcvers; unsigned int prog; unsigned int vers; unsigned int proc; opaque_auth cred; opaque_auth verf; 1 parameter 2 parameter . . . }; RPC 答復(fù)信息:RPC 協(xié)議的答復(fù)信息的改變?nèi)Q于
網(wǎng)絡(luò)服務(wù)器對(duì)調(diào)用信息是接收還是拒絕。答復(fù)信息請(qǐng)求包括區(qū)別以下情形的各種信息: RPC 成功執(zhí)行調(diào)用信息。. RPC 的遠(yuǎn)程實(shí)現(xiàn)不是協(xié)議第二版,返回 RPC 支持的最低和最高版本號(hào)。 在遠(yuǎn)程系統(tǒng)中,遠(yuǎn)程程序不可用。 遠(yuǎn)程程序不支持被請(qǐng)求的版本號(hào)。返回遠(yuǎn)程程序所支持的最低和最高版本號(hào)。 請(qǐng)求的過(guò)程號(hào)不存在。通常是呼叫方協(xié)議或程序差錯(cuò)。 RPC答復(fù)信息形式如下: enum reply_stat stat {MSG_ACCEPTED = 0, MSG_DENIED = 1 };
總結(jié)
以上是生活随笔為你收集整理的RPC是什么意思?[通俗易懂](一文带你搞懂RPC)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SAP document builder
- 下一篇: 使用代码创建SAP BRF rulese