 | Level: Introductory Janel Barfield (jgbarfie@us.ibm.com)IBM
01 Nov 2001 InstallShield Multi-Platform Edition (ISMP) is a powerful new tool for application developers who package their products for installation on multiple platforms. It provides a graphical build environment that allows application developers to easily create an installation for their products for six different platforms: AIX, Windows, Linux, Solaris, OS/400, and OS/2. Enabling support for any one of these platforms is as easy as selecting a checkbox in the graphical builder.
Overview of ISMP
The ISMP interface uses a product tree and a wizard tree. Figure
1 shows the product tree on the Product tab of the interface,
and Figure
2 shows the wizard tree on the Install and Uninstall tabs. To
package a product, the developer simply adds predefined and custom
JavaBeans_ to these trees. ISMP provides many predefined beans; and,
in most cases, these beans will be all that is needed. However,
there are many examples provided in the documentation to aid
developers in creating their own custom beans when necessary. Figure 1. Product tree on the Product tab of the ISMP
interface

After all beans are placed in the appropriate trees, the
application developer builds the project by clicking a button on the
toolbar. The end product is a Java_ Archive (JAR) file that contains
the files to be installed, as well as all beans that will be used to
install and uninstall the product. When the JAR file is run using
Java technology, a graphical wizard is launched that allows the end
user to provide input during the installation. Silent and console
installations are also available for when a graphical interface is
not desirable. An uninstall JAR file is created during installation
that will run another wizard when invoked. Figure 2. Wizard tree on the Install tab of the ISMP interface

The application developer can also create a native launcher
distribution for each supported platform. This launcher distribution
will find a version of Java technology on the target system and
launch the JAR file with the Java command it finds. It does this by
matching Java virtual machine (JVM) search criteria specified by the
developer in the distribution properties under "JVM Search
Instructions," as shown in Figure 3.
The native auncher uses hints provided for each platform to
find a Java executable that matches the search criteria, searching
in the order specified by the application developer. The developer
also can specify a bundled Java virtual machine in the "Bundled JVM"
property if a specific Java virtual machine is desired or if an
appropriate Java virtual machine is not found on the target system.
In Figure 3, launcher distribution properties are specified for the
AIX Power architecture. Because the launchers are natively compiled
and executed, one must be created for each platform that is
supported by the product. Figure 3. Native distributions are configured on the Build tab of
the ISMP interface

A native uninstaller executable can also be specified by the
application developer in the Product tab of the ISMP interface,
under Product Tree Properties. If it is specified, a native
uninstaller will be created during the installation of the product,
along with the uninstall JAR file. Both will be placed in the
product install location.
Role of Java technology
Developers are aware of Java's contribution to multi-platform
development. Java technology allows you to compile bytecode on one
platform and run this bytecode on a different platform. In addition,
the object-oriented and polymorphic nature of Java technology
permits flexible solutions that are consistent across all platforms.
ISMP uses these aspects of Java technology to provide a familiar
look and feel for installations on all six supported platforms. Use
of abstraction and inheritance make the implementation more robust,
because support for the multiple platforms is handled more
consistently. At the core of ISMP is a set of features that performs
installation tasks. A 100% Pure Java_ form of these features is
provided, and each platform provides any specific implementation
that is required by overriding the appropriate methods. For example,
in ISMP 4.0, the AIX operating system overrides the pure Java
desktop service methods that handle creating and removing icons to
implement these tasks specifically for the Common Desktop
Environment (CDE). During execution of the build process as well as
installation or uninstallation, the current platform of the target
system is determined, and the appropriate service implementations
are used. JavaBeans aid in the ease of development by providing property
editors to graphically modify the properties of an installation, as
shown in Figure 4. The predefined Product and Wizard beans provided by ISMP
allow the developer to easily add configuration scripts, desktop
icons, files, and many other items to the product installation.
Custom beans and property editors are also easy to write. If a
custom bean is written, the developer just registers the bean to
make it available for placement in one of the trees. Figure 4. Properties of a desktop icon are easily specified using
the property editors of the Desktop Icon bean

There are often concerns about the performance of Java
applications. Performance can be enhanced by using the Java Native
Interface (JNI) to execute native code for time-consuming tasks.
ISMP makes use of all of the advantages offered by Java technology
to make software installation and maintenance on multiple platforms
easier and more efficient than ever before.
From installp to ISMP
Until recently, installp was the only supported method of
software installation and maintenance on the AIX platform. A
comparison of the two installation methods is helpful to application
developers who previously packaged their products for installp only
on the AIX platform. The following is a comparison of AIX and ISMP packaging:
- An InstallShield product is similar to an AIX product in that
each is a grouping of items that can be installed. Each can be
selected as an installable entity. In the AIX operating system,
however, a product is loosely defined and may span across multiple
installable images.
- An ISMP feature is similar to an AIX package in that each is a
grouping of similar installation pieces. Each can be selected as
an installable entity. In ISMP, however, a feature is the lowest
installation entity that you can select.
- An ISMP component is similar to an AIX fileset in that each is
the actual entity that contains installation files and activities.
In the AIX operating system, a fileset is the lowest installation
entity that you can select.
Besides fundamental differences in packaging, there are some
other significant differences between installp and ISMP:
- Only one version of an installp image can be installed at a
given time, and it will be installed into predefined locations. An
ISMP image can be installed multiple times in any desired
location. Different versions of an ISMP product can be installed
concurrently, as well as multiple instances of the same version of
an image in different locations.
- ISMP does not provide support for update or migration
installations as installp does. However, the application developer
could use predefined and custom beans to perform an update or
migration installation with reasonable effort.
- ISMP does not provide the intricate requisite handling used by
installp, such as having the ability to easily specify
corequisites, prerequisites, and instrequisites. However, it does
allow the application developer to easily specify both internal
and external requisites, including requisites to installp packages
and filesets.
- ISMP 4.0 does not support installation in non-JFS type file
systems on the AIX operating system, although this support will be
provided in the next release of ISMP.
There are many ways in which ISMP behaves like installp. ISMP
updates the Software Vendor Product Database (SWVPD), adding
information to all current object classes as well as a new object
class, vendor, as shown in Figure
5. This means that information about all products installed with
ISMP can be listed with the lslpp command. Similar to the pre-i and
post-i scripts of installp, ISMP easily provides for the execution
of scripts before, during, and after installation or uninstallation
with predefined JavaBeans. Figure 5. Integration of new vendor object class

Integration of the new vendor object class is achieved with a
mapping between the Globally Unique Identifier (GUID) or the Unique
Identifier (UID) in the vendor class and the lpp_name and name in
the product and lpp classes. The lpp_id field is another connection
between the classes, being stored in the vendor and lpp classes, as
well as the history and inventory classes. In addition, there are two predefined JavaBeans provided by the
AIX Platform Pack that make installation on the AIX operating system
easier. The AIX installp bean allows the developer to wrap an
existing installp image in a bean for installation with ISMP, as
shown in Figure
6. This bean calls installp directly to install the specified
filesets. This may be useful to a developer who wishes to quickly
convert an existing installp installation image. To use the installp
bean, the developer specifies the image to be installed in the
Installp images property editor and the location of the .toc
file. Figure 6. AIX Installp Image bean allows the developer to wrap an
existing installp image in an ISMP installation

A bean is also provided that allows modification of the Object
Data Manager (ODM) databases. To use this bean, the developer uses
the property editors to specify the ODM directory, an add file, and,
if desired, a delete script file for uninstallation, as shown in Figure
7. Often, developers want to update the ODM databases when their
product is installed, such as when they want to provide SMIT menus
for their product or modify device databases when they install new
devices. Figure 7. AIX ODM Add bean allows the developer to easily update
ODM databases on install and uninstall of their product

ISMP integration with the AIX operating system
Beginning with AIX 5L, the generic installer for the AIX
operating system, geninstall, provides integration for third-party
installations on the AIX operating system, including installations
of ISMP products. With geninstall, the AIX operating system will
recognize ISMP products on media and will be able to list
information about installed ISMP products using lslpp. For this
integration to work, there are some things developers should keep in
mind when packaging their ISMP installations for the AIX operating
system:
- UID and description properties
ISMP product information is stored in the SWVPD under the
unique identifier (UID or GUID) assigned by the developer in the
key for each product, feature, and component, as shown in Figure 5 and Figure
8. For this reason, AIX developers are strongly encouraged to
use meaningful and unique values for the UID instead of the one
that is automatically generated by the ISMP interface. The
Description property for a product, feature, or component is used
to display the description field in lslpp output.
Figure 8. Software key for an ISMP product

- Naming conventions
- Launcher distributions created for installing a product on
the AIX operating system should be called setupaix.
- To package a launcher distribution for the AIX Power
architecture, place these files on the media in the
/aix/ismp/ppc/<Product Name>/ directory.
- JAR files created for installing a product on multiple
platforms should be called setup.jar and placed on the
media under the same directory structure, as shown in Figure
9.
In addition to following these naming conventions, a
description file should be included that lists the ISMP products
on the media during installation. This file is not required for
the installation itself, but it allows the customer to list the
available ISMP packaged products on the media. This simple file
should be named description and should contain the
following information on one line:
Product Name:VRMF:description
where VRMF is the Version, Release, Modification, and
Fix number for the product; description is a brief
description of the product. This description file should be placed
in the same directory as the launcher distribution or JAR
file.
Figure 9. Mixed-media layout for installp, Red Hat Package
Manager (RPM), and ISMP products

- Silent installations, response files, and console
installations
There are some applications, such as smitty and Network
Installation Management (NIM), that call installp to perform
installations silently, under the covers. There are also some
situations when a graphical installation wizard would not be
desired. For example, the target console has no graphical
interface, as is often the case with UNIX systems. ISMP provides
silent installations with the ability to indicate response files
to accommodate this aspect of integration. ISMP documentation
gives developers detailed help with how to use response files and
silent installations. Response files can assign properties to any
wizard or product bean, as well as assign global wizard
properties. Comments in a response file are preceded by a #. An
example of a response file is shown in Figure
10. There also may be circumstances in which user input during
the installation is desired, but a graphical interface is not. In
this case, specifying the -console option when invoking the
installation wizard will launch the installation in console mode,
allowing user input in an ascii interface.
Figure 10. Example response file
#######################################
# specify silent install
-silent
# wizard bean property assignments
-W wizard_bean.myProperty="some value"
# product bean property assignments
-P product_bean.myProperty="some value"
# global wizard property assignments
-G createDirectoryResponse="yes"
#######################################
|
 |
Benefits of ISMP
ISMP provides a graphical build environment for application
developers that makes packaging products for multiple platforms as
easy as filling in fields of property editors, in a single build
environment. With this powerful tool, developers can create
customizable graphical wizard installations for their products,
giving the end user a consistent look-and-feel across platforms. In
a new business environment that requires applications to support
multiple operating systems, ISMP is an excellent solution available
because it helps decrease the amount of time and resources needed
for development.
- Using the powers of Java technology and XML
ISMP uses the best aspects of Java technology to produce an
integrated solution for developers supporting multiple platforms.
Java technology can make the build process and the resulting
installation simple, robust, and consistent, providing the most
flexible solution available. In addition, ISMP 4.0 uses
XML-formatted project files, which provide tremendous flexibility
for automating development and build processes.
- Native distributions and Java virtual machine resolution
ISMP provides the ability to create native distributions for
each platform in the Build tab of the ISMP interface. These native
distributions handle finding an appropriate Java virtual machine
on the target system to use to launch the installation. The
developer can select to install a bundled Java virtual machine
when no appropriate Java virtual machine is found on the system.
This Java virtual machine resolution can also be performed when
installing a Java application, to ensure a Java virtual machine
will be available after the installation to run the application.
Native distributions and Java virtual machine resolution add to
the ease and consistency of ISMP installations.
- Integration with the AIX operating system
Beginning with AIX Version 5.0.0.0, ISMP product installations
will be integrated with the AIX operating system. This means that
the SWVPD will be updated by ISMP products, just as it is for
installp images, allowing listing of products and integrated
requisite checking between installp and third-party products.
System management applications on the AIX operating system, such
as System Management Interface Tool (SMIT) and smitty, will
recognize ISMP products on media and allow their installation and
maintenance.
There are many compelling reasons to use ISMP for AIX
installations, but the real benefit is for those developers who
develop for multiple platforms. IBM has worked with InstallShield
to provide an industry-wide, cross-platform installation tool that
is meant to revolutionize the install development process. Some
other benefits of ISMP include enhanced browser-based installs
that allow users to install a product from a Web browser. ISMP
also provides billboard support, which allows the developer to
display custom panels in a wizard that describe the product or
other products being marketed. Developers can use ISMP easily to
create a suite installation for several products. All of the
benefits mentioned here make ISMP an exciting solution for the
growing number of enterprise level application developers who
develop across platforms.
 |
Conclusion
ISMP takes advantage of some of the hottest technology to provide
a powerful tool for cross-platform application development. Java
technology provides a homogenous graphical interface for the
development and build processes of multi-platform products. It also
produces a consistent end-user interface for customers installing
ISMP packaged products on multiple platforms. XML-formatted project
files provide even greater flexibility, allowing the use of various
tools to automate development. For these reasons and many others
mentioned in this article, ISMP will be adopted as a development
tool by a growing number of enterprise level application developers.
This includes developers of AIX software products with customer
requirements for multiple version and cross-platform installations
and other needs that are not provided for by installp. ISMP offers a
viable solution to developers who face the challenges of
cross-platform development.
Resources - Categories: Java tools, XML tools
About the author  | |  |
Janel Barfield is the lead developer of the AIX
Platform Pack for InstallShield Multi-Platform Edition. She
has worked for IBM in the AIX Install department for the past
two years. You can contact her at jgbarfie@us.ibm.com. |
Rate this page
|  |