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

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

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特表2024-542210機械学習データ妥当性確認を使用するレコメンデーション生成
<>
  • 特表-機械学習データ妥当性確認を使用するレコメンデーション生成 図1
  • 特表-機械学習データ妥当性確認を使用するレコメンデーション生成 図2A
  • 特表-機械学習データ妥当性確認を使用するレコメンデーション生成 図2B
  • 特表-機械学習データ妥当性確認を使用するレコメンデーション生成 図3
  • 特表-機械学習データ妥当性確認を使用するレコメンデーション生成 図4A
  • 特表-機械学習データ妥当性確認を使用するレコメンデーション生成 図4B
  • 特表-機械学習データ妥当性確認を使用するレコメンデーション生成 図5A
  • 特表-機械学習データ妥当性確認を使用するレコメンデーション生成 図5B
  • 特表-機械学習データ妥当性確認を使用するレコメンデーション生成 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-13
(54)【発明の名称】機械学習データ妥当性確認を使用するレコメンデーション生成
(51)【国際特許分類】
   G06F 11/07 20060101AFI20241106BHJP
   G06N 20/00 20190101ALI20241106BHJP
   G06N 3/045 20230101ALI20241106BHJP
【FI】
G06F11/07 193
G06N20/00
G06N3/045
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024529591
(86)(22)【出願日】2022-08-19
(85)【翻訳文提出日】2024-07-10
(86)【国際出願番号】 US2022040855
(87)【国際公開番号】W WO2023091204
(87)【国際公開日】2023-05-25
(31)【優先権主張番号】17/455,536
(32)【優先日】2021-11-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
2.JAVA
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ローケンパー,ジェイムズ・チャールズ
(72)【発明者】
【氏名】バクラフスキー,ケネス・ポール
(72)【発明者】
【氏名】ガウリック,ディーター
(72)【発明者】
【氏名】グロス,ケニー・シィ
(72)【発明者】
【氏名】ワン,グアン・チャオ
(72)【発明者】
【氏名】チスティアコバ,アンナ
(72)【発明者】
【氏名】ソンデレッガー,リチャード・ポール
(72)【発明者】
【氏名】リウ,ジェン・フア
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042JJ30
(57)【要約】
監視されるシステムにおける問題点を修復するためのレコメンデーションを生成するために、機械学習モデルによって妥当性を確認されたセンサデータを使用するための技術が開示される。機械学習モデルは、監視されるシステムのためのセンサ間の相関を識別するように訓練される。現在のセンサデータを受け取ると、機械学習モデルは、妥当性を確認され得ない現在のセンサデータのサブセットを識別する。システムは、センサ値間の学習された相関に基づいて、妥当性を確認され得ないセンサデータについての推定された値を生成する。システムは、妥当性を確認されたセンサ値、および、推定されたセンサ値に基づいて、監視されるシステムにおける問題点を修復するためのレコメンデーションを生成する。
【特許請求の範囲】
【請求項1】
命令を含む非一時的コンピュータ可読媒体であって、前記命令は、1つまたは複数のハードウェアプロセッサによって実行されると動作を実行させ、前記動作は、
複数のデータソースから取得された履歴センサデータに基づいて、第1の機械学習モデルを訓練することと、
前記第1の訓練された機械学習モデルを、複数のデータソースによって検出された現在のセンサデータに適用することを、前記履歴センサデータに対応するデータ関係性に基づいて、妥当性を確認され得ない前記現在のセンサデータの特定のサブセットを識別するために行うことと、
妥当性を確認され得ない前記現在のセンサデータの前記特定のサブセットに対して代用するための、推定されたセンサデータを生成するために、第2の訓練された機械学習モデルを適用することと、
異常なイベントを修復するためのタスクリストを生成するために、前記現在のセンサデータの前記特定のサブセットに対して代用された前記推定されたセンサデータを伴う、前記現在のセンサデータを分析することとを含む、非一時的コンピュータ可読媒体。
【請求項2】
前記タスクリストは、特定のタスクについて、(a)前記特定のタスクを実行すべきエンティティ、(b)実行されるべきアクション、および、(c)前記アクションが実行されるべきである、監視されるシステムの構成要素を指定する、請求項1に記載の非一時的コンピュータ可読媒体。
【請求項3】
前記タスクリストは、2つ以上のタスクの順序付けされたシーケンスを含む、請求項1に記載の非一時的コンピュータ可読媒体。
【請求項4】
前記2つ以上のタスクの中の少なくとも1つの第1のタスクは、第1のエンティティによって実行されるべきタスクであり、
前記2つ以上のタスクの中の少なくとも1つの第2のタスクは、前記第1のエンティティとは異なる、第2のエンティティによって実行されるべきタスクである、請求項3に記載の非一時的コンピュータ可読媒体。
【請求項5】
前記2つ以上のタスクは、前記2つ以上のタスクの中の1つのタスクの、前記2つ以上のタスクの中の別のタスクへの依存関係をさらに指定し、
前記2つ以上のタスクの中の少なくとも1つのタスクは、前記2つ以上のタスクの中の別のタスクへの依存関係を含み、
前記2つ以上のタスクは、前記依存関係に応じたシーケンスで配置される、請求項3に記載の非一時的コンピュータ可読媒体。
【請求項6】
前記2つ以上のタスクの中の少なくとも1つの第1のタスクは、人間によって実行されるべきタスクであり、
前記2つ以上のタスクの中の少なくとも1つの第2のタスクは、人間の介入なしに、コンピュータによって実行されるべきタスクであり、
前記命令は、
前記少なくとも1つの第2のタスクの完了を検出することに応答して、前記少なくとも1つの第2のタスクの前記完了と関連付けられた人間可読通知を生成することを含む動作をさらに実行させる、請求項3に記載の非一時的コンピュータ可読媒体。
【請求項7】
前記動作は、
前記現在のセンサデータの前記特定のサブセットに対して代用された前記推定されたセンサデータを伴う、前記現在のセンサデータに基づいて、前記異常なイベントを識別することをさらに含む、請求項1に記載の非一時的コンピュータ可読媒体。
【請求項8】
前記第1の訓練された機械学習モデル、および、前記第2の訓練された機械学習モデルは、同じ機械学習モデルに対応する、請求項1に記載の非一時的コンピュータ可読媒体。
【請求項9】
前記同じ機械学習モデルは、多変量状態推定技術(MSET)モデルである、請求項7に記載の非一時的コンピュータ可読媒体。
【請求項10】
前記動作は、
前記履歴センサデータから訓練データセットを取得することと、
前記訓練データセットに基づいて、前記複数のデータソース間の相関を識別するように、第2の機械学習モデルを訓練することとをさらに含み、
妥当性を確認され得ない前記現在のセンサデータの前記特定のサブセットに対して代用するための、推定されたセンサデータを生成するために、前記第2の訓練された機械学習モデルを適用することは、
前記第2の訓練された機械学習モデルが、前記現在のセンサデータの前記特定のサブセットと、妥当性を確認される前記現在のセンサデータの別のサブセットとの間の前記相関を識別することと、
前記相関に基づいて、前記推定されたセンサデータを生成することとを含む、請求項1に記載の非一時的コンピュータ可読媒体。
【請求項11】
前記異常なイベントを修復するための前記タスクリストは、前記異常なイベントの根本原因を修復するためのタスクを含む、請求項1に記載の非一時的コンピュータ可読媒体。
【請求項12】
前記動作は、
前記根本原因と関連付けられた2つ以上のタスクを修正するための入力を受け取ることに応答して、
前記2つ以上のタスクに新しいタスクを追加すること、および、
前記2つ以上のタスクの中から少なくとも1つのタスクを除去すること
のうちの1つまたは両方を実行することによって、前記2つ以上のタスクを修正することと、
前記2つ以上のタスクを修正することに基づいて、前記タスクリストを再生成することとをさらに含む、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項13】
前記タスクリストを生成することは、
前記根本原因に基づいて、少なくとも1つのクエリを生成することと、
前記少なくとも1つのクエリと関連付けられたクエリ条件を満足させる2つ以上のタスクを識別するために、記憶されているタスクテンプレートのセットをクエリすることとを含む、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項14】
命令を含む非一時的コンピュータ可読媒体であって、前記命令は、1つまたは複数のハードウェアプロセッサによって実行されると動作を実行させ、前記動作は、
複数のセンサから取得された履歴センサデータに基づいて、機械学習モデルを訓練することと、
前記訓練された前記機械学習モデルを、複数のセンサによって検出された現在のセンサデータに適用することを、前記履歴センサデータに対応するデータ関係性に基づいて、妥当性を確認され得ない前記現在のセンサデータの特定のサブセットを識別するために行うことと、
妥当性を確認されたセンサデータを含む現在のセンサデータのフィルタリングされたセットを取得するために、妥当性を確認され得ない前記現在のセンサデータの前記特定のサブセットをフィルタリング除去することと、
修復されるべき問題点を識別するために、前記現在のセンサデータの前記特定のサブセットを含まない、前記現在のセンサデータの前記フィルタリングされたセットに関する分析を実行することと、
前記現在のセンサデータの前記フィルタリングされたセットに基づいて識別された前記問題点を修復するためのレコメンデーションを生成することとを含む、非一時的コンピュータ可読媒体。
【請求項15】
前記命令は、
前記現在のセンサデータの前記特定のサブセットに代えて、前記分析において使用するための、前記現在のセンサデータの第2のサブセットを推定することを含む動作をさらに実行させ、前記推定することは、前記履歴センサデータに対応する前記データ関係性に基づいており、
前記分析は、修復されるべき前記問題点を識別するために、前記現在のセンサデータの前記フィルタリングされたセットに加えて、前記現在のセンサデータの推定された前記第2のサブセットに関してさらに実行される、請求項14に記載の非一時的コンピュータ可読媒体。
【請求項16】
前記問題点を修復するためのレコメンデーションを生成することは、
前記問題点を修復するための、順番に実行されるべき複数のタスクを含むタスクリストを生成することを含む、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記タスクリストを生成することは、
前記タスクリストを生成するために必要なパラメータのセットを識別することを含み、前記パラメータのセットは、現在のセンサデータの前記フィルタリングされたセットからの少なくとも1つの値と、前記現在のセンサデータの前記推定された第2のサブセットからの少なくとも1つの値とを含む、請求項16に記載の非一時的コンピュータ可読媒体。
【請求項18】
請求項1~請求項17のいずれかに記載の動作を含む方法。
【請求項19】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されると、請求項1~請求項17のいずれかに記載の動作を前記システムに実行させる、命令を記憶するメモリとを含む、システム。
【請求項20】
請求項1~請求項17のいずれかに記載の動作を実行するための手段を含むシステム。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組み込み、ディスクレーマ
後に続く出願、すなわち、2021年11月18日に出願された出願第17/455,536号が、ここに、参照によって組み込まれている。本出願人は、ここに、親出願またはその出願経過における請求範囲のいかなるディスクレーマも取り消し、USPTOに、本出願における請求項は親出願におけるいかなる請求項よりも広範であり得るということを通知する。
【0002】
技術分野
本開示は、機械学習モデルを、生成されたセンサデータに適用することを、センサデータのフィルタリングされたデータセットを使用して、検出された問題点を修復するためのレコメンデーションを生成するために行うことに関係する。特に、本開示は、問題点を修復するためのレコメンデーションを生成するために、機械学習によって妥当性を確認されたセンサ値、および、推定されたセンサ値を使用することに関係する。
【背景技術】
【0003】
背景
異常が、監視されるシステムにおいて生起するとき、異常は、監視される構成要素における障害、または、監視を実行しているセンサにおける障害の結果であり得る。不良修復システムが、不良のセンサの結果である検出された異常に基づいて、修復アクションを開始する場合、修復アクションは、システムにおける実際の不良に対処することに失敗し得る。最悪の事例のシナリオにおいて、修復アクションは、不良を悪化させ、システム障害につながることがある。
【0004】
組織は、コンピュータ結果を検証し、コンピュータが実行し得ないアクションを実行するために、コンピュータベースの監視および修復システムの人間の監視を利用し得る。例えば、1つの環境において、修復アクションは、人間が、弁、レバー、もしくはスイッチなどの物体を身体的に操作する、または、構成要素を身体的に注視するということを要し得る。別の環境において、組織は、コンピュータが生成したデータの人間確認を要し得る。例えば、センサは、構成要素がとある温度にあるということを指示し得る。組織は、温度読み取り値を確認するために、人間が生成した温度測定値を要し得る。人間は、さらには、センサによる不良の温度読み取り値を結果的に生じさせることがある、何らかの物理的欠陥が存在するかどうかを判定し得る。自動運転車両、または、コンピュータが監視するデータセンタなどの、別の環境において、監視機能および修復機能の両方が、人間の介入なしにコンピュータによって実行される能力をもつことがある。人間は、コンピュータ不良のまれなイベントにおいて要されることがある。しかしながら、人間が、通常の注視および修復プロセスの一部でない場合、人間の注意力が散漫になり、人間は、コンピュータの実行を効果的に監視しないことがある。よって、組織は、コンピュータが人間の介入なしに監視および修復タスクを実行することができる場合でも、ある監視および修復タスクが人間によって実行されることを要求する場合がある。
【0005】
本節において説明される手法は、探究され得た手法であるが、必ずしも、以前に着想または探究された手法ではない。それゆえに、別段に指示されない限り、本節において説明される手法のいずれも、ただ単に本節におけるそれらの手法の含みによって、従来技術として認定されると決め込むべきではない。
【0006】
実施形態は、付随する図面の図において、制限としてではなく例として例示される。本開示における「一」または「1つの」実施形態への言及は、必ずしも同じ実施形態へのものではなく、それらの言及は、少なくとも1つを意味するということが留意されるべきである。図面においては、次の通りである。
【図面の簡単な説明】
【0007】
図1】1つまたは複数の実施形態によるシステムを例示する図である。
図2A】1つまたは複数の実施形態による、機械学習によって妥当性を確認されたデータに基づいてタスクリストを生成するための動作の例セットを例示する図である。
図2B】1つまたは複数の実施形態による、機械学習によって妥当性を確認されたデータに基づいてタスクリストを生成するための動作の例セットを例示する図である。
図3】1つまたは複数の実施形態による、タスクのセットの例を例示する図である。
図4A】1つまたは複数の実施形態による、機械学習モデルを訓練することの例を例示する図である。
図4B】1つまたは複数の実施形態による、機械学習モデルを訓練することの別の例を例示する図である。
図5A】機械学習によって妥当性を確認されたデータに基づいてタスクリストを生成することの例実施形態を例示する図である。
図5B】機械学習によって妥当性を確認されたデータに基づいてタスクリストを生成することの例実施形態を例示する図である。
図6】1つまたは複数の実施形態によるコンピュータシステムを例示するブロック線図を示す図である。
【発明を実施するための形態】
【0008】
詳細な説明
後に続く説明において、解説の目的のために、数多くの具体的な詳細が、徹底した理解をもたらすために論述される。1つまたは複数の実施形態は、これらの具体的な詳細なしに実践されることがある。1つの実施形態において説明される特徴は、異なる実施形態において説明される特徴と組み合わされることがある。いくつかの例において、よく知られている構造およびデバイスは、本発明を不必要に不明瞭にすることを回避するために、ブロック線図形式を参照して説明される。
【0009】
1.全体的な概観
2.システムアーキテクチャ
3.機械学習に基づいてシステム異常を修復すること
4.機械学習モデルを訓練すること
5.例実施形態
6.コンピュータネットワークおよびクラウドネットワーク
7.雑則、拡張
8.ハードウェア概観
1.全体的な概観
1つまたは複数の実施形態は、フィルタリングされたセンサデータを生成するために、履歴センサデータに基づいて、妥当性を確認され得ない現在のセンサデータのサブセットを除去する。任意選択で、システムは、センサデータの除去されたサブセットに代えて、推定されたセンサデータを生成し、フィルタリングされたセンサデータに追加し得る。システムは、異常なイベントを識別する、および/または、異常なイベントを修復するためのタスクリストを生成するために、フィルタリングされたセンサデータを分析する。
【0010】
1つまたは複数の実施形態は、センサデータの標的セットの妥当性を確認するように、履歴センサデータに基づいて、機械学習モデルを訓練する。システムは、センサ間の相関を学習するように、履歴センサデータのセットを使用して、機械学習モデルを訓練する。現在のセンサデータを受け取ると、機械学習モデルは、妥当性を確認され得ない、センサからのセンサデータのサブセットを識別する。例えば、センサは、不良状態にあり、データを送信していないことがある。別のセンサは、ドリフトしていることがあり、そのことによって、そのセンサはデータを送信するが、データは不正確である。システムは、妥当性を確認され得ないセンサについての値を推定するために、センサ間の学習された相関を使用する。システムは、妥当性を確認されたセンサデータと、妥当性を確認され得なかったセンサデータについての推定されたセンサ値とを含む、フィルタリングされたデータセットを使用して、監視されるシステムにおける不良を修復するためのレコメンデーションを生成する。
【0011】
1つまたは複数の実施形態は、推定されたセンサデータを生成するように、履歴センサデータに基づいて、機械学習モデルを訓練する。システムは、センサ間の相関を学習するように、履歴センサデータのセットを使用して、機械学習モデルを訓練する。現在のセンサデータを受け取ると、機械学習モデルは、センサ値についての値を、残りのセンサ値の値との相関に基づいて予測する。機械学習モデルは、センサについての予測された値に基づいて、推定されたセンサデータを生成する。
【0012】
センサベースの監視システムは、機械学習ベースおよび人間ベースのうちの1つまたは両方の、センサ妥当性確認および不良修復を含む。機械学習モデルは、システムを監視するセンサのセンサデータ値間の相関を識別するように訓練される。
【0013】
センサベースの監視システムは、1つまたは複数の検出された不良を修復するためのタスクリストを生成し得る。システムは、妥当性を確認されたセンサデータと、推定されたセンサ値とを含む、フィルタリングされたデータセットに基づいて、タスクリストについてのタスクを選択する。タスクリストは、コンピュータが実行するタスクと、人間が実行するタスクとを含み得る。タスクは、タスクを実行すべきエンティティ、タスクが実行されるべきであるシステム構成要素、実行または遂行されるべきアクション、タスクの、任意の他のタスクへの何らかの依存関係、および、タスクを実行するために要される何らかのパラメータを指定する。パラメータは、妥当性を確認されたセンサデータを含む。例えば、システムは、センサが第1の温度測定値を生成する場合に実行されるべき1つのタスク、および、センサが第2の温度測定値を生成する場合に実行されるべき別のタスクを選択し得る。システムは、選択されたタスクにおいて、生成された温度測定値としてのパラメータを指定する。システムが、要されるセンサ値が欠けている場合などで、タスクについてのパラメータの妥当性を確認し得ない場合、システムは、欠けているセンサ値と、1つまたは複数の妥当性を確認されたセンサ値との相関に基づいて、機械学習モデルによって生成された、推定されたセンサ値をパラメータに入力する。
【0014】
1つの実施形態において、機械学習モデルは、決定論的機械学習モデルである。例えば、機械学習モデルは、多変量状態推定技術(MSET)モデルであり得る。MSETモデルは、センサについての非異常な値の範囲を表すセンサ値のセットを使用して訓練される。MSETモデルは、センサ値間の相関を識別する。動作において、MSETモデルは、現在のセンサ値を取得し、現在のセンサ値を、予測されたセンサ値と比較し、センサ値間の異常を識別する。加えて、MSETモデルは、センサ値間の識別された相関に基づいて、異常なセンサ値が、不良のセンサ、または、監視される構成要素における不良の結果であるかを判定する。MSETモデルは、非異常なセンサ値と、推定されたセンサ値とを含む、フィルタリングされたデータセットを使用して、センサデータにおける検出された異常の原因である根本原因または状況を識別する。MSETモデルは、非異常なセンサ値と、推定されたセンサ値とを含む、フィルタリングされたデータセットを使用して、検出された異常の原因である根本原因または状況を修復するためのタスクリストにおける1つまたは複数のタスクについてのタスクパラメータをさらにインスタンス化する。
【0015】
1つまたは複数の実施形態において、システムは、タスクリストにおけるタスクを修正するための入力を受信する。例えば、システムは、(a)特定の根本原因もしくは状況と関連付けられたタスクリストからのタスクを追加もしくは除去する、(b)タスクリストにおけるタスクと関連付けられたパラメータを追加もしくは除去する、または、(3)タスクを実行すべきエンティティなどの、タスクと関連付けられた1つもしくは複数の属性を修正するための入力を受信し得る。
【0016】
1つの実施形態において、システムは、記憶されているタスクテンプレートのセットの中から、2つ以上のタスクテンプレートを選択することによってタスクリストを生成する。システムは、監視されるシステムにおける1つまたは複数の検出された異常の根底にある、識別された根本原因または状況に基づいて、記憶されているタスクテンプレートのセットをクエリする。システムは、識別された根本原因または状況と関連付けられた特定のデータをクエリテンプレートに入力する。例えば、クエリは、識別された状況と関連付けられた特定のタスクテンプレートを返し得る。システムは、タスクテンプレートにおけるエンティティ記述と合致する特定のエンティティ、タスクテンプレートにおける構成要素記述と合致する特定の構成要素、および、タスクテンプレートにおけるパラメータ記述と合致するセンサ値をさらに識別する。
【0017】
システムは、規則のセットによってタスクリストにおいてタスクを配置構成する。規則のセットは、タスクの相対的優先度、および、1つのタスクの、別のものへの依存関係を指定し得る。例えば、一連の3つのタスクを、あらかじめ決定された期間内に連続して順番に実行する必要がある場合がある。別の例によれば、タスクは、2つの別々のエンティティによって同時的に実行されなければならない2つのアクションを指定し得る。タスクは、1つのタスクが別のものよりも前に開始されてもよいかどうか、および、1つのタスクが別のものよりも前に完了されてもよいかどうかを指定し得る。タスクリストにおける1つのタスクは、最も高い優先度を与えられることがあり、そのことは、そのタスクが、いかなる他のタスクよりも前に実行されなければならないということを指示する。例えば、構成要素における電圧を検出するためのプロセスを乗り切るように人間を導くタスクリストは、構成要素を電力源から切り離すためのタスクによって始まることがある。2番目に高い優先度のタスクは、さらには、第1のタスクに依存することがあり、構成要素上で測定値をとるためのタスクのシーケンスを開始するよりも前に、構成要素において蓄積されている電力を消耗させるように人間に指図し得る。
【0018】
1つの実施形態において、システムは、1つまたは複数のセンサ値が、妥当性を確認されないことがある、およびさらには、推定されないことがあると判定し得る。よって、システムは、特定のデータが、タスクリストを生成するために要されるということ、ただし、データは入手不可能であるということを指示する、人間が読める説明を生成し得る。システムは、関係付けられたタスクリストを開始するための入力を受信し得る。代わりに、ユーザは、システムがタスクリストを生成することを可能とするために、グラフィカルユーザインターフェース(GUI)を介して手動で、要されるデータを提供し得る。
【0019】
1つの実施形態において、システムは、タスクが完了されるかどうかを追跡する。システムは、一連のタスクを表す視覚的要素を含むユーザインターフェースを生成し得る。システムが、完了されたタスクを検出する際、システムは、タスクが完了されたということを指示するために、GUIの視覚的要素を修正し得る。システムは、コンピュータが実行するタスク、および、人間が実行するタスクの両方の完了を検出し得る。代わりに、システムは、人間が実行するタスクが完了されたときを指示するための、人間が生成した入力を受信し得る。1つまたは複数の実施形態において、システムは、1つまたは複数のタスクの実行中に取得されたデータに基づいて、タスクリストを更新または修正し得る。例えば、初期タスクリストは、システム構成要素を取り替えるための一連のタスクを含み得る。システムは、中間タスクにおいて、サブ構成要素が、安全な動作範囲外の値を有するということを指示する、人間が生成した測定値を検出し得る。システムは、初期タスクリストの実行を中止するための通知を生成し得る。システムは、さらには、サブ構成要素への電力を遮断するための新しいタスクリストを生成し得る。新しいタスクリストは、初期タスクリストに取って代わることがある。代わりに、新しいタスクリストは、初期タスクリストに追加されることがある。
【0020】
本明細書において説明される、および/または、特許請求の範囲において詳述される、1つまたは複数の実施形態は、この全体的な概観の節に含まれないことがある。
【0021】
2.システムアーキテクチャ
図1は、1つまたは複数の実施形態によるシステム100を例示する。図1において例示されるように、システム100は、監視されるシステム102と、システム監視装置110とを含む。監視されるシステム102は、任意の数の構成要素を有する任意のタイプのシステムを含み得る。監視されるシステムの例は、乗物、データセンタ、コンピュータネットワーク、製造施設、医療施設、および発電施設を含む。監視されるシステム102は、構造的構成要素、運動構成要素、発電構成要素、計算構成要素、およびデータストレージ構成要素を含む、任意の数およびタイプの構成要素を含み得る。監視されるシステム102の構成要素は、センサ103によって監視される。センサは、物理センサ、および、コンピューティング要素を監視するソフトウェアを含む。例えば、物理運動要素は、温度センサおよび圧電センサによって監視され得る。データ処理構成要素は、温度センサ、ならびに、データ処理構成要素への、および、データ処理構成要素からのデータトラフィックを追跡するアプリケーションによって監視され得る。医療デバイスは、位置センサによって監視され得る。乗物は、全地球測位システム(GPS)センサ、高度計、および速度計によって監視され得る。1つまたは複数の実施形態において、センサ103は、数十、数百、または数千のセンサを含む。例えば、センサの数およびタイプは、機械学習モデルが、同じシステム構成要素を監視する異なるセンサ間の相関を識別できるように、十分であり得る。
【0022】
システム監視装置110は、センサ分析機械学習モデルエンジン111を含む。センサ分析機械学習モデルエンジン111は、1つまたは複数の機械学習モデルを、監視されるシステム102を監視するセンサ103から取得されたセンサデータに適用する。機械学習モデルは、ニューラルネットワークなどの確率論的タイプ機械学習モデルであり得る。代わりに、機械学習モデルは、多変量状態推定技術(MSET)モデルなどの決定論的タイプ機械学習モデルであり得る。確率論的タイプ機械学習モデルは、予測を生成するための確率的方法を適用する。対照的に、決定論的タイプ機械学習モデルは、入力値の所与のセットについて、出力値の同じセットを返すことになる、数学的構造を実現する。
【0023】
センサ分析機械学習エンジン111は、データリポジトリ116において記憶されている履歴センサデータ117を使用して、機械学習モデルを訓練する。センサ分析機械学習エンジン111は、センサ値間の相関を識別するように、機械学習モデルを訓練する。1つの実施形態において、訓練された機械学習モデルは、現在のセンサデータを受け取り、妥当性を確認されたセンサ値のセットを生成する。妥当性を確認されたセンサ値は、あらかじめ規定された判断基準を満たすセンサ値に対応し得る。例えば、妥当性を確認されたセンサ値は、センサについての予測された値の範囲内に該当し得る。訓練された機械学習モデルは、さらには、妥当性を確認され得ないセンサ値のセットを識別し得る。妥当性を確認され得ないセンサ値は、特定のセンサについての値の予測された範囲外にある値を含み得る。代わりに、妥当性を確認され得ないセンサ値。
【0024】
機械学習モデルがMSETモデルなどの決定論的モデルである、一実施形態において、機械学習モデルは、各センサ値について、現在のセンサ値と、センサについての予測された値との間の差を表すデルタ値を生成し得る。MSETモデルは、(a)センサ値が、特定のセンサについての非異常な値の範囲外にある場合、または、(b)センサ値が、あらかじめ決定されたしきい値を超えて、予測された値から変動する場合、センサ値における異常を示し得る。例えば、MSETモデルは、3つのセンサの値同士の間の相関を識別し得る。MSETモデルは、センサのうちの2つの値に基づいて、第3のセンサが特定の値を有するべきであると判定し得る。MSETモデルは、第3のセンサについての現在の値が、あらかじめ規定されたしきい値を超えて、特定の値から変動する場合、異常を検出し得る。加えて、MSETモデルは、第3のセンサが、非異常な動作値のあらかじめ規定された範囲を有すると判定し得る。MSETモデルは、第3のセンサについての現在のセンサ値が、非異常な動作値のあらかじめ規定された範囲外にある場合、異常を検出し得る。
【0025】
イベント検出エンジン112は、トリガリングイベントがシステムにおいて発生したかどうかを検出する。トリガリングイベントは、センサ103の現在の値に基づいて検出されたイベントであり得る。代わりに、トリガリングイベントは、監視されるシステム102と関連付けられたタスクのシーケンスを開始することを意図された、手動でトリガされたイベントであり得る。イベント検出エンジン112は、センサ値における異常が、監視されるシステム102におけるセンサベースのトリガリングイベントに対応するかどうかを判定するために、機械学習モデルおよびセンサ103のうちの1つまたは両方からの出力を監視する。例えば、異常なセンサ値の1つの組み合わせが、過熱タイプトリガリングイベントに対応し得る。別の組み合わせは、電力障害タイプトリガリングイベントに対応し得る。さらに別の組み合わせは、データ通信障害タイプトリガリングイベントに対応し得る。
【0026】
原因分析エンジン113は、トリガリングイベントの根本原因を識別するために、機械学習モデルおよびセンサ103のうちの1つまたは両方からの出力を分析する。例えば、イベント検出エンジン112が、過熱構成要素と関連付けられたセンサデータを検出する場合、原因分析エンジン113は、過熱イベントの原因として、構成要素における、障害を起こす電力アダプタを識別するために、センサデータ、および、構成要素を記述するメタデータを分析し得る。原因分析エンジン113は、例えば、構成要素のタイプ、および、構成要素の仕様を識別するために、構成要素を記述するメタデータを分析し得る。別の例によれば、イベント検出エンジン112が、データ通信障害イベントを検出する場合、原因分析エンジン113は、ルータが、非異常なデータレイテンシレートを上回るデータレイテンシレートの原因となっていると判定するために、通信障害と関連付けられた構成要素のセットからのセンサデータを分析し得る。原因分析エンジン113が、トリガリングイベントは手動でトリガされたイベントであったと判定する場合、原因分析エンジン113は、手動でトリガされたイベントと関連付けられた理由を識別し得る。例えば、ユーザは、センサ103によって検出され得ない緊急事態に基づいて、施設の電力遮断を開始するために、ユーザインターフェース120と対話し得る。原因分析エンジン113は、イベントの根本原因が、手動で開始された電力遮断であると判定する。
【0027】
タスクリスト生成エンジン114は、トリガリングイベントの識別された根本原因を修復するためのタスクリストを生成する。タスクリスト生成エンジン114は、識別された根本原因と関連付けられたタスクテンプレート118を識別するために、データリポジトリ116において記憶されている、タスクテンプレート118の本体をクエリする。図3は、1つの実施形態による、タスクテンプレート301および307の例を例示する。タスクリスト生成エンジン114は、(1)イベントの識別された根本原因、(2)センサ分析機械学習モデルからの出力、および、(3)センサ103からの出力のうちの1つまたは複数に基づいて、特定の根本原因と関連付けられたタスクのセットを選択し得る。例えば、タスクリスト生成エンジン114は、後に続く条件、すなわち、(a)しきい値を上回る電力レベル、(b)特定の電力アダプタにおける、(c)特定の構成要素に電力を提供すること、および、(d)特定の供給部から電力を受け取ること、を有するクエリのセットを生成し得る。クエリのセットは、指定された条件に関して実行されるように選定された、タスクの対応するセットを返し得る。1つの実施形態において、タスクのセットは、タスクリスト119として記憶されている。例えば、同じ根本原因が以前に発生したことがある場合、タスクの以前に生成されたセットが、タスクリスト119として記憶され得る。加えて、ユーザが、特定の根本原因と関連付けられたタスクのセットを修正する場合、当該修正は、タスクリスト119において記憶され得る。
【0028】
タスクリスト生成エンジン114は、監視されるシステム102と関連付けられた特定の情報に基づいて、タスクテンプレート118にデータを入力する。図3を参照すると、タスク301は、システム構成要素302、実行されるべきアクション303、アクション304を実行すべきエンティティ、タスクの、他のタスクとの関係性305、ならびに、測定されたセンサ値およびセンサ分析機械学習モデルからの出力のうちの1つまたは両方に対応するパラメータ値306についてのフィールドを含む。タスクリスト生成エンジン114は、エンティティによって作用されるべきである、監視されるシステム102における構成要素を、システム構成要素フィールド302に入力する。例えば、過熱電力アダプタと関連付けられたタスクのセットは、システム構成要素302として電力供給部を指定し、実行されるべきアクション303として電力スイッチを反転させることを指定し、アクション304を実行すべきエンティティとして特定のオペレータを指定するタスクを含み得る。タスクリスト生成エンジン114は、作用されるべき構成要素の記述を、「システム構成要素」フィールド302に入力し得る。例えば、タスクリスト生成エンジン114は、データ「サーバラックの下側右において場所を定められた電力供給部M103」を、「システム構成要素」フィールド302に入力するために、電力供給部を含むラック、および電力アダプタの仕様を参照し得る。
【0029】
タスクリスト生成エンジン114は、アクションについて責任をもつ特定の個人の名前または役割を、「アクションを実行すべきエンティティ」フィールド304に入力し得る。例えば、タスクリスト生成エンジン114は、過熱電力アダプタを点検修理することについて責任をもつ技師として「D. Scott」を識別するために、組織役割テーブルにアクセスし得る。タスクリスト生成エンジン114は、名前「D. Scott」によって、または、肩書き「技師」を、「アクションを実行すべきエンティティ」フィールド304に入力し得る。1つまたは複数の実施形態において、タスクリストにおけるいくつかのタスクは、人間オペレータによって実行されることがあり、他のタスクは、人間の介入なしにコンピュータによって実行されることがある。例えば、タスクテンプレート301は、ユーザがタスクリストにおける先行するタスクを実行することに引き続いて、データ分析タスクを実行するとして、コンピュータ「COMP-1」を識別し得る。
【0030】
タスクテンプレート301は、各タスクの、他のタスクとの関係性305をさらに識別する。例えば、タスクテンプレート301は、現在のタスクが、いかなる介在タスクもなしに、タスクAのすぐ後に実行されなければならないということを指示し得る。タスクテンプレート301は、現在のタスクはタスクCよりも前に実行されなければならないということ、ただし、1つまたは複数のタスクが現在のタスクとタスクCとの間に介在し得るということをさらに指定し得る。タスクテンプレート301は、特定のテンプレートが属するタスクのチェーンまたはファミリをさらに識別し得る。
【0031】
図3において例示されるように、タスクテンプレート307は、同時的に実行されるべき2つ以上のアクション308および309を必然的に含み得る複合タスクを指定し得る。タスクテンプレート307は、2つ以上のアクション308および309は1つまたは複数のエンティティによって実行されるということをさらに指定し得る。例えば、複合タスクテンプレート307は、1つのボタンの押下、および、1つのボタンが押下されている間に、第2のボタンを押下することを指定し得る。複合タスクテンプレート307は、1人のオペレータによる1つのシステム構成要素上のボタンの押下、および、1つのボタンが押下されている間における、別のシステム構成要素上での別のオペレータによる測定を指定し得る。
【0032】
タスクテンプレート301は、タスクを実行するために必要とされるパラメータ306のセットを指定する。例えば、タスクテンプレート301は、温度センサ値が第1の範囲内にある場合、エンティティは第1のアクションを実行すべきであるということを指定し得る。タスクテンプレート301は、温度センサ値が第2の範囲内にある場合、エンティティは第2のアクションを実行すべきであるということをさらに指定し得る。実行されるアクションは、センサ103からの出力およびセンサ分析機械学習モデルからの出力のうちの1つまたは両方に対応するパラメータ306に依存し得る。パラメータ306は、センサ103からの直接的な測定値、および、測定値から導出された値であり得る。例えば、データシステムモニタが、構成要素と関連付けられたデータフローのレイテンシを測定し得る。パラメータ306は、測定されたレイテンシに基づく平均パケット遅延の尺度となることがある。
【0033】
1つの実施形態において、タスクリスト生成エンジン114は、タスクテンプレート301のパラメータフィールド306に入力するための、妥当性を確認されたセンサデータが実在するかどうかを判定する。例えば、妥当性を確認されたセンサデータは、センサについての非異常な値の範囲内にあると判定されたセンサデータを含み得る。妥当性を確認されたセンサデータが実在する場合、タスクリスト生成エンジン114は、妥当性を確認されたセンサデータをパラメータフィールド306に入力する。タスクリスト生成エンジン114が、妥当性を確認されたセンサデータは特定のパラメータについて実在しないと判定する場合、タスクリスト生成エンジン114は、推定されたセンサデータが特定のパラメータについて実在するかどうかを判定し得る。例えば、センサ分析機械学習モデルは、妥当性を確認され得ない値を有するセンサと、他のセンサとの間の学習された対応関係に基づいて、妥当性を確認され得ないセンサ値を推定し得る。推定されたセンサ値がパラメータについて実在する場合、タスクリスト生成エンジン114は、推定されたセンサ値をパラメータフィールド306に入力する。妥当性を確認されたセンサ値も、推定されたセンサ値も、タスクテンプレートと関連付けられたパラメータについて実在しない場合、タスクリスト生成エンジン114は、タスクが実行され得ないことを示す人間が読める説明と、タスクを完了するために必要なデータを生成し得る。加えて、または代わりに、タスクリスト生成エンジン114は、1つまたは複数の代替的タスクが、実行され得ないタスクに対して代用されてもよいかどうかを判定し得る。例えば、タスクリスト生成エンジン114は、タスクが実行され得ない場合、1つまたは複数の代替的タスクが、実行され得ないタスクについてのデータを推論するために実行されてもよいということを指定する規則のセットを適用し得る。1つの例によれば、タスクテンプレートは、特定のパラメータが特定の値を有するときに、オペレータによる構成要素の特定の注視を要し得る。しかしながら、特定のパラメータの値は、妥当性を確認されることも、推定されることもかなわないことがある。よって、タスクリスト生成エンジン114は、妥当性を確認され得るものでもなく、推定され得るものでもないパラメータを有するタスクに対して、2つの代替的タスクを代用し得る。2つの代替的タスクは、妥当性を確認される、または推定されることがあるパラメータに基づく、関係付けられた構成要素の測定値を含み得る。妥当性を確認され得るものでもなく、推定され得るものでもないパラメータについての値は、2つの代替的タスクから推論されることがある。代わりに、代替的タスクは、妥当性を確認され得るものでもなく、推定され得るものでもないパラメータについての値を推論することなく、望まれる結果を達成し得る。
【0034】
1つの実施形態において、人間である専門家および/またはオペレータが、タスクテンプレート118を生成する。加えて、タスクリスト生成エンジン114は、識別された根本原因と関連付けるための既存のタスクテンプレートを識別するための機械学習モデルを実現し得る。加えて、または代わりに、タスクリスト生成エンジン114は、新しく識別された根本原因に基づいて、新しいタスクテンプレートを生成するための機械学習モデルを含み得る。例えば、タスク生成機械学習モデルは、(a)トリガリングイベントの根本原因、および、(b)根本原因と関連付けられたタスクテンプレートのセット(タスクテンプレートと関連付けられた構成要素、アクション、エンティティ、依存関係、およびパラメータを含む)を含むデータセットによって訓練されることがある。特定の構成要素およびイベントタイプを含む、特定の特性を有する現在の根本原因を受け取ると、タスク生成機械学習モデルは、実行されるべきタスク、タスクを実行すべきエンティティのタイプ、タスクの、他のタスクとの関係性、および、タスクを完了するために必要な何らかのパラメータを指定し得る、特定の構成要素およびイベントタイプと関連付けられた新しいタスクテンプレートを生成し得る。
【0035】
タスクリスト生成エンジン114は、(a)タスクの優先度レベル、および、(b)タスクの、他のタスクへの依存関係によって、検索されたタスクテンプレート118のセットをリストとして配置構成し得る。特に、完了されるべき別のタスクに依存するタスクは、親タスクよりも低く、タスクリスト上に配置構成される。加えて、1つのタスクが別のものへの依存関係を有さない場合、システムは、選定された優先度によってタスクを配置構成し得る。例えば、システムは、依存関係が実在しない限り、コンピュータが実行するタスクは、タスクリストを順序付けするときに、人間が実行するタスクに勝る優先度を与えられるべきであるという規則を適用し得る。1つの実施形態において、タスクリストは、タスクの並列リストを含み得る。例えば、乗物の電力遮断シーケンスは、2人の異なる人間によって実行されるタスクの順序付けされたシーケンスを必要とし得る。タスクリスト生成エンジン114は、タスクの並列リストとして、2人の人間によって実行されるべきタスクの別々のシーケンスを表すことがある。
【0036】
タスクリスト実行エンジン115は、タスクリストにおけるタスクを実行、管理、または追跡する。例えば、タスクリスト実行エンジン115は、タスクリスト上の1つまたは複数のタスクの表現を含むグラフィカルユーザインターフェース(GUI)を生成することをユーザインターフェース120に行わせるアプリケーションを含み得る。タスクリスト実行は、タスクが実行されるかどうかを判定するために、システム102を直接的に監視し得る。例えば、タスクリスト実行エンジン115は、オペレータが構成要素への電力をオフにするためのタスクを表すインターフェース要素を表示し得る。タスクリスト実行エンジン115は、電力がオフにされたかどうかを検出し得る。タスクリスト実行エンジン115は、電力がオフにされることを検出したことを示すために、インターフェース要素の表現を変化させることがある。例えば、タスクリスト実行エンジン115は、タスクの表現をグレーアウトする、または、タスクの表現の隣にチェックマークを表示し得る。加えて、または代わりに、タスクリスト実行エンジン115は、オペレータが、タスクの完了を指示するために、ユーザインターフェース120におけるタスクの表現と対話することを可能とし得る。タスクが完了すると、タスクリスト実行エンジン115は、実行されるべき、タスクリストにおける次のタスクを強調表示し得る。加えて、タスクリスト実行エンジン115は、コンピュータによって実行されるべき、タスクリストにおけるタスクを表示し得る。タスクリスト実行エンジン115は、人間の介入なしに、何らかの前提条件のタスクの完了を検出することに基づいて、コンピュータが実行するタスクの実行を開始し得る。例えば、タスクリストが、測定値を取得するための人間が実行するタスクと、その後における、測定値を使用してシステム性能を分析するためのコンピュータが実行するタスクとを含む場合、タスクリスト実行エンジン115は、(a)オペレータが前提条件のタスクからの測定値を入力するまで、コンピュータが実行するタスクを実行することを待ち、(b)オペレータが測定値を入力したことを検出すると、人間の介入なしに、コンピュータが実行するタスクを開始し得る。
【0037】
タスクリスト実行エンジン115は、オペレータが1つまたは複数のタスクを修正することを可能とするための、ユーザインターフェース120のGUIを介しての機能性をさらに提供し得る。例えば、タスクリスト生成エンジン114は、データセンタにおけるデータストレージ構成要素をフラッシングするためのタスクリストを生成し得る。タスクリスト実行エンジン115は、ユーザインターフェース120のGUIを介して、タスクリストを表示し得る。オペレータは、表示されているタスクリストが、顧客に対する著しい中断を引き起こすことになるタスクを含むと判定し得る。オペレータは、タスクが、顧客の使用量が多い時間であることが知られている時間帯は実行されるべきではないという条件を追加するために、GUIを使用して、1つまたは複数のタスクを修正し得る。代わりに、オペレータは、顧客によって求められた新しいタスクを含むように、タスクリストを修正し得る。例えば、顧客は、その顧客が何らかの潜在的な混乱を通知されるということを求めることがある。オペレータは、タスクリストの残りのタスクを実行するために、通知を送出し、許諾を受信することをオペレータに求めるタスクを追加し得る。別の例によれば、監視されるシステム102を維持する組織は、タスクを実行するよりも前に必要な安全プロトコルを有し得る。タスクリスト実行エンジン115は、ユーザが、ユーザインターフェース120のGUIを使用して、安全プロトコルによって指定されたタスクを含む新しいタスクを追加することを可能とし得る。
【0038】
1つの実施形態において、タスクリスト実行エンジン115は、タスクリストが完了されたかどうかを判定する。オペレータが、タスクリストは完了され得ないということを指示する場合、タスクリスト実行エンジン115は、タスクリストと、および、完了され得ない何らかのタスクと関連付けられた情報を、原因分析エンジン113に提供し得る。原因分析エンジン113は、完了された、および、完了されていないタスクに基づいて、監視されるシステム102における検出されたトリガリングイベントが、以前に識別された根本原因とは異なる根本原因と関連付けられているかどうかを判定し得る。原因分析エンジン113が、トリガリングイベントと関連付けられた異なる根本原因を識別する場合、タスクリスト生成エンジン114は、タスクリスト実行エンジン115によって実行、監視、および追跡されるべき新しいタスクリストを生成し得る。
【0039】
本節において説明される手法は、探究され得た手法であるが、必ずしも、以前に着想または探究された手法ではない。それゆえに、別段に指示されない限り、本節において説明される手法のいずれも、ただ単に本節におけるそれらの手法の含みによって、従来技術として認定されると決め込むべきではない。
【0040】
1つまたは複数の実施形態において、システム100は、図1において例示される構成要素よりも多い、または少ない構成要素を含み得る。図1において例示される構成要素は、互いに、ローカルまたは遠隔であり得る。図1において例示される構成要素は、ソフトウェアおよび/またはハードウェアにおいて実現され得る。各構成要素は、複数個のアプリケーションおよび/またはマシンにわたって分散され得る。複数個の構成要素は、1つのアプリケーションおよび/またはマシンへと組み合わされ得る。1つの構成要素に関して説明される動作は、その代わりとして、別の構成要素によって実行され得る。
【0041】
コンピュータネットワークに関係する追加的な実施形態および/または例は、「コンピュータネットワークおよびクラウドネットワーク」と題された第6節において、下記で説明される。
【0042】
1つまたは複数の実施形態において、データリポジトリ116は、データを記憶するための、任意のタイプのストレージユニットおよび/またはデバイス(例えば、ファイルシステム、データベース、テーブルのコレクション、または、任意の他のストレージ機構)である。さらに、データリポジトリ116は、複数個の異なるストレージユニットおよび/またはデバイスを含み得る。複数個の異なるストレージユニットおよび/またはデバイスは、同じタイプのものである、もしくは、同じ物理的サイトにおいて場所を定められることがあり、または、そうでないことがある。さらに、データリポジトリ116は、システム監視装置110と同じコンピューティングシステム上で実現されることがあり、または実行し得る。代わりに、または加うるに、データリポジトリ116は、システム監視装置110から離れたコンピューティングシステム上で実現または実行されることがある。データリポジトリ116は、直接的な接続を介して、または、ネットワークを介して、システム監視装置110に通信可能に結合され得る。
【0043】
履歴センサデータ、タスクテンプレート、およびタスクリストを記述する情報は、システム100の中の構成要素のうちの任意のものの至るところで実現されることがある。しかしながら、この情報は、明確さおよび解説の目的のために、データリポジトリ116の中で例示される。
【0044】
1つまたは複数の実施形態において、システム監視装置110は、妥当性を確認されたセンサデータと、推定されたセンサデータとを含む、フィルタリングされたデータセットを使用して、監視されるシステムにおいて検出されたトリガリングイベントを修復するための、本明細書において説明される動作を実行するように構成されたハードウェアおよび/またはソフトウェアを指す。妥当性を確認されたセンサデータと、推定されたセンサデータとを含む、フィルタリングされたデータセットを使用して、監視されるシステムにおいて検出されたトリガリングイベントを修復するための動作の例は、図2Aおよび図2Bを参照して下記で説明される。
【0045】
一実施形態において、システム監視装置110は、1つまたは複数のデジタルデバイス上で実現される。用語「デジタルデバイス」は、一般的には、プロセッサを含む任意のハードウェアデバイスを指す。デジタルデバイスは、アプリケーションまたは仮想マシンを実行する物理デバイスを指すことがある。デジタルデバイスの例は、コンピュータ、タブレット、ラップトップ、デスクトップ、ネットブック、サーバ、ウェブサーバ、ネットワークポリシサーバ、プロキシサーバ、汎用マシン、特定機能向けハードウェアデバイス、ハードウェアルータ、ハードウェアスイッチ、ハードウェアファイアウォール、ハードウェアファイアウォール、ハードウェアネットワークアドレストランスレータ(NAT)、ハードウェアロードバランサ、メインフレーム、テレビジョン、コンテンツ受信器、セットトップボックス、プリンタ、モバイルハンドセット、スマートフォン、携帯情報端末(「PDA」)、ワイヤレス受信器および/もしくは送信器、基地局、通信管理デバイス、ルータ、スイッチ、コントローラ、アクセスポイント、ならびに/またはクライアントデバイスを含む。
【0046】
1つまたは複数の実施形態において、ユーザインターフェース120は、ユーザとシステム監視装置110との間の通信を容易にするように構成されたハードウェアおよび/またはソフトウェアを指す。インターフェース120は、ユーザインターフェース要素をレンダリングし、ユーザインターフェース要素を介して入力を受け取る。インターフェースの例は、グラフィカルユーザインターフェース(GUI)、コマンドラインインターフェース(CLI)、触覚インターフェース、および音声コマンドインターフェースを含む。ユーザインターフェース要素の例は、チェックボックス、ラジオボタン、ドロップダウンリスト、リストボックス、ボタン、トグル、テキストフィールド、日付および時間セレクタ、コマンドライン、スライダ、ページ、ならびにフォームを含む。
【0047】
一実施形態において、インターフェース120の異なる構成要素は、異なる言語において指定される。ユーザインターフェース要素の挙動は、JavaScriptなどの動的プログラミング言語において指定される。ユーザインターフェース要素のコンテンツは、ハイパーテキストマークアップ言語(HTML)またはXMLユーザインターフェース言語(XUL)などのマークアップ言語において指定される。ユーザインターフェース要素のレイアウトは、カスケーディングスタイルシート(CSS)などのスタイルシート言語において指定される。代わりに、インターフェース120は、Java、C、またはC++などの、1つまたは複数の他の言語において指定される。
【0048】
3.機械学習に基づいてシステム異常を修復すること
図2Aおよび図2Bは、1つまたは複数の実施形態による、タスクリストを生成および実現することによって、機械学習モデルに基づいてシステム異常を修復するための動作の例セットを例示する。図2Aおよび図2Bにおいて例示される1つまたは複数の動作は、すべてまとめて修正、再配置構成、または除外されることがある。よって、図2Aおよび図2Bにおいて例示される動作の特定のシーケンスは、1つまたは複数の実施形態の範囲を制限すると解釈されるべきではない。
【0049】
システムは、現在のセンサデータを取得する(動作202)。現在のセンサデータは、監視されるシステムの1つまたは複数の構成要素を監視する複数個のセンサからの測定値を含む。監視されるシステムの例は、乗物、データセンタ、コンピュータネットワーク、製造施設、医療施設、および発電施設を含む。監視されるシステムは、構造的構成要素、運動構成要素、発電構成要素、計算構成要素、およびデータストレージ構成要素を含む、任意の数およびタイプの構成要素を含み得る。センサは、サーマルセンサ、視覚センサ、および光センサなどの物理センサを含む。センサは、コンピュータ、または、コンピューティングデバイス、ネットワークデバイス、およびストレージデバイスのネットワークにおけるコンピューティング要素を監視する、アプリケーション、クライアント、またはプログラムなどの、ソフトウェアベースのセンサを含む。
【0050】
システムは、センサデータの妥当性を確認する(動作204)。センサデータの妥当性を確認することは、センサデータが、あらかじめ決定された判断基準を満たすと判定することを含む。例えば、機械学習モデルは、センサ間の相関を識別するように訓練されることがある。センサデータの妥当性を確認することは、現在のセンサデータ値が、機械学習モデルの学習された相関と整合すると判定することを含み得る。加えて、または代わりに、センサデータの妥当性を確認することは、センサについての値が、センサについての非異常な値の、以前に決定された範囲内にあると判定することを含み得る。
【0051】
1つの実施形態において、機械学習モデルは、MSETモデルなどの決定論的機械学習モデルである。MSETモデルは、センサのセットについての非異常なセンサ値の全範囲を含む、センサ値のセットを基に訓練される。MSETモデルを現在のセンサデータに適用して、システムは、(a)各センサ値が、それぞれのセンサについての非異常な値の、以前に学習された範囲内にあると判定すること、および、(b)センサデータ値が、他のセンサデータ値との学習された相関と整合すると判定することによって、センサデータの妥当性を確認する。
【0052】
システムは、妥当性を確認され得ない1つまたは複数のセンサ値を識別する(動作206)。妥当性を確認され得ないセンサ値は、センサと他のセンサとの間の学習された相関と合致しないセンサ値を含み得る。例えば、機械学習モデルは、3つのセンサが、互いと同じ経過をたどる出力値を有するということを学習し得る。システムは、センサのうちの1つについての現在のセンサ値が妥当性を確認され得ないということを検出することを、そのセンサについての現在のセンサ値が、他の2つのセンサについての出力値と同じ経過をたどっていないということを検出することに基づいて行うことがある。
【0053】
機械学習モデルがMSETモデルなどの決定論的モデルである一実施形態において、機械学習モデルは、各センサ値について、現在のセンサ値と、センサについての予測された値との間の差を表すデルタ値を生成し得る。MSETモデルは、(a)センサ値が、特定のセンサについての非異常な値の範囲外にある、(b)センサ値が、あらかじめ決定されたしきい値を超えて予測された値から変動する、と判定することに基づいて、センサ値は妥当性を確認され得ないと判定し得る。1つの例によれば、MSETモデルは、センサ値が、あらかじめ決定されたしきい値を超えて予測された値から乖離するかどうかを判定するために、センサ値、および、予測されたセンサ値に、逐次確率比検定(Sequential Probability Ratio Test)(SPRT)アルゴリズムを適用する。SPRTアルゴリズムは、測定された信号と、推定された値との間の各連続的な残差についての対数尤度比の累積和を算出することによって、および、累積和をしきい値と比較することを、そのしきい値において不良が検出されると判定するために行うことによって、正常動作からの異常な乖離を検出する。
【0054】
1つの例によれば、MSETモデルは、3つのセンサの値同士の間の相関を識別し得る。MSETモデルは、センサのうちの2つの値に基づいて、第3のセンサが特定の値を有するべきであると判定し得る。MSETモデルは、第3のセンサについての現在の値が、あらかじめ規定されたしきい値よりも多くだけ、特定の値から変動する場合、第3のセンサは妥当性を確認され得ないと判定し得る。加えて、MSETモデルは、第3のセンサが、非異常な動作値のあらかじめ規定された範囲を有すると判定し得る。MSETモデルは、第3のセンサについての現在のセンサ値が、非異常な動作値のあらかじめ規定された範囲外にある場合、第3のセンサは妥当性を確認され得ないと判定し得る。
【0055】
システムは、妥当性を確認され得ないセンサデータは推定され得るかどうかを判定する(動作208)。1つの実施形態において、システムは、センサ間の相関を識別するように、センサ値のデータセットによって、機械学習モデルを訓練する。システムは、妥当性を確認され得ないセンサ値は推定されることがあるかどうかを、機械学習モデルによるセンサ値の学習された相関に基づいて判定し得る。
【0056】
妥当性を確認され得ないセンサ値は推定されることがあると判定することに基づいて、システムは、妥当性を確認され得ないが推定され得る何らかのセンサデータについての推定された値を生成する(動作210)。例えば、センサ分析モデルがMSETモデルである一実施形態において、MSETモデルは、センサと他のセンサとの間の学習された相関に基づいて、センサについての推定された値を生成する。
【0057】
1つの実施形態において、システムは、センサデータの妥当性を確認するために、1つの機械学習モデルを訓練し、センサデータに適用し、妥当性を確認され得ないセンサ値を推定するために、別の機械学習モデルを訓練し、センサデータに適用する。例えば、システムは、センサ値間の相関を学習するように、履歴センサデータのセットを使用して、機械学習モデルを訓練し得る。システムは、現在のセンサ値同士の間の相関が、履歴センサ値間の学習された相関と整合するかどうかを判定するために、現在のセンサデータを、訓練された機械学習モデルに提供する。訓練された機械学習モデルは、値が、学習された相関と整合すると判定することに基づいて、センサ値の妥当性を確認する。機械学習モデルは、値のサブセットが他のセンサ値との学習された相関と整合しないと判定することに基づいて、値のサブセットは妥当性を確認され得ないと判定する。システムは、履歴センサデータのセットにおけるセンサ値間の相関を学習するように、および、センサ値を、履歴センサデータのセットにおける他のセンサ値に基づいて予測するように、別の機械学習モデルを訓練する。システムは、現在のセンサデータを、機械学習モデルに提供する。機械学習モデルは、センサ値についての値を、現在のセンサデータにおける他のセンサ値の値に基づいて予測する。システムは、妥当性を確認され得ない値として第1の機械学習モデルによって識別された、測定された値に対して、第2の機械学習モデルによって生成された、予測された値を代用する。
【0058】
代替的実施形態において、システムは、センサデータの妥当性を確認すること、および、妥当性を確認され得ないセンサデータ値を推定することの両方のために、同じ機械学習モデルを使用する。例えば、MSET機械学習モデルは、センサ値が非異常な動作範囲から変動するときを検出し、センサ値間の学習された相関に基づいて、センサ値についての予測を生成する。MSETモデルは、妥当性を確認され得ないセンサ値を、予測されたセンサ値に取り替える。
【0059】
妥当性を確認されたセンサデータ、および、あるとすれば、推定されたセンサデータに基づいて、システムは、センサデータのフィルタリングされたセットを生成する(動作212)。システムは、センサデータのフィルタリングされたセットから、あるとすれば、妥当性を確認され得ないセンサデータを除外する。
【0060】
センサデータのフィルタリングされたセットを使用して、システムは、監視されるシステムと関連付けられたイベントを検出する(動作214)。1つの実施形態において、訓練されたセンサ分析機械学習モデルは、センサデータにおける異常を識別する。システムは、現在のセンサデータと関連付けられた1つまたは複数の条件を検出することに基づいて、トリガリングイベントを検出し得る。例えば、システムは、しきい値の値を上回る、あらかじめ規定された数のセンサデータ値を検出し得る。システムは、しきい値の値を上回る、特定のセンサデータ値を検出し得る。加えて、または代わりに、システムは、センサ値のうちの1つまたは複数が、特定のセンサについての非異常なセンサ値範囲内にあるとしても、トリガリングイベントも同然である、センサ値の組み合わせを検出し得る。1つの実施形態において、システムは、センサ値が異常であるかどうか、および、センサ値がトリガリングイベントも同然であるかどうかを検出するために、センサについての推定された値を、センサについての現在の値と比較する。換言すれば、システムは、トリガリングイベントが、監視されるシステムにおいて発生したかどうかを検出するために、センサデータのフィルタリングされたセット、および、現在のセンサデータの組み合わせを使用し得る。
【0061】
システムは、検出されたトリガリングイベントの根本原因を識別する(動作216)。システムは、トリガリングイベントの根本原因を識別するために、機械学習モデルおよびシステム監視センサのうちの1つまたは両方からの出力を分析し得る。1つの実施形態において、システムは、トリガリングイベントの根本原因を識別するために、訓練された原因分析機械学習モデルを、センサデータのフィルタリングされたセットに適用する。例えば、過熱構成要素の根本原因は、構成要素上の電力調整器の障害であり得る。機械学習モデルは、現在のセンサデータと関連付けられたトリガリングイベントの根本原因を識別するように、(a)履歴センサデータと、(b)履歴データにおけるトリガリングイベントについての履歴的に識別された原因とを含むデータセットを基に訓練されることがある。
【0062】
システムは、根本原因と関連付けられたタスクのセットを識別する(動作218)。1つの実施形態によれば、システムは、タスクテンプレートのデータベースへのクエリのセットを生成する。システムは、(a)識別された根本原因、(b)識別されたトリガリングイベント、ならびに、(c)現在のセンサデータおよびセンサデータのフィルタリングされたセットのうちの1つまたは両方のうちの1つまたは複数に基づいて、クエリのセットを生成する。タスクテンプレートは、実行されるべきアクションと、タスクの、任意の他のタスクへの何らかの依存関係とを含む。タスクテンプレートは、システムが、タスクのセットを生成するために、監視されるシステムの仕様に従って入力する編集可能フィールドをさらに含む。例えば、システムは、システム構成要素の特定のモデルまたは記述を「構成要素」フィールドに入力し得る。システムは、オペレータの名前、オペレータの肩書き、または、アクションを実行するように選定されているコンピュータの名前を、「アクションを実行すべきエンティティ」フィールドに入力し得る。
【0063】
システムは、タスクのセットについてのタスクパラメータをインスタンス化する(動作220)。タスクのセットは、現在のセンサデータに基づいて、システムによって入力されるパラメータを含む。システムは、妥当性を確認されたセンサデータに基づいて、パラメータにデータを入力し得る。例えば、タスクは、データレイテンシ測定値を要し得る。別のタスクは、環境温度測定値を要し得る。システムは、現在のセンサデータにおける測定値に基づいて、タスクパラメータにデータを入力する。
【0064】
システムは、タスクのセットが、何らかの欠けているパラメータを含むかどうかを判定する(動作222)。例えば、システムは、タスクが、妥当性を確認され得ない現在のセンサ値と関連付けられたパラメータを含むと判定し得る。妥当性を確認され得ないセンサ値は、欠けているタスクパラメータを結果的に生じさせる。
【0065】
システムは、あるとすれば、欠けているパラメータについて、パラメータは推定され得るかどうかを判定する(動作224)。システムが、異なるセンサ間の相関を学習するセンサ分析機械学習モデルを含む、一実施形態において、システムは、センサ分析機械学習モデルが、妥当性を確認され得ないセンサ値の推定値である出力値を生成するかどうかを判定し得る。加えて、または代わりに、システムは、欠けているタスクパラメータを推定するために使用されてもよい、任意の他のセンサ値を識別し得る。例えば、システムは、妥当性を確認され得ない第2の値を有する第2のセンサについての推定値を算出するために、第1の構成要素の第1のセンサ値が数式に代入され得ると判定し得る。なおも別の実施形態において、システムは、任意のタスクが、欠けているパラメータを有するタスクに対して代用されてもよいかどうかを判定し得る。例えば、システムは、データバックアップタイプ動作が、第1の構成要素と関連付けられた第1のタスクによって、または、第2の構成要素と関連付けられた第2のタスクによってのいずれかで開始されてもよいと判定し得る。第1のタスクの要されるタスクパラメータが欠けている場合、システムは、第2のタスクが、望まれる結果を達成するために、第1のタスクに対して代用されてもよいと判定する。
【0066】
システムが、欠けているパラメータは推定され得ないと判定する場合、システムは、欠けているパラメータについての説明を生成する(動作226)。当該説明は、人間が理解可能な説明であり得る。当該説明は、説明テンプレートのセットの中から選択されることがある。システムは、人間が理解可能な説明を生成するために、説明テンプレートのフィールドに記入し得る。例えば、当該説明は、特定のタスクが特定の測定値なしに完了され得ないということ、および、特定の測定値と関連付けられたセンサデータが妥当性を確認され得ないということを指示し得る。1つの実施形態において、人間が理解可能な説明は、GUIを介してオペレータに提示される。タスクが、目標を達成するための不可欠のタスクでない場合、システムは、そのタスクなしのタスクリストを生成することの選択肢をオペレータに与えることがある。加えて、または代わりに、システムは、オペレータが、タスクを完了するための必要な情報を提供することを可能とするためのインターフェース要素を提供し得る。例えば、ユーザは、GUIを介して、欠けているパラメータ情報を供給し得る。
【0067】
システムが、欠けているパラメータは推定され得ると判定する場合、システムは、推定されたパラメータ値に基づいて、パラメータをインスタンス化する(動作228)。システムが、異なるセンサ間の相関を学習するセンサ分析機械学習モデルを含む、実施形態において、システムは、妥当性を確認され得ないセンサ値についての推定されたセンサ値に基づいて、パラメータを推定する。妥当性を確認され得ない第2の値を有する第2のセンサについての推定値を算出するために、第1の構成要素の第1のセンサ値が数式に代入される例において、システムは、第2のセンサ値に代えて、第1のセンサ値に基づいて、欠けているパラメータを推定し得る。代替的実施形態によれば、システムは、欠けているパラメータを推定することの代わりとして、1つのタスクを別のものに対して代用する。2つのタスクが、望まれる結果を達成し得る、例において、システムは、第1のタスクが、欠けているパラメータを含む場合、第1のタスクに対して第2のタスクを代用し得る。
【0068】
システムは、タスクリストにおいてタスクのセットを配置する(動作230)。システムは、タスク同士の間の依存関係およびタスクの優先度レベルのうちの1つまたは両方に基づいて、リストにおいてタスクのセットを配置する。システムは、タスクテンプレートにおいて指定された依存関係に応じて、タスクを配置する。例えば、タスクは、そのタスクが特定のタスクによって常に先行されなければならないということを指定し得る。さらに、タスクは、そのタスクが別の特定のタスクに移らなければならないということを指定し得る。一連の2つ以上のタスクは、2つ以上のタスクの間で実行されてもよい介在タスクはないということを指定し得る。タスクは、タスクを実行するための時間期間を指定し得る。タスクは、別のエンティティによって同時的に実行されなければならないタスクなどの、任意の関係付けられたタスクを指定し得る。システムは、さらには、タスクの優先度レベルによって、タスクリストにおいてタスクを配置し得る。優先度レベルは、オペレータによってセットされることがある。1つの例によれば、オペレータは、高い優先度を有するとして、特定のタイプのタスクを識別し得る。代わりに、オペレータは、高い優先度を有するとして、特定の構成要素と関連付けられたタスクを識別し得る。システムは、識別された優先度によって、依存関係を有さない2つのタスクを配置し得る。
【0069】
システムは、タスクリストの実行を開始する(動作232)。システムは、ユーザインターフェースのGUIを介して、印刷媒体を介して、または、任意の他の手段によって、オペレータにタスクリストを提供し得る。システムがGUIを介してオペレータにタスクリストを提供する一実施形態において、システムは、タスクリストを表示し、タスクリストの完了を追跡し得る。システムは、タスクリスト上のタスクの完了を検出することに基づいて、タスクリストの表示を更新し得る。タスクリストの実行中、システムは、何らかの、コンピュータが実行するタスクを、タスクリスト上の、すぐ近くで先行するタスクの完了を検出することに基づいて、人間の介入なしに実行し得る。
【0070】
システムは、タスクリストが完了される可能性があるかどうかを判定する(動作234)。例えば、ユーザは、1つまたは複数のタスクがタスクリストから欠けているという、GUIを介しての入力を生成し得る。ユーザは、タスクリスト上の2つ以上のタスクが冗長であるということを指示する入力を生成し得る。システムは、完了される可能性がない1つまたは複数のタスクを識別し得る。例えば、タスクが実行されることを必要とすることになる環境が、人間またはコンピュータによってアクセスされることがかなわないことがある。例えば、車両の物理構成要素は、アクセスされることがかなわないことがある。また、データのセットの妥当性を確認するためのタスクは、セキュリティプロトコルに起因して、アクセスされることがかなわないことがある。
【0071】
タスクのリストは完了される可能性がないと判定することに基づいて、システムは、特定の根本原因と関連付けられた、タスクパラメータおよび特定のタスクのうちの1つまたは両方を修正し得る(動作236)。例えば、ユーザが、タスクは、測定値をとるための構成要素にユーザがアクセスすることができないことに起因して実行され得ないということを指示する場合、システムは、初期測定値に対して代用するための代替的測定値、または、初期タスクに対して代用するための代替的タスクを識別することを試みることがある。ユーザが、タスクが欠けているということを指示する場合、システムは、ユーザ入力に基づいて、既存のタスクテンプレート、または、まったく新しいタスクテンプレートの新しい依存関係を生成し得る。実行されるべきタスクのセットに対する更新に基づいて、システムは、初期に識別された根本原因が、トリガリングイベントの根本原因であると、依然として判定されるかどうかを判定する。例えば、システムは、タスクを実行することをユーザができないことは、初期に識別された根本原因とは異なる別の根本原因がトリガリングイベントの実際の原因であり得るということを指示すると判定し得る。システムは、根本原因を識別すること(動作216)、および、根本原因と関連付けられたタスクを識別すること(動作218)のプロセスを繰り返す。
【0072】
4.機械学習モデルを訓練すること
図4Aおよび図4Bは、1つまたは複数の実施形態による、センサデータの妥当性を確認するように、妥当性を確認され得ないセンサデータを識別するように、および、妥当性を確認され得ないセンサデータについての値を推定するように、機械学習モデルを訓練するための動作の例セットを例示する。図4Aおよび図4Bにおいて例示される1つまたは複数の動作は、すべてまとめて修正、再配置構成、または除外されることがある。よって、図4Aおよび図4Bにおいて例示される動作の特定のシーケンスは、1つまたは複数の実施形態の範囲を制限すると解釈されるべきではない。
【0073】
図4Aは、1つまたは複数の実施形態による、重みの確率論的最適化を使用する、ニューラルネットワークまたはサポートベクトルマシン(SVM)などの機械学習モデルを訓練するための動作のセットの例を例示する。
【0074】
システムは、履歴センサ値と、センサ値の特定の組み合わせと関連付けられた識別された根本原因とを含む履歴データのセットを取得する(動作402)。センサ値の例は、サーマルセンサ、光センサ、ひずみセンサ、および測位センサなどの物理センサ、ならびに、データ容量、帯域幅、データレイテンシ、および、破棄されたデータパケットレートを追跡するためのプログラムなどの、処理デバイスにおいて実行するソフトウェアとして実現されたセンサから出力されたセンサ信号を含む。根本原因の例は、構成要素の物理的機能不全、回路網障害、電気的構成要素障害、構成要素に対する電力供給停止、および、測定可能データ伝送またはデータストレージ障害を結果的に生じさせるソフトウェア構成要素の誤構成を含む。
【0075】
システムは、履歴データのセットから訓練データセットを生成する(動作404)。訓練データセットは、システムを監視するセンサのセットのセンサ値を含む。訓練データセットは、監視されているシステムの1つまたは複数の構成要素における根本原因のラベルをさらに含み得る。例えば、訓練データのセットにおける1つのデータ点は、センサデータ値のセットと、センサデータ値のセットにおける異常なセンサデータ値の1つまたは複数の原因を識別するラベルとを含む。訓練データのセットにおける別のデータ点は、センサデータ値の別のセットと、異常なセンサデータ値の1つまたは複数の原因を識別する別のラベルとを含む。
【0076】
システムは、センサ間の関係性または相関を学習するように、および、センサ値の異なる組み合わせと関連付けられた根本原因を予測するように、機械学習モデルを訓練するために、機械学習アルゴリズムを訓練データセットに適用する(動作406)。1つまたは複数の実施形態は、異なる判定または予測を実行するために、複数個の異なる機械学習モデルを含む。例えば、システムは、現在のセンサ値の特定のセットと関連付けられた根本原因を予測するように、1つの機械学習モデルを訓練し得る。システムは、異なるセンサ間の関係性または相関を識別するように、別の機械学習モデルを訓練し得る。機械学習モデルは、妥当性を確認され得ない、現在のセンサ値のセットにおけるセンサ値のサブセットを識別するように訓練されることがある。機械学習モデルは、センサのサブセットについての特定の値が、センサ間の学習された関係性と整合しないと判定することに基づいて、妥当性を確認され得ないセンサのサブセットを識別する。システムは、センサについての予測または推定された値を生成するように、なおも別の機械学習モデルを訓練し得る。システムは、センサ間の関係性または相関を学習するように、機械学習モデルを訓練する。機械学習モデルは、特定のセンサについての値を、現在のセンサ値のセットと関連付けられた他のセンサの値に基づいて予測する。
【0077】
1つの実施形態において、機械学習モデルを訓練することは、機械学習モデルによって生成された根本原因識別についてのフィードバックを受け取ることを含む(動作408)。例えば、システムは、GUI上で、機械学習モデルによって生成された根本原因識別を表示し得る。システムは、識別された根本原因を改変するための、1つまたは複数の入力を受け取ることがある。システムは、フィードバックに基づいて、機械学習モデルを更新する(動作410)。
【0078】
図4Bは、1つまたは複数の実施形態による、MSETモデルなどの決定論的タイプ機械学習(ML)モデルを訓練するための動作のセットの例を例示する。
【0079】
システムは、監視されるシステムを監視するセンサのセットについての非異常な状態におけるセンサ値の範囲を含む訓練データセットを取得する(動作412)。訓練データのセットは、時系列データを含み得る。時系列データは、監視されるシステムを監視する複数のセンサによって生成された複数の信号を含む。1つの実施形態において、訓練データにおける複数の信号の出力レベルは、すべてが非異常な値である値の範囲を含む。訓練データのセットは、各センサについてのセンサ値が、それぞれのセンサについて非異常と規定される値の範囲内で変動する、時間の経過に伴うセンサデータを含むように選択されることがある。
【0080】
システムは、(a)各センサについての非異常な値の範囲、および、(b)センサのセットについてのセンサ値間の関係性を識別するように、機械学習モデルを訓練するために、機械学習アルゴリズムを訓練データセットに適用する(動作414)。決定論的タイプMLモデルは、監視されるシステムの非異常な動作をモデリングするように、非異常な訓練データセットを使用して訓練される。1つの実施形態において、決定論的MLモデルは、あらかじめ規定された動作パラメータから時系列信号の変動を識別するための、異常な信号予測モデルを含む。異常な信号予測モデルは、センサのセットについての値を、他のセンサとの学習された関係性に基づいて予測し、センサについての予測された値がセンサについての現在のセンサ値と異なる場合を識別する。
【0081】
図4Aにおいて例示される1つまたは複数の動作は、すべてまとめて修正、再配置構成、または除外されることがある。よって、図4Aにおいて例示される動作の特定のシーケンスは、1つまたは複数の実施形態の範囲を制限すると解釈されるべきではない。
【0082】
5.例実施形態
詳細な例が、明確さの目的のために下記で説明される。下記で説明される構成要素および/または動作は、とある実施形態に適用可能でないことがある、1つの特定の例として理解されるべきである。よって、下記で説明される構成要素および/または動作は、請求項のいずれもその範囲を制限すると解釈されるべきではない。
【0083】
図5Aおよび図5Bは、例実施形態によるシステム500を例示する。システム500は、センサ513によって監視されているデータセンタ510を含む。データセンタ510は、コンピューティングデバイス511a、511b、および511cを含む。冷却ユニット521a、512b、および512cが、コンピューティングデバイス511a、511b、および511cそれぞれを冷却する。
【0084】
センサ510は、データセンタモニタ520にセンサデータを提供する。データセンタモニタは、センサデータを分析するためのMSET MLモデル521を含む。MSET MLモデル521は、データセンタ510の非異常な動作と関連付けられた非異常なセンサ値をモデリングするように、センサ513と関連付けられたセンサ値の訓練データセットによって訓練されている。
【0085】
MSET MLモデル521は、センサ513についての予測された値を生成する。予測された値に基づいて、MSET MLモデル521は、予測されたセンサ値からのあらかじめ規定された範囲内などの、予期される現在のセンサ値522aを識別する。加えて、MSET MLモデル521は、異常である、すなわち、(a)予測された値のあらかじめ規定された範囲外、または、(b)センサについての非異常な値の学習された範囲外の値を有する、現在のセンサ値522bを識別する。予測された値のあらかじめ規定された範囲外であることに基づいて、異常として識別されるセンサ値について、MSET MLモデル521は、現在のセンサ値を、予測された現在のセンサ値に取り替えることによって、推定されたセンサデータ値522cを生成する。例えば、出力値が、検知された特性との相関関係性を経時的に失っているように、センサがドリフトしている場合、MSET MLモデル521は、ドリフトから結果的に生じる不正確な出力センサ値を、センサと他のセンサとの間の学習された相関に基づく予測されたセンサ値に取り替える。
【0086】
原因分析エンジン523は、検出されたトリガリングイベントと関連付けられた根本原因を識別するために、MSET MLモデル521からのセンサデータ出力を分析する。MSET MLモデル521が、センサ値間の相関を学習することに基づいて、特定の現在のセンサ値は、(a)他のセンサとの学習された関係性と整合する、および、(b)非異常なレベルの外側の異常なレベルにおけるものであると判定する場合、原因分析エンジン523は、センサ値を使用する。原因分析エンジン523は、センサがデータセンタ510における監視される構成要素の異常な状態を正確に追跡する公算が大きいと判定する。MSET MLモデル521が、センサ値間の相関を学習することに基づいて、特定の現在のセンサ値は、(a)他のセンサとの学習された関係性と整合しないと判定する場合、原因分析エンジン523は、現在のセンサ値の代わりとして、特定のセンサについての予測されたセンサ値を使用する。原因分析エンジン523は、センサが不良状態にある公算が大きく、センサの出力がデータセンタ510の監視される構成要素の状態を反映しない公算が大きいと判定する。
【0087】
1つまたは複数の実施形態において、原因分析エンジン523は、異常な信号値によって指示されたイベントの根本原因を識別するために、トレースバック動作を実行するために、MSET MLモデルの決定論的性質を利用する。特に、MSET MLモデルは、入力値の所与のセットについて、出力値の同じセットを返すことになる、数学的構造を実現する。結果として、MSET MLモデルは可逆である。入力値の所与のセットは、出力値のそれぞれのセットに基づいて決定されることがある。よって、原因分析エンジン523は、検出された異常に対応する入力信号の特定のサブセットを識別するために、MSETモデルによって出力された信号に関してトレースバック動作を実行する。
【0088】
図5Aの例、実施形態において、原因分析エンジン523は、検出されたトリガリングイベントの根本原因として、冷却ユニット障害524を識別する。タスクリスト生成エンジン525は、冷却ユニット障害524と関連付けられた、データリポジトリ530において記憶されている、タスクテンプレート531のセットを識別する。図5Aの実施形態において、タスクリスト生成エンジン525は、冷却ユニット障害524と関連付けられたタスクの特定のセットを識別するために、原因へのタスクのマッピング532を参照する。タスクリスト生成エンジン525は、冷却ユニット障害524に応答して実現されるべき、タスク526a、526b、526c、および526dの順序付けされたシーケンスを表すタスクリスト526を生成する。
【0089】
タスクリスト生成エンジンは、タスク526a~526dのセットが何らかの欠けているパラメータを含むかどうかを判定する。例えば、タスクリスト生成エンジンは、タスク526b「冷却ユニット1を止める」が、コンピューティングユニット511aの現在の温度を指示するパラメータ、および、冷却ユニット1 512aの温度を指示するパラメータを要すると判定し得る。システムが、コンピューティングデバイス511aの現在の温度についてのセンサデータは妥当性を確認され得ないと判定する場合、タスクリスト生成エンジン525は、コンピューティングデバイス511aの温度についての現在のセンサデータを、MSETモデル521によって生成された予測されたセンサデータに取り替える。
【0090】
タスクリスト生成エンジン525は、タスク同士の間の依存関係、および、タスクの優先度レベルに基づいて、タスク526a~526dのセットを配置構成する。例えば、タスク526aは、別のタスクへの何らの依存関係もない、コンピュータが実行するタスクである。タスクリスト生成エンジン525は、コンピュータが実行するタスクに、人間が実行するタスクよりも高い優先度を割り当てるように、そのタスクリスト生成エンジン525に指図する規則を適用する。人間によって、冷却ユニット2 512bにおける温度を測定するためのタスク526cは、タスク526bへの規定された依存関係の関係性を有する。よって、タスクリスト生成エンジン525は、タスク526bに引き続いて実行されるように、タスク526cを配置構成する。
【0091】
図5Bを参照すると、タスク実行エンジンは、タスクリスト526の実行を開始する。タスク実行エンジン527は、タスクリスト526を描写するGUIを表示することをユーザインターフェース528に行わせる。タスクが実行される際、タスク実行エンジン527は、タスクが完了されたということを指示するように、GUIにおけるタスクの描写を修正することをユーザインターフェース528に行わせることがある。例えば、タスク実行エンジン527は、完了されたタスクを最小化するように、完了されたタスクの色を変化させるように、または、完了されたタスクの隣にチェックマークを表示するように、GUIにおけるタスクの描写を修正することをユーザインターフェース528に行わせることがある。さらに、タスク実行エンジン527は、現在のタスクと関連付けられた詳細を表示し、一方で、他のタスクを最小化するように、GUIにおけるタスクの描写を修正することをユーザインターフェース528に行わせることがある。タスク実行エンジン527は、人間による入力について待つことなく、先行するタスクが完了すると、コンピュータが実行する規則を実行するという規則を適用することに基づいて、人間による入力なしにタスク526aを開始し得る。
【0092】
タスク実行エンジン527は、タスクが完了されたということを指示する、ユーザインターフェース528を介してのユーザ入力を受け取る。タスク実行エンジン527は、さらには、ユーザインターフェース528を介してのユーザ入力とは独立して、タスクが完了されたかどうかを検出し得る。例えば、センサ513によって、冷却ユニット1 512aへの電力が止められたということを検出すると、タスク実行エンジン527は、ユーザインターフェース528を介しての人間による入力なしに、タスク526bが完了されたということを指示するように、GUIにおけるタスクの描写を修正することをユーザインターフェース528に行わせることがある。
【0093】
加えて、ユーザが、タスクリスト526は、タスクを追加もしくは除去すること、または、タスクを実行すべきエンティティなどのタスク要素を修正することなどの修正を要すると判定する場合、ユーザは、ユーザインターフェース528において表示されているGUIを介して、変更を入力し得る。タスク実行エンジン527は、ユーザ入力に基づいて、タスクリスト526を修正し得る。
【0094】
6.コンピュータネットワークおよびクラウドネットワーク
1つまたは複数の実施形態において、コンピュータネットワークは、ノードのセット間の接続性を提供する。ノードは、互いに対してローカルである、および/または、互いから遠隔であり得る。ノードは、リンクのセットによって接続されている。リンクの例は、同軸ケーブル、非シールド撚りケーブル、銅ケーブル、光学ファイバ、および仮想リンクを含む。
【0095】
ノードのサブセットは、コンピュータネットワークを実現する。そのようなノードの例は、スイッチ、ルータ、ファイアウォール、およびネットワークアドレストランスレータ(NAT)を含む。ノードの別のサブセットは、コンピュータネットワークを使用する。そのようなノード(さらには「ホスト」と呼称される)は、クライアントプロセスおよび/またはサーバプロセスを実行し得る。クライアントプロセスは、コンピューティングサービス(特定のアプリケーションの実行、および/または、特定の量のデータの記憶など)についての要求をなす。サーバプロセスは、要求されたサービスを実行すること、および/または、対応するデータを返すことによって応答する。
【0096】
コンピュータネットワークは、物理リンクによって接続されている物理ノードを含む、物理ネットワークであり得る。物理ノードは、任意のデジタルデバイスである。物理ノードは、ハードウェアスイッチ、ハードウェアルータ、ハードウェアファイアウォール、およびハードウェアNATなどの、特定機能向けハードウェアデバイスであり得る。加うるに、または代わりに、物理ノードは、それぞれの機能を実行する様々な仮想マシンおよび/またはアプリケーションを実行するように構成されている汎用マシンであり得る。物理リンクは、2つ以上の物理ノードを接続する物理媒体である。リンクの例は、同軸ケーブル、非シールド撚りケーブル、銅ケーブル、および光学ファイバを含む。
【0097】
コンピュータネットワークは、オーバーレイネットワークであり得る。オーバーレイネットワークは、別のネットワーク(物理ネットワークなど)の上部上に実現される論理ネットワークである。オーバーレイネットワークにおける各ノードは、下位ネットワークにおけるそれぞれのノードに対応する。ゆえに、オーバーレイネットワークにおける各ノードは、(オーバーレイノードにアドレッシングするための)オーバーレイアドレス、および、(オーバーレイノードを実現するアンダーレイノードにアドレッシングするための)アンダーレイアドレスの両方と関連付けられている。オーバーレイノードは、デジタルデバイスおよび/またはソフトウェアプロセス(仮想マシン、アプリケーションインスタンス、またはスレッドなど)であり得る。オーバーレイノードを接続するリンクは、下位ネットワークを通るトンネルとして実現される。トンネルの両端部におけるオーバーレイノードは、それらのオーバーレイノード同士の間の下位マルチホップパスを単一の論理リンクとして扱う。トンネリングは、カプセル化およびデカプセル化によって実行される。
【0098】
一実施形態において、クライアントは、コンピュータネットワークに対してローカルである、および/または、コンピュータネットワークから遠隔であり得る。クライアントは、コンピュータネットワークに、プライベートネットワークまたはインターネットなどの他のコンピュータネットワーク越しにアクセスし得る。クライアントは、ハイパーテキスト転送プロトコル(HTTP)などの通信プロトコルを使用して、コンピュータネットワークに要求を伝達し得る。要求は、クライアントインターフェース(ウェブブラウザなど)、プログラムインターフェース、またはアプリケーションプログラミングインターフェース(API)などのインターフェースを通して伝達される。
【0099】
一実施形態において、コンピュータネットワークは、クライアントとネットワークリソースとの間の接続性を提供する。ネットワークリソースは、サーバプロセスを実行するように構成されたハードウェアおよび/またはソフトウェアを含む。ネットワークリソースの例は、プロセッサ、データストレージ、仮想マシン、コンテナ、および/またはソフトウェアアプリケーションを含む。ネットワークリソースは、複数のクライアント間で共有される。クライアントは、互いとは独立してコンピュータネットワークにコンピューティングサービスを要求する。ネットワークリソースは、オンデマンドを基にして、要求および/またはクライアントに動的に割り当てられる。各要求および/またはクライアントに割り当てられるネットワークリソースは、例えば、(a)特定のクライアントによって要求されるコンピューティングサービス、(b)特定のテナントによって要求されるアグリゲートされたコンピューティングサービス、および/または、(c)コンピュータネットワークの要求されるアグリゲートされたコンピューティングサービスに基づいて、スケールアップまたはダウンされることがある。そのようなコンピュータネットワークは、「クラウドネットワーク」と呼称されることがある。
【0100】
一実施形態において、サービスプロバイダが、1人または複数のエンドユーザにクラウドネットワークを提供する。サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、および、サービスとしてのインフラストラクチャ(IaaS)を含む、ただしそれらに制限されない、様々なサービスモデルが、クラウドネットワークによって実現されることがある。SaaSにおいて、サービスプロバイダは、ネットワークリソース上で実行しているサービスプロバイダのアプリケーションを使用するための能力をエンドユーザに提供する。PaaSにおいて、サービスプロバイダは、ネットワークリソース上へとカスタムアプリケーションを展開するための能力をエンドユーザに提供する。カスタムアプリケーションは、サービスプロバイダによってサポートされるプログラミング言語、ライブラリ、サービス、およびツールを使用して作成されることがある。IaaSにおいて、サービスプロバイダは、ネットワークリソースによって提供される処理、ストレージ、ネットワーク、および、他の基本的コンピューティングリソースをプロビジョニングするための能力をエンドユーザに提供する。オペレーティングシステムを含む任意の随意のアプリケーションが、ネットワークリソース上に展開されることがある。
【0101】
一実施形態において、プライベートクラウド、パブリッククラウド、およびハイブリッドクラウドを含む、ただしそれらに制限されない、様々な展開モデルが、コンピュータネットワークによって実現されることがある。プライベートクラウドにおいて、ネットワークリソースは、1つまたは複数のエンティティの特定のグループによる排他的使用のためにプロビジョニングされる(本明細書において使用される際の用語「エンティティ」は、法人、組織、個人、または、他のエンティティを指す)。ネットワークリソースは、エンティティの特定のグループの構内に対してローカルである、および/または、それらの構内から遠隔であり得る。パブリッククラウドにおいて、クラウドリソースが、互いから独立している複数個のエンティティ(さらには「テナント」または「顧客」と呼称される)のためにプロビジョニングされる。コンピュータネットワーク、および、そのコンピュータネットワークのネットワークリソースは、異なるテナントに対応するクライアントによってアクセスされる。そのようなコンピュータネットワークは、「マルチテナントコンピュータネットワーク」と呼称されることがある。いろいろなテナントが、異なる時間において、および/または、同じ時間において、同じ特定のネットワークリソースを使用し得る。ネットワークリソースは、テナントの構内に対してローカルである、および/または、それらの構内から遠隔であり得る。ハイブリッドクラウドにおいて、コンピュータネットワークは、プライベートクラウドおよびパブリッククラウドを含む。プライベートクラウドとパブリッククラウドとの間のインターフェースは、データおよびアプリケーションポータビリティを考慮に入れたものである。プライベートクラウドにおいて記憶されているデータ、および、パブリッククラウドにおいて記憶されているデータは、インターフェースを通して交換されることがある。プライベートクラウドにおいて実現されるアプリケーション、および、パブリッククラウドにおいて実現されるアプリケーションは、互いへの依存関係を有し得る。プライベートクラウドにおけるアプリケーションからパブリッククラウドにおけるアプリケーションへの(およびその逆の)呼び出しが、インターフェースを通して実行されることがある。
【0102】
一実施形態において、マルチテナントコンピュータネットワークのテナントは、互いとは独立している。例えば、1つのテナントの営業または運営は、別のテナントの営業または運営とは別々であり得る。異なるテナントは、コンピュータネットワークについての異なるネットワーク要件を要望し得る。ネットワーク要件の例は、処理速度、データストレージの量、セキュリティ要件、性能要件、スループット要件、レイテンシ要件、レジリエンシ要件、サービスの品質(QoS)要件、テナント分離、および/または整合性を含む。同じコンピュータネットワークが、異なるテナントによって要望される異なるネットワーク要件を実現することを必要とし得る。
【0103】
1つまたは複数の実施形態において、マルチテナントコンピュータネットワークにおいて、テナント分離は、異なるテナントのアプリケーションおよび/またはデータが互いと共有されないということを確実にするために実現される。様々なテナント分離手法が使用されることがある。
【0104】
一実施形態において、各テナントは、テナントIDと関連付けられている。マルチテナントコンピュータネットワークの各ネットワークリソースは、テナントIDによってタグ付けされている。テナントは、テナントおよび特定のネットワークリソースが、同じテナントIDと関連付けられている場合、特定のネットワークリソースへのアクセスを許諾される。
【0105】
一実施形態において、各テナントは、テナントIDと関連付けられている。コンピュータネットワークによって実現される各アプリケーションは、テナントIDによってタグ付けされている。加うるに、または代わりに、コンピュータネットワークによって記憶されている各データ構造および/またはデータセットは、テナントIDによってタグ付けされている。テナントは、テナント、ならびに、特定のアプリケーション、データ構造、および/またはデータセットが、同じテナントIDと関連付けられている場合、特定のアプリケーション、データ構造、および/またはデータセットへのアクセスを許諾される。
【0106】
例として、マルチテナントコンピュータネットワークによって実現される各データベースは、テナントIDによってタグ付けされていることがある。対応するテナントIDと関連付けられたテナントのみが、特定のデータベースのデータにアクセスし得る。別の例として、マルチテナントコンピュータネットワークによって実現されるデータベースにおける各エントリは、テナントIDによってタグ付けされていることがある。対応するテナントIDと関連付けられたテナントのみが、特定のエントリのデータにアクセスし得る。しかしながら、データベースは、複数個のテナントによって共有されることがある。
【0107】
一実施形態において、加入リストは、どのテナントがどのアプリケーションにアクセスすることの許可を有するかを指示する。各アプリケーションについて、アプリケーションにアクセスすることを許可されたテナントのテナントIDのリストが記憶されている。テナントは、テナントのテナントIDが、特定のアプリケーションに対応する加入リストに含まれる場合、特定のアプリケーションへのアクセスを許諾される。
【0108】
一実施形態において、異なるテナントに対応するネットワークリソース(デジタルデバイス、仮想マシン、アプリケーションインスタンス、およびスレッドなど)は、マルチテナントコンピュータネットワークによって維持される特定テナント向けオーバーレイネットワークに対して分離される。例として、テナントオーバーレイネットワークにおけるいかなるソースデバイスからのパケットも、同じテナントオーバーレイネットワークの中の他のデバイスに送信されることがある。カプセル化トンネルが、テナントオーバーレイネットワーク上のソースデバイスから、他のテナントオーバーレイネットワークにおけるデバイスへのいかなる送信も禁止するために使用される。具体的には、ソースデバイスから受信されたパケットは、アウタパケットの中でカプセル化される。アウタパケットは、第1のカプセル化トンネルエンドポイント(テナントオーバーレイネットワークにおけるソースデバイスと通信している)から、第2のカプセル化トンネルエンドポイント(テナントオーバーレイネットワークにおけるデスティネーションデバイスと通信している)に送信される。第2のカプセル化トンネルエンドポイントは、ソースデバイスによって送信された元のパケットを取得するために、アウタパケットをデカプセル化する。元のパケットは、第2のカプセル化トンネルエンドポイントから、同じ特定のオーバーレイネットワークにおけるデスティネーションデバイスに送信される。
【0109】
7.雑則、拡張
実施形態は、ハードウェアプロセッサを含む、ならびに、本明細書において説明される、および/または、下記の請求項のいずれかにおいて詳述される動作のいずれかを実行するように構成されている、1つまたは複数のデバイスを伴うシステムに向けられたものである。
【0110】
一実施形態において、非一時的コンピュータ可読ストレージ媒体は、1つまたは複数のハードウェアプロセッサによって実行されると、本明細書において説明される、および/または、請求項のいずれかにおいて詳述される動作のいずれかの実行を生じさせる、命令を含む。
【0111】
本明細書において説明される特徴および機能性の任意の組み合わせが、1つまたは複数の実施形態によって使用されることがある。前述の本明細書において、実施形態は、実現形態ごとに変動し得る数多くの具体的な詳細を参照して説明された。本明細書および図面は、よって、制約的な観念よりもむしろ例示的な観念において顧慮されるべきである。本発明の範囲の唯一かつ排他的な指標、および、本発明の範囲であることを本出願人らによって意図されるものは、任意の後続の補正を含む、請求項が発行される特定の形式における、本出願から発行される請求項のセットの文言上および均等な範囲である。
【0112】
8.ハードウェア概観
1つの実施形態によれば、本明細書において説明される技術は、1つまたは複数の特殊目的コンピューティングデバイスによって実現される。特殊目的コンピューティングデバイスは、技術を実行するようにハードワイヤードであることがあり、または、技術を実行するように永続的にプログラムされている、1つもしくは複数の特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、もしくはネットワーク処理ユニット(NPU)などのデジタル電子デバイスを含むことがあり、または、ファームウェア、メモリ、他のストレージ、もしくは組み合わせにおけるプログラム命令にしたがって技術を実行するようにプログラムされた、1つもしくは複数の多目的ハードウェアプロセッサを含み得る。そのような特殊目的コンピューティングデバイスは、さらには、技術を成し遂げるために、カスタムハードワイヤード論理、ASIC、FPGA、またはNPUをカスタムプログラミングと組み合わせることがある。特殊目的コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルドデバイス、ネットワーキングデバイス、または、技術を実現するためにハードワイヤードおよび/もしくはプログラム論理を組み込む任意の他のデバイスであり得る。
【0113】
例えば、図6は、コンピュータシステム600を例示するブロック線図であり、そのコンピュータシステム600上で、本発明の一実施形態が実現されることがある。コンピュータシステム600は、情報を伝達するためのバス602または他の通信機構と、情報を処理するためにバス602と結合されているハードウェアプロセッサ604とを含む。ハードウェアプロセッサ604は、例えば、多目的マイクロプロセッサであり得る。
【0114】
コンピュータシステム600は、さらには、情報、および、プロセッサ604によって実行されるべき命令を記憶するためにバス602に結合されている、ランダムアクセスメモリ(RAM)または他の動的ストレージデバイスなどのメインメモリ606を含む。メインメモリ606は、さらには、プロセッサ604によって実行されるべき命令の実行中に一時変数または他の中間情報を記憶するために使用されることがある。そのような命令は、プロセッサ604にとってアクセス可能な非一時的ストレージ媒体において記憶されているときに、命令において指定された動作を実行するようにカスタマイズされる特殊目的マシンへとコンピュータシステム600を変える。
【0115】
コンピュータシステム600は、プロセッサ604のための静的情報および命令を記憶するためにバス602に結合されている、読み出し専用メモリ(ROM)608または他の静的ストレージデバイスをさらに含む。磁気ディスクまたは光学ディスクなどのストレージデバイス610が、設けられ、情報および命令を記憶するためにバス602に結合されている。
【0116】
コンピュータシステム600は、コンピュータユーザに情報を表示するために、陰極線管(CRT)などのディスプレイ612に、バス602を介して結合されていることがある。英数字および他のキーを含む入力デバイス614が、プロセッサ604に情報およびコマンド選択を伝達するためにバス602に結合されている。別のタイプのユーザ入力デバイスは、プロセッサ604に方向情報およびコマンド選択を伝達するための、ならびに、ディスプレイ612上のカーソル移動を制御するための、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御部616である。この入力デバイスは、典型的には、2つの軸、第1の軸(例えば、x)および第2の軸(例えば、y)における2つの自由度を有し、そのことによって、デバイスは、平面において位置を指定することが可能となる。
【0117】
コンピュータシステム600は、コンピュータシステムとの組み合わせにおいて、コンピュータシステム600が特殊目的マシンであることを生じさせる、または、コンピュータシステム600を特殊目的マシンであるようにプログラムする、カスタマイズされたハードワイヤード論理、1つもしくは複数のASICもしくはFPGA、ファームウェア、および/またはプログラム論理を使用して、本明細書において説明される技術を実現し得る。1つの実施形態によれば、本明細書における技術は、プロセッサ604が、メインメモリ606に内包される1つまたは複数の命令の1つまたは複数のシーケンスを実行することに応答して、コンピュータシステム600によって実行される。そのような命令は、ストレージデバイス610などの別のストレージ媒体から、メインメモリ606内へと読み込まれることがある。メインメモリ606に内包される命令のシーケンスの実行は、本明細書において説明されるプロセスステップを実行することをプロセッサ604に行わせる。代替的実施形態において、ハードワイヤード回路網が、ソフトウェア命令に代えて、または、ソフトウェア命令との組み合わせにおいて使用されることがある。
【0118】
本明細書において使用される際の用語「ストレージ媒体」は、特定の方式において動作することをマシンに行わせるデータおよび/または命令を記憶する任意の非一時的媒体を指す。そのようなストレージ媒体は、不揮発性媒体および/または揮発性媒体を含み得る。不揮発性媒体は、例えば、ストレージデバイス610などの光学または磁気ディスクを含む。揮発性媒体は、メインメモリ606などの動的メモリを含む。卑近の形式のストレージ媒体は、例えば、フロッピディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、または任意の他の磁気データストレージ媒体、CD-ROM、任意の他の光学データストレージ媒体、孔のパターンを伴う任意の物理媒体、RAM、PROM、およびEPROM、フラッシュEPROM、NVRAM、任意の他のメモリチップまたはカートリッジ、連想メモリ(CAM)、および三値連想メモリ(TCAM)を含む。
【0119】
ストレージ媒体は、伝送媒体とは別個であるが、伝送媒体と連関して使用されることがある。伝送媒体は、ストレージ媒体同士の間で情報を転送することに関与する。例えば、伝送媒体は、バス602を形作るワイヤを含めて、同軸ケーブル、銅ワイヤ、および光学ファイバを含む。伝送媒体は、さらには、無線波および赤外線データ通信中に生成されるものなどの、音響または光波の形式をとり得る。
【0120】
様々な形式の媒体が、実行のためにプロセッサ604に1つまたは複数の命令の1つまたは複数のシーケンスを搬送することに関わらせられることがある。例えば、命令は、初期に、リモートコンピュータの磁気ディスクまたはソリッドステートドライブ上で搬送されることがある。リモートコンピュータは、そのリモートコンピュータの動的メモリ内へと命令をロードし、モデムを使用して、電話回線越しに命令を送出し得る。コンピュータシステム600に対してローカルのモデムが、電話回線上のデータを受信し、データを赤外線信号に変換するために、赤外線送信器を使用し得る。赤外線検出器が、赤外線信号において搬送されたデータを受信し得るものであり、適切な回路網が、データをバス602上に配置し得る。バス602は、メインメモリ606にデータを搬送し、そのメインメモリ606から、プロセッサ604が、命令を取り出し実行する。メインメモリ606によって受信された命令は、任意選択で、プロセッサ604による実行の前または後のいずれかに、ストレージデバイス610上に記憶されることがある。
【0121】
コンピュータシステム600は、さらには、バス602に結合されている通信インターフェース618を含む。通信インターフェース618は、ローカルネットワーク622に接続されているネットワークリンク620への双方向データ通信結合を提供する。例えば、通信インターフェース618は、サービス総合デジタル網(ISDN)カード、ケーブルモデム、衛星モデム、または、対応するタイプの電話回線へのデータ通信接続を提供するためのモデムであり得る。別の例として、通信インターフェース618は、互換性LANへのデータ通信接続を提供するためのローカルエリアネットワーク(LAN)カードであり得る。ワイヤレスリンクが、さらには実現されることがある。任意のそのような実現形態において、通信インターフェース618は、様々なタイプの情報を表すデジタルデータストリームを搬送する、電気、電磁、または光学信号を送出および受信する。
【0122】
ネットワークリンク620は、典型的には、他のデータデバイスへの1つまたは複数のネットワークを通るデータ通信を提供する。例えば、ネットワークリンク620は、ホストコンピュータ624への、または、インターネットサービスプロバイダ(ISP)626によって動作させられるデータ機器への、ローカルネットワーク622を通る接続を提供し得る。ISP626は、同じように、今は一般に「インターネット」628と呼称される、世界的なパケットデータ通信ネットワークを通るデータ通信サービスを提供する。ローカルネットワーク622およびインターネット628は両方、デジタルデータストリームを搬送する、電気、電磁、または光学信号を使用する。デジタルデータをコンピュータシステム600に、およびコンピュータシステム600から搬送する、様々なネットワークを通る信号、ならびに、ネットワークリンク620上の、および、通信インターフェース618を通る信号は、例形式の伝送媒体である。
【0123】
コンピュータシステム600は、ネットワーク、ネットワークリンク620、および通信インターフェース618を通して、メッセージを送出し、プログラムコードを含むデータを受信し得る。インターネット例において、サーバ630が、インターネット628、ISP626、ローカルネットワーク622、および通信インターフェース618を通して、アプリケーションプログラムのための要求されたコードを送信し得る。
【0124】
受信されたコードは、そのコードが受信される際にプロセッサ604によって実行される、および/または、後程の実行のために、ストレージデバイス610もしくは他の不揮発性ストレージにおいて記憶されることがある。
【0125】
前述の本明細書において、本発明の実施形態は、実現形態ごとに変動し得る数多くの具体的な詳細を参照して説明された。本明細書および図面は、よって、制約的な観念よりもむしろ例示的な観念において顧慮されるべきである。本発明の範囲の唯一かつ排他的な指標、および、本発明の範囲であることを本出願人らによって意図されるものは、任意の後続の補正を含む、請求項が発行される特定の形式における、本出願から発行される請求項のセットの文言上および均等な範囲である。
図1
図2A
図2B
図3
図4A
図4B
図5A
図5B
図6
【国際調査報告】