(57)【要約】【課題】【解決手段】  本発明は、任意の種類の分散型ネットワークに適している。ここで、ネットワークは、種々の接続で異なるデータレートを有している。中央コンピュータシステムは、配布すべきデータを生成する。中央システムは、クライアントコンピュータに向けて配布すべき１又は複数のデータのスーパーセットを含む。スーパーセットは、スーパーセットのデータからサブセットのデータを抽出することにより、クラアントコンピュータに配布される。その後、当該サブセットのデータは、ネットワークアーキテクチャに関する情報に基づいて、選択されたクライアントのグループに向けて配布される。このようにして効率的な方法でデータ配布が実行され、２重にデータが配布されない。好ましくは、カウンタパフォーマンス又は中央コンピュータシステムに対するクライアント接続のデータレートに基づいて、クライアントに向けてサブセットが配布される。【選択図】  図４
2010514033.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して複数のクライアントに向けてデータセットを送信するコンピュータシステムであって、
スーパーセットのソート済みデータ要素を含むメモリと、
前記スーパーセットのソート済みデータから第１のサブセットのデータ要素と、該第１のサブセットとは異なる第２のサブセットのデータ要素とを抽出する前記メモリに関連付けられた抽出手段と、
第２のグループのクライアントが第１のグループのクライアントのサブセットとなる、前記第１及び前記第２のグループのクライアントを選択する前記メモリに関連付けられた選択手段と、
前記第１のグループの選択されたクライアントに向けて前記第１のサブセットを送信し、前記第２のグループの選択されたクライアントに向けて前記第２のサブセットを送信する前記抽出手段及び前記選択手段に関連付けられた通信手段と
を具備することを特徴とするコンピュータシステム。
【請求項２】
前記選択手段は、
ネットワークに対するクライアントの接続のデータレート、
クライアントに関連付けられたサブスクリプション
の少なくとも１つに基づいてクライアントのグループを選択する
ことを特徴とする請求項１記載のコンピュータシステム。
【請求項３】
前記スーパーセットのソート済みデータ要素は、
マーケット・バイ・オーダー・データ、
マーケット・バイ・レベル・データ／マーケット・バイ・プライス・データ
のデータの少なくとも１つに関するデータを含む
ことを特徴とする請求項１記載のコンピュータシステム。
【請求項４】
前記サブセットのデータ内における前記データ要素は、
前記スーパーセットの少なくとも一部の前記データ要素の少なくとも一部の差分変更として構築されたデータ、
前記スーパーセットの少なくとも一部の前記データ要素として構築されたデータ
の少なくとも１つを含むことを特徴とする請求項１記載のコンピュータシステム。
【請求項５】
前記メモリは、
前記選択手段によるアクセスが可能な領域を有し、
該領域は、
前記クライアントに関連付けられたサブスクリプションを格納する
ことを特徴とする請求項１記載のコンピュータシステム。
【請求項６】
クライアントに関連付けられた前記サブスクリプションは、
前記クライアントに対する前記接続の前記データレート、
前記クライアントからのカウンタパフォーマンス、
クライアントの権限
の少なくとも１つに基づくことを特徴とする請求項５記載のコンピュータシステム。
【請求項７】
前記抽出手段は、
前記スーパーセット内の変更、
ホールドバックタイマにより決められた所定時間間隔
の少なくとも１つに際して、前記スーパーセットのソート済みデータからサブセットのデータ要素のセットを抽出し、前記通信手段を使用することにより、前記選択されたクライアントのグループに向けて前記サブセットを送信する
ことを特徴とする請求項１記載のコンピュータシステム。
【請求項８】
前記メモリに関連付けられた比較手段
を更に具備し、
前記比較手段は、
前記スーパーセットのソート済みデータ要素内における変更の位置の少なくとも１つを検出し、該位置に基づいて、前記サブセットを受け取るクライアントに向けて当該位置に関連するサブセットを送信する
ことを特徴とする請求項１記載のコンピュータシステム。
【請求項９】
前記サブセットは、
前記変更が前記スーパーセット内のデータ要素の削除であった場合、追加のデータ要素を含む
ことを特徴とする請求項８記載のコンピュータシステム。
【請求項１０】
前記メモリは、
第２のスーパーセットのソート済みデータ要素を更に含み、
前記第２のスーパーセット内の前記データ要素は、
前記第１のスーパーセットからの１又は複数の前記データ要素を含む
ことを特徴とする請求項１記載のコンピュータシステム。
【請求項１１】
請求項１に係わる前記コンピュータシステムを含む電子交換。
【請求項１２】
ネットワークを介して複数のクライアントに向けてデータセットを送信するコンピュータシステムにより実現される方法であって、
スーパーセットのソート済みデータ要素から第１のサブセットと、該第１のサブセットとは異なる第２のサブセットとを抽出する抽出ステップと、
第２のグループのクライアントが第１のグループのクライアントのサブセットとなる、前記第１及び前記第２のグループのクライアントを選択する選択ステップと、
前記第１のグループの選択されたクライアントに向けて前記第１のサブセットを送信し、前記第２のグループの選択されたクライアントに向けて前記第２のサブセットを送信する送信ステップと
を含むことを特徴とする方法。
【請求項１３】
ネットワークに対するクライアントの接続のデータレート、
クライアントに関連付けられたサブスクリプション
の入力の少なくとも１つに基づいてクライアントのグループを選択するステップ
を更に含むことを特徴とする請求項１２記載の方法。
【請求項１４】
前記スーパーセットの少なくとも一部の前記データ要素の少なくとも一部の差分変更として構築されたデータ、
前記スーパーセットの少なくとも一部の前記データ要素として構築されたデータ
の少なくとも１つに従って、前記サブセット内の前記データを編集するステップ
を更に含むことを特徴とする請求項１２記載の方法。
【請求項１５】
前記クライアントに対する前記接続の前記データレート、
前記クライアントからのカウンタパフォーマンス、
クライアントの権限
の入力の少なくとも１つに基づいて、選択されたクライアントに前記サブスクリプションを関連付けるステップ
を更に含むことを特徴とする請求項１３記載の方法。
【請求項１６】
前記抽出ステップでは、
前記スーパーセット内の変更、
ホールドバックタイマにより決められた所定時間間隔
の少なくとも１つに際して、前記スーパーセットのデータ要素から前記サブセットを抽出し、通信手段を使用することにより、選択されたクライアントのグループに向けて前記サブセットを送信する
ことを特徴とする請求項１２記載の方法。
【請求項１７】
前記スーパーセット内における変更の位置の少なくとも１つを検出し、該位置に基づいて、前記サブセットを受け取るクライアントに向けて当該位置に関連するサブセットを送信するステップ
を更に含むことを特徴とする請求項１２記載の方法。
【請求項１８】
前記変更が前記スーパーセット内のデータ要素の削除であった場合、前記選択されたクライアントに向けて送信される前記サブセットに追加のデータ要素を追加するステップ
を更に含むことを特徴とする請求項１７記載の方法。
【請求項１９】
前記サブセットのデータは、
マーケット・バイ・オーダー・データ、
マーケット・バイ・レベル・データ／マーケット・バイ・プライス・データ
のデータの少なくとも１つに関するデータを含む
ことを特徴とする請求項１２記載の方法。
【請求項２０】
ソート済みデータ要素を管理するクライアントコンピュータであって、
ソート済みデータ要素に関するデータを含む更新メッセージを受信するインターフェースと、
ソート済みデータ要素に関するデータを格納し、ソート済みデータ要素のセットを含むメモリと、
複数の前記ソート済みデータ要素を表示するディスプレイと、
前記更新メッセージ内の前記データに基づいて、ソート済みデータ要素の前記セットを管理するメッセージハンドラと
を具備することを特徴とするクライアントコンピュータ。
【請求項２１】
前記更新メッセージ内の前記データに基づいて、前記格納されたソート済みデータ要素のセットに暗黙的な動作を実行する管理モジュール
を更に具備することを特徴とする請求項２０記載のクライアントコンピュータ。
【請求項２２】
前記暗黙的な動作は、
プッシュ動作、ポップ動作、削除動作の少なくとも１つの動作に関連する
ことを特徴とする請求項２１記載のクライアントコンピュータ。
【請求項２３】
前記更新メッセージ内の前記データは、
新たなデータ要素を追加する追加データ、
データ要素を除外する除外データ、
データ要素を変更する変更データ
を含む前記グループのデータから選択される
ことを特徴とする請求項２０記載のクライアントコンピュータ。
【請求項２４】
記憶媒体に格納される請求項１２に係わるコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおけるデータの配布に関し、特に、高いパフォーマンスの商取引システムにおける情報配布に関する。
【背景技術】
【０００２】
今日、ごく一般的に、コンピュータネットワークを介した情報の送信が行なわれている。技術の進歩により送信情報量が急激に増加している。この技術の進歩は、従来に比べてより速い速度でより多くの情報の送信及び処理を可能にする。また、新たなアプリケーションは、従来に比べてより多くの情報を必要とする。また更に、情報の重要性は、情報が売られると言ったビジネスの新たなフィールドに広がっている。
【０００３】
情報配布が最も不可欠な部分の一つであるコンピュータシステムの例として、電子商取引システムがある。
【０００４】
電子商取引における証券、デリバティブ、コモデティやその他の金融商品においては、ユーザに向けて配布する必要のある情報量が多い。これは、取引の決定、統計的計算やその他アセスメントを行なうために、ユーザが情報を必要とするためである。また、中央集権化の電子取引等に接続するユーザは、できる限り速く情報の取得を所望する。このようなケースにおいては、システム内のボトルネック又は他のレイテンシの問題を取り除くために、例えば、ハードウェアの更新により中央システムのパフォーマンスを上げるだけでは十分ではない場合がある。多くの場合、中央システムに対するユーザの接続を最新版にすることをユーザが拒否している可能性があり、これらボトルネックの原因は、結局はユーザ側にある。
【０００５】
従って、この種の中央システムにおいては、継続的のみならず、取引期間中における特定の時間や出来事が生じた時にもまた、多くの異なるユーザに向けて大量のデータを生成し配布する必要がある。そして、このようなデータの生成や配布は、効率的な方法でなされる必要がある。
【０００６】
電子情報を提供するシステムの一例が特許文献１に記載されている。特許文献１には、取引情報と複数タイプの電子情報とが同一データストリームで送信される種々のシステムが記載されている。電子取引提供側で使用されるサーバにおいて、同一データストリームで電子取引情報及び電子情報を提供するようにした場合、情報を分類するために対象装置で必要とされる演算処理を著しく増やす。特許文献１に開示されるシステムは、第１のデータストリームを、ユーザにより必要、表示、使用されうる複数の第２のストリームに選択的に分割することにより、この課題を解決する。複数の第２のデータストリーム各々は、第１のデータストリームからの複数の異なるタイプの電子取引情報を１又は複数含む。これにより、個々の対象装置においては、第１のデータストリームからの同一の電子取引情報を使用する場合よりも速く、第２のデータストリーム内の１又は複数の複数タイプの電子取引情報を選択的に必要、受信及び使用することが可能になる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開第２００５／０２７３４２１号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、この種のフィルタリングは多くの場合、極めて質が悪い。これは、ユーザ／クライアントが他のデータストリームにも興味を持つ場合が大いにあるためである。上述したシステムでは、電子情報のタイプに基づいて情報を分けているので、特に、制限された帯域幅接続の環境では不利となる。
【０００９】
従って、上述したシステムは、ユーザの接続のデータレートが制限され且つ、種々のユーザ間で接続のデータレートが変わるネットワークにおいては実用的ではない。
【００１０】
ある取引システムは、情報を配布するための他の機能を有するが、２重に情報を生成したり、２重に情報を送信したりすることをシステムに要求するといったこれらの解決は課題である。これらの解決策では、例えば、完全なデプス（depth）を含む（速い接続での）ユーザＡに対する１つのメッセージフローと、マーケットの制限された状況（上位Ｘレベル（top x levels））を含む（遅い接続での）ユーザＢに対する１つのメッセージフローとを生成する。すなわち、２つのメッセージは、上位Ｘレベルに関して２重の情報を含むであろう。この結果、中央システムのパフォーマンスと、中央及び周辺のネットワークにおけるトラフィックとの両方において、余分な負荷がもたらされる。
【００１１】
電子情報システムに関する他の課題は、多くの場合、情報を収集しそれを配布する中央プロセッサにある。プロセッサでは、情報受信等の他のタスクに対する時間よりも短い時間を用いて、２重に情報を収集しそれを配布する必要がある。そのため、システムにおける他の部分でボトルネックが生じる場合がある。
【００１２】
従来技術のシステムに関する他の課題は、データ配布に際して顧客によりもたらされるカウンタパフォーマンスを考慮していないことである。そのため、ある顧客は、不公平な待遇を経験する場合がある。
【００１３】
そこで、本発明は、より効率的な方法でデータを配布するための解決策を提供することを目的とする。
【００１４】
本発明は、データ接続の異なるデータレートを有するユーザに向けてデータを送出するための解決策を提供することを他の目的とする。
【００１５】
本発明は、帯域幅を効率化してデータを送出するための解決策を提供することを他の目的とする。
【００１６】
本発明は、データを２重に配布する必要性をなくし、データを送出するための解決策を提供することを他の目的とする。
【００１７】
データ送出時の顧客のカウンタパフォーマンスを考慮することを他の目的とする。
【課題を解決するための手段】
【００１８】
本発明の第１の側面によれば、上記及び他の目的をコンピュータシステムにより解決する。コンピュータシステムは、ネットワークを介して複数のクライアントに向けてデータセットを送信する。コンピュータシステムは、
スーパーセットのソート済みデータ要素を含むメモリと、
スーパーセットのソート済みデータ要素から第１のサブセットのデータ要素と、該第１のサブセットとは異なる第２のサブセットのデータ要素とを抽出するメモリに関連付けられた抽出手段と、
第２のグループのクライアントが第１のグループのクライアントのサブセットとなる、第１及び第２のグループのクライアントを選択するメモリに関連付けられた選択手段と、
第１のグループの選択されたクライアントに向けて第１のサブセットを送信し、第２のグループの選択されたクライアントに向けて第２のサブセットを送信する抽出手段及び選択手段に関連する通信手段と
を含む。
【００１９】
上述したコンピュータシステムは、より効率的な方法でデータを配布することができるという解決策を提供するといった利点を有する。２重にメッセージが、好ましくは、抽出又は送信されないため、システムは、より少ない帯域幅（データレート）で且つ、コンピュータシステム内のより少ないパフォーマンスを用いてデータを送信することができる。
【００２０】
システム内の装置は、インターフェースにより互いに接続される。ハードウェアインターフェースとソフトウェアインターフェースとの２つのタイプのインターフェースがある。
【００２１】
ハードウェアインターフェースは、プラグ、ソケット、ケーブルであり、それらを介して電子信号を送信する。例えば、ＵＳＢ、ファイアーウォール、イーサネット（登録商標）、ＡＴＡ／ＩＤＥ、ＳＣＳＩ、ＰＣＩ等である。
【００２２】
ソフトウェアインターフェース（プログラムミングインターフェース）は、言語、コード、メッセージである。プログラムは、このソフトウェアインターフェースをお互いの通信に使用したり、ハードウェアとの通信に使用したりする。例えば、ウィンドウズ（登録商標）、マック、リナックス等のオペレーションシステムや、ＳＭＴＰ ｅ−ｍａｉｌ、ＩＰネットワークプロトコル、周辺装置を稼動させるソフトウェアドライバー等である。
【００２３】
両タイプのインターフェースは、コンピュータシステム／ネットワーク内の内部及び外部装置を互いに通信させるために必要とされる。
【００２４】
用語”データ要素”は、データのユニットを名付けたものとして使用される場合がある。分割できないコンテキストと考えれられる場合もあれば、データ項目を含むコンテキストと考えられる場合もある。本明細書に係わるデータ要素は、分割できないと考えられても、また、データ項目を含んでいてもいずれであってもよい。例えば、データ要素は、価格、時刻（time）、価格及び時刻、マーケットメーカよりも前のトレーダ、反転価格（inverted price）、ボリュームやその他によるソート等のランキングルール、又は上述したランキングルールのいずれかの組み合わせによりソートされうる。
【００２５】
スーパーセットは、複数のクライアントに配布されるべき複数のデータ要素を含む場合がある。スーパーセットのデータ要素は、好ましくは、例えば、キャッシュメモリ、ＲＡＭ、ＤＲＡＭやその他である主記憶装置等のメモリ、又はハードディスク、ＵＳＢメモリやその他である補助記憶装置等のメモリに格納される。しかし、主記憶装置は、補助記憶装置に比べて高速であるので、タスクにとっては主記憶装置の方が好適である。
【００２６】
データ要素は、オーダー・ブック内のオーダーに関するデータを含む場合がある。オーダーは、一般に、クライアントにより発行される指示である。オーダーの多くは、特定又は複数の金融商品に関する売買オーダーである。しかし、多くの異なるタイプのオーダーが存在し、本明細書に係わるオーダーは、売買オーダーのみに限定されない。
【００２７】
データ要素の好ましい中身の例としては、トレーダー識別子、シリーズ（series）、売値（bid）又は買値（ask）、価格、個数、アカウント、クライアント、等のデータの少なくとも１つである。また、データ要素は、フリーテキストやその他等の他のフィールドを含んでいる場合もある。
【００２８】
サブセットは、スーパーセットのデータの抽出部分を含む場合がある。サブセットは、好ましくは、データ要素に関して互いにオーバーラップしていない。そのため、スーパーセットは、複数のサブセットにより表現されうる。
【００２９】
サブセット各々が含むべきいくつかのデータ要素は、中央コンピューターシステムのシステム管理者により選択される場合がある。例えば、スーパーセットの第１の部分を表現するサブセットは５レベルのデータ要素を含み、スーパーセットの第２の部分を表現するサブセットは、それ以降の１０レベルのデータ要素を含み、スーパーセットの第３の部分を表現するサブセットは、スーパーセット内の残りのデータ要素を含む場合がある。これは、一実施の形態であり、他の実施形態においては、スーパーセットを表現するために、より少ないデータ要素を含むより多くのサブセットが使用される場合もあれば、また、より多くのデータ要素を含むより少ないサブセットが使用される場合もある。
【００３０】
本発明の更なる実施形態においては、クライアントにより選択された複数のデータ要素を含むサブセットをクライアントが受け取ることができる。従って、個々の顧客のニーズに対してサブセットのサイズを調整できるであろう。また、サブセットのサイズ及び数は、決済（payment）や取引数、その他等の顧客のカウンタパフォーマンスに基づくであろう。より多くの例が後述に記載される。
【００３１】
コンピュータシステムにおける選択手段は、好ましくは、以下に示す少なくとも１つに基づいてクライアントのグループを選択する。
・ネットワークに対するクライアント接続のデータレート
・クライアントに関連付けられたサブスクリプション（subscription）
【００３２】
このようにコンピュータシステムは、クライアントに対する接続データレートを検出できるため、インテリジェント／セレクティブな方法でデータの配布がなされうる。データレートの検出は、データ接続におけるデータレートを測定、クライアントから受信した情報、メッセージ・バスからの情報、等によりなされる。そのため、選択手段は、データレート、サブスクリプションの組み合わせ、又はそれらの一つに基づいてクライアントのグループを選択する場合がある。他の状況においては、選択手段は、インフラの負荷に基づいてクライアントのグループを選択する場合もある。
【００３３】
データレート又は”インフラの負荷（infrastructure load）”に関する入力は、データ接続におけるデータレートの測定、中央システムのプロセッサの負荷を測定することにより取得されてもよい。クライアントコンピュータから受信したアプリケーションプログラムに関連する情報、ネットワーク監視ツールの使用により種々の区域での現在の帯域幅状況を測定する能力を持つインテリジェント・メッセージ・バス等のバスからの情報により取得されてもよい。従って、インフラ負荷は、電子交換でのマーケットにおける何らかの活動に関連している場合もある。
【００３４】
また更に、クライアントが、接続データレートに関する変更レベル（change-level）を中央システムに対して提供できてもよい。この場合、測定された接続データレートが変更レベルの上側を越えていれば、接続がビジーであり、より少ない情報が接続を介して送信されうる。測定された接続データレートが変更レベルの下側に留まっていれば、接続がビジーではなく、より多くの情報が送信されうる。この機能を提供することにより、システムは常に、特定のクライアントがデータレートに基づいた最適な情報のサービスを受けていることを確認できる。
【００３５】
また、クライアントから送られてきたオーダーが中央システムへの入力で妨げられないようにするため、中央システムが、上記に基づいて自身の情報配布を制御できてもよい。この場合、クライアントに対する接続において測定されたデータレートが高ければ、中央システムは、クライアントに向けて送信する予定のいくつかの情報を待機又はキャンセルすることに決める。この機能を提供することにより、交換から送られる他の情報のために接続がビジーにならないので、システムは常に、中央システムに対する特定のクライアントのオーダー／リクエストの到着を速くできるであろう。
【００３６】
スーパーセットのソート済みデータ要素は、好ましくは、以下に示すデータの少なくとも１つに関するデータを含む。
・マーケット・バイ・オーダー・データ
・マーケット・バイ・レベル・データ／マーケット・バイ・プライス・データ
【００３７】
しかし、いくつかのソート済みリスト内のデータが本発明に関して使用される場合もあり、上記データに限られない。上述したデータは、外部アプリケーションが入力データをソートするのが困難な場合に使用される可能性がある。既にソートされたデータを送信することにより、クライアントコンピュータは、受信データの処理が高速化する。
【００３８】
更に、サブセットのデータ内のデータ要素は、以下に示す少なくとも１つを含む。
・スーパーセットの少なくとも一部のデータ要素の少なくとも一部の差分変更（delta-change）として構築されたデータ
・スーパーセットの少なくとも一部のデータ要素として構築されたデータ
【００３９】
差分変更を送信することにより、有用な帯域幅が確保されうる。スーパーセット内のデータ要素の一部のみが変更された場合には、クライアントコンピュータ側でデータセットを更新するために、その部分の差分変更を送信するだけで良い場合がある。しかし、他の状況においては、クライアント側で使用されていないデータ要素を置換するため、１又は複数のデータ要素を送信する方がより効率的である場合もある。このようなケースにおいては、スーパーセットのデータのスナップショットが送信されうる。そして、使用されるべき帯域幅の量は、より簡単に計算及び予測できるようになる。
【００４０】
差分変更を用いて変更を送信することにより、毎回、全てのリストを提供する必要なく、リアルタイムにクライアントコンピュータ側で更新されたリストを維持できることになる。更に、各メッセージについては、毎回、少量の帯域幅が使用される。しかし、データの受信に際して、クライアントは、暗黙的に（implicit）、動作／計算を実行できる必要があるので、クライアントコンピュータ側においてロジックが必要となる。変更／更新のほとんどない長いリストが使用されるのが好ましい。
【００４１】
スナップショットによる変更の送信は、データ受信に際して、クライアントコンピュータがいくつかのロジックを適用する必要がなくなるため、クライアントコンピュータを簡略化できる。更に、ホールドバックタイマにより最大帯域幅を制限できるが、この場合、各メッセージがより多くの帯域幅を必要とする。更新／変更の多い短いリストに使用されるのが好ましい。
【００４２】
更に、上述したメモリは、選択手段によるアクセスが可能な領域を含む。この領域は、クライアントに関連付けられたサブスクリプションを格納する。この特徴を有することにより、選択手段は、クライアントのグループを容易に選択できる。これは、サブスクリプションが、顧客ニーズ、接続データレート、複数の取引、クライアントの出来高、マーケットメーカ等のクライアントステータス、その他等の情報を含む場合があるためである。
【００４３】
クライアントに関連付けられたサブスクリプションは、好ましくは、以下に示す少なくとも１つに基づく。
・クライアントに対する接続のデータレート
・クライアントからのカウンタパフォーマンス
・クライアントの権限
【００４４】
クライアントは、通常、サブスクリプションの情報に対して支払いを行なう必要があるので、サブスクリプションのサービスレベル又はクオリティレベルは、サブスクリプションの情報を変化させる。例えば、クライアントが取得できる情報がより多くなれば、クライアントはより多くの支払いを行なう。上述したように、サブスクリプションは、クライアントが有する接続に基づいてクライアントに関連付けられる場合がある。クライアントは、接続データレートに適したサブスクリプションを得るであろう。これは、特定量のデータのみをクライアントが受信できるように、クライアントは接続により制限される可能性があるためである。しかし、サブスクリプションはまた、クライアントからのカウンタパフォーマンスに基づいている場合もある。この場合、クライアントに対する接続は、通常、データレートに関するボトルネックの構成要素にはならない。そのため、クライアントに関連付けられるサブスクリプションは、カウンタパフォーマンスに応じて変更する場合もある。一例として、カウンタパフォーマンスは、クライアントアカウントでの決済又は出来高、クライアントにより提供される流動資産（liquidity）、クライアントが行なった取引数、クライアントから受信したデータ、その他等がなりうる。従って、クライアントがより多くの取引を行なうと、より良いサービス又はクオリティのサブスクリプションにアップグレードされるであろう。
【００４５】
クライアントは、特定の権限”クライアントの権限（client rights）”に関連付けられる場合もある。例えば、マーケット・メーカは、他のクライアントに比べて、いくつかの特権／権限を有する。いくつかの情報は、特定の権限に関連付けられており、それらの情報は、権限／特権を有するクライアントのみに送信される。
【００４６】
クライアントに対する接続データレートは、多くの異なる方法で測定されうる。少数の例としては（上述したように）、接続データレートの測定、クライアントにより提供される情報、当業者に周知である監視ツールを用いてデータ・メッセージ・バスにより提供される情報、の少なくとも１つである。
【００４７】
抽出手段は、好ましくは、以下に示すイベントの少なくとも１つに際して、スーパーセットのソート済みデータ要素からサブセットのデータ要素を抽出する。
・スーパーセット内の変更
・ホールドバックタイマにより決められた所定時間間隔
そして、通信手段を使用することにより、選択されたクライアントのグループに向けてサブセットを送信する。
【００４８】
サブセットの抽出及び送信の少なくともいずれかを行なうタイミングは、状況に応じて選択される場合がある。スーパーセット内の変更が頻繁に生じないのであれば、スーパーセット内の変更時にスーパーセットからデータ要素を抽出するようにすればより効率的である可能性がある。他の解決策では、ホールドバックタイマにより決められた所定時間間隔でデータ要素を抽出する場合が効率的である可能性がある。このようなケースにおいては、システム内での帯域幅の利用状況がより容易に予測できる。
【００４９】
更に、データ要素は、上記２つの組み合わせにより抽出される場合もある。例えば、データ要素は、デフォルトとして所定時間間隔で抽出されうるが、スーパーセット内に変更が生じないのであれば、情報を送信する必要が全くない。そのため、システムは、変更が生じているか否かをチェックし、スーパーセット内に変更が生じていなければ、データ要素を抽出しない、又は所定時間間隔でさえデータを送信しない。システムで変更が検出された後、再度、スーパーセット内に変更のない旨が検出されるまで、システムは、所定時間間隔でデータ要素の送信を開始する。システムは、変更が生じるまで待機し、再度、データ要素の送信を開始する。
【００５０】
そのため、コンピュータシステムは更に、メモリに関連付けられた比較手段を含む。比較手段は、スーパーセットのソート済みデータ要素内における変更の位置の少なくとも１つを検出する。そして、その位置に基づいて、サブセットを受け取るクライアントに向けて当該位置に関連するサブセットを送信する。更に、スーパーセット内における変更の結果として生じる隣接サブセット内の変更は、好ましくは、送信されるサブセットに追加される。そのため、例えば、変更がスーパーセット内のデータ要素の削除であれば、送信されるサブセットは、本来、別のサブセットに関連付けられる追加のデータ要素を含む。
【００５１】
更に、コンピュータシステム内のメモリは、第２のスーパーセットのソート済みデータ要素を含む。第２のスーパーセット内のデータ要素は、好ましくは、第１のスーパーセットからの１又は複数のデータ要素を含む。
【００５２】
そのため、２つのスーパーセットは、クライアントに対するデータの抽出及び送信に使用される場合がある。第２のスーパーセットは、好ましくは、第１のスーパーセットと同じように扱われる。しかし、第２のスーパーセットは、異なる方法でソートされたデータ要素を含んでいる場合があるので、変更がスーパーセット内における別の位置で生じてもよい。
【００５３】
本発明の第２の側面においては、上記及び他の目的を電子交換（electronic exchange）により解決する。電子交換は、上述したコンピュータシステムを含む。
【００５４】
コンピュータシステムは、電子交換における内蔵モジュールである場合もある。また、情報配布システムとして別々に販売されうるスタンドアローンモジュールであってよい。
【００５５】
本発明の第３の側面においては、上記及び他の目的をコンピュータシステムで実現される方法により解決する。コンピュータシステムは、ネットワークを介して複数のクライアントに向けてデータセットを送信する。方法は、
スーパーセットのソート済みデータ要素から第１のサブセットと、該第１のサブセットとは異なる第２のサブセットとを抽出する抽出ステップと、
第２のグループのクライアントが第１のグループのクライアントのサブセットとなる、第１及び第２のグループのクライアントを選択する選択ステップと、
第１のグループの選択されたクライアントに向けて第１のサブセットを送信し、第２のグループの選択されたクライアントに向けて第２のサブセットを送信する送信ステップと
を含む。
【００５６】
上述した方法は、より効率的な方法でデータを配布することができるという解決策を提供するといった利点を有する。２重にメッセージが、好ましくは、抽出又は送信されないため、方法は、コンピュータシステムにおける帯域幅及びパフォーマンスに影響を与えずに、データ送信することができる。
【００５７】
更に、方法は、以下に示す少なくとも１つに基づいてクライアントのグループを選択するステップを含む。
・ネットワークに対するクライアント接続のデータレート
・クライアントに関連付けられたサブスクリプション
【００５８】
このように方法は、クライアントに対する接続データレートを感知できるため、賢明な方法でデータの配布がなされうる。例えば、データレートの感知は、直接的な接続のデータレートを測定することにより、又はクライアントからの情報に基づいてなされる場合がある。他の解決策では、メッセージ・バスから情報を受信等することによりなされうる。そのため、選択手段は、データレート、サブスクリプションの組み合わせ、又はそれらの１つに基づいてグループを選択する場合がある。
【００５９】
更に、方法は、以下に示す編集の少なくとも１つに基づいてサブセット内のデータを編集するステップを含む。
・スーパーセットの少なくとも一部のデータ要素の少なくとも一部の差分変更（delta-change）として構築されたデータ
・スーパーセットの少なくとも一部のデータ要素として構築されたデータ
【００６０】
サブセット内のデータを編集することにより、有用な帯域幅が確保されうる。スーパーセット内のデータ要素の一部のみが変更された場合には、クライアントコンピュータ側でデータセットを更新するために、その部分の差分変更を送信するだけで良い場合がある。しかし、他の状況においては、クライアント側で使用されていないデータ要素を置換するため、１又は複数のデータ要素を送信する方がより効率的である場合もある。このようなケースにおいては、スーパーセットのデータのスナップショットが送信されうる。そして、使用されるべき帯域幅の量は、より簡単に計算及び予測できるようになる。
【００６１】
他の実施形態において、方法は、以下に示す入力の少なくとも１つに基づいて、選択されたクライアントにサブスクリプションを関連付けるステップを含む。
・クライアントに対する接続のデータレート
・クライアントからのカウンタパフォーマンス
・クライアントの権限
【００６２】
抽出ステップは、好ましくは、以下に示すイベントの少なくとも１つに際して、スーパーセットのデータ要素からサブセットを抽出する。
・スーパーセット内の変更
・ホールドバックタイマにより決められた所定時間間隔
そして、通信手段を使用することにより、選択されたクライアントのグループに向けてサブセットを送信する。
【００６３】
サブセットがいつ、どのようにして抽出されるかは、特定の状況に応じて選択される場合がある。例えば、スーパーセット内の変更が頻繁に生じないのであれば、スーパーセット内の変更時にスーパーセットからデータ要素を抽出するようにすればより効率的である可能性がある。しかし、比較的、速いスピードで継続して変更が生じるのであれば、解決策としては、ホードルバックタイマにより決められた所定時間間隔でデータ要素（スナップショット）を抽出するのがよい場合もある。このようなケースにおいては、システム内での帯域幅の利用状況がより容易に予測できるとともに、また、より帯域幅を効率的にする可能性がある。
【００６４】
そのため、システムは、データセットの一部のスナップショットを送信するように選択してもよい場合がある。スナップショットを用いる場合、スナップショットが送信されるべき時間を決めるために、ホールドバックタイマが使用される場合がある。例えば、上位４つのデータ要素のスナップショットは、１秒おきに送信される。このメッセージのサイズは、常に同じであろう（例えば、４バイト、１要素につき１バイト）。他の解決策では、更新が生じる都度、当該更新に係わるデータ要素が送信されるであろう。この間に１００の更新が生じるのであれば、各１バイトのデータ要素が１００個送信されるであろう。１００バイトは、１秒の間隔の間に送信される。この状況においては、帯域幅の観点からいえば、スナップショット及びタイマ技術を用いるのがより良い可能性がある。
【００６５】
本明細書内で上述したように、データ要素は、変更のタイミング及び時間間隔のタイミングといった２つの技術の組み合わせにより抽出される場合もある。
【００６６】
更に、方法は、以下のステップを含む場合がある。
・スーパーセット内における変更の位置の少なくとも１つを検出し、その位置に基づいて、サブセットを受け取るクライアントに向けて当該位置に関連するサブセットを送信するステップ。
【００６７】
これは、スーパーセット内の変更を含むサブセットのみが、抽出され、クライアントに向けて送信されるといった利点を有する。このように帯域幅及びプロセッサ時間等の他のシステムリソースは確保されるであろう。
【００６８】
また、方法は、以下のステップを含む。
・変更がスーパーセット内のデータ要素の削除であれば、選択されたクライアントに向けて送信されるサブセットに追加のデータ要素を追加するステップ。
【００６９】
これにより、第１のサブセット内のデータ要素の削除／除外は、第１のサブセットに続くサブセット内の最初のデータ要素が当該第１のサブセットに移動される必要があることを意味するので、データ要素の処理がクライアントコンピュータ側でなされるという利点を有する。
【００７０】
好ましくは、データのサブセットは、以下に示すデータの少なくとも一つに関連するデータを含む。
・マーケット・バイ・オーダー・データ
・マーケット・バイ・レベル・データ／マーケット・バイ・プライス・データ
【００７１】
本明細書で上述したように、上記データは、外部アプリケーションが入力データをソートするのが困難な場合に使用される可能性がある。既にソートされたデータを送信することにより、クライアントコンピュータにおいては、受信データの処理が高速化する。
【００７２】
本発明の第４の側面においては、上記及び他の目的をクライアントコンピュータにより解決する。クライアントコンピュータは、ソート済みのデータ要素を管理する。クライアントコンピュータは、
ソート済みデータ要素に関するデータを含む更新メッセージを受信するインターフェースと、
ソート済みデータ要素に関するデータを格納し、ソート済みデータ要素のセットを含むメモリと、
複数のソート済みデータ要素を表示するディスプレイと、
更新メッセージ内のデータに基づいて、ソート済みデータ要素のセットを管理するメッセージハンドラと
を含む。
【００７３】
上述したクライアントコンピュータは、コンピュータシステムから受信したデータをより効率的な方法で処理できるという解決策を提供するといった利点を有する。コンピュータのユーザが、オーダー・ブック内等の中央コンピュータシステムで起きていることを把握できるように、メモリ内のソート済みデータ要素は、所定時間間隔で更新される必要がある。そのため、クライアントコンピュータは、更新メッセージ内で受信した情報に基づいて、データ要素を扱うメッセージハンドラを含む。クライアントコンピュータは、差分変更を含む更新メッセージを受信した場合、当該差分変更をメモリに格納されたデータ要素に追加する。クライアントコンピュータは、データ要素を含む更新メッセージを受信した場合、正確且つ的確なデータをクライアントコンピュータのユーザに提供するため、メモリ内の古いデータを置換してもよい。
【００７４】
更に、クライアントコンピュータは、管理モジュールを含む場合がある。管理モジュールは、更新メッセージ内のデータに基づいて、格納されたソート済みデータ要素のセットに暗黙的な動作を実行する。この暗黙的な動作は、好ましくは、プッシュ動作、ポップ動作、削除動作、その他の少なくとも１つに関連する。
【００７５】
暗黙的な動作は、クライアントコンピュータのメモリ内に格納されたローカルデータセットにおいて、クライアントコンピュータにより実行される。この暗黙的な動作は、クライアントコンピュータ側でソート済みデータセットを生成するために、更新メッセージの中身に基づいて行なわれる。
【００７６】
更新メッセージ内のデータは、グループのデータから選択される場合がある。グループのデータは、以下を含む。
・新たなデータ要素を追加する追加データ
・データ要素を除外する除外データ
・データ要素を変更する変更データ
【００７７】
クライアントコンピュータは、更新メッセージ内のデータに応じて、当該データを受信すると、上述したような、特定動作を実行する。
【００７８】
本発明の第５の側面においては、上記及び他の目的をコンピュータプログラム製品により解決する。コンピュータプログラム製品は、上述した実施形態の少なくとも１つに係わり、記憶媒体に格納される。
【００７９】
本発明のこれら及び他の側面は、後述する実施形態を参照して明白及び明確に示されるであろう。
【図面の簡単な説明】
【００８０】
【図１】本発明で使用され、装置間の接続のデータレートがそれぞれ異なるコンピュータネットワークの概要の一例を示す図である。
【図２】一実施形態に係わる１つのスーパーセットのデータと３つのサブセットとを示す図である。
【図３】３つの異なるスーパーセットのデータを示す図である。
【図４】ネットワークにおける装置間の接続のデータレートがそれぞれ異なるコンピュータネットワークの概要の一例を示すとともに、異なるサブセットが異なる接続で配布される方法を示す図である。
【図５】メモリと抽出部と選択部と通信部と比較部とインターフェースとを具備するコンピュータを示す図である。
【図６】クライアントコンピュータ側でサブセットのデータにデータ要素を追加する場合の一例を示すとともに、クライアントコンピュータにより実行される暗黙的な動作の一例を示す図である。
【図７】クライアントコンピュータ側で２つのサブセットを含むデータのセット内にデータ要素を追加する場合の一例を示すとともに、クライアントコンピュータにより実行される暗黙的な動作の一例を示す図である。
【図８】クライアントコンピュータ側で３つのサブセットを含むデータのセット内にデータ要素を追加する場合の一例を示すとともに、クライアントコンピュータにより実行される暗黙的な動作の一例を示す図である。
【図９】更新メッセージの一例と、クライアントコンピュータ側で１つのサブセットを含むデータのセットのポジション４からデータ要素を除外する場合の一例と、クライアントコンピュータにより実行される暗黙的な動作の一例とを示す図である。
【図１０】更新メッセージの一例と、クライアントコンピュータ側で２つのサブセットを含むデータのセットのポジション４からデータ要素を除外する場合の一例と、クライアントコンピュータにより実行される暗黙的な動作の一例とを示す図である。
【図１１】更新メッセージの一例と、クライアントコンピュータ側で３つのサブセットを含むデータのセットのポジション４からデータ要素を除外する場合の一例と、クライアントコンピュータにより実行される暗黙的な動作の一例とを示す図である。
【図１２】異なるサブセット内のデータ要素を更新する更新メッセージの一例を示す図である。第１のサブセット内で更新がある場合、全てのクライアントが更新メッセージを受信するであろう。第２のサブセット内で更新がある場合、クライアントＢ及びＣのみが更新メッセージを受信するであろう。第３のサブセット内で更新がある場合、クライアントＣのみが更新メッセージを受信するであろう。
【図１３】クライアントコンピュータ側でサブセットを更新するために、どのような変更がなされるかを示す図である。この場合、変更されたデータ要素を送信することにより、変更がなされる。
【図１４】クライアントコンピュータ側でサブセットを更新するために、どのような変更がなされるかを示す図である。この場合、データ要素の差分変更とデータ要素とを送信することにより、変更がなされる。
【図１５】クライアントコンピュータ側でサブセットを更新するために、どのような変更がなされるかを示す図である。この場合、スーパーセットのスナップショットを送信することにより、変更がなされる。
【発明を実施するための形態】
【００８１】
本明細書においては、いくつかの特定の用語が使用される。これらの記載を以下に示す。
【００８２】
ＭＢＯ−マーケット・バイ・オーダー（Market By Order）−図３には、このタイプのメッセージ１３が図示される。このタイプのメッセージフローは、１証券（instrument）に関するオーダー・デプス（order depth）内で生じるオーダー・ブック（order book）の変更を含む。各変更は、メッセージ内で差分変更により表現されるであろう。外部アプリケーションは、このオーダー・ブックに関するそれらのオーダー・デプスを組み立てるため、この情報を使用し、実際のオーダー・ブックの追跡を維持できる。上位Ｘレベルで生じるオーダー変更のみが配布されるであろうと言える。そうすることにより、外部アプリケーションは、それらのレベルに関するオーダー・デプスのコピーを有するであろう。
【００８３】
ＭＢＰ−マーケット・バイ・プライス（Market By Price）−このタイプのメッセージ１１は、プライス・レベルにおける情報を含む。プライス・レベルは、各レベルにおけるトータルボリュームのサマリーとともに、マーケット内に存在する。上位Ｙのプライス・レベルのみが配布されるであろうと言える。
【００８４】
一例としてのＭＢＯは、本発明の理解を簡単にするため、銘柄（description）に関する支援として使用されるであろう。このシステムの例では、帯域幅の異なるタイプのユーザを支援するため、３つの異なるＭＢＯのレベルを配布する。しかし、本発明は、ＭＢＯ又はＭＢＰメッセージ情報と一体であるだけでなく、任意のタイプのソート済みのリストと一体であっても有用である。
【００８５】
本発明の詳細について図を参照して説明する。
【００８６】
図１は、フロントエンドコンピュータ１と、バックエンドシステム２と、ゲートウェイ又はルータ３とを具備する中央コンピュータシステムを示す。各装置間は、種々の太さを有するライン４により示される接続がなされている。ラインの太さは、帯域幅（データレート）を示す。太いラインは高いデータレートを有し、細いラインは低いデータレートを有している。図１に示す３つのフロントエンドコンピュータは、画面上に文字を有しており、この文字は、ユーザＡ、ユーザＢ、ユーザＣに属するクライアントコンピュータであることを示している。
【００８７】
図２は、スーパーセットのデータ７を示している。この例では、スーパーセット７は、データ８、９、１０の３つのサブセットに分割されている。スーパーセットは、より多くのサブセットに分割されうる。この場合、サブセット各々は、より少ないデータ要素を含む。また、スーパーセットは、より大きなデータ要素を含むより少ないサブセットに分割されうる。何個のサブセットでスーパーセットを表現するかは、特定状況各々や本発明で使用されるシステムに基づいて決められるのが好ましい。しかし、本明細書においては、本発明の理解を簡単にするため、スーパーセットが３つのサブセットに分割される場合を選択する。第１のサブセット８は、５個のデータ要素（１〜５）を含み、第２のサブセット９は、１５個のデータ要素（６〜２０）を含み、第３のサブセットは、２０を越えるデータ要素、例えば、２１〜３０個のデータ要素を含む。
【００８８】
図３には、３つの異なる方法、すなわち、プライス・デプス（ＭＢＰ）１１、プライス・スタティスティックス１２、オーダー・デプス（ＭＢＯ）１３で表現されるデータを含む３つのスーパーセットの一例が示される。
【００８９】
図４は、図１に示すシステムに比べて若干異なるシステムが示される。また、図４は、スーパーセットのサブセットが異なる接続を介して送信される可能性のあることを示している。
サブセットは、データレートの異なる接続に関連付けられている。例えば、中央システム２とクライアントＡとを接続している最も太いデータ接続は、全てのスーパーセットを送信できる。それよりも遅いデータ接続は、第１及び第２のサブセット１７をクライアントＢに向けて送信できる。最も遅いデータ接続は、第１のサブセット１８をクライアントＣに向けて送信できる。この例では、中央システム２は、スーパーセットのデータを２個含んでいるが、中央システムは、１又は、３、４、５〜１５又は１００、２００、５００等のより大きな複数のデータ要素を含んでもよい。スーパーセットのデータの数は、本発明で使用されるアプリケーションに依存する。
【００９０】
図５は、本発明に係わるコンピュータシステム１９を含む電子装置を示す。コンピュータシステム１９は、メモリ２０と、抽出部２１と、選択部２２と、通信部２３と、比較部２４と、インターフェース２５とを含む。メモリ２０は、２つのスーパーセットと、サブスクリプションを格納するための領域とを含む。
【００９１】
以下、本発明の詳細について図を参照して説明する。サブセットがどのようにクライアントコンピュータに向けて送信され、クライアントコンピュータが中央システムから送られてくる更新メッセージ内で受信したデータをどのように好ましく管理するか、の詳細について説明する。
【００９２】
本明細書において提供される例では、３つのクライアント、Ａ、Ｂ、Ｃが、異なる接続データレートを有しているものとして説明する。
【００９３】
クライアントＡは、狭い帯域幅であり、中央システムに対して制限された接続を有している。そのため、クライアントＡは、オーダー・デプス全てを受け取れない。従って、クライアントＡは、当該オーダー・デプス内の上位５個のオーダーのみの受け取りを所望する。
【００９４】
クライアントＢは、標準的なメンバークライアントであり、大企業５の一つで取引を行なっている。クライアントＢは、中央システム２に対して通常の接続を有している。クライアントＢは、上位２０個のオーダーの受け取りを所望する。
【００９５】
クライアントＣは、ハイスタンダードなクライアントであり、中央ゲートウェイ３に接続されている。クライアントＣは、ハイパフォーマンスな接続を有している。クライアントＣは、全てのオーダー・デプスの受け取りを所望する。
【００９６】
以下、スーパーセット７のデータからの情報の配布に際して、本発明が好ましくどのように処理を行なうかの一例について説明する。
・クライアントＡは、第１のサブセット８のブロードキャストにサブスクリプションをセットする。
・クライアントＢは、第１のサブセット８及び第２のサブセット９のブロードキャストにサブスクリプションをセットする。
・クライアントＣは、第１のサブセット８、第２のサブセット９、第３のサブセット１０のブロードキャストにサブスクリプションをセットする。
【００９７】
いずれもクライアント自身でサブスクリプションをセットする。しかし、この設定は、システム管理者、又はシステム自体がデータレートやその他等の複数の所定のパラメータに基づいて自動的に行なうことにより、中央コンピュータシステム２側で集中的になされるようにしてもよい。
【００９８】
中央システム２は、異なるタイプの帯域幅のクライアントを支援するために、オーダー・ブックの変更を配布する方法を有している。これは、異なるタイプのクライアントに対してメッセージを複製する必要性をなくし、情報を配布する手法である。
【００９９】
オーダー・ブック７は、購入側のオーダーを３０個含んでいる。第１のサブセット８は、上位５個のオーダーに対して送出されている。第２のサブセット９は、６〜２０のポジションのオーダーに対して送出されており、第３のサブセット１０は、残りのレベルに対して送出されている。
【０１００】
そのため、クライアントＡは、上位５個のオーダーの正確な状況を有している。クライアントＢは、上位２０個のオーダーの正確な状況を有し、最後に、クライアントＣは、全てのオーダー・デプスの状況を有している。図６〜図８には、各クライアントの状況の概要が示される。これは、各クライアントコンピュータのメモリ内にどのように情報が格納されているかを示しているが、必ずしもこのような方法でコンピュータの画面に表示されない。
【０１０１】
以下のセクションでは、この種の解決を支援するために、システム内において、追加オーダーがどのように扱われるかについて説明する。オーダー・ブック変更が差分変更として配布されるといった解決策に基づいている。クライアントＡに関しては図６に例示し、クライアントＢに関しては図７に例示し、クライアントＣに関しては図８に例示する。
【０１０２】
[追加（Add）]
レベル１〜５−１〜５の間のランキングポジションにある新たなオーダー
本発明に係わるシステムは、第１のサブセットの追加オーダー２６であるブロードキャストを生成するであろう。全てのクライアントは、このブロードキャスト２６を受信するであろう。
【０１０３】
図６において、クライアントＡは、オーダー２６を挿入し、この変更により影響される全ての他のオーダーに関するランキングポジションを更新する。ポジション５を有していたオーダーは、ポジション６を有することになり、フロントエンドアプリケーションにより取り除かれるであろう。クライアントは、第２のサブセット９のメッセージを受け取らないので、このオーダーに関するいずれのオーダーの変更も受信しないためである。
【０１０４】
図７において、クライアントＢは、オーダー２６を挿入し、この変更により影響される全ての他のオーダーに関するランキングポジションを更新する。ポジション２０を有していたオーダーは、ポジション２１を有することになり、好ましくは、フロントエンドアプリケーションにより取り除かれる。クライアントＢは、第３のサブセット１０のメッセージを受け取らないので、このオーダーに関するいずれのオーダーの変更も受信しないためである。
【０１０５】
図８において、クライアントＣは、オーダー２６を挿入し、この変更により影響される全ての他のオーダーに関するランキングポジションを更新する。クライアントＣは、３つブロードキャスト全てを受けることにより、完全なオーダー・デプスのビューを有しているので、フロントエンドアプリケーションは、いずれのオーダーも削除する必要がない。
【０１０６】
以下、第２のサブセット及び第３のサブセットに関するサブセットの追加オーダーメッセージを送信する場合の例について説明する。図には示さないが、上記例で記載した同一方法を適用する。
【０１０７】
レベル６〜２０−６〜２０の間のランキングポジションにある新たなオーダー
本発明に係わるシステムは、第２のサブセットの追加オーダーであるブロードキャストを生成するであろう。クライアントＢ及びクライアントＣのみがこのブロードキャストを受信するであろう。クライアントＡは、このメッセージを受信しないので、中央システムに対するクライアントＡのネットワーク接続は、この変更による影響を受けないであろう。
【０１０８】
クライアントＢは、オーダーを挿入し、この変更により影響される全ての他のオーダーに関するランキングポジションを更新する。ポジション２０を有していたオーダーは、ポジション２１を有することになり、好ましくは、フロントエンドアプリケーションにより取り除かれる。クライアントＢは、第３のサブセット１０のメッセージを受け取らないので、このオーダーに関するいずれのオーダーの変更も受信しないためである。
【０１０９】
クライアントＣは、オーダーを挿入し、この変更により影響される全ての他のオーダーに関するランキングポジションを更新する。クライアントＣは、３つブロードキャスト全てを受けることにより、完全なオーダー・デプスのビューを有しているので、フロントエンドアプリケーションは、いずれのオーダーも削除する必要がない。
【０１１０】
レベル２１＞−ランキングポジション２１を越える新たなオーダー
本発明に係わるシステムは、第３のサブセットの追加オーダーであるブロードキャストを生成するであろう。クライアントＣのみがこのブロードキャストを受信するであろう。クライアントＣは、オーダーを挿入し、この変更により影響される全ての他のオーダーに関するランキングポジションを更新する。クライアントＣは、３つブロードキャスト全てを受けることにより、完全なオーダー・デプスのビューを有しているので、フロントエンドアプリケーションは、いずれのオーダーも削除する必要がない。
【０１１１】
クライアントＡ及びクライアントＢは、このメッセージを受信しないであろう。そのため、中央システムに対するクライアントＡ及びクライアントＢのネットワーク接続は、この変更による影響を受けないであろう。
【０１１２】
[除外（Remove）]
以下の図９〜図１１に示される例は、サブセットの除外オーダーのメッセージが送信された場合に、データセットがどのように扱われるかを示す。
【０１１３】
レベル１〜５−１〜５の間のランキングポジションＸにあるオーダーの除外
本発明に係わるシステムは、第１のサブセットの除外オーダーであるブロードキャストを生成するであろう。全てのクライアントは、このブロードキャスト２７を受信するであろう。ブロードキャスト２７は、好ましくは、２つの項目を含む。１つはポジションＸの除外であり、もう１つはポジション５への追加である。このポジション５への追加は、オーダーの削除によりポジション６から５に移動されるオーダーを含む。また、システムは、ポジション２１から２０に移動されるオーダーに関するポジション２０における第２のサブセットの追加オーダー２８を生成するであろう。これを処理する他の方法では、ポジション２０に対する第１のサブセット２７内において、追加レコードを余分に有しているであろう。
【０１１４】
クライアントＡは、ポジションＸのオーダーを除外し、この変更により影響のある全ての他のオーダーに関するランキングポシジョンを更新するであろう。ポジション４を有していたオーダーは、ポジション３になり、その他のオーダーも同様に更新されるであろう。また、クライアントＡは、メッセージ内の追加オーダーを用いて、５ｔｈポジションに当該追加オーダーを挿入するであろう。クアイアントＡは、第２のサブセットのオーダーであるブロードキャストを受信しないであろう。
【０１１５】
クライアントＢは、ポジションＸのオーダーを除外し、この変更により影響のある全ての他のオーダーに関するランキングポシジョンを更新するであろう。クライアントＢのアプリケーションは、クライアントＢが既にオーダー・デプス内に当該オーダーを（第２のサブセット９におけるサブスクリプションを介して）有しているため、ポジション５へのオーダーの追加を無視するであろう。しかし、クライアントＢはまた、第２のサブセットのオーダー２８を受信する場合もある。このブロードキャストは、ポジション２０における追加オーダーのレコードを含む。クライアントＢのアプリケーションは、このオーダーを２０ｔｈポジションに追加するであろう。
【０１１６】
クライアントＣは、ポジションＸのオーダーを除外し、この変更により影響のある全ての他のオーダーに関するランキングポシジョンを更新するであろう。クライアントＣのアプリケーションは、クライアントＣが既にオーダー・デプス内に当該オーダーを（第２のサブセット９におけるサブスクリプションを介して）有しているため、ポジション５へのオーダーの追加を無視するであろう。また、クライアントＣは、第３のサブセット１０のサブスクリプションを介してクライアントＣのオーダー・デプス内に既に存在するオーダーが含まれるため、第２のサブセットのオーダーであるブロードキャストを無視するであろう。
【０１１７】
以下、第２のサブセット及び第３のサブセットに関するサブセットの除外オーダーメッセージを送信する場合の例について説明する。図には示さないが、上記例で記載した同一方法を適用する。
【０１１８】
レベル６〜２０−６〜２０の間のランキングポジションＸにあるオーダーの除外
本発明に係わるシステムは、第２のサブセットの除外オーダーであるブロードキャストを生成するであろう。クライアントＢ及びＣのみが、このブロードキャストを受信するであろう。ブロードキャストは、２つの項目を含むであろう。１つはポジションＸの除外であり、もう１つはポジション２０への追加である。ポジション２０への追加は、オーダーの削除によりポジション２１から２０に移動されるオーダーを含む。
【０１１９】
クライアントＡは、このメッセージを受信しないであろう。そのため、中央システムに対するクライアントＡのネットワーク接続は、この変更による影響を受けないであろう。
【０１２０】
クライアントＢは、ポジションＸのオーダーを除外し、この変更により影響のある全ての他のオーダーに関するランキングポシジョンを更新するであろう。ポジション１５を有していたオーダーは、ポジション１４になり、その他のオーダーも同様に更新されるであろう。また、クライアントＢは、メッセージ内の追加オーダーを用いて、２０ｔｈポジションに当該追加オーダーを挿入するであろう。
【０１２１】
クライアントＣは、ポジションＸのオーダーを除外し、この変更により影響のある全ての他のオーダーに関するランキングポシジョンを更新するであろう。クライアントＣのアプリケーションは、第３のサブセット１０のサブスクリプションを介してクライアントＣのオーダー・デプス内にクライアントＣが当該オーダーを既に有しているため、ポジション２０へのオーダーの追加を無視するであろう。
【０１２２】
レベル２０−２０を越えるランキングポジションＸにあるオーダーの除外
本発明に係わるシステムは、第３のサブセットの除外オーダーであるブロードキャストを生成するであろう。クライアントＣは、このブロードキャストを受信するであろう。ブロードキャストは、ポジションＸにおける除外の項目を含むであろう。
【０１２３】
クライアントＡ及びクライアントＢは、このメッセージを受信しない。そのため、中央システムに対するクライアントＡ及びＢのネットワーク接続は、この変更による影響を受けないであろう。
【０１２４】
クライアントＣは、ポジションＸのオーダーを除外し、この変更により影響のある全ての他のオーダーに関するランキングポシジョンを更新するであろう。
【０１２５】
[更新（Update）]
以下、この種の解決策を支援するため、システム内においてオーダーの更新がどのように扱われるかについて説明する。これは、オーダー・ブックの変更が差分変更として配布される場合の解決策に基づいている。
【０１２６】
更新は、オーダー・ブック内に存在しているオーダーに生じる。これは、オーダーが部分的に取引されるか又は、部分的に修正されるかした時に生じる。いずれかのオーダー・ブックが優先して変更されることはない。この解決策は、図１２に示される。
【０１２７】
レベル１−５−上位５個のレベル内に存在しているオーダーに影響を与える更新
本発明に係わるシステムは、第１のサブセットのオーダー変更３０であるブロードキャストを生成するであろう。全てのクライアントは、このブロードキャストを受信し、それに応じてそれぞれのオーダー・デプスを更新するであろう。
【０１２８】
レベル６−２０−レベル６〜２０内に存在しているオーダーに影響を与える更新
本発明に係わるシステムは、第２のサブセットの変更オーダー３０であるブロードキャストを生成するであろう。図中ポジション１０に示すように、クライアントＢ及びＣのみが、このブロードキャストを受信し、それに応じてそれぞれのオーダー・デプスを更新するであろう。クライアントＡは、このメッセージを受信しない。そのため、中央システムに対するクライアントＡのネットワーク接続は、この変更による影響を受けないであろう。
【０１２９】
レベル２１−レベル２１以上に存在しているオーダーに影響を与える更新
本発明に係わるシステムは、第３のサブセットの変更オーダー３０であるブロードキャストを生成するであろう。図１２に示すクライアントＣのポジション２２以上に示すように、クライアントＣのみが、このブロードキャストを受信し、それに応じて自身のオーダー・デプスを更新するであろう。クライアントＡ及びＢは、このメッセージを受信しない。そのため、中央システムに対するクライアントＡ及びＢのネットワーク接続は、この変更による影響を受けないであろう。
【０１３０】
本明細書内に記載された情報配布方法は、多くの異なるタイプのデータに関して使用されうる。この解決策は、項目のリストを有するケースや、クライアントがリストの種々の部分に関心があるケース、等の全てのケースで使用されうる。また、いかなるメッセージも２重に送信することなく、効率的な方法でリアルタイムにリストの配布を所望するケースにも使用されうる。
【０１３１】
図１３は、サブセット内における更新又は変更の２つのデータ要素を示す。図１３において、システムは、古いデータ要素を置換／変更するため、更新メッセージ内の２つのデータ要素の差分変更を送信する。２つの黒い矩形は、スーパーセットの少なくとも一部のデータ要素として構築されたデータを示す。
【０１３２】
図１４は、サブセット内における更新又は変更の２つのデータ要素を示す。図１４において、システムは、黒い矩形により示されるデータ要素の差分変更を送信する。上側の黒い矩形は、スーパーセットの少なくとも一部のデータ要素の少なくとも一部の差分変更として構築されたデータを示す。
【０１３３】
図１５は、サブセット内における更新又は変更の２つのデータ要素を示している。この場合、クライアントコンピュータ側で当該セットを更新するため、サブセット又はスーパーセットのスナップショットが送信されている。
【０１３４】
上記記載における用語”含む（ｃｏｍｐｒｉｓｉｎｇ）”は、他の要素又はステップを除外しない。”単数（ａ”又は”ａｎ”）は、複数を除外しない。
【０１３５】
更に、用語”含む（ｉｎｃｌｕｄｅ）”及び”含む（ｃｏｎｔａｉｎ）”は、他の要素又はステップを除外しない。
【図１】
2010514033.tif 000003
【図２】
2010514033.tif 000004
【図３】
2010514033.tif 000005
【図４】
2010514033.tif 000006
【図５】
2010514033.tif 000007
【図６】
2010514033.tif 000008
【図７】
2010514033.tif 000009
【図８】
2010514033.tif 000010
【図９】
2010514033.tif 000011
【図１０】
2010514033.tif 000012
【図１１】
2010514033.tif 000013
【図１２】
2010514033.tif 000014
【図１３】
2010514033.tif 000015
【図１４】
2010514033.tif 000016
【図１５】
2010514033.tif 000017
【国際調査報告】
2010514033.tif 000018
2010514033.tif 000019
2010514033.tif 000020