Software updates using client self-reporting and a hierarchical data structure
First Claim
1. A method comprising:
- receiving, by a processor associated with a first device, first data from a second device, wherein the first data identifies one or more attributes associated with the second device;
selecting, by the processor and based on the one or more attributes, a software update from a repository that includes a plurality of software updates, wherein the repository further includes a plurality of versions of the software update;
determining, by the processor, metadata associated with the plurality of versions of the software update, wherein the metadata identifies two or more versions of the software update of the plurality of versions of the software update that are marked as usable based on update attributes for identifying the two or more versions and logic rules for selecting usable versions of the plurality of versions of the software update, wherein the two or more versions of the software update includes a first version of the software update and a second version of the software update, wherein the first version of the software update is generated before the second version of the software update;
selecting, by the processor, a version of the two or more versions of the software update for the second device, wherein selecting the version for the second device includes;
performing a lookup in a table, wherein the table stores information about each version of each software update of the plurality of software updates in a plurality of metadata columns, wherein the plurality of metadata columns comprise an update identifier column, a version identifier column, a version time identifier column, a usability indicator column, a use logic column, and an other metadata column, wherein the other metadata column includes entries indicating whether a selected version of a software update must be installed with an additional software update without requiring subsequent use of the additional software update;
navigating an update hierarchy in the use logic column to determine whether the second device is specifically identified in the use logic column of a third version of the software update of the plurality of versions of the software update;
if the second device is specifically identified in the use logic column of the third version of the software update and complies with all other criteria in the plurality of metadata columns, selecting the third version of the software update as the selected version for use by the second device;
if the second device is not specifically identified in the use column of the third version of the software update, selecting a fourth version of the software update as the selected version for use by the second device, wherein the fourth version of the software update matches the second device at a root or hardware group level and complies with all the other criteria of the plurality of metadata columns;
determining, by the processor and based on the table, whether the additional software update is to be used by the second device when installing the selected version of the software update;
andforwarding, by the processor, second data to the second device, wherein the second data identifies the selected version of the software update, wherein the second device uses the second data to obtain the selected version of the software update, and wherein the second data includes information identifying the additional software update when the additional software update is to be used by the second device when installing the third version of the software update or installing the fourth version of the software update.
1 Assignment
0 Petitions
Accused Products
Abstract
A client device forwards data about itself to an update device. The client metadata may identify hardware components included in the client, software being executed by the client, or other information, such as a geographic location associated with the client device and/or account information for associated operator. The update device determines metadata regarding various software updates, such as data identifying different versions of available updates and logical rules for selecting among the versions. The update device selects specific update versions for the client device, and forwards data identifying the selected updates to the client device. The client device uses the identifying data to locate and obtain the identified updates. The client device may access the updates via a content delivery network that schedules delivery of the updates to the client device.
-
Citations
17 Claims
-
1. A method comprising:
-
receiving, by a processor associated with a first device, first data from a second device, wherein the first data identifies one or more attributes associated with the second device; selecting, by the processor and based on the one or more attributes, a software update from a repository that includes a plurality of software updates, wherein the repository further includes a plurality of versions of the software update; determining, by the processor, metadata associated with the plurality of versions of the software update, wherein the metadata identifies two or more versions of the software update of the plurality of versions of the software update that are marked as usable based on update attributes for identifying the two or more versions and logic rules for selecting usable versions of the plurality of versions of the software update, wherein the two or more versions of the software update includes a first version of the software update and a second version of the software update, wherein the first version of the software update is generated before the second version of the software update; selecting, by the processor, a version of the two or more versions of the software update for the second device, wherein selecting the version for the second device includes; performing a lookup in a table, wherein the table stores information about each version of each software update of the plurality of software updates in a plurality of metadata columns, wherein the plurality of metadata columns comprise an update identifier column, a version identifier column, a version time identifier column, a usability indicator column, a use logic column, and an other metadata column, wherein the other metadata column includes entries indicating whether a selected version of a software update must be installed with an additional software update without requiring subsequent use of the additional software update; navigating an update hierarchy in the use logic column to determine whether the second device is specifically identified in the use logic column of a third version of the software update of the plurality of versions of the software update; if the second device is specifically identified in the use logic column of the third version of the software update and complies with all other criteria in the plurality of metadata columns, selecting the third version of the software update as the selected version for use by the second device; if the second device is not specifically identified in the use column of the third version of the software update, selecting a fourth version of the software update as the selected version for use by the second device, wherein the fourth version of the software update matches the second device at a root or hardware group level and complies with all the other criteria of the plurality of metadata columns; determining, by the processor and based on the table, whether the additional software update is to be used by the second device when installing the selected version of the software update; and forwarding, by the processor, second data to the second device, wherein the second data identifies the selected version of the software update, wherein the second device uses the second data to obtain the selected version of the software update, and wherein the second data includes information identifying the additional software update when the additional software update is to be used by the second device when installing the third version of the software update or installing the fourth version of the software update. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A first device comprising:
-
a memory configured to store instructions; and a processor configured to execute one or more of the instructions to; receive first data from a second device, wherein the first data identifies one or more attributes associated with the second device; select, based on the one or more attributes, a software update from a repository that includes a plurality of software updates, wherein the repository further includes a plurality of versions of the software update; determine metadata associated with the plurality of versions of the software update, wherein the metadata identifies two or more versions of the software update of the plurality of versions of the software update that are marked as usable based on update attributes for identifying the two or more versions and logic rules for selecting usable versions of the plurality of versions of the software update, wherein the two or more versions of the software update includes a first version of the software update and a second version of the software update, wherein the first version of the software update is generated before the second version of the software update; select a version of the two or more versions of the software update for the second device, wherein the processor, when selecting the version for the second device, is further configured to; perform a lookup in a table, wherein the table stores information about each version of each software update of the plurality of software updates in a plurality of metadata columns, wherein the plurality of metadata columns comprise an update identifier column, a version identifier column, a version time identifier column, a usability indicator column, a use logic column, and an other metadata column, wherein the other metadata column includes entries indicating whether a selected version of a software update must be installed with an additional software update without requiring subsequent use of the additional software update; navigate an update hierarchy in the use logic column to determine whether the second device is specifically identified in the use logic column of a third version of the software update of the plurality of versions of the software update; if the second device is specifically identified in the use logic column of the third version of the software update and complies with all other criteria in the plurality of metadata columns, select the third version of the software update as the selected version for use by the second device; if the second device is not specifically identified in the use logic column of the third version of the software update, select a fourth version of the software update as the selected version for use by the second device, wherein the fourth version of the software update matches the second device at a root or hardware group level and complies with all the other criteria of the plurality of metadata columns; determine, based on the table, whether the additional software update is to be used by the second device when installing the selected version of the software update; and forward second data to the second device, wherein the second data identifies the selected version of the software update, wherein the second device uses the second data to obtain the selected version of the software update, and wherein the second data includes information identifying the additional software update when the additional software update is to be used by the second device when installing the third version of the software update or installing the fourth version of the software update. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory computer-readable medium, comprising:
a plurality of computer-executable instructions stored thereon, which, when executed by a processor associated with a first device, cause the processor to; receive first data from a second device, wherein the first data identifies one or more attributes associated with the second device; select, based on the one or more attributes, a software update from a repository that includes a plurality of software updates, wherein the repository further includes a plurality of versions of the software update; determine metadata associated with the plurality of versions of the software update, wherein the metadata identifies two or more versions of the software update of the plurality of versions of the software update that are marked as usable based on update attributes for identifying the two or more versions and logic rules for selecting usable versions of the plurality of versions of the software update, wherein the two or more versions of the software update includes a first version of the software update and a second version of the software update, wherein the first version of the software update is generated before the second version of the software update; select a version of the two or more versions of the software update for the second device, wherein processor, when selecting the version for the second device, is further configured to; perform a lookup in a table, wherein the table stores information about each version of each software update of the plurality of software updates in a plurality of metadata columns, wherein the plurality of metadata columns comprise an update identifier column, a version identifier column, a version time identifier column, a usability indicator column, a use logic column, and an other metadata column, wherein the other metadata column includes entries indicating whether a selected version of a software update must be installed with an additional software update without requiring subsequent use of the additional software update; navigate an update hierarchy in the use logic column to determine whether the second device is specifically identified in the use logic column of a third version of the software update of the plurality of versions of the software update; if the second device is specifically identified in the use logic column of the third version of the software update and complies with all other criteria in the plurality of metadata columns, select the third version of the software update as the selected version for use by the second device; if the second device is not specifically identified in the use logic column of the third version of the software update, select a fourth version of the software update as the selected version for use by the second device, wherein the fourth version of the software update matches the second device at a root or hardware group level and complies with all the other criteria of the plurality of metadata columns; determine, based on the table, whether the additional software update is to be used by the second device when installing the selected version of the software update; and forward second data to the second device, wherein the second data identifies the selected version of the software update, wherein the second device uses the second data to obtain the selected version of the software update, and wherein the second data includes information identifying the additional software update when the additional software update is to be used by the second device when installing the third version of the software update or installing the fourth version of the software update. - View Dependent Claims (14, 15, 16, 17)
Specification