(58)【調査した分野】(Int.Cl.,DB名)
前記第2ライセンスの利用額と前記ユーザの予算とを比較し、該利用額が該予算の上限に達した場合に、前記実行部により実行されているジョブを強制的に終了または一時停止する監視部
を更に備える請求項2に記載の情報処理システム。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【0012】
図1〜5を参照しながら、実施形態に係る情報処理システム1の機能および構成を説明する。情報処理システム1は、計算環境をインターネットなどの通信ネットワークを介してユーザに提供するコンピュータ・システムである。すなわち、情報処理システム1はいわゆるクラウドサービスを提供する。計算環境は、1以上のコンピュータと、そのコンピュータ上で実行されるソフトウェアとを用いて構築される。ユーザがジョブの実行を情報処理システム1に命令すると、情報処理システム1はその命令に従って所定の処理を実行し、処理結果をそのユーザに提供する。
【0013】
「ユーザ」とは、情報処理システム1を利用する人、グループ、または組織である。「ジョブ」とは、ユーザが情報処理システム1に依頼する仕事の単位である。ジョブの種類は何ら限定されないが、例として、構造解析や流体解析などのシミュレーションと、ビッグデータの集計または解析とが挙げられる。
【0014】
本実施形態では、ユーザは、ジョブを情報処理システム1に実行させるためにライセンスを得なければならない場合がある。「ライセンス」とは、ユーザが情報処理システム1を利用する権利または資格である。情報処理システム1は、ライセンスを要することなく実行できるプログラム(オープンソースのプログラム)をユーザに提供してもよい。ただし、本実施形態の特徴の一つはライセンスの管理であるので、以下では、ユーザがライセンスを要する場合について説明する。本実施形態では2種類のライセンスが存在する。
【0015】
一つは、ユーザが予め保有するライセンスであり、本明細書ではこれを「保有ライセンス」または「第1ライセンス」という。ユーザは事前にライセンスを購入して保有することができる。なお、ユーザが誰からライセンスを購入するかは何ら限定されない。一般に、保有ライセンスには情報処理システム1の利用に関する制約が設定されるが、その制約の内容は限定されない。例えば、保有ライセンスには、利用可能期間や、一度に利用できるハードウェア資源の量(例えばコンピュータの台数)に関する制約などが設定され得る。ユーザは1以上のライセンスを専有することができる。あるユーザの保有ライセンスを他人は利用できない。また、ユーザは自分の保有ライセンスを他人に貸与することができない。
【0016】
もう一つは、ある一つのジョブが実行される期間に限ってユーザに提供されるライセンスであり、本明細書ではこれを「一時ライセンス」または「第2ライセンス」という。この一時ライセンスは、恒久的にではなく一時的にユーザに割り当てられる。情報処理システム1は十分な量の一時ライセンスを、情報処理システム1のユーザの誰とも関連付けない態様で、予め用意する。そして、情報処理システム1はユーザが一時ライセンスを必要とする期間に限って、必要な量の一時ライセンスをそのユーザに関連付ける。したがって、ある一人のユーザのために用いられた一時ライセンスが、その後に別のユーザのために用いられることがあり得る。ただし、一つの一時ライセンスを複数のユーザが同時に使用することはできない。
【0017】
本実施形態では、一時ライセンスは、利用時間に応じて料金が上がっていく従量制(すなわち、従量制ライセンス)であるとする。これに関連し、本実施形態では、各ユーザは一時ライセンスを利用する際に予算の制約を受けるものとする。この予算は、一時ライセンスの利用時間および利用数に応じて減っていく。一方で、ユーザは費用を負担することでその予算を増やすことができる。各ユーザの予算および利用額は情報処理システム1内の所定のデータベース(図示せず)に記憶されるものとする。
【0018】
ユーザはジョブの実行を情報処理システム1に指示する際に、どのようにライセンスを利用するかを指定する。本実施形態ではライセンスの利用態様として以下の三つが用意されるが、そのうちの自動判定が情報処理システム1の特徴の一つである。ライセンスの自動判定は、保有ライセンスが足りない場合に一時ライセンスを追加する態様であり、ライセンスのハイブリッド利用であるともいえる。
・保有ライセンスのみの利用
・一時ライセンスのみの利用
・利用するライセンスの自動判定
【0019】
情報処理システム1の全体構成を
図1に示す。情報処理システム1はインターネットなどの通信ネットワークNを介して1以上のユーザ端末Tと通信することができる。
図1では3台のユーザ端末Tを示すが、ユーザ端末Tの台数は何ら限定されない。
【0020】
ユーザ端末Tは、ユーザが所有または利用するコンピュータである。ユーザ端末Tの具体的な種類は限定されない。例えば、ユーザ端末Tは、据置型または携帯型のパーソナルコンピュータでもよいし、高機能携帯電話機(スマートフォン)や携帯電話機、携帯情報端末(PDA)などの携帯端末でもよい。あるいは、複数の端末の組合せが論理的に一つのユーザ端末Tとして機能してもよい。
【0021】
ユーザ端末Tは、ユーザの指示に応じて情報処理システム1にアクセスし、ジョブを入力するための画面を受信および表示する。ユーザがその画面を介してジョブに関する情報(ジョブ情報)を入力すると、ユーザ端末Tはそのジョブ情報を情報処理システム1に送信する。なお、ジョブ情報については後で詳細に説明する。その後、ユーザ端末Tは、情報処理システム1から自動的に、またはユーザの更なる指示に応じて、処理結果を受信および表示する。本実施形態ではユーザ端末Tに表示される画面(入出力インタフェース)がウェブページであることを前提とするが、画面の提供方法は何ら限定されない。
【0022】
情報処理システム1は、コンピュータ群10、管理サーバ20、第2ライセンスサーバ30、および各ユーザの計算環境40を備える。各ユーザの計算環境40は、ウェブサーバ41、ジョブテーブル42、第1ライセンスサーバ43、および解析サーバ44を備える。本実施形態では、各ユーザの計算環境40において最初から用意される要素は、ウェブサーバ41、ジョブテーブル42、および第1ライセンスサーバ43である。これに対して、解析サーバ44は、ユーザから受け付けたジョブを実行するために設定される仮想的なサーバである。
【0023】
コンピュータ群10は、予め用意される複数のコンピュータの集合である。一般に、個々のコンピュータは高性能であり、例えば複数のプロセッサおよび大容量のメモリを備える。
【0024】
管理サーバ20は、ユーザから受け付けたジョブ(ジョブ情報)に応じて、該ユーザの計算環境40内に解析サーバ44を設定するコンピュータである。管理サーバ20は、コンピュータ群10内のコンピュータを用いて解析サーバ44を設定する。管理サーバ20が解析サーバ44を設定するタイミングは限定されず、例えば、管理サーバ20はジョブを受け付けたことに応じて解析サーバ44を設定してもよい。あるいは、管理サーバ20はジョブの実行に必要なライセンスが確保された後に解析サーバ44を設定してもよい。ジョブが終了すると、管理サーバ20は、解析サーバ44として機能していたコンピュータを解放する。解放されたコンピュータは将来の他のジョブを実行するために再び利用され得る。1台のコンピュータが複数のプロセッサ(例えばCPU)を有するのであれば、該複数のプロセッサのうちの一部のプロセッサのみが解析サーバ44として機能することもあり得る。
【0025】
第2ライセンスサーバ30は、一時ライセンス(第2ライセンス)に関する情報を記憶するデータベース(第2ライセンスデータベース)である。第2ライセンスサーバ30を参照することで、現時点でどの一時ライセンスが利用されているかを知ることができる。
【0026】
第2ライセンスサーバ30のデータ構成は限定されない。例えば、一つの一時ライセンスが、下記の3項目を含むレコードで表現されてもよい。
・一時ライセンスを一意に特定する識別子(一時ライセンスID)
・一時ライセンスが割り当てられているユーザの識別子(ユーザID)
・一時ライセンスが割り当てられているジョブの識別子(ジョブID)
このデータ構成の例では、ユーザIDおよびジョブIDの初期値は空値(NULL)である。一時ライセンスがユーザに割り当てられると、そのユーザのIDと、そのユーザが指示したジョブのIDとが対応のレコードに設定される。一時ライセンスを用いたジョブが終了すると、その一時ライセンスに対応するレコードのユーザIDおよびジョブIDが空値に更新される。第2ライセンスサーバ30を参照または更新する装置は限定されず、例えば管理サーバ20または解析サーバ44がその処理を実行してもよい。
【0027】
次に、各ユーザの計算環境40の概要を説明する。ウェブサーバ41は、ジョブの実行を指示したりジョブの実行結果を確認したりするための画面(ウェブページ)をユーザ端末Tに提供するコンピュータである。ユーザはその画面を介して、ジョブの実行条件を入力し、ジョブの実行を指示し、処理結果を確認することができる。
【0028】
ジョブテーブル42は、ウェブサーバ41がユーザ端末Tから受信したジョブを示すジョブ情報を記憶するデータベースである。ジョブテーブル42は待ち行列として機能してもよい。
図2にジョブ情報の例を示す。本実施形態では、ジョブ情報の個々のレコードは、ジョブID、解析ツール、計算モデルファイル、インスタンスID、インスタンス数、実行コマンド、およびライセンス利用種別という項目を含む。
【0029】
ジョブIDは、個々のジョブを一意に特定するための識別子である。解析ツールは、ジョブの実行に用いられるソフトウェアを示す。計算モデルファイルは、ジョブの実行に必要な各種パラメータが記述されたファイルを示す。例えば、ジョブが構造解析に関するものであれば、計算モデルファイルは物体の形状や、境界条件、時間軸、物体に加わる外力などを示すデータを含み得る。インスタンスIDは、解析サーバ44を一意に特定するための識別子である。インスタンス数は、解析サーバ44の構築に用いるコンピュータの数である。実行コマンドは、解析ツールを用いたジョブの実行を解析サーバ44に指示するための命令である。ライセンス利用種別は、ジョブを実行する際のライセンスの利用態様を示す。本実施形態では、ライセンス利用種別は「1」、「2」、「3」のいずれかで表され、「1」は保有ライセンスのみの利用を示し、「2」は一時ライセンスのみの利用を示し、「3」は利用するライセンスの自動判定を示すものとする。
図2は例えば、ジョブ「0003」がツールAを用いて実行され、その実行に3台のコンピュータが用いられ、その実行の際に利用するライセンスが自動的に判定されることを示す。
【0030】
第1ライセンスサーバ43は、ユーザの保有ライセンス(第1ライセンス)の利用状況を記憶するデータベース(第1ライセンスデータベース)である。第1ライセンスサーバ43を参照することで、ユーザが何個のライセンスを保有し、現時点でそのうち何個のライセンスを利用しているかを知ることができる。
【0031】
第1ライセンスサーバ43のデータ構成は限定されない。例えば、一つの保有ライセンスが、下記の2項目を含むレコードで表現されてもよい。
・保有ライセンスを一意に特定する識別子(保有ライセンスID)
・保有ライセンスが割り当てられているジョブの識別子(ジョブID)
このデータ構成の例では、ジョブIDの初期値は空値(NULL)である。保有ライセンスがジョブに割り当てられると、そのジョブのIDが対応のレコードに設定される。保有ライセンスを用いたジョブが終了すると、その保有ライセンスに対応するレコードのジョブIDが空値に更新される。第1ライセンスサーバ43を参照または更新する装置は限定されず、例えば管理サーバ20または解析サーバ44がその処理を実行してもよい。
【0032】
情報処理システム1内には様々な種類のコンピュータが存在する。そのコンピュータ100の一般的なハードウェア構成を
図3に示す。コンピュータ100は、オペレーティングシステムやアプリケーション・プログラムなどを実行するプロセッサ(例えばCPU)101と、ROMおよびRAMで構成される主記憶部102と、ハードディスクやフラッシュメモリなどで構成される補助記憶部103と、ネットワークカードまたは無線通信モジュールで構成される通信制御部104と、キーボードやマウスなどの入力装置105と、モニタなどの出力装置106とを備える。
【0033】
情報処理システム1内の各機能要素は、プロセッサ101または主記憶部102の上に所定のソフトウェアを読み込ませ、プロセッサ101の制御の下で通信制御部104や、入力装置105、出力装置106などを動作させ、主記憶部102または補助記憶部103におけるデータの読み出し及び書き込みを行うことで実現される。処理に必要なデータおよびデータベースは主記憶部102または補助記憶部103内に格納される。
【0034】
図4を参照しながら、情報処理システム1の機能および構成をより具体的に説明する。
図4は、ある一人のユーザの計算環境40と、その計算環境40が参照し得る第2ライセンスサーバ30とを示す。
図4に示すように、情報処理システム1は機能的構成要素として受付部401、判定部402、確保部403、実行部404、および監視部405を備える。各機能要素がどのコンピュータ100上に実装されるかは限定されない。
【0035】
受付部401は、保有ライセンスを持つユーザのジョブを受け付ける機能要素である。例えば、受付部401はウェブサーバ41、管理サーバ20、または解析サーバ44上で実現される。「ユーザのジョブを受け付ける」とは、ユーザにより指示されたジョブに関する情報、すなわちジョブ情報を取得することを意味する。ジョブの受け付けは、ジョブ情報をユーザ端末Tから直接に受信することと、ユーザ端末Tから受信して情報処理システム1内に記憶されたジョブ情報を後で読み出すこととの双方を含む概念である。本実施形態では、ウェブサーバ41がユーザ端末Tからジョブ情報を受信してジョブテーブル42に格納し、管理サーバ20または解析サーバ44が、ジョブテーブル42からそのジョブ情報を読み出すことを前提とするが、ジョブを受け付ける態様はこれに限定されず、任意の仕組みを採用してよい。受付部401は、受け付けたジョブ情報を判定部402に出力する。受付部401は、ジョブを指示したユーザを示すユーザIDもユーザ端末Tから直接にまたは間接的に取得し、そのユーザIDも判定部402に出力する。
【0036】
ジョブ情報はユーザにより入力される。
図5はウェブサーバ41により提供される入力画面の例を示し、特に、ライセンスの利用態様を指定する画面を示す。
図5の例では、ウェブページ50での入力に応じて、ライセンスの利用態様を選択するためのモーダルウィンドウ51が表示されている。ユーザは三つの利用態様の中から一つを選択することができる(
図5は、「保有ライセンスのみの利用」が選択された状態を示す)。当然ながら、入力画面の構成はこの例に限定されない。
【0037】
判定部402は、第1ライセンスサーバ43を参照して、空いている保有ライセンスの個数が、ジョブの実行に必要なライセンス数以上であるか否かを判定する機能要素である。例えば、受付部401は解析サーバ44または管理サーバ20上で実現される。
【0038】
まず、判定部402は、入力されたジョブ情報のライセンス利用種別を参照する。後続の処理はこのライセンス利用種別により変わる。
【0039】
ライセンス利用種別が「1」である場合には、判定部402はジョブの実行に必要なライセンス数(以下では「必要数」ともいう)を特定する。この処理の具体的な方法は限定されない。例えば、判定部402はライセンスに関するルールを予め記憶しており、必要なライセンス数をジョブ情報およびそのルールから求めてもよい。必要なライセンス数は、例えば解析ツールおよびインスタンス数のうちの少なくとも一つに基づいて決められてもよい。さらに、判定部402は第1ライセンスサーバ43を参照することで、空いている保有ライセンスの個数(以下では「空き数」ともいう)を特定する。続いて、判定部402は空き数と必要数とを比較する。
【0040】
空き数が必要数以上であれば、判定部402はジョブを即時に実行できると判断し、ジョブ情報を実行部404に出力する。また、判定部402は第1ライセンスサーバ43にアクセスし、これからジョブの実行に用いる1以上の保有ライセンスのレコードに、ジョブ情報で示されるジョブIDを設定する。
【0041】
一方、空き数が必要数未満であれば、判定部402はジョブ情報を実行部404に出力することなく所定の時間待機する。その待機時間が経過すると、判定部402は再び第1ライセンスサーバ43を参照することで保有ライセンスの空き数を特定し、その空き数と必要数とを比較する。もし空き数が必要数以上であれば、判定部402はジョブを実行できると判断し、ジョブ情報を実行部404に出力すると共に、第1ライセンスサーバ43内のレコードを上記のように更新する。一方、空き数が必要数未満であれば、判定部402は再び所定の時間待機する。空き数が必要数未満ということは、情報処理システム1がユーザのために別のジョブを実行中であることを意味する。その別のジョブが終了すれば、そのジョブのために確保されていた保有ライセンスが解放されて再利用可能になるので、待機することで次のジョブを実行することが可能になる。
【0042】
ライセンス利用種別が「2」である場合には、判定部402はジョブの実行に必要なライセンス数を特定する。この必要数の特定方法は、ライセンス利用種別が「1」である場合と同様である。続いて、判定部402はジョブ情報およびユーザIDを確保部403に出力すると共に、特定した個数を必要な一時ライセンスの個数として確保部403に出力する。ライセンス利用種別が「2」である場合にはジョブは一時ライセンスのみを用いて実行されるので、判定部402は保有ライセンスの利用状況を参照する必要がない。
【0043】
ライセンス利用種別が「3」である場合には、判定部402はジョブの実行に必要なライセンス数(必要数)を特定する。この特定方法は、ライセンス利用種別が「1」である場合と同様である。さらに、判定部402は第1ライセンスサーバ43を参照することで、空いている保有ライセンスの個数(空き数)を特定する。そして、判定部402は空き数と必要数とを比較する。
【0044】
空き数が必要数以上であれば、判定部402はジョブを即時に実行できると判断し、ジョブ情報を実行部404に出力する。また、判定部402は第1ライセンスサーバ43にアクセスし、これからジョブの実行に用いる1以上の保有ライセンスのレコードに、ジョブ情報で示されるジョブIDを設定する。このように、保有ライセンスのみでジョブを実行できる場合には、判定部402はライセンス利用種別が「1」である場合と同様の処理を実行する。
【0045】
一方、空き数が必要数未満であれば、判定部402は必要数と空き数との差分を必要な一時ライセンスの個数として求め、その個数、ジョブ情報、およびユーザIDを確保部403に出力する。
【0046】
確保部403は、ジョブの実行に必要な一時ライセンスを確保し、そのジョブが実行される期間に限って、確保された一時ライセンスをユーザに割り当てる機能要素である。例えば、確保部403は解析サーバ44または管理サーバ20上で実現される。
【0047】
確保部403は第2ライセンスサーバ30を参照して、判定部402から入力された個数の一時ライセンスを、ジョブが実行される期間に限って確保する。「ジョブが実行される期間に限って一時ライセンスを確保する」とは、ジョブを実行する前に、他のジョブ(他のユーザのジョブ、および自分の他のジョブ)の実行に用いられないようにその一時ライセンスを設定し、ジョブが完了するとその一時ライセンスを、他のジョブを実行できるように解放することを意味する。具体的には、確保部403は第2ライセンスサーバ30にアクセスして、入力された個数の一時ライセンスに対応する1以上のレコードにユーザIDおよびジョブIDを設定する。一時ライセンスを確保すると、確保部403はジョブ情報およびユーザIDを実行部404に出力する。
【0048】
実行部404は、ユーザにより指示されたジョブを実行する機能要素である。実行部404は解析サーバ44上で実現される。ジョブが終了すると、実行部404はジョブの結果を出力する。
【0049】
もし1以上の保有ライセンスを用いてジョブを実行した場合には、実行部404はその保有ライセンスに対応する第1ライセンスサーバ43内のレコードからジョブIDを削除することで、その保有ライセンスを解放する。保有ライセンスを解放するとは、保有ライセンスとジョブとの関連付けを消去することを意味する。当然ながら、ユーザと保有ライセンスとの関連付けは、その解放処理で消去されることなく維持される。
【0050】
もし1以上の一時ライセンスを用いてジョブを実行した場合には、実行部404はその一時ライセンスに対応する第2ライセンスサーバ30内のレコードからユーザIDおよびジョブIDを削除することで、その一時ライセンスを解放する。一時ライセンスを解放するとは、一時ライセンスと、ユーザおよびジョブの組合せとの関連付けを消去することを意味する。この解放処理により、その一時ライセンスは、情報処理システム1のユーザの誰とも関連付けられない状態に戻る。
【0051】
実行部404はジョブの実行結果を任意の方法で出力してよい。例えば、実行部404はウェブサーバ41を介してその結果をユーザ端末Tに送信してもよい。あるいは、実行部404は情報処理システム1内の所定のデータベース(図示せず)にその結果を格納してもよく、この場合には、ユーザ端末Tはウェブサーバ41を介してそのデータベースから結果を読み出すことができる。
【0052】
ジョブの実行に一時ライセンスが用いられる場合には、実行部404は、確保されている一時ライセンスの個数とジョブの実行時間とに基づいて、所定のデータベース(図示せず)に記憶されている利用額を更新する。この更新は、今回のジョブの実行に掛かった費用を加算する処理である。
【0053】
監視部405は、ユーザの予算および一時ライセンスの利用額を参照して該ユーザのジョブの実行を制御する機能要素である。監視部405はウェブサーバ41、管理サーバ20、または解析サーバ44上で実現される。
【0054】
監視部405は、一時ライセンスの利用額と予算とを所定のタイミングで(例えば定期的に)に比較する。もし利用額が予算の上限に達した場合には、監視部405はユーザの実行中のジョブが存在するか否かを判定する。利用額が予算の上限に達しかつ実行中のジョブが存在する場合には、監視部405はユーザ毎に予め設定されている条件に従って、下記の処理A,Bのいずれか一つを実行する。
・処理A:実行部404にジョブを実行させ続ける。そして、ジョブの終了後に、ユーザに不足額を請求するための処理を実行する。
・処理B:実行中のジョブを強制的に終了させる。監視部405は、その後にユーザが追加の料金を支払って予算を確保した場合に、実行部404にそのジョブを最初から再実行させてもよい。
【0055】
なお、処理Bにおいて、監視部405は実行中のジョブを強制的に一時停止させ、ユーザが予算を確保した後に実行部404にそのジョブを中断時点から再開させてもよい。
【0056】
一方、一時ライセンスの利用額が予算の上限に達していない場合、または実行中のジョブが存在しない場合には、監視部405はその後の処理を実行することなく、次の監視タイミングまで待機する。次回の監視タイミングの設定方法は限定されない。
【0057】
次に、
図6〜8を参照しながら、情報処理システム1の動作を説明するとともに、本実施形態に係る情報処理方法について説明する。
【0058】
図6を参照しながら、ジョブの受付から実行までの一連の処理を説明する。まず、受付部401がジョブ(ジョブ情報)を受け付け(ステップS11、受付ステップ)、判定部402がライセンス利用種別を判定する(ステップS12)。
【0059】
もしその種別が「1」(保有ライセンス)である場合には、判定部402は保有ライセンスの空き数とジョブの実行に必要なライセンスの個数とを比較する(ステップS13)。そして、空き数が必要数以上である場合には(ステップS13においてYES)、管理サーバ20がジョブ情報に基づいて解析サーバ44を設定し(ステップS14)、実行部404がジョブを実行する(ステップS15)。一方、空き数が必要数未満である場合には(ステップS13においてNO)、判定部402は所定時間待機した後にステップS13を再度実行する。
【0060】
ステップS12においてライセンス利用種別が「2」(一時ライセンス)である場合には、確保部403が、必要な1以上の一時ライセンスを確保し(ステップS16)、続いて、管理サーバ20がジョブ情報に基づいて解析サーバ44を設定する(ステップS17)。そして、実行部404がジョブを実行し(ステップS18)、ジョブが終了するとその一時ライセンスを解放する(ステップS19)。
【0061】
ステップS12においてライセンス利用種別が「3」(利用するライセンスの自動判定)である場合には、自動判定に基づいてジョブが実行される(ステップS20)。
図7を参照しながらこの処理の詳細を説明する。まず、判定部402が、保有ライセンスの空き数とジョブの実行に必要なライセンスの個数とを比較する(ステップS201、判定ステップ)。そして、空き数が必要数以上である場合には(ステップS201においてYES)、管理サーバ20がジョブ情報に基づいて解析サーバ44を設定し(ステップS202)、実行部404がジョブを実行する(ステップS203)。一方、空き数が必要数未満である場合には(ステップS201においてNO)、確保部403が、必要な1以上の一時ライセンスを確保し(ステップS204、確保ステップ)、続いて、管理サーバ20がジョブ情報に基づいて解析サーバ44を設定する(ステップS205)。そして、実行部404がジョブを実行し(ステップS206)、ジョブが終了するとその一時ライセンスを解放する(ステップS207)。
【0062】
図6,7に示す例では、ジョブの実行に必要なライセンスが確保された後に管理サーバ20が解析サーバ44(すなわち、実行部404)を構築し、これにより、その解析サーバ44を待機させることなく直ぐに稼働させることができる。ただし、解析サーバ44を設定(構築)するタイミングはこれに限定されない。例えば、管理サーバ20が解析サーバ44を設定した後に判定部402がライセンス利用種別を判定してもよい。具体的には、管理サーバ20は、受付部401がジョブ情報を受け付けたことに応じて(すなわち、上記ステップS11およびステップS12の間において)解析サーバ44を設定してもよい。
【0063】
図8を参照しながら監視部405の動作を説明する。監視部405は、ユーザの一時ライセンスの利用額が予算の上限に達したか否かを判定し(ステップS21)、利用額が予算の上限に達した場合にはさらに、実行中のジョブが存在するか否かを判定する(ステップS22)。
【0064】
監視部405は、利用額が予算の上限に達しかつ実行中のジョブが存在する場合にのみ(ステップS21,S22の双方においてYES)、事前の設定に基づいてジョブを実行し続けるか否かを判定する(ステップS23)。実行部404にジョブを実行させ続ける場合には(ステップS23においてYES)、監視部405はそのジョブが終了した後に、ユーザに不足額を請求するための処理を実行する(ステップS24)。一方、ジョブを止める場合には(ステップS23においてNO)、監視部405はジョブを強制終了させる(ステップS25)。監視部405はステップS25の後に、ユーザが追加の予算を確保するまでその状態を維持し(ステップS26においてNO)、その後、追加の予算が確保された場合に(ステップS26においてYES)実行部404にジョブを再実行させてもよい(ステップS27)。
【0065】
次に、
図9を参照しながら、1以上のコンピュータ100を情報処理システム1として機能させるための情報処理プログラムP1を説明する。
【0066】
情報処理プログラムP1は、メインモジュールP10、受付モジュールP11、判定モジュールP12、確保モジュールP13、実行モジュールP14、および監視モジュールP15を備える。
【0067】
メインモジュールP10は、ジョブの実行を統括的に実行する部分である。受付モジュールP11、判定モジュールP12、確保モジュールP13、実行モジュールP14、および監視モジュールP15を実行することにより実現される機能はそれぞれ、上記の受付部401、判定部402、確保部403、実行部404、および監視部405の機能と同様である。
【0068】
情報処理プログラムP1は、例えば、CD−ROMやDVD−ROM、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。あるいは、情報処理プログラムP1は、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【0069】
以上説明したように、本発明の一側面に係る情報処理システムは、複数のユーザのそれぞれについて、ジョブの実行に必要なライセンスを管理する情報処理システムであって、1以上の第1ライセンスを保有する一のユーザのジョブを受け付ける受付部と、ユーザの第1ライセンスの利用状況を記憶する第1ライセンスデータベースを参照して、空いている第1ライセンスの個数が、ジョブの実行に必要なライセンス数以上であるか否かを判定する判定部と、空いている第1ライセンスの個数が必要なライセンス数未満である場合に、複数のユーザのいずれにも関連付けられていない1以上の第2ライセンスを記憶する第2ライセンスデータベースを参照して、ジョブの実行に必要な少なくとも一つの第2ライセンスを確保し、ジョブが実行される期間に限って、確保された少なくとも一つの第2ライセンスをユーザに割り当てる確保部とを備える。
【0070】
本発明の一側面に係る情報処理方法は、複数のユーザのそれぞれについて、ジョブの実行に必要なライセンスを管理する情報処理方法であって、1以上のプロセッサのうちの少なくとも一つが、1以上の第1ライセンスを保有する一のユーザのジョブを受け付ける受付ステップと、1以上のプロセッサのうちの少なくとも一つが、ユーザの第1ライセンスの利用状況を記憶する第1ライセンスデータベースを参照して、空いている第1ライセンスの個数が、ジョブの実行に必要なライセンス数以上であるか否かを判定する判定ステップと、1以上のプロセッサのうちの少なくとも一つが、空いている第1ライセンスの個数が必要なライセンス数未満である場合に、複数のユーザのいずれにも関連付けられていない1以上の第2ライセンスを記憶する第2ライセンスデータベースを参照して、ジョブの実行に必要な少なくとも一つの第2ライセンスを確保し、ジョブが実行される期間に限って、確保された少なくとも一つの第2ライセンスをユーザに割り当てる確保ステップとを含む。
【0071】
本発明の一側面に係る情報処理プログラムは、複数のユーザのそれぞれについて、ジョブの実行に必要なライセンスを管理する情報処理方法をコンピュータに実行させる情報処理プログラムであって、情報処理方法が、1以上の第1ライセンスを保有する一のユーザのジョブを受け付ける受付ステップと、ユーザの第1ライセンスの利用状況を記憶する第1ライセンスデータベースを参照して、空いている第1ライセンスの個数が、ジョブの実行に必要なライセンス数以上であるか否かを判定する判定ステップと、空いている第1ライセンスの個数が必要なライセンス数未満である場合に、複数のユーザのいずれにも関連付けられていない1以上の第2ライセンスを記憶する第2ライセンスデータベースを参照して、ジョブの実行に必要な少なくとも一つの第2ライセンスを確保し、ジョブが実行される期間に限って、確保された少なくとも一つの第2ライセンスをユーザに割り当てる確保ステップとを含む。
【0072】
このような側面においては、ジョブを指定したユーザが保有する第1ライセンスの個数がそのジョブの実行に必要な数に満たないと、誰にも関連付けられていない第2ライセンスが追加のライセンスとしてそのユーザに割り当てられる。したがって、そのユーザへのライセンスの追加が他のユーザに影響を及ぼさない。しかも、追加された第2ライセンスはジョブを実行する期間に限って割り当てられるので、予め十分な第2ライセンスを用意しておけばその第2ライセンスが枯渇するおそれがない。以上の理由により、他のユーザに影響を与えることなく、ライセンス数が足りないユーザに追加のライセンスを提供することができる。
【0073】
他の側面に係る情報処理システムでは、ジョブを実行する実行部を更に備え、実行部が、ジョブが終了した後に、確保された少なくとも一つの第2ライセンスが再利用できるように該少なくとも一つの第2ライセンスを解放してもよい。このように第2ライセンスを再利用できるようにすることで、予め用意すべき第2ライセンスの個数を抑えることができる。
【0074】
他の側面に係る情報処理システムでは、第2ライセンスの利用額とユーザの予算とを比較し、該利用額が該予算の上限に達した場合に、実行部により実行されているジョブを強制的に終了または一時停止する監視部を更に備えてもよい。予算の裏付けのないジョブの実行を止めることで、情報処理システムでの計算の負荷を下げると共に、意図しない料金の負担がユーザに生ずることを未然に防止することができる。
【0075】
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0076】
情報処理システムの構成は上記実施形態に限定されない。例えば、受付部、判定部、確保部、および監視部は解析サーバの構成要素であってもよいし、管理サーバの構成要素であってもよい。上記実施形態では管理サーバと第2ライセンスサーバとが別々に設けられたが、これらの装置が一つの装置に統合されてもよい。各ユーザの計算環境の構成も限定されず、例えば、ウェブサーバ、ライセンスサーバ、およびジョブテーブルのうちの少なくとも二つの装置が一つの装置に統合されてもよい。情報処理システムは監視部を備えなくてもよい。
【0077】
情報処理システムで用いられる各データベースの実装方法は限定されず、例えばデータベース管理システムでもよいし、テキストファイルでもよい。また、各データベースおよび各レコードの構成は上記実施形態での例に限定されず、各データベースに対して任意の正規化又は冗長化を行ってよい。
【0078】
上記実施形態では一時ライセンスが従量制であるが、一時ライセンスの料金体系および提供方法は何ら限定されるものではなく、任意に定めてよい。
【0079】
少なくとも一つのプロセッサにより実行される情報処理方法の処理手順は
図6〜8の例に限定されない。例えば、情報処理システム1はそれらの図におけるステップ(処理)の一部を省略してもよいし、別の順序で各ステップを実行してもよい。また、それらの図に示されるステップの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、情報処理システム1は
図6〜8に示される各ステップに加えて他のステップを実行してもよい。それらの図で示される各ステップは、情報処理システム1内に存在する少なくとも一つのプロセッサのうちの一つまたは複数のプロセッサにより実行される。稼働するプロセッサは個々のステップ(処理)毎に変わり得る。
【0080】
情報処理システム1内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」の二つの基準のうちのどちらを用いてもよい。このような基準の選択は、二つの数値の大小関係を比較する処理についての技術的意義を変更するものではない。