JP6528374B2 - コンピューティングシステムにおいてジョブをスケジューリングする方法、システムおよびプログラム - Google Patents

コンピューティングシステムにおいてジョブをスケジューリングする方法、システムおよびプログラム Download PDF

Info

Publication number
JP6528374B2
JP6528374B2 JP2014163542A JP2014163542A JP6528374B2 JP 6528374 B2 JP6528374 B2 JP 6528374B2 JP 2014163542 A JP2014163542 A JP 2014163542A JP 2014163542 A JP2014163542 A JP 2014163542A JP 6528374 B2 JP6528374 B2 JP 6528374B2
Authority
JP
Japan
Prior art keywords
job
license
application
indicated
scheduling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014163542A
Other languages
English (en)
Other versions
JP2015049903A (ja
Inventor
英明 倉石
英明 倉石
晃 石坂
晃 石坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2015049903A publication Critical patent/JP2015049903A/ja
Application granted granted Critical
Publication of JP6528374B2 publication Critical patent/JP6528374B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、コンピューティング(コンピュータ利用)分野に関し、特にコンピューティングシステムにおいて実行するジョブおよびタスクのスケジューリングに関し、例えば、インフラストラクチャおよび/またはソフトウエアをサービスとして提供するコンピューティングシステムにおけるジョブおよびタスクのスケジューリングに関する。
独立したソフトウエアベンダ(ISV:independent software vendor)アプリケーションのようなアプリケーションは、各種のコンピューティング装置および環境におけるコンピューティングアクティビティにおいて共通に利用される。例えば、高性能コンピューティング(HPC: high performance computing)またはコンピュータ支援エンジニアリング(CAE)は、1つ以上の異なるアップリケーションにより実行され、可能であればある程度の並列性で実行される処理を必要とするジョブを含み、対応するライセンスがこのアップリケーションのアクセスまたは使用に必要となる。ジョブスケジュラは、CPU、コアおよびメモリのようなコンピューティングハードウエア資源の予約および獲得を制御し、必要なコンピューティングハードウエア資源が利用可能になった時にジョブがスケジュールされるようにする。ジョブスケジュラがライセンスマネージャーとのコントロールまたは通信をしないため、ジョブを寄託したユーザはアプリケーションライセンスの利用可能性(availability)について常時注意を払わなければならない。
従来のシステムでは、バッチジョブスクリプトがISVアプリケーションを実行するセクションに到着した時に、バッチジョブスクリプトを動作させるエンティティが必要なライセンスを獲得するように試みる。その獲得が成功したなら、アプリケーションが実行される。しかし、エンティティがライセンスの獲得に失敗すると、バッチジョブスクリプトは、ライセンスが無いために終了し、ジョブスケジュラは、寄託したジョブが終了したことをユーザに通知する。ジョブスケジュラの観点からは、ジョブは完了して終了したように見えるが、ユーザは、出力ファイルを見た時に、ジョブがライセンスの不足のために弾き出されたことを認識する。
必要なコンピューティングハードウエア資源が予約された寄託ジョブは、アプリケーションライセンスの利用有効性不足に起因して突然終了する。このような終了は、コンピューティングハードウエア資源を獲得するペンディング(未実行)のジョブのジョブキュー内での長時間の待機後に発生し、そのために全体の待ち時間およびジョブを実行する資源の使用におけるコンピューティングシステムの効率が低くなる。ユーザは、再度ジョブを寄託する必要があり、仕事の効率が低下する。
本発明の実施形態は、コンピューティングシステムにおけるジョブ実行タイミングをスケジュールするように構成されたジョブスケジューリングシステムを有する。ジョブスケジューリングシステムは、コンピューティングシステムにおいて未実行(実行がペンディングの)ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信するように構成されたジョブ情報受信モジュールと、指示されたコンピューティングハードウエア資源および指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングでジョブの実行をスケジュールするように構成されたジョブ実行スケジュラと、を有する。
好ましくは、実施形態は、アプリケーションライセンスにしたがってジョブ実行のタイミングを制御する機構を提供する。ジョブは、アプリケーションライセンスとコンピューティングハードウエア資源の両方が利用可能になるまで、実行のために寄託されない。実施形態は、ジョブ用のハードウエア資源およびアプリケーションライセンスの獲得を制御し、必要な資源およびライセンスが獲得された時にジョブをスケジューリングする統合されたシステムを提供する。実施形態は、コンピューティングハードウエア資源およびアプリケーションライセンスの両方の利用可能性が報告され、両方が利用可能な時にジョブが実行できるジョブ実行スケジュラを有する。
本発明の実施形態は、統合されたアプリケーションライセンスおよびコンピューティングハードウエア資源の管理を提供するジョブスケジューリングシステムを提供する。例えば、ジョブスケジューリングシステムは、バッチスクリプトのようなジョブ情報を受信するように構成され、受信したジョブ情報を解析してそのジョブを実行するのに必要なライセンスのアプリケーションを特定し、必要な数のライセンスを取り出すかまたは計算する。ジョブスケジューリングシステムは、取り出すか計算した必要な数のライセンスを利用するように構成され、例えばライセンスサーバとの通信により、ライセンスが利用できるタイミング、すなわちジョブが実行できるタイミング、および待機(ペンディング)中の利用可能なコンピューティングハードウエア資源を得る。
ジョブを実行するのに必要なコンピューティングハードウエア資源の指示は、ジョブ情報内でまたはジョブ情報受信モジュールによるジョブ情報から導出されることのいずれかで、ジョブが実行されるコンピューティングハードウエア資源として定義される限り、必要事項である。このように、ジョブを実行するのに必要なコンピューティングハードウエア資源は、ジョブを実行するユーザによりリクエストされたコンピューティングハードウエア資源であると考えられるか、または受信したジョブ情報に基づいてジョブ情報受信モジュールによりジョブの実行に適切であると決定されたコンピューティングハードウエア資源であると考えられる。例えば、ジョブ情報受信モジュールは、ジョブを、コンピューティングハードウエア資源の適切な構成の適合するためのルックアップテーブルをアクセスする。
同様に、ジョブを実行するのに必要なアプリケーションライセンスの指示は、ユーザがジョブを実行するのに使用することを望むアプリケーションライセンス、またはユーザが使用されることを希望するジョブ情報から導出されるアプリケーションライセンスとして定義される限り、必要事項である。例えば、ユーザは、ジョブについての他の情報との組み合わせで、サービスレベルの質または性能目標を定義し、ジョブ情報受信モジュールがライセンスの適切な割り当てを、例えばルックアップテーブルを参照して導出する。このように、ジョブを実行するのに必要なアプリケーションライセンスの指示は、ジョブを実行するユーザによりリクエストされたアプリケーションライセンス、または受信したジョブ情報に基づいてジョブ情報受信モジュールによりジョブの実行に適切であると決定されたアプリケーションライセンスであると考えられる。
コンピューティングハードウエア資源は、ジョブを実行するのに必要なハードウエアの構成である。例えば、コンピューティングハードウエア資源は、記憶空間、メモリ、コア、プロセッサまたはノード、および可能であればネットワークインターフェースまたは他のハードウエアの組み合わせである。コンピューティングハードウエア資源は、必要なハードウエアの事項および必要な時間長で定義される。
アプリケーションライセンスは、特定の機能を実行しある入力および出力を有する処理インストラクションの組にアクセスして実行する権利と考えられる。このような処理インストラクションの組はアプリケーションと称され、それらにアクセスする権利はライセンスと称される。実行のためにコンピューティングシステムに寄託されるジョブは、並列度のレベルを変えて実行され、アプリケーション当たりの1つ以上のライセンスが望まれ、また必要とされる。アプリケーションは、独立したソフトウエアベンダ(ISV)アプリケーションである。
実施形態は、ジョブの代わりに指示されたコンピューティングハードウエア資源を予約するように構成されたハードウエアスケジューリングモジュールと、ジョブの代わりに指示されたアプリケーションライセンスの利用可能性をチェックするように構成されたライセンススケジューリングモジュールと、をさらに有し、ジョブのスケジューリングの実行は、予約され指示されたコンピューティングハードウエア資源が有効となる時点まで、コンピューティングシステムへのジョブの実行の指示を遅延させることを含む。
ハードウエアスケジューリングモジュールおよびライセンススケジューリングモジュールは、必要とする資源(ここでは、資源は、コンピューティングハードウエア資源およびアプリケーションライセンスを合わせたものを称する)が利用可能になったタイミングを決定する機構を提供する。ハードウエアスケジューリングモジュールは、ジョブの代わりに指示されたコンピューティングハードウエア資源を予約するように構成される。この予約は、必要なコンピューティングハードウエア資源へのアクセスキューを加え合わせるようにコンピューティングハードウエア資源マネージャーまたはコントローラと共同すること、および/またはジョブが完了してコンピューティングハードウエア資源が解放される時点まで指示されたコンピューティングハードウエア資源が他のジョブにより使用されるのを防止すること、を含む。
ライセンススケジューリングモジュールは、例えば、1つ以上のリアル(実際の)ライセンスサーバとの通信により、指示されたライセンスの利用可能性をチェックするように構成される。利用可能性のチェックは、リクエストを出すプロセスにより行われ、リクエストは周期的に送られるか、または現在利用できないライセンスを予約し、それらが利用可能になった時にライセンスを取得することでもできる。
ジョブの実行に必要なアプリケーションライセンスの指示は、ジョブが実行可能なアプリケーションライセンスの最適な割り当ての指示およびジョブが実行可能なアプリケーションライセンスの最小限の許容できる割り当ての指示を有し、ジョブの代わりにアプリケーションライセンスの指示された割り当ての利用可能性のチェックは、アプリケーションライセンスの最適な割り当てが利用可能であるかをチェックすることを含み、もしそうでなければ、最適な割り当てより少なく、アプリケーションライセンスの最小限の許容できる割り当てより多いか等しいアプリケーションライセンスの割り当てが利用可能であるかチェックすることを含む。
任意ではあるが、アプリケーションライセンスのチェックした割り当てが利用可能ならば、ライセンススケジューリングモジュールは、ジョブの代わりにライセンスの利用可能な割り当てを獲得する。
好ましくは、許容できるアプリケーションライセンスの割り当ての範囲を効果的に指示することにより、上記の技術は、ジョブの利用可能なライセンスとの整合にある柔軟性をもたらし、それはプリケーションライセンスが柔軟性が無い場合より頻繁に使用されることを全体的に保証する。最適な割り当ては、ジョブ情報に指示されたライセンスの最大の割り当てという意味で最適である。最適は、より多くのライセンスを有するということに関係してより高速の実行時間および好適なアプリケーションがタスクを実行することに関係する。ライセンスの最小限の許容できる割り当ては、ライセンススケジューリングモジュールがジョブの代わりにチェックを行うライセンスの最後の割り当てである。最適から最小限の許容できるまでの1つ以上の割り当ての進行は、最小限の許容できるアップリケーションをチェックする前にチェックされる。ライセンスの割り当ては、1つ以上のアプリケーションのそれぞれについてのアプリケーション当たりのライセンス数である。アプリケーションは、最適な割り当てから最小限の許容できる割り当てまで、一定である。別の形態では、アプリケーションは、最適な構成の部分として含まれるアプリケーションを、最後の拠り所として提供し、いくつかのアプリケーションは、最適な割り当てと最小限の許容できる割り当ての間で異なる。別の形態では、アプリケーションは固定で、最適な割り当てと最小限の許容できる割り当ての間の違いは、最小限の許容できる割り当てにおいては、1つ以上のアプリケーションのライセンスはほとんどないことが示されるということのみである。
実施形態で任意の例として、ライセンススケジューリングモジュールは、アプリケーションライセンスが予約または獲得されるまで、またはジョブが完了または開始する指示されたタイミングが経過するまで、ジョブの代わりにアプリケーションライセンスの指示された割り当ての利用可能性をチェックするように構成されている。
すなわち、ライセンススケジューリングモジュールは、以下の2つの条件の一方または他方に到達するまで、ジョブの代わりにアプリケーションライセンスの指示された割り当ての利用可能性をチェックするように構成されている。この条件は、アプリケーションライセンスが獲得されるか、またはジョブが完了されるタイミングまたはジョブが開始されるタイミングのいずれか一方である指示されたタイミングが経過したか、である。
ある実現例では、ジョブは効果的にタイムアウトできるようにされる。すなわち、ジョブを開始するか完了する許容時間限界がユーザにより送られ、もしジョブがその時間限界までに完了されないか、またはその時間限界まで開始されなければ、ジョブはもはやペンディングではなく、ユーザに未完了として戻されるだけである。このようなタイミング指示は任意であり、ある実施形態では、ジョブはそれが実行されるまでペンディング状態を維持すると仮定されるだけである。チェックは、周期的に実行され、ある実現例では、最適な割り当てと最小限の許容できる割り当てまでのライセンスの割り当てが、肯定的な応答が得られてリクエストされた割り当てが利用可能になり獲得されるまで順番に繰り返しリクエスト(チェック)される限り、周期的である。
リクエストされたライセンスの獲得は、ジョブの代わりにライセンスの利用可能な割り当てを獲得および保持するように構成されたジョブ用の委任ライセンスサーバを起動することを含む。委任ライセンスサーバは、ジョブ代わりにリアルライセンスサーバによりライセンスを付与されるエンティティである。委任ライセンスサーバは、特定のジョブに関係しており、そのため、ジョブが実行される時、委任ライセンスサーバは、特定され、アクセス可能である。委任ライセンスサーバは、ジョブを実行するライセンスを編成し、ジョブにしたがってそれらを組み合わせ、アクセス可能な位置にライセンスを維持する機構を提供する。
他の機能に加えて、ライセンススケジューリングモジュールは、ライセンスの割り当てが、リアルライセンスサーバおよび/または現在実行中の他のジョブの委任ライセンスサーバから利用可能であるかをチェックするように構成される。例えば、ジョブ情報は、ジョブが完了するまでのタイミングの指示を含み、もしライセンススケジューリングモジュールがジョブのアプリケーションライセンスのチェックされた割り当てが、指示されたタイミングより前に完了するようにスケジュールされた他のジョブの委任ライセンスサーバから利用可能であるかを特定するならば、ライセンススケジューリングモジュールは、ジョブの指示されたアプリケーションのライセンスを予約し、ジョブの委任ライセンスサーバを起動して他のジョブの完了時に他のジョブから指示されたアプリケーションライセンスを受けるように構成されている。
いくつかの実現例では、ジョブが完了するたびに、完了したジョブの委任ライセンスサーバは、シャットダウンし、それらを獲得したリアルライセンスサーバから戻る(またはそれらが獲得されたところから戻る)。別の形態では、ライセンススケジューリングモジュールは、現在実行されているジョブをペンディングしているジョブと一致させるように構成され、現在実行しているジョブが完了し、その委任ライセンスサーバがシャットダウンした時に、アプリケーションライセンスは、一致されたペンディングジョブの委任ライセンスサーバに直接送信される。別の形態またはさらに、委任ライセンスサーバのシャットダウンに時に、いくつかのアプリケーションライセンスは、それらが獲得されたリアルライセンスサーバに戻り、いくつかは他の委任ライセンスサーバに直接送信される。実現例によっては、ライセンススケジューリングモジュールは、現在実行中のジョブの委任ライセンスサーバをチェックする前に、利用可能なアプリケーションライセンス用のリアルライセンスサーバをチェックするように構成されるが、それは実行中のジョブが完了するのを待機するよりもリアルライセンスサーバから利用可能なアプリケーションライセンスを獲得する方が速いためである。正確な一致アルゴリズムは、実現例の詳細に依存する。委任ライセンスサーバは、ペンディングジョブ用に定義された最適な割り当てと最小限の許容割り当てによりセットされた境界または境界内にあるライセンスの割り当てを保持しようとし、ライセンスの十分な分け前が送信できる。別の形態では、ライセンススケジューリングモジュールは、ペンディングのジョブの要求を満たすのに十分なアプリケーションライセンスではなくても、ライセンスが利用可能になった時にはリアルライセンスサーバから利用可能なライセンスを獲得するように構成され、足りないアプリケーションライセンスはペンディングジョブの委任ライセンスサーバから探し、完了すると獲得される。
さらに、ライセンススケジューリングモジュールは、ペンディングのジョブが現在実行中のジョブの委任ライセンスサーバに一致した時、許容できるタイミングを計算するように構成される。ペンディングのジョブに指示された許容できるタイミングは、ライセンススケジューリングモジュールにより、ペンディングのジョブに一致する委任ライセンスサーバの探索の終了指示として利用される。例えば、ペンディングのジョブの許容できる開始時間内に終了するジョブの委任ライセンスサーバのみが、一致の候補として考慮される。
任意であるが、ジョブ実行スケジュラは、ジョブの完了をライセンススケジューリングモジュールに通知するように構成され、ライセンススケジューリングモジュールは、完了したジョブの委任ライセンスサーバを終了し、終了した委任ライセンスサーバにより保持されたアプリケーションライセンスを待機中の委任ライセンスサーバまたはリアルライセンスサーバに送信するように構成される。
ジョブの委任ライセンスサーバは、ジョブ用に起動され、ジョブの生存時間中、すなわちジョブの完了まで、エンティティとして存在する。委任ライセンスサーバは、ジョブがジョブ情報受信モジュールに受信されるとすぐに、またはジョブのアプリケーションライセンスが一旦利用可能になると、利用可能なライセンスを獲得するための機構として、起動される。
実現例として、ジョブ実行スケジュラおよびハードウエアスケジューリングモジュールは、ジョブスケジュラの部品として提供され、ジョブ情報受信モジュールおよびライセンススケジューリングモジュールは、ジョブ実行スケジュラ、ハードウエアスケジューリングモジュールおよび1つ以上のリアルライセンスサーバと相互作用するように構成された分離したプロセスとして提供される。
モジュールの多くの構成が、本発明の実施形態であることが、理解される。ジョブスケジュラは、ジョブを実行するのに必要なアプリケーションライセンスが獲得されたことを、ライセンススケジューリングモジュールからの信号または指示を待つように適合または変形される。ジョブ情報受信モジュールおよびライセンススケジューリングモジュールは、ジョブがジョブスケジュラに到着する前にジョブを途中で中断するように構成されたプログラムまたはプロセスとして提供され、ジョブ(ここではジョブはジョブ情報により表される)からの要求を取り出すまたは計算し、計算した要求および他のジョブ情報をジョブスケジュラに送り、ジョブの代わりにリアルライセンスサーバと相互作用し、ジョブのアプリケーションライセンスが獲得された時にジョブスケジュラをトリガするかまたはフラグを立て、ジョブが要約実行される(コンピューティングハードウエア資源のペンディングの利用可能性)。
本発明の一つの態様の実施形態は、コンピューティングシステムにおけるジョブ実行タイミングをスケジュールする方法を含み、この方法は、コンピューティングシステムにおいて未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信し、指示されたコンピューティングハードウエア資源および指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、ジョブの実行を調整する。
本発明のほかの態様の実施形態は、この出願の他の部分で定義または記載されたジョブスケジューリングシステム、およびスケジュールされたジョブを実行するように構成されたコンピューティングハードウエア資源を有する。
本発明のほかの態様の実施形態は、コンピュータプログラムを含み、このプログラムは、コンピューティング装置により実行された時に、コンピューティング装置を、この出願の他の部分で定義または記載されたジョブスケジューリング装置として機能させる。
本発明のほかの態様の実施形態は、コンピュータプログラムを含み、このプログラムは、コンピューティング装置により実行された時に、コンピューティング装置を、本発明を実現する方法を実行する。
さらに、本発明の実施形態は、一揃えのコンピュータプログラムを含み、これは、コンピューティング装置の分配ネットワークにより実行された時に、コンピューティング装置の分配ネットワークを、本発明を実現するシステムとして機能させる。
さらに、本発明の実施形態は、コンピュータプログラムまたは一揃えのコンピュータプログラムを含み、これは、記憶ユニットの分配ネットワークを有するコンピューティング装置のシステムにより実行された時に、システムを、本発明を実現する方法を実行する。
各種態様(ソフトウエア/方法/装置)について別々に述べたが、1つの態様に関連して述べたそれらの特徴および結果は、他の態様にも等しく適用可能であることが容易に理解されるべきである。したがって、方法の特徴を述べた場合、それは、装置が、その特徴を実行するかまたは適切な機能性を提供するように構成されたユニットまたは装置を有するように、プログラムがコンピューティング装置にその方法の特徴を実現するように実行されるように構成されるように、適用することが可能である。
本発明の実施形態の詳細な説明は、付属の図面を参照して、単なる例として以下に行われる。
図1は、本発明を実現するジョブスケジューリング装置を示す。 図2は、コンピューティングシステムの文脈内で、本発明を実現するジョブスケジューリングシステムの例示のアーキテクチャを示す。 図3は、ジョブスケジュラおよびIJMSを有する図2の例示のアーキテクチャをより詳細に示す。 図4は、例示のバッチジョブスクリプトである。 図5は、本発明を実現する例示のアプリケーションライセンス管理プロセスを示す。 図6は、ライセンススケジューリングモジュールにおける例示の処理を示す。 図7は、ジョブが実行を終了した後に実行するポスト処理方法を示す。 図8は、ジョブの完了に続くIJMSにおける処理を示す。 図9は、ジョブのスケジューリングおよび実行の間のエンティティ間のライセンスの送信を示す。 図10は、ジョブ間のライセンスの送信のための例示の方法を示す。 図11は、ジョブ間のライセンスの送信のための例示の方法を示す。
図1は、本発明を実現するジョブスケジューリング装置を示す。ジョブスケジューリング装置10は、ジョブ情報受信モジュール12と、ジョブ実行スケジュラ14と、を有する。さらに、ジョブスケジューリング装置10は、ライセンススケジューリングモジュール16と、ハードウエアスケジューリングモジュール18と、を有する。ライセンススケジューリングモジュール16およびハードウエアスケジューリングモジュール18は、実施形態において設けるかは任意(オプション)である。ジョブ情報受信モジュール12、ジョブ実行スケジュラ14、ライセンススケジューリングモジュール16およびハードウエアスケジューリングモジュール18は、合わせてジョブスケジューリング装置10の部品と称される。
ジョブスケジューリング装置10は、各部品が分離して示されるハードウエアモジュールとして提供されるハードウエアとして提供される。または、ジョブスケジューリング装置は、ソフトウエア機能、例えば、データセンタのマネージャーで動作するプロセスとして提供されてもよい。部品は、ソフトウエア機能の部分として動作する機能モジュールと考えられ、部品間の違いは、実施形態の機能を理解するために有用であり、かならずしも分離して提供されなければならないことを示し、それを包含するものではない。ジョブ情報受信モジュール12、ジョブ実行スケジュラ14、およびハードウエアスケジューリングモジュール18は、ジョブスケジュラまたはジョブスケジュラプロセスの一部として提供されるが、ライセンススケジューリングモジュール16は、ジョブスケジュラの外部または分離したプロセスとされ、ライセンススケジューリングモジュール16はアプリケーションライセンスの獲得を調整してそれらをジョブに与える。または、ライセンススケジューリングモジュール16は、同一のジョブスケジュラまたはジョブスケジューリングプロセスの一部のように、残りの部品として提供される。更なる任意の構成では、ジョブ情報受信モジュール12およびライセンススケジューリングモジュール16は、別に提供されるジョブ実行スケジュラ14と通信する統合プログラムまたはプロセスとして提供される。
ジョブ情報受信モジュール12は、コンピューティングシステム内での未実行ジョブを定義するジョブ情報を受信するように構成され、ジョブ情報は、ジョブを実行するのに必要なコンピューティングハードウエア資源の指示、およびジョブを実行するのに必要なアプリケーションライセンスの指示を含む。ジョブ情報は、ユーザにより寄託されてもよい。または、さらに、ジョブ情報は、コンピューティングシステムで別々に受信され、ジョブ情報受信モジュール12にジョブ情報として寄託するために処理が準備されようとしているユーザにより寄託されたリクエストに基づいている。ジョブはバッチジョブでもよく、ジョブ情報はバッチジョブスクリプト140として提供される。
ジョブ情報受信モジュール12は、受信したジョブ情報への処理を実行するように構成され、例えば、ジョブ情報からあるデータまたは指示を抽出する。ジョブ情報は、ユニットで受信され、ジョブ情報の1つの単一ユニットが1つのジョブに対応し、例えば、ジョブ当たり1バッチジョブスクリプト140である。または、ジョブ情報は、データとして提供されてもよく、ジョブ情報受信モジュール12が、そのデータから、個別のジョブを特定し、ジョブごとの要求を抽出するように構成されてもよい。要求の事項では、ジョブ情報受信モジュール12は、特定のジョブを実行するのに必要であるコンピューティングハードウエア資源、および特定のジョブを実行するのに必要であるアプリケーションライセンスの指示を、ジョブ情報から抽出するように構成されてもよい。指示は、ハードウエア資源およびアプリケーションライセンスの明確な詳細であっても、例えばルックアップテーブルから明確な詳細を探索するのを可能にするデータであってもよい。さらに、ジョブ情報は、(現在時間または受信時間に対して絶対的または相対的のいずれかである)タイミングの指示を含み、ジョブはそのタイミングまでに完了するか、またはそのタイミングまでにジョブが開始される。
ジョブ受信モジュール12は、ジョブ実行スケジュラ14にジョブの要求を報知し、要求は、コンピューティングハードウエア資源、アプリケーションライセンス、およびそれに含まれるタイミングを有する集合事項である。ジョブ実行スケジュラ14は、指示されたコンピューティングハードウエアおよび指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されるタイミングで、ジョブの実行をスケジュールするように構成される。
ジョブ実行スケジュラ14は、コンピュータシステム内の未実行(実行がペンディングしている)ジョブ、またはジョブを記載する情報を受信するように動作する。ジョブ実行スケジュラ14は、各ジョブが実行されるタイミングを決定するように動作する。例えば、ジョブ実行スケジュラ14は、未実行ジョブのリストを記憶しており、ジョブをこのペンディングリストからいつ移動して動作させるかを決定する。決定されたタイミングで、あるジョブ情報は、入力の要旨をアプリケーションおよび受信出力に寄託することによりジョブの実行を調整することにより、ジョブの実行またはジョブの実行の調整に応答するノードに寄託されてもよい。ジョブ実行スケジュラ14は、ジョブを動作させる前に、指示されたアプリケーションライセンスと指示されたコンピューティングハードウエア資源の両方が利用可能になるまで待機するように構成される。
ジョブ実行スケジュラ14は、ジョブの代わりにハードウエア資源およびアプリケーションライセンスを予約および獲得し、ハードウエア資源およびアプリケーションライセンスが利用可能になるような時間にジョブのタイミングをスケジュールするように構成されてもよい。ジョブ実行スケジュラ14は、ライセンススケジューリングモジュール16およびハードウエアスケジューリングモジュール18と協働して動作する。ハードウエアスケジューリングモジュール18は、ジョブの代わりに、指示されたコンピューティングハードウエア資源を予約するように構成される。予約の形式は、実施形態が実現されるコンピューティングシステムに依存する。例えば、ジョブ実行スケジュラがペンディング(未実行)のジョブのジョブ情報を受信すると、ハードウエアスケジューリングモジュール18は、ジョブ情報で指示されたコンピューティングハードウエア資源要求が報知され、直接に、またはオペレーティングシステムまたはコンピューティング資源コントローラを介して、コンピューティングハードウエア資源と通信するように構成され、指示されたコンピューティングハードウエア資源が利用可能であるか否か、またはその時を決定する。それらがすぐに利用可能ならば、ハードウエアスケジューリングモジュール18は、ジョブの代わりに利用可能な資源を効果的に保持し、資源は他のアプリケーションまたはジョブに利用できないようになる。または、ハードウエアスケジューリングモジュール18は、キュー配列内に入り、必要なハードウエア資源を待ち、それらが利用可能になった時にジョブの代わりにそれらを確保(すなわち、獲得および保持)するように構成される。
ライセンススケジューリングモジュール16は、ジョブの代わりに、指示されたアプリケーションライセンスの利用可能性をチェックし、任意ではあるが、ジョブの代わりにライセンスを獲得または予約するように構成される。アプリケーションライセンスの利用可能性のチェックは、ジョブ実行スケジュラ14の機能性を容易にする。ライセンススケジューリングモジュール16は、ジョブの代わりにアプリケーションライセンスの予約および/または獲得をするようにも動作する。例えば、ジョブ実行スケジュラ14がペンディングのジョブのジョブ情報を受信すると、ライセンススケジューリングモジュール16は、ジョブ情報内に指示されたアプリケーションライセンスの要求が報知され、リアルライセンスサーバと通信するか、または他の形式のアプリケーションライセンスコントローラと通信し、指示されたアプリケーションライセンスが利用可能であるか否か、またはその時を決定するように構成される。それらがすぐに利用可能ならば、ライセンススケジューリングモジュール16は、ジョブの代わりに利用可能なアプリケーションライセンスを効果的に保持し、保持されたアプリケーションライセンスは他のアプリケーションまたはジョブに利用できないようになる。または、ライセンススケジューリングモジュール16は、キュー配列内に入り、必要なアプリケーションライセンスを待ち、それらが利用可能になった時にジョブの代わりにそれらを確保(すなわち、獲得および保持)するように構成される。
ハードウエアスケジューリングモジュール18およびライセンススケジューリングモジュール16は、ペンディングジョブの実行をスケジューリングする上で、ジョブ実行スケジュラ14と協働するように構成される。例えば、ハードウエアスケジューリングモジュール18は、指示されたハードウエア資源が予約され、ジョブが実行される準備がされて待機した時、ジョブ実行スケジュラ14に報知するように構成されてもよい。同様に、ライセンススケジューリングモジュール16は、指示されたハードウエア資源がジョブの代わりに獲得され、ジョブを実行する上で利用されるようになった時、ジョブ実行スケジュラ14に報知するように構成されてもよい。
図2は、コンピューティングシステムに関連して本発明を実現したジョブスケジューリングシステムの例示のアーキテクチャを示す。統合されたジョブ管理システム(IJMS)100は、この出願の他の部分で言及したジョブ情報受信モジュール12およびライセンススケジューリングモジュール16の例である。ジョブスケジュラ120は、ジョブ実行スケジュラ14およびハードウエアスケジューリングモジュール18の例である。ジョブスケジュラ120は、ヘッドノード110上に構築される。ヘッドノード110は、ジョブが実行されるコンピューティングシステムに接続可能なコンピューティング装置である。ヘッドノード110は、ジョブスケジュラ120を動作させるのに加えて他の管理機能を有してもよい。任意であるが、IJMS100は、ヘッドノード110に構築されてもよく、すなわち、ジョブスケジュラ120およびIJMS100は、同一のコンピュータ上に構築されてもよい。ヘッドノード110とリアルライセンスサーバ300の間の通信は、IJMS100を介する。同様に、ジョブスケジュラ120とリアルライセンスサーバ300の間の通信は、IJMS100を介する。ユーザ400は、コンピューティングノード200上で実行されるジョブの例示の供給源として示されている。ジョブは、ユーザによりコンピューティングノード200に寄託され、IJMS100により受信される。ジョブの寄託は、実行されるジョブを定義するジョブ情報のIJMS100への送信を含む。コンピューティングノード200は、この出願の他の部分で言及されたコンピューティングシステムの例である。コンピューティングノード200は、ジョブの期間ジョブに付与するコンピューティング設備(インフラ)を提供するコンピューティング装置の相互接続の組であり、再付与により利用可能になる。コンピューティングノード200は、ジョブに特に付与されるコンピューティング資源210を有する。コンピューティング資源210は、この出願の他の部分で言及したコンピューティングハードウエア資源の例であり、CPU212、コア214、メモリ216およびディスク(記憶空間)218を含む。リアルライセンスサーバ300は、コンピューティングノード200内のコンピューティング処理へのアプリケーションライセンスの割り当ての制御に応答するエンティティである。並列のライセンスの限られた個数は、リアルライセンスサーバ300により保持され、いかなる時にもコンピューティングノード200内で動作させることが可能なアプリケーションの同時に可能な個数について上限がある。リアルライセンスサーバ300は、ジョブ(コンピューティングプロセス)でアプリケーションを動作させるライセンスを付与し、それらの付与を追跡(トラッキング)し、および付与されたライセンスを使用するプロセスの完了に続いてライセンスを再び利用可能にするように応答する。
ジョブ情報受信モジュール12は、ユーザ400からジョブ情報を受信するように構成される。ジョブ情報受信モジュールは、ジョブスケジュラ120、IJMS100、またはヘッドノード110の分離可能な機能として、提供されてもよい。ジョブ情報受信モジュールは、受信したジョブ情報から、少なくともコンピューティングハードウエア資源要求およびアプリケーションライセンス要求を抽出するように構成される。ジョブ情報受信モジュール12は、ジョブスケジュラ120に、コンピューティングハードウエア資源要求を報知し、ジョブスケジュラ120(または、特にハードウエアスケジューリングモジュール18))は、コンピューティング資源210と協働し、ジョブの代わりに必要なコンピューティングハードウエア資源を予約するように構成される。IJMS100自体(または、特にライセンススケジューリングモジュール16)は、リアルライセンスサーバ300と通信し、ジョブの代わりに必要なアプリケーションライセンスの利用可能性をチェックし、必要なアプリケーションライセンスを予約するかまたはそれらが利用可能になった時に獲得するように構成される。IJMS100は、ジョブスケジュラ120と通信し、必要なアプリケーションライセンスが獲得された時にジョブスケジュラ120に報知するか、またはジョブスケジュラ120に必要なアプリケーションライセンスが予約されたタイミングを報知する。ジョブスケジュラ120は、必要なコンピューティングハードウエア資源および必要なアプリケーションライセンスの両方が利用可能なタイミングで、ジョブの実行をスケジュールするように構成される。そのようなタイミングで、ジョブスケジュラ120は、必要なアプリケーションライセンスを使用して必要なコンピューティングハードウエア資源により実行するために、ジョブをコンピューティングノード200に寄託する。
図3は、より詳細に示したジョブスケジュラ120およびIJMS100を加えた、図2の例示のアーキテクチャを示す。IJMS100が精霊のように(隠れて)動作するIJMS100の特別な例が、すなわちユーザにとって透明で、ユーザが機能を入力する必要のないプロセスが、示される。この特別な例では、IJMS100は、ジョブの代わりに必要なライセンスを保持するために、ジョブ当たり1つの委任ライセンスサーバ130を起動するように構成される。委任ライセンスサーバ130は、ジョブの代わりに、ライセンスの利用可能性をチェックし、予約し、および/または獲得するために、リアルライセンスサーバ300と通信するように構成さてもよい。ジョブスケジュラ120は、ジョブスケジュラ120により提供される機能性を実現する3つの機能部分またはモジュールを有する。ジョブスケジュラ120は、プリチェック部122、バッチジョブスクリプト実行部124、および超すとチェック部126を有する。IJMS100およびジョブスケジュラ120は、ヘッドノード120上で動作するプロセスである。
図3における破線は、プロセスまたは部品間の主たる相互作用を表す。実線は、相互接続を表し、ヘッドノード110は、ユーザ400がコンピューティングノード200のインフラおよびアプリケーションにアクセスできるアクセスポイントとして機能することが分かる。委任ライセンスサーバ130を介するIJMS100は、ジョブの代わりに、リアルライセンスサーバ300からアプリケーションライセンスを予約および獲得する機構を提供する。ジョブスケジュラ120は、ジョブの代わりにコンピューティング資源210を予約し、必要なアプリケーションライセンスが獲得され、必要なコンピューティング資源が利用可能なタイミングで、ジョブの実行を手配する。
ユーザ400は、実行するためにジョブをコンピューティングノード200に寄託する。ジョブはジョブ情報により表され、ジョブ情報はヘッドノード110により受信され、ヘッドノード110はユーザとコンピューティングノード200の間のアクセスポイントである。ヘッドノード110におけるジョブ情報受信モジュール12は、ジョブ情報を受信し、ジョブをスケジューリングするのに必要な情報を抽出するプロセスを実行するように構成される。ジョブ情報受信モジュール12は、ジョブスケジュラ120、IJMS100により提供される機能であってもよく、またヘッドノード110上で動作する分離したプロセスとして提供される機能であってもよい。寄託されたジョブ情報は、ジョブを実行するのに必要なコンピューティングハードウエア資源の指示、ジョブを実行するのに必要なアプリケーションライセンスの指示を有する。この指示は、からなずしも要求の明確な説明ではなく、例えばルックアップテーブルを利用してジョブ情報受信モジュール12が要求を抽出できれば十分である。
IJMS100は、ヘッドノード110上で動作する隠れたプロセスにより実現される機能である。図3のIJMS100は、ジョブスケジュラ120および多重リアルライセンスサーバ300と、組み合わされるように構成され、可能であれば委任ライセンスサーバ130を介して組み合わされる。IJMS100は、リアルライセンスサーバ300と通信する機構として、委任ライセンスサーバを使用してもよい。IJMS100は、本願の他の部分で言及したライセンススケジューリングモジュール16の例であり、任意ではあるが、ジョブ情報受信モジュール12の機能も提供する。このように、IJMS100は、ジョブスケジュラ120の代わりにライセンスの利用可能性を確立し、ライセンスを獲得し、そして必要なアプリケーションライセンスが獲得されるまで、ジョブスケジュラ120がジョブをコンピューティングノード200に寄託するのを遅らせることを可能にする機構を提供する。ユーザ400によりジョブが寄託され、ジョブ情報受信モジュール12がIJMS100にアプリケーションライセンス要求を報知した後、IJMS100はジョブごとに委任ライセンスサーバ130を起動し、ジョブが実行される前に必要なアプリケーションライセンスを獲得することについて設定するように構成される。
図3の例示のシステムでは、ジョブスケジュラ120はプレチェック部122を有し、プレチェック部122はペンディングのジョブのリストを記憶し、指示された必要なアプリケーションライセンスおよびコンピューティングハードウエア資源の利用可能性にしたがってペンディングのジョブの状態(ステータス)を制御するように構成される。ジョブは、指示された必要なコンピューティングハードウエア資源および指示された必要なアプリケーションライセンスの両方が獲得されるまで、「ペンディング」または「待機」を付してリストに保持され、両方が獲得された時点で、ステータスは「実行中(動作中)」または「実行(動作)」に変更でき、ジョブはバッチジョブ実行モジュール124による実行のために寄託される。
ジョブは一旦そのステータスが「実行中」または「実行」になり、バッチジョブ実行モジュール124に送られると、バッチジョブ実行モジュール124は、ジョブのために予約されたコンピューティング資源の部分でのジョブの実行を手配するように構成される。
ジョブが終了すると、ジョブ情報またはジョブを表す他のデータは、ジョブスケジュラ120のポスト実行部126に送られ、対応する委任ライセンスサーバにより保持されたアプリケーションライセンスが解放される。
ユーザにより期待されたジョブ情報は、バッチジョブスクリプト140の形式であってもよい。または、ヘッドノードは、ユーザがオプションを選択できるインターフェースを提供してもよく、これらのオプションを反映したバッチジョブスクリプト140が自動的に作成される。バッチジョブスクリプト140は、本願の他の部分で言及したジョブ情報の例である。バッチジョブスクリプト140は、ジョブが実行されるコンピューティングシステムのジョブスケジュラ120により要求されるフォーマットを実現する。例えば、ローカルスケジュラのオプションは、ユーザが、コンピューティングノード、CPU、コアおよびメモリのサイズのような必要な資源を規定するのを可能にする。バッチジョブスクリプト140は、アプリケーションの実行を行わせるコマンドラインを有してもよい。例えば、アプリケーションはISVアプリケーションである。
例示のバッチジョブスクリプト140を、図4に示す。例示のバッチジョブスクリプト140は、資源定義142、環境セッティング144、およびISVapps146の3つのセクションを有する。資源定義セクション142は、ジョブを動作させるのに必要なコンピューティング資源の指示を含む。資源定義の文法構成は、実施形態に依存し、ジョブスケジュラ間で異なる。いかなる明確な資源定義が無くても、ジョブスケジュラがデフォルトでコンピューティングハードウエア資源構成をジョブに割り当てるように構成されている限り、コンピューティングハードウエア資源の指示としてみなすことができる。環境セッティングセクション144は、実行コマンドおよび数学的なライブラリィ経路(パス)のような環境変数を規定する。ジョブスケジュラは、ジョブの実行ディレクトリィを適当なロケーションに変更できる。ISVappsセクション146は、ジョブを達成するように実行するのに必要なアプリケーションを定義し、ジョブを完了するためにアプリケーションごとに必要なライセンスの指示を有する。アプリケーションライセンスは、リアルライセンスサーバにより保持される。
ライセンスサーバとも称されるリアルライセンスサーバは、コンピューティングシステムにおけるISVアプリケーションのライセンスを管理する。多重ライセンスサーバが単一システム内で動作する場合が頻繁にある。例えば、ある冗長性が設けられるか、またはアプリケーション当たり1つのライセンスサーバがあってもよい。ライセンスサーバは、仮想サーバであり、1つ以上のライセンスサーバは単一のコンピューティングノード上で動作できる。さらに、リアルライセンスサーバが、仮想サーバとして設けられてもよい場合がある。リアルプリフィックス(real prefix)は、リアルライセンスサーバがアプリケーションへのアクセスを制御するためのエンティティであることを示す。
従来のシステムにおいては、図4の例示のバッチジョブスクリプト140のライン14"line 14 (#Line 014)"の例を使用し、ライン14は、名前が"isv-P"で示されるISVアプリケーションを動作させる実行コマンドである。ジョブが実行され、バッチスクリプトが"isv-P"を動作させるように試みる時、スクリプトはISVアプリケーション構成ファイル内に規定されたライセンスサーバについての必要なアプリケーションライセンスの利用可能性について直接問い合わせる。もしライセンスの必要な個数が利用可能であれば、ISVアプリケーションは既定された条件で動作を開始する。しかしながら、ライセンスの必要な個数が利用可能でなければ、ISVアプリケーションはライセンスの不足のために退出する。したがって、ジョブは完了しない。
IJMS100は、バッチジョブが実行される前に、すなわちバッチジョブがジョブスケジュラ120上で"RUN"ステータスに行く前に、ISVアプリケーションのライセンスの利用可能性をチェックしてライセンスを獲得する機能を提供する。IJMS100は、必要なアプリケーションライセンスが獲得された時にジョブスケジュラ120に報知する。ジョブが実行されるための他の必要条件は、必要なコンピューティングハードウエア資源の予約である。ジョブ実行前のライセンス獲得は、IJMS100がジョブごとに委任ライセンスサーバ130を起動することにより達成され、委任ライセンスサーバ130は、ジョブを定義するバッチスクリプトの代わりに、リアルライセンスサーバ300と通信するように構成される。
ライセンスの利用可能性をチェックしてライセンスを獲得する機能に加えて、IJMS100は、現在実行中のジョブによりライセンスが解放される前に、ライセンスをジョブに付与するようにも構成されてもよい。例えば、もしアプリケーションライセンスが使用されている実行中のジョブがあり、そのジョブが規定された時間量以内に完了するならば、アプリケーションライセンスを待っている他のジョブは、現在実行中のジョブにリンクされ、現在実行中のジョブの委任サーバにより、ジョブの完了直後に、アプリケーションライセンスが付与される。IJMSが提供するさらなる機能は、アプリケーション当たりの規定されたライセンス数でないライセンスの利用可能性のチェックおよびそれらの獲得を有するが、ジョブの代わりのライセンスの割り当ての範囲のチェックおよびその獲得を有さない。これは、アプリケーション当たりの規定されたライセンス数が利用可能でない場合の柔軟性を提供するためである。
IJMS100は、ジョブスケジュラ120の代わりに、アプリケーションライセンスの獲得および付与を管理する機能を提供する。IJMS100は、サーバ上で隠れて動作するIJMS100により提供されてもよく、例えば、サーバはコンピューティングシステムのヘッドノード110であってもよい。
図5は、本発明を実現する励磁のアプリケーションライセンス管理プロセスを示す。ステップS101では、ジョブがユーザ400によりコンピューティングシステムに寄託され、バッチジョブスクリプト140はジョブスケジュラ120により受信される。ステップS102では、ジョブスケジュラ120は、バッチジョブスクリプト140を記憶し、ジョブのステータスを、ジョブを実行する準備がされていないことを示す「待機("wait")」にセットする。ステップS103からS104では、ジョブスケジュラ120は、できればハードウエアスケジューリングモジュール18を介して、コンピューティングノード200の管理ノードとの間で、バッチジョブスクリプト140内でジョブの実行に必要な要求として示されたコンピューティングハードウエア資源が利用可能であるか否かを、周期的にチェックするように構成される。ジョブのステータスは「待機(wait)」のままである。必要なコンピューティングハードウエア資源が利用可能であると、フローはステップS110に進み、ジョブスケジュラ120は、ジョブの代わりに必要なコンピューティングハードウエア資源を予約するように構成される。フローはステップS105に進み、そこでは、ジョブスケジュラ120は、必要なアプリケーションライセンスが利用可能である時に、IJMS100と通信を確立する。IJMS100は、リアルライセンスサーバ300と通信し、必要なアプリケーションライセンスの利用可能性をチェックし、必要なアプリケーションライセンスが利用可能な時に、特にジョブがライセンスを獲得するための委任ライセンスサーバ130を起動する。例えば、ライセンスアクセスAPIは、リアルライセンスサーバ300におけるライセンスの利用可能性をチェックするのに使用されてもよい。ジョブスケジュラ120は、必要なアプリケーションライセンスが獲得されたことが報知され、ステップS107で、ジョブスケジュラは、予約されたコンピューティングハードウエア資源およぶ獲得されたアプリケーションライセンスを使用して、バッチジョブスクリプト140にしたがってジョブを実行する。もしステップS105でライセンスが獲得できなければ(例えば、所定のまたは規定された時間量が経過し、必要なアプリケーションライセンスの獲得に成功していなければ)、フローはS111に進み、予約されたコンピューティングハードウエア資源は解放され、ジョブステータスは「待機(wait)」に戻る。これは、他の記憶されているジョブバッチスクリプトより「待機」ステータスがより短い時間期間になるため、ジョブをスケジュラ120内のキューの後側に戻すことになる。
図6は、ステップS105のプロセスをより詳細に示す。この特別な例では、バッチスクリプトのコピーまたはその一部が、ジョブスケジュラ120からIJMS100に送信される。IJMS100は、ステップS301−S303でジョブスケジュラ120から受信した情報を解析し、バッチジョブスクリプト140がアプリケーション要求ライセンス(単に「アプリケーション」または「ISVアプリケーション」とも称される)実行を要求しているか否かを判定するように構成される。IJMS100は、アプリケーション情報データベース160を参照する。アプリケーション情報データベース160は、バッチジョブスクリプト140内で規定されたアプリケーションIDを、特定のプログラム名、コマンドパス、ライセンスサーバID、およびライセンスチェックプログラムパスのいくつかまたはすべてを含む関連アプリケーション情報にリンクする。アプリケーション情報DB160からの例示のテーブルは、表1に示される。
Figure 0006528374
表1で、コラム1はISVアプリケーションIDを記憶する。
コラム2は、アプリケーションプログラム(実行モジュール)のコマンドパスを記憶する。
コラム3は、実行可能なプログラム名を記憶する。
コラム4は、ライセンスサーバ名またはリアルライセンスサーバの識別の他の形式を記憶する。
コラム5は、ライセンスチェックプログラムのロケーションを記憶する。
もしステップS301−S303で、バッチジョブスクリプト140がいかなるアプリケーションライセンスも要求していないと判断されると、IJMS100は、ジョブスケジュラ120、特にプリチェック部122に、ライセンスが必要ないことを報知する。ジョブスケジュラ120は、この時点までに必要なコンピューティングハードウエア資源を予約しており(ステップS104参照)、ジョブは予約されたコンピューティングハードウエア資源を使用して、コンピューティングノード200により実行される。もしステップS301−S303で、バッチジョブが、アプリケーションが必要とするライセンスの実行を含むと判断すると、IJMS100はアプリケーションリストの形式内の関連するアプリケーション情報のテーブルをコンパイルする。表2は、例示のアプリケーションリスト170を示す。アプリケーションリスト170の精密な形式は、実現例に応じて異なる。いくつかの実現例では、バッチジョブスクリプト140自体は、表2のようなアプリケーションリスト170を含んでもよい。ステップS302で、アプリケーションのリストが作成される。ステップS303で、バッチジョブスクリプトがアプリケーション実行に必要なアプリケーションライセンスを含むか否かチェックされる。
Figure 0006528374
表2で、コラム1は行を識別するインデックスを記憶するのみである。
コラム2は、ジョブスケジュラ120またはジョブ情報受信モジュール12によりジョブに対して発行されたジョブのIDを記憶する。ISVアプリケーションリストは、すべてのペンディングジョブについて関係し、IJMS100にジョブが受信されるたびに、またはジョブの実行ステータスが変化するたびに更新され、またはジョブごとに生成されおよび維持されるISVアプリケーションリストがあってもよい。
コラム3は、バッチジョブスクリプトにおけるアプリケーションの実行順を記憶する。
コラム4は、アプリケーションIDを記憶する。
コラム5は、関係する実行オプションを記憶し、それはバッチジョブスクリプトから抽出してもよい。
コラム6は、実行ステータスを記憶し、それは実行ステータスが変化するたびにIJMS100により更新されてもよい。
ライセンスチェックプログラムのロケーションのようなアプリケーション情報データベース160からの関連情報と組み合わせて、アプリケーションリスト170を使用することにより、ステップS304で、IJMS100は、アプリケーションリスト170内のアプリケーションリアルライセンスサーバ300と通信し、例えばライセンスアクセスAPIを使用することにより、アプリケーションごとの必要なライセンス数を獲得しようと試みる。アプリケーションごとの必要なライセンス数は、バッチジョブスクリプト140内に示されており、アプリケーションリスト170に記憶される。または、ライセンスチェックプログラムは、アプリケーションごとにアクセス可能であり、ライセンスアクセスAPIを介してライセンスサーバに問い合わせることにより、同一のロジック内の必要な数のライセンスを計算し、必要な数のライセンスが利用可能であるか否かチェックする。もしアプリケーションごとの必要な数のライセンスが利用可能であれば、フローはステップS307に進み、IJMS100はAPIを介してライセンスを獲得する。フローはステップS308に進み、IJMS100は、ジョブ用の委任ライセンスサーバ130を起動し、それぞれのリアルライセンスサーバ300から必要なライセンスを保持して管理する。または、委任ライセンスサーバ130はライセンスが獲得される前に起動され、委任ライセンスサーバ130はリアルライセンスサーバ300からライセンスを獲得するように構成される。ステップS309で、獲得したライセンスは、委任ライセンスサーバ130に登録される。ステップS310で、ジョブスケジュラ120に報知され、ジョブの宛先ライセンスサーバが、例えばポート番号を切替えることにより、委任ライセンスサーバ130に切り替わる。
バッチジョブスクリプト140は、許容範囲の記載ファイル150を有してもよく、もし利用可能性がチェックされたアプリケーションごとのライセンス数が利用可能でなければ、ステップS305で、IJMS100は、許容範囲内のライセンスのどの割り当てが利用可能であるかチェックすることができる。もし利用可能性がチェックされたアプリケーションごとのライセンス数が利用可能でないが、許容範囲内のライセンスの割り当てが利用可能であれば、フローはS306に進み、バッチジョブスクリプト140は、利用可能な割り当てを反映するように更新され、ステップS307で、利用可能な割り当てが獲得される。もし許容範囲内のライセンスの割り当てが利用可能でなければ、すなわち、ライセンスの最小限の許容割り当てが利用可能でなければ、または必要とするライセンス数が柔軟でなければ、ステップS305で、ノー(no)と回答し、フローは図5のステップS111に戻る。
Figure 0006528374
上記の例では、許容範囲記載ファイル150は、1つ以上のアプリケーションについてライセンスの許容範囲(規定された必要数からどの程度下まで)を定義する。許容範囲記載ファイル150は、ユーザがジョブを寄託する時にはユーザが使用するように特定されたディレクトリィないに記憶されてもよく、または許容範囲記載ファイル150がバッチジョブスクリプト140内の情報として提供されてもよい。IJMS100は、バッチジョブスクリプト140内で必要と示された個数のライセンスの間でアプリケーションごとの最大数のライセンス、およびバッチジョブスクリプト140内で示された個数および許容範囲から導出した最小数を取得するように構成されている。もしジョブにより要求される各アプリケーションの最小数のライセンスが利用可能でなければ、フローはステップS111に戻り、コンピューティング資源は戻される。いくつかの実施形態では、バッチジョブスクリプト140は、IJMS100がそこから許容時間を算出または導出できる情報を提供し、この許容時間は、コンピューティング資源を解放する前にライセンスが獲得されてもよい時間である。IJMSは、許容時間の期間中、アプリケーションライセンスの利用可能性をモニタ(監視)するように構成され、最小許容割り当てに合致する割り当てライセンスが利用可能になれば、IJMS100は委任来線サーバ130を起動してライセンスを獲得する。ライセンスの割り当ては、1つ以上のアプリケーションについて、アプリケーションごとの複数のライセンスである。
必要なライセンスが獲得されるか、ライセンスの許容割り当てが獲得されると、ライセンスは、S309でジョブ用の委任ライセンスサーバに登録され、S310でジョブ用のライセンスサーバは委任ライセンスサーバに切り替えられる。委任ライセンスサーバは、ジョブが待機ステータスにある間アプリケーションライセンスを保持する手段を提供し、必要なライセンスはリアルライセンスサーバよりむしろ委任ライセンスサーバにより保持される。フローはステップS107に進み、そこで、ジョブは予約されたコンピューティングハードウエア資源および獲得されたアプリケーションライセンスを使用して動作される。ジョブのステータスは「実行」に移動し、ジョブはバッチジョブスクリプト140にしたがって実行される。委任ライセンスサーバ130はすでにジョブの代わりにライセンスを保持しており、委任ライセンスサーバ130はその特定のジョブのみを扱うため、ジョブが必要なアプリケーションライセンス無しに実行されるリスクが無い。したがって、ユーザにはジョブが終了したと報知されたが、アクセスされないアプリケーションに起因して出力ファイルが受信されないかまたはファイルが不完全な状況は、回避される。
図7は、ジョブが実行された後の手順を示す。ステップS201で、ジョブは終了する。これは、ジョブ情報で定義された処理が完了し、出力が生成されて、ユーザのアクセス用に記憶されるかユーザに送られることを意味する。ポスト処理の間、ジョブのステータスは、ジョブスケジュラ120内に「PEND(終了前)」に移動する。ジョブスケジュラ120は、ステップS202でIJMS100と通信し、ジョブの完了をIJMS100に報知する。IJMS100は、完了したジョブに対応する委任ライセンスサーバ130を終了させ、ライセンスをリアルライセンスサーバ300またはライセンスを待っている他の委任ライセンスサーバ、またはそれらの2つの宛先の何れかに戻すように構成される。フローは、ステップS203に進み、そこで、ジョブスケジュラ120は、コンピューティングシステム200の管理ノードと通信し、ジョブ用に予約したコンピューティングハードウエア資源を解放する。
図8は、S202でジョブが完了したことをジョブスケジュラ120により報知された時のIJMS100におけるより詳細な手順を示す。S401で、ジョブ用の委任ライセンスサーバ130は、終了またはシャットダウンし、そこに記憶されたライセンス情報は除去される。フローはS402に進み、そこで、ライセンスは、個別のリアルライセンスサーバ300に戻されるか、または待機中の他のジョブ用の委任ライセンスサーバ130に送られる。目標のライセンスサーバは、RLSに戻る。
図9は、アプリケーションAyouのリアルライセンスサーバ300により保持されるライセンス数の合計が100で、ユーザがアプリケーションAに20ライセンスを必要とするジョブを寄託した状況における利用可能なライセンス数およびそのロケーションを示す。ステップS01で、ライセンスの必要な個数が計算される。これは、リアルライセンスサーバ300により保持されるライセンスにはいかなる変化も生じさせない。委任ライセンスサーバ130は、まだ起動されていない。ステップS02で、IJMS100は、ライセンスが利用可能で、20ライセンスを獲得することを行う。ステップS03で、委任ライセンスサーバ130が起動され、IJMS100は、20ライセンスを委任ライセンスサーバ130に送る。ステップS04で、バッチジョブが開始されるが、アプリケーションAはまだジョブにより呼び出されていない。ステップS05で、アプリケーションAは、20ライセンスで実行され、ライセンスが消費される。ステップS06で、アプリケーションAが終了し、委任ライセンスサーバ130は、再びライセンスを保持する。ステップS07で、バッチジョブが終了し、ステップS08で、IJMS100は委任ライセンスサーバ130を終了させる。ステップS09で、委任ライセンスサーバ130は、20ライセンスをリアルライセンスサーバ300に戻す。
ライセンスの利用の助けとして、IJMS100は、実行中のジョブにより現在使用されているアプリケーションライセンスを、実行を待っているジョブに付与する機能を提供してもよい。図10および図11は、ペンディングのジョブにアプリケーションライセンスを付与する例示の手順を示す。IJMS100は、存在している委任ライセンスサーバ130のステータス、および待機中のジョブのステータスを監視し、周期的に情報を更新するように構成される。
IJMS100により、現在実行中のライセンスが実行を待っているジョブに付与できるかを調べるジョブのステータスのチェックを行うために、隠れているようなプロセスを使用してもよい。ステップS501では、隠れているジョブチェックが起動される。ステップS502からS505で、周期的に繰り返されるループが定義される。ステップS503で、動作中の委任ライセンスサーバ130が特定され、ステップS504aで、PLSステータスDB190が、それらの動作中の委任ライセンスサーバに関する情報で更新され、ステップS504で、待機中のジョブのステータスのリストが更新される。表4は、PLSステータスDB190内に記録された情報を示す。特に、残り時間および特定されたアプリケーションのためのライセンス数が記憶されていることが分かり、PLSステータスDB190は、アプリケーションライセンスが利用可能になったかおよびその時に関する情報を記憶する。
Figure 0006528374
表4で、コラム1は、インデックス(index)を記憶する。
コラム2は、ジョブスケジュラによりジョブに出されたジョブIDを記憶する。
コラム3は、アプリケーションのIDを記憶する。
コラム4は、ジョブの代わりに保持された特定されたアプリケーションのライセンス数を記憶する。
コラム5は、PLS IDを記憶する。これは、PLSのプロセス数と同じである。
コラム6は、ジョブの残り時間(すなわち、現在の時間から、PLSが終了して保持されたアプリケーションが他のジョブ用に利用可能になると見込まれた時間量)の指示を記憶する。
PLSステータスDB190は、コンピューティングシステムで現在動作中の委任ライセンスサーバにより保持されたライセンス、それらがそれぞれ保持するアプリケーションライセンス、および見込まれた終了時間に関する情報を記憶する。実行中のジョブから実行を待っているジョブへのアプリケーションライセンスの付与を実行している時、IJMS100は、PLSステータスDB190に記憶された情報を参照するように構成される。さらに、IJMS100は、現在実行中のジョブに代わって保持されているアプリケーションライセンスを付与する実行を待っているジョブを見つけ出すように構成される。例えば、ジョブスケジュラ120またはIJMS100は、待機ジョブステータスデータベース192を維持してもよい。表5は、待機ジョブステータスデータベースに保持される情報を例示する。特に、待機ジョブステータスデータベース192は、現在利用可能なライセンスでは満たせない実行待機中のジョブのアプリケーションライセンス要求、および「順番」により示される他のジョブとの関係におけるジョブの優先度の指示を特定する情報を記憶していることが分かる。
Figure 0006528374
表5で、コラム1は、インデックスを記憶する。
コラム2は、ジョブスケジュラによりジョブに出されたジョブIDを記憶する。
コラム3は、アプリケーションのIDを記憶する。
コラム4は、ジョブの代わりに保持された特定されたアプリケーションのライセンス数を記憶する。
コラム5は、実行の順番を記憶し、低い数字は、ジョブがより長い間待機しており、キュー内で先に進むことを示す。
図11は、現在実行中のジョブのアプリケーションライセンスを実行待機中のジョブに付与する全体プロセスを示す。ステップS601で、ステップS501−S505の情報チェックおよび更新の手順が実行される。ステップS602からS603で、IJMS100は、PLSステータスDB190および待機ジョブステータスDB192に周期的にアクセスし、実行待機中のジョブ(候補ジョブ)にライセンスを渡せる現在実行中のジョブ(目標ジョブ)をサーチ(探索)する。サーチにおける第1の識別器は、候補ジョブが実行を開始する前に、目標ジョブが完了することが見込まれることである。もし候補ジョブが目標ジョブの完了に応じて目標ジョブの委任ライセンスサーバ130からライセンスを受け取ることが分かったなら、IJMS100は、候補ジョブを委任ライセンスサーバに登録するように構成される。例えば、登録は、フラグを立てることを有するのみか、または委任ライセンスサーバ130に、ライセンスをリアルライセンスサーバに戻すよりむしろ、ライセンスを、可能であれば候補の委任ライセンスサーバの識別子も一緒に、終了した委任ライセンスサーバに送るように知らせること有する。または、IJMS100は、目標ジョブと候補ジョブの間の一致リストを維持し、目標ジョブの委任ライセンスサーバ130が終了した時に、ライセンスを他の委任ライセンスサーバに送るようにフラグを立て、IJMS100がライセンスが送られる委任ライセンスサーバ130を特定できるようにする。
ステップS605で、待機ジョブステータスDB192は、ジョブに付与されたライセンスを示すように更新されるか、または付与されたライセンスがジョブに代わってもはや探されないようにする。ステップS606で、ステップS501からS505までの情報のチェックおよび更新が繰り返される。ジョブチェックは、周期的に行われてもよく、シャットダウンまたはリセットのようなシステムトリガの後、または限られた数のループの後、完了してもよい。
ここで引用したすべての例および条件付き表現は、発明者により従来の技術を更に推し進めるために提供された発明と概念を読者が理解するのを支援する教育的目的のためであり、そのように特定的に引用した例と条件に制限されるものではないと解釈されるべきである。本開示の実施形態を詳細に記述したが、種々の変更、置換、および改造が、本開示の精神と範囲を逸脱することなく実施形態に対して行えるということは理解されたい。

Claims (15)

  1. コンピューティングシステムにおけるジョブ実行タイミングをスケジュールするように構成されたジョブスケジューリングシステムであって、
    コンピューティングシステムにおいて未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信するように構成されたジョブ情報受信モジュールと、
    前記指示されたコンピューティングハードウエア資源および前記指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、前記ジョブの実行をスケジュールするように構成されたジョブ実行スケジュラと、
    ジョブの代わりに前記指示されたコンピューティングハードウエア資源を予約するように構成されたハードウエアスケジューリングモジュールと、
    ジョブの代わりに前記指示されたアプリケーションライセンスの利用可能性をチェックするように構成されたライセンススケジューリングモジュールと、を備え、
    前記ジョブのスケジューリングの実行は、前記予約され指示されたコンピューティングハードウエア資源が有効となる時点まで、コンピューティングシステムへの前記ジョブの実行の指示を遅延させ、
    前記ジョブの実行に必要なアプリケーションライセンスの前記指示は、前記ジョブが実行可能なアプリケーションライセンスの最適な割り当ての指示、および、前記ジョブが実行可能なアプリケーションライセンスの最小限の許容できる割り当ての指示を含み、
    前記ジョブの代わりにアプリケーションライセンスの前記指示された割り当ての利用可能性をチェックすることは、アプリケーションライセンスの前記最適な割り当てが利用可能であるかをチェックすることを含み、もし利用可能でなければ、アプリケーションライセンスの前記最適な割り当てより少なく前記最小限の許容できる割り当てより多いかまたは同じであるアプリケーションライセンスの割り当てが利用可能であるかチェックするジョブスケジューリングシステム。
  2. 前記ライセンススケジューリングモジュールは、もしアプリケーションライセンスのチェックした割り当てが利用可能であれば、前記ジョブの代わりにライセンスの前記利用可能な割り当てを取得するように構成される請求項1に記載のジョブスケジューリングシステム。
  3. 前記ライセンススケジューリングモジュールは、前記アプリケーションライセンスが予約または獲得されるまで、または前記ジョブ情報により指示される前記ジョブが完了するタイミングが経過するまで、前記ジョブの代わりにアプリケーションライセンスの前記指示された割り当ての利用可能性をチェックするように構成される請求項1または2に記載のジョブスケジューリングシステム。
  4. コンピューティングシステムにおけるジョブ実行タイミングをスケジュールするように構成されたジョブスケジューリングシステムであって、
    コンピューティングシステムにおいて未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信するように構成されたジョブ情報受信モジュールと、
    前記指示されたコンピューティングハードウエア資源および前記指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、前記ジョブの実行をスケジュールするように構成されたジョブ実行スケジュラと、
    ジョブの代わりに前記指示されたコンピューティングハードウエア資源を予約するように構成されたハードウエアスケジューリングモジュールと、
    ジョブの代わりに前記指示されたアプリケーションライセンスの利用可能性をチェックするように構成されたライセンススケジューリングモジュールと、を備え、
    前記ジョブのスケジューリングの実行は、前記予約され指示されたコンピューティングハードウエア資源が有効となる時点まで、コンピューティングシステムへの前記ジョブの実行の指示を遅延させ、
    リクエストされた前記ライセンスの獲得は、前記ジョブの代わりにライセンスの前記利用可能な割り当てを獲得および保持する、前記ジョブ用の委任ライセンスサーバを起動することを含むジョブスケジューリングシステム。
  5. 前記ライセンススケジューリングモジュールは、ライセンスの割り当てがリアルライセンスサーバから利用可能であるとされたかおよび/または現在実行している他のジョブの委任ライセンスサーバから利用可能であるとされたかをチェックするように構成される請求項4に記載のジョブスケジューリングシステム。
  6. 前記ジョブ情報は、前記ジョブが完了するタイミングの指示を含み、
    前記ライセンススケジューリングモジュールは、利用可能性がチェックされた前記ジョブ用のアプリケーションライセンスが、前記指示されたタイミング前に完了するようにスケジュールされた、他のジョブの委任ライセンスサーバから、利用可能であるとされた場合には、前記ジョブ用の前記指示されたアプリケーションライセンスを予約し、前記他のジョブの完了時に前記他のジョブから前記指示されたアプリケーションライセンスを受信する前記ジョブ用の委任ライセンスサーバを起動するように構成される請求項4または5に記載のジョブスケジューリングシステム。
  7. 前記ジョブ実行スケジュラは、ジョブの完了を前記ライセンススケジューリングモジュールに通知するように構成され、前記ライセンススケジューリングモジュールは、前記完了したジョブの前記委任ライセンスサーバを停止し、前記停止した委任ライセンスサーバにより保持されたアプリケーションライセンスを、待機中の委任ライセンスサーバまたはリアルライセンスサーバに送信するように構成される請求項4から6のいずれか1項に記載のジョブスケジューリングシステム。
  8. 前記ジョブ実行スケジュラおよび前記ハードウエアスケジューリングモジュールは、ジョブスケジュラの部品として提供され、
    前記ジョブ情報受信モジュールおよび前記ライセンススケジューリングモジュールは、前記ジョブ実行スケジュラ、前記ハードウエアスケジューリングモジュールおよび1つ以上のリアルライセンスサーバと相互作用する分離したプロセスとして提供される請求項1から7のいずれか1項に記載のジョブスケジューリングシステム。
  9. コンピューティングシステムにおけるジョブ実行タイミングをスケジュールする方法であって、
    コンピューティングシステムにおいて未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信し、
    前記指示されたコンピューティングハードウエア資源および前記指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、前記ジョブの実行をスケジュールし、
    ジョブの代わりに前記指示されたコンピューティングハードウエア資源を予約し、
    ジョブの代わりに前記指示されたアプリケーションライセンスの利用可能性をチェックする、工程を備え、
    前記ジョブのスケジューリングの実行は、前記予約され指示されたコンピューティングハードウエア資源が有効となる時点まで、コンピューティングシステムへの前記ジョブの実行の指示を遅延させ、
    前記ジョブの実行に必要なアプリケーションライセンスの前記指示は、前記ジョブが実行可能なアプリケーションライセンスの最適な割り当ての指示、および、前記ジョブが実行可能なアプリケーションライセンスの最小限の許容できる割り当ての指示を含み、
    前記ジョブの代わりにアプリケーションライセンスの前記指示された割り当ての利用可能性をチェックすることは、アプリケーションライセンスの前記最適な割り当てが利用可能であるかをチェックすることを含み、もし利用可能でなければ、アプリケーションライセンスの前記最適な割り当てより少なく前記最小限の許容できる割り当てより多いかまたは同じであるアプリケーションライセンスの割り当てが利用可能であるかチェックする方法。
  10. コンピューティングシステムにおけるジョブ実行タイミングをスケジュールする方法であって、
    コンピューティングシステムにおいて未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信し、
    前記指示されたコンピューティングハードウエア資源および前記指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、前記ジョブの実行をスケジュールし、
    ジョブの代わりに前記指示されたコンピューティングハードウエア資源を予約し、
    ジョブの代わりに前記指示されたアプリケーションライセンスの利用可能性をチェックする、工程を備え、
    前記ジョブのスケジューリングの実行は、前記予約され指示されたコンピューティングハードウエア資源が有効となる時点まで、コンピューティングシステムへの前記ジョブの実行の指示を遅延させ、
    リクエストされた前記ライセンスの獲得は、前記ジョブの代わりにライセンスの前記利用可能な割り当てを獲得および保持する、前記ジョブ用の委任ライセンスサーバを起動する方法。
  11. コンピューティングシステムにおいて未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信するためのジョブ情報受信モジュールと、前記指示されたコンピューティングハードウエア資源および前記指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、前記ジョブの実行をスケジュールするためのジョブ実行スケジュラと、を有し、コンピューティングシステムにおけるジョブ実行タイミングをスケジュールするように構成されたジョブスケジューリングシステムと、
    前記スケジュールされたジョブを実行するように構成されたコンピューティングハードウエア資源と、を備え、
    前記ジョブスケジューリングシステムは、請求項1から8のいずれか1項に記載のジョブスケジューリングシステムであるコンピューティングシステム。
  12. コンピューティング装置を、
    コンピューティングシステムにおいて未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信するように構成されたジョブ情報受信モジュールと、
    前記指示されたコンピューティングハードウエア資源および前記指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、前記ジョブの実行をスケジュールするように構成されたジョブ実行スケジュラと、
    ジョブの代わりに前記指示されたコンピューティングハードウエア資源を予約するように構成されたハードウエアスケジューリングモジュールと、
    ジョブの代わりに前記指示されたアプリケーションライセンスの利用可能性をチェックするように構成されたライセンススケジューリングモジュールと、を備え、
    前記ジョブのスケジューリングの実行は、前記予約され指示されたコンピューティングハードウエア資源が有効となる時点まで、コンピューティングシステムへの前記ジョブの実行の指示を遅延させ、
    前記ジョブの実行に必要なアプリケーションライセンスの前記指示は、前記ジョブが実行可能なアプリケーションライセンスの最適な割り当ての指示、および、前記ジョブが実行可能なアプリケーションライセンスの最小限の許容できる割り当ての指示を含み、
    前記ジョブの代わりにアプリケーションライセンスの前記指示された割り当ての利用可能性をチェックすることは、アプリケーションライセンスの前記最適な割り当てが利用可能であるかをチェックすることを含み、もし利用可能でなければ、アプリケーションライセンスの前記最適な割り当てより少なく前記最小限の許容できる割り当てより多いかまたは同じであるアプリケーションライセンスの割り当てが利用可能であるかチェックし、
    コンピューティングシステムにおけるジョブ実行タイミングをスケジュールするジョブスケジューリングシステムとして機能させるプログラム。
  13. コンピューティング装置を、
    コンピューティングシステムにおいて未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信するように構成されたジョブ情報受信モジュールと、
    前記指示されたコンピューティングハードウエア資源および前記指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、前記ジョブの実行をスケジュールするように構成されたジョブ実行スケジュラと、
    ジョブの代わりに前記指示されたコンピューティングハードウエア資源を予約するように構成されたハードウエアスケジューリングモジュールと、
    ジョブの代わりに前記指示されたアプリケーションライセンスの利用可能性をチェックするように構成されたライセンススケジューリングモジュールと、を備え、
    前記ジョブのスケジューリングの実行は、前記予約され指示されたコンピューティングハードウエア資源が有効となる時点まで、コンピューティングシステムへの前記ジョブの実行の指示を遅延させ、
    リクエストされた前記ライセンスの獲得は、前記ジョブの代わりにライセンスの前記利用可能な割り当てを獲得および保持する、前記ジョブ用の委任ライセンスサーバを起動することを含み、
    コンピューティングシステムにおけるジョブ実行タイミングをスケジュールするジョブスケジューリングシステムとして機能させるプログラム。
  14. コンピューティング装置に、
    コンピューティングシステムにおいて未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信し、
    前記指示されたコンピューティングハードウエア資源および前記指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、前記ジョブの実行をスケジュールし、
    ジョブの代わりに前記指示されたコンピューティングハードウエア資源を予約し、
    ジョブの代わりに前記指示されたアプリケーションライセンスの利用可能性をチェックする、工程を実行させることにより、コンピューティングシステムにおけるジョブ実行タイミングをスケジュールするように、前記コンピューティング装置を動作させるプログラムであって、
    前記ジョブのスケジューリングの実行は、前記予約され指示されたコンピューティングハードウエア資源が有効となる時点まで、コンピューティングシステムへの前記ジョブの実行の指示を遅延させ、
    前記ジョブの実行に必要なアプリケーションライセンスの前記指示は、前記ジョブが実行可能なアプリケーションライセンスの最適な割り当ての指示、および、前記ジョブが実行可能なアプリケーションライセンスの最小限の許容できる割り当ての指示を含み、
    前記ジョブの代わりにアプリケーションライセンスの前記指示された割り当ての利用可能性をチェックすることは、アプリケーションライセンスの前記最適な割り当てが利用可能であるかをチェックすることを含み、もし利用可能でなければ、アプリケーションライセンスの前記最適な割り当てより少なく前記最小限の許容できる割り当てより多いかまたは同じであるアプリケーションライセンスの割り当てが利用可能であるかチェックする工程を実行させるプログラム。
  15. コンピューティング装置に、
    コンピューティングシステムにおいて未実行ジョブを定義し、ジョブの実行に必要なコンピューティングハードウエア資源の指示、およびジョブの実行に必要なアプリケーションライセンスの割り当ての指示を含むジョブ情報を受信し、
    前記指示されたコンピューティングハードウエア資源および前記指示されたアプリケーションライセンスの両方の利用可能性に依存して決定されたタイミングで、前記ジョブの実行をスケジュールし、
    ジョブの代わりに前記指示されたコンピューティングハードウエア資源を予約し、
    ジョブの代わりに前記指示されたアプリケーションライセンスの利用可能性をチェックする、工程を実行させることにより、コンピューティングシステムにおけるジョブ実行タイミングをスケジュールするように、前記コンピューティング装置を動作させるプログラムであって、
    前記ジョブのスケジューリングの実行は、前記予約され指示されたコンピューティングハードウエア資源が有効となる時点まで、コンピューティングシステムへの前記ジョブの実行の指示を遅延させ、
    リクエストされた前記ライセンスの獲得は、前記ジョブの代わりにライセンスの前記利用可能な割り当てを獲得および保持する、前記ジョブ用の委任ライセンスサーバを起動するプログラム。
JP2014163542A 2013-09-03 2014-08-11 コンピューティングシステムにおいてジョブをスケジューリングする方法、システムおよびプログラム Active JP6528374B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP13182892.3A EP2843548B1 (en) 2013-09-03 2013-09-03 Method, system, and program for scheduling jobs in a computing system
EP13182892.3 2013-09-03

Publications (2)

Publication Number Publication Date
JP2015049903A JP2015049903A (ja) 2015-03-16
JP6528374B2 true JP6528374B2 (ja) 2019-06-12

Family

ID=49080821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014163542A Active JP6528374B2 (ja) 2013-09-03 2014-08-11 コンピューティングシステムにおいてジョブをスケジューリングする方法、システムおよびプログラム

Country Status (3)

Country Link
US (1) US9336049B2 (ja)
EP (1) EP2843548B1 (ja)
JP (1) JP6528374B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552229B2 (en) 2015-05-14 2017-01-24 Atlassian Pty Ltd Systems and methods for task scheduling
CN107301178B (zh) * 2016-04-14 2021-07-02 创新先进技术有限公司 数据查询处理方法、装置及系统
US10331481B2 (en) 2017-03-08 2019-06-25 International Business Machines Corporation Automatic reconfiguration of high performance computing job schedulers based on user behavior, user feedback, and job performance monitoring
WO2019190545A1 (en) * 2018-03-30 2019-10-03 Intel Corporation Methods and apparatus to schedule service requests in a network computing system using hardware queue managers

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187172A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 電子メール駆動型ジョブ操作方式
JPH07141305A (ja) * 1993-11-16 1995-06-02 Hitachi Ltd 並列計算機の実行制御方法
JPH07249010A (ja) * 1994-03-10 1995-09-26 Hitachi Ltd ジョブスケジューラおよびジョブスケジューリング方法
US20010011253A1 (en) 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
US20030088516A1 (en) 1999-12-21 2003-05-08 Eric B. Remer Software anti-piracy licensing
US7284244B1 (en) * 2000-05-02 2007-10-16 Microsoft Corporation Resource manager architecture with dynamic resource allocation among multiple configurations
JP2002245012A (ja) * 2001-02-19 2002-08-30 Nippon Telegr & Teleph Corp <Ntt> オブジェクト実行方法及びシステム及びオブジェクト実行プログラム及びオブジェクト実行プログラムを格納した記憶媒体及びオブジェクト及びオブジェクトを格納した記憶媒体
JP2005031771A (ja) * 2003-07-08 2005-02-03 Hitachi Ltd ジョブスケジューリング管理方法及びシステム並びにプログラム
US8782654B2 (en) * 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US8856793B2 (en) * 2004-05-11 2014-10-07 International Business Machines Corporation System, method and program for scheduling computer program jobs
US7996455B2 (en) * 2005-06-17 2011-08-09 Adaptive Computing Enterprises, Inc. System and method for providing dynamic roll-back reservations in time
JP4768354B2 (ja) * 2005-08-15 2011-09-07 富士通株式会社 ジョブ管理装置、ジョブ管理方法、ジョブ管理プログラム
US7831972B2 (en) * 2005-11-03 2010-11-09 International Business Machines Corporation Method and apparatus for scheduling jobs on a network
JP2007286703A (ja) * 2006-04-13 2007-11-01 Toyota Motor Corp 親子ライセンス管理方法、親子ライセンス管理方法及び親子ライセンス管理プログラム
US8020161B2 (en) * 2006-09-12 2011-09-13 Oracle America, Inc. Method and system for the dynamic scheduling of a stream of computing jobs based on priority and trigger threshold
US9038062B2 (en) 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8776065B2 (en) * 2006-11-16 2014-07-08 Oracle America, Inc. Real time monitoring and tracing of scheduler decisions
US20090025004A1 (en) * 2007-07-16 2009-01-22 Microsoft Corporation Scheduling by Growing and Shrinking Resource Allocation
BRPI0822590A2 (pt) * 2008-04-21 2015-06-23 Adaptive Computing Entpr Inc Sistema de computador para gerenciamento do consumo de energia em um ambiente de computador
JP5241520B2 (ja) * 2009-01-05 2013-07-17 キヤノン株式会社 ワークフロー管理装置、タスク連携処理システム、ワークフロー管理方法、及びプログラム
WO2011045112A1 (en) * 2009-10-12 2011-04-21 International Business Machines Corporation A method system and program to optimize job execution scheduled from and executed on external application containers
US9069610B2 (en) * 2010-10-13 2015-06-30 Microsoft Technology Licensing, Llc Compute cluster with balanced resources
US8453152B2 (en) * 2011-02-01 2013-05-28 International Business Machines Corporation Workflow control of reservations and regular jobs using a flexible job scheduler
US8863133B2 (en) * 2011-06-02 2014-10-14 Microsoft Corporation License management in a cluster environment
US8849905B2 (en) * 2012-10-29 2014-09-30 Gridcore Ab Centralized computing
US10474502B2 (en) * 2013-01-14 2019-11-12 Microsoft Technology Licensing, Llc Multi-tenant license enforcement across job requests

Also Published As

Publication number Publication date
US9336049B2 (en) 2016-05-10
US20150067689A1 (en) 2015-03-05
EP2843548A1 (en) 2015-03-04
EP2843548B1 (en) 2018-04-04
JP2015049903A (ja) 2015-03-16

Similar Documents

Publication Publication Date Title
US10003500B2 (en) Systems and methods for resource sharing between two resource allocation systems
Hwang et al. Elastic resource sharing for distributed deep learning
Delgado et al. Job-aware scheduling in eagle: Divide and stick to your probes
KR20220011063A (ko) 서버 리소스 할당 방법, 장치, 전자 기기 및 저장 매체
Tan et al. Coupling task progress for mapreduce resource-aware scheduling
US8453152B2 (en) Workflow control of reservations and regular jobs using a flexible job scheduler
JP6528374B2 (ja) コンピューティングシステムにおいてジョブをスケジューリングする方法、システムおよびプログラム
US10193973B2 (en) Optimal allocation of dynamically instantiated services among computation resources
JP4992408B2 (ja) ジョブ割当プログラム、方法及び装置
WO2020113310A1 (en) System and method for resource partitioning in distributed computing
Wang et al. Pigeon: An effective distributed, hierarchical datacenter job scheduler
CN106462593B (zh) 大规模并行处理数据库的系统和方法
Rajavel et al. Achieving service level agreement in cloud environment using job prioritization in hierarchical scheduling
CN112052068A (zh) 一种Kubernetes容器平台CPU绑核的方法与装置
KR20150117258A (ko) 분산형 컴퓨팅 아키텍쳐
Ungureanu et al. Kubernetes cluster optimization using hybrid shared-state scheduling framework
CN111163140A (zh) 资源获取和分配的方法、装置和计算机可读存储介质
CN108958933B (zh) 任务执行器的配置参数更新方法、装置及设备
JP6855960B2 (ja) 並列処理装置、および並列処理装置の保守方法
WO2018143235A1 (ja) 管理システム、管理装置、管理方法及びプログラム
Lipari The slurm scheduler design
US9792419B2 (en) Starvationless kernel-aware distributed scheduling of software licenses
JP2020024636A (ja) スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラム
JP5003673B2 (ja) マルチプロセッシング方法及びマルチプロセッサシステム
US8572631B2 (en) Distributed control of devices using discrete device interfaces over single shared input/output

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190429

R150 Certificate of patent or registration of utility model

Ref document number: 6528374

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150