We jointly announced the WS-Notification spec yesterday – The co-authors include IBM, Akamai, HP, SAP, Sonic Software, The Globus Alliance, and TIBCO. The spec can be viewed at - http://www.ibm.com/developerworks/library/ws-resource/ws-notification.pdf
WS-Notification is part of the WS-Resource framework, also announced yesterday -
I would best describe WS-Notification as “Pub-sub for the Internet”. Its a Distributed broker-based pub-sub using web service interfaces. It doesn’t directly address QoS issues such as exactly-once delivery, although it is intended to be composable with WS-ReliableMessaging (In fact, its intended to be composable with the rest of the WS-* set of specs).
WS-Notification allows the use of a message broker, or a series of connected brokers, as intermediaries between producers and consumers. It Allows the use of proprietary MOM and bridging between proprietary MOM.
I encourage you all to go read the spec. Here are some of the interesting items of note -
- WS-Notification allows for a separate subscription broker that is able to subscribe on behalf of another subscriber.
- While a “Notification broker” is part of the spec, it allows for pub/sub to happen directly between the endpoints. The actual sending of the message works similarly. Publishers can send directly to other subscribers, or can send to a Notification Broker and let the Notification Broker take care of getting it to where it needs to go.
- WS-Notification supports “demand-based publishing” - Publishers can register with a Notification Broker and inform the broker about the list of topics it intends to publish on. This can be used at least a couple of ways – to authenticate the publisher and apply access control lists to limit the publisher to particular topics. It can also be used as a way for a Notification Broker to be able to manage the topic namespace such that it can apply optimizations such as suspending the publisher when there are no subscribers currently active.
- The publisher need not be a web service. The publisher may act through a Notification producer which is Web service savvy.
Publishing and Subscribing:
WS-Notification supports a hierarchical tree-based topic space (much like SonicMQ). A subscriber can subscribe to entire branches at any level. Hierarchical topic trees allow subscribing to a Topic space that can include any branch in the tree using an Xpath-like “TopicPathExpression” such as “tns:t1/t2 | tns:t4/t5”. Security permissions may also be applied using the same mechanism.
- Publishers and Subscribers are referenced using WS-Addressing Endpoints.
- Message selectors are also supported using an Xpath-like notation. Message selectors allow a subscriber to filter a message based on a criteria.
- There is also the notion of a “precondition”, which is sort of like a “publish when…” a certain condition occurs.
Subscriptions may have a InitialTerminationTime, which governs how long the subscription is valid for. The whole lifecycle of resources is governed by a companion spec, WS-ResourceLifeTime. http://www.ibm.com/developerworks/library/ws-resource/ws-resourcelifetime.pdf