10-27-2016 04:03 AM
Hi,
I have an add-on toolkit for LabVIEW that is licensed using the TPLAT (licensing is applied through VIPM) with the SoftwareKey SOLO licensing server and all this works fine.
When I issue an update to the toolkit this is installed as normal, also via VIPM.
My question is, during the installation of the update is the license status checked with the SOLO server?
What I want to do is set up the license server so that the license activation is only valid up to a certain package revision number, say 2.0. After this a new license would need to be purchased. However if the license status is never checked then this is not possible.
If the license status is not checked then would adding a VI that runs before installation (one of the options in VIPM) to check the license status work? How would this need to be configured to halt the update?
Cheers,
Darren.
10-28-2016 10:59 AM
Hi Darren,
No license checking happens on installation of an update, it only happens when LabVIEW starts up. In fact, if you update a product on a system that already has a license in place, the license status will always remain as it was previously. Because of this, checking licensing status on a pre-install VI would not solve the problem you're trying to achieve.
In order for you to enforce a new license purchase on an update is to use a new SOLO server product definition for your updated package. To do this, you'd just create a new product entry in the TPLAT dialog (if you're using standard mode) or a new product entry in SOLO and LFEdit (if using advanced mode) and use this product entry and license for your new version. This means that purchasers of the new version (2.0) would not be able to activate 1.0 and purchases of 1.0 would not be able to activate 2.0. This also means that a user will be entitled to another 30 day trial when they install the new version even if their previous trial period ended.
Hope this helps,
David
10-28-2016 11:51 AM
Hi David,
Thank you for your reply.
So basically the license is only checked when it is first activated with the User ID and Password. This means that it is not possible to have any kind of subscription licensing, revoke a license or basically do anything?
Is this a limitation of the TPLAT?
I have many applications that have a "1 year updates" service agreement included in the initial fee, after this you stop receiving the updates but your current version still works. Isn't this also how LabVIEW works?
Cheers,
Darren.
10-28-2016 01:17 PM
The license file is checked everytime LabVIEW loads. However the license server is only checked when the product is activated. You could set up your license in such a way that an activation code activates the product for a limited time (e.g. 1 year) and then the customer has to activate again. You would have to either update their license ID on the server or provide them a new license ID whenever they purchase an update to their service agreement.
There is no way to revoke a license using TPLAT. This sort of activation scheme requires a constant connection to the internet and many LabVIEW customers don't have this option.
10-28-2016 04:01 PM
Hi Darren.
I was grappling with a very similar situation recently. In my case, wanted to fully activate a TPLAT licensed product but only for a limited period of time. I came up with the following solution to achieve this capability. I think this procedure, or at least some of this information, is relevant to your objective.
Notes
I hope you find this information helpful.
Regards.
John Bergmans
Principal Engineer / Owner
Bergmans Mechatronics LLC
10-31-2016 05:23 AM
Hi John,
Thank you for your great reply, awesome that you spent the time to go into so much detail.
The biggest difference is that after the defined time (7 days in your example) the toolkit would just stop working, however I would like it to just stop being updated and the existing version carry on working on the development PC.
I think that your solution is a very good starting point and maybe there is some kind of option (or combination of options) that will allow the add-onto carry on working.
Thanks again for the reply!
Cheers,
Darren.
10-31-2016 06:05 AM
Hi David,
In the TPLAT there is a VI to check the status of the license file, and there is a VI to activate a license which requires a connection to the licensing server. Why can't these 2 VI's be combined to allow the status of the license to be checked? This way it is up to the developer of the add-on if they would require their customer to have an Internet connection or not.
Logically if you are applying an update then you are probably connected to the Internet anyway, so then before the installation runs I can check with the server if the license is still valid; yes, update or no, cancel update and carry on with current version. Or for a stand alone version I could implement a solution like that described by John Bergmans, where the license is simply valid for a year and then I can provide details to extend this if I choose.
Seeing as LabVIEW uses more or less the same licensing process as I want to implement I find it very strange that they do not allow developers the same option. On a practical level if I cannot revoke a license then that means I can not give the ID and Password out until I have received payment, which could be up to 60 days. This situation could cause serious issues with my customers as effectively they cannot do anything during this time.
My point is that my customers are not the "LabVIEW customers" you mention, they are my customers. It should be up to the developer of the software to choose the licensing options that they want to implement, if that is not satisfactory for their customer then it is up to them to find a solution.
My apologies if this sounds blunt, but this seems like a very common licensing method that TPLAT simply does not support.
Regards,
Darren.
10-31-2016 10:20 AM
Hi Darren,
I completely understand your use-case and think it makes sense. We are constantly evaluating the features of our products, so your feedback is appreciated for improving LabVIEW licensing in the future.
I do want to make sure that it's understood, however, that you aren't required to use the standard TPLAT functionality to license your product. We created this tool to help the majority of LabVIEW Tools Network developers easily license their product, and it's limited functionality typically is enough for most products. However, when more advanced licensing procedures are needed, we encourage and welcome you to implement whatever features your product and company needs. This can include the basic TPLAT API, calls into the SoftwareKey DLLs to implement some of their features that we don't natively support, or even coming up with a custom licensing solution that doesn't involve TPLAT at all. You could very easily incorporate some of the SoftwareKey license checking or activation calls into your pre- or post-install steps in VIPM, or even at run-time of your code and achieve the functionality you're describing.
If you need any help or clarification with this, then please feel free to post here or contact our team directly at labviewtoolsnetwork(at)ni.com and we're happy to discuss it further.
Thanks again for the feedback,
David
11-01-2016 09:46 AM
Hi David,
To be honest I never actually thought of trying to implement my own solution, I was so fixed on the problem that the TPLAT couldn't do what I needed.
Thanks for the gentle nudge!
Cheers,
Darren.
11-01-2016 10:32 AM
No problem, I'm glad to help. Let us know if you need any more nudges as you work through the solution.