Infralution Support Forum Index Infralution Support
Support groups for Infralution products
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Floating license server on the Internet

 
Post new topic   Reply to topic    Infralution Support Forum Index -> Licensing Support
View previous topic :: View next topic  
Author Message
CADbloke



Joined: 07 Jan 2016
Posts: 25
Location: Sydney

PostPosted: Tue Apr 25, 2017 9:08 am    Post subject: Floating license server on the Internet Reply with quote

Greetings

I am pondering the feasibility of running a floating license server on the Internet as an alternative to the client running it internally on their network.

If it's a truly dumb idea - why?

I see in \SampleLicenseService\LicenseServer.cs there can be only a single instance, is that a windows service thing or is it so the client can't spin up multiple servers to dole out as many floating licenses as they want?

Am I correct in thinking that the sample floating license server is attached to a license key so each customer would need their own service?

If it's still not my dumbest idea (so far), I am pondering the feasibility of something that looks a little like https://github.com/postsharp/PostSharp.LicenseServer ...but not enough to fall foul of their plethora of NDA warnings ... in a public repo with an MIT license. uh, WUT? Is ok, I told them nice and subtle like.

I was thinking it could have an admin portal for client admin - they add clients who get their license / guid & server address emailed to them. The admin can remove clients too and would be responsible for the root license. Admin sees a client usage log, perhaps. Sounds like fun, right?

Perhaps the Central floating server could find the correct license file in a local directory by matching the requester to the Customer. This would, of course, complicate housekeeping. Or not, I suppose it could just talk straight to the ILS database. That would probably be more sensible, eh? I should cross out that first bit, eh? 4 hours sleep.

Thoughts?
Back to top
View user's profile Send private message Visit poster's website
Infralution



Joined: 28 Feb 2005
Posts: 5027

PostPosted: Wed Apr 26, 2017 10:38 am    Post subject: Reply with quote

It would be feasible to implement an internet based floating license server however this would have more in common with our authentication server than it would with the sample floating license server. We have considered the possibility of adding something like this functionality to the authentication server.

From a customers point of view the disadvantage of a license server that they don't host is that if your website goes down (or their internet connectivity) then they can't use their product.

The other aspect is that (as you have pointed out) the customer would probably have to have some way to manage license. It would also put a MUCH larger load on the authentication service - since each application instance would have to contact the service regularly (with a heartbeat) so that if an application crashes without releasing its license the server is able to detect this and release the license automatically. The sample license server does this. In its case the network traffic is all internal to the network and only computers belonging to the customer are sending heartbeats to the server so there isn't too much traffic.
_________________
Infralution Support
Back to top
View user's profile Send private message Visit poster's website
CADbloke



Joined: 07 Jan 2016
Posts: 25
Location: Sydney

PostPosted: Wed Apr 26, 2017 11:42 am    Post subject: Reply with quote

Infralution wrote:
It would also put a MUCH larger load on the authentication service...

A denial of service attack composed entirely of heartbeats from paying customers would be an awesome problem to have.

Serving your dream sales target is feasible: https://www.troyhunt.com/scaling-standard-azure-website-to-380k/ & https://github.com/aspnet/benchmarks#results but I think I will file this in the "wait until they ask for it and charge accordingly" basket.
Back to top
View user's profile Send private message Visit poster's website
CADbloke



Joined: 07 Jan 2016
Posts: 25
Location: Sydney

PostPosted: Thu Nov 09, 2017 10:19 pm    Post subject: Reply with quote

Yeah, so they asked about it. I will need to do this to license plugins for AutoCAD etc. because they have monthly and annual subscription options that let you use your software on any computer, as long as it is one at a time.
Infralution wrote:
From a customers point of view the disadvantage of a license server that they don't host is that if your website goes down (or their internet connectivity) then they can't use their product.

Yah, I think there would need to be some caching and a fall-back involved there. I suppose that would leave the system open to gaming if they were really sophisticated about it but I think the kind of people who do that are both rare and not worth bothering with.

The heartbeat wouldn't need to be especially frequent, it could probably be just at the start and end of a session and expire the local cached license after an arbitrary time of inactivity or lack of connectivity. I need to check for multiple sessions on the same computer (ok by me) but that's yet another vulnerability if the check isn't thorough. Multiple sessions should just use the same license, actually.

Infralution wrote:
if an application crashes without releasing its license the server is able to detect this and release the license automatically.

This would really only be problematic if the next license request was from a different computer. If you get a license request from the same endpoint that currently owns the lease then you could hand it the existing lease, or (better) the app could look for a locally cached license and talk to the server about that license.

You would certainly want to limit the number of leases whose local lease hasn't expired, and tie them tightly to the hardware profile (which won't change during a session apart from network adapters turning on & off) but this is probably another edge case of people I shouldn't bother with. It would be relatively easy to know if multiple identical computer-names and user-names had the same lease on different hardware. Thinking out loud here for those following at home.

Well, there goes the weekend ... week ... month
Back to top
View user's profile Send private message Visit poster's website
CADbloke



Joined: 07 Jan 2016
Posts: 25
Location: Sydney

PostPosted: Mon Feb 05, 2018 11:12 am    Post subject: Reply with quote

So basically it works like this: https://xkcd.com/974/

For those contemplating this - think the business problem through first, this is no trivial task. Do-able? Certainly. Best use of my limited time? Not today.

Next plan: tweak IPN with a CustomGenerator.
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Infralution Support Forum Index -> Licensing Support All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group