Java 关于基本软件许可实施的想法
我正试图决定如何为我编写的一些软件实现一个非常基本的许可解决方案。该软件将在我(假设的)客户机上运行,如果客户机在n台以上的机器上运行(n是他们购买的许可证数量),则该软件将立即退出(带有友好消息)。此外,客户不懂技术,以至于“基本”就足够了 这是我目前的设计,但考虑到我在这方面几乎没有经验,我想在开始开发之前问一下:Java 关于基本软件许可实施的想法,java,security,licensing,Java,Security,Licensing,我正试图决定如何为我编写的一些软件实现一个非常基本的许可解决方案。该软件将在我(假设的)客户机上运行,如果客户机在n台以上的机器上运行(n是他们购买的许可证数量),则该软件将立即退出(带有友好消息)。此外,客户不懂技术,以至于“基本”就足够了 这是我目前的设计,但考虑到我在这方面几乎没有经验,我想在开始开发之前问一下: 远程服务器托管一个MySQL数据库,其中一个表包含两列:客户机密钥和许可证数量 客户端应用程序在启动时连接到MySQL数据库,提供它的客户端密钥,我已将其放入打包到分发版中的属
- 远程服务器托管一个MySQL数据库,其中一个表包含两列:客户机密钥和许可证数量
- 客户端应用程序在启动时连接到MySQL数据库,提供它的客户端密钥,我已将其放入打包到分发版中的属性文件中(我将为每个新客户端创建一个新分发版)
- 很可能,我需要第二个表来存储验证历史记录,这样,通过一些简短的逻辑,软件可以决定是否可以在给定的机器上运行(可能是每24小时使用软件的n台机器的滑动窗口)
- 如果软件无法建立到MySQL数据库的连接,或者决定它每天超过n台允许的机器,它将关闭
- 托管MySQL数据库的远程服务器的连接信息应该硬编码到应用程序中吗?(这听起来是个坏主意,但除此之外,他们可能会将其指向其他“始终验证成功”服务器)
我想这已经做了一百万次了,所以请告诉我一个更好的解决方案,它的实现同样简单,并提供相同(低)的安全性。如果使用外部库,我更喜欢Java,因为软件就是用Java编写的。我认为这可能不值得这么麻烦。客户可能不是那么精通技术,但如果值得,他们会绕过它,如果不值得,他们无论如何也不会使用你的软件 您不讨论配置过程-如何知道哪台机器包含MySQL数据库。您不会讨论如果MySQL数据库崩溃会发生什么 坦率地说,第一次出现问题时,他们可能会发现,要么他们不太喜欢这个软件,无法继续使用它,要么他们会想出如何绕过这个系统。即使最终用户不懂技术,他们也可能会有内部技术支持
我不会在这件事上浪费你的时间。如果您想要许可证管理系统,请使用专业的许可证管理系统。否则,请以信任和合理的法律条款为基础。我认为这可能不值得费心。客户可能不是那么精通技术,但如果值得,他们会绕过它,如果不值得,他们无论如何也不会使用你的软件 您不讨论配置过程-如何知道哪台机器包含MySQL数据库。您不会讨论如果MySQL数据库崩溃会发生什么 坦率地说,第一次出现问题时,他们可能会发现,要么他们不太喜欢这个软件,无法继续使用它,要么他们会想出如何绕过这个系统。即使最终用户不懂技术,他们也可能会有内部技术支持
我不会在这件事上浪费你的时间。如果您想要许可证管理系统,请使用专业的许可证管理系统。否则,请遵循信托和合理的法律条款。我建议不要实施此类计划。如果您的客户机出现连接问题,或者您的MySQL数据库出现故障,该怎么办。你最终会遇到一些恼怒的客户 但是,如果您打算实施该计划,这里有一些建议:
我建议不要实施这些计划。如果您的客户机出现连接问题,或者您的MySQL数据库出现故障,该怎么办。你最终会遇到一些恼怒的客户 但是,如果您打算实施该计划,这里有一些建议: