(57)【特許請求の範囲】
【請求項１】
自動化された取引システムのための通信インターフェースであって、
外部ネットワークへおよび外部ネットワークから複数のメッセージを通信するように構成されている物理層インターフェースであって、前記外部ネットワークから直接に複数のメッセージを受信するように構成されている物理層インターフェースと、
ここで、複数の入来したメッセージの各々は、複数のメッセージフィールドを備えている、
前記外部ネットワークから前記複数のメッセージフィールドを受信することと同期して、前記複数のメッセージフィールドを検証するように構成されている検証エンジンであって、メッセージ全体を受信することから独立して、前記複数のメッセージフィールドを検証するように構成されている検証エンジンと、
を具備している、通信インターフェース。
【請求項２】
前記検証エンジンは、プログラム可能なゲートアレイにおいて実施される請求項１記載の通信インターフェース。
【請求項３】
前記複数のメッセージフィールドを受信した際に、前記複数の入来したメッセージからの前記複数のメッセージフィールドを、前記自動化された取引システムにおけるマッチングエンジンに適切であるリクエストフォーマットへ、同期して変換するように構成されている文解析エンジンを具備している請求項１または２のいずれか１項記載の通信インターフェース。
【請求項４】
前記外部ネットワークを通してクライアントシステムへ送信する複数の通知メッセージを生成するように構成されている通知エンジンを具備している請求項１乃至３のいずれか１項記載の通信インターフェース。
【請求項５】
前記通知エンジンは、前記自動化された取引システムにおけるマッチングエンジンから取引情報を受信し、ネットワーク送信と同期して前記外部ネットワークへ送る複数のメッセージを作成するように構成されている請求項４記載の通信インターフェース。
【請求項６】
前記検証エンジンは、新しいメッセージに対するシーケンス番号フィールドを受信することと同期して、メッセージのシーケンス番号を検証するように構成されており、
メッセージの複数の残りのフィールドを受信することから独立して、前記検証エンジンは、前記メッセージのシーケンス番号と、対応するクライアントに対する照会シーケンス番号と、を比較するように構成されている、請求項１乃至５の何れか１項記載の通信インターフェース。
【請求項７】
前記文解析エンジンは、受信することと同期して、受信したメッセージに含まれている複数のデータフィールドから成るサブセットから、前記リクエストフォーマットを生成するように構成されている、請求項３記載の通信インターフェース。
【請求項８】
前記文解析エンジンは、受信したメッセージに含まれているクライアントのシーケンス番号から、前記リクエストフォーマットに含まれるコンパクトなクライアントインデックスを生成するように構成されている請求項３または７記載の通信インターフェース。
【請求項９】
前記文解析エンジンは、受信したメッセージに含まれているインストルメントコードから、前記リクエストフォーマットに含まれる短命なインストルメントインデックスを生成するように構成されている請求項３、７、および８の何れか１項記載の通信インターフェース。
【請求項１０】
前記文解析エンジンは、前記リクエストフォーマットに含まれる、価格と、量と、クライアント照会とを、受信したメッセージから抽出するように構成されている請求項３、７、８、または９の何れか１項記載の通信インターフェース。
【請求項１１】
自動化された取引システムのためのメッセージ検証プロセスであって、
外部ネットワークにおける複数のクライアントシステムから、物理層インターフェースを介して、複数のメッセージを受信するステップと、
ここで、前記物理層インターフェースは、前記自動化された取引システムを前記外部ネットワークへ直接に接続し、
前記複数のメッセージの各々は、複数のメッセージフィールドを備えている、
前記複数のメッセージフィールドが受信された場合に、前記複数のメッセージフィールドと照会とを比較することによって、検証エンジンにおいて、前記複数のメッセージの各々に対する前記複数のメッセージフィールドを検証するステップと、
を含み、
前記検証するステップは、前記複数のメッセージフィールドを受信することと同期して、且つメッセージ全体を受信することから独立して行われる、メッセージ検証プロセス。
【請求項１２】
通知エンジンにおいて複数のクライアントシステムへ送信する複数の通知メッセージを生成するステップを含み、
前記複数の通知メッセージは、前記自動化された取引システムにおけるマッチングエンジンから受信した取引情報から生成される請求項１１記載のメッセージ検証プロセス。
【請求項１３】
前記マッチングエンジンから取引情報を受信するステップと、
ネットワーク送信と同期して複数のクライアントシステムへ送信する複数の通知メッセージを生成するステップと、
を含む請求項１２記載のメッセージ検証プロセス。
【請求項１４】
新しいメッセージに対するシーケンス番号フィールドを受信することと同期して、メッセージのシーケンス番号を検証するステップを含み、
メッセージの複数の残りのフィールドを受信することから独立して、新しいメッセージのシーケンス番号と、対応するクライアントに対する照会シーケンス番号と、を比較する、請求項１２または１３記載のメッセージ検証プロセス。
【請求項１５】
前記新しいメッセージのシーケンス番号と、対応するクライアントに対する照会シーケンス番号が、一致しない場合に、前記マッチングエンジンから受信したメッセージを取消すステップを含む、請求項１４記載のメッセージ検証プロセス。
【請求項１６】
文解析エンジンが、前記マッチングエンジンへ送信するために、複数の受信したメッセージをリクエストフォーマットへ変換するステップを含み、
前記リクエストフォーマットでは、前記複数の受信したメッセージからコンパクトなフォーマットへデータを圧縮している、請求項１２乃至１５の何れか１項記載のメッセージ検証プロセス。
【請求項１７】
受信したメッセージに含まれているクライアントのシーケンス番号から、前記リクエストフォーマットに含まれるコンパクトなクライアントインデックスを生成するステップを含む、請求項１６記載のメッセージ検証プロセス。
【請求項１８】
受信したメッセージに含まれているインストルメントコードから、前記リクエストフォーマットに含まれる短命なインストルメントインデックスを生成するステップを含む、請求項１６記載のメッセージ検証プロセス。
【請求項１９】
前記リクエストフォーマットに含まれる、価格と、量と、クライアント照会とを、受信したメッセージから抽出するステップを含む、請求項１６乃至１８の何れか１項記載のメッセージ検証プロセス。
【請求項２０】
クライアントから受信したメッセージが検証された場合に、クライアントに対する、前記検証エンジンによって維持されている照会シーケンス番号をインクリメントするステップを含む、請求項１６乃至１９の何れか１項記載のメッセージ検証プロセス。
【請求項２１】
自動化された取引システムのための通信インターフェースであって、
複数のクライアントシステムへおよび複数のクライアントシステムから外部ネットワークを通して複数のメッセージを通信するように構成されている物理層インターフェースであって、前記外部ネットワークから直接に複数のメッセージを受信するように構成されている物理層インターフェースと、
ここで、複数の受信したメッセージの各々は、複数のメッセージフィールドを備えている、
前記複数のメッセージフィールドを受信することと同期して、前記複数のメッセージの各々に含まれている前記複数のメッセージフィールドを検証するように構成されている文解析および検証エンジンであって、メッセージ全体を受信することから独立して、前記複数のメッセージフィールドを検証するように構成されている文解析および検証エンジンと、
前記自動化された取引システムにおけるマッチングエンジンから取引情報を受信し、複数のクライアントシステムに送信する複数の通知メッセージを生成するように構成されている通知エンジンと、
を具備している、通信インターフェース。
【請求項２２】
前記通知エンジンは、取引情報を受信し、ネットワーク送信と同期して、複数の送出するメッセージを作成するように構成されている、請求項２１記載の通信インターフェース。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、市場取引のための自動化された取引システムにおける改良に関し、特にそれに限定されないが自動化された取引システムのための通信インターフェースに関する。
【背景技術】
【０００２】
自動化された取引システム（ＡＴＳ）は、（株、安全保障等のような）１以上のリストされたインストルメントが取引される市場における買い手と売り手の実時間マッチングを促進することで知られている。
【０００３】
現在のＡＴＳは電子通信ネットワーク（ＥＣＮ）を使用する。ＥＣＮは特定の価格で財務インストルメントを販売することを望む売り手と特定の価格で１以上の財務インストルメントを購入することを望む買い手との間の標準的な競争売買を具備している中央限定注文ブック（ＣＬＯＢ）を実行する。
【０００４】
ナスダック、ＡＳＸ、その他のような主要な取引市場では、行われる多くの取引を実行するのに必要な強力な計算システムが取引中に必要とされる。
【０００５】
計算システムの速度は非常に重要である。取引を実行するのに２つの重要な要素が存在し、これらは価格優先と時間優先である。価格優先は最良の価格で販売しようとする人または最良の価格で購入しようとする人が取引において優先権を与えられることを意味している。時間優先は同じ価格の２人の売り手と２人の買い手が存在する場合に、注文が最初にＣＬＯＢに到達し最初に行われた最初の買い手または売り手に対して取引が行われることを意味する。ＥＣＮの処理速度はそれ故、臨界的である。
【０００６】
ＥＣＮのクライアントは電子的に注文を提示し、リストされたインストルメントの特定の量を最大／最小価格のような特定の条件で購入または販売する。これらの注文は待ち行列で行われる。最初に、クライアントは彼らの注文が確定されたことを通知される。
【０００７】
売り手と買い手が共に一致され、彼らの価格条件が満足したことが発見されたとき、取引が生じる。売り手と買い手は両者とも彼らの注文が適切に行われたことを通知される。
【０００８】
注文価格と取引の匿名要約（「市場データ」）も他の関心のあるクライアントへ流布される。
【０００９】
ＥＣＮ性能の数的指標は待ち時間と処理能力を含んでいる。待ち時間は交換の応答時間である。これは多くの異なる文脈、即ち注文の実行から最初の確認を受けるまで、注文の実行から実行通知を受けるまで、注文の実行から市場データで流布されるまでにおいて測定されることができる。処理能力はＥＣＮが支持することができる毎秒の注文又は取引の最大数である。
【００１０】
ＦＣＮの多くのクライアントは低い待ち時間と高い処理能力を所望しており、それによって彼らは頻繁におよび確信をもって取引することができ、彼らの注文の状態について不確定なことは少なく、変化する条件に対して迅速に応答することができる。
【００１１】
現在のＦＣＮは、典型的に汎用目的のオペレーティングシステムと共に、汎用目的のプロセッサアーキテクチャでソフトウェアにおいて実行される。これは実行を簡単にするが、これらの解決策は高い待ち時間、即ち最良で数百マイクロ秒、典型的にはミリ秒を示す。汎用目的のオペレーティングシステムが使用されるとき、これはまた敵対するアタッカーがＥＣＮソフトウェアを作動するコンピュータを侵害する機会を増加し、この理由でしばしば付加的なファイアウォールシステムがクライアントとＥＣＮシステムとの間に付加され、さらに待ち時間を増加させる。
【発明の概要】
【００１２】
第１の特徴によれば、本発明は自動化された取引システムの通信インターフェースを提供し、その通信インターフェースは外部ネットワークと、自動化された取引システムのマッチングエンジンとの間のメッセージを処理するように構成された専用のハードウェアを具備している。
【００１３】
１実施形態では、専用のハードウェアは財務トランザクションメッセージの処理のためにプログラムされたプログラム可能な論理装置（ＰＬＤ）である。１実施形態では、専用のハードウェアはプログラム可能なゲートアレイ（ＰＧＡ）、１実施形態ではフィールドプログラム可能なゲートアレイ（ＦＰＧＡ）により構成される。
【００１４】
１実施形態では、専用のハードウェアの使用は有効にハードウェア速度で入来するおよび出て行くメッセージを処理することができ、１構成では電子通信ネットワーク（ＥＣＮ）である自動化された取引システムの全体的な速度を増加する。
【００１５】
１実施形態では、専用のハードウェア構成は入来するメッセージ（例えばブローカーからの注文）を、１実施形態ではより簡単でありマッチングエンジンに適切であるリクエストフォーマットへ変換するように構成された文解析および検証エンジンを実行する。
【００１６】
１実施形態では、専用のハードウェアはマッチングエンジンからトランザクション情報を受信し、ネットワークへ向けて送信するための適切なメッセージを構成するための通知エンジンを実行するように構成される。
【００１７】
１実施形態では、専用のハードウェアはセキュリティ機能を実行するように構成され、入来するメッセージが本物であることをチェックするように構成されている。１実施形態では、セキュリティ機能は特別な交換プロトコルを使用する入来するメッセージのチェックサムのチェックを実行するように構成される。
【００１８】
専用のハードウェアを使用すると、プロセスは有効に低い待ち時間で非常に高いデータ処理能力を容易にする利点がある。さらに、ＰＬＤのようなハードウェアは比較的容易にネットワークにインターフェースされることができる。ＥＣＮのクライアント対応部としてＰＬＤを位置させることにより、高い帯域幅と、クライアントとの低い待ち時間の通信が実現されることができる。付加的に、１実施形態では、ＡＰＬＤは非常に最小であり証明可能なネットワーク化構成を有するので、アタッカーに露出されている攻撃表面は最小であり、ファイアウォールの機能が組み込まれている。
【００１９】
１実施形態では、冗長はさらに別の通信インターフェースとさらに別のマッチングエンジンとを設けることにより与えられ、さらに別の通信インターフェースと通信インターフェースは接続されている。１実施形態では、さらに別の通信インターフェースと通信インターフェースは直列接続により接続されている。１実施形態では、さらに別の通信インターフェースとマッチングエンジンがさらに冗長を与えるために設けられる。さらに別の通信インターフェースは１実施形態では直列接続によって他の通信インターフェースへ接続される。
【００２０】
１実施形態では、マッチングエンジンは専用のハードウェアにより実行されることもできる。１実施形態では、マッチングエンジンはＰＬＤにより構成され、１実施形態ではＦＰＧＡにより実行されることができる。
【００２１】
第２の特徴によれば、本発明は自動化された取引システムとの通信を処理する方法を提供し、ハードウェア速度またはハードウェア速度に近い速度で、ネットワークと自動化された取引システムとの間のメッセージを処理するステップを含んでいる。
【００２２】
１実施形態では、処理はプログラム可能な論理装置（ＰＬＤ）により実行される専用のハードウェア構成により実行される。
【００２３】
第３の特徴によれば、本発明は自動化された取引システムのためのマッチングエンジンを提供し、そのマッチングエンジンはインストルメントの取引のための標準的な競争売買プロセスを実行するように構成された専用のハードウェアを具備している。
【００２４】
１実施形態では、専用のハードウェアはプログラム可能な論理装置（ＰＬＤ）である。１実施形態では、専用のハードウェアはフィールドプログラム可能なゲートアレイ（ＦＰＧＡ）である。
【００２５】
第４の特徴によれば、本発明は自動化された取引システムのためのセキュリティ構成を提供し、そのセキュリティ構成は外部ネットワークから自動化された取引システムへ入来するメッセージを受信するように構成された通信インターフェースを具備しており、入来するメッセージを検証するように構成された専用のハードウェアを含んでいる。
【００２６】
１実施形態では、検証はチェックサムのチェックにより実行される。
【００２７】
１実施形態では、専用のハードウェアはプログラム可能な論理装置（ＰＬＤ）である。１実施形態では、プログラム可能な論理装置はフィールドプログラム可能なゲートアレイ（ＦＰＧＡ）である。
【図面の簡単な説明】
【００２８】
【図１】本発明の１実施形態による装置を組み込んでいる自動化された取引システムの高レベルのブロック図である。
【図２】図１のシステムのさらに詳細なブロック図である。
【図３】本発明のさらに別の実施形態による装置のブロック図である。
【発明を実施するための形態】
【００２９】
本発明の特性及び利点は、添付図面を参照して、単なる例示であるその実施形態についての以下の説明から明白になる。  
図１を参照すると、自動化された取引システムのための参照符合１により指示されている通信インターフェースが示されている。通信インターフェース１は専用のハードウェアで構成され、この例の場合、これはフィールドプログラム可能なゲートアレイ１（ＦＰＧＡ）の形態であり、外部ネットワーク２とマッチングエンジン３との間にインターフェースを与えるようにプログラムされ、これはこの例では汎用目的プロセッサ上のソフトウェア（例えば市場取引用の標準的な競争売買を行うための汎用目的サーバおよびコンピュータプログラム）により実行される。
【００３０】
ＦＰＧＡにより実行される通信およびメッセージングインターフェース１と汎用目的の処理システム及びソフトウェアにより実行されるマッチングエンジンは共に自動化された取引システム（ＡＴＳ）を構成する電子通信ネットワーク（ＥＣＮ）を構成する。
【００３１】
通信及びメッセージングインターフェース１の機能はネットワーク２からメッセージを受信し、それらを処理し、それらをマッチングエンジン３へ伝送することである。それはまたマッチングエンジン３からメッセージを受信しそれらを処理してネットワーク２へ返送する機能も有する。
【００３２】
ＥＣＮのクライアント、例えばブローカー、トレーダー等は特定の量のリストされたインストルメント、例えば株またはセキュリティを購入または販売するために注文を提示する。これらは注文メッセージ４として提示される。注文メッセージは通常特定の取引交換にしたがった既知のフォーマットである。注文メッセージ４の典型的なフォーマットをさらに詳細に後述する。
【００３３】
注文４の受信に応答して、ＥＣＮは通常ＥＣＮが注文４を受信したことを認める確認、ＡＣＫ５を与える。さらに標準的な競争売買取引プロセスに含まれるように注文が処理されマッチングエンジンに渡されたとき、承認メッセージ６がＥＣＮにより与えられる。
【００３４】
取引が生じたとき、即ちマッチングエンジンが購入と販売が一致し、それ故取引が行われるとき、実行メッセージ７が外部ネットワーク２へ返送され、それによってクライアントは取引を通知される。取引が行われるとき、買い手と売り手は両者とも彼らの注文が適切に行われたことを実行メッセージ７により通知される。
【００３５】
ＥＣＮの応答時間は性能の重要な尺度となる測定である。これはＡＣＫ５を与えるための応答時間と、承認６を与えるための応答時間を含んでいる。測定は注文を行ってから実行７を受信するまでの時間でもある。
【００３６】
先に説明したように、現在のＥＣＮは典型的なソフトウェアを使用して汎用目的のプロセッサで動作する。このような現在の解決方法は最良でも数百μ秒、典型的にはミリ秒の長い待ち時間を示す。時間が臨界的である「時間は金なり」の分野では、このような待ち時間は改良を必要とする。
【００３７】
この実施形態では、ＦＰＧＡ１は直接的または１以上の物理層トランシーバを介して（イーサネット（登録商標）のような）ネットワークに接続される。この実施形態では、XilinxからのVirtex 5  ＦＰＧＡのようなハイエンドのＰＬＤが、低い待ち時間を有する非常に高いデータ処理能力を与えるために使用される。出願人はクライアント対応部としてＰＬＤを配置することにより、高い帯域幅と、クライアントとの低い待ち時間とを有する通信が実現されることができることを発見した。
【００３８】
通信およびマッチングと同様に、図１の実施形態は処理された情報の記憶および処理された取引からの市場データの作成のようなＥＣＮの他の機能も実行する。
【００３９】
図２は図１のＥＣＮをさらに詳細に示している。
【００４０】
ＦＰＧＡ１は、物理層インターフェース12を介してネットワークに接続された文解析および検証エンジン10と通知エンジン11を具備している。（ブローカー等のような）クライアントはメッセージをネットワーク２によってＥＣＮシステムへ送信する。新しい注文を提示し先の注文を変更するような動作のための異なるタイプのメッセージが存在する。
【００４１】
文解析および検証エンジン10はこれらのメッセージをより簡単なリクエストフォーマットへ変換する。このプロセスでは、例えばチェックサムのチェックを行うことにより、メッセージが許可されたクライアントからのものであり、正当なデータを含んでいることを確認する。注文はその後、リクエストされたインストルメントについてマッチングエンジン12へ送信される。この実施形態では、マッチングエンジンは汎用目的のプロセッサに位置され、典型的なソフトウェアにより実行される。
【００４２】
マッチングエンジンはリクエストにしたがって相場の待ち行列を更新する。
【００４３】
マッチングエンジン13は（ＦＰＧＡにより実行される）通知エンジン11と（典型的なソフトウェアを使用して汎用目的のプロセッサでも実行される）記憶エンジン14へ結果的なトランザクションのセットを通信する。
【００４４】
通知エンジン11は通知メッセージ（例えば実行７）をリクエストしているクライアントへおよび、注文が一致している他のクライアントへ送信する。これはさらに市場データを他のクライアントへ流布する。
【００４５】
記憶エンジン14は全てのトランザクションがディスク上または他の安定な記憶媒体上に安全に記憶されることを確認する。
【００４６】
文解析および検証エンジン10と通知エンジン11を実行するためのＦＰＧＡの使用はＦＣＮで非常に低い待ち時間を生じ、非常に低い時間期間（数マイクロ秒程度以下）で承認６とＡＣＫ５を行うことができ、注文が通常のシステムよりも迅速にマッチングエンジンに到達するので実行を改良する。実行７メッセージもまたより迅速に戻される。
【００４７】
この実施形態では文解析および検証エンジン10と通知エンジン11はＦＰＧＡにより実行われる。即ち通信及びメッセージングインターフェース１はＦＰＧＡにより行われる。
【００４８】
別の実施形態では、マッチングエンジン13はＦＰＧＡ（又は他のプログラム可能なまたは論理装置或いは専用のハードウェア）で実行されることもでき、さらに速度を増加する。別の実施形態では、記憶エンジンは専用のハードウェア、例えばＰＬＤ、ＦＰＧＡ等で実行されることもできる。通常、ＥＣＮの機能は性能と実行の容易さとの所望の妥協に依存して、ＰＬＤと汎用目的のプロセッサの間で種々に分割されることができる。
【００４９】
以下の説明は例示的なメッセージを使用するＦＰＧＡ１による処理のより詳細な説明である。
【００５０】
［文解析／検証Ｅメール］  
ＦＰＧＡ１中の文解析／検証エンジン０はネットワーク受信と同期して動作するように設計されている。ギガビットのイーサネット（登録商標）ネットワークでは、１２５ＭｈｚのＦＰＧＡクロック速度が所望であり、これはデータの８ビット（１バイト）が毎クロックサイクルで受信され処理されることを可能にする。
【００５１】
この例では、ＦＰＧＡ１により処理されるＥＣＮメッセージのタイプが２つ存在し、即ち新しい注文メッセージと、変更／取消し注文メッセージである。ＥＣＮメッセージは標準的なインターネットプロトコル（ＵＤＰ／ＩＰ）パケットに封入される。１例の新しい注文メッセージを以下記載する。  
イーサネットプロトコルヘッダ：１１２ビット／１４バイト  
ＩＰプロトコルヘッダ：        １６０ビット／２０バイト（最小）  
ＵＤＰプロトコルヘッダ：      ６４ビット／８バイト  
---  
セッションＩＤ：              １６ビット／２バイト  
シーケンス番号：              １６ビット／２バイト  
インストルメントコード：      ３２ビット／４バイト  
メッセージタイプ：            ８ビット／１バイト（０＝新しい注文）  
トランザクションタイプ：      ８ビット／１バイト（０＝購入、１＝販売）  
（将来使用のための確保）：      １６ビット／２バイト  
量：                            １６ビット／２バイト  
価格：                          １６ビット／２バイト  
クライアントの好み：            ３２ビット／４バイト
最初に、イーサネット、ＩＰとＵＤＰプロトコルヘッダはスキップされ、これはかなり直接的であるが、ＩＰヘッダは可変長であることができる。その後ＥＣＮプロトコルフィールドが受信される。
【００５２】
第１のフィールド、即ちセッションＩＤはクライアントと取引所との間のセッションを表す不透明なトークンである。この第１のフィールドを使用して、クライアントに関するデータはＦＰＧＡに記憶されているクライアント情報アレイ中から検索されることができる。シーケンス番号フィールドが受信されるとき、ＦＰＧＡはシーケンス番号がクライアントについての予測されたクライアント番号と一致することを検証する。このチェックで検証されなかったならば、残りのメッセージは無視され、通知メッセージが直ちにクライアントに返送される。検証されたならば、予測されるシーケンス番号は次のメッセージの準備において１インクリメントされ、処理は進行する。セッションＩＤはクライアントを識別するよりコンパクトな「クライアントインデックス」へ変換され、これらの２つのフィールドはそうでなければ破棄される。
【００５３】
後続する４バイトはメッセージが関連するインストルメントコードを示す。これは“ＭＳＦＴ”又は幾つかの他の識別子のような株コードであってもよい。効率的な検索表（ＬＵＴ）を使用して、ＦＰＧＡはインストルメントコードが有効であるか否かを決定する。有効であるならば、これはそれをよりコンパクトな形態、即ちインストルメントインデックスへ変換する。このような形態は後に処理を非常に効率的にするが、この番号は短命で有効であるだけであるが、クライアントが標準的なインストルメントコードを使用することが望ましい。
【００５４】
メッセージ中の他のフィールドはトランザクションタイプ（購入または販売）、価格、料、クライアント照会（注文についての任意のコレスポンデンスにおいてクライアントに送信されるクライアント供給フィールド）を伝送する。各残りのフィールドが受信されるとき、内部表示は以下の概要により構成される。多くの入力フィールドは逐語を通過されることができる。しかしながら、幾つかの検証はこれらが合理的な値を有するか、例えばトランザクションタイプが購入であるかまたは販売であるかを確認するためにフィールドで行われる。これは後にマッチングエンジンで行われる必要がある検証を最小にする。確保フィールドのような幾つかのフィールドは将来の拡張のためのみのプロトコルであり、内部形態から省略されることができる。
【００５５】
全てのフィールドが受信されると、内部シーケンス番号が添付される。結果的な１６バイトの内部記録はマッチングエンジンと共有されるメモリ域中の循環バッファへ書込まれる。  
クライアントインデックス：    １バイト  
インストルメントインデックス：１バイト  
メッセージタイプ：            １バイト（０＝新しい注文）  
トランザクションタイプ：      １バイト（０＝購入、１＝販売）  
量：                          ２バイト  
価格：                        ２バイト  
クライアントの好み：          ４バイト  
（未使用）：                    ２バイト  
内部シーケンス番号：          ２バイト  
類似の処理がメッセージの変更／取消に適用される。
【００５６】
イーサネットプロトコルヘッダ：１１２ビット／１４バイト  
ＩＰプロトコルヘッダ：        １６０ビット／２０バイト  
ＵＤＰプロトコルヘッダ：      ６４ビット／８バイト  
---  
セッションＩＤ：              １６ビット／２バイト  
シーケンス番号：              １６ビット／２バイト  
インストルメント：            ３２ビット／４バイト  
メッセージタイプ：            ８ビット／１バイト（１＝変更／取消注文）  
（将来使用のための確保）：      ８ビット／１バイト  
新しい量：                      １６ビット／２バイト  
注文の好み：                    ３２ビット／４バイト  
クライアントの好み：            ３２ビット／４バイト
このメッセージは新しい注文メッセージに類似のフィールドを含んでおり、同様に処理される。トランザクションタイプと価格の代わりに、注文の好みが行われた注文を指すことに使用されている。これは逐語を１６バイトの内部記録に位置付け、これはこのケースでは以下のように現われる。  
クライアントインデックス：    １バイト  
インストルメントインデックス：１バイト  
メッセージタイプ：            １バイト（１＝注文の変更／取消）  
（未使用）：                    １バイト  
注文照会：                    ４バイト  
クライアント照会：            ４バイト  
新しい量：                    ２バイト  
内部シーケンス番号：          ２バイト
［マッチングエンジン］  
---------------  
マッチングエンジンは文解析／検証エンジンにより発生される１６バイト記録にアクセスする。各記録に対して、これはその内部待ち行列においてリクエストされた更新を実行し、その後、出力循環バッファ（通知待ち行列）で１６バイトの記録を発生することが読める。通知フォーマットを以下さらに説明する。
【００５７】
メッセージタイプが注文の変更／取消であるならば、マッチングエンジンは既存の注文の位置を突き止め、新しい量フィールドを使用してその量を更新する注文照会を使用する。注文の位置が突き止められず、異なるクライアントに属するか、または新しい量が先の量よりも大きいならば、通知の変更−拒否が待ち行列される。そうではないならば、通知の変更−受取が待ち行列される。
【００５８】
メッセージタイプが新しい注文であるならば、マッチングエンジンは、新しい注文が反対側の待ち行列された注文と一致できるかをチェックする（例えば購入の注文では、インストルメントについての販売者の待ち行列をチェックする）。一致するならば、通知の注文−実行が両パーティで待ち行列される。価格が現在の市場価格と非常にかけ離れているならば、注文−拒否が生じる。一致しないならば、注文は待ち行列に加えられ、通知の注文−受取が発生される。
【００５９】
通知は簡単な記録フォーマットにしたがい、これはマッチングエンジンに対する入力フォーマットに類似している。  
クライアントインデックス：    １バイト  
インストルメントインデックス：１バイト  
通知タイプ：                  １バイト（０＝注文拒否、１＝注文受取、２＝注文実行、３＝変更−拒否）、４＝変更−受取  
トランザクションタイプ：      １バイト  
量：                          ２バイト  
価格:                          ２バイト  
クライアント照会：            ４バイト  
注文照会：                    ４バイト
［通知エンジン］  
---------------  
ＦＰＧＡの通知エンジンは通知待ち行列からの記録を読取り、メッセージをクライアントへ送信する。クライアントインデックスはクライアント情報アレイへインデックスするために使用され、これはイーサネットアドレス、ＩＰアドレス、クライアントに接触するために使用するためのＵＤＰポート番号、次に出力するシーケンス番号を含んでいる。内部インストルメントインデックスはクライアントにより使用される４バイトのインストルメントコードへマップバックされる。他のフィールドは逐次伝送される。
【００６０】
出力するメッセージはネットワーク送信と同期して動作するＦＰＧＡ論理により発生され、メモリ中の予め構成されたメッセージを必要とするのではなく、各出力バイトを必要とされるように発生する。通知記録からのフィールドは適切なスロットにおいて、出力するメッセージへ代入される。出力するメッセージの１例を以下示す。  
イーサネットプロトコルヘッダ：１１２ビット／１４バイト  
ＩＰプロトコルヘッダ：        １６０ビット／２０バイト  
ＵＤＰプロトコルヘッダ：      ６４ビット／８バイト  
---  
シーケンス番号：              １６ビット／２バイト  
通知タイプ：                  ８ビット／１バイト  
トランザクションタイプ：      ８ビット／１バイト  
インストルメントコード：      ３２ビット／４バイト  
量：                          １６ビット／２バイト  
価格：                        １６ビット／２バイト  
クライアントの好み：          ３２ビット／４バイト  
注文の好み：                  ３２ビット／４バイト
前述の説明に含まれるメッセージは単なる例示であり、他のフォーマットのメッセージまたは他のメッセージは本発明の他の実施形態による構成によって処理されることができることが認識されよう。
【００６１】
１実施形態では、前述の実施形態のようなシステムは冗長を生じるために複数回再生されることができる。このようなシステムにおける冗長は、（システムの部分的または全体の機能停止の場合に）市場取引が継続できることおよび取引記録が維持されることを確実にするために重要であることが認識されよう。
【００６２】
図３は本発明のさらに別の実施形態によるシステムの概略ブロック図を示している。このシステムはこの例では、３つのシステムユニット30、31、32を具備している。システムユニットはそれぞれ通信およびメッセージングインターフェース１と、他のＥＣＮ機能３を行うためのマッチングエンジン及び装置を有している。換言すると、システムユニット30、31、32は図１のシステムの３つを使用している。
【００６３】
この実施形態では、各システムユニット30、31、32のＦＰＧＡ１は接続33と34により直列にインターフェースされている。このことはシステムを入出する全てのメッセージについてバックアップシステムが存在することを確実にする。システム30が故障したならば、例えばシステム31と32が市場取引データを処理し続けるために利用可能な全ての情報を有する。
【００６４】
前述したような実施形態は、株、セキュリティ、通貨、オプション、先物、保障、他の金融派生商品、ＣＦＤ、商品、半導体チップ、その他を含むがそれらに限定されない任意のインストルメントを取引するために使用されることができる。
【００６５】
前述の実施形態では、通信インターフェースはＦＰＧＡにより構成される。これは任意のプログラム可能な論理装置により構成され、任意の専用のハードウェアにより実行されることができる。カスタム化されたチップは例えば通信インターフェースの機能を実行するために使用されることができる。同様に、ＥＣＮの他の部分が専用のハードウェア（例えばマッチングエンジンおよび／または記憶エンジン）を使用して構成される場合、これらはカスタム化された回路、任意のＰＬＤと、ＦＰＧＡのような任意のタイプの専用のハードウェアを使用して構成されることができる。
【００６６】
特許請求の範囲および本発明の前述の説明では、言語または必要な意味合いを表現するために文脈が別の言い回しを必要とする場合を除いて、用語“comprise”または“comprises”或いは“comprising”は包括的意味で使用され、即ち述べられた特性の存在を特定するために使用されるが、本発明の種々の実施形態のさらに別の特性の存在または付加を除外するためではない。
【００６７】
広義で説明されている本発明の技術的範囲を逸脱せずに特定の実施形態により示されているように複数の変形および／または変更が本発明に対して行われることができることが当業者により認識されよう。本発明の実施形態はそれ故、あらゆる点で発明を限定するものではなく例示として考えられる。
以下に、本願出願時の特許請求の範囲に記載された発明を付記する。
［１］自動化された取引システムの通信インターフェースにおいて、
前記通信インターフェースは外部ネットワークと自動化された取引システム中のマッチングエンジンとの間のメッセージを処理するように構成された専用のハードウェアを具備している通信インターフェース。
［２］前記専用のハードウェアは、前記メッセージを処理するようにプログラムされたプログラム可能な論理装置である前記［１］記載の通信インターフェース。
［３］前記専用のハードウェアは、プログラム可能なゲートアレイである前記［２］記載の通信インターフェース。
［４］前記専用のハードウェアは、フィールドプログラム可能なゲートアレイである前記［２］記載の通信インターフェース。
［５］前記専用のハードウェアは、入来するメッセージを、マッチングエンジンに適切であるリクエストフォーマットへ変換するように構成されている文解析および検証エンジンを含んでいる前記［１］乃至［４］のいずれか１つに記載の通信インターフェース。
［６］前記専用のハードウェアは、前記マッチングエンジンからトランザクション情報を受信し、前記ネットワークへ送信するためのメッセージを構成するための通知エンジンを含んでいる前記［１］乃至［５］のいずれか１つに記載の通信インターフェース。
［７］前記専用のハードウェアは、セキュリティ機能を実行する前記［１］乃至［６］のいずれか１つに記載の通信インターフェース。
［８］前記専用のハードウェアは、入来するメッセージのチェックサムのチェックを実行することにより前記セキュリティ機能を実行するように構成されている前記［７］記載の通信インターフェース。
［９］前記［１］乃至［８］のいずれか１つに記載の通信インターフェースと、マッチングエンジンとを具備する自動化された取引システム。
［１０］前記マッチングエンジンは、専用のハードウェアにより構成されている前記［９］記載の自動化された取引システム。
［１１］前記マッチングエンジンを構成する前記専用のハードウェアは、プログラム可能な論理装置である前記［１０］記載の自動化された取引システム。
［１２］前記マッチングエンジンを構成する前記専用のハードウェアは、フィールドプログラム可能なゲートアレイである前記［１１］記載の自動化された取引システム。
［１３］ハードウェア速度またはハードウェア速度に近い速度で、ネットワークと自動化された取引システムとの間のメッセージを処理するステップを含んでいる自動化された取引システムとの通信を処理する方法。
［１４］前記メッセージを処理するステップは専用のハードウェア装置により実行される前記［１３］記載の方法。
［１５］前記専用のハードウェア装置は、プログラム可能な論理装置である前記［１４］記載の方法。
［１６］前記専用のハードウェア装置は、フィールドプログラム可能なゲートアレイである前記［１５］記載の方法。
［１７］自動化された取引システム用のマッチングエンジンにおいて、
前記マッチングエンジンはインストルメントの取引のための標準的な競争売買プロセスを行うように構成された専用のハードウェアを具備しているマッチングエンジン。
［１８］前記専用のハードウェアは、プログラム可能な論理装置である前記［１７］記載のマッチングエンジン。
［１９］前記専用のハードウェアは、フィールドプログラム可能なゲートアレイである前記［１８］記載のマッチングエンジン。
［２０］自動化された取引システムのためのセキュリティ装置において、
前記セキュリティ装置は外部ネットワークから前記自動化された取引システムへ入来するメッセージを受信するように構成された通信インターフェースを具備しており、前記入来するメッセージを検証するように構成された専用のハードウェアを含んでいるセキュリティ構成。
［２１］前記検証はチェックサムのチェックにより実行されるように構成されている前記［２０］記載のセキュリティ構成。
［２２］前記専用のハードウェアは、プログラム可能な論理装置である前記［２０］または［２１］記載のセキュリティ構成。
［２３］前記専用のハードウェアは、フィールドプログラム可能なゲートアレイであるセキュリティ構成。
［２４］前記［１］乃至［９］のいずれか１つに記載の通信インターフェースおよびマッチングエンジンと、前記［１］乃至［９］のいずれか１つに記載のさらに別の通信インターフェースおよびさらに別のマッチングエンジンと、通信および接続されているさらに別の通信インターフェースとを具備し、それによって自動化された取引システムのためのシステム冗長が与えられている自動化された取引システム。
［２５］前記［１］乃至［９］のいずれか１つに記載のさらに別の通信システムと、さらに別のマッチングエンジンとをさらに具備しており、それによってさらに別のシステム冗長が与えられている前記［２４］記載の自動化された取引システム。
【図１】
0005670341.tif 000002
【図２】
0005670341.tif 000003
【図３】
0005670341.tif 000004