IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ハイアニス・ポート・リサーチ・インコーポレーテッドの特許一覧

特表2023-539430ポイントツーポイントメッシュアーキテクチャに基づく電子取引システム及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-09-14
(54)【発明の名称】ポイントツーポイントメッシュアーキテクチャに基づく電子取引システム及び方法
(51)【国際特許分類】
   G06F 9/52 20060101AFI20230907BHJP
   G06Q 40/04 20120101ALI20230907BHJP
   G06Q 20/02 20120101ALI20230907BHJP
【FI】
G06F9/52 150Z
G06Q40/04
G06Q20/02
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023507533
(86)(22)【出願日】2021-08-05
(85)【翻訳文提出日】2023-03-24
(86)【国際出願番号】 US2021044754
(87)【国際公開番号】W WO2022031975
(87)【国際公開日】2022-02-10
(31)【優先権主張番号】16/988,491
(32)【優先日】2020-08-07
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/988,510
(32)【優先日】2020-08-07
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.HDMI
2.FIREWIRE
(71)【出願人】
【識別番号】519435991
【氏名又は名称】ハイアニス・ポート・リサーチ・インコーポレーテッド
【氏名又は名称原語表記】HYANNIS PORT RESEARCH,INC.
(74)【代理人】
【識別番号】100112737
【弁理士】
【氏名又は名称】藤田 考晴
(74)【代理人】
【識別番号】100136168
【弁理士】
【氏名又は名称】川上 美紀
(74)【代理人】
【識別番号】100196117
【弁理士】
【氏名又は名称】河合 利恵
(72)【発明者】
【氏名】アンソニー ディー アミカンジョリ
(72)【発明者】
【氏名】アレン バスト
(72)【発明者】
【氏名】ジョシュア ローゼン ビー
(72)【発明者】
【氏名】クリストフ ユーハス
【テーマコード(参考)】
5L055
【Fターム(参考)】
5L055AA01
5L055BB51
(57)【要約】
電子取引システム及び対応する方法は、ポイントツーポイントメッシュアーキテクチャに基づき、ゲートウェイ、コアコンピュートノード及びシーケンサを備え、コアコンピュートノードは電子取引マッチング機能を実行し、ゲートウェイはメッセージをコアコンピュートノードに第1の直接接続を介して送信する。ゲートウェイはメッセージをシーケンサに第2の直接接続を介して送信し、シーケンサは順序マーク付きメッセージをコアコンピュートノードに第3の直接接続を介して送信し、コアコンピュートノードは順序マーク付きメッセージに基づき他のメッセージ間の相対順位付けを決定して電子取引マッチング機能を完了する。ゲートウェイ、コアコンピュートノード、シーケンサ及び各直接接続は、ポイントツーポイントメッシュアーキテクチャの一部分を構成し、ローレイテンシー、公平性及びフォールトトレランスを示し、金融商品の高速で確定的な電子取引を実行する。

【特許請求の範囲】
【請求項1】
電子取引システムであって、
ゲートウェイと、
電子取引マッチング機能を実行するように構成されたコアコンピュートノードと、
シーケンサと、
を備え、
前記ゲートウェイと前記コアコンピュートノードとは第1の直接接続を介して結合され、前記ゲートウェイと前記シーケンサとは第2の直接接続を介して結合され、前記シーケンサと前記コアコンピュートノードとは第3の直接接続を介して結合され、前記第1、第2及び第3の直接接続はそれぞれの非共有帯域幅を有し、
前記ゲートウェイは、金融商品を買付又は売却する指値を伴う電子取引要求を表すメッセージを前記コアコンピュートノードに前記第1の直接接続を介して送信するように構成され、これに対して、前記メッセージは、前記コアコンピュートノードによって受信され、前記ゲートウェイはさらに、前記メッセージを前記シーケンサに前記第2の直接接続を介して送信するように構成され、前記シーケンサは、これに対して順序マーク付きメッセージを前記コアコンピュートノードに前記第3の直接接続を介して送信するように構成され、前記シーケンサは、前記ゲートウェイと前記コアコンピュートノードの間に前記第2及び第3の直接接続を介して挿入され、前記シーケンサによって送信される前記順序マーク付きメッセージは、前記ゲートウェイによって送信された前記メッセージの順序付けされたバージョンであり、これに対して、前記順序マーク付きメッセージは、前記コアコンピュートノードによって受信され、前記コアコンピュートノードは、前記電子取引システムにおいて前記コアコンピュートノードによって受信される他のメッセージの順序マーク付きバージョンの間で前記順序マーク付きメッセージの相対順位付けを決定するように構成され、前記コアコンピュートノードはさらに、決定された前記相対順位付けに応じて前記電子取引要求について前記電子取引マッチング機能を完了し、前記金融商品について前記指値を相手方指値とマッチングさせ、前記金融商品の電子取引を可能とするように構成されている、電子取引システム。
【請求項2】
前記メッセージ及び前記順序マーク付きメッセージは同一のユーザデータを含み、該ユーザデータは前記電子取引要求に対応付けられる、請求項1に記載の電子取引システム。
【請求項3】
前記メッセージは、参加者デバイスから前記ゲートウェイによって受信された着信メッセージの受信に応じて前記ゲートウェイによって送信されたゲートウェイメッセージであり、前記シーケンサはさらに、これに対して、前記順序マーク付きメッセージを前記ゲートウェイに前記第2の直接接続を介して送信するように構成され、これに対して、前記順序マーク付きメッセージは前記ゲートウェイによって受信され、前記順序マーク付きメッセージは第1の順序マーク付きメッセージであり、前記コアコンピュートノードはさらに、
前記ゲートウェイメッセージの受信に応じて、コアコンピュートノードメッセージを前記ゲートウェイに前記第1の直接接続を介して送信するように構成され、
前記コアコンピュートノードメッセージを前記シーケンサに前記第3の直接接続を介して送信するように構成され、前記シーケンサはさらに、これに対して第2の順序マーク付きメッセージを前記ゲートウェイに前記第2の直接接続を介して送信するように構成され、前記第2の順序マーク付きメッセージは前記コアコンピュートノードメッセージの順序付けされたバージョンであり、前記ゲートウェイはさらに、
前記コアコンピュートノードから前記ゲートウェイに送信された前記第2の順序マーク付きメッセージ及び他のメッセージの順序マーク付きバージョンの前記相対順位付けを決定するように構成され、
発信メッセージを前記参加者デバイスに送信するように構成され、前記発信メッセージは決定された前記相対順位付けに応じて送信され、前記シーケンサはさらに、これに対して前記第2の順序マーク付きメッセージを前記コアコンピュートノードに前記第3の直接接続を介して送信するように構成されている、請求項1に記載の電子取引システム。
【請求項4】
前記ゲートウェイは複数のゲートウェイのうちの所与のゲートウェイであり、前記コアコンピュートノードは複数のコアコンピュートノードのうちの所与のコアコンピュートノードであり、
前記複数のゲートウェイの各前記ゲートウェイは、前記複数のコアコンピュートノードの各前記コアコンピュートノードにそれぞれの前記第1の直接接続を介して結合され、
前記シーケンサは、前記複数のゲートウェイの各前記ゲートウェイにそれぞれの前記第2の直接接続を介して結合され、前記複数のコアコンピュートノードの各前記コアコンピュートノードにそれぞれの前記第3の直接接続を介して結合され、前記複数のゲートウェイ、前記複数のコアコンピュートノード、前記シーケンサ及びそれぞれの直接接続は、ポイントツーポイントメッシュシステムの少なくとも一部分を構成し、該ポイントツーポイントメッシュシステム内で、
前記複数のゲートウェイの各前記ゲートウェイは、そこから送信されるそれぞれのコンピュートノード宛てメッセージを前記複数のコアコンピュートノードの全てのコンピュートノード及び前記シーケンサに送信するように構成され
前記複数のコアコンピュートノードの各前記コアコンピュートノードは、そこから送信されたそれぞれのゲートウェイ宛てメッセージを前記複数のゲートウェイの全ての前記ゲートウェイ及び前記シーケンサに送信するように構成され、
前記シーケンサはさらに、前記それぞれのコンピュートノード宛てメッセージ又は前記それぞれのゲートウェイ宛てメッセージの受信に応じて、それぞれの前記順序マーク付きメッセージを前記複数のゲートウェイ及び前記複数のコアコンピュートノードに送信するように構成されている、請求項1に記載の電子取引システム。
【請求項5】
前記シーケンサは、前記ポイントツーポイントメッシュシステムにおける複数のシーケンサのうちの所与のシーケンサであり、
前記複数のゲートウェイの各前記ゲートウェイは、前記複数のシーケンサの各前記シーケンサにそれぞれの前記第2の直接接続を介して結合され、
前記複数のコアコンピュートノードの各前記コアコンピュートノードは、前記複数のシーケンサの各前記シーケンサにそれぞれの前記第3の直接接続を介して結合され、
前記所与のシーケンサは前記ポイントツーポイントメッシュシステムにサービス提供中の現在アクティブなシーケンサであり、前記複数のシーケンサの他の各シーケンサは前記現在アクティブなシーケンサを引き継ぐために待機しているスタンバイシーケンサであり、
前記複数のシーケンサの各前記シーケンサは、前記複数のシーケンサの他の各シーケンサにそれぞれの第4の直接接続を介して結合され、
前記複数のゲートウェイの各前記ゲートウェイはさらに、それぞれのコンピュートノード宛てメッセージを前記複数のシーケンサのうちの前記所与のシーケンサに送信するように構成され、
前記複数のコアコンピュートノードの各前記コアコンピュートノードはさらに、それぞれのゲートウェイ宛てメッセージを前記複数のシーケンサのうちの前記所与のシーケンサに送信するように構成され、
前記所与のシーケンサにはさらに、前記順序マーク付きメッセージを前記複数のシーケンサの他の各シーケンサに各それぞれの前記第4の直接接続を介して送信して、前記現在アクティブなシーケンサが故障した場合に、前記スタンバイシーケンサが前記現在アクティブなシーケンサを引き継ぐことを可能とするように構成されている、請求項4に記載の電子取引システム。
【請求項6】
前記所与のゲートウェイによって送信される前記それぞれのコンピュートノード宛てメッセージは、前記複数のコアコンピュートノードによって受信される同じメッセージであり、前記複数のコアコンピュートノードは、前記同じメッセージの受信に応じて、応答メッセージを生成するように構成され、該応答メッセージは前記複数のコアコンピュートノードの中から前記所与のゲートウェイにおいて受信され、前記所与のゲートウェイはさらに、
前記同じメッセージの受信に応じて生成された前記応答メッセージのうちの所与の応答メッセージに基づいて行動をとるように構成され、該所与の応答メッセージは前記同じメッセージの受信に応じて生成された他の応答メッセージに相対して最初に前記所与のゲートウェイに到着するものであり、前記所与のゲートウェイはさらに、
前記所与の応答メッセージの後に到着する前記他の応答メッセージを無視するように構成されている、請求項4に記載の電子取引システム。
【請求項7】
同じメッセージを表す複数のコンピュートノード宛てメッセージは、前記所与のコンピュートノードにおいて前記複数のゲートウェイの中から受信され、前記所与のコンピュートノードはさらに、
前記複数のコンピュートノード宛てメッセージのうちの所与のコンピュートノード宛てメッセージに基づいて行動をとるように構成され、該所与のコンピュートノード宛てメッセージは前記同じメッセージを表す前記複数のコンピュートノード宛てメッセージのうちの他のコンピュートノード宛てメッセージに相対して最初に前記所与のコンピュートノードに到着するものであり、前記所与のコンピュートノードはさらに、
前記所与のコンピュートノード宛てメッセージの後に到着する前記他のコンピュートノード宛てメッセージを無視するように構成されている、請求項4に記載の電子取引システム。
【請求項8】
前記コアコンピュートノードによってアクセス可能な注文控え帳をさらに備え、前記コアコンピュートノードはさらに、
前記電子取引マッチング機能を用いて前記金融商品に関する取引注文をマッチングさせるように構成され、
前記注文控え帳における前記金融商品の残持ち高を維持するように構成され、前記金融商品の金額不一致が、前記電子取引マッチング機能を実行する結果としてもたらされ、前記残持ち高は前記金融商品の前記金額不一致を含む、請求項1に記載の電子取引システム。
【請求項9】
クロックをさらに備え、前記ゲートウェイ、前記コアコンピュートノード及び前記シーケンサは、前記クロックに基づいて同期される、請求項1に記載の電子取引システム。
【請求項10】
前記ゲートウェイはさらに、
少なくとも1つの参加者デバイスにサービスを提供するように構成され、
前記ゲートウェイにおける着信メッセージの受信に応じて前記メッセージを前記シーケンサ及び前記コアコンピュートノードに送信するように構成され、前記着信メッセージは前記少なくとも1つの参加者デバイスによって発送され、前記シーケンサはさらに、固有順序識別子を用いて前記メッセージをマーク付けすることによって、又は受信した前記メッセージの表示を作成し、前記固有順序識別子を用いて前記表示をマーク付けし、マーク付けされた表示を送信することによって、前記順序マーク付きメッセージを生成するように構成され、前記マーク付けされた表示は前記順序マーク付きメッセージである、請求項1に記載の電子取引システム。
【請求項11】
前記第1の直接接続、前記第2の直接接続及び前記第3の直接接続又はこれらの一部の組について、少なくとも1つのそれぞれの冗長直接接続をさらに備える請求項1に記載の電子取引システム。
【請求項12】
前記ゲートウェイは、共有ゲートウェイネットワークを介して相互に通信可能に結合された複数のゲートウェイのうちの所与のゲートウェイであり、
前記コアコンピュートノードは、共有コアコンピュートノードネットワークを介して相互に通信可能に結合された複数のコアコンピュートノードのうちの所与のコアコンピュートノードであり、
前記シーケンサは、共有シーケンサネットワークを介して又はそれぞれの第4の直接接続を介して相互に通信可能に結合された複数のシーケンサのうちの所与のシーケンサである、請求項1に記載の電子取引システム。
【請求項13】
システム状態ログをさらに備え、前記所与のシーケンサは、前記システム状態ログを前記複数のシーケンサのうちの少なくとも1つの他のシーケンサに前記共有シーケンサネットワークを介して送信し、又は前記システム状態ログをデータストアに記憶するように構成され、該データストアは、前記共有シーケンサネットワークを介して前記複数のシーケンサにアクセス可能である、請求項12に記載の電子取引システム。
【請求項14】
前記電子取引システムはアクティブな電子取引システムであり、前記複数のシーケンサの少なくとも1つの前記シーケンサはディザスタリカバリサイトに通信可能に結合され、該ディザスタリカバリサイトはスタンバイ電子取引システムを含み、該スタンバイ電子取引システムは、前記アクティブな電子取引システムの複製であり、該アクティブな電子取引システムが故障した場合に電子取引が継続可能となるように構成される、請求項12に記載の電子取引システム。
【請求項15】
前記ゲートウェイ、前記コアコンピュートノード、前記シーケンサ並びに前記第1、第2及び第3の直接接続は、第1のポイントツーポイントメッシュシステムを構成し、
前記電子取引システムは、プロキシノードに通信可能に結合された第1の電子取引システムであり、前記プロキシノードはさらに少なくとも1つの参加者デバイス及び第2の電子取引システムに通信可能に結合され、該第2の電子取引システムは第2のポイントツーポイントメッシュシステムを含み、
前記プロキシノードは、前記少なくとも1つの参加者デバイスからの着信メッセージの受信に応じて前記メッセージを前記第1及び第2の電子取引システムに送信するように構成され、該第1及び第2の電子取引システムは、前記プロキシノードによって送信された前記メッセージに対するそれぞれの応答を生成するように構成され、前記プロキシノードはさらに、前記第1又は第2の電子取引システムから生成及び受信された前記それぞれの応答のうちの最初に到着する応答の受信に応じて前記少なくとも1つの参加者デバイスに応答を送信するように構成されている、請求項1に記載の電子取引システム。
【請求項16】
電子取引を実行する方法であって、
金融商品を買付又は売却する指値を伴う電子取引要求を表すメッセージをゲートウェイからコアコンピュートノードに第1の直接接続を介して送信するステップと、
これに対して、電子取引システムにおいて電子取引機能を実行するために前記メッセージを前記コアコンピュートノードにおいて受信するステップと、
前記メッセージを前記ゲートウェイから前記電子取引システムにおけるシーケンサに第2の直接接続を介して送信し、これに対して順序マーク付きメッセージを前記シーケンサから前記コアコンピュートノードに第3の直接接続を介して送信するステップであって、前記第1、第2及び第3の直接接続はそれぞれの非共有帯域幅を有し、前記シーケンサは前記ゲートウェイと前記コアコンピュートノードの間に前記第2及び第3の直接接続を介して挿入され、前記シーケンサによって送信される前記順序マーク付きメッセージは、前記第2の直接接続を介して前記ゲートウェイから送信された前記メッセージの順序付けされたバージョンである、ステップと、
これに対して、前記コアコンピュートノードにおいて、前記順序マーク付きメッセージを受信するステップと、
前記コアコンピュートノードにおいて、前記ゲートウェイからの他のメッセージを受信し、前記コアコンピュートノードにおいて、前記シーケンサからの前記他のメッセージの順序マーク付きバージョンを受信するステップと、
前記電子取引システムにおいて前記コアコンピュートノードによって受信された前記他のメッセージの前記順序マーク付きバージョンのうちの前記順序マーク付きメッセージの相対順位付けを前記コアコンピュートノードにおいて決定するステップと、
前記コアコンピュートノードにおいて、決定された前記相対順位付けに応じて前記電子取引要求に対して電子取引マッチング機能を完了するステップであって、該完了するステップは前記金融商品について前記指値を相手方指値とマッチングさせ、前記金融商品の電子取引を可能とする、ステップと、
を備える方法。
【請求項17】
前記メッセージ及び前記順序マーク付きメッセージは同一のユーザデータを含み、該ユーザデータは電子取引要求に対応付けられる、請求項16に記載の方法。
【請求項18】
前記メッセージはゲートウェイメッセージであり、前記方法は、前記ゲートウェイにおいて参加者デバイスからの着信メッセージを受信するステップをさらに備え、前記ゲートウェイメッセージを送信するステップは、前記ゲートウェイによる前記参加者デバイスからの前記着信メッセージの受信に応じて前記ゲートウェイによって前記ゲートウェイメッセージを送信するステップを含み、前記順序マーク付きメッセージは第1の順序マーク付きメッセージであり、前記方法は、
前記第1の順序マーク付きメッセージを前記シーケンサから前記ゲートウェイに前記第2の直接接続を介して送信するステップであって、これに対して、前記第1の順序マーク付きメッセージは前記ゲートウェイによって受信される、ステップと、
前記メッセージの受信に応じて、コアコンピュートノードメッセージを前記コアコンピュートノードから前記ゲートウェイに前記第1の直接接続を介して送信するステップと、
前記コアコンピュートノードメッセージを前記シーケンサに前記第3の直接接続を介して送信し、これに対して第2の順序マーク付きメッセージを前記シーケンサから前記ゲートウェイに前記第2の直接接続を介して送信するステップであって、前記第2の順序マーク付きメッセージは前記コアコンピュートノードメッセージの順序付けされたバージョンである、ステップと、
前記コアコンピュートノードから前記ゲートウェイに送信された前記第2の順序マーク付きメッセージ及び他のメッセージの前記順序マーク付きバージョンの前記相対順位付けを前記ゲートウェイにおいて決定ステップと、
発信メッセージを前記参加者デバイスに送信するステップであって、前記発信メッセージは決定された前記相対順位付けに応じて送信される、ステップと、
前記第2の順序マーク付きメッセージを前記シーケンサから前記コアコンピュートノードに前記第3の直接接続を介して送信するステップと、
をさらに備える請求項16に記載の方法。
【請求項19】
前記ゲートウェイは複数のゲートウェイのうちの所与のゲートウェイであり、前記コアコンピュートノードは複数のコアコンピュートノードのうちの所与のコアコンピュートノードであり、前記方法は、
前記複数のゲートウェイの各前記ゲートウェイから送信されるそれぞれのコンピュートノード宛てメッセージを前記複数のコアコンピュートノードの全ての前記コアコンピュートノード及び前記シーケンサに送信するステップと、
前記複数のコアコンピュートノードの各前記コアコンピュートノードから送信されたそれぞれのゲートウェイ宛てメッセージを前記複数のゲートウェイの全ての前記ゲートウェイ及び前記シーケンサに送信するステップと、
前記シーケンサにおいて受信された前記それぞれのコンピュートノード宛てメッセージ及び前記それぞれのゲートウェイ宛てメッセージに応じて、それぞれの前記順序マーク付きメッセージを前記シーケンサから前記複数のゲートウェイ及び前記複数のコアコンピュートノードに送信するステップと、
をさらに備える請求項16に記載の方法。
【請求項20】
前記シーケンサは、複数のシーケンサのうちの所与のシーケンサであり、前記方法は、
前記複数のゲートウェイの各ゲートウェイから送信されたそれぞれのコンピュートノード宛てメッセージを前記所与のシーケンサに送信するステップと、
前記複数のコアコンピュートノードの各コアコンピュートノードから送信された前記それぞれのゲートウェイ宛てメッセージを前記所与のシーケンサに送信するステップと、
前記順序マーク付きメッセージを前記所与のシーケンサから前記複数のシーケンサのうちの他の各前記シーケンサに送信するステップと、
をさらに備える請求項19に記載の方法。
【請求項21】
前記複数のコアコンピュートノードにおいて同じメッセージを受信するステップであって、該同じメッセージは前記所与のゲートウェイによって送信された前記それぞれのコンピュートノード宛てメッセージである、ステップと、
前記同じメッセージの受信に応じて、前記複数のコアコンピュートノードにおいて応答メッセージを生成するステップと、
前記所与のゲートウェイにおいて、前記複数のコアコンピュートノードの中から前記応答メッセージを受信するステップと、
前記同じメッセージの受信に応じて生成された前記応答メッセージのうちの所与の応答メッセージに基づいて前記所与のゲートウェイにおいて行動を実行するステップであって、前記所与の応答メッセージは、前記同じメッセージの受信に応じて生成された前記応答メッセージのうちの他の応答メッセージに相対して最初に前記所与のゲートウェイに到着するものである、ステップと、
前記所与の応答メッセージの後に前記所与のゲートウェイに到着する前記他の応答メッセージを無視するステップと、
をさらに備える請求項19に記載の方法。
【請求項22】
前記所与のコンピュートノードにおいて、前記複数のゲートウェイの中から複数のコンピュートノード宛てメッセージを受信するステップであって、該複数のコンピュートノード宛てメッセージは同じメッセージを表す、ステップと、
前記複数のコンピュートノード宛てメッセージのうちの所与のコンピュートノード宛てメッセージに基づいて前記所与のコンピュートノードにおいて行動を実行するステップであって、前記所与のコンピュートノード宛てメッセージは、前記同じメッセージを表す前記複数のコンピュートノード宛てメッセージのうちの他のコンピュートノード宛てメッセージに相対して最初に前記所与のコンピュートノードに到着するものである、ステップと、
前記所与のコンピュートノード宛てメッセージの後に前記所与のコンピュートノードに到着する前記他のコンピュートノード宛てメッセージを無視するステップと、
をさらに備える請求項19に記載の方法。
【請求項23】
実行される前記電子取引マッチング機能に基づいて、前記コアコンピュートノードにおいて、前記金融商品に関する取引注文をマッチングさせるステップと、
注文控え帳における前記金融商品の残持ち高を維持するステップであって、前記残持ち高は実行された前記電子取引マッチング機能によってもたらされた前記金融商品の金額不一致である、ステップと、
をさらに備える請求項16に記載の方法。
【請求項24】
前記ゲートウェイ、前記コアコンピュートノード及び前記シーケンサをクロックに基づいて同期させるステップをさらに備える請求項16に記載の方法。
【請求項25】
前記メッセージはゲートウェイメッセージであり、前記方法は、
前記ゲートウェイにおいて少なくとも1つの参加者デバイスにサービスを提供するステップと、
前記ゲートウェイにおいて着信メッセージを受信するステップと、
前記ゲートウェイにおける前記着信メッセージの受信に応じて前記ゲートウェイメッセージを前記ゲートウェイから前記シーケンサ及び前記コアコンピュートノードに送信するステップであって、前記着信メッセージは前記少なくとも1つの参加者デバイスによって発送されたものである、ステップと、
固有順序識別子を用いて前記メッセージ又はその表示をマーク付けすることによって、前記順序マーク付きメッセージを生成するステップと、
をさらに備える請求項16に記載の方法。
【請求項26】
前記第1の直接接続、前記第2の直接接続及び前記第3の直接接続又はこれらの一部の組を、少なくとも1つのそれぞれの冗長直接接続を介して保護するステップをさらに備える請求項16に記載の方法。
【請求項27】
前記ゲートウェイは複数のゲートウェイのうちの所与のゲートウェイであり、前記コアコンピュートノードは複数のコアコンピュートノードのうちの所与のコアコンピュートノードであり、前記シーケンサは複数のシーケンサのうちの所与のシーケンサであり、前記方法は、
前記複数のゲートウェイが共有ゲートウェイネットワークを介して通信可能となるようにするステップと、
前記複数のコアコンピュートノードが共有コアコンピュートノードネットワークを介して通信可能となるようにするステップと、
前記複数のシーケンサが共有シーケンサネットワークを介して又はそれぞれの第4の直接接続を介して通信可能となるようにするステップと、
をさらに備える請求項16に記載の方法。
【請求項28】
前記所与のシーケンサから前記複数のシーケンサのうちの少なくとも1つの他のシーケンサに前記共有シーケンサネットワークを介してシステム状態ログを送信し、又は前記所与のシーケンサによって前記システム状態ログをデータストアに記憶するステップであって、該データストアは前記共有シーケンサネットワークを介して前記複数のシーケンサにアクセス可能である、ステップをさらに備える請求項27に記載の方法。
【請求項29】
前記電子取引システムはアクティブな電子取引システムであり、前記方法は、
前記複数のシーケンサのうちの少なくとも1つの前記シーケンサがディザスタリカバリサイトと通信可能となるようにするステップであって、該ディザスタリカバリサイトはスタンバイ電子取引システムを含み、該スタンバイ電子取引システムは、前記アクティブな電子取引システムの複製であり、前記アクティブな電子取引システムが故障した場合に電子取引が継続可能となるように構成される、ステップをさらに備える請求項27に記載の方法。
【請求項30】
電子取引システムのシーケンサであって、一連の命令を符号化した非一時的コンピュータ可読媒体を備え、前記一連の命令は、前記シーケンサに読み込まれて実行されると、該シーケンサに、
前記電子取引システムのポイントツーポイントメッシュシステムにおいて第1の直接接続を介してゲートウェイと直接通信させ、
前記電子取引システムの前記ポイントツーポイントメッシュシステムにおいて第2の直接接続を介してコアコンピュートノードと直接通信させ、前記シーケンサは前記ゲートウェイと前記コアコンピュートノードの間に前記第1及び第2の直接接続を介して挿入され、前記第1及び第2の直接接続はそれぞれの非共有帯域幅を有し、
固有順序識別子を用いてメッセージ又はその表示をマーク付けすることによって順序マーク付きメッセージを生成させ、該メッセージは前記シーケンサによってそれぞれ前記第1又は第2の直接接続を介して受信され、前記一連の命令はさらに、前記シーケンサに、前記順序マーク付きメッセージを前記ゲートウェイ及び前記コアコンピュートノードに送信させる、シーケンサ。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2020年8月7日出願の米国特許出願第16/988510号の一部継続出願及び2020年8月7日出願の米国特許出願第16/988491号の一部継続出願である。上記出願の教示全体が、参照によりここに取り込まれる。
【背景技術】
【0002】
現在の金融商品取引システムによると、トレーダーは通信ネットワークを介して電子的に注文を提出し、確認、マーケットデータ及びその他の情報を受信することができる。この「電子取引システム」ともいわれるものによって実現される「電子的な」市場は、これまでのトレーダー又はその代理の者の全員が指定位置、すなわち、取引ピットに物理的に立って口頭及び視覚的な/手振りでのコミュニケーションを介して相互に取引するピットベースの「オープンアウトクライ」取引システムを大きく代替し、ほとんどの金融商品を取引する支配的な手段となっている。
【0003】
電子取引システムにおいて株式及び/又は他の金融商品を取引する際に、電子取引システムは、一般的に取引注文、すなわち、売値注文と相応の買値注文とをマッチングさせて取引を生み出す。取引に関連する条件によっては、売値注文と買値注文とをマッチングさせる処理は、複雑化する場合がある。
【0004】
電子取引システムの一例は、通常は中央サーバ内に常駐する中央マッチングエンジン及び複数の分散サーバ又はゲートウェイを備えるコンピュータ化された取引所である。このようなコンピュータ化された取引所では、通常の処理は、以下のようになり得る。注文入力メッセージ、例えば、売値注文及び/又は買値注文がクライアント又は参加者デバイス、例えば、トレーダー端末から、コンピュータ化された取引所に送信され、コンピュータ化された取引所は注文入力メッセージを処理する。この注文入力メッセージは、中央サーバにおいてゲートウェイを介して受信される。例えば中央サーバにおけるコンピュータ化された取引所における処理は、とりわけ、受信した注文入力メッセージに基づいて注文のマッチングを実行することを含み得る。
【0005】
そして、中央サーバによって生成された注文処理承認メッセージが、通常は、トランザクションを転送するゲートウェイを介して参加者デバイスに返送される。ゲートウェイは、注文処理承認メッセージが参加者デバイスに返送される前に、追加の処理を行う場合もある。中央サーバは、注文処理承認メッセージに関する情報を、受信したものと同じ形式又はその他の形式のいずれかで、注文処理承認メッセージの処理を実行する1以上の他のゲートウェイに拡散して、マーケットデータストリームを介してマーケットデータ出力を生成してもよい。マーケットデータ出力は、通常は、参加者デバイス又はマーケットデータストリームの他の加入者に様々な通信機構を通じて転送され、ゲートウェイにおける追加の処理を必要とする。
【発明の概要】
【0006】
例示実施形態によると、電子取引システムは、ゲートウェイ、電子取引マッチング機能を実行するように構成されたコアコンピュートノード(ここでは互換可能にコアコンピュートエンジン又はコンピュートエンジンともいう)及びシーケンサを備える。ゲートウェイとコアコンピュートノードとは、第1の直接接続を介して結合される。ゲートウェイとシーケンサとは、第2の直接接続を介して結合される。シーケンサとコアコンピュートノードとは、第3の直接接続を介して結合される。第1、第2及び第3の直接接続は、それぞれの非共有帯域幅を有する。ゲートウェイは、金融商品を買付又は売却する指値を伴う電子取引要求を表すメッセージをコアコンピュートノードに第1の直接接続を介して送信するように構成される。これに対して、メッセージは、コアコンピュートノードによって受信される。ゲートウェイはさらに、メッセージをシーケンサに第2の直接接続を介して送信するように構成され、シーケンサは、これに対して順序マーク付きメッセージをコアコンピュートノードに第3の直接接続を介して送信するように構成される。シーケンサは、ゲートウェイとコアコンピュートノードの間に第2及び第3の直接接続を介して挿入される。シーケンサによって送信される順序マーク付きメッセージは、ゲートウェイによって送信されたメッセージの順序付けされたバージョンである。これに対して、順序マーク付きメッセージは、コアコンピュートノードによって受信される。コアコンピュートノードは、電子取引システムにおいてコアコンピュートノードによって受信される他のメッセージの順序マーク付きバージョンの間で順序マーク付きメッセージの相対順位付け(すなわち、順序)を決定するように構成される。コアコンピュートノードはさらに、決定された相対順位付けに応じて電子取引要求について電子取引マッチング機能を完了し、金融商品について指値を相手方指値とマッチングさせ、金融商品の電子取引を可能とするように構成される。
【0007】
メッセージ及び順序マーク付きメッセージは、同一のユーザデータを含み得る。ユーザデータは、電子取引要求に対応付けられる。
【0008】
メッセージは、参加者デバイスからゲートウェイによって受信された着信メッセージの受信に応じてゲートウェイによって送信されたゲートウェイメッセージであってもよい。シーケンサはさらに、これに対して、順序マーク付きメッセージをゲートウェイに第2の直接接続を介して送信するように構成される。これに対して、順序マーク付きメッセージは、ゲートウェイによって受信される。順序マーク付きメッセージは、第1の順序マーク付きメッセージである。コアコンピュートノードはさらに、ゲートウェイメッセージの受信に応じて、コアコンピュートノードメッセージをゲートウェイに第1の直接接続を介して送信するように構成される。コアコンピュートノードはさらに、コアコンピュートノードメッセージをシーケンサに第3の直接接続を介して送信するように構成され、シーケンサはさらに、これに対して、第2の順序マーク付きメッセージをゲートウェイに第2の直接接続を介して送信するように構成される。第2の順序マーク付きメッセージは、コアコンピュートノードメッセージの順序付けされたバージョンである。ゲートウェイはさらに、コアコンピュートノードからゲートウェイに送信された第2の順序マーク付きメッセージ及び他のメッセージの順序マーク付きバージョンの相対順位付けを決定するように構成される。ゲートウェイはさらに、発信メッセージを参加者デバイスに送信するように構成される。発信メッセージは、決定された相対順位付けに応じて送信される。シーケンサはさらに、これに対して、第2の順序マーク付きメッセージをコアコンピュートノードに第3の直接接続を介して送信するように構成される。
【0009】
ゲートウェイは、複数のゲートウェイのうちの所与のゲートウェイであり得る。コアコンピュートノードは、複数のコアコンピュートノードのうちの所与のコアコンピュートノードであり得る。複数のゲートウェイの各ゲートウェイは、複数のコアコンピュートノードの各コアコンピュートノードにそれぞれの第1の直接接続を介して結合され得る。シーケンサは、複数のゲートウェイの各ゲートウェイにそれぞれの第2の直接接続を介して結合され、複数のコアコンピュートノードの各コアコンピュートノードにそれぞれの第3の直接接続を介して結合され得る。複数のゲートウェイ、複数のコアコンピュートノード、シーケンサ及びそれぞれの直接接続は、ポイントツーポイントメッシュシステムの少なくとも一部分を構成し得る。
【0010】
ポイントツーポイントメッシュシステム内では、複数のゲートウェイの各ゲートウェイは、そこから送信されるそれぞれのコンピュートノード宛てメッセージを複数のコアコンピュートノードの全てのコンピュートノード及びシーケンサに送信するように構成され得る。コンピュートノードに宛てられるメッセージをここでは互換可能に「コンピュートノード宛て」メッセージという場合があることが理解されるべきである。また、ゲートウェイに宛てられるメッセージをここでは互換可能に「ゲートウェイ宛て」メッセージという場合がある。複数のコアコンピュートノードの各コアコンピュートノードは、そこから送信されたそれぞれのゲートウェイ宛てメッセージを複数のゲートウェイの全てのゲートウェイ及びシーケンサに送信するように構成され得る。シーケンサはさらに、それぞれのコンピュートノード宛てメッセージ又はそれぞれのゲートウェイ宛てメッセージの受信に応じて、それぞれの順序マーク付きメッセージを複数のゲートウェイ及び複数のコアコンピュートノードに送信するように構成され得る。
【0011】
シーケンサは、ポイントツーポイントメッシュシステムにおける複数のシーケンサのうちの所与のシーケンサであり得る。複数のゲートウェイの各ゲートウェイは、複数のシーケンサの各シーケンサにそれぞれの第2の直接接続を介して結合され得る。複数のコアコンピュートノードの各コアコンピュートノードは、複数のシーケンサの各シーケンサにそれぞれの第3の直接接続を介して結合され得る。所与のシーケンサは、ポイントツーポイントメッシュシステムにサービス提供中の現在アクティブなシーケンサであり得る。複数のシーケンサの他の各シーケンサは、現在アクティブなシーケンサを引き継ぐために待機しているスタンバイシーケンサであり得る。複数のシーケンサの各シーケンサは、複数のシーケンサの他の各シーケンサにそれぞれの第4の直接接続を介して結合され得る。複数のゲートウェイの各ゲートウェイはさらに、それぞれのコンピュートノード宛てメッセージを複数のシーケンサのうちの所与のシーケンサに送信するように構成され得る。複数のコアコンピュートノードの各コアコンピュートノードはさらに、それぞれのゲートウェイ宛てメッセージを複数のシーケンサのうちの所与のシーケンサに送信するように構成され得る。所与のシーケンサにはさらに、順序マーク付きメッセージを複数のシーケンサの他の各シーケンサに各それぞれの第4の直接接続を介して送信して、現在アクティブなシーケンサが故障した場合に、スタンバイシーケンサが現在アクティブなシーケンサを引き継ぐことを可能とするように構成され得る。
【0012】
所与のゲートウェイによって送信されるそれぞれのコンピュートノード宛てメッセージは、複数のコアコンピュートノードによって受信されるメッセージと同じであり得る。複数のコアコンピュートノードは、同じメッセージの受信に応じて、応答メッセージを生成するように構成され得る。応答メッセージは、複数のコアコンピュートノードの中から所与のゲートウェイにおいて受信され得る。所与のゲートウェイはさらに、同じメッセージの受信に応じて生成された応答メッセージのうちの所与の応答メッセージに基づいて行動をとるように構成され得る。所与の応答メッセージは、同じメッセージの受信に応じて生成された他の応答メッセージに相対して最初に所与のゲートウェイに到着し得る。ゲートウェイはさらに、所与の応答メッセージの後に到着する他の応答メッセージを無視するように構成され得る。
【0013】
同じメッセージを表す複数のコンピュートノード宛てメッセージは、所与のコンピュートノードにおいて複数のゲートウェイの中から受信され得る。所与のコンピュートノードはさらに、複数のコンピュートノード宛てメッセージのうちの所与のコンピュートノード宛てメッセージに基づいて行動をとるように構成され得る。所与のコンピュートノード宛てメッセージは、同じメッセージを表す複数のコンピュートノードメッセージのうちの他のコンピュートノード宛てメッセージに相対して最初に所与のコンピュートノードに到着し得る。所与のコアコンピュートノードはさらに、所与のコンピュートノード宛てメッセージ後に到着する他のコンピュートノード宛てメッセージを無視するように構成され得る。
【0014】
電子取引システムは、コアコンピュートノードによってアクセス可能な注文控え帳(order book)をさらに備え得る。コアコンピュートノードはさらに、電子取引マッチング機能を用いて金融商品に関する取引注文をマッチングさせるように構成され得る。コアコンピュートノードはさらに、注文控え帳における金融商品の残持ち高を維持するように構成され得る。金融商品の金額不一致が、電子取引マッチング機能を実行する結果としてもたらされる場合がある。残持ち高は、金融商品の金額不一致を含み得る。残持ち高は、数量よりも多くの情報を伝達可能であることが理解されるべきである。例えば、持ち高は、強気及び弱気(サイド)であってもよい。例示実施形態によると、残持ち高は、価格及び数量の双方を伝達する。
【0015】
電子取引システムは、クロックをさらに備え得る。ゲートウェイ、コアコンピュートノード及びシーケンサは、クロックに基づいて同期され得る。
【0016】
ゲートウェイはさらに、少なくとも1つの参加者デバイスにサービスを提供し、ゲートウェイにおける着信メッセージの受信に応じてメッセージをシーケンサ及びコアコンピュートノードに送信するように構成され得る。着信メッセージは、少なくとも1つの参加者デバイスによって発送され得る。シーケンサはさらに、固有順序識別子を用いてメッセージをマーク付けすることによって、又は受信したメッセージの表示を作成し、固有順序識別子を用いて表示をマーク付けし、マーク付けされた表示を送信することによって、順序マーク付きメッセージを生成するように構成され得る。マーク付けされる表示は、順序マーク付きメッセージであり得る。
【0017】
電子取引システムは、第1の直接接続、第2の直接接続及び第3の直接接続又はこれらの一部の組について、少なくとも1つのそれぞれの冗長直接接続をさらに備えていてもよい。
【0018】
ゲートウェイは、共有ゲートウェイネットワークを介して相互に通信可能に結合された複数のゲートウェイのうちの所与のゲートウェイであり得る。コアコンピュートノードは、共有コアコンピュートノードネットワークを介して相互に通信可能に結合された複数のコアコンピュートノードのうちの所与のコアコンピュートノードであり得る。シーケンサは、共有シーケンサネットワークを介して又はそれぞれの第4の直接接続を介して相互に通信可能に結合された複数のシーケンサのうちの所与のシーケンサであり得る。
【0019】
電子取引システムは、システム状態ログをさらに備えていてもよい。所与のシーケンサは、システム状態ログを複数のシーケンサのうちの少なくとも1つの他のシーケンサに共有シーケンサネットワークを介して送信し、又はシステム状態ログをデータストアに記憶するように構成され得る。データストアは、共有シーケンサネットワークを介して複数のシーケンサにアクセス可能であり得る。
【0020】
電子取引システムはアクティブな電子取引システムであってもよく、複数のシーケンサの少なくとも1つのシーケンサはディザスタリカバリサイトに通信可能に結合されていてもよい。ディザスタリカバリサイトは、スタンバイ電子取引システムを含み得る。スタンバイ電子取引システムは、アクティブな電子取引システムの複製であってもよく、アクティブな電子取引システムが故障した場合に電子取引が継続可能となるように構成され得る。
【0021】
ゲートウェイ、コアコンピュートノード、シーケンサ並びに第1、第2及び第3の直接接続は、第1のポイントツーポイントメッシュシステムを構成し得る。電子取引システムは、プロキシノードに通信可能に結合された第1の電子取引システムであり得る。プロキシノードはさらに、少なくとも1つの参加者デバイス及び第2の電子取引システムに通信可能に結合されてもよい。第2の電子取引システムは、第2のポイントツーポイントメッシュシステムを含み得る。プロキシノードは、少なくとも1つの参加者デバイスからの着信メッセージの受信に応じてメッセージを第1及び第2の電子取引システムに送信するように構成され得る。第1及び第2の電子取引システムは、プロキシノードによって送信されたメッセージに対するそれぞれの応答を生成するように構成され得る。プロキシノードはさらに、第1又は第2の電子取引システムから生成及び受信されたそれぞれの応答のうちの最初に到着する応答の受信に応じて少なくとも1つの参加者デバイスに応答を送信するように構成され得る。
【0022】
他の例示実施形態によると、電子取引を実行する方法は、金融商品を買付又は売却する指値を伴う電子取引要求を表すメッセージをゲートウェイからコアコンピュートノードに第1の直接接続を介して送信するステップを備える。方法は、これに対して、電子取引システムにおいて、電子取引機能を実行するためにメッセージをコアコンピュートノードにおいて受信するステップをさらに備える。方法は、メッセージをゲートウェイから電子取引システムにおけるシーケンサに第2の直接接続を介して送信し、これに対して順序マーク付きメッセージをシーケンサからコアコンピュートノードに第3の直接接続を介して送信するステップをさらに備える。第1、第2及び第3の直接接続は、それぞれの非共有帯域幅を有する。シーケンサは、ゲートウェイとコアコンピュートノードの間に第2及び第3の直接接続を介して挿入される。シーケンサによって送信される順序マーク付きメッセージは、第2の直接接続を介してゲートウェイから送信されたメッセージの順序付けされたバージョンである。方法は、これに対して、コアコンピュートノードにおいて、順序マーク付きメッセージを受信するステップをさらに備える。方法は、コアコンピュートノードにおいて、ゲートウェイからの他のメッセージを受信し、コアコンピュートノードにおいて、シーケンサからの他のメッセージの順序マーク付きバージョンを受信するステップをさらに備える。方法は、電子取引システムにおいてコアコンピュートノードによって受信された他のメッセージの順序マーク付きバージョンの間で順序マーク付きメッセージの相対順位付けをコアコンピュートノードにおいて決定するステップをさらに備える。方法は、コアコンピュートノードにおいて、決定された相対順位付けに応じて電子取引要求に対して電子取引マッチング機能を完了するステップをさらに備え、完了するステップは金融商品について指値を相手方指値とマッチングさせ、金融商品の電子取引を可能とする。
【0023】
代替の方法の実施形態は、例示の電子取引システムの実施形態との関連で上述したものと同様である。
【0024】
他の例示実施形態によると、電子取引システムのシーケンサは、一連の命令を符号化した非一時的コンピュータ可読媒体を備え、一連の命令は、シーケンサに読み込まれて実行されると、シーケンサに、電子取引システムのポイントツーポイントメッシュシステムにおいて第1の直接接続を介してゲートウェイと直接通信させる。一連の命令はさらに、シーケンサに、電子取引システムのポイントツーポイントメッシュシステムにおいて第2の直接接続を介してコアコンピュートノードと直接通信させる。シーケンサは、ゲートウェイとコアコンピュートノードの間に第1及び第2の直接接続を介して挿入される。第1及び第2の直接接続は、それぞれの非共有帯域幅を有する。一連の命令はさらに、シーケンサに、固有順序識別子を用いてメッセージ又はその表示をマーク付けすることによって順序マーク付きメッセージを生成させ、メッセージはシーケンサによってそれぞれ第1又は第2の直接接続を介して受信される。一連の命令はさらに、シーケンサに、順序マーク付きメッセージをゲートウェイ及びコアコンピュートノードに送信させる。
【0025】
他の例示実施形態によると、電子取引システムは、活性化リンク、順位付けパス及び順位付けパス内に電子的に配置されたシーケンサを介してコアコンピュートノードに結合されたゲートウェイを備える。ゲートウェイは、活性化リンク及び順位付けパスを介してメッセージをコアコンピュートノードに送信するように構成される。コアコンピュートノードは、メッセージ及びメッセージの順序マーク付きバージョンをゲートウェイ及びシーケンサからそれぞれ受信するように構成される。順序マーク付きバージョンは、活性化リンクを介して通信されて順位付けパスを介してシーケンサによって受信された複数のメッセージの中のメッセージの確定的な位置を示す順序識別子を含む。メッセージ及び順序マーク付きバージョンは、共通のメタデータを含む。
【0026】
コアコンピュートノードは、(i)活性化リンクを介したメッセージの受信に応じて電子取引のためのマッチング機能アクティビティを開始し、(ii)順位付けパスを介した順序マーク付きバージョンの受信に応じて、順序識別子を用いて、電子取引をサービス提供することに向けてマッチング機能アクティビティの完了を優先するように構成され得る。
【0027】
メッセージ及び順序マーク付きバージョンは、共通のメタデータを含み得る。コアコンピュートノードはさらに、順位付けパスを介して順序マーク付きバージョンの受信に応じて、共通のメタデータに基づいてメッセージを順序マーク付きバージョンに相関付けるように構成され得る。
【0028】
さらに他の例示実施形態によると、電子取引システムは、ポイントツーポイントメッシュトポロジーにおいて配置されたゲートウェイ、シーケンサ及びコアコンピュートノードを備え得る。コアコンピュートノードは、参加者デバイスから受信されてゲートウェイを介してポイントツーポイントメッシュトポロジーに導入される取引要求にサービス提供することに向けてマッチング機能を実行するように構成され得る。ポイントツーポイントメッシュトポロジーは、第1の直接接続、第2の直接接続及び第3の直接接続を含み得る。シーケンサは、(i)ゲートウェイとコアコンピュートノードの間で第1の直接接続を介して通信されてゲートウェイ又はコアコンピュートノードからそれぞれ第2又は第3の直接接続を介してシーケンサによって受信されたメッセージに対する確定的な順位(すなわち、順序)を決定するように構成され得る。シーケンサはさらに、(ii)取引要求又はそれに対する応答を表すメッセージの順序マーク付きバージョンをゲートウェイ及びコアコンピュートノードにそれぞれ第2及び第3の直接接続を介して送信することによって確定的な順位内でメッセージの位置を伝達するように構成され得る。
【0029】
ここに開示される例示実施形態は、方法、装置、システム、又はそこに実現されたプログラムコードを有するコンピュータ可読媒体の形態で実施可能であることが理解されるべきである。
【0030】
上記は、各種図面の全体を通じて同様の符号は同じ部分に言及する添付図面に示すように、例示実施形態の以下のより詳細な説明から明らかとなる。図面は、必ずしも縮尺通りではなく、その代わりに図示する実施形態に応じて強調がなされる。
【図面の簡単な説明】
【0031】
図1A図1Aは、金融商品を取引するためのマーケットの例示実施形態のブロック図である。
図1B-1】図1B-1は、電子取引システムの例示実施形態のブロック図である。
図1B-2】図1B-2は、他の電子取引システムの例示実施形態のブロック図である。
図1C図1Cは、ポイントツーポイントメッシュシステムの例示実施形態のブロック図である。
図1D図1Dは、電子取引システムの他の例示実施形態のブロック図である。
図1E図1Eは、取引メッセージのためのメッセージフォーマットのフィールドの例示実施形態の表である。
図1F図1Fは、電子取引システムの動作の例示実施形態を示すフロー図である。
図1G図1Gは、電子取引システムの動作の他の例示実施形態を示すフロー図である。
図2図2は、電子取引システムのポイントツーポイントメッシュアーキテクチャにおけるメッシュノードの例示実施形態のブロック図である。
図3図3は、ポイントツーポイントメッシュシステムの他の例示実施形態のブロック図である。
図4図4は、ポイントツーポイントメッシュシステムの他の例示実施形態のブロック図である。
図5図5は、電子取引を実行する方法の例示実施形態のフロー図である。
図6図6は、電子取引システムのシーケンサの例示実施形態のブロック図である。
図7図7は、電子取引システムの他の例示実施形態のブロック図である。
【発明を実施するための形態】
【0032】
例示実施形態の説明は、以下の通りである。
【0033】
ここに開示される専用/直接接続は、共有ネットワークスイッチを通過しないポイントツーポイント接続であることが理解されるべきである。
【0034】
現在の電子取引システムは、性能上の利点を与える試みを行っているが、その多くでは、マーケット参加者数の増加によるトランザクション量の増加に起因して性能の劣化が問題となる。一部のマーケット参加者による実施は、多くの場合、高速コンピュータが自動的にマーケットを監視して、通常は圧倒的な態様でマーケットの事象に反応する高頻度な取引方法に基づくものである。また、処理レイテンシー及び応答時間の更なる短縮への継続した要求があり、各マーケット参加者が経験するような性能を維持するとともに容量の枯渇及び不公平なアクセスなどの有害な結果を回避するための更なる容量及び性能の向上に対するニーズをもたらしている。
【0035】
マーケットの事象に応答するなど、マーケット参加者がマーケットデータの変化を評価してそれに応答し得る速度の増加は、トランザクションが電子取引システムに受信される速度を増加させ、その間の受信間隔の時間を狭め、それらのトランザクションが受信される順位(すなわち、順序)を決定するように、一層高度な識別に対するニーズを必要としている。例えば、取引注文割当てなどについて、電子取引システムの確定的な動作は、これらに基づく。またさらに、各チャネルの帯域幅の増加とともに容量及び機会を増加させるために、電子取引システムに対する通信のチャネルの追加によって、より多くのトランザクションが複数の平行パスを介して電子取引システムに提出可能となる。
【0036】
したがって、電子取引システムが、短時間で受信した着信トランザクションを識別することが有用となる。そのようなシステムが、同時に受信され又は同時に受信したとみなされるほどに時間的に近くに受信されたトランザクション間を調停することが、さらに有用となる。増加した容量及びより低いレイテンシーに加えて、ビジネスのグローバルな性質によって、電子取引システムの利用可能性及び信頼性を増加させるフォールトトレランスのニーズがさらに高まっている。
【0037】
ビジネスのトランザクションは、業界の、規制上の又は法的な要件へのコンプライアンスを含み得るビジネス又は商業的目的を達成するために、1以上の関連するビジネスルール(産業、法律又は規制の要件又は慣習を含む)に従って企てられる1以上の動作又は作用として定義され得る。ビジネスのトランザクションは、1以上のコンピュータ処理及び/又はデータベース動作/プログラムアクションによって実施され得るものであり、それら自体をトランザクションということもある。ビジネスのトランザクションは、関連するビジネスルールによって定義されるように、以下の点で確定的なものとして特徴付けられ得る。それは、ビジネス/商業的目的を有効化し及び/又は参加者の期待に応えるように、時間的順位など、それらが処理される順位(すなわち、順序)に対する依存性及び/又はビジネスルールによって定義されるようにリアルタイム処理に対する依存性など、ビジネスのトランザクションがそれらの結果に影響を与える相互依存性又は関係性によって特徴付けられ得ることである。これをここでは「トランザクション確定性」という。一般的に、一組の確定的なトランザクションは、1つの順位(すなわち、順序)で実行されると特定の結果を与え、異なる順位(すなわち、順序)で実行されると異なる結果を与えることになる。一部のアプリケーションでは、確定的な処理は、リアルタイム処理よりも好まれ/優先され得る。
【0038】
高性能電子取引システムが、取引の機会の向上、フォールトトレランス、ローレイテンシー処理、大容量性(例えば、秒あたりに多数のメッセージを処理する)、最小限の影響でのリスク軽減及びマーケット保護並びに情報及び機会への公平なアクセスを提供しつつ、増加する負荷の下でトランザクション確定性を保証することが有用である。
【0039】
ここに開示される例示実施形態は、株、債券、コモディティ、先物、オプションなどの金融商品を売買する注文がトレーダー及びブローカーなどのマーケット参加者の間で取引されるマーケットを提供する高速電子取引システムに関する。ここに開示される電子取引システムの例示実施形態は、ローレイテンシー、公平性、フォールトトレランス及びより完全に以下に説明する他の特徴を示す。
【0040】
図1Aは、金融商品(不図示)を取引するのに用いられる電子取引システム100の例示実施形態を含むマーケット90の例示実施形態のブロック図である。電子取引システム100は、主に、相互に取引注文を「マッチングさせる」責任を担い、それをマッチングさせるためにポイントツーポイントメッシュシステム102を採用する。一例では、金融商品を「買い付け」ようとする指値が、ポイントツーポイントメッシュシステム102のマッチングエンジンによって、「売却」しようとする対応の相手方指値にマッチングされる。マッチングされた指値及び相手方指値は、少なくとも部分的に所望の価格を充足しなければならず、残余の充足されない数量はいずれも他の適宜の反対注文に渡される。そして、マッチングされた取引注文は対合され、取引が実行される。
【0041】
完全に充足されない注文又は部分的に充足された注文は、「注文控え帳」(不図示)というデータ構造体に保持される。不一致の取引注文に関する保留情報は、後続の取引注文を充足するようにマッチングエンジンによって使用可能である。注文控え帳は、通常は、各金融商品に対して保持され、一般的にその特定の商品について、すなわち、その特定の金融商品について、マーケット90の状態を定義し又は表す。注文控え帳は、例えば、マーケット参加者が買付又は売却に対する意思を表明した最近の価格及び数量を含み得る。
【0042】
マッチングの結果は、マーケットデータフィード(不図示)というストリーミングデータサービス(不図示)を介してマーケット参加者に対して可視化されてもよい。マーケットデータフィードは、通常、取引された各金融商品に対する価格付け並びに出来高及び他の統計などの関連情報を伝達する個々のメッセージを含む。
【0043】
マーケット90において、マーケット参加者は、2人のトレーダー、すなわち、第1のトレーダー104a及び第2のトレーダー104bを含む。マーケット90はトレーダーであるマーケット参加者に限定されず、マーケット90は2人のトレーダーに限定されないことが理解されるべきである。マーケット90では、第1のトレーダー104a及び第2のトレーダー104bなどのマーケット参加者は、通信ネットワーク(不図示)を介して電子的に、取引注文を提出し、確認、マーケットデータ及び他の情報を受信し得る。
【0044】
図1Aの例示実施形態では、第1のトレーダー104aは、第1の参加者デバイス130aを介して電子取引システム100に送信される第1の着信メッセージ3aを介して金融商品(不図示)を買い付ける第1の取引注文(不図示)を提出している。電子取引システム100は、第1の取引注文を第2の取引注文(不図示)に対してマッチングさせて金融商品を売却するポイントツーポイントメッシュシステム102を採用している。金融商品を売却するための第2の取引注文は、第2の参加者デバイス130bを介して電子取引システム100に送信される第2の着信メッセージ3bを介して第2のトレーダー104bによって提出される。
【0045】
例示実施形態では、電子取引システム100は、第1の発信メッセージ5a及び第2の発信メッセージ5bを第1の参加者デバイス130a及び第2の参加者デバイス130bにそれぞれ送信して、第1のトレーダー104a及び第2のトレーダー104bにそれぞれの取引注文の実行が成功したことをそれぞれ通知する。ポイントツーポイントメッシュシステム102は、電子取引システム100が金融商品の高速で確定的な電子取引を実行することを可能とする。ポイントツーポイントメッシュシステム102の例示実施形態を、図1B-1及び1B-2を参照して以下に開示する。
【0046】
図1B-1は、以上に開示した図1Aの電子取引システム100の例示実施形態のブロック図である。特定の実施形態では、電子取引システム100は、活性化リンク180-1-1及び順位付け(すなわち、順序付け)パス117を介してコアコンピュートノード140-1に結合されたゲートウェイ120-1を備える。電子取引システム100は、順位付けパス117内に電子的に配置されたシーケンサ150-1をさらに備える。ゲートウェイ120-1は、メッセージ(不図示)を活性化リンク180-1-1及び順位付けパス117を介してコアコンピュートノード140-1に送信するように構成される。メッセージは、図1B-2に関して以下に開示するメッセージ106であり得る。コアコンピュートノード140-1は、メッセージ及びメッセージの順序マーク付きバージョン(不図示)をゲートウェイ120-1及びシーケンサ150-1からそれぞれ受信するように構成される。メッセージの順序マーク付きバージョンは、以下にさらに開示する図1B-2の順序マーク付きメッセージ106´であり得る。順序マーク付きバージョン(すなわち、順序マーク付きメッセージ106´)は、非限定的な例について図1Eに関して以下にさらに開示するような順序マーク付きメッセージ106´の順序IDフィールド110-14に含まれ得るような順序識別子(ID)を含む。順序IDは、活性化リンク180-1-1を介して通信されて順位付けパス117を介してシーケンサ150-1によって受信された複数の他のメッセージの順序マーク付きバージョンのうちの当該メッセージの順序マーク付きバージョンの確定的な位置を示す。順序IDが確定的な位置を示す複数のメッセージは、順位付けパス117を介してコアコンピュートノード140-1によって受信された他のメッセージの順序マーク付きバージョンも含む。メッセージ(例えば、順序付けなしメッセージ又は順序マークなしメッセージ)及び順序マーク付きバージョンは、共通のメタデータ(不図示)を含む。以下にさらに開示するように、共通のメタデータを介してメッセージをその順序マーク付きバージョンに相関付けることによって、メッセージの順序IDが識別される。順序IDはさらに、シーケンサ150-1を通過して結果としてシーケンサ150-1によって順序マーク付きの、電子取引システム100全体を通じて通信される全てのメッセージうちの当該メッセージの確定的な位置を示す。
【0047】
電子取引システム100の要素はそこで通信されるメッセージにタイムスタンプを施す一方で、シーケンサ150-1によって決定された順序IDは電子取引システム100で通信されるメッセージの位置(順位/優先度)を決定することが理解されるべきである。複数のシステムが同じタイムスタンプによってメッセージにタイムスタンプを施すことが可能であり、結果として、そのメッセージに対する順位/優先度がその受信者において決定されなければならない場合がある。そのようなことは、シーケンサ150-1が電子取引システム100全体を通じて通信されたメッセージの順位/優先度を単独で決定する主体となり得るので、電子取引システム100では起こらない。
【0048】
コアコンピュートノード140-1は、(i)活性化リンク180-1-1を介したメッセージの受信に応じて電子取引のためのマッチング機能アクティビティを開始し、(ii)順位付けパス117を介した順序マーク付きバージョンの受信に応じて、順序識別子を用いて、電子取引にサービス提供することに向けてマッチング機能アクティビティの完了を優先するように構成され得る。
【0049】
メッセージ及び順序マーク付きバージョンは、共通のメタデータを含み得る。コアコンピュートノード140-1はさらに、順位付けパス117を介して順序マーク付きバージョンの受信に応じて、共通のメタデータに基づいてメッセージを順序マーク付きバージョンに相関付けるように構成され得る。
【0050】
図1B-1の例示実施形態では、メッセージは、活性化リンク順方向に、すなわち、act-link-fwd-dir113aにおいて、活性化リンク180-1-1を介してコアコンピュートノード140-1に送信され、かつ順位付けパス順方向に、すなわち、order-path-fwd-dir115aにおいて、順位付けパス117を介してコアコンピュートノード140-1に送信される。マッチング機能アクティビティの完了に続いて、コアコンピュートノード140-1は、応答(不図示)を活性化リンク逆方向(すなわち、act-link-rev-dir113b)及び順位付けパス逆方向(すなわち、order-path-rev-dir115b)に活性化リンク180-1-1及び順位付けパス117を介してゲートウェイ120-1に送信し得る。活性化リンク180-1-1及び順位付けパス117を介してゲートウェイ120-1に送信された応答は、図1B-2に関して以下にさらに開示する応答107であり得る。
【0051】
活性化リンク180-1-1は単一の直接接続であり、一方で順位付けパス117は複数の直接接続を含む。例えば、第1の直接接続180-1-1ともいう活性化リンク180-1-1は単一の直接接続であり、一方で順位付けパス117は、図1B-2に関して以下にさらに開示する第2の直接接続180-gw1―s1及び第3の直接接続180-c1-s1を含み得る。
【0052】
ゲートウェイ120-1、シーケンサ150-1及びコアコンピュートノード140-1は、ポイントツーポイントメッシュトポロジーにおいて配置される。コアコンピュートノード140-1は、参加者デバイスから受信されてゲートウェイ120-1を介してポイントツーポイントメッシュトポロジーに導入される取引要求にサービス提供することに向けてマッチング機能(すなわち、電子取引マッチング機能)を実行するように構成され得る。この参加者デバイスは、図1B-2に関して以下にさらに開示される。ポイントツーポイントメッシュトポロジーは、以上に開示したようにかつ図1B-2に関して以下にさらに開示するように、第1の直接接続、第2の直接接続及び第3の直接接続を含む。シーケンサ150-1は、(i)ゲートウェイ120-1とコアコンピュートノード140-1の間で第1の直接接続を介して通信されてゲートウェイ120-1又はコアコンピュートノード140-1からそれぞれ第2又は第3の直接接続を介してシーケンサ150-1によって受信されたメッセージに対する確定的な順位(すなわち、順序)を決定するように構成され得る。シーケンサ150-1はさらに、(ii)メッセージの順序マーク付きバージョンをゲートウェイ120-1及びコアコンピュートノード140-1にそれぞれ第2及び第3の直接接続を介して送信することによって確定的な順位内でメッセージの位置を伝達するように構成され得る。メッセージは、図1B-2に関して以下に開示するように、取引要求又はそれに対する応答を表す。
【0053】
図1B-2は、以上に開示した図1Aの電子取引システム100の例示実施形態の他のブロック図である。電子取引システム100は、ゲートウェイ120-1、電子取引マッチング機能を実行するように構成されたコアコンピュートノード140-1、及びシーケンサ150-1を備える。ゲートウェイ120-1とコアコンピュートノード140-1とは、第1の直接接続180-1-1を介して結合される。ゲートウェイ120-1とシーケンサ150-1とは、第2の直接接続180-gw1-s1を介して結合される。シーケンサ150-1とコアコンピュートノード140-1とは、第3の直接接続180-c1-s1を介して結合される。第1の直接接続180-1-1、第2の直接接続180-gw1-s1及び第3の直接接続180-c1-s1は、それぞれの非共有帯域幅を有する。
【0054】
開示の一部の図面では、図1B-2に示す第1の直接接続180-1-1、第2の直接接続180-gw1-s1及び第3の直接接続180-c1-s1の矢印などの矢印が、直接接続(すなわち、直接リンク)上に含まれる。このような直接接続/リンク上の矢印は、データが直接接続/リンクを介して双方向に流れ得ることを示す。開示の他の図面は以上に開示した図1B-1及び以下にさらに開示する図1Dのように、直接接続/リンクに適用される上記矢印を有さない場合もあるが、データはそのような接続/リンクに沿って双方向に流れ得ること、及びそのような接続/リンクは単一の通信リンク又は並列の2つのリンクであってもよく、その2つのリンクの各々は一方向であってデータはこの2つのリンクを介して対向方向に流れることが理解されるべきである。
【0055】
図1B-2を参照して続けると、ゲートウェイ120-1は、金融商品を買付又は売却する指値を伴う電子取引要求を表すメッセージ106(すなわち、B)をコアコンピュートノード140-1に第1の直接接続180-1-1を介して送信し、これに対して、メッセージ106がコアコンピュートノード140-1によって受信されるように構成される。ゲートウェイ120-1はさらに、メッセージ106(すなわち、B)をシーケンサ150-1に第2の直接接続180-gw1-s1を介して送信するように構成され、シーケンサ150-1は、これに対して、図1Dに関して以下にさらに開示するように、順序マーク付きメッセージ106´(すなわち、C)をコアコンピュートノード140-1に第3の直接接続180-c1-s1を介して送信するように構成される。シーケンサ150-1は、ゲートウェイ120-1とコアコンピュートノード140の間に第2及び第3の直接接続を介して挿入される。シーケンサ150-1によって送信された順序マーク付きメッセージ106´は、ゲートウェイ120-1によって送信されたメッセージの順序付けされたバージョンである。これに対して、順序マーク付きメッセージは、コアコンピュートノード140-1によって受信される。コアコンピュートノード140-1は、電子取引システム100においてコアコンピュートノード140-1に受信された他のメッセージの順序マーク付きバージョン(不図示)のうちの順序マーク付きメッセージ106´の相対順位付けを決定するように構成される。コアコンピュートノード140-1はさらに、決定された相対順位付けに応じて電子取引要求に対する電子取引マッチング機能を完了し、指値がその金融商品についての相手方指値とマッチングされるようにして金融商品の電子取引を可能とするように構成される。
【0056】
電子取引マッチング機能は、取引注文をマッチングさせること自体よりも多くを含み得ることが理解されるべきである。例えば、電子取引マッチング機能は、図1Dに関して以下にさらに開示するような承認メッセージの送信を含んでいてもよい。また、コアコンピュートノード140-1は、コアコンピュートノード140-1がそれを促進することを可能とする順序マーク付きメッセージ106´の受信前に電子取引マッチング機能の一部を実行してもよい。例えば、メッセージ106(例えば、非順序マーク付きメッセージ)の受信に続いて、コアコンピュートノード140-1は、非限定的な例について、図1Eに関して以下にさらに開示する銘柄記号フィールド110-2の銘柄記号など、メッセージ106において識別された銘柄記号に関するデータを後のアクセスのために高速メモリに読み込むことによって、電子取引マッチング機能を開始し得る。銘柄記号は、株式表示記号又はストックティッカーなどの取引された有価証券を表し得る。ただし、コアコンピュートノード140-1は、メッセージ106の内容に関連する任意のタイプのアクティビティを実行することによって電子取引マッチング機能を開始(トリガ)し得ることが理解されるべきである。
【0057】
シーケンサ150-1はさらに、固有順序識別子(不図示)によってメッセージ106又はその表示をマーク付けすることによって順序マーク付きメッセージ106´を生成するように構成され得る。固有順序識別子は、シーケンサ150-1においてメッセージ106の到着時間に対応する値を有していてもよく、シーケンサ150-1において受信された複数のメッセージ(不図示)のうちのメッセージ106の相対順序位置を示していてもよい。
【0058】
コアコンピュートノード140-1は、上述のように、順序付けなしメッセージ106の受信に応じて電子取引機能を開始し、それにより順序付けなしメッセージ106の処理を開始し得る一方で、コアコンピュートノード140-1は、コアコンピュートノード140-1が順序マーク付きメッセージ106´を受信するまでメッセージ106の処理を完了せず及び/又はメッセージ106の処理の結果を確約しなくてもよい。順序マーク付きメッセージ106´において順序識別子を介して指定されるような、メッセージを処理するための確定的な順位付けがない場合、例えば、コンピュートノード140-1によるメッセージの処理は予測不能となり得る。可能性ある予測不能な結果の非限定的な例として、有価証券の交換における相手方に対する潜在的なマッチングを各々が表す複数の未処理の順序付けなしメッセージがあり得る。複数の潜在的なマッチング間で調停する確定的な態様があると有用である。これは、おそらくは、潜在的なマッチングのうちの一部の組しか、相手方の所与の取引注文に対して約定可能とはならないためである。
【0059】
一部の実施形態によると、コンピュートノード140-1は、順序付けなしメッセージ106及び順序マーク付きメッセージ106´の双方を受信した後に、図1Eとの関連で後述するように、メッセージの両バージョンにおける識別情報を介して、順序付けなしメッセージ106を順序マーク付きメッセージ106´に相関付けてもよい。コンピュートノード140-1が順序マーク付きメッセージ106´を受信すると、コンピュートノード140-1は、その後に、電子取引システム100の全体を通じてメッセージ106/106´が他のメッセージに相対して処理されるべき適切な順序を決定してもよく、そして、適宜の応答メッセージを送出すること、場合によっては順序マーク付きメッセージ106´に対してシーケンサによって割り当てられた順序識別子を参照することなど、メッセージ106/106´の処理を完了してもよい。有価証券の交換における相手方に対する潜在的なマッチングを表す複数のメッセージの非限定的な例に戻ると、潜在的なマッチングを表すメッセージの順序マーク付きバージョンがコンピュートノード140-1によって受信されると、コンピュートノード140-1は、可能性あるマッチングが発生して電子取引マッチング機能を完了させる順序を厳密に決定し得る。
【0060】
例示実施形態によると、順序マーク付きメッセージ106´をコンピュートノード140-1に第3の直接接続180-c1-s1を介して送信することに加えて、シーケンサ150-1はさらに、順序マーク付きメッセージ106´(すなわち、C)をゲートウェイ120-1に第2の直接接続180-gw1-s1を介して送信してもよい。順序マーク付きメッセージ106´(すなわち、C)をメッセージ106の送信者に提供することによって、送信者、すなわち、ゲートウェイ120-1が、メッセージ、すなわち、メッセージ106に割り当てられた順序番号を(図1Eとの関連で後述するような)メッセージにおける他の識別情報に相関付けることができる。それにより、送信者は、図1Dに関して以下にさらに開示するように、その順序番号を参照する後続のメッセージに容易に対処することができる。
【0061】
ゲートウェイ120-1、コアコンピュートノード140-1、シーケンサ150-1、第1の直接接続180-1-1、第2の直接接続180-gw1-s1及び第3の直接接続180-c1-s1は、ポイントツーポイントメッシュシステム102を構成する。例示実施形態によると、ポイントツーポイントメッシュシステム102では、第1の直接接続180-1-1、第2の直接接続180-gw1-s1及び第3の直接接続180-c1-s1又はそれらの一部の組は、少なくとも1つのそれぞれの冗長直接接続(不図示)によって保護され得る。この直接接続が故障した場合、それぞれの冗長直接接続が、その代わりに採用され得る。このように、電子取引システム100は、第1、第2及び第3の直接接続又はそれらの一部の組に対する少なくとも1つのそれぞれの冗長直接接続をさらに備え得る。
【0062】
例示実施形態によると、電子取引システム100はクロックをさらに備えていてもよく、ゲートウェイ120-1、コアコンピュートノード140-1及びシーケンサ150-1は、以下にさらに開示するように、図1Dのクロック195のようなクロックに基づいて同期され得る。
【0063】
メッセージ106は、それがゲートウェイ、すなわち、ゲートウェイ120-1から到来するため、「ゲートウェイ」メッセージという場合がある。メッセージ106は、それが例示実施形態ではコンピュートノード、すなわち、コアコンピュートノード140-1に宛てられるので「コンピュートノード宛て」メッセージという場合もある。メッセージ106は、参加者デバイス(不図示)からゲートウェイ120-1によって受信された着信メッセージ103(すなわち、A)の受信に応じてゲートウェイ120-1によって送信されたゲートウェイメッセージである。順序マーク付きメッセージ106´は、第1の順序マーク付きメッセージであり得る。コアコンピュートノード140-1はさらに、メッセージ106、すなわち、ゲートウェイメッセージを受信したことに応じて、コアコンピュートノードメッセージ、すなわち、応答107(すなわち、D)をゲートウェイ120-1に第1の直接接続180-1-1を介して送信し、コアコンピュートノードメッセージ(すなわち、応答107)をシーケンサ150-1に第3の直接接続180-c1-s1を介して送信するように構成され得る。シーケンサ150-1はさらに、これに対して、第2の順序マーク付きメッセージ、すなわち、順序マーク付き応答107´(すなわち、E)をゲートウェイ120-1に第2の直接接続180-gw1-s1を介して送信するように構成される。第2の順序マーク付きメッセージは、コアコンピュートノードメッセージの順序付けされたバージョンである。ゲートウェイ120-1はさらに、第2の順序マーク付きメッセージ(すなわち、順序マーク付き応答107´)及びコアコンピュートノード140-1からゲートウェイ120-1に送信された他のメッセージの順序マーク付きバージョンの相対順位付けを決定するように構成され得る。ゲートウェイ120-1はさらに、発信メッセージ105(すなわち、F)を、決定された相対順位付けに応じて参加者デバイスに送信するように構成され得る。メッセージ106及び応答107は取引アクティビティに関するものであることが理解されるべきである。
【0064】
シーケンサ150-1はさらに、第2の順序マーク付きメッセージ、すなわち、順序マーク付き応答107´(すなわち、E)をコアコンピュートノード140-1に第3の直接接続180-c1-s1を介して送信し得る。順序マーク付き応答107´(すなわち、E)を応答107の送信者に提供することによって、送信者、すなわち、コアコンピュートノード140-1が、メッセージ、すなわち、応答107に割り当てられた順序番号を(図1Eとの関連で後述するような)メッセージにおける他の識別情報に相関付けることができる。それにより、送信者は、図1Dに関して以下にさらに開示するように、その順序番号を参照する後続のメッセージに容易に対処することができる。
【0065】
コンピュートノード140-1によって受信されるメッセージ106及び106´との関連で上記と同様に、順序付けなし応答メッセージ107の受信に応じて、ゲートウェイ120-1は、ゲートウェイ120-1が順序マーク付き応答107´を受信する前であっても、その応答メッセージの処理を活性化させ得る。非限定的な例として、処理を活性化すること(開始すること)は、ゲートウェイ120-1の未決済取引注文データベースの状態を更新すること及び/又は参加者デバイスに送信可能となった発信メッセージ105を蓄積することを含み得る。ただし、一部の実施形態では、ゲートウェイ120-1は、電子取引システム100における他のメッセージを含む一連のメッセージでの応答メッセージ107の確定的な位置を指定する順序識別子を含む順序マーク付き応答メッセージ107´をゲートウェイ120-1が受信するまでは順序マーク付き応答メッセージ107の処理(この処理は発信メッセージ105を参加者デバイスに送信することを含む)を完了しなくてもよい。一部の実施形態では、ゲートウェイ120-1は、順序付けなしメッセージ107及び順序マーク付き応答メッセージ107´の双方を受信した後に、図1Eとの関連で後述するように、メッセージの両バージョンにおける識別情報を介して順序付けなし応答メッセージ107を順序マーク付き応答メッセージ107´に相関させてもよい。これにより、応答メッセージ107/107´の確定的な位置は、順序マーク付き応答メッセージ107´の受信に応じて決定される。一部の実施形態では、その後に、応答メッセージの処理が完了されてもよく、その処理は、発信メッセージ105が参加者デバイスに送信されることを確約することを含む。
【0066】
電子取引システム100は、コアコンピュートノード140-1によってアクセス可能な注文控え帳(不図示)をさらに備え得る。コアコンピュートノード140-1はさらに、実行される電子取引マッチング機能に基づいて金融商品(不図示)に関する取引注文をマッチングさせるように構成され得る。例えば、コアコンピュートノード140-1はさらに、電子取引マッチング機能を用いて金融商品に関する取引注文をマッチングさせるように構成され得る。コアコンピュートノード140-1はさらに、注文控え帳における金融商品の残持ち高(不図示)を維持するように構成され得る。金融商品の金額不一致が、電子取引マッチング機能を実行する結果としてもたらされる場合がある。残持ち高は、金融商品の金額不一致を含み得る。残持ち高は、数量よりも多くの情報を伝達可能であることが理解されるべきである。例えば、持ち高は、強気及び弱気(サイド)であってもよい。例示実施形態によると、残持ち高は、価格及び数量の双方を伝達する。
【0067】
ゲートウェイ120-1はさらに、少なくとも1つの参加者デバイス(不図示)にサービスを提供し、ゲートウェイ120-1における着信メッセージ103の受信に応じて、メッセージ106をシーケンサ150-1及びコアコンピュートノード140-1に送信するように構成され得る。着信メッセージ103は、少なくとも1つの参加者デバイスによって発送される。シーケンサ150-1はさらに、固有順序識別子を用いてメッセージをマーク付けすることによって、又は受信したメッセージの表示を作成し、固有順序識別子を用いて表示をマーク付けし、マーク付けされた表示を送信することによって、順序マーク付きメッセージを生成するように構成され得る。マーク付けされる表示は、順序マーク付きメッセージであり得る。
【0068】
例示実施形態によると、ゲートウェイ120-1は、以下にさらに開示する図1C、1D、3及び4の複数のゲートウェイなどの複数のゲートウェイのうちの所与のゲートウェイであり得る。また、コアコンピュートノード140-1は、以下にさらに開示する図1C、1D、3及び4の複数のコアコンピュートノードなどの複数のコアコンピュートノードのうちの所与のコアコンピュートノードであり得る。
【0069】
図1Cは、ポイントツーポイントメッシュシステム122の例示実施形態のブロック図である。ポイントツーポイントメッシュシステム122は、複数のゲートウェイ120、複数のコアコンピュートノード140、及びシーケンサ150-1を含む。複数のゲートウェイ120の各ゲートウェイ120-1、120-2・・・120-gは、複数のコアコンピュートノード140の各コアコンピュートノード140-1、140-2・・・140-cにそれぞれの第1の直接接続、すなわち、第1の直接接続180-aを介して結合される。シーケンサ150-1は、複数のゲートウェイの各ゲートウェイにそれぞれの第2の直接接続、すなわち、第2の直接接続180-bを介して結合され、複数のコアコンピュートノードの各コアコンピュートノードにそれぞれの第3の直接接続、すなわち、第3の直接接続180-cを介して結合される。複数のゲートウェイ、複数のコアコンピュートノード、シーケンサ150-1、及びそれぞれの直接接続は、ポイントツーポイントメッシュシステム122の少なくとも一部分を形成する。
【0070】
ポイントツーポイントメッシュシステム122内では、複数のゲートウェイ120の各ゲートウェイは、そこから送信されるそれぞれのコンピュートノード宛てメッセージを複数のコアコンピュートノード140のうちの全てのコンピュートノード及びシーケンサ150-1に送信するように構成される。ポイントツーポイントメッシュシステム122内では、複数のコアコンピュートノード140の各コアコンピュートノードは、そこから送信されるそれぞれのゲートウェイ宛てメッセージを複数のゲートウェイ120のうちの全てのゲートウェイ及びシーケンサ150-1に送信するように構成される。ポイントツーポイントメッシュシステム122内では、シーケンサ150-1はさらに、それぞれのコンピュートノード宛てメッセージ又はそれぞれのゲートウェイ宛てメッセージの受信に応じて、それぞれの順序マーク付きメッセージを複数のゲートウェイ120及び複数のコアコンピュートノード140に送信するように構成される。
【0071】
複数のゲートウェイ120のうちの所与のゲートウェイによって送信されたそれぞれのコンピュートノード宛てメッセージは、複数のコアコンピュートノード140によって受信される同じメッセージである。複数のコアコンピュートノード140のうちの少なくとも2つのコンピュートノード140は、同じメッセージの受信に応じて応答メッセージを生成するように構成され得る。応答メッセージは、複数のコアコンピュートノードの中から所与のコアコンピュートノードにおいて受信され得る。所与のゲートウェイはさらに、同じメッセージの受信に応じて生成された応答メッセージのうちの所与の応答メッセージに基づいて行動をとるように構成され得る。所与の応答メッセージは、同じメッセージの受信に応じて生成された他の応答メッセージに相対して最初に所与のゲートウェイに到着し得る。所与のゲートウェイはさらに、所与の応答メッセージの後に到着する他の応答メッセージを無視するように構成され得る。そのような応答メッセージを、機能的に同等なメッセージということもある。機能的に同等なメッセージは、その機能的に同等なメッセージの受信者に同じ機能(例えば、単数又は複数のアクティビティ)を実行させる同じメッセージを表す。機能的に同等なメッセージは同じメッセージを表し、一部の実施形態では実際に同一であり得るが、他の実施形態では、機能的に同等なメッセージは、場合によっては、非限定的な例として異なるタイムスタンプなどの異なるメタデータ、異なるソース識別子などを含み得るため、必ずしも同一でなくてもよい。明瞭性の観点として、用語「機能的に同等なメッセージ」とは、その順序マーク付きメッセージの対応のものに関連する非順序マーク付きメッセージのことをいうものではない。そうではなく、一部の実施形態では同じ順序マーク付きメッセージを表す複数の順序マーク付きメッセージも存在し得るが、機能的に同等なメッセージとは、一般的に、同じ非順序マーク付きメッセージ表す複数の非順序マーク付きメッセージのことをいい、これにより、我々は機能的に同等な非順序マーク付きメッセージ又は機能的に同等な順序マーク付きメッセージのことをいう場合がある。以下の図1Eに関する記載は、2以上のそのような応答メッセージが機能的に同等でありかつ同じメッセージを表すことを受信者ノードがどのようにして判定し得るのかについての少なくとも1つの例を説明する。
【0072】
複数の機能的に同等なメッセージ(不図示)は、所与のゲートウェイにおいて、複数のコアコンピュートノード140、複数のシーケンサ150又はこれらの組合せの中から受信され得る。所与のゲートウェイはさらに、複数の機能的に同等なメッセージのうちの所与の機能的に同等なメッセージに基づいて行動をとるように構成されてもよく、所与の機能的に同等なメッセージは所与のゲートウェイに最初に到着したものである。所与のゲートウェイはさらに、所与の機能的に同等なメッセージの後に到着する複数の機能的に同等なメッセージのうちの他の機能的に同等なメッセージを無視するように構成され得る。そのようなメッセージは、「機能的に」同等と理解され得る。なぜなら、複数のコアコンピュートノードにおいて受信された同じメッセージに対して、複数のコアコンピュートノードの各々が独立して応答メッセージを生成するので、それぞれの応答の各々は厳密に同一ではなくても同じ結果を機能的にもたらすからである。例えば、そのような応答メッセージは、そこに含まれる異なる発信元コア識別子を少なくとも有して、応答を送信している特定のコアコンピュートノードを一意的に識別し得る。
【0073】
例示実施形態によると、この少なくとも2つの「機能的に同等なメッセージ」は、ゲートウェイ/シーケンサからコアコンピュートノード140-1などの所与のコアコンピュートノードに到着し得る。所与のコアコンピュートノードは、そのような機能的に同等なメッセージのうちの最初に到着したメッセージのみを処理するように構成され得る。このように、複数の機能的に同等なメッセージは、所与のコンピュートノードにおいて、複数のゲートウェイ、複数のシーケンサ又はこれらの組合せの中から受信され得る。所与のコンピュートノードはさらに、複数の機能的に同等なメッセージのうちの所与の機能的に同等なメッセージに基づいて行動をとるように構成されてもよく、所与の機能的に同等なメッセージは所与のコンピュートノードに最初に到着したものである。所与のコンピュートノードはさらに、所与の機能的に同等なメッセージの後に到着する複数の機能的に同等なメッセージのうちの他の機能的に同等なメッセージを無視するように構成され得る。
【0074】
このように、同じメッセージを表す複数のコンピュートノード宛てメッセージは、コンピュートノード140-1などの所与のコンピュートノードにおいて複数のゲートウェイ120の中から受信され得る。これは、電子取引システム100が高可用性(HA)に対して構成される場合に当てはまる場合がある。例えば、参加者デバイスからの冗長フローが複数のゲートウェイの間で受信されてもよく、このように、同じメッセージを表す複数のコンピュートノード宛てメッセージが、そのゲートウェイによってコンピュートノード140に送信され得る。例示実施形態によると、所与のコアコンピュートノードは複数のコンピュートノード宛てメッセージのうちの所与のコンピュートノード宛てメッセージに基づいて行動をとるように構成されてもよく、所与のコンピュートノード宛てメッセージは同じメッセージを表す複数のコンピュートノードメッセージのうちの他のコンピュートノード宛てメッセージに相対して最初に所与のコンピュートノードに到着したものであってもよい。所与のコアコンピュートノードはさらに、所与のコンピュートノード宛てメッセージの後に到着する他のコンピュートノード宛てメッセージを無視するように構成され得る。そのような同じメッセージを表す複数のコンピュートノード宛てメッセージを、機能的に同等なメッセージということもある。以下の図1Eに関する記載は、2以上のそのようなコンピュートノード宛てメッセージが機能的に同等でありかつ同じメッセージを表すことを受信者ノードがどのようにして判定し得るのかについての少なくとも1つの例を説明する。
【0075】
電子取引システム100は、複数のシーケンサのうちの少なくとも1つのシーケンサが、以下に開示する図1Dのディザスタリカバリサイト155など、スタンバイ電子取引システムを含むディザスタリカバリサイトに通信可能に結合され得るアクティブな電子取引システムであり得る。
【0076】
図1Dは、電子取引システムの他の例示実施形態のブロック図である。図1Dは、多数のゲートウェイ120-1、120-2、・・・、120-g(まとめてゲートウェイ120という)、一組のコアコンピュートノード140-1、140-2、・・・、140-c(まとめてコアコンピュートノード140又はコンピュートノード140)及び1以上のシーケンサ150-1、150-2、・・・、150-s(まとめてシーケンサ150)を含む例示の電子取引システム100を示す。したがって、一部の実施形態では、ゲートウェイ120、コアコンピュートノード140及びシーケンサ150は、電子取引システム100におけるノードとみなされる。より詳細に後述するように、一実施形態では、ゲートウェイ120、コンピュートノード140及びシーケンサ150は、好ましくは低遅延の専用接続180を介して、相互に直接接続される。
【0077】
電子取引システム100の記載に関連する用語「ピア(peer)」とは、電子取引システム100において同じ機能を一般にサービスを提供する他のデバイス(例えば、「ゲートウェイ」対「コアコンピュートノード」対「シーケンサ」)をいう。例えば、ゲートウェイ120-2、・・・、120-gはゲートウェイ120-1のピアであり、コアコンピュートノード140-2、・・・、140-cはコアコンピュートノード140-1のピアであり、シーケンサ150-2、・・・、150-sはシーケンサ150-1のピアである。
【0078】
システム100の記載に関連する用語「アクティブ」及び「スタンバイ」とは、システム/構成要素の高可用性(HA)ロール/状態/モードをいう場合がある。一般に、スタンバイシステム/構成要素は、電源が投入されるとアクティブなシステム/構成要素によって実行される機能を引継ぎ可能となる冗長(バックアップ)システム/構成要素である。そのようなスイッチオーバー/フェイルオーバー、すなわち、スタンバイロール/状態/モードからアクティブロール/状態/モードへの切換えは、非限定的な例として、現在アクティブなシステム/構成要素の故障に応じて自動的に実行され得る。
【0079】
電子取引システム100は、1以上の参加者コンピューティングデバイス130-1、130-2、・・・、130-p(まとめて参加者デバイス130)からの取引注文を処理し、関連情報をそれに提供する。参加者デバイス130は、電子取引システム100と相互作用するものであり、1以上のパーソナルコンピュータ、タブレット、スマートフォン、サーバ又は取引注文情報を表示及び受信するように構成された他のデータ処理デバイスであり得る。参加者デバイス130は、グラフィカルユーザインターフェース(GUI)を介して人間によって操作されてもよいし、物理又は仮想データ処理プラットフォーム上で稼働する高速自動化取引方法を介して操作されてもよい。各参加者デバイス130は、ゲートウェイ120によって確立された接続を介して電子取引システム100とメッセージを交換し得る(すなわち、それに対してメッセージを送受信し得る)。図1Dは各参加者デバイス130がゲートウェイ120への単一の接続を介して電子取引システム100に接続されるものとして示すが、参加者デバイス130は1以上のゲートウェイデバイス120への複数の接続を介して電子取引システム100に接続されてもよいことが理解されるべきである。
【0080】
なお、各ゲートウェイ120-1が単一の参加者デバイス130にサービスを提供し得るが、通常は複数の参加者デバイス130にサービスを提供する。
【0081】
コンピュートノード140-1、140-2、・・・、140-c(ここではマッチングエンジン140又はコンピュートエンジン140ともいう)は、上述のマッチング機能を提供し、さらに1以上の参加者デバイス130に配信される発信メッセージを生成してもよい。各コンピュートノード140は、高性能データプロセッサであり、通常は、1以上の注文控え帳145-1、145-2、・・・、145-bを検索及び保持する1以上のデータ構造体を保持する。注文控え帳145-1は、例えば、コアコンピュートノード140-1が責任を担う各商品に対して保持され得る。コンピュートノード140の1以上及び/又はゲートウェイ120の1以上が、マーケットデータフィード147を提供してもよい。マーケットデータフィード147は、参加者デバイス130又は他の任意の適宜のコンピューティングデバイスであり得る参加者にブロードキャスト(例えば、マルチキャスト)されてもよい。
【0082】
コアコンピュートノード140によって生成された一部の発信メッセージは、同期したものであり、すなわち、対応する着信「新規注文」メッセージに応じた発信「承認メッセージ」又は「実行メッセージ」など、1以上の参加者デバイス130から受信された1以上の着信メッセージに応じて1つのコアコンピュートノード140によって直接生成されてもよい。ただし、一部の実施形態では、少なくとも一部の発信メッセージは非同期のものであり、取引システム100によって開始されてもよく、例えば、特定の「未承諾」取消メッセージ及び「取引中止」又は「取引破綻」メッセージであり得る。
【0083】
電子取引システム100などの分散コンピューティング環境は、複数のコンピュートノード140上で並列動作する複数のマッチングエンジンを用いて構成可能である。
【0084】
シーケンサ150は、任意の順位依存動作の適宜の順序が維持されることを確実にする。着信メッセージに対する動作が順位を外れて実行されないことを確実にするために、1以上のゲートウェイ120において受信された着信メッセージ、例えば、参加者デバイス130の1つからの新規取引注文メッセージは、通常は、その後に少なくとも1つのシーケンサ150(例えば、単一の現在アクティブなシーケンサ、及び場合によっては1以上のスタンバイシーケンサ)を通過することになり、着信メッセージは(複数のシーケンサが存在する場合には単一の現在アクティブなシーケンサによって)順序識別子でマーク付けされる。その識別子は、メッセージ間で相対順位付けを決定するとともに電子取引システム100の全体を通じてメッセージを一意的に識別するために、分散システム100(例えば、電子取引システム100)の全体を通じて後続の処理の過程で使用される固有の単調増加する値であり得る。一部の実施形態では、順序識別子は、メッセージがシーケンサに到着した順位(すなわち、順序)の表示であり得る。例えば、順序識別子は、到着メッセージ毎にシーケンサによって固定間隔に従って単調的に増分又は減分される値であってもよく、例えば、順序識別子は、到着メッセージ毎に1ずつ増分されてもよい。ただし、順序識別子は、固有ではあるが、単調増加又は減少する値に限られないことが理解されるべきである。一部の実施形態では、当初のマーク付けなしメッセージ及び順序マーク付きメッセージは、メッセージのマーク付きバージョンに含まれる順序識別子の値を除いて、基本的には同一となり得る。マーク付き着信メッセージ、すなわち、順序マーク付きメッセージは、順序付けられると、通常はその後に、潜在的に順位依存の処理をメッセージに対して実行するようにシーケンサ150によって他の下流側コンピュートノード140に転送される。したがって、電子取引システム100の全体を通じてメッセージを一意的に識別することに加えて、シーケンサ150によって割り当てられる順序識別子も、電子取引システム100における他のマーク付きメッセージの間で各マーク付きメッセージの相対順位付けを決定し得る。
【0085】
このように、順序識別子が採用され得る他の目的とは対照的に、ここに開示される固有順序識別子は、電子取引メッセージ処理のための確定的な順位(すなわち、順序)を確実にするために使用され得る。固有順序識別子は、電子取引システム内の他の取引メッセージに対する所与の電子取引メッセージの処理について指示的な固有の確定的な順位付け(すなわち、順序)を表す。例示実施形態によると、順序識別子は、非限定的な例として図1Eに関して以下にさらに開示するように、メッセージの順序IDフィールド110-14に追加され得る。
【0086】
一部の実施形態では、メッセージは、他の方向に、すなわち、コアコンピュートノード140から参加者デバイス130の1以上に、ゲートウェイ120の1つ以上を通過して流れてもよい。そのような1つのコアコンピュートノード140によって生成された発信メッセージも、順位依存(すなわち、順序-順位依存)であってもよく、したがって、さらに通常は、順序識別子を用いてマーク付けされるシーケンサ150を最初に通過し得る。そして、シーケンサ150は、マーク付き応答メッセージを、適切に確定的な順位で参加者デバイス130に伝達するためにゲートウェイ120に転送してもよい。
【0087】
固有順序番号を生成してそれによってメッセージ又はその表示をマーク付けするための、すなわち、順序マーク付きメッセージを生成するためのシーケンサ150の使用は、動作の正しい順位付けが分散システム、すなわち、電子取引システム100の全体を通じて維持されることを確実にし、それにかかわらず、コンピュートノード又はコンピュートノード140の組はメッセージを処理する。このアプローチは「状態確定性」を与え、例えば、システムの状態全体が(場合によっては、ディザスタリカバリサイトなど、他のいずれかの場所で)確定的かつ再現可能なものとなり、フォールトトレランス、高可用性及び災害復旧可能性を与える。
【0088】
生成ノード(すなわち、例えば、新たなメッセージを生成することによって及び/又は参加者デバイス130から受信したメッセージを転送することによって、新たなメッセージを電子取引システム100に導入するノード)及びそのピアノードが、そのメッセージに割り当てられた順序番号を受信することも重要となり得る。それが生成したメッセージに対する順序番号を受信することは、メッセージをそれらの順序番号に従って順に処理するためだけでなく、ノードによって生成されたメッセージを、電子取引システム100の残りの部分全体を通じて使用されるメッセージ順序識別子に相関付けるためにも、生成ノード及びそのピアノードに対して有用となり得る。生成ノードによって電子取引システムに導入されるようなメッセージのマークなしバージョンと、シーケンサによって出力される同じメッセージの順序マーク付きバージョンとの間のそのような相関は、図1Eに関連してさらに後述するように、メッセージの両バージョンにおける識別情報を介して行われ得る。電子取引システム100内で生成される後続のメッセージは、それ自体の順序番号も割り当てられているが、それでも関連する先行メッセージの1以上の順序番号を基準とし得る。したがって、ノードは、ノード自体が以前に生成したメッセージを(順序番号によって)迅速に参照する必要がある場合がある。これは、例えば、ノードが生成したメッセージの順序番号が後続のメッセージにおいて基準とされているためである。
【0089】
一部の実施形態では、生成ノードは、最初にメッセージをシーケンサ150に送信し、生成ノードがそのメッセージを電子取引システム100における他のノードに転送する前にシーケンサからメッセージに対する順序番号を受信するように待機してもよい。
【0090】
代替の例示実施形態では、電子取引システム100内で不要なレイテンシーの増加を加え得る少なくとも1つのホップを回避するために、順序付けなしメッセージを生成ノードから受信した後、シーケンサ150はメッセージの順序付きバージョン(すなわち、順序マーク付きメッセージ)を宛先ノードに送信するだけでなく、メッセージの順序付けバージョンを実質的に同時に送信ノード及びそのピアに返送してもよい。例えば、シーケンサ150は、ゲートウェイ120からコアコンピュートノード140に送信された着信メッセージに順序番号を割り当てた後に、メッセージの順序付けバージョンをコアコンピュートノード140に転送するだけでなく、当該メッセージの順序付けバージョンをゲートウェイ120-1及び他のゲートウェイ120に返送してもよい。したがって、コアコンピュートノード140において生成されたいずれかの後続メッセージが当該順序番号を基準とする場合、任意のゲートウェイ120は、ゲートウェイ120-1によって当初生成された関連するメッセージをその順序番号によって容易に識別することができる。
【0091】
同様に、一部の更なる実施形態では、コアコンピュートノード140によって生成されてそこからゲートウェイ120に送信され、シーケンサ150によって順序付けされた発信メッセージの順序付けバージョンは、シーケンサ150によってゲートウェイ120に転送されるとともにコアコンピュートノード140に返送されてもよい。
【0092】
一部の実施形態は、図4に関して以下にさらに開示するように、例えば、第1のシーケンサが故障した場合に他のシーケンサが利用可能となることを確実にするために、高可用性のための複数のシーケンサ150を含んでいてもよい。複数のシーケンサ150(例えば、現在アクティブなシーケンサ150-1及び1以上のスタンバイシーケンサ150-2、・・・、150-s)を有する実施形態について、現在アクティブなシーケンサ150-1は、シーケンサ150-1を通過した全てのメッセージのシステム状態ログ(不図示)及びメッセージの関連する順序番号を保持し得る。このシステム状態ログは、連続的又は周期的にスタンバイシーケンサに送信され、それらに必須システム状態を提供して必要に応じてそれらがアクティブなシーケンサを引き継ぐことを可能としてもよい。あるいは、システム状態ログは、複数のシーケンサ150にアクセス可能なデータストアに記憶されてもよい。
【0093】
システム状態ログは、ディザスタリカバリサイト155におけるスタンバイ複製電子取引システム(詳細には図示せず)において1以上のシーケンサに連続的又は周期的に複製されてもよく、それにより、電子取引システム100のプライマリサイトが破局故障に陥った場合に、電子取引はディザスタリカバリサイト155において厳密に同じ状態で継続可能となる。
【0094】
例示実施形態によると、複数のシーケンサのうちの現在アクティブなシーケンサが、システム状態ログをデータストア(不図示)に記憶し得る。データストアは、図1Dに関して以下にさらに開示するシーケンサ全域共有ネットワーク182-sなどの共有シーケンサネットワークを介して複数のシーケンサにアクセス可能となり得る。複数のシーケンサのうちの所与のシーケンサがその役割(状態)をスタンバイからアクティブに切り換える場合、当該シーケンサはシステム状態ログをデータストアから取得して状態をそれまでのアクティブなシーケンサの状態と同期させ得る。
【0095】
一部の実施形態では、システム状態ログは、シーケンサの1以上によって及び/又は電子取引システム100における1以上の他のノードによって実施され得るドロップコピーサービス152に提供されてもよい。ドロップコピーサービス152は、例えば、参加者デバイス130を介して接続され得る規制当局及び/又はクライアントに配信され得る、電子取引システム100を通じた日次の取引アクティビティの記録を提供してもよい。代替の実施形態では、ドロップコピーサービス152は、ゲートウェイ120の1以上において実施されてもよい。またさらに、システム状態ログを参照することに加えて又はそれに代えて、ドロップコピーサービス152は、電子取引システム100の全体を通じて送信される着信及び発信メッセージの内容に基づいて取引アクティビティの記録を提供してもよい。例えば、一部の実施形態では、ドロップコピーサービス152を実施するゲートウェイ120は、電子取引システム100の全体を通じて交換される全てのメッセージをシーケンサ150から(並びに/又はコアコンピュートノード140及び他のゲートウェイ120から)受信し得る。ドロップコピーサービス152から日次の取引アクティビティの記録を受信するように構成された参加者デバイス130は、必ずしも取引注文を電子取引システム100のマッチング機能に送信したりそれを利用したりしなくてもよい。
【0096】
参加者デバイス130とゲートウェイ120の間で交換されるメッセージは、金融取引に使用され得る任意の適宜のプロトコル(便宜上「金融取引プロトコル」という)に従うものとする。例えば、メッセージは、カスタムプロトコル、又はバイナリプロトコル(Nasdaq OUCH及びNYSE UTPなど)及びテキストベースのプロトコル(NYSE FIX CCGなど)の双方を含む確立された標準プロトコルに従って交換され得る。一部の実施形態では、電子取引システム100は、複数のプロトコルを同じゲートウェイ120において同時に含む複数の金融取引プロトコルに従って同時に交換メッセージをサポートし得る。例えば、参加者デバイス130-1、130-2及び130-3は、それぞれ、Nasdaq Ouch、NYSE UTP及びNYSE FIX CCGに従って、取引接続を同時に確立している場合もあれば、ゲートウェイ120-1とメッセージを交換している場合もある。
【0097】
またさらに、一部の実施形態では、ゲートウェイ120は、参加者デバイス130から受信した金融取引プロトコルに従うメッセージを、電子取引システム100内のノード間でメッセージを交換するために使用される標準化(例えば、規格化)メッセージフォーマットに翻訳してもよい。標準化取引フォーマットは、既存のプロトコルであってもよいし、一般的には、参加者デバイス130とメッセージを交換するのに使用されるいずれの金融取引プロトコルとも異なるサイズ及びデータフォーマットのものであってもよい。例えば、標準化取引フォーマットは、参加者デバイス130からゲートウェイ120において受信された当初の着信メッセージの金融取引プロトコルと比較した場合、場合によっては1以上の追加のフィールド又はパラメータを含んでいてもよく、1以上のフィールド又はパラメータを省略してもよく、並びに/又は標準化フォーマットにおけるメッセージの各フィールド若しくはパラメータは参加者デバイス130からゲートウェイ120において受信される対応するメッセージとは異なるデータタイプ若しくはサイズのものであってもよい。同様に、逆方向では、ゲートウェイ120は、電子取引システム100によって標準化フォーマットにおいて生成された発信メッセージを、ゲートウェイ120と通信するのに参加者デバイス130によって使用される1以上の金融取引プロトコルのフォーマットのメッセージに翻訳し得る。
【0098】
図1Eは、以上に開示した電子取引システム100においてノード間で交換される取引メッセージなどの取引メッセージについてのメッセージフォーマット110のフィールドの例示実施形態の表である。図1Eの例示実施形態では、メッセージフォーマット110は、それらが電子取引システム100内のノード間で交換される場合に、取引メッセージの内部的な(すなわち、電子取引システム100内での)表示のために使用されることが意図された標準化メッセージフォーマットである。この例示実施形態では、ゲートウェイ120は、参加者130と電子取引システム100との間でメッセージを交換し、当該メッセージを、参加者130によって使用される1以上の金融取引プロトコルによって指定されるフォーマットと、電子取引システム100におけるノード間で使用される標準化取引フォーマットとの間でメッセージを翻訳する。フィールド110-1~110-17は非限定的な例のためのものであること、メッセージフォーマット110はより多数の、より少数の又は異なるフィールドを含み得ること、及びそのようなフィールドの順は図1Eに示すものに限られないことが理解されるべきである。
【0099】
メッセージフォーマット110におけるフィールドは本例では単一のメッセージフォーマットで示されているが、それらは複数のメッセージフォーマットに分散され、又はレイヤードプロトコルにカプセル化されてもよい。例えば、他の実施形態では、メッセージフォーマット110におけるフィールドの一部の組は、メッセージフォーマット110の他のフィールドをメッセージペイロードにカプセル化する、レイヤードプロトコルにおけるヘッダ、トレイラー又は拡張フィールドの部分として含まれてもよい。一部の例示実施形態によると、メッセージフォーマット110は、限定することなく、IPデータグラム、UDPデータグラム、TCPパケットのそれぞれのペイロード部分を含む他のメッセージフォーマット、又は非限定的な例として、イーサネットデータフレームフォーマットなどのメッセージデータフレームフォーマット、若しくはInfiniBand、Universal Serial Bus(USB)、PCI Express(PCI-e)及びHigh-Definition Multimedia Interface(HDMI)を含む他のデータフレームフォーマットの、ペイロード(データ)部分にカプセル化されたデータの1以上のフィールドを規定し得る。
【0100】
メッセージフォーマット110は、1以上の参加者デバイス130との通信のための金融取引プロトコルに従って送信又は受信されたメッセージに含まれ得る情報に対応するフィールド110-1・・・110-6を含む。非限定的な例として、メッセージタイプフィールド110-1は、取引メッセージタイプを示す。ある取引メッセージタイプ(メッセージタイプ「新規注文」、「置換え注文」又は「取消し注文」など)は参加者デバイス130から受信されるメッセージに対応し、他のメッセージタイプ(「新規注文承認」、「置換え注文承認」、「取消し注文承認」、「約定」、「実行報告」、「未承諾取消」、「取引破綻」又は種々の拒否メッセージ)は電子取引システム100によって生成されて参加者デバイス130に送信される取引メッセージに含まれるメッセージに対応する。
【0101】
メッセージフォーマット110は、株式表示記号又はストックティッカーなど、取引される有価証券についての識別子を含む銘柄記号フィールド110-2も含む。例えば、「IBM」は「International Business Machines Corporation」に対する株式表示記号である。メッセージフォーマット110におけるサイドフィールド110-3は、取引メッセージが「買い」、「売り」又は「空売り」であるかなど、取引メッセージの「サイド」を示すのに使用され得る。同様に、価格フィールド110-4は、証券を買付又は売却する希望価格を示すのに使用され得る。数量フィールド110-5は、証券の希望数量(例えば、株数)を示すのに使用され得る。メッセージフォーマット110は、注文トークンフィールド110-6を含んでいてもよく、これは参加者デバイス130によって最初に提供された「注文トークン」又は「クライアント注文ID」に追加されて、ゲートウェイ120を介して参加者デバイス130と電子取引システムの間に確立された特定の取引セッション(すなわち、「接続」又は「フロー」)の背景において新規注文を一意的に識別し得る。
【0102】
フィールド110-1・・・110-6はほとんどの金融取引プロトコルに従うほとんどのメッセージタイプについて通常含まれる代表的なフィールドであるが、メッセージフォーマット110は、特に特定のメッセージタイプ又は特定の金融取引プロトコルをサポートするために追加の又は代替のフィールドを含み得るものでもあることが理解されるべきである。例えば、多くの金融取引プロトコルによると、「置換え注文」及び「取消し注文」メッセージタイプは、参加者130が追加の注文トークンを供給することで、置き換えられ又は取り消された注文を表してそれを当初の注文から区別することを要する。同様に、「置換え注文」及び「取消し注文」は、通常は置換え/取消数量フィールドも含み、「置換え注文」は置換え価格フィールドを含み得る。これらの追加の置換え/取消し注文トークンフィールド、置換え価格フィールド及び置換え/取消数量フィールドは、電子取引システム100によって送信される対応の承認メッセージに含まれてもよい。
【0103】
さらに、メッセージフォーマット110は、電子取引システム100内で内部的に使用され得るが、必ずしも参加者デバイス130と交換されるメッセージにおけるフィールドに対応しないフィールド110-11・・・110-17を含む。例えば、ノード識別子フィールド110-11は、電子取引システム100において各ノードを一意的に識別し得る。一部の実施形態では、生成ノードは、それが電子取引システム100に導入するメッセージにその識別子を含めてもよい。例えば、各ゲートウェイ120は、それが参加者デバイス130からコンピュートノード140及び/又はシーケンサ150に転送するメッセージにそのノード識別子を含めてもよい。同様に、各コンピュートノード140は、それが生成した、電子取引システム100における他のノードに送信されるメッセージ(例えば、1以上の参加者デバイス130に最終的に転送されることが意図された非同期メッセージの承認、実行又はタイプ)にそのノード識別子を含めてもよい。したがって、電子取引システム100に導入される各メッセージは、メッセージにおけるノード識別子フィールド110-11を介して、メッセージの生成ノードに対応付けられ得る。
【0104】
メッセージフォーマット110は、フロー識別子フィールド110-12も含み得る。一部の実施形態では、参加者デバイス130とゲートウェイ120の間に確立された各取引セッション(すなわち、「接続」又は「フロー」)は、電子取引システム100の全体を通じて固有のものとなることが意図されたフロー識別子によって識別され得る。図1Dとの関連で上述したように、参加者デバイス130は、1以上のフローを介して及びゲートウェイ120の1以上を介して電子取引システム100に接続され得る。このような実施形態では、特定のフローを介して参加者デバイス130と電子取引システム100の間で交換される全てのメッセージの(電子取引システム100におけるノード間で使用される)標準化メッセージフォーマット110によるメッセージのバージョンは、フロー識別子フィールド110-12における当該フローに対する固有識別子を含むことになる。一部の実施形態では、フロー識別子フィールド110-12は、メッセージの生成ノードによって追加される。例えば、ゲートウェイ120は、ゲートウェイ120が電子取引システム100に導入する、それが参加者130から受信するメッセージに関連するフローの識別子をフロー識別子フィールド110-12に加えてもよい。同様に、コアコンピュートノード140は、それが生成するメッセージ(すなわち、承認メッセージ又は約定などの応答メッセージ又は非同期メッセージを含む他の発信メッセージ)に関連するフロー識別子をフロー識別子フィールド110-12に加えてもよい。
【0105】
一部の実施形態では、フロー識別子フィールド110-12は論理フローを一意的に識別する値を含み、それは、複数の冗長取引セッション接続として、場合によっては複数のゲートウェイを介して、実際に高可用性の目的のために実施され得る。すなわち、一部の実施形態では、同じフローIDが、参加者デバイス130とゲートウェイ120の間の2以上の冗長フローに割り当てられてもよい。そのような実施形態では、冗長フローは、アクティブ/スタンバイ構成又はアクティブ/アクティブ構成のいずれかであり得る。アクティブ/アクティブ構成では、機能的に同等なメッセージは、参加者デバイス130とゲートウェイ120の間で同時に複数の冗長フローを介して並列に交換され得る。すなわち、取引するクライアントは、機能的に同等なメッセージを電子取引システム100に複数の冗長フローを介して同時に並列に送信し、複数の機能的に同等な応答を電子取引システム100から複数の冗長フローを介して並列に受信し得る。ただし、電子取引システム100は、単一の当該機能的に同等なメッセージのみに対して行動をとり得る。アクティブ/スタンバイ構成では、複数の冗長フローの間で一度に単一のフローがアクティブフローとして指定され得る一方で、複数の冗長フローの間の他方のフローはスタンバイフローとして指定され得る。取引メッセージは、実際には、現在アクティブなフローを介して交換されるだけとなる。冗長フローがアクティブ/アクティブ構成で構成されるのか、アクティブ/スタンバイ構成で構成されるのかにかかわらず、冗長フローのいずれかを介して交換されるメッセージは、標準化メッセージフォーマット110のフロー識別子フィールド110-12においてメッセージの生成ノードによって記憶された同じフロー識別子によって識別され得る。
【0106】
上述したように、一部の実施形態では、電子取引システム100におけるノード間で交換されるメッセージは、シーケンサ150に送信されて順序識別子がマーク付けされる。したがって、メッセージフォーマット110は、順序識別子フィールド110-14を含む。一部の実施形態では、「マークなしメッセージ」は、空のブランク(例えば、ゼロ)の値の順序識別子フィールド110-14とともに送信され得る。他の実施形態では、マークなしメッセージの順序識別子フィールド110-14は、シーケンサがメッセージに割り当てることのない特定の所定値、又は無効値に設定されてもよい。さらに他の実施形態は、メッセージがマーク付けされないことを、メッセージが順序付けされたか否かを示すBoolean値又はフラグ値など、メッセージの他のフィールド(不図示)におけるインジケータを介して指定してもよい。シーケンサ150は、マークなしメッセージを受信すると、その後に、有効な順序識別子の値をマークなしメッセージの順序識別子フィールド110-14に加えることにより、「順序マーク付きメッセージ」を生成し得る。順序マーク付きメッセージの順序識別子フィールド110-14における有効な順序識別子の値は、メッセージを一意的に識別し、さらに電子取引システム100の全体を通じて他のマーク付きメッセージの中のマーク付きメッセージの相対順位付けにおけるマーク付きメッセージの確定的な位置を指定する。本例では、シーケンサ150によって送信される「順序マーク付きメッセージ」は、その後に、順序マーク付きメッセージの順序識別子フィールド110-14が有効な順序識別子の値を含むことを除いて、シーケンサによって受信された対応のマークなしメッセージと同一となり得る。
【0107】
メッセージフォーマット110は、一部の実施形態では、基準順序識別子フィールド110-15も含み得る。生成ノードは、それが生成する新たなメッセージの基準順序識別子フィールド110-15に、生成されているメッセージに関連する前メッセージの順序番号の値を加えてもよい。基準順序識別子フィールド110-15の値によって、電子取引システム100におけるノードはメッセージを前関連メッセージに相関付けることができる。
【0108】
基準順序識別子フィールド110-15において参照される前関連メッセージは、同じ「注文チェーン」(すなわち、「取引注文チェーン」)における前メッセージであり得る。ほとんどの金融取引プロトコルによると、メッセージは、共通のメッセージを参照する、すなわち「そこから派生する」単一のフローを介したメッセージの組である「注文チェーン」に論理的にグループ化され得る。注文チェーンは、通常は、参加者デバイス130によって送信された「新規注文メッセージ」で開始する。注文チェーンにおける次のメッセージは、通常は、電子取引システムによる応答である(例えば、メッセージが取引システムによって受諾された場合の「新規注文承認」メッセージ、又はおそらくは、非限定的な例として無効価格などの無効なフォーマット若しくは無効なパラメータを有しているためにメッセージが取引システムによって拒否された場合の「新規注文拒否」メッセージのいずれかである)。注文チェーンは、前に承認された(ただし、依然として未決済であり、すなわち、取り消されず及び/又は約定されない少なくとも一部の数量を含む)新規注文の数量の少なくとも一部を取り消す、参加者デバイス130によって送信された「取消し注文」メッセージも含み得る。「取消し注文」メッセージは、ここでも、「取消し注文承認」又は「取消し注文拒否」メッセージにより電子取引システムによって承認又は拒否されることになり、これは注文チェーンの一部ともなり得る。注文チェーンは、前に承認された(ただし依然として未決済の)新規注文の数量及び/又は価格を置き換える、参加者デバイス130から送信される「置換え注文」メッセージも含み得る。「置換え注文」メッセージは、ここでも、「置換え注文承認」又は「置換え注文拒否」メッセージによって電子取引システムによって承認又は拒否されることになり、これは注文チェーンの一部ともなり得る。依然として未決済の前に承認された注文は、逆サイドの1以上の反対注文(すなわち、一方のサイドで「買い」及び他方のサイドで「売り」又は「空売り」)とマッチングされ得る。そして、電子取引システム100は、完全「約定」メッセージ(未決済の注文の数量の全てが単一のマッチングにおいて約定される場合)又は1以上の部分的な「約定」メッセージ(未決済の注文の数量の一部分のみが単一のマッチングにおいて約定される場合)を生成することになり、これらの「約定」メッセージも注文チェーンの一部ともなり得る。上述したように、基準順序識別子は、一般に、同じ注文チェーンにおける他の前メッセージを識別し得る。
【0109】
例えば、基準順序識別子フィールド110-15に戻ると、基準順序番号に対する値は、参加者デバイス130から生じてゲートウェイ120によって電子取引システム100に導入された「着信」メッセージに対してシーケンサによって割り当てられた順序番号となり、これにより、コンピュートノード140によって生成される応答メッセージなどの対応する「発信」メッセージはそれが応答している着信メッセージの順序番号値を参照し得る。本例では、コンピュートノード140によって生成される「新規注文承認」メッセージ又は「約定」メッセージは、コンピュートノード140が「新規注文承認」メッセージで応答し又は「約定」メッセージで注文を遂行している対応の「新規注文」メッセージに割り当てられた順序識別子に対する値を基準順序識別子フィールド110-15に含むことになる。ただし、一般に、基準順序識別子フィールド110-15に対する値は、必ずしも電子取引システム100によって直接応答されているメッセージのものである必要はないが、同じ注文チェーンの一部である前メッセージのもの、例えば、「新規注文」又は「新規注文承認」の順序番号となり得る。
【0110】
一部の実施形態では、少なくとも一部のメッセージタイプについて、ゲートウェイ120は、それらが電子取引システム100に導入するメッセージにおける基準順序識別子フィールド110-15に、関連する前メッセージに対する順序識別子の値を加えてもよい。例えば、ゲートウェイ120は、「取消し注文」又は「置換え注文」メッセージにおける基準順序識別子フィールド110-15に、前の対応する「新規注文」又は「新規注文承認」メッセージに割り当てられた順序識別子の値を加えてもよい。同様に、コアコンピュートノード140は、対応する「取消し注文承認」メッセージ又は「置換え注文承認」メッセージに対する順序識別子フィールド110-15に、コンピュートノード140が直接応答しているメッセージのものではなく(例えば、「取消し注文」又は「置換え注文」メッセージの順序識別子ではなく)「新規注文」又は「新規注文承認」に対する順序識別子の値も加える。ここでも、基準順序識別子フィールド110-15は、電子取引システム100におけるノードが一般にメッセージを同じ注文チェーンにおける1以上の前メッセージに相関付けることを可能とする。
【0111】
生成ノードは、それが電子取引システム100に導入するメッセージにノード特有タイムスタンプフィールド110-13を含めてもよい。シーケンサ150によって出力される順序マーク付きメッセージの順序識別子フィールド110-14に含まれる順序識別子は電子取引システム100の全体を通じて固有となることが意図されているが、ノード特有タイムスタンプフィールド110-13における値は、特定の生成ノードによって電子取引システム100に導入されたメッセージの一部の組の間で固有となり得る。ここでは「タイムスタンプ」というが、ノード特有タイムスタンプフィールド110-13に入る値は、当該ノードによって生成されるメッセージの間で固有な任意の適宜の値であり得る。例えば、ノード特有タイムスタンプは、実際にはタイムスタンプ又は任意の適宜の単調増加若しくは単調減少する値となり得る。
【0112】
一部の実施形態は、メッセージフォーマットに他のタイムスタンプフィールドを含み得る。例えば、一部のメッセージフォーマットは基準タイムスタンプフィールドを含んでいてもよく、それは前の関連メッセージの生成ノードによって割り当てられたタイムスタンプ値であってもよい。このような実施形態では、コンピュートノード140は、それが生成するメッセージに対するノード特有タイムスタンプフィールド110-13における新たなタイムスタンプ値を含んでいてもよく、コンピュートノードが生成するメッセージの基準タイムスタンプフィールドにおける関連メッセージからのタイムスタンプ値を含んでいてもよい。例えば、コンピュートノードによって生成される「新規注文承認」メッセージは、それが「新規注文承認メッセージ」の基準タイムスタンプフィールドにおいて応答している「新規注文」のタイムスタンプ値を含み得る。またさらに、一部の実施形態では、コンピュートノード140は、それらが生成するメッセージにおけるノード特有タイムスタンプフィールド110-13における新たなタイムスタンプ値を含まなくてもよいが、単に当該ノード特有タイムスタンプフィールド110-13に前の関連メッセージからのタイムスタンプ値を加えてもよい。
【0113】
メッセージフォーマット110は、エンティティタイプフィールド110-16及びエンティティカウントフィールド110-17も含み得る。メッセージのエンティティタイプは、それが電子取引システム100にゲートウェイ120によって導入されるのか又はそれともコンピュートノード140によって導入されるのか、言い換えると、メッセージが参加者デバイス130からゲートウェイ120において受信されている着信メッセージであるのか又はそれが参加者デバイス130に送信されるコンピュートノード140によって生成されている発信メッセージであるのかに依存し得る。例えば、一部の実施形態では、着信メッセージは、エンティティタイプ「フロー」とみなされる(かつエンティティタイプフィールド110-16には、タイプ「フロー」を表す値がゲートウェイ120によって着信メッセージに加えられる)一方で、発信メッセージはエンティティタイプ「銘柄記号」とみなされる(かつエンティティタイプフィールド110-16には、タイプ「銘柄記号」を表す値がコンピュートノード140によって発信メッセージに加えられる)。このような実施形態では、タイプ「フロー」のエンティティカウントがゲートウェイ120によって保持され、タイプ「銘柄記号」のエンティティカウントがコンピュートノード140によって保持される。
【0114】
エンティティタイプ「フロー」を検討すると、ゲートウェイ120は、フローあたりの着信メッセージカウントを保持し、ゲートウェイ120上でアクティブな各フローを介してゲートウェイ120によって受信された着信メッセージをカウントする。例えば、4本の非冗長フローがゲートウェイ120上でアクティブな場合、各フローは上述のように固有のフロー識別子に割り当てられることになり、ゲートウェイ120はフローあたりの着信メッセージカウントを保持し、それら4本のフローの各々を介して受信された着信メッセージ数をカウントすることになる。このような実施形態では、ゲートウェイ120は、着信メッセージのエンティティカウントフィールド110-17に、(メッセージのフロー識別子フィールド110-12に加えられたフロー識別子の値によって電子取引システム100の全体を通じて識別されるような)着信メッセージのフローに関連するフローあたりの着信メッセージカウントを加える。
【0115】
アクティブ/アクティブ構成(すなわち、上述したように、複数のフローが同じメッセージ又は少なくとも機能的に同等なメッセージを、1以上のゲートウェイ120を介して接続された参加者デバイス130から並列に受信する構成)における冗長フローの場合、各内在する冗長フローは、同じフロー識別子に割り当てられることになり、さらに、特に冗長フローが別個のゲートウェイ120上で実施される場合、フローあたりの着信メッセージカウントはそれでも各冗長フローに対して別個に保持され得る。参加者デバイス130は同じ順位(すなわち、順序)における同じ組のメッセージを電子取引システム100に冗長フローの各々を介して送信することが予想されることから、別個の冗長フローを介して受信される機能的に同等なメッセージに割り当てられるエンティティカウントは同一となるべきことも予想される。これらの機能的に同等な着信メッセージは、ゲートウェイ120によってシーケンサ150及びコンピュートノード140に転送され得る。したがって、このような実施形態では、シーケンサ150及びコンピュートノード140は、同じフロー識別子に関連する複数の機能的に同等な着信メッセージを受信し得るが、同じフロー識別子を有する複数のメッセージに対してエンティティカウントが同一である場合、シーケンサ150及びコンピュートノード140はそのようなメッセージが機能的に同等であるものとして識別し得る。一部の実施形態では、シーケンサ150及びコンピュートノード140は、各フローに関連する着信メッセージのエンティティカウントフィールド110-17に含まれていた最も高いエンティティカウントをフロー毎に追跡し得る。これにより、シーケンサ150及びコンピュートノード140は、各ノードが受信した複数の機能的に同等な着信メッセージの最初に到着するものに対してのみ行動をとり、後に到着する他の機能的に同等な着信メッセージを無視することができる。例えば、シーケンサ150は、一部の実施形態では、最初に到着するそのような機能的に同等な着信メッセージのみを順序付け、コンピュートノード140は最初に到着するそのような機能的に同等なメッセージに対してのみ処理を開始し得る。ノード(すなわち、シーケンサ150又はコンピュートノード140)によって受信される着信メッセージが、そのノードが当該フローに対して把握している最も高いエンティティカウント以下のエンティティカウントを有する場合には、そのノードは、着信メッセージは以前に受信された他の着信メッセージと機能的に同等である推定することができ、後に受信される機能的に同等な着信メッセージを単に無視してもよい。
【0116】
ここでエンティティタイプ「銘柄記号」の場合を検討すると、コンピュートノード140は、銘柄記号あたりの発信メッセージカウントを保持し、コンピュートノード140によって取り扱われる各銘柄記号に対してコンピュートノード140によって生成されてそこから送信される発信メッセージをカウントし得る。例えば、4個の銘柄記号(例えば、MSFT、GOOG、IBM、ORCL)がコンピュートノード140によって取り扱われる場合、各銘柄記号は、上述したように、メッセージの銘柄記号フィールド110-2に加えられた銘柄記号識別子に割り当てられ、コンピュートノード140は銘柄記号あたりの発信メッセージカウントを保持し、これら4個の銘柄記号の各々を取り扱っていた、それが生成及び送信した発信メッセージ数をカウントすることになる。このような実施形態では、コンピュートノード140は、(メッセージの銘柄記号フィールド110-2に加えられた値によって電子取引システム100の全体を通じて識別されるような)発信メッセージの銘柄記号に関連する銘柄記号あたりの発信メッセージカウントを着信メッセージのエンティティカウントフィールド110-17に加える。
【0117】
一部の実施形態では、さらに後述するように、コンピュートノードは、複数のコンピュートノードが、高可用性の理由により、特定の銘柄記号を並行して取り扱うように構成されてもよい。シーケンサ150によって与えられる電子取引システム100の全体を通じたメッセージの確定的な順位付けのために、複数のコンピュートノードが所与の銘柄記号を取り扱っていても、それらは同じ銘柄記号を同じ順位(すなわち、順序)で同様に参照する着信メッセージを処理していることになり、それにより、機能的に同等な応答メッセージを並列に生成することが保証可能となる。複数のコンピュートノード140にわたって特定の銘柄記号に対して送出される発信メッセージを検討すると、当該銘柄記号を参照する各発信メッセージは、当該銘柄記号を積極的に取り扱う他の各コンピュートノード140によって送出されている機能的に同等なメッセージを有すべきである。これらの発信メッセージは全て、コンピュートノード140によってシーケンサ150及びゲートウェイ120に送信され得る。したがって、このような実施形態では、シーケンサ150及びゲートウェイ120は、同じ銘柄記号に関連する複数の機能的に同等な着信メッセージを受信し得るが、シーケンサ150及びゲートウェイ120は、同じ銘柄記号識別子を有する複数のメッセージに対してエンティティカウントが同一である場合、メッセージは機能的に同等であるものとして識別し得る。一部の実施形態では、シーケンサ150及びゲートウェイ120は、銘柄記号に関連する発信メッセージのエンティティカウントフィールド110-17に含まれていた最も高いエンティティカウントを銘柄記号毎に追跡し得る。これにより、シーケンサ150及びゲートウェイ120は、各ノードが受信した複数の機能的に同等な発信メッセージの最初に到着するものに対してのみ行動をとり、後に到着する他の機能的に同等な発信メッセージを無視することができる。例えば、シーケンサ150は、一部の実施形態では、最初に到着するそのような機能的に同等な発信メッセージのみを順序付けてもよい。同様に、ゲートウェイ120は、最初に到着するそのような機能的に同等なメッセージのみを処理し始めてもよい。ノード(すなわち、シーケンサ150又はゲートウェイ120)によって受信される発信メッセージが、そのノードが当該銘柄記号に対して以前に把握している最も高いエンティティカウント以下のエンティティカウントを有する場合には、そのノードは、発信メッセージは以前に受信された他の発信メッセージと機能的に同等である推定することができ、後に受信される機能的に同等な発信メッセージを単に無視してもよい。
【0118】
シーケンサ150が、シーケンサに到着する複数の機能的に同等なメッセージの最初のメッセージのみを順序付ける実施形態では、シーケンサは様々な態様でそれを行うことができる。一例では、最初に到着する当該機能的に同等なメッセージと機能的に同等な他の後続の到着メッセージは、シーケンサによって単に無視されてもよい(この場合、機能的に同等なメッセージの組に対して単一の順序マーク付きメッセージのみがシーケンサによって出力されてもよい)。他の可能性は、シーケンサが、例えば、メッセージのエンティティカウント、そのフロー識別子又は銘柄記号識別子(「フロー」及び「銘柄記号」のエンティティタイプをそれぞれ有するメッセージについて)、及びその順序番号間を関連付けることによって最初の機能的に同等なメッセージに割り当てる順序番号を追跡することである。それにより、シーケンサは各機能的に同等なメッセージの順序付きバージョンを出力することができ、その各機能的に同等なメッセージの順序付きバージョンでは、全ての機能的に同等なメッセージの順序マーク付きバージョンについて順序識別子フィールド110-14の値が、シーケンサ150によって受信された機能的に同等なメッセージの間で最初に到着したメッセージにシーケンサによって割り当てられたものと同じである。
【0119】
他の実施形態では、シーケンサ150は、メッセージが機能的に同等であるか否かを追跡しなくてもよく、当該メッセージが複数の機能的に同等なメッセージのうちの1つであるか否かにかかわらず、シーケンサ150に到着する各順序付けなしメッセージに固有の順序番号を割り当ててもよい。このような実施形態では、複数の機能的に同等なメッセージのうちの順序マーク付きバージョンのメッセージの各々は、順序識別子フィールド110-14における値としてシーケンサによって異なる順序識別子に割り当てられる。機能的に同等なメッセージの組に対して有効な順序識別子を決定するために、このような実施形態における順序付けられた機能的に同等なメッセージの受信者ノードは、最初にノードに到着する順序付けられた機能的に同等なメッセージのうちの順序付きバージョンのメッセージにおける順序識別子を用いてもよい。電子取引システム100におけるノードの間に直接のポイントツーポイント接続がある実施形態では、メッセージの順序マーク付きバージョンはシーケンサ150によって順序付けられた順位で送出されるので、シーケンサに直接接続された全てのノードの間では同じ順序付け順位で受信されるべきである。したがって、シーケンサとのそれぞれの直接ポイントツーポイント接続を介して順序マーク付きメッセージを受信する全てのノードについて、複数の機能的に同等な順序マーク付きメッセージのうちの最初に到着した順序マーク付きメッセージは、順序識別子フィールド110-14に同じ値を有すべきである。
【0120】
上述から明らかとなるように、メッセージの順序識別子に加えて、メッセージフォーマット110などのメッセージフォーマットを有する実施形態では、電子取引システム100の全体を通じてメッセージを一意的に識別する多数の他の態様が存在し得る。例えば、メッセージがノード識別子及びノード特有タイムスタンプの双方を含む実施形態では、メッセージにおけるこれら2つの識別子の存在は、電子取引システム100の全体を通じてメッセージを一意的に識別するのに充分となり得る。そのようなフィールドは、メタデータを含むものとして理解され得る。そのような同一のメタデータを含む複数のメッセージは、共通のメタデータを含むものとして理解され得る。同様に、フロー識別子が電子取引システム100の全体を通じて固有である実施形態では、メッセージのフロー識別子及びノード特有タイムスタンプの組合せは、電子取引システム100の全体を通じてメッセージを一意的に識別するのに充分となり得る。またさらに、フロー識別子及びエンティティカウントの組合せはエンティティタイプ「フロー」のメッセージを一意的に識別するのに充分となり、銘柄記号識別子及びエンティティカウントの組合せはエンティティタイプ「銘柄記号」のメッセージを一意的に識別するのに充分となり得る。
【0121】
ただし、メッセージに割り当てられた順序識別子に加えて、電子取引システム100の全体を通じてメッセージを一意的に識別する他の態様が存在し得るが、電子取引システム100の全体を通じて他のノードによって生成される他のメッセージの間でメッセージの相対順位付けを公平かつ確定的な態様で指定するために、依然として順序識別子が必要であることが注記されるべきである。例えば、ノード特有タイムスタンプが実際にタイムスタンプ値として実施される場合、ノード間のシステムクロックが完全に同期されていても、異なるノードによって各々生成された2つの異なるメッセージの各々がそれらのそれぞれの生成ノードによって同じタイムスタンプ値に割り当てられる場合があり、そしてこれら2つのメッセージ間の相対順位付けは曖昧となる。メッセージが一意的に識別可能であっても、両メッセージの受信者ノードは、依然としてメッセージに対して可能な行動をとる前に2つのメッセージの相対順位付けを決定する態様を必要とすることになる。
【0122】
受信者ノードがその曖昧さを解消する1つの可能なアプローチとして、例えば、電子取引システム100の全体を通じてメッセージの相対順位付けにおける一方のメッセージを他方に先行するものとしてランダムに選択することによる、ランダム性の使用によるものが考えられる。ただし、曖昧さを解消するのにランダム性を用いることは、電子取引システム100の全体を通じて「状態確定性」を支持するものではない。異なる受信者ノードが、同じ組のメッセージの間での異なる相対順位付けをランダムに決定することになり、電子取引システム100内では予測不能で非確定的な挙動をもたらし、フォールトトレランス、高可用性及び災害復旧性などの重要な特徴の適正な実施を阻害してしまう。
【0123】
受信者ノードが順位付けにおける曖昧さを解消する他のアプローチとして、例えば、メッセージに関連するノード識別子に基づく所定の優先順位付け方法によるものが考えられる。ただし、そのようなアプローチは、電子取引システム100にメッセージを導入したノードのノード識別子に基づくだけで一部のメッセージに高い優先順位を与えることにより、公平性という重要な目標に反して作用する。例えば、一部の参加者デバイス130が、それらが偶発的に所定の優先順位付け方法において高いとみなされるゲートウェイ120を介して電子取引システム100に接続されたというだけで、優先されてしまうことになる。
【0124】
メッセージが、メッセージがそれぞれ「銘柄記号」又は「フロー」のエンティティタイプを有するか否かに応じてエンティティカウント及び銘柄記号識別子又はフロー識別子のいずれかを介して一意的に識別されるとすると、当該銘柄記号(「銘柄記号」のエンティティタイプを有するメッセージの場合)又は当該フロー(「フロー」のエンティティタイプを有するメッセージの場合)に関連する他のメッセージの間での確定的な順位付けが存在し得る。ただし、それぞれ異なる銘柄記号及びフローに関連する他のメッセージの間での順位付けは、依然として非確定的となる。
【0125】
したがって、メッセージフォーマット110における他のフィールドが電子取引システム100の全体を通じてメッセージを一意的に識別するのに充分となり得る場合であっても、電子取引システム100における他のメッセージに対するメッセージの順位付けを公平かつ確定的に指定するためには、シーケンサ150によってメッセージに割り当てられる順序識別子が依然として必要となり得る。このような実施形態では、シーケンサ150(又は複数のシーケンサ150が存在する場合には単一の現在アクティブなシーケンサ)は、電子取引システム100の全体を通じて順序マーク付きメッセージの間の真に確定的な順位付けの信頼できるソースとして作用する。
【0126】
一部の実施形態では、電子取引システム100におけるノードは、2つのバージョンのメッセージ:生成ノードによって電子取引システム100に導入されるような順序付けなし(マークなし)バージョンのメッセージ、及びシーケンサ150によって割り当てられた順序識別子を含むメッセージの(マーク付き)バージョンを受信し得る。これは、生成ノードがマークなしメッセージを1以上の受信者ノード及びシーケンサ150に送信する実施形態で起こり得る。そして、シーケンサ150は、同じメッセージの順序マーク付きバージョンを同じ受信者ノードを含むノードの組に送信し得る。
【0127】
上述したように、順序マーク付きバージョンのメッセージは電子取引システム100における他のマーク付きメッセージ間のメッセージの相対処理順位(すなわち、順序内の位置)を決定するのに有用であるが、受信者ノードがマークなしバージョンのメッセージを受信するのにも有用となり得る。例えば、予期せぬ場合に(例えば、ノード間に直接の接続がある実施形態では)、マークなしバージョンのメッセージがマーク付きバージョンのメッセージの前に受信されることが確かに可能となる。なぜなら、マーク付きバージョンのメッセージは、介在するホップを介してシーケンサ150を通じて送信されるためである。したがって、一部の実施形態では、信頼性を以って他のマーク付きメッセージの間のマーク付きメッセージの相対順位付けを示すマーク付きバージョンのメッセージを受信者ノードが受信する前であっても、受信者ノードはマークなしメッセージの受信に応じてマークなしメッセージの処理を活性化させる機会がある。
【0128】
同じメッセージのマーク付き及びマークなしバージョンの双方を受信するノードは、両バージョンのメッセージにおける同じ識別情報又は「共通のメタデータ」を介して2つのバージョンのメッセージを相互に相関付けることができる。例えば、上述したように、生成ノードは、それが生成するメッセージ(すなわち、マークなしメッセージ)に、電子取引システム100の全体を通じてともに各メッセージを一意的に識別し得るノード識別子及びノード特有タイムスタンプを含めてもよい。メッセージのマーク付き及びマークなしバージョンが、シーケンサ150によって割り当てられた順序識別子を除いて基本的に同一である実施形態では、マーク付きメッセージは対応するマークなしメッセージにも含まれる同じノード識別子及びノード特有タイムスタンプも含むことになり、それにより、両バージョンのメッセージの受信者ノードがマーク付き及びマークなしバージョンを相関付けることができる。したがって、マーク付きメッセージは電子取引システム100の全体を通じて他のマーク付きメッセージに対するマーク付きメッセージの相対順位付けを示すが、同じメッセージのマークなしバージョンとマーク付きバージョンの間で行われ得る相関付けのために、マーク付きメッセージは(少なくとも上述の相関付けを介して間接的に)電子取引システム100の全体を通じて(マーク付けされ又はマーク付けされない)他のメッセージに対するそのメッセージの相対順位付けを示す。電子取引システム100におけるノードが、上述したメッセージを一意的に識別する他の態様によってメッセージの順序マーク付きバージョンをマークなしバージョンに相関付けてもよいことが理解されるべきである。例えば、順序マーク付きメッセージとマークなしメッセージの間の相関付けは、フロー識別子及びノード特有タイムスタンプの組合せによって行われてもよい。そのような相関付けは、それぞれエンティティタイプ「銘柄記号」及び「フロー」を有するメッセージについて、メッセージにおける銘柄記号識別子又はフロー識別子とともにメッセージのエンティティカウントによって追加的又は代替的に行われてもよい。
【0129】
マイクロ秒又はさらにはナノ秒が重要となる高速取引の時代において、メッセージを電子取引システム100と交換する参加者デバイス130はレイテンシーに非常に影響を受け易いことが多く、低い予測可能なレイテンシーが好ましい。図1Dに示す構成は、少なくともゲートウェイ120の各々とコンピュートノード140の各々との間のポイントツーポイントメッシュ172のアーキテクチャを提供することによってこの要件に対応する。一部の実施形態では、メッシュ172における各ゲートウェイ120は、コンピュートノード140及びシーケンサ150に対する専用高速直接接続180を有し得る。
【0130】
例えば、専用接続180-1-1がゲートウェイ120-1(すなわち、GW1)とコアコンピュートノード140-1(すなわち、Core1)の間に設けられ、専用接続180-1-2が、ゲートウェイ120-1(すなわち、GW1)とコアコンピュートノード140-2(すなわち、Core2)の間に設けられ、それが続く。そして、例示の接続180-g-cがゲートウェイ120-gとコンピュートノード140-cの間に設けられ、例示の接続180-s-cがシーケンサ150とコアコンピュートノード140-c(すなわち、Core c)の間に設けられ、例示の接続180-gw1-s1がゲートウェイ120-1(すなわち、GW g)とシーケンサ150-1の間に設けられ、例示の接続180-c1-s1がコアコンピュートノード140-1(すなわち、Core1)とシーケンサ150-1の間に設けられる。
【0131】
ポイントツーポイントメッシュ172における各専用接続180は、一部の実施形態では、共有スイッチを利用しないポイントツーポイント直接接続であることが理解されるべきである。専用又は直接接続を、ここでは互換可能に直接又は専用「リンク」という場合があり、それは2つのエンドポイント間のその間の通信に専用の(すなわち、非共有の)直接接続である。このような専用/直接リンクは、以下にさらに開示するような任意の適宜の相互接続又はインターフェースであってもよく、有線イーサネットネットワーク接続又は他のタイプの有線若しくは無線ネットワークリンクなどのネットワークリンクに限られない。専用/直接の接続/リンクを、ここでは2つのエンドポイント間のエンドツーエンドパスという場合もある。このようなエンドツーエンドパスは、単一の接続/リンクであってもよいし、直列の接続/リンクを含んでいてもよい。ただし、その全体における、すなわち、一方のエンドポイントから他方のエンドポイントへの専用/直接の接続/リンクの帯域幅は、非共有であり、専用/直接の接続/リンクの帯域幅もレイテンシーも、要素が横断していたとしてもそのリソース利用によって影響を受け得ない。例えば、専用/直接の接続/リンクは、その利用に基づく帯域幅又はレイテンシーが影響を与えない1以上のバッファ又は他の要素を横断し得る。ただし、専用/直接の接続/リンクは、共有ネットワークスイッチを横断することはない。なぜなら、そのようなスイッチは、その共有使用に起因して帯域幅及び/又はレイテンシーに影響し得るためである。
【0132】
例えば、一部の実施形態では、ポイントツーポイントメッシュ172における専用接続180は、10ギガビットイーサネット(GigE)、25GigE、40GigE、100GigE、InfiniBand、Peripheral Component Interconnect-Express(PCIe)、RapidIO、Small Computer System Interface(SCSI)、FireWire、Universal Serial Bus(USB)、High Definition Multimedia Interface(HDMI)又はカスタムのシリアル若しくはパラレルバスなどの多数の態様で提供され得る。したがって、コンピュートエンジン140、ゲートウェイ120、シーケンサ150及び他の構成要素をここでは「ノード」ということもあるが、他のタイプの相互接続又はインターフェースが可能であるため、「コンピュートノード」、「ゲートウェイノード」、「シーケンサノード」又は「メッシュノード」などの用語の使用は、特定の構成要素が必ずネットワークリンクを用いて接続されることを意味するものと解釈されるべきではない。また、ここで開示される「ノード」は、ノードについて前述したそれぞれの機能を実行するように構成された任意の適宜のハードウェアコンポーネント、ソフトウェアコンポーネント、ファームウェアコンポーネント又はそれらの組合せであり得る。以下により詳細に説明するように、ノードは、プログラムされた汎用プロセッサであってもよいが、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)などの専用ハードウェアデバイス、又は他のハードウェアデバイス若しくはデバイス群、ハードウェアデバイス内のロジック、印刷回路基板(PCB)又は他のハードウェアコンポーネントであってもよい。
【0133】
ここに開示されるノードは独立した要素であってもよいし、ロジックを実行してここに前述したようなノードの機能を実行するように構成された単一のFPGA、ASIC又は他の要素内などの単一の要素内で相互に集積されていてもよいことが理解されるべきである。また、ノードは、汎用コンピュータ及び/又は上記デバイスのいずれかによって実行されるソフトウェア実行ロジックの実体物であり得る。
【0134】
1以上の共有スイッチを通じてコンピュートエンジン140、ゲートウェイ120及びシーケンサ150などの構成要素を接続する従来のアプローチは、可能な最低レイテンシーを与えない。これらの従来のアプローチはまた、メッセージ通信量が増加した期間において、レイテンシーにおける予測不能なスパイクをもたらしてしまう。
【0135】
例示実施形態では、専用接続180は、各ゲートウェイ120と各シーケンサ150の間、及び各シーケンサ150と各コアコンピュートノード140の間にも直接的に設けられる。またさらに、一部の実施形態では、専用接続180は、例示のシーケンサ150-1が他の各シーケンサ150-2、・・・、150-sに対する専用接続180を有するように、全てのシーケンサの間に設けられる。図1Dには図示していないが、一部の実施形態では、専用接続180はまた、各ゲートウェイ120-1が、図3に関して以下にさらに開示するような他の各ゲートウェイ120-2、・・・、120-gに対する専用接続180を有するように、全てのゲートウェイ120の間に設けられてもよい。同様に、一部の実施形態では、専用接続180はまた、例示のコアコンピュートノード140-1が、図3に関して以下にさらに開示するような他の各コアコンピュートノード140-2、・・・、140-cに対する専用接続180を有するように、全てのコンピュートノード140の間に設けられる。
【0136】
2つのノード間(例えば、任意の2つのノード120、150又は140の間)の専用接続180は、一部の実施形態では、冗長性及び信頼性の増加のために、それらの同2つのノード間の複数の冗長専用接続として実施されてもよいことも理解されるべきである。例えば、ゲートウェイ120-1とコアコンピュートノード140-1の間の専用接続180-1-1は、実際に一対の専用接続として実施されてもよい。
【0137】
さらに、一部の実施形態によると、ノードによって送出された任意のメッセージは、ポイントツーポイントメッシュ172においてそれに直接接続された全てのノードに並列に送出される。ポイントツーポイントメッシュ172における各ノードは、メッセージの受信に応じて何らかの行動をとるのか、それとも単にメッセージを無視するのかを、例えば、ノードの構成に基づいて、それ自体で決定し得る。一部の実施形態では、ノードは、完全にメッセージを無視しなくてもよい。ノードが、その構成に起因して、メッセージの受信に応じて実質的な行動をとらない場合でも、シーケンサ150によってメッセージに割り当てられたいずれかの順序番号を消費するなど、少なくとも最小限の行動をとるようにしてもよい。すなわち、このような実施形態では、ノードは、ノードがより実質的な行動をメッセージに対してとる場合に適切な順序付け順位でそのようにすることを確実にするために、最後の受信順序番号を追跡してもよい。
【0138】
例えば、「Microsoftを10株、190.00ドルで売る」という取引注文を含むメッセージが、トレーダーのパーソナルコンピュータなどの参加者デバイス130-1から生じ、ゲートウェイ120-1(すなわち、GW1)に到着するものとする。当該メッセージは、コアコンピュートノード140-2のみが現在Microsoft株の注文についてマッチングを実行しているとしても、全てのコアコンピュートノード140-1、140-2、・・・、140-cに送信される。全ての他のコアコンピュートノード140-1、140-3、・・・、140-cは、受信に応じてメッセージを無視し、又はメッセージに最小限の行動のみをとり得る。例えば、140-1、140-3、・・・、140-cによってとられる唯一の行動は、シーケンサ150-1によってメッセージに割り当てられた順序番号を消費することとなり得る。当該メッセージは、単一のシーケンサ(本例では、シーケンサ150-1)が、メッシュにサービスを提供する現在アクティブなシーケンサであってもシーケンサ150-1、150-2、・・・、150-sの全てにも送信される。他のシーケンサ150-2、・・・、150-sもメッセージを受信して、シーケンサ150-1(現在アクティブなシーケンサ)が故障した場合、又は異なるアクティブなシーケンサを移動することによって電子取引システム100の全体的信頼性が増加することになる場合、現在アクティブなシーケンサを引き継ぐ機会をそれらに与える。他のシーケンサの1以上(例えば、シーケンサ150-2)も、ディザスタリカバリサイト155にシステム状態を中継する責任を担う。ディザスタリカバリサイト155は他の物理的位置に電子取引システム100の複製を含んでいてもよく、その複製は電子取引システム100の個々の構成要素の一部又は全部の物理的又は仮想的な実体物を備える。
【0139】
各メッセージを全ての直接接続されたノードに並列に送出することによって、電子取引システム100は、複雑さを減少させ、さらに冗長性及び高可用性を促進する。全ての直接接続されたノードがデフォルト設定で全てのメッセージを受信する場合、複数のノードは同じメッセージに対して冗長的な態様で行動をとるように構成され得る。「Microsoftを10株、190.00ドルで売る」という注文の上記例に戻ると、一部の実施形態では、複数のコアコンピュートノード140が、Microsoft株の注文についてのマッチングを同時に実行し得る。例えば、コアコンピュートノード140-1及びコアコンピュートノード140-2の双方が、Microsoft株メッセージについてのマッチングを同時に行うことになり、当該「売り」注文の着信メッセージを受信した後、コアコンピュートノード140-1及びコアコンピュートノード140-2の各々がシーケンサ150を通じてゲートウェイ120に送信して1以上の参加者デバイス130に渡される承認又は実行メッセージなどの応答メッセージを各々独立して生成し得る。
【0140】
シーケンサ150によって保証される厳密な順位付け及び状態確定性のために、コアコンピュートノード140-1及び140-2によって独立して生成されてそこから送信された関連する応答メッセージの各々が、実質的にかつ機能的に同等となることが保証可能となる。したがって、電子取引システム100のアーキテクチャはメッセージの冗長な処理を直ちにサポートするので、システムの可用性及び復元性が増加する。このような実施形態では、ゲートウェイ120は、同じ対応する着信メッセージに対してコアコンピュートノード140から複数の関連する発信メッセージを受信し得る。これら複数の関連する応答メッセージが同等となることが保証可能であるということに起因して、ゲートウェイ120は、単に最初に受信した発信メッセージのみを処理すればよく、同じ着信メッセージに対応する後続の関連する発信メッセージを無視する。一部の実施形態では、「最初の」及び「後続の」メッセージは、当該メッセージは順序マーク付きメッセージであり得るため、それらの関連する順序番号によって識別され得る。しかし、シーケンサ150が複数の機能的に同等なメッセージの間で単一の順序識別子を割り当てるものなど、他の実施形態では、メッセージは、図1Eに関連してさらに上述したように、エンティティタイプフィールド110-16及びエンティティカウントフィールド110-17における値など、メッセージにおける他の識別情報に基づいて機能的に同等であるものとして識別され得る。
【0141】
したがって、ゲートウェイ120が複数の機能的に同等な関連する応答メッセージのうちの最初にそれらに到着するものに対して行動をとることを可能とすることは、電子取引システム100のレイテンシー全体を改善することにもなり得る。またさらに、電子取引システム100は、任意の着信メッセージが複数のコンピュートノード140によって処理されるように容易に構成可能であり、複数のコンピュートノード140の各々は先着順にゲートウェイ120によって処理され得る同等な応答メッセージを生成する。そのようなアーキテクチャは、コンピュートノード140が(システム故障、ノード再構成又は保守作業に起因するかにかかわらず)所定期間にわたって着信メッセージを取り扱っていない場合に、レイテンシーに知覚可能な影響を与えることなく高い可用性に供する。
【0142】
このような電子取引システム100のポイントツーポイントメッシュ172のアーキテクチャは、低い予測可能なレイテンシー及びメッセージの冗長処理を維持することに加えて、複数の内蔵冗長パスにも供するものである。図から分かるように、任意のゲートウェイ120と任意のコンピュートノード140の間には複数のパスが存在する。ゲートウェイ120-1とコンピュートノード140-1の間の直接接続180-1-1が利用不能となった場合でも、通信は、代わりにシーケンサ150の1つを横断することによるなどして、代替のパスを介してこれら2つの要素間で依然として可能である。したがって、より一般的には、ポイントツーポイントメッシュ172では、任意のノードと任意の他のノードの間に複数のパスが存在する。
【0143】
またさらに、このポイントツーポイントメッシュアーキテクチャは、金融取引システムの他の重要な目標、すなわち、公平性を本来的に維持する。ノード間の直接接続を有するポイントツーポイントアーキテクチャは、任意のゲートウェイ120と任意のコアコンピュートノード140の間又はシーケンサ150と任意の他のノードの間のパスが同一の又は少なくとも非常に近似するレイテンシーを有することを確実にする。したがって、2つの異なるゲートウェイ120から同時にシーケンサ150に送出される2つの着信メッセージは、実質的に同時にシーケンサ150に到着するはずである。同様に、コアコンピュートノード140から送信される発信メッセージは、全てのゲートウェイ120に同時に送信され、実質的に同時に各ゲートウェイによって受信されるはずである。ポイントツーポイントメッシュのトポロジーはいずれか1つのゲートウェイ120を選好しないため、特定のゲートウェイ120に接続されることが参加者デバイス130に不公平な優劣を与え得る機会が最小化される。
【0144】
さらに、電子取引システム100のポイントツーポイントメッシュアーキテクチャは、ノードの機能、すなわち、ノードが現在ゲートウェイ120、コアコンピュートノード140又はシーケンサ150として作用しているかを容易に再構成することを可能とする。各ノードがそれ自体とポイントツーポイントメッシュにおける他の各ノードとの間の直接接続を有する実施形態においてそのような再構成を実行することは、特に容易である。各ノードがメッシュにおける他の各ノードに直接接続を介して接続される場合、メッシュ内でのノードの機能の変更(例えば、ノードの機能をコアコンピュートノード140からゲートウェイ120に、又はゲートウェイ120からシーケンサ150に変更すること)のために、ポイントツーポイントメッシュ172内の接続180(物理的か仮想的かにかかわらず)の配線又はケーブルの引き直しが必要となる。このような実施形態では、ポイントツーポイントメッシュ172の内部的に必要な再構成は、遠隔で実行される構成変更を通じて容易に実現され得る。ノードが新たなゲートウェイ120として作用するように再構成され、又はゲートウェイ120として作用することから他の機能に再構成される場合、ポイントツーポイントメッシュ172の外部的に幾らかの付随的なネットワーキング変更が必要となり得るが、メッシュの内部的な配線はそのままであってもよい。
【0145】
したがって、一部の実施形態では、ノードの機能の再構成は、取引時間中にライブで、さらには動的に実現され得る。例えば、電子取引システム100の負荷の特性の変化又は新たな要求に起因して、コアコンピュートノード140-1を代わりに追加のゲートウェイ120として作用するように再構成することが有用となる場合がある。他のコンピュートノード140への状態又は構成の幾つかの可能な再分散後に、新たなゲートウェイ120が利用可能となり、参加者デバイス130からの新たな接続を受け入れ始めることになる。
【0146】
一部の実施形態では、より低速で潜在的により高遅延の共有接続182が、ゲートウェイ120及び/又はコアコンピュートノード140の間など、システム構成要素の間に設けられてもよい。これらの共有接続182は、図1B-2に関して以上に開示したメッセージ106及び応答107などの、ポイントツーポイントメッシュ172における専用接続180を介して実行される取引アクティビティに関連するメッセージとは対照的に、非常に低遅延の通信を必要としない保守、管制作業、管理作業及び/又は同様の作業に使用され得る。取引アクティビティに関連するトラフィックを搬送する第1の直接接続180-a、第2の直接接続180-b及び第3の直接接続180-cとは対照的に、共有接続182g及び182cは非取引アクティビティタイプのトラフィックを搬送する。非取引トラフィックを搬送する共有接続182は、1以上の共有ネットワークを介し、かつ1以上のネットワークスイッチを介するものであってもよく、メッシュにおけるノードは異なる態様でこれらの共有ネットワーク間で分散されてもよい。例えば、一部の実施形態では、ゲートウェイ120は全てゲートウェイ全域共有ネットワーク182-g内にあり、コンピュートノード140はそれら自体のそれぞれのコンピュートノード全域共有ネットワーク182-c内にあり、シーケンサ150はそれら自体の別個のシーケンサ全域共有ネットワーク182-s内にあり得るが、他の実施形態では、メッシュ内の全てのノードはそれらのレイテンシーに影響を受けない作業のための同じ共有ネットワークを介して通信し得る。
【0147】
電子取引システム100などの分散コンピューティング環境は、種々の構成要素の間で緊密な同期を維持するように高分解能クロックに従うことがある。この目的のため、ノード120、140、150のうちの1以上には、一部の実施形態では、高分解能の全地球測位システム(GPS)クロック195などのクロックへのアクセスが与えられてもよい。以下の記載の目的のため、ポイントツーポイントメッシュ172に接続されたゲートウェイ120、コンピュートノード140及びシーケンサ150を「メッシュノード」といい、それらは図2に関して以下にさらに開示するようなアーキテクチャを有し得る。
【0148】
図1Fは、電子取引システム100によって実行されてメッセージを処理し得る処理125の例示実施形態のフロー図である。図1B-2を参照すると、ゲートウェイ120-1は参加者デバイスからメッセージを受信し(131)、これに対して、メッセージ106をシーケンサ150-1及びコンピュートノード140-1に送信し得る(132)。ゲートウェイ120-1はメッセージ106におけるゲートウェイ120-1によって生成される識別子を任意選択的に含んでいてもよく、複数のコンピュートノード及び/又はシーケンサを備える電子取引システムにおいて、ゲートウェイ120-1はメッセージ106を全ての当該ノードに送信し得る。コンピュートノード140-1は、メッセージ106の受信に応じて、まず、メッセージ106はコンピュートノード140-1が処理に対して割り当てたものなのか否かを判定し、メッセージ106の1以上の値又は識別子(例えば、所与の金融商品を表す銘柄記号又はトランザクションのタイプなどの共通パラメータの値)に基づいてこの判定を行ってもよい。メッセージ106が処理に割り当てられたものである場合には、コンピュートノード140-1はメッセージ106に前処理を実行して(134)予備結果を生成し得る。例えば、コンピュートノード140-1は、メッセージ106において参照される値に関連する情報(例えば、金融商品の銘柄記号)をメモリに読み込んでもよい。代替的又は追加的に、一部の実施形態では、前処理は、非限定的な例として、承認メッセージ又は実行メッセージを含む応答メッセージを生成すること、メッセージ106において参照される値(例えば、金融商品についての銘柄記号)に対する注文控え帳の予備更新を行うことなど、マッチング機能を実行することを含み得る。このような前処理は、それが有害な副作用を有さないように行われてもよいし、又は必要に応じて、前処理が実行されたメッセージが順通りには受信されなかったことが後に判定される場合にアトミックに(すなわち、トランザクション毎に)「ロールバック」されてもよい。
【0149】
同時に、シーケンサ150-1は、例えば、所与の順位(すなわち、順序)で処理される必要があり得る一連のメッセージ内でメッセージ106の位置が識別されることを可能とする固有順序識別子にメッセージ106を関連付けること(133)によってメッセージ106を順序付けて、メッセージ106の順序マーク付きバージョン、すなわち、順序マーク付きメッセージ106´を生成し得る。完了すると、シーケンサ150-1は、メッセージ106(又はその表示)及び順序識別子を含む順序マーク付きメッセージ106´をコンピュートノード140-1に送信してもよい(135)。コンピュートノード140-1が順序マーク付きメッセージ106´を受信すると、それは、一部の実施形態では、それがその前処理を実行した(順序付けなし)メッセージ106が順通りに受信されたか否かを判定し、すなわち、順序を検証し得る(136)。順序を検証することの一部として、コンピュートノード140-1は、両バージョンのメッセージにおける共通のメタデータ又は共通の識別情報によってメッセージ106を順序マーク付きメッセージ106´に相関付けてもよい。例示実施形態の処理125において、メッセージ106は順通りに受信されており、コンピュートノード140-1はメッセージ106を処理するステップを継続すること(137)に進むことができる。前処理の結果として、コンピュートノード140-1は、順序マーク付きメッセージ106´を受信した後に実行していたことになる幾つかの動作(例えば、値のキャッシュメモリ参照)を既に完了しており、それにより、コンピュートノード140-1は、前処理動作がなかったとした場合に完了するよりも早くメッセージ106を処理するステップを完了し得る。
【0150】
図1Gは、電子取引システムの動作の他の例示実施形態を示す処理165の例示実施形態のフロー図である。処理165は、電子取引システム100によって実行されてメッセージを処理し得る。図1Gの実施形態では、電子取引システム100は、少なくとも第2のゲートウェイであるゲートウェイ120-2を含む。図1B-2を参照すると、ゲートウェイ120-1は、第1のメッセージ(M1)を参加者デバイスから受信し(166)、これに対して、第1のメッセージM1に対応するメッセージ106をシーケンサ150-1及びコンピュートノード140-1に送信し得る(167)。メッセージ106を第1のメッセージM1ともいう場合があるが、ゲートウェイがそのメッセージを、非限定的な例として、ゲートウェイ120-1の識別子など異なるメタデータを含むように修正している場合があるため、メッセージ106はM1と同一ではない場合があることが理解されるべきである。ゲートウェイ120-2は、第2のメッセージ(M2)を他の参加者デバイスから受信し(168)、第2のメッセージM2に対応するメッセージをシーケンサ150-1及びコンピュートノード140-1に送信し得る(169)。第2のメッセージM2に対応するメッセージを、ここでは第2のメッセージM2という場合もある。本例では、第1及び第2のメッセージは共通の一連のメッセージに属し、それにより、第1及び第2のメッセージが処理される相対順位(すなわち、順序)が電子取引システム100の状態に影響を与え得る。図1Gの例示実施形態では、コンピュートノード140-1は第1のメッセージを受信する前に第2のメッセージを受信し、第2のメッセージはコンピュートノード140-1が処理に割り当てたものであると確認すると、その後にコンピュートノード140-1はメッセージに対して前処理を実行し得る(171)。第1のメッセージ(M1)を受信すると、コンピュートノード140-1は、第1のメッセージ(M1)に対しても前処理を実行し得る(173)。
【0151】
シーケンサ150-1は、第1及び第2のメッセージの双方を受信し得る。そして、シーケンサ150-1は、第1及び第2のメッセージの各々に、第1及び第2のメッセージの相対順位付け、すなわち、順序を決定するのに使用され得るそれぞれの固有順序識別子を割り当て得る(170、174)。一部の実施形態では、シーケンサによってメッセージに割り当てられる順序識別子は、非限定的な例として単調増加する順序番号であり得る。またさらに、一部の実施形態では、シーケンサによってメッセージに割り当てられる順序識別子の値は、シーケンサ150-1におけるメッセージの到着時刻に基づいていてもよい。すなわち、一部の実施形態では、非限定的な例として、メッセージは、それらがシーケンサ150-1によって受信される毎に先入先出(FIFO)キューに入れられ、それらがFIFOキューから除去される毎に順序識別子を割り当てられる。図1Gの例示実施形態では、シーケンサ150-1においてメッセージM1はメッセージM2よりも先に受信されているので、順序識別子が単調増加する順序番号である実施形態では、シーケンサ150-1によって、メッセージM1は、メッセージM2に割り当てられた他方の順序番号に相対してより低い順序番号を割り当てられることになる。順序識別子を各メッセージに割り当てる処理が完了すると、シーケンサ150-1は、第1及び第2のメッセージ又はそれらの表示に対応するマーク付きメッセージ(すなわち、順序識別子を含むメッセージ)をコンピュートノード140-1に送信し得る(175、177)。一部の実施形態では、コンピュートノード140-1がマーク付きメッセージを受信すると、それがその前処理を実行した(順序付けなし)メッセージ106が順通りに受信されたか否かを判定し、すなわち、順序を検証し得る(176)。順序を検証することの一部として、コンピュートノード140-1は、両バージョンのメッセージにおける共通のメタデータ又は共通の識別情報によって順序付けなしメッセージ106を順序マーク付きメッセージ106´に相関付けてもよい。処理165において、コンピュートノード140-1は、第2のメッセージを順通りには受信されていない。この結果において、前処理(例えば、非限定的な例として、メッセージの共通パラメータの値についてのキャッシュ参照)の成果物の一部又は全部は、任意選択的に破棄されてもよく、又は他のタイプの前処理についてはアトミックロールバックされてもよい。そして、コンピュートノード140-1は、第1及び第2のメッセージの双方をシーケンサ150-1によって示されるように順位(すなわち、順序)通りに処理すること(178)に進み得る。
【0152】
順序付けなしメッセージがコンピュートノード140-1において順通りには受信されなかったことが判定された場合でも、ノード140-1は前処理をメッセージに行うことから依然として利益を受けることになる。メッセージを前処理することによって、コンピュートノード140-1は、このメッセージを将来処理する必要がありそうであると判定しており、これにより、時間を節約する先手の行動をとることができる。例えば、同じ株式表示記号に対する現在の未決済取引注文についての情報など、メッセージを完全に処理するのに必要となる情報は、メッセージが完全に処理可能となる前により高速側メモリ(例えば、図2に示す固定ロジックメモリ250などのFPGAメモリ、又は他のキャッシュメモリ)に存在している必要があり、高速側メモリに未だ存在していない場合には、低速側メモリ(例えば、ハードディスク、又は図2に示すDRAM280などのDRAM)からの取得が最初に必要となり得る。最近参照されていないメッセージの株式表示記号などの共通パラメータの値について、この情報は現在高速側メモリに存在ない場合もあるが、コンピュートノード140-1は、順序通りでないメッセージの場合であっても予めメモリコピー動作を実行し、それにより、順序付きメッセージが適切な順位(すなわち、順序)でその後に速やかに到着する場合に時間を節約することができる。高速側メモリが複数の値に対して情報を保持するのに充分に大容量であることを条件として、コンピュートノードが予め多数の値に対して情報をプリフェッチすることを可能とすることによって、複数の連続する順通りでないメッセージの列を受信することさえも有益となり得る。したがって、コンピュートノード140-1は、前処理動作の結果を無視するのではなく、その結果を後の処理動作中の参照のために一時的に保存してもよい。
【0153】
一部の例示実施形態では、コンピュートノードによる前処理の成果物は、順序順位付けに従わないインスタンスにおいては依然として有効であり得る。例えば、各コンピューティングノードが、メッセージの共通パラメータの値の一部の組(例えば、限定的な数の株式表示記号、又は金融商品の他のインジケータ)など、動作の一部の組を取り扱う実施形態では、コンピューティングノードは、それが取り扱わない他の株式表示記号を参照するメッセージを依然として受信し得るが、順序の順位は、コンピューティングノードが取り扱う値にそれが影響を与える限りにおいてのみ、コンピュートノードに関連し得る。また、異なる値を参照するメッセージの順位付けは、相互から独立しているものとみなされ得る。例えば、メッセージが、異なる値の株式表示記号を参照する他のメッセージに相対して順通りに受信されない場合、これら2つのメッセージが処理される順序はマッチング機能動作の結果に影響することはなく、前処理に関する更なる行動(例えば、ロールバック)は必要とならず、前処理された結果は、最終的には修正なしに使用され及び/又は分散システムの状態に拘束され得る。
【0154】
一部の実施形態では、順序を検証すること(図1Fの136及び図1Gの176)は、コンピュートノード140-1によって実行される前処理の性質によっては必要でない場合もあることが理解されるべきである。例えば、順序付けなしメッセージに対して実行される前処理が有害な副作用を有さず、他のメッセージの処理(例えば、メッセージにおいて参照される銘柄記号に関連するデータを高速側のメモリに読み込むこと)の結果に影響することがない場合には、順序付けなしメッセージの前処理がシーケンサ150-1によって決定される順序に応じて行われたことを検証する必要はない場合があり、確かに前処理の結果を破棄又はアトミックロールバックする必要がない場合もある。このような実施形態では、コンピュートノード140-1は、単にその後に、前処理された結果を利用する間は常に、順序マーク付きメッセージ106´において順序識別子によって指定された順序の順位で、順序マーク付きメッセージ106´を受信したことに応じてメッセージの処理を完了し得る。
【0155】
順序付けなしメッセージについて行われ得る前処理の量、及びその前処理の結果が破棄又はロールバックされる必要があるか否かは、図1Eの実施形態に係るメッセージタイプフィールド110-1、銘柄記号フィールド110-2、サイドフィールド110-3又は価格フィールド110-4など、メッセージにおけるフィールドに応じていてもよい。それは、同じ株式表示記号など、メッセージにおける共通パラメータに対する同じ値を参照する他の順序付けなしメッセージが現在未処理である(すなわち、それに対して対応する順序マーク付きメッセージが未だ受信されていない)か否かに応じてもよい。
【0156】
例えば、「新規注文」のメッセージタイプを有する順序付けなしメッセージがコアコンピュートノード140-1によって受信された場合、コアコンピュートノード140-1は注文控え帳の関連部分に関連する銘柄記号情報を高速メモリに読み込み、その新規注文が注文控え帳において未決済注文に対して一致するものである場合、コンピュートノード140-1は、それにより「約定」メッセージを生成し始めるが、当該メッセージの順序付きバージョンを受信するまで、注文控え帳の更新を確約すること及び「約定」メッセージを送出することを控えることになる。ただし、コンピュートノード140-1が、注文控え帳における同じ未決済注文に対する潜在的な一致ともなるような、同じ株式表示記号、サイド、価格などを参照する他の未処理の順序付けなし「新規注文」メッセージも受信している場合、コアコンピュートノード140-1はその前処理を異なる態様で実行してもよい。一部の実施形態では、コアコンピュートノード140-1は、未決済注文に対して一致として作用し得る2つの未処理の順序付けなし「新規注文」メッセージの各々について、競合する潜在的な「約定」メッセージを生成し得る。メッセージの順序付きバージョンに基づいて、潜在的な「約定」メッセージの1つが破棄されてもよく、他方は注文控え帳に確約されてゲートウェイ120に送出されることになる。他の実施形態では、2以上の可能性ある未処理の順序付けなしメッセージが潜在的に同じ未決済注文に一致し得る場合、コンピュートノード140-1は、破棄若しくはロールバックされる必要があるいずれの前処理も実行せず(例えば、いずれの潜在的な「約定」メッセージも作成せず)又はこれらの未処理の順序付けなしメッセージについてのいずれの当該前処理も中止若しくは中断し得る。
【0157】
他の例として、注文控え帳における未決済注文に対する潜在的な一致となる未処理の順序付けなし「新規注文」メッセージは、「新規注文」メッセージに対する潜在的な一致として作用することになる注文控え帳における同じ未決済注文をそれぞれ置き換え又は取り消すことを試みる未処理の順序付けなし「置換え注文」メッセージ又は「取消し注文」メッセージと競合し得る。この場合、「新規注文」メッセージ対「置換え/取消し注文」メッセージの、シーケンサによって割り当てられた相対順序に応じて、最終結果は、注文控え帳における未決済注文と「新規注文」メッセージとの間の一致となるか、それとも当該未決済注文が取り消され又は異なる価格若しくは数量の新規注文によって置き換えられるかのいずれかとなり得る。競合する未処理の順序付けなしメッセージの順序マーク付きバージョンがシーケンサ150-1によって受信されるまで、コンピュートノード140-1はこれら2つの結果のいずれとなるべきかを決定することはできない。
【0158】
この場合、コンピュートノード140-1は、前処理を異なる態様で実行し得る。一部の実施形態では、複数の競合する未処理の順序付けなしメッセージがある場合、コンピュートノード140-1は、両競合メッセージにおいて参照される銘柄記号に関連する注文控え帳の関連部分を高速側のメモリに読み込むなど、ロールバック又は破棄される必要のない前処理を単に実行し得る。他の実施形態では、コンピュートノード140-1は、各々が複数の競合シナリオの1つに対応する1以上の暫定の潜在的な応答を構成するなど、追加の前処理を実行してもよい。例えば、コンピュートノード140-1は、潜在的な「約定」メッセージ及び/又は潜在的な「置換え承認」メッセージ又は「取消し承認」メッセージを作成し、場合によっては、複数の可能性ある結果のうちの1以上に対応する注文控え帳の暫定的な更新を行ってもよい。一部の実施形態では、コンピュートノード140-1はこの追加の前処理を全ての当該競合シナリオについて実行し得るが、他の実施形態では、コンピュートノード140-1は追加の前処理を競合シナリオのうちの1つ又は一部の組についてのみ実行し得る。例えば、コンピュートノード140-1は、他の未処理の競合する順序付けなしメッセージがない場合にのみ追加の前処理を未処理の順序付けなしメッセージに対して実行してもよい。代替的又は追加的に、コンピュートノード140-1は、前処理の結果をロールバック又は破棄することに伴う時間及び/又は複雑さの量に従って未処理の競合する順序付けなしメッセージについて、追加の前処理の実行を優先し得る。コンピュートノード140-1は、未処理の順序付けなしメッセージの順序マーク付きバージョンを受信すると、その後、未処理の順序付けなしメッセージが処理されるべき(シーケンサ150-1によって割り当てられるような)順序を決定し、その順序でのメッセージの処理を完了し得る。これは、一部の実施形態では、前処理の1以上の結果をロールバック又は破棄することを含み得る。
【0159】
既に上述した前処理のタイプに加えて、一部の実施形態では、コンピュートノード140-1は、追加的又は代替的に、メッセージの有効性に関して前処理を実行してメッセージを受諾するのか拒否するのかを決定し得る。例えば、前処理は、メッセージによって指定された価格又は数量が最大値を超えないこと(すなわち、「最大価格確認」又は「最大数量確認」)、メッセージにおける銘柄記号が既知の銘柄記号であること(すなわち、「未知銘柄記号確認」)、当該銘柄記号に対して取引が現在許可されていること(すなわち、「銘柄記号停止確認」)又は価格が正しい小数点以下の桁数に従って適正に指定されていること(すなわち、「サブペニー確認」)を確認することなど、メッセージにリアルタイムリスク確認を行うことを含み得る。一部の実施形態では、前処理のタイプは、特定のクライアント又は取引注文に対して「自己取引防止」が有効化されている場合、特定の潜在的な一致が自己取引となること、すなわち、取引中のクライアントがそれ自体に対してマッチングすることを防止するための「自己取引防止」有効性確認を含み得る。取引注文がこれらの有効性確認の1以上に失敗した場合、電子取引システム100は適宜の拒否メッセージで応答し得る。これらの有効性確認が上記実施形態ではコンピュートノード140-1によって実行されるものとして説明するが、これらのタイプの有効性確認の少なくとも一部は、一部の実施形態では、ゲートウェイ120又は電子取引システム100における他のノードによって代替的又は追加的に実行され得ることが理解されるべきである。
【0160】
更なる実施形態では、ゲートウェイ120-1が、クライアントから生じたメッセージに関連する固有のシステム全体順序識別子を通知されることが有益又は必要となり得る。この情報によって、ゲートウェイ120-1が当初の着信メッセージを固有順序番号に一致することが可能となり得る。これは、電子取引システム100の全体を通じてメッセージの適正な順位付けを確実にするのに使用される。ゲートウェイにおけるこのような構成は、電子取引システム100が状態確定性を実現してゲートウェイにおけるアクティビティに関してフォールトトレランス、高可用性及び災害復旧性を与えることを必要とし得る。着信メッセージに関連する順序識別子の情報を保持するようにゲートウェイ120-1を構成する1つの解決手段は、ゲートウェイ120-1に、メッセージをコンピュートノード140-1に転送する前に順序識別子とともにシーケンサ150-1からの返信を待機させることである。このようなアプローチは、メッセージの処理にレイテンシーを付加し得る。更なる例では、コンピュートノード140-1に、それがゲートウェイ120-1から当初受信した順序マーク付きメッセージを転送することに加えて、シーケンサ150-1は順序マーク付きメッセージ(例えば、図1B-2に示すようなマーク付きメッセージ106´)をゲートウェイ120-1に並列に送信してもよい。結果として、ゲートウェイ120-1は、電子取引システム100におけるレイテンシーを最小化しつつ、順序識別子の情報を保持し得る。
【0161】
図2は、以上に開示した電子取引システム100などの電子取引システムのポイントツーポイントメッシュアーキテクチャにおけるメッシュノードの例示実施形態のブロック図である。図2は、電子取引システム100のポイントツーポイントメッシュ172のアーキテクチャにおけるメッシュノード200の例示実施形態を示す。メッシュノード200は、例えば、ゲートウェイ120、シーケンサ150又はコアコンピュートノード140を表し得る。本例ではメッシュノード200における機能はハードウェア及びソフトウェアの双方にわたって分散されているが、メッシュノード200は純粋なハードウェア及び純粋なソフトウェアの実施例を含むハードウェア及びソフトウェアの任意の適宜の組合せで実施されてもよいし、一部の実施形態では、ゲートウェイ120、コンピュートノード140及び/又はシーケンサ150のいずれか又は全てが市販品のコンポーネントで実施されてもよい。
【0162】
図2に示す実施形態では、ローレイテンシーを達成するために、一部の機能は固定ロジックデバイス230においてハードウェアで実施される一方で、他の機能はデバイスドライバ220及びメッシュソフトウェアアプリケーション210においてソフトウェアで実施される。固定ロジックデバイス230は、特定用途向け集積回路(ASIC)、組み込みプロセッサ又はフィールドプログラマブルゲートアレイ(FPGA)を含む任意の適宜の態様で実施され得る。メッシュソフトウェアアプリケーション210及びデバイスドライバ220は、中央処理装置(CPU)などの1以上のプログラマブルデータプロセッサを実行する命令として実施され得る。異なるバージョン又は構成のメッシュソフトウェアアプリケーション210が、その役割に応じてメッシュノード200にインストールされ得る。例えば、メッシュノード200がゲートウェイ120、シーケンサ150又はコアコンピュートノード140のいずれで動作しているのかに基づいて、異なるバージョン又は構成のメッシュソフトウェアアプリケーション210がインストールされ得る。
【0163】
任意の適宜の物理通信リンクレイヤが採用され得るが(ユニバーサルシリアルバス(USB)、ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCI-Express、すなわち、PCI-E)、高精細度マルチメディアインターフェース(HDMI)、10ギガビットイーサネット(GigE)、40GigE、100GigE又はInfiniBand(IB)を含み、ファイバ又は銅ケーブルを介する)、本例では、メッシュノード200は複数の低遅延10ギガビットイーサネット・スモールフォームファクタープラガブルプラス(SFP+)コネクタ(インターフェース)270-1、270-2、270-3、・・・、270-n(コネクタ270としてまとめて示す)を有する。コネクタ270は、例えば、専用接続180を介してポイントツーポイントメッシュにおいて他のノードに直接接続され、共有接続182を介して接続され、及び/又はゲートウェイ120を介して参加者デバイス130に接続され得る。これらのコネクタ270は、本例では、それぞれ10GigEメディアアクセス(MAC)コア260-1、260-2、260-3、・・・、260-n(GigEコア260としてまとめて示す)に電子的に結合され、それは本実施形態では最小のレイテンシーを確実にするように固定ロジックデバイス230によって実施される。他の実施形態では、10GigE MACコア260は、例えば、PCI-Eネットワークインターフェースカードアダプタにおいて、固定ロジックデバイス230の外部の機能によって実施され得る。
【0164】
一部の実施形態では、固定ロジックデバイス230は、他のコンポーネントも含み得る。図2の例では、固定ロジックデバイス230は、固定ロジック240のコンポーネントも含む。一部の実施形態では、固定ロジックコンポーネント240は、メッシュノード200の役割に応じて、例えば、それがゲートウェイ120、シーケンサ150又はコアコンピュートノード140のいずれであるのかに応じて、異なる機能を実施し得る。固定ロジックデバイス230には、固定ロジック240によって最小のレイテンシーでアクセスされるメモリとなり得る固定ロジックメモリ250も含まれる。固定ロジックデバイス230は、PCIエクスプレス機能を実施し得るPCI-Eコア235も含む。本例では、PCIエクスプレスは、ハードウェアとソフトウェアの間で、より具体的には、固定ロジックデバイス240とメッシュソフトウェアアプリケーション210の間で、PCIエクスプレスバス233を介してデバイスドライバ220によってデータを転送するコンジット機構として使用される。ただし、ダイレクトメモリアクセス(DMA)、共有メモリバッファ又はメモリマッピングを含む任意の適宜のデータ転送機構が、ハードウェアとソフトウェアの間で採用されてもよい。
【0165】
一部の実施形態では、メッシュノード200は、他のハードウェアコンポーネントも含み得る。例えば、電子取引システム100におけるその役割に応じて、メッシュノード200は、一部の実施形態では、電子取引システム100内のノード間の高分解能クロック同期の実施に使用される高分解能クロック195(図1Dとの関連でも図示及び開示される)を含んでいてもよい。ダイナミックランダムアクセスメモリ(DRAM)280も、固定ロジックメモリ250との関連で追加のメモリとしてメッシュノード200に含まれ得る。DRAM280は、1以上のランダムアクセスメモリバンク、ハードディスク及びソリッドステートディスクを含む任意の適宜の揮発性又は不揮発性メモリであってもよく、任意の適宜のメモリ又はストレージインターフェースを介してアクセスされてもよい。以上に開示したように、メッシュノード200は、ゲートウェイ120、シーケンサ150又はコアコンピュートノード140を表し得るものであり、図1A~Dに関して以上に開示し、以下にさらに図3に関して開示するようなポイントツーポイントメッシュアーキテクチャにおいて構成され得る。
【0166】
図1B-1、1B-2、1C、1D、1E及び図2において記載した例示実施形態の観点では、電子取引システム100のポイントツーポイントメッシュアーキテクチャ172が多数の態様でレイテンシーの改善に供することは明らかなはずである。メッセージがスイッチを横断することなく直接専用接続180を介して電子取引システム100内のノード間で交換される実施形態では、スイッチを回避すること自体によって、レイテンシー関連の多数の有利な効果が可能となる。
a)スイッチが単一のメッセージを処理するのに必要な時間(メッセージがスイッチに入ってからそのメッセージがスイッチから出るまでの時間間隔)が完全に排除される。このスイッチ処理のレイテンシーは、通常は約1.0マイクロ秒であり、メッセージのヘッダにおいて指定されるように、バッファリング時間及びメッセージを適切な宛先にルーティングする時間を含む。
b)2つの伝送時間(送信ノードとスイッチの間の伝送時間及びスイッチと受信ノードの間の伝送時間)が送信ノードと受信ノードの間で直接メッセージを伝送するための単一の伝送時間によって置き換えられる。
c)スイッチなしの直接のポイントツーポイント接続を介して通信することは、スイッチによって必要とされ得るが送信ノード及び受信ノードにも処理時間オーバーヘッドを付加し得るTCP/IPなどの特定の確立されたプロトコルに従うメッシュ内でのメッセージを交換する要件も排除する。送信ノードが、TCP/IPヘッダを構成すること、チェックサムを計算することなどのプロトコル特有の処理を実行するのに必要となる時間、及び受信ノードがさらに、TCP/IPヘッダを解釈すること、チェックサムを検証することなどの同様のプロトコル特定の処理を実行するのに必要となる時間は、送信ノード及び受信ノードの各々に約0.5マイクロ秒、合計約1.0マイクロ秒となる。このプロトコル特有のオーバーヘッドは、任意選択的に、TCP/IPなど、スイッチによって必要とされる特定の確立されたプロトコルではなく、1以上のカスタムのプロトコルに応じてメッセージを交換するポイントツーポイントメッシュアーキテクチャ172の一部の実施形態では排除され得る。
d)メッセージは、さらに後述するように、直接接続されたノードに完全に同時にブロードキャストされ、直接接続された受信者ノードによって完全に同時に受信され得る。異なるメッセージも、さらに後述するように、複数の直接接続された送信者ノードから完全に同時に受信され得る。
【0167】
ノード間の直接専用接続180が、図2に関連して上述したように、それぞれGigE MACコア260及びコネクタ270など、専用通信ロジック及び専用インターフェースを介して実施される実施形態では、レイテンシーが改善し得る。一部のこのような実施形態では、GigE MACコア260の各々はそのノードと単一の他のノードとの間のメッセージ通信を扱い、コネクタ270の各々はポイントツーポイントメッシュアーキテクチャ172内の単一の他のノードに専用接続180を介して接続される。例えば、図1Dの実施形態のポイントツーポイントメッシュ内の3個のノード(ゲートウェイ120-1、コアコンピュートノード140-1及びコアコンピュートノード140-2)を検討すると、ゲートウェイ120-1はコアコンピュートノード140-1に専用接続180-1-1を介して接続され、ゲートウェイ120-1はコアコンピュートノード140-2にも別個の専用接続180-1-2を介して接続される。これら3個のノードの各々が図2の実施形態によって実施される場合、専用接続180-1-1を介して、ゲートウェイ120-1に対するGigE MACコア260-1及びコネクタ270-1がコアコンピュートノード140-1との通信に対して単独で使用され、コアコンピュートノード140-1に対するGigE MACコア260-1及びコネクタ270-1がゲートウェイ120-1との通信に対して単独で使用され得る。同様に、専用接続180-1-2を介して、ゲートウェイ120-1に対するGigE MACコア260-2及びコネクタ270-2がコアコンピュートノード140-2との通信に対して単独で使用され、コアコンピュートノード140-2に対するGigE MACコア260-1及びコネクタ270-1がゲートウェイ120-1との通信に対して単独で使用され得る。したがって、このような実施形態によると、GigE MACコア260の1つ及びコネクタ270の1つなど専用コンピュートリソースは、専用接続180を有する他の各ノードと通信するための各ノードに対して使用される。
【0168】
専用接続180あたりのこれらの専用コンピュートリソースによって、メッセージは、特にGigEコア260が固定ロジックデバイス230などのハードウェアで実施される場合に、送信ノードによって、当該送信ノードに(例えば、専用接続180を介して)直接接続される他のメッシュノードの間で完全に同時にブロードキャスト可能となる。逆に、送信ノードからのブロードキャストメッセージは、全ての受信ノードによって完全に同時に受信され得る。各受信ノードは、送信ノードに対するそれぞれの専用接続180を有し、受信者ノードに直接接続された各ノードについて、受信が専用接続通信ロジック及び専用インターフェースによって実施される。各受信ノードはブロードキャストメッセージを完全に同時に受信し、メッシュ内の異なるノード間での内部的なメッセージレイテンシーは同一となるはずであるので、いずれの受信ノードも選好されない。さらに、受信ノードは、それに直接接続された異なるノードから各々、異なるメッセージを完全に同時に受信し得る。
【0169】
複数のメッセージを完全に同時に送受信する能力は、サーバ間の通信がスイッチを介して行われる他の環境とは対照的であり、そのような環境は通常、メッセージの送受信がシリアル化されることを要する。通信がスイッチを介して行われる場合、通常、各サーバはそれ自体とスイッチの間に単一の接続(又は複数の冗長接続の場合もあるが、それでも単一の論理的接続とみなされるものとする)を有する。サーバがメッセージをシステム内の複数の他のサーバにブロードキャストする必要がある場合、それらのメッセージは、実際にはスイッチに同時に送信されるわけでもスイッチによって同時に受信されるわけでもないが、その代わりに、サーバとスイッチの間の単一の論理的接続を介して直列的に順次送信/受信される必要がある。同様に、スイッチが、同じサーバに宛てられているが(スイッチが発生サーバの各々への単一の接続を有し得るために)異なる送信サーバから発生する複数の異なるメッセージを同時に受信することが可能である場合であっても、これらの複数の異なるメッセージはスイッチと宛先サーバの間の単一の論理的接続を介して1つずつそれらを送信するためには、依然としてスイッチによってシリアル化される必要がある。このような環境で必要となるメッセージのシリアル化は、システムのレイテンシー全体を増加させるだけでなく、このようなシステム内のサーバ間の予測し難いレイテンシーをもたらすことになる。例えば、メッセージがサーバからシステム内の15個の他のサーバにブロードキャストされる必要がある場合、これら15個のメッセージは、それらがスイッチに送信されるにつれてシリアル化される必要があり、レイテンシーの差は、特定の宛先サーバに宛てられたメッセージが一連のブロードキャストメッセージにおいて最初のメッセージとなるのか15番目のメッセージとなるのかによって大きくなり得る。
【0170】
スイッチの横断を必要としない専用接続180の使用から得ることができるレイテンシーの有利な効果に加えて、ポイントツーポイントメッシュアーキテクチャ172は、さらに他のレイテンシーの改善を可能とする。図1B-1との関連で上述したように、ゲートウェイ120-1からコアコンピュートノード140-1になど、ポイントツーポイントメッシュ内での2つのノード間で送信されているメッセージは、メッセージが他のメッセージに対する確定的な順序で電子取引システム100の全体を通じて処理可能となることを確実にするために、順位付けパス117を介して送信され得る。メッセージが順位付けパス117を通じて横断するにつれて、シーケンサ150-1を通過し、シーケンサ150-1はメッセージを固有順序識別子でマーク付けし、その後にシーケンサ150-1が宛先ノード(本例では、コアコンピュートノード140-1)に送信する順序マーク付きメッセージを生成する。順序マーク付きメッセージの受信により、宛先ノード(本例では、コアコンピュートノード140-1)は、電子取引システム100内の他のメッセージ(これもシーケンサによって順序マーク付けされている)に対して順序マーク付きメッセージの順序識別子によって指定されるように、メッセージが正しい確定的順位で処理されることを確実にし得る。
【0171】
図1B-1との関連で上述したように、この順位付けパス117は、複数の直接接続:送信ノードとシーケンサの間の直接接続(ゲートウェイ120-1とシーケンサ150-1の間の直接接続180-gw1-s1など)及びさらにシーケンサと宛先ノードの間の直接接続(シーケンサ150-1とコンピュートノード140-1の間の直接接続180-c1-s1など)を含み得る。順位付けパス117を備えるこれら複数の直接接続は、一部の実施形態では、スイッチを通過せず、既に上述したレイテンシーの有利な効果から利益を受けることができる。それでもなお、このような実施形態では、順位付けパス117のレイテンシーは、シーケンサ150-1におけるメッセージの処理時間(すなわち、シーケンサ150-1が非順序マーク付き(すなわち、順序付けなし)メッセージを受信し、それを順序識別子でマーク付けし、順序マーク付きメッセージを宛先に送信するのに必要な時間)及び2つの直接接続を通じるメッセージの伝送時間によって影響される。(すなわち、非順序マーク付きバージョンが最初に送信者ノードからシーケンサに直接接続を介して送信され、その後に順序マーク付きバージョンがシーケンサから宛先ノードに別個の直接接続を介して送信される)。試験は、単一の直接接続と比較した場合の順位付けパス117のこのレイテンシーの影響が、TCP/IPなどの特定の確立されたプロトコルではなくカスタムプロトコルが使用されるのか否かなどの要因に応じて、順位付けパス117に対して追加の0.5~1.0マイクロ秒であることを示す。
【0172】
したがって、順位付けパス117を通じたメッセージの横断の可能性あるレイテンシーの影響を最小化するための最適化として、非順序マーク付きメッセージも、ゲートウェイ120-1とコアコンピュートノード140-1の間の直接接続180-1-1など、送信者ノードと宛先ノードの間の単一の直接接続であり得る活性化リンク180-1-1を介して並列に送信されてもよい。したがって、一部の実施形態では、非順序マーク付きメッセージは、活性化リンク180-1-1を介して宛先ノード(例えば、コアコンピュートノード140-1)に、及び順位付けパス117の一部として、送信ノードとシーケンサ150-1の間の直接接続(例えば、直接接続180-gw1-s1)を介してシーケンサ150-1に、送信ノード(例えば、ゲートウェイ120-1)によって完全に同時に送信され得る。このような実施形態によると、シーケンサ150-1及び宛先ノード(例えば、コアコンピュートノード140-1)は、メッセージの非順序マーク付きバージョンを同時に受信することができ、これにより、宛先ノードがその受信に応じて直ちに非順序マーク付きメッセージの処理を活性化することが可能となる。順序マーク付きメッセージがシーケンサ150-1によって生成されて宛先ノードに送信されているのと同時に、宛先ノードは、並行して非順序マーク付きメッセージを処理することを開始してもよく、この処理は、メッセージにおいて参照される銘柄記号に関連するデータを高速側メモリに読み込むこと、予備応答メッセージを構築すること、又は電子取引のためのマッチング機能アクティビティを開始することを含む。上述したように、宛先ノードは、順序マーク付きメッセージを受信すると、順序識別子によって指定されるような適正な確定的順位(すなわち、順序)に応じてメッセージの処理を完了し得る。ただし、宛先ノードが順位付けパス117を介して順序マーク付きメッセージを受信する時間までに、宛先ノードはメッセージの非順序マーク付きバージョンの有用な処理を実行する機会(例えば、0.5~1.0マイクロ秒の処理時間に相当)を既に有していることになり、宛先ノードが活性化リンク180-1-1を介してメッセージの非順序マーク付きバージョンをまだ受信していない場合よりも迅速に順序マーク付きメッセージの処理を完了し、より低い対応のレイテンシーの応答メッセージを生成することが可能となる。
【0173】
したがって、上述したように、ポイントツーポイントメッシュアーキテクチャ(例えば、102及び172)は、多数の態様でレイテンシーの改善に供する。試験を通じて、これらのレイテンシーの改善の少なくとも一部は、経験的に定量化されてきた。例えば、スイッチを回避するノード間の直接接続の使用に起因するレイテンシーの改善は、少なくとも合計1.0マイクロ秒となり、場合によっては、各方向(すなわち、着信対発信)において3.0マイクロ秒までとなる。さらに、順位付けパス117を介したメッセージの処理及び伝送と並行して、活性化リンク180-1-1を介して受信された非順序マーク付きメッセージを宛先ノードが処理する機会に起因するレイテンシーの改善は、各方向にさらに0.5~1.0マイクロ秒となる。したがって、着信メッセージが参加者デバイス130からゲートウェイ120を介して電子取引システム100に入る時間から対応の応答メッセージがゲートウェイ120から参加者デバイス130に送信される時間までの全体の可能なレイテンシーの改善は、少なくとも2.5~7.0マイクロ秒となる。電子取引など、レイテンシーの影響を受け易いアプリケーションでは、マイクロ秒のレイテンシーの差でさえも非常に重要となる。これらのレイテンシーの改善によって、電子取引システム100の一部の実施形態は、5.0~7.0マイクロ秒の所望の応答時間レイテンシーに応じて確実に応答することが可能となる。これは従来技術の取引システムに対する顕著な改善であり、その最良のものは現在のところ50~75マイクロ秒の範囲の応答時間レイテンシーを有する。
【0174】
図3は、ポイントツーポイントメッシュシステム302の他の例示実施形態のブロック図である。ポイントツーポイントメッシュシステム302は、複数のゲートウェイ320、複数のコアコンピュートノード340及びシーケンサ350を含む。複数のゲートウェイ320の各ゲートウェイ320-1、320-2、・・・、320-gが、それぞれの第1の直接接続、すなわち、第1の直接接続380-aを介して複数のコアコンピュートノード340の各コアコンピュートノード340-1、340-2、・・・、340-cに結合される。シーケンサ350は、それぞれの第2の直接接続、すなわち、第2の直接接続380-bを介して複数のゲートウェイ320の各ゲートウェイに結合され、それぞれの第3の直接接続、すなわち、第3の直接接続380-cを介して複数のコアコンピュートノードの各コアコンピュートノードに結合される。図1B-1、1B-2、1D及び図3を参照すると、ゲートウェイ120-1は、図1Dに関して以上に開示したような共有ゲートウェイネットワークを介して又は図3の直接接続384a、384b、・・・、384gを介して相互に通信可能に結合された複数のゲートウェイ320のうちの所与のゲートウェイであり得る。複数のゲートウェイ320は、例示実施形態では、ゲートウェイ320-1、320-2、・・・、320-gを含む。コアコンピュートノード140-1は、図1Dに関して以上に開示したような共有コアコンピュートノードネットワークを介して、又は図3の直接接続386a、386b、・・・、386cを介して相互に通信可能に結合され得るコアコンピュートノード340-1、340-2、・・・、340-cを含む複数のコアコンピュートノード340のうちの所与のコアコンピュートノードであり得る。ゲートウェイの番号gは、ポイントツーポイントメッシュシステム302におけるコアコンピュートノードの他の番号cと同じであっても異なっていてもよいことが理解されるべきである。例示実施形態によると、シーケンサ150-1は、図1Dに関して以上に開示したシーケンサ全域共有ネットワーク182-sなどの共有シーケンサネットワークを介して、又は図4に関して以下に開示する第4の直接接続482などの直接接続を介して相互に通信可能に結合された複数のシーケンサのうちの所与のシーケンサであり得る。
【0175】
図4は、ポイントツーポイントメッシュシステム402の他の例示実施形態のブロック図である。図1B-2及び図4を参照すると、シーケンサ150-1は、ポイントツーポイントメッシュシステム402において、シーケンサ450-1及び少なくとも1つの他のシーケンサ450-2を含む複数のシーケンサのうちの所与のシーケンサであり得る。
【0176】
ポイントツーポイントメッシュシステム402において、複数のゲートウェイ420の各ゲートウェイ420-1、420-2、・・・、420-gは、それぞれの第1の直接接続、すなわち、第1の直接接続480aを介して複数のコアコンピュートノードの各コアコンピュートノード440-1、440-2、・・・、440-cに結合される。複数のゲートウェイ420の各ゲートウェイは、それぞれの第2の直接接続、すなわち、第2の直接接続480-b-1及び480-b-2を介して複数のシーケンサの各シーケンサ450-1、・・・、450-2に結合される。複数のコアコンピュートノード440の各コアコンピュートノード440-1、440-2、・・・、440-cは、それぞれの第3の直接接続、すなわち、第3の直接接続480-c-1及び480-c-2を介して複数のシーケンサの各シーケンサ450-1、・・・、450-2に結合される。
【0177】
所与のシーケンサ、すなわち、シーケンサ450-1・・・450-2の特定のシーケンサは、ポイントツーポイントメッシュシステムにサービス提供している現在アクティブなシーケンサであってもよく、複数のシーケンサの他の各シーケンサは現在アクティブなシーケンサを引き継ぐことを待機しているスタンバイシーケンサであってもよい。複数のシーケンサの各シーケンサは、第4の直接接続482などのそれぞれの第4の直接接続を介して複数のシーケンサの他の各シーケンサに結合され得る。複数のゲートウェイ420の各ゲートウェイ420-1、420-2、・・・、420-gは、さらに、そこから送信されるそれぞれのコンピュートノード宛てメッセージ(不図示)を複数のシーケンサ450-1、・・・、450-2のうちの所与のシーケンサに送信するように構成され得る。複数のコアコンピュートノード440の各コアコンピュートノード440-1、440-2、・・・、440-cは、さらに、そこから送信されるそれぞれのゲートウェイ宛てメッセージ(不図示)を複数のシーケンサ450-1、・・・、450-2のうちの所与のシーケンサに送信するように構成される。少なくとも1つの他のシーケンサは、スタンバイ状態である。
【0178】
スタンバイ状態(スタンバイロール)は、少なくとも1つの他のシーケンサが電源投入されて「リスニングオンリー」モードとなるように構成された受動状態を表し得る。「リスニングオンリー」モードでは、少なくとも1つのシーケンサは、メッセージを受信するように構成されるが、メッセージを送信せず、現在アクティブなシーケンサが故障した場合にアクティブなシーケンサを引き継ぐことが可能となっている。現在アクティブなシーケンサは、メッセージを送受信可能なアクティブ状態(アクティブロール)である。一般的に、スタンバイシーケンサは、電源投入され、メッセージを受信可能であり、アクティブシーケンサを引き継ぐことが可能となっている冗長な(バックアップの)シーケンサである。このような切換え、すなわち、スタンバイ状態(ロール)からアクティブ状態(ロール)への切換えは、現在アクティブなシーケンサの故障に起因して又は非限定的な例として現在アクティブなシーケンサに適用されているソフトウェアアップデートなど、他の理由によってコントローラ(不図示)によって発出された切換コマンドの受信に基づき得る。
【0179】
所与のシーケンサ(アクティブ状態にある)は、さらに、現在アクティブなシーケンサが故障した場合又は非限定的な例としてソフトウェアアップデートなど、その他の理由でアクティブなシーケンサとして指定されなくなった場合に、順序マーク付きメッセージ106´及び順序マーク付き応答107´などの順序マーク付きメッセージを各それぞれの第4の直接接続482を介して複数のシーケンサ450-1、・・・、450-2の他の各シーケンサに送信して、スタンバイシーケンサが現在アクティブなシーケンサを引き継ぐことができるように構成され得る。ただし、アクティブなシーケンサ、すなわち、アクティブ状態にある所与のシーケンサは順序付けされたマーク付きメッセージをスタンバイシーケンサ、すなわち、スタンバイ状態にあるシーケンサに転送する必要はなく、代替的に、継続的に、図1Dに関して以上に開示したようなスタンバイシーケンサに状態ログ(そこにおける順序情報を含むことになる)ともいうジャーナルをブロードキャスト/複製し得ることが理解されるべきである。
【0180】
電子取引システム100は、図1Dを参照して上述したようなシステム状態ログ(不図示)をさらに備え得る。アクティブなシーケンサは、共有シーケンサネットワークを介してアクティブなシーケンサから複数のシーケンサの少なくとも1つの他のシーケンサにシステム状態ログを送信するように構成され得る。例えば、共有シーケンサネットワークは、第4の直接接続482を含んでいてもよく、シーケンサ450-1がアクティブ状態にある所与のシーケンサである場合にシステム状態ログはシーケンサ450-1からシーケンサ450-2に送信され得る。
【0181】
図5は、電子取引を実行するための方法の例示実施形態のフロー図500である。方法が開始し(502)、金融商品を買付又は売却する指値を伴う電子取引要求を表すメッセージを、ゲートウェイからコアコンピュートノードに第1の直接接続を介して送信する(504)。メッセージは、これに対して、電子取引システムにおいて電子取引機能を実行するためにコアコンピュートノードによって受信される。方法は、メッセージをゲートウェイから電子取引システムのシーケンサに第2の直接接続を介して送信し(506)、これに対して、順序マーク付きメッセージをシーケンサからコアコンピュートノードに第3の直接接続を介して送信する(508)。第1、第2及び第3の直接接続は、それぞれの非共有帯域幅を有する。シーケンサは、ゲートウェイとコアコンピュートノードとの間に第2及び第3の直接接続を介して挿入される。シーケンサによって送信された順序マーク付きメッセージは、第2の直接接続を介してゲートウェイから送信されるメッセージの順序付けされたバージョンである。順序マーク付きメッセージは、これに対して、コアコンピュートノードによって受信される。方法は、コアコンピュートノードにおいて、他のメッセージをゲートウェイから受信し、他のメッセージの順序マーク付きバージョンをシーケンサから受信し、コアコンピュートノードにおいて、電子取引システムにおいてコアコンピュートノードによって受信された他のメッセージの順序マーク付きバージョン間で順序マーク付きメッセージの相対順位付けを決定する(510)。コアコンピュートノードは、決定された相対順位付けに応じて、電子取引要求に対する電子取引マッチング機能を完了する。この完了によって、金融商品について指値が反対指値とマッチングされ、当該金融商品の電子取引が可能となる。方法は、その後、例示実施形態において終了する(512)。
【0182】
メッセージは、ゲートウェイメッセージであり得る。方法は、ゲートウェイにおいて参加者デバイスから着信メッセージを受信するステップをさらに備え得る。ゲートウェイメッセージを送信するステップは、参加者デバイスからゲートウェイによって着信メッセージの受信に応じてゲートウェイによってゲートウェイメッセージを送信するステップを含み得る。順序マーク付きメッセージは、第1の順序マーク付きメッセージであり得る。方法は、第1の順序マーク付きメッセージをシーケンサからゲートウェイに第2の直接接続を介して送信するステップをさらに備え得る。これに対して、第1の順序マーク付きメッセージは、ゲートウェイによって受信される得る。方法は、メッセージの受信に応じて、コアコンピュートノードメッセージをコアコンピュートノードからゲートウェイに第1の直接接続を介して送信するステップと、コアコンピュートノードメッセージをシーケンサに第3の直接接続を介して送信し、これに対して第2の順序マーク付きメッセージをシーケンサからゲートウェイに第2の直接接続を介して送信するステップとをさらに備え得る。第2の順序マーク付きメッセージは、コアコンピュートノードメッセージの順序付けされたバージョンである。方法は、コアコンピュートノードからゲートウェイに送信された第2の順序マーク付きメッセージ及び他のメッセージの順序マーク付きバージョンの相対順位付けをゲートウェイにおいて決定ステップと、発信メッセージを参加者デバイスに送信するステップであって、発信メッセージは決定された相対順位付けに応じて送信される、ステップと、第2の順序マーク付きメッセージをシーケンサからコアコンピュートノードに第3の直接接続を介して送信するステップとをさらに備え得る。
【0183】
ゲートウェイは複数のゲートウェイのうちの所与のゲートウェイであり、コアコンピュートノードは複数のコアコンピュートノードのうちの所与のコアコンピュートノードであり得る。方法は、複数のゲートウェイの各ゲートウェイからのそれぞれのコンピュートノード宛てメッセージを複数のコアコンピュートノードの全てのコアコンピュートノード及びシーケンサに送信するステップをさらに備え得る。方法は、複数のコアコンピュートノードの各コアコンピュートノードからのそれぞれのゲートウェイ宛てメッセージを複数のゲートウェイの全てのゲートウェイ及びシーケンサに送信するステップと、シーケンサにおいて受信されたそれぞれのコンピュートノード宛てメッセージ及びそれぞれのゲートウェイ宛てメッセージに応じて、それぞれの順序マーク付きメッセージをシーケンサから複数のゲートウェイ及び複数のコアコンピュートノードに送信するステップとをさらに備え得る。
【0184】
シーケンサは、複数のシーケンサのうちの所与のシーケンサであり得る。方法は、それぞれのコンピュートノード宛てメッセージを複数のゲートウェイの各ゲートウェイから所与のシーケンサに送信するステップと、それぞれのゲートウェイ宛てメッセージを複数のコアコンピュートノードの各コアコンピュートノードから所与のシーケンサに送信するステップと、順序マーク付きメッセージを所与のシーケンサから複数のシーケンサのうちの他の各シーケンサに送信するステップとをさらに備え得る。
【0185】
方法は、複数のコアコンピュートノードにおいて同じメッセージを受信するステップであって、同じメッセージは所与のゲートウェイによって送信されたそれぞれのコンピュートノード宛てメッセージである、ステップと、同じメッセージの受信に応じて、複数のコアコンピュートノードにおいて応答メッセージを生成するステップと、所与のゲートウェイにおいて、複数のコアコンピュートノードの中から応答メッセージを受信するステップとをさらに備え得る。方法は、同じメッセージの受信に応じて生成された応答メッセージのうちの所与の応答メッセージに基づいて所与のゲートウェイにおいて行動を実行するステップをさらに備え得る。所与の応答メッセージは、同じメッセージの受信に応じて生成された応答メッセージのうちの他の応答メッセージに相対して最初に所与のゲートウェイに到着するものであり得る。方法は、所与の応答メッセージの後に所与のゲートウェイに到着する他の応答メッセージを無視するステップをさらに備え得る。このように、「同じメッセージ」とは、単一のゲートウェイから全てのコンピュートノードにブロードキャストされ、それにより、各コンピュートノードが当該単一のメッセージの1つのコピーを取得するような単一のメッセージをいう。そして、複数のコンピュートノードの各々は、当該単一の同じメッセージに応答し、複数の機能的に同等な応答が、所与のゲートウェイによって受信されることなど、全てのゲートウェイにブロードキャストされることになり得る。そして、所与のゲートウェイを含むゲートウェイは、これら複数の機能的に同等なメッセージを「先着」順にソートすることができる。
【0186】
方法は、所与のコンピュートノードにおいて、複数のゲートウェイのうちの少なくとも2つのゲートウェイから複数のコンピュートノード宛てメッセージを受信するステップを備え得る。複数のコンピュートノード宛てメッセージの各コンピュートノード宛てメッセージは、同じメッセージのそれぞれのバージョンを表してもよく、それぞれのバージョンはそれぞれの高可用性フローを介して少なくとも2つのゲートウェイのうちのそれぞれのゲートウェイに入力されている。方法は、複数のコンピュートノード宛てメッセージのうちの所与のコンピュートノード宛てメッセージに基づいて所与のコンピュートノードにおいて行動を実行するステップをさらに備え得る。所与のコンピュートノード宛てメッセージは、複数のコンピュートノード宛てメッセージのうちの他のコンピュートノード宛てメッセージに相対して最初に所与のコンピュートノードに到着するものであり得る。方法は、所与のコンピュートノード宛てメッセージの後に所与のコンピュートノードに到着する他のコンピュートノード宛てメッセージを無視するステップをさらに備え得る。
【0187】
方法は、実行される電子取引マッチング機能に基づいて、コアコンピュートノードにおいて、金融商品に関する取引注文をマッチングさせるステップをさらに備え得る。方法は、注文控え帳における金融商品の残持ち高を維持するステップをさらに備えていてもよく、残持ち高は実行された電子取引マッチング機能によってもたらされた金融商品の金額不一致である。
【0188】
方法は、ゲートウェイ、コアコンピュートノード及びシーケンサをクロックに基づいて同期させるステップをさらに備え得る。
【0189】
メッセージは、ゲートウェイメッセージであり得る。方法は、ゲートウェイにおいて少なくとも1つの参加者デバイスにサービスを提供するステップと、ゲートウェイにおいて着信メッセージを受信するステップと、ゲートウェイにおける着信メッセージの受信に応じてゲートウェイメッセージをゲートウェイからシーケンサ及びコアコンピュートノードに送信するステップとをさらに備え得る。着信メッセージは、少なくとも1つの参加者デバイスによって発送されたものであり得る。方法は、固有順序識別子を用いてメッセージ又はその表示をマーク付けすることによって、順序マーク付きメッセージを生成するステップをさらに備え得る。
【0190】
方法は、第1の直接接続、第2の直接接続及び第3の直接接続又はこれらの一部の組を、少なくとも1つのそれぞれの冗長直接接続を介して保護するステップをさらに備え得る。
【0191】
ゲートウェイは複数のゲートウェイのうちの所与のゲートウェイであり、コアコンピュートノードは複数のコアコンピュートノードのうちの所与のコアコンピュートノードであり、シーケンサは複数のシーケンサのうちの所与のシーケンサであり得る。方法は、複数のゲートウェイが共有ゲートウェイネットワークを介して通信可能となるようにするステップと、複数のコアコンピュートノードが共有コアコンピュートノードネットワークを介して通信可能となるようにするステップと、複数のシーケンサが共有シーケンサネットワークを介して又はそれぞれの第4の直接接続を介して通信可能となるようにするステップとをさらに備え得る。
【0192】
方法は、所与のシーケンサから複数のシーケンサのうちの少なくとも1つの他のシーケンサに共有シーケンサネットワークを介してシステム状態ログを送信し、又は所与のシーケンサによってシステム状態ログをデータストアに記憶するステップをさらに備え得る。データストアは、共有シーケンサネットワークを介して複数のシーケンサにアクセス可能であり得る。
【0193】
電子取引システムは、アクティブな電子取引システムであり得る。方法は、複数のシーケンサのうちの少なくとも1つのシーケンサがディザスタリカバリサイトと通信可能となるようにするステップを備え得る。ディザスタリカバリサイトは、スタンバイ電子取引システムを含み得る。スタンバイ電子取引システムは、アクティブな電子取引システムの複製であり、アクティブな電子取引システムが故障した場合に電子取引が継続可能となるように構成され得る。
【0194】
図6は、以上に開示した電子取引システム100などの電子取引システムのシーケンサ650の例示実施形態のブロック図である。例示実施形態では、シーケンサ650は、以上に開示した電子取引システム100のポイントツーポイントメッシュシステム102などのポイントツーポイントメッシュシステムにおいて第1の直接接続680aを介してゲートウェイ620と直接通信するように構成された第1の通信モジュール652を備える。シーケンサ650は、電子取引システムにおけるポイントツーポイントメッシュシステムにおいて第2の直接接続680bを介してコアコンピュートノード640と直接通信するように構成された第2の通信モジュール654をさらに備える。シーケンサ650は、第1の通信モジュール652及び第2の通信モジュール654と結合された順序付けロジック656をさらに備える。
【0195】
順序付けロジック656は、メッセージ606又はその表示を固有順序識別子(不図示)でマーク付けすることによって順序マーク付きメッセージ606´を生成するように構成され、メッセージ606は、それぞれ第1の直接接続680a又は第2の直接接続680bを介して第1の通信モジュール652又は第2の通信モジュール654によって受信される。順序付けロジック656はさらに、順序マーク付きメッセージ606´を、それぞれ第1の通信モジュール652及び第2の通信モジュール654を介してゲートウェイ620及びコアコンピュートノード640に送信するように構成される。
【0196】
例示実施形態によると、順序付けロジックは、例えば、以上に開示した図2の固定ロジックデバイス230におけるFPGAの論理の部分又はASICである。さらに、通信モジュール652及び654の双方とも、FPGAにおいて、例えば、図2を参照して以上に開示した10 GigE MACコア260において実施され得る。
【0197】
図7は、以上に開示した図1B-1及び図1B-2の電子取引システム100などの電子取引システムの他の例示実施形態のブロック図である。図1B-2及び図7を参照すると、ゲートウェイ120-1、コアコンピュートノード140-1、シーケンサ150-1、第1の直接接続180-1-1、第2の直接接続180-gw1-s1及び第3の直接接続180-c1-s1が第1のポイントツーポイントメッシュシステム702aを構成する。電子取引システム100は、プロキシノード772と通信可能に結合した第1の電子取引システム700aであり得る。プロキシノード772は、さらに、少なくとも1つの参加者デバイス730及び第2の電子取引システム700bと通信可能に結合され得る。第2の電子取引システム700bは、図1B-2に関して以上に開示したポイントツーポイントメッシュシステム102などの第2のポイントツーポイントメッシュシステム702bを含み得る。
【0198】
プロキシノード772は、少なくとも1つの参加者デバイス730からの着信メッセージ703の受信に応じて、メッセージ703´を第1の電子取引システム700a及び第2の電子取引システム700bに送信するように構成される。第1及び第2の電子取引システムは、プロキシノード772によって送信されたメッセージに対するそれぞれの応答を生成するように構成され得る。プロキシノード772は、さらに、第1の電子取引システム700a又は第2の電子取引システム700bから受信された第1の到着応答705´の受信に応じて、応答、すなわち、発信メッセージ705を少なくとも1つの参加者デバイス730に送信するように構成され得る。第1の電子取引システム700a及び第2の電子取引システム700bは、例えば、日時を提供する共通のクロックに基づいて、例えば、同期され得る(777)。ただし、第1の電子取引システム700a及び第2の電子取引システム700bは、共通のクロックに基づいて同期されること(777)に限定されない。
【0199】
例示実施形態によると、電子取引システム700a及び電子取引システム700bの双方を包含する全体のシステムの単一のアクティブ/プライマリシーケンサ(不図示)は、電子取引システム700aと電子取引システム700bの間の順序番号を調整するのに採用され得る。例えば、単一のアクティブ/プライマリシーケンサは、到着応答705´が電子取引システム700a及び電子取引システム700bの双方によって同じ順序番号を割り当てられるようにこの順序番号を調整してもよく、それにより、プロキシノード772はメッセージの相対順位付けを適切に決定できる。例えば、単一のアクティブ/プライマリシーケンサが電子取引システム700aにある場合、例えば、アクティブシーケンサは電子取引システム700bにおいてスタンバイシーケンサと通信することによって電子取引システム700bと通信するように構成されてもよく、順序番号はメッセージ毎に割り当てられる。
【0200】
ポイントツーポイントメッシュアーキテクチャなどの上記アーキテクチャは、電子取引システム以外の用途で使用され得る。例えば、証券取引注文を扱う以外の用途のために、ネットワークを流れるデータストリームを監視し、パケットを捕捉し、パケットの生データを復号し、パケットの内容をリアルタイムで分析し、応答を提供するために使用され得ることが可能である。
【0201】
さらに、ここで開示される例示実施形態は、コンピュータプログラム製品を使用して構成されてもよく、例えば、制御が、例示実施形態を実施するためのソフトウェアにプログラムされてもよい。更なる例示実施形態は、プロセッサによって実行され得る命令を含む非一時的なコンピュータ可読媒体を含んでいてもよく、読み込まれて実行されると、ここに記載される方法をプロセッサに完了させることができる。ブロック図及びフロー図の要素は、以上に開示した図2の回路の1つ以上の配置、又はその均等物、ファームウェア、カスタム設計された半導体ロジック、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、それらの組合せ、又は将来的に決定する他の同様の実施例などによって、ソフトウェア又はハードウェアで実施されてもよいことが理解されるべきである。
【0202】
さらに、ここで記載されたブロック図及びフロー図の要素は、ソフトウェア、ハードウェア又はファームウェアにおいて、任意の方法で組み合わせ又は分割され得る。ソフトウェアで実施される場合、ソフトウェアは、ここに開示される例示実施形態に対応し得る任意の言語で書かれてもよい。ソフトウェアは、1以上のランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、コンパクトディスク読み取り専用メモリ(CD-ROM)などの任意の形態のコンピュータ可読媒体に記憶されてもよい。動作において、汎用又は特定用途向けプロセッサ又は処理コアは、当技術分野でよく理解されている方法でソフトウェアを読み込み、実行する。さらに、ブロック図及びフロー図は、より多数の又はより少数の要素を含み、異なる態様で配置若しくは配向され、又は異なるように表現されてもよいことが理解されるべきである。実施例は、ここに開示される実施形態の実行を示すブロック図、フロー図及び/又はネットワーク図並びにブロック図及びフロー図の数を決定し得ることが理解されるべきである。
【0203】
したがって、更なる実施形態は、様々なコンピュータアーキテクチャ、物理的な、仮想的な、クラウドのコンピュータ及び/又はそれらの何らかの組合せで実施されてもよく、したがって、ここに記載されるデータ処理システムは例示のみを目的としており、実施形態の限定を意図するものではない。
【0204】
例示実施形態を具体的に図示及び説明してきたが、添付の特許請求の範囲によって包含される実施形態の範囲から逸脱することなく、形態及び詳細における種々の変更がここでなされ得ることは当業者に理解されるはずである。
図1A
図1B-1】
図1B-2】
図1C
図1D
図1E
図1F
図1G
図2
図3
図4
図5
図6
図7
【国際調査報告】