説明

JOBキューに連携するライセンス管理システム及び方法

【課題】ライセンスの使用効率を上げると共にライセンス本数の割り当てを動的に変えることができるJOBキューに連携するライセンス管理システム及び方法を提供する。
【解決手段】JOBキューシステムのライセンス管理部は、元のライセンスに対して、別名の複数の仮想ライセンスを作成し、運用時にユーザー毎に仮想ライセンス数を割り振る機能(a)、複数のライセンスを一つにまとめて従属関係を有する別名の仮想ライセンスを設定する機能(b)、元のライセンスに対して、別名の複数の仮想ライセンスを重複して作成し、作成後の仮想ライセンスの合計数を元のライセンス数よりも多く設定する機能(c)を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クライアントから要求されたJOBをネットワーク上の適切なCPUリソースに割り当てて実行させるJOBキューに連携するライセンス管理方法に関する。
【背景技術】
【0002】
従来、クライアントから要求されたジョブをネットワーク上の適切なCPUリソースに割り当てて実行させるジョブキューシステムにライセンス制御を付加したシステムがある(例えば、特許文献1参照)。
【0003】
また、複数のプログラムのライセンスキーを入力して、パッケージ化した1つのライセンスキーを生成する手段を設け、販売者コンピュータでパッケージ化の対象とするライセンスキーの組み合わせをできるようにしたプログラムライセンスキー発行システムがある(例えば、特許文献2参照)。
【特許文献1】特開2004−246592号公報
【特許文献2】特開2002−215253号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のシステムのライセンスは、各ソフトウェアのベンダーのライセンスサーバーで管理され、実際に実行されるJOBとの連携が行われなかった。そのため、実際には使用しない余分なライセンスを用意しなくてはならず、また、同じライセンスをプロジェクトの進行状況に応じて、再分配させることが難しかった。
【0005】
そこで本発明は、ライセンスの使用効率を上げると共に、プロジェクトの進行状況によりライセンス本数の割り当てを動的に変えることができるJOBキューに連携するライセンス管理システム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上述の課題を解決するため、本発明は、各ソフトウェアベンダーのライセンスサーバーで管理されるライセンスに対して、別名の仮想ライセンスを作成し、運用時にユーザー毎に利用可能なライセンス数を割り振ることで、より効率的なライセンスの運用を可能とすることを特徴とする。
【0007】
また、この別名の仮想ライセンスはJOB実行システムと連携しており、ライセンスが必要なJOBが起動するとき自動的に取得され、JOBが終了すると開放される。この機構により、ライセンスの無いときにJOBが実行される事態を防ぐことができる。
【発明の効果】
【0008】
本発明によれば、例えばライセンスAが10本あり、このライセンスをプロジェクトA’2、A’1、A’3にそれぞれ4:2:4のように割り付けることが可能となる。またプロジェクトの進行状況や状況により、2:2:6のように動的にライセンス本数の割り当てを変えることができる(図2(a)の機能)。
【0009】
さらに、ライセンスA’1とA’2、A’3を1個づつまとめて、ライセンスBとして定義することで、ライセンスBを指定するだけでA’1とA’2、A’3を取ることができるようにし、ライセンス指定の手間を省力できる(図2(b)の機能)。
【0010】
また、ライセンス本数10のライセンスを、プロジェクトA’2,A’1、A’3に6:4:6のように割り当て、合計本数をライセンス本数以上に設定することにより、どちらかのプロジェクトがぎりぎりまでライセンスを使用していない場合に、他方のライセンスの重複分を使用できるようにすることでライセンスの使用効率を上げることができる(図2(c)の機能)。
【発明を実施するための最良の形態】
【0011】
次に、本発明の最良の形態について図面を参照して説明する。
【実施例】
【0012】
図1は、本発明の概略システム構成を示す。クラスタシステムでは、JOBを実行するマシン(PC)群4とログインサーバー1とは別に設定され、JOBをライセンス数とマシンリソースを考慮しつつ、適切に振り分ける。負荷分散と実行スケジューリングを行うライセンス数は、ライセンスマネージャが管理する。本発明はユーザー側のクライアントから投入したJOBをPCクラスタ4に配分するキューシステム部2とJOBの実行と連携させたライセンス管理部3から成る。
【0013】
複数ユーザーが投入するJOBをPCクラスタ4へ配分するキューシステム2において、JOB実行時に必要に応じてライセンスの取得を管理するライセンス管理システム3を追加することで、JOBをライセンス管理に連携させて、効率的に管理できるようにする。
【0014】
このライセンスを管理するとき、ライセンスに別名を与え、別名のグループを作成することで、複数のプロジェクト毎に使用ライセンスを分けるライセンスデバイド機能(図2(a))、複数のライセンスを1つにまとめて別名をつけるライセンスエイリアス機能(図2(b))、分割したライセンスを実際より大目に設定することで、重複して割り当てられる部分を設け、ライセンスの利用効率を上げるライセンスクオーター機能(図2(c))を有する特徴がある。
【0015】
図3は、JOBとライセンス管理の処理を示すフローチャートである。まず、変数n=0とし(S1)、ユーザーのJOBが保存されているJOBキューのn番目からJOBを1個取り出す(S2)。仮にこのJOBの実行に必要なライセンスをライセンスαとすると、ライセンスαが1個以上空きがあるか否かをライセンス管理部に問い合わせを行い(S9)、もしライセンスに空きが無い場合(S3)、JOBをJOBキューのn番目に戻し(S6)、nを+1する(S7)。
【0016】
もし、ライセンスに空きがある場合(S3)、ライセンスαを−1して(S4)、JOBを実行する(S5)。そしてnを+1して(S7)、これをJOBキューの最後まで行う(S8)。また、JOBの実行が終了したら、ライセンスαを+1する。
【0017】
ライセンス管理部では、ライセンスを親ライセンスと子ライセンスで定義する仕組みを利用して、図2(a)〜(c)に示す機能を実装する。親子関係は図4(a)や図4(b)のような形態が考えられ、図4(d)のような入れ子も考えられる。
【0018】
図4(a)のような場合、親ライセンスAがたとえば10個だとすると、子ライセンスCを20個と定義していても、実際は親が10個しかないため、10個しか子ライセンスCは使用されない。
【0019】
図4(b)のような場合、親ライセンスAが10、親ライセンスBが5の場合、子ライセンスCは親ライセンスの最小値である5までしか発行されない。
【0020】
図4(d)のような場合、親の親であるライセンスD、Eの最小値数以上にライセンスAが使用されることはないので、結果的に子ライセンスCはライセンスA,B,D,Eの最小値の数だけ使用され得る。
【0021】
また図4(c)のような場合、子ライセンスDは子ライセンスCと同じに、ライセンスA,Bの最小値だけ発行できるが、たとえばライセンスAが10、ライセンスBが5、でライセンスCが3個使用されていた場合、ライセンスDは実際には2個しか発行されない。
【0022】
ライセンス管理部では、この親子ライセンスの仕組みを実装するため、以下のような処理を行う。
【0023】
図5は、ライセンス獲得の問い合わせをする場合のフローチャートである。まず変数n=0とし(S21)、ライセンスをライセンスバッファのn番目に記録する(S22)。そして、該当ライセンスに親があるかを判断し(S23)、親の入れ子が無くなるまで(S24)、nをインクリメントしつつ(S25)、ライセンスをライセンスバッファに入れる(S22)。
【0024】
そして、ライセンスバッファの先頭のライセンスから、ライセンス数が1個以上あるか否かを調査し(S26〜S31)、もし無ければ、ライセンス獲得に失敗したと報告する(S29)。
【0025】
全てのライセンスが1個以上あれば、ライセンスバッファの先頭のライセンスから順番にライセンス数を−1して(S32〜S35)、ライセンス獲得に成功したと報告する(S36)。
【0026】
また図6は、JOB終了後にライセンスを開放する場合のフローチャートである。まず、変数n=0とし(S41)、ライセンスをライセンスバッファのn番目に記録する(S42)。そして、該当ライセンスに親があるかを判断し(S43)、親の入れ子が無くなるまで(S44)、ライセンスをnをインクリメントしつつ(S45)、ライセンスバッファに入れる(S42)。そして、ライセンスバッファの先頭のライセンスから順番にライセンス数を+1して(S46〜S50)、ライセンス開放を完了する(S51)。
【図面の簡単な説明】
【0027】
【図1】本発明の概略システム構成図である。
【図2】本発明によるライセンス管理機能の説明図である。
【図3】JOBとライセンス管理の処理を示すフローチャートである。
【図4】親ライセンスと子ライセンスの関係を示す説明図である。
【図5】ライセンス獲得の問い合わせをする場合のフローチャートである。
【図6】ライセンスを開放する場合のフローチャートである。
【符号の説明】
【0028】
1 ログインサーバー
2 キューシステム
3 ライセンス管理システム
4 PCクラスタ

【特許請求の範囲】
【請求項1】
クライアントから要求されたJOBをネットワーク上の適切なCPUリソースに割り当てて実行させるJOBキューシステムにおいて、
ジョブの実行に必要なライセンス管理を行うライセンス管理部を備え、
前記ライセンス管理部は、元のライセンスに対して、別名の複数の仮想ライセンスを作成し、運用時にユーザー毎に仮想ライセンス数を割り振る機能を有することを特徴とするJOBキューに連携するライセンス管理システム。
【請求項2】
クライアントから要求されたJOBをネットワーク上の適切なCPUリソースに割り当てて実行させるJOBキューシステムにおいて、
ジョブの実行に必要なライセンス管理を行うライセンス管理部を備え、
前記ライセンス管理部は、複数のライセンスを一つにまとめて従属関係を有する別名の仮想ライセンスを設定する機能を有することを特徴とするJOBキューに連携するライセンス管理システム。
【請求項3】
クライアントから要求されたJOBをネットワーク上の適切なCPUリソースに割り当てて実行させるJOBキューシステムにおいて、
ジョブの実行に必要なライセンス管理を行うライセンス管理部を備え、
前記ライセンス管理部は、元のライセンスに対して、別名の複数の仮想ライセンスを重複して作成し、作成後の仮想ライセンスの合計数を元のライセンス数よりも多く設定する機能を有することを特徴とするJOBキューに連携するライセンス管理システム。
【請求項4】
クライアントから要求されたJOBをネットワーク上の適切なCPUリソースに割り当てて実行させるJOBキューに連携するライセンス管理方法であって、
ジョブの実行に必要なライセンス管理を行うために、元のライセンスに対して、別名の複数の仮想ライセンスを作成し、運用時にユーザー毎に仮想ライセンス数を割り振ることを特徴とするJOBキューに連携するライセンス管理方法。
【請求項5】
クライアントから要求されたJOBをネットワーク上の適切なCPUリソースに割り当てて実行させるJOBキューに連携するライセンス管理方法であって、
ジョブの実行に必要なライセンス管理を行うために、複数のライセンスを一つにまとめて従属関係を有する別名の仮想ライセンスを設定することを特徴とするJOBキューに連携するライセンス管理方法。
【請求項6】
クライアントから要求されたJOBをネットワーク上の適切なCPUリソースに割り当てて実行させるJOBキューに連携するライセンス管理方法であって、
ジョブの実行に必要なライセンス管理を行うために、元のライセンスに対して、別名の複数の仮想ライセンスを重複して作成し、作成後の仮想ライセンスの合計数を元のライセンス数よりも多く設定することを特徴とするJOBキューに連携するライセンス管理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate