(57)【要約】  レイテンシを短縮するシステム２０は、電子メッセージ受信機２８に、１つの電子メッセージが振り分けられた複数の送信用データパッケージのうちの少なくとも１つを含む電子メッセージ部分を送信するメッセージ送信機３２と、電子トリガー情報を受信する電子トリガー情報受信機３０を備える。メッセージ送信機３２は、電子トリガー情報を受信するのに応答して、電子メッセージ受信機２８に、複数のデータパッケージの残りを送信する。システム２０は、複数のデータパッケージのうちの少なくとも１つが受信されるときに、電子メッセージ受信機２８に、複数のデータパッケージの残りを受信することを予想して、複数のデータパッケージのうちの少なくとも１つを保持させ、その後、残りが受信されると、複数のデータパッケージを結合させるように、複数のデータパッケージをそれぞれフォーマットするデータフォーマッタ３４を備える。【選択図】図１
2015520528.tif 000002
【特許請求の範囲】
【請求項１】
レイテンシを短縮する方法であって、該方法は、
電子メッセージを、複数の送信用データパッケージに振り分けるステップであって、前記複数のデータパッケージは電子メッセージ受信機によって予想されるデータパッケージより多くのデータパッケージを有する、振り分けるステップと、
前記電子メッセージ受信機に、前記複数のデータパッケージのうちの少なくとも１つを含む電子メッセージ部分を送信するステップと、
前記複数のデータパッケージの残りが前記電子メッセージ受信機に送信されることを示す電子トリガー情報を受信するステップと、
前記電子メッセージ受信機に、前記複数のデータパッケージの残りを送信するステップとを含み、
前記複数のデータパッケージはそれぞれ、前記複数のデータパッケージのうちの少なくとも１つが受信されるときに、前記電子メッセージ受信機に、前記複数のデータパッケージの残りを受信すること予想して、前記複数のデータパッケージのうちの少なくとも１つを保持させ、その後、前記複数のデータパッケージの残りが受信されたときに、前記複数のデータパッケージを結合するようにフォーマットされる、レイテンシを短縮する方法。
【請求項２】
前記電子メッセージ受信機が、前記メッセージが振り分けられると予想するデータパッケージの量を求めるステップを含む、請求項１に記載の方法。
【請求項３】
前記電子メッセージ部分は、プロトコルヘッダ情報、電子メッセージ受信機定義ヘッダ情報、及び前記電子メッセージの起点において定義される情報のうちの少なくとも１つを含む、請求項１及び２のいずれか一項に記載の方法。
【請求項４】
前記複数のデータパッケージの残りの中の少なくとも幾つかの情報が、前記電子メッセージ部分を前記電子メッセージ受信機に送信するステップ後に作成される、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記複数のデータパッケージのうちの少なくとも１つは伝送制御プロトコル（ＴＣＰ）セグメントを含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記複数のデータパッケージの残りは別のＴＣＰセグメントを含む、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記別のＴＣＰセグメントは前記ＴＣＰセグメントより小さなシーケンス番号を有する、請求項６に記載の方法。
【請求項８】
前記電子メッセージ部分は少なくとも第１のＩＰ（インターネットプロトコル）フラグメントを含む、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
前記複数のデータパッケージの残りは少なくとも第２のＩＰフラグメントを含む、請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
前記電子トリガー情報を受信するステップは、前記複数のデータパッケージの残りがそこから生成される残りメッセージ情報を受信するステップを含む、請求項１〜９のいずれか一項に記載の方法。
【請求項１１】
前記電子メッセージは、注文を示す電子注文情報、ゲームコマンドを示す電子ゲーム情報、及び賭けを示す電子賭け情報のうちの少なくとも１つを含む、請求項１〜１０のいずれか一項に記載の方法。
【請求項１２】
前記電子メッセージ受信機は、電子注文受信機であり、前記電子メッセージは、金融商品取引注文、ドメイン名注文、及び電子商取引注文のうちの少なくとも１つを含む電子注文情報を含む、請求項１〜１０のいずれか一項に記載の方法。
【請求項１３】
レイテンシを短縮するシステムであって、該システムは、
電子メッセージ受信機に、電子メッセージが振り分けられた複数の送信用データパッケージのうちの少なくとも１つを含む電子メッセージ部分を送信するように構成されるメッセージ送信機であって、前記複数のデータパッケージは前記電子メッセージ受信機によって予想されるデータパッケージより多くのデータパッケージを有する、メッセージ送信機と、
前記複数のデータパッケージの残りが前記電子メッセージ受信機に送信されることを示す電子トリガー情報を受信するように構成される電子トリガー情報受信機であって、前記メッセージ送信機は、前記電子メッセージ受信機に、前記複数のデータパッケージの残りを送信するように構成される、電子トリガー情報受信機と、
前記複数のデータパッケージのうちの少なくとも１つが受信されるときに、前記電子メッセージ受信機に、前記複数のデータパッケージの残りを受信することを予想して、前記複数のデータパッケージのうちの少なくとも１つを保持させ、その後、前記複数のデータパッケージの残りが受信されると、前記複数のデータパッケージを結合させるように、前記複数のデータパッケージをそれぞれフォーマットするように構成されるデータフォーマッタと、
を備える、レイテンシを短縮するシステム。
【請求項１４】
前記複数のデータパッケージのうちの少なくとも１つを記憶するように構成されるデータ記憶装置を備える、請求項１３に記載のシステム。
【請求項１５】
前記電子メッセージ受信機が、前記メッセージが振り分けられると予想するデータパッケージの量を求めるように構成される電子メッセージ受信機予想決定器を備える、請求項１３及び１４のいずれか一項に記載のシステム。
【請求項１６】
前記メッセージ送信機は前記電子メッセージ受信機とのＴＣＰセッションを確立するように構成される、請求項１３〜１５のいずれか一項に記載のシステム。
【請求項１７】
前記メッセージ送信機は、前記電子メッセージ部分内にＴＣＰセグメントを含むように、かつ前記複数のデータパッケージの残り内に別のＴＣＰセグメントを含むように構成される、請求項１３〜１６のいずれか一項に記載の方法。
【請求項１８】
前記別のＴＣＰセグメントは前記ＴＣＰセグメントより小さなシーケンス番号を有する、請求項１７に記載のシステム。
【請求項１９】
前記メッセージ送信機は、前記電子メッセージ部分内に少なくとも第１のＩＰフラグメントを含むように構成される、請求項１３〜１８のいずれか一項に記載のシステム。
【請求項２０】
前記メッセージ送信機は、前記複数のデータパッケージの残り内に少なくとも第２のＩＰフラグメントを含むように構成される、請求項１３〜１９のいずれか一項に記載のシステム。
【請求項２１】
前記電子トリガー受信機は、前記複数のデータパッケージの残りがそこから生成される残りメッセージ情報を受信するように構成される、請求項１３〜２０のいずれか一項に記載のシステム。
【請求項２２】
前記電子メッセージは、注文を示す電子注文情報、ゲームコマンドを示す電子ゲーム情報、及び賭けを示す電子賭け情報のうちの少なくとも１つを含む、請求項１３〜２０のいずれか一項に記載のシステム。
【請求項２３】
前記電子メッセージ受信機は、電子注文受信機であり、前記電子メッセージは、金融商品取引注文、ドメイン名注文、及び電子商取引注文のうちの少なくとも１つを含む電子注文情報を含む、請求項１３〜２１のいずれか一項に記載のシステム。
【請求項２４】
レイテンシを短縮する方法であって、該方法は、
電子メッセージ受信機に、複数の代替メッセージ部分を送信するステップであって、前記代替メッセージ部分はそれぞれ電子メッセージの代替部分である、送信するステップと、
前記複数の代替メッセージ部分のうちの選択された代替メッセージ部分が完了されることを示す電子トリガー情報を受信するステップと、
前記電子メッセージ受信機に、前記複数の代替メッセージ部分のうちの前記選択された代替メッセージ部分を補完する残りメッセージ部分を送信するステップと、
を含む、レイテンシを短縮する方法。
【請求項２５】
前記複数の代替メッセージ部分はそれぞれ、プロトコルヘッダ情報、電子メッセージ受信機定義ヘッダ情報、及び前記電子メッセージの起点において定義される情報のうちの少なくとも１つを含む、請求項２４に記載の方法。
【請求項２６】
前記残りメッセージ部分内の少なくとも幾つかの情報は、前記複数の代替メッセージ部分を送信するステップ後に作成される、請求項２４及び２５のいずれか一項に記載の方法。
【請求項２７】
前記複数の代替メッセージ部分はそれぞれ、それぞれのＩＰフラグメントを含み、前記残りメッセージ部分は別のＩＰフラグメントを含む、請求項２４〜２６のいずれか一項に記載の方法。
【請求項２８】
前記電子トリガー情報を受信するステップは、前記残りメッセージ部分がそこから生成される残りメッセージ情報を受信するステップを含む、請求項２４〜２７のいずれか一項に記載の方法。
【請求項２９】
前記電子メッセージは、注文を示す電子注文情報、ゲームコマンドを示す電子ゲーム情報、及び賭けを示す電子賭け情報のうちの少なくとも１つを含む、請求項２４〜２８のいずれか一項に記載の方法。
【請求項３０】
前記電子メッセージ受信機は電子注文受信機であり、前記電子メッセージは、金融商品取引注文、ドメイン名注文、及び電子商取引注文のうちの少なくとも１つを含む電子注文情報を含む、請求項２４〜２８のいずれか一項に記載の方法。
【請求項３１】
レイテンシを短縮するシステムであって、該システムは、
電子メッセージ受信機に、複数の代替メッセージ部分を送信するように構成されるメッセージ送信機であって、前記代替メッセージ部分はそれぞれ電子メッセージの代替部分である、メッセージ送信機と、
前記複数の代替メッセージ部分のうちの選択された代替メッセージ部分が完了されることを示す電子トリガー情報を受信するように構成される電子トリガー情報受信機と、
を備え、
前記メッセージ送信機は、前記電子メッセージ受信機に、前記複数の代替メッセージ部分のうちの前記選択された代替メッセージ部分を補完する残りメッセージ部分を送信するように構成される、レイテンシを短縮するシステム。
【請求項３２】
前記複数の代替メッセージ部分を記憶するように構成されるデータ記憶装置を備える、請求項３１に記載のシステム。
【請求項３３】
前記複数の代替メッセージ部分はそれぞれ、プロトコルヘッダ情報、電子メッセージ受信機定義ヘッダ情報、及び前記電子メッセージの起点において定義される情報のうちの少なくとも１つを含む、請求項３１及び３２のいずれか一項に記載のシステム。
【請求項３４】
前記複数の代替メッセージ部分はそれぞれ、それぞれのＩＰフラグメントを含み、前記残りメッセージ部分は別のＩＰフラグメントを含む、請求項３１〜３３のいずれか一項に記載のシステム。
【請求項３５】
前記電子トリガー情報受信機は、前記残りメッセージ部分がそこから生成される残りメッセージ情報を受信するように構成される、請求項３１〜３４のいずれか一項に記載のシステム。
【請求項３６】
前記電子メッセージは、注文を示す電子注文情報、ゲームコマンドを示す電子ゲーム情報、及び賭けを示す電子賭け情報のうちの少なくとも１つを含む、請求項３１〜３５のいずれか一項に記載のシステム。
【請求項３７】
前記電子メッセージ受信機は電子注文受信機であり、前記電子メッセージは、金融商品取引注文、ドメイン名注文、及び電子商取引注文のうちの少なくとも１つを含む電子注文情報を含む、請求項３１〜３５のいずれか一項に記載のシステム。
【請求項３８】
レイテンシを短縮する方法であって、該方法は、
電子メッセージ受信機に、電子メッセージの未完了部分を示す予備メッセージデータを送信するステップと、
前記電子メッセージの残りを示す残りメッセージデータが送信されることを示す電子トリガー情報を受信するステップと、
前記電子トリガー情報を受信するのに応答して、前記電子メッセージ受信機に前記残りメッセージデータを送信するステップと、
を含み、
前記送信された予備メッセージデータ及び前記送信された残りメッセージデータは、前記電子メッセージ受信機に、前記残りメッセージデータを受信するまで前記予備メッセージデータを保持させ、その後、前記予備メッセージデータ及び前記残りメッセージデータを結合させるようにフォーマットされる、レイテンシを短縮する方法。
【請求項３９】
レイテンシを短縮するシステムであって、該システムは、
電子メッセージ受信機に、電子メッセージの未完了部分を示す予備メッセージデータを送信するように構成されるメッセージ送信機と、
電子トリガー情報を受信するように構成される電子トリガー情報受信機であって、
前記メッセージ送信機は、前記電子トリガー情報を受信するのに応答して、前記電子メッセージ受信機に残りメッセージデータを送信するように更に構成され、前記残りメッセージデータは前記電子メッセージの残りを示す、電子トリガー情報受信機と、
前記電子メッセージ受信機に、前記残りメッセージデータを受信するまで前記予備メッセージデータを保持させ、その後、前記予備メッセージデータ及び前記残りメッセージデータを結合させるように、前記予備メッセージデータ及び前記残りメッセージデータをフォーマットするように構成されるデータフォーマッタと、
を備える、レイテンシを短縮するシステム。
【請求項４０】
プロセッサによって実行されるときに、前記プロセッサに請求項１〜１２のいずれか一項に記載の方法を実行させるプログラム命令を含む、プロセッサ可読有形媒体。
【請求項４１】
プロセッサによって実行されるときに、前記プロセッサに請求項１〜１２のいずれか一項に記載の方法を実行させる、プロセッサに指示するためのコンピュータプログラム。
【請求項４２】
プロセッサによって実行されるときに、前記プロセッサに請求項２４〜３０のいずれか一項に記載の方法を実行させるプログラム命令を含む、プロセッサ可読有形媒体。
【請求項４３】
プロセッサによって実行されるときに、前記プロセッサに請求項２４〜３０のいずれか一項に記載の方法を実行させる、プロセッサに指示するためのコンピュータプログラム。
【請求項４４】
プロセッサによって実行されるときに、前記プロセッサに請求項３９に記載の方法を実行させるプログラム命令を含む、プロセッサ可読有形媒体。
【請求項４５】
プロセッサによって実行されるときに、前記プロセッサに請求項３９に記載の方法を実行させる、プロセッサに指示するためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書の開示は包括的には電子メッセージを送信する方法及びシステムに関し、限定はしないが、特に、電子メッセージのレイテンシを短縮することに関し、その一例は、限定はしないが、証券取引所に送信される金融商品注文を含む。
【背景技術】
【０００２】
電子ネットワークを介して送信される電子メッセージのレイテンシは、状況によっては、有利な結果を確保する際の重要な要因になる場合がある。例えば、証券取引所によって完全な電子取引注文を最初に受信することによって、取引の優先権が確立される場合がある。その後、株式、デリバティブ、先物のような金融商品に関する有利な価格が利用される場合がある。別の例では、ネットワーク電子ゲームをする個人にとって有利な結果が、ゲームシステムによって受信されるゲームコマンドのレイテンシに基づいて決定される場合がある。例えば、賭けをするか、又はオークションにおいて値を付けるために、レイテンシの短いメッセージを送信できることは、良好な賭け率、良好な価格又は購入の成功を確保する確率を高める場合がある。
【発明の概要】
【０００３】
本明細書において開示されるのは、レイテンシを短縮する方法である。その方法は、電子メッセージを複数の送信用データパッケージに振り分けるステップを含む。複数のデータパッケージは、電子メッセージ受信機によって予想されたデータパッケージよりも多くのデータパッケージを有する。その方法は、電子メッセージ受信機に、複数のデータパッケージのうちの少なくとも１つを含む電子メッセージ部分を送信するステップを含む。その方法は、複数のデータパッケージの残りが電子メッセージ受信機に送信されることを示す電子トリガー情報を受信するステップを含む。その方法は、電子メッセージ受信機に、複数のデータパッケージの残りを送信するステップを含む。複数のデータパッケージはそれぞれ、複数のデータパッケージのうちの少なくとも１つが受信されるときに、電子メッセージ受信機に、複数のデータパッケージの残りを受信するのを予想して、複数のデータパッケージのうちの少なくとも１つを保持させ、その後、残りが受信されると、複数のデータパッケージを結合させるようにフォーマットされる。
【０００４】
複数のデータパッケージの残りを送信するための期間は、複数のデータパッケージを送信するための期間より短い。その結果として、電子メッセージを送信するレイテンシは、電子トリガー情報を受信した後に複数のデータパッケージの全てが送信された場合より実効的に短い。
【０００５】
一実施形態では、電子メッセージ受信機は、必ずしもそうではないが、取引所に位置する場合がある電子注文受信機である。電子メッセージは、金融商品取引注文、ドメイン名注文、電子商取引注文、又は概ね任意の注文のうちの少なくとも１つを含む電子注文情報を含むことができる。例えば、電子メッセージ部分は、プロトコルヘッダ情報、電子メッセージ受信機定義ヘッダ情報、及び電子メッセージの起点において定義される情報のうちの少なくとも１つを含むことができる。例えば、ヘッダ情報は、一般的に、全ての電子メッセージに共通の情報を含む。例えば、株式仲買人は、取引所に送信される金融商品注文における標準的な情報、例えば、仲買人識別情報、運用者識別情報、データ情報、顧客口座情報、又は概ね任意の適切な情報を含むことができる。可変データを（複数のデータパッケージの残りの形で）送信する前に、標準的な、又は所定のデータを（電子メッセージ部分の形で）送信することによって、実効的なレイテンシを短縮することができる。
【０００６】
証券取引所及びゲームサーバのようなサーバは、特定の数のデータパッケージに振り分けられた電子メッセージ、例えば、１つのインターネットプロトコル（ＩＰ)パケットによって搬送される１つの伝送制御プロトコル（ＴＣＰ）セグメントを受信することを予想する場合がある。したがって、サーバの予想に意図的に従わないことによって、レイテンシに関する利益を得ることができることは驚くことである。予想されるパケットより多くのパケットを送信することによって、例えば、余分な処理ステップ、リソース、処理時間及び全送信時間の全体的な増加を含む、オーバーヘッドを被ると仮定すると、レイテンシに関する利益が達成されることは更に驚くことである。さらに、幾つかの証券取引所プロトコルの中には、メッセージの送信側が更に努力しなければ、先に開示された方法に適合しないものもある場合がある。例えば、定期的な「ハートビート」を送信すること、つまり、破損したか、又は誤りのあるパケットを定期的に送信すること、複数の注文取消を送信すること、及び市場の最高価格範囲外にあるため容認されない注文を送信することのうちの少なくとも１つによって、そのパラメータが、必ずしもそうではないが、一般的にサーバによって定義される送信セッションを存続させることが必要な場合がある。これらの行為によって、更なるオーバーヘッドを被る場合がありながらも、レイテンシに関する利益に寄与する場合がある。
【０００７】
別の実施形態では、電子メッセージは、ゲームコマンドを示す電子ゲーム情報及び賭けを示す電子賭け情報のうちの少なくとも１つを含む。
【０００８】
必ずしもそうではないが、一般的に、電子メッセージ部分の送信と、複数のデータパッケージの残りの送信との間には或る時間がある。この時間は１０００ｎｓより長くすることができる。その時間は１０μｓより長くすることができる。その時間は１００μｓより長くすることができる。その時間は１ｍｓより長くすることができる。その時間は１秒より長くすることができる。その時間は６０秒より長くすることができる。その時間は１時間より長くすることができる。その或る時間は、１時間、６０秒、１秒、１ｍｓ、１００μｓ、１０μｓ及び１０００ｎｓのいずれか１つよりも短くすることができる。一般的に、その或る時間は状況によって決まり、電子メッセージ部分及び複数のデータパッケージの残りの送信時刻には相関がなくてもよい。
【０００９】
その方法の一実施形態は、電子メッセージ受信機が、メッセージが振り分けられると予想するデータパッケージの量を求めるステップを含む。その方法は、データパッケージの予想される量をサーバに電子的に問い合わせるステップを含むことができる。代替的には、その方法は、データパッケージの予想される量を提示するドキュメントを参照するステップを含むことができる。
【００１０】
一実施形態では、複数のデータパッケージの残りのうちの少なくとも幾つかの情報は、電子メッセージ部分を電子メッセージ受信機に送信するステップ後に作成される。例えば、株式仲買人が注文を開始するのを待つ理由はない場合がある。この結果、レイテンシを短縮することができる。
【００１１】
一実施形態では、複数のデータパッケージのうちの少なくとも１つは伝送制御プロトコルセグメントを含む。
【００１２】
一実施形態では、複数のデータパッケージの残りは別のＴＣＰセグメントを含む。別のＴＣＰセグメントは、そのＴＣＰセグメントより小さいシーケンス番号を有する場合がある。すなわち、それらのＴＣＰセグメントは、従来とは違う順序で送信される場合がある。複数のデータパッケージの残りは、複数の別のＴＣＰセグメントを含む場合がある。
【００１３】
ＴＣＰプロトコルは、パケット送達と、パケットが違う順序で受信された場合にパケットを正しい順序に組み立てることとを保証する。その結果として、ＴＣＰプロトコルを使用するのが適している場合がある。必ずしも全てではないが、多くの取引所サーバがＴＣＰプロトコルを使用する。
【００１４】
一実施形態では、電子メッセージ部分は少なくとも第１のＩＰフラグメントを含む。
【００１５】
一実施形態では、複数のデータパッケージの残りは少なくとも第２のＩＰフラグメントを含む。
【００１６】
ＩＰフラグメンテーションは、一般的に、アプリケーション及び/又はユーザが標準的なオペレーティングシステムによって利用できるようにできていない。ＩＰフラグメンテーションは、余分な処理を必要とする場合がある。したがって、ＩＰフラグメンテーションを用いて、レイテンシに関する利益を達成することができることは驚くことである。
【００１７】
一実施形態では、電子トリガー情報を受信するステップは、複数のデータパッケージの残りがそこから生成される残りメッセージ情報を受信するステップを含む。残りメッセージ情報は電子トリガー情報とすることができる。
【００１８】
本明細書において開示されるのは、レイテンシを短縮するシステムである。そのシステムは、電子メッセージ受信機に、電子メッセージが振り分けられた複数の送信用データパッケージのうちの少なくとも１つを含む電子メッセージ部分を送信するように構成されるメッセージ送信機を備える。複数のデータパッケージは、電子メッセージ受信機によって予想されるデータパッケージより多くのデータパッケージを有する。そのシステムは、複数のデータパッケージの残りが電子メッセージ受信機に送信されることになることを示す電子トリガー情報を受信するように構成される電子トリガー情報受信機を備える。メッセージ送信機は、電子メッセージ受信機に、複数のデータパッケージの残りを送信するように構成される。そのシステムは、複数のデータパッケージのうちの少なくとも１つが受信されるときに、電子メッセージ受信機に、複数のデータパッケージの残りを受信するのを予想して、この複数のデータパッケージのうちの少なくとも１つを保持させ、その後、この残りが受信されると、複数のデータパッケージを結合させるように、複数のデータパッケージのそれぞれをフォーマットするように構成されるデータフォーマッタを備える。
【００１９】
本システムの一実施形態は、前記複数のデータパッケージのうちの少なくとも１つを記憶するように構成されるデータ記憶装置を備える。
【００２０】
本システムの一実施形態は、前記電子メッセージ受信機が、前記メッセージが振り分けられると予想するデータパッケージの量を求めるように構成される電子メッセージ受信機予想決定器を備える。
【００２１】
一実施形態では、前記メッセージ送信機は前記電子メッセージ受信機とのＴＣＰセッションを確立するように構成される。
【００２２】
一実施形態では、前記メッセージ送信機は、電子メッセージ部分内にＴＣＰセグメントを含むように、かつ前記複数のデータパッケージの残り内に別のＴＣＰセグメントを含むように構成される。別のＴＣＰセグメントは前記ＴＣＰセグメントより小さなシーケンス番号を有することができる。
【００２３】
一実施形態では、前記メッセージ送信機は、前記電子メッセージ部分内に少なくとも第１のＩＰフラグメントを含むように構成される。
【００２４】
一実施形態では、前記メッセージ送信機は、前記複数のデータパッケージの残り内に少なくとも第２のＩＰフラグメントを含むように構成される。
【００２５】
一実施形態では、前記電子トリガー受信機は、前記複数のデータパッケージの残りがそこから生成される残りメッセージ情報を受信するように構成される。
【００２６】
一実施形態では、前記電子メッセージは、注文を示す電子注文情報、ゲームコマンドを示す電子ゲーム情報、及び賭けを示す電子賭け情報のうちの少なくとも１つを含む。
【００２７】
一実施形態では、前記電子メッセージ受信機は、電子注文受信機であり、前記電子メッセージは、金融商品取引注文、ドメイン名注文、及び電子商取引注文のうちの少なくとも１つを含む電子注文情報を含む。
【００２８】
本明細書において開示されるのはレイテンシを短縮する方法である。その方法は、電子メッセージ受信機に複数の代替メッセージ部分を送信するステップを含む。代替メッセージ部分はそれぞれ、電子メッセージの代替部分である。その方法は、複数の代替メッセージ部分のうちの選択された代替メッセージ部分が完了されることを示す電子トリガー情報を受信するステップを含む。その方法は、電子メッセージ受信機に、複数の代替メッセージ部分のうちの選択された代替メッセージ部分を補完する残りのメッセージ部分を送信するステップを含む。
【００２９】
例えば、株式仲買人は、複数の代替メッセージ部分を送信することができ、複数のメッセージ部分はそれぞれ、複数の代替メッセージ部分の他のメッセージ部分とは異なる未完了注文である。株式仲買人は、例えば、市場情報を用いて、市況に基づいて複数の注文のうちのどの注文を完了させるかを選択することができる。その結果として、株式仲買人は、株式価格、株式出来高、クライアントからの指示等との関連で幾つかの起こり得る不測の事態を利用することができる。
【００３０】
必ずしもそうではないが、一般的に、複数の代替メッセージ部分の送信と、残りのメッセージ部分の送信との間には或る時間がある。
【００３１】
一実施形態では、複数の代替メッセージ部分はそれぞれ、プロトコルヘッダ情報、電子メッセージ受信機定義ヘッダ情報、電子メッセージの起点において定義される情報のうちの少なくとも１つを含み、電子メッセージの起点において定義される情報の例は、限定はしないが、株式識別子、株式価格、注文タイプ情報（例えば、買い又は売り）を含む。
【００３２】
一実施形態では、前記残りメッセージ部分内の少なくとも幾つかの情報は、前記複数の代替メッセージ部分を送信するステップ後に作成される。
【００３３】
一実施形態では、前記複数の代替メッセージ部分はそれぞれ、それぞれのＩＰフラグメントを含む。前記残りメッセージ部分は別のＩＰフラグメントを含むことができる。
【００３４】
一実施形態では、前記電子トリガー情報を受信するステップは、前記残りメッセージ部分がそこから生成される残りメッセージ情報を受信するステップを含む。
【００３５】
一実施形態では、前記電子メッセージは、注文を示す電子注文情報、ゲームコマンドを示す電子ゲーム情報、及び賭けを示す電子賭け情報のうちの少なくとも１つを含む。
【００３６】
一実施形態では、前記電子メッセージ受信機は電子注文受信機であり、前記電子メッセージは、金融商品取引注文、ドメイン名注文、及び電子商取引注文のうちの少なくとも１つを含む電子注文情報を含む。
【００３７】
本明細書において開示されるのは、レイテンシを短縮するシステムである。そのシステムは、電子メッセージ受信機に、複数の代替メッセージ部分を送信するように構成されるメッセージ送信機を備える。代替メッセージ部分はそれぞれ、電子メッセージの代替部分である。そのシステムは、複数の代替メッセージ部分のうちの選択されたメッセージ部分が完了されることを示す電子トリガー情報を受信するように構成される電子トリガー情報受信機を備える。メッセージ送信機は、電子メッセージ受信機に、複数の代替メッセージ部分のうちの選択されたメッセージ部分を補完する残りメッセージ部分を送信するように構成される。
【００３８】
本システムの一実施形態は、前記複数の代替メッセージ部分を記憶するように構成されるデータ記憶装置を備える。
【００３９】
一実施形態では、前記複数の代替メッセージ部分はそれぞれ、プロトコルヘッダ情報、電子メッセージ受信機定義ヘッダ情報、及び前記電子メッセージの起点において定義される情報のうちの少なくとも１つを含む。
【００４０】
一実施形態では、前記複数の代替メッセージ部分はそれぞれ、それぞれのＩＰフラグメントを含み、前記残りメッセージ部分は別のＩＰフラグメントを含む。
【００４１】
一実施形態では、前記電子トリガー情報受信機は、前記残りメッセージ部分がそこから生成される前記残りメッセージ情報を受信するように構成される。
【００４２】
一実施形態では、前記電子メッセージは、注文を示す電子注文情報、ゲームコマンドを示す電子ゲーム情報、及び賭けを示す電子賭け情報のうちの少なくとも１つを含む。
【００４３】
一実施形態では、前記電子メッセージ受信機は電子注文受信機であり、前記電子メッセージは、金融商品取引注文、ドメイン名注文、及び電子商取引注文のうちの少なくとも１つを含む電子注文情報を含む。
【００４４】
本明細書において開示されるのは、レイテンシを短縮する方法である。その方法は、電子メッセージ受信機に、電子メッセージの未完了部分を示す予備メッセージデータを送信するステップを含む。その方法は、電子メッセージの残りを示す残りメッセージデータが送信されることを示す電子トリガー情報を受信するステップを含む。その方法は、電子トリガー情報を受信するのに応答して、電子メッセージ受信機に、残りメッセージデータを送信するステップを含む。送信された予備メッセージデータ及び送信された残りメッセージデータは、残りメッセージデータを受信するまで電子メッセージ受信機に予備メッセージデータを保持させ、その後、予備メッセージデータ及び残りメッセージデータを結合させるようにフォーマットされる。
【００４５】
本明細書において開示されるのは、レイテンシを短縮するシステムである。そのシステムは、電子メッセージ受信機に、電子メッセージの未完了部分を示す予備メッセージデータを送信するように構成されるメッセージ送信機を備える。そのシステムは、電子トリガー情報を受信するように構成される電子トリガー情報受信機を備える。そのシステムは、メッセージ送信機が、電子トリガー情報を受信するのに応答して、電子メッセージ受信機に残りメッセージデータを送信するように更に構成されるステップを含む。残りメッセージデータは、電子メッセージの残りを示す。そのシステムは、残りメッセージデータを受信するまで電子メッセージ受信機に予備メッセージデータを保持させ、その後、予備メッセージデータ及び残りメッセージデータを結合させるように、予備メッセージデータ及び残りメッセージデータをフォーマットするように構成されるデータフォーマッタを備える。
【００４６】
上記の任意の方法の上記の任意のステップをプロセッサにおいて実行することができる。
【００４７】
上記の方法、システム、プロセッサ可読有形媒体及びプログラムの１つ又は複数の任意の特徴を組み合わせることができる。
【００４８】
ここで、メッセージを送信する方法及びメッセージを送信するシステムの実施形態が、一例にすぎないが、添付の図面を参照しながら説明されることになる。
【図面の簡単な説明】
【００４９】
【図１】レイテンシを短縮する方法の一実施形態の流れ図である。
【図２】図１及び/又は図３の方法のステップを実行することができる、レイテンシを短縮するシステムの一実施形態の概略図である。
【図３】レイテンシを短縮する方法の別の実施形態の流れ図である。
【図４】図２のシステムのアーキテクチャの概略図である。
【図５】図１及び/又は図３の方法のステップを実行することができる、レイテンシを短縮するシステムの別の実施形態を示す図である。
【図６】図１及び/又は図３の方法のステップを実行することができる、レイテンシを短縮するシステムの更に別の実施形態を示す図である。
【図７】メッセージレイテンシ計算のグラフ表示を示す図である。
【発明を実施するための形態】
【００５０】
図１は、レイテンシを短縮する方法の一実施形態の流れ図を示しており、その方法は全体として１０によって示される。図２は、方法１０のステップを実行することができる、レイテンシを短縮するシステム２０の一実施形態の概略図を示す。
【００５１】
図２の実施形態において、システム２０は、オーストラリア証券取引所又は韓国証券取引所のような金融商品取引所２２と、金融商品取引所２２に後に送信するために注文を作成するように構成されるコンピュータ２４との間の電子ゲートウエイの形をとる。幾つかの他の実施形態では、システム２０はコンピュータ２４に統合される。
【００５２】
コンピュータ２４はネットワーク２６を介してシステム２０と通信する。ネットワーク２６は、例えば、ローカルエリアネットワークとすることができる。ローカルエリアネットワークは、例えば、イーサネット（登録商標）、ＩＮＦＩＮＩＢＡＮＤ、ＩＳＤＮ、ＷｉＦｉ若しくは任意の他の適切なネットワーク、又はＴ１／Ｅ１ラインとすることができる。代替的には、ネットワーク２６はインターネットのようなワイドエリアネットワークとすることができる。他の実施形態では、コンピュータはそれぞれ、シリアル、ＵＳＢ、ＦｉｒｅＷｉｒｅ、又はＴｈｕｎｄｅｒｂｏｌｔ接続、又は概ね任意の適切な手段によって、システム２０への一対一接続を有することができる。システム２０は、必ずしも全ての実施形態においてではないが、この実施形態では、イーサネット（登録商標）又はＩＮＦＩＮＩＢＡＮＤのようなローカルエリアネットワーク２７を介して、金融商品取引所２２にある電子注文受信機の形の電子メッセージ受信機２８と通信するが、任意の適切なネットワーク又は一対一接続が用いられてもよい。
【００５３】
システム２０は、バス３３を介して通信する複数のユニット（３０、３１、３２、３４、３６、３８）を有する。それらのユニットのうちの１つはメッセージ送信機３２である。メッセージ送信機によって送信される電子メッセージは、複数のデータパッケージに振り分けられる。データパッケージの例は、限定はしないが、ＩＰパケット、ＩＰフラグメント、ＴＣＰセグメント、ＵＤＰパケット及びアプリケーション定義パケットを含む。メッセージ送信機３２は、電子メッセージ受信機２８に、複数のデータパッケージのうちの少なくとも１つを含む電子メッセージ部分を送信するように構成される。複数のデータパッケージのうちの少なくとも１つは、一般的に、電子メッセージの未完了部分である。電子メッセージ受信機は、複数の送信用データパッケージ内のデータパッケージの量より少ないデータパッケージの量でメッセージが送達されるのを予想している場合がある。例えば、電子メッセージ受信機は、１つのデータパッケージのみを予想している場合があり、複数のデータパッケージは２つのデータパッケージを含む場合がある。
【００５４】
例えば、図１の実施形態では、電子メッセージの電子メッセージ部分（「未完了部分」）は、注文が変わっても異ならない証券取引所定義プロトコルヘッダデータを含むことができる。（予備メッセージデータを有する）未完了部分は、注文ごとに株式仲買人が使用する情報を含むことができる。予備メッセージデータは、ＩＰプロトコル及び/又はＴＣＰプロトコルによって定義されるヘッダデータのような、他のプロトコルヘッダデータを含むことができる。予備メッセージデータは、まだ定義されていない幾つかの可変情報の代わりに、プロキシ情報を含むことができる。例えば、株式仲買人識別情報が、システム２０によって定義されるプロキシ識別子で置き換えることができる。一実施形態では、プロキシ識別子は、数字列の形をとることができるが、任意の適切な形を用いることができる。そのシステムは、プロキシ識別情報を記憶装置３８又は他の記憶装置に記憶することができる。データフォーマッタは、例えば、記憶装置３８からプロキシ情報を読み出し、その情報を電子メッセージ部分に入れることができる。その後、株式仲買人識別情報は、後の時点で正しい株式仲買人識別情報を得るために、システム（例えば、メッセージ送信機３８）によってプロキシ情報に関連付けることができる。他のプロキシ情報が、他の情報、例えば、仲買人定義情報、又はプロキシ情報によって置き換えることができる任意の他の情報に取って代わることができる。
【００５５】
特定の注文に特有の価格情報、株式情報及び数量情報のような可変情報が、電子メッセージ受信機２８によって電子メッセージ部分が受信された後の時間に続くことができる。例えば、電子メッセージ部分は、注文セッションハートビート（例えば、メッセージ受信機のプロトコルによって定義される）後に送信することができ、可変情報は、例えば、後続のハートビートの前のいずれかの時点において、複数のデータパッケージの残りの形で続くことができる。その時間は、例えば、１μｓから１時間までのいずれか、又はそれ以上の時間とすることができるが、この範囲外の時間を用いることもできる。
【００５６】
システム２０は電子トリガー情報受信機３０を有する。電子トリガー情報受信機３０は、トリガー情報を受信するように構成される。図２の実施形態では、トリガー情報は、電子注文の残りを示す残りメッセージ情報である。電子注文の残りは一般的に、例えば、特定の注文に特有の可変情報を含む。しかしながら、代替の実施形態では、トリガー情報は、複数のデータパッケージの残りから区別することができる。例えば、トリガー情報は、株式実績若しくは株式価格についての情報、有益な企業報告、又は株式価値の将来の変化を示すことができる他の情報とすることができる。
【００５７】
電子トリガー情報受信機３０は、受信されたときに残りメッセージ情報から複数のデータパッケージの残りを生成するように構成される残りデータ発生器３１を備える。
【００５８】
メッセージ送信機３２は、電子トリガー情報受信機３０によって電子トリガー情報が受信されるのに応答して、電子メッセージ受信機２８に複数のデータパッケージの残りを送信するように更に構成される。
【００５９】
システム２０は、複数のデータパッケージの残りを受信するまで電子メッセージ受信機２８に電子メッセージ部分を保持させ、その後、電子メッセージ部分と、複数のデータパッケージの残りとを結合させるように、電子メッセージ部分及び複数のデータパッケージの残りをフォーマットするように構成されるデータフォーマッタ３４を備える。例えば、メッセージ受信機２８とシステム２０との間にＴＣＰセッションが確立することができる。ＴＣＰプロトコルは、公的に入手可能な関連するインターネットエンジニアリングタスクフォースＲＦＣ文書において記述されている。ＴＣＰは、受信された全バイトが送信されたバイトと同一であり、かつ正しい順序であることを保証する、信頼性のあるストリーム送達サービスである。複数のデータパッケージはそれぞれ、ＴＣＰセグメントペイロードを伴う本体を有するそれぞれのＩＰパケットを含むことができる。ＩＰパケットは、データフォーマッタ３４によって作成することができる。各ＴＣＰセグメントは、電子メッセージのそれぞれの部分の形でペイロードを更に有することができる。メッセージは、例えば、注文、指示又はコマンドとすることができる。すなわち、注文はＴＣＰセグメントに振り分けられる。その後、データ送信機は、ＴＣＰパケットを電子メッセージ受信機２８に送信する。ＴＣＰセグメントは、ＴＣＰプロトコル仕様書に従って順次に番号を付すことができる。メッセージ受信機は、ＴＣＰセグメントのシーケンス番号を用いて、ペイロードを正しい順序に組み立て直す。メッセージ受信機のＴＣＰ層が当初に送信された一連のバイトを組み立て直したら、ＴＣＰ層は一連のバイトを、そのメッセージを処理及び/又は実行するアプリケーションプログラムに渡す。
【００６０】
電子メッセージ部分の内容は、実際には、複数のデータパッケージの残りの内容後に電子メッセージ受信機２８によって予想される場合がある。これに対応するために、データフォーマッタは、メッセージ受信機が正しい論理的順序においてＴＣＰセグメントを再順序付けることができるように、非順次のシーケンス番号を用いて、一連のパケットを送信することになる。ＴＣＰプロトコルに従う電子メッセージ受信機２８は、受信されたＴＣＰセグメントをシーケンス番号の順序において配列する。
【００６１】
上記の例は、トランスポート層（ＴＣＰが動作する層）内のメッセージの振分けを記述するが、そのメッセージは開放型システム間相互接続（ＯＳＩ）モデルの別の層内で、例えば、ＩＰを使用するネットワーク層からアプリケーション層までにおいて振り分けられることは理解されよう。選択された層に応じて、適切なパケットベースのプロトコルを選択することができる。
【００６２】
別の実施形態では、データフォーマッタは、複数のデータパッケージをＩＰフラグメントとしてフォーマットするように構成される。ＩＰフラグメンテーションは、例えば、インターネットエンジニアリングタスクフォース文書ＤＡＲＰＡインターネットプログラムプロトコル仕様書ＲＦＣ７９１及びＲＦＣ８１５において詳述される。一例では、電子メッセージ受信機２８は、第１のＩＰフラグメントを受信すると、第２のＩＰフラグメントを予想して、第１のＩＰフラグメントを保持し、第２のＩＰフラグメントが受信されるとき、第１のＩＰフラグメント及び第２のＩＰフラグメントのペイロードを結合する。
【００６３】
電子メッセージ部分のうちの少なくとも幾つか（又は全て）が、必ずしも全ての実施形態においてではないが、この実施形態では、例えば、ハードディスクドライブ又はＦＬＡＳＨの形をとる不揮発性データ記憶装置３８にローカルに記憶することができる。代替的には、電子メッセージ部分のうちの少なくとも幾つか（又は全て）は、ＲＡＭ、ＤＲＡＭ又は何らかの他の形の揮発性メモリ内にローカルに記憶することができる。トリガー情報受信機３０は、この実施形態では、電子メッセージ部分受信機でもある。電子メッセージ部分が受信され、その後、不揮発性データ記憶装置又は揮発性データ記憶装置に記憶することができる。
【００６４】
複数の実施形態が、例えば、余分な処理ステップ、リソース、処理時間及び全送信時間の全体的な増加を含む、オーバーヘッドを被る場合がある。さらに、取引所プロトコルの中には、メッセージの送信側が更に努力しなければ、実施形態に適合しないものがある場合がある。例えば、トランスポート層及び/又はアプリケーション層においてセッションを持続することが必要な場合がある。サーバは、必ずしもそうではないが、一般的にアプリケーション層セッションを定義する。例えば、定期的な「ハートビート」を送信すること、破損したか、又は誤りのあるパケットを定期的に送信すること、つまり、複数の注文取消を送信すること、及び市場の最高価格範囲外にあるため容認されない注文を送信することのうちの少なくとも１つによって、アプリケーション定義セッションを存続させることができる。これらの行為によって、更なるオーバーヘッドを被る場合があり、更に驚くことにレイテンシに関する利益に寄与する場合がある。
【００６５】
その例が、限定はしないがルータ及びスイッチを含む、記憶デバイス及び転送デバイスを有する、システム２０と電子メッセージ受信機２８との間のリンクは、本発明の少なくとも幾つかの実施形態に従ってメッセージが小さな部分に分割されるときに、バッファの現象によるレイテンシの短縮を被ることが理解されよう。
【００６６】
図３は、レイテンシを短縮する方法の別の実施形態３９の流れ図を示す。方法３９のステップにおいて、複数の代替メッセージ部分が電子メッセージ受信機に送信される。代替メッセージ部分はそれぞれ、１つの電子メッセージの代替部分である。別のステップでは、電子トリガー情報が受信される。電子トリガー情報は、複数の代替メッセージ部分のうちの選択された代替メッセージ部分が完了されることを指示する。別のステップでは、残りメッセージ部分が電子メッセージ受信機に送信される。残りメッセージ部分は、複数の代替メッセージ部分のうちの選択された代替メッセージ部分を補完する。
【００６７】
例えば、株式仲買人は、複数の代替メッセージ部分を送信することができ、複数のメッセージ部分はそれぞれ、複数の代替メッセージ部分の他のメッセージ部分とは異なる未完了注文である。株式仲買人は、例えば、市場情報を用いて、市況に基づいて複数の注文のうちのどの注文を完了させるかを選択することができる。その結果として、株式仲買人は、株式価格、株式出来高、クライアントからの指示等との関連で幾つかの起こり得る不測の事態を利用することができるであろう。
【００６８】
図４は、システム２０内のプロセッサ４０のアーキテクチャの概略図を示す。プロセッサは、例えば、図１及び図３の方法のステップを実行することができる。その方法は、プロセッサに指示するためにプログラム内にコーディングすることができる。そのプログラムは、この実施形態では、ハードディスクドライブの形の不揮発性メモリ４８に記憶されるが、ＦＬＡＳＨ、ＥＰＲＯＭ、又はプロセッサの内部若しくは外部にある任意の他の形の有形媒体に記憶することができる。プログラムは、必ずしもそうではないが、一般的には、プロセッサにインストールされるときに図１（又は図３）の方法のステップが実行されるように協働する複数のソフトウェアモジュールを含む。ソフトウェアモジュールは、少なくとも部分的には、上記の方法のステップ又はシステムの構成要素に対応する。それらの機能又は構成要素は、コンパートメント化して複数のモジュールにすることもできるし、幾つかのソフトウェアモジュールにわたって断片化することもできる。それらのソフトウェアモジュールは、任意の適切な言語を用いて形成することができ、その例は、Ｃ＋＋及びアセンブリを含む。プログラムは、アプリケーションプログラムインターフェース、又は任意の他の適切なソフトウェア構造の形をとることができる。プロセッサ４０は、バス４４を介して、約１ＧＢのランダムアクセスメモリ４６と、約１ＧＢの容量を有するハードディスクドライブ４８のような不揮発性メモリ若しくは固体不揮発性メモリとに接続される、ＩＮＴＥＬ  ＸＥＯＮ又はＡＭＤ  ＯＰＴＥＲＯＮマイクロプロセッサのようなマイクロプロセッサ４２、又は類似の適切なマイクロプロセッサ４２を含む。代替的な論理デバイスをマイクロプロセッサ４２の代わりに用いることができる。適切な代替の論理デバイスの例は、特定用途向け集積回路、ＦＰＧＡ、及びデジタル信号処理ユニットを含む。これらの実施形態のうちの幾つかは、更なるレイテンシ短縮のために、完全にハードウェアに基づくことができる。プロセッサ４０は、１つ又は複数のネットワークインターフェース及びユニバーサルシリアルバスを含むことができる入力／出力インターフェース５０を有する。プロセッサは、ヒューマンマシンインターフェース５２、例えば、マウス、キーボード、ディスプレイ等を支援することができる。
【００６９】
図５は、電子メッセージを送信するシステム６０の別の実施形態を示す。システム６０は、図１（又は図３）の方法のステップを実行するように構成することができる。ＣＰＵ６２（例えば、ＸＥＯＮプロセッサ）が、例えば、市場データ、企業データ、ニュース又は任意の他の適切な刺激データの形をとる刺激データ６４を受信するように構成される。ＣＰＵ６２は、システム６０のネットワークインターフェースを介して刺激データを受信することができる。ＣＰＵは、システム６０の永続記憶装置６８からＣＰＵにロードされるプログラムを実行し、それにより、刺激データを受信するのに応答して、ＣＰＵは、フィールドプログラマブルゲートアレイ７４（ＦＰＧＡ）に送信されるトリガー信号７０を生成する。ＦＰＧＡは、例えば、図１又は図３の方法のステップを実行するように構成される。その後、ＦＰＧＡは、イーサネット（登録商標）又はＩＮＦＩＮＩＢＡＮＤのようなネットワーク７２を介して、複数のデータパッケージの残り（又は残りメッセージ部分）を送信する。ＦＰＧＡは、必ずしも全ての実施形態においてではないが、この実施形態では、トリガー信号を受信する前に、電子メッセージ部分（又は複数の代替メッセージ部分）を送信している。
【００７０】
図６は、電子メッセージを送信するシステム８０の更に別の実施形態を示す。システム８０は、図１（又は図３）の方法のステップを実行するように構成され、そのシステムは、コンピューティングデバイスのための拡張デバイスの形をとる。拡張デバイスは、従来のＰＣＩ、ＩＳＡ、ＶＥＳＡ、ＰＣＩ  Ｅｘｐｒｅｓｓ等の任意の標準規格品からなることができる。この実施形態では、拡張デバイスは、パーソナルコンピュータ又はサーバのようなコンピューティングデバイス内の拡張スロットによって収容されるように構成されるＰＣＩ  Ｅｘｐｒｅｓｓ拡張カードの形をとる。従来のＰＣＩ（ＰＣＩは周辺構成要素相互接続（Peripheral Component Interconnect）を表し、ＰＣＩローカルバス標準規格の一部であり、多くの場合にＰＣＩに短縮される）は、コンピューティングデバイス内にハードウェアデバイスを取り付けるためのコンピュータバスである。別の実施形態では、拡張デバイスは、ＰＣＩ仕様書において平面デバイスと呼ばれる、マザーボード上にはめ込まれる集積回路の形をとることができる。一般的に、拡張デバイスは任意の適切な形をとることができる。システムの幾つかの実施形態において、ＰＣＩ−Ｘ及びＰＣＩ  Ｅｘｐｒｅｓｓを用いることができる。ＰＣＩ仕様書はバスの物理的サイズ（回路基板エッジの電気的コンタクトのサイズ及び間隔を含む）、電気的特性、バスタイミング、プロトコルを網羅する。その仕様書はＰＣＩ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ（ＰＣＩ−ＳＩＧ）から購入することができる。
【００７１】
システム８０は、ＦＰＧＡ８２と、カード８６上に取り付けられるポート８１を含むネットワークハードウェアとを有する。このカードは、サーバ内のＰＣＩ  ｅｘｐｒｅｓｓスロットによって収容されるように構成されるＰＣＩ  ｅｘｐｒｅｓｓコネクタ８８も含み、サーバの一例は、限定はしないが、例えば、Ｄｅｌｌ  Ｒ７２０サーバ、又はパーソナルコンピュータ、又は概ね任意の適切なコンピューティングデバイスを含む。ＦＰＧＡは、ＰＣＩ  ｅｘｐｒｅｓｓコネクタ８８を介して、システム８０がホストされるコンピュータからトリガー情報を受信することができる。代替的には、ＦＰＧＡ８２は、システム８０がホストされるコンピュータから刺激データを受信することができ、その場合、刺激データを踏まえて、ＦＰＧＡが、トリガー情報が生成されるべきであるかを判断する。トリガー情報は、ＦＰＧＡ内のトリガー情報生成モジュール８９からＦＰＧＡ内のメッセージ送信機モジュール９０に送信することができる。
【００７２】
ＦＰＧＡ８２は、必ずしもそうではないが、一般的には、図１（又は図３）の方法のステップが実行されるように協働する複数のモジュールを備える。図５の実施形態では、モジュールは、少なくとも部分的に、上記のような方法のステップ又はシステムの構成要素に対応する。機能又は構成要素は、コンパートメント化して複数のモジュールにすることもできるし、幾つかのモジュールにわたって断片化することもできる。モジュールは任意の適切なハードウェア記述言語を用いて規定することができ、その言語の例は、限定はしないが、ＶＨＤＬ及びＶＥＲＩＬＯＧ、ＳＹＳＴＥＭＶＥＲＩＬＯＧ、ＳＹＳＴＥＭ−Ｃ及びＬＡＢＶＩＥＷ  ＦＰＧＡアドオンモジュールを含む。
【００７３】
幾つかの実施形態では、ＦＰＧＡは、直接取り付けられたイーサネット接続を介して注文を送信することができる。イーサネット接続の一例は、限定はしないが、１Ｇｂ／ｓイーサネットを含む。その接続は取引所によって設けられる場合がある。
【００７４】
他の実施形態では、ＣＰＵ又はＦＰＧＡは省くことができ、代わりに、特定用途向け集積回路（ＡＳＩＣ）又はデジタルシグナルプロセッサを用いることができる。特定用途向け集積回路は、特に少ないレイテンシを与えることができる。
【００７５】
上記のように、そのシステムは、ハードウェアにおいて直接実装することができる。これは、ソフトウェアのみの解決策より優れた幾つかの利点を与えることができる。これらの利点は、
・ネットワークパケットが送信される前にハードウェアと最初に通信しなければならないソフトウェアが存在しないので、レイテンシが更に少ないこと、
・パケットの再順序付けを阻止する場合がある従来のオペレーティングシステム上で実行されるソフトウェアでは達成するのが困難であるか、又は不可能である場合がある、任意の順序においてパケットを送信できること、
・極めて少ないレイテンシになるように、例えば、その一例がＴＴＬ互換デジタル論理信号であるエッジトリガー信号に、トリガー情報を符号化できること、
を含むことができる。
【００７６】
ハードウェア及びソフトウェアのいずれの実施形態も、トリガーは、メッセージ全体又は注文全体より、短い送信時間を必要とすることができる。
【００７７】
送信例
証券取引所への注文の第１のバイトは以下のＴＣＰヘッダを含むことができる。
・メッセージアプリケーションプログラムインターフェースタイプ又はプロトコル識別子−８バイト−「ＰＲＯＴｖ１．０」のような定記号列の形をとる。
・メッセージ本体長−６バイト−あらかじめわかっている。
・トランザクションコード（メッセージタイプを識別する）−１１バイト−あらかじめわかっている（特定の注文タイプがトリガーされると仮定する）。
・シーケンス番号−１１バイト−単に、用いられることになる次のシーケンス番号であるので、あらかじめ計算することができる。
・メンバー番号（注文の発信元、例えば、仲買人を識別する）−５バイト−注文を送信するメンバーの場合に一定。
・受信メンバー番号−１０バイト−用いられない。定数として設定される。
・送信メンバー番号−１０バイト−用いられない。定数として設定される。
【００７８】
上記の例では、証券取引所メッセージ受信機定義ヘッダは、全部で６１バイトである。上記のフィールドの全てを、あらかじめ送信する、すなわち、複数のデータパッケージの残り（又は残りメッセージ部分）を送信する前か、又は作成すらする前に、予備メッセージデータとして送信することができる。
【００７９】
あらかじめ知ることができず、それゆえ、複数のデータパッケージの残り（又は残りメッセージ部分）に含むのに適した、注文メッセージにおいて後に生じる幾つかのフィールドの一例は：
・発行コード−どの特定の商品が注文されるかわからない場合がある。
・注文量−どのくらいの特定の注文が生じるかわからない場合がある。
・注文価格−その商品に対して提案されるか、又は求められる価格がわからない場合がある。
【００８０】
注文送信の最も遅い部分は、遅い、例えば、４Ｍｂ／ｓの伝送路を介しての送信とすることができる。完全な注文を伴うＴＣＰメッセージは３８２データバイトを有する。イーサネットヘッダサイズは１４バイトである。ＩＰヘッダサイズは２０バイト（オプションなし）である。ＴＣＰヘッダサイズは２０バイト（オプションなし）である。それゆえ、１つのＴＣＰメッセージにおいて送信される完全な注文は、３８２＋２０＋２０＋１４バイトになるであろう。これは全部で４３６バイトであり、４Ｍｂ／ｓ伝送路を介して完全に送信するのに８７２μｓかかる。
【００８１】
標準的なＴＣＰ接続を用いて、あらかじめわかっている上記のフィールドを送信する場合には：
・電気メッセージ部分は１４＋２０＋２０＋６１バイト＝１１５バイトになり、４Ｍｂ／ｓリンクを介して送信するのに２２９μｓかかる。
・複数のデータパッケージの残りは１４＋２０＋２０＋（３８２−６１）バイト＝３７５バイトになり、４Ｍｂ／ｓリンクを介して送信するのに７５０μｓかかる。
【００８２】
それゆえ、注文メッセージは、電子メッセージ部分と、独立して送信される複数のデータパッケージの残りとに分割されないメッセージより８７２−７５０μｍ＝１２２μｓだけ早く、受信機によって完全に受信することができる。
【００８３】
上記の時間計算は、数多くの取引所によって用いられる標準的なレイテンシ記述ごとに説明することができる。注文は、注文メッセージの最後の部分が取引所によって受信されるときに、すなわち、注文が完全に受信されるときに、取引所によって受信されたと見なされる。標準的なレイテンシ記述を用いるとき、１つの実施形態が負のレイテンシを達成することができる。図７を参照すると、一例では：
・ｔ＝０μｓにおいてトリガーが送信されるとする。
・Ｔ１において、トリガーが完全に受信される。これは、ｔ＝０後の（全送信時間に対して）わずかな短い時間であり、負のレイテンシを達成すると仮定する。
・それゆえ、８７２μｓの全送信時間を有するパケットの場合（そして、全ての他の遅延が一定か、又は０であると仮定して）、取引所は通常、従来技術による技法を用いて、ｔ＝Ｔ１＋８７２μｓにおいて完全なパケットを受信することになる。
・電子メッセージの一部が電子メッセージ部分として送信されており、複数のデータパケットの残りのための送信時間が７５０μｓまで短縮される場合には、取引所は、ｔ＝Ｔ１＋７５０μｓにおいて完全なパケットを受信することになる。
・Ｔ１＋７５０μｓは、Ｔ１＋８７２μｓより１２２μｓ前である。−負のレイテンシ方式は、その注文が取引所に直接送信された場合よりも、１２２μｓ−Ｔ１だけ早く注文パケットの終わりを送達する。
【００８４】
例えば、図３の実施形態を用いて、類似のレイテンシに関する利益を達成できることは理解されよう。
【００８５】
必ずしもそうではないが、一般的に、負のレイテンシ値の大きさは、リンクビット速度が遅くなるのに応じて大きくなる。
【００８６】
本発明の趣旨及び範囲から逸脱することなく、上記の実施形態に対する変更形態及び／又は変更形態を実施することができる。それゆえ、本実施形態は、あらゆる点において、例示と見なされるべきであり、制限と見なされるべきではない。
【００８７】
本明細書において記述される従来技術は、もし記述されていても、それらの従来技術が任意の管轄区域において共通の一般知識の一部を形成することを認めるものと解釈されるべきではない。
【００８８】
添付の特許請求の範囲において、また、本発明の前述の説明において、明確な文言又は必要な示唆により別段に文脈が要求する場合を除き、用語「備える、含む（comprise）」又はその変形形は包括的な意味で、すなわち、本発明の種々の実施形態における更なる特徴の存在又はその追加を排除するためではなく、特徴の存在を特定するために用いられている。
【図１】
2015520528.tif 000003
【図２】
2015520528.tif 000004
【図３】
2015520528.tif 000005
【図４】
2015520528.tif 000006
【図５】
2015520528.tif 000007
【図６】
2015520528.tif 000008
【図７】
2015520528.tif 000009
【国際調査報告】
2015520528.tif 000010
2015520528.tif 000011
2015520528.tif 000012
2015520528.tif 000013