The risk of inadvertent introduction of software bugs to a large number of users during a software update is minimized by controlling updates using a uniform mechanism of sending updates to seed users. A value-generating module generates a value for a computer, the value falling within a population range of values. A sampling range-generating module generates a sampling range of values as a proper subset of the population range, the probability of the random value falling within the sampling range being predetermined. An eligibility determination module determines whether the computer is eligible to receive a software update, the computer being determined eligible when the random value for the computer falls within the sampling range, and an update module provides the software update to the computer based on the eligibility determination. In some embodiments, a problem review module determines whether the update has caused a problem for computers receiving the update.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer program product comprising a non-transitory computer-readable medium having computer program logic embodied therein for controllably providing software updates from an update server to a random sample of computers with updateable software, the computer program logic comprising: a sampling range-generating module for generating at the update server a sampling range of values as a proper subset of a population range of possible values; a receiving module for receiving at the update server from a computer a generated random value, the random value falling within the population range; an eligibility determination module for determining at the update server whether the computer is eligible to receive a software update, the computer being determined eligible responsive to whether the received random value falls within the sampling range; and an update module for providing the software update from the update server to the computer based on the eligibility determination.
2. The computer program product of claim 1 , wherein the random value received from the computer is a multi-dimensional number that allows provision of software updates to the computer to be controlled according to multiple variables.
3. The computer program product of claim 2 , wherein the multi-dimensional number includes a number based on a country in which the computer is located and controls provision of software updates to the computer according to the country.
4. The computer program product of claim 2 , wherein the multi-dimensional number includes a number based on a risk tolerance of a user of the computer and controls provision of software updates to the computer according to the risk tolerance.
5. The computer program product of claim 1 , further comprising: a problem review module for determining whether the software update has caused a problem for the computer receiving the update; and the sampling range-generating module generating a broader sampling range to include more random values within the sampling range in response to a determination by the problem review module that the software update has not caused substantial problems for the computer receiving the update, wherein the sampling range of values is stored in a file that is updated over time as the sampling range-generating module generates broader sampling ranges.
6. The computer program product of claim 1 , wherein the random value received from the computer is maintained for the computer for more than one software update.
7. The computer program product of claim 1 , wherein the sampling range-generating module automatically generates broader sampling ranges over time according to set parameters to provide updates to an increasing number of computers.
8. A method of controllably providing software updates from an update server to a random sample of computers with updateable software, the method comprising: generating at the update server a sampling range of values as a proper subset of a population range of possible values; receiving at the update server from a computer a generated random value, the random value falling within the population range; determining at the update server whether the computer is eligible to receive a software update, the computer being determined eligible responsive to whether the received random value falls within the sampling range; and providing the software update from the update server to the computer based on the eligibility determination.
9. The method of claim 8 , wherein the random value received from the computer is a multi-dimensional number that allows provision of software updates to the computer to be controlled according to multiple variables.
10. The method of claim 8 , further comprising: determining whether the software update has caused a problem for the computer receiving the update; and generating a broader sampling range to include more random values within the sampling range in response to a determination that the software update has not caused substantial problems for the computer receiving the update, wherein the sampling range of values is stored in a file that is updated over time over time as broader sampling ranges are generated.
11. The method of claim 8 , automatically generating a broader sampling range over time according to set parameters to provide updates to an increasing number of computers.
12. The method of claim 8 , further comprising generating a different sampling range of values for a second software update.
13. The method of claim 8 , wherein the multi-dimensional number includes a number based on a country in which the computer is located and controls provision of software updates to the computer according to the country.
14. The method of claim 8 , wherein the multi-dimensional number includes a number based on a risk tolerance of a user of the computer and controls provision of software updates to the computer according to the risk tolerance.
15. A system for controllably providing software updates from an update server to a random sample of computers with updateable software, the system comprising: a processor for executing computer program logic; and a non-transitory computer-readable medium having executable computer program logic embodied therein comprising: a sampling range-generating module for generating at the update server a sampling range of values as a proper subset of a population range of possible values; a receiving module for receiving at the update server from a computer a generated random value, the random value falling within the population range; an eligibility determination module for determining at the server whether the computer is eligible to receive a software update, the computer being determined eligible responsive to whether the received random value falls within the sampling range; and an update module for providing the software update from the update server to the computer based on the eligibility determination.
16. The system of claim 15 , wherein the random value received from the computer is a multi-dimensional number that allows provision of software updates to the computer to be controlled according to multiple variables, the multi-dimensional number comprising a plurality of numbers.
17. The system of claim 15 , further comprising: a problem determination module for determining whether the software update has caused a problem for computers receiving the update; and the sampling range-generating module generating a broader sampling range to include more random values within the sampling range in response to a determination by the problem review module that the software update has not caused substantial problems for the computers receiving the update.
18. The system of claim 17 , wherein the sampling range of values is stored in a file that is updated over time as the sampling range-generating module generates broader sampling ranges.
19. The system of claim 15 , wherein the sampling range-generating module automatically generates broader sampling ranges over time according to set parameters to provide updates to an increasing number of computers.
20. The system of claim 15 , wherein the multi-dimensional number includes a number based on a country in which the computer is located that controls provision of software updates to the computer according to the country and a number based on a risk tolerance of a user of the computer that controls provision of software updates to the computer according to the risk tolerance.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
December 18, 2007
December 29, 2015
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.