The purpose of licenses is to protect the digital intellectual property of ISVs. They are not meant to make the use of software harder or, in the worst case scenario, prevent its use altogether when license servers crash. In areas like the automotive industry where no access to licenses could mean that crucial production lines are forced to a standstill, users demand and expect redundancy.
CodeMeter TMR Server is the solution for them. TMR stands for Triple Mode Redundancy. Simply put, it means a combination of a 2-out-of-3 licensing concept with durable and reliable data center technology. Its secret: a group of three license servers operates as one joint system, and as long as two of the three servers are available, the entire system will stay up and running.
Each license is created in triplicate and given a special flag, the TMR-Id. The TMR-Id is a property of the option License Quantity. It makes sure that the triplicate licenses can always be identified for what they are, which is why TMR-Ids are assigned as consecutive numbers with each new TMR license. The Firm Code, Product Code, and TMR-Id have to be identical for three licenses to form a joint TMR license; similarly, all other properties of the Product Items are the same for all three licenses. This helps ensure integrity while at the same time providing a secure, anti-hacker environment.
The three constituent licenses are placed in three separate CmContainers, with the same CmActId. The TMR system merges them to form one virtual CmContainer for the user to see and work with. The three actual CmContainers remain in the background.
The virtual CmContainer can be distinguished from other CmContainers by its mask byte:
1-, 2-, 3-
CmActLicense Universal Firm Code
Virtual CmContainer TMR Server
For a TMR license to be valid and available, two or more of its constituent licenses have to be available. If only one of the three is there, the TMR license will not be shown in the virtual CmContainer.
A potential attacker who only has one CmContainer with one of the constituent TMR licenses cannot use the TMR license as a whole. The CodeMeter server denies the usage of any single license with a TMR-Id, unless it is operated correctly in a TMR system.
The full TMR system consists of five servers that are usually provided as virtual machines. A twin TMR server acts as the downstream interface with the client, who can reach it at a virtual IP address. That downstream server generates the virtual CmContainer and its TMR licenses dynamically by mirroring the CmContainers kept on the other side of the system, the three upstream CodeMeter servers.
TMR servers are currently available as a Linux service. Upstream from the twin TMR servers, the CodeMeter servers can be operated under Linux or Windows. With the right settings on these servers, the CodeMeter licenses are only available to the downstream TMR server. No client would have direct access to them.
Switching TMR Servers
In a corporate network, the TMR system could be reached via a single virtual IP address that sends all queries to the active TMR server. The switch to the passive server is handled by tried-and-tested data center technology: Should the active server be down, its passive twin notifies the infrastructure that it will now be the recipient of all packets going to the virtual IP address. It switches seamlessly into the role of the active TMR server. When the old active server becomes available, it then assumes the role of the passive twin, ready to take over when needed.
The first version of the TMR package has been licensable from Wibu-Systems since November 2018. Billing is handled by subscription for each installed TMR system.