To run LuciadFusion, you need to install the license that Luciad’s Customer Services team provides to you. This article introduces LuciadFusion licensing. It explains how licensing works, and includes overviews of the license types, the properties found in a license file, and license checking mechanisms.

What is a LuciadFusion license?

A LuciadFusion license is a text file, optionally packaged inside a JAR file, that defines the terms of usage for running LuciadFusion.

You must install this file in LuciadFusion as discussed in Check your license installation.

When you execute LuciadFusion-based software, it performs a license check to validate the terms of usage. These are described through the properties in the license file. See What is the meaning of the properties in a license file? for more information. Examples of executing LuciadFusion-based software are running one of the built-in applications and samples, or running your own application developed with the API.

In documents and discussions, the term “license” is often associated with a single developer or user of the software. For example, if three developers are building a solution with LuciadFusion, they need three licenses. In practice though, Luciad issues them with a single, common license file that allows using LuciadFusion on three machines at the same time.

What license types are available?

There are two types of licenses:

  • A developer license, also known as development license, is the license that developers use to build the end-user solution based on LuciadFusion. This license gives you access to the product API.

  • A deployment license, also known as end user license, is the license that’s installed with the final solution at the end user’s premises. You may also use a deployment license for validation and testing. Writing code isn’t allowed with a deployment license.

What are the possible license checking mechanisms?

LuciadFusion offers a wide range of license checking mechanisms to ensure flexibility with respect to the user’s environment. This section gives an overview of the possibilities. Luciad’s Customer Services team defines the exact list of checks in agreement with the licensee.

Expiry date

A license can specify an expiry date on which the validity of the license ends. The license expires on the specified date at 00:00 AM, based on the local timezone. The expiryDate license property specifies the date.

IP addresses or subnets

A license can specify a set of IP (v4) addresses or subnets that restrict the running of the product to certain machines. The hostIPaddress license property specifies these addresses or subnets. IP addresses are represented using the dotted quad notation (e.g. 192.168.1.3). Subnets are represented as an IP address prefix (e.g. 192.168).

MAC address

A license can specify a set of MAC addresses or subnets that restrict the running of the product to certain machines. the hostMACaddress license property specifies these addresses.

iButton

A license can specify the serial numbers of a set of hardware keys or iButtons. The iButtonCode license property lists these numbers. Only the machines that have one of the specified hardware keys plugged in can run the software. Luciad’s Customer Services team delivers the hardware keys. For installation instructions, see here.

Floating licenses

Floating licenses restrict how many applications can run concurrently by counting the number of running applications on the network. If you’re using floating licenses with a license server, it’s the license server that monitors the number of concurrent applications. Without a license server, applications communicate their existence to each other on the local network to keep track of concurrent usages. This communication relies on multicast UDP messages using IP address 229.44.91.73 and the port specified in the securityPort license property.

License server

The Luciad license server is a stand-alone, lightweight application that can coordinate the use of floating licenses for one for more applications.

You can start a license server manually.

Alternatively, you can install it as a background service.

To reach the license server, you can use its IP (v4) address or a host name. These are specified in the licenseServer and licenseServerName license properties respectively. In both cases, the properties can specify a comma-separated list of values: the first value identifies the main license server, while the other values identify one or more backup license servers. The backup servers are used if the main license server can’t be reached.

The communication between an application and the license server relies on UDP messages using the port specified in the securityPort license property. If the property isn’t defined, the port is 30323.

In some cases, an extra hardware check is necessary for the machine that can run the license server. This check can be done through a MAC address or through a hardware key or iButton, configured using the licenseServerMACaddress and licenseServerIButtonCode license properties respectively.

What is the meaning of the properties in a license file?

A LuciadFusion license file defines a set of properties that specify the terms of usage for running LuciadFusion. The table below shows an overview of the possible properties. Which properties are defined in your license file depends on the agreed terms of usage.

License file property Meaning

productName

Specifies the name of the product for which the license is intended.

optionalModules

Specifies a comma-separated list of optional product modules that you have access to.

version

Specifies the version of the product for which the license is intended. A product version consists of two or three numbers: a major version, a minor version, and an optional patch version. For example, in 2022.1.62, 2022 is the major version, 1 is the minor version, and 62 the patch version.

For versions older than 2023, the major and the minor numbers in the license file need to match with those of the software. Starting from version 2023, only the major number needs to match. For example, a license valid for 2022.0.01 works for any 2022.0.x software version but not for 2022.1.x, while a license valid for 2023.0.06 works for any 2023.x software version.

licenseType

Specifies whether the license is a development license or a deployment license.

expiryDate

Specifies the date on which the license file will expire. If this property isn’t defined, the license file doesn’t expire.

licenseServerExpiryDate

Similar to the expiryDate property, but only applicable to an optional license server used for license checking.

floatingLicenses

A number that specifies how many applications can run concurrently.

hostIPaddress

A comma-separated list of IP (v4) addresses or subnets identifying the machines on which the product is allowed to run.

hostMACaddress

A comma-separated list of MAC addresses identifying the machines on which the product is allowed to run.

iButtonCode

A comma-separated list of serial numbers of hardware keys or iButtons that can be used on machines running the product.

licenseServer

A comma-separated list of IP (v4) addresses identifying the machines on which the Luciad license server is allowed to run.

licenseServerName

A comma-separated list of host names identifying the machines on which the Luciad license server is allowed to run.

licenseServerMACaddress

A comma-separated list of MAC addresses identifying the machines on which the license server is allowed to run.

licenseServerIButtonCode

A comma-separated list of serial numbers of hardware keys or iButtons that can be used on machines running the license server.

securityPort

The UDP port on which floating licenses are checked. If this property isn’t defined, port 30323 is used by default.

s63UserPermit

The User Permit that can be used for decoding S-63 data. This property is only relevant if the list of optional modules includes S-63.

s63Manufacturer

A boolean property indicating whether the licensee is an S-63 system manufacturer and in charge of the User Permits. If this property isn’t defined, Luciad (Hexagon) is the S-63 manufacturer. This property is only relevant if the optionalModules property list includes S-63.

copyright, message, licensee, ADMIN/*, ENTITLES/*

Metadata properties with information about the copyright, the user of the license, the customer, the project, and so on.

serialNumber

Unique identification of the used software version.

obfuscation

Specifies whether the software needs to be obfuscated.

initialization

Internal property used in combination with deployment licenses.

key, licenseServerKey

Unique identification of the license.