
An Introduction to Offline Licensing with the C++ LicenseSpring SDK.
You're a Software Vendor that clocked in many thousands of man-hours in the development of your web app, SaaS, Platform, or other Software Application and you are now looking was sharing your work with the world! If, like many, you are confused what a License Manager is and does, you're not alone! Marketing material in the Software industry tends to be unfortunately riddled in jargon, as it's sometimes difficult to understand what is being said. My goal in this post is to help demystify what a Software License Manager is and can be, and how it fits in your process of distributing your Software to it's intended audience.
It's not so straightforward to get an answer to this, since, people refer to two separate systems when talking about Software License Managers. To avoid confusion, we thought it would be helpful to provide the two definitions of what people commonly refer to as a license manager:
When you look up Software License Manager on Google or on Software Review Sites, most ads, and top search results point to services offered by large enterprise companies (usually with deep pockets and oversized marketing budgets), and there are tons of companies to choose from!
SAM stands for a Software Asset Manager. It's usually a console that large companies use to keep track of Software Licenses they acquired and where they are being used. This is helpful in knowing which licenses are used, and optimize software licensing costs. SAMs also make License Usage auditing easier: Software Vendors who sell and deploy their software to Enterprise customers sometimes have clauses in their agreements allowing them to see how their software is being used, and a SAM will make this audit process automated (I'm looking at YOU, Oracle!).
(Disclosure: LicenseSpring is not a SAM, and apart from a mild fascination with Larry Ellison, I have no affiliation to Oracle, the company.)
SLMS stands for "Software License Management Software". This is a term that refers to a suite of tools that software vendors use to configure the state of the software they distribute according to their license agreements. This will typically include:
LicenseSpring is a SLMS. We're also a LaaS (Licensing-as-a-Service).
(Disclosure: Ok you got me, I've never heard of an `SLMS` before, I made up my own acronym for that one. That said, I defend my initiative to distinguish between a SAM, and a Vendor License Manager and VLM just doesn't sound right. I told you the industry is riddled in jargon!)
TL;DR Not everyone!
In terms of pretty much any metric, usage / compute cycles used etc. Open Source Software is the most commonly-used licensing mechanism for software that is intended to be used externally. There usually isn't much need for any sort of account / monitoring / enforcement tool given the permissive nature of Licensing for Open-Sourced Software, and the Community tends to be quite good at abiding by the terms. If you are distributing Open Source Software that you authored, then you usually just need to include the License agreement with your code. Here's an exhaustive list of them.
If you're developing and publishing Commercial software, however, you will most likely need a way to issue licenses for your end users. For example, if you're packaging your software with different editions, looking to issue trial licenses, turn on/off modules, revoke licenses for customers that didn't pay, or help prevent unauthorized usage of your creations.
Pretty much everything on this list should be offered by your Software License Manager one way or another:
I actually wrote a whole post on the merits of operating your own License Server vs using a Cloud Provider. TL;DR: if you have extreme reliability, or security requirements, and love to run your own infrastructure, then Self-Hosted is for you. For all other mortals, a L-a-a-S is probably an easier to implement, cheaper, and overall better solution (maybe us???)