(57)【要約】【課題】アプリケーションの起動条件がライセンス条件を満たさなくなった場合、アプリケーションの起動障害を防止することができるライセンス管理装置を提供する。【解決手段】ユーザ装置にインストールされているアプリケーションの起動条件が前記アプリケーションのライセンス条件を満たすか否かを判定する判定手段と、前記起動条件が前記ライセンス条件を満たさないと判定された場合、前記起動条件の設定を、前記ライセンス条件を満たすように変更する変更手段と、を含む、ライセンス管理装置。【選択図】図１
2011076543.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ装置にインストールされているアプリケーションの起動条件が前記アプリケーションのライセンス条件を満たすか否かを判定する判定手段と、
前記起動条件が前記ライセンス条件を満たさないと判定された場合、前記起動条件の設定を、前記ライセンス条件を満たすように変更する変更手段と、
を含む、ライセンス管理装置。
【請求項２】
前記判定手段は、前記アプリケーションの起動時に判定する、請求項１に記載のライセンス管理装置。
【請求項３】
前記変更手段は、前記起動条件が前記ライセンス条件を満たさないと判定された場合、前記起動条件を設定する設定画面をユーザに対して表示し、該ユーザの入力を受け付けて、前記起動条件の設定を変更する、請求項１または請求項２に記載のライセンス管理装置。
【請求項４】
前記変更手段は、前記起動条件が前記ライセンス条件を満たさないと判定された場合、前記起動条件の設定を、前記ライセンス条件を満たすように自動的に変更する、請求項１または請求項２に記載のライセンス管理装置。
【請求項５】
前記判定手段は、前記アプリケーションの起動時に前記ユーザ装置の該アプリケーションに割り付けられたＣＰＵ数またはＣＯＲＥ数が、前記ライセンス条件で規定されたＣＰＵ数またはＣＯＲＥ数以内であるか否かで、前記起動条件が前記ライセンス条件を満たすか否かを判定する、請求項１〜４のいずれか１項に記載のライセンス管理装置。
【請求項６】
前記判定手段は、前記アプリケーションの起動時に前記ユーザ装置の該アプリケーション割り付けられたＣＰＵ数またはＣＯＲＥ数が、前記ライセンス条件で規定されたネットワーク全体での前記アプリケーションを使用する合計のＣＰＵ数またはＣＯＲＥ数の範囲内であるか否かで、前記起動条件が前記ライセンス条件を満たすか否かを判定する、請求項１〜４のいずれか１項に記載のライセンス管理装置。
【請求項７】
ユーザ装置にインストールされているアプリケーションの起動時に、該アプリケーションの起動条件が前記アプリケーションのライセンス条件を満たすか否かを判定する判定段階と、
前記起動条件が前記ライセンス条件を満たさないと判定された場合、前記起動条件の設定を変更する変更段階と、
を含む、ライセンス管理方法。
【請求項８】
請求項７に記載のライセンス管理方法をコンピュータで実行させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライセンス管理装置、およびライセンス管理方法に関する。
【背景技術】
【０００２】
従来より、ユーザのマシンにインストールされたアプリケーション（ソフトウエア）を使用するにあたり、ソフトウエアの製作者（たとえば、メーカ）によってソフトウエアを使用する権利であるライセンス（使用許諾）が発行されている。ユーザは、ライセンス上使用が許諾されたマシンでアプリケーションを起動することによって、該アプリケーションを使用することができる。
【０００３】
ソフトウエアのライセンス方式は、一般的に、Ｎｏｄｅｌｏｃｋライセンスと呼ばれるライセンス方式と、Ｆｌｏａｔｉｎｇライセンス（もしくはＮｅｔｗｏｒｋライセンス）と呼ばれるライセンス方式との２つに大きく分類することができる。
【０００４】
Ｎｏｄｅｌｏｃｋライセンスは、ライセンスを受けた特定のマシンだけにソフトウエアを使用可能にするものであって、シンプルなライセンス方式として知られている。Ｎｏｄｅｌｏｃｋライセンスは、通常、マシンを買い換えるなどリプレイスする際には、ライセンスの再発行が必要となり、ユーザにとって手間および時間を要してしまう。
【０００５】
一方、Ｆｌｏａｔｉｎｇライセンスは、ライセンス数の範囲内での同時使用を許諾するものであって、一般的には同時に使用するソフトウエアの数には制限があるものの、ソフトウエアの使用場所に関して自由度が高いライセンス方式として知られている。しかし、Ｆｌｏａｔｉｎｇライセンスは、自由度が高い反面、ユーザのネットワーク内に別途ライセンスを管理するシステムの導入が必要となる場合が多い。
【０００６】
さらに、従来のライセンス方式を改善した特許文献１のようなライセンス方式も提案されている。特許文献１に記載のライセンス方式は、マシンごとにライセンスが配布されるものであって、該ライセンスがマシン固有のＩＰアドレスを含んで算出されている。そして、アプリケーションがインストールされたマシンにおいて、アプリケーション起動時に、該マシンのＩＰアドレス等がライセンスされたものであるかどうかをチェックし、ライセンスされたもので無いと判断された場合は、暫定的に仮ライセンスにて運用しながら、メーカ側にライセンス変更申請を送信し、そして、新しいライセンスを受信していた。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１９９５０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来のライセンス方式においてのライセンスのチェック方法は、マシン全体のＣＰＵ数とＣＯＲＥ数の情報に基づいてチェックしていたため、ライセンスを受けたマシンのＣＰＵ数とＣＯＲＥ数がライセンス条件に合致しない場合には、直ちにアプリケーションの起動障害となり、運用のフレキシビリティが損なわれてしまうという問題点があった。
【０００９】
たとえば、ユーザの都合によりマシンを移行した場合に、マシンのＣＰＵ数やＣＯＲＥ数が増えてしまうケースや、マシンにかかる負荷に応じて同一のマシンにＣＰＵやＣＯＲＥを増設するケースでは、アプリケーション購入時にはメーカから発行されるライセンスがＣＰＵ数やＣＯＲＥ数に応じたものであっても、ＣＰＵ数やＣＯＲＥ数が増えてしまうことによってライセンス違反となり、アプリケーションの起動障害となってしまっていた。
【００１０】
また、ＣＰＵ数やＣＯＲＥ数が増える場合、通常、ユーザはメーカからアプリケーションのライセンスを追加購入しなければならないが、ユーザにとっては、マシンの移行は計画していても、事前にアプリケーションのライセンスの追加購入を計画していない場合も多い。しかし、特許文献１に記載のライセンス方式では、ユーザによるライセンスの追加購入を前提とし、仮ライセンスを即時発行する方式であるため、ユーザが必ずライセンスを追加購入しなければならず、ユーザにとって保守費用が増してしまうという問題点もあった。
【００１１】
したがって、本発明は、上記問題点を解決し、ライセンス発行時のＣＰＵ数やＣＯＲＥ数などのアプリケーションの起動条件が変わっても、アプリケーションの起動障害を防止し、柔軟に対応することができる新しいライセンス管理装置、およびライセンス管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明によるライセンス管理装置は、ユーザ装置にインストールされているアプリケーションの起動条件が前記アプリケーションのライセンス条件を満たすか否かを判定する判定手段と、前記起動条件が前記ライセンス条件を満たさないと判定された場合、前記起動条件の設定を変更する変更手段と、を含む。
【００１３】
本発明によるライセンス管理方法は、ユーザ装置にインストールされているアプリケーションの起動時に、該アプリケーションの起動条件が前記アプリケーションのライセンス条件を満たすか否かを判定する判定段階と、前記起動条件が前記ライセンス条件を満たさないと判定された場合、前記起動条件の設定を変更する変更段階と、を含む。
【００１４】
本発明による情報処理プログラムは、上記ライセンス管理方法をコンピュータで実行させるものである。
【発明の効果】
【００１５】
以上のように構成された本発明によれば、ライセンス発行時のＣＰＵ数やＣＯＲＥ数などのアプリケーションの起動条件が変わっても、アプリケーションの起動条件の設定を、ライセンス条件を満たすように変更することで、アプリケーションの起動障害を防止することができる。
【図面の簡単な説明】
【００１６】
【図１】第１実施形態のライセンス管理システム１の概略構成の一例を示す図である。
【図２】第１実施形態に係るライセンス管理装置１００等のハードウエア構成を示す概略図である。
【図３】第１実施形態におけるライセンスファイルの一例を示す図である。
【図４】第１実施形態におけるユーザ端末１００とメーカ端末２００との間で送受信される暗号化されたメッセージの一例を示す図である。
【図５】第１実施形態におけるアプリケーション起動の処理内容を示すフローチャートである。
【図６】図５のステップＳ１０１の具体的な処理内容を示すフローチャートである。
【図７】図５のステップＳ１０３の具体的な処理内容を示すフローチャートである。
【図８】図５のステップＳ１０５の具体的な処理内容を示すフローチャートである。
【図９】図８のステップＳ４０２の具体的な処理内容を示すフローチャートである。
【図１０】図８のステップＳ４０３の具体的な処理内容を示すフローチャートである。
【図１１】図１０のステップＳ６０６の具体的な処理内容を示すフローチャートである。
【図１２】図８のステップＳ４０４の具体的な処理内容を示すフローチャートである。
【図１３】第１実施形態におけるメーカ端末２００におけるライセンス管理の処理内容を示すフローチャートである。
【図１４】図１３のステップＳ９０３の具体的な処理内容を示すフローチャートである。
【図１５】図１３のステップＳ９０４の具体的な処理内容を示すフローチャートである。
【図１６】図１３のステップＳ９０５の具体的な処理内容を示すフローチャートである。
【図１７】図１３のステップＳ９０６の具体的な処理内容を示すフローチャートである。
【図１８】図１３のステップＳ９０７の具体的な処理内容を示すフローチャートである。
【図１９】第２実施形態のライセンス管理システム２におけるアプリケーション起動の処理内容を示すフローチャートである。
【図２０】図２０のステップＳ１００３の具体的な処理内容を示すフローチャートである。
【図２１】第３実施形態のライセンス管理システム３におけるアプリケーション起動の処理内容を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための好適な実施形態を、図面を参照しながら説明する。
＜第１実施形態＞
図１は、本発明の第１実施形態のライセンス管理システム１の概略構成の一例を示す図である。
【００１８】
ライセンス管理システム１は、図１に示すとおり、ユーザ端末１００と、メーカ端末２００とを含んで構成され、各端末は通信ネットワーク（たとえば、Ｌａｙｅｒ３スイッチおよびＬＡＮケーブルなど）を介して相互に通信可能に接続されている。なお、ユーザ端末１００およびメーカ端末２００は、ハードウエアとして、図２に示すように、たとえば、ＣＰＵ、ＣＰＵにバス結合されたＲＯＭ、ＲＡＭ、記憶部、入力部、表示部、および入出力インタフェースなど、通常のコンピュータ装置と同様のハードウエアを備える。これら各端末は、物理的には、専用化したシステム、あるいは汎用の情報処理装置のいずれであってもよい。たとえば、一般的な構成の情報処理装置において、本発明のライセンス管理方法における各処理を規定したソフトウエアを起動することにより、ライセンス管理システム１を実現することもできる。
［ユーザ端末］
ユーザ端末（マシン）１００は、アプリケーションを起動して実行するマシンであるとともに、該アプリケーションに付随するライセンス情報（ライセンスファイル）を管理するライセンス管理装置として動作する。なお、アプリケーションを起動するために、たとえば、ユーザは、メーカからアプリケーションおよび該アプリケーションのライセンスファイルを購入し、これらをユーザ端末１００にインストールする必要がある。
【００１９】
ユーザ端末１００は、メッセージ送受信手段１１０と、アプリケーション起動手段１２０と、データベース１３０とを備え、これら各手段は、たとえば、主にＣＰＵがＲＯＭやＲＡＭに格納されるプログラムを実行し、各ハードウエアを制御することにより、実現することができ、データベース１３０は、ＲＯＭ、ＨＤＤを用いて実現することができる。
【００２０】
メッセージ送受信手段１１０は、後述するライセンス管理手段１２５で作成されたメッセージをメーカ端末２００に送信し、また、メーカ端末２００で作成されたメッセージを受信してデータベース１３０に記憶する。
【００２１】
アプリケーション起動手段１２０は、ユーザ端末１００にインストールされたアプリケーションを起動するものであって、起動に際して、起動対象のアプリケーションのライセンス条件を満たすか否かをチェックする。
【００２２】
アプリケーション起動手段１２０は、ライセンス読込手段１２１と、復号化手段１２２と、プラットフォーム情報取得手段１２３と、ライセンス条件判定手段１２４と、ライセンス管理手段１２５とを備える。
【００２３】
ライセンス読込手段１２１は、起動対象のアプリケーションのライセンス情報をデータベース１３０から読み込む。ライセンス情報には、ライセンス条件であって、アプリケーションを使用する上で許諾されたプラットフォーム情報（基準プラットフォーム情報）、たとえば、ユーザ端末１００のＩＰアドレス、ＣＰＵ種別、ＣＰＵ／ＣＯＲＥ数、ＯＳ・バージョンなどの情報が記述されている。ここで、ライセンス情報が記述されたライセンスファイルの一例を図３に示す。図３に示すライセンスファイル５００では、その先頭部分にライセンスファイル可読ＡＳＣＩＩ記述５１０があり、ライセンス本体暗号化部５２０、およびライセンスファイル署名（ライセンスファイルダイジェスト値及びメーカ暗号鍵を含む）５３０から構成されている。
【００２４】
復号化手段１２２は、暗号化されたライセンス情報を、メーカ暗号鍵を用いて復号し、マシン１００の可読な言語情報にする。なお、メーカ暗号鍵は、アプリケーションを製作したメーカによって決められた暗号鍵であって、情報の暗号化・復号化は、従来の暗号鍵を用いた暗号化技術と共通するので、詳細な説明は省略する。
【００２５】
プラットフォーム情報取得手段１２３は、アプリケーションを起動するユーザ端末１００の現在のプラットフォーム情報（実プラットフォーム情報）を取得する。すなわち、ユーザ端末１００における、現在のＩＰアドレス、ＣＰＵ種別、ＣＰＵ／ＣＯＲＥ数、ＯＳ・バージョンなどの情報を取得する。プラットフォーム情報は、たとえば、データベース１３０から取得することができる。
【００２６】
ライセンス条件判定手段１２４は、アプリケーション構成ファイルをデータベース１３０から取得する。アプリケーション構成ファイルは、アプリケーションの起動時にアプリケーションが使用するＣＰＵ数およびＣＯＲＥ数の制限値などを定義するファイルであって、たとえば、Ｗｉｎｄｏｗｓ（登録商標）の場合、ＩＮＩファイルと呼ばれるファイルである。
【００２７】
ライセンス条件判定手段１２４は、アプリケーションの起動条件が、ライセンス条件を満たすか否かを判定する。すなわち、ライセンス条件判定手段１２４は、ユーザ端末１００のプラットフォーム情報におけるＩＰアドレス、ＯＳ・バージョン、およびＣＰＵ種別を、ライセンス情報に含まれるＩＰアドレス、ＯＳ・バージョン、およびＣＰＵ種別と比較し、それらが一致するか否かでライセンス条件を満たすか否かを判定する。一方、ＣＰＵ／ＣＯＲＥ数については、プラットフォーム情報におけるＣＰＵ／ＣＯＲＥ数（物理ＣＰＵ／ＣＯＲＥ数）と、アプリケーション構成ファイルにおけるＣＰＵ／ＣＯＲＥ数（アプリケーションの使用制限ＣＰＵ／ＣＯＲＥ数）とが異なる場合は、アプリケーションの使用制限ＣＰＵ／ＣＯＲＥ数を、ライセンス情報に含まれるＣＰＵ／ＣＯＲＥ数と比較し、それらが一致するか否かでライセンス条件を満たすか否かを判定することができる。ライセンス条件判定手段１２４は、アプリケーションの起動条件がライセンス条件を満たせば、アプリケーションを起動し、一方、アプリケーションの起動条件がライセンス条件を満たさなければ、ライセンス管理手段１２５にその旨を通知する。
【００２８】
ライセンス管理手段１２５は、ライセンス更新、ライセンス変更、およびアプリケーションの起動条件の変更などのライセンス管理を実行する。ライセンス管理手段１２５は、たとえば、ユーザに対して管理種別メニューを表示し、ユーザ操作の入力を受け付ける。管理種別メニューでは、たとえば、ライセンス更新、ライセンス変更、およびアプリケーションの起動条件の変更のいずれか１つの処理を選択するようにユーザ操作の入力を促すようにすることができる。なお、これらライセンス管理の処理については、後述するが、たとえば、ユーザがユーザ端末のＩＰアドレスの変更を希望し、管理種別メニューの中からライセンス変更のメニューを選択した場合、ライセンス管理手段１２５は、変更先のＩＰアドレス（アドレス）を付記したアドレス変更申請データ（申請書）を作成し、該アドレス変更申請データを含むメッセージを作成して暗号化し、該メッセージを、メッセージ送受信手段１４０を介してメーカ端末２００に送信する。
［メーカ端末］
メーカ端末２００は、アプリケーションのライセンスを発行する装置であって、メッセージ送受信手段２１０と、ライセンス管理発行手段２２０と、問い合わせ管理手段２３０と、データベース２４０とを含んで構成され、各手段は、主にＣＰＵがＲＯＭやＲＡＭに格納されるプログラムを実行し、各ハードウエアを制御することにより、実現することができと、データベース２４０は、ＲＯＭ、ＨＤＤを用いて実現することができる。
【００２９】
メッセージ送受信手段２１０は、後述するライセンス管理発行手段２２０で作成されたメッセージをユーザ端末１００に送信し、また、ユーザ端末２００で作成されたメッセージを受信する。メッセージ送受信手段２１０は、ユーザ端末１００から受信したメッセージをライセンス管理発行手段２２０に送るとともに、データベース２４０に記憶する。
【００３０】
ライセンス管理発行手段２２０は、ユーザ端末１００からライセンス変更申請に関するメッセージまたは仮ライセンス発行申請に関するメッセージを、メッセージ送受信手段２１０を介して受信し、ライセンス変更や仮ライセンスの発行管理を行う。すなわち、ライセンス管理発行手段２２０は、受信したメッセージをメーカ暗号鍵を用いて復号化し、ユーザの申請内容を解析し、申請内容に応じた処理を実行する。メッセージ送受信手段２１０を介して受信したメッセージの一例を図４に示す。図４に示すようにメッセージ６００は、「Ｔｏ」、「Ｆｒｏｍ」、および「Ｓｕｂｊｅｃｔ」などを含むメッセージヘッダ部６１０と、メッセージ本体暗号化部６２０とから構成されており、情報漏洩事故が生じても内容が読み取れないようになっている。なお、図４では、Ｓ／ＭＩＭＥ形式のメッセージ例を示している。
【００３１】
ライセンス管理発行手段２２０は、ライセンス変更申請の場合、変更先のＩＰアドレスに応じた内容で、再発行ライセンスデータを作成し、該作成した再発行ライセンスデータを含むメッセージを作成して暗号化し、該メッセージをユーザ端末１００に向けて送信する。
【００３２】
また、ライセンス管理発行手段２２０は、仮ライセンス発行申請の場合、仮ライセンスデータを作成し、該作成した仮ライセンスデータを含むメッセージを作成して暗号化し、該メッセージをユーザ端末１００に向けて送信する。
【００３３】
なお、正規のライセンスの再発行は、通常、メーカ側の担当者による承認を必要とし、営業やユーザサポートとも連携し、ユーザ情報を管理するデータベースの更新も必要となるなど、時間を要する事が多い。一方、仮ライセンスの発行は、仮ライセンスが期限付きの限定ライセンスであり、通常、メーカ側の担当者による承認を経ずに迅速に発行される。
【００３４】
問い合わせ管理手段２３０は、アプリケーションに関するユーザの質問等に関するデータを管理する。たとえば、ユーザがアプリケーションの使用に際してメーカに対して質問するなどのサポートを受ける場合、問い合わせ管理手段２３０は、メール送受信手段２１０を介して、アプリケーションを動作させるユーザ端末１００のＩＰアドレスが記述された問い合わせメッセージを受信することで、ＩＰアドレスに基づいて、ユーザとライセンスとの対応付け管理を行うことができる。なお、問い合わせ管理手段２３０と、ライセンス管理発行手段２２０とは、たとえば、互いに同期してそれぞれの処理を実行することができる。
【００３５】
以下、図５〜図１８に示すフローチャートを参照して、ライセンス管理システム１を用いて実施される本実施形態のライセンス管理方法を説明する。なお、各図のフローチャートで示される各処理は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００３６】
まず、本実施形態のユーザ端末１００側におけるライセンス管理方法の各処理について説明する。
【００３７】
図５は、本実施形態におけるアプリケーション起動の処理内容を示すフローチャートである。
【００３８】
まず、ライセンス読込手段１２１が、起動対象のアプリケーションのライセンス情報をデータベース１３０から読み込む（ステップＳ１００）。たとえば、ユーザ端末１００において、ユーザがアプリケーションを起動する操作入力をトリガとして、ライセンス読込手段１２１が、起動対象のアプリケーションのライセンス情報をデータベース１３０から取得する。
【００３９】
次いで、復号処理手段１２２が、暗号化されたライセンス情報を、ユーザ端末１００の可読な情報にするために、メーカ暗号鍵を用いて復号する（ステップＳ１０１）。ライセンス情報は、ライセンス条件であって、アプリケーションを使用する上で許諾されたユーザ端末１００のプラットフォーム情報（基準プラットフォーム情報）、たとえば、ユーザ端末１００のＩＰアドレス、ＣＰＵ種別、ＣＰＵ／ＣＯＲＥ数、ＯＳ・バージョンなどの情報が含む。
【００４０】
次いで、プラットフォーム情報取得手段１２３が、アプリケーションを起動するユーザ端末１００の現在のプラットフォーム情報（実プラットフォーム情報）を取得する（ステップＳ１０２）。
【００４１】
次いで、ライセンス条件判定手段１２４が、ライセンス上の基準プラットフォーム情報とマシン１００の実プラットフォーム情報とを比較して、アプリケーションの起動条件が、ライセンス条件を満たすか否かを判定する（ステップＳ１０３）。
【００４２】
判定した結果、アプリケーションの起動条件が、ライセンス条件を満たす場合（ステップＳ１０４：Ｙｅｓ）、そのままステップＳ１０６の処理に移る。
【００４３】
一方、判定した結果、アプリケーションの起動条件が、ライセンス条件を満たさない場合（ステップＳ１０４：Ｎｏ）、ライセンス管理手段１２５が、ライセンス管理の処理を行い（ステップＳ１０５）、ステップＳ１０６の処理に移る。ライセンス管理の処理は、アプリケーションの起動条件の変更、ライセンス更新、ライセンス変更などの各処理を含む。なお、これらライセンス管理の各処理については、後述する。
【００４４】
上記のステップＳ１００〜１０５の処理後、アプリケーション起動手段１２０が、アプリケーションを起動する（ステップＳ１０６）。
【００４５】
ここで、上記ステップＳ１０１、Ｓ１０３、およびＳ１０５の処理について、図６〜８に示す各処理フローを用いて、詳細に説明する。
【００４６】
まず、ステップＳ１０１の処理について、図６に示す処理フローを用いて、詳細に説明する。
【００４７】
復号処理手段１２２が、ステップＳ１００で取得したライセンス情報を、メーカ暗号鍵を用いて復号する（ステップＳ２００）。
【００４８】
次いで、復号処理手段１２２が、復号されたライセンス情報のダイジェスト値を算出する（ステップＳ２０１）。
【００４９】
次いで、復号処理手段１２２が、算出されたダイジェスト値と、メーカ端末２００において予めライセンス暗号化時に埋め込まれたダイジェスト値とを比較し、２つのダイジェスト値が一致するか否かを判定する（ステップＳ２０２）。２つのダイジェスト値が一致すれば、ライセンスが改竄なく正常に復号化されていることを示す。
【００５０】
２つのダイジェスト値が一致しなければ（ステップＳ２０３：Ｎｏ）、起動対象のアプリケーションのライセンスは改竄されたものと判断し、エラー表示をする。なお、この場合、原則として、上記アプリケーションの起動処理フローは終了する。
【００５１】
一方、２つのダイジェスト値が一致すれば（ステップＳ２０３：Ｙｅｓ）、ステップＳ１０２の処理に移る。
【００５２】
次に、ステップＳ１０３の処理について、図７に示す処理フローを用いて、詳細に説明する。
【００５３】
ライセンス条件判定手段１２４が、アプリケーション構成ファイルをデータベース１３０から取得する（ステップＳ３００）。
【００５４】
次いで、ライセンス条件判定手段１２４が、ステップＳ１００で取得したライセンスの種別を判別する（ステップＳ３０１）。すなわち、ライセンスが正規ライセンスであるのか、仮ライセンスであるのかを判別する。
【００５５】
判別した結果、ライセンスが正規ライセンスである場合（ステップＳ３０１：正規ライセンス）、ライセンス条件判定手段１２４が、アプリケーションの起動条件（ＩＰアドレス、ＯＳ・バージョン、ＣＰＵ種別、およびＣＰＵ／ＣＯＲＥ数）が、ライセンス条件を満たすか否かを判定する（ステップＳ３０２〜Ｓ３０５）。すなわち、ステップＳ１０２の処理で取得したユーザ端末１００のプラットフォーム情報におけるＩＰアドレス、ＯＳ・バージョン、およびＣＰＵ種別を、ライセンスファイルに記述されたＩＰアドレス、ＯＳ・バージョン、およびＣＰＵ種別と比較し、一致するか否かでライセンス条件を満たすか否かを判定することができる。一方、ＣＰＵ／ＣＯＲＥ数については、プラットフォーム情報におけるＣＰＵ／ＣＯＲＥ数（物理ＣＰＵ／ＣＯＲＥ数）と、アプリケーション構成ファイルにおけるＣＰＵ／ＣＯＲＥ数（アプリケーションの使用制限ＣＰＵ／ＣＯＲＥ数）とが異なる場合は、アプリケーションの使用制限ＣＰＵ／ＣＯＲＥ数を、ライセンスファイルに記述されたＣＰＵ／ＣＯＲＥ数と比較して該ＣＰＵ／ＣＯＲＥ数の範囲内であるか否かでライセンス条件を満たすか否かを判定することができる。
【００５６】
判定した結果、各ライセンス条件を満たす場合（ステップＳ３０２〜Ｓ３０５：Ｙｅｓ）、ステップＳ１０６の処理に移る。
【００５７】
一方、判定した結果、各ライセンス条件のうち少なくとも１つでも満たさない場合は、ステップＳ１０５の処理に移る。
【００５８】
また、ステップＳ３０１の処理で判別した結果、ライセンスが仮ライセンスである場合（ステップＳ３０１：仮ライセンス）、ライセンス条件判定手段１２４は、仮ライセンスを有するマシン１００のＩＰアドレスが、仮ライセンスで許諾されたネットワーク内のアドレスであるか否かのアドレス検査を行う（ステップＳ３０６）。なお、起動対象のアプリケーションの仮ライセンスは、通常、たとえば、「１９２．２１５．１３６．２５５」などのアドレスが記述され、特定のネットワーク内に限り動作するように制限されている。アドレス検査を行った結果、仮ライセンスがネットワーク内のアドレスでない場合（ステップＳ３０６：Ｎｏ）、ライセンス条件判定手段１２４は、エラー表示する。
【００５９】
アドレス検査を行った結果、仮ライセンスがネットワーク内のアドレスである場合（ステップＳ３０６：Ｙｅｓ）、ライセンス条件判定手段１２４は、仮ライセンスが有効期限内のものであるかどうかを判定する（ステップＳ３０７）。判定した結果、有効期限内でない場合（ステップＳ３０７：Ｎｏ）、ステップＳ１０５の処理に移る。一方、判定した結果、有効期限内である場合（ステップＳ３０７：Ｙｅｓ）、ステップＳ１０６の処理に移る。
【００６０】
次に、ステップＳ１０５の処理について、図８に示す処理フローを用いて、詳細に説明する。
【００６１】
ステップＳ１０３の処理において、ライセンス条件を満たさないと判定された場合、ライセンス管理手段１２５が、ユーザに対して管理種別メニューを表示し、ユーザ操作の入力を受け付ける（ステップＳ４００）。管理種別メニューでは、たとえば、ライセンス更新、ライセンス変更、およびアプリケーションの起動条件の変更のいずれか１つの処理を選択するようにユーザ操作の入力を促すことができる。
【００６２】
ライセンス管理手段１２５が、ユーザの操作入力を受け付け、選択された管理種別を判別する（ステップＳ４０１）。判別した結果に応じて、ライセンス更新（ステップＳ４０２）、ライセンス変更（ステップＳ４０３）、およびアプリケーションの起動条件の変更（ステップＳ４０４）の各処理を実行する。
【００６３】
図８の上記ステップＳ４０１において、ライセンス更新を受け付けたと判別した場合、ライセンス管理手段１２５は、ライセンス更新手段として、ライセンス更新（ステップＳ４０２）を実行する。ライセンス更新の処理フローの一例を図９に示す。
【００６４】
図９に示すように、ライセンス管理手段１２５は、まず、起動対象のアプリケーションの新たなライセンス情報を取得する（ステップＳ５００）。すなわち、メール送受信部１１０がメーカ端末２００より新たなライセンス情報を含むメッセージを受信し、データベース１３０に記憶している場合、該メッセージをデータベース１３０から取得する。なお、ライセンス情報を含むメッセージは、一般的に、メーカ暗号鍵を用いてメーカ側にて予め暗号化されている。また、新たなライセンス情報を取得できない場合は、たとえば、エラー表示して、ステップＳ４００の処理に戻ることができる。
【００６５】
次いで、ライセンス管理手段１２５は、新たなライセンスファイルでデータベースに記憶されたライセンスファイルを更新し（ステップＳ５０１）、図５のステップＳ１００の処理に戻る。
【００６６】
次に、図８の上記ステップＳ４０１において、ライセンス変更を受け付けたと判別した場合、ライセンス管理手段１２５は、ライセンス変更手段として、ライセンス変更（ステップＳ４０３）を実行する。ライセンス変更の処理フローの一例を図１０に示す。
【００６７】
図１０に示すように、ライセンス管理手段１２５は、ユーザ操作によりライセンスの変更内容の入力を受け付け、ライセンス変更申請データを作成する（ステップＳ６００）。
【００６８】
次いで、ライセンス管理手段１２５は、ユーザ操作によりライセンスの変更理由の入力を受け付け、ライセンス変更申請データに追記する（ステップＳ６０１）。
【００６９】
次いで、ライセンス管理手段１２５は、ライセンス変更申請データから、仮ライセンスの要否を判定する（ステップＳ６０２）。たとえば、上記ライセンスの変更内容が、アプリケーションを起動するユーザ端末の変更、具体的には、ＩＰアドレスの変更申請の場合、ライセンスの再発行をする必要が生じ、その際、メーカの担当者の承認など時間を要してしまうので、アプリケーションを新たなユーザ端末のＩＰアドレスで迅速に動作させるためには、暫定的な仮ライセンスが必要となる。したがって、ライセンス変更申請データが、ＩＰアドレス変更申請のデータであるかどうかを判定する。
【００７０】
仮ライセンスが必要と判定された場合（ステップＳ６０２：Ｙｅｓ）、ライセンス管理手段１２５は、ユーザ操作により仮ライセンスの申請内容の入力を受け付け、ライセンス変更申請データに追記する（ステップＳ６０３）。
【００７１】
ステップＳ６０３の処理の後、または仮ライセンスが不要と判定された場合（ステップＳ６０２：Ｎｏ）、ライセンス管理手段１２５は、ライセンス変更前のライセンス情報（既存のライセンス情報）をデータベース１３０から取得する（ステップＳ６０４）。すなわち、既存のライセンス情報をライセンス変更申請データとともにメーカ側に送信することで、メーカ側は、既存のライセンス情報を迅速に把握でき、ライセンス変更をスムーズに行うことができる。
【００７２】
次いで、ライセンス管理手段１２５は、上記ライセンス変更申請データ、既存のライセンス情報から、ライセンス変更メッセージを作成する（ステップＳ６０５）。
【００７３】
次いで、ライセンス管理手段１２５は、上記ライセンス変更メッセージを暗号化し（ステップＳ６０６）、該暗号化したメッセージを、メッセージ送受信手段１１０を用いて、メーカ端末２００に送信する（ステップＳ６０７）。なお、メーカ端末２００から変更されたライセンス情報を、メール送受信手段１１０により受信した場合、データベース１３０に記憶された後、ステップＳ４０１〜Ｓ４０３で、ライセンス更新を実行し、アプリケーションを起動することができる。
【００７４】
ここで、図１１を用いて、上記ステップＳ６０６のライセンス変更メッセージの暗号化処理について説明する。
【００７５】
ライセンス管理手段１２５は、上記ライセンス変更メッセージのダイジェスト値を算出し（ステップＳ７００）、該算出したダイジェスト値を上記ライセンス変更メッセージに埋め込んだ後で、該ライセンス変更メッセージ全体をメーカ暗号鍵を用いて暗号化し（ステップＳ７０１）、最終的にメーカ端末２００に送るメッセージを作成する（ステップＳ７０２）。なお、最終的にメーカ端末２００に送るメッセージは、たとえば、Ｓ／ＭＩＭＥ形式の暗号化メッセージとすることができる。
【００７６】
次に、図８の上記ステップＳ４０１において、アプリケーションの起動条件の変更を受け付けたと判別した場合、ライセンス管理手段１２５は、アプリケーションの起動条件の変更手段として、アプリケーションの起動条件の変更（ステップＳ４０４）を実行する。ライセンス更新の処理フローの一例を図１２に示す。
【００７７】
図１２に示すように、ライセンス管理手段１２５は、ユーザ操作によりアプリケーションの起動条件（ＣＰＵ／ＣＯＲＥ数）の変更内容の入力を受け付ける（ステップＳ８００）。
【００７８】
ライセンス管理手段１２５は、ユーザによって入力されたＣＰＵ／ＣＯＲＥ数がライセンスファイルに記述されたＣＰＵ／ＣＯＲＥ数（ライセンスＣＰＵ／ＣＯＲＥ数）以下であるか否かを判定する（ステップＳ８０１）。ライセンスＣＰＵ／ＣＯＲＥ数以下で無ければ（ステップＳ８０１：Ｎｏ）、エラー表示をし、上記ステップＳ８００の処理に戻り、再び、ユーザ操作によりアプリケーションの起動条件（ＣＰＵ／ＣＯＲＥ数）の変更内容の入力を受け付ける。
【００７９】
一方、ライセンスＣＰＵ／ＣＯＲＥ数以下であれば（ステップＳ８０１：Ｙｅｓ）、次に、入力されたＣＰＵ／ＣＯＲＥ数が物理ＣＰＵ／ＣＯＲＥ数以下であるか否かを判定する（ステップＳ８０２）。物理ＣＰＵ／ＣＯＲＥ数以下で無ければ（ステップＳ８０２：Ｎｏ）、エラー表示をし、上記ステップＳ８００の処理に戻り、再び、ユーザ操作によりアプリケーションの起動条件の変更内容の入力を受け付ける。
【００８０】
一方、物理ＣＰＵ／ＣＯＲＥ数以下であれば（ステップＳ８０２：Ｙｅｓ）、上記入力されたＣＰＵ／ＣＯＲＥ数を、アプリケーションの使用制限ＣＰＵ／ＣＯＲＥ数として設定し（ステップＳ８０３）、アプリケーション構成ファイルとしてデータベース１３０に記憶する。次回、アプリケーション起動時には、上記データベース１３０に記憶されたアプリケーション構成ファイルに基づいて、アプリケーションの使用制限ＣＰＵ／ＣＯＲＥ数を上限にアプリケーションを動作させることができる。
【００８１】
なお、アプリケーションが使用するＣＰＵ／ＣＯＲＥ数は、Ｕｎｉｘ（登録商標）系ＯＳの場合には、たとえば、ｔａｓｋｓｅｔコマンドを用いることで、プロセスを特定のＣＰＵ／ＣＯＲＥに割り付けて制限する事が可能である。またＷｉｎｄｏｗｓ（登録商標）系ＯＳの場合には、たとえば、プロセスであればＴａｓｋＭａｎａｇｅｒ  Ｉｎｔｅｒｆａｃｅ  ＡＰＩのＳｅｔＰｒｏｃｅｓｓＡｆｆｉｎｉｔｙＭａｓｋ（）、スレッドであればＳｅｔＴｈｒｅａｄＡｆｆｉｎｉｔｙＭａｓｋ（）を呼び出す事で、特定のＣＰＵ／ＣＯＲＥに割り付けて制限する事が可能である。そして、アプリケーション起動時に、アプリケーション構成ファイルのＣＰＵ／ＣＯＲＥ数を毎回チェックすれば、実マシンのＣＰＵ／ＣＯＲＥ数には影響されずにアプリケーションを動作させることができる。
【００８２】
以上、本実施形態のユーザ端末１００側におけるライセンス管理方法の各処理について説明した。
【００８３】
次に、アプリケーションおよび該アプリケーションのライセンスを発行するメーカ端末２００におけるライセンス管理発行に関する各処理について、図１３〜図１８を参照しながら説明する。
【００８４】
図１３は、ユーザ端末１００から送信されたユーザのライセンス変更申請などのメッセージ処理を行う処理フローを示す。
【００８５】
まず、メッセージ送受信部２１０が、ユーザ端末１００からのメッセージを取得する（ステップＳ９００）。
【００８６】
次いで、ライセンス管理発行手段２２０が、暗号化されたメッセージを、メーカ暗号鍵を用いて、マシン１００の可読な情報に復号する（ステップＳ９０１）。
【００８７】
次いで、ライセンス管理発行手段２２０が、復号化したメッセージから、ユーザによる申請内容を解析し（ステップＳ９０２）、申請内容を判別する。申請内容は、アドレス変更に関する処理（ステップＳ９０３）、仮ライセンス発行に関する処理（ステップＳ９０４）、ライセンス再発行に関する処理（ステップＳ９０５）、プラットフォーム変更に関する処理（ステップＳ９０６）、またはＣＰＵ追加ライセンスに関する処理（ステップＳ９０７）のいずれかを選択することができる。なお、各処理については、後述する。
【００８８】
次いで、ライセンス管理発行手段２２０が、上記ステップＳ９０３〜Ｓ９０７の各処理で作成されたライセンスを、ユーザ端末１００に送信するために、メッセージを作成する（ステップＳ９０８）。次いで、ライセンス管理発行手段２２０が、作成したメッセージを暗号化し（ステップＳ９０９）、該暗号化したメッセージをユーザに対して送信する（ステップＳ９１０）。なお、メッセージの暗号化する形式として、たとえば、Ｓ／ＭＩＭＥなどの形式を採用することができる。
【００８９】
以下、上記ステップＳ９０３〜Ｓ９０７の各処理の具体的な内容について、図１４〜図１８を用いて詳細に説明する。
【００９０】
上記ステップＳ９０２において、申請内容を解析した結果、アドレス変更に関する場合、ライセンス管理発行手段２２０が、アドレス変更の処理を行う（ステップＳ９０３）。アドレス変更の処理フローの一例を図１４に示す。
【００９１】
図１４に示すように、ライセンス管理発行手段２２０が、受信したメッセージからユーザ端末１００における変更前と変更後のそれぞれのアドレス、ユーザ顧客番号、およびユーザの使用するアプリケーションの製品シリアル番号を取得する（ステップＳ９０３１）。該取得した変更前のアドレスと、データベース２３０に記憶されている過去に発行されたアドレスとを照合し、ユーザおよび製品の正当性をチェックする（ステップＳ９０３２、Ｓ９０３３）。すなわち、データベース２３０に記憶されているアドレスに対応付けられたユーザ情報および製品シリアル番号を参照し、これらと受信したメッセージから取得したユーザ顧客番号および製品シリアル番号とが一致するか否かで正当性をチェックすることができる。
【００９２】
ユーザおよび製品が正当であれば、ライセンス管理発行手段２２０が、製品情報と、変更後のアドレスとから、新たなライセンスを作成する（ステップＳ９０３４）。次いで、ライセンス管理発行手段２２０が、ライセンス改竄防止のため、ダイジェスト値を計算し、作成したライセンス内に挿入する（ステップＳ９０３５）。
【００９３】
次に、上記ステップＳ９０２において、申請内容を解析した結果、仮ライセンス発行に関する場合、ライセンス管理発行手段２２０が、仮ライセンス発行の処理を行う（ステップＳ９０４。仮ライセンス発行の処理フローの一例を図１５に示す。
【００９４】
図１５に示すように、まず、ライセンス管理発行手段２２０が、ユーザ端末１００におけるアドレス、ユーザ顧客番号、およびユーザの使用するアプリケーションの製品シリアル番号を取得する（ステップＳ９０４１）。該取得したアドレスと、データベース２３０に記憶されている過去に発行されたアドレスとを照合し、ユーザおよび製品の正当性をチェックする（ステップＳ９０４２、Ｓ９０４３）。次いで、ライセンス管理発行手段２２０が、該当するアプリケーションにおける仮ライセンスの発行回数を読み出し（ステップＳ９０４４）、発行回数を１インクリメントし、発行回数が予め設定された回数以下であるか否かチェックする（ステップＳ９０４５）。発行回数が予め設定された回数以下でない場合（ステップＳ９０４５：Ｎｏ）、ライセンス管理発行手段２２０が、メーカ側の担当者に対してアラートを表示し、指示を待機する。一方、発行回数が予め設定された回数以下であれば（ステップＳ９０４５：Ｙｅｓ）、ライセンス管理発行手段２２０が、仮ライセンスを作成する（ステップＳ９０４６）。なお、仮ライセンスを作成した場合、該作成した仮ライセンスと、上記１インクリメントした発行回数をデータベースに記録する。次いで、ライセンス管理発行手段２２０が、ライセンス改竄防止のため、ダイジェスト値を計算し、作成した仮ライセンス内に挿入する（ステップＳ９０４７）。
【００９５】
次に、上記ステップＳ９０２において、申請内容を解析した結果、ライセンス再発行に関する場合、ライセンス管理発行手段２２０が、ライセンス再発行の処理を行う（ステップＳ９０５）。ライセンス再発行の処理フローの一例を図１６示す。
【００９６】
図１６に示すように、まず、ライセンス管理発行手段２２０が、受信したメッセージからユーザ端末１００における変更前のアドレス、ユーザ顧客番号、およびユーザの使用するアプリケーションの製品シリアル番号などを取得する（ステップＳ９０５１）。該取得した変更前のアドレスと、データベース２３０に記憶されている過去に発行されたアドレスとを照合し、ユーザおよび製品の正当性をチェックする（ステップＳ９０５２、Ｓ９０５３）。次いで、ライセンス管理発行手段２２０が、該当するアプリケーションにおけるライセンスの再発行回数を読み出し（ステップＳ９０５４）、再発行回数を１インクリメントし、再発行回数が予め設定された回数以下であるか否かチェックする（ステップＳ９０５５）。再発行回数が予め設定された回数以下でない場合（ステップＳ９０５５：Ｎｏ）、ライセンス管理発行手段２２０が、メーカ側の担当者に対してアラートを表示し、指示を待機する。一方、再発行回数が予め設定された回数以下であれば（ステップＳ９０５５：Ｙｅｓ）、ライセンス管理発行手段２２０が、新たなライセンスを作成する（ステップＳ９０５６）。なお、新たなライセンスを作成した場合、該作成したライセンスと、上記１インクリメントした再発行回数をデータベースに記録する。次いで、ライセンス管理発行手段２２０が、ライセンス改竄防止のため、ダイジェスト値を計算し、作成したライセンス内に挿入する（ステップＳ９０５７）。
【００９７】
次に、上記ステップＳ９０２において、申請内容を解析した結果、プラットフォーム変更に関する場合、ライセンス管理発行手段２２０が、プラットフォーム変更の処理を行う（ステップＳ９０６）。ステップＳ９０７の処理は、たとえば、ユーザ側においてユーザ端末移行などによりＯＳ種別、ＣＰＵ種別に変更が生じ、ライセンス内容が変わる場合など、ライセンスの変更が必要な場合の処理である。プラットフォーム変更の処理フローの一例を図１７に示す。
【００９８】
図１７に示すように、まず、ライセンス管理発行手段２２０が、受信したメッセージからユーザ端末１００におけるアドレス、変更前と変更後のプラットフォーム情報を取得する（ステップＳ９０６１）。該取得したアドレスと、データベース２３０に記憶されている過去に発行されたアドレスとを照合し、ユーザおよび製品の正当性をチェックする（ステップＳ９０６２、Ｓ９０６３）。ユーザおよび製品が正当であれば、ライセンス管理発行手段２２０が、変更後のプラットフォーム情報から、新たなライセンスを作成する（ステップＳ９０６４）。次いで、ライセンス管理発行手段２２０が、ライセンス改竄防止のため、ダイジェスト値を計算し、作成したライセンス内に挿入する（ステップＳ９０６５）。
【００９９】
次に、上記ステップＳ９０３において、申請内容を解析した結果、ＣＰＵ追加ライセンスに関する場合、ライセンス管理発行手段２２０が、ライセンス追加発行の処理を行う（ステップＳ９０７）。ステップＳ９０７の処理は、たとえば、ＣＰＵ増設などによりライセンス追加発行が必要となった場合の処理である。ライセンス追加の処理フローの一例を図１８に示す。
【０１００】
図１８に示すように、まず、ライセンス管理発行手段２２０が、受信したメッセージからＣＰＵ追加数の情報を取得する（ステップＳ９０７１）。該取得したアドレスと、データベース２３０に記憶されている過去に発行されたアドレスとを照合し、ユーザおよび製品の正当性をチェックする（ステップＳ９０７２、Ｓ９０７３）。ライセンス管理発行手段２２０が、ライセンス追加発行に関わるメーカの担当者の承認入力を受け付ける（ステップＳ９０７４）。次いで、ライセンス管理発行手段２２０が、ＣＰＵ追加数の情報から、新たなライセンスを作成する（ステップＳ９０７５）。次いで、ライセンス管理発行手段２２０が、ライセンス改竄防止のため、ダイジェスト値を計算し、作成したライセンス内に挿入する（ステップＳ９０７６）。なお、通常、ライセンス追加発行が有償であるため、ステップＳ９０７４の処理のように、追加発行処理の途中で敢えて人による承認待ちプロセスを設けたが、本処理を省略することもできる。
【０１０１】
このような本実施形態によれば、アプリケーションの起動時に、ライセンス条件を満たすかどうかを検査し、満たさない場合にはユーザに対してメニュー表示して、ライセンス再発行申請を行うか、仮ライセンスにてシステム運用を継続するか、またはライセンス範囲内のＣＰＵ／ＣＯＲＥ数で動作させるか、をそれぞれ選択することができる。したがって、ユーザの都合によりユーザ端末１００のＩＰアドレスやＣＰＵ増設、ＣＰＵ種別変更を行った場合でも、ライセンス範囲内のＣＰＵ／ＣＯＲＥ数で動作させることができ、ライセンス違反を防止し、アプリケーションの起動障害を防止することができる。たとえば、従来のライセンスの判定方法では、ライセンス上のＣＰＵ／ＣＯＲＥ数が２で、ユーザ端末１００の物理ＣＰＵ／ＣＯＲＥ数が４の場合、アプリケーションの起動条件とライセンス条件とが不一致でライセンス違反となっていた。しかし、ライセンス上でＣＰＵ／ＣＯＲＥ数が２個の制限であれば、このアプリケーションで用いるＣＰＵ／ＣＯＲＥ数を最大２個までに制限できればライセンス上の問題も無く、ライセンス違反を防止することができる。
【０１０２】
さらに、本実施形態によれば、プラットフォーム情報だけでなく、アプリケーション構成ファイルも参照して、ライセンス条件を充足するか判断しているので、実マシンのＣＰＵ／ＣＯＲＥ数などの構成のみに依存することなく、ライセンス条件の充足を判断することができる。
【０１０３】
なお、ユーザの予算上可能であれば不足したＣＰＵ／ＣＯＲＥ数に応じて、事前に追加ライセンスを購入しても良く、既に新しい追加ライセンスが手元に届いているのであれば起動条件を変更する必要はない。
【０１０４】
さらに、これまでアプリケーションを開発するメーカでは、新規販売しライセンス発行したユーザのプラットフォーム情報については把握できるが、バージョンアップしながら長期間継続的に使用しているユーザが実際にどの様なプラットフォームを用いているか、またアプリケーションのどのバージョンを使用しているかなどを、正確に把握する手段は無かった。このため、そのアプリケーションの次期バージョンではどのプラットフォームを優先的に開発出荷するか、どのプラットフォームを保守停止しても良いかの目安は曖昧であった。しかし、本実施形態によれば、ユーザ端末１００からプラットフォーム情報にかかるメッセージをメーカ端末２００に適宜送信することで、アプリケーションを使用するユーザ端末１００のＣＰＵ種別、ＯＳやバージョンなどのプラットフォーム情報の変更についても、ライセンスを発行するメーカ側で適宜把握することができる。よって、メーカではそのアプリケーションの各バージョン移行状況も分かり、バージョンアップ開発スケジュールを決定する際にも利用できる。
＜第２実施形態＞
以下、本発明の第２実施形態のライセンス管理システム２について説明する。
【０１０５】
上記第１実施形態は、アプリケーションの起動条件がライセンス条件を満たさない場合、アプリケーションの起動条件の変更をするにあたって、ユーザ操作の入力を受け付けて動作するものであったが、本第２実施形態は、ユーザ操作の入力を不要とし、自動的にアプリケーションの起動条件を、ライセンス条件を満たすように変更して設定する。
【０１０６】
なお、ライセンス管理システム２の構成自体は、原則として、ユーザ端末１００およびメーカ端末２００からなる第１実施形態のライセンス管理システム１の構成と共通にすることができるので、その説明は省略する。なお、ライセンス管理システム２は、ユーザ端末１００のライセンス管理手段１２５を省略することもできる。
【０１０７】
本実施形態のライセンス条件判定手段１２４'は、アプリケーションの起動条件が、ライセンス条件を満たすか否かを判定する。判定方法は、上記ライセンス条件判定手段１２４と共通とすることができる。アプリケーションの起動条件がライセンス条件を満たせば、アプリケーションを起動し、一方、アプリケーションの起動条件がライセンス条件を満たさなければ、自動的に、ライセンス条件を満たすようにアプリケーションの起動条件の変更をする。
【０１０８】
以下、図２０および図２１に示すフローチャートを参照して、ライセンス管理システム２を用いて実施される本実施形態のライセンス管理方法を説明する。なお、各図のフローチャートで示される各処理は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【０１０９】
まず、ライセンス読込手段１２１が、起動対象のアプリケーションのライセンス情報をデータベース１３０から読み込む（ステップＳ１０００）。たとえば、ユーザ端末１００において、ユーザがアプリケーションを起動する操作入力をトリガとして、ライセンス読込手段１２１が、起動対象のアプリケーションのライセンス情報をデータベース１３０から取得する。
【０１１０】
次いで、復号処理手段１２２が、暗号化されたライセンス情報を、メーカ暗号鍵を用いて復号し、ユーザ端末１００の可読な情報にする（ステップＳ１００１）。ライセンス情報には、ライセンス条件であって、アプリケーションを使用する上で許諾されたユーザ端末１００のプラットフォーム情報（基準プラットフォーム情報）、たとえば、ユーザ端末１００のＩＰアドレス、ＣＰＵ種別、ＣＰＵ／ＣＯＲＥ数、ＯＳ・バージョンなどの情報が記述されている。
【０１１１】
次いで、プラットフォーム情報取得手段１２３が、アプリケーションを起動するユーザ端末１００の現在のプラットフォーム情報（実プラットフォーム情報）を取得する（ステップＳ１００２）。
【０１１２】
次いで、ライセンス条件判定手段１２４が、ライセンス上の基準プラットフォーム情報とマシン１００の実プラットフォーム情報とを比較して、アプリケーションの起動条件が、ライセンス条件を満たすか否かを判定する（ステップＳ１００３）。
【０１１３】
ここで、図２１を用いて、ステップＳ１００３の処理について説明する。ただし、ステップＳ２０００〜Ｓ２００４、Ｓ２００６〜Ｓ２００７の各処理は、図７の上記ステップＳ３００〜Ｓ３０４、Ｓ３０６〜Ｓ３０７の各処理と共通の処理を実施させることができるので、ここでの詳細な説明は省略する。
【０１１４】
ステップＳ２００５において、ライセンス条件判定手段１２４が、アプリケーションの起動条件（ＣＰＵ／ＣＯＲＥ数）が、ライセンス条件を満たすか否かを判定する。すなわち、プラットフォーム情報におけるＣＰＵ／ＣＯＲＥ数（物理ＣＰＵ／ＣＯＲＥ数）と、アプリケーション構成ファイルにおけるＣＰＵ／ＣＯＲＥ数（アプリケーションの使用制限ＣＰＵ／ＣＯＲＥ数）とが異なる場合は、アプリケーションの使用制限ＣＰＵ／ＣＯＲＥ数を、ライセンスファイルに記述されたＣＰＵ／ＣＯＲＥ数と比較して該ＣＰＵ／ＣＯＲＥ数の範囲内であるか否かでライセンス条件を満たすか否かを判定する。
【０１１５】
判定した結果、ライセンス条件を満たす場合（ステップＳ２００５：Ｙｅｓ）、ステップＳ１００６の処理に移る。
【０１１６】
一方、判定した結果、ライセンス条件を満たさない場合（ステップＳ２００５：Ｎｏ）、ライセンス条件判定手段１２４が、ライセンス条件を満たすようにアプリケーションの起動条件を変更し（ステップＳ２００８）、ステップＳ１００６の処理に移る。なお、ライセンス条件を満たさない場合は、ライセンス条件が超過したことを示す警告をユーザに対して表示して知らせることができる。
【０１１７】
よって、ステップＳ１００６において、アプリケーションの起動条件を、ライセンス条件を満たすように自動的に変更した上で、アプリケーションをそのまま起動することができる。また、次のアプリケーション起動時には、アプリケーション構成ファイルに従ったＣＰＵ／ＣＯＲＥ数に制限して起動するができる。なお、アプリケーション構成ファイルに従ったＣＰＵ／ＣＯＲＥ数が、物理ＣＰＵ／ＣＯＲＥ数より小さい場合にはアプリケーションの縮退運転となる。
【０１１８】
本実施形態によれば、ユーザの都合によりユーザ端末１００のＣＰＵ増設を行った場合でも、アプリケーションの起動条件（たとえば、ＣＰＵ／ＣＯＲＥ数）を、自動的にライセンス条件を満たすように設定することで、ライセンス違反を防止し、アプリケーションの起動障害を防止することができる。たとえば、世間一般的には技術的あるいは管理工数の都合上、ライセンス条件検査を行わずにユーザとの紳士協定にまかせているメーカも多く、ユーザも気が付かずにライセンス違反を犯してしまう問題があったが、本実施形態によればこの様な問題を防止することができる。
【０１１９】
また、ライセンスの制約上などでアプリケーションが縮退運転となった場合に、ユーザに対し事前に警告表示を行うことで、ライセンス追加購入の契機が分かる効果もある。
＜第３実施形態＞
以下、本発明の第３実施形態のライセンス管理システム３について説明する。
【０１２０】
第３実施形態のライセンス管理システム３は、さらに柔軟な運用を行うために、Ｆｌｏａｔｉｎｇライセンスなどの一種であって、ネットワーク上で利用するアプリケーションのライセンス数を制限するＳｉｔｅライセンス方式を適用した場合のシステムである。
【０１２１】
なお、ライセンス管理システム３の構成自体は、原則として、ユーザ端末１００およびメーカ端末２００からなる第１実施形態のライセンス管理システム１の構成と共通にすることができるので、その説明は省略する。なお、ライセンス管理システム２は、ユーザ端末１００のライセンス管理手段１２５を省略することもできる。
【０１２２】
以下、図２１に示すフローチャートを参照して、ライセンス管理システム３を用いて実施される本実施形態のライセンス管理方法を説明する。なお、ライセンス管理システム３におけるアプリケーション起動の処理内容は、図２０に示すライセンス管理システム２の場合と同様にすることができるので、ここでの詳細な説明は省略する。図２１は、上記第２実施形態におけるステップＳ１００３の処理（ライセンス条件判定処理）に対応する、本実施形態のライセンス条件判定処理を示す。なた、図２１のフローチャートで示される各処理は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【０１２３】
まず、ライセンス条件判定手段１２４' 'が、アプリケーション構成ファイルをデータベース１３０から取得する（ステップＳ３０００）。
【０１２４】
次いで、ライセンス条件判定手段１２４' 'が、ユーザ端末１００の物理ＣＰＵ／ＣＯＲＥ数を含むプラットフォーム情報を取得し、得られた物理ＣＰＵ／ＣＯＲＥ数を変数ｐｌに記憶させる（ステップＳ３００１）。
【０１２５】
次いで、ライセンス条件判定手段１２４' 'が、アプリケーション構成ファイルにおけるＣＰＵ／ＣＯＲＥ数（アプリケーションの使用制限ＣＰＵ／ＣＯＲＥ数）を変数Ｘに記憶させる（ステップＳ３００２）。
【０１２６】
次いで、ライセンス条件判定手段１２４' 'が、ライセンスファイルに記述されたネットワークライセンス数を取得し、この値を変数ｎｌに記憶させる（ステップＳ３００３）。ネットワークライセンス数は、ネットワーク上で該当するアプリケーションを使用することができる、全てのユーザ端末のＣＰＵ／ＣＯＲＥ数の合計値である。
【０１２７】
次いで、ライセンス条件判定手段１２４' 'が、該アプリケーションが使用されている少なくとも１以上のユーザ端末全てのＣＰＵ／ＣＯＲＥ数を調べて、その合計数を算出する（ステップＳ３００４）。具体的な処理は、例えば、アプリケーションを起動するユーザ端末１００において、該アプリケーションで予め決められたポート番号でブロードキャストを行い、応答してきた他のユーザ端末で稼動中のアプリケーションに対し、アプリケーションが使用しているＣＰＵ／ＣＯＲＥ数を問い合わせ、回答してきたＣＰＵ／ＣＯＲＥ数の合計を算出すれば良い。そして、算出したネットワーク上の合計ＣＰＵ／ＣＯＲＥ数の値をｓｕｍに記憶させる。
【０１２８】
次いで、ライセンス条件判定手段１２４' 'が、アプリケーションが使用するＣＰＵ／ＣＯＲＥ数を表す変数Ｘが、ネットワーク全体でライセンス条件を満たしているか否かを判定する（ステップＳ３００５）。判定方法は、Ｓｕｍ＋Ｘ≦ｎｌ（式１）を用いて行うことができる。式１が成り立たない場合は（ステップＳ３００５：Ｎｏ）、ライセンス条件判定手段１２４が、ライセンス合計超過警告としてユーザに対して警告を表示し、アプリケーションの使用するＣＰＵ／ＣＯＲＥ数を、Ｘ'＝ｎｌ−ｓｕｍ（式２）から算出した値ｘ'とする（ステップＳ３００６）。式１が成り立つようにアプリケーションを起動すれば、ネットワークライセンス数の範囲を超過しない。
【０１２９】
次いで、算出した値Ｘ'が、ユーザ端末１００の物理ＣＰＵ／ＣＯＲＥ数を超過しないか否かを、Ｘ'≦ｐｌ（式３）を用いてチェックする（ステップＳ３００７）。式３が成り立たない場合は（ステップＳ３００５：Ｎｏ）、物理ＣＰＵ／ＣＯＲＥ数超過エラーとしてユーザに対して警告を表示し、アプリケーションの使用するＣＰＵ／ＣＯＲＥ数を、Ｘ''＝ｐｌ（式４）から値Ｘ''とする（ステップＳ３００８）。アプリケーションの使用するＣＰＵ／ＣＯＲＥ数をＸ''としてアプリケーションを起動させれば、ユーザ端末１００の物理ＣＰＵ／ＣＯＲＥ数を超過しない。よって、ライセンス条件判定手段１２４''が、アプリケーション構成ファイルに変数Ｘ''の値を書き込んだ後、アプリケーションを起動する（ステップＳ３００９）。なお、物理ＣＰＵ／ＣＯＲＥ数よりも小さいＣＰＵ／ＣＯＲＥ数でアプリケーションを起動する場合にはアプリケーションの縮退運転となる。
【０１３０】
以上、本実施形態によれば、Ｎｅｔｗｏｒｋ上のライセンス数の合計の範囲内（たとえば、ＣＰＵ／ＣＯＲＥ数など）であれば、実マシン（ユーザ端末）のアドレス、ＣＰＵ／ＣＯＲＥ数、仮想ＯＳ上のＣＰＵ／ＣＯＲＥ数などに必ずしも制限されず、運用のフレキシビリティが向上する効果がある。
＜変形例＞
以上のように本発明の好適な実施形態について説明したが、本発明は、以上の実施形態に限定されるべきものではなく、特許請求の範囲に表現された思想および範囲を逸脱することなく、種々の変形、追加、および省略が当業者によって可能である。
【０１３１】
たとえば、上記各実施形態では、ライセンス条件の判定をアプリケーションの起動時に行う場合を説明したが、本発明はこれに限られず、たとえば、アプリケーションの起動前に予めライセンス条件を満たすか否かを判定し、アプリケーション構成ファイルを適宜変更してもよい。この場合、実際にアプリケーションを起動する際に、ライセンス条件を既に満たしている可能性が高くなり、迅速にアプリケーションを起動することができる。
【０１３２】
また、上記各実施形態では、起動条件を変更する例として、ＣＰＵ／ＣＯＲＥ数を変更する場合について説明したが、本発明はこれに限られず、ＣＰＵ／ＣＯＲＥ数以外であっても、ライセンス条件を満たすように変更できるパラメータであれば、起動条件における変更対象として本発明を適用することが可能である。
【０１３３】
さらに、上記各実施形態では、ユーザ端末１００において、ライセンス変更、ライセンス更新、アプリケーションの起動条件の変更の各処理を選択するようにしているが、本発明は、たとえば、ライセンス変更、ライセンス更新の各処理を省略するなど、柔軟な変更が可能である。
【０１３４】
さらに、上記各実施形態では、ユーザ端末１００，メーカ端末２００において、それぞれの処理機能を有する各手段が備えられている構成を説明したが、本発明はこれに限られず、各手段がユーザ端末１００，メーカ端末２００と通信可能に接続されたネットワーク上に又は他の装置に備えて構成することもできる。
【０１３５】
さらに、ユーザ端末１００，メーカ端末２００には、用途に応じた各手段がそれぞれ備えられているが、ユーザ端末１００，メーカ端末２００に備えられている各手段は、そのいくつかを一纏めにして構成されていてもよいし、一つの部をさらに複数の部に分割して構成されていてもよい。
【０１３６】
さらに、上記各実施形態では、ユーザ端末１００がライセンス管理装置を兼ねる場合を説明したが、本発明はこれに限られず、たとえば、アプリケーションを起動するユーザ端末１００とライセンス管理装置とをそれぞれ別の装置で構成し、両方の装置を通信可能に接続してもよい。
【符号の説明】
【０１３７】
１  ネットワーク管理システム、
１００  ユーザ端末、
１１０  メール送受信手段、
１２０  アプリケーション起動手段、
１２１  ライセンス読込手段、
１２２  複合化手段、
１２３  プラットフォーム情報取得手段、
１２４  ライセンス条件判定手段、
１２５  ライセンス管理手段、
１３０  データベース、
２００  メーカ端末、
２１０  メール送受信手段、
２２０  ライセンス管理発行手段、
２３０  問い合わせ管理手段、
２４０  データベース。
【図１】
2011076543.tif 000003
【図２】
2011076543.tif 000004
【図３】
2011076543.tif 000005
【図４】
2011076543.tif 000006
【図５】
2011076543.tif 000007
【図６】
2011076543.tif 000008
【図７】
2011076543.tif 000009
【図８】
2011076543.tif 000010
【図９】
2011076543.tif 000011
【図１０】
2011076543.tif 000012
【図１１】
2011076543.tif 000013
【図１２】
2011076543.tif 000014
【図１３】
2011076543.tif 000015
【図１４】
2011076543.tif 000016
【図１５】
2011076543.tif 000017
【図１６】
2011076543.tif 000018
【図１７】
2011076543.tif 000019
【図１８】
2011076543.tif 000020
【図１９】
2011076543.tif 000021
【図２０】
2011076543.tif 000022
【図２１】
2011076543.tif 000023