IP Library Granted Patent US 7,555,749
Granted Patent B2
US 7,555,749 · App. 10/385,391 · Granted Jun 30, 2009

Software updating system and method

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,749
App. No.
10/385,391
Granted
Jun 30, 2009
Kind
B2
Abstract

In one embodiment, a server/client system, configured to update client software, generates audit data by analyzing a client's file configuration with respect to rules within an update catalog. The audit data is then moved to the server, where updates indicated by the audit data may be approved. The approved updates are then distributed from the server to the client for installation.

Claims (80)

1. A method by which a server assists client computers to install software updates comprising:

maintaining an update catalog on the server and pushing the update catalog from the server to the client computers via a network, wherein the update catalog includes update information identifying available updates;

generating audit data on the client computers based on queries made to operating systems of client computers and queries to the update catalog sent to the client computers, wherein the audit data is generated according to a data structure, comprising:

a first data field containing data indicating a file within the client's file configuration;

a second data field containing data indicating if an update is applicable to the file indicated in the first data field;

a third data field containing data indicating when existence of the update to the file was detected in the update catalog;

a fourth data field containing data indicating when the update to the file was authorized; and

a fifth data field containing data indicating when the update to the file was applied;

receiving, at the server, the audit data, wherein the audit data is analyzed and approved updates selected;

distributing the approved updates to the client computers; and

installing the approved updates on the client computers, wherein the installing comprises:

executing a scan tool on each client, wherein the scan tool provides a just-in-time assessment of software on the client and thereby supersedes the audit data and determines if a status of files on the client has changed; and

intersecting results of the just-in-time assessment with approved updates distributed to the client, and installing updates that are both approved by the server and indicated by the just-in-time assessment.

2. A method of claim 1 , wherein the update catalog includes rules and file version information, and the generating of the audit data of a client comprises:

applying the rules to the file version information to produce the audit data; and

checking the audit data to see if available updates obviate a need for any updates identified by the audit data.

3. A method as recited in claim 1 , further comprising:

associating the installable updates with rebooting instructions.

4. A method as recited in claim 3 , wherein the rebooting instructions comprise further instructions selected from a group of instructions comprising:

rebooting after installation of an exclusive primary update;

rebooting only if indicated after installation of an update; and

suppressing a reboot after installation of an update.

5. A method as recited in claim 1 , further comprising:

obtaining a success code resulting from the installation of the approved update; and

mapping the success code for consistency in success code meaning.

6. A method as recited in claim 1 , further comprising:

an indication of time elapsed from the indication that the update is applicable to the indication that the update was applied.

7. A method as recited in claim 1 , wherein generating the audit data comprises:

obtaining specific information about files stored on a client; and

preparing the audit data for a client by using rules in the update catalog to determine which updates are needed based on the specific information.

8. A method as recited in claim 1 , wherein selecting the approved updates comprises:

providing a user interface on the one or more servers for selection of approved updates; and

obtaining the approved updates based on selections made within the user interface.

9. A method as recited in claim 1 , further comprising synchronizing the update catalog on the server with an authority to keep the update catalog current.

10. A method as recited in claim 1 , further comprising:

obtaining rules for the update catalog as an XML document from an update authority;

checking a code to determine if the XML document has been tampered with; and

storing the XML document in a package for transmission to the client.

11. A method by which one or more servers assists client computers to install software updates comprising:

pushing an update catalog from the server to the clients via a network, wherein the update catalog includes update information identifying available updates, including indicia of files to which the available updates apply, wherein the update information can be compared by the clients to inventory thereof to identify updates individually applicable to the clients;

receiving, from the clients, audit data identifying candidate updates individually applicable to the respective clients, the audit data having been generated by automated tools at the clients that perform audits of the clients by comparing inventory of the client computers against the update information in the catalog, wherein the audit data is generated according to a data structure, comprising:

a first data field containing data indicating a file within the client's file configuration;

a second data field containing data indicating if an update is applicable to the file indicated in the first data field;

a third data field containing data indicating when existence of the update to the file was detected in the update catalog;

a fourth data field containing data indicating when the update to the file was authorized; and

a fifth data field containing data indicating when the update to the file was applied;

determining, at the one or more servers, based on the audit data from the clients, which candidate updates to push to which of the clients; and

pushing to the clients installable updates that correspond to the determined candidate updates, where one or more updates sent to a client correspond to one or more candidate updates identified by that client and determined for installation by the one or more servers.

12. A method of claim 11 , wherein the update catalog includes rules and file version information, and an audit of a client comprises:

applying the rules to the file version information to produce the audit data; and

checking the audit data to see if available updates obviate a need for any updates identified by the audit data.

13. A method as recited in claim 11 , further comprising:

associating a grace period and an enforcement period with the installable updates;

allowing a user to defer the installable updates during the grace period; and

enforcing installation of the installable updates during the enforcement period.

14. A method as recited in claim 11 , further comprising:

associating the installable updates with rebooting instructions.

15. A method as recited in claim 14 , wherein the rebooting instructions comprise further instructions selected from a group of instructions comprising:

rebooting after installation of an exclusive primary update;

rebooting only if indicated after installation of an update; and

suppressing a reboot after installation of an update.

16. A method as recited in claim 11 , further comprising:

installing an approved update on a client from among the approved updates;

obtaining a success code resulting from the installation of the approved update; and

mapping the success code for consistency in success code meaning.

17. A method as recited in claim 11 , further comprising:

an indication of time elapsed from the indication that the update is applicable to the indication that the update was applied.

18. A method as recited in claim 11 , wherein an audit of a client comprises:

obtaining specific information about files stored on a client; and

preparing the audit data for a client by using rules in the update catalog to determine which updates are needed based on the specific information.

19. A method as recited in claim 11 , wherein determining which candidate updates to install comprises:

providing a user interface on the one or more servers for selection of approved updates; and

obtaining the approved updates based on selections made within the user interface.

20. A method as recited in claim 11 , further comprising synchronizing the update catalog with an authority to keep the update catalog current.

21. A method as recited in claim 11 , further comprising:

obtaining rules for the update catalog as an XML document from an update authority;

checking a code to determine if the XML document has been tampered with; and

storing the XML document in a package for transmission to the client.

22. A method as recited in claim 11 , further comprising:

maintaining a scan tool cache on a client to include current audit data to prevent installation of an unneeded update.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2003
From: WICKHAM ROBERT T.; DEO, VINAY; KHAN, SHAFQAT U.; SARDESAI, SHANTANU; WELKER, ADAM D.
To: MICROSOFT CORPORATION
Reel/Frame 013866/0563 →