473,795 Members | 3,048 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

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
20 3039
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********@hotm ail.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.c om, 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********@hotm ail.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********@hotm ail.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_Keit h) 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********@hot mail.com> wrote in message
news:11******** **************@ o13g2000cwo.goo glegroups.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

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

Similar topics

1
2215
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 currently separate SQL Server's onto one machine with two CPU's. Of the current two servers, one is for OLTP (~800Mb) and the other for
1
2081
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 little trouble recreating this locally so was wondering where I can information about when, why and how IIS/ASP.NET will spawn new instances of ASPNET_WP.EXE so that I can gain an insight into why this is happening on our server.
1
3466
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 achieving it. I tried using an Forms Array but is not the most efficient way. I think I can create a collection but then how do I create a global collection that can be accessed from all the forms. Please help. Thanks
4
3149
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
2855
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 do not pose any troubles, but template based methods. Let's say this is a header: class LooseFunctions {
3
3211
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 farm running .Net 2.0 windows apps. Does the framework allow for instances of the same application to access the same memory space where static methods are stored (assuming the security context is the same for each instance)?
2
1944
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 statically linked in, is it safe to assume that since dlls use their own address space then each dll would have it's own GIL, and will therefore coexist safely within the same app? This is correct across all platforms, yes? I ask because I will be...
5
1740
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 members Y is the location of a file to be read. The original design assumes that this class will be instantiated and each instance will happily mange its own members. (ie One file location per instance...no thread-safety). Now another class A...
4
4446
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 shared library had any advantage than static library in multiple instances?. thanks in advance
0
9672
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9519
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 effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10215
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 tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
9043
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7541
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6783
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5437
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5563
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
3727
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

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.