Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


The information on this page refers to v5.0 and later, which introduced the ability to share token-based licenses. For documentation applicable to earlier versions, see documentation for previous versions.

There are many different ways you can use token-based licensing, as described in the following examples.

...

As you can see from the two different scenarios below, a pool of token-based licenses gives customers significantly more flexibility than purchasing a specific number of licenses for each feature. The users can check out any combination of the features, up to the maximum 20-license limit.

Example Scenario 1

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
languagehtml/xml
FEATURE MySolutions
{
  VENDOR = ABC_Software
 COUNT =20 20
KEYTYPE =EXCLUSIVE EXCLUSIVE
MAJOR_VERSION = 1.0
MINOR_VERSION = 2
KEY = GTLP4FLUFFDFJB3N87SEVB224G0TJKKP=bhq3ed873qcrKHG6783rhJgvkhvTUtxcuBiouVtyCuyVy78Gftq...
}

FEATURE MyDraw
{
  VENDOR = ABC_Software
 KEYTYPE =TOKEN TOKEN
MAJOR_VERSION = 1.0
MINOR_VERSION = 0
TOKEN_DEPENDENCY = "FEATURE=MySolutions VERSION=1.0 COUNT=5"
  KEY = PTZH9BTWNTLFJHH862IOAF39NHIM9HVB=b978bv5ybui7Noyg6c3Vd57fngN987NGSC54sDiugU6v5eio8g...
}

FEATURE MyWrite
{
  VENDOR = ABC_Software
 KEYTYPE =TOKEN TOKEN
MAJOR_VERSION = 1.0
MINOR_VERSION = 0
TOKEN_DEPENDENCY = "FEATURE=MySolutions VERSION=1.0 COUNT=2"
  KEY = KW1OPU87VNUAA9ZI2NMBP9721EEU2 =yig*bv7tu6r879yu09yut75evbGJvHGHdrCHJVJGCt79g78gvv...
}

FEATURE MySpreadsheet
{
  VENDOR = ABC_Software
 KEYTYPE =TOKEN TOKEN
MAJOR_VERSION = 1.0
MINOR_VERSION = 0
TOKEN_DEPENDENCY = "FEATURE=MySolutions VERSION=1.0 COUNT=1"
  KEY = PO3OP36RLTATVFHOT3H4RONIOV257L98=hygvCTYGg6r67fg890hbyvGTCVKJBjhc5r7y9joiVGckjlnut8...
}

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.

html/xml
Code Block
language
FEATURE Sketcher
{
  VENDOR = ABC_Software
 COUNT =5 5
KEYTYPE =EXCLUSIVE EXCLUSIVE
MAJOR_VERSION = 2.0
MINOR_VERSION = 0
KEY = GTLP4FLUFFDFJB3N87SEVB224G0TJKKP=mBpIAWB9Uuzl2b2B3v]vcsFBx7qEQG1SwXCz8A9d612hU3vSKT...
}

FEATURE Printer
{
  VENDOR = ABC_Software
 COUNT =5 5
KEYTYPE =EXCLUSIVE EXCLUSIVE
MAJOR_VERSION = 1.5
MINOR_VERSION = 5
KEY = HEN3CRJ8VOI6FS5L25KKB0QLRJD3CE4O=B9Uuzl2b2B3v]vcsFBx7qEvcsFBx7qEQG1SwXCz8A9d6U3vSKT...
}

FEATURE MyDraw
{
  VENDOR = ABC_Software
 KEYTYPE =TOKEN TOKEN
MAJOR_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 =mBpIAWB9Uuzl2b2B3v]vcsFBxBx7qEQG1SwXCz8A9dj1g866USKT... ALPO3OP36RLTATVFHOT3H4RONIOV257L
}

...

Anchor
alternate licenses
alternate licenses
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
languagehtml/xml
FEATURE Lower_Priced_License
{
  VENDOR = ABC_Software
 COUNT =5 5
KEYTYPE =EXCLUSIVE EXCLUSIVE
MAJOR_VERSION = 1.0
MINOR_VERSION = 0
KEY =mBpIAWB9Uuzl2b2B3v]8GJqW300arlnWmnT01nZXSOIYdF... CTLF6UIWOPPQYH35Q7WPYB7W2NH68JI9
}

FEATURE Higher_Priced_License
{
  VENDOR = ABC_Software
 COUNT =10 10
KEYTYPE =EXCLUSIVE EXCLUSIVE
MAJOR_VERSION = 1.0
MINOR_VERSION = 0
KEY =mBpIAWB9Uuzl2b2B3v]vcsFBx7qEQG1SwXCz8A9d6U3vSKT... AP1FYIS98WPN2UIP99QSVUIPA4EEOV26
}

FEATURE MyDraw
{
  VENDOR = ABC_Software
 KEYTYPE =TOKEN TOKEN
MAJOR_VERSION = 1.0
MINOR_VERSION = 0
TOKEN_DEPENDENCY = "FEATURE=Lower_Priced_License VERSION=1.0 COUNT=5"
  KEY =mYsfn30C6ShBYszCq2WVicpTZXQwkfKJTohkzg1wNkle163... HEN3CRJ8VOI6FS5L25KKB0QLRJD3CE4O
}

FEATURE MyDraw
{
  VENDOR = ABC_Software
 KEYTYPE =TOKEN TOKEN
MAJOR_VERSION = 1.0
MINOR_VERSION = 0
TOKEN_DEPENDENCY = "FEATURE=Higher_Priced_License VERSION=1.0 COUNT=10"
  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 512 256. (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
languagehtml/xml
FEATURE Sketcher
{
  VENDOR = ABC_Software
 COUNT=10 KEYTYPE=EXCLUSIVE 10
KEYTYPE = 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=SketcherVERSION=1.0
  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 and token dependency sharing

Token-based licenses are always unlimited; therefore, sharing tokens is unnecessary. However, you can share tokens to enable sharing their dependencies.

For example, you may have an application with multiple features that can be sold separately or together. Multiple instances of each feature can be shared on a single host.

With token sharing, all instances of the particular feature share licenses, but separately (the instances of each feature can share licenses amongst themselves, but not between the different features).

Token dependency sharing allows the features and their instances to share their available licenses and thereby use the licenses more efficiently in cases where you do not want to count features' licenses independently. Dependency sharing can be implemented using multiple token-based licenses that share a common dependency. 

Note
iconfalse

Sharing both tokens and token dependencies has the same effect as sharing just token dependencies, so although possible, this usage has no additional benefit. The total number of token dependency licenses in use will remain the same. Although the number of token-based licenses in use will be different, token-based licenses are unlimited, so combining the two sharing methods will have no effect.

Example Scenario

For example, say you have two token-based features, "ModuleA" and "ModuleB," with a common token dependency, "Product." ModuleA requires three Product licenses and ModuleB requires two Product licenses, and there are a total of 10 Product licenses.

Without sharing implemented, 2 instances of ModuleA (3 licenses required per instance * 2 instances = 6) and 2 instances of ModuleB (2 licenses required per instance * 2 instances = 4) will consume all 10 Product licenses.

Token sharing lets you share licenses between multiple instances of ModuleA and ModuleB running on the same host. Using the same example with token sharing implemented, two instances of ModuleA and two instances of ModuleB on a single host will use only five licenses, because the licenses are shared between each feature's instances. Two instances of ModuleA share two Product licenses amongst themselves and two instances of ModuleB share three Product licenses among themselves. 

Token dependency sharing allows for sharing the dependency's licenses freely between ModuleA and ModuleB. Continuing to use the same example with token dependency sharing implemented, two instances of ModuleA and two instances of ModuleB are able to share just three Product licenses.

The example scenario described above is illustrated in the table below.

Sharing Type

Product licenses used for two instances of ModuleA

Product licenses used for two instances of ModuleB

None

6

4

Token sharing

3

2

Token dependency sharing

3

0 (shares 2 licenses with ModuleA)

Token sharing license example

The following example shows a token-based license for the token sharing scenario described above.

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 VERSION=1.0 COUNT=3"
  KEY=4i]mYsfn30C6ShBYszCq2WVicpTZXQwkfKJTohkzg1wNkle...
}

FEATURE ModuleB
{
  VENDOR=ABC_Software KEYTYPE=TOKEN VERSION=1.0 SHARE=HOST
  TOKEN_DEPENDENCY="FEATURE=Product VERSION=1.0 COUNT=2"
  KEY=2w66Ng3wVSVp6ttmWCc8GyJqW300arlnWmnT01nZXSOIYdF...
}


Token dependency sharing license example

The following example shows a token-based license for the token dependency sharing scenario described above.

Code Block
FEATURE Product
{
  VENDOR=ABC_Software COUNT=10 VERSION=1.0 SHARE= HEN3CRJ8VOI6FS5L25KKB0QLRJD3CE4OHOST
  KEY=mBpIAWB9Uuzl2b2B3v]vcsFBx7qEQG1SwXCz8A9d6U3vSKT...
}

FEATURE MyWriteModuleA
{
VENDOR  VENDOR= ABC_Software
 KEYTYPE=TOKEN VERSION= TOKEN
MAJOR_VERSION = 2
MINOR_VERSION = 0
TOKEN_DEPENDENCY = "FEATURE=MyDraw VERSION=21.0
  TOKEN_DEPENDENCY="FEATURE=Product VERSION=1.0 COUNT=3"
  KEY=4i]mYsfn30C6ShBYszCq2WVicpTZXQwkfKJTohkzg1wNkle...
}

FEATURE ModuleB
{
  VENDOR=ABC_Software KEYTYPE=TOKEN VERSION=1.0
  TOKEN_DEPENDENCY="FEATURE=Product VERSION=1.0 COUNT=12"
KEY = ALPO3OP36RLTATVFHOT3H4RONIOV257L KEY=2w66Ng3wVSVp6ttmWCc8GyJqW300arlnWmnT01nZXSOIYdF...
}