System and method for a software distribution service
First Claim
1. A method of communicating between a client computing device process and a server process, in a distributed processing system, the method comprising:
- (a) issuing, by the client process, a synchronization request, wherein the synchronization request includes an identifier of an installed software update if the client computing device stores the installed software update;
(b) receiving, by the server process, the synchronization request;
(c) selecting, by the server process, an additional software update if the synchronization request comprises an identifier of at least one software update, wherein the selection of the additional software update is dependent on the fulfillment of a prerequisite defined in the additional software update, wherein the prerequisite requires the synchronization request to include an identifier for at least one specific software update (d) selecting, by the server process, a first level software update having a null value as a prerequisite if it is determined that the synchronization request does not comprise an identifier of at least one software update;
(e) issuing, by the server process, an instruction component of the selected software update;
(f) receiving, by the client process, the instruction component of the selected software update; and
(g) storing, by the client process, the instruction components of the selected software update in the client computing device as an installed software update if the client computing device contains at least one component that fulfills a condition of an applicability rule stored in the selected software update.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention is directed to a system and method for managing software updates. More specifically, the present invention is directed to a system and method for facilitating the selection and implementation of software updates while minimizing the bandwidth and processing resources required to select and implement the software updates. In accordance with an aspect of the present invention, a software update service controls access to software updates stored on servers. In accordance with another aspect, the software update service synchronizes with client machines to identify applicable updates.
-
Citations
25 Claims
-
1. A method of communicating between a client computing device process and a server process, in a distributed processing system, the method comprising:
-
(a) issuing, by the client process, a synchronization request, wherein the synchronization request includes an identifier of an installed software update if the client computing device stores the installed software update;
(b) receiving, by the server process, the synchronization request;
(c) selecting, by the server process, an additional software update if the synchronization request comprises an identifier of at least one software update, wherein the selection of the additional software update is dependent on the fulfillment of a prerequisite defined in the additional software update, wherein the prerequisite requires the synchronization request to include an identifier for at least one specific software update (d) selecting, by the server process, a first level software update having a null value as a prerequisite if it is determined that the synchronization request does not comprise an identifier of at least one software update;
(e) issuing, by the server process, an instruction component of the selected software update;
(f) receiving, by the client process, the instruction component of the selected software update; and
(g) storing, by the client process, the instruction components of the selected software update in the client computing device as an installed software update if the client computing device contains at least one component that fulfills a condition of an applicability rule stored in the selected software update. - View Dependent Claims (2, 3, 4, 5, 6, 15, 16, 17, 18)
-
-
7. The method as recited in claim 7, wherein the method further comprises:
-
integrating, by the client process, an identifier of the failed software update in the synchronization request;
restricting, by the server process, the issuance of the selected software update if the selected software update is related to the failed software update.
-
-
8. A method of communicating between a client computing device process and a server process, in a distributed processing system, the method comprising:
-
(a) issuing, by the client process, an authorization request, wherein the authorization request contains an identifier of a client authorization module associated with a target group;
(b) receiving, by the server process, the authorization request;
(c) issuing, by the server process, a server cookie identifying the target group if the server process detects the presence of a server software module associated with the target group;
(d) receiving, by the client process, the server cookie identifying the target group;
(e) issuing, by the client process, an update request for at least one software update, wherein the request contains the server cookie;
(f) receiving, by the server process, the update request;
(g) issuing, by the server process, a software update if the software update is associated with the target group identified in the server cookie; and
(h) receiving, by the client process, the software update if the software update is associated with the target group identified in the server cookie. - View Dependent Claims (9, 10, 11, 12, 13, 22, 23, 24, 25)
-
-
14. A system for communicating and managing software updates, the system comprising:
-
(a) a first database storing a plurality of software updates, wherein an individual software update stored in the database comprises;
(i) an instruction data field containing an applicability rule defining at least one condition, wherein the applicability rule can include a null value, wherein the instruction component contains a set of prerequisites that identify one or more software updates that are required for installation of the individual software update, and wherein the set of prerequisites can include a null value;
(ii) a localized data field containing text data describing general information related to the individual software update; and
(iii) a data component that identifies at least one data stream file associated with the individual software update;
(b) an authorization server for authorizing access to software updates stored in the first database, wherein the authorization server issues a server cookie for allowing a client computing device to access to the individual software update if the client computing device contains an authorization module indicating that the client computing device is associated with a target group, wherein the server cookie contains an identifier for the target group, and wherein the server cookie is communicated to the client computing device for storage of the server cookie;
(c) a metadata server for providing updates to the client computing device, wherein a software update is communicated to the client computing device if the software update is associated with the target group, wherein the metadata server is communicatively coupled to said first database, and wherein the metadata server is operable to;
(i) obtain a synchronization request, wherein the synchronization request includes an identifier of an installed software update if the client computing device stores the installed software update, wherein the synchronization request includes the server cookie;
(ii) select an additional software update for communication to the client computing device if the synchronization request comprises an identifier of at least one installed software update, wherein the selection of the additional software update is dependent on the fulfillment of a prerequisite defined in the additional software update, wherein the prerequisite requires the synchronization request to include an identifier for at least one installed software update, wherein the additional software update is associated with the target group identified in the server cookie;
(iii) select a first level software update for communication to the client computing device if the synchronization request does not comprise an identifier of at least one installed software update, wherein the first level software updates do not include a prerequisite;
(iv) communicate an instruction component of the selected software update to the client computing device for storage;
(v) obtain a request for localized data associated with the selected software update;
(vi) communicating localized data associated with the selected software update to the client computing device, wherein the localized data allows the client computing device to generate a download request for receipt of a data component of the selected software update;
(d) a download server communicatively coupled to said first database, and the download server is operable to;
(i) obtain the download request from the client computing device, wherein the download request identifies the data component of the selected software update; and
(ii) communicate the data component of the selected software update to the client computing device.
-
-
19. A system for updating data on a client computing device, the system comprising:
-
a first database storing a plurality of delta patches;
a server computer communicatively coupled to said first database and to the client computing device, said server computer operable to;
obtain a selection of one or more available software updates for updating one or more files installed on the client computing device;
obtain a self-extracting file identifying a plurality of available delta patches for updating at least one version of an installed file;
obtain an inventory of the one or more files installed on the client computing device;
select one or more applicable delta patches to implement the selected software updates, wherein selecting the one or more applicable patches corresponds to a mapping of the self-extracting file identifying the plurality of available delta patches to the inventory of the one or more files installed on the client computing device; and
transmit a request for one or more selected delta patches.
-
-
20. A system for communicating software updates to a client computing device, the system comprising:
-
a first component storing a plurality of a server authorization modules, wherein an individual server authorization module identifies a target group;
a server computer communicatively coupled to said first component, said server computer operable to;
obtain an authorization request from the client computing device, wherein the authorization request contains an identifier of a client authorization module stored on the client computing device;
determine if the client computing device is associated with the target group, wherein it is determined that the client computing device is associated with the target group if the client authorization module indicates that the client computing device is associated with the target group;
communicate a server cookie from the software update service to the client computing device if it is determined that the client computing device is associated with the target group, wherein the server cookie identifies the target group;
obtain a request for at least one software update stored on the software update service, wherein the request contains the server cookie;
in response to obtaining the request, determine if a software update is associated with the target group identified in the server cookie; and
if it is determined that the software update is associated with the target group identified in the server cookie, communicate the software update from the software update service to the client computing device.
-
-
21. A computer-readable medium having stored thereon a data structure of an individual software update, comprising:
-
an instruction data field containing an applicability rule defining at least one condition, wherein the applicability rule can be a null value, wherein the instruction component contains a set of prerequisites that identify one or more software updates that are required for installation of the individual software update, and wherein the set of prerequisites can be a null value;
a localized data field containing text data describing general information related to the individual software update; and
a data component that identifies at least one data stream file associated with the individual software update.
-
Specification