Magician Holding Magic Wand Over Illuminated Hat

Categories: Licensing

Software Activation Wizard Examples

In software licensing, providing licenses should be simple and secure. That goes for software developers who want to create new licenses on a central license server and it goes for end users who need to get the licenses on their devices. If the system in question has an Internet connection, at least temporarily, this can be done very easily and elegantly with a Software Activation Wizard. Called SAW for short, this can be a separate application or another feature in the end user application that takes care of:

  • Transferring the initial license from CodeMeter License Central to the local system
  • Creating a CmContainer, if required, on the local system
  • Checking regularly whether there are any changes to the ticket or CmContainer on CodeMeter License Central

Gateways

To conduct license checks from within an application, Wibu-Systems provides the gateways as part of the CodeMeter License Central Internet Extensions. Gateways are PHP scripts that can be called with the right parameters and return the required data in a JSON format. This results in two main requirements for a license check in the application:

  • Communication via https must be possible
  • JSON objects must be interpreted

Beyond accessing the gateways, the application in question only has to be able to communicate with the local CodeMeter Runtime to provide the license data on the system.

Software Activation Wizard Samples

Wibu-Systems has prepared a number of sample implementations for different programming languages in the developer section of its website to make integrating SAW functionalities as simple as possible. There are samples for different use cases.

What all implementations have in common is that they have a central module that takes care of communicating with the gateways and linking up with CodeMeter Runtime. The module is either a library or a standalone file and can be integrated as is or changed to suit each software’s needs.

C#

The central module used by all samples is the WibuLcGatewaysAPI library.

  • SimpleWizard is the fundamental example that simply shows which functions need to be called to activate licenses.
  • Wizard is a standalone application that handles most license management operations on the basis of tickets or CmContainers.
  • AutoUpdate is an example of how a check can be run for auto-update licenses for all local CmContainers.
  • SingleTicket shows how the ticket number stored in a license can be used to check whether new licenses have been provided.
  • Renew is a simple example to explain how renew licenses work for service engineers.
  • Cloud shows how a new user and CmCloud-Container can be created through the License Portal or how a CmCloudContainer can be provided for an existing user on a local system.
  • LicensePortalUserTickets demonstrates how all available tickets for a user can be accessed and checked for new licenses.
  • ActivationInformation is a simple example that explains how additional information can be written into a license with activationspecific parameters.

Java

The central module used by all examples is the library jaw-core-x.xx.xxx.xxx.jar.

  • ActivateFromTicket is a simple application that shows how licenses are transferred from a central server to a local system.
  • DeactivateFromTicket demonstrates how licenses activated on a local system can be returned to the central server.

C++

For C++, a command line application is provided that can handle different operations via the right parameters. The central module is the file WibuLCGatewayAPI.cpp. libcurl is used as a library for https communication and jsmn.h for handling JSON objects.

Conclusion

If the system can handle the basic requirements, integrating a SAW into an application is not complicated. Should the programming languages and samples listed here not be enough for your needs, the consultants of Wibu-System’s Professional Services are always available to support you.

 

KEYnote 45 – Edition Spring/Summer 2023

To top