(57)【要約】【課題】  割り当て可能なライセンス数に限りがある場合であっても、そのライセンスの割り当てを効率的に実施する。【解決手段】  ライセンス管理装置１は、1つ以上の第1のプロセスから、第1のプロセスが実行するソフトウェアのライセンスの割り当て要求を受付けるのに応じて、ライセンスサーバにライセンスの割り当てを要求し、ライセンスを利用する前記第1のプロセスとは異なる第２のプロセスの有無を判定し、第２のプロセスが無い場合に、第１のライセンス情報１０１を受信したか否かを判定し、第１のライセンス情報１０１を受信したと判定した場合に、前記ソフトウェアに対応するライセンスの排他処理を利用可能な状態にするライセンス管理部２と、第１のプロセスの属性情報に前記排他処理を実行するよう指示する情報を設定する実行制御部３とを備える。【選択図】      図１
2014153761.tif 000002
【特許請求の範囲】
【請求項１】
1つ以上の第1のプロセスから、該第1のプロセスが実行するソフトウェアのライセンスの割り当て要求を受付けるのに応じて、ライセンスサーバに前記ライセンスの割り当てを要求し、前記ライセンスを利用する前記第1のプロセスとは異なる第２のプロセスの有無を判定し、前記第２のプロセスが無い場合に、前記ライセンスの使用を許可する情報を含む第１のライセンス情報を受信したか否かを判定し、前記第１のライセンス情報を受信したと判定した場合に、前記ソフトウェアに対応する前記ライセンスの排他処理を利用可能な状態にするライセンス管理部と、
前記第１のプロセスの属性情報に前記排他処理を実行するよう指示する情報を設定する実行制御部と、
を備えることを特徴とするライセンス管理装置。
【請求項２】
前記ライセンス管理部は、
前記第１のプロセスが前記ライセンスを解除する際に、前記ライセンスの割り当てを要求したプロセス数と前記ライセンスサーバから割り当てられたライセンス数とを比較し、該プロセス数が該ライセンス数以下の場合に、前記ライセンスサーバに前記第１のプロセスが前記ライセンスを解除し、そのライセンスの利用を終了したことを通知し、
該プロセス数が該ライセンス数より多い場合に、前記ライセンスサーバに前記第１のプロセスが前記ライセンスの利用を終了したことを通知することを特徴とする請求項１に記載のライセンス管理装置。
【請求項３】
前記ライセンス管理部は、
前記ライセンスサーバから前記ライセンスの解除を要求する情報を含む解放要求情報を受信するのに応じて、該ライセンスを前記ライセンスサーバに解除することを特徴とする請求項１または請求項２に記載のライセンス管理装置。
【請求項４】
前記排他処理は、セマフォであることを特徴とする請求項１に記載のライセンス管理装置。
【請求項５】
前記ライセンス管理部は、
前記ライセンスサーバから前記ライセンスの使用を許可する情報と前記ライセンスの利用形態を示す利用種別情報とを含む第２のライセンス情報を受信するのに応じて、前記利用種別情報に基づいて、前記排他処理を行うか否かを判定することを特徴とする請求項１乃至請求項５の何れかに記載のライセンス管理装置。
【請求項６】
受信した前記ライセンスの割り当て要求に応じて、前記第１のライセンス情報を通知するライセンスサーバと、
請求項１乃至請求項５の何れかに記載されたライセンス管理装置を含む計算機と、
を備えることを特徴とするライセンス管理システム。
【請求項７】
前記ライセンスサーバは、
前記計算機からの前記ライセンスの割り当て要求に応じて、ライセンス情報を含むライセンス管理情報に基づいて、前記ライセンスを割り当て可能か否かを判定し、
前記ライセンスを割り当て可能と判定した場合に、前記第１のライセンス情報を前記計算機に通知し、
ライセンスを割り当てできないと判定した場合に、前記ライセンス管理情報に基づいて、前記解放要求情報を通知する計算機を特定し、前記特定した計算機と前記割り当て要求した計算機とを比較した結果に応じて、前記解放要求情報を前記特定した計算機に通知するライセンス制御部を備えることを特徴とする請求項６に記載のライセンス管理システム。
【請求項８】
1つ以上の第1のプロセスから、該第1のプロセスが実行するソフトウェアのライセンスの割り当て要求を受付けるのに応じて、ライセンスサーバに前記ライセンスの割り当てを要求し、前記ライセンスを利用する前記第1のプロセスとは異なる第２のプロセスの有無を判定し、前記第２のプロセスが無い場合に、前記ライセンスの使用を許可する情報を含む第１のライセンス情報を受信したか否かを判定し、前記第１のライセンス情報を受信したと判定した場合に、前記ソフトウェアに対応する前記ライセンスの排他処理を利用可能な状態にし、
前記第１のプロセスの属性情報に前記排他処理を実行するよう指示する情報を設定することを特徴とするライセンス管理方法。
【請求項９】
前記第１のプロセスが前記ライセンスを解除する際に、前記ライセンスの割り当てを要求したプロセス数と前記ライセンスサーバから割り当てられたライセンス数とを比較し、該プロセス数が該ライセンス数以下の場合に、前記ライセンスサーバに前記第１のプロセスが前記ライセンスを解除し、そのライセンスの利用を終了したことを通知し、
該プロセス数が該ライセンス数より多い場合に、前記ライセンスサーバに前記第１のプロセスが前記ライセンスの利用を終了したことを通知することを特徴とする請求項８に記載のライセンス管理方法。
【請求項１０】
1つ以上の第1のプロセスから、該第1のプロセスが実行するソフトウェアのライセンスの割り当て要求を受付けるのに応じて、ライセンスサーバに前記ライセンスの割り当てを要求し、前記ライセンスを利用する前記第1のプロセスとは異なる第２のプロセスの有無を判定し、前記第２のプロセスが無い場合に、前記ライセンスの使用を許可する情報を含む第１のライセンス情報を受信したか否かを判定し、前記第１のライセンス情報を受信したと判定した場合に、前記ソフトウェアに対応する前記ライセンスの排他処理を利用可能な状態にする機能と、
前記第１のプロセスの属性情報に前記排他処理を実行するよう指示する情報を設定する機能と、
をコンピュータに実現させることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションソフトにおけるライセンスを管理する情報処理の技術分野に関する。
【背景技術】
【０００２】
一般的にライセンスサーバは、アプリケーションソフト（以下、「ソフトウェア」、単に「ソフト」とも記す）の使用権（ライセンス）や使用許諾等を管理する機能を有することが知られている。
【０００３】
また、ライセンスサーバは、通信ネットワークを介してライセンス管理されたソフトウェアの利用状況を把握（監視）することができる。
【０００４】
例えば、通信ネットワークを介して接続されたパーソナルコンピュータや携帯端末等の電子機器においてライセンス管理されたソフトウェアを利用する場合に、電子機器は、ライセンスサーバに使用許可を問い合わせる。
【０００５】
さらに、電子機器は、ライセンスサーバから係るソフトウェアにおける使用許可を得ることによって、ソフトウェアを実行することができる。
【０００６】
ここで、本願出願に先立って存在する関連技術として、特許文献１は、ライセンス管理装置、ライセンス管理システム、ライセンス管理方法、ライセンス管理プログラムおよび記憶媒体に関する技術を開示する。
【０００７】
特許文献１における端末装置は、ライセンス管理されたソフトウェアを実行する際に、ライセンス管理装置にライセンスの使用が可能か否かを問い合わせる。
【０００８】
即ち、端末装置は、ライセンス管理装置に貸与要求情報を含む貸与要求を行う。ここで、貸与要求情報とは、ソフトウェアを使用する期間情報を含む。
【０００９】
ライセンス管理装置は、係る貸与要求に応答して、ライセンスの使用が可能か否かを判定する。さらに、ライセンス管理装置は、判定した結果と貸与要求情報とに基づいて、ライセンスを貸与する。
【００１０】
また、ライセンス管理装置は、ライセンスの貸与要求を行なった端末装置にライセンスの使用許可期間を通知する。
【００１１】
これにより、ライセンスの貸与要求を行なった端末装置は、取得したライセンスの使用許可期間に基づいて、ソフトウェアを使用することができる。
【００１２】
特許文献２は、ライセンス管理システムに関する技術を開示する。
【００１３】
より具体的に、特許文献２に開示されたライセンス管理システムは、ライセンス管理されたソフトウェアを利用するジョブが事前に判明している場合に、そのジョブの実行が重複しないようにスケジューリングする。
【００１４】
これにより、ライセンス管理システムでは、ライセンスを効率的に利用することができる。
【００１５】
特許文献３は、処理制御システム、サーバ及び処理制御プログラムに関する技術を開示する。
【００１６】
特許文献３に開示された処理制御システムは、複数台のクライアント及び複数台のサーバにおいてライセンスを管理する。
【００１７】
より具体的に、処理制御システムにおけるサーバは、クライアントからユーザの識別情報（ユーザＩＤ、ｉｄｅｎｔｉｆｉｅｒ：以降、「ＩＤ」と称する）を含むアクセス要求を受信した際に、その識別情報に基づいてアプリケーション利用情報を参照する。
【００１８】
ここで、アプリケーション利用情報とは、ユーザＩＤとそのユーザに設定されたアプリケーションの使用可否に関する情報とをユーザ毎に関連付けた情報を含む。
【００１９】
さらに、係るサーバは、アプリケーション利用情報を参照した結果、アプリケーションの使用可否を判定すると共に、判定した結果をクライアントに返信する。
【００２０】
使用可能を示す判定結果を取得した場合に、クライアントは、係るアプリケーションを利用する。さらに、クライアントは、そのアプリケーションを利用してサーバに接続すると共に、サーバに格納されたファイルにアクセスすることができる。
【００２１】
特許文献４は、ソフトウェアライセンス管理方法、ソフトウェアライセンス管理システム、及びコンピュータ・プログラムに関する技術を開示する。
【００２２】
特許文献４に開示された管理方法は、ユーザが使用する端末（以下、「使用端末」と称する）からソフトウェアを使用する際に、ソフトウェアが予め具備している第１のライセンス情報と、携帯端末機から供給される第２のライセンス情報とに基づいて、ソフトウェアの使用を許可する。
【００２３】
また、係る携帯端末機は、使用端末からソフトウェアにおける使用終了の通知を受信するまでの間、第２のライセンス情報の供給を停止する。
【００２４】
そのため、係る管理方法では、１ユーザ１ライセンスの原則に則ったソフトウェアを供給する場合に、特定の１台の使用端末に限定することなくソフトウェアの使用を許可することができる。
【００２５】
特許文献５は、ソフトウェアライセンス管理装置に関する技術を開示する。より具体的に、係る管理装置は、ライセンス管理されたプログラム（以下、「ライセンスプログラム」と称する）を使用する際の優先度をユーザ毎に保持する。
【００２６】
例えば、優先度の高いユーザからライセンスプログラムの実行要求が発生し、且つライセンスプログラムを使用する（つまり、使用中の）ユーザ数がライセンスの上限に達している場合に、係る管理装置は、優先度の低いユーザの使用権を解除する。
【００２７】
さらに、管理装置は、優先度の高いユーザに使用権を付与する（割り当てる）。このため、ライセンスプログラムを使用するユーザ数がライセンスの上限数に達している場合であっても、優先度の高いユーザは、ライセンスプログラムを実行することができる。
【先行技術文献】
【特許文献】
【００２８】
【特許文献１】特開２００７−２００２３６号公報
【特許文献２】特表平０６−５００８７８号公報
【特許文献３】特開２００９−１９９４８１号公報
【特許文献４】特開２００４−１３９２３８号公報
【特許文献５】特開平０５−３４６８５１号公報
【発明の概要】
【発明が解決しようとする課題】
【００２９】
しかしながら、特許文献１及び特許文献２では、ライセンス管理されたソフトウェアの使用時間を予め設定する必要がある。
【００３０】
例えば、ソフトウェアの使用時間は、ジョブやそのソフトウェアの実行環境等によって異なる。そのため、ユーザは、事前にソフトウェアの使用時間を把握できない場合がある。
【００３１】
より具体的に、一般的に知られたコンパイラを例に考えた場合に、コンパイラにおける処理時間は、処理対象となるプログラムのサイズや複雑さ、ファイル数等によって大きく変化する。
【００３２】
さらに、コンパイラにおける処理は、例えば、ユーザによって中断することが可能である。また、係る処理には、コンパイルの処理に伴うファイルの入出力処理も含まれる。そのため、ユーザは、係る処理時間を想定することが困難である。
【００３３】
即ち、特許文献１及び２に開示された技術では、効率的にライセンスを管理することができない。
【００３４】
また、特許文献３には、複数台のクライアントと複数台のサーバにおいてライセンスを管理することが記載されているに留まり、割り当て可能なライセンス数が無い場合に、ライセンスの割り当てを効率的に実施することについては、何ら述べられていない。
【００３５】
特許文献４には、１人のユーザに対して割り当てられた１つのライセンスを複数台の使用端末において使用することが記載されているに留まり、複数のユーザにおいてライセンスを使用することについては、考慮されておらず何ら述べられていない。
【００３６】
特許文献５には、ユーザ毎に設定された優先度に基づいて、優先度の低いユーザからライセンスを解除することが記載されている。
【００３７】
そのため、例えば、優先度の低いユーザからライセンスプログラムの実行要求が発生する際に、管理装置は、優先度の高いユーザがライセンスプログラムの実行を終了するまで優先度の低いユーザに使用権を割り当てない。
【００３８】
つまり、特許文献５に開示された技術では、全てのユーザに対して公平にライセンスを提供できないことが問題である。
【００３９】
また、ライセンス管理されたソフトウェアを実行する際に、特許文献１乃至特許文献５に開示された技術では、実行開始から終了するまでライセンスを保持することが想定されている。
【００４０】
このため、特許文献１乃至特許文献５では、ソフトウェアの処理時間が長くなる場合や実行途中にユーザが何らかの理由で処理を中断する場合に、係る処理が終了するまでライセンスが割り当てられた状態を維持することになる。
【００４１】
例えば、利用可能なライセンスが無く、且つ長時間ライセンスを保持するユーザがいる場合に、特許文献１乃至特許文献５では、ライセンスの空き待ちが発生する。
【００４２】
即ち、複数のユーザにおいてライセンスを利用する場合に、特許文献１乃至特許文献５では、ライセンスの割り当てを効率的に実施することができない。
【００４３】
より具体的に、一例として、不特定多数のユーザの利用が想定されるクラウド環境には、ライセンス管理されたソフトウェアをサービスとして提供する場合がある。
【００４４】
不特定多数のユーザにソフトウェアを提供する場合に、特許文献１乃至特許文献５に開示された技術では、例えば、ユーザは、ライセンスが割り当てられるまで待ち状態が発生する。
【００４５】
即ち、クラウド環境において提供されるサービスとしては、全てのユーザに対して公平に提供できていない虞がある。
【００４６】
本発明の主たる目的は、割り当て可能なライセンス数に限りがある場合であっても、そのライセンスの割り当てを効率的に実施することが可能なライセンス管理装置等を提供することにある。
【課題を解決するための手段】
【００４７】
上記の課題を達成すべく、本発明に係るライセンス管理装置は、以下の構成を備えることを特徴とする。
【００４８】
即ち、本発明に係るライセンス管理装置は、
1つ以上の第1のプロセスから、該第1のプロセスが実行するソフトウェアのライセンスの割り当て要求を受付けるのに応じて、ライセンスサーバに前記ライセンスの割り当てを要求し、前記ライセンスを利用する前記第1のプロセスとは異なる第２のプロセスの有無を判定し、前記第２のプロセスが無い場合に、前記ライセンスの使用を許可する情報を含む第１のライセンス情報を受信したか否かを判定し、前記第１のライセンス情報を受信したと判定した場合に、前記ソフトウェアに対応する前記ライセンスの排他処理を利用可能な状態にするライセンス管理部と、
前記第１のプロセスの属性情報に前記排他処理を実行するよう指示する情報を設定する実行制御部と、
を備えることを特徴とすることを特徴とする。
【００４９】
或いは、上記に示すライセンス管理装置を含むライセンス管理システムによっても、同目的を達成される。
【００５０】
また、同目的を達成すべく、本発明に係るライセンス管理方法は、以下の構成を備えることを特徴とする。
【００５１】
即ち、本発明に係るライセンス管理方法は、
1つ以上の第1のプロセスから、該第1のプロセスが実行するソフトウェアのライセンスの割り当て要求を受付けるのに応じて、ライセンスサーバに前記ライセンスの割り当てを要求し、前記ライセンスを利用する前記第1のプロセスとは異なる第２のプロセスの有無を判定し、前記第２のプロセスが無い場合に、前記ライセンスの使用を許可する情報を含む第１のライセンス情報を受信したか否かを判定し、前記第１のライセンス情報を受信したと判定した場合に、前記ソフトウェアに対応する前記ライセンスの排他処理を利用可能な状態にし、
前記第１のプロセスの属性情報に前記排他処理を実行するよう指示する情報を設定することを特徴とする。
【００５２】
尚、同目的は、上記の各構成を有するライセンス管理装置及びライセンス管理方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００５３】
本発明によれば、割り当て可能なライセンス数に限りがある場合であっても、そのライセンスの割り当てを効率的に実施することが可能なライセンス管理装置等を提供することができる。
【図面の簡単な説明】
【００５４】
【図１】本発明の第１の実施形態におけるライセンス管理装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態におけるライセンス管理装置が行う第１のプロセスから第１のソフトウェアのライセンスの割り当て要求を受け付けた際の動作を示すフローチャートである。
【図３】本発明の第１の実施形態におけるライセンス管理装置が行う第１のプロセスが第１のソフトウェアのライセンスを解放する際の動作を示すフローチャートである。
【図４】本発明の第２の実施形態におけるライセンス管理装置の構成を示すブロック図である。
【図５】本発明の第３の実施形態におけるライセンス管理装置を含むライセンス管理システムの構成を示すブロック図である。
【図６】本発明の第３の実施形態におけるライセンスサーバが行う計算機から第１のソフトウェアのライセンスの割り当て要求を受け付けた際の動作を示すフローチャートである。
【図７】本発明の第４の実施形態におけるライセンス管理装置の構成を示すブロック図である。
【図８】本発明の第４の実施形態におけるライセンス管理装置が行う第１のプロセスから第１のソフトウェアのライセンスの割り当て要求を受け付けた際の動作を示すフローチャートである。
【図９】本発明に係る各実施形態を実現可能な情報処理装置のハードウェア構成を例示的に説明するブロック図である。
【発明を実施するための形態】
【００５５】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００５６】
＜第１の実施形態＞
図１は、本発明の第１の実施形態におけるライセンス管理装置１の構成を示すブロック図である。図１において、ライセンス管理装置１は、ライセンス管理部２と実行制御部３とを有する。
【００５７】
以下の説明において、説明の便宜上、ライセンス管理されたソフトウェアを第１のソフトウェアと称する（以下、各実施形態においても同様）。
【００５８】
ライセンス管理部２は、第1のソフトウェアに関するライセンスを管理する。即ち、ライセンス管理部２は、第1のソフトウェアに対応するライセンスを管理する。
【００５９】
尚、ライセンス管理部２における詳細な動作については、本実施形態において後述する。
【００６０】
より具体的に、ライセンス管理部２は、不図示の通信部を介して第１のソフトウェアのライセンスの割り当てを要求する。また、ライセンス管理部２は、第１のライセンス情報１０１を受信する。
【００６１】
ここで、第１のライセンス情報１０１とは、ライセンス管理された第１のソフトウェアの使用権（ライセンス）の使用を許可する情報を含む。
【００６２】
また、ライセンス管理部２は、第１のライセンス情報１０１を受信する。
【００６３】
さらに、ライセンス管理部２は、第１のソフトウェアに対応する（関する）ライセンスの排他処理を利用可能な状態にする。
【００６４】
本実施形態において、係る第1のソフトウェアは、1つ以上存在することを想定している。また、ライセンス管理部２は、当該各（個々の）第1のソフトウェアに関するライセンスの排他処理について利用の要否を管理する。
【００６５】
ここで、排他処理とは、第１のソフトウェアのライセンスを１つ以上のプロセス間で利用することを制御する処理を表す（排他処理については、本実施形態において後述する）。
【００６６】
通信部（不図示）は、通信ネットワーク（例えば、図５に示す通信ネットワーク１１０）を介して、例えば、自装置と異なる電子機器やライセンスサーバ等と通信可能に接続する（以下、本願では「通信可能に接続」を単に「接続」と略称する）。
【００６７】
次に、実行制御部３は、第１のソフトウェアのライセンスが割り当てられることを要求するプロセス（以下、説明の便宜上、「第１のプロセス」と称する）に関して属性情報（メタデータ）を設定する。
【００６８】
さらに、実行制御部３は、第１のプロセスを実行可能な状態に制御することができる。
【００６９】
より具体的に、実行制御部３が第1のプロセスに関して設定する属性情報とは、第１のプロセスが第１のソフトウェアを実行する際に、上述した排他処理を実行するように指示する情報である。
【００７０】
ここで、以下の説明において、説明の便宜上、一例として、第１のプロセスから第１のソフトウェアのライセンスの割り当て要求を受け付けた際のライセンス管理装置１の動作ついて説明する。
【００７１】
図２は、本発明の第１の実施形態におけるライセンス管理装置１が行う第１のプロセスから第１のソフトウェアのライセンスの割り当て要求を受け付けた際の動作を示すフローチャートである。
【００７２】
例えば、ライセンス管理装置１は、第１のプロセスから第１のソフトウェアのライセンスの割り当て要求を受け付けた際に、不図示のライセンスサーバにライセンスの割り当て要求を通知することとする。
【００７３】
さらに、ライセンス管理装置１は、ライセンスサーバからライセンスの割り当て要求に対するリプライとして、第１のライセンス情報１０１を受信することとする。
【００７４】
尚、説明の便宜上、上述した構成を例に説明するが、本実施形態を例に説明する本発明は、この構成には限定されない（以下の実施形態においても同様）。
【００７５】
ステップＳ１：
ライセンス管理部２は、第１のプロセスから第１のソフトウェアのライセンスの割り当て要求を受け付けるのに応じて、不図示の通信部を介してライセンスサーバに、係るライセンスの割り当て要求を通知する。
【００７６】
ステップＳ２：
ライセンス管理部２は、第１のソフトウェアのライセンスを利用する第１のプロセスと異なるプロセス（以下、説明の便宜上、「第２のプロセス」と称する）の有無を判定する。
【００７７】
ステップＳ３において「ＹＥＳ」：
ライセンス管理部２は、係るライセンスを利用する第２のプロセスの有無を判定した結果、第２のプロセスが有ると判定した場合に、処理をステップＳ７に進める。
【００７８】
ステップＳ３において「ＮＯ」：
ライセンス管理部２は、係るライセンスを利用する第２のプロセスの有無を判定した結果、第２のプロセスが無いと判定した場合に、処理をステップＳ４に進める。
【００７９】
ステップＳ４：
ライセンス管理部２は、第１のライセンス情報１０１を受信したか否かを判定する。
【００８０】
ステップＳ５において「ＮＯ」：
ライセンス管理部２は、第１のライセンス情報１０１を受信したか否かを判定した結果、第１のライセンス情報１０１を受信していないと判定した場合に、処理をステップＳ４に進める。
【００８１】
つまり、ライセンス管理装置１は、ライセンスサーバ（不図示）から第１のソフトウェアのライセンスを割り当てられていないことを意味する。
【００８２】
ステップＳ５において「ＹＥＳ」：
ライセンス管理部２は、第１のライセンス情報１０１を受信したか否かを判定した結果、第１のライセンス情報１０１を受信していると判定した場合に、処理をステップＳ６に進める。
【００８３】
つまり、ライセンス管理装置１は、ライセンスサーバ（不図示）から第１のソフトウェアのライセンスを割り当てられたことを意味する。
【００８４】
ステップＳ６：
ライセンス管理部２は、第１のライセンス情報１０１を受信するのに応じて、第１のソフトウェアに対応するライセンスの排他処理を利用可能な状態にする。
【００８５】
ここでは、第１のソフトウェアに関するライセンスの排他処理には、一例として、セマフォを利用することとする。
【００８６】
尚、セマフォとは、1つ以上のプロセス間において排他処理が必要な資源毎にその資源を管理するカウンタ（カウンタ機能）である。また、セマフォは、係るカウンタに資源の数（資源数）を設定する。
【００８７】
ここで、係る排他処理が必要な資源は、第１のソフトウェアのライセンスとする。また、係る資源数は、第１のソフトウェアのライセンス数とする。
【００８８】
資源を使用する場合に、プロセスは、セマフォの資源数を「１」減算する。一方で、資源を解放（解除、返却）する場合に、プロセスは、セマフォの資源数を「１」加算する。また、セマフォの資源数が「０」の場合に、プロセスは、待ち状態に移行する。
【００８９】
尚、セマフォは、例えば、計算機において動作する全てのプロセスから参照できることとする。
【００９０】
より具体的に、ライセンス管理部２は、第１のライセンス情報１０１を受信するのに応じて、第１のソフトウェアに対応するセマフォを利用可能な状態にする。
【００９１】
次に、ライセンス管理部２が第１のソフトウェアに対応するセマフォを利用可能な状態にする動作を説明する。
【００９２】
ライセンス管理部２は、第１のライセンス情報１０１に基づいて、係るセマフォの資源数をセットする。
【００９３】
即ち、ライセンス管理部２は、第１のライセンス情報１０１に基づいて、第１のソフトウェアのライセンス数の資源数として「１」をセットする。尚、初めて資源数をセットする際には、ライセンス管理部２は、資源数を初期化（リセット）すると共に、係る資源数をセットする。
【００９４】
また、ライセンス管理部２は、例えば、２つの第１のライセンス情報１０１を受信する場合に、セマフォの資源数として「２」をセットする。
【００９５】
また、ライセンス管理部２は、新たに（つまり、追加で）第１のライセンス情報１０１を受信する場合に、新たに取得した第１のソフトウェアのライセンス数を、既にセットした資源数に加算する。
【００９６】
その場合に、例えば、ライセンス管理部２は、係る資源数に新たに取得した第１のソフトウェアのライセンス数を加算する操作と上述した排他処理とを、不可分な操作として実行することとする。
【００９７】
一方で、ライセンス管理部２は、ライセンスサーバ（不図示）に第１のソフトウェアのライセンスを解放（解除）する場合に、既にセットした資源数から、解放したライセンス数を減算する。
【００９８】
尚、上述した実施形態では、説明の便宜上、一例として、第１のソフトウェアのライセンスの排他処理には、セマフォを利用する構成を例に説明した。しかしながら本発明に係る実施形態は、係る構成に限定されない。排他処理には、例えば、ミューテックス等の一般的に知られた制御方法を採用してもよい。但し、本実施形態を例に説明する本発明は、これらに限定されない（以下、各実施形態においても同様）。
【００９９】
ステップＳ７：
実行制御部３は、第１のソフトウェアのライセンスが割り当てられることを要求する第１のプロセスの属性情報を設定すると共に、第１のプロセスを実行可能な状態に制御する。
【０１００】
尚、実行制御部３が第１のプロセスの属性情報を設定する技術自体は、現在では一般的な技術を採用することができるので、本実施形態における詳細な説明は省略する（以下、各実施形態においても同様）。
【０１０１】
これにより、実行可能状態となった第１のプロセスは、一般的に知られた標準スケジューラ（ジョブスケジューラ、単に「スケジューラ」とも記す）におけるスケジューリングによってプロセッサ（例えば、図９に示すＣＰＵ３０１）を割り当てられた際に、第１のソフトウェアを実行することができる。
【０１０２】
ここで、より具体的に、一例として、第１のプロセスが第１のソフトウェアのライセンスの割り当て要求する際の動作について説明する。
【０１０３】
第１のプロセスにおいて、第１のプロセスの属性情報には、第１のソフトウェアのライセンスに関する排他処理をセマフォによって実行するように設定されている。
【０１０４】
そのため、第１のプロセスは、第１のソフトウェアを実行する際に、第１のソフトウェアのライセンスを、1つ以上のプロセス間でセマフォを利用して排他処理を実行する。
【０１０５】
ここで、既に設定された資源数が「１」以上の場合に、第１のプロセスは、セマフォの資源数を「１」減算すると共に、ライセンス管理部２から第１のソフトウェアのライセンスを取得する。
【０１０６】
即ち、第１のプロセスには、ライセンス管理部２によって第１のソフトウェアのライセンスが割り当てられる。
【０１０７】
また、既に設定された資源数が「０」の場合、第１のプロセスは、資源数の取得に失敗する。そのため、第１のプロセスは、待ち状態に移行する。即ち、第１のプロセスは、係るライセンスを取得することができない。
【０１０８】
この場合に、例えば、第１のプロセスと異なる第２のプロセスから第１のソフトウェアのライセンスが解放されると共に、セマフォの資源数が「１」以上になった場合に、待ち状態の第１のプロセスは、セマフォの資源数を「１」減算すると共に、ライセンス管理部２から係るライセンスを取得することができる。
【０１０９】
次に、以下の説明において、説明の便宜上、一例として、第１のプロセスが第１のソフトウェアのライセンスを解放する際のライセンス管理装置１の動作について説明する。
【０１１０】
図３は、本発明の第１の実施形態におけるライセンス管理装置１が行う第１のプロセスが第１のソフトウェアのライセンスを解放する際の動作を示すフローチャートである。
【０１１１】
図３に示すフローチャートに沿ってライセンス管理装置１の動作手順を説明する。
【０１１２】
ステップＳ１１：
ライセンス管理部２は、第１のプロセスが第１のソフトウェアのライセンスを解放するのに応じて、第１のソフトウェアのライセンスの割り当てを要求したプロセス数と、ライセンス管理部２が管理している（つまり、取得した）ライセンス数とを比較する。
【０１１３】
ステップＳ１２において「ＹＥＳ」：
ライセンス管理部２は、プロセス数とライセンス数とを比較した結果、プロセス数がライセンス数以下の場合に、処理をステップＳ１３に進める。
【０１１４】
ステップＳ１２において「ＮＯ」：
ライセンス管理部２は、プロセス数とライセンス数とを比較した結果、プロセス数がライセンス数より大きい場合に、処理をステップＳ１４に進める。
【０１１５】
即ち、プロセス数がライセンス数より大きいとは、第１のソフトウェアのライセンスの割り当て待ち（待ち状態）のプロセスが存在することを意味する。つまり、複数のプロセスは、係るライセンスを共有していることを意味する。
【０１１６】
ステップＳ１３：
ライセンス管理部２は、ライセンスサーバ（不図示）に第１のソフトウェアのライセンスを解放したことと、第１のプロセスにおいて係るライセンスの利用が終了したこととを通知する。
【０１１７】
さらに、ライセンス管理部２は、セマフォの資源数を「０」に設定する。
【０１１８】
ステップＳ１４：
ライセンス管理部２は、ライセンスサーバ（不図示）に第１のプロセスにおいて第１のソフトウェアのライセンスの利用が終了したことを通知する。
【０１１９】
ここで、上述したように、セマフォの資源数は、プロセスから第１のソフトウェアのライセンスが解放されるため、「１」になる。そのため、例えば、待ち状態の第１のプロセスは、セマフォにおける資源数を「１」減算すると共に、ライセンス管理部２から係るライセンスを取得することができる。
【０１２０】
即ち、待ち状態の第１のプロセスは、ライセンスサーバから、係るライセンスの割り当てを待つことなく第１のソフトウェアを実行することができる。
【０１２１】
つまり、ライセンス管理装置１は、ライセンスの割り当てを効率的に実施することができる。
【０１２２】
また、ライセンスサーバは、第１のプロセスにおいてライセンスの利用が終了したことを受信することによって、ライセンスの割り当て要求した第１のプロセスにおける処理が終了したことを認識することができる。
【０１２３】
このように本実施の形態に係るライセンス管理装置１によれば、割り当て可能なライセンス数に限りがある場合であっても、そのライセンスの割り当てを効率的に実施することができる。その理由は、以下に述べる通りである。
【０１２４】
その理由は、ライセンス管理装置１は、ライセンス管理されたソフトウェア毎に割り当てられたライセンスを排他制御する。これにより、ライセンスの割り当て要求するプロセスは、ライセンスサーバからライセンスを割り当てられるのを待つことなく利用することができるからである。
【０１２５】
また、ライセンス管理装置１は、複数のプロセスにおいてライセンスを利用する場合であっても、セマフォによってライセンスの排他制御を行っているために、ライセンスの実行条件（利用条件）を満たすと共に、上述した処理を実行することができる。
【０１２６】
さらに、ライセンス管理装置１によれば、ライセンスの利用効率を向上することができる。
【０１２７】
その理由は、ライセンス管理装置１は、セマフォによってライセンスを管理するからである。より具体的に、ソフトウェアの処理時間が長くなる場合や実行途中にユーザが何らかの理由で処理を中断する場合であっても、係る処理を実行していたプロセスは、その処理において利用していたライセンスを解放する。さらに、他のプロセスは、解放されたライセンスを利用することができるからである。
【０１２８】
即ち、ライセンス管理装置１は、ライセンスの割り当て要求した全てのプロセスに対してライセンスを公平に提供することができる。
【０１２９】
＜第２の実施形態＞
次に、上述した本発明の第１の実施形態に係るライセンス管理装置１を基本とする第２の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
【０１３０】
本発明の第２の実施形態におけるライセンス管理装置１０について、図４を参照して説明する。
【０１３１】
図４は、本発明の第２の実施形態におけるライセンス管理装置１０の構成を示すブロック図である。
【０１３２】
図４において、ライセンス管理装置１０は、ライセンス管理部１１を有する点が第１の実施形態におけるライセンス管理装置１と異なる。
【０１３３】
ライセンス管理部１１は、第１の実施形態において説明したライセンス管理部２に対して、さらに解放要求情報１０２を受信するのに応じて、第１のソフトウェアのライセンスを解放（解除）する。
【０１３４】
ここで、解放要求情報１０２とは、ライセンス管理部１１に第１のソフトウェアのライセンスの解放処理を依頼する情報と、その解放を依頼するライセンス数とを含む。
【０１３５】
より具体的に、ライセンス管理部１１は、解放要求情報１０２に基づいて、第１のソフトウェアに対応するセマフォに設定された資源数から、解放するライセンス数を適切なタイミングで減算する。
【０１３６】
ここで、適切なタイミングとは、プロセスが実行を中断すると共に、ライセンスの解放後とする。
【０１３７】
さらに、ライセンス管理部１１は、例えば、ライセンスサーバ（不図示）に第１のソフトウェアのライセンスを解放したこと通知する。
【０１３８】
これにより、例えば、ライセンスサーバは、第１のソフトウェアのライセンスの割り当て要求を受け付けた際に割り当て可能なライセンスが無い場合であっても、解放要求情報１０２に基づいて、ライセンス管理部１１からライセンスが解放されるため、速やかにライセンスの割り当て要求元に対して、係るライセンスを割り当てることが可能となる。
【０１３９】
このように本実施の形態に係るライセンス管理装置１０によれば、上述した第１の実施形態において説明した効果を享受できると共に、さらに、ライセンス管理装置１０は、長時間ライセンスを占有するプロセスがあった場合であっても、解放要求情報１０２に基づいてライセンスを効率的に解放（解除）することができる。
【０１４０】
その理由は、ライセンス管理部１１は、解放要求情報１０２を受信するのに応じて、ライセンスを解放することができるからである。
【０１４１】
＜第３の実施形態＞
次に、上述した本発明の第２の実施形態に係るライセンス管理装置１０を基本とする第３の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
【０１４２】
本発明の第３の実施形態におけるライセンス管理システム５０について、図２、図３、図５及び図６を参照して説明する。
【０１４３】
図５は、本発明の第３の実施形態におけるライセンス管理装置１０を含むライセンス管理システム５０の構成を示すブロック図である。
図５において、ライセンス管理システム５０は、大別して、ライセンスサーバ５１とライセンス管理装置１０を含む計算機５２とを有する。
【０１４４】
ライセンスサーバ５１は、ライセンス制御部５３とライセンス管理情報部５４とを有する。
【０１４５】
ライセンス制御部５３は、計算機５２から第１のソフトウェアのライセンスの割り当て要求を受け付けるのに応じて、ライセンス管理情報部５４に格納された情報に基づいて、係るライセンスの割り当て可否を判定する。
【０１４６】
ライセンス制御部５３は、係るライセンスの割り当て可否を判定した結果、そのライセンスを割り当て可能と判定した場合に、計算機５２に第1のライセンス情報１０１を通知する。
【０１４７】
一方で、ライセンス制御部５３は、係るライセンスの割り当て可否を判定した結果、そのライセンスを割り当てできないと判定した場合に、ライセンス管理情報部５４に格納された情報に基づいて、第１のソフトウェアのライセンスの解放を依頼する計算機を特定する。
【０１４８】
さらに、ライセンス制御部５３は、特定した計算機に対して第１のソフトウェアのライセンスの解放要求（解放要求情報１０２）を通知する（ライセンス制御部５３、ライセンス管理情報部５４については、本実施形態において後述する）。
【０１４９】
また、図５に示すライセンスサーバ５１と計算機５２とは、通信ネットワーク１１０を介して、通信可能である。
【０１５０】
通信ネットワーク１１０は、例えば、携帯電話事業者が所有する各種通信回線、インターネットサービスプロバイダ等が提供するインターネット等の一般的な通信回線である。但し、本実施形態に係る実施例を例に説明する本発明は、これらに限定されない（以下の実施形態においても同様）。
【０１５１】
尚、以下の説明において、説明の便宜上、計算機５２は、１台の計算機５２が通信ネットワーク１１０に接続する構成を例に説明した。しかしながら本発明に係る実施形態は、係る構成に限定されず、計算機５２は、１台以上の計算機５２が通信ネットワーク１１０に接続する構成を採用してもよい。
【０１５２】
また、ライセンスサーバ５１が計算機５２から第１のソフトウェアのライセンスの割り当て要求を受信するのに応じて、第１のライセンス情報１０１を計算機５２に通知する技術自体は、現在では一般的な技術を採用することができるので、本実施形態における詳細な説明は省略する（以下、各実施形態においても同様）。
【０１５３】
次に、以下の説明において、説明の便宜上、一例として、本実施形態におけるライセンス管理装置１０をライセンス管理システム５０に適用した際の動作について説明する。
【０１５４】
ここでは、説明の便宜上、計算機５２のライセンス管理装置１０は、第１のソフトウェアのライセンスの割り当てを要求することとする。
【０１５５】
ライセンス管理部１１は、第１のプロセスから第１のソフトウェアのライセンスの割り当て要求を受け付けるのに応じて、ライセンスサーバ５１にライセンスの割り当て要求を通知する（図２に示すステップＳ１）。
【０１５６】
次に、ライセンス管理部１１は、係るライセンスを利用する第１のプロセスと異なるプロセス（第２のプロセス）の有無を判定する（図２に示すステップＳ２）。
【０１５７】
ライセンス管理部１１は、ライセンスを利用する第２のプロセスの有無を判定した結果、ライセンスを利用する第２のプロセスが無いと判定する（図２に示すステップＳ３において「ＮＯ」）。
【０１５８】
ライセンス管理部１１は、ライセンスサーバ５１から通信部（不図示）を介して第１のライセンス情報１０１を受信したか否かを判定する（図２に示すステップＳ４）。
【０１５９】
ここでは、ライセンス管理部１１は、ライセンスサーバ５１から第１のライセンス情報１０１を受信することとする。尚、説明の便宜上、ライセンスサーバ５１から第１のライセンス情報１０１を通知する動作については、本実施例において後述する。
【０１６０】
ライセンス管理部１１は、判定した結果、第１のライセンス情報１０１を受信していると判定する（図２に示すステップＳ５において「ＹＥＳ」）。
【０１６１】
さらに、ライセンス管理部１１は、第１のソフトウェアに対応するセマフォを利用可能な状態にする（図２に示すステップＳ６）。
【０１６２】
尚、ライセンス管理部１１が第１のソフトウェアに対応するセマフォを利用可能な状態にする動作は、第１の実施形態において説明した動作と同様である。そのため、重複する説明は省略する。
【０１６３】
実行制御部３は、第１のソフトウェアのライセンスが割り当てられることを要求する第１のプロセスの属性情報を設定すると共に、第１のプロセスを実行可能な状態に制御する（図２に示すステップＳ７）。
【０１６４】
これにより、実行可能状態となった第１のプロセスは、標準スケジューラにおけるスケジューリングによってプロセッサを割り当てられた際に、第１のソフトウェアを実行する。
【０１６５】
次に、図６に示すフローチャートに沿って計算機５２から第１のソフトウェアのライセンスの割り当て要求を受け付けた際のライセンスサーバ５１の動作手順を説明する。
【０１６６】
図６は、本発明の第３の実施形態におけるライセンスサーバ５１が行う計算機５２から第１のソフトウェアのライセンスの割り当て要求を受け付けた際の動作を示すフローチャートである。
【０１６７】
ここで、以下の説明において、説明の便宜上、一例として、ライセンスサーバ５１は、計算機５２から係るライセンスの割り当て要求に対して割り当て可能なライセンスが無いこととする。
【０１６８】
尚、説明の便宜上、上述した構成を例に説明するが、本実施形態を例に説明する本発明は、この構成には限定されない（以下の実施形態においても同様）。
【０１６９】
ステップＳ２１：
ライセンスサーバ５１のライセンス制御部５３は、計算機５２から第１のソフトウェアのライセンスの割り当て要求を受け付けるのに応じて、ライセンスサーバ５１に格納された契約情報（不図示）に基づいて、計算機５２が第１のソフトウェアの利用条件を満たすか否かを判定する。
【０１７０】
ここで、契約情報とは、一般的に知られたライセンス管理されたソフトウェアにおける利用可能なライセンス数や計算機毎に設定された係るソフトウェアの利用可否等の情報を含む。但し、本実施形態を例に説明する本発明は、これらに限定されない（以下、各実施形態においても同様）。
【０１７１】
ステップＳ２２において「ＹＥＳ」：
ライセンス制御部５３は、契約情報に基づいて、計算機５２が第１のソフトウェアの利用条件を満たすか否かを判定した結果、計算機５２が第１のソフトウェアの利用条件を満たすと判定した場合に、処理をステップＳ２３に進める。
【０１７２】
ステップＳ２２において「ＮＯ」：
ライセンス制御部５３は、契約情報に基づいて、計算機５２が第１のソフトウェアの利用条件を満たすか否かを判定した結果、計算機５２が第１のソフトウェアの利用条件を満たさないと判定した場合に、処理を終了する。
【０１７３】
ステップＳ２３：
ライセンス制御部５３は、ライセンス管理情報部５４に格納されたライセンス管理情報に基づいて、第１のソフトウェアのライセンスを割り当て可能か否か判定する。
【０１７４】
ここでは、説明の便宜上、一例として、ライセンス制御部５３は、係るライセンスを割り当てできないこととする。
【０１７５】
ステップＳ２４において「ＹＥＳ」：
ライセンス制御部５３は、計算機５２からのライセンスの割り当て要求に対してライセンスを割り当て可能か否か判定した結果、ライセンスを割り当て可能と判定した場合に、処理をステップＳ２５に進める。
【０１７６】
ステップＳ２４において「ＮＯ」：
ライセンス制御部５３は、計算機５２からのライセンスの割り当て要求に対してライセンスを割り当て可能か否か判定した結果、ライセンスを割り当てできないと判定した場合に、処理をステップＳ２７に進める。
【０１７７】
ステップＳ２５：
ライセンス制御部５３は、計算機５２に第１のソフトウェアのライセンスを割り当てる。即ち、ライセンス制御部５３は、計算機５２に第１のライセンス情報１０１を通知する。
【０１７８】
ステップＳ２６：
ライセンス制御部５３は、ライセンス管理情報部５４にライセンスにおける管理情報（ライセンス管理情報）を格納する。
【０１７９】
ここで、ライセンス管理情報とは、ライセンス情報と、計算機５２から第１のソフトウェアのライセンスの割り当て要求を受け付けた時刻（受付時刻）と、計算機５２を識別可能な識別情報と、ライセンス管理部１１にライセンスの割り当て要求した第１のプロセスを識別可能なプロセスＩＤと、ライセンスを割り当てた時刻（割当時刻）と、ライセンスを解放した時刻（解放時刻）とが関連付けられた情報を含む。
【０１８０】
尚、解放時刻とは、計算機５２のライセンス管理部１１から第１のプロセスにおいてライセンスの利用が終了したことを示す通知（図３に示すステップＳ１３及びＳ１４）を受信した際の時刻とする。
【０１８１】
ステップＳ２７：
ライセンス制御部５３は、ライセンス管理情報部５４を参照すると共に、ライセンス管理情報部５４のライセンス管理情報に基づいて、ライセンスの解放を依頼する計算機を特定する。
【０１８２】
尚、ライセンス制御部５３がライセンス管理情報部５４に格納された情報に基づいて、ライセンスの解放を依頼する計算機を特定する処理は、例えば、割り当て可能なライセンスが無く、且つ計算機からライセンスの割り当て要求を受け付けた際に行うようにしてもよい。
【０１８３】
また、係る処理は、所定の間隔において定期的に利用開始時刻から長時間使用している計算機を特定するようにしてもよい。
【０１８４】
さらに、係る処理は、所定の期間における割り当て時間から閾値を算出すると共に、その閾値を超える時間使用している計算機を特定するようにしてもよい。
【０１８５】
その場合に、所定の期間における割り当て時間は、複数の計算機においてライセンスを利用する場合を考慮することとする。但し、本実施形態を例に説明する本発明は、これらに限定されない（以下、各実施形態においても同様）。
【０１８６】
ステップＳ２８：
ライセンス制御部５３は、第１のソフトウェアのライセンスの割り当て要求した計算機５２と特定した計算機とを比較する。
【０１８７】
より具体的に、一例として、ライセンス制御部５３は、計算機５２の識別情報と特定した計算機の識別情報とを比較する。
【０１８８】
これにより、ライセンス制御部５３は、係るライセンスの割り当て要求した計算機５２にライセンスの解放を依頼することを防ぐことができる。
【０１８９】
ここでは、説明の便宜上、一例として、特定した計算機と計算機５２とが異なることとする。
【０１９０】
ステップＳ２９において「ＹＥＳ」：
ライセンス制御部５３は、第１のソフトウェアのライセンスの割り当て要求した計算機５２と特定した計算機とを比較した結果、特定した計算機と計算機５２とが同じ計算機の場合に、処理をステップＳ３０に進める。
【０１９１】
ステップＳ２９において「ＮＯ」：
ライセンス制御部５３は、第１のソフトウェアのライセンスの割り当て要求した計算機５２と特定した計算機とを比較した結果、特定した計算機と計算機５２とが異なる計算機の場合に、処理をステップＳ３１に進める。
【０１９２】
ステップＳ３０：
ライセンス制御部５３は、管理情報をライセンス管理情報部５４に格納する。
【０１９３】
より具体的に、ライセンス制御部５３は、受付時刻と、計算機５２を識別可能な識別情報と、プロセスＩＤとをライセンス管理情報部５４に格納する。
【０１９４】
ステップＳ３１：
ライセンス制御部５３は、特定した計算機に第１のソフトウェアのライセンスの解放要求（解放要求情報１０２）を通知すると共に、処理をステップＳ２３に進める。
【０１９５】
ここで、ライセンス制御部５３によって特定された計算機は、解放要求情報１０２を受信すると共に、係るライセンスを解放することとする。
【０１９６】
そのため、ライセンス制御部５３は、計算機５２に第１のライセンス情報１０１を通知することができる。
【０１９７】
尚、特定された計算機が解放要求情報１０２を受信するのに応じて、ライセンスを返却する動作は、第２の実施形態において説明した動作と同様である。そのため、重複する説明は省略する。
【０１９８】
また、上述した実施形態では、説明の便宜上、一例として、ライセンスサーバ５１は、ライセンス制御部５３がライセンス管理情報部５４に格納された情報に基づいて、各種処理を実行する構成を例に説明した。しかしながら本発明に係る実施形態は、係る構成に限定されない。
【０１９９】
ライセンスサーバ５１は、一般的に知られたフローティングライセンスによってライセンスを管理するライセンスサーバを採用してもよい。この場合であっても、第１の実施形態において説明した効果を享受できる。
【０２００】
このように本実施の形態に係るライセンス管理装置１０によれば、上述した第１及び第２の実施形態において説明した効果を享受できると共に、また、ライセンス管理装置１０は、例えば、一般的に知られたパーソナルコンピュータや携帯端末等においてライセンス管理されたソフトウェアを実行することが可能な計算機に適用して好適である。
さらに、ライセンス管理システム５０は、長時間ライセンスを占有する計算機があった場合であっても、ライセンスの割り当てを効率的に実施することができる。
【０２０１】
その理由は、ライセンスサーバ５１のライセンス制御部５３は、ライセンス管理情報部５４に格納された情報に基づいて、長時間ライセンスを使用している計算機を特定することができる。また、ライセンス制御部５３は、特定した計算機がライセンスを解放するように解放要求情報１０２を通知することができるからである。
【０２０２】
また、ライセンス管理部１１は、受信した解放要求情報１０２に基づいて、ライセンスを解放することができるからである。
【０２０３】
＜第４の実施形態＞
次に、上述した本発明の第３の実施形態に係るライセンス管理装置１０を基本とする第４の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
【０２０４】
本発明の第４の実施形態におけるライセンス管理装置２０について、図２、図７及び図８を参照して説明する。
【０２０５】
図７は、本発明の第４の実施形態におけるライセンス管理装置２０の構成を示すブロック図である。
【０２０６】
図７において、ライセンス管理装置２０は、ライセンス管理部２１と実行制御部２２とを有する。
【０２０７】
図８は、本発明の第４の実施形態におけるライセンス管理装置２０が行う第１のプロセスから第１のソフトウェアのライセンスの割り当て要求を受け付けた際の動作を示すフローチャートである。
【０２０８】
図８に示すフローチャートに沿ってライセンス管理装置２０の動作手順を説明する。
【０２０９】
尚、図８に示すステップＳ１乃至ステップＳ７における動作は、第１の実施形態において説明した図２に示すステップＳ１乃至ステップＳ７における動作と同様である。そのため、重複する説明は省略する。
【０２１０】
ここで、ライセンス管理装置２０は、不図示のライセンスサーバ（例えば、図５に示すライセンスサーバ５１）から第２のライセンス情報１０３を受信することとする。
【０２１１】
また、第２のライセンス情報１０３は、第１の実施形態において説明した第１のライセンス情報１０１に、さらに、第１のソフトウェアのライセンスの利用形態を示す利用種別情報を含む。
【０２１２】
利用種別情報とは、第１のソフトウェアのライセンスをプロセスが占有して利用するか否かを示す。
【０２１３】
ステップＳ４１：
ライセンス管理部２１は、第２のライセンス情報１０３を受信したか否かを判定する。
【０２１４】
ステップＳ４２において「ＮＯ」：
ライセンス管理部２１は、第２のライセンス情報１０３を受信したか否かを判定した結果、第２のライセンス情報１０３を受信していないと判定した場合に、処理をステップＳ４１に進める。
【０２１５】
ステップＳ４２において「ＹＥＳ」：
ライセンス管理部２１は、第２のライセンス情報１０３を受信したか否かを判定した結果、第２のライセンス情報１０３を受信していると判定した場合に、処理をステップＳ４３に進める。
【０２１６】
ステップＳ４３：
ライセンス管理部２１は、第２のライセンス情報１０３に含まれる利用種別情報に基づいて、第１のソフトウェアのライセンスの排他処理を行うか否かを判定する。
【０２１７】
ステップＳ４４において「ＹＥＳ」：
ライセンス管理部２１は、係るライセンスの排他処理を行うか否かを判定した結果、ライセンスの排他処理を行うと判定した場合に、処理をステップＳ６に進める。
【０２１８】
ステップＳ４４において「ＮＯ」：
ライセンス管理部２１は、係るライセンスの排他処理を行うか否かを判定した結果、ライセンスの排他処理を行なわない判定した場合に、処理をステップＳ４５に進める。即ち、この場合、ライセンス管理部２１は、割り当たられたライセンスをセマフォによって管理しないことを意味する。
【０２１９】
ステップＳ４５：
実行制御部２２は、第１のソフトウェアのライセンスの割り当てを要求する第１のプロセスを実行可能状態にする。
【０２２０】
これにより、ライセンスを割り当てられたプロセスは、ライセンスを占有して利用することができる。
【０２２１】
尚、ライセンスサーバのライセンス制御部５３（不図示）は、ライセンス管理部２１からライセンスの割り当て要求を受け付けるのに応じて、例えば、プロセスＩＤに基づいて、ライセンス種別情報を参照する。
【０２２２】
次に、ライセンス制御部５３は、ライセンス種別情報からライセンスＩＤと関連付けられたライセンスの利用種別情報を取得する。
【０２２３】
さらに、ライセンス制御部５３は、取得した利用種別情報を第２のライセンス情報１０３に付加すると共に、第２のライセンス情報１０３をライセンス管理部２１に通知する構成を採用してもよい。
【０２２４】
ここで、ライセンス種別情報とは、プロセスＩＤと、ライセンスの利用種別情報とが関連付けられた情報を含む。
【０２２５】
尚、上述した実施形態では、説明の便宜上、一例として、ライセンス種別情報には、プロセスＩＤ毎に占有してライセンスを利用するか否かを示す情報（利用種別情報）を含む構成を例に説明した。しかしながら本発明に係る実施形態は、係る構成に限定されない。
【０２２６】
ライセンス種別情報には、例えば、利用者と、その利用者毎に設定された優先度と、ライセンスを占有するか否かを示す情報とを含む構成を採用してもよい。
【０２２７】
これにより、例えば、優先度の低い利用者がライセンスを利用しており、その利用者の利用種別がライセンスを占有して利用しないことを示す場合に、優先度が高く、利用種別がライセンスを占有して利用することを示す利用者からライセンスの割り当て要求を受け付けたライセンス制御部５３は、優先度の低い利用者に解放要求情報１０２を通知する。
【０２２８】
次に、優先度の低い利用者からライセンスの解放を受け付けたライセンス制御部５３は、優先度が高く、利用種別がライセンスを占有して利用することを示す利用者にライセンスを割り当てることができる。
【０２２９】
このように本実施の形態に係るライセンス管理装置２０によれば、上述した各実施形態において説明した効果を享受できると共に、さらに、ライセンス管理装置２０は、プロセスにおけるライセンスの利用形態に応じて、ライセンスの割り当てを効率的に実施することができる。
【０２３０】
その理由は、ライセンス管理装置２０のライセンス管理部２１は、第２のライセンス情報１０３に含まれる利用種別情報に基づいて、ライセンスの排他処理を行うか否かを判定する。さらに、ライセンス管理部２１は、ライセンスの排他処理を行う場合のみセマフォを利用可能な状態にする。一方で、ライセンス管理部２１は、ライセンスの排他処理を行わない場合には、セマフォを利用可能な状態にしない。これにより、ライセンスを占有して利用するプロセスがある場合に、ライセンス管理部２１は、プロセスのライセンスの利用形態に合わせてライセンスの割り当てを行うことができるからである。
【０２３１】
また、本実施の形態に係るライセンス管理装置２０によれば、利用形態に合わせたライセンスの利用料（価格）を設定することができる。その理由は、ライセンス管理されたソフトウェアを利用する環境に応じて、様々なライセンス形態を提供することができるからである。
【０２３２】
（ハードウェア構成例）
上述した実施形態において図１、図４、図５、図７に示した各部は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図９を参照して説明する。
【０２３３】
図９は、本発明の模範的な実施形態に係るライセンス管理装置を実行可能な情報処理装置３００（コンピュータ）の構成を例示的に説明する図である。即ち、図９は、図１に示したライセンス管理装置１、或いは、図４に示したライセンス管理装置１０、図５に示したライセンス管理システム５０、図７に示したライセンス管理装置２０の全体または一部のライセンス管理装置を実現可能なサーバ等のコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【０２３４】
図９に示した情報処理装置３００は、ＣＰＵ（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）３０１、ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）３０２、ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）３０３、ハードディスク３０４（記憶装置）、並びに外部装置との通信インタフェース（Ｉｎｔｅｒｆａｃｅ：以降、「Ｉ／Ｆ」と称する）３０５、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記憶媒体３０７に格納されたデータを読み書き可能なリーダライタ３０８を備え、これらの構成がバス３０６（通信線）を介して接続された一般的なコンピュータである。
【０２３５】
そして、上述した実施形態を例に説明した本発明は、図９に示した情報処理装置３００に対して、その実施形態の説明において参照したブロック構成図（図１、図４、図５、図７）或いはフローチャート（図２、図３、図６、図８）の機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、当該ハードウェアのＣＰＵ３０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータ・プログラムは、読み書き可能な揮発性の記憶メモリ（ＲＡＭ３０３）またはハードディスク３０４等の不揮発性の記憶デバイスに格納すれば良い。
【０２３６】
また、前記の場合において、当該ハードウェア内へのコンピュータ・プログラムの供給方法は、ＣＤ−ＲＯＭ等の各種記憶媒体３０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード或いは、そのコードが格納された記憶媒体３０７によって構成されると捉えることができる。
【０２３７】
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した実施形態及びその実施例により例示的に説明した本発明は、以下には限らない。即ち、
（付記１）
1つ以上の第1のプロセスから、該第1のプロセスが実行するソフトウェアのライセンスの割り当て要求を受付けるのに応じて、ライセンスサーバに前記ライセンスの割り当てを要求し、前記ライセンスを利用する前記第1のプロセスとは異なる第２のプロセスの有無を判定し、前記第２のプロセスが無い場合に、前記ライセンスの使用を許可する情報を含む第１のライセンス情報を受信したか否かを判定し、前記第１のライセンス情報を受信したと判定した場合に、前記ソフトウェアに対応する前記ライセンスの排他処理を利用可能な状態にするライセンス管理部と、
前記第１のプロセスの属性情報に前記排他処理を実行するよう指示する情報を設定する実行制御部と、
を備えることを特徴とするライセンス管理装置。
（付記２）
前記ライセンス管理部は、
前記第１のプロセスが前記ライセンスを解除する際に、前記ライセンスの割り当てを要求したプロセス数と前記ライセンスサーバから割り当てられたライセンス数とを比較し、該プロセス数が該ライセンス数以下の場合に、前記ライセンスサーバに前記第１のプロセスが前記ライセンスを解除し、そのライセンスの利用を終了したことを通知し、
該プロセス数が該ライセンス数より多い場合に、前記ライセンスサーバに前記第１のプロセスが前記ライセンスの利用を終了したことを通知することを特徴とする付記１に記載のライセンス管理装置。
（付記３）
前記ライセンス管理部は、
前記ライセンスサーバから前記ライセンスの解除を要求する情報を含む解放要求情報を受信するのに応じて、該ライセンスを前記ライセンスサーバに解除することを特徴とする付記１または付記２に記載のライセンス管理装置。
（付記４）
前記排他処理は、セマフォであることを特徴とする付記１に記載のライセンス管理装置。
（付記５）
前記ライセンス管理部は、
前記ライセンスサーバから前記ライセンスの使用を許可する情報と前記ライセンスの利用形態を示す利用種別情報とを含む第２のライセンス情報を受信するのに応じて、前記利用種別情報に基づいて、前記排他処理を行うか否かを判定することを特徴とする付記１乃至付記５の何れかに記載のライセンス管理装置。
（付記６）
受信した前記ライセンスの割り当て要求に応じて、前記第１のライセンス情報を通知するライセンスサーバと、
付記１乃至付記５の何れかに記載されたライセンス管理装置を含む計算機と、
を備えることを特徴とするライセンス管理システム。
（付記７）
前記ライセンスサーバは、
前記計算機からの前記ライセンスの割り当て要求に応じて、ライセンス情報を含むライセンス管理情報に基づいて、前記ライセンスを割り当て可能か否かを判定し、
前記ライセンスを割り当て可能と判定した場合に、前記第１のライセンス情報を前記計算機に通知し、
ライセンスを割り当てできないと判定した場合に、前記ライセンス管理情報に基づいて、前記解放要求情報を通知する計算機を特定し、前記特定した計算機と前記割り当て要求した計算機とを比較した結果に応じて、前記解放要求情報を前記特定した計算機に通知するライセンス制御部を備えることを特徴とする付記６に記載のライセンス管理システム。
（付記８）
前記ライセンス管理情報は、
前記ライセンス情報と、前記計算機からライセンスの割り当て要求を受付けた受付時刻と、前記計算機を識別可能な識別情報と、前記第１のプロセスを識別可能なプロセスＩＤと、前記計算機に前記ライセンスを割り当てた割当時刻と、前記計算機から前記ライセンスの解除を受け付けた解放時刻とが関連付けられた情報を含むことを特徴とする付記７に記載のライセンス管理システム。
（付記９）
1つ以上の第1のプロセスから、該第1のプロセスが実行するソフトウェアのライセンスの割り当て要求を受付けるのに応じて、ライセンスサーバに前記ライセンスの割り当てを要求し、前記ライセンスを利用する前記第1のプロセスとは異なる第２のプロセスの有無を判定し、前記第２のプロセスが無い場合に、前記ライセンスの使用を許可する情報を含む第１のライセンス情報を受信したか否かを判定し、前記第１のライセンス情報を受信したと判定した場合に、前記ソフトウェアに対応する前記ライセンスの排他処理を利用可能な状態にし、
前記第１のプロセスの属性情報に前記排他処理を実行するよう指示する情報を設定することを特徴とするライセンス管理方法。
（付記１０）
前記第１のプロセスが前記ライセンスを解除する際に、前記ライセンスの割り当てを要求したプロセス数と前記ライセンスサーバから割り当てられたライセンス数とを比較し、該プロセス数が該ライセンス数以下の場合に、前記ライセンスサーバに前記第１のプロセスが前記ライセンスを解除し、そのライセンスの利用を終了したことを通知し、
該プロセス数が該ライセンス数より多い場合に、前記ライセンスサーバに前記第１のプロセスが前記ライセンスの利用を終了したことを通知することを特徴とする付記９に記載のライセンス管理方法。
（付記１１）
前記ライセンスサーバから前記ライセンスの解除を要求する情報を含む解放要求情報を受信するのに応じて、該ライセンスを前記ライセンスサーバに解除することを特徴とする付記９または付記１０に記載のライセンス管理方法。
（付記１２）
1つ以上の第1のプロセスから、該第1のプロセスが実行するソフトウェアのライセンスの割り当て要求を受付けるのに応じて、ライセンスサーバに前記ライセンスの割り当てを要求し、前記ライセンスを利用する前記第1のプロセスとは異なる第２のプロセスの有無を判定し、前記第２のプロセスが無い場合に、前記ライセンスの使用を許可する情報を含む第１のライセンス情報を受信したか否かを判定し、前記第１のライセンス情報を受信したと判定した場合に、前記ソフトウェアに対応する前記ライセンスの排他処理を利用可能な状態にする機能と、
前記第１のプロセスの属性情報に前記排他処理を実行するよう指示する情報を設定する機能と、
をコンピュータに実現させることを特徴とするコンピュータ・プログラム。
（付記１３）
前記第１のプロセスが前記ライセンスを解除する際に、前記ライセンスの割り当てを要求したプロセス数と前記ライセンスサーバから割り当てられたライセンス数とを比較し、該プロセス数が該ライセンス数以下の場合に、前記ライセンスサーバに前記第１のプロセスが前記ライセンスを解除し、そのライセンスの利用を終了したことを通知し、
該プロセス数が該ライセンス数より多い場合に、前記ライセンスサーバに前記第１のプロセスが前記ライセンスの利用を終了したことを通知する機能
をコンピュータに実現させることを特徴とする付記１２に記載のコンピュータ・プログラム。
【産業上の利用可能性】
【０２３８】
本発明は、上述した各実施形態には限定されない。本発明は、例えば、パーソナルコンピュータ、ＰＯＳ（Ｐｏｉｎｔ＿Ｏｆ＿Ｓａｌｅ）システム、サーバ、携帯端末、複写機、複合機等のライセンス管理されたソフトウェアを搭載する各種の電子機器に適用可能である。
【符号の説明】
【０２３９】
１    ライセンス管理装置
２    ライセンス管理部
３    実行制御部
１０    ライセンス管理装置
１１    ライセンス管理部
２０    ライセンス管理装置
２１    ライセンス管理部
２２    実行制御部
５０    ライセンス管理システム
５１    ライセンスサーバ
５２    計算機
５３    ライセンス制御部
５４    ライセンス管理情報部
１０１    第１のライセンス情報
１０２    解放要求情報
１０３    第２のライセンス情報
１１０    通信ネットワーク
３００    情報処理装置
３０１    ＣＰＵ
３０２    ＲＯＭ
３０３    ＲＡＭ
３０４    ハードディスク
３０５    通信インタフェース
３０６    バス
３０７    記憶媒体
３０８    リーダライタ
【図１】
2014153761.tif 000003
【図２】
2014153761.tif 000004
【図３】
2014153761.tif 000005
【図４】
2014153761.tif 000006
【図５】
2014153761.tif 000007
【図６】
2014153761.tif 000008
【図７】
2014153761.tif 000009
【図８】
2014153761.tif 000010
【図９】
2014153761.tif 000011