JMS优于Webservices有什么大优势,反之亦然?
(Web服务是否膨胀?JMS总体上更好地提供接口吗?)
从埃里克森校正后编辑:
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)提供了从另一端"按时间顺序解耦"的能力.可以在没有另一端可用的情况下发送消息.
所有其他常见的A2A方法都要求合作伙伴能够立即做出响应,要求他们能够处理峰值负载,几乎没有扩展处理能力.