(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-19
(54)【発明の名称】有限メモリを用いたストリーミングデータの動的サンプリング
(51)【国際特許分類】
G06F 16/22 20190101AFI20240312BHJP
G06F 16/23 20190101ALI20240312BHJP
G06F 16/24 20190101ALI20240312BHJP
G06F 16/903 20190101ALI20240312BHJP
G06F 16/901 20190101ALI20240312BHJP
【FI】
G06F16/22
G06F16/23
G06F16/24
G06F16/903
G06F16/901
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023560878
(86)(22)【出願日】2022-04-01
(85)【翻訳文提出日】2023-10-02
(86)【国際出願番号】 CN2022084756
(87)【国際公開番号】W WO2022206943
(87)【国際公開日】2022-10-06
(32)【優先日】2021-04-02
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100104880
【氏名又は名称】古部 次郎
(74)【復代理人】
【識別番号】100118108
【氏名又は名称】久保 洋之
(72)【発明者】
【氏名】セシル、ロイ、ロバート
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA10
5B175KA09
(57)【要約】
有限メモリを用いたストリーミングデータの動的サンプリングのための方法およびシステムが提供される。本方法は、受信ストリーミングデータのサンプルに必要なデータ点の数を構成することと、データ点の数に応じてメモリ貯蔵器にメモリスロットを設けることと、を含み、メモリスロットはそれぞれデータ点の位置インデックスおよび信号データの組を記憶するように構成され、各メモリスロットは、受信ストリーミングデータのインデックスおよび信号データの組がメモリスロットに記憶されるべきかどうかを決定するように構成されるフィルタリングスレッドを有する。フィルタリングスレッドは、受信ストリーミングデータが到着するにつれて、ストリーミングデータのストリームにおける増加する到着間隔で、インデックスおよび信号データの組を有するデータ点の数に対するメモリスロットを動的に再投入するように構成される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
有限メモリを用いたストリーミングデータの動的サンプリングのためのコンピュータ実装方法であって、
受信ストリーミングデータのサンプルに必要なデータ点の数を構成することと、
前記データ点の数に応じてメモリ貯蔵器にメモリスロットを設けることと、を含み、前記メモリスロットはそれぞれデータ点の位置インデックスおよび信号データの組を記憶するように構成され、各メモリスロットは、前記受信ストリーミングデータのインデックスおよび信号データの組が前記メモリスロットに記憶されるべきかどうかを決定するように構成されるフィルタリングスレッドを有し、
前記フィルタリングスレッドは、前記受信ストリーミングデータが到着するにつれて、ストリーミングデータのストリームにおける増加する到着間隔で、インデックスおよび信号データの組を有する前記データ点の数に対する前記メモリスロットを動的に再投入するように構成される、
方法。
【請求項2】
前記受信ストリーミングデータの到着中の任意の時間に、前記記憶されたデータ点の数は、前記ストリーミングデータの持続時間に渡って広がるサンプルデータ点を提供する、請求項1に記載の方法。
【請求項3】
各メモリスロットに対する前記フィルタリングスレッドは、それぞれ、後のメモリスロットのために、前記インデックスに対してますます高いフィルタ値を有するフィルタを前記インデックスに適用する、請求項1に記載の方法。
【請求項4】
前記メモリスロットの全てがデータを含むまで、前記インデックスおよび信号データの組で前記メモリスロットを初期化することと、その後、後のデータ点サンプルを追加するため、および既存のデータ点サンプルを先のインデックス付きメモリスロットにシフトするために前記フィルタリングスレッドを適用することによって、前記メモリスロットを動的に再投入することと、を含む、請求項1に記載の方法。
【請求項5】
前記メモリスロットを初期化することは、前記ストリーミングデータが到着するにつれて、連続するメモリスロットごとに前記フィルタリングスレッドを増加するインデックスで適用し、前記メモリスロットを再投入することは、前記フィルタリングスレッドを減少するインデックスで適用する、請求項4に記載の方法。
【請求項6】
不変のインデックスおよびデータ信号の組を維持するマスタースレッドを含む、請求項1に記載の方法。
【請求項7】
前記メモリスロットを再投入することは、必要なときに下位インデックスのメモリスロットを再投入するために利用できるようにデータ点サンプルのキューを維持することを含む、請求項4に記載された方法。
【請求項8】
各スレッドが、ソース信号データストリームS
1、S
2、S
3、S
4、...をT
Nによってフィルタリングしたものが、フィルタリングされたデータストリームS
1x(N-1)、S
2x(N-1)、S
3x(N-1)、S
4x(N-1)、...(N個のメモリスロットが存在)となるようにフィルタを実装する、請求項1に記載の方法。
【請求項9】
前記受信ストリーミングデータの到着中の任意の時間に、前記メモリスロットからの前記信号データが、前記ストリーミングデータの統計曲線を維持するサンプルデータ点として統計処理に提供される、請求項1に記載の方法。
【請求項10】
前記統計処理されたサンプルデータ点が期待される統計曲線から外れることによるエラーを予測することを含む、請求項9に記載の方法。
【請求項11】
有限メモリを用いたストリーミングデータの動的サンプリングのためのシステムであって、
プロセッサと、コンポーネントの機能を実行するためのコンピュータプログラム命令を前記プロセッサに提供するように構成されたメモリと、を備え、前記コンポーネントは、
受信ストリーミングデータのサンプルに必要なデータ点の数を構成するための構成コンポーネントと、
前記データ点の数に応じてメモリスロットを設けるためのメモリ貯蔵器であって、前記メモリスロットはそれぞれデータ点の位置インデックスおよび信号データの組を記憶するように構成される、メモリ貯蔵器と、
各メモリスロットにフィルタリングスレッドを設けるためのスレッドコンポーネントであって、前記フィルタリングスレッドはそれぞれ、前記受信ストリーミングデータのインデックスおよび信号データの組が前記メモリスロットに記憶されるべきかどうかを決定するように構成されるフィルタを有する、スレッドコンポーネントと、
前記受信ストリーミングデータを受信するため、および前記フィルタリングスレッドコンポーネントを適用することによって、ストリーミングデータのストリームにおける増加する到着間隔で、インデックスおよび信号データの組を有する前記データ点の数に対する前記メモリスロットを動的に再投入するためのストリーミングデータ処理コンポーネントと、
を備える、システム。
【請求項12】
前記スレッドコンポーネントは、後のメモリスロットのために、前記インデックスに対してますます高いフィルタ値を有するフィルタを前記インデックスに適用するために、各メモリスロットに対するフィルタリングスレッドを提供する、請求項11に記載のシステム。
【請求項13】
前記ストリーミングデータ処理コンポーネントは、
前記メモリスロットの全てがデータを含むまで、前記インデックスおよび信号データの組で前記メモリスロットを初期化するための初期化コンポーネントと、
その後、後のデータ点サンプルを追加するため、および既存のデータ点サンプルを先のインデックス付きメモリスロットにシフトするために前記フィルタリングスレッドを適用することによって、前記メモリスロットを動的に再投入するための再投入コンポーネントと、
を備える、請求項11に記載のシステム。
【請求項14】
前記メモリスロットを初期化するための前記初期化コンポーネントは、前記ストリーミングデータが到着するにつれて、連続するメモリスロットごとに前記フィルタリングスレッドを適用する、請求項13に記載のシステム。
【請求項15】
前記スレッドコンポーネントは、不変のインデックスおよびデータ信号の組を維持するマスタースレッドを含む、請求項11に記載のシステム。
【請求項16】
前記再投入コンポーネントは、必要なときに下位インデックスのメモリスロットを再投入するために利用できるようにデータ点サンプルのキューを維持することを含む、請求項13に記載のシステム。
【請求項17】
前記スレッドコンポーネントは、ソース信号データストリームS
1、S
2、S
3、S
4、...をT
Nによってフィルタリングしたものが、フィルタリングされたデータストリームS
1x(N-1)、S
2x(N-1)、S
3x(N-1)、S
4x(N-1)、...(N個のメモリスロットが存在)となるようにフィルタリングスレッドを備える、請求項11に記載のシステム。
【請求項18】
前記受信ストリーミングデータの到着中の任意の時間に、前記メモリスロットからの前記信号データを、前記ストリーミングデータの統計曲線を維持するサンプルデータ点として統計処理に出力するためのサンプル出力コンポーネントを含む、請求項11に記載のシステム。
【請求項19】
前記統計処理されたサンプルデータ点が期待される統計曲線から外れることによるエラーを予測するためのエラー予測コンポーネントを含む、請求項17に記載のシステム。
【請求項20】
有限メモリを用いたストリーミングデータの動的サンプリングのためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、プログラム命令をその中に実装したコンピュータ可読記憶媒体を含み、前記プログラム命令は、プロセッサによって実行可能であり、前記プロセッサに、
受信ストリーミングデータのサンプルに必要なデータ点の数を構成することと、
前記データ点の数に応じてメモリ貯蔵器にメモリスロットを設けることと、を実行させ、前記メモリスロットはそれぞれデータ点の位置インデックスおよび信号データの組を記憶するように構成され、各メモリスロットは、前記受信ストリーミングデータのインデックスおよび信号データの組が前記メモリスロットに記憶されるべきかどうかを決定するように構成されるフィルタリングスレッドを有し、
前記フィルタリングスレッドは、前記受信ストリーミングデータが到着するにつれて、ストリーミングデータのストリームにおける増加する到着間隔で、インデックスおよび信号データの組を有する前記データ点の数に対する前記メモリスロットを動的に再投入するように構成される、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストリーミングデータの解析に関し、より具体的には、有限メモリを用いたストリーミングデータの動的サンプリングに関するものである。
【背景技術】
【0002】
例えば、センサーからの温度データ、機械からの振動データ、心電計からの電圧など、ストリーミングデータの例は多くの場面で発生する。データストリームのすべての信号を解析のために記憶することは、膨大な量のストレージを必要とするため不可能である。
【0003】
ストリーミングデータのデータサマリーは、データストリームの動作を表現するのに有効な場合が多い。例えば、センサーから読み取った温度の平均値など、データストリームの代表的なサンプルが必要となる。ストリーミングデータを平均化するために、最もよく使用されるアプローチは、スライディングウィンドウアプローチである。この手法では、設定された数の測定値のウィンドウを取得し、新しい測定値が入ると時間軸に沿ってスライドさせる。各離散間隔では、ウィンドウ内のデータの要約統計量が、データストリームの注目指標として報告される。
【0004】
もう一つのアプローチは、与えられた離散的な時間間隔から始まるデータストリームの等距離の点を見つけることである。ランダムな揺らぎを避けるために統計的な要約を平滑化する必要がある場合(例えば、真にランダムな信号の場合)には、このアプローチは有用である。
【0005】
ランダムな点のセットを維持する必要がある問題では、サンプルの貯蔵器を保持し、新しい信号が見られるたびにランダムに決めた信号で貯蔵器内のランダムな値をぶつけてランダムに置き換えることによって行われる。この方法の欠点は、ストリーミングデータの曲線の統計的形状が失われ、曲線の形状を必要とする計算を行うことができないことである。
【発明の概要】
【0006】
本発明の一態様によれば、有限メモリを用いたストリーミングデータの動的サンプリングのためのコンピュータ実装方法が提供され、受信ストリーミングデータのサンプルに必要なデータ点の数を構成することと、データ点の数に応じてメモリ貯蔵器にメモリスロットを設けることと、を含み、メモリスロットはそれぞれデータ点の位置インデックスおよび信号データの組を記憶するように構成され、各メモリスロットは、受信ストリーミングデータのインデックスおよび信号データの組がメモリスロットに記憶されるべきかどうかを決定するように構成されるフィルタリングスレッドを有し、フィルタリングスレッドは、受信ストリーミングデータが到着するにつれて、ストリーミングデータのストリームにおける増加する到着間隔で、インデックスおよび信号データの組を有するデータ点の数に対するメモリスロットを動的に再投入するように構成される。
【0007】
本発明の別の態様によれば、有限メモリを用いたストリーミングデータの動的サンプリングのためのシステムが提供され、プロセッサと、コンポーネントの機能を実行するためのコンピュータプログラム命令をプロセッサに提供するように構成されたメモリと、を備え、コンポーネントは、受信ストリーミングデータのサンプルに必要なデータ点の数を構成するための構成コンポーネントと、データ点の数に応じてメモリスロットを設けるためのメモリ貯蔵器であって、メモリスロットはそれぞれデータ点の位置インデックスおよび信号データの組を記憶するように構成される、メモリ貯蔵器と、各メモリスロットにフィルタリングスレッドを設けるためのスレッドコンポーネントであって、フィルタリングスレッドはそれぞれ、受信ストリーミングデータのインデックスおよび信号データの組がメモリスロットに記憶されるべきかどうかを決定するように構成されるフィルタを有する、スレッドコンポーネントと、受信ストリーミングデータを受信するため、およびフィルタリングスレッドコンポーネントを適用することによって、ストリーミングデータのストリームにおける増加する到着間隔で、インデックスおよび信号データの組を有するデータ点の数に対するメモリスロットを動的に再投入するためのストリーミングデータ処理コンポーネントと、を備える。
【0008】
本発明のさらなる態様によれば、有限メモリを用いたストリーミングデータの動的サンプリングのためのコンピュータプログラム製品が提供され、コンピュータプログラム製品は、プログラム命令をその中に実装したコンピュータ可読記憶媒体を含み、プログラム命令は、プロセッサによって実行可能であり、プロセッサに、受信ストリーミングデータのサンプルに必要なデータ点の数を構成することと、データ点の数に応じてメモリ貯蔵器にメモリスロットを設けることと、を実行させ、メモリスロットはそれぞれデータ点の位置インデックスおよび信号データの組を記憶するように構成され、各メモリスロットは、受信ストリーミングデータのインデックスおよび信号データの組がメモリスロットに記憶されるべきかどうかを決定するように構成されるフィルタリングスレッドを有し、フィルタリングスレッドは、受信ストリーミングデータが到着するにつれて、ストリーミングデータのストリームにおける増加する到着間隔で、インデックスおよび信号データの組を有するデータ点の数に対するメモリスロットを動的に再投入するように構成される。
【0009】
コンピュータ可読記憶媒体は、非一時的コンピュータ可読記憶媒体であってよく、コンピュータ可読プログラムコードは、処理回路によって実行可能であってよい。
【0010】
本発明とみなされる主題は、本明細書の結論部分で特に指摘され、明確に主張されている。本発明は、組織および操作方法の両方について、その目的、特徴、および利点とともに、添付の図面とともに読むと、以下の詳細な説明を参照することによって最もよく理解され得る。
【0011】
次に、本発明の好ましい実施形態を、例示のためにのみ、以下の図面を参照しながら説明する。
【図面の簡単な説明】
【0012】
【
図1】本発明による方法の例示的な実施形態のフロー図である。
【
図2】本発明による方法で使用されるようなメモリ構造の例示的な実施形態の概略図である。
【
図3A】本発明による方法の別の例示的な実施形態の態様のフロー図である。
【
図3B】本発明による方法の別の例示的な実施形態の態様のフロー図である。
【
図3C】本発明による方法の別の例示的な実施形態の態様のフロー図である。
【
図4A】説明した方法の例示的な実施形態を示す
図2のメモリ構造への一連の入力を示している。
【
図4B】説明した方法の例示的な実施形態を示す
図2のメモリ構造への一連の入力を示している。
【
図4C】説明した方法の例示的な実施形態を示す
図2のメモリ構造への一連の入力を示している。
【
図5】本発明によるシステムの一実施形態例のブロック図である。
【
図6】本発明が実施され得るコンピュータシステムまたはクラウドサーバの一実施形態のブロック図である。
【
図7】本発明が実施され得るクラウドコンピューティング環境の概略図である。
【
図8】本発明が実施され得るクラウドコンピューティング環境の抽象化モデルレイヤの図である。
【発明を実施するための形態】
【0013】
図示の簡略化および明確化のために、図に示された要素は必ずしも縮尺通りに描かれていないことが理解されるであろう。例えば、いくつかの要素の寸法は、明確にするために他の要素に対して誇張されている場合がある。さらに、適切と考えられる場合には、対応するまたは類似する特徴を示すために、参照番号が図間で繰り返されることがある。
【0014】
ストリーミングデータの動的サンプリングの方法およびシステムが提供され、設定された数のデータ点で取得された受信ストリーミングデータのサンプルが、任意の時間において、ストリーミングデータのサンプル間の間隔が同じになるように、動的な方法で有限メモリ貯蔵器に記憶される。
【0015】
記憶されたサンプルデータは、データストリームの持続時間の間隔にわたって、設定された数のサンプルを提供し、データストリームの持続時間が長くなるにつれて間隔が長くなり、サンプルはデータストリームの持続時間を通じて均一に広がっている。増加する間隔は、増加する数の中間データ点を有することができる。
【0016】
本方法では、すべてのデータ点を発生時にリアルタイムで記憶するのではなく、等距離にあるデータ点を記憶する。この方法では、サンプルはデータストリーム全体に均等に分布しているかもしれないデータ点を含んでいるため、データの形状やグラフを維持することができる。
【0017】
図1を参照すると、フロー
図100は、ストリーミングデータの動的サンプリングの説明された方法の例示的な実施形態を示す。
【0018】
本方法は、まず、有限貯蔵器に記憶されるサンプルデータ点の数(N)を構成し(101)、各サンプルデータ点(2*Nスロット)に対するインデックスおよび信号データの組を記憶するメモリスロットを特定する(102)ことによって、ストリーミングデータプロセスを構成することができる。
【0019】
本方法は、マスタースレッドを含む各サンプルデータ点に対するスレッド(Nスレッド)を構成してもよく(103)、残りのスレッドはそれぞれ、インデックス付きデータ点からの信号データをその対応するメモリスロットに記憶するか否かを決定するためのフィルタを有している。フィルタは、ストリーミングデータが到着すると、その信号データとともに記憶されるインデックス付きデータ点の間隔を調整する結果となる。
【0020】
ストリーミングデータが到着すると、サンプルデータ点用のメモリスロットは、インデックス付きのデータ点およびその信号データで初期化される(104)。初期化段階において、メモリスロットは、マスタースレッドから次のスレッドに投入され、メモリスロットは、インデックスが増加するにつれて初期化される。したがって、より低いインデックスを有するメモリスロットは、より高いインデックスの前に初期化され、すなわち、マスタースレッドが左側にある場合、左から右への方法で初期化される。
【0021】
メモリスロットがインデックス付きデータ点とその信号データで一杯になると、サンプルデータ点は、メモリスロットにその信号データと共に記憶されるインデックス付きデータ点の間隔が増加しながら、メモリスロットに再投入される(105)。再投入段階において、メモリスロットは、初期化段階と比較して逆方向に再投入され、メモリスロットは、減少するインデックスで再投入される。したがって、高いインデックスを持つメモリスロットは低いインデックスの前に再投入され、すなわち、右から左へと再投入される。
【0022】
信号データが異なる間隔に再投入される際に必要となる可能性のあるインデックス付きデータ点およびその信号データを維持するために、各スレッドは、後続の再投入で必要となる可能性のある追加のメモリスロットでインデックス付きデータ点および信号データ値の組を保持することができる(106)。
【0023】
受信ストリーミングデータ中のいつでも、サンプルデータ点のメモリスロットに記憶された信号データは、サンプル信号データが形状保存のために受信ストリーミングデータに均一に広がっている、ストリーミングデータのサマリーを含む統計処理を提供するルーチンに提供されてもよい(107)。特に、形状保存を必要とするルーチンは、例えば、信号のフラクタル次元の計算のために、サンプルデータを処理してもよい。
【0024】
これは、ストリーミングデータから、サンプル間の距離が可能な限り均一となるように、サンプルの有限の貯蔵器を記憶するメカニズムを提供する。
【0025】
本方法を用いると、ストリーミングデータソースから信号のサンプルのランダムな貯蔵器を実行し、有限のメモリ量で一定期間にわたって曲線の形状を保持することが可能である。
【0026】
全体として、この方式は有限のメモリ量を使用し、与えられた出発点からほぼ均等に値が広がっていく。各スレッドに有限のメモリを持たせることによって、処理を強化することができる。
【0027】
図2を参照すると、動的サンプルデータ点からのデータを記憶するための有限メモリの貯蔵器200の実施例を示す概略図である。貯蔵器200は、ストリーミングデータのサンプルデータ点のためのメモリスロット210を備える。各データ点のためのメモリスロット210は、インデックス211および信号データ212を記憶する。各メモリスロット210に対して、インデックス211に基づいてメモリスロット210に記憶されたデータに対するフィルタを提供するスレッド213が存在する。メモリスロット210で記憶されておらず、メモリスロット210を再投入するときに必要となる可能性のある、先にフィルタリングされて記憶されたインデックスと信号データの組の値を保持するために、追加のメモリスロットによって提供されてもよい一時記憶キュー214が存在する。
【0028】
貯蔵器が初期化されているかどうかを示すために、「True」または「False」のいずれかのブール値を取ることができるメモリ位置221「I」が提供される。この値は「True」にデフォルト設定され、全てのメモリスロット210が値で初期化されるときに「False」になる。さらなるメモリ位置222は、現在の信号値222を保持することができる。
【0029】
ソース230のストリーミングデータ231の厳密な定義は、以下の通りである可能性がある。
S={S1,S2,...,Sn|∀i,j∈N,SiはSj∃i<jよりも早い。}
【0030】
本方法は、サンプルデータ点と同じ数のスレッド213を初期化することができる:T1、T2、...、TN。各スレッドは、ソース230 S1、S2、S3、S4、...がTNによってフィルタリングされて、フィルタリングされたデータストリーム232になるようにフィルタを実装している:S1x(N-1),S2x(N-1),S3x(N-1),S4x(N-1),....。
【0031】
図3A、3Bおよび3Cを参照すると、フロー
図300、310、320は、
図1の説明された方法の例示的な実施形態の段階を示す。
【0032】
図3Aでは、方法は、初期化メモリ位置の値が「True」に設定された状態で開始することができる(301)。方法は、最初のN個のデータ点のための貯蔵器を構成してもよい(302)。方法は、貯蔵器内の2*N個のメモリスロット(データ点のインデックスを記憶するN個のメモリ位置と、実際の信号データを記憶するN個のメモリ位置の他のセット)、N個のスレッド、および現在値レジスタを構成することができる(303)。
【0033】
方法は、初期化メモリ位置の値が「True」であり続けるかどうかを決定する(304)。もしそうなら、
図3Bに関連して説明されるように初期化ルーチン305が実行され、貯蔵器のメモリスロットを初期に満たす。メモリスロットがデータで一杯になると、初期化メモリ位置の値は「False」に変更され、後のデータ点サンプルを追加し、既存のデータ点サンプルをメモリスロット内で左にシフトするための
図3Cに関連して説明されるような再投入動作306が実行される。
【0034】
図3Bを参照すると、フロー
図310は、初期化ルーチン305を示す。初期311では、メモリスロットjおよびiは、j=1およびi=1であり、jは、投入されたメモリスロットの最高番号であり、ここで、電流信号はS
iである。
【0035】
j=Nであれば、メモリスロットがデータで一杯であることを意味し、決定される(312)。jがNに等しくない場合、メモリスロットがまだ一杯でないことを示し、信号SiがTiのフィルタを通過するかどうかが決定される(314)。Siがフィルタを通過しない場合、iがインクリメントされ(315)、方法がループして次の現在の信号Siを評価する(311)。
【0036】
Siがフィルタを通過した場合、メモリスロットjが初期化されているかどうかが判断される(316)。初期化されていない場合、メモリスロットjは初期化され(317)、jはインクリメントされる。その後、方法はiをインクリメントし(315)、次の現在の信号Siにループすることができる(311)。
【0037】
j=Nと決定された場合(312)、これはメモリスロットが一杯であることを示し、初期化メモリ位置の値は「False」に変更され(313)、貯蔵器内のデータの再投入動作306は
図3Cに関連して説明されるように実施される。
【0038】
図3Cを参照すると、フロー
図320は、すべてのメモリスロットにデータがすべて投入された後に実行される再投入動作306を示す。
【0039】
本方法は、次のSiを読み出し、任意の再帰的フラグをクリアし(321)、現在の信号Si、一時的な信号Si、メモリスロットがすべて埋まっていることを意味するj=Nと共にある(322)。
【0040】
SiがスレッドTjのフィルタを通過するかどうかが決定される(323)。通過した場合、再帰的ステップフラグが「True」であるかどうかが決定される(324)。「True」である場合、キューが空であればTjのメモリスロットを一時値で更新し(325)、そうでなければキューに入れられた値をデキューしてメモリスロットにコピーし、一時値をキューに入れて再帰的フラグを設定する。再帰的フラグが「True」でないと決定された場合(324)、Tjのメモリスロットを一時値で更新し(326)、一時値はTjのメモリスロットの旧値で更新される。
【0041】
どちらの場合も、次に、j=2、つまりフィルタリングするスレッドがもう存在しないかどうかが決定される(327)。jが2に等しくない場合、方法はj=j+1をインクリメントし(328)、信号SiがTjのフィルタを通過するかどうか決定される(323)。j=2になると、方法はループして次のSiを読み込む(321)。
【0042】
スレッドのフィルタがシグナルを通過させるときはいつでも、対応するメモリスロットが開始されていれば、フィルタはそのシグナルをメモリスロットにコピーするだけである。そうでない場合、フィルタはメモリスロット内の既存の値を左側のスレッドに渡し、各段階で再帰的に一時停止して、処理が終了したことを確認する。処理の順序は右から左へ、すなわち、x>yのときはいつでも、TxがTyよりも先に信号を処理する。
【0043】
以下、本方法の実施例について説明する。記憶されるサンプルの数であるサンプルデータ点数Nがユーザから決定される。すべてのx∈{1,2,...,N}について、(Ix,Sx)がメモリ位置、TxがN個のスレッドのセットであるように、2N個のメモリ位置とN個のスレッドを初期化する。
【0044】
N個のスレッドのうち、1個のスレッドをマスタースレッドとし、ラベル1(以後、T1)で自分自身を指定し、インデックスメモリに1を記憶する。マスタースレッドは、順次高いインデックス番号を持つ(N-1)ワーカースレッドをそれぞれ開始する。各スレッド(マスタースレッドを除く)は、n*(L-1)のみを許可するフィルタを開始する(ここで、nは任意の整数、Lはそのラベル)。各スレッドはまた、2*(N-L)のメモリ位置を持つスクラッチパッドを開始し、キューとして編成される。
【0045】
あるデータストリームに対して、マスターが最初に見た信号を信号1とし、変換されたデータ(1,S1)が2N個のメモリスロットの組のうちの1つに書き込まれる。これは不変であり、データ点の間隔を空けるための出発点である。
【0046】
マスタースレッドが見る後続の各信号、すなわち(2,S2)、(3,S3)、...、(i,Si)、...は内部キューに書き込まれる。各ワーカースレッドは、キューから値の組のそれぞれを取り出し、組の最初の値(これはインデックスである)にフィルタ関数を適用する。
【0047】
各スレッドは、n mod (x-1)=0(nはn番目の信号)となる信号Snのみを通すようなフィルターFxで初期化されている。唯一の例外はスレッドT1で、システムが最初に見た信号S1のみを保持する。つまり、T2はすべての信号を通し、T3はすべての第2信号を通し、T4はすべての第3信号を通す、といった具合である。
【0048】
最初のシグナルS1は、マスタースレッドT1によって自身のメモリにコピーされ、それは不変である。後続のシグナルごとに、マスタースレッドはまずフラグ「I」が「True」に設定されているかどうかをチェックし、もしそうなら、メモリスロットが初期化されるまで、マスタースレッドは後続のシグナルをラベルの順番で子スレッドに引き渡す。各スレッドは、まずメモリのスロットが初期化されているかどうかをチェックし、初期化されていない場合はフィルタを適用し、インデックスがフィルタを通過すると、その値がそのメモリ位置にコピーされる。もしそのメモリのスロットがすでに初期化されていれば、内部キューに値を保存するだけである。その後、マスタースレッドは、すべてのメモリスロットが初期化されているかどうかをチェックし、初期化されていれば、フラグ「I」を「False」に変更する。キューには、Q(Ti)とDQ(Ti)の2つの操作がある。Q(Ti)(値)は、キューの最後尾に値を記憶する。X=DQ(Ti)は、キューの先頭にある値を取り除く。
【0049】
値を保存するための例外は、マスタースレッドT1と、次に想定する必要のある値がT3から渡されるため、記憶する必要のないスレッドT2の2つである。その後のすべての信号は、TN,TN-1,TN-2,...,T2から処理される。
【0050】
信号がスレッドTxのフィルタを通過し、Txの現在の値(Vx)を置き換える必要がある場合、VxはTx-1に渡される。これは、任意のスレッドTyに対して、渡された値Vyがキューに記憶されている最大値より小さくなるまで、または現在のスレッドがT2の場合、Vyがフィルタを通過するまで再帰的に実行される。スレッドに渡された値がキュー内の最大値より小さい場合、dequeue関数が呼び出され、最大値がそのメモリスロットに書き込まれ、そのメモリ位置に記憶されているスレッドの現在の値を、その現在のインデックスより1つ小さいインデックスを持つスレッドに渡す。
【0051】
値がフィルタを通過しても、より高いインデックスを持つスレッドからそれに渡されない場合、値はそのキューに押し込まれる。
【0052】
任意のインスタンスにおいて、関数F()は、現在の値がMNの場合、メモリスロットM1,M2,...,MNの値のセット、または、すべて等間隔で曲線の形状を保持するM1,M2,...,MN,Mmaxの値のセットを返す。
【0053】
以上、すべてのソースからの値を記憶することなく、ストリーミングデータソースから等間隔にサンプルを取得する方法の一例を紹介した。
【0054】
図4A、4Bおよび4Cを参照すると、
図2のメモリ構造への一連の入力の例が、受信ストリーミングデータからサンプルを選択するステップとして示されている。メモリ貯蔵器は、インデックス、信号データの組のための4つのメモリスロット421~424と、マスタースレッド431を含む4つの対応するスレッド431~434とを有する単純化された形態で示されている。初期化メモリ位置441は、メモリ貯蔵器がその初期化段階にあるかどうかを示すフラグを提供し、現在のメモリ位置442は、受信する現在の信号データ値を保持する。メモリスロット422~424を再投入するときに必要とされ得る値を保持するために、キューが提供される(443)。
【0055】
図4Aは、メモリスロットを左から右に初期投入する初期化段階におけるステップ0から4である400~404を示す。
図4Bおよび
図4Cは、メモリスロットを右から左に再投入するステップ5から11である405~411を示す。
【0056】
図4Aを参照すると、ステップ0である400は、マスタースレッドT1である431が第1のメモリスロット421に値(1,S
1)を投入することを示し、これらの値は初期化および再投入段階中に不変である。ステップ1である401で、第2のスレッドT
2である432は、第2のメモリスロット422に値(2,S
2)を投入する。第2のスレッドT
2である432は、(2-1)の倍数である値、すなわち1を許可するようにフィルタリングし、任意の値を許可するようにする。ステップ2である402で、第3のスレッドT
3である433は、値(2,S
2)をフィルタリングしてキューに入れる(443)。この例では、キューに入れられた値は、第2のメモリスロット422に既に記憶されているので、使用されないが、この値をキューに入れることによって、アルゴリズムをより単純に保つことができる。
【0057】
ステップ3である403で、第3のスレッドT3である433は、第3のメモリスロット423に値(4,S4)をフィルタリングして投入し、キューに入れられた値443をデキューする。ステップ4である404で、第4のスレッドT4である434は、現在の値をフィルタリングする。
【0058】
このようにして、初期化ステージは、左から右へインデックスの増加順にメモリスロットに投入する。
【0059】
図4Bを参照すると、ステップ5である405で、第4のスレッドT
4である434に現在の値(6,S
6)が投入され、すべてのメモリスロットが投入されたので、初期化メモリ位置441が「False」に設定される。再投入段階は、右から左へインデックスの減少順序でメモリスロットを再投入する。
【0060】
ステップ6である406で、第4のスレッドT4である434は、現在の値のフィルタリングを続け、ステップ7である407で、後で使用するために第4のスレッドのフィルタを満たさない値443をキューに入れる。ステップ8である408で、キューに入れられた値を使用して値を左にシフトすることにより、メモリスロットの値が再投入される。
【0061】
図4Cを参照すると、ステップ9である409、ステップ10である410、ステップ11である411は、スレッドフィルタを使用してメモリスロットに再投入する処理を継続し、ステップ11である411までに、記憶されたデータ点は、データストリームを通じて均一に広がっている(1,S
1)、(4,S
4)、(8,S
8)、(12,S
12)のものである。
【0062】
ストリーミングデータからのデータ点の動的サンプルの応用例として、機械が故障しそうであることを検出することが挙げられる。このような故障は、様々な時間帯に機械からの信号を観察することによって予測することができる。サンプルデータは、サンプルデータ点がストリーミングデータの中で間隔をおいて広がっているため、ストリーミングデータの「曲線の形状」の指標となる。したがって、「曲線の形状」のフラクタル次元を決定し、機械の故障を予測するために使用される「カオスの程度」を分類することが可能である。
【0063】
図5を参照すると、ブロック図は動的サンプリングシステム510が実装され得るコンピューティングシステム500の例示的な実施形態を示す。
【0064】
コンピューティングシステム500は、少なくとも1つのプロセッサ501、ハードウェアモジュール、または少なくとも1つのプロセッサ上で実行されるソフトウェアユニットであり得る説明されたコンポーネントの機能を実行するための回路を含み得る。並列処理スレッドを実行する複数のプロセッサが提供され、コンポーネントの機能の一部またはすべての並列処理を可能にすることができる。メモリ502は、コンポーネントの機能を実行するためのコンピュータ命令503を少なくとも1つのプロセッサ501に提供するように構成され得る。
【0065】
動的サンプリングシステム510は、構成された数のデータ点の数に応じてメモリスロットを設けるためのメモリ貯蔵器512であって、メモリスロットはそれぞれデータ点の位置インデックスおよび信号データの組を記憶するように構成される、メモリ貯蔵器と、受信ストリーミングデータのサンプルに必要なデータ点の数を構成するための構成コンポーネント511とを含む。
【0066】
動的サンプリングシステム510は、メモリ貯蔵器512内の各メモリスロットに対してフィルタリングスレッドを設けるためのスレッドコンポーネント513を含む。フィルタリングスレッドはそれぞれ、受信ストリーミングデータのインデックスおよび信号データの組がメモリスロットに記憶されるべきかどうかを決定するように構成されるフィルタを有する。スレッドコンポーネント513は、一定のインデックスおよびデータ信号の組を維持するマスタースレッドを含み得る。
【0067】
動的サンプリングシステム510は、受信ストリーミングデータを受信するため、およびフィルタリングスレッドコンポーネントを適用することによって、ストリーミングデータのストリームにおける増加する到着間隔で、インデックスおよび信号データの組を有するデータ点の数に対するメモリスロットを動的に再投入するためのストリーミングデータ処理コンポーネント520を備える。
【0068】
ストリーミングデータ処理コンポーネント520は、メモリスロットの全てがデータを含むまで、メモリスロット内のインデックスおよび信号データの組を初期化するための初期化コンポーネント521を含むことができる。初期化コンポーネント521は、ストリーミングデータが到着するにつれて、連続するメモリスロットごとにフィルタリングスレッドを適用することによって、メモリスロット内のインデックスおよび信号データの組を初期化することができる。
【0069】
ストリーミングデータ処理コンポーネント520は、後のデータ点サンプルを追加するため、および既存のデータ点サンプルをメモリスロットの左にシフトするためにフィルタリングスレッドを適用することによって、メモリスロットを動的に再投入するための再投入コンポーネント522も含むこともできる。再投入コンポーネント522は、必要なときにメモリスロットを再投入するために利用できるように、シフトされたデータ点サンプルのためのキューメモリスロットを維持することを含むことができる。
【0070】
また、ストリーミングデータ処理コンポーネント520は、また、受信ストリーミングデータの到着中の任意の時間に、メモリスロットからの信号データを、ストリーミングデータの統計曲線を維持するサンプルデータ点として統計処理に出力するためのサンプル出力コンポーネント514と、統計処理されたサンプルデータ点が期待される統計曲線から外れることによるエラーを予測するためのエラー予測コンポーネント515と、を含み得る。
【0071】
図6は、本発明の実施形態による、動的サンプリングシステム510に使用されるようなコンピューティングシステム500のコンポーネントのブロック図を示している。
図6は、1つの実装の例示を提供するだけであり、異なる実施形態が実装され得る環境に関していかなる制限も意味しないことを理解されたい。描かれた環境に対する多くの変更がなされ得る。
【0072】
コンピューティングシステムは、1または複数のプロセッサ602、1または複数のコンピュータ可読RAM604、1または複数のコンピュータ可読ROM606、1または複数のコンピュータ可読記憶媒体608、デバイスドライバ612、読み/書きドライブまたはインタフェース614、およびネットワークアダプタまたはインタフェース616を含むことがあり、すべてが通信ファブリック618上で相互接続される。通信ファブリック618は、プロセッサ(マイクロプロセッサ、通信およびネットワークプロセッサなど)、システムメモリ、周辺デバイス、およびシステム内の他の任意のハードウェアコンポーネント間でデータもしくは制御情報またはその両方を渡すために設計された任意のアーキテクチャで実装することができる。
【0073】
1または複数のオペレーティングシステム610、およびアプリケーションプログラム611は、それぞれのRAM604(典型的にはキャッシュメモリを含む)の1または複数を介してプロセッサ602の1または複数による実行のために、コンピュータ可読記憶媒体608の1または複数に記憶される。図示された実施形態では、コンピュータ可読記憶媒体608の各々は、本発明の実施形態に従って、内部ハードドライブ、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスクなどの磁気ディスク記憶装置、RAM、ROM、EPROM、フラッシュメモリなどの半導体記憶装置、またはコンピュータプログラムおよびデジタル情報を記憶できる任意の他のコンピュータ可読記憶媒体とすることができる。
【0074】
コンピューティングシステムはまた、1または複数のポータブルコンピュータ可読記憶媒体626から読み取り、それに書き込むためのR/Wドライブまたはインタフェース614を含むことができる。コンピューティングシステム上のアプリケーションプログラム611は、1または複数のポータブルコンピュータ可読記憶媒体626上に記憶され、それぞれのR/Wドライブまたはインタフェース614を介して読み取られ、それぞれのコンピュータ可読記憶媒体608にロードすることができる。
【0075】
コンピューティングシステムはまた、TCP/IPアダプタカードまたは無線通信アダプタなどのネットワークアダプタまたはインタフェース616を含むことができる。コンピューティングシステム上のアプリケーションプログラム611は、ネットワーク(例えば、インターネット、ローカルエリアネットワークまたは他のワイドエリアネットワークまたはワイヤレスネットワーク)およびネットワークアダプタまたはインタフェース616を介して、外部コンピュータまたは外部記憶装置からコンピューティングデバイスにダウンロードすることができる。ネットワークアダプタまたはインタフェース616から、プログラムは、コンピュータ可読記憶媒体608にロードされ得る。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、およびエッジサーバを含んでよい。
【0076】
コンピューティングシステムはまた、ディスプレイスクリーン620、キーボードまたはキーパッド622、およびコンピュータマウスまたはタッチパッド624を含むことができる。デバイスドライバ612は、撮像のためにディスプレイスクリーン620に、キーボードまたはキーパッド622に、コンピュータマウスまたはタッチパッド624に、もしくは英数字文字入力およびユーザ選択の圧力検知のためにディスプレイスクリーン620に、またはその組み合わせにインタフェースする。デバイスドライバ612、R/Wドライブまたはインタフェース614、およびネットワークアダプタまたはインタフェース616は、コンピュータ可読記憶媒体608もしくはROM606またはその両方に記憶されたハードウェアおよびソフトウェアを含み得る。
【0077】
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
【0078】
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0079】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理装置に、または、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくはワイヤレスネットワークまたはその組み合わせ)を介して外部コンピュータまたは外部記憶装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバー、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバーまたはその組み合わせで構成される。各コンピューティング/処理装置のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0080】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、統合回路のための構成データ、またはSmalltalk、C++などのオブジェクト指向プログラミング言語と「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行可能である。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、または(例えば、インターネットサービスプロバイダーを使用したインターネット経由で)外部コンピュータに接続されてよい。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【0081】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書に記載されている。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
【0082】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令がフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作を実装するための手段を生成するように、機械を生成するためにコンピュータのプロセッサまたは他のプログラム可能なデータ処理装置に提供されることができる。これらのコンピュータ可読プログラム命令はまた、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実装する命令を含む生成品の1つを命令が記憶されたコンピュータ可読記憶媒体が構成するように、コンピュータ、プログラム可能なデータ処理装置、もしくは特定の方法で機能する他のデバイスまたはその組み合わせに接続可能なコンピュータ可読記憶媒体の中に記憶されることができる。
【0083】
コンピュータ、他のプログラム可能な装置、または他のデバイス上でフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為を実行する命令のように、コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の操作ステップを実行し、コンピュータ実装された過程を生成することができる。
【0084】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品が実行可能な実装の構成、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、または命令の一部を表してよく、これは、指定された論理機能を実装するための1つまたは複数の実行可能命令を構成する。いくつかの代替の実装では、ブロックに示されている機能は、図に示されている順序とは異なる場合がある。例えば、連続して示される2つのブロックは、実際には、1つのステップとして達成される場合があり、同時に、実質的に同時に、部分的または全体的に時間的に重複する方法で実行されるか、またはブロックは、関係する機能に応じて逆の順序で実行される場合がある。ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方のブロックの組み合わせは、指定された機能または動作を実行する、または特別な目的のハードウェアとコンピュータ命令の組み合わせを実行する特別な目的のハードウェアベースのシステムによって実装できることにも留意されたい。
【0085】
<クラウドコンピューティング>
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載した教示の実装形態はクラウドコンピューティング環境に限定されない。むしろ、本発明の実施形態は、現在公知のまたは将来開発される他の任意の種類のコンピュータ環境と共に実施することができる。
【0086】
クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの実装モデルを含むことがある。
【0087】
特性は以下の通りである。
【0088】
オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
【0089】
ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
【0090】
リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
【0091】
迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
【0092】
測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
【0093】
サービスモデルは以下の通りである。
【0094】
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
【0095】
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
【0096】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含み得る任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
【0097】
展開モデルは以下の通りである。
【0098】
プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0099】
コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0100】
パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
【0101】
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
【0102】
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0103】
図7を参照すると、例示的なクラウドコンピューティング環境50が示されている。図示するように、クラウドコンピューティング環境50は1つまたは複数のクラウドコンピューティングノード10を含む。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、パーソナルデジタルアシスタント(PDA)もしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード10は互いに通信することができる。ノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、
図7に示すコンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード10およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
【0104】
図8を参照すると、クラウドコンピューティング環境50(
図7)によって提供される機能的抽象化モデルレイヤのセットが示されている。なお、
図8に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
【0105】
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0106】
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば以下の仮想エンティティを提供することができる:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75。
【0107】
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウドコンシューマおよびタスクの識別確認を可能にする。ユーザポータル83は、コンシューマおよびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
【0108】
ワークロードレイヤ90は、クラウドコンピューティング環境が利用可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、ならびに、ストリーミングデータサンプリング処理96が含まれる。
【0109】
本発明のコンピュータプログラム製品は、そこに記憶されたコンピュータ可読プログラムコードを有する1または複数のコンピュータ可読ハードウェア記憶装置を備え、前記プログラムコードは、本発明の方法を実施するために1または複数のプロセッサによって実行可能である。
【0110】
本発明のコンピュータシステムは、1または複数のプロセッサと、1または複数のメモリと、1または複数のコンピュータ可読ハードウェア記憶装置とを備え、前記1または複数のハードウェア記憶装置は、1または複数のプロセッサが1または複数のメモリを介して実行可能なプログラムコードを含み、本発明の方法を実施する。
【0111】
本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であることを意図するものではなく、開示される実施形態に限定されることを意図するものでもない。記載される実施形態の範囲から逸脱することなく、多くの修正および変更が可能であることは当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実際の適用または技術的改善を最もよく説明するため、または当業者が本明細書に記載の実施形態を理解できるようにするために選択された。
【0112】
本発明の範囲から逸脱することなく、前述に改良および修正を加えることができる。
【手続補正書】
【提出日】2024-01-17
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
有限メモリを用いたストリーミングデータの動的サンプリングのためのコンピュータ実装方法であって、
受信ストリーミングデータのサンプルに必要なデータ点の数を構成することと、
前記データ点の数に応じてメモリ貯蔵器にメモリスロットを設けることと、を含み、前記メモリスロットはそれぞれデータ点の位置インデックスおよび信号データの組を記憶するように構成され、各メモリスロットは、前記受信ストリーミングデータのインデックスおよび信号データの組が前記メモリスロットに記憶されるべきかどうかを決定するように構成されるフィルタリングスレッドを有し、
前記フィルタリングスレッドは、前記受信ストリーミングデータが到着するにつれて、ストリーミングデータのストリームにおける増加する到着間隔で、インデックスおよび信号データの組を有する前記データ点の数に対する前記メモリスロットを動的に再投入するように構成される、
方法。
【請求項2】
前記受信ストリーミングデータの到着中の任意の時間に、前記記憶されたデータ点の数は、前記ストリーミングデータの持続時間に渡って広がるサンプルデータ点を提供する、請求項1に記載の方法。
【請求項3】
各メモリスロットに対する前記フィルタリングスレッドは、それぞれ、後のメモリスロットのために、前記インデックスに対してますます高いフィルタ値を有するフィルタを前記インデックスに適用する、請求項1に記載の方法。
【請求項4】
前記メモリスロットの全てがデータを含むまで、前記インデックスおよび信号データの組で前記メモリスロットを初期化することと、その後、後のデータ点サンプルを追加するため、および既存のデータ点サンプルを先のインデックス付きメモリスロットにシフトするために前記フィルタリングスレッドを適用することによって、前記メモリスロットを動的に再投入することと、を含む、請求項1に記載の方法。
【請求項5】
前記メモリスロットを初期化することは、前記ストリーミングデータが到着するにつれて、連続するメモリスロットごとに前記フィルタリングスレッドを増加するインデックスで適用し、前記メモリスロットを再投入することは、前記フィルタリングスレッドを減少するインデックスで適用する、請求項4に記載の方法。
【請求項6】
不変のインデックスおよびデータ信号の組を維持するマスタースレッドを含む、請求項1に記載の方法。
【請求項7】
前記メモリスロットを再投入することは、必要なときに下位インデックスのメモリスロットを再投入するために利用できるようにデータ点サンプルのキューを維持することを含む、請求項4に記載された方法。
【請求項8】
各スレッドが、ソース信号データストリームS
1、S
2、S
3、S
4、...をT
Nによってフィルタリングしたものが、フィルタリングされたデータストリームS
1x(N-1)、S
2x(N-1)、S
3x(N-1)、S
4x(N-1)、...(N個のメモリスロットが存在)となるようにフィルタを実装する、請求項1に記載の方法。
【請求項9】
前記受信ストリーミングデータの到着中の任意の時間に、前記メモリスロットからの前記信号データが、前記ストリーミングデータの統計曲線を維持するサンプルデータ点として統計処理に提供される、請求項1に記載の方法。
【請求項10】
前記統計処理されたサンプルデータ点が期待される統計曲線から外れることによるエラーを予測することを含む、請求項9に記載の方法。
【請求項11】
有限メモリを用いたストリーミングデータの動的サンプリングのためのシステムであって、
プロセッサと、コンポーネントの機能を実行するためのコンピュータプログラム命令を前記プロセッサに提供するように構成されたメモリと、を備え、前記コンポーネントは、
受信ストリーミングデータのサンプルに必要なデータ点の数を構成するための構成コンポーネントと、
前記データ点の数に応じてメモリスロットを設けるためのメモリ貯蔵器であって、前記メモリスロットはそれぞれデータ点の位置インデックスおよび信号データの組を記憶するように構成される、メモリ貯蔵器と、
各メモリスロットにフィルタリングスレッドを設けるためのスレッドコンポーネントであって、前記フィルタリングスレッドはそれぞれ、前記受信ストリーミングデータのインデックスおよび信号データの組が前記メモリスロットに記憶されるべきかどうかを決定するように構成されるフィルタを有する、スレッドコンポーネントと、
前記受信ストリーミングデータを受信するため、および前
記スレッドコンポーネントを適用することによって、ストリーミングデータのストリームにおける増加する到着間隔で、インデックスおよび信号データの組を有する前記データ点の数に対する前記メモリスロットを動的に再投入するためのストリーミングデータ処理コンポーネントと、
を備える、システム。
【請求項12】
前記スレッドコンポーネントは、後のメモリスロットのために、前記インデックスに対してますます高いフィルタ値を有するフィルタを前記インデックスに適用するために、各メモリスロットに対するフィルタリングスレッドを提供する、請求項11に記載のシステム。
【請求項13】
前記ストリーミングデータ処理コンポーネントは、
前記メモリスロットの全てがデータを含むまで、前記インデックスおよび信号データの組で前記メモリスロットを初期化するための初期化コンポーネントと、
その後、後のデータ点サンプルを追加するため、および既存のデータ点サンプルを先のインデックス付きメモリスロットにシフトするために前記フィルタリングスレッドを適用することによって、前記メモリスロットを動的に再投入するための再投入コンポーネントと、
を備える、請求項11に記載のシステム。
【請求項14】
前記メモリスロットを初期化するための前記初期化コンポーネントは、前記ストリーミングデータが到着するにつれて、連続するメモリスロットごとに前記フィルタリングスレッドを適用する、請求項13に記載のシステム。
【請求項15】
前記スレッドコンポーネントは、不変のインデックスおよびデータ信号の組を維持するマスタースレッドを含む、請求項11に記載のシステム。
【請求項16】
前記再投入コンポーネントは、必要なときに下位インデックスのメモリスロットを再投入するために利用できるようにデータ点サンプルのキューを維持することを含む、請求項13に記載のシステム。
【請求項17】
前記スレッドコンポーネントは、ソース信号データストリームS
1、S
2、S
3、S
4、...をT
Nによってフィルタリングしたものが、フィルタリングされたデータストリームS
1x(N-1)、S
2x(N-1)、S
3x(N-1)、S
4x(N-1)、...(N個のメモリスロットが存在)となるようにフィルタリングスレッドを備える、請求項11に記載のシステム。
【請求項18】
前記受信ストリーミングデータの到着中の任意の時間に、前記メモリスロットからの前記信号データを、前記ストリーミングデータの統計曲線を維持するサンプルデータ点として統計処理に出力するためのサンプル出力コンポーネントを含む、請求項11に記載のシステム。
【請求項19】
前記統計処理されたサンプルデータ点が期待される統計曲線から外れることによるエラーを予測するためのエラー予測コンポーネントを含む、請求項
18に記載のシステム。
【請求項20】
有限メモリを用いたストリーミングデータの動的サンプリングのためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、プログラム命令をその中に実装したコンピュータ可読記憶媒体を含み、前記プログラム命令は、プロセッサによって実行可能であり、前記プロセッサに、
受信ストリーミングデータのサンプルに必要なデータ点の数を構成することと、
前記データ点の数に応じてメモリ貯蔵器にメモリスロットを設けることと、を実行させ、前記メモリスロットはそれぞれデータ点の位置インデックスおよび信号データの組を記憶するように構成され、各メモリスロットは、前記受信ストリーミングデータのインデックスおよび信号データの組が前記メモリスロットに記憶されるべきかどうかを決定するように構成されるフィルタリングスレッドを有し、
前記フィルタリングスレッドは、前記受信ストリーミングデータが到着するにつれて、ストリーミングデータのストリームにおける増加する到着間隔で、インデックスおよび信号データの組を有する前記データ点の数に対する前記メモリスロットを動的に再投入するように構成される、コンピュータプログラム製品。
【手続補正2】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【国際調査報告】