License Manager Usability Enhancements
Command Line License Management Utilities
Runtime Library API Enhancements
License Key Generation API Enhancements
Updated Platform / Language Support
Improvements To License Manager UI Manageability And Deployability
Upgrading From Previous EasyLicenser Versions
Upgrading eCommerce Key Generation System
Upgrading Applications For The New Runtime Library
Compatibility Of Product Definitions
Runtime Library API Compatibility
Packaging For C/C++ Platform Support
The purpose of this document
is to describe the new features in EasyLicenser 2.5, their benefits,
how to use them, and where to look for detailed information. Note that although
it is possible to directly upgrade from EasyLicenser 1.1 to EasyLicenser 2.5, this
document is focused on features that are new in EasyLicenser 2.5. EasyLicenser 1.1
users should first review
What Was New In EasyLicenser 2.0 for information
on new features that were introduced in EasyLicenser 2.0.
Target audience: existing EasyLicenser 2.0 administrators and developers upgrading to 2.5.
Note that there is no visible impact on end users.
The key themes behind EasyLicenser 2.5 are:
Usability enhancements to the License Manager console, in particular for the management of license keys.
Introduction of command line utilities for license management functions, in order to enable automation of license key generation and EasyLicenser license management from shell scripts.
Enhancements to runtime licensing functionality, in particular deferred-mode node locking and relative time limited licensing.
Adjustments to platform and language support based on current platform needs.
Improvements to manageability and deployability through removal of restrictions.
In addition to bug fixes and numerous minor improvements such as addition of edit / delete confirmation dialog boxes, addition of file chooser dialog boxes, and other similar functionality tweaks, the most significant improvements to the License Manager UI console are:
Command line utilities are provided to enable license management and key
generation to be performed from command line scripts. The utilities enable
you to automate license key management and license configuration management
functions from shell scripts and also to trigger the functions from CGI
scripts for web sites that don't use Java technologies and therefore cannot
conveniently utilize the Java-based license key management back office API's.
The command line utilities are implemented as executable jar files that are located
under the ezlic2.5 directory, accompanied by shell script wrappers.
The utilities are:
To get help on any specific command line utility, run the utility without arguments. To directly invoke the executable jar on Windows, either double-click the executable jar from Windows Explorer, or select the executable jar file for the Run command window from the Start window. To directly invoke the executable jar from a command window on any platform (including Windows), open a command window, position to under the ezlic2.5 directory, and type java -jar <jar-file> <arguments>.
A new Extended API is added to the runtime library. In addition to providing higher-level abstractions that simplify application integration without sacrificing functionality, the extended API provides new capabilities including:
The signatures and semantics of existing Core API calls are preserved for backward compatibility. In addition, the following enhancements are provided:
A set of simplified stateless key generation API calls are added so as to enable
the back office system to generate a license key with a single API call. A separate
API call is provided for each type of key: single-user desktop license (generateSingleUserKey),
EasyLicenser-based server license (generateServerKey), and Orion server license (generateFloatingKey).
For Orion license server key generation, an additional generateChainedKey API call is provided for the purpose of generating
a chained key based on an existing key.
The signature and semantics of existing key generation API calls are preserved for backward
compatibility. Further, it is no longer necessary for the application to explicitly set
the license mode bitmap bits when defining time-limited or metered licenses or
licenses having the custom key and / or cookie defined by the application - these
operations are implicitly performed by the corresponding setter API calls.
Platform and language support has been fine-tuned in response to customer demand as follows:
Since there is no backward compatibility implication with respect to license keys, prior versions of the EasyLicenser runtime library for platforms that are now not supported will continue to work with equivalently-composed new keys generated with EasyLicenser 2.5. What is missing for the desupported platforms and languages is the new runtime library's functionality and bug fixes.
Several restrictions which were put in place due to the prior license unit based online purchase model and which resulted in undue restrictions have been removed from the License Manager UI:
The restrictions contine to apply if the EasyLicenser installation is based on old EasyLicenser keys, for example if you upgrade an existing EasyLicenser 2.0 installation to the EasyLicenser 2.5 level, until you recharge your installation with an EasyLicenser 2.5 level key issued by Agilis.
There are three types of upgrades: upgrading the license manager installation itself, upgrading an eCommerce web site or other back office system that uses the EasyLicenser key generation API's, and upgrading your application to use the EasyLicenser 2.5 run time libraries.
You can upgrade your existing EasyLicenser 1.1 or EasyLicenser 2.0 installation to EasyLicenser 2.5 without affecting your balance production license units or existing data as follows:
Download a fresh copy of the EasyLicenser upgrade package from the EasyLicenser web site at http://www.agilis-sw.com/ezlm/anondownload/ezlicmgrupgrd.zip or other URL provided by Agilis.
Position to within the existing product installation root directory (that is, in the ezlic1.1 or ezlic2.0 subdirectory).
Unzip the downloaded file into the directory. Your existing data and configuration files are preserved and are compatible with the current release.
Performing an upgrade of an existing production installation to EasyLicenser 2.5 has its limitations and constraints:
If you are upgrading from EasyLicenser 1.1, the upgrade will not automatically enable you to generate Orion server license keys. For this functionality, you will need to obtain a new Orion-enabled production EasyLicenser key from Agilis.
The upgrade will not automatically enable you to clone license keys or generate chained keys. To enable this functionality, you will need to obtain a production EasyLicenser 2.5 level EasyLicenser key from Agilis.
The upgrade will result in an EasyLicenser 2.5 installation that has "ezlic1.1" or "ezlic2.0" as its root directory, and a combination of EasyLicenser 1.1 / 2.0 and 2.5 libraries. Although this does not impact its functioning, it is nevertheless disconcerting. You can clean up the files ending in "11" or "20" (except for the files in the cpp directory since the shared library naming convention for C/C++ runtime libraries has been frozen); however, the installation root directory cannot be renamed, otherwise the EasyLicenser configuration will no longer be usable.
Performing the upgrade is therefore appropriate if you have a large balance of production license units and you want to use the new features of the EasyLicenser 2.5 License Manager other than Orion licenses and / or license key cloning and chaining.
You can upgrade your existing EasyLicenser 1.1 or EasyLicenser 2.0 based eCommerce site to EasyLicenser 2.5 without affecting your balance production license units or existing data as follows:
Download a fresh copy of the EasyLicenser eCommerce package from the EasyLicenser web site at http://www.agilis-sw.com/ezlm/anondownload/ezlicmgrecom.zip or other URL provided to you by Agilis.
Position to within the existing EasyLicenser eCommerce product installation root directory (which may not necessarily be the ezlic1.1 or ezlic2.0 subdirectory).
Unzip the downloaded file into the directory. Your existing data and configuration files are preserved and are compatible with the current release.
Performing an upgrade of an existing eCommerce production installation to EasyLicenser 2.5 has the following implications:
If upgrading from EasyLicenser 1.1, or upgrading from an EasyLicenser 2.0 installation that does not have an Orion-enabled production key, the upgrade will not enable you to generate Orion server license keys. For this functionality, you will need an Orion-enabled production EasyLicenser license key from Agilis.
If upgrading from EasyLicenser 1.1, note that as of EasyLicenser 2.0, the upgraded key generation library allows you to programmatically recharge your license units directly from your web application, so you no longer have to use the License Manager GUI for this purpose. If upgrading from EasyLicenser 2.0, the upgrade also provides you with the recharge command line utility that enables you to recharge your license units from a command line or shell script.
You should upgrade your existing EasyLicenser 1.1 and EasyLicenser 2.0 based applications to the EasyLicenser 2.5 run time libraries even if you do not take advantage of the new features, in order to benefit from bug fixes and internal functionality improvements. Perform the upgrade as follows:
Java applications:
In your product packaging, replace ezlicrun11.jar or ezlicrun20.jar and ilscrypt10.jar
with the two libraries:
ezlicrun25.jar located at the lib subdirectory of the product installation.
ilscrypt10.jar located at the extlib subdirectory of the product installation.
The classpath also needs to include the directory containing the jar libraries.
The directory path containing the jar libraries cannot contain URL-encodable characters, in particular white spaces. All directory names are required to consist of alphanumeric characters, '-', '_' and '.'.
C/C++ applications:
In your product packaging, replace your
platform-specific ezLicenserlib11.so/dll/a or ezLicenserlib20.so/dll/a shared library with the
ezLicenserlib20.so/dll/a shared library located at the platform-specific
subdirectory under the cpp/lib subdirectory of the product installation.
Note that the shared library versioning is frozen at "20" and will not change
in future versions. Note also that API calls are available for introspecting
the runtime library major and minor versions.
Modify your application's makefiles to refer to the new shared library (Windows:
import library ezLicenserlib20.lib) instead of the current library.
It is recommended that you upgrade your application source code to utilize the new API's,
in particular the core API's that accept a strict password check parameter.
The license key checking API's that accept product name and application passwords are
required to be used if you will be generating application password protected keys.
See below for a full discussion of key compatibility considerations.
Performing an upgrade of your application to the new EasyLicenser 2.5 runtime libraries has the following implications:
If the new API's are used, the upgraded application will work with all EasyLicenser keys including legacy (1.1) keys.
When upgrading from EasyLicenser 1.1, if the application source code is unmodified and therefore continues to use the existing API's, the application will work with EasyLicenser 1.1 keys and keys generated with EasyLicenser 2.0 as well as EasyLicenser 2.5 based on product definitions for which an application password is not specified.
When upgrading from EasyLicenser 2.0, if the application source code is unmodified and therefore continues to use the existing API's, the application will work with keys generated with EasyLicenser 1.1 and EasyLicenser 2.0 as well as EasyLicenser 2.5.
Backward compatibility is preserved between the three versions: EasyLicenser 1.1, EasyLicenser 2.0 and EasyLicenser 2.5. In addition, forward compatibility is maintained to the maximum extent possible. The specific rules governing compatibility between EasyLicenser 1.1, EasyLicenser 2.0 and EasyLicenser 2.5 are enumerated below.
This is applicable only to the License Manager user interface.
Backward compatibility: The EasyLicenser 2.5 License Manager GUI can be used to import, export, view details and otherwise process existing product definitions that were created with EasyLicenser 1.1 or EasyLicenser 2.0.
Forward compatibility: The EasyLicenser 1.1 License Manager GUI can be used to import, export, view details
and otherwise process product definitions that are created with EasyLicenser 2.0 or EasyLicenser 2.5 provided the
products don't have application passwords associated with them, and provided the products' option
names don't contain the ':' character.
The EasyLicenser 2.0 License Manager GUI can be used to import, export, view details
and otherwise process product definitions that are created with EasyLicenser 2.5.
Key compatibility has two aspects: the License Manager user interface and the run time libraries.
License Manager backward compatibility: The EasyLicenser 2.5 License Manager GUI can be used to import, export, publish, view details and otherwise process existing keys that were generated with EasyLicenser 1.1 or EasyLicenser 2.0.
License Manager forward compatibility: The EasyLicenser 1.1 License Manager GUI can be used to import, export, publish, view details and otherwise process keys that are generated with EasyLicenser 2.0 or EasyLicenser 2.5 provided the keys are not based on product definitions having application passwords defined on them.
Runtime library backward compatibility: The Java and C/C++ EasyLicenser 2.5 runtime library will correctly process keys that were generated with EasyLicenser 1.1 or EasyLicenser 2.0.
Runtime library forward compatibility: The Java and C/C++ EasyLicenser 1.1 runtime library will correctly process keys that are generated with EasyLicenser 2.0 or EasyLicenser 2.5 provided the keys are not based on product definitions having application passwords defined on them, and the keys are not Orion server keys.
The new runtime library introduces additional API calls while continuing to support existing API signatures.
API backward compatibility: A Java or C/C++ application can use the new runtime library with no source code modifications. From the perspective of the application logic, the existing semantics are preserved for the current API calls.
API forward compatibility: Not applicable by definition. If the application uses any of the new API calls, it needs to be packaged with the new runtime library.
The product packaging has been revised to accommodate new functionality and to streamline multiplatform support for C/C++ run time libraries as follows:
In addition to the command line utilities described above under Command Line License Management Utilities,
the util directory includes additional Java utilities over and above the makelibdigest utility added in EasyLicenser 2.0:
a datetodays utility that translates a date to a number of days from the time of execution for the purpose of computing expiration days to
input into the License Manager utility when generating time limited licenses, and a sysinfo utility that displays the Java runtime
system environment for diagnostic purposes.
Utilities in the util directory are invoked with the run.bat / run.sh command. To obtain help information on a
utility, invoke the utility with no arguments.
The Java and C/C++ demos include an additional demo application that illustrates the use of the new extended API.
Beginning with this release, the C/C++ platform support that is included with the core packages encompasses all supported platforms, which are currently 32-bit Windows, 32-bit Linux on Intel, and 32-bit Solaris on Intel and SPARC. Also, the major and minor number versioning in the shared library names is discontinued and frozen at the last value of "20".
For information on considerations in upgrading from
EasyLicenser 1.1 that are pertinent to EasyLicenser 2.0, refer to the What Was New In EasyLicenser 2.0.
For information on how to use the new License Manager
user interface, refer to the License Manager User Guide.
A guide to programming with the new Java run time library API's is available as part of the
Java ISV Application Development Guide. Its corresponding API
reference is available in the Java Run Time Library API Reference.
Example applications that illustrate the use of the run time library are included in the demo
directory.
A guide to programming with the new C/C++ run time library API's is available as part of the
C/C++ ISV Application Development Guide. Its corresponding API
reference is available in comments in the header files located at cpp/include.
Example applications that illustrate the use of the run time library are included in the cpp/demo/src
directory.
A guide to programming with the new Java license key generation API calls is available as part of the
Java eCommerce Application Development Guide. The corresponding API
reference is available in the Java E-Commerce License Key Generation API Reference.