Desktop applications and refresh activation type licensing lazarus / 8-Other ---------------------------------------------------------------------- JuhaManninen · 2011-07-15 11:56 This post is inspired by the "Future of Lazarus / FreePascal" thread discussion of web versus desktop applications. I don't like web applications much myself. They often have OS or browser version related problems. Yet, some web-interfaces work reasonably well but making them has required more effort and man-hours than a comparable desktop app. That was the whining part. Now about licensing techiques for commercial apps: In my current summer job I make a strategy for licensing SW products and create code to integrate them with the licensing system. Traditionally there is a digitally signed license file defining the product, version and expiration date. It is generated by the vendor based on client computer's hardware ID (can be MAC address or HD ID or such). The client must find out the ID, send it to the vendor who then generate a license file and sends it back. The client must copy it to a right place and then hopefully the SW works. Or, the license can be tied to a HW dongle plugged into a computer. Bigger client companies configure a floating license server which is also tied to hardware ID or dongle, but once installed it delivers licenses to all computers inside LAN. The dongle is secure and allows easy rehosting (plug it to another computer), but it costs and requires physical transportation. The vendor has hard times getting them back from ex-customers. Hardware ID is not fully secure (eg. MAC address can be reprogrammed) and also rehosting is a problem. When the vendor sends a new license file for a client's new computer, he has no way to verify the client really stopped using the old computer. Quite much of license security is based on trust. It is normal in a company-to-company business. Now enter the Activation Server. It is supported by the provider I am evaluating (Reprise), but I only want to advertise the concept instead of the company. Basically Activation Server automates the steps of digging out a hardware ID, sending it, generating and signing the license file, sending it back and copying it to a directory. Instead of those steps the vendor provides an activation key for the client who then activates (=creates) a license file using a simple GUI integrated in an application or simple web-interface as a backup. That's a more automated process but otherwise the same old concept. A new concept is a "refresh" type activated license. This type of license is made to last a short period, just few days. After activation (=creation) it is refreshed daily from the same activations server either by the application itself or by a scheduled process. Without refreshing the license works only those few days. It also means that a computer (laptop maybe) can be disconnected for few days and the app still works. When it is plugged again and the app started, the license gets refreshed automatically. Such license can be rehosted easily by activating in another machine. Number of rehosts can be limited but the limit can safely be high. The app continues working in the old computer only few days. If the user updates his machine and destroys the license file, he can activate it again and the rehost counter is not decremented. Cool! The activation server is a critical server but not as critical as a web-app server or a floating license server on a company LAN. It does not get much traffic or load. The concept is getting popular with small SW vendors. I see it brings some benefits of web-apps to desktop apps. There should be an open source project using that idea, to support commercial but cheap SW. Regards, Juha P.S. One more thing: there exists "fingerprint" technology for identifying a computer. It uses many parameters + has a tolerance against small changes in HW. It would be much better that simple MAC address etc. Unfortunately it is patented and the license fees are high. Microsoft was sued, and lost over this. http://www.bloomberg.com/news/2011-01-04/microsoft-loses-appeal- in-388-million-uniloc-verdict-update1-.html (I don't really understand how identifying a computer with many parameters can be patented but that's how it goes) ---------------------------------------------------------------------- IPguy · 2011-10-17 01:20 Juha, I am in the midst of struggling with concurrent licensing for the enterprise application I am writing and have been leaning towards something similar to the refresh server concept. Another option would be to create a web application and license it for a set number of concurrent connections. Do you know if anyone has created or started work on a refresh server? What came of your evaluation of Reprise? ---------------------------------------------------------------------- JuhaManninen · 2012-05-23 17:08 Quote from: IPguy on October 17, 2011, 03:20:03 amI am in the midst of struggling with concurrent licensing for the enterprise application I am writing and have been leaning towards something similar to the refresh server concept. Another option would be to create a web application and license it for a set number of concurrent connections. Sorry IPguy, I have completely missed your reply because of the time gap. Is your issue still valid? Desktop and web applications both have advantages, and both will be needed also in future. QuoteDo you know if anyone has created or started work on a refresh server? You mean an open source refresh activation server? No, I don't think such project exists. It would be very nice to have but I can say it is not a trivial task. There are amazing number of details that must be considered for a licensing system. I didn't understand it before I actually implemented such a system (using the Reprise SW). QuoteWhat came of your evaluation of Reprise? I first evaluated it and created a test licensing system for the company's SW products. It included clue software to integrate the license features to the products. Then it was purchased (based on my recommendation), integrated to the products and used. In fact I didn't see it used for customers yet during my summer job. The process took longer than I expected, I was there 3 months. Reprise license manager is a well designed product and also reasonably priced. Their price depends on the customer's sales/year, so even small companies can afford it. Their main competition is FlexNet Publisher (former FLEXlm) from Flexera Software, the old market leader. For some reason there is not much other competition, when comparing the comprehensive feature list. Besides the refresh type activation license is unique, no other vendor has it. So, I can recommend Reprise if someone asks my opinion. Juha