2010-01-03 63 views
4

試圖瞭解RMI如何工作(我有一個使用RMI的簡單應用程序,似乎工作得很好)。Java RMI - 客戶端到服務器調用

我的問題是:什麼時候發生rmi電話?從rmi客戶端到rmi服務器的路上會發生什麼?

+2

http://www.youtube.com/watch?v=ILeAeFZOkMI – whunmr 2010-01-03 13:20:22

回答

3

在上述查找之後,在rmi調用中用作參數的對象被序列化(編組),這意味着對象的逐字節表示,非瞬態數據將通過網絡連接發送。在服務器端,序列化數據將被解組,並且對象將被實例化。之後,服務器端方法被調用,返回值將以類似的方式被返回,參數先前已被髮送。這與將對象寫入文件相似。

http://java.sun.com/j2se/1.4.2/docs/guide/rmi/faq.html

2

RMI是面向對象的RPC方法。

有一個存根在客戶端和骷髏在服務器端。客戶端和服務器不直接通信,但它們通過自動生成的存根和骨架進行通信。

正如您可能猜到的那樣,必須存在服務器和客戶端都必須使用的某些對象。這些對象在服務器端定義並保存在RMI註冊表。服務器和客戶端都可以調用RMI註冊表,它以某種方式作爲內存使用(它不是內存,這僅僅是一個例子)。服務器將一個對象綁定到註冊表,並且客戶端調用其上的方法。