开源许可证_开源许可证管理器
开源许可证
什么是许可证管理器?
许可证管理器用于强制执行许可证权利,或至少用于支持强制执行。 当您开发开源程序时,不需要太多的事情或可以做的事来执行许可证权利。 代码在那里,如果有人想滥用该程序,没有什么技术可以阻止他们。 封闭源程序是不同的。 (是吗?)在这种情况下,客户端无法使用源代码。 无法更改程序以使其绕过许可证强制执行代码,因此对于许可证权利强制执行具有真正的作用。
但是这是错误的。
事实是,在这方面,封闭源代码和开放源代码之间没有根本区别。 封闭的源代码也可以更改。 毕竟,执行的最终“源”是机器代码。 有一些工具可以帮助您分析二进制文件或将二进制文件解码为或多或少的人类可读格式,从而有可能规避许可证管理。 这是可能的,并且有大量的示例。 在某些国家/地区托管的某些网站上,您可以简单地下载几乎任何软件的破解版本。 我不建议这样做,不仅是出于道德原因。 您只是不知道哪个站点是由秘密服务或犯罪分子提供资金的(如果有区别),而且您也不知道是否使用破解版在计算机上安装了间谍软件。
有一次,我在一家公司工作,其软件成功与否的衡量标准是发布后直至破解版本出现在不同站点的天数(与竞争对手的同等价值相比)。 数量越少,他们的软件就越快乐。 他们疯了吗? 他们为什么高兴地知道自己的软件已被破解? 当天数只有一天时,为什么他们不考虑采用更强大的许可证执行措施,例如变体代码,硬件密钥等?
答案如下。 该公司非常清楚许可证管理并不是要防止未经授权的使用。 可以以这种方式使用它,但是它将产生两个主要影响,这将破坏您的业务:
- 编写许可证管理代码会花费时间在非生产性代码上。
- 许可证管理(通过这种方式)对您的客户不利。
切勿对客户实施许可证管理。
如果您的许可证管理解决方案过于严格,则可能会限制客户的软件使用。 使用硬件密钥交付代码时,给客户带来不便。 当您将许可证绑定到正在运行该应用程序的计算机的以太网MAC地址时,您将再次与客户合作。
Set != Set
面对所说的事实:总会有人在不支付费用的情况下使用您的软件。 他们不是您的客户。 他们会从你那里偷东西吗? 不必要。 如果有人不购买您的软件,那么他不是您的客户。
如果您知道他们没有办法支付软件费用,而决定权就在您手中,是要他们使用软件还是使用竞争对手的软件,您会选择什么? 我想您甚至希望在非客户领域使用您的软件来获得更多反馈和更多知识。 使用软件的人比不使用软件的人更有可能成为您的客户。 这就是大公司向大学和其他学术机构出售教育许可证的原因。
在这种情况下,我们是否应该使用许可证管理? 许可证管理是否在各个方面都存在缺陷? 我的回答是,不是。 即使软件是开源的(但不是免费的,例如Atlassian产品),也存在用于许可证管理的正确用例。 要查找和理解此用例,需要了解一件事:
该软件适用于客户,代码中的任何一行都必须支持客户以实现其业务目标。
支付软件费用是针对客户的。 如果没有人资助软件,则该软件将死亡。 没有什么像免费的午餐。 有人必须为此付出代价。 成为客户并为使用的软件付费是最直接的业务模型,并且可以通过供应商为客户提供最强大的反馈和控制,以获取所需的功能。
同时,为软件使用付费不是客户的核心业务。 为所使用的资源付费支持他们实现业务目标是间接的。 这就是许可证管理的画面。 它可以帮助客户履行职责。 它可以帮助他们记住长期的需求。 这也意味着许可证管理不应阻止功能。 如果许可证过期,任何功能都不应停止。 更不用说可能会阻止访问实际上属于客户的数据的功能。
如果您以这种思维方式进行许可证管理,您会发现甚至开源(但不是免费)软件也可能需要它。
许可证管理工具:license3j
许多年前,我在寻找一些许可证管理库,但发现没有开源。 我想创建一个开源(但不是免费的)应用程序,它要求许可证管理也是开源的。 考虑到我们的预算(对于兼职启动软件而言,其预算仅为零)(实际上,它在商业上确实惨遭失败,但这是另外一回事),我发现这也是高估了。 因此,我创建了License3j ,它令人惊讶地成为我的OS项目中最常用的库之一。
关于业务对象,License3j非常简单。 它使用一个简单的属性文件,并允许应用程序检查各个字段的内容。 增加的价值是处理电子签名并检查许可证文件的真实性。 从本质上讲,它几乎不只是一个类文件。
com.verhas license3j 1.0.4
随意使用它。
翻译自: https://www.javacodegeeks.com/2014/04/opensource-license-manager.html
开源许可证
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
