Patent ID: 8250566

Claim:
A method for upgrading a hardware device (HD) with a software program (SP), wherein the HD has a storage medium for storing the SP, and wherein the HD is a part of an HD network that includes a plurality of hardware devices (HDs) and a control center having: an HD information database including a plurality of HD records corresponding to the HDs of the network, wherein each HD record contains a hardware profile, a revision of a presently stored SP, an “upgrade-mode” flag, and a “software out-of-date” indicator, wherein said hardware profile contains a first model, a first vendor, and a first hardware revision; and an SP repository for storing software programs (SPs), wherein the SP repository includes a plurality of SP records, wherein each SP record contains an SP, a revision of said SP, a validity time window of said SP, and a threshold hardware profile of an HD compatible with said SP, wherein said threshold hardware profile contains a second model, a second vendor, and a second hardware revision; wherein the method comprises the steps of: (a) determining that the HD is eligible for an automatic upgrade, in dependence upon a state of the “upgrade-mode” flag stored in a corresponding HD record of the HD information database; (b) selecting the SP to upgrade the HD with, by: i) selecting at least one SP record within the SP repository, having the second model and the second vendor of its threshold hardware profile matched to the first model and the first vendor, respectively, of the HD record corresponding to the HD being upgraded; ii) out of those selected in i), selecting at least one SP record having the second hardware revision of the respective threshold hardware profile, which is earlier than the first hardware revision of the HD record corresponding to the HD being upgraded; iii) out of those selected in ii), selecting the record with the latest SP revision; iv) determining that the SP revision of the record selected in iii) is later than the revision of the presently stored SP of the HD record corresponding to the HD being upgraded; and v) selecting the SP of the SP record selected in iii) as the SP to upgrade the HD with; (c) determining that the current time is within a time window when an upgrade is allowed; (d) determining that the HD is in a state that is appropriate for an upgrade to be performed; (e) upon completion of steps (a) through (d), downloading the SP selected in step (b) to the storage medium of the HD.