JP5341295B2 - プログラム実行の不安定の状態に基づくソフトウェアプログラムのカスタム製品のサポートを提供する方法、システムおよび装置 - Google Patents

プログラム実行の不安定の状態に基づくソフトウェアプログラムのカスタム製品のサポートを提供する方法、システムおよび装置 Download PDF

Info

Publication number
JP5341295B2
JP5341295B2 JP2005158662A JP2005158662A JP5341295B2 JP 5341295 B2 JP5341295 B2 JP 5341295B2 JP 2005158662 A JP2005158662 A JP 2005158662A JP 2005158662 A JP2005158662 A JP 2005158662A JP 5341295 B2 JP5341295 B2 JP 5341295B2
Authority
JP
Japan
Prior art keywords
program
execution
software program
instability
stability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005158662A
Other languages
English (en)
Other versions
JP2006107428A (ja
Inventor
イー アーランドソン アーロン
イー.カニング ベンジャミン
シー.ホワイト クリストファー
エー.レバイン エリック
エム.グリーンバーグ スティーブン
エス.クーン トーマス
Original Assignee
マイクロソフト コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US10/955,421 priority Critical
Priority to US10/955,421 priority patent/US7681181B2/en
Application filed by マイクロソフト コーポレーション filed Critical マイクロソフト コーポレーション
Publication of JP2006107428A publication Critical patent/JP2006107428A/ja
Application granted granted Critical
Publication of JP5341295B2 publication Critical patent/JP5341295B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Description

本発明は、一般には、ソフトウェアプログラムに関し、より詳細には、プログラム実行の不安定の状態に基づくソフトウェアプログラムのカスタム製品のサポートを提供する方法、システムおよび装置に関する。

ソフトウェアの開発サイクルにおける最も重要な段階のひとつは、ソフトウェア製品が顧客に送られた後に起こるデバッグの段階である。デバッグの段階は重要である。なぜならば、デバッグの段階の間に、ユーザによるソフトウェア製品の実際の体験を利用して、プログラムエラーを分離し、頻繁に使用された特徴か、またはたまに使用された特徴かを識別し、および一般にソフトウェア製品をより良く、より安定させることができる。

リリース後のデバッグの段階における分析の主な焦点は、通常、ほとんど頻繁に起こるプログラムエラー(本明細書では、「バグ」ともいう)を識別することである。ほとんど頻繁に起こるバグを識別し、およびバグを修正することによって、多くのユーザの使用体験を改善することができる。しかし、一般に、先行されたリリース後のデバッグシステムによって向けられていない分析の別のカテゴリがある。この分析の別のカテゴリは、アプリケーションプログラムの実行の間に、ほとんど頻繁に問題に出くわすコンピュータシステムを識別することを含む。これらの問題は、すべてのユーザの間にほとんど頻繁に起こるプログラムエラーを含むことがあるかまたは含むことがない。

統計学は、少数のユーザが問題全体の合計数のうちの高い割合を体験することを示す。そのような問題は、プログラムクラッシュ、プログラムのハング、プログラムの突然終了、および他の種類のプログラムの異常終了を含むことができる。これらの種類の問題を出すアプリケーションプログラムを、一般に、本明細書では「不安定」である、または「プログラム実行の不安定」を有するという。不安定の問題によって、特に、プログラムの使用中に頻繁に問題に出くわすコンピュータユーザを失望させる傾向がある。

米国特許出願第10/302,282号明細書、”Method and System for Remotely Controlling the Reporting of Events Occurring within a Computer System” 米国特許出願第10/305,215号明細書、”Queued Mode Transmission of Event Reports”

先行されたリリース後のデバックシステムは、最も高い頻度のプログラム実行の不安定を有するコンピュータシステムを識別する方法を提供せず、結果として、ユーザ体験の問題を援助する、ソフトウェア開発者向けの仕組みを提供しない。したがって、高い頻度のプログラム実行の不安定を有するコンピュータシステムを識別し、および、そのようなコンピュータシステムのユーザにカスタム製品のサポートを提供する方法、システム、および装置が必要である。

これらのおよび他の考慮すべき事柄に関して、本発明の種々の実施形態を作成している。

本発明の実施形態に従って、上述のおよび他の問題を、実行の不安定の状態に基づくコンピュータプログラムのカスタム製品のサポートを提供する方法および装置によって解決する。プログラム実行の不安定の異なるレベルを有するコンピュータシステムを識別することによって、カスタム製品のサポートを高い頻度のプログラム実行エラーを有するユーザに提供することができる。カスタム製品のサポートの提供が、しきい値に基づいてプログラムの不安定の状態に分類することに基づくので、しきい値を調整して、異なる数のユーザにカスタム製品のサポートを提供することができる。

本発明のひとつの態様に従って、方法によって、プログラム実行の不安定の状態に基づくソフトウェアプログラムのカスタム製品のサポートを提供することを与える。方法に従って、ソフトウェアプログラムの実行を一定時間監視して、プログラムの実行の安定を決定する。監視および1つまたは複数の不安定のしきい値レベルに基づいて、プログラムの実行の安定を状態に分類する。例えば、プログラムの安定を、「良い」、「悪い」または「非常に悪い」として分類することができる。分類に基づいて、カスタムプログラムのサポートを、プログラムが実行されるコンピュータシステムのユーザに提供することができる。例えば、分類に基づいて、無料または割引した費用の製品サポートを提供することができる。あるいはまた、コンピュータのユーザを、状態に基づいて決定された、ウェブページ等の情報源に向けることができる。同様に、診断プログラムを実行して、分類に基づくコンピュータシステムおよびアプリケーションプログラムの問題を識別し、および修正することができる。

方法の態様に従って、ソフトウェアプログラムの実行を一定時間監視することを、プログラムが実行される各時間のログにおいて、セッションエントリを生成することによって実行することができる。セッションエントリは、プログラムを識別するデータ、プログラムが実行される時間の長さ、およびプログラムが正常終了したか、異常終了したかどうかを示すデータを含む。異常終了は、プログラムクラッシュ、(プログラムが実行を継続するが、しかしユーザには無応答に見える)プログラムのハング、または(プログラムの実行中にコンピュータから電源がはずされた場合等の)あらゆる他の種類の異常終了を含むことができる。

プログラムの実行の安定を、ログの分析に基づいて決定することができる。特に、プログラムの実行の安定を説明する、1つまたは複数の統計を生成することができる。例えば、プログラム実行数毎に異常終了数を計算することができる。同様に、プログラム実行の分単位の数毎に異常終了数を計算することができる。他の種類の統計もまた生成することができる。

プログラムの実行の安定を状態に分類するために、1つまたは複数の不安定のしきい値レベルを利用することができる。しきい値の値を、コンピュータシステムに格納することができ、および遠隔制御のファイルにおいてサーバコンピュータから周期的に更新することができる。しきい値の値は、プログラム実行の安定を分類するのに利用すべきである値を定義する。しきい値の値を統計と比較して、プログラムの安定を1つまたは複数のプログラム実行の不安定の状態に分類する。しきい値を、異なるバージョンのプログラムについて、遠隔制御のファイルにおいて提供することができる。遠隔制御のファイルの内容を、周期的に修正して、しきい値の値を変更することができる。

本発明を、コンピュータ処理、コンピュータ処理装置もしくはシステムとして、またはコンピュータプログラム製品もしくはコンピュータ読取可能な媒体等の製造の物品として実装することができる。コンピュータプログラム製品は、コンピュータシステムよって読取可能なコンピュータ記憶媒体であり、およびコンピュータ処理を実行するコンピュータプログラムの命令をエンコードされていることができる。また、コンピュータプログラム製品は、コンピュータ処理システムによって読取可能な搬送波上の伝播された信号であり、およびコンピュータ処理を実行するコンピュータプログラムの命令をエンコードされていることができる。

本発明の実施形態を特徴付ける、これらおよび他の種々の特徴は、利点も同様に、以下の詳細な説明を読み、添付の図面を参照することにより、明らかになるであろう。

次に図面を参照して、同一の参照符号が同一の要素を表し、本発明の種々の態様を説明するものである。特に、図1および対応する説明は、本発明の実施形態を実装することができる適切なコンピュータ処理環境の簡潔な全体的な説明を提供する。本発明を、パーソナルコンピュータのオペレーティングシステム上で実行されるプログラムモジュールと結合して実行されるプログラムモジュールの一般的な文脈において説明するものである一方、当事業者は、本発明がコンピュータシステムおよびプログラムモジュールの他の種類と結合して実装することもできることを承知するであろう。

一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造体、および特定のタスクを実行するまたは特定の抽象データ型を実装する他の構造体型を含む。さらに、当事業者は、本発明を、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサに基づくまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ等を含む、他のコンピュータシステム構成で実践することができることを理解するであろう。本発明を、通信ネットワークを介して連結された遠隔処理装置によってタスクが実行される、分散コンピュータ処理環境において実践することもできる。分散コンピュータ処理環境において、プログラムモジュールを、構内と遠隔との両方のメモリ記憶装置に置くことができる。次に図面を参照して、いくつかの図面を通じて同一の参照符号が同一の要素を表し、本発明の態様および例示的オペレーティング環境を説明するものである。

図1は、本発明の種々の実施形態に関する例示的オペレーティング環境を示す。図1に示すように、クライアントコンピュータ2を本発明の種々の実施形態において利用する。クライアントコンピュータは、1つまたは複数のプログラムモジュールに使用することができる標準的なデスクトップまたはサーバコンピュータを含む。クライアントコンピュータ2は、アプリケーションプログラムの実行を監視しおよびプログラムの実行の安定を決定するプログラムモジュールをも装備する。クライアントコンピュータ2は、1つまたは複数のしきい値の値に基づくプログラムの安定を分類しおよび分類に基づくアプリケーションのカスタム製品のサポートを提供する処理がある。

クライアントコンピュータ2においてプログラム実行の安定を分類するために、クライアントコンピュータ2は、ソフトウェアプログラムの開発者によって操作されたエラー報告サーバからの遠隔制御のファイルを周期的に受信する処理がある。エラー報告サーバコンピュータ10は、LANまたはインターネット8を介して維持されおよびアクセスされる従来技術のサーバコンピュータを含む。エラー報告サーバコンピュータ10を、関与するアプリケーションプログラムの開発者が操作する。遠隔制御のファイルの内容および使用に関する追加の詳細を、以下の図2〜7に関して提供するものである。製品サポートサーバコンピュータ6を開発者が操作して、カスタム製品のサポートを提供することもできる。例えば、製品サポートサーバは、プログラムの不安定のレベルに基づくウェブページまたは他の情報をユーザ体験に提供することができる。

次に、図2を参照して、本発明の種々の実施形態を利用するクライアントコンピュータ2の例示的コンピュータアーキテクチャを説明するものである。図2に示すコンピュータアーキテクチャは、中央処理ユニット5(「CPU」)、ランダムアクセスメモリ9(「RAM」)および読み出し専用記憶装置(「ROM」)11を含むシステムメモリ7、ならびにメモリとCPU5とを連結するシステムバス12を含む、従来技術のデスクトップまたはラップトップコンピュータを例示する。起動中などの、コンピュータ内の要素間の情報転送に援助する基本ルーチンを含む基本入出力システムをROM11に格納する。コンピュータ2は、以下により詳細に説明する、オペレーティングシステム16、アプリケーションプログラム18、および他のプログラムモジュールを格納する大容量記憶装置14をさらに含む。

大容量記憶装置14を、バス12に接続される大容量記憶コントローラ(図示せず)を介してCPU5に接続する。大容量記憶装置14および関連付けられたコンピュータ読取可能な媒体は、コンピュータ2に不揮発性の記憶装置を提供する。本明細書において含まれるコンピュータ読取可能な媒体には、ハードディスクまたはCD−ROMドライブなどの大容量記憶装置を引用するが、当事業者は、コンピュータ読取可能な媒体がコンピュータ2によってアクセスできるあらゆる利用可能な媒体とすることができることを理解するであろう。

例として、限定はしないが、コンピュータ読取可能な媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ読取可能な命令、データ構造体、プログラムモジュールまたは他のデータなどの情報の記憶についてのあらゆる方法または技術において実装された、揮発性および不揮発性、取外し可能および固定の媒体を含むことができる。コンピュータ記憶媒体は、限定はしないが、RAM、ROM、EPROM、EEPROM、フラッシュメモリもしくは他の固体素子のメモリ技術、CD−ROM、デジタル多用途ディスク(「DVD」)、または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報を格納するのに使用することができおよびコンピュータ2によってアクセスすることができるあらゆる他の媒体を含む。

本発明の種々の実施形態に従って、コンピュータ2を、インターネットなどのネットワーク8を介したリモートコンピュータとの論理接続を使用する、ネットワーク化された環境において操作することができる。クライアントコンピュータ2を、バス12に接続されたネットワークインターフェースユニット20を介してネットワーク8に接続することができる。ネットワークインターフェースユニット20を利用して、他の種類のネットワークおよびリモートコンピュータシステムに接続することもできることを理解するであろう。コンピュータ2は、キーボード、マウス、または電子的なスタイラス(図1に示さず)を含む、多くの他の装置からの入力を受信しおよび処理する入出力制御装置22を含むこともできる。

簡潔に上述したように、米国ワシントン州レドモンドのマイクロソフトコーポレーションからのオペレーティングシステムのウィンドウズ(登録商標)XPなど、ネットワーク化されたパーソナルコンピュータの処理を制御するのに適したオペレーティングシステム16を含む、多くのプログラムモジュールおよびデータファイルを、コンピュータ2の大容量記憶装置14およびRAM9において格納することができる。大容量記憶装置14およびRAM9は、1つまたは複数のプログラムモジュールを格納することもできる。特に、大容量記憶装置14およびRAM9は、1つまたは複数のアプリケーションプログラム18の実行の安定を監視しおよび、プログラムが所定の設定可能なしきい値を越えて不安定になる場合に、アプリケーションプログラム18にカスタム製品のサポートを提供するアプリケーション安定監視のプログラム24を格納することができる。アプリケーション安定監視24を、クライアントコンピュータ2内のプログラム実行の例外を捕らえおよび処理する処理がある、例外処理32の実行に応答して実行することができる。アプリケーション安定監視24を、クライアントコンピュータ2のユーザによって手動で実行することもできる。

アプリケーションプログラム18の安定を監視するために、アプリケーション安定監視24は、イベントサービス26のサービスを利用する。イベントサービス26は、クライアントコンピュータ2で起こるイベントのログ記録を行うために、オペレーティングシステム26によって、イベントログ28が容易に提供される。例えば、イベントサービス26は、セキュリティに関連したイベント(例えば、認証されないログイン試行)、システムに関連したイベント(例えば、ディスクドライブの障害検出)、およびアプリケーションに関連したイベントのログ記録を行うことができる。以下に、より詳細に説明するように、アプリケーションプログラム18の実行および障害に関するイベントは、イベントログ28に記録される。特に、セッションエントリを、アプリケーションプログラムが実行される各時間のイベントログ28において、生成することができる。セッションエントリは、プログラムを識別するデータ、プログラムが実行される時間の長さ、およびプログラムが正常終了したか異常終了したかどうかを示すデータを含む。異常終了は、プログラムクラッシュ、(プログラムが実行を継続するが、しかしユーザには無応答に見える)プログラムのハング、または(プログラムの実行中にコンピュータから電源がはずされた場合等の)あらゆる他の種類の異常終了を含むことがある。

以下に、より詳細に説明するように、イベントログ28は、周期的に構文解析され、およびアプリケーションプログラム18の安定を説明する、生成された統計とすることができる。統計は、プログラム実行数毎の異常終了数や、プログラム実行の分単位の数毎に異常終了数を計算することができ、またはアプリケーションプログラム18の安定を示す他の種類の統計を含むことができる。

統計が生成されると、プログラムの実行の安定を、統計および遠隔制御のファイル36に格納された1つまたは複数のしきい値の値に基づいて、状態に分類することができる。しきい値の値は、プログラムの安定の種々のレベルを定義する。例えば、プログラムモジュールの実行を「良い」、「悪い」、または「非常に悪い」として分類する、しきい値の値を定義することができる。本発明の一実施形態に従って、「良い」のしきい値は、アプリケーションプログラムが十分安定であり、取るべき行動がないことを示す。「悪い」のしきい値は、アプリケーションプログラムが少々不安定であるが、ユーザに無料または割引した費用の製品サポートの提供を保証するのに足りる程度の不安定ではないことを示す。ユーザを、診断または他の情報に向けることができる。「非常に悪い」のしきい値は、アプリケーションの安定が少ないので、無料または割引した費用の製品サポートを保証することを示す。3つより多いしきい値を定義し、およびこれらのしきい値の定義をソフトウェア製品およびソフトウェア製品の開発者に従って変更することができることを、理解すべきであろう。アプリケーションプログラムの実行の監視およびカスタムサポートの提供を、アプリケーション毎にアプリケーションプログラムの開発者によって可能とすることができる。

遠隔制御のファイル36の内容を、周期的に更新し、およびエラー報告サーバコンピュータ10からクライアントコンピュータ2に送信することができる。遠隔制御のファイル36は、しきい値が利用されないであろう後の時間を定義する、各々のしきい値の有効期限を格納することもできる。遠隔制御のファイル36は、しきい値の各々に対するアプリケーションのバージョン数を格納することもできる。アプリケーションのバージョン数が異なるしきい値を許容して、クライアントコンピュータ2においてインストールされ使用中のアプリケーションプログラムの異なるバージョンを割り当てる。遠隔制御のファイル36は他のデータを格納することができ、および追加の方法でクライアントコンピュータ2の操作を制御するのに遠隔制御のファイル36を利用することができることを理解すべきであろう。遠隔制御のファイルの内容および使用に関するより多くの情報を、共同出願中の特許文献1に見つけることができ、および本明細書において参照によって明白に組み入れる。

割り当てられたしきい値に基づいて、カスタムプログラムのサポートを、アプリケーション安定監視24によってプログラムを実行するコンピュータシステムのユーザに提供することができる。例えば、分類に基づいて、ユーザを分類に基づいて決定されたウェブページなどの情報源に向けることができる。同様にして、診断のプログラム34を実行して、コンピュータシステムおよび分類に基づくアプリケーションプログラムの問題を識別し修正することができる。

本発明の実施形態に従って、オペレーティングシステム16は、レジストリ30にデータを格納する処理がある。レジストリ30は、1つまたは複数のユーザ、アプリケーションおよびハードウェア装置に対して、クライアントコンピュータ2を構成するために必要な情報を格納するのに利用される中心的な階層型データベースである。例えば、レジストリ30は、診断34によってクライアントコンピュータのソフトウェアコンポーネントに施された修正の最新の時間を識別する、「最終修正時間」のレジストリキーを格納する処理がある。レジストリ30は、さらに、アプリケーション安定監視24との現在のユーザの前の相互通信を識別する、「診断状態」のレジストリキーを格納する処理がある。診断状態のレジストリキーに適している値は、ユーザがアプリケーション安定監視24を以前に利用していない「新しい」、診断34が以前に実行されおよび変更がクライアントコンピュータ2に施された「変更された」、診断34が実行されおよび不安定が生じている問題がアプリケーションプログラム18の外部(例えば、ハードウェア障害など)であることを決定した「識別された」、ならびに診断34が実行されおよびユーザが製品サポートスペシャリスト(「PSS」)の形式の顧客サポートに向けられた「救援された」である。以下に、より詳細に説明するように、「診断状態」のレジストリキーの値を利用して、新しく出くわした問題をユーザがどう処理すべきかを決定する。イベントログ28の生成、例外処理32の処理、アプリケーション安定監視24の処理に関する追加の詳細を、以下に、図3〜7に関してより詳細に提供する。

次に、図3を参照して、イベントログ28の記録の生成が実行された処理を例示する、例示的ルーチン300を説明するものである。本明細書において提示されるルーチンの説明を読むと、本発明の種々の実施形態の論理的な処理を、(1)コンピュータ処理システムで実行する、コンピュータに実装された動作またはプログラムモジュールの連続として、および/または(2)コンピュータ処理システムの内部に内部接続されたコンピュータ論理回路または回路モジュールとして、実装することを理解すべきであろう。実装は、本発明を実装するコンピュータ処理システムの実行要件に依存する選択の問題である。したがって、図3〜7に例示され、および本発明の実施形態を構成する論理的な処理を、処理、構造装置、動作またはモジュールと様々にいう。当事業者は、これらの処理、構造装置、動作またはモジュールを、本明細書の外部にある特許請求の範囲内で説明する、本発明の精神および範囲から逸脱することなく、ソフトウェアにおいて、ファームウェアにおいて、専用のデジタル論理回路において、およびこれらの結合で実装することができることを理解するであろう。

ルーチン300は、処理302において開始する。処理302では、アプリケーションプログラム18のうちのひとつが開始されたかどうかに関して、イベントサービス26によって決定を行う。アプリケーションプログラムが開始されていない場合、ルーチン300は、決定処理302に戻り、別の決定を行う。アプリケーションプログラムが開始された場合、ルーチン300は、処理306に進む。処理306では、アプリケーションが開始された時刻をメモリに格納する。

処理306から、ルーチン300は、処理308に進む。処理308では、イベントサービス26によって、アプリケーションプログラムが、ユーザ要求に応答してなど、正常終了したかどうかを決定する。アプリケーションプログラムが正常終了した場合、ルーチン300は処理310に分岐する。処理310では、アプリケーションが正常終了したことを示すデータをメモリに格納する。ルーチン300は、処理312に進む。処理312では、アプリケーションがセッション中に実行された時間の長さをメモリに記録する。ルーチン300は、処理312から処理304に進む。処理304では、新しいエントリを、現在のアプリケーションセッション(「セッションエントリ」)に対して、イベントログ28において生成する。プログラムの実行に関する、メモリに記録されたデータを、セッションエントリに格納する。これらの処理を、例外処理内で実行することができる。処理304から、ルーチン300は処理320に進む。処理320では、ルーチン300を終了する。

処理308において、イベントサービス26によって、アプリケーションプログラムが実行を正常に終了しなかったと決定した場合、ルーチン300は、処理308から処理314に進む。決定処理314では、アプリケーションプログラムがハングしたかどうかに関しての決定を行う。ハングしたアプリケーションは、実行しているように見えるが、ユーザ入力に応答しないアプリケーションである。プログラムがハングしたかどうかに関しての決定は、オペレーティングである可能性がある、または別のプログラムによる可能性があることを理解すべきであろう。アプリケーションがハングしたように見える場合、ルーチン300は処理314から決定処理322に進む。決定処理322では、アプリケーションプログラムがクラッシュしたかどうかに関しての決定を行う。プログラムクラッシュは、正常に実行するプログラムの障害をいい、結果としてプログラムの処理が停止する。処理322においてクラッシュを検出する場合、ルーチン300は、処理316に分岐する。クラッシュを検出しない場合、ルーチン300は、処理320に進む。処理320では、ルーチン300を終了する。プログラムクラッシュの場合、オペレーティングシステムは、クラッシュしたアプリケーションプログラムを強行して、自動的にシャットダウンすることができることを理解すべきであろう。ハングしたプログラムの場合、ユーザに対して、プログラムがハングしたことを気づかせおよびプログラムを再起動させる準備ができる。

処理316において、適切に、セッションが、クラッシュで終了したかハングで終了したかどうかを示すデータをメモリに書き込む。ルーチン300は、処理318に進む。処理318では、クラッシュまたはハングの前にアプリケーションが実行された時間の長さをメモリに格納する。ルーチン300は、処理318から処理319に進む。処理319では、オペレーティングシステムによって例外を処理する。例外処理32の処理の態様に関する詳細を、以下に、図5に関して提供する。ルーチン300は、処理304に進む。処理304では、新しいエントリを、現在のアプリケーションセッションに対して、イベントログ28において生成する。プログラムの実行に関する、メモリに記録されたデータを、セッションエントリに格納する。処理319から、ルーチン300は処理320に進む。処理320では、ルーチン300を終了する。

次に、図4を参照して、イベントログにおけるセッションエントリを完了するルーチン400の詳細を提供するものである。本発明の実施形態に従って、ルーチン400を、イベントログ28における、完了していないことがあるセッションエントリを完了することを始動中のクライアントコンピュータ2で実行する。例えば、アプリケーションが実行中に電源がコンピュータ2からはずされる場合、クラッシュするとクラッシュがオペレーティングシステム16に起こる場合、または終了の種類およびセッション長をイベントログ28に書き込むことができない他の環境の下で、未完了のセッションエントリが生じる傾向がある。

ルーチン400は、処理402において開始する。処理402では、先行のセッションエントリが完了したかどうかに関しての決定を行う。セッションエントリが完了の場合、さらにセッションエントリの処理を実行する必要はない。したがって、セッションエントリが完了の場合、ルーチン400は、処理402から処理412に分岐する。処理412では、ルーチン400を終了する。セッションエントリが完了していない場合、ルーチン400は、処理406に進む。処理406では、セッションエントリにおいて、アプリケーションプログラムが異常終了したことの表示を行う。ルーチン400は、処理412に進む。処理412では、ルーチン400を終了する。

次に、図5を参照して、例外処理32の処理に関する追加の詳細を説明するものである。簡潔に上述したように、例外処理32は、アプリケーションプログラムの異常終了の次に呼び出される。例外処理32は、例外を捕らえおよび処理するために、図5に示す関数よりも多くの関数を実行することを理解すべきであろう。例外処理によって実行され、アプリケーション安定監視24の処理の説明に関係のあるこれらの関数のみを図5に示し、および本明細書において説明する。

ルーチン500は、処理502において開始する。処理502では、クライアントコンピュータ2において実装されたポリシーまたはユーザが報告に煩わされたくないことを示すレジストリエントリによって、アプリケーション安定監視24の実行を防止するかどうかに関しての決定を行う。防止する場合は、ルーチン500は、処理512に分岐する。処理512では、ルーチン500を終了する。防止しない場合は、ルーチン500は、処理504に進む。処理504では、ユーザインターフェース(「UI」)のペスタスロットル(pester throttle)によって、アプリケーション安定監視24の実行を防止するかどうかに関しての決定を行う。UIペスタスロットルは、ユーザが過度に頻繁にアプリケーション安定監視を行うことに関係するUIによって煩わされることを防止する。UIペスタスロットルがアプリケーション安定監視24の実行を閉塞する場合、ルーチン500は処理512に進む。処理512では、ルーチン500を終了する。閉塞しない場合、ルーチン500は、処理506に進む。処理506では、監査(audit)ペスタスロットルによって、アプリケーション安定監視24の実行を閉塞するかどうかに関しての決定を行う。監査ペスタスロットルは、アプリケーション安定監視24に、過度に頻繁に実行させずおよびクライアントコンピュータ2の実行への影響を与えさせない。監査ペスタスロットルによってアプリケーション安定監視24の実行を閉塞する場合、ルーチン500は処理512に進む。処理512では、ルーチン500を終了する。閉塞しない場合、ルーチン500は、処理506から処理508に進む。UIペスタスロットルおよび監査ペスタスロットルに関する追加の詳細を、共同出願中の特許文献2に見つけることができ、および本明細書において参照によって明白に組み入れる。

次に、図6を参照して、アプリケーション安定監視24に関する追加の詳細を提供するものである。特に、アプリケーション安定監視24の実行について、ルーチン600を説明するものである。ルーチン600は、処理602において開始する。処理602では、イベントログ28の分析を実行する。イベントログ28を分析して、アプリケーションプログラムの安定を安定の状態に分類する。上述したように、本発明の一実施形態に従って、安定を「良い」、「悪い」、または「非常に悪い」として分類することができる。イベントログの分析を実行する例示的ルーチン700を、以下に、図7に関して説明する。

処理602から、ルーチン600は処理604に進む。処理604では、アプリケーションプログラムの安定が、イベントログの分析によって「良い」として分類されたかどうかに関しての決定を行う。アプリケーションプログラムの安定が「良い」の場合、ルーチン600は処理606に分岐する。処理606では、アプリケーション安定監視24がユーザによって手動で開始されたかどうかに関しての決定を行う。アプリケーション安定監視24がユーザによって手動で開始されない場合、ルーチン600は処理620に進む。処理620では、ルーチン600を終了する。アプリケーション安定監視24がユーザによって手動で開始された場合、ルーチン600は処理606から処理608に進む。プログラムの安定が「良い」場合でもユーザが手動でプログラムを開始すると、ユーザはアプリケーション安定監視24と互いに通信することができる。

処理604において、アプリケーションプログラムの安定が、イベントログの分析によって「悪い」または「非常に悪い」として分類されたことを決定する場合、ルーチン600は、処理604から処理608に進む。処理608では、ルーチン600は、上述した診断状態のレジストリキーの現在の値によって定義されるように、アプリケーション安定監視とのユーザプレビューによる双方向通信に基づいて、処理610、612、614か618に分岐する。診断状態のレジストリキー値が「新しい」の場合、ルーチン600は処理610に分岐する。「新しい」は、ユーザがアプリケーション安定監視24を以前に利用していないことを意味する。したがって、ダイアログボックスによって、ユーザに診断34の実行を示すことができる。診断の結果しだいで、診断状態のレジストリキーの値を
「救援された」、「変更された」、または「識別された」に設定することができる。

診断状態のレジストリキーの値が「診断は変更された」である場合、ルーチン600は処理608から処理612に進む。「診断は変更された」は、診断が以前に実行され、およびアプリケーションプログラムの安定を改善する試みで、変更がアプリケーションプログラムに施されたことを示す。この点において、ユーザを、製品に対して、無料または割引した費用の製品サポートに向けることができる。選択された方向しだいで、診断状態のレジストリキーの値を「救援された」、「変更された」、または「識別された」に設定することができる。

診断状態のレジストリキーの値が「診断は外部」である場合、ルーチン600は処理614に分岐する。「診断は外部」は、診断34が以前に実行され、および問題がアプリケーションプログラム以外で検出されたことを示す。この場合、ユーザは、ユーザインターフェースの通知に煩わされない。

診断状態のレジストリキーの値が「救援された」である場合、ルーチン600は処理618に分岐する。「救援された」は、ユーザに、割引した費用または無料の製品サポートの情報が以前に提供されていることを示す。ユーザに、再びこの情報を与えることができる。例えば、ユーザを、製品サポートを取得することができる製品サポートのウェブサイトに向けることができる。処理610、612、614および618から、ルーチン600は処理620に進む。処理620では、ルーチン600を終了する。

次に、図7に向けると、イベントログ28の分析について、ルーチン700を説明するものである。ルーチン700は、処理702において開始する。処理702では、利用するしきい値のバージョンがどれかに関しての決定を行う。上述したように、しきい値の値に、クライアントコンピュータ2のアプリケーションプログラムのバージョンに対応するバージョン数を割り当てることができる。これによって、異なるしきい値を、同一のアプリケーションプログラムの異なるバージョンに割り当てることができる。使用するしきい値のバージョンを、分析が実行されるべきアプリケーションプログラムのバージョンに基づいて決定することができる。

アプリケーションプログラムのバージョン数が識別されると、ルーチン700は処理704に進む。処理704では、しきい値の値が、アプリケーションプログラムのバージョンについて、遠隔制御のファイル36に示されたかどうかに関しての決定を行う。バージョンについてしきい値が存在しない場合、ルーチン700は処理722に分岐する。処理722では、「良い」のしきい値の値を戻す。しかし、適したしきい値の値が存在すれば、ルーチン700は処理706に進む。

処理706では、セッションの分析において利用されるべきイベントログのエントリの適した時間周期を決定する。時間周期は、現在の時刻と、アプリケーションプログラムに適用された修正の最終時刻との間の一定時間を含むことができる。あるいはまた、修正が施されていない場合、時間周期は、現在の時刻と好ましい時間の枠との間の時間周期(例えば、30日間)を含むことができる。この方法において、分析で考慮されるログエントリの領域を制限することができる。

処理706から、ルーチン700は処理708に進む。処理708では、セッションの統計的に重要な最小数が、計算された時間周期についてイベントログ28において示されるかどうかに関しての決定を行う。セッションの必要な最小数が存在する場合、ルーチン700は処理708から処理710に進む。

処理710では、時間周期について、およびアプリケーションプログラムの安定を説明する特定のアプリケーションプログラムについて、統計数を、イベントログ28の内容に基づいて生成する。例えば、統計を、プログラム実行数毎にプログラムの異常終了数に基づいて生成することができる。別の統計を、プログラム実行の分単位の数毎に異常終了数に基づいて生成することができる。アプリケーションプログラムの安定を示す他の種類の統計もまた、時間周期の間のイベントログ28の内容に基づいて生成することができる。所定の統計を個々のアプリケーションについて生成することができること、および他の統計を、アプリケーションの組になったソフトウェアなど、アプリケーションのグループについて生成することができることを理解すべきであろう。

統計が生成されていると、統計を、遠隔制御のファイル36に含まれるしきい値の値と比較する。比較に基づいて、アプリケーションプログラムの安定を、「良い」、「悪い」、または「非常に悪い」として分類することができる。アプリケーションプログラムの安定が分類されていると、ルーチン700は、処理712に進む。処理712では、プログラムの安定が非常に悪いとして分類されているかどうかに関しての決定を行う。安定が非常に悪いとして分類されていない場合、ルーチン700は、処理714に分岐する。処理714では、安定が悪いとして分類されているかどうかに関しての決定を行う。安定が悪いとして分類されている場合、ルーチン700は処理720に進む。処理720では、「悪い」のしきい値を戻す。安定が悪いとして分類されていない場合、ルーチン700は処理722に分岐する。処理722では、「良い」のしきい値を戻す。

処理712において、しきい値が「非常に悪い」として分類されていることを決定する場合、ルーチン700は、処理716に進む。処理716において、しきい値の値についての期限が切れているかどうかに関しての決定を行う。簡潔に上述したように、しきい値は有効期限を含むことができる。しきい値の値についての期限が切れている場合、ルーチン700は、処理720に進む。処理720では、「悪い」のしきい値を戻す。期限が切れていない場合、ルーチン700は、処理718に進む。処理718では、「非常に悪い」のしきい値を戻す。

上述に基づいて、本発明の種々の実施形態は、実行の不安定のレベルに基づくコンピュータプログラムのカスタム製品のサポートを提供する方法、システム、装置およびコンピュータ読取可能な媒体を含むことを理解すべきであろう。上述の明細書、例およびデータは、本発明からなる、製品の完全な説明および構成の使用を提供する。本発明の精神および範囲から分離することなく、本発明の多くの実施形態を作成することができるので、本発明は、本明細書に添えた特許請求の範囲に属する。

本発明の様々な態様を例示するために利用されたコンピュータネットワークの態様を例示するネットワークの図である。 本発明の様々な実施形態によって利用されおよび提供されるコンピュータシステムを例示するコンピュータシステムのアーキテクチャの図である。 本発明の様々な実施形態によって提供されおよび利用される処理を例示するフロー図である。 本発明の様々な実施形態によって提供されおよび利用される処理を例示するフロー図である。 本発明の様々な実施形態によって提供されおよび利用される処理を例示するフロー図である。 本発明の様々な実施形態によって提供されおよび利用される処理を例示するフロー図である。 本発明の様々な実施形態によって提供されおよび利用される処理を例示するフロー図である。

Claims (14)

  1. プログラム実行の不安定の複数の状態に基づくソフトウェアプログラムのカスタム製品のサポートを提供する方法であって、
    プログラム実行の不安定の少なくとも1つのしきい値レベル及びプログラム実行の不安定の少なくとも1つのしきい値レベルに関連付けられた少なくとも1つの有効期限を含む遠隔制御ファイルを受信するステップと、
    メモリストレージとこれに接続するプロセッサとを備えるコンピュータシステムにより、前記ソフトウェアプログラムの実行の安定を決定するために、前記ソフトウェアプログラムの実行を監視するステップであって、前記ソフトウェアプログラムの実行を監視するステップは、
    前記ソフトウェアプログラムが実行されるごとに、前記ソフトウェアプログラムを識別するデータ、及び、前記ソフトウェアプログラムが実行された時間の長さを含んだセッションエントリをログに生成するステップと、
    一定時間分の前記ログを周期的に分析して、前記セッションエントリに従って前記ソフトウェアプログラムの実行の安定を説明する少なくとも1つの統計を生成するステップと、
    前記ソフトウェアプログラムの実行が正常終了したか異常終了したかどうかを示すステップであって、前記異常終了が、プログラムクラッシュか、プログラムのハングか、またはプログラムの異常終了かを含むステップとにより実行される監視するステップと、
    プログラム実行の不安定の前記少なくとも1つのしきい値レベルに関連づけられた前記少なくとも1つの有効期限が切れているか否かを決定するステップと、
    プログラム実行の不安定の前記少なくとも1つのしきい値レベルに関連づけられた前記少なくとも1つの有効期限が切れているか否かの決定に応じて、前記コンピュータシステムにより、前記プログラム実行の不安定の前記少なくとも1つのしきい値レベルに基づいて、前記ソフトウェアプログラムの前記実行の安定をプログラム実行の不安定の複数の状態のうちの1つに分類するために、前記少なくとも1つの統計をこれと対応するしきい値と比較して、前記ソフトウェアプログラムの実行の安定を分類するステップと、
    前記ソフトウェアプログラムの以前に設定された診断状態を、前記コンピュータシステムにより、識別するステップと、
    前記分類、及び、前記ソフトウェアプログラムの以前に設定された診断状態に基づいて、前記ソフトウェアプログラムのカスタム製品のサポートを提供するステップと
    を備えたことを特徴する方法。
  2. 前記ログを周期的に分析して、前記ソフトウェアプログラムの実行の安定を説明する少なくとも1つの統計を生成するステップは、プログラム実行数毎に前記異常終了数を含む前記少なくとも1つの統計を生成するステップを含むことを特徴とする請求項1に記載の方法。
  3. 前記ログを周期的に分析して、前記ソフトウェアプログラムの実行の安定を説明する少なくとも1つの統計を生成するステップは、プログラム実行の分単位の数毎に前記異常終了数をさらに含む前記少なくとも1つの統計を生成するステップをさらに含むことを特徴とする請求項2に記載の方法。
  4. 前記遠隔制御ファイルを受信するステップは、前記ソフトウェアプログラムの少なくとも1つのバージョンのプログラムの実行の不安定の少なくとも1つのしきい値レベルを識別するデータを含む前記遠隔制御ファイルを受信するステップを含み、
    前記方法は、前記ソフトウェアプログラムの実行の安定を分類する前に、前記遠隔制御ファイルが前記ソフトウェアプログラムの少なくとも1つのバージョンについてのしきい値を含むかどうかを決定するステップ
    をさらに含むことを特徴する請求項1に記載の方法。
  5. 前記ソフトウェアプログラムのカスタム製品のサポートを提供するステップは、前記ソフトウェアプログラムのユーザを、前記分類に基づく前記ソフトウェアプログラムの無料または割引した費用の製品サポートを有する情報源に向けるステップを含むことを特徴とする請求項4に記載の方法。
  6. 前記ソフトウェアプログラムのカスタム製品のサポートを提供するステップは、前記ソフトウェアプログラムのユーザを、前記分類に基づいて識別された情報源に向けるステップを含むことを特徴とする請求項4に記載の方法。
  7. 前記ソフトウェアプログラムのカスタム製品のサポートを提供するステップは、前記分類に基づいて診断プログラムを実行するステップを含むことを特徴とする請求項4に記載の方法。
  8. プログラム実行の不安定の複数のしきい値レベルに基づくソフトウェアプログラムのカスタム製品のサポートを提供するシステムであって、
    前記システムは、クライアントコンピュータを備え、前記クライアントコンピュータは、
    前記ソフトウェアプログラムの少なくとも1つのバージョンについて、プログラム実行の不安定の少なくとも1つのしきい値レベルを識別するデータ及びプログラム実行の不安定の前記少なくとも1つのしきい値レベルに関連付けられた少なくとも1つ有効期限を含む遠隔制御ファイルを、サーバコンピュータから受信するステップと、
    前記ソフトウェアプログラムの実行の安定を決定するために、前記ソフトウェアプログラムの実行を監視するステップであって、前記ソフトウェアプログラムの実行を監視するステップは、
    前記ソフトウェアプログラムが実行されるごとに、前記ソフトウェアプログラムを識別するデータ、及び、前記ソフトウェアプログラムが実行された時間の長さを含んだセッションエントリを、前記クライアントコンピュータに記録されたログに生成するステップと、
    前記クライアントコンピュータの一定時間分の前記ログを周期的に分析して、前記セッションエントリに従って前記ソフトウェアプログラムの実行の安定を説明する少なくとも1つの統計を生成するステップと、
    前記ソフトウェアプログラムの実行が正常終了したか異常終了したかどうかを示すステップであって、異常終了が、プログラムクラッシュか、プログラムのハングか、またはプログラムの異常終了かを含むステップとにより実行される監視するステップと、
    プログラム実行の不安定の前記少なくとも1つのしきい値レベルに関連づけられた前記少なくとも1つの有効期限が切れているか否かを決定するステップと、
    プログラム実行の不安定の前記少なくとも1つのしきい値レベルに関連づけられた前記少なくとも1つの有効期限が切れているか否かの決定に応じて、前記遠隔制御ファイルに含まれるプログラム実行の不安定の前記少なくとも1つのしきい値レベルに基づいて、前記ソフトウェアプログラムの前記実行の安定をプログラム実行の不安定の複数の状態のうちの1つに分類するために、少なくとも1つの統計をこれに対応するしきい値と比較して、前記ソフトウェアプログラムの実行の安定を分類するステップと、
    前記ソフトウェアプログラムの以前に設定された診断状態を識別するステップと、
    前記分類、及び、前記ソフトウェアプログラムの以前に設定された診断状態に基づいて、前記ソフトウェアプログラムのカスタム製品のサポートを提供するステップと
    を実行することを特徴するシステム。
  9. 前記少なくとも1つの統計は、プログラム実行数毎に異常終了数を含むことを特徴とする請求項8に記載のシステム。
  10. 前記少なくとも1つの統計は、プログラム実行の分単位の数毎に異常終了数をさらに含むことを特徴とする請求項9に記載のシステム。
  11. 前記ソフトウェアプログラムのカスタム製品のサポートを提供するステップは、ユーザを、プログラム実行の不安定の前記少なくとも1つのしきい値に従って、無料または割引した費用の製品サポートのうちの1つを提供する情報源に向けるステップを含むことを特徴とする請求項10に記載のシステム。
  12. 前記ソフトウェアプログラムのカスタム製品のサポートを提供するステップは、前記クライアントコンピュータのユーザを、プログラム実行の不安定の前記少なくとも1つのしきい値レベルに基づいて決定された情報源に向けるステップを含むことを特徴とする請求項10に記載のシステム。
  13. 前記ソフトウェアプログラムのカスタム製品のサポートを提供するステップは、前記クライアントコンピュータの診断プログラムを実行して、前記ソフトウェアプログラムの問題を診断するステップを含むことを特徴とする請求項10に記載のシステム。
  14. コンピュータに、請求項1から7のいずれか1項に記載の方法の各ステップを実行させるためのプログラム。
JP2005158662A 2004-09-30 2005-05-31 プログラム実行の不安定の状態に基づくソフトウェアプログラムのカスタム製品のサポートを提供する方法、システムおよび装置 Expired - Fee Related JP5341295B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/955,421 2004-09-30
US10/955,421 US7681181B2 (en) 2004-09-30 2004-09-30 Method, system, and apparatus for providing custom product support for a software program based upon states of program execution instability

Publications (2)

Publication Number Publication Date
JP2006107428A JP2006107428A (ja) 2006-04-20
JP5341295B2 true JP5341295B2 (ja) 2013-11-13

Family

ID=35759407

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005158662A Expired - Fee Related JP5341295B2 (ja) 2004-09-30 2005-05-31 プログラム実行の不安定の状態に基づくソフトウェアプログラムのカスタム製品のサポートを提供する方法、システムおよび装置

Country Status (5)

Country Link
US (1) US7681181B2 (ja)
EP (1) EP1650662B1 (ja)
JP (1) JP5341295B2 (ja)
KR (1) KR101036702B1 (ja)
CN (1) CN1755644B (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409596B2 (en) * 2004-09-02 2008-08-05 International Business Machines Corporation Apparatus and method for initializing diagnostic functions when specified run-time error criteria are satisfied
US8548955B1 (en) 2004-11-30 2013-10-01 Centurylink Intellectual Property Llc System and method for automating disaster recovery of a mainframe computing system
US8255747B1 (en) * 2004-11-30 2012-08-28 Centurylink Intellectual Property Llc System and method for providing resolutions for abnormally ended jobs on a mainframe computer system
US7478095B2 (en) * 2005-01-19 2009-01-13 Microsoft Corporation Generation and retrieval of incident reports
US7958512B2 (en) * 2005-10-31 2011-06-07 Microsoft Corporation Instrumentation to find the thread or process responsible for an application failure
KR100837334B1 (ko) * 2006-11-29 2008-06-12 엔에이치엔(주) 검색로그의 악용을 방지하는 방법 및 그 장치
JP2008197988A (ja) * 2007-02-14 2008-08-28 Win The Web:Kk アプリケーション分析支援システム、プログラム
US7921381B2 (en) * 2007-04-26 2011-04-05 Verigy (Singapore) Pte. Ltd. Method and apparatus for displaying test data
US8209675B2 (en) * 2007-07-25 2012-06-26 Sap Ag Method and system for customizing a software application
US20090271663A1 (en) * 2008-04-24 2009-10-29 Vining Robert G Providing detailed program state information for error analysis
CN101510167B (zh) * 2009-03-31 2016-04-20 阿里巴巴集团控股有限公司 一种插件运行的方法、装置及系统
US8171345B2 (en) * 2009-04-15 2012-05-01 Vmware, Inc. Disablement of an exception generating operation of a client system
US8239709B2 (en) * 2009-08-12 2012-08-07 Apple Inc. Managing extrinsic processes
JP5272047B2 (ja) 2010-12-22 2013-08-28 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理システム
US20130081001A1 (en) * 2011-09-23 2013-03-28 Microsoft Corporation Immediate delay tracker tool
US20130254747A1 (en) * 2012-03-21 2013-09-26 International Business Machines Corporation Method and apparatus for testing programs
US8990763B2 (en) * 2012-03-23 2015-03-24 Tata Consultancy Services Limited User experience maturity level assessment
CN102681874B (zh) * 2012-05-14 2015-10-21 腾讯科技(深圳)有限公司 一种确保软件正常运行的方法及装置
CN103973746A (zh) * 2013-02-04 2014-08-06 鸿富锦精密工业(深圳)有限公司 远程控制管理系统及方法
US9465721B2 (en) 2013-08-19 2016-10-11 Microsoft Technology Licensing, Llc Snapshotting executing code with a modifiable snapshot definition
US20150052400A1 (en) 2013-08-19 2015-02-19 Concurix Corporation Breakpoint Setting Through a Debugger User Interface
US9021444B2 (en) * 2013-08-19 2015-04-28 Concurix Corporation Combined performance tracer and snapshot debugging system
CN103699472B (zh) * 2013-11-29 2016-08-31 深圳市理邦精密仪器股份有限公司 一种软件死机监测的方法及使用该方法的医用外接设备
US8990637B1 (en) 2014-03-17 2015-03-24 Splunk Inc. Computing and accessing quality indicators of computer applications
KR101503213B1 (ko) * 2014-04-04 2015-03-17 경주대학교 산학협력단 영상 이미지의 지리정보 및 패턴인식 기술을 이용한 시정거리 측정 장치 및 그 측정 방법
CN105468499B (zh) * 2014-09-04 2019-04-09 中芯国际集成电路制造(上海)有限公司 用于管理调度程序的系统和方法
WO2016151626A1 (ja) * 2015-03-24 2016-09-29 三菱電機株式会社 情報処理装置
CN105224420B (zh) * 2015-10-08 2018-11-09 Tcl通讯科技(成都)有限公司 一种自动解析终端异常的分析方法及系统
US10102109B2 (en) * 2016-05-31 2018-10-16 Red Hat, Inc. Exception resolution in a software development session
US10379934B2 (en) * 2017-07-31 2019-08-13 Oracle International Corporation System and method of providing post error analysis for instances of applications in cloud service environments on a per user basis

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63259738A (en) * 1987-04-17 1988-10-26 Hitachi Ltd Software quality evaluation system
JPH05143395A (ja) * 1991-11-18 1993-06-11 Nec Corp 診断プログラム実行方式およびそれに使用されるログ情報表示方式
US5548718A (en) * 1994-01-07 1996-08-20 Microsoft Corporation Method and system for determining software reliability
US5539907A (en) * 1994-03-01 1996-07-23 Digital Equipment Corporation System for monitoring computer system performance
US5655074A (en) 1995-07-06 1997-08-05 Bell Communications Research, Inc. Method and system for conducting statistical quality analysis of a complex system
US5678002A (en) * 1995-07-18 1997-10-14 Microsoft Corporation System and method for providing automated customer support
US6006331A (en) 1997-07-29 1999-12-21 Microsoft Corporation Recovery of online sessions for dynamic directory services
US6330689B1 (en) 1998-04-23 2001-12-11 Microsoft Corporation Server architecture with detection and recovery of failed out-of-process application
JP3104685B2 (ja) * 1998-07-31 2000-10-30 日本電気株式会社 システムログ記録装置、システムログ記録方法および記録媒体
US6425017B1 (en) * 1998-08-17 2002-07-23 Microsoft Corporation Queued method invocations on distributed component applications
US6219805B1 (en) * 1998-09-15 2001-04-17 Nortel Networks Limited Method and system for dynamic risk assessment of software systems
US6195695B1 (en) 1998-10-27 2001-02-27 International Business Machines Corporation Data processing system and method for recovering from system crashes
JP2000181761A (ja) * 1998-12-18 2000-06-30 Nec Corp 端末監視システム及び方法
JP2000187585A (ja) * 1998-12-22 2000-07-04 Mitsubishi Electric Corp 遠隔障害情報管理装置並びにその方法
AU5296500A (en) 1999-05-29 2000-12-18 Nowonder, Inc. User support system and method
US6651244B1 (en) * 1999-07-26 2003-11-18 Cisco Technology, Inc. System and method for determining program complexity
US6594774B1 (en) 1999-09-07 2003-07-15 Microsoft Corporation Method and apparatus for monitoring computer system objects to improve system reliability
US6363524B1 (en) 1999-09-10 2002-03-26 Hewlett-Packard Company System and method for assessing the need for installing software patches in a computer system
US6785015B1 (en) * 1999-11-12 2004-08-31 Hewlett-Packard Development Company, L.P. System and method for monitoring a computer system process or peripheral
US6915342B1 (en) * 2000-02-04 2005-07-05 Ricoh Company Limited Method and system for maintaining the business office appliance through log files
US6557120B1 (en) 2000-03-31 2003-04-29 Microsoft Corporation System and method for testing software reliability over extended time
US6728907B1 (en) 2000-04-14 2004-04-27 Microsoft Corporation System and method for self-diagnosing system crashes
US6785848B1 (en) 2000-05-15 2004-08-31 Microsoft Corporation Method and system for categorizing failures of a program module
US6665824B1 (en) 2000-05-15 2003-12-16 Microsoft Corporation System and method for handling a failure reporting conversation
US6701454B1 (en) 2000-06-05 2004-03-02 Microsoft Corporation Method and system for recovering information during a program failure
US6738928B1 (en) 2000-06-19 2004-05-18 Hewlett-Packard Development Company, L.P. Method and expert system for analysis of crash dumps
US6708333B1 (en) 2000-06-23 2004-03-16 Microsoft Corporation Method and system for reporting failures of a program module in a corporate environment
JP2002157171A (ja) 2000-11-17 2002-05-31 Canon Inc 情報処理装置、機器管理プログラム、機器管理プログラムが格納された記録媒体、及び機器管理方法
US6718489B1 (en) * 2000-12-07 2004-04-06 Unisys Corporation Electronic service request generator for automatic fault management system
US6681348B1 (en) 2000-12-15 2004-01-20 Microsoft Corporation Creation of mini dump files from full dump files
US20020144124A1 (en) * 2001-03-12 2002-10-03 Remer Eric B. Method and apparatus to monitor use of a program
US6785834B2 (en) * 2001-03-21 2004-08-31 International Business Machines Corporation Method and system for automating product support
US7050936B2 (en) * 2001-09-06 2006-05-23 Comverse, Ltd. Failure prediction apparatus and method
US20030074657A1 (en) * 2001-10-12 2003-04-17 Bramley Richard A. Limited time evaluation system for firmware
US20030084376A1 (en) * 2001-10-25 2003-05-01 Nash James W. Software crash event analysis method and system
US7216160B2 (en) 2001-10-31 2007-05-08 Sun Microsystems, Inc. Server-based application monitoring through collection of application component and environmental statistics
JP2003233512A (ja) * 2002-02-13 2003-08-22 Nec Corp 保守機能付きクライアント監視システム及び監視サーバ及びプログラム並びにクライアント監視・保守方法
US20030187672A1 (en) * 2002-04-01 2003-10-02 Sun Microsystems, Inc. Method, system, and program for servicing customer product support requests
US7421490B2 (en) 2002-05-06 2008-09-02 Microsoft Corporation Uniquely identifying a crashed application and its environment
US7107340B2 (en) 2002-05-31 2006-09-12 Microsoft Corporation System and method for collecting and storing event data from distributed transactional applications
US6830515B2 (en) 2002-09-10 2004-12-14 Igt Method and apparatus for supporting wide area gaming network
US7171651B1 (en) * 2002-11-26 2007-01-30 Microsoft Corporation Method and system for remotely controlling the reporting of events occurring within a computer system
US7062681B2 (en) 2002-12-03 2006-06-13 Microsoft Corporation Method and system for generically reporting events occurring within a computer system
JP4343526B2 (ja) * 2002-12-27 2009-10-14 キヤノンマーケティングジャパン株式会社 エラー監視装置およびエラー監視方法およびコンピュータが読取り可能な記憶媒体およびプログラム
US7334028B2 (en) * 2003-05-21 2008-02-19 Hewlett-Packard Development Company, L.P. Tiered multi-source software support using automated diagnostic-data transfers
US7386837B2 (en) * 2003-09-19 2008-06-10 International Business Machines Corporation Using ghost agents in an environment supported by customer service providers
US7379999B1 (en) * 2003-10-15 2008-05-27 Microsoft Corporation On-line service/application monitoring and reporting system
US7072805B2 (en) * 2003-10-17 2006-07-04 International Business Machines Corporation Mechanism for on-line prediction of future performance measurements in a computer system
US7389444B2 (en) * 2004-07-27 2008-06-17 Microsoft Corporation Method and system for troubleshooting a misconfiguration of a computer system based on product support services information

Also Published As

Publication number Publication date
EP1650662A2 (en) 2006-04-26
CN1755644B (zh) 2010-12-08
KR20060046276A (ko) 2006-05-17
US7681181B2 (en) 2010-03-16
CN1755644A (zh) 2006-04-05
US20060070037A1 (en) 2006-03-30
EP1650662B1 (en) 2017-07-12
KR101036702B1 (ko) 2011-05-24
JP2006107428A (ja) 2006-04-20
EP1650662A3 (en) 2009-09-02

Similar Documents

Publication Publication Date Title
US9369356B2 (en) Conducting a diagnostic session for monitored business transactions
US20170177468A1 (en) Anomaly Analysis For Software Distribution
US10235204B2 (en) Integrated monitoring and control of processing environment
US9658914B2 (en) Troubleshooting system using device snapshots
US20160062817A1 (en) Predicting, Diagnosing, And Recovering From Application Failures Based On Resource Access Patterns
US9003230B2 (en) Method and apparatus for cause analysis involving configuration changes
US8893157B2 (en) Administering incident pools for event and alert analysis
US10291471B1 (en) Methods and apparatus for remediation execution
US8730816B2 (en) Dynamic administration of event pools for relevant event and alert analysis during event storms
US9575814B2 (en) Identifying hung condition exceeding predetermined frequency threshold and modifying hanging escalation tasks to avoid hang conditions
US8825852B2 (en) Relevant alert delivery in a distributed processing system
US9645815B2 (en) Dynamically recommending changes to an association between an operating system image and an update group
US8560689B2 (en) Administering incident pools for event and alert analysis
US8868986B2 (en) Relevant alert delivery in a distributed processing system with event listeners and alert listeners
US7219266B2 (en) Method and system for categorizing failures of a program module
US7124328B2 (en) Capturing system error messages
US8555238B2 (en) Programming and development infrastructure for an autonomic element
US8892960B2 (en) System and method for determining causes of performance problems within middleware systems
US8688769B2 (en) Selected alert delivery in a distributed processing system
US7877642B2 (en) Automatic software fault diagnosis by exploiting application signatures
US8782612B2 (en) Failsafe mechanism for dynamic instrumentation of software using callbacks
US8453027B2 (en) Similarity detection for error reports
US8296104B2 (en) Rule-based engine for gathering diagnostic data
Chen et al. Path-based failure and evolution management
US7359834B2 (en) Monitoring system-calls to identify runaway processes within a computer system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110513

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120315

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120615

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121010

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20121011

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121011

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130627

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130712

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130808

R150 Certificate of patent or registration of utility model

Ref document number: 5341295

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees