(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】性能イベント・トラブルシューティング・システム
(51)【国際特許分類】
G06F 11/07 20060101AFI20241112BHJP
【FI】
G06F11/07 190
G06F11/07 140V
(21)【出願番号】P 2022565810
(86)(22)【出願日】2021-04-25
(86)【国際出願番号】 IB2021053396
(87)【国際公開番号】W WO2021224713
(87)【国際公開日】2021-11-11
【審査請求日】2023-09-25
(32)【優先日】2020-05-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】グサット、ミルチャ
(72)【発明者】
【氏名】サージ、モニー
(72)【発明者】
【氏名】ジュルジュ、イオアナ
【審査官】多賀 実
(56)【参考文献】
【文献】特開2007-293393(JP,A)
【文献】特開2019-057139(JP,A)
【文献】特開2015-164005(JP,A)
【文献】米国特許出願公開第2012/0324271(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
(57)【特許請求の範囲】
【請求項1】
方法であって、
1または複数のプロセッサにより、
複数のデータソースを識別するステップであって、前記
複数のデータソースは、1または複数の時系列の第1のセットとして、センサデータ
を提供するよう構成され、前記センサデータは、
複数の測定量
を含む第1の
測定量グループの値を含む、識別するステップと、
1または複数のプロセッサにより、前記センサデータのサブセットの
、前記
複数の測定量の
うちの1または複数の
測定量を含む第2の
測定量グループの値が異常を示すことを決定するステップであって、前記センサデータの前記サブセットは、前記
複数のデータソースのうちの所与のデータソースによって提供され
、前記所与のデータソースは、コンポーネントのセットを含む、決定するステップと、
1または複数のプロセッサにより、前記異常の根本原因
を識別するための候補
として前記
複数の測定量の
うちの1または複数
の測定量
を含む第3の
測定量グループ
を決定するステップと、
1または複数のプロセッサにより、
前記第2の測定量グループが含む前記1または複数の測定量に対し
対応する係数のセットを割り当てるステップであって、
対応する前記係数のセットの各係数は、
1または複数の類似性技術のうちの一つの類似性技術を用いた前記第3の
測定量グループ
が含む一つの測定量との
前記第2の測定量グループが含む一つの測定量の比較結果を示す、割り当てるステップと、
1または複数のプロセッサにより、
対応する前記係数のセットを用いて、前記所与のデータソースの前記コンポーネントのセットの特定のサブセットが、前記異常の根本原因として識別
できないと判定するステップと、
1または複数のプロセッサにより、前記第3の測定量グループを更新するステップと、
1または複数のプロセッサにより、更新された前記第3の測定量グループに少なくとも部分的に基づいて、前記第2の測定量グループが含む前記1または複数の測定量に対し更新された対応する係数のセットを割り当てるステップと、
1または複数のプロセッサにより、更新された対応する前記係数のセットを用いて、前記所与のデータソースの前記コンポーネントのセットの特定のサブセットを前記異常の前記根本原因として識別するステップと
を含む、方法。
【請求項2】
前記複数のデータソースは、前記1または複数の時系列の第1のセットとして前記センサデータのタイムスタンプをさらに提供するよう構成され、
前記センサデータの前記サブセットは、時間窓をカバーし、
前記第3の測定量グループを決定するステップは、前記時間窓において前記第2の測定量グループおよび前記第3の測定量グループの値を比較するための前記1または複数の類似性技術を用いることを含み、前記第3の測定量グループが含む前記1または複数の測定量は、前記コンポーネントのセットにより提供され、
対応する前記係数のセットを割り当てるステップは、前記1または複数の類似性技術のうちの各類似性技術について、かつ、前記第2の測定量グループが含む各測定量について、対応する前記係数のセットを割り当てるステップを含み、
前記更新された対応する係数のセットを割り当てるステップは、前記1または複数の類似性技術のうちの各類似性技術について、かつ、前記第2の測定量グループが含む各測定量について、更新された対応する前記係数のセットを割り当てるステップを含み、
前記方法は、
前記所与のデータソースの前記コンポーネントのセットの特定のサブセットが、前記異常の前記根本原因として識別できると判定されたことに応答して、1または複数のプロセッサにより、前記コンポーネントの識別できると判定された特定のサブセットを、前記異常の前記根本原因として提供するステップ
を含む、請求項1に記載の方法。
【請求項3】
前記第3の
測定量グループの更新は、さらに、
1または複数のプロセッサにより、前記第3の
測定量グループから1または複数の測定量を除去するステップ
、および
1または複数のプロセッサにより、前記第3の
測定量グループに1または複数の測定量を追加するステップ
のうちの少なくとも前記除去するステップを含む、請求項
2に記載の方法。
【請求項4】
除去された前記1または複数の測定量は、前記コンポーネントのセットの選択されたコンポーネントにより提供され、前記方法は、
1または複数のプロセッサにより
、選択された前記コンポーネントを
、次の反復についての前記コンポーネントのセットから除外するステップ
を含む、請求項3に記載の方法。
【請求項5】
1または複数のプロセッサにより、前記コンポーネントのセットの事前定義された特性に従って、単調なソート順で、前記コンポーネントのセットをランク付けするステップであって、選択された前記コンポーネントは、
1番目にランク付けされたコンポーネントである、ランク付けするステップ
をさらに含む、請求項4に記載の方法。
【請求項6】
前記特性は、過負荷の程度である、請求項5に記載の方法。
【請求項7】
前記コンポーネント
のセットの前記特定のサブセットは、前記コンポーネントのセットの単一のコンポーネントである、請求項1~6のいずれか1項に記載の方法。
【請求項8】
前記所与のデータソースの前記コンポーネントのセットの特定のサブセットが、前記異常の根本原因として識別
できないと判定するステップは、さらに、
前記第2の
測定量グループの各測定量について
、1または複数のプロセッサにより、対応する係数のセットを結合して、結合係数
のセットを得るステップと、
前記結合係数のセットを用いて前記所与のデータソースの前記コンポーネントのセットの前記特定のサブセットが、前記異常の根本原因として識別
できないと判定するステップ
と
を含む、請求項1~7のいずれか1項に記載の方法。
【請求項9】
対応する前記係数のセットを結合するステップは、
対応する前記係数のセットを合計するステップを含む、請求項8に記載の方法。
【請求項10】
前記方法は、
前記第2の
測定量グループおよび
前記第3の
測定量グループの値を比較する前に
、1または複数のプロセッサにより、
前記第2の
測定量グループおよび
前記第3の
測定量グループ
の測定量の値を正規化するステップ
を含む、請求項1~9のいずれか1項に記載の方法。
【請求項11】
前記
1または複数の類似性技術
は、マンハッタン距離、ユークリッド距離、動的時間伸長(DTW)距離、スピアマン
・メトリックおよびピアソン・メトリック
の少なくとも1つを含む、請求項1~10のいずれか1項に記載の方法。
【請求項12】
前記センサデータのサブセットの前記
第2の測定量グループの値が異常を示すことを決定するステップは、さらに、
1または複数のプロセッサにより、前記
所与のデータソースからイベント・チケットを受信するステップ
を含み、前記イベント・チケットは、前記異常を示す、請求項1~11のいずれか1項に記載の方法。
【請求項13】
前記センサデータのサブセットの前記
第2の測定量グループの値が異常を示すことを決定するステップは、ステップは、イベント・チケットを受信したことに応答して開始する、請求項1~12のいずれか1項に記載の方法。
【請求項14】
前記第2の
測定量グループの測定量は、(i)前記測定量の第1の
測定量グループの測定量および(ii)前記第1の
測定量グループの測定量の組み合わせからなる群から選択された測定量を含む、請求項1~13のいずれか1項に記載の方法。
【請求項15】
前記時系列の第1のセットの各時系列は、それぞれの測定量の値を含む、請求項1~14のいずれか1項に記載の方法。
【請求項16】
コンピュータ・システムは、
1または複数のプロセッサと、
1または複数のコンピュータ可読ストレージ媒体と、
前記1または複数のプロセッサの少なくとも1つによる実行のための前記コンピュータ可読ストレージ媒体上に格納されたプログラム命令と
を含み、前記プログラム命令は、
複数のデータソースを識別するためのプログラム命令であって、前記
複数のデータソースは、1または複数の時系列の第1のセットとして、センサデータ
を提供するよう構成され、前記センサデータは、
複数の測定量
を含む第1の
測定量グループの値を含む、識別するためのプログラム命令と、
前記センサデータのサブセットの
、前記
複数の測定量のうちの
1または複数の測定量を含む第2の
測定量グループの値が異常を示すことを決定するためのプログラム命令であって、前記センサデータの前記サブセットは、前記
複数のデータソースのうちの所与のデータソースによって提供され
、前記所与のデータソースは、コンポーネントのセットを含む、決定するためのプログラム命令と、
前記異常の根本原因
を識別するための候補
として前記
複数の測定量
のうちの1または複数
の測定量を含む第3の
測定量グループ
を決定するためのプログラム命令と、
前記第2の測定量グループが含む前記
1または複数の測定量に対し
対応する係数のセットを割り当てるプログラム命令であって、
対応する前記係数のセットの各係数は、
1または複数の類似性技術のうちの一つの類似性技術を用いた前記第3の
測定量グループ
が含む一つの測定量との
前記第2の測定量グループが含む一つの測定量の比較結果を示す、割り当てるためのプログラム命令と、
対応する前記係数のセットを用いて、前記所与のデータソースの前記コンポーネントのセットの特定のサブセットが、前記異常の根本原因として識別
できないと判定するためのプログラム命令と、
前記第3の測定量グループを更新するためのプログラム命令と、
更新された前記第3の測定量グループに少なくとも部分的に基づいて、前記第2の測定量グループが含む前記1または複数の測定量に対し更新された対応する係数のセットを割り当てるためのプログラム命令と、
更新された対応する前記係数のセットを用いて、前記所与のデータソースの前記コンポーネントのセットの特定のサブセットを前記異常の前記根本原因として識別するためのプログラム命令と
を含む、コンピュータ・システム。
【請求項17】
前記複数のデータソースは、前記1または複数の時系列の第1のセットとして前記センサデータのタイムスタンプをさらに提供するよう構成され、
前記センサデータの前記サブセットは、時間窓をカバーし、
前記第3の測定量グループを決定するためのプログラム命令は、前記時間窓において前記第2の測定量グループおよび前記第3の測定量グループの値を比較するための前記1または複数の類似性技術を用いるためのプログラム命令を含み、前記第3の測定量グループが含む前記1または複数の測定量は、前記コンポーネントのセットにより提供され、
対応する前記係数のセットを割り当てるためのプログラム命令は、前記1または複数の類似性技術のうちの各類似性技術について、かつ、前記第2の測定量グループが含む各測定量について、対応する前記係数のセットを割り当てるためのプログラム命令を含み、
前記更新された対応する係数のセットを割り当てるためのプログラム命令は、前記1または複数の類似性技術のうちの各類似性技術について、かつ、前記第2の測定量グループが含む各測定量について、更新された対応する前記係数のセットを割り当てるためのプログラム命令を含み、
前記プログラム命令は、
前記所与のデータソースの前記コンポーネントのセットの特定のサブセットが、前記異常の前記根本原因として識別できると判定されたことに応答して、前記コンポーネントの識別できると判定された特定のサブセットを、前記異常の前記根本原因として提供するためのプログラム命令
を含む、請求項16に記載のコンピュータ・システム。
【請求項18】
前記コンポーネント
のセットの前記特定のサブセットは、前記コンポーネントのセットの単一のコンポーネントである、請求項16または17に記載のコンピュータ・システム。
【請求項19】
コンピュータ・プログラムであって、コンピュータに、
複数のデータソースを識別することであって、前記
複数のデータソースは、1または複数の時系列の第1のセットとして、センサデータ
を提供するよう構成され、前記センサデータは、
複数の測定量
を含む第1の
測定量グループの値を含む、識別することと、
前記センサデータのサブセットの
、前記
複数の測定量
のうちの1または複数
の測定量を含む第2の
測定量グループの値が異常を示すことを決定することであって、前記センサデータの前記サブセットは、前記
複数のデータソースのうちの所与のデータソースによって提供され
、前記所与のデータソースは、コンポーネントのセットを含む、決定することと、
前記異常の根本原因
を識別するための候補
として前記
複数の測定量の
うちの1または複数
の測定量を含む第3の
測定量グループ
を決定することと、
前記第2の測定量グループが含む前記1または複数の測定量に対し
対応する係数のセットを割り当てることであって、
対応する前記係数のセットの各係数は、
1または複数の類似性技術のうちの一つの類似性技術を用いた前記第3の
測定量グループ
が含む一つの測定量との
前記第2の測定量グループが含む一つの測定量の比較結果を示す、割り当てることと、
対応する前記係数のセットを用いて、前記所与のデータソースの前記コンポーネントのセットの特定のサブセットが、前記異常の根本原因として識別
できないと判定することと、
前記第3の測定量グループを更新することと、
更新された前記第3の測定量グループに少なくとも部分的に基づいて、前記第2の測定量グループが含む前記1または複数の測定量に対し更新された対応する係数のセットを割り当てることと、
更新された対応する前記係数のセットを用いて、前記所与のデータソースの前記コンポーネントのセットの特定のサブセットを前記異常の前記根本原因として識別することと
実行させるためのコンピュータ・プログラム。
【請求項20】
前記複数のデータソースは、前記1または複数の時系列の第1のセットとして前記センサデータのタイムスタンプをさらに提供するよう構成され、
前記センサデータの前記サブセットは、時間窓をカバーし、
前記第3の測定量グループを決定することは、前記時間窓において前記第2の測定量グループおよび前記第3の測定量グループの値を比較するための前記1または複数の類似性技術を用いることを含み、前記第3の測定量グループが含む前記測定量は、前記コンポーネントのセットにより提供され、
対応する前記係数のセットを割り当てることは、前記1または複数の類似性技術のうちの各類似性技術について、かつ、前記第2の測定量グループが含む各測定量について、対応する前記係数のセットを割り当てることを含み、
前記更新された対応する係数のセットを割り当てることは、前記1または複数の類似性技術のうちの各類似性技術について、かつ、前記第2の測定量グループが含む各測定量について、更新された対応する前記係数のセットを割り当てることを含み、
前記コンピュータ・プログラムは、前記コンピュータに、
前記所与のデータソースの前記コンポーネントのセットの特定のサブセットが、前記異常の前記根本原因として識別できると判定されたことに応答して、前記コンポーネントの識別できると判定された特定のサブセットを、前記異常の前記根本原因として提供すること
をさらに実行させる、請求項19に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、デジタル・コンピュータ・システムの分野に関し、より詳細には、性能イベント・トラブルシューティングに関する。
【背景技術】
【0002】
センサネットワーク、スマートグリッドなどを含む種々のデータソースから時系列データが発信されており、ペタバイトのデータがパブリックおよびプライベート・クラウドに集められている。収集された時系列データは、異常を示す予想外の変化またはパターンを有する可能性がある。リアルタイムで根本原因を検出するためにデータを監視することにより、例えば、そのような異常が蓄積し、コンピュータ・システムの効率に影響を及ぼすことを防止することができる。
【発明の概要】
【0003】
本発明の側面は、トラブルシューティング・システムのための方法、コンピュータ・プログラム製品およびシステムを開示する。本方法は、1または複数のプロセッサが、データソース(群)を識別するステップを含み、データソース(群)は、1または複数の時系列の第1のセットとして、センサデータおよびセンサデータのタイムスタンプを提供するよう構成され、センサデータは、測定量の第1のグループの値を含む。方法は、さらに、1または複数のプロセッサが、センサデータのサブセットの測定量の1または複数の第2のグループの値が異常を示すことを決定するステップを含む。センサデータのサブセットは、データソース(群)のうちの所与のデータソースによって提供され、時間窓をカバーし、所与のデータソースは、コンポーネントのセットを含む。方法は、1または複数のプロセッサが、異常の根本原因の候補である測定量の1または複数の第3のグループを、時間窓において測定量の第2のグループおよび測定量の第3のグループの値を比較するための1または複数の類似性技術のセットを用いて決定するステップを含む。第3のグループの測定量は、コンポーネントのセットにより提供される。類似性技術のセットのうちの各類似性技術について、かつ、第2のグループの各測定量について、方法は、1または複数のプロセッサが、測定量に対し係数のセットを割り当てるステップを含む。係数のセットの各係数は、類似性技術を用いた第3のグループの測定量との各測定量の比較結果を示す。方法は、さらに、1または複数のプロセッサが、係数のセットを用いて、所与のデータソースのコンポーネントのセットの特定のサブセットが、異常の根本原因として識別できるか否かを判定する。所与のデータソースのコンポーネントのセットの特定のサブセットが、異常の根本原因として識別できると判定されたことに応答して、方法は、1または複数のプロセッサが、コンポーネントの特定のサブセットを、異常の根本原因として提供するステップを含む。
【0004】
さらなる側面においては、所与のデータソースのコンポーネントのセットの特定のサブセットが異常の根本原因として識別できないと判定されたことに応答して、方法は、さらに、1または複数のプロセッサが、測定量の第3のグループを更新するステップを含む。類似性技術のセットのうちの各類似性技術について、かつ、第2のグループの各測定量について、方法は、1または複数のプロセッサが、測定量に対し係数のセットを割り当てるステップを含む。係数のセットの各係数は、類似性技術を用いた更新された第3のグループの測定量との各測定量の比較結果を示す。方法は、さらに、1または複数のプロセッサが、係数のセットを用いて、所与のデータソースのコンポーネントのセットの特定のサブセットが、異常の根本原因として識別できるか否かを判定するステップを含む。
【0005】
本主題は、動的かつ自動的な根本原因の分析方法を可能することができる。本主題は、実データに対する根本原因分析を改善することができる。例えば、時間の経過とともにデータが蓄積すると、根本原因分析の精度が向上する可能性がある。本発明の実施形態は、はじめ異常として見られ得る情報が、後に異常ではない偏差であることが明らかになることから、精度の増加が有利であることを認識する。本発明の種々の実施形態は、リアルタイム(例えば、データソースが時系列データを提供しながら)に根本原因分析を実行することができる。
【0006】
本主題は、既存の根本原因分析システムとシームレスに統合されてもよい。例えば、本発明の種々の実施形態は、データセンターのストレージにおける、自動根本原因分析トラブルシューティング(RAC/TS)のためのアンサンブル・ベースの類似性検索ツールを可能にすることができる。さらに、本発明の実施形態は、適時かつ正確な根本原因分析トラブルシューティングを提供することができ、これにより、クラウドおよびデータセンターでホストされるアプリケーションが、アクセス、データまたは性能の損失なしに動作することを確実にすることができる。
【0007】
以下において、本発明の実施の形態について、単なる一例として、図面への参照を行いながらより詳細に説明される。
【図面の簡単な説明】
【0008】
【
図1】本発明の実施形態によるコンピュータ・システムのブロック図である。
【
図2】本発明の実施形態による方法のフローチャートである。
【
図3】本発明の実施形態による方法を示す図式である。
【
図4】本発明の実施形態による1または複数の方法ステップを実装するために適したコンピュータ化されたシステムを示す。
【発明を実施するための形態】
【0009】
本発明の種々の実施形態について説明するが、説明を目的としており、網羅することまたは開示される実施形態に限定することを意図するものではない。多数の変更例および変形例が、当業者にとって、説明する実施形態の要旨および精神を逸脱することなく明白となるであろう。本明細書で使用される用語は、実施形態の原理、実際の応用、または、市場において見られる技術を超えた技術的向上を最も良く説明し、または、他の当業者が本明細書に開示の実施形態を理解することができるように選ばれたものである。
【0010】
種々の実施形態は、独立請求項の主題によって説明されるように、根本原因分析方法、コンピュータ・システムおよびコンピュータ・プログラム製品を提供する。さらに有利な実施形態が、従属請求項において説明される。本発明の実施形態は、相互排他的ではない場合、互いに自由に組み合わせることができる。
【0011】
時系列は、例えば、典型的には均一な時間間隔をあけて連続した時間で測定される一連のデータ点であってもよい。時系列は、ペアまたはタプル(v,t)を含んでよく、ここで、「t」は、値「v」が測定される時間である。時系列の値vは、センサデータと参照されてもよい。時系列のセンサデータは、測定量の値vを含んでもよい。測定量は、測定される物理的な量、品質、状態または特性であってもよい。例えば、測定量は、限定なく、温度、中央処理装置(CPU)使用量、計算負荷、グローバル・ミラー二次書込みラグ(ms/op)などを含む。
【0012】
測定量は、例えば、グローバル・ミラーの二次書込みラグ(ms/op)であってよく、これは、グローバル・ミラーに対する二次書込み操作をサービスするためのミリ秒の平均数である。値は、一次書き込み操作をサービスする時間を含まない可能性がある。本発明の実施形態は、グローバル・ミラー二次書き込みラグの値を監視して、二次サイトにデータを書き込む処理の間に発生する遅延を識別することができる(例えば、検出された増加は、潜在的な問題の兆候である可能性がある)。
【0013】
1または複数の時系列は、同一の測定量の値を有していてもよい。例えば、異なる位置にある2つの温度センサは、それぞれ、温度の値および関連するタイムスタンプを有するそれぞれの時系列を送信する。別の例においては、単一の測定量の値を決定するために2以上の時系列が用いられてもよい。例えば、温度と圧力との比である測定量は、2つの時系列、温度値の一つと、圧力値の他のものとを用いて定義されてもよい。別の例においては、受信された時系列の各時系列は、それぞれの別個の測定量の値を有する。すなわち、第1のグループの各測定量が、第1のセットのそれぞれの時系列を有するので、時系列の第1のセットのサイズおよび測定量の第1のグループは、同一である。測定量の値は、測定量の値の予め定義された正常な挙動に適合しないパターンを有する可能性があり、これは、異常または問題と参照され得る。
【0014】
測定量の通常の挙動は、1または複数の基準値または閾値によって定義されてもよい。一例では、基準値は、測定量の最大で可能な値であってよく、測定量の値がこれを超えた場合、異常を示し得る。一例では、基準値は、測定量の値が範囲外である場合に値が異常を示すように値の許容範囲の下限および上限を含んでもよい。別の例では、基準値は、測定量の値の時間経過にわたる変動をモデル化する関数またはモデルの値であってもよい。追加の例では、本発明の実施形態は、機械学習モデル(例えば、異常検出アルゴリズムは、機械学習モデルであってよい)によって訓練データから正常な挙動を学習してもよい。訓練済み機械学習モデルは、入力データにおける異常を予測する方程式、または規則のセットであってもよい。規則は、基準値との比較を使用してもよい。
【0015】
本発明の種々の実施形態においては、コンポーネントが測定量を提供する場合、次いで、測定量の値は、コンポーネントを示す(例えば、コンポーネントの動作性能を示す)。測定量の値は、時系列の第1のセットの一部として受信される。
【0016】
例示の実施形態においては、システムは、根本原因分析および性能システムであってよい。さらなる例示の実施形態においては、本方法は、根本原因分析および性能方法であってよい。例えば、異常は、性能問題、構成問題もしくはソフトウェア問題(例えば、バグ)またはその組み合わせなどであってよい。
【0017】
本発明の実施形態は、測定量の第1のグループから測定量を選択することによって、第3のグループを決定してもよい。一例においては、測定量の任意のセットが選択されてもよい。別の例においては、選択は、事前定義された選択基準に基づく。選択基準は、例えば、選択された測定量が、測定量の第2のグループ少なくとも一部と相関することを要求してもよい。選択基準は、例えば、選択された測定量が、異常と類似する、または同一である、以前に検出された問題に関連する測定量であることを要求してもよい。追加の例においては、第3のグループの更新は、第3のグループ全体を再決定することを含んでもよい。結果として得られた再決定された第3のグループは、第3のグループと重なっても、または、重ならなくてもよい。例えば、再決定することは、別の選択基準を用いて実行されてもよい。
【0018】
時間窓における測定量の第2のグループと測定量の第3のグループとの値の比較は、時間窓における測定量の第2のグループと測定量の第3のグループとの値のペアごとの比較を行うことを含む。例示の実施形態においては、第2のグループの各測定量が、第3のグループのすべての測定量と比較されてもよい。一例においては、第2のグループの測定量と第3のグループの測定量との間のペアごとの比較は、値の範囲のブロックによる値の範囲のブロックとの比較を含んでもよく、これにより、比較プロセスを高速化することができる。
【0019】
種々の実施形態においては、コンポーネントの特定のサブセットは、1または複数のコンポーネントを含んでもよい。1つより多いコンポーネントの特定のサブセットは、同一のコンポーネント・クラス(例えば、単一の問題の原因を表す)に属するコンポーネントであってもよい。例えば、異常なデータソースがストレージ・システムである場合、コンポーネント・クラスは、物理および仮想スイッチ並びにリンクの両方であってもよい。コンポーネント・クラスの別の例は、物理サーバおよび仮想化サーバなどであってもよい。本発明の実施形態は、所与のデータソースのコンポーネントのセットの特定のサブセットを異常の根本原因として識別できないという決定を利用して、複数の問題の原因コンポーネントが識別されることを意味してもよい。複数の問題の原因コンポーネントは、同一のコンポーネント・クラスのものでなくてもよい(例えば、単一の問題の原因を提供しない)。
【0020】
一実施形態によれば、測定量の第3のグループの更新は、第3のグループから1または複数の測定量を除去すること、もしくは、1または複数の測定量を第3のグループに追加すること、またはその両方を含む。更新プロセスは、根本原因分析システムが継続できるように自動および動的な反応を可能にしてもよい。別の例では、第3のグループの更新は、ユーザに測定量の第3のグループの更新を提供するよう促す(ダイアログ表示する)ことを含んでもよい。一例では、第3のグループの更新は、識別された問題の原因コンポーネントのうちの選択されたコンポーネントが(もはや)根本原因ではないことを決定し、考慮に入れることを含んでもよい。
【0021】
一実施形態によれば、除去されるまたは置換される測定量は、コンポーネントのセットのうちの選択されたコンポーネントまたは識別された問題の原因コンポーネントによって提供される。選択されたコンポーネントは、(異常が検出された後)それぞれの問題が解決されたことから、または、それぞれの異常な測定量の値が別のコンポーネントによって引き起こされたことから、異常の原因ではない(またはそうではないであろう)コンポーネントである。測定量の第3のグループの更新は、選択されたコンポーネントが根本原因ではないことを考慮に入れてもよい。例えば、ユーザは、選択されたコンポーネントが根本原因ではないことを考慮に入れて、測定量の第3のグループの更新を提供してもよい。
【0022】
一実施形態によれば、本方法は、さらに、本発明の実施形態の次のプロセスの反復について、選択されたコンポーネントをコンポーネントのセットから除外することを含んでもよい(
図2および
図3に関してさらに詳細に説明する)。さらに、第1の最も過負荷なコンポーネントを除去することによって、本発明の実施形態は、第1の最も過負荷なコンポーネントが、システム全体の性能に対する特異ボトルネックであるか否かをテストすることができる。
【0023】
本発明の実施形態は、コンポーネントの単一の問題の原因/サブセットが識別できないという事実が、所与のデータソースの異常が、コンポーネントのセットの異なるコンポーネントでの個別の問題の組み合わせまたはカスケードによって引き起こされる(例えば、複数の問題の原因が異常の原因となる可能性がある)という事実に起因する可能性があることを認識する。一例では、個別の問題が、他のコンポーネントの測定量に影響を与える単一のコンポーネントによって引き起こされる可能性がある。例えば、ストレージ・システム内の同一のデータ・フロー上の複数のコンポーネントの測定量の挙動が、データ・フローの1つのコンポーネントでの問題によって影響を受ける可能性がある。
【0024】
したがって、本発明の実施形態は、いくつかの問題のあるコンポーネントを除外もしくは解決またはその両方をすることによって本方法により調査されるコンポーネント(コンポーネントのセット)の数を削減する利点を認識する。例示的な実施形態においては、コンポーネントのセットの各コンポーネントについて、所与のデータソース内の異常の大部分に相関する特性を評価する。例えば、ストレージ・システムの場合、過負荷の程度が異常の大部分を特徴付ける特性である可能性がある。
【0025】
別の例では、コンポーネントのセットの最も飽和したコンポーネントが、選択されたコンポーネントであってよい。飽和されたコンポーネントは、それぞれの特性値が定常であるかまたは特性値がのこぎり状であることから、飽和に達するか、または、負担をかけ過ぎたコンポーネントである可能性がある。のこぎり状の条件は、必ずしもこの値が限界に達していることを示すものではないが、隣接するコンポーネントが飽和に達していることを示す可能性がある。種々の実施形態は、データ・フローでトラバースされる次のコンポーネントで隣接コンポーネントを決定することができる。
【0026】
本発明のさらなる実施形態は、その選択されたコンポーネントについて飽和の解を解決し得るように(例えば、それぞれの容量を増加させることによって)所与のデータソースを構成してもよい。データソースを構成した後、選択されたコンポーネントがもはや飽和していない場合、または、構成が、飽和が実際の問題ではないことを明らかにした場合は、次いで、本発明の実施形態は、このような情報を、次の反復のための測定量の第3のグループの選択を改善する際に利用することができる。例えば、選択されたコンポーネントに関連付けられる測定量が、測定量の第3のグループから除去されてもよい。
【0027】
一実施形態によれば、本方法は、コンポーネントのセットの所定の特性に従って、コンポーネントのセットをランク付け(または識別された問題の原因コンポーネントをランク付け)することをさらに含む。例示的な実施形態においては、選択されたコンポーネントは、1番目にランク付けされたコンポーネントである。1番目にランク付けされたコンポーネントは、検出された異常に寄与するコンポーネントである可能性がある。例えば、特性は、過負荷の程度である。この例では、最も過負荷なコンポーネントが、1番目にランク付けされる。選択されたコンポーネントに更新が基づく実施形態においては、ランク付けは、所定の回数N回の反復の後、例えば、第3のグループが、成功なく(例えば、単一の問題の原因が識別されないで)N回更新された後に実行されてもよい。
【0028】
一実施形態によれば、コンポーネントのサブセットは、コンポーネントのセットのうちの単一のコンポーネントであり、これにより、根本原因分析の精度がさらに高められ得る。
【0029】
一実施形態によれば、コンポーネントのセットの特定のサブセットが識別され得るか否かを決定することは、第2のグループの各測定量について、かつ、第3のグループの各測定量について、それぞれの係数のセットを結合し、結合係数を得て、結合係数を判定のためを使用することを含む。例えば、第2のグループが単一の測定量M21を含み、第3のグループが2つの測定量M31およびM32を含み、類似性技術のセットが、3つの技術ST1、ST2およびST3を含む場合、次いで、2つの係数のセット、ペア(M21,M31)のための一つの係数のセットおよび別のペア(M21,M32)のための他の係数のセットが本方法から得られる可能性がある。
【0030】
2つの係数のセットの各々は、3つの係数を有し、それぞれの係数が、それぞれの類似性技術に関連付けられる。例えば、ペア(M21,M31)の係数のセットは、C11
ST1,C11
ST2,C11
ST3)を含んでもよく、ペア(M21,M32)の係数のセットは、C12
ST1,C12
ST2,C12
ST3)を含んでもよい。係数のセットの各係数は、例えば、数であってもよい。係数のセットの値を比較することにより、本発明の実施形態は、根本原因を識別することができる。例えば、係数または結合係数が他のすべての係数よりもはるかに高い場合は、次いで、その係数/結合係数に関連付けられるコンポーネントが、根本の原因である可能性がある。結合係数を使用することにより、いずれが根本原因であるかを決定するためにすべての類似性技術の使用を可能とする。
【0031】
一実施形態によれば、係数のセットを結合することは、係数のセットの総和を取ることを含む。複数の係数のセットのうちの各係数のセットの総和は、例えば、重みづけ総和されてもよい。加えて、類似性技術のセットの各類似性技術には、それぞれの重みが割り当てられる。例示の実施形態においては、重みを使用することにより、(例えば、非所望の技術に重み0を割り当てることによって)類似性技術のセットの一部のみを使用することが可能となる。
【0032】
上記の例に続けると、重みづけ総和は、以下のように定義することができる。ペア(M21,M31)の結合係数は、WST1×C11
ST1+WST2×C11
ST2+WST3×C11
ST3ように定義することができる、また、ペア(M21,M32)の結合係数は、WST1×C12
ST1+WST2×C12
ST2+WST3×C12
ST3ように定義することができる。重みWST1,WST2,WST3は、それぞれ、3つの類似性技術ST1,ST2,ST3の重みである。
【0033】
一例では、重みは、ユーザ定義されてもよい。別の例では、重みは、それぞれの類似性技術に関連付けられる重みを含む、事前定義された重みマップから自動的に選択されてもよい。重みの値は、所与のデータソースのタイプに依存してもよく、もしくは本方法の実行の時間に依存してもよく、またはその両方であってもよい。例えば、所与のデータソースは、データセンターのストレージ・エリア・ネットワーク(SAN)であってもよい。本発明の実施形態は、通常領域および飽和領域のような区別される領域で動作する、動的キューイング・システムとして、データセンターのSANを監視することができる。飽和領域については、マンハッタン距離、ピアソン距離およびDTW距離のような類似性技術が好ましい。このような例では、この技術に関連付けられる重みが、技術のセットのうちの他の技術よりも高くなってもよい。
【0034】
一実施形態によれば、本方法は、比較を実行する前に、時間窓において測定量の第2のグループおよび第3のグループの測定量の値を正規化することをさらに含む。正規化は、同一範囲に対して行うことができる。一例では、本発明の実施形態は、min-max正規化を使用して、すべての比較される測定量を範囲[0,1]にスケーリングしてもよい。例えば、正規化は、時間窓内でのみ実行される。一実施形態によれば、類似性技術のセットは、L1/マンハッタン距離、L2/ユークリッド距離、動的時間伸長(DTW)距離、スピアマンおよびピアソン・メトリックを含む。
【0035】
一実施形態によれば、センサデータのサブセットの測定量の1または複数の第2のグループの値が異常を示すと判定することは、データソースからイベント・チケットを受信することを含み、イベント・チケットは、異常を示す。例えば、イベント・チケットは、時系列の第2のセットおよびセンサデータのサブセットのタイムスタンプをカバーする時間範囲(または時間窓)を示すことができる。時系列の第2のセットは、測定量の第2のグループを監視するために使用される時系列であってもよい。時系列の第2のセットは、時系列の第1のセットのサブセットであってもよい。例えば、イベント・チケットは、ログ・ファイルであってもよい。
【0036】
一実施形態によれば、センサデータのサブセットの測定量の1または複数の第2のグループの値が異常を示すと判定することは、データソースからのイベント・チケットの受信に応答して実行される。本方法は、さらに、またはデータソース群のうちの別のデータソースからさらに受信された各イベント・チケットごとに方法を繰り返すことを含む。
【0037】
一実施形態によれば、第2のグループの測定量は、測定量の第1のグループの測定量または第1のグループの測定量の組合せを含む。一実施形態によれば、時系列の第1のセットの各時系列は、それぞれの測定量の値を含む。例示の実施形態においては、第1のグループ内の測定量の数は、時系列の第1のセット内の時系列の数に等しい。本発明の種々の実施形態は、方法を自動的に実行し、これにより根本原因分析システムを高速化することができる。例えば、複雑なインシデントのRCAトラブルシューティングは、アドホックに実行される場合、しばしば数日または数週間かかることがある。
【0038】
図1は、本発明の例示的な実施形態による、コンピュータ・システム100の図式である。コンピュータ・システム100は、データソース群101を含んでもよい。例示の実施形態においては、データソース群101の各データソースは、コンピュータ・システムであってよく、データソース群101の各データソースは、ネットワークを介してデータを転送するように構成される。例えば、データソースは、パブリックまたはプライベートのクラウド・ストレージ・システム、URLでネットワークを介してアドレス指定が可能であるストレージ・システム、または任意の他のアクセス可能なデータソースであってもよい。データソースは、1または複数のセンサに関するデータを含んでもよい。種々の実施形態においては、センサは、対応する環境における測定量の値を決定し、もしくは監視し、またはその両方を行うことを目的としたデバイス、モジュール、マシンまたはサブシステムであってもよい。
【0039】
センサは、規則的なまたは不規則的な時間間隔で測定量を収集または取得することができる。測定量は、時系列として提供されてもよい。時系列は、例えば、時間の順序で索引付け(またはリスト化またはグラフ化)された一連のデータ点(または値)を含み、例えば、時系列は、値と、関連付けられるタイムスタンプとのタプルを含む。値(またはデータ点)のタイムスタンプは、値が取得される時間を示す。例えば、時系列の値は、測定量の値であってもよく、ここで、測定量が、物理的な量、状態または特性であってもよい。よって、データソース群101の各データソースは、その値が、温度、圧力、CPU使用量などの測定量の値である時系列を提供することができる。一例においては、データソース群101は、測定量の第1のグループ(「GRP1」と名付けられる)のセンサデータを提供してもよい。
【0040】
コンピュータ・システム100は、監視システム103を含む。種々の実施形態においては、監視システム103は、データソース群101から受信したデータにおける異常を検出するように構成される。追加の実施形態においては、監視システム103は、受信される時系列を処理するように構成されてもよい。
【0041】
典型的には、数十万の監視する時系列およびイベント・ログが、監視システム103によって、細粒度(例えば、分または秒)での多変量時系列として捕捉される。例示の実施形態においては、監視システム103は、測定量の実際の挙動を、測定量の通常の挙動と比較し、比較データを生成することができる。例えば、正常な挙動からの事前定義された逸脱は、異常を示すかもしれない。例えば、動作を実行するのに必要なデータを収容するのに不充分なランダム・アクセス・メモリ(RAM)が利用可能である場合に、メモリ不足によって異常が発生する可能性がある。
【0042】
一例では、監視システム103は、受信される時系列の測定量の予期しない値を識別するように構成されてもよい。例えば、監視される測定量は、測定量の第1のグループ(GRP1)の測定量の少なくとも一部、もしくは、測定量の第1のグループ(GRP1)の測定量の組み合せ、またはその両方(例えば、データソースは、温度、圧力およびCPU使用量といった測定量を提供する可能性がある)を含みながら、監視される測定量は、圧力、温度および温度と圧力との比を含んでもよい。
【0043】
一例では、監視システム103は、入来サンプルの測定量の値が正常値範囲外に外れた場合、異常が発生したと検出するように構成されてもよい。範囲の境界は、閾値と参照されてもよい。例えば、受信した値と基準値との差から導出される残差を用いてスコアが計算されてもよい。スコアは、範囲の最も高い第1の外れ値よりもスコアが高いか、または、範囲の最も低い第1の外れ値よりも低い場合に、異常を示してもよい。閾値の利用により、データの正常モデルからの逸脱の程度によって異常な挙動を識別することが可能となる。
【0044】
別の例では、監視システム103は、異常を検出するために、機械学習モデルのような分析的な方法を使用してもよい。例示の実施形態においては、機械学習モデルは、オート・エンコーダであってもよい。例えば、オート・エンコーダは、フィード・フォワード・ニューラルネットワークであってもよい。オート・エンコーダは、測定量の第1のグループGRP1のそれぞれの測定量に対応する複数のノードを有する入力層を含んでもよい。例えば、入力層内のノードの数は、第1のグループGRP1の測定量の数であってもよい。出力層は、入力層と同数のノードを含んでいてもよく、測定量の第1のグループGRP1の再構成された値に対応してもよい。
【0045】
本発明の種々の実施形態は、入力変数を最初に圧縮し、次いで再構成することを目標として、測定量の第1のグループの正常な挙動を表すデータ上でオート・エンコーダ・ネットワークを訓練することができる。訓練は、再構成誤差を最小にするようにパラメータ値を変更することを含んでもよい。訓練は、訓練データ・セットを用いて実行されてもよい。本発明の実施形態は、複数の時間での複数のメトリックのデータ・セットを収集することによって、訓練データ・セットが取得されてもよい。例えば、1つのデータ・セットが、SANボリューム・コントローラ(SVC)デバイスのようなそれぞれのデバイスから取得されてもよい。
【0046】
メトリックは、測定量であってもよい。例えば、訓練セットは、異なる時間に多数のデバイスを使用して構築されてもよい。各デバイスは、多次元時系列を提供することができる。オート・エンコーダは、(複数の時間窓を用いて)複数の多次元時系列上で訓練されてもよい。例えば、8Gbpsの速度を有する4ポートを有するノードを有するセットのみがフィルタリングされてもよい。各エンティティ・セットごとに、単一のホスト-ノード-ポートのエンティティのセットが抽出されてもよく、35個の高い優先度および集約メトリックが、訓練セットを形成し得るファイル内でフィルタリングされてもよい。次元削減の間、ネットワークは、種々の変数間の相互作用を学習し、出力において変数を元の変数に戻すように再構築する。データソースが劣化したり、または問題を有したりする場合、本発明の実施形態は、入力変数のネットワーク再構成における増加した誤差が見えてくるであろう。再構成誤差を監視することにより、本発明の実施形態は、異常を検出することができる。
【0047】
コンピュータ・システム100は、根本原因分析システム105を含む。根本原因分析システム105は、監視システム103によって検出される異常に対する可能性のある根本原因のセットを生成するように構成されてもよい。可能性のある根本原因のセットは、異常の1または複数の潜在的な根本原因を含んでもよい。
【0048】
監視システム103、データソース群101および根本原因分析システム105は、1または複数のネットワークによって相互接続されてもよい。一例では、ネットワークは、インターネットを含む。別の例では、ネットワークは、ワイヤレス・リンク、電話通信、無線通信、またはコンピュータ・ネットワーク(例えば、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN))を含む。遠隔的に接続されるシステムとして示されているが、監視システム103は、別の例では、根本原因分析システム105の一部であってもよい。
【0049】
図2は、本発明の例示的な実施形態による方法200のフローチャートである。方法200は、根本原因分析および性能方法であってもよい。説明のために、本方法は、前の
図1に示されるコンピュータ・システム100において(例えば、根本原因分析システム105によって)実装されてもよいが、この実装に限定されるものではない。
【0050】
種々の実施形態においては、データソース群101は、時系列の第1のセットを提供してもよい。例示の実施形態においては、データソース群の各データソースは、コンポーネントのセットを含んでもよい。ストレージ・システムの場合、コンポーネントのセットは、サーバ、仮想化サーバ(例えば、1または複数の仮想マシン(VM))、物理ネットワーク・アダプタ、仮想ネットワーク・アダプタ、SANファブリック、物理スイッチおよびリンク、仮想スイッチおよびリンク、ストレージ・フロントエンド・ネットワーク・アダプタ、ストレージ・フロントエンド仮想化およびバックエンド・ストレージのうちの少なくとも1つを含んでもよい。
【0051】
時系列の第1のセットは、時系列ts1,ts2,…,tsNを含んでもよい。例えば、時系列の第1のセットは、データソース群101によって連続的に生成されるストリーミング・データであってもよい。根本原因分析システムは、本方法を用いて(例えば、全てのデータにアクセスすることなく)このようなデータを増分的に処理することができる。増分的処理は、受信されたデータのストリーム処理を可能にし、よって、リアルタイムでの監視を可能にし、リアルタイムでデータに作用することができる。例えば、ネットワークにおける潜在的な負荷バランスに作用することを促進するために、大量に生成または取得されたデータがリアルタイムで分析される必要がある。別の例では、時系列の第1のセットは、根本原因分析システムによる、受信されたセンサデータのオフライン分析を実行するために、受信されると格納されてもよい。
【0052】
時系列の第1のセットは、測定量の第1のグループの値を提供する。本発明の実施形態は、異常イベントを検出するために、測定量を監視することを用いて時系列の第1のセット(すなわち、「SET1」と名付けられる)を監視することができる。例えば、監視している測定量の各監視している測定量は、第1のグループの測定量または第1のグループの測定量の組み合せであってもよい。さらなる例では、監視することは、事前定義されたデータのサンプル上で実行されてもよい。データのサンプルは、データソース群101からの各受信データによって増分的に増加する可能性がある。上記の例に従うと、時系列ts1,ts2、tsNのデータが受信され、蓄積される。監視することは、蓄積されたデータに対して定期的に実行されてもよく(例えば、監視することは、現在の一時間について毎時間ごとに実行されてもよい)、あるいは、監視することは、現在の一時間のデータおよび現在の一時間の前の時間に蓄積されたデータ上で実行されてもよい。別の例では、データのサンプルは、所与の時間間隔で受信され、以前に処理されなかったデータであってもよい(例えば、監視することが、各一時間で受信されたデータを増分的に処理することができる)。
【0053】
本発明の種々の実施形態は、監視を実行して、監視する測定量の値が正常な挙動を有するか否かを判定してもよい。例えば、監視する測定量の各々の値がそれぞれの正常な挙動データと比較されてもよい。別の例では、監視する測定量の各々の値が、訓練済み機械学習モデルに入力されて、それらが正常な挙動から逸脱するか否かを予測してもよい。監視することの結果は、根本原因分析システムによってアクセス可能であってもよい。そのために、監視することは、根本原因分析システム、または、根本原因分析システムが接続されている別のリモート・コンピュータ・システムによって行われてもよい。
【0054】
例えば、方法200のステップ201において、根本原因分析システムは、センサデータのサブセットの測定量の1または複数の第2のグループ(例えば、GRP2)の値が、所与の時間範囲または時間窓(例えば、朝の時間)において異常を示すことを決定することができる。種々の実施形態においては、決定は、時間窓の間の時系列の第1のセットSET1の時系列のサブセットにおける異常を示す。例えば、時系列のサブセットは、データソース群101のうちの異常なデータソースから受信される可能性がある。追加の例では、根本原因分析システムは、遠隔コンピュータ・システムからイベント・チケットを受信してもよい。イベント・チケットは、測定量の第2のグループ、時間窓およびイベントが発生した時刻を示す。時間窓は、指定された時間窓内に根本原因探索を集中させることを可能にし得る。例示の実施形態においては、時間窓は、イベント時間を中心とすることができ、これは、イベント時間の前および後、4~48時間にわたり得る。
【0055】
方法200のステップ203においては、根本原因分析システムは、すなわち、(異常の根本原因の候補である)測定量の1または複数の第3のグループ(例えば、GRP3)を決定してもよい。例示の実施形態においては、第3のグループは、測定量の第2のグループGRP2を使用して、測定量の第1のグループGRP1から選択されてもよい。例えば、根本原因分析システムは、異常のルール・エンジン・データベースを用いて、異常の根本原因を探索するように構成されてもよい。異常のルール・エンジン・データベースは、エントリ群を含み、ここで、エントリ群の各エントリは、異常を記述する。例えば、エントリ群の各エントリは、それぞれの異常の属性の値を含む。
【0056】
例示の実施形態においては、異常の属性は、異常に関与する時系列の数、異常に関与する測定量などを含んでもよい。エントリ群の各エントリは、根本原因候補のセットに関連付けられてもよい。根本原因分析システムは、検出された異常に対応する1または複数のエントリを識別するように構成されてもよく、根本原因候補の測定量のそれぞれの1または複数のセットは、第3のグループGRP3を形成してもよい。代替的に、または追加的に、本発明の実施形態は、第3のグループGRP3の測定量の一部または全部をユーザに提供するためにプロンプト表示を行ってもよい。例えば、ユーザは、検出された異常を示す情報の提示を受けてもよい。
【0057】
例えば、上昇したフロントエンド応答時間を異常として有するストレージ・システムの場合は、第3のグループの測定量は、クレジット枯渇に対する読み出し/書き込み応答時間、読み込みデータ・レートに対する読み出し/書き込み応答時間、バックエンドの読み出し/書き込み応答時間または待ち時間に対する読み出し/書き込み応答時間、ローカルノードへのポートに対する応答時間/待ち時間に対する書き込み応答時間であってもよい。不十分な入力異常の場合、測定量は、バックエンド応答に対するvdisk応答、バックエンド・キューに対するvdisk応答、ホストに帰属したディレイに対するvdisk応答、ノード間(ローカルノードへのポート)vdisk応答およびgm二次書き込みラグに対するvdisk応答を含むことができる。
【0058】
測定量の第3のグループの各測定量は、異常データソースのコンポーネントに関連付けられてもよい。例えば、第3のグループの測定量のサブセットは、異常データソースのネットワーク・アダプタから取得されてもよい。このように、測定量の第3のグループは、多数の潜在的な根本原因コンポーネントを分析することを可能にし得る。本発明の実施形態は、第3のグループの正確な選択が、有利であり、単一の問題の原因を見分けることを可能にすることを認識する。
【0059】
ステップ205においては、方法200は、測定量の第2のグループおよび測定量の第3のグループの値をペアごとに比較するための1または複数の類似性技術のセットを利用することができる。すなわち、方法200は、第2のグループGR2のすべての測定量を、第3のグループGR3のすべての測定量と比較することができる。ステップ205で実行される比較の数は、Ncmp=Nst×NGRP2×NGRP3であってよく、ここで、Nstは、類似性技術の数であり、NGRP2は、第2のグループGRP2における測定量の数であり、NGRP3は、第3のグループGRP3における測定量の数である。例えば、類似性技術のセットは、L1/マンハッタン、L2/ユークリッド、DTW/動的時間伸長、スピアマンおよびピアソンのメトリックを含んでもよい。例えば、第2のグループGRP2が2つの測定量を含み、第3のグループGRP3が3つの測定量を含む場合、ステップ205で実行されるべき比較の数は、5*2*3=30である可能性がある。
【0060】
第2のグループおよび第3のグループの測定量M2
iおよびM3
j(i=1,…,N
GRP2、j=1,…,N
GRP3)のペアの比較は、例えば、ユークリッド距離の方法を用いて、下記のように計算することができる:
【数1】
ここで、nは、時間窓の間の、測定量M2
iおよびM3
jに関連付けられる時系列の時間点の数である。
【0061】
本発明の実施形態は、比較を実行する前に、比較される測定量の値を正規化する利点を認識し、これにより、効果的な類似性比較が可能となる可能性がある。正規化は、同一範囲に対して実行されてもよい。一例では、比較されるすべての測定量を範囲[0,1]にスケーリングするmin‐max正規化を使用してもよく、正規化は、時間窓内でのみ実行される。
【0062】
ステップ207においては、方法200は、類似性技術のセットの各類似性技術について、かつ、第2のグループの各測定量M2
iについて、測定量M2
iに、N
stの係数のセットを割り当て、ここで、係数のセットのうちの各係数は、各類似性技術を用いた各測定量M2
iの第3のグループの測定量M3
jとの比較の結果を示す。例えば、係数のセットC
ij
1,C
ij
2,…,C
ij
Nstは、以下のように提供されてもよい。第2のグループおよび第3のグループのすべての可能な測定量のペアの各個別のペア(i,j)について、レコードは、次のように提供されてもよい:
【表1】
例えば、係数のセットC
ij
1,C
ij
2,…,C
ij
Nstは、類似性技術のセットによって実行される比較に基づく2つの測定量M2
i,M3
jの間の類似度を示す。係数のセットは、類似性のレベルを示す数であってもよい。
【0063】
ステップ209において、方法200は、各ペア(M2
i、M3
j)の係数のセットを結合し、結果として、結合係数Coef
ijが得られ得る。例示的な実施形態においては、結合は、係数の総和
【数2】
または、重みづけ総和
【数3】
であってよく、ここで、重みは、類似性技術に割り当てられる。
【0064】
加えて、ステップ211において、方法200は、結合係数が、異常の根本原因として異常データソースのコンポーネントのセットの特定のサブセットの識別を可能にするか否かを判定してもよい。例えば、コンポーネントのサブセットは、1または複数のコンポーネントであってもよい。加えて、コンポーネントのサブセットは、単一コンポーネントを含み、単一の問題の原因(culprit)と参照されてもよい。コンポーネントのサブセットは、同一のコンポーネント・クラスに属してもよい。コンポーネントのサブセットは、異常の集中した調査を可能にし得る。異常データソースがストレージ・システムである例においては、コンポーネントのサブセットは、同一のコンポーネント・クラスに属し、ここで、コンポーネント・クラスは、例えば、物理および仮想のスイッチおよびリンクの両方であってよい。コンポーネント・クラスの別の例は、物理サーバおよび仮想化サーバなどであってもよい。
【0065】
例えば、結合係数の外れ値は、他の結合係数から区別されてもよい。外れ値は、事前定義された閾値よりも高い結合係数を含む可能性がある。閾値は、例えば、すべての結合係数の平均であってもよい。本発明のさらなる実施形態は、結合係数の外れ値が、コンポーネントのセットのコンポーネントの特定のサブセットから入来した第3のグループの測定量と関連付けられるか否かを判定してもよい。言い換えると、結合係数が、技術のセットのうちの2以上の類似性技術で同一の問題の原因のセット(コンポーネントからの測定量のストリーミング)を指し示す場合、次いで、セットおよびそれぞれのソースのコンポーネントが、最も異常の根本原因である可能性が高い。よって、この特定のコンポーネントに対するより深い調査をさらに行うことができる。したがって、異常データソースのコンポーネントのセットのうちの特定のサブセットが異常の根本原因として識別され得ると決定することに応答して(ステップ211、yes分岐)、方法200は、特定のサブセットを根本原因として提供する(ステップ213)。
【0066】
しかしながら、結合係数が互いに有意に異なっておらず、外れ値を識別することができないと決定することは、コンポーネントの特定のサブセットが識別できないことを示す可能性がある。よって、異常データソースのコンポーネントのセットの特定のサブセットが異常の根本原因として識別されないことを決定したことに応答して(ステップ211、no分岐)、方法200は、(ステップ215で)測定量の第3のグループGRP3を更新し、方法200は、前回の反復で使用された第3のグループの代わりに、更新された第3のグループを使用して、ステップ205~215を実行することができる。
【0067】
方法200は、第3のグループの1または複数の測定量を除去または置換することによって、測定量の第3のグループの更新を実行してもよい。一例では、除去または置換される測定量は、以下のように決定してもよい。異常データソースの特定のコンポーネントが識別されてもよく、その特定のコンポーネントによって提供されるすべての測定量が、第3のグループにおいて除去または置換されてもよい。この例では、ステップ205~215の反復は、特定のコンポーネントを除外したコンポーネントのセットを使用することができる。特定のコンポーネントは、例えば、コンポーネントのセットからランダムに選択されてもよい。別の例では、その特定のコンポーネントを識別するために、ユーザは、ダイアログ表示を受けてもよい。別の例では、コンポーネントのセットは、時間窓の間、コンポーネントのセットに共通の特性の値を使用してランク付けされてもよい。1番目にランク付けされるコンポーネントが、特定のコンポーネントであってもよい。例えば、特性は、過負荷の程度であってもよい。
【0068】
図3は、本発明の例示的な実施形態による根本原因分析のための方法を示す図式300である。種々の実施形態においては、図式300の方法は、
図1に前述したコンピュータ・システム100(例えば、根本原因分析システム105および任意選択的の1または複数のコンピューティング・システム)で実装されてもよいが、この実装に限定されるものではない。
【0069】
ブロック301においては、根本原因分析システムは、イベント・チケットを受信することができる。イベント・チケットは、所与のデータソースで発生した異常イベントを示してもよい。例示の実施形態においては、所与のデータソースは、サーバおよびネットワーク・アダプタのようなコンポーネントのセットを有するストレージ・システムであってもよい。
【0070】
ブロック302において、根本原因分析システムは、イベントを引き起こした測定量の異常セット(例えば、キー・パフォーマンス・インジケータ(KPI))を決定することができる。次いで、ブロック303においては、根本原因分析システムは、測定量の根本原因候補セットを決定する(例えば、SET1から選択する)ことができる。加えて、根本原因分析システムは、イベントをカバーする時間窓を決定することができる。
【0071】
ブロック304においては、根本原因分析システムは、5つの類似性技術のセットを利用して、異常セットおよび根本原因候補セットのペアごと測定量の比較を行うことができる。類似性技術のセットは、3つの距離のアンサンブル(すなわち、L2/ユークリッド、L1/マンハッタン、DTW/動的時間伸長)および2つの相関測量(すなわちスピアマンおよびピアソン)を含む。アンサンブルが、削減されてもよいし、あるいは、本明細書におけるパターン認識のための機械学習ML/ANNベースのモデルを含む追加の方法(algos)を用いて拡張されてもよい。
【0072】
さらに、ブロック305においては、根本原因分析システムは、単一の共通の問題の原因が識別されるか否かを判定する。根本原因分析システムが、比較結果に基づいて、(例えば、5つのうちの)2以上の方法で同一の問題の原因のセット(コンポーネントが原因である測定量)を指し示す場合、根本原因分析システムは、対応するセットおよびそれぞれのソースのコンポーネントが問題の根本原因である可能性が最も高いと決定する(ブロック305、yes分岐)。したがって、根本原因分析システムは、ブロック306に進み、ユーザにこの特定のコンポーネントでのより深い調査を開始することを促す。
【0073】
根本原因分析システムが異なるコンポーネントを指し示す場合(ブロック305でno分岐)、根本原因分析システムは、問題の原因がまだ充分に定義されていないと決定する。よって、根本原因分析システムは、ブロック307に進み、他のメトリックのペアを用いてブロック303~305の比較を反復することによって、次のトラブルシューティング・ステップを実行する。異なる方法を用いた比較の反復が同一のコンポーネントを指し示す場合、根本原因分析システムは、対応するコンポーネントが問題の原因である可能性が高いと決定する。
【0074】
根本原因分析システムが満足なコンポーネント(すなわち、一意の根本原因)を識別しておらず、すべての可能な測定量のペアが依然として1つの特定のコンポーネントを強調しない場合、次いで、根本原因分析システムは、関連するコンポーネントを、過負荷の程度が減少する順序でランク付けしてもよい。例示の実施形態においては、根本原因分析システムは、最も過負荷なコンポーネントから開始してもよく、次いで、一つ抜き除去法(ブロック309)を適用することができる。したがって、根本原因分析システムは、それぞれの除去の後ごとに(プロセス310を介して)ブロック303~305の比較を再実行しながら、一度に1つずつ最上位のボトルネックを増分的に除去することを可能にする。
【0075】
追加の例では、根本原因分析システムは、ステップ311~314で説明されるように根本原因候補セットを決定することができる。ステップ311においては、実行するデータソースが提供され、ステップ312において、データソースによって提供され得る測定量のセットが決定されてもよい。ステップ313においては、根本原因分析システムは、セットの最上位kの相関する測定量を決定してもよい。次いで、根本原因分析システムは、セットの最上位kの相関する測定量を利用して、根本原因候補セットを決定してもよい(ステップ314)。
【0076】
図4は、本開示に含まれるような方法ステップの少なくとも一部を実装することに適した汎用コンピューティング・システム400を表す。
【0077】
本明細書で説明される方法は、少なくとも部分的に非対話的であり、サーバまたは埋め込みシステムのような、コンピュータ化されたシステムによって、自動化されることが理解されよう。けれども、例示の実施形態においては、本明細書で説明される方法が、(部分的に)対話型システムにおいて実装されてもよい。これらの方法は、ソフトウェア412、ファームウェア422、ハードウェア(プロセッサ405)、または、これらの組み合わせにおいてさらに実装されてもよい。いくつかの実施形態においては、本明細書で説明される方法は、ソフトウェアにおいて、実行形式プログラムとして実装されてもよく、また、パーソナル・コンピュータ、ワークステーション、ミニコンピュータまたはメインフレーム・コンピュータなどの特定用途または汎用デジタル・コンピュータによって実行され得る。最も一般的なシステム400は、その結果として、汎用コンピュータ401を含む。
【0078】
例示の実施形態においては、ハードウェア・アーキテクチャに関し、
図4に示されるように、コンピュータ401は、プロセッサ405と、メモリ・コントローラ415に結合されたメモリ(メインメモリなど)410と、ローカル入力/出力コントローラ435を介して通信可能に結合される1以上の入力および/または出力(I/O)デバイスまたは周辺機器10,445とを含む。入力/出力コントローラ435は、これに限定されるものではないが、当該技術分野で知られているように、1以上のバスまたは他の有線または無線の接続であってよい。入力/出力コントローラ435は、通信を可能にするため、コントローラ、バッファ(キャッシュ)、ドライバ、リピータおよび受信機のような追加の要素を有する可能性があるが、これらは簡便のため省略される。さらに、ローカル・インタフェースは、上述したコンポーネントの間の適切な通信を可能とするためにアドレス、制御もしくはデータまたはこれらの組み合わせの接続を含んでもよい。本明細書で説明されるようにI/Oデバイス10,445は、一般的には、当該技術分野で知られた、任意の一般化された暗号カードまたはスマート・カードを含んでもよい。
【0079】
プロセッサ405は、具体的にはメモリ410に格納されたソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ405は、任意のカスタム・メイドのまたは市販のプロセッサ、中央処理装置(CPU)、コンピュータ401に関連付けられたいくつかのプロセッサのうちの補助プロセッサ、半導体ベースのマイクロプロセッサ(マイクロチップまたはチップセットの形態で)、マクロプロセッサ、または、ソフトウェア命令を実行するための任意のデバイスまたはこれらの組み合わせであってよい。
【0080】
メモリ410は、揮発メモリ要素(例えば、DRAM,SRAM,SDRAMなどのランダム・アクセス・メモリ(RAM))、非揮発メモリ要素(例えば、ROM、消去可能プログラマブル・リード・オンリー・メモリ(EPROM)、電気的消去可能プログラマブル・リード・オンリー・メモリ(EEPROM)、プログラマブル・リード・オンリー・メモリ(PROM))の任意の1つまたは組み合わせを含んでもよい。メモリ410は、種々のコンポーネントが離れた場所にあるが、プロセッサ405によってアクセスできる、分散アーキテクチャを有してもよいことに留意されたい。
【0081】
メモリ410内のソフトウェアは、論理機能、とりわけ本発明の実施形態に関与する機能を実装するための実行可能な命令の順序付きリストをそれぞれ含む1以上の別個のプログラムを含んでもよい。
図4の例においては、メモリ410内のソフトウェアは、ソフトウェア412の命令(例えばデータベース管理システムなどのデータベースを管理するための命令)を含む。
【0082】
メモリ410内のソフトウェアは、典型的には、適切なオペレーティング・システム(OS)411も含む。OS411は、基本的に、本明細書で説明する方法を実装するソフトウェア412などの他のコンピュータ・プログラムの実行を制御する。
【0083】
本明細書で説明される方法は、ソフトウェア412のソース・プログラム、ソフトウェア412の実行形式プログラム(オブジェクト・コード)、スクリプトもしくは、ソフトウェア412の側面として実行するべき命令のセットを含む他のエンティティまたはこれらの組み合わせの形態であってよい。ソース・プログラムの場合、プログラムは、メモリ410に含まれても含まれなくてもよいコンパイラ、アセンブラ、インタプリタもしくはこれらに類するものまたはこれらの組み合わせを介して、OS411に関連して適切に動作するために変換(translate)される必要がある。さらに、方法は、データおよびメソッドのクラスを有するオブジェクト指向プログラミング言語、または、ルーチン、サブルーチンもしくは関数またはこれらの組み合わせを有する手続型プログラミング言語で書かれてもよい。
【0084】
例示の実施形態においては、従来型のキーボード450およびマウス455が、入力/出力コントローラ435に結合されてもよい。例えば、I/Oデバイス445などの他の出力装置は、例えば、これに限定されないが、プリンタ、スキャナ、マイクなどの入力装置を含んでもよい。最後に、I/Oデバイス10,445は、例えば、これに限定されないが、ネットワーク・インタフェース・カードまたは(他のファイル、デバイス、システムまたはネットワークにアクセスするための)変調器/復調器、または、高周波、他のトランシーバ、電話インタフェース、ブリッジ、ルータもしくはこれらに類するものまたはこれらの組み合わせなど、入力および出力の両方を通信するデバイスをさらに含んでもよい。I/Oデバイス10,445は、当該技術分野で知られた任意の汎用暗号カードまたはスマート・カードであってもよい。システム400は、さらに、ディスプレイ430に結合されたディスプレイ・コントローラ425を含んでもよい。例示の実施形態においては、システム400は、ネットワーク465に結合するためのネットワーク・インタフェースをさらに含んでもよい。ネットワーク465は、ブロードバンド接続を介して、コンピュータ401と他の外部サーバ、クライアントもしくはこれらに類するものまたはこれらの組み合わせの間の通信のためのIPベースのネットワークであってもよい。ネットワーク465は、本明細書で議論した方法の一部または全部のステップを実行するために関与し得るコンピュータ401および外部システム30の間でデータを送信または受信する。例示的な実施形態において、ネットワーク465は、サービスプロバイダによって管理されたマネージドIPネットワークであってもよい。ネットワーク465は、例えば、Wi-Fi(登録商標)、WiMAX(登録商標)などの無線プロトコルおよび技術を使用するなど、無線様式で実装されてもよい。ネットワーク465は、また、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、メトロポリタン・エリア・ネットワーク、インターネット・ネットワークもしくは他の類似のタイプのネットワーク環境またはこれらの組み合わせなどのパケット交換ネットワークであってもよい。ネットワーク465は、固定された無線ネットワーク、無線ローカル・エリア・ネットワーク(WLAN)、無線ワイド・エリア・ネットワーク(WWAN)、パーソナル・エリア・ネットワーク(PAN)、仮想プライベート・ネットワーク(VPN)、イントラネットまたは他の適切なネットワーク・システムであってよく、信号を受信しまた送信するための装置を含む。
【0085】
コンピュータ401がPC、ワークステーション、インテリジェント・デバイスもしくはこれらに類するものまたはこれらの組み合わせである場合は、メモリ410内のソフトウェアは、さらに、BIOS(Basic Input Output System)422を含んでもよい。BIOSは、起動時にハードウェアを初期化し、テストし、OS411を起動し、ハードウェア・デバイスの間でデータの転送をサポートする、重要なソフトウェアルーチンのセットである。BIOSは、コンピュータ401がアクティベートされた場合にBIOSが実行されるようにROMに格納される。
【0086】
コンピュータ401が稼働中である場合、プロセッサ405は、メモリ410内に格納されるソフトウェア412を実行し、メモリ410へのまたはメモリ410からのデータを通信し、かつ、一般にソフトウェアに従ってコンピュータ401の動作を制御するように構成される。本明細書で説明された方法およびOS411は、全体として、または部分的に、しかし、典型的には後者で、プロセッサ405により読み込まれ、プロセッサ405内でおそらくはバッファされ、そして、実行される。
【0087】
本明細書で説明されるシステムおよび方法がソフトウェア412において実装される場合、
図4に示すように、方法は、コンピュータ関連システムまたは方法によって、または関連して使用するために、ストレージ420などの任意のコンピュータ読取可能媒体に格納されてもよい。ストレージ420は、HDDストレージなどのディスク・ストレージを含んでもよい。
【0088】
本発明は、任意の統合の可能な技術的な詳細のレベルでのシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の側面を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含んでもよい。
【0089】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持し格納する有形のデバイスであってよい。コンピュータ可読ストレージ媒体は、例えば、これに限定されるものではないが、電子的ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは上記の任意の適切な組み合わせであってよい。コンピュータ可読ストレージ媒体のより具体的な例示の例示列挙としては、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュメモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリースティック、フロッピーディスク(登録商標)、パンチカードまたは記録された命令を有する溝内の隆起構造のような機械的エンコードされたデバイス、および上記の任意の適切な組み合わせが含まれる。コンピュータ可読ストレージ媒体は、本明細書で使用されるように、電波、自由伝搬する電磁波、導波路または他の伝送媒体を伝搬する電磁波(たとえば、ファイバ光ケーブルを通過する光パルス)または、ワイヤを通して伝送される電気信号のような、それ自体が一時的な信号として解釈されるものではない。
【0090】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピュータ/処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはこれらの組み合わせといったネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジサーバまたはこれらの組み合わせを含んでもよい。各コンピュータ/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0091】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、1以上のプログラミング言語の任意の組み合わせで書かれたソース・コードあるいはオブジェクト・コードであってよく、1以上のプログラミング言語は、Smalltalk(登録商標)、C++またはこれらに類するもなどのオブジェクト指向言語、Cプログラミング言語または類似のプログラミング言語などの手続型言語を含む。コンピュータ可読プログラム命令は、スタンド・アローンのソフトウェア・パッケージとして、全体としてユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上かつ部分的に遠隔のコンピュータ上で、または、完全に遠隔のコンピュータまたはサーバ上で実行されてもよい。後者のシナリオでは、遠隔のコンピュータは、ユーザのコンピュータに、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じて接続されてもよく、あるいは接続は、(例えば、インターネット・サービス・プロバイダを用いてインターネットを通じて)外部コンピュータになされてもよい。いくつかの実施形態においては、電気的回路は、本発明の側面を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、電気的回路を個別化することによって、コンピュータ可読プログラム命令を実行してもよく、この電気的回路は、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む。
【0092】
本発明の側面は、本明細書において、本発明の実施形態に従った方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されてもよいことが理解されよう。
【0093】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置に提供され、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置を介して実行される命令が、フローチャート図もしくはブロックまたはその両方のブロックまたは複数のブロックにおいて特定される機能/作用を実装するための手段を作成するように、マシンを生成する。これらのコンピュータ可読プログラム命令は、また、コンピュータ、プログラマブル・データ処理装置もしくは他のデバイスまたはこれらの組み合わせに特定のやり方で機能するよう指示できるコンピュータ可読ストレージ媒体に格納され、それに格納された命令を有するコンピュータ可読ストレージ媒体に、フローチャートもしくはブロックまたはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装する命令を含む製品が含まれるようにする。
【0094】
コンピュータ可読プログラム命令は、また、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で一連の動作ステップを実行させて、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で実行される命令が、フローチャートもしくはブロックまたはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装するように、コンピュータ実装処理を生成することもできる。
【0095】
図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に従ったシステム、方法およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、特定の論理機能を実装するための1以上の実行可能な命令を含む、モジュール、セグメントまたは命令の部分を表す可能性がある。いくつかの代替の実装では、ブロックにおいて言及された機能は、図面に示された順序から外れて生じる可能性がある。例えば、連続して示される2つのブロックは、実際には、同時に、実質的に同時に、または部分的にまたは全体的に一時的に重なった仕方で、一つのステップとして完了されてもよく、あるいは、複数のブロックは、関与する機能性に応じて逆の順序で実行されてもよい。ブロック図もしくはフローチャート図またはその両方の各ブロックおよびブロック図もしくはフローチャート図またはその両方の複数のブロックの組み合わせが、特定の機能または作用を実行し、または、特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実施する、特定目的ハードウェアベースのシステムによって実装されてもよいことに留意されたい。