Let's quickly go through some licensing terminology.
It refers to licenses which have lifetime validity. A user buys a license and can use your product for lifetime without any need of paying again.
Licenses can be metered by time and they would expire after a certain amount of time period. Your customers would usually pay a monthly or a yearly subscription fees and when they renew, the license should also be renewed.
Sometimes you want your customers to pay for what is actively used regardless of how long they possess your product. The usage can be defined as the amount of time for which your app is used, number of times it is run, number of specific operations etc. depending on your business requirements.
A node locked license is bound to a machine on which the license was activated. It means that the license key cannot be used on any other machine (if license allows a single activation/seat).
If license allows multiple activations (multi-seat), then after all the activations are used, the license key cannot be used on other machines.
A floating license is temporarily bound to a machine for a specific amount of time. When the time expires the activation (seat) is automatically freed up (if not renewed), so that any other machine can use the license.
So if your floating license allows for 100 activations (seats), then at any instant of time no more than 100 machines can use your application.
You will most of the time use node locked licenses which would be either perpetual or subscription based.
When licensing your product to any university or a big company which may require large number of license seats, you will usually opt for floating licenses as that is more economical for your customers.
Other than this you can add some other restrictions too like usage count or implement a completely custom licensing model using metadata fields which you can add to your licenses.