当发展分布式应用程序,所有Java编写的通过的同一家公司,你会选择网络服务或RMI?有哪些优点和缺点方面的业绩、松散耦合、便于使用,...?谁会选择WS?你可以建立一个面向服务的架构与RMI?

有帮助吗?

解决方案

我会尝试这样思考:

您是否打算在彼此之下运行独立服务,这些服务可能会在未来的某个时间被非Java应用程序访问?然后去寻找网络服务。

您是否只想在多台服务器上传播应用程序的一部分(请注意单数)?然后转到RMI,您将不必离开Java Universe以使所有内容紧密耦合在一起。

其他提示

我会选择WS。

  • 这是不可能的,WS/马绍尔群岛共和国将是你的瓶颈。
  • 为什么要关上门对于其他可能的技术的未来?
  • 马绍尔群岛共和国可能有问题,如果版本的课程客户/服务器获得同步。

和...我最有可能选择其他服务。

如果你不需要它(与非Java互操作),而你可能不是,RMI会更好;代码更少,配置更少,带宽开销更少。

如果你害怕自己需要的选项那就是使用EJB3;它使用RMI,非常易于设置和部署,但如果您需要,还可以轻松将您的呼叫转换为Web服务。

无论你做什么,创造自己的东西;坚持标准。

我的选择是:

标准java序列化 - 专业:imho提供最高性能,易于实现(我使用Spring将本地接口公开为远程接口);缺点:序列化在不同的jvm版本之间不起作用

二进制序列化(例如来自jetty的hessian) - 优点:与java序列化相同的性能,可在不同的jvm版本之间工作

WS:只有在不同平台java + .net之间需要互操作性时,否则它只是太重了。

RMI是一种快速发展的快速传输方式,但我建议不要在生产环境中使用它。序列化兼容性问题可能会使事情变得尴尬,您必须非常小心地协调部署。

Web服务效率低下,是的,但只是通过它的硬件。或者,使用简单,轻量级的XML-over-HTTP,而不是全脂SOAP / WSDL。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top