在另一个question中,我担心使用需要五分钟才能完成的网络服务。我正考虑在这个用例中使用RMI而不是Web服务。
但是在一天结束时,Web服务和RMI都使用TCP套接字进行底层连接吗?有没有理由为什么5分钟的网络服务呼叫比RMI请求在同一时间内不稳定?
请注意,在我们的案例中,我们讨论的是内部应用程序通信。
更新:这个问题源于我担心我们会遇到需要花费3-5分钟才能完成的网络服务掉线或其他问题。担心可能完全不合理 - 我的另一个question的响应者表示如果你控制客户端和服务器,你应该没问题。但我只想更详细地了解为什么使用Web服务实现而不是RMI实现的5分钟调用的连接断开的可能性更大。如果他们都依赖套接字连接而不是解释为什么没有区别......
答案 0 :(得分:3)
如果单个远程调用需要5分钟才能完成,那么可能是因为实现该调用的操作很慢,而不是因为Web服务层本身很慢。如果你用RMI重新包装操作,它可能会一样慢。
当您调用大量操作时,RMI优于SOAP的性能优势才会明显,而不是因为任何一个操作的速度,仅仅因为RMI比SOAP更有效。但它不会神奇地使缓慢的操作变得更快。
至于你关于套接字的问题,是的,RMI和SOAP都在你足够下去时使用套接字级协议(在RMI的情况下是IIOP或JRMP,在SOAP的情况下是HTTP)。但是,这与你的问题无关。
答案 1 :(得分:1)
RMI主要用于JRMP(在纯Java上下文中)或IIOP(在非JVM上下文中),而SOAP消息通常(但不是唯一地)通过HTTP发送。所有这三种线程协议都使用TCP / IP,因此在这方面没有选择RMI优于Web服务的优势。