PATENT ABSTRACT
A device monitors a system&#39;s available resources and produces either a deferred notification or an instant notification based on a comparison with an established threshold. The threshold may be adjusted if current or anticipated system resource utilization changes. Changes to the threshold may result in deferred notifications being removed from a queue and an instant notification being transmitted to a reporting facility.

PATENT DESCRIPTION
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     This invention is related in general to data communications systems. In particular, the invention consists of an adaptive system for transmitting messages depending on dynamic system resources and system requirements.  
         [0003]     2. Description of the Prior Art  
         [0004]     Complex systems such as digital data storage systems traditionally include system resources such as processors, communication buses, and data storage devices. Typical data storage devices include hard-disk drives, magneto-optical drives, and magnetic tape cartridges. These system resources are dynamically allocated to specific tasks as the system is utilized. If a system resource fails or is taken off-line for maintenance, the system resources available for allocation are decreased. To address the problem of failed system resources, a notification is typically sent to a central location. This notification is used to generate corrective action, i.e., repair or replacement of the defective part. These notifications may either be sent when a system resource becomes unavailable or may be scheduled for later transmission.  
         [0005]     In U.S. Pat. No. 5,892,898, Fujii et al. disclose an event management system for identifying and logging event information. The event management system includes an application for reporting an event message in response to an occurrence of a particular event. It would be advantageous, however, to transmit an event message at a deferred period of time. In particular, it would be advantageous to defer transmission until a notification window is open.  
         [0006]     In U.S. Pat. No. 5,809,491, Kayalioglu et al. disclose a system for generating an exception report for a particular problem based on call traffic. The system maintains a count of occurrences for the problem. If the count exceeds a threshold, the system generates an exception report. It would be advantageous to have a similar system directed to hardware resources. For example, it would be advantageous to maintain a count of the number of failed hardware devices, such as hard-disk drives. It would be advantageous if this count of failed hardware devices was utilized to determine if an error notification should be deferred or transmitted as soon as possible.  
         [0007]     It would also be advantageous to have a system of tracking the historical usage of system resources and utilizing the historical information to predict future system resource requirements. This prediction could be used to aid in the decision of deferring or transmitting a notification. Additionally, it would be advantageous to track current system resources and evaluate whether deferred notifications should be changed to instant notifications based on the current or near future system needs.  
       SUMMARY OF THE INVENTION  
       [0008]     The invention disclosed herein utilizes a system resource monitoring algorithm to track the number of specific types of unavailable system resources. If the number of unavailable system resources exceeds a pre-established threshold, a notification is immediately transmitted. Otherwise, the notification is stored for deferred transmission. A predictive algorithm may utilize historical system resource requirements to dynamically adjust the threshold. If the threshold is lowered below the level of available system resources, previously deferred notifications may be changed to immediate notifications.  
         [0009]     Various other purposes and advantages of the invention will become clear from its description in the specification that follows and from the novel features particularly pointed out in the appended claims. Therefore, to the accomplishment of the objectives described above, this invention comprises the features hereinafter illustrated in the drawings, fully described in the detailed description of the preferred embodiments and particularly pointed out in the claims. However, such drawings and description disclose just a few of the various ways in which the invention may be practiced.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0010]      FIG. 1  is a block diagram illustrating an adaptive message delivery system including a system resource monitoring device, a predictive device, a threshold establishment device, and a notification queue.  
         [0011]      FIG. 2  is a block diagram illustrating the adaptive message delivery system of  FIG. 1  and a system under test.  
         [0012]      FIG. 3  is a flow chart illustrating the process of establishing and adapting a notification threshold.  
         [0013]      FIG. 4  illustrates the process of  FIG. 3  and is expanded to include a predictive algorithm.  
         [0014]      FIG. 5  is a flow chart illustrating the process of  FIG. 4  with the added step of removing a deferred notification.  
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0015]     This invention is based on the idea of monitoring system resources and sending notifications when these system resources become unavailable. The invention disclosed herein may be implemented as a method, apparatus or article of manufacture using standard programming or engineering techniques to produce software, firmware, hardware, or any combination thereof. The term “article of manufacture” as used herein refers to code or logic implemented in hardware or computer readable media such as optical storage devices, and volatile or non-volatile memory devices. Such hardware may include, but is not limited to, field programmable gate arrays (“FPGAs”), application-specific integrated circuits (“ASICs”), complex programmable logic devices (“CPLDs”), programmable logic arrays (“PLAs”), microprocessors, or other similar processing devices.  
         [0016]     Referring to figures, wherein like parts are designated with the same reference numerals and symbols,  FIG. 1  is a block diagram of an adaptive message delivery system  10  including a system resource monitoring device  12 , a predictive device  14 , a threshold establishment device  16 , and a notification queue  18 . In a simple embodiment of the invention, the system resource monitoring device keeps track of the number of specific types of available system resources. For example, turning to  FIG. 2 , the adaptive message delivery system  10  is shown with a system under test  100 . In this embodiment of the invention, the system under test  100  is a data storage system including multiple processors  102  and data storage devices  104 . The system resource monitoring device  12  determines when either a processor  102  or a data storage device  104  becomes unavailable for use by the data storage system  100 . These devices may become unavailable as a result of mechanical failure, corrupted control software, interference with communication channels, improper power-on, or removal for preventive maintenance or replacement.  
         [0017]     Notice  106  of a device unavailability is passed to the threshold establishment device  16  where a resource number  20  representative of available system resources is adjusted. This resource number  20  is compared against a threshold  22 . If the resource number  20  is equal to or exceeds the threshold  22 , a deferred notification  24  is placed in the notification queue  18  for deferred delivery. Deferred delivery would normally occur during a pre-determined period of time referred to as a notification window. If, however, the resource number  20  is less than the threshold  22 , an instant notification  26  is transmitted as soon as possible. In this embodiment of the invention, the instant notification is transmitted to a centralized reporting facility  28 .  
         [0018]     The threshold  22  may be a fixed number or may be adjusted to account for variations in system resource usage. One method of adjusting the threshold  22  is to utilize a predictive device  14  to anticipate future system resource needs. This can be accomplished by maintaining a resource usage history  30  based on prior system resource utilization. This resource usage history may be maintained as a look-up-table or other data structure in a memory device, such as a random access memory (“RAM”) or a non-volatile memory such as a disk file. If a pattern of system resource utilization is detected, the predictive device  14  may vary the threshold  22  in anticipation of heavy, normal, and light periods of system resource utilization. In this manner, a deferred notification  24  of a failure of a data storage device  104  may be placed in the notification queue  18  during periods of light resource utilization. A failure of an additionally data storage device  104  may result in an instant notification  26  notification being transmitted if the resource number  20  associated with data storage devices  104  is lower than the associated threshold  22 . However, if the predictive device anticipates normal or heavy system resource utilization in the near future, the threshold  22  may be lowered, resulting in both the first failure and second failure producing instant notifications.  
         [0019]     Another aspect of the invention is that changes to the threshold  22  by the predictive device  14  may result in a deferred notification  24  being removed from the notification queue  18  and being transmitted as an instant notification  30 . For example, a deferred notification  24  may be placed in the notification queue  18  during a period when the threshold  22  for data storage devices is low. Subsequently, the predictive device  14  determines that a normal or high period of usage is approaching and adjusts the threshold  22  upward, indicating a need for a higher number of data storage devices  104 . If the resource number  20  is lower than the threshold  22 , the deferred notification  24  is removed from the notification queue  18  and transmitted to the centralized reporting facility.  
         [0020]      FIG. 3  is a flow chart illustrating an adaptive message delivery algorithm  198 . In step  200 , a threshold  22  is established for each specific type of system resource, i.e., processor  102  or data storage device  104 . In step  202 , a resource number  20  indicative of the number of a type of system resources that are currently available is established. In step  204 , the resource number  20  is compared to the threshold  22 . If the resource number  20  is less than the threshold, an instant notification  26  is transmitted to a centralized reporting facility  28  in step  206 . Else, a deferred notification  24  is placed in the notification queue  18  in step  208 .  
         [0021]      FIG. 4  illustrates the process of  FIG. 3  expanded to include a predictive algorithm. In step  190 , a resource usage history  30  is maintained in a memory device such as a random access memory or a non-volatile memory such as a disk file. In step  192 , the predictive device  14  analyzes the resource usage history  30  to ascertain resource usage patterns. The predictive device  14  may include a hardware device  14   a  or a computing device  14   b  implementing a software construct (analysis software)  14   c  to analyze the resource usage history  30 . Once resource usage patterns have been ascertained, the predictive device  14  adjusts the threshold  22  to accommodate anticipated system resource usage in step  194 .  FIG. 5  is a flow chart illustrating the process of  FIG. 4  with the added step of removing a deferred notification  24  from the notification queue  18  and transmitting an instant notification  26  in step  206 , in response to the threshold  22  being adjusted (step  194 ).  
         [0022]     Those skilled in the art of making data communication systems may develop other embodiments of the present invention. For example, an adaptive message delivery system  10  may be used to monitor more than one system under test  100 . Or, instant notifications  26  may be transmitted to more than one location. However, the terms and expressions which have been employed in the foregoing specification are used therein as terms of description and not of limitation, and there is no intention in the use of such terms and expressions of excluding equivalents of the features shown and described or portions thereof, it being recognized that the scope of the invention is defined and limited only by the claims which follow.