2009-11-21 65 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