(57)【要約】  本発明は、中央コンピュータシステムとリモートターミナルとの間に異なる接続の異なるデータレートを有する、あらゆる種類の分散されたネットワークにおいて使用され得る。中央システムは、データの１つ以上のスーパーセットを備える。そして、このスーパーセットからリモートターミナルに配布されるべきデータのサブセットが抽出される。その後、データのサブセットは、インフラの負荷に基づいてリモートターミナルの選択されたグループへ配布される。こうして、データを適応的に配布する方法が実行される。
2010514034.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して、複数のリモートターミナルにおいて１つ以上のデータセットを利用可能にするコンピュータシステムであって、
スーパーセットのデータを格納するメモリと、
インフラの負荷を決定する決定部と、
前記メモリと連携し、前記インフラの負荷に基づいて、前記スーパーセットのソートされたデータから少なくとも一つのデータセットを抽出し配信する、コントロールモジュールとを備えるコンピュータシステム。
【請求項２】
前記コントロールモジュールは、
データセットの数、
データセットの頻度、
データセットの内容、
データセットのタイプ
のパラメータのうちの少なくとも一つをコントロールすることにより、データセットの前記抽出と配信をコントロールする請求項１に記載のコンピュータシステム。
【請求項３】
前記コントロールモジュールは、前記データセットの数を調整する調整部を備える請求項１に記載のコンピュータシステム。
【請求項４】
前記コントロールモジュールは、前記データセットの頻度をコントロールするホールドバックタイマを備える請求項１に記載のコンピュータシステム。
【請求項５】
前記コントロールモジュールは、前記データセットの内容をコントロールするためのソータを備える請求項１に記載のコンピュータシステム。
【請求項６】
前記コントロールモジュールは、前記データセットの種類をコントロールするための分類器を備える請求項１に記載のコンピュータシステム。
【請求項７】
前記インフラの負荷は、
帯域幅利用、
待ち時間、
パフォーマンス
を備える負荷のグループから選択される請求項１に記載のコンピュータシステム。
【請求項８】
前記コントロールモジュールは、前記コントロールモジュールと連携し、前記複数のリモートターミナルデータセットを配信する通信部を更に備える請求項１に記載のコンピュータシステム。
【請求項９】
前記データセットは、スーパーセットの少なくとも一部のソートされたデータエレメントを備える請求項１に記載のコンピュータシステム。
【請求項１０】
請求項１に記載のコンピュータシステムを備える電子取引。
【請求項１１】
ネットワークを介して、１以上のデータセットを複数のリモートターミナルに対して有効にするコンピュータシステムで実施される方法であって、
インフラの負荷を決定する工程と、
前記インフラの負荷に基づいて、前記スーパーセットのソートされたデータから少なくとも一つのデータセットを抽出し配信する工程とを有する方法。
【請求項１２】
データセットの数、
データセットの頻度、
データセットの内容、
データセットのタイプ
のパラメータのうちの少なくとも一つをコントロールすることにより、データセットを抽出し配信する工程を更に有する請求項１１に記載の方法。
【請求項１３】
前記インフラの負荷は、
帯域幅利用、
待ち時間、
パフォーマンス
を備える負荷のグループから選択される請求項１１に記載の方法。
【請求項１４】
データセットの配信を連続的に調整する工程を更に有する請求項１１に記載の方法。
【請求項１５】
請求項１１に記載のコンピュータプログラム製品であって、データキャリアに格納されているコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおけるデータの配信に関わる。特に、高性能な取引システムにおける、適応的なデータ配布に関わる。
【背景技術】
【０００２】
今日、情報がコンピュータネットワーク上を送信されることはきわめて一般的なことである。技術の進歩により、送信される情報の量は、急速に増加しており、以前と比べてより多くの情報をより高速に送信し処理することが可能となっている。更に、新しいアプリケーションも、より複雑化しており、そのためより多くの情報を要求するようになっている。情報配布を最も不可欠なパーツとするコンピュータシステムの例は、電子商取引システムである。
【０００３】
証券（security）、金融派生商品（derivatives）、商品（commodity）、及び他の金融証書等からなる電子取引は、取引の決断、統計的な計算及び他の査定を行うための情報を必要とするものであり、ユーザに配布されなければならない大量の情報をもたらすことになる。
【０００４】
オーダの１回の更新は、そのようなシステムで生成された多くの異なるメッセージフローに影響を与え得る。例えば、ＢＢＯ（Best Bid Offer）、ＶＷＡＰ（Value Weighted Average Price）、ＭＢＯ（Market By Order）及びＭＢＰ（Market by Price）メッセージをユーザに提供する取引システムは、最良の価格（best price point）に影響を与える受信オーダ各々に対して４つの新しいメッセージを生成することが必要となる（オーダが異なる統一小売価格であった場合は３つのメッセージ）。換言すれば、この種のシステムは入ってくるオーダメッセージの各々について４つのメッセージを生成する。１秒あたり数千ものオーダブックの取引を扱うことが必要とされる高性能取引システムにおいて、上記の１：４の比率は問題となる。実際の取引システムは、たいてい、上述した４つのメッセージ以外のより多くのメッセージフローを有する。メッセージの生成は、そのシステムのコミュニティ内で用いられるネットワーク上の帯域利用の問題みならず、中央システムにおけるパフォーマンスの問題も発生させる要因となる。
【０００５】
更に、そのような集中化された取引システムに接続されたユーザは、一般に、情報をできる限り迅速に取得することを要求する。これらのケースにおいては、例えばハードウエアをアップデートするといったような手法により中央システムにおける性能を向上するだけでは十分でない。システムにおけるボトルネックまたは他の潜在的な問題を除去するために、追加的な技術が用いられなければならない。
【０００６】
通常、ユーザが中央システムとの接続を更新する可能性は限られているため、これらのボトルネックは結局ユーザサイドと中央システムとの間のものとなる。こうして、中央システムと遠隔の端末コンピュータとの間の接続は、情報配布を行うにあたって弱点となる。
【０００７】
電子情報を提供するシステムの例は、国際公開２００５／０８３６０３Ａ１に記載されている。この文献は、サービス品質システムを記載するものであり、システムのコンポーネントの性能或いはシステム全体としての性能が特定の許容値内に維持されるようにするために、売買活動に際して、サブシステムが制限を課するように動作する。例えば、トレーダーによって開始され得るイベントの数を制限することにより、中央システムへのアクセスを制限することが挙げられる。
【０００８】
従来技術におけるシステムは、いくつかの欠点を有する。そのような欠点の一つは、中央システムにオーダを送信すること、そしてそれにより中央システムでオーダを実行させることの両方に関して、ユーザ活動の自由度を制限してしまうことである。
【０００９】
従来の取引システムにおけるもう一つの欠点は、それらが非常に静的であることである。システムは、取引システムからのデータ量が時間の経過により変動することを考慮していない。ピーク時のセッションや低活動時のセッションといった異なる情報量を生産するセッションが存在する。更に、データ量は異なる証券間でも変動し得る。例えば、一つの証券はピークのセッションにあり、他方、もう一つの証券は低いアクティビティのセッションにあるということが挙げられる。
【００１０】
こうして、構成は、たとえ異なるセッションの間に異なる要求があるとしても、取引日の全体に影響を与えることになる。更に、その構成の粒度はしばしば非常に“粗い”ため、一つの証券に必要な要求であったとしても、システムの全体に影響を与える。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
したがって、本発明の目的は、最適化された方法でデータを配信するための解決策を提供することにある。
【００１２】
また、本発明の他の目的は、リモートターミナルにデータを利用可能にすることにある。
【００１３】
また、本発明の他の目的は、適応的にデータを配信するための解決策を提供することにある。
【００１４】
また、本発明の他の目的は、インフラの負荷に基づいた、データを配信するための解決策を提供することにある。
【００１５】
また、本発明の他の目的は、システムパフォーマンスに基づいた、データを配信するための解決策を提供することにある。
【００１６】
また、本発明の他の目的は、帯域幅の利用に基づいた、データを配信するための解決策を提供することにある。
【００１７】
また、本発明の他の目的は、中央システムへのアクセスを制限することなく、情報を配信する解決策を提供することにある。
【００１８】
また  本発明の他の目的は、帯域幅を保護するためにシステムによって生成されるデータの量を制限することにある。
【課題を解決するための手段】
【００１９】
本発明の第１の態様によれば、上述した又はその他の目的は、以下のコンピュータシステムを提供することにより達成される。すなわち、１つ以上のデータセットを複数のリモートターミナルにネットワークを介して利用可能にするコンピュータシステムであって、
データのスーパーセットを備えるメモリと、
インフラの負荷を決定する決定部と、
前記メモリと連携し、前記インフラの負荷に基づいて、前記スーパーセットのソートされたデータから少なくとも一つのデータセットを抽出し配信する、コントロールモジュールとを備えるコンピュータシステムである。
【００２０】
上記コンピュータシステムは、取引システムのような中央システムが現在のインフラの負荷に基づいて、生成されるデータの量を自動的にコントロールすることを可能にするという利点を有する。
【００２１】
更に、上記コンピュータシステムは、以下の利点を有する。すなわち、システムは、中央システムに接続されたリモートターミナルができる限り迅速に情報を得ることを可能にし、これと同時に、中央システムが取引者のようなリモートターミナルからオーダを受信できることを保証する。この保証は、好ましくは、中央システムから出て行くトラフィックを制限もしくは管理することによりなされる。
【００２２】
好ましくは、スーパーセットの変更に際して、或いは、リモートターミナルによる要求に際して、或いは、ホールドバックタイマの期限のようなタイマ期限に際して、データセットは抽出及び／又は配信される。
【００２３】
インフラは、コンピュータシステムにおけるデータ／情報フロー及び処理をサポートするあらゆるものに関連する。それは、ハードウエアとソフトウエアの２つのグループに分けることができる。インフラのハードウエアの例やソフトウエアの例は、相互接続ハードウエア（ネットワーク）、ソフトウエア、インターフェース、プロトコル、フロントエンドコンピュータ、バックエンドコンピュータ、デバイス間の接続、オペレーティングシステム、アプリケーションプログラムなどである。
【００２４】
好ましくは、コントロールモジュールは、
データセットの数、
データセットの頻度、
データセットの内容、
データセットのタイプ（例えば、データがどのように配信されるか）
のパラメータのうちの少なくとも一つをコントロールすることにより、データセットの抽出と配信をコントロールする。
【００２５】
また、好ましくは、コントロールモジュールはデータセットの数を調整する調整部を備える。調整部は、インフラの負荷に関する入力に基づいて、データセットの数を調整するようにしても良い。
【００２６】
インフラの負荷に関する入力は、データ接続におけるデータレートを計測する決定部、中央システムにおけるプロセッサ負荷を計測する決定部により取得される。更に、決定部は、リモートターミナルのパフォーマンスを計測し、アプリケーションプログラムに関する情報を中央システムへ送信する、リモートターミナルのモジュール（エージェント）であっても良い。決定部は、また、異なる場所において現在の帯域幅状況を計測する能力を持つインテリジェントメッセージバスのような、バスに関連する監視ツールであってもよい。したがって、インフラの負荷は、電子取引のマーケットにおｋれうあらゆるアクティビティに関連する。
【００２７】
更に、入力は、リモートターミナルに関連する予約であっても良い。こうして、調整部は、データレートと予約の組み合わせに基づいて或いはそれらの一方に基づいてデータセットの数を調整する。
【００２８】
コントロールモジュールはデータセットの頻度をコントロールするホールドバックタイマを備えても良い。頻度のコントロールは、上述したような入力に基づいても良い。
【００２９】
更に、コントロールモジュールは、データセットの内容をコントロールするソータを備えてもよい。データセットの内容のコントロールは、上述した入力に基づいても良い。
【００３０】
更に、コントロールモジュールは、データセットの種類をコントロールする分類部を備えても良い。データセットの種類とは、差分変更（delta change）のような増分変更として送信されるもの、或いはサブセットのデータエレメントとして送信されるものを意味する。また、種類は、サブセットのスナップショットであってもよい。どの種類を送信するかは、本発明が使用される特定の状況に依存する。例えば、ホールドバックタイマを用いている場合には、スナップショットを送信することがより帯域幅に効果がある。そして、システムはどれくらいのデータがいつ送信されるかを知っているので、帯域幅の利用を予測することはシステムにとって容易である。
【００３１】
好ましくは、インフラの負荷は以下の負荷のグループから選択される。すなわち、
・リモートターミナルへの接続における、或いは他のシステムデバイス間の帯域幅利用。
・メッセージの送信からアクノリッジの受信までの時間である待ち時間。例えば、システムにオーダを送信するとき、或いは、中央システムからリモートターミナルへデータセットを送信するときの待ち時間。
・中央システム、ディスクＩ／Ｏなどにおけるプロセッサ負荷のような、パフォーマンス。
【００３２】
コントロールモジュールは、更に、コントロールモジュールと連携して、データセットを複数のリモートターミナルに配信する通信部を備える。
【００３３】
好ましくは、少なくともスーパーセットの一部分のソートされてデータエレメントを備える。送信されるデータセットは、オリジナルのデータセットの対応するデータセットのすべて（スナップショット）、或いは、オリジナルのデータセットの対応するデータセットのいくつかのみ（変更されたデータセット）、或いは、オリジナルのデータセットのデータエレメントに対応する部分のみ（差分変更）を備える。
【００３４】
本発明の第２の態様において、上述の目的及びその他の目的は上述したコンピュータシステムを備える電子取引によって達成される。
【００３５】
コンピュータシステムは、電子取引における統合モジュールであっても良い。また、スタンドアローンデバイスのような、情報配布システムとして個別に販売され得るスタンドアローンモジュールであってもよい。
【００３６】
本発明の第３の態様において、上述の目的及び他の目的は、ネットワークを介して、１以上のデータセットを複数のリモートターミナルに対して有効にするコンピュータシステムにおいて実施される方法により達成される。ここで、その方法は、
インフラの負荷を決定する工程と、
インフラの負荷に基づいて、スーパーセットのソートされたデータから少なくとも一つのデータセットを抽出し配信する工程とを有する。
【００３７】
上記のコンピュータシステムは、取引システムのような中央システムが、生成されるデータの量をインフラの負荷に基づいて自動的にコントロールすることを可能にするという利点を有する。
【００３８】
更に、上記の方法には、中央システムが例えば取引者のようなリモートターミナルからオーダを受信できることを保証しながら、誰もが可能な限り迅速に情報を得ることを可能にするという利点がある。
【００３９】
データセットは、スーパーセットの変更、リモートターミナルによる要求、或いはホールバックタイマによるようなタイマ期限が生じた際に、抽出及び／又は配信されるようにできる。
【００４０】
好ましくは、以下のパラメータのうちの少なくとも一つをコントロールすることによりデータセットを抽出し配信する。
・データセットの数、
・データセットの頻度、
・データセットの内容、
・データセットのタイプ。
【００４１】
上記パラメータのうちの一つをコントロールすることにより、システムはインフラの負荷に基づいてデータの出力をコントロールすることができる。
【００４２】
インフラの負荷は、好ましくは、以下の入力のグループから選択される。
・帯域幅利用、
・待ち時間、
・パフォーマンス。
【００４３】
この方法において、システムは、入ってくるオーダに対して帯域幅をオープンに維持しながら、適応的に情報をリモートターミナルコンピュータに配布する。こうして、インフラの負荷に基づいてデータセットの配信を連続的に調整するように、実施されることになる。
【００４４】
好ましくは、バンド幅は入力されるオーダに対してオープンである。こうして、データセットの配信は連続的に調整される。しかしながら、システムに非常に重い付加がかかる状況においては、入力されるオーダを制限することも必要となる。１つの入力されるオーダは４つの出力されるメッセージとなる。したがって、入力されるオーダを調整することによっても、より効果的にメッセージのトラフィックを調整することが可能である。
【００４５】
本発明の第４の態様において、上記の目的を及び他の目的は、上述したあらゆる態様及び／又は実施例に従ったコンピュータプログラム製品によって達成される。コンピュータプログラム製品はデータキャリアに格納されている。
【００４６】
本発明のこれらのまたは他の態様は、以下に記載の実施形態から明らかになり、以下の実施形態を参照して説明される。
【図面の簡単な説明】
【００４７】
【図１】図１は、メモリ、コントロールモジュール、レギュレータ、ソーター、分類器、通信機、及びインターフェースを備えるコンピュータを示す図である。
【図２】図２は、本発明が利用される、デバイス間の接続において異なるデータレートを有するコンピュータネットワークの概要を示す図である。
【図３】図３は、データのスーパーセットの実施例を示し、また、データの３つのサブセットを示した図である。
【図４】図４は、ネットワークにおけるデバイス間の接続において異なるデータレートを有するコンピュータネットワークの概要を示し、また、異なる接続においてどのように異なるサブセットが配信されるかを示す図である。
【図５】図５は、ＭＢＩ（Market By Intelligence）のフローがＭＢＯ及びＭＢＰフローからどのように生成されるかの例を示す図である。
【発明を実施するための形態】
【００４８】
以下のセクションでは、まず、本ドキュメントにおいて使用されるいくつかの定義と頭文字について提示し、その後、本発明に関連するいくつもの異なる方法について説明する。各方法は、好ましくは電子商取引システムに関連して使用され、帯域幅を制御し、これらの種類のシステムによって生成される大量のマーケットデータに起因するパフォーマンスの問題を解決する。しかしながら、本発明は、情報配布が取り扱われる任意の中央システムおいて使用可能である。
【００４９】
更に、以下のセクションでは、パフォーマンス、待ち時間（latency）、帯域幅利用などのようなインフラの負荷状況に基づいて中央システム或いは商取引システムにおける情報配布を最適化するために、本発明に従ったそれらの方法を使用するソリューション（解決策）の詳細を提示する。示されるソリューションは適応的であり、現在のインフラ負荷の状況に基づいてその振る舞いを制御する。
【００５０】
図１は、本発明によるコンピュータシステム１を備える電子デバイスを示す。コンピュータシステム１は、メモリ２、ソートされたデータのスーパーセット３、制御モジュール５、レギュレータ６、ホールドバックタイマ８、ソータ９、分類部１０、通信部１１、インターフェース７、決定部１９を備える。メモリ２は２つのスーパーセット３とパラメータ４を格納するための領域を有する。
【００５１】
図２は、フロントエンドコンピュータ１２、バックエンドシステム１３、ゲートウエイもしくはルータ１４を有する中央コンピュータシステムを示す。異なるデバイス間には、異なる太さを有する線分１５により示される接続が存在する。線の太さは帯域幅（データレート）を表している。太い線分は高いデータレートを有し、細い線分は低いデータレートを有する。図２に示されるフロントエンドコンピュータのうちの３つには画面に文字が記入されているが、これらはユーザＡ，Ｂ，Ｃに属するリモートターミナルコンピュータであることを示している。リモートターミナルは、システム１がリモートターミナルからの情報を要求する場合、決定部１９を備えるようにしても良い。
【００５２】
図３は、データのスーパーセット３を示し、本例では３つのサブセットのデータＸ，Ｙ，Ｚに分割されている。スーパーセットはより少ないデータ要素を有するより多くのサブセットに分割されても良いし、又は、より多くのデータ要素を有するより少ないサブセットに分割されても良い。スーパーセットをいくつのサブセットで表すかは、各々の特定の状態と本発明が利用されることになるシステムに基づいて決定されるのが好ましい。しかし、本明細書においては、本発明をより理解しやすくするために、スーパーセットを３つのサブセットに分割することにする。第１のサブセット８は５つのデータ要素（１〜５）を有し、第２のサブセット９は１５個のデータ要素（６〜２０）を有し、第３のサブセットは２０番を超えるデータ要素、例えば２１〜３０を有する。
【００５３】
図４は、図１に示したシステムとはいくらか異なるシステムを示す。図４は、また、スーパーセットのどのサブセットが異なる接続を超えて送信されるかを示している。サブセットは、異なるデータレートの接続に関連付けられている。例えば、もっとも太いデータ接続、すなわち中央システム１３とリモートターミナルＡとの接続は、スーパーセット１６の全体を送信することができ、より遅いデータ接続は第１及び第２のサブセット１７をリモートターミナルＢに送信することができ、最も遅いデータ接続は第１のサブセット１８をリモートターミナルＣに送信することができる。この例において、中央システム１３は、２つのデータのスーパーセットを有するが、中央システムは１またはそれ以上のデータ要素を備えていればよく、例えば、３，４，５から１５もしくはそれ以上、例えば１００，２００，５００でもかまわない。これは、本発明が使用されるアプリケーションに依存する。
【００５４】
定義と頭文字
ＭＢＯ：マーケットバイオーダ：このタイプのメッセージフローは、機器に対するオーダデプスにおいて発生するオーダブックの変更を含む。各変更は、差分変更によるメッセージにおいて表される。外部のアプリケーションは、この情報をこのオーダブックのためのそれらのオーダデプスを確立し、実際のオーダブックの影（shadow）を維持するために用いることができる。
【００５５】
以下のように言うことができる。すなわち、上位のＸレベルで発生するオーダ変更のみが配信され、そうすることにより、リモートターミナルにおけるアプリケーションはそれらのレベルに対するオーダデプスのコピーを持つことになる。
【００５６】
ＭＢＰ：マーケットバイプライス：この種のメッセージはプライスレベルに関する情報を含む。プライスレベルに関する情報は、各レベルにおけるトータルのボリュームの概要とともに市場に存在する。上位Ｙ個のプライスレベルのみが配布されるということができる。
【００５７】
ＯＤＳ：オーダデプススナップショット：特定の間隔でオリジナルのデータセットのスナップショットを送出する。
【００５８】
ＭＢ：メッセージバス：これはコンピュータシステム／ネットワークの一部であり、コンピュータ内のデバイス間および／またはネットワークとの間におけるメッセージのトランザクションを扱う。ハードウエアとソフトウエアの両方を含んでも良い。
【００５９】
帯域幅改善方法
以下のセクションでは、取引システムによって生成され、配布されるデータの量をコントロールするのに使用可能な異なるいくつかの方法を説明する。一例として、方法はネットワーク問題を有するシステムにおいて、帯域幅利用を改善するために使用可能である。
【００６０】
メッセージフローの数
システムによって生成されるデータの量をコントロールするための最も簡単な方法は、生成されるメッセージフローの数を制限することである。例えば、帯域幅利用を減らすことを要求する取引は、（マーケットバイプライス）ＭＢＰフロー及び（オーダデプススナップショット）ＯＤＳフロー或いは（マーケットバイオーダ）ＭＢＯフローを生成し、配布することを決定することができるであろう。好ましくは、以下のフローが同時に使用される。すなわち、ＭＢＰ、ＭＢＰとＯＤＳ、ＭＢＰとＭＢＯである。通常、ＯＤＳとＭＢＯを同時に使用することは意味がない。
【００６１】
メッセージフローメソッド
帯域幅利用に影響をもつ次のアイテムは、データが配布されるときに用いられる方法である。これは、中央システムの視点及びフロントエンドアプリケーション視点の両方から、システムパフォーマンスにも影響を及ぼす。情報を配布するある一つの方法は、帯域幅利用の観点から非常に効果的であるが、同時に、フロントエンドアプリケーションのパフォーマンスに対して非効果的である。したがって、帯域幅利用、パフォーマンス、待ち時間などに関わる、取引／システムのオペレータが持つ要求に基づいて、情報／データを配信するための最も効果的な方法を見つけることは重要である。
【００６２】
オーダブック内の上位１０個のベストオーダを配信することにのみ興味がある取引に関する一例として、オーダデプスを挙げる。フロントエンドアプリケーションがこれら１０個の位置のオーダデプスのコピーを構築するために、そのブックにおけるオーダに関する情報を連続的に受信することが必要である。この種の情報は、主として以下の３つの異なる方式で配信され得る。
【００６３】
メッセージフローメソッド１：ブック内の各オーダのためのオーダ詳細の差分ブロードキャスト
この方法で、情報配布システムはオーダ詳細のブロードキャストを、そのデプス内で任意のオーダに対し発生する各変更のために送出する。これによる一つの効果は、フロントエンドアプリケーションがオーダデプスの全体のコピーを維持することができるということである。このソリューションは、入ってくるトランザクションの数に直接的に依存する。しかしながら、オーダデプスの全体が公に知られなければならない場合、これは最良の方法であろう。
【００６４】
待ち時間の観点から、このソリューションは効率的である。なぜなら、ホールドバックタイマは使用されず、ブロードキャストはオーダブックの変更の発生直後に生成され得るからである。
【００６５】
メッセージフローメソッド２：上位Ｘレベルに関するオーダのための、オーダ詳細の差分ブロードキャスト
この方法は、好ましくは、電子取引で用いられる。電子取引は、大きなオーダデプスを有するが、全てのオーダデプスを配布するという義務を負ってはおらず、この方法はこのことを帯域幅の利用を最小化するために用いようとするもので、興味（interest）のランキング位置に配置されているオーダの配信のみを行おうとするものである。例えば、マーケットから取り出されたオーダ／クオート（quote:時価）は配信されない。この方法は、取引が、マーケットから取り出された価格でそれらのクオートを連続的に再クオートする自動クオートマシンを使用するメンバーを持つ場合に、非常に有用である。この種の振る舞いは、上述のメソッド１が使用されるがこの種のソリューションについて大域幅の利用に関して同じ影響を及ぼさない場合、多くのメッセージを生成する。
【００６６】
この方法を用いて、情報配布システムは、上位Ｘのランキング位置にあるオーダに関して発生する各変化に対しオーダ詳細のブロードキャストを送出する。そして、フロントエンドアプリケーションはこの情報を、このオーダブックに対する上位のＸ個のオーダのオーダデプスシャドウを維持するために使用することができる。このモデルの一例としては、帯域幅をセーブするために上位の１０個のランキングのみを配信しようとする電子取引が挙げられるだろう。例えば、オーダ変更（更新／追加／除去）が位置１３で発生した場合、新しいブロードキャストの発生にはつながらない。しかしながら、オーダブックの変更が９番目の位置で発生した場合、オーダ詳細ブロードキャストメッセージの発生という結果になる。変更は、更新、追加、削除のいずれのタイプでもよい。
【００６７】
更新：
このメッセージのタイプは、位置９における存在するオーダが変更された場合、例えば、数量が減少した場合に送出される。
【００６８】
更新は、３種類の方法で送出することができる。すなわち、位置９におけるデータエレメントを置き換える新しいデータエレメントの全体が送出される、データエレメントにおいて変更されるべき新たな情報のみを含む最小のメッセージが送出される、或いは、新しいパラメータの値に行き着くようにオリジナルデータにおけるパラーメータからの増分、差分である差分変更が送出される。例えば、位置９における新しい価格が１０であり、旧価格が１１である場合、値１０と他のいくらかの情報を備える全エレメントを送出することにより、或いは１１を置き換えるための値１０のみを送出することにより、或いは−１を送出して差分変更により１１を変更することにより、旧価格１１を１０に変更することができる。
【００６９】
追加：
この種のメッセージは、例えば、位置９に新しいオーダが挿入される場合に送出される。フロントエンドアプリケーションは、好ましくは、加えられたオーダに基づいてオーダブック内の各影響されたオーダに関して正しい方法でランキング位置の更新を行うロジックを有する。例えば、９番の位置を有していたオーダはランキング位置１０を得るであろう。位置１０に格納されていたオーダは、２種類の方法で扱われ得る。このオーダはもはや上位１０個のオーダの一つではなく、それゆえ、そのオーダはフロントエンドアプリケーションの表示から除去されなければならない。上位１０個から外れている限りそのオーダに対してオーダ更新が送信されることはないからである。このオーダをフロントエンドから除去するために、情報配布システムは当該オーダの除去メッセージを送信することもできるであろう。しかしながら、帯域幅の観点から、これは好ましい解決策ではない。オーダブックが１０個よりも多いオーダを有するときには、各追加に対して余分なメッセージを発生することになるからである。これを取り扱うより良い方法は、各オーダブックのために配信されることになるオーダの数を、ログイン時にフロントエンドアプリケーションに知らせることであろう。こうして、この場合、フロントエンドアプリケーションは上位の１０個のオーダのみが配信されることを知り、したがって、新しいオーダがより高い位置に追加された場合に、１０番目の位置から叩き出されるオーダを自動的に除去する。
【００７０】
消去
この種のメッセージは、例えば位置９にあるオーダを除去するような場合に送信される。フロントエンドアプリケーションはこの情報を、オーダデプスからオーダを除去し、当該消去動作によって影響を受ける他のオーダに対してランキング位置番号を更新する。換言すれば、それまでにランキング位置１０を有していたオーダは、代わりに９というランキング位置を得る。
【００７１】
中央システムにおいてオーダが１１番目の位置に存在し、このオーダが１０番目の位置に昇格される場合を考える。上位の１０個のみが配信されるため、フロントエンドアプリケーションは、このオーダに関する情報を持たないことが好ましい。それゆえ、フロントエンドアプリケーションがバックエンドシステムと同期した状態を維持するために、余計なブロードキャストが必要となる。したがって、情報配布システムは、１１番の位置から１０番の位置へ移動したオーダに関する追加メッセージを送出しなければならない。より効率的な解決策は、１１番の位置にあるデータを当該メッセージにおいて送出することである。
【００７２】
好ましくは、ホールドバックタイマはこの方法と組み合わせて用いることができ、ホールドバックタイマ期間の終わりにすべての変更の合計を配信する。より少ないデータが生成されるタイミングは、同一のホールドバックタイマ期間内で２回以上オーダが変更されるとき、或いは、いくつかの変更されたオーダがタイマが満了する前に上位Ｘ個の位置からはずされるようにいくつかのオーダが追加されるときである。このことの利点は、各メッセージに付加されるオーバーヘッドが最小化されることである。この手の議論は、ＭＢＯブロードキャストに有効である。しかしながら、ＭＢＰ情報がこの方法を用いて配信される場合、ブロードキャスト配信を制御するためにホールドバックタイマロジックを使用することには多くの利点がある。このことの理由は、いくつかのオーダブックの変更はＭＢＰブロードキャストにおける同じアイテムに影響を及ぼし得るからである。例えば、ホールドバックタイマ間隔の間、同じ価格レベルに影響を及ぼす多くの追加された／変更された／削除されたオーダが存在し得る。これらの変更のすべては、その場合、結果として数量といったような、変更の合計が特定される一つのブロードキャストを必要とするのみである。
【００７３】
ＭＢＯに対したこの方法を構築する他の方法は、３つのベストプライスチック（tick）のすべてのオーダが配信されるように、システムをプログラムすることである。この種の解決策は、フロントエンドによるより多くのプロセッサ時間を必要とするであろう。新しいオーダはいくつかのオーダが取り外されるという結果を招き得るからである。例えば、新しいベストプライスでのオーダが送出されてきた場合、３番目のベストチックにあったすべてのオーダはフロントエンドアプリケーションから除去されなければならない。なぜなら、これらのオーダは今や４番のプライスランキングとなっており、情報配信システムはこれらのオーダに対する更新の送信を停止するからである。
【００７４】
メッセージフローメソッド３：ホールドバックタイマ機能を持つオーダデプススナップショット
この第３の方法は、中央システムが配信するべきレベルの数を特定する、現在値ブロードキャストに基づくものである。取引が、上位１０個のオーダがマーケットに対して興味のあるものであることを特定すると仮定する。すると、このブロードキャストは、その上位１０個のオーダに対するオーダデプスのスナップショットを含むことが好ましい。例えば、ホールドバックタイマが満了したとき、以前のブロードキャストは送出されたため、情報配信システムは上位１０個のレベルにおいて変更が発生したかどうかをチェックする。変更が発生していた場合、新しいブロードキャストが生成されることになる。この新しいブロードキャストは、上位１０個のオーダのスナップショットを含む（たとえ一つのオーダのみが変更されたとしても）。この種の方法は、フロントエンドアプリケーションに、プログラムすることをより容易にするＡＰＩをもたらす。フロントエンドアプリケーションはブロードキャスト情報をそのまま使用することができるからである。こうして、他のオーダにおけるイベントなどに基づく既存のオーダにおけるランキング位置の変更のような、間接的な変更、計算を実行するロジックをもつ必要がなくなる。
【００７５】
スナップショットを用いる場合、スナップショットが送信されるべき時を決定するためにホールドバックタイマを使用することができる。例えば、４つの上位のデータエレメントのスナップショットが刻々と送信される場合、このメッセージのサイズは常に同じとなる（例えば、エレメントあたり４バイト、１バイト）。他の解決策は、各更新に対して、それが発生したときにデータエレメントを送信することであろう。１秒間に１００個の更新が発生した場合、１００個のデータエレメントが１バイトで送信される結果となる。こうして、１００バイトが１秒の間に送信される。帯域幅利用の観点から、この状況においてはスナップショットとタイマテクニックを使用することがベターである。
【００７６】
このように、この方法は、ホールドバックタイマロジックと共に非常に有用である。しかしながら、ブロードキャストもまた変更のない情報を含むので、帯域幅の観点から、この方法は非常に要求が多いものとなる。一つのオーダのみが変更されたとしても、各サイドにおける１０個のオーダのすべてが送出される。方法は、それゆえ、多数のオーダブックの変更を受信するシステムにおいて配信されるべきオーダレベルの数が少ない場合に、有用なものとなる。
【００７７】
メッセージフロー頻度
中央システムによって生成されるデータの量を制御するための選りすぐれた方法は、メッセージが送出される頻度を制限することである。これは、ホールドバックタイマロジックを使用することによりなされ得る。ホールドバックタイマは２つのカテゴリに分けられる。
【００７８】
カテゴリ１
このホールドバックタイマメソッドの目的は、接続を通して送信される各メッセージに付加されるオーバヘッドの量を減少することである。換言すれば、この方法は、いかなる実際のデータをも除去しない。方法は、単に、データがネットワークを通して送出されるまでにデータをある期間保持するというものである。こうすることにより、いくつかの小さなメッセージのパッケージは１つの大きなメッセージパッケージに統合され得る。これは小さなメッセージの各々に対して必要であったオーバヘッドを省くことができる。
【００７９】
カテゴリ２
このタイマの目的は、ある離散的な瞬間においてのみデータを生成することによってネットワークを通して送信される実際のデータの実際の量を減少することにある。ＯＤＳメッセージに対して、これは、情報配布システムはタイマが経過する各時間ごとに新しいメッセージを生成することを意味する。換言すれば、タイマ期間内に１００や４００のオーダブックの変更が発生しても、それには関係なく、１つのメッセージという結果になる。この特徴はしたがって、ＯＤＳがオーダブックの変更が発生するたびに送出を行う場合と比べて送出されるデータの実際の量を減少させる。同じ理由が、システムがホールドバックタイマ期間内に発生したすべての変更のサマリを含むメッセージを送出する、ＭＢＰブロードキャストにも当てはまる。例えば、２つのプライスレベルのみに影響を及ぼす１００のオーダブックの変更が１タイマ期間において受信された場合、システムは、そのタイマ期間の終わりで、すべての変更のサマリでこれら２つのプライスレベルを更新するメッセージを生成することが必要となるのみである。こうして、２つの変更が１００の変更に取って代わることになる。この種のタイマのポジティブな効果は、システムに入ってくるオーダブックの変更の数に関係なく、あるブロードキャストタイプに必要な最大の帯域幅を簡単に計算することができるようになるということである。
【００８０】
上記のメッセージフローの頻度は、自動的な調整を行う構成に非常に適している方法である。高負荷の状態において、ホールドバックタイマは増加し、低負荷の状態においてそれは減少する。この機能の目的は、アクティビティの低い機器は通常のタイマよりもかなり短いホールドバックタイマ間隔を持たなければならない（通常のタイマが複数のより短い間隔に分割される）ものの、通常のホールドバックタイマ間隔をアクティビティの高い機器（秒あたりのオーダブック変更が多い機器）に用いることである。本発明によれば、改良は、システムにおいて現在の大域幅利用がいかようであるかに基づいて、メッセージフロー周波数を調整することである。これを達成する最も簡単な方法は、単に実際のホールドバックタイマを変更することであろう。こうして、タイマ期間はピークの状態の間は増加され、低い取引状態の間は減少される。各セッションについて、メッセージフロー毎に、取引がホールドタイマの上限と下限を特定することができるように、構築可能であることが好ましい。また、増加の時間幅を構築可能とすることが好ましい。この特徴によれば、取引は、例えば、下限が２００ｍｓ、上限が４００ｍｓ、そして増分が１００ｍｓというように、ＭＢＰメッセージフローに対するホールドバックタイマを特定することができる。情報配布システムプロセスは、低負荷の間は、２００ｍｓのホールドタイマを使用する。大域幅利用がその限度に到達しようとしている場合、ＨＳＭＢは情報配布システムにピーク状態であることを知らせる。情報配布システムプロセスは、第１の対策として、設定にしたがって、例えば２００ｍｓから３００ｍｓへホールドバックタイマを増加させる。もしも帯域幅の問題を解消するのに不十分であれば、情報配布システムは好ましくは、メッセージバスから新しいメッセージを受信し、ホールドバックタイマを更に１００ｍｓ増加させる。新たな、そして最終的なタイマは４００ｍｓとなる。マーケットが低負荷の状態へ戻ると、情報配布システムはこのことについての情報を受信し、それにしたがってホールドバックタイマを減少させる。ホールドバックタイマの増加／減少の幅は、２０ｍｓ、３０ｍｓ、５０ｍｓ、７５ｍｓなどのように、たとえば１０〜１００ｍｓの間で設定可能としてもよい。
【００８１】
通常の“間隔タイマ”機能におけるのと同じ定義を用いる高アクティビティ機器にのみ増加されたホールドバックタイマが影響を及ぼすように、この機能性が“間隔タイマ”と組み合わされる場合、より効果的なものとなる。上記例において、このことは、増加されたタイマ（３００ｍｓ）は前回の間隔の間に１回以上のオーダブックの変更が発生したオーダブックにのみ適用されることを意味する。低いアクティビティのオーダブックには依然として２００ｍｓを用いる。
【００８２】
間隔タイマの機能は、通常の機能性の間にオリジナルのデータセットからデータを抽出し、特定の間隔でデータを配信する機能性である。間隔は、例えば２００ｍｓである。２００ｍｓの間隔は、例えば、おのおの４０ｍｓの５つのサブ間隔に分割される。こうして、２００ｍｓの間隔内でアクティビティが発生しなかった場合は、何のデータも配信する必要がない。しかしながら、中央システムにオーダが送信された場合、２００ｍｓの間隔の間に、システムは好ましくは、この変更をできるだけ早くユーザに知らせるべきである。システムは、間隔タイマの機能を使用し、オーダが受信された４０ｍｓ間隔の終了時に情報を配信する。同時に、オーダが中央システムに受信又は登録されたときから、２００ｍｓの間隔をはじめからやり直すようにすることが好ましい。この機能性は、情報ができる限り迅速に配信されるべきである低いアクティビティに関連して非常に役にたつ。
【００８３】
１つの追加的な特徴は各オーダブックを分類することである。この分類を提供することにより、いくつかのオーダブックを自動的な調整の構成からはずすことを可能にするようにシステムを構築することが可能となる。例えば、これらのオーダブックは、たとえシステムがピークの状態に入ったとしても、常に低いホールドバックタイマを持つものである。好ましくは、いくつかの異なる情報クラスが、Ａ，Ｂ，Ｃなどのように定義されることが好ましい。情報クラスＡに属するオーダブックは自動調整機能によって最初に影響を受ける。これで調整しきれない場合は、システムは情報クラスＢのオーダブックを取り扱うというようにしていく。
【００８４】
メッセージフローの内容
中央システム又は電子取引により生成されるデータの量を制限する第４の方法は、メッセージフローの大きな部分をどのように生成するかをコントロールすることである。例えば、システムにアイテムのリストが存在する場合、どのようにそのリストの大きな部分を配信するかをコントロールすることが可能である。このロジックは例えば、ソートされたリスト或いは優先順位付けされたリストにアイテムを含むＭＢＯやＭＢＰに適用され得る。取引は、情報配布システムによって発生する帯域幅利用を制限するために、ＭＢＰフローに対して上位５つのプライスレベルを配信し、ＭＢＯフローにおいて上位１０個のオーダを配信するように選択することができる。
【００８５】
図５に示されるように、ＭＢＩフローはＭＢＰ及びＭＢＯフローから生成され得る。ＭＢＩフローは、ある数のＭＢＯエレメントとある数のＭＢＰエレメントを備える。ＭＢＯ及びＭＢＰエレメントの配信はユーザが何を見たいかによって決定されることが好ましいが、ライン上の負荷に依存しても良い。
【００８６】
こうして、ピーク状態の間に、メッセージフローにおいて配信されるレベルの数を減少させることが可能となる。例えば、オーダデプスの全体のためのＭＢＯを送信する代わりに、情報配布システムは各サイドにおける上位２０個のオーダのみを配信する状態へ移行することができる。
【００８７】
ホールドバックタイマに関して、情報配布システムは、増分幅とともに上限および下限を設定可能とするべきである。上限は、通常の負荷において配信するレベルの数を特定し、下限は高負荷の状況において配信する最小のレベル数を特定する。増分幅は、ホールドバックタイマに関して説明したの同様に用いられる。たとえば、各調整幅をどれくらいにするかを制御する。この特徴を実現することにより、情報配布システムが例えばＭＢＰメッセージフローに対して下限が５、上限が１０、増分が２、というように特定することができるようになる。このことは、情報配布システムプロセスが通常の取引負荷の間に上位１０レベルの変更を送出することを意味する。そして、ピーク状態が発生すると、配信するレベルの数を、例えば、８，６、そして５（or even further）まで減少させていく。マーケットが通常の状態に戻ると、情報配布システムプロセスは、配信するレベルを高い値へと戻す。なお、これを達成するために、メッセージバスから、低い帯域幅利用を示す入力情報を受信するようにすることが好ましい。
【００８８】
一つレベルから他のレベルへの遷移は、外部ＡＰＩクライアントがその新しいレベルを適用できるように、情報配布システムプロセスによって扱われても良い。例えば、差分変更メッセージを用いてＭＢＰが配信される場合、レベルの減少が新しいメッセージで示されるべきである。メッセージは外部のＡＰＩクライアントに、システムが１０個のレベルから８個のレベルへ移行したことを通知することになる。この通知により、外部のアプリケーションに８よりも低いプライスレベルを削除させる。これらのレベルに関しては、もはや何の更新も受信することがないからである。一方、システムが８から１０レベルに移行した場合、外部アプリケーションが失っている２つの新しいレベルに関する追加のメッセージに関する情報を送出する必要がある。これは、１つの種類のメッセージに対してどのように扱われるかについての一例である。好ましくは、遷移の解決策は、メッセージフローが配信されるときにどのメッセージが用いられるかに基づいて、各メッセージフローの種類に対して定義される。
【００８９】
本明細書において説明した情報配信の解決策は、多数の異なる種類のデータに用いることができる。本解決策は、アイテムのリストを所有し、そのリストの異なる部分に興味を持つユーザが存在し、メッセージを複製することなく効率的な方法でリアルタイムにリストを配信しようとする場合に、利用可能である。
【００９０】
ネットワーク接続における帯域利用を最小化するために、当該接続の他方のリモートターミナルに関するデータのみを送出することが重要である。したがって、メッセージがその接続を通して送出されるべきかどうかを、各メッセージ及び各接続について、メッセージバスが決定できるようにするべく、情報配布システムが各メッセージにマークをすることは重要である。例えば、リモートターミナルは、そのリモートターミナルに対して興味のあるメッセージフローをセットアップできるべきである。さらに、リモートターミナルは、そのリモートターミナルが動作することのできるオーダブックに関連する情報のみを受信することが好ましい。
【００９１】
次のレベルのフィルタリングは、ユーザが、メッセージフローのどの程度の大きさの部分についての予約を設定することである。例えば、オーダデプスの全体が配信されたとしても、彼はＭＢＯにおける上位の５つのオーダにしか興味をもたないこともある。
【００９２】
適応的な情報配布
以下のセクションでは、システムにおけるインフラの負荷に基づいて情報配布システムがネットワークアウトフローをコントロールするように、適応かつ最適化された方法で有効なシステムリソースを用い、有効な帯域幅を利用するモデルを使用する本発明に従ったソリューションが説明される。換言すれば、システムは、中央システムによって生成されるデータの量がピークの状況において利用可能な帯域幅を超えないように、現在の帯域幅／パフォーマンスの状態に反応する。一方、情報配布システムが、低いアクティビティの間には、例えばホールドバックタイマによって情報の生成を制限されないことが重要である。
【００９３】
判断部は、好ましくは、システムにおける現在の帯域幅利用のようなインフラの負荷に関する情報を、情報配布システムに提供する。情報配布システムは、その情報を用いて、上述した方法により自動的にネットワークのアウトフローをコントロールすることができるようになる。
【００９４】
以下のセクションでは、情報配布システムからのネットワークアウトフローをコントロールするために、上述した方法が、パフォーマンス／帯域幅のようなシステムにおける現在のインフラの負荷状況に基づいて、適応的な方法でどのように使用されるかを説明する。
【００９５】
メッセージフローの数
この方法は、自動的な調整に使用され得る。どのメッセージフローを生成するかは、セッションに基づいて制御されることが好ましい。取引日の間、取引は異なるセッション状態にある。例えば、取引は、プレオープン、オープン、クローズド、オープン２、ナイト、などである。システムにおけるトラフィックは、どのセッションであるかに依存して異なる。したがって、各セッションに関して、取引は、配信しようとする情報をどのタイプの情報にするかを特定する。ＭＢＰは１つのセッションで十分であるが、他のセッションはＭＢＰとＭＢＯの両方のメッセージフローが配信されること、或いはＯＤＳメッセージを必要とする。
【００９６】
更に、リモートターミナルは、異なるオーダブックに関連するデータを受信することを要求する。例えば、データの半分はバックグランドに格納され見えないようにする。リモートターミナルがオーダブックを切り替えたとき、データはすでにリモートターミナルに格納されており、他のオーダブックのために新しいデータを要求する必要がない。こうして、オプションは、使用されることになるデータのみをダウンロードすることとなる。
【００９７】
取引は、ピーク状況のための特別なセッションを定義する。このセッションは、最も重要なメッセージフローのみを有するようにする。システムがピーク状態に移行し、自動的な調整機能が利用可能な帯域幅を超えるネットワークトラフィックを隠すのに十分ではない場合、取引のマーケットコントロール機能はマーケットをピークセッションに移す。これにより、絶対的には必要でないメッセージフローを不許可とする。これは自動的又は手動で行われ得る。
【００９８】
この自動調整機能を実施する場合、解決策において遅延ファクタを備えることが好ましい。この遅延ファクタの目的は、帯域幅利用がその限度の付近にある場合における揺らぎから自動的な機能を隠すことである。特性は、その振る舞いを急速にいったりきたりさせるべきではない。これは以下の技術の一つを使用することによりなされる。すなわち、自動調整機能がデータの抽出の変更と配信を開始できるようになる前にある時間の経過を必要とする手法、または、上限及び下限の閾値を定義する手法である。例えば、上限の閾値がデータレートの９０％に、下限の閾値がデータレートの８０％に定義される。データレートが９０％を超えた場合、自動調整機能はデータの抽出及び／又は配信を削減する。データレートが全帯域幅の７０％を下回った場合は、自動調整機能はデータの抽出及び／又は配信を増加させる。他の閾値、例えば、８０％／７０％、９５％／８５％、９０％／８０％、１００％／７０％、等を用いることもできる。
【００９９】
本発明は、データレベルがあるレベルで、或いはあるレベル内でキープされることを達成する。しかしながら、用心のために、自動調整機能が扱うことのできない特定のレベルを超えた場合にバックプレッシャ機能が起動する。こうして、特定の負荷において、バックプレッシャ機能に、データの送信元がシステムが扱える量を超えるデータにおける送信を行うことを妨げることによりシステムパフォーマンスをコントロールさせるほうがよい。
【０１００】
上記説明において、用語「comprising」は他の要素やステップを除外するものではない。「a」「an」は複数を除外するものではない。
【０１０１】
更に、用語「include」、「contain」は他の要素やステップを除外するものではない。
【図１】
2010514034.tif 000003
【図２】
2010514034.tif 000004
【図３】
2010514034.tif 000005
【図４】
2010514034.tif 000006
【図５】
2010514034.tif 000007
【国際調査報告】
2010514034.tif 000008
2010514034.tif 000009
2010514034.tif 000010