(57)【要約】【課題】データサーバ（１２４）で受け取るサーバ要求（１２２）を処理するための方法および装置を提供すること。【解決手段】データサーバ（１２４）は、ポリシー要求ハンドラ（１４０）を備える。ポリシー要求ハンドラ（１４０）は、サーバ要求（１２２）をデータサーバ（１２４）で受け取ったことに応じて、データサーバ（１２４）内で活動化される。ポリシー要求ハンドラ（１４０）は、複数の非同期データストリーム（８０１）を受け取るように構成される。ポリシー要求ハンドラ（１４０）は、複数の非同期データストリーム（８０１）中のデータ点群を共にマージして、時間順序データ点群（８１１）を形成するようにさらに構成される。ポリシー要求ハンドラ（１４０）は、時間順序データ点群（８１１）を用いて、サーバ要求（１２２）中で識別されたサーバポリシー（１２８）に従ってポリシーベースのデータを形成するようにさらに構成される。【選択図】なし【特許請求の範囲】
【請求項１】
サーバ要求（１２２）をデータサーバ（１２４）で受け取ったことに応じて、前記データサーバ（１２４）内で活動化されるポリシー要求ハンドラ（１４０）を備え、
前記ポリシー要求ハンドラ（１４０）が、複数の非同期データストリーム（８０１）を受け取り、前記複数の非同期データストリーム（８０１）中のデータ点群（１３５）を共にマージして時間順序データ点群（８１１）を形成し、かつ前記時間順序データ点群（８１１）を用いて、前記サーバ要求（１２２）中で識別されたサーバポリシー（１２８）に従ってポリシーベースのデータ（８１３）を形成するように構成され、それにより、前記ポリシー要求ハンドラが、時間順序データ点を処理して、クライアントに送るべき出力データを形成する、データサーバ（１２４）。
【請求項２】
前記ポリシー要求ハンドラ（１４０）が、
前記複数の非同期データストリーム（８０１）中の前記データ点群（１３５）を共にマージして、前記時間順序データ点群（８１１）を形成するデータマージャ（８００）を備える、請求項１に記載のデータサーバ（１２４）。
【請求項３】
前記サーバ要求（１２２）がライブ要求であるとき、前記データマージャ（８００）が、前記データサーバ（１２４）の受信器から前記複数の非同期データストリーム（８０１）を受け取り、前記受信器（１３２）は、１組のデータプロバイダ（１０６）のうちの少なくとも１つからデータを受け取る、請求項２に記載のデータサーバ（１２４）。
【請求項４】
前記サーバ要求（１２２）が履歴要求であるとき、前記データマージャ（８００）が、前記データサーバ（１２４）の記憶システム（１３４）から前記複数の非同期データストリーム（８０１）を受け取り、前記記憶システム（１３４）は、前記受信器（１３２）が受信した前記データを記憶している、請求項３に記載のデータサーバ（１２４）。
【請求項５】
前記ポリシー要求ハンドラ（１４０）が、
前記時間順序データ点群（８１１）を用いて、前記ポリシーベースのデータ（８１３）を形成するポリシーベースのデータマネージャ（８０２）をさらに備え、
前記ポリシーベースのデータ（８１３）が、前記サーバポリシー（１２８）に基づいて形成される、請求項２に記載のデータサーバ（１２４）。
【請求項６】
前記サーバポリシー（１２８）が、前記サーバ要求（１２２）があらゆるサンプル要求であることを示しているとき、前記ポリシーベースのデータマネージャ（８０２）は、前記時間順序データ点群（８１１）におけるあらゆるデータ点（１３６）を用いて、前記ポリシーベースのデータ（８１３）を形成するように構成される、請求項５に記載のデータサーバ（１２４）。
【請求項７】
前記ポリシーベースのデータマネージャ（８０２）が、前記ポリシーベースのデータ（８１３）を１組のポリシーベースのデータフレーム（１４８）として形成するように構成され、前記１組のポリシーベースのデータフレーム（１４８）の各ポリシーベースのデータフレーム（１５０）が、前記時間順序データ点群（８１１）を用いてイベントが生ずるのに応じて形成される、請求項５に記載のデータサーバ（１２４）。
【請求項８】
データサーバ（１２４）で受け取ったサーバ要求（１２２）を処理するための方法であって、
前記サーバ要求（１２２）を受け取ったことに応じて、前記データサーバ（１２４）内のポリシー要求ハンドラ（１４０）を活動化すること、
前記ポリシー要求ハンドラ（１４０）で、複数の非同期データストリーム（８０１）を受け取ること、
前記ポリシー要求ハンドラ（１４０）により、前記複数の非同期データストリーム（８０１）中のデータ点群（１３５）を共にマージして、時間順序データ点群（８１１）を形成すること、および
前記ポリシー要求ハンドラ（１４０）により、前記時間順序データ点群（８１１）を用いて、前記サーバ要求（１２２）中で識別されたサーバポリシー（１２８）に従ってポリシーベースのデータ（８１３）を形成すること
を含む方法。
【請求項９】
前記ポリシーベースのデータ（８１３）を、前記サーバ要求（１２２）が形成されるポリシー要求（１１２）を生成したクライアント（１１４）に、出力データ（１５６）として送ることをさらに含む、請求項８に記載の方法。
【請求項１０】
前記ポリシー要求ハンドラ（１４０）により、前記ポリシーベースのデータ（８１３）を形成することが、
前記ポリシー要求ハンドラ（１４０）により、前記ポリシーベースのデータ（８１３）を１組のポリシーベースのデータフレーム（１４８）として形成することを含み、前記１組のポリシーベースのデータフレーム（１４８）における各ポリシーベースのデータフレーム（１５０）が、前記時間順序データ点群（８１１）を用いて、イベントが生ずるのに応じて形成される、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、サーバシステムに関し、詳細には、データプロバイダとクライアントの両方と通信するサーバシステムに関する。さらにより詳細には、本開示は、クライアントにより要求されたポリシーに従ってクライアントにデータを供給することにより、クライアントからのデータを求める同時要求に応ずることのできるサーバシステムに関する。
【背景技術】
【０００２】
クライアントアプリケーションにデータを提供するために、様々なタイプのサーバおよびサーバ群を使用することができる。特定のサーバでホストされるデータは、任意の数のデータソースから受け取ることができる。例えば、１つまたは複数のサーバを、飛行中に航空機に搭載されたフライトデータレコーダおよび取得システムから得られるデータをホストするために使用することができる。これらの１つまたは複数のサーバは、任意の数のライブサーバ、履歴サーバ、ライブ／履歴サーバ、および／または他のタイプのサーバを含むことができる。
【０００３】
本明細書で使用される場合、「ライブサーバ」とは、クライアントアプリケーションにライブデータを提供することのみが可能なサーバのことである。実時間データとも呼ばれるライブデータは、実質的にデータが生成された、または収集された直後にクライアントアプリケーションに送達されるデータとすることができる。例えば、フライトデータレコーダから取得されたデータをホストするライブサーバは、何らかの著しい時間遅延または処理遅延を生ずることなく、データがフライトデータレコーダにより記録されると、このデータをクライアントアプリケーションに供給することができる。
【０００４】
本明細書で使用される場合、「履歴サーバ」とは、履歴データ、または遅延データをクライアントアプリケーションに提供することのみが可能なサーバのことである。例えば、履歴サーバは、気象観測システムからの温度測定値を受け取ることができる。クライアントアプリケーションによりこれらの温度測定値を求める要求があると、履歴サーバは、３０分の遅延後に温度測定値をクライアントアプリケーションに提供することができる。
【０００５】
本明細書で使用される場合、「ライブ／履歴サーバ」とは、ライブデータと履歴データを共にクライアントアプリケーションに対して同時に提供できるサーバのことである。ライブ／履歴サーバは、ライブデータを受け取ることができ、かつライブデータを履歴データとして記憶することができる。ライブ／履歴サーバは、クライアントアプリケーションにより行われた個々の要求に応じて、ライブデータを受け取るとライブデータをクライアントアプリケーションに供給し、あるいは履歴データをクライアントアプリケーションに供給することができる。
【０００６】
試験システム、監視システム、健康情報監視システム、ならびに／または他のタイプのデータ収集および解析システムは、ライブサーバ、履歴サーバ、ライブ／履歴サーバ、および／または他のタイプのサーバの任意の組合せを使用して、クライアントアプリケーションにデータを渡すことができる。しかし、いくつかの現在利用できるサーバは、クライアントアプリケーションにより選択された方法で希望するほど迅速かつ／または効率的に、同時に複数のクライアントアプリケーションにデータを提供することができない。例えば、いくつかの現在利用できるサーバは、ライブデータと履歴データを共に求める同時要求に対して、希望するほど迅速かつ／または効率的に応ずることはできない。
【０００７】
さらにいくつかの場合、データストリームは、サーバにおいて非同期で受信される可能性がある。例えば、あるデータストリームは、サーバにおいてあるデータレートで受信できるが、別のデータストリームは、サーバで、時間経過により変化する別のデータレートで受信されることもありうる。いくつかの現在利用できるライブ／履歴データサーバは、ライブ／履歴データサーバに対して内部または外部のクロックで指示された時間に基づき、非同期で受信されたデータを同期させることができる。言い換えると、これらのデータサーバは、元々データに関連付けられたタイムスタンプを保存することはできない。
【０００８】
さらにこれらの現在利用できるライブ／履歴データサーバは、データをクライアントが指定するデータレートでクライアントに送るように要求するクライアントからの要求を処理することができない可能性がある。さらにいくつかの現在利用できるライブ／履歴システムは、複数の異なるハードウェアにわたりスケーラブルではない、または分散できない可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって、上記で論じた問題のうちの少なくともいくつか、ならびに他の可能な問題を考慮に入れた方法および装置を有することが望ましい。
【課題を解決するための手段】
【００１０】
例示的な一実施形態では、データサーバはポリシー要求ハンドラを含む。ポリシー要求ハンドラは、サーバ要求をデータサーバで受け取ったことに応じて、データサーバ内で活動化される。ポリシー要求ハンドラは、複数の非同期データストリームを受け取るように構成される。ポリシー要求ハンドラは、複数の非同期データストリーム中のデータ点を共にマージして、時間順序データ点を形成するようにさらに構成される。ポリシー要求ハンドラは、時間順序データ点を用いて、サーバ要求中で識別されたサーバポリシーに従ってポリシーベースのデータを形成するようにさらに構成される。本開示の別の態様では、データサーバは、時間順序データ点および補間を用いて識別された、いくつかのデータ値を受信できることが好ましい。サーバマネージャがポリシー要求ハンドラを活動化する場合、ポリシー要求ハンドラは、ポリシーベースのデータを用いて、ポリシー要求ハンドラからクライアントに送信するための出力データを形成する出力パケタイザをさらに備えることが好ましく、またポリシー要求ハンドラが、サーバ要求が形成されるポリシー要求を生成したクライアントに対してポリシーベースのデータを供給することがより好ましい。ポリシー要求ハンドラがデータ点を受け取る場合、複数の非同期データストリーム中のデータ点のそれぞれが、データ値と、データ値が取得された時間を示す時間値とを含むことが好ましい。
【００１１】
別の例示的な実施形態では、サーバシステムは、サーバコントローラおよび１組のデータサーバを含む。サーバコントローラは、クライアントからポリシー要求を受け取るように構成される。サーバコントローラは、ポリシー要求に基づき、いくつかのサーバ要求を生成するようにさらに構成される。データサーバの組におけるデータサーバは、サーバマネージャおよびポリシー要求ハンドラを含む。サーバマネージャは、いくつかのサーバ要求におけるサーバ要求の受取りに応じて、いくつかのポリシー要求ハンドラを活動化する。いくつかのポリシー要求ハンドラにおけるポリシー要求ハンドラは、複数の非同期データストリームを受け取るように構成される。いくつかのポリシー要求ハンドラにおけるポリシー要求ハンドラは、複数の非同期のデータストリーム中のデータ点を共にマージして、時間順序データ点を形成するようにさらに構成される。いくつかのポリシー要求ハンドラにおけるポリシー要求ハンドラは、時間順序データ点を用いて、サーバ要求で識別されたサーバポリシーに従ってポリシーベースのデータを形成するようにさらに構成される。いくつかのポリシー要求ハンドラにおけるポリシー要求ハンドラは、ポリシーベースのデータを出力データとしてクライアントに送るようにさらに構成される。
【００１２】
さらに別の例示的な実施形態では、データサーバで受け取ったサーバ要求を処理するための方法が提供される。データサーバ内のポリシー要求ハンドラは、サーバ要求を受け取ったことに応じて活動化される。複数の非同期データストリームが、ポリシー要求ハンドラで受け取られる。複数の非同期データストリーム中のデータ点は、ポリシー要求ハンドラにより共にマージされて、時間順序データ点を形成する。ポリシーベースのデータは、時間順序データ点を用いて、サーバ要求中で識別されたサーバポリシーに従ってポリシー要求ハンドラにより形成される。
【００１３】
本特徴および機能は、本開示の様々な実施形態で独立して達成することができるが、さらに他の実施形態では組み合わせることも可能であり、さらなる詳細については、以下の説明および添付図面を参照すれば理解することができる。
【００１４】
例示的な実施形態の特性と考えられる新規の特徴は、添付の特許請求の範囲に記載される。しかし、例示的な実施形態、ならびに好ましい使用モード、そのさらなる目的および特徴は、本開示の例示的な実施形態の以下の詳細な説明を参照して、添付図面と併せて読めば最もよく理解されよう。
【図面の簡単な説明】
【００１５】
【図１】例示的な実施形態によりブロック図の形で情報管理環境を示す図である。
【図２】例示的な実施形態によりブロック図の形でポリシー要求を示す図である。
【図３】例示的な実施形態による情報管理環境の図である。
【図４】例示的な実施形態によるデータサーバおよびサーバコントローラの図である。
【図５】例示的な実施形態によるデータサーバのより詳細な図である。
【図６】例示的な実施形態による構成情報の図である。
【図７】例示的な実施形態によるデータサーバのサーバマネージャの図である。
【図８】例示的な実施形態によるポリシー要求ハンドラの図である。
【図９】例示的な実施形態によるデータマージャの図である。
【図１０】例示的な実施形態によるポリシーベースのデータマネージャの図である。
【図１１】例示的な実施形態により流れ図の形で、データをクライアントに供給するプロセスを示す図である。
【図１２】例示的な実施形態により流れ図の形でサーバ要求を処理するためのプロセスを示す図である。
【図１３】例示的な実施形態により流れ図の形でポリシーベースのデータを形成するプロセスを示す図である。
【図１４】例示的な実施形態によりブロック図の形でデータ処理システムを示す図である。
【発明を実施するための形態】
【００１６】
様々な例示的な実施形態は、様々な考察を認識し、かつ考慮に入れている。例えば、例示的な実施形態は、複数のクライアントアプリケーションを処理することができ、かつこれらのクライアントアプリケーションからの、ライブデータおよび／または履歴データを求める同時要求に応ずることのできるサーバシステムを有することが望ましい可能性のあることを認識し、かつ考慮している。さらに例示的な実施形態は、クライアントアプリケーションに送られたデータを時間に対して同期させることのできるサーバシステムを、またはデータにより示されたパラメータもしくは情報、あるいはデータの内容に従ってデータを順序付けるサーバシステムを有することが望ましい可能性のあることを認識し、かつ考慮している。
【００１７】
例えば、サーバは、毎秒約１０００サンプルのデータレートで第１のセンサデバイスにより生成された第１の出力信号のサンプルを受け取り、かつ毎秒約５００サンプルのデータレートで第２のセンサデバイスにより生成された第２の出力信号のサンプルを受け取ることができる。しかし、クライアントアプリケーションは、第１の出力信号のサンプルと、第２の出力信号のサンプルを共に、毎秒約１００サンプルのデータレートで受け取ることを望むことがある。例示的な実施形態は、これらのサンプルを処理し、かつクライアントが指定したデータレートで時間的に同期させて要求されたデータをクライアントアプリケーションに送ることのできるサーバを有することが望ましい可能性のあることを認識し、かつ考慮している。したがって、例示的な実施形態は、クライアントからのデータ要求を処理するためのサーバシステムを提供する。このサーバシステムは、図１により以下で述べる。
【００１８】
次に図を、特に図１を参照すると、情報管理環境の図が例示的な実施形態によりブロック図の形で示されている。情報管理環境１００は、サーバシステム１０２、クライアントの組１０４、およびデータプロバイダの組１０６を含む。本明細書で使用される場合、「の組」のアイテムは、１つまたは複数のアイテムとすることができる。このように、クライアントの組１０４は、１つまたは複数のクライアントとすることができ、またデータプロバイダの組１０６は、１つまたは複数のデータプロバイダとすることができる。
【００１９】
サーバシステム１０２は、データプロバイダの組１０６からデータを受け取り、データを記憶する。サーバシステム１０２は、次いで、要求があると、このデータをクライアントの組１０４に渡す。データプロバイダの組１０６におけるデータプロバイダは、ハードウェア、ソフトウェア、またはその２つの組合せを含むことができる。例えば、本明細書で使用される場合、データプロバイダの組１０６におけるデータプロバイダは、監視システム、健康監視システム、分散されたデータ取得システム、センサデバイス、複数のセンサデバイスからなるセンサシステム、コンピュータ、撮像システム、査察システム、サーバ、様々なサーバシステム、電子メールアプリケーション、ウェブアプリケーション、または何らかの他のタイプのデータソースの形を取ることができる。
【００２０】
さらにクライアントの組１０４におけるクライアントは、ハードウェア、ソフトウェア、またはその２つの組合せを含むことができる。例えば、クライアントの組１０４のクライアントは、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、移動電話、携帯情報端末、プロセッサユニット、マイクロチップ、集積回路、アプリケーションソフトウェア、コンピュータプログラム、データ安定化システム、表示デバイス、視覚化ツール、データビューワ、視覚インターフェースプログラム、仮想現実システム、または何らかの他のタイプのデータ要求元端末の形を取ることができる。クライアントが、完全にソフトウェアから構成される場合、クライアントをクライアントアプリケーションと呼ぶことができる。
【００２１】
この例示的な実施例では、サーバシステム１０２は、サーバコントローラ１０８およびデータサーバの組１１０を含む。データサーバの組１１０におけるデータサーバは、ハードウェア、ソフトウェア、またはその２つの組合せを用いて実施することができる。例示的な一実施例では、データサーバの組１１０における各データサーバは、異なるハードウェアデバイスで実施することができる。しかし、他の例示的な実施例では、２つ以上のデータサーバを、同じハードウェアデバイスの一部として実施することができる。
【００２２】
サーバコントローラ１０８は、データサーバの組１１０における各データサーバと通信を確立するように構成することができる。いくつかの場合では、サーバコントローラ１０８は、データサーバの組１１０に対して遠隔に配置されたハードウェアで実施することができる。他の場合には、サーバコントローラ１０８は、データサーバの組１１０の１つまたは複数のものと同じハードウェアで実施することができる。
【００２３】
さらにサーバコントローラ１０８は、クライアントの組１０４における各クライアント、およびデータプロバイダの組１０６における各データプロバイダと通信を確立するように構成することができる。例えば、サーバコントローラ１０８は、データプロバイダの組１０６の各データプロバイダがデータを送るべき、データサーバの組１１０の１つまたは複数のデータサーバを決定することができる。
【００２４】
例示的な一実施例として、サーバコントローラ１０８は、データプロバイダの組１０６のデータプロバイダ１１１が、データサーバの組１１０における特定のデータサーバにデータを送るべきであると決定することができる。いくつかの場合では、この特定のデータサーバは、データプロバイダの組１０６における複数のデータプロバイダからデータを受け取るように構成することができる。さらに、実装形態に応じて、データプロバイダ１１１は、データサーバの組１１０における１つまたは複数の他のデータサーバにもデータを送るようにサーバコントローラ１０８により制御されうる。
【００２５】
データプロバイダ１１１は、実装形態に応じて、同じ部分のデータをこれらのデータサーバのすべてに、かつ／または異なる部分のデータを異なるデータサーバに送ることができる。例えば、限定するものではないが、データプロバイダ１１１は、データの一部を１つのデータサーバに送り、次いで、データの同じ部分をバックアップ用に他のデータサーバに送ることができる。この他のデータサーバは、次いで、第１のデータサーバが利用できなくなる、またはアクセスできなくなった場合に、バックアップ用データサーバとして使用することができる。
【００２６】
例示的な一実施例では、サーバコントローラ１０８は、データプロバイダ１１１が、データサーバの組１１０のデータサーバ１２４にデータを送るべきであると決めることができる。データサーバ１２４は、サーバマネージャ１３０、受信器１３２、および記憶システム１３４を含むことができる。サーバマネージャ１３０は、サーバコントローラ１０８と通信することができる。サーバマネージャ１３０は、受信器１３２および記憶システム１３４を制御することができる。
【００２７】
データプロバイダの組１０６のデータプロバイダからデータサーバ１２４で受信したいずれのデータも受信器１３２で受信することができる。サーバマネージャ１３０は、受信器１３２がデータプロバイダからいつデータの受信を開始するか、およびいつデータの受信を停止するかを決定することができる。いくつかの場合では、サーバマネージャ１３０は、サーバコントローラ１０８からのコマンドに基づいて、受信器１３２におけるデータの受信を制御することができる。
【００２８】
この例示的な実施例では、データサーバ１２４を、データプロバイダ１１１からデータ点群１３５を受信するように指定することができる。データ点群１３５は、任意の数のデータストリームで非同期に受信することができる。各データストリームは、時間経過と共に受信された複数のデータ点群を含むことができる。本明細書で使用される場合、データ点群１３５におけるデータ点１３６などの「データ点」は、データ値１３７および時間値１３８を含む。データ点群１３５は、非同期で受信することができ、その場合、様々なデータストリームは、様々なデータレートを有することができる。
【００２９】
データ値１３７は、パラメータに対する値である。本明細書で使用される場合、「パラメータ」は、測定値、信号、特性、または何らかのタイプの測定可能な性質もしくは特徴とすることができる。データ値１３７は、任意の数のビットから構成することができる。様々なタイプのパラメータの例は、これだけに限らないが、温度、湿度、速度、高度、向き、燃料搭載量、重量、光の強度、動力、または他のタイプのパラメータを含むことができる。データ点群１３５は、１つまたは複数のパラメータに対するデータ点を含むことができる。
【００３０】
時間値１３８は、データ値１３７が取得された時間を示す値である。データ値１３７が「取得された」時間とは、データ値１３７がデジタル形式で取得された、または生成された時間とすることができる。いくつかの場合では、時間値１３８は、取得時間値または取得タイムスタンプと呼ぶことができる。さらに時間値１３８は、何らかの基準クロックに対する時間とすることができる。例示的な一実施例では、データプロバイダの組１０６のそれぞれを、この基準クロックに同期させることができる。
【００３１】
例示的な一実施例では、データプロバイダ１１１は、このタイプのデータに対して選択された許容差外の何らかの時間遅延または処理遅延を含むことなく、データプロバイダ１１１がデータ点群１３５を取得した直後に、データ点群１３５をデータサーバ１２４に送ることができる。この方法では、データ点群１３５は、現在のデータ点群、ライブデータ点群、実時間のデータ点群、またはほぼ実時間のデータ点群と呼ぶことができる。
【００３２】
さらにデータプロバイダ１１１は、データ点群１３５が、パラメータごとに単調に増加する時間順序で受信器１３２に送られるように構成することができる。言い換えると、特定のパラメータに対するすべてのデータ点は、最も早期に取得されたデータ点が、データサーバ１２４で最初に受信されるように、時間に関して順序付けられて受信されうる。
【００３３】
しかし、いくつかの場合では、様々なパラメータに対して受信されたデータ点が、時間に対して順序付けられていないこともありうる。言い換えると、第１のパラメータに対する第１のデータ点は、第１のデータ点が第２のパラメータに対する時間値よりも遅い時間値を有する場合であっても、第２のパラメータに対する第２のデータ点の前に、受信器１３２で受信される可能性がある。しかし、その第１のパラメータに対するすべてのデータ点を時間順序で受信し、また第２のパラメータに対するすべてのデータ点を時間順序で受信することができる。
【００３４】
さらにデータ点群１３５に対するデータ値は、様々なデータレートで取得されている可能性がある。例えば、１つのパラメータに対するデータ値が、別のパラメータに対するデータ値とは異なるデータレートで取得されている可能性がある。このように、データ点群１３５に対するデータ値は、非同期で、または非決定論的に取得されている可能性がある。
【００３５】
当然であるが、他の場合には、データ点群１３５に対するデータ値は、同期させて取得することもできる。例示的な一実施例として、データ点群１３５は、２つのパラメータに対するデータ点群を含むことができる。これらの２つのパラメータに対して取得されたデータ値は、指定された同じデータレートで取得することができる。このように、データ点群１３５に対するデータ値は、同期させて、または所定のデータレートで取得することができる。
【００３６】
この例示的な実施例では、記憶システム１３４は、受信器１３２からデータ点群１３５を受け取り、データ点群１３５を記憶する。記憶システム１３４に記憶された後、データ点群１３５は、記憶されたデータ点群１３９と呼ぶことができる。記憶されたデータ点群１３９の各記憶されたデータ点は、元のデータ点のデータ値および時間値を保存することができる。いくつかの場合、記憶されたデータ点群１３９はまた、履歴データ点群または記録されたデータ点群と呼ぶこともできる。
【００３７】
記憶システム１３４は、いくつかの異なる形態を取ることができる。例示的な一実施例では、記憶システム１３４は、キャッシングシステムおよびディスクストレージを含むことができる。当然ではあるが、任意の数のディスク記憶デバイス、メモリタイプ、および／または他のタイプのデータ記憶デバイスを、記憶システム１３４に含めることができる。
【００３８】
この方法では、サーバコントローラ１０８は、データプロバイダの組１０６からデータサーバの組１１０へのデータの配信を管理することができる。サーバコントローラ１０８はまた、データサーバの組１１０からクライアントの組１０４へのデータの配信を管理することもできる。
【００３９】
例えば、サーバコントローラ１０８は、クライアントの組１０４から任意の数のポリシー要求を受け取り、かつ処理するように構成することができる。本明細書で使用される場合、「ポリシー要求」とは、クライアントの組１０４のうちの１つなどのクライアントが、データサーバの組１１０などの１つまたは複数のデータサーバからデータにアクセスできる手段のことである。具体的には、ポリシー要求とは、ポリシーに従ってデータを求める要求のことである。
【００４０】
本明細書で使用される場合、「ポリシー」とは、データがクライアントに送達される方法を記述するために使用される用語のことである。言い換えると、ポリシーは、クライアントからのデータを求める要求に応じてデータをクライアントに送達する方法を、データサーバがどのように制御するかを記述する。特定のポリシーをポリシー要求内で指定することにより、クライアントは、クライアントがデータを受け取ることを望む方法を指定する。ポリシー要求が実施されうる一方法の例は、図２により以下で示される。
【００４１】
例示的な一実施例では、サーバコントローラ１０８は、クライアントの組１０４のクライアント１１４からポリシー要求１１２を受け取る。クライアント１１４は、データサーバの組１１０でホストされているデータにアクセスすることを望む場合、ポリシー要求１１２を生成する。
【００４２】
ポリシー要求１１２は、ポリシー１１８に従ってデータを求める要求である。ポリシー１１８は、データのタイプ、データに対する時間および／または日付範囲、データをクライアント１１４に送るべきフォーマット、データがソートされ、順序付けられ、フォーマットされ、かつ／またはその他の形でクライアント１１４に送られる前に処理される方法、データをクライアント１１４に送るべき指定されたデータレート、あるいはデータがクライアント１１４に供給される方法に対する何らかの他のタイプの命令もしくは要件のうちの少なくとも１つを示すことができる。
【００４３】
本明細書で使用される場合、「少なくとも１つの」という句は、アイテムの一覧と共に使用されるとき、列挙されたアイテムの１つまたは複数のものの様々な組合せを使用することができ、また列挙されたアイテムのうちの１つだけが必要になりうることを意味する。アイテムは、特定のオブジェクト、物、または範疇とすることができる。言い換えると、「少なくとも１つの」とは、アイテムの任意の組合せ、またはアイテムの任意の数を一覧から使用することができるが、一覧中のすべてのアイテムを必要とするのではないことを意味する。
【００４４】
例えば、「アイテムＡ、アイテムＢ、およびアイテムＣのうちの少なくとも１つ」は、アイテムＡ；アイテムＡおよびアイテムＢ；アイテムＢ；アイテムＡ、アイテムＢ、およびアイテムＣ；またはアイテムＢおよびアイテムＣを意味することができる。いくつかの場合では、「アイテムＡ、アイテムＢ、およびアイテムＣのうちの少なくとも１つ」は、例えば、限定することなく、アイテムＡを２つ、アイテムＢを１つ、およびアイテムＣを１０；アイテムＢを４つとアイテムＣを７つ；または何らかの他の適切な組合せを意味することができる。
【００４５】
クライアント１１４からポリシー要求１１２を受信したことに応じて、サーバコントローラ１０８は、データサーバの組１１０のうちのどの１つまたは複数のものが、クライアント１１４により要求されたデータをホストしているかを決めることができる。いくつかの場合では、１つのデータサーバが、要求されたデータのすべてをホストしていることもありうる。他の場合では、１つのデータサーバは、要求されたデータの第１の部分をホストすることができ、一方、別のデータサーバが、要求されたデータの第２の部分をホストしている。
【００４６】
要求されたデータの何らかの部分をホストしていると識別された、データサーバの組１１０における各データサーバに対して、サーバコントローラ１０８は、ポリシー要求１１２に関する情報をそのデータサーバに転送することができる。この情報は、ポリシー要求情報と呼ぶことができ、サーバ要求の形でデータサーバに送ることができる。例えば、サーバコントローラ１０８は、データサーバ１２４を、要求されたデータの一部をホストしていると識別することができる。上記で述べたように、この部分は、要求されたデータのいくつか、またはすべてでありうる。この例示的な実施例では、サーバコントローラ１０８は、データサーバ１２４に向けてサーバ要求１２２を生成し、かつサーバ要求１２２をデータサーバ１２４に送ることができる。
【００４７】
図示のように、サーバ要求１２２は、サーバポリシー１２８に従ってデータを求める要求とすることができる。サーバポリシー１２８は、データサーバ１２４上でホストされている要求されたデータの一部に対応するポリシー１１８の一部を含むことができる。言い換えると、サーバポリシー１２８は、データサーバ１２４がデータをクライアント１１４に渡す方法を示すことができる。
【００４８】
この例示的な実施例では、データサーバ１２４は、サーバ要求１２２を受け取り、かつ処理する。具体的には、サーバマネージャ１３０が、サーバ要求１２２をサーバコントローラ１０８から受け取ることができる。サーバマネージャ１３０がサーバ要求１２２を受け取ったとき、サーバマネージャ１３０は、サーバ要求１２２を処理するために、いくつかのポリシー要求ハンドラ１４１を活動化する。本明細書で使用される場合、「いくつかの」アイテムとは、１つまたは複数のアイテムを含むことができる。このように、いくつかのポリシー要求ハンドラ１４１は、１つまたは複数のポリシー要求ハンドラを含むことができる。
【００４９】
いくつかのポリシー要求ハンドラ１４１は、クライアント１１４により要求されるデータを収集し、次いでこのデータをクライアント１１４に送るように構成することができる。ポリシー要求ハンドラ１４０は、いくつかのポリシー要求ハンドラ１４１のうちの一例とすることができる。サーバマネージャ１３０は、サーバ要求１２２に基づいて、ポリシー要求ハンドラ１４０が、このデータを直接受信器１３２から収集すべきであるか、それとも記憶システム１３４からか収集すべきかを判定する。
【００５０】
さらにサーバマネージャ１３０は、ハンドラポリシー１４２をポリシー要求ハンドラ１４０に送り、ポリシー要求ハンドラ１４０が、このデータを直接受信器１３２から受信すべきか、それとも記憶システム１３４から受信すべきかを識別する。いくつかの場合では、ハンドラポリシー１４２はまた、データを受信すべき選択されたパラメータ１４３を識別することもできる。
【００５１】
ポリシー要求ハンドラ１４０で受け取るデータは、入力データ点群１４４と呼ぶことができる。入力データ点群１４４を受信器１３２から受け取る場合、サーバマネージャ１３０は、受信器１３２で受け取るデータ点群１３５の一部またはすべてをポリシー要求ハンドラ１４０に送るように受信器１３２に指令する。この方法では、データ点群１３５が受信器１３２で受信されると、データ点群１３５を記憶システム１３４に送ることに加えて、受信器１３２は、受信器１３２で受信したデータ点群１３５のいくつかまたはすべてをポリシー要求ハンドラ１４０に送り、入力データ点群１４４を形成する。
【００５２】
例示的な一実施例では、受信器１３２は、受信器１３２で受信したデータ点群１３５をすべてポリシー要求ハンドラ１４０に送ることができる。別の例示的な実施例では、受信器１３２は、ハンドラポリシー１４２で指定され、選択されたパラメータ１４３に対応するデータ点群１３５の部分だけをポリシー要求ハンドラ１４０に送ることができる。
【００５３】
入力データ点群１４４を、記憶システム１３４から受け取るとき、サーバマネージャ１３０は、記憶されたデータ点群１３９のこの部分を、記憶システム１３４のどの記憶デバイス、またはメモリユニットから取り出すべきかを決定することができる。ポリシー要求ハンドラ１４０は、記憶されたデータ点群１３９のこの部分を取り出して、入力データ点群１４４を形成することができる。
【００５４】
ポリシー要求ハンドラ１４０は、パラメータごとに単調に増加する時間順序で、入力データ点群１４４を受け取ることができる。しかし、様々なパラメータに対する入力データ点群１４４が、時間順序になっていない可能性がある。ポリシー要求ハンドラ１４０が入力データ点群１４４を受け取ると、ポリシー要求ハンドラ１４０は、様々なパラメータに対するデータ点群を共にマージして、時間順序データアレイ１４６を形成する。時間順序データアレイ１４６は、データ点群が対応しているパラメータとは無関係に、データのすべてが時間に関して順序付けられた、データ点群の単一のアレイとすることができる。
【００５５】
ポリシー要求ハンドラ１４０は、時間順序データアレイ１４６を処理して、クライアント１１４に送るべき出力データ１５６を形成することができる。ハンドラポリシー１４２は、データをクライアント１１４に対して非同期で送るべきか、それとも同期させて送るべきかを識別することができる。
【００５６】
データをクライアント１１４に非同期で送るべきである場合、ポリシー要求ハンドラ１４０は、時間順序データアレイ１４６のあらゆるデータ点をクライアント１１４に送る。クライアント１１４に送られる各データ点は、データ点が取得された時間を示す元の時間値を含むことができる。
【００５７】
データをクライアント１１４に同期させて送るべきである場合、ポリシー要求ハンドラ１４０は、時間順序データアレイ１４６と、ハンドラポリシー１４２で示された指定されたデータレートとを用いて、ポリシーベースのデータフレームの組１４８を形成することができる。ポリシーベースのデータフレームの組１４８における各ポリシーベースのデータフレームは、イベントの出現に関連付けることができる。
【００５８】
イベントはまた、トリガと呼ぶこともできる。イベントは、例えば、これだけに限らないが、時間間隔の経過、データトリガイベント、時間トリガイベント、または何らかの他のタイプのイベントとすることができる。データトリガイベントは、例えば、限定することなく、何らかの選択された閾値を超える、もしくは閾値未満の値に変化するデータ値、識別されたデータ値の選択された反復数、または何らかの他のタイプのトリガとすることができる。
【００５９】
ポリシーベースのデータフレーム１５０は、特定のイベントに対して形成されたポリシーベースのデータフレームの組１４８におけるポリシーベースのデータフレームの例とすることができる。ポリシーベースのデータフレーム１５０は、いくつかのデータ値１５２および時間値１５４を含むことができる。時間値１５４は、特定のイベントが生じた時間とすることができる。例示的な一実施例では、イベントは、指定されたデータレートに基づいた時間間隔の経過とすることができる。いくつかのデータ値１５２は、時間値１５４における選択されたパラメータ１４３の各パラメータに対する最後に知られたデータ値を含むことができる。
【００６０】
このように、ポリシー要求ハンドラ１４０は、ポリシーベースのデータフレームの組１４８におけるデータ点群が、クライアント１１４により要求された方法で、クライアント１１４に提示できるように、ハンドラポリシー１４２に従って、ポリシーベースのデータフレームの組１４８を形成する。したがって、同じデータを、ハンドラポリシー１４２に応じて、いくつかの様々な方法でクライアント１１４に提示することができる。
【００６１】
ポリシー要求ハンドラ１４０は、ポリシーベースのデータフレームの組１４８を、出力データ１５６の形でクライアント１１４に送ることができる。出力データ１５６は、時間経過と共にクライアント１１４に送られる１つまたは複数のデータパケットを含むことができる。
【００６２】
いくつかの例示的な実施例では、サーバマネージャ１３０は、受信したサーバ要求ごとに、ポリシー要求ハンドラを１つだけ活動化することができる。しかし、他の例示的な実施例では、サーバマネージャ１３０は、単一のサーバ要求を処理するために、複数のポリシー要求ハンドラを活動化することができる。例えば、いくつかのポリシー要求ハンドラ１４１のそれぞれを、サーバ要求１２２の特定部分を処理するために、サーバマネージャ１３０により生成することができる。
【００６３】
このように、クライアント１１４などのクライアントの組１０４のクライアントから発信されたデータを求める要求はすべて、サーバコントローラ１０８により受信され、かつサーバコントローラ１０８により、データサーバの組１１０に適切に分散させることができる。これらのデータ要求は、次いで、要求されたデータをクライアントに直接送るポリシー要求ハンドラにより処理することができる。ポリシー要求ハンドラ１４０などのポリシー要求ハンドラと、クライアント１１４などのクライアントとの間の通信は、この例示的な実施例では、一方向に限って行うことができる。さらにポリシー要求ハンドラは、この例示的な実施例では、サーバコントローラ１０８と直接通信することはできない。
【００６４】
データプロバイダの組１０６、サーバコントローラ１０８、データサーバの組１１０、およびクライアントの組１０４の間の通信は、任意の数の様々なタイプの通信リンクを用いて行うことができる。例えば、無線通信リンク、有線通信リンク、光通信リンク、および／または他のタイプの通信リンクを使用することができる。
【００６５】
したがって、例示的な実施形態は、クライアントからのポリシー要求を処理するためのサーバシステムおよび方法を提供する。例えば、図１のサーバシステム１０２におけるデータサーバの組１１０は、実質的に実時間で、複数のデータプロバイダからデータストリームを受信し、かつ記録することができる。ポリシー要求ハンドラを用いて、データサーバの組１１０はデータを処理し、このデータを非常に高いデータレートで、図１のクライアントの組１０４などのクライアントに渡すことができる。
【００６６】
さらにデータサーバの組１１０は、データを、様々なデータレートで様々なクライアントに同時に渡すことができる。データをクライアントの組１０４に渡すことのできる可能性のあるデータレートは、使用されるハードウェアにより制限されるに過ぎない。図１で示されたサーバシステム１０２を用いると、データ待ち時間は、選択された許容差内へと大幅に低減することができる。
【００６７】
さらにサーバシステム１０２は、任意の数のデータプロバイダ、および／または任意の数のクライアントの必要性に適合するように分散することができ、かつスケーラブルでありうる。例えば、データのスループットを高めるために、新しいデータサーバを、データサーバの組１１０に追加することができる。サーバコントローラ１０８により行われる管理機能により、サーバシステム１０２のアーキテクチャ全体に対して何らかの望ましくない変更を行うことなく、新しいデータサーバをシームレスにデータサーバの組１１０に加えることが可能になる。
【００６８】
図２を次に参照すると、図１からのポリシー要求１１２の図が、例示的な実施形態によりブロック図の形で示されている。この例示的な実施例では、図１のクライアント１１４により生成されたポリシー要求１１２が実施されうる１つの方法の例が示されている。
【００６９】
ポリシー要求１１２は、例えば、限定することなく、クライアント識別子２００およびポリシー１１８を含むことができる。クライアント識別子２００は、例えば、サーバシステム１０２にデータをアクセスすることを要求する特定のクライアントを識別するためのフィールドとすることができる。この例示的な実施例では、クライアント１１４に対する何らかのタイプの識別子を、クライアント識別子２００に入力することができる。
【００７０】
ポリシー１１８は、図１のサーバシステム１０２が、データをどのようにしてクライアント１１４に渡すかを規定する詳細のすべてを含む。図示のように、ポリシー１１８は、出力モード２０２、いくつかの属性２０４、ポリシー特有の属性細部２０５、いくつかのパラメータ２０６、およびいくつかのパラメータブロック２０８を含むことができ、そのそれぞれは、クライアント１１４および／またはクライアント１１４のユーザにより規定することができる。
【００７１】
出力モード２０２は、クライアント１１４に送られるデータの各フレームにおいて、クライアント１１４に出力されるデータのモードを識別するためのフィールドとすることができる。出力モード２０２に入力される値は、これだけに限らないが、デフォルトモード２１０、最小および最大のデータモード２１１、線形補間モード２１２、２次補間モード２１４、最後の値モード２１６、および加重平均３次補間モード２１８を含むことのできるいくつかの様々なモードの１つを識別することができる。これらのモードは、いくつかの属性２０４に関連して以下で述べることができる。
【００７２】
本明細書で使用される場合、いくつかの属性２０４の１つなど、「属性」は、どのようにデータが要求されているか、どのようにデータをフォーマットすべきか、どのようにデータを送達すべきか、かつ／またはクライアント１１４が、データを受け取ることを望む方法の他の態様を規定することができる。いくつかの属性２０４は、データをクライアント１１４に送達すべき方法を識別するのに使用されるいくつかのフラグを含むことができる。例示的な一実施例では、いくつかの属性２０４は、データモードフラグ２２０、タイムスタンプモードフラグ２２２、プロトコルモードフラグ２２３、フレームモードフラグ２２４、トリガモードフラグ２２６、およびギャップ検出モードフラグ２２８を含むことができる。これらのフラグのそれぞれは、ポリシー１１８の何らかの態様を規定し、かつポリシー１１８に含まれている他の情報を規定する値に設定することができる。
【００７３】
データモードフラグ２２０に入力される値は、クライアント１１４が、ライブデータに関心があるか、それとも履歴データに関心があるかを識別する。データモードフラグ２２０がライブデータに設定されたとき、ポリシー１１８は、ライブポリシーであると見なされ、またポリシー要求１１２は、ライブポリシー要求であると見なされる。データモードフラグ２２０が履歴データに設定されたとき、ポリシー１１８は、履歴ポリシーであると見なされ、またポリシー要求１１２は、履歴ポリシー要求であると見なされる。
【００７４】
タイムスタンプモードフラグ２２２に入力される値は、クライアント１１４が、データ点が取得された時間を示すデータ点に対する時間値に関心があるか、それとも補正された時間値に関心があるかを識別する。例えば、いくつかの場合では、データ点１３６に対する時間値１３８は、データ点１３６に対するデータ値１３７が取得された実際の時間よりも遅れる可能性がある。この遅延は、アナログフィルタを通してデータ値１３７を処理することによる、または何らかの他のタイプの処理遅延による可能性がある。サーバシステム１０２内の、図１のポリシー要求ハンドラ１４０などのポリシー要求ハンドラは、データ点１３６および／またはデータ点１３６のデータ値１３７をクライアント１１４に送る前に、データ点１３６に対する時間値１３８を補正することができる。
【００７５】
この例示的な実施例では、プロトコルモードフラグ２２３に対して入力される値は、データをクライアント１１４に送るときに使用されるネットワークプロトコルを識別することができる。例示的な一実施例として、プロトコルモードフラグ２２３に入力される値は、ＵＤＰ（ユーザデータグラムプロトコル；ｕｓｅｒ  ｄａｔａｇｒａｍ  ｐｒｏｔｏｃｏｌ）またはＴＣＰ（伝送制御プロトコル；ｔｒａｎｓｍｉｓｓｉｏｎ  ｃｏｎｔｒｏｌ  ｐｒｏｔｏｃｏｌ）を使用すべきであることを指定することができる。
【００７６】
フレームモードフラグ２２４に入力される値は、フレーム化を使用可能であるか、それとも使用不可であるかを識別することができる。例えば、フレーム化を使用可能である場合、特定の時間付近で取得された、または特定の時間範囲内に取得された、選択されたパラメータの組に対するすべてのデータ点をフレーム化し、単一の時間値に関連付けることができる。この方法では、データを、同期させてクライアント１１４に出力することができる。しかし、フレーム化が使用不可である場合、各データ点は、データ点に対する元の時間値と共に、個々にクライアント１１４に送ることができる。このように、フレーム化が使用不可である場合、データは、クライアント１１４に非同期で出力されうる。
【００７７】
さらにトリガモードフラグ２２６に入力される値は、クライアント１１４に出力されるデータをどのようにトリガすべきかを識別する。例えば、データは、何らかの指定された時間間隔で、またはデータストリーム内に出現する何らかの指定されたデータ値に基づいてトリガすることができる。言い換えると、データは時間でトリガされる、またはデータでトリガされうる。
【００７８】
ギャップ検出モードフラグ２２８に入力される値は、ギャップ検出モードが使用可能であるか、それとも使用不可であるかを判定することができる。ギャップ検出モードが使用可能である場合、何らかの選択された期間にわたり、特定のパラメータに対するデータ値が何もクライアント１１４に送られていない場合、陳腐化（ｓｔａｌｅ）警告をクライアント１１４に送ることができる。
【００７９】
この例示的な実施例では、ポリシー１１８に含まれるポリシー特有の属性細部２０５は、いくつかの属性２０４における様々な属性に関連する細部を提供することができる。例えば、ポリシー特有の属性細部２０５は、データモード細部２３０、タイムスタンプモード細部２３２、フレームモード細部２３４、トリガモード細部２３６、およびギャップ検出モード細部２３８を含むことができ、上記のものは、データモードフラグ２２０、タイムスタンプモードフラグ２２２、フレームモードフラグ２２４、トリガモードフラグ２２６、およびギャップ検出モードフラグ２２８にそれぞれ入力されるデータに基づく細部を含むことができる。
【００８０】
例えば、データモードフラグ２２０がライブデータ用に設定されたとき、データモード細部２３０は、同期時間２４０を含むことができる。同期時間２４０は、ライブポリシーを同期させる時間とすることができる。さらにデータモードフラグ２２０がライブデータ用に設定されたとき、データモード細部２３０は、データセット２４１、開始時間２４２、停止時間２４４、および送達レート２４６を含むことができる。データセット２４１は、履歴データが要求される特定のデータセットを指定するためのフィールドとすることができる。開始時間２４２および停止時間２４４は、時間範囲を指定するためのフィールドとすることができ、この時間範囲内の時間値を有する記憶されたデータ点が要求される。送達レート２４６は、データをクライアント１１４に送るべきレートを指定するためのフィールドとすることができる。
【００８１】
タイムスタンプモードフラグ２２２が、補正した時間値をクライアント１１４に送るように設定されたとき、タイムスタンプモード細部２３２は、遅延時間２４８を含むことができる。遅延時間２４８は、データフレームまたはデータ点をクライアント１１４に出力する前に、データを待つ最大の遅延時間を識別するためのフィールドとすることができる。遅延時間２４８は、データ点に対する時間値における知られた処理遅延を補正できるようにする時間量の限度を識別することができる。
【００８２】
フレームモードフラグ２２４が、フレーム化が使用不可であるように設定されたとき、フレームモード細部２３４は、細部を何も含まないはずである。しかし、フレームモードフラグ２２４が、フレーム化が使用可能であるように設定されたとき、フレームモード細部２３４は、タイムチック間隔２５０および陳腐化データフラグ２５２を含むことができる。
【００８３】
タイムチック間隔２５０は、通常、ナノ秒である最小間隔を指定するためのフィールドであり、その間隔で、タイムチックがデータ点群としてクライアント１１４に送られる。例示的な一実施例では、タイムチックは、空のデータ値および空の時間値を備えるデータ点群とすることができる。他の場合では、タイムチックは、空のデータ値と、タイムチックが形成された時間を表す時間値とを備えるデータ点群とすることができる。陳腐化データフラグ２５２は、サーバシステム１０２が、トリガイベントの時点で古くなったパラメータに対するすべてのデータ値を転送すべきか、それとも古くないデータ値だけを転送すべきかを指定するためのフィールドとすることができる。
【００８４】
トリガモードフラグ２２６が、データが時間でトリガされるように設定されたとき、トリガモード細部２３６は、トリガ間隔２５４を含むことができる。トリガ間隔２５４は、サーバシステム１０２が、クライアント１１４に出力されるようにデータフレームまたはデータ点をトリガする、通常、ナノ秒である時間間隔を指定するためのフィールドとすることができる。この時間間隔は、トリガ間隔と呼ぶことができ、またこの「トリガ」が行われる時間を「トリガ時間」と呼ぶことができる。
【００８５】
トリガモードフラグ２２６が、データがデータでトリガされるように設定されるとき、トリガモード細部２３６は、トリガパラメータタグ２５６、トリガアクション２５８、トリガ入力マスク２６０、トリガパターン２６２、およびトリガ出力マスク２６４を含むことができる。トリガパラメータタグ２５６は、トリガにより、データフレームまたはデータ点をクライアント１１４に送るようになるパラメータを指定するためのフィールドとすることができる。このパラメータはトリガパラメータと呼ぶことができる。例えば、０、ヌルなどのデフォルト値、または何らかの他のデフォルト値をトリガパラメータタグ２５６に入力して、任意のパラメータおよびすべてのパラメータに対するデータフレームまたはデータ点が、トリガ時間に出力できることを示すことができる。
【００８６】
トリガアクション２５８は、データフレームまたはデータ点をクライアント１１４に出力させるトリガまたはトリガアクションを識別するフィールドとすることができる。トリガは、例えば、限定することなく、受信されたデータ、変化するデータ、変化しないデータ、パターンにマッチするデータ、およびパターンにマッチしないデータのうちの１つから選択することができる。受信されたデータは、ポリシー要求ハンドラで受信されたトリガパラメータタグ２５６により識別されたパラメータに対するデータ値を含むことができる。変化するデータは、トリガパラメータに対するデータ値の少なくとも１ビットを含むことができる。
【００８７】
例えば、トリガパラメータに対して同じデータ値を有するすべてのデータ点を、ポリシー要求ハンドラで受信することができる。トリガパラメータに関するデータ値が、少なくとも１ビット変化した場合、トリガが行われて、様々なデータ点を有するデータフレームまたはデータ点を、クライアント１１４に送ることができる。
【００８８】
変化しないデータは、何らかの選択された期間にわたって変化しないトリガパラメータに対するデータ値を含むことができる。この方法では、トリガは、トリガパラメータに対するデータが変化しないものとすることができる。
【００８９】
トリガ入力マスク２６０およびトリガパターン２６２に対する入力は、トリガパターンにマッチするデータのトリガが生じたのか、それともトリガパターンにマッチしないデータのトリガが生じたのかを評価するのに使用することができる。トリガ入力マスク２６０は、トリガパターンが適用されるトリガパラメータに対するデータ値内のビットを規定するためのフィールドとすることができる。これらのビットは、入力マスクと呼ぶことができる。トリガパターン２６２は、入力マスク内のビットに適用されるトリガパターンを識別するフィールドとすることができる。
【００９０】
したがって、トリガアクション２５８が、あるパターンにマッチするデータに設定されたとき、データフレームまたはデータ点は、入力マスクがデータ値に適用された後、トリガパラメータに対するデータ値がトリガパターンにマッチした場合にクライアント１１４に出力される。反対に、トリガアクション２５８が、パターンにマッチしないデータに設定されたとき、データフレームまたはデータ点は、入力マスクがデータ値に適用された後、トリガパターンに対するデータ値がトリガパターンにマッチしていない場合にクライアント１１４に出力される。
【００９１】
トリガ出力マスク２６４は、トリガが生じた場合、クライアント１１４に出力されるトリガパラメータに対するデータ値内のビットを識別するフィールドとすることができる。これらのビットは出力マスクと呼ぶことができる。トリガが生じた後、出力マスクは、トリガを生じさせたデータ値に適用することができ、また出力マスクに含まれるビットは、クライアント１１４へと出力されうる。
【００９２】
この例示的な実施例では、ギャップ検出モードフラグ２２８が、ギャップ検出モードを使用可能であるように設定されたとき、ギャップ検出モード細部２３８は、ギャップファクタ２６６を含むことができる。ギャップファクタ２６６は、サーバシステム１０２がデータ中の「ギャップ」であると見なす古いデータの量を識別するフィールドとすることができる。言い換えると、ギャップファクタ２６６の入力は、パラメータに対するデータ値がポリシー要求ハンドラに何も届かない可能性のある期間を「ギャップ」であると見なすと定義する。この時間量をギャップファクタと呼ぶことができる。
【００９３】
ポリシー１１８におけるいくつかのパラメータ２０６は、データが要求されているパラメータの数を指定するためのフィールドとすることができる。いくつかのパラメータ２０６は、例えば、ゼロ以外の任意の正の整数値とすることができる。いくつかのパラメータブロック２０８のそれぞれは、対応するパラメータに対するデータを出力するための情報を提供する１つまたは複数フィールドのブロックとすることができる。
【００９４】
パラメータブロック２６８は、いくつかのパラメータブロック２０８の１つの例とすることができる。パラメータブロック２６８は、パラメータタグ２７０、出力データタイプ２７１、および出力データサイズ２７２を含むことができる。パラメータタグ２７０は、特定のパラメータを識別するためのフィールドとすることができる。出力データタイプ２７１は、特定のパラメータに対するデータをクライアント１１４に出力するのに使用されるデータフォーマットを識別するためのフィールドとすることができる。出力データサイズ２７２は、出力データタイプ２７１により指定できる各データタイプに対してサイズを識別するためのフィールドとすることができる。
【００９５】
出力モード２０２に対して入力された値が最小および最大のデータモード２１１を選択したとき、サーバシステム１０２は、いくつかのパラメータブロック２０８で識別された各パラメータに対するトリガ間隔内の最小および最大のデータ値を有するデータ点を選択する。これらのデータ点に対するデータ値および時間値が次いで使用されて、ポリシー特有の属性細部２０５およびいくつかのパラメータブロック２０８に基づき、クライアント１１４に送るべき出力データ１５６を形成することができる。
【００９６】
出力モード２０２に入力された値が線形補間モード２１２を選択したとき、トリガ時間の直前のデータ点、およびトリガ時間の直後のデータ点が、いくつかのパラメータブロック２０８で識別された各パラメータに対して選択されうる。トリガ時間に対するデータ値は、これらの２つのデータ点に対するデータ値および時間値を用いて補間することができる。このデータ値およびトリガ時間は、ポリシー特有の属性細部２０５およびいくつかのパラメータブロック２０８に基づき、クライアント１１４に送るべき出力データ１５６を形成するために使用することができる。
【００９７】
さらに出力モード２０２に入力された値が２次補間モード２１４を選択したとき、トリガ時間の直前の２つのデータ点、およびトリガ時間の直後の２つのデータ点が、いくつかのパラメータブロック２０８で識別された各パラメータに対して選択される。このトリガ時間に対するデータ値は、これらの４つのデータ点に対するデータ値および時間値を用いて補間することができる。このデータ値およびトリガ時間は、ポリシー特有の属性細部２０５およびいくつかのパラメータブロック２０８に基づき、クライアント１１４に送るべき出力データ１５６を形成するために使用されうる。
【００９８】
出力モード２０２に入力された値が最後の値モード２１６を選択したとき、トリガ時間における最近のデータ点が、いくつかのパラメータブロック２０８で識別された各パラメータに対して選択される。このデータ点は、トリガ時間に等しい時間値を有するデータ点とすることができる。このデータ点に対するデータ値は、ポリシー特有の属性細部２０５およびいくつかのパラメータブロック２０８に基づき、出力データ１５６を形成するために使用される。
【００９９】
出力モード２０２に入力された値が、加重平均３次補間モード２１８を選択したとき、トリガ時間の直前の３つのデータ点、およびトリガ時間の直後の３つのデータ点が、いくつかのパラメータブロック２０８で識別された各パラメータに対して選択される。このトリガ時間における各パラメータに対するデータ値は、これらの６つのデータ点に対するデータ値および時間値を用いて補間することができる。このデータ値およびトリガ時間は、ポリシー特有の属性細部２０５およびいくつかのパラメータブロック２０８に基づき、クライアント１１４に送るべき出力データ１５６を形成するために使用することができる。
【０１００】
いくつかの場合では、出力モード２０２に入力された値は、デフォルトモード２１０を選択することができる。例示的な一実施例では、デフォルトモード２１０は、最後の値モード２１６とすることができる。当然であるが他の例では、何らかの他のモードタイプを、デフォルトモード２１０に選択することができる。さらに他の例示的な実施例では、前述のものに加えて他のモードを、出力モード２０２に入力された値により選択することができる。
【０１０１】
このように、クライアント１１４は、ポリシー１１８を用いて、データをクライアント１１４に出力すべき方法を非常に詳細に規定することができる。特定のサーバにより処理されうるポリシー１１８の部分は、図１のサーバポリシー１２８など、サーバポリシーと呼ぶことができる。さらに図１のポリシー要求ハンドラ１４０など、ポリシー要求ハンドラにより処理されるサーバポリシーの部分は、図１のハンドラポリシー１４２などのハンドラポリシーと呼ぶことができる。
【０１０２】
いくつかの場合では、サーバポリシー１２８は、ポリシー１１８のすべてを含むことができる。さらにいくつかの場合では、ハンドラポリシー１４２は、ポリシー１１８のすべてを含むことができる。クライアント１１４により生成されたポリシー要求１１２を処理するための、サーバシステム１０２により生成された各ポリシー要求ハンドラは、データがクライアント１１４に出力される方法を制御するためにポリシー１１８内に含まれる細部を使用することができる。
【０１０３】
いくつかの属性２０４で述べたものなどの属性の任意の組合せをポリシーに含むことができる。さらにいくつかの属性２０４の任意の組合せおよび／または置換えをポリシーに含めることができる。さらにポリシー特有の属性細部２０５で述べられた細部の任意の組合せおよび／または置換えをポリシーに含めることができる。
【０１０４】
図１の情報管理環境１００の図、および図１〜図２のポリシー要求１１２の図は、例示的な実施形態を実施できる方法に対して、物理的またはアーキテクチャ上の限定を示唆することを意味するものではない。例示されたものに加えて、または代えて他の構成要素を使用することもできる。いくつかの構成要素は任意選択とすることができる。さらにいくつかの機能的な構成要素を示すためにブロックが提示されている。これらのブロックの１つまたは複数のものは、例示的な実施形態で実施されたとき、様々なブロックに組み合わされ、分割され、または組み合わせて分割されうる。
【０１０５】
図３を次に参照すると、情報管理環境の図が例示的な実施形態により示されている。この例示的な実施例では、情報管理環境３００は、図１の情報管理環境１００に対する１つの実施形態の例である。
【０１０６】
図示のように、情報管理環境３００は、サーバシステム３０２、データプロバイダの組３０４、およびクライアントの組３０６を含む。サーバシステム３０２、データプロバイダの組３０４、およびクライアントの組３０６は、それぞれ、図１のサーバシステム１０２、データプロバイダの組１０６、およびクライアントの組１０４に対する実施例である。サーバシステム３０２は、データプロバイダの組３０４から取得したデータをホストし、かつ要求があると、このデータをクライアントの組３０６に供給するように構成される。
【０１０７】
この例示的な実施例では、サーバシステム３０２は、サーバコントローラ３０８およびデータサーバの組３１０を含む。サーバコントローラ３０８およびデータサーバの組３１０は、それぞれ、図１のサーバコントローラ１０８およびデータサーバの組１１０に対する実施例である。
【０１０８】
サーバコントローラ３０８は、データプロバイダの組３０４、クライアントの組３０６、およびデータサーバの組３１０と通信することができる。特にサーバコントローラ３０８は、データプロバイダの組３０４における特定のデータプロバイダが、データサーバの組３１０の１つまたは複数のもののどれに対してデータを送るべきかを判定することができる。さらにサーバコントローラ３０８は、特定のデータプロバイダが、データサーバの組３１０のうちの複数のものにデータを送るべきかどうかを判定することができる。
【０１０９】
図示のように、データサーバの組３１０は、第１のデータサーバ３１２、第２のデータサーバ３１４、第３のデータサーバ３１６、および第４のデータサーバ３１８を含む。データプロバイダの組３０４は、第１のデータプロバイダ３２０、第２のデータプロバイダ３２２、および第３のデータプロバイダ３２４を含む。データプロバイダの組３０４は、データプロバイダの組３０４からデータサーバの組３１０に送られるデータ点群の時間値が、相互に関係付けられるように、同じ時間ソースに同期させることができる。
【０１１０】
さらにクライアントの組３０６は、第１のクライアント３２６、第２のクライアント３２８、第３のクライアント３３０、および第４のクライアント３３２を含む。サーバコントローラ３０８は、これらの様々なデータサーバ、データプロバイダ、およびクライアントのそれぞれと通信することができる。
【０１１１】
この例示的な実施例では、サーバコントローラ３０８は、第１のデータプロバイダ３２０が、第１のデータサーバ３１２にデータを送るべきであると決定している。サーバコントローラ３０８は、第２のデータプロバイダ３２２が、第２のデータサーバ３１４にデータを送るべきであると決定している。さらにサーバコントローラ３０８は、第３のデータプロバイダ３２４が、データの別の部分を、第２のデータサーバ３１４、第３のデータサーバ３１６、および第４のデータサーバ３１８のそれぞれに送るべきであると決定している。この方法では、第２のデータサーバ３１４は、２つの異なるデータプロバイダからデータを受け取ることができる。
【０１１２】
図４を次に参照すると、図３からの第１のデータサーバ３１２およびサーバコントローラ３０８の図が、例示的な実施形態により示されている。この例で示されるように、サーバコントローラ３０８は、コントローラマネージャ４０２を含むことができる。コントローラマネージャ４０２は、構成情報４０４にアクセスし、追加し、かつ取り出すように構成することができる。
【０１１３】
例示的な一実施例では、構成情報４０４は、構成データベース４０５に記憶することができる。しかし、他の例示的な実施例では、構成情報４０４は、いくつかの他のタイプのデータ構造に、かつ／またはサーバコントローラ３０８の外部のローカルメモリに記憶することができる。
【０１１４】
構成情報４０４は、図３からのデータプロバイダの組３０４、クライアントの組３０６、およびデータサーバの組３１０に関する情報を含むことができる。この情報は、メタデータと呼ぶことができる。
【０１１５】
例えば、構成情報４０４は、クライアントの組３０６で作られたポリシー要求に関する情報を含むことができる。さらに構成情報４０４は、データサーバの組３１０のそれぞれがデータを受信するように指定されたデータプロバイダの組３０４における１つまたは複数のデータプロバイダに関する情報を含むことができる。構成情報４０４はまた、データプロバイダの組３０４のそれぞれがデータを送るべきデータサーバの組３１０における１つまたは複数のデータサーバに関する情報を含むことができる。
【０１１６】
図示のように、コントローラマネージャ４０２は、第１のクライアント３２６と通信するように構成することができる。この通信は、コントローラマネージャ４０２と第１のクライアント３２６との間の双方向通信とすることができる。いくつかの場合では、コントローラマネージャ４０２と第１のクライアント３２６との間で、任意の所与の時間点において１つの通信接続だけを可能にすることができる。
【０１１７】
例示的な一実施例では、第１のクライアント３２６が、ポリシー要求４０６をコントローラマネージャ４０２に送る。ポリシー要求４０６は、図１のポリシー要求１１２に対する１つの実施例とすることができる。さらにポリシー要求４０６は、図２で述べたポリシー１１８と同様に実施されたポリシーを含むことができる。コントローラマネージャ４０２は、ポリシー要求４０６に基づき、いくつかのサーバ要求を生成するように構成することができる。
【０１１８】
例えば、コントローラマネージャ４０２は、ポリシー要求４０６により要求されたデータの少なくとも一部が、第１のデータサーバ３１２でホストされていると判定するために、構成情報４０４を使用することができる。コントローラマネージャ４０２は、サーバ要求４０８を生成し、かつサーバ要求４０８を第１のデータサーバ３１２に送る。サーバ要求４０８は、第１のデータサーバ３１２により処理されるポリシー要求４０６におけるポリシーの一部を含むサーバポリシーを含むことができる。
【０１１９】
さらにコントローラマネージャ４０２は、第１のデータサーバ３１２が、要求されたデータの少なくとも一部を第１のクライアント３２６に送ることを第１のクライアント３２６に知らせるメッセージを第１のクライアント３２６に送る。このように、第１のクライアント３２６は、第１のデータサーバ３１２からのデータを受信する準備をすることができる。例えば、第１のクライアント３２６は、第１のデータサーバ３１２内における通信リンクの確立を開始することができる。
【０１２０】
図示のように、第１のデータサーバ３１２は、サーバマネージャ４１０、受信器４１２、および記憶システム４１４を含む。サーバマネージャ４１０、受信器４１２、および記憶システム４１４は、それぞれ、図１のサーバマネージャ１３０、受信器１３２、および記憶システム１３４に対する実施例とすることができる。
【０１２１】
この例示的な実施例では、受信器４１２は、第１のデータプロバイダ３２０からデータ点群４１６を受け取る。データ点群４１６は、１つまたは複数のデータストリームで受け取ることができる。例えば、データ点群４１６は、２つのデータストリームで受け取ることができるが、第１のデータストリームは、第１のパラメータに対するデータ点群からなり、また第２のデータストリームは、第２のパラメータに対するデータ点群からなる。
【０１２２】
受信器４１２がデータ点群４１６を受け取ると、受信器４１２は、データ点群４１６を記憶システム４１４に送る。記憶システム４１４内に記憶された後、データ点群４１６は、記憶されたデータ点群４１８と呼ぶことができる。
【０１２３】
サーバマネージャ４１０は、受信器４１２が、第１のデータプロバイダ３２０からデータ点群４１６を受け取ることをいつ開始し、いつ停止するかを制御する。さらにいくつかの場合では、サーバマネージャ４１０は、データ点群４１６が、記憶システム４１４内に記憶される方法を制御することができる。
【０１２４】
この例示的な実施例では、サーバ要求４０８は、サーバマネージャ４１０により受け取ることができる。サーバ要求４０８は、選択されたパラメータに対するデータを求める要求とすることができる。サーバマネージャ４１０は、サーバ要求４０８が、選択されたパラメータに対するライブ要求であるか、それとも履歴要求であるかを判定することができる。
【０１２５】
本明細書で使用される場合、「ライブ要求」とは、実質的に実時間の、またはほぼ実時間のデータを求める要求とすることができる。より具体的には、ライブ要求は、何らかの意図しない、または予期しない処理遅延を生ずることなく、データが取得されたときにデータを受け取る要求とすることができる。この方法では、サーバ要求４０８がライブ要求であるとき、サーバ要求４０８を処理することは、第１のデータサーバ３１２が、何らかの意図しない、または予期しない処理遅延を生ずることなく、第１のデータプロバイダ３２０からデータ点群４１６を受け取ったとき、データ点群を第１のクライアント３２６に送ることを含むことができる。
【０１２６】
いくつかの場合では、ライブ要求は、遅延したライブ要求の形を取ることがある。遅延したライブ要求とは、何らかのタイプの遅延がデータ点の時間値に対して加えられたデータ点を受け取るための要求とすることができる。この遅延は、クライアントにより選択することができる。いくつかの場合では、遅延は、特定のパラメータに対するデータ値の取得に関連するフィルタ遅延に対して補正するために適用することができる。
【０１２７】
本明細書で使用される場合、「履歴要求」は、何らかの選択された期間内に取得されたデータを求める要求とすることができる。例えば、履歴要求は、過去の選択された時間内の選択されたパラメータに対して取得されたデータ点群を求める要求とすることができる。
【０１２８】
さらにライブ要求および履歴要求は、あらゆるサンプル要求、またはフレーム化要求の形を取ることができる。サーバ要求４０８が、あらゆるサンプルのライブ要求の形を取るとき、選択されたパラメータのそれぞれに対する受信器４１２で受信されたあらゆるデータ点を、第１のクライアント３２６に送ることができる。ポリシー要求４０６が、あらゆるサンプルの履歴要求の形を取る場合、選択された期間内に取得された選択されたパラメータに対する記憶システム４１４に記憶されたあらゆるデータ点を、第１のクライアント３２６に送ることができる。あらゆるサンプル要求のこれらのタイプを用いると、第１のクライアント３２６に送られる各データ点は、そのデータ点に関連付けられた元の時間値と共に送ることができる。
【０１２９】
フレーム化要求を用いると、図１のポリシーベースのデータフレーム１５０に類似した複数のポリシーベースのデータフレームが、第１のクライアント３２６に送られる。各ポリシーベースのデータフレーム（１５０）は、イベントが生ずるのに応じて形成することができる。イベントは、例えば、時間間隔の経過とすることができる。形成される各ポリシーベースのデータフレーム（１５０）は、対応するイベントが生じた時間における選択されたパラメータのそれぞれに対する最後の知られたデータから構成することができる。
【０１３０】
サーバ要求４０８を受け取ったことに応じて、サーバマネージャ４１０は、サーバ要求４０８を処理する。この例示的な実施例では、サーバ要求４０８は、ライブ要求または履歴要求の形を取るが、両方の形を取ることはない。この方法では、サーバ要求４０８を処理するためには、ポリシー要求ハンドラを１つだけ必要になりうる。しかし、他の例示的な実施例では、サーバ要求４０８は、ライブ要求と履歴要求を共に含むことができる。これらの例では、サーバマネージャ４１０は、サーバ要求４０８を処理するために、少なくとも２つのポリシー要求ハンドラを活動化する必要がありうる。
【０１３１】
図示のように、サーバマネージャ４１０は、サーバ要求４０８を処理するために、ポリシー要求ハンドラ４２０を活動化する。ポリシー要求ハンドラ４２０は、図１のポリシー要求ハンドラ１４０に対する１つの実施例とすることができる。
【０１３２】
サーバマネージャ４１０は、ポリシー要求ハンドラ４２０に対する入力データ点群４２１のソースになるのは、受信器４１２であるか、それとも記憶システム４１４であるかを判定する。サーバ要求４０８がライブ要求であるとき、サーバマネージャ４１０は、入力データ点群４２１のソースとして受信器４１２を選択する。サーバ要求４０８が履歴要求であるとき、サーバマネージャ４１０は、入力データ点群４２１に対するソースとして、記憶システム４１４を選択する。
【０１３３】
受信器４１２が、入力データ点群４２１に対するソースとして選択されたとき、サーバマネージャ４１０は、受信器４１２で受信したデータ点群４１６のどの部分を、入力データ点群４２１としてポリシー要求ハンドラ４２０に送るかを決定する。サーバマネージャ４１０から受け取ったコマンドに基づいて、受信器４１２は、第１のデータプロバイダ３２０から受け取ったデータ点群４１６のいくつか、またはすべてをポリシー要求ハンドラ４２０に送ることができる。
【０１３４】
例えば、いくつかの場合では、受信器４１２は、第１のデータストリームと第２のデータストリームの両方で受信したデータ点群のすべてをポリシー要求ハンドラ４２０に送ることができる。別の例では、受信器４１２は、第１のデータストリームで受信したデータ点群をポリシー要求ハンドラ４２０に送ることができるだけである。
【０１３５】
この例示的な実施例では、受信器４１２で受け取ったデータ点群４１６のそれぞれは、データ値および時間値を含むことができる。データ値は、特定のパラメータに対する値とすることができる。例えば、データ値は、特定のパラメータに対する測定量とすることができる。パラメータが高度である場合、データ値は１０、０００フィートとすることができる。時間値は、データ値がデジタル形式で取得された時間とすることができる。
【０１３６】
いくつかの場合では、データ点群はタイムチックの形を取ることができる。タイムチックは、何らかの選択された時間間隔に基づいて周期的に、第１のデータプロバイダ３２０から受信器４１２に送ることができる。例えば、タイムチックは、約１ミリ秒ごとに受信器４１２に送ることができる。タイムチックは、第１のデータプロバイダ３２０から受信器４１２に送られるデータストリームを構成することができる。
【０１３７】
例示的な一実施例では、タイムチックは、空のデータ値および空の時間値を含むデータ点とすることができる。他の場合では、タイムチックは、空のデータ値と、タイムチックが形成された時間を表す時間値とを含むデータ点とすることができる。この時間は、データプロバイダの組３０４を同期させる同じ時間ソースに対するものとすることができる。これらの例示的な実施例では、第１のデータサーバ３１２などのデータサーバを、１つのデータプロバイダからタイムチックを受け取るだけであるように構成することができる。
【０１３８】
受信器４１２は、データ点群４１６を受け取ると、タイムチックを調べることができる。受信されたデータ点が実際にタイムチックである場合、タイムチックは、受信器４１２からのデータ点群４１６を受け取っているいずれかのアクティブなポリシー要求ハンドラに直ちに送られる。タイムチックは、データ点が、特定の時間間隔内で取得されたかどうかを判定するために、ポリシー要求ハンドラにより使用することができる。タイムチックは、時間パラメータに対するデータ点であると見なすことができる。
【０１３９】
データ点がタイムチックではなく、真のデータ点である場合、受信器４１２は、そのデータ点が、アクティブなポリシー要求ハンドラが要求しているデータに対するパラメータに対するものであるかどうかを判定する。データ点が、アクティブなポリシー要求ハンドラが要求しているデータに対するパラメータのものである場合、受信器４１２は、データ点をポリシー要求ハンドラに送る。
【０１４０】
記憶システム４１４が、入力データ点群４２１に対するソースとして選択されたとき、ポリシー要求ハンドラ４２０は、記憶システム４１４に記憶されている記憶されたデータ点群４１８のいくつか、またはすべてを取り出すことができる。例えば、ポリシー要求ハンドラ４２０は、選択された期間内に生成された第１のパラメータと第２のパラメータの両方に対するすべてのデータ点を含む記憶されたデータ点群４１８の一部を取り出すことができる。
【０１４１】
入力データ点群４２１を受け取ったことに応じて、ポリシー要求ハンドラ４２０は、入力データ点群４２１を処理し、かつ出力データ４２２を形成して第１のクライアント３２６に送る。出力データ４２２は、図１の出力データ１５６と同様に形成することができる。
【０１４２】
入力データ点群４２１は、ポリシー要求ハンドラ４２０において複数のデータストリームで非同期に受け取ることができる。各データストリームは、異なるパラメータに対するデータ点を含むことができる。例えば、１つのデータストリームは、例えば、時間パラメータに対するタイムチックを含むことができる。第２のデータストリームは、特定のパラメータに対するデータ点を含むことができる。第３のデータストリームは、別のパラメータに対するデータ点を含むことができる。ポリシー要求ハンドラ４２０で受け取られた各データストリームは、この例示的な実施例におけるそのデータストリーム内の時間に対して順序付けることができる。しかし、様々なデータストリームを、様々なデータレートで受け取ることができる。したがって、入力データ点群４２１は、非同期で受け取ることができる。
【０１４３】
ポリシー要求ハンドラ４２０は、各データストリームを処理し、様々なデータストリームからのデータ点群を、時間に対して順序付けられるデータ点群の単一のアレイへとマージすることができる。このアレイは、次いで、出力データ４２２を形成するために使用することができる。ポリシー要求ハンドラ４２０が入力データ点群４２１を用いて出力データ４２２を形成できるプロセスは、図８により以下でさらに詳細に述べるものとする。
【０１４４】
図５を次に参照すると、図４からの第１のデータサーバ３１２のより詳細な図が、例示的な実施形態によりされている。図示のように、サーバマネージャ４１０は、第１のサーバ要求５００および第２のサーバ要求５０２を同時に受け取ることができる。例示的な一実施例では、第１のサーバ要求５００および第２のサーバ要求５０２は、同じクライアントにより送られたポリシー要求から生成することができる。別の例示的な実施例では、第１のサーバ要求５００は、あるクライアントから生成されているが、第２のサーバ要求５０２は、別のクライアントから生成されうる。
【０１４５】
第１のサーバ要求５００は、ライブ要求とすることができる。第２のサーバ要求５０２は、履歴要求とすることができる。サーバマネージャ４１０は、第１のサーバ要求５００を処理するために第１のポリシー要求ハンドラ５０４を活動化し、また第２のサーバ要求５０２を処理するために第２のポリシー要求ハンドラ５０６を活動化する。サーバマネージャ４１０は、第１のポリシー要求ハンドラ５０４が、受信器４１２から入力データ点を受け取るように、受信器４１２および第１のポリシー要求ハンドラ５０４を制御する。さらにサーバマネージャ４１０は、第２のポリシー要求ハンドラ５０６が記憶システム４１４から入力データ点を受け取るように、第２のポリシー要求ハンドラ５０６を制御する。
【０１４６】
この例示的な実施例では、記憶システム４１４は、キャッシュ５０８、ディスクライタ５１０、ディスクストレージ５１２、およびキャッシュキュー５１４を含む。記憶システム４１４が受信器４１２から現在データを受け取ったとき、現在データはキャッシュ５０８に最初に記憶される。キャッシュ５０８が一杯になったとき、かつ／または何らかの指定された期間が経過した後、ディスクライタ５１０は、キャッシュ５０８の内容のディスクストレージ５１２への書込みを開始することができる。この方法では、受信器４１２から送られた現在データのすべてがキャッシュ５０８を通過するが、最終的にディスクストレージ５１２に記憶することができる。キャッシュ５０８に記憶されたデータと、ディスクストレージ５１２に記憶されたデータは共に、過去データと呼ぶことができる。
【０１４７】
ディスクストレージ５１２は、例えば、これだけに限らないが、ハードディスクドライブ、光ディスクドライブ、または何らかの他のタイプの記憶デバイスなど、任意の数のデータ記憶デバイスから構成することができる。実装形態に応じて、ディスクストレージ５１２は、データを永続的に、かつ／またはデータを一時的に記憶することができる。ディスクストレージ５１２に記憶されたデータは、必要に応じて、キャッシュ５０８に書き込んで戻すこともできる。
【０１４８】
活動化されたとき、第２のポリシー要求ハンドラ５０６は、第２のサーバ要求５０２により要求されたサーバデータが、キャッシュ５０８に位置しているかどうかを判定するために、キャッシュ５０８にアクセスすることができる。所望するデータが実際にキャッシュ５０８に位置している場合、第２のポリシー要求ハンドラ５０６は、このデータを入力データとして取り出すことができる。しかし、所望するデータが、キャッシュ５０８にない場合、第２のポリシー要求ハンドラ５０６は、そのように示すメッセージをサーバマネージャ４１０に送ることができる。サーバマネージャ４１０は、次いで、記憶システム４１４にコマンドを送り、ディスクストレージ５１２に記憶された過去のデータをキャッシュ５０８に書き戻すようにすることができる。このデータがキャッシュ５０８に書き戻された後、第２のポリシー要求ハンドラ５０６は、次いで、このデータを取り出すことができる。
【０１４９】
この例示的な実施例では、過去データをディスクストレージ５１２からキャッシュ５０８に読み出すことができるように、キャッシュキュー５１４を使用して、キャッシュ５０８のどの要素が空であるかを判定することができる。キャッシュ５０８が一杯であり、過去データをディスクストレージ５１２からキャッシュ５０８に書き込む必要があるとき、キャッシュキュー５１４を使用して、キャッシュ５０８のどの要素が最も古いデータを記憶しているかを判定することができ、したがって、この最も古いデータに上書きすることができる。さらにキャッシュキュー５１４は、キャッシュ５０８のどの要素が、受信器４１２から受け取った現在データを記憶するのに利用可能であるかを判定するのに使用することができる。
【０１５０】
図６を次に参照すると、構成情報の図が例示的な実施形態により示されている。図６では、図４からの構成情報４０４に対する１つの実施例が示されている。構成情報４０４は、様々なタイプのメタデータを含むことができる。いくつかの場合では、構成情報４０４内に含まれるメタデータを、コントローラマネージャ４０２を介して、図３のクライアントの組３０６の１つまたは複数のものから照会することができる。
【０１５１】
この例示的な実施例では、構成情報４０４は、プロバイダメタデータ６００、サーバメタデータ６０２、データセットメタデータ６０４、およびクライアントメタデータ６０６を含むことができる。この例示的な実施例では、プロバイダメタデータ６００は、データプロバイダ、データプロバイダにより提供されるデータ、およびデータプロバイダからデータが送られるデータサーバを追跡するために使用することができる。例えば、プロバイダメタデータ６００は、図３のデータプロバイダの組３０４を追跡するために、図４のコントローラマネージャ４０２により使用することができる。
【０１５２】
プロバイダメタデータ６００は、パラメータメタデータ６０８に関連付けることができる。パラメータメタデータ６０８は、図３のサーバシステム３０２でデータがホストされている様々なパラメータを識別することができる。プロバイダメタデータ６００およびパラメータメタデータ６０８は、データプロバイダの組３０４のそれぞれがデータを提供するための様々なタイプのパラメータを追跡するために使用することができる。
【０１５３】
サーバメタデータ６０２は、データサーバと、これらのデータサーバのそれぞれでホストされるデータとを追跡するために使用することができる。例えば、サーバメタデータ６０２は、図３のデータサーバの組３１０を追跡するために、図４のコントローラマネージャ４０２により使用することができる。サーバメタデータ６０２、プロバイダメタデータ６００、およびパラメータメタデータ６０８は、データプロバイダの組３０４における様々なデータプロバイダからデータサーバの組３１０のそれぞれでデータが受信される様々なタイプのパラメータを追跡するために使用することができる。
【０１５４】
この例示的な実施例では、データセットメタデータ６０４は、データセットを追跡するために使用することができる。本明細書で使用される場合、「データセット」とは、時間が単調に増加するデータの論理ブロックとすることができる。データセットは、任意の時間ブロックを含むことができる。例えば、データセットは、選択された期間にわたって取得されたすべてのデータを含むことができる。特有の一例として、データセットは、１日にわたる航空機の運行の試験運転中に、データプロバイダの組３０４により取得されたすべてのデータを表すことができる。
【０１５５】
各データセット内で、時間経過と共に収集されたデータ点群は、パラメータごとに単調に増加する時間順序になっていると考えることができる。言い換えると、特定のデータサーバが、特定のデータセットに対するデータ点群を受信すると、各パラメータに対するデータ点のすべてを、時間に対して順序付けることができ、最も早期に取得したデータ点群が、データサーバで最初に受信される。
【０１５６】
任意の所与の時間点では、多くても１つのデータセットだけがアクティブでありうる。アクティブなデータセットは、ライブデータが利用可能なデータセットであり、かつライブデータがデータサーバの組３１０で現在受信されているデータセットとすることができる。この例示的な実施例では、１つのアクティブなデータセットだけが、任意の所与の時間点で存在することができる。しかし、他の例示的な実施例では、複数のアクティブなデータセットが存在することもありうる。
【０１５７】
データセットメタデータ６０４は、データが、図３のデータサーバの組３１０により受信される各データセットを追跡することができる。データセットメタデータ６０４は、パラメータメタデータ６０８に関連付けることができ、共に、データが各データセットで収集されるパラメータを追跡するために使用することができる。さらにデータセットメタデータ６０４はまた、イベントメタデータ６１０、条件メタデータ６１２、およびポリシー要求メタデータ６１４に関連付けることもできる。イベントメタデータ６１０および条件メタデータ６１２は、データセットに関連付けることのできるさらなる注記（ｎｏｔｅ）を表すことができる。
【０１５８】
さらにデータセットメタデータ６０４およびポリシー要求メタデータ６１４は、データがポリシー要求により要求される特定のデータセットを追跡するために使用することができる。この例示的な実施例では、クライアントからの各ポリシー要求は、単一のデータセット内のデータを要求するのに限ることができる。
【０１５９】
クライアントメタデータ６０６は、クライアントを追跡するために使用することができる。例えば、クライアントメタデータ６０６は、図３のクライアントの組３０６を追跡するために使用することができる。クライアントメタデータ６０６は、ポリシー要求メタデータ６１４に関連付けることができる。クライアントメタデータ６０６およびポリシー要求メタデータ６１４は、各クライアントで作られたポリシー要求を追跡するために使用することができる。
【０１６０】
このように、構成情報４０４は、データプロバイダの組３０４、データサーバの組３１０、およびクライアントの組３０６を管理するために、図４のサーバコントローラ３０８におけるコントローラマネージャ４０２により使用することができる。当然であるが、他の例示的な実施例では、上記で述べたものに加えてかつ／または代えて、他のタイプのメタデータを構成データベース４０５内に含めることができる。
【０１６１】
図７を次に参照すると、図４からの、第１のデータサーバ３１２におけるサーバマネージャ４１０の図が例示的な実施形態により示されている。この例示的な実施例では、サーバマネージャ４１０は、メモリマネージャ７００、プロバイダトラッカ７０２、データセットトラッカ７０４、サーバ要求トラッカ７０６、およびハンドラマネージャ７０８を含むことができる。
【０１６２】
この例示的な実施例では、メモリマネージャ７００は、第１のデータサーバ３１２内の共用メモリを管理するように構成することができる。例えば、図４の記憶システム４１４は、サーバマネージャ４１０と共用することのできるメモリの一部を含むことができる。メモリマネージャ７００は、この共用メモリを管理する。さらにメモリマネージャ７００は、第１のデータサーバ３１２の任意のキャッシュメモリを管理するように構成することができる。例えば、メモリマネージャ７００は、図５のキャッシュ５０８を管理することができる。
【０１６３】
プロバイダトラッカ７０２は、第１のデータサーバ３１２がデータを受信している図３のデータプロバイダの組３０４における１つまたは複数のデータプロバイダを追跡することができる。データセットトラッカ７０４は、第１のデータサーバ３１２でデータが受信されるデータセットを追跡することができる。サーバ要求トラッカ７０６は、第１のデータサーバ３１２で受信されるサーバ要求を追跡することができる。さらにハンドラマネージャ７０８は、第１のデータサーバ３１２内で任意の所与の時間にアクティブであるポリシー要求ハンドラを追跡することができる。
【０１６４】
このように、サーバマネージャ４１０は、図４および図５で分かるように、受信器４１２と、記憶システム４１４と、第１のデータサーバ３１２内でアクティブである任意のポリシー要求ハンドラとを有効に管理することができる。さらにサーバマネージャ４１０は、図３のサーバコントローラ３０８から受け取った、サーバ要求を含むポリシー要求情報を追跡することができる。
【０１６５】
図８を次に参照すると、図４からのポリシー要求ハンドラ４２０の図が例示的な実施形態により示されている。この例示的な実施例では、ポリシー要求ハンドラ４２０は、データマージャ８００、ポリシーベースのデータマネージャ８０２、出力パケタイザ８０４、および送信器８０６を含む。
【０１６６】
データマージャ８００は、図４からの入力データ点群４２１を複数の非同期データストリーム８０１で受け取るように構成することができる。複数の非同期データストリーム８０１は、様々なレートを有するデータストリームを含むことができる。例えば、複数の非同期データストリーム８０１のデータストリームは、複数の非同期データストリーム８０１の別のデータストリームとは異なるデータレートで受け取ることができる。
【０１６７】
例示的な一実施例では、複数の非同期データストリーム８０１は、第１のパラメータに対する第１のデータ点群８０５を含む第１のデータストリーム８０３と、第２のパラメータに対する第２のデータ点群８０９を含む第２のデータストリーム８０７とを含む。さらに、複数の非同期データストリーム８０１はまた、タイムチックストリーム８１０を含むことができる。タイムチックストリーム８１０は、タイムチックのデータストリームとすることができる。
【０１６８】
第１のデータ点群８０５は、第１のデータストリーム８０３内で単調に増加する時間で順序付けることができる。第２のデータ点群８０９は、第２のデータストリーム８０７内で単調に増加する時間で順序付けることができる。
【０１６９】
データマージャ８００は、第１のデータ点群８０５を第２のデータ点群８０９とマージして、時間順序データ点群８１１を含む時間順序データアレイ８０８を形成するように構成することができる。時間順序データ点群８１１は、単調に増加する時間で順序付けることができる。特に時間順序データアレイ８０８は、第１のデータ点群８０５および第２のデータ点群８０９を、各データ点に対する時間値に基づいて、増加する時間順序で、時間順序データアレイ８０８に追加することにより形成することができる。
【０１７０】
データマージャ８００は、時間順序データアレイ８０８の時間順序データ点群８１１を、処理を行うためにポリシーベースのデータマネージャ８０２に送る。ポリシーベースのデータマネージャ８０２は、時間順序データ点群８１１を処理するために、ハンドラポリシー８１２を使用するように構成することができる。ハンドラポリシー８１２は、図４のサーバマネージャ４１０から受け取ることができる。ハンドラポリシー８１２は、ポリシー要求ハンドラ４２０により使用される図４からのサーバ要求４０８におけるサーバポリシーの一部を含むことができる。ハンドラポリシー８１２は、図２で示すポリシー１１８と同様に実施することができる。
【０１７１】
ポリシーベースのデータマネージャ８０２は、ハンドラポリシー８１２および時間順序データ点群８１１を使用して、ポリシーベースのデータ８１３を形成する。ポリシーベースのデータ８１３は、次いで、出力パケタイザ８０４に送ることができる。
【０１７２】
サーバ要求４０８があらゆるサンプル要求であることをハンドラポリシー８１２が示している場合、ポリシーベースのデータマネージャ８０２は、単に時間順序データ点群８１１における各データ点を出力パケタイザ８０４に送るだけである。出力パケタイザ８０４に送られた時間順序データ点群８１１の各時間順序データ点は、データ点が取得された時間を示す、そのデータ点に関連付けられた元の時間値を保持する。
【０１７３】
しかし、サーバ要求４０８がフレーム化要求であることをハンドラポリシー８１２が示している場合、ポリシーベースのデータマネージャ８０２は、時間順序データ点群８１１を使用して、ポリシーベースのデータフレームの組８１４を形成することができる。例えば、ハンドラポリシー８１２は、クライアントが、ほぼ１秒ごとにデータフレームを受信すること望んでいることを示すことができる。
【０１７４】
ほぼ１秒ごとの間隔の経過で、ポリシーベースのデータマネージャ８０２は、時間間隔の経過と実質的に一致する第１のパラメータに対するデータ点のデータ値、および時間間隔の経過と実質的に一致する第２のパラメータに対するデータ点のデータ値を識別することができる。これらのデータ点に対するデータ値は、次いで、これらのデータ値およびフレーム時間値を含むデータフレームを形成するために抽出され、かつ使用することができる。このデータフレームに割り当てられたフレーム時間値は、１秒間隔が経過した時間、または第１のパラメータに対して選択されたデータ点、もしくは第２のパラメータに対して選択されたデータ点に対する実際の時間とすることができる。いくつかの場合では、データ値のそれぞれは、すべてのデータフレームがフレーム時間値に関連付けられたことに加えて、データ値に対する実際の時間値に関連付けることができる。
【０１７５】
いくつかの場合では、データ点が、時間間隔が経過した時間と正確には一致しない場合、ポリシーベースのデータマネージャ８０２は、第１のパラメータおよび第２のパラメータに対するデータ値を識別するために補間技法を使用することができる。これらの技法は、例えば、限定することなく、時間間隔が経過した時間の前後のＮ個のデータ値に基づいて新しいデータ値を導出することを含むことができる。実装形態に応じて、使用される補間のタイプは、ハンドラポリシー８１２により指定することができる。
【０１７６】
他の例示的な実施例では、ポリシーベースのデータマネージャ８０２は、第１のパラメータに対する最後に知られたデータ値、およびその時間における第２のパラメータに対する最後に知られたデータ値を識別する。第１のパラメータに対する最後に知られたデータ値は、第１のデータストリーム８０３における他のデータ点と比較して、間隔が経過した時間の前であり、かつ最も近い時間値を有する第１のデータストリーム８０３からの第１のデータ点のデータ値とすることができる。同様に、第２のパラメータに対する最後に知られたデータ値は、第２のデータストリーム８０７における他のデータ点と比較して、間隔が経過した時間の前であり、かつ最も近い時間値を有する第２のデータストリーム８０７からの第２のデータ点のデータ値とすることができる。
【０１７７】
ポリシーベースのデータ８１３が形成されると、ポリシーベースのデータ８１３を、さらなる処理のために出力パケタイザ８０４に送ることができる。出力パケタイザ８０４は、固定サイズの１つまたは複数のバッファを用いてポリシーベースのデータ８１３をバッファリングすることができる。例示的な一実施例として、出力パケタイザ８０４が、現在のバッファ８１６を用いてポリシーベースのデータ８１３をバッファリングすることができる。
【０１７８】
現在のバッファ８１６が一杯になったとき、または何らかの所定量の待ち時間が経過したとき、現在のバッファ８１６は、送信器８０６に送られて送信を待つことができ、送信器バッファリスト８１８の一部になることができる。送信器８０６は、送信器バッファリスト８１８を用いて、送信を待っている現在のバッファを追跡することができる。送信器８０６は、送信を待っている現在のバッファの内容を、出力データ４２２の形で、図３および図４の第１のクライアント３２６へと送出する。
【０１７９】
図９を次に参照すると、図８からのデータマージャ８００の図が例示的な実施形態により示されている。図９では、入力データ点群４２１を共に、図８からのデータマージャ８００により時間に対してマージできる一方法の例が示されている。
【０１８０】
図示のように、入力データ点群４２１は、第１のデータストリーム８０３および第２のデータストリーム８０７で受け取ることができる。第１のデータストリーム８０３の第１のデータ点群８０５は、第１のキュー９００に配置され、第２のデータストリーム８０７の第２のデータ点群８０９は、第２のキュー９０２に配置することができる。
【０１８１】
この例示的な実施例では、第１のデータ点群８０５は、システム遅延なしに受け取ることができる。しかし、第２のデータ点群８０９は、約０．５秒のシステム遅延で受け取ることができる。言い換えると、第２のデータ点群８０９のそれぞれに対する時間値は、データ点に対するデータ値が取得された実際の時間から約０．５秒だけ遅延する可能性がある。このシステム遅延はまた、フィルタ遅延と呼ぶこともできる。
【０１８２】
このシステム遅延は知られているので、データマージャ８００は、第１のデータストリーム８０３と第２のデータストリーム８０７をマージする間、この遅延を考慮に入れる。データマージャ８００は、第１のキュー９００における第１のデータ点群８０５を、約０．７５秒のキュー遅延時間９０４の間保持して、第２のデータ点群８０９が第２のキュー９０２内に達することができるようにする。
【０１８３】
現在時間９０６は、タイムチックストリーム８１０で受け取ったタイムチック９０７に基づく知られた現在時間とすることができる。現在時間９０６からキュー遅延時間９０４を引くと、約１．２５秒の出力限度時間９０８が得られる。この例示的な実施例では、出力限度時間９０８よりも早く取得された第１のキュー９００および第２のキュー９０２に記憶されたいずれのデータ点も、時間順序データ点群８１１として時間順序データアレイ８０８に加えられる。時間順序データ点群８１１は、次いで、処理を行うために図８のポリシーベースのデータマネージャ８０２へと送ることができる。
【０１８４】
出力限度時間９０８よりも遅く取得された第１のキュー９００および第２のキュー９０２に記憶されたいずれのデータ点も、第１のキュー９００および第２のキュー９０２に保持される。時間が進むにつれて、出力限度時間９０８は、変化する現在時間９０６に基づいて変化し、したがって、データ点群は、時間順序データ点群を形成するように連続的にマージされ、かつ処理のために送出される。
【０１８５】
システム遅延またはフィルタ遅延が、特定のパラメータのデータ点群に対して存在しない場合、キュー遅延時間９０４は必要ではない可能性がある。キュー遅延時間９０４ではなく、最大の待ち時間を使用することができる。この最大の待ち時間は、クライアントにより、または図４で示されたポリシー要求ハンドラ４２０により選択することができるが、あるいは事前に決めることができる。
【０１８６】
他の例示的な実施例では、データマージャ８００は、システム遅延に関連するデータ点群に対する時間値を調整するように構成することができる。例えば、データマージャ８００は、第２のデータ点群８０９が第２のキュー９０２に加えられたとき、第２のデータ点群８０９に対する時間値を調整するように構成することができる。具体的には、各時間値を、システム遅延に対して調整するために約０．５秒だけ減らすことができる。この方法では、キュー遅延時間９０４を使用する必要はないはずである。
【０１８７】
さらに、時間順序データアレイ８０８の空間量および／またはサイズを再構成可能にすることができる。特に、時間順序データアレイ８０８の空間量および／またはサイズは、様々なタイプのシステム遅延に適合するために、動的に変化させることができる。
【０１８８】
図１０を次に参照すると、図８からのポリシーベースのデータマネージャ８０２の図が例示的な実施形態により示されている。ポリシーベースのデータマネージャ８０２は、時間順序データ点群８１１を受け取り、かつ時間順序データ点群８１１を処理して、図８のポリシーベースのデータ８１３を形成するように構成される。この例示的な実施例では、ポリシーベースのデータ８１３を補間できる方法の例が示されている。
【０１８９】
間隔時間１００２は、０．５秒の時間の間隔であり、かつデータフレームが形成される時間を示している。第１のデータ点群１００４は、第１のパラメータに対する時間順序データ点群である。第２のデータ点１００６群は、第２のパラメータに対する時間順序データ点である。
【０１９０】
図示のように、間隔時間１００８と正確に一致するデータ点はない。したがって、ポリシーベースのデータマネージャ８０２は、補間を用いて、間隔時間１００８に対するデータフレームを形成するために使用されるデータ値を識別することができる。この例示的な実施例では、データフレームを形成するのに使用するものとして、データ点１０１０に対するデータ値と、データ点１０１２に対するデータ値とが識別される。データ点１０１０は、間隔時間１００８後における、次に最も古い時間値を有する、第１のデータ点群１００４内のデータ点である。データ点１０１２は、間隔時間１００８後における、次に最も古い時間値を有する、第２のデータ点群１００６内のデータ点である。
【０１９１】
同様に、間隔時間１０１４に対して形成されるデータフレームの場合、データ点１０１６に対するデータ値、およびデータ点１０１８に対するデータ値が、データフレームを形成するのに使用するために識別される。データ点１０１６は、間隔時間１０１４後における次に最も古い時間値を有する第１のデータ点群１００４内のデータ点である。データ点１０１８は、間隔時間１０１４後における次に最も古い時間値を有する第２のデータ点群１００６内のデータ点である。
【０１９２】
上記で述べた図８〜図１０では、データマージャ８００が、ポリシーベースのデータマネージャ８０２によって次に処理される時間順序データ点群８１１を有する時間順序データアレイ８０８を形成するものとして述べられているが、他の実装形態では、他のタイプのアレイを形成することができる。他の例示的な実施例では、第１のデータ点群８０５は、時間以外の何らかの他のファクタに従って、第２のデータ点群８０９とマージさせることができる。例えば、第１のデータ点群８０５は、データで順序付けられたアレイを形成するように、第２のデータ点群８０９とマージすることができる。データ順序アレイは、データ点に対するデータ値に関して順序付けられたデータ点のアレイとすることができる。データ点は、昇順に、降順に、データ値のタイプに基づいてソートされ、または何らかの他の方法で順序付けられ、かつ／またはソートされて順序付けることができる。
【０１９３】
さらに他の例示的な実施例では、ポリシーベースのデータマネージャ８０２は、ポリシーベースのデータ８１３を形成するために、補間に加えて、かつ／または補間に代えて他の技法を使用するように構成することができる。例えば、ポリシーベースのデータマネージャ８０２は、外挿技法、曲線の当てはめ技法、式の当てはめ（ｅｑｕａｔｉｏｎ  ｆｉｔｔｉｎｇ）技法、フィルタリング技法、予測技法、データ充填技法、高速フーリエ変換（ＦＦＴ）技法、ゼロ位相実時間フィルタリング（ＳＰＦ）技法、またはデータマージャ８００により提供されるデータ点を用いてポリシーベースのデータ８１３を形成するための何らかの他のタイプの技法もしくはアルゴリズムのうちの少なくとも１つを使用することができる。
【０１９４】
図１１を次に参照すると、クライアントにデータを供給するためのプロセスの図が、例示的な実施形態により流れ図の形で示されている。図１１で示すプロセスは、図１のサーバシステム１０３を用いて実施することができる。
【０１９５】
プロセスは、サーバシステムの１組のデータサーバで、１組のデータプロバイダからデータを受け取ることにより開始する（オペレーション１１００）。次に、クライアントからのポリシー要求が、サーバシステムのサーバコントローラで受け取られる（オペレーション１１０２）。オペレーション１１０２で、ポリシー要求は、ポリシーに従ってデータを求める要求である。
【０１９６】
サーバコントローラは、クライアントにより要求されたデータをホストしている、データサーバの組における１つまたは複数のデータサーバを識別する（オペレーション１１０４）。サーバコントローラは、クライアントにより要求されたデータをホストしていると識別されたデータサーバの組のそれぞれにサーバ要求を送る（オペレーション１１０６）。オペレーション１１０６で、サーバ要求は、サーバポリシーによるデータに対する要求である。サーバポリシーは、ポリシー要求を処理するのにサーバで使用されるポリシー要求中のポリシーの一部を含む。
【０１９７】
サーバ要求の受取りに応じて、データサーバの組における各データサーバは、いくつかのポリシー要求ハンドラを活動化して、サーバポリシーに従いサーバ要求を処理し、次いで要求されたデータをクライアントに送り（オペレーション１１０８）、プロセスは、その後に終了する。
【０１９８】
図１２を次に参照すると、サーバ要求を処理するためのプロセスの図が、例示的な実施形態による流れ図の形で示されている。図１２で示されたプロセスは、図１のデータサーバ１２４など、データサーバにより実施することができる。さらにこのプロセスは、図１１のオペレーション１１０８を実施する場合に使用することができる。
【０１９９】
プロセスは、データサーバのサーバマネージャでサーバ要求を受け取ることにより開始する（オペレーション１２００）。サーバ要求は、クライアントにより送られたポリシー要求から生成することができる。サーバマネージャは、サーバ要求を受け取ったことに応じてデータサーバ内のポリシー要求ハンドラを活動化し、サーバ要求を処理する（オペレーション１２０２）。サーバマネージャは、サーバ要求に基づいて、ポリシー要求ハンドラに対する複数の非同期データストリームのソースになるのは、データサーバ中の受信器か、それともデータサーバ中の記憶システムであるかを判定する（オペレーション１２０４）。
【０２００】
オペレーション１２０４で、サーバ要求がライブ要求であるとき、受信器がソースとして選択される。要求が履歴要求であるとき、記憶システムがソースとして選択される。
【０２０１】
複数の非同期データストリームが、サーバマネージャにより識別されたソースから、ポリシー要求ハンドラにより受信される（オペレーション１２０６）。複数の非同期データストリームは、異なるデータレートによってポリシー要求ハンドラで受信された少なくとも２つのデータストリームを含むことができる。
【０２０２】
次に、ポリシー要求ハンドラにより、複数の非同期データストリームのデータ点群が共にマージされて、時間順序データ点群が形成される（オペレーション１２０８）。その後、ポリシー要求ハンドラにより、サーバ要求で識別されたサーバポリシーに従って、時間順序データ点群を用いてポリシーベースのデータが形成される（オペレーション１２１０）。
【０２０３】
ポリシーベースのデータは次いで、ポリシー要求ハンドラにより、サーバ要求が形成されるポリシー要求を生成したクライアントに対して出力データとして送られ（オペレーション１２１２）、プロセスはその後に終了する。サーバ要求がライブ要求であるとき、オペレーション１２０６、１２０８、１２１０、および１２１２は、クライアントでデータ送信の停止要求が受信されるまで、連続して形成されうる。
【０２０４】
図１３を次に参照すると、ポリシーベースのデータを形成するためのプロセスの図が、例示的な実施形態により示されている。図１３で示されているプロセスは、例えば、図１のポリシー要求ハンドラ１４０など、ポリシー要求ハンドラにより行うことができる。さらに、このプロセスは、図１２のオペレーション１２１０を実施するために使用することができる。
【０２０５】
プロセスは、時間順序データ点群を受け取ることにより開始する（オペレーション１３００）。次に、時間順序データ点群を形成するためのサーバ要求が、あらゆるサンプル要求であるか、それともフレーム化要求であるかに関して判定が行われる（オペレーション１３０２）。
【０２０６】
サーバ要求が、あらゆるサンプル要求である場合、ポリシーベースのデータは、時間順序データ点群におけるあらゆるデータ点を用いて形成される（オペレーション１３０４）。ポリシーベースのデータを形成するために使用した各データ点は、データ点に関連付けられた元の時間値を保持する。次に、時間順序データ群点が、なお受信されているかどうかに関して判定が行われる（オペレーション１３０６）。時間順序データ点群がなお受信されている場合、プロセスは、上記で述べたオペレーション１３０４に戻る。受信されていない場合、プロセスは終了する。
【０２０７】
オペレーション１３０２を再度参照すると、サーバ要求がフレーム化要求である場合、データフレームが形成されるイベントが識別される（オペレーション１３０８）。このイベントはまた、トリガと呼ぶこともできる。その後、イベントが生ずるごとに、ポリシーベースのデータフレームが時間順序データ点群を用いて形成され、１組のポリシーベースのデータフレームが形成される（オペレーション１３１０）。
【０２０８】
次に、時間順序データ点群がなお受信されているかどうかに関して判定が行われる（オペレーション１３１２）。時間順序データ点群が、なお受信されている場合、プロセスは、上記で述べたようにオペレーション１３１０に戻る。受信されていない場合、プロセスは終了する。
【０２０９】
次に図１４を参照すると、ブロック図の形でデータ処理システムの図が、例示的な実施形態により示されている。データ処理システム１４００は、図１のデータプロバイダの組１０６、クライアントの組１０４、データサーバの組１１０、およびサーバコントローラ１０８の１つまたは複数のものを実施するために使用することができる。図示のように、データ処理システム１４００は、通信フレームワーク１４０２を含み、通信フレームワーク１４０２は、プロセッサユニット１４０４、記憶デバイス１４０６、通信ユニット１４０８、入力／出力ユニット１４１０、およびディスプレイ１４１２の間の通信を提供する。いくつかの場合では、通信フレームワーク１４０２は、バスシステムとして実施することができる。
【０２１０】
プロセッサユニット１４０４は、ソフトウェアがいくつかのオペレーションを行うための命令を実行するように構成される。プロセッサユニット１４０４は、実装形態に応じて、いくつかのプロセッサ、マルチプロセッサコア、および／または何らかの他のタイプのプロセッサを備えることができる。いくつかの場合では、プロセッサユニット１４０４は、回路システム、特定用途向けＩＣ（ＡＳＩＣ）、プログラム可能な論理デバイス、または何らかの他の適切なタイプのハードウェアユニットなど、ハードウェアユニットの形を取ることができる。
【０２１１】
プロセッサユニット１４０４により動作するオペレーティングシステム、アプリケーション、および／またはプログラムに対する命令は、記憶デバイス１４０６に配置することができる。記憶デバイス１４０６は、通信フレームワーク１４０２を介してプロセッサユニット１４０４と通信することができる。本明細書で使用される場合、記憶デバイスは、コンピュータ可読の記憶デバイスとも呼ばれるが、一時的に、かつ／または永続的に情報を記憶できる任意のハードウェアである。この情報は、これだけに限らないが、データ、プログラムコード、および／または他の情報を含むことができる。
【０２１２】
メモリ１４１４および恒久的なストレージ１４１６は、記憶デバイス１４０６の例である。メモリ１４１４は、例えば、ランダムアクセスメモリ、または何らかのタイプの揮発性もしくは不揮発性記憶デバイスの形を取ることができる。恒久的なストレージ１４１６は、任意の数のコンポーネントもしくはデバイスを備えることができる。例えば、恒久的なストレージ１４１６は、ハードドライブ、フラッシュメモリ、書換え可能な光ディスク、書換え可能な磁気テープ、または上記の何らかの組合せを含むことができる。恒久的なストレージ１４１６で使用される媒体は、取外し可能にすることも、取外し不能にすることもできる。
【０２１３】
通信ユニット１４０８は、データ処理システム１４００が、他のデータ処理システムおよび／またはデバイスと通信できるようにする。通信ユニット１４０８は、物理的かつ／または無線通信リンクを用いる通信を提供することができる。
【０２１４】
入力／出力ユニット１４１０は、データ処理システム１４００に接続された他のデバイスからの入力を受け取り、かつ出力を他のデバイスに送ることを可能にする。例えば、入力／出力ユニット１４１０は、ユーザ入力を、キーボード、マウス、および／または何らかの他のタイプの入力デバイスを介して受け取ることを可能にする。別の例として、入力／出力ユニット１４１０は、データ処理システム１４００に接続されたプリンタに出力を送れるようにする。
【０２１５】
ディスプレイ１４１２は、ユーザに情報を表示するように構成される。ディスプレイ１４１２は、例えば、限定することなく、モニタ、タッチスクリーン、レーザディスプレイ、ホログラフィックディスプレイ、仮想表示デバイス、および／または何らかの他のタイプの表示デバイスを含むことができる。
【０２１６】
この例示的な実施例において、様々な例示的な実施形態のプロセスは、コンピュータで実施される命令を用いてプロセッサユニット１４０４により実施することができる。これらの命令は、プログラムコード、コンピュータで使用可能なプログラムコード、またはコンピュータ可読プログラムコードとすることができ、プロセッサユニット１４０４の１つまたは複数のプロセッサで読み取られ、かつ実行することができる。
【０２１７】
これらの例では、プログラムコード１４１８は、選択的に取外し可能なコンピュータ可読媒体１４２０上に機能的な形態で位置しており、プロセッサユニット１４０４で実行するために、データ処理システム１４００にロードされる、または転送することができる。プログラムコード１４１８およびコンピュータ可読媒体１４２０は共に、コンピュータプログラム製品１４２２を形成する。この例示的な実施例では、コンピュータ可読媒体１４２０は、コンピュータ可読記憶媒体１４２４、またはコンピュータ可読信号媒体１４２６とすることができる。
【０２１８】
コンピュータ可読記憶媒体１４２４は、プログラムコード１４１８を伝達する、または送信する媒体ではなく、プログラムコード１４１８を記憶するために使用される物理的な、または有形の記憶デバイスである。コンピュータ可読記憶媒体１４２４は、例えば、限定することなく、データ処理システム１４００に接続される光もしくは磁気ディスク、または恒久的な記憶デバイスとすることができる。
【０２１９】
代替的に、プログラムコード１４１８を、コンピュータ可読信号媒体１４２６を用いてデータ処理システム１４００に転送することができる。コンピュータ可読信号媒体１４２６は、例えば、プログラムコード１４１８を含む伝搬データ信号とすることができる。このデータ信号は、電磁信号、光信号、ならびに／または物理的かつ／または無線通信リンクを介して送信できる何らかの他のタイプの信号とすることができる。
【０２２０】
図１４のデータ処理システム１４００の図は、例示的な実施形態を実施できる方法に対して、アーキテクチャ上の限定を行うことを意味するものではない。様々な例示的な実施形態を、データ処理システム１４００で示されたものに加えて、またはそれに代わるコンポーネントを含むデータ処理システムで実施することができる。さらに図１４で示すコンポーネントは、示された例示的な実施例から変えることもできる。
【０２２１】
示された様々な実施形態の流れ図およびブロック図は、例示された実施形態における装置および方法のいくつかの可能な実装形態のアーキテクチャ、機能性、およびオペレーションを示している。この点に関して、流れ図またはブロック図における各ブロックは、モジュール、セグメント、機能、および／またはオペレーションもしくはステップの一部を表すことができる。
【０２２２】
例えば、１つまたは複数のブロックは、プログラムコードとして、ハードウェアで、またはプログラムコードとハードウェアの組合せで実施することができる。ハードウェアで実施される場合、ハードウェアは、例えば、流れ図もしくはブロック図の１つまたは複数のオペレーションを実施するように製作された、または構成された集積回路の形を取ることができる。プログラムコードとハードウェアの組合せとして実施されたとき、実装形態はファームウェアの形を取ることができる。
【０２２３】
例示的な実施形態のいくつかの代替的な実装形態では、ブロックで示された１つまたは複数の機能は、諸図で示された順序とは変えて実施することができる。例えば、いくつかの場合、含まれている機能性に応じて、連続して示された２つのブロックを、実質的に同時に実行することができるが、あるいはブロックを、時には逆の順序で実施することもできる。さらに流れ図またはブロック図で示されたブロックに加えて、他のブロックを追加することができる。
【０２２４】
様々な例示的な実施形態の記述が、例示および説明のために提示されてきているが、網羅的であること、または開示された形の実施形態に限定されることを意図していない。当業者であれば、多くの変更形態および変形形態が明らかであろう。さらに異なる例示的な実施形態は、他の例示的な実施形態と比較して、異なる特徴を提供することができる。選択された１つまたは複数の実施形態は、諸実施形態の原理、実際の適用を最もよく説明するために、かつ他の当業者が、企図される特定の使用に適する様々な変更を有する様々な実施形態の開示を理解できるようにするために、選択されかつ述べられている。
【符号の説明】
【０２２５】
３００  情報管理環境
３０２  サーバシステム
３０４  データプロバイダの組
３０６  クライアントの組
３１０  データサーバの組
８０５  第１のデータ点  ８０８  時間順序データアレイ
８０９  第２のデータ点
８１０  タイムチックストリーム  ９００  第１のキュー
９０２  第２のキュー
９０４  キュー遅延時間
１００２  間隔時間
１００４  第１のデータ点群
１００６  第２のデータ点群
１００８  間隔時間
１０１０  データ点
１０１２  データ点
１０１４  間隔時間
１０１６  データ点
１０１８  データ点
【図１】
2015018540.tif 000002
【図２】
2015018540.tif 000003
【図３】
2015018540.tif 000004
【図４】
2015018540.tif 000005
【図５】
2015018540.tif 000006
【図６】
2015018540.tif 000007
【図７】
2015018540.tif 000008
【図８】
2015018540.tif 000009
【図９】
2015018540.tif 000010
【図１０】
2015018540.tif 000011
【図１１】
2015018540.tif 000012
【図１２】
2015018540.tif 000013
【図１３】
2015018540.tif 000014
【図１４】
2015018540.tif 000015
【外国語明細書】
2015018540000001.pdf
2015018540000002.pdf
2015018540000003.pdf
2015018540000004.pdf