(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-18
(45)【発行日】2023-12-26
(54)【発明の名称】ベースライン監視方法、装置、読み取り可能な媒体、及び電子機器
(51)【国際特許分類】
G06F 11/30 20060101AFI20231219BHJP
G06F 9/52 20060101ALN20231219BHJP
【FI】
G06F11/30 155
G06F11/30 140E
G06F9/52 150A
(21)【出願番号】P 2022572367
(86)(22)【出願日】2021-11-02
(86)【国際出願番号】 CN2021128180
(87)【国際公開番号】W WO2022095848
(87)【国際公開日】2022-05-12
【審査請求日】2022-11-24
(31)【優先権主張番号】202011218097.5
(32)【優先日】2020-11-04
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】フー,シォンファ
(72)【発明者】
【氏名】シェン,ユェ
(72)【発明者】
【氏名】ワン,シャンシャン
(72)【発明者】
【氏名】モン,ホー
(72)【発明者】
【氏名】ディン,グゥイタオ
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2006-268509(JP,A)
【文献】特開2011-187874(JP,A)
【文献】特開2018-073166(JP,A)
【文献】特開平06-214967(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/30
G06F 9/52
(57)【特許請求の範囲】
【請求項1】
ベースラインにおける複数の監視待ちタスクを決定するステップと、
前記複数の監視待ちタスク間の依存関係に基づき、循環依存関係を有する第1の監視待ちタスクが存在するか否かを決定するステップであって、ここで、循環依存関係は、前記第1の監視待ちタスク間が相互に依存することを指す、ステップと
前記監視待ちタスクの各々の検証待ちタスクインスタンスを決定するステップであって、ここで、循環依存関係を有する前記第1の監視待ちタスクが存在する場合、保障タスクではない前記第1の監視待ちタスクに対して、前記循環依存関係と、前記第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、前記第1の監視待ちタスクの前記検証待ちタスクインスタンスを決定し、前記保障タスクではない第2の監視待ちタスクに対して、前記第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、前記第2の監視待ちタスクの前記検証待ちタスクインスタンスを決定し、ここで、前記第2の監視待ちタスクは、前記第1の監視待ちタスク以外の監視待ちタスクであり、前記保障タスクは、ユーザが前記ベースラインに加えるタスクである、ステップと、
前記監視待ちタスクの各々に対して、当該監視待ちタスクの前記検証待ちタスクインスタンスに基づき、前記ベースラインを監視するステップと、
を含む、ベースライン監視方法。
【請求項2】
前記循環依存関係と、前記第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、前記第1の監視待ちタスクの前記検証待ちタスクインスタンスを決定することは、
前記第1の監視待ちタスクが依存するその上流の第1の監視待ちタスクの第1のタスクインスタンスと、当該上流の第1の監視待ちタスクが前記第1の監視待ちタスクの下流とされる場合における前記第1の監視待ちタスクとの間の依存オフセットのオフセット情報とに基づき、前記第1の監視待ちタスクの依存される第2のタスクインスタンスを決定することであって、ここで、依存オフセットとは、1つの監視待ちタスクが、別の監視待ちタスクの履歴実行状況に依存することを指すことと、
前記第2のタスクインスタンスと、前記第1の監視待ちタスクのその下流の監視待ちタスクに依存されるタスクインスタンスとに基づき、前記第1の監視待ちタスクの依存される最新のタスクインスタンスを決定し、当該最新のタスクインスタンスを前記第1の監視待ちタスクの前記検証待ちタスクインスタンスとして決定することと、
を含む、請求項1に記載のベースライン監視方法。
【請求項3】
前記第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、前記第2の監視待ちタスクの前記検証待ちタスクインスタンスを決定することは、
前記第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存オフセットのオフセット情報に基づき、前記第2の監視待ちタスクの依存される最新のタスクインスタンスを決定し、当該最新のタスクインスタンスを前記第2の監視待ちタスクの前記検証待ちタスクインスタンスとすることを含む、
請求項1に記載のベースライン監視方法。
【請求項4】
前記監視待ちタスクの各々の検証待ちタスクインスタンスを決定するステップは、
保障タスクである前記監視待ちタスクに対して、前記監視待ちタスクの最新のタスクインスタンスに基づき、前記監視待ちタスクの前記検証待ちタスクインスタンスを決定するステップを含む、
請求項1に記載のベースライン監視方法。
【請求項5】
予め設定されたベースライン承諾時間と早期警報マージン、及び前記複数の監視待ちタスク間の前記依存関係に基づき、前記監視待ちタスクの各々に対応する検証時間情報を決定するステップをさらに含み、
前記監視待ちタスクの各々に対して、当該監視待ちタスクの検証待ちタスクインスタンスに基づき、前記ベースラインを監視するステップは、
前記監視待ちタスクに対応する前記検証時間情報が示す時間に、前記監視待ちタスクの前記検証待ちタスクインスタンスの稼動状態を検証するステップと、
検証結果に基づき、前記ベースラインのベースライン状態を決定して、前記ベースラインを監視するステップと
を含む、請求項1に記載のベースライン監視方法。
【請求項6】
前記検証時間情報は、早期警報最遅開始時間、承諾最遅開始時間、タスク早期警報完了時間、タスク承諾完了時間を含み、
検証結果に基づき、前記ベースラインのベースライン状態を決定することは、
前記検証結果が、前記タスクインスタンスが前記早期警報最遅開始時間より前に既に稼動を開始し、且つ前記タスク早期警報完了時間より前に成功に稼動したことを表す場合、前記ベースライン状態が安全状態であると決定することと、
前記検証結果が、前記タスクインスタンスが前記早期警報最遅開始時間にまだ稼動を開始していないこと、又は、前記タスクインスタンスが前記タスク早期警報完了時間にまだ成功に稼動していないことを表す場合、前記ベースライン状態が早期警報状態であると決定することと、
前記検証結果が、前記タスクインスタンスが前記承諾最遅開始時間にまだ稼動を開始していないこと、又は、前記タスクインスタンスが前記タスク承諾完了時間にまだ成功に稼動していないことを表す場合、前記ベースライン状態が断線状態であると決定することと
を含む、請求項5に記載のベースライン監視方法。
【請求項7】
前記監視待ちタスクの各々に対して、前記監視待ちタスクの前記検証待ちタスクインスタンスの現在のインスタンス状態に基づいて、前記監視待ちタスクのリアルタイムマージンを決定するステップであって、ここで、異なるインスタンス状態にある前記タスクインスタンスは、対応する前記監視待ちタスクのリアルタイムマージンの決定方式が異なる、ステップと、
前記監視待ちタスクの各々のリアルタイムマージンの最小値に基づいて、前記ベースラインのリアルタイムマージンを決定するステップと、
前記ベースラインのリアルタイムマージンに基づいて、前記ベースラインのベースライン状態を決定するステップと
をさらに含む、請求項1に記載のベースライン監視方法。
【請求項8】
前記インスタンス状態は、実行待ち状態、実行中状態、実行失敗状態を含み、
前記監視待ちタスクの検証待ちタスクインスタンスの現在のインスタンス状態に基づいて、前記監視待ちタスクのリアルタイムマージンを決定するステップは、
前記タスクインスタンスの現在の前記インスタンス状態が前記実行待ち状態である場合、現在時間と前記監視待ちタスクのタスク承諾完了時間、予期スケジューリング時間、平均稼動時間長に基づいて、前記監視待ちタスクのリアルタイムマージンを決定するステップと、
前記タスクインスタンスの現在の前記インスタンス状態が前記実行中状態である場合、前記現在時間と前記監視待ちタスクの前記タスク承諾完了時間、実際実行開始時間、前記平均稼動時間長に基づいて、前記監視待ちタスクのリアルタイムマージンを決定するステップと、
前記タスクインスタンスの現在の前記インスタンス状態が前記実行失敗状態である場合、前記現在時間と前記監視待ちタスクの前記タスク承諾完了時間、前記平均稼動時間長に基づいて、前記監視待ちタスクのリアルタイムマージンを決定するステップと
を含む、請求項7に記載のベースライン監視方法。
【請求項9】
前記監視待ちタスクの実際稼動時間長が前記監視待ちタスクの平均稼動時間長の所定の割合よりも大きい場合、前記監視待ちタスクが稼動が遅くなるタスクであると決定することをさらに含み、ここで、前記平均稼動時間長が異なると、対応する前記所定の割合が異なる、
請求項1に記載のベースライン監視方法。
【請求項10】
前記平均稼動時間長は、前記監視待ちタスクの複数の履歴稼動時間長のうちの最大時間長と最小時間長を除く前記履歴稼動時間長に基づいて決定される、
請求項8又は9に記載のベースライン監視方法。
【請求項11】
ベースラインにおける複数の監視待ちタスクを決定することに用いられるように配置される監視待ちタスク決定モジュールと、
前記複数の監視待ちタスク間の依存関係に基づき、循環依存関係を有する第1の監視待ちタスクが存在するか否かを決定することに用いられるように配置される循環依存関係決定モジュールであって、ここで、循環依存関係は、前記第1の監視待ちタスク間が相互に依存することを指す、前記循環依存関係決定モジュールと、
前記監視待ちタスクの各々の検証待ちタスクインスタンスを決定することに用いられるように配置されるタスクインスタンス決定モジュールであって、ここで、循環依存関係を有する前記第1の監視待ちタスクが存在する場合、保障タスクではない前記第1の監視待ちタスクに対して、前記循環依存関係と、前記第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、前記第1の監視待ちタスクの前記検証待ちタスクインスタンスを決定し、前記保障タスクではない第2の監視待ちタスクに対して、前記第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、前記第2の監視待ちタスクの前記検証待ちタスクインスタンスを決定し、ここで、前記第2の監視待ちタスクは、前記第1の監視待ちタスク以外の監視待ちタスクであり、前記保障タスクは、ユーザが前記ベースラインに加えるタスクである、前記タスクインスタンス決定モジュールと、
前記監視待ちタスクの各々に対して、当該監視待ちタスクの前記検証待ちタスクインスタンスに基づき、前記ベースラインを監視することに用いられるように配置される監視モジュールと
を含む、ベースライン監視装置。
【請求項12】
処理装置によって実行されると、請求項1~10のいずれか1項に記載のベースライン監視方法のステップを実現させるコンピュータプログラムが記憶されたコンピュータ読み取り可能な媒体。
【請求項13】
コンピュータプログラムが記憶された記憶装置と、
前記記憶装置における前記コンピュータプログラムを実行して、請求項1~10のいずれか1項に記載のベースライン監視方法のステップを実現させる処理装置と
を含む、電子機器。
【請求項14】
プロセッサによって実行されると、前記プロセッサに請求項1~10のいずれか1項に記載のベースライン監視方法のステップを実行させる命令を含む、コンピュータプログラム。
【請求項15】
プロセッサによって実行されると、前記プロセッサに請求項1~10のいずれか1項に記載のベースライン監視方法のステップを実行させる命令を含む、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2020年11月4日に提出された、出願番号が202011218097.5であり、名称が「ベースライン監視方法、装置、読み取り可能な媒体、及び電子機器」である中国特許出願の優先権を主張しており、同出願の内容の全ては、引用によって本出願に組み込まれる。
【0002】
本開示は、コンピュータ技術分野に関し、具体的にベースライン監視方法、装置、読み取り可能な媒体、及び電子機器に関する。
【背景技術】
【0003】
ビッグデータ開発シーンでは、運営管理されるタスクが多い。日常タスクを有効に運営し、業務データの正常な産出を確保するために、タスクの稼動を監視する必要がある。
【発明の概要】
【0004】
この発明の概要は、構想を簡単な形で紹介するために提供され、これらの構想は、下記の発明を実施するための形態で詳細に記述される。この発明の概要は、権利化しようとする技術案のキーポイントとなる特徴又は必須な特徴を限定することを意図するものではなく、権利化しようとする技術案の範囲を制限することを意図するものでもない。
【0005】
第1の側面によれば、本開示は、ベースラインにおける複数の監視待ちタスクを決定することと、前記複数の監視待ちタスク間の依存関係に基づき、循環依存関係を有する第1の監視待ちタスクが存在するか否かを決定することであって、循環依存関係は、前記第1の監視待ちタスク間が相互に依存することを指すことと、前記監視待ちタスクの各々の検証待ちタスクインスタンスを決定し、ここで、循環依存関係を有する前記第1の監視待ちタスクが存在する場合、保障タスクではない前記第1の監視待ちタスクに対して、前記循環依存関係と、前記第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、前記第1の監視待ちタスクの前記検証待ちタスクインスタンスを決定し、前記保障タスクではない第2の監視待ちタスクに対して、前記第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、前記第2の監視待ちタスクの前記検証待ちタスクインスタンスを決定することであって、前記第2の監視待ちタスクは、前記第1の監視待ちタスク以外の監視待ちタスクであり、前記保障タスクは、ユーザが前記ベースラインに加えるタスクであることと、前記監視待ちタスクの各々に対して、当該監視待ちタスクの前記検証待ちタスクインスタンスに基づき、前記ベースラインを監視することと、を含むベースライン監視方法を提供する。
【0006】
第2の側面によれば、本開示は、ベースラインにおける複数の監視待ちタスクを決定することに用いられるように配置される監視待ちタスク決定モジュールと、前記複数の監視待ちタスク間の依存関係に基づき、循環依存関係を有する第1の監視待ちタスクが存在するか否かを決定することに用いられるように配置される循環依存関係決定モジュールであって、循環依存関係は、前記第1の監視待ちタスク間が相互に依存することを指す循環依存関係決定モジュールと、前記監視待ちタスクの各々の検証待ちタスクインスタンスを決定し、ここで、循環依存関係を有する前記第1の監視待ちタスクが存在する場合、保障タスクではない前記第1の監視待ちタスクに対して、前記循環依存関係と、前記第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、前記第1の監視待ちタスクの前記検証待ちタスクインスタンスを決定し、前記保障タスクではない第2の監視待ちタスクに対して、前記第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、前記第2の監視待ちタスクの前記検証待ちタスクインスタンスを決定することに用いられるように配置されるタスクインスタンス決定モジュールであって、前記第2の監視待ちタスクは、前記第1の監視待ちタスク以外の監視待ちタスクであり、前記保障タスクは、ユーザが前記ベースラインに加えるタスクであるタスクインスタンス決定モジュールと、前記監視待ちタスクの各々に対して、当該監視待ちタスクの前記検証待ちタスクインスタンスに基づき、前記ベースラインを監視することに用いられるように配置される監視モジュールとを含むベースライン監視装置を提供する。
【0007】
第3の側面によれば、本開示は、処理装置によって実行されると、本開示の第1の側面による前記方法のステップを実現させるコンピュータプログラムが記憶されたコンピュータ読み取り可能な媒体を提供する。
【0008】
第4の側面によれば、本開示は、コンピュータプログラムが記憶された記憶装置と、前記記憶装置における前記コンピュータプログラムを実行して本開示の第1の側面による前記方法のステップを実現させる処理装置とを含む電子機器を提供する。
【0009】
第5の側面によれば、本開示は、プロセッサによって実行されると、前記プロセッサに本開示の第1の側面による前記ベースライン監視方法のステップを実行させる命令を含むコンピュータプログラムを提供する。
【0010】
第6の側面によれば、本開示は、プロセッサによって実行されると、前記プロセッサに本開示の第1の側面による前記ベースライン監視方法のステップを実行させる命令を含むコンピュータプログラム製品を提供する。
【図面の簡単な説明】
【0011】
本開示の各実施例の上記及び他の特徴、利点、並びに態様は、添付図面とともに、以下の発明を実施するための形態を参照することでより明らかになる。全ての添付図面において、同一又は類似する要素を同一又は類似する符号で示している。添付図面は模式的なものであり、原本及び要素は必ずしも縮尺通りに描かれていないことを理解すべきである。
【
図1】例示的な実施例によるベースライン監視方法のフローチャートである。
【
図2】例示的な実施例によるタスク間の依存関係の模式図である。
【
図3】例示的な実施例による監視待ちタスクの検証待ちタスクインスタンスに基づきベースラインを監視する方法のフローチャートである。
【
図4】例示的な実施例によるベースライン監視装置の模式図である。
【
図5】例示的な実施例による電子機器の構造模式図である。
【発明を実施するための形態】
【0012】
以下は、添付図面を参照しながら、本開示の実施例をより詳細に記述する。添付図面においては本開示のいくつかの実施例が示されているが、本開示を各種の形態で実現することができ、ここで記述された実施例に限定されると解釈されるべきではないことを理解すべきである。逆に、これらの実施例は、本開示をより徹底的且つ完全に理解するために提供されるものである。本開示の添付図面及び実施例は、例示的なものに過ぎず、本開示の保護範囲を制限するものではないことを理解すべきである。
【0013】
本開示の方法の実施形態に記載される各ステップは、異なる順序で実行されてもよく、且つ/又は並行して実行されてもよいことを理解すべきである。さらに、方法の実施形態は、追加のステップを含んでもよく、且つ/又は示されるステップの実行を省略してもよい。本開示の範囲はこの点において制限されない。
【0014】
本明細書で使用される「含む」という用語及びその変形は、開放式包括であり、即ち、「を含むが、それらに限らない」ことを意味する。「基づいて」という用語は、「少なくとも部分的に基づいて」を意味する。「一実施例」という用語は、「少なくとも1つの実施例」を意味し、「別の実施例」という用語は、「少なくとも1つの別の実施例」を意味し、「いくつかの実施例」という用語は、「少なくともいくつかの実施例」を意味する。他の用語の関連定義は、以下の記述において与えられる。
【0015】
なお、本開示で記載される「第1の」、「第2の」などの概念は、単に異なる装置、モジュール、又はユニットを区別するためのものであり、これらの装置、モジュール、又はユニットによって実行される機能の順序又は相互依存関係を限定するためのものではない。
【0016】
なお、本開示で記載される「1つ」、「複数」の修飾は、模式的なものであり、制限性のあるものではない。特別な説明がない限り、「1つ又は複数」と理解されるべきであることは、当業者が理解すべきものである。
【0017】
本開示の実施形態における複数の装置間でやりとりされるメッセージ又は情報の名称は、説明的なものに過ぎず、これらメッセージ又は情報の範囲を制限するものではない。
【0018】
タスク間には、上下流依存関係があり、一般的には、タスク数が多く、依存関係が複雑であり、例えば、タスク間の循環依存関係とは、タスク間が相互に依存することを指す。複雑な依存関係を有するタスクに対して、いかに有効な監視を行うかが、運営管理上の重要な課題となる。
【0019】
本開示の技術案によれば、ベースラインにおける複数の監視待ちタスク間の依存関係に基づき、循環依存関係を有する第1の監視待ちタスクが存在すると決定された場合、監視待ちタスクの各々の検証待ちタスクインスタンスを決定するとき、保障タスクではない第1の監視待ちタスクに対して、循環依存関係と、第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、検証待ちタスクインスタンスを決定し得る。検証待ちタスクインスタンスが決定された後、これ以上第1の監視待ちタスク間の循環過程を実行しなくてもよく、循環依存関係が不断に循環する過程に入ることを回避する。保障タスクではない第2の監視待ちタスクに対して、第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、検証待ちタスクインスタンスを決定し得る。ここで、保障タスクは、ユーザがベースラインに加えるタスクであってもよい。保障タスクに対して、最新のタスクインスタンスを検証待ちタスクインスタンスとして決定し、保障タスクではない監視待ちタスクに対して、その依存される最新のタスクインスタンスを検証待ちタスクインスタンスとして決定し得る。このように、検証待ちタスクインスタンスのみを検証すればよく、より古いタスクインスタンスを繰り返して検証する必要がなく、重複検証を回避する。また、検証待ちタスクインスタンスの稼動状況はベースラインの全体状態に影響し、検証待ちタスクインスタンスを検証することで、ベースラインを有効に監視することができ、それにより、日常タスクを有効に運営し、タスクの正常な稼動及び業務データの正常な産出を確保することができる。
【0020】
本開示の他の特徴及び利点は、後に詳細に説明される。
【0021】
図1は、例示的な実施例によるベースライン監視方法のフローチャートである。当該方法は、処理能力を有する電子機器に適用されることができ、
図1に示すように、当該方法は、S101~S104を含み得る。
【0022】
S101において、ベースラインにおける複数の監視待ちタスクを決定する。
【0023】
ベースラインは、依存関係に基づくタスクフルリンクであってもよい。依存関係は、タスク間の上下流依存関係であり、下流タスクは、その上流タスクの実行に依存する。即ち、下流タスクは、その上流タスクが成功に実行されたことを待ってこそ、実行することができる。ここで、ベースラインのタイプは、日ベースラインと時間ベースラインとを含んでもよく、日ベースラインに対して、日毎に検出を行い、時間ベースラインに対して、時間毎に検出を行う。
【0024】
ここで、スケジューリング頻度によって、タスクのタイプは、日タスクと時間タスクとを含んでもよく、日タスクに対して、日毎にスケジューリングを行い、例えば、毎日8時にスケジューリングを行い、時間タスクに対して、時間毎にスケジューリングを行い、例えば、毎時の第20分にスケジューリングを行う。
【0025】
ユーザは、保障が必要なタスクをベースラインに加えることができ、保障タスクは、ユーザがベースラインに加えるタスクであり、例えば、保障タスクの識別情報(例えば、タスク名称、タスクIDなど)に基づいて、保障タスクをベースラインに加えることができる。例示的に、保障タスクは、相対的に重要度の高いタスクであってもよいし、重要な情報を産出するタスクであってもよい。ユーザがベースラインに加える保障タスクの数は、1つであってもよいし、複数であってもよく、本開示は具体的に制限しない。なお、日ベースラインに対して、ユーザは、日周期の保障タスクを加えることができ、時間ベースラインに対して、ユーザは、時間周期の保障タスクを加えることができる。
【0026】
本開示では、ユーザがベースラインに加えた保障タスクに基づいて、当該ベースラインにおける複数の監視待ちタスクを決定することができる。タスク間には、上下流依存関係があり、下流タスクが順調に実行できるか否かは、その上流タスクが成功に実行されたか否かに依存する。保障タスクの順調な実行は、保障タスクの全ての上流タスクの実行に依存するため、保障タスク及び保障タスクの全ての上流タスクを監視待ちタスクとすることができる。
【0027】
図2は、例示的な実施例によるタスク間の依存関係の模式図である。そのうち、矢印が指す方向は、依存されるタスクである。
図2に示すように、例えば、ユーザがタスクCとタスクDとを保障タスクとしてベースラインに加え、タスクCの上流タスクがタスクA、タスクB、タスクEを含み、タスクDの上流タスクがタスクB、タスクEを含む場合、タスクA、タスクB、タスクC、タスクD、タスクEの全てを監視待ちタスクとして決定し得る。また、ユーザが日ベースラインに加える保障タスクは、日タスクであってもよく、その日タスクの上流タスクに時間タスクがあってもよい。ユーザが時間ベースラインに加える保障タスクは、時間タスクであってもよく、その時間タスクの上流タスクに日タスクがあってもよい。
【0028】
なお、本開示は、以下の説明において、
図2に示す模式図を例に説明するが、本開示の実施形態を制限するものではなく、実際の応用において、タスクの数及びタスク間の依存関係などは、これに限定されない。
【0029】
S102において、複数の監視待ちタスク間の依存関係に基づき、循環依存関係を有する第1の監視待ちタスクが存在するか否かを決定する。
【0030】
ここで、循環依存関係は、第1の監視待ちタスク間が相互に依存することを指す。
図2に示すように、複数の監視待ちタスク間の依存関係から分かるように、監視待ちタスクAが監視待ちタスクBに依存し、監視待ちタスクBも監視待ちタスクAに依存し、つまり、両者間が相互に依存すれば、当該ベースラインには、循環依存関係を有する第1の監視待ちタスクAと第1の監視待ちタスクBが存在すると決定できる。
【0031】
なお、循環依存関係は、少なくとも2つのタスク間が相互に依存し、例えば、3つのタスク又は4つのタスク間が相互に依存することであってもよい。
図2に示す模式図では、2つのタスク間が相互に依存することのみを例にして説明するが、本開示の実施形態を制限するものではない。
【0032】
S103において、監視待ちタスクの各々の検証待ちタスクインスタンスを決定する。
【0033】
まず、タスクインスタンスについて説明する。タスクインスタンスは、タスクと業務時間とを含んでもよく、業務時間は、監視待ちタスクの稼動に必要なデータを生成するのに要する時間であり、タスクインスタンスの稼動過程は、タスクの実行過程と見なされることができる。本開示では、例えば、毎日の所定時間に、翌日に稼動すべきタスクインスタンスを生成することができる。そのうち、時間タスクに対して、1日あたり、0時~23時のタスクインスタンスを含む24個のタスクインスタンスが稼動される。
【0034】
ここで、タスクの実行中にデータを処理する必要がある。日タスクに対して、当日稼動、処理するのは、ある日に生成したデータである、即ち、稼動するのは、ある日のタスクインスタンスである。例えば、タスクが7月26日に処理するのは、7月25日に生成したデータであり、これらデータは、7月25日に生成したものであるので、業務時間は、7月25日である、つまり、7月26日に7月25日のタスクインスタンスが稼動される。同様に、時間タスクに対して、現在時に稼動、処理するのは、ある時に生成したデータである、即ち、稼動するのは、ある時のタスクインスタンスである。例示的に、例えば、15時に稼動、処理するのが14時に生成したデータである、つまり、15時に14時のタスクインスタンスが稼動される。
【0035】
検証待ちタスクインスタンスとは、検証時点で検証すべきタスクインスタンスであり、当該タスクインスタンスの稼動状況を検証することによって、ベースラインを監視することができる。
【0036】
本開示では、保障タスクである監視待ちタスクに対して、保障タスクの現在の順調な実行を確保するために、当該監視待ちタスクの最新のタスクインスタンスに基づいて、当該監視待ちタスクの検証待ちタスクインスタンスを決定することができ、例えば、当該最新のタスクインスタンスをその検証待ちタスクインスタンスとすることができる。より古いタスクインスタンスはその前に既に検証されたので、検証を繰り返す必要がないからである。ここで、最新のタスクインスタンスとは、業務時間が最新のタスクインスタンスを指してもよい。日タスクに対して、最新のタスクインスタンスは、一日前のタスクインスタンスであり、例えば、7月26日では、最新のタスクインスタンスは、7月25日のタスクインスタンスである。時間タスクに対して、最新のタスクインスタンスは、過去1時間のタスクインスタンスであり、例えば、15時では、最新のタスクインスタンスは、14時のタスクインスタンスである。
【0037】
本開示において、S102において循環依存関係を有する第1の監視待ちタスクが存在すると決定された場合、保障タスクではない第1の監視待ちタスクに対して、循環依存関係と、第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、第1の監視待ちタスクの検証待ちタスクインスタンスを決定し得る。
図2に示すように、第1の監視待ちタスクAと第1の監視待ちタスクBはいずれも保障タスクではなく、例えば、第1の監視待ちタスクAに対して、当該第1の監視待ちタスクAと第1の監視待ちタスクBとの間の循環依存関係と、当該第1の監視待ちタスクAとその下流の監視待ちタスクCとの間の依存関係とに基づき、第1の監視待ちタスクAの検証待ちタスクインスタンスを決定し得る。第1の監視待ちタスクBに対して、当該第1の監視待ちタスクBと第1の監視待ちタスクAとの間の循環依存関係と、当該第1の監視待ちタスクBとその下流の監視待ちタスクDとの間の依存関係とに基づき、第1の監視待ちタスクBの検証待ちタスクインスタンスを決定し得る。
【0038】
保障タスクではない第2の監視待ちタスクに対して、第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、第2の監視待ちタスクの検証待ちタスクインスタンスを決定する。ここで、第2の監視待ちタスクは、第1の監視待ちタスク以外の監視待ちタスクである。
図2に示すように、監視待ちタスクC、D及びEは、第2の監視待ちタスクであり、そのうち、第2の監視待ちタスクC及びDは、保障タスクであり、第2の監視待ちタスクEは、保障タスクではない。第2の監視待ちタスクEに対して、第2の監視待ちタスクEとその下流の監視待ちタスクとの間の依存関係に基づき、検証待ちタスクインスタンスを決定し得る。
【0039】
S104において、監視待ちタスクの各々に対して、当該監視待ちタスクの検証待ちタスクインスタンスに基づき、ベースラインを監視する。
【0040】
ここで、検証待ちタスクインスタンスは、タスク間の依存関係に基づいて決定されてもよい。タスク間の依存関係は、ベースライン上の各タスクの全体稼動に影響し、検証待ちタスクインスタンスの稼動状況は、ベースラインの全体状態に影響する。このため、当該タスクインスタンスの稼動状況を検証することで、ベースラインを監視することができる。
【0041】
上記の技術案によれば、ベースラインにおける複数の監視待ちタスク間の依存関係に基づき、循環依存関係を有する第1の監視待ちタスクが存在すると決定された場合、監視待ちタスクの各々の検証待ちタスクインスタンスを決定するとき、保障タスクではない第1の監視待ちタスクに対して、循環依存関係と、第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、検証待ちタスクインスタンスを決定し得る。検証待ちタスクインスタンスが決定された後、これ以上第1の監視待ちタスク間の循環過程を実行しなくてもよく、循環依存関係が不断に循環する過程に入ることを回避する。保障タスクではない第2の監視待ちタスクに対して、第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、検証待ちタスクインスタンスを決定し得る。ここで、保障タスクは、ユーザがベースラインに加えるタスクであってもよい。保障タスクに対して、最新のタスクインスタンスを検証待ちタスクインスタンスとして決定し、保障タスクではない監視待ちタスクに対して、その依存される最新のタスクインスタンスを検証待ちタスクインスタンスとして決定し得る。このように、検証待ちタスクインスタンスのみを検証すればよく、より古いタスクインスタンスを繰り返して検証する必要がなく、重複検証を回避する。また、検証待ちタスクインスタンスの稼動状況はベースラインの全体状態に影響し、検証待ちタスクインスタンスを検証することで、ベースラインを有効に監視することができ、それにより、日常タスクを有効に運営し、タスクの正常な稼動及び業務データの正常な産出を確保することができる。
【0042】
本開示において、循環依存関係と、第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、第1の監視待ちタスクの検証待ちタスクインスタンスを決定することは、
第1の監視待ちタスクが依存するその上流の第1の監視待ちタスクの第1のタスクインスタンスと、当該上流の第1の監視待ちタスクが当該第1の監視待ちタスクの下流とされる場合における当該第1の監視待ちタスクとの間の依存オフセットのオフセット情報とに基づき、当該第1の監視待ちタスクの依存される第2のタスクインスタンスを決定することと、当該第2のタスクインスタンスと、第1の監視待ちタスクのその下流の監視待ちタスクに依存されるタスクインスタンスとに基づき、第1の監視待ちタスクの依存される最新のタスクインスタンスを決定し、当該最新のタスクインスタンスを第1の監視待ちタスクの検証待ちタスクインスタンスとして決定することとを含み得る。
【0043】
まず、依存オフセットについて説明する。依存オフセットとは、1つの監視待ちタスクが、別の監視待ちタスクの履歴実行状況に依存することを意味し、オフセット情報は、別の監視待ちタスクの歴史のいつの実行状況に依存することを表すために使用され得る。
図2に示すように、監視待ちタスクが日タスクであることを例にして、監視待ちタスクCの監視待ちタスクAに対する依存オフセットのオフセット情報が0である場合、監視待ちタスクCが監視待ちタスクAの当日の実行状況に依存することを表すことができる。監視待ちタスクAの監視待ちタスクBに対する依存オフセットのオフセット情報が-1である場合、監視待ちタスクAが監視待ちタスクBの一日前の実行状況に依存することを表すことができる。時間タスクはそれと類似する。監視待ちタスクが時間タスクであることを例にして、オフセット情報に基づき、監視待ちタスクCは、監視待ちタスクAの現在時の実行状況に依存し、監視待ちタスクAは、監視待ちタスクBの過去1時間の実行状況に依存する。なお、上記0と-1は、オフセット情報の例示的な表現方式に過ぎない。オフセット情報は、離散的な時間点又は時間区間で表されてもよい。時間タスクを例にして、例えば、監視待ちタスクCが監視待ちタスクAに依存するオフセット情報が[-3,0]である場合、監視待ちタスクCが監視待ちAの過去4時間の実行状況に依存することを表すことができる。また、日タスクの上流に時間タスクがあってもよい。例えば、日タスクが当該時間タスクに依存し、オフセット情報は2時、4時であり、即ち、当該日タスクは当該時間タスクの2時の実行状況と4時の実行状況に依存する。
【0044】
以下は検証待ちタスクインスタンスを決定する過程について説明する。
図2に示すように、まず、監視待ちタスクが日タスクであることを例にして説明する。例えば、当日は7月26日であり、監視待ちタスクCは保障タスクであり、その検証待ちタスクインスタンスは最新のタスクインスタンス、即ち7月25日のタスクインスタンスであると決定でき、同様に、監視待ちタスクDは保障タスクであり、その検証待ちタスクインスタンスは7月25日のタスクインスタンスである。
【0045】
第1の監視待ちタスクAに対して、その下流の監視待ちタスクCのそれに対する依存オフセットのオフセット情報は0である。即ち、監視待ちタスクCの検証待ちの7月25日のタスクインスタンスは、監視待ちタスクAの7月25日のタスクインスタンスに依存する。
【0046】
第1の監視待ちタスクAと第1の監視待ちタスクBとは、循環依存関係にある。第1の監視待ちタスクAが下流である場合、その上流の第1の監視待ちタスクBに対する依存オフセットのオフセット情報は-1であり、即ち、第1の監視待ちタスクAの7月25日のタスクインスタンスが依存するその上流の第1の監視待ちタスクBの第1のタスクインスタンスは、第1の監視待ちタスクBの7月24日のタスクインスタンスである。両者間が相互に依存するため、第1の監視待ちタスクBが下流である場合、その上流の第1の監視待ちタスクAとの間の依存オフセットのオフセット情報は0である。すると、第1のタスクインスタンスと当該オフセット情報とに基づき、第1の監視待ちタスクAの第1の監視待ちタスクBに依存される第2のタスクインスタンスは、第1の監視待ちタスクAの7月24日のタスクインスタンスであると決定できる。
【0047】
第1の監視待ちタスクAに対して、監視待ちタスクCのそれに対する依存が7月25日のタスクインスタンスであり、第1の監視待ちタスクBのそれに対する依存が7月24日のタスクインスタンスであるため、第1の監視待ちタスクAの依存される最新のタスクインスタンスは、7月25日のタスクインスタンスであり、7月25日のタスクインスタンスを、第1の監視待ちタスクAの検証待ちタスクインスタンスとして決定できる。また、両者間の循環依存関係に基づき、このとき決定された第1の監視待ちタスクAの第1の監視待ちタスクBに依存される7月24日のタスクインスタンスは、第1の監視待ちタスクAの最新のタスクインスタンスではなく、その後、これ以上両者間の循環過程を行わなくてもよい。両者間の循環過程を続行する場合、第1の監視待ちタスクAの7月24日のタスクインスタンスは、第1の監視待ちタスクBの7月23日のタスクインスタンスに依存し、第1の監視待ちタスクBの7月23日のタスクインスタンスは、第1の監視待ちタスクAの7月23日のタスクインスタンスに依存すると決定でき、当該7月23日のタスクインスタンスは、第1の監視待ちタスクAの最新のタスクインスタンスではない。従って、両者間の循環過程を続行しなくてもよい。
【0048】
第1の監視待ちタスクBに対して、第1の監視待ちタスクAの7月25日のタスクインスタンスは、第1の監視待ちタスクBの7月24日のタスクインスタンスに依存する。両者間の循環依存関係に基づき、第1の監視待ちタスクBが下流である場合、その7月24日のタスクインスタンスが依存するその上流の第1の監視待ちタスクAの第1のタスクインスタンスは、第1の監視待ちタスクAの7月24日のタスクインスタンスである。そして、第1の監視待ちタスクAが下流である場合、当該第1のタスクインスタンスとオフセット情報-1とに基づき、第1の監視待ちタスクBの依存される第2のタスクインスタンスは、7月23日のタスクインスタンスであると決定できる。また、その下流の監視待ちタスクDのそれに対する依存オフセットのオフセット情報は-2である。即ち、監視待ちタスクDの検証待ちの7月25日のタスクインスタンスは、監視待ちタスクBの7月23日のタスクインスタンスに依存する。このように、7月23日のタスクインスタンスは7月24日のタスクインスタンスよりも古いので、このとき、第1の監視待ちタスクBの依存される最新のタスクインスタンスは、7月24日のタスクインスタンスであると決定でき、かつ、両者間の循環過程を続行しなくてもよい。両者間の循環過程を続行すると、後で決定される第1の監視待ちタスクBの依存される7月22日、7月21日等のタスクインスタンスは、最新のタスクインスタンスではないことは言うまでもない。
【0049】
上記の技術案によれば、循環依存関係を有する第1の監視待ちタスクに対して、循環依存関係と、下流の監視待ちタスクのそれに対する依存オフセットのオフセット情報とに基づき、第1の監視待ちタスクの依存される最新のタスクインスタンスを決定し、当該最新のタスクインスタンスを第1の監視待ちタスクの検証待ちタスクインスタンスとして決定できる。検証待ちタスクインスタンスが決定された後、これ以上第1の監視待ちタスク間の循環を行わなくてもよく、循環依存関係が不断に循環する過程に入ることを回避する。その後、検証待ちタスクインスタンスを検証することにより、ベースラインを監視する。
【0050】
本開示において、第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、第2の監視待ちタスクの検証待ちタスクインスタンスを決定することは、
第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存オフセットのオフセット情報に基づき、第2の監視待ちタスクの依存される最新のタスクインスタンスを決定し、当該最新のタスクインスタンスを第2の監視待ちタスクの検証待ちタスクインスタンスとすることを含み得る。
【0051】
ここで、第2の監視待ちタスクは循環依存関係を有しないため、直接的にそれと下流の監視待ちタスクとの間の依存関係に基づき、検証待ちタスクインスタンスを決定し得る。
図2に示すように、第2の監視待ちタスクEに対して、その下流の監視待ちタスクBのそれに対する依存オフセットのオフセット情報は0であるので、監視待ちタスクBの7月24日のタスクインスタンスが依存する第2の監視待ちタスクEの7月24日のタスクインスタンスは、第2の監視待ちタスクEの最新のタスクインスタンスであり、7月24日のタスクインスタンスを第2の監視待ちタスクEの検証待ちタスクインスタンスとすることができる。
【0052】
図2に示される依存関係のように、7月24日のタスクインスタンスを第2の監視待ちタスクEの検証待ちタスクインスタンスとすることができる。第2の監視待ちタスクEの下流として1つの監視待ちタスクF(図示せず)がさらにあり、且つ第2の監視待ちタスクEに対する依存オフセットのオフセット情報が0であり、例えば、当該監視待ちタスクFの検証待ちタスクインスタンスが7月25日のタスクインスタンスであれば、当該タスクインスタンスは、第2の監視待ちタスクEの7月25日のタスクインスタンスに依存する。これに基づき、7月25日のタスクインスタンスを第2の監視待ちタスクEの依存される最新のタスクインスタンスとして決定でき、かつ7月25日のタスクインスタンスを第2の監視待ちタスクEの検証待ちタスクインスタンスとして決定できる。
【0053】
上記の技術案によれば、第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存オフセットのオフセット情報に基づき、第2の監視待ちタスクの依存される最新のタスクインスタンスを決定し、当該最新のタスクインスタンスを検証待ちタスクインスタンスとして決定する。このように、ベースラインを監視するように、より古いタスクインスタンスを繰り返して検証する必要がなく、最新のタスクインスタンスのみを検証すればよい。
【0054】
監視待ちタスクが時間タスクである場合、
図2に示すように、例示的に、例えば、現在時間が15時であり、監視待ちタスクCが保障タスクであり、その検証待ちタスクインスタンスは、最新のタスクインスタンス、即ち、14時のタスクインスタンスであってもよい。監視待ちタスクDが保障タスクであり、その検証待ちタスクインスタンスは、14時のタスクインスタンスであってもよい。第1の監視待ちタスクAに対して、当該第1の監視待ちタスクAと第1の監視待ちタスクBとの間の循環依存関係と、その下流の監視待ちタスクとの間の依存関係とに基づき、第1の監視待ちタスクAの依存される最新のタスクインスタンスが14時のタスクインスタンスであると決定でき、14時のタスクインスタンスを第1の監視待ちタスクAの検証待ちタスクインスタンスとすることができる。第1の監視待ちタスクBに対して、当該第1の監視待ちタスクBと第1の監視待ちタスクAとの間の循環依存関係と、その下流の監視待ちタスクとの間の依存関係とに基づき、13時のタスクインスタンスを第1の監視待ちタスクBの検証待ちタスクインスタンスとすることができる。第2の監視待ちタスクEに対して、13時のタスクインスタンスをその検証待ちタスクインスタンスとすることができる。
【0055】
以上、検証待ちタスクインスタンスを決定する過程について詳細に説明した。以下は監視待ちタスクに対応する検証時間情報を決定する過程、即ち、いつ検証待ちタスクインスタンスを検証すべきかについて説明する。
【0056】
本開示によるベースライン監視方法は、予め設定されたベースライン承諾時間と早期警報マージン、及び複数の監視待ちタスク間の依存関係に基づき、監視待ちタスクの各々に対応する検証時間情報を決定することをさらに含んでもよい。
【0057】
ここで、ユーザがベースラインを作成するとき、保障タスクをベースラインに加えることができ、ベースライン承諾時間と早期警報マージンを設定することもできる。ベースライン承諾時間は、ベースラインの最も遅い完了時間であり、ベースラインにおける全ての監視待ちタスクは、当該ベースライン承諾時間までに完了する必要があり、当該ベースライン承諾時間までに完了しないと、ベースラインは断線する。ベースライン承諾時間は、ベースラインの完了予定時間に基づいて設定されてもよい。ベースラインの完了予定時間は、全ての保障タスクの完了予定時間のうちの最大時間であり得る。早期警報マージンは、設定されたバッファ時間長であってもよい。ベースライン承諾時間から早期警報マージンを引いたものがベースライン早期警報完了時間である。全ての監視待ちタスクがベースライン早期警報完了時間までに完了できることを期待する。当該ベースライン早期警報完了時間までに完了していない場合、ベースラインは早期警報する。ベースラインに対して、ベースライン早期警報よりも、ベースライン断線の方が与える影響が大きい。
【0058】
監視待ちタスクに対応する検証時間情報は、早期警報最遅開始時間、承諾最遅開始時間、タスク早期警報完了時間、タスク承諾完了時間を含み得る。
【0059】
ここで、タスク承諾完了時間から早期警報マージンを引いたものがタスク早期警報完了時間であり、タスク承諾完了時間から監視待ちタスクの平均稼動時間長を引いたものが承諾最遅開始時間であり、承諾最遅開始時間から早期警報マージンを引いたものが早期警報最遅開始時間であり、タスク早期警報完了時間から監視待ちタスクの平均稼動時間長を引いたものが早期警報最遅開始時間である。本開示において、監視待ちタスクの平均稼動時間長は、監視待ちタスクの複数の履歴稼動時間長のうちの最大時間長と最小時間長を除く履歴稼動時間長に基づいて決定されてもよい。例示的に、複数の履歴稼動時間長は、過去15日の稼動時間長であってもよく、複数の履歴稼動時間長のうちの最大時間長と最小時間長を除いた後、残りの履歴稼動時間長の平均値を監視待ちタスクの平均稼動時間長としてもよい。最大時間長と最小時間長は、監視待ちタスクの稼動の不安定により出現された稼動時間長が長過ぎ又は短過ぎるものであり得るので、最大時間長と最小時間長を除いた履歴稼動時間長に基づいて平均稼動時間長を決定することにより、極端な値の影響を回避することができ、決定された平均稼動時間長をより正確にすることができる。
【0060】
図2に示すように、監視待ちタスクが日タスクであることを例にして、例えば、予め設定されたベースライン承諾時間は10時であり、早期警報マージンは1hである。検証時間情報を決定する際、下流の保障タスクから開始して、タスク間の依存関係に基づき、下から上へ渡ることで、監視待ちタスクの各々の検証時間情報を決定するようにしてもよい。
【0061】
そのうち、監視待ちタスクCのタスク承諾完了時間は10時であってもよく、タスク早期警報完了時間が9時であり、例えば、監視待ちタスクCの平均稼動時間長が30minである場合、その早期警報最遅開始時間は8時30分で、承諾最遅開始時間は9時30分である。
【0062】
監視待ちタスクAに対して、監視待ちタスクCが当該監視待ちタスクAに依存し、監視待ちタスクAが成功に実行した後こそ監視待ちタスクCが実行可能であるため、監視待ちタスクAのタスク承諾完了時間は、監視待ちタスクCの承諾最遅開始時間である9時30分であってもよく、監視待ちタスクAのタスク早期警報完了時間は、監視待ちタスクCの早期警報最遅開始時間である8時30分であってもよい。例えば、監視待ちタスクAの平均稼動時間長が1.5hである場合、監視待ちタスクAの承諾最遅開始時間は8時であり、早期警報最遅開始時間は7時である。
【0063】
監視待ちタスクDに対して、そのタスク承諾完了時間は8時であってもよく、タスク早期警報完了時間が7時であり、例えば、監視待ちタスクDの平均稼動時間長が20minである場合、その早期警報最遅開始時間は6時40分で、承諾最遅開始時間は7時40分である。
【0064】
監視待ちタスクBに対して、監視待ちタスクAと監視待ちタスクDはいずれも当該監視待ちタスクBの実行に依存する。監視待ちタスクAが早期警報最遅開始時間である7時前に実行可能であるようにするために、監視待ちタスクBのタスク早期警報完了時間は、7時である必要がある。監視待ちタスクDが早期警報最遅開始時間である6時40分前に実行可能であるようにするために、監視待ちタスクBのタスク早期警報完了時間は、6時40分である必要がある。監視待ちタスクAと監視待ちタスクDがいずれも順調に実行できることを確保するために、監視待ちタスクBのタスク早期警報完了時間は、その下流の監視待ちタスクの早期警報最遅開始時間のうちの最も早い時間、即ち、6時40分を取ることができる。例えば、監視待ちタスクBの平均稼動時間長が40minである場合、その早期警報最遅開始時間は6時であり、承諾最遅開始時間は7時であり、タスク承諾完了時間は7時40分である。
【0065】
監視待ちタスクEに対して、そのタスク承諾完了時間は7時であってもよく、タスク早期警報完了時間は6時であってもよく、例えば、監視待ちタスクEの平均稼動時間長が30minである場合、その早期警報最遅開始時間は5時30分で、承諾最遅開始時間は6時30分である。
【0066】
これにより、保障タスクから開始して、下から上へ渡って、予め設定されたベースライン承諾時間と早期警報マージン、及びタスク間の依存関係に基づき、監視待ちタスクの各々に対応する検証時間情報を決定することができる。それに応じて、上記S104において監視待ちタスクの検証待ちタスクインスタンスに基づきベースラインを監視する例示的な実施形態は、
図3に示すように、S301及びS302を含み得る。
【0067】
S301において、監視待ちタスクに対応する検証時間情報が示す時間に、監視待ちタスクの検証待ちタスクインスタンスの稼動状態を検証する。S302において、検証結果に基づき、ベースラインのベースライン状態を決定して、ベースラインを監視する。
【0068】
例示的に、例えば、監視待ちタスクAに対して、7月26日の早期警報最遅開始時間である7時及び承諾最遅開始時間である8時に、その7月25日のタスクインスタンスが稼動を開始したか否かを検証し、タスク早期警報完了時間である8時30分及びタスク承諾完了時間である9時30分に、その7月25日のタスクインスタンスが成功に稼動したか否かを検証する。他の監視待ちタスクの検証はこれと類似するため、これ以上説明しない。
【0069】
ここで、ベースライン状態は、安全、早期警報、断線、及びその他を含み、ベースラインがその他の状態にあるとは、ベースラインに関連監視待ちタスクがなく、又は、監視待ちタスクがオフ状態にあるときにおけるベースラインの状態を指してもよい。S302において、検証結果に基づき、ベースライン状態を決定することは、
検証結果が、検証待ちタスクインスタンスが早期警報最遅開始時間より前に既に稼動を開始し、且つタスク早期警報完了時間より前に成功に稼動したことを表す場合、当該タスクインスタンスが正常に稼動したことを表すことができ、ベースライン状態が安全状態であると決定できることと、
検証結果が、検証待ちタスクインスタンスが早期警報最遅開始時間にまだ稼動を開始していないこと、又は、検証待ちタスクインスタンスがタスク早期警報完了時間にまだ成功に稼動していないことを表す場合、ベースライン状態が早期警報状態であると決定できることと、
検証結果が、検証待ちタスクインスタンスが承諾最遅開始時間にまだ稼動を開始していないこと、又は、検証待ちタスクインスタンスがタスク承諾完了時間にまだ成功に稼動していないことを表す場合、ベースライン状態が断線状態であると決定できることと、を含み得る。
【0070】
説明すべきことは、監視待ちタスク間には、上下流依存関係があり、ベースラインにおける各監視待ちタスクの稼動は、ベースライン全体の状態に影響することである。例示的に、監視待ちタスクEを検証するとき、検証結果が、監視待ちタスクEが早期警報最遅開始時間より前に稼動していないことを表す場合、当該監視待ちタスクEの稼動が遅過ぎるため、その下流の他の監視待ちタスクが時間どおりに稼動することに影響し、その下流の他の監視待ちタスクが時間どおりに稼動を開始できないことを引き起こすので、ベースライン状態が早期警報状態であると決定できる。
【0071】
このように、検証時間情報が示す時間に、検証待ちタスクインスタンスの稼動状態を検証し、タスクインスタンスの稼動状態に基づいてベースライン全体を監視することができる。
【0072】
図2に示すように、監視待ちタスクが時間タスクであることを例にすると、例えば、ベースライン承諾時間は一時間における第55minであり、早期警報マージンは5minである。監視待ちタスクCに対して、例えば、そのタスク承諾完了時間が第55minであり、早期警報完了時間が第50minである。もしその平均稼動時間長が10minであれば、その承諾最遅開始時間は第45minであり、早期警報最遅開始時間は第40minである。上記の例を踏襲すると、15時40分に、監視待ちタスクCの14時のタスクインスタンスが稼動を開始したか否かを検証することができ、まだ稼動を開始していない場合、ベースライン状態が早期警報状態であると決定できる。
【0073】
監視待ちタスクAに対して、もしその平均稼動時間長が5minであれば、そのタスク承諾完了時間は第45minであり、タスク早期警報完了時間は第40minであり、承諾最遅開始時間は第40minであり、早期警報最遅開始時間は第35minであり、例えば、15時35分に、監視待ちタスクAの14時のタスクインスタンスが稼動を開始したか否かを検証することができる。他の監視待ちタスクの検証時間情報の決定について、日タスクに対する上記の説明を参照することができる。
【0074】
また、検証結果に基づいてアラート情報を送信してもよい。ベースライン状態が早期警報状態であると決定された場合、当該ベースライン担当者にベースライン早期警報のアラート情報を送信し、ベースライン状態が断線状態であると決定された場合、当該ベースライン担当者にベースライン断線のアラート情報を送信して、ベースライン担当者に当該ベースラインの稼動状況を即時に提示する。
【0075】
本開示によるベースライン監視方法は、監視待ちタスクの各々に対して、監視待ちタスクの検証待ちタスクインスタンスの現在のインスタンス状態に基づいて、監視待ちタスクのリアルタイムマージンを決定することと、監視待ちタスクの各々のリアルタイムマージンの最小値に基づいて、ベースラインのリアルタイムマージンを決定することと、ベースラインのリアルタイムマージンに基づいて、ベースラインのベースライン状態を決定することとをさらに含んでもよい。
【0076】
リアルタイムマージンは、ベースライン早期警報又は破線の警告の程度を表すことができる。タスクインスタンスの現在のインスタンス状態は、実行待ち状態、実行中状態、実行失敗状態を含み得る。本開示において、異なるインスタンス状態にあるタスクインスタンスは、全ての監視待ちタスクがいずれも同じリアルタイムマージン決定方式を採用するものではなく、対応する監視待ちタスクのリアルタイムマージンの決定方式を異ならせて、採用される決定方式がインスタンス状態に対応するようにすることで、決定された監視待ちタスクのリアルタイムマージンの正確性を確保する。
【0077】
そのうち、検証待ちタスクインスタンスの現在のインスタンス状態が実行待ち状態である場合、現在時間と監視待ちタスクのタスク承諾完了時間、予期スケジューリング時間、平均稼動時間長に基づいて、監視待ちタスクのリアルタイムマージンを決定することができる。予期スケジューリング時間は、当該監視待ちタスクがいつスケジューリングされたいかを予期する時間であってもよい。一般的に、他のタスクの影響により、監視待ちタスクの実際の稼動時間は、当該予期スケジューリング時間よりも遅いか、又は等しくなり得る。
【0078】
例示的に、タスクインスタンスのインスタンス状態が実行待ち状態である場合、次式により対応する監視待ちタスクのリアルタイムマージンT1を決定できる。
【0079】
T1=タスク承諾完了時間-[max(予期スケジューリング時間,現在時間)+平均稼動時間長]
検証待ちタスクインスタンスの現在のインスタンス状態が実行中状態である場合、現在時間と監視待ちタスクのタスク承諾完了時間、実際実行開始時間、平均稼動時間長に基づいて、監視待ちタスクのリアルタイムマージンを決定することができる。例示的に、タスクインスタンスのインスタンス状態が実行中状態である場合、次式により対応する監視待ちタスクのリアルタイムマージンT2を決定できる。
【0080】
T2=タスク承諾完了時間-[max(現在時間,実際実行開始時間)+平均稼動時間長)]
検証待ちタスクインスタンスの現在のインスタンス状態が実行失敗状態である場合、現在時間と監視待ちタスクのタスク承諾完了時間、平均稼動時間長に基づいて、監視待ちタスクのリアルタイムマージンを決定することができる。例示的に、タスクインスタンスのインスタンス状態が実行失敗状態である場合、次式により対応する監視待ちタスクのリアルタイムマージンT3を決定できる。
【0081】
T3=タスク承諾完了時間-(現在時間+平均稼動時間長)
ここで、ベースラインの状態は、各監視待ちタスクの影響を受けるので、監視待ちタスクの各々のリアルタイムマージンの最小値をベースラインのリアルタイムマージンとして決定し、ベースラインのリアルタイムマージンに基づいてベースラインのベースライン状態を決定することができる。ベースラインのリアルタイムマージンが正数で早期警報マージンよりも大きい場合、ベースライン状態が安全であることを表すことができ、且つリアルタイムマージンの数値が大きいほど安全である。ベースラインのリアルタイムマージンが早期警報マージン未満である場合、ベースライン状態が早期警報状態であることを表すことができる。ベースラインのリアルタイムマージンが負数である場合、ベースライン状態が破線状態であることを表すことができ、且つリアルタイムマージンの数値が小さいほど、破線の度合いが高い。
【0082】
上記技術案では、異なるインスタンス状態にあるタスクインスタンスは、対応する監視待ちタスクのリアルタイムマージンの決定方式を異ならせて、採用される決定方式がインスタンス状態に対応するようにし、決定された監視待ちタスクのリアルタイムマージンの正確性を確保することで、監視待ちタスクのリアルタイムマージンに基づいて決定されたベースライン状態の正確性を確保する。
【0083】
本開示によるベースライン監視方法は、監視待ちタスクの実際稼動時間長が監視待ちタスクの平均稼動時間長の所定の割合よりも大きい場合、監視待ちタスクが、稼動が遅くなるタスクであると決定することをさらに含んでもよく、ここで、平均稼動時間長が異なると、対応する所定の割合が異なる。
【0084】
監視待ちタスクは、稼動中に稼動に失敗する可能性がある。このとき、当該監視待ちタスクに対してエラーアラームを行い、タスク担当者にタスク稼動エラーのアラーム情報を送信してもよい。また、監視待ちタスクの稼動中に、稼動が遅くなる場合もある。即ち、監視待ちタスクの実際稼動時間長が平均稼動時間長よりも長い。本開示では、監視待ちタスクの実際稼動時間長が平均稼動時間長よりも長いと稼動が遅くなるタスクであるとみなすものではなく、実際稼動時間長が平均稼動時間長の所定の割合よりも大きい場合こそ、監視待ちタスクは稼動が遅くなるタスクであると決定する。このように、遅くなるイベントの数をある程度制御して、不要な遅くなるイベントの記録を防止することができる。
【0085】
また、本開示において、平均稼動時間長が異なると、対応する所定の割合は異なってもよく、平均稼動時間長に基づいて対応する所定の割合を設定してもよい。一実施例において、平均稼動時間長と所定の割合との対応関係は、下記表1に示すようであってもよい。
【表1】
説明すべきことは、表1に示される実施例は例示的なものであり、本開示の実施形態を制限するものではないことである。例示的に、例えば、監視待ちタスクCの平均稼動時間長が30minである場合、監視待ちタスクCの実際稼動時間長が48min以上であるとき、監視待ちタスクCが、稼動が遅くなるタスクであると決定する。
【0086】
上記の技術案によれば、監視待ちタスクの実際稼動時間長が平均稼動時間長の所定の割合よりも大きい場合こそ、監視待ちタスクが、稼動が遅くなるタスクであると決定する。かつ、平均稼動時間長が異なると、対応する所定の割合が異なってもよい。このように、遅くなるイベントの数をある程度制御して、不要な遅くなるイベントの記録を防止することができる。
【0087】
同じ発明構想に基づき、本開示は、ベースライン監視装置をさらに提供する。
図4は、例示的な実施例によるベースライン監視装置の模式図である。
図4に示すように、当該装置400は、
ベースラインにおける複数の監視待ちタスクを決定することに用いられるように配置される監視待ちタスク決定モジュール401と、
前記複数の監視待ちタスク間の依存関係に基づき、循環依存関係を有する第1の監視待ちタスクが存在するか否かを決定することに用いられるように配置される循環依存関係決定モジュール402と、ここで、循環依存関係は、前記第1の監視待ちタスク間が相互に依存することを指し、
前記監視待ちタスクの各々の検証待ちタスクインスタンスを決定することに用いられるように配置されるタスクインスタンス決定モジュール403と、ここで、循環依存関係を有する前記第1の監視待ちタスクが存在する場合、保障タスクではない前記第1の監視待ちタスクに対して、前記循環依存関係と、前記第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、前記第1の監視待ちタスクの前記検証待ちタスクインスタンスを決定し、前記保障タスクではない第2の監視待ちタスクに対して、前記第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、前記第2の監視待ちタスクの前記検証待ちタスクインスタンスを決定し、ここで、前記第2の監視待ちタスクは、前記第1の監視待ちタスク以外の監視待ちタスクであり、前記保障タスクは、ユーザが前記ベースラインに加えるタスクであり、
前記監視待ちタスクの各々に対して、当該監視待ちタスクの前記検証待ちタスクインスタンスに基づき、前記ベースラインを監視することに用いられるように配置される監視モジュール404と、を含み得る。
【0088】
上記の技術案によれば、ベースラインにおける複数の監視待ちタスク間の依存関係に基づき、循環依存関係を有する第1の監視待ちタスクが存在すると決定された場合、監視待ちタスクの各々の検証待ちタスクインスタンスを決定するとき、保障タスクではない第1の監視待ちタスクに対して、循環依存関係と、当該第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、検証待ちタスクインスタンスを決定し得る。検証待ちタスクインスタンスが決定された後、これ以上第1の監視待ちタスク間の循環過程を実行しなくてもよく、循環依存関係が不断に循環する過程に入ることを回避する。保障タスクではない第2の監視待ちタスクに対して、当該第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、検証待ちタスクインスタンスを決定し得る。ここで、保障タスクは、ユーザがベースラインに加えるタスクであってもよい。保障タスクに対して、最新のタスクインスタンスを検証待ちタスクインスタンスとして決定し、保障タスクではない監視待ちタスクに対して、その依存される最新のタスクインスタンスを検証待ちタスクインスタンスとして決定し得る。このように、検証待ちタスクインスタンスのみを検証すればよく、より古いタスクインスタンスを繰り返して検証する必要がなく、重複検証を回避する。また、検証待ちタスクインスタンスの稼動状況はベースラインの全体状態に影響し、検証待ちタスクインスタンスを検証することで、ベースラインを有効に監視することができ、それにより、日常タスクを有効に運営し、タスクの正常な稼動及び業務データの正常な産出を確保することができる。
【0089】
選択的に、前記タスクインスタンス決定モジュール403は、前記第1の監視待ちタスクが依存するその上流の第1の監視待ちタスクの第1のタスクインスタンスと、当該上流の第1の監視待ちタスクが前記第1の監視待ちタスクの下流とされる場合における前記第1の監視待ちタスクとの間の依存オフセットのオフセット情報とに基づき、前記第1の監視待ちタスクの依存される第2のタスクインスタンスを決定するように配置される第1の決定サブモジュールと、ここで、依存オフセットとは、1つの監視待ちタスクが、別の監視待ちタスクの履歴実行状況に依存することを意味し、前記第2のタスクインスタンスと、前記第1の監視待ちタスクのその下流の監視待ちタスクに依存されるタスクインスタンスとに基づき、前記第1の監視待ちタスクの依存される最新のタスクインスタンスを決定し、当該最新のタスクインスタンスを前記第1の監視待ちタスクの前記検証待ちタスクインスタンスとして決定するように配置される第2の決定サブモジュールとを含み得る。
【0090】
選択的に、前記タスクインスタンス決定モジュール403は、前記第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存オフセットのオフセット情報に基づき、前記第2の監視待ちタスクの依存される最新のタスクインスタンスを決定し、当該最新のタスクインスタンスを前記第2の監視待ちタスクの前記検証待ちタスクインスタンスとすることに用いられるように配置される第3の決定サブモジュールを含み得る。
【0091】
選択的に、前記タスクインスタンス決定モジュール403は、保障タスクである前記監視待ちタスクに対して、前記監視待ちタスクの最新のタスクインスタンスに基づき、前記監視待ちタスクの前記検証待ちタスクインスタンスを決定することに用いられるように配置される第4の決定サブモジュールを含み得る。
【0092】
選択的に、前記装置400は、予め設定されたベースライン承諾時間と早期警報マージン、及び前記複数の監視待ちタスク間の前記依存関係に基づき、前記監視待ちタスクの各々に対応する検証時間情報を決定することに用いられるように配置される検証時間情報決定モジュールをさらに含んでもよく、前記監視モジュール404は、前記監視待ちタスクに対応する前記検証時間情報が示す時間に、前記監視待ちタスクの前記検証待ちタスクインスタンスの稼動状態を検証することに用いられるように配置される検証サブモジュールと、検証結果に基づいて、前記ベースラインのベースライン状態を決定して前記ベースラインを監視することに用いられるように配置される第5の決定サブモジュールとを含んでもよい。
【0093】
選択的に、前記検証時間情報は、早期警報最遅開始時間、承諾最遅開始時間、タスク早期警報完了時間、タスク承諾完了時間を含み、前記第5の決定サブモジュールは、前記検証結果が、前記タスクインスタンスが前記早期警報最遅開始時間より前に稼動を開始し、且つ前記タスク早期警報完了時間より前に成功に稼動したことを表す場合、前記ベースライン状態が安全状態であると決定することに用いられるように配置される安全状態決定サブモジュールと、前記検証結果が、前記タスクインスタンスが前記早期警報最遅開始時間にまだ稼動を開始していないこと、又は、前記タスクインスタンスが前記タスク早期警報完了時間にまだ成功に稼動していないことを表す場合、前記ベースライン状態が早期警報状態であると決定することに用いられるように配置される早期警報状態決定サブモジュールと、前記検証結果が、前記タスクインスタンスが前記承諾最遅開始時間にまだ稼動を開始していないこと、又は、前記タスクインスタンスが前記タスク承諾完了時間にまだ成功に稼動していないことを表す場合、前記ベースライン状態が断線状態であると決定することに用いられるように配置される断線状態決定サブモジュールとを含む。
【0094】
選択的に、前記装置400は、前記監視待ちタスクの各々に対して、前記監視待ちタスクの前記検証待ちタスクインスタンスの現在のインスタンス状態に基づいて、前記監視待ちタスクのリアルタイムマージンを決定することに用いられるように配置されるタスクリアルタイムマージン決定モジュールと、ここで、異なるインスタンス状態にある前記タスクインスタンスは、対応する前記監視待ちタスクのリアルタイムマージンの決定方式が異なり、前記監視待ちタスクの各々のリアルタイムマージンの最小値に基づいて、前記ベースラインのリアルタイムマージンを決定することに用いられるように配置されるベースラインリアルタイムマージン決定モジュールと、前記ベースラインのリアルタイムマージンに基づいて、前記ベースラインのベースライン状態を決定することに用いられるように配置されるベースライン状態決定モジュールとをさらに含んでもよい。
【0095】
選択的に、前記インスタンス状態は、実行待ち状態、実行中状態、実行失敗状態を含み、前記タスクリアルタイムマージン決定モジュールは、前記タスクインスタンスの現在の前記インスタンス状態が前記実行待ち状態である場合、現在時間と前記監視待ちタスクのタスク承諾完了時間、予期スケジューリング時間、平均稼動時間長に基づいて、前記監視待ちタスクのリアルタイムマージンを決定することに用いられるように配置される第1のリアルタイムマージン決定サブモジュールと、前記タスクインスタンスの現在の前記インスタンス状態が前記実行中状態である場合、前記現在時間と前記監視待ちタスクの前記タスク承諾完了時間、実際実行開始時間、前記平均稼動時間長に基づいて、前記監視待ちタスクのリアルタイムマージンを決定することに用いられるように配置される第2のリアルタイムマージン決定サブモジュールと、前記タスクインスタンスの現在の前記インスタンス状態が前記実行失敗状態である場合、前記現在時間と前記監視待ちタスクの前記タスク承諾完了時間、前記平均稼動時間長に基づいて、前記監視待ちタスクのリアルタイムマージンを決定することに用いられるように配置される第3のリアルタイムマージン決定サブモジュールとを含む。
【0096】
選択的に、前記装置400は、前記監視待ちタスクの実際稼動時間長が前記監視待ちタスクの平均稼動時間長の所定の割合よりも大きい場合、前記監視待ちタスクが、稼動が遅くなるタスクであると決定することに用いられるように配置される遅くなるタスク決定モジュールをさらに含み、ここで、前記平均稼動時間長が異なると、対応する前記所定の割合が異なる。
【0097】
上記実施例における装置について、各モジュールが操作を実行する具体的な方式は、当該方法に関する実施例において詳細に説明されており、ここでは詳細に説明しない。
【0098】
以下、本開示の実施例を実現することに適合する電子機器500の構造模式図を示す
図5を参照する。本開示の実施例中の端末機器は、例えば、携帯電話、ノートパソコン、デジタル放送受信機、PDA(パーソナルデジタルアシスタント)、PAD(タブレット)、PMP(可搬式マルチメディア再生機)、車載端末(例えば、車載ナビゲーション端末)などの携帯端末、及び例えばデジタルTV、デスクトップコンピュータなどの固定端末を含み得るが、それらに限らない。
図5に示された電子機器は一例に過ぎず、本開示の実施例の機能及び使用範囲に何の制限を加えるものではない。
【0099】
図5に示すように、電子機器500は処理装置(例えば、中央処理装置、グラフィックプロセッサーなど)501を含んでもよく、それはリードオンリーメモリ(ROM)502に記憶されたプログラム又は記憶装置508からランダムアクセスメモリ(RAM)503にロードされたプログラムによって各種の適切な動作及び処理を実行することができる。RAM503には、電子機器500の操作に必要な各種のプログラムやデータがさらに格納されている。処理装置501、ROM 502及びRAM503は、バス504を介して相互に接続される。入力/出力(I/O)インタフェース505もバス504に接続される。
【0100】
一般的には、例えばタッチスクリーン、タッチパネル、キーボード、マウス、カメラヘッド、マイクロホン、加速度計、ジャイロなどを含む入力装置506と、例えば液晶ディスプレイー(LCD)、スピーカー、発振器などを含む出力装置507と、例えば磁気テープ、ハードディスクなどを含む記憶装置508と、通信装置509とがI/Oインタフェース505に接続されていてもよい。通信装置509は電子機器500が他のデバイスと無線又は有線通信することを許してデータを交換するようにする。
図5に各種の装置を備えた電子機器500が示されているが、示された装置の全てを実施したり、具備したりすることを要求する意図がないことを理解すべきである。それより多いか又は少ない装置を代替的に実施したり、具備したりすることが可能である。
【0101】
特に、本開示の実施例によれば、フローチャートを参照しながら上述したプロセスはコンピュータソフトウェアプログラムとして実現できる。例えば、本開示の実施例はコンピュータプログラム製品を含み、それは非一時的なコンピュータ読み取り可能な媒体に搭載された、フローチャートに示す方法を実行するためのプログラムコードを含むコンピュータプログラムを含む。このような実施例では、当該コンピュータプログラムは通信装置509によってネットワークからダウンロードしインストールされ、又は記憶装置508からインストールされ、又はROM 502からインストールされ得る。処理装置501によって当該コンピュータプログラムが実行されると、本開示の実施例の方法で限定された上記機能を実行する。
【0102】
説明すべきことは、本開示における上記コンピュータ読み取り可能な媒体はコンピュータ読み取り可能な信号媒体又はコンピュータ読み取り可能な記憶媒体又は上記両者の任意の組み合わせであってもよいことである。コンピュータ読み取り可能な記憶媒体は、例えば、電気、磁気、光、電磁、赤外線又は半導体のシステム、装置又はデバイス或いはそれらの任意の組み合わせであってもよいが、それらに限らない。コンピュータ読み取り可能な記憶媒体は、より具体的な例として、1つ又は複数の導線を有する電気接続、携帯型コンピュータ磁気ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブル・リードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバ、コンパクトディスク・リードオンリーメモリ(CD-ROM)、光記憶装置、磁気記憶装置又はそれらの任意の適切な組み合わせを含んでもよいが、それらに限らない。本開示では、コンピュータ読み取り可能な記憶媒体はプログラムを含む又は記憶するいかなる有形媒体であってもよく、当該プログラムは命令実行システム、装置又はデバイスに使用される、又は、それらと組み合わせて使用されることが可能である。本開示では、コンピュータ読み取り可能な信号媒体はベースバンドで伝播されるデータ信号又は搬送波で一部を伝播するデータ信号を含んでもよく、その中にコンピュータ読み取り可能なプログラムコードを搭載した。このように伝播されるデータ信号は多種の形式を採用してもよく、電磁信号、光信号又はそれらの任意の適切な組み合わせを含むが、それらに限らない。コンピュータ読み取り可能な信号媒体は更にコンピュータ読み取り可能な記憶媒体以外の任意のコンピュータ読み取り可能な媒体であってもよく、当該コンピュータ読み取り可能な信号媒体は命令実行システム、装置又はデバイスに使用される又はそれらと組み合わせて使用されるプログラムを送信、伝播又は伝送することができる。コンピュータ読み取り可能な媒体に含まれるプログラムコードは任意の適切な媒体で伝送可能であり、電線、光ケーブル、RF(ラジオ周波数)など又はそれらの任意の適切な組み合わせを含んでもよいが、それらに限らない。
【0103】
いくつかの実施形態において、クライアント、サーバは、HTTP(HyperText Transfer Protocol、ハイパーテキスト転送プロトコル)などの任意の現在既知又は将来開発されるネットワークプロトコルを用いて通信することができ、且つ任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)と相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、インターネット(例えば、インターネット)、及びエンドツーエンドネットワーク(例えば、ad hocエンドツーエンドネットワーク)、並びに現在既知又は将来開発される任意のネットワークを含む。
【0104】
上記コンピュータ読み取り可能な媒体は上記電子機器に含まれるものであってもよいし、当該電子機器に実装されずに、単独に存在するものであってもよい。
【0105】
上記コンピュータ読み取り可能な媒体は、1つ又は複数のプログラムを担持しており、上記1つ又は複数のプログラムが当該電子機器によって実行されると、当該電子機器に、ベースラインにおける複数の監視待ちタスクを決定することと、前記複数の監視待ちタスク間の依存関係に基づき、循環依存関係を有する第1の監視待ちタスクが存在するか否かを決定することと、ここで、循環依存関係は、前記第1の監視待ちタスク間が相互に依存することを指し、前記監視待ちタスクの各々の検証待ちタスクインスタンスを決定することと、ここで、循環依存関係を有する前記第1の監視待ちタスクが存在する場合、保障タスクではない前記第1の監視待ちタスクに対して、前記循環依存関係と、前記第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、前記第1の監視待ちタスクの前記検証待ちタスクインスタンスを決定し、前記保障タスクではない第2の監視待ちタスクに対して、前記第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、前記第2の監視待ちタスクの前記検証待ちタスクインスタンスを決定し、ここで、前記第2の監視待ちタスクは、前記第1の監視待ちタスク以外の監視待ちタスクであり、前記保障タスクは、ユーザが前記ベースラインに加えるタスクであり、前記監視待ちタスクの各々に対して、当該監視待ちタスクの前記検証待ちタスクインスタンスに基づき、前記ベースラインを監視することと、を実行させる。
【0106】
本開示の操作を実行するためのコンピュータプログラムコードは1種又は多種のプログラミング言語又はそれらの組み合わせを用いて書くことが可能であり、上記プログラミング言語はオブジェクト指向のプログラミング言語、例えばJava(登録商標)、Smalltalk(登録商標)、C++を含み、更に一般の過程型プログラミング言語、例えば「C」言語又は類似的なプログラミング言語を含むが、それらに限らない。プログラムコードは完全にユーザコンピュータで実行したり、部分的にユーザコンピュータで実行したり、独立したソフトウェアパッケージとして実行したり、一部をユーザコンピュータで一部をリモートコンピュータで実行したり、完全にリモートコンピュータ又はサーバで実行したりすることができる。リモートコンピュータの場合に、リモートコンピュータはローカルエリアネットワーク(LAN)又は広域ネットワーク(WAN)を含む任意の種類のネットワークによってユーザコンピュータに接続でき、又は、外部コンピュータに接続できる(例えば、インターネットサービスプロバイダーを用いてインターネット経由で接続する)。
【0107】
添付図面のうちフローチャート及びブロック図は、本開示の各種の実施例に係るシステム、方法及びコンピュータプログラム製品の実現可能なシステムアーキテクチャ、機能及び操作を示す。この点では、フローチャート又はブロック図における各ブロックは1つのモジュール、プログラムセグメント又はコードの一部分を代表することができ、当該モジュール、プログラムセグメント又はコードの一部分は所定の論理機能を実現するための1つ又は複数の実行可能命令を含む。なお、いくつかの置換としての実現では、ブロックに表記される機能は図面に付したものと異なる順序で実現してもよい。例えば、二つの連続的に示されたブロックは、実質的に並行に実行してもよく、また、それらは、係る機能によって、逆の順序で実行してもよい場合がある。注意すべきことは、ブロック図及び/又はフローチャートにおける各ブロック、及びブロック図及び/又はフローチャートにおけるブロックの組み合わせは、所定の機能又は操作を実行するハードウェアに基づく専用システムによって実現してもよいし、又は専用ハードウェアとコンピュータ命令との組み合わせによって実現してもよいことである。
【0108】
本開示の実施例に係るモジュールはソフトウェアで実現してもよいし、ハードウェアで実現してもよい。ここで、モジュールの名称は当該モジュール自身を限定するものではない。例えば、監視待ちタスク決定モジュールは、「決定モジュール」と記述してもよい。
【0109】
本明細書で上述された機能は、少なくとも部分的に1つ又は複数のハードウェア論理部材によって実行され得る。例えば、使用可能な例示的なハードウェア論理部材は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックスプログラマブル論理装置(CPLD)などを含むが、それらに限らない。
【0110】
本開示において、機械読み取り可能な媒体は、有形媒体であってもよく、命令実行システム、装置、又はデバイスによって使用され、又は命令実行システム、装置、又はデバイスと組み合わせて使用されるプログラムを含み、又は記憶することができる。機械読み取り可能な媒体は、機械読み取り可能な信号媒体又は機械読み取り可能な記憶媒体であり得る。機械読み取り可能な媒体は、電子的、磁気的、光学的、電磁的、赤外線、又は半導体システム、装置、もしくはデバイス、又は上記の任意の好適な組み合わせを含み得るが、それらに限らない。機械読み取り可能な記憶媒体のより具体的な例は、1つ又は複数の配線に基づく電気接続、携帯型コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブル・リードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバ、コンパクトディスク・リードオンリーメモリ(CD-ROM)、光記憶装置、磁気記憶装置、又はそれらの任意の適切な組み合わせを含む。
【0111】
本開示の1つ又は複数の実施例によれば、例1は、ベースラインにおける複数の監視待ちタスクを決定することと、前記複数の監視待ちタスク間の依存関係に基づき、循環依存関係を有する第1の監視待ちタスクが存在するか否かを決定することであって、循環依存関係は、前記第1の監視待ちタスク間が相互に依存することを指すことと、前記監視待ちタスクの各々の検証待ちタスクインスタンスを決定し、ここで、循環依存関係を有する前記第1の監視待ちタスクが存在する場合、保障タスクではない前記第1の監視待ちタスクに対して、前記循環依存関係と、前記第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、前記第1の監視待ちタスクの前記検証待ちタスクインスタンスを決定し、前記保障タスクではない第2の監視待ちタスクに対して、前記第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、前記第2の監視待ちタスクの前記検証待ちタスクインスタンスを決定することであって、前記第2の監視待ちタスクは、前記第1の監視待ちタスク以外の監視待ちタスクであり、前記保障タスクは、ユーザが前記ベースラインに加えるタスクであることと、前記監視待ちタスクの各々に対して、当該監視待ちタスクの前記検証待ちタスクインスタンスに基づき、前記ベースラインを監視することとを含むベースライン監視方法を提供する。
【0112】
本開示の1つ又は複数の実施例によれば、例2は、例1の方法を提供し、前述した、前記循環依存関係と、前記第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、前記第1の監視待ちタスクの前記検証待ちタスクインスタンスを決定することは、前記第1の監視待ちタスクが依存するその上流の第1の監視待ちタスクの第1のタスクインスタンスと、当該上流の第1の監視待ちタスクが前記第1の監視待ちタスクの下流とされる場合における前記第1の監視待ちタスクとの間の依存オフセットのオフセット情報とに基づき、前記第1の監視待ちタスクの依存される第2のタスクインスタンスを決定することであって、依存オフセットとは、1つの監視待ちタスクが、別の監視待ちタスクの履歴実行状況に依存することを意味することと、前記第2のタスクインスタンスと、前記第1の監視待ちタスクのその下流の監視待ちタスクに依存されるタスクインスタンスとに基づき、前記第1の監視待ちタスクの依存される最新のタスクインスタンスを決定し、当該最新のタスクインスタンスを前記第1の監視待ちタスクの前記検証待ちタスクインスタンスとして決定することとを含む。
【0113】
本開示の1つ又は複数の実施例によれば、例3は、例1の方法を提供し、前述した、前記第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、前記第2の監視待ちタスクの前記検証待ちタスクインスタンスを決定することは、前記第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存オフセットのオフセット情報に基づき、前記第2の監視待ちタスクの依存される最新のタスクインスタンスを決定し、当該最新のタスクインスタンスを前記第2の監視待ちタスクの前記検証待ちタスクインスタンスとすることを含む。
【0114】
本開示の1つ又は複数の実施例によれば、例4は、例1の方法を提供し、前述した、前記監視待ちタスクの各々の検証待ちタスクインスタンスを決定することは、保障タスクである前記監視待ちタスクに対して、前記監視待ちタスクの最新のタスクインスタンスに基づき、前記監視待ちタスクの前記検証待ちタスクインスタンスを決定することを含む。
【0115】
本開示の1つ又は複数の実施例によれば、例5は、例1の方法を提供し、前記方法は、予め設定されたベースライン承諾時間と早期警報マージン、及び前記複数の監視待ちタスク間の前記依存関係に基づき、前記監視待ちタスクの各々に対応する検証時間情報を決定することをさらに含み、前述した、当該監視待ちタスクの検証待ちタスクインスタンスに基づいて前記ベースラインを監視することは、前記監視待ちタスクに対応する前記検証時間情報が示す時間に、前記監視待ちタスクの前記検証待ちタスクインスタンスの稼動状態を検証することと、検証結果に基づいて、前記ベースラインのベースライン状態を決定して前記ベースラインを監視することとを含む。
【0116】
本開示の1つ又は複数の実施例によれば、例6は、例5の方法を提供し、前記検証時間情報は、早期警報最遅開始時間、承諾最遅開始時間、タスク早期警報完了時間、タスク承諾完了時間を含み、前述した、検証結果に基づいて、前記ベースラインのベースライン状態を決定することは、前記検証結果が、前記タスクインスタンスが前記早期警報最遅開始時間より前に既に稼動を開始し、且つ前記タスク早期警報完了時間より前に成功に稼動したことを表す場合、前記ベースライン状態が安全状態であると決定することと、前記検証結果が、前記タスクインスタンスが前記早期警報最遅開始時間にまだ稼動を開始していないこと、又は、前記タスクインスタンスが前記タスク早期警報完了時間にまだ成功に稼動していないことを表す場合、前記ベースライン状態が早期警報状態であると決定することと、前記検証結果が、前記タスクインスタンスが前記承諾最遅開始時間にまだ稼動を開始していないこと、又は、前記タスクインスタンスが前記タスク承諾完了時間にまだ成功に稼動していないことを表す場合、前記ベースライン状態が断線状態であると決定することとを含む。
【0117】
本開示の1つ又は複数の実施例によれば、例7は、例1の方法を提供し、前記方法は、前記監視待ちタスクの各々に対して、前記監視待ちタスクの前記検証待ちタスクインスタンスの現在のインスタンス状態に基づいて、前記監視待ちタスクのリアルタイムマージンを決定することであって、異なるインスタンス状態にある前記タスクインスタンスは、対応する前記監視待ちタスクのリアルタイムマージンの決定方式が異なることと、前記監視待ちタスクの各々のリアルタイムマージンの最小値に基づいて、前記ベースラインのリアルタイムマージンを決定することと、前記ベースラインのリアルタイムマージンに基づいて、前記ベースラインのベースライン状態を決定することとをさらに含む。
【0118】
本開示の1つ又は複数の実施例によれば、例8は、例7の方法を提供し、前記インスタンス状態は、実行待ち状態、実行中状態、実行失敗状態を含み、前述した、前記監視待ちタスクの検証待ちタスクインスタンスの現在のインスタンス状態に基づいて、前記監視待ちタスクのリアルタイムマージンを決定することは、前記タスクインスタンスの現在の前記インスタンス状態が前記実行待ち状態である場合、現在時間と前記監視待ちタスクのタスク承諾完了時間、予期スケジューリング時間、平均稼動時間長に基づいて、前記監視待ちタスクのリアルタイムマージンを決定することと、前記タスクインスタンスの現在の前記インスタンス状態が前記実行中状態である場合、前記現在時間と前記監視待ちタスクの前記タスク承諾完了時間、実際実行開始時間、前記平均稼動時間長に基づいて、前記監視待ちタスクのリアルタイムマージンを決定することと、前記タスクインスタンスの現在の前記インスタンス状態が前記実行失敗状態である場合、前記現在時間と前記監視待ちタスクの前記タスク承諾完了時間、前記平均稼動時間長に基づいて、前記監視待ちタスクのリアルタイムマージンを決定することとを含む。
【0119】
本開示の1つ又は複数の実施例によれば、例9は、例1の方法を提供し、前記方法は、前記監視待ちタスクの実際稼動時間長が前記監視待ちタスクの平均稼動時間長の所定の割合よりも大きい場合、前記監視待ちタスクが稼動が遅くなるタスクであると決定することをさらに含み、ここで、前記平均稼動時間長が異なると、対応する前記所定の割合が異なる。
【0120】
本開示の1つ又は複数の実施例によれば、例10は、例8又は例9の方法を提供し、前記平均稼動時間長は、前記監視待ちタスクの複数の履歴稼動時間長のうちの最大時間長と最小時間長を除く前記履歴稼動時間長に基づいて決定される。
【0121】
本開示の1つ又は複数の実施例によれば、例11は、ベースラインにおける複数の監視待ちタスクを決定することに用いられるように配置される監視待ちタスク決定モジュールと、前記複数の監視待ちタスク間の依存関係に基づき、循環依存関係を有する第1の監視待ちタスクが存在するか否かを決定することに用いられるように配置される循環依存関係決定モジュールであって、循環依存関係は、前記第1の監視待ちタスク間が相互に依存することを指す循環依存関係決定モジュールと、前記監視待ちタスクの各々の検証待ちタスクインスタンスを決定し、ここで、循環依存関係を有する前記第1の監視待ちタスクが存在する場合、保障タスクではない前記第1の監視待ちタスクに対して、前記循環依存関係と、前記第1の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係とに基づき、前記第1の監視待ちタスクの前記検証待ちタスクインスタンスを決定し、前記保障タスクではない第2の監視待ちタスクに対して、前記第2の監視待ちタスクとその下流の監視待ちタスクとの間の依存関係に基づき、前記第2の監視待ちタスクの前記検証待ちタスクインスタンスを決定することに用いられるように配置されるタスクインスタンス決定モジュールであって、前記第2の監視待ちタスクは、前記第1の監視待ちタスク以外の監視待ちタスクであり、前記保障タスクは、ユーザが前記ベースラインに加えるタスクであるタスクインスタンス決定モジュールと、前記監視待ちタスクの各々に対して、当該監視待ちタスクの前記検証待ちタスクインスタンスに基づき、前記ベースラインを監視することに用いられるように配置される監視モジュールとを含むベースライン監視装置を提供する。
【0122】
本開示の1つ又は複数の実施例によれば、例12は、処理装置によって実行されると、例1~10のいずれか1項に記載の方法のステップを実現させるコンピュータプログラムが記憶されたコンピュータ読み取り可能な媒体を提供する。
【0123】
本開示の1つ又は複数の実施例によれば、例13は、コンピュータプログラムが記憶された記憶装置と、前記記憶装置における前記コンピュータプログラムを実行して例1~10のいずれか1項に記載の方法のステップを実現させる処理装置とを含む電子機器を提供する。
【0124】
本開示の1つ又は複数の実施例によれば、例14は、プロセッサによって実行されると、前記プロセッサに例1~10のいずれか1項に記載の方法のステップを実行させる命令を含むコンピュータプログラムを提供する。
【0125】
本開示の1つ又は複数の実施例によれば、例15は、プロセッサによって実行されると、前記プロセッサに例1~10のいずれか1項に記載の方法のステップを実行させる命令を含むコンピュータプログラム製品を提供する。
【0126】
上述した記述は本開示の好ましい実施例及び適用する技術原理の説明に過ぎない。本開示に係る開示の範囲は、上記技術特徴の特定の組合による技術案に限定されなく、上記開示の構想を逸脱することなく上記技術特徴又はそれと同等な特徴を任意に組み合わせて形成した他の技術案をも含むことは、当業者が理解すべきであるものである。例えば、上記特徴と本開示に開示された(それらに限らない)類似的な機能を有する技術特徴を互いに取り替えて形成した技術案をも含む。
【0127】
また、各操作は、特定の順序で記述されているが、これは、そのような操作が、示されているその特定の順序で、又は順次的な順序で実行されることを求めているものと理解してはいけない。一定の環境では、マルチタスクと並行処理が有利であり得る。同様に、若干の具体的な実現の詳細が上記の記述に含まれているが、それらは、本開示の範囲を制限するものとして解釈してはいけない。単一の実施例に関連して記載されているある特徴は、単一の実施例において組み合わせて実現可能である。逆に、単一の実施例に関連して記載されている各特徴は、複数の実施例において、個別に、又は何らかの適切なサブコンビネーションで実現可能である。
【0128】
本主題は、構造的特徴及び/又は方法論理動作に特有の言語で記述されたが、添付の特許請求の範囲に限定された主題は、必ずしも上記で記述された特定の特徴又は動作に限定されないことを理解すべきである。逆に、上述された特定の特徴及び動作は、特許請求の範囲を実現する例示的な形態に過ぎない。上記実施例における装置について、各モジュールが操作を実行する具体的な方式は、当該方法に関する実施例において詳細に説明されており、ここでは詳細に説明しない。