Patent ID: 7665081

Claim:
A method of software updates, the method comprising: (a) at a server, generating a set of differences between a latest version of a file and a plurality of prior versions of the file, wherein the differences convert any of the plurality of prior versions into the latest version, but not to any other version; (b) publishing the set of differences for downloads by clients, wherein, when size overhead from downloading and applying a difference is greater than size overhead associated with downloading an entire file, that difference is not published; (c) in response to a client requesting an update to a client's version of the file and the client providing an identifier that defines the client's version of the file, providing, to the client, a difference between the client's version of the file and a latest version of the file; (d) maintaining a state description file representing files subject to update, wherein the state description file is downloaded to the client, and wherein the client requests the update based on the state description file; and (e) removing at least some earlier-generated differences.