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.
The scope for this document is:
The following are NOT in scope:
The audience for this document includes:
| 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 |
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.
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.
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.
Specific information on some of these features will be discussed in the following sections.
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.
On the creation of your OLS, Seaconis will require information that secures the service and communication with the PlanTest application.
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.
OLS is distributed as a folder with application executable and settings files.
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/
To run the license service as a Windows service, use the command line as follows :
Install the service:
LicenseServiceApp.exe action=install
This installs the service and when started, the service will run as the LocalSystem account.
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.
Start the service
LicenseServiceApp.exe action=start
Stop the service
LicenseServiceApp.exe action=stop
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.
If you pass a log=true parameter to the LicenseServiceApp.exe command-line, it will create a .log file to the same folder.
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:
There are a few differences in the configuration files for a machine to use floating licenses.
<?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>
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "license.lic");
Which for standard dev structure is:
C:\PlanTest\bin\x86\debug\license.lic
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.