BSA / Enforcing Licensing Models / The Client


BSA

★★途中★★

ライセンスモデルを強制する(クライアント〜)(Enforcing Licensing Models / The Client)

クライアント

  • クライアントソフトウェア用のライセンス管理マネージャー
    • アプリケーション自体へのアクセス、フィーチャーへのアクセスを制御する
  • 運用形態
    1. スタンドアローンタイプ
      • サーバーが不要
      • 時間ベース課金に向いている
    2. サーバー連携タイプ
      • サーバーと連携(通信)する
      • ユーザー指定課金や同時並行ユーザー数課金に向いている
      • ネットワーク接続不可のときの振る舞いを考えなければならない
  • SuperSoft?社のDuperDraw?のライセンスを考える」(スタンドアローンタイプの例)
    • 30日間限定の試用版をインターネット経由で配布
    • アプリケーションと一緒にインストールされたライセンス管理マネージャーが、電子署名されたライセンスを強制する

サーバー

  • 電子署名されたライセンスを解釈する
  • クライアント側のライセンス管理マネージャーにライセンスを強制するためのサービスを提供する
    • 期限切れとかの判定?
  • 集計や計測(metering)に基づくライセンスモデルには欠かせない
  • クライアントとの連携の例
    • ハイエンドCADシステムを同時並行ユーザー数モデル(8000ドル/ユーザー)で販売したい
    • インストール数は任意とする
    • 実行ユーザー数はすべて同時並行ユーザー数として計上する
    • ネットワークに接続していないPCはどうしたら…(サポート対象外にするのがお手軽)
  • アプリケーション本体とライセンス管理マネージャーの統合
    • 普通はアプリケーション本体にライセンスを強制する、という機能は無い
    • 自家製のライセンス管理マネージャーならやり方はいろいろ
    • サードパーティのライセンス管理マネージャーの場合は二つのアプローチがある
  • インジェクション方式
    • アプリケーション本体のコードを改変して、ライセンスを強制するコードを注入する方式
  • API方式
    • ベンダーの提供するAPI(SDK)を使って実装する方式
      • ライセンスの妥当性チェック
      • 同時並行ユーザーのログイン
    • 自前で実装できないわけでもない
    • インタプリタ言語用に提供されているものもあるが、セキュリティは弱い(JavaやC#と比較するとハックするのが簡単)
  • 以降のセクションでは、ベンダーの提供するライセンス管理マネージャーを評価する観点を紹介する
    • ビジネスモデルのサポート
    • プラットフォームやオペレーティングシステムのサポート
    • クラッカーのWebサイトを調べてソリューションの強さを判定する
    • バックエンドとの統合や、処理量の上限を確かめる
    • 運用環境との相性を確かめる
    • ブランディングとユーザーインターフェイスが統制できているか確かめる
    • ライセンスの内容と形式を確かめる
    • ライセンスの配布方法を確かめる

ビジネスモデルのサポート

  • 本章で説明してきた全てのビジネスモデルに対応したライセンス管理マネージャーは存在しない(当時の話?)
    • CPUや拡張ボードに対して課金するビジネスモデルを直接サポートするものとか
  • ライセンス管理マネージャーのテクノロジーに合わせるのが一番無難だろう
    • 古いものはライセンスモデルもパラメータも固定
    • 新しいものはスクリプティング可能だったりする

プラットフォームやオペレーティングシステムのサポート

  • アプリケーションが対象とするプラットフォームやオペレーティングシステムをサポートしているかどうか
  • ベンダーの開発ロードマップも確かめておく

クラッカーのWebサイトを調べてソリューションの強さを判定する

  • 仕事で使っても問題ないくらいセキュリティ強度の強い、堅牢なライセンス管理マネージャーを作るのは難しい
  • 安全面の要請だけでなく、収益の最大化という要請もあるので、さらに難しい
  • 評価できないなら専門家(コンサルタント)を雇おう

バックエンドとの統合や、処理量の上限を確かめる

  • ほとんどのライセンス管理マネージャーはバックエンドシステムと連携しなければならない
    • (訳注:請求管理システムなど、課金に関わるものだと思います)
  • ベンダーにそれを実現するだけの能力があるかどうかを確かめておくこと
  • ベンダーが調べている間に、パフォーマンスや処理量の上限などを確認しておくとよい

運用環境との相性を確かめる

  • カスタマーサービスで必要になりそうなライセンス管理マネージャーの運用機能
    • ライセンスの再生成
    • 評価ライセンスの作成
    • 作成済みのライセンスの廃止
  • ライセンス生成器と他のバックエンドの連携における、スケーラビリティとリライアビリティを確かめておくこと
  • カスタマーサービスがWebUIなら、前述した運用機能がWebコンポーネントから利用できるか確かめておくこと

ブランディングとユーザーインターフェイスが統制できているか確かめる

  • ライセンス違反が発生したときに表示されるメッセージの内容と表示方法について
  • アプリケーションが国際化しているとしたら、ライセンス管理マネージャーのメッセージについても国際化しなければ
  • 変更できないのに、どんな時に何が出るのか分からないのは良くない

ライセンスの内容と形式を確かめる

  • 理解のしやすさ
  • ビジネス要件との適合性
  • ライセンスとは関係無くても、システムが生成する情報の全てに電子署名しておくべき
    • ライセンスの中にバックエンドシステムで使われるシリアル番号を埋め込んでおきたいこともあるので…

ライセンスの配布方法を確かめる

  • インターネット、電子メール、電話、FAXなど、どんな配布方法が利用できるのかベンダーに確かめておくこと

担当者のつぶやき

みんなの突っ込み