【手続補正書】
【提出日】平成20年7月18日(2008.7.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータアプリケーションを実行中のデータ損失を最小限にする方法であって、
前記コンピュータアプリケーションへのコールをインターセプトするステップと、
障害又は潜在的障害の存在を検出するためにインターセプトされた前記コールの結果を調べるステップと、
障害又は潜在的障害の前記存在が検出された場合に、
前記障害または潜在的障害を処理するためのメソッドを選択するステップと、
前記障害または潜在的障害を処理するための選択された前記メソッドを実行するステップとを備え、
前記インターセプトするステップ、調べるステップ、選択するステップおよび実行するステップは、前記コンピュータアプリケーションのコードにアクセスすることなく、あるいは前記コンピュータアプリケーションのコードを修正することなく実行され、
障害又は潜在的障害の前記存在が検出されない場合には、前記コンピュータアプリケーションへコントロールを戻すことを特徴とする方法。
【請求項２】
前記障害または潜在的障害を処理するためのメソッドは、以下のメソッド、すなわち、前記コンピュータアプリケーションの前記コードの実行をリダイレクトするメソッド、前記コンピュータアプリケーションを一時中止するメソッド、および前記コンピュータアプリケーションのメモリスナップショットをとるメソッドの中から選択されることを特徴とする請求項１に記載の方法。
【請求項３】
前記障害または潜在的障害を処理するための選択されたメソッドを実行するステップは、データを保存するために前記コンピュータアプリケーションの保存ロジックを起動することを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記障害または潜在的障害を処理するための選択されたメソッドを実行するステップは、
前記コンピュータアプリケーションを一時中止することと、
再開の実行が可能であるとの指示を求めて前記コンピュータアプリケーションをモニタすることと、
前記コンピュータアプリケーションを再開するか、あるいは前記コンピュータアプリケーションのプログラムカウンタをリセットするかのどちらかを選択することとを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記障害または潜在的障害を処理するための選択されたメソッドを実行するステップは、
前記コンピュータアプリケーションを一時中止することと、
前記コンピュータアプリケーションのメモリスナップショットをとることと、
前記メモリスナップショットを不揮発性ストレージ手段にストアすることとをさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記コンピュータアプリケーションの内部オペレーションをモニタするステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
外部イベントをモニタするステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項８】
前記障害または潜在的障害に関して前記コンピュータアプリケーションのユーザと通信するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項９】
コンピュータアプリケーションを実行中のデータ損失を最小限にする方法であって、
前記コンピュータアプリケーションへのコールをインターセプトするステップと、
前記障害または潜在的障害の存在を検出するためにインターセプトされた前記コールの結果を調べるステップと、
障害又は潜在的障害の前記存在が検出された場合に、
前記コンピュータアプリケーションに関連したデータを保存するために前記コンピュータアプリケーションの保存ロジックを起動するステップと、
前記障害または潜在的障害を処理するためのメソッドを選択するステップと、
前記障害または潜在的障害を処理するための選択された前記メソッドを実行するステップとを備え、
前記インターセプトするステップ、調べるステップ、選択するステップおよび実行するステップは、前記コンピュータアプリケーションのコードにアクセスすることなく、あるいは前記コンピュータアプリケーションのコードを修正することなく実行され、
障害又は潜在的障害の前記存在が検出されない場合には、前記コンピュータアプリケーションへコントロールを戻すことを特徴とする方法。
【請求項１０】
前記コンピュータアプリケーションの保存ロジックを起動するステップは、前記コンピュータアプリケーションの保存エントリポイントを直接にコールすることを含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記コンピュータアプリケーションの保存ロジックを起動するステップは、前記コンピュータアプリケーションのプログラムカウンタを保存エントリポイントにリセットすることを含むことを特徴とする請求項９に記載の方法。
【請求項１２】
前記コンピュータアプリケーションの保存ロジックを起動するステップは、保存のコールを強行するためにジャンプ命令をライブコードストリームに挿入することを含むことを特徴とする請求項９に記載の方法。
【請求項１３】
前記コンピュータアプリケーションの保存ロジックを起動するステップは、前記コンピュータアプリケーションをローカルデータソースまたはプロキシストアにリダイレクトすることを含むことを特徴とする請求項９に記載の方法。
【請求項１４】
前記コンピュータアプリケーションを実行しているシステムにおいて内部に前記障害または潜在的障害を記録するステップをさらに備えることを特徴とする請求項９に記載の方法。
【請求項１５】
障害通知を外部モニタリングシステムに転送するステップをさらに備えることを特徴とする請求項９に記載の方法。
【請求項１６】
前記障害または潜在的障害に関して前記コンピュータアプリケーションのユーザと通信するステップをさらに備えることを特徴とする請求項９に記載の方法。
【請求項１７】
前記障害または潜在的障害に関して前記コンピュータアプリケーションのユーザと通信するステップは、前記障害または潜在的障害を処理させることを望んでいるかどうか、あるいは前記障害または潜在的障害の発生を許容させるかどうかをユーザに質問することを含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
コンピュータアプリケーションを使用中のデータ損失を最小限にする方法であって、
障害または潜在的障害の存在を検出するためにコンピュータアプリケーションをモニタするステップと、
障害または潜在的障害の前記存在の検出に応答して障害ステートを予想し前記コンピュータアプリケーションが一時中止されるかを判断するユーザインタフェースを介してユーザと通信するステップと、
前記ユーザの前記判断に基づいて前記コンピュータアプリケーションを一時中止するステップと、
再開の実行が可能であるとの指示を求めて一時中止された前記コンピュータアプリケーションをモニタするステップと、
一時中止された前記コンピュータアプリケーションを再開するか、一時中止された前記コンピュータアプリケーションのプログラムカウンタをリセットするかのどちらかを選択するステップとを備えることを特徴とする方法。
【請求項１９】
前記コンピュータアプリケーションが一時中止されている間前記コンピュータアプリケーションの不要な再開を防止するステップをさらに備えることを特徴とする請求項１８に記載の方法。
【請求項２０】
コンピュータアプリケーションの不要な再開を防止するステップは、前記コンピュータアプリケーションをあらかじめ決めた手段を通してのみ制御可能にすることを含むことを特徴とする請求項１９に記載の方法。
【請求項２１】
前記コンピュータアプリケーションのステートを一連の副次作用として保存するステップをさらに備えることを特徴とする請求項１８に記載の方法。
【請求項２２】
前記コンピュータアプリケーションのステートを外部システムとの通信を通して保存するステップをさらに備えることを特徴とする請求項１８に記載の方法。
【請求項２３】
前記コンピュータアプリケーションは、検出された障害が持続している間一時中止されることを特徴とする請求項１８に記載の方法。
【請求項２４】
コンピュータアプリケーションを使用中のデータ損失を最小限にする方法であって、
障害または潜在的障害の存在を検出するためにコンピュータアプリケーションをモニタするステップと、
前記コンピュータアプリケーションにおける障害または潜在的障害の前記存在の前記検出に応答して、障害ステートを予想し前記コンピュータアプリケーションが一時中止されるかを判断するユーザインタフェースを介してユーザと通信するステップと、
前記ユーザの前記判断に基づいて前記コンピュータアプリケーションを一時中止するステップと、
前記アプリケーションのメモリスナップショットをとるステップと、
前記メモリスナップショットを補助メモリデバイスにストアするステップと、
再開の実行が可能であるとの指示を求めて一時中止された前記コンピュータアプリケーションをモニタするステップと、
一時中止された前記コンピュータアプリケーションを再開するか、一時中止された前記コンピュータアプリケーションのプログラムカウンタをリセットするかのどちらかを選択するステップとを備えることを特徴とする方法。
【請求項２５】
前記メモリスナップショットがストアされたあと前記コンピュータアプリケーションを中止するステップと、
起動時に、前記コンピュータアプリケーションをリストアするか、あるいは前記コンピュータアプリケーションの別のインスタンスが作成されるのを許容するステップとをさらに備えることを特徴とする請求項２４に記載の方法。
【請求項２６】
ストアされた前記メモリスナップショットは、コンピュータアプリケーションを中止したあと回復可能であることを特徴とする請求項２５に記載の方法。
【請求項２７】
前記コンピュータアプリケーションが一時中止されたあと前記コンピュータアプリケーションが起動されるのを、検出された障害または潜在的障害がクリアされるか、あるいはユーザによって明示的に確認されるまで防止するステップをさらに備えることを特徴とする請求項２４に記載の方法。
【請求項２８】
前記コンピュータアプリケーションをリストアするステップは、前記コンピュータアプリケーションのメモリをマッピングし、内部オペレーティングシステムのカーネルデータ構造をリセットすることを含むことを特徴とする請求項２５に記載の方法。
【請求項２９】
前記コンピュータアプリケーションが使用されているコンピュータとの外部コネクションを、外部コネクションが切り離されたとの障害の検出に応答してリストアするステップをさらに備えることを特徴とする請求項２４に記載の方法。
【請求項３０】
共通エントリポイントを特定するために前記コンピュータアプリケーションのコードを分析するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３１】
共通エントリポイントを特定するためにコードを分析するステップは、その実行中に前記アプリケーションをトレースすることを含むことを特徴とする請求項３０に記載の方法。