【手続補正書】
【提出日】平成20年10月14日(2008.10.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１台のコンピュータ（ＯＰ、ＳＢ）によって実行される、被管理プロセス（Ｐ１、ＰＢ１）と呼ばれるアプリケーション・プロセスの実行中にプログラム命令によって開始される、非決定論的ソフトウェア・オペレーション（ＥＶＩｎＤ）を管理するための方法であって、前記オペレーションの実行により、実結果（ＤＲ、ＲＲＪ）と呼ばれる少なくとも１つの結果データが前記被管理プロセスに送信され、
実結果に対応する可能性が有り、且つ前記オペレーションに関する予測結果（ＲＰ）を構成する値を供給するために、前記オペレーションの前にあったような被管理プロセスの状態またはそれが属するアプリケーション（ＡＯＰ、ＡＳＢ）の状態に基づいて、予測機能（ＦＨ）と呼ばれる決定論的ソフトウェア処理を実行するステップと、
予測結果（ＲＰ）の値が実結果（ＤＲ、ＲＲＪ）の値に対応するか否かを確定するための比較テスト・ステップと、
先行するテストの結果に依存する、前記被管理オペレーションの補足管理フェーズ（ＣＨ、ＤＨ）を実行するステップと、
を含む、方法。
【請求項２】
１次ノード（ＯＰ）と呼ばれるコンピュータで実行されるロギングされたプロセス（Ｐ１）の実行の一部を形成する、被ロギング（ＥＶＩｎＤ、図１３）と呼ばれるオペレーションを管理し、この管理は、前記被ロギング・オペレーションを、２次ノードによって実行される再始動プロセスが、被ロギング・オペレーションに対応する、被リプレイと呼ばれるオペレーションをリプレイできるようにする、ロギング・データの形で記録し、被ロギング・オペレーションに対応する結果を再始動プロセスに送信し、
補足管理フェーズ（ＣＨ）は、さらに、予期結果（ＲＰ）に対応しない実結果（ＤＲ）の場合、被ロギング・オペレーション（ＥＶＩｎＤ）の実結果（ＤＲ）の値を表す結果データを含むロギング・データを格納し、その後、前記オペレーションは予測されていないオペレーションと呼ばれることを特徴とする、
請求項１に記載の方法。
【請求項３】
１次ノード（ＯＰ）と呼ばれるコンピュータで実行されるロギングされたプロセス（Ｐ１）の実行の一部を形成する、被ロギング（ＥＶＩｎＤ、図１３）と呼ばれるオペレーションを管理し、この管理は、前記被ロギング・オペレーションを、２次ノードによって実行される再始動プロセスが、被ロギング・オペレーションに対応する、被リプレイと呼ばれるオペレーションをリプレイできるようにする、ロギング・データの形で記録し、被ロギング・オペレーションに対応する結果を再始動プロセスに送信し、
補足管理フェーズ（ＣＨ）は、被ロギング・オペレーション（ＥＶＩｎＤ）に関する識別データ（ＳＱ）の計算をさらに含むことを特徴とする、
請求項１または２に記載の方法。
【請求項４】
被ロギング・プロセス（Ｐ１）によって実行されるオペレーションの、被ロギングと呼ばれるシーケンスを記録し（ＪＯＰ）、前記シーケンスは、予測結果（ＲＰ）に対応しない実結果（ＤＲ）を送信する、予測されていないと呼ばれる少なくとも１つのオペレーション（ＥＶＩＤ）を含み、この記録は、被ロギング・シーケンスのオペレーションに対応する、被リプレイと呼ばれるオペレーションのシーケンスを、再始動プロセスにリプレイさせることが可能な、少なくとも１つのログ・ファイルの格納を含み、
前記ログ・ファイルは、前記予測されていないオペレーションの、被ロギング（ＤＲ）と呼ばれる実結果を表すデータを含み、前記データは、前記予測されていないオペレーションに対応する被リプレイ・オペレーションの完了時に、再始動プロセスが前記被ロギング結果に対応する結果を考慮の対象とするように使用可能であることを特徴とする、
請求項２または３に記載の方法。
【請求項５】
前記予測される非決定論的被ロギング・オペレーション（ＥＶＩｎＤ）の実結果（ＤＲ）を表すロギング・データが、ログ（ＪＳｅｍ１）内に格納されることなく、少なくとも１つの予測される非決定論的オペレーションが、被ロギング・プロセス・シーケンスのロギング時にロギングされることを特徴とする、
請求項２乃至４のいずれか一項に記載の方法。
【請求項６】
少なくとも１つの予測されていないオペレーション（ＥＶＩｎＤ）をロギングするために、ログ（ＪＳｅｍ１）に格納されるロギング・データが、
一方で、前記予測されていないオペレーションに対応する順序付けデータの値（ＳＱ）を表す識別データ、および
他方で、前記被ロギング・オペレーションによって送信された実結果を表す結果データ（ＤＲ）
を含むことを特徴とする、請求項５に記載の方法。
【請求項７】
少なくとも１つの被ロギング・シーケンスをログ（ＪＳｅｍ１）内に記録し、この記録は、前記シーケンス内に少なくとも１タイプの非決定論的内部イベント（ＥＶＩｎＤ）を構成する各被ロギング・オペレーションについて、
実結果に対応する可能性があり、且つ前記オペレーションに関する予測結果（ＲＰ）を構成する値を提供するために、前記オペレーションの前に、前記プロセス（Ｐ１）の状態またはそのアプリケーション（ＡＯＰ）に基づいて決定論的ソフトウェア処理（ＦＨ）を実施するステップ（４）と、
予測結果（ＲＰ）の値が実結果（ＤＲ）の値に対応するか否かを確定するための比較テスト・ステップ（５）と、
予測されていない結果の場合、一方で進行中のオペレーションに対応する順序付けデータ（ＳＱ）の値、および、他方で進行中のオペレーション（ＥＶＩｎＤ）によってロギングされたプロセスに送られる実結果の値を表す結果データ（ＤＲ）を、関連するように含む、ロギング・データのログ（ＪＳｅｍ１）に格納する（６）ステップと、
の、反復的繰り返しを含むことを特徴とする、請求項３乃至６のいずれか一項に記載の方法。
【請求項８】
２次ノード（ＳＢ）と呼ばれるコンピュータで実行される、再始動プロセス（ＰＢ１）の実行の一部を形成するオペレーションの、被リプレイと呼ばれるシーケンスを管理し、この管理は、ロギング・データ（ＪＳｅｍ１、図１４）を使用して、非決定論的被リプレイ・オペレーションごとに、ロギング時（ＪＯＰ）に戻された結果に対応する、強制（ＲＦ）と呼ばれる結果を、再始動プロセスが考慮するようにし、
補足管理フェーズ（ＤＨ）は、ロギング時に少なくとも１つの予測されていない非決定論的オペレーション（ＥＶＩｎＤ）について、
リプレイされているオペレーション（ＥＶＩｎＤ）に対応するオペレーションのロギング時に戻された結果を表す、被ロギング（ＲＬｉ）と呼ばれる結果データの前記ロギング・データにおける読み取り（５）と、
被リプレイ・オペレーションの結果（ＲＲＪ）のインターセプト、および被リプレイ・オペレーションから生じる結果（ＲＲＪ）に代わる、強制された結果（ＲＬｉ）の再始動プロセス（ＰＢ１）への転送（８）と、
を含むことを特徴とする、請求項１に記載の方法。
【請求項９】
２次ノードと呼ばれるコンピュータで実行される、再始動プロセス（ＰＢ１）の実行の一部を形成するオペレーションの、被リプレイと呼ばれるシーケンスを管理し、この管理は、ロギング・データ（ＪＳｅｍ１）を使用して、非決定論的被リプレイ・オペレーションごとに、ロギング時に戻された結果に対応する強制（ＲＦ）と呼ばれる結果を、再始動プロセスが考慮するようにし、
補足管理フェーズ（ＤＨ）は、ロギング時に予測された少なくとも１つの非決定論的オペレーションについて、
前記オペレーションのロギングに使用される予測機能に対応し、被リプレイ・オペレーションの予測結果（ＲＰ）を提供する、リプレイ予測機能（ＦＨ）と呼ばれる決定論的ソフトウェア処理を実施するステップ（６）と、
被リプレイ・オペレーションの結果（ＲＲＪ）をインターセプトし、被リプレイ・オペレーションから生じる結果（ＲＲＪ）に代わって、予測結果（ＲＰ）を再始動プロセスに転送するステップ（８）と、
を含むことを特徴とする、請求項１乃至８のいずれか一項に記載の方法。
【請求項１０】
２次ノードと呼ばれるコンピュータで実行される、再始動プロセス（ＰＢ１）の実行の一部を形成するオペレーションの、被リプレイと呼ばれるシーケンスを管理し、この管理は、ロギング・データ（ＪＳｅｍ１）を使用して、非決定論的被リプレイ・オペレーションごとに、ロギング時に戻された結果に対応する強制（ＲＦ）と呼ばれる結果を、再始動プロセスが考慮するようにし、
補足管理フェーズ（ＤＨ）は、ロギング・データがロギングされた結果を含まない少なくとも各オペレーション（ＥＶＩｎＤ）について、前記被リプレイ・オペレーションを表す順序付け値（ＳＱ）の増分を含むことを特徴とする、請求項１または８または９に記載の方法。
【請求項１１】
本質的に非決定論的であると識別されるすべてのオペレーションを管理するか、または本質的に非決定論的であると識別される結果を送信することを特徴とする、請求項４乃至１０のいずれか一項に記載の方法。
【請求項１２】
被管理シーケンス内で、被管理プロセス（Ｐ１、ＰＢ１）、またはそのアプリケーション（ＡＯＰ、ＡＳＢ）、またはそれらを実行するコンピュータ（ＯＰ、ＳＢ）の、内部に非決定論的イベントを生成する、すべてのオペレーションを管理することを特徴とする、請求項４乃至１１のいずれか一項に記載の方法。
【請求項１３】
実行可能ファイル（ＥＸＥ、図９）から実行された命令によって開始され、前記実行可能ファイルの外部にあるオリジナルと呼ばれるルーチン（Ｒ、ＲｎＤ）への呼び出しを含む、少なくとも１つのオペレーション（ＥＶＩｎＤ）を管理し、前記命令の実行は、前記オリジナル・ルーチンではなく、被修正と呼ばれるルーチン（ＲＭ、ＲＭｎＤ）への呼び出しを実行し、この被修正ルーチンは、方法の実装を生成または開始することを特徴とする、請求項１乃至１２のいずれか一項に記載の方法。
【請求項１４】
被修正ルーチン（ＲＭｎＤ）が、システム・ソフトウェア（ＯＰＳ、ＳＢＳ）内で実行される少なくとも１つの命令を含み、この命令が、少なくとも１つの管理ソフトウェア・エージェント（ＰｌｏｇＯＰ、ＲＰＩ）を呼び出し、この管理ソフトウェア・エージェントが、方法の実装を管理し、被管理プロセスのためにコンピュータのユーザ・メモリ・スペース（ＯＰＵ、ＳＢＵ）内で実行されることを特徴とする、請求項１３に記載の方法。
【請求項１５】
被修正ルーチン（ＲＭｎＤ）は、ルーチンを呼び出した命令が、ロギングまたはリプレイのコンテキストで実行されるかどうかを検証するテスト命令を含み、このテストが、それぞれロギング・タイプ（ＰｌｏｇＯＰ）またはリプレイ・タイプ（ＰＲＩ）の管理エージェントへの呼び出しに影響を与えることを特徴とする、請求項１３または１４に記載の方法。
【請求項１６】
被管理プロセス（Ｐ１、ＰＢ１）の実行時に以前に発生した、少なくとも１タイプの１つまたは複数の外部イベントの特徴に依存する決定論的ソフトウェア・プロセスを含む、少なくとも１つの予測機能（ＦＨ）を使用することを特徴とする、請求項１２乃至１５のいずれか一項に記載の方法。
【請求項１７】
第１の予測機能を使用することによって少なくとも１つの第１のオペレーションを、また第２の予測機能を使用することによって第２のオペレーションを、ロギングすることを特徴とする、請求項４乃至１６のいずれか一項に記載の方法。
【請求項１８】
決定論的選択または複数の所与の機能内での組み合わせによって選択された予測機能（ＦＨ）を使用することを特徴とする、請求項１７に記載の方法。
【請求項１９】
使用される予測機能（ＦＨ）の選択が、被ロギング・プロセス（Ｐ１）の実行中に測定または計算された変数の変化に依存することを特徴とする、請求項１７または１８に記載の方法。
【請求項２０】
被ロギング（Ｐ１）と呼ばれる少なくとも１つのアプリケーション・プロセスの機能管理を実施し、
再始動と呼ばれる所与のポイントから、中断ポイントと呼ばれるポイントまでの、前記被ロギング・プロセスの実行時に発生した、少なくとも１つの所与のタイプのすべてのイベントをロギング（ＪＯＰ）し、前記ロギングから発生するログ（ＵＬ、ＫＬ、ＪＳｅｍ１）を格納するステップと、
被ロギング・プロセスの再始動ポイント状態に対応する状態で再始動プロセス（ＰＢ１）を開始し、前記再始動プロセスによって前記ジャーナルから前記イベントをリプレイ（ＲＳＢ）し、再始動プロセスを、中断ポイントでの被ロギング・プロセスの状態に対応する状態にするステップと、
を含むことを特徴とする、請求項２乃至１９のいずれか一項に記載の方法。
【請求項２１】
請求項１乃至２０のいずれか一項に記載の方法の各ステップをコンピュータに実施させるプログラム。
【請求項２２】
少なくとも１台のコンピュータ（ＯＰ、ＳＢ）によって実行される、被管理プロセス（Ｐ１、ＰＢ１）と呼ばれるアプリケーション・プロセスの実行中にプログラム命令によって開始される、非決定論的ソフトウェア・オペレーション（ＥＶＩｎＤ）を管理するためのシステムであって、前記オペレーションの実行により、実結果（ＤＲ、ＲＲＪ）と呼ばれる少なくとも１つの結果データが前記被管理プロセスに送信され、
実結果に対応する可能性が有り、且つ前記オペレーションに関する予測結果（ＲＰ）を構成する値を供給するために、前記オペレーションの前にあったような被管理プロセスの状態またはそれが属するアプリケーション（ＡＯＰ、ＡＳＢ）の状態に基づいて、予測機能（ＦＨ）と呼ばれる決定論的ソフトウェア処理を実行する手段と、
予測結果（ＲＰ）の値が実結果（ＤＲ、ＲＲＪ）の値に対応するか否かを確定するための比較テスト手段と、
先行するテストの結果に依存する、前記被管理オペレーションの補足管理フェーズ（ＣＨ、ＤＨ）を実行する手段と、
を含む、システム。