説明

スケジューリング方法およびスケジューリングシステム

【課題】大量のタスク/ジョブを実行する場合においてもシステムがハングアップしないスケジューリングシステム提供する。
【解決手段】スケジューリングシステムにおいて、タスク/ジョブの登録を受け付けるタスク/ジョブマネージャ2と、タスク/ジョブマネージャ2にタスク/ジョブの登録があると、タスク/ジョブをBusy状態でないスケジューリングプロセス部6へ割り当てるスケジューリングプロセスコントローラ4とを備え、スケジューリングプロセス部6は、タスク/ジョブ特性とスケジューラの対応付けのデータベースを有し、割り当てられたタスク/ジョブのタスク/ジョブ特性に基づいて、データベースからタスク/ジョブ特性に最適なスケジューラを検索し、検索されたスケジューラによるタスク/ジョブの処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タスク/ジョブのスケジュールを行うスケジューリング技術に関し、特にクラウドサービスのバックエンドにおいて、大量、様々な実行間隔、様々な実行時間をもつタスク/ジョブを扱う際のスケジューリング方法およびスケジューリングシステムに関するものである。
【背景技術】
【0002】
近年、仮想化技術の発展と企業のITシステムに対する考えの「所有」から「利用」への変化に伴って、コンピュータリソースを必要に応じて必要なだけ利用するクラウドサービスの利用が増加している。
【0003】
クラウドサービスでは、薄利多売モデルであるケースが多く、そのバックエンドで稼動する基盤システムでは高いスケーラビリティが要求される。タスク/ジョブのスケジューリングシステムもその1つである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
現在、様々なタスク/ジョブのスケジューリングシステムが存在するが、以下のような問題点があり、クラウドサービス向けに利用することは難しい。
【0005】
(1)コマンドベースによるタスク/ジョブの実行方式であるため、大量のタスク/ジョブを実行する場合、プロセスが大量に生成され、システムがハングアップする可能性がある。
【0006】
(2)スケジュールの間隔が長い場合も短い場合も一様にスケジューリングされるため、短いスケジュール間隔で数多く実行されるようなタスク/ジョブでは、実行開始時刻の誤差が許容範囲を超えてしまう可能性がある。元々限られた資源で高いスケーラビリティを実現するためには、タスク/ジョブスケジューリングシステムとしては、スケジューリングの厳密性をある程度犠牲にする必要があるが、タスク/ジョブごとにその度合いを制御できなければシステムとして意味をもたないものとなってしまう。
【0007】
そこで、本発明の目的は、以下の2点である。
【0008】
(1)大量のタスク/ジョブを実行する場合においてもシステムがハングアップしないスケジューリング方法およびスケジューリングシステムを提供すること。
【0009】
(2)タスク/ジョブの特性(スケジュール間隔、実行時間、過去の履歴)に応じて実行開始時刻の誤差を許容範囲内に抑えることができるスケジューリング方法およびスケジューリングシステムを提供すること。
【0010】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0011】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
【0012】
すなわち、代表的なものの概要は、スケジューリング方法において、タスク/ジョブの登録があると、スケジューリングプロセスコントローラにより、タスク/ジョブをBusy状態でないスケジューリングプロセス部へ割り当てるステップと、スケジューリングプロセス部により、割り当てられた前記タスク/ジョブのタスク/ジョブ特性に基づいてスケジューラを検索し、検索されたスケジューラによるタスク/ジョブの処理を行うステップとを有するものである。
【0013】
また、スケジューリングシステムにおいて、タスク/ジョブの登録を受け付けるタスク/ジョブマネージャと、タスク/ジョブマネージャにタスク/ジョブの登録があると、タスク/ジョブをBusy状態でないスケジューリングプロセス部へ割り当てるスケジューリングプロセスコントローラとを備え、スケジューリングプロセス部は、タスク/ジョブ特性とスケジューラの対応付けのデータベースを有し、割り当てられたタスク/ジョブのタスク/ジョブ特性に基づいて、データベースからタスク/ジョブ特性に最適なスケジューラを検索し、検索されたスケジューラによるタスク/ジョブの処理を行うものである。
【発明の効果】
【0014】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。
【0015】
すなわち、代表的なものによって得られる効果は、大量のタスク/ジョブを実行する場合においてもシステムがハングアップせず、タスク/ジョブの特性(スケジュール間隔、実行時間、過去の履歴)に応じて実行開始時刻の誤差を許容範囲内に抑えることができるので、クラウドサービスのバックエンド基盤システムとして十分にスケーラブルなタスク/ジョブスケジューリング機能を提供でき、高品質で安定したクラウドサービスの実現を期待できる。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施の形態に係るスケジューリングシステムの構成を示す構成図である。
【図2】本発明の一実施の形態に係るスケジューリングシステムのスケジューリングプロセス部によるスケジューリング処理を説明するための説明図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0018】
図1により、本発明の一実施の形態に係るスケジューリングシステムの構成について説明する。図1は本発明の一実施の形態に係るスケジューリングシステムの構成を示す構成図である。
【0019】
図1において、スケジューリングシステムは、例えばサーバなどの情報処理装置上でスケジューリングプログラムなどを実行することにより動作しており、スケジューリングシステムの各処理部は、サーバなどの情報処理装置の記憶装置に格納されたスケジューリングプログラムなどをCPUにより処理することで動作するようになっている。
【0020】
スケジューリングシステムの各処理部は、タスク/ジョブマネージャ2、タスク/ジョブマスタファイル3、スケジューリングプロセスコントローラ4、メモリ上にタスク/ジョブ情報5を保持したスケジューリングプロセス部6から構成され、クラウドサービス1からのタスク/ジョブ登録を受け付けている。
【0021】
クラウドサービス1は、タスク/ジョブマネージャ2に対してタスク/ジョブ登録を行う。タスク/ジョブマネージャ2は、受信したタスク/ジョブをタスク/ジョブマスタファイル3として保存する。
【0022】
スケジューリングプロセスコントローラ4は、タスク/ジョブマスタファイル3の登録を検出し、タスク/ジョブマスタファイル3の内容に基づいて、Busy状態でないスケジューリングプロセス部6へ割り当てる。
【0023】
スケジューリングプロセス部6は、メモリ上にタスク/ジョブ情報5を保持しており、後述する図2での処理を行う。
【0024】
また、スケジューリングプロセスコントローラ4は、Busy状態でないスケジューリングプロセス部6が存在しない場合は、新たに起動する。
【0025】
また、クラウドサービス1からタスク/ジョブの解除を指定された場合、タスク/ジョブマネージャ2は、タスク/ジョブマスタファイル3を削除する。スケジューリングプロセスコントローラ4は、タスク/ジョブマスタファイル3の削除を検出し、スケジューリングプロセス部6への割り当てを解除し、スケジューリングプロセス部6は、該当タスク/ジョブのスケジューリングを停止する。
【0026】
次に、図2により、本発明の一実施の形態に係るスケジューリングシステムのスケジューリングプロセス部によるスケジューリング処理について説明する。図2は本発明の一実施の形態に係るスケジューリングシステムのスケジューリングプロセス部によるスケジューリング処理を説明するための説明図である。
【0027】
図2において、スケジューリングプロセス部6は、タスク/ジョブスケジューラオプティマイザ7、タスク/ジョブ特性とスケジューラ対応付けのデータベース8、タスク/ジョブ実行履歴のデータベース9、スケジューラ10、スケジューリングアルゴリズムメソッド11、スケジューリングスレッド12、スケジューリングプロセス部6におけるタスク/ジョブ情報13、タスク/ジョブ処理スレッド14、タスク/ジョブメソッド15、誤差情報16を有している。
【0028】
タスク/ジョブ特性とスケジューラ対応付けのデータベース8には、スケジュール間隔、実行時間、誤差許容範囲、スケジューラ名を列としてもつテーブルが格納され、タスク/ジョブ実行履歴のデータベース9には、タスク/ジョブ名、実行時間(実績)、誤差(実績)、スケジューラ名を列としてもつテーブルが格納されている。
【0029】
まず、タスク/ジョブがスケジューリングプロセス部6に割り当てられると、タスク/ジョブスケジューラオプティマイザ7は、タスク/ジョブのスケジュール情報からタスク/ジョブ特性であるスケジュール間隔の算出、想定実行時間の取得、誤差許容範囲の取得を行う。この値を基に最も適切なスケジューラ10をタスク/ジョブ特性とスケジューラ対応付けのデータベース8から検索する(S100)。
【0030】
そして、検索されたスケジューラ10にタスク/ジョブ情報13が割り当てられると(S101)、スケジューリングスレッド12はスケジューリングアルゴリズムメソッド11を用いて、スケジュール処理を開始する(S102)。
【0031】
タスク/ジョブの処理開始を検出すると、タスク/ジョブ処理スレッド14はダイナミックリンクライブラリ(DLL)によりインプロセスでタスク/ジョブメソッド15を実行する(S103)。タスク/ジョブメソッド15が終了すると、その結果と共に誤差情報16をタスク/ジョブ実行履歴のデータベース9へ保存する(S104)。
【0032】
また、スケジューリングスレッド12は、誤差情報16を参照し(S105)、過去実行した誤差情報16を基にスケジュール精度を許容誤差範囲内に抑えるようにスケジューリングを行う。具体的には、他のタスク/ジョブの誤差に余裕があれば、誤差が大きいタスク/ジョブの優先度を上げる。誤差に余裕がなければ、タスク/ジョブ実行履歴のデータベース9へ情報を登録する(S106)。
【0033】
このタスク/ジョブ実行履歴のデータベース9に登録された情報をタスク/ジョブスケジューラオプティマイザ7が検出すると(S107)、余裕のあるスケジューラ10を再選択する。このとき、余裕のあるスケジューラ10が存在しない場合、スケジューラ10を新たに自動起動する。スケジューラ10を新たに起動するリソースがない場合、図1に示すスケジューリングプロセスコントローラ4が新たなスケジューリングプロセス部6を起動する。
【0034】
本実施の形態では、スケジューリングプロセス部6により、タスク/ジョブ特性に応じて、最も適切なスケジューラ10をタスク/ジョブ特性とスケジューラ対応付けのデータベース8から検索するので、タスク/ジョブ特性に応じて最適なスケジューリングを行うことができる。また、過去実行した誤差情報16を基にスケジュール精度を許容誤差範囲内に抑えるようにスケジューリングを行うので、大量のタスク/ジョブを実行する場合においてもシステムがハングアップしないようにすることができる。
【0035】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0036】
本発明は、タスク/ジョブのスケジュールを行うスケジューリングシステムに関し、クラウドサービス提供におけるバックエンドの共通基盤として広く利用することができる。
【符号の説明】
【0037】
1…クラウドサービス、2…タスク/ジョブマネージャ、3…タスク/ジョブマスタファイル、4…スケジューリングプロセスコントローラ、5…タスク/ジョブ情報、6…スケジューリングプロセス部、7…タスク/ジョブスケジューラオプティマイザ、8…タスク/ジョブ特性とスケジューラの対応付けのデータベース、9…タスク/ジョブ実行履歴のデータベース、10…スケジューラ、11…スケジューリングアルゴリズムメソッド、12…スケジューリングスレッド、13…タスク/ジョブ情報、14…タスク/ジョブ処理スレッド、15…タスク/ジョブメソッド、16…誤差情報。

【特許請求の範囲】
【請求項1】
タスク/ジョブのスケジュールを行うスケジューリングシステムのスケジューリング方法であって、
前記タスク/ジョブの登録があると、スケジューリングプロセスコントローラにより、前記タスク/ジョブをBusy状態でないスケジューリングプロセス部へ割り当てるステップと、
前記スケジューリングプロセス部により、割り当てられた前記タスク/ジョブのタスク/ジョブ特性に基づいてスケジューラを検索し、検索されたスケジューラによる前記タスク/ジョブの処理を行うステップとを有することを特徴とするスケジューリング方法。
【請求項2】
請求項1に記載のスケジューリング方法において、
前記スケジューラによる前記タスク/ジョブの処理は、インプロセスで行われることを特徴とするスケジューリング方法。
【請求項3】
請求項2に記載のスケジューリング方法において、
前記スケジューラによる前記タスク/ジョブの処理は、過去実行した前記タスク/ジョブのスケジューリングの誤差情報に基づいて、スケジュール精度を予め設定された許容誤差範囲内に抑えるようにスケジューリングが行われることを特徴とするスケジューリング方法。
【請求項4】
タスク/ジョブの登録を受け付けるタスク/ジョブマネージャと、
前記タスク/ジョブマネージャに前記タスク/ジョブの登録があると、前記タスク/ジョブをBusy状態でないスケジューリングプロセス部へ割り当てるスケジューリングプロセスコントローラとを備え、
前記スケジューリングプロセス部は、タスク/ジョブ特性とスケジューラの対応付けのデータベースを有し、割り当てられた前記タスク/ジョブのタスク/ジョブ特性に基づいて、前記データベースからタスク/ジョブ特性に最適なスケジューラを検索し、検索されたスケジューラによる前記タスク/ジョブの処理を行うことを特徴とするスケジューリングシステム。
【請求項5】
請求項4に記載のスケジューリングシステムにおいて、
前記スケジューラによる前記タスク/ジョブの処理は、インプロセスで行われることを特徴とするスケジューリングシステム。
【請求項6】
請求項5に記載のスケジューリングシステムにおいて、
前記スケジューラによる前記タスク/ジョブの処理は、過去実行した前記タスク/ジョブのスケジューリングの誤差情報に基づいて、スケジュール精度を予め設定された許容誤差範囲内に抑えるようにスケジューリングが行われることを特徴とするスケジューリングシステム。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2012−146157(P2012−146157A)
【公開日】平成24年8月2日(2012.8.2)
【国際特許分類】
【出願番号】特願2011−4507(P2011−4507)
【出願日】平成23年1月13日(2011.1.13)
【出願人】(000233491)株式会社日立システムズ (394)