[英]Is still useful to implement EJB with RMI when you can implement Web Services (SOA/REST)?
这可能听起来与此类似,但事实并非如此。
我有点理解EJB和RMI,而且我已经在SOA下使用Web服务了一段时间。 我想知道为什么使用EJB暴露RMI下的远程接口而不是发布Web服务(SOA / REST,但主要是SOA)是有用的。 我不是在问哪一个更好,只是我想知道为什么我更喜欢通过Web服务实现带有远程接口的EJB的一个很好的理由。
我查看了很多网页,但似乎都过时了。 到目前为止,我所拥有的是,在与Java遗留系统集成时,暴露远程接口的EJB仅比WS更好。 如果我想管理事务,我可以使用本地接口实现EJB。 另外,我不认为选择EJB over RMI比Web Service接口更有效。
我对吗? 有什么我想念的吗?
非常感谢提前。
如果是,EJB更好
为什么(REST)Web服务如此受欢迎? EJB只能连接到另一个Java应用程序。 大多数现代富Internet应用程序都是用JavaScript编写的,因此将它们与任何后端连接的唯一方法是使用某种Web服务(通常是REST + JSON)。 对于这样的应用程序,EJB很没用。
如果使用RMI作为有线协议,则必须使用Java编写客户端和服务。
SOAP使用XML over HTTP,而REST使用纯HTTP进行客户端和服务之间的通信。 对话的任何一端都可以用任何可以通过HTTP发送适当请求的语言编写,这种限制要少得多。
我认为这是HTTP上的Web服务胜过RMI的一个原因。 每次都是简单而开放的胜利。
它们是用于不同目的的不同东西。
EJB用于紧密耦合的N层系统,您可以控制所有元素。 它们使用看似普通的方法调用,以及IIOP上的LAN类型性能或EE供应商已部署的任何其他协议,提供语言的直接编码。
SOAP / REST最适合在Internet上使用,或者在B2B或其他无法控制两端且需要松散耦合的情况下使用。 由于所有XML,您的性能会慢得多,但您也可以在中间获得行业标准协议,从而为单一来源问题提供双端保护。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.