Software updating system and method
First Claim
Patent Images
1. A processor-readable medium encoded with executable instructions that, when executed, direct a server computer to perform a method for executing software updates on a plurality of client computers, the method comprising:
- assigning, by the server computer, a first level of service to one or more first client computers of the plurality of client computers;
assigning, by the server computer, a second level of service to one or more second client computers of the plurality of client computers, the levels of service assigned to the first and second client computers specifying information indicating a length of a time period between software update availability and software update installation, wherein the first level of service requires a first length of time for the software updates to be applied after being detected, and the second level of service requires a second length of time for the software updates to be applied after being detected, different from said first length of time;
scheduling, by the server computer, performance of the software updates to the first and second client computers according to the level of service assigned to each client computer of the first and second client computers, wherein updating of the first client computers assigned the first level of service is scheduled to take place within the first length of time and updating of the second client computers assigned the second level of service is scheduled to take place within the second length of time, different from the first length of time;
establishing a specified grace period for allowing users to perform the software updates, followed by an enforcement period during which the software updates cannot be postponed, wherein a length of time of the grace period is based at least in part upon the first or second level of service assigned to a particular client computer of the plurality of client computers, wherein the first level of service has a grace period length of time different than the second level of service; and
initiating, by the server computer, execution of the software updates to the first and second client computers, according to the scheduling.
2 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, software updates are applied to one or more client computers. The one or more client computers are assigned a level of service governing aspects of the application of the updates. The scheduling of the application of the software updates is done according to the level of service. The application of the software update is then performed according to the schedule.
165 Citations
39 Claims
-
1. A processor-readable medium encoded with executable instructions that, when executed, direct a server computer to perform a method for executing software updates on a plurality of client computers, the method comprising:
-
assigning, by the server computer, a first level of service to one or more first client computers of the plurality of client computers; assigning, by the server computer, a second level of service to one or more second client computers of the plurality of client computers, the levels of service assigned to the first and second client computers specifying information indicating a length of a time period between software update availability and software update installation, wherein the first level of service requires a first length of time for the software updates to be applied after being detected, and the second level of service requires a second length of time for the software updates to be applied after being detected, different from said first length of time; scheduling, by the server computer, performance of the software updates to the first and second client computers according to the level of service assigned to each client computer of the first and second client computers, wherein updating of the first client computers assigned the first level of service is scheduled to take place within the first length of time and updating of the second client computers assigned the second level of service is scheduled to take place within the second length of time, different from the first length of time; establishing a specified grace period for allowing users to perform the software updates, followed by an enforcement period during which the software updates cannot be postponed, wherein a length of time of the grace period is based at least in part upon the first or second level of service assigned to a particular client computer of the plurality of client computers, wherein the first level of service has a grace period length of time different than the second level of service; and initiating, by the server computer, execution of the software updates to the first and second client computers, according to the scheduling. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A method for performing software updates on a client computer, the method comprising:
-
assigning a level of service to the client computer by a server computer for dtermining a frequency of performing software updates; receiving, by the client computer, from the computer, a software update to be executed on the client computer; displaying, by the client computer, an icon configured to allow a client computer user a choice between displaying recurring software update reminders and immediate initiation of installation of the software update by the client computer, wherein the recurring software reminders include information on a grace period within which installation of the software update is able to be postponed and information on the onset of an enforcement period after which installation of the software update cannot be postponed, wherein upon ending of the grace period and onset of the enforcement period, the user of the client computer is forced to accept installation of the software update and no longer provided the option to postpone the software update; and providing, by the client computer, a user interface to allow user-selection of a time for the client computer to perform the installation of the software update within the server-assigned grace period and to allow user-selection of a time for the client computer to initiate a reboot, separate from the installation and also within the server-assigned grace period, wherein the times selected for the grace period and enforcement period are based in part on the level of service assigned to the client computer by the server computer.
-
-
28. A processor-readable medium comprising processor-executable instructions that, when executed, direct a client computer to execute a method for updating software on the client computer, the method comprising:
-
assigning a level of service to the client computer for determining a frequency of performing software updates; displaying, by the client computer, a desktop icon that represents a choice between displaying recurring software update reminders and initiating immediate installation of software updates, wherein the recurring software update reminders include information on a grace period within which installation of the software updates by the client computer is able to be postponed and information on the onset of an enforcement period after which installation of the software updates by the client computer cannot be postponed, wherein upon ending of the grace period and onset of the enforcement period, the user of the client computer is forced to accept installation of the software update and no longer provided the option to postpone the software update; and providing, by the client computer, a user interface to allow user-selection of a time within the grace period for the client computer to perform the installation of the software updates and to allow user-selection of a time within the grace period and distinct from the time for the client computer to perform the installation, for the client computer to initiate a reboot, wherein the times selected for the grace period and enforcement period are based at least in part on the level of service assigned to the client computer. - View Dependent Claims (29, 30, 31)
-
-
32. A method executed by a server computer for performing software updates on a group client computers associated with the server computer, the method comprising:
-
assigning a level of service to each client computer of the group of client computers for determinig a frequency of performing software updates; associating individual ones of the group client computers into subgroups sized to allow simultaneous updating of the client computers in each subgroup without disrupting work flow of the entire group of client computers; calculating an anticipated elapsed time required for application of each software update to be performed, while adjusting the anticipated time according to expectations for each client computer in each subgroup; setting failsafe timeout periods for applying each software update based the anticipated time for completion of each software update, wherein installation is assumed to have failed and installation is terminated when the installation of a particular software update exceeds the failsafe timeout period set for the particular software update; establishing a change time-window for each of the subgroups, wherein the change time-window establishes a specific time period for updating the client computers in each subgroup during which the client computers in the subgroup may be taken down for update installation without disrupting the work flow of the entire group; initiating, by the server computer, software updates to each client computer of a particular subgroup, wherein the initiating is performed for the particular subgroup the change time-window established for the particular subgroup; and monitoring, by the server computer, the failsafe timeout period for each software update on each client computer of the particular sybgroup during installation of the software updates, wherein, when the failsafe update is exceeded for a particular software update, the particular software update is suspended and a corresponding code is returned; and when time remaining within the established change time-window is less than an amount of time required for installing remaining software updates and rebooting of the client computers in the particular subgroup, the installation of the remaining software updates is suspended to return the particular subgroup to service without exceeding the established change time-window.
-
-
33. A processor-readable medium encoded with executable instructions that, when executed, direct a server computer to perform a method for updating client computer software on a group of client computers, the method comprising:
-
assigning a level of service to each client computer of the group of client computers for determining a frequency of performing software updates; associating individual ones of the plurality of client computers into subgroups sized to allow simultaneoud updating of the client computers in each subgroup without disrupting work flow of the entire group of client computers; calculating an anticipated elapsed time required for application of each software update to be performed, while adjusting the anticipated time according to expectations for each client computer in each subgroup; setting failsafe timeout periods for applying each software update based the anticipated time for completion of each software update, wherein installation is assumed to have failed and installation is terminated when the installation of a particular software update exceeds the failsafe timeout period set for the particular software update; establishing, for each of the subgroups, a particular change time-window, wherein the change time-window establishes a specific time period for updating the client computers in each subgroup during which the client computers in the subgroup may be taken down for update installation without disrupting the work flow of the entire group; and initiating, by the server computer, software updates to each of the client computers associated with a particular one of the subgroups, wherein the initiating is performed within the particular change time-window established for the particular one of the subgroups; monitoring, by the server computer, the failsafe timeout for each update on each client computer associated with the particular one of the subgroups during installation of the software updates, wherein, when the failsafe timeout period is exceeded for a particular software update, the particular software update is suspended and a corresponding code is returned; and when time remaining within the established change time-window is less than an amount of time required for installing remaining software updates and rebooting of the client computers in the particular subgroup, the installation of the remaining software updates is suspended to return the particular subgroup to service without exceeding the established change time-window. - View Dependent Claims (34)
-
-
35. A method executed by a server computer for performing software updates to a plurality of client computers, the method comprising:
-
assigning, by the server computer, a first level of service to one or more first client computers of the plurality of client computers, assigning, by the server computer, a second level of service to one or more second client computers of the plurality of client computers, the levels of service assigned to the first and second client computers specifying information indicating a length of a time period between software update availability and software update installation, wherein the first level of service requires a first length of time for the software updates to be applied after being detected, and the second level of service requires a second length of time for the software updates to be applied after being detected, different from said first length of time; scheduling, by the server computer, performance of the software updates to the first and second client computers according to the level of service assigned to each client computer to the first and second client computers, wherein updating of the first client computers assigned the first level of service is scheduled to take place within the first length of time and updating of the second client computers assigned the second level of service is scheduled to take place within the second length of time, different from the first length of time; establishing a specified grace period followed by an enforcement period for performing the software updates based at least in part upon the first or second level of service assigned to a particular client computer of the plurality of client computers, wherein the first level of service has a different grace period than the second level of service; initiating, by the server computer, execution of the software updates to the first and second client computers, according to the scheduling; and configuring on the first and second client computers, by the client computer, a postponement icon that, when displayed by the particular client computer and selected by users of the client computer, causes the execution of the software updates to be postponed for execution within the established grace period, wherein the specified grace period is established as a predefined limited window of time within which the users of the client computers elect when the software updates are executed, wherein the grace period is followed by the enforcement period within which selection of the postponement icon is prohibited so that execution of the software updates may not be further postponed, wherein upon ending of the grace period and onset of the enforcement period, the users of the client computers are forced to accept installation of the software updates.
-
-
36. A method implemented by a server computer for performing software updates on a plurality of client computers, the method comprising:
-
assigning a level of service to each client computer of the plurality of client computers for determining a frequency of performing software updates, wherein a first level of service requires a first length of time in which the software updates are to be applied after being detected, and the second level of service requires a second length of time during which the software updates are to be applied after being detected, different from said first length of time; using a particular client computer of the plurality of client computers as a reference client computer, wherein the reference client computer has a standard image representing the plurality of client computers used to generate a template of approved updates for facilitating update detection and deployment; establishing a file to record information including approved updates approved for the reference client computer; scanning the reference client computer in a template mode to generate a list of the approved updates to be applied to the standard image on the reference client computer; incorporating the list of the approved updates into the template, wherein the approved updates needed for the plurality of client computers are a subset of updates indentified from a larger update package; deploying the template to the plurality of client computers; and initiating software updates to the plurality of client computers according to the template and the assigned level of service.
-
-
37. A processor-readable medium encoded with executable instructions that, when executed, direct a server computer to perform a method for updating client computer software on a plurality of client computers, the method comprising:
-
assigning a level of service to each client computer of the plurality of client computers for determining a frequency of performing software updates, wherein a first level of service requires a first length of time in which the software updates are to be applied after being detected, and the second level of service requires a second length of time during which the software updates are to be applied after being detected, different from said first length of time; using a particular client computer of the plurality of client computers as a reference client computer, wherein the reference client computer has a standard image representing the plurality of client computers used to generate a template of approved updates for facilitating update detection and deployment; establishing a file to record information including updates approved for the reference client computer; scanning the reference client computer in a template mode to generate a list of the approved updates to be applied to the standard image on the reference client computer; incorporating the list of the approved updates into the template, wherein the approved updates needed for the plurality of client computers are a subset of updates indentified from a larger update package; deploying the template of approved updates to the plurality of client computers; and initiating software updates to the plurality of client computers according to the template of approved updates and the assigned level of service. - View Dependent Claims (38)
-
-
39. A processor-readable medium comprising processor-executable instructions that, when executed by a processor, instruct the processor to perform a method for performing software updates, the method comprising:
-
assigning a level of service to each client computer of a plurality of client computers for determining a frequency of performing software updates; receiving a plurality of software updates from a trusted website; grouping a subset of the plurality of software updates into a package; partitioning the package to divide trusted ones of the software updates from un-trusted ones of the software updates; distributing the package to a plurality of client-computers; associating the plurality of client-computers into groups; establishing a change time-window for each of the groups; expressing to each particular one of the plurality of client-computers, which software updates in the package are suitable and trusted for consumption by the particular client-computer; installing updates on each of the plurality of clients within the change time-window established for the group the client is a member of; installing the un-trusted software updates only on client-computers configured to install un-trusted software updates; setting a failsafe timeout for each installation on each client computer with reference to an anticipated duration of installation of each software update on each client computer; monitoring the failsafe timeout for each software update on each particular client computer; determining if the failsafe timeout for each software update on a particular client computer is greater than time remaining within the change time-window for update installation on the particular client computer, and if so, suspending installation of the software update on the particular client computer.
-
Specification