Skip to main content

InstallShield Multi-Platform Edition 4.0

The multi-platform solution for software installation and maintenance

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.

Summary:  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.

Date:  01 Nov 2001
Level:  Introductory
Activity:  701 views

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
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
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
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
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 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
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
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
    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
    Mixed-media layout for installp, 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.

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Sample IT projects
ArticleID=10150
ArticleTitle=InstallShield Multi-Platform Edition 4.0
publish-date=11012001
author1-email=jgbarfie@us.ibm.com
author1-email-cc=

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).