2009-05-08 8 views
1

私は、Java Webアプリケーションの日付ベースのライセンスメカニズムのロジックを考え出しています。アプリは、インターネットにアクセスできないクライアントサイト(イントラネットに展開されている)に展開する必要があります。この場合、開始日と終了日に基づいてライセンスの仕組みを構築するにはどうすればよいですか。このためにサーバーシステムの日付/時刻を使用すると、システム管理者はサーバーの日付/時刻を変更して、ロケンスをアクティブに保ちます。 提案がありますか? Windows dektopアプリはこれをやっているようですが、どうしたらよいでしょうか?Java Webアプリケーションの日付ベースのライセンスロジックですか?

サンジェイ。

+1

"ロケンスを有効にするために、システム管理者がサーバーの日付/時刻を変更する危険があります。"また、ライセンスがシャットダウンしてソフトウェアが機能しなくなると、永久に顧客を失う危険があります。あなたのライセンス制度がとても複雑であるため、日付を変更する人(そして管理者のために作成されるすべての問題)または誰かが更新しない人はいますか? –

+0

お客様の混乱を避けるために、アプリを稼働させておくことはできますが、ライセンスの期限が切れた場合は、高度な機能を削除することができます。そして、あなたが彼らが再び行くための簡単な方法を持っていることを確認してください。 – joeytwiddle

答えて

0

可能な解決策は:

あなたは定期的にあなたの顧客への鍵と検証キークラスのペアを発行します。サーバーアプリケーションは、起動時に最小限に、または定期的にJVM時間を使用して、検証クラスで確認する必要があります。

さらに、鍵/検証者の更新を更新するためにクライアントに些細な方法を提供する必要があります。

Javaクラスファイルを検査および操作できるが、ホスト機構に依存しない一時的なライセンス方式を提供することができれば、これはまだ完全な証明メカニズムではありません。

0

システムの日付の変更を検出するには、最後に実行したときにアプリの記録を記録します。起動して、それが最後に実行されたことが判明した場合、あなたはファウルプレイを疑うことができます!

もちろん、lastRunDate番号がどこに格納されているかをユーザーが確認できる場合は、それらを回避することができます。編集:また、ユーザーが本当に自分のマシンの日付が間違っていることに気付いてそれを変更した場合、誤動作する可能性があります。ユニバーサルタイムを使用していない場合は、夏時間の変更を忘れないでください(有効な日付変更に1〜2時間の柔軟性が必要です)。

1

ええ、私はルールが次のようなものだと思います。(a)ライセンスは開始日と終了日に基づいていなければなりません。 (b)コンピュータが外界に接続されていると見なすことができない場合、私は問題が理論的に解決できるとは思わない。日付が何であるかの唯一の情報源は、コンピュータの日付、システムの日付、またはユーザが入力した他の日付のいずれかの日付です。たぶん私は何かが不足しているかもしれませんが、それはどのようにユーザーが日付について横たわっている対象になることができないか分かりません。つまり、コンピュータが外界に接続されていない場合、定義上、日付を確認する外部ソースはありません。 Joeytwiddleの提案のように、日付を合理的にチェックし、過去に見た日付を記録し、日付が過去に戻ったか、最後の6000回の実行で同じ日であるかなど、疑わしいものを探すことができます。それを超えて、これは円を二乗するか正直な政治家を見つけることの問題のように思えます。それはできません。

関連する問題