私はそこに行ってきました。私は各アプローチについていくつかの主要な質問を提供したいと思います。
重要な情報は、免許を持っていないユーザーがあなたのソフトウェアを使用しないようにしようとしている理由です。これは一般に公開されているアプリケーションですか?これは販売や契約上の義務を守る/サポートすることですか?あなたのユーザーはフレンドリーですか(誤って新規ユーザーを追加するかもしれません)、または敵対的です(ライセンスを持っていないユーザーを意図的に追加しますか)。
お客様は、ソフトウェア構成にアクセスできますか?それが実行されるハードウェアに?
ライセンスデータにマウントされ、とき の任意のユーザがログインする上記アプリケーション すべてのサーバがそれと通信するJava Webサービスを作成します。
ライセンスサーバーがダウンしたり、遅い場合はどうなりますか?これによりログインが阻止されますか?ログインごとにライセンスサーバーを呼び出すと、ログインがユーザーの迷惑をかけるほど遅くなりますか?
誰がこのサービスを維持しますか?誰がライセンスを追加/更新しますか?
ライセンスサーバーとの通信をどのように保護しますか?
ソケットベースのサーバーを実行します。
これは、最初のオプションと同じ全体的なアプローチです。これは、「私はリモートライセンスサーバーを持っています」という点で考える必要があります。そのサーバーと通信するために使用されるプロトコルと技術は重要ですが、全体の設計ほど重要ではありません。
各サーバーにlisenceファイルをマウントし、それぞれのファイルを個別に と通信し、ライセンスルールとして機能させます。
これらのライセンスファイルをどのように生成して配布しますか?あなた/あなたのサポートチームはそれをやりますか?
どのようにライセンスファイルを保護しますか?番号の付いたライセンスファイルは実行されますが、実際にライセンス制限を実施するのはほとんどできません。署名されたファイルは、より良い一歩です。暗号で保護されたファイルが最適ですが、過度の攻撃である可能性があります。
私はオプション1を投票しました。 – Gerep
@Gerepなぜあなたは最初のものを選んだのですか?よろしくお願いいたします。 – GingerHead