0

我的任务是为 Java 应用程序提供某种形式的网络许可控制。该应用程序将存储在网络驱动器上并从客户端计算机运行。基本思想是,它将能够计算出它同时运行了多少次,并防止第 N+1 个用户运行该软件,其中 N 是客户购买的并发许可证的数量。

这对 Java 应用程序有可能吗?我实现了一个“解决方案”,它依赖于应用程序运行实例之间的多播 UDP 通信,但这不起作用,因为在大多数网络上,这种通信被安全措施阻止了。

有没有更好的办法?我什至不介意它是否需要 JNI/JNA。

注意 该解决方案不必那么复杂或高度安全。

4

1 回答 1

1

我建议您使用现有的商业许可证管理产品,例如 FlexLM。您是否会通过实施自制替代方案来节省任何资金是值得怀疑的。


注意 该解决方案不必那么复杂或高度安全。

如果它不安全,那有什么意义呢?

(您可能已经知道,不可能构建一个无法以某种方式解决或禁用的许可证系统。而且许可证管理对您的客户来说是一个痛苦的背后......实际上是您自己,因为额外的客户你必须提供支持。然后是你需要混淆你的代码的问题,这会给你的客户带来额外的烦恼并给你带来支持痛苦。)

于 2012-06-17T09:18:30.520 回答