Search

CA-3114631-C - HIERARCHICAL UPDATE AND CONFIGURATION OF SOFTWARE FOR NETWORKED COMMUNICATION DEVICES USING MULTICAST

CA3114631CCA 3114631 CCA3114631 CCA 3114631CCA-3114631-C

Abstract

A device and method for receiving a configuration setting update at a networked endpoint device. The method comprises: receiving a data packet from a head-end device, including one or more parameter updates including: a parameter identification, a designated parameter value for a parameter identified by the parameter identification, and a predetermined level assigument for the designated parameter value. The method further includes updating a record of two or more records of each parameter with its designated parameter value, the two or more records associated with differentiating level assignments defining a prioritized hierarchy of parameter values for the parameter at the endpoint device, where the updated record is associated with the predetermined level assigument. The method further includes running an application using a selected parameter value recorded at a highest priority level assignment of the differentiating level assignments for which parameter values are presently recorded at the endpoint device.

Inventors

  • Bernard M. Woodland
  • Scott M. Collins

Assignees

  • ITRON, INC.

Dates

Publication Date
20260505
Application Date
20190927
Priority Date
20181010

Claims (20)

  1. What Is Claimed Is: 1. A method of receiving a configuration setting update at an endpoint device in a communication system, the method comprising: sending over a network, to a head-end device via a transceiver of the endpoint device, a version audit that includes version information for one or more applications used at the endpoint device, the version information associated with parameter values set at one or more hierarchical level assignments and including, for at least one of the one or more applications, a dot notation per application including a version indication for each of a set of parameter values that are set at each hierarchical level, each version indication separated by a dot; receiving, via the transceiver of the endpoint device, a data packet from the head-end device, the data packet including one or more parameter updates, each parameter update including: a parameter identification; a designated parameter value for a parameter identified by the parameter identification; and a predetermined level assignment for the designated parameter value, the one or more parameter updates including updates for parameters associated with a difference between a current configuration and a desired configuration, the difference determined based on the version audit; updating, by a processor of the endpoint device, a record of two or more records of each parameter with the parameter's respective designated parameter value, the two or more records associated with differentiating level assignments defining a prioritized hierarchy of parameter values for the parameter at the endpoint device, and the updated record associated with the predetermined level assignment included in the data packet; and running, by the processor, an application using one or more selected parameter values, each selected parameter value recorded at a highest priority level assignment of the differentiating level assignments for which parameter values for the parameter associated with the selected parameter value are presently recorded at the endpoint device.
  2. 2. The method of claim 1, further comprising: sending an acknowledgement of receipt of the data packet to the head-end device, wherein the acknowledgement is one of an acknowledgement of successful receipt or an error message.
  3. 3. The method of claim 2, wherein the sending an acknowledgement of receipt is postponed until one or more other messages are to be sent to the head-end device such that the acknowledgement of receipt and other messages are combined into a minimal number of transmissions in order to conserve network bandwidth.
  4. 4. The method of claim 1, wherein the differentiating level assignments for each parameter at the endpoint device include: a first level assignment; and a second level assignment that ranks lower in priority than the first level assignment.
  5. 5. The method of claim 4, wherein the differentiating level assignments further include a third level assignment that ranks lower in priority than the second level assignment, and wherein: the first level assignment is for an individual parameter value of the parameter that is specific to the endpoint device; the second level assignment is for a group parameter value of the parameter that is specific to a predetermined group of endpoint devices to which the endpoint device belongs; and the third level assignment is for a default parameter value of the parameter for all endpoint devices of the communication system to which the endpoint device belongs that use the parameter.
  6. 6. The method of claim 5, wherein the predetermined level assignment is the second level assignment, and wherein the data packet includes an address associated with the predetermined group of endpoint devices.
  7. 7. The method of claim 5, wherein the predetermined level assignment is the first level assignment, and wherein the data packet includes an address associated with only the endpoint device.
  8. 8. The method of claim 1, wherein the data packet includes a tag identifier that identifies a configuration setting update and indicates a placement in an order of configuration data packets, and wherein when the tag identifier for the data packet indicates that the data packet is out of order such that a previously received data packet is a more recent configuration update, the present data packet is ignored by the endpoint device.
  9. 9. The method of claim 1, wherein for at least one of the parameters the designated parameter value is null, and wherein updating the record includes updating the record with the null value, such that the updated record is not considered when determining which recorded parameter value at the endpoint device is at a highest priority level assignment.
  10. 10. The method of claim 1, wherein the endpoint device belongs to a first group and also to a second group assigned to a higher priority level than the first group, wherein the parameter identified by the parameter identification is changeable for both the first group and the second group, and wherein the parameter's value as set for the second group takes priority over the parameter's value as set for the first group due to the higher priority level of the second group.
  11. 11. The method of claim 1, wherein the endpoint device belongs to a first group and also to a second group, wherein the parameter identified by the parameter identification is changeable for both the first group and the second group, and wherein the method further comprises: determining whether the parameter value is set as designated for the first group or as designated for the second group based on one or more additional configuration parameters.
  12. 12. The method of claim 1, wherein the endpoint device belongs to a first group and also to a second group, wherein the parameter identified by the parameter identification is changeable for both the first group and the second group, and wherein the method further comprises: determining whether the parameter value is set as designated for the first group or as designated for the second group based on predetermined arbitration guidelines set to prevent parameter conflicts.
  13. 13. An endpoint device of a communication system, the endpoint device comprising: a processor; a transceiver communicably coupled with the processor, the transceiver configured to communicate with a head-end device over a network; and a memory communicably coupled with the processor, the memory storing instructions that, when executed by the processor, direct the processor to: send, to the head-end device, a version audit that includes version information for one or more applications used at the endpoint device, the version information associated with parameter values set at one or more hierarchical level assignments and including, for at least one of the one or more applications, a dot notation per application including a version indication for each of a set of parameter values that are set at each hierarchical level, each version indication separated by a dot; receive a data packet from the head-end device, the data packet including one or more parameter updates, each parameter update including: a parameter identification; a designated parameter value for a parameter identified by the parameter identification; and a predetermined level assignment for the designated parameter value, the one or more parameter updates including updates for parameters associated with a difference between a current configuration and a desired configuration, the difference determined based on the version audit; update a record of two or more records of each parameter with the parameter's respective designated parameter value, the two or more records associated with differentiating level assignments defining a prioritized hierarchy of parameter values for the parameter at the endpoint device, and the updated record associated with the predetermined level assignment included in the data packet; and run an application using one or more selected parameter values, each selected parameter value recorded at a highest priority level assignment of the differentiating level assignments for which parameter values for the parameter associated with the selected parameter value are presently recorded at the endpoint device.
  14. 14. The endpoint device of claim 13, wherein the differentiating level assignments for each parameter at the endpoint device include: a first level assignment; and a second level assignment that ranks lower in priority than the first level assignment.
  15. 15. The endpoint device of claim 14, wherein the differentiating level assignments further include a third level assignment that ranks lower in priority than the second level assignment, and wherein: the first level assignment is for an individual parameter value of the parameter that is specific to the endpoint device; the second level assignment is for a group parameter value of the parameter that is specific to a predetermined group of endpoint devices to which the endpoint device belongs; and the third level assignment is for a default parameter value of the parameter for all endpoint devices of the communication system to which the endpoint device belongs that use the parameter.
  16. 16. The endpoint device of claim 13, wherein the data packet includes a tag identifier that identifies a configuration setting update and indicates a placement in an order of configuration data packets, and wherein when the tag identifier for the data packet indicates that the data packet is out of order such that a previously received data packet is a more recent configuration update, the present data packet is ignored by the endpoint device.
  17. 17. The endpoint device of claim 13, wherein for at least one of the parameters the designated parameter value is null, and wherein updating the record includes updating the record with the null value, such that the updated record is not considered when determining which recorded parameter value at the endpoint device is at a highest priority level assignment.
  18. 18. At least one non-transitory computer-readable medium having computer program logic stored thereon, the computer program logic including instructions that, when executed by a processor of an endpoint device of a communications system, cause the processor to: send over a network, to a head-end device via a transceiver of the endpoint device, a version audit that includes version information for one or more applications used at the endpoint device, the version information associated with parameter values set at one or more hierarchical level assignments and including, for at least one of the one or more applications, a dot notation per application including a version indication for each of a set of parameter values that are set at each hierarchical level, each version indication separated by a dot; receive a data packet from the head-end device, the data packet including one or more parameter updates, each parameter update including: a parameter identification; a designated parameter value for a parameter identified by the parameter identification; and a predetermined level assignment for the designated parameter value, the one or more parameter updates including updates for parameters associated with a difference between a current configuration and a desired configuration, the difference determined based on the version audit; update a record of two or more records of each parameter with the parameter's respective designated parameter value, the two or more records associated with differentiating level assignments defining a prioritized hierarchy of parameter values for the parameter at the endpoint device, and the updated record associated with the predetermined level assignment included in the data packet; and run an application using one or more selected parameter values, each selected parameter value recorded at a highest priority level assignment of the differentiating level assignments for which parameter values for the parameter associated with the selected parameter value are presently recorded at the endpoint device.
  19. 19. The non-transitory computer-readable medium of claim 18, wherein the differentiating level assignments for each parameter at the endpoint device include: a first level assignment; and a second level assignment that ranks lower in priority than the first level assignment.
  20. 20. The non-transitory computer-readable medium of claim 19, wherein the differentiating level assignments further include a third level assignment that ranks lower in priority than the second level assignment, and wherein: the first level assignment is for an individual parameter value of the parameter that is specific to the endpoint device; the second level assignment is for a group parameter value of the parameter that is specific to a predetermined group of endpoint devices to which the endpoint device belongs; and the third level assignment is for a default parameter value of the parameter for all endpoint devices of the communication system to which the endpoint device belongs that use the parameter.

Description

HIERARCHICAL UPDATE AND CONFIGURATION OF SOFTWARE FOR NETWORKED COMMUNICATION DEVICES USING MULTICAST RELATED APPLICATIONS [0001] This PCT international application is related to and claims priority to U.S. Pat. Appl. No. 16/156,368, filed October 10, 2018, entitled "Hierarchical Configuration of Networked Communication Devices." FIELD OF THE DISCLOSURE [0002] This disclosure relates generally to networked communication devices that run one or more applications (and/or agents/features thereof), and more particularly to configuration of same. BACKGROUND [0003] A computing device may contain software or firmware capable of executing on a computing device. Such software or firmware may be called an application. Examples of 20 applications may include, for example, and without limitation, an operating system, an update to an operating system, a software program, an update of a software program, an add-on to a software program, a patch, a plugin, a driver, a firmware image, a firmware update, etc. Networked computing devices (e.g., endpoint (or node) devices, head-end devices, etc.) may contain and run one or more applications, and/or may run one or more features (e.g., applets) or agents (e.g., a 25 plurality of features) that are associated with one or more primary applications that may be run on one or more networked host devices (e.g., an application server that may be in communication with endpoint devices and/or head-end devices over a network such as the Internet). Networked computing devices may run a single application or a plurality of applications (or may run one or more agents or features associated with a single primary application or a plurality of primary 30 applications). [0004] When agents (or features) associated with primary applications are run on an endpoint device, the agents (or features) may, among other things, collect information provided by the input/output port(s)/device(s) 1639 may be connected to processor(s) 1619, for example, with an interface circuit (not shown). The interface circuit may be implemented by any type of interface standard, such as, for example, an Ethernet interface, a universal serial bus (USB), a PCI express interface, etc. For use with an output device, the interface circuit may include a graphics driver 5 card, chip, and/or processor. [0074] Communication interface(s) 1623 may be implemented in hardware or a combination of hardware and software, and may provide wired or wireless network interface(s) to one or more networks, such as network(s) 1405 of FIG. 14. Communication interface(s) 1623 may be a part of, or connected with, the interface circuit discussed above, and/or may include or connect with 10 communication devices such as a transmitter, a receiver, a transceiver, a modem and/or network interface card to facilitate exchange of data with external devices via a network, such as network(s) 1405. In an embodiment, security mechanisms may be used to provide secure communications, as would be understood by one of ordinary skill in the art. [0075] Secondary storage device(s) 1637 may store processing logic 1645 (e.g., software) to 15 be executed by processor(s) 1619, and/or may store data 1647. Processing logic 1645 and data 1647 may be used by processor(s) 1619 to facilitate sensor data collection functions, metering functions and/or metering calculations/computations if embodied in a utility meter, and/or communications between devices, etc., according to embodiments of this disclosure. Processing logic 1645 may include instructions for executing the methodology described herein, which may 20 also include data packet generation and/or configuration management. Processing logic may also include applications (or agents or features), such as those described herein. Examples of secondary storage device(s) 1637 may include one or more hard drive disks, including but not limited to electro-mechanical hard drives and FLASH memory hard drives (SSDs), compact disk (CD) drives, digital versatile disk (DVD) drives, Blu-ray disk drives, redundant array of independent 25 disks (RAID) systems, floppy disk drives, flash drives, etc. Data and/or processing logic may be stored on a removable tangible computer readable storage medium (e.g., a floppy disk, a CD, a DVD, a Blu-ray disk, etc.) using one or more of the secondary storage device(s) 1637. [0076] The foregoing description discloses techniques for distributing and maintaining 30 configuration settings using hierarchical levels of configuration parameters at one or more networked endpoint devices. The techniques described herein may apply to any network of nodes that need configuration parameters for their installed application(s). Configuration updates may be sent to multiple endpoint devices via multicast, minimizing bandwidth consumption. However, the described techniques are beneficial even on networks where bandwidth is abundant. For example, the ability to simplify the management of configuration parameters on a