METHOD OF UPDATING DEVICE STATUS WHEN NOT RECEIVING ASYNCHRONOUS NOTIFICATIONS, FOR MULTPLE DEVICES
Original Publication Date: 1999-Dec-01
Included in the Prior Art Database: 2003-Jun-12
Disclosed are two methods for a monitoring application to maintain device status when registered for, but not currently receiving, asynchronous notifications from the device. That is, when an application is hearing its information from the device in the form of notifications, if the application hasn't heard anything, does this mean nothing has happened, or does this mean that the device is disabled in some way? To find out, the application should query the device when no notification has been received in a certain amount of time, but having a dedicated thread per device to do simply this is inefficient. Both methods below, then, perform this "Are you still there?" query using only one single thread, no matter how many devices are being monitored. Method 1: This method uses only one thread, the "timer watcher" thread, yet produces a query immediately when the defined time has passed without a notification. It does this by maintaining a timer per device and waiting for one of the timers to go off, indicating it is time to query the device corresponding to the timer that went off. Each timer is set to its initial value (e.g. 5 minutes) every time either: a notification is received for the corresponding device; or a query is sent by the timer watcher thread. The current list of timers must be rebuilt every time a device is added or removed from the list of devices being monitored using asynchronous notifications. One additional function would be to make it such that every time a timer went off, the time would be set back to a slightly higher value than before.