(57)【要約】【課題】他のユーザに影響を与えることなく、ライセンス数が足りないユーザに追加のライセンスを提供すること。【解決手段】一実施形態に係る情報処理システムは、１以上の第１ライセンスを保有する一のユーザのジョブを受け付ける受付部と、ユーザの第１ライセンスの利用状況を記憶する第１ライセンスデータベースを参照して、空いている第１ライセンスの個数（空き数）が、ジョブの実行に必要なライセンス数（必要数）以上であるか否かを判定する判定部と、その空き数が必要数未満である場合に、他のユーザに関連付けられていない１以上の第２ライセンスを記憶する第２ライセンスデータベースを参照して、ジョブの実行に必要な第２ライセンスを確保し、ジョブが実行される期間に限って、確保された第２ライセンスをユーザに割り当てる確保部とを備える。【選択図】図４
2017068636.tif 000002
【特許請求の範囲】
【請求項１】
複数のユーザのそれぞれについて、ジョブの実行に必要なライセンスを管理する情報処理システムであって、
１以上の第１ライセンスを保有する一のユーザのジョブを受け付ける受付部と、
前記ユーザの前記第１ライセンスの利用状況を記憶する第１ライセンスデータベースを参照して、空いている前記第１ライセンスの個数が、前記ジョブの実行に必要なライセンス数以上であるか否かを判定する判定部と、
前記空いている第１ライセンスの個数が前記必要なライセンス数未満である場合に、前記複数のユーザのいずれにも関連付けられていない１以上の第２ライセンスを記憶する第２ライセンスデータベースを参照して、前記ジョブの実行に必要な少なくとも一つの前記第２ライセンスを確保し、前記ジョブが実行される期間に限って、確保された前記少なくとも一つの第２ライセンスを前記ユーザに割り当てる確保部と
を備える情報処理システム。
【請求項２】
前記ジョブを実行する実行部を更に備え、
前記実行部が、前記ジョブが終了した後に、前記確保された少なくとも一つの第２ライセンスが再利用できるように該少なくとも一つの第２ライセンスを解放する、
請求項１に記載の情報処理システム。
【請求項３】
前記第２ライセンスの利用額と前記ユーザの予算とを比較し、該利用額が該予算の上限に達した場合に、前記実行部により実行されているジョブを強制的に終了または一時停止する監視部
を更に備える請求項２に記載の情報処理システム。
【請求項４】
複数のユーザのそれぞれについて、ジョブの実行に必要なライセンスを管理する情報処理方法であって、
１以上のプロセッサのうちの少なくとも一つが、１以上の第１ライセンスを保有する一のユーザのジョブを受け付ける受付ステップと、
前記１以上のプロセッサのうちの少なくとも一つが、前記ユーザの前記第１ライセンスの利用状況を記憶する第１ライセンスデータベースを参照して、空いている前記第１ライセンスの個数が、前記ジョブの実行に必要なライセンス数以上であるか否かを判定する判定ステップと、
前記１以上のプロセッサのうちの少なくとも一つが、前記空いている第１ライセンスの個数が前記必要なライセンス数未満である場合に、前記複数のユーザのいずれにも関連付けられていない１以上の第２ライセンスを記憶する第２ライセンスデータベースを参照して、前記ジョブの実行に必要な少なくとも一つの前記第２ライセンスを確保し、前記ジョブが実行される期間に限って、確保された前記少なくとも一つの第２ライセンスを前記ユーザに割り当てる確保ステップと
を含む情報処理方法。
【請求項５】
複数のユーザのそれぞれについて、ジョブの実行に必要なライセンスを管理する情報処理方法をコンピュータに実行させる情報処理プログラムであって、
前記情報処理方法が、
１以上の第１ライセンスを保有する一のユーザのジョブを受け付ける受付ステップと、
前記ユーザの前記第１ライセンスの利用状況を記憶する第１ライセンスデータベースを参照して、空いている前記第１ライセンスの個数が、前記ジョブの実行に必要なライセンス数以上であるか否かを判定する判定ステップと、
前記空いている第１ライセンスの個数が前記必要なライセンス数未満である場合に、前記複数のユーザのいずれにも関連付けられていない１以上の第２ライセンスを記憶する第２ライセンスデータベースを参照して、前記ジョブの実行に必要な少なくとも一つの前記第２ライセンスを確保し、前記ジョブが実行される期間に限って、確保された前記少なくとも一つの第２ライセンスを前記ユーザに割り当てる確保ステップと
を含む、
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一側面は、コンピュータにジョブを実行させるために必要なライセンスを管理する情報処理システム、情報処理方法、および情報処理プログラムに関する。
【背景技術】
【０００２】
従来から、コンピュータにジョブを実行させるために必要なライセンスを管理する技術が知られている。例えば下記特許文献１には、複数の拠点で取り扱うライセンスを管理する情報処理システムが記載されている。この情報処理システムは、ジョブを実行するジョブ処理装置と、ライセンスが確保されたジョブをジョブ処理装置へ送信するキュー管理装置とを備える。キュー管理装置は、キューからジョブを読み出すごとに該ジョブに対応するライセンスの確保をジョブ処理装置に要求するキュー処理部を有する。一方、ジョブ処理装置は、キュー管理装置からの要求に対しライセンスの確保の成否を応答するライセンス確保処理部を有する。各拠点には、自己に限らず他の拠点も利用可能な仮想のライセンスが設定される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１４１０５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術では、ある拠点でライセンスが足りなくなると、他の拠点のライセンスをリモート制御で使用することで、必要な追加のライセンスを確保する。しかしこの手法では、本来は必要な数のライセンスを保有する第１の拠点が、第２の拠点に一部のライセンスを貸しているために、第３の拠点からライセンスを借りる必要が生じ得る。あるいは、第１の拠点が第３の拠点からライセンスを借りることができずにジョブを実行できない状況も生じ得る。そこで、他のユーザに影響を与えることなく、ライセンス数が足りないユーザに追加のライセンスを提供することが望まれている。
【課題を解決するための手段】
【０００５】
本発明の一側面に係る情報処理システムは、複数のユーザのそれぞれについて、ジョブの実行に必要なライセンスを管理する情報処理システムであって、１以上の第１ライセンスを保有する一のユーザのジョブを受け付ける受付部と、ユーザの第１ライセンスの利用状況を記憶する第１ライセンスデータベースを参照して、空いている第１ライセンスの個数が、ジョブの実行に必要なライセンス数以上であるか否かを判定する判定部と、空いている第１ライセンスの個数が必要なライセンス数未満である場合に、複数のユーザのいずれにも関連付けられていない１以上の第２ライセンスを記憶する第２ライセンスデータベースを参照して、ジョブの実行に必要な少なくとも一つの第２ライセンスを確保し、ジョブが実行される期間に限って、確保された少なくとも一つの第２ライセンスをユーザに割り当てる確保部とを備える。
【０００６】
本発明の一側面に係る情報処理方法は、複数のユーザのそれぞれについて、ジョブの実行に必要なライセンスを管理する情報処理方法であって、１以上のプロセッサのうちの少なくとも一つが、１以上の第１ライセンスを保有する一のユーザのジョブを受け付ける受付ステップと、１以上のプロセッサのうちの少なくとも一つが、ユーザの第１ライセンスの利用状況を記憶する第１ライセンスデータベースを参照して、空いている第１ライセンスの個数が、ジョブの実行に必要なライセンス数以上であるか否かを判定する判定ステップと、１以上のプロセッサのうちの少なくとも一つが、空いている第１ライセンスの個数が必要なライセンス数未満である場合に、複数のユーザのいずれにも関連付けられていない１以上の第２ライセンスを記憶する第２ライセンスデータベースを参照して、ジョブの実行に必要な少なくとも一つの第２ライセンスを確保し、ジョブが実行される期間に限って、確保された少なくとも一つの第２ライセンスをユーザに割り当てる確保ステップとを含む。
【０００７】
本発明の一側面に係る情報処理プログラムは、複数のユーザのそれぞれについて、ジョブの実行に必要なライセンスを管理する情報処理方法をコンピュータに実行させる情報処理プログラムであって、情報処理方法が、１以上の第１ライセンスを保有する一のユーザのジョブを受け付ける受付ステップと、ユーザの第１ライセンスの利用状況を記憶する第１ライセンスデータベースを参照して、空いている第１ライセンスの個数が、ジョブの実行に必要なライセンス数以上であるか否かを判定する判定ステップと、空いている第１ライセンスの個数が必要なライセンス数未満である場合に、複数のユーザのいずれにも関連付けられていない１以上の第２ライセンスを記憶する第２ライセンスデータベースを参照して、ジョブの実行に必要な少なくとも一つの第２ライセンスを確保し、ジョブが実行される期間に限って、確保された少なくとも一つの第２ライセンスをユーザに割り当てる確保ステップとを含む。
【０００８】
このような側面においては、ジョブを指定したユーザが保有する第１ライセンスの個数がそのジョブの実行に必要な数に満たないと、誰にも関連付けられていない第２ライセンスが追加のライセンスとしてそのユーザに割り当てられる。したがって、そのユーザへのライセンスの追加が他のユーザに影響を及ぼさない。しかも、追加された第２ライセンスはジョブを実行する期間に限って割り当てられるので、予め十分な第２ライセンスを用意しておけばその第２ライセンスが枯渇するおそれがない。以上の理由により、他のユーザに影響を与えることなく、ライセンス数が足りないユーザに追加のライセンスを提供することができる。
【発明の効果】
【０００９】
本発明の一側面によれば、他のユーザに影響を与えることなく、ライセンス数が足りないユーザに追加のライセンスを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る情報処理システムの全体構成を示す図である。
【図２】ジョブテーブルの例を示す図である。
【図３】実施形態に係る情報処理システムで用いられるコンピュータのハードウェア構成を示す図である。
【図４】実施形態に係る情報処理システムの機能構成を示す図である。
【図５】ライセンスの利用態様を選択するための画面の例を示す図である。
【図６】実施形態に係る情報処理システムの動作を示すフローチャートである。
【図７】ライセンスの自動判定の詳細を示すフローチャートである。
【図８】ジョブ実行の監視の詳細を示すフローチャートである。
【図９】実施形態に係る情報処理プログラムの構成を示す図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【００１２】
図１〜５を参照しながら、実施形態に係る情報処理システム１の機能および構成を説明する。情報処理システム１は、計算環境をインターネットなどの通信ネットワークを介してユーザに提供するコンピュータ・システムである。すなわち、情報処理システム１はいわゆるクラウドサービスを提供する。計算環境は、１以上のコンピュータと、そのコンピュータ上で実行されるソフトウェアとを用いて構築される。ユーザがジョブの実行を情報処理システム１に命令すると、情報処理システム１はその命令に従って所定の処理を実行し、処理結果をそのユーザに提供する。
【００１３】
「ユーザ」とは、情報処理システム１を利用する人、グループ、または組織である。「ジョブ」とは、ユーザが情報処理システム１に依頼する仕事の単位である。ジョブの種類は何ら限定されないが、例として、構造解析や流体解析などのシミュレーションと、ビッグデータの集計または解析とが挙げられる。
【００１４】
本実施形態では、ユーザは、ジョブを情報処理システム１に実行させるためにライセンスを得なければならない場合がある。「ライセンス」とは、ユーザが情報処理システム１を利用する権利または資格である。情報処理システム１は、ライセンスを要することなく実行できるプログラム（オープンソースのプログラム）をユーザに提供してもよい。ただし、本実施形態の特徴の一つはライセンスの管理であるので、以下では、ユーザがライセンスを要する場合について説明する。本実施形態では２種類のライセンスが存在する。
【００１５】
一つは、ユーザが予め保有するライセンスであり、本明細書ではこれを「保有ライセンス」または「第１ライセンス」という。ユーザは事前にライセンスを購入して保有することができる。なお、ユーザが誰からライセンスを購入するかは何ら限定されない。一般に、保有ライセンスには情報処理システム１の利用に関する制約が設定されるが、その制約の内容は限定されない。例えば、保有ライセンスには、利用可能期間や、一度に利用できるハードウェア資源の量（例えばコンピュータの台数）に関する制約などが設定され得る。ユーザは１以上のライセンスを専有することができる。あるユーザの保有ライセンスを他人は利用できない。また、ユーザは自分の保有ライセンスを他人に貸与することができない。
【００１６】
もう一つは、ある一つのジョブが実行される期間に限ってユーザに提供されるライセンスであり、本明細書ではこれを「一時ライセンス」または「第２ライセンス」という。この一時ライセンスは、恒久的にではなく一時的にユーザに割り当てられる。情報処理システム１は十分な量の一時ライセンスを、情報処理システム１のユーザの誰とも関連付けない態様で、予め用意する。そして、情報処理システム１はユーザが一時ライセンスを必要とする期間に限って、必要な量の一時ライセンスをそのユーザに関連付ける。したがって、ある一人のユーザのために用いられた一時ライセンスが、その後に別のユーザのために用いられることがあり得る。ただし、一つの一時ライセンスを複数のユーザが同時に使用することはできない。
【００１７】
本実施形態では、一時ライセンスは、利用時間に応じて料金が上がっていく従量制（すなわち、従量制ライセンス）であるとする。これに関連し、本実施形態では、各ユーザは一時ライセンスを利用する際に予算の制約を受けるものとする。この予算は、一時ライセンスの利用時間および利用数に応じて減っていく。一方で、ユーザは費用を負担することでその予算を増やすことができる。各ユーザの予算および利用額は情報処理システム１内の所定のデータベース（図示せず）に記憶されるものとする。
【００１８】
ユーザはジョブの実行を情報処理システム１に指示する際に、どのようにライセンスを利用するかを指定する。本実施形態ではライセンスの利用態様として以下の三つが用意されるが、そのうちの自動判定が情報処理システム１の特徴の一つである。ライセンスの自動判定は、保有ライセンスが足りない場合に一時ライセンスを追加する態様であり、ライセンスのハイブリッド利用であるともいえる。
・保有ライセンスのみの利用
・一時ライセンスのみの利用
・利用するライセンスの自動判定
【００１９】
情報処理システム１の全体構成を図１に示す。情報処理システム１はインターネットなどの通信ネットワークＮを介して１以上のユーザ端末Ｔと通信することができる。図１では３台のユーザ端末Ｔを示すが、ユーザ端末Ｔの台数は何ら限定されない。
【００２０】
ユーザ端末Ｔは、ユーザが所有または利用するコンピュータである。ユーザ端末Ｔの具体的な種類は限定されない。例えば、ユーザ端末Ｔは、据置型または携帯型のパーソナルコンピュータでもよいし、高機能携帯電話機（スマートフォン）や携帯電話機、携帯情報端末（ＰＤＡ）などの携帯端末でもよい。あるいは、複数の端末の組合せが論理的に一つのユーザ端末Ｔとして機能してもよい。
【００２１】
ユーザ端末Ｔは、ユーザの指示に応じて情報処理システム１にアクセスし、ジョブを入力するための画面を受信および表示する。ユーザがその画面を介してジョブに関する情報（ジョブ情報）を入力すると、ユーザ端末Ｔはそのジョブ情報を情報処理システム１に送信する。なお、ジョブ情報については後で詳細に説明する。その後、ユーザ端末Ｔは、情報処理システム１から自動的に、またはユーザの更なる指示に応じて、処理結果を受信および表示する。本実施形態ではユーザ端末Ｔに表示される画面（入出力インタフェース）がウェブページであることを前提とするが、画面の提供方法は何ら限定されない。
【００２２】
情報処理システム１は、コンピュータ群１０、管理サーバ２０、第２ライセンスサーバ３０、および各ユーザの計算環境４０を備える。各ユーザの計算環境４０は、ウェブサーバ４１、ジョブテーブル４２、第１ライセンスサーバ４３、および解析サーバ４４を備える。本実施形態では、各ユーザの計算環境４０において最初から用意される要素は、ウェブサーバ４１、ジョブテーブル４２、および第１ライセンスサーバ４３である。これに対して、解析サーバ４４は、ユーザから受け付けたジョブを実行するために設定される仮想的なサーバである。
【００２３】
コンピュータ群１０は、予め用意される複数のコンピュータの集合である。一般に、個々のコンピュータは高性能であり、例えば複数のプロセッサおよび大容量のメモリを備える。
【００２４】
管理サーバ２０は、ユーザから受け付けたジョブ（ジョブ情報）に応じて、該ユーザの計算環境４０内に解析サーバ４４を設定するコンピュータである。管理サーバ２０は、コンピュータ群１０内のコンピュータを用いて解析サーバ４４を設定する。管理サーバ２０が解析サーバ４４を設定するタイミングは限定されず、例えば、管理サーバ２０はジョブを受け付けたことに応じて解析サーバ４４を設定してもよい。あるいは、管理サーバ２０はジョブの実行に必要なライセンスが確保された後に解析サーバ４４を設定してもよい。ジョブが終了すると、管理サーバ２０は、解析サーバ４４として機能していたコンピュータを解放する。解放されたコンピュータは将来の他のジョブを実行するために再び利用され得る。１台のコンピュータが複数のプロセッサ（例えばＣＰＵ）を有するのであれば、該複数のプロセッサのうちの一部のプロセッサのみが解析サーバ４４として機能することもあり得る。
【００２５】
第２ライセンスサーバ３０は、一時ライセンス（第２ライセンス）に関する情報を記憶するデータベース（第２ライセンスデータベース）である。第２ライセンスサーバ３０を参照することで、現時点でどの一時ライセンスが利用されているかを知ることができる。
【００２６】
第２ライセンスサーバ３０のデータ構成は限定されない。例えば、一つの一時ライセンスが、下記の３項目を含むレコードで表現されてもよい。
・一時ライセンスを一意に特定する識別子（一時ライセンスＩＤ）
・一時ライセンスが割り当てられているユーザの識別子（ユーザＩＤ）
・一時ライセンスが割り当てられているジョブの識別子（ジョブＩＤ）
このデータ構成の例では、ユーザＩＤおよびジョブＩＤの初期値は空値（ＮＵＬＬ）である。一時ライセンスがユーザに割り当てられると、そのユーザのＩＤと、そのユーザが指示したジョブのＩＤとが対応のレコードに設定される。一時ライセンスを用いたジョブが終了すると、その一時ライセンスに対応するレコードのユーザＩＤおよびジョブＩＤが空値に更新される。第２ライセンスサーバ３０を参照または更新する装置は限定されず、例えば管理サーバ２０または解析サーバ４４がその処理を実行してもよい。
【００２７】
次に、各ユーザの計算環境４０の概要を説明する。ウェブサーバ４１は、ジョブの実行を指示したりジョブの実行結果を確認したりするための画面（ウェブページ）をユーザ端末Ｔに提供するコンピュータである。ユーザはその画面を介して、ジョブの実行条件を入力し、ジョブの実行を指示し、処理結果を確認することができる。
【００２８】
ジョブテーブル４２は、ウェブサーバ４１がユーザ端末Ｔから受信したジョブを示すジョブ情報を記憶するデータベースである。ジョブテーブル４２は待ち行列として機能してもよい。図２にジョブ情報の例を示す。本実施形態では、ジョブ情報の個々のレコードは、ジョブＩＤ、解析ツール、計算モデルファイル、インスタンスＩＤ、インスタンス数、実行コマンド、およびライセンス利用種別という項目を含む。
【００２９】
ジョブＩＤは、個々のジョブを一意に特定するための識別子である。解析ツールは、ジョブの実行に用いられるソフトウェアを示す。計算モデルファイルは、ジョブの実行に必要な各種パラメータが記述されたファイルを示す。例えば、ジョブが構造解析に関するものであれば、計算モデルファイルは物体の形状や、境界条件、時間軸、物体に加わる外力などを示すデータを含み得る。インスタンスＩＤは、解析サーバ４４を一意に特定するための識別子である。インスタンス数は、解析サーバ４４の構築に用いるコンピュータの数である。実行コマンドは、解析ツールを用いたジョブの実行を解析サーバ４４に指示するための命令である。ライセンス利用種別は、ジョブを実行する際のライセンスの利用態様を示す。本実施形態では、ライセンス利用種別は「１」、「２」、「３」のいずれかで表され、「１」は保有ライセンスのみの利用を示し、「２」は一時ライセンスのみの利用を示し、「３」は利用するライセンスの自動判定を示すものとする。図２は例えば、ジョブ「０００３」がツールＡを用いて実行され、その実行に３台のコンピュータが用いられ、その実行の際に利用するライセンスが自動的に判定されることを示す。
【００３０】
第１ライセンスサーバ４３は、ユーザの保有ライセンス（第１ライセンス）の利用状況を記憶するデータベース（第１ライセンスデータベース）である。第１ライセンスサーバ４３を参照することで、ユーザが何個のライセンスを保有し、現時点でそのうち何個のライセンスを利用しているかを知ることができる。
【００３１】
第１ライセンスサーバ４３のデータ構成は限定されない。例えば、一つの保有ライセンスが、下記の２項目を含むレコードで表現されてもよい。
・保有ライセンスを一意に特定する識別子（保有ライセンスＩＤ）
・保有ライセンスが割り当てられているジョブの識別子（ジョブＩＤ）
このデータ構成の例では、ジョブＩＤの初期値は空値（ＮＵＬＬ）である。保有ライセンスがジョブに割り当てられると、そのジョブのＩＤが対応のレコードに設定される。保有ライセンスを用いたジョブが終了すると、その保有ライセンスに対応するレコードのジョブＩＤが空値に更新される。第１ライセンスサーバ４３を参照または更新する装置は限定されず、例えば管理サーバ２０または解析サーバ４４がその処理を実行してもよい。
【００３２】
情報処理システム１内には様々な種類のコンピュータが存在する。そのコンピュータ１００の一般的なハードウェア構成を図３に示す。コンピュータ１００は、オペレーティングシステムやアプリケーション・プログラムなどを実行するプロセッサ（例えばＣＰＵ）１０１と、ＲＯＭおよびＲＡＭで構成される主記憶部１０２と、ハードディスクやフラッシュメモリなどで構成される補助記憶部１０３と、ネットワークカードまたは無線通信モジュールで構成される通信制御部１０４と、キーボードやマウスなどの入力装置１０５と、モニタなどの出力装置１０６とを備える。
【００３３】
情報処理システム１内の各機能要素は、プロセッサ１０１または主記憶部１０２の上に所定のソフトウェアを読み込ませ、プロセッサ１０１の制御の下で通信制御部１０４や、入力装置１０５、出力装置１０６などを動作させ、主記憶部１０２または補助記憶部１０３におけるデータの読み出し及び書き込みを行うことで実現される。処理に必要なデータおよびデータベースは主記憶部１０２または補助記憶部１０３内に格納される。
【００３４】
図４を参照しながら、情報処理システム１の機能および構成をより具体的に説明する。図４は、ある一人のユーザの計算環境４０と、その計算環境４０が参照し得る第２ライセンスサーバ３０とを示す。図４に示すように、情報処理システム１は機能的構成要素として受付部４０１、判定部４０２、確保部４０３、実行部４０４、および監視部４０５を備える。各機能要素がどのコンピュータ１００上に実装されるかは限定されない。
【００３５】
受付部４０１は、保有ライセンスを持つユーザのジョブを受け付ける機能要素である。例えば、受付部４０１はウェブサーバ４１、管理サーバ２０、または解析サーバ４４上で実現される。「ユーザのジョブを受け付ける」とは、ユーザにより指示されたジョブに関する情報、すなわちジョブ情報を取得することを意味する。ジョブの受け付けは、ジョブ情報をユーザ端末Ｔから直接に受信することと、ユーザ端末Ｔから受信して情報処理システム１内に記憶されたジョブ情報を後で読み出すこととの双方を含む概念である。本実施形態では、ウェブサーバ４１がユーザ端末Ｔからジョブ情報を受信してジョブテーブル４２に格納し、管理サーバ２０または解析サーバ４４が、ジョブテーブル４２からそのジョブ情報を読み出すことを前提とするが、ジョブを受け付ける態様はこれに限定されず、任意の仕組みを採用してよい。受付部４０１は、受け付けたジョブ情報を判定部４０２に出力する。受付部４０１は、ジョブを指示したユーザを示すユーザＩＤもユーザ端末Ｔから直接にまたは間接的に取得し、そのユーザＩＤも判定部４０２に出力する。
【００３６】
ジョブ情報はユーザにより入力される。図５はウェブサーバ４１により提供される入力画面の例を示し、特に、ライセンスの利用態様を指定する画面を示す。図５の例では、ウェブページ５０での入力に応じて、ライセンスの利用態様を選択するためのモーダルウィンドウ５１が表示されている。ユーザは三つの利用態様の中から一つを選択することができる（図５は、「保有ライセンスのみの利用」が選択された状態を示す）。当然ながら、入力画面の構成はこの例に限定されない。
【００３７】
判定部４０２は、第１ライセンスサーバ４３を参照して、空いている保有ライセンスの個数が、ジョブの実行に必要なライセンス数以上であるか否かを判定する機能要素である。例えば、受付部４０１は解析サーバ４４または管理サーバ２０上で実現される。
【００３８】
まず、判定部４０２は、入力されたジョブ情報のライセンス利用種別を参照する。後続の処理はこのライセンス利用種別により変わる。
【００３９】
ライセンス利用種別が「１」である場合には、判定部４０２はジョブの実行に必要なライセンス数（以下では「必要数」ともいう）を特定する。この処理の具体的な方法は限定されない。例えば、判定部４０２はライセンスに関するルールを予め記憶しており、必要なライセンス数をジョブ情報およびそのルールから求めてもよい。必要なライセンス数は、例えば解析ツールおよびインスタンス数のうちの少なくとも一つに基づいて決められてもよい。さらに、判定部４０２は第１ライセンスサーバ４３を参照することで、空いている保有ライセンスの個数（以下では「空き数」ともいう）を特定する。続いて、判定部４０２は空き数と必要数とを比較する。
【００４０】
空き数が必要数以上であれば、判定部４０２はジョブを即時に実行できると判断し、ジョブ情報を実行部４０４に出力する。また、判定部４０２は第１ライセンスサーバ４３にアクセスし、これからジョブの実行に用いる１以上の保有ライセンスのレコードに、ジョブ情報で示されるジョブＩＤを設定する。
【００４１】
一方、空き数が必要数未満であれば、判定部４０２はジョブ情報を実行部４０４に出力することなく所定の時間待機する。その待機時間が経過すると、判定部４０２は再び第１ライセンスサーバ４３を参照することで保有ライセンスの空き数を特定し、その空き数と必要数とを比較する。もし空き数が必要数以上であれば、判定部４０２はジョブを実行できると判断し、ジョブ情報を実行部４０４に出力すると共に、第１ライセンスサーバ４３内のレコードを上記のように更新する。一方、空き数が必要数未満であれば、判定部４０２は再び所定の時間待機する。空き数が必要数未満ということは、情報処理システム１がユーザのために別のジョブを実行中であることを意味する。その別のジョブが終了すれば、そのジョブのために確保されていた保有ライセンスが解放されて再利用可能になるので、待機することで次のジョブを実行することが可能になる。
【００４２】
ライセンス利用種別が「２」である場合には、判定部４０２はジョブの実行に必要なライセンス数を特定する。この必要数の特定方法は、ライセンス利用種別が「１」である場合と同様である。続いて、判定部４０２はジョブ情報およびユーザＩＤを確保部４０３に出力すると共に、特定した個数を必要な一時ライセンスの個数として確保部４０３に出力する。ライセンス利用種別が「２」である場合にはジョブは一時ライセンスのみを用いて実行されるので、判定部４０２は保有ライセンスの利用状況を参照する必要がない。
【００４３】
ライセンス利用種別が「３」である場合には、判定部４０２はジョブの実行に必要なライセンス数（必要数）を特定する。この特定方法は、ライセンス利用種別が「１」である場合と同様である。さらに、判定部４０２は第１ライセンスサーバ４３を参照することで、空いている保有ライセンスの個数（空き数）を特定する。そして、判定部４０２は空き数と必要数とを比較する。
【００４４】
空き数が必要数以上であれば、判定部４０２はジョブを即時に実行できると判断し、ジョブ情報を実行部４０４に出力する。また、判定部４０２は第１ライセンスサーバ４３にアクセスし、これからジョブの実行に用いる１以上の保有ライセンスのレコードに、ジョブ情報で示されるジョブＩＤを設定する。このように、保有ライセンスのみでジョブを実行できる場合には、判定部４０２はライセンス利用種別が「１」である場合と同様の処理を実行する。
【００４５】
一方、空き数が必要数未満であれば、判定部４０２は必要数と空き数との差分を必要な一時ライセンスの個数として求め、その個数、ジョブ情報、およびユーザＩＤを確保部４０３に出力する。
【００４６】
確保部４０３は、ジョブの実行に必要な一時ライセンスを確保し、そのジョブが実行される期間に限って、確保された一時ライセンスをユーザに割り当てる機能要素である。例えば、確保部４０３は解析サーバ４４または管理サーバ２０上で実現される。
【００４７】
確保部４０３は第２ライセンスサーバ３０を参照して、判定部４０２から入力された個数の一時ライセンスを、ジョブが実行される期間に限って確保する。「ジョブが実行される期間に限って一時ライセンスを確保する」とは、ジョブを実行する前に、他のジョブ（他のユーザのジョブ、および自分の他のジョブ）の実行に用いられないようにその一時ライセンスを設定し、ジョブが完了するとその一時ライセンスを、他のジョブを実行できるように解放することを意味する。具体的には、確保部４０３は第２ライセンスサーバ３０にアクセスして、入力された個数の一時ライセンスに対応する１以上のレコードにユーザＩＤおよびジョブＩＤを設定する。一時ライセンスを確保すると、確保部４０３はジョブ情報およびユーザＩＤを実行部４０４に出力する。
【００４８】
実行部４０４は、ユーザにより指示されたジョブを実行する機能要素である。実行部４０４は解析サーバ４４上で実現される。ジョブが終了すると、実行部４０４はジョブの結果を出力する。
【００４９】
もし１以上の保有ライセンスを用いてジョブを実行した場合には、実行部４０４はその保有ライセンスに対応する第１ライセンスサーバ４３内のレコードからジョブＩＤを削除することで、その保有ライセンスを解放する。保有ライセンスを解放するとは、保有ライセンスとジョブとの関連付けを消去することを意味する。当然ながら、ユーザと保有ライセンスとの関連付けは、その解放処理で消去されることなく維持される。
【００５０】
もし１以上の一時ライセンスを用いてジョブを実行した場合には、実行部４０４はその一時ライセンスに対応する第２ライセンスサーバ３０内のレコードからユーザＩＤおよびジョブＩＤを削除することで、その一時ライセンスを解放する。一時ライセンスを解放するとは、一時ライセンスと、ユーザおよびジョブの組合せとの関連付けを消去することを意味する。この解放処理により、その一時ライセンスは、情報処理システム１のユーザの誰とも関連付けられない状態に戻る。
【００５１】
実行部４０４はジョブの実行結果を任意の方法で出力してよい。例えば、実行部４０４はウェブサーバ４１を介してその結果をユーザ端末Ｔに送信してもよい。あるいは、実行部４０４は情報処理システム１内の所定のデータベース（図示せず）にその結果を格納してもよく、この場合には、ユーザ端末Ｔはウェブサーバ４１を介してそのデータベースから結果を読み出すことができる。
【００５２】
ジョブの実行に一時ライセンスが用いられる場合には、実行部４０４は、確保されている一時ライセンスの個数とジョブの実行時間とに基づいて、所定のデータベース（図示せず）に記憶されている利用額を更新する。この更新は、今回のジョブの実行に掛かった費用を加算する処理である。
【００５３】
監視部４０５は、ユーザの予算および一時ライセンスの利用額を参照して該ユーザのジョブの実行を制御する機能要素である。監視部４０５はウェブサーバ４１、管理サーバ２０、または解析サーバ４４上で実現される。
【００５４】
監視部４０５は、一時ライセンスの利用額と予算とを所定のタイミングで（例えば定期的に）に比較する。もし利用額が予算の上限に達した場合には、監視部４０５はユーザの実行中のジョブが存在するか否かを判定する。利用額が予算の上限に達しかつ実行中のジョブが存在する場合には、監視部４０５はユーザ毎に予め設定されている条件に従って、下記の処理Ａ，Ｂのいずれか一つを実行する。
・処理Ａ：実行部４０４にジョブを実行させ続ける。そして、ジョブの終了後に、ユーザに不足額を請求するための処理を実行する。
・処理Ｂ：実行中のジョブを強制的に終了させる。監視部４０５は、その後にユーザが追加の料金を支払って予算を確保した場合に、実行部４０４にそのジョブを最初から再実行させてもよい。
【００５５】
なお、処理Ｂにおいて、監視部４０５は実行中のジョブを強制的に一時停止させ、ユーザが予算を確保した後に実行部４０４にそのジョブを中断時点から再開させてもよい。
【００５６】
一方、一時ライセンスの利用額が予算の上限に達していない場合、または実行中のジョブが存在しない場合には、監視部４０５はその後の処理を実行することなく、次の監視タイミングまで待機する。次回の監視タイミングの設定方法は限定されない。
【００５７】
次に、図６〜８を参照しながら、情報処理システム１の動作を説明するとともに、本実施形態に係る情報処理方法について説明する。
【００５８】
図６を参照しながら、ジョブの受付から実行までの一連の処理を説明する。まず、受付部４０１がジョブ（ジョブ情報）を受け付け（ステップＳ１１、受付ステップ）、判定部４０２がライセンス利用種別を判定する（ステップＳ１２）。
【００５９】
もしその種別が「１」（保有ライセンス）である場合には、判定部４０２は保有ライセンスの空き数とジョブの実行に必要なライセンスの個数とを比較する（ステップＳ１３）。そして、空き数が必要数以上である場合には（ステップＳ１３においてＹＥＳ）、管理サーバ２０がジョブ情報に基づいて解析サーバ４４を設定し（ステップＳ１４）、実行部４０４がジョブを実行する（ステップＳ１５）。一方、空き数が必要数未満である場合には（ステップＳ１３においてＮＯ）、判定部４０２は所定時間待機した後にステップＳ１３を再度実行する。
【００６０】
ステップＳ１２においてライセンス利用種別が「２」（一時ライセンス）である場合には、確保部４０３が、必要な１以上の一時ライセンスを確保し（ステップＳ１６）、続いて、管理サーバ２０がジョブ情報に基づいて解析サーバ４４を設定する（ステップＳ１７）。そして、実行部４０４がジョブを実行し（ステップＳ１８）、ジョブが終了するとその一時ライセンスを解放する（ステップＳ１９）。
【００６１】
ステップＳ１２においてライセンス利用種別が「３」（利用するライセンスの自動判定）である場合には、自動判定に基づいてジョブが実行される（ステップＳ２０）。図７を参照しながらこの処理の詳細を説明する。まず、判定部４０２が、保有ライセンスの空き数とジョブの実行に必要なライセンスの個数とを比較する（ステップＳ２０１、判定ステップ）。そして、空き数が必要数以上である場合には（ステップＳ２０１においてＹＥＳ）、管理サーバ２０がジョブ情報に基づいて解析サーバ４４を設定し（ステップＳ２０２）、実行部４０４がジョブを実行する（ステップＳ２０３）。一方、空き数が必要数未満である場合には（ステップＳ２０１においてＮＯ）、確保部４０３が、必要な１以上の一時ライセンスを確保し（ステップＳ２０４、確保ステップ）、続いて、管理サーバ２０がジョブ情報に基づいて解析サーバ４４を設定する（ステップＳ２０５）。そして、実行部４０４がジョブを実行し（ステップＳ２０６）、ジョブが終了するとその一時ライセンスを解放する（ステップＳ２０７）。
【００６２】
図６，７に示す例では、ジョブの実行に必要なライセンスが確保された後に管理サーバ２０が解析サーバ４４（すなわち、実行部４０４）を構築し、これにより、その解析サーバ４４を待機させることなく直ぐに稼働させることができる。ただし、解析サーバ４４を設定（構築）するタイミングはこれに限定されない。例えば、管理サーバ２０が解析サーバ４４を設定した後に判定部４０２がライセンス利用種別を判定してもよい。具体的には、管理サーバ２０は、受付部４０１がジョブ情報を受け付けたことに応じて（すなわち、上記ステップＳ１１およびステップＳ１２の間において）解析サーバ４４を設定してもよい。
【００６３】
図８を参照しながら監視部４０５の動作を説明する。監視部４０５は、ユーザの一時ライセンスの利用額が予算の上限に達したか否かを判定し（ステップＳ２１）、利用額が予算の上限に達した場合にはさらに、実行中のジョブが存在するか否かを判定する（ステップＳ２２）。
【００６４】
監視部４０５は、利用額が予算の上限に達しかつ実行中のジョブが存在する場合にのみ（ステップＳ２１，Ｓ２２の双方においてＹＥＳ）、事前の設定に基づいてジョブを実行し続けるか否かを判定する（ステップＳ２３）。実行部４０４にジョブを実行させ続ける場合には（ステップＳ２３においてＹＥＳ）、監視部４０５はそのジョブが終了した後に、ユーザに不足額を請求するための処理を実行する（ステップＳ２４）。一方、ジョブを止める場合には（ステップＳ２３においてＮＯ）、監視部４０５はジョブを強制終了させる（ステップＳ２５）。監視部４０５はステップＳ２５の後に、ユーザが追加の予算を確保するまでその状態を維持し（ステップＳ２６においてＮＯ）、その後、追加の予算が確保された場合に（ステップＳ２６においてＹＥＳ）実行部４０４にジョブを再実行させてもよい（ステップＳ２７）。
【００６５】
次に、図９を参照しながら、１以上のコンピュータ１００を情報処理システム１として機能させるための情報処理プログラムＰ１を説明する。
【００６６】
情報処理プログラムＰ１は、メインモジュールＰ１０、受付モジュールＰ１１、判定モジュールＰ１２、確保モジュールＰ１３、実行モジュールＰ１４、および監視モジュールＰ１５を備える。
【００６７】
メインモジュールＰ１０は、ジョブの実行を統括的に実行する部分である。受付モジュールＰ１１、判定モジュールＰ１２、確保モジュールＰ１３、実行モジュールＰ１４、および監視モジュールＰ１５を実行することにより実現される機能はそれぞれ、上記の受付部４０１、判定部４０２、確保部４０３、実行部４０４、および監視部４０５の機能と同様である。
【００６８】
情報処理プログラムＰ１は、例えば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。あるいは、情報処理プログラムＰ１は、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【００６９】
以上説明したように、本発明の一側面に係る情報処理システムは、複数のユーザのそれぞれについて、ジョブの実行に必要なライセンスを管理する情報処理システムであって、１以上の第１ライセンスを保有する一のユーザのジョブを受け付ける受付部と、ユーザの第１ライセンスの利用状況を記憶する第１ライセンスデータベースを参照して、空いている第１ライセンスの個数が、ジョブの実行に必要なライセンス数以上であるか否かを判定する判定部と、空いている第１ライセンスの個数が必要なライセンス数未満である場合に、複数のユーザのいずれにも関連付けられていない１以上の第２ライセンスを記憶する第２ライセンスデータベースを参照して、ジョブの実行に必要な少なくとも一つの第２ライセンスを確保し、ジョブが実行される期間に限って、確保された少なくとも一つの第２ライセンスをユーザに割り当てる確保部とを備える。
【００７０】
本発明の一側面に係る情報処理方法は、複数のユーザのそれぞれについて、ジョブの実行に必要なライセンスを管理する情報処理方法であって、１以上のプロセッサのうちの少なくとも一つが、１以上の第１ライセンスを保有する一のユーザのジョブを受け付ける受付ステップと、１以上のプロセッサのうちの少なくとも一つが、ユーザの第１ライセンスの利用状況を記憶する第１ライセンスデータベースを参照して、空いている第１ライセンスの個数が、ジョブの実行に必要なライセンス数以上であるか否かを判定する判定ステップと、１以上のプロセッサのうちの少なくとも一つが、空いている第１ライセンスの個数が必要なライセンス数未満である場合に、複数のユーザのいずれにも関連付けられていない１以上の第２ライセンスを記憶する第２ライセンスデータベースを参照して、ジョブの実行に必要な少なくとも一つの第２ライセンスを確保し、ジョブが実行される期間に限って、確保された少なくとも一つの第２ライセンスをユーザに割り当てる確保ステップとを含む。
【００７１】
本発明の一側面に係る情報処理プログラムは、複数のユーザのそれぞれについて、ジョブの実行に必要なライセンスを管理する情報処理方法をコンピュータに実行させる情報処理プログラムであって、情報処理方法が、１以上の第１ライセンスを保有する一のユーザのジョブを受け付ける受付ステップと、ユーザの第１ライセンスの利用状況を記憶する第１ライセンスデータベースを参照して、空いている第１ライセンスの個数が、ジョブの実行に必要なライセンス数以上であるか否かを判定する判定ステップと、空いている第１ライセンスの個数が必要なライセンス数未満である場合に、複数のユーザのいずれにも関連付けられていない１以上の第２ライセンスを記憶する第２ライセンスデータベースを参照して、ジョブの実行に必要な少なくとも一つの第２ライセンスを確保し、ジョブが実行される期間に限って、確保された少なくとも一つの第２ライセンスをユーザに割り当てる確保ステップとを含む。
【００７２】
このような側面においては、ジョブを指定したユーザが保有する第１ライセンスの個数がそのジョブの実行に必要な数に満たないと、誰にも関連付けられていない第２ライセンスが追加のライセンスとしてそのユーザに割り当てられる。したがって、そのユーザへのライセンスの追加が他のユーザに影響を及ぼさない。しかも、追加された第２ライセンスはジョブを実行する期間に限って割り当てられるので、予め十分な第２ライセンスを用意しておけばその第２ライセンスが枯渇するおそれがない。以上の理由により、他のユーザに影響を与えることなく、ライセンス数が足りないユーザに追加のライセンスを提供することができる。
【００７３】
他の側面に係る情報処理システムでは、ジョブを実行する実行部を更に備え、実行部が、ジョブが終了した後に、確保された少なくとも一つの第２ライセンスが再利用できるように該少なくとも一つの第２ライセンスを解放してもよい。このように第２ライセンスを再利用できるようにすることで、予め用意すべき第２ライセンスの個数を抑えることができる。
【００７４】
他の側面に係る情報処理システムでは、第２ライセンスの利用額とユーザの予算とを比較し、該利用額が該予算の上限に達した場合に、実行部により実行されているジョブを強制的に終了または一時停止する監視部を更に備えてもよい。予算の裏付けのないジョブの実行を止めることで、情報処理システムでの計算の負荷を下げると共に、意図しない料金の負担がユーザに生ずることを未然に防止することができる。
【００７５】
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。
【００７６】
情報処理システムの構成は上記実施形態に限定されない。例えば、受付部、判定部、確保部、および監視部は解析サーバの構成要素であってもよいし、管理サーバの構成要素であってもよい。上記実施形態では管理サーバと第２ライセンスサーバとが別々に設けられたが、これらの装置が一つの装置に統合されてもよい。各ユーザの計算環境の構成も限定されず、例えば、ウェブサーバ、ライセンスサーバ、およびジョブテーブルのうちの少なくとも二つの装置が一つの装置に統合されてもよい。情報処理システムは監視部を備えなくてもよい。
【００７７】
情報処理システムで用いられる各データベースの実装方法は限定されず、例えばデータベース管理システムでもよいし、テキストファイルでもよい。また、各データベースおよび各レコードの構成は上記実施形態での例に限定されず、各データベースに対して任意の正規化又は冗長化を行ってよい。
【００７８】
上記実施形態では一時ライセンスが従量制であるが、一時ライセンスの料金体系および提供方法は何ら限定されるものではなく、任意に定めてよい。
【００７９】
少なくとも一つのプロセッサにより実行される情報処理方法の処理手順は図６〜８の例に限定されない。例えば、情報処理システム１はそれらの図におけるステップ（処理）の一部を省略してもよいし、別の順序で各ステップを実行してもよい。また、それらの図に示されるステップの任意の２以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、情報処理システム１は図６〜８に示される各ステップに加えて他のステップを実行してもよい。それらの図で示される各ステップは、情報処理システム１内に存在する少なくとも一つのプロセッサのうちの一つまたは複数のプロセッサにより実行される。稼働するプロセッサは個々のステップ（処理）毎に変わり得る。
【００８０】
情報処理システム１内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」の二つの基準のうちのどちらを用いてもよい。このような基準の選択は、二つの数値の大小関係を比較する処理についての技術的意義を変更するものではない。
【符号の説明】
【００８１】
１…情報処理システム、１０…コンピュータ群、２０…管理サーバ、３０…第２ライセンスサーバ、４０…ユーザの計算環境、４１…ウェブサーバ、４２…ジョブテーブル、４３…第１ライセンスサーバ、４４…解析サーバ、４０１…受付部、４０２…判定部、４０３…確保部、４０４…実行部、４０５…監視部、Ｐ１…情報処理プログラム、Ｐ１０…メインモジュール、Ｐ１１…受付モジュール、Ｐ１２…判定モジュール、Ｐ１３…確保モジュール、Ｐ１４…実行モジュール、Ｐ１５…監視モジュール。
【図１】
2017068636.tif 000003
【図２】
2017068636.tif 000004
【図３】
2017068636.tif 000005
【図４】
2017068636.tif 000006
【図５】
2017068636.tif 000007
【図６】
2017068636.tif 000008
【図７】
2017068636.tif 000009
【図８】
2017068636.tif 000010
【図９】
2017068636.tif 000011