如何实现Web应用程序的现场安装(最好是跨平台)的许可证管理?

时间:2008-09-09 07:20:11

标签: web-applications licensing

我有一个在基于Gentoo的LAMP堆栈上运行的Web应用程序。我的客户购买软件作为服务,我托管一切。但是,客户自己的网络内部需要进行现场部署。

目前,由于我托管系统,因此应用程序中没有内置的许可证管理。我基于用户帐户和数据容量(它是用于计量数据的处理和分析应用程序)进行计费,我只是设置客户支付的任何费用,客户端无法自行设置这些内容。即使没有现场安装,也应该进行更改以获得更好的可扩展性。

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

  • “足够安全”而非“军事等级”
  • 非常突兀
  • 当他只获得许可时,
  • 阻止许可的所有者在多个工厂中运行系统
  • 使用户帐户数量和数据容量合理防篡改,易于升级/降级
  • 没有互联网连接的工作(拥有一个完全独立的系统将是选择现场解决方案的主要方面),但如果在安装过程中必须有临时连接可能是可以接受的

对于某些现场场景,需要某些特定的操作系统,通常是某些版本的Windows Server,但各种Linux发行版也越来越受欢迎,特别是在公共部门。

从用户的角度来看,我对FogBugz的许可证管理非常满意,看来Joel Spolsky从供应商的角度来看它是满意的,而且它是跨平台的,所以它会成为一个很好的参考我的目标是什么。

3 个答案:

答案 0 :(得分:3)

别。您花在编写许可证密钥系统上的每个小时都是一小时,您不会花费修复错误或添加功能。通过编写许可证管理系统,您可以花费资源来降低产品的价值!

版权所有代码,请律师并随时准备起诉任何侵犯您版权的人,并将其称为一天。

答案 1 :(得分:1)

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

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

虽然这并没有直接解决阻止多个实例运行的需要。我想你总是可以根据系统配置做一些激活密钥系统。

答案 2 :(得分:0)

我相信你可以在大多数操作系统上找到cpu的序列号;你可以使用它,毕竟如果他们移植cpu安全,假设旧机器将不再使用?

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