(57)【特許請求の範囲】
【請求項１】
タスク／ジョブのスケジュールを行うスケジューリングシステムのスケジューリング方法であって、
前記タスク／ジョブの登録があると、スケジューリングプロセスコントローラにより、前記タスク／ジョブをＢｕｓｙ状態でないスケジューリングプロセス部へ割り当てるステップと、
前記スケジューリングプロセス部により、割り当てられた前記タスク／ジョブのタスク／ジョブ特性に基づいて、スケジュール間隔、実行時間、および誤差許容範囲を含むタスク／ジョブ特性とスケジューラとの対応付けの情報が格納された第１のデータベースから最適なスケジューラを検索し、検索されたスケジューラによる前記タスク／ジョブの処理を行うステップとを有し、
前記スケジューラによる前記タスク／ジョブの処理を行う際、前記第１のデータベースに格納された前記誤差許容範囲、および前記タスク／ジョブが過去に実行された際の実行時間および前記実行時間の誤差とスケジューラとの対応付けの情報が格納された第２のデータベースに格納された前記実行時間の誤差の情報に基づいて、前記実行時間のスケジュール精度を許容誤差範囲内に抑えるようにスケジューリングを行うことを特徴とするスケジューリング方法。
【請求項２】
請求項１に記載のスケジューリング方法において、
前記スケジューラによる前記タスク／ジョブの処理は、インプロセスで行われることを特徴とするスケジューリング方法。
【請求項３】
請求項２に記載のスケジューリング方法において、
前記スケジューリングプロセス部による前記スケジュール精度を前記許容誤差範囲内に抑える前記スケジューリングは、他のタスク／ジョブの誤差に余裕がある場合に、誤差の大きいタスク／ジョブの優先度を上げることにより行うことを特徴とするスケジューリング方法。
【請求項４】
タスク／ジョブの登録を受け付けるタスク／ジョブマネージャと、
前記タスク／ジョブマネージャに前記タスク／ジョブの登録があると、前記タスク／ジョブをＢｕｓｙ状態でないスケジューリングプロセス部へ割り当てるスケジューリングプロセスコントローラと、を備え、
前記スケジューリングプロセス部は、スケジュール間隔、実行時間、および誤差許容範囲を含むタスク／ジョブ特性とスケジューラとの対応付けの情報が格納された第１のデータベースと、前記タスク／ジョブが過去に実行された際の実行時間および前記実行時間の誤差とスケジューラとの対応付けの情報が格納された第２のデータベースと、を有し、割り当てられた前記タスク／ジョブのタスク／ジョブ特性に基づいて、前記第１のデータベースからタスク／ジョブ特性に最適なスケジューラを検索し、検索されたスケジューラによる前記タスク／ジョブの処理を行い、前記スケジューラによる前記タスク／ジョブの処理を行う際、前記第１のデータベースに格納された前記誤差許容範囲および前記第２のデータベースに格納された前記実行時間の誤差の情報に基づいて、前記実行時間のスケジュール精度を許容誤差範囲内に抑えるようにスケジューリングを行うことを特徴とするスケジューリングシステム。
【請求項５】
請求項４に記載のスケジューリングシステムにおいて、
前記スケジューラによる前記タスク／ジョブの処理は、インプロセスで行われることを特徴とするスケジューリングシステム。
【請求項６】
請求項５に記載のスケジューリングシステムにおいて、
前記スケジューリングプロセス部は、前記スケジュール精度を前記許容誤差範囲内に抑える前記スケジューリングを、他のタスク／ジョブの誤差に余裕がある場合に、誤差の大きいタスク／ジョブの優先度を上げることにより行うことを特徴とするスケジューリングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タスク／ジョブのスケジュールを行うスケジューリング技術に関し、特にクラウドサービスのバックエンドにおいて、大量、様々な実行間隔、様々な実行時間をもつタスク／ジョブを扱う際のスケジューリング方法およびスケジューリングシステムに関するものである。
【背景技術】
【０００２】
近年、仮想化技術の発展と企業のＩＴシステムに対する考えの「所有」から「利用」への変化に伴って、コンピュータリソースを必要に応じて必要なだけ利用するクラウドサービスの利用が増加している。
【０００３】
クラウドサービスでは、薄利多売モデルであるケースが多く、そのバックエンドで稼動する基盤システムでは高いスケーラビリティが要求される。タスク／ジョブのスケジューリングシステムもその１つである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
現在、様々なタスク／ジョブのスケジューリングシステムが存在するが、以下のような問題点があり、クラウドサービス向けに利用することは難しい。
【０００５】
（１）コマンドベースによるタスク／ジョブの実行方式であるため、大量のタスク／ジョブを実行する場合、プロセスが大量に生成され、システムがハングアップする可能性がある。
【０００６】
（２）スケジュールの間隔が長い場合も短い場合も一様にスケジューリングされるため、短いスケジュール間隔で数多く実行されるようなタスク／ジョブでは、実行開始時刻の誤差が許容範囲を超えてしまう可能性がある。元々限られた資源で高いスケーラビリティを実現するためには、タスク／ジョブスケジューリングシステムとしては、スケジューリングの厳密性をある程度犠牲にする必要があるが、タスク／ジョブごとにその度合いを制御できなければシステムとして意味をもたないものとなってしまう。
【０００７】
そこで、本発明の目的は、以下の２点である。
【０００８】
（１）大量のタスク／ジョブを実行する場合においてもシステムがハングアップしないスケジューリング方法およびスケジューリングシステムを提供すること。
【０００９】
（２）タスク／ジョブの特性（スケジュール間隔、実行時間、過去の履歴）に応じて実行開始時刻の誤差を許容範囲内に抑えることができるスケジューリング方法およびスケジューリングシステムを提供すること。
【００１０】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
【００１２】
すなわち、代表的なものの概要は、スケジューリング方法において、タスク／ジョブの登録があると、スケジューリングプロセスコントローラにより、タスク／ジョブをＢｕｓｙ状態でないスケジューリングプロセス部へ割り当てるステップと、スケジューリングプロセス部により、割り当てられた前記タスク／ジョブのタスク／ジョブ特性に基づいてスケジューラを検索し、検索されたスケジューラによるタスク／ジョブの処理を行うステップとを有するものである。
【００１３】
また、スケジューリングシステムにおいて、タスク／ジョブの登録を受け付けるタスク／ジョブマネージャと、タスク／ジョブマネージャにタスク／ジョブの登録があると、タスク／ジョブをＢｕｓｙ状態でないスケジューリングプロセス部へ割り当てるスケジューリングプロセスコントローラとを備え、スケジューリングプロセス部は、タスク／ジョブ特性とスケジューラの対応付けのデータベースを有し、割り当てられたタスク／ジョブのタスク／ジョブ特性に基づいて、データベースからタスク／ジョブ特性に最適なスケジューラを検索し、検索されたスケジューラによるタスク／ジョブの処理を行うものである。
【発明の効果】
【００１４】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。
【００１５】
すなわち、代表的なものによって得られる効果は、大量のタスク／ジョブを実行する場合においてもシステムがハングアップせず、タスク／ジョブの特性（スケジュール間隔、実行時間、過去の履歴）に応じて実行開始時刻の誤差を許容範囲内に抑えることができるので、クラウドサービスのバックエンド基盤システムとして十分にスケーラブルなタスク／ジョブスケジューリング機能を提供でき、高品質で安定したクラウドサービスの実現を期待できる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施の形態に係るスケジューリングシステムの構成を示す構成図である。
【図２】本発明の一実施の形態に係るスケジューリングシステムのスケジューリングプロセス部によるスケジューリング処理を説明するための説明図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１８】
図１により、本発明の一実施の形態に係るスケジューリングシステムの構成について説明する。図１は本発明の一実施の形態に係るスケジューリングシステムの構成を示す構成図である。
【００１９】
図１において、スケジューリングシステムは、例えばサーバなどの情報処理装置上でスケジューリングプログラムなどを実行することにより動作しており、スケジューリングシステムの各処理部は、サーバなどの情報処理装置の記憶装置に格納されたスケジューリングプログラムなどをＣＰＵにより処理することで動作するようになっている。
【００２０】
スケジューリングシステムの各処理部は、タスク／ジョブマネージャ２、タスク／ジョブマスタファイル３、スケジューリングプロセスコントローラ４、メモリ上にタスク／ジョブ情報５を保持したスケジューリングプロセス部６から構成され、クラウドサービス１からのタスク／ジョブ登録を受け付けている。
【００２１】
クラウドサービス１は、タスク／ジョブマネージャ２に対してタスク／ジョブ登録を行う。タスク／ジョブマネージャ２は、受信したタスク／ジョブをタスク／ジョブマスタファイル３として保存する。
【００２２】
スケジューリングプロセスコントローラ４は、タスク／ジョブマスタファイル３の登録を検出し、タスク／ジョブマスタファイル３の内容に基づいて、Ｂｕｓｙ状態でないスケジューリングプロセス部６へ割り当てる。
【００２３】
スケジューリングプロセス部６は、メモリ上にタスク／ジョブ情報５を保持しており、後述する図２での処理を行う。
【００２４】
また、スケジューリングプロセスコントローラ４は、Ｂｕｓｙ状態でないスケジューリングプロセス部６が存在しない場合は、新たに起動する。
【００２５】
また、クラウドサービス１からタスク／ジョブの解除を指定された場合、タスク／ジョブマネージャ２は、タスク／ジョブマスタファイル３を削除する。スケジューリングプロセスコントローラ４は、タスク／ジョブマスタファイル３の削除を検出し、スケジューリングプロセス部６への割り当てを解除し、スケジューリングプロセス部６は、該当タスク／ジョブのスケジューリングを停止する。
【００２６】
次に、図２により、本発明の一実施の形態に係るスケジューリングシステムのスケジューリングプロセス部によるスケジューリング処理について説明する。図２は本発明の一実施の形態に係るスケジューリングシステムのスケジューリングプロセス部によるスケジューリング処理を説明するための説明図である。
【００２７】
図２において、スケジューリングプロセス部６は、タスク／ジョブスケジューラオプティマイザ７、タスク／ジョブ特性とスケジューラ対応付けのデータベース８、タスク／ジョブ実行履歴のデータベース９、スケジューラ１０、スケジューリングアルゴリズムメソッド１１、スケジューリングスレッド１２、スケジューリングプロセス部６におけるタスク／ジョブ情報１３、タスク／ジョブ処理スレッド１４、タスク／ジョブメソッド１５、誤差情報１６を有している。
【００２８】
タスク／ジョブ特性とスケジューラ対応付けのデータベース８には、スケジュール間隔、実行時間、誤差許容範囲、スケジューラ名を列としてもつテーブルが格納され、タスク／ジョブ実行履歴のデータベース９には、タスク／ジョブ名、実行時間（実績）、誤差（実績）、スケジューラ名を列としてもつテーブルが格納されている。
【００２９】
まず、タスク／ジョブがスケジューリングプロセス部６に割り当てられると、タスク／ジョブスケジューラオプティマイザ７は、タスク／ジョブのスケジュール情報からタスク／ジョブ特性であるスケジュール間隔の算出、想定実行時間の取得、誤差許容範囲の取得を行う。この値を基に最も適切なスケジューラ１０をタスク／ジョブ特性とスケジューラ対応付けのデータベース８から検索する（Ｓ１００）。
【００３０】
そして、検索されたスケジューラ１０にタスク／ジョブ情報１３が割り当てられると（Ｓ１０１）、スケジューリングスレッド１２はスケジューリングアルゴリズムメソッド１１を用いて、スケジュール処理を開始する（Ｓ１０２）。
【００３１】
タスク／ジョブの処理開始を検出すると、タスク／ジョブ処理スレッド１４はダイナミックリンクライブラリ（ＤＬＬ）によりインプロセスでタスク／ジョブメソッド１５を実行する（Ｓ１０３）。タスク／ジョブメソッド１５が終了すると、その結果と共に誤差情報１６をタスク／ジョブ実行履歴のデータベース９へ保存する（Ｓ１０４）。
【００３２】
また、スケジューリングスレッド１２は、誤差情報１６を参照し（Ｓ１０５）、過去実行した誤差情報１６を基にスケジュール精度を許容誤差範囲内に抑えるようにスケジューリングを行う。具体的には、他のタスク／ジョブの誤差に余裕があれば、誤差が大きいタスク／ジョブの優先度を上げる。誤差に余裕がなければ、タスク／ジョブ実行履歴のデータベース９へ情報を登録する（Ｓ１０６）。
【００３３】
このタスク／ジョブ実行履歴のデータベース９に登録された情報をタスク／ジョブスケジューラオプティマイザ７が検出すると（Ｓ１０７）、余裕のあるスケジューラ１０を再選択する。このとき、余裕のあるスケジューラ１０が存在しない場合、スケジューラ１０を新たに自動起動する。スケジューラ１０を新たに起動するリソースがない場合、図１に示すスケジューリングプロセスコントローラ４が新たなスケジューリングプロセス部６を起動する。
【００３４】
本実施の形態では、スケジューリングプロセス部６により、タスク／ジョブ特性に応じて、最も適切なスケジューラ１０をタスク／ジョブ特性とスケジューラ対応付けのデータベース８から検索するので、タスク／ジョブ特性に応じて最適なスケジューリングを行うことができる。また、過去実行した誤差情報１６を基にスケジュール精度を許容誤差範囲内に抑えるようにスケジューリングを行うので、大量のタスク／ジョブを実行する場合においてもシステムがハングアップしないようにすることができる。
【００３５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００３６】
本発明は、タスク／ジョブのスケジュールを行うスケジューリングシステムに関し、クラウドサービス提供におけるバックエンドの共通基盤として広く利用することができる。
【符号の説明】
【００３７】
１…クラウドサービス、２…タスク／ジョブマネージャ、３…タスク／ジョブマスタファイル、４…スケジューリングプロセスコントローラ、５…タスク／ジョブ情報、６…スケジューリングプロセス部、７…タスク／ジョブスケジューラオプティマイザ、８…タスク／ジョブ特性とスケジューラの対応付けのデータベース、９…タスク／ジョブ実行履歴のデータベース、１０…スケジューラ、１１…スケジューリングアルゴリズムメソッド、１２…スケジューリングスレッド、１３…タスク／ジョブ情報、１４…タスク／ジョブ処理スレッド、１５…タスク／ジョブメソッド、１６…誤差情報。
【図１】
0005632754.tif 000002
【図２】
0005632754.tif 000003