這可能聽起來有點基本,但我剛開始考慮Java的RMI並想知道它的可能性。如何遠程訪問RMI服務器上的代碼?
從我所瞭解的RMI客戶端上傳到服務器對象執行。作爲回報,我將給出服務器的計算結果。這似乎是一件好事,但我是否也可以調用服務器本身已存在的類?例如,我們假設系統中的每個節點經常需要處理相同的大部分代碼。我們還假設我有有限的帶寬和幾個節點來上傳我的對象。我可能會發現調用服務器上已有類的方法會更好。這可能嗎?如果是這樣如何?
這可能聽起來有點基本,但我剛開始考慮Java的RMI並想知道它的可能性。如何遠程訪問RMI服務器上的代碼?
從我所瞭解的RMI客戶端上傳到服務器對象執行。作爲回報,我將給出服務器的計算結果。這似乎是一件好事,但我是否也可以調用服務器本身已存在的類?例如,我們假設系統中的每個節點經常需要處理相同的大部分代碼。我們還假設我有有限的帶寬和幾個節點來上傳我的對象。我可能會發現調用服務器上已有類的方法會更好。這可能嗎?如果是這樣如何?
RMI客戶端不會將對象上傳到RMI服務器以供執行,RMI客戶端可以在RMI服務器上使用「調用」方法。所以在技術上你想要做的就是RMI所做的。這就是爲什麼它被稱爲「遠程方法調用」的原因,即在遠程機器上的類中可用的方法。
如何遠程訪問RMI服務器上的代碼?
這就是RMI爲的原因。
從我所瞭解的RMI客戶端上傳到服務器對象執行。
否。服務器實現遠程接口;客戶端通過該遠程接口調用方法;呼叫的執行發生在服務器上。
你發現的是一個特定用法 RMI:具體來說,一個移動代理模式。但是接口本身,通過它將代理傳送到服務器,並返回結果:即是RMI所做的。
我還可以調用已存在於服務器本身的類嗎?
是的,這就是RMI所做的。
這可能嗎?如果是這樣如何?
是的,通過RMI。
我想你需要再看看教程。
這就是我在Oracle教程中閱讀的內容。服務器實現了2個準系統接口,可以處理結果。任務被髮送到包含特定對象的服務器。服務器計算結果並將其發送回客戶端。 – spacitron
這是RMI *的特定用途:特別是移動代理。通用部分是客戶端使用遠程接口在服務器上調用遠程方法的部分。 – EJP