2009-11-21 58 views
0

在另一個question我擔心使用一個需要五分鐘才能完成的Web服務。我正在考慮在此用例中使用RMI而不是Web服務。RMI和Web服務都使用套接字連接嗎?

但是在一天結束時,Web服務和RMI都使用TCP套接字進行底層連接嗎?爲什麼Web服務調用需要5分鐘的穩定性比RMI請求的穩定性要低?

請注意,在我們的情況下,我們正在討論內部應用程序通信。


更新:這個問題從我的莖擔心我們會遇到掉線或與需要3-5分鐘即可完成網絡服務等問題。擔心可能完全不合理 - 對我的其他question響應者表示,如果您同時控制客戶端和服務器,則應該沒問題。但我只是想更詳細地瞭解爲什麼一個5分鐘呼叫的掉線連接不太可能使用Web服務實現而不是RMI實現。如果它們都依賴套接字連接,那麼這可能解釋爲什麼沒有區別...

+0

你的意思是不那麼穩定?你觀察到什麼? – 2009-11-21 22:44:52

+0

我沒有看到任何東西 - 我只是*在可能的問題上着迷*。增加了對該問題的澄清。 – 2009-11-22 00:59:56

回答

3

如果一個遠程調用需要5分鐘才能完成,那可能是因爲執行該調用的操作很慢,而不是因爲Web服務層本身很慢。如果您要使用RMI重新進行操作,它可能會同樣緩慢。

僅當因爲RMI比SOAP更高效時,RMI優於SOAP的性能優勢只會在您調用大量操作時顯而易見,而不是任何操作的速度。但它不會神奇地使緩慢的操作變得更快。

至於你關於套接字的問題,是的,當你足夠遠的時候,RMI和SOAP都使用套接字級協議(在RMI的情況下爲IIOP或JRMP,在SOAP的情況下爲HTTP)。不過,這與您的問題並不相關。

1

RMI通常用於JRMP(在純Java上下文中)或IIOP(在非JVM上下文中),而SOAP消息通常(但不是唯一的)通過HTTP發送。所有這三種有線協議都使用TCP/IP,因此在這方面,選擇RMI而不是Web服務是沒有好處的。

+0

在非JVM上下文中根本不使用RMI。 RMI/IIOP用於J2EE上下文中。 – EJP 2016-06-06 11:28:42

相關問題