(57)【要約】  アプリケーションレベル製品ポリシー定義ライセンス、および各ライセンス供与可能な製品に対応するライセンス供与可能製品ポリシー定義ライセンスを含む、複数のライセンス供与可能な製品を含むアプリケーションのための柔軟な使用ライセンス供与システムが提供される。柔軟な使用ライセンスは、使用ライセンスを様々の環境条件に対して検証するための権利アカウント証明書と、使用ライセンス全体を伝送することなしにライセンス供与者において使用ライセンスを検証するための外部検証コンポーネントとをさらに含む。【特許請求の範囲】
【請求項１】
ソフトウェア製品の使用要求を認可する方法であって、
前記ソフトウェア製品の使用要求を受け取るステップと、
前記ソフトウェア製品に関連するライセンスを取り出すステップと、
取り出されたライセンスを集約するステップと、
要求された使用が集約されたライセンスで許可された使用に従っているかどうかを判定するステップと
を含む方法。
【請求項２】
前記要求された使用が前記集約されたライセンスにおける前記許可された使用に従っていると判定された場合にのみ、前記要求された使用を許可するステップをさらに含む請求項１に記載の方法。
【請求項３】
前記取り出されたライセンスを集約するステップは、前記取り出されたライセンスを認証するステップと、成功裏に認証された前記取り出されたライセンスのみを集約するステップとを含む請求項１に記載の方法。
【請求項４】
前記取り出されたライセンスは複数の製品ポリシーを含み、各製品ポリシーは使用権利に対応し、前記取り出されたライセンスを集約するステップは同一の使用権利に対応する製品ポリシーを集約するステップを含む請求項１に記載の方法。
【請求項５】
各製品ポリシーは集約タイプおよび集約優先順位を含み、同一の使用権利に対応する製品ポリシー定義は前記製品ポリシーの前記集約タイプおよび集約優先順位に従って集約される請求項４に記載の方法。
【請求項６】
前記集約タイプは、合計、最大、最小、置き換え、およびブールのうちの１つである請求項５に記載の方法。
【請求項７】
前記取り出されたライセンスは、国際標準化機構権利記述言語（ＩＳＯ  ＲＥＬ）で表される請求項１に記載の方法。
【請求項８】
コンピュータ可読媒体に記憶された、ライセンス供与可能な製品を含むアプリケーションに対応するライセンスであって、
各製品ポリシーが前記アプリケーションのための使用権利に対応している複数の製品ポリシーを含むアプリケーション製品ポリシー定義ライセンスと、
各製品ポリシーが前記ライセンス供与可能な製品のための使用権利に対応している複数の製品ポリシーを含むライセンス供与可能単位製品ポリシー定義ライセンスと、
プロダクトキー証明書と
を含むライセンス。
【請求項９】
前記ライセンスは、国際標準化機構権利記述言語（ＩＳＯ  ＲＥＬ）で表される請求項８に記載のライセンス。
【請求項１０】
前記ライセンスは環境的な拘束条件を含む権利アカウント証明書に関連付けられ、前記権利アカウント証明書は前記ライセンスを認証することができる請求項８に記載のライセンス。
【請求項１１】
前記環境的な拘束条件はハードウェアの識別子である請求項１０に記載のライセンス。
【請求項１２】
前記環境的な拘束条件は相手先商標製造会社供給モデルの特徴である請求項１０に記載のライセンス。
【請求項１３】
前記環境的な拘束条件はネットワークの特徴である請求項１０に記載のライセンス。
【請求項１４】
前記ライセンスは初期使用ライセンスである請求項８に記載のライセンス。
【請求項１５】
前記ライセンスはオンライン使用ライセンスである請求項８に記載のライセンス。
【請求項１６】
前記ライセンスはオフライン使用ライセンスである請求項８に記載のライセンス。
【請求項１７】
前記ライセンスは外部バリデータをさらに含む請求項１６に記載のライセンス。
【請求項１８】
ソフトウェア製品に対応する使用ライセンスを外部から検証する方法であって、
ソフトウェア製品の使用要求を受け取るステップと、
外部検証データを含む、前記ソフトウェア製品に関連する使用ライセンスを受け取るステップと、
前期外部検証データによって前記使用ライセンスを検証するステップと、
前記使用ライセンスが成功裏に検証された場合に前記使用ライセンスによって前記ソフトウェア製品の使用を許可するステップと
を含む方法。
【請求項１９】
前記外部検証データによって前記使用ライセンスを検証するステップは、前記外部検証データによって指示された第１の値に対して前記外部検証データによって指示された機能を実行して結果を生成するステップと、前記結果を前記外部検証データによって指示された第２の値と比較するステップと、前記結果が前記第２の値と合致する場合に前記ライセンスが有効化されることを決定するステップとを含む請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、それによりデジタルライセンスに従ってのみデジタルコンテンツへのアクセスが提供される権利管理（ＲＭ）システムに関する。より詳細には、本発明は、幅広い種類の使用環境における最大限の使用のために、幅広い種類の配布経路を介した幅広い種類のソフトウェア製品のライセンス供与に適用できる柔軟なライセンス供与アーキテクチャに関する。
【背景技術】
【０００２】
ソフトウェアの著作権侵害は全世界で１０億ドル産業にまで増大した。この大きくなり続けている問題に対する１つの解決策は、ソフトウェア製品のアクティベーションの使用である。通常、ソフトウェアがユーザのコンピュータ上で実行されることが可能となる前に、まずライセンスが取得されなければならない。ユーザは、ユーザのコンピュータの何らかの種類の識別子を、ユーザがどのようにソフトウェアを使用したいと望んでいるかの何らかの指示子と共に集中的なライセンス供与者に電子的に送ることができる。供与者は、要求された特定の使用を許可するライセンスで応答する。次に、ソフトウェアは、供与者によって与えられたライセンスに応じてユーザによって操作されることができる。
【０００３】
しかし、現在のソフトウェアアクティベーションによる解決方法に関連した問題が存在する。第１に、現在のソフトウェアライセンスは企業毎に異なる独自仕様の形式で表される傾向がある。一部のより極端な事例では、ライセンスの形式は同じ企業内で製品毎に異なる場合がある。
【０００４】
さらに、販売されている多くのソフトウェアアプリケーションに関して、製品定義は平坦な構造ではなく、むしろ基礎的なアプリケーションの下に枝分かれしたより多くのまたはより少ない機能を特色とする様々なバージョンのアプリケーションを有する樹状構造である。これらのバージョンは、親アプリケーションの同一のソースコードを共有することができるが、異なる価格を設定されることができ、異なるユーザを対象とすることができる。典型的なライセンスは均一であり、したがってこれらの現在の製品定義の複雑なライセンス供与の要求を表すことはできない。
【０００５】
さらに、製品定義の複雑性に適合するためにソフトウェアライセンスの複雑性が増すにつれて、ライセンス供与者による外部からのライセンスの検証は困難なプロセスになる可能性がある。大きなデジタル署名されたライセンスをユーザとライセンス供与者の間で相互に送信することは、帯域幅の消費が激しい可能性がある。低速なインターネット接続を使用するユーザに関しては、これは非常に時間を要するタスクである可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、必要とされているのは、オンラインでの検証に適したままでありながら現在のソフトウェアアプリケーションの複雑なライセンス供与の要求を表すことができる標準的なライセンスである。
【課題を解決するための手段】
【０００７】
アプリケーションレベル製品ポリシー定義ライセンスと、各ライセンス供与可能な製品に対応するライセンス供与可能製品ポリシー定義ライセンスとを含む、複数のライセンス供与可能な製品を含むアプリケーションのための柔軟な使用ライセンス供与システムが提供される。柔軟な使用ライセンスは、種々の環境条件に対して使用ライセンスを検証するための権利アカウント証明書と、使用ライセンス全体を伝送することなしにライセンス供与者において使用ライセンスを検証するための外部検証コンポーネントとをさらに含む。
【０００８】
加えて、複数の使用ライセンスを一緒に集約し、集約ポリシーと、各ライセンスに関連する優先レベルとに基づいて結果として得られる使用権利を決定する方法が提供される。
【発明を実施するための最良の形態】
【０００９】
図１および以下の考察は、その環境内で本発明が実施され得る好適なコンピューティング環境の簡潔で全体的な説明を提供するように意図される。しかし、ハンドヘルド、ポータブル、およびその他のあらゆる種類のコンピューティングデバイスが、本発明に関連した使用を考慮されることを理解されたい。汎用コンピュータが以下で説明されるが、これは単なる一例に過ぎない。したがって、本発明は、その環境内に非常に少ないまたは最小のクライアント資源が含まれるネットワーク化されたホスト型サービスの環境、例えば、その環境内でクライアントデバイスが単にブラウザ、またはワールドワイドウェブへのインターフェースとして機能するネットワーク化された環境において実施されることもできる。
【００１０】
必須ではないが、本発明は、開発者による使用のためにアプリケーション・プログラミング・インターフェース（ＡＰＩ）を介して実施されることができる、および／またはクライアントワークステーション、サーバ、またはその他のデバイスなどの１つまたは複数のコンピュータによって実行されるプログラムモジュールなどのコンピュータが実行可能な命令との一般的な関連で説明されるネットワーク・ブラウジング・ソフトウェアに含まれることができる。概して、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。通常、プログラムモジュールの機能は、種々の実施形態において要求に応じて組み合わせられるまたは分散されることができる。さらに、当業者は、本発明がその他のコンピュータシステム構成を用いて実施され得ることを理解するであろう。本発明での使用に好適なその他のよく知られているコンピューティングシステム、環境、および／または構成は、パーソナルコンピュータ（ＰＣ）、現金自動預け払い機、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサに基づくシステム、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含むがこれらに限定されない。本発明は、通信ネットワークまたはその他のデータ伝送媒体を介して接続されたリモートの処理装置によってタスクが実行される分散コンピューティング環境において実施されることもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルのおよびリモートのコンピュータ記憶媒体のどちらにも配置されることができる。
【００１１】
したがって、図１は、その環境内で本発明が実施され得る好適なコンピューティングシステム環境１００の例を示すが、上で明らかにされたように、コンピューティングシステム環境１００は好適なコンピューティング環境の単なる一例に過ぎず、本発明の使用または機能の範囲についていかなる限定を示唆するようにも意図されていない。同様に、コンピューティング環境１００は、例示的な動作環境１００に示されたコンポーネントの任意の１つまたは組合せに関するいかなる依存性または要件を有するようにも解釈されるべきではない。
【００１２】
図１を参照すると、本発明を実施するための例示的なシステムは、コンピュータ１１１の形態の汎用コンピューティングデバイスを含む。コンピュータ１１１のコンポーネントは、処理ユニット１２０と、システムメモリ１３０と、システムメモリの処理ユニット１２０への結合を含め種々のシステムコンポーネントを結合するシステムバス１２１とを含むことができるがこれらに限定されない。システムバス１２１は、各種のバスアーキテクチャのいずれかを使用したメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む数種のバス構造のいずれであってもよい。限定ではなく例として、かかるアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子装置規格化協会（ＶＥＳＡ）ローカルバス、および周辺装置相互接続（ＰＣＩ）バス（Ｍｅｚｚａｎｉｎｅバスとしても知られる）を含む。
【００１３】
通常、コンピュータ１１１は、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１１によってアクセスされることができ、揮発性および不揮発性両方の媒体、リムーバブルおよび非リムーバブル媒体を含む任意の入手可能な媒体であってよい。限定でなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術で実現された揮発性および不揮発性両方の媒体、リムーバブルおよび非リムーバブル媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくはその他のメモリ技術、ＣＤＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）、もしくはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくはその他の磁気記憶装置、または所望の情報を記憶するために使用されることができ、コンピュータ１１１によってアクセスされることができる任意のその他の媒体を含むがこれらに限定されない。通常、通信媒体は、搬送波などの変調されたデータ信号またはその他の搬送機構でコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを具現化し、任意の情報配信媒体を含む。用語「変調されたデータ信号」は、その信号の特徴のうちの１つまたは複数を、信号中に情報を符号化するような方法で設定または変更させた信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、ＲＦ、赤外線、およびその他の無線媒体などの無線媒体を含む。上記の媒体のうちの任意のものの組合せもコンピュータ可読媒体の範囲に含まれるべきである。
【００１４】
システムメモリ１３０は、読み出し専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動中などにコンピュータ１１１内の要素間で情報を転送することに役立つ基礎的なルーチンを含む基本入出力システム１３３（ＢＩＯＳ）は、概してＲＯＭ１３１に記憶される。通常、ＲＡＭ１３２は、処理ユニット１２０によって直ちにアクセスできる、および／または処理ユニット１２０によって現在使用されているデータおよび／またはプログラムモジュールを含む。限定ではなく例として、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００１５】
コンピュータ１１１は、その他のリムーバブル／非リムーバブルの揮発性／不揮発性コンピュータ記憶媒体を含んでもよい。単なる例として、図１は、非リムーバブル不揮発性磁気媒体からの読み出し、または当該媒体に対する書き込みを行うハードディスクドライブ１４１と、リムーバブル不揮発性磁気ディスク１５２からの読み出し、または当該磁気ディスクに対する書き込みを行う磁気ディスクドライブ１５１と、ＣＤＲＯＭまたはその他の光媒体などのリムーバブル不揮発性光ディスク１５６からの読み出し、または当該光ディスクに対する書き込みを行う光ディスクドライブ１５５とを示す。例示的な動作環境で使用されることができるその他のリムーバブル／非リムーバブルの揮発性／不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどを含むがこれらに限定されない。ハードディスクドライブ１４１は、概してインターフェース１４０などの非リムーバブルメモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、概してインターフェース１５０などのリムーバブルメモリインターフェースによってシステムバス１２１に接続される。
【００１６】
上で考察され図１に示されたドライブおよびそれらのドライブに関連するコンピュータ記憶媒体は、コンピュータ１１１のためのコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶を行う。図１において、例えばハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶するように示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同じであるか、または異なるかのいずれであってもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７は、少なくともそれらが別のコピーであることを示すためにここでは異なる番号が与えられる。ユーザは、キーボード１６２、および一般的にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス１６１などの入力デバイスを介してコンピュータ１１１に命令および情報を入力することができる。その他の入力デバイス（図示せず）は、マイクロホン、ジョイスティック、ゲームパッド、衛星通信用パラボラアンテナ、スキャナなどを含んでよい。これらのおよびその他の入力デバイスは、システムバス１２１に結合されたユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などのその他のインターフェースおよびバス構造によって接続されてもよい。
【００１７】
モニタ１９１またはその他の種類のディスプレイデバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。ノースブリッジなどのグラフィックスインターフェース１８２も、システムバス１２１に接続されることができる。ノースブリッジは、ＣＰＵまたはホスト処理ユニット１２０と通信し、アクセラレーテッド・グラフィックス・ポート（ａｃｃｅｌｅｒａｔｅｄ  ｇｒａｐｈｉｃｓ  ｐｏｒｔ）（ＡＧＰ）通信に関する役割を担うチップセットである。１つまたは複数のグラフィックス処理ユニット（ＧＰＵ）１８４は、グラフィックスインターフェース１８２と通信することができる。この点に関し、概してＧＰＵ１８４はレジスタ記憶装置などのオンチップのメモリ記憶装置を含み、ＧＰＵ１８４はビデオメモリ１８６と通信する。しかし、ＧＰＵ１８４はコプロセッサのほんの一例に過ぎず、したがって様々なコプロセッシングデバイスがコンピュータ１１１に含まれてよい。モニタ１９１またはその他の種類のディスプレイデバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続され、当該インターフェースは同様にビデオメモリ１８６と通信することができる。モニタ１９１に加えて、コンピュータは、出力周辺機器インターフェース１９５を介して接続されることができる、スピーカ１９７およびプリンタ１９６などのその他の周辺出力デバイスを含んでもよい。
【００１８】
コンピュータ１１１は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータへの論理接続を使用したネットワーク化された環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の一般的なネットワークノードであってよく、図１にはメモリ記憶装置１８１のみが示されたが、概してコンピュータ１１１に関して上述した要素の多くまたは全てを含む。図１に示された論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３を含むが、その他のネットワークを含んでもよい。かかるネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的である。
【００１９】
ＬＡＮネットワーキング環境において使用される場合、コンピュータ１１１は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境において使用される場合、概して、コンピュータ１１１は、モデム１７２、またはインターネットなどのＷＡＮ１７３を介して通信を確立するためのその他の手段を含む。内蔵でも外付けでもよいモデム１７２は、ユーザ入力インターフェース１６０またはその他の適切な機構を介してシステムバス１２１に接続されることができる。ネットワーク化された環境において、コンピュータ１１１に関連して示されたプログラムモジュール、またはそのモジュールの一部は、リモートのメモリ記憶装置に記憶されることができる。限定ではなく例として、図１は、リモートアプリケーションプログラム１８５をメモリ装置１８１に存在するものとして示す。図示されたネットワーク接続は例示的であり、コンピュータ間で通信リンクを確立するその他の手段が使用され得ることが理解されるであろう。
【００２０】
当業者は、コンピュータ１１１またはその他のクライアントデバイスがコンピュータネットワークの一部として配置され得ることを理解することができる。この点で、本発明は、任意の数のメモリまたは記憶装置と、任意の数の記憶装置または記憶ボリュームにまたがって発生する任意の数のアプリケーションおよびプロセスとを有する任意のコンピュータシステムに適する。本発明は、ネットワーク環境内に配置された、リモートまたはローカルの記憶装置を持つサーバコンピュータおよびクライアントコンピュータを有する環境に適用することができる。本発明は、プログラミング言語の機能、解釈、および実行能力を有するスタンドアロンのコンピューティングデバイスに適用することもできる。
【００２１】
分散コンピューティングは、コンピューティングデバイスとシステムの間の直接交信によってコンピュータ資源およびサービスの共有を促進する。これらの資源およびサービスは、情報の交換と、キャッシュ記憶装置と、ファイルのためのディスク記憶装置とを含む。分散コンピューティングは、ネットワークの接続性を利用し、クライアントがそれらクライアントの集団的な能力を活用して事業全体に利益をもたらすことを可能にする。この点に関して、様々なデバイスが、（１つまたは複数の）高信頼グラフィックスパイプライン用に本発明の認証技術を利用するために交信することができるアプリケーション、オブジェクト、または資源を有することができる。
【００２２】
図２は、例示的なネットワーク化されたまたは分散されたコンピューティング環境の概略図を提供する。分散コンピューティング環境は、コンピューティングオブジェクト１０ａ、１０ｂなどと、コンピューティングオブジェクトまたはデバイス１１０ａ、１１０ｂ、１１０ｃなどとを含む。これらのオブジェクトは、プログラム、メソッド、データストア、プログラマブルロジックなどを含んでよい。オブジェクトは、ＰＤＡ、テレビジョン、ＭＰ３プレーヤ、テレビジョン、パーソナルコンピュータなどの同じまたは異なるデバイスの一部を含んでよい。各オブジェクトは、通信ネットワーク１４を介して別のオブジェクトと通信することができる。このネットワーク自体が、図２のシステムにサービスを提供するその他のコンピューティングオブジェクトおよびコンピューティングデバイスを含むことができる。本発明の一態様によれば、各オブジェクト１０または１１０は、高信頼グラフィックスパイプライン用に本発明の認証技術を要求し得るアプリケーションを含むことができる。
【００２３】
１１０ｃなどのオブジェクトは、別のコンピューティングデバイス１０または１１０上でホストされ得ることも理解されることができる。したがって、示された物理的環境は接続されたデバイスをコンピュータとして示し得るが、そのような説明は例示的であるに過ぎず、物理的環境は代替的に、ＰＤＡ、テレビジョン、ＭＰ３プレーヤなどの種々のデジタルデバイス、インターフェース、ＣＯＭオブジェクトなどのソフトウェアオブジェクトを含むように示される、または説明されることができる。
【００２４】
分散コンピューティング環境をサポートする様々なシステム、コンポーネント、およびネットワーク構成が存在する。例えば、コンピューティングシステムは、ローカルネットワークまたは広域分散ネットワークによって有線または無線システムで一緒に接続されることができる。現在、ネットワークの多くは、広域分散コンピューティングのためのインフラストラクチャを提供し、多くの異なるネットワークを包含するインターネットに接続されている。
【００２５】
ホームネットワーキング環境では、電力線、データ（無線および有線の両方）、音声（例えば電話）、および娯楽媒体などの、それぞれが固有のプロトコルをサポートすることができる少なくとも４つの異種のネットワーク伝送媒体が存在する。電灯のスイッチおよび家庭電化製品などのほとんどのホームコントロールデバイスは、接続性を得るために電力線を使用することができる。データサービスは、ブロードバンド（例えば、ＤＳＬまたはケーブルモデムのいずれか）として家庭に入ることができ、無線（例えば、ＨｏｍｅＲＦまたは８０２．１１ｂ）または有線（例えば、ＨｏｍｅＰＮＡ、Ｃａｔ５、さらには電力線）の接続性を使用して家庭内でアクセスすることができる。音声トラヒックは、有線（例えば、Ｃａｔ３）として、または無線（例えば、携帯電話）としてのいずれかで家庭に入ることができ、Ｃａｔ３配線を使用して家庭内で分配されることができる。娯楽媒体は、衛星またはケーブルのいずれかを介して家庭に入ることができ、概して同軸ケーブルを使用して家庭内で分配される。一群の媒体デバイス用のデジタル相互接続としてＩＥＥＥ１３９４およびＤＶＩも登場しつつある。これらのネットワーク環境の全て、およびプロトコル標準として台頭する可能性があるその他のネットワーク環境は、インターネットを介して外部と接続されることができるイントラネットを形成するように相互接続されることができる。要するに、データの記憶および伝送のために様々な異種のソースが存在しており、その結果、一歩進めると、コンピューティングデバイスはデータ処理パイプラインの全ての部分でコンテンツを保護する方法を必要とすることになる。
【００２６】
通常、「インターネット」は、コンピュータネットワーキングの分野でよく知られているＴＣＰ／ＩＰプロトコル群を利用するネットワークおよびゲートウェイの集合体を指す。ＴＣＰ／ＩＰは、「伝送制御プロトコル／インターフェースプログラム（Ｔｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｆａｃｅ  Ｐｒｏｇｒａｍ）」に対する頭字語である。インターネットは、ユーザがネットワークを介して交信し情報を共有することを可能にするネットワーキングプロトコルを実行するコンピュータによって相互接続された地理的に分散されたリモートコンピュータネットワークのシステムとして説明されることができる。このような広域に分散している情報の共有によって、これまでに、概してインターネットなどのリモートネットワークは、そのシステムに対して開発者が、特殊なオペレーションまたはサービスを実行するソフトウェアアプリケーションを基本的に制約なしで設計することができるオープンシステムに発展してきた。
【００２７】
したがって、ネットワークインフラストラクチャは、クライアント／サーバ、ピアツーピア、またはハイブリッドアーキテクチャなどの多くのネットワークトポロジのホストを可能にする。「クライアント」は、それが関連していない別のクラスまたはグループのサービスを使用するクラスまたはグループのメンバである。したがって、コンピューティングにおいて、クライアントは別のプログラムによって提供されるサービスを要求するプロセス、つまり大まかに言って１組の命令またはタスクである。クライアントプロセスは、別のプログラムまたはサービス自体についての動作詳細を全く「知る」必要なしに、要求されたサービスを利用する。クライアント／サーバアーキテクチャ、特にネットワーク化されたシステムにおいては、通常、クライアントは、別のコンピュータ、例えばサーバによって提供される共有ネットワーク資源にアクセスするコンピュータである。図２の例において、コンピュータ１１０ａ、１１０ｂなどはクライアントとみなされることができ、コンピュータ１０ａ、１０ｂなどはサーバとみなされることができ、ここでサーバ１０ａ、１０ｂなどは、その後クライアントコンピュータ１１０ａ、１１０ｂなどに複製されるデータを保持する。
【００２８】
通常、サーバは、インターネットなどのリモートネットワーク経由でアクセス可能なリモートコンピュータシステムである。クライアントプロセスは第１のコンピュータシステムにおいてアクティブであってよく、サーバは第２のコンピュータシステムにおいてアクティブであってよく、通信媒体を介して互いに通信し、それによって分散された機能を提供し、複数のクライアントがサーバの情報収集能力を利用することを可能にする。
【００２９】
クライアントおよびサーバは、プロトコルレイヤによって提供される機能を利用して互いに通信する。例えば、ハイパーテキスト転送プロトコル（ＨＴＴＰ）は、ワールドワイドウェブ（ＷＷＷ）と共に使用される共通プロトコルである。概して、ユニバーサル・リソース・ロケータ（ＵＲＬ）またはインターネットプロトコル（ＩＰ）アドレスなどのコンピュータネットワークアドレスは、サーバまたはクライアントコンピュータを互いに識別するために使用される。ネットワークアドレスは、ユニバーサル・リソース・ロケータ・アドレスと呼ばれる場合もある。例えば、通信は通信媒体を介して提供されることができる。具体的には、クライアントおよびサーバは、大容量通信のためのＴＣＰ／ＩＰ接続を介して互いに結合されることができる。
【００３０】
したがって、図２は、その環境内で本発明が使用され得る、ネットワーク／バスを介してクライアントコンピュータと通信しているサーバを用いた例示的なネットワーク化されたまたは分散された環境を示す。より詳細には、いくつかのサーバ１０ａ、１０ｂなどは、ＬＡＮ、ＷＡＮ、イントラネット、インターネットなどであってよい通信ネットワーク／バス１４を介して、ポータブルコンピュータ、ハンドヘルドコンピュータ、シンクライアント、ネットワーク家電、またはＶＣＲ、ＴＶ、オーブン、電灯、ヒータなどの本発明によるその他のデバイスなどのいくつかのクライアントまたはリモートコンピューティングデバイス１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどと相互接続される。したがって、本発明は、そのデバイスに関連して信頼できるソースからの安全なコンテンツを処理、記憶、またはレンダリングすることが望ましい任意のコンピューティングデバイスに適用することができることが意図される。
【００３１】
例えば、その環境における通信ネットワーク／バス１４がインターネットであるネットワーク環境では、サーバ１０は、クライアント１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどがそのウェブサーバとＨＴＴＰなどのいくつかの知られているプロトコルのいずれかを介して通信するウェブサーバであってよい。分散コンピューティング環境の特徴となり得ることだが、サーバ１０は、クライアント１１０としても機能することができる。通信は、適切ならば有線または無線でよい。クライアントデバイス１１０は、通信ネットワーク／バス１４を介して通信してもしなくてもよく、当該クライアントに関連する個別の通信を行うこともできる。例えば、ＴＶまたはＶＣＲの場合、それらの制御にはネットワーク化された態様が存在することもしないこともあり得る。各クライアントコンピュータ１１０およびサーバコンピュータ１０は、様々なアプリケーションプログラムモジュールまたはオブジェクト１３５を備えることができ、様々な種類のストレージエレメントまたはオブジェクトに対する接続またはアクセスを備えることができ、それらのストレージエレメントまたはオブジェクトに渡ってファイルが記憶されることができるか、またはそれらのストレージエレメントまたはオブジェクトに対してファイルの一部がダウンロードまたは移動されることができる。このように、本発明は、コンピュータネットワーク／バス１４にアクセスし、それと交信することができるクライアントコンピュータ１１０ａ、１１０ｂなどと、クライアントコンピュータ１１０ａ、１１０ｂなど、ならびにその他のデバイス１１１およびデータベース２０と交信できるサーバコンピュータ１０ａ、１０ｂなどとを有するコンピュータネットワーク環境において利用されることができる。
【００３２】
図３は、本発明による例示的なアプリケーション階層を示す。図示されるように、階層は、アプリケーション３０１と、一群のライセンス供与可能な製品３０２〜３０５とを含む。ライセンス供与可能な製品３０２〜３０５は、アプリケーション３０１と同じソースコードを共有することができるが、ライセンス供与可能な製品３０２〜３０５のそれぞれは、互いに独立して販売されることが可能な別個の製品として製造される。例えば、アプリケーション３０１およびライセンス供与可能な製品３０２〜３０５は、コンパクトディスクまたはその他のコンピュータ可読媒体で一緒に配布されることができる。
【００３３】
かかるアプリケーション３０１の例は、オペレーティングシステムであってよい。特定のオペレーティングシステムは、例えば６４ビットバージョン、外国語バージョン、プロフェッショナルバージョンなどの様々なバージョンで入手可能な場合がある。これらのバージョンのそれぞれが、ライセンス供与可能な製品を表す。各バージョンは異なる特徴を有することができるが、それらのバージョンは、それらのソースコードの一部または全てを親アプリケーション３０１から受け継ぐことができる。アプリケーション３０１の製造業者は、ライセンス供与可能な製品３０２〜３０５のそれぞれを一緒に含む単一のパッケージを販売し、購入者が使用したい特定のライセンス供与可能な製品についてのみ購入者に代金を請求することによって省力化を実現することができる。別の利点は、特定のライセンス供与可能な製品の購入者が当該ライセンス供与可能な製品のより完全な機能を搭載したバージョンへアップグレードしたいと望む場合に、購入者がアプリケーション３０１の新しいバージョンを入手することなしにアップグレードを行うことができることである。
【００３４】
これを容易にするために、各バージョンまたはライセンス供与可能な製品は、ライセンス３０７〜３０９として示された使用ライセンスを有することができる。図示されたように、ライセンス３０７〜３０９は、初期使用ライセンス３０７、オンライン使用ライセンス３０８、およびオフライン使用ライセンス３０９を含む。各ライセンス供与可能な製品は１つの使用ライセンスのみを有するように示されているが、本発明をライセンス供与可能な製品あたり１ライセンスのみに限定することが意図されるものではない。各ライセンス供与可能な製品が含むことができるライセンスの数に対する制限はない。
【００３５】
初期使用ライセンス３０７（または、すぐに使用できる（ｏｕｔ  ｏｆ  ｔｈｅ  ｂｏｘ）ライセンス）は、ソフトウェアアプリケーションを購入したときにユーザに与えられる初期の権利を含むことができる。例えば、サーバアプリケーションの購入者は、各バージョンがより多くのまたはより高度な機能を含んでいるアプリケーションのいくつかのバージョンを含むＣＤ−ＲＯＭを提供されることができる。例えば、ＣＤ−ＲＯＭに付随しているのは、最小限の数の機能を有するアプリケーションのバージョンに対応する初期使用ライセンスであってよい。あるいは、初期使用ライセンスは、初めにアプリケーションのより完全な機能を搭載したバージョンの利用をユーザに許可し、その後ある紹介期間が経過した後でより機能の少ないバージョンに戻ることができる。購入者が後から当該ライセンス供与可能な製品の別のバージョンへアップグレードしたいと望んだとすると、購入者は追加のライセンスのために発行者に連絡を取る必要があるであろう。
【００３６】
オンライン使用ライセンス３０８は、ユーザがソフトウェアアプリケーションを購入した後、例えばインターネットを介してユーザによって取得される使用ライセンスを含むことができる。ユーザがアプリケーションを購入したとき、ユーザは、オンライン使用ライセンスを受け取るためにアプリケーションをオンライン状態にするように要求される場合がある。ユーザは、ソフトウェアアプリケーションの製造者に「購入証明」または製品のその他の何らかの識別子を提供することができる。製造者が購入証明を認証した後、製造者は、購入証明に対応する特定の権利をユーザに与えるオンラインライセンスをユーザに提供することができる。
【００３７】
オフライン使用ライセンス３０９は、例えば、自身のライセンスをオンラインで検証することができないユーザ向けの使用ライセンスを含むことができる。これを容易にするために、例えば、オフライン使用ライセンスは、外部バリデータ３１５を含むことができる。ユーザが製品を購入したとき、ユーザは、購入された製品に対応する番号、例えば購入証明を入力するように最初に要求される場合がある。ユーザが番号を入力したとき、例えば、ユーザはユーザのコンピュータに入力すべき第２の番号を受け取ることができる。この第２の番号は、例えばハッシュ関数などの何らかの数学的な変換を介して購入証明と関連することができる。この第２の番号は、ユーザのコンピュータ内の知られている場所に記憶されることができる。後でユーザがオフライン使用ライセンス３０９に対応する製品を使用しようと試みるとき、外部バリデータ３１５が処理される。外部バリデータ３１５は、オフライン使用ライセンスを検証する方法に関する指示を有するデータを含むことが望ましい。前述の例に関しては、この外部バリデータは、購入証明のハッシュがユーザのコンピュータ内の知られている場所に記憶された値と一致しなければならないことを示すことができる。その場合、このシステムは、外部バリデータ３１５によって命令されるように購入証明に対してハッシュを実行し、それを記憶された値と照合することによってオフライン使用ライセンス３０９を検証することができる。例えば、外部バリデータは図６に関してさらに説明される。
【００３８】
図４は、本発明による例示的な製品ライセンス４０１を示すブロック図である。破線によって境界を示された四角の内側に配置されたブロック３０８、４１５、４１０、および４２３は、製品ライセンス４０１に含まれ得る各種ライセンスおよびコンポーネントを示す。さらに、製品ライセンス４０１を含むコンピュータ上にオプションの権利アカウント証明書（「ＲＡＣ」）５２１およびセキュリティ処理装置証明書（「ＳＰＣ」）４３１があってよい。例えば、ＳＰＣ４３１はＲＡＣ４２１を検証するために使用されることができ、同様にＲＡＣ４２１は製品ライセンス４０１を検証するために使用されることができる。図３で既に示されたように、アプリケーション３０１はアプリケーション３０１に関連する複数のライセンス供与可能な製品３０２〜３０５を有することができ、各ライセンス供与可能な製品はさらに使用ライセンス３０７〜３０９のうちの１つと関連する。単に説明を容易にするために、ライセンス供与可能な製品３０３および３０５、ならびに関連する使用ライセンスは図４から除かれている。製品ライセンス４０１内に示されることができるライセンス供与可能な製品および関連する使用ライセンスの数に対する制限はない。
【００３９】
例えば、製品ライセンス４０１は、国際標準化機構権利記述言語（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄｓ  Ｏｒｇａｎｉｚａｔｉｏｎ  Ｒｉｇｈｔｓ  Ｅｘｐｒｅｓｓｉｏｎ  Ｌａｎｇｕａｇｅ）（「ＩＳＯ  ＲＥＬ」）などの一般的な権利またはポリシー言語で表されることが望ましい。例えば、一般的な権利またはポリシー言語を使用することは、製品ライセンス４０１が、様々な起こりうるライセンス供与のシナリオでの使用に関して柔軟で好適であること可能にする。製品ライセンス４０１は、使用ライセンス３０８と、ライセンス供与可能製品レベルポリシー製品定義ライセンス（ｐｏｌｉｃｙ  ｐｒｏｄｕｃｔ  ｄｅｆｉｎｉｔｉｏｎ  ｌｉｃｅｎｓｅ）（「ＰＰＤＬＩＣ」）４１５と、アプリケーションレベルＰＰＤＬＩＣ４１０と、プロダクトキー証明書４２３とを含むいくつかのコンポーネントまたはライセンスを含むことが望ましい。図４には各コンポーネントの１つのインスタンスのみが示されているが、製品ライセンス４０１においてサポートされることができるコンポーネントまたはライセンスの数に対する制限はない。
【００４０】
特定のライセンス供与可能製品レベルＰＰＤＬＩＣ４１５において与えられる使用権利は、製品ポリシー（「ＰＰ」）で定義される。各ライセンス供与可能製品レベルＰＰＤＬＩＣ４１５は、関連するアプリケーションにおいて与えられた特定の使用権利にそれぞれが対応する複数のＰＰを含む。
【００４１】
同様に、アプリケーションレベルＰＰＤＬＩＣ４１０もＰＰを含む。初めに、特定のアプリケーション３０１は、アプリケーションレベルＰＰＤＬＩＣ４１０のみと共に配布されることができる。例えば、アプリケーションレベルＰＰＤＬＩＣ４１０は、アプリケーション３０１のユーザに与えられた最小限の使用権利に対応するＰＰを含むことができる。
【００４２】
例えば、プロダクトキー証明書４２３は、アプリケーションバイナリに対応する購入証明またはその他の識別子を含むことが望ましい。例えば、プロダクトキー証明書４２３の例は、購入されたソフトウェアアプリケーションにバンドルされてくることが多いシリアル番号である。その場合、これらのシリアル番号がユーザによって入力された後、購入されたソフトウェアアプリケーションがアクティベートされることが可能になる。プロダクトキー証明書４２３は、発行者が製品またはアプリケーションがどのようにライセンス供与されることを望んでいるのかを表すデータを含むことが望ましい。例えば、特定のプロダクトキー証明書４２３は特定の製品に対してのみ有効であってよく、したがってユーザがこの製品またはアプリケーションをアクティベートするとき、ユーザは対応するプロダクトキー証明書４２３を持っている必要がある。アクティベートされているアプリケーションまたは製品が特定のプロダクトキー証明書４２３と適合しない場合、操作は失敗し、製品またはアプリケーションはアクティベートされることができない。
【００４３】
ライセンス供与可能製品レベルＰＰＤＬＩＣ４１５の数が増え、アプリケーションのより多くの機能が使用可能にされるにつれて、様々なＰＰＤＬＩＣ４１５にまたがって定義されたいくつかの重複ＰＰが存在する場合がある。アプリケーションのユーザにどの権利が与えられるかを決定するために、各ＰＰは優先レベルおよび集約タイプを含むことが望ましい。２つのＰＰが衝突する場合、衝突がどのように解決されるかを決定するために優先レベルおよび集約タイプが使用されることができる。
【００４４】
例えば、サーバ製品のユーザは、当該サーバ製品に関連する複数のライセンス供与可能製品レベルＰＰＤＬＩＣ４１５を有することができる。１つのライセンス供与可能製品レベルＰＰＤＬＩＣ４１５には、５つのクライアント接続の権利をユーザに与えるＰＰがある可能性がある。別のライセンス供与可能製品レベルＰＰＤＬＩＣ４１５には、３つのクライアント接続の権利をユーザに与えるＰＰがある可能性がある。集約タイプと優先レベルに応じて、いくつかの異なる処置が取られることができる。集約タイプが「合計」である場合、ＰＰは合算され、ユーザに合計８つのクライアント接続を許可する。タイプが「置き換え」の場合、最も高い優先レベルを有するＰＰに関連する値が選択されることができる。ＰＰ集約タイプが衝突する場合、最も高い優先順位を有するＰＰの集約タイプが使用される。衝突するＰＰを集約するこの方法は、図５に関してさらに説明される。
【００４５】
権利アカウント証明書（「ＲＡＣ」）４２１は、製品ポリシーライセンス４０１を、特定のユーザ、コンピュータ、ネットワーク、または発行者がアプリケーション３０１の使用をそれに制限したいと望み得る任意の他の１つのデータに関連付けるために使用される環境バインダを含む。ＲＡＣ４２１はいくつかのライセンスと関連付けられることができ、特定の使用が認められることが可能となる前に特定のライセンスを認証するために使用されることができる。ＲＡＣ４２１は、係属中の米国特許出願第１１／０４８０８７号に記載の方法に従って実現されることができる。例えば、ＲＡＣ４２１は、特定のハードウェア識別番号に対応する識別子を含むことができる。
【００４６】
ハードウェア識別番号に加えて、例えば、ＲＡＣ４２１は、いくつかの特定のネットワークの特徴に対応する識別子を含んでもよい。例えば、最初にユーザが特定のＲＡＣ４２１を受け取っていた場合、ユーザは、ユーザのネットワーク環境に関連する何らかの識別子または特徴を、ユーザが知った上で、またはユーザが知ることなしにライセンス供与者に提供した可能性がある。アプリケーションの特定の使用が許可される前に、特定のネットワークの特徴の存在が確認される。例えば、会社の環境においては、ネットワークの特徴は会社のネットワークに対応して提供された可能性があり、したがって、オフィスにいないときにユーザが製品を使用することを防止する。ネットワークの特徴の例は、ドメインコントローラの数、ＤＮＳ名、ＩＰアドレス、または当技術分野で知られている任意の他のネットワークの特徴を含んでよい。
【００４７】
ＲＡＣ４２１は、相手先商標製造会社（「ＯＥＭ」）指定のコンピュータの特徴に対応する識別子を含んでもよい。ＯＥＭは、それらＯＥＭのコンピュータの１つの購入にソフトウェアをバンドルすることが多い。ソフトウェアの供給業者は、多くの場合、ソフトウェアをＯＥＭに数量割引で提供しており、ソフトウェアがコンピュータの購入者によって転売または再配布されず、市場において供給業者の正規価格のソフトウェアと競合しないことを望む場合がある。購入されたソフトウェア用のライセンスを取得するためのいくつかの一連のステップを踏むことをコンピュータの購入者に要求しないで、しかし同時に購入者がバンドルされたソフトウェアおよびライセンスを別のユーザに売ることを防止するために、ＲＡＣ４２１はＯＥＭコンピュータの特定の特徴に対応する何らかの識別子を含むことができる。例えば、この識別子は、ＢＩＯＳに関連する何らかの値に対応することができる。ＯＥＭの拘束は、ハードウェアシステムを記述し、その記述を特定のＯＥＭに相関させるための、当技術分野で知られている任意のシステムを使用して実現されることができる。ＲＡＣ４２１で使用されるべき特定のＯＥＭの特徴は、ＯＥＭによってソフトウェア製造業者に提供されることができ、したがって、ソフトウェアがＯＥＭコンピュータにインストールされる前にソフトウェア製造業者によってＲＡＣ４２１に組み込まれることができる。ＯＥＭコンピュータの購入者がインストールされたソフトウェアを使用しようと試みるとき、ＲＡＣ４２１に記載されたＯＥＭの特徴はユーザのコンピュータのＯＥＭの特徴と照合されることになり、ＯＥＭの特徴が一致した場合に限り、要求されたソフトウェアの使用が許可されることになる。
【００４８】
セキュリティ処理装置証明書（「ＳＰＣ」）４３１は、ＲＡＣ４２１を認証するために使用されることができる。上述の通り、ＲＡＣ４２１は、アプリケーションバイナリ３０１に関連する製品ライセンス４０１を認証するために使用される。同様に、ＳＰＣ４３１は、ＲＡＣ４２１を認証するために使用される。ＳＰＣ４３１は、認証のための、当技術分野で知られている任意のシステム、方法、または技術を使用してＲＡＣ４２１を認証するために使用されることができる。例えば、ＳＰＣ４３１は、ユーザの処理装置に記憶された値と比較されることができる署名された値を含み得る。署名された値を復号した後で、それが記憶された値と一致する場合、ＲＡＣ４２１は本物であると宣される。
【００４９】
図５は、本発明によるライセンス集約の例示的な方法の流れ図である。特定のアプリケーションのための１組の使用ライセンスが取り出される。使用ライセンスが認可される。使用ライセンスのそれぞれに関連する任意の条件が確認される。条件（もしあれば）が確認される場合、各確認された使用ライセンスに関連する各製品ポリシー（「ＰＰ」）は集約される。条件が確認されない場合、集約の目的に関してライセンスは無視され、１組の認可されたライセンスからの次のライセンスが評価される。各ライセンスが評価され終わるまでこの実施形態が継続する。
【００５０】
５０１において、ユーザまたは管理者は、使用すべきアプリケーションを選択した。当該アプリケーションに関してどの権利がユーザに与えられたかを判定するために、このアプリケーションに関連する任意のライセンスが取り出されることが望ましい。図４に関して上述したように、特定のアプリケーションに関連する複数のライセンスが存在してよい。各ライセンスは、アプリケーション、またはアプリケーションの特定の機能の使用を許可する前に満足されるべき条件（例えば、時間または支払い条件）を含むことができる。各ライセンスは、アプリケーションに関連する特定の使用権利を与える１つまたは複数のポリシー製品（「ＰＰ」）を有することもできる。各ライセンスは複数の重複するＰＰを含むことができるので、アプリケーションに関連するどの使用権利がユーザに与えられることができるのかを正確に決定するためにＰＰを集約することが必要な場合がある。したがって、特定のアプリケーションに関連するＰＰを含む各ＰＰＤＬＩＣが取り出されることが望ましい。例えば、ＰＰＤＬＩＣは、ライセンスが記憶されることができるユーザのコンピュータ上のトークンストアまたはその他の集中化された場所から取り出されることができる。
【００５１】
５０５において、使用ライセンスが認可される。ライセンスは、例えばＲＡＣ４２１などのライセンス検証の方法のいずれかを使用して認可されることができる。例えば、ライセンスを認可することによって、ライセンスが有効であり、別のユーザから譲渡されていないことを保証する。認可されることができない全てのライセンスは、検討されている１組のライセンスから削除されることが望ましい。
【００５２】
５１０において、認可されたライセンスが選択される。ライセンスは最終的に一緒に集約されるので、ライセンスの選択に関して要求される特定の順序はない。当技術分野で知られている任意のシステム、方法、または技術が使用されることができる。
【００５３】
５１５において、選択されたライセンスの何れかの条件が満たされているかどうかが判定される。図３に関して上述したように、所与のライセンスに関連するオプションの条件が存在してよい。例えば、特定のライセンス供与可能な製品に関連するライセンスが３０日の試用期間を指定する場合、ライセンスが失効するように設定される日付を指定する条件が存在してよい。選択されたライセンスの全ての条件（もしあれば）が満たされる場合、５２５においてこの実施形態が継続する。そうでない場合、異なるライセンスを選択するためにこの実施形態は５１０に戻る。
【００５４】
５２５において、選択されたライセンスに関連するＰＰは、前に集約されたＰＰと集約されることが望ましい。例えば、前に集約されたＰＰはキャッシュに記憶されることができる。上述のように、同じＰＰが複数のライセンスに関連付けられることができる。典型的なＰＰは、例えばＩＳＯ  ＲＥＬで記述されたように集約優先順位と集約タイプを含む。集約タイプは、同じ使用権利を指定するＰＰとこの特定のＰＰがどのように集約されるべきかを指定する。集約優先順位は、ある集約タイプに関してどのＰＰが優先権を有するのかを判定するために使用される。ＰＰの例が以下に示される。
【００５５】
【数１】
2008539503.tif 000002
【００５６】
示されたＰＰは、優先順位２．２６および集約タイプ「合計」を有する。例えば、集約ポリシータイプ「合計」は、ＰＰに関連する使用権利が、キャッシュ内の同じ使用権利を指定する全ての前のＰＰに関連する使用権利と加算されるべきであることを指定する。各集約タイプに関連する集約ポリシーは、以下の表Ｔ１に示される。
【００５７】
【表１】
2008539503.tif 000003
【００５８】
ライセンスに関連する各ＰＰが順に検討されることになる。同じ使用権利を指定するＰＰがこの実施形態によってまだ検討されていない場合（すなわち、同じ使用権利を指定するＰＰが、既に検討されたＰＰの全てを含むキャッシュ内にまだない場合）、ＰＰはキャッシュ内に置かれ、何の処置も取られる必要がない。そうでない場合、同じ使用権利を指定するＰＰがキャッシュ内にあり、現在のＰＰは、ＰＰで指定されている集約タイプに従って、および集約タイプによっては選択されたＰＰに関連する優先レベルに従ってキャッシュ内のＰＰと集約されることが望ましい。
【００５９】
集約タイプが「最小」である場合、算術的最小値を有するＰＰの値がキャッシュに置かれる。
【００６０】
集約タイプが「最大」である場合、算術的最大値を有するＰＰの値がキャッシュに置かれる。
【００６１】
集約タイプが「合計」である場合、現在のＰＰの値が、キャッシュ内のＰＰの値（もしあれば）と合計される。
【００６２】
集約タイプが「ブール」である場合、キャッシュ内のＰＰ値の論理ＯＲが使用される。
【００６３】
集約タイプが「置き換え」である場合、キャッシュ内の最高の集約優先順位を有するＰＰからの値が使用される。
【００６４】
現在の例は上述の５つの集約タイプを用いて説明されるが、本発明を記載されたこれらのタイプに限定することが意図されるものではない。本発明は、値を集約するための、当技術分野で知られている任意の知られているシステム、方法、または技術をサポートすることができる。
【００６５】
選択されたライセンスに関連する全てのＰＰを検討した後、５１０において、この実施形態は次のライセンスを選択する。この実施形態は、残っているライセンスがなくなるまで、残っているライセンスからのＰＰを集約し続ける。ライセンスを処理し尽くした後で、特定のアプリケーション用にユーザが使用可能な使用権利が、キャッシュに記憶された残っている集約されたＰＰの中で見つけられることができる。
【００６６】
図６は、本発明による外部検証の例示的な方法の流れ図である。使用ライセンスのための外部検証インジケータが処理される。関連する外部バリデータが検査される。外部バリデータによって使用ライセンスが認証される。検証が成功した場合、使用ライセンスに記載された使用が認められる。そうでない場合、使用は拒否される。
【００６７】
６０１において、ユーザは特定のライセンス供与可能な製品を使用しようと試み得る。ライセンス供与可能な製品は、例えば図３に関して説明したようにライセンス供与可能な製品３０５に対応することができる。図示されたように、ライセンス供与可能な製品３０５は、対応するオフライン使用ライセンス３０９を有する。オフライン使用ライセンス３０９は、関連する外部バリデータ３１５を有する。
【００６８】
ユーザがライセンス供与可能な製品３０５を使用しようと試みるとき、オフライン使用ライセンス３０９がライセンスストアから取り出される。上述のように、ライセンスは、ＩＳＯ  ＲＥＬなどの一般的な権利またはポリシー言語を使用して表されることが望ましい。ライセンスが解釈されるとき、外部バリデータ３１５に対応するフィールドまたはフラグが処理されることができる。フィールドの存在によって、このオフライン使用ライセンスが関連する外部バリデータ３１５によって確認されなければならないことが示される。外部バリデータ３１５は、オフライン使用ライセンス３０９に付加されるか、またはさもなければ関連付けられるデータを含む。
【００６９】
図３に関して上述されたように、外部バリデータ３１５は、オフライン使用ライセンス３０９がどのように検証され得るかを示すデータを含むことが望ましい。最初にユーザがオフライン使用ライセンス３０９に対応するライセンス供与可能な製品３０５を購入したとき、ユーザは、購入証明に対応する番号をライセンス供与可能な製品３０５の生産者に例えば電話で提供した得る。引き替えに、ユーザは購入証明に対応する短い番号を提供され得る。例えば、この番号は、購入証明のハッシュであってよい。例えば、この番号はユ―ザによって入力され得、外部バリデータ３１５に認識されているコンピュータ上の場所に保存され得る。外部バリデータ３１５は、購入証明のハッシュをこの記憶された番号と比較するための命令を含むことができ、ハッシュが記憶された番号と一致する場合のみ使用を許可することができる。ユーザは製造業者によって使用されるハッシュ関数を知らないため、ユーザは購入証明から記憶された番号を再作成することはできない。ハッシュ関数に加えて、例えば、記憶された番号は、デジタル署名を含む様々な方法を使用して認証されることができる。
【００７０】
６１０において、使用ライセンス３０９は、外部バリデータ３１５によって認証される。上述のように、外部バリデータ３１５は、使用ライセンス３０９がどのように認証され得るかを指示するデータを含むことができる。代替として、外部バリデータ３１５は、検証のための命令に対応するユーザのコンピュータ上のポインタまたはメモリアドレスを含んでもよい。検証のための、当技術分野で知られている任意のシステム、方法、または技術が使用されることができる。
【００７１】
６１５において、オフライン使用ライセンス３０９が成功裏に検証されたかどうかが判定される。ライセンスが成功裏に認証された場合、この実施形態は６２５に進み、６２５において、オフライン使用ライセンス３０９で指定された使用が許可される。そうでない場合、オフライン使用ライセンス３０９は認証されておらず、６３５において使用が拒否される。
【００７２】
上述のように、本発明の例示的実施形態が様々なコンピューティングデバイスに関連して説明されたが、根本的な概念は任意のコンピューティングデバイスまたはシステムに適用されることができる。
【００７３】
本明細書に記載された種々の技術は、ハードウェアもしくはソフトウェア、または適切であれば両方の組合せに関連して実施されることができる。したがって、本発明の方法および装置、またはそれらの特定の態様または部分は、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブ、または任意の他の機械可読記憶媒体などの有形の媒体内に具現化されるプログラムコード（すなわち命令）の形態を取ることができ、プログラムコードがコンピュータなどの機械にロードされ、機械によって実行されるとき、当該機械は本発明を実施するための装置になる。プログラム可能なコンピュータ上でプログラムコードを実行する場合、概してコンピューティングデバイスは、処理装置と、当該処理装置によって可読な記憶媒体（揮発性および不揮発性メモリおよび／またはストレージエレメント）と、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含む。（１つまたは複数の）プログラムは、必要に応じてアセンブリまたは機械語で実装されることができる。どの場合も、言語はコンパイルされたまたは解釈された言語であってよく、ハードウェア実装と組み合わされてよい。
【００７４】
本発明の方法および装置は、電気配線もしくはケーブル、光ファイバ、または任意の他の伝送形態などの何らかの伝送媒体を介して伝送されるプログラムコードの形態で具現化された通信によって実施されてもよく、プログラムコードがＥＰＲＯＭ、ゲートアレイ、プログラマブルロジックデバイス（ＰＬＤ）、クライアントコンピュータなどの機械に受信およびロードされ、機械によって実行されるとき、当該機械は本発明を実施するための装置になる。汎用プロセッサ上に実装されるとき、プログラムコードは処理装置と連携して、本発明の機能をもたらすように動作する独自の装置を提供する。さらに、本発明に関連して使用される任意の記憶技術は、常にハードウェアとソフトウェアの組合せであってよい。
【００７５】
本発明が種々の図の好ましい実施形態に関連して説明されたが、本発明の同様の機能を実行するために、本発明を逸脱することなくその他の類似の実施形態が使用されることができるか、または記載された実施形態に対して修正または追加が行われることができることを理解されたい。したがって、本発明は任意の単一の実施形態に限定されるべきではなく、むしろ添付の特許請求の範囲による広さおよび範囲内で解釈されるべきである。
【図面の簡単な説明】
【００７６】
【図１】その環境内で本発明の態様が実施され得る例示的なコンピューティング環境を示すブロック図である。
【図２】その環境内で本発明が実施され得る、種々のコンピューティングデバイスを有する例示的なネットワーク環境を示すブロック図である。
【図３】本発明による例示的なアプリケーション階層を示すブロック図である。
【図４】本発明による例示的な製品ポリシー定義ライセンス体系を示すブロック図である。
【図５】本発明による、使用ライセンスを集約する例示的な方法を示すブロック図である。
【図６】本発明による、ライセンスを外部から検証する例示的な方法を示す流れ図である。
【図１】
2008539503.tif 000004
【図２】
2008539503.tif 000005
【図３】
2008539503.tif 000006
【図４】
2008539503.tif 000007
【図５】
2008539503.tif 000008
【図６】
2008539503.tif 000009
【国際調査報告】
2008539503.tif 000010