當前位置:編程學習大全網 - 編程軟體 - RPC與RMI的區別

RPC與RMI的區別

RMI和RPC之間最主要的區別在於方法是如何被調用的。在RMI中,遠程接口使每個遠程方法都具有方法簽名。如果壹個方法在服務器上執行,但是沒有相匹配的簽名被添加到這個遠程接口上,那麽這個新方法就不能被RMI客戶方所調用。

在RPC中,當壹個請求到達RPC服務器時,這個請求就包含了壹個參數集和壹個文本值,通常形成“classname.methodname”的形式。這就向RPC服務器表明,被請求的方法在為“classname”的類中,名叫“methodname”。然後RPC服務器就去搜索與之相匹配的類和方法,並把它作為那種方法參數類型的輸入。這裏的參數類型是與RPC請求中的類型是匹配的。壹旦匹配成功,這個方法就被調用了,其結果被編碼後返回客戶方。

遠程對象方法調用並不是新概念,遠程過程調用 (RPC-remote procedure call) 已經使用很多年了。遠程過程調用被設計為在應用程序間通信的平臺中立的方式,它不理會操作系統之間以及語言之間的差異。即 RPC 支持多種語言,而 RMI(Remote Method Invocation)只支持 Java 寫的應用程序。

另外 RMI 調用遠程對象方法,允許方法返回 Java 對象以及基本數據類型。而 RPC 不支持對象的概念,傳送到 RPC 服務的消息由外部數據表示 (External Data Representation, XDR) 語言表示,這種語言抽象了字節序類和數據類型結構之間的差異。只有由 XDR 定義的數據類型才能被傳遞, RPC 不允許傳遞對象。可以說 RMI 是面向對象方式的 Java RPC 。

  • 上一篇:編程能不能用不同語言編
  • 下一篇:單片機高手來看看595怎麽用
  • copyright 2024編程學習大全網