根据网上的文献,我可以看到有两个与web服务事件相关的规范:
- WS-BaseNotification-OASIS于2004年提交
- WS-Eventing-W3C于2006年提交
对我来说,两者似乎都有相同的功能。目前业内最容易接受的规格是什么?
您无法将SOAP(Web服务堆栈的消息编码部分)与AMQP或JMS(以及传输协议)进行比较。使用SOAP 1.2,您可以使用JMS传输绑定(仅适用于RPC)。AMQP建立在TCP之上,因此您可以使用"基于AMQP的SOAP"以及"基于TCP的SOAP"。您可以看到本文来了解Web服务堆栈中的SOAP所依赖的位置。
回答问题。两个相互竞争的标准:
- WS事件W3C公共草案
- WS-Notification 1.3 OASIS标准(取代了WS-Events),它发展到3个规范的系列:
- WS-BaseNotification(与WS-Eventing非常相似)
- WS-BrokeredNotification(可选)
- WS主题(可选)
在每个版本更新中也会聚合。这个行业没有"领导者"。WS-Eventing是WS-Notification的一个更简单的姐妹,在某些情况下这可能是一个优势。例如,WS-Eventing没有定义Pause/Resume Subscription(但您可以取消订阅/订阅)、broker中介(但有一种方法可以做到这一点)等。
可以在这些ws-*规范之间智能切换的实现可以在这里找到。任何人都没有定义添加消息队列的方式。我认为,这就是AMQP绑定或websocket子协议绑定将在未来的web服务堆栈中发挥作用的地方。
我认为现在大多数人不会使用SOAP,而是依赖于更简单的协议(在本例中为AMQP/JMS),但如果您确实需要/想要使用SOAP WS-Notification(它是WS-BaseNotification的父标准),则是更广泛支持的协议(例如ServiceMix或IBM WebSphere)