IP Library Granted Patent US 8,566,292
Granted Patent B2
US 8,566,292 · App. 10/898,112 · Granted Oct 22, 2013

Method and system for journaling and accessing sensor and configuration data

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,566,292
App. No.
10/898,112
Granted
Oct 22, 2013
Kind
B2
Abstract

The disclosure is directed to a system including a processor, a sensor interface responsive to the processor and memory responsive to the processor. The memory includes program instructions operable to direct the processor to implement a kernel-mode device driver for manipulating a journal based data system associated with data received via the sensor interface.

Claims (44)

1. A system for maintaining data integrity, the system comprising:

a monitoring appliance including:

a memory;

at least one sensor selected from a group comprising a temperature sensor, a humidity sensor and an airflow sensor;

at least one processor coupled to the memory and the at least one sensor;

a kernel-mode device driver executable by the at least one processor and configured to create a journal data model including:

at least one variable definition associated with the at least one sensor, the at least one variable definition including an oldest update field and a latest update field;

a doubly-linked list of variable update records storing one or more readings from the at least one sensor, each variable update record of the doubly-linked list of variable update records including a variable value that indicates a sensor reading from the at least one sensor; and

at least one context record having an associated current timestamp field and a context update field pointing to a first variable update record of the doubly-linked list of variable update records,

wherein the at least one variable definition is associated with a first variable, each of the doubly-linked list of variable update records is associated with the first variable, the oldest update field of the at least one variable definition points to a second variable update record of the doubly-linked list of variable update records, and the latest update field of the at least one variable definition points to a third variable update record of the doubly-linked list of variable update records.

2. The system of claim 1 , wherein each variable definition further comprises an identification string, and the journal data model further comprising a hash table with records hashed by the identification string.

3. The system of claim 1 , wherein each variable definition further comprises a class pointer, the class pointer indicating a class and permitting inheritance of class attributes.

4. The system of claim 1 , wherein each variable definition further comprises a creation timestamp.

5. The system of claim 1 , wherein each variable definition further comprises a flag.

6. The system of claim 5 , wherein the flag indicates an attribute selected from the group consisting of a read-only flag, a constant flag, and an undeletable flag.

7. The system of claim 5 , wherein the flag indicates persistence attribute.

8. The system of claim 1 , wherein each variable update record comprises a variable update timestamp.

9. The system of claim 1 , wherein the kernel-mode device driver is further configured to discard each of the doubly-linked list of variable update records that have a timestamp older than the oldest timestamp of interest.

10. The system of claim 1 , wherein each variable update record of the doubly-linked list of variable update records is configured to store environmental data.

11. The system of claim 2 , wherein the kernel-mode device driver is further configured to:

find the at least one variable definition using the hash table;

access the oldest update field of the at least one variable definition; and

report the variable value of the second variable update record to a reader.

12. A method for maintaining data structures by a kernel-mode device driver stored in a memory of a monitoring appliance, the monitoring appliance including at least one processor coupled to at least one sensor selected from a group comprising a temperature sensor, a humidity sensor and an airflow sensor, the method comprising:

receiving, by the kernel-mode device driver, environmental data from the at least one sensor via a sensor interface;

storing, in the memory by the kernel-mode device driver, at least one variable definition having an associated variable and including an oldest update field and a latest update field, the associated variable having a data type suitable for storing the environmental data, the data type corresponding to the at least one sensor;

storing, in the memory by the kernel-mode device driver, a doubly-linked list of variable update records, each variable update record of the doubly-linked list of variable update records including a variable value that indicates a sensor reading from the at least one sensor; and

storing, in the memory by the kernel-mode device driver, at least one context record having an associated current timestamp field and a context update field pointing to a first variable update record of the doubly-linked list of variable update records,

wherein the at least one variable definition is associated with a first variable, each of the doubly-linked list of variable update records is associated with the first variable, the oldest update field of the at least one variable definition points to a second variable update record of the doubly-linked list of variable update records, and the latest update field of the at least one variable definition points to a third variable update record of the doubly-linked list of variable update records.

13. The method of claim 12 , wherein storing, in the memory, the at least one variable definition comprises storing, in the at least one variable definition, an identification string, and the method further includes storing, in the memory, a hash table with records hashed by the identification string.

14. The method of claim 12 , wherein storing, in the memory, the at least one variable definition comprises storing, in the at least one variable definition, a class pointer, the class pointer indicating a class and permitting inheritance of class attributes.

15. The method of claim 12 , wherein storing, in the memory, the at least one variable definition comprises storing, in the at least one variable definition, a creation timestamp.

16. The method of claim 12 , wherein storing, in the memory, the at least one variable definition comprises storing, in the at least one variable definition, a flag.

17. The method of claim 16 , wherein storing, in the at least one variable definition, the flag comprises storing a flag that indicates an attribute selected from the group consisting of a read-only flag, a constant flag, and an undeletable flag.

18. The method of claim 16 , wherein storing, in the at least one variable definition, the flag comprises storing a flag that indicates a persistence attribute.

19. The method of claim 12 , wherein storing, in the memory, the doubly-linked list of variable update records comprises storing, in each variable update record of the doubly-linked list of variable update records, a variable update timestamp.

20. The method of claim 12 , further comprising discarding, from the memory, each of the doubly-linked list of variable update records that have a timestamp older than the oldest timestamp of interest.

21. A memory having stored thereon sequences of instructions that implement a kernel-mode device driver configured to maintain data structures, the sequences of instructions including instructions that will cause at least one processor to:

receive, via the kernel-mode device driver, environmental data from at least one sensor via a sensor interface;

store, via the kernel-mode device driver, at least one variable definition having an associated variable and including an oldest update field and a latest update field, the associated variable having a data type suitable for storing the environmental data, the data type corresponding to the at least one sensor;

store, via the kernel-mode device driver, a doubly-linked list of variable update records, each variable update record of the doubly-linked list of variable update records including a variable value that indicates a sensor reading from the at least one sensor; and

store, via the kernel-mode device driver, at least one context record having an associated current timestamp field and a context update field pointing to a first variable update record of the doubly-linked list of variable update records,

wherein the memory is included within a monitoring appliance and the at least one variable definition is associated with a first variable, each of the doubly-linked list of variable update records is associated with the first variable, the oldest update field of the at least one variable definition points to a second variable update record of the doubly-linked list of variable update records, and the latest update field of the at least one variable definition points to a third variable update record of the doubly-linked list of variable update records.

22. The memory of claim 21 , further including instructions that will cause the at least one processor to discard each of the doubly-linked list of variable update records that have a timestamp older than the oldest timestamp of interest.

Assignments (5)
CHANGE OF NAME Recorded Sep 12, 2013
From: AMERICAN POWER CONVERSION CORPORATION
To: SCHNEIDER ELECTRIC IT CORPORATION
Reel/Frame 031207/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2006
From: NETBOTZ, INC.
To: AMERICAN POWER CONVERSION CORPORATION
Reel/Frame 017325/0376 →
RELEASE OF SECURITY INTEREST Recorded Oct 7, 2005
From: COMERICA BANK
To: NETBOTZ, INC.
Reel/Frame 016621/0643 →
SECURITY INTEREST Recorded Dec 20, 2004
From: NETBOTZ, INC.
To: COMERICA BANK
Reel/Frame 016087/0958 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2004
From: PRIMM, MICHAEL
To: NETBOTZ, INC.
Reel/Frame 015624/0243 →