(57)【要約】【課題】寄託ジョブがアプリケーションライセンスの利用可能でないことに起因する突然の終了を回避して、効率を向上したジョブスケジューリングシステムの実現。【解決手段】コンピューティングシステムにおけるジョブ実行タイミングをスケジュールするジョブスケジューリングシステム10であって、未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信するジョブ情報受信モジュール12と、指示されたコンピューティングハードウエア資源およびアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、ジョブの実行をスケジュールするジョブ実行スケジュラ14と、を有するジョブスケジューリングシステム。【選択図】図１
2015049903.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングシステムにおけるジョブ実行タイミングをスケジュールするように構成されたジョブスケジューリングシステムであって、
コンピューティングシステムにおいて未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信するように構成されたジョブ情報受信モジュールと、
前記指示されたコンピューティングハードウエア資源および前記指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、前記ジョブの実行をスケジュールするように構成されたジョブ実行スケジュラと、を有するジョブスケジューリングシステム。
【請求項２】
ジョブの代わりに前記指示されたコンピューティングハードウエア資源を予約するように構成されたハードウエアスケジューリングモジュールと、
ジョブの代わりに前記指示されたアプリケーションライセンスの利用可能性をチェックするように構成されたライセンススケジューリングモジュールと、をさらに備え、
前記ジョブのスケジューリングの実行は、前記予約され指示されたコンピューティングハードウエア資源が有効である時点まで、コンピューティングシステムへの前記ジョブの実行の指示を遅延させることを含む請求項１に記載のジョブスケジューリングシステム。
【請求項３】
前記ジョブの実行に必要なアプリケーションライセンスの前記指示は、前記ジョブが実行可能なアプリケーションライセンスの最適な割り当ての指示で、そこから前記ライセンススケジューリングモジュールが前記ジョブが実行可能なアプリケーションライセンスの最小限の許容できる割り当てを計算するように構成された指示を含み、
前記ジョブの代わりにアプリケーションライセンスの前記指示された割り当ての利用可能性のチェックは、アプリケーションライセンスの前記最適な割り当てが利用可能であるかをチェックすることを含み、もし利用可能でなければ、アプリケーションライセンスの前記最適な割り当てより少なく前記最小限の許容できる割り当てより多いかまたは同じであるアプリケーションライセンスの割り当てが利用可能であるかチェックすることを含む請求項２に記載のジョブスケジューリングシステム。
【請求項４】
前記ライセンススケジューリングモジュールは、もしアプリケーションライセンスのチェックした割り当てが利用可能であれば、前記ジョブの代わりにライセンスの前記利用可能な割り当てを取得するように構成される請求項２または３に記載のジョブスケジューリングシステム。
【請求項５】
前記ライセンススケジューリングモジュールは、前記アプリケーションライセンスが予約または獲得されるまで、または前記ジョブが完了したことを指示するタイミングが経過するまで、前記ジョブの代わりにアプリケーションライセンスの前記指示された割り当ての利用可能性をチェックするように構成される請求項２から４のいずれか１項に記載のジョブスケジューリングシステム。
【請求項６】
リクエストされた前記ライセンスの獲得は、前記ジョブの代わりにライセンスの前記利用可能な割り当てを獲得および保持する、前記ジョブ用の委任ライセンスサーバを起動することを含む請求項２から５のいずれか１項に記載のジョブスケジューリングシステム。
【請求項７】
前記ライセンススケジューリングモジュールは、ライセンスの割り当てがリアルライセンスサーバから利用可能であるとされたかおよび／または現在実行している他のジョブの委任ライセンスサーバから利用可能であるとされたかをチェックするように構成される請求項６に記載のジョブスケジューリングシステム。
【請求項８】
前記ジョブ情報は、前記ジョブが完了したことを指示するタイミングの指示を含み、
前記ライセンススケジューリングモジュールは、もし前記ジョブ用のアプリケーションライセンスの前記チェックした割り当てが前記指示されたタイミング前に完了するようにスケジュールされた他のジョブの委任ライセンスサーバから利用可能であるとされたことを確認すると、前記ジョブ用の前記指示されたアプリケーションライセンスを予約し、前記他のジョブの完了時に前記他のジョブから前記指示されたアプリケーションライセンスを受信する前記ジョブ用の委任ライセンスサーバを起動するように構成される請求項６または７に記載のジョブスケジューリングシステム。
【請求項９】
前記ジョブ実行スケジュラは、ジョブの完了を前記ライセンススケジューリングモジュールに通知するように構成され、前記ライセンススケジューリングモジュールは、前記完了したジョブの前記委任ライセンスサーバを停止し、前記停止した委任ライセンスサーバにより保持されたアプリケーションライセンスを、待機中の委任ライセンスサーバまたはリアルライセンスサーバに送信するように構成される請求項６から８のいずれか１項に記載のジョブスケジューリングシステム。
【請求項１０】
前記ジョブ実行スケジュラおよび前記ハードウエア実行スケジュラは、ジョブスケジュラの部品として提供され、
前記ジョブ受信モジュールおよび前記ライセンススケジューリングモジュールは、前記ジョブ実行スケジュラ、前記ハードウエア実行スケジュラおよび１つ以上のリアルライセンスサーバと相互作用する分離したプロセスとして提供される請求項２から９のいずれか１項に記載のジョブスケジューリングシステム。
【請求項１１】
コンピューティングシステムにおけるジョブ実行タイミングをスケジュールする方法であって、
コンピューティングシステムにおいて未実行ジョブを定義し、前記ジョブの実行に必要なコンピューティングハードウエア資源の指示、および前記ジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信し、
前記指示されたコンピューティングハードウエア資源および前記指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、前記ジョブの実行を調整する方法。
【請求項１２】
コンピューティングシステムにおいて未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信するジョブ情報受信モジュールと、前記指示されたコンピューティングハードウエア資源および前記指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、前記ジョブの実行をスケジュールするジョブ実行スケジュラと、を有し、コンピューティングシステムにおけるジョブ実行タイミングをスケジュールするように構成されたジョブスケジューリングシステムと、
前記スケジュールされたジョブを実行するように構成されたコンピューティングハードウエア資源と、を備えるコンピューティングシステム。
【請求項１３】
コンピューティング装置を、
コンピューティングシステムにおいて未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信するように構成されたジョブ情報受信モジュールと、
前記指示されたコンピューティングハードウエア資源および前記指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、前記ジョブの実行をスケジュールするように構成されたジョブ実行スケジュラと、を有し、
コンピューティングシステムにおけるジョブ実行タイミングをスケジュールするジョブスケジューリングシステムとして機能させるプログラム。
【請求項１４】
コンピューティング装置を、
コンピューティングシステムにおいて未実行ジョブを定義し、前記ジョブの実行に必要なコンピューティングハードウエア資源の指示、および前記ジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信し、
前記指示されたコンピューティングハードウエア資源および前記指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、前記ジョブの実行を調整し、コンピューティングシステムにおけるジョブ実行タイミングをスケジュールするように動作させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューティング（コンピュータ利用）分野に関し、特にコンピューティングシステムにおいて実行するジョブおよびタスクのスケジューリングに関し、例えば、インフラストラクチャおよび／またはソフトウエアをサービスとして提供するコンピューティングシステムにおけるジョブおよびタスクのスケジューリングに関する。
【背景技術】
【０００２】
独立したソフトウエアベンダ（ＩＳＶ:independent software vendor)アプリケーションのようなアプリケーションは、各種のコンピューティング装置および環境におけるコンピューティングアクティビティにおいて共通に利用される。例えば、高性能コンピューティング（ＨＰＣ: high performance computing)またはコンピュータ支援エンジニアリング（ＣＡＥ）は、１つ以上の異なるアップリケーションにより実行され、可能であればある程度の並列性で実行される処理を必要とするジョブを含み、対応するライセンスがこのアップリケーションのアクセスまたは使用に必要となる。ジョブスケジュラは、ＣＰＵ、コアおよびメモリのようなコンピューティングハードウエア資源の予約および獲得を制御し、必要なコンピューティングハードウエア資源が利用可能になった時にジョブがスケジュールされるようにする。ジョブスケジュラがライセンスマネージャーとのコントロールまたは通信をしないため、ジョブを寄託したユーザはアプリケーションライセンスの利用可能性(availability)について常時注意を払わなければならない。
【０００３】
従来のシステムでは、バッチジョブスクリプトがＩＳＶアプリケーションを実行するセクションに到着した時に、バッチジョブスクリプトを動作させるエンティティが必要なライセンスを獲得するように試みる。その獲得が成功したなら、アプリケーションが実行される。しかし、エンティティがライセンスの獲得に失敗すると、バッチジョブスクリプトは、ライセンスが無いために終了し、ジョブスケジュラは、寄託したジョブが終了したことをユーザに通知する。ジョブスケジュラの観点からは、ジョブは完了して終了したように見えるが、ユーザは、出力ファイルを見た時に、ジョブがライセンスの不足のために弾き出されたことを認識する。
【０００４】
必要なコンピューティングハードウエア資源が予約された寄託ジョブは、アプリケーションライセンスの利用有効性不足に起因して突然終了する。このような終了は、コンピューティングハードウエア資源を獲得するペンディング（未実行）のジョブのジョブキュー内での長時間の待機後に発生し、そのために全体の待ち時間およびジョブを実行する資源の使用におけるコンピューティングシステムの効率が低くなる。ユーザは、再度ジョブを寄託する必要があり、仕事の効率が低下する。
【発明の概要】
【０００５】
本発明の実施形態は、コンピューティングシステムにおけるジョブ実行タイミングをスケジュールするように構成されたジョブスケジューリングシステムを有する。ジョブスケジューリングシステムは、コンピューティングシステムにおいて未実行（実行がペンディングの）ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信するように構成されたジョブ情報受信モジュールと、指示されたコンピューティングハードウエア資源および指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングでジョブの実行をスケジュールするように構成されたジョブ実行スケジュラと、を有する。
【０００６】
好ましくは、実施形態は、アプリケーションライセンスにしたがってジョブ実行のタイミングを制御する機構を提供する。ジョブは、アプリケーションライセンスとコンピューティングハードウエア資源の両方が利用可能になるまで、実行のために寄託されない。実施形態は、ジョブ用のハードウエア資源およびアプリケーションライセンスの獲得を制御し、必要な資源およびライセンスが獲得された時にジョブをスケジューリングする統合されたシステムを提供する。実施形態は、コンピューティングハードウエア資源およびアプリケーションライセンスの両方の利用可能性が報告され、両方が利用可能な時にジョブが実行できるジョブ実行スケジュラを有する。
【０００７】
本発明の実施形態は、統合されたアプリケーションライセンスおよびコンピューティングハードウエア資源の管理を提供するジョブスケジューリングシステムを提供する。例えば、ジョブスケジューリングシステムは、バッチスクリプトのようなジョブ情報を受信するように構成され、受信したジョブ情報を解析してそのジョブを実行するのに必要なライセンスのアプリケーションを特定し、必要な数のライセンスを取り出すかまたは計算する。ジョブスケジューリングシステムは、取り出すか計算した必要な数のライセンスを利用するように構成され、例えばライセンスサーバとの通信により、ライセンスが利用できるタイミング、すなわちジョブが実行できるタイミング、および待機（ペンディング）中の利用可能なコンピューティングハードウエア資源を得る。
【０００８】
ジョブを実行するのに必要なコンピューティングハードウエア資源の指示は、ジョブ情報内でまたはジョブ情報受信モジュールによるジョブ情報から導出されることのいずれかで、ジョブが実行されるコンピューティングハードウエア資源として定義される限り、必要事項である。このように、ジョブを実行するのに必要なコンピューティングハードウエア資源は、ジョブを実行するユーザによりリクエストされたコンピューティングハードウエア資源であると考えられるか、または受信したジョブ情報に基づいてジョブ情報受信モジュールによりジョブの実行に適切であると決定されたコンピューティングハードウエア資源であると考えられる。例えば、ジョブ情報受信モジュールは、ジョブを、コンピューティングハードウエア資源の適切な構成の適合するためのルックアップテーブルをアクセスする。
【０００９】
同様に、ジョブを実行するのに必要なアプリケーションライセンスの指示は、ユーザがジョブを実行するのに使用することを望むアプリケーションライセンス、またはユーザが使用されることを希望するジョブ情報から導出されるアプリケーションライセンスとして定義される限り、必要事項である。例えば、ユーザは、ジョブについての他の情報との組み合わせで、サービスレベルの質または性能目標を定義し、ジョブ情報受信モジュールがライセンスの適切な割り当てを、例えばルックアップテーブルを参照して導出する。このように、ジョブを実行するのに必要なアプリケーションライセンスの指示は、ジョブを実行するユーザによりリクエストされたアプリケーションライセンス、または受信したジョブ情報に基づいてジョブ情報受信モジュールによりジョブの実行に適切であると決定されたアプリケーションライセンスであると考えられる。
【００１０】
コンピューティングハードウエア資源は、ジョブを実行するのに必要なハードウエアの構成である。例えば、コンピューティングハードウエア資源は、記憶空間、メモリ、コア、プロセッサまたはノード、および可能であればネットワークインターフェースまたは他のハードウエアの組み合わせである。コンピューティングハードウエア資源は、必要なハードウエアの事項および必要な時間長で定義される。
【００１１】
アプリケーションライセンスは、特定の機能を実行しある入力および出力を有する処理インストラクションの組にアクセスして実行する権利と考えられる。このような処理インストラクションの組はアプリケーションと称され、それらにアクセスする権利はライセンスと称される。実行のためにコンピューティングシステムに寄託されるジョブは、並列度のレベルを変えて実行され、アプリケーション当たりの１つ以上のライセンスが望まれ、また必要とされる。アプリケーションは、独立したソフトウエアベンダ（ＩＳＶ）アプリケーションである。
【００１２】
実施形態は、ジョブの代わりに指示されたコンピューティングハードウエア資源を予約するように構成されたハードウエアスケジューリングモジュールと、ジョブの代わりに指示されたアプリケーションライセンスの利用可能性をチェックするように構成されたライセンススケジューリングモジュールと、をさらに有し、ジョブのスケジューリングの実行は、予約され指示されたコンピューティングハードウエア資源が有効となる時点まで、コンピューティングシステムへのジョブの実行の指示を遅延させることを含む。
【００１３】
ハードウエアスケジューリングモジュールおよびライセンススケジューリングモジュールは、必要とする資源（ここでは、資源は、コンピューティングハードウエア資源およびアプリケーションライセンスを合わせたものを称する）が利用可能になったタイミングを決定する機構を提供する。ハードウエアスケジューリングモジュールは、ジョブの代わりに指示されたコンピューティングハードウエア資源を予約するように構成される。この予約は、必要なコンピューティングハードウエア資源へのアクセスキューを加え合わせるようにコンピューティングハードウエア資源マネージャーまたはコントローラと共同すること、および／またはジョブが完了してコンピューティングハードウエア資源が解放される時点まで指示されたコンピューティングハードウエア資源が他のジョブにより使用されるのを防止すること、を含む。
【００１４】
ライセンススケジューリングモジュールは、例えば、１つ以上のリアル（実際の）ライセンスサーバとの通信により、指示されたライセンスの利用可能性をチェックするように構成される。利用可能性のチェックは、リクエストを出すプロセスにより行われ、リクエストは周期的に送られるか、または現在利用できないライセンスを予約し、それらが利用可能になった時にライセンスを取得することでもできる。
【００１５】
ジョブの実行に必要なアプリケーションライセンスの指示は、ジョブが実行可能なアプリケーションライセンスの最適な割り当ての指示およびジョブが実行可能なアプリケーションライセンスの最小限の許容できる割り当ての指示を有し、ジョブの代わりにアプリケーションライセンスの指示された割り当ての利用可能性のチェックは、アプリケーションライセンスの最適な割り当てが利用可能であるかをチェックすることを含み、もしそうでなければ、最適な割り当てより少なく、アプリケーションライセンスの最小限の許容できる割り当てより多いか等しいアプリケーションライセンスの割り当てが利用可能であるかチェックすることを含む。
【００１６】
任意ではあるが、アプリケーションライセンスのチェックした割り当てが利用可能ならば、ライセンススケジューリングモジュールは、ジョブの代わりにライセンスの利用可能な割り当てを獲得する。
【００１７】
好ましくは、許容できるアプリケーションライセンスの割り当ての範囲を効果的に指示することにより、上記の技術は、ジョブの利用可能なライセンスとの整合にある柔軟性をもたらし、それはプリケーションライセンスが柔軟性が無い場合より頻繁に使用されることを全体的に保証する。最適な割り当ては、ジョブ情報に指示されたライセンスの最大の割り当てという意味で最適である。最適は、より多くのライセンスを有するということに関係してより高速の実行時間および好適なアプリケーションがタスクを実行することに関係する。ライセンスの最小限の許容できる割り当ては、ライセンススケジューリングモジュールがジョブの代わりにチェックを行うライセンスの最後の割り当てである。最適から最小限の許容できるまでの１つ以上の割り当ての進行は、最小限の許容できるアップリケーションをチェックする前にチェックされる。ライセンスの割り当ては、１つ以上のアプリケーションのそれぞれについてのアプリケーション当たりのライセンス数である。アプリケーションは、最適な割り当てから最小限の許容できる割り当てまで、一定である。別の形態では、アプリケーションは、最適な構成の部分として含まれるアプリケーションを、最後の拠り所として提供し、いくつかのアプリケーションは、最適な割り当てと最小限の許容できる割り当ての間で異なる。別の形態では、アプリケーションは固定で、最適な割り当てと最小限の許容できる割り当ての間の違いは、最小限の許容できる割り当てにおいては、１つ以上のアプリケーションのライセンスはほとんどないことが示されるということのみである。
【００１８】
実施形態で任意の例として、ライセンススケジューリングモジュールは、アプリケーションライセンスが予約または獲得されるまで、またはジョブが完了または開始する指示されたタイミングが経過するまで、ジョブの代わりにアプリケーションライセンスの指示された割り当ての利用可能性をチェックするように構成されている。
【００１９】
すなわち、ライセンススケジューリングモジュールは、以下の２つの条件の一方または他方に到達するまで、ジョブの代わりにアプリケーションライセンスの指示された割り当ての利用可能性をチェックするように構成されている。この条件は、アプリケーションライセンスが獲得されるか、またはジョブが完了されるタイミングまたはジョブが開始されるタイミングのいずれか一方である指示されたタイミングが経過したか、である。
【００２０】
ある実現例では、ジョブは効果的にタイムアウトできるようにされる。すなわち、ジョブを開始するか完了する許容時間限界がユーザにより送られ、もしジョブがその時間限界までに完了されないか、またはその時間限界まで開始されなければ、ジョブはもはやペンディングではなく、ユーザに未完了として戻されるだけである。このようなタイミング指示は任意であり、ある実施形態では、ジョブはそれが実行されるまでペンディング状態を維持すると仮定されるだけである。チェックは、周期的に実行され、ある実現例では、最適な割り当てと最小限の許容できる割り当てまでのライセンスの割り当てが、肯定的な応答が得られてリクエストされた割り当てが利用可能になり獲得されるまで順番に繰り返しリクエスト（チェック）される限り、周期的である。
【００２１】
リクエストされたライセンスの獲得は、ジョブの代わりにライセンスの利用可能な割り当てを獲得および保持するように構成されたジョブ用の委任ライセンスサーバを起動することを含む。委任ライセンスサーバは、ジョブ代わりにリアルライセンスサーバによりライセンスを付与されるエンティティである。委任ライセンスサーバは、特定のジョブに関係しており、そのため、ジョブが実行される時、委任ライセンスサーバは、特定され、アクセス可能である。委任ライセンスサーバは、ジョブを実行するライセンスを編成し、ジョブにしたがってそれらを組み合わせ、アクセス可能な位置にライセンスを維持する機構を提供する。
【００２２】
他の機能に加えて、ライセンススケジューリングモジュールは、ライセンスの割り当てが、リアルライセンスサーバおよび／または現在実行中の他のジョブの委任ライセンスサーバから利用可能であるかをチェックするように構成される。例えば、ジョブ情報は、ジョブが完了するまでのタイミングの指示を含み、もしライセンススケジューリングモジュールがジョブのアプリケーションライセンスのチェックされた割り当てが、指示されたタイミングより前に完了するようにスケジュールされた他のジョブの委任ライセンスサーバから利用可能であるかを特定するならば、ライセンススケジューリングモジュールは、ジョブの指示されたアプリケーションのライセンスを予約し、ジョブの委任ライセンスサーバを起動して他のジョブの完了時に他のジョブから指示されたアプリケーションライセンスを受けるように構成されている。
【００２３】
いくつかの実現例では、ジョブが完了するたびに、完了したジョブの委任ライセンスサーバは、シャットダウンし、それらを獲得したリアルライセンスサーバから戻る（またはそれらが獲得されたところから戻る）。別の形態では、ライセンススケジューリングモジュールは、現在実行されているジョブをペンディングしているジョブと一致させるように構成され、現在実行しているジョブが完了し、その委任ライセンスサーバがシャットダウンした時に、アプリケーションライセンスは、一致されたペンディングジョブの委任ライセンスサーバに直接送信される。別の形態またはさらに、委任ライセンスサーバのシャットダウンに時に、いくつかのアプリケーションライセンスは、それらが獲得されたリアルライセンスサーバに戻り、いくつかは他の委任ライセンスサーバに直接送信される。実現例によっては、ライセンススケジューリングモジュールは、現在実行中のジョブの委任ライセンスサーバをチェックする前に、利用可能なアプリケーションライセンス用のリアルライセンスサーバをチェックするように構成されるが、それは実行中のジョブが完了するのを待機するよりもリアルライセンスサーバから利用可能なアプリケーションライセンスを獲得する方が速いためである。正確な一致アルゴリズムは、実現例の詳細に依存する。委任ライセンスサーバは、ペンディングジョブ用に定義された最適な割り当てと最小限の許容割り当てによりセットされた境界または境界内にあるライセンスの割り当てを保持しようとし、ライセンスの十分な分け前が送信できる。別の形態では、ライセンススケジューリングモジュールは、ペンディングのジョブの要求を満たすのに十分なアプリケーションライセンスではなくても、ライセンスが利用可能になった時にはリアルライセンスサーバから利用可能なライセンスを獲得するように構成され、足りないアプリケーションライセンスはペンディングジョブの委任ライセンスサーバから探し、完了すると獲得される。
【００２４】
さらに、ライセンススケジューリングモジュールは、ペンディングのジョブが現在実行中のジョブの委任ライセンスサーバに一致した時、許容できるタイミングを計算するように構成される。ペンディングのジョブに指示された許容できるタイミングは、ライセンススケジューリングモジュールにより、ペンディングのジョブに一致する委任ライセンスサーバの探索の終了指示として利用される。例えば、ペンディングのジョブの許容できる開始時間内に終了するジョブの委任ライセンスサーバのみが、一致の候補として考慮される。
【００２５】
任意であるが、ジョブ実行スケジュラは、ジョブの完了をライセンススケジューリングモジュールに通知するように構成され、ライセンススケジューリングモジュールは、完了したジョブの委任ライセンスサーバを終了し、終了した委任ライセンスサーバにより保持されたアプリケーションライセンスを待機中の委任ライセンスサーバまたはリアルライセンスサーバに送信するように構成される。
【００２６】
ジョブの委任ライセンスサーバは、ジョブ用に起動され、ジョブの生存時間中、すなわちジョブの完了まで、エンティティとして存在する。委任ライセンスサーバは、ジョブがジョブ情報受信モジュールに受信されるとすぐに、またはジョブのアプリケーションライセンスが一旦利用可能になると、利用可能なライセンスを獲得するための機構として、起動される。
【００２７】
実現例として、ジョブ実行スケジュラおよびハードウエアスケジューリングモジュールは、ジョブスケジュラの部品として提供され、ジョブ情報受信モジュールおよびライセンススケジューリングモジュールは、ジョブ実行スケジュラ、ハードウエアスケジューリングモジュールおよび１つ以上のリアルライセンスサーバと相互作用するように構成された分離したプロセスとして提供される。
【００２８】
モジュールの多くの構成が、本発明の実施形態であることが、理解される。ジョブスケジュラは、ジョブを実行するのに必要なアプリケーションライセンスが獲得されたことを、ライセンススケジューリングモジュールからの信号または指示を待つように適合または変形される。ジョブ情報受信モジュールおよびライセンススケジューリングモジュールは、ジョブがジョブスケジュラに到着する前にジョブを途中で中断するように構成されたプログラムまたはプロセスとして提供され、ジョブ（ここではジョブはジョブ情報により表される）からの要求を取り出すまたは計算し、計算した要求および他のジョブ情報をジョブスケジュラに送り、ジョブの代わりにリアルライセンスサーバと相互作用し、ジョブのアプリケーションライセンスが獲得された時にジョブスケジュラをトリガするかまたはフラグを立て、ジョブが要約実行される（コンピューティングハードウエア資源のペンディングの利用可能性）。
【００２９】
本発明の一つの態様の実施形態は、コンピューティングシステムにおけるジョブ実行タイミングをスケジュールする方法を含み、この方法は、コンピューティングシステムにおいて未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信し、指示されたコンピューティングハードウエア資源および指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、ジョブの実行を調整する。
【００３０】
本発明のほかの態様の実施形態は、この出願の他の部分で定義または記載されたジョブスケジューリングシステム、およびスケジュールされたジョブを実行するように構成されたコンピューティングハードウエア資源を有する。
【００３１】
本発明のほかの態様の実施形態は、コンピュータプログラムを含み、このプログラムは、コンピューティング装置により実行された時に、コンピューティング装置を、この出願の他の部分で定義または記載されたジョブスケジューリング装置として機能させる。
【００３２】
本発明のほかの態様の実施形態は、コンピュータプログラムを含み、このプログラムは、コンピューティング装置により実行された時に、コンピューティング装置を、本発明を実現する方法を実行する。
【００３３】
さらに、本発明の実施形態は、一揃えのコンピュータプログラムを含み、これは、コンピューティング装置の分配ネットワークにより実行された時に、コンピューティング装置の分配ネットワークを、本発明を実現するシステムとして機能させる。
【００３４】
さらに、本発明の実施形態は、コンピュータプログラムまたは一揃えのコンピュータプログラムを含み、これは、記憶ユニットの分配ネットワークを有するコンピューティング装置のシステムにより実行された時に、システムを、本発明を実現する方法を実行する。
【００３５】
各種態様（ソフトウエア／方法／装置）について別々に述べたが、１つの態様に関連して述べたそれらの特徴および結果は、他の態様にも等しく適用可能であることが容易に理解されるべきである。したがって、方法の特徴を述べた場合、それは、装置が、その特徴を実行するかまたは適切な機能性を提供するように構成されたユニットまたは装置を有するように、プログラムがコンピューティング装置にその方法の特徴を実現するように実行されるように構成されるように、適用することが可能である。
【００３６】
本発明の実施形態の詳細な説明は、付属の図面を参照して、単なる例として以下に行われる。
【図面の簡単な説明】
【００３７】
【図１】図１は、本発明を実現するジョブスケジューリング装置を示す。
【図２】図２は、コンピューティングシステムの文脈内で、本発明を実現するジョブスケジューリングシステムの例示のアーキテクチャを示す。
【図３】図３は、ジョブスケジュラおよびＩＪＭＳを有する図２の例示のアーキテクチャをより詳細に示す。
【図４】図４は、例示のバッチジョブスクリプトである。
【図５】図５は、本発明を実現する例示のアプリケーションライセンス管理プロセスを示す。
【図６】図６は、ライセンススケジューリングモジュールにおける例示の処理を示す。
【図７】図７は、ジョブが実行を終了した後に実行するポスト処理方法を示す。
【図８】図８は、ジョブの完了に続くＩＪＭＳにおける処理を示す。
【図９】図９は、ジョブのスケジューリングおよび実行の間のエンティティ間のライセンスの送信を示す。
【図１０】図１０は、ジョブ間のライセンスの送信のための例示の方法を示す。
【図１１】図１１は、ジョブ間のライセンスの送信のための例示の方法を示す。
【発明を実施するための形態】
【００３８】
図１は、本発明を実現するジョブスケジューリング装置を示す。ジョブスケジューリング装置１０は、ジョブ情報受信モジュール１２と、ジョブ実行スケジュラ１４と、を有する。さらに、ジョブスケジューリング装置１０は、ライセンススケジューリングモジュール１６と、ハードウエアスケジューリングモジュール１８と、を有する。ライセンススケジューリングモジュール１６およびハードウエアスケジューリングモジュール１８は、実施形態において設けるかは任意（オプション）である。ジョブ情報受信モジュール１２、ジョブ実行スケジュラ１４、ライセンススケジューリングモジュール１６およびハードウエアスケジューリングモジュール１８は、合わせてジョブスケジューリング装置１０の部品と称される。
【００３９】
ジョブスケジューリング装置１０は、各部品が分離して示されるハードウエアモジュールとして提供されるハードウエアとして提供される。または、ジョブスケジューリング装置は、ソフトウエア機能、例えば、データセンタのマネージャーで動作するプロセスとして提供されてもよい。部品は、ソフトウエア機能の部分として動作する機能モジュールと考えられ、部品間の違いは、実施形態の機能を理解するために有用であり、かならずしも分離して提供されなければならないことを示し、それを包含するものではない。ジョブ情報受信モジュール１２、ジョブ実行スケジュラ１４、およびハードウエアスケジューリングモジュール１８は、ジョブスケジュラまたはジョブスケジュラプロセスの一部として提供されるが、ライセンススケジューリングモジュール１６は、ジョブスケジュラの外部または分離したプロセスとされ、ライセンススケジューリングモジュール１６はアプリケーションライセンスの獲得を調整してそれらをジョブに与える。または、ライセンススケジューリングモジュール１６は、同一のジョブスケジュラまたはジョブスケジューリングプロセスの一部のように、残りの部品として提供される。更なる任意の構成では、ジョブ情報受信モジュール１２およびライセンススケジューリングモジュール１６は、別に提供されるジョブ実行スケジュラ１４と通信する統合プログラムまたはプロセスとして提供される。
【００４０】
ジョブ情報受信モジュール１２は、コンピューティングシステム内での未実行ジョブを定義するジョブ情報を受信するように構成され、ジョブ情報は、ジョブを実行するのに必要なコンピューティングハードウエア資源の指示、およびジョブを実行するのに必要なアプリケーションライセンスの指示を含む。ジョブ情報は、ユーザにより寄託されてもよい。または、さらに、ジョブ情報は、コンピューティングシステムで別々に受信され、ジョブ情報受信モジュール１２にジョブ情報として寄託するために処理が準備されようとしているユーザにより寄託されたリクエストに基づいている。ジョブはバッチジョブでもよく、ジョブ情報はバッチジョブスクリプト１４０として提供される。
【００４１】
ジョブ情報受信モジュール１２は、受信したジョブ情報への処理を実行するように構成され、例えば、ジョブ情報からあるデータまたは指示を抽出する。ジョブ情報は、ユニットで受信され、ジョブ情報の１つの単一ユニットが１つのジョブに対応し、例えば、ジョブ当たり１バッチジョブスクリプト１４０である。または、ジョブ情報は、データとして提供されてもよく、ジョブ情報受信モジュール１２が、そのデータから、個別のジョブを特定し、ジョブごとの要求を抽出するように構成されてもよい。要求の事項では、ジョブ情報受信モジュール１２は、特定のジョブを実行するのに必要であるコンピューティングハードウエア資源、および特定のジョブを実行するのに必要であるアプリケーションライセンスの指示を、ジョブ情報から抽出するように構成されてもよい。指示は、ハードウエア資源およびアプリケーションライセンスの明確な詳細であっても、例えばルックアップテーブルから明確な詳細を探索するのを可能にするデータであってもよい。さらに、ジョブ情報は、（現在時間または受信時間に対して絶対的または相対的のいずれかである）タイミングの指示を含み、ジョブはそのタイミングまでに完了するか、またはそのタイミングまでにジョブが開始される。
【００４２】
ジョブ受信モジュール１２は、ジョブ実行スケジュラ１４にジョブの要求を報知し、要求は、コンピューティングハードウエア資源、アプリケーションライセンス、およびそれに含まれるタイミングを有する集合事項である。ジョブ実行スケジュラ１４は、指示されたコンピューティングハードウエアおよび指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されるタイミングで、ジョブの実行をスケジュールするように構成される。
【００４３】
ジョブ実行スケジュラ１４は、コンピュータシステム内の未実行（実行がペンディングしている）ジョブ、またはジョブを記載する情報を受信するように動作する。ジョブ実行スケジュラ１４は、各ジョブが実行されるタイミングを決定するように動作する。例えば、ジョブ実行スケジュラ１４は、未実行ジョブのリストを記憶しており、ジョブをこのペンディングリストからいつ移動して動作させるかを決定する。決定されたタイミングで、あるジョブ情報は、入力の要旨をアプリケーションおよび受信出力に寄託することによりジョブの実行を調整することにより、ジョブの実行またはジョブの実行の調整に応答するノードに寄託されてもよい。ジョブ実行スケジュラ１４は、ジョブを動作させる前に、指示されたアプリケーションライセンスと指示されたコンピューティングハードウエア資源の両方が利用可能になるまで待機するように構成される。
【００４４】
ジョブ実行スケジュラ１４は、ジョブの代わりにハードウエア資源およびアプリケーションライセンスを予約および獲得し、ハードウエア資源およびアプリケーションライセンスが利用可能になるような時間にジョブのタイミングをスケジュールするように構成されてもよい。ジョブ実行スケジュラ１４は、ライセンススケジューリングモジュール１６およびハードウエアスケジューリングモジュール１８と協働して動作する。ハードウエアスケジューリングモジュール１８は、ジョブの代わりに、指示されたコンピューティングハードウエア資源を予約するように構成される。予約の形式は、実施形態が実現されるコンピューティングシステムに依存する。例えば、ジョブ実行スケジュラがペンディング（未実行）のジョブのジョブ情報を受信すると、ハードウエアスケジューリングモジュール１８は、ジョブ情報で指示されたコンピューティングハードウエア資源要求が報知され、直接に、またはオペレーティングシステムまたはコンピューティング資源コントローラを介して、コンピューティングハードウエア資源と通信するように構成され、指示されたコンピューティングハードウエア資源が利用可能であるか否か、またはその時を決定する。それらがすぐに利用可能ならば、ハードウエアスケジューリングモジュール１８は、ジョブの代わりに利用可能な資源を効果的に保持し、資源は他のアプリケーションまたはジョブに利用できないようになる。または、ハードウエアスケジューリングモジュール１８は、キュー配列内に入り、必要なハードウエア資源を待ち、それらが利用可能になった時にジョブの代わりにそれらを確保（すなわち、獲得および保持）するように構成される。
【００４５】
ライセンススケジューリングモジュール１６は、ジョブの代わりに、指示されたアプリケーションライセンスの利用可能性をチェックし、任意ではあるが、ジョブの代わりにライセンスを獲得または予約するように構成される。アプリケーションライセンスの利用可能性のチェックは、ジョブ実行スケジュラ１４の機能性を容易にする。ライセンススケジューリングモジュール１６は、ジョブの代わりにアプリケーションライセンスの予約および／または獲得をするようにも動作する。例えば、ジョブ実行スケジュラ１４がペンディングのジョブのジョブ情報を受信すると、ライセンススケジューリングモジュール１６は、ジョブ情報内に指示されたアプリケーションライセンスの要求が報知され、リアルライセンスサーバと通信するか、または他の形式のアプリケーションライセンスコントローラと通信し、指示されたアプリケーションライセンスが利用可能であるか否か、またはその時を決定するように構成される。それらがすぐに利用可能ならば、ライセンススケジューリングモジュール１６は、ジョブの代わりに利用可能なアプリケーションライセンスを効果的に保持し、保持されたアプリケーションライセンスは他のアプリケーションまたはジョブに利用できないようになる。または、ライセンススケジューリングモジュール１６は、キュー配列内に入り、必要なアプリケーションライセンスを待ち、それらが利用可能になった時にジョブの代わりにそれらを確保（すなわち、獲得および保持）するように構成される。
【００４６】
ハードウエアスケジューリングモジュール１８およびライセンススケジューリングモジュール１６は、ペンディングジョブの実行をスケジューリングする上で、ジョブ実行スケジュラ１４と協働するように構成される。例えば、ハードウエアスケジューリングモジュール１８は、指示されたハードウエア資源が予約され、ジョブが実行される準備がされて待機した時、ジョブ実行スケジュラ１４に報知するように構成されてもよい。同様に、ライセンススケジューリングモジュール１６は、指示されたハードウエア資源がジョブの代わりに獲得され、ジョブを実行する上で利用されるようになった時、ジョブ実行スケジュラ１４に報知するように構成されてもよい。
【００４７】
図２は、コンピューティングシステムに関連して本発明を実現したジョブスケジューリングシステムの例示のアーキテクチャを示す。統合されたジョブ管理システム（ＩＪＭＳ）１００は、この出願の他の部分で言及したジョブ情報受信モジュール１２およびライセンススケジューリングモジュール１６の例である。ジョブスケジュラ１２０は、ジョブ実行スケジュラ１４およびハードウエアスケジューリングモジュール１８の例である。ジョブスケジュラ１２０は、ヘッドノード１１０上に構築される。ヘッドノード１１０は、ジョブが実行されるコンピューティングシステムに接続可能なコンピューティング装置である。ヘッドノード１１０は、ジョブスケジュラ１２０を動作させるのに加えて他の管理機能を有してもよい。任意であるが、ＩＪＭＳ１００は、ヘッドノード１１０に構築されてもよく、すなわち、ジョブスケジュラ１２０およびＩＪＭＳ１００は、同一のコンピュータ上に構築されてもよい。ヘッドノード１１０とリアルライセンスサーバ３００の間の通信は、ＩＪＭＳ１００を介する。同様に、ジョブスケジュラ１２０とリアルライセンスサーバ３００の間の通信は、ＩＪＭＳ１００を介する。ユーザ４００は、コンピューティングノード２００上で実行されるジョブの例示の供給源として示されている。ジョブは、ユーザによりコンピューティングノード２００に寄託され、ＩＪＭＳ１００により受信される。ジョブの寄託は、実行されるジョブを定義するジョブ情報のＩＪＭＳ１００への送信を含む。コンピューティングノード２００は、この出願の他の部分で言及されたコンピューティングシステムの例である。コンピューティングノード２００は、ジョブの期間ジョブに付与するコンピューティング設備（インフラ）を提供するコンピューティング装置の相互接続の組であり、再付与により利用可能になる。コンピューティングノード２００は、ジョブに特に付与されるコンピューティング資源２１０を有する。コンピューティング資源２１０は、この出願の他の部分で言及したコンピューティングハードウエア資源の例であり、ＣＰＵ２１２、コア２１４、メモリ２１６およびディスク（記憶空間）２１８を含む。リアルライセンスサーバ３００は、コンピューティングノード２００内のコンピューティング処理へのアプリケーションライセンスの割り当ての制御に応答するエンティティである。並列のライセンスの限られた個数は、リアルライセンスサーバ３００により保持され、いかなる時にもコンピューティングノード２００内で動作させることが可能なアプリケーションの同時に可能な個数について上限がある。リアルライセンスサーバ３００は、ジョブ（コンピューティングプロセス）でアプリケーションを動作させるライセンスを付与し、それらの付与を追跡（トラッキング）し、および付与されたライセンスを使用するプロセスの完了に続いてライセンスを再び利用可能にするように応答する。
【００４８】
ジョブ情報受信モジュール１２は、ユーザ４００からジョブ情報を受信するように構成される。ジョブ情報受信モジュールは、ジョブスケジュラ１２０、ＩＪＭＳ１００、またはヘッドノード１１０の分離可能な機能として、提供されてもよい。ジョブ情報受信モジュールは、受信したジョブ情報から、少なくともコンピューティングハードウエア資源要求およびアプリケーションライセンス要求を抽出するように構成される。ジョブ情報受信モジュール１２は、ジョブスケジュラ１２０に、コンピューティングハードウエア資源要求を報知し、ジョブスケジュラ１２０（または、特にハードウエアスケジューリングモジュール１８））は、コンピューティング資源２１０と協働し、ジョブの代わりに必要なコンピューティングハードウエア資源を予約するように構成される。ＩＪＭＳ１００自体（または、特にライセンススケジューリングモジュール１６）は、リアルライセンスサーバ３００と通信し、ジョブの代わりに必要なアプリケーションライセンスの利用可能性をチェックし、必要なアプリケーションライセンスを予約するかまたはそれらが利用可能になった時に獲得するように構成される。ＩＪＭＳ１００は、ジョブスケジュラ１２０と通信し、必要なアプリケーションライセンスが獲得された時にジョブスケジュラ１２０に報知するか、またはジョブスケジュラ１２０に必要なアプリケーションライセンスが予約されたタイミングを報知する。ジョブスケジュラ１２０は、必要なコンピューティングハードウエア資源および必要なアプリケーションライセンスの両方が利用可能なタイミングで、ジョブの実行をスケジュールするように構成される。そのようなタイミングで、ジョブスケジュラ１２０は、必要なアプリケーションライセンスを使用して必要なコンピューティングハードウエア資源により実行するために、ジョブをコンピューティングノード２００に寄託する。
【００４９】
図３は、より詳細に示したジョブスケジュラ１２０およびＩＪＭＳ１００を加えた、図２の例示のアーキテクチャを示す。ＩＪＭＳ１００が精霊のように（隠れて）動作するＩＪＭＳ１００の特別な例が、すなわちユーザにとって透明で、ユーザが機能を入力する必要のないプロセスが、示される。この特別な例では、ＩＪＭＳ１００は、ジョブの代わりに必要なライセンスを保持するために、ジョブ当たり１つの委任ライセンスサーバ１３０を起動するように構成される。委任ライセンスサーバ１３０は、ジョブの代わりに、ライセンスの利用可能性をチェックし、予約し、および／または獲得するために、リアルライセンスサーバ３００と通信するように構成さてもよい。ジョブスケジュラ１２０は、ジョブスケジュラ１２０により提供される機能性を実現する３つの機能部分またはモジュールを有する。ジョブスケジュラ１２０は、プリチェック部１２２、バッチジョブスクリプト実行部１２４、および超すとチェック部１２６を有する。ＩＪＭＳ１００およびジョブスケジュラ１２０は、ヘッドノード１２０上で動作するプロセスである。
【００５０】
図３における破線は、プロセスまたは部品間の主たる相互作用を表す。実線は、相互接続を表し、ヘッドノード１１０は、ユーザ４００がコンピューティングノード２００のインフラおよびアプリケーションにアクセスできるアクセスポイントとして機能することが分かる。委任ライセンスサーバ１３０を介するＩＪＭＳ１００は、ジョブの代わりに、リアルライセンスサーバ３００からアプリケーションライセンスを予約および獲得する機構を提供する。ジョブスケジュラ１２０は、ジョブの代わりにコンピューティング資源２１０を予約し、必要なアプリケーションライセンスが獲得され、必要なコンピューティング資源が利用可能なタイミングで、ジョブの実行を手配する。
【００５１】
ユーザ４００は、実行するためにジョブをコンピューティングノード２００に寄託する。ジョブはジョブ情報により表され、ジョブ情報はヘッドノード１１０により受信され、ヘッドノード１１０はユーザとコンピューティングノード２００の間のアクセスポイントである。ヘッドノード１１０におけるジョブ情報受信モジュール１２は、ジョブ情報を受信し、ジョブをスケジューリングするのに必要な情報を抽出するプロセスを実行するように構成される。ジョブ情報受信モジュール１２は、ジョブスケジュラ１２０、ＩＪＭＳ１００により提供される機能であってもよく、またヘッドノード１１０上で動作する分離したプロセスとして提供される機能であってもよい。寄託されたジョブ情報は、ジョブを実行するのに必要なコンピューティングハードウエア資源の指示、ジョブを実行するのに必要なアプリケーションライセンスの指示を有する。この指示は、からなずしも要求の明確な説明ではなく、例えばルックアップテーブルを利用してジョブ情報受信モジュール１２が要求を抽出できれば十分である。
【００５２】
ＩＪＭＳ１００は、ヘッドノード１１０上で動作する隠れたプロセスにより実現される機能である。図３のＩＪＭＳ１００は、ジョブスケジュラ１２０および多重リアルライセンスサーバ３００と、組み合わされるように構成され、可能であれば委任ライセンスサーバ１３０を介して組み合わされる。ＩＪＭＳ１００は、リアルライセンスサーバ３００と通信する機構として、委任ライセンスサーバを使用してもよい。ＩＪＭＳ１００は、本願の他の部分で言及したライセンススケジューリングモジュール１６の例であり、任意ではあるが、ジョブ情報受信モジュール１２の機能も提供する。このように、ＩＪＭＳ１００は、ジョブスケジュラ１２０の代わりにライセンスの利用可能性を確立し、ライセンスを獲得し、そして必要なアプリケーションライセンスが獲得されるまで、ジョブスケジュラ１２０がジョブをコンピューティングノード２００に寄託するのを遅らせることを可能にする機構を提供する。ユーザ４００によりジョブが寄託され、ジョブ情報受信モジュール１２がＩＪＭＳ１００にアプリケーションライセンス要求を報知した後、ＩＪＭＳ１００はジョブごとに委任ライセンスサーバ１３０を起動し、ジョブが実行される前に必要なアプリケーションライセンスを獲得することについて設定するように構成される。
【００５３】
図３の例示のシステムでは、ジョブスケジュラ１２０はプレチェック部１２２を有し、プレチェック部１２２はペンディングのジョブのリストを記憶し、指示された必要なアプリケーションライセンスおよびコンピューティングハードウエア資源の利用可能性にしたがってペンディングのジョブの状態（ステータス）を制御するように構成される。ジョブは、指示された必要なコンピューティングハードウエア資源および指示された必要なアプリケーションライセンスの両方が獲得されるまで、「ペンディング」または「待機」を付してリストに保持され、両方が獲得された時点で、ステータスは「実行中（動作中）」または「実行（動作）」に変更でき、ジョブはバッチジョブ実行モジュール１２４による実行のために寄託される。
【００５４】
ジョブは一旦そのステータスが「実行中」または「実行」になり、バッチジョブ実行モジュール１２４に送られると、バッチジョブ実行モジュール１２４は、ジョブのために予約されたコンピューティング資源の部分でのジョブの実行を手配するように構成される。
【００５５】
ジョブが終了すると、ジョブ情報またはジョブを表す他のデータは、ジョブスケジュラ１２０のポスト実行部１２６に送られ、対応する委任ライセンスサーバにより保持されたアプリケーションライセンスが解放される。
【００５６】
ユーザにより期待されたジョブ情報は、バッチジョブスクリプト１４０の形式であってもよい。または、ヘッドノードは、ユーザがオプションを選択できるインターフェースを提供してもよく、これらのオプションを反映したバッチジョブスクリプト１４０が自動的に作成される。バッチジョブスクリプト１４０は、本願の他の部分で言及したジョブ情報の例である。バッチジョブスクリプト１４０は、ジョブが実行されるコンピューティングシステムのジョブスケジュラ１２０により要求されるフォーマットを実現する。例えば、ローカルスケジュラのオプションは、ユーザが、コンピューティングノード、ＣＰＵ、コアおよびメモリのサイズのような必要な資源を規定するのを可能にする。バッチジョブスクリプト１４０は、アプリケーションの実行を行わせるコマンドラインを有してもよい。例えば、アプリケーションはＩＳＶアプリケーションである。
【００５７】
例示のバッチジョブスクリプト１４０を、図４に示す。例示のバッチジョブスクリプト１４０は、資源定義１４２、環境セッティング１４４、およびＩＳＶａｐｐｓ１４６の３つのセクションを有する。資源定義セクション１４２は、ジョブを動作させるのに必要なコンピューティング資源の指示を含む。資源定義の文法構成は、実施形態に依存し、ジョブスケジュラ間で異なる。いかなる明確な資源定義が無くても、ジョブスケジュラがデフォルトでコンピューティングハードウエア資源構成をジョブに割り当てるように構成されている限り、コンピューティングハードウエア資源の指示としてみなすことができる。環境セッティングセクション１４４は、実行コマンドおよび数学的なライブラリィ経路（パス）のような環境変数を規定する。ジョブスケジュラは、ジョブの実行ディレクトリィを適当なロケーションに変更できる。ＩＳＶａｐｐｓセクション１４６は、ジョブを達成するように実行するのに必要なアプリケーションを定義し、ジョブを完了するためにアプリケーションごとに必要なライセンスの指示を有する。アプリケーションライセンスは、リアルライセンスサーバにより保持される。
【００５８】
ライセンスサーバとも称されるリアルライセンスサーバは、コンピューティングシステムにおけるＩＳＶアプリケーションのライセンスを管理する。多重ライセンスサーバが単一システム内で動作する場合が頻繁にある。例えば、ある冗長性が設けられるか、またはアプリケーション当たり１つのライセンスサーバがあってもよい。ライセンスサーバは、仮想サーバであり、１つ以上のライセンスサーバは単一のコンピューティングノード上で動作できる。さらに、リアルライセンスサーバが、仮想サーバとして設けられてもよい場合がある。リアルプリフィックス(real prefix)は、リアルライセンスサーバがアプリケーションへのアクセスを制御するためのエンティティであることを示す。
【００５９】
従来のシステムにおいては、図４の例示のバッチジョブスクリプト１４０のライン１４"line 14 (#Line 014)"の例を使用し、ライン１４は、名前が"isv-P"で示されるＩＳＶアプリケーションを動作させる実行コマンドである。ジョブが実行され、バッチスクリプトが"isv-P"を動作させるように試みる時、スクリプトはＩＳＶアプリケーション構成ファイル内に規定されたライセンスサーバについての必要なアプリケーションライセンスの利用可能性について直接問い合わせる。もしライセンスの必要な個数が利用可能であれば、ＩＳＶアプリケーションは既定された条件で動作を開始する。しかしながら、ライセンスの必要な個数が利用可能でなければ、ＩＳＶアプリケーションはライセンスの不足のために退出する。したがって、ジョブは完了しない。
【００６０】
ＩＪＭＳ１００は、バッチジョブが実行される前に、すなわちバッチジョブがジョブスケジュラ１２０上で"RUN"ステータスに行く前に、ＩＳＶアプリケーションのライセンスの利用可能性をチェックしてライセンスを獲得する機能を提供する。ＩＪＭＳ１００は、必要なアプリケーションライセンスが獲得された時にジョブスケジュラ１２０に報知する。ジョブが実行されるための他の必要条件は、必要なコンピューティングハードウエア資源の予約である。ジョブ実行前のライセンス獲得は、ＩＪＭＳ１００がジョブごとに委任ライセンスサーバ１３０を起動することにより達成され、委任ライセンスサーバ１３０は、ジョブを定義するバッチスクリプトの代わりに、リアルライセンスサーバ３００と通信するように構成される。
【００６１】
ライセンスの利用可能性をチェックしてライセンスを獲得する機能に加えて、ＩＪＭＳ１００は、現在実行中のジョブによりライセンスが解放される前に、ライセンスをジョブに付与するようにも構成されてもよい。例えば、もしアプリケーションライセンスが使用されている実行中のジョブがあり、そのジョブが規定された時間量以内に完了するならば、アプリケーションライセンスを待っている他のジョブは、現在実行中のジョブにリンクされ、現在実行中のジョブの委任サーバにより、ジョブの完了直後に、アプリケーションライセンスが付与される。ＩＪＭＳが提供するさらなる機能は、アプリケーション当たりの規定されたライセンス数でないライセンスの利用可能性のチェックおよびそれらの獲得を有するが、ジョブの代わりのライセンスの割り当ての範囲のチェックおよびその獲得を有さない。これは、アプリケーション当たりの規定されたライセンス数が利用可能でない場合の柔軟性を提供するためである。
【００６２】
ＩＪＭＳ１００は、ジョブスケジュラ１２０の代わりに、アプリケーションライセンスの獲得および付与を管理する機能を提供する。ＩＪＭＳ１００は、サーバ上で隠れて動作するＩＪＭＳ１００により提供されてもよく、例えば、サーバはコンピューティングシステムのヘッドノード１１０であってもよい。
【００６３】
図５は、本発明を実現する励磁のアプリケーションライセンス管理プロセスを示す。ステップＳ１０１では、ジョブがユーザ４００によりコンピューティングシステムに寄託され、バッチジョブスクリプト１４０はジョブスケジュラ１２０により受信される。ステップＳ１０２では、ジョブスケジュラ１２０は、バッチジョブスクリプト１４０を記憶し、ジョブのステータスを、ジョブを実行する準備がされていないことを示す「待機("wait")」にセットする。ステップＳ１０３からＳ１０４では、ジョブスケジュラ１２０は、できればハードウエアスケジューリングモジュール１８を介して、コンピューティングノード２００の管理ノードとの間で、バッチジョブスクリプト１４０内でジョブの実行に必要な要求として示されたコンピューティングハードウエア資源が利用可能であるか否かを、周期的にチェックするように構成される。ジョブのステータスは「待機(wait)」のままである。必要なコンピューティングハードウエア資源が利用可能であると、フローはステップＳ１１０に進み、ジョブスケジュラ１２０は、ジョブの代わりに必要なコンピューティングハードウエア資源を予約するように構成される。フローはステップＳ１０５に進み、そこでは、ジョブスケジュラ１２０は、必要なアプリケーションライセンスが利用可能である時に、ＩＪＭＳ１００と通信を確立する。ＩＪＭＳ１００は、リアルライセンスサーバ３００と通信し、必要なアプリケーションライセンスの利用可能性をチェックし、必要なアプリケーションライセンスが利用可能な時に、特にジョブがライセンスを獲得するための委任ライセンスサーバ１３０を起動する。例えば、ライセンスアクセスＡＰＩは、リアルライセンスサーバ３００におけるライセンスの利用可能性をチェックするのに使用されてもよい。ジョブスケジュラ１２０は、必要なアプリケーションライセンスが獲得されたことが報知され、ステップＳ１０７で、ジョブスケジュラは、予約されたコンピューティングハードウエア資源およぶ獲得されたアプリケーションライセンスを使用して、バッチジョブスクリプト１４０にしたがってジョブを実行する。もしステップＳ１０５でライセンスが獲得できなければ（例えば、所定のまたは規定された時間量が経過し、必要なアプリケーションライセンスの獲得に成功していなければ）、フローはＳ１１１に進み、予約されたコンピューティングハードウエア資源は解放され、ジョブステータスは「待機(wait)」に戻る。これは、他の記憶されているジョブバッチスクリプトより「待機」ステータスがより短い時間期間になるため、ジョブをスケジュラ１２０内のキューの後側に戻すことになる。
【００６４】
図６は、ステップＳ１０５のプロセスをより詳細に示す。この特別な例では、バッチスクリプトのコピーまたはその一部が、ジョブスケジュラ１２０からＩＪＭＳ１００に送信される。ＩＪＭＳ１００は、ステップＳ３０１−Ｓ３０３でジョブスケジュラ１２０から受信した情報を解析し、バッチジョブスクリプト１４０がアプリケーション要求ライセンス（単に「アプリケーション」または「ＩＳＶアプリケーション」とも称される）実行を要求しているか否かを判定するように構成される。ＩＪＭＳ１００は、アプリケーション情報データベース１６０を参照する。アプリケーション情報データベース１６０は、バッチジョブスクリプト１４０内で規定されたアプリケーションＩＤを、特定のプログラム名、コマンドパス、ライセンスサーバＩＤ、およびライセンスチェックプログラムパスのいくつかまたはすべてを含む関連アプリケーション情報にリンクする。アプリケーション情報ＤＢ１６０からの例示のテーブルは、表１に示される。
【００６５】
【表１】
2015049903.tif 000003
【００６６】
表１で、コラム１はＩＳＶアプリケーションＩＤを記憶する。
コラム２は、アプリケーションプログラム（実行モジュール）のコマンドパスを記憶する。
コラム３は、実行可能なプログラム名を記憶する。
コラム４は、ライセンスサーバ名またはリアルライセンスサーバの識別の他の形式を記憶する。
コラム５は、ライセンスチェックプログラムのロケーションを記憶する。
【００６７】
もしステップＳ３０１−Ｓ３０３で、バッチジョブスクリプト１４０がいかなるアプリケーションライセンスも要求していないと判断されると、ＩＪＭＳ１００は、ジョブスケジュラ１２０、特にプリチェック部１２２に、ライセンスが必要ないことを報知する。ジョブスケジュラ１２０は、この時点までに必要なコンピューティングハードウエア資源を予約しており（ステップＳ１０４参照）、ジョブは予約されたコンピューティングハードウエア資源を使用して、コンピューティングノード２００により実行される。もしステップＳ３０１−Ｓ３０３で、バッチジョブが、アプリケーションが必要とするライセンスの実行を含むと判断すると、ＩＪＭＳ１００はアプリケーションリストの形式内の関連するアプリケーション情報のテーブルをコンパイルする。表２は、例示のアプリケーションリスト１７０を示す。アプリケーションリスト１７０の精密な形式は、実現例に応じて異なる。いくつかの実現例では、バッチジョブスクリプト１４０自体は、表２のようなアプリケーションリスト１７０を含んでもよい。ステップＳ３０２で、アプリケーションのリストが作成される。ステップＳ３０３で、バッチジョブスクリプトがアプリケーション実行に必要なアプリケーションライセンスを含むか否かチェックされる。
【００６８】
【表２】
2015049903.tif 000004
【００６９】
表２で、コラム１は行を識別するインデックスを記憶するのみである。
コラム２は、ジョブスケジュラ１２０またはジョブ情報受信モジュール１２によりジョブに対して発行されたジョブのＩＤを記憶する。ＩＳＶアプリケーションリストは、すべてのペンディングジョブについて関係し、ＩＪＭＳ１００にジョブが受信されるたびに、またはジョブの実行ステータスが変化するたびに更新され、またはジョブごとに生成されおよび維持されるＩＳＶアプリケーションリストがあってもよい。
コラム３は、バッチジョブスクリプトにおけるアプリケーションの実行順を記憶する。
コラム４は、アプリケーションＩＤを記憶する。
コラム５は、関係する実行オプションを記憶し、それはバッチジョブスクリプトから抽出してもよい。
コラム６は、実行ステータスを記憶し、それは実行ステータスが変化するたびにＩＪＭＳ１００により更新されてもよい。
【００７０】
ライセンスチェックプログラムのロケーションのようなアプリケーション情報データベース１６０からの関連情報と組み合わせて、アプリケーションリスト１７０を使用することにより、ステップＳ３０４で、ＩＪＭＳ１００は、アプリケーションリスト１７０内のアプリケーションリアルライセンスサーバ３００と通信し、例えばライセンスアクセスＡＰＩを使用することにより、アプリケーションごとの必要なライセンス数を獲得しようと試みる。アプリケーションごとの必要なライセンス数は、バッチジョブスクリプト１４０内に示されており、アプリケーションリスト１７０に記憶される。または、ライセンスチェックプログラムは、アプリケーションごとにアクセス可能であり、ライセンスアクセスＡＰＩを介してライセンスサーバに問い合わせることにより、同一のロジック内の必要な数のライセンスを計算し、必要な数のライセンスが利用可能であるか否かチェックする。もしアプリケーションごとの必要な数のライセンスが利用可能であれば、フローはステップＳ３０７に進み、ＩＪＭＳ１００はＡＰＩを介してライセンスを獲得する。フローはステップＳ３０８に進み、ＩＪＭＳ１００は、ジョブ用の委任ライセンスサーバ１３０を起動し、それぞれのリアルライセンスサーバ３００から必要なライセンスを保持して管理する。または、委任ライセンスサーバ１３０はライセンスが獲得される前に起動され、委任ライセンスサーバ１３０はリアルライセンスサーバ３００からライセンスを獲得するように構成される。ステップＳ３０９で、獲得したライセンスは、委任ライセンスサーバ１３０に登録される。ステップＳ３１０で、ジョブスケジュラ１２０に報知され、ジョブの宛先ライセンスサーバが、例えばポート番号を切替えることにより、委任ライセンスサーバ１３０に切り替わる。
【００７１】
バッチジョブスクリプト１４０は、許容範囲の記載ファイル１５０を有してもよく、もし利用可能性がチェックされたアプリケーションごとのライセンス数が利用可能でなければ、ステップＳ３０５で、ＩＪＭＳ１００は、許容範囲内のライセンスのどの割り当てが利用可能であるかチェックすることができる。もし利用可能性がチェックされたアプリケーションごとのライセンス数が利用可能でないが、許容範囲内のライセンスの割り当てが利用可能であれば、フローはＳ３０６に進み、バッチジョブスクリプト１４０は、利用可能な割り当てを反映するように更新され、ステップＳ３０７で、利用可能な割り当てが獲得される。もし許容範囲内のライセンスの割り当てが利用可能でなければ、すなわち、ライセンスの最小限の許容割り当てが利用可能でなければ、または必要とするライセンス数が柔軟でなければ、ステップＳ３０５で、ノー(no)と回答し、フローは図５のステップＳ１１１に戻る。
【００７２】
【表３】
2015049903.tif 000005
【００７３】
上記の例では、許容範囲記載ファイル１５０は、１つ以上のアプリケーションについてライセンスの許容範囲（規定された必要数からどの程度下まで）を定義する。許容範囲記載ファイル１５０は、ユーザがジョブを寄託する時にはユーザが使用するように特定されたディレクトリィないに記憶されてもよく、または許容範囲記載ファイル１５０がバッチジョブスクリプト１４０内の情報として提供されてもよい。ＩＪＭＳ１００は、バッチジョブスクリプト１４０内で必要と示された個数のライセンスの間でアプリケーションごとの最大数のライセンス、およびバッチジョブスクリプト１４０内で示された個数および許容範囲から導出した最小数を取得するように構成されている。もしジョブにより要求される各アプリケーションの最小数のライセンスが利用可能でなければ、フローはステップＳ１１１に戻り、コンピューティング資源は戻される。いくつかの実施形態では、バッチジョブスクリプト１４０は、ＩＪＭＳ１００がそこから許容時間を算出または導出できる情報を提供し、この許容時間は、コンピューティング資源を解放する前にライセンスが獲得されてもよい時間である。ＩＪＭＳは、許容時間の期間中、アプリケーションライセンスの利用可能性をモニタ（監視）するように構成され、最小許容割り当てに合致する割り当てライセンスが利用可能になれば、ＩＪＭＳ１００は委任来線サーバ１３０を起動してライセンスを獲得する。ライセンスの割り当ては、１つ以上のアプリケーションについて、アプリケーションごとの複数のライセンスである。
【００７４】
必要なライセンスが獲得されるか、ライセンスの許容割り当てが獲得されると、ライセンスは、Ｓ３０９でジョブ用の委任ライセンスサーバに登録され、Ｓ３１０でジョブ用のライセンスサーバは委任ライセンスサーバに切り替えられる。委任ライセンスサーバは、ジョブが待機ステータスにある間アプリケーションライセンスを保持する手段を提供し、必要なライセンスはリアルライセンスサーバよりむしろ委任ライセンスサーバにより保持される。フローはステップＳ１０７に進み、そこで、ジョブは予約されたコンピューティングハードウエア資源および獲得されたアプリケーションライセンスを使用して動作される。ジョブのステータスは「実行」に移動し、ジョブはバッチジョブスクリプト１４０にしたがって実行される。委任ライセンスサーバ１３０はすでにジョブの代わりにライセンスを保持しており、委任ライセンスサーバ１３０はその特定のジョブのみを扱うため、ジョブが必要なアプリケーションライセンス無しに実行されるリスクが無い。したがって、ユーザにはジョブが終了したと報知されたが、アクセスされないアプリケーションに起因して出力ファイルが受信されないかまたはファイルが不完全な状況は、回避される。
【００７５】
図７は、ジョブが実行された後の手順を示す。ステップＳ２０１で、ジョブは終了する。これは、ジョブ情報で定義された処理が完了し、出力が生成されて、ユーザのアクセス用に記憶されるかユーザに送られることを意味する。ポスト処理の間、ジョブのステータスは、ジョブスケジュラ１２０内に「ＰＥＮＤ（終了前）」に移動する。ジョブスケジュラ１２０は、ステップＳ２０２でＩＪＭＳ１００と通信し、ジョブの完了をＩＪＭＳ１００に報知する。ＩＪＭＳ１００は、完了したジョブに対応する委任ライセンスサーバ１３０を終了させ、ライセンスをリアルライセンスサーバ３００またはライセンスを待っている他の委任ライセンスサーバ、またはそれらの２つの宛先の何れかに戻すように構成される。フローは、ステップＳ２０３に進み、そこで、ジョブスケジュラ１２０は、コンピューティングシステム２００の管理ノードと通信し、ジョブ用に予約したコンピューティングハードウエア資源を解放する。
【００７６】
図８は、Ｓ２０２でジョブが完了したことをジョブスケジュラ１２０により報知された時のＩＪＭＳ１００におけるより詳細な手順を示す。Ｓ４０１で、ジョブ用の委任ライセンスサーバ１３０は、終了またはシャットダウンし、そこに記憶されたライセンス情報は除去される。フローはＳ４０２に進み、そこで、ライセンスは、個別のリアルライセンスサーバ３００に戻されるか、または待機中の他のジョブ用の委任ライセンスサーバ１３０に送られる。目標のライセンスサーバは、ＲＬＳに戻る。
【００７７】
図９は、アプリケーションＡｙｏｕのリアルライセンスサーバ３００により保持されるライセンス数の合計が１００で、ユーザがアプリケーションＡに２０ライセンスを必要とするジョブを寄託した状況における利用可能なライセンス数およびそのロケーションを示す。ステップＳ０１で、ライセンスの必要な個数が計算される。これは、リアルライセンスサーバ３００により保持されるライセンスにはいかなる変化も生じさせない。委任ライセンスサーバ１３０は、まだ起動されていない。ステップＳ０２で、ＩＪＭＳ１００は、ライセンスが利用可能で、２０ライセンスを獲得することを行う。ステップＳ０３で、委任ライセンスサーバ１３０が起動され、ＩＪＭＳ１００は、２０ライセンスを委任ライセンスサーバ１３０に送る。ステップＳ０４で、バッチジョブが開始されるが、アプリケーションＡはまだジョブにより呼び出されていない。ステップＳ０５で、アプリケーションＡは、２０ライセンスで実行され、ライセンスが消費される。ステップＳ０６で、アプリケーションＡが終了し、委任ライセンスサーバ１３０は、再びライセンスを保持する。ステップＳ０７で、バッチジョブが終了し、ステップＳ０８で、ＩＪＭＳ１００は委任ライセンスサーバ１３０を終了させる。ステップＳ０９で、委任ライセンスサーバ１３０は、２０ライセンスをリアルライセンスサーバ３００に戻す。
【００７８】
ライセンスの利用の助けとして、ＩＪＭＳ１００は、実行中のジョブにより現在使用されているアプリケーションライセンスを、実行を待っているジョブに付与する機能を提供してもよい。図１０および図１１は、ペンディングのジョブにアプリケーションライセンスを付与する例示の手順を示す。ＩＪＭＳ１００は、存在している委任ライセンスサーバ１３０のステータス、および待機中のジョブのステータスを監視し、周期的に情報を更新するように構成される。
【００７９】
ＩＪＭＳ１００により、現在実行中のライセンスが実行を待っているジョブに付与できるかを調べるジョブのステータスのチェックを行うために、隠れているようなプロセスを使用してもよい。ステップＳ５０１では、隠れているジョブチェックが起動される。ステップＳ５０２からＳ５０５で、周期的に繰り返されるループが定義される。ステップＳ５０３で、動作中の委任ライセンスサーバ１３０が特定され、ステップＳ５０４ａで、ＰＬＳステータスＤＢ１９０が、それらの動作中の委任ライセンスサーバに関する情報で更新され、ステップＳ５０４で、待機中のジョブのステータスのリストが更新される。表４は、ＰＬＳステータスＤＢ１９０内に記録された情報を示す。特に、残り時間および特定されたアプリケーションのためのライセンス数が記憶されていることが分かり、ＰＬＳステータスＤＢ１９０は、アプリケーションライセンスが利用可能になったかおよびその時に関する情報を記憶する。
【００８０】
【表４】
2015049903.tif 000006
【００８１】
表４で、コラム１は、インデックス(index)を記憶する。
コラム２は、ジョブスケジュラによりジョブに出されたジョブＩＤを記憶する。
コラム３は、アプリケーションのＩＤを記憶する。
コラム４は、ジョブの代わりに保持された特定されたアプリケーションのライセンス数を記憶する。
コラム５は、ＰＬＳ  ＩＤを記憶する。これは、ＰＬＳのプロセス数と同じである。
コラム６は、ジョブの残り時間（すなわち、現在の時間から、ＰＬＳが終了して保持されたアプリケーションが他のジョブ用に利用可能になると見込まれた時間量）の指示を記憶する。
【００８２】
ＰＬＳステータスＤＢ１９０は、コンピューティングシステムで現在動作中の委任ライセンスサーバにより保持されたライセンス、それらがそれぞれ保持するアプリケーションライセンス、および見込まれた終了時間に関する情報を記憶する。実行中のジョブから実行を待っているジョブへのアプリケーションライセンスの付与を実行している時、ＩＪＭＳ１００は、ＰＬＳステータスＤＢ１９０に記憶された情報を参照するように構成される。さらに、ＩＪＭＳ１００は、現在実行中のジョブに代わって保持されているアプリケーションライセンスを付与する実行を待っているジョブを見つけ出すように構成される。例えば、ジョブスケジュラ１２０またはＩＪＭＳ１００は、待機ジョブステータスデータベース１９２を維持してもよい。表５は、待機ジョブステータスデータベースに保持される情報を例示する。特に、待機ジョブステータスデータベース１９２は、現在利用可能なライセンスでは満たせない実行待機中のジョブのアプリケーションライセンス要求、および「順番」により示される他のジョブとの関係におけるジョブの優先度の指示を特定する情報を記憶していることが分かる。
【００８３】
【表５】
2015049903.tif 000007
【００８４】
表５で、コラム１は、インデックスを記憶する。
コラム２は、ジョブスケジュラによりジョブに出されたジョブＩＤを記憶する。
コラム３は、アプリケーションのＩＤを記憶する。
コラム４は、ジョブの代わりに保持された特定されたアプリケーションのライセンス数を記憶する。
コラム５は、実行の順番を記憶し、低い数字は、ジョブがより長い間待機しており、キュー内で先に進むことを示す。
【００８５】
図１１は、現在実行中のジョブのアプリケーションライセンスを実行待機中のジョブに付与する全体プロセスを示す。ステップＳ６０１で、ステップＳ５０１−Ｓ５０５の情報チェックおよび更新の手順が実行される。ステップＳ６０２からＳ６０３で、ＩＪＭＳ１００は、ＰＬＳステータスＤＢ１９０および待機ジョブステータスＤＢ１９２に周期的にアクセスし、実行待機中のジョブ（候補ジョブ）にライセンスを渡せる現在実行中のジョブ（目標ジョブ）をサーチ（探索）する。サーチにおける第１の識別器は、候補ジョブが実行を開始する前に、目標ジョブが完了することが見込まれることである。もし候補ジョブが目標ジョブの完了に応じて目標ジョブの委任ライセンスサーバ１３０からライセンスを受け取ることが分かったなら、ＩＪＭＳ１００は、候補ジョブを委任ライセンスサーバに登録するように構成される。例えば、登録は、フラグを立てることを有するのみか、または委任ライセンスサーバ１３０に、ライセンスをリアルライセンスサーバに戻すよりむしろ、ライセンスを、可能であれば候補の委任ライセンスサーバの識別子も一緒に、終了した委任ライセンスサーバに送るように知らせること有する。または、ＩＪＭＳ１００は、目標ジョブと候補ジョブの間の一致リストを維持し、目標ジョブの委任ライセンスサーバ１３０が終了した時に、ライセンスを他の委任ライセンスサーバに送るようにフラグを立て、ＩＪＭＳ１００がライセンスが送られる委任ライセンスサーバ１３０を特定できるようにする。
【００８６】
ステップＳ６０５で、待機ジョブステータスＤＢ１９２は、ジョブに付与されたライセンスを示すように更新されるか、または付与されたライセンスがジョブに代わってもはや探されないようにする。ステップＳ６０６で、ステップＳ５０１からＳ５０５までの情報のチェックおよび更新が繰り返される。ジョブチェックは、周期的に行われてもよく、シャットダウンまたはリセットのようなシステムトリガの後、または限られた数のループの後、完了してもよい。
【００８７】
ここで引用したすべての例および条件付き表現は、発明者により従来の技術を更に推し進めるために提供された発明と概念を読者が理解するのを支援する教育的目的のためであり、そのように特定的に引用した例と条件に制限されるものではないと解釈されるべきである。本開示の実施形態を詳細に記述したが、種々の変更、置換、および改造が、本開示の精神と範囲を逸脱することなく実施形態に対して行えるということは理解されたい。
【図１】
2015049903.tif 000008
【図２】
2015049903.tif 000009
【図３】
2015049903.tif 000010
【図４】
2015049903.tif 000011
【図５】
2015049903.tif 000012
【図６】
2015049903.tif 000013
【図７】
2015049903.tif 000014
【図８】
2015049903.tif 000015
【図９】
2015049903.tif 000016
【図１０】
2015049903.tif 000017
【図１１】
2015049903.tif 000018