1. Technical Field
The present invention relates in general to a system and method for institutions to restore computer systems located throughout an organization. In particular, the present invention relates to a system and method for periodically restoring an approved organizational system image while retaining user files and customizations.
2. Description of the Related Art
Few technological events compare with the adaptation of computer systems, especially personal computer systems (PCs), by organizations. Personal computer systems are relatively inexpensive and often provide exceptional computer power to an individual user. The personal computer systems each have a power supply, one or more processors, memory, nonvolatile storage, and input/output (I/O) devices that typically include a display monitor, a keyboard, and a selection device, such as a mouse. Personal computer systems provide flexibility in that a user can use the personal computer system whenever power is available to the system. Applications loaded on the personal computer system are therefore available whenever the user wishes to use them.
In an organization, the computer systems are typically networked together so that individual personal computer systems have access to organizations resources, such as printers, databases, and server software. In addition, the organizational network is often linked to a global network, such as the Internet, to allow people within the organization to communicate electronically with people outside the organization. While this modern networked arrangement provides vast resources and flexibility to the individual users, it is not without significant challenges.
One challenge involves managing many personal computer systems scattered throughout an organization when each of the systems can contain different operating systems and different applications. Exacerbating this challenge is the fact that there may be many versions available for each of the operating systems and applications as well as “fixes,” often called “patches” that are released by software vendors to correct errors in the operating system and applications or to address problems, such as security exposures, discovered after release of a particular version. To address this challenge, many organizations have one or more approved organizational image of the operating system and applications that it provides to its employees and other authorized users. Adopting an approved image allows the organization to take advantage of volume discounts often available when licensing multiple copies of operating systems and applications as well as simplifying the management of its personal computer systems. Now, rather than having to manage multiple systems each of which having vastly different operating systems and applications, the organization (in particular, the information technology (IT) personnel), only have to manage a limited set of images. This allows IT personnel to understand and address problems encountered by users much more efficiently. Also, when new releases or a new application is approved, the image of each computer system can be updated during a “rollout” of the new image. Finally, the IT personnel can make patches to the approved images available on the network so that the users can apply the patches. This is often important, especially when the patches include fixes to security issues identified with a particular release of a particular application. While having approved images and applying patches helps increase system management efficiency and limit security exposures faced by an organization, other challenges still remain.
Programs are readily available, either through a network (e.g., the Internet) or by the user inserting media (e.g., a CD-ROM, a diskette, etc.) into the computer systems. Employees or other approved users adding unapproved software causes a myriad of challenges. First, the software loaded by the employee may be an unlicensed copy of software, such as an illegal copy or pirated software. If such software is found on the organization's computer systems, the organization may face fines, licensing fees, and copyright damages in addition to the damage to the organization's reputation if the infraction is disclosed to the media. Second, unauthorized software, especially software downloaded from the Internet, may contain malicious code, such as viruses or spyware. Such malicious code can infect not only the computer system onto which it was loaded, but may also spread to other computer systems within the organization. An effective attack by such malicious code may cause enormous economic damage to the organization. Finally, even if the unauthorized software is legal and does not contain malicious code, over time the loading of additional software makes the computer system run more slowly and may also cause conflicts with applications included in the approved organizational image.
What is needed, therefore, is a system and method that restores the organization's computer systems to the authorized image. Further, what is needed is a system and method that retains the user's data files stored on the computer system as well as eliminating any unauthorized programs. Finally, what is needed is a system and method for securely applying any patches to the operating system and applications included in the authorized image.
It has been discovered that the aforementioned challenges are resolved using a system and method that automatically restores an organization's computer system back to an approved image without losing user data files, application customizations, or critical patches. Computer systems for use by employees and other authorized users are set up to include one or more primary drives (e.g., “c:” in an MS-DOS™ or Windows™ environment) and a second nonvolatile storage area. The operating system and image approved by the organization are loaded onto both the primary drive as well as the second nonvolatile storage area. In addition, restoration software is loaded on the computer system. Over time, user-created data files are saved either to designated subdirectories (or “folders”), such as “My Documents.” In addition, data files can often be recognized by their file extensions, such as .doc, .wpd, etc. The user can also customize the applications and operating system, for example changing the background of the desktop, customizing the menus and toolbars, etc. In addition, periodically the providers of the operating system software and the application software release fixes, in the form of “patches.” These patches are applied to the operating system and applications stored on the primary drive and a copy of each of the patches is stored on the second nonvolatile storage area.
Periodically, such as weekly or monthly, the restoration software, also called the restoration tool, is executed. The restoration software disconnects the user's computer system from the network so that the computer system is not vulnerable to viruses and other malicious attacks while being restored. The restoration software copies the user's data files from the primary drive to the second nonvolatile storage area. In addition, customized settings and other preferences that the user has set for the operating system and/or any approved applications are also copied from the primary drive. Unauthorized programs, such as those brought in by an employee from home or downloaded from the Internet, remain on the primary drive and are not copied to the second nonvolatile storage area. The restoration software then reformats the primary drive, thus wiping out all unauthorized programs. The approved image is then copied from the second nonvolatile storage area to the primary drive. The approved image is the image of the operating system and the applications approved (and presumably licensed) for use by the organization. Patches that have been released for the operating system or applications included in the approved image are next applied using the copy of the patch that was stored in the second nonvolatile storage area. The user's data files (word processing documents, spreadsheets, etc.) that were stored copied from the primary drive are copied from the nonvolatile storage device back to the primary drive along with any operating system and application preferences or configurations that were set up by the user. At this point, the computer system is restored with the approved operating system and applications with patches applied as well as the user's data files and application/operating system configuration settings being loaded on the primary drive and any unapproved programs being removed from the computer system.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations, and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The following is intended to provide a detailed description of an example of the invention and should not be taken to be limiting of the invention itself. Rather, any number of variations may fall within the scope of the invention, which is defined in the claims following the description.
It will be appreciated by those skilled in the art that the primary drive can be a single physical and logical drive, or can consist of multiple drives (e.g., “c:”, “d:”, etc.). As used herein, the term primary drive is used to refer to the drives onto which the current version of the operating system, applications, and user data are stored, irregardless of whether one or multiple drives are used to store the data. Likewise, as used herein, a “second nonvolatile storage area” refers to a drive other than the primary drive. In a preferred embodiment, the second nonvolatile storage area is a hidden partition on a hard drive installed in the computer system. However, the second nonvolatile storage area can include one or more drives either physically or logically separated from the primary drive. For example, the second nonvolatile storage area could be a removable drive connected to the computer system with a firewire or USB interface or could even be a CD-RW or a DVD-RW disk. In addition, the second nonvolatile storage area can be a network-accessible drive.
IT department 100 purchases (licenses) the operating system(s) and applications that will be used by the organization from application and operating system vendors 130. Operating system and application code can be received on media 120, such as CD-ROMs, that are physically received by the IT department. In addition, the IT department may purchase applications and/or the operating systems from an online vendor. In an online purchase, code 140 is sent through a computer network, such as the Internet, where it is received at the organization's network 160 and stored on one of the IT department's computer systems.
IT department 110 uses the operating system and application software that was received, either on media and/or code received through the network, to create one or more approved images. In a small organization, a single image may suffice with each person in the organization using the same operating system and set of applications. In a larger organization, multiple approved images may be needed in order to control costs as well as to provide each person with the operating system and applications that they need. For example, on image may be created for managers with one operating system and applications used by managers, while a different image may be created for software developers with a different operating system and a different set of applications needed for software development.
The IT department includes “restoration” software (a restoration software tool) along with the approved image(s) and stores the approved images and restoration software in nonvolatile storage area 170. These approved images (including the restoration software) are loaded on computer systems and deployed to users 190. Periodically, application and operating system vendors release fixes, or patches, to their software. These patches are typically released through online services available from computer network 150 (e.g., available for download through the Internet). Patch code 140 is received by IT department 110 through computer network 150 and the organization's network 160. Patches generally address problems identified by the software vendors after release of the operating system and/or applications. Some of these problems relate to security vulnerabilities and, therefore, are sometimes critical in order to prevent exploitation by hackers, viruses and other malfeasant software (“malware”). In some organizations, patches are evaluated by the IT department before being distributed to users 190, while in other organizations the patches are downloaded directly by the end users. The IT department stores copies of patches to the operating system and applications included in the organizations approved image(s) in nonvolatile storage area 180.
At step 260, master image 270 is created of the model computer system. The master image includes an image of both the primary drive and the second nonvolatile storage area. At step 275, the master image is replicated onto the primary and second nonvolatile storage area of additional computer systems 280. These computer systems may include any type of computer system such as desktop computers, server computers, and laptop computers. At step 290, the computers set up with master image 270 are distributed to users throughout the organization. Set up processing thereafter ends at 295.
At step 345, the user uses computer system 325. Periodically, patches 360 are provided for the applications that were included in the master image as well as the operating system that was included in the operating system. In some environments, the patches are first received by the IT department and tested before being deployed to the users, in other environments the users are responsible for downloading the patches from computer network 150, such as the Internet, that interconnects the user's computer system with servers operated by application and operating system providers 130. At step 350, patches received at the user's computer system are applied to the operating system and applications stored on primary drive 335. In addition, a copy of the patch that was applied is stored on second nonvolatile storage area 340. Copies of patches are stored on the second nonvolatile storage area so that the patches can be re-applied after the master image is refreshed. At step 365, the user creates data files, such as word processing documents, spreadsheets, and the like, using the software applications available on primary drive 335. At step 370, the user customizes settings, such as menus, colors, and other preferences available on the operating system and applications stored on the primary drive.
If the user installs any unapproved software applications or any malware is stored on the computer system, the unapproved software and malware will be wiped off the computer system when it is periodically restored. In addition, some system files such as the system registry, may become corrupted with unused or unneeded entries. During the periodic restoration, such system files will be cleaned and returned to their original state. The computer system is periodically (e.g., daily, weekly, etc.) restored at a time that is convenient to the user, such as after hours when the user is not typically using the computer system (predefined process 375, see
A determination is made as to whether the user's computer system is being scrapped (decision 380). For example, after a long period of time the organization may decide to provide the user with a newer computer system with faster components and improved features. If the computer system is not being scrapped, decision 380 branches to “no” branch 382 and the user continues to use the computer system and the computer system continues to be periodically restored. This continues until the computer system is scrapped, at which point decision 380 branches to “yes” branch 388 whereupon, at step 390, nonvolatile storage 330 is completely formatted (or destroyed) to prevent others from accessing data stored by the user on the computer system. Processing thereafter ends at 395.
During the “First Phase,” the user's data files are copied from primary drive 335 to second nonvolatile storage area 340 by the restoration software (step 420). Also, at step 420, application and operating system settings are copied from primary drive 335 to second nonvolatile storage area 340. User data files are identified by extensions (e.g., “.doc,” “.xls,” “.wpd,” etc.) as well as directory locations (e.g., “My Documents,” etc.).
During the “Second Phase,” the primary drive is reformatted at step 430. As used herein, “reformatted” is any method that erases all files from the primary drive. Reformatting thus results in all files on primary drive being erased. These files include files that comprise the operating system, the approved applications, application settings files, user data files, as well as any unapproved software programs, including malware, that may have been loaded on the primary drive.
During the “Third Phase,” the primary drive is restored. At step 440, the master image that includes the operating system and the approved applications is copied from second nonvolatile storage area 340 to primary drive 335. At step 450, patches stored on second nonvolatile storage area 340 are applied to the operating system and the applications that now reside on primary drive 335. These patch files were collected and stored on second nonvolatile storage area 340 when patches were released by the IT department or the operating system/application vendors (see
After the computer system has been restored, at step 480 it is rebooted to restore the system data stored in memory and the computer system is reconnected to the computer network. Processing thereafter returns at 495.
At step 570, an operating system, applications, and rejuvenation software are loaded onto primary drive 555. The user uses the computer system for a period of time. At a point where the computer system is running optimally (step 580), the user requests the rejuvenation software to create an image of the primary drive and store the image on second nonvolatile storage area 560. The image is called a “turbo” image to indicate that the image is of the computer system when it was running optimally. As second nonvolatile storage area space allows, the user can create additional turbo images so that the user can rejuvenate the system back to any one of the turbo images saved to the second nonvolatile storage area.
The user then uses the computer system with the rejuvenation software (predefined process 590, see
When the computer system is running optimally (step 610), the rejuvenation software is used to create an image of the computer system (turbo image 620). Turbo image 620 is an image of the primary drive including the operating system, the applications that have been installed, patches applied to the operating system and application, customizations that have been made to the operating system and applications, and data files that have been created using the operating system and the applications. Subsequent images can also be created either overwriting the original turbo image or additional turbo images can be created and stored on second nonvolatile storage area 560 as storage space permits. Having multiple turbo images 620 allows the user to select a turbo image to use for rejuvenating the computer system.
After the turbo image is created, when the user adds an application, such as a word processing application, the rejuvenation software can be used to store application images to second nonvolatile storage area (step 625). For example, if a word processing application is installed, the runtime files are installed on primary drive 555 and the operating system's registry is updated accordingly. The rejuvenation software creates an image of the media used to install the word processing application, such as the CD-ROM discs purchased by the user. If the word processor was purchased over the Internet, the files downloaded from the Internet used to install the application are stored to second nonvolatile storage area 560. In
Also after the turbo image has been created, whenever patches are released by software vendors corresponding to the operating system or any of the applications, the patch is applied to the software (operating system and/or applications) residing on the primary drive and a copy of the patch is stored (step 650) onto second nonvolatile storage area 560 in patches data store 655. Because these patches were applied after the turbo image was created, they will not be included in the operating system and applications after the primary drive is rejuvenated with the turbo image. Therefore, these patches will be reapplied by the rejuvenation software after the turbo image is copied back to the primary drive.
User data files, such as word processing documents, spreadsheets, and the like, are copied, at step 660, to second nonvolatile storage area 560 and are stored in data store 665. User-created data files are saved to subdirectories (or “folders”), such as “My Documents.” The rejuvenation software copies the files in these subdirectories to the second nonvolatile storage area. In addition, data files can often be recognized by their file extensions, such as .doc, .wpd, etc. The rejuvenation software can search for user data file types throughout primary drive 555 and stores the files that are found to the second nonvolatile storage area. The user can also customize the applications and operating system, for example changing the background of the desktop, customizing the menus and toolbars, etc. In a sense, these customization files are user data files and are also identified by the rejuvenation software and copied from primary drive 555 to second nonvolatile storage area 560. Step 660 is performed just prior to rejuvenating the primary drive so that all of the user's data files are copied to the second nonvolatile storage area. In addition, step 660 can be performed periodically, such as daily, weekly, or monthly, in order to provide a backup copy of the user's data files.
Over time, the computer system becomes loaded with unused and unneeded applications with numerous unused entries added to the system registry. Some of these applications may be poorly behaved applications that run in the background and impede system performance. The result of the extra registry entries and applications is that the computer system starts running sluggishly. When the user notices that the computer system is running sluggishly, he requests that the primary drive of the system be rejuvenated (step 670). During rejuvenation, current image 680 residing on primary drive 555 is replaced with rejuvenated image 690. As detailed in
In an organizational setting, the IT department can determine which application images and patches are stored to the second nonvolatile storage area. A policy allowing only IT-approved applications and patches to be stored on the second nonvolatile storage area would prevent patches that are faulty or cause disruption from being applied. Furthermore, this policy would allow the organization to follow licensing provisions agreed to with the operating system and application vendors regarding the storage of backup images.
A determination is made as to whether the user wants to rejuvenate the computer system (decision 760). If the user wants to rejuvenate the system at this time, decision 760 branches to “yes” branch 762 whereupon the computer system is rejuvenated (predefined process 770, see
In an organizational setting, the IT department may determine when (how often) the users' computer systems are rejuvenated. This could be accomplished by configuring the rejuvenation software to operate at the IT-determined frequency or by having the users' computer systems receive a signal from the IT department instruction the users' computer systems to perform rejuvenation processing.
A determination is made as to whether the user wants to continue using the computer system (decision 780). If the user wants to continue using the computer system, decision 780 branches to “yes” branch 785 which loops back to the using of the computer system, receiving of patches, and installing of new applications. This continues until the user no longer wishes to use the system, at which point decision 780 branches to “no” branch 790 and processing ends at 795.
A determination is made as to whether the list of applications stored on the second nonvolatile storage area is different from the applications installed on the primary drive (decision 830). If the list is different, decision 830 branches to “yes” branch 832 whereupon, at step 840, a list of the applications that are not on the second nonvolatile storage area is displayed with a message that these applications, if desired, will have to be installed manually (i.e., using the media, such as CD-ROM discs, that were used to originally install the application). After viewing the list of differences, the user is asked whether he wishes to continue rejuvenating the computer system (decision 850). If the user wishes to continue, decision 850 branches to “yes” branch 852 to commence rejuvenating, however if the user does not wish to rejuvenate the system, decision 850 branches to “no” branch 856 bypassing the rejuvenation steps. Returning to decision 830, if there are no differences between the list of applications on the primary drive and those stored on the second nonvolatile storage area, decision 830 branches to “no” branch 836 bypassing step 840 and decision 850 and commencing with the rejuvenation steps.
The rejuvenation steps commence at step 860 with the computer system being disconnected from any computer networks, such as the Internet. The user's computer system is disconnected from any networks so that the computer system is not vulnerable to viruses and other malicious attacks while being rejuvenated. However, if the second nonvolatile storage area is a network-accessible drive, then the network is not disconnected so that the second nonvolatile storage area can be accessed for storing and retrieving files.
The turbo image is then loaded onto the primary drive (predefined process 870, see
Phase 2 (930) commences at step 940 with primary drive 555 being reformatted (i.e., the operating system, applications, and data files residing on the primary drive are erased). Phase 2 prepares the primary drive for rejuvenation of the turbo image and applications.
Phase 3 (950) commences at step 960 with the turbo image being copied from second nonvolatile storage area 560 to primary drive 555. After step 960 completes, the primary drive is in the same state the drive was in when the turbo image was taken. At step 970, patch files stored on second nonvolatile storage area 560 after the turbo image was created are applied to the programs (applications and operating system) that were included in the turbo image and copied to the primary drive. Patch files are typically programs that operate to modify programs in order to fix problems, such as software errors, or address security issues identified with the programs that may make the programs vulnerable to attack by hackers and malware. At step 980, user data files and application settings are copied from second nonvolatile storage area 560 to their original locations (i.e., subdirectories) on primary drive 555.
At step 990, the computer system is rebooted so that the rejuvenated computer system settings are loaded into the computer system memory, and the computer system is reconnected to any networks to which the system was originally connected. Processing thereafter returns at 995.
A determination is made as to whether there are more application images stored on second nonvolatile storage area 560 (decision 1050). If there are more application images, decision 1050 branches to “yes” branch 1055 which retrieves the name of the next application image and loops back to determine whether the user wishes to reinstall the next application. This looping continues until all applications stored on the second nonvolatile storage area have been processed (i.e., either reinstalled or not reinstalled, as specified by the user), at which point decision 1050 branches to “no” branch 1065.
At step 1070, patches stored on second nonvolatile storage area 560 that correspond to the applications reinstalled during the invocations of step 1040 are reapplied to the applications. At step 1080, the user is provided with a list of applications that were originally on the primary drive before rejuvenation took place and were not included in the turbo image nor in any of the application images stored on the second nonvolatile storage area. The user can choose whether to reinstall this list of applications using other media (e.g., CD-ROM discs that were included with the application purchase). Processing thereafter returns at 1095.
PCI bus 1114 provides an interface for a variety of devices that are shared by host processor(s) 1100 and Service Processor 1116 including, for example, flash memory 1118. PCI-to-ISA bridge 1135 provides bus control to handle transfers between PCI bus 1114 and ISA bus 1140, universal serial bus (USB) functionality 1145, power management functionality 1155, and can include other functional elements not shown, such as a real-time clock (RTC), DMA control, interrupt support, and system management bus support. Nonvolatile RAM 1120 is attached to ISA Bus 1140. Service Processor 1116 includes JTAG and I2C busses 1122 for communication with processor(s) 1100 during initialization steps. JTAG/I2C busses 1122 are also coupled to L2 cache 1104, Host-to-PCI bridge 1106, and main memory 1108 providing a communications path between the processor, the Service Processor, the L2 cache, the Host-to-PCI bridge, and the main memory. Service Processor 1116 also has access to system power resources for powering down information handling device 1101.
Peripheral devices and input/output (I/O) devices can be attached to various interfaces (e.g., parallel interface 1162, serial interface 1164, keyboard interface 1168, and mouse interface 1170 coupled to ISA bus 1140. Alternatively, many I/O devices can be accommodated by a super I/O controller (not shown) attached to ISA bus 1140.
In order to attach computer system 1101 to another computer system to copy files over a network, LAN card 1130 is coupled to PCI bus 1110. Similarly, to connect computer system 1101 to an ISP to connect to the Internet using a telephone line connection, modem 1175 is connected to serial port 1164 and PCI-to-ISA Bridge 1135.
While the computer system described in
One of the preferred implementations of the invention is a client application, namely, a set of instructions (program code) in a code module that may, for example, be resident in the random access memory of the computer. Until required by the computer, the set of instructions may be stored in another computer memory, for example, in a hard disk drive, or in a removable memory such as an optical disk (for eventual use in a CD ROM) or floppy disk (for eventual use in a floppy disk drive), or downloaded via the Internet or other computer network. Thus, the present invention may be implemented as a computer program product for use in a computer. In addition, although the various methods described are conveniently implemented in a general purpose computer selectively activated or reconfigured by software, one of ordinary skill in the art would also recognize that such methods may be carried out in hardware, in firmware, or in more specialized apparatus constructed to perform the required method steps.
While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, that changes and modifications may be made without departing from this invention and its broader aspects. Therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this invention. Furthermore, it is to be understood that the invention is solely defined by the appended claims. It will be understood by those with skill in the art that if a specific number of an introduced claim element is intended, such intent will be explicitly recited in the claim, and in the absence of such recitation no such limitation is present. For non-limiting example, as an aid to understanding, the following appended claims contain usage of the introductory phrases “at least one” and “one or more” to introduce claim elements. However, the use of such phrases should not be construed to imply that the introduction of a claim element by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim element to inventions containing only one such element, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an”; the same holds true for the use in the claims of definite articles.