WO2021260872A1 - メッセージ処理サーバ、プログラムおよびメッセージ処理方法 - Google Patents

メッセージ処理サーバ、プログラムおよびメッセージ処理方法 Download PDF

Info

Publication number
WO2021260872A1
WO2021260872A1 PCT/JP2020/024957 JP2020024957W WO2021260872A1 WO 2021260872 A1 WO2021260872 A1 WO 2021260872A1 JP 2020024957 W JP2020024957 W JP 2020024957W WO 2021260872 A1 WO2021260872 A1 WO 2021260872A1
Authority
WO
WIPO (PCT)
Prior art keywords
time
message
order
processing
transaction
Prior art date
Application number
PCT/JP2020/024957
Other languages
English (en)
French (fr)
Inventor
薫 新井
大樹 佐久間
隆太 杉山
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to JP2022532170A priority Critical patent/JPWO2021260872A1/ja
Priority to US18/010,991 priority patent/US20230267541A1/en
Priority to PCT/JP2020/024957 priority patent/WO2021260872A1/ja
Publication of WO2021260872A1 publication Critical patent/WO2021260872A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Definitions

  • the present invention relates to a message processing server, a program, and a message processing method for processing a message with a time stamp.
  • time stamp As one of the distribution and use of highly accurate and highly reliable time (time information), there is a time stamp issued by a time certification authority, which is a reliable third party (see Non-Patent Documents 1 and 2).
  • This time stamp contains the hash value of the electronic document, the time information, and the signature of the time certificate authority for the combination of the hash value and the time information.
  • By verifying the signature it is possible to prove the existence of the electronic document at the time indicated by the time information and the non-modification after the time.
  • a trusted third party a time certificate authority, issues a time stamp to allow the existence of the contract on the date of the time stamp and to be unmodified after this date. Will be guaranteed.
  • Another use for highly accurate and reliable time is to use it for time related to recording / logging and transactions / transactions.
  • time stamp time in the log is synchronized between the devices and is an accurate time as a system record.
  • an accurate ordering time is required.
  • the transaction order is determined according to the order of orders (order time, order time), not the order of arrival of orders / orders / processing request messages to the server (arrival time), ensuring fairness among users for the network environment. Is desirable. In addition, exchanges with such a mechanism are expected to be supported by users (market participants) and acquire more users.
  • the present invention has been made in view of such a background, and an object of the present invention is to enable processing according to the order of transmission / time of processing request messages.
  • the message processing server sets a processing request message having a time stamp in a predetermined reception period among the processing request messages with a time stamp received in the predetermined reception period. It includes a processing order determination unit for rearranging the stamps in the time order, and a processing execution unit for processing the processing request message in the sorted order.
  • the transaction server receives the order message (processing request message) from the transaction terminal and processes it in the order of the time stamps (order time, transmission time) given to the order message by the transaction terminal. Specifically, the transaction server extracts the order message with the time stamp included in the predetermined acceptance period (the period in which the order message is sent) from the order messages received in the predetermined reception period, and the extracted order. Process messages in ascending order of time stamp.
  • the reception period is later than the reception period.
  • the length of the acceptance period and the reception period is determined according to the transfer time (transfer delay time) of the order message from the transaction terminal to the transaction server.
  • the transaction server receives the order message sent from the transaction terminal within the acceptance period and whose time stamp is within the acceptance period by the end of the reception period. Therefore, the transaction server can process the order message in the order of transmission time (order time, time stamp time), and can ensure fairness among users for the network environment. ..
  • a delay difference in order messages will occur, and it will be possible to reduce the load of traffic concentrated in the short term.
  • FIG. 1 is a functional configuration diagram of a transaction server 100 and a transaction terminal 200 according to the present embodiment.
  • the transaction server 100 and the transaction terminal 200 can communicate with each other via the network 800. Although two transaction terminals 200 are shown in FIG. 1, more transaction terminals 200 may be connected to the transaction server 100.
  • a time distribution server 300 is further connected to the network 800, and the time is distributed to the transaction server 100 and the transaction terminal 200 using protocols such as NTP (Network Time Protocol) and PTP (Precision Time Protocol). (Time synchronization is performed).
  • NTP Network Time Protocol
  • PTP Precision Time Protocol
  • the trading terminal 200 is a computer and includes a control unit (not shown), a storage unit (not shown), a clock 260, a communication unit 270, and a user interface 280 (described as UI (User Interface) in FIG. 1).
  • the communication unit 270 transmits / receives communication data to / from the transaction server 100 and the time distribution server 300.
  • the user interface 280 includes a display, a keyboard, and the like, displays information related to an order from a user of the trading terminal 200, and accepts an order operation.
  • the control unit is composed of a CPU (Central Processing Unit), and includes a message generation unit 211, a time stamp stamping unit 212, and a time synchronization unit 213.
  • the time synchronization unit 213 synchronizes the clock of the time distribution server 300 with the clock 260 by using NTP, PTP, or the like, and sets the clock 260 to an accurate time.
  • the message generation unit 211 receives an order for a transaction from a user and generates an order message including the order contents.
  • the time stamp stamping unit 212 attaches the current time as the order time to the order message with reference to the clock 260.
  • the time stamp stamping unit 212 may further add the signature of the trading terminal 200 or the user to the order message.
  • the order message with the time stamp (order time) is transmitted to the transaction server 100 by the communication unit 270.
  • the time stamp stamping unit 212 may give an assumed transmission time as a time stamp instead of the current time.
  • the transaction server 100 is a computer and includes a control unit 110, a storage unit 120, a clock 160, and a communication unit 170.
  • the communication unit 170 transmits / receives communication data to / from the transaction terminal 200 and the time distribution server 300.
  • the storage unit 120 is composed of a ROM (Read Only Memory), a RAM (Random Access Memory), an HDD (Hard Disk Drive), an SSD (Solid State Drive), and the like.
  • the storage unit 120 stores the program 121, the message spooler 130, the transaction processing spooler 140, and the like.
  • the program 121 controls the transaction server 100, which is a computer, and includes processing procedures for message reception processing, transaction processing, and window size determination processing, which will be described later in FIGS. 6 to 9.
  • the order message received by the communication unit 170 is stored in association with the reception time.
  • the order message stored in the message spooler 130 the order message whose time stamp is within the predetermined acceptance period is moved to the transaction processing spooler 140, processed in the order of the time stamp (order time), and deleted. ..
  • FIG. 2 is a diagram showing the configuration of the message spooler 130 and the transaction processing spooler 140 according to the present embodiment.
  • the message spooler 130 stores the order messages 501 to 506 in association with the reception time of the order message (arrival time at the transaction server 100).
  • each of the order messages 501 to 506 has a time stamp (order time).
  • the time stamp of the order message 503 is "12:43" (12 minutes 43 seconds)
  • the reception time is "12:45" (12 minutes 45 seconds).
  • the minimum unit of time is described as seconds, and the time is indicated by minutes and seconds. This is for ease of explanation, and the minimum unit of time may be, for example, milliseconds or 50 microseconds.
  • the order messages 501 to 506 stored in the message spooler 130 and whose time stamp is within the acceptance period are moved to the transaction processing spooler 140.
  • the reception period is from 12:42 to 12:43, and the order messages 502, 504, 501, 503 are moving.
  • the moved order message is deleted from the message spooler 130, but in FIG. 2, for convenience of explanation, it is described as being stored in the message spooler 130.
  • the control unit 110 is composed of a CPU, and includes a delay measurement unit 111, a message reception unit 112, a window size determination unit 113, a transaction order determination unit 114, a transaction processing unit 115, and a time synchronization unit 116. ..
  • the delay measuring unit 111 measures the transfer time (transfer delay time) of the order message from the transaction terminal 200 to the transaction server 100.
  • the delay measurement unit 111 may use half of the round-trip time between the transaction terminal 200 and the transaction server 100 of the communication packet as the transfer delay time, or measure the transfer delay time using a message used for NTP or PTP. You may.
  • the delay measuring unit 111 measures the round-trip time of the communication packet with the transaction terminal 200 a plurality of times, and determines half of the average value as the transfer delay time of the transaction terminal 200.
  • the message receiving unit 112 assigns a reception time to the order message received from the transaction terminal 200 received by the communication unit 170, and stores the order message in the message spooler 130 (see FIG. 2).
  • the window size determination unit 113 determines the length of the reception period and the reception period.
  • the window size determination unit 113 determines the reception period length (window size) based on the difference between the minimum transfer delay time and the maximum transfer delay time in the transfer delay time of the transaction terminal 200. The relationship between the transfer delay time, the reception period, and the reception period will be described later with reference to FIGS. 3 and 4.
  • the transaction order determination unit 114 moves the order message stored in the message spooler 130 to the transaction processing spooler 140 with the time stamp within the acceptance period, and moves the order message to the transaction processing spooler 140 in the order of time stap (time stamp is from early time to late time).
  • the transaction processing unit 115 processes the order messages stored in the transaction processing spooler 140 in the order of the time stamps in the order of the time stamps, and executes the transaction of the order contents included in the order messages.
  • the time synchronization unit 116 synchronizes the clock of the time distribution server 300 with the clock 160 by using NTP, PTP, or the like, and sets the clock 160 to an accurate time.
  • FIG. 3 is a diagram for explaining the transfer delay time according to the present embodiment.
  • the transfer delay time which is the time until the transaction terminals 200A, 200B, and 200C send the order messages 510A, 510B, 510C (denoted as order M in FIG. 3) and the transaction server 100 receives them, is 1 second and 2 respectively. Seconds, 3 seconds.
  • FIG. 4 is a graph 410 for explaining the relationship between the reception period and the reception period according to the present embodiment.
  • Arrow 411 indicates that the order message transmitted by the trading terminal 200A (see FIG. 3) closest to the trading server 100 arrives at the trading server 100 at time T2.
  • the arrow 412 indicates that the order message transmitted by the trading terminal 200C (see FIG. 3) farthest from the trading server 100 arrives at the trading server 100 at time T4.
  • the arrow 413 indicates that the order message transmitted by the trading terminal 200A closest to the trading server 100 at time T3 has arrived at the trading server 100 at time T4.
  • the arrow 414 indicates that the order message transmitted by the trading terminal 200C farthest from the trading server 100 at time T3 has arrived at the trading server 100 at time T5.
  • the window size determination unit 113 sets the reception period from time T2 to time T5.
  • the difference between the time T1 which is the start time of the reception period and the time T2 which is the start time of the reception period is the transfer delay time of the transaction terminal 200A closest to the transaction server 100.
  • the difference between the time T3, which is the end time of the reception period, and the time T5, which is the end time of the reception period, is the transfer delay time of the transaction terminal 200C farthest from the transaction server 100.
  • the difference between the length of the reception period (reception period length) and the length of the reception period (reception period length) is the difference between the maximum value and the minimum value of the transfer delay time.
  • the reception period length (window size) is greater than or equal to the difference between the maximum and minimum transfer delay times.
  • This window size is the difference between the reception time (arrival time) of the transaction server 100 when the transaction terminal 200A closest to the transaction server 100 and the transaction terminal 200C farthest from the transaction server 100 transmit an order message within the acceptance period. .. In other words, if you wait for the window size time after receiving the order message 510A that was sent from the nearest trading terminal 200A the earliest in the acceptance period, the farthest trading terminal 200C that was sent the latest in the acceptance period. The order message 510C will arrive at the transaction server 100.
  • FIG. 5 is a graph 410 for explaining the temporal relationship between a plurality of reception periods and reception periods according to the present embodiment.
  • the transaction order determination unit 114 sequentially divides the time of the time stamp of the order message processed by the transaction processing unit 115 into a reception period 1, a reception period 2, and a reception period 3.
  • the transaction order determination unit 114 is an order message stored in the message spooler 130, and is an order message arriving at the reception period 1 corresponding to the reception period 1, and the transaction processing spooler 140 processes the order message whose time stamp is included in the reception period 1. Go to and sort by time stamp.
  • the transaction processing unit 115 processes the order messages stored in the transaction processing spooler 140 in the sorted order.
  • the transaction order determination unit 114 and the transaction processing unit 115 repeat the above processing in the order of reception period 1, reception period 2, and reception period 3.
  • FIG. 6 is a flowchart of the entire process executed by the transaction server 100 according to the present embodiment.
  • the control unit 110 of the transaction server 100 has a message reception process in step S10 (see FIG. 7 described later), a transaction process in step S20 (see FIG. 8 described later), and a window size determination process in step S30 (see FIG. 9 described later). ) Are processed in parallel at the same time.
  • the reception period length is set in advance.
  • FIG. 7 is a flowchart of the message reception process (see step S10 in FIG. 6) according to the present embodiment.
  • the message reception process is a process of repeating steps S11 and S12.
  • step S11 the message receiving unit 112 receives the order message received from the trading terminal 200 output by the communication unit 170.
  • step S12 the message receiving unit 112 assigns a receiving time to the order message received in step S11 and stores it in the message spooler 130.
  • FIG. 8 is a flowchart of a transaction process (see step S20 in FIG. 6) according to the present embodiment.
  • the transaction process is a process in which steps S22 to S24 are repeated for each reception period.
  • the control unit 110 starts a process of repeating steps S22 to S24 every reception period. Specifically, the control unit 110 executes steps S22 to S24 when the reception period (see FIG. 5) corresponding to the reception period has elapsed.
  • the transaction order determination unit 114 moves the order message stored in the message spooler 130 and whose time stamp is within the acceptance period to the transaction processing spooler 140.
  • step S23 the transaction order determination unit 114 sorts the order messages stored in the transaction processing spooler 140 in the order of time stamps (from the earliest to the latest order time of the time stamps).
  • step S24 the transaction processing unit 115 executes transaction processing in the order in which the order messages stored in the transaction processing spooler 140 are rearranged in step S23.
  • FIG. 9 is a flowchart of the window size determination process (see step S30 in FIG. 6) according to the present embodiment.
  • the window size determination process is a process of repeating steps S31 and S32.
  • step S31 the delay measuring unit 111 measures the transfer delay time for each transaction terminal 200.
  • step S32 the window size determination unit 113 adds the difference between the maximum transfer delay time and the minimum transfer delay time among the transfer delay times measured in step S31 to the reception period length. Set.
  • the transaction server 100 collects the order messages whose time stamp is within the acceptance period from the received order messages for each acceptance period, sorts them in the order of the time stamps, and processes them.
  • the reception period length of the order message to be processed is set from the difference between the maximum value and the minimum value of the order message transfer delay time from the trading terminal. Specifically, the reception period length is the length obtained by adding the difference between the maximum value and the minimum value of the order message forwarding delay time to the reception period length.
  • the transaction server 100 starts processing after the maximum transfer delay time from the end time of the acceptance period. Therefore, all the trading terminals 200 including the trading terminal 200 having the maximum transfer delay time can start the process after receiving all the order messages transmitted by the acceptance period.
  • the transaction server 100 will be able to sequentially process all order messages whose time stamp is within the acceptance period. Therefore, the transaction server 100 can process in the order of the ordered time regardless of the network distance of the transaction terminal 200. Further, since the transaction terminals 200 do not need to be concentrated near the transaction server 100 and are distributed on the network, a delay difference in order messages will occur, and it will be possible to reduce the load of traffic concentrated in the short term. ..
  • the end time of the reception period is the time obtained by adding the maximum transfer delay time to the end time of the reception period.
  • the window size determination unit 113 may determine the end time (reception period length) of the reception period in consideration of the fluctuation of the transfer delay time.
  • the transfer delay time is half of the average of the round-trip time of the communication packet measured a plurality of times, but a predetermined time may be added. Alternatively, a constant multiple of the variance (degree of change in transfer delay time) in half of the round trip time may be added. As a result, the reception period length becomes long. By doing so, even if the network congestion temporarily occurs and the transfer delay time becomes large, and the order message arrives after the reception period in which fluctuation is not considered, it can be processed in the order of the time stamp.
  • the transaction order determination unit 114 may process the order message whose time stamp is within the acceptance period, but the time stamp may process the order message before the acceptance period.
  • the order message arrives at the transaction server 100 with an unexpectedly large delay, and the order message that was not processed in the original acceptance period can be processed, albeit with a delay.
  • the reception period length is set in advance. The shorter the reception period, the shorter the time from receiving the order message to processing it. In other words, the shorter the reception period, the shorter the reception period, and the order message will be processed earlier after the transmission. Especially for transactions where high-speed processing is desired, it is desirable that the acceptance period is short.
  • the delay measuring unit 111 measures the transfer delay time of all the transaction terminals 200.
  • the delay measuring unit 111 may exclude the trading terminal 200 that has not sent the order message from the measurement target of the transfer delay time during the period of the predetermined length.
  • the transfer delay time of the trading terminal 200 excluded from the measurement target is longer than that of the other trading terminals 200, the reception period length is shortened, and the order message is processed earlier after the transmission. Become.
  • the message receiving unit 112 may discard the order message whose transfer delay time is smaller than the predetermined value.
  • the predetermined value is a value obtained by subtracting a constant value from the transfer delay time measured by the delay measuring unit 111.
  • the predetermined value may be a value obtained by subtracting the variance of a constant multiple from the average transfer delay time measured by the delay measuring unit 111.
  • the transaction order determination unit 114 may discard the order message suspected of being fraudulent.
  • the transaction server 100 moves the order message whose time stamp is within the acceptance period in the order message stored in the message spooler 130 to the transaction processing spooler 140.
  • the transaction server 100 may process the order message whose time stamp is within the acceptance period without moving.
  • the transaction server 100 may process the order messages whose time stamp is within the acceptance period after sorting them in the order of the time stamp without performing the sorting process.
  • the order message is created and a time stamp is attached to the transaction terminal 200.
  • the trading terminal may create an order message and send it to the gateway, and the gateway may add a time tap and send it to the trading server.
  • Market participants with a large number of trading terminals, such as securities companies, may consolidate the time stamping function into the gateway.
  • the transaction server 100 executes the order message sorting process and the transaction process, but a plurality of servers may process the order messages.
  • the transaction server that processes the order message in the order of transmission time / order time has been described by taking the transaction as an example. However, the processing other than the transaction is processed in the order of the transmission time / request time of the processing request message. May be good.
  • the present invention can take various other embodiments, and further, various changes such as omission and replacement can be made without departing from the gist of the present invention.
  • These embodiments and variations thereof are included in the scope and gist of the invention described in the present specification and the like, and are also included in the scope of the invention described in the claims and the equivalent scope thereof.
  • FIG. 10 is a hardware configuration diagram showing an example of a computer 900 that realizes the function of the transaction server 100 according to the present embodiment.
  • the transaction server 100 according to the present embodiment is realized by, for example, a computer 900 having a configuration as shown in FIG.
  • the computer 900 includes a CPU 901, a ROM 902, a RAM 903, a hard disk 904 (described as HDD in FIG. 10), an input / output interface 905 (described as an input / output I / F (Interface) in FIG. 10), and a communication interface 906 (communication I in FIG. 10). (Described as / F) and a media interface 907 (denoted as media I / F in FIG. 10).
  • the CPU 901 operates based on a program stored in the ROM 902 or the hard disk 904, and is controlled by the control unit 110 of FIG.
  • the ROM 902 stores a boot program executed by the CPU 901 when the computer 900 is started, a program related to the hardware of the computer 900, and the like.
  • the CPU 901 controls an input device 910 such as a mouse and a keyboard and an output device 911 such as a display and a printer via the input / output interface 905.
  • the CPU 901 acquires data from the input device 910 and outputs the generated data to the output device 911 via the input / output interface 905.
  • the hard disk 904 stores a program executed by the CPU 901, data used by the program, and the like.
  • the communication interface 906 receives data from another device (for example, a trading terminal 200 or a time distribution server 300) (for example, a transaction terminal 200 or a time distribution server 300) via a communication network and outputs the data to the CPU 901, and also communicates the data generated by the CPU 901. Send to other devices via the network.
  • the media interface 907 reads the program or data stored in the recording medium 912 and outputs the program or data to the CPU 901 via the RAM 903.
  • the CPU 901 loads the program from the recording medium 912 onto the RAM 903 via the media interface 907, and executes the loaded program.
  • the recording medium 912 is an optical recording medium such as a DVD (Digital Versatile Disk), a magneto-optical recording medium such as MO (Magneto Optical disk), a magnetic recording medium, a conductor memory tape medium, a semiconductor memory, or the like.
  • the CPU 901 of the computer 900 realizes the function of the transaction server 100 by executing the program 121 (see FIG. 1) loaded on the RAM 903. do.
  • the CPU 901 reads the program from the recording medium 912 and executes it.
  • the CPU 901 may read a program from another device via a communication network, or may install and execute the program 121 on the hard disk 904 from the recording medium 912.
  • the message processing server sets a processing request message having a time stamp in a predetermined reception period among the processing request messages (order messages) with a time stamp received in the predetermined reception period. It is characterized by including a processing order determination unit (transaction order determination unit 114) for rearranging the stamps in order of time, and a processing execution unit (transaction processing unit 115) for processing processing request messages in the sorted order.
  • processing request messages can be processed in the order of time stamps (outgoing time, order time). Regardless of the transfer delay time (network distance) from the sender (transaction terminal 200) to the message processing server, the processing request messages are processed in the order of transmission time, so that fairness can be ensured. Become.
  • the message processing server determines the delay measurement unit 111 that measures the transfer delay time from the transmission of the processing request message to the reception by the message processing server for each source of the processing request message, and the length of the reception period. It is further provided with a reception period length determination unit (window size determination unit 113) that is set according to the difference between the maximum value and the minimum value of the transfer delay time.
  • the message processing server can receive all the processing request messages transmitted during the reception period, and can process them in the order of time stamps.
  • the reception period length determination unit is characterized in that the length of the reception period is set according to the degree of change in the transfer delay time.
  • the processing request message sent during the reception period will be sent even if the transfer delay time of the processing request message is longer than usual due to network congestion.
  • the processing server can receive and process in the order of the time stamps.
  • the processing order determination unit excludes processing request messages whose difference between the time stamp of the processing request message and the reception time is smaller than the value obtained by subtracting a predetermined value from the transfer delay time of the transmission source of the processing request message. It is characterized by.
  • the delay measuring unit 111 is characterized in that the transfer delay time is not measured for the sender who has not transmitted the processing request message for a predetermined length of time.
  • the reception period length of the processing request message may be shortened, and the processing request message may be processed earlier after transmission. become.
  • Transaction server (message processing server) 111 Delay measurement unit 112 Message reception unit 113 Window size determination unit (reception period length determination unit) 114 Transaction order determination unit (processing order determination unit) 115 Transaction processing department (processing execution department) 116 Time synchronization unit 130 Message spooler 140 Transaction processing spooler 200 Transaction terminal (sender, source of processing request message) 501-506, 510A, 510B, 510C Order message (processing request message)

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

メッセージ処理サーバ(取引サーバ(100))は、所定の受信期間に受信したタイムスタンプ付きの処理依頼メッセージのなかでタイムスタンプが所定の受付期間の処理依頼メッセージをタイムスタンプの時刻順に並び変える処理順序決定部(取引順序決定部(114))と、並び替えられた順に処理依頼メッセージを処理する処理実行部(取引処理部(115))とを備えることを特徴とする。このようなメッセージ処理サーバは、処理依頼メッセージを到着した順序ではなく、タイムスタンプ(送信時刻)の順序に従った処理を可能にする。

Description

メッセージ処理サーバ、プログラムおよびメッセージ処理方法
 本発明は、タイムスタンプが付与されたメッセージを処理するメッセージ処理サーバ、プログラムおよびメッセージ処理方法に関する。
 高精度・高信頼な時刻(時刻情報)の配信と利用の1つとして、信頼できる第三者である時刻認証局が発行するタイムスタンプがある(非特許文献1,2参照)。このタイムスタンプには、電子文書のハッシュ値、時刻情報、およびハッシュ値と時刻情報との組み合わせに対する時刻認証局の署名が含まれる。当該署名を検証することで、時刻情報が示す時刻における電子文書の存在や、当該時刻以降の非改変の証明とすることができる。例えば、電子文書が契約書である場合には、信頼できる第三者である時刻認証局が、タイムスタンプを発行することで、タイムスタンプの日付における契約書の存在や、この日付以降の非改変を担保することになる。
 高精度・高信頼な時刻の他の利用として、記録/ログや取引/トランザクションに係る時刻に用いる方法がある。1つのシステムのなかで複数の装置でログを取得している場合、システムの記録としては、ログにある時刻(タイムスタンプ)が装置間で同期して正確な時刻である必要がある。また、例えば金融取引のような、複数の参加者が含まれる取引で、発注の順序に従って取引の順序が決まる場合には、正確な発注時刻(注文時刻)が必要となる。
タイムスタンプのしくみ, [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>
 株式を始めとする金融取引は、取引所のサーバに注文メッセージが到着した順番に処理されている。このため、取引所に物理的に近く、サーバへのネットワーク上の距離が近いロケーションが有利となる。サーバから離れている利用者(取引市場の参加者)は、時間的に早く発注したとしてもネットワーク遅延により、サーバに近い利用者より後に注文メッセージがサーバに到着し、取引順序が逆転してしまう可能性がある。近年の株式取引では、高頻度取引が行われており、ミリ秒単位以下の時間差が収益に影響を及ぼすようになっている。発注/注文/処理依頼メッセージのサーバへの到着順序(到着時刻)ではなく、発注の順序(発注時刻、注文時刻)に従って取引順序が決められ、ネットワーク環境に対する利用者間の公平性が担保されることが望ましい。また、このような仕組みを持つ取引所が、利用者(市場参加者)に支持され、より多くの利用者を獲得することが見込まれる。
 本発明は、このような背景を鑑みてなされたのであり、処理依頼メッセージを送信した順番/時刻の順序に従った処理を可能にすることを課題とする。
 前記した課題を解決するため、本発明に係るメッセージ処理サーバは、所定の受信期間に受信したタイムスタンプ付きの処理依頼メッセージのなかで前記タイムスタンプが所定の受付期間の処理依頼メッセージを、前記タイムスタンプの時刻順に並び変える処理順序決定部と、並び替えられた順に前記処理依頼メッセージを処理する処理実行部とを備える。
 本発明によれば、処理依頼メッセージを送信した順番/時刻の順序に従った処理を可能にすることができる。
本実施形態に係る取引サーバ、および取引端末の機能構成図である。 本実施形態に係るメッセージスプーラ、および取引処理スプーラの構成を示す図である。 本実施形態に係り、転送遅延時間を説明するための図である。 本実施形態に係り、受付期間と受信期間との関係を説明するためのグラフである。 本実施形態に係り、複数の受付期間と受信期間との時間的関係を説明するためのグラフである。 本実施形態に係る取引サーバが実行する全体の処理のフローチャートである。 本実施形態に係るメッセージ受信処理のフローチャートである。 本実施形態に係る取引処理のフローチャートである。 本実施形態に係るウィンドウサイズ決定処理のフローチャートである。 本実施形態に係る取引サーバの機能を実現するコンピュータの一例を示すハードウェア構成図である。
 以下、本発明を実施するための形態(実施形態)における取引サーバ(メッセージ処理サーバ)について説明する。取引サーバは、取引端末からの注文メッセージ(処理依頼メッセージ)を受信して、取引端末が注文メッセージに付与したタイムスタンプ(注文時刻、送信時刻)の順序に処理する。詳しくは、取引サーバは、所定の受信期間に受信した注文メッセージのなかで所定の受付期間(注文メッセージが送信された期間)に含まれるタイムスタンプが付与された注文メッセージを抽出し、抽出した注文メッセージをタイムスタンプの早い順に処理する。
 受信期間は、受付期間より時間的に後である。受付期間と受信期間との長さは、取引端末から取引サーバまでの注文メッセージの転送時間(転送遅延時間)に応じて決められる。結果として、受付期間内に取引端末から送信された、タイムスタンプが受付期間内である注文メッセージは、受信期間の終了までには取引サーバが受信するようになっている。このため、取引サーバは、注文メッセージの発信時刻(注文時刻、タイムスタンプの時刻)の順に処理することができるようになり、延いてはネットワーク環境に対する利用者間の公平性を担保できるようになる。また、取引サーバの近くに取引端末が集中する必要性がなくなりネットワーク上に分散するため、注文メッセージの遅延差が生じるようになり、短期的に集中するトラフィックの負荷の低減も可能となる。
≪全体構成≫
 図1は、本実施形態に係る取引サーバ100、および取引端末200の機能構成図である。取引サーバ100と取引端末200とは、ネットワーク800を介して通信可能である。図1には取引端末200は、2つ記載されているが、さらに多くの取引端末200が取引サーバ100に接続されていてもよい。ネットワーク800には、さらに時刻配信サーバ300が接続されており、NTP(Network Time Protocol)やPTP(Precision Time Protocol)などのプロトコルを用いて取引サーバ100と取引端末200とに時刻を配信している(時刻同期を行っている)。
≪取引端末の構成≫
 取引端末200は、コンピュータであって、制御部(不図示)や記憶部(不図示)、時計260、通信部270、ユーザインタフェース280(図1ではUI(User Interface)と記載)を備える。通信部270は、取引サーバ100や時刻配信サーバ300との通信データを送受信する。ユーザインタフェース280は、ディスプレイやキーボードなど含み、取引端末200の利用者からの注文に係る情報を表示したり、注文の操作を受け付けたりする。制御部は、CPU(Central Processing Unit)から構成され、メッセージ生成部211、タイムスタンプ打刻部212、および時刻同期部213を備える。
 時刻同期部213は、NTPやPTPなどを用いて、時刻配信サーバ300の時計と時計260とを同期させて、時計260を正確な時刻に合わせる。
 メッセージ生成部211は、利用者から取引の注文を受け付けて、注文内容を含む注文メッセージを生成する。
 タイムスタンプ打刻部212は、時計260を参照して現在時刻を注文時刻として注文メッセージに付与する。タイムスタンプ打刻部212は、さらに取引端末200または利用者の署名を注文メッセージに付与してもよい。タイムスタンプ(注文時刻)が付与された注文メッセージは、通信部270により取引サーバ100に送信される。タイムスタンプ打刻部212は、現在時刻に替わり想定される送信時刻をタイムスタンプとして付与してもよい。
≪取引サーバの構成≫
 取引サーバ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などが記憶される。
 プログラム121は、コンピュータである取引サーバ100を制御し、後記する図6~図9に記載のメッセージ受信処理、取引処理、ウィンドウサイズ決定処理の処理手順を含む。
 メッセージスプーラ130(後記する図2参照)には、通信部170が受信した注文メッセージが受信時刻と関連付けられて記憶される。
 取引処理スプーラ140には、メッセージスプーラ130に記憶される注文メッセージのなかで、タイムスタンプが所定の受付期間内の注文メッセージが移動され、タイムスタンプ(注文時刻)の順番に処理されて削除される。
 図2は、本実施形態に係るメッセージスプーラ130、および取引処理スプーラ140の構成を示す図である。メッセージスプーラ130には、注文メッセージ501~506が、注文メッセージの受信時刻(取引サーバ100への到着時刻)と関連付けられて記憶される。図2では、注文メッセージ501~506には、それぞれタイムスタンプ(注文時刻)が記載されている。例えば、注文メッセージ503のタイムスタンプは「12:43」(12分43秒)であって、受信時刻は「12:45」(12分45秒)である。
 なお、以下の説明では、時間の最小単位は秒であるとして説明し、時刻は分と秒とで示す。これは、説明しやすくするためであって、時間の最小単位は、例えばミリ秒や50マイクロ秒であってもよい。
 取引処理スプーラ140には、メッセージスプーラ130に記憶される注文メッセージ501~506であって、タイムスタンプが受付期間内である注文メッセージが移動される。図2においては、受付期間は12:42~12:43としており、注文メッセージ502,504,501,503が移動している。なお、移動した注文メッセージは、メッセージスプーラ130から削除されるが、図2では説明の都合上、メッセージスプーラ130に記憶されているように記載している。
≪取引サーバの制御部の構成≫
 図1に戻って、制御部110は、CPUから構成され、遅延測定部111、メッセージ受信部112、ウィンドウサイズ決定部113、取引順序決定部114、取引処理部115、および時刻同期部116を備える。
 遅延測定部111は、取引端末200から取引サーバ100までの注文メッセージの転送時間(転送遅延時間)を測定する。遅延測定部111は、通信パケットの取引端末200と取引サーバ100との間の往復時間の半分を転送遅延時間としてもよいし、NTPやPTPに用いられるメッセージを利用して転送遅延時間を測定してもよい。以下では、遅延測定部111は、取引端末200との通信パケットの往復時間を複数回測定して、その平均値の半分を、当該取引端末200の転送遅延時間と決定する。
 メッセージ受信部112は、通信部170が受信した取引端末200からの注文メッセージに受信時刻を付与してメッセージスプーラ130(図2参照)に格納する。
 ウィンドウサイズ決定部113は、受付期間や受信期間の長さを決定する。ウィンドウサイズ決定部113は、取引端末200の転送遅延時間のなかで最小の転送遅延時間と最大の転送遅延時間との差に基づいて受信期間長(ウィンドウサイズ)を決定する。なお、転送遅延時間や受付期間、受信期間の関係については、図3および図4を参照して後記する。
 取引順序決定部114は、メッセージスプーラ130に記憶される注文メッセージで、タイムスタンプが受付期間内の注文メッセージを取引処理スプーラ140に移動して、タイムスタップの順に(タイムスタンプが早い時刻から遅い時刻へ)並び替える。
 取引処理部115は、取引処理スプーラ140にタイムスタンプの順に記憶される注文メッセージを、タイムスタンプの順に処理して、注文メッセージに含まれる注文内容の取引を実行する。
 時刻同期部116は、NTPやPTPなどを用いて、時刻配信サーバ300の時計と時計160とを同期させて、時計160を正確な時刻に合わせる。
≪転送遅延時間と受付期間と受信期間との関係≫
 図3は、本実施形態に係り、転送遅延時間を説明するための図である。取引端末200A,200B,200Cが注文メッセージ510A,510B,510C(図3では注文Mと記載)を送信して、取引サーバ100が受信するまでの時間である転送遅延時間は、それぞれ1秒、2秒、3秒である。
 図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に到着したことを示す。
 注文メッセージの受付期間をタイムスタンプ(送信時刻)の期間(送信期間)が時刻T1から時刻T3までとすると、該当する注文メッセージは、時刻T2から時刻T5までの間に取引サーバ100に到着することがわかる。つまり、タイムスタンプが時刻T1から時刻T3までの注文メッセージを処理するには、受信時刻が時刻T2から時刻T5までの注文メッセージのなかから当該タイムスタンプの注文メッセージを選択して処理すればよいことになる。このため、ウィンドウサイズ決定部113は、受信期間を時刻T2から時刻T5までと設定する。
 受付期間の開始時刻である時刻T1と、受信期間の開始時刻である時刻T2との差は、取引サーバ100に最も近い取引端末200Aの転送遅延時間となる。受付期間の終了時刻である時刻T3と、受信期間の終了時刻である時刻T5との差は、取引サーバ100から最も遠い取引端末200Cの転送遅延時間となる。
 また、受信期間の長さ(受信期間長)と受付期間の長さ(受付期間長)との差は、転送遅延時間の最大値と最小値との差となる。受信期間長(ウィンドウサイズ)は、転送遅延時間の最大値と最小値との差以上になる。
 このウィンドウサイズは、取引サーバ100に最も近い取引端末200Aと、最も遠い取引端末200Cとが、受付期間内に注文メッセージを送信したときにおける、取引サーバ100の受信時刻(到着時刻)の差となる。換言すれば、最も近い取引端末200Aから受付期間内の最早に発信された注文メッセージ510Aの受信後にウィンドウサイズ時間待っていれば、受付期間内の最遅に発信された最も遠い取引端末200Cからの注文メッセージ510Cが、取引サーバ100に到着することになる。
 図5は、本実施形態に係り、複数の受付期間と受信期間との時間的関係を説明するためのグラフ410である。取引順序決定部114は、取引処理部115が処理する注文メッセージのタイムスタンプの時間を順次、受付期間1、受付期間2、受付期間3と区切る。取引順序決定部114は、メッセージスプーラ130に記憶される注文メッセージで、受付期間1に対応する受信期間1に到着した注文メッセージで、タイムスタンプが受付期間1に含まれる注文メッセージを取引処理スプーラ140に移動して、タイムスタンプの順に並び替える。取引処理部115は、取引処理スプーラ140に記憶される注文メッセージを並び替えられた順に処理する。取引順序決定部114、および取引処理部115とは、上記の処理を受付期間1、受付期間2、受付期間3の順に繰り返す。
≪処理手順≫
 図6は、本実施形態に係る取引サーバ100が実行する全体の処理のフローチャートである。取引サーバ100の制御部110は、ステップS10のメッセージ受信処理(後記する図7参照)、ステップS20の取引処理(後記する図8参照)、およびステップS30のウィンドウサイズ決定処理(後記する図9参照)を並行して同時に処理する。なお、以下の説明では、受付期間長は予め設定されているものとする。
 図7は、本実施形態に係るメッセージ受信処理(図6のステップS10参照)のフローチャートである。メッセージ受信処理は、ステップS11,S12を繰り返す処理である。
 ステップS11においてメッセージ受信部112は、通信部170が出力した取引端末200から受信した注文メッセージを受領する。
 ステップS12においてメッセージ受信部112は、ステップS11で受領した注文メッセージに受信時刻を付与してメッセージスプーラ130に格納する。
 図8は、本実施形態に係る取引処理(図6のステップS20参照)のフローチャートである。取引処理は、受付期間ごとにステップS22~S24を繰り返す処理である。
 ステップS21において制御部110は、受付期間ごとにステップS22~S24を繰り返す処理を開始する。詳しくは、制御部110は、受付期間に対応する受信期間(図5参照)が経過した時点で、ステップS22~S24を実行する。
 ステップS22において取引順序決定部114は、メッセージスプーラ130に記憶される注文メッセージで、タイムスタンプが受付期間内の注文メッセージを取引処理スプーラ140に移動する。
 ステップS23において取引順序決定部114は、取引処理スプーラ140に記憶される注文メッセージをタイムスタンプの順に(タイムスタンプの注文時刻が早いものから遅いものへの順に)並び替える。
 ステップS24において取引処理部115は、取引処理スプーラ140に記憶される注文メッセージを、ステップS23で並び替えた順に取引の処理を実行する。
 図9は、本実施形態に係るウィンドウサイズ決定処理(図6のステップS30参照)のフローチャートである。ウィンドウサイズ決定処理は、ステップS31,S32を繰り返す処理である。
 ステップS31において遅延測定部111は、取引端末200ごとに転送遅延時間を測定する。
 ステップS32においてウィンドウサイズ決定部113は、受信期間長を受付期間長に、ステップS31において測定された転送遅延時間のなかで最大の転送遅延時間と最小の転送遅延時間との差を加算したものと設定する。
≪取引サーバの特徴≫
 取引サーバ100は、受付期間ごとに、受信した注文メッセージのなかでタイムスタンプが受付期間内の注文メッセージを収集して、タイムスタンプの順に並び替えて処理する。処理対象となる注文メッセージの受信期間長は、取引端末からの注文メッセージ転送遅延時間の最大値と最小値との差から設定される。詳しくは、受信期間長は、受付期間長に注文メッセージ転送遅延時間の最大値と最小値との差を加算した長さである。取引サーバ100は、受付期間の終了時刻から最大の転送遅延時間後に処理を開始する。このため、転送遅延時間が最大である取引端末200を含め全ての取引端末200が、受付期間までに送信した注文メッセージを全て受信してから処理を始めることができる。結果として、取引サーバ100は、タイムスタンプが受付期間内の全ての注文メッセージを順に処理することができるようになる。このため、取引サーバ100は、取引端末200のネットワーク的な距離によらず、注文した時刻の順に処理することができる。また、取引サーバ100の近くに取引端末200が集中する必要性がなくなりネットワーク上に分散するため、注文メッセージの遅延差が生じるようになり、短期的に集中するトラフィックの負荷の低減も可能となる。
≪変形例:受信期間≫
 受信期間の終了時刻は、受付期間の終了時刻に最大の転送遅延時間を加えた時刻である。転送遅延時間の揺らぎを加味して、ウィンドウサイズ決定部113は、受信期間の終了時刻(受信期間長)を決めるようにしてもよい。転送遅延時間は、複数回測定した通信パケットの往復時間における平均の半分としているが、所定時間を加えるようにしてもよい。または、往復時間の半分における分散の定数倍(転送遅延時間の変化度)を加えるようにしてもよい。結果的に、受信期間長は長くなることになる。このようにすることで、一時的にネットワーク輻輳が発生して転送遅延時間が大きくなり、揺らぎを考慮しない受信期間を過ぎて注文メッセージが到着しても、タイムスタンプの順に処理することができる。
≪変形例:受付期間≫
 ステップS21において取引順序決定部114は、タイムスタンプが受付期間内の注文メッセージを処理しているが、タイムスタンプが受付期間前の注文メッセージを処理するようにしてもよい。このように処理することで、注文メッセージが予想外に大きく遅延して取引サーバ100に到着して、本来の受付期間では処理されなかった注文メッセージも、遅れてではあるが処理することができる。
≪変形例:受付期間の長さ≫
 上記実施形態においては、受付期間長は予め設定されている。受付期間が短い方が、注文メッセージを受信してから処理するまでの時間が短くなる。つまりは、受付期間が短いほど、受信期間も短くなり、注文メッセージが発信後のより早い時間に処理されることになる。特に高速な処理が望まれる取引では、受付期間が短い方が望ましい。
≪変形例:転送遅延時間の測定≫
 上記した実施形態では、遅延測定部111は、全ての取引端末200に係る転送遅延時間を測定している。遅延測定部111は、所定長の期間中、注文メッセージを送信していない取引端末200を転送遅延時間の測定対象から外してもよい。特に、測定対象から外される取引端末200の転送遅延時間が他の取引端末200より長い場合には、受信期間長が短くなり、注文メッセージは、発信後のより早い時間に処理されることになる。
≪変形例:不正なタイムスタンプへの対応≫
 注文メッセージの取引サーバ100への到着時刻が、タイムスタンプと比較して早すぎる場合には、タイムスタンプの不正が疑われる。詳しくは、注文メッセージの到着時刻とタイムスタンプとの差が、当該注文メッセージの転送遅延時間となる。この転送遅延時間が、遅延測定部111が測定した転送遅延時間と比較して大きく短い場合には、タイムスタンプ(取引端末200)の不正が疑われる。
 メッセージ受信部112は、転送遅延時間が所定値より小さい注文メッセージを破棄するようにしてもよい。所定値としては、遅延測定部111が測定した転送遅延時間から一定値を減じた値である。または、所定値は、遅延測定部111が測定した平均の転送遅延時間から、定数倍の分散を減じた値であってもよい。なお、メッセージ受信部112に替わって、取引順序決定部114が、不正が疑われる注文メッセージを破棄するようにしてもよい。
≪その他の変形例≫
 以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。例えば、取引サーバ100は、メッセージスプーラ130に記憶される注文メッセージのなかでタイムスタンプが受付期間内の注文メッセージを取引処理スプーラ140に移動している。これに対して取引サーバ100は、移動することなくタイムスタンプが受付期間内の注文メッセージを処理するようにしてもよい。また、取引サーバ100は、タイムスタンプが受付期間内の注文メッセージを、タイムスタンプの順に並び替えてから処理しているが、並び替えの処理を行わずタイムスタンプの順に処理してもよい。
 上記した実施形態では、取引端末200において、注文メッセージが作成され、タイムスタンプが付与されている。これに替わり、取引端末が注文メッセージを作成してゲートウェイに送信し、ゲートウェイがタイムスタップを付与して取引サーバに送信するようにしてもよい。証券会社のような多数の取引端末を有する市場参加者が、タイムスタンプ付与の機能をゲートウェイに集約するようにしてもよい。
 上記した実施形態では、取引サーバ100が、注文メッセージの並び替え処理と、取引処理とを実行しているが、複数のサーバが処理するようにしてもよい。
 上記した実施形態では、取引を例に注文メッセージを発信時刻/注文時刻の順に処理する取引サーバを説明したが、取引以外の処理を処理依頼メッセージの発信時刻/依頼時刻の順に処理するようにしてもよい。
 本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
≪ハードウェア構成≫
 図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と記載)を備える。
 CPU901は、ROM902またはハードディスク904に記憶されたプログラムに基づいて作動し、図1の制御部110による制御を行う。ROM902は、コンピュータ900の起動時にCPU901により実行されるブートプログラムや、コンピュータ900のハードウェアに係るプログラムなどを記憶する。
 CPU901は、入出力インターフェイス905を介して、マウスやキーボードなどの入力装置910、およびディスプレイやプリンタなどの出力装置911を制御する。CPU901は、入出力インターフェイス905を介して、入力装置910からデータを取得するとともに、生成したデータを出力装置911へ出力する。
 ハードディスク904は、CPU901により実行されるプログラムおよび当該プログラムによって使用されるデータなどを記憶する。通信インターフェイス906は、通信網を介して不図示の他の装置(例えば、取引端末200や時刻配信サーバ300など)からデータを受信してCPU901へ出力し、また、CPU901が生成したデータを、通信網を介して他の装置へ送信する。
 メディアインターフェイス907は、記録媒体912に格納されたプログラムまたはデータを読み取り、RAM903を介してCPU901へ出力する。CPU901は、プログラムを、メディアインターフェイス907を介して記録媒体912からRAM903上にロードし、ロードしたプログラムを実行する。記録媒体912は、DVD(Digital Versatile Disk)などの光学記録媒体、MO(Magneto Optical disk)などの光磁気記録媒体、磁気記録媒体、導体メモリテープ媒体または半導体メモリなどである。
 例えば、コンピュータ900が本実施形態に係る取引サーバ100として機能する場合、コンピュータ900のCPU901は、RAM903上にロードされたプログラム121(図1参照)を実行することにより、取引サーバ100の機能を実現する。CPU901は、プログラムを記録媒体912から読み取って実行する。この他、CPU901は、他の装置から通信網を介してプログラムを読み込んでもよいし、記録媒体912からハードディスク904にプログラム121をインストールして実行してもよい。
≪効果≫
 以下に、取引サーバ100(メッセージ処理サーバ)の効果を説明する。
 本実施形態に係るメッセージ処理サーバ(取引サーバ100)は、所定の受信期間に受信したタイムスタンプ付きの処理依頼メッセージ(注文メッセージ)のなかでタイムスタンプが所定の受付期間の処理依頼メッセージを、タイムスタンプの時刻順に並び変える処理順序決定部(取引順序決定部114)と、並び替えられた順に処理依頼メッセージを処理する処理実行部(取引処理部115)とを備えることを特徴とする。
 このようなメッセージ処理サーバによれば、処理依頼メッセージ(注文メッセージ)をタイムスタンプ(発信時刻、注文時刻)の順に処理することができるようになる。送信元(取引端末200)からメッセージ処理サーバまでの転送遅延時間(ネットワーク的距離)によらず、処理依頼メッセージの送信時刻の順に処理されるようになり、公平性を担保することができるようになる。
 また、メッセージ処理サーバは、処理依頼メッセージが送信されてメッセージ処理サーバが受信するまでの転送遅延時間を、処理依頼メッセージの送信元ごとに測定する遅延測定部111と、受信期間の長さを、転送遅延時間の最大値と最小値との差に応じて設定する受信期間長決定部(ウィンドウサイズ決定部113)とをさらに備えることを特徴とする。
 このように処理依頼メッセージの受信期間の長さ(受信期間長)が設定されれば、メッセージ処理サーバから遠い送信元からの転送遅延時間が長い処理依頼メッセージであっても、メッセージ処理サーバから近い送信元からの転送遅延時間が短い処理依頼メッセージであっても、受付期間に送信された処理依頼メッセージを、メッセージ処理サーバは全て受信することができ、タイムスタンプの順番に処理することができる。
 受信期間長決定部は、受信期間の長さを、転送遅延時間の変化度に応じて設定することを特徴とする。
 このように処理依頼メッセージの受信期間長が設定されれば、ネットワーク輻輳が発生するなどして通常より処理依頼メッセージの転送遅延時間が長くなっても受付期間に送信された処理依頼メッセージを、メッセージ処理サーバは受信することができ、タイムスタンプの順番に処理することができる。
 処理順序決定部は、処理依頼メッセージのタイムスタンプと受信時刻との差が、当該処理依頼メッセージの送信元の転送遅延時間から所定値を減じた値より小さい処理依頼メッセージを処理対象から除外することを特徴とする。
 このように処理依頼メッセージを除外することで、不正なタイムスタンプが付与され処理依頼メッセージの処理を防ぐことができ、公平性を担保することができるようになる。
 遅延測定部111は、処理依頼メッセージを所定長の期間送信していない送信元については転送遅延時間を測定しないことを特徴とする。
 このように処理依頼メッセージの転送遅延時間測定対象の送信元を削減することで、処理依頼メッセージの受信期間長を短縮できる場合が生じ、処理依頼メッセージが発信後のより早い時間に処理されるようになる。
100 取引サーバ(メッセージ処理サーバ)
111 遅延測定部
112 メッセージ受信部
113 ウィンドウサイズ決定部(受信期間長決定部)
114 取引順序決定部(処理順序決定部)
115 取引処理部(処理実行部)
116 時刻同期部
130 メッセージスプーラ
140 取引処理スプーラ
200 取引端末(送信元、処理依頼メッセージの送信元)
501~506,510A,510B,510C 注文メッセージ(処理依頼メッセージ)

Claims (7)

  1.  所定の受信期間に受信したタイムスタンプ付きの処理依頼メッセージのなかで前記タイムスタンプが所定の受付期間の処理依頼メッセージを、前記タイムスタンプの時刻順に並び変える処理順序決定部と、
     並び替えられた順に前記処理依頼メッセージを処理する処理実行部と
     を備えることを特徴とするメッセージ処理サーバ。
  2.  前記処理依頼メッセージが送信されて前記メッセージ処理サーバが受信するまでの転送遅延時間を、前記処理依頼メッセージの送信元ごとに測定する遅延測定部と、
     前記受信期間の長さを、前記転送遅延時間の最大値と最小値との差に応じて設定する受信期間長決定部とをさらに備える
     ことを特徴とする請求項1に記載のメッセージ処理サーバ。
  3.  前記受信期間長決定部は、前記受信期間の長さを、前記転送遅延時間の変化度に応じて設定する
     ことを特徴とする請求項2に記載のメッセージ処理サーバ。
  4.  前記処理順序決定部は、前記処理依頼メッセージのタイムスタンプと受信時刻との差が、当該処理依頼メッセージの送信元の転送遅延時間から所定値を減じた値より小さい処理依頼メッセージを処理対象から除外する
     ことを特徴とする請求項2に記載のメッセージ処理サーバ。
  5.  前記遅延測定部は、前記処理依頼メッセージを所定長の期間送信していない送信元については前記転送遅延時間を測定しない
     ことを特徴とする請求項2に記載のメッセージ処理サーバ。
  6.  コンピュータを請求項1~5の何れか1項のメッセージ処理サーバとして機能させるためのプログラム。
  7.  メッセージ処理サーバのメッセージ処理方法であって、
     メッセージ処理サーバは、
     所定の受信期間に受信したタイムスタンプ付きの処理依頼メッセージのなかで前記タイムスタンプが所定の受付期間の処理依頼メッセージを、前記タイムスタンプの時刻順に並び変えるステップと、
     並び替えられた順に前記処理依頼メッセージを処理するステップと
     を実行することを特徴とするメッセージ処理方法。
PCT/JP2020/024957 2020-06-25 2020-06-25 メッセージ処理サーバ、プログラムおよびメッセージ処理方法 WO2021260872A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022532170A JPWO2021260872A1 (ja) 2020-06-25 2020-06-25
US18/010,991 US20230267541A1 (en) 2020-06-25 2020-06-25 Message processing server, program and message processing method
PCT/JP2020/024957 WO2021260872A1 (ja) 2020-06-25 2020-06-25 メッセージ処理サーバ、プログラムおよびメッセージ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/024957 WO2021260872A1 (ja) 2020-06-25 2020-06-25 メッセージ処理サーバ、プログラムおよびメッセージ処理方法

Publications (1)

Publication Number Publication Date
WO2021260872A1 true WO2021260872A1 (ja) 2021-12-30

Family

ID=79282118

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/024957 WO2021260872A1 (ja) 2020-06-25 2020-06-25 メッセージ処理サーバ、プログラムおよびメッセージ処理方法

Country Status (3)

Country Link
US (1) US20230267541A1 (ja)
JP (1) JPWO2021260872A1 (ja)
WO (1) WO2021260872A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09244984A (ja) * 1996-03-08 1997-09-19 Nippon Telegr & Teleph Corp <Ntt> イベント順序補正方法
US20200034929A1 (en) * 2018-07-26 2020-01-30 Nasdaq, Inc. In-Order Processing of Transactions

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10283276A (ja) * 1997-04-10 1998-10-23 Nippon Telegr & Teleph Corp <Ntt> イベント順序補正方法
JP2012129857A (ja) * 2010-12-16 2012-07-05 Hitachi Ltd データ処理システム、およびデータ順序保証方法
US9948570B2 (en) * 2014-10-27 2018-04-17 Hitachi, Ltd. Stream data processing method and stream data processing device
CN111092717B (zh) * 2019-12-16 2023-02-21 南京信息工程大学 智能家居环境下基于组认证安全可靠的通信方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09244984A (ja) * 1996-03-08 1997-09-19 Nippon Telegr & Teleph Corp <Ntt> イベント順序補正方法
US20200034929A1 (en) * 2018-07-26 2020-01-30 Nasdaq, Inc. In-Order Processing of Transactions

Also Published As

Publication number Publication date
US20230267541A1 (en) 2023-08-24
JPWO2021260872A1 (ja) 2021-12-30

Similar Documents

Publication Publication Date Title
Kayal et al. A comparison of IoT application layer protocols through a smart parking implementation
US7069325B1 (en) Method and apparatus for handling requests in a network
US5627766A (en) Performance and status monitoring in a computer network
CN102201977B (zh) 批量数据传输
US7286482B2 (en) Decentralized SLS monitoring in a differentiated service environment
EP1239620A2 (en) Relative time synchronization between three or more systems
CN100466551C (zh) 一种实现负载均衡的方法和一种负载均衡设备
CN102684988A (zh) 负荷控制装置及其方法
EP2880839B1 (en) Web caching method and system for content distribution network (cdn)
JPH11259579A (ja) 期限管理実行方法及びゲ―トウェイ機構
CN115296764A (zh) 时间戳置信水平
WO2022115114A1 (en) In-band edge-to-edge round-trip time measurement
CN114338695B (zh) 基于多副本的领导者选举方法、装置、设备及存储介质
WO2021260872A1 (ja) メッセージ処理サーバ、プログラムおよびメッセージ処理方法
Zhang et al. Adaptive marking threshold method for delay-sensitive TCP in data center network
CN113065953B (zh) 一种基于分布式的期货中继交易系统
Zhou et al. TAP: Timeliness‐aware predication‐based replica selection algorithm for key‐value stores
Bergstrom et al. The distributed open network emulator: Using relativistic time for distributed scalable simulation
KR20050084519A (ko) 미들웨어 응답 시간 측정 시스템 및 방법
Wei et al. Measuring client-perceived pageview response time of internet services
JP2014026480A (ja) 複数の情報システムおける出力比較方法
Omarov Exploring uncertainty of delays of the cloud-based web services
Ramachandran et al. TELE: a timing evaluator using layout estimation for high level applications
Zhang et al. Shared bottleneck detection based on trend line regression for multipath transmission
CN115344534A (zh) 文件下载方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20942119

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022532170

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20942119

Country of ref document: EP

Kind code of ref document: A1