RPC和Socket,RMI和RPC之間的關係

來源:互聯網
上載者:User

標籤:base   ref   基礎   ase   ado   toc   proc   telnet   使用者   

遠程通訊機制RPC與RMI的關係

http://blog.csdn.net/zolalad/article/details/25161133

      1.RPC

       RPC(Remote Procedure Call Protocol)遠端程序呼叫協議,它是一種通過網路從遠端電腦程式上請求服務,而不需要瞭解底層網路技術的協議。RPC不依賴於具體的網路傳輸協議,tcp、udp等都可以。由於存在各式各樣的變換和細節差異,相應的rpc也派生出了各式遠程過程通訊協定。RPC是跨語言的通訊標準,SUN和微軟都有其實現,比如RMI可以被看作SUN對RPC的Java版本( 實現),而微軟的DCOM就是建立在ORPC協議之上。一言以蔽之,RPC是協議,而無論是SUN的RMI還是微軟的DCOM都是對該協議的不同實現,二者都為編程人員提供了應用PRC技術的程式介面(API)。

        個人總結:RPC協議的實現架構比如RMI等 應該 是通過Socket介面裡來使用TCP/IP協議來實現網路通訊的。其他常用應用程式層協議包括FTP、HTTP、TELNET、SMTP等也是通過Socket這個門面介面來使用TCP/IP協議來實現網路通訊的。

      Socket是應用程式層與TCP/IP協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,Socket其實就是一個門面模式(Facade),它把複雜的TCP/IP協議族隱藏在Socket介面後面,對使用者來說,一組簡單的介面就是全部,讓Socket去組織資料,以符合指定的協議。

      有關Socket的更多內容,詳見:http://blog.csdn.net/zolalad/article/details/45599199

2. J2EE項目-使用JDK內建的RPC實現——RMI

       RMI是Java的一組擁護開發分布式應用程式的API。RMI使用Java語言介面定義了遠程對象,它集合了Java序列化和Java遠程方法協議(Java Remote Method Protocol)。簡單地說,這樣使原先的程式在同一作業系統的方法調用,變成了不同作業系統之間程式的方法調用,由於J2EE是分布式程式平台,它以RMI機制實現程式組件在不同作業系統之間的通訊。比如,一個EJB可以通過RMI調用Web上另一台機器上的EJB遠程方法。
        RMI(Remote Method Invocation,遠程方法調用)是用Java在JDK1.1中實現的,它大大增強了Java開發分布式應用的能力。Java作為一種風靡一時的網路開發語言,其巨大的威力就體現在它強大的開發分布式網路應用的能力上,而RMI就是開發百分之百純Java的網路分布式應用系統的核心解決方案之一。其實RMI可以被看作是RPC的Java版本( 實現)。但是傳統RPC並不能很好地應用於分布式對象系統,而Java RMI 則支援儲存於不同地址空間的程式級對象之間彼此進行通訊,實現遠程對象之間的無縫遠程調用。

       RMI目前使用Java遠程訊息交換協議JRMP(Java Remote Messaging Protocol)進行通訊。JRMP是專為Java的遠程對象制定的協議。因此,Java RMI具有Java的“Write Once,Run Anywhere”的優點,是分布式應用系統的百分之百純Java解決方案。用Java RMI開發的應用系統可以部署在任何支援JRE(Java Run Environment Java,運行環境)的平台上。但由於JRMP是專為Java對象制定的,因此,RMI對於用非Java語言開發的應用系統的支援不足。不能與用非Java語言書寫的對象進行通訊。

3. Hadoop中自訂的RPC實現原理
        Hadoop作為一個儲存與服務的基礎性平台,同時它的內部有採用了master/slave架構,那麼其內部通訊和與用戶端的互動就是必不可少的了。Hadoop在實現時拋棄了JDK內建的一個RPC實現——RMI,而自己基於IPC模型實現了一個更高效的輕量級RPC。

參考:

1.RPC,RMI,Webservice,JMS的區別

 參考: http://www.tuicool.com/articles/2qAzqq

2.Hadoop中的RPC實現——用戶端通訊組件

 http://www.linuxidc.com/Linux/2012-02/54696.htm
http://www.linuxidc.com/Linux/2012-02/54695.htm 

RPC和Socket,RMI和RPC之間的關係

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.