Notification





Notification

Notification provides a mechanism to publish messages about events so that subscribers can retrieve them independently of any relationship between provider and requester. Notification is a feature of many current distributed computing systems, including message-oriented middleware (MOM) and CORBA.

For example, a failure in a telephone-switching element generates an event that is passed to the notification system to post a message to a topic to which a network management console subscribes. When the message is received, the network management console knows to take corrective action. A connection is not required between the telephone-switching element and the management console in order to send the message notifying the management console of the failure.

The separation between requester and provider allows a provider to send a message based on a defined trigger and the requester to monitor a topic for messages relevant to it, while other requesters monitor other topics they're concerned with.

Notification systems often include the use of an intermediary (such as an event broker or temporary storage channels) to which the message can be sent for later (i.e., asynchronous) retrieval by the consumer. Notification systems do not always require an intermediary, however, because the message providers can also support the temporary storage requirements necessary for an implementation.

For Web services, two notification specifications are proposed:

  • WS-Eventing By BEA, Computer Associates, IBM, Microsoft, Sun, and Tibco Software.

  • WS-Notification Submitted to the OASIS WS-Notification Technical

    Committee by Akami Technologies, IBM, Tibco Software, Fujitsu Software, SAP, Sonic Software, Computer Associates, Globus, and HP.

WS-Eventing is much smaller than WS-Notification (which is actually three specifications) and includes only very basic publish/subscribe technology. WSNotification is part of a larger effort by IBM and others to provide messaging and resource management technologies for grid computing based on Web services.

Both specifications rely upon WS-Addressing for the format of the endpoint references.

Why Did Microsoft and IBM Split over Notification?

The spilt over the notification specification represents the first (and only) time since IBM and Microsoft seriously started collaborating on specifications[3] that the two Web services leaders went their separate ways. The best explanation is probably a difference of opinion over the importance of Web services for grid computing. Unlike IBM, Microsoft is not very active in promoting the use of Web services for grid computing. The fact that WSNotification is being proposed as a part of a larger effort (Web Services Resource Framework) around the grid would tend to make WS-Notification less attractive to vendors for whom the grid is not a high priority. In addition, however, WS-Notification is considerably more complex. Since the initial publication of WS-Eventing, a new version was published that included IBM (and Sun) among the authors. However, as of this writing, the two specifications remain separate, and no clear reason has been given other than the rationale that one is complex (WS-Notification) and the other simple (WS-Eventing).


[3] Microsoft and IBM had originally proposed different solutions for service description and orchestration before combining them into WSDL and WS-BPEL, respectively. But since those events, IBM and Microsoft had joined forces on every other specification until notification.

WS-Eventing

WS-Eventing is a simple specification that defines how to subscribe to a notification message, including a protocol for generating a confirmation response to a subscription request.

For example:

<wsa:Action>
 http://schemas.xmlsoap.org/ws/2004/01/eventing/Subscribe
</wsa:Action>

<wsa:ReplyTo>
<wsa:Address>
 http://www.iona.com/Newcomer/StockOptions
</wsa:Address>
</wsa:ReplyTo>

This simple example illustrates the WS-Eventing namespace wsa and the action to subscribe to an event (not shown) that, when it occurs, is published to Newcomer's event sink for stock option notices.

More than these simple headers are involved in notifications. The notification actions are modeled as an exchange of SOAP messages to set up and confirm the subscription, and then a second set of SOAP MEPs (either broadcast or publish/subscribe, depending on how the notification actions are defined) executes the subscription fulfillment when an event occurs that causes an event to be published to the topic.

WS-Notification

WS-Notification is the name for a family of three specifications that are being developed within the Web Services Resource Framework (WSRF) set of specifications. WSRF is centered on the concept of providing references to data and related resources such as persistent storage mechanisms. The WS-Notification specifications define simple to complex mechanisms for tying events to messages. The specifications include:

  • WS-BaseNotification Defines interfaces for notification providers and requesters (called producers and consumers in the specification) and defines related MEPs. This specification covers the simple notification use case of point-to-point notification. This is the core specification on which the others depend.

  • WS-Topics Defines the topics mechanism, which is a way to categorize and organize subscriptions for different types of information (i.e., different message types). WS-Topics adds to WS-BaseNotification various use cases for publish/subscribe MEPs and specifies an XML model for metadata associated with pub/sub services.

  • WS-BrokeredNotification Defines the interface for a notification broker, which is an intermediary that manages the point-to-point and publish/subscribe MEPs.

Altogether, WS-Notification defines a complete notification system, supporting various MEPs such as point-to-point and publish/subscribe, along with interface definitions for a topics mechanism and a broker.


     Python   SQL   Java   php   Perl 
     game development   web development   internet   *nix   graphics   hardware 
     telecommunications   C++ 
     Flash   Active Directory   Windows