A portion of the disclosure of this patent document contains material which is subjected to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
Embodiments of the present invention are generally related to electronic design automation (EDA) software licensing and license managers, and particularly to a system and method for variable time-based licensing in an EDA or other environment.
Electronic Design Automation (EDA) tools are software tools used to design electronic systems including chips and circuits. Traditionally, circuit design firms would purchase EDA tools, like most software tools, outright. This model, in which the EDA tool is viewed as an asset, has been subsequently largely replaced by a time-based license (TBL) model, in which the EDA tool was essentially leased to the design firm. A design firm would purchase licenses from the EDA tool developer and then allocate these licenses for use among the design firms various development teams. As long as a license was available, a user in the firm could access the software as needed and then return the license to a license pool so that other users in the firm could use the software.
However, a firm's design cycle often does not yield uniform usage of EDA tools. Instead, a firm may experience periods where no licenses are used, and other periods where there is demand for additional licenses above the number of licenses purchased. Thus, design firms generally plan to purchase enough licenses to satisfy average demand over the course of a contract period (e.g., a year), to attempt to minimize both the losses associated with underutilized licenses and the inconvenience associated with increased demand during peaks of the design cycle.
It is clear that the TBL model which currently dominates the EDA software market produces inefficiencies for both the customer and the software developer by providing coarse grained controls that cannot be easily adapted to the natural design cycles of design firms.
In accordance with an embodiment, a system and method for variable time-based licensing is provided, which includes a chips cache which stores activated chips and a chips pool which stores inactive chips. In this context “chips” can be considered a currency which can be traded to use software tools for a period of time associated with each chip. The system further includes a chips accounting manager, operable to receive license requests for software tools and to determine whether to grant the license request; and a license manager which tracks active chips and manages activated chip check-in and checkout. When the chips accounting manager receives a license request for a software tool the chips accounting manager determines whether the chips cache includes sufficient chips to access the software tool. If there are insufficient chips, the chips accounting manager checks whether inactive chips in the chip pool can be activated and added to the chips cache. If there are sufficient chips, the chips accounting manager notifies the license manager to check out the sufficient chips from the chips cache and grant access to the software tool.
In accordance with an embodiment, a system and method for variable time-based licensing is provided, which includes a chips cache which stores activated chips and a chips pool which stores inactive chips. In this context “chips” can be considered a currency which can be traded to use software tools for a period of time associated with each chip. The system further includes a chips accounting manager, operable to receive license requests for software tools and to determine whether to grant the license request; and a license manager which tracks active chips and manages activated chip check-in and checkout. When the chips accounting manager receives a license request for a software tool the chips accounting manager determines whether the chips cache includes sufficient chips to access the software tool. If there are insufficient chips, the chips accounting manager checks whether inactive chips in the chip pool can be activated and added to the chips cache. If there are sufficient chips, the chips accounting manager notifies the license manager to check out the sufficient chips from the chips cache and grant access to the software tool.
In accordance with an embodiment, and unlike traditional TBL systems which granted a certain number of licenses that can be used at a given time, a contract for a given contract period (e.g., a year) under a VTBL system can specify a number of chips. Chips can be stored for the contract period until needed by the firm. The chips can then be activated on demand by the firm to access one or more software tools, with each chip expiring after a predetermined time after activation. Each software tool can require a predetermined number of chips to be utilized, depending on factors specific to that software tool such as the complexity of operations that can be performed by the software tool, or the productivity of the software tool.
For example, consider the situation in which firm A wants three of its employees to use Tool 1 to work on a project. Under the TBL system, firm A can check how many licenses it has for Tool 1 and then schedule its employees accordingly (e.g., if they have two licenses they could stagger their employees hours so that only two of the employees are using Tool 1 at any given time). This employment schedule would continue until the project is complete.
However, in accordance with an embodiment, under a VTBL system, firm A can check how many chips Tool 1 requires. For example, if Tool 1 requires one chip per user, and each chip lasts one week, then firm A can allocate three chips so that each of the three employees can work simultaneously. Thus, firm A is not bound by a predetermined number of licenses. When demand increases, they can activate more chips and when demand decreases they can activate fewer chips. Since each chip lasts for a predetermined amount of time (e.g., a week), the amount of time a chip is idle, and therefore wasted, is greatly reduced as compared with TBL.
In accordance with an embodiment, when new chips are consumed, their status changes from new chips to activated chips, and the activated chips are stored in the chips cache pool 302. Once activated, activated chips last for a limited period of time, for example one week. Activated chips, or combinations thereof, can be used to by the customer to use software tools. Once the customer finishes using the software tool, if the activated chips are still active, then they are returned to the chips cache pool and can be used again by the customer to reuse the software tool, or a different software tool.
In accordance with an embodiment, the new chips pool and the chips cache pool can be implemented as a single chip pool which tracks chip consumption and activation, and makes chips available as specified by the contract in view of current consumption.
In accordance with an embodiment, when a customer requests access to a tool (such as tool 1, tool 2, or tool 3) a chips accounting manager 304 checks whether sufficient chips are available in the chips cache pool. If there are sufficient chips, then the chips accounting manager passes the request to the license manager 306 which draws the necessary chips from the chip cache pool and grants access to the requested tool.
If, instead, there are insufficient chips to complete the request, then the chips accounting manager determines whether new chips can be activated from the new chips pool and added to the chips cache pool. If new chips can be activated, then enough new chips are activated to bring the total number of activated chips in the chips cache pool to the minimum required to complete the request. The request is then forwarded to the license manager which draws the necessary chips from the chips cache pool and grants access to the requested tool.
In accordance with an embodiment, if there are insufficient chips in the chips cache pool and new chips cannot be activated, then the request is denied, and an explanatory message is displayed to the user.
In accordance with an embodiment, the chips accounting manager and the license manager, shown in
In accordance with an embodiment, a chips accounting manager, such as that shown in
At step 410, if there are not enough chips in the chips cache pool, then it is determined whether there are enough chips in the new chips pool. If there are not enough new chips, then processing proceeds to step 408 and the request is forwarded to the license manager (LM). The license manager will then deny the request and can inform the customer that there are insufficient chips.
At step 412, if there are sufficient chips in the new chips pool, then it is determined whether any consumption limits are in place. For example, the customer can set a throttle limit, which limits the rate of consumption over a given period of time. If the throttle limit, or another consumption limit has been reached or exceeded, then processing returns to step 408 and the request is forwarded to the license manager. The license manager will then deny the request and can inform the customer that the consumption limit has been reached. The license manager can also provide the user with instructions for changing the consumption limit.
At step 414, if the consumption limit has not been reached, then enough new chips to service the request are activated and stored in the chips cache pool. At step 416, a license event database receives the request to activate new chips, and activates the new chips. Processing then returns to step 408 and the request is forwarded to the license manager to complete. The license event database can also be used to audit chip usage and consumption which can include a number of diagnostic measurements and other performance metrics that can be provided to the customer.
At step 502, the number of chips required is determined based on the complexity function and the cost function. The remaining steps proceed similarly to the corresponding steps described above with respect to
In accordance with an embodiment, the number of concurrent chips shows the number of chips that are currently in use by the customer. This can be configured to show the number of chips currently withdrawn and activated, including both chips currently being used to provide access to a software tool and those in the chips cache pool but currently not in use. The number of chips available shows the number of chips in the new chips pool, i.e., the number of chips specified in the contract less the chips which have been activated and/or consumed. The number of weeks to runout estimates how long the new chips will last based on current consumption. The estimate can use an average of consumption over a particular period of time such as the average over the time that the current contract has been in place or the average over the previous month or based on instantaneous usage. Additionally, multiple estimates based on different averages can be provided to the customer in the GUI.
In accordance with an embodiment, the GUI also provides the customer with usage controls that can be used to regulate the customer's chip usage, such as the slider controls shown in
In accordance with an embodiment, additional information can be provided to the user through the GUI, such as chips overdraft and chips carry-forward. Chips overdraft can enable the customer to add additional new chips, above the contract-specified number, in accordance with the contract. For example, a customer who buys M chips can be provided the option of purchasing up to an additional N% of M in overdraft chips. Similarly, chips carry-forward can show the customer how many chips of the originally purchased chips can be carried over to a new contract period, if not consumed during the current contract period.
It will be evident that the above example GUI is provided for purposes of illustration and that in accordance with other embodiments, other GUIs can be used and that the GUI is not restricted to the precise examples shown and described above.
If a second request is received which requires Y chips, and the X chips are in use, then an additional Y chips can be activated and added to the chips cache pool. This brings the total chips stored in the chips cache pool to X+Y 804. When the X chips expire, they are deactivated and removed from the chips cache pool, leaving only the Y chips behind 806. The remaining Y chips will remain in the chips cache pool again until they are either reused or they expire.
Although the present invention has been described above with particularity to the field of electronic design automation (EDA) software and EDA licensing and license managers, it can equally be applied to any type of software and software licensing environment.
The present invention can be conveniently implemented using one or more conventional general purpose or specialized digital computer, computing device, machine, or microprocessor, including one or more processors, memory and/or computer readable storage media programmed according to the teachings of the present disclosure. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art.
In some embodiments, the present invention includes a computer program product which is a computer readable storage medium (media) having instructions stored thereon/in which can be used to program a computer to perform any of the processes of the present invention. The computer readable storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.
The foregoing description of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations will be apparent to the practitioner skilled in the art. Particularly, other GUIs and metrics for analyzing cost, complexity and usage statistics can be used. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention for various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalence.
This application claims the benefit of priority to U.S. Provisional Patent application titled “SYSTEM AND METHOD FOR VAIABLE TIME-BASED LICENSING”, Application No. 61/346,346, filed May 19, 2011, and incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61346346 | May 2010 | US |