当前位置:  开发笔记 > 编程语言 > 正文

JMS vs Webservices

如何解决《JMSvsWebservices》经验,为你挑选了2个好方法。

JMS优于Webservices有什么大优势,反之亦然?

(Web服务是否膨胀?JMS总体上更好地提供接口吗?)



1> duffymo..:

从埃里克森校正后编辑:

JMS要求您具有JMS提供程序,实现用于处理消息的MessageListener接口的Java类,以及知道如何连接到JMS队列的客户机.JMS表示异步处理 - 客户端发送消息而不一定等待响应.JMS可以以点对点队列方式或发布/订阅使用.

"服务"是一个流动的术语.我认为服务是一个存在于网络上的组件,并宣传合同:"如果你发给我X,我将为你执行此任务并返回Y."

分布式组件已经存在很长时间了.每个人使用不同的协议(例如,COM,Corba,RMI等)进行通信,并以不同的方式公开他们的合同.

Web服务是分布式服务的最新趋势.他们使用HTTP作为协议,可以与任何可以通过TCP/IP连接并发出HTTP请求的客户端进行互操作.

您可以使用SOAP或RPC-XML或REST或"契约优先"样式,但仍然使用HTTP作为其协议的分布式组件的基本思想.

如果您接受所有这些,Web服务通常是同步调用.它们不需要臃肿,但你可以用任何风格或语言编写坏组件.

您可以通过首先设计请求和响应来开始设计任何分布式组件.鉴于这些,您可以根据您希望拥有的客户端类型以及通信是同步还是异步来选择JMS或Web服务.


JMS不仅仅是Java.JMS经过精心设计,允许供应商为其专有的消息服务提供Java接口.还有用于开放消息传递协议的JMS提供程序,如ebXML.这两种方法都允许基于JMS的Java应用程序与其他平台上的消息传递应用程序进行互操作.
当你说"大量"时,你的意思是什么?由于大型XML文档的难度,WS-*在处理非常大的数据方面很差.大多数JMS都没有针对处理大量数据进行优化,但由于在专有系统中实现的范围更大,因此JMS提供商可以更好地处理它.至于选择哪个,它取决于应用程序,以及如何使用消息,而不是消息本身(大小和格式).并且,不要忘记,可以使用WS-*服务实现JMS提供程序.

2> Richard..:

基于消息的系统(包括JMS)提供了从另一端"按时间顺序解耦"的能力.可以在没有另一端可用的情况下发送消息.

所有其他常见的A2A方法都要求合作伙伴能够立即做出响应,要求他们能够处理峰值负载,几乎没有扩展处理能力.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有