Software licensing and copy protection is managed by your software checking for availability of a license with the cloud service. Once acquired from the cloud licenses are cached in memory and in a license file. You can choose to make the license file permanently valid, valid until an expiry date or require a periodic refresh from the cloud service.
Once a license has been acquired from the cloud only the application with the locally cached licensed can use or release the license (although you can force the license to be freed in the front-end). License locks e.g. to a hostname determine whether a license file can be moved to a different environment e.g. to another machine.
You can enable a license to "float" and allow your software to invalidate the local software license and release it back to the cloud service.
For a general overview of Software Licensing & Copy Protection and the Nuvovis service see Nuvovis Software Licensing Overview (PDF)
The Service includes a cloud based front-end (either our portal or the Salesforce App), the cloud service running in Google AppEngine known as Genux-B and the Licensing Library which you link to your software application. You use the library to prevent your application from running, or limit some the application's functionality, unless a license has been issued by your license administrators.
To create a software license you specify the name of the end user or company, the expiry period or date and any licensed settings used by the application e.g. enabling specific functionality. When the license is ready it is sent to Genux-B which responds with a unique License Key. You communicate the License Key to the customer, typically by email, and the customer enters the key into the application. The application calls the library to get the license from Genux-B and cache the license locally in a file and in memory. Genux-B records the use of the license. Your license administrators can query the use of Software Licenses and view the usage information stored in Genux-B.
Flags in the Software License object determine whether or not the license is locked to a machine. For example you can have a perpetual license which is not locked to a machine and is merely "watermarked" with the name of the end user, allowing the user to move the license to more than one machine. Alternatively you could have a machine locked license which is not allowed to move which expires in 30 days.
Licenses are stored in a file on the machine where the application runs. Licenses are also stored in Genux-B. When the application checks for a valid license if a local file is found the settings are checked using the file. If no file is found the settings are checked using Genux-B.
If you want to change license settings, for example to add a feature for the user, you can use the front-end to update the license settings in Genux-B. If the license file is deleted the next time the application runs the new settings will be downloaded.
Live Licenses are licenses which are refreshed automatically periodically and which can be released back to the cloud service to enable the license to "float". Live licenses are cached in memory and in a file but after the session refresh period (a number of minutes) a new license check will not re-use the cache but refresh the license from Genux-B. This allows license administrators to adjust license settings for their customers dynamically.
For an application's license to float from one user or one machine to another the application which currently holds the valid license must "release" the license by making a call to the Licensing Library. This will remove the local license file and free up the slot in Genux-B.
To simplify administration multiple licenses can be issued to a customer with a single key. If you need to you can activate licenses on a machine without internet access using the Offline mode.