Note: Descriptions are shown in the official language in which they were submitted.
CA 02554924 2013-01-23
CREATING MULTIPLATFORM CUSTOMIZED INSTALL PACKAGES
FOR SOFTWARE INSTALLATION
Field of the Invention
100011 The present invention relates to the field of application
installation and more
particularly to application installers.
Description of the Related Art
[0002] Though often overlooked, application installation is a
prerequisite to
interacting with a software application. Specifically, in most circumstances,
an
application can be properly executed only subsequent to the completion of a
successful
installation process. At the minimum, a typical software application
installation requires
a transfer of files to the file structure of a computing system, and the
configuration of the
computing system to particularly interact with the software application.
Ordinarily, the
configuration of the computing system includes the addition or modification of
registry
settings, the addition or modification of entries to one or more
initialization files, or both.
[0003] Typically, software programs include as a component installer logic
having
program code enabled to substantially automate the installation process. In
addition,
computer operating systems occasionally incorporate installer logic for use in
installing
drivers or other software. Likewise, many commercial software offerings are
provided
with companion updater logic supporting self-updating operations. Generally,
the
updater logic can be included as a component of the software program itself,
or the
updater logic can be provided externally as a third-party tool.
CA920060063CA1 1
CA 02554924 2013-01-23
. .
[0004] The provision of an updating process is desirable because software
programs
are frequently modified by end users, for example by applying bug fixes or
enhancements
(such as new versions of the software). There are many different processes for
installing
and/or updating software programs. Some processes are entirely automated and
substantially invisible to the user, while other processes are better
characterized as
interactive. Some processes are known to be complex while other processes are
viewed
to be simpler in nature.
[0005] Software programs used to install new software, to
install updates to software,
and to uninstall (remove) software are referred to herein as "installer
applications". The
term "installer applications" is intended to encompass both stand-alone
software
programs that can be used to install a variety of software applications (for
example, such
as installers that may be provided with an operating system), as well as
software
programs that are adapted to install only a single software application (and
may be
integrated with the installation file package for that software application).
Installer
applications, when run, implement a software installation process.
[0006] The great disparity in the nature of different installer
applications provides for
challenges in the computing enterprise. Specifically, from the development and
deployment perspective, each new application generally requires a custom
installer for
each target platform. Furthermore, most installers only can support a single
platform
type and the presence of multiple platforms within the enterprise, therefore,
requires
multiple different installers. Consequently, the deployment of a maintenance
update in
CA920060063CA1 2
CA 02554924 2013-01-23
. .
the enterprise to multiple different platforms (including different supporting
operating
systems) can require the execution of multiple different installers.
BRIEF SUMMARY OF THE INVENTION
[0007] Embodiments of the present invention address
deficiencies of the art in respect
to multiple platforms and provide a novel and non-obvious method, system and
apparatus
for multi-platform installation of a customized install package (CIP). In one
embodiment
of the invention, a software installation method can be provided. The method
can include
providing a multi-platform component installation package including components
sufficient to assemble complete installation images for installation onto
different
specified target systems of respective different platform types. For instance,
the multi-
platform component installation package can be provided from a single media
source.
The method further can include assembling selected ones of the components to
assemble
a complete installation image for installation onto a specific one of the
different specified
target systems.
[0008] In one aspect of the embodiment, the method further can include
grouping a set
of install launchers each specific to a different platform type; further
grouping a set of
component maps each specific to a different platform type, and storing both
common
components common to all platform types and native components each specific to
a
particular platform type. In consequence, the grouping and storing can form
the
component installation package. Optionally, an installer and a corresponding
component
map can be selected for a particular platform type of a target system and
persisted along
CA920060063CA1 3
CA 02554924 2013-01-23
with the requisite common and native components for the particular platform
type for
subsequent use for other target systems of the same platform type.
[0009] In another aspect of the embodiment, tailoring the multi-
platform component
installation package according to the particular platform type for
installation onto the
specified target system can include determining the particular platform type
for the
specified target system and selecting each of an install launcher and a
component map for
the particular platform type. For example, determining the particular platform
type for
the specified target system can include detecting an operating system type for
the
specified target system, or receiving an indication of the platform type for
the specified
target system. In any event, both the common components and native components
for the
particular platform type further can be selected for installation onto the
specified target
system in locations specified by the selected component map utilizing the
selected install
launcher.
[0010] In another embodiment of the invention, a software
installation data processing
system can be provided. The system can include a single install factory tool
including
program code enabled to assemble into a complete installation image for
installation a
specific specified target system, selected components from among a
multiplicity of
components for multiple target systems of corresponding different platform
types. In one
aspect of the embodiment, the program code can be embodied within a multi-
platform
plug-in.
CA920060063CA1 4
CA 02554924 2013-01-23
. .
100111 As such, in another aspect of the embodiment, the system further can
include a
single platform plug-in including program code enabled to generate a single
installation
image corresponding to a specific target platform type. Finally, in yet
another aspect of
the embodiment, the data processing system can be provided with access to one
or more
repositories comprising a set of install launchers each specific to a
particular platform
type, common components for all platform types and native components specific
to a
particular platform type, and a set of component maps each specific to a
particular
platform type.
[0012] Additional aspects of the invention will be set forth in
part in the description
which follows, and in part will be obvious from the description, or may be
learned by
practice of the invention. The aspects of the invention will be realized and
attained by
means of the elements and combinations particularly pointed out in the
appended claims.
It is to be understood that both the foregoing general description and the
following
detailed description are exemplary and explanatory only and are not
restrictive of the
invention, as claimed.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
[0013] 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:
CA920060063CA1 5
CA 02554924 2013-01-23
[0014] Figure 1 is a pictorial illustration of an installation data
processing system
configured for multi-platform software installation;
100151 Figure 2 is a schematic illustration of an installation data
processing system
configured for multi-platform software installation;
100161 Figure 3 is a flow chart illustrating a process for multi-
platform software
installation.
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention provide a method, system and computer
program product for multi-platform software installation. In accordance with
an
embodiment of the present invention, a complete installation image for an
application can
be generated from a single installer for different disparate target platforms
from a single
media source according to a specified platform identity for a target computing
system.
Once the installation image has been generated, the installation image can be
copied to
permanent storage accessible by the target computer system. In this way, the
process of
installing software in a multi-platform heterogeneous environment can be
reduced to a
single installer and a single media source for all installation packages for
all target
platforms.
100171 In illustration, Figure 1 is a pictorial illustration of an
installation data
processing system configured for multi-platform software installation. The
system can
include a host computing device 120 in which an installation image for a
software
application can be generated. The host computing device can include an install
factory
CA920060063CA1 6
CA 02554924 2013-01-23
tool 130 coupled to each of a multi-platform plug-in 140A and a single
platform plug-in
140B. The install factory tool 130 further can be coupled to a one-to-one
component map
150A and a multi-platform component map 150B. The one-to-one component map
150A
can map the identity and location of a component for installation in single
platform media
110A to an installation location in one of the target platforms 180A, 180B,
180N.
Likewise, the multi-platform component map 150B can map the identity and
location of a
component for installation in a multi-platform media 110B to an installation
location in
one or more of the target platforms 180A, 180B, 180N.
[0018] The install factory tool 130 can include program code enabled
to process single
platform media 110A and multi-platform media 110B. In this regard, the install
factory
tool 130 can process single platform media 110A conventionally through the
single
platform plug-in 140B to conventionally generate individual single platform
images 160
for installation onto a corresponding one of the target platforms 180A, 180B,
180N. In
this regard, the install factory tool 130 can select components for inclusion
in the single
platform image 160 along with a one-to-one mapping 150A of components to
component
locations in the corresponding one of the target platforms 180A, 180B, 180N.
[0019] In addition to the single platform media 110A, however, the
install factory 130
further can process a multi-platform media 110B through multi-platform plug-in
140A to
generate a single, multi-platform image 170. In the latter circumstance, the
multi-
platform media 110A can act as a single source of installation for multiple
different ones
of the target platforms 180A, 180B, 180N. In this regard, the install factory
tool 130 can
CA920060063CA1 7
CA 02554924 2013-01-23
. .
select components for inclusion in the multi-platform image 170 along with a
multi-
platform mapping 150B of components to component locations in the
correspondingly
different ones of the target platforms 180A, 180B, 180N.
[0020] In further illustration of the operation of the
installation data processing system
of Figure 1, Figure 2 is a schematic illustration of an installation data
processing system
configured for multi-platform software installation. As shown in Figure 2, the
installation process can be bi-furcated into an image generation process and
an image
deployment process. In the image generation process, installation images may
be
generated for installation onto multiple, different ones of a set of disparate
target
platforms.
[0021] Specifically, multiple different install launchers 210A, 210B, 210N
can be
grouped behind a single install launcher interface 210 in the single media
source. A
repository 220 can be established to include both common components 230 common
to
all installation images for all different target platforms, and also native
components 240
that are specific to particular installation images for specific target
platforms. Optionally,
each of the native components 240 can be referenced according to file name,
target
platform and target platform architecture to provide a readily identifiable
association
between the native components 240 and the target platform.
[0022] Finally, a component mapping 250 can be established
containing component
maps 250A, 250B, 250N for different, respective target platforms. At install
time, a
platform type for a target system 260 can be specified in response to which a
CA920060063CA1 8
CA 02554924 2013-01-23
. .
corresponding one of the install launchers 210A, 210B, 210N can be selected
for
grouping an installation image for the specified platform type. Subsequently,
the
requisite components among the common components 230 can be selected for
grouping
into an installation image along with those native components 240 specific to
the
specified platform type. Finally, a pertinent one of the component mappings
250A,
250B, 250N can be selected mapping the components in the installation image to
the
proper location in the target system 260. Thereafter, the installation image
can be moved
to the target system and installed onto the target system.
[0023] In yet further illustration of a platform specific
software installation, Figure 3
is a flow chart illustrating a process for multi-platform software
installation. Beginning
in block 310, a multi-platform component install package can be retrieved,
optionally
from a single media source, and loaded for processing onto a target platform
having a
specific platform type. In block 320, the platform type can be determined, for
example
by software and/or hardware detection methods, or by way of user input, and in
block
330, an install launcher for the detected platform type can be located in the
single media
source and loaded for operation.
[0024] In blocks 340A and 340B, the common components common to all platform
types and native components specific to the detected platform type can be
retrieved for
installation onto the target platform. Thereafter, in block 350, a map for the
detected
platform can be retrieved. Finally, in block 360, the files making up the
retrieved
components can be written to the target platform at locations specified
according to the
CA920060063CA1 9
CA 02554924 2013-01-23
. .
retrieved mapping. In this way, multiple different platform types can be
accommodated
via a single install factory tool.
[0025] Embodiments of the invention can take the form of an
entirely hardware
embodiment, 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.
[0026] 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.
CA920060063CA1 10
CA 02554924 2013-01-23
. .
[0027] 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/0
devices
(including but not limited to keyboards, displays, pointing devices, etc.) can
be coupled
to the system either directly or through intervening I/0 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.
CA920060063 CA1 11