繁体   English   中英

在仅Java环境中Web服务和RMI的优缺点是什么?

[英]What are the pros and cons of Web Services and RMI in a Java-only environment?

在开发同一家公司用Java编写的分布式应用程序时,您会选择Web服务还是RMI? 在性能,松散耦合,易用性方面,有哪些优点和缺点? 有人会选择WS吗? 你能用RMI构建面向服务的架构吗?

我试着这样思考:

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

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

我会选择WS。

  • WS / RMI不太可能成为您的瓶颈。
  • 为什么将来关闭其他可能技术的大门?
  • 如果客户端/服务器上的类版本不同步,则RMI可能有问题。

而且......我很可能会选择REST服务。

如果你不需要它(与非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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM