← Back to Patent Explorer
US6493871B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and system for downloading updates for software installation

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1999-09-16
•
Granted: 2002-12-10
•
Expires: 2019-09-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for downloading software update data for installing a revised software product on a client computer minimizes the amount of update data to be transmitted over the network by downloading only those files needed to put the client computer in the state for installing the product. In the beginning of the downloading process, the client computer obtains from a setup server an initial setup package that includes a setup program and a list of files required for installing the software product. The setup program running on the client computer then determines whether some current or earlier versions of those files required for installation already exist on the client computer, and compiles a request list of files needed for updating the client computer. The client computer sends the request list to a download server, which maintains a collection of update files and patches. In response to the request list, the download server downloads updating files to the client. Depending of the availability of the requested files or other factors, the downloaded files may or may not be exactly those requested. Using the downloaded files, the setup program updates the existing files to provide the set of installation files on the client computer. The desired revised software product is then installed on the client computer.

Inventors

  • 👤 Thomas D. McGuire
  • 👤 Michael V. Sliger
  • 👤 Daniel C. Welch
  • 👤 Rajendra H. Vishnumurty
  • 👤 Gabriel J. Aul
  • 👤 Oliver I. Wallace
  • 👤 Gregory W. Nichols
  • 👤 Alan B. Auerbach

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 07:39
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/60; G06F8/65

Claims Analysis

Total Claims: 55
Claim 1
Independent Claim 136 words
A method of downloading update data to a client computer for installing a revised software product, comprising the steps of: obtaining by the client computer an installation file list listing files required for installing the revised software product; identifying existing files on the client computer corresponding to files listed in the installation file list; constructing, based on the installation file list and the identified existing files, a needed-files list indicating files needed for updating the existing files to provide the files required for installing the revised software product; transmitting a download request containing the neededfiles list to a download server; receiving a download reply containing downloaded files corresponding to the files on the needed-files list; and processing the downloaded files to update the existing files to provide the files required for installing the revised software product.
Claim 2
Independent Claim 136 words
A method of downloading update data to a client computer for installing a revised software product, comprising the steps of: obtaining by the client computer an installation file list listing files required for installing the revised software product; identifying existing files on the client computer corresponding to files listed in the installation file list; constructing, based on the installation file list and the identified existing files, a needed-files list indicating files needed for updating the existing files to provide the files required for installing the revised software product; transmitting a download request containing the neededfiles list to a download server; receiving a download reply containing downloaded files corresponding to the files on the needed-files list; and processing the downloaded files to update the existing files to provide the files required for installing the revised software product.
Claim 3
Dependent Claim 55 words
A method as in claim 1 , wherein the step of identifying identifies a first existing file that is an earlier version of a corresponding file on the installation file list, and wherein the step of constructing includes said first existing file to the needed-files list with identification data indicative of said first existing file.
Claim 4
Dependent Claim 20 words
A method as in claim 2 , wherein the identification data includes a hash value of said first existing file.
Claim 5
Dependent Claim 47 words
A method as in claim 2 , wherein the step of identifying includes comparing a hash value of said first existing file with a hash value of said corresponding file in the installation file list to determine whether said existing file and said corresponding file are identical.
Claim 6
Dependent Claim 35 words
A method as in claim 2 , wherein the step of processing includes determining whether the downloaded files includes a patch for said first existing file, and updating said first existing file with the patch.
Claim 7
Dependent Claim 40 words
A method as in claim 1 , wherein the step of identifying includes searching for an existing file in a target directory for a corresponding file in the installation file list, said target directory specified in the installation file list.
Claim 8
Dependent Claim 49 words
A method as in claim 1 , wherein the step of identifying determines there is no existing file on the client computer corresponding to a file on the installation file list, and the step of constructing includes said file on the installation file list on the needed-files list indicating.
Claim 9
Dependent Claim 27 words
A method as in claim 1 , wherein the step of obtaining includes receiving a script file containing at least a portion of said installation file list.
Claim 10
Dependent Claim 54 words
A method as in claim 1 , wherein the step of obtaining includes receiving a self-extracting setup package containing a setup program and a script file containing at least a portion of said installation file list, executing the setup package to extract the setup program and the script file, and executing the setup program.
Claim 11
Dependent Claim 44 words
A method as in claim 1 , wherein the step of obtaining includes receiving a setup program, a script file containing at least a portion of said installation file list, and an update file corresponding to a selected file on said installation file list.
Claim 12
Dependent Claim 44 words
A method as in claim 1 , wherein the step of obtaining includes sending a request for updating a selected component of the software program, and receiving a script file for said selected component containing at least a portion of said installation file list.
Claim 13
Dependent Claim 40 words
A method as in claim 11 , wherein the step of obtaining further including receiving a setup program and a master script containing setup information, and executing the setup program for receiving input for selecting said selected component for updating.
Claim 14
Dependent Claim 42 words
A method as in claim 1 , wherein the step of receiving receives the download reply as a stream, and step of processing separates downloaded files contained in a received portion of the stream before an end of the stream is received.
Claim 15
Dependent Claim 30 words
A method as in claim 13 , wherein the stream contains the download files in an order different from an order of respective corresponding requested files in the download request.
Claim 16
Dependent Claim 21 words
A method as in claim 14 , wherein the step of receiving includes dynamically identifying the downloaded files in the stream.
Claim 17
Dependent Claim 32 words
A method as in claim 1 , wherein the step of processing includes removing from the needed-files list files for which proper corresponding downloaded files have been received in the download reply.
Claim 18
Dependent Claim 33 words
A method as in claim 16 , further including the step of resubmitting the needed-files list when at least a file remains on the needed-files list after the download reply has been processed.
Claim 19
Dependent Claim 17 words
A method as in claim 1 , wherein the step of processing including decompressing selected downloaded files.
Claim 20
Dependent Claim 26 words
A method as in claim 1 , wherein the step of obtaining receives the installation file list from a setup server different from the download server.
Claim 21
Dependent Claim 29 words
A method as in claim 1 , wherein the step of constructing includes detecting a hardware configuration of the client computer to selectively include files in the needed-files list.
Claim 22
Dependent Claim 157 words
A computer-readable medium having computer-executable modules/components for downloading updates to a client computer for installing a revised software product, comprising: (a) a script component containing an installation file list listing files required for installing at least a portion of the revised software product; (b) a setup module for execution on the client computer to perform the steps of: identifying existing files on the client computer corresponding to the files listed in the installation file list; constructing, based on the installation file list and the identified existing files, a needed-files list indicating files needed for updating the existing files to provide the files required for installing the revised software product; transmitting a download request containing the needed files list to a download server; receiving a download reply containing downloaded files corresponding to files on the needed-files list; and processing the downloaded files to update the existing files to provide the files required for installing the revised software product.
Claim 23
Dependent Claim 157 words
A computer-readable medium having computer-executable modules/components for downloading updates to a client computer for installing a revised software product, comprising: (a) a script component containing an installation file list listing files required for installing at least a portion of the revised software product; (b) a setup module for execution on the client computer to perform the steps of: identifying existing files on the client computer corresponding to the files listed in the installation file list; constructing, based on the installation file list and the identified existing files, a needed-files list indicating files needed for updating the existing files to provide the files required for installing the revised software product; transmitting a download request containing the needed files list to a download server; receiving a download reply containing downloaded files corresponding to files on the needed-files list; and processing the downloaded files to update the existing files to provide the files required for installing the revised software product.
Claim 24
Dependent Claim 20 words
A computer-readable medium as in claim 21 , wherein the script component includes a network address of the download server.
Claim 25
Dependent Claim 16 words
A computer-readable medium as in claim 22 , wherein the network address is a relative address.
Claim 26
Dependent Claim 34 words
A computer-readable medium as in claim 21 , wherein the script component includes a master script file containing setup information and at least one component script for updating a component of the software product.
Claim 27
Dependent Claim 44 words
A computer-readable medium as in claim 21 , further comprising a self-extraction component combined with the script component and the setup module as a package and for execution on the client computer to extract the script component and the setup module from the package.
Claim 28
Dependent Claim 47 words
A computer-readable medium as in claim 21 , wherein the installation file list in the script component includes a sub-list of files to be copied to the client computer regardless of whether there are existing files on the client computer corresponding to the files on the sub-list.
Claim 29
Dependent Claim 42 words
A computer-readable medium as in claim 21 , wherein the installation file list in the script component includes a sub-list of files each to be copied to the client computer only when there is a corresponding existing file on the client computer.
Claim 30
Dependent Claim 56 words
A computer-readable medium as in claim 21 , wherein the step of identifying identifies a first existing file that is an earlier version of a corresponding file on the installation file list, and wherein the step of constructing includes said first existing file on the needed-files list with identification data indicative of said first existing file.
Claim 31
Dependent Claim 21 words
A computer-readable medium as in claim 28 , wherein the identification data includes a hash value of said first existing file.
Claim 32
Dependent Claim 48 words
A computer-readable medium as in claim 28 , wherein the step of identifying includes comparing a hash value of said first existing file with a hash value of said corresponding file in the installation file list to determine whether said existing file and said corresponding file are identical.
Claim 33
Dependent Claim 36 words
A computer-readable medium as in claim 28 , wherein the step of processing includes determining whether the downloaded files includes a patch for said first existing file, and updating said first existing file with the patch.
Claim 34
Dependent Claim 45 words
A computer-readable medium as in claim 21 , wherein the step of identifying includes searching for an existing file in a target directory for a corresponding file in the installation file list, said target directory specified in the installation file list in the script component.
Claim 35
Dependent Claim 49 words
A computer-readable medium as in claim 21 , wherein the step of identifying determines there is no existing file on the client computer corresponding to a file on the installation file list, and the step of constructing includes said file on the installation file list to the needed-files list.
Claim 36
Dependent Claim 43 words
A computer-readable medium as in claim 21 , wherein the step of receiving receives the download reply as a stream, and step of processing separates downloaded files contained in a received portion of the stream before an end of the stream is received.
Claim 37
Dependent Claim 30 words
A computer-readable medium as in claim 34 , wherein the stream contains the download files in an order different from an order of respective requested files in the download request.
Claim 38
Dependent Claim 33 words
A computer-readable medium as in claim 21 , wherein the step of processing includes removing from the needed-files list files for which proper corresponding downloaded files have been received in the download reply.
Claim 39
Dependent Claim 31 words
A computer-readable medium as in claim 36 , further including the step of resubmitting the needed-files list when files remain in the needed-files list after the download reply has been processed.
Claim 40
Dependent Claim 18 words
A computer-readable medium as in claim 21 , wherein the step of processing including decompressing selected downloaded files.
Claim 41
Dependent Claim 30 words
A computer-readable medium as in claim 21 , wherein the step of constructing includes detecting a hardware configuration of the client computer to selectively include files in the needed-files list.
Claim 42
Independent Claim 175 words
A method of downloading update data from a download server to a client computer for installing a revised software on a client computer, comprising the steps of: (a) receiving, by the download computer from the client computer, a download request containing a needed-files list listing a plurality of requested files, each requested file having associated identification data; (b) for each requested file: determining from the identification data of said each requested file, whether a patch or a full file corresponding to said each requested file is requested; when a full file is requested, including a full file corresponding to said each requested file in a download reply; when a patch is requested, determining whether said patch is in a download database of the download server, and (i) when said patch is in the download database, including said patch in the download reply; (ii) when said patch is not in the download database, including a full file corresponding to said each requested file in the download reply; (c) transmitting the download reply to the client computer.
Claim 43
Independent Claim 175 words
A method of downloading update data from a download server to a client computer for installing a revised software on a client computer, comprising the steps of: (a) receiving, by the download computer from the client computer, a download request containing a needed-files list listing a plurality of requested files, each requested file having associated identification data; (b) for each requested file: determining from the identification data of said each requested file, whether a patch or a full file corresponding to said each requested file is requested; when a full file is requested, including a full file corresponding to said each requested file in a download reply; when a patch is requested, determining whether said patch is in a download database of the download server, and (i) when said patch is in the download database, including said patch in the download reply; (ii) when said patch is not in the download database, including a full file corresponding to said each requested file in the download reply; (c) transmitting the download reply to the client computer.
Claim 44
Dependent Claim 20 words
A method as in claim 40 , wherein the step of transmitting transmits the download reply in a data stream.
Claim 45
Dependent Claim 34 words
A method as in claim 40 , wherein the step of determining whether said patch is in the download database searches for the patch based on a hash value of said each requested file.
Claim 46
Dependent Claim 36 words
A method as in claim 40 , wherein the step of transmitting transmits the downloaded files in the download reply in an order different from an order of the corresponding requested files in the download request.
Claim 47
Dependent Claim 24 words
A method as in claim 43 , wherein the step of transmitting dynamically adjusts the order of the downloaded files in the download reply.
Claim 48
Dependent Claim 152 words
A computer readable medium containing computer-readable instructions for operating a download server to perform the steps of: (a) receiving, by the download computer from a client computer, a download request containing a needed-files list listing a plurality of requested files, each requested file having identification data; (b) for each requested file: determining from the identification data of said each requested file whether a patch or a full file corresponding to said each requested file is requested; when a full file is requested, including a full file corresponding to said each requested file in a download reply; when a patch is requested, determining whether said patch is in available, and (i) when said patch is available, including said patch in the download reply; (ii) when said patch is not available, including a full file corresponding to said each requested file in the download reply; (c) transmitting the download reply to the client computer.
Claim 49
Dependent Claim 152 words
A computer readable medium containing computer-readable instructions for operating a download server to perform the steps of: (a) receiving, by the download computer from a client computer, a download request containing a needed-files list listing a plurality of requested files, each requested file having identification data; (b) for each requested file: determining from the identification data of said each requested file whether a patch or a full file corresponding to said each requested file is requested; when a full file is requested, including a full file corresponding to said each requested file in a download reply; when a patch is requested, determining whether said patch is in available, and (i) when said patch is available, including said patch in the download reply; (ii) when said patch is not available, including a full file corresponding to said each requested file in the download reply; (c) transmitting the download reply to the client computer.
Claim 50
Dependent Claim 21 words
A computer-readable medium as in claim 45 , wherein the step of transmitting transmits the download reply in a data stream.
Claim 51
Dependent Claim 35 words
A computer-readable medium as in claim 46 , wherein the step of determining whether said patch is in the download database searches for the patch based on a hash value of said each requested file.
Claim 52
Dependent Claim 37 words
A computer-readable medium as in claim 47 , wherein the step of transmitting transmits the downloaded files in the download reply in an order different from an order of the corresponding requested files in the download request.
Claim 53
Dependent Claim 25 words
A computer-readable medium as in claim 48 , wherein the step of transmitting dynamically adjusts the order of the downloaded files in the download reply.
Claim 54
Independent Claim 223 words
A system for downloading update data to a client computer for installing a revised software product, comprising: (a) a setup server having setup data for transmitting to the client computer, the setup data including a setup module and a script component, the script component having an installation file list listing files required for installing the revised software product, the setup module containing computer executable instructions for performing, when executed on the client computer, the steps of: identifying existing files on the client computer corresponding to the files listed in the installation file list; constructing, based on the installation file list and the identified existing files, a needed-files list indicating files needed for updating the existing files to provide the files required for installing the revised software product; transmitting a download request containing the needed-files list; receiving a download reply containing downloaded files corresponding to the files in the needed-files list; and processing the downloaded files to update the existing files to provide the files required for installing the revised software product; and (b) a download server having an update database storing update data for the revised software product, the download server programmed for preparing a download reply containing downloaded files selected from the update database for transmission to the client computer, the downloaded files corresponding to the requested files in the download request.
Claim 55
Independent Claim 223 words
A system for downloading update data to a client computer for installing a revised software product, comprising: (a) a setup server having setup data for transmitting to the client computer, the setup data including a setup module and a script component, the script component having an installation file list listing files required for installing the revised software product, the setup module containing computer executable instructions for performing, when executed on the client computer, the steps of: identifying existing files on the client computer corresponding to the files listed in the installation file list; constructing, based on the installation file list and the identified existing files, a needed-files list indicating files needed for updating the existing files to provide the files required for installing the revised software product; transmitting a download request containing the needed-files list; receiving a download reply containing downloaded files corresponding to the files in the needed-files list; and processing the downloaded files to update the existing files to provide the files required for installing the revised software product; and (b) a download server having an update database storing update data for the revised software product, the download server programmed for preparing a download reply containing downloaded files selected from the update database for transmission to the client computer, the downloaded files corresponding to the requested files in the download request.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-12-09 2006-06-10 2006-12-10 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-12-09 2010-06-10 2010-12-10 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-12-09 2014-06-10 2014-12-10 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag