Understanding Network Floating Licensing

Network Floating Licensing is where an application may be restricted to running on a specific network, and restricted to a certain number of concurrent seats (where a seat may be a user or running instance of your application).

Semaphore Files

A Network Semaphore File is a file, which contains no useful data, stored on a common network directory used to assist in enforcing a Network Floating License in an application. One file is created and locked exclusively for each active workstation or instance of your protected application. Other LAN users attempting to run the application will not be able to use any semaphore files that are locked, which is how this can enforce license compliance which limits the number of network "seats." This approach is ideal for many, as there is no need to manage a separate server or appliance to enforce restrictions. The NetworkFloatingLicense sample is a good starting point for seeing how this kind of functionality works, and how it may be implemented into your application.

Important

The computer hosting the Window (SMB/CIFS) share (the server) which houses the semaphore files is ultimately responsible for handling when a file is unlocked. In most cases, applications which are terminated gracefully will unlock and delete their semaphore files. If the application crashes, however, the server will eventually unlock the semaphore file, but it will not delete the file. Having many of these files present can lead to some performance degradation, as each of these orphaned files can take a while to try to lock or delete. For this reason, the NetworkSemaphore constructor has a runCleanupThread argument, which may be set to true to have active processes try to delete orphaned files quietly, in the background. Of course, this will increase the amount of bandwidth used, but can help increase performance keeping the share location clear of any orphaned files.

This functionality is supported on environments where semaphore files are hosted on a Windows (SMB/CIFS) share, which functions best on a Local Area Network (LAN). While this may be used in a Wide Area Network (WAN) environment (which includes scenarios where a user access a given "LAN" over a Virtual Private Network [VPN] connection), it is strongly advised testing is done before deploying to any given WAN environment. This is because the performance of this feature is centered around that of the Windows (SMB/CIFS) shares being used to host the the semaphore files (and WAN/VPN environments can see much slower performance than a typical LAN configuration).

Additionally, any users who will use an application using this type of licensing will need access to read, create, write, modify, and delete the semaphore files.

This is presently the recommended approach for anyone using PLUSManaged to implement this licensing feature.

SOLO Server

In cases where it is not practical or feasible to use semaphore files, it is also possible to use SOLO Server to enforce concurrent seat limitations. In this case, SOLO Server web services are used to manage the state of each "session." These web services may also be used to automate authorization of "check-outs" for temporary, off-line use of the licensed application. The SimpleNetworkFloating sample is a good starting point for seeing how this kind of functionality works, and how it may be implemented into your application.

Important

At the time this documentation was compiled, SOLO Server's NetworkFloatingService was still under development and testing. If this is a service you are interested in using, please contact us for additional details, documentation, status updates and a copy of the SimpleNetworkFloating sample application.