(57)【要約】      （修正有）【課題】ソフトウエアアプリケーションの連続的な監視を実行するシステム、方法及びコンピュータ可読記憶デバイスを提供する。【解決手段】システム１００において、プロセスモニター１４０は、第１の計算ノード１０２上で、ソフトウエアアプリケーション１２２の第１のインスタンス１６０に関するプロセスステータスデータを生成する。ステータスデータアナライザー１４６は、ソフトウエアアプリケーションの第１のインスタンスのプロセスが実行を停止した事に基づいて、第１のインスタンスを選択的にリスタートする。プロセスモニターチェッカー１４２は、プロセスモニターが実行を停止した事に応じて、プロセスモニターをリスタートする。ピアモニター１５０は、第２の計算ノード１０４でソフトウエアアプリケーションの第２のインスタンス１６２が障害を起こした事に応じて、関連付けられる不完全タスクに基づくアクションを実施する。【選択図】図1
2020115330.tif 000002
【特許請求の範囲】
【請求項１】
プロセスを監視するためのシステム（１００）であって、
ソフトウエアアプリケーション（１２２）の複数のインスタンス（１６０、１６２）を実行するように構成された複数の計算ノード（１０２、１０４、１０６）のうちの第１の計算ノード（１０２）と、第２の計算ノード（１０４）とを備え、前記第１の計算ノード（１０２）が、
前記第１の計算ノード（１０２）で実行される前記ソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）に関するプロセスステータスデータ（１０５）を生成するように構成されたプロセスモニター（１４０）、
前記プロセスステータスデータ（１０５）に基づいて、前記第１の計算ノード（１０２）で前記ソフトウエアアプリケーション（１２２）の前記第１のインスタンス（１６０）の予定プロセス（１０７）が実行を停止したかどうかを決定し、
前記第１の計算ノード（１０２）で前記予定プロセス（１０７）が実行を停止したとの決定に基づいて、前記ソフトウエアアプリケーション（１２２）の前記第１のインスタンス（１６０）を選択的にリスタートする
ように構成されたステータスデータアナライザー（１４６）、
前記第１の計算ノード（１０２）で前記プロセスモニター（１４０）が実行を停止したかどうかを決定し、
前記第１の計算ノード（１０２）で前記プロセスモニター（１４０）が実行を停止したと決定することに応じて前記プロセスモニター（１４０）をリスタートする
ように構成されたプロセスモニターチェッカー（１４２）、及び
前記複数の計算ノード（１０２、１０４、１０６）のうちの前記第２の計算ノード（１０４）で前記ソフトウエアアプリケーション（１２２）の第２のインスタンス（１６２）が障害を起こしたかどうかを決定し、
前記第２の計算ノード（１０４）で前記第２のインスタンス（１６２）が障害を起こしたと決定することに応じて、前記ソフトウエアアプリケーション（１２２）の前記第２のインスタンス（１６２）に関連付けられる不完全タスク（１０９）に基づくアクション（１２８）を実施する
ように構成されたピアモニター（１５０）
を含む、システム。
【請求項２】
前記プロセスモニター（１４０）が、
前記第１の計算ノード（１０２）で前記プロセスモニターチェッカー（１４２）が実行を停止したかどうかを決定し、
前記第１の計算ノード（１０２）で前記プロセスモニターチェッカー（１４２）が実行を停止したと決定することに応じて、前記プロセスモニターチェッカー（１４２）をリスタートする
ように構成されたプロセスモニターチェッカー検証器（１４４）を更に備える、請求項１に記載のシステム（１００）。
【請求項３】
前記第１の計算ノード（１０２）が、
前記第１の計算ノード（１０２）で前記ピアモニター（１５０）が実行を停止したかどうかを決定し、
前記第１の計算ノード（１０２）で前記ピアモニター（１５０）が実行を停止したと決定することに応じて前記ピアモニター（１５０）をリスタートする
ように構成されたピアモニターチェッカー（１５２）を更に備え、
前記ピアモニター（１５０）が随意で、
前記第１の計算ノード（１０２）で前記ピアモニターチェッカー（１５２）が実行を停止したかどうかを決定し、
前記第１の計算ノード（１０２）で前記ピアモニターチェッカー（１５２）が実行を停止したと決定することに応じて前記ピアモニターチェッカー（１５２）をリスタートする
ように構成されたピアモニターチェッカー検証器（１５４）を含む、請求項１又は２に記載のシステム（１００）。
【請求項４】
前記ステータスデータアナライザー（１４６）が、前記第１の計算ノード（１０２）で前記予定プロセス（１０７）が実行を停止したと決定することに応じて、
アプリケーションリスタート判定基準（１１１）が満たされているかどうかを決定し、
前記アプリケーションリスタート判定基準（１１１）が満たされていると決定することに応じて、前記第１の計算ノード（１０２）で前記ソフトウエアアプリケーション（１２２）の前記第１のインスタンス（１６０）をリスタートする
ように構成されており、
前記ステータスデータアナライザー（１４６）は随意で、
前記プロセスステータスデータ（１０５）に基づいて、第１の時間（５１３）に前記第１の計算ノード（１０２）で前記予定プロセス（１０７）が実行されていないとして検出されると決定し、
前記第１の時間（５１３）と、前記第１の計算ノード（１０２）で前記予定プロセス（１０７）が以前にスタートされた時間を示すスタート時間（５１１）との差が時間閾値（５１５）以上であるかどうかを決定し、
前記差が前記時間閾値（５１５）以上であると決定することに応じて、障害カウンタ（５１７）をリセットし、
前記障害カウンタ（５１７）に基づいて、前記アプリケーションリスタート判定基準（１１１）が満たされているかどうかを決定し、
前記障害カウンタ（５１７）が障害数閾値（５１９）以上であるかどうかを決定し、
前記障害カウンタ（５１７）が前記障害数閾値（５１９）未満であると決定することに応じて、前記アプリケーションリスタート判定基準（１１１）が満たされていると決定する
ように構成される、請求項１又は２に記載のシステム（１００）。
【請求項５】
前記ステータスデータアナライザー（１４６）が、前記障害カウンタ（５１７）が前記障害数閾値（５１９）以上であると決定することに応じて、前記アプリケーションリスタート判定基準（１１１）が満たされていないと決定するように構成されている、請求項４に記載のシステム（１００）。
【請求項６】
前記ステータスデータアナライザー（１４６）が、前記アプリケーションリスタート判定基準（１１１）が満たされていないと決定することに応じて、前記第１の計算ノード（１０２）で前記ソフトウエアアプリケーション（１２２）の前記第１のインスタンス（１６０）のリスタートを制止するか、又は前記第１の計算ノード（１０２）で前記プロセスモニター（１４０）、前記プロセスモニターチェッカー（１４２）、及び前記ピアモニター（１５０）の実行を停止するように構成されている、請求項４又は５に記載のシステム（１００）。
【請求項７】
クラスター管理装置（１１０）及び記憶デバイス（１０８）を更に備え、前記ステータスデータアナライザー（１４６）が、前記アプリケーションリスタート判定基準（１１１）が満たされていないと決定することに応じて、第１の通知（１５３）をユーザ装置（１１２）へ送るか、第２の通知（１５１）を前記クラスター管理装置（１１０）へ送るか、第３の通知（１５７）を前記複数の計算ノード（１０２、１０４、１０６）のうちの第３の計算ノード（１０６）へ送るか、前記記憶デバイス（１０８）のログデータ（１３１）を更新して前記第１の計算ノード（１０２）で前記ソフトウエアアプリケーション（１２２）がシャットダウンされていることを示すか、又はこれらの組み合わせを行うように構成されている、請求項４から６のいずれか一項に記載のシステム（１００）。
【請求項８】
ソフトウエアアプリケーション（１２２）の複数のインスタンス（１６０、１６２）を実行するように構成された複数の計算ノード（１０２、１０４、１０６）のうちの第１の計算ノード（１０２）において、前記第１の計算ノード（１０２）で実行中の前記ソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）に関するプロセスステータスデータ（１０５）を生成すること、
前記プロセスステータスデータ（１０５）に基づいて、前記第１の計算ノード（１０２）で前記ソフトウエアアプリケーション（１２２）の前記第１のインスタンス（１６０）の予定プロセス（１０７）が実行を停止したかどうかを決定すること、
前記第１の計算ノード（１０２）で前記予定プロセス（１０７）が実行を停止したとの決定に基づいて、前記第１の計算ノード（１０２）で前記ソフトウエアアプリケーション（１２２）の前記第１のインスタンス（１６０）を選択的にリスタートすること、
前記複数の計算ノード（１０２、１０４、１０６）のうちの第２の計算ノード（１０４）で前記ソフトウエアアプリケーション（１２２）の第２のインスタンス（１６２）が障害を起こしたかどうかを決定すること、及び
前記第２の計算ノード（１０４）で前記第２のインスタンス（１６２）が障害を起こしたと決定することに応じて、前記ソフトウエアアプリケーション（１２２）の前記第２のインスタンス（１６２）に関連付けられる不完全タスク（１０９）に基づくアクション（１２８）を実施すること
を含む方法。
【請求項９】
記憶デバイス（１０８）から前記第２の計算ノード（１０４）に関連付けられるログデータ（１４１）を前記第１の計算ノード（１０２）で受け取ること、及び
前記ログデータ（１４１）に基づいて前記不完全タスク（１０９）を識別すること
を更に含む、請求項８に記載の方法。
【請求項１０】
前記アクション（１２８）を実施することが、不完全タスク（１１５）を元に戻すこと又は前記不完全タスク（１１５）を完了することを含み、随意で前記不完全タスク（１０９）がデータベース更新（１１５）を含み、前記アクション（１２８）が前記データベース更新（１１５）のロールバックを実施すること又は前記データベース更新（１１５）を行うことを含む、請求項８又は９に記載の方法。
【請求項１１】
クラスター管理装置（１１０）からクラスタープロセスデータ（１４３）を受け取ること、
前記クラスタープロセスデータ（１４３）に基づいて、前記ソフトウエアアプリケーション（１２２）の前記第２のインスタンス（１６２）が前記第２の計算ノード（１０４）で障害を起こしたと決定すること
を更に含み、
前記方法が随意で、
前記第２の計算ノード（１０４）で前記ソフトウエアアプリケーション（１２２）の前記第２のインスタンス（１６２）の第２の予定プロセス（１１３）が実行を停止したことを前記クラスタープロセスデータ（１４３）が示すと決定することに応じて、前記第２の計算ノード（１０４）で前記ソフトウエアアプリケーション（１２２）の前記第２のインスタンス（１６２）が障害を起こしたと決定すること
を更に含む、請求項８から１０のいずれか一項に記載の方法。
【請求項１２】
記憶デバイス（１０８）から、前記第２の計算ノード（１０４）に関連付けられるログデータ（１４１）を前記第１の計算ノード（１０２）で受け取ること、及び
前記第２の計算ノード（１０４）で前記ソフトウエアアプリケーション（１２２）がシャットダウンされていることを前記ログデータ（１４１）が示すと決定することに応じて、前記第２の計算ノード（１０４）で前記ソフトウエアアプリケーション（１２２）の前記第２のインスタンス（１６２）が障害を起こしたと決定すること
を更に含む、請求項８から１１のいずれか一項に記載の方法。
【請求項１３】
命令を記憶するコンピュータ可読記憶デバイス（１３２）であって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
ソフトウエアアプリケーション（１２２）の複数のインスタンス（１６０、１６２）を実行するように構成された複数の計算ノード（１０２、１０４、１０６）のうちの第１の計算ノード（１０２）において、前記第１の計算ノード（１０２）で実行中の前記ソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）に関するプロセスステータスデータ（１０５）を生成すること、
前記プロセスステータスデータ（１０５）に基づいて、前記第１の計算ノード（１０２）で前記ソフトウエアアプリケーション（１２２）の前記第１のインスタンス（１６０）の予定プロセス（１０７）が実行を停止したかどうかを決定すること、
前記第１の計算ノード（１０２）で前記予定プロセス（１０７）が実行を停止したとの決定に基づいて、前記第１の計算ノード（１０２）で前記ソフトウエアアプリケーション（１２２）の前記第１のインスタンス（１６０）を選択的にリスタートすること、
前記複数の計算ノード（１０２、１０４、１０６）のうちの第２の計算ノード（１０４）で前記ソフトウエアアプリケーション（１２２）の第２のインスタンス（１６２）が障害を起こしたかどうかを決定すること、及び
前記第２の計算ノード（１０４）で前記第２のインスタンス（１６２）が障害を起こしたと決定することに応じて、前記ソフトウエアアプリケーション（１２２）の前記第２のインスタンス（１６２）に関連付けられる不完全タスク（１０９）に基づくアクション（１２８）を実施すること
を含む動作を実施させる、コンピュータ可読記憶デバイス（１３２）。
【請求項１４】
前記動作が、前記第２の計算ノード（１０４）で前記第２のインスタンス（１６２）が障害を起こしたと決定することに応じて、
前記第１の計算ノード（１０２）からクラスター管理装置（１１０）へ、前記第２の計算ノード（１０４）で前記第２のインスタンス（１６２）が障害を起こしたことを示す通知（１５１）を送ること、及び
前記クラスター管理装置（１１０）から、前記不完全タスク（１０９）の割り当て（１４５）を前記第１の計算ノード（１０２）で受け取ることであって、前記割り当て（１４５）を受け取ることに応じて前記アクション（１２８）が実施される、受け取ること
を更に含み、随意で前記動作が、
前記クラスター管理装置（１１０）から前記割り当て（１４５）を受け取ることに応じて、前記第２の計算ノード（１０４）に関連付けられるログデータ（１４１）に関するリクエスト（１６１）を記憶デバイス（１０８）へ送ること、及び
前記ログデータ（１４１）に基づいて前記不完全タスク（１０９）を識別すること
を更に含む、請求項１３に記載のコンピュータ可読記憶デバイス（１３２）。
【請求項１５】
前記動作が、前記第２の計算ノード（１０４）で前記第２のインスタンス（１６２）が障害を起こしたと決定することに応じて、前記第１の計算ノード（１０２）の前記プロセスステータスデータ（１０５）を前記クラスター管理装置（１１０）へ送ることを更に含み、前記クラスター管理装置（１１０）へ送られた前記通知（１５１）が、前記第２のプロセスデータ（１６５）に関するリクエスト（１６３）を前記クラスター管理装置（１１０）から前記複数の計算ノード（１０２、１０４、１０６）のうちの第３の計算ノード（１０６）へ送ることを開始し、前記割り当て（１４５）が前記プロセスステータスデータ（１０５）と前記第２のプロセスステータスデータ（１６５）とに基づいている、請求項１３又は１４に記載のコンピュータ可読記憶デバイス（１３２）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、ソフトウエアアプリケーションプロセスの監視に関する。
【背景技術】
【０００２】
計算サーバは、サービスを提供するためのソフトウエアアプリケーションを実行することができる。ソフトウエアアプリケーションは、スタックオーバーフロー、ネットワークや電力の供給停止、又はその他予期しない途絶といった様々な理由により停止し得る。ソフトウエアアプリケーションの停止と、ソフトウエアアプリケーションが停止したとシステムアドミニストレータが決定することの間には遅延が生じ得る。システムアドミニストレータがソフトウエアアプリケーションの停止を検出することとシステムアドミニストレータがソフトウエアアプリケーションをリスタートすることの間にも遅延が生じ得る。ソフトウエアアプリケーションのリスタートの遅延は、サービスが利用不能となるダウンタイムを延長する。システムアドミニストレータによるソフトウエアアプリケーションの連続的な監視は、不便で費用のかかるものであり得る。
【発明の概要】
【０００３】
特定の一実装態様において、プロセスを監視するためのシステムは、ソフトウエアアプリケーションの複数のインスタンスを実行するように構成された複数の計算ノードのうちの第１の計算ノードを含む。システムは、複数の計算ノードのうちの第２の計算ノードも含む。第１の計算ノードは、プロセスモニター、ステータスデータアナライザー、プロセスモニターチェッカー、及びピアモニターを含む。プロセスモニターは、第１の計算ノードで実行されるソフトウエアアプリケーションの第１のインスタンスに関するプロセスステータスデータを生成するように構成される。ステータスデータアナライザーは、プロセスステータスデータに基づいて、第１の計算ノードでソフトウエアアプリケーションの第１のインスタンスの予定プロセスが実行を停止したかどうかを決定するように構成される。ステータスデータアナライザーは、第１の計算ノードで予定プロセスが実行を停止したとの決定に基づいて、ソフトウエアアプリケーションの第１のインスタンスを選択的にリスタートするように構成される。プロセスモニターチェッカーは、第１の計算ノードでプロセスモニターが実行されているかどうかを決定するように構成される。プロセスモニターチェッカーはまた、第１の計算ノードでプロセスモニターが実行を停止したと決定することに応じて、プロセスモニターをリスタートするように構成される。ピアモニターは、複数の計算ノードのうちの第２の計算ノードでソフトウエアアプリケーションの第２のインスタンスが障害を起こしたかどうかを決定するように構成される。ピアモニターはまた、第２の計算ノードで第２のインスタンスが障害を起こしたと決定することに応じて、ソフトウエアアプリケーションの第２のインスタンスに関連付けられる不完全タスクに基づくアクションを実施するように構成される。
【０００４】
別の特定の実装態様では、プロセスを監視する方法は、ソフトウエアアプリケーションの複数のインスタンスを実行するように構成された複数の計算ノードのうちの第１の計算ノードにおいて、第１の計算ノードで実行されるソフトウエアアプリケーションの第１のインスタンスに関するプロセスステータスデータを生成することを含む。方法は、プロセスステータスデータに基づいて、第１の計算ノードでソフトウエアアプリケーションの第１のインスタンスの予定プロセスが実行を停止したかどうかを決定することも含む。方法は更に、第１の計算ノードで予定プロセスが実行を停止したとの決定に基づいて、第１の計算ノードでソフトウエアアプリケーションの第１のインスタンスを選択的にリスタートすることを含む。方法は、複数の計算ノードのうちの第２の計算ノードでソフトウエアアプリケーションの第２のインスタンスが障害を起こしたかどうかを決定することも含む。方法は更に、第２の計算ノードで第２のインスタンスが障害を起こしたと決定することに応じて、ソフトウエアアプリケーションの第２のインスタンスに関連付けられる不完全タスクに基づくアクションを実施することを含む。
【０００５】
別の特定の実装態様では、コンピュータ可読記憶デバイスは、プロセッサによって実行されると、プロセッサに、ソフトウエアアプリケーションの複数のインスタンスを実行するように構成された複数の計算ノードのうちの第１の計算ノードにおいて、第１の計算ノードで実行されるソフトウエアアプリケーションの第１のインスタンスに関するプロセスステータスデータを生成することを含む動作を実施させる命令を記憶する。前記動作は、プロセスステータスデータに基づいて、第１の計算ノードでソフトウエアアプリケーションの第１のインスタンスの予定プロセスが実行を停止したかどうかを決定することも含む。前記動作は更に、第１の計算ノードで予定プロセスが実行を停止したとの決定に基づいて、第１の計算ノードでソフトウエアアプリケーションの第１のインスタンスを選択的にリスタートすることを含む。前記動作は、複数の計算ノードのうちの第２の計算ノードでソフトウエアアプリケーションの第２のインスタンスが障害を起こしたかどうかを決定することも含む。前記動作は更に、第２の計算ノードで第２のインスタンスが障害を起こしたと決定することに応じて、ソフトウエアアプリケーションの第２のインスタンスに関連付けられる不完全タスクに基づくアクションを実施することを含む。
【０００６】
ここに記載された特徴、機能、及び利点は、様々な実行形態において単独で実現することが可能であるか、又は他の実行形態において組み合わせることが可能であり、これらの更なる詳細は、以下の記載及び添図面を参照して理解される。
【図面の簡単な説明】
【０００７】
【図１】ソフトウエアアプリケーションのプロセスの監視を実施するように動作可能なシステムを示すブロック図である。
【図２】ソフトウエアアプリケーションのプロセスの監視方法の一実施例を示すフロー図である。
【図３】ソフトウエアアプリケーションのプロセスの監視方法の一実施例を示すフロー図である。
【図４】ソフトウエアアプリケーションのプロセスの監視方法の一実施例を示すフロー図である。
【図５Ａ】図１のシステムのステータスデータアナライザー及びメモリの一実施例を示す線図である。
【図５Ｂ】図１のシステムのステータスデータアナライザーによって実施される方法の一実施例を示すフロー図である。
【図６】ソフトウエアアプリケーションのプロセスの監視方法の一実施例を示すフロー図である。
【図７】ソフトウエアアプリケーションのプロセスの監視方法の一実施例を示すフロー図である。
【図８】本開示によるコンピュータで実施可能な方法及びコンピュータで実行可能なプログラム命令（又はコード）の態様を支持するように構成されたコンピューティング装置を含む演算環境を示すブロック図である。
【発明を実施するための形態】
【０００８】
ここに記載される実装態様は、ソフトウエアアプリケーションのプロセスの監視を目的としている。例えば、システムは、ソフトウエアアプリケーションの複数のインスタンスを実行するように構成された複数の計算ノードを含む。例えば、第１の計算ノードは、ソフトウエアアプリケーションの第１のインスタンスを実行するように構成されており、第２の計算ノードは、ソフトウエアアプリケーションの第２のインスタンスを実行するように構成されている。複数の計算ノードの各々は、ソフトウエアアプリケーションがノードで予定通り実行されているかどうかを監視するように構成されたサービスグループを含む。例えば、第１の計算ノードのサービスグループは、プロセスモニター、プロセスモニターチェッカー、又は両方を含む。プロセスモニターは、第１の計算ノードで実行されているソフトウエアアプリケーションのプロセスを示すプロセスステータスデータを生成する。プロセスモニターは、第１の計算ノードのステータスデータアナライザーにプロセスステータスデータを提供する。プロセスモニターチェッカーは、第１の計算ノードでプロセスモニターが実行を停止したと決定することに応じて、プロセスモニターをリスタートする。
【０００９】
サービスグループの一又は複数の構成要素は、サービスグループの一又は複数の他の構成要素を監視するように構成される。特定の一実施例では、プロセスモニターとプロセスモニターチェッカーは、互いを監視するように構成される。具体的には、プロセスモニターは、第１の計算ノードでプロセスモニターチェッカーが実行されていない（例えば、実行を停止した）との決定に応答してプロセスモニターチェッカーをリスタートし、プロセスモニターチェッカーは、第１の計算ノードでプロセスモニターが実行されていない（例えば、実行を停止した）と決定することに応じてプロセスモニターをリスタートする。この実施例では、実行されていない（例えば、実行を停止した）プロセスモニター又はプロセスモニターチェッカーのいずれか一方を、プロセスモニター又はプロセスモニターチェッカーの他方によってリスタートすることができる。このようにして、サービスグループは、第１の計算ノードにおいてプロセスの厳重な監視を提供するために、複数レベルのチェックを提供する。
【００１０】
ステータスデータアナライザーは、プロセスステータスデータの解析に基づいて、通知の生成、ソフトウエアアプリケーションのリスタート、ソフトウエアアプリケーションのプロセスのリスタート、ソフトウエアアプリケーションのリスタートの制止、サービスグループのシャットダウン、ログデータの更新、一時ファイルのクリーンアップ、又はこれらの組み合わせといった一又は複数のアクションを実施するように構成される。ステータスデータアナライザーは、監視すべきプロセスのリストにアクセスを有する。具体的には、監視対象プロセスは、ソフトウエアアプリケーションが正常に動いているときに実行されることが予定される。ステータスデータアナライザーは、予定プロセスが実行を停止したことをプロセスステータスデータが示していると決定することに応じて、一又は複数のアクションを実施する。いくつかの実施例では、ステータスデータアナライザーは、異なるタイプの予定プロセスに関する異なるアクションを実施する。特定の一実施例では、ステータスデータアナライザーは、第１のプロセスタイプの第１の予定プロセスが実行されていない（例えば、実行を停止した）と決定することに応じて、ソフトウエアアプリケーションの第１のインスタンスをリスタートする。別の実施例として、ステータスデータアナライザーは、第２のプロセスタイプの第２の予定プロセスが実行されていない（例えば、実行を停止した）と決定することに応じて、第２の予定プロセスをスタート（又はリスタート）する。このようにして、ステータスデータアナライザーは、ソフトウエアアプリケーションの第１のインスタンスに関連付けられるダウンタイムを短縮する。
【００１１】
複数の計算ノードのいくつかは、ソフトウエアアプリケーションが他のノードで予定通り実行されているかどうかを監視するように構成されたピアアラートサービスグループも含む。ピアアラートサービスグループは、ピアモニター、ピアモニターチェッカー、又は両方を含む。ピアモニターは、複数の計算ノードで実行されているソフトウエアアプリケーションのプロセスを示すクラスタープロセスデータにアクセスする。一実施例において、第１の計算ノードはピアアラートサービスグループを含み、ピアモニターは第１の計算ノードのステータスデータアナライザーにクラスタープロセスデータを提供する。ピアモニターチェッカーは、第１の計算ノードでピアモニターが実行されていない（例えば、実行を停止した）と決定することに応じて、ピアモニターをリスタートする。
【００１２】
ピアアラートサービスグループの一又は複数の構成要素は、ピアアラートサービスグループの一又は複数の構成要素を監視するように構成される。特定の一実施例では、ピアモニターとピアモニターチェッカーは、互いを監視するように構成される。具体的には、ピアモニターは、第１の計算ノードでピアモニターチェッカーが実行されていない（例えば、実行を停止した）と決定することに応じてピアモニターチェッカーをリスタートし、ピアモニターチェッカーは、第１の計算ノードでピアモニターが実行されていない（例えば、実行を停止した）と決定することに応じてピアモニターをリスタートする。この実施例では、実行されていない（例えば、実行を停止した）ピアモニター又はピアモニターチェッカーのいずれか一方を、ピアモニター又はピアモニターチェッカーの他方によってリスタートすることができる。このようにして、ピアアラートサービスグループは、複数の計算ノードにおいてプロセスの厳重な監視を提供するために、複数レベルのチェックを提供する。
【００１３】
ピアモニターは、クラスタープロセスデータの解析に基づいて、クラスター管理装置、一又は複数の他の計算ノード、又はこれらの組み合わせに通知するように構成される。例えば、ピアモニターは、第２の計算ノードでソフトウエアアプリケーションの第２のインスタンスが障害を起こしたことをクラスタープロセスデータが示していると決定することに応じて、クラスター管理装置、一又は複数の他の計算ノード、又はこれらの組み合わせに通知する。ピアモニター（又はクラスター管理装置）は、ソフトウエアアプリケーションの第２のインスタンスに関連付けられるいずれかの不完全タスクに対処する計算ノードを指定する。例えば、ピアモニター（又はクラスター管理装置）は、クラスタープロセスデータに基づいて、第１の計算ノードが、ソフトウエアアプリケーションのアクティブな（例えば、障害を起こしていない）インスタンスを有する複数の計算ノードのなかで最も少ない実行中のプロセスを有していることを識別する。ピアモニター（又はクラスター管理装置）は、第１の計算ノードを、最も少ないプロセスを実行しているものと識別することに応じて、ソフトウエアアプリケーションの第２のインスタンスに関連付けられるいずれかの不完全タスクに対処する第１の計算ノードを指定する。
【００１４】
ピアモニターは、第１の計算ノードが指定されていると決定することに応じて、第２のノードに関連付けられるログデータにアクセスする。例えば、システムは、複数の計算ノードに関するログデータを維持する記憶デバイス（例えば、ネットワーク記憶デバイス又は他の共用ストレージ）を含む。ピアモニターは、ログデータに基づいて一又は複数の不完全タスクを識別する。ピアモニターは、不完全タスクに関連付けられるアクションを実施する。例えば、ピアモニターは、不完全タスクを元に戻す（例えば、不完全なデータベース更新をロールバックする）か、又は不完全タスクを完了する（例えば、データベース更新を行う）。このようにして、ピアモニターは、計算ノードがソフトウエアアプリケーションの有効状態に到達することを可能にする。
【００１５】
図１は、ソフトウエアアプリケーションのプロセスを監視するように動作可能なシステム１００のブロック図である。システム１００は複数の計算ノードを含んでいる。例えば、システム１００は、ネットワーク１９０を介して計算ノード１０４、計算ノード１０６、記憶デバイス１０８、クラスター管理装置１１０、装置１１２、又はこれらの組み合わせに連結された計算ノード１０２を含んでいる。特定の一態様において、クラスター管理装置１１０は、物理装置、仮想装置、計算ノード１０２で実行されるプロセス、計算ノード１０４で実行されるプロセス、計算ノード１０６で実行されるプロセス、又はこれらの組み合わせを含む。特定の一態様において、計算ノード１０２、計算ノード１０４、又は計算ノード１０６は、クラスター管理装置１１０を含む。例えば、計算ノード１０２、計算ノード１０４、又は計算ノード１０６の一つは、クラスター管理装置１１０として指定される。
【００１６】
三つの計算ノードを含むシステム１００が一実施例として記載されることを理解されたい。他の実施例では、システム１００は、三つより少ない計算ノード又は三つより多い計算ノードを含むことができる。特定の一態様において、システム１００の計算ノードの数は、様々な計算ノードがネットワーク１９０のカバーエリアに出入りするにつれて動的に変化する。計算ノード１０２、計算ノード１０４、計算ノード１０６、及び装置１１２のうちの一又は複数は、一実施例として、ユーザ装置、モバイル機器、固定位置デバイス、通信装置、コンピューティング装置、サーバ、デスクトップ、ネットワークノード、仮想装置、又はこれらの組み合わせを含む。特定の一態様において、装置１１２は、自動装置、移動ロボット、移動ロボットプラットフォーム、又はこれらの組み合わせを含む。
【００１７】
ネットワーク１９０は、有線ネットワーク、無線ネットワーク、又は両方を含む。記憶デバイス１０８は、一実施例として、ネットワーク記憶デバイス、共用記憶デバイス、分散記憶システム、データサーバ、又はこれらの組み合わせを含む。クラスター管理装置１１０は、一実施例として、サーバ、モバイル機器、固定位置デバイス、通信装置、コンピューティング装置、デスクトップ、ネットワークノード、仮想装置、又はこれらの組み合わせを含む。クラスター管理装置１１０は、クラスター管理アプリケーションを実行するように構成される。クラスター管理アプリケーションは、計算ノード１０２、計算ノード１０４、及び計算ノード１０６のうちの一又は複数で実行されているプロセスのステータスを示すクラスタープロセスデータ１４３を生成するように構成される。
【００１８】
計算ノード１０２は、プロセッサ１３４に連結されたメモリ１３２を含む。プロセッサ１３４は、シングルコアプロセッサ又はマルチコアプロセッサを含む。特定の一態様において、プロセッサ１３４は複数のプロセッサを含む。特定の一態様において、プロセッサ１３４は、マルチスレッドのプログラム実行を実施するように構成される。例えば、シングルコアプロセッサは、複数のスレッドの命令の実行をインターリーブすることによりマルチスレッドのプログラムの実行を実施するように見えるように構成される。マルチコアプロセッサは、複数のスレッドを同時に実行するように構成される。特定の一態様において、プロセッサ１３４は、ソフトウエアアプリケーション１２２の第１のインスタンス１６０を実行するように構成されるアプリケーションサーバを含む。
【００１９】
計算ノード１０２は、プロセスモニター１４０、プロセスモニターチェッカー１４２、又はこれらの組み合わせを含むサービスグループを含む。プロセスモニター１４０は、プロセスモニターチェッカー検証器１４４を含む。プロセスモニター１４０は、プロセッサ１３４で実行されているプロセス１２４を示すプロセスステータスデータ１０５を生成する（例えば、プロセスステータス（ｐｓ）コマンドを実行することにより）ように構成される。特定の一態様において、プロセスステータスデータ１０５は、プロセス１２４で実行されているソフトウエアアプリケーション１２２の第１のインスタンス１６０に関連付けられるプロセス１２４のサブセットのステータスを示す。プロセスモニターチェッカー１４２は、計算ノード１０２でプロセスモニター１４０が実行されているかどうかを決定するように構成される。プロセスモニターチェッカー１４２は、計算ノード１０２でプロセスモニター１４０が実行されていないと決定することに応じて、プロセスモニター１４０をスタート（例えば、リスタート）するように構成される。特定の一態様において、プロセスモニターチェッカー１４２は、計算ノード１０２でプロセスモニター１４０が実行を停止したかどうかを決定するように構成される。例えば、プロセスモニターチェッカー１４２は、プロセスモニター１４０が、計算ノード１０２で以前に実行されていたが今は実行されていないかどうかを決定するように構成される。このような態様では、プロセスモニターチェッカー１４２は、計算ノード１０２でプロセスモニター１４０が実行を停止したと決定することに応じて、プロセスモニター１４０をリスタートするように構成される。
【００２０】
プロセスモニターチェッカー検証器１４４は、計算ノード１０２でプロセスモニターチェッカー１４２が実行されているかどうかを決定するように構成される。プロセスモニターチェッカー検証器１４４は、計算ノード１０２でプロセスモニターチェッカー１４２が実行されていないと決定することに応じて、プロセスモニターチェッカー１４２をスタート（例えば、リスタート）するように構成される。特定の一態様において、プロセスモニターチェッカー検証器１４４は、計算ノード１０２でプロセスモニターチェッカー１４２が実行を停止したかどうかを決定するように構成される。例えば、プロセスモニターチェッカー検証器１４４は、プロセスモニターチェッカー１４２が、計算ノード１０２で以前に実行されていたが今は実行されていないかどうかを決定するように構成される。このような態様では、プロセスモニターチェッカー検証器１４４は、計算ノード１０２でプロセスモニターチェッカー１４２が実行を停止したと決定することに応じて、プロセスモニターチェッカー１４２をリスタートするように構成される。このようにして、プロセスモニターチェッカー１４２及びプロセスモニター１４０は、互いを監視するように構成される。
【００２１】
二つのレベルのチェック（例えば、プロセスモニター１４０及びプロセスモニターチェッカー１４２）を含むサービスグループが一実施例として記載されていることを理解されたい。他の実施例では、サービスグループは、サービスグループの一又は複数の他の構成要素を監視するサービスグループの一又は複数の構成要素を用いて三つ以上のレベルのチェックを含む。
【００２２】
計算ノード１０２は、ステータスデータアナライザー１４６を含む。ステータスデータアナライザー１４６は、プロセスステータスデータ１０５の解析に基づいて、一又は複数のアクション、例えば、通知の生成、ソフトウエアアプリケーション１２２の第１のインスタンス１６０のリスタート、ソフトウエアアプリケーション１２２のプロセスのスタート、ソフトウエアアプリケーション１２２の第１のインスタンス１６０のリスタートの制止、サービスグループ（例えば、プロセスモニター１４０、プロセスモニターチェッカー１４２、又は両方）のシャットダウン、ログデータの更新１３１、又はこれらの組み合わせを実施するように構成される。
【００２３】
特定の一実装態様において、計算ノード１０２はピアアラートサービスグループを含む。ピアアラートサービスグループは、ピアモニター１５０、ピアモニターチェッカー１５２、又は両方を含む。ピアモニター１５０はピアモニターチェッカー検証器１５４を含む。ピアモニター１５０は、クラスター管理装置１１０からクラスタープロセスデータ１４３を受け取るように構成される。ピアモニターチェッカー１５２は、計算ノード１０２でピアモニター１５０が実行されていないと決定することに応じて、ピアモニター１５０をスタート（例えば、リスタート）するように構成される。ピアモニターチェッカー検証器１５４は、計算ノード１０２でピアモニターチェッカー１５２が実行されていないと決定することに応じて、ピアモニターチェッカー１５２をスタート（例えば、リスタート）するように構成される。特定の一態様において、ピアモニターチェッカー１５２は、計算ノード１０２でピアモニター１５０が実行を停止したと決定することに応じて、ピアモニター１５０をリスタートするように構成される。ピアモニターチェッカー検証器１５４は、計算ノード１０２でピアモニターチェッカー１５２が実行を停止したと決定することに応じて、ピアモニターチェッカー１５２をリスタートするように構成される。このようにして、ピアモニターチェッカー１５２及びピアモニター１５０は、互いを監視するように構成される。
【００２４】
二つのレベルのチェック（例えば、ピアモニター１５０及びピアモニターチェッカー１５２）を含むピアアラートサービスグループが一実施例として記載されていることを理解されたい。他の実施例では、ピアアラートサービスグループは、ピアアラートサービスグループの一又は複数の他の構成要素を監視するピアアラートサービスグループの一又は複数の構成要素を用いて三つ以上のレベルのチェックを含む。
【００２５】
ピアモニター１５０は、クラスタープロセスデータ１４３の解析に基づいて、計算ノード１０４でソフトウエアアプリケーション１２２の第２のインスタンス１６２が障害を起こたかどうかを決定するように構成される。ピアモニター１５０は、計算ノード１０４でソフトウエアアプリケーション１２２の第２のインスタンス１６２が障害を起こしたと決定することに応じて、クラスター管理装置１１０、一又は複数の他の計算ノード、又はこれらの組み合わせに通知するように構成される。特定の一態様において、ピアモニター１５０は、計算ノード１０４がクラスター管理装置１１０に対応する（例えば、これを含む）と決定することに応じて、クラスター管理装置１１０として計算ノード１０２又は計算ノード１０６を指定するように構成される。例えば、ピアモニター１５０は、計算ノード１０２でクラスター管理アプリケーションのインスタンスをスタートするか、又はクラスター管理アプリケーションのインスタンスをスタートするようにとのリクエストを計算ノード１０６に送る。ピアモニター１５０は、第２のインスタンスのいずれかの不完全タスクに対処する計算ノード１０２が指定されると決定することに応じて、計算ノード１０４に関連付けられるログデータ１４１にアクセスするように構成される。ピアモニター１５０は、ログデータ１４１がソフトウエアアプリケーション１２２の第２のインスタンス１６２に関連付けられる一又は複数の不完全タスク１０９を示すと決定することに応じて、不完全タスク１０９に関連付けられるアクション１２８を実施するように構成される。
【００２６】
アクティブ／パッシブ構成では、一つの計算ノードが、ソフトウエアアプリケーション１２２のインスタンスを実行している別の計算ノードが障害を起こした場合のバックアップ計算ノードとしてアイドル（例えば、パッシブ）状態に維持される。ソフトウエアアプリケーション１２２の障害が検出されると、ソフトウエアアプリケーション１２２のインスタンスがバックアップ計算ノードでスタートし、障害を起こした計算ノードの動作を引き継ぐ。アクティブ／アクティブ構成では、すべての利用可能な計算ノードでソフトウエアアプリケーション１２２のインスタンスを実行することにより、リソースがより効率的に使用される。図１では、クラスター管理装置１１０、計算ノード１０２、計算ノード１０４、計算ノード１０６、又はこれらの組み合わせが、アクティブ／アクティブ構成をサポートするようにセットアップされている。例えば、クラスター管理装置１１０は、計算ノード１０２、計算ノード１０４、及び計算ノード１０６（例えば、システム１００のすべての利用可能な計算ノード）でソフトウエアアプリケーション１２２のインスタンスをスタートするように構成される。計算ノード１０２は、計算ノード１０４でソフトウエアアプリケーション１２２の障害を検出することに応じて、計算ノード１０４に関連付けられる不完全タスク１０９に対処するように構成される。クラスター管理装置１１０は、計算ノード１０４でソフトウエアアプリケーション１２２の障害を検出することに応じて、他の計算ノードの一つ（例えば、既にアクティブな計算ノード）を選択し、計算ノード１０４のために用意された将来のトラフィックを選択された計算ノード（例えば、計算ノード１０６）にリダイレクトするように負荷分散装置を更新するように構成される。アクティブ／アクティブ構成は、すべての利用可能な計算ノードをアクティブとし、不完全タスク１０９に対処することにより有効状態への回復を可能にすることにより効率を上昇させる。
【００２７】
計算ノード１０２は、ディスプレイインターフェース１２６、ネットワークインターフェース１３０、又は両方を含む。図１では、ディスプレイインターフェース１２６はディスプレイ１１４に連結されている。ネットワークインターフェース１３０はネットワーク１９０に連結されている。特定の一態様において、ネットワークインターフェース１３０は、ネットワークインターフェースコントローラ、ネットワークインターフェース装置、ネットワークソケット、ネットワークインターフェースカード、シリアルネットワークインターフェース、無線インターフェース、又はこれらの組み合わせを含む。
【００２８】
メモリ１３２は、ソフトウエアアプリケーション１２２に関連付けられる予定プロセスを示す予定プロセスデータを記憶するように構成される。例えば、データは、予定プロセス１０７、予定プロセス１１３、又は両方を示す。メモリ１３２はまた、アプリケーションリスタート判定基準１１１を記憶するように構成される。特定の一態様において、予定プロセスデータ、アプリケーションリスタート判定基準１１１、又は両方は、ユーザ入力、デフォルトデータ、構成設定、又はこれらの組み合わせに基づいている。メモリ１３２は、命令１２５を記憶するように構成される。命令１２５は、プロセッサ１３４によって実行されると、ここに記載される一又は複数の動作を実施する。
【００２９】
以下の記載では、図１のシステム１００により実施される様々な機能が、特定の構成要素又はモジュールによって実施されるものとして記載されることに注意されたい。しかしながら、構成要素及びモジュールのこのような分割は、例示のみを目的とする。代替的な態様では、特定の構成要素又はモジュールにより実行されるものとしてここに記載される機能は、複数の構成要素又はモジュールに分割される。更に、代替的な態様では、図１の二つ以上の構成要素又はモジュールは、単一の構成要素又はモジュールに統合される。図１に図示される各構成要素又はモジュールは、ハードウエア（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）装置、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、コントローラ等）、ソフトウエア（例えば、プロセッサにより実行可能な命令）、又はこれらの任意の組み合わせを使用して実装され得る。
【００３０】
動作の間、クラスター管理装置１１０は、システム１００の一又は複数のノードでソフトウエアアプリケーション１２２のインスタンス及びサービスグループをスタートする。例えば、クラスター管理装置１１０は、システムアドミニストレータからのユーザ入力に応じて、ソフトウエアアプリケーション１２２のインスタンス及びサービスグループをスタートする。具体的には、クラスター管理装置１１０は、第１のリクエストを計算ノード１０２に送る。第１のリクエストは、ソフトウエアアプリケーション１２２のインスタンス及び対応するサービスグループが計算ノード１０２で起動されるべきであることを示す。ステータスデータアナライザー１４６は、第１のリクエストを受け取ることに応じて、計算ノード１０２でソフトウエアアプリケーション１２２の第１のインスタンス１６０を起動する（例えば、スタートする）。ステータスデータアナライザー１４６は、第１のリクエストを受け取ることに応じて、計算ノード１０２でサービスグループ（例えば、プロセスモニター１４０、プロセスモニターチェッカー１４２、又は両方）も起動する（例えば、スタートする）。サービスグループの二つの構成要素は一実施例として提供されていることを理解されたい。他の実施例では、サービスグループは、二つより少ない構成要素又は二つより多い構成要素を含む。いくつかの実施例では、サービスグループの二つ以上の構成要素は、単一の構成要素に組み合わせられる。いくつかの実施例では、サービスグループの特定の構成要素によって実施されるここに記載の機能は、サービスグループの複数の構成要素によって実施される。
【００３１】
特定の一態様において、クラスター管理装置１１０は、他の計算ノードを監視する少なくとも一つの計算ノードを選択する。例えば、クラスター管理装置１１０は、クラスタープロセスデータ１４３に基づいて計算ノード１０２を選択する。特定の一実装態様において、クラスター管理装置１１０は、計算ノード１０２からのプロセスステータスデータ１０５、計算ノード１０４からの第２のプロセスステータスデータ、計算ノード１０６からのプロセスステータスデータ１６５、又はこれらの組み合わせを受け取る。例えば、クラスター管理装置１１０は、計算ノード１０２への第１のリクエスト、計算ノード１０４への第２のリクエスト、及び計算ノード１０６へのリクエスト１６３を送ることに応じて、プロセスステータスデータ１０５、第２のプロセスステータスデータ、及びプロセスステータスデータ１６５を受け取る。クラスター管理装置１１０は、プロセスステータスデータ１０５、第２のプロセスステータスデータ、プロセスステータスデータ１６５、又はこれらの組み合わせに基づいてクラスタープロセスデータ１４３を生成する。クラスタープロセスデータ１４３は、計算ノード１０２で実行されているソフトウエアアプリケーション１２２に関連付けられるプロセス１２４のサブセットの第１の数を示す。クラスター管理装置１１０は、プロセス１２４のサブセットの第１の数が、計算ノード１０４で実行中のプロセスの第２の数、計算ノード１０６で実行中のプロセスの第３の数、又は両方以下であると決定することに応じて、計算ノード１０２を選択する。特定の一実装態様において、クラスター管理装置１１０は、クラスタープロセスデータ１４３とは無関係に計算ノード１０２を選択する。例えば、クラスター管理装置１１０は、ラウンドロビン選択、ユーザ入力、デフォルトデータ、構成設定、又はこれらの組み合わせに基づいて計算ノード１０２を選択する。
【００３２】
クラスター管理装置１１０は、第２のリクエストを計算ノード１０２（例えば、選択された計算ノード）に送る。ステータスデータアナライザー１４６は、第２のリクエストを受け取ることに応じて、計算ノード１０２でピアサービスグループ（例えば、ピアモニター１５０、ピアモニターチェッカー１５２、又は両方）を起動する（例えば、スタートする）。
【００３３】
特定の一実施例では、プロセッサ１３４の第１のスレッド、第２のスレッド、第３のスレッド、第４のスレッド、及び第５のスレッドは、ソフトウエアアプリケーション１２２の第１のインスタンス１６０、プロセスモニター１４０、プロセスモニターチェッカー１４２、ピアモニター１５０、ピアモニターチェッカー１５２にそれぞれ対応する。サービスグループの二つの構成要素は一実施例として提供されていることを理解されたい。他の実施例では、サービスグループは、二つより少ない構成要素又は二つより多い構成要素を含む。いくつかの実施例では、サービスグループの二つ以上の構成要素は、単一の構成要素に組み合わせられる。いくつかの実施例では、サービスグループの特定の構成要素によって実施されるここに記載の機能は、サービスグループの複数の構成要素によって実施される。
【００３４】
プロセスモニターチェッカー検証器１４４は、計算ノード１０２でプロセスモニターチェッカー１４２が実行されているかどうかを決定する。例えば、プロセスモニターチェッカー検証器１４４は、第１のコマンド（例えば、ｐｓコマンド）を実行し、プロセスモニターチェッカー１４２に関連付けられるプロセス１２４の一つのサブセットを少なくとも示す第１のプロセスデータを生成する。特定の一態様において、第１のコマンドはプロセスモニターチェッカー１４２を示す。特定の一実施例では、プロセスモニターチェッカー１４２の識別子が、第１のコマンド（例えば、ｐｓコマンド）の引数として提供される。プロセスモニターチェッカー検証器１４４は、第１のプロセスデータがプロセスモニターチェッカー１４２に関連付けられるプロセスをなにも示さない又はプロセスモニターチェッカー１４２に関連付けられる特定の予定プロセスを示さないと決定することに応じて、計算ノード１０２でプロセスモニターチェッカー１４２が実行されていない（例えば、有効な状態で実行されていない）と決定する。プロセスモニターチェッカー検証器１４４は、計算ノード１０２でプロセスモニターチェッカー１４２が実行されていないと決定することに応じて、プロセスモニターチェッカー１４２をスタートする（例えば、リスタートする）。
【００３５】
特定の一態様において、プロセスモニターチェッカー検証器１４４は、計算ノード１０２でプロセスモニターチェッカー１４２が実行を停止したかどうかを決定するように構成される。例えば、プロセスモニターチェッカー検証器１４４は、計算ノード１０２でプロセスモニターチェッカー１４２が実行されていないと決定することに応じて、プロセスモニターチェッカー１４２が計算ノード１０２で以前に実行されていたことを第１のプロセスデータの以前のバージョンが示すかどうかを決定する。具体的には、プロセスモニターチェッカー検証器１４４は、第１の特定の時間に第１のコマンドを実行することにより第１のプロセスデータの第１のバージョンを生成し、第２の特定の時間に第１のコマンドを実行することにより第１のプロセスデータの第２のバージョンを生成する。プロセスモニターチェッカー検証器１４４は、プロセスモニターチェッカー１４２が第１の特定の時間に実行されていたことを第１のプロセスデータの第１のバージョンが示し、プロセスモニターチェッカー１４２が第２の特定の時間に実行されていないことを第１のプロセスデータの第２のバージョンが示すと決定することに応じて、計算ノード１０２でプロセスモニターチェッカー１４２が実行を停止したと決定する。プロセスモニターチェッカー検証器１４４は、第１のプロセスデータの第２のバージョンをメモリ１３２に記憶する。プロセスモニターチェッカー検証器１４４は、計算ノード１０２でプロセスモニターチェッカー１４２が実行を停止したと決定することに応じて、プロセスモニターチェッカー１４２をリスタートする。特定の一態様において、プロセスモニターチェッカー検証器１４４は、タイマーの満了（例えば、５分毎）の検出、ユーザ入力の受領、ステータスデータアナライザー１４６からのリクエストの受領、又はこれらの組み合わせに応じて、第１のコマンドを実行する。
【００３６】
プロセスモニターチェッカー１４２は、計算ノード１０２でプロセスモニター１４０が実行されているかどうかを決定する。例えば、プロセスモニターチェッカー１４２は、第２のコマンド（例えば、ｐｓコマンド）を実行し、プロセスモニター１４０に関連付けられるプロセス１２４の一つのサブセットを少なくとも示す第２のプロセスデータを生成する。プロセスモニターチェッカー１４２は、第２のプロセスデータがプロセスモニター１４０に関連付けられるプロセスをなにも示さない又はプロセスモニター１４０に関連付けられる特定の予定プロセスを示さないと決定することに応じて、計算ノード１０２でプロセスモニター１４０が実行されていない（例えば、有効な状態で実行されていない）と決定する。プロセスモニターチェッカー１４２は、計算ノード１０２でプロセスモニター１４０が実行されていないと決定することに応じて、プロセスモニター１４０をスタート（例えば、リスタート）する。
【００３７】
特定の一態様において、プロセスモニターチェッカー１４２は、計算ノード１０２でプロセスモニター１４０が実行を停止したかどうかを決定する。例えば、プロセスモニターチェッカー１４２は、計算ノード１０２でプロセスモニター１４０が実行されていないと決定することに応じて、プロセスモニター１４０が計算ノード１０２で以前に実行されていたことを第２のプロセスデータの以前のバージョンが示すかどうかを決定する。具体的には、プロセスモニターチェッカー１４２は、第１の特定の時間に第２のコマンドを実行することによって第２のプロセスデータの第１のバージョンを生成し、第２の特定の時間に第２のコマンドを実行することによって第２のプロセスデータの第２のバージョンを生成する。プロセスモニターチェッカー１４２は、プロセスモニター１４０が第１の特定の時間に実行されていたことを第２のプロセスデータの第１のバージョンが示し、プロセスモニター１４０が第２の特定の時間に実行されていないことを第２のプロセスデータの第２のバージョンが示すと決定することに応じて、計算ノード１０２でプロセスモニター１４０が実行を停止したと決定する。プロセスモニターチェッカー１４２は、第２のプロセスデータの第２のバージョンをメモリ１３２に記憶する。プロセスモニターチェッカー１４２は、計算ノード１０２でプロセスモニター１４０が実行を停止したと決定することに応じて、プロセスモニター１４０をリスタートする。特定の一態様において、プロセスモニターチェッカー１４２は、タイマーの満了（例えば、５分毎）の検出、ユーザ入力の受領、ステータスデータアナライザー１４６からのリクエストの受領、又はこれらの組み合わせに応じて、第２のコマンドを実行する。
【００３８】
プロセスモニター１４０は、ソフトウエアアプリケーション１２２の第１のインスタンス１６０に関するプロセスステータスデータ１０５を生成する。例えば、プロセスモニター１４０は、第３のコマンド（例えば、ｐｓコマンド）を実行し、ソフトウエアアプリケーション１２２に関連付けられるプロセス１２４の一つのサブセットを少なくとも示すプロセスステータスデータ１０５を生成する。特定の一態様において、第３のコマンドはソフトウエアアプリケーション１２２を示す。特定の一実施例では、ソフトウエアアプリケーション１２２の識別子が、第３のコマンド（例えば、ｐｓコマンド）の引数として提供される。プロセスモニター１４０は、プロセスステータスデータ１０５をメモリ１３２に記憶するか、プロセスステータスデータ１０５をステータスデータアナライザー１４６に供給するか、又は両方を行う。特定の一態様において、プロセスモニター１４０は、タイマーの満了（例えば、５分毎）の検出、ユーザ入力の受領、ステータスデータアナライザー１４６からのリクエストの受領、又はこれらの組み合わせに応じて、第３のコマンドを実行する。
【００３９】
ステータスデータアナライザー１４６は、ソフトウエアアプリケーション１２２に関連付けられる予定プロセスのステータスをチェックするために、プロセスステータスデータ１０５を解析する。特定の一態様において、ステータスデータアナライザー１４６は、タイマーの満了（例えば、５分毎）の検出、ユーザ入力の受領、プロセスモニター１４０からのプロセスステータスデータ１０５の受領、メモリ１３２内でプロセスステータスデータ１０５が更新されたとの決定、又はこれらの組み合わせに応じて、プロセスステータスデータ１０５を解析する。
【００４０】
ステータスデータアナライザー１４６は、（例えば、プロセスステータスデータ１０５の解析の第１段階の間に）プロセスステータスデータ１０５に基づいてプロセス数１２７を決定する。プロセス数１２７は、特定のプロセスタイプのプロセス（例えば、レベル１のプロセス、レベル２のプロセス、レベル３のプロセス、又はこれらの組み合わせ）を含むプロセス１２４のサブセットの数を示す。例えば、予定プロセスデータは、ソフトウエアアプリケーション１２２に関連付けられる予定プロセスの各々の対応するプロセスタイプを示す。ステータスデータアナライザー１４６は、プロセスステータスデータ１０５及び予定プロセスデータに基づいてプロセス数１２７を決定する。例えば、プロセス数１２７は、プロセスステータスデータ１０５によって示されるプロセス１２４のサブセットの数を示す。サブセットは、特定のプロセスタイプ（例えば、レベル３のプロセス）を有するものとして予定プロセスデータにより示されるプロセスを含む。
【００４１】
ステータスデータアナライザー１４６は、プロセス数１２７がプロセス数閾値１１９を満たすかどうかを決定する。例えば、ステータスデータアナライザー１４６は、プロセス数１２７が第１の閾値（例えば、１０）以上であり、且つ第２の閾値（例えば、２０）以下であると決定することに応じて、プロセス数１２７がプロセス数閾値１１９を満たしていないと決定する。別の実施例として、ステータスデータアナライザーは、プロセス数１２７が第２の閾値（例えば、２０）以上であると決定することに応じて、プロセス数１２７がプロセス数閾値１１９を満たしていないと決定する。特定の一態様において、プロセス数閾値１１９は、第１の閾値、第２の閾値、又は両方を示す。
【００４２】
ステータスデータアナライザー１４６は、プロセス数１２７がプロセス数閾値１１９を満たしていないと決定することに応じて、一又は複数のアクションを実施する。例えば、一又は複数のアクションは、通知１５１、通知１５３、更新１５５、通知１５７、通知１５９、又はこれらの組み合わせを生成することを含む。通知１５１、通知１５３、更新１５５、通知１５７、又は通知１５９のうちの一又は複数は、特定のプロセスタイプ（例えば、レベル３のプロセス）のプロセス数１２７がプロセス数閾値を満たしていないことを示す。例えば、通知１５１、通知１５３、更新１５５、通知１５７、又は通知１５９のうちの一又は複数は、特定のプロセスタイプ（例えば、レベル３のプロセス）のプロセス数１２７が、第１の閾値（例えば、１０）以上であり、且つ第２の閾値（例えば、２０）以下であることを示す。別の実施例として、通知１５１、通知１５３、更新１５５、通知１５７、又は通知１５９のうちの一又は複数は、特定のプロセスタイプ（例えば、レベル３のプロセス）のプロセス数１２７が第２の閾値（例えば、２０）を上回っていることを示す。
【００４３】
ステータスデータアナライザー１４６は、ネットワークインターフェース１３０を介して、クラスター管理装置１１０への通知１５１、装置１１２への通知１５３、記憶デバイス１０８への更新１５５、計算ノード１０６への通知１５７、計算ノード１０４への通知１５９、又はこれらの組み合わせを送る。特定の一態様において、クラスター管理装置１１０は、通知１５１の受領に応じて、計算ノード１０２における特定のプロセスタイプ（例えば、レベル３のプロセス）のプロセス数１２７がプロセス数閾値１１９を満たしていないことを示すために、ダッシュボードデータ１２１を更新する。クラスター管理装置１１０は、ディスプレイ、計算ノード１０２、計算ノード１０４、計算ノード１０６、装置１１２、又はこれらの組み合わせにダッシュボードデータ１２１を提供する。特定の一態様において、計算ノード１０２は、ダッシュボードデータ１２１に基づいて出力１２３を生成し、出力１２３をディスプレイ１１４に提供する。例えば、ユーザは、出力１２３を閲覧することによりシステム１００の動作を監視することができる。特定の一態様において、ダッシュボードデータ１２１は、ダッシュボード（例えば、視覚情報ディスプイ及び管理インターフェース）に関連付けられる。
【００４４】
特定の一態様において、装置１１２は、通知１５３の受領に応じて、装置１１２にメッセージ（例えば、ｅメールメッセージ又はアラート）を表示する。特定の一態様において、装置１１２は、通知１５３の受領に応じて、ダッシュボード（例えば、視覚情報ディスプレイ及び管理インターフェース）にメッセージを送るか、ステータスログファイルを更新するか、又は両方を行う。メッセージは、計算ノード１０２における特定のプロセスタイプ（例えば、レベル３のプロセス）のプロセス数１２７がプロセス数閾値１１９を満たしていないことを示す。特定の一態様において、記憶デバイス１０８は、更新１５５の受領に応じて、計算ノード１０２における特定のプロセスタイプ（例えば、レベル３のプロセス）のプロセス数１２７がプロセス数閾値１１９を満たしていないことを示すために、ログデータ１３１を更新する。ログデータ１３１は、計算ノード１０２、ソフトウエアアプリケーション１２２、ソフトウエアアプリケーション１２２の第１のインスタンス１６０、又はこれらの組み合わせに関連付けられる。特定の一態様において、計算ノード１０６（又は計算ノード１０４）は、通知１５７（又は通知１５９）の受領に応じて、計算ノード１０２における特定のプロセスタイプ（例えば、レベル３のプロセス）のプロセス数１２７がプロセス数閾値１１９を満たしていないことを示すために、ダッシュボードデータを更新する。
【００４５】
ステータスデータアナライザー１４６は、（例えば、プロセスステータスデータ１０５の解析の第２段階の間に）予定プロセスデータによって示される予定プロセスのうちの一又は複数が計算ノード１０２で実行されているかどうかを決定する。例えば、ステータスデータアナライザー１４６は、プロセスステータスデータ１０５に基づいて、第１の計算ノード１０２でソフトウエアアプリケーション１２２の第１のインスタンス１６０の予定プロセス１０７が実行されているかどうかを決定する。具体的には、ステータスデータアナライザー１４６は、予定プロセス１０７が停止したことをプロセスステータスデータ１０５が示している又はプロセスステータスデータ１０５によって示されるプロセス１２４が予定プロセス１０７を含まないと決定することに応じて、計算ノード１０２で予定プロセス１０７が実行されていないと決定する。
【００４６】
特定の一態様において、ステータスデータアナライザー１４６は、計算ノード１０２で予定プロセス１０７が実行を停止したかどうかを決定する。例えば、ステータスデータアナライザー１４６は、計算ノード１０２で予定プロセス１０７が実行されていないと決定することに応じて、予定プロセス１０７が計算ノード１０２で以前に実行されていたことをプロセスステータスデータ１０５の以前のバージョンが示すかどうかを決定する。具体的には、ステータスデータアナライザー１４６は、（例えば、ｐｓコマンドを実行することにより）第１の特定の時間にプロセスステータスデータ１０５の第１のバージョンを生成し、（例えば、ｐｓコマンドを実行することにより）第２の特定の時間にプロセスステータスデータ１０５の２のバージョンを生成する。ステータスデータアナライザー１４６は、予定プロセス１０７が第１の特定の時間に実行されていたことをプロセスステータスデータ１０５の第１のバージョンが示し、予定プロセス１０７が第２の特定の時間に実行されていないことをプロセスステータスデータ１０５の第２のバージョンが示すと決定することに応じて、計算ノード１０２で予定プロセス１０７が実行を停止したと決定する。ステータスデータアナライザー１４６は、プロセスステータスデータ１０５の第２のバージョンをメモリ１３２に記憶する。
【００４７】
ステータスデータアナライザー１４６は、計算ノード１０２で予定プロセス１０７が実行されていない（又は実行を停止した）と決定することに応じて、一又は複数のアクションを実施する。一又は複数のアクションは、予定プロセス１０７のスタート（又はリスタート）、ソフトウエアアプリケーション１２２の第１のインスタンス１６０のスタート（又はリスタート）、通知１５１の生成、通知１５３の生成、更新１５５の生成、通知１５７の生成、通知１５９の生成、サービスグループ（例えば、プロセスモニター１４０、プロセスモニターチェッカー１４２、又は両方）のシャットダウン（例えば、停止）、ピアアラートサービスグループ（例えば、ピアモニター１５０、ピアモニターチェッカー１５２、又は両方）のシャットダウン、ソフトウエアアプリケーション１２２の第１のインスタンス１６０のシャットダウン、又はこれらの組み合わせを含む。例えば、ステータスデータアナライザー１４６は、予定プロセス１０７がプロセスタイプ１１７のものであることを予定プロセスデータが示していると決定し、プロセスタイプ１１７に基づいて一又は複数のアクションを選択する。
【００４８】
特定の一態様において、ステータスデータアナライザー１４６は、プロセスタイプ１１７が第１のプロセスタイプ（例えば、レベル１のプロセス）と一致すると決定することに応じて、アプリケーションリスタート判定基準１１１が満たされているかどうかを決定する。これは図５Ｂを参照して更に記載される。ステータスデータアナライザー１４６は、アプリケーションリスタート判定基準１１１が満たされていると決定することに応じて、計算ノード１０２でソフトウエアアプリケーション１２２の第１のインスタンス１６０をリスタートする。ステータスデータアナライザー１４６は、通知１５１、通知１５３、更新１５５、通知１５７、通知１５９、又はこれらの組み合わせを生成し、プロセスタイプ１１７の予定プロセス１０７の障害が検出されたこと、及び計算ノード１０２でソフトウエアアプリケーション１２２の第１のインスタンス１６０がリスタートされたことを示す。
【００４９】
或いは、ステータスデータアナライザー１４６は、アプリケーションリスタート判定基準１１１が満たされていないと決定することに応じて、ソフトウエアアプリケーション１２２の第１のインスタンス１６０のリスタートを制止する。例えば、ステータスデータアナライザー１４６は、計算ノード１０２において、ソフトウエアアプリケーション１２２の第１のインスタンス１６０、プロセスモニター１４０、プロセスモニターチェッカー１４２、ピアモニター１５０、ピアモニターチェッカー１５２、又はこれらの組み合わせをシャットダウンする（例えば、停止する）。ステータスデータアナライザー１４６は、通知１５１、通知１５３、更新１５５、通知１５７、通知１５９、又はこれらの組み合わせを生成し、プロセスタイプ１１７の予定プロセス１０７の障害が検出されたこと、及び計算ノード１０２でソフトウエアアプリケーション１２２の第１のインスタンス１６０がシャットダウンされたことを示す。プロセスタイプ１１７の予定プロセス１０７の障害が検出されていること、及び計算ノード１０２でソフトウエアアプリケーション１２２がリスタートされること（又はシャットダウンされること）を示すために、クラスター管理装置１１０が通知１５１に基づいてダッシュボードデータ１２１を更新するか、装置１１２が通知１５３に基づいてメッセージを表示するか、記憶デバイス１０８が更新１５５に基づいてログデータ１３１を更新するか、計算ノード１０６が通知１５７に基づいてダッシュボードデータを更新するか、計算ノード１０４が通知１５９に基づいてダッシュボードデータを更新するか、又はこれらの組み合わせが行われる。
【００５０】
特定の一態様において、ステータスデータアナライザー１４６は、プロセスタイプ１１７が第２のプロセスタイプ（例えば、レベル２のプロセス）と一致すると決定することに応じて、予定プロセス１０７をスタートする（例えば、リスタートする）。ステータスデータアナライザー１４６は、通知１５１、通知１５３、更新１５５、通知１５７、通知１５９、又はこれらの組み合わせを生成し、プロセスタイプ１１７の予定プロセス１０７の障害が検出されたこと、及び計算ノード１０２で予定プロセス１０７がスタート（例えば、リスタート）されたことを示す。プロセスタイプ１１７の予定プロセス１０７の障害が検出されて、計算ノード１０２で予定プロセス１０７がスタートされること（例えば、リスタートされること）を示すために、クラスター管理装置１１０が通知１５１に基づいてダッシュボードデータ１２１を更新するか、装置１１２が通知１５３に基づいてメッセージを表示するか、記憶デバイス１０８が更新１５５に基づいてログデータ１３１を更新するか、計算ノード１０６が通知１５７に基づいてダッシュボードデータを更新するか、計算ノード１０４が通知１５９に基づいてダッシュボードデータを更新するか、又はこれらの組み合わせが行われる。ステータスデータアナライザー１４６及びサービスグループ（例えば、プロセスモニター１４０、プロセスモニターチェッカー１４２、又は両方）は、第１のインスタンス１６０の選択的リスタートにより、ソフトウエアアプリケーション１２２の有効状態に対応する予定プロセス１０７（例えば、レベル２のプロセス）のスタートにより、又は両方により、このようにしてソフトウエアアプリケーション１２２の第１のインスタンス１６０のダウンタイムを短縮する。
【００５１】
ピアモニターチェッカー検証器１５４は、計算ノード１０２でピアモニターチェッカー１５２が実行されているかどうかを決定する。例えば、ピアモニターチェッカー検証器１５４は、第１のコマンド（例えば、ｐｓコマンド）を実行し、ピアモニターチェッカー１５２に関連付けられるプロセス１２４の一つのサブセットを少なくとも示す第１のプロセスデータを生成する。特定の一態様において、第１のコマンドは、ピアモニターチェッカー１５２を示す（例えば、ピアモニターチェッカー１５２の識別子に第１のコマンドが提供される）。ピアモニターチェッカー検証器１５４は、第１のプロセスデータがピアモニターチェッカー１５２に関連付けられるプロセスをなにも示さない又はピアモニターチェッカー１５２に関連付けられる特定の予定プロセスを示さないと決定することに応じて、計算ノード１０２でピアモニターチェッカー１５２が実行されていない（例えば、有効な状態で実行されていない）と決定する。ピアモニターチェッカー検証器１５４は、計算ノード１０２でピアモニターチェッカー１５２が実行されていないと決定することに応じて、ピアモニターチェッカー１５２をスタートする（例えば、リスタートする）。
【００５２】
特定の一態様において、ピアモニターチェッカー検証器１５４は、計算ノード１０２でピアモニターチェッカー１５２が実行を停止したかどうかを決定するように構成される。例えば、ピアモニターチェッカー検証器１５４は、計算ノード１０２でピアモニターチェッカー１５２が実行されていないと決定することに応じて、ピアモニターチェッカー１５２が計算ノード１０２で以前に実行されていたことを第１のプロセスデータの以前のバージョンが示すかどうかを決定する。具体的には、ピアモニターチェッカー検証器１５４は、第１の特定の時間に第１のプロセスデータの第１のバージョンを生成し、第２の特定の時間に第１のプロセスデータの第２のバージョンを生成する。ピアモニターチェッカー検証器１５４は、ピアモニターチェッカー１５２が第１の特定の時間に実行されていたことを第１のプロセスデータの第１のバージョンが示し、ピアモニターチェッカー１５２が第２の特定の時間に実行されていないことを第１のプロセスデータの第２のバージョンが示すと決定することに応じて、計算ノード１０２でピアモニターチェッカー１５２が実行を停止したと決定する。ピアモニターチェッカー検証器１５４は、第１のプロセスデータの第２のバージョンをメモリ１３２に記憶する。ピアモニターチェッカー検証器１５４は、計算ノード１０２でピアモニターチェッカー１５２が実行を停止したと決定することに応じて、ピアモニターチェッカー１５２をリスタートする。特定の一態様において、ピアモニターチェッカー検証器１５４は、タイマーの満了（例えば、５分毎）の検出、ユーザ入力の受領、ステータスデータアナライザー１４６からのリクエストの受領、又はこれらの組み合わせに応じて、第１のコマンドを実行する。
【００５３】
ピアモニターチェッカー１５２は、計算ノード１０２でピアモニター１５０が実行されているかどうかを決定する。例えば、ピアモニターチェッカー１５２は、第２のコマンド（例えば、ｐｓコマンド）を実行し、ピアモニター１５０に関連付けられるプロセス１２４の一つのサブセットを少なくとも示す第２のプロセスデータを生成する。ピアモニターチェッカー１５２は、第２のプロセスデータがピアモニター１５０に関連付けられるプロセスをなにも示さない又はピアモニター１５０に関連付けられる特定の予定プロセスを示さないと決定することに応じて、計算ノード１０２でピアモニター１５０が実行されていない（又は有効な状態で実行されていない）と決定する。ピアモニターチェッカー１５２は、計算ノード１０２でピアモニター１５０が実行されていないと決定することに応じて、ピアモニター１５０をスタート（又はリスタート）する。
【００５４】
特定の一態様において、ピアモニターチェッカー１５２は、計算ノード１０２でピアモニター１５０が実行を停止したかどうかを決定するように構成される。例えば、ピアモニターチェッカー１５２は、計算ノード１０２でピアモニター１５０が実行されていないと決定することに応じて、ピアモニター１５０が計算ノード１０２で以前に実行されていたことを第２のプロセスデータの以前のバージョンが示すかどうかを決定する。具体的には、ピアモニターチェッカー１５２は、第１の特定の時間に第２のプロセスデータの第１のバージョンを生成し、第２の特定の時間に第２のプロセスデータの第２のバージョンを生成する。ピアモニターチェッカー１５２は、ピアモニター１５０が第１の特定の時間に実行されていたことを第２のプロセスデータの第１のバージョンが示し、ピアモニター１５０が第２の特定の時間に実行されていないことを第２のプロセスデータの第２のバージョンが示すと決定することに応じて、計算ノード１０２でピアモニター１５０が実行を停止したと決定する。ピアモニターチェッカー１５２は、第２のプロセスデータの第２のバージョンをメモリ１３２に記憶する。ピアモニターチェッカー１５２は、計算ノード１０２でピアモニター１５０が実行を停止したと決定することに応じて、ピアモニター１５０をリスタートする。特定の一態様において、ピアモニターチェッカー１５２は、タイマーの満了（例えば、５分毎）の検出、ユーザ入力の受領、ステータスデータアナライザー１４６からのリクエストの受領、又はこれらの組み合わせに応じて、第２のコマンドを実行する。
【００５５】
ピアモニター１５０は、ソフトウエアアプリケーション１２２に関連付けられる予定プロセスの他の計算ノードでのステータスを示すデータを集める。特定の一実装態様において、ピアモニター１５０は、クラスター管理装置１１０からクラスタープロセスデータ１４３を受け取る。特定の一態様において、ピアモニター１５０は、クラスター管理装置１１０にリクエストを送り、リクエストに応答してクラスタープロセスデータ１４３を受け取る。代替的な一態様では、クラスター管理装置１１０は、リクエストの受領とは無関係にピアモニター１５０にクラスタープロセスデータ１４３を送る。例えば、クラスター管理装置１１０は、タイマーの満了の検出、ユーザ入力の受領、又は両方に応じて、ピアモニター１５０にクラスタープロセスデータ１４３を送る。ピアモニター１５０は、クラスタープロセスデータ１４３をメモリ１３２に記憶するか、クラスタープロセスデータ１４３をステータスデータアナライザー１４６に供給するか、又は両方を行う。
【００５６】
特定の一実装態様において、ピアモニター１５０は、記憶デバイス１０８からログデータ１４１を受け取る。特定の一態様において、ピアモニター１５０は、記憶デバイス１０８にログリクエスト１６１を送り、ログリクエスト１６１に応答してログデータ１４１を受け取る。代替的な一態様では、記憶デバイス１０８は、リクエスト１６１の受領とは無関係にピアモニター１５０にログデータ１４１を送る。例えば、記憶デバイス１０８は、タイマーの満了の検出、ユーザ入力の受領、又は両方に応じて、ピアモニター１５０にログデータ１４１を送る。ピアモニター１５０は、ログデータ１４１をメモリ１３２に記憶するか、ログデータ１４１をステータスデータアナライザー１４６に供給するか、又は両方を行う。
【００５７】
ピアモニター１５０は、計算ノード１０４でソフトウエアアプリケーション１２２に関連付けられる予定プロセスのステータスをチェックする。例えば、ピアモニター１５０は、ソフトウエアアプリケーション１２２の第２のインスタンス１６２が計算ノード１０４で障害を起こしたかどうかを決定する。特定の一実装態様において、ピアモニター１５０は、クラスタープロセスデータ１４３、ログデータ１４１、又は両方に基づいて、第２のインスタンス１６２が計算ノード１０４で障害を起こしたかどうかを決定する。例えば、ピアモニター１５０は、計算ノード１０４で一又は複数の第２のプロセスが実行されていること、計算ノード１０４で一又は複数の第３のプロセスが停止していること、或いは両方をクラスタープロセスデータ１４３（又はログデータ１４１）が示すと決定する。ピアモニター１５０は、第２のプロセスが予定プロセス１１３を含まないこと、第３のプロセスが予定プロセス１１３を含むこと、又は両方を決定することに応じて、第２のインスタンス１６２が有効な状態で実行されていないと決定する。特定の一態様において、ピアモニター１５０は、第２のインスタンス１６２が有効な状態で実行されていないと決定することに応じて、ソフトウエアアプリケーション１２２の第２のインスタンス１６２が計算ノード１０４で障害を起こしたと決定する。
【００５８】
特定の一態様において、ピアモニター１５０は、第２のインスタンス１６２が有効な状態での実行を停止したかどうかを決定する。例えば、ピアモニター１５０は、第２のインスタンス１６２が有効な状態で実行されていないと決定することに応じて、計算ノード１０４で第２のインスタンス１６２が有効な状態で以前に実行されていたことをクラスタープロセスデータ１４３の以前のバージョン（又はログデータ１４１の以前のバージョン）が示すかどうかを決定する。具体的には、ピアモニター１５０は、第１の特定の時間にクラスタープロセスデータ１４３の第１のバージョン（又はログデータ１４１の第１のバージョン）が生成され（又は受け取られ）、第２の特定の時間にクラスタープロセスデータ１４３の第２のバージョン（又はログデータ１４１の第２のバージョン）が生成される（又は受け取られる）と決定する。ピアモニター１５０は、第１の特定の時間に第２のインスタンス１６２が有効な状態で実行されていたことをクラスタープロセスデータ１４３の第１のバージョン（又はログデータ１４１の第１のバージョン）が示し、第２の特定の時間に第２のインスタンス１６２が有効な状態で実行されていないことをクラスタープロセスデータ１４３の第２のバージョン（又はログデータ１４１の第２のバージョン）が示すと決定することに応じて、計算ノード１０４で第２のインスタンス１６２が有効な状態での実行を停止したと決定する。ピアモニター１５０は、計算ノード１０４で第２のインスタンス１６２が有効な状態での実行を停止したと決定することに応じて、第２のインスタンス１６２が計算ノード１０４で障害を起こしていると決定する。ピアモニター１５０は、クラスタープロセスデータ１４３の第２のバージョン（又はログデータ１４１の第２のバージョン）をメモリ１３２に記憶する。
【００５９】
特定の一態様において、ピアモニター１５０は、ソフトウエアアプリケーション１２２が計算ノード１０４でシャットダウンされていることをクラスタープロセスデータ１４３（又はログデータ１４１）が示すと決定することに応じて、ソフトウエアアプリケーション１２２の第２のインスタンス１６２が計算ノード１０４で障害を起こしたと決定する。特定の一態様において、ピアモニター１５０は、タイマーの満了（例えば、５分毎）の検出、ユーザ入力の受領、ピアモニター１５０からのクラスタープロセスデータ１４３の受領、クラスターステータスデータ１４３がメモリ１３２内で更新されたとの決定、記憶デバイス１０８からのログデータ１４１の受領、ログデータ１４１がメモリ１３２内で更新されたとの決定、又はこれらの組み合わせに応じて、クラスタープロセスデータ１４３、ログデータ１４１、又は両方を解析する。
【００６０】
ピアモニター１５０は、ソフトウエアアプリケーション１２２の第２のインスタンス１６２が第２の計算ノード１０４で障害を起こしたと決定することに応じて、一又は複数のアクションを実施する。一又は複数のアクションは、計算ノード１０４でソフトウエアアプリケーション１２２の第２のインスタンス１６２の障害が検出されていることを示す、通知１５１、通知１５３、更新１５５、通知１５７、通知１５９の生成、クラスター管理装置１１０の指定、又はこれらの組み合わせを含む。例えば、ピアモニター１５０は、計算ノード１０４がクラスター管理装置１１０に対応する（例えば、含む）と決定することに応じて、クラスター管理装置１１０として計算ノード１０２又は計算ノード１０６を指定する。具体的には、ピアモニター１５０は、計算ノード１０２でクラスター管理アプリケーションのインスタンスをスタートするか、又はクラスター管理アプリケーションのインスタンスをスタートするようにとのリクエストを計算ノード１０６に送る。特定の一態様において、ピアモニター１５０は、ソフトウエアアプリケーション１２２の第２のインスタンス１６２が第２の計算ノード１０４で障害を起こしたと決定することに応じて、プロセスステータスデータ１０５を生成するか、プロセスステータスデータ１０５をクラスター管理装置１１０に送るか、又は両方を行う。
【００６１】
特定の一態様において、クラスター管理装置１１０は、通知１５１の受領、及び通知１５１が計算ノード１０４で第２のインスタンス１６２の障害を示すと決定することに応じて、負荷分散装置を更新し、計算ノード１０４のために用意された将来のリクエストを別の計算ノードへリダイレクトする。特定の一態様において、クラスター管理装置１１０は、通知１５１を受け取ること、及び通知１５１が計算ノード１０４で第２のインスタンス１６２の障害を示すと決定することに応じて、クラスタープロセスデータ１４３を生成（又は更新）するか、第２のインスタンス１６２に関連付けられるいずれかの不完全タスクを実施する計算ノードを選択するか、又は両方を行う。例えば、クラスター管理装置１１０は、通知１５１の受領に応じて、計算ノード１０６にリクエスト１６３を送る。計算ノード１０６は、リクエスト１６３の受領に応じて、クラスター管理装置１１０にプロセスステータスデータ１６５を送る。クラスター管理装置１１０は、プロセスステータスデータ１０５、プロセスステータスデータ１６５、又は両方に基づいてクラスタープロセスデータ１４３を生成（又は更新）する。
【００６２】
クラスター管理装置１１０は、プロセスステータスデータ１０５が、計算ノード１０２で実行されているソフトウエアアプリケーション１２２に関連付けられるプロセス１２４のサブセットの第１の数を示すと決定する。クラスター管理装置１１０は、クラスタープロセスデータ１４３に基づき、第１の数が計算ノード１０６で実行中のプロセスの第２の数以下であると決定することに応じて、計算ノード１０２を選択する。例えば、第２の数は、計算ノード１０６で実行されているソフトウエアアプリケーション１２２に関連付けられるプロセスのサブセットを示す。クラスター管理装置１１０は、計算ノード１０２（例えば、選択された計算ノード）が第２のインスタンス１６２に関連付けられるいずれかの不完全タスクを実施すべきであることを示すために、計算ノード１０２に割り当て１４５を送る。
【００６３】
ピアモニター１５０は、ソフトウエアアプリケーション１２２の第２のインスタンス１６２に関連付けられる不完全タスク１０９を識別する。特定の一実装態様において、ピアモニター１５０は、計算ノード１０４でソフトウエアアプリケーション１２２の第２のインスタンス１６２が障害を起こしたとの決定、クラスター管理装置１１０からの割り当て１４５の受領、又は両方に応じて、記憶デバイス１０８にログリクエスト１６１を送る。ピアモニター１５０は、ソフトウエアアプリケーション１２２の第２のインスタンス１６２に関連付けられる不完全タスク１０９をログデータ１４１が示すかどうかを決定する。
【００６４】
ピアモニター１５０は、不完全タスク１０９に関連付けられる一又は複数のアクションを実施する。例えば、ピアモニター１５０は、不完全タスク１１５に関連付けられるアクション１２８を実施する。特定の一態様において、ピアモニター１５０は、不完全タスク１１５を元に戻すためのアクション１２８を実施する。例えば、ピアモニター１５０は、不完全タスク１１５がデータベースの更新を含むと決定することに応じて、データベースの更新をロールバックするためのアクション１２８を実施する。代替的な一態様では、ピアモニター１５０は、不完全タスク１１５を完了するためのアクション１２８を実施する。例えば、ピアモニター１５０は、不完全タスク１１５がデータベースの更新を含むと決定することに応じて、データベースの更新を行うためのアクション１２８を実施する。
【００６５】
このようにして、システム１００は、第１のインスタンス１６０の選択的リスタートにより、ソフトウエアアプリケーション１２２の有効な状態に対応する予定プロセス１０７（例えば、レベル２のプロセス）のスタートにより、又は両方により、計算ノード１０２におけるソフトウエアアプリケーション１２２のダウンタイムを短縮する。システム１００は、計算ノード１０４における障害を起こしたソフトウエアアプリケーション１２２のインスタンスに関連付けられる不完全タスク１０９への対処を計算ノード１０２に行わせることにより、有効な状態を回復することができる。
【００６６】
図２は、ソフトウエアアプリケーションのプロセスの監視方法２００の一実施例を示している。特定の一態様において、方法２００は、図１のクラスター管理装置１１０、計算ノード１０２、計算ノード１０４、計算ノード１０６、システム１００、又はこれらの組み合わせによって実施される。
【００６７】
方法２００は、２０２において、ノードのソフトウエアアプリケーションのインスタンスをスタートすることを含む。例えば、図１のクラスター管理装置１１０は、計算ノード１０２、計算ノード１０４、計算ノード１０６、又はこれらの組み合わせに第１のリクエストを送る。計算ノード１０２は、図１を参照して記載されるように、クラスター管理装置１１０からの第１のリクエストの受領に応じてソフトウエアアプリケーション１２２の第１のインスタンス１６０をスタートする。特定の一態様において、システム１００の他の計算ノードは、第１のリクエストの受領に応じてソフトウエアアプリケーション１２２のインスタンスもスタートする。例えば、計算ノード１０４は、ソフトウエアアプリケーション１２２の第２のインスタンス１６２をスタートする。
【００６８】
方法２００はまた、２０４において、ノードのサービスグループをスタートすることを含む。例えば、図１のクラスター管理装置１１０は、計算ノード１０２、計算ノード１０４、計算ノード１０６、又はこれらの組み合わせに第２のリクエストを送る。計算ノード１０２は、図１を参照して記載されるように、クラスター管理装置１１０からの第２のリクエストの受領に応じて、ソフトウエアアプリケーション１２２に関連付けられるサービスグループ（例えば、プロセスモニター１４０、プロセスモニターチェッカー１４２、又は両方）をスタートする。特定の一態様において、システム１００の他の計算ノードは、第２のリクエストの受領に応じて、サービスグループのインスタンスもスタートする。特定の一態様において、計算ノード１０２は、第１のリクエストの受領に応じて第１のインスタンス１６０をスタートし、第１のリクエストとは別個の第２のリクエストの受領に応じてサービスグループをスタートする。代替的な一態様では、計算ノード１０２は、単一のリクエストの受領に応じて、第１のインスタンス１６０とサービスグループ（例えば、プロセスモニター１４０、プロセスモニターチェッカー１４２、又は両方）とをスタートする。
【００６９】
方法２００は、２０６においてピアアラートサービスグループをスタートすることを更に含む。例えば、図１のクラスター管理装置１１０は、他の計算ノードを監視する少なくとも一つの計算ノードを選択し、選択された計算ノードに第３のリクエストを送る。具体的には、クラスター管理装置１１０は、図１を参照して記載されるように、計算ノード１０４を選択する。クラスター管理装置１１０は、第３のリクエストを計算ノード１０４（例えば、選択された計算ノード）に送る。計算ノード１０２は、図１を参照して記載されるように、クラスター管理装置１１０からの第３のリクエストの受領に応じて、ピアアラートサービスグループ（例えば、ピアモニター１５０、ピアモニターチェッカー１５２、又は両方）をスタートする。
【００７０】
方法２００は、クラスター管理装置１１０が、複数の計算ノードでソフトウエアアプリケーション１２２のインスタンスと、対応するサービスグループとをスタートすることを可能にする。方法２００はまた、クラスター管理装置１１０が、少なくとも一つの計算ノードを選択し、他の計算ノードを監視するために、選択された計算ノードにおいてピアアラートサービスグループをスタートすることを可能にする。
【００７１】
図３は、ソフトウエアアプリケーションのプロセスの監視方法３００の一実施例を示している。特定の一態様において、方法３００は、図１のステータスデータアナライザー１４６、プロセスモニター１４０、プロセスモニターチェッカー１４２、プロセスモニターチェッカー検証器１４４、計算ノード１０２、計算ノード１０４、計算ノード１０６、クラスター管理装置１１０、システム１００、又はこれらの組み合わせによって実施される。
【００７２】
特定の一態様において、方法３００は、図２の２０４から継続する。例えば、クラスター管理装置１１０は、計算ノード１０２、計算ノード１０４、計算ノード１０６、又はこれらの組み合わせに第２のリクエストを送り、ソフトウエアアプリケーション１２２のインスタンスに対応するサービスグループをスタートする。方法３００は、第２のリクエストの受領に応じて、計算ノード１０２、計算ノード１０４、計算ノード１０６、又はこれらの組み合わせで実施される。
【００７３】
方法３００は、３０２において、プロセスモニターチェッカー及びプロセスモニターをスタートすることを含む。例えば、図１のステータスデータアナライザー１４６は、図１を参照して記載されるように、プロセスモニターチェッカー１４２、プロセスモニター１４０、又は両方をスタートする。特定の一態様において、ステータスデータアナライザー１４６は、プロセスモニターチェッカー１４２及びプロセスモニター１４０にそれぞれ対応する、図１のプロセッサ１３４における実行の第１のスレッド及び第２のスレッドをスタートする。
【００７４】
方法３００はまた、３１０において、プロセスモニターのステータスをチェックすることを含む。例えば、図１のプロセスモニターチェッカー１４２は、図１を参照して記載されるように、もしあれば、プロセスモニター１４０に対応するプロセス１２４のサブセットを示す第１のプロセスステータスデータを生成する。
【００７５】
方法３００は、３１２において、プロセスモニターが実行を停止したかどうかを決定することを更に含む。例えば、図１のプロセスモニターチェッカー１４２は、図１を参照して記載されるように、第１のプロセスステータスデータに基づいて、プロセスモニター１４０が実行を停止したかどうかを決定する。
【００７６】
方法３００は、３１２において、プロセスモニターが実行を停止していないと決定することに応じて、３１０に戻ることを含む。例えば、図１のプロセスモニターチェッカー１４２は、第１の時間に、プロセスモニター１４０が実行されている又はプロセスモニター１４０は以前に実行されていなかったと決定することに応じて、第２の時間に第１のプロセスステータスデータの更新バージョンを生成する。具体的には、プロセスモニターチェッカー１４２は、タイマーの満了の検出に応じて第１のプロセスステータスデータを生成する。
【００７７】
方法３００は、３１２においてプロセスモニターが実行を停止したと決定することに応じて、３１４においてプロセスモニターをリスタートすることを含む。例えば、図１のプロセスモニターチェッカー１４２は、第１のプロセスステータスデータに基づいてプロセスモニター１４０が実行を停止したとの決定することに応じて、プロセスモニター１４０をリスタートする。方法３００は３１０に継続する。
【００７８】
方法３００はまた、３１６において、予定プロセスのステータスをチェックすることを含む。例えば、図１のプロセスモニター１４０は、図１を参照して記載されるように、計算ノード１０２で実行中のプロセス１２４を示すプロセスステータスデータ１０５を生成する。
【００７９】
方法３００は、３１８において、プロセス数が閾値を上回るかどうかを決定することを更に含む。例えば、図１のステータスデータアナライザー１４６は、図１を参照して記載されるように、プロセスステータスデータ１０５に基づいてプロセス数１２７を生成する。ステータスデータアナライザー１４６は、プロセス数１２７がプロセス数閾値１１９を上回るかどうかを決定する。
【００８０】
方法３００は、３２０において、プロセス数が閾値を上回ると決定することに応じて、プロセス数の通知、ログデータの更新、及びダッシュボードデータの更新を実行することを含む。例えば、図１のステータスデータアナライザー１４６は、図１を参照して記載されるように、プロセス数１２７がプロセス数閾値１１９を上回ると決定することに応じて、プロセス数１２７がプロセス数閾値１１９を満たしていないことを示す、通知１５１、通知１５３、更新１５５、通知１５７、通知１５９、又はこれらの組み合わせを生成する。特定の一実施例では、ステータスデータアナライザー１４６は、プロセス数１２７がプロセス数閾値１１９を上回ると決定することに応じて、プロセス数１２７がプロセス数閾値１１９を満たしていないことを示すために、ダッシュボードデータ１２１を更新する。
【００８１】
方法３００は、３２２において、実行を停止した予定プロセスがあるかどうかを決定することを含む。例えば、図１のステータスデータアナライザー１４６は、プロセスステータスデータ１０５に基づいて、計算ノード１０２で実行を停止した、ソフトウエアアプリケーション１２２に関連付けられる予定プロセスがあるかどうかを決定する。方法３００は、３２２において、実行を停止した予定プロセスがないと決定することに応じて、３２６に継続することを含む。
【００８２】
方法３００は、３２２において少なくとも一つの予定プロセスが実行を停止したと決定することに応じて、３２４において、実行を停止した予定プロセスに関する解析を実行することを含む。例えば、図１のステータスデータアナライザー１４６は、図４を参照して更に記載されるように、実行を停止した予定プロセスの解析を実施する。
【００８３】
方法３００はまた、３２６において、プロセスモニターチェッカーのステータスをチェックすることを含む。例えば、図１のプロセスモニターチェッカー検証器１４４は、図１を参照して記載されるように、もしあれば、図１のプロセスモニターチェッカー１４２に対応するプロセス１２４のサブセットを示す第２のプロセスステータスデータを生成する。
【００８４】
方法３００は、３２８において、プロセスモニターチェッカーが実行を停止したかどうかを決定することを更に含む。例えば、図１のプロセスモニターチェッカー検証器１４４は、図１を参照して記載されるように、第２のプロセスステータスデータに基づいて、プロセスモニターチェッカー１４２が実行を停止したかどうかを決定する。
【００８５】
方法３００は、３２８において、プロセスモニターチェッカーが実行を停止しているか否かを決定することに応じて、３１６に戻ることを含む。例えば、図１のプロセスモニター１４０は、第１の時間に、プロセスステータスデータ１０５の第１のバージョンを生成する。図１のステータスデータアナライザー１４６は、プロセスステータスデータ１０５の第１のバージョンに基づいて、実行を停止した、ソフトウエアアプリケーション１２２に関連付けられる予定プロセスがあるかどうかを決定し、実行を停止した予定プロセスの解析を実行する。プロセスモニターチェッカー検証器１４４は、第１の時間より後の第２の時間に、第２のプロセスステータスを生成する。プロセスモニターチェッカー検証器１４４は、第２のプロセスステータスデータに基づいて、プロセスモニターチェッカー１４２が実行を停止したかどうかを決定し、プロセスモニターチェッカー１４２が実行を停止している場合、プロセスモニターチェッカー１４２をリスタートする。特定の一態様において、プロセスモニター１４０は、第２の時間より後の第３の時間に、プロセスステータスデータ１０５の第２のバージョンを生成する。特定の一態様において、ステータスデータアナライザー１４６は、プロセスモニター１４０に、プロセスステータスデータ１０５の更新バージョンを提供するようにとのリクエストを送る。具体的には、ステータスデータアナライザー１４６は、タイマーの満了の検出に応じてリクエストを送る。
【００８６】
方法３００は、３２８においてプロセスモニターチェッカーが実行を停止したと決定することに応じて、３３０においてプロセスモニターチェッカーをリスタートすることを含む。例えば、図１のプロセスモニターチェッカー検証器１４４は、プロセスモニターチェッカー１４２が実行を停止したことを第２のプロセスデータが示すと決定することに応じて、ロセスモニターチェッカー１４２をリスタートする。方法３００は３１６に戻る。
【００８７】
このようにして、方法３００は、複数のレベルのチェックを提供することにより、ソフトウエアアプリケーション１２２に関連付けられる予定プロセスの厳重な監視を可能にする。図３は、プロセスモニターチェッカー１４２及びプロセスモニター１４０によって提供される二つのレベルのチェックを示している。
【００８８】
図４は、ソフトウエアアプリケーションプロセスの監視方法の一実施例を示す。方法は図３の３２４に対応する。特定の一態様において、方法３２４は、図１のステータスデータアナライザー１４６、計算ノード１０２、計算ノード１０４、計算ノード１０６、システム１００、又はこれらの組み合わせによって実施される。
【００８９】
方法３２４は、４０２において、実行を停止した予定プロセスのプロセスタイプを決定することを含む。例えば、図１のステータスデータアナライザー１４６は、図１を参照して記載されるように、予定プロセスデータに基づいて、予定プロセス１０７がプロセスタイプ１１７を有すると決定する。
【００９０】
方法３２４はまた、４０２でプロセスタイプがプロセスタイプ４０１と一致すると決定することに応じて、４０４において、アプリケーションリスタート判定基準が満たされているかどうかを決定することを含む。例えば、図１のステータスデータアナライザー１４６は、図５Ｂを参照して更に記載されるように、プロセスタイプ１１７がプロセスタイプ４０１（例えば、レベル１のプロセス）と一致すると決定することに応じて、アプリケーションリスタート判定基準１１１が満たされているかどうかを決定する。
【００９１】
方法３２４は、４０４でアプリケーションリスタート判定基準が満たされていると決定することに応じて、４０６において、障害カウンタの値を増加させることを含む。例えば、図１のステータスデータアナライザー１４６は、アプリケーションリスタート判定基準１１１が満たされていると決定することに応じて、図５Ｂの障害カウンタ５１７の値を（例えば、１だけ）増加させる。
【００９２】
方法３２４は、４０８において、ソフトウエアアプリケーションをリスタートすることを更に含む。例えば、図１のステータスデータアナライザー１４６は、ソフトウエアアプリケーション１２２の第１のインスタンス１６０をリスタートする。
【００９３】
方法３２４はまた、４１０において、プロセス障害リスタート通知を実行すること、ログデータを更新すること、及びダッシュボードデータを更新することを含む。例えば、図１のステータスデータアナライザー１４６は、図１を参照して記載されるように、計算ノード１０２でソフトウエアアプリケーション１２２がリスタートされることを示す、通知１５１、通知１５３、更新１５５、通知１５７、通知１５９、又はこれらの組み合わせを生成する。特定の一態様において、ステータスデータアナライザー１４６は、計算ノード１０２でソフトウエアアプリケーションがリスタートされることを示すために、図１のダッシュボードデータ１２１を更新する。方法３２４は３２６に戻る。
【００９４】
方法３２４は、４０４でアプリケーションリスタート判定基準が満たされていないと決定することに応じて、４１２において、ソフトウエアアプリケーションをシャットダウンすることを含む。例えば、図１のステータスデータアナライザー１４６は、アプリケーションリスタート判定基準１１１が満たされていないと決定することに応じて、ソフトウエアアプリケーション１２２の第１のインスタンス１６０をシャットダウンする（例えば、停止する）。
【００９５】
方法３２４はまた、４１４において、計算ノードでサービスグループを停止することも含む。例えば、図１のステータスデータアナライザー１４６は、計算ノード１０２でサービスグループ（例えば、プロセスモニター１４０、プロセスモニターチェッカー１４２又は両方）を停止する。
【００９６】
方法３２４は、４１６において、停止プロセス通知を実行すること、ログデータを更新すること、及びダッシュボードデータを更新することを更に含む。例えば、図１のステータスデータアナライザー１４６は、通知１５１、通知１５３、更新１５５、通知１５７、通知１５９、又はこれらの組み合わせを生成し、計算ノード１０２でソフトウエアアプリケーション１２２がシャットダウンされていることを示す。特定の一態様において、ステータスデータアナライザー１４６は、計算ノード１０２でソフトウエアアプリケーション１２２がシャットダウンされることを示すために、ダッシュボードデータ１２１を更新する。
【００９７】
方法３２４は、４０２でプロセスタイプがプロセスタイプ４０３と一致すると決定することに応じて、４１８において、予定プロセスをリスタートすることを含む。例えば、図１のステータスデータアナライザー１４６は、プロセスタイプ１１７がプロセスタイプ４０３（例えば、レベル２のプロセス）と一致すると決定することに応じて、予定プロセス１０７をリスタートする。
【００９８】
方法３２４は、４２０において、別の予定プロセスが解析されるべきかどうかを決定することを含む。例えば、図１のステータスデータアナライザー１４６は、プロセスステータスデータ１０５に基づいて、計算ノード１０２で別の予定プロセスが実行されていないと決定する。
【００９９】
方法３２４は、４２０で別の予定プロセスが解析されるべきと決定することに応じて、４０２に戻ることを含む。例えば、図１のステータスデータアナライザー１４６は、プロセスステータスデータ１０５に基づいて、第２の予定プロセスが実行を停止しており且つ第２の予定プロセスに関する解析が実施されていないと決定することに応じて、第２の予定プロセスに関する解析を実施する。方法３２４は、解析されるべき他の予定プロセスはないと決定することに応じて、３２６に戻ることを含む。例えば、図１のステータスデータアナライザー１４６は、実行を停止したすべての予定プロセスの解析が済んだと決定することに応じて、プロセスモニター１４０に、図１のプロセスモニターチェッカー１４２のステータスをチェックするようにとのリクエストを送る。
【０１００】
このようにして、方法３２４は、ステータスデータアナライザー１４６が図１のプロセスステータスデータ１０５を解析し、計算ノード１０２で実行を停止した予定プロセスのタイプに基づいて種々の動作を実施することを可能にする。例えば、ステータスデータアナライザー１４６は、プロセスタイプ４０１の予定プロセス１０７のためのソフトウエアアプリケーション１２２の第１のインスタンス１６０を選択的にリスタートする。別の実施例として、ステータスデータアナライザー１４６は、プロセスタイプ４０３の予定プロセス１０７をリスタートする。
【０１０１】
図５Ａには線図が示され、全体に参照番号５００が付されている。線図５００は、ステータスデータアナライザー１４６とメモリ１３２を示している。メモリ１３２は、プロセスステータスデータ１０５、スタート時間５１１、停止時間５１３、障害数閾値５１９、時間閾値５１５、アプリケーションリスタート判定基準１１１、障害カウンタ５１７、又はこれらの組み合わせを記憶するように構成されている。特定の一態様において、障害数閾値５１９、時間閾値５１５、又は両方は、ユーザ入力、デフォルトデータ、構成設定、又はこれらの組み合わせに基づいている。
【０１０２】
スタート時間５１１は、図１の計算ノード１０４で予定プロセス１０７が直前にスタートされた時間を示す。停止時間５１３は、計算ノード１０４で予定プロセス１０７が実行されていないとして検出される時間を示す。例えば、停止時間５１３は、計算ノード１０４で予定プロセス１０７が実行されていないことが決定される時間（又は実行されていないことを示すデータが生成される時間）を示す。特定の一態様において、停止時間５１３は、プロセスステータスデータ１０５のタイムスタンプ（例えば、プロセスステータスデータ１０５の生成時間を示す）に対応する。
【０１０３】
図５Ｂには、図４の４０４に対応する方法の一実施例が示されている。特定の一態様において、方法４０４は、図１のステータスデータアナライザー１４６、計算ノード１０２、計算ノード１０４、計算ノード１０６、システム１００、又はこれらの組み合わせによって実施される。
【０１０４】
方法４０４は、５０２において、停止時間とスタート時間との差が時間閾値以上であるかどうかを決定することを含む。例えば、ステータスデータアナライザー１４６は、スタート時間５１１と停止時間５１３との差を決定する。ステータスデータアナライザー１４６は、スタート時間５１１と停止時間５１３との差が時間閾値５１５を満たすかどうか（例えば、閾値以上であるかどうか）を決定する。
【０１０５】
方法４０４は、５０２で停止時間とスタート時間との差が時間閾値以上であると決定することに応じて、５０４において、障害カウンタをリセットすることを含む。例えば、ステータスデータアナライザー１４６は、停止時間５１３とスタート時間５１１との差が時間閾値５１５を満たす（例えば、時間閾値５１５以上である）と決定することに応じて、障害カウンタ５１７を（例えば、０に）リセットする。特定の一態様において、障害カウンタ５１７は、予定プロセスのスタート後比較的早期に発生した予定プロセスの連続的な障害の数を示す。
【０１０６】
方法４０４はまた、５０６において、障害カウンタの現在値が障害数閾値未満であるかどうかを決定することを含む。例えば、図１のステータスデータアナライザー１４６は、障害カウンタ５１７の値が障害数閾値５１９を満たすかどうか（（例えば、閾値５１９未満であるかどうか）を決定する。
【０１０７】
方法４０４は、５０６で障害カウンタの値が障害数閾値未満であると決定することに応じて、５０８において、アプリケーションリスタート判定基準が満たされていると決定することを含む。例えば、ステータスデータアナライザー１４６は、障害カウンタ５１７の値が障害数閾値５１９を満たす（例えば、閾値５１９未満である）と決定することに応じて、アプリケーションリスタート判定基準１１１が満たされていると決定する。
【０１０８】
方法４０４は、５０６で障害カウンタの値が障害数閾値以上であると決定することに応じて、５１０において、アプリケーションリスタート判定基準が満たされていないと決定することを含む。例えば、ステータスデータアナライザー１４６は、障害カウンタ５１７の値が障害数閾値５１９を満たさない（例えば、閾値５１９以上である）と決定することに応じて、アプリケーションリスタート判定基準１１１が満たされていないと決定する。具体的には、予定プロセスのスタート後比較的早期に発生した予定プロセスの連続的な障害の数が障害数閾値５１９以上である場合、ステータスデータアナライザー１４６は、計算ノード１０２でのソフトウエアアプリケーションのリスタート１２２を制止する。
【０１０９】
このようにして、ステータスデータアナライザー１４６は、予定プロセスのスタートと予定プロセス停止検出との間の時間に基づいて、アプリケーションリスタート判定基準１１１が満たされているかどうかの決定を可能にする。例えば、ステータスデータアナライザー１４６は、予定プロセスがスタート後比較的早期に停止したこと及び閾値を上回る数の障害が検出されたことに応じて、計算ノード１０２でソフトウエアアプリケーション１２２をシャットダウンする。
【０１１０】
図６は、ソフトウエアアプリケーションのプロセスの監視方法６００の一実施例を示している。特定の一態様において、方法６００は、図１のピアモニター１５０、ピアモニターチェッカー１５２、ピアモニターチェッカー検証器１５４、計算ノード１０２、計算ノード１０４、計算ノード１０６、システム１００、又はこれらの組み合わせによって実施される。
【０１１１】
特定の一態様において、方法６００は、図２の２０６から継続する。例えば、クラスター管理装置１１０は、ピアアラートサービスグループをスタートするようにとのリクエストを計算ノード１０２（例えば、選択された計算ノード）に送る。方法６００は、リクエストを受け取ることに応じて、計算ノード１０２で実施される。
【０１１２】
方法６００は、６０２において、ピアモニターチェッカー及びピアモニターをスタートすることを含む。例えば、図１のステータスデータアナライザー１４６は、図１を参照して記載されるように、ピアモニターチェッカー１５２、ピアモニター１５０、又は両方をスタートする。特定の一態様において、ステータスデータアナライザー１４６は、ピアモニターチェッカー１５２及びピアモニター１５０にそれぞれ対応する、図１のプロセッサ１３４における実行の第１のスレッド及び第２のスレッドをスタートする。
【０１１３】
方法６００はまた、６１０において、ピアモニターのステータスをチェックすることを含む。例えば、図１のピアモニターチェッカー１５２は、ピアモニター１５０に対応するプロセス１２４のサブセットを示す第１のプロセスデータを生成する。
【０１１４】
方法６００は、６１２において、ピアモニターが実行を停止したかどうかを決定することを更に含む。例えば、図１のピアモニターチェッカー１５２は、図１を参照して記載されるように、第１のプロセスデータに基づいて、計算ノード１０２でピアモニター１５０が実行を停止したかどうかを決定する。
【０１１５】
方法６００はまた、６１２でピアモニターが実行を停止しているか否かを決定することに応じて、６１０に戻ることを含む。例えば、図１のピアモニターチェッカー１５２は、第１の時間に、計算ノード１０２でピアモニター１５０が実行されている又は計算ノード１０２でピアモニター１５０は以前に実行されていなかったと決定することに応じて、第２の時間に第１のプロセスデータの更新バージョンを生成する。
【０１１６】
方法６００は、６１２においてピアモニターが実行を停止したと決定することに応じて、６１４においてピアモニターをリスタートすることを更に含む。例えば、ピアモニターチェッカー１５２は、計算ノード１０２でピアモニター１５０が実行を停止したと決定することに応じて、ピアモニター１５０をリスタートする。
【０１１７】
方法６００は、６１６において、他のノードでサービスグループのステータスをチェックすることを含む。例えば、図１のピアモニター１５０は、他の計算ノードでサービスグループのステータスを示すデータを集める。具体的には、ピアモニター１５０は、図１を参照して記載されるように、クラスター管理装置１１０からのクラスタープロセスデータ１４３、記憶デバイス１０８からの計算ノード１０４に対応するログデータ１４１、記憶デバイス１０８からの計算ノード１０６に対応する第３のログデータ、又はこれらの組み合わせを受け取る。
【０１１８】
方法６００は、６１８において、実行を停止したサービスグループがあるかどうかを決定することを含む。例えば、ピアモニター１５０は、他の計算ノードで実行を停止したサービスグループがあるかどうかを決定する。具体的には、ピアモニター１５０は、計算ノード１０４で第２のサービスグループ（例えば、第２のプロセスモニター、第２のプロセスモニターチェッカー、又は両方）が実行を停止したことをクラスタープロセスデータ１４３（又はログデータ１４１）が示すかどうかを決定する。特定の一態様において、ピアモニター１５０は、計算ノード１０６で第３のサービスグループ（例えば、第３のプロセスモニター、第３のプロセスモニターチェッカー、又は両方）が実行を停止したことをクラスタープロセスデータ１４３（又は第３のログデータ）が示すかどうかを決定する。方法６００は、６１８において、実行を停止したサービスグループがないと決定することに応じて、６２２に継続することを含む。
【０１１９】
方法６００は、６１８で少なくとも一つのサービスグループが実行を停止したと決定することに応じて、６２０において、停止ノード通知を実行すること及びダッシュボードデータを更新することを含む。例えば、ピアモニター１５０は、計算ノード１０４で第２のプロセスモニター又は第２のプロセスモニターチェッカーのうちの少なくとも一つが実行を停止したと決定することに応じて、第２のサービスグループが実行を停止したと決定する。ピアモニター１５０は、第２のサービスグループが実行を停止したと決定することに応じて、計算ノード１０４でソフトウエアアプリケーション１２２の障害（又はシャットダウン）が検出されていることを示す、通知１５１、通知１５３、通知１５７、通知１５９、又はこれらの組み合わせを生成する。特定の一態様において、ピアモニター１５０は、計算ノード１０４でソフトウエアアプリケーション１２２の障害（又はシャットダウン）が検出されていることを示すために、ダッシュボードデータ１２１を更新する。
【０１２０】
方法６００はまた、６２２において、ピアモニターチェッカーのステータスをチェックすることを含む。例えば、図１のピアモニターチェッカー検証器１５４は、ピアモニターチェッカー１５２に対応するプロセス１２４のサブセットを示す第２のプロセスデータを生成する。
【０１２１】
方法６００は、６２４において、ピアモニターチェッカーが実行を停止したかどうかを決定することを更に含む。例えば、図１のピアモニターチェッカー検証器１５４は、図１を参照して記載されるように、第２のプロセスステータスデータに基づいて、ピアモニターチェッカー１５２が実行を停止したかどうかを決定する。
【０１２２】
方法６００は、６２４において、ピアモニターチェッカーが実行を停止しているか否かを決定することに応じて６１６に戻ることを含む。例えば、図１のピアモニター１５０は、第１の時間に、クラスタープロセスデータ１４３の第１のバージョン、ログデータ（例えば、ログデータ１４１、第３のログデータ、又は両方）の第１のバージョン、又はこれらの組み合わせを生成する。ピアモニター１５０は、クラスタープロセスデータ１４３の第１のバージョン、ログデータの第１のバージョン、又は両方に基づいて、他の計算ノードでサービスグループが実行を停止したかどうかを決定し、実行を停止したサービスグループがあればそのために停止ノード通知を実行する。ピアモニターチェッカー検証器１５４は、第１の時間より後の第２の時間に、第２のプロセスデータを生成する。ピアモニターチェッカー検証器１５４は、第２のプロセスデータに基づいて、ピアモニターチェッカー１５２が実行を停止したかどうかを決定し、ピアモニターチェッカー１５２が実行を停止している場合、ピアモニターチェッカー１５２をリスタートする。ピアモニター１５０は、第３の時間に、クラスタープロセスデータ１４３の第２のバージョン、ログデータ（例えば、ログデータ１４１、第３のログデータ、又は両方）の第２のバージョン、又はこれらの組み合わせを生成する。特定の一態様において、第３の時間は、第２の時間より後である。特定の一態様において、ピアモニター１５０は、クラスタープロセスデータ１４３の更新バージョンについての第１のリクエストをクラスター管理装置１１０に送るか、ログデータ（例えば、ログデータ１４１、第３のログデータ、又は両方）の更新バージョンについての第２のリクエストを記憶デバイス１０８に送るか、又はこれらの組み合わせを行う。
【０１２３】
方法６００は、６２４においてピアモニターチェッカーが実行を停止したと決定することに応じて、６２６においてピアモニターチェッカーをリスタートすることを含む。例えば、図１のピアモニターチェッカー検証器１５４は、ピアモニターチェッカー１５２が実行を停止したことを第２のピアデータが示すと決定することに応じて、ピアモニターチェッカー１５２をリスタートする。方法６００は６１６に戻る。
【０１２４】
このようにして、方法６００は、複数のレベルのチェックを使用して他の計算ノードにおけるプロセスの厳重な監視を可能にする。図６は、ピアモニターチェッカー１５２及びピアモニター１５０によって提供される二つのレベルのチェックを示している。
【０１２５】
図７は、ソフトウエアアプリケーションプロセスの監視方法７００のフロー図である。方法７００は、図１のステータスデータアナライザー１４６、プロセスモニター１４０、ピアモニター１５０、計算ノード１０２、計算ノード１０４、計算ノード１０６、システム１００、又はこれらの組み合わせによって実施することができる。
【０１２６】
方法７００は、７０２において、ソフトウエアアプリケーションの複数のインスタンスを実行するように構成された複数の計算ノードのうちの第１の計算ノードにおいて、第１の計算ノードで実行中のソフトウエアアプリケーションの第１のインスタンスに関するプロセスステータスデータを生成することを含む。例えば、図１のプロセスモニター１４０は、計算ノード１０２で実行中のソフトウエアアプリケーション１２２の第１のインスタンス１６０に関するプロセスステータスデータ１０５を生成する。特定の一態様において、計算ノード１０２、計算ノード１０４、及び計算ノード１０６は、ソフトウエアアプリケーション１２２の第１のインスタンス１６０、第２のインスタンス１６２、及び第３のインスタンスをそれぞれ実行するように構成される。
【０１２７】
方法７００は、７０４において、プロセスステータスデータに基づいて、第１の計算ノードでソフトウエアアプリケーションの第１のインスタンスの予定プロセスが実行を停止したかどうかを決定すること７００も含む。例えば、図１のステータスデータアナライザー１４６は、図１を参照して記載されるように、プロセスステータスデータ１０５に基づいて、計算ノード１０２でソフトウエアアプリケーション１２２の第１のインスタンス１６０の予定プロセス１０７が実行を停止したかどうかを決定する。
【０１２８】
方法７００は、７０６において、第１の計算ノードで予定プロセスが実行を停止したとの決定に基づいて、第１の計算ノードでソフトウエアアプリケーションの第１のインスタンスを選択的にリスタートすることを更に含む。例えば、図１のステータスデータアナライザー１４６は、図１を参照して記載されるように、計算ノード１０２で予定プロセス１０７が実行を停止したとの決定に基づいて、計算ノード１０２でソフトウエアアプリケーション１２２の第１のインスタンス１６０を選択的にリスタートする。
【０１２９】
方法７００は、７０８において、複数の計算ノードのうちの第２の計算ノードでソフトウエアアプリケーションの第２のインスタンスが障害を起こしたかどうかを決定すること７００も含む。例えば、図１のピアモニター１５０は、図１を参照して記載されるように、ソフトウエアアプリケーション１２２の第２のインスタンス１６２が計算ノード１０４で障害を起こしたかどうかを決定する。
【０１３０】
方法７００は、７１０において、第２の計算ノードで第２のインスタンスが障害を起こしたと決定することに応じて、ソフトウエアアプリケーションの第２のインスタンスに関連付けられる不完全タスクに基づくアクションを実施することを更に含む。例えば、図１のピアモニター１５０は、図１を参照して記載されるように、計算ノード１０４でソフトウエアアプリケーション１２２の第２のインスタンス１６２が障害を起こしたと決定することに応じて、ソフトウエアアプリケーション１２２の第２のインスタンス１６２に関連付けられる不完全タスク１０９に基づくアクション１２８を実施する。
【０１３１】
このようにして、方法７００は、第１のインスタンス１６０を選択的にリスタートすることにより、計算ノード１０２においてソフトウエアアプリケーション１２２のダウンタイムを短縮する。方法７００はまた、計算ノード１０４における障害を起こしたソフトウエアアプリケーション１２２のインスタンスに関連付けられる不完全タスク１０９への対処を計算ノード１０２に行わせることにより、有効な状態への回復を可能にする。
【０１３２】
図８は、本開示によるコンピュータで実現される方法及びコンピュータで実行可能なプログラム命令（又はコード）の態様を支持するように構成されたコンピューティング装置８１０を含む、計算環境８００のブロック図を示している。例えば、コンピューティング装置８１０又はその一部は、図１−７を参照して記載された一又は複数の動作を開始、実施、又は制御するための命令を実行するように構成される。特定の一態様において、コンピューティング装置８１０は、計算ノード１０２、計算ノード１０４、計算ノード１０６、クラスター管理装置１１０、又はこれらの組み合わせに対応する。
【０１３３】
コンピューティング装置８１０は送受信機８２２を含む。コンピューティング装置８１０はプロセッサ８２０を含む。特定の一態様において、プロセッサ８２０は、図１のプロセッサ１３４に対応する。特定の一態様において、プロセッサ８２０は、プロセスモニター１４０、プロセスモニターチェッカー１４２、ステータスデータアナライザー１４６、ピアモニター１５０、ピアモニターチェッカー１５２、又はこれらの組み合わせを含む。プロセッサ８２０は、システムメモリ８３０、一又は複数の記憶デバイス８４０、一又は複数の入力／出力インターフェース８５０、一又は複数の通信インターフェース８６０、又はこれらの組み合わせと通信するように構成される。システムメモリ８３０は、揮発性メモリデバイス（例えばランダムアクセスメモリ（ＲＡＭ）デバイス）、不揮発性メモリデバイス（例えば、読み出し専用メモリ（ＲＯＭ）デバイス、プログラマブル読み出し専用メモリ、及びフラッシュメモリ）、又は両方を含む。システムメモリ８３０は、コンピューティング装置８１０をブート処理するための基本入力／出力システムを含みうるオペレーティングシステム８３２、並びにコンピューティング装置８１０がユーザ、他のプログラム、及び他の装置と相互作用することを可能にするためのフルオペレーティングシステムを格納する。システムメモリ８３０は、システム（プログラム）データ８３６を記憶する。特定の一態様において、図１のメモリ１３２は、システムメモリ８３０、一又は複数の記憶デバイス８４０、又はこれらの組み合わせを含む。
【０１３４】
システムメモリ８３０は、プロセッサ８２０によって実行可能な一又は複数のアプリケーション８３４を含む。一実施例として、一又は複数のアプリケーション８３４は、図１−７を参照して記載される一又は複数の動作を開始、制御、又は実施するための、プロセッサ８２０によって実行可能な図１の命令１２５を含む。具体的には、一又は複数のアプリケーション８３４は、プロセスモニター１４０、プロセスモニターチェッカー１４２、ステータスデータアナライザー１４６、ピアモニター１５０、ピアモニターチェッカー１５２、又はこれらの組み合わせに関して記載される一又は複数の動作を開始、制御、又は実施するための、プロセッサ８２０によって実行可能な図１の命令１２５を含む。
【０１３５】
プロセッサ８２０は、一又は複数の記憶デバイス８４０と通信するように構成される。例えば、一又は複数の記憶デバイス８４０は、磁気ディスク、光ディスク、又はフラッシュメモリデバイスといった不揮発性記憶デバイスを含む。特定の一実施例において、記憶デバイス８４０は、取り外し可能なメモリデバイス及び取り外し不可なメモリデバイスの両方を含む。記憶デバイス８４０は、オペレーティングシステム、オペレーティングシステムの画像、アプリケーション、及びプログラムデータを記憶するように構成される。特定の一態様において、システムメモリ８３０、記憶デバイス８４０、又は両方は、有形のコンピュータ可読媒体を含む。特定の一態様において、記憶デバイス８４０のうちの一又は複数は、コンピューティング装置８１０の外部に存在する。
【０１３６】
プロセッサ８２０は、ユーザとの相互作用を容易にするために、コンピューティング装置８１０が一又は複数の入力／出力装置８７０と通信することを可能にする一又は複数の入力／出力インターフェース８５０と通信するように構成される。プロセッサ８２０は、入力／出力インターフェース８５０を介して受け取られたユーザ入力に基づいて相互作用イベントを検出するように構成される。特定の一態様において、入力／出力装置８７０は図１のディスプレイ１１４を含む。プロセッサ８２０は、入力／出力インターフェース８５０を介して、図１のディスプレイ１１４にディスプレイを送るよう構成される。特定の一態様において、入力／出力インターフェース８５０は、図１のディスプレイインターフェース１２６を含む。プロセッサ８２０は、一又は複数の通信インターフェース８６０を介して、装置又はコントローラ８８０と通信するように構成される。例えば、一又は複数の通信インターフェース８６０は図１のネットワークインターフェース１３０を含み、装置又はコントローラ８８０は、クラスター管理装置１１０、記憶デバイス１０８、計算ノード１０４、計算ノード１０６、ネットワーク１９０、又はこれらの組み合わせを含む。一実施例において、非一過性のコンピュータ可読記憶媒体（例えば、システムメモリ８３０）は、プロセッサ（例えば、プロセッサ８２０）によって実行されるとプロセッサに動作を開始、実施、制御させる命令を含む。前記動作は、図１−７を参照して記載される一又は複数の動作を含む。
【０１３７】
更に、本開示は、以下の条項による実施形態を含む。
【０１３８】
条項１．プロセスを監視するためのシステム（１００）であって、
ソフトウエアアプリケーション（１２２）の複数のインスタンス（１６０、１６２）を実行するように構成された複数の計算ノード（１０２、１０４、１０６）のうちの第１の計算ノード（１０２）と、第２の計算ノード（１０４）とを備え、第１の計算ノード（１０２）が、
第１の計算ノード（１０２）で実行中のソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）に関するプロセスステータスデータ（１０５）を生成するように構成されたプロセスモニター（１４０）、
プロセスステータスデータ（１０５）に基づいて、第１の計算ノード（１０２）でソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）の予定プロセス（１０７）が実行を停止したかどうかを決定し、
第１の計算ノード（１０２）で予定プロセス（１０７）が実行を停止したとの決定に基づいて、ソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）を選択的にリスタートする
ように構成されたステータスデータアナライザー（１４６）、
第１の計算ノード（１０２）でプロセスモニター（１４０）が実行を停止したかどうかを決定し、
第１の計算ノード（１０２）でプロセスモニター（１４０）が実行を停止したと決定することに応じてプロセスモニター（１４０）をリスタートする
ように構成されたプロセスモニターチェッカー（１４２）、及び
複数の計算ノード（１０２、１０４、１０６）のうちの第２の計算ノード（１０４）でソフトウエアアプリケーション（１２２）の第２のインスタンス（１６２）が障害を起こしたかどうかを決定し、
第２の計算ノード（１０４）で第２のインスタンス（１６２）が障害を起こしたと決定することに応じて、ソフトウエアアプリケーション（１２２）の第２のインスタンス（１６２）に関連付けられる不完全タスク（１０９）に基づくアクション（１２８）を実施する
ように構成されたピアモニター（１５０）
を含む、システム。
【０１３９】
条項２．プロセスモニター（１４０）が、
第１の計算ノード（１０２）でプロセスモニターチェッカー（１４２）が実行を停止したかどうかを決定し、
第１の計算ノード（１０２）でプロセスモニターチェッカー（１４２）が実行を停止したと決定することに応じて、プロセスモニターチェッカー（１４２）をリスタートする
ように構成されたプロセスモニターチェッカー検証器（１４４）を更に含む、条項１のシステム（１００）。
【０１４０】
条項３．第１の計算ノード（１０２）が、
第１の計算ノード（１０２）でピアモニター（１５０）が実行を停止したかどうかを決定し、
第１の計算ノード（１０２）でピアモニター（１５０）が実行を停止したと決定することに応じて、ピアモニター（１５０）をリスタートする
ように構成されたピアモニターチェッカー（１５２）を更に含む、条項１又は２のシステム（１００）。
【０１４１】
条項４．ピアモニター（１５０）が、
第１の計算ノード（１０２）でピアモニターチェッカー（１５２）が実行を停止したかどうかを決定し、
第１の計算ノード（１０２）でピアモニターチェッカー（１５２）が実行を停止したと決定することに応じて、ピアモニターチェッカー（１５２）をリスタートする
ように構成されたピアモニターチェッカー検証器（１５４）を更に含む、条項２又は３のシステム（１００）。
【０１４２】
条項５．ステータスデータアナライザー（１４６）が、第１の計算ノード（１０２）で予定プロセス（１０７）が実行を停止したと決定することに応じて、
アプリケーションリスタート判定基準（１１１）が満たされているかどうかを決定し、
アプリケーションリスタート判定基準（１１１）が満たされていると決定することに応じて、第１の計算ノード（１０２）でソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）をリスタートする
ように構成されている、条項１−４のいずれか一つのシステム（１００）。
【０１４３】
条項６．ステータスデータアナライザー（１４６）が、
プロセスステータスデータ（１０５）に基づいて、第１の時間（５１３）に第１の計算ノード（１０２）で予定プロセス（１０７）が実行されていないとして検出されると決定し、
第１の時間（５１３）と、第１の計算ノード（１０２）で予定プロセス（１０７）が以前にスタートされた時間を示すスタート時間（５１１）との差が時間閾値（５１５）以上であるかどうかを決定し、
差が時間閾値（５１５）以上であると決定することに応じて、障害カウンタ（５１７）をリセットし、
障害カウンタ（５１７）に基づいて、アプリケーションリスタート判定基準（１１１）が満たされているかどうかを決定する
ように構成されている、条項１−５のいずれか一つのシステム（１００）。
【０１４４】
条項７．ステータスデータアナライザー（１４６）が、第１の計算ノード（１０２）でソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）の予定プロセス（１０７）が実行を停止したと決定することの後で、
障害カウンタ（５１７）が障害数閾値（５１９）以上であるかどうかを決定し、
障害カウンタ（５１７）が障害数閾値（５１９）未満であると決定することに応じて、アプリケーションリスタート判定基準（１１１）が満たされていると決定する
ように構成されている、条項１−６のいずれか一つのシステム（１００）。
【０１４５】
条項８．ステータスデータアナライザー（１４６）が、障害カウンタ（５１７）が障害数閾値（５１９）以上であると決定することに応じて、アプリケーションリスタート判定基準（１１１）が満たされていないと決定するように構成されている、条項１−７のいずれか一つのシステム（１００）。
【０１４６】
条項９．ステータスデータアナライザー（１４６）が、アプリケーションリスタート判定基準（１１１）が満たされていないと決定することに応じて、第１の計算ノード（１０２）でソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）のリスタートを制止するように構成されている、条項１−８のいずれか一つのシステム（１００）。
【０１４７】
条項１０．クラスター管理装置（１１０）及び記憶デバイス（１０８）を更に備え、ステータスデータアナライザー（１４６）が、アプリケーションリスタート判定基準（１１１）が満たされていないと決定することに応じて、第１の通知（１５３）をユーザ装置（１１２）へ送るか、第２の通知（１５１）をクラスター管理装置（１１０）へ送るか、第３の通知（１５７）を複数の計算ノード（１０２、１０４、１０６）のうちの第３の計算ノード（１０６）へ送るか、記憶デバイス（１０８）のログデータ（１３１）を更新して第１の計算ノード（１０２）でソフトウエアアプリケーション（１２２）がシャットダウンされていることを示すか、又はこれらの組み合わせを行うように構成されている、条項１−９のいずれか一つのシステム（１００）。
【０１４８】
条項１１．ステータスデータアナライザー（１４６）が、アプリケーションリスタート判定基準（１１１）が満たされていないと決定することに応じて、第１の計算ノード（１０２）でプロセスモニター（１４０）、プロセスモニターチェッカー（１４２）、及びピアモニター（１５０）の実行を停止するように構成されている、条項１−１０のいずれか一つのシステム（１００）。
【０１４９】
条項１２．ソフトウエアアプリケーション（１２２）の複数のインスタンス（１６０、１６２）を実行するように構成された複数の計算ノード（１０２、１０４、１０６）のうちの第１の計算ノード（１０２）において、第１の計算ノード（１０２）で実行中のソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）に関するプロセスステータスデータ（１０５）を生成すること、
プロセスステータスデータ（１０５）に基づいて、第１の計算ノード（１０２）でソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）の予定プロセス（１０７）が実行を停止したかどうかを決定すること、
第１の計算ノード（１０２）で予定プロセス（１０７）が実行を停止したとの決定に基づいて、第１の計算ノード（１０２）でソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）を選択的にリスタートすること、
複数の計算ノード（１０２、１０４、１０６）のうちの第２の計算ノード（１０４）でソフトウエアアプリケーション（１２２）の第２のインスタンス（１６２）が障害を起こしたかどうかを決定すること、及び
第２の計算ノード（１０４）で第２のインスタンス（１６２）が障害を起こしたと決定することに応じて、ソフトウエアアプリケーション（１２２）の第２のインスタンス（１６２）に関連付けられる不完全タスク（１０９）に基づくアクション（１２８）を実施すること
を含む方法。
【０１５０】
条項１３．記憶デバイス（１０８）から、第２の計算ノード（１０４）に関連付けられるログデータ（１４１）を第１の計算ノード（１０２）で受け取ること、及び
ログデータ（１４１）に基づいて不完全タスク（１０９）を識別すること
を更に含む、条項１２の方法。
【０１５１】
条項１４．アクション（１２８）を実施することが、不完全タスク（１１５）を元に戻すこと又は不完全タスク（１１５）を完了することを含む、条項１２又は１３の方法。
【０１５２】
条項１５．不完全タスク（１０９）がデータベース更新（１１５）を含み、アクション（１２８）が、データベース更新（１１５）のロールバックを実施すること又はデータベース更新（１１５）を行うことを含む、条項１２−１４のいずれか一つの方法。
【０１５３】
条項１６．クラスター管理装置（１１０）からクラスタープロセスデータ（１４３）を受け取ること、及び
クラスタープロセスデータ（１４３）に基づいて、第２の計算ノード（１０４）でソフトウエアアプリケーション（１２２）の第２のインスタンス（１６２）が障害を起こしたと決定すること
を更に含む、条項１２−１５のいずれか一つの方法。
【０１５４】
条項１７．第２の計算ノード（１０４）でソフトウエアアプリケーション（１２２）の第２のインスタンス（１６２）の第２の予定プロセス（１１３）が実行を停止したことをクラスタープロセスデータ（１４３）が示すと決定することに応じて、第２の計算ノード（１０４）でソフトウエアアプリケーション（１２２）の第２のインスタンス（１６２）が障害を起こしたと決定することを更に含む、条項１２−１６のいずれか一つの方法。
【０１５５】
条項１８．記憶デバイス（１０８）から、第２の計算ノード（１０４）に関連付けられるログデータ（１４１）を第１の計算ノード（１０２）で受け取ること、及び
第２の計算ノード（１０４）でソフトウエアアプリケーション（１２２）がシャットダウンされていることをログデータ（１４１）が示すと決定することに応じて、第２の計算ノード（１０４）でソフトウエアアプリケーション（１２２）の第２のインスタンス（１６２）が障害を起こしたと決定すること
を更に含む、条項１２−１７のいずれか一つの方法。
【０１５６】
条項１９．命令を記憶するコンピュータ可読記憶デバイス（１３２）であって、命令は、プロセッサによって実行されると、プロセッサに、
ソフトウエアアプリケーション（１２２）の複数のインスタンス（１６０、１６２）を実行するように構成された複数の計算ノード（１０２、１０４、１０６）のうちの第１の計算ノード（１０２）において、第１の計算ノード（１０２）で実行中のソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）に関するプロセスステータスデータ（１０５）を生成すること、
プロセスステータスデータ（１０５）に基づいて、第１の計算ノード（１０２）でソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）の予定プロセス（１０７）が実行を停止したかどうかを決定すること、
第１の計算ノード（１０２）で予定プロセス（１０７）が実行を停止したとの決定に基づいて、第１の計算ノード（１０２）でソフトウエアアプリケーション（１２２）の第１のインスタンス（１６０）を選択的にリスタートすること、
複数の計算ノード（１０２、１０４、１０６）のうちの第２の計算ノード（１０４）でソフトウエアアプリケーション（１２２）の第２のインスタンス（１６２）が障害を起こしたかどうかを決定すること、及び
第２の計算ノード（１０４）で第２のインスタンス（１６２）が障害を起こしたと決定することに応じて、ソフトウエアアプリケーション（１２２）の第２のインスタンス（１６２）に関連付けられる不完全タスク（１０９）に基づくアクション（１２８）を実施すること
を含む動作を実施させる、コンピュータ可読記憶デバイス。
【０１５７】
条項２０．前記動作が、第２の計算ノード（１０４）で第２のインスタンス（１６２）が障害を起こしたと決定することに応じて、
第１の計算ノード（１０２）からクラスター管理装置（１１０）へ、第２の計算ノード（１０４）で第２のインスタンス（１６２）が障害を起こしたことを示す通知（１５１）を送ること、及び
クラスター管理装置（１１０）から、不完全タスク（１０９）の割り当て（１４５）を第１の計算ノード（１０２）で受け取ることであって、割り当て（１４５）を受け取ることに応じてアクション（１２８）が実施される、受け取ること
を更に含む、条項１９のコンピュータ可読記憶デバイス（１３２）。
【０１５８】
条項２１．前記動作が、
クラスター管理装置（１１０）から割り当て（１４５）を受け取ることに応じて、第２の計算ノード（１０４）に関連付けられるログデータ（１４１）に関するリクエスト（１６１）を記憶デバイス（１０８）へ送ること、及び
ログデータ（１４１）に基づいて不完全タスク（１０９）を識別すること
を更に含む、条項１９又は２０のコンピュータ可読記憶デバイス（１３２）。
【０１５９】
条項２２．前記動作が、第２の計算ノード（１０４）で第２のインスタンス（１６２）が障害を起こしたと決定することに応じて、第１の計算ノード（１０２）のプロセスステータスデータ（１０５）をクラスター管理装置（１１０）へ送ることを更に含み、クラスター管理装置（１１０）へ送られる通知（１５１）が、第２のプロセスデータ（１６５）に関するリクエスト（１６３）をクラスター管理装置（１１０）から複数の計算ノード（１０２、１０４、１０６）のうちの第３の計算ノード（１０６）へ送ることを開始し、割り当て（１４５）がプロセスステータスデータ（１０５）と第２のプロセスステータスデータ（１６５）とに基づいている、条項１９−２１のいずれか一つのコンピュータ可読記憶デバイス（１３２）。
【０１６０】
図１−８の一又は複数は、本開示の教示によるシステム、装置、及び／又は方法を例示しているが、本開示はこれら図示のシステム、装置、及び／又は方法に限定されない。図１−８のいずれかに示される又はここに記載される一又は複数の機能又は構成要素は、図１−８の別の図の一又は複数の他の部分と組み合わせて実施することができる。例えば、図７の方法７００の一又は複数のエレメントは、ここに記載される他の動作と組み合わせることができる。したがって、ここに記載される単独の実装態様を限定的なものと解釈するべきでなく、本開示の実装態様は、本開示の教示から逸脱することなく適切に組み合わせることができる。一実施例として、図１−８を参照して記載される一又は複数の動作は、任意選択的なものであり、少なくとも部分的に同時に実施することができる、及び／又は図示又は記載の順序とは異なる順序で実施することができる。
【０１６１】
上述の実施例は例示的なものであり、本開示を限定しない。本開示の原理により多数の修正例及び変形例が可能であることを理解されたい。
【０１６２】
ここに記載される実施例の説明は、様々な実装態様の構造の一般的な理解をもたらすことを意図している。このような説明は、ここに記載される構造又は方法を利用する装置及びシステムの要素及び特徴のすべてを網羅的に記載することを意図していない。本開示を精査することで、当業者には他の多くの実装態様が明らかであろう。本開示から逸脱することなく構造的且つ論理的な置換及び変更を行うことができるように、他の実装態様を利用することができ、且つ本開示から導くことができる。例えば、図面に示される順序とは異なる順序で方法動作を実行することができるか、又は一又は複数の方法動作を省略することができる。したがって、本開示及び図面は、限定的というよりむしろ例示的なものである。
【０１６３】
更に、ここでは特定の実施例を図示し、説明したが、同じ又は同様の結果を実現するように設計された後発の構成で、図示の特定の実装態様を置換し得ることを認識されたい。本開示は、様々な実装態様のあらゆる後発の適合例又は変形例を含むことを意図している。上記の実装態様の組み合わせ、及びここには具体的に記載しない他の実装態様が、本明細書の記載を精査した当業者には明らかであろう。
【０１６４】
本開示の要約書は、特許請求の範囲又は意味の解釈又は限定のために使用されないとの理解のもとに提出される。加えて、上記の「発明を実施するための形態」においては、本開示を簡潔にする目的で、様々な特徴が、グループ化されるか、又は単一の実装態様において説明されている場合がある。上述の実施例は、説明的なものであって本開示を限定しない。本開示の原理に従って、多数の修正例及び変形例が可能であることも理解されたい。特許請求の範囲に記載のように、特許請求される主題は、開示されたいずれかの実施例の特徴のすべてよりも少ない特徴を対象としている場合がある。したがって、本開示の範囲は、特許請求の範囲及びその均等物によって規定される。
【図１】
2020115330.tif 000003
【図２】
2020115330.tif 000004
【図３】
2020115330.tif 000005
【図４】
2020115330.tif 000006
【図５Ａ】
2020115330.tif 000007
【図５Ｂ】
2020115330.tif 000008
【図６】
2020115330.tif 000009
【図７】
2020115330.tif 000010
【図８】
2020115330.tif 000011
【外国語明細書】
2020115330000001.pdf
2020115330000002.pdf
2020115330000003.pdf
2020115330000004.pdf