(57)【要約】  一実施形態において、システムアナライザは、コンピューターシステムアクティビティのトレースタイムラインを繰り返しサブ分割して、トレースタイムラインにおける様々なシナリオの根本原因をより正確に理解することができる。システムアナライザは、シナリオアウェアベースで、トレースタイムラインのシナリオを自動的に分割することができる。システムアナライザは、シナリオをそのシナリオのサブシナリオセットに自動的にサブ分割することができる。システムアナライザは、サブ分割されたトレースタイムラインをユーザーに対して表示することができる。
2016514326.tif 000002
【特許請求の範囲】
【請求項１】
機械実装方法であって、
コンピューターシステムアクティビティのトレースタイムラインを自動的に解析する工程と、
シナリオアウェアベースで、前記トレースタイムラインのシナリオを自動的に分割する工程と、
前記シナリオをサブシナリオセットに自動的にサブ分割する工程と、を含む、機械実装方法。
【請求項２】
解析のために、前記シナリオのシナリオタイプを特定し、前記シナリオをシナリオ特定のサブコンポーネントに割り当てる工程、をさらに含む、請求項１に記載の方法。
【請求項３】
前記サブシナリオセットのサブシナリオに対する根本原因として終端ノードにマーキングする工程、をさらに含む、請求項１に記載の方法。
【請求項４】
シナリオ分岐の分岐ノードを、付随的なシナリオ分岐の付随的な分岐ノードにマッチングする工程、をさらに含む、請求項１に記載の方法。
【請求項５】
シナリオ分岐の分岐ノードと付随的なシナリオ分岐の付随的な分岐ノードとの間のノード関係を指示する工程、をさらに含む、請求項１に記載の方法。
【請求項６】
シナリオ分岐の根本原因を、付随的なシナリオ分岐の付随的な根本原因にマッチングする工程、をさらに含む、請求項１に記載の方法。
【請求項７】
前記シナリオの少なくとも１つの分割基準を設定する工程、をさらに含む、請求項１に記載の方法。
【請求項８】
有形機械可読メディアであって、そこに記憶される方法を詳述する命令のセットを有し、前記命令が１つまたは複数のプロセッサによって実行される際に、前記１つまたは複数のプロセッサに前記方法を実行させ、前記方法が、
シナリオアウェアベースで、トレースタイムラインのシナリオを自動的に分割する工程と、
前記シナリオをサブシナリオセットに自動的にサブ分割する工程と、
サブ分割されたトレースタイムラインをユーザーに対して表示する工程と、を含む、有形機械可読メディア。
【請求項９】
システムアナライザであって、
コンピューターシステムアクティビティのトレースタイムラインを記憶するデータストレージと、
シナリオアウェアベースで、前記トレースタイムラインのシナリオを自動的に分割し、かつ前記シナリオをサブシナリオセットに自動的にサブ分割するプロセッサと、
サブ分割されたトレースタイムラインをユーザーに対して提示するディスプレイと、を含む、システムアナライザ。
【請求項１０】
前記プロセッサが、前記サブシナリオセットのうちのサブシナリオに対する根本原因として終端ノードにマーキングする、請求項９に記載のシステムアナライザ。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  ソフトウェアアプリケーションは、一般へのリリース前に、またはリリース後であっても、開発者によってテストすることができる。開発者または他のソフトウェアオペレーターは、ソフトウェアアプリケーションを実行して、ソフトウェアアプリケーションの動作を判定することができる。開発者または他のソフトウェアオペレーターは、ソフトウェアアプリケーションの実行中のそれぞれの時点において、コンピューターシステムの状態を登録しながら、トレースタイムラインを記録することができる。トレースタイムラインは、開発者または他のソフトウェアオペレーターに対して、大量のデータを提供することができる。
【発明の概要】
【０００２】
[0002]  本発明の概要は、発明を実施するための形態において以下にさらに説明される概念の一部を、簡略化された形で紹介するために提供される。本発明の概要は、特許請求される主題の主要な特徴または本質的な特徴を特定することを意図するものでもなく、特許請求される主題の範囲を制限するために使用されることを意図するものでもない。
【０００３】
[0003]  以下で論じる実施形態は、コンピューターシステムアクティビティのトレースタイムラインを、繰り返しサブ分割して、トレースタイムラインにおける様々なシナリオの根本原因をより正確に理解することに関する。システムアナライザは、シナリオアウェアベース（scenario-aware basis）で、自動的にトレースタイムラインのシナリオを分割することができる。システム（ナライザは、シナリオを、そのシナリオのサブシナリオセットに自動的にサブ分割することができる。システムアナライザは、サブ分割されたトレースタイムラインを、ユーザーに対して表示することができる。
【０００４】
[0004]  前述および他の利点および特徴を得ることができる方法を説明するために、より具体的な説明を、記載し、かつ添付の図面に示されるそれらの特定の実施形態を参照することによって行う。これらの図面は、典型的な実施形態のみを示すものであり、したがってその範囲を限定していると見做されるべきではなく、添付の図面の使用を通じて、実装について、さらに具体的かつ詳細に記載し、説明することを理解されたい。
【図面の簡単な説明】
【０００５】
【図１】[0005]コンピューティングデバイスの一実施形態をブロック図形式で示す図である。
【図２】[0006]シナリオツリーの一実施形態をブロック図形式で示す図である。
【図３】[0007]分割されたトレースタイムラインのディスプレイの一実施形態をブロック図形式で示す図である。
【図４】[0008]トレースタイムラインを作成するための方法の一実施形態をフローチャート形式で示す図である。
【図５】[0009]トレースタイムラインをサブ分割するための方法の一実施形態をフローチャート形式で示す図である。
【図６】[0010]サブ分割されたトレースタイムラインを表示するための方法の一実施形態をフローチャート形式で示す図である。
【発明を実施するための形態】
【０００６】
[0011]  実施形態について、以下に詳細に論じる。特定の実装について論じているが、これは、例示のみを目的として行われることが理解されるべきである。関連技術の当業者は、本開示の主題の趣旨および範囲から逸脱することなく、他のコンポーネントおよび構成が使用されてもよいことを認識するだろう。実装は、機械実装方法、少なくとも１つのプロセッサのためにそこに記憶される方法を詳述する命令のセットを有する有形機械可読メディア、またはコンピューティングデバイスのためのシステムアナライザであってもよい。
【０００７】
[0012]  コンピューターシステムアクティビティは、解析を困難にする多量の複雑なシステムおよびコンポーネントアクティビティを有することがある。総合的に見ると、この複雑さは、コンピューターシステムアクティビティのタイムラインを、１つまたは複数のシナリオに分割することにより、さらには、そのシナリオをサブシナリオに分割することにより、低減することができる。シナリオは、コンピューターシステムアクティビティの状態またはイベントである。例えば、シナリオは、コンピューターデバイスが、「コネクトスタンバイ」状態または「アクティブ」状態にあることであってもよい。サブシナリオは、シナリオの原因またはファセットである状態またはイベントである。上記の例では、「アクティブ」状態にあるコンピューターデバイスのシナリオは、誤った状態にあるドライバーまたは参照を保持するアクチベーターのサブシナリオによって引き起こされてもよい。これらのサブシナリオは、ストレージまたはネットワーク入出力などの非常に基本的なアクティビティへさらに縮小することができる。シナリオを個々のサブシナリオへ分割（partition）する際、これらのサブシナリオ間の関係を維持して、これらのサブシナリオの影響をその親シナリオに正確に帰属させることができる。
【０００８】
[0013]  例えば、ユーザーシナリオ中の１０個の「ファイルオープン」サブシナリオは、そのシナリオの重要な属性の最終的なものでなくてもよく、また完全に説明されなくてもよい。これら１０個の「ファイルオープン」操作のうちの９個は、全く無関係な理由のために行われてもよい。
【０００９】
[0014]  シナリオタイムライン帰属に対する分割統治法は、より効果的なアクティビティ解析を生成することができる。この方法は、より良いシナリオ理解、既知のサブシナリオおよびアクティビティ帰属、ならびにインタラクティブで拡張可能な可視化を可能にすることができる。コンピューターシステムアクティビティのトレースタイムラインを繰り返し分割するシステムアナライザは、アクティビティを容易に可視化し、興味のある挙動（behavior）のためのトレースタイムラインをマイニングし、かつ根本原因のための挙動を解析することができる。システムアナライザは、トレースタイムラインを１つまたは複数のシナリオに分割し、その後、１つまたは複数のシナリオをサブシナリオのセットにサブ分割することができる。システムアナライザは、シナリオまたはサブシナリオのそれぞれのタイプに特化したサブコンポーネントを使用して、それぞれのシナリオまたはサブシナリオを解析することができる。
【００１０】
[0015]  シナリオタイムラインを理解し、表現することは、潜在的に数百の同時に発生するイベントを有し得る。これらのサブシナリオは、ユーザーシナリオの論理レベルを表現することができ、基本的なアクティビティに達するまで、さらなるサブシナリオに繰り返し分割することができる。
【００１１】
[0016]  システムアナライザは、所定のシナリオのそれぞれの瞬間を説明することができ、かつその瞬間を既知のサブシナリオまたはアクティビティに帰属させることができる。システムアナライザは、基本的なアクティビティに達するまで、アクティビティ依存関係階層を追跡しながら、メインシナリオをサブシナリオに分割することができる。基本的なアクティビティは、「ストレージ読み取り」要求などの検出可能な関連のある挙動の最小単位、または既約サブシナリオのいずれかを指す。
【００１２】
[0017]  分割は、「トップダウン」で生じてもよく、その結果、シナリオは、まず既知のサブシナリオに分割され、続いて、既知のサブシナリオまたはアクティビティの可能な限り低いレベルに達するまで、さらに繰り返し分割される。この分割中、システム上で生じるサブシナリオおよびアクティビティのすべてのセットについて、１つまたは複数のサブセットを繰り返し分割することができる。システムアナライザは、テスト基準において提供されるシナリオの知識に基づくサブセットを選択することができる。システムアナライザは、メインシナリオおよびそれらの相互依存性に関連するサブシナリオおよびアクティビティを認識することができる。システムアナライザのシナリオ特定の知識がより多く使用できるほど、シナリオおよびアクティビティ帰属がより具体的に行われる。
【００１３】
[0018]  例えばコネクトスタンバイのシナリオタイムラインにおいては、システムは、省電力のコネクトスタンバイ状態から出ることがある。システムアナライザは、システムがコネクトスタンバイでなくなり得るそれぞれの理由を認識することができる。システムアナライザは、時間領域をサブ領域に分割することができ、それぞれのサブ領域を最も低い電力状態にならない１つまたは複数の特定の原因に帰属させる。
【００１４】
[0019]  システムアナライザは、シナリオ特定のサブコンポーネントを使用して、シナリオに影響し得る既知のサブシナリオおよびアクティビティを探して、シナリオを表現する時間領域を調査することができる。システムアナライザは、その後、時間領域を、メインシナリオを生じさせる異なるサブシナリオを表現する異なるサブ領域にさらに分割することができる。いくつかのサブシナリオは、同じ分割の論理レベルにおいて重複してもよい。加えて、いくつかのサブシナリオは、複数の分割の論理レベルに渡って重複してもよい。システムアナライザは、これらのサブシナリオを、優先度付けすることができ、より高い優先順位のサブシナリオがユーザーに対して示される。サブシナリオをマッチングする工程は、プレゼンテーションステージに集約することができる。
【００１５】
[0020]  このように、一実施形態において、システムアナライザは、コンピューターシステムアクティビティのトレースタイムラインを繰り返しサブ分割して、トレースタイムラインにおける様々なシナリオの根本原因をより正確に理解することができる。システムアナライザは、シナリオアウェアベースで、自動的にトレースタイムラインのシナリオを分割することができる。システムアナライザは、シナリオを、そのシナリオのサブシナリオセットに自動的にサブ分割することができる。システムアナライザは、サブ分割されたトレースタイムラインをユーザーに対して表示することができる。
【００１６】
[0021]  図１は、システムアナライザとして動作することができる例示的なコンピューティングデバイス１００のブロック図を示す。コンピューティングデバイス１００は、１つまたは複数のハードウェア、ソフトウェア、ファームウエア、およびシステムオンチップ技術を組み合わせて、システムアナライザを実装することができる。コンピューティングデバイス１００は、バス１１０、プロセッサ１２０、メモリ１３０、データストレージ１４０、入力デバイス１５０、出力デバイス１６０、および通信インターフェイス１７０を含んでもよい。バス１１０、または他のコンポーネントの相互接続は、コンピューティングデバイス１００のコンポーネント間の通信を可能にすることができる。
【００１７】
[0022]  プロセッサ１２０は、命令のセットを解釈し、実行する少なくとも１つの従来のプロセッサまたはマイクロプロセッサを含んでもよい。メモリ１３０は、プロセッサ１２０による実行のための情報および命令を記憶するランダムアクセスメモリ（ＲＡＭ）または別のタイプの動的データストレージであってもよい。メモリ１３０はまた、プロセッサ１２０による命令の実行中に使用される一時的な変数または他の中間情報も記憶することができる。データストレージ１４０は、プロセッサ１２０のための静的情報および命令を記憶する従来のＲＯＭデバイスまたは別のタイプの静的データストレージを含んでもよい。データストレージ１４０は、例えば、デジタルビデオディスクなどの磁気または光学記録メディア、およびその対応ドライブなどの、任意のタイプの有形の機械可読なメディア（媒体）を含んでもよい。有形機械可読メディアは、信号とは対照的な、機械可読コードまたは命令を記憶する物理メディアである。本明細書で説明されるようにコンピューター可読メディア上に命令を記憶させることは、命令を伝搬または送信させることとは区別されるが、それは、伝搬によって命令が転送されるのに対して、コンピューター可読メディアが命令を記憶することにより行われ得るように、命令を記憶するからである。したがって、特に断りのない限り、そこに記憶される命令を有するコンピューター可読メディア／単一メディアに対する参照は、本形式または類似の形式において、データを記憶または保持することができる有形メディアを参照する。データストレージ１４０は、１つまたは複数のプロセッサによって実行される際に、その方法を１つまたは複数のプロセッサに実行させる方法を詳述する命令のセットを記憶することができる。データストレージ１４０はまた、データベースまたはトレースタイムラインを記憶するためのデータベースインターフェイスであってもよい。
【００１８】
[0023]  入力デバイス１５０は、キーボード、マウス、音声認識デバイス、マイク、ヘッドセット、ジェスチャ認識デバイス、タッチスクリーンなど、ユーザーが、コンピューティングデバイス１００に対して情報を入力することを可能にする１つまたは複数の従来の機構を含んでもよい。出力デバイス１６０は、ユーザーに対して情報を出力するディスプレイ１６２、プリンター、１つまたは複数のスピーカー、ヘッドセット、または、メモリ、または磁気もしくは光学ディスクおよび対応するディスクドライブなどのメディアを含む１つまたは複数の従来の機構を含んでもよい。通信インターフェイス１７０は、コンピューティングデバイス１００が他のデバイスまたはネットワークと通信することを可能にする任意のトランシーバのような機構を含んでもよい。通信インターフェイス１７０は、ネットワークインターフェイスまたはトランシーバインターフェイスを含んでもよい。通信インターフェイス１７０は、ワイヤレス、ワイヤード、または光学インターフェイスであってもよい。
【００１９】
[0024]  コンピューティングデバイス１００は、例えば、メモリ１３０、磁気ディスク、または光学ディスクなどのコンピューター可読メディアに含まれる命令のシーケンスを実行するプロセッサ１２０に応答して、このような機能を実行することができる。このような命令は、データストレージ１４０などの別のコンピューター可読メディアから、または通信インターフェイス１７０を介して別個のデバイスから、メモリ１３０へ読み取ることができる。
【００２０】
[0025]  図２は、シナリオツリー２００の一実施形態をブロック図形式で示す。シナリオツリー２００は、トレースタイムライン２０２に基づくことができる。トレースタイムライン２０２は、コンピューターシステムアクティビティのパフォーマンスを解析するために取られたそのコンピューターシステムアクティビティの記録である。システムアナライザは、分割基準（partition criteria）のセットをユーザーから受信して、トレースタイムライン２０２を解析することができる。システムアナライザは、シナリオアウェアベースで、分割基準に基づいて、トレースタイムライン２０２から１つまたは複数のシナリオ２０４を自動的に分割することができる。例えば、システムアナライザは、デバイス状態のトレースタイムライン２０２のうち、アクティブモードおよびコネクトスタンバイモードの期間を分割することができる。
【００２１】
[0026]  システムアナライザは、その後、解析のために、それぞれのシナリオ２０４のシナリオタイプを特定し、そのシナリオタイプに特化するシステムアナライザのサブコンポーネントを割り当てることができる。シナリオ特定のサブコンポーネントは、その後、シナリオ２０４をサブシナリオ２０６のセット、またはサブシナリオセットに自動的にサブ分割して、シナリオ２０４の原因を判定することができる。上記の例では、コネクトスタンバイモードから抜けることが、誤った状態のドライバーまたは参照を保持するアクチベーターによって引き起こされてもよい。シナリオ２０４は、複数のサブシナリオ２０６を有してもよく、それらは、重複してもしなくてもよい。システムアナライザは、それぞれのサブシナリオ２０６のシナリオタイプをさらに特定し、それらのサブシナリオ２０６を、それらのシナリオタイプに特化するサブコンポーネントに割り当てることができる。これらのシナリオ特定のサブコンポーネントは、その後、それぞれのサブシナリオ２０６をサブ分割して、そのサブシナリオ２０６の原因を発見することができる。
【００２２】
[0027]  システムアナライザは、複数の論理レベル２０８のためのサブ分割プロセスを繰り返して、シナリオ２０４のための１つまたは複数のシナリオ分岐２１０を作成することができる。シナリオ分岐２１０は、複数の分岐ノード２１２を有することができ、それぞれが、次の論理レベルサブシナリオ２０６を表現する。分岐ノード２１２は、シナリオ分岐２１０におけるシナリオ２０４またはサブシナリオ２０６を参照する。システムアナライザは、それぞれのシナリオ分岐２１０についての終端ノードに達するまで、サブ分割プロセスを繰り返すことができる。終端ノードは、サブシナリオに対して既約であり得る分岐ノード２１２であってもよい。終端ノードは、根本原因２１４となり得る。根本原因２１４は、シナリオ２０４を引き起こす基本的なアクティビティである。シナリオ２０４は、複数の可能な根本原因２１４を有することができる。システムアナライザは、その分岐ノード２１２の内部の働きが不明瞭な場合は、サードパーティコンポーネントノード２１６として分岐ノード２１２にマーキングすることができる。サードパーティコンポーネントノードは、外部の開発者によって提供されることがあり、不明な内部の働きを有する。
【００２３】
[0028]  上記の例では、参照を保持するアクチベーターは、参照を保持するカレンダープログラム、または参照を保持するメールプログラムによって引き起こされてもよい。メールプログラムは、サーバー接続遅延または入出力関連遅延のため、参照を保持していることがある。サーバー接続遅延または入出力関連遅延は、コネクトスタンバイモードから抜けるというシナリオ２０４の根本原因２１４となり得る。
【００２４】
[0029]  １つのシナリオ分岐２１０における分岐ノード２１２は、第２のシナリオ分岐２１０における第２の分岐ノード２１２に対するマッチ（適合）２１８であってもよい。分岐ノード２１２は、マッチ２１８としてマーキングされて、同じ分岐ノード２１２が、２つの異なるシナリオ２０４またはサブシナリオ２０６の原因となり得ることを指し示すことができる。さらに、１つのシナリオ分岐２１０についての根本原因２１４は、第２のシナリオ分岐２１０についての第２の根本原因２１４に対するマッチ２１８であってもよい。根本原因２１４は、マッチ２１８としてマーキングされて、同じ根本原因２１４が、２つの異なるシナリオ２０４またはサブシナリオ２０６の原因となり得ることを指し示すことができる。マッチ２１８は、異なる論理レベル２０８または同じ論理レベル２０８上の分岐ノード２１２間に存在してもよい。
【００２５】
[0030]  １つのシナリオ分岐２１０における分岐ノード２１２は、第２のシナリオ分岐２１０における第２の分岐ノード２１２とのノード関係２２０を有してもよい。ノード関係２２０は、第１の分岐ノード２１２が、第２の分岐ノード２１２の根本原因２１４とマッチングする根本原因２１４によって引き起こされることを指し示すことができる。ノード関係２２０は、異なる論理レベル２０８または同じ論理レベル２０８上の分岐ノード２１２間に存在してもよい。
【００２６】
[0031]  シナリオツリー２００が計算された後、システムアナライザは、ユーザーに対して結果を表示することができる。図３は、分割されたトレースタイムラインのディスプレイ３００の一実施形態をブロック図形式で示す。分割されたトレースタイムラインのディスプレイ３００は、シナリオ２０４を入れ子になったリスト３０２として提示することができる。入れ子になったリスト３０２は、ユーザーに対して分割されたシナリオ２０４をリストすることができる。ユーザーがシナリオ２０４を選択すると、入れ子になったリスト３０２が拡張して、そのシナリオ２０４からサブ分割されたサブシナリオ２０６を示すことができる。ユーザーは、それぞれの根本原因２１４またはサードパーティコンポーネントノード２１６が表示されるまで、リストを拡張し続けることができる。
【００２７】
[0032]  分割されたトレースタイムラインのディスプレイ３００は、入れ子になったリスト３０２にマッチングされた時間マップ３０４を有することができる。時間マップ３０４は、入れ子になったリスト３０２におけるそれぞれの行についてのマップタイムラインを有することができる。マップタイムラインは、それぞれの分岐ノード２１２がタイムラインにおいていつ生じるかを示すことができる。マップタイムラインは、２つのサブシナリオ２０６が次のより高い論理レベル２０８に圧縮される場合に、それぞれのサブシナリオがそのマップタイムラインにおいていつ生じているかを、ユーザーがなお知ることができるように色分けすることができる。マップタイムラインにおけるイベントは、時間スコープすることができる。時間スコープは、ユーザーがイベント同士を明確に区別できるようにする、マップタイムラインにおけるイベントに関する詳細の拡張である。時間スコープは、複数のイベントが非常に短い期間に渡って生じている際に有用とすることができる。
【００２８】
[0033]  分割されたトレースタイムラインのディスプレイ３００は、詳細パネル３０６を有してもよい。詳細パネルは、より詳細に、ユーザーによって選択された分岐ノード２１２を説明することができる。詳細パネル３０６は、分岐ノード２１２を作成した特定のコードの行を参照するか、またはその分岐ノード２１２についてのより正確なタイミングデータを与えることができる。
【００２９】
[0034]  図４は、トレースタイムラインを作成するための方法４００の一実施形態をフローチャート形式で示す。システムアナライザは、コンピューターシステムアクティビティのテストランのテスト基準を設定することができる（ブロック４０２）。システムアナライザは、コンピューターシステムアクティビティのテストランを実行することができる（ブロック４０４）。システムアナライザは、コンピューターシステムアクティビティのテストランのトレースタイムライン２０２を記録することができる（ブロック４０６）。システムアナライザは、コンピューターシステムアクティビティのトレースタイムライン２０２を自動的に解析することができる（ブロック４０８）。
【００３０】
[0035]  図５は、トレースタイムラインをサブ分割するための方法５００の一実施形態をフローチャート形式で示す。システムアナライザは、シナリオの分割基準を設定することができる（ブロック５０２）。システムアナライザは、分割基準に基づいて、シナリオアウェアベースで、トレースタイムライン２０２のシナリオ２０４を自動的に分割することができる（ブロック５０４）。システムアナライザは、解析のために、シナリオ２０４のシナリオタイプを特定して、シナリオ２０４をシナリオ特定のサブコンポーネントに割り当てることができる（ブロック５０６）。システムアナライザのシナリオ特定のサブコンポーネントは、サブ分割を目的にシナリオ２０４を解析することができる（ブロック５０８）。システムアナライザのためのシナリオ特定のサブコンポーネントは、シナリオ２０４をサブシナリオセットに自動的にサブ分割することができる（ブロック５１０）。システムアナライザが、シナリオ分岐２１０の終端ノードに達していないことを判定する場合（ブロック５１２）、システムアナライザは、サブシナリオセットのうちのサブシナリオ２０６のシナリオタイプを特定して、さらなる解析およびサブ分割のためにサブシナリオ２０６をシナリオ特定のサブコンポーネントに割り当てることができる（ブロック５０６）。システムアナライザが、シナリオ分岐の終端ノードに達しており（ブロック５１２）、かつサードパーティコンポーネントに達する（ブロック５１４）と判定する場合、システムアナライザは、サードパーティコンポーネントノード２１６として終端ノードにマーキングすることができる（ブロック５１６）。それ以外の場合は、システムアナライザは、サブシナリオセットのうちのサブシナリオ２０６に対する根本原因２１４として終端ノードにマーキングすることができる（ブロック５１８）。システムアナライザは、シナリオ分岐２１０の分岐ノード２１２を付随的なシナリオ分岐２１０の付随的な分岐ノード２１２にマッチングすることができる（ブロック５２０）。システムアナライザは、シナリオ分岐２１０の根本原因２１４を付随的なシナリオ分岐２１０の付随的な根本原因２１４にマッチングすることができる（ブロック５２２）。システムアナライザは、シナリオ分岐２１０の分岐ノード２１２と付随的なシナリオ分岐２１０の付随的な分岐ノード２１２との間のノード関係を指示することができる（ブロック５２４）。
【００３１】
[0036]  図６は、サブ分割されたトレースタイムラインを表示するための方法６００の一実施形態をフローチャート形式で示す。システムアナライザは、ユーザーに対して、サブ分割されたトレースタイムライン２０２を表示することができる（ブロック６０２）。システムアナライザは、サブ分割されたトレースタイムライン２０２を表現する入れ子になったリスト３０２を提示することができる（ブロック６０４）。システムアナライザは、サブ分割されたトレースタイムライン２０２を表現する時間マップ３０４を提示することができる（ブロック６０６）。システムアナライザは、時間マップ３０４における分岐ノード２１２を色分けすることができる（ブロック６０８）。システムアナライザが、分岐ノード２１２を選択するユーザーから入力を受信する場合（ブロック６１０）、システムアナライザは、時間マップ３０４における分岐ノード２１２を時間スコープすることができる（ブロック６１２）。システムアナライザは、詳細パネル３０６における分岐ノード２１２のノード詳細を表示することができる（ブロック６１４）。
【００３２】
[0037]  主題について、構造的特徴および／または方法論的動作に特定の用語で説明してきたが、添付の特許請求の範囲における主題は、必ずしも上述の特定の特徴または動作に限定されないことが理解されるべきである。むしろ、上述の特定の特徴および動作は、特許請求の範囲を実装する例示的な形態として開示される。
【００３３】
[0038]  本発明の範囲内の実施形態はまた、そこに記憶されるコンピューター実行可能命令またはデータ構造を運ぶまたは有するためのコンピューター可読ストレージメディアを含んでもよい。このようなコンピューター可読ストレージメディアは、汎用または専用のコンピューターによってアクセスすることができる任意の入手可能なメディアであってもよい。例として、限定するものではないが、このようなコンピューター可読ストレージメディアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光学ディスクストレージ、磁気ディスクストレージもしくは他の磁気データストレージ、またはコンピューター実行可能命令またはデータ構造の形式で所望のプログラムコード手段を運ぶまたは記憶するために使用することができる任意の他のメディアを含んでもよい。上記の組み合わせもまた、コンピューター可読ストレージメディアの範囲内に含まれるべきである。
【００３４】
[0039]  実施形態はまた、通信ネットワークを介して（ハードワイヤードリンク、ワイヤレスリンク、またはそれらの組み合わせのいずれかによって）リンクされるローカルおよびリモートプロセッシングデバイスによってタスクが実行される分散コンピューティング環境で実施されてもよい。
【００３５】
[0040]  コンピューター実行可能命令は、例えば、汎用コンピューター、専用コンピューター、または専用プロセッシングデバイスにある機能または機能群を実行させる命令およびデータなどを含む。コンピューター実行可能命令はまた、スタンドアロンまたはネットワーク環境においてコンピューターによって実行されるプログラムモジュールも含む。概して、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造などを含む。コンピューター実行可能命令、関連するデータ構造、およびプログラムモジュールは、本明細書に開示される方法の工程を実行するためのプログラムコード手段の例を表現する。このような実行可能命令または関連するデータ構造の特定のシーケンスは、このような工程において記述される機能を実装するための対応する動作の例を表現する。
【００３６】
[0041]  上記の説明は、特定の詳細を含み得るが、それらは、いかなる意味においても特許請求の範囲を限定するものとして解釈されるべきではない。記載した実施形態の他の構成は、本開示の範囲の一部である。例えば、本開示の原理は、それぞれ個々のユーザーに適用されてもよく、それぞれのユーザーがこのようなシステムを個々に配置してもよい。これにより、多数の可能なアプリケーションのいずれかが、本明細書で説明した機能を使用しない場合でも、それぞれのユーザーは、本開示の利益を利用することが可能となる。電子デバイスの複数のインスタンスは、様々な可能な方法で、それぞれコンテンツを処理することができる。実装は、必ずしも、すべてのエンドユーザーによって使用される１つのシステムにある必要はない。したがって、添付の特許請求の範囲およびそれらの法的均等物は、与えられた任意の特定の例よりもむしろ、単に本発明を定義するべきである。
【図１】
2016514326.tif 000003
【図２】
2016514326.tif 000004
【図３】
2016514326.tif 000005
【図４】
2016514326.tif 000006
【図５】
2016514326.tif 000007
【図６】
2016514326.tif 000008
【手続補正書】
【提出日】平成26年10月15日(2014.10.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
機械実装方法であって、
コンピューターシステムアクティビティのトレースタイムライン（２０２）を自動的に解析する工程と、
シナリオ（２０４）の分割基準を設定する工程（５０２）と、
シナリオアウェアベースで、前記分割基準に基づいて、前記トレースタイムライン（２０２）のシナリオ（２０４）を自動的に分割する工程（５０４）と、
前記シナリオ（２０４）をサブシナリオ（２０６）セットに自動的にサブ分割する工程（５１０）と、を含む、機械実装方法。
【請求項２】
解析のために、前記シナリオ（２０４）のシナリオタイプを特定し（５０６）、前記シナリオ（２０４）をシナリオ特定のサブコンポーネントに割り当てる工程と、
サブ分割のため、前記シナリオ（２０４）を解析する工程（５０８）と、
をさらに含む、請求項１に記載の方法。
【請求項３】
シナリオ（２０４）が、前記コンピューターシステムアクティビティの状態またはイベントの１つであり、コネクトスタンバイ状態またはアクティブ状態であるコンピューターデバイスを含み、サブシナリオ（２０６）が、前記シナリオ（２０４）の原因またはファセットである状態またはイベントであり、誤った状態にあるドライバー、参照を保持するアクチベーター、またはストレージもしくはネットワーク入出力を含む、請求項１または２に記載の方法。
【請求項４】
前記シナリオ（２０４）を個々のサブシナリオ（２０６）に分割する際に、これらのサブシナリオ（２０６）間の関係を維持して、これらのサブシナリオ（２０６）の影響をその親シナリオ（２０４）に正確に帰属させる、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
基本的なアクティビティに達するまでアクティビティ依存関係階層を追跡しながら、前記シナリオ（２０４）をサブシナリオ（２０６）に分割するシステムアナライザをさらに含む方法であって、基本的なアクティビティは、ストレージ読み取り要求などの検出可能な関連する挙動の最小単位、または既約サブシナリオ（２０６）のいずれかを指す、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
サブシナリオ（２０６）のすべてのセットおよび前記システム上で生じるアクティビティについて、１つまたは複数のサブセットを繰り返し分割する工程、をさらに含む、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
解析のために、前記シナリオ（２０６）のシナリオタイプを特定して、前記シナリオ（２０６）をシナリオ特定のサブコンポーネントに割り当てる工程、
をさらに含む、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
サブシナリオ（２０６）セットのサブシナリオ（２０６）に対する根本原因として終端ノードにマーキングする工程であって、前記終端ノードが、サブシナリオ（２０６）に対して既約な分岐ノード（２１２）である工程、
をさらに含む、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
シナリオ分岐（２１０）の分岐ノード（２１２）を、付随的なシナリオ分岐（２１０）の付随的な分岐ノード（２１２）にマッチングする工程、
をさらに含む、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
シナリオ分岐（２１０）の分岐ノード（２１２）と付随的なシナリオ分岐（２１０）の付随的な分岐ノード（２１２）との間のノード関係を指示する工程、
をさらに含む、請求項１〜９のいずれか１項に記載の方法。
【請求項１１】
シナリオ分岐（２１０）の根本原因を、付随的なシナリオ分岐（２１０）の付随的な根本原因にマッチングする工程、
をさらに含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項１２】
有形の機械可読な媒体であって、そこに記憶される方法を詳述する命令のセットを有し、前記命令が１つまたは複数のプロセッサによって実行される際に、前記１つまたは複数のプロセッサに前記方法を実行させ、前記方法が、
シナリオの分割基準を設定する工程（５０２）と、
シナリオアウェアベースで、前記分割基準に基づいて、トレースタイムライン（２０２）のシナリオ（２０４）を自動的に分割する工程（５０４）と、
前記シナリオ（２０４）をサブシナリオセットに自動的にサブ分割する工程（５１０）と、
サブ分割されたトレースタイムライン（２０２）をユーザーに対して表示する工程と、を含む、媒体。
【請求項１３】
システムアナライザであって、
コンピューターシステムアクティビティのトレースタイムラインを記憶するデータストレージ（１４０）であって、前記システムアナライザが、ユーザーから分割基準のセットを受信して、前記トレースタイムライン（２０２）を解析する、データストレージ（１４０）と、
シナリオアウェアベースで、前記分割基準に基づいて、前記トレースタイムライン（２０２）のシナリオ（２０４）を自動的に分割し、かつ前記シナリオ（２０４）をサブシナリオ（２０６）セットに自動的にサブ分割するプロセッサ（１２０）と、
サブ分割されたトレースタイムライン（２０２）を前記ユーザーに対して提示するディスプレイ（１６２）と、を含む、システムアナライザ。
【請求項１４】
前記プロセッサ（１２０）が、前記サブシナリオセットのうちのサブシナリオの根本原因として終端ノードにマーキングし、前記終端ノードが、サブシナリオ（２０６）に対して既約な分岐ノード（２１２）である、請求項１３に記載のシステムアナライザ。
【国際調査報告】
2016514326.tif 000009
2016514326.tif 000010