IP Library Patent Application 12275242
Patent Application
App. No. 12/275,242

COLLECTOR DEVICE AND SYSTEM UTILIZING STANDARDIZED UTILITY METERING PROTOCOL

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 None
App. No.
12/275,242
Abstract

A device-agnostic collector is capable of accepting information pushed from a node for aggregation and subsequent transmission to the head end server. As a receiver of pushed information, the device-agnostic collector does not require information about the type of meter at the node or the type of data structures transmitted by the node.

Claims (457)

1 . A system for communicating data from a node to a head end server, the system comprising:

a node for measuring, storing, and initiating transmission of data to a collector over a first network;

a collector for receiving the data over the first network and transmitting the data over a second network to the head end server;

the head end server being operative for receiving the data over the second network.

2 . The system of claim 1 , further comprising the head end server.

3 . The system of claim 1 , wherein the node includes a sensor for measuring utility usage and wherein utility is one of electricity, gas, and water.

4 . The system of claim 1 , wherein the data is collected at a utility meter at a customer site.

5 . The system of claim 1 , wherein the data is collected at a utility-regulating device at a customer site.

6 . The system of claim 1 , wherein the data is collected at a utility-consuming device at a customer site.

7 . The system of claim 1 , wherein the first network comprises a neighborhood area network.

8 . The system of claim 1 , wherein the second network comprises a wide area network.

9 . The system of claim 1 , wherein the collector is device agnostic.

10 . The system of claim 1 , wherein the collector is data-structure agnostic.

11 . The system of claim 1 , wherein the data is encrypted by the node.

12 . The system of claim 11 , wherein the system head end server can decrypt the data but the collector can not decrypt the data.

13 . The system of claim 1 , wherein the node further responds to a request for the data and transmits the data to the collector over the first network, and the collector further requests the data from the node over the first network.

14 . The system of claim 1 , wherein the node includes at least one of a smart meter and a dumb meter.

15 . The system of claim 1 , wherein the first and second networks support ANSI C12.22 protocols at an application layer level, and further wherein the application layer is supported by a transport layer.

16 . A method of communicating data from a node to a head end server, the method comprising:

collecting, storing, and initiating transmission of data by the node to a collector over a first network;

receiving, by the collector, the data over the first network and transmitting, by the collector, the data over a second network to the head end server; and

receiving, by the head end server, the data over the second network.

17 . The method of claim 16 , wherein the node further responds to a request for the data and transmits the data to the collector over the first network, and the collector further requests the data from the node and receives the data over the first network.

18 . The method of claim 16 , the node includes a sensor for measuring utility usage and wherein utility is one of electricity, gas, and water.

19 . The method of claim 16 , wherein the data is collected at one of the following: a utility meter at a customer site, a utility-regulating device at a customer site, and a utility-consuming device at a customer site.

20 . The method of claim 16 , wherein the first network is a neighborhood area network.

21 . The method of claim 16 , wherein the second network is a wide area network.

22 . The method of claim 16 , wherein the collector is device-agnostic.

23 . The method of claim 16 , wherein the collector is data-structure agnostic.

24 . The method of claim 16 , wherein the data is encrypted by the node.

25 . The method of claim 24 , wherein the system head end server can decrypt the data but the collector can not decrypt the data.

26 . The method of claim 16 , wherein the node includes a smart meter or a dumb meter.

27 . The method of claim 16 , wherein the first and second networks support ANSI C12.22 protocols at an application layer level, and further wherein the application layer is supported by a transport layer.

28 . A collector device for operating in a system of the type that includes at least one node operative on a first network for storing data and a network server operative for receiving data on a second network, the collector device comprising:

a receiver unit for receiving the data from the node over the first network; and

a transmitter unit for transmitting data to the server over the second network;

the collector being node device and data-structure agnostic and operative to:

(i) request or pull data from a node device; or

(ii) accept information pushed from a node device when a node device initiates the transmission of data or a report to the collector; or

(iii) a combination of request or pull data from a node device and accept information pushed from a node.

29 . A collector device as in claim 28 , wherein the node communicating data with the collector is a node device with the ability to communicate across a network.

30 . A collector device as in claim 28 , wherein the node device has the ability to communicate across an AMI network and is further includes a utility-measuring capability.

31 . A collector device as in claim 28 , wherein the utility measuring capability is provided by a utility measuring device selected from the set consisting of a utility meter, a utility consuming appliance, and a utility generating appliance.

32 . A collector device as in claim 28 , wherein the node transmits data structures according to the specified protocol.

33 . A collector device as in claim 28 , wherein the collector is adapted for receiving data from a plurality of different node device types, and the different node device types store and communicate data in different data structures.

34 . A collector device as in claim 28 , wherein when the device-agnostic collector receives pushed data from a node device, and the device-agnostic collector does not need any special programs for communicating with different types of node devices about various types of data structures supported by the different node devices.

35 . A collector device as in claim 28 , wherein:

the collector includes a plurality of individual ports for receiving data; and

the device-agnostic collector only requires the ability to receive data addressed and pushed to particular ones of its ports and to acknowledge the received data.

36 . A collector device as in claim 35 , wherein the individual ports of the device-agnostic collector are reserved for receiving specific types of data.

37 . A collector device as in claim 36 , wherein the different types of data includes different types of reports, and the different types of reports are selected from the set consisting of: batch-reporting type reports and real-time reporting reports.

38 . A collector device as in claim 37 , wherein the collector further includes means for identifying the type of data received from a node device based on the collector port to which a node device addressed the data or report to the device-agnostic collector, the collector being adapted to process the received data or report and to transmit the report to the server appropriately based on the identification of data type received.

39 . A collector device as in claim 28 , wherein the node is also operable to measure data.

40 . A collector device as in claim 28 , wherein the node is further operable to initiate transmission of the data over the second network to the collector.

41 . A collector device as in claim 28 , wherein the network server comprises a head end server and the head end server is operative to receive data from the collector over the second network.

42 . A collector device as in claim 28 , wherein the first network includes at least a portion of the second network.

43 . A collector device as in claim 28 , wherein the second network includes at least a portion of the first network.

44 . A collector device as in claim 28 , wherein the first network and the second network are different networks.

45 . A collector device as in claim 28 , wherein the node includes a sensor for measuring utility usage and wherein utility is one of electricity, gas, water, and information.

46 . A collector device as in claim 28 , wherein the data is collected at a utility meter at a customer site.

47 . A collector device as in claim 28 , wherein the data is collected at a utility-regulating device at a customer site.

48 . A collector device as in claim 28 , wherein the data is collected at a utility-consuming device at a customer site.

49 . A collector device as in claim 28 , wherein the first network comprises a neighborhood area network.

50 . A collector device as in claim 28 , wherein the second network comprises a wide area network.

51 . A collector device as in claim 28 , wherein the data is encrypted by the node.

52 . A collector device as in claim 28 , wherein the system head end server can decrypt the data but the collector can not decrypt the data.

53 . A collector device as in claim 28 , wherein the node further responds to a request for the data and transmits the data to the collector over the first network, and the collector further requests the data from the node over the first network.

54 . A collector device as in claim 28 , wherein the node includes at least one of a smart meter and a dumb meter.

55 . A collector device as in claim 28 , wherein the first and second networks support ANSI C12.22 protocols at an application layer level, and further wherein the application layer is supported by a transport layer.

56 . A method of operating a collector in a network environment including a plurality of different networked node devices having different device characteristics and different data structure characteristics and a networked head end server, the method comprising:

receiving a first data over the network environment from a first node device of a first node device type;

receiving a second data over the network environment from a second node device of a second node device type;

identifying the first data as the first data type and the second data as the second data type;

processing the received first data and second data according to whether it is the first data type or the second data type to generate a processed data; and

transmitting the processed data to the server over the network environment.

57 . A method as in claim 56 , wherein the network environment includes a first network supporting communication between the collector and the first and second node device, and a second network supporting communication between the collector and the head end server.

58 . A method as in claim 56 , wherein the collector is node device and node device data-structure agnostic and operative to:

(i) request or pull data from any node device; or

(ii) accept information pushed from any node device when a node device initiates the transmission of data or a report to the collector; or

(iii) a combination of request or pull data from a node device and accept information pushed from a node.

59 . A method as in claim 58 , wherein the collector receives data from a plurality of different node device types, and the different node device types store and communicate data in different data structures.

60 . A method as in claim 58 , wherein when the device-agnostic collector receives pushed data from a node device, the device-agnostic collector does not need any special programs for communicating with different types of node devices about various types of data structures supported by the different node devices.

61 . A method as in claim 58 , wherein:

the collector includes a plurality of individual ports for receiving data; and

the collector receives data addressed and pushed to particular ones of its ports and acknowledges the received data.

62 . A method as in claim 61 , wherein the individual ports of the device-agnostic collector are reserved for receiving specific types of data.

63 . A method as in claim 62 , wherein the different types of data includes different types of reports, and the different types of reports are selected from the set consisting of: batch-reporting type reports and real-time reporting reports.

64 . A method as in claim 63 , wherein the collector further identifies the type of data received from a node device based on the collector port to which a node device addressed the data or report to the device-agnostic collector, and the collector processes the received data or report and transmits the data or report to the server appropriately based on the identification of data type received.

65 . The method of claim 57 , wherein the node further responds to a request for the data and transmits the data to the collector over the first network, and the collector further requests the data from the node and receives the data over the first network.

66 . The method of claim 56 , the node includes a sensor for measuring utility usage and wherein utility is one of electricity, gas, and water.

67 . The method of claim 56 , wherein the data is collected at one of the following: a node device having a utility meter at a customer site, a node device having a utility-regulating device at a customer site, and a node device having a utility-consuming device at a customer site.

68 . The method of claim 57 , wherein the first network is a neighborhood area network.

69 . The method of claim 57 , wherein the second network is a wide area network.

70 . The method of claim 56 , wherein the data is encrypted by the node device.

71 . The method of claim 70 , wherein the system head end server can decrypt the data but the collector can not decrypt the data.

72 . The method of claim 56 , wherein the node includes a smart meter or a dumb meter.

73 . The method of claim 57 , wherein the first and second networks support ANSI C12.22 protocols at an application layer level, and further wherein the application layer is supported by a transport layer.

74 . A computer program stored in a computer readable form for execution within a processor and processor associated memory for controlling the operation of a collector for operating the collector in a network environment including a plurality of different networked node devices having different device characteristics and different data structure characteristics and a networked head end server, the operating or the controller implementing a method comprising:

receiving a first data over the network environment from a first node device of a first node device type;

receiving a second data over the network environment from a second node device of a second node device type;

identifying the first data as the first data type and the second data as the second data type;

processing the received first data and second data according to whether it is the first data type or the second data type to generate a processed data; and

transmitting the processed data to the server over the network environment.

75 . A system for communicating data from a node to a head end server, the system comprising:

a node for measuring, storing, and initiating transmission of data to a collector over a first network; and

a collector for receiving the data over the first network and transmitting the data over a second network to the head end server;

the head end server being operative for receiving the data over the second network;

the collector further comprising:

a receiver unit for receiving the data from the node over the first network; and

a transmitter unit for transmitting data to the server over the second network; and

the collector being node and data-structure agnostic and operative to:

(i) request or pull data from a node, or

(ii) accept information pushed from a node when a node initiates the transmission of data or a report to the collector, or

(iii) a combination of request or pull data from a node and accept information pushed from a node.

76 . A method of transmitting a report from a node to a head end server, the method comprising:

pre-assigning one or more ports at a collector to receive particular types of reports;

transmitting a data packet from the node to the collector over a first network, wherein the data packet includes a header containing a destination port of the collector and the report; and

transmitting the data packet from the collector to the head end server over a second network, wherein the collector follows reporting procedures based upon the destination port.

77 . The method of claim 76 , wherein the particular types of reports include batch reports.

78 . The method of claim 76 , wherein the particular types of reports include real-time reports.

79 . The method of claim 76 , wherein the particular types of reports include on-demand reports.

80 . The method of claim 76 , wherein the first network is a neighborhood area network that adheres to IEEE 802.15.4 protocol.

81 . The method of claim 76 , wherein the second network is a wide area network that adheres to TCP/IP communications protocol.

82 . The method of claim 76 , wherein the report adheres to ANSI C12 standards.

83 . A method of transmitting data from a smart meter to a communications card for transmission to the collector, the method comprising:

storing one or more lists of data structures in a register at the smart meter;

storing a sequence number for each list in the register at the smart meter, wherein the sequence number is incremented by a predetermined number when a new piece of data is appended to the list;

accessing and downloading new data from the one or more lists to a communications card, wherein the new data has corresponding sequence numbers that have not been previously downloaded;

storing the data and the corresponding sequence number in memory;

creating one or more reports from the new data at the communications card; and

transmitting the one or more reports to the collector, wherein the communications card initiates the transmission.

84 . The method of claim 83 further comprising downloading to the communications card other relevant information related to the data comprising data type and frequency of capture of the data.

85 . The method of claim 83 , wherein the one or more reports adhere to ANSI C12 standards.

86 . A method of using a reporting list at a node for transmission to a collector, the method comprising:

creating one or more reports by the node;

appending the one or more reports to a reporting list at the node;

transmitting to the collector a report on the reporting list immediately following a flagged report flagged by a last-transferred-pointer, wherein the transmission is initiated by the collector;

receiving an acknowledgement from the collector; and

updating the last-transferred-pointer;

wherein the last-transferred-pointer is used to determine reports that have not been received by the collector.

87 . The method of claim 86 , wherein the one or more reports adhere to ANSI C12 protocol.

88 . The method of claim 86 , wherein the one or more reports are transmitted through a neighborhood area network that adheres to IEEE 802.15.4 protocol.

89 . A system for transmitting a report from a node to a head end server, comprising:

means for pre-assigning one or more ports at a collector to receive particular types of reports;

means for transmitting a data packet from the node to the collector over a first network, wherein the data packet includes a header containing a destination port of the collector and the report; and

means for transmitting the data packet from the collector to the head end server over a second network, wherein the collector follows reporting procedures based upon the destination port.

90 . The system of claim 89 , wherein the means for pre-assigning one or more ports at a collector to receive particular types of reports includes collector source code that has embedded within it collector port assignments.

91 . The system of claim 89 , wherein the means for transmitting a data packet from the node to the collector over a first network includes a node radio for transmitting the data packet from the node to the collector over the first network.

92 . The system of claim 89 , wherein the means for transmitting the data packet from the collector to the head end server over a second network includes a collector radio for transmitting the data packet from the collector to the head end server over the second network.

93 . A system for transmitting a report from a node to a head end server, comprising:

collector computer code stored in a collector memory for pre-assigning one or more ports at a collector to receive particular types of reports;

a node transmitter for transmitting a data packet from the node to the collector over a first network, wherein the data packet includes a header containing a destination port of the collector and the report; and

a collector transmitter for transmitting the data packet from the collector to the head end server over a second network, wherein the collector follows reporting procedures based upon the destination port.

94 . A system for transmitting data from a smart meter to a communications card for transmission to the collector, comprising:

means for storing one or more lists of data structures at the smart meter;

means for storing a sequence number for each list at the smart meter, wherein the sequence number is incremented by a predetermined number when a new piece of data is appended to the list;

means for accessing and downloading new data from the one or more lists to a communications card, wherein the new data has corresponding sequence numbers that have not been previously downloaded;

means for storing the data and the corresponding sequence number;

means for creating one or more reports from the new data at the communications card; and

means for transmitting the one or more reports to the collector, wherein the communications card initiates the transmission.

95 . The system of claim 94 , wherein the means for storing one or more lists of data structures at the smart meter includes a register.

96 . The system of claim 94 , wherein the means for storing a sequence number for each list at the smart meter includes a register.

97 . The system of claim 94 , wherein the means for means for accessing and downloading new data from the one or more lists to a communications card includes a processor for accessing new data and a receiver and for downloading the new data to a memory.

98 . The system of claim 94 , wherein the means for storing the data and the corresponding sequence number includes a memory.

99 . The system of claim 94 , wherein the means for creating one or more reports from the new data at the communications card includes a processor for creating one or more reports.

100 . The system of claim 94 , wherein the means for transmitting the one or more reports to the collector includes a node radio for transmitting the one or more reports to the collector.

101 . A system for transmitting data from a smart meter to a communications card for transmission to the collector, comprising:

a register for storing one or more lists of data structures at the smart meter and a sequence number for each list at the smart meter, wherein the sequence number is incremented by a predetermined number when a new data structure is appended to the list;

a processor for accessing data structures on the list and creating one or more reports from the new data at the communications card;

a receiver and a memory for downloading the new data, wherein the new data has corresponding sequence numbers that have not been previously downloaded, and further wherein the memory stores the new data and the corresponding sequence number; and

a node transmitter for transmitting the one or more reports to the collector, wherein the communications card initiates the transmission.

102 . A system for using a reporting list at a node for transmission to a collector comprising:

means for creating one or more reports by the node;

means for appending the one or more reports to a reporting list at the node;

means for transmitting to the collector a report on the reporting list immediately following a flagged report flagged by a last-transferred-pointer;

means for receiving an acknowledgement from the collector; and

means for updating the last-transferred-pointer;

wherein the last-transferred-pointer is used to determine reports that have not been received by the collector.

103 . The system of claim 102 , wherein the means for creating one or more reports by the node includes a node processor for generating one or more reports.

104 . The system of claim 102 , wherein the means for appending the one or more reports to a reporting list at the node includes a node processor for appending the one or more reports to a reporting list stored in a memory.

105 . The system of claim 102 , wherein the means for transmitting to the collector a report on the reporting list immediately following a flagged report flagged by a last-transferred-pointer includes a node radio for transmitting to the collector a report on the reporting list immediately following a flagged report flagged by a last-transferred-pointer.

106 . The system of claim 102 , wherein the means for receiving an acknowledgement from the collector includes a node radio for receiving an acknowledgement from the collector.

107 . The system of claim 102 , wherein the means for updating the last-transferred-pointer includes a node processor for updating the last-transferred-pointer stored in memory.

108 . A system for using a reporting list at a node for transmission to a collector comprising:

a node processor for creating one or more reports by the node, appending the one or more reports to a reporting list at the node, and updating a last-transferred-pointer;

a node transmitter for transmitting to the collector a report on the reporting list immediately following a flagged report flagged by the last-transferred-pointer; and

a node receiver for receiving an acknowledgement from the collector;

wherein the last-transferred-pointer is used to determine reports that have not been received by the collector.

109 . A computer program product stored in a computer readable media for execution in a processor and memory coupled to the processor for performing a method of transmitting a report from a node to a head end server, the method comprising:

pre-assigning one or more ports at a collector to receive particular types of reports;

transmitting a data packet from the node to the collector over a first network, wherein the data packet includes a header containing a destination port of the collector and the report; and

transmitting the data packet from the collector to the head end server over a second network, wherein the collector follows reporting procedures based upon the destination port.

110 . A computer program product stored in a computer readable media for execution in a processor and memory coupled to the processor for performing a method of transmitting data from a smart meter to a communications card for transmission to the collector, the method comprising:

storing one or more lists of data structures in a register at the smart meter;

storing a sequence number for each list in the register at the smart meter, wherein the sequence number is incremented by a predetermined number when a new piece of data is appended to the list;

accessing and downloading new data from the one or more lists to a communications card, wherein the new data has corresponding sequence numbers that have not been previously downloaded;

storing the data and the corresponding sequence number in memory;

creating one or more reports from the new data at the communications card; and

transmitting the one or more reports to the collector, wherein the communications card initiates the transmission.

111 . A computer program product stored in a computer readable media for execution in a processor and memory coupled to the processor for performing a method of using a reporting list at a node for transmission to a collector, the method comprising:

creating one or more reports by the node;

appending the one or more reports to a reporting list at the node;

transmitting to the collector a report on the reporting list immediately following a flagged report flagged by a last-transferred-pointer, wherein the transmission is initiated by the collector;

receiving an acknowledgement from the collector; and

updating the last-transferred-pointer;

wherein the last-transferred-pointer is used to determine reports that have not been received by the collector.

112 . A node device for initiating transmission of data to a collector comprising:

a data input/output module for collecting the data;

a memory for storing the data;

a processor for creating a report from the data; and

a radio for transmitting the report to the collector;

wherein the transmission is initiated by the node.

113 . The node device of claim 112 , wherein the input/output module is a sensor.

114 . The node device of claim 112 , wherein the input/output module is a thermostat.

115 . The node device of claim 112 , wherein the radio is a communications card.

116 . The node device of claim 112 , wherein the report adheres to ANSI C12 standards.

117 . The node device of claim 112 , further comprising:

a primary power supply for supplying power to the input/output module, the memory, the processor, and the radio; and

a secondary power supply for supplying power to the input/output module, the memory, the processor, and the radio if the primary power supply is interrupted.

118 . A collector for receiving a data packet over a first network initiated from a node comprising:

a first radio for receiving the data packet initiated by the node over the first network;

a second radio for transmitting the data packet over a second network to a head end server; and

a memory for storing the data packet to be transmitted to the head end server and used by the processor.

119 . The collector of claim 118 , wherein the data packet is a report adhering to ANSI C12 standards.

120 . The collector of claim 118 , wherein the first network is a neighborhood area network adhering to IEEE 802.15.4 protocol.

121 . The collector of claim 118 , wherein the second network is a wide area network adhering to TCP/IP communications protocol.

122 . A method of operating a node that initiates a report to a collector comprising:

collecting data through an input device;

storing the data in a memory;

creating the report from the data; and

transmitting the report to the collector over a first network;

wherein the report is initiated by the node.

123 . The method of claim 122 , wherein the report adheres to ANSI C12 standards.

124 . The method of claim 122 , wherein the first network is a neighborhood area network adhering to IEEE 802.15.4 protocol.

125 . A method of operating a collector that receives a data packet initiated by a node comprising:

receiving the data packet initiated by the node over a first network addressed to a particular collector port, wherein the data packet comprises a report;

processing the report according to pre-assigned procedures corresponding to the particular collector port; and

transmitting the report to a head end over a second network.

126 . The method of claim 125 , wherein the first network is a neighborhood area network adhering to IEEE 802.15.4 protocol.

127 . The method of claim 125 , wherein the second network is a wide area network adhering to TCP/IP communications protocol.

128 . The method of claim 125 , wherein the report adheres to ANSI C12 standards.

129 . The method of claim 125 , wherein the collector is device-agnostic and data structure-agnostic.

130 . A computer program product stored in a computer readable media for execution in a processor and memory coupled to the processor for performing a method of operating a node that initiates a report to a collector comprising:

collecting data through an input device;

storing the data in a memory;

creating the report from the data; and

transmitting the report to the collector over a first network;

wherein the report is initiated by the node.

131 . A computer program product stored in a computer readable media for execution in a processor and memory coupled to the processor for performing a method of operating a collector that receives a data packet initiated by a node comprising:

receiving the data packet initiated by the node over a first network addressed to a particular collector port, wherein the data packet comprises a report;

processing the report according to pre-assigned procedures corresponding to the particular collector port; and

transmitting the report to a head end over a second network.

132 . A method of communicating between a plurality of nodes and a collector using checkpoints, comprising:

generating a substantially random time slot within a pre-scheduled reporting time window for each node; and

transmitting data packets from each node to the collector at the node's substantially random time slot within the prescheduled reporting time window.

133 . The method of claim 132 further comprising acknowledging receipt of each data packet by the collector.

134 . The method of claim 132 , wherein the substantially random time slot generated for a particular node is dependent upon an address of the node.

135 . The method of claim 132 , wherein the substantially random time slot generated for a particular node is dependent upon a manufacturer's serial number for a device at the node, wherein the device is selected from a group consisting of: a meter, a utility-consumption device, and a utility-measuring device.

136 . The method of claim 135 , wherein the substantially random time slot generated for a particular node is dependent upon a device reading at the particular node.

137 . A method of transmitting data packets from a plurality of nodes to a collector, comprising:

generating a first substantially random time slot within a prescheduled reporting time window for each node;

transmitting data packets from each node to the collector at the node's substantially random time slot within the prescheduled reporting time window;

transmitting an acknowledgement from the collector for each received data packet;

generating a second substantially random time slot within a second prescheduled reporting time window for each node that does not receive an acknowledgement from the collector; and

re-transmitting data packets from each node that did not receive the acknowledgement from the collector at the node's second substantially random time slot within the second prescheduled reporting time window.

138 . The method of claim 137 , wherein the first substantially random time slot and the second substantially random time slot generated for a particular node is based on an address of the node.

139 . The method of claim 137 , wherein the first substantially random time slot and the second substantially random time slot generated for a particular node is based on a manufacturer's serial number for a device at the node, wherein the device is selected from a group consisting of: a meter, a utility-consumption device, a utility-measuring device, and combinations of these.

140 . The method of claim 139 , wherein the first substantially random time slot and the second substantially random time slot generated for a particular node is based on a device reading at the particular node.

141 . A system for communicating between a plurality of nodes and a collector using checkpoints, comprising:

means for generating a substantially random time slot within a pre-scheduled reporting time window for each node; and

means for transmitting data packets from each node to the collector at the node's substantially random time slot within the prescheduled reporting time window.

142 . The system of claim 141 , further comprising means for acknowledging receipt of each data packet by the collector.

143 . The system of claim 141 , wherein the substantially random time slot generated for a particular node is dependent upon an address of the node.

144 . The system of claim 141 , wherein the substantially random time slot generated for a particular node is dependent upon a manufacturer's serial number for a node device at the node, wherein the node device is selected from a group consisting of: a meter, a utility-consumption device, a utility-measuring device, and combinations of these.

145 . The system of claim 141 , wherein the substantially random time slot generated for a particular node is dependent upon a device reading at the particular node.

146 . The system of claim 141 , wherein the means for generating a substantially random time slot within a prescheduled reporting time window for each node comprises a random time slot number generator.

147 . The system of claim 141 wherein the means for transmitting data packets from each node to the collector at the node's substantially random time slot comprises a node radio for transmitting data packets from each node to the collector at the node's substantially random time slot.

148 . The system of claim 141 wherein the means for acknowledging receipt of each data packet by the collector comprises a collector radio for acknowledging receipt of each data packet by the collector.

149 . A system for communicating between a plurality of nodes and a collector using checkpoints, comprising:

a substantially random time slot generator for generating a substantially random time slot within a pre-scheduled reporting time window for each node; and

a node transmitter for transmitting data packets from each node to the collector at the node's substantially random time slot within the prescheduled reporting time window.

150 . The system of claim 149 , further comprising a collector transmitter for acknowledging receipt of each data packet by the collector.

151 . The system of claim 149 , wherein the substantially random time slot generated for a particular node is dependent upon an address of the node.

152 . The system of claim 149 , wherein the substantially random time slot generated for a particular node is dependent upon a manufacturer's serial number for a node device at the node, wherein the node device is selected from a group consisting of: a meter, a utility-consumption device, a utility-measuring device, and combinations of these.

153 . The system of claim 149 , wherein the substantially random time slot generated for a particular node is dependent upon a device reading at the particular node.

154 . A system for transmitting data packets from a plurality of nodes to one collector comprising:

means for generating a first substantially random time slot within a prescheduled reporting time window for each node;

means for transmitting data packets from each node to the collector at the node's substantially random time slot within the prescheduled reporting time window;

means for generating a second substantially random time slot within a second prescheduled reporting time window at each node that does not receive an acknowledgement from the collector; and

means for re-transmitting data packets from each node that did not receive the acknowledgement from the collector at the node's second substantially random time slot within the second prescheduled reporting time window.

155 . The system as in claim 154 wherein the means for generating a first substantially random time slot and a second substantially random time slot within a prescheduled reporting time window for each node includes a random time slot number generator.

156 . The system as in claim 154 , wherein the means for transmitting data packets from each node to the collector at the node's first substantially random time slot and second substantially random time slot includes a transmitter for transmitting data packets from each node to the collector at the node's random time slot.

157 . The system as in claim 154 , wherein the means for re-transmitting data packets from each node that did not receive the acknowledgement from the collector at the node's second substantially random time slot includes a transmitter for re-transmitting data packets from each node that did not receive the acknowledgement from the collector at the node's substantially second random time slot.

158 . A system for transmitting data packets from a plurality of nodes to one collector comprising:

a substantially random time slot generator for generating a first substantially random time slot within a prescheduled reporting time window for each node and for generating a second substantially random time slot within a second prescheduled reporting time window at each node that does not receive an acknowledgement from the collector; and

a transmitter for transmitting data packets from each node to the collector at the node's substantially random time slot within the prescheduled reporting time window and for re-transmitting data packets from each node that did not receive the acknowledgement from the collector at the node's second substantially random time slot within the second prescheduled reporting time window.

159 . A computer program product stored in a computer readable media for execution in a processor and memory coupled to the processor for performing a method of communicating between a plurality of nodes and a collector using checkpoints, comprising:

generating a substantially random time slot within a pre-scheduled reporting time window for each node; and

transmitting data packets from each node to the collector at the node's substantially random time slot within the prescheduled reporting time window.

160 . A computer program product stored in a computer readable media for execution in a processor and memory coupled to the processor for performing a method of transmitting data packets from a plurality of nodes to a collector, comprising:

generating a first substantially random time slot within a prescheduled reporting time window for each node;

transmitting data packets from each node to the collector at the node's substantially random time slot within the prescheduled reporting time window;

transmitting an acknowledgement from the collector for each received data packet;

generating a second substantially random time slot within a second prescheduled reporting time window for each node that does not receive an acknowledgement from the collector; and

re-transmitting data packets from each node that did not receive the acknowledgement from the collector at the node's second substantially random time slot within the second prescheduled reporting time window.

161 . A method of synchronizing a data request between a head end server and a collector comprising:

transmitting from the head end server a first read request for a first table from the collector, wherein elements in the first table correspond to nodes serviced by the collector;

transmitting the first table from the collector to the head end server;

transmitting from the head end server a write request, wherein the write request includes a second table comprising last sequence numbers, and each last sequence number uniquely corresponds to a last received report from each node stored in a database at the head end server;

accepting the write request if the write request is proper;

transmitting from the head end server a second read request for new reports; and

transmitting the new reports from the collector to the head end server.

162 . The method of claim 161 , wherein the elements of the first table comprise ApTitles corresponding to each node.

163 . The method of claim 162 , further comprising compressing the first table prior to transmitting to the head end server.

164 . The method of claim 162 , further comprising compressing new reports prior to transmitting to the head end server.

165 . The method of claim 162 , further comprising authenticating the head end server.

166 . The method of claim 162 , wherein the write request is proper if the head end server has permission to access the new reports.

167 . A system for synchronizing a data request between a head end server and a collector comprising:

means for transmitting from the head end server a first read request for a first table from the collector, wherein elements in the first table correspond to nodes serviced by the collector;

means for transmitting the first table from the collector to the head end server;

means for transmitting from the head end server a write request, wherein the write request includes a second table comprising last sequence numbers, and each last sequence number uniquely corresponds to a last received report from each node stored in a database at the head end server;

means for accepting the write request if the write request is proper;

means for transmitting from the head end server a second read request for new reports; and

means for transmitting the new reports from the collector to the head end server.

168 . The system of claim 167 , wherein the elements of the first table comprise ApTitles corresponding to each node.

169 . The system of claim 167 , further comprising means for compressing the first table prior to transmitting to the head end server.

170 . The system of claim 167 , further comprising means for compressing new reports prior to transmitting to the head end server.

171 . The system of claim 167 , further comprising means for authenticating the head end server.

172 . The system of claim 167 , wherein the write request is proper if the head end server has permission to access the new reports.

173 . The system of claim 167 , wherein the means for transmitting a first read request from the head end server for a first table from the collector, wherein elements in the first table correspond to nodes serviced by the collector includes a head end server transmitter for transmitting the first read request.

174 . The system of claim 167 , wherein the means for transmitting the first table from the collector to the head end server includes a head end server transmitter for transmitting the first table to the head end server.

175 . The system of claim 167 , wherein the means for transmitting a write request from the head end server includes a head end server transmitter for transmitting the write request.

176 . The system of claim 167 , wherein the means for accepting the write request if the write request is proper includes a collector processor for accepting the write request.

177 . The system of claim 167 , wherein the means for transmitting from the head end server a second read request for new reports includes a head end server transmitter for transmitting a second read request for new reports.

178 . The system of claim 167 , wherein the means for transmitting the new reports from the collector to the head end server includes a collector transmitter for transmitting new reports.

179 . The system of claim 167 , wherein the means for compressing first table prior to transmitting to the head end server includes a processor for applying compression algorithms for compressing the first table.

180 . The system of claim 167 , wherein the means for compressing new reports prior to transmitting to the head end server includes a processor for executing compression algorithms for compressing new reports.

181 . The system of claim 167 , wherein the means for authenticating the head end server includes a processor for authenticating the head end server.

182 . A system for synchronizing a data request between a head end server and a collector comprising:

(a) a head end server transmitter for transmitting:

a first read request for a first table from the collector, wherein elements in the first table correspond to nodes serviced by the collector;

a write request, wherein the write request includes a second table comprising last sequence numbers, and each last sequence number uniquely corresponds to a last received report from each node stored in a database at the head end server; and

a second read request for new reports;

(b) a collector transmitter for transmitting:

the first table to the head end server; and

the new reports to the head end server; and

(c) a collector receiver and a collector processor for accepting the write request if the write request is proper.

183 . The system of claim 182 , wherein the elements of the first table comprise ApTitles corresponding to each node.

184 . The system of claim 182 , wherein the collector processor compresses the first table using one or more compression algorithms prior to transmitting to the head end server.

185 . The system of claim 182 , wherein the collector processor compresses new reports using one or more compression algorithms prior to transmitting to the head end server.

186 . The system of claim 182 , wherein the collector processor authenticates the head end server based upon information stored in a collector memory.

187 . The system of claim 182 , wherein the write request is proper if the head end server has permission to access the new reports.

188 . A computer program product stored in a computer readable media for execution in a processor and memory coupled to the processor for performing a method of synchronizing a data request between a head end server and a collector comprising:

transmitting from the head end server a first read request for a first table from the collector, wherein elements in the first table correspond to nodes serviced by the collector;

transmitting the first table from the collector to the head end server;

transmitting from the head end server a write request, wherein the write request includes a second table comprising last sequence numbers, and each last sequence number uniquely corresponds to a last received report from each node stored in a database at the head end server;

accepting the write request if the write request is proper;

transmitting from the head end server a second read request for new reports; and

transmitting the new reports from the collector to the head end server.

189 . A method of synchronizing a data request between a head end server and a collector comprising:

transmitting from the head end server a first read request for a first table from the collector, wherein elements in the first table correspond to nodes serviced by the collector;

receiving by the head end server the first table from the collector;

transmitting from the head end server a write request, wherein the write request includes a second table comprising last sequence numbers, and each last sequence number uniquely corresponds to a last received report from each node stored in a database at the head end server;

transmitting from the head end server a second read request for new reports; and

receiving the new reports from the collector.

190 . A method of synchronizing a data request between a head end server and a collector comprising:

receiving by the collector from the head end server a first read request for a first table, wherein elements in the first table correspond to nodes serviced by the collector;

transmitting the first table from the collector to the head end server;

receiving by the collector from the head end server a write request, wherein the write request includes a second table comprising last sequence numbers, and each last sequence number uniquely corresponds to a last received report from each node stored in a database at the head end server;

accepting by the collector the write request if the write request is proper;

receiving by the collector from the head end server a second read request for new reports; and

transmitting the new reports from the collector to the head end server.

191 . A computer program product stored in a computer readable media for execution in a processor and memory coupled to the processor for performing a method of synchronizing a data request between a head end server and a collector comprising:

transmitting from the head end server a first read request for a first table from the collector, wherein elements in the first table correspond to nodes serviced by the collector;

receiving by the head end server the first table from the collector;

transmitting from the head end server a write request, wherein the write request includes a second table comprising last sequence numbers, and each last sequence number uniquely corresponds to a last received report from each node stored in a database at the head end server;

transmitting from the head end server a second read request for new reports; and

receiving the new reports from the collector.

192 . A computer program product stored in a computer readable media for execution in a processor and memory coupled to the processor for performing a method of synchronizing a data request between a head end server and a collector comprising:

receiving by the collector from the head end server a first read request for a first table, wherein elements in the first table correspond to nodes serviced by the collector;

transmitting the first table from the collector to the head end server;

receiving by the collector from the head end server a write request, wherein the write request includes a second table comprising last sequence numbers, and each last sequence number uniquely corresponds to a last received report from each node stored in a database at the head end server;

accepting by the collector the write request if the write request is proper;

receiving by the collector from the head end server a second read request for new reports; and

transmitting the new reports from the collector to the head end server.

193 . The method of claim 162 , wherein the ApTitle includes the application process title of a node and corresponds to the address of the node; and wherein the ApTitle of a node within a particular collector sub-network uniquely identifies that node.

194 . The system of claim 168 , wherein the ApTitle includes the application process title of a node and corresponds to the address of the node; and wherein the ApTitle of a node within a particular collector sub-network uniquely identifies that node.

195 . The computer program of claim 183 , wherein the ApTitle includes the application process title of a node and corresponds to the address of the node; and wherein the ApTitle of a node within a particular collector sub-network uniquely identifies that node.

196 . A method of recovering loss of data at a head end server's database comprising:

transmitting a first read request from the head end server for a first table from the collector, wherein elements in the first table correspond to nodes serviced by the collector;

transmitting the first table from the collector to the head end server; transmitting a write request from the head end server, wherein the write request includes a second table comprising last sequence numbers, and each last sequence number uniquely corresponds to a last available report from each node stored in a database at the head end server after the loss of data;

accepting the write request if the write request is proper;

transmitting from the head end server a second read request for lost reports; and

transmitting the lost reports from the collector to the head end server.

197 . The method of claim 196 , wherein the elements of the first table comprise ApTitles corresponding to each node.

198 . The method of claim 196 , further comprising compressing the first table prior to transmitting to the head end server.

199 . The method of claim 196 , further comprising compressing lost reports prior to transmitting to the head end server.

200 . The method of claim 196 , further comprising authenticating the head end server.

201 . The method of claim 197 , wherein the write request is proper if the head end server has permission to access the lost reports.

202 . A method of recovering from a collector failure comprising:

seeking a new collector by a node associated with the failed collector; and

transmitting one or more reports from the node's reporting list.

203 . The method of claim 202 , wherein transmitting reports from the node's reporting list includes reports immediately following a flagged report flagged by a last-transferred-pointer.

204 . The method of claim 202 , further comprising:

receiving an acknowledgment from the new collector for each report received by the new collector; and

updating the last-transferred-pointer to flag the last report acknowledged by the new collector.

205 . A system for recovering from a collector failure comprising:

means for seeking a new collector by a node associated with the failed collector; and

means for transmitting one or more reports from the node's reporting list.

206 . The system of claim 205 , wherein the means for seeking the new collector by the node includes a receiver for detecting active networks and receiving responses from the new collector, a transmitter for transmitting a request for association, and a processor to run software for associating with a new collector.

207 . The system of claim 205 , wherein the means for transmitting reports from the node's reporting list includes a transmitter for transmitting reports.

208 . The system of claim 205 , wherein transmitting reports from the node's reporting list includes reports immediately following a flagged report flagged by a last-transferred-pointer.

209 . The system of claim 205 , further comprising:

means for receiving an acknowledgment from the new collector for each report received by the new collector; and

means for updating the last-transferred-pointer to flag the last report acknowledged by the new collector.

210 . The system of claim 209 , wherein the means for acknowledging receipt of the transmitted reports by the new collector includes a receiver for acknowledging receipt of the transmitted reports by the new collector.

211 . The system of claim 209 , wherein the means for updating the last-transferred-pointer to flag the last report acknowledged by the new collector includes a processor for updating the last-transferred-pointer.

212 . A system for recovering from a collector failure comprising:

a radio and a microcontroller for seeking a new collector by a node associated with the failed collector and transmitting one or more reports from the node's reporting list.

213 . The system of claim 212 , further comprising:

a processor for updating the last-transferred-pointer to flag the last report acknowledged by the new collector; and

wherein the radio receives an acknowledgment from the new collector for each report received by the new collector.

214 . The system of claim 212 wherein transmitting reports from the node's reporting list includes reports immediately following a flagged report flagged by a last-transferred-pointer.

215 . A system for recovering loss of data at a head end server comprising:

means for transmitting a first read request from the head end server for a first table from the collector, wherein elements in the first table correspond to nodes serviced by the collector;

means for transmitting the first table from the collector to the head end server;

means for transmitting a write request from the head end server, wherein the write request includes a second table comprising last sequence numbers, and each last sequence number uniquely corresponds to a last available report from each node stored in a database at the head end server after the loss of data;

means for accepting the write request if the write request is proper;

means for transmitting from the head end server a second read request for lost reports; and

means for transmitting the lost reports from the collector to the head end server.

216 . The system of claim 215 , wherein the elements of the first table comprise ApTitles corresponding to each node.

217 . The system of claim 215 , wherein the means for transmitting a first read request from the head end server for a first table from the collector, wherein elements in the first table correspond to nodes serviced by the collector includes a head end server transmitter for transmitting a first request.

218 . The system of claim 215 , wherein the means for transmitting the first table from the collector to the head end server includes a collector transmitter for transmitting the first table.

219 . The system of claim 215 , wherein the means for transmitting a write request from the head end server, wherein the write request includes a second table comprising last sequence numbers, and each last sequence number uniquely corresponds to a last available report from each node stored in a database at the head end server after the loss of data includes a head end server transmitter for transmitting the write request.

220 . The system of claim 215 , wherein the means for accepting the write request if the write request is proper includes a collector processor for accepting the write request.

221 . The system of claim 215 , wherein the means for transmitting from the head end server a second read request for lost reports includes a head end server transmitter for transmitting the second read request.

222 . The system of claim 215 , wherein the means for transmitting the lost reports from the collector to the head end server includes a collector transmitter for transmitting the lost reports.

223 . A system for recovering loss of data at a head end server comprising:

a head end server transmitter for transmitting:

a first read request for a first table from the collector, wherein elements in the first table correspond to nodes serviced by the collector;

a write request, wherein the write request includes a second table comprising last sequence numbers, and each last sequence number uniquely corresponds to a last available report from each node stored in a database at the head end server after the loss of data; and

a second read request for lost reports; and

a collector transmitter for transmitting:

the first table from the collector to the head end server; and

the lost reports from the collector to the head end server; and

a collector receiver and a collector processor for accepting the write request if the write request is proper.

224 . The system of claim 223 , wherein the elements of the first table comprise ApTitles corresponding to each node.

225 . A computer program product stored in a computer readable media for execution in a processor and memory coupled to the processor for performing a method of recovering loss of data at a head end server's database comprising:

transmitting a first read request from the head end server for a first table from the collector, wherein elements in the first table correspond to nodes serviced by the collector;

transmitting the first table from the collector to the head end server;

transmitting a write request from the head end server, wherein the write request includes a second table comprising last sequence numbers, and each last sequence number uniquely corresponds to a last available report from each node stored in a database at the head end server after the loss of data;

accepting the write request if the write request is proper;

transmitting from the head end server a second read request for lost reports; and

transmitting the lost reports from the collector to the head end server.

226 . A computer program product stored in a computer readable media for execution in a processor and memory coupled to the processor for performing a method of recovering from a collector failure comprising:

seeking a new collector by a node associated with the failed collector; and

transmitting one or more reports from the node's reporting list.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2009
From: VEILLETTE, MICHEL
To: TRILLIANT NETWORKS, INC.
Reel/Frame 022207/0452 →