Wednesday, 8 August 2007

A quick guide to WS-BaseNotification


Base Notification
...
A Web service, or other entity, disseminates information to a set of other Web services, without having to have prior knowledge of these other Web services.


Situation
Something that happens to produce a Notification

Notification
An XML element describing a Situation. Has a namespace qualified Qname and a schema

Subscription
A Web service requester creates a subscription by sending a Subscription request to a NotificationProducer. The requester does not have to be NotificationConsumer.


NotificationProducer:
produces Notification messages.
  • Accepts incoming Subscribe requests
    • containing a reference to a NotificationConsumer
    • identifying Notifications the NotificationProducer should produce (can be described by boolean filters, including filtering by Topic - see [WS-Topics])
  • The NotificationProducer agrees to produce Notification Messages or returns a fault
  • NotificationProducer, can originate Notifications , or act as a Broker for some other entity (see WS-BrokeredNotification)
Implements the NotificationProducer interface which consists of the following message exchanges:
  • Subscribe (ConsumerReference, Filter, InititalTerminationTime, SubscriptionPolicy) - Returns: SubcriptionEndpoint
  • GetCurrentMessage (Topic) Returns: any

NotificationConsumer
An endpoint (represented by a WS-Addressing endpoint reference) which can receive Notifications.
May implement the generic Notify message exchange, or may implement its own catcher for notifications.
  • Notify ( NotificationMessage) - No response


SubscriptionManager
An endpoint (represented by a WS-Addressing endpoint reference) that allows a service requester to manipulate Subscriptions. Typically implemented by NotificationProducer
Implements the SubscriptionManager interface which consists of the following message exchanges:
  • Renew
  • Unsubscribe
  • PauseSubscription
  • ResumeSubscription


PullPoints

It might not be possible for a NotificationProducer to call out to consumers, so BaseNotification defines a PullPoint interface to allow consumers to fetch messages. The Subscriber (or some other entity) can create a PullPoint and then use it as the ConsumerReference in Subscribe a request. The actual consumer then pulls Notifications from the PullPoint

PullPoint interface
  • GetMessages
  • DestroyPullPoint

Create PullPoint interface
  • CreatePullPoint

No comments: