Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #14999

Re: Network license control for a Java application

From "Qu0ll" <Qu0llSixFour@gmail.com>
Newsgroups comp.lang.java.programmer
References <tL-dnV9Cee7NmyfSnZ2dnUVZ_q2dnZ2d@westnet.com.au> <jpdkim$ajt$1@dont-email.me> <1jo1065lokvjq$.68ia31b03umg$.dlg@40tude.net>
Subject Re: Network license control for a Java application
Date 2012-06-02 13:01 +1000
Message-ID <yP6dnTNUSJrfH1TSnZ2dnUVZ_g6dnZ2d@westnet.com.au> (permalink)

Show all headers | View raw


Apologies for the lack of indenting...

"Peter Duniho"  wrote in message 
news:1jo1065lokvjq$.68ia31b03umg$.dlg@40tude.net...

> On 05/21/2012 02:08 AM, Qu0ll wrote:
>> I have been tasked with providing some form of network license control
>> for a Java application. The app would be stored on a network drive and
>> run from a client machine. The basic idea is that it will be able to
>> work out how many times it is being run concurrently and prevent the
>> N+1th user from running the software where N is the number of concurrent
>> licenses the customer has purchased.
>>
> My first idea would be to have the application open a connection to a
> "license server" that would only accept N connections. With some sort of
> keep-alive packet you could time out systems that crashed. (I have seen
> windows systems crash and leave TCP/IP connections open).

As an alternative to adding to network traffic with keep-alive packets, the
license server could simply requery active instances when a new instance
attempts to run.  An instance that doesn't respond at that point can be
considerd defunct.

An even simpler alternative to a license server would be to use UDP
broadcasts to have a new instance query the LAN for any other instances.
If too many respond, then the new instance doesn't run.  This approach
doesn't require any centralized license server.

It's important to note, however, that with all of the suggestions offered
so far it is not difficult to hack around the DRM.

One important _benefit_ to those suggestions IMHO though is that they
aren't likely to create false positives (where "positive" is the denial of
an instance running).  That is, while due to network congestion and other
issues it's possible an instance would be allowed to run when it shouldn't
have been, but it's unlikely for an instance to be prohibited when it
should have been allowed.

Personally, it's my opinion that DRM should always fail in favor of the
licensee.  Granted, this generally leads to weaker,
more-easily-circumvented DRM but IMHO that's as it should be.  DRM is
useful for keeping honest people honest; especially in the realm of
software-only DRM, if it's used to try to keep dishonest people honest, it
invariably fails to accomplish that goal, while inconveniencing (sometimes
in dramatic, significant ways) the honest people.

Pete

-----------------------------------------

Thanks very much for this Pete.  Using your idea and guidelines I was 
successfully able to implement network license control using multi-cast UDP.

--
And loving it,

-Qu0ll (Rare, not extinct)
_________________________________________________
Qu0llSixFour@gmail.com
[Replace the "SixFour" with numbers to email me] 

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Network license control for a Java application "Qu0ll" <Qu0llSixFour@gmail.com> - 2012-05-21 19:08 +1000
  Re: Network license control for a Java application Hatter Jiang <jht5945@gmail.com> - 2012-05-21 05:04 -0700
  Re: Network license control for a Java application "Jeffrey H. Coffield" <jeffrey@digitalsynergyinc.com> - 2012-05-21 07:47 -0700
    Re: Network license control for a Java application Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-05-21 09:48 -0700
      Re: Network license control for a Java application "Qu0ll" <Qu0llSixFour@gmail.com> - 2012-06-02 13:01 +1000
        Re: Network license control for a Java application "Qu0ll" <Qu0llSixFour@gmail.com> - 2012-06-15 19:31 +1000

csiph-web