IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7648734クラウドの効率的な運用のためのプロビジョニング・ワークフローの事前障害対策の方法
<>
  • 特許-クラウドの効率的な運用のためのプロビジョニング・ワークフローの事前障害対策の方法 図1
  • 特許-クラウドの効率的な運用のためのプロビジョニング・ワークフローの事前障害対策の方法 図2
  • 特許-クラウドの効率的な運用のためのプロビジョニング・ワークフローの事前障害対策の方法 図3
  • 特許-クラウドの効率的な運用のためのプロビジョニング・ワークフローの事前障害対策の方法 図4
  • 特許-クラウドの効率的な運用のためのプロビジョニング・ワークフローの事前障害対策の方法 図5
  • 特許-クラウドの効率的な運用のためのプロビジョニング・ワークフローの事前障害対策の方法 図6
  • 特許-クラウドの効率的な運用のためのプロビジョニング・ワークフローの事前障害対策の方法 図7
  • 特許-クラウドの効率的な運用のためのプロビジョニング・ワークフローの事前障害対策の方法 図8
  • 特許-クラウドの効率的な運用のためのプロビジョニング・ワークフローの事前障害対策の方法 図9
  • 特許-クラウドの効率的な運用のためのプロビジョニング・ワークフローの事前障害対策の方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-10
(45)【発行日】2025-03-18
(54)【発明の名称】クラウドの効率的な運用のためのプロビジョニング・ワークフローの事前障害対策の方法
(51)【国際特許分類】
   G06F 11/07 20060101AFI20250311BHJP
   G06F 11/34 20060101ALI20250311BHJP
【FI】
G06F11/07 151
G06F11/07 140A
G06F11/34 152
【請求項の数】 20
(21)【出願番号】P 2023502948
(86)(22)【出願日】2021-06-21
(65)【公表番号】
(43)【公表日】2023-08-16
(86)【国際出願番号】 CN2021101264
(87)【国際公開番号】W WO2022017098
(87)【国際公開日】2022-01-27
【審査請求日】2023-11-14
(31)【優先権主張番号】16/935,119
(32)【優先日】2020-07-21
(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)【参考文献】
【文献】特開2017-199118(JP,A)
【文献】特開2006-216017(JP,A)
【文献】特開2018-136656(JP,A)
【文献】特開2016-192016(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
8/60-8/77
9/44-9/445
9/451
9/455-9/54
11/07
11/28-11/3698
(57)【特許請求の範囲】
【請求項1】
プロビジョニング・ワークフローのための介入応答カテゴリを決定する方法を実行する命令を記憶するためのメモリと、前記命令を実行するように構成されたプロセッサとを備えるシステムにおいて、前記方法は、前記プロセッサが、
プロビジョニング・ステップのプロビジョニング機能を決定することと、
不介入データから外れ値を識別して除去するために外れ値検出を実行し、不介入正常データ集合を生成することと、
前記不介入正常データ集合について反復グループ化を実行し、前記プロビジョニング機能における重要変数を決定することと、
前記不介入正常データおよび部分的介入データにおけるエラーの重要性とエラーの有無とを含む前記反復グループ化の結果を使用してプロビジョンの応答マッピングを実行し、前記プロビジョンを応答カテゴリに分類することと
を含む、方法。
【請求項2】
前記応答カテゴリが、即刻対応、遅延した対応、および対応不要のうちの1つである、請求項1に記載の方法。
【請求項3】
前記外れ値検出が、前記不介入データにおける前記外れ値を識別するために局所外れ値因子法(LOF)を使用する、請求項1に記載の方法。
【請求項4】
前記プロセッサが、プロビジョニング・ステップのプロビジョニング機能を決定することが、
前記プロビジョニング・ステップに関連付けられたイベント・ログを使用して、すべての前記プロビジョンについて前記プロビジョニング・ステップのステップ持続時間を計算することと、
前記プロビジョニング・ステップのプロビジョニング・パラメータを識別することと、
前記プロビジョニング・ステップの一部として発生する前記イベント・ログ中のエラー・メッセージを識別することと
を含む、請求項1に記載の方法。
【請求項5】
前記プロセッサが、前記不介入正常データ集合を使用して前記反復グループ化を実行することが、
前記プロビジョニング・パラメータ、前記エラー・メッセージ、および前記ステップ持続時間に基づいてF統計値を計算することと、
前記F統計値に基づいて重要変数を決定することと、
前記重要変数の値の組合せに基づいて、前記不介入正常データ集合を複数のクラスタにクラスタリングすることと
を含む、請求項4に記載の方法。
【請求項6】
前記クラスタがさらなる分割の候補であるかどうかを決定するために、nを可変として、n×四分位範囲を超えるデータポイントのパーセンテージが、クラスタごとにしきい値と比較される、請求項5に記載の方法。
【請求項7】
nを可変として、クラスタごとにn×四分位範囲を計算することによって、持続時間しきい値がクラスタごとに計算される、請求項5に記載の方法。
【請求項8】
前記部分的介入データ中および前記不介入正常データ集合中にエラーが存在し、反復グループ化の結果として前記エラーが重要変数である場合、前記応答カテゴリが遅延した対応である、請求項5に記載の方法。
【請求項9】
前記エラーのアラームまでの時間が、非0かつ非NULLの持続時間しきい値をもつすべてのクラスタ中のすべての持続時間しきい値の最大値である、請求項8に記載の方法。
【請求項10】
エラーが前記部分的介入データ中に存在し、かつ前記不介入正常データ集合中に存在しない場合、前記応答カテゴリが即刻対応である、請求項1に記載の方法。
【請求項11】
エラーが前記不介入正常データ集合中に存在し、かつ前記部分的介入データ中に存在しない場合、前記応答カテゴリが対応不要である、請求項1に記載の方法。
【請求項12】
命令を記憶するためのメモリと、前記命令を実行するように構成されたプロセッサとを備えるシステムであって、前記命令は、
プロビジョニング・ステップのプロビジョニング機能を決定することと、
不介入データから外れ値を識別して除去するために外れ値検出を実行し、不介入正常データ集合を生成することと、
前記不介入正常データ集合について反復グループ化を実行し、前記プロビジョニング機能における重要変数を決定することと、
前記不介入正常データおよび部分的介入データにおけるエラーの重要性とエラーの有無とを含む前記反復グループ化の結果を使用してプロビジョンの応答マッピングを実行し、前記プロビジョンを応答カテゴリに分類することと
を行う命令である、システム。
【請求項13】
前記応答カテゴリが、即刻対応、遅延した対応、および対応不要のうちの1つである、請求項12に記載のシステム。
【請求項14】
前記プロセッサが、局所外れ値因子法(LOF)を使用して前記不介入データにおける前記外れ値を識別する前記命令を実行するようにさらに構成される、請求項12に記載のシステム。
【請求項15】
前記プロセッサが、
前記プロビジョニング・ステップに関連付けられたイベント・ログを使用して、すべての前記プロビジョンについて前記プロビジョニング・ステップのステップ持続時間を計算することと、
前記プロビジョニング・ステップのプロビジョニング・パラメータを識別することと、
前記プロビジョニング・ステップの一部として発生する前記イベント・ログ中のエラー・メッセージを識別することと
を行う前記命令を実行するようにさらに構成される、請求項12に記載のシステム。
【請求項16】
前記プロセッサが、
前記プロビジョニング・パラメータ、前記エラー・メッセージ、および前記ステップ持続時間に基づいてF統計値を計算することと、
前記F統計値に基づいて重要変数を決定することと、
前記重要変数の値の組合せに基づいて、前記不介入正常データ集合を複数のクラスタにクラスタリングすることと
を行う前記命令を実行するようにさらに構成される、請求項15に記載のシステム。
【請求項17】
前記クラスタがさらなる分割の候補であるかどうかを決定するために、nを可変として、n×四分位範囲を超えるデータポイントのパーセンテージが、クラスタごとにしきい値と比較される、請求項16に記載のシステム。
【請求項18】
nを可変として、クラスタごとにn×四分位範囲を計算することによって、持続時間しきい値がクラスタごとに計算される、請求項15に記載のシステム。
【請求項19】
前記応答カテゴリは、エラーが反復グループ化の結果としての重要変数であり前記部分的介入データ中に存在しかつ前記不介入正常データ集合中に存在する場合、遅延した対応であり、前記遅延した対応のアラームまでの時間が、非0かつ非NULLの持続時間しきい値をもつすべてのクラスタ中のすべての持続時間しきい値の最大値であり、前記応答カテゴリは、エラーが前記部分的介入データ中に存在しかつ前記不介入正常データ集合中に存在しない場合、即刻対応であり、前記応答カテゴリは、エラーが前記不介入正常データ集合中に存在しかつ前記部分的介入データに存在しない場合、対応不要である、請求項15に記載のシステム。
【請求項20】
コンピュータ・プログラムであって、請求項1ないし11のいずれか1項に記載の方法
をコンピュータに実行させるための、コンピュータ・プログラム。
【発明の詳細な説明】
【背景技術】
【0001】
クラウドにおける仮想マシンまたはベアメタル・サーバのプロビジョニングは、いくつかのプロビジョニング・ステップを含み、その間にワークフローがこのプロビジョニング・ステップを進行し、プロビジョニング状態を反映するにつれ、構造化されていないタイムスタンプ付きのログが生成される。1日に発生するおよそ数万件の仮想サーバ・インフラストラクチャ(VSI:Virtual Server Infrastructure)のプロビジョンのうち数百件は、与えられたプロビジョニング・ステップ中にスタック状態に陥り得る。期限切れのプロビジョンを事前に検知して修復するには、一般に、プロビジョンをスタック状態にさせるエラーを手作業で識別する必要があり、これは重大なパフォーマンスのボトルネックとなり得る。さらに、トランザクションには自己解決能力があるため、すべての期限切れのトランザクションに手作業の手当が必要であるわけではない。現在の異常検出の方法は、いつ介入すべきかの指針を与えない。
【発明の概要】
【0002】
開示される実施形態は、プロビジョニング・ワークフローのための介入応答カテゴリを決定するように構成されたシステム、方法、およびコンピュータ・プログラム製品を含む。一実施形態において、システム、方法、およびコンピュータ・プログラム製品は、プロビジョニング・ステップのプロビジョニング機能を決定することと、不介入データから外れ値を識別して除去するために外れ値検出を実行し、不介入正常データ集合を生成することと、不介入正常データ集合について反復グループ化を実行し、プロビジョニング機能における重要変数を決定することと、不介入正常データおよび部分的介入データにおけるエラーの重要性とエラーの有無とを含む反復グループ化の結果を使用してプロビジョンの応答マッピングを実行し、プロビジョンを応答カテゴリに分類することとを行うように構成されている。
【0003】
任意選択で、いくつかの実施形態において、応答カテゴリは、即刻対応(immediate attention)、遅延した対応(delayed attention)、および対応不要(no attention)のうちの1つである。
【0004】
任意選択で、いくつかの実施形態において、システム、方法、およびコンピュータ・プログラム製品は、不介入データにおける外れ値を識別するために局所外れ値因子法(LOF:Local Outlier Factor)を使用する。
【0005】
任意選択で、いくつかの実施形態において、システム、方法、およびコンピュータ・プログラム製品は、プロビジョニング・ステップに関連付けられたイベント・ログを使用してすべてのプロビジョンについてプロビジョニング・ステップのステップ持続時間を計算することと、プロビジョニング・ステップのプロビジョニング・パラメータを識別することと、プロビジョニング・ステップにおけるプロビジョンの一部として発生するイベント・ログ中のエラー・メッセージを識別することとを行うように構成されている。
【0006】
任意選択で、いくつかの実施形態において、システム、方法、およびコンピュータ・プログラム製品は、プロビジョン・パラメータ、エラー・メッセージ、およびステップ持続時間に基づいてF統計値を計算することと、F統計値に基づいて重要変数を決定することと、重要変数の値の組合せに基づいて不介入正常データ集合を複数のクラスタにクラスタリングすることとを行うように構成される。
【0007】
任意選択で、いくつかの実施形態において、システム、方法、およびコンピュータ・プログラム製品は、クラスタがさらなる分割の候補であるかどうかを決定するために、nを可変として、クラスタごとにn×四分位範囲を超えるデータポイントのパーセンテージをしきい値と比較するように構成される。
【0008】
任意選択で、いくつかの実施形態において、システム、方法、およびコンピュータ・プログラム製品は、nを可変として、クラスタごとにn×四分位範囲を計算することによって、持続時間しきい値をクラスタごとに計算するように構成される。
【0009】
任意選択で、いくつかの実施形態において、システム、方法、およびコンピュータ・プログラム製品は、部分的介入データ中および不介入正常データ集合中にエラーが存在し、反復グループ化の結果としてエラーが重要変数である場合、応答カテゴリを遅延した対応に分類するように構成される。
【0010】
任意選択で、いくつかの実施形態において、システム、方法、およびコンピュータ・プログラム製品は、エラーのアラームまでの時間を計算するように構成され、エラーのアラームまでの時間は、非0かつ非NULLの持続時間しきい値をもつすべてのクラスタ中のすべての持続時間しきい値の最大値である。
【0011】
任意選択で、いくつかの実施形態において、システム、方法、およびコンピュータ・プログラム製品は、エラーが部分的介入データ中に存在し、かつ不介入正常データ集合中に存在しない場合、応答カテゴリを即刻対応として分類するように構成される。
【0012】
任意選択で、いくつかの実施形態において、システム、方法、およびコンピュータ・プログラム製品は、エラーが不介入正常データ集合中に存在し、かつ部分的介入データ中に存在しない場合、応答カテゴリを対応不要と分類するように構成される。
【0013】
他の実施形態および開示された実施形態の利点は、発明を実施するための形態においてさらに説明される。
【0014】
本開示のより完全な理解のために、ここで、添付の図面および発明を実施するための形態に関連して採用される、以下の簡単な説明を参照されたい。ここで、同様の参照番号は同様の部品を表す。
【図面の簡単な説明】
【0015】
図1】本開示の一実施形態による、プロビジョニング・ワークフローのための介入応答カテゴリを決定するためのシステムを示す概略図である。
図2】本開示の一実施形態によるプロビジョニング・ワークフローのための介入応答カテゴリを決定するための方法を示すフローチャートである。
図3】本開示の一実施形態によるプロビジョニング機能を示すチャートである。
図4】本開示の一実施形態による、最近傍の数(k)に対する歪度をプロットしたグラフである。
図5】本開示の実施形態による、歪度の集合の部分集合を示すグラフである。
図6】本開示の実施形態による第1の極大/極小を示すグラフである。
図7】本開示の一実施形態による、反復グループ化を実行するための方法を示すフローチャートである。
図8】本開示の一実施形態による、重要変数のアラームしきい値までの時間を示すチャートである。
図9】本開示の一実施形態による、全く別の時間期間からのトレーニングおよびテストのデータの結果を示すチャートである。
図10】例示的な実施形態の態様が実装され得る、本開示の一実施形態によるシステムのハードウェア・アーキテクチャを示すブロック図である。
【発明を実施するための形態】
【0016】
示した図は例示的なものに過ぎず、異なる実施形態が実施され得る環境、アーキテクチャ、設計、またはプロセスに関していかなる限定を主張することも示唆することも意図していない。
【0017】
1つまたは複数の実施形態の例示的な実装が以下に提供されるが、開示するシステム、コンピュータ・プログラム製品または方法あるいはその組合せは、現在知られるまたは現存するかどうかにかかわらず、任意の数の技術を使用して実装され得ることが、最初に理解されるべきである。本開示は、本明細書に示し説明する例示的な設計および実装を含む、以下に例示する実装、図面、および技術に決して限定されるべきではなく、それらの均等物の全範囲と共に添付の特許請求の範囲内で改変され得る。
【0018】
本開示書面内および特許請求の範囲中で使用されているように、「含む(including)」および「含む/備える(comprising)」という用語は非限定的用法で使用されており、したがって、「含むが、これに限定されない」という意味に解釈されるべきである。他に示されない限り、本書全体で使用されるように、「または」は相互排他性を必要とせず、単数形「a」、「an」および「the」は、文脈が明らかに他に示さない限り、複数形も含むことが意図される。
【0019】
本明細書で言及されるモジュールまたはユニットは、特定の機能を実行するように特別に構成され得る電気回路、プロセッサ、およびメモリなどの1つまたは複数のハードウェアまたは電気的構成要素を備え得る。メモリは、コンピュータ実行可能命令、機械語、および他の様々な形態のデータなどであるがこれらに限定されないデータを記憶する揮発性メモリまたは不揮発性メモリであり得る。モジュールまたはユニットは、データを使用して1つまたは複数の命令を実行して1つまたは複数のタスクを実行するように構成され得る。ある場合には、モジュールは、固有のタスクを実行するように構成された機能、ソフトウェア命令、または回路の特定の集合を指すこともある。例えば、モジュールは、データ・アクセス・オブジェクト、サービス・コンポーネント、ユーザ・インターフェース・コンポーネント、アプリケーション・プログラミング・インターフェース(API)コンポーネントなどであるがこれらに限定されないソフトウェア構成要素;電気回路、プロセッサ、メモリなどのハードウェア構成要素;および/またはそれらの組合せを備え得る。本明細書で言及するように、コンピュータ実行可能命令は、機械語、アセンブリ・コード、および任意のプログラミング言語で書かれた高級プログラミング・コードを含むがこれらに限定されない任意の形式であり得る。
【0020】
図1は、本開示の一実施形態による、プロビジョニング・ワークフローのための介入応答カテゴリを決定するためのシステム100を示す概略図である。システム100は、1つまたは複数の仮想サーバ・インスタンス(VSI:Virtual Server Instance)104のプロビジョニングのために、1つまたは複数のクライアント102と通信するためのプロビジョニング・システム110を含む。代替的に、開示された実施形態は、ベア・メタル・サーバまたはVSIを含むがこれらに限定されない、様々なコンピューティング・リソースのいずれかをプロビジョンすることができる。例えば、クライアント102は、プロビジョニング・システム110に、クラウド中のVSIまたはベアメタル・サーバをプロビジョンするよう要求し得る。一実施形態では、プロビジョニング・システム110が、1日に数千回クラウド中のVSIまたはベアメタル・サーバをプロビジョンし得る。プロビジョンの各々は数百のステップを含むことができ、その間にワークフローがプロビジョニング・ステップを進行し、プロビジョニング状態を反映するにつれ、構造化されていないタイムスタンプ付きのログが生成される。プロビジョニング・プロセス中、プロビジョンが、1つまたは複数のプロビジョニング・ステップでスタックする(すなわち、前進も完了もできない)ことがある。ログ・データ112は、スタックしたプロビジョニングの潜在的な原因を示す様々な種類のエラー・メッセージを含むことができ、そのうちのいくつかは致命的なエラーであり得る。
【0021】
正常なプロビジョニング動作は、どのプロビジョニング・ステップにもスタックすることなく、したがって、いかなる形式の介入も必要とせずにプロビジョンが完了するときに見られる。実際には、正常な動作を特徴付けるためにプロビジョンに関連付けられるラベルが不足している。このようなプロビジョンのラベル付けに向けた人間の努力は、プロビジョンの量(例えば、1日当たり5万件のプロビジョン)のためにたやすいものではない。一方、イベント・ログの頻度数に基づくものなど既存の異常検出方法は、エラーが発生した場合に、いつ介入するか、または介入すべきかどうかについての指針を提供しない。プロビジョンは完了するのに通常より長くかかることがあるが、それらには自己解決能力があるため、すべての期限切れのトランザクションに手作業の手当が必要なわけではない。
【0022】
既存の方法を改善するために、本開示は、プロビジョンをそれらのエラーに基づいてプロビジョンに介入すべきか、およびいつ介入すべきかを示す応答カテゴリに分類するために、介入が発生したプロビジョンと介入が発生しなかったプロビジョンの履歴情報を使用する。開示する実施形態は、コスト、人間の労力、および平均検出時間の削減による高いビジネス的価値を提供し、その結果、平均解決時間および顧客満足度を改善する。
【0023】
具体的には、図1を参照すると、プロビジョニング・モニタリング・システム120は、ログ・データ112を取得する。ログ・データという用語は、様々な方法で提供されるデータ、例えば、データベース・ストアから、またはイベント・ログから提供されるデータを含み得る。不介入データおよび介入データの履歴情報を使用して、プロビジョニング・モニタリング・システム120は、プロビジョニングに介入すべきか、およびいつ介入すべきかを示す応答カテゴリを提供する。一実施形態では、プロビジョニング・モニタリング・システム120は、外れ値検出モジュール130と、反復グループ化モジュール132と、応答マッピング・モジュール134とを含む。外れ値検出モジュール130は、入力として不介入データ122を受け取る。不介入データ122は、人間またはシステムによる介入の記録がないトレーニング・データである。プロビジョンは、どのプロビジョニング・ステップでもスタックしなかった(正常の動作とみなされる)こと、またはスタックしたプロビジョンであるが、適時に対応するためのリソースが不足している(外れ値とみなされる)こと、または基本的な問題が関連しているが異なるプロビジョンで対処されている(これも外れ値とみなされる)ことを含むいくつかの理由で、介入記録がないことがある。以下でさらに説明するように、外れ値検出モジュール130は、不介入プロビジョン・データ122を2つのグループ、不介入正常動作プロビジョンと外れ値プロビジョンとに分割する。一実施形態では、外れ値検出モジュール130は、歪度を条件とする局所外れ値因子法(LOF)を使用して、不介入外れ値データ集合124および不介入正常データ集合126を生成する。LOFは、局所性が最近傍によって与えられる局所密度(local density)の概念に基づく。不介入正常データ集合126は、外れ値が除去された不介入データ122である。反復グループ化モジュール132は、不介入正常データ集合126を入力として受け取る。反復グループ化モジュール132は、プロビジョンの重要変数の値の様々な組合せについて、エラーの重要性を決定し、持続時間しきい値を計算するために、不介入正常データ集合126のグループ化を実行する。本明書で説明する際、「クラスタ」と「グループ」、「クラスタリング」と「グループ化」、「サブクラスタ」と「サブグループ」という用語は、互換的に使用される。応答マッピング・モジュール134は、反復グループ化モジュール132で決定されたエラー重要性、随意で反復グループ化の持続時間しきい値結果、ならびに不介入正常データ126および部分的介入データ128におけるエラーの有無を使用してプロビジョンを応答カテゴリ136に分類する。部分的介入データ128は、人間またはシステムによる介入の情報があるトレーニング・データである。「部分的」という用語は、部分的介入データ128が、介入から利益を得たであろうすべてのプロビジョンを含んでいない可能性があることを示すために使用される。例えば、多数のプロビジョンが発生するため、人数が限られるクラウド運用担当者によってすべてのスタックしたプロビジョンが対処され得るわけではない。この方法は、もし存在するならば、完全な介入データを用いて意図したとおりに機能するだろう。一実施形態では、応答カテゴリ136は、即刻対応、遅延した対応(すなわち、スタックしたプロビジョンが自己解決するための時間を与える)、または対応不要のうちの1つである。
【0024】
図2は、本開示の一実施形態によるプロビジョニング・ワークフローのための介入応答カテゴリを決定するための方法200を示すフローチャート図である。本方法200は、図1のプロビジョニング・モニタリング・システム120のようなシステムによって実行され得るが、これに限定されるものではない。プロビジョンは通常、個々のステップ、例えば最初に利用可能なホストが配置されるステップ、次にネットワークが構成されるステップ、次にストレージが構成されるステップに分割される。説明した方法は、一度に1つのステップに適用されることも、一度に複数のステップのグループに適用されることもあり得る。ステップの最も大きなグループは、プロビジョニング全体であり得る。
【0025】
所与の時間帯中に発生したすべてのプロビジョンについて、本方法200は、図1のログ・データ112などのイベント・ログの集合からプロビジョン固有の特徴を抽出することによって、ステップ202において開始する。「ログ・データ」という用語は、データベースに記憶されたデータを潜在的に含む、様々なソースからのデータを指すために使用される。図3に示すように、プロビジョニング機能の一実施形態はプロビジョニング・パラメータ306を含む。プロビジョン・ステップにおけるプロビジョニングに固有の追加の機能は、プロビジョニング・ステップに関連付けられた計算されたステップ持続時間(st)304とテンプレート化されたエラー308とを含む。一実施形態では、本方法200は、プロビジョン・ステップにおいて一意の識別子PIDをもつすべてのプロビジョンについて、プロビジョン・ステップの開始を示すイベント・ログ中のメッセージまたはイベントのタイムスタンプ(
【数1】

)と、プロビジョン・ステップの終了を示すメッセージまたはイベントのタイムスタンプ(
【数2】

)とを識別することによって、ステップ持続時間(st)304を決定する。本方法200は、ステップ持続時間304を
【数3】

として計算する。ステップ202の一部として、本方法200は、プロビジョンに関連する様々なプロビジョン・パラメータ306の値を決定する。一実施形態では、プロビジョン・パラメータ306はユーザ指定のものである。プロビジョン・パラメータ306の非限定的な例としては、図3のチャートに示すように、オペレーティング・システム(OS)種類と、ディスク容量と、中央処理装置(CPU)の数と、ランダムアクセス・メモリ(RAM)サイズとを含み得る。さらに、ステップ202の一部として、本方法200はまた、一意の識別子PIDをもつプロビジョンについて、ステップ中に発生したイベント・ログ中のエラー・メッセージを識別する。イベント・ログは、プロビジョニング・ステップ中のプロビジョニングについての多数のエラー・メッセージを含み得る。さらに、介入を必要としなかった正常なプロビジョンも、イベント・ログ中にそれに関連するエラー・メッセージを有し得る。例えば、エラー・メッセージは、ある接続が最初の数回の試行は開くことに失敗したが、プロビジョニングを停止させなかったことを示し得る。エラー・メッセージは、特定のプロビジョンに固有なインターネット・プロトコル(IP)アドレス、デバイスID情報、または他の情報など、いくつかのプロビジョン固有の詳細を有し得る。エラーの分析のための分析的ソリューションの設計に向けて、エラーは、本方法200を使用して集約され、エラー・メッセージからプロビジョン固有情報を除去することによってテンプレート化されたエラー308を生成する。一実施形態では、本方法200は、プロビジョン・データ・ポイント(d)をd:{PID,provisionParameters,templatedError,encodedError,st}として特徴付ける。テンプレート化されたエラーは、一意の番号にさらにマッピングされる。このプロセスは符号化として知られ、その結果、符号化されたエラー値が得られる。符号化されたエラー値は、0、1、2など、各数字が一意のテンプレート化されたエラーに対応する数字であり得る。プロビジョンが所与のステップにおいてそれらに関連付けられるエラーを有しない特別な場合も、「エラーなし」に対応する一意の符号化されたエラー値を与えられる。一実施形態では、(あらゆる所与のステップにおける)各プロビジョンは、エラーなしまたは1つのエラーに関連付けられる。「エラー」は、単一のエラー・メッセージまたはエラー・メッセージの集合を含むものとして定義され得ることに留意されたい。各「エラー」は、存在する(テンプレート化された)エラー・メッセージの一意の組合せに対応する。他の非数値的なプロビジョン・パラメータは、同様の方法で対応する符号化された値に変換される。例えば、プロビジョン・パラメータ「OS種類(OS_type)」が取り得る値の集合が{「ubuntu」,「windows」,「centos」}である場合、符号化されたOS種類(encoded_os_type)の値は{0,1,2}となり、0は「ubuntu」に、1は「windows」に、などのようにマッピングされることになる。このようなマッピングは、変数にいかなる順序づけも課さないことに留意されたい。
【0026】
本方法200は、ステップ204において、不介入データから外れ値を識別して除去するために外れ値検出を実行し、2つの互いに素な集合:不介入正常データ集合と不介入外れ値データ集合とを生成する。本方法200は、外れ値検出のための局所外れ値因子法(LOF)の技法を改良する。LOFは、局所密度の概念に基づく。ある点の局所密度をそれのk個の最近傍の局所密度と比較することによって、本方法200は、それらの近傍より類似密度/高密度/低密度の領域を識別することができる。マンハッタン距離のような距離メトリックが2点間の距離を示すために使用され得る。一実施形態では、LOFは、与えられたプロビジョン・ステップについて、歪度を条件として、不介入の集合中のプロビジョンに対応するステップ持続時間に対して計算される。LOFは、kを最近傍の数として、kの予め決定された値について、データを2つの集合に分割する。本方法200では、種々の値のkが検討される。一実施形態では、kは、データセットの%として選択され得る。不介入データセットは、dをプロビジョン・ステップ持続時間がst304で与えられるプロビジョン・データポイントとして、g={d}として表され得る。本方法200は、jをデータセット・サイズのパーセンテージ%、Nをg中のデータポイントの数として、K={(j/100)×N}としてkの値を計算することができる。本方法200は、k∈Kについて、以下のステップを反復する:(1)gおよびkを所与とし、すべてのデータポイントdについてLOFを計算し、ここで距離メトリック=マンハッタンであり;(2)外れ値データセット
【数4】

を計算し、ここでt2はステップ持続時間(step_duration)のプリセットしきい値、tは例えばデータポイント間のガウス分布に近い分布を表すしきい値であり;(3)トリミングされた正常なデータセット
【数5】


【数6】

を計算し;(4)トリミングされた正常なデータについての歪度
【数7】

を計算する。本開示の一実施形態による、0から2500までの、様々なkの値について歪度をプロットする例示的なグラフ400が図4に示されている。計算された歪度値sは、集合Sを生成するために使用される。歪度の集合S={s}と最近傍値K={k}とを与えられたとすると、本方法200は、図5に示すように、S>s>SとなるようにSから部分集合{s}を決定する。SおよびSは、プロビジョンの自己解決能力を獲得するための歪度しきい値である。自己解決能力とは、人間の介入を必要とすることなく、プロビジョンがスタック状態から脱することである。本方法200は、図6に示すように、歪度部分集合{s}に関する2次差分を評価することによって、第1の極大値/極小値を計算する。一実施形態では、本方法200は、最適なkを決定するために近似アルゴリズムを採用する。最適なkの近似は、kmlによって与えられ、ここでlは、図6に示されるように、第1の極大/極小、すなわち{s}における歪度値の2次導関数の集合における最大値/最小値のインデックスである。本方法200は、k=kmlについてLOFを実行することによって、不介入データを不介入正常データ集合と不介入外れ値データ集合とに分割する。
【0027】
本方法200は、ステップ206において、不介入正常データ集合を使用して反復グループ化を実行する。教師なし学習法はデータ中のパターンを探し、特徴を使用してデータをクラスタリングする。このクラスの学習方法はラベルを必要とせず、したがって、クラスタリング目的のためにユーザ補助は必要とされない。一実施形態では、以下に説明するように、本方法200は、ステップ206において、図7のフローチャートに示す方法700に基づいて、不介入正常データ集合を使用して反復グループ化を実行する。
【0028】
反復グループ化プロセスの後、本方法200は、ステップ208において、反復グループ化によって決定されたエラーの重要性、随意で反復グループ化の持続時間しきい値の結果、ならびに不介入正常データおよび部分的介入データにおけるエラーの有無を使用してプロビジョンの応答マッピングを実行し、プロビジョンを応答カテゴリに分類する。応答マッピングの背後にある主な考え方は、入力特徴を出力ラベルの集合にマッピングするマッピング関数を見出すことである。ここで関連する入力特徴の集合はエラー・メッセージである。出力ラベルの集合は、応答カテゴリ、すなわち、対応不要、即刻対応、および遅延した対応である。
【0029】
不介入正常データ集合に存在し、後述のステップ704の任意の反復において重要変数であると決定され、部分的介入データにも存在する各errorについて、アラームまでの時間は、最大持続時間しきい値(TimeToAlarm(errori) = maximum(duration thresholdj)であり、ここでmaximum(duration thresholdj)は、反復グループ化プロセスにより識別されたすべてのクラスタ中のすべての持続時間しきい値の最大値である。反復グループ化に従って、各クラスタは反復グループ化に関連する1つのエラー符号化を有し、符号化は「エラーなし」を表すことがあることに留意されたい。
【0030】
一実施形態では、正常な不介入データに存在するエラーが重要変数であると決定されない場合、それは、部分的介入データに存在するかどうかとは無関係に、NULLのアラームまでの時間および「対応不要」ラベルを得る。これは、偽陽性を最小限にして運用スタッフの負担を減らすことが優先される場合、特に適切である。部分的介入データ中に見出され、かつ不介入正常データ集合中にないすべてのエラーについて、アラームまでの時間は0であり(TimeToAlarm(errork) = 0)、これは、errorが介入データ中にあり、かつerrorが不介入正常データ集合中にない場合、そのエラーは即刻対応を必要とすることを意味するからである。不介入正常データ集合中に見出され、かつ部分的介入データ中にないすべての重要なエラー(重要性はF統計量の計算に基づくものとする)については、アラームまでの時間がNULL(TimeToAlarm(errork) = Null)であり、これはそのエラーが注意を必要としないことを意味する。データ集合が十分に大きく、すべてのエラーが正常な不介入データと部分介入のデータのいずれか一方または両方の少なくとも1つで見られると仮定されていることに留意されたい。
【0031】
一実施形態では、アラームまでの時間しきい値(Time To Alarmthreshold)を使用して決定される応答マッピング・ラベルは、以下のように計算される。0のアラームまでの時間が割り当てられた各エラーに対しては、ラベルは「即刻対応」である。NULLのアラームまでの時間が割り当てられた各エラーに対しては、ラベルは「対応不要」である。アラームまでの時間>0が割り当てられたがNULLでない各エラーに対しては、ラベルは「遅延した対応」である。代替の実施形態は、必ずしもアラームまでの時間を計算することなく、プロビジョン・ステップ中に存在するエラーの特性に基づいて直接ラベルが割り当てられる場合である。具体的には、ステップ704のいずれかの反復において重要変数であると決定され、正常な不介入データと部分的介入データの両方の中に存在する各エラーに対しては、ラベルは「遅延した対応」ラベルである。一実施形態では、正常な不介入データ中に存在するエラーが重要変数であると決定されない場合、それは、部分的介入データ中に存在するかどうかとは無関係に「対応不要」ラベルを得る。不介入正常データではなく、部分的介入データ中に存在するエラーに対しては、それに関連付けられる「即刻対応」のラベルが存在する。不介入正常データ集合中に見出され、図7への参照において後述するように、ステップ704のいずれかの反復において重要変数であると決定され、部分的介入データ中には見出されない任意のエラーに対しては、それに関連付けられる「対応不要」のラベルが存在する。したがって後に図8に示して説明するように、(与えられたプロビジョン・ステップにおいて)個々のプロビジョンはそれらのエラーに基づいてラベルを割り当てられる。
【0032】
図7は、本開示の一実施形態による、不介入正常データ集合を使用して反復グループ化を実行するための方法700を示すフローチャートである。本方法700への入力は、(a)不介入正常データおよび(b)未処理のクラスタの一時的なリスト、例えばtmpListである(これは、空のリストに初期化される)。未処理のクラスタの一時的なリストは、クラスタごとに、それに関連付けられた重要変数のリストを含む。各クラスタに関連付けられた重要変数のリストも空のリストに初期化される。
【0033】
本方法700はステップ701において、未処理のクラスタのリストを集約することによって開始される。本方法の開始時に、tmpListは、不介入正常データに対応するグループで占められており、このリスト中に存在する唯一のグループである。このグループは「未処理」とマークされる。この時点では、クラスタに関連付けられる重要変数は存在しない。ステップ702において、本方法700は、tmpList中のすべてのクラスタが処理済みとマークされているかどうかを決定する。Yesであれば、本方法700はステップ713で終了する。すべてのクラスタが処理済みとマークされていない場合、ステップ703において、本方法700は、未処理のクラスタを選択し、現在のクラスタについて、因子変数としてステップ持続時間以外のプロビジョニング・ステップのプロビジョニング機能と、応答変数としてステップ持続時間(st)304とを使用し、交互作用効果を無視して、分散分析F統計量を計算する。因子変数として使用されるプロビジョニング機能の非限定的な例は、図3に示すように、符号化され得るプロビジョニング・パラメータ306、および符号化されたエラー・メッセージ310である。処理の始めにおいて、現在のクラスタ/グループは不介入正常データセット全体となる。F統計値は、本方法700によってステップ704において、ステップ持続時間への影響を有する重要変数を決定するために、例えばF統計値をしきい値と比較することによって使用される。ステップ705において、本方法700は、現在処理されているクラスタについて、新しい重要変数があるかどうかを決定する。処理の開始時には、ステップ704中に重要であると判定される変数がないという場合を除き、応答は「Yes」となる。
【0034】
ステップ705において、追加の因子変数が残っていないか、それともクラスタについて識別された新しい重要変数がない場合、本方法700はステップ714において、クラスタを処理済みとしてマークし、IQRを四分位範囲、nを1、1.5、2または3などの数として、値n×IQRをクラスタの持続時間しきい値として割り当て、ステップ701に戻る。
【0035】
ステップ705において新しい重要変数がある場合、本方法700は、ステップ706において、現在のクラスタを複数のクラスタにクラスタリングする。各クラスタは、重要変数の値の一意の組合せに対応する。重要変数の値の一意の組合せの総数(Mとする)も、ステップ706中で決定される。複数のM個のクラスタ中のクラスタごとに、本方法700は、ステップ707において、nを変数として、n×四分位範囲(IQR)、(例えば、6×IQR)、およびステップ持続時間がn×IQRより大きいデータ・ポイントのパーセンテージ、P_oとする、を計算する。IQRは、識別されたクラスタ中のステップ持続時間値の集合の第75パーセンタイルと第25パーセンタイルとの間の差として計算される。さらに、複数のクラスタの各々は、それの対応するP_oがプリセットしきい値より小さいかどうかを決定するために検査される必要があるので、これまでに処理されたサブクラスタの数のカウント(subclusterProcessedCntによって与えられる)は維持され、0に初期化される。本方法700は、ステップ707Aにおいて、ステップ706を使用して得られたサブ・クラスタについて、そのステップ持続時間がn×IQR(P_o)より大きいデータ・ポイントのパーセンテージと、プリセットしきい値とを比較する。P_oがプリセットしきい値より小さい場合、本方法700は、ステップ708において、ステップ707において計算されたn×IQRを、クラスタに関連付けられた重要変数の特定の組合せに対する持続時間しきい値として割り当て、クラスタを処理済みとしてマークする。クラスタに関連付けられた重要変数の集合およびそれらの値は、ステップ704の結果に基づいて既知であることに留意されたい。それらの重要変数のリストは各クラスタと共に維持される。ステップ711において、クラスタが処理されたことを示すために、subclusterProcessedCntが1だけインクリメントされる。
【0036】
本方法700は、(ステップ706で生成された)M個のサブクラスタすべてが処理されるまで、ステップ707Aおよびステップ708またはステップ710およびステップ711および712を繰り返す。ステップ712は、ステップ706において本方法700によって生成されたすべてのサブクラスタが処理されたかどうかを確認する。ステップ706を使用して生成された任意のサブクラスタについて、P_oが、ステップ707Aにおいて決定されたようにプリセットしきい値より大きい場合、ステップ710において、そのクラスタは、このクラスタを得るために使用された重要変数と共に、未処理クラスタの一時的なリスト、tmpListに追加される。すべてのそのようなクラスタが集約された集合は、ステップ701において維持されることに留意されたい。このような反復グループ化アプローチの結果は、各々が、重要変数およびそれらの値の集合と、それの計算された持続時間しきい値とをもつクラスタの集合である。
【0037】
図8は、本開示の一実施形態によって、「エラー」および「画像テンプレートの種類」が識別されるチャート800を示す。一実施形態では、図7のステップ704への最初のビジットにおいて決定されたF統計量に基づいて、「符号化されたエラー」および「符号化された画像テンプレート種類」は重要変数であると識別される。F統計量は、ステップ持続時間に影響を有する変数を識別するために使用される。チャート800において、8行のうちの最初の7行は、反復グループ化ステップ706において決定されたクラスタに対応する。クラスタごとに、開示された実施形態はn×IQRを計算し、その値をクラスタの持続時間しきい値として割り当てる。4つの符号化されたエラー値(0、1、2、および3)の各々について、上部のテキストが、符号化されたエラー値によって、符号化されたエラーの状態を与える。具体的には、0および3と符号化されたエラーは、部分的介入データおよび不介入正常データ中に存在し、反復グループ化プロシージャにおいて重要変数であると決定されるものである。このようなエラーをもつプロビジョンには、「遅延した対応」というラベルが割り当てられることになる。1と符号化されたエラーは、不介入正常データ中には存在するが、部分的介入データ中には存在しない。このようなエラーをもつプロビジョンは「対応不要」というラベルが付けられることになる。2と符号化されたエラーは、部分的介入データ中にのみ存在する。このようなエラーをもつプロビジョンには、「即刻対応」というラベルが割り当てられる。チャート800は、n×IQRとして計算される、クラスタごとの持続時間しきい値も示す。チャート800において、ステップ704への最初のビジット中に、重要変数は、「符号化されたエラー」および「符号化された画像テンプレート種類」として識別され、(0,0)、(0,1)、(1,0)、(1,1)(3,0)、(3,1)とするパラメータ値の組合せとなり、これらの組合せの各々の第1の値は「符号化されたエラー」、括弧内の第2の値は「符号化された画像テンプレート種類」である。(3,0)に対応する(符号化されたエラー、encoded_tmplate_type)値について、ステップ707Aにおいて、外れ値のパーセンテージがプリセットしきい値より大きいと決定され、したがって、このクラスタの新しい重要変数(すなわち、符号化されたOS種類)が、ステップ703、704を使用して識別される。このクラスタは、3つの重要変数、すなわち、符号化されたエラーと、encoded_template_typeと、符号化されたOS種類との一意の組合せに基づいてさらにグループに細分化され、第3、4行に示すクラスタになる。また、チャート800において、符号化されたOS種類が重要変数であると決定されなかったクラスタは、対応するセルにNA値を有する。符号化されたOS種類がNAとマークされた具体的な行は、1、2、5、6、および7である。第1のクラスタは、符号化されたエラーおよび符号化された画像テンプレート種類を、0、0の値としたときの組合せに対応する。このクラスタの持続時間のしきい値は123.53である。第2のクラスタは、符号化されたエラーおよび符号化された画像テンプレート種類を、0、1の値としたときの組合せに対応する。このクラスタの持続時間のしきい値は363.5である。第3のクラスタは、符号化されたエラー、符号化された画像テンプレート種類、および符号化されたOS種類を、それぞれ3、0、0の値としたときの組合せに対応する。このクラスタの持続時間のしきい値は200.0である。第4のクラスタは、符号化されたエラー、符号化された画像テンプレート種類、および符号化されたOS種類を、それぞれ3、0、1の値としたときの組合せに対応する。このクラスタの持続時間のしきい値は230.0である。第5のクラスタは、符号化されたエラーおよび符号化された画像テンプレート種類を、3、1の値としたときの組合せに対応する。このクラスタの持続時間のしきい値は185.0である。反復グループ化プロセスで生成された5つのクラスタは、それらのアラームまでの時間を、不介入正常データと部分的介入データの両方に現れ反復グループ化プロシージャにおいて重要変数であると決定されたエラーに関連付けられたすべてのクラスタ中の最大持続時間しきい値である363.5に設定する。これらのクラスタは、部分的介入データと不介入正常データの両方に存在する符号化されたエラー0と3に対応する。この最大しきい値は、部分的介入データと不介入正常データの両方に存在する重要変数であると決定されたエラーに対する遅延した対応カテゴリのアラームまでの時間として設定される。したがって、0または3と符号化されたエラーを有するプロビジョンが最大しきい値よりも長い期間止まった場合、ユーザまたはシステムは、止まったプロビジョンに対処するために介入すべきである。チャート800の最終行は、部分的介入データのみに存在する符号化されたエラー2に対応する。したがって、符号化されたエラー2を有するプロビジョンは、「即刻対応」とラベル付けされることになる。チャート800の最終行は、符号化されたエラー、符号化された画像テンプレート種類、および符号化されたOS種類に対応する空のセルを有するが、これは、このエラー2が不介入データに存在せず、反復グループ化プロセスの一部とみなされなかったからである。上述のように、一実施形態では、エラーの重要変数決定と、部分的介入データおよび不介入正常データのうちの一方または両方における出現とに基づいて、アラームまでの時間を計算することなく、応答ラベルが割り当てられる。その場合、ユーザは、遅延した対応を潜在的に必要としているプロビジョンが未決定であることを警告され得るが、具体的な時間は与えられないことがある。
【0038】
図9は、本開示の一実施形態による、全く別の時間期間からのトレーニングおよびテストのデータの結果を示すチャート900である。チャート900の列902は、STEP1、STEP2、STEP3、およびSTEP4などの様々なプロビジョニング・ステップを列挙している。列904は、列902のそれぞれのプロビジョニング・ステップを含むプロビジョンの数を与える。列906は、真陽性率(すなわち、再現率)のパーセンテージを与える。列908は、陽性予測値(すなわち、精度)のパーセンテージを与える。真陽性率は、真陽性の数および偽陽性の数に関して測定される。プロビジョンは、応答分類が「即刻対応」または「遅延した対応」であることと同様に、人間による介入の証拠があるとき、真陽性である。プロビジョンは、人為的介入の証拠はないが、応答ラベルが「即刻対応」または「遅延した対応」と割り当てられる場合、擬陽性である。同様に、人為的介入の証拠がなく、かつ応答ラベルが「対応不要」と割り当てられている場合、プロビジョンは真陰性である。偽陰性は、プロビジョニングがスタックしたために人為的に介入されたが、割り当てられた応答ラベルが「対応不要」である場合である。チャート900に示すように、開示された実施形態を使用すると、高い精度および高い再現率があり、偽陽性が極めて少ない。したがって、開示された実施形態は、情報介入(knowledge intervention)データによって導かれる、データ・ログを使用して介入応答プロビジョニング・ワークフローを予測するために有効な方法を提供する。
【0039】
図10は、例示的な実施形態の態様が実装され得る本開示の一実施形態によるシステム1000のハードウェア・アーキテクチャを示すブロック図である。例えば、本データ処理システム1000は、図1図2、および図7で説明したプロセスを実行するための命令を記憶し、実行するように構成され得る。示される例では、本データ処理システム1000は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)1006およびサウス・ブリッジおよび入力/出力(I/O)コントローラ・ハブ(SB/ICH)1010を含むハブ・アーキテクチャを採用している。プロセッサ1002、メイン・メモリ1004、およびグラフィックス・プロセッサ1008は、NB/MCH1006に接続される。グラフィック・プロセッサ1008は、アクセラレーテッド・グラフィックス・ポート(AGP(R))を介してNB/MCH1006に接続され得る。バス1032またはバス1034などのコンピュータ・バスは、ファブリックまたはアーキテクチャに取り付けられた異なる構成要素間またはデバイス間のデータの転送を規定する任意の種類の通信ファブリックまたはアーキテクチャを使用して実装され得る。
【0040】
示される例では、ネットワーク・アダプタ1016がSB/ICH1010に接続する。オーディオ・アダプタ1030、キーボードおよびマウスのアダプタ1022、モデム1024、読み取り専用メモリ(ROM)1026、ハード・ディスク・ドライブ(HDD)1012、コンパクト・ディスク読み取り専用メモリ(CD-ROM(R))ドライブ1014、ユニバーサル・シリアル・バス(USB(R))ポートおよび他の通信ポート1018、ならびにペリフェラル・コンポーネント・インターコネクト/ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCI(R)/PCIe(R))デバイス1020が、バス1032およびバス1034を介してSB/ICH1010と接続している。PCI(R)/PCIe(R)デバイスは、例えば、イーサネット(R)・アダプタ、アドイン・カード、およびノートブック・コンピュータ用のパーソナル・コンピューティング(PC)カードなどを含み得る。PCI(R)はカード・バス・コントローラを使用するが、PCIe(R)は使用しない。ROM1026は、例えば、フラッシュの基本入出力システム(BIOS)であり得る。モデム1024またはネットワーク・アダプタ1016は、ネットワーク上でデータを送受信するために使用され得る。
【0041】
HDD1012およびCD-ROM(R)ドライブ1014は、バス1034を介してSB/ICH1010に接続する。HDD1012およびCD-ROM(R)ドライブ1014は、例えば、統合ドライブ・エレクトロニクス(IDE(R))またはシリアル・アドバンスト・テクノロジー・アタッチメント(SATA(R))インターフェースを使用し得る。いくつかの実施形態では、HDD1012は、ソリッド・ステート・ドライブ(SSD)を含むがこれらに限定されない他の形態のデータ・ストレージ・デバイスによって置き換えられ得る。スーパーI/O(SIO)デバイス1028は、SB/ICH1010に接続され得る。SIOデバイス1028は、プリンタ・ポートの制御、ファンの制御、またはデータ処理システム1000の小型発光ダイオード(LEDS)の制御、あるいはその組合せなど、SB/ICH1010に対して要求の少ないコントローラ機能の実行を支援するように構成されたマザーボード上のチップであり得る。
【0042】
本データ処理システム1000は、単一のプロセッサ1002を含んでも、また複数のプロセッサ1002を含んでもよい。さらに、プロセッサ1002は、複数のコアを有し得る。例えば、一実施形態では、本データ処理システム1000は、数百または数千のプロセッサ・コアを含む多数のプロセッサ1002を採用し得る。いくつかの実施形態では、プロセッサ1002は、1組の調整された計算を並行して実行するように構成され得る。
【0043】
オペレーティング・システムは、プロセッサ1002を使用して、本データ処理システム1000上で実行される。オペレーティング・システムは、図10の本データ処理システム1000内の様々な構成要素を調整し、制御を提供する。様々なアプリケーションおよびサービスは、オペレーティング・システムと連動して作動し得る。オペレーティング・システム、アプリケーション、および他のデータのための命令は、1つまたは複数のHDD1012などのストレージ・デバイス上に配置され、プロセッサ1002による実行のためにメイン・メモリ1004にロードされ得る。いくつかの実施形態では、追加の命令またはデータは、1つまたは複数の外部デバイスに記憶され得る。例示的な実施形態について本明細書で説明したプロセスは、プロセッサ1002によって、例えばメイン・メモリ1004、ROM1026などのメモリ中、または1つまたは複数の周辺デバイス中に配置され得るコンピュータ使用可能なプログラム・コードを使用して実行され得る。
【0044】
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、またはコンピュータ・プログラム製品あるいはその組合せであり得る。本コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体を含み得る。
【0045】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持し、記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または前述のものの任意の適切な組合せであり得るが、これらに限定されるものではない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、以下のものが含まれる:携帯用コンピュータ・ディスケット(R)、ハードディスク、ランダムアクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)、静的ランダムアクセス・メモリ(SRAM)、携帯用コンパクト・ディスク読み取り専用メモリ(CD-ROM(R))、デジタル汎用ディスク(DVD(R))、メモリスティック(R)、フロッピーディスク(R)、パンチカードまたはそこに記録された命令を有する溝中の隆起構造などの機械的に符号化されたデバイス、および前述のものの任意の適切な組合せ。本明細書で使用するコンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波管または他の伝送媒体を介して伝播する電磁波(例えば、光ファイバー・ケーブル中を通過する光パルス)、あるいはワイヤを介して伝送される電気信号など、それ自体が過渡信号であると解釈されるものではない。
【0046】
本明細書に記載するコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれのコンピュータ/処理デバイスに、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたは無線ネットワークあるいはその組合せなどのネットワークを介して外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジサーバ、あるいはその組合せを備え得る。各コンピューティング/処理デバイス中のネットワーク・アダプタカードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶させるためにコンピュータ可読プログラム命令を転送する。
【0047】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、あるいはSmalltalk(R)、C++(R)などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードのいずれであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に実行してもよく、ユーザのコンピュータ上で部分的に実行してもよく、スタンドアロン・ソフトウェア・パッケージとして実行してもよく、ユーザのコンピュータ上で部分的に実行すると共にリモート・コンピュータ上で部分的に実行してもよく、またはリモート・コンピュータもしくはサーバ上で完全に実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続され得、あるいはこの接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部のコンピュータになされてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行し、電子回路をパーソナライズし得る。
【0048】
本発明の態様について、本発明の実施形態による方法、機器(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本明細書で説明する。フローチャート図および/またはブロック図の各ブロック、ならびにフローチャート図および/またはブロック図のブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されるであろう。
【0049】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、特殊用途コンピュータ、または他のプログラム可能なデータ処理機器のプロセッサに提供され、コンピュータまたは他のプログラム可能なデータ処理機器のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定された機能/行為を実施する手段を生成するように機械を製造し得る。また、コンピュータ、プログラム可能なデータ処理機器、または他のデバイス、あるいはその組合せに特定の方法で機能するように指示することができるこれらのコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体に記憶されてもよく、その結果、その中に命令を記憶したコンピュータ可読記憶媒体は、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為の態様を実施する命令を含む製造品を含む。
【0050】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理機器、または他のデバイス上にロードされ、コンピュータ、他のプログラム可能な機器、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の中の1つまたは複数のブロックにおいて指定された機能/行為を実施するように、コンピュータ、他のプログラム可能な機器、または他のデバイス上で一連の動作ステップを実行させてコンピュータ実装された方法を生成し得る。
【0051】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性、および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または部分を表し得る。いくつかの代替的な実装では、ブロック中に記された機能は、図に記された順序とは異なる順序で発生し得る。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行されても、それらのブロックが時には関係する機能に応じて逆の順序で実行されてもよい。ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組合せは、指定された機能または行為を実行する、または特別な目的のハードウェアとコンピュータ命令の組合せを実行する特別な目的のハードウェアベースのシステムによって実施され得ることにも留意されたい。
【0052】
本発明の様々な実施形態の説明は、例示の目的で提示されたが、網羅的であることまたは開示された実施形態に限定されることを意図していない。多くの改変および変形が、記載された実施形態の範囲から逸脱することなく、当業者には明らかであろう。さらに、本明細書に記載される方法のステップは、任意の適切な順序で、または適切な場合には同時に実施され得る。本明細書で使用する用語は、実施形態の原理、市場で見出される技術に対する実用化または技術的改良を最もよく説明するために、あるいは当業者が本明細書に開示される実施形態を理解できるように選択されたものである。
【0053】
図10は、例示的な実施形態の態様が実装され得る本開示の一実施形態によるシステム1000のハードウェア・アーキテクチャを示すブロック図である。例えば、データ処理システム1000は、図2および図3に記載されたプロセスを実行するための命令を記憶し実行するように構成され得る。示される例では、本データ処理システム1000は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)1006およびサウス・ブリッジおよび入力/出力(I/O)コントローラ・ハブ(SB/ICH)1010を含むハブ・アーキテクチャを採用している。プロセッサ1002、メイン・メモリ1004、およびグラフィックス・プロセッサ1008は、NB/MCH1006に接続される。グラフィック・プロセッサ1008は、アクセラレーテッド・グラフィックス・ポート(AGP(R))を介してNB/MCH1006に接続され得る。バス1032またはバス1034などのコンピュータ・バスは、ファブリックまたはアーキテクチャに取り付けられた異なる構成要素間またはデバイス間のデータの転送を規定する任意の種類の通信ファブリックまたはアーキテクチャを使用して実装され得る。
【0054】
示される例では、ネットワーク・アダプタ1016がSB/ICH1010に接続する。オーディオ・アダプタ1030、キーボードおよびマウスのアダプタ1022、モデム1024、読み取り専用メモリ(ROM)1026、ハード・ディスク・ドライブ(HDD)1012、コンパクト・ディスク読み取り専用メモリ(CD-ROM(R))ドライブ1014、ユニバーサル・シリアル・バス(USB(R))ポートおよび他の通信ポート1018、ならびにペリフェラル・コンポーネント・インターコネクト/ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCI(R)/PCIe(R))デバイス1020が、バス1032およびバス1034を介してSB/ICH1010と接続している。PCI(R)/PCIe(R)デバイスは、例えば、イーサネット(R)・アダプタ、アドイン・カード、およびノートブック・コンピュータ用のパーソナル・コンピューティング(PC)カードなどを含み得る。PCI(R)はカード・バス・コントローラを使用するが、PCIe(R)は使用しない。ROM1026は、例えば、フラッシュの基本入出力システム(BIOS)であり得る。モデム1024またはネットワーク・アダプタ1016は、ネットワーク上でデータを送受信するために使用され得る。
【0055】
HDD1012およびCD-ROM(R)ドライブ1014は、バス1034を介してSB/ICH1010に接続する。HDD1012およびCD-ROM(R)ドライブ1014は、例えば、統合ドライブ・エレクトロニクス(IDE(R))またはシリアル・アドバンスト・テクノロジー・アタッチメント(SATA)インターフェースを使用し得る。いくつかの実施形態では、HDD1012は、ソリッド・ステート・ドライブ(SSD)を含むがこれらに限定されない他の形態のデータ・ストレージ・デバイスによって置き換えられ得る。スーパーI/O(SIO)デバイス1028は、SB/ICH1010に接続され得る。SIOデバイス1028は、プリンタ・ポートの制御、ファンの制御、またはデータ処理システム1000の小型発光ダイオード(LED)の制御、あるいはその組合せなど、SB/ICH1010に対して要求の少ないコントローラ機能の実行を支援するように構成されたマザーボード上のチップであり得る。
【0056】
本データ処理システム1000は、単一のプロセッサ1002を含んでも、また複数のプロセッサ1002を含んでもよい。さらに、プロセッサ1002は、複数のコアを有し得る。例えば、一実施形態では、本データ処理システム1000は、数百または数千のプロセッサ・コアを含む多数のプロセッサ1002を採用し得る。いくつかの実施形態では、プロセッサ1002は、1組の調整された計算を並行して実行するように構成され得る。
【0057】
オペレーティング・システムは、プロセッサ1002を使用して、本データ処理システム1000上で実行される。オペレーティング・システムは、図10の本データ処理システム1000内の様々な構成要素を調整し、制御を提供する。様々なアプリケーションおよびサービスは、オペレーティング・システムと連動して作動し得る。オペレーティング・システム、アプリケーション、および他のデータのための命令は、1つまたは複数のHDD1012などのストレージ・デバイス上に配置され、プロセッサ1002による実行のためにメイン・メモリ1004にロードされ得る。いくつかの実施形態では、追加の命令またはデータは、1つまたは複数の外部デバイスに記憶され得る。例示的な実施形態について本明細書で説明したプロセスは、プロセッサ1002によって、例えばメイン・メモリ1004、ROM1026などのメモリ中、または1つまたは複数の周辺デバイス中に配置され得るコンピュータ使用可能なプログラム・コードを使用して実行され得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10