Abstract:
A system and method employing a virtual restore disk, such as a vendor supplied CD-ROM, allows software restoration from the vendor&#39;s software library. The customer&#39;s original software configuration is archived and the customer may use the virtual restore disk for restore purposes as necessary, e.g., to restore a deleted file, replace a suspected corrupted file, etc. The vendor maintains updated versions of the software so that unlike a static restore disk, the customer is not limited to the releases available at the time of system purchase. The virtual restore disk can also be used to update a user&#39;s system, even in the absence of system malfunction.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     The present application is a Continuation-in-Part of U.S. patent application Ser. No. 09/630,404 filed Aug. 2, 2000, pending. Said U.S. patent application Ser. No. 09/630,404 is a Continuation-in-Part of U.S. patent application Ser. No. 09/562,870 filed May 1, 2000 (now abandoned), which is a Continuation of U.S. patent application Ser. No. 09/090,118 filed Jun. 4, 1998, now U.S. Pat. No. 6,080,207 issued Jun. 27, 2000. 
     Said U.S. patent application Ser. No. 09/630,404 is also a Continuation-In-Part of International Patent Application Serial Numbar PCT/US99/08095, international filing date Apr. 13, 1999, pending. Said U.S. patent application Ser. No. 09/630,404, said U.S. patent application Ser. No. 09/090,118, Patent Cooperation Treaty Application PCT/US99/08095 and U.S. patent application Ser. No. 09/562,870 are herein incorporated by reference in their entirety. 
     The present application also claims the benefit of U.S. Provisional Application No. 60/247,452, filed on Nov. 9, 2000. Said U.S. Provisional Application No. 60/247,452, filed on Nov. 9, 2000 is hereby incorporated by reference. 
     
       
         
               
               
               
               
             
           
               
                   
                   
               
               
                   
                 Attorney Docket No. 
                 Filing Date 
                 Ser. No. 
               
               
                   
                   
               
             
             
               
                   
                 GW 97-0506A 
                 Aug. 2, 2000 
                 09/631,641 
               
               
                   
                 GW 97-0506B 
                 Aug. 2, 2000 
                 09/631,088 
               
               
                   
                 GW 97-0506D1 
                 Aug. 2, 2000 
                 09/631,081 
               
               
                   
                 GW 97-0506D2 
                 Aug. 2, 2000 
                 09/630,404 
               
               
                   
                 GW 97-0506D4 
                 Aug. 2, 2000 
                 09/631,085 
               
               
                   
                   
               
             
          
         
       
     
    
    
     FIELD OF THE INVENTION 
     The present invention relates generally to a system and method for restoring software components on a computer system and more particularly to an improved apparatus and method wherein the restore functionality provides access to software updates, unlike static restore disks that only allow restoration of the particular software component revisions available at the time of system purchase. 
     BACKGROUND OF THE INVENTION 
     It is a common practice of vendors of computer systems to provide a restore disk with a purchased computer system, usually a CD-ROM, which may be used to restore the hard drive of the computer system to the state it was in when the system was purchased, or to restore or replace particular originally installed software components such as drivers, application programs, and so forth. The conventional restore disks provide a variety of useful purposes. For example, a customer of a computer system may accidently delete from the hard drive a software component that is either desired by the user or necessary for proper functioning of the computer system, in which case a restore disk may be used to replace the deleted component. Or, the restore disk allows a user to intentionally delete presently unwanted preinstalled software with the ability to easily restore it in the future if desired. Also, a software component may become corrupted, and any malfunctioning caused by such corruption can be remedied by replacing the corrupted component from the restore disk. Likewise, when a malfunction occurs, having the ability to remove and replace particular software components can greatly aid in diagnosing the cause of the malfunction. For example, if a particular piece of hardware inexplicably malfunctions, one may delete or uninstall the driver associated with that piece of hardware and reinstall that driver from the system restore CD. Even if the problem is not solved, it is useful to know that the problem is not being caused by a corrupted or missing driver and other causes may then be investigated. Finally, the restore disk can be used to restore the hard drive in the event of a hard drive failure. 
     Presently, with the prevalence of the Internet, software upgrades and updates are now continually and readily available from a variety of sources. Upgrades and updates are desirable because they generally fix errors (bugs) and/or provide enhanced features. Before the widespread availability of the Internet, other than the retail purchase of a major upgrade, it was generally only the most adept computer users that bothered to obtain updates, which generally meant seeking out their availability, contacting the vendor for disks, or perhaps dialing into a vendor&#39;s bulletin board system and downloading. 
     Presently, updates are routinely made available free of charge. For example, many software vendors make updates freely available on their web pages. Many software applications contain a self-updating feature, for example, that takes advantage of Internet access and which may even be run from within the application itself. Also, there exists a number of Internet-based update services that automate the process of obtaining updates. 
     Thus, although restore disks can be very useful, the more a user takes advantage of available upgrades, the more reluctant a user may be to use an outdated restore disk since it may cause an updated file to be replaced with an older version of the originally installed file. 
     In the event of a hard disk drive catastrophe, regular full system backups are one solution to the loss of acquired updates, however, this obviates the need for a restore disk. Furthermore, many users are not inclined to do full backups since it involves a great deal of time (e.g., particularly if floppy disks or other small capacity storage media are used), and/or an additional hardware expense (e.g., tape drive, large capacity removable media, etc.). With a restore disk, a user can also protect against loss by backing up only data. In that case, the system can be restored with the system restore disk (as well as any install disks of later purchased software) and reinstalling the backed up data. However, this is primarily useful shortly after the computer is purchased, and tends to lose relevancy the longer the system is in use since any updates obtained subsequent to the computer purchase will be lost. Although the Internet makes individual updates readily obtainable, when considering many updates accumulated gradually over time, the loss can be significant. 
     Therefore, it would be desirable to provide a system restore apparatus and method which improves upon the conventional restore disks by remaining up to date throughout the life of the computer. 
     SUMMARY OF THE INVENTION 
     The present invention provides systems and methods for restoring software installed on a customer computer system comprising providing a computer readable medium, such as a CD-ROM, comprising communication software configured to provide a communication connection with a vendor computer system wherein the customer computer system and the vendor computer system are located remotely of each other. The vendor computer system comprises a software library including the software components installed on the customer computer system as well as any updated versions of such software components. The vendor computer system is configured to transfer software components via the connection as an alternative to a conventional static restore CD containing potentially outdated files. The software allows a user to select one or more software components to restore, e.g., from a list of installed software components contained on the computer readable medium, and to initiate a connection between the customer computer system and the vendor computer system. The selected software components are identified to the vendor computer system which then transfers the selected software components for installation on the customer computer system. 
     In a further aspect, the computer readable medium may further comprise a copy of the installed software. In such embodiments, it may be determined whether a later version or revision of the selected software components exists in the vendor&#39;s software library. If there is an updated version of any of the selected software components in the software library, that version is transferred over the connection for installation. If there are selected software components for which there does not exist an updated version in the software library, such components may be installed directly from the computer readable medium. 
     It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention as claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and together with the general description, serve to explain the principles of the invention. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The detailed description of the invention may be best understood when read in reference to the accompanying drawings wherein: 
         FIG. 1  is a block diagram of an exemplary computer system operable to embody the present invention; 
         FIG. 2  is a block diagram illustrating an exemplary restore system in accordance with the present invention; and 
         FIGS. 3-5  are flow charts illustrating exemplary restore methods in accordance with the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring now to  FIG. 1 , an information handling system operable to embody the present invention is shown. The hardware system  100  shown in  FIG. 1  is generally representative of the hardware architecture of a computer-based information handling system of the present invention. The hardware system  100  is controlled by a central processing system  102 . The central processing system  102  includes a central processing unit such as a microprocessor or microcontroller for executing programs, performing data manipulations and controlling the tasks of the hardware system  100 . Communication with the central processor  102  is implemented through a system bus  110  for transferring information among the components of the hardware system  100 . The bus  110  may include a data channel for facilitating information transfer between storage and other peripheral components of the hardware system. The bus  110  further provides the set of signals required for communication with the central processing system  102  including a data bus, address bus, and control bus. The bus  110  may comprise any state of the art bus architecture according to promulgated standards, for example industry standard architecture (ISA), extended industry standard architecture (EISA), Micro Channel Architecture (MCA), peripheral component interconnect (PCI) local bus, standards promulgated by the Institute of Electrical and Electronics Engineers (IEEE) including IEEE 488 general-purpose interface bus (GPIB), IEEE 696/S-100, and so on. Other components of the hardware system  100  include main memory  104 , and auxiliary memory  106 . The hardware system  100  may further include an auxiliary processing system  108  as required. The main memory  104  provides storage of instructions and data for programs executing on the central processing system  102 . The main memory  104  is typically semiconductor-based memory such as dynamic random access memory (DRAM) and/or static random access memory (SRAM). Other semi-conductor-based memory types include, for example, synchronous dynamic random access memory (SDPRAM), Rambus dynamic random access memory (RDRAM), ferroelectric random access memory (FRAM), and so on. The auxiliary memory  106  provides storage of instructions and data that are loaded into the main memory  104  before execution. The auxiliary memory  106  may include semiconductor based memory such as read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable read-only memory (EEPROM), or flash memory (block oriented memory similar to EEPROM). The auxiliary memory  106  may also include a variety of nonsemiconductor-based memories, including, but not limited to, magnetic tape, drum, floppy disk, hard disk, optical laser disk, compact disc read-only memory (CD-ROM), write once compact disc (CD-R), rewritable compact disc (CD-RW), digital versatile disc read-only memory (DVD-ROM), write once DVD (DVD-R), rewritable digital versatile disc (DVD-RAM), etc. Other varieties of memory devices are contemplated as well. The hardware system  100  may optionally include an auxiliary processing system  108  which may include one or more auxiliary processors to manage input/output, an auxiliary processor to perform floating point mathematical operations, a digital signal processor (a special-purpose microprocessor having an architecture suitable for fast execution of signal processing algorithms), a back-end processor (a slave processor subordinate to the main processing system), an additional microprocessor or controller for dual or multiple processor systems, or a coprocessor. It will be recognized that such auxiliary processors may be discrete processors or may be built in to the main processor. 
     The hardware system  100  further includes a display system  112  for connecting to a display device  114 , and an input/output (I/O) system  116  for connecting to one or more I/O devices  118 ,  120 , up to N number of I/O devices  122 . The display system  112  may comprise a video display adapter having all of the components for driving the display device, including video memory, buffer, and graphics engine as desired. Video memory may be, for example, video random access memory (VRAM), synchronous graphics random access memory (SGRAM), windows random access memory (WRAM), and the like. 
     The display device  114  may comprise a cathode ray-tube (CRT) type display such as a monitor or television, or may comprise an alternative type of display technology such as a projection-type display, liquid-crystal display (LCD), light-emitting diode (LED) display, gas or plasma display, electroluminescent display, vacuum fluorescent display, cathodoluminescent (field emission) display, plasma-addressed liquid crystal (PALC) display, high gain emissive display (HGED), and so forth. 
     The input/output system  116  may comprise one or more controllers or adapters for providing interface functions between the one or more I/O devices  118 - 122 . For example, the input/output system  116  may comprise a serial port, parallel port, universal serial bus (USB) port, IEEE 1394 serial bus port, infrared port, network adapter, printer adapter, radio-frequency (RF) communications adapter, universal asynchronous receiver-transmitter (UART) port, etc., for interfacing between corresponding I/O devices such as a keyboard, mouse, track ball, touch pad, joystick, track stick, infrared transducers, printer, modem, RF modem, bar code reader, charge-coupled device (CCD) reader, scanner, compact disc (CD), compact disc read-only memory (CD-ROM), digital versatile disc (DVD), video capture device, TV tuner card, touch screen, stylus, electroacoustic transducer, microphone, speaker, audio amplifier, etc. The input/output system  116  and I/O devices  118 - 122  may provide or receive analog or digital signals for communication between the hardware system  100  of the present invention and external devices, networks, or information sources. The input/output system  116  and I/O devices  118 - 122  preferably implement industry promulgated architecture standards, including Ethernet IEEE 802 standards (e.g., IEEE 802.3 for broadband and baseband networks, IEEE 802.3z for Gigabit Ethernet, IEEE 802.4 for token passing bus networks, IEEE 802.5 for token ring networks, IEEE 802.6 for metropolitan area networks, and so on), Fibre Channel, digital subscriber line (DSL), asymmetric digital subscriber line (ASDL), frame relay, asynchronous transfer mode (ATM), integrated digital services network (ISDN), personal communications services (PCS), transmission control protocol/Internet protocol (TCP/IP), serial line Internet protocol/point to point protocol (SLIP/PPP), and so on. It should be appreciated that modification or reconfiguration of the hardware system  100  of  FIG. 1  by one having ordinary skill in the art would not depart from the scope or the spirit of the present invention. 
     Referring now to  FIG. 2 , there is shown a restore system  200  in accordance with the present invention. As shown, the restore system  200  includes a customer computer system  100  located at a first site and a vendor computer system  202  located at a second site remotely located from the first site. The restore system  200  will be discussed herein primarily in terms of an improvement over conventional system restore disks provided by computer system vendors for restoring software components which were preinstalled on hard disk drive  106  of customer  100  when purchased or leased from the vendor, it will be recognized that computer system  202  may be that of a third party other than the vendor of the computer system, for example, a system restore service provider, e.g., operating on behalf of the computer system vendor. 
     Although the present invention will be described herein primarily by way of reference to restoration of preinstal led software components, it will be recognized that since the restore system is not static, it may also be adapted to include software components acquired after purchase of the computer system contained in vendor software library  220 . For example, the customer may be required to demonstrate proof of ownership of a valid license, in which case database  218  may be updated to allow access to such newly purchased software for restoration in accordance with this teaching. 
     The terms “update” and “upgrade” are used interchangeably herein without attention to any nuances in their meanings, and the terms are intended to encompass any later version, revision, or release of a software component, for example, of the type typically released to provide bug fixes, enhanced features, and so forth. Many updates or upgrades are provided free of charge, although the present invention is also intended to also encompass updates or upgrades that require purchase or payment of a licensing fee to the software vendor. In the case of an update requiring payment of a fee, the payment may be made electronically or otherwise. 
     The term “restore” is intended to encompass replacement of a software component that is missing from a hard disk drive of the computer system as well as overwriting an software component that is present. When a software component that is present is restored (overwritten), the overwritten software component may or may not be malfunctioning or corrupted. 
     When purchased, computer system  100  is provided with restore disk  204  in accordance with this teaching. Disk  204  may be provided in addition to or as an alternative to a conventional system restore disk. Disk  204 , for use in CD-ROM drive  118 ′, comprises communication software  206  enabling data communication between customer computer system  100  and vendor computer system  202 . Although the embodiment of  FIG. 2  depicts a CD-ROM and CD-ROM drive, it will be recognized that other drive and media types may likewise be employed. For example, drive  118 ′ may be a DVD, CD-R, CD-RW, removable hard drive, or other removable magnetic media drive, and restore disk  204  the corresponding compatible media type. The communication software  206  may comprise, for example, browser or other software allowing access to the vendor computer system  202  via an Internet connection, or may be communication software for providing a direct dial-up connection between the customer computer system  100  and the vendor computer system  202 . 
     In a preferred embodiment, the restore disk  204  further comprises the necessary operating system software to boot customer computer system  100 , allowing the communication software  206  to run on customer computer system  100  without booting from hard disk drive  106 . In other embodiments, e.g., where drive  118 ′ is not a bootable drive, computer system  100  may be booted from another start up disk, such as a floppy boot disk, prior to running communication software  206 . Of course, if hard disk drive  106  is operable, it may also be possible to boot the customer computer system  100  from the hard disk drive  106  for the purpose of running communication software  206  and executing the restore method of the present invention, however, it will be recognized that certain software components may not be able to be installed using the restore method in accordance with this teaching, e.g., software components that are in use. 
     Restore disk  204  may also contain optional identification data  208 . Identification data  208  may comprise, for example, a list of software components, including revision information, preinstalled on hard drive  106 . Alternatively, identification data  208  may simply comprise an identifier which may be used to access the list of software components associated with that identifier and stored elsewhere, for example, in database  218  on vendor computer system  202 . The identifying information may be, for example, an indication of when the restore disk was made, such as a date or a revision or version number of the restore disk. In the case of a build-to-order computer system wherein the customer selects a custom software configuration and wherein a custom restore disk is likewise created for the system, the identification data  208  may be customer information such as customer name or a unique textual, numeric, or alphanumeric identifier, such as a vendor assigned customer number or account number, serial number of the computer system, serial number of another component such as the CPU, or other similar identifier. 
     As stated above, identification data  208  is optional and it will be recognized that other identification means can be used identification data on the restore disk  204 . For example, a user may be assigned an identifier, such as a user name and/or password, required to access vendor computer system  202 . Or, the identification may be locally stored on the customer computer system  100 , e.g., a serial number or other identification number of some hardware component of the computer system  100 , such as a serial number or identification number assigned to and stored in the CPU, may be used as the identifier. The use of a hardware identifier, such as a serial number of the CPU, may be in addition to or in lieu of identification data on the restore disk  204 , and serves a further advantage of preventing unauthorized downloading of software from software library  212  by limiting use of the restore disk  204  to a particular computer or a particular group of computers, such as similarly configured models or series. 
     Customer computer system  100  is shown with first modem  120 ′ for connecting customer computer system  100  to second modem  210  of the vendor computer system  202 , thus allowing the transfer of information between customer computer system  100  and the vendor computer system  202 . As shown, the vendor computer system  202  is depicted as a local area network (LAN) comprising computer  212  connected to modem  210  which, in turn, is connected to file server  216  via network connection  214 . The file server  216  has a database  218  from which information can be retrieved by computer  212  via the file server  216  and a software library  220  containing the software components of all systems manufactured by the vendor. The configuration of network  202  is exemplary only and it will be recognized that other network configurations may be used, or, that vendor computer system  202  need not comprise a network. Likewise, although customer computer system  100  is depicted as a stand alone computer system, it will be recognized that customer computer system may be on a network having shared access to modem  120 ′ over the network. It will also be recognized that modems  120 ′ and  210  are not limited to conventional modems employing telephone lines, but may also be cable modems employing coaxial cable television network lines, or a high speed connection such as an ISDN line interface, T-carrier line interface, and so forth. 
     When the customer of the computer system  100  desires to restore some initially installed component, communication software  206  is run and a connection between customer computer system  100  and vendor computer system  202  is initiated. The customer computer system  100  then executes programming to identify to the vendor computer system  202  the software components to be downloaded from vendor computer system  202  to be restored on customer computer system  100 . In one embodiment, identification data  208  contains a list of all preinstalled software components and user may select the particular components to restore via an input device such as a keyboard or pointing device. Less savvy computer users may not be able to identify by filename particular components to replace. Thus, as yet a further additional or alternative input method, the user input may be obtained through a series of interactive prompts, such as a software “wizard” or the like to guide a user through the process of selecting files to restore wherein a series of questions are asked and wherein the answers to the questions dictate the subsequent questions. For example, such a questionnaire or wizard interface might begin by asking whether there is any malfunctioning of customer computer system  100 . If so, further questions about the nature of the malfunction may be asked to determine the necessary files to transfer, which may range from a replacement of a single file such as the driver of a malfunctioning hardware device or an accidently deleted file to a complete system restore, e.g., in the event of catastrophic hard disk drive failure. On the other hand, if the user indicates that the system is currently not malfunctioning, the user interface could then inform the user of components that have updated versions available, which may then be downloaded. As yet a further additional or alternative method of selecting components to download, one or more files, such as an error log, configuration files, etc., of computer  100  may automatically be transferred to vendor computer system  202  for evaluation to determine which software components need to be restored or replaced. 
     In certain embodiments wherein the restore disk  204  does not contain a list of preinstalled software, some identifying data as detailed above, such as identification data  208 , a hardware identifier, or a user name and/or password is input and the list of preinstalled software may be obtained from database  218  and transferred to computer system  100 . The selection of software components for restoring may then proceed as described above, e.g., by selection from an on-screen list or menu or via a software wizard-type interface. 
     In certain embodiments, the restore disk  204  may further comprise a backup copy of the preinstalled software components of customer computer system  100 , in which case the restore disk may additionally be utilized in the same manner as a conventional restore disk, for example, if a communication connection between customer computer system  100  and vendor computer system  202  cannot be established. In preferred embodiments, particularly where a high speed connection is not available, the communication connection between the customer computer system  100  and the vendor computer system  202  is employed for transferring software components to be restored which have updated versions available in software library  220  and any software components to be restored which do not have an updated version available in software  220  are installed from restore disk  204 . 
     In the event that a restored file is an update of the originally installed software component, database  218  is preferably updated to reflect the latest version obtained by the customer computer system  100 . 
     Referring now to  FIG. 3 , there is shown a flowchart illustrating a method in accordance with the present invention. The method may be executed by restore system  200  ( FIG. 2 ) of the present invention. As shown in  FIG. 3 , programming associated with steps  300 ,  304 ,  308 ,  324 , and  328  is executed by customer computer  100 , and programming associated with steps  312 ,  316 , and  320  is executed by vendor computer system  202 . Instep  300 , customer computer system  100  is booted up using restore disk  204  (FIG.  2 ). In alternative embodiments a boot disk other than restore disk  204  may be used, e.g., where drive  118 ′ is not a bootable drive. In step  304 , communication software  206  ( FIG. 2 ) on disk  204  is run to establish a connection over which information may be communicated between customer computer system  100  and vendor computer system  202 . In step  308 , customer computer system  100  identifies in a manner described above one or more software components to be restored from software library  220  ( FIG. 2 ) stored on vendor computer system  202 . 
     In step  312 , vendor computer system  202  receives the identity of software components to be restored and in step  316  selects the identified components from software library  220 . The selected software components are then transferred to customer computer system  100  in step  320 . 
     In step  324 , the customer computer system  100  receives the selected software components from the vendor computer system  202  via the communication connection and in step  328  the selected components are installed on hard disk drive  106  ( FIG. 2 ) of customer computer system  100 . 
     Referring now to  FIG. 4 , there is shown a flowchart illustrating a method in accordance with another embodiment of the present invention. The method may be executed by restore system  200  ( FIG. 2 ) of the present invention. As shown in  FIG. 4 , programming associated with steps  400 ,  404 ,  408 ,  424 ,  428 ,  444 , and  448  is executed by customer computer system  100 , and programming associated with steps  412 ,  416 ,  420 ,  432 ,  436 , and  440  is executed by vendor computer system  202 . In step  400 , customer computer system  100  is booted up using restore disk  204  (FIG.  2 ). Again, in alternative embodiments a boot disk other than restore disk  204  may be used, e.g., where drive  118 ′ is not a bootable drive. In step  404 , communication software  206  ( FIG. 2 ) on disk  204  is run to establish a connection over which information may be communicated between customer computer system  100  and vendor computer system  202 . In step  408 , the customer and/or customer computer system  100  is identified to the vendor computer system  100  as detailed above. 
     In step  412 , the vendor computer system  412  receives the identification and can retrieve a list of software preinstalled on customer computer system  100 , e.g., which may be archived in database  218  ( FIG. 2 ) or other local storage. The list of software components is supplied to customer computer system  100  in step  420 . 
     In step  424 , the list of software components is received by customer computer system  100  and in step  428 , the software components to be restored are selected and identified in a manner described above. 
     In step  432 , vendor computer system  202  receives the identity of software components to be restored and in step  436  selects the identified components from software library  220  (FIG.  2 ). The selected software components are then transferred to customer computer system  100  in step  440 . 
     In step  444 , the customer computer system  100  receives the selected software components from the vendor computer system  202  via the communication connection and in step  448  the selected components are installed on hard disk drive  106  ( FIG. 2 ) of customer computer system  100 . 
     Referring now to  FIG. 5 , there is shown a flowchart illustrating a method in accordance with another embodiment of the present invention. The method may be executed by restore system  200  ( FIG. 2 ) of the present invention. As shown in  FIG. 5 , programming associated with steps  500 ,  504 ,  508 ,  532 , and  536  is executed by customer computer system  100 , and programming associated with steps  512 ,  516 ,  520 ,  524 ,  528 ,  540 , and  544  is executed by vendor computer system  202 . In step  500 , customer computer system  100  is booted up using restore disk  204  (FIG.  2 ). Again, in alternative embodiments a boot disk other than restore disk  204  may be used, e.g., where drive  118 ′ is not a bootable drive. In step  504 , communication software  206  ( FIG. 2 ) on disk  204  is run to establish a connection over which information may be communicated between customer computer system  100  and vendor computer system  202 . In step  308 , customer computer system  100  identifies in a manner described above one or more software components to be restored from software library  220  ( FIG. 2 ) stored on vendor computer system  202 . 
     In step  512 , vendor computer system  202  receives the identity of software components to be restored and in steps  516 - 544  are repeated for each software components selected to be restored. In step  520 , the selected software components are selected from software library  220  and a comparison is made to determine whether an update for the selected component exists in software library  220 . The determination of whether an update exists for each software component to be restored can be performed in a number of ways. For example, the database  218  ( FIG. 2 ) may contain an archive of the software components and the particular revision numbers or revision dates thereof for each customer. Alternatively, this information may be communicated from customer computer system  100 , e.g., from restore disk  204  (for example, as a part if identifying information  208  (FIG.  2 )) or other local storage. 
     If an update is available in software library  220  for a given selected software component in step  524 , the update of the selected software components are then transferred to customer computer system  100  in step  528 . The process then proceeds to step  536  and the update is installed on customer computer system  100  and the process proceeds to step  544 . 
     If an update is not available in software library  220  for a given selected software component in step  524 , the customer computer system  100  is notified in step  540  that an update is not available and the process continues to step  536  and the customer is given the option of installing the selected software component onto customer computer system  100  directly from restore disk  204 , the transfer of which will generally be faster than via a remote connection such as a dial up connection or connection via the Internet. The process then proceeds to step  544 . 
     In step  544 , the process returns to step  516  and repeats until all of the selected software components have been restored. 
     Thus, it can be seen that the present invention improves upon the conventional restore disks which tend to become obsolete in light of widely available software updates. For the customer who regularly updates his or her computer system, using the restore disk in accordance with this teaching does not mean loss of updated components and the system and method according to the present invention find additional utility as a convenient means for obtaining updates. 
     Although the invention has been described with a certain degree of particularity, it should be recognized that elements thereof may be altered by persons skilled in the art without departing from the spirit and scope of the invention. One of the embodiments of the invention can be implemented as sets of instructions resident in the main memory  104  of one or more computer systems configured generally as described in FIG.  1 . Until required by the computer system, the set of instructions may be stored in another computer readable memory such as the auxiliary memory of  FIG. 1 , for example in a hard disk drive or in a removable memory such as an optical disk for utilization in a DVD-ROM or CD-ROM drive, a magnetic media for utilization in a magnetic media drive, a magneto-optical disk for utilization in a magneto-optical drive, a floptical disk for utilization in a floptical drive, or a personal computer memory card for utilization in a personal computer card slot. Further, the set of instructions can be stored in the memory of another computer and transmitted over a local area network or a wide area network, such as the Internet, when desired by the user. Additionally, the instructions may be transmitted over a network in the form of an applet that is interpreted after transmission to the computer system rather than prior to transmission. One skilled in the art would appreciate that the physical storage of the sets of instructions or applets physically changes the medium upon which it is stored electrically, magnetically, chemically, physically, optically or holographically so that the medium carries computer readable information. 
     The description above should not be construed as limiting the scope of the invention, but as merely providing illustrations to some of the presently preferred embodiments of this invention. In light of the above description and examples, various other modifications and variations will now become apparent to those skilled in the art without departing from the spirit and scope of the present invention as defined by the appended claims. For example, sine the restore disk of the present invention is not static, it need not be limited to restoration of preinstalled software. For example, the scope of restore coverage may be expanded to cover software obtained after the computer system was purchased, e.g., when a customer shows proof of purchase or valid license. The system may also be to identify a customer&#39;s software needs based on currently owned software, e.g., to identify or market to the customer other software that may enhance existing software or that may otherwise be useful or desirable to the customer. Also, when a software component in software library  220  is updated, all customers using that file may be notified by the vendor of the availability of the update, which may be obtained by the customer using restore disk  204 . Likewise, the system may be used to offer to customers custom updated restore disks or custom supplemental restore disks. Accordingly, the scope of the invention should be determined solely by the appended claims and their legal equivalents.