| | |
| | | # Features: |
| | | # Features |
| | | |
| | | ## features and their status |
| | | |
| | | | Feature | Implementation status | |
| | | |--------------------------------------|:---------------------:| |
| | | | Trial license with expiry date | :heavy_check_mark: | |
| | |
| | | See [execution limits](Implemented/Planned execution limits) section. |
| | | |
| | | ### Licenses linked to "physical" hardware id |
| | | Link the software to a physical hardware (a pc). In this scenario the software editor wants his software to be executed on a specific piece of hardware. We suppose the operating system is installed "bare to metal" and we're able to calculate an identifier of that hardware. This isn't always true for virtualized environments for which alternative strategies must be planned [eg. floating licenses (not yet implemented)]. See the section on [hardware identifiers](hardware-identifiers) for a detailed discussion of the use cases. |
| | | Link the software to a physical hardware (a pc). In this scenario the software editor wants his software to be executed on a specific piece of hardware. We suppose the operating system is installed "bare to metal" and we're able to calculate an identifier of that hardware. This isn't always true for virtualized environments for which alternative strategies must be planned [eg. floating licenses (not yet implemented)]. See the section on [hardware identifiers](../usage/Hardware-identifiers) for a detailed discussion of the use cases. |
| | | |
| | | Depending on the situation there are are different kinds of hardware id that can be used. See [execution limits](Implemented/Planned execution limits) section. |
| | | |
| | |
| | | Detect if the software is running in a virtualized environment and (optionally) forbid the execution. This is useful if software editors want to prevent the execution in virtual machines (lxc/dockers...) and be able to compute a meaningful hardware id. |
| | | Another use case is the software is to be used only in a specific class of virtualized environments. For instance it was initially packaged as a docker image, the software editor don't want it to be "extracted" and placed elsewhere. |
| | | |
| | | ### License retrieval |
| | | ### Licenses retrieval |
| | | Open License Manager, when integrated into a licensed software will find its license file based on many different strategies. |
| | | It can handle multiple licenses at the same time. See the wiki page about [license retrieval](license-retrieval) for details. |
| | | It can handle multiple licenses at the same time. See the wiki page about [license retrieval](../usage/License-retrieval) for details. |
| | | |
| | | ### Licensed software features (partially implemented) |
| | | A licensed software may be composed by many features (functions) each one activable independently. Licensing system tells the licensed software which features are enabled, and which features are disabled. |
| | |
| | | Open License Manager can limit execution of licensed software based on some criteria, called "execution limits". |
| | | Depending on the execution environment some criteria may not be applicable: |
| | | |
| | | | | Windows BareToMetal | Linux BareToMetal | Linux container (lxc/docker) |Virtual Machine | |
| | | | |Windows BareToMetal | Linux BareToMetal | Linux container (lxc/docker) |Virtual Machine | |
| | | |----------------|:------------------:|:------------------:|:------------------:|:------------------:| |
| | | | date | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
| | | | disk label | :heavy_check_mark: | :heavy_check_mark: | :x:<sup>1</sup> | :heavy_check_mark: | |
| | |
| | | | cpu number | Planned | Planned | Planned | Planned | |
| | | | process memory | Planned | Planned | Planned | Planned | |
| | | | machine memory | Planned | Planned | Planned | Planned | |
| | | | virtualization type | Planned | Planned | Planned | Planned | |
| | | | concurrent execution | Planned | Planned | Planned | Planned | |
| | | | licensed sw version | Planned | Planned | Planned | Planned | |
| | | | virtualization type | Planned | Planned | Planned | Planned | |
| | | | concurrent execution | Planned | Planned | Planned | Planned | |
| | | | licensed sw version | Planned | Planned | Planned | Planned | |
| | | |
| | | ### Date |
| | | This is the most common limit set on a license, allow the software to expire after the defined date. |
| | | |
| | | ### Disk label/Disk id |
| | | It is possible to limit the execution to a computer that has a certain disk connected. |
| | | This kind of limitation doesn't make sense in linux containerized environments. |
| | | It is possible to limit the execution to a computer that has a certain disk connected. |
| | | This feature has been implemented in the `hardware identifier`. |
| | | |
| | | N.B. This kind of limitation doesn't make sense in containerized environments. |
| | | |
| | | ### Ip address/Mac address |
| | | It is possible to limit the execution to a computer that has a network card with a spefified MAC address |
| | | (or even we can force to have a specific ip address). |
| | | This feature has been implemented in the `hardware identifier`. |
| | | |
| | | ### Cpu Number/Machine memory |
| | | Allow to restrict the execution only to a machine with the specified amount of cpu or memory or less. This is useful in virtualized environments, to create a licensed software demo version with limited performaces or with limited scalability. |
| | | |
| | | Allow to restrict the execution only to a machine with the specified amount of cpu or memory or less. |
| | | This is useful in virtualized environments, to create a licensed software demo version with limited performaces or with limited scalability. |
| | | Status of this implementation is tracked in [issue #4](https://github.com/open-license-manager/open-license-manager/issues/4) |
| | | |
| | | ### Virtualization type |
| | | Allow the execution of the licensed software only on some type of hardware or virtualized environment eg. only bare to metal, only in virtual machine, only in docker. |
| | | Allow the execution of the licensed software only on some type of hardware or virtualized environment |
| | | eg. only bare to metal, only in virtual machine, only in docker. |
| | | This feature is being implemented. |
| | | |
| | | ### Licensed software version |
| | | A licensed software may declare a version (eg 1.0.0). A license may span multiple releases of the software e.g. allow version 1.1.1 but not 2.0.0. |