Flexible license management system and method, and storage medium
By automating the building of FlexLM images and the management of lmgrd logs in Docker containers, the problems of complex FlexLM system deployment and strong environment dependencies are solved, realizing a cross-platform deployment and easy-to-maintain license management system, and providing efficient operation and maintenance and security assurance.
Patent Information
- Application Number
- CN202511713044.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-20
- Publication Date
- 2026-02-13
AI Technical Summary
The existing FlexLM license management system is complex to deploy, highly dependent on the environment, has high deployment and maintenance costs, poor cross-platform portability, and weak compatibility with multiple vendors.
Implement automated image building of FlexLM server and license file in Docker container, providing a web visual interface and command line interface, automatically build FlexLM license server image and license file license.dat, store lmgrd logs, and support automatic identification and unified management of multiple vendors.
It simplifies deployment operations, improves deployment efficiency, eliminates environmental dependencies, enables cross-platform migration, reduces operation and maintenance costs, provides easy maintenance and visual management, and enhances security and information traceability.
Smart Images

Figure CN121525006A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of software license management, and particularly relates to a flexible license management system and method and a storage medium. BACKGROUND
[0002] A Flexible License Manager (FlexLM) is a license server specially used for controlling and managing the authorized use of professional software (especially in the fields of engineering and scientific calculation) that needs to be paid. FlexLM adopts a client / server architecture. When a user starts a software protected by FlexLM (for example, starts MATLAB) on his own computer, the software becomes a client, and the client sends a license request to a license server configured in the network. Correspondingly, after receiving the request, the server performs a series of checks, and after all the checks pass, sends a license to the client, so that the user can normally use the software. When the user closes the software, the license is released back to the license pool for use by other users.
[0003] The deployment of the traditional FlexLM is mainly in the form of a daemon process on a physical or virtual machine. An administrator needs to manually complete the following operations:
[0004] (1) Install the license management daemon process lmgrd and the vendor daemon provided by each manufacturer on the target operating system (such as Windows, Linux).
[0005] (2) Copy the authorized file license.dat or license.lic to the specified directory, and edit the environment variable or start script to specify the port number and path.
[0006] (3) Start lmgrd and the vendor daemon; monitor the license checkout / checkin situation by using the command line or a log file.
[0007] (4) The log is stored in a local file, and an operation and maintenance personnel needs to manually filter and analyze by using a command line tool such as tail, grep and the like.
[0008] To address the issues of poor visualization and low analysis efficiency in traditional FlexLM deployment methods, some third-party management layer tools have emerged, such as OpenLM, which provides pre-built FlexLM container images, allowing users to run standard FlexNet license servers in Docker containers. However, most existing third-party management layer tools suffer from the following drawbacks: high deployment and maintenance costs, complex environment dependencies, poor cross-platform portability, and weak multi-vendor compatibility. Summary of the Invention
[0009] This application provides a flexible license management system and method to simplify the deployment of the FlexLM license server and eliminate environmental dependencies.
[0010] On the one hand, embodiments of this application provide a flexible license management system, the system including: a user operation module, a control management module, and a storage module;
[0011] The user operation module is used to provide a web visual interface and / or command line interface to interact with the control and management module;
[0012] The control and management module is used to automatically build the license server FlexLM image and the license file license.dat in the container according to the instructions of the user operation module; the container runtime deploys the license management daemon lmgrd and the vendor daemon provided by each vendor in the runtime environment;
[0013] The storage module is used to store lmgrd logs during the operation of the container, the lmgrd logs including license check logs.
[0014] Optionally, the container includes any of the following: Docker container, LXC / LXD container, Firecracker microvirtual machine.
[0015] Optionally, the control and management module includes: an image generation module, a vendor identification module, a container management module, and a log management module;
[0016] The image generation module is used to package the license server FlexLM, the license management daemon lmgrd, the vendor daemon provided by each vendor, and the corresponding license file license.dat into the container according to the instructions of the user operation module, thereby generating a container image;
[0017] The vendor identification module is used to start the script to parse the license file license.dat and generate startup parameters for the corresponding vendor daemon process;
[0018] The container management module is used to manage the container, including starting, stopping, and deleting the container.
[0019] The log management module is used to read the lmgrd logs in the storage module.
[0020] Optionally, the image generation module is specifically used to dynamically generate a Docker file (Dockerfile) after receiving instructions from the user operation module, and automatically execute each instruction in the Docker file (Dockerfile) using the Docker engine to generate a Docker image.
[0021] Optionally, the image generation module is specifically used to generate the container image using Podman or Buildah tools after receiving instructions from the user operation module.
[0022] Optionally, the image generation module is further configured to push the container image to an image repository.
[0023] Optionally, the log management module is used to read the lmgrd logs in the storage module according to the instructions of the user operation module or at regular intervals.
[0024] Optionally, the control management module further includes a terminal access module, used to connect to the Docker container's internal environment according to instructions from local command-line tools or the built-in WebShell.
[0025] Optionally, the control management module may further include any one or more of the following modules: an authorization information module, a query module, and a record management module;
[0026] The authorization information module is used to parse the license file license.dat, extract the effective time and expiration time of each feature, and display them on the web interface.
[0027] The query module is used to obtain the license usage checkout and license return checkin status in real time, and to display the user usage status of each feature on the web interface.
[0028] The record management module is used to parse the license check log into records and write them to the database, and provides historical query and export functions.
[0029] On the other hand, embodiments of this application also provide a flexible license management method, the method comprising:
[0030] Receive instructions sent from a web-based visual interface or command-line interface;
[0031] The FlexLM image for the license server and the license file license.dat are automatically built in the container according to the instructions; the container runtime deploys the license management daemon lmgrd and the vendor daemon provided by each vendor in the runtime environment;
[0032] During the operation of the container, lmgrd logs are stored, which include license check logs.
[0033] Optionally, automatically building the license server FlexLM image and the license file license.dat in the container includes: packaging the license server FlexLM, the license management daemon lmgrd, the vendor daemon provided by each vendor, and the corresponding license file license.dat into the container to generate a container image.
[0034] Optionally, the container includes a Docker container; the method further includes dynamically generating a Dockerfile.
[0035] Optionally, the method further includes: pushing the container image to an image repository.
[0036] Optionally, the method further includes: reading the stored lmgrd logs according to external instructions or at regular intervals.
[0037] Optionally, the method further includes connecting to the Docker container's internal environment according to instructions from a local command-line tool or a built-in WebShell.
[0038] Optionally, the method further includes:
[0039] Parse the license file license.dat, extract the effective and expiration times of each feature, and display them on the web interface;
[0040] Real-time access to license usage checkout and license return checkin status, and display of user usage status for each feature on the web interface;
[0041] The license check log is parsed, a record is generated, the record is written to the database, and historical query and export functions are provided.
[0042] On the other hand, embodiments of this application also provide a computer-readable storage medium having a computer program stored thereon, wherein the computer program is executed by a computer to perform the steps of the flexible license management method.
[0043] The flexible license management system and method provided in this application implements automated image building of the FlexLM server and license file license.dat in a Docker container, simplifying deployment operations and improving deployment efficiency; it eliminates environment dependencies, enabling the FlexLM server to run directly on different operating systems and hardware platforms, facilitating cross-platform migration. Furthermore, implementing the FlexLM server in a Docker container makes it easier to maintain, and upgrades and configuration changes can be completed through image updates and container restarts.
[0044] Furthermore, through automatic identification of multiple vendors, there is no need to manually configure each vendor daemon.
[0045] Furthermore, by providing one-click container operation, log browsing, and container terminal access interfaces, the efficiency of license management has been greatly improved and the cost of manual maintenance has been reduced.
[0046] Furthermore, by visually displaying the license's validity period and real-time usage, users can view relevant information more intuitively.
[0047] Furthermore, all license borrowing checkout and license return checkin records are stored in a structured manner and provided with historical query and export functions, making historical information traceable and providing data support for auditing and analysis.
[0048] Furthermore, the security of the license file (license.dat) can be further enhanced by protecting it through network isolation and encrypted storage. Attached Figure Description
[0049] The accompanying drawings are provided to offer a clearer understanding of this application and form part of the specification. They, together with the embodiments of this application, serve to explain the application and do not constitute a limitation thereof. In the drawings:
[0050] Figure 1 This is a schematic diagram of a flexible license management system provided in an embodiment of this application;
[0051] Figure 2 This is a schematic diagram of a specific structure of the flexible license management system provided in this application embodiment;
[0052] Figure 3This is another specific structural diagram of the flexible license management system provided in the embodiments of this application;
[0053] Figure 4 This is a flowchart of a flexible license management method provided in an embodiment of this application. Detailed Implementation
[0054] To make the above-mentioned objectives, features and beneficial effects of this application more apparent and understandable, the specific embodiments of this application will be described in detail below with reference to the accompanying drawings.
[0055] It should be noted that, unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of this application.
[0056] In the description of this specification, specific features, structures, or characteristics may be combined in any suitable manner in one or more embodiments or examples.
[0057] To address the issues of existing license management systems being highly dependent on the environment, complex deployment operations, time-consuming, and prone to errors, this application provides a flexible license management system and method that automates the image building of the FlexLM server and license files in a Docker container, eliminating environmental dependencies and manual maintenance costs.
[0058] like Figure 1 The diagram shown is a structural schematic of a flexible license management system provided in the application embodiment.
[0059] The flexible license management system 100 includes: a user operation module 101, a control management module 102, and a storage module 103. Among them:
[0060] User operation module 101 provides a web-based visual interface and / or command-line interface (CLI) for interaction with control management module 102.
[0061] In this embodiment, both the Web visual interface and the command-line interface can interact with the control and management module 102 through an application programming interface (REST API) designed based on the principles of representational state transfer architecture or Docker CLI (a command-based interactive method).
[0062] The control and management module 102 is used to automatically build the license server FlexLM image and the license file license.dat in the container according to the instructions of the user operation module 101; the container runtime deploys the license management daemon lmgrd and the vendor daemon provided by each vendor in the runtime environment.
[0063] Storage module 103 is used to store license borrowing checkout and license return checkin logs, as well as lmgrd logs, during the operation of the container.
[0064] During container runtime, the FlexLM license server generates lmgrd logs. The lmgrd logs are the most important source of information for diagnosing and monitoring the FlexLM license server's status. The lmgrd logs record all events throughout the FlexLM license server's lifecycle, from startup to shutdown, and primarily include:
[0065] (1) Server startup and shutdown: Startup and shutdown timestamps and status of lmgrd and its vendor daemons.
[0066] (2) Daemon process management: lmgrd displays information on the success or failure of starting the vendor daemon process.
[0067] (3) License checkout / checkin: Detailed records of license usage checkout and license return checkin, including user, host, feature name, etc.
[0068] (4) Denied License: When a license is unavailable (e.g., insufficient quantity, version mismatch, host mismatch, etc.), the reason for denial will be recorded.
[0069] (5) Heartbeat and health status: Regular status information indicating that the server is still running.
[0070] (6) Errors and warnings: Any errors encountered, such as inability to read license files, network connectivity problems, daemon crashes, etc.
[0071] (7) Statistics: Some versions will periodically report statistics on license usage.
[0072] like Figure 2 The diagram shown is a specific structural schematic of a flexible license management system provided in an embodiment of this application.
[0073] In this embodiment, the control and management module 102 includes: an image generation module 121, a vendor identification module 122, a container management module 123, and a log management module 124. Wherein:
[0074] The image generation module 121 is used to package the license server FlexLM, the license management daemon lmgrd, the vendor daemon provided by each vendor, and the corresponding license file license.dat into a container according to the instructions of the user operation module 101, thereby generating a container image.
[0075] In some embodiments, the control management module 102 can use the Docker engine to generate Docker images. Specifically, the functions to be implemented by the image generation module 121 are written into a Dockerfile (hereinafter referred to as the Dockerfile for convenience). After receiving instructions from the user operation module 101, the image generation module 121 automatically executes each instruction in the Dockerfile using the Docker engine to generate a Docker image. The instructions in the Dockerfile are executed sequentially, and each instruction creates a new read-only layer based on the image layer created by the previous instruction.
[0076] In some embodiments, the control management module 102 can automatically modify the contents of the Dockerfile file, such as the declared port and the log storage path, according to the different types of vendor in the license file license.dat.
[0077] The complete process of creating a Docker image for the FlexLM license server using the Docker engine mainly involves the following operations:
[0078] (1) Base image selection: Select a preset base image to provide a basic and customizable runtime environment for the container, such as Alpine Linux or Debian Slim;
[0079] (2) FlexLM Installation: Copy the FlexLM binary file to the image, and install the license management daemon lmgrd and the vendor daemon provided by each vendor;
[0080] (3) License file configuration: Process the license file license.dat and related configurations, such as copying or mounting the license file license.dat to the / licenses directory;
[0081] (4) Inject startup script template: Create a startup script to initialize the FlexLM service; the startup script template can use different startup parameters to start the service according to the different types of vendor in the license file license.dat, such as port, hostname, executable file path, etc.
[0082] (5) Network port: Expose the main port used by FlexLM (default 27000), which is the network port that the container needs to listen on during runtime, as declared in the Docker image.
[0083] In practice, the license file license.dat can be embedded in the Docker image, that is, copied into the Docker image. This embedded method is suitable for testing applications. Alternatively, the license file license.dat can be dynamically injected as a resource in a remote configuration center (such as Consul / Kubernetes ConfigMap), that is, provided through external mounting. This method is more suitable for production environments and can improve the security and flexibility of the license.
[0084] In some embodiments, LXC / LXD containers or Firecracker microvirtual machines can be used instead of Docker containers to achieve lighter-weight isolation. LXC / LXD containers quickly replicate a complete, interactive operating system environment from a template; Firecracker microvirtual machines combine a minimal kernel with a read-only root file system into a highly isolated microvirtual machine; Docker containers build a read-only, reusable application image through layered instructions. The appropriate container can be selected based on application needs, and this application does not limit the choice.
[0085] In some embodiments, the image generation module 121 can also use open-source container tools such as Podman and / or Buildah to generate corresponding container images. Podman is a daemon-free container engine used to manage OCI (Open Container Initiative) containers and Pods (a tightly coupled collection of containers), including basic image building functionality. Buildah is a tool specifically designed for building OCI-compliant container images, providing more advanced build capabilities and finer-grained control. In practice, Podman and Buildah can work independently or collaboratively.
[0086] In some embodiments, the image generation module 121 can also push the container image to an image repository. The image repository, as the main entity for storing, managing, and distributing container images, can store all built container images, add version tags to them for easy management of different versions, and allow rollback to any historical version. Through the unified storage of container images in the image repository, the distribution and sharing of container images can be easily achieved, and full automation of the process is facilitated. For example, in a CI (Continuous Integration) / CD (Continuous Delivery) process, automatically built images are pushed to the image repository, and then the testing and production environments pull the specified images from the repository for deployment, achieving full automation of the process. Furthermore, image generation can be automatically triggered in CI / CD pipelines (such as Jenkins and GitLab CI).
[0087] The vendor identification module 122 is used to start the script to parse the license file license.dat and generate startup parameters for the corresponding vendor daemon process, such as port, hostname, and executable file path.
[0088] The container management module 123 is used to manage containers, including starting, stopping, and deleting Docker containers. The container management module 123 can provide a unified CLI command. The startup script reads environment variables or external configurations and generates startup commands for the license management daemon lmgrd and various vendor daemons, allowing parameter adjustments without rebuilding the image. For example, if the environment variable service port is set to server_port=27000, the startup script will automatically use port 27000 to retrieve the environment variable.
[0089] In specific implementation, the container management module 123 can use a single container script to manage the container, or use other tools such as Kubernetes CRD (Custom Resource Definition) and Operator (a specific controller that manages one or more CRDs through a control loop) to manage the deployment, scaling, network connectivity, availability and lifecycle of the container. This application embodiment does not limit this.
[0090] In some embodiments, the container management module 123 can use Docker Swarm (Docker's native container clustering and orchestration tool) to schedule licensed containers and implement service orchestration.
[0091] In some embodiments, the container management module 123 can start a container by calling the Docker CLI to manually debug and start the Docker container, which is convenient for adding new supported vendors in the future.
[0092] The log management module 124 is used to read the lmgrd logs in the storage module 103.
[0093] In some embodiments, the log management module 124 can read lmgrd logs in the storage module 103 according to instructions from the user operation module 101. For example, the log management module 124 receives instructions from a web interface or CLI interface to read lmgrd logs in the storage module 103. Furthermore, it can also support real-time filtering and retrieval of the read lmgrd logs by time, feature name, user, and other dimensions.
[0094] In some embodiments, the log management module 124 can also periodically read the lmgrd logs in the storage module 103. By using persistent volumes, the log files are written to external storage to ensure the integrity of the logs after the Docker container restarts; or relevant information in the lmgrd logs can be extracted for analysis.
[0095] like Figure 3 The diagram shown is a schematic diagram of another specific structure of the flexible license management system provided in this application embodiment.
[0096] and Figure 2 The difference in the illustrated embodiment is that, Figure 3 In the embodiment shown, the control and management module 102 further includes a terminal access module 125, which is used to connect to the internal environment of the Docker container according to the instructions of the local command line tool (such as docker exec) or the built-in WebShell, so as to realize one-click access to the container terminal without the need for operation and maintenance personnel to manually search for the container ID, which facilitates the operation and debugging of the container terminal.
[0097] In some embodiments, the control management module 102 may further include any one or more of the following modules: an authorization information module, a query module, and a record management module. Wherein:
[0098] The authorization information module is used to parse the INCREMENT entries in the license.dat file. Each INCREMENT entry defines which software functions a user is specifically authorized to use, as well as the conditions and restrictions for their use. The module extracts the effective and expiration times of each feature from the INCREMENT entries and displays them on the web interface, for example, in a calendar or table format. Furthermore, the authorization information module can also support exporting the extracted information in Excel report format.
[0099] The query module is used to obtain license usage checkout and license return checkin status in real time, and displays the user usage status of each feature on the web interface, such as which users (Host@User) are using it, the duration of use, and the remaining available number of features. In some embodiments, the query module can periodically call the lmutil lmstat or lmstat tool to capture license checkout / checkin status in real time.
[0100] The record management module is used to parse the license inspection log into records and write them to the database, and provides historical query and export functions to provide data support for audit and compliance needs.
[0101] Accordingly, embodiments of this application also provide a flexible license management method, such as... Figure 4 The diagram shown is a flowchart of this flexible license management method, which includes the following steps:
[0102] Step 401: Receive instructions sent from the Web visualization interface or command-line interface.
[0103] Step 402: Automatically build the license server FlexLM image and license file license.dat in the container according to the instructions; when the container runs, deploy the license management daemon lmgrd and the vendor daemon provided by each vendor in the runtime environment.
[0104] Specifically, the license server FlexLM, the license management daemon lmgrd, the vendor daemon provided by each vendor, and the corresponding license file license.dat are packaged into the container to generate a container image.
[0105] The container may be a Docker container, an LXC / LXD container, or a Firecracker microvirtual machine, etc., and this application does not limit the specific type of container used.
[0106] Taking Docker containers as an example, Dockerfiles can be dynamically generated. After receiving instructions from a web visualization interface or command-line interface, the Docker engine automatically executes each instruction in the Dockerfile to generate a Docker image.
[0107] It should be noted that, in order to improve the flexibility of the FlexLM service and make it easier to adapt to different applications, the startup script in the Dockerfile can use a startup script template to create a startup script to initialize the FlexLM service; the startup script template supports automatic recognition of the Vendor list at startup.
[0108] In some embodiments, the license file license.dat may be embedded in the Docker image, or dynamically injected as a resource from a remote configuration center (such as Consul / Kubernetes ConfigMap). This application does not limit the specific implementation of the license file license.dat.
[0109] In some embodiments, the container image can be further pushed to an image repository, and version tags can be added to the container image to facilitate the management of different versions. Unified storage of container images through an image repository facilitates the distribution and sharing of container images and enables full automation of the process.
[0110] Step 403: During the operation of the container, store lmgrd logs, which include license check logs.
[0111] In some embodiments, the flexible license management method of this application may further include the step of: reading the stored lmgrd logs according to external instructions or at regular intervals.
[0112] In some embodiments, the flexible license management method of this application may further include the step of: connecting to the internal environment of the Docker container according to the instructions of the local command line tool or the built-in WebShell, so as to realize one-click access to the container terminal without the need for operation and maintenance personnel to manually search for the container ID, which facilitates the operation and debugging of the container terminal.
[0113] In some embodiments, the flexible license management method of this application may further include the following steps:
[0114] Parse the license file license.dat and extract the effective and expiration times of each feature, then display them on the web interface.
[0115] Real-time access to license usage checkout and license return checkin status, and display of user usage status for each feature on the web interface;
[0116] Parse the license check log, generate records, write the records to the database, and provide historical query and export functions.
[0117] The flexible license management system and method provided in this application implements automated image building of the FlexLM server and license file license.dat in a Docker container, simplifying deployment operations and improving deployment efficiency; it eliminates environment dependencies, enabling the FlexLM server to run directly on different operating systems and hardware platforms, facilitating cross-platform migration. Furthermore, implementing the FlexLM server in a Docker container makes it easier to maintain, and upgrades and configuration changes can be completed through image updates and container restarts.
[0118] Compared with the prior art, the flexible license management system and method provided in this application have the following advantages:
[0119] (1) Rapid deployment: Deployment can be completed in minutes through image building and container runtime configuration;
[0120] (2) Cross-platform migration: The image can run directly on different operating systems and hardware platforms;
[0121] (3) Easy to maintain: Upgrades and configuration changes can be completed through image updates and container restarts;
[0122] (4) High security: License files are protected through network isolation and encrypted storage;
[0123] (5) Strong visualization: Provides a unified web interface for viewing logs, authorization information and usage status;
[0124] (6) Historical traceability: All checkout / checkin records are stored in a structured manner, which facilitates auditing and analysis.
[0125] This application embodiment also provides a storage medium, which is a computer-readable storage medium storing a computer program thereon, the computer program being executable during runtime. Figure 4 The method shown may include some or all of the steps. The storage medium may include read-only memory (ROM), random access memory (RAM), magnetic disk, or optical disk, etc. The storage medium may also include non-volatile memory or non-transitory memory, etc.
[0126] The above embodiments can be implemented, in whole or in part, by software, hardware, firmware, or any other combination thereof. When implemented using software, the above embodiments can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions or computer programs. When the computer instructions or computer program are loaded or executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data provider to another website, computer, server, or data provider via wired or wireless means.
[0127] It should be understood that in the various embodiments of this application, the order of the above-mentioned processes does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0128] In the several embodiments provided in this application, it should be understood that the disclosed methods, apparatuses, and systems can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for example, the division of units is merely a logical functional division, and other division methods may exist in actual implementation; for example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.
[0129] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0130] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can be physically included separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or in the form of hardware plus software functional units.
[0131] The integrated unit implemented as a software functional unit described above can be stored in a computer-readable storage medium. This software functional unit, stored in a storage medium, includes several instructions to cause a computer device (which may be a personal computer, a server, or a network device, etc.) to execute some steps of the methods described in the various embodiments of this application.
[0132] While this application discloses the above information, it is not limited thereto. Any person skilled in the art can make various modifications and alterations without departing from the spirit and scope of this application; therefore, the scope of protection of this application shall be determined by the scope defined in the claims.
Claims
1. A flexible license management system, characterized in that, The system includes: a user operation module, a control management module, and a storage module; The user operation module is used to provide a web visual interface and / or command line interface to interact with the control and management module; The control and management module is used to automatically build the license server FlexLM image and the license file license.dat in the container according to the instructions of the user operation module; the container runtime deploys the license management daemon lmgrd and the vendor daemon provided by each vendor in the runtime environment; The storage module is used to store lmgrd logs during the operation of the container, the lmgrd logs including license check logs.
2. The flexible license management system according to claim 1, characterized in that, The container includes any of the following: Docker container, LXC / LXD container, Firecracker microvirtual machine.
3. The flexible license management system according to claim 1, characterized in that, The control and management module includes: an image generation module, a vendor identification module, a container management module, and a log management module; The image generation module is used to package the license server FlexLM, the license management daemon lmgrd, the vendor daemon provided by each vendor, and the corresponding license file license.dat into the container according to the instructions of the user operation module, thereby generating a container image; The vendor identification module is used to start the script to parse the license file license.dat and generate startup parameters for the corresponding vendor daemon process; The container management module is used to manage the container, including starting, stopping, and deleting the container. The log management module is used to read the lmgrd logs in the storage module.
4. The flexible license management system according to claim 3, characterized in that, The image generation module is specifically used to dynamically generate a Docker file (Dockerfile) after receiving instructions from the user operation module, and to automatically execute each instruction in the Docker file (Dockerfile) using the Docker engine to generate a Docker image.
5. The flexible license management system according to claim 1, characterized in that, The image generation module is specifically used to generate the container image using Podman or Buildah tools after receiving instructions from the user operation module.
6. The flexible license management system according to claim 1, characterized in that, The image generation module is also used to push the container image to the image repository.
7. The flexible license management system according to claim 3, characterized in that, The log management module is used to read the lmgrd logs in the storage module according to the instructions of the user operation module or at regular intervals.
8. The flexible license management system according to claim 3, characterized in that, The control management module also includes: The terminal access module is used to connect to the Docker container's internal environment based on instructions from local command-line tools or the built-in WebShell.
9. The flexible license management system according to any one of claims 2 to 8, characterized in that, The control and management module also includes any one or more of the following modules: an authorization information module, a query module, and a record management module; The authorization information module is used to parse the license file license.dat, extract the effective time and expiration time of each feature, and display them on the web interface. The query module is used to obtain the license usage checkout and license return checkin status in real time, and to display the user usage status of each feature on the web interface. The record management module is used to parse the license check log into records and write them to the database, and provides historical query and export functions.
10. A flexible license management method, characterized in that, The method includes: Receive instructions sent from a web-based visual interface or command-line interface; The FlexLM image for the license server and the license file license.dat are automatically built in the container according to the instructions; when the container runs, the license management daemon lmgrd and the vendor daemon provided by each vendor are deployed in the runtime environment; During the operation of the container, lmgrd logs are stored, which include license check logs.
11. The flexible license management method according to claim 10, characterized in that, The automatic building of the license server FlexLM image and license file license.dat in the container includes: The license server FlexLM, the license management daemon lmgrd, the vendor daemon provided by each vendor, and the corresponding license file license.dat are packaged into the container to generate a container image.
12. The flexible license management method according to claim 11, characterized in that, The container includes a Docker container; the method further includes: Dynamically generate Dockerfile.
13. The flexible license management method according to claim 11, characterized in that, The method further includes: Push the container image to the image repository.
14. The flexible license management method according to claim 10, characterized in that, The method further includes: The stored lmgrd logs are read according to external commands or at regular intervals.
15. The flexible license management method according to claim 10, characterized in that, The method further includes: Connect to the Docker container environment using instructions from local command-line tools or the built-in WebShell.
16. The flexible license management method according to any one of claims 10 to 15, characterized in that, The method further includes: Parse the license file license.dat, extract the effective and expiration times of each feature, and display them on the web interface; Get real-time information on license usage checkout and license return checkin, and display the usage status of each feature by users on the web interface; The license check log is parsed, a record is generated, the record is written to the database, and historical query and export functions are provided.
17. A computer-readable storage medium having a computer program stored thereon, characterized in that, The computer program is executed by a computer to perform the steps of the flexible license management method according to any one of claims 10 to 16.