新聞資訊
行業(yè)資訊
RPC 和 Web Service 有什么區(qū)別?
2017-11-28 16:32:05
摘要:RPC 和 Web Service 有什么區(qū)別?

使用 SOAP 協(xié)議創(chuàng)建 Web Service 需要使用兩個備選方案:文檔型 SOAP 協(xié)議或者 RPC SOAP 消息協(xié)議。RPC 指的是遠程過程調(diào)用,它是一種協(xié)議,指定的程序通過它可以去請求指定的位于另一臺遠程主機上的另一個應(yīng)用中的服務(wù)。在使用 RPC 的時候,無需去了解該應(yīng)用的網(wǎng)絡(luò)細節(jié)。一個指定的過程調(diào)用指的是作為子程序調(diào)用甚至函數(shù)調(diào)用。在使用 RPC 的時候,容易對客戶/服務(wù)模型過度使用。請求一個服務(wù)去執(zhí)行的應(yīng)用是在客戶端,而提供指定應(yīng)用執(zhí)行的計算機稱為服務(wù)端。RPC 操作可以被稱為同步操作,因為它需要一個應(yīng)用,該應(yīng)用請求的操作會一直阻塞直到遠程過程返回結(jié)果。

在多個操作在等待的時候要確保設(shè)備處理每個請求不會花費過多時間,RPC 允許多個共享同一個指定地址的線程同時處理,因此可以在它們處理結(jié)束的時候給出應(yīng)答,而不是串行的 - 一個操作必須結(jié)束了以后下一個才能開始。

使用 SOAP 控件創(chuàng)建的 Web Service 可以遵循 RPC 或文檔消息格式。文檔格式可以指定特定的 .xml 文檔,以對給定的 XML 圖表進行驗證。對于 Java,RPC 被應(yīng)用于 EJB 之類的平臺之間的通信,因為這些應(yīng)用都是用 Java 寫的。而 Web Service,則主要應(yīng)用于跨語言的應(yīng)用的通信。

RPC 和 Web Service 之間的性能差距是很大的,盡管有些場景下考慮到恢復(fù)力它們的差別并不是很明顯。RPC 帶來了一個擁擠的服務(wù)器環(huán)境的挑戰(zhàn),這使得你很難進行多個客戶端的工作。

另外,Web Service 允許多個服務(wù)部署,只要求 Web Service 是通過 HTTP 調(diào)用即可。這使得正常的網(wǎng)絡(luò)發(fā)散和路由技術(shù)都要采用大型網(wǎng)站。同樣需要注意的是,Web Service 的服務(wù)器端乃至客戶端都不依賴于任何特殊編碼。

可以對 RPC 和 Web Service 的恢復(fù)力進行公平比較,但需要注意的是 RPC 需要使用調(diào)停者才能達到預(yù)期效果。這就是 EE EJB 以及各種類似于 Spring 的框架發(fā)揮作用的時候了。為了提供最好的服務(wù),最好是引入 RPC 環(huán)境之前就開始 Java EE EJB。

USA-IDC為您提供免備案服務(wù)器 0元試用
立即聯(lián)系在線客服,即可申請免費產(chǎn)品試用服務(wù)
立即申請