ABBYY FineReader Engine's protection mechanism is very flexible and offers different license types which can be used in many different environments starting from a physical or virtual servers on premise, Docker containers to virtual environments in the cloud.
This article describes the specifics and the usage of the license type - Online License - introduced in FineReader Engine 12.
Note: In FineReader Engine 12 release 1 and release 2 this license type was referred to as "Cloud License". This notion is also used in the developer help of these former versions.
What is an Online License?
Online License is a special license type for FineReader Engine 12, which is designed to be used specifically for FineReader Engine's deployment in Docker containers, virtual and cloud environments. It can be also used on any other environment that has a permanent internet connection.
In contrast to the common software license type of the FineReader Engine, the Online License is not bound to a particular machine and it does not require license activation. Thus, it is best suited for usage in Docker containers and virtual environments in the cloud and when there is a need to flexibly use hardware in order to optimally scale and orchestrate a large number of tasks for document processing. Changing of data storage and computing power of a virtual machine as well as adding new instances to scale the application are fully supported by the Online License.
The Online License is available for both Developer and Runtime licenses.
How does the Online License work?
Online License allows to process a certain page volume during a defined time period, e.g. pages per year (PPY) or pages per month (PPM). Several instances of FineReader Engine can share one serial number and one license counter. To this end, a so-called Local Licensing Server on each instance and a Licensing Server hosted by ABBYY synchronize the counter information periodically over the internet. The ABBYY Licensing Service keeps a record of all processed pages from all client's machines bound to this serial number and aggregates this information.
How does the synchronization of the Online License work?
For the correct operation of the Online License, a synchronization between two licensing services is required:
- Local Licensing Service on the workstation, on which FineReader Engine is installed.
- ABBYY Licensing Service on ABBYY's server.
ABBYY Licensing Service - Hosting and Availability
The ABBYY Licensing Service is hosted on Microsoft Azure data centers in Western Europe1 in a fail-safe manner with back-up servers in the USA in order to ensure its continuous availability. It manages the product’s license counters and authorizes the use of FineReader Engine's functionality. ABBYY guarantees that the quarterly uptime percentage for the ABBYY Licensing Service will not be less than 99%. Details on ABBYY's commitment to the service availability are given in the Appendix of the License Agreement.
Local Licensing Service - Requirements for Synchronization
The Local Licensing Service is installed automatically during the product’s installation on the customer's environment. It ‘communicates' with the ABBYY Licensing Service at a certain interval, which is defined in the license options.
For automatic connection of the two Licensing Services, the following requirements must be met:
- Permanent active internet connection.
- Allowed connections to *.abbyy.com on ports 80 and 443.
The local licensing service synchronizes with the ABBYY licensing service at certain periods. Two parameters are used to control the synchronization behavior in order to ensure flawless operation of the FineReader Engine even if the connection between the Licensing Services cannot be established due to some issues:
Information exchange between the two services occurs at a frequency defined by this license parameter. By default, the synchronization period is set to 5 minutes for all licenses (Trial, Developer and Runtime).
Autonomous working period:
If the connection between the Licensing Services cannot be established due to some issues, the functionality of the product will be still available for a certain period of time. Before the license stops working, the Local Licensing Service will continuously try to connect to ABBYY Server during the time period allowed by the license to work autonomously. The maximum autonomous working period is determined in the license. By default, Trial licenses can work autonomously for 10 minutes, Developer and Runtime licenses for 12 hours.
What information is sent to ABBYY Licensing Server?
The Local Licensing Service sends to ABBYY Licensing Service only the information, required to identify the license for reporting of consumed pages. The information sent is encoded by hash sums independent of the hardware and cannot be reconstructed. ABBYY receives completely anonymized information of the environment the Online License is used on.
ABBYY Licensing Server collects following data:
- Instance ID;
- Device ID;
- Security key;
- Client key;
- License ID;
- License counter information.
What do you get with the Online License?
Online License parameters are contained in a password-protected file (activation token) which is used for authorization when connecting to ABBYY licensing services. When you order a Online License, you will receive the following information:
- Customer Project ID - an alphanumeric string used to bind Developer and Runtime licenses of one project, e.g. ‘Im8oCFCbJ4PFhhJYfnhy'.
- License token - a binary file containing license parameters, which are used for authorization when connecting to ABBYY Licensing Service. The file is named as follows: ‘SWERXXXXXXXXXXXXXXXXXXXX.ABBYY.ActivationToken', where ' SWERXXXXXXXXXXXXXXXXXXXX' is the license key.
- A password to the license activation token file.
How can you inspect the license?
The parameters and counter statistics of the General License used on the client’s machine can be reviewed in the License Manager:
Example of how to use the Online License in C#
The FineReader Engine library is loaded with the help of the InitializeEngine function or the IEngineLoader::InitializeEngine method.
The C# syntax of the InitializeEngine function is:
ref IEngine Engine
When working with the Online License the parameters of the InitializeEngine function have to be specified as following:
- Customer Project ID;
- Full path to the license token file;
- Password of the license token file;
- [Optional, may be an empty string] Path to the folder, in which ABBYY FineReader Engine should store user-specific data. By default, it is the FineReader Engine data folder: %ProgramData%\ABBYY\SDK\12\FineReader Engine for automatic installation;
- [Optional, may be an empty string] Path to the folder for ABBYY FineReader Engine temporary files. By default, it is %TEMP%\ABBYY FineReader Engine 12 folder;
- [Optional] A Boolean value that specifies whether the CPU cores should be used in shared mode;
- Output variable for Engine object.
Sample code in C#:
InitializeEngine(“Im8oCFCbJ4PFhhJYfnhy”, @“C:\Program Files\Application\
SWRT12411234123412341234.ABBYY.ActivationToken”, “12345678”,” “, “ “, “ “, ref engine);
For detailed description of this function and its parameters, please refer to the Help file of the product.