(57)【要約】ネットワーク（例えば、インターネット）に配布するためのストリーミングデータをサンプリングするための方法（図１）は、ストリーミングデータソース(120)からストリーミングデータ（周期的に更新される情報アイテムを含む）を受信することを含む。その後、ストリーミングデータの全更新レート(Ua)と、ネットワークの容量(C)とに基づくサンプリングプロセスを使用して、ストリーミングデータの周期的に更新される情報アイテムをサンプリングして、サンプリングされたデータストリームを形成する。或いは又、周期的に更新される情報アイテムの各々の重要性(Kqmin)と、周期的に更新される情報アイテムの各々の更新レート(Uq)とに基づくサンプリングプロセスを使用して、ストリーミングデータの周期的に更新される情報アイテムをサンプリングして、サンプリングされたデータストリームを形成することもできる。サンプリングされたデータストリームは、ネットワーク（例えば、インターネット又はプライベートエリアネットワーク）に配布される。
2005524150.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにリアルタイム配布するために、周期的に更新される情報アイテムを含むストリーミングデータをサンプリングする方法において、
ストリーミングデータソースからストリーミングデータを受信するステップと、
前記ストリーミングデータの情報アイテムの更新レートと、前記データを配布すべきネットワークの容量とに基づくサンプリングプロセスを使用して前記ストリーミングデータの前記周期的に更新される情報アイテムをサンプリングして、サンプリングされたデータストリームを形成するステップと、
前記サンプリングされたデータストリームを前記ネットワークに配布するステップと、
を備えた方法。
【請求項２】
前記サンプリングステップ中に、前記ストリーミングデータの動的に決定される更新レートと、前記ネットワークの動的に決定される容量とに基づくサンプリングプロセスを使用して、前記ストリーミングデータの前記周期的に更新される情報アイテムをサンプリングするステップを更に備えた請求項１に記載の方法。
【請求項３】
前記サンプリングステップは、前記周期的に更新される情報アイテムの各々の所定の重要性にも基づくサンプリングプロセスを使用して前記ストリーミングデータの前記周期的に更新される情報アイテムの各々をサンプリングして、前記サンプリングされたデータストリームを形成する請求項１に記載の方法。
【請求項４】
前記サンプリングステップは、前記周期的に更新される情報アイテムの各々の更新レートにも基づくサンプリングプロセスを使用して前記ストリーミングデータの前記周期的に更新される情報アイテムの各々をサンプリングして、前記サンプリングされたデータストリームを形成する請求項３に記載の方法。
【請求項５】
前記サンプリングステップ中に、前記ストリーミングデータにおける情報アイテムの動的に決定された全更新レートと、前記ネットワークの動的に決定された容量と、前記周期的に更新される情報アイテムの各々の所定の重要性と、前記周期的に更新される情報アイテムの各々の動的に決定される更新レートとに基づくサンプリングプロセスを更に使用する請求項１に記載の方法。
【請求項６】
前記動的に決定される全更新レートと、前記動的に決定される容量と、前記周期的に更新される情報アイテムの各々の前記動的に決定される更新レートとは、少なくとも各所定の時間インターバルで動的に決定される請求項５に記載の方法。
【請求項７】
前記配布ステップに続いて、選択された周期的に更新される情報アイテムを前記ネットワークに分散させるステップを更に備えた請求項１に記載の方法。
【請求項８】
前記配布ステップ中に、前記サンプリングされたデータストリームを、プライベートネットワークを経て配布するステップを更に備えた請求項１に記載の方法。
【請求項９】
前記配布ステップ中に、前記サンプリングされたデータストリームを、ネットワークを経て配布するステップを更に備えた請求項１に記載の方法。
【請求項１０】
前記配布ステップ中に、前記サンプリングされたデータストリームを、パブリックネットワークを経て配布するステップを更に備えた請求項１に記載の方法。
【請求項１１】
前記ストリーミングデータは、周期的に更新される金融相場情報アイテムを含む請求項１に記載の方法。
【請求項１２】
ネットワークに配布するために、周期的に更新される情報アイテムを含むストリーミングデータをサンプリングする方法において、
ストリーミングデータソースからストリーミングデータを受信するステップと、
次のもの、即ち
１）前記ストリーミングデータの動的に決定される全更新レート(Ｕa)、
２）前記ネットワークの動的に決定される容量(Ｃ)、
３）前記周期的に更新される情報アイテム各々の所定の重要性(Ｋqmin)、及び
４）前記周期的に更新される情報アイテム各々の動的に決定される更新レート(Ｕq)、
に基づくサンプリングプロセスを使用して、前記ストリーミングデータの前記周期的に更新される情報アイテムの各々をサンプリングして、サンプリングされたデータストリームを形成するステップと、
前記サンプリングされたデータストリームを前記ネットワークに配布するステップと、
選択された周期的に更新される情報アイテムを前記ネットワークに分散させるステップと、
を備えた方法。
【請求項１３】
前記ストリーミングデータは、周期的に更新される金融相場情報アイテムを含む請求項１２に記載の方法。
【請求項１４】
前記全更新レート、前記容量、及び前記周期的に更新される情報アイテム各々の動的に決定される更新レートは、少なくとも各所定の時間インターバルで動的に決定される請求項１２に記載の方法。
【請求項１５】
前記周期的に更新される情報アイテム各々の所定の重要性（Ｋqmin）は、実行条件に基づいて動的に決定される請求項１２に記載の方法。
【請求項１６】
前記配布ステップ中に、前記サンプリングされたデータストリームを、プライベートネットワークを経て配布するステップを更に備えた請求項１２に記載の方法。
【請求項１７】
前記配布ステップ中に、前記サンプリングされたデータストリームを、ネットワークを経て配布するステップを更に備えた請求項１２に記載の方法。
【請求項１８】
前記配布ステップ中に、前記サンプリングされたデータストリームを、パブリックネットワークを経て配布するステップを更に備えた請求項１２に記載の方法。
【請求項１９】
前記ストリーミングデータは、周期的に更新される金融相場情報アイテムを含む請求項１２に記載の方法。
【請求項２０】
ネットワークにリアルタイム配布するために、周期的に更新される情報アイテムを含むストリーミングデータをサンプリングする方法において、
ストリーミングデータソースからストリーミングデータを受信するステップと、
前記ストリーミングデータの情報アイテムの更新レートと、前記データを配布すべきネットワークの容量とに基づくサンプリングプロセスを使用して前記ストリーミングデータの前記周期的に更新される情報アイテムをサンプリングして、サンプリングされたデータストリームを形成するステップと、
前記サンプリングされたデータストリームを前記ネットワークに配布するステップと、
前記周期的に更新される情報アイテムのいずれかが前記ストリーミングデータにより更新されたが、前記サンプリングステップにおいてサンプリングされずに前記配布ステップにおいてスイープインターバルにわたって配布されたかどうかを判断するステップと、
前記スイープインターバル中に情報アイテムの配布を除外することになる少なくとも１つのサンプリングプロセスとは独立して、前記判断ステップで判断された情報アイテムをネットワークに配布するステップと、
を備えた方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、変化するデータをリアルタイム配布する方法に係り、より詳細には、ネットワークにリアルタイム配布するためにストリーミングデータをサンプリングする方法に係る。
【背景技術】
【０００２】
多数のデータソースが、１つ以上の媒体において高速ストリーミングデータを使用して大量の時間感知コンテンツをそれらの加入者に提供している。このようなストリーミングデータは、株相場、その他の金融相場、ニュース速報、リアルタイム天気レポート、又は他の情報アイテムを含む。又、あるストリーミングデータは、位置追跡システムにおける物体の位置に対するリアルタイム更新のような特殊目的の情報アイテムも含む。一般的なケースでは、データソースは、そのデータソースにより提供される情報を表わす１つ以上の形式のストリーミング媒体コンテンツを提供し、ここで、ストリーミングデータコンテンツは、その少なくとも一部分は、その情報に関する更新のストリームを表わす。媒体は、あるコンテクストにおいては設定終了点をもたない連続流であると狭く定義されているストリーミング媒体であるが、ここでは、必ずしも連続でない流れとして供給されるデータであって、定義された終点を必ずしももたず且つ事前に完全に得ることのできないデータを単に指すものとして使用される。従って、数時間ごとに一回しか更新されない１つのデータムに対する更新も、データのストリームとして処理されてもよい。
【０００３】
データソースからの情報を情報のユーザへ送信するのに使用される配布ネットワークは、しばしば容量に限度があり（例えば、帯域巾制限されたチャンネル）、各々のユーザがデータソースから提供されるデータの各ビットを得るのを妨げることがある。例えば、１つの株取引のトランザクションからの相場データだけでも、毎分何回も変化する数千の相場を含むことがあり、その結果、１秒のストリーム当たり数メガバイトにも達することになる。配布ネットワークの多くの部分は、情報に対するリアルタイム更新のためにそのストリームを通過させる帯域巾をしばしば備えることができない。例えば、ネットワークが１つの大陸に及び、大陸間（例えば、北アメリカとアジア）を接続し、国間（例えば、米国とインド）を接続し、或いは低開発領域内をリンクする場合には、ネットワークの幾つかの部分における帯域巾が極端に制限されるか、又は完全に利用するのに著しくコスト高になることがある。ワイドエリアネットワークにおいてストリーミングデータを直接配布する試みは、ワイドエリアネットワークを圧倒し、その結果、配布のクオリティ（例えば、代表的性質及び関連性）及びスケジュールの悪化を招く。例えば、毎分一度更新される相場データがネットワークの混雑のために１０分間遅延した場合には、データストリームの有用性が甚だしく低下することになる。
【０００４】
典型的な帯域巾制限のあるネットワークに伴う別の問題は、それらの容量が時間と共に変化し、考慮を必要とする動的な環境を招くことである。このような動的な環境は、ネットワークにストリーミングデータを配布する努力を更に複雑にする。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
それ故、この分野では、ネットワークにストリーミングデータを配布する方法であって、容量の制限されたネットワークを圧倒することがなく、しかも、相対的に静的な環境及び動的な環境において周期的に更新される情報アイテムを適時に且つ高いクオリティで配布する方法が依然として要望される。
【課題を解決するための手段】
【０００６】
本発明は、ネットワークにリアルタイム配布するためにストリーミングデータをサンプリングする方法であって、ネットワークを圧倒することがなく、しかも、ストリーミングデータから適時に導出された高クオリティのサンプルデータストリームを配布するための方法を提供する。又、この方法は、サンプリングされたデータストリームを動的な環境において適時に且つ高いクオリティで配布を行なうものである。
【０００７】
ネットワークに配布するために周期的に更新される情報アイテムを含むストリーミングデータをサンプリングする本発明の方法の一実施形態は、ストリーミングデータソースからストリーミングデータを第１に受け取ることを含む。情報アイテムは、株相場、他の相場、ニュースアイテム、天気情報、位置情報、及び／又は他の変化する情報アイテムを含む。ストリーミングデータの周期的に更新される情報アイテムは、ストリーミングデータの更新レートと、サンプリングされたデータストリームを形成するためのネットワークの容量とに基づくレートでその後にサンプリングされる。サンプリングを決定するためのサンプリングレート及びアルゴリズムは、ストリームごとに変化してもよく、そして周期的に更新される情報アイテムの各々の相対的な重要性と、周期的に更新される情報アイテムの各々の更新レートとに基づいてもよい。サンプリングされたデータストリームは、次いで、ネットワークに配布される。ネットワークは、プライベートネットワーク、仮想プライベートネットワーク、インターネット、エクストラネット、イントラネット、ワイドエリアネットワーク（ＷＡＮ）、等々である。
【０００８】
本発明の実施形態の１つの効果は、受け取られるストリーミングデータが、ストリーミングが生じる環境の特性と、任意であるが、周期的に更新される情報アイテム各々の重要性等を表わすファクタとに基づいてサンプリングされるので、情報を適時に且つ高いクオリティで（即ちストリーミングデータ及び高い関連性を充分に表わす）配布できることである。
【０００９】
それ故、本発明による方法は、レート制限されたネットワークにストリーミングデータを配布することができる。サンプリングのプロセスに使用されるパラメータは、動的に決定することができ、従って、動的な環境を受け入れるようにサンプリングレートを調整することができる。ストリーミング及びサンプリングが行なわれる環境は、変化するネットワーク負荷、変化する計算リソース利用性等のために変化することがある。
【００１０】
本発明の特徴及び効果は、添付図面及びこれを参照した実施形態の詳細な説明により充分に理解されよう。
【発明を実施するための最良の形態】
【００１１】
図１は、本発明の実施形態が使用されるネットワークシステム１００のブロック図である。図示されたように、収集データセンター１１０は、種々のストリーミングデータソース１２０からデータのストリームを受け取る。収集データセンター１１０は、データストリームを受け取ってそれらをフィード入力プロセッサ１３２へ供給するための入力／出力制御器（Ｉ／Ｏ）１３０を備えている。フィード入力プロセッサ１３２は、データを記憶するためのデータ記憶装置１３４に接続され、このデータは、フィード出力プロセッサ１３６により読み取られて、Ｉ／Ｏ１３８へ送られ、パラメータデータベース１４０に記憶されたパラメータに基づいて種々のデータセンター１５０へ送信される。データ記憶装置１３４は、磁気記憶装置でよいが、典型的な実施形態では、フィード入力プロセッサとフィード出力プロセッサとの間のデータストリーミングをバッファするのに使用される短時間高速メモリである。ユーザシステム１５２は、情報アイテムを受信するために各データセンター１５０に接続される。図中、要素は、同様のオブジェクトの多数の例を示すように表示されている。例えば、データソースは、１２０（１）、１２０（２）、・・・１２０（Ｎ）と表示されており、そしてユーザシステムは、１５２（１）、１５２（２）、・・・１５２（Ｎ）と表示されている。
【００１２】
特定例では、ニューヨーク株式取引所（ＮＹＳＥ）トランザクションのプロバイダーが、相場及び相場更新を、Ｙａｈｏｏ！により運営される収集データセンターへストリーミングする。この収集データセンターは、次いで、このストリームを、他のものと共に処理し、容量の変化するネットワークリンクを経て世界中のＹａｈｏｏ！データセンターへ配布する。Ｙａｈｏｏ！ユーザは、次いで、ユーザのコンピュータシステム（ＰＣ、ラップトップ、ワイヤレス装置、電話等）に指令して、Ｙａｈｏｏ！データセンターに接続し（通常は、最も容易にアクセスされるか最も近いデータセンターであるが、これは必要とされない）、現在相場を得る。
【００１３】
収集データセンター１１０は、この収集データセンター１１０とデータセンター１５０との間の配布ネットワークに対する負荷ファクタを決定する動的負荷分析器１４２も備えている。このような負荷ファクタは、以下に詳細に述べるように、フィード出力プロセッサ１３６によりバルクデータをいかにサンプリングし及び／又は処理するか決定するために使用されるパラメータデータベース１４０のパラメータを更新するときに考慮に入れられる。
【００１４】
パラメータデータベース１４０は、ストリームを処理するのに使用されるパラメータの多数の記録を含む多数のテーブルを維持する。収集データセンターに使用されることのあるデータベース及び／又はデータテーブルを表わす以下のテーブルに幾つかのパラメータが示されている。
【００１５】
テーブル１は、データセンターに関連したパラメータをリストしている。収集センターがデータストリームを受信して多数のデータセンターへ配布する場合には、このようなデータセンターパラメータテーブルの多数のインスタンスが存在し得る。ある実施形態では、対応が１対１であるが、他の実施形態では、幾つかのデータセンターが、パラメータデータベース１４０からのパラメータに関係していない配布を受信する。例えば、収集センターとデータセンターとの間の接続が充分な帯域巾を有している場合には、受信した全てのストリームからの全てのデータがそのデータセンターへ転送され、そのデータセンターのパラメータテーブル内のパラメータを調査する必要はない。幾つかのパラメータは、システム統計データ更新と更新との間の時間である「ＳＳＵ」インターバルを越えて累積する。
【００１６】
テーブル２（「アイテム」テーブル）は、情報アイテムに関連したパラメータをリストする。所与の情報アイテムｑは、更新することのできる何かであり、例えば、チェッカー記号ＹＨＯＯに対する現在相場又はカリフォルニア州サニーベールの天気である。アイテムテーブル内の幾つかのアイテムエントリーは、単一アイテムに対するもので、例えば、ＹＨＯＯに対する相場であるが、アイテムテーブル内の他のアイテムエントリーは、更新することのできる関連又は非関連アイテムのグループに対するもので、例えば、カリフォルニアの２０の地域の天候、共通の特性をもたないアイテムの種々の集合、又は部分的に関連するだけのあるセットである。例えば、高ボリュームアイテムは、個々のアイテムとして処理されてもよく、一方、低ボリュームアイテムのグループは、テーブルにおいて１つの「アイテム」としてグループ分けされてもよい。ここで使用する「情報アイテム」は、１つのアイテムのグループ、又は２つ以上のアイテムのグループを指すことができることを理解されたい。アイテムを一般的に考慮するときには、ある実施形態では、全てのアイテムがそれら自身のグループを各々有し、ある実施形態では、あるアイテムがそれら自身のグループを有し、そして他の実施形態では、全てのアイテムが２つ以上のアイテムを有するグループにグループ編成される。一般的なケースでは、ゼロ以上のグループが単一情報アイテムを含み、そしてゼロ以上のグループが２つ以上の情報アイテムを含む。
【００１７】
あるケースでは、特殊な事件のニュース記事のような所与の情報アイテムは決して更新されないが、より一般的には、情報アイテムは更新される。情報アイテムの他の例は、１組のオブジェクト、例えば、特定の会社についての１組の現在の評論記事、ある国の異なる地域に対する１組の天気レポート、又は１組の低取引量の株相場である。この組は、個々のそして若干関係のある又は関係のないアイテムを含んでもよいが、収集データセンターにおいて取り扱うために一緒にグループ編成することができる。決して更新されない情報アイテムは、特殊なケースとして処理される必要がなく、任意の長い周期が経過した後でなければ更新されないアイテムとして処理することができる。
【００１８】
又、パラメータデータベース１４０は、テーブル３のような、ストリーム（データソース）に関連したテーブルを維持してもよい。収集センターがデータストリームを受信して多数のストリームへと配布する場合には、このようなストリームパラメータテーブルの多数のインスタンスが存在してもよい。ある実施形態では、対応が１対１であり、一方、他の実施形態では、あるストリームが収集センターにより受信されるが、パラメータデータベース１４０からのパラメータを使用して処理されるのではない。例えば、天気データソースからのデータのボリュームは、金融データソースからのボリュームよりしばしば何桁も大きさが小さく、従って、受信した全ての天気データは、処理されずに収集センターを通過されてもよく、データセンターに対する混雑に著しく影響しない。ある状況では、２つ以上の大きなデータソースがあると、それらデータソース間である程度のバランスをとることができる。
【００１９】
パラメータデータベース１４０は、高い応答性をもつが、従来のデータベースとして構成されてもよい。通常、パラメータデータベース１４０は、データセンターごとにアイテム当たり１つのアイテムテーブルを維持する。１つ以上のデータストリームが多数の情報アイテムｑに分割される場合には、アイテムテーブルの数がかなり多くなる。しかしながら、ハッシュを使用することによりデータベースが効率的にインデックスされる場合には、数百万のアイテムテーブルを達成することができる。ある実施形態では、パラメータデータベース１４０は、迅速にアクセスできるように高速メモリに大部分又は完全に記憶される。パラメータデータベース１４０は、動的負荷分析器１４２又は他のプロセスによりリアルタイムでこれを更新して、容量が変化したりその他スループットに影響を及ぼしたりするネットワークのような動的な環境に対処するようにサンプリングレートをリアルタイムで調整することができる。
【００２０】
テーブル１：データセンターパラメータ
パラメータ 単位 説明
Ｔ0             秒            初期スタートの時間
Ｔ              秒            現在時間
Ｔu             秒            最終システム統計データ更新（ＳＳＵ）の時間
Ｉu             秒            ＳＳＵインターバル
Ｉs             秒            スイープフェーズインターバル
Ｉp             秒            必要に応じてシステムの統計情報を初期化する時間
インターバル
Ｉm             秒            スイープフェーズに使用される最大非アクティブ周期
Ｎsu            バイト        全ての以前のインターバル［Ｔ0，Ｔu］に配布され
たデータ
Ｎs             バイト        現在インターバル［Ｔu，Ｔ］に配布待ち行列に入れ
られたデータ
Ｎdu            バイト        Ｔuに配布待ち行列に残っているデータ
Ｎd             バイト        Ｔに配布待ち行列に残っているデータ
Ｕa             バイト／秒    全ソースにわたりＵa＝Ｎa／（Ｔ−Ｔu）から計算
された更新レート（全更新レート）
Ｃ              バイト／秒    Ｃ＝（Ｎs＋Ｎdu−Ｎd）／（Ｔ−Ｔu）として現
在ＳＳＵインターバルに対して計算されたネットワー
ク容量
Ｃp             バイト／秒    以前のＳＳＵインターバルからのネットワーク容量
【００２１】
テーブル２：情報アイテム／グループパラメータ
パラメータ 単位 説明
ｔq             秒          配布待ち行列に入れられた時間最終サンプル
ｎqa            バイト      全ての以前のインターバル［Ｔ0，Ｔ］に受け取られた
更新データ
ｎq             バイト      現在インターバル［Ｔu，Ｔ］に受け取られた更新
データ
ｕq             バイト／秒  ｕq＝ｎq／（Ｔ−Ｔu）として計算される更新レート
ｓqa            バイト      全インターバル［Ｔu，Ｔ］に配布待ち行列に入れられ
たサンプルデータ
ｓq             バイト      ＴuからＴまでに配布待ち行列に入れられたサンプル
データ
ｒq             バイト／秒  ｒq＝ｓq／（Ｔ−Ｔu）として計算されたサンプリング
レート
Ｋqmin          バイト／秒  最小サンプリングレート
Ｋqmax          バイト／秒  最大サンプリングレート
ｆq             ブール      配布待ち行列指示子
【００２２】
テーブル３：データソースパラメータ
パラメータ 単位 説明
Ｎu             バイト    全ての以前のインターバル［Ｔ0，Ｔu］にソースから
受け取ったデータ
Ｎa             バイト    現在インターバル［Ｔu，Ｔ］にソースから受け取った
データ
【００２３】
初期スタート時間は、プロセスがリセットするたびにリセットされてもよい。所与の情報アイテムｑに対する最小サンプリングレートＫqminは、ｑの重要性を表わす。Ｋqminの初期値は、例えば、構成ファイルから得ることができ、これを固定する必要はなく、以下に述べるようにＳＳＵフェース（以下に述べる）ごとに更新されてもよい。
Ｋqmin（新）＝Ｋqmin（旧）＊Ｃ／Ｃp、Ｃp＜＞０の場合
Ｋqmin（新）＝Ｋqmin（旧）、Ｃp＝０の場合
情報アイテムの更新レートＵqがそのＫqmin値未満である場合には、サンプリングが少なくともＫqminである必要はなく、より低い更新レートへセットすることができる。所与のアイテムｑ及び所与のデータセンターに対する最大サンプリングレートＫqmaxは、次の通りである。
Ｋqmax＝ｕq、Ｕa＝０の場合
Ｋqmax＝ｕq／Ｕa＊Ｃ、Ｕa＜＞０の場合
【００２４】
配布待ち行列指示子ｆqは、受け取られたデータ更新が配布待ち行列に入れられるかどうか指示する。受け取られた更新が待ち行列に入れられない場合には、ｆqがセットされる。データ更新が待ち行列に入れられる場合には、ｆqがクリアされる。
【００２５】
これらのテーブルでは、時間（秒）、データ量（バイト）及びデータレート（バイト／秒）についてある単位が使用されるが、本発明の範囲から逸脱せずに他の単位を使用できることを理解されたい。
【００２６】
又、「サンプリングレート」という語は、計算に基づいて決定されたある固定のデータ送信レートに制限されず、より一般的には、ここに述べるサンプリングプロセスをデータストリームに適用した場合に存在し得る送信のレートを指すことも理解されたい。サンプリングレート又は他のレートの数値は、動的に決定される値のように、サンプリングプロセスへの全ての入力が分かるまで未知であることが全体的に考えられる。最も一般的なケースでは、サンプリングレートは、独立した変数でなくてもよく、従属して設定又は調整されると共に、他の変数を設定しそしてサンプリングされるデータにサンプリングプロセスを適用する結果により決定されてもよい。それでも、サンプリングレートが、「サンプリングレート」変数の設定により決定されようと、又はサンプリングプロセスの副産物として決定されようと、データは、サンプリングレートをもつと言える。
【００２７】
図２は、本発明の一実施形態に基づいてワイドエリアネットワーク（例えば、インターネット）を経て配布するために、周期的に更新される情報アイテムを含むストリーミングデータをサンプリングするプロセス２００における一連のステップを示すフローチャートである。ストリーミングデータの周期的に更新される情報アイテムは、株又は他の金融相場、ニュースアイテム（例えば、スポーツのスコア、又は金融ニュースアイテム）、ビジネス又は金融情報、天気情報又は他の形式の周期的に更新される情報アイテム、例えば、航空交通量追跡情報アイテム又はグローバルポジショニングシステム（ＧＰＳ）情報アイテムを含む任意の形式の情報アイテムでよいが、これらに限定されない。更に、周期的に更新される情報アイテムの各々の周期的更新レートは、ストリーミングデータの他の情報アイテム（１つ又は複数）の周期的更新レートとは異なるものでもよいし又はそれと同一でもよい。上述したように、情報アイテムは、グループ編成されてもよいし、アイテムに対してここに述べるようにグループ処理されてもよい。
【００２８】
ネットワークは、パブリックネットワーク、プライベートネットワーク、インターネット（即ちグローバルインターネットワーク又はネットワーク）、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、非ＴＣＮ／ＩＰネットワーク又はワイヤレスネットワークを含むいかなる形式の適当なネットワークでもよい。当業者であれば、このようなネットワークの容量をストリーミングデータに比して制限できることが理解されよう。例えば、ストリーミングデータは、１メガバイト／秒（ＭＢｓ）のレートで供給されるが、ネットワークの容量は、２０−５０キロバイト／秒（ＫＢｓ）しかないことがある。この点に関して、ネットワークの制限された容量は、ストリーミングデータをリアルタイムで配布することを要求する。
【００２９】
ストリーミングデータは、ステップ２１０に示すように、ストリーミングデータソースから受け取られる。ストリーミングデータソースは、株式取引所、企業又は金融情報ストリーミングデータソースでよく、そして周期的に更新される情報アイテムは、金融相場（例えば、指標相場又は個々の株式相場）でよい。
【００３０】
その後、ストリーミングデータの周期的に更新される情報アイテムは、ステップ２２０に示すように、ストリーミングデータの全更新レート（Ｕa）と、ネットワークの容量（Ｃ）とに基づくサンプリングレートでサンプリングされる。換言すれば、サンプリングレートは、Ｕa及びＣの関数として計算される。ストリーミングデータの周期的に更新される情報アイテムをサンプリングすると、本質的に受け取られたストリーミングデータのサブセットであるサンプリングされたデータストリームが形成される。変化する環境では、Ｕa及びＣを、例えば、少なくとも１分又は２分ごとの割合で、当業者に知られた従来の方法を使用して動的に決定することができる。この環境では、サンプリングレートが、動的に決定されたＵa及びＣに基づくので、サンプリングレートそれ自身は、Ｕa及びＣの変化に応答して動的に調整される。
【００３１】
特定例では、世界的規模の金融相場データが、世界中の５０の株式取引所から収集されて、収集センター（例えば、Ｙａｈｏｏ！のカリフォルニアデータセンター）から複数のデータセンター（例えば、世界中のＹａｈｏｏ！のデータセンター）へ配布される。この例では、Ｕaの典型的な値は、数ＫＢｓから、ピーク時間における１ＭＢｓを越える範囲となる。カリフォルニアの収集センターから米国の東海岸のデータセンターへの帯域巾は、１００ＫＢｓから４００ＫＢｓの範囲であり、一方、その収集センターからインド又は中国のデータセンターへの帯域巾は、通常、１０ＫＢｓから８０ＫＢｓの範囲である。各データセンターに対するサンプリングレートは、収集センターからこれらデータセンターへのネットワーク帯域巾に合致するように動的に調整される。
【００３２】
サンプリングされるデータストリームの関連性は、周期的に更新される情報アイテムの各々の「重要性」を表わすファクタ（Ｋqmin）、及び／又は各周期的に更新される情報アイテムの個々の更新レート（Ｕq）に基づいてストリーミングデータの周期的に更新される情報アイテムをサンプリングすることにより高めることができる。周期的に更新される情報アイテムの各々に対するＫqminは、以前の経験に基づいて（例えば、周期的に更新される情報アイテムのどれが、どのユーザによりどのデータセンターを使用して頻繁にアクセスされるか又はより一般的であると思われるかを決定することにより）決定することができる。例えば、米国をベースとするデータセンターに対する周期的に更新される情報アイテムが金融相場である場合には、頻繁にアクセスされるＮＹＳＥ相場のＫqminを、他の国々の株式取引所のあまり頻繁にアクセスされない相場のＫqminより大きくすることができる。ここに述べる他のパラメータと同様に、Ｋqminは、単一情報アイテム、例えば、特定の会社に対する現在相場、又はアイテムのグループ、例えば、特定の会社の有価証券の多数の変動に対する現在相場に関与してもよいし、或いは少なくともＫqminのようなパラメータを決定してサンプリングプロセスに適用するときにアイテムのグループが１つのアイテムとして処理される場合には無関係のアイテムに関与してもよい。
【００３３】
Ｋqminは、ネットワーク帯域巾を考慮せずに、その情報アイテムに対する更新レートが少なくともそのレートである場合に、ストリーミングデータが送信される最小レートである。現在の開示が分かると、周期的に更新される情報アイテムに対するＫqmin値は、サンプルデータストリームが配布されるデータセンターに依存し得ることが当業者に明らかであろう。例えば、データセンターが主としてインドのユーザにサービスする場合には、インドの金融相場が、中国の金融相場より重要になる。しかしながら、データセンターが主として中国のユーザにサービスする場合には、中国の金融相場をインドの金融相場より高い重要性にすることができる。しかしながら、例えば、ＮＹＳＥ及びＮＡＳＤＡＱからの金融相場は、データセンターによりカバーされる地域に関わりなく高い重要性である。
【００３４】
データセンターの典型的なユーザは、そのデータセンターから得られたデータからサイト又はページを構成するウェブサーバーからウェブサイト又はウェブページにアクセスする個人でよい。例えば、ユーザは、ウェブブラウザ又は他のインターネットクライアントを使用して、ニュース、相場及び他の情報を含む自分のＹａｈｏｏ！ウェブページにアクセスするＹａｈｏｏ！ユーザでよい。
【００３５】
変化する環境を受け入れるために、サンプリングレートは、ネットワークを圧倒せずに且つ環境の変化を受け入れるように動的に調整されたサンプリングレートで、サンプリングされたデータストリームを適時の形態で配布できるように、動的に決定されたＵa、Ｃ、Ｋqmin及びＵq値に基づくことができる。更に、サンプリングレートは、各周期的に更新される情報アイテムに対して個々に調整することができ、従って、周期的に更新される情報アイテムを異なる更新レートで代表的に正確にサンプリングすることができる。
【００３６】
一例として、ピークマーケット時間中に、Ｕaは、約１ＭＢｓであり、一方、使用可能なネットワーク帯域巾Ｃは、東海岸のデータセンターに対して約２００ＫＢｓであり、そしてインドのデータセンターに対して４０ＫＢｓである。ダウ・ジョーンズ工業平均のような指数やＮＡＳＤＡＱ指数の場合に、収集センターは、更新レートＵqが４００バイト／秒のストリームを受け取る。収集センターは、更新レートＵqが株式記号（例えば、ＩＢＭ又はＹＨＯＯ）当たり１００から４００バイト／秒の各個々の株相場を受け取り、一方、通常あまり取引されない株は、更新レートが数バイト／秒に過ぎない。
【００３７】
東海岸のデータセンターでは、Ｋqminは、ＮＹＳＥ、ＮＡＳＤＡＱ指数については２００バイト／秒であり（即ち平均で、他のサンプルを受信するたびに送信する）、Ｋqminは、ある個々のＮＹＳＥ、ＮＡＳＤＡＱ又はＡＭＥＸ株相場（ＩＢＭ又はＹＨＯＯのような）については４０から１００バイト／秒であり、そしてＫqminは、他の全ての株相場については１０から４０バイト／秒である。あまり頻繁に変化しないチェッカー記号については、サンプルレートは、そのチェッカー記号の更新レートがＫqmin未満であるときには、Ｋqminより低くてもよい。
【００３８】
インドのデータセンターでも、Ｋqminは、ＮＹＳＥ、ＮＡＳＤＡＱ指数については２００バイト／秒であるが、Ｋqminは、４０から４００バイト／秒の充分なレートで収集センターに受け取られる幾つかのインド株相場については４０から２００バイト／秒でよい。
【００３９】
サンプリングされたデータストリームは、ステップ２３０に示されたように、ネットワークに配布される。サンプリングされたデータストリームの配布は、ＴＣＰ／ＩＰトランスポートのような従来の方法を使用して遂行することができる。
【００４０】
滅多に更新されない周期的に更新される情報アイテムは、Ｕa、Ｃ、及び任意であるが、Ｋqmin及び／又はＵqに基づいて、不充分と考えられるレートでネットワークに配布するようにサンプリングされてもよい。この環境において、このように滅多に更新されない情報アイテムは、ステップ２４０に示すように、ネットワークに分散するように選択することができる。その選択された周期的に更新される情報アイテム（例えば、滅多に更新されない情報アイテム）のこの分散は、以下、「スイープ」ステップ（又はフェーズ）と称される。
【００４１】
図３は、本発明によりインターネットを経て配布するために、周期的に更新される金融相場を含むストリーミングデータをサンプリングするプロセス３００の一連のステップを示すフローチャートである。このプロセス３００は、ステップ３１０に示すように、ストリーミングデータソースからストリーミングデータを受信することを含む。
【００４２】
その後、ステップ３２０に示すように、ストリーミングデータの周期的に更新される金融相場の各々は、ストリーミングデータの動的に決定される全更新レート（Ｕa）、ネットワークの動的に決定される容量（Ｃ）、周期的に更新される情報アイテムの各々の所定の重要性（Ｋqmin）、及び周期的に更新される情報アイテムの各々の動的に決定される更新レート（Ｕq）に基づくサンプリングレートを使用してサンプリングされる。
【００４３】
周期的に更新される金融相場をサンプリングすると、ステップ３２０に示すように、サンプリングされたデータストリームが形成される。このサンプリングされたデータストリームは、次いで、ステップ３３０に示すように、インターネットに配布される。プロセス３００では、選択された周期的に更新される金融相場（例えば、ストリーミングデータにおいて滅多に更新されない金融相場）も、ネットワークに配布される（ステップ３４０を参照）。
【００４４】
図４は、上述したサンプリング、配布及び分散ステップを遂行するためのプロセスの種々のフェーズを示すフローチャートである。図示されたように、このプロセスは、初期化されるサーバーによるか又はプロセスをスタートする他の理由で通常トリガーされる初期化フェーズ（フェーズ１）で始まる。このプロセスをスタートするとき（又はこのフェーズが丁度完了するとき）を、「方法スタート時間」と称する。フェーズ１では、メモリ内データベースが初期化され、必要なシステム及び相場統計情報が計算され、そしてＳＳＵフェーズ及びスイープフェーズ（各々以下で詳細に述べる）のスタートタイマーが次のように開始される。特に、メモリ内データベース及びＴ0が初期化され、Ｉu、Ｉs、Ｉp、Ｉm及びＫqminの値がコンフィギュレーションファイルから得られる。
【００４５】
Ｔu、Ｎu、Ｎa、Ｕa、Ｎsu、Ｎdu、Ｎs、Ｎd、Ｃ、Ｃp、ｔ0、ｎqa、ｎq、ｕq、ｓqa、ｓq、ｒq、Ｋqmax及びｆqの値は、コンフィギュレーションファイルから得ることができる。或いは又、プロセスは、受信した全てのストリーミングデータを、時間周期Ｉpの間サンプリングせずに分布待ち行列に入れるような付加的なフェーズ（フェーズ１Ａ）を含むことができ、このプロセスを監視して、コンフィギュレーションファイルから得られない変数に適した値を決定することができる。
【００４６】
又、フェーズ１では、ＳＳＵフェーズタイマー及びスイープフェーズタイマーがスタートされる（以下に述べる）。タイマーインターバルは、各々、Ｉu及びＩsである。このフェーズでは、プロセスは、必要なスレッドをスタートして、配布待ち行列からデータを連続的に得、そしてそれをネットワークへ送信して、システム統計情報Ｎsu、Ｎdu、Ｎs及びＮdを必要に応じて更新する。
【００４７】
フェーズ２では、ストリーミングデータがサンプリングされ、そしてサンプリングされたデータストリームがネットワークを経て配布される。このフェーズにおけるアクティビティは、金融相場に対する更新のような周期的に更新される情報アイテムの受信によりトリガーされてもよい。このフェーズでは、受信されたストリーミングデータは、次のようにサンプリングされる。
１．現在システム時間Ｔを得る。
２．既存のデータに、受信した周期的に更新される金融相場更新をオーバーライトし、ｆqをセットする。
３．ｕsを計算する。ｕs≦Ｋqminの場合には、周期的に更新される金融相場更新を配布待ち行列に入れ、ｔq＝Ｔをセットし、ｆqをクリアし、そしてフェーズ２のステップ５へ進む。さもなければ、フェーズ２のステップ４へ続く。
４．Ｋqminを計算し、ｕs≦Ｋqminの場合には、周期的に更新される金融相場更新を配布待ち行列に入れ、ｔq＝Ｔをセットし、ｆqをクリアする。
５．他の相場統計情報（即ち、ｎq、ｓq、ｎqa、ｓqa）及びシステム変数（Ｎa、Ｎs）を更新する。
【００４８】
フェーズ３（「ＳＳＵフェーズ」と称される）は、ＳＳＵタイマーの時間切れによりトリガーされる。このフェーズでは、多数の方法及び金融相場統計情報が動的に決定されるか（従来のネットワーク及び環境監視技術を使用して計算又は決定される）、又は次のように動的に更新される。より詳細には、計算又は決定された量は、Ｃ及びおそらくＫqminを含む。更新された値は、ＣＰ、Ｔu、Ｎu、Ｎsu、Ｎduを含む。次いで、ＳＳＵタイマーがリセットされ、フェーズがフェーズ２へ変化する。
【００４９】
フェーズ４（「スイープフェーズ」と称される）は、スイープタイマーによりトリガーされる。このフェーズでは、メモリ内データベースが走査されると共に、ストリーミングデータにおいて更新されているが、Ｉmにより示された最終時間周期中にインターネットにまだ配布されていない周期的に更新される金融相場が配布される。この基準を満足する金融相場及び他の情報アイテムは、「選択された周期的に更新される金融相場」と称される。このフェーズでは、現在システム時間Ｔが得られ、メモリ内データベースが走査され、そして周期的に更新される金融相場が検索される。次いで、Ｔ−ｔq≧Ｉmで且つｆqがセットされた各相場に対して、金融相場が配布されそしてｆqがクリアされる。次いで、スイープタイマーがリセットされ、フェーズがフェーズ２へ変化する。
【００５０】
本発明による方法は、ソフトウェア及びハードウェア、例えば、メモリ内データベースをもつＦｒｅｅＢＳＤオペレーティングシステムにおけるモジュラーＣ／Ｃ＋＋プログラミング言語ライブラリーを介して効率的に実施することができる。しかしながら、当業者であれば、他のプログラミング言語（Ｊａｖａ（登録商標）、Ｐｅｒｌ、ビジュアルベーシック及びパスカルのような）及び他のオペレーティングシステム（ウインドウズ、ソラリス及びリナックスのような）を使用して、本発明を実施できることも理解されよう。
【００５１】
ここに述べた本発明の実施形態とは別の種々の形態を使用して、本発明を実施してもよいことが理解されよう。特許請求の範囲は、本発明の範囲を規定し、そして特許請求の範囲内の方法及びその等効物が本発明により包含されるものとする。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施形態が使用されるネットワークシステムを示すブロック図である。
【図２】本発明の一実施形態によるプロセスにおける一連のステップを示すフローチャートである。
【図３】本発明の別の実施形態によるプロセスにおける一連のステップを示すフローチャートである。
【図４】サンプリング及び配布プロセスの種々の段階を示すフローチャートである。
【図１】
2005524150.tif 000003
【図２】
2005524150.tif 000004
【図３】
2005524150.tif 000005
【図４】
2005524150.tif 000006
【国際調査報告】
2005524150.tif 000007