(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-23
(45)【発行日】2023-01-06
(54)【発明の名称】障害分散システムコンポーネントの識別
(51)【国際特許分類】
H04L 45/243 20220101AFI20221226BHJP
H04L 41/0654 20220101ALI20221226BHJP
【FI】
H04L45/243
H04L41/0654
(21)【出願番号】P 2021510033
(86)(22)【出願日】2019-08-15
(86)【国際出願番号】 US2019046697
(87)【国際公開番号】W WO2020041097
(87)【国際公開日】2020-02-27
【審査請求日】2021-04-21
(32)【優先日】2018-08-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517336027
【氏名又は名称】モルガン スタンレー サービシーズ グループ,インコーポレイテッド
【氏名又は名称原語表記】MORGAN STANLEY SERVICES GROUP,INC.
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】ハドルストン,リチャード
(72)【発明者】
【氏名】ジェッダ,アフメド
【審査官】野元 久道
(56)【参考文献】
【文献】米国特許出願公開第2017/0339022(US,A1)
【文献】特開2013-051542(JP,A)
【文献】国際公開第2004/088940(WO,A1)
【文献】特開2014-171076(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 45/00
H04L 41/00
(57)【特許請求の範囲】
【請求項1】
データルータの不具合を検出するためのシステムであって:
1又は複数の低遅延のパケットモニタであって、該パケットモニタの各々は、
データルータと中央リポジトリとの間にネットワーク経路に沿って置かれ、前記データルータは、入力データストリームを受信すると共に前記入力データストリームの選択されたサブセットのコピーである出力データストリームを
前記中央リポジトリに転送する、ように構成され
、前記1又は複数の低遅延のパケットモニタの各々は、前記出力データストリームを受信すると共に前記出力データストリームを分析コンピューティングデバイスに転送する、1又は複数の低遅延のパケットモニタを備え;
前記分析コンピューティングデバイスは、電子命令を格納し、該電子命令は、前記分析コンピューティングデバイスのプロセッサによって実行されるとき、前記分析コンピューティングデバイスに
前記1又は複数の低遅延のパケットモニタから、転送された前記出力データストリームを一連の時間ウインドウにわたって受信させ、
前記一連の時間ウインドウにわたる前記出力データストリームからのデータを長短期記憶(LSTM)ニューラルネットワークに供給させ、
前記LSTMニューラルネットワークを用いて、特定のデータルータの前記出力データストリームが前記特定のデータルータにおけるソフトウエア障害又はハードウエア障害のため前記入力データストリームの破損を含む確率を特定させ、及び
前記確率が所定のしきい値を超えることを特定することに応答を示し、前記入力データストリームの破損を含む前記出力データストリームを停止させるために電子メッセージを前記特定のデータルータに送信させる、
システム。
【請求項2】
2又はより多くの低遅延のパケットモニタを備え、前記2又はより多くの低遅延のパケットモニタの各々は、2又はより多くのデータルータ
の1つと前記中央リポジトリとの間に前記ネットワーク経路に沿って置かれ、
前記入力データストリームのパケットは、基礎データに加えて識別子を含み、前記識別子は、
前記入力データストリームのデータの分割により前記2又はより多くのデータルータの間の負荷
バランシングを行うために使用され、前記入力データストリームの選択された前記サブセットは、前記識別子に、少なくとも部分的に、基づいて選択される、
請求項1に記載のシステム。
【請求項3】
前記識別子は、ハッシュ関数を介して渡されて
前記負荷
バランシングを行うことを容易にする、
請求項2に記載のシステム。
【請求項4】
前記入力データストリームの選択された前記サブセットは、前記識別子において文字、数字、又は部分列(サブストリング)の存在に、少なくとも部分的に基づいて選択される、
請求項2に記載のシステム。
【請求項5】
前記出力データストリームが前記入力データストリームの破損を含むという前記確率を特定することは、変化の統計的に起こりそうにない欠如が、前記出力データストリームにおける所定の予期された変化を所与として出力データストリーム内に存在する、ことを特定することを含む、
請求項1に記載のシステム。
【請求項6】
前記出力データストリームが前記入力データストリームの破損を含むという前記確率を特定することは、前記特定のデータルータが、以前の比較期間中に観測された量又は大きさより大きな大きさでの値を持つ又はより大きな量での、データを出力していることを特定することを含む、
請求項1に記載のシステム。
【請求項7】
前記入力データストリームの破損を含む前記出力データストリームを停止させるために前記電子メッセージを送信することは、前記特定のデータルータによって許可されたデータ送信の範囲を制限することを含む、
請求項1に記載のシステム。
【請求項8】
前記入力データストリームの破損を含む前記出力データストリームを停止させるために前記電子メッセージを送信することは、前記特定のデータルータの代わりに、別のデータルータに、前記入力データストリームの選択された前記サブセットに作用させることを含む、
請求項1に記載のシステム。
【請求項9】
データルータの不具合を検出するためのコンピュータにより実施可能な方法であって:
コンピューティングデバイスによって、低遅延パケットモニタから、また一連の時間ウインドウにわたって、データルータからの出力データストリームを受信することであって、前記データルータは、入力データストリームを受信すると共に前記入力データストリームの選択されたサブセットをそれの出力データストリームとして転送するように構成される、出力データストリームを受信すること;
前記コンピューティングデバイスによってまた長短期メモリ(LSTM)ニューラルネットワーク内に、前記一連の時間ウインドウにわたって前記出力データストリームから受信されたデータを入力すること;
前記コンピューティングデバイスによってまた前記LSTMニューラルネットワークを用いて
、現在の時間ウインドウからの受信されたデータが前記データルータにおけるソフトウェア障害又はハードウェア障害による前記入力データストリームの破損を表すという確率を特定すること;及び
前記確率が所定のしきい値を超えることを特定することに応答を示し、前記データルータの出力を変更すると共に前記入力データストリームからのデータの正確なコピーではない前記データルータによるデータの出力を妨げるために、前記データルータに電子メッセージを自動的に送信すること
を備える方法。
【請求項10】
前記入力データストリームのパケットは、基礎データに加えて識別子を含み、前記識別子は、
前記入力データストリームのデータの分割により前記データルータと1又は複数の他のデータルータとの間において負荷
バランシングを行うために使用され、前記入力データストリームの選択された前記サブセットは、前記識別子に、少なくとも部分的に、基づいて選択される、
請求項9に記載の方法。
【請求項11】
前記識別子は、ハッシュ関数を介して渡されて前記負荷
バランシングを行うことを容易にする、
請求項10に記載の方法。
【請求項12】
前記入力データストリームの選択された前記サブセットは、前記識別子において文字、数字、又は部分列(サブストリング)が存在することに、少なくとも部分的に、基づいて選択される、
請求項10に記載の方法。
【請求項13】
前記出力データストリームが前記入力データストリームの破損を含むという前記確率を特定することは、変化の統計的に起こりそうにない欠如が、前記出力データストリームにおいて所定の予期された変化を所与として出力データストリームに存在する、ことを特定することを含む、
請求項9に記載の方法。
【請求項14】
前記出力データストリームが前記入力データストリームの破損を含むという前記確率を特定することは、前記データルータが、以前の比較期間中に観測された量又は大きさより大きな大きさで値を持つ又はより大きな量での、データを出力していることを特定することを含む、
請求項9に記載の方法。
【請求項15】
前記出力を変更するために前記電子メッセージを送信することは、前記データルータによって許可されたデータ送信の範囲を制限することを含む、
請求項9に記載の方法。
【請求項16】
前記出力を変更するために前記電子メッセージを送信することは、別のデータルータに、代わりに前記入力データストリームの選択された前記サブセットに作用させることを含む、
請求項9に記載の方法。
【請求項17】
前記出力データストリームが前記入力データストリームの破損を含むという前記確率を特定することは、前記出力データストリームが過去の時間インターバル中にいくつかのクエリを含んだことと、及び現在の時間インターバル中に、前記過去の時間インターバルからのクエリへの受信した応答の数に対する前記現在の時間インターバル中の新しいクエリの数の比が所定の範囲にないことと、を特定することを含む、
請求項1に記載されたシステム。
【請求項18】
前記入力データストリームの破損を含む前記出力データストリームを停止させるために前記電子メッセージを送信することは、前記特定のデータルータに全ての外向き送信を停止させることを含む、
請求項1に記載されたシステム。
【請求項19】
前記現在の時間ウインドウからの受信したデータが前記入力データストリームの破損を示すという前記確率を特定することは、前記出力データストリームが過去の時間インターバル中に一組のクエリを含んだことと、
前記現在の時間インターバル中に、前記過去の時間インターバルからのクエリへの受信した応答の数に対する前記現在の時間インターバル中の新しいクエリの数の比が所定の範囲にないことと、を特定することを含む、
請求項9に記載された方法。
【請求項20】
前記出力を変更するために前記電子メッセージを送信することは、前記データルータに全ての外向き送信を停止させることを含む、
請求項9に記載された方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ネットワークの完全性及び機能性を保証するためのシステム及び方法に関するものであり、より具体的には、電子通信ネットワークにおけるノード及びルータによる異常な活動を識別し、また対処することに関する。
【背景技術】
【0002】
多くのタイプのコンピュータネットワークにおいて、ネットワークの反対側にある種々の動作主体又はコンピューティングデバイスは、受信したデータパケットを適切な宛先に正確に再送しまたルーティングするために、種々の中間ルータに依存する。一部のネットワークでは、ルータには、データの最終宛先に転送する前に、該受信データを集約すること、変更すること、又はフィルタ処理することを追加的に仕事として課すことができる。
【0003】
これらのデータルータの1つにおいてソフトウェア又はハードウェアの障害が発生すると、送信されているデータの完全性に依存するユーザに関して重大な悪影響に至ることがある。例えば、気象データルータは、実際に竜巻が近くで形成し始めているときに、状況が安全であると報告することがあり、受信されず受信確認されなかったと該ルータが考える古い風速データを繰り返すため、また送信されたものとしてキュー内の古いデータが確認されるまで新しいデータを送信し損なう。高頻度のストック注文ルータは、間違った情報を該ルータが送信し及び市場が誤った売りオファーを遂行し又は一市場参加者によって為されたらしいオファーに反応する場合に、何百万ドルもの損害を引き起こすことがあり、またパニック又は急落(セルオフ)の引き金になることさえあり得る。ミッションクリティカルなウェブサイトは、ファイアウォール又は他のフィルタが、フィルタ処理により除かれるべきであったトラフィックが中央サーバへ通る状態を誤って許していた場合、サービス妨害攻撃によってシャットダウンされる可能性がある。
【0004】
その結果、コンピュータネットワーク内において、任意のノードを迅速に識別できまた対処できることに価値があり、該ノードはこのノードによって受信されたデータを忠実かつ正確に受け渡しせず又は処理していないものであり、且つこのノードに、そのデータの正確性を信頼する宛先において影響を与える。
【発明の概要】
【0005】
本開示の一態様によれば、通信ネットワークノードの不具合を検出するためのシステムが開示されており、該システムは、1又は複数の低遅延のパケットモニタであって、該パケットモニタの各々は、データルータと中央リポジトリとの間に配置される、1又は複数の低遅延のパケットモニタと、データ分析エンジンと、を備える。1又は複数の低遅延のパケットモニタは、データルータから向けられた第1データストリームを受信しまた中央リポジトリへ向けられた該第1データストリームを転送するように構成され、データルータは、第2データストリームの選択されたサブセットのコピーとして第1データストリームを生成する。データ分析エンジンは、1又は複数の低遅延のパケットモニタから、第1データストリームのコピーを受信し;データルータにおけるソフトウエア又はハードウエアの障害のため第2データストリームの破損を第1データストリームが含む見込みを、第1データストリームの受信したコピーに基づき、特定し;及び、破損の見込みが所定のしきい値を超えるという特定に応答し、第2データストリームの破損を停止させるために電子メッセージを送信する、ように構成される。
【0006】
本開示の別の態様によれば、通信ネットワークノードの不具合(malfunction)を検出するためのコンピュータにより実施可能な方法は:第2データストリームの選択されたサブセットのコピーとしてデータルータによって生成されると共に中央リポジトリに向けられた第1データストリームのコピーを、1又は複数の低遅延パケットモニタから受信すること;データルータにおけるソフトウェア又はハードウェアの障害(failure)による第2データストリームの破損を第1データストリームが含む見込みを、第1データストリームの受信されたコピーに基づき特定すること;及び、破損の見込みが所定のしきい値を超えるという特定に応答し、第2データストリームの破損を停止させるために、電子メッセージを送信すること、を備える。
【0007】
本開示の別の態様によれば、通信ネットワークノードの不具合を検出するためのコンピュータにより実施される方法が開示され、該方法は、通信ネットワークノードによって出力された第1データストリームからのデータの連続的な時間ウィンドウを受信すると共に該時間ウィンドウをLSTMニューラルネットワークへ入力すること;及び、第1データストリームからのデータの以前に受信した時間ウィンドウ及び第2データストリームからの履歴情報に基づき、第1データストリームからのデータの現在受信した時間ウィンドウが第2データストリームからのサブセットの正確なコピーを表していたという確率を、各時間ウィンドウの後に、特定すること;及び、確率が所定のしきい値を超えるという特定に応答し、前記通信ネットワークノードの出力を変更することと第2データストリームからのサブセットの正確なコピーではない該通信ネットワークノードによるデータの任意の出力を防止することのために、電子メッセージを通信ネットワークノードに送信すること、を備える。通信ネットワークノードの出力を変更することは、第2データストリームの複数のソースのサブセットからの受信を妨げること、又は通信ネットワークノードによる第1データストリームの目的地のサブセットへの送信を妨げることを含み得る。
【図面の簡単な説明】
【0008】
【
図1】
図1は、簡略化された形式で、従来技術の通信ネットワークを示す。
【0009】
【
図2】
図2は、簡略化された形式で、本明細書で開示されたシステム及び方法において使用できる通信ネットワークを示す。
【0010】
【
図3】
図3は、簡略化された形式で、本明細書で開示されたシステム及び方法と一緒に使用するための通信ネットワークモデルの抽象表現を簡略化して示す。
【0011】
【
図4】
図4は、簡略化された形式で、
図2及び
図3に例示されたネットワークにおける異常検出の好ましい方法を示す。
【0012】
【
図5】
図5は、簡略化された形式で、
図4に例示された方法における異常検出分析への改良を示す。
【0013】
【0014】
【
図7】
図7は、本明細書で説明された様々な特徴及びプロセスを実施するために利用され得る代表的なコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【0015】
図1に示されたネットワークといったコンピュータネットワークにおけるソフトウェア又はハードウェアの不具合による、物理的損害、技術的障害、又は金銭的損害を引き起こしまたデータ品質を落とす(汚染する)ネットワークノードの上記で強調された危険は、
図2及び引き続く図面に例示されたネットワーク性能の監視及び評価のためのシステムによって対処されることができる。
【0016】
図1を参照すると、ネットワークは、いくつかのデータ出所101a、101b等を含むことができ、該データ出所は、一組のデータルータl02a、l02b等からの少なくとも1つのデータルータにデータを渡す。
図1における矢印は、矢印によって指し示された方向によって表されるように、双方向又は一方向であるデータ伝送を示すために使用される。各データルータ102は、次に、直接的に、又は中間ルータ及び/若しくはコンピュータネットワーク103を手段として、該データを1又は複数の中央リポジトリl04a、l04b等に渡すことができる。中間ルータ及び/又はコンピュータネットワーク103は、実際には、単一ネットワーク又は一組の結合ネットワークのいずれかを表すことができる;
図1に示されるように、ルータ102の各々とリポジトリ104との間に相互接続性があるように見えるけれども、クロスコネクション無しに、1つのルータ102と1つのリポジトリ104との間に複数の並列接続がありうる。
【0017】
いつかの実施例において、データ記憶装置105は、中央リポジトリl04a~l04nから情報を受け取って、追加情報をデータルータ102に入力しており、該追加情報は、中央リポジトリ104に該データを渡す前に、データ出所101a~101nから受信した該データを変更する際に、又は、データがいくつかのうちのどの中央リポジトリに送信されるべきかを特定する際に、データルータ102において考慮される。
【0018】
ある実施例では、データ出所101a~101nは、株式仲買人に関連付けられたコンピューティングデバイスであり得ており、中央リポジトリl04a~l04nは、株式取引所であり得ており、各データルータ102は、注文を実行する複数の株式取引所間において資産の買い及び売りの注文をどのように分割しまた割り当てるかを特定するように構成されたルータであり得ており、データ記憶装置105は、所与の価格における所与の取引(transaction)が可能であるかどうかを該データルータに知らせるために、資産の価格及びオファーをリアルタイムに追跡するデータベースであり得る。
【0019】
別の実施例では、データ出所101a~101nは、限られた通信範囲を持つ気象センサであり得ており、各データルータ102は、気象データの受信器、照合器及び再送信器であり得ており、中央リポジトリl04a~l04nは、全国的な気象サービス、又は天気予報士に関連付けられたコンピューティングデバイスであり得る。
【0020】
第3の実施例では、データ出所101a~101nは、選挙中の電子投票機であり得ており、中央リポジトリl04a~l04nは、州の部署又は地方選挙委員会に関連付けられたコンピューティングデバイスであり得ており、各データルータ102は、選挙区全体にわたる最終得票数における算入のために送信する前に、所与の地区での候補者毎の総投票を集計するノードであり得る。
【0021】
第4の実施例では、データ出所101a~101nは、個々の消費者のコンピューティングデバイスであり得ており、中央リポジトリl04a~l04nは、ウェブサイト及び他のファイルのサーバであり得るものであり、各データルータ102には、中央リポジトリ間における入ってくるHTTP(ハイパーテキスト転送プロトコル)及びFTP(ファイル転送プロトコル)のリクエストをローカルに釣り合わせる仕事、又は中央リポジトリがサービス拒否攻撃を受けることを妨げる仕事を課し得るものであり、データ記憶装置105は、特定のリクエストがどのように転送されるべきか、又は特定のリクエストがサービス拒否の試みとして扱われるべきか、を知らせるために、各中央リポジトリl04a~l04nの現在の利用率又は各データ出所101a~101nからの実行中の総リクエスト数を追跡し得るものである。
【0022】
図2は、簡略化された形態で、本明細書で開示されるシステム及び方法において使用することができる通信ネットワークを示す。
【0023】
図2をここで参照しながら、1又は複数のパケットキャプチャノードl06a、l06b、...106hが、データルータl02a~l02nと1又は複数の中央リポジトリ104との間において、
図1に説明されたネットワークに追加されることができる。パケットキャプチャノード106は、分析エンジンデバイス107にデータのコピーを渡すだけでなく、変更されていないデータを中央リポジトリl04a~l04nに同時に渡す低遅延ネットワークリピータであり得る。
【0024】
分析エンジン107は、以下のものに関して、データルータ102におけるソフトウェア又はハードウェアの不具合がデータ出力における破損を引き起こすかもしれなかったかを特定するように、また中央リポジトリl04a~l04nに進むデータを処理するように構成されてもよい:複数回繰り返された単一の送信であるべきだったものに関して;データルータ102において創出される送信データであってデータ出所101からの送信に基づかなかった送信データに関して;単一の中央リポジトリ104に送信する用であって代わりに複数の中央リポジトリに送信されるべき送信に関して;又は、ネットワーク内における他の意図しないデータ送信に関して。分析エンジン107は、また、中央リポジトリl04a~l04nのうちの1又は複数に接続されてもよく、また中央リポジトリl04a~l04nのうちの1又は複数から直接にデータを受信してもよい。
【0025】
図3は、簡略化された形態で、本明細書で開示されたシステム及び方法と共に使用するための通信ネットワークモデルの抽象表現を示す。
【0026】
図3を次に参照すると、入力データは、一連のエントリノード201によって生成され、又は一連のエントリノード201において様々なソースから受信され得る。該入力データは、システムの用途に応じて、センサデータ(例えば、オーディオ、ビデオ、温度、位置、動き、振動、湿度、圧力、等)、人間が生成したデータ(例えば、投票、購入注文、HTTPリクエスト、電子メール若しくはテキストメッセージといった通信、等)に基づく入力、又は他の構造化データであることができる。
【0027】
各エントリノード201は、複数の目的地ノード204の1つにデータを渡す目的の仕事を課す複数のルータノード202の各々に相互接続されてもよい。目的地ノード204は、受信された入力データに基づき出力データを転送する、又はデバイスの機能を起動し若しくは確認応答を送信する、といった何らかの方法でデータに作用する。ルータノード202と目的地ノード204との間には、複数のキャプチャノード203が挿入されることができ、複数のキャプチャノード203は、ルータノード202によって送信されたデータを、変更無くそのまま、受信し、記録し、及び転送するように構成される。
【0028】
エントリノード201は、
図1及び
図2におけるデータ出所101に対応してもよく、ルータノード202は、
図1及び
図2におけるデータルータ102に対応してもよく、目的地ノード204は、
図1及び
図2における中央リポジトリ104に対応してもよく、キャプチャノード203は、
図2におけるパケットキャプチャノード106に対応してもよい。
【0029】
データ出所201から複数のデータルータ202へデータを分割することが、負荷バランシングの目的のために行われてもよく、その結果、全てのデータルータ202は、可能な限り低遅延のままである。該分割は、また、該データ伝送を一意に処理し又は受信できる特定の目的地ノード204に特定のデータ伝送が渡される必要がある場合、必要だとして実行されてもよく、また特定のデータルータ202は、その目的地ノードに結合された唯一のルータである。最後に、該分割は、データ伝送タイプを特定のデータルータ202に任意に割り当てるために使用されることができ、その結果、データ伝送タイプは、ハッシュ関数又は他の識別子の出力といった、基礎となるデータを反映しない手段によってソート(仕分け)される。
【0030】
どのデータルータ202がデータ出所201からの特定のデータ送信を処理するかという決定は、ある実施例では、データルータの現在の使用率を示す各データルータ202からの入力を考慮に入れる負荷バランサ、又は送信毎にデータルータ202を無作為に選択する負荷バランサといった、データ出所201自体上のソフトウェアによって為されてもよい。他の実施例では、データ出所201は、ダウンストリーム・ネットワークのトポロジに関してアグノスティック(非依存)であってもよく、該決定は、データルータ202の各々によって行われてもよく、該データルータは、データ出所201からブロードキャストを受信すると共に、所与のデータルータ(例えば、全ての気象報告を聞くが特定の地域からのもののみを転送するルータ、又は「Z」で始まる銘柄記号に関するもののみを処理するルータ)が該送信を取り扱うことを意図しているかを決定するために、送信の特性を利用する。
【0031】
ルータノード202と目的地ノード204との間のネットワークは、単一の一連の直接の並列接続であってもよく、又は、代わりに、潜在的にインターネットを含む、未知のトポロジのより複雑な相互接続ネットワークであってもよい。好ましい実施例では、キャプチャノード203は、各キャプチャノードが、単一のルータノードからのデータを、該データが送信された後できるだけ早く、キャプチャして、エントリノード201において又はルータノードにおいて、不具合を示唆するルータノードからの出力における異常を検出するように、ルータノード202から直の下流に置かれるべきであり、ここで、該ルータノードは、エントリノード201からデータを受信している。他の実施例では、キャプチャノード203は、該ノード間で渡されたデータをキャプチャする限り、ルータノード202と目的地ノード204との間のどこか別の場所に置かれてもよい。
【0032】
ある実施例では、キャプチャノード203は、キャプチャ機能と分析機能との両方を(例えば、余分な処理が目的地ノード204へのデータの転送を遅らせるとしても、データ異常をできるだけ早く識別することが重要な状況では)供給してもよく、一方で、他の例では、キャプチャノードは、該データを目的地ノード204と分析のための別個のデバイスとの両方に(例えば、低遅延のデータ転送が重要であると共に別個のデバイスへの転送からの異常検出の遅延が許容される状況では)転送してもよい。
【0033】
キャプチャノード203が、低遅延のパケット中継器としてデータを無分別に転送する代わりに分析機能を実行する場合、該キャプチャノードは、所与のデータ入力が生じる確率分布を生成するために使用されることができる。
【0034】
例えば、気象レポートのデータを転送するシステムは、正確であると推定される観測値を使用して、また時間の経過にわたって、所与の時節中の所与の日時が、気温、降水量、風速の各々に関するあるベースライン確率分布を有することを特定することができる。このベースライン確率分布は、真の気象観測が現在報告されている値を返す可能性がどのくらい起こりそうもないかを判定するために、現在観測されているデータと比較され、また、起こり難さがある確率しきい値を超えた場合に該システムを調査し又はシャットダウンする通知を潜在的に起動することができる。
【0035】
同様に、別の実施例では、株注文ルータからの出力を検査(レビュー、再検査)するシステムは、典型的には、一緒に上昇又は下降しそうな2つの技術的に関連する株式、又は貴金属地金及び国内通貨のような補完的資産といった、2つの資産の頻繁の取引又は価格における変化の間に強い共分散又は逆分散が存在することを特定することができ、ここで、一方の資産の価値の低下は、他方の資産の急激な購入を引き起こしそうであり、また価格を上昇させそうである。
【0036】
複数のキャプチャノードの各々が類似データの特定のサブセットを処理しており、該複数のキャプチャノードを使用することによって、確率分布は、特に起こりそうにないように思われる入力データ状態に対してより具体的であり、またより敏感であるように、ノード当たりを基本にして、時間にわたって再規定され得る。
【0037】
図4は、簡略化された形態で、
図2及び
図3に図示されたネットワークにおける異常検出の好ましい方法を示す。
【0038】
図4をここで参照すると、分析エンジン107は、1又は複数のパケットキャプチャノード106から、全てのデータ、又は全のデータのダイジェスト(概要、要約)を受信することができ、全てのデータ又はそのダイジェストは、所与の時間ウィンドウにわたってデータルータ102によって送信される(ステップ301)。いくつかの実施例では、該時間ウィンドウは10ミリ秒であってもよい。他の実施例では、時間ウィンドウは、データアプリケーションに応じて、短か目でも長が目でもよく、また、ミッションクリティカルなウェブサイト、高頻度の取引、又は航空機ナビゲーションのファイアウォールを設けること(firewalling)を伴うアプリケーションでは、例えば、10ミリ秒未満のウィンドウが好ましく、気象学といったあまり重大(critical)でないアプリケーションでは、1秒又は複数秒といったより長いウィンドウが許容可能であり得る。
【0039】
いくつかの実施例では、分析エンジン107は、また、同じ所与の時間ウィンドウにわたって中央リポジトリl04a~l04nから、全てのデータ、又は全てのデータのダイジェストを、任意選択で、受信してもよい(ステップ302)。
【0040】
分析エンジンは、ソフトウェア、ハードウェア、又はネットワークの障害(fault)若しくは故障(failure)を示す異常がデータルータ102に関連して発生したかを特定するために、時間ウィンドウにわたって出力データの挙動、加えて、存在する場合には、中央リポジトリからのデータを分析してもよい(ステップ303)。
【0041】
幾つかの実施例において、該分析は、特定のデータルータ102から出力されたデータと中央リポジトリl04a~104hから受信されたデータとの間の共分散を特定することを含んでいてもよい。例えば、ストック注文ルータとして機能する特定のデータルータ102は、あるタイプのアクティビティ又はある資産に関連するアクティビティを突然に10倍に増加させることがあり、またある期間にわたってアクティビティを維持することがあり、一方、株式マーケットの全体的なアクティビティは本質的に不変のままである。そのような状況では、挙動の分散(variance)は、ストック注文ルータによって生成されると共に取引所に転送される注文において何らかの種類の障害を示していそうである。別の例では、特定のデータルータ102は、気象センサからのデータを転送してもよく、また同じ地理的エリア内の他のルータ及びセンサによって報告されていないセンサからの温度又は風速における突然の上昇を報告してもよく、予測されなかった局所的なホットスポット又は暴風よりはむしろ、ルータによる起こりうる不具合を示すことができる。
【0042】
いくつかの実施例では、分析は、特定のデータルータ102からのデータ出力に異常なデータの大きさが存在することを特定することを含み得る。例えば、ストック注文ルータとして機能する特定のデータルータ102は、マーケット内の現在の販売オファー及び価格履歴を所与として、異常に高い価格において資産を購入するオファーを開始するかもしれない。異常な価格のオファーは、以下のいずれかを示すことができる:人間の実在物(エンティティ)によって決して要求されなかった注文をストック注文ルータが生成していること;又は、マーケット条件における変化を所与として注文が不合理であろう時点、数分後までの時点において、生成されたときに合理的であった注文が配送されていないことを、高いレベルのネットワーク待ち時間が生じさせていること。別の例では、選挙における投票機からのデータを集約すると共に順送りする特定のデータルータ102は、選挙区に関する履歴投票データをはるかに超える、又は、選挙区内の登録された投票者の数さえも超える、投票の大きさを報告することがあり、投票機の完全性の検証が実行され得るまで、データが信頼されることができそうに無いこと、及びデータが正式な結果から除外されるべきであること、を示す。
【0043】
いくつかの実施例では、該分析は、特定のデータルータ102からのデータ出力において異常なデータ報告レートが存在することを特定することを含むことができる。例えば、ストック注文ルータとして機能する特定のデータルータ102は、類似のウィンドウにおける取引の履歴数を大幅に超える、所与の時間ウィンドウにおける取引量を報告することを開始することができる。量における該変化は、ストック注文ルータによって生成し始める買い又は売りの注文を示すことができるものであって、買い又は売りの注文は、人間の意図によって決して生成されなかったもの、取引を為す人工知能システムにおけるソフトウェア障害のため生成されたもの、又は売り又は買いの大規模な注文を、より小規模な株式仲買人によってかなえられ得る複数のそのような注文へ不適切に「小さく切る(slice:スライスする)」ことの一部として生成されたものである。別の実施例では、コンテンツサーバのためのファイアウォール又は負荷バランサとして機能する特定のデータルータ102は、ファイアウォール段において適切に処理(address)されていないコンテンツサーバ上の未遂のサービス妨害攻撃を示す、不合理に大量のHTTPリクエストが通過することを可能にすることがないとは言い切れない。
【0044】
いくつかの実施例では、該分析は、特定のデータルータ102によって促進されている1組の双方向の取引(トランザクション)において異常な実行率が存在することを特定することを含んでもよい。例えば、ストック注文ルータとして機能する特定のデータルータ102は、マーケットが一般に注文をかなえるよりはるかに高い又ははるかに低い率で、新たな買い注文又は売り注文を生成することがある。以下の場合に、意図しない取引オファー若しくは許容できないレベルのネットワーク待ち時間を生成するソフトウェア障害、又は転送された注文を遅延させる他のルータエラーを示すことがある:ストック注文ルータが、非常に多くの買い注文又は売り注文を生成し始めるので生成された注文の80%未満が所定の時間ウィンドウにわたって遂行される場合;又は、ストック注文ルータが、時間ウィンドウにおいて遂行された注文数がその時間ウィンドウ内に生成された注文の120%を超えるように買い注文又は売り注文の量において下げ始める場合。別の例では、コンテンツサーバのためのファイアウォール又は負荷バランサとして機能する特定のデータルータ102は、既存のリクエストの80%未満がコンテンツサーバによってかなえられたにもかかわらず、HTTPリクエストを許可し続けることがある。この大きさの不均衡は、以下のことを示す可能性がある:エンドユーザが、コンテンツを、該コンテンツを受信することを待たずに、繰り返し要求することによってコンテンツルータに対してサービス妨害攻撃を試みていること;又は、ネットワーク障害が、ファイアウォールに、リクエストが受信されたというコンテンツサーバからの確認応答を受け取らせず、また負荷バランサが不必要にリクエストを繰り返していること。
【0045】
分析エンジンが、データルータ102による異常な挙動を特定した場合、分析エンジンは、該異常な挙動に直接的又は間接的に停止させるために、事前に構成されたアクションを実行することができる(ステップ304)。このアクションは、次の任意の1又は複数であり得る:該異常が警告されるべき人間のユーザを識別し、また電子メッセージを生成することであって、該電子メッセージは、ユーザに関連付けられたユーザアカウント(メール、テキストアカウント、ソーシャルネットワーキングプロファイル等)又はコンピューティングデバイス(デスクトップコンピュータ、携帯電話、ポケットベル等)に配信されるべきデータルータ102を識別すること;データルータ102を完全にシャットダウンすること;(特定の資産のための買い又は売りのオファーをルート指定で送付するために、ストック注文ルータの能力を限定すること;あるネットワークアドレスによって為されたリクエストを転送することからのファイアウォールを制限する)データルータ102に利用可能な潜在的なデータタイプのサブセットのみに、データルータ102によって許されたデータ取引(トランザクション)を部分的に限定すること;データルータ102がデータを受信することを許可されている一組のデータ出所101a~101nを制限すること;データルータ102がデータを送信することを許可されている一組の中央リポジトリl04a~104hを制限すること;中間のルータに、データルータ102によって生成された正しくないと疑われる一部又は全てのデータをフィルタ処理で除かせること;ネットワークに、データルータ102を迂回させると共に、データ源(データソース)101a~101n及び中央リポジトリl04a~l04nを接続するために他のデータルータを使用させること。
【0046】
異常な挙動のないことがデータルータ102において特定されない場合、より多くの送信されたデータが受信され(ステップ301)、データルータの挙動の監視が観察され続ける。
【0047】
図5は、簡略化した形態で、送信されたデータを受信する前の追加の設定のステップ(ステップ301)、及び可能な分析ステップの追加の説明(ステップ303)と一緒に、
図4に示された方法における異常検出分析の改良を示す。
【0048】
図5を参照すると、好ましい実施例では、データ源101a~101nからのデータを処理するための任務は、複数のデータルータl02a、l02b等のうちで分割されてもよく、各データルータ102は、データ源101a~101nによる全データ転送の定義されたサブセットを取り扱う(ステップ401)。
【0049】
好ましい実施例では、ハッシュ関数の形態が、データ源101a~101nからデータルータ102の各々へのデータ伝送の可能なタイプ、意味、又は重要性を割り当てる(ステップ402)。例えば、データルータ102がストック注文ルータである場合、データルータは、各々、文字又は一群の文字を割り当て得て、またその文字又は一群の文字でティッカー(ticker)シンボルが始まる資産を買う又は売るリクエストのみを処理しまた転送し得る。同様に、データルータ102が負荷バランサである場合、データルータは、各々、数字又は一群の数字を割り当てられ、最下位数字といった特定の位置にそれらの数字を持つIP(インターネット プロトコル)アドレスからのみの要求を処理し得る。第3例では、ここではデータルータ102は気象データのルータであって、データルータは、測候所に、該測候所の名称、又は各測候所に付与されたシリアル番号に基づき割り当てられ得る。
【0050】
いくつかの実施例では、より堅牢な暗号レベルのハッシュ関数(例えば、MD5(メッセージ ダイジェスト アルゴリズム)又はSHA(セキュア ハッシュ アルゴリズム)の出力の値、データルータの数のモジュラス(法、剰余、modulus))が、全てのデータルータ102間のデューティの一様なかつ予測不可能なランダムな分布を実質的に保証するために使用され得ており、しかし、全ての実施例では、関数がコンテンツ自体から実質的に独立したデータ型又はデータコンテンツに値を割り当てることが単に好ましいだけであり、その結果、似てないデータコンテンツが、各ルータにおいてグループ分けされる。
【0051】
結果的に、特定のデータルータ102のデータ出力における統計的に有意な逸脱は、基礎となる受信されたデータにおける逸脱によって引き起こされる可能性は非常に低く、なぜなら、データルータ102は、基礎となるデータ自体から分離されるソート機構に基づいて決定されたルート決めされたデータ全体のサブセットのみを処理しているからである。本物のソースデータにおける任意の(特定の産業における株価の突然の上昇、又は特定の場所における気象の突然の変化、といった)逸脱は、複数のデータルータのうちで均等に分散されるべきであり、また単一のデータルータからの出力において反映されるべきでない。
【0052】
長短期記憶(LSTM)ニューラルネットワークは、誤って繰り返された出力又はそうでなければ破壊された出力に対して対照的なものとして、特定のデータルータ102によって出力されたデータがそのデータルータの入力データを正確に表すという確率を0.0から1.0の間で評価しまた出力するために、分析エンジン107のメモリ内において初期化されることができる(ステップ402)。
【0053】
(ステップ301で受信されたものとして)一連の時間ウィンドウにわたる所与のデータルータ102による連続的な出力は、LSTMニューラルネットワーク内に供給され得る(ステップ403)。
【0054】
各時間ウィンドウの後に、LSTMニューラルネットワークは、破損又は他の異常な挙動の確率を特定しまた出力するために使用され(ステップ404)、また分析エンジン107は、該確率が所定のしきい値を上回っているかどうかを特定する(ステップ405)。分析エンジン107が考察するために上記で列挙された要因(すなわち、共分散、大きさ、レート、及び実行率)に加えて、LSTMニューラルネットワークが、ノード自体の履歴出力に対してネットワークノードの現在の出力を比較することを可能にして、エラーが、ノードに、出力を繰り返させているか、そのノード出力に系統的バイアスを表示させているか、さもなければ、特定のデータ点というよりは、むしろ傾向として、主に異常である挙動を表示させているか、を特定する。
【0055】
好ましい実施例では、しきい値は0.76に設定されることができる。該しきい値を、データルータからの品質データに依存する構成(organization)の異なるデータアプリケーション及び異なるリスク許容度に関して、別用に、要求に合わせて設定して(カスタマイズして)もよい。しきい値は、データルータ102が(特定のルータによって取引される全てではないが、いくつかの株(ストック)の正常な価格及び量、又は特定のルータによって転送された、局の全てではないがいくつかの局のための正常な温度及び風速といった)正確なデータを部分的に生成するように見える場合に、増加されてもよく、又はデータのアプリケーションの重要性が(異常に大きな合計金額の取引を転送する注文ルータ、又はハリケーン若しくは野火といった進行中の自然災害であると既に知られているものの期間中に完全に安全な条件を報告する気象ルータといった)特に重大である場合に、減少されてもよい。
【0056】
該確率又はデータ破損が、任意の、状況的な上向き又は下向きしきい値変更子、及び所定のしきい値を超えて上昇する場合、分析エンジン107が、データルータ102による出力を間接的又は直接的に止めるように起動されてもよい(ステップ304)。該確率を超えていない場合、データの新たな時間ウィンドウが受信され(ステップ301)、該LSTMに入力され(ステップ403)、及び該確率が更新される(ステップ404)。
【0057】
【0058】
図6をここで参照すると、資産マーケットにおける資産の売却及び購入の注文のための一組の注文ルータ501、502、及び503には、各々、アルファベットのサブセットを割り当てることができ、一組の注文ルータ501、502、及び503は、株式銘柄のティッカーシンボルが該サブセットの所与の文字で始まるすべての株式を処理することができる。与えられた例では、注文ルータ501は、文字A~Hを処理し、注文ルータ502は、I~Qを処理し、注文ルータ503は、文字R~Zを処理する。したがって、時間ウィンドウ504a、504b、504c、504d、及び504eのグラフィカル表示で図示されるように、注文ルータ501は、アップル(AAPL)のための注文を処理するように指定され、注文ルータ502は、マイクロソフト(MSFT)のための注文を処理するように指定され、注文ルータ503は、テスラ(TSLA)のための注文を処理するように指定されるであろう。各株式シンボルの隣のバー(bar)の大きさは、所与の時間ウィンドウ中の株式の平均価格及び総量を示す。
【0059】
時刻504aでは、3つのルータ全てが、株の量及び価格の本質的にランダムな分布を表示する。これに従って、注文ルータ501、502、及び503には、各々、データ破損が発生していると共に転送された注文のいずれかが偽であるという非常に低い確率505aが割り当てられることになる。
【0060】
時刻504bでは、2つの統計的に有意な状況が生じる。まず、データ出力501bは、50la中において出力されたデータと同一である。第2に、データ出力502bは、その3つの株式のうちの2つについて株式の価格及び数量における突然の顕著な増加を示す。確率505bは、同一に反復されたデータが極めて起こりにくいことと、資産の価格及び量の増加が、マーケットの他のセグメントにおいて反映されない場合、起こりにくいことと、を特定するLSTMの能力を反映するように更新される。
【0061】
時刻504cでは、データ出力50lcが注文ルータ501からの以前の出力と再び同一である。これは、3つの同一の出力が、実際の基礎となる市場状況であるよりは出力を繰り返すノード故障によって引き起こされる、という確率505cにおける大幅な増加をもたらす。この時点で、確率が0.76を超えると、分析エンジンは、エラーの原因が特定されることができるまで注文ルータ501からの出力を一時的に停止するように動作する。同様に、注文ルータ502が誤動作しているという確率における更なる増加が、維持された異常に高い価格及び量のため注目される。
【0062】
時刻504dでは、注文ルータ502が欠陥データを出力しているという確率505dは、LSTMニューラルネットワークによって0.76を超えると特定される。しかしながら、注文ルータ502によって取引されている少なくとも1つのシンボル(MSFT)は、正常に振る舞っているように依然として見えるので、注文ルータは、いわば「疑いの利益が与えられる」ものであり、そして、アクションのためのしきい値は、例えば代わりに0.80に設定される。
【0063】
時刻504eでは、注文ルータ502は、依然として異常に高い価格及び量を生成している。結果的に、確率505eは、より寛大なしきい値よりもさらに超えて増加し、またその注文ルータにおいて明白な欠陥に同様にうまく対処するために、注文ルータへ不良データを送付させている及び上流に存在し得るどんな欠陥をも最小限に抑えるために、処置が講じられる。
【0064】
図7は、本明細書に記載される様々な特徴及びプロセス、例えば、中間ルータ若しくはネットワークデバイス103、データルータl02a~l02n、データ出所101a~101nの機能、分析エンジン107、パケットキャプチャノードl06a~l06n、記憶装置105、及び/又は中央リポジトリl04a~l04nのインタフェイス、を実施するために利用され得る代表的なコンピューティングデバイスの高レベルブロック図である。該コンピューティングデバイスは、コンピュータシステムによって実行される、プログラムモジュールといったコンピュータシステムの実行可能な命令の汎用のコンテキストで記述されることができる。一般には、プログラムモジュールは、特定のタスクを実行する、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造、及びその他を含み得る。
【0065】
図7に示すように、コンピューティングデバイスは、専用コンピュータシステムの形態で例示される。コンピューティングデバイスの構成要素は、1又は複数のプロセッサ又は処理ユニット900、システムメモリ910、並びにメモリ910を含む様々なシステム構成要素をプロセッサ900に結合するバス915を含んでもよい(しかし、これらに限定されない)。
【0066】
バス915は、メモリバス又はメモリコントローラ、ペリフェラルバス、アクセラレイテッドグラフィックスポート、及び様々なバスアーキテクチャのいずれかを使用するプロセッサバス又はローカルバスを含む、いくつかのタイプのバス構造の任意のうちの1又は複数を表す。例示として、限定ではなく、そのようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、及びPCI(Peripheral Component Interconnect)バスを含む。
【0067】
処理ユニット900は、メモリ910に格納されたコンピュータプログラムを実行することができる。任意の適切なプログラミング言語が、C、C++、Java(登録商標)、アセンブリ言語、等を含む特定の実施例のルーチンを実施するために使用されることができる。手続き型又はオブジェクト指向といった異なるプログラミング技法を使用することができる。該ルーチンは、単一のコンピューティングデバイス又は複数のコンピューティングデバイス上で動作することができる。さらに、複数のプロセッサ900を使用してもよい。
【0068】
コンピューティングデバイスは、典型的には、コンピュータシステムにより読み取り可能である様々な媒体を含む。そのような媒体は、コンピューティングデバイスによってアクセス可能な任意の利用可能な媒体であることができ、揮発性及び不揮発性の媒体の両方、取外し可能(リムーバブル)及び取外し不能な(ノンリムーバブル)媒体の両方を含む。
【0069】
システムメモリ910は、ランダムアクセスメモリ920及び/又はキャッシュメモリ930といった揮発性メモリの形態でのコンピュータシステムにより読み取り可能な媒体を含むことができる。コンピューティングデバイスは、さらに、他の取り外し可能/取り外し不能な、揮発性/不揮発性のコンピュータシステム記憶媒体を含み得る。ほんの一例として、記憶システム940は、取り外し不能な不揮発性磁気媒体(図示せず、典型的には「ハードドライブ」と呼ばれる)からの読み取り及び該媒体への書き込みのために設けられることができる。図示しないが、取り外し可能な不揮発性の磁気ディスク(例えば、「フロッピー(登録商標)ディスク」)からの読み取り及び該ディスクへの書き込みのための磁気ディスクドライブ、及びCD-ROM、DVDROM又は他の光媒体といった取り外し可能な不揮発性の光ディスクからの読み取り又は該ディスクへの書き込みのための光ディスクドライブが設けられることができる。このような場合、各々は、1又は複数のデータメディアインタフェイスによってバス915に接続されることができる。以下でさらに図示され及び説明されるように、メモリ910は、本開示において説明された実施例の機能を実行するように構成された一組(例えば、少なくとも1つ)のプログラムモジュールを有する少なくとも1つのプログラム生産物を含むことができる。
【0070】
プログラム/ユーティリティ950は、一組(少なくとも1つ)のプログラムモジュール955を有するものであって、例示として、限定ではなく、オペレーティングシステム、1又は複数のアプリケーションソフトウェア、他のプログラムモジュール、及びプログラムデータだけでなく、メモリ910に格納されることができる。オペレーティングシステム、1又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータの各々、又はそれらの組み合わせは、ネットワーク環境の実装を含むことができる。
【0071】
また、コンピューティングデバイスは、また、キーボード、ポインティングデバイス、ディスプレイ、等といった1又は複数の外部デバイス970;ユーザがコンピューティングデバイスと対話することを可能にする1又は複数のデバイス;及び/又は、コンピューティングデバイスが1又は複数の他のコンピューティングデバイスと通信することを可能にする任意のデバイス(例えば、ネットワークカード、モデム、等)と通信してもよい。このような通信は、入力/出力(I/O)インタフェィス960を介して発生し得る。
【0072】
加えて、上述したように、コンピューティングデバイスは、ネットワークアダプタ980を介して、ローカルエリアネットワーク(LAN)、汎用のワイドエリアネットワーク(WAN)及び/又は公衆ネットワーク(例えば、インターネット)といった1又は複数のネットワークと通信することができる。図示されるように、ネットワークアダプタ980は、バス915を介してコンピューティングデバイスの他の構成要素と通信する。以下のことが、理解されるべきである。図示されていないが、他のハードウェア及び/又はソフトウェアのコンポーネントは該コンピューティングデバイスとつないで使用されること。例は、マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、及びデータアーカイブ記憶システム、等を含む(しかし、これらに限定されない)。
【0073】
本発明は、任意の可能な技術的な1つ1つのレベルの統合におけるシステム、方法、及び/又はコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、コンピュータにより読み取り可能な単一(又は複数)の記憶媒体を含むことができ、該記憶媒体は、プロセッサに本発明の態様を実行させるためのコンピュータ読み取り可能なプログラム命令を該記憶媒体に有する。
【0074】
コンピュータにより読み出し可能な記憶媒体は、命令実行デバイスによる使用のための命令を保持し記憶することができる有形のデバイスであってもよい。コンピュータにより読み出し可能な記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又は前述の任意の適切な組合せ、であることができるが、これらに限定されない。コンピュータにより読み出し可能な記憶媒体のより具体的な例の、完全に網羅しているわけではないリストは、以下のもの:ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、消去可能なプログラマブル読出し専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読出し専用メモリ(CD-ROM)、ディジタル多用途ディスク(DVD)、メモリスティック、フロッピー(登録商標)ディスク、命令を記録してもらう溝を有する隆起構造又はパンチカードといった機械的に符号化されたデバイス、及び上記の任意の適切な組み合わせを含む。本明細書で使用されるコンピュータにより読み出し可能な記憶媒体は、電波又は他の自由に伝播する電磁波、導波管若しくは他の伝送媒体(例えば、光ファイバケーブルを通過する光パルス)を通って伝播する電磁波、又はワイヤを通って伝送される電気信号といった、それ自体が一時的な信号であると解釈されるべきではない。
【0075】
本明細書に記載されたコンピュータ読み取り可能なプログラム命令は、コンピュータにより読み取り可能な記憶媒体からそれぞれの演算/処理デバイスに、又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークを介して、外部コンピュータ又は外部記憶デバイスに、ダウンロードされることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、及び/又はエッジサーバを使用することができる。各演算/処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェイスは、コンピュータ読み取り可能なプログラム命令をネットワークから受信し、それぞれの演算/処理デバイス内におけるコンピュータにより読み取り可能な記憶媒体に格納のために、コンピュータ読み取り可能なプログラム命令を転送する。
【0076】
本発明の動作を実行するためのコンピュータ読み取り可能なプログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路類のためのコンフィギュレーションデータ、又は1又は複数のプログラミング言語の任意の組み合わせで書かれたソースコード若しくはオブジェクトコードのいずれかであることができ、該1又は複数のプログラミング言語は、Smalltalk、C++、等といったオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は類似のプログラミング言語といった手続き型プログラミング言語を含む。コンピュータにより読み取り可能なプログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、スタンドアロンソフトウェアパッケージとして、ユーザのコンピュータ上で部分的に、リモートコンピュータ上で部分的に、又はリモートコンピュータ若しくはサーバ上で全体的に、実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)若しくは広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、又は該接続は、(例えば、インターネットサービスプロバイダを使用するインターネットを介して)外部コンピュータに接続されてもよい。いくつかの実施例では、例えば、プログラマブル論理回路類、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブル論理アレイ(PLA)を含む電子回路類は、本発明の態様を実行するために、コンピュータ読み取り可能なプログラム命令の状態情報を利用して該電子回路類を個々向けに変更する(パーソナル化する)ことによってコンピュータ読み取り可能なプログラム命令を実行することができる。
【0077】
本発明の態様は、本発明の実施例に係る方法、装置(システム)、及びコンピュータプログラム生産物のフローチャート図及び/又はブロック図を参照して本明細書で説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図におけるブロックの組合せは、コンピュータにより読み取り可能なプログラム命令によって実施されることができることを理解されたい。
【0078】
コンピュータにより読み取り可能なこれらのプログラム命令は、汎用コンピュータ、特定用途コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供されて、フローチャート及び/又はブロック図の1又は複数のブロックにおいて指定された機能/動作を実現するための手段を生成するように、機械(マシン)を作成することができ、該命令は、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行するものである。これらの、コンピュータにより読み取り可能なプログラム命令は、特定の様式で機能するように、コンピュータ、プログラマブルデータ処理装置、及び/又は他のデバイスに指示することができるコンピュータにより読み取り可能な記憶媒体に格納されてもよく、その結果、格納された命令を有しコンピュータにより読み取り可能な記憶媒体は、フローチャート及び/又はブロック図のブロック又は複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製造品を備える。
【0079】
コンピュータにより読み取り可能な命令は、また、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上にロードされて、コンピュータにより実施されるプロセスを生成するために一連の動作ステップをコンピュータ、他のプログラマブル装置、又は他のデバイス上で実行させ、この結果、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行する命令が、フローチャート及び/又はブロック図の1又は複数のブロックにおいて指定された機能/動作を実現する。
【0080】
本開示は、クラウドコンピューティングに関する詳細な説明を含むけれども、本明細書に列挙された教示の実施は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施例は、現在知られている又は今後に開発される任意の他のタイプのコンピューティング環境とつないで実施されることができる。
【0081】
図中のフローチャート及びブロック図は、本発明の様々な実施例に従う、システム、方法、及びコンピュータプログラム生産物の可能な実施のアーキテクチャ、機能、及び動作を図示する。この点に関して、フローチャート又はブロック図における各ブロックは、モジュール、セグメント、又は命令の部分を表すことができ、該モジュール、セグメント、又は命令の部分は、指定された論理機能を実現するための1又は複数の実行可能な命令を備える。いくつかの代替の実施例では、ブロックにおいて記された機能は、図面に記された順序から外れて生じてもよい。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行されてもよく、又は、ブロックは、伴われる機能に依存して、時には、逆順で実行されてもよい。また、ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図のブロックの組み合わせは、指定された機能又は動作を実行する、又は特定目的のハードウェア及びコンピュータ命令の組み合わせを実行する、特定目的ハードウェアベースのシステムによって実現され得ることにも留意されたい。
【0082】
本発明の様々な実施例の説明が、例示の目的で提示されてきたが、しかし、該説明が網羅的であること又は開示された実施例に限定されることは意図されていない。
多くの変更及び変形が、記載された実施例の範囲及び精神から逸脱することなく、当業者には明らかであろう。
本明細書で使用される用語は、実施例の原理、実用的な用途、又は市場で見出される技術に対する技術的改善を最もよく説明するために、又は当該分野で通常の知識の他者が本明細書で開示される実施例を理解することを可能にするために、選択された。