com.ibm.datapower.wamt.amp
Interface NotificationCatcher


public interface NotificationCatcher

This is the interface through which the Manager will start and stop the NotificationCatcher. When the Manager is instantiated, it can in turn instantiate a named implementation of the NotificationCatcher. Since the NotificationCatcher holds on to system resources (i.e., network ports) for long periods of time, the NotificationCatcher should offer a shutdown() method that can be invoked by the Manager. Similarly, if the NotificationCatcher needs to perform initialization that must be done outside the constructor, the NotificationCatcher should offer a startup() method that can be invoked by the Manager.

The device sends events (Notifications) to the NotificationCatcher. The NotificationCatcher collects them from the network, validates the device's certificate on the HTTPS transport used to deliver the notification, creates Notification objects from the raw message as obtained from the HTTPS transport, and places the Notification in the Manager's queue. The NotificationCatcher should maintain proper order of the Notifications.

The NotificationCatcher sends acknowledgements to the device when it successfully receives a notification. The device uses this acknowledgement to guarantee delivery of all notifications to the NotificationCatcher.

HTTPS will be used as the transport to deliver the notifications. The notifications will be in CBE format, and wrapped in a SOAP message for delivery over the transport.

We need a way to guarantee event message integrity, meaning that the event came from a real device that we are managing, and is not an injection by a malicious 3rd party. If we did not have event integrity then the Manager could be vulnerable to a DoS attack, causing it to refetch a lot of data from the device that is not necessary. The integrity will be performed by using SSL for the transport. The device should present to the NotificationCatcher a certificate that is signed by a certificate authority that the NotificationCatcher trusts. The NotificationCatcher should have a default list of trusted CAs that work with the default certificates in DataPower devices. There should be a way for the customer to configure the NotificationCatcher to recognize a custom list of trusted CAs, which would match the CAs used to sign the device certificates.

If the transport fails the integrity test, then the NotificationCatcher should discard the notification and optionally create a log entry.

This should be an interface instead of a class because more than one implementation is expected.

See Also:
NotificationCatcherFactory, Notification, Commands

Field Summary
static java.lang.String COPYRIGHT_2009_2010
           
static java.lang.String SCM_REVISION
           
 
Method Summary
 java.net.URL getURL()
          Get the URL that this NotificationCatcher listens on so Devices know where to post Notifications.
 void shutdown()
          When the Manager is shutdown, the Manager will invoke this method.
 void startup()
          When the Manager is started, the Manager will invoke this method.
 

Field Detail

COPYRIGHT_2009_2010

static final java.lang.String COPYRIGHT_2009_2010
See Also:
Constant Field Values

SCM_REVISION

static final java.lang.String SCM_REVISION
See Also:
Constant Field Values
Method Detail

startup

void startup()
             throws AMPException
When the Manager is started, the Manager will invoke this method. The Manager needs a way to start the NotificationCatcher when the Manager starts. After that point, the NotificationCatcher can place Notifications on the Manager's queue. This method will allow the NotificationCatcher to do any initialization to receive events from devices (such as listening on a network socket) after it has been instantiated by the NotificationCatcherFactory.

See Also:
NotificationCatcherFactory, Manager

shutdown

void shutdown()
When the Manager is shutdown, the Manager will invoke this method. For any resources that were obtained via the NotificationCatcher's constructor or startup(), this method will allow those resources (such as network sockets) to be released when the Manager is shutdown.

See Also:
Manager

getURL

java.net.URL getURL()
Get the URL that this NotificationCatcher listens on so Devices know where to post Notifications. This URL is used when a subscription request ( Commands.subscribeToDevice(DeviceContext, String, StringCollection, URL)) is sent to a device so that the device knows where to send the notifications (events).

Returns:
the URL that this NotificationCatcher listens on so Devices know where to post Notifications. This value will be used when sending subscription requests to Devices. This may be an https or http url. Typically, the path part of the URL will not be relevant, the relevant parts are the protocol, hostname, and port.


© Copyright IBM Corp. 2006, 2010 All Rights Reserved.