...
Feature | # of Licenses Consumed per Checkout | # of Checkout Requests | Total Licenses Consumed |
---|---|---|---|
MyDraw | 5 | 2 | 10 |
MyWrite | 2 | 3 | 6 |
MySpreadsheet | 1 | 3 | 3 |
Totals |
| 8 | 19 |
Number of licenses remaining |
|
| 1 |
Example Scenario 2
Feature | # of Licenses Consumed per Checkout | # of Checkout Requests | Licenses Consumed |
---|---|---|---|
MyDraw | 5 | 1 | 5 |
MyWrite | 2 | 4 | 8 |
MySpreadsheet | 1 | 7 | 7 |
Totals |
| 11 | 20 |
Number of licenses remaining |
|
| 0 |
Example
The following example shows a token-based license for the license pool scenario described above, where MySolutions is a license pool that is drawn upon to fulfill license requests for MyDraw, MyWrite and MySpreadsheet.
Code Block | ||
---|---|---|
| ||
FEATURE MySolutions { VENDOR = VENDOR=ABC_Software COUNT COUNT= 20 KEYTYPE KEYTYPE= EXCLUSIVE MAJOR_VERSION VERSION= 1.0 MINOR_VERSION = 2 KEY=bhq3ed873qcrKHG6783rhJgvkhvTUtxcuBiouVtyCuyVy78Gftq... = GTLP4FLUFFDFJB3N87SEVB224G0TJKKP } FEATURE MyDraw { VENDOR = VENDOR=ABC_Software KEYTYPE KEYTYPE= TOKEN MAJOR_VERSION VERSION= 1.0 MINOR_VERSION = 0 TOKEN_DEPENDENCY = "FEATURE=MySolutions VERSION=1.0 COUNT=5" KEY KEY=b978bv5ybui7Noyg6c3Vd57fngN987NGSC54sDiugU6v5eio8g...= PTZH9BTWNTLFJHH862IOAF39NHIM9HVB } FEATURE MyWrite { VENDOR = VENDOR=ABC_Software KEYTYPE KEYTYPE= TOKEN MAJOR_VERSION VERSION= 1.0 MINOR_VERSION = 0 TOKEN_DEPENDENCY = "FEATURE=MySolutions VERSION=1.0 COUNT=2" KEY KEY=yig*bv7tu6r879yu09yut75evbGJvHGHdrCHJVJGCt79g78gvv...= KW1OPU87VNUAA9ZI2NMBP9721EEU2 } FEATURE MySpreadsheet { VENDOR = VENDOR=ABC_Software KEYTYPE KEYTYPE= TOKEN MAJOR_VERSION VERSION= 1.0 MINOR_VERSION = 0 TOKEN_DEPENDENCY = "FEATURE=MySolutions VERSION=1.0 COUNT=1" KEY KEY=hygvCTYGg6r67fg890hbyvGTCVKJBjhc5r7y9joiVGckjlnut8...= PO3OP36RLTATVFHOT3H4RONIOV257L98 } |
Product suite licenses
Product suite licenses specify that one token-based license depends on multiple real licenses. Product suite licenses enforce a logical AND rule, requiring all licenses to be valid in order to perform a checkout. This is essentially the opposite of license pools, which specify that multiple features depend on a single real license.
...
The following example shows a token-based license for the product suite license scenario described above.
Code Block | ||
---|---|---|
| ||
FEATURE Sketcher { VENDOR = VENDOR=ABC_Software COUNT COUNT= 5 KEYTYPE KEYTYPE= EXCLUSIVE MAJOR_VERSION VERSION= 2.0 MINOR_VERSION = 0 KEY=mBpIAWB9Uuzl2b2B3v]vcsFBx7qEQG1SwXCz8A9d612hU3vSKT... = GTLP4FLUFFDFJB3N87SEVB224G0TJKKP } FEATURE Printer { VENDOR = VENDOR=ABC_Software COUNT COUNT= 5 KEYTYPE KEYTYPE= EXCLUSIVE MAJOR_VERSION VERSION= 1.5 MINOR_VERSION = 5 KEY=B9Uuzl2b2B3v]vcsFBx7qEvcsFBx7qEQG1SwXCz8A9d6U3vSKT... = HEN3CRJ8VOI6FS5L25KKB0QLRJD3CE4O } FEATURE MyDraw { VENDOR = VENDOR=ABC_Software KEYTYPE KEYTYPE= TOKEN MAJOR_VERSION VERSION= 1.0 MINOR_VERSION = 2 TOKEN_DEPENDENCY = "FEATURE=Sketcher VERSION=2.0 COUNT=1" TOKEN_DEPENDENCY = "FEATURE=Printer VERSION=1.5 COUNT=1" KEY KEY=mBpIAWB9Uuzl2b2B3v]vcsFBxBx7qEQG1SwXCz8A9dj1g866USKT... ALPO3OP36RLTATVFHOT3H4RONIOV257L } |
...
Alternate licenses
You can use token-based licenses to allow license requests to be fulfilled by one or more alternate product licenses. This enforces a logical OR rule, since it requires one license or another to succeed with a checkout.
...
Code Block | ||
---|---|---|
| ||
FEATURE Lower_Priced_License { VENDOR = VENDOR=ABC_Software COUNT COUNT= 5 KEYTYPE KEYTYPE= EXCLUSIVE MAJOR_VERSION VERSION= 1.0 MINOR_VERSION = 0 KEY =mBpIAWB9Uuzl2b2B3v]8GJqW300arlnWmnT01nZXSOIYdF... CTLF6UIWOPPQYH35Q7WPYB7W2NH68JI9 } FEATURE Higher_Priced_License { VENDOR = VENDOR=ABC_Software COUNT COUNT= 10 KEYTYPE KEYTYPE= EXCLUSIVE MAJOR_VERSION VERSION= 1.0 MINOR_VERSION = 0 KEY =mBpIAWB9Uuzl2b2B3v]vcsFBx7qEQG1SwXCz8A9d6U3vSKT... AP1FYIS98WPN2UIP99QSVUIPA4EEOV26 } FEATURE MyDraw { VENDOR = VENDOR=ABC_Software KEYTYPE KEYTYPE= TOKEN MAJOR_VERSION VERSION= 1.0 MINOR_VERSION = 0 TOKEN_DEPENDENCY = "FEATURE=Lower_Priced_License VERSION=1.0 COUNT=5" KEY KEY=mYsfn30C6ShBYszCq2WVicpTZXQwkfKJTohkzg1wNkle163... HEN3CRJ8VOI6FS5L25KKB0QLRJD3CE4O } FEATURE MyDraw { VENDOR = VENDOR=ABC_Software KEYTYPE KEYTYPE= TOKEN MAJOR_VERSION VERSION= 1.0 MINOR_VERSION = 0 TOKEN_DEPENDENCY = "FEATURE=Higher_Priced_License VERSION=1.0 COUNT=10" KEY KEY=2w66Ng3wVSVp6ttmWCc8GyJqW300arlnWmnT01nZXSOIYdF... ALF5HUJ9VCQ6HSNL42MLT0VLMJC3PDMM } |
Cascading (recursive) licenses
...
The maximum number of recursive dependencies you may define for a token-based license is 16.The maximum number of dependencies the token-based license may have is 512256. (However, there is no limit on the number of token-based licenses you may define.)
...
The following example shows a token-based license for the cascading license scenario described above.
Code Block | ||
---|---|---|
| ||
FEATURE Sketcher { VENDOR = VENDOR=ABC_Software COUNT=10 KEYTYPE=EXCLUSIVE VERSION=1.010 KEYTYPE KEY=2w66Ng3wVSVp6ttmWCc8GyJqW300arlnWmnT01nZXSOIYdF... } FEATURE MyDraw { VENDOR=ABC_Software KEYTYPE=TOKEN VERSION=2.0 TOKEN_DEPENDENCY="FEATURE=Sketcher VERSION=1.0 COUNT=2" KEY=4i]mYsfn30C6ShBYszCq2WVicpTZXQwkfKJTohkzg1wNkle... } FEATURE MyWrite { VENDOR=ABC_Software KEYTYPE=TOKEN VERSION=2.0 TOKEN_DEPENDENCY="FEATURE=MyDraw VERSION=2.0 COUNT=1" KEY=mBpIAWB9Uuzl2b2B3v]vcsFBx7qEQG1SwXCz8A9d6U3vSKT... } |
Token sharing
Token-based license is always an unlimited license, therefore sharing tokens makes no sense. However to make sharing token dependencies through the token possible it is allowed.
For example, you may have an application with two modules that are sold separately or together. Each module can have multiple instances of itself with a license shared on the host. But modules cannot share licenses with each other.
It may be implemented using two token-based licenses ModuleA and ModuleB with a common dependency Product. ModuleA takes 3 licenses and ModuleB takes 2 licenses of a Product.
When two instances of each module are running, then without any sharing it would require 10 licenses of RealLicense. With sharing Product only 3 licenses would be in use. Sharing tokens will result in 5 licenses of feature Product in use. Both instances of ModuleA share 2 licenses among themselves and instances of ModuleB share 3 licenses.
Code Block |
---|
FEATURE Product { VENDOR=ABC_Software COUNT=10 VERSION=1.0 KEY=mBpIAWB9Uuzl2b2B3v]vcsFBx7qEQG1SwXCz8A9d6U3vSKT... } FEATURE ModuleA { VENDOR=ABC_Software KEYTYPE=TOKEN VERSION=1.0 SHARE=HOST TOKEN_DEPENDENCY="FEATURE=Product EXCLUSIVE MAJOR_VERSION = 1 MINOR_VERSION = 0 KEY = GTLP4FLUFFDFJB3N87SEVB224G0TJKKP } FEATURE MyDraw { VENDOR = ABC_Software KEYTYPE = TOKEN MAJOR_VERSION = 2 MINOR_VERSION = 0 TOKEN_DEPENDENCY = "FEATURE=Sketcher VERSION=1.0 COUNT=2" KEY KEY=4i]mYsfn30C6ShBYszCq2WVicpTZXQwkfKJTohkzg1wNkle...= HEN3CRJ8VOI6FS5L25KKB0QLRJD3CE4O } FEATURE ModuleBMyWrite { VENDOR = VENDOR=ABC_Software KEYTYPE KEYTYPE= TOKEN MAJOR_VERSION VERSION=1.0 SHARE=HOST 2 MINOR_VERSION = 0 TOKEN_DEPENDENCY = "FEATURE=ProductMyDraw VERSION=12.0 COUNT=31" KEY KEY=2w66Ng3wVSVp6ttmWCc8GyJqW300arlnWmnT01nZXSOIYdF...= ALPO3OP36RLTATVFHOT3H4RONIOV257L } |