(57)【要約】【課題】  多数のライセンス・タイプおよび制限のあるライセンス調整のための技法。【解決手段】  方法は、多数のソフトウェア・インストール・インスタンス集合、多数のハードウェア・デバイス集合、および多数のソフトウェア・ライセンス集合を多数のクラスタにグループ化することと、各クラスタごとに調整行列を生成することであって、調整行列内の各行がソフトウェア・インストール・インスタンスまたはハードウェア・デバイスを表し、調整行列内の各列がライセンス・タイプまたは個々のライセンスあるいはその両方を表し、調整行列内の各セルが各ソフトウェア・インストール・インスタンスまたはハードウェア・デバイスのライセンス要求および適用可能性を表す、ことと、各調整行列を解くことと、解いた調整行列に基づいてライセンス調整プランを生成することと、を含む。【選択図】図３
2014081922.tif 000002
【特許請求の範囲】
【請求項１】
ライセンス調整のための方法であって、
多数のソフトウェア・インストール・インスタンス集合、多数のハードウェア・デバイス集合、および多数のソフトウェア・ライセンス集合を多数のクラスタにグループ化するステップと、
各クラスタごとに調整行列を生成するステップであって、前記調整行列内の各行がソフトウェア・インストール・インスタンスまたはハードウェア・デバイスを表し、前記調整行列内の各列がライセンス・タイプまたは個々のライセンスあるいはその両方を表し、前記調整行列内の各セルが各ソフトウェア・インストール・インスタンスまたはハードウェア・デバイスのライセンス要求および適用可能性を表す、ステップと、
各調整行列を解くステップと、
前記解いた調整行列に基づいてライセンス調整プランを生成するステップと、
を含み、前記ステップの少なくとも１つがコンピュータ・デバイスによって実行される、方法。
【請求項２】
前記多数のソフトウェア・ライセンス集合が多数の容量タイプおよび多数の制限を含む、請求項１に記載の方法。
【請求項３】
各ソフトウェア・インストール・インスタンスまたはハードウェア・デバイスにライセンス・タイプを指定することを含む、請求項１に記載の方法。
【請求項４】
指定したライセンス・タイプ内のソフトウェア・ライセンスからライセンス容量の量を割り当てることを含む、請求項１に記載の方法。
【請求項５】
ライセンス調整プランの生成が、性能／価格比に基づいて各ライセンス・タイプをランク付けすることを含む、請求項３に記載の方法。
【請求項６】
各クラスタごとの前記調整行列が多数のセル・タイプを含む、請求項１に記載の方法。
【請求項７】
前記多数のセル・タイプが、ライセンス需要量を表すセル・タイプ、利用可能ライセンス供給を表すセル・タイプ、有効な権利付与を表すセル・タイプ、および制限を表すセル・タイプを含む、請求項６に記載の方法。
【請求項８】
前記解くことが、各カバーしたソフトウェア・インスール・インスタンスおよび最も厳しいライセンス制約セットについて相対的ライセンス消費が最小であるライセンス権利付与を選択することを含む、請求項１に記載の方法。
【請求項９】
ライセンス調整プランの生成が、性能／価格比に基づいて前記解いた調整行列の各々をランク付けすることを含み、性能は、前記多数のソフトウェア・インストール・インスタンス集合からのある数のカバーしたソフトウェア・インストール・インスタンスを示し、価格は、前記多数のソフトウェア・ライセンス集合からの消費したライセンスの相対的な量を示す、請求項１に記載の方法。
【請求項１０】
ライセンス調整プランの生成が、特定度のレベルに基づいて各ライセンス・タイプ内の全てのライセンスをランク付けすることを含む、請求項１に記載の方法。
【請求項１１】
ロケーションに基づいて測定基準を分析することを含む、請求項１０に記載の方法。
【請求項１２】
ソフトウェア・バージョンに基づいて測定基準を分析することを含む、請求項１０に記載の方法。
【請求項１３】
各クラスタごとに調整行列を生成することが、各ソフトウェア・インストール・インスタンスまたはソフトウェア・インストール・インスタンス・セットあるいはその両方のライセンス要求を正規のデータ・フォーマットに符号化することを含む、請求項１に記載の方法。
【請求項１４】
各クラスタごとに調整行列を生成することが、各ライセンスごとに利用可能容量情報を正規のデータ・フォーマットに符号化することを含む、請求項１に記載の方法。
【請求項１５】
各クラスタごとに調整行列を生成することが、ソフトウェア・インストール・インスタンスの各セットの各メンバの識別を正規のデータ・フォーマットに符号化することを含む、請求項１に記載の方法。
【請求項１６】
各クラスタごとに調整行列を生成することが、１つ以上のライセンス・タイプの各々に属する各ライセンスの識別を正規のデータ・フォーマットに符号化することを含む、請求項１に記載の方法。
【請求項１７】
ライセンス調整のためのシステムであって、
各々がタンジブルなコンピュータ読み取り可能媒体上で具現化されている、少なくとも１つの個別のソフトウェア・モジュールと、
メモリと、
前記メモリに結合された少なくとも１つのプロセッサであって、
多数のソフトウェア・インストール・インスタンス集合、多数のハードウェア・デバイス集合、および多数のソフトウェア・ライセンス集合を多数のクラスタにグループ化し、
各クラスタごとに調整行列を生成し、前記調整行列内の各行がソフトウェア・インストール・インスタンスまたはハードウェア・デバイスを表し、前記調整行列内の各列がライセンス・タイプまたは個々のライセンスあるいはその両方を表し、前記調整行列内の各セルが各ソフトウェア・インストール・インスタンスまたはハードウェア・デバイスのライセンス要求および適用可能性を表し、
各調整行列を解き、
前記解いた調整行列に基づいてライセンス調整プランを生成する、
ように動作するプロセッサと、
を含むシステム。
【請求項１８】
前記多数のソフトウェア・ライセンス集合が多数の容量タイプおよび多数の制限を含む、請求項１７に記載のシステム。
【請求項１９】
請求項１〜１６の何れか１項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
【請求項２０】
請求項１９記載の前記コンピュータ・プログラムを、コンピュータ読み取り可能記録媒体に記録した、コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般に情報技術に関し、更に具体的にはライセンス調整（ｌｉｃｅｎｓｅ  ｒｅｃｏｎｃｉｌｉａｔｉｏｎ）技術に関する。
【背景技術】
【０００２】
ライセンス調整の分野には課題がある。一例として、以下の一般的な状況について考える。課金サイクルの開始時に、多数のライセンスが購入される。課金サイクルの間、多数の製品（ソフトウェア製品等）がインストールされ利用される。その後、課金サイクルの終了時に、ライセンス調整の計算を行って、製品に対するライセンスの権利付与（ｅｎｔｉｔｌｅｍｅｎｔ）を決定し、購入されたライセンスによってソフトウェア製品の現在の使用が充分に権利付与されているか否かを調べる。
【０００３】
しかしながら、既存の手法において用いられる調整論理は、手作業による大変な労力を必要とし、精度上の問題が生じることがある。例えば、既存の手法は、展開されたソフトウェア・インストールに対して使用可能なライセンスを適用することを含むが、複数のライセンス・タイプおよび１つのタイプ内の複数のライセンスの混合を最適化することはない。これは不正確な調整につながる恐れがあり、このためにフォルス・ネガティブ（ｆａｌｓｅ  ｎｅｇａｔｉｖｅ）を生じ、潜在的にライセンス処理コストが上昇する。一方、全ての可能なライセンスの組み合わせを調べる既存の手法では、調整時間が極端に長くなる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従って、多数の適用可能なライセンスから、ライセンスのタイプおよび制限を考慮に入れた選択を行うことを可能とする必要がある。
【課題を解決するための手段】
【０００５】
本発明の一態様において、多数のライセンス・タイプおよび制限のあるライセンス調整のための技法を提供する。例示的なライセンス調整のためのコンピュータ実施方法は、多数のソフトウェア・インストール・インスタンス集合、多数のハードウェア・デバイス集合、および多数のソフトウェア・ライセンス集合を多数のクラスタにグループ化するステップと、各クラスタごとに調整行列を生成するステップであって、調整行列内の各行がソフトウェア・インストール・インスタンスまたはハードウェア・デバイスを表し、調整行列内の各列がライセンス・タイプまたは個々のライセンスあるいはその両方を表し、調整行列内の各セルが各ソフトウェア・インストール・インスタンスまたはハードウェア・デバイスのライセンス要求および適用可能性を表す、ステップと、各調整行列を解くステップと、解いた調整行列に基づいてライセンス調整プランを生成するステップと、を含む。
【０００６】
本発明の別の態様またはその要素は、コンピュータ読み取り可能命令をタンジブルに具現化する製造品の形態で実施可能である。この命令は、実施された場合に、本明細書に記載したような複数の方法ステップをコンピュータに実行させる。更に、本発明の別の態様またはその要素は、メモリと、このメモリに結合されて上述した方法ステップを実行するように動作する少なくとも１つのプロセッサと、を含む装置の形態で実施することができる。更に、本発明の別の態様またはその要素は、本明細書に記載された方法ステップまたはその要素を実行するための手段の形態で実施することができる。この手段は、ハードウェア・モジュール（複数のモジュール）またはハードウェア・モジュールおよびソフトウェア・モジュールの組み合わせを含むことができ、ソフトウェア・モジュールはタンジブルなコンピュータ読み取り可能記憶媒体（または多数のかかる媒体）に記憶されている。
【０００７】
本発明のこれらおよび他の目的、特性、および利点は、例示的な実施形態の以下の詳細な説明を添付図面と関連付けて読むことから明らかとなろう。
【図面の簡単な説明】
【０００８】
【図１】本発明の一態様に従った一例としてのアーキテクチャを示すブロック図である。
【図２】本発明の一実施形態に従った調整技法を示すフロー図である。
【図３】本発明の一実施形態に従ったライセンス調整のための技法を示すフロー図である。
【図４】本発明の少なくとも１つの実施形態を実施可能である例示的なコンピュータ・システムのシステム図である。
【発明を実施するための形態】
【０００９】
本明細書に記載するように、本発明の一態様は、多数のライセンス・タイプおよび制限のあるインテリジェントなライセンス調整を含む。本発明の少なくとも１つの実施形態は、様々な実行可能プランから最も費用対効果が大きいライセンス権利付与を識別することを含む。本明細書に詳述するように、かかる実施形態は組み合わせ最適化技法の使用を含む場合がある。本明細書において用いる場合、ライセンス権利付与とは、ソフトウェア・インストールまたはソフトウェア製品を実行するコンピューティング・デバイスに対してライセンスを用いるアクションを指す。
【００１０】
本発明の少なくとも１つの実施形態は、ライセンスおよび製品（ソフトウェア製品等）をグループにクラスタ化することによって問題のサイズを縮小することを含む。各グループは独立した問題である。更に、各グループについて行列を生成することができる。かかる行列は、解空間を標示する統一データ表現である。更に、本発明の少なくとも１つの実施形態は、例えば組み合わせ最適化において一般化割当問題（ＧＡＰ：ｇｅｎｅｒａｌｉｚｅｄ  ａｓｓｉｇｎｍｅｎｔ  ｐｒｏｂｌｅｍ）のための発見的方法により促進されるアルゴリズムを用いて、行列を解くことを含む。また、各グループの各個別行列を解き、最終的に各グループについて１つの解を選択する。
【００１１】
図１は、本発明の一態様に従った一例としてのアーキテクチャを示すブロック図である。例示として、図１は、ライセンス・クラスタ化モジュール１０２、調整行列生成モジュール１０４、および調整行列ポピュレーティング・モジュール１０６を示す。ライセンス・クラスタ化モジュール１０２は、全てのライセンスおよびソフトウェア製品をクラスタにグループ化して、各クラスタが独立した調整問題を表すようにする。これによって全体的な計算の複雑度を軽減する。調整行列生成モジュール１０４は、初期調整行列を生成する。本発明の少なくとも１つの実施形態において、行列内の各行は、あらゆる権利付与決定の基本単位であるソフトウェア製品コンテナを表す。更に、行列内の各列は、ライセンス・タイプまたは個々のライセンスのいずれかである。
【００１２】
説明の目的のため、本明細書において記載する一例としての実施形態は、行列セルのための例示的な識別子を含む。従って、本明細書において用いる場合、「赤い」セルはライセンス需要量を表し、「茶色い」セルは利用可能ライセンス供給を表し、「緑の」セルは有効な権利付与を表し、「黄色い」セルはソフト制限（ｓｏｆｔ  ｒｅｓｔｒｉｃｔｉｏｎ）を表す。
【００１３】
図１に更に示すように、ライセンス・クラスタ化モジュール１０２および調整行列生成モジュール１０４のアクションにより、組み合わせ最適化問題の解空間が標示される。本発明の少なくとも１つの例示的な実施形態では、最適化問題は、一般化割当問題（ＧＡＰ）の特別な形態として見ることができる。従って、調整行列ポピュレーティング・モジュール１０６が各調整行列を解く。一例として図２は、どのように各行列を解くかを表す。更に、本発明の少なくとも１つの実施形態においては、各行列をポピュレートするために３つのタイプの情報を用いる。すなわち、（１）各ライセンスの利用可能な容量、タイプ、および制約、（２）各コンピューティング・デバイスの構成（例えばプロセッサの数）、ならびに（３）どのコンピューティング・デバイス上にどのソフトウェア製品がインストールされているか、およびどのデバイスが他のどのデバイス上で実行するか（例えば仮想マシンが物理マシン上で実行する）に関する情報、である。
【００１４】
更に、本発明の少なくとも１つの実施形態においては、全ソフトウェア在庫がカバーされるまで、または全てのライセンスが用いられるまで、最も費用対効果の大きい権利付与を選択する。従って、各クラスタについて１つの解を導出する。
【００１５】
図２は、本発明の一実施形態による調整技法を示すフロー図である。図２に示すように、本発明の例示的な実施形態に含まれる関数は、最も有利な（例えば最も費用対効果の大きい「赤い」セルを決定することを含む（ステップ２０２および２０４）。（また、最も有利な「赤い」セルが見つからない場合、プロセスはステップ２０６において停止する（不適合の判定。）上述のように、「赤い」セルは、特定のライセンス・タイプにおけるソフトウェアまたはハードウェア資産のライセンス需要量を表す。従って、かかる関数（ｂｅｓｔ＿ｒｅｄ＿ｃｅｌｌ（））は、性能／価格比に基づいて全ての「赤い」セルをランク付けすることを含む。本明細書において用いる場合、性能はカバーしたインスタンスの数を示し、価格は消費したライセンスの相対的な量（例えば利用可能な容量から消費したライセンスの割合）である。一例として、５００台のＰＶＵ（Ｐｒｏｃｅｓｓｏｒ  Ｖａｌｕｅ  Ｕｎｉｔ）が利用可能であり、その行が５０台を消費する場合、価格は１０％（０．１）である。
【００１６】
また、図２に示すように、本発明の例示的な実施形態に含まれる別の関数は、次の「緑の」セルまたは「黄色い」セルを決定することを含む（ステップ２０８）。すなわち、所与の赤いセルについて多数の緑のセルおよび黄色いセルが存在する場合がある。ライセンス適合の可能性を最大限とするため、緑のセルおよび黄色いセルのライセンス制約に基づいて、それらに順序を付ける。この文脈において、「次」とは、ランク付けしたリスト内で最初に使用可能な（容量が残っている）緑のまたは黄色いセルを指す。上述のように、「緑の」セルは有効な権利付与を表し、「黄色い」セルはソフト制限を表す。
【００１７】
従って、かかる関数（ｎｅｘｔ＿ｇｒｅｅｎ＿ｏｒ＿ｙｅｌｌｏｗ＿ｃｅｌｌ（））は、「緑の」セルが行列内の残りの行をカバーするのに充分な容量を有する可能性を最大限とすることを含む。本明細書において用いる場合、カバーするとは、ライセンス容量がソフトウェアまたはハードウェア資産のライセンス要求以上であることを指す。従って、ソフトウェア／ハードウェア資産にライセンスを適用する場合、この資産は充分に権利付与される。これは、１つのライセンス・タイプ内の全てのライセンスを、最も特定的（ｓｐｅｃｉｆｉｃ）なものから最も一般的（ｇｅｎｅｒａｌ）なものへとランク付けすることによって達成可能である。この文脈において、特定的とは、ライセンスが有する制約が多いことを示し、一般的とは、ライセンスが有する制約が少ないことを示す。
【００１８】
更に、本発明の少なくとも１つの実施形態においては、ロケーション、製品バージョン、ソフトウェア・バンドル等の測定基準を考慮することができる。従って、本発明の少なくとも１つの実施形態は、制約を適用した後にカバーすることができるソフトウェア・インストールの数によって全てのライセンスにランク付けすることを含む。制約は、ロケーション、バージョン、バンドル等を含む。
【００１９】
従って、図２に更に示すように、関数（列Ｃ＝ｎｅｘｔ＿ｇｒｅｅｎ＿ｏｒ＿ｙｅｌｌｏｗ＿ｃｅｌｌ（Ｒ，Ｔ））がヌルである場合（ステップ２１０）、対象の行（Ｒ）に割り当てられたライセンス容量を解放し、対象の赤いセル（〔Ｒ，Ｔ〕）を格下げする（ステップ２１２）。関数がヌルでない場合、ステップ２１４は、列Ｃの容量を行Ｒに割り当て、利用可能供給情報を更新することを含む。列Ｃが空である場合（ステップ２１６）、Ｃ内の全ての「緑の」セルを白に表示し（ステップ２１８）、プロセスは続いてステップ２２０に移る。同様に、列Ｃが空でない場合、プロセスは続いてステップ２２０に移り、行Ｒが完全にカバーされたか否かを判定する。行Ｒが完全にカバーされていない場合、プロセスはステップ２０８に戻る。行Ｒが完全にカバーされた場合、ステップ２２２で、Ｒの全ての下位の行がカバーされたと表されたことを示す。
【００２０】
ステップ２２４は、それらの下位の行に割り当てたライセンスを解放することを含み、ステップ２２６は、格納リストを更新することを含む。ステップ２２８は、分析する追加の行があるか否かを判定することを含む。イエスの場合、プロセスはステップ２０２に戻る。ノーの場合、プロセスはステップ２３０において停止する（適合の判定）。
【００２１】
図３は、本発明の一実施形態に従ったライセンス調整のための技法を示すフロー図である。ステップ３０２は、多数のソフトウェア・インストール・インスタンス集合、多数のハードウェア・デバイス集合、および多数のソフトウェア・ライセンス集合を多数のクラスタにグループ化することを含む。多数のソフトウェア・ライセンス集合は、多数の容量タイプ（ＰＶＵ、ＲＶＵ（ｒｅｓｏｕｒｃｅ  ｖａｌｕｅ  ｕｎｉｔ）、サーバ等）および多数の制限（バージョン、地理等）を含むことができる。
【００２２】
ステップ３０４は、各クラスタごとに調整行列を生成することを含み、調整行列内の各行がソフトウェア・インストール・インスタンスまたはハードウェア・デバイスを表し、調整行列内の各列がライセンス・タイプまたは個々のライセンスあるいはその両方を表し、調整行列内の各セルが各ソフトウェア・インストール・インスタンスまたはハードウェア・デバイスのライセンス要求および適用可能性を表す。各調整行列は多数のセル・タイプを含むことができる。例えば調整行列は、ライセンス需要量を表すセル・タイプ、利用可能ライセンス供給を表すセル・タイプ、有効な権利付与を表すセル・タイプ、または制限を表すセル・タイプあるいはそれら全てを含むことができる。
【００２３】
ステップ３０６は、各調整行列を解くことを含む。この解くステップは、各カバーしたソフトウェア・インスール・インスタンスおよび最も厳しいライセンス制約セットについて相対的ライセンス消費が最小であるライセンス権利付与を選択することを含む。
【００２４】
ステップ３０８は、解いた調整行列に基づいてライセンス調整プランを生成することを含む。ライセンス調整プランの生成は、性能／価格比に基づいて解いた調整行列をランク付けすることを含むことができる。性能は、多数のソフトウェア・インストール・インスタンス集合からのある数のカバーしたソフトウェア・インストール・インスタンスを示し、価格は、多数のソフトウェア・ライセンス集合からの消費したライセンスの相対的な量を示す。更に、ライセンス調整プランの生成は、特定度（ｓｐｅｃｉｆｉｃｉｔｙ）のレベルに基づいて各ライセンス・タイプ内の全ライセンスをランク付けすることを含むことができる。また、ロケーション、バージョン等に基づいた測定基準に関して分析を実行することができる。一例として、あるライセンス・タイプ内では、制限の多いライセンス（例えば全てのバージョンでなくソフトウェア・バージョン１０でのみ使用可能である）を最初に用いる。
【００２５】
更に、各クラスタごとの調整行列の生成は、各ソフトウェア・インストール・インスタンスまたはソフトウェア・インストール・インスタンス・セットあるいはその両方のライセンス要求を正規のデータ・フォーマットに符号化することを含むことができる。更に、本発明の少なくとも１つの実施形態は、各ライセンスごとに利用可能容量情報を正規のデータ・フォーマットに符号化すること、ソフトウェア・インストール・インスタンスの各セットの各メンバの識別を正規のデータ・フォーマットに符号化すること、または１つ以上のライセンス・タイプの各々に属する各ライセンスの識別を正規のデータ・フォーマットに符号化すること、あるいはそれら全てを含むことができる。
【００２６】
図３に示す技法は更に、各ソフトウェア・インストール・インスタンスまたはハードウェア・デバイスにライセンス・タイプを指定することを含むことができる。更に、本発明の少なくとも１つの実施形態は、指定したライセンス・タイプ内のソフトウェア・ライセンスからライセンス容量の量を割り当てることを含む。また、本明細書に記載するように、ライセンス調整プランの生成は、性能／価格比に基づいて各ライセンス・タイプをランク付けすることを含むことができる。
【００２７】
また、図３に示す技法は、本明細書に記載するように、システムを提供することを含み、このシステムは個別のソフトウェア・モジュールを含み、個別のソフトウェア・モジュールの各々はタンジブルなコンピュータ読み取り可能記録可能記憶媒体上に具現化されている。例えば、モジュール（またはそのいずれかのサブセット）は全て同一の媒体上にあることができ、または各々が異なる媒体上にあることも可能である。モジュールは、図２に示したかまたは本明細書に記載したあるいはその両方の構成要素の全てを含むことができる。本発明の一態様において、モジュールは例えばハードウェア・プロセッサ上で動作することができる。そして、ハードウェア・プロセッサ上で実行している上述のようなシステムの個別のソフトウェア・モジュールを用いて、方法ステップを実行することができる。更に、コンピュータ・プログラムは、コードを有するタンジブルなコンピュータ読み取り可能記録可能記憶媒体を含むことができ、コードは実行されると本明細書に記載した少なくとも１つの方法ステップを行うように適合され、これは個別のソフトウェア・モジュールを有するシステムを提供することを含む。
【００２８】
更に、図３に示す技法は、データ処理システムにおいてコンピュータ読み取り可能記憶媒体に記憶されたコンピュータ使用可能プログラム・コードを含むことができるコンピュータ・プログラムによって実施可能であり、コンピュータ使用可能プログラム・コードは遠隔データ処理システムからネットワークを介してダウンロードされている。また、本発明の一態様において、コンピュータ・プログラムは、サーバ・データ処理システムにおいてコンピュータ読み取り可能記憶媒体に記憶されたコンピュータ使用可能プログラム・コードを含むことができ、コンピュータ使用可能プログラム・コードは、ネットワークを介して遠隔データ処理システムにダウンロードされて、この遠隔システムによってコンピュータ読み取り可能記憶媒体において用いられる。
【００２９】
当業者によって認められるように、本発明の態様は、システム、方法、またはコンピュータ・プログラムとして具現化することができる。従って、本発明の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、または、ソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形態を取ることができ、それらは全て本明細書において、「回路」、「モジュール」、または「システム」と一般的に称することができる。更に、本発明の態様は、具現化されたコンピュータ読み取り可能プログラム・コードを有するコンピュータ読み取り可能媒体において具現化されたコンピュータ・プログラムの形態を取ることも可能である。
【００３０】
本発明またはその要素の一態様は、メモリと、このメモリに結合されて例示的な方法ステップを実行するように動作する少なくとも１つのプロセッサと、を含む装置の形態で実施することができる。
【００３１】
更に、本発明の一態様は、汎用コンピュータまたはワークステーション上で動作するソフトウェアを利用することができる。図４を参照すると、かかる実施は、例えばプロセッサ４０２と、メモリ４０４と、例えばディスプレイ４０６およびキーボード４０８によって形成される入出力インタフェースと、を用いることができる。本明細書において用いる場合、「プロセッサ」という言葉は、例えばＣＰＵ（中央処理装置）または他の形態の処理回路あるいはその両方を含むもの等のいずれかの処理デバイスを含むことを意図している。更に、「プロセッサ」という言葉は２つ以上の個別のプロセッサを指す場合がある。「メモリ」という言葉は、例えばＲＡＭ（ランダム・アクセス・メモリ）、ＲＯＭ（読み取り専用メモリ）、固定メモリ・デバイス（例えばハード・ドライブ）、着脱可能メモリ・デバイス（例えばディスケット）、フラッシュ・メモリ等、プロセッサまたはＣＰＵに関連付けられたメモリを含むことを意図している。更に、本明細書において用いる場合、「入出力インタフェース」という言葉は、例えば処理ユニットにデータを入力するための機構（例えばマウス）、および処理ユニットに関連付けられた結果を提供するための機構（例えばプリンタ）を含むことを意図している。プロセッサ４０２、メモリ４０４、ならびにディスプレイ４０６およびキーボード４０８等の入出力インタフェースは、例えばデータ処理ユニット４１２の一部としてのバス４１０を介して相互接続することができる。また、例えばバス４１０を介した適切な相互接続は、コンピュータ・ネットワークとインタフェースするために提供可能なネットワーク・カード等のネットワーク・インタフェース４１４に対して、および、媒体４１８とインタフェースするために提供可能なディスケットまたはＣＤ−ＲＯＭドライブ等の媒体インタフェース４１６に対しても行うことができる。
【００３２】
従って、本明細書に記載するような、本発明の方法論を実行するための命令またはコードを含むコンピュータ・ソフトウェアは、関連付けられたメモリ・デバイス（例えばＲＯＭ、固定または着脱可能メモリ）に記憶して、利用する準備ができた場合に部分的にまたは全体的に（例えばＲＡＭ内に）ロードしてＣＰＵによって実施することができる。かかるソフトウェアは、限定ではないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含むことができる。
【００３３】
プログラム・コードの記憶または実行あるいはその両方に適したデータ処理システムは、システム・バス４１０を介してメモリ要素４０４に直接または間接に結合された少なくとも１つのプロセッサ４０２を含む。メモリ要素は、プログラム・コードの実際の実施中に用いられるローカル・メモリ、大容量記憶装置、および、実施中に大容量記憶装置からコードを検索しなければならない回数を減らすために少なくともいくつかのプログラム・コードの一時的な記憶を提供するキャッシュ・メモリを含むことができる。
【００３４】
入出力またはＩ／Ｏデバイス（限定ではないが、キーボード４０８、ディスプレイ４０６、ポインティング・デバイス等を含む）は、システムに対して直接（バス４１０を介して等）、またはＩ／Ｏコントローラ（明確さのため省略している）を介在させて結合することができる。
【００３５】
また、ネットワーク・インタフェース４１４等のネットワーク・アダプタをシステムに結合して、このデータ処理システムを、私設ネットワークまたは公設ネットワークを介在させて他のデータ処理システムまたは遠隔のプリンタもしくは記憶デバイスに結合することも可能である。現在利用可能なネットワーク・アダプタのタイプのいくつかの例として、モデム、ケーブル・モデム、およびイーサネット・カードが挙げられる。
【００３６】
特許請求の範囲を含む本明細書において用いる場合、「サーバ」は、サーバ・プログラムを実行する物理データ処理システム（例えば図４に示すようなシステム４１２）を含む。かかる物理サーバは、ディスプレイおよびキーボードを含む場合も含まない場合もあることは理解されよう。
【００３７】
注記したように、本発明の態様は、具現化されたコンピュータ読み取り可能プログラム・コードを有するコンピュータ読み取り可能媒体において具現化されたコンピュータ・プログラムの形態を取ることができる。また、コンピュータ読み取り可能媒体のあらゆる組み合わせを利用することができる。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体とすることができる。コンピュータ読み取り可能記憶媒体は例えば、限定ではないが、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、デバイス、または前述のもののいずれかの適切な組み合わせとすることができる。コンピュータ読み取り可能記憶媒体の更に具体的な例（非網羅的な列挙）は、以下を含む。すなわち、１本以上のワイヤを含む電気的接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光記憶デバイス、磁気記憶デバイス、または前述のもののいずれかの適切な組み合わせである。この文書の文脈において、コンピュータ読み取り可能記憶媒体は、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを含有または記憶することが可能ないずれかのタンジブルな媒体とすることができる。
【００３８】
コンピュータ読み取り可能信号媒体は、例えばベースバンドにおいてまたは搬送波の一部として、具現化されたコンピュータ読み取り可能プログラム・コードを有する伝播データ信号を含むことができる。かかる伝播信号は様々な形態のいずれかを取ることができ、それらは限定ではないが、電磁、光、またはそれらのいずれかの適切な組み合わせを含む。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体でないが、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを伝達、伝播、または転送することが可能ないずれかのコンピュータ読み取り可能媒体とすることができる。
【００３９】
コンピュータ読み取り可能媒体上で具現化されるプログラム・コードは、限定ではないが、無線、有線、光ファイバ・ケーブル、ＲＦ等、または前述のもののいずれかの適切な組み合わせを含む適切な媒体を用いて伝送することができる。
【００４０】
本発明の態様の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語等の従来の手順プログラミング言語を含む少なくとも１つのプログラミング言語のいずれかの組み合わせにおいて記述することができる。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でおよび部分的に遠隔コンピュータ上で、または全体的に遠隔コンピュータもしくはサーバ上で、実行することができる。後者の場合、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを介してユーザのコンピュータに接続することができ、または、接続は、（例えばインターネット・サービス・プロバイダを用いてインターネットを介して）外部コンピュータに対して行うことができる。
【００４１】
本発明の実施形態に従った方法、装置（システム）、およびコンピュータ・プログラムのフローチャート図またはブロック図あるいはその両方を参照して、本発明の態様について本明細書に記載する。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることは理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を生成することができ、これによって、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能／行為を実施するための手段を生成するようになっている。
【００４２】
また、これらのコンピュータ・プログラム命令はコンピュータ読み取り可能媒体に記憶することができ、これによって、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の方法で機能するように指示することができ、これにより、コンピュータ読み取り可能媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能／行為を実施する命令を含む製造品を生成するようになっている。従って、本発明の一態様は、コンピュータ読み取り可能命令をタンジブルに具現化する製造品を含み、これは実施された場合に、本明細書に記載されたような複数の方法ステップをコンピュータに実行させる。
【００４３】
また、コンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードして、そのコンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させてコンピュータ実施プロセスを生成することができ、これによって、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能／行為を実施するためのプロセスを提供するようになっている。
【００４４】
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラムの可能な実施のアーキテクチャ、機能性、および動作を例示する。この点で、フローチャートまたはブロック図における各ブロックは、規定された論理機能（複数の機能）を実施するための１つ以上の実行可能命令を含むコードのモジュール、コンポーネント、セグメント、または一部を表すことができる。また、いくつかの代替的な実施において、ブロックに明記した機能は、図面に明記した順序どおりでなく生成する場合があることに留意すべきである。例えば、関与する機能性に応じて、連続して示した２つのブロックは実際には実質的に同時に実行されることがあり、またはブロックは時に逆の順序で実行される場合がある。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、規定された機能もしくは行為を実行する特殊目的ハードウェア・ベースのシステム、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実施可能であることに留意すべきである。
【００４５】
本明細書に記載した方法のいずれかは、コンピュータ読み取り可能記憶媒体上に具現化された個別のソフトウェア・モジュールを含むシステムを提供する追加ステップを含むことができ、これらのモジュールは例えば本明細書に詳述した構成要素の全てを含むことができることに留意すべきである。そして、ハードウェア・プロセッサ４０２上で実行している上述のようなシステムの個別のソフトウェア・モジュールまたはサブ・モジュールあるいはその両方を用いて、方法ステップを実行することができる。更に、コンピュータ・プログラムはコンピュータ読み取り可能記憶媒体を含むことができ、コードは実施されると本明細書に記載した少なくとも１つの方法ステップを行うように適合され、これは個別のソフトウェア・モジュールを有するシステムを提供することを含む。
【００４６】
いずれの場合であっても、本明細書に示した構成要素は、例えば特定用途向けＩＣ（ＡＳＩＣ）、機能回路、メモリが関連付けられ適切にプログラミングされた汎用デジタル・コンピュータ等、ハードウェア、ソフトウェア、またはそれらの組み合わせの様々な形態で実施可能であることは理解されよう。本明細書に提示した本発明の教示が与えられれば、当業者は本発明の構成要素の他の実施を想定することができるであろう。
【００４７】
本明細書において用いた用語は、特定の実施形態を記載する目的のためだけのものであり、本開示を限定することは意図していない。本明細書において用いたように、単数形「１つの（ａ）、（ａｎ）、（ｔｈｅ）」は、文脈によって明らかに他の場合が示されない限り、複数形も含むことを意図している。また、「含む」または「含んでいる」という言葉あるいはその両方は、本明細書において用いられた場合、述べた特性、整数、ステップ、動作、要素、または構成要素あるいはそれら全ての存在を規定するが、別の特性、整数、ステップ、動作、要素、構成要素、またはそれらのグループあるいはそれら全ての存在または追加を除外するものではないことは、理解されよう。
【００４８】
以下の特許請求の範囲における全てのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、材料、行為、および均等物は、具体的に特許請求したような他の特許請求した要素と組み合わせて機能を実行するためのいずれかの構造、材料、または行為を含むことを意図している。
【００４９】
本発明の少なくとも１つの態様は、例えば多数のデータ・モデルと共に適用可能な、多数のライセンス・タイプおよび制限のあるインテリジェントなライセンス調整を提供すること等、有利な効果を与えることができる。
【００５０】
本発明の様々な実施形態の記載は、例示の目的のために提示したものであり、網羅的であることや、開示した形態に限定することは意図していない。記載した実施形態の範囲および精神から逸脱することなく、当業者には多くの変更および変形が明らかであろう。本明細書において用いた用語は、実施形態の原理、実際的な適用、または市場で見出される技術に対する技術的な改良を最良に説明するため、更に、本明細書に開示した実施形態を当業者が理解することを可能とするために、選択したものである。
【符号の説明】
【００５１】
１０２  ライセンス・クラスタ化モジュール
１０４  調整行列生成モジュール
１０６  調整行列ポピュレーティング・モジュール
４０２  プロセッサ
４０４  メモリ
４０６  ディスプレイ
４０８  キーボード
４１４  ネットワーク・インタフェース
４１６  媒体インタフェース
４１８  媒体
【図１】
2014081922.tif 000003
【図２】
2014081922.tif 000004
【図３】
2014081922.tif 000005
【図４】
2014081922.tif 000006