The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein:
Embodiments of the present invention provide a method, system and computer program product for application installation. In accordance with an embodiment of the present invention, a method, system and computer program product can be provided for a unified form of an application installation engine. In the embodiment of the invention, an installation package can be treated as a source repository. Likewise, the target platform can be treated as a target repository. As such, a merge operation can be performed on meta-data for each of the source repository and target repository in order to produce any of an installation, an update or an uninstallation.
In illustration,
Notably, the abstract file system 150 can provide an application programming interface (API) for a minimal set of file system operations. The minimal set of file system operations can be enabled to produce concrete file operations in specific target platforms through logic provided by concrete adapters for the specific target platforms. In this regard, the abstract file system 150 can locate one or more specific operations for a specific target platform in a concrete adapter that corresponds to one or more invoked abstract file I/O requests. In this way, an unlimited set of target platforms, including target operating systems on local or remote hosts, target Web services hosts, and the like can be supported by the abstract file system 150 merely by plugging-in additional concrete adapters corresponding to additional specific target platforms.
In operation, the installable package 160 can include installable data 180 including program files, and package meta-data 170 describing the content of the installable data 180. The meta-data 170 can include installation instructions in the form of a sequence of operations to be performed in a target platform irrespective of the type of target platform. The meta-data 170 can be processed in the installation engine 190 to invoke abstract installation operations published in the API for the abstract file system 150. The abstract file system 150, in turn, can invoke a product adapter 120 specific to a particular target platform 110 in order to transform or convert the abstract installation operations into operations specific to the target platform 110. Additionally, a product configurator 130 can process abstract configuration operations from the abstract file system 150 in order to specifically configure the target platform 110.
In view of the foregoing arrangement, a universal updater technology can be provided to update any product irrespective of the install technology used to create, install, or configure the product, or the platform hosting the product installation. The universal updater or installer embodied within the installation engine 190 can allow for any number of products or operating systems to be supported so long as a corresponding product adapter has been defined and registered with the installation engine that conforms with the API of the abstract file system, and suitable meta-data 170 describing the product, product configuration, install and build architectures is provided. Once the adapter has been registered with the installation engine, the installation engine can transparently begin to update the corresponding product. Therefore, the update technology described herein can be completely platform independent, so that it can update products across vendors, operating systems, and platforms.
In further illustration,
In block 225, the instructions can be received in the abstract file system and in block 230, a target platform can be identified for the installation. Thereafter, in block 235 an adapter can be located and a reference can be obtained to the located adapter. The adapter can be invoked in block 240 to translate the received instructions into platform specific instructions. Notably, the received instructions can include not only data operations encoded in the package meta-data, but also configuration operations encoded in the package meta-data. In any event, in block 245, the translated instructions can be applied in the target platform.
In block 250, feedback can be received from the target platform which feedback can include platform-specific installation messages and the like. In block 255, the feedback can be translated into an abstracted form. Subsequently, in block 260, the abstracted form of the feedback can be posted to the installation engine. Finally, in block 220 the feedback can be rendered for viewing and the installation process will have been completed.
Importantly, the installation engine of
As shown in
More particularly, referring to
Finally, the unified installation engine 300 of
Embodiments of the invention can take the form of an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.
For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.