MathFlow SDK licenses

All MathFlow SDK Components require a license. A component can either be licensed individually or as a part of a MathFlow SDK Developer License for all components. There are two options for licensing available, as follows:

  1. The first, a license key, is simply a string of characters. A license key is intended to be used as an unrestricted OEM license. It is compiled into products meant for outside distribution.
  2. The second, FlexNet Publisher, is intended for the internal use of the SDK components. A license file must be available for each machine using a given application, but it is much more convenient for a multi-user environment. See the FlexNet overview for more information on using FlexNet.

We recommend you use a license key for applets, but either type can be used for applications. In order to use any MathFlow editor, you must pass either a license key or FlexNet license file into the constructor of the editor component being used. For the MathFlow Composers, there is a SetLicense method. Refer to the javadoc for each component (by default located at C:/Program Files (x86)/MathFlow SDK/2.1/java/docs/javadoc/index.html.

License key to Applet version of editors can also be provided without passing it in constructor so non-Java programs can run the Applet version without writing extra Java code. Due to security reasons the instructions on how this method works will be provided when you buy the License or contact Tech Support for more information on this.

Overview — FlexNet

FlexNet licensing makes use of a license file, rather than a license key, to enable MathFlow SDK components. This can be especially useful when deploying an application containing MathFlow Components to many users. We provide three types of MathFlow FlexNet licenses: Evaluation, Fixed Permanent, and Concurrent (or Floating). If you require Concurrent licensing, then FlexNet-type licenses are required. Depending on the license type, the license file may be located on the same machine running MathFlow or it may be accessible via a central license server on your network (in the case of concurrent licenses).

  • Evaluation license. An Evaluation license expires on a specific date, which is determined by the date we generate the license. This type of license is most commonly used for demonstrations and evaluations of the product.
  • Fixed permanent license. A Fixed Permanent license is one of two permanent license types you can use with MathFlow. The fixed license is tied to a specific computer. Upon sending a "hostid" from the machine, we will send back a license explicitly for that machine.
  • Concurrent license. A MathFlow Concurrent (or floating) license uses a license server. When you send in your server's IP address and "hostid," we will send back a license file tied to that IP address. You can then place copies of the license file on the license server and all client machines (these copies tell the client where the server is). When a client machine needs a license, it contacts the server and "checks out" the license. When the license is no longer required, it is checked back in. With this approach, several people can share a single license, provided they don't use it at the same time.

Evaluation license

To request a MathFlow SDK evaluation license, contact our Sales staff. With an evaluation license, you will be able to try MathFlow for a period of 30 days. You can check on the expiration of the evaluation license by viewing the license file with any text editor.

NOTE: Do not modify the license file, or you risk invalidating the license.

Permanent license

As previously noted, MathFlow SDK supports two kinds of permanent FlexNet-type licenses: Fixed and Concurrent. In both cases, MathFlow uses a special identifier called a 'hostid' to associate a license file to a particular machine. Each hostid is unique to a particular computer, and can be determined by running a special utility program distributed with the MathFlow SDK (see below). Obtaining a permanent license is a two-step process. First, you must download and install the MathFlow SDK without a license. Then, you need to determine the hostid for your computer and report it to us, then we'll issue your permanent license files. For licenses of this type, MathFlow uses FlexNet license management software from Flexera Software. For additional information, refer to the License Server Manager, located in the appropriate ZIP:

NOTE: Before proceeding, ensure the path to the directory containing the FlexNet DLL (lmgr11.dll) is included in the PATH environment variable. For 32-bit Windows, the appropriate directory is <path-to-mathflow-sdk>/resources/windows/32bitDLL/. For 64-bit Windows, use <path-to-mathflow-sdk>/resources/windows/64bitDLL/.

Fixed licenses

To obtain and install a Fixed license, follow these steps:

  1. Install the MathFlow SDK as described in the Installation section.
  2. Obtain the hostid of the machine running the MathFlow SDK. You do this by running the lmhostid utility. It is located at the resources/OS_name/ directory, and must be run from a command shell (where OS_name can be linux, sun_4u5, or windows). Use the version appropriate for your machine. We recommend you copy and paste the returned hostid in order to minimize transcription errors. If more than one hostid is reported by lmhostid, use the first one.
  3. Contact Sales with the hostid.
  4. We will then issue a fixed dessci.lic license file.

Concurrent licenses

To obtain and install a Concurrent license, follow these steps:

  1. Install MathFlow SDK as described in the Installation section.
  2. Obtain the hostid of the machine running the license server program. Note this need not be a machine where the MathFlow SDK is installed or will be used. To obtain the hostid of the license server, copy the lmhostid utility from the MathFlow SDK to the server machine and run it. The lmhostid utility is located at the resources/OS_name/directory, and must be run from a command shell (where OS_name can be linux, sun_4u5, or windows). Use the version appropriate for your machine. We recommend you copy and paste the returned hostid in order to minimize transcription errors. If more than one hostid is reported by lmhostid, use the first one.
  3. Determine the IP address of the license server.
  4. Record the operating system for the license server.
  5. Contact Sales with the information collected in the steps above.
  6. We will issue a master concurrent license file which should be renamed to dessci.lic. Copies of this file must be placed on each client machine. On the client, this file instructs the MathFlow SDK code how to contact the license server.
  7. In addition, the master license file must be installed on the license server machine along with the server software. For details about installing and running the license server, consult the next section (below).
  8. Flexera software's lmtools is a useful Windows utility for configuring and managing the license management portion of MathFlow. You can download this and other utilities from our website, as mentioned in this page's opening paragraph.

License server

This page describes the process for installing and running a MathFlow SDK License Server. The subject is relevant only if you are using concurrent licensing.

Install the license manager daemon

Follow the steps below to set up the License Server.

  1. Follow the instructions for obtaining your concurrent license as described in Permanent license above.
  2. These executables for our License Daemon and FlexNet's License Manager Daemon software are included in the ZIP file you downloaded above:
    • MathFlow's License Daemon - named dessci.exe
    • FlexNet's License Manager Daemon - named lmgrd.exe
  3. Install your License Manager software into a directory of your choice on the appropriate machine.
  4. Place our License Daemon (dessci.exe), the FlexNet License Manager Daemon (lmgrd.exe), and a copy of the license file (dessci.lic) in the same directory.

If you are already using a FlexNet license server on the machine you got the License File for, you could keep using it for MathFlow licenses. Note, however, the License Manager Daemon should be of a newer version than the FlexNet version MathFlow uses. This is v11.10, so if your FlexNet License Manager is older than that you would still need to install the newer version. Flexera recommends you always use the latest version of their License Manager.

Start the license manager daemon

The precise command for actually starting the Daemon depends on your platform. Below is a brief outline, and more details on the License Server Manager can be found in the License Administration Guide, available in the ZIP you downloaded from the link above.

Windows Platform

Manually from a command line

Start lmgrd as an application from a Windows command shell using the following syntax:

C:\flexnet> lmgrd -c dessci.lic -L [+]debug_log_path

NOTE: dessci.lic is the license file you obtained from our Sales department, and debug_log_path is the full path to the debug log file. Pre-pending debug_log_path with the + character appends logging entries. Spaces in pathnames require double quotes around the path.

As a Windows service

LMTOOLS, a license manager tools GUI, is part of the download linked above. Some of the functions LMTOOLS performs include the following:

  • Starting, stopping, and configuring FlexNet license servers.
  • Getting system information, including hostids.
  • Getting server status.

In order to control the operation of lmgrd from the LMTOOLS user interface, you first must configure it as a license manager service. To configure a license server as a service, you must have Administrator privileges.

  1. Download and run LMTOOLS.
  2. Click the Configuration using Services radio button, then click the Config Services tab.
  3. In the Service Name, type the name of the service you want to define (e.g., the Design Science License Manager).
  4. In the Path to the lmgrd.exe file field, enter or browse to lmgrd.exe for this license server.
  5. In the Path to the license file field, enter or browse to the dessci.lic file.
  6. In the Path to the debug log file field, enter or browse to the debug log file this license server writes. Pre-pending the debug log file name with the + character appends logging entries.
  7. To save the new License Manager service, click the Save Service button.

Manually from LMTOOLS

Follow the procedure outlined above to configure FlexNet as a service before proceeding. Once the license manager service is configured, lmgrd is started by starting the service from the LMTOOLS interface.

  1. Start LMTOOLS.
  2. Click the Configuration using Services radio button.
  3. Select the service name from the list presented in the selection box. In this example, the service name is Design Science License Manager.
  4. Use the buttons on this panel to stop and start the Design Science License Manager.

Automatically at system startup

  1. Start LMTOOLS.
  2. Click the Configuration using Services radio button.
  3. Select the service name from the list presented in the selection box. In this example, the service name is Design Science License Manager.
  4. Click the Start/Stop/Reread tab.
  5. With LMTOOLS started and the desired service name selected, click the Config Services tab.
  6. Make this license manager a Windows service: check the Use Services check box.
  7. Configure it to start at system startup time by checking the Start Server at Power Up check box. From this point forward, this License Manager will start as a Windows Service at system start up.

Unix platforms

The FlexNet License Manager Daemon, lmgrd, is started either manually from a terminal or automatically at system startup.

Manually from a terminal

Start lmgrd, by a user other than root, from a UNIX terminal using the following syntax:

lmgrd -c dessci.lic -L [+]debug_log_path

NOTE: dessci.lic is the license file you obtained from our Sales department, and debug_log_path is the full path to the debug log file. Pre-pending debug_log_path with the + character appends logging entries.

If lmgrd must be started by the root user, use the su command to run lmgrd as a non-privileged user, as shown below.

su username -c "lmgrd -c license_file_list -l debug_log_path"

NOTE: username is a non-privileged user. Ensure the Design Science License Daemon (dessci) has execute permissions for username.

Automatically

Edit the appropriate boot script (/etc/rc.boot, /etc/rc.local, /etc/rc2.d/Sxxx, /sbin/rc2.d/Sxxxx, etc.) and add the following line:

su username -c "umask 022; lmgrd -c license-path -l log"

  • username: is a normal, non-root, non-privileged user
  • lmgrd is the complete path and file name to the lmgrd binary
  • license-path is the complete path and file name (dessci.lic) to the license file
  • log is the complete path and file name to the debug log file

NOTE: This does not start the daemon until you reboot your license server machine.

License Server Failover

If you use concurrent licensing, then you may employ a simple mechanism for license server failover. If your primary server machine is unreachable, or the license manager software is down, a redundant backup server will continue to administer your license. To take advantage of the license server failover mechanism, you must request it from Tech Support (support@wiris.com). We will provide you with two license files: one pointing to the main server and the other pointing to the failover server. These two files need to be copied onto each client machine, as well as distributed to their corresponding servers. The name (and path) of the second license file should be identical to the first license file, except it should have "-failover" appended before the file name extension.

Example:

First license file - "c:\licenses\dessci.lic"

Second license file - "c:\licenses\dessci-failover.lic"

You have the option of changing the license file names and paths, however please contact Tech Support for instructions before doing so.