Administration


On-site License Service

Document Outline

Introduction

New at version 4.0 are options for licensing. This document presents a technical brief describing the solution architecture and features of the Seaconis On-site License Service.

Scope

The scope for this document is:

The following are NOT in scope:

Audience

The audience for this document includes:

Abbreviations

Abbreviation Description
LA Licensed Application
OLS On-site License Service
FL Floating License(s)
MAX Maximum number of active floating licenses allowed by site license

Overview

The Seaconis On-site License Service (OLS) is needed to use floating licenses with Seaconis applications. This service must be administered on-site by the client. The OLS is to be released as part of the PlanTest version 4.0 product line. The PlanTest applications can be configured to use OLS, or to use Seaconis generated persistent licenses following past methodologies. Site installs may be configured to specific default configurations.

  1. OLS is deployed to client’s network, runs on client machine.
  2. OLS can be run as either a Windows application or a Windows service.
  3. OLS works with floating licenses only.
  4. Part of version 4.0 Seaconis PlanTest application line.

License Operations

OLS manages the licensing of Seaconis applications in a two-way communication between the application and the service. OLS will not work without the network connection.

  1. OLS maintains a pool of licenses (a count and MAX), defined by the legal contract.
  2. The number of active floating licenses cannot exceed the MAX value.
  3. The application requests licenses on start-up, and returns them on shutdown.
  4. MAX is defined by Seaconis application embedded license info.
  5. Floating license use a heart-beat, to enable recovery of license in case of a crash.

Activation History and Logging

OLS activity is saved to an encrypted file that must not be deleted. If is part of the Seaconis license security framework. For trouble determination, debug log file can be turned on in the settings file.

  1. OLS stores activation data in a required encrypted file.
  2. OLS activation statistics may be viewed.
  3. Activation history may be requested by Seaconis.
  4. Logging can be set for trouble determination.

Specific information on some of these features will be discussed in the following sections.


Configuration

The OLS must be created and initially configured by Seaconis using information specific to your site. Some configuration is also possible on-site after installation. Seaconis application will also have jurisdiction or user default configuration parameters for your site.

Seaconis Configuration

On the creation of your OLS, Seaconis will require information that secures the service and communication with the PlanTest application.

  1. Host machine Seaconis licensing identifier (machine code)
  2. URL or IP address of OLS service at your site

The IP address This the network address of the machine. For example: if you use OLS on a machine with address 192.168.4.1 and want to use port 8081, the address will be

http://192.168.4.1:8081/

The addresses http://127.0.01 and http://localhost will not work - you need to specify an explicit address. (untested) You can also specify http://:port/ (example: http://:8081). This can be useful if the IP address of the machine which will run the license service app is dynamic and changes all the time.


Installation

OLS is distributed as a folder with application executable and settings files.

Running as a Windows Application

To run the license service as a Windows application, run the LicenseServiceApp.exe application that is present in the root folder (not the copy in the 'bin' sub-folder).

Warning! You need to run the Windows application either as an Administrator, or you need to grant proper privileges to the URL on which the license service application listens. Failure to do so causes an "Access is denied" error message when LicenseServiceApp.exe is run.

To grant the proper privileges, use the netsh command as follows:

netsh http add urlacl url=<url> user=<domain>\\<user> listen=yes

where <url> = the URL specified in the Seaconis configuration of the license service, for example http://192.168.0.1:8081/

Running as a Windows Service

To run the license service as a Windows service, use the command line as follows :

  1. Install the service:

    LicenseServiceApp.exe action=install
    

    This installs the service and when started, the service will run as the LocalSystem account.

  2. To specify the username and password, use:

    LicenseServiceApp.exe action=install username=<<username>> password=<<password>>
    

    For example:

    LicenseServiceApp.exe action=install username=MYDOMAIN\MainUser password=MainUserPassword
    

    The username that is specified must be configured to have the 'Log in As Service' right via the Local Security Policy.

  3. Start the service

    LicenseServiceApp.exe action=start
    
  4. Stop the service

    LicenseServiceApp.exe action=stop
    
  5. Uninstall the service

    LicenseServiceApp.exe action=uninstall
    

You can combine the silent=true command line option with any other option to prevent display of error or informational messages. For example:

LicenseServiceApp.exe action=start silent=true

The LicenseServiceApp.exe returns a process exit code of 0 if the specified action was completed successfully, else it returns a 1 on failure.

Logging

If you pass a log=true parameter to the LicenseServiceApp.exe command-line, it will create a .log file to the same folder.

Floating Licenses

Floating licensing is a software licensing approach in which a limited number of licenses for a software application are shared among a larger number of users over time. They may be also used for convenience or in situations that prevent individual machine identification needed for node-locked licenses.

The OLS can manage licenses over a local area network, an intranet, virtual private network, or the Internet; basically, any situation where the OLS and licensed application can see each other. As floating licenses require communication between the OLS and the Seaconis application, this limits practical uses to networks that have reliable communications. They would not be a good choice for field or remote use.

FLs are key locked to a specific OLS, application version, and are embedded in an application assembly or file. This provides a very secure condition with very little risk of key validation issues. When the licensed application is instantiated, it requests a license from the registered OLS, passing the key information which includes the MAX value. The OLS maintains the current activation count, and returns an active license if the count does not exceed MAX.

Key points and benefits:

  1. FL key locked to OLS instance.
  2. FL is locked to specific version of Seaconis application.
  3. FL key embedded in an application assembly, or possibly an installed file.
  4. FL does not have a time-out date, if legal license allows.
  5. FL stipulates MAX value and app identifiers.
  6. FL is requested and validated on Seaconis application start-up.
  7. FL activation by OLS only if it does not exceed MAX.
  8. FL is returned on shutdown
  9. FL has heart-beat to enable recovery of license in case of network or app crash.

Requirements for Floating License

There are a few differences in the configuration files for a machine to use floating licenses.

  1. The JurisdictionSettings.xaml file must contain a reference to the license server to be used. The example below shows a local network server, as we use during development.
    <?xml version="1.0" encoding="utf-8"?>
    <!-- saved from url=(0016)http://localhost -->
    <Settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <Name>SI</Name>
       <LicenseServerUrl>http://192.168.110.179/Service.asmx</LicenseServerUrl>
       <PlanTestWindows>
       </PlanTestWindows>
    </Settings>
    
  2. There must be a license file in the install bin folder.
  3. If in debug mode, the path is
    string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "license.lic");
    
    Which for standard dev structure is:
    C:\PlanTest\bin\x86\debug\license.lic
    
  4. The license file must be named "license.lic"
  5. If the machine also has a node locked license, the floating license will override.

Floating Licenses for On-site License Service


Applying a floating license in PlanTest to be validated to a license service is almost identical to the node-locked license management described above. However, you must start PlanTest with admin privileges, so the license can be written to the registry in the proper location.

Warning! For floating licenses, YOU MUST START PLANTEST WITH ADMIN PRIVLEDGES! If you do not have admin privileges, PlanTest cannot write the license to the registry. However, you will see all as fine through the License Manager Dialog, including the validation message. It just won't save, and check of status will show as invalid license.