Software License Management: Best Practices

Forward

Software license management is an increasingly noteworthy subject in the business world today. Many companies find themselves facing software audits on a regular basis. Companies are forced to conduct internal software audits to ensure compliance as well as be prepared for external ones initiated by software vendors.

Continuous management of software licenses improve staff productivity, create resources savings and protect the company against potential fines for non-compliance. The matter is often overlooked by many companies due to the increasing complexity of license monitoring. Hence, IT teams only react when external audits occur.

Software for license control enable companies to save money by recycling unused licenses or redirecting them as required. In this context, it is appropriate to adopt a strategy for managing software licenses based on the following best practices.

1. Define a Software Management policy

Every company and organization should define and implement a license management policy that includes all software licenses supported and approved.   This policy must manage all of the software used, indicating in particular versions and supported platforms as well as the date of software expiration and the procedure to be followed in this case.

It is recommended to pass all requests for software purchase through the department head. It should also be clear that employees are not permitted to directly acquire software or download software from the Internet without permission.

2. Inform Management and Employees

Once the policy is defined it is essential to communicate the details to management and employees.

Successful implementation depends on the full understanding and participation of both management and employees in the process. The policy needs to set clear guidelines for compliance, implementing rules and discouraging offenders. It will also require performing regular self-assessment and performance reports.  In addition, training programs to inform staff of policies licenses and conditions of use approved software, should be made available.

3. Produce an inventory of all software

All installed software must be listed with their respective usage level. The IT team will make underused licenses available to other users and avoid unnecessary purchase of new licenses. Underutilized licenses may also suggest that the software training is not tailored to the needs of users or that a tool is obsolete.

4. Uninstall old applications

Companies should review their software portfolios annually and uninstall unused or redundant applications. It will save licensing costs, optimize staff productivity and improve functionality.

5. File software licensing agreements

Companies must maintain centralized documents relating to purchases of software, including license agreements. This repository will enable management of license purchase, cost evaluation, software depreciation, warranty information and support. There are technological solutions such as the OpenLM license monitoring tool, to automate the inventory of software licenses and registrations thus reducing the risk of manual errors.

6. Perform Regular checks

Companies performing regular checks and comparing licenses to installed software are able to demonstrate audit compliance. Effective inventory management relies on automatic license monitoring systems, which produce application usage metering reports to identify underused or overused licenses.

7. Use of latest approved versions

Only the latest approved versions must equip the user workstations. The implementation of automated processes and distribution facility patch programs is an effective and scalable method to keep systems up to date. Software asset audit should also indicate all installed versions and allow updating from older versions.

8. Implement policies to enforce compliance

Companies must remove obsolete software from computers even when the licensed software is installed on the computer replacement. Organizations can also have a blacklist of prohibited applications to prevent users from installing unapproved software. Automatic tools that regularly ensure license compliance are available on the market.

9. Make software license compliance a business strategy

License compliance software allows savings and maximizes productivity, thereby reducing the total cost of ownership (TCO). This direct link facilitates the integration of compliance Software to broader strategic initiatives for asset management and lower TCO. License usage statistics sliced according to Users, Groups, Projects and Workstations is imperative for streamlining billing processes. The OpenLM license monitoring tool provides such reporting ability, hence is a good exemplar for such automated license monitoring tools.

10. Adapt to the users requirements

With the growing use of smartphones and touch pads, employees increasingly want to connect their personal devices to corporate systems. This trend “Bring Your Own Device” (BYOD) affects the way companies design their strategy may create a risk of users using software that is not supported.

Summary

Implementing comprehensive compliance license management software, including support for mobile devices, the IT team will have more time and resources to devote to other business requirements. Whether to monitor the use or distribution of software or to have visibility on all the software installed across the network, the automation of software compliance is a necessary step to save time and money.

OpenLM: Concurrent license monitoring and optimization tool

What is OpenLM ?

OpenLM is a comprehensive license-management solution, designed to monitor and optimize the usage of concurrent (‘floating’) license software. OpenLM is capable of monitoring a wide variety of license managers, e.g.: FlexNet (FlexLM), Sentinel RMS, Sentinel HASP, Reprise RLM, DSLS, IBM-LUM and LM-X. MathLM and BetaLM support has also been implemented, and would be released soon.

Who was OpenLM Designed For?

Unlike other license management systems that only offer administration and license monitoring statistics, OpenLM also optimizes license usage in a unique manner that provides all personnel with useful license-related functions.

Organization managers:

  • Know what you have: License inventory.
  • Plan license maintenance and procurement of expensive licenses.
  • Charge projects or business units for software usage time.
  • Cut costs by dropping maintenance for licenses that are no longer in use.

Administrator view:

  • Real time usage management and troubleshooting.
  • Extract license usage statistics information and patterns.
  • Roles and Permissions: Grant licenses according to specific Users’ permissions.

End User View:

  • End users are not kept in the dark. They are informed about the status of denied licenses, and receive a License availability notification when a license becomes vacant.
  • Who is using the license I need, and what are this person’s contact details?

Supported features

License managers:

  • OpenLM interfaces a wide variety of license managers, e.g.: FlexLM / Flexnet publisher, IBM LUM, Sentinel RMS, Sentinel HASP, RLM, DSLS and other leading license managers.
  • Concurrent monitoring of multiple license servers on multiple time zones.
  • Management of Floating, Node-locked and Borrowed licenses.

Monitoring capabilities:

  • Easily review license inventory in real time.
  • Extract license activity reports (e.g. Flexnet report), with configurable resolution.
  • Receive Billing reports for any time period, per user or software (FLEXbill capabilities).

Infrastructure

  • Operational over WAN and LAN networks.
  • Interface license managers that run on UNIX, Linux, or Windows’ Operating systems.
  • Web-based user interface, applicable on any major browser.
  • Mobile interface application enhances monitoring abilities for system administrators.
  • OpenLM supports both external and embedded databases.

What does “Open” in “OpenLM” stand for?

OpenLM provides a set of open and documented APIs that enable customers and business partners to develop applications that integrate OpenLM software capabilities.

OpenLM Screenshots

Watch the OpenLM EasyAdmin screenshots on the OpenLM site.

Want to evaluate the software ?

You can get the most updated version of OpenLM from our OpenLM downloads area. After filling in your name and email – you’d be directed to the downloads’ section. The Installation process is easy and straightforward, but if you still need any assistance – please send an email to support@openlm.com, and we’ll be glad to help.

Get more out of your floating licenses

The OpenLM Utilizer is a complete floating license management solution designed to optimize the use of licensed software: more production for lower cost.
OpenLM is made to harvest idle licenses, and improve license utilization of any organization: big or small.

Who was the OpenLM Utilizer Designed For?

Unlike other license management systems that only offer administration and license monitoring statistics, the OpenLM Utilizer optimizes license usage in a unique manner that provides all personnel with useful license-related functions.

Organization managers:

  • Know what you have: Inventory.
  • Plan license maintenance and procurement of expensive licenses.
  • Charge projects or business units for software usage time.
  • Cut costs by dropping maintenance for licenses that are no longer in use.

Administrator view:

  • Real time license usage management
  • Alerts – Real time troubleshooting
  • Extract usage statistics information and patterns as reports or charts.
  • Roles and Permissions: Grant licenses according to specific Users’ permissions. Enforce concurrent License restriction.

End User View:

  • End users are not kept in the dark. They are informed about the status of denied licenses.
  • Receive a License availability notification when a license becomes vacant.
  • Who is using the license I need?
  • What is this person’s contact details?

Supported features

License managers:

  • OpenLM interfaces a wide variety of license managers, e.g.: FLEXlm / Flexnet, IBM LUM, Sentinel RMS, Sentinel HASP, RLM, DSLS and other leading license managers.
  • OpenLM supports Concurrent monitoring of multiple license servers on multiple time zones.
  • OpenLM supports management of Floating, Node-locked and Borrowed licenses.

Monitoring capabilities:

  • Easily review license inventory in real time.
  • Extract license activity reports, with configurable resolution.
  • Receive FLEXlm reports, statistics and charting (FLEXnet reports).
  • Receive Billing reports for any time period, per user or software (FLEXbill capabilities).

Infrastructure:

  • OpenLM may work over WAN and LAN networks.
  • OpenLM employs a web-based user interface that works with any supported browser.
  • A Mobile interface application enhances monitoring abilities for system administrators.
  • OpenLM may interface license managers that run on UNIX, Linux, or Windows’ Operating systems
  • OpenLM supports both external and embedded databases.

Proactive capabilities:

  • Release orphan licenses with a single mouse click.
  • Query users and licenses from any workstation.

Other features

  • A customizable alert system
  • An open, detailed API

Vendors

  • OpenLM Supports software from the following vendors: Autodesk, Borland, Cadence, EDS, Macromedia, Mathsoft, Mathworks, PTC, Rational, Softimage, Solidworks, Sybase, Synopsys, Unigraphics, WindRiver, FreeScale, ICS,  Foundry, VSNi,Tri-Pacific Software and many more.
  • Some examples of software systems: Autodesk Autocad, ESRI ArcGIS, Mathsoft MathCAD, CADopia IntelliCAD, Mathworks Matlab, VSNi GenStat, Foundary Forge, PTC Pro-Engineer, Rasterx RxView, and more.

 

OpenLM Utilizer Architecture

OpenLM’s basic software package includes the core OpenLM Server module and its user interface; the OpenLM EasyAdmin module. In addition to these core components, the OpenLM Broker, OpenLM Alerts module and the OpenLM Utilizer Agent modules are also incorporated in the basic software package.

The OpenLM Server

is the core element of the OpenLM system. It integrates the functionality of all other peripheral system components, such as the OpenLM EasyAdmin, OpenLM Agent, OpenLM Alerts, and OpenLM Broker. The OpenLM Server is implemented as a Windows service and could be installed on any network machine.

OpenLM EasyAdmin

An HTTP based application that can run on any machine in your network. EasyAdmin is the reporting and management interface of OpenLM. It facilitates extraction of lisence usage statistics, and usage repots, as well as the control and optimization of license usage.

OpenLM Agent

An optional component that can be installed on any machine on the network. The Agent enables end users to query license availability and find who is using the license they need at any point in time.

OpenLM Alerts

is a dedicated alerting service for the OpenLM system. This module alerts system administrators when predefined conditions are met.

OpenLM Broker

is an optional server component that runs on the license server machine. The Broker performs tasks as dictated by OpenLM Server, and is required in order to provide advanced licensing information and sophisticated abilities.

OpenLM Screenshots

Watch the OpenLM EasyAdmin screenshots on the OpenLM site.

Want to evaluate the software ?

You can get the most updated version of OpenLM Utilizer from our OpenLM downloads area. After filling in your name and email – you’d be directed to the Downloads section. The Installation process is easy and straightforward, but if you still need any assistance – Please send an email to support@openlm.com, and we’ll be glad to help.

Application Note 1029: LDAP (Active Directory) Synchronization

General

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: 102.101.100.106)

  • 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.

Attribute:

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.

Fixed:

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.

Outcome:

  • 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.

OpenLM and the trend of increase in license auditing

Background

As the economic condition continues to falter, the rate of software compliance auditing rises. This is caused by rising pressure in companies to use unlicensed software on one end, and equivalent pressure on the side of software vendors to keep their revenue. According to BSA (Business Software Alliance) officials,  the current economic climate “could have an impact on companies cutting corners and using unlicensed software to save perceived-costs”. This in turn leads the BSA step up license compliance enforcement and litigation against violators.

As a tool dedicated for the monitoring of licensed applications, OpenLM perfectly fits in the capacity of keeping BSA officials content, and CEOs of software using companies relaxed.

Ensuring license agreement compliance.

Software vendors use several methods in order to ensure license compliance.

  • Inside information: Violation reports are routinely submitted to the BSA by insiders. These are individuals with inside information, that report violation of license usage for various reasons. The BSA’s response to such referrals would normally be a letter to the suspected violator, indicating that an investigation is taking place and offering to give up litigation action if a compliance audit is conducted. If the compliance audit is conducted, the company must provide a list of all the software in question, as well as the purchase dates of the software licenses.

  • Piracy business intelligence may be collected by the software and gathered by the vendors in order to pinpoint license violations.

  • End-User License Agreements: Large vendors may have the ability to conduct software audits for their software for license compliance purposes according to their End User License Agreements.

Pressure builds up

When the time comes for an unexpected external audit, or when the expiration of a license is closing in, companies tend to rush IT personnel to take manual inventory of existing software. This process is inefficient for several reasons:

  • It is an error prone process, mainly in large companies that run hundreds of licensed applications. Moreover: employees don‘t necessarily act in compliance with license agreements.

  • It is also inefficient. It consumes system administrators’ time and concentration, and may raise tension within the organization.

Continuous monitoring is needed

In order to ensure full compliance and peace of mind, organization executives should enforce formal, ongoing software license management policies. This is where OpenLM comes in into the picture:

  • Having an organized license usage report reduces the risk of an external audit, and serves as an insurance policy against the consequences of liability actions by the BSA.

  • Organized reports may also improve a company’s position, and have benefits when negotiating with a vendor for license renewal.

  • En-route the organization of software inventory, license activity is made apparent, and software costs are reduced.

  • IT personnel are taken off the mundane, but error prone procedure of manual inventory taking, and their productivity is increased.

Further reading

Software License Audits: What Does It Mean to Be Non-Compliant?

Sharepoint Webparts: License usage & Active Products

General

The OpenLM license monitoring and control tool employs various User Interfaces, from which Managers, Administrators and Users may extract data regarding applications’ license utilization and availability. These interfaces include the EasyAdmin web application, the OpenLM Mobile application, and the Agent client interface.

OpenLM also provides a comprehensive API for developers that enables users to add functionality to the system. API implementation capabilities are extensive, and may be applied for

  • Creating additional end user interfaces similar to EasyAdmin or the OpenLM Agent.

  • Including OpenLM Capabilities in other software products.

  • Assuring license availability in batch jobs.

  • Support of additional systems, etc.

SharePoint

Organizational portals are popular web applications that capacitate quick and easy development of informations system. These systems also enhance knowledge sharing within organizations and act as platforms for operational system.

Microsoft SharePoint is a specifically popular organizational portal. After receiving numerous requests for implementation tips we have decided to publish the following code sample as a possible implementation of OpenLM on a SharePoint platform.

This sample code is provided as is, as a full open source reference. It implements two of EasyAdmin’s popular report windows: Active Poducts & Lisence Usage.

OpenLM API

OpenLM has released a set of open APIs for users who wish to apply the capabilities embedded in the OpenLM software for use in their own applications. These APIs may accommodate querying of the license management system for current and historical license usage, querying available licenses’ status, and license report management.

The  “Active Products” and “License Usage” Webparts are implemented using these APIs.  They communicate with the OpenLM Server via XML-based request and response messages: The Server receives requests in the POST method, and returns the corresponding response in XML format.

SharePoint Code Sample

Scope

This code sample is brought as is, and serves as an example for implementing license management applications via OpenLM APIs.

Code sample

public static XElement GetResponse(string xmlRequest, string requestUrl)
{
HttpWebRequest httpRequest = (HttpWebRequest)System.Net.WebRequest.Create(requestUrl);
httpRequest.Method = “POST”;
Encoding encoding = System.Text.Encoding.GetEncoding(“utf-8″);
byte[] postData = encoding.GetBytes(xmlRequest.ToString());

// Set the content type of the data being posted.
httpRequest.ContentType = “text/xml”;

// Set the content length of the string being posted.
httpRequest.ContentLength = postData.Length;

Stream reqStream = httpRequest.GetRequestStream();
reqStream.Write(postData, 0, postData.Length);
reqStream.Close();

// Get Response
HttpWebResponse response = (HttpWebResponse)httpRequest.GetResponse();
Stream respStream = response.GetResponseStream();

// Pipes the stream to a higher level stream reader with the required encoding format.
StreamReader readStream = new StreamReader(respStream, encoding);

XElement xmlResponse = XElement.Parse(readStream.ReadToEnd());

// Releases the resources of the response.
response.Close();
// Releases the resources of the Stream.
readStream.Close();

return xmlResponse;
}

Communication

Communication between the WebParts and the OpenLM Server is handled by a Helper class with the GetResponse Method:

  • GetResponse receives the service URL and the XML request string as parameters from both WebParts.

  • The Helper object compiles the request message, and sends it to the destined URL.

  • The same Helper object receives the corresponding response message and parses it.

“Active Products” and “License Usage” Webparts’ base

Both WebParts have two common properties; the Service URL and the XML Request. The ReportBaseWebPart class serves as the base class for the Active Products and License Usage WebParts. ReportBaseWebPart defines the two common properties (URL and XML), and validates them using the overridden method CreateChildControls.

Active Products WebPart

The ActiveProducts WebPart inherits from OpenLM’s custom class ReportBaseWebPart. This WebPart renders a grid with values obtained by the OpenLM Server’s response.  The CreateChildControl method builds a table containing this data.

In order to enhance the generated table, a jQuery plugin named dataTables (www.datatables.net) is used. This plugin enables filtering based on a free text search, sorting and paging with configurable page size.

License Usage WebPart

The LicenseUsage WebPart inherits from our custom class ReportBaseWebPart. This WebPart renders a chart with values obtained by the OpenLM Server’s response.  The CreateChildControl method builds a chart containing this data.

In order to render the chart, we used a jQuery plugin named Flot (http://code.google.com/p/flot/).

Screenshot

The following is a screenshot image of the two webparts, as they are seen in the Sharepoint environment.

Summary

The SharePoint webpart example demonstrates adding OpenLM to an organizational portal. There many options for configuring OpenlM via API, and we encourage our users’ community to implement it in-house and, if possible, share the code with the other users.

Our new users web forum contains a developers’ section that accommodates posting of code segments and questions that other users may be able to answer.

We believe that the use of these WebParts would contribute to the continuous monitoring of licenses with no additional effort, in organization that have implemented the Sharepoint portal. Moreover, additional functionality may be added in the same way, and OpenLM awaits the feedback of SharePoint users in order to enhance this ability.

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.

EasyAdmin

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.

Packages

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.

OpenLM System Open API version 1.7

General

The OpenLM system is arranged in a star formation, with the OpenLM Server in its hub. The OpenLM Server interfaces the main user interface, the EasyAdmin web application via HTTP requests. These request messages are sent using the POST method. The request & response message format is XML text.

OpenLM has released a set of open APIs for users who wish to apply the capabilities embedded in the OpenLM software for use in their own applications. These APIs may accommodate querying of the license management system for current and historical license usage, querying available licenses’ status, and license report management.

Message format

The message URL format is:

http://<OpenLM Server>:<Requested port>/OpenLMServer/

OpenLM Server: The OpenLM Server name

Requested port: This is the same port number as defined in the OpenLM Server configuration form, for all user interface requests. Its default value is 7014. See the image below for clarification.

 

The date format in XML requests & responses is a numeric value, which consists of the

number of milliseconds since 1.1.1970. Date values are always in UTC time zone.

User interface requests

Request:  GetActiveProducts

Queries for a complete list of currently active products.
MESSAGE

  1. type: the request name sent to the OpenLM server:GetActiveProducts2
  2. timeformat & time zone: local date format and time zone settings, as defined by the user.

PAGING

  1. start record= x ,end record = y : show record numbers x to y from the response. In this example show first 31 records.
  2. sort=”": Sort by a specific column
  3. dir=”": Arrange the response in ascending\descending order, for ascending order: dir=”ASC”. For descending order: dir=”DESC”

SESSION

  1. sessionId: If the “Enable permissions” check box is selected on the OpenLM server configuration form, then every user recieves their own session id. When the “enable permission” option is disabled, the session id is 0. The “UserAuthentication” request returns the session id number for a specific user.
  2. refresh: This flag determines whether the EasyAdmin Licenses window should be automatically refreshed.

SERVER

Requests a list of currently used instances of a specific server. In this example – it is ARCGIS10.

VENDOR

Requests a list of currently used instances of a specific vendor. In this example – it is ArcGIS

FEATURE

Requests a list of currently used instances of a specific feature. In this example – it is ArcScan.

PRODUCT

Requests a list of currently used instances of a specific product. In this example – it is ArcView.

Response:  GetActiveProducts

MESSAGE

type: The response name sent from the OpenLM server, e.g.: ActiveProducts2

TOTAL

Returns the number of records in the response.

PRODUCTS

  1. hasp_key Relevant to HASP managed licenses.
  2. lastname: Last name of user
  3. firstname:First name of user
  4. user_idle_time: user’s idle time
  5. linger_due (for Borrowed licenses): Due date/time for returning a Borrowed license
  6. linger_time (for Borrowed licenses): Elapsed time since a license has been Borrowed
  7. borrowed(True/False): License is Borrowed
  8. quantity: Total number of licenses
  9. no_of_lics: Number of licenses currently in use
  10. server_name: License server descriptive name, as given in the OpenLM Configuration form, e.g.: AutoCAD.
  11. handle: FlexLM license handler TBD
  12. duration: duration in seconds of the featured license session
  13. IP: User’s Workstation’s IP
  14. workstation: workstation name
  15. start_time: Session start time, represented in UNIX timestamp
  16. product_name: Product name
  17. product: Feature name
  18. vendor:Vendor name
  19. username: User name
  20. version: feature version
In OpenLM version 1.8, this API would return the user’s email and phone number as well.

Request:  GetDenials

Returns a list of the denials that have occurred .
MESSAGE

  1. type: the request name sent to the OpenLM server:GetDenials
  2. timeformat & time zone: local date format and time zone settings, as defined by the user.

PARAMETERS

  1. PARAM name=”username”: Requests the denials of a specific user, e.g.: mira & n.mani
  2. PARAM name=”server”: Requests the denials of a specific license server, e.g.:ARCGIS10
  3. PARAM name=”vendor”: Requests the denials of a specific vendor, e.g.: ARCGIS
  4. PARAM name=”start_time” & “end time”: Requests the denials which occurred within a specified period of time; between the start time and end time. E.g.: the period between 1327989600000 & 1330336800000.
  5. Time is represented using the UNIX timestamp. You can use any online converter to convert the start & end time to UNIX time.
  6. PARAM name=”feature”: Requests the denial instances of the specified feature, e.g.:Viewer.

Response:  GetDenials


MESSAGE

type: The type of response that is retrieved from the OpenLM server, e.g.:Denials


DENIALS

  1. lastname: User’s Last name
  2. firstname: User’s First name
  3. err_msg: Record error message: Notifying the reason for denial
  4. port: TBD
  5. vendor: Vendor name
  6. feature:Feature name
  7. server: Server name
  8. denial_time: Time stamp of the denial occurrance
  9. workstation: User’s workstation
  10. user_name: User name

Request:  getFeaturesList

Queries for a complete list of features registered in the OpenLM database.

MESSAGE

type: the request name sent to the OpenLM server:getFeaturesList

SESSION

sessionId: When the “enable permission” option is disabled, the session id is 0. If the “Enable permissions” check box is selected on the OpenLM server configuration form, then every user recieves their own session id. The “UserAuthentication” request returns the session id number for a specific user.

PARAM

  1. type=”prefix” Requests all features that start with a specific prefix, in this example: A.
  2. type=”server” Requests all features of a specific server, in this example: ARCGIS10
  3. type=”vendor” Requests all features of a specific vendor, in this example: ARCGIS


Response:  getFeaturesList


MESSAGE

type=”ProductsList”: The response name sent to the OpenLM server, e.g.: ProductsList

PRODUCTS
List of products registered in the OpenLM database. Every instance includes two parameters: Feature name ( name ) and Product name ( product_name).

Request:  GetLicenseServerList

Queries for a complete list of license servers registered in the OpenLM database.


MESSAGE

  1. type: the request name sent to the openlm server:GetServersStatistics2
  2. timeformat & time zone: local date format and time zone settings, as defined by the user.

SESSION

  1. sessionId: If the “Enable permissions” check box is selected on the OpenLM server configuration form, then every user recieves their own session id. When the “enable permission” option is disabled, the session id is 0. The “UserAuthentication” request returns the session id number for a specific user.
  2. refresh (True/False): This flag determines whether the EasyAdmin Licenses window should be automatically refreshed.

Response:  GetLicenseServerList

MESSAGE

type the response name sent to the OpenLM server:ServersStatistics2


SERVER

  1. id: Server ID
  2. type: License server type, e.g.: Flexlm .
  3. name: License server descriptive name, as given in the OpenLM Configuration form, e.g.: AutoCAD
  4. used: Number of licenses in use
  5. borrowed: Number of borrowed licenses
  6. quantity: Total licenses available for this license server
  7. usage_percent: Number of used licenses as a percentage of the total number of licenses
  8. lm_status: License server status; green = license server up, red = license server down
  9. lm_tooltip: The response time-stamp.
  10. show_buttons: Irrelevant for API developement


HOST

  1. hostid: The request name sent to the server. In this example, it is GetServersStatistics2
  2. name: License server hostname, e.g.: olm_lm_acad.
  3. port: License server port number, e.g.: 27000.
  4. log_status: red\green. Red indicates a failure to connect to the OpenLM broker. Greem indicates success.
  5. log_tooltip:Most recent Broker message sent time

 

Request:  GetLicenseUsage

Queries for a list of license usage occurrences.
MESSAGE

  1. type: the request name sent to the OpenLM server:GetLicenseUsage2
  2. timeformat & time zone: local date format and time zone settings, as defined by the user.

SESSION
sessionId: If the “Enable permissions” check box is selected on the OpenLM server configuration form, then every user recieves their own session id. When the “enable permission” option is disabled, the session id is 0. The “UserAuthentication” request returns the session id number for a specific user.

PARAMETERS
FEATURE

  1. server Requests the license usage of a specific server name, In the example: AutoCAD
  2. vendor Requests the license usage of a specific vendor name, In the example: adskflex
  3. feature Requests the license usage of a specific feature name, In the example: 65400MAP_F

PARAM

  1. name=”start_time” & “end time” Queries the usage of licenses within a specified period of time; between the start and end time stamps. In this example, it is the period between 1328680800000 & 1330336800000. Time is represented using the unix timestamp. You can use any online convertor to convert the start & end time to unix time.
  2. name=”resolution”: Sets the resolution of the response records: Minutes\Hours\Days\Weeks\Months. In this example, the resolution is Hours.
  3. name=”separate_charts”: This parameter determines whether the response should be presented as a sum of all licenses, or as separate columns – one per feature.
  4. name=”ignore_weekends”: true\false. if true: Ignore license usage records on weekends.

Response:  GetLicenseUsage


MESSAGE
type: The type of response that is retrieved from the OpenLM server. e.g: LicenseUsageInfo
POINTS

  1. from Record start time, represented in unix timestamp
  2. from_chart This parameter is relevant only to the chart display in EasyAdmin
  3. level Number of licenses in use.
  4. level_chart_0 This parameter is relevant only to the chart display in EasyAdmin
  5. total: Total number of available licenses
  6. total_chart_0: This parameter is relevant only to the chart display in EasyAdmin

Request: GetPackageLicenses

Queries for the contents of a specified package
MESSAGE

  1. type: The request name sent to the OpenLM server:GetPackageLicenses
  2. timeformat & time zone: Local date format and time zone settings, as defined by the user.

PARAM

PARAM name= “package_no” Queries for the contents of a specified package, In this example the package number is: 17043.

Response: GetPackageLicenses

MESSAGE

type The type of response that is retrieved from the OpenLM server, e.g.:

PackageLicenses

PARAM

type: The param type retrieved from the OpenLM server, e.g.:licenses

info

  1. name: Feature name
  2. product_name: Product name
  3. used: Number of licenses in use
  4. borrowed: Number of borrowed licenses

Request:  GetServerList

Queries for a complete list of License Servers registered in the OpenLM database.
MESSAGE

type: the request name sent to the OpenLM server: “GetServersList”

SESSION

sessionId: When the “enable permission” option is disabled, the session id is 0.

If the “Enable permissions” check box is selected on the OpenLM server configuration form, then every user recieves their own session id. The “UserAuthentication” request returns the session id number for a specific user.

Response:  GetServerList


MESSAGE

type: The type of response that is retrieved from the OpenLM server, e.g.:ServersList

Servers

server name: Server name.

Request:  GetUserPermission

Queries the session id of a specific user.

MESSAGE

type: The request name sent to the OpenLM server, e.g.:UserAuthentication

NAME:

User’s name

PWD:

User’s password

Response:  GetUserPermission


MESSAGE

type: The type of response that is retrieved from the OpenLM server, e.g.: SessionAuthenticationID


SESSIONID

The session id number of the queried user.

Request:  GetVendorList

Queries for a complete list of vendors registered in the OpenLM database.

MESSAGE

type: The request name sent to the OpenLM server: “GetVendorsList”

SESSION

sessionId: When the “enable permission” option is disabled, the session id is 0.

If the “Enable permissions” check box is selected on the OpenLM server configuration form, then every user recieves their own session id. The “UserAuthentication” request returns the session id number for a specific user.

Response:  GetVendorList



MESSAGE

type: The type of response that is retrieved from the OpenLM server. In this example: “VendorsList”

Vendors

Vendor Name : Specific Vendor name entry in the vendor list.

Request:  LicenseActivity

Queries for features that have been used and closed in the past

MESSAGE

  1. type: The request name sent to the OpenLM server:GetUserUsage2
  2. timeformat & time zone: Local date format and time zone settings, as defined by the user.

PAGING

  1. start record= x ,end record = y : Show record numbers x to y from the response, in our request show first 31 records.
  2. sort=”": Sort by a specific column
  3. dir=”": Arrange the response in ascending\descending order. for ascending order: dir=”ASC”. for descending order: dir=”DESC”

SESSION

sessionId: If the “Enable permissions” check box is selected on the OpenLM server configuration form, then every user recieves their own session id. When the “enable permission” option is disabled, the session id is 0. The “UserAuthentication” request returns the session id number for a specific user.

PARAMETERS

  1. PARAM name=”server”: Filter the license Activity query according to a specific server. In this example – it is ARCGIS10.
  2. PARAM name=”vendor”: Filter the license Activity query according to a specific vendor , In this example – it is ARCGIS
  3. PARAM name=”username”: Filter the license Activity query according to a specific user , In this example – it is mira.
  4. PARAM name=”product”: Filter the license Activity query according to a specific product ,In this example – it is Viewer
  5. PARAM name=”groupid”: Filter the license Activity query according to a specific group , In this example,no group is defined ( groupid=0)
  6. PARAM name=”workstation”: Filter the license Activity query according to a specific workstation , In this example – it is mira-pc
  7. PARAM name=”start_time” & “end time”: Filter the license Activity query according to a specified period of time; between start-time and end-time. In this example, it is the period between 1328594400000 & 1329602400000. Time is represented using the unix timestamp. You can use any online convertor to convert the start & end time to unix time.
  8. PARAM name=”consider_working_hours”:
  9. True: Requests license activity entries only within working hours.
  10. False: Requests license activity entries regardless of working hours.


Response:  LicenseActivity


MESSAGE

type The type of response that is retrieved from the OpenLM server, e.g.: UserUsage2

Total

Returns the number of records in the response.

PRODUCTS

totalusagetime:

PRODUCT

  1. ip:User’s Workstation’s IP
  2. groupname: User’s group name
  3. projectname: User works on this project
  4. usagetime: License consumption time
  5. product_name: Product name
  6. name: Feature name
  7. server: License server descriptive name, as given in the OpenLM Configuration form, e.g.: AutoCAD.
  8. vendor: Vendor name
  9. end_time: Session start time, represented in unix timestamp
  10. start_time: Session end time, represented in unix timestamp
  11. hostname: hostname
  12. user_name: User’s user name

 

Request:  LicensesList

Queries for a complete list of licenses.
MESSAGE

  1. type: the request name sent to the OpenLM server: GetLicenseServerInfo2
  2. timeformat & time zone: local date format and time zone settings, as defined by the user.

PAGING

  1. start record= x ,end record = y : show record numbers x to y from the response, in this example show first 31 records.
  2. sort=”": Sort by a specific column, in this example :”vendor”
  3. dir=”": Arrange the response in ascending\descending order.
  4. for ascending order: dir=”ASC”. for descending order: dir=”DESC”


SESSION

  1. sessionId: When the “enable permission” option is disabled, the session id is 0.
  2. If the “Enable permissions” check box is selected on the OpenLM server configuration form, then every user recieves their own session id. The “UserAuthentication” request returns the session id number for a specific user.
  3. refresh: This flag determines whether the EasyAdmin Licenses window should be automatically refreshed.

SERVER

Filter the Query response according to a specified Server. In this example: AutoCAD.

VENDOR

Filter the Query response according to a specified Vendor.

Response:  LicensesList


MESSAGE

type: The message type retrieved from the OpenLM server. e.g.:LicenseServerInfo2

Total

Returns the number of records in the response.

PARAM

type: The param type retrieved from the OpenLM server. In this example: Licenses

Info

  1. version: Feature version
  2. vendor: Vendor name
  3. name: Feature name
  4. product_name: Product name
  5. total: Total number of licenses per specific feature
  6. used: Number of licenses in use
  7. borrowed: Number of borrowed licenses
  8. available: Number of available licenses per specific feature
  9. server_name: License server descriptive name, as given in the OpenLM Configuration form, e.g.: AutoCAD.
  10. expiration_date: Feature expiration date, presented in Unix timestamp format
  11. package_no: Unary identifier of a feature’s parent package, the “GetPackageLicenses” request returns the features under the parent package
  12. forecolor: Relevant to EasyAdmin web application only.
  13. hasp_key: Relevant to HASP managed licenses.

OpenLM Newsletter 2012 #01


Dear valued OpenLM users,

On this first edition of the OpenLM 2012 Newsletter I would like to greet you all, and wish you a happy and successful new year. 2011 has been very good for us here at OpenLM, all thanks to your support. Our team has grown bigger, and is now able to provide better support to our improved product.

We are proud to introduce the OpenLM Mobile touch interface. This interface may run on any mobile device operating system; e.g.: IOs, Android, Blackberry, Windows Mobile etc. With the help of some of our faithful customers, we have managed to perform a successful Beta trial for this interface. The OpenLM Mobile Touch interface is available to all customers under a valid maintenance agreement with no additional cost.

Based upon requests from our customers, and following Dassault Systemes migration from IBM-LUM to their proprietary DSLS license manager, OpenLM has quickly adapted to provide support to DSLS. We look forward to receiving further customer requests, in order to meet our users’ needs.

We have recently launched a new and enhanced company website. This site is clearer, more informative, useful and generally – nicer than our old one. Among other things, It features a new introductory animated video on OpenLM. We hope that you will like it.

Best Regards,

Oren Gabay, CEO


OpenLM updates

OpenLM goes mobile !

 

The OpenLM EasyAdmin Mobile application enables system administrators to keep track of the license management systems, while being out of office. This document describes the essentials of the OpenLM EasyAdmin for mobile application; installing the application, and running it on a Mobile set.Read more…

 

OpenLM Live Webinars

OpenLM is now hosting a couple of Online Webex Webinars each week. This Webinars give an overview of the OpenLM system; its components and capabilities, and is intended for newbies as well as for experienced users. Please check out the date for the next webex Webinar on OpenLM’s site.


OpenLM resources

OpenLM introductory video

 

 

 

 

 

OpenLM Video tutorials: OpenLM server configuration – License server tab

 

 

 

 

 

 

OpenLM Video tutorials: Active Directory Synchronization

 

 

 

 

 

 


Monthly Articles

Get more out of your floating licenses

Being this our first edition of the OpenLM Newsletter for 2012, We found it adequate to give a brief summary of what the OpenLM utilizer actually is. This is good reading material for Newbees, and nice to remember for more experienced users. Read more…

OpenLM system structure

Another important article for first timers, this one elaborates all about the OpenLM system structure; Where should every module be installed, and what are the interconnections between them. Read more…

Products and Packaged licenses in OpenLMs EasyAdmin web application

This Article deals with two adjacent subjects: Renaming features as products, and gathering these features into licensed packages in the OpenLM EasyAdmin web application. Read more…

Configuring FLEXlm FLEXnet Option File Using OpenLM Easy Admin

FLEXlm (Flexera FLEXnet) option files grant license administrators close control over various operating parameters within the constraints of the license model. Licensed features can be dedicated, denied or reserved to users or groups of users, according to the option files setting.

The OpenLM solution incorporates synchronization of License administration tools with the organizations LDAP (Active Directory), keeping the FLEXlm option file up-to-date as users leave or join the organization, or move between groups. Read more…


 

Points of interest

IBM Rational – FlexNet Token based licensing:

The IBM Rational License Server uses FLEXnet for licensing IBM Rational products. This article presents the main characteristics of FlexNet Token based licensing, and the benefits of this method. Read more…

Autodesk cascade licensing and the PLIST

Cascade Licensing allows a product to obtain a license from a network license manager pool when that license manager is servicing more than one product. Cascading was implemented primarily to address mixed-product environments where both suite and base products co-exist.

Read more…

FlexNet Producer Suite Is Distinguished by the Frost & Sullivan 2011 Market Share Leadership Award for Software-Enforced License Management

The Frost & Sullivan Award for Market Share Leadership is presented to the company that has demonstrated excellence in capturing the highest market share within a segment of its industry. Read more…

What is FLEXlm? What is FlexNet?

General

FLEXlm software is a license management solution that allows software vendors to limit the number of software seats available to their users. FLEXlm supports different licensing policies such as Floating (aka Concurrent) and Node Locked licenses.
These type of software systems are also called DRM Solutions (Digital Rights Management). Other software with the same functionality are SafeNet HASP, SafeNet RMS and IBM LUM.
FLEXlm is used by a great variety of software vendors, such as ESRI, Autodesk, Mathworks, PTC, Ansys, Cadence and more.

History

FLEXlm was originally a joint development of GLOBEtrotter Software and Highland Software in 1988. GLOBEtrotter was then acquired by Macrovision in 2000, which renamed the product FlexNet.
In 2008 the company was sold to Acresso Software, and it’s name was changed to Flexera. The product was named Flexera FlexNet Publisher, but is still widely referred to as FlexLM. In 2011 the Canadian Teacher’s Private Capital fund acquired Flexera.

Flexnet License Manager operation

The general structure of the Flexnet license manager is shown below:

License server manager

lmadmin or lmgrd FlexLM daemons are supplied either by the licensed FLEXenabled application publisher or by Flexera Software. Its job is to communicate with the application, and receive the license request from it.It then passes the request to the vendor daemon.

Vendor daemon

Created by the publisher, and is unique to each FlexEnabled application installed on the network. It is the vendor daemon’s job to process the license request and to either grant it or deny it, depending on the number of available licenses, and predefined license usage constraints.

License file

Created by your software supplier, and holds detailed license information such as the quantity and time extent of the license

Trusted storage

Some publishers provide trusted storage as an encrypted alternative to using license files.

Debug log and Report log

FlexNet logs written by the license server manager (lmadmin or lmgrd), typically accounting the license check-outs and check-ins, and license denials.

Option Files

Files created by license administrators to restrict license usage to specific users or user groups.