IP Library Granted Patent US 7,555,551
Granted Patent B1
US 7,555,551 · App. 11/216,438 · Granted Jun 30, 2009

Automatic controllable deployment of software updates

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,555,551
App. No.
11/216,438
Granted
Jun 30, 2009
Kind
B1
Abstract

Risk of inadvertent introduction of software bugs to a large number of users during a software update is minimized using an automatic mechanism controlling update release. A value-generating module generates a value for a computer, the value falling within a population range of values. A specification module receives update information in an update deployment specification. The information specifies an eligibility window during which a specified portion of the population range is eligible to retrieve an update. The specification can include fields, such as a code selector, a value offset, a start time, etc. An eligibility determination module applies rules to automatically determine eligibility of the computer to retrieve the software update. The computer is determined eligible when the value for the computer falls within the specified portion of the population range for the eligibility window. An update module permits the computer to retrieve the software update based on the eligibility determination.

Claims (43)

1. A computer program product comprising a computer-readable storage medium having executable computer program logic embodied therein for executing on a computer system to controllably release software updates to a sample of computers with updateable software, the computer program logic comprising:

a value-generating module for generating a value for a computer, the value falling within a population range of possible values, the population range spanning a set of values for each computer that will be retrieving the software update;

a specification module for receiving update information in an update deployment specification, the information specifying an eligibility window during which a specified portion of the population range is eligible to retrieve a software update;

an eligibility determination module for applying rules to automatically determine eligibility of the computer to retrieve the software update, the computer being determined eligible when the value for the computer falls within the specified portion of the population range for the eligibility window; and

an update module for permitting the computer to retrieve the software update.

2. The computer program product of claim 1 , wherein the value generated for the computer does not affect the probability of which value will be generated for a second computer.

3. The computer program product of claim 1 , wherein the update deployment specification comprises a value offset field for specifying an offset number that is added to the value for the computer.

4. The computer program product of claim 3 , wherein the offset number randomizes a starting point for deployment of software updates so that a different computer initially receives each software update during each deployment.

5. The computer program product of claim 1 , wherein the update deployment specification comprises an update start time field for specifying a start time for deployment of the software update.

6. The computer program product of claim 1 , wherein the specified portion is a percentage of the population range and the update deployment specification comprises an incremental percentage field for specifying incremental percentages of values within the population range to receive the software update.

7. The computer program product of claim 6 , wherein the update deployment specification comprises a time window field for specifying lengths of time during which computers with values falling within the incremental percentages of values can retrieve the software update.

8. The computer program product of claim 1 , wherein the computer being determined eligible when the value for the computer falls within the specified portion of the population range for the eligibility window further comprises the computer being determined eligible when current time is within a time window specified in the update deployment specification.

9. The computer program product of claim 8 , wherein the computer being determined eligible when current time is within a time window specified in the update deployment specification further comprises the computer being determined eligible when the value for the computer falls below a calculated upper bound of values for computers eligible to receive the update for the time window, the upper bound being calculated based on the update information in the update deployment specification.

10. The computer program product of claim 1 , wherein the update deployment specification comprises a code selector field for specifying a particular region in which automatic deployment of the software update will occur.

11. A method of controllably releasing software updates to a sample of computers with updateable software, the method comprising:

generating a value for a computer, the value falling within a population range of possible values, the population range scanning a set of values for each computer that will be retrieving the software update;

receiving update information in an update deployment specification, the information specifying an eligibility window during which a specified portion of the population range is eligible to retrieve a software update;

applying rules to automatically determine eligibility of the computer to retrieve the software update, the computer being determined eligible when the value for the computer falls within the specified portion of the population range for the eligibility window; and

permitting the computer to retrieve the software update based on the eligibility determination.

12. The method of claim 11 , wherein receiving update information in an update deployment specification further comprises receiving a value offset number that is added to the value for the computer, the offset number randomizing a starting point for deployment of software updates so that a different computer initially receives each software update during each deployment.

13. The method of claim 11 , wherein receiving update information in an update deployment specification further comprises receiving a start time for deployment of the software update.

14. The method of claim 11 , wherein the specified portion is a percentage of the population range and wherein receiving update information in an update deployment specification further comprises receiving incremental percentages of values within the population range to retrieve the software update.

15. The method of claim 14 , wherein receiving update information in an update deployment specification further comprises receiving time windows during which computers with values falling within the incremental percentages of values can retrieve the software update.

16. The method of claim 11 , wherein the computer being determined eligible when the value for the computer falls within the specified portion of the population range for the eligibility window further comprises the computer being determined eligible when current time is within a time window specified in the update deployment specification.

17. The method of claim 16 , wherein the computer being determined eligible when current time is within a time window specified in the update deployment specification further comprises the computer being determined eligible when the value for the computer falls within an incremental percentage of computers eligible to receive the update for the time window.

18. The method of claim 11 , further comprising automatically increasing the specified portion over specified time windows according to the update deployment specification to increase percentage of computers eligible to receive the update over time.

19. The method of claim 11 , further comprising:

determining that the value for the computer falls within the specified portion for a current time window; and

permitting the computer to retrieve the update.

20. The method of claim 11 , wherein receiving update information in an update deployment specification further comprises receiving a regional code selection specifying a particular region in which automatic deployment of the software update will occur.

21. A system for controllably releasing software updates to a sample of computers with updateable software, the system comprising:

a value-generating module for generating a value for a computer, the value falling within a population range of possible values, the population range scanning a set of values for each computer that will be retrieving the software update;

a specification module for receiving update information in an update deployment specification, the information specifying an eligibility window during which a specified portion of the population range is eligible to retrieve a software update;

an eligibility determination module for applying rules to automatically determine eligibility of the computer to retrieve the software update, the computer being determined eligible when the value for the computer falls within the specified portion of the population range for the eligibility window; and

an update module for permitting the computer to retrieve the software update based on the eligibility determination.

22. The system of claim 21 , wherein the update deployment specification comprises a value offset field for specifying an offset number that is added to the value for the computer, the offset number randomizing a starting point for deployment of software updates so that a different computer initially receives each software update during each deployment.

23. The system of claim 21 , wherein the update deployment specification comprises an update start time field for specifying a start time for deployment of the software update.

24. The system of claim 23 , wherein the update deployment specification comprises a time window field for specifying windows of time during which computers with values falling within specified portions of the population range can retrieve the software update.

25. The system of claim 24 , wherein the windows of time are calculated starting from the start time.

26. The system of claim 21 , wherein the update deployment specification comprises an incremental percentage field for specifying incremental percentages of values within the population range to receive the software update.

27. The system of claim 21 , wherein the eligibility determination module determines the computer eligible when the current time falls within a time window specified in the update deployment specification and the value for the computer falls within a specified percentage of the population range for the time window.

28. The system of claim 21 , wherein the specified portion automatically increases over time windows according to the update deployment specification thereby increasing percentage of computers eligible to receive the update over time.

29. The system of claim 21 , wherein the eligibility determination is conducted on an entity selected from the group consisting of: a client computer and a server.

Assignments (5)
NOTICE OF SUCCESSION OF AGENCY (REEL 050926 / FRAME 0560) Recorded Sep 13, 2022
From: JPMORGAN CHASE BANK, N.A.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 061422/0371 →
SECURITY AGREEMENT Recorded Sep 13, 2022
From: NORTONLIFELOCK INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062220/0001 →
CHANGE OF NAME Recorded Jun 18, 2020
From: SYMANTEC CORPORATION
To: NORTONLIFELOCK INC.
Reel/Frame 053306/0878 →
SECURITY AGREEMENT Recorded Nov 4, 2019
From: SYMANTEC CORPORATION; BLUE COAT LLC; LIFELOCK, INC,; SYMANTEC OPERATING CORPORATION
To: JPMORGAN, N.A.
Reel/Frame 050926/0560 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2005
From: MCCORKENDALE, BRUCE; SOBEL, WILLIAM E.
To: SYMANTEC CORPORATION
Reel/Frame 016949/0567 →