Revenera logo

By Bill Valiunas

Many software vendors today still aren't making it easy for their coroprate customers to manage license use. Software license verification and activation has always been a two-sided tug of war, with software vendors needing to protect their intellectual property on one side, and their end users requiring uncomplicated application deployments on the other.

In most organizations, applications must be deployed silently, and in many organizations this is an absolute requirement.  Most of your corporate customers will also be deploying your application in ‘System Context’, further complicating license management during installation.

The problem for your customer begins when license verification requires user input, pre- or post-installation actions, or even elaborate combinations of both to be carried out in order for an application to be ready for use.  Many software developers are naïve to the problems this causes for their customers' deployment engineers, who are often forced to write elaborate scripts to deploy a product successfully.  This can take a great deal of time and effort and can be frustrating. 

InstallShield icon

InstallShield

Create native MSIX packages, build clean installs, and build installations in the cloud with InstallShield from Revenera.

In other situations, the deployment engineer may be forced to allow proprietary processes to run in a users context in order to verify a license.  This can often result in a ‘One-Off’ deployment that may violate the deployment standards a customer has in place.  This is just one of the issues that complicate software deployment in the corporate world.  It can severly diminish the perceptions of ‘Quality’ and ‘Ease of Use’ for any application.  It often adversely affects the perception the customer may have of the software vendor themselves.

There are many methods a software installation developer can use to reduce the complexity of deploying their products.  Here are just a couple of the ways InstallShield makes it easy to offer a trouble-free deployment mechanism for your customers.

  • The use of an InstallShield dialog template in conjunction with MSI public properties as a means of communicating and storing license data.  License data can then be communicated silently by a deployment mechanism using a simple transform and require no user intervention at the installations runtime.
    • InstallShield offers predefined dialogs with accompanying public properties already in place.  These are very flexible and easy to use.  You can read more about one of the options here: Customer Information Dialog and here: Using a Custom Action for Serial Number Validation.
    • To supplement this method, InstallShield also offers an intuitive dialog wizard and editing solution to further customize the use of public properties as a means of passing license data to an application or its installation.  You can read more about working with custom dialogs here: Working with Dialogs in Any Project Type. If your license verification process can be accomplished locally by locally executed processes to verify the license data (as discussed in Using a Custom Action for Serial Number Validation), and all required user input can be supplied via dialog box, you have already enabled your customer to deploy your product silently with the use of a common MSI transform.  Be sure to schedule the custom action that verifies the serial number in the Install Execute Sequence.  This will allow a silent installation to run for the customer without difficulty.
    • Using the ‘MsiHiddenProperties’ property further secures any sensitive licensing information by not allowing the value(s) for any specified properties from being written to the MSI log file.  This can add to the security of your license data.
  • If your needs are not met by using that method then internal routines within the installation or application can be written that can activate a license without end-user interaction.  This can be accomplished a couple of ways. 
    • Use of license management tools such as FlexNet Producer Suite.  This is a preferred method for several reasons as follows:
      • Provides easy unobtrusive method to manage license authentication process.
      • Requires little or no management for future modifications to your licensing schema. 
      • Can easily be configured or modified by the setup design engineer through the InstallShield interface.
      • Can be added to any MSI-based installation through InstallShield using merge modules already supplied with InstallShield.
    • Custom Action.  Though the actual custom action routines must be written by the developer they can be implemented silently with a variety of custom action types.  This would not be a preferred method for the following reasons:
      • The developer must maintain the remote systems for license authentication to take place at.
      • The developer must ensure that these remote systems are always available.
      • The developer must develop and maintain the application side license authentication mechanisms.

Many software installation developers already supply suitable options for truly silent, contextless, unattended deployments.  For those who do not the following is a short list of some basic needs, a wishlist if you will, that most corporate customers would enjoy and find helpful.

  • The ability to easily deploy installations and activate licenses under system context
  • The ability to easily deploy installations while requiring no end-user intervention during installation.
  • The ability to easily deploy installations while requiring no end-user intervention when the application is first run in a users context.
  • The ability to deploy installations in the unattended mode (silent installs).  This means that no User Interface and no required ‘Install UI Sequence’ actions should be used that cannot be scheduled to run during the Install Execute Sequence as well.
  • The ability to easily manage licenses once deployed.  This means that no extra steps other than uninstallation should be required to remove an application and return the license ot the unused state.

It is important to remember that one size does not fit all for this complex topic.  But understanding your options and, more importantly, your customers' needs for deployment is often as important as understanding your customers' needs for the applications actual functionality.