License management method and management system, electronic equipment and storage medium

By periodically collecting and analyzing EDA software license information, setting warning and error level thresholds, and blocking high-risk users, the problem of resource waste in license management is solved, the efficiency of license utilization is improved, and the cost is reduced.

CN120974458APending Publication Date: 2025-11-18JOULWATT TECH INC LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411776067.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-05
Publication Date
2025-11-18

AI Technical Summary

Technical Problem

In existing technologies, EDA software license management lacks effective scheduling capabilities, resulting in inefficient use of license resources, abuse and waste, and increased operating costs.

Method used

By periodically collecting license information, determining usage levels, issuing notifications at warning levels, and blocking users at error levels, the system utilizes the lmstat command and scripts for information extraction and management, and sets warning and error level thresholds to optimize license usage.

Benefits of technology

It has achieved effective license management, reduced abuse, improved license utilization efficiency, reduced usage costs, and optimized resource allocation through charts and cost calculations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120974458A_ABST
    Figure CN120974458A_ABST
Patent Text Reader

Abstract

The invention provides a license management method and management system, electronic equipment and a storage medium. The license management method comprises the following steps: periodically collecting license information; judging the use level of each license function according to the collected license information; when it is determined that the use level of the license function is a warning level, warning notification is performed; and when the use level of the license function is judged to be an error level, N users are prevented from using the unoccupied license function, and the N users are N users who occupy the maximum license function. Through the scheme, the abuse of the licenses can be reduced, the effective utilization efficiency of the licenses can be improved, and the use cost of the licenses can be reduced, so that the effective management of the licenses can be realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, specifically to a license management method, management system, electronic device, and storage medium. Background Technology

[0002] In the field of EDA (Electronic Design Automation), license management for software tools is crucial. EDA software typically consists of multiple modules, each with potentially different license requirements. A license management system helps companies effectively manage their software licenses, ensuring compliance and maximizing the use of license resources.

[0003] In recent years, with the large-scale development of the integrated circuit design industry, the demand for EDA (Electronic Design Automation) software has been continuously increasing. EDA software is typically monopolized by a few large foreign manufacturers, and licenses are very expensive. A license is a permit used to define and restrict the rights of software users. EDA software generally uses floating licenses, which means that licenses are shared within the same network, with a limited number of licenses shared by a large number of users on a first-come, first-served basis. The advantages of floating licenses are resource sharing and flexibility in license usage. However, when faced with the high price of genuine licenses, most companies lack a comprehensive license management plan and awareness of license optimization. This leads to users competing for license resources, resulting in inefficient license utilization.

[0004] Secondly, because the software for basic license management lacks the ability to schedule licenses, the invalid occupation time of licenses is long, which cannot be dynamically adjusted, resulting in a waste of license quantity and increased company operating costs; and it is impossible to accurately predict and control licenses. Summary of the Invention

[0005] To address the aforementioned technical problems, this application provides a license management method, management system, electronic device, and storage medium, aiming to achieve effective license management, reduce license abuse, increase the efficiency of license utilization, and reduce the cost of license use.

[0006] According to a first aspect of this application, a license management method is provided, applied in EDA software, the EDA software having at least one license function, the license management method comprising:

[0007] Periodically collect license information;

[0008] The usage level of each license function is determined based on the collected license information;

[0009] A warning notification will be sent when the usage level of the licensed function is determined to be at the warning level.

[0010] When the usage level of a license function is determined to be incorrect, N users are blocked from using the unused license function. The N users are the N users who occupy the most license functions, and N is an integer greater than or equal to 1.

[0011] Optionally, information for each license may be collected periodically, including:

[0012] The lmstat command is used to periodically extract information from the license file corresponding to each license function to obtain the license information.

[0013] The license information includes: the name of each license function, the total number of each license function, the usage of each license function, the user of each license function, the activation time, and...

[0014] At least one of the version, expiry date, and provider.

[0015] Optionally, determining the usage level of each license function based on the collected license information includes:

[0016] The usage data and total amount of each license function are obtained from the collected license information, and the usage data and total amount are calculated to determine the usage level of each license function.

[0017] Optionally, calculating the acquired usage data and the total amount includes: calculating the occupancy rate, single-user usage, and single-user utilization rate of each license function, thereby determining the usage level of each license function based on the occupancy rate, single-user usage, and single-user utilization rate of each license function.

[0018] The occupancy rate of each license function is equal to the usage of that license function divided by the total number of license functions.

[0019] The per-user usage for each license feature is equal to the number of times a single user uses the license feature;

[0020] The individual usage rate for each licensed feature is equal to the individual usage of that licensed feature divided by the total number of licensed features.

[0021] Optionally, if the occupancy rate of the license function is less than the first occupancy rate threshold, the single-person usage rate is less than the first single-person usage rate threshold, and the single-person usage amount is less than the first single-person usage amount threshold, it is determined that the usage level of the license function has not reached the warning level.

[0022] If the occupancy rate of the license function is greater than the first occupancy rate threshold and less than the second occupancy rate threshold, the single-person usage rate is greater than the first single-person usage rate threshold and less than the second single-person usage rate threshold, and the single-person usage amount is greater than the first single-person usage amount threshold and less than the second single-person usage amount threshold, the usage level of the license function is determined to be the warning level.

[0023] If the occupancy rate of the license function is greater than the second occupancy rate threshold, the single-person usage rate is greater than the second single-person usage rate threshold, and the single-person usage amount is greater than the second single-person usage amount threshold, the usage level of the license function is determined to be an error level.

[0024] Optionally, the warning notification may be sent to: the license administrator and / or the N users who have used the most functions of the license;

[0025] The warning notification includes: the occupancy rate of the corresponding license function, the single-user usage rate, and the single-user usage amount.

[0026] Optionally, blocking N users from using the unused functions of this license includes:

[0027] Read the collected license information to obtain the execution server names for the N users to perform the license functions;

[0028] On the execution server, the process ID of the command that executes the license function between the first moment and the second moment is blocked. The first moment is the moment when license information is collected this time, and the second moment is the moment when license information will be collected next time.

[0029] Optionally, after blocking N users from using the unused functions of this license, the following also applies:

[0030] The first information is notified to the license administrator, which includes: the name of the license function to be blocked, the total number of license functions to be blocked, the current usage of the license function to be blocked, the user being blocked, the number of times the user being blocked uses the license function, and the time when the blocking was successful.

[0031] The second information is notified to the blocked user, which includes: the name of the licensed function being blocked, the total number of licensed functions being blocked, the number of times the blocked user used the licensed function, and the user's use of the licensed function exceeding the usage limit.

[0032] Optionally, after a predetermined time has elapsed since the N users released the licensed functions they have used in the past, an additional license information collection will be performed.

[0033] Optionally, it also includes: saving the utilization rate, single-user usage rate, single-user usage amount, and expiration time of each license function to a log file; and

[0034] Based on the contents of the log file, a statistical chart of license function usage over a certain period is generated. The statistical chart of license function usage can be displayed in a graphical interface. The statistical chart of license function usage includes at least a statistical chart of license function usage rate during the period and a statistical chart of total license function usage during the period.

[0035] According to a second aspect of this application, a license management system is provided, comprising:

[0036] The information collection unit is used to periodically collect license information;

[0037] The information processing unit is used to determine the usage level of each license function based on the collected license information;

[0038] The management unit is used to issue a warning notification when the usage level of a licensed function is determined to be a warning level, and to block N users from using the unused licensed function when the usage level of a licensed function is determined to be an error level. The N users are the N users who occupy the most licensed functions, and N is an integer greater than or equal to 1.

[0039] According to a third aspect of this application, an electronic device is provided, comprising: a processor, a memory, and a program stored in the memory and executable on the processor, wherein the program, when executed by the processor, implements the steps of the license management method as described in any embodiment of this application.

[0040] According to a fourth aspect of this application, a storage medium is provided that stores a computer program or instructions, which, when executed by a processor, implement the steps of the license management method as described in any embodiment of this application.

[0041] The beneficial effects of this application include at least the following:

[0042] In this embodiment of the application, license management includes periodically collecting license information, determining the usage level of each license function based on the collected license information, that is, classifying the usage of each license function into different usage levels, and issuing a warning notification when a warning level is reached. This is equivalent to providing advance notice before each license function reaches its usage limit. When an error level is reached, N users (the N users who occupy the most license functions) are blocked from using the unoccupied license functions, which helps to release the number of usable license functions. By setting warning levels and error levels and periodically monitoring them, license abuse can be reduced, the effective utilization efficiency of licenses can be increased, and the cost of license use can be reduced, thereby achieving effective license management.

[0043] It should be noted that the above general description and the following detailed description are merely exemplary and explanatory, and do not limit this application. Attached Figure Description

[0044] Figure 1 This illustration shows a schematic diagram of one embodiment of the license management method provided according to the embodiments of this application;

[0045] Figure 2 A schematic diagram illustrating the implementation process of license management according to an embodiment of this application is shown;

[0046] Figure 3 A schematic diagram illustrating one embodiment of a license function usage statistics chart provided according to an embodiment of this application;

[0047] Figure 4 A schematic diagram illustrating one embodiment of a statistical chart showing the overall usage of license functions according to an embodiment of this application;

[0048] Figure 5 A schematic diagram illustrating an embodiment of the license management system provided according to an embodiment of this application is shown;

[0049] Figure 6 A schematic diagram illustrating an embodiment of an electronic device provided according to an embodiment of this application is shown. Detailed Implementation

[0050] To facilitate understanding of this application, a more complete description will be provided below with reference to the accompanying drawings. Preferred embodiments of this application are shown in the drawings. However, this application may be implemented in various forms and is not limited to the embodiments described herein. Rather, these embodiments are provided to provide a thorough and complete understanding of the disclosure of this application.

[0051] References to "one embodiment" or "some embodiments" as described in this specification mean that one or more embodiments of this application include a specific feature, structure, or characteristic described in connection with that embodiment. Therefore, the phrases "in one embodiment," "in some embodiments," "in other embodiments," "in still other embodiments," etc., appearing in different parts of this specification do not necessarily refer to the same embodiment, but rather mean "one or more, but not all, embodiments," unless otherwise specifically emphasized. The terms "comprising," "including," "having," and variations thereof mean "including but not limited to," unless otherwise specifically emphasized.

[0052] In the description of this application, words such as "exemplary" or "for example" are used to indicate that they are examples, illustrations, or descriptions. Any embodiment described as "exemplary" or "for example" in this application should not be construed as being more preferred or advantageous than other embodiments. The term "and / or" in this document describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, and B alone. "Multiple" refers to two or more. Furthermore, to facilitate a clear description of the technical solutions of the embodiments of this application, the terms "first," "second," etc., are used to distinguish identical or similar items with substantially the same function and effect. Those skilled in the art will understand that the terms "first," "second," etc., do not limit the quantity or execution order, and that "first," "second," etc., do not necessarily imply differences.

[0053] In addition, the same reference numerals in the figures indicate the same or similar structures, so repeated descriptions of them will be omitted. That is, the various parts in this specification are described in a combination of parallel and progressive manner. Each part focuses on the differences from other parts, and the same or similar parts between the various parts can be referred to each other.

[0054] Flexlm, invented by Flexera, is a software encryption method called Flexible License Manager. It's widely used in the industry for license management, such as enabling or disabling licenses. However, once a license is enabled, Flexlm cannot effectively control it. In EDA tools, a single function is called a feature, and each feature has a corresponding license. Flexlm can view the license information for a feature, and license administrators can only notify relevant personnel to stop or reduce usage by viewing the information for different features, thus achieving effective license quantity management. However, manual management by administrators is inefficient and no longer meets current usage needs.

[0055] This application discloses a novel license management method, which mainly uses the lmstat command to extract license information, then uses a script to classify and summarize the information, calculate the usage rate and each user's license usage, plots it as a curve, and returns information according to a pre-set usage level. After that, the user is notified or the user's usage behavior is forcibly stopped, thereby achieving the purpose of effective license management.

[0056] Figure 1 This illustration shows a schematic diagram of an embodiment of a license management method provided in this application. The license management method utilizes EDA software that has at least one license function (feature), such as... Figure 1 As shown, this license management method includes performing the following steps:

[0057] In step 110, license information is collected periodically.

[0058] A license is a software developed to better manage EDA software and ensure that users use the purchased EDA software on designated machines. The license log file contains usage information for the EDA software, which may include several or more of the following: the hostname and username of the currently used license, the start time, end time, and cumulative usage time of the currently used license, the expiration time of the currently used license, the number of licenses currently used by the user corresponding to the username, the manufacturer name of the EDA software corresponding to the currently used license, the function name of the EDA software corresponding to the currently used license, the product number of the EDA software corresponding to the currently used license, the number of processes that can run simultaneously, the log extraction time, and the user's usage category (e.g., login or logout).

[0059] In this step, specifically, the sampling information processing script periodically extracts information from the license file corresponding to each license function to obtain license information (i.e., license information). The license information includes: the name of each license function, the total number of each license function, the usage of each license function, the user of each license function, the activation time, and at least one of the following: version, expiration period, and provider.

[0060] Furthermore, using the management command lmstat of Flexlm software (a license management software), the command lmstat-ic port@lic_server can be used to obtain the name of each license function, the total number of license functions, the version, the expiration time, and the vendor name from the license file corresponding to each license function. The command lmstat-af feature_name can be used to obtain the specific usage information of the corresponding license function from the license file corresponding to each license function, such as the usage amount of each license function, the user of each license function, and the activation time. These commands can be executed as periodic tasks.

[0061] In step 120, the usage level of each license function is determined based on the collected license information.

[0062] In this step, the license information can be processed through the sampling information processing script. The extracted license information can be classified and summarized. For example, the names of each license function can be arranged, and the version number, expiration time, provider, total number of license functions, user (i.e., user) of each license function, the number of times each user uses the license, and the activation time can be classified and summarized and recorded after the corresponding license function name.

[0063] Furthermore, it also includes saving the categorized and summarized license information to a database or log file for easy retrieval later.

[0064] In some embodiments, determining the usage level of each license function based on the collected license information further includes: obtaining usage data and total usage of each license function from the collected license information, and calculating the obtained usage data and total usage to determine the usage level of each license function. Optionally, calculating the obtained usage data and total usage includes: calculating the occupancy rate, single-user usage, and single-user usage rate of each license function, thereby determining the usage level of each license function based on the occupancy rate, single-user usage, and single-user usage rate of each license function. Wherein, the occupancy rate of each license function is equal to the usage of that license function divided by the total usage of that license function, the single-user usage of each license function is equal to the number of times a single user uses that license function, and the single-user usage rate of each license function is equal to the single-user usage of that license function divided by the total usage of that license function.

[0065] For example, taking the usage of the license function AETHER_TCL as an example, by reading the output license information summary file, the following information is obtained: The total number of licenses for the license function AETHER_TCL is 205, and the number of licenses used is 165. The users using it include user ag, and the individual usage of each user is 74 (user a), 50 (user b), 5 (user c), 8 (user d), 15 (user e), and 2 (user ag). If f) and g) there are 11 users (users g), then the utilization rate of the license function AETHER_TCL is 156 / 205=80.4%. The individual usage of each user is 74 / 205=36.1% (user a), 50 / 205=24.4% (user b), 5 / 205=2.4% (user c), 8 / 205=3.9% (user d), 15 / 205=7.3% (user e), 2 / 205=1% (user f) and 11 / 205=5.4% (user g).

[0066] Furthermore, when determining the usage level of each license function based on its occupancy rate, single-user usage, and single-user usage rate, the occupancy rate, single-user usage, and single-user usage rate of each license function can be compared with preset level thresholds to determine the usage level of each license function.

[0067] In this embodiment, the preset level thresholds include preset warning thresholds and preset error thresholds. Specifically, the warning thresholds include a first occupancy rate threshold, a first single-person usage rate threshold, and a first single-person usage amount threshold. The error thresholds specifically include a second occupancy rate threshold, a second single-person usage rate threshold, and a second single-person usage amount threshold. The second occupancy rate threshold is greater than the first occupancy rate threshold and is less than 100%. The second single-person usage rate threshold is greater than the first single-person usage rate threshold, and the second single-person usage amount threshold is greater than the first single-person usage amount threshold.

[0068] By setting warning and error thresholds, the usage levels of each license function can be divided into: normal level (not reaching the warning level), warning level, and error level.

[0069] If the occupancy rate of the license function is less than the first occupancy rate threshold, the single-person usage rate is less than the first single-person usage rate threshold, and the single-person usage amount is less than the first single-person usage amount threshold, it is determined that the usage level of the license function has not reached the warning level.

[0070] If the occupancy rate of the license function is greater than the first occupancy rate threshold and less than the second occupancy rate threshold, the single-person usage rate is greater than the first single-person usage rate threshold and less than the second single-person usage rate threshold, and the single-person usage amount is greater than the first single-person usage amount threshold and less than the second single-person usage amount threshold, the usage level of the license function is determined to be the warning level.

[0071] If the occupancy rate of the license function is greater than the second occupancy rate threshold, the single-person usage rate is greater than the second single-person usage rate threshold, and the single-person usage volume is greater than the second single-person usage volume threshold, the usage level of the license function is determined to be an error level.

[0072] For example, taking the license function AETHER_TCL as an example, assuming that the preset warning thresholds include a first occupancy rate threshold of 50%, a first single-user usage rate threshold of 10%, and a first single-user usage threshold of 40, and error thresholds include a second occupancy rate threshold of 90%, a second single-user usage rate threshold of 30%, and a second single-user usage threshold of 100, when determining the usage level of the license function AETHER_TCL, the sum_license.pl script can be used to compare the relevant license information of the license function AETHER_TCL with the preset thresholds. Through comparison, if it is found that the occupancy rate of the license function AETHER_TCL is greater than 50% but less than 90%, and among the users, user a and user b have a single-user usage exceeding 40, and the single-user usage rate of user a and user b exceeds 10%, then the usage level of the license function AETHER_TCL can be determined as a warning level.

[0073] It should be noted that, depending on the total number of functions in each license, or the different numerical ranges of the total number of functions in each license, different level thresholds can be set for each license function to achieve precise screening of each license function.

[0074] Furthermore, for license functions whose usage level does not reach the warning level, no notification action is required; only the relevant information of the license function (including the occupancy rate, single-user usage rate, single-user usage amount, and expiration time) is saved to the log file. For license functions with a usage level of warning, in addition to saving the relevant information of the license function to the log file, step 130 is further executed. For license functions with a usage level of error, in addition to saving the relevant information of the license function to the log file, step 140 is further executed. After executing step 130 or step 140, step 110 is re-executed according to the information collection time setting to start the next information collection and processing.

[0075] In step 130, a warning notification is issued when the usage level of the licensed function is determined to be a warning level.

[0076] In this step, the warning notifications will be sent to: the license administrator and / or the N users who use the most functions of the license, where N is an integer greater than or equal to 1. The warning notifications will include: the utilization rate of the corresponding license function, the usage rate per user, and the amount of data used per user.

[0077] Alternatively, notifications can be sent via the mail service using the script notice_license.pl.

[0078] It is understandable that by setting warning levels and issuing warning notifications when the usage level of a licensed feature is detected to reach the warning level, the license administrator and the N users who occupy the most licensed features can be informed of the current license usage status of the feature before the usage limit is reached (i.e., the usage reaches the total limit), so as to make usage adjustments in advance and avoid the occurrence of a situation where no license is available.

[0079] In step 140, when the usage level of the license function is determined to be an error level, N users are blocked from using the unused license function. The N users are the N users who occupy the most license functions, and N is an integer greater than or equal to 1.

[0080] In this step, the use of the unused license function by N users is blocked. That is, the use of the license function by the N users who have the most users who have used the license function is blocked. Specifically, this includes: reading the collected license information and obtaining the execution server name of the N users who are executing the license function; blocking the process number of the command that is executing the license function on the execution server when the activation time is between the first moment and the second moment, where the first moment is the moment when the license information is collected this time and the second moment is the moment when the license information is collected next time.

[0081] In practice, the script `kill_license.pl` can be used to read the usernames of the N users who use the license function most frequently, and further read the categorized and summarized license information (which includes information about the execution server for each user to enable each license function). The execution server names for the N users executing the license function can be obtained. Then, the usage of the license function by the N users can be monitored. If the N users use an unused license function between the current time and the next time the license information is collected, the corresponding server can be accessed via SSH. The process ID (PID) of the command used by the N users when using the unused license function can be obtained on the corresponding server, and then blocked (kill PID).

[0082] For example, during the collection and processing of license information, such as at time t1, it is detected that the usage level of a certain license feature (feature1) has reached an error level. The script kill_license.pl reads the N users who use the license feature feature1 the most, namely user a1, user b1, and user c1. The execution server names when user a1, user b1, and user c1 use the license feature feature1 are W1, W2, and W3, respectively. Then, on execution servers W1, W2, and W3, it can be checked whether user a1, user b1, and user c1 used the unoccupied license feature feature1 between time t1 and time t2. If so, the newly used license feature feature1 is blocked. For example, if a newly used license feature (feature 1) is detected on execution server W1, and its activation time is t3 (t3 falls between t1 and t2), then the command process ID of the newly used license feature (feature 1) will be blocked. However, if another newly used license feature (such as feature 2) is detected on execution server W1, even if its activation time is t4 (t4 falls between t1 and t2), the command process ID of the newly used license feature (feature 2) will not be blocked. Here, t2 is the time of the next license information collection.

[0083] In some preferred embodiments, if the N users release the previously used license function during a certain data collection cycle, an additional license information collection can be performed after a predetermined time following the release of the previously used license function by the N users, to update the aforementioned time t2 and reduce the usage waiting time for the N users. Optionally, the predetermined time can be 0 or other time values ​​greater than 0.

[0084] Furthermore, after blocking N users from using the unused licensed functions, the process also includes: notifying the license administrator of the first piece of information and notifying the blocked users of the second piece of information. The first piece of information includes: the name of the blocked licensed function, the total number of blocked licensed functions, the current usage of the blocked licensed function, the blocked users, the number of times the blocked users used the licensed function, and the time of successful blocking. The second piece of information includes: the name of the blocked licensed function, the total number of blocked licensed functions, the number of times the blocked users used the licensed function, and that the user's use of the licensed function exceeded the usage limit, suggesting the release of the licensed function's historical usage.

[0085] Optionally, notification of the completion of the blocking can be accomplished using the script notice_license.pl.

[0086] It is understandable that by setting error levels and blocking new license usage by the N most frequent users when the usage level of the licensed function is detected to have reached an error level, and by sending a blocking notification after the blocking is completed, the N most frequent users can be prompted to release the feature licenses they have been using, so as to reserve and free up a number of valid feature licenses for new users who need to use the licensed function, thus effectively reducing license abuse.

[0087] Optionally, the scripts in the various embodiments of this application may be scripts built based on languages ​​such as Perl, Python, and Shell, and this application does not impose strict limitations on them. Furthermore, the scripts in the various embodiments of this application may be pre-written, connected, and mounted on the underlying layer of the corresponding server. During use, by making appropriate invocations, the license information for all license functions can be monitored and managed on a regular basis.

[0088] In some preferred embodiments, the license management method further includes: generating a statistical chart of license function usage over a certain period based on content stored in log files or a database. This statistical chart can be displayed in a graphical interface and includes at least a statistical chart of the license function usage rate and a statistical chart of the total license function usage over the period.

[0089] In this embodiment, all license-related information (including the utilization rate of each license function, the usage rate per user, and the amount of data used per user) is summarized in a database and / or log file. Therefore, matploylib can be used to draw corresponding statistical charts (such as curves) based on the content stored in the log file or database. Figure 3 The recent feature license usage curve shown, and Figure 4 The curve showing the overall usage of recent feature licenses allows for easy visualization and review of license usage in a graphical user interface (GUI).

[0090] Furthermore, the license management method also includes: using statistical charts to calculate project costs and / or the actual cost of purchasing licenses based on the drawn license functions.

[0091] Every user uses a license when carrying out a project. This embodiment can calculate project costs based on usage rate and volume, or calculate the average usage rate and volume of feature licenses, and then calculate the true cost of purchasing licenses. Because licenses are expensive, by creating statistical charts and performing cost calculations, unnecessary licenses can be eliminated, reducing the company's total cost of using EDA tools.

[0092] Figure 2 This application illustrates a schematic diagram of the implementation process for license management provided in an embodiment, which specifically includes:

[0093] In step 210, the administrator sets the warning level threshold and the error level threshold.

[0094] License administrators can set the same or different warning level thresholds and error level thresholds for each license function based on the total number of functions available for each license. For details on warning level thresholds and error level thresholds, please refer to [link to relevant documentation]. Figure 1 The relevant descriptions of the embodiments are for understanding.

[0095] It should be noted that although this embodiment only discloses the scheme of setting warning level threshold and error level threshold, based on the same inventive principle, the scheme of this application can also be extended to set more level thresholds, so as to divide the use of license functions into more levels according to more level thresholds, and to provide different degrees of notification and blocking processing for each level of license functions.

[0096] In step 220, the usage status of each license function is traversed, and the usage level of each license is determined.

[0097] For details on the comprehensive collection and categorization of usage data for each license function in this step, please refer to [link / reference needed]. Figure 1 The relevant descriptions of the embodiments are provided for understanding. Specifically, the scheme of this application embodiment can traverse all licensed features from all vendors and statistically analyze the license information for each licensed feature.

[0098] Furthermore, based on the classification and statistical results of license information for each license function, the specific details for determining the usage level of each license can be found in the [reference needed]. Figure 1 The relevant descriptions of the embodiments are for understanding.

[0099] In this embodiment, when it is determined that the usage level of a certain license function has not reached the warning level, step 230 is further executed to save the license information to a database file, such as a db file or a log file.

[0100] When the usage level of a certain licensed function is determined to have reached the warning level, step 240 is further executed to issue a warning notification. The specific content of the warning notification can be found in the section on... Figure 1 The relevant description of the embodiment is understood. Further, after step 240 is completed, step 230 is then executed.

[0101] When the usage level of a certain license function is determined to have reached an error level, step 250 is further executed to block the use of new licenses. For details on blocking the use of new licenses, please refer to [the relevant documentation / section / etc.]. Figure 1 The relevant description of the embodiment is understood. Further, after step 250 is completed, step 240 is then executed.

[0102] In step 260, the curve is plotted, the administrator reviews it, and the cost is calculated.

[0103] For details regarding curve plotting and cost calculation in this step, please refer to [link / reference needed]. Figure 1 The relevant descriptions of the embodiments are for understanding.

[0104] In summary, the license management schemes disclosed in the embodiments of this application periodically collect license information and determine the usage level of each license function based on the collected information. This involves classifying the usage of each license function into different usage levels, and then notifying users or blocking some users from using new licenses based on these levels. For example, issuing a warning when a warning level is reached is equivalent to providing advance notice before each license function reaches its usage limit; blocking N users (the N users who occupy the most license functions) from using the unoccupied license functions when an error level is reached helps release the available number of license functions. By setting warning and error levels and periodically monitoring them, license abuse can be reduced, license utilization efficiency can be increased, and license usage costs can be reduced, thereby achieving effective license management and increasing the effective utilization rate of licenses.

[0105] Furthermore, by creating statistical charts of license usage, it is easy to calculate the true cost of licenses and project costs, thereby eliminating unnecessary licenses and reducing the company's total cost of using EDA tools.

[0106] Furthermore, embodiments of this application also provide a license management system, such as... Figure 5 As shown, the license management system includes: an information acquisition unit 510, an information processing unit 520, and a management unit 530.

[0107] The information collection unit 510 is used to periodically collect license information.

[0108] The information processing unit 520 is used to determine the usage level of each license function based on the collected license information.

[0109] The management unit 530 is used to issue a warning notification when the usage level of the licensed function is determined to be a warning level, and to block N users from using the unused licensed function when the usage level of the licensed function is determined to be an error level. The N users are the N users who occupy the most licensed functions, and N is an integer greater than or equal to 1.

[0110] In practical implementation, each module / unit in the license management system can be implemented as an independent entity, or it can be arbitrarily combined to be implemented as the same or several entities. Furthermore, the specific implementation and technical effects of each module / unit in the license management system described above can be found in the aforementioned license management method embodiments, and will not be repeated here.

[0111] This invention also provides an electronic device, such as... Figure 6 As shown, it includes a memory 610 and a processor 620. The memory 610 stores a program that can run on the processor 620. When the program is executed by the processor 620, it can implement the various processes of the license management methods shown in the foregoing embodiments and achieve the same technical effect. To avoid repetition, it will not be described again here.

[0112] Those skilled in the art will understand that all or part of the steps in the various methods of the above embodiments can be implemented by instructions, or by instructions controlling related hardware. These instructions can be stored in a computer-readable storage medium and loaded and executed by a processor. Therefore, embodiments of the present invention also provide a storage medium storing a computer program or instructions. When executed by a processor, the computer program or instructions can implement the various processes of the aforementioned embodiments of the license management method. The storage medium can be, for example, a USB flash drive, a portable hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, or any other medium capable of storing program code.

[0113] Since the instructions stored in the storage medium can execute the steps of the license management method provided in the embodiments of the present invention, the beneficial effects of the license management method provided in the embodiments of the present invention can be achieved, as detailed in the preceding embodiments, and will not be repeated here. The specific implementation of each of the above operations can be found in the preceding embodiments, and will not be repeated here.

[0114] Finally, it should be noted that the above embodiments are merely examples for clearly illustrating this application and are not intended to limit the implementation. Those skilled in the art can make other variations or modifications based on the above description. It is neither necessary nor possible to exhaustively list all possible implementations here. However, obvious variations or modifications derived therefrom are still within the scope of protection of this application.

Claims

1. A license management method applied in EDA software, wherein the EDA software has at least one license function, the license management method comprising: Periodically collect license information; The usage level of each license function is determined based on the collected license information; A warning notification will be sent when the usage level of the licensed function is determined to be at the warning level. When the usage level of a license function is determined to be incorrect, N users are blocked from using the unused license function. The N users are the N users who occupy the most license functions, and N is an integer greater than or equal to 1.

2. The license management method according to claim 1, wherein, Information for each license is collected periodically, including: The lmstat command is used to periodically extract information from the license file corresponding to each license function to obtain the license information. The license information includes: the name of each license function, the total number of each license function, the usage of each license function, the user of each license function, the activation time, and... At least one of the version, expiry date, and provider.

3. The license management method according to claim 1 or 2, wherein, The usage level of each license function is determined based on the collected license information, including: The usage data and total amount of each license function are obtained from the collected license information, and the usage data and total amount are calculated to determine the usage level of each license function.

4. The license management method according to claim 3, wherein, The calculations for the acquired usage data and total amount include: calculating the occupancy rate, single-user usage, and single-user utilization rate of each license function, and then determining the usage level of each license function based on the occupancy rate, single-user usage, and single-user utilization rate of each license function. The occupancy rate of each license function is equal to the usage of that license function divided by the total number of license functions. The per-user usage for each license feature is equal to the number of times a single user uses the license feature; The individual usage rate for each licensed feature is equal to the individual usage of that licensed feature divided by the total number of licensed features.

5. The license management method according to claim 4, wherein, If the occupancy rate of the license function is less than the first occupancy rate threshold, the single-person usage rate is less than the first single-person usage rate threshold, and the single-person usage amount is less than the first single-person usage amount threshold, it is determined that the usage level of the license function has not reached the warning level. If the occupancy rate of the license function is greater than the first occupancy rate threshold and less than the second occupancy rate threshold, the single-person usage rate is greater than the first single-person usage rate threshold and less than the second single-person usage rate threshold, and the single-person usage amount is greater than the first single-person usage amount threshold and less than the second single-person usage amount threshold, the usage level of the license function is determined to be the warning level. If the occupancy rate of the license function is greater than the second occupancy rate threshold, the single-person usage rate is greater than the second single-person usage rate threshold, and the single-person usage amount is greater than the second single-person usage amount threshold, the usage level of the license function is determined to be an error level.

6. The license management method according to claim 4, wherein, The warning notification is sent to: the license administrator and / or the N users who use the most functions of the license; The warning notification includes: the occupancy rate of the corresponding license function, the single-user usage rate, and the single-user usage amount.

7. The license management method according to claim 1, wherein, Blocking N users from using the unused functions of this license includes: Read the collected license information to obtain the execution server names for the N users to perform the license functions; On the execution server, the process ID of the command that executes the license function between the first moment and the second moment is blocked. The first moment is the moment when license information is collected this time, and the second moment is the moment when license information will be collected next time.

8. The license management method according to claim 1 or 7, wherein, After blocking N users from using the unused functions of this license, the following also applies: The first information is notified to the license administrator, which includes: the name of the license function to be blocked, the total number of license functions to be blocked, the current usage of the license function to be blocked, the user being blocked, the number of times the user being blocked uses the license function, and the time when the blocking was successful. The second information is notified to the blocked user, which includes: the name of the licensed function being blocked, the total number of licensed functions being blocked, the number of times the blocked user used the licensed function, and the user's use of the licensed function exceeding the usage limit.

9. The license management method according to claim 8, wherein, An additional license information collection will be conducted after the predetermined time when the N users release the license functions they have used in the past.

10. The license management method according to claim 4, wherein, Also includes: Save the usage rate, single-user usage rate, single-user usage amount, and expiration time of each license function to a log file; as well as Based on the contents of the log file, a statistical chart of license function usage over a certain period is generated. The statistical chart of license function usage can be displayed in a graphical interface. The statistical chart of license function usage includes at least a statistical chart of license function usage rate during the period and a statistical chart of total license function usage during the period.

11. A license management system, comprising: The information collection unit is used to periodically collect license information; The information processing unit is used to determine the usage level of each license function based on the collected license information; The management unit is used to issue a warning notification when the usage level of a licensed function is determined to be a warning level, and to block N users from using the unused licensed function when the usage level of a licensed function is determined to be an error level. The N users are the N users who occupy the most licensed functions, and N is an integer greater than or equal to 1.

12. An electronic device, comprising: A processor, a memory, and a program stored in the memory and executable on the processor, wherein the program, when executed by the processor, implements the steps of the method as claimed in any one of claims 1 to 10.

13. A storage medium storing a computer program or instructions that, when executed by a processor, implement the steps of the method as described in any one of claims 1 to 10.