Chapter 1. Introduction and Overview

This chapter explains the basics of floating (network) licensing, and gives a quick overview of the components of FLEXlm. It explains where license administrators have control and where end users have control. A section called “Getting Started Checklist” tells both license administrators and end users how to start managing FLEXlm.

Introduction to FLEXlm

FLEXlm is perhaps the most popular license manager used in the software industry to control the use of software products. FLEXlm is best known for its ability to allow software licenses to be available (or float) anywhere on a network, instead of being tied to specific machines. Floating licensing benefits both users and license administrators. Users can make more efficient use of fewer licenses by sharing them on the network. License administrators can control who uses the licensed application, and the node(s) where the licenses will be available. See “Types of License Files” for details about the different licensing models supported by FLEXlm.

FLEXlm Components

The four main components of FLEXlm are:

  • application program

  • license manager daemon

  • vendor daemon

  • license file

The License Manager Daemon (lmgrd)

The license manager daemon (lmgrd) handles the initial contact with the client application programs, passing the connection on to the appropriate vendor daemon. It also starts and restarts the vendor daemons. FLEXlm permits multiple redundant license manager daemons on different server nodes, allowing you to make your license available if any two out of the three server nodes is running. With redundant servers, you don't have to split up your licenses among multiple servers, or rely on any one machine.

The Vendor Daemon

In FLEXlm, licenses are handled by running processes. There is one process for each vendor who has a FLEXlm-licensed product on the network. This process is called the vendor daemon. The vendor daemon keeps track of how many licenses are checked out, and who has them. If the vendor daemon terminates for any reason, all users lose their licenses. Users normally regain their license automatically when lmgrd restarts the vendor daemon.

Client programs communicate with the vendor daemon through TCP/IP or UDP/IP sockets. The client node (where the application runs) and the daemon processes (the license server) can run on separate nodes on your network. Also, the traffic between the client and the license manager daemon is machine-independent, allowing for heterogenous networks. This simply means the license server and the workstation running an application can be either different hardware platforms or different operating systems.

The License File

Licensing data is stored in a text file called the license file. The license file is created by the license administrator. It contains information about the server nodes and vendor daemons, and at least one line of data (called FEATURE or INCREMENT lines) for each licensed product. Each FEATURE line contains an encryption code based on the data in that line, the hostids specified in the SERVER lines, and other vendor-specific data.

In some environments, the licensing information for several vendors may be combined into a single license file. The default location is:

/usr/local/flexlm/licenses/license.dat

End users can usually override this location by setting the environment variable LM_LICENSE_FILE to point elsewhere, or by following instructions supplied with the licensed application. If your site has software from multiple vendors with incompatible license files (due to different sets of servers), you can keep the data in separate files and set the LM_LICENSE_FILE variable to reference multiple files. For details see Chapter 2, “The License File.”

The Application Program

The application program using FLEXlm is linked with the program module (called the FLEXlm client library) that provides the communication with the license server. During execution, the application program communicates with the vendor daemon to request a license.

The License Request Process

When you run a FLEXlm-licensed application the following occurs:

  1. The license module in the client application finds the license file, which includes the host name of the license server node and port number of the license manager daemon, lmgrd.

  2. The client establishes a connection with the license manager daemon (lmgrd) and tells it what vendor daemon it needs to talk to.

  3. lmgrd determines which machine and port correspond to the master vendor daemon and sends that information back to the client.

  4. The client establishes a connection with the specified vendor daemon and sends its request for a license.

  5. The vendor daemon checks in its memory to see if any licenses are available and sends a grant or denial back to the client.

  6. The license module in the application grants or denies use of the feature, as appropriate.

Configuring FLEXlm

Most of the parameters of FLEXlm are configurable by the license administrator. The license administrator can set:

  • the location of the license file

  • the location of all executables

  • the location of all log files

  • the TCP/IP port number used by the license manager process, lmgrd

In addition, the license administrator can reserve licenses for specific users, nodes, or groups, and control other license-related options. Changing parameters is discussed in Chapter 6, “The Options File.”


Note: Refer to your vendor's documentation before attempting to change file names, locations, or contents.


Getting Started Checklist

The following sections provide a quick overview of how to set up and use licensing for FLEXlm-licensed products. By scanning the list, you should be able to quickly find the areas of interest. Cross-references point to more details in other parts of this manual.

Installing Licensed Software

As a license administrator you are responsible for setting up licensing on your system or network. This section tells you how to do that. If you are an end user of the application and you will not be involved in installing it, then see “Notes for End Users”.

Remember that the installation guide for your application software is the final word on installing and configuring FLEXlm.

Generally, however, installing FLEXlm licensing requires the following steps:

  1. Select your license server nodes and get their hostids. See Appendix C, “Hostids for FLEXlm-Supported Machines.”

  2. Give the hostids to your software vendor and get a license file (or the data to enter in the license file) in return.

  3. Determine how the new license file relates to any other license files that may already be on your system, and install it appropriately. See Chapter 4, “Combining License Files.”

  4. Determine if an options file is desired, and if so, set it up.

  5. Determine where to install the FLEXlm utility programs such as lmgrd, lmstat, and lmdown and install them unless the application developer's installation script does so for you.

  6. Start lmgrd (the license daemon) manually; optionally, you may also want to set it up to start automatically at boot time. See “Setting the Path to the License File at Start-Up”.

These steps are discussed briefly below, with cross-references to the appropriate locations for more detail.

License Servers and Hostids

Before running any FLEXlm-licensed program using floating licenses, you will need to set up your license server node (or nodes). You must select which node or nodes to run your license servers on, and provide the hostid of those machines to your software vendor. For pointers on selecting your server machine, see Chapter 5, “Selecting Server Nodes.”

You can get the hostid of the server machine by running FLEXlm's lmhostid utility on that machine. If you don't have lmhostid, you can get the hostid of your machine by using the appropriate command as described in Appendix C, “Hostids for FLEXlm-Supported Machines.”

After giving the hostid of your server machines to your software vendor, the vendor will send you a license file that enables their application software.

lmgrd and License Files

Once you have received a license file from your vendor, you must install it on your system and start up the license manager daemon, lmgrd.

Administration Tools

Globetrotter Software supplies administration tools to your software vendor. The vendor usually includes them with their product. The recommended location for the tools is /usr/local/bin, but you can install them in a different location (or not at all). See Chapter 7, “License Administration Tools,”for more information.

Options Files

The options file controls various options such as reservations and timeouts of licenses. Most users run without an options file, but you may decide you want to use some options. For example, many administrators use an option to limit the quantity and content of logged messages. To set up an options file, see Chapter 6, “The Options File.”

Notes for End Users

As a user of a FLEXlm-licensed application, you may need to know a few things to use the system effectively. The main things you need to know are:

  • How to tell an application which license file to use.

  • How to query the system to find out who is using a license.

How to Specify a License File

The license file determines what features are available to a program. It also contains information telling the application how to connect to the license server.

For information about the standard way of specifying a license file for an application, see Chapter 2, “The License File.”

Getting Information About Licenses

To find out who is using a license run lmstat, described in Chapter 7, “License Administration Tools.”