LabVIEW APIs Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

How to license and distribute a third-party LabVIEW toolkit

I have nearly completed developing a set of add-on tools for LabVIEW 2009 and have reached the stage of deciding how best to distribute and license the software.  There are 7 sets of tools, the first one being a free set of useful functions and will come with unprotected block diagrams.  The second is a set of premium functions which I want to protect by having BD passwords for most (but not all) VIs.  The remaining 5 sets are separate advanced toolkits which also need protection.  Purchase of the premium funcctions will include the basic functions.  Purchase of any advanced toolkit will also include the basic and premium function sets.  The difficulty is trying to license source code distribution - not a problem with executables as there are several solutions.

My options for distribution and licensing seem to be:

1.  USB dongle containing embedded license information - required only for developers using the tools in source code form, but once built into an application, the dongle would not be needed.  This solution offers best protection against unlicensed copying, but diadvantages are that some people don't like them, they add to the price (of relatively inexpensive toolkits), and they could get difficult to manage in high volumes.

2.  License key containing license information to determine which tools to enable - the encrypted key would be stored in the registry.  License key only interrogated if tools use in source code form.  Can't prevent the user from copying, distributing, and installing multiple times.  The license key should be unique and should include a software serial number.

More background:

I have created an executable that will install all toolkit files (VIs, documents, DLLS, etc) in the necessary locations, check that LV2009 dev system is installed, and create toolkit function and control palettes.  This executable will need to interrogate the license key (either from a dongle or entered by the user).  A LabVIEW installer will not be needed because the user should already have LabVIEW 2009 development environment and run-time engine installed.  The palettes will show all functions but only those that have been licensed will be functional - their BDs will include a DLL function call to check the feature is licensed (dongle or registry interrogation).

My question is:

How have other LabVIEW source code toolkit developers implemented licensing and distribution?

Advice, comments, and suggestions will be greatly appreciated.

Mike Miles

CLD and Alliance Member

UK

0 Kudos
Message 1 of 8
(7,527 Views)

Hi Mike,

It's worth mentioning, up front, that NI is very interested in this topic.  During NIWeek 2009, they were asking a lot of questions about how people want to license/activate their LabVIEW tools.  So, it wouldn't surprise me if they were working on a solution.

I'll also mention that my comments/suggestions below might seem a little like an ad for JKI products

That said, what we do at JKI Software for our our LabVIEW toolkits is to build two versions of our tools: demo and paid versions.

  • Both the demo and paid versions are password protected.
    • The demo version shows a "nag dialog" telling the user that it is a demo version, and where they can get the paid version.
    • The paid version does not have a nag dialog.
  • We distribute our toolkit as a VI Package (built using VIPM Professional's package building capabilities) that can be installed using the free VIPM Community Edition (another JKI product) -- this makes for a nice user experience when installing the toolkit, since they can install into multiple LabVIEW versions, independenty and use VIPM to manage the configuration of which toolkits are used in each of their LabVIEW projects.
    • The demo version has a smaller version number than the paid version, so the paid version is always considered as an "upgrade" to the demo version.
  • We decided not to require activating the paid version, but to make it relatively low cost, so that people are more likely to pay us for the software when they use multiple copies.

I hope this was helpful.


Cheers,

-Jim

0 Kudos
Message 2 of 8
(4,570 Views)

We are in fact very interested in this

If you'd like, we can continue this conversation off-line.  Feel free to PM me.

Chris Bolin
LabVIEW Partner Program, CLA
0 Kudos
Message 3 of 8
(4,570 Views)

There's even a "Software Product Partner" category available in the Alliance program:

http://www.ni.com/alliance/partner_categories.htm

Unfortunately, I haven't gotten a response on any emails for that category yet.

Joe Z.

0 Kudos
Message 4 of 8
(4,570 Views)

Hey Underflow, shoot me a PM and we can work things out.  I'm sorry if you haven't gotten a response to any previous emails.

Chris Bolin
LabVIEW Partner Program, CLA
0 Kudos
Message 5 of 8
(4,570 Views)

Hi Mike,

Like Jim, I sense some interest not only from NI, but others who contacted us via the website or at local user groups. It's very likely this will get solved soon, but the question is when and for how much $. We recently released an add-on VI Library and faced a similar problem. Given the narrow audience for that product, we also, like JKI, considered that the price should not be prohibitive, and activation of source code add-ons still needs to evolve.

We are working on a product to activate compiled LabVIEW executables on Windows and Windows Mobile, but that doesn't really help you with your source code distribution. We had hoped to have this product released by the end of this year, but being an Alliance Partner like you, we've been fairly enganged in client activity. The development of this prodcuct has been impacted, probably by a matter of months. By that time anything could happen including a solution from NI, not only for executables, but for source code add-ons.

We've talked to  a lot of people (including some at NI) about product activation over the past several years. The more we delve in, and with all the good free open source software that continues to permeate, one wonders what the future model of software/media sales will evolve into. When I looked at licensing my PDA apps, I encountered several technologies for activating/deactivating  mobile apps via the provider (Verizon, Sprint, etc.), as well as 3rd party DLLs and other solutions. Ultimately the notion becomes evident: every lock can be broken, don't put a $20,000 lock on a $500 bike, and encourage honest people to stay honest.

If your LabVIEW add-on goes gangbusters, activation is not only more affordable through amortization of units sold, but it may be more warranted since it obviously has value. Somone will probably still crack and distribute it, but that doesn't mean you shouldn't try to protect it. Unfortunately, doing it yourself requires some knowledge of hashing, encryption, registry keys, system identification routines, etc. That's just on the client side. The server side is equally if not more complex as it involves web activation, activation failure support, and other IT and product activation forensic skills and resources. The model we plan to mimic is roughly similar to what Microsoft did with activation of XP type products.

Aside from automatic activation (web), manual activation is a must have feature via phone/email. A new request we've had includes de-activation. In other words, the end user could purposefully de-comission an installation, and relocate or reinstall it elsewhere without vendor support or intervention. It would definitely be a cool feature for the end user, but adds a dimension of complexity to to the problem.

Sorry for the long response, it's a topic I'm very interested in.

- John

0 Kudos
Message 6 of 8
(4,570 Views)

I'm a little concerned that the responses from NI seem to request that these discussions be removed from the public arena.

I am quite interested in methods and strategies for releasing toolkits as I myself have some very useful codes that I've often thought about 'tidying up' and releasing. One of the key obstacles would be licensing, and I'm very interested in hearing NI's comments.

Can I politely request that NI keep these discussions within the Community pages for us all to read?

Thoric (CLA, CLED, CTD and LabVIEW Champion)


0 Kudos
Message 7 of 8
(4,570 Views)

Hey Thoric,

I definitely understand your concerns.  Sorry for the secrecy; I was just trying to reduce the noise for anyone subscribing to the group.


Here's what I've told others interested in licensing: LabVIEW hears you! Although I cannot promise anything specific, I can tell you the LabVIEW Beta Program is a good place to check out the features of upcoming versions, and it has historically opened up around February or March.  Oh, and the Beta program url is ni.com/beta

Please understand that talking about future/possible features is always a delicate issue - I want address your concerns and keep my job

Chris Bolin
LabVIEW Partner Program, CLA
0 Kudos
Message 8 of 8
(4,570 Views)