IP Library Granted Patent US 8,074,213
Granted Patent B1
US 8,074,213 · App. 11/502,681 · Granted Dec 6, 2011

Automatic software updates for computer systems in an enterprise environment

Assignee: Symantec Operating Corporation
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 8,074,213
App. No.
11/502,681
Filed
Aug 11, 2006
Granted
Dec 6, 2011
Kind
B1
Art Unit
2193
USPC
717/172
Abstract

A system and method for automatically updating a software application deployed on a plurality of client computers are disclosed. A server computer may determine a time for the client computers to update the software application and send an update command to each of the client computers at the determined time. In response to the update command, each client computer may download an update for the software application and install the update for the software application.

Claims (54)

1. A method for updating a software application on a plurality of client computers, the method comprising:

a first server computer determining a time for each respective client computer of the plurality of client computers to update the software application, wherein the software application on each respective client computer is configured to perform data backup operations, wherein determining the time for each respective client computer to update the software application comprises monitoring the software application on the respective client computer to determine a time when the software application is not performing a data backup operation;

the first server computer sending an update command to each respective client computer at the time determined for the respective client computer;

each respective client computer communicating with a second server computer in response to the update command to determine whether an update is available for the software application on the respective client computer, wherein each one of a first subset of the client computers receives information from the second server computer indicating that an update is available, and wherein each one of a second subset of the client computers receives information from the second server computer indicating that no update is available;

in response to receiving information from the second server computer indicating that an update is available, each respective client computer of the first subset of client computers downloading respective update information and using the respective update information to update the software application on the respective client computer;

each respective client computer of the first subset of client computers sending status information to the first server computer indicating that the software application was updated on the respective client computer; and

in response to receiving information from the second server computer indicating that no update is available, each respective client computer of the second subset of client computers sending status information to the first server computer indicating that no update is available for the software application on the respective client computer.

2. The method of claim 1 , further comprising:

creating a policy for updating the software application in response to user input; and

configuring the first server computer with the policy for updating the software application;

wherein the first server computer uses the policy in determining the time for each respective client computer to update the software application.

3. The method of claim 2 ,

wherein said creating the policy comprises receiving user input specifying one or more of:

a time window when the software application can be updated; and/or

a maximum number of concurrent software updates.

4. The method of claim 1 , further comprising:

the first server computer monitoring resources of the client computers;

wherein said determining the time for the each respective client computer to update the software application further comprises determining the time based on availability of resources of the respective client computer.

5. The method of claim 1 ,

wherein each respective client computer of the first subset of client computers downloads the update information from the second server computer.

6. The method of claim 1 ,

wherein each of the client computers receives the update command from the first server computer substantially simultaneously.

7. The method of claim 1 ,

wherein the plurality of client computers include a first one or more client computers executing a first operating system and a second one or more client computers executing a second operating system.

8. A system comprising:

a first server computer;

a second server computer; and

a plurality of client computers, wherein each of the client computers is configured to execute a software application, wherein the software application on each client computer is configured to perform data backup operations;

wherein the first server computer is configured to determine a time for each respective client computer of the plurality of client computers to update the software application by monitoring the software application on the respective client computer to determine a time when the software application is not performing a data backup operation;

wherein the first server computer is configured to send an update command to each of the respective client computer at the time determined for the respective client computer;

wherein each respective client computer is configured to communicate with the second server computer in response to the update command to receive information indicating whether an update is available for the software application on the respective client computer, wherein an update is available for each one of a first subset of the client computers, and wherein no update is available for each one of a second subset of the client computers;

wherein, in response to receiving information from the second server computer indicating that an update is available, each respective client computer of the first subset of client computers is configured to download respective update information and use the respective update information to update the software application on the respective client computer;

wherein each respective client computer of the first subset of client computers is configured to send status information to the first server computer indicating that the software application was updated on the respective client computer; and

wherein, in response to receiving information from the second server computer indicating that no update is available, each respective client computer of the second subset of client computers is configured to send status information to the first server computer indicating that no update is available for the software application on the respective client computer.

9. The system of claim 8 ,

wherein the first server computer is configured to store a policy for updating the software application, wherein the policy is created in response to user input;

wherein the first server computer is further configured to use the policy in determining the time for each respective client computer to update the software application.

10. The system of claim 9 ,

wherein the policy specifies one or more of:

a time window when the software application can be updated; and/or

a maximum number of concurrent software updates.

11. A computer-accessible storage medium storing program instructions,

wherein the program instructions are executable by a first server computer to cause the first server computer to determine a time for each respective client computer of a plurality of client computers to update a software application, wherein the software application on each respective client computer is configured to perform data backup operations, wherein the program instructions are executable to cause the first server computer to determine the time for each respective client computer to update the software application by monitoring the software application on the respective client computer to determine a time when the software application is not performing a data backup operation;

wherein the program instructions are executable by the first server computer to cause the first server computer to send an update command to each respective client computer at the time determined for the respective client computer;

wherein the program instructions are executable by each respective client computer to cause the respective client computer to communicate with the second server computer in response to the update command to receive information indicating whether an update is available for the software application on the respective client computer, wherein an update is available for each one of a first subset of the client computers, and wherein no update is available for each one of a second subset of the client computers;

wherein, in response to receiving information from the second server computer indicating that an update is available, the program instructions are executable by each respective client computer of the first subset of client computers to cause the respective client computer to download respective update information and use the respective update information to update the software application on the respective client computer;

wherein the program instructions are executable by each respective client computer of the first subset of client computers to cause the respective client computer to send status information to the first server computer indicating that the software application was updated on the respective client computer; and

wherein, in response to receiving information from the second server computer indicating that no update is available, the program instructions are executable by each respective client computer of the second subset of client computers to cause the respective client computer to send status information to the first server computer indicating that no update is available for the software application on the respective client computer.

12. The computer-accessible storage medium of claim 11 ,

wherein the program instructions are executable by the first server computer to cause the first server computer to store a policy for updating the software application and to use the policy in determining the time for each respective client computer to update the software application.

13. The computer-accessible storage medium of claim 12 ,

wherein the policy specifies one or more of:

a time window when the software application can be updated; and/or

a maximum number of concurrent software updates.

Assignments (15)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 019872 FRAME 979. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE IS SYMANTEC OPERATING CORPORATION. Recorded Mar 5, 2012
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 027819/0462 →
CHANGE OF NAME Recorded Sep 26, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 019872/0979 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2006
From: HOLTZ, KEVIN
To: VERITAS OPERATING CORPORATION
Reel/Frame 018179/0176 →