473,386 Members | 1,733 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

How to protect/license a static library? Multiple instances?

Hi,

I am deliverying an algorithm to a customer as a static library. I know
how to put a time limit (make the library functions only run for 60
days, for example), or lock the library to a MAC address.

However, what I need, in this case, is to limit the number of instances
of the library that can run on the computer. The algorithm processes
data and I charge my customer based on the number of instances of my
algorithm that they run.

Does any one know of a very simple way to do this? I want to be
absolutely sure that I don't cause my customer unnecessary difficulty.

Thanks,
John

Nov 15 '05 #1
20 2980
<jo********@hotmail.com> wrote in message
news:11*********************@z14g2000cwz.googlegro ups.com...
....
However, what I need, in this case, is to limit the number of instances
of the library that can run on the computer. The algorithm processes
data and I charge my customer based on the number of instances of my
algorithm that they run.


Wrong group. But generally you need to guard access to the library by means
of a mutex/lock/semaphore/whatever is supported by the OS.

Alex
Nov 15 '05 #2
>I am deliverying an algorithm to a customer as a static library. I know
how to put a time limit (make the library functions only run for 60
days, for example), or lock the library to a MAC address.
You really like to piss off customers, don't you? In my experience,
network card failures are not that uncommon (because we use a lot
of them).
However, what I need, in this case, is to limit the number of instances
of the library that can run on the computer. The algorithm processes
data and I charge my customer based on the number of instances of my
algorithm that they run.

Does any one know of a very simple way to do this? I want to be
absolutely sure that I don't cause my customer unnecessary difficulty.


All of the things you mention above WILL eventually cause your
customer unnecessary difficulty. If you don't want to sell it,
don't sell it. You may do the world a favor by not writing such
crippled software in the first place.

Gordon L. Burditt
Nov 15 '05 #3
jo********@hotmail.com wrote:
Hi,

I am deliverying an algorithm to a customer as a static library. I know
how to put a time limit (make the library functions only run for 60
days, for example), or lock the library to a MAC address.

However, what I need, in this case, is to limit the number of instances
of the library that can run on the computer. The algorithm processes
data and I charge my customer based on the number of instances of my
algorithm that they run.

Does any one know of a very simple way to do this?


Yes, but you are only allowed to look at my solution for 3 seconds...
....sorry, time's up.
Nov 15 '05 #4
"Gordon Burditt" <go***********@burditt.org> wrote in message
news:11*************@corp.supernews.com...
I am deliverying an algorithm to a customer as a static library. I know
how to put a time limit (make the library functions only run for 60
days, for example), or lock the library to a MAC address.


You really like to piss off customers, don't you? In my experience,
network card failures are not that uncommon (because we use a lot
of them).


Seems like licensing becomes more important than the quality of the code in
question. ;)

Alex

Nov 15 '05 #5
akarl wrote on 16/08/05 :
Yes, but you are only allowed to look at my solution for 3 seconds...
...sorry, time's up.


LOL !!!

--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html

..sig under repair
Nov 15 '05 #6
On 16 Aug 2005 11:22:50 -0700, in comp.lang.c , jo********@hotmail.com
wrote:

(of distributing software with a runtime license allowing X concurrent
users)
Does any one know of a very simple way to do this?


Yes, but you need to buy a license for the required s/w. Seriously,
there are plenty of solutions out there, but you'll need to buy them.

--
Mark McIntyre
CLC FAQ <http://www.eskimo.com/~scs/C-faq/top.html>
CLC readme: <http://www.ungerhu.com/jxh/clc.welcome.txt>

----== Posted via Newsfeeds.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Nov 15 '05 #7
jo********@hotmail.com wrote:
Hi,

However, what I need, in this case, is to limit the number of instances
of the library that can run on the computer. The algorithm processes
data and I charge my customer based on the number of instances of my
algorithm that they run.

Does any one know of a very simple way to do this? I want to be
absolutely sure that I don't cause my customer unnecessary difficulty.


Some hardware dongles supports this feature.

Daniele.
Nov 15 '05 #8
Great. Can you suggest a few you've had good experience with?

John

Nov 15 '05 #9
Alex,

Thanks for your reply. How do I get a common handle to the
mutex/lock/semaphore/whatever across all the running instances?

Thanks,
John

Nov 15 '05 #10
Should I trust my customers to pay for every instance of my software
that they use?

Give me another suggestion. Are you against all copyright protection?

Nov 15 '05 #11
jo********@hotmail.com wrote:

Thanks for your reply. How do I get a common handle to the
mutex/lock/semaphore/whatever across all the running instances?


This is off-topic. Go somewhere that deals with your system. And
include context.

--
"If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers." - Keith Thompson

Nov 15 '05 #12
jo********@hotmail.com wrote:
Should I trust my customers to pay for every instance of my software
that they use?
That's one possibility, and in some contexts it works well.
Give me another suggestion.
If you can't trust your customers, consider moving your program server-side,
and making them connect to it over the Net. This reduces your packaging,
shipping, and manual-printing costs to zero, and means they never get to
see either your source or your binary. And server-side programming can be
done in ISO C, of course.
Are you against all copyright protection?


I'm all in favour of copyright protection where the author wants that, but
copyright violations are a job for the courts. You were asking about
anti-copying mechanisms, which are a complete waste of time. It only takes
one person to be able to crack your software - and this is always possible
if they have access to the source or the binary - to render all your
expensive copy protection mechanisms inoperable, since from now on everyone
will get their copy from the guy who cracked it (directly or indirectly).

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
mail: rjh at above domain
Nov 15 '05 #13
jo********@hotmail.com writes:
Should I trust my customers to pay for every instance of my software
that they use?

Give me another suggestion. Are you against all copyright protection?


Here are two suggestions.

First, learn to post. Don't assume we all have easy access to the
article to which you're replying. Search for "context, dammit" in
this newgroup for details.

Second, ask somewhere else. There is no way in standard C to do what
you're trying to do. Try a newsgroup that's specific to your system.
I'm afraid we can't help you here.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Nov 15 '05 #14

Gordon Burditt wrote:
I am deliverying an algorithm to a customer as a static library. I know
how to put a time limit (make the library functions only run for 60
days, for example), or lock the library to a MAC address.
You really like to piss off customers, don't you? In my experience,
network card failures are not that uncommon (because we use a lot
of them).
However, what I need, in this case, is to limit the number of instances
of the library that can run on the computer. The algorithm processes
data and I charge my customer based on the number of instances of my
algorithm that they run.

Does any one know of a very simple way to do this? I want to be
absolutely sure that I don't cause my customer unnecessary difficulty.


All of the things you mention above WILL eventually cause your
customer unnecessary difficulty. If you don't want to sell it,
don't sell it. You may do the world a favor by not writing such


Nonsense. Every other software in EDA/Chip design area have this
'instance'
base licensing.
crippled software in the first place.

Gordon L. Burditt

<OT>

Ever heard of flexlm based licensing? But it costs $ and it is
expensive.
Otherwise it is very easy to plug flexlm APIs into your software and it

provides lots of features too.
<OT>

Krishanu

Nov 15 '05 #15
"Krishanu Debnath" <kr**************@gmail.com> wrote:
Gordon Burditt wrote:
However, what I need, in this case, is to limit the number of instances
of the library that can run on the computer. The algorithm processes
data and I charge my customer based on the number of instances of my
algorithm that they run.

Does any one know of a very simple way to do this? I want to be
absolutely sure that I don't cause my customer unnecessary difficulty.


All of the things you mention above WILL eventually cause your
customer unnecessary difficulty. If you don't want to sell it,
don't sell it. You may do the world a favor by not writing such


Nonsense. Every other software in EDA/Chip design area have this
'instance' base licensing.


So have other packages in niche markets. In niche markets, you know
exactly who your customers are, often by name, and you have no problem
controlling who gets who. For software intended for the general market,
the above will, not may, will, lose you customers.

(If you can afford to irritate and distrust customers who are locked
into your market anyway, a dongle is often the best solution, btw.)
crippled software in the first place.

Gordon L. Burditt

<OT>

Ever heard of flexlm based licensing? But it costs $ and it is
expensive.


*Shrug* So get a cracked version.

Richard
Nov 15 '05 #16

Richard Bos wrote:
"Krishanu Debnath" <kr**************@gmail.com> wrote:
Gordon Burditt wrote:
>However, what I need, in this case, is to limit the number of instances
>of the library that can run on the computer. The algorithm processes
>data and I charge my customer based on the number of instances of my
>algorithm that they run.
>
>Does any one know of a very simple way to do this? I want to be
>absolutely sure that I don't cause my customer unnecessary difficulty.

All of the things you mention above WILL eventually cause your
customer unnecessary difficulty. If you don't want to sell it,
don't sell it. You may do the world a favor by not writing such
Nonsense. Every other software in EDA/Chip design area have this
'instance' base licensing.


So have other packages in niche markets. In niche markets, you know
exactly who your customers are, often by name, and you have no problem
controlling who gets who. For software intended for the general market,
the above will, not may, will, lose you customers.

(If you can afford to irritate and distrust customers who are locked
into your market anyway, a dongle is often the best solution, btw.)


That's exactly what happens in EDA industry. It is a very small
business
area and most of the tools are *very* expensive.

By the way, flexlm is a software base license management tool.
crippled software in the first place.

Gordon L. Burditt <OT>

Ever heard of flexlm based licensing? But it costs $ and it is
expensive.


*Shrug* So get a cracked version.


*Cough* fortunately it is not that easy.

Richard


Krishanu

Nov 15 '05 #17

Krishanu Debnath wrote:
Richard Bos wrote:
"Krishanu Debnath" <kr**************@gmail.com> wrote:
Gordon Burditt wrote:
> >However, what I need, in this case, is to limit the number of instances
> >of the library that can run on the computer. The algorithm processes
> >data and I charge my customer based on the number of instances of my
> >algorithm that they run.
> >
> >Does any one know of a very simple way to do this? I want to be
> >absolutely sure that I don't cause my customer unnecessary difficulty.
>
> All of the things you mention above WILL eventually cause your
> customer unnecessary difficulty. If you don't want to sell it,
> don't sell it. You may do the world a favor by not writing such

Nonsense. Every other software in EDA/Chip design area have this
'instance' base licensing.


So have other packages in niche markets. In niche markets, you know
exactly who your customers are, often by name, and you have no problem
controlling who gets who. For software intended for the general market,
the above will, not may, will, lose you customers.

(If you can afford to irritate and distrust customers who are locked
into your market anyway, a dongle is often the best solution, btw.)


That's exactly what happens in EDA industry. It is a very small
business
area and most of the tools are *very* expensive.

By the way, flexlm is a software base license management tool.
> crippled software in the first place.
>
> Gordon L. Burditt
<OT>

Ever heard of flexlm based licensing? But it costs $ and it is
expensive.


*Shrug* So get a cracked version.


*Cough* fortunately it is not that easy.


*Wink & nudge* <ot/> <ot/> <ot/>...

Richard


Krishanu


Nov 15 '05 #18
>Should I trust my customers to pay for every instance of my software
that they use?
If you don't trust your customers, maybe you shouldn't sell to them,
or maybe you should find another method of billing, such as a
one-time-fee, which is harder to cheat on.
Give me another suggestion. Are you against all copyright protection?


Copyright has nothing to do with node-locking or other use limits
in code. Copyright is enforced in courts.

I am against code which breaks and makes a bad situation worse for
legitimate, paying customers, particularly when their hardware
breaks. Such code also tends to defeat backups. It either enforces
something which is *NOT* the same as what the license says, or what
the license says is just plain inconvenient for the customer to
deal with. And although some vendors might allow the customer to
get new license keys if he changes his hardware, that procedure is
rarely free, available 24x7, and only takes a couple of minutes.

Gordon L. Burditt
Nov 15 '05 #19
A dongle is about the only way to do that - and users don't like dongles.

Unless your software is hosted on -your- server, there's no way to tell if a
particular software is running on two different (and probably unconnected)
machines.

Microsoft made -billions- by not being too concerned about end-user
"piracy".

--
---------------------------------------------------------------------
DataGet & PocketLog www.dataget.com
Data Collectors www.baxcode.com
--------------------------------------------------------------------

<jo********@hotmail.com> wrote in message
news:11**********************@o13g2000cwo.googlegr oups.com...
Should I trust my customers to pay for every instance of my software
that they use?

Give me another suggestion. Are you against all copyright protection?

Nov 15 '05 #20
go***********@burditt.org (Gordon Burditt) writes:
Should I trust my customers to pay for every instance of my software
that they use?


If you don't trust your customers, maybe you shouldn't sell to them,
or maybe you should find another method of billing, such as a
one-time-fee, which is harder to cheat on.

[...]

I suggest that this entire discussion is completely off-topic for
comp.lang.c. There's a misc.int-property newsgroup that (I presume)
discusses intellectual property issues; I haven't read it, but I'd
guess that all this has been discussed to death there. (They may even
have a FAQ list.)

The only C issue is whether it's possible to do what the OP was asking
about in standard C. The answer is no.

Next?

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Nov 15 '05 #21

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Martin V. | last post by:
Hello, Is the multiple instances capability of SQL2K mature enough for a Production system? We're looking at upgrading our hardware but the proposed solution calls for consolidating two...
1
by: Ben Fidge | last post by:
Hi, Our hosting company recently shut-down our site because of the resources it was using on a co-hosted server. Apparently, it was spawning multiple instances of ASPNET_WP.EXE. I'm having a...
1
by: Vivek | last post by:
Hi, I am developing a MDI application. I need to track the child forms open so that I can stop a user from opening the multiple instances of the same child form. Now what is the best way of...
4
by: Mike | last post by:
Class A public objX I want to create 2 or more instances of Class A and have the same value for objX in all instances. Instance1 of Class A Instance2 of Class A Instance3 of Class A
5
by: pkoniusz | last post by:
Hello everyone. The problem may be obvious, though I'm a bit puzzled by the error LNK2028 when attempting to utilize my static library. The all methods of the class defined within that library...
3
by: =?Utf-8?B?VG9kZA==?= | last post by:
What is the memory footprint of static methods of a windows app running on a server when the server spins up multiple instances of the application? In my envirionment, we have a Citrix server...
2
by: Patrick Stinson | last post by:
Is it a correct to assume that you can use multiple instances of python altogether if each is loaded from a separate dll? For instance, if I write a couple of dll/so libs, and each has python...
5
by: pgrazaitis | last post by:
I cant seem to get my head wrapped around this issue, I have myself so twisted now there maybe no issue! Ok so I designed a class X that has a few members, and for arguments sake one of the...
4
by: tvnaidu | last post by:
I created an executable using static library instead shared lib, I am running multipe instances of this executable, does it takes more memory with static library compare to shared library?. Does...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.