6

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

目前,由于我托管系统,应用程序中没有内置许可证管理。我根据用户帐户和数据容量计费(它是一个用于计量数据的处理和分析应用程序),我只是设置客户支付的任何费用,而客户不能自己设置这些东西。即使没有现场安装,也应该改变它以获得更好的可扩展性。

我正在寻找一个许可证管理框架和/或您自己实施或在其他地方看到效果良好的典型方法。我的要求是:

  • “足够安全”而不是“军用级”
  • 非常不突兀
  • 防止许可证所有者在仅获得一个许可证时在多个工厂中运行系统
  • 使用户账户数量和数据容量合理防篡改,易于升级/降级
  • 在没有 Internet 连接的情况下工作(拥有一个完全独立的系统将是选择现场解决方案的要点),但如果在安装期间必须有一个临时连接可能是可以接受的

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

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

4

3 回答 3

3

Don't. Every hour that you spend writing a license key system is an hour that you are not spending fixing bugs or adding features. By writing a license management system, you are spending resources in order to reduce the value of your product!

Copyright your code, have a lawyer and be ready to prosecute anyone who violates your copyright, and call it a day.

于 2008-10-25T22:11:13.993 回答
1

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

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

尽管这并不能直接解决防止多个实例运行的需要。我想您总是可以根据系统配置进行某种激活密钥系统。

于 2008-10-24T19:44:40.727 回答
0

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

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

于 2008-09-09T07:23:48.717 回答