views:

125

answers:

4

Is there any generally accepted guidelines as to when and how often to check with a license server that the license is still active?

Edit: For clarification, the software I am dealing with would have expiration. It would be necessary to check at least each time the application is launched.

+2  A: 

The check should be relatively quick, so most apps do it on application startup and optionally on day-rollover (for long running apps)

GWLlosa
+1  A: 

Generally do so sparingly. Say only on install or first launch of the product. Any more frequency then that is determined by how paranoid the BA is of pirates.

Aaron Fischer
A: 

The frequency with which the licensing client calls home should be configurable per licence. The reason for this is that customers differ, & you should be able to easily tailor your solution to suit.

In some cases it might be alright to hit the server every time the app starts, but some customers (e.g. most financial institutions) might prefer that you never call out but just verify the licence.

Also, the licensing API you use should provide sufficient information to know whether the check failed because it couldn't see the server, or because the licence was invalid, expired or used up (in the case of multi-seat licences).

There are several reasons for this:

  1. The user may have installed the software on a notebook which is not always connected to the Internet.

  2. If your company should experience licence server downtime, you don't want to prevent existing installations of your software from running.

Obligatory disclaimer & plug: the company I co-founded produces the OffByZero Cobalt licensing solution. With it, you can configure how frequently each individual licence calls home, and create offline licences that never call home. It also returns detailed information about connectivity, meaning that you can allow your application run even if the licence server is temporarily unavailable.

Duncan Bayne
A: 

I use a sliding window of 30 to 90 days. And the application saves the result of the license server so it will function offline. If the saved license is invalid for any reason, the server is contacted and the saved license is updated.

The application also informs the user (not with a nag dialog, dialogs are evil!) that their license will expire soon when they have less than 31 days before it expires. This is important so they don't get caught unaware of their license expiring.

As to how well this works, ask me in 9 months when our 12 month licenses expire!