0

在另一个问题中,我担心使用需要五分钟才能完成的 Web 服务。我正在考虑在这个用例中使用 RMI 而不是 Web 服务..

但归根结底,Web 服务和 RMI 是否都使用 TCP 套接字进行底层连接?是否有任何理由为什么需要 5 分钟的 Web 服务调用不如需要相同时间的 RMI 请求稳定?

请注意,在我们的例子中,我们谈论的是内部应用程序通信。


更新:这个问题源于我担心我们会遇到连接断开或其他需要 3-5 分钟才能完成的 Web 服务问题。这种担心可能完全不合理 - 我的另一个问题的响应者表示,如果您同时控制客户端和服务器,您应该没问题。但我只是想更详细地了解为什么使用 Web 服务实现而不是 RMI 实现更不可能出现 5 分钟通话的断开连接。如果他们都依赖套接字连接,那么这可以解释为什么没有区别......

4

2 回答 2

3

如果一个远程调用需要 5 分钟才能完成,那么可能是因为实现该调用的操作很慢,而不是因为 Web 服务层本身很慢。如果您要使用 RMI 重新包装操作,它可能会同样慢。

只有在调用大量操作时,RMI 相对于 SOAP 的性能优势才会真正显现出来,而不是任何一个操作的速度,这仅仅是因为 RMI 比 SOAP 更有效。但它不会神奇地使缓慢的操作变得更快。

至于您关于套接字的问题,是的,当您走得足够远时,RMI 和 SOAP 都使用套接字级协议(在 RMI 的情况下为 IIOP 或 JRMP,在 SOAP 的情况下为 HTTP)。不过,这与您的问题并不真正相关。

于 2009-11-21T23:01:32.283 回答
1

RMI 主要用于 JRMP(在纯 Java 上下文中)或 IIOP(在非 JVM 上下文中),而 SOAP 消息通常(但不限于)通过 HTTP 发送。所有这三种有线协议都使用 TCP/IP,因此在这方面,选择 RMI 而不是 Web 服务没有优势。

于 2009-11-21T22:48:54.183 回答