To read how to enforce Bentley’s 10-minute Term licensing with K2 7.3, see this earlier post.
Earlier this year, Bentley customers started to receive an email from Bentley titled “New Improvements to your Term License”. The essential change was to reduce “the interval used to calculate usage from one hour to ten minutes.” Details at the time were slim, but since then Bentley has produced a Term License Fact Sheet that has a bit more detail.
K2 has proven invaluable to Bentley customers as a way of enforcing limits on Bentley entitlements, and ultimately avoiding over-use charges. The change from hour to 10 minute “buckets” should decrease over-use somewhat, but Bentley still does not provide their own way of eliminating over-use. K2 can still be used for this purpose.
Enforcing Bentley’s 10 minute metric with K2 Policies
Within K2, we recommend using a Lease Policy with a Renewal Period of 11 minutes (no Browse Period, “On Hour” unchecked, Strict enforcement), as shown below:
We are not 100% sure of precisely how Bentley will measure usage – even their fact sheet leaves some questions open to interpretation. We haven’t received a definitive answer from Bentley, and we’ve had mutual customers say the same thing. The basic approach to metering does seem to be understood though. The Policy as configured above does not measure usage in exactly the way that Bentley does, but it should protect against over-use as measured by Bentley. In other words, K2 will be slightly more cautious (prohibitive) than Bentley, but this is done to ensure there is no over-use. Assuming that is your goal you can simply configure as above (be sure to notice that Enforcement defaults to Relaxed for new Lease policies, but above it has been set to Strict). Or if you want to understand the very detailed and technical analysis, keep reading.
Lease Renewal Period
We use 11 minutes instead of 10 minutes. Since the primary goal is to completely eliminate over-use, we want to be on the safe side. KeyServer and the Bentley server are counting time and usage independently. If KeyServer sees 599 or 600 seconds, we want to make extra certain that Bentley doesn’t count this as 601 or 602 seconds.
We have not turned on a “Browse Period”, even though in our documentation we say “if the program is quit within the Browse Period, the license is only held for the Browse Period, and not for the full Renewal Period. This can be used to avoid counting accidental launches (and immediate quits) against the license.”
Conceptually this sounds very similar to Bentley’s description of their new licensing metric that says “You must use the software at least 10 minutes and for a complete interval for your initial interval to be counted… This method ensures that accidental or incidental use is not counted and provides an accurate count of true production use.”
However – first of all we cannot make KeyServer entirely ignore usage within the first 10 minutes of use. Imagine owning a single copy of MicroStation, and suppose that 5 people launch it at the same time. They might all quit 3 minutes later, and Bentley would not count any usage at all. Or, they might all continue to use it for an hour and Bentley would count peak usage of 5. We can’t know which will happen. And once KeyServer allows an initial launch, we don’t want to do a hard-kill of the program as we near the 10 minute boundary – this would not allow users to save their work. So the only safe approach is to enforce our limit of 1 even at launch time.
Second, it is not entirely clear whether Bentley ignores the entire first 10 minutes of use, or just the remainder of whatever 10 minute “bucket” it falls in. That is, suppose someone launches at 3:09 and quits at 3:15. The total use lasts only 6 minutes – so is it entirely ignored, or is only the part from 3:09 to 3:10 ignored? The initial email from Bentley said “We now require at least ten minutes of continuous use before a session is counted.” But the Fact Sheet says “For example, a session for a specific user with a start time of 10:02 a.m. would begin to be counted in the 10:10 a.m. to 10:20 a.m. interval.” Since the Fact Sheet seems more detailed and official, we are assuming that only the remainder of a 10 minute bucket is free – perhaps as short as a few seconds. Therefore we can’t treat a short usage in any special way.
On Hour (bucket) option
There is no “On 10 minutes” option in K2, corresponding to the “On Hour” option that we recommend for the Bentley “hourly bucket” licensing. As a result, K2 can count usage even when Bentley does not. For example, with the launch at 3:09 and quit at 3:15 as described before, we believe that Bentley counts usage within the 3:10-3:20 bucket. K2 will count usage from the launch at 3:09, through 11 minutes past the quit – 3:26. So then if the license limit is 1, another user attempting to launch at 3:22 would be denied and would have to Queue and wait until 3:26 to be able to launch.
This might seem like a waste, but consider the following. Suppose K2 could in fact round usage to the next 10 minute interval. Then suppose K2 saw a quit at 12:39:58. It would decide that Bentley would count the 12:30-12:40 bucket, but not the 12:40-12:50 bucket. So it would free up a license, which could then be used by another computer at 12:41. However, suppose that the clock of the computer hosting KeyServer, and the clock of the Bentley server differed by mere seconds. If Bentley saw the quit as happening at 12:40:02, the use would in fact be counted in the 12:40-12:50 bucket as well.
We can never protect against that case if we try to round to 10 minute boundaries. But on the other hand, the simple 11 minute lease protects us just fine – KeyServer extends the lease out to 12:50:58, which ensures that no one else can run the program in the 12:40-12:50 bucket. That is, regardless of whether the two server clocks differ, we know we’re protecting over-use.
Note that the Enforcement in the screenshot is set to Strict. This has to be done after the policy is created, since the default enforcement for Lease licenses is Relaxed. With Relaxed enforcement, usage is allowed when the client is “offline” (can’t reach KeyServer), or when the client is already running software and then loses its connection to the KeyServer. While this is nice from a User Experience perspective, it can lead to use that exceeds the configured limit. We recommend that any policies controlling Bentley software have Strict enforcement, since the explicit goal is to avoid over-use and overage charges.
While Bentley has likely decreased the magnitude of over-use that will be experienced during normal use by customers, it has not eliminated the possibility of over-use. For that reason, K2 is still valuable to prevent over-use and avoid quarterly overage fees from Bentley. We think we understand Bentley’s new metric well enough to say that configuring K2 Policies as described here will prevent overage – but we cannot guarantee that. If you feel we have mis-stated anything, or have additional insight from Bentley, feel free to contact us as always at firstname.lastname@example.org .