Patent Publication Number: US-8117162-B2

Title: Determining which user files to backup in a backup system

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to data backup and restore systems in a computer system. Particularly, this invention relates to facilitating the capture of user settings for data backup and restore systems. 
     2. Description of the Related Art 
     For a backup product running on an end user&#39;s desktop, it can be challenging to develop convenient processes for the backup system to determine the operational settings desired by the user. Particularly, one of the principle settings directing the operation of a data backup system determines what files to backup. The simplest approach, of course, is to just backup all data. However, time and storage space constraints often make such an approach impractical, if not impossible. 
     Many backup systems operate by populating lists specifying the files and/or file types to be included in a backup. The system, e.g. a backup software client running on the user system, then monitors changes to any files included on the populated lists and makes backups of those files when they are changed. The user may be provided with some default file lists, such as specifying all the files in the “My Documents” directory. The list might also be seeded with some common file extensions, such as *.doc and *.xls. In some backup systems the user may be given a list of predetermined file types to choose from, such as Office Files, Financial files, Music files, etc. Various systems and methods have been developed to facilitate making data backups of files on a computer system. 
     U.S. Patent Application Publication No. 20050131990 by Jewell, published Jun. 16, 2005, describes a data backup system for backing up a data file from a source device having a source processor and an input device to a target device having a target processor and a database over a communication network. The source processor determines whether the data file has been modified, and if so, to determine the modified data block(s). The modified data block(s) are transmitted from the source processor to the target processor over the communication network. The target processor receives the modified data block(s) from the source device over the communications network, and uses the modified data blocks to construct the data file, and to store the data file on the database. Concurrently, it is determined if the input device is active at any time during the backup process, and if so, the backup processing is interrupted until the input device has been inactive for a predetermined period of time. 
     U.S. Patent Application Publication No. 20040193953 by Callahan et al., published Sep. 30, 2004, describes a method, system, and program for maintaining configuration settings for applications on a computer system. Configuration backup information indicates configuration settings to backup for at least one of application. The configuration backup information is processed to access the indicated configuration settings for the at least one application on the computer system to backup and the accessed configuration settings for at least one application are stored in at least one file. The stored configuration settings are recovered for use with at least one application. 
     U.S. Patent Application Publication No. 20050010616 by Burks, published Jan. 13, 2005, describes a method of backing up files including storing a plurality of files on a local device, transmitting a list of the files to a backup/restoration service, identifying an ownership property associated with each of the files, and selectively restoring at least one of the files associated with an appropriate status of the ownership property. A system includes a storage medium configured to store a plurality of files, a communications link connected to the storage medium for transmitting a list of the files to a remote location, and a file server located at the remote location. The file server is connected to the communications link and operable to receive and store the list of files in response to a restoration request for selectively restoring files associated with an appropriate status of an ownership property associated with the files. 
     U.S. Patent Application Publication No. 20040167942 by Oshinsky et al., published Aug. 26, 2004, describes a data retrieval system comprising a first computing device communicatively coupled to a second computing device; the first computing device having a processor that supports operation of at least one software application that is used for retrieving data; the second computing device communicatively coupled to one or more storage media; the software application having a retrieval module for retrieving data from the one or more storage media; a storage and backup map that maps to the second computing device; and a data index stored on the second computing device that indicates to the retrieval module a particular location of the data that is to be retrieved by the retrieval module. 
     U.S. Patent Application Publication No. 20050021950 by Rothbarth et al., published Jan. 27, 2005, describes an application and method for transmitting copies of data to a remote back-up site for storage, and for retrieving copies of the previously stored data from the remote back-up site. A user designates files from an originating computer for which to transfer copies to a destination computer. The originating computer transfer designated data to portable computer readable medium for storage. The portable medium is physically delivered to the destination user. The destination user uploads the stored data to the destination computer. The destination computer authenticates the uploaded data. If the data is authenticated, the destination computer stores copies of the designated files. 
     U.S. Pat. No. 6,108,799 by Boulay et al., issued Aug. 22, 2000, describes a system and method for automatically generating at least one instance of a computer macro virus that is native to or associated with an application. The method includes steps of (a) providing a suspect virus sample; and (b) replicating the suspect virus sample onto a least one goat file, using at least one of simulated user input or interprocess communication commands for exercising the goat file through the application, to generate an infected goat file. A further step can be executed of (c) replicating the infected goat file onto a least one further goat file, using at least one of simulated user input, such as keystrokes, mouse clicks and the like, or interprocess communication commands, to generate an additional instance of an infected goat file. The step of providing includes a step of determining attributes of the suspect virus sample, and the steps of exercising employ simulated user input or interprocess communication commands that are selected based at least in part on the determined attributes. As a parallel process the steps of exercising include steps of detecting an occurrence of a window, such as a pop-up window that is opened by one of the application or the macro virus; and using at least one of simulated user input or interprocess communication command(s) for closing the opened window. In this manner the replication process is not halted by a window that requires input from a user. 
     U.S. Patent Application Publication No. 20050246631 by Mori, published Nov. 3, 2005, describes storing and managing one document of respective parts as electronic data created by a plurality of applications regardless of the type of application program which creates each part of one document. For this purpose, a plurality of shared folders are set on a network, and attributes in printing are set for the shared folders. A hot folder program supervises the shared folders. When a document image data file scanned by a multifunction apparatus is stored in one of the shared folders, the hot folder program causes an action program to perform a process complying with the attributes set for the shared folder which stores the file, and a bookbinding application to import the file. 
     U.S. Pat. No. 5,758,067 by Makinen et al., issued May 26, 1998, describes a system and method for automatically archiving data from a computer system to a backup system. The system provides a scheduler, connected to an automated backup mechanism, for scheduling when full backups are performed and when incremental backups are performed. A simple user interface is provided to ensure that once the end user has enabled the system, daily automatic backups will be performed without further input from the end user. 
     However, current backup systems do not operate as conveniently as they might. For example, one problem with the described techniques that employ file lists to identify files to backup is that these predetermined lists are not comprehensive; they cannot account for every possible file type that the user may eventually have on his computer. Moreover, a comprehensive list of every possible file type a user could have on her system would be virtually impossible to provide. Another issue with such techniques is that the selection of file types to backup is commonly performed during the initial configuration of the backup system, e.g. right after installation. Thus, even if the user correctly identifies all the file types that need to be backed up, files associated with any later installed applications will not be processed into the backup lists. Users will often forget to enter the backup software and add appropriate settings to include the new files or file types. 
     In view of the foregoing, there is a need in the art for data backup systems and methods for conveniently and efficiently determining and tracking which files are to be backed up. There is a need for systems and methods to handle backup settings for every file that may be employed by an application operating on the user system. Further, there is a need for such systems and methods to address the problem of new file types associated with applications installed after the backup system has been installed and initially configured. These and other needs are met by the present invention as detailed hereafter. 
     SUMMARY OF THE INVENTION 
     A backup program, method and system is disclosed that monitors changes to a file in a storage, checks whether backup settings related to the file already exist and requests and applies backup settings related to the file in response to the file being changed if they don not. The backup settings are applied to control operation of a backup system to make one or more backup copies of the file. The backup settings may be electively saved to be applied automatically in the event of future changes to the file without requesting the settings. One or more lists may be used to identify (e.g. include or exclude) files for backup. Files may be identified by different categories including file name, file type, or file type group associated with a particular application. A typical backup system may save backup copies to a storage area network, e.g. controlled by a backup server. 
     A typical embodiment of the invention comprises a computer program embodied on a computer readable medium including program instructions for monitoring changes to a file in a storage, program instruction for checking whether backup settings related to the file exist, program instructions for requesting the backup settings related to the file in response to the file being changed and the backup settings related to the file not existing, and program instructions for applying the backup settings to control operation of a backup system to make one or more backup copies of the file. In some embodiments, applying the backup settings may comprise electively saving the backup settings in one or more lists of identified files to be backed up. The identified files may be identified by categories including file name, file type and a file type group associated with an application. Monitoring the changes to the file may comprise filtering an operating system controlling the changes to the file to signal the changes occurring. Similarly, filtering the operating system can also be used to signal which application is responsible for the change to the file. 
     In further embodiments, the computer program may include program instructions for identifying an application responsible for changing the file and program instructions for determining whether an application list comprising one or more set backup applications includes the application. In this case, the backup settings are not requested in response to determining that the application list includes the application. Applying the backup settings may comprise electively saving the backup settings by adding the application responsible for changing the file to the list of the one or more set backup applications. 
     In some embodiments, applying the backup settings may comprise electively saving the backup settings such that, in response to saving the backup settings, further one or more backup copies of the file will be made repeatedly thereafter in response to further changes to the file without requesting the backup settings. 
     Embodiments of the invention can be implemented where a file type may be associated with a plurality of file type files and the plurality of file type files includes the file and applying the backup settings comprises electively saving the backup setting such that the one or more backup copies will be made for each change to any of the plurality of file type files changed thereafter. Further, embodiments may encompass tracking one or more file type groups each associated with a particular application. For example, a file type group associated with an application may include a plurality of file types, each associated with a plurality of file type files, and one of the plurality of file type files includes the file. In this case, applying the backup settings comprises electively saving the backup settings such that the one or more backup copies will be made for each change to any of the plurality of file type files associated with any of the plurality of file types of the file type group associated with the application. To track backup settings corresponding to files associated with different applications, the backup settings may comprise an application list including one or more set backup applications and the application is electively saved to the application list. 
     In a similar manner, a typical method embodiment of the invention comprises the steps of monitoring changes to a file in a storage, checking whether backup settings related to the file exist, requesting the backup settings related to the file in response to the file being changed and the backup settings related to the file not existing, and applying the backup settings to control operation of a backup system to make one or more backup copies of the file. Method embodiments of the invention may be further modified consistent with the program and system embodiments described herein. 
     Other embodiments of the invention may similarly comprise a computer system, including a storage for a file and a processor for monitoring changes to the file in the storage, checking whether backup settings related to the file exist, requesting the backup settings related to the file in response to the file being changed and the backup settings related to the file not existing and applying the backup settings to control operation of a backup system to make one or more backup copies of the file. The one or more backup copies of the file may be saved to a storage area network, such as overseen by a backup system operating on a distributed network. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Referring now to the drawings in which like reference numbers represent corresponding parts throughout: 
         FIG. 1A  is a functional block diagram of a prior art technique for determining backup settings; 
         FIG. 1B  is a functional block diagram for determining backup settings with an embodiment of the invention; 
         FIG. 2A  illustrates an exemplary computer system that can be used to implement embodiments of the present invention; 
         FIG. 2B  illustrates a typical distributed computer system which may be employed in an typical embodiment of the invention; 
         FIG. 3A  illustrates the relationship between a file name, a file type and a file type group; 
         FIG. 3B  illustrates one or more lists employed by the backup software to track backup settings; 
         FIGS. 4A &amp; 4B  illustrates an exemplary embodiment of the invention providing a request for backup settings in response to a file being changed; 
         FIGS. 5A &amp; 5B  illustrates an exemplary embodiment of the invention providing a request for backup settings in response to a file being changed by an unlisted application; and 
         FIG. 6  is a flowchart of an exemplary method for determining which user files to backup for a backup product. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     1. Overview 
     As previously mentioned, embodiments of the invention operate by monitoring changes to a file in a storage, checking whether backup settings related to the file exist and requests and applying backup settings related to the file in response to the file being changed if they don not. The backup settings are applied to control operation of a backup system to make one or more backup copies of the file. In contrast, prior art systems do not prompt a user for backup settings; the user must decide to access the interface for backup settings and enter the desires settings for handling a particular file or file type. 
       FIG. 1A  is a functional block diagram of a prior art technique for determining backup settings. The conventional backup system  100  may operate as backup software  102  operating on a computer system. The backup software  102  stores backup settings  104  to identify which files will be backed up and which will not. The backup settings  104  may comprise one or more lists of file names  106  and/or file types  108  to be backed up. As is well known in the art, file types define different categories of files, typically indicating different data formats. Different file types are identified by the file extension, the end portion of the file name separate by a period delimiter (e.g., a text file is identified by the “.txt” extension at the end of the file name). 
     The backup software  102  may operate by monitoring any changes to files  110 ,  112  in storage  114 . Note that the term “change” as used throughout this description includes the creation of a new file. Also, the term “file” as used throughout this description includes directories and subdirectories (and any underlying files). When a change to a file  110 ,  112  is detected, the backup software checks to determine if the backup settings  104  identify the file  110 ,  112 . If the changed file  110  is identified in the backup settings  104 , by file name  106  or file type  108 , the backup program  102  responds by saving either saving a backup copy  116  in the local storage  114  or a backup copy  118  in a remote storage  120  as indicated by additional settings and/or depending upon the overall backup system. For example, in some embodiments, the backup software  102  may be a backup program operating on a client computer system that is coupled to a backup server over a computer network which manages backup files on a remote backup repository. However, if a change is indicated in a file  112  that is not included in the backup settings  104 , the backup software  102  takes no action provides no indication of the situation to the user. Conventional backup software  102  is not designed to anticipate the possibility that the user may desire a backup copy to be made with an unregistered file  112 . Embodiments of the present invention address this shortcoming. 
       FIG. 1B  is a functional block diagram for determining backup settings with an embodiment of the invention. The backup system  130  may operate as backup software  132  operating on a computer system. A typical backup system may save backup copies to a storage area network, e.g. controlled by a backup server. A backup system  130  embodiment of the invention introduces prompting the user to apply backup settings in some situations. At a basic level of operation, embodiments of the invention may employ backup settings  134  including file names  136  and/or file types  138  to be included (or excluded) from having a backup copy made. The backup program  132  monitors for changes to files  144 ,  146  in a storage  142  of the computer and checks for existing backup settings  134  related to any changed file  144 ,  146 . (Identified file names  136  and/or file types  138  may be specified in the backup settings  134  as either included or excluded from being backed up.) If relevant backup settings  134  exist, the backup program  132  operates to save one or more backup copies  148 ,  150  (in either the local storage  142  or a remote storage  152  as appropriate according to the settings or ordinary operations of the backup system  130 ). However, if a file  146  is changed for which there are no existing backup settings  134 , embodiments of the present invention automatically direct a backup settings request  154  to the user in order to determine whether a backup copy  156  should be made for the current file  146 . (Note, although not shown, the current file  146  may also have a backup copy made to a remote storage  152  just as with the first file  144 .) Any new backup settings may be electively saved by the user to the backup settings  132  to be applied automatically in the event of future changes to the file  146  without requesting the settings. 
     Embodiments of the invention may also include a new category to be tracked in the backup settings  134 , file type groups  140 . A file type group  140  is a plurality of file types that are associated with one another. Typically, a file type group  140  may comprise all the file types associated with a particular software application (or possibly a group of applications); a newly installed application may introduce more than one new file type into the computer. For example, Microsoft Powerpoint introduces file types, *.POT, *.POTHTL, *.POTM, *.POTX, *.PPA, *.PPSM, *.PPSX, *.PPT, *.PPTHTML, *.PPTM, *.PPTMHTML, and *.PPTX. By adding file type groups (e.g. applications) to the backup settings, backup setting requests are more efficient and the number of times that backup setting requests are made is reduced. 
     Thus, the backup system  130  may operate by monitoring both changes to files  144 ,  146  in the storage  142  as well as the application  158 ,  160  responsible for the change. For example, embodiments of the invention may “hook” or filter the operating system to signal whenever a file is changed and what application changed it. Such filtering means that the operating system (or file system) are wrapped with additional software (as in a software stack) so that they can monitor and/or control basic operations of the applicable operating or file system. If the file is not accounted for in the backup settings  134  of the backup system (e.g. either an “include” or “exclude” list), the user may be presented with the backup settings request  154  including a list of setting options. For example, a pop up dialog box may be used for this to direct the backup system  130  with respect to the file  146  (and possibly other related files) when it is changed in the future. Based on the user selection, the backup program  154  can populate either the include list or exclude list as appropriate. In this way, the backup product learns what files to protect over time. 
     A typical usage pattern would be that when the user first installs the backup product, he is presented with the backup settings request fairly often as the product monitors files being changed that were not in the default include/exclude lists. But after a while, the choices should stop being presented as the system has learned what files (types, and group types) to protect. Then, if a user installs a new application, e.g. Microsoft PowerPoint in the example above, the first time PowerPoint saves a file, the user will be presented with the choices for that file. 
     2. Hardware Environment 
       FIG. 2A  illustrates an exemplary computer system  200  that can be used to implement embodiments of the present invention. The computer  202  comprises a processor  204  and a memory  206 , such as random access memory (RAM). The computer  202  is operatively coupled to a display  222 , which presents images such as windows to the user on a graphical user interface  218 . The computer  202  may be coupled to other devices, such as a keyboard  214 , a mouse device  216 , a printer  228 , etc. Of course, those skilled in the art will recognize that any combination of the above components, or any number of different components, peripherals, and other devices, may be used with the computer  202 . 
     Generally, the computer  202  operates under control of an operating system  208  (e.g. z/OS, OS/2, LINUX, UNIX, WINDOWS, MAC OS) stored in the memory  206 , and interfaces with the user to accept inputs and commands and to present results, for example through a graphical user interface (GUI) module  232 . Although the GUI module  232  is depicted as a separate module, the instructions performing the GUI functions can be resident or distributed in the operating system  208 , a computer program  210 , or implemented with special purpose memory and processors. 
     The computer  202  also implements a compiler  212  which allows one or more application programs  210  written in a programming language such as COBOL, PL/1, C, C++, JAVA, ADA, BASIC, VISUAL BASIC or any other programming language to be translated into code that is readable by the processor  204 . After completion, the computer program  210  accesses and manipulates data stored in the memory  206  of the computer  202  using the relationships and logic generated using the compiler  212 . The computer  202  also optionally comprises an external data communication device  230  such as a modem, satellite link, ethernet card, wireless link or other device for communicating with other computers, e.g. via the Internet or other network. 
     Instructions implementing the operating system  208 , the computer program  210 , and the compiler  212  may be tangibly embodied in a computer-readable medium, e.g., data storage device  220 , which may include one or more fixed or removable data storage devices, such as a zip drive, floppy disc  224 , hard drive, DVD/CD-ROM, digital tape, etc., which are generically represented as the floppy disc  224 . Further, the operating system  208  and the computer program  210  comprise instructions which, when read and executed by the computer  202 , cause the computer  202  to perform the steps necessary to implement and/or use the present invention. Computer program  210  and/or operating system  208  instructions may also be tangibly embodied in the memory  206  and/or transmitted through or accessed by the data communication device  230 . As such, the terms “article of manufacture,” “program storage device” and “computer program product” as may be used herein are intended to encompass a computer program accessible and/or operable from any computer readable device or media. 
     Embodiments of the present invention are generally directed to any software application program  210  that manages data objects (i.e. files) such as with a backup system managing backup storage and restore processes over a network. The program  210  may operate within a single computer  202  or as part of a distributed computer system comprising a network of computing devices. The network may encompass one or more computers connected via a local area network and/or Internet connection (which may be public or secure, e.g. through a VPN connection). 
       FIG. 2B  illustrates a typical distributed computer system  250  which may be employed in an typical embodiment of the invention. Such a system  250  comprises a plurality of computers  202  which are interconnected through respective communication devices  230  in a network  252 . The network  252  may be entirely private (such as a local area network within a business facility) or part or all of the network  252  may exist publicly (such as through a virtual private network (VPN) operating on the Internet). Further, one or more of the computers  202  may be specially designed to function as a server or host  254  facilitating a variety of services provided to the remaining client computers  256 . In one example, one or more hosts may be a mainframe computer  258  where significant processing for the client computers  256  may be performed. The mainframe computer  258  may comprise a database  260  which is coupled to a request handler  262  which implements a number of database procedures for other networked computers  202  (servers  254  and/or clients  256 ). The request handler  262  is also coupled to a resource manager  264  which directs data accesses through storage/backup subsystem  266  that facilitates accesses to networked storage devices  268  comprising a SAN. Thus, the storage/backup subsystem  266  on the computer  258  comprises the backup server which manages backup data objects from the client computers  256  stored on networked storage devices  268  in a distributed storage system. The SAN may include devices such as direct access storage devices (DASD) optical storage and/or tape storage indicated as distinct physical storage devices  268 A- 268 C. Various known access methods (e.g. VSAM, BSAM, QSAM) may function as part of the storage/backup subsystem  266 . 
     A typical implementation of the invention comprises a backup client program operating on a client computer  256 . The backup client program tracks and controls the making of backup copies of files created and/or changed by an application running on the client computer  256 . The backup client program coordinates its operations with a remote backup system (e.g. operating with a backup server communicatively coupled to the client computer through a network). The remote backup system manages backup copies which may be saved to a remote depository (e.g. on a SAN) for a plurality of client computers. Alternately, embodiments of the invention may be implemented as a stand alone backup program operating on a single computer directly managing the creation and deletion of backup copies of files automatically. In either case, the backup copies may be locally saved or saved to a remote storage device. 
     Those skilled in the art will recognize many modifications may be made to this hardware environment without departing from the scope of the present invention. For example, those skilled in the art will recognize that any combination of the above components, or any number of different components, peripherals, and other devices, may be used with the present invention meeting the functional requirements to support and implement various embodiments of the invention described herein. 
     3. Determining Which User Files to Backup 
       FIG. 3A  is a diagram to illustrate the relationship between a file name, a file type and a file type group. A file type group  300  may be associated with a specific application. Each file type group  300  may include one or more file types  302 ,  304 . In turn, each file type  302 ,  304  may include one or more file names  306 ,  308  and  310 ,  312 , respectively. As previously mentioned, file types are typically distinguished by having different file extensions appended to the file name. These various ways to classify files are employed in the backup settings for embodiments of the invention. 
       FIG. 3B  illustrates exemplary lists employed by an typical backup program to track backup settings  320  for files. The settings  320  include a set  322  of include lists identifying files by category, a few file names  324 , as well as a few file types  326  and finally an application  330 . Whenever a change is made to any file corresponding to any of the identified elements under any of the include categories, the backup program will perform the backup copy without requesting backup settings from the user. In a like manner, the settings include a set  332  of exclude lists identifying different files by the same categories, file name  334 , file type  336  and file type group  338 . Whenever a change is made to any file corresponding to any of the identified elements under any of the excluded categories, the backup program will not perform the backup copy but it will also not request backup settings from the user (because the software already has settings that address the particular file). Only if the backup software detects a change to a file that has no corresponding backup setting (to include or exclude), the backup software will then present a backup settings request to the user. It should be noted that the settings  320  are only present to illustrate and it is unimportant how the lists are structured. Separate lists of files, file types and file type groups to include may be used (and similarly, separate excludes lists). The following figures illustrate the operation of two example systems  400 ,  500 . The operation descriptions of the example systems  400 ,  500  are consistent with the functional block diagram of  FIG. 1B . 
       FIGS. 4A &amp; 4B  illustrates an exemplary embodiment of the invention providing a request for backup settings in response to a file being changed. This basic system  400  is capable of operating by using only the categories of file name  406  and file type  408  in the backup settings  404 .  FIG. 4A  illustrates the response when a change to a file  412  in the storage  410  occurs for which existing backup settings  404  are indicated (either in the include or exclude file name  406  list or the include or exclude file type  408  list as illustrated in  FIG. 3B ). In this case, the backup program  402  simply performs the indicated backup operation and saves a backup copy  414  of the file  412 . (Note that the indicated operation may alternately be to do nothing, in the case of the file being identified on an exclude list.) The backup copy  414  may also be saved to a remote storage (not shown) as previously described. 
       FIG. 4B  illustrates the response when a change to a file  416  occurs for which existing backup settings  404  are not indicated. The system  400  checks for backup settings  404  pertinent to the file  416  as before. However, in response to there being no pertinent backup settings  404 , the backup program  402  now provides a backup settings request  420  for the file  416  to the user. The backup settings request  420  includes a list of options for making any backup copies corresponding to the file  416 . The choices may be presented in a dialog box format. The first options are in a mutually exclusive radio checkbox group and the last item is a standalone checkbox. The handling of these options are described in detail in the following section. If the user indicates any option directing a backup (file name or type), a backup copy  418  is directly saved for the current file  416 . Separate from the list of options, the user can elect to indicate whether the setting is to be saved and applied to future changes to the file. It should be understood that the settings for file type  408  extend beyond merely the specific file  416  that prompted the backup settings request  420 . The file type selections will impact future changes to more files than simply the file  416 . Because of this, the system  400  is able to operate more efficiently and make fewer requests in the future. 
       FIGS. 5A &amp; 5B  illustrates an exemplary embodiment of the invention providing a request for backup settings in response to a file being changed by an unlisted application. This system  500  operates employing the categories of file name  506 , file type  508  and file type group  510  (e.g. an associated application) in the backup settings  504 .  FIG. 5A  illustrates the response when a change to a file  514  in the storage  512  occurs for which existing backup settings  404  are indicated (either in the include or exclude file name  406  list, the include or exclude file type  408  list or the include or exclude application list  510  as illustrated in  FIG. 3B ). The system  500 , e.g. the backup program  502  monitors changes to files in the storage  512  as well as the applications responsible for those changes. For this example, application  518  is responsible for the change to file  514  and the application  518  is included in the file type group list  510 . Thus, the backup program  402  simply performs the indicated backup operation and saves a backup copy  516  of the file  514 . (Note that in the case of the file being identified on an exclude list, the indicated operation may alternately be to do nothing.) The backup copy  516  may also be saved to a remote storage (not shown) as previously described. 
       FIG. 5B  illustrates the response when a change to a file  416  occurs for which existing backup settings  404  are not indicated. The system  500  checks for backup settings  504  pertinent to the file  520  as before. However, in response to there being no pertinent backup settings  504 , the backup program  502  now provides a backup settings request  526  for the file  520  to the user. The backup settings request  526  includes a list of options for making any backup copies corresponding to the file  520 . The choices may be presented in a dialog box format. The first options are in a mutually exclusive radio checkbox group and the last item for saving is a standalone checkbox. The handling of these options are described in detail in section 4 hereafter. If the user indicates any option directing a backup (file name, type or application), a backup copy  522  is directly saved for the current file  520 . The user can elect to indicate whether the setting is to be saved and applied to future changes to the file independent from the first list of options. It should be understood that the backup settings for file type  508  extend beyond merely the specific file  520  that prompted the backup settings request  526  and the backup settings for the application  524  (file type groups  5   10 ) extend further beyond those for file type  508 . The file type selections will impact future changes to more files than simply the file  520 . The file type group selections (e.g. of an application) will impact future changes to any file of any file type that is changed by the application. Because of this, the system  500  is able to operate even more efficiently and make even fewer requests to the user in the future. 
     A typical embodiment of the invention may be implemented using a typical backup system, e.g. IBM Tivoli Continuous Data Protection for Files (CDP). The backup system can utilize hooks or filters the operating system that allowing it to detect when a file has been changed and what application changed it. The backup system performs “copy on close” backups; the software waits for an application to modify a file and close it before the backup software makes the determination whether to back it up. The backup software has an exclude file list and an include file list that are checked each time a file changes so that the backup software can determine if it should be backed up. These include/exclude lists can be populated with full file names and paths or with wildcard expressions to represent a class of files (file names, file types, or file type groups). Conventional syntax and expressions known in the art for denoting files and directories may be used. 
     In one exemplary embodiment of the invention, a second set of include/exclude list may be created as previously described. This additional set may be used to track applications, rather than file names or file types. For example, if a user decided that all Microsoft Word generated files should be backed up, Microsoft Word would be added to the application include list. If the user decided that Lotus Notes generated files should not be backed up, Lotus Notes would go into the application exclude list. The backup software can check these new application include/exclude at the same time it checks the file include/exclude lists. Although some other software have employed techniques for monitoring applications, e.g., firewall software such as ZoneLabs firewall software, the manner and objectives are unrelated to the requirements of backup software as described in the present application. 
       FIG. 6  is a flowchart of an exemplary method  600  for determining which user files to backup for a backup product. The method  600  includes with the operation  602  of monitoring changes to a file in a storage. In operation  604 , a check is made to determine whether backup settings related to the file already exist. In operation  606  backup settings related to the file are requested and applied in response to the file being changed and the backup settings related to the file not already existing, the backup settings being applied to control operation of a backup system to make one or more backup copies of the file. In some embodiments, checking for existing backup settings related to the file can involve the application that changed the file. For example, checking for existing backup settings related to the file can include the suboperations of identifying the application responsible for changing the file and determining whether an application list comprising one or more set backup applications includes the application. If the application list includes the application, the backup settings are not requested. These optional operations may be employed to reduce how frequently backup settings will be requested from the user. 
     The method  600  may be further modified consistent with the program and system embodiments previously described. For example, applying the backup settings may comprise electively saving the backup settings. Saving the backup settings involves adding the application responsible for changing the file to the list of set backup applications. 
     4. Example Request Response for Determining Backup Settings 
     Returning to the example of a later installed PowerPoint application and referencing the same backup setting selection choices presented in  FIGS. 5A &amp; 5B , an example request response for determining backup settings may be described if PowerPoint is saving a file for the first time. The example file is named “C:\MyFirstPowerPoint.ppt”. The include/exclude lists of the backup settings will be populated based on the user&#39;s choice among the six mutually exclusive options in the following manner. The first pair of choices are directed exclusively to the present file that was changed by file name. If the user selects the first option to backup the file, “C:\MyFirstPowerPoint.ppt” will be put into the file include list. If the user selects the second option to not backup the file, “C:\MyFirstPowerPoint.ppt” will be put into the file exclude list. The next pair of choices are directed to treatment of the file type associated with the file just changed. The third option of indicating a backup up the file type will result in “*.ppt” being put into the file include list. If the indicates not to backup the file type, “*.ppt” will be put into the file exclude list. The last pair of options are directed to the file type group associated with the file type of the file that was changed. In this case, the file type group corresponds to all the file types associated with the application responsible for changing the file. If the user directs the backup software to backup files from the associated application, PowerPoint will be put into the application include list. Similarly, if the user indicates not to backup files from this application, PowerPoint will be put into the application exclude list. 
     The selected option will be immediately performed only for the file that was changed. Separately, the user may also indicate whether the same selection is to be automatically applied to applicable files that are changed thereafter by electively saving the backup setting. If the user does not elect to save the backup setting (e.g. by selecting “Always remember this setting”), no changes to the include/exclude lists will be made. If the file is changed again later, the user will be prompted again. As described, the foregoing example assumes that the user elected to save the settings. 
     This concludes the description including the preferred embodiments of the present invention. The foregoing description including the preferred embodiment of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible within the scope of the foregoing teachings. Additional variations of the present invention may be devised without departing from the inventive concept as set forth in the following claims.