Home | Categories | Alphabetical | Classes | All Contents | [ < ] | [ > ]

Runtime Licensing


A Runtime license allows you to deliver a copy of IDL that is licensed to run only your application on a single machine. This type of licensing offers developers who have smaller customer bases the opportunity to buy single distribution licenses as they are needed, paying a small fee for each license. The license is either a FLEXlm license tied to the specific machine on which your application will run (so you will need to obtain information about your customer's machine), or a more costly but less restricted license that will run on any machine of a given platform.

You can choose how to license your application:

To distribute an application with a runtime license, follow these steps:

  1. Build your application. How you do this depends on the type of application you are building. See Building a Native IDL Application, Building a Callable IDL Application, or Building an IDL ActiveX Application. For instructions on using the tools available for building applications, see Building Your Application
  2. Obtain and install your runtime license. See Obtaining and Installing a Runtime License.
  3. Prepare your distribution. See Preparing a Windows Distribution.
  4. Provide the means for installing your application. See Installing Your Application.
  5. Distribute your application.

Building a Runtime Application

The procedure for building an application to run with a runtime license depends on the type of application.

Tip
To ensure that your application will run with your runtime license and not in the IDL Virtual Machine, add the following code to your application before preparing your application distribution:
   isVM = LMGR(/VM)
   IF isVM THEN BEGIN
      void = DIALOG_MESSAGE('Please contact the author for $
      licensing instructions')
      RETURN
   ENDIF

Building a Native IDL Application

To build a native IDL application with a runtime license, create an IDL distribution for your application by following the steps described in Building Your Application. Keep the following in mind when creating the distribution:

Building a Callable IDL Application

Note
It is beyond the scope of this manual to discuss the creation of Callable IDL applications. See Chapter 21, "Callable IDL" in the External Development Guide for details. Note that applications using a runtime license must set the IDL_INIT_RUNTIME option when calling the IDL_Init() or IDL_Win32Init() function, and must call IDL_RuntimeExec() rather than IDL_Exec().

To license a Callable IDL application with a runtime license, create an IDL distribution for your application by following the steps described in Building Your Application. If your Callable IDL application uses a .sav file, keep the following in mind when creating the distribution:

Building an IDL ActiveX Application

To license an IDL ActiveX application with a runtime license, create an IDL distribution for your application by following the steps described in Preparing a Windows Distribution. If your ActiveX application uses a .sav file, keep the following in mind when creating the distribution:

Obtaining and Installing a Runtime License

Runtime applications that run on either Windows or UNIX platforms are licensed using either node-locked (FLEXlm) licenses or non-node-locked single-user licenses. Node-locked licenses are tied to the specific machine on which the application will run, while non-node-locked licenses will run on any machine of a given type. The following is an overview of the process you will follow to license your runtime application on either Windows or UNIX:

  1. Get information about the end user's machine on which your application will run.
  2. Send this information to RSI. A license file will be generated and sent to you.
  3. Install the license file in your distribution to create a licensed distribution so that the end user can install and run your application without the need for any changes. Alternatively, if you have created a single unlicensed distribution that you provide to all your end users, you can provide the end user with a separate license file and instructions for installing the license file.

The following sections describe these steps in detail for each platform.

Windows

Obtaining a License

In order to obtain the information needed to generate a node-locked license file, your end user must run the application lmtools.exe on the machine for which your application is to be licensed. If your end user has already installed an unlicensed copy of your application, he or she will have access to lmtools.exe. Otherwise, you will need to provide the end user with a copy the lmtools.exe file, which can be found in the bin/bin.x86 directory of your IDL distribution.

Note
If you are using a non-node-locked license, you only need to know which platform (Windows, Unix) your end user will be using.

Provide the end user with the following instructions:

  1. In order for lmtools.exe to be able to retrieve the correct information, your system must have a configured network interface card.
  2. Run the lmtools.exe application. The Lmtools dialog appears.
  3. Click the Hostid button. Information similar to the following is displayed:
  4. Hostd ID's----------------------------------- 
    HOSTNAME=myhost 
    USER=jdoe 
    DISPLAY=myhost 
    INTERNET=10.15.2.109 
    0030dcb86317 
    DISK_SERIAL_NUM=c5f8b462 
    
  5. Click the Save Text button. In the Save As dialog, enter a path a filename and click Save.
  6. Send the text file saved in the previous step to your application vendor.

When your end user has provided you with the information obtained by lmtools.exe, e-mail this information to register@RSInc.com or fax the information to RSI at (303) 786-9909. If you did not purchase IDL directly from RSI, send the file to your local distributor.

RSI will then send you a license file called license.dat.

Installing the License

Once you have received a license.dat file from RSI, perform the following steps to provide your end user with a licensed copy of your application. If you have provided an unlicensed copy of your application and want the end user to license the application, provide the end user with the following instructions:

Note
If the LM_LICENSE_FILE environment variable has been set on the user's system, the location of the license file specified in the idl.ini file will be ignored. In this case, the user will either need to add the license file path to the existing LM_LICENSE_FILE value, or move the license file to the location specified by the existing LM_LICENSE_FILE value.

  1. Edit the idl.ini file using the instructions under Edit the idl.ini File.
  2. Place the license.dat file in the location specified by the idl.ini file. For example, assume the application directory hierarchy of your distribution looks like this:
  3. MyApp 
       bin 
          bin.x86 
       resource 
    

    Assume the idl.ini file is located in the MyApp\bin\bin.x86 directory along with your application executable, and the idl.ini file contains the following line:

    RSI Root=..\..\.. 
    

    For this RSI Root value, you must create a license directory at the same level as the MyApp directory, as shown below:

    MyApp 
       bin 
          bin.x86 
       resource 
       license 
    

    Then place the license file in the license directory.

    Note
    All directories specified in the idl.ini file should be relative to the directory containing the .ini file. This ensures that, if the directory tree for your application is moved to another location, it will still run.

  4. You should now be able to run the application by double-clicking the application .exe file, located in the bin\bin.x86 subdirectory of the application distribution.

UNIX

Obtaining a License

In order to obtain the information needed to generate a node-locked license file, your end user must run the application lmhostid on the machine for which your application is to be licensed. If your end user has already installed an unlicensed copy of your application, he or she will have access to lmhostid. Otherwise, you will need to provide the end user with a copy the lmhostid file, which can be found in the bin directory of your IDL distribution.

Note
If you are using a non-node-locked license, you only need to know which platform (Windows or Unix) your end user will be using.

Provide the end user with the following instructions:

  1. In the bin directory of the application distribution, execute the command lmhostid. Text similar to the following will be displayed:
  2. 	The FLEXlm host ID of this machine is "80598a67" 
    
  3. Provide the host ID returned by lmhostid, along with the hostname of the machine to your application vendor. (To obtain the hostname, enter the command hostname.)

When your end user has provided you with the information returned by lmhostid and the hostname of the machine, e-mail this information to register@RSInc.com or fax the information to RSI at (303) 786-9909. If you did not purchase IDL directly from RSI, send the file to your local distributor.

RSI will then send you a license file called license.dat.

Installing the License

Once you have received a license.dat file from RSI, perform the following steps to provide your end user with a licensed copy of your application. If you have provided an unlicensed copy of your application, and want the end user to license the application, provide him or her with the following instructions:

  1. Modify the LM_LICENSE_FILE environment variable on the machine on which the application will run. This can be performed manually by the end user, or can be performed automatically using an installation script. If there is no LM_LICENSE_FILE environment variable defined, simply set the value of LM_LICENSE_FILE to the desired directory, such as in the following command:
  2. setenv LM_LICENSE_FILE /myapp/license/license.dat 
    

    If there is already an existing value for LM_LICENSE_FILE, append the path for the license directory of your application to the existing LM_LICENSE_FILE value.Separate the new license path from the existing one with a colon as follows:

    For C shell:

    setenv LM_LICENSE_FILE /home/otherapp/license.dat: 
       /myapp/license/license.dat 
    
  3. Place the license.dat file in directory specified by the LM_LICENSE_FILE environment variable. For example, assume the application directory hierarchy of your distribution looks like this:
  4. myapp 
       bin 
          bin.sgi 
       license 
       resource 
    

    If the path /myapp/license has been appended to the end user's LM_LICENSE_FILE environment variable, IDL will look for the license.dat file in the /myapp/license directory.

Running a .sav File with a Runtime License

Note
When a .sav file with a runtime license is executed, the current working directory will be the directory that contains the .sav file.

How you run a .sav file with a runtime license depends on your operating system:

Windows

Do one of the following:

UNIX or Mac OS X

At the UNIX command prompt, enter the following:

idl -rt=<path><filename> 

where <path> is the path to the .sav file, and <filename> is the name of the .sav file.

Note
If you set the IDL_DIR environment variable, you can simply execute the startup script. See Starting Your UNIX Application.

Example

To distribute the example IDL application with a runtime license:

  1. Build the application and create the myApp.sav file. See Example Native IDL Application.
  2. Obtain licensing information from each of your customers by having them run lmtools.exe (Windows) or lmhostid (UNIX), and send the information to RSI to generate a license file for each customer.
  3. When you receive the license files, do either of the following:
    • Include a license file with each distribution of the application, send it to the appropriate customer, and provide instructions for the customer to install and license the application.
    • Install a license file in the distribution, generate a separate licensed distribution for that customer, and repeat for each subsequent license file. Each customer receives a custom licensed distribution.
  4. Distribute your application with the appropriate instructions.

Home | Categories | Alphabetical | Classes | All Contents | [ < ] | [ > ]