如何限制功能

时间:2010-04-12 16:48:03

标签: licensing

是否有任何标准或“最佳实践”方法限制特定应用程序的功能?

示例:我们有一个具有各种功能的产品,我们的客户可以选择他们想要使用的功能,产品的成本会根据他们实际使用的功能而有所不同。

过去,我们已与软件安装程序一起分发加密的许可证文件,其中包含有关客户的信息以及已启用的功能集合。在代码中,我们从许可证文件中读取并根据许可证文件启用功能。

除了一些缺点外,这似乎工作正常:

  • 使用新功能升级用户可能会有点痛苦
  • 如果某个特定功能出现在整个应用程序的多个位置,开发人员可能没有意识到此功能应该获得许可,并且在向用户授予功能之前忘记检查许可证文件
  • 如果许可证文件损坏,删除,移动,重命名等,则应用程序将无法运行

我们正准备推出一系列新功能,我只是好奇社区中其他人为解决这个问题做了些什么?

2 个答案:

答案 0 :(得分:1)

为什么不将产品分解为像Matlab这样的模块?然后为每个模块充电。许可可以保持在线,最终用户只需下载模块即可启用该功能。

答案 1 :(得分:0)

通常有3种常见方法:

  • 使用固定程序版本(每个版本只添加功能,您无法自定义您想要的功能)。您也可以使用“subversion”,例如Software x.0的基本版和专业版。 Windows使用这种方法。
  • 拥有功能模块,这些模块本身就是一种产品。 Matlab使用这种方法。
  • 拥有具有基本功能的软件,然后使用插件或额外的应用程序进行销售。 Eclipse使用这种方法(尽管它是免费的)

您可以将这些方法混合使用,以获得更好的可自定义性。