Concurrent User Licensing

40 views
Skip to first unread message

Keith Canniff

unread,
May 17, 2021, 3:28:42 PM5/17/21
to Migrated By Firefly
Back in the Magic/Pervasive days, both products had their own concurrent license models, and if you wanted to install them on standalone computers, you had to get a license for them as well. 

Now with the Firefly migrated code, those license restrictions are gone. Well that's great from our standpoint because we don't have to pay Pervasive and/or Magic anymore. 

However from our own sold software's point of view, that's bad because our customers can have unlimited concurrent users and deploy it on unlimited standalone computers. 

Any suggestions for licensing software to use? 

Thanks

Keith

Noam Honig

unread,
May 18, 2021, 4:07:20 AM5/18/21
to Keith Canniff, Migrated By Firefly
I would use the database sessions view to see how many concurrent connections are there, and license them  based no that
Noam Honig  
Founder & CEO


--
You received this message because you are subscribed to the Google Groups "Migrated By Firefly" group.
To unsubscribe from this group and stop receiving emails from it, send an email to migrated-by-fir...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/migrated-by-firefly/e8d74498-939c-4832-834e-d1e4e75ee842n%40googlegroups.com.

shuki bir

unread,
May 19, 2021, 4:32:40 PM5/19/21
to Migrated By Firefly
I created a simple logic that helped me control this issue.
I save the number of concurrent sessions that the customer needs (or paid for) somewhere inside the client's db.
Also I have another table called CurrentSessions.

When a user login,  I count the number of rows in the CurrentSessions table, and compare that to the number of concurrent sessions that the
client is allowed.
If The count is smaller:
 I allow the user to continue the login, and create a record inside the CurrentSessions table,  and uses that table
to store some other values for the current user.
I save Machine Name and Windows User Name (because I use this 2 params to identify a uniqe user.
I also save some other data, such as "Terminal" and UserName of the app, so I can than show a UI with a grid of the CurrentSessions in order
to manage them while giving tech support to the client.

otherwise,
 I prompt a message saying "you are not allowed, because..."

When a user closes the app,
I delete it's record from the CurrentSessions table.


I also think to expand this logic and let the user "trade" his session for another.
I mean that when he try to login and get a message saying that all the licenses are in use, then I will show him the grid with the CurrentSession 
table rows with the data, and able him to delete a record in order to make space for his workstation license.

This will be need another check:
In the ApplictionCore you will need to add a timer that check every X minutes that the currentUser has it's equivalent record in the CurrrentSession table.
If he doesn't, than show a message that he has no license and exit the app automatically.

Hope It Helps,
Shuki

ב-יום שני, 17 במאי 2021 בשעה 22:28:42 UTC+3, kcan...@gmail.com כתב/ה:

renato.d...@gmail.com

unread,
May 26, 2021, 6:55:57 PM5/26/21
to Keith Canniff, Migrated By Firefly

Hi Keith,

 

Just seen this email… Did you solve this issue ?

 

The technique we have used since 1996 in Magic, and then now with a firefly migrated application is for each user to add a record in a common table, lock it, and keep it locked for the duration of the user’s application session.

When you want to check for license usage, you would read the table, and count the number of locked records you have. That gives you a count of the number of people using the application.

Although a primitive approach, it has been effective…

 

If you came up with a better approach or a reasonable third party tool, I would love to hear it.

 

Renato.

--

Reply all
Reply to author
Forward
0 new messages