1. Field of the Invention
The present invention generally relates to computer system monitoring. Specifically, the present invention relates to a method system and program product for optimizing event monitoring filter settings and metric thresholds.
2. Related Art
As computer infrastructures continue to grow in size and functionality, system monitoring is becoming an increasingly important function. For example, many organizations utilize data centers that can include any quantity (e.g., 1000) of computer systems or machines. In such data centers, each computer system will typically process a workload. As such, each system has hard error states where no processing occurs, and soft error states where processing occurs slowly. In general, the soft error states tend to be more transient meaning they tend to dissipate or self-clear. With any error state, however, there is a minimum (feasible) detection and repair time that reflects the business value of a system and the workload it processes, the simplicity of the underlying problem, the disruptiveness of the repair procedure, and other factors.
To ensure adequate operation of such infrastructures, monitoring systems are continually being developed to detect error states (also referred to as “events”). One example of a currently available monitoring system is “IBM Tivoli Monitoring” (ITM) by International Business Machines Corp. of Armonk, N.Y. One issue encountered by any monitoring system is the registration of false events. Specifically, an ideal monitoring system will only register a truly positive event. The registration of false events leads to wasted time and resources. To help avoid the registration of false events monitoring systems such as ITM can utilize filters.
Unfortunately, determining optimal settings for such filters is currently an ad hoc procedure and is not driven from a principled approach. As such, there is currently great difficulty in predicting the behavior of any given filter setting. This leaves unanswered the questions surrounding false positives (e.g., too many events that require no action) and false negatives (e.g., missed events that could require action). This typically leads to conservative filter configurations, leading to an “event flood” (i.e., a constant stream of events), most of which are ignored. Current monitoring systems are thus driven by end-user complaints, which are used to sift through the flood of events to determine which events probably require action and which events may still be safely ignored.
In view of the foregoing, there exists a need for a method system and program product for optimizing event monitoring filter settings so that events that truly require action can be readily identified.
In general, the present invention provides a method, system and program product for optimizing event monitoring filter settings and metric thresholds. Specifically, under the present invention indications of an event are monitored/detected based upon a comparison of a computer system metric to a corresponding metric threshold over time. It is then determined whether a predetermined probability is reached that the indications will persist at least as long as a minimum detection and repair time for the event. Determining whether the predetermined probability is reached is typically accomplished based upon the monitored indications and historical data for past instances of the event. For example, an administrator might wish the event to be registered only if there is at least a 75% chance (i.e., the predetermined probability) that the minimum detection and repair time will be reached or exceeded. Moreover, the historical data might indicate that when indications for the event persisted for 3 minutes in the past, there was a 75% chance that the minimum detection and repair time would be reached or exceeded. Thus, if the current indications persist for 3 minutes, the present invention will determine that the predetermined probability of 75% is reached. The present invention will also determine an optimal filter setting for the event so that it will be registered only when the predetermined probability is reached. Still yet, the present invention can also optimize the metric threshold based on historical data so that indications are more accurately monitored.
A first aspect of the present invention provides a method for optimizing event monitoring filter settings, comprising: monitoring indications of an event over time; obtaining a minimum detection and repair time for the event; and determining an optimal filter setting for registering the event based on the minimum detection and repair time.
A second aspect of the present invention provides a method for optimizing event monitoring filter settings, comprising: monitoring indications of an event based upon a comparison of a computer system metric to a corresponding metric threshold over time; determining whether a predetermined probability is reached that the indications will persist at least as long as a minimum detection and repair time for the event, wherein the step of determining whether the predetermined probability is reached is based upon the monitoring of the indications over time and historical data for past instances of the event; and determining an optimal filter setting for the event so that the event will be registered only if the predetermined probability is reached.
A third aspect of the present invention provides a system for optimizing event monitoring filter settings, comprising: an event monitoring system for monitoring indications of an event; an event persistence system for determining whether a predetermined probability is reached that the indications will persist at least as long as a minimum detection and repair time for the event; and a filter optimization system for determining an optimal filter setting for the event so that the event will be registered only if the predetermined probability is reached.
A fourth aspect of the present invention provides a method for deploying an application for optimizing event monitoring filter settings, comprising: providing a computer infrastructure being operable to: monitor indications of an event; determine whether a predetermined probability is reached that the indications will persist at least as long as a minimum detection and repair time for the event; and determine an optimal filter setting for the event so that the event will be registered only if the predetermined probability is reached.
A fifth aspect of the present invention provides computer software embodied in a propagated signal for optimizing event monitoring filter settings, the computer software comprising instructions to cause a computer system to perform the following functions: monitor indications of an event; determine whether a predetermined probability is reached that the indications will persist at least as long as a minimum detection and repair time for the event; and determine an optimal filter setting for the event so that the event will be registered only if the predetermined probability is reached.
Therefore, the present invention provides a method system and program product for optimizing event monitoring filter settings and metric thresholds.
It is noted that the drawings of the invention are not to scale. The drawings are intended to depict only typical aspects of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements between the drawings.
As indicated above, the present invention provides a method, system and program product for optimizing event monitoring filter settings and metric thresholds. Specifically, under the present invention indications of an event are monitored/detected based upon a comparison of a computer system metric to a corresponding metric threshold over time. It is then determined whether a predetermined probability is reached that the indications will persist at least as long as a minimum detection and repair time for the event. Determining whether the predetermined probability is reached is typically accomplished based upon the monitored indications and historical data for past instances of the event. For example, an administrator might wish the event to be registered only if there is at least a 75% chance (i.e., the predetermined probability) that the minimum detection and repair time will be reached or exceeded. Moreover, the historical data might indicate that when indications for the event persisted for 3 minutes in the past, there was a 75% chance that the minimum detection and repair time would be reached or exceeded. Thus, if the current indications persist for 3 minutes, the present invention will determine that the predetermined probability of 75% is reached. The present invention will also determine an optimal filter setting for the event so that it will be registered only when the predetermined probability is reached. Still yet, the present invention can also optimize the metric threshold based on historical data so that indications are more accurately monitored.
Referring now to
Monitoring system 14 is intended to represent any type of computer system capable of carrying out the teachings of the present invention. For example, monitoring system 14 could be a laptop computer, a desktop computer, a workstation, a handheld device, a server, etc. In addition, as will be further described below, monitoring system 14 can be deployed and/or operated by a service provider that optimizes filter settings and metric thresholds for customers. It should be understood that although shown within two different computer infrastructures 12 and 18, monitoring system 14 and computer systems 52 could actually exist within the same computer infrastructure. Two distinct infrastructures are shown to illustrate that the monitoring and optimization functions of the present invention could be performed by a party who is independent of target infrastructure 18 such as a service provider or the like.
In any event, communication between infrastructures 12 and 18 could occur over a network (e.g., the Internet, a wide area network (WAN), a local area network (LAN), a virtual private network (VPN), etc. via any combination of various types of communications links. For example, the communication links can comprise addressable connections that may utilize any combination of wired and/or wireless transmission methods. Where communications occur via the Internet, connectivity could be provided by conventional TCP/IP sockets-based protocol, and an Internet service provider could be used to establish connectivity to the Internet. In addition, it should be understood that administrator 16 can directly access monitoring system 14 as shown, or administrator 16 could operate a separate computer system that communicates with monitoring system 14 over a network.
Under the present invention, optimization of event monitoring filter settings and computer system metric thresholds are provided. To provide this functionality, optimization system 40 is shown implemented on monitoring system 14 as computer program code. To this extent, monitoring system 14 is shown including a processing unit 20, a memory 22, a bus 24, and an input/output (I/O) interfaces 26. Further, monitoring system 14 is shown in communication with external I/O devices/resources 28 and one or more storage systems 30. In general, processing unit 20 executes computer program code, such as optimization system 40, that is stored in memory 22 and/or storage system(s) 30. While executing computer program code, processing unit 20 can read and/or write data, to/from memory 22, storage system(s) 30, and/or I/O interfaces 26. Bus 24 provides a communication link between each of the components in monitoring system 14. External devices 28 can comprise any devices (e.g., keyboard, pointing device, display, etc.) that enable a user to interact with monitoring system 14 and/or any devices (e.g., network card, modem, etc.) that enable monitoring system 14 to communicate with one or more other computing devices, such as those in target infrastructure 18 and/or operated by administrator 16.
Computer infrastructure 12 is only illustrative of various types of computer infrastructures for implementing the invention. For example, in one embodiment, computer infrastructure 12 comprises two or more computing devices (e.g., a server cluster) that communicate over a network to perform the various process steps of the invention. Moreover, monitoring system 14 is only representative of various possible computer infrastructures that can include numerous combinations of hardware. For example, processing unit 20 may comprise a single processing unit, or be distributed across one or more processing units in one or more locations, e.g., on a client and server. Similarly, memory 22 and/or storage system 30 can comprise any combination of various types of data storage and/or transmission media that reside at one or more physical locations. Further, I/O interfaces 26 can comprise any system for exchanging information with one or more external devices 28. Still further, it is understood that one or more additional components (e.g., system software, math co-processing unit, etc.) not shown in
Storage system 30 can be any type of system (e.g., a database) capable of providing storage for information under the present invention. As will be further described below, such information can include historical data used to implement the present invention. To this extent, storage system 30 could include one or more storage devices, such as a magnetic disk drive or an optical disk drive. In another embodiment, storage system 30 includes data distributed across, for example, a local area network (LAN), wide area network (WAN) or a storage area network (SAN) (not shown). Although not shown, additional components, such as cache memory, communication systems, system software, etc., may be incorporated into monitoring system 14. Moreover, although not shown for brevity purposes, and any computer system operated by administrator 16 will likely contain computerized components similar to monitoring system 14.
Shown in memory 22 of monitoring system 14 is optimization system 40, which includes event monitoring system 42, event persistence system 44, event registration system 46, filter optimization system 48 and metric optimization system 50. Operation of each of these systems is discussed further below. However, it is understood that some of the various systems shown in
Before the primary teachings of the present invention are described in greater detail, a description of event monitoring filters according to the present invention will be given. As is the case with ITM event persistence filters, the filters of the present invention utilize notion of “occurrences” and “non-occurrences or holes” to describe event persistence criteria. An occurrence is an interval of time during which an indication of an event is raised; a non-occurrence or hole is an interval of time during which an indication is not raised. ITM promotes a series of indications into an event when an appropriate number of occurrences are observed, each of which is separated by no more than a designated number of holes. For example, if administrator 16 designated occurrences and holes settings of 3 and 1, respectively, the following events and/or non-events would be yielded:
A core concept of the present invention is the exploitation of a pragmatic definition of “false positive.” Under the present invention, a false positive event is present if the interval from the first indication of the event to the last indication of the event is smaller than the minimum “feasible” detection and repair time. For each occurrence and possible occurrence/hole setting, the present invention creates a tuple of <true/false neg/pos, occurrences, holes> by determining whether the (occurrences, holes) setting would create:
A true positive (an indication that is declared to have persisted longer than the minimum detection and repair time);
A true negative (an indication that does not persist and is not re-raised);
A false positive (an indication that persists, clears, and is not re-raised); or
A false negative (an indication that does not persist but is re-raised). Under one embodiment of the present invention, an optimal filter setting can be selected that maximizes the probability that an indication will persist at least as long as the minimum detection investigation and repair time, without regard to the true negatives/false classifications. In another embodiment, optimal filter settings can be those whose occurrences+holes≦N, where N=(minimum detection and repair time)/(time between samples). Based on this latter approach, the present invention computes/determines the setting that maximizes the “trues” while minimizing the “falses” and occurrences*(holes−1)+1. This also applies to settings where neither holes nor an analogous concept is employed by setting allowed holes to zero.
To illustrate these concepts more clearly, reference is made to optimization system 40 of
In any event, as event monitoring system 42 monitors indications over time, event persistence system 44 will determine (based on historical data) whether a predetermined probability is reached that the indications will persist at least as long as a minimum detection and repair time for the event. Specifically, based on any factor such as policies, rules, historical data, etc., administrator 16 can designate a predetermined probability as well as a minimum repair time for various events. For example, an event of CPU utilization going over a given metric threshold (e.g., 50%) might historically take 15 minutes to detect and repair. In this case, the minimum detection and repair time for this event could be set at 15 minutes. Once indications for this event have been monitored for 15 minutes or longer, the event would be considered a “true positive” event. The predetermined probability allows a “safety” factor to be built in so that the event can be caught before this occurs without taking unnecessary actions. For example, administrator 16 might want the event to be “registered” if there is a 75% chance that the minimum detection and repair time of 15 minutes will be reached or exceeded.
To determine whether the predetermined probability will be reached, historical data (e.g., for the particular event) is used. For example, historical data might state that when indications of previous CPU over-utilization events were received for 3 minutes, the minimum detection and repair time was reached or exceeded 75% of the time. This historical percentage value could change the longer that indications were monitored. For example, the historical data could go on to state that when such indications were monitored for 5 minutes in the past, the minimum detection and repair time was reached or exceeded 80%; and when the indications were monitored for 10 minutes or longer in the past, the minimum detection and repair time was reached or exceeded 100% of the time.
Thus, assume in this example, that the predetermined probability was set at 75% and that the minimum detection and repair time was set at 15 minutes. In this case, event persistence system 44 would determine that the predetermined probability was reached after indications were monitored for 3 minutes. In setting the predetermined probability and the minimum detection and repair time under the present invention, any methodology could be used. For example, a computer-based interface page comprised of fields, menus, buttons and the like could be provided (e.g., by event persistence system 44) to allow administrator 16 to manually set these values. Alternatively, event persistence system 44 could be configured to automatically set these values based on rules, policies, historical data, etc.
In any event, if the predetermined probability is reached that the indications will persist for at least as long as the minimum detection and repair time, event registration system 46 will register the event. Registration of the event can include, among other things, generation and transmission of an alert or the like to administrator 16 or any other applicable parties.
In addition to providing the monitoring and registration functions described, filter optimization system 48 of the present invention will determine an optimal filter setting that can be applied to future instances of the event. To optimize the filter setting, filter optimization system 48 can employ any number of means. For example, as indicated above, filter optimization system 48 can determine an arrangement of occurrences and non-occurrences or holes so that the predetermined probability is not exceeded (i.e., so that the event will be registered only if the predetermined probability is reached). As indicated above, an occurrence is an interval of time during which one or more indications of an event are present, while a non-occurrence or hole is an interval of time during which an indication is not present. Using the above example, the predetermined probability was reached at the 3 minute mark. As such, filter optimization system 48 can determine an arrangement of O's and H's so that the filter matches the 3 minute time span, while still complying with any applicable rules (e.g., such as a particular required ratio of O's to H's, etc.). This filter can then be applied to future instances of the event to ensure highly accurate registration rates. That is, by applying this optimal filter setting to future instances of the event, the likelihood of early or late responses is reduced or eliminated entirely.
In another embodiment, filter optimization system 48 can determine the optimal filter setting for the event such that occurrences+holes<N, where N=(minimum detection and repair time)/(time between samples). Based on this latter approach, the present invention computes/determines the setting that maximizes the “trues” while minimizing the “falses” and occurrences*(holes−1)+1. This also applies to settings where neither holes nor an analogous concept is employed by setting allowed holes to zero.
As further shown in
if (VALUE≧THETA) then RaiseAlert(eventName, eventData)
where VALUE is the computer system metric, THETA is a corresponding metric threshold. Using the example of CPU utilization set forth above, VALUE could be 60% and THETA could be 50%. In this case, eventName could be CPU utilization and eventData could be the top five processes currently in operation.
We present the operation of the invention in terms of a rule system for constructing an indications time-series from an observations time-series, and from that indications time-series, constructing and optimizing an attested state machine. In particular, starting with a time-series of observations:
observations={<t0, v0>, . . . , <t0+k*dt, vk>}
where ti is the time of the observation, dt is the interval between observations, and vi is the VALUE at time ti the corresponding time series of indications is defined by the rule
indications={<t0, (v0≧θ)>, . . . , <t0+k*dt, vk>θ>}
where <ti, true> is in indications if and only if vi≧θ, and <ti, false> is in indications if and only if vi<θ. (This is sometimes referred to as a transient event or potential event or single occurrence of an event.) (We assume the observations are separated by a constant interval for simplicity in presentation only—one skilled in the art will see clearly how to apply the current technique with variable intervals. The standard practice in metric-based monitoring is to use a constant interval between observations, however.) In turn, this time series of occurrences and non-occurrences (holes) is evaluated by a rule of the form
if (occholes(O, H, i, . . . , i+O*H+1)) then RaiseAlert(eventName, eventData)
to identify a persistent event, one that has a sequence of occurrences and non-occurrences between times ti and ti+O*H+1 that is consistent with the persistence requirements set forth by a specific setting of O's and H's. The function occholes(O, H, i, j) interprets the indications time series from time ti to time tj to determine if the interval contains “O” occurrences each separated by at most “H” holes, returning true if that situation occurs. Given a minimum detection and repair time expressed as the number of sampling cycles N, the optimization problem is the problem of finding the best <O,H> pair that satisfies the specific criteria (several options are suggested above) and the generic criteria O≧1, H≧0, and O*(H+1)≦N+O. (Further constraints may be imposed on O & H without deviating from the spirit of this invention.) We present two examples for clarity, but do not intend these examples to be limiting-those skilled in the relevant arts will appreciate the great variety of objective criteria that could be applied in a manner consistent with the invention.
Given a time-series of indications including both occurrences and holes, determine an optimized setting for occurrences O when the Minimum Feasible Repair Time is five (5) observation cycles and the required probability p=0.50. In this example, the number of allowed holes H=0. We state the computation in terms of a finite-state machine with states labeled according to the number of observation cycles, the number of occurrences, and the current number of holes:
This table shows the transition function δ which maps from a state and an observation (of either occurrence or hole type) to the destination state. This table also shows the number of observations that were used from the historical record to determine empirical probabilities (1000), the number of such observations that corresponded to initial occurrences (100) and the number of such observations that corresponded to initial holes (900). From this, it is clear that the empirical probability of a transition from state <0,0,0> to state <1,1,0> (representing the detection of a potentially persistent alert state) is 100/1000=0.10, where as the empirical probability of a transition from state <0,0,0> to itself is 900/1000=0.90. Similarly, of the 100 observations that led to state <1,1,0>, the empirical probability of a further transition to state <2,2,0> is 30/100=0.30, whereas the empirical probability of a further transition back to the initial state <0,0,0> is 70/100=0.70. Continuing from state <2,2,0>, the empirical probability of a transition to <3,3,0> is 18/30=0.60; from <3,3,0> to <4,4,0> is 17/18=0.94; from <4,4,0> to <5,5,0> is 16/17=0.94. From these figures, the probability of an eventual transition into <5,5,0> can be calculated from each state: the probability of a transition from <4,4,0> to <5,5,0> is 0.94; the probability of a transition from <3,3,0> to <5,5,0> is the probability of a transition from <3,3,0> to <4,4,0> followed by a transition from <4,4,0> to <5,5,0>, which is 0.94*0.94=0.88; from <2,2,0> to <5,5,0> is similarly 0.60*0.94*0.94=0.53; from <1,1,0> to <5,5,0> is 0.30*0.60*0.94*0.94=0.16. These probabilities allow us to read off the optimized setting for 0 as 2, because if an event persists through two observation cycles, the empirical probability of it persisting 5 or more cycles is 0.53, which is the smallest setting for O which gives an empirical probability above the required threshold of 0.50.
To demonstrate optimization of the number of holes as well, we allow H to be either 0 or 1, and extend the table from Example 1 from state <1,1,0>:
<2, 1, 1>
<2, 1, 1>
70
10
<3, 2, 0>
60
<0, 0, 0>
<3, 2, 0>
10
10
<4, 3, 0>
0
<0, 0, 0>
<4, 3, 0>
10
10
<5, 4, 0>
0
<0, 0, 0>
The italics mark differences from the original table. In this extended table, we see that the empirical probability of being in a state with a label <5, i, j> for some i>0 and j≦1 given that the state follows <3, 2, 0> is 100%; since it required O=2 and H=1 to reach that state and the empirical probability is above the required 0.50 level, an optimized O=2 and H=1 state is justified. The determination of whether to use <O,H>=<2,0> or <O,H>=<2,1> falls to additional criteria. Generally, the target outcome is the most permissive setting that meets the empirical probability, and in such case, we would choose <O,H>=<2,1>.
As Example 2 makes clear, once the problem allows optimization along multiple dimensions (e.g., occurrences and holes), the selection of a “best” setting becomes somewhat subjective. In certain circumstances, an <O,H>=<2,0> setting will be more appropriate than an <O,H>=<2,1> setting. As such, another aspect of the attested state machine is the designation, either by explicit stipulation or implicit description, of certain states as “accepting states”—transitions into these states would designate the detection of a persistent indication/event, or “true positives.” These accepting states delimit the feasible <O,H> settings: O must be at least as large as the minimum number of occurrences counted in the accepting states, as designated by their labels; and H must be no larger than the maximum number of holes counted between the initial state and all paths to any accepting state. For concreteness, we stipulate a general method that takes the most permissive (largest) holes setting within the smallest occurrences setting that satisfies the minimum empirical probability requirement, although those skilled in the relevant arts will surely understand this as one of many possible choices rather than a critical step in the method.
Against this framework, it is reasonable to consider optimizing not just the occurrences & holes settings, but also the threshold θ. The optimization problem is a bit more complex to describe, since now the setting for one parameter (θ) changes the optimization problem for others (O & H). These nonlinear effects imply that many different tradeoffs are possible to describe and optimize towards. For illustrative but not limiting purposes, consider the use of a percentile basis for θ, and recast the optimization as being driven by a baseline rule in the form of:
if (VALUE>percentile(p, {<t0, v0>, . . . , <tN, vN>}) then RaiseAlert(eventName, eventData)
where percentile(p, time-series) returns the value at the pth percentile in the observed values. To constrain the optimization problem, in the additional notion of extrema detection is introduced to drive the eventual choice of p (and thereby θ). That is, it is assumed that the central tendency in the measurement stream represents “acceptable” or “normal,” and that what is being detected is when the system is persistently behaving outside its acceptable, normal behavior. This is represented in the optimization problem by a new parameter, pmin, which is used to stipulate the cutoff for “normal.” The simplest realization of this procedure simply uses the <O,H> optimization method unchanged except for the candidate θ setting used to construct the set indications, iterating through from pmin to 99 in some manner (e.g., in 1 percentile units), recommending the largest setting for θ that corresponds to the optimized <O,H> setting. For example, if a setting of pmin=75 gave rise to an optimized <O,H>=<2,1> and θ=0.92 whereas pmin=80 also gave rise to <O,H>=<2,1> and θ=0.94, the optimized setting would be taken as θ=0.94.
Referring now to
While shown and described herein as a method and system for optimizing event monitoring filters and metric thresholds, it is understood that the invention further provides various alternative embodiments. For example, in one embodiment, the invention provides a computer-readable medium that includes computer program code to enable a computer infrastructure to optimize event monitoring filters and metric thresholds. To this extent, the computer-readable medium includes program code that implements each of the various process steps of the invention. It is understood that the term “computer-readable medium” comprises one or more of any type of physical embodiment of the program code. In particular, the computer-readable medium can comprise program code embodied on one or more portable storage articles of manufacture (e.g., a compact disc, a magnetic disk, a tape, etc.), on one or more data storage portions of a computing device, such as memory 22 (
In another embodiment, the invention provides a business method that performs the process steps of the invention on a subscription, advertising, and/or fee basis. That is, a service provider, such as an Internet Service Provider, could offer to optimize event monitoring filters and metric thresholds as described above. In this case, the service provider can create, maintain, support, etc., a computer infrastructure, such as computer infrastructure 12 (
In still another embodiment, the invention provides a method of optimizing event monitoring filters and metric thresholds. In this case, a computer infrastructure, such as computer infrastructure 12 (
As used herein, it is understood that the terms “program code” and “computer program code” are synonymous and mean any expression, in any language, code or notation, of a set of instructions intended to cause a computing device having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion to another language, code or notation; and/or (b) reproduction in a different material form. To this extent, program code can be embodied as one or more of: an application/software program, component software/a library of functions, an operating system, a basic I/O system/driver for a particular computing and/or I/O device, and the like.
The foregoing description of various aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of the invention as defined by the accompanying claims.
Number | Name | Date | Kind |
---|---|---|---|
5404532 | Allen et al. | Apr 1995 | A |
5555191 | Hripcsak | Sep 1996 | A |
6118936 | Lauer et al. | Sep 2000 | A |
6367034 | Novik et al. | Apr 2002 | B1 |
6438618 | Lortz et al. | Aug 2002 | B1 |
6658486 | Buzbee et al. | Dec 2003 | B2 |
6675128 | Hellerstein | Jan 2004 | B1 |
6742143 | Kaler et al. | May 2004 | B2 |
20020010804 | Sanghvi et al. | Jan 2002 | A1 |
20020042847 | Takats et al. | Apr 2002 | A1 |
20020143908 | Taggart et al. | Oct 2002 | A1 |
20030121027 | Hines | Jun 2003 | A1 |
20030131143 | Myers | Jul 2003 | A1 |
Number | Date | Country | |
---|---|---|---|
20060221848 A1 | Oct 2006 | US |