Referring to FIG. 1A, typically, installation media 30 such as compact disks (CDs) or floppy disks are utilized to install a software application on one or more computing systems 10. The user inserts installation media 30 into a computing system 10A and goes through an installation procedure that copies an installable image of the software from installation media 30 to the computing system 10.
An installable image usually consists of one or more self-extracting application files stored on installation media 30 in compressed form. Once the files are copied to computing system 10A, the user runs an executable file (e.g., a setup program) to decompress and extract the files from the installable image into the appropriate folders and to make the necessary modifications to certain system files (e.g., registry files). Thereafter, the computing system 10A is rebooted for the changes to take effect.
If the software is to be installed on other computing systems, then the above installation process must be repeated for each computing system (e.g., computing systems 10B, 10C and 10D). Further, depending on the computing system's operating environment (e.g., hardware/software platform, operating system, the connected devices, etc.), it is typically necessary for the installation process to be customized for each computing system. Therefore, the user may have to manually input different information for each system to customize the installation for that system.
As such, installing the same software on multiple computing systems (e.g., 10A, 10B, 10C, 10D) can be rather time consuming as a user will have to go through the install, customization and reboot procedures for every single computing system. The problem is further exacerbated if more than one software application needs to be installed on each computing system. Unfortunately, the downtime associated with the installation of multiple software on several computers is a drain on both human resources and productivity of an organization.
Referring to FIG. 1B, in a networked environment, client systems 15 are connected to a server 20. In this environment, if all client systems 15 require installation of the same software—comprising either a single software product or a group of software products—an installable image 40 can be customized for that purpose and the same image can be copied to all client systems 15 and used to install the software. Unfortunately, this installation approach makes each client system 15 unavailable during the installation process, as well, as each client system 15 will have to be used to run the setup program to install the files in the installable image and then each client system 15 has to be rebooted for the changes to take effect.
Even though installing the software from the installable image 40 is faster than installing the software from installation media 30 on several client systems 15, the installation procedure remains inconvenient and time consuming. Further, if the installable image 40 has to be copied to client systems 15 that have different or frequently changing operating environments, additional customization is required on each client system 15 to ensure that the installed software properly functions in all different operating environments.
For example, further customization may be required to change specific parameter values (e.g., hostnames, static IP addresses, users, groups, etc.), identify services to be provided on startup, select appropriate device drivers, and to provide specific device configuration parameters for each client system 15. Also, depending on the client system's software or hardware environment, some customization may be necessary immediately upon installation, and additional customization may be needed when a new hardware or software component is added.
As shown, custom installable images may be stored in server 20 for client systems 15 that have different operating environments. For example, a first installable image can be used for installing a software image on Linux™ machines, and a second installable image can be used for installing the same software image on Microsoft Windows™ machines. In this manner, certain custom parameters and properties can be embedded in the installable image.
Unfortunately, even the above approach requires the removal of the target system from operation during the course of installation and customization. Further, the customizations have to be performed either manually or with the help of custom programs or scripts that have to be executed on each target system or a replica of the target system. Even further, the target machines often have to be rebooted more than once before the changes are effective. In a large organization, the installation procedure can become overly cumbersome, time consuming, error prone and resource intensive.
Methods and systems are needed that can overcome the aforementioned shortcomings by simplifying the installation process in a way that it can be centrally controlled without the requirement for removing the target systems from operation during the installation process.