如何为Webapp的现场安装(最好是跨平台)实施许可证管理?

时间:2020-03-05 18:49:52  来源:igfitidea点击:

我有一个基于Gentoo的LAMP堆栈上运行的Web应用程序。我的客户购买该软件即服务,而我托管了所有内容。但是,在客户端自己的网络中需要现场部署。

当前,由于我托管系统,因此该应用程序中没有内置的许可证管理。我根据用户帐户和数据容量(这是一个用于计量数据的处理和分析应用程序)计费,并且我只是设置了客户要付费的内容,而客户却无法自己设置这些内容。即使没有现场安装,也应该进行更改以提高可伸缩性。

我正在寻找许可证管理框架和/或者我们已经实施或者在其他地方工作良好的典型方法。我的要求是:

  • "足够安全"而不是"军事等级"
  • 非常不引人注目
  • 防止许可证所有者仅许可一个工厂时,就可以在多个工厂中运行该系统
  • 使用户帐户的数量和数据容量既可以合理地防篡改,又易于升级/降级
  • 无需Internet连接即可工作(拥有完全独立的系统将是选择现场解决方案的重点),尽管在安装过程中必须建立临时连接也是可以接受的

对于某些现场方案,将需要某些特定的OS,通常是Windows Server的某些版本,但是各种Linux发行版也越来越流行,尤其是在公共部门。

从用户的角度来看,我对FogBugz中的许可证管理非常满意,从供应商的角度来看,Joel Spolsky似乎对此感到满意,而且它是跨平台的,因此它将为我的工作提供很好的参考。瞄准。

解决方案

回答

我相信我们可以在大多数操作系统上获得cpu的序列号;我们可以使用它,毕竟如果他们将CPU移植到了可以安全地假定不再使用旧计算机的位置?

其次,可以使用Web服务来查找当前的数据容量以及客户已支付的费用。

回答

我见过一家使用预建的Linux VM映像部署其现场Web系统的公司。客户端在VMWare下运行它,而我们不必担心客户端系统上的实际操作系统是什么。另外,他们不提供运行Web服务器的实际linux系统的登录名,因此最终用户实际上无法进入和修改任何内容。

我不确定他们如何处理许可限制,但是它们在那里。每当客户端请求更多用户许可证时,可能会提供更新的VM映像。

尽管这不能直接解决防止多个实例运行的需求。我猜我们总是可以根据系统配置来做某种激活密钥系统。

回答

别。我们花费每个小时来编写许可证密钥系统,就是我们没有花费一个小时来修复错误或者添加功能。通过编写许可证管理系统,我们正在花费资源,以降低产品的价值!

为代码添加版权,请一名律师,并准备起诉任何侵犯我们版权的人,并称其为一日游。