LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

License Manager for Apps Built in LabVIEW

Solved!
Go to solution

What I'd like to have is a licensing system to add to apps built in LabVIEW that works more or less like a volume license server, or like FlexLM say, where a customer is licensed to so many instances/seats of a program.  Most of what I found by looking around on my own has been for licensing add-ons to LabVIEW, which is not what I'm looking for (that's what the Third Party Licensing and Activation Toolkit does, for example).  I want it to work like say the CAD program at work- we have X licenses to run SolidWorks, so when anybody launches the program, it fist checks with the license server to see if a license is available.  If so, the app opens up, then will retire the license when the app is quit.

 

I have found SoftwareKey's Protection PLUS 5 SDK.  It seems pretty good.  I like that they have a license server product that handles the whole "set up a license server" bit for me.  I think with some (or a lot) of work, this could be useful.

 

The problem I have with their product is it's a terrible LabVIEW library.  It doesn't add itself to the Functions pallette anywhere.  Not a single one of the VIs included have a description.  They don't follow standard LabVIEW style things, like the error code coming in on the bottom left, and out of the bottom right (the actually go in and out of the top middle).  They do have an online site that lists what each command does and how it works, but it's a pain to work by looking back and forth from a webpage to LabVIEW.  The single example they have included is a bit obtuse.

 

So I guess I have two questions.  The first is, has anybody used Protection PLUS 5, and what did you think of it?  The second is, is there another add-on that people would recommend?

0 Kudos
Message 1 of 6
(3,719 Views)

I don't know of such toolkits (although I can't say I have had need of them), but depending on how tamper-proof this needs to be, it could be easy enough to roll your own. I would expect that the basic logic is "contact the server, get an OK, then ping the server occasionally and pause/stop the program if you don't get a reply". On the server side it would be "wait for a connection, then decide. If you don't see the pings, return a license to the pool".

 

You could of course make this more complicated with various encryptions, one time keys, etc., depending on the needs.


___________________
Try to take over the world!
0 Kudos
Message 2 of 6
(3,650 Views)
Solution
Accepted by topic author SmithGo

Ah, just remembered one, although I don't know if it has this specific feature - http://sine.ni.com/nips/cds/view/p/lang/en/nid/211731


___________________
Try to take over the world!
0 Kudos
Message 3 of 6
(3,646 Views)

I did look at Protection Plus 5 some time ago and even had a test account to look how it works. I didn't interface their library directly from LabVIEW but included it through their C++ interface in our own shared library that gets used from LabVIEW. This is the only feasable approach since our library is a product that is supposed to be used in the LabVIEW development system too, not just in built applications. Also at that time they didn't even have something like a LabVIEW library to their Protection Plus 5 shared library.

 

It seemed to work fairly well and their integrated license server solution is quite well organized and not that difficult to setup and use. The main reason that we did finally not choose to go with that is the lack of support for other targets like NI realtime hardware. As we had to develop some solution for there anyhow it was in the end easier to just use it on all platforms instead of going to a hybrid approach. That all said, developing your own license solutions beyond the most trivial security through obscurity approach is a real pain in the ass. Not sure I would choose that approach again knowing the things I know now.

 

Also depending on your target audience you might have to consider the situation where even occasional network access to a central license server is not an option. DOD and even some private customers will simply be unable to get your product approved if it needs any kind of network communication, since the network is either not present or tightened up in such a way that you can not at will attempt to create a connection or even send out broadcasts of any kind. In fact most production type installations will be on an isolated factory network that can not just go and attempt to contact an external server somewhere on the internet to verify a license. This was another concern that made the Protection Plus 5 solution less attractive, although it does support also an offline activation/deactivation process, which can solve that problem.

 

Rolf Kalbermatter
My Blog
0 Kudos
Message 4 of 6
(3,615 Views)

Thank you all for your responses.  I have put an email in to SoftwareKey to ask if they have any plans to improve the quality of their library.  I will post back their response.  I will also check BLT's offering out.

0 Kudos
Message 5 of 6
(3,547 Views)

Just an update in case anybody was still interested in this:

 

The response from SoftwareKey was effectively, who cares.  They would "pass on your concerns with the library to the engineering team" quite awhile ago, and there has been no update to their library or hint they would do so.  They also did not provide better example(s) of their code, although perhaps the fault there lies with me.  I would argue, though, that a network floating license is the most common way engineering software is licensed today (as via FlexLM), so it's odd that it's a complete afterthought to them, and in fact they actively tried to discourage me from considering it.  Their view is that one ought to just license individual computers, which could then run as many instances of your program on that machine as they want.  That would allow you to use their reportedly much easier to use software solution, but I do not find machine licensing to be acceptable.

 

I am going with BLT for now.  They have a simple interface that allows you to graft one of several different licensing schemes to your program, including floating network licensing.  Their customer support was very friendly, as well- there was an issue at first where their library did not work with the Basic version of LabVIEW with Application Builder, but they modified their library to work with it in about a week or so.  They also don't charge any flat fee, just a monthly fee per license, so they were actually helping me for free at this point.

 

So I am calling tst's post the solution.

Message 6 of 6
(3,278 Views)