rpc,rmi,jms和Web服务有什么区别?

问题描述 投票:-2回答:1

有人可以解释一下rpc,rmi,jms和webservices之间的区别。我所知道的Web服务是肥皂和休息。我不明白jms在使用webservices时是如何进入图片的,以及esb的用途是什么?

jms
1个回答
0
投票

RPC和RMI是紧密耦合的方式,用于在删除服务器应用程序上调用方法。 RCP是C / C ++版本,RMI是Java版本,有关详细信息,请参阅What is the difference between Java RMI and RPC?。但你可以安全地忘记RPC和RMI,因为它们具有这种紧密耦合,并且它们现在被认为是“不现代的”。例如,要从服务器获取“Pete”的地址,客户端会调用类似于:address = server.getAddress("Pete")的问题这里的问题是,当您对Server的API进行一些更改时,您还需要升级所有客户端。如果一个服务器有多个客户端,则会导致“升级地狱”。

JMS更好,因为您通过消息进行通信,而不是方法调用。您将信息包(=消息)从一个组件发送到另一个组件。向对方通报事件。例如,client1可以发送消息:msg.setJMSReplyTo("client1"); producer.send( "ADDRESS-SERVER", msg ); response = consumer.receive()(伪代码)并获取消息。服务器可以添加新的响应字段(街道/邮政编码),例如,对于client2,在不中断与client1的通信的情况下到达地址。

JMS可以是请求/回复,但也可以是发布 - 订阅(企业集成的最佳方法)。 JMS提供程序很多,有些像ActiveMQ一样免费,并且通常在每秒消息方面非常有效。

WebServices是基于HTTP的。 REST或SOAP。 SOAP有点过时了。 REST使用特殊URL来向/从Web服务器获取GET或POST信息。如果高性能很重要(每秒100k或更多请求),您应该考虑JMS,但如果您有WebServers等经验,那么REST也可以用于集成。 WebServices的一个优点是您可以使用标准浏览器来调试此服务,并且通常可以更轻松地在端口8080上打开防火墙。

我的建议,如果你没有偏好:了解JMS主题并开始思考如何解决“事件驱动/推送计算”的问题 - 特别是在后端这是一个很好的架构。对于更多与前端相关的集成,REST WebServices是可行的方法。

© www.soinside.com 2019 - 2024. All rights reserved.