Product ReviewInstallShield Delivers Latest Installment JavaEdition Version 3.02

whole mugwhole mug whole mughalf mug Box Shot
Version Reviewed: 3.02
Current Version: 3.02

Cup rating system:
5 Outstanding 4 Very Good 3 Acceptable
2 Has Potential 1 Poor

VENDOR INFO
InstallShield Software Corp.
900 National Parkway, Ste. 125
Schaumburg, IL 60173-5108
Technical support: 847.413.2896
http://www.installshield.com
Release notes on the 3.02 edition:
http://support.installshield.com/download/javarelnotes.asp

INSTALLSHIELD SOFTWARE CORP'S product line has become something of a standard for generating and configuring installation programs—especially for Windows-based software. The company first developed a tool designed to deploy cross-platform applications in 1997 with the release of InstallShield 1.0 for Java. The latest release of this product introduces several new features and refines a few old ones.

InstallShield JavaEdition 3.02 allows users to create a single Java installation that is consistent across multiple platforms. The product makes it easy to author installation programs by providing out-of-the-box functionality that should cover the needs of most developers. And with its intuitive, GUI-based environment, the product is simple and straightforward to use.

I installed the 3.01 version of the product from a CD and then downloaded the free 3.02 update from the InstallShield Web site. (The 3.02 version should be available off-the-shelf by the time this review is published.) I had some real trouble getting the download to run on a Windows 95 machine. In fact, I was never able to save project files, and the uninstall failed. After trying various JVMs, I reinstalled the product under Windows NT 4.0, where it worked nicely. This review is based on that installation.*

The 3.02 version boasts more than 50 bug fixes from the 3.0 version, as well as other improvements and enhanced functionality. This version allows users to dynamically update files and directories included in File beans, eliminating the need to open the IDE to refresh the file names. It also includes a new "silent install" feature (no UI and no input from the user).

Another nice improvement in this version is the product's ability to allow users to bundle multiple VMs; which VM is used is determined by the OS and architecture specs.

This version also provides a list that includes up to four of the most recently used project files (MRUs). The list is available under the File menu. Plus, it includes improved API documentation that now keeps track of all available API classes and methods.

Perhaps my favorite enhancement is the product's expanded language-support feature. The latest release supports ten language resources for runtime localization. It allows users to choose a language or base the default locale on the target system.

The company has made much of its new "platform pack architecture," which was first implemented in version 3.02 of the product. Here's what it does and why you should care: It allows platform vendors to incorporate OS-specific features and enable platform-specific installation functionality. The 3.02 release includes platform-specific support for both Solaris and Windows, and the vendor has promised to include support for other platforms in the future. (InstallShield recently announced a codevelopment deal with IBM to create IBM-specific support for multiple platforms including AIX, AS/400, Linux, OS/2, Project Monterey.)

The Solaris Platform Pack enables Solaris-targeted installations to support launch scripts and desktop icons, as well as the jointly developed "Web Start" Wizard. Web Start Wizard technology provides a significant advantage for Sun customers and third-party vendors, achieving a similar installation experience as found in Windows environments. Now Solaris users can, through a simple graphical interface, point and click their way through the installation of Solaris applications.

The Windows Platform Pack supports desktop icons, registry updates, uninstall from the Add/Remove applet, and application launching.

The product's core architecture utilizes an extendable set of JavaBeans, each specializing in one aspect of the installation process. To author an installation program, you string together a series of visual and nonvisual bean components.

Figure 1
Figure 1. Main application window.

One of the joys of working with this product is the intuitive and easy to use interface that breaks the authoring process into manageable parts. As you can see in Figure 1, the menu bar on the left displays several icons that represent the various parts or "views" of the authoring process:

  • Project: Clicking on the Project icon opens the Project Setup window, where you identify your work environment from a project level and create the names of your project and of your work file directories.
  • Setup Design: This icon opens a window that allows you to define the product that will be installed and its features. From here you can specify how a component should be installed on the target machine.
  • Installer: The Installer icon opens a window where you can create a design tree, complete with installation properties and the sequence of events that should take place during the install process.
  • Uninstaller: This icon provides everything you get with the Installer view but with the actions performed, more or less, in reverse.
  • Resource: Clicking on this icon opens a window where you can establish which additional resource class files you want to attach to your setup, including support for internationalization and customized JavaBeans.
  • Build Configuration: The Build Configuration window allows you to describe the installation program's appearance to the end user. Here, you can choose the export file type and specify which hardware and/or software platforms are to be supported by the installation. This is also where you provide for language support.
Each view contains a tree. You start by selecting a bean to be modified, and the tree displays the modifiable properties of the bean. A window at the bottom of the screen displays the results of your efforts.

One of the things I liked best about the product is that it uses beans to present its base functionality and to provide extension capabilities:

  • Wizard beans are the visual and interactive portions of the installation as defined in the Installer view. They are the panels, actions, and sequences that affect the customer's installation experience.
  • Product beans are associated with files and other portions of the application. They are the features and files that are added to an end user's machine during an installation.
  • Conditions for wizard beans and product beans; you can have any panel, action, or sequence activated and any product, component, feature, or file installed if some condition is fulfilled.
  • Services are the behind-the-scenes functionality used by actions, panels, and product beans. They affect the target system by moving or changing files, logging messages, storing information, etc.
The user-generated beans register to the product using the bean gallery. Then the UI is built based on the wizard beans. Figure 2 shows another feature of the product, native hooks into Win32 (registry, self-registering files, environment variable update) and Solaris (packages and patches).

Figure 2
Figure 2. Bean gallery.

InstallShield's GUI really pushes the Java/Swing envelope; it shows some Swing related problems—including screen flicker, failure of the scroll mouse, scroll bars not showing, and unclear focus; but these problems really don't have much of an affect on usability. I would have preferred in-place editing of values vs. the separate panel offered in the product. Also, the F1 key (the regular Windows Help button) does not work in the fields of the builder. However, generic Help is presented for all sections and Help tabs are added for most beans. There are some other small UI annoyances; for example, when adding files to archive source, the bean loses its current directory as it switches between adding file or directory. But nothing major.

Creating a distribution involves creating a configuration that offers the following templates (preconfigured beans):

  • Standard: Welcome panel, License panel, Standard sequence, Product Destination panel, Pre-Install Summary panel, Install Sequence, Initialize Log, Install Product, and Post-Install Summary panel.
  • Advanced: Locale Selection, Setup Type Selection, Standard Sequence, Read Install History action, and Feature Select panel.
  • Suite: Suite product bean, Multi-Install Wizard References, and Product Selection panel.
After loading the template, the beans are customized, the sequence ordering is changed, and new sequence elements are added using the GUI. Using the platform-dependent functionality allows per platform/per locale customization of install sequence and features. One interesting piece of functionality is the usage of compiled resource bundles for texts, from the standard InstallResources bundle in this case.

Figure 3
Figure 3. Editing install sequence and properties.

At the build stage, there can be various distribution options received from the aforementioned configuration settings: a stand-alone executable (containing the JVM for Windows and Solaris), install applet (signed for Netscape and IE), and stand-alone class that can be run using an already installed Java environment. One thing I noticed when running the installers, is that they seem to be blindly utilizing the TEMP directory set by the OS and do not try to use other (current) directories with possibly more available disk space. Multiple build configurations (different languages, JVMs bundled, etc.) can be generated from the same settings.

The project files are saved as a serialized dump of the configuration set, and can be used on the command line to build the distribution archives. The project files, which are in binary format, cannot be edited directly, but the command line provides functionality to edit using properties (as in name-value pairs) presented as a command-line switch or in a properties file.

The product comes with extensive documentation written using JavaHelp. The three sections presented are product help, a tutorial, and expanded API description. Although the help is well presented, I think it could have used more pictures presenting functionality and more commented example code when presenting the API. There are buttons titled "Feedback" in many places in the help system, which simply display a URL where feedback on the documentation can be submitted. Maybe there could be some additional WWW enablement in the help system, containing an actual URL to click on or an email link. Printed documentation, which could have been used offline, was not supplied.

The particular feature I would like to have seen was the ability to create patches allowing incremental updates generated by the product based on a baseline, which would play well with the numerous class files supplied for your average Java project.

There are multiple offerings available in this market segment, offering similar base functionality. Based on my evaluation, InstallShield offers additional functionality, making it an excellent choice for cross-platform product distribution needs.

FOOTNOTE
* To be fair, the vendor bent over backward to help me get the product up and running on my Win95 machine. Although I never got it to run well in that environment, Product Review Editor John K. Waters did manage on his machine.

Review in a Nutshell
Pros:
This is a well-engineered product with advanced features that make authoring installation cross-platform programs a straightforward, even easy, process. It provides out-of-the-box functionality that should cover the needs of most developers. I particularly liked the multiple distribution delivery options offered.

Cons:
A few problems installing the product from the download raise concerns about compatibility with the officially supported environments. (Ironic, given that it's an installation program-authoring tool.) It could use further cross-platform support.

Bottom Line:
Despite the installation glitches, I give this product a strong recommendation for anyone who needs to package software for distribution.

Platforms:
Runs on Windows 95/98, NT, Windows 2000, and Solaris 2.6 or greater

Requirements:

  • At least Java 1.1.8, 1.2.2 or higher recommended (Other environments that have a compatible Java machine can also run the install files produced but not the product itself.)
  • 64 MB RAM minimum, 128 MB RAM recommended
Price:
MSRP $995 (upgrade from previous version $295)