我有一个在基于Gentoo的LAMP堆栈上运行的Web应用程序。我的客户购买软件作为服务,我托管一切。但是,客户自己的网络内部需要进行现场部署。
目前,由于我托管系统,因此应用程序中没有内置的许可证管理。我基于用户帐户和数据容量(它是用于计量数据的处理和分析应用程序)进行计费,我只是设置客户支付的任何费用,客户端无法自行设置这些内容。即使没有现场安装,也应该进行更改以获得更好的可扩展性。
我正在寻找许可管理框架和/或您已经实施或已经看到在其他地方工作良好的典型方法。我的要求是:
对于某些现场场景,需要某些特定的操作系统,通常是某些版本的Windows Server,但各种Linux发行版也越来越受欢迎,特别是在公共部门。
从用户的角度来看,我对FogBugz的许可证管理非常满意,看来Joel Spolsky从供应商的角度来看它是满意的,而且它是跨平台的,所以它会成为一个很好的参考我的目标是什么。
答案 0 :(得分:3)
别。您花在编写许可证密钥系统上的每个小时都是一小时,您不会花费修复错误或添加功能。通过编写许可证管理系统,您可以花费资源来降低产品的价值!
版权所有代码,请律师并随时准备起诉任何侵犯您版权的人,并将其称为一天。
答案 1 :(得分:1)
我见过一家公司使用预先构建的Linux VM映像部署他们的现场Web系统。客户端在VMWare下运行它,您无需担心客户端系统上的实际操作系统。另外,它们不为运行Web服务器的实际Linux系统提供登录,因此最终用户实际上无法进入并修改任何内容。
我不确定他们如何处理许可限制,但他们在那里。每当客户端请求更多用户许可时,可能会提供更新的VM映像。
虽然这并没有直接解决阻止多个实例运行的需要。我想你总是可以根据系统配置做一些激活密钥系统。
答案 2 :(得分:0)
我相信你可以在大多数操作系统上找到cpu的序列号;你可以使用它,毕竟如果他们移植cpu安全,假设旧机器将不再使用?
其次,可以使用Web服务来查找当前数据容量以及客户已支付的费用。