Data backup and self-service data restoration

A user terminal stores security information for each of a plurality of files during a backup of the files. The user terminal also stores information regarding the configuration settings of one or more terminals from which a user may access the plurality of files. During a restore of the files to a remote user terminal, the user terminal at which the restore command was issued utilizes the saved security information to emulate the remote terminal as a virtual endpoint for the files. The user terminal determines whether the user is authorized to access the files within the virtual endpoint based on the saved security information, and restores the files to the remote terminal if the user is authorized for access to the files within the virtual endpoint.

BACKGROUND

The present disclosure relates generally to systems for backing up and restoring data, and more particularly to computing devices for backing up data, and autonomously authenticating users to restore the backed up data.

Computers are generally very reliable. Sometime, however, they break down. And when they do, valuable data stored on those computers may be lost. Most users typically perform regular backups of their data utilizing a specialized backup utility to help protect against inadvertent data loss. This way, once a computer that has lost its data has been fixed, the backed up data can be restored to the computer utilizing a specialized restore utility.

Conventionally, data restoration is performed by mounting a medium onto which the data has been backed up, such as a tape drive, for example, to a computer. However, mounting such devices can only be performed on mutually compatible systems. In some cases, data can be backed up to the cloud; however, such systems require complicated security mechanisms to ensure that users can only access the data they are authorized to access. Further, restoration from such systems is not always timely.

Currently, once data has been lost, users wish to have faster access to their restored data. Additionally, many users balk at the prospect of having to open support tickets with their administrators to have that data restored. At the same time, network administrators want to maintain security of the data, and thus, wish to provide the users with access only to the backed up data they are authorized to access.

BRIEF SUMMARY

The present disclosure provides a method, a computing device, and a computer program product for backing up one or more data files from a user terminal to a storage medium, and for restoring those files to the device from the storage medium. Further, embodiments of the present disclosure autonomously authorize the user for access to the backed up files to facilitate the restoration of the files.

In one embodiment, the present disclosure provides a method for restoring previously backed up files. The method is performed by a user terminal, and recites sending a restore command to a network server. The restore command controls the network server to restore a file from a first storage device to a remote user terminal. The method then recites receiving an authentication request from the network server requesting that the user be authenticated for access to the file from the remote user terminal. To authorize the user as requested, the method creates a virtual endpoint comprising a temporary file. In this embodiment, the virtual endpoint comprises an emulation of the remote user terminal and is created from a configuration parameter of the remote user terminal. Additionally, the temporary file comprises a security context generated from a security parameter associated with the file to be restored. The method then calls for authenticating the user for access to the temporary file within the virtual endpoint based on the security parameter. If the user is granted access to the temporary file within the virtual endpoint, the file is restored to the remote user terminal.

In another embodiment, the present disclosure provides a user terminal comprising a communications interface circuit and a processing circuit. The communications interface circuit is configured to communicate data with a network server. The processing circuit is configured to send a restore command to the network server to control the network server to restore a file from a first storage device to a remote user terminal. In response to sending the restore command, the user terminal may receive an authentication request from the network server requesting that the user be authenticated for access to the file from the remote user terminal. The user terminal then creates a virtual endpoint comprising a temporary file. In this embodiment, the virtual endpoint comprises an emulation of the remote user terminal generated from a configuration parameter of the remote user terminal, while the temporary file comprises a security context generated from a security parameter associated with the file to be restored. The user terminal then authenticates the user for access to the temporary file within the virtual endpoint based on the security parameter, and restores the file to the remote user terminal if the user is granted access to the temporary file within the virtual endpoint.

In another embodiment, the present disclosure provides a computer program product comprising a computer-readable storage medium configured to store a control application that, when executed by a processor circuit on a user terminal, configures the processor circuit to send a restore command to the network server. The restore command controls the network server to restore a file from a first storage device to a remote user terminal. The control application also controls the processor circuit to receive an authentication request from the network server requesting that the user be authenticated for access to the file from the remote user terminal. The control application then controls the processor circuit to create a virtual endpoint comprising a temporary file. The virtual endpoint comprises an emulation of the remote user terminal generated from a configuration parameter of the remote user terminal, and the temporary file comprises a security context generated from a security parameter associated with the file to be restored. The control application then controls the processing circuit to authenticate the user for access to the temporary file within the virtual endpoint based on the security parameter, and restore the file to the remote user terminal if the user is granted access to the temporary file within the virtual endpoint.

In addition to the foregoing embodiments, the present disclosure also provides a method for backing up the data files. Particularly, in one embodiment, a method performed by a user terminal creates a security record for a file responsive to receiving a user command to backup the file to a first storage device. The security record is created to comprise a security parameter defining a security context for the file. The method also calls for determining a configuration parameter of the user terminal for emulating the user terminal as a virtual endpoint during a restoration of the file, and obtaining a security index for the security record. In one embodiment, the security index comprises a unique value that links the file to the security record. The security record, the configuration parameter, and the security index are then all stored in a second storage device, which is different from the first storage device. Once stored, the method calls for backing up the file to the first storage device.

In another embodiment, the present disclosure provides a user terminal configured to backup files to a first storage device. In this embodiment, the user terminal comprises a memory circuit that stores a plurality of data files to back up, and a processor circuit. The processor circuit is configured to create a security record for a file responsive to receiving a user command to backup the file to a first storage device, in which the security record comprises a security parameter defining a security context for the file. The processor circuit is also configured to store the security record in a security catalog file at a second storage device different from the first storage device, determine a configuration parameter of the user terminal for emulating the user terminal as a virtual endpoint during a restoration of the file, and store the configuration parameter at one of the first and second storage devices. The user terminal is further configured to obtain a security index (e.g., a unique value linking the file to the security record) for the security record, and obtain a security index for the security record. In this embodiment, the security index comprises a unique value linking the file to the security record. Once the data is extracted and stored, the user terminal backs the files up to the first storage device.

In yet another embodiment of the present disclosure, a computer program product comprising a computer-readable storage medium is provided. The computer-readable storage medium is configured to store a control application that, when executed by a processor circuit on a user terminal, configures the processor circuit to create a security record for a file responsive to receiving a user command to backup the file to a first storage device. The security record comprises a security parameter that defines a security context for the file. The control application also controls the processor circuit to store the security record in a security catalog file at a second storage device different from the first storage device, determine a configuration parameter of the user terminal for emulating the user terminal as a virtual endpoint during a restoration of the file, and store the configuration parameter at one of the first and second storage devices. The control application also controls the processor circuit to obtain a security index (e.g., a unique value linking the file to the security record) for the security record, and obtain a security index for the security record. In this embodiment, the security index comprises a unique value linking the file to the security record. Once the data is extracted and stored, the control application controls the processor circuit to backup the files to the first storage device.

Of course, those skilled in the art will appreciate that the present embodiments are not limited to the above contexts or examples, and will recognize additional features and advantages upon reading the following detailed description and upon viewing the accompanying drawings.

DETAILED DESCRIPTION

Accordingly, the present disclosure provides a computing device, a computer program product, and a corresponding computer-implemented method for backing up data files to a storage medium, and for restoring those backed up files from the storage medium to a computing device responsive to a user request. Additionally, a computing device configured according to embodiments of the present disclosure permits the user to restore only those files that the user is authorized to access. The computing device on which the files are restored may be the same computing device from which the files were backed up, or it may be different than the computing device from which the files were backed up. To accomplish this goal, embodiments of the present generate security information for each file that is backed up, and store that information in a security catalog separately from the data files being backed up. In response to receiving a user request to restore the data, the computing device utilizes this saved security information to authorize the requesting user and restore the data files.

Turning now to the drawings,FIG. 1is a block diagram illustrating a system10configured according to one embodiment of the present disclosure. As seen inFIG. 1, system10comprises an IP network12that communicatively interconnects a plurality of user terminals20a,20b(collectively referred to as “user terminals20”) to a network server40and an associated database (DB)50. Those of ordinary skill in the art will readily appreciate that the simplicity of the system10inFIG. 1is for illustrative purposes only and that one or more additional servers, terminals, and other devices and entities may or may not be present in system10.

The IP network12may comprise any private or public network known in the art (e.g., the Internet). Generally, the IP network12is configured to carry packets of data between the user terminals20and the server40. Such packets are communicated utilizing the well-known Internet Protocol (IP), and may comprise user requests to backup data to, and restore data from, a database such as DB50or other data storage medium. Additionally, the data packets communicated over the IP network12carry the actual data being backed up and restored in compliance with the user requests.

The user terminals20may comprise any computing devices known in the art capable of communicating with the server40via IP network12to backup data to, and restore data from, DB50. Although not explicitly shown, the communications links established between the user terminals20and the IP network may comprise cabling, such as Ethernet cabling, for example, or a well-known wireless area network (WAN) access connection, or in some embodiments, a Radio Access Network (RAN) connection. Some examples of suitable terminals20include, but are not limited to, desktop computing devices, laptop and notebook computing devices, tablet computing devices, mobile communication devices (e.g., smartphones), and the like.

As described later in more detail, the user terminals20store one or more files locally in a local memory circuit. From time-to-time, a backup utility is invoked on the user terminals20to backup those files to DB50, which may comprise any computer-readable storage media known in the art including, but not limited to, a tape drive, a cloud-based storage medium, and a disk or disk array. In accordance with the present disclosure, the backup utility also controls the user terminals20to generate and/or obtain security information for each file, and to save that security information to a security catalog. The backup utility also controls the user terminals20to obtain their configuration settings, and store those settings in a configuration file along with the configuration settings of the other user terminals20connected to the network12. Once this information has been generated or obtained, the security catalog and the configuration file may be stored in a computer-readable storage medium such as database52or a memory circuit associated with the network server40, for example.

More particularly, the security catalog and the configuration file are files that are stored separately from, and independently of, the actual files being backed up to DB50. In accordance with the present disclosure, the information in these files is used by the user terminals20when restoring the backed up data. Particularly, as described in more detail later, the user terminal20that issues a restore command uses the configuration settings associated with a terminal that is designated to receive the restored files to emulate the designated terminal on a remote computing device (e.g., another user terminal20or the network server40). The user terminal20issuing the restore command can also utilize the security information stored in the security catalog to create temporary files within the context of the emulated device, and determine which files, if any, a given user is authorized to access from the designated terminal. The determination will indicate whether the given user is permitted to restore certain files to the designated terminal.

The network server40is also a computing device that handles the user requests from the user terminals20. Particularly, during a file backup operation performed by user terminal20, the server40receives data files stored at the user terminal20along with the file security information and the configuration settings of the user terminal20. The data files being backed up are then sent to the server40for storage in DB50, while security information and configuration information are stored at DB52or network server40.

During a restore operation initiated by user terminal20, the network server40retrieves the files to be restored from the DB50, and sends the files to the user terminal20that has been designated to receive the restored files. However, as noted above, and as described in more detail below, the network server40will only restore the files to the designated user terminal if the user is authorized to access those files from the designated user terminal.

FIG. 2is a flow diagram illustrating a method60for backing up files stored locally at a user terminal20. For ease of discussion, method60is described as if user terminal20awere performing the backup; however, this is for illustrative purposes only. Those of ordinary skill in the art should appreciate that method60may be performed at network server40, or at any user terminal or computing device that is configured to backup data files to a database such as DB50.

Method60begins with the user terminal20areceiving a user command to perform a backup of the files stored in its memory (box62). For example, a user may launch a backup utility application at the user terminal20aand manually issue a backup command. Alternatively, the backup utility application at the user terminal20amay have been configured at one point to automatically issue a backup command at predetermined times. Regardless of how the backup command is issued, however, the user terminal20ais configured to process each file to be backed up in accordance with the present disclosure.

Particularly, user terminal20awill first determine one or more of its configuration parameters and store those configuration parameters in a database such as DB52, for example (box64). By way of example only, such configuration parameters comprise configuration settings and end point data that define the configuration of user terminal20ato network12. The configuration settings and end point data may include, but is not limited to, one or more of the identities (e.g., IP addresses) of the user terminal20a, the identities of other user terminals or computing devices (e.g., user terminal20band network server40) that a given user is permitted to access the file from, details regarding the domain of the user terminal20a, the settings that allow user terminal20ato share files across the network, settings for one or more applications executing at the user terminal20a, and other information about the user terminal20athat would allow a computing device connected to network12to recreate the user terminal20aas a virtual endpoint during a file restore operation.

Such configuration parameters may be obtained, for example, from one or more configuration files and/or metadata associated with or stored at the user terminal20a. Additionally or alternatively, the configuration parameters may be obtained from the underlying OS platform executing on the user terminal20avia known Application Programming Interfaces (APIs) and the like. Regardless of how or from where the configuration parameters are obtained, however, recreating the user terminal20aas a virtual endpoint at another computing device during a restore operation allows for the determination of whether the user is permitted to access the file in cases where such permissions cannot be otherwise determined.

Once the configuration parameters for user terminal20aare stored, the method60begins processing the files for backup to DB50. For illustrative purposes, the embodiment seen inFIG. 2assumes that there is at least one file to be backed up. However, if no files exist, or if no existing files are to be backed up, method60would simply end.

If there are files to be backed up (box66), the user terminal20awill select a file and generate or obtain security information for the file. The user terminal20awill then store that security information in a security record generated for the file (box68). By way of example, the user terminal20may extract a security descriptor from the file. A security descriptor, as known in the art, is a data structure that stores security access information for a file. In some cases, security descriptors have access lists comprising access control entries that identify which users or groups of users can access the file. Further, security descriptors may comprise information and data that specifies the user permissions with respect to reading/writing the file, as well as the access levels for each user. Additionally, security descriptors might comprise information that identifies the owner of the file. Other data and information related to the user's ability to access a file to be restored may also be included in the security descriptor.

The information in the security descriptor and/or other security information is then used to determine whether a security record for the file already exists in a security catalog configured to store the security information (box70). That is, two different files may have the same security-related information. Therefore, the user terminal20awill first search a security catalog in which all security records are stored to determine whether the security information for the file to be backed up matches the security information of a file that was previously backed up. If a security record containing the security information already exists in the security catalog, the user terminal20awill simply associate the name of the file with the existing security record (box72). For example, the user terminal20amay add the name of the file being backed up to the security record, or link the name of the file being backed up to the existing security record. Of course, other methods of associating the file being backed up with an existing security record are also possible. If a security record does not exist in the security catalog, however (box70), the user terminal20awill create a new security record for the file, populate the security record with some or all of the security information obtained from the file, and add the newly created security record to the security catalog (box74).

Such checks allow embodiments of the present disclosure to maintain a single security record in the security catalog for multiple files. This provides benefits that conventional backup and restore utilities are not configured to provide. For example, the performance of the checks simplifies the validation of the user for a given file when restoring the file thereby saving the user time. Further, because the security record that comprises the security information is not unnecessarily duplicated, precious memory resources are judiciously managed and saved.

Additionally, as previously stated, the security catalog that comprises the security record need not be stored in the same storage medium to which the files are backed up (e.g., in DB50). Rather, embodiments of the present disclosure store the security catalog in another computer-readable storage medium separately from the data files being backed up, such as in DB52or in memory at the server40. Therefore, with the present disclosure, there is no need to utilize the actual backed up data files to determine user authorization. Rather, the information in the security record may be used independently of the backed up data files. Among other benefits, this allows for faster and more controlled access to the backed up data files while protecting the actual data from unauthorized access.

Once the security record is stored, the user terminal20agenerates a security index for the security record (box76) and stores the security index in a backup catalog at the network server40or at DB52(box78). In one embodiment, the security index comprises a unique value that is generated by the user terminal20ausing the information in the security record. For example, the unique value may be a hash value generated by user terminal20abased on at least some of the contents of the security record. As described later in more detail, the security index is utilized during the restoration process of the file to facilitate the controlled access to the file by making the task of locating the proper security record in the security catalog easier and faster. Particularly, the user terminal20agenerates the security index and associates the security index with the name of the file being backed up. Then, the user terminal20aassociates the security index with an offset that identifies the location of the security record in the security catalog relative to the beginning of the security catalog. Given a filename, a user terminal perfomring a restore of the file, such as user terminal20b, for example, can retrieve the security index for the file, and utilize the associated security index to determine the offset for the security catalog. So determined, the user terminal performing the restore operation can identify the appropriate security record for the file, and retrieve the security information for the file being restored.

Once the security index is stored, the user terminal20determines whether there are any more files to process (box66). If so, the process detailed above is repeated for each file to be backed up. When there are no more files to process, however, the user terminal20aperforms the backup of the user files from user terminal20ato DB50(box80). Method60ends once the backup procedure completes.

FIG. 3is a flow diagram illustrating a method90for restoring one or more data files that were previously backed up to DB50according to one embodiment of the present disclosure. By way of example, method90may be performed in situations where a particular user terminal (e.g., user terminal20a) is being replaced with another user terminal, and the files that were previously backed up from user terminal20awill be placed on a replacement user terminal. Another situation in which method90may be performed is where a user restores files to user terminal20athat were previously backed up from user terminal20a, but using a different user terminal (e.g., user terminal20b). For example, the user performing the restore operation may be unable to directly interact with user terminal20a. In these situations, the user may control the restore operation from another, different user terminal.

To that end, method90is described inFIG. 3as if a user at user terminal20bwas performing a restore operation to user terminal20a. Those skilled in the art will readily appreciate, however, that this is for illustrative purposes only. Method90may be performed in other situations where the user's ability to access a previously backed up file from a specified user terminal cannot be readily confirmed. That is, the user terminal that is used for restoring the backed up files may be the same user terminal that was used to backup the files, or it may be a different user terminal communicatively connected to system10.

Method90begins with the user terminal20binitiating a restore procedure to restore a plurality of files previously backed up from user terminal20aand stored in DB50to user terminal20a. By way of example only, a user may invoke a restore utility at the user terminal20band issue a command to restore to user terminal20afiles that were previously backed up from user terminal20ato DB50(box92). Responsive to sending the restore command, the user terminal20bwill receive a request from the network server40requesting that the user terminal20bdetermine whether the user is authorized to access the backed up files from user terminal20a(box94). Such requests may be prompted, for example, by the inability of network server40to determine whether the user can access the requested files from user terminal20a. However, if the user is authorized to access the backed up files from user terminal20a, the files are restored to the user terminal20a(box96) and the method90ends.

If the user cannot be authorized for access to the files from user terminal20ato the backed up files, method90is configures the user terminal20bto determine whether the user is authorized to access the backed up files from user terminal20a. Particularly, for each file to be restored (box98), method90creates the user terminal20aas a virtual endpoint in memory (box100). As stated above, configuration parameters defining the configuration settings of the user terminals20are stored in a storage medium such as DB52or at network server40. Therefore, in one embodiment, user terminal20bretrieves the configuration parameters for user terminal20a, and utilizes those configuration parameters to emulate the user terminal20aas a virtual endpoint.

Those of ordinary skill in the art should appreciate that in some embodiments, user terminal20bcreates the user terminal20aas a virtual endpoint in local memory. In these cases, the user terminal20bwould comprise the necessary resources and computing power to create and maintain the virtual endpoint. In other cases, however, the user terminal20bmay not comprise the resources necessary to create the virtual endpoint. Such situations may occur, for example, when user terminal20bis embodied as a tablet or mobile computing device, and/or comprises an operating system that is not fully compatible with the operating system of the designated user terminal20a. In these cases, the user terminal20bis configured to provide the configuration parameters and security record information to another user terminal, or to network server40, and use well-known messaging to control that device to create the virtual endpoint and perform the authorization.

Regardless of where the virtual endpoint is created, however, the virtual endpoint is generated to include a temporary file having the same security context as that of the actual file being restored. Particularly, the information contained in the security record that was backed up with the file being restored identifies the user's access and permissions with respect to the file. The user terminal20buses this information to create the temporary file with the same user access and permissions as if the file were stored at the user terminal20a.

Once the virtual endpoint is generated, method90will attempt to authorize the user for access to the temporary file using the information in the associated security record (box102). If the user is authorized for access to the temporary file in the virtual endpoint (box104), the method90can safely assume that the user is also authorized to access the actual backed up file from user terminal20a. The name of the file to be restored can then be placed into a list for display to the user (box106) and restored to the user terminal20a(box108). The method for restoring the files continues until there are no more files to restore (box98), at which time method90ends.

Thus, embodiments of the present disclosure configure a “local” user terminal from which a user issues a restore command (e.g., user terminal20b) to determine whether that user is authorized access to those files from a “remote” user terminal (e.g., user terminal20a) to which the files are to be restored. To accomplish this, one embodiment of the present disclosure configures the computing device on which the virtual endpoint is created to interact with its underlying OS and platform to authorize the user on the remote user terminal.

Particularly, method110, seen inFIG. 4, begins with the user terminal20bobtaining the security record that is associated with the particular file that is to be restored to user terminal20afrom the security catalog stored in in DB52(box112). As previously stated, the security record is stored in a security catalog file that may or may not be co-located on DB50along with the data files to be restored, and may be quickly located using the security index that was generated during the backup procedure for the file.

Upon retrieving the security record, the method110will first determine whether the security file is already associated with another file that was previously restored to user terminal20, as well as whether the user has already been authorized to access the file from user terminal20a(box114). By way of example only, method110may check to determine whether the file name of the file being restored is associated with a security record that is linked to a file that the user is already authorized to access from user terminal20a. If so, the user is also considered to be authenticated for access to the file being restored and method110ends. If not, method110uses the information in the security record (e.g., the filename and username/password combination for the user) to generate and send an access request to the platform of the user terminal20b(or whichever computing device is emulating user terminal20ausing the virtual endpoint) to determine whether the user is entitled access to the file from user terminal20a(box116). Such functionality may be accessed, for example, by invoking an API function call to the underlying OS of the user terminal20b. If the access request is granted by the OS (box110), the user is authenticated for access to the file from user terminal20a(box120). Otherwise, the user is not authenticated for access to the file from user terminal20a(box122).

Thus, embodiments of the present disclosure utilize the security information stored in the security record to authenticate the user for access to the file with the underlying OS. This differs from conventional applications that require users to manually provide different username/password combinations specifically for the backup/restore utility. Additionally, because the present disclosure stores the security information in a security catalog separately from the actual data files, there is no need to access the actual data files to determine whether a given user is or is not authorized to access the backed up files. Therefore, the actual data files remains secure from unauthorized users.

As stated previously, embodiments of the present disclosure need not save a security record for each backed up file. Rather, the present disclosure creates a single record for a given file, and then links other files having the same security information to that security record. Not only does this save memory resources, but as seen above, it also saves time when authorizing a user during the restore operation.

More particularly,FIG. 5is a flow diagram illustrating a method130for determining whether a user is or is not authorized for access to a given file. Method130begins by determining whether the file to be restored is linked to an existing security record for another file (box132). If not, the method130authenticates the user for access to the file from the designated user terminal (e.g., user terminal20ain this example) utilizing the information in the security record for the file, as previously described (box138). Otherwise, the method130determines whether the user is already authorized for access to the file linked to the security record (box134). If so, the method130can assume that the user is also authorized for access to the file being restored (box136). If not, the method120authenticates the user for access to the file utilizing the information in the security record, as previously described (box138).

FIG. 6is a block diagram illustrating some of the components that comprise a user terminal20and a network server40according to one embodiment. As seen inFIG. 6, user terminal20comprises a processor circuit22, a memory circuit24, a communications interface circuit26, and a user input/output (I/O) interface28. As readily understood by those of ordinary skill in the art, other components not explicitly shown in the figures may also be present.

The processor circuit22may be implemented by one or more microprocessors, hardware, firmware, or a combination thereof, and generally controls the operation and functions of user terminal20according to the appropriate standards. Such operations and functions include, but are not limited to, communicating with network server40to perform both backup and restore operations on data stored in memory circuit24, as well as authorizing a user for access to one or more of the backed up files, as previously described. In this regard, the processor circuit22may be configured to the implement logic and instructions of a control application30(e.g., a backup and/or restore utility) stored in memory circuit24to perform these functions according to the embodiments as previously described.

The memory circuit24may comprise any non-transitory, solid state memory or computer readable media known in the art. Suitable examples of such media include, but are not limited to, ROM, DRAM, Flash, or a device capable of reading computer-readable media, such as optical or magnetic media. The memory circuit24stores programs and instructions, such as control application30, that control the processor circuit22of user terminal20to communicate with server40and to perform the backup, restore, and authorization functions previously described.

The communications interface circuit26facilitates communications with the network server40via IP network12. To accomplish this function, the communications interface26may utilize any protocol or protocols known in the art to communicate messages and data in accordance with the previously described embodiments. In one embodiment, communications interface26comprises an ETHERNET card that communicates with server40utilizing the well-known Transmission Control Part (TCP)/IP protocols. However, in other embodiments, the communications interface26comprises a wireless transceiver capable of communicating with remote devices via a well-known cellular or wireless protocol.

The user I/O interface28provides the components necessary for a user to interact with the user terminal20. Such components include, but are not limited to, a display, a keyboard, and a pointing device, such as a mouse, for example, that allows a user to interact with the control application30to issue the previously described backup and restore commands and to view a list of files to backup and/or restore.

The network server40also comprises a processor circuit42, a memory circuit44, and a communications interface circuit46. The processor circuit42may be implemented by one or more microprocessors, hardware, firmware, or a combination thereof, and generally controls the operation and functions of server40according to the appropriate standards. Such operations and functions include, but are not limited to, communicating with the user terminals20to backup data to, and restore data from, DB50. In this regard, the processor circuit42may be configured to the implement logic and instructions of a control application48stored in memory circuit44to perform these functions according to the embodiments as previously described.

The memory circuit44may comprise any non-transitory, solid state memory or computer readable media known in the art. Suitable examples of such media include, but are not limited to, ROM, DRAM, Flash, or a device capable of reading computer-readable media, such as optical or magnetic media. The memory circuit44stores programs and instructions, such as control application48, that control the processor circuit42to communicate with the user terminals20via the communications interface circuit46and network12, and to perform the backup and restore functions previously described.

The communications interface circuit46facilitates communications with the user terminals20via IP network12. To accomplish such communications, the communications interface circuit46may utilize any protocol or protocols known in the art to communicate messages and data in accordance with the previously described embodiments. As above, the communications interface circuit46may comprise an ETHERNET card that communicates with the user terminals20utilizing the well-known TCP/IP protocol, a transceiver operating according to any of a variety of well-understood wireless and/or cellular protocols, or the like.

Thus, the foregoing description and the accompanying drawings represent non-limiting examples of the methods and apparatus taught herein. As such, the present invention is not limited by the foregoing description and accompanying drawings. Instead, the present invention is limited only by the following claims and their legal equivalents.