2013-07-15 69 views
-1

這可能聽起來有點基本,但我剛開始考慮Java的RMI並想知道它的可能性。如何遠程訪問RMI服務器上的代碼?

從我所瞭解的RMI客戶端上傳到服務器對象執行。作爲回報,我將給出服務器的計算結果。這似乎是一件好事,但我是否也可以調用服務器本身已存在的類?例如,我們假設系統中的每個節點經常需要處理相同的大部分代碼。我們還假設我有有限的帶寬和幾個節點來上傳我的對象。我可能會發現調用服務器上已有類的方法會更好。這可能嗎?如果是這樣如何?

回答

1

RMI客戶端不會將對象上傳到RMI服務器以供執行,RMI客戶端可以在RMI服務器上使用「調用」方法。所以在技術上你想要做的就是RMI所做的。這就是爲什麼它被稱爲「遠程方法調用」的原因,即在遠程機器上的類中可用的方法。

+0

這就是我在Oracle教程中閱讀的內容。服務器實現了2個準系統接口,可以處理結果。任務被髮送到包含特定對象的服務器。服務器計算結果並將其發送回客戶端。 – spacitron

+0

這是RMI *的特定用途:特別是移動代理。通用部分是客戶端使用遠程接口在服務器上調用遠程方法的部分。 – EJP

0

如何遠程訪問RMI服務器上的代碼?

這就是RMI爲的原因。

從我所瞭解的RMI客戶端上傳到服務器對象執行。

否。服務器實現遠程接口;客戶端通過該遠程接口調用方法;呼叫的執行發生在服務器上。

你發現的是一個特定用法 RMI:具體來說,一個移動代理模式。但是接口本身,通過它將代理傳送到服務器,並返回結果:是RMI所做的。

我還可以調用已存在於服務器本身的類嗎?

是的,這就是RMI所做的。

這可能嗎?如果是這樣如何?

是的,通過RMI。

我想你需要再看看教程。