Finding a pot of gold in your software license portfolio

A substantial part of the budget of any company is taken up by IT, especially in engineering, healthcare and scientific organizations. For this reason, most CFOs scrutinize any capex or opex emanating from the IT division. One of the recurring costs that is laid out there in black and white will be for software licensing. The CFO will be unhappy about this ever-increasing cost, but regards it as an important part of compliance; after all, he does not want to be subject to a software audit that finds the company has compromised their license agreement and are now subject to a punitive fine. The number of licenses purchased and how efficiently they are used is rightly regarded as the CIO’s responsibility.

The CIO’s Challenge

The CIO, in turn, does his best to optimize license usage, by buying concurrent user licenses where possible and then monitoring that these licenses are used as efficiently as possible. However, if he is relying on the license management software provided by the vendor, the visibility of what is really happening is limited; the software is provided to help the vendor monitor usage, rather than the customer. Some organizations  that have never paid much attention to engineering and scientific software licensing costs, especially where licenses are acquired for every project and those costs are passed on to the customer. In these organizations, the licenses are often not under the control of IT, but are looked after by the relevant engineering department or project.

This does not mean that there are not IT shops who actively monitor and report on their concurrent licenses, but good license management results in demonstrable cost savings, and the CIO will obviously not downplay his success in cost reduction. There will also be readily available reports, which the CFO should take the time to understand.

Are The Cost of Engineering Licenses Often Overlooked?

The CFO is aware of licensing costs. After all the company usually has ERP, accounting and human capital software with which he is closely involved, as well as general office software, such as Microsoft Office, and will probably have several cloud-based applications like SalesForce. For these software products he has a close involvement in the licensing and renewals, but they tend to be on a per-seat or per user basis. This might be why so many CFOs leave money on the table when it comes to engineering software. The CFO will question the acquisition of new hardware, such as a high-spec laptop for the engineering department, but accept that new licenses need to be loaded on to the laptop. The fact that these licenses can cost far more than the laptop is often missed.

What a CFO can do to Mitigate these Costs

Tracking licensing costs for scientific and engineering software is a very labor-intensive task, especially if done manually. A diplomatic first step to get the information required, would be to request a new set of reports that show the number of licenses purchased, in use and the level of their utilization. There will probably be some resistance from the CIO, mainly because these values are very difficult if not impossible to determine using the vendor-supplied software. Any arguments can be countered by conceding that a reasonable budget will be allocated for getting the right software to do the job, but that this must be done as soon as possible. By showing empathy and understanding of the problem, there is no implication that the CIO has neglected to look after his licenses. It might even be the case that he has no control over these licenses, because the engineers buy and manage them directly.

Where this is the case, there may need to be some additional work to bring the license back under IT’s management. Whatever the situation, the reporting will be an eye-opener.

Finding the Money

There are three main sources of unnecessary spending or “waste” on licenses:-

  • unused licenses, or “shelfware”.
  • single-user or named user licenses that are only used occasionally
  • a concurrent or network license pool with poor utilization.

Shelfware. Unused licenses are commonly found where a set of new licenses was procured for a new project, and the project is now completed or the phase of the project where they were needed has passed. What tends to happen with these licenses is that license renewals are entered into without checking that they are needed. These licenses can immediately be dispensed with, you have enough licenses without them.

Single-User Licenses. It is often valid to purchase a single-user license for a resource who uses the software daily and for most of the day. However, there needs to be real justification for retaining them, rather than assigning the user to the concurrent user pool and freeing up the license, to be exchanged for a concurrent license or terminated. Single-user licenses are cheaper, but not if they are not used extensively.

Concurrent Licenses. Concurrent licenses cost more but can be used much more efficiently because users draw them from a pool and (hopefully) return them to the pool when they are finished (good license management software can manage that too by “harvesting” idle licenses). Ensuring that concurrent licenses are used to the maximum is not an overnight job, but the CIO should be able to demonstrate gradual improvement month-by-month once he has the right software to see what is really going on. We have several case studies where customers have used OpenLM to optimize concurrent license usage.

This may seem like an exercise that will result in small savings, but if you take the cost of these licenses into account, some companies have realized over a $1,000,000 by reducing their license overhead. It depends which software you use, but when you consider the price of Catia, Solidworks, Revit or AutoCad, it would be foolish not to get rid of licenses you don’t really need.

Please follow and like us:

License manager ports: FlexLM(Flexnet), DSLS, IBM LUM, LM-X, Sentinel HASP, Sentinel RMS, Reprise RLM.


Licensed applications communicate with license management tools over predefined ports. system administrators need to know these port numbers, verify that these ports are open and communication via these ports is kept functional.

The OpenLM Utilizer tool interfaces various license managers in order to extract license statistics and usage reports. The license manager ports are different for each tool as elaborated below, and need to be configured correctly in the OpenLM modules.

How do I know the port I need is open for communication ?

The simplest method for verifying that a port is open for communication is by ‘Telnet’. The Telnet utility comes built in Windows XP, but needs to be installed on Windows 7. Open a command line prompt, and type in the following line: telnet <Hostname or IP> <Port number>. For example:
> telnet 27000 or > telnet My_Hostname 27000
If the cmd window remains blank, the port is open. Otherwise, an error string would appear.
In such a case, it is suggested to do the following:
1. Make a port exception in FireWall, or temporarily disable it altogether, to ascertain whether the Firewall is to blame.
2. Temporarily disable the Antivirus, to ascertain the same.
3. If a hostname was inserted in the command line, try typing in an IP instead.
4. Try a different port, or ‘ping’ the server:

Specific license management tools

Flexera FlexLM ports:

The OpenLM license monitoring tool provides unique abilities for monitoring and controlling Flex-enabled applications. The FlexLM ( Flexnet ) license manager communicates through ports 2080 and 27000 to 27009. In order to verify which ports are used, please read this short post.
The ports may also be altered, and set up statically by the system administrator.

Dassault Systemes DSLS ports:

DSLS employs three ports for License management:

  1. Administration port: default 4084. Connecting the License Administration Tool GUI to the Server.
  2. Licensing Port: default 4085. Used by clients to request licenses.
  3. Failover port: default 4086.Used for communication among cluster members.

IBM LUM ports:

LUM Network Client and Server communicate over UDP protocol on Network License Server port (by default 1515).

LM-X ports:

LM-X Network Clients and Servers communicate through port 6200 (default) over TCP.

Sentinel HASP ports:

The Sentinel HASP License Manager uses port 1947 to transfer data over TCP and UDP protocols.

Sentinel RMS ports:

  • The Sentinel RMS License Manager uses port 5093 to transfer data over UDP between Servers and clients.
  • Port 5099 is used for intercommunication between servers in a Server Redundancy constellation.

Reprise RLM port:

RLM uses port 5054. It was port 9000 prior to RLM version 6.

Please follow and like us:

Extracting DSLS information using command lines

OpenLM supports a wide variety of license managers for license statistics and the extraction of license usage reports. Among these license managers are Flexera Flexnet, DSLS, IBM LUM, LM-X, Sentinel RMS, and Sentinel HASP. During the development of OpenLM’s interface to Dassault Systemes’ proprietary license manager: DSLS, we needed to extract DSLS information using command lines.

The following is an account of the commands used in this process, and examples for commands’ output. The logs are typed in a manner that would fit this page, and are edited to be non-personalized.

DSLicSrv -admin [-I inputFile] [-t OutputFile]
Employ the DSLS license administrator tool in command line mode.

  • Optionally redirect the output to OutputFile
  • Optionally run the license administrator commands from a command file.

The DSLS administrator tool was employed in command line mode. The admin> prompt appeared.

connect <HostName> <port>
Connect the administration tool to a license server <HostName> on a specific port <port>.

The following was emitted on the screen:
License Administration Tool Version 6.210.0 Built on Oct 6, 2010 10:49:19 AM.
admin >connect <HostName> 4084

Software version : 6.210.0

Build date : Oct 6, 2010 10:49:19 AM

Standalone mode Ready : yes

Server name : <HostName>  

Server id : <ServerId>

Get license server configuration

The following was emitted on the screen:

admin >getConfig
Server configuration Standalone mode
Computer name : <HostName>

Computer ID : <ServerId>

Licensing port : 4085

Administration port 4084

Password protected : no

Remote administration enabled : no

License usage statistics enabled : no

Get license information


The following was emitted on the screen:

admin >getLicenseInfo

Status active

Editor Dassault Systemes

Model ConcurrentUser

Feature <Feature name>

Quantity 50

StartDate 2011-08-17.00:01.UTC

EndDate 2012-08-31.23:59.UTC

MaxReleaseNumber 1

MaxReleaseDate 2012-08-31.23:59.UTC

MaxUsageDuration 0

MaxUsagePeriod 0

LicenseType Floating

CommercialType STD

LicenseId <LicenseID>

RepGroupIndex 1

RepFileIndex 1

RepFileQuantity 2

ComputerId <ComputerID>

ComputerName unknown

CustomerSite <CustomerSite>

CustomerCountry USA

CustomerId <CustomerId>

GenerationDate 2011-08-18.20:20.UTC

GenCompany Dassault Systemes

GeneratorId <GeneratorId>

EditorId <EditorId>                             

getLicenseUsage -all
Show current license usage


The following was emitted on the screen:

admin >getLicenseUsage -all
Dassault Systemes <EditorId>

// 1st Feature
<FeatureName 1>  release : 1

type : ConcurrentUser

count : 50

inuse : 2

      // 1st usage table:

      consolidation : <HostName>/<HostName>

      granted since : Nov 28 2011 11:38:14

      <HostName> (<identifier>)  <UserName> <draftsighthelper directory>

      // 2nd usage table

// 2nd Feature …
Disconnect the DSLS administration tool from the license server.



Please follow and like us:

How do I obtain a DSLS license key ?

OpenLM interfaces the Dassault Systemes license management tool, to obtain license statistics reports for Dassault applications (e.g: CATIA,  SOLIDWORKS).

In order to operate a Dassault Systemes license application, one must obtain a license key. Please refer to the Dassault Server License Keys page; there is a video tutorial and an abundance of PDFs to enjoy.

Please follow and like us:

Where can I download Sentinel HASP and Sentinel RMS license managers ?

The Sentinel HASP and Sentinel RMS license management tools may be downloaded from the Products section on Safenet’s web site, under the “Licensing and Management” title.

The OpenLM server seamlessly interfaces both tools, in order to extract comprehensive license statistics reports.

Please follow and like us:

Application Note 1029: LDAP (Active Directory) Synchronization


The OpenLM Server is capable of synchronizing users and groups with an organization’s LDAP to combine license management, license statistics, and report extraction with other company information. LDAP synchronization provides automatic maintenance of Users’ and Groups’ data.

LDAP Synchronization holds many advantages, for different levels of decision makers in the organization. On an administrative and managerial standpoint, it can be applied for enforcing license usage permissions, implementing usage chargeback (usage billing), analysis of usage trends etc. Administrators may gain in automating FlexLM Option file management, thus streamlining FlexLM reporting. From the end-user point of view, this information may be applied to easily locate other users holding a required license.

The Groups synchronization functionality is part of the Users and Groups extension, and requires additional licensing.

Additional information

Please refer to the video tutorial section on the OpenLM site, for a demonstration of Active Directory synchronization.

Users and groups presentation

The Users and User groups which exist in the OpenLM Database are apparent in the EasyAdmin web application, in the Users and Groups windows respectively. Initially, upon installation of the OpenLM server, the Users and Groups windows are only populated by the logged user (e.g. ‘Orik’ – that’s me), the default ‘generaluser’ user, and the “OpenLM Users” default group.

The Active directory tab – Interfacing the LDAP

This tab is the OpenLM Server’s interface to LDAP (Active directory) synchronization. The 1st thing to do is to connect to the LDAP Database. Type in the LDAP server details:

  • Domain name: the IP Address of the server which is your organization’s domain controller (e.g:

  • Username (e.g: administrator)

  • Password, and

  • LDAP server type: (e.g. “Active Directory”)

Click the ‘Check’ button, and receive an authentication status notification, as depicted below:


Organizations may have multiple domain controllers (for example, if different departments or subsidiary companies have their own servers for user authentication). In order to add a second server, select the row where the asterisk is shown above, and type in the data for the second server. In order to apply another synchronization rule to the same LDAP server, click the “Duplicate” button under the list of domain controllers.

Synchronizing Users

It is important to note that synchronizing to the LDAP is a tricky business. You may end up having taken in more users than you intended, and deleting users from the database is difficult. It is highly recommended to experiment on a separate database, NOT on the production database.

In order to synchronize user information:

  • Check the “Synchronize users” check-box. Other fields on the “Active directory” tab are activated.

  • Click the ‘Select’ button. The active directory browser opens.

  • Select a synchronization start node.In this example, We’ve selected an Organizational Unit (OU): OU_Test. Click ‘OK’ and the node path appears in the “Synchronization Start Node” text box. The LDAP would be synchronized from this node down.


  • Set the “Sync time interval” value. The value in this example states that the user details would be updated every 12 hours.
  • It is highly recommended to Check the “Sync only active users of licenses” in order to avoid adding users that do not actively use the application. New active users would be added to the list of users as they check out a license, and their LDAP details would be synchronized when the “Sync time interval” elapses.
  • Set the “Sync username attribute”.

    • “sAMAccountName” is good for Pre Windows server 2000 Active directory versions.

    • “userPrincipalName” is good for Post Windows server 2000 Active directory versions.

    • “cn”  should be used for any LDAP configuration other than “Active Directory”, i.e. “Novelle Directory” or “Apache DS” .

      The value of the selected field (sAMAccountName or userPrincipalName or cn) within the Active Directory would be applied as the user name recognized by OpenLM.

Synchronization of Groups

Check the “Synchronize groups” checkbox to enable a variety of options for associating users with groups in the OpenLM database, according to the data structure on the LDAP.

AD Groups:

This option goes through the list of users that populate the nodes beneath the selected node. The “AD Groups” selection should be used carefully, because it may introduce a large amount of undesired groups. This is because users who are members of groups within the selected node may also be members of groups from beyond that node, resulting in additional introduction of these external groups.


OpenLM groups may be created according to specific attributes their members may have. In order to do that, select the “Attribute” radio button, and pick up a suitable attribute from the adjacent drop-down list of attributes. Examples for attributes are: “Division”, “Employee ID”, “Initials” or “Cost center”. Type in a Regex expression that would articulate the required attribute.


This option enables the administrator to associate a particular group name to all users of a specific node within the AD tree. The ‘Fixed’ name typed in the textbox is the group name of the users that would consequently be synchronized in this method.

OUs (organizational units):

This option is in use by organizations that have an organizational hierarchy represented in the LDAP; for example departments nested inside divisions. By selecting the OU synchronization method:

  • Users would be introduced into groups in the OpenLM database. These groups would be named after the LDAP OUs under which the users have been created.

  • If the “Add full hierarchy” checkbox is ticked, the entire OU hierarchy tree descending from the start node would be introduced as groups in the OpenLM database. OUs in which no users have been defined in the LDAP, would be presented in OpenLM as empty groups.

  • If the “Add full hierarchy” checkbox is not ticked, OpenLM would flatly create groups named after the LDAP OUs, and populate these groups by the users which have been defined under these OUs. No empty groups would be created.

Case study

In order to demonstrate the different group synchronization methods, I have created the following OU structure, and enabled all users. Note that Users U_A1 & U_AB2 are members of more than one group:

Case 1: Synchronize users only

Procedure: OU_AB was selected as the start node.

Outcome: All Users were synchronized. No Groups or OUs synchronized.

Case 2: Synchronize AD Groups (1)

Procedure: OU_AB was selected as the start node.

Outcome: All groups and users beneath OU_AB were synchronized. The Hierarchical tree was not preserved.

Case 3: Synchronize AD Groups (2)

Procedure: OU_B was selected as the start node.


  • Users B1 & AB2 have been synchronized.
  • Group B1 was synchronized.
  • Group A1 was synchronized, with only user AB2.

Case 4: Synchronize AD Groups (3)

Procedure: OU_A was selected as the start node.

Outcome: Mirror image of the previous case:

  • Users A1, A2, A3 & AB2 were synchronized.
  • Groups  A1, A2, A3 & B1 were synchronized. Group B1 only contains user AB2.

Case 5: Fixed

Procedure: Start node = OU_A. The “Fixed” name was named “The_A_Team”.

Outcome: All of OU_A’s users were gathered in “The_A_Team” group.

Case 6: Attribute

Reminder: Users A1 & B1 are the only users to have been defined owning “division” attributes with the value “my_division” (See LDAP diagram).

Procedure: OU_AB was selected as the start node. The “Attribute” synchronization method was chosen. The ‘division’ attribute with the value “my_division” was configured in the Active directory configuration form.

Outcome: All Users in OU_AB were synchronized. Users A1 & B1 were gathered in the “my_division” group.

Case 7: OU

Procedure: OU_AB was selected as the start node. “Add Full Hierarchy” was not checked.

Reminder: Users  AB1 & B1 were created under the OU_AB Operational Unit. All other users, i.e. A1, A2, A3, AB2 were created under OU_A.

Outcome: All users under OU_AB were synchronized. OpenLM has flatly created groups named OU_AB, and OU_A. Each of these two groups contain the users which have been created under the respective LDAP’s OUs:

  • Group “OU_AB” contains the users AB1 & B1 (see image below).
  • Group “OU_A” contains all other users, i.e. A1, A2, A3, AB2.

Case 8: OU (2)

Procedure: OU_AB was selected as the start node. “Add Full Hierarchy” was checked.

Outcome: This time the OU hierarchy was preserved, so OU_A and OU_B appear under OU_AB. The users are again grouped according to the position in which they were created:

  • Group “OU_AB” contains the users AB1 & B1.
  • Group “OU_A” contains all other users, i.e. A1, A2, A3, AB2 (see image below).
  • Group “OU_B” is empty.

Please follow and like us:

Application Note 1001_b: Configuring OpenLM to interface the Sentinel RMS license manager


OpenLM supports the monitoring of a wide variety of license managers such as Flexera FlexLM ( Flexnet ), Beta LM, IBM LUM, DSLS, Sentinel HASP, Sentinel RMS, RLM, and LM-X. This application note elaborates the steps required to configure OpenLM to interface the Sentinel RMS License Manager, and obtain reliable license reports and usage statistics.

Enabling the OpenLM server to work with RMS

In order to configure OpenLM to work with  Sentinel RMS, please follow this procedure:
1. Download lsmon.exe and lsapiw32.dll . These files aren’t included in the OpenLM installation package. For information on how to obtain these files, please contact OpenLM on
2. Copy these files to “C:\Program Files\OpenLM\OpenLM Server\LM”
3. Enter the OpenLM Server Configuration Form. Select the LM Tools tab → RMS.
4. Type in the full path of the executable file, i.e.:  “C:\Program Files\OpenLM\OpenLM Server\LM\lsmon.exe” in the “RMS executable file” text box.

See the following image for further clarification:

Introducing a new Sentinel RMS server

After configuring the OpenLM configuration tool to work with Sentinel RMS as elaborated above, the user may introduce an new  Sentinel RMS server under the License Servers tab:
1. Select the “License Servers” tab.
2. Select the RMS type from the “Type” dropdown list.
3. Type in a meaningful description in the “Description” text box.
4. Type in the appropriate “Hostname” and “Port” numbers. The Sentinel RMS default port is 5093.
5. Check the “Enabled” check box.
6. Click the “Apply” button. The  Sentinel RMS server is now ready to interface the OpenLM.

OpenLM Broker configuration for RMS

The OpenLM Broker is an optional though highly recommended component, that should be installed and configured on the RMS license manager machine. It provides accurate license statistics, and facilitates communication between the OpenLM Server and the License manager.

First, download and install the latest OpenLM Broker version. Follow the installation and configuration instructions on the OpenLM Broker configuration Application Note.

In the License server port dialog, select the RMS license manager type from the ‘Type’ dropdown list.
In the port’s Commands list make sure the ‘status’ command is
lsmon <License Server Name>

Document Revision Table

Version Author Date Changes
0.1 Orik May1, 2012 Preliminary
1.0 Orik Jun3, 2012 Revised.
1.1 Orik Jun6, 2012 Added Broker


Please follow and like us:

Setting FlexLM port numbers statically

Flexnet / FlexLM ports numbers may be set statically by declarations made in the FlexLM license file. When remain undeclared, these ports would be set randomly every time the license manager is started.

1. In order to set the port connecting the license manager with the installed applications:

On the server side, on the license file (<license>.lic), add a port number to the end of the SERVER line, e.g.:

SERVER <ServerName> <HostId> <PortNumber>

On the client side, on the <license>.dat file add the same number to the end of the SERVER line, e.g.:

SERVER <ServerName> ANY <PortNumber>

2. In order to set the license manager to interface the Vendor over a predefined static port number, add this number in the end of the VENDOR line, in the license file on the license server machine, e.g.:

VENDOR <VendorName> PORT=<VendorPortNumber>

In order for these changes to take affect, you would need to reread the license file. You may do that by clicking the “Reread License file” button, under the “Start/Stop/Reread” tab in Flexera’s LMTOOLS application.

The OpenLM license monitoring tool interfaces these ports in order to extract license statistics, and reliable license usage reports.

For any further information about license management, please visit the new OpenLM site, or address us directly on

Please follow and like us:

How do I know the FlexLM license manager port number ?

OpenLM employs the Flexnet / FlexLM reporting mechanism to monitor and optimize concurrent license usage, and obtain license statistics. The FlexLM license manager interfaces licensed applications via predefined ports. You can verify that a port number is set correctly by:

1. Using Flexera’s LMTOOL utility: Select the “Server Status” tab, and click the “Perform Status inquiry” button. the port number would appear on the line that begins with “License server status:” e.g.:

License server status: 27000@My_server

2. You can also find the server name and port number (If defined as static) directly in the license file, in the SERVER line e.g.:

SERVER <ServerName> <hostId> <PortNumber>


The path and name of the license file is set in the LMTOOLS, under the “Config Services” tab.

Please follow and like us:

OpenLM Version 1.8 Preview

The upcoming OpenLM release version 1.8 is a major milestone in the development process of the OpenLM license management system. This version has been in preparation since October 2011, when version 1.7 was released, and is expected to be officially released by the end of 2012.

Version 1.8 incorporates many bug fixes, performance improvements and new features that were required by our expanding circle of trusted customers. These changes have increased OpenLM’s robustness and made it less prone to errors.

Version 1.8 also integrates some architectural changes that have expanded OpenLM’s ability to further develop license usage control and monitoring. Here are some of the main highlights of this new version.

Database manipulation

Version 1.8 enhances the administrator’s capabilities to manipulate the OpenLM database:

  • Archive or delete old data,

  • Extract irrelevant users, delete unnecessary groups, or even

  • Use multiple OpenLM servers on a single Database. This is a prerequisite for providing support for cloud – computing license management environments.


Many changes have been made to the EasyAdmin administrative interface, making the presentation of usage reports more efficient, robust and better designed. Here are some of these enhancements:

  • Support of the Apple Safari Browser
  • License Expiration date filtering
  • License Manager Up-time logging
  • Improvements in License usage reporting (e.g: Flexnet / FlexLM reporting).
  • Improvements Feature usage reporting: accessible from every workstation.


Software packages are automatically recognized, and populated by the software product  which are members  of these packages.

User Group monitoring

The group monitoring tool would be integrated into OpenLM v1.8, and enhance OpenLM’s ability to provide clear group-related license statistics.

Support of new License management tools

The addition of license management tools to the expanding portfolio of OpenLM’s supported license managers is an on-going task. Version 1.8 already incorporates the support of FlexLM / Flexnet, Sentinel RMS (Aspentech SLM), DSLS, IBM LUM, Sentinel HASP, LM-X (Altair), Reprise RLM, Beta LM, Mathematica LM (MathLM), and Easycopy, and the list is constantly expanding.

Version 1.8 has seen the addition of Beta-LM, Mathematica LM (MathLM), and DSLS. In addition to that, support of some license management tools was enhanced, for example – the IBM_LUM license manager has been added expiration date and license denial indications.

Please follow and like us: