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

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

▶ 日本電信電話株式会社の特許一覧

特許7597113メッセージ処理サーバ、プログラムおよびメッセージ処理方法
<>
  • 特許-メッセージ処理サーバ、プログラムおよびメッセージ処理方法 図1
  • 特許-メッセージ処理サーバ、プログラムおよびメッセージ処理方法 図2
  • 特許-メッセージ処理サーバ、プログラムおよびメッセージ処理方法 図3
  • 特許-メッセージ処理サーバ、プログラムおよびメッセージ処理方法 図4
  • 特許-メッセージ処理サーバ、プログラムおよびメッセージ処理方法 図5
  • 特許-メッセージ処理サーバ、プログラムおよびメッセージ処理方法 図6
  • 特許-メッセージ処理サーバ、プログラムおよびメッセージ処理方法 図7
  • 特許-メッセージ処理サーバ、プログラムおよびメッセージ処理方法 図8
  • 特許-メッセージ処理サーバ、プログラムおよびメッセージ処理方法 図9
  • 特許-メッセージ処理サーバ、プログラムおよびメッセージ処理方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】メッセージ処理サーバ、プログラムおよびメッセージ処理方法
(51)【国際特許分類】
   G06Q 40/04 20120101AFI20241203BHJP
【FI】
G06Q40/04
【請求項の数】 8
(21)【出願番号】P 2022532170
(86)(22)【出願日】2020-06-25
(86)【国際出願番号】 JP2020024957
(87)【国際公開番号】W WO2021260872
(87)【国際公開日】2021-12-30
【審査請求日】2022-10-25
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】新井 薫
(72)【発明者】
【氏名】佐久間 大樹
(72)【発明者】
【氏名】杉山 隆太
【審査官】滝谷 亮一
(56)【参考文献】
【文献】特開平09-244984(JP,A)
【文献】米国特許出願公開第2020/0034929(US,A1)
【文献】特開2012-129857(JP,A)
【文献】国際公開第2016/067335(WO,A1)
【文献】特開平10-283276(JP,A)
【文献】中国特許出願公開第111092717(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
処理対象となる処理依頼メッセージに付与される送信時刻であるタイムスタンプを含む期間である送信期間に対応する所定の受信期間に受信した処理依頼メッセージのなかで前記タイムスタンプが当該送信期間に含まれる処理依頼メッセージを、前記タイムスタンプの時刻順に並び変える処理順序決定部と、
並び替えられた順に前記処理依頼メッセージを処理する処理実行部と、を備え、
前記送信期間の開始時刻は、前記所定の受信期間の開始時刻より前記処理依頼メッセージの最小転送遅延時間前であり、
前記送信期間の終了時刻は、前記所定の受信期間の終了時刻より前記処理依頼メッセージの最大転送遅延時間前である
とを特徴とするメッセージ処理サーバ。
【請求項2】
前記処理依頼メッセージが送信されて前記メッセージ処理サーバが受信するまでの転送遅延時間を、前記処理依頼メッセージの送信元ごとに測定する遅延測定部と、
前記受信期間の長さを、前記転送遅延時間の最大値と最小値との差に応じて設定する受信期間長決定部とをさらに備える
ことを特徴とする請求項1に記載のメッセージ処理サーバ。
【請求項3】
前記受信期間長決定部は、前記受信期間の長さを、前記転送遅延時間の変化度に応じて設定する
ことを特徴とする請求項2に記載のメッセージ処理サーバ。
【請求項4】
前記処理順序決定部は、前記処理依頼メッセージのタイムスタンプと受信時刻との差が、当該処理依頼メッセージの送信元の転送遅延時間から所定値を減じた値より小さい処理依頼メッセージを処理対象から除外する
ことを特徴とする請求項2に記載のメッセージ処理サーバ。
【請求項5】
前記遅延測定部は、前記処理依頼メッセージを所定長の期間送信していない送信元については前記転送遅延時間を測定しない
ことを特徴とする請求項2に記載のメッセージ処理サーバ。
【請求項6】
所定の受信期間に受信したタイムスタンプ付きの処理依頼メッセージのなかで前記タイムスタンプが所定の受付期間の処理依頼メッセージを、前記タイムスタンプの時刻順に並び変える処理順序決定部と、
並び替えられた順に前記処理依頼メッセージを処理する処理実行部と、
前記処理依頼メッセージが送信されて受信されるまでの転送遅延時間を、前記処理依頼メッセージの送信元ごとに測定する遅延測定部と、
前記受信期間の長さを、前記転送遅延時間の最大値と最小値との差に応じて設定する受信期間長決定部と、を備え、
前記処理順序決定部は、前記処理依頼メッセージのタイムスタンプと受信時刻との差が、当該処理依頼メッセージの送信元の転送遅延時間から所定値を減じた値より小さい処理依頼メッセージを処理対象から除外する
ことを特徴とするメッセージ処理サーバ。
【請求項7】
コンピュータを請求項1~6の何れか1項のメッセージ処理サーバとして機能させるためのプログラム。
【請求項8】
メッセージ処理サーバのメッセージ処理方法であって、
メッセージ処理サーバは、
処理対象となる処理依頼メッセージに付与される送信時刻であるタイムスタンプを含む期間である送信期間に対応する所定の受信期間に受信した処理依頼メッセージのなかで前記タイムスタンプが当該送信期間に含まれる処理依頼メッセージを、前記タイムスタンプの時刻順に並び変えるステップと、
並び替えられた順に前記処理依頼メッセージを処理するステップと、を実行し、
前記送信期間の開始時刻は、前記所定の受信期間の開始時刻より前記処理依頼メッセージの最小転送遅延時間前であり、
前記送信期間の終了時刻は、前記所定の受信期間の終了時刻より前記処理依頼メッセージの最大転送遅延時間前である
とを特徴とするメッセージ処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タイムスタンプが付与されたメッセージを処理するメッセージ処理サーバ、プログラムおよびメッセージ処理方法に関する。
【背景技術】
【0002】
高精度・高信頼な時刻(時刻情報)の配信と利用の1つとして、信頼できる第三者である時刻認証局が発行するタイムスタンプがある(非特許文献1,2参照)。このタイムスタンプには、電子文書のハッシュ値、時刻情報、およびハッシュ値と時刻情報との組み合わせに対する時刻認証局の署名が含まれる。当該署名を検証することで、時刻情報が示す時刻における電子文書の存在や、当該時刻以降の非改変の証明とすることができる。例えば、電子文書が契約書である場合には、信頼できる第三者である時刻認証局が、タイムスタンプを発行することで、タイムスタンプの日付における契約書の存在や、この日付以降の非改変を担保することになる。
【0003】
高精度・高信頼な時刻の他の利用として、記録/ログや取引/トランザクションに係る時刻に用いる方法がある。1つのシステムのなかで複数の装置でログを取得している場合、システムの記録としては、ログにある時刻(タイムスタンプ)が装置間で同期して正確な時刻である必要がある。また、例えば金融取引のような、複数の参加者が含まれる取引で、発注の順序に従って取引の順序が決まる場合には、正確な発注時刻(注文時刻)が必要となる。
【先行技術文献】
【非特許文献】
【0004】
【文献】タイムスタンプのしくみ, [online], タイムビジネス認定センター, [令和2年6月10日検索], インターネット <URL:https://www.dekyo.or.jp/tb/contents/summary/system_2.html>
【文献】日本のタイムスタンプの仕組みを世界に輸出, NICT NEWS, [online], 独立行政法人情報通信研究機構, [令和2年6月10日検索], インターネット <URL:https://www.nict.go.jp/publication/NICT-News/1007/01.html>
【発明の概要】
【発明が解決しようとする課題】
【0005】
株式を始めとする金融取引は、取引所のサーバに注文メッセージが到着した順番に処理されている。このため、取引所に物理的に近く、サーバへのネットワーク上の距離が近いロケーションが有利となる。サーバから離れている利用者(取引市場の参加者)は、時間的に早く発注したとしてもネットワーク遅延により、サーバに近い利用者より後に注文メッセージがサーバに到着し、取引順序が逆転してしまう可能性がある。近年の株式取引では、高頻度取引が行われており、ミリ秒単位以下の時間差が収益に影響を及ぼすようになっている。発注/注文/処理依頼メッセージのサーバへの到着順序(到着時刻)ではなく、発注の順序(発注時刻、注文時刻)に従って取引順序が決められ、ネットワーク環境に対する利用者間の公平性が担保されることが望ましい。また、このような仕組みを持つ取引所が、利用者(市場参加者)に支持され、より多くの利用者を獲得することが見込まれる。
【0006】
本発明は、このような背景を鑑みてなされたのであり、処理依頼メッセージを送信した順番/時刻の順序に従った処理を可能にすることを課題とする。
【課題を解決するための手段】
【0007】
前記した課題を解決するため、本発明に係るメッセージ処理サーバは、処理対象となる処理依頼メッセージに付与される送信時刻であるタイムスタンプを含む期間である送信期間に対応する所定の受信期間に受信した処理依頼メッセージのなかで前記タイムスタンプが当該送信期間に含まれる処理依頼メッセージを、前記タイムスタンプの時刻順に並び変える処理順序決定部と、並び替えられた順に前記処理依頼メッセージを処理する処理実行部と、を備え、前記送信期間の開始時刻は、前記所定の受信期間の開始時刻より前記処理依頼メッセージの最小転送遅延時間前であり、前記送信期間の終了時刻は、前記所定の受信期間の終了時刻より前記処理依頼メッセージの最大転送遅延時間前である
【発明の効果】
【0008】
本発明によれば、処理依頼メッセージを送信した順番/時刻の順序に従った処理を可能にすることができる。
【図面の簡単な説明】
【0009】
図1】本実施形態に係る取引サーバ、および取引端末の機能構成図である。
図2】本実施形態に係るメッセージスプーラ、および取引処理スプーラの構成を示す図である。
図3】本実施形態に係り、転送遅延時間を説明するための図である。
図4】本実施形態に係り、受付期間と受信期間との関係を説明するためのグラフである。
図5】本実施形態に係り、複数の受付期間と受信期間との時間的関係を説明するためのグラフである。
図6】本実施形態に係る取引サーバが実行する全体の処理のフローチャートである。
図7】本実施形態に係るメッセージ受信処理のフローチャートである。
図8】本実施形態に係る取引処理のフローチャートである。
図9】本実施形態に係るウィンドウサイズ決定処理のフローチャートである。
図10】本実施形態に係る取引サーバの機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【0010】
以下、本発明を実施するための形態(実施形態)における取引サーバ(メッセージ処理サーバ)について説明する。取引サーバは、取引端末からの注文メッセージ(処理依頼メッセージ)を受信して、取引端末が注文メッセージに付与したタイムスタンプ(注文時刻、送信時刻)の順序に処理する。詳しくは、取引サーバは、所定の受信期間に受信した注文メッセージのなかで所定の受付期間(注文メッセージが送信された期間)に含まれるタイムスタンプが付与された注文メッセージを抽出し、抽出した注文メッセージをタイムスタンプの早い順に処理する。
【0011】
受信期間は、受付期間より時間的に後である。受付期間と受信期間との長さは、取引端末から取引サーバまでの注文メッセージの転送時間(転送遅延時間)に応じて決められる。結果として、受付期間内に取引端末から送信された、タイムスタンプが受付期間内である注文メッセージは、受信期間の終了までには取引サーバが受信するようになっている。このため、取引サーバは、注文メッセージの発信時刻(注文時刻、タイムスタンプの時刻)の順に処理することができるようになり、延いてはネットワーク環境に対する利用者間の公平性を担保できるようになる。また、取引サーバの近くに取引端末が集中する必要性がなくなりネットワーク上に分散するため、注文メッセージの遅延差が生じるようになり、短期的に集中するトラフィックの負荷の低減も可能となる。
【0012】
≪全体構成≫
図1は、本実施形態に係る取引サーバ100、および取引端末200の機能構成図である。取引サーバ100と取引端末200とは、ネットワーク800を介して通信可能である。図1には取引端末200は、2つ記載されているが、さらに多くの取引端末200が取引サーバ100に接続されていてもよい。ネットワーク800には、さらに時刻配信サーバ300が接続されており、NTP(Network Time Protocol)やPTP(Precision Time Protocol)などのプロトコルを用いて取引サーバ100と取引端末200とに時刻を配信している(時刻同期を行っている)。
【0013】
≪取引端末の構成≫
取引端末200は、コンピュータであって、制御部(不図示)や記憶部(不図示)、時計260、通信部270、ユーザインタフェース280(図1ではUI(User Interface)と記載)を備える。通信部270は、取引サーバ100や時刻配信サーバ300との通信データを送受信する。ユーザインタフェース280は、ディスプレイやキーボードなど含み、取引端末200の利用者からの注文に係る情報を表示したり、注文の操作を受け付けたりする。制御部は、CPU(Central Processing Unit)から構成され、メッセージ生成部211、タイムスタンプ打刻部212、および時刻同期部213を備える。
【0014】
時刻同期部213は、NTPやPTPなどを用いて、時刻配信サーバ300の時計と時計260とを同期させて、時計260を正確な時刻に合わせる。
メッセージ生成部211は、利用者から取引の注文を受け付けて、注文内容を含む注文メッセージを生成する。
タイムスタンプ打刻部212は、時計260を参照して現在時刻を注文時刻として注文メッセージに付与する。タイムスタンプ打刻部212は、さらに取引端末200または利用者の署名を注文メッセージに付与してもよい。タイムスタンプ(注文時刻)が付与された注文メッセージは、通信部270により取引サーバ100に送信される。タイムスタンプ打刻部212は、現在時刻に替わり想定される送信時刻をタイムスタンプとして付与してもよい。
【0015】
≪取引サーバの構成≫
取引サーバ100は、コンピュータであって、制御部110、記憶部120、時計160、および通信部170を備える。通信部170は、取引端末200や時刻配信サーバ300との通信データを送受信する。
記憶部120は、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)などから構成される。記憶部120には、プログラム121やメッセージスプーラ130、取引処理スプーラ140などが記憶される。
【0016】
プログラム121は、コンピュータである取引サーバ100を制御し、後記する図6図9に記載のメッセージ受信処理、取引処理、ウィンドウサイズ決定処理の処理手順を含む。
メッセージスプーラ130(後記する図2参照)には、通信部170が受信した注文メッセージが受信時刻と関連付けられて記憶される。
取引処理スプーラ140には、メッセージスプーラ130に記憶される注文メッセージのなかで、タイムスタンプが所定の受付期間内の注文メッセージが移動され、タイムスタンプ(注文時刻)の順番に処理されて削除される。
【0017】
図2は、本実施形態に係るメッセージスプーラ130、および取引処理スプーラ140の構成を示す図である。メッセージスプーラ130には、注文メッセージ501~506が、注文メッセージの受信時刻(取引サーバ100への到着時刻)と関連付けられて記憶される。図2では、注文メッセージ501~506には、それぞれタイムスタンプ(注文時刻)が記載されている。例えば、注文メッセージ503のタイムスタンプは「12:43」(12分43秒)であって、受信時刻は「12:45」(12分45秒)である。
【0018】
なお、以下の説明では、時間の最小単位は秒であるとして説明し、時刻は分と秒とで示す。これは、説明しやすくするためであって、時間の最小単位は、例えばミリ秒や50マイクロ秒であってもよい。
【0019】
取引処理スプーラ140には、メッセージスプーラ130に記憶される注文メッセージ501~506であって、タイムスタンプが受付期間内である注文メッセージが移動される。図2においては、受付期間は12:42~12:43としており、注文メッセージ502,504,501,503が移動している。なお、移動した注文メッセージは、メッセージスプーラ130から削除されるが、図2では説明の都合上、メッセージスプーラ130に記憶されているように記載している。
【0020】
≪取引サーバの制御部の構成≫
図1に戻って、制御部110は、CPUから構成され、遅延測定部111、メッセージ受信部112、ウィンドウサイズ決定部113、取引順序決定部114、取引処理部115、および時刻同期部116を備える。
遅延測定部111は、取引端末200から取引サーバ100までの注文メッセージの転送時間(転送遅延時間)を測定する。遅延測定部111は、通信パケットの取引端末200と取引サーバ100との間の往復時間の半分を転送遅延時間としてもよいし、NTPやPTPに用いられるメッセージを利用して転送遅延時間を測定してもよい。以下では、遅延測定部111は、取引端末200との通信パケットの往復時間を複数回測定して、その平均値の半分を、当該取引端末200の転送遅延時間と決定する。
【0021】
メッセージ受信部112は、通信部170が受信した取引端末200からの注文メッセージに受信時刻を付与してメッセージスプーラ130(図2参照)に格納する。
ウィンドウサイズ決定部113は、受付期間や受信期間の長さを決定する。ウィンドウサイズ決定部113は、取引端末200の転送遅延時間のなかで最小の転送遅延時間と最大の転送遅延時間との差に基づいて受信期間長(ウィンドウサイズ)を決定する。なお、転送遅延時間や受付期間、受信期間の関係については、図3および図4を参照して後記する。
【0022】
取引順序決定部114は、メッセージスプーラ130に記憶される注文メッセージで、タイムスタンプが受付期間内の注文メッセージを取引処理スプーラ140に移動して、タイムスタップの順に(タイムスタンプが早い時刻から遅い時刻へ)並び替える。
取引処理部115は、取引処理スプーラ140にタイムスタンプの順に記憶される注文メッセージを、タイムスタンプの順に処理して、注文メッセージに含まれる注文内容の取引を実行する。
時刻同期部116は、NTPやPTPなどを用いて、時刻配信サーバ300の時計と時計160とを同期させて、時計160を正確な時刻に合わせる。
【0023】
≪転送遅延時間と受付期間と受信期間との関係≫
図3は、本実施形態に係り、転送遅延時間を説明するための図である。取引端末200A,200B,200Cが注文メッセージ510A,510B,510C(図3では注文Mと記載)を送信して、取引サーバ100が受信するまでの時間である転送遅延時間は、それぞれ1秒、2秒、3秒である。
【0024】
図4は、本実施形態に係り、受付期間と受信期間との関係を説明するためのグラフ410である。矢印411は、取引サーバ100に最も近い取引端末200A(図3参照)が時刻T1に送信した注文メッセージが時刻T2に取引サーバ100に到着したことを示す。矢印412は、取引サーバ100から最も遠い取引端末200C(図3参照)が時刻T1に送信した注文メッセージが時刻T4に取引サーバ100に到着したことを示す。矢印413は、取引サーバ100に最も近い取引端末200Aが時刻T3に送信した注文メッセージが時刻T4に取引サーバ100に到着したことを示す。矢印414は、取引サーバ100から最も遠い取引端末200Cが時刻T3に送信した注文メッセージが時刻T5に取引サーバ100に到着したことを示す。
【0025】
注文メッセージの受付期間をタイムスタンプ(送信時刻)の期間(送信期間)が時刻T1から時刻T3までとすると、該当する注文メッセージは、時刻T2から時刻T5までの間に取引サーバ100に到着することがわかる。つまり、タイムスタンプが時刻T1から時刻T3までの注文メッセージを処理するには、受信時刻が時刻T2から時刻T5までの注文メッセージのなかから当該タイムスタンプの注文メッセージを選択して処理すればよいことになる。このため、ウィンドウサイズ決定部113は、受信期間を時刻T2から時刻T5までと設定する。
【0026】
受付期間の開始時刻である時刻T1と、受信期間の開始時刻である時刻T2との差は、取引サーバ100に最も近い取引端末200Aの転送遅延時間となる。受付期間の終了時刻である時刻T3と、受信期間の終了時刻である時刻T5との差は、取引サーバ100から最も遠い取引端末200Cの転送遅延時間となる。
また、受信期間の長さ(受信期間長)と受付期間の長さ(受付期間長)との差は、転送遅延時間の最大値と最小値との差となる。受信期間長(ウィンドウサイズ)は、転送遅延時間の最大値と最小値との差以上になる。
【0027】
このウィンドウサイズは、取引サーバ100に最も近い取引端末200Aと、最も遠い取引端末200Cとが、受付期間内に注文メッセージを送信したときにおける、取引サーバ100の受信時刻(到着時刻)の差となる。換言すれば、最も近い取引端末200Aから受付期間内の最早に発信された注文メッセージ510Aの受信後にウィンドウサイズ時間待っていれば、受付期間内の最遅に発信された最も遠い取引端末200Cからの注文メッセージ510Cが、取引サーバ100に到着することになる。
【0028】
図5は、本実施形態に係り、複数の受付期間と受信期間との時間的関係を説明するためのグラフ410である。取引順序決定部114は、取引処理部115が処理する注文メッセージのタイムスタンプの時間を順次、受付期間1、受付期間2、受付期間3と区切る。取引順序決定部114は、メッセージスプーラ130に記憶される注文メッセージで、受付期間1に対応する受信期間1に到着した注文メッセージで、タイムスタンプが受付期間1に含まれる注文メッセージを取引処理スプーラ140に移動して、タイムスタンプの順に並び替える。取引処理部115は、取引処理スプーラ140に記憶される注文メッセージを並び替えられた順に処理する。取引順序決定部114、および取引処理部115とは、上記の処理を受付期間1、受付期間2、受付期間3の順に繰り返す。
【0029】
≪処理手順≫
図6は、本実施形態に係る取引サーバ100が実行する全体の処理のフローチャートである。取引サーバ100の制御部110は、ステップS10のメッセージ受信処理(後記する図7参照)、ステップS20の取引処理(後記する図8参照)、およびステップS30のウィンドウサイズ決定処理(後記する図9参照)を並行して同時に処理する。なお、以下の説明では、受付期間長は予め設定されているものとする。
【0030】
図7は、本実施形態に係るメッセージ受信処理(図6のステップS10参照)のフローチャートである。メッセージ受信処理は、ステップS11,S12を繰り返す処理である。
ステップS11においてメッセージ受信部112は、通信部170が出力した取引端末200から受信した注文メッセージを受領する。
ステップS12においてメッセージ受信部112は、ステップS11で受領した注文メッセージに受信時刻を付与してメッセージスプーラ130に格納する。
【0031】
図8は、本実施形態に係る取引処理(図6のステップS20参照)のフローチャートである。取引処理は、受付期間ごとにステップS22~S24を繰り返す処理である。
ステップS21において制御部110は、受付期間ごとにステップS22~S24を繰り返す処理を開始する。詳しくは、制御部110は、受付期間に対応する受信期間(図5参照)が経過した時点で、ステップS22~S24を実行する。
ステップS22において取引順序決定部114は、メッセージスプーラ130に記憶される注文メッセージで、タイムスタンプが受付期間内の注文メッセージを取引処理スプーラ140に移動する。
【0032】
ステップS23において取引順序決定部114は、取引処理スプーラ140に記憶される注文メッセージをタイムスタンプの順に(タイムスタンプの注文時刻が早いものから遅いものへの順に)並び替える。
ステップS24において取引処理部115は、取引処理スプーラ140に記憶される注文メッセージを、ステップS23で並び替えた順に取引の処理を実行する。
【0033】
図9は、本実施形態に係るウィンドウサイズ決定処理(図6のステップS30参照)のフローチャートである。ウィンドウサイズ決定処理は、ステップS31,S32を繰り返す処理である。
ステップS31において遅延測定部111は、取引端末200ごとに転送遅延時間を測定する。
ステップS32においてウィンドウサイズ決定部113は、受信期間長を受付期間長に、ステップS31において測定された転送遅延時間のなかで最大の転送遅延時間と最小の転送遅延時間との差を加算したものと設定する。
【0034】
≪取引サーバの特徴≫
取引サーバ100は、受付期間ごとに、受信した注文メッセージのなかでタイムスタンプが受付期間内の注文メッセージを収集して、タイムスタンプの順に並び替えて処理する。処理対象となる注文メッセージの受信期間長は、取引端末からの注文メッセージ転送遅延時間の最大値と最小値との差から設定される。詳しくは、受信期間長は、受付期間長に注文メッセージ転送遅延時間の最大値と最小値との差を加算した長さである。取引サーバ100は、受付期間の終了時刻から最大の転送遅延時間後に処理を開始する。このため、転送遅延時間が最大である取引端末200を含め全ての取引端末200が、受付期間までに送信した注文メッセージを全て受信してから処理を始めることができる。結果として、取引サーバ100は、タイムスタンプが受付期間内の全ての注文メッセージを順に処理することができるようになる。このため、取引サーバ100は、取引端末200のネットワーク的な距離によらず、注文した時刻の順に処理することができる。また、取引サーバ100の近くに取引端末200が集中する必要性がなくなりネットワーク上に分散するため、注文メッセージの遅延差が生じるようになり、短期的に集中するトラフィックの負荷の低減も可能となる。
【0035】
≪変形例:受信期間≫
受信期間の終了時刻は、受付期間の終了時刻に最大の転送遅延時間を加えた時刻である。転送遅延時間の揺らぎを加味して、ウィンドウサイズ決定部113は、受信期間の終了時刻(受信期間長)を決めるようにしてもよい。転送遅延時間は、複数回測定した通信パケットの往復時間における平均の半分としているが、所定時間を加えるようにしてもよい。または、往復時間の半分における分散の定数倍(転送遅延時間の変化度)を加えるようにしてもよい。結果的に、受信期間長は長くなることになる。このようにすることで、一時的にネットワーク輻輳が発生して転送遅延時間が大きくなり、揺らぎを考慮しない受信期間を過ぎて注文メッセージが到着しても、タイムスタンプの順に処理することができる。
【0036】
≪変形例:受付期間≫
ステップS21において取引順序決定部114は、タイムスタンプが受付期間内の注文メッセージを処理しているが、タイムスタンプが受付期間前の注文メッセージを処理するようにしてもよい。このように処理することで、注文メッセージが予想外に大きく遅延して取引サーバ100に到着して、本来の受付期間では処理されなかった注文メッセージも、遅れてではあるが処理することができる。
【0037】
≪変形例:受付期間の長さ≫
上記実施形態においては、受付期間長は予め設定されている。受付期間が短い方が、注文メッセージを受信してから処理するまでの時間が短くなる。つまりは、受付期間が短いほど、受信期間も短くなり、注文メッセージが発信後のより早い時間に処理されることになる。特に高速な処理が望まれる取引では、受付期間が短い方が望ましい。
【0038】
≪変形例:転送遅延時間の測定≫
上記した実施形態では、遅延測定部111は、全ての取引端末200に係る転送遅延時間を測定している。遅延測定部111は、所定長の期間中、注文メッセージを送信していない取引端末200を転送遅延時間の測定対象から外してもよい。特に、測定対象から外される取引端末200の転送遅延時間が他の取引端末200より長い場合には、受信期間長が短くなり、注文メッセージは、発信後のより早い時間に処理されることになる。
【0039】
≪変形例:不正なタイムスタンプへの対応≫
注文メッセージの取引サーバ100への到着時刻が、タイムスタンプと比較して早すぎる場合には、タイムスタンプの不正が疑われる。詳しくは、注文メッセージの到着時刻とタイムスタンプとの差が、当該注文メッセージの転送遅延時間となる。この転送遅延時間が、遅延測定部111が測定した転送遅延時間と比較して大きく短い場合には、タイムスタンプ(取引端末200)の不正が疑われる。
【0040】
メッセージ受信部112は、転送遅延時間が所定値より小さい注文メッセージを破棄するようにしてもよい。所定値としては、遅延測定部111が測定した転送遅延時間から一定値を減じた値である。または、所定値は、遅延測定部111が測定した平均の転送遅延時間から、定数倍の分散を減じた値であってもよい。なお、メッセージ受信部112に替わって、取引順序決定部114が、不正が疑われる注文メッセージを破棄するようにしてもよい。
【0041】
≪その他の変形例≫
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。例えば、取引サーバ100は、メッセージスプーラ130に記憶される注文メッセージのなかでタイムスタンプが受付期間内の注文メッセージを取引処理スプーラ140に移動している。これに対して取引サーバ100は、移動することなくタイムスタンプが受付期間内の注文メッセージを処理するようにしてもよい。また、取引サーバ100は、タイムスタンプが受付期間内の注文メッセージを、タイムスタンプの順に並び替えてから処理しているが、並び替えの処理を行わずタイムスタンプの順に処理してもよい。
【0042】
上記した実施形態では、取引端末200において、注文メッセージが作成され、タイムスタンプが付与されている。これに替わり、取引端末が注文メッセージを作成してゲートウェイに送信し、ゲートウェイがタイムスタップを付与して取引サーバに送信するようにしてもよい。証券会社のような多数の取引端末を有する市場参加者が、タイムスタンプ付与の機能をゲートウェイに集約するようにしてもよい。
上記した実施形態では、取引サーバ100が、注文メッセージの並び替え処理と、取引処理とを実行しているが、複数のサーバが処理するようにしてもよい。
上記した実施形態では、取引を例に注文メッセージを発信時刻/注文時刻の順に処理する取引サーバを説明したが、取引以外の処理を処理依頼メッセージの発信時刻/依頼時刻の順に処理するようにしてもよい。
【0043】
本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0044】
≪ハードウェア構成≫
図10は、本実施形態に係る取引サーバ100の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。本実施形態に係る取引サーバ100は、例えば図10に示すような構成のコンピュータ900によって実現される。コンピュータ900は、CPU901、ROM902、RAM903、ハードディスク904(図10ではHDDと記載)、入出力インターフェイス905(図10では入出力I/F(Interface)と記載)、通信インターフェイス906(図10では通信I/Fと記載)、およびメディアインターフェイス907(図10ではメディアI/Fと記載)を備える。
【0045】
CPU901は、ROM902またはハードディスク904に記憶されたプログラムに基づいて作動し、図1の制御部110による制御を行う。ROM902は、コンピュータ900の起動時にCPU901により実行されるブートプログラムや、コンピュータ900のハードウェアに係るプログラムなどを記憶する。
CPU901は、入出力インターフェイス905を介して、マウスやキーボードなどの入力装置910、およびディスプレイやプリンタなどの出力装置911を制御する。CPU901は、入出力インターフェイス905を介して、入力装置910からデータを取得するとともに、生成したデータを出力装置911へ出力する。
【0046】
ハードディスク904は、CPU901により実行されるプログラムおよび当該プログラムによって使用されるデータなどを記憶する。通信インターフェイス906は、通信網を介して不図示の他の装置(例えば、取引端末200や時刻配信サーバ300など)からデータを受信してCPU901へ出力し、また、CPU901が生成したデータを、通信網を介して他の装置へ送信する。
メディアインターフェイス907は、記録媒体912に格納されたプログラムまたはデータを読み取り、RAM903を介してCPU901へ出力する。CPU901は、プログラムを、メディアインターフェイス907を介して記録媒体912からRAM903上にロードし、ロードしたプログラムを実行する。記録媒体912は、DVD(Digital Versatile Disk)などの光学記録媒体、MO(Magneto Optical disk)などの光磁気記録媒体、磁気記録媒体、導体メモリテープ媒体または半導体メモリなどである。
【0047】
例えば、コンピュータ900が本実施形態に係る取引サーバ100として機能する場合、コンピュータ900のCPU901は、RAM903上にロードされたプログラム121(図1参照)を実行することにより、取引サーバ100の機能を実現する。CPU901は、プログラムを記録媒体912から読み取って実行する。この他、CPU901は、他の装置から通信網を介してプログラムを読み込んでもよいし、記録媒体912からハードディスク904にプログラム121をインストールして実行してもよい。
【0048】
≪効果≫
以下に、取引サーバ100(メッセージ処理サーバ)の効果を説明する。
【0049】
本実施形態に係るメッセージ処理サーバ(取引サーバ100)は、所定の受信期間に受信したタイムスタンプ付きの処理依頼メッセージ(注文メッセージ)のなかでタイムスタンプが所定の受付期間の処理依頼メッセージを、タイムスタンプの時刻順に並び変える処理順序決定部(取引順序決定部114)と、並び替えられた順に処理依頼メッセージを処理する処理実行部(取引処理部115)とを備えることを特徴とする。
【0050】
このようなメッセージ処理サーバによれば、処理依頼メッセージ(注文メッセージ)をタイムスタンプ(発信時刻、注文時刻)の順に処理することができるようになる。送信元(取引端末200)からメッセージ処理サーバまでの転送遅延時間(ネットワーク的距離)によらず、処理依頼メッセージの送信時刻の順に処理されるようになり、公平性を担保することができるようになる。
【0051】
また、メッセージ処理サーバは、処理依頼メッセージが送信されてメッセージ処理サーバが受信するまでの転送遅延時間を、処理依頼メッセージの送信元ごとに測定する遅延測定部111と、受信期間の長さを、転送遅延時間の最大値と最小値との差に応じて設定する受信期間長決定部(ウィンドウサイズ決定部113)とをさらに備えることを特徴とする。
【0052】
このように処理依頼メッセージの受信期間の長さ(受信期間長)が設定されれば、メッセージ処理サーバから遠い送信元からの転送遅延時間が長い処理依頼メッセージであっても、メッセージ処理サーバから近い送信元からの転送遅延時間が短い処理依頼メッセージであっても、受付期間に送信された処理依頼メッセージを、メッセージ処理サーバは全て受信することができ、タイムスタンプの順番に処理することができる。
【0053】
受信期間長決定部は、受信期間の長さを、転送遅延時間の変化度に応じて設定することを特徴とする。
【0054】
このように処理依頼メッセージの受信期間長が設定されれば、ネットワーク輻輳が発生するなどして通常より処理依頼メッセージの転送遅延時間が長くなっても受付期間に送信された処理依頼メッセージを、メッセージ処理サーバは受信することができ、タイムスタンプの順番に処理することができる。
【0055】
処理順序決定部は、処理依頼メッセージのタイムスタンプと受信時刻との差が、当該処理依頼メッセージの送信元の転送遅延時間から所定値を減じた値より小さい処理依頼メッセージを処理対象から除外することを特徴とする。
【0056】
このように処理依頼メッセージを除外することで、不正なタイムスタンプが付与され処理依頼メッセージの処理を防ぐことができ、公平性を担保することができるようになる。
【0057】
遅延測定部111は、処理依頼メッセージを所定長の期間送信していない送信元については転送遅延時間を測定しないことを特徴とする。
【0058】
このように処理依頼メッセージの転送遅延時間測定対象の送信元を削減することで、処理依頼メッセージの受信期間長を短縮できる場合が生じ、処理依頼メッセージが発信後のより早い時間に処理されるようになる。
【符号の説明】
【0059】
100 取引サーバ(メッセージ処理サーバ)
111 遅延測定部
112 メッセージ受信部
113 ウィンドウサイズ決定部(受信期間長決定部)
114 取引順序決定部(処理順序決定部)
115 取引処理部(処理実行部)
116 時刻同期部
130 メッセージスプーラ
140 取引処理スプーラ
200 取引端末(送信元、処理依頼メッセージの送信元)
501~506,510A,510B,510C 注文メッセージ(処理依頼メッセージ)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10