JPH09244984A - Event order correction method - Google Patents

Event order correction method

Info

Publication number
JPH09244984A
JPH09244984A JP8051899A JP5189996A JPH09244984A JP H09244984 A JPH09244984 A JP H09244984A JP 8051899 A JP8051899 A JP 8051899A JP 5189996 A JP5189996 A JP 5189996A JP H09244984 A JPH09244984 A JP H09244984A
Authority
JP
Japan
Prior art keywords
event
delay time
communication delay
time
computer
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP8051899A
Other languages
Japanese (ja)
Inventor
Hiroyuki Tokunaga
博之 徳永
Kimihiko Sekino
公彦 関野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP8051899A priority Critical patent/JPH09244984A/en
Publication of JPH09244984A publication Critical patent/JPH09244984A/en
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

PROBLEM TO BE SOLVED: To correct the order reversal of events without tracing back to the past for an application required to be processed continuously timewise by guaranteeing the upper limit of response time. SOLUTION: Communication delay time between respective event transmission side computers and event reception side computers is measured (201), the difference (maximum communication delay time difference: I) of maximum and minimum communication delay time among them is calculated and it is defined as an event storage period (202). The period of T0 +I from the present time T0 is defined as one time slot and a queue for storing the events is prepared (203). When the event arrives, the event is stored in the queue and sorted in an order from the oldest time stamp (204). Then, when the T0 +I comes, the events inside the queue are delivered to a processing routine (206). The order correction of the events is closed in a storage period and a order result in a certain period does not affect the event order of the other period.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、クライアント・サ
ーバの計算機環境において、複数のクライアントがサー
バからの応答時間の上限の保証を要求するようなサービ
スを提供するアプリケーションで、且つ、サービスを受
けるクライアント間で通信回線の速度や帯域による通信
環境の差によって生ずるサービスの差を吸収する必要が
ある場合に、サーバ内でイベントの順序を補正する方法
に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an application for providing a service in which a plurality of clients request guarantee of an upper limit of response time from a server in a client / server computer environment, and a client receiving the service. The present invention relates to a method for correcting the order of events in a server when it is necessary to absorb a difference in service caused by a difference in communication environment due to the speed or band of a communication line between the servers.

【0002】[0002]

【従来の技術】クライアント・サーバ構成を採るアプリ
ケーションで、マルチメディアデータ等の処理を行う場
合、一般に高いリアルタイム性が要求される。また、例
えば、クライアント・サーバ構成を採る対戦型ネットワ
ークゲームなどでは、クライアントにおけるイベントの
発生順とサーバにおけるイベントの処理順序が一致する
必要がある。しかし、クライアント間の通信回線や帯域
による通信環境の差によって、サーバでのイベントの処
理順序が逆転する場合がある。
2. Description of the Related Art When an application having a client / server configuration is used to process multimedia data and the like, high real-time property is generally required. Further, for example, in a battle-type network game having a client / server configuration, the event occurrence order in the client and the event processing order in the server must match. However, the processing order of the events in the server may be reversed due to the difference in the communication environment due to the communication line or bandwidth between the clients.

【0003】従来、処理要求イベントの順序補正方式と
しては、RollBackが知られている。RollB
ackでは、到着したイベントはそのまま処理し、その
時の状態も保存しておく。そして、現在処理しているイ
ベントよりも過去のタイムスタンプを持つイベントが到
着した場合、そのイベントのタイムスタンプ以降から現
在までのイベントの処理を破棄し、そのイベントの受信
前の状態にシステムを復元した後に、そのイベントの処
理から再度行う。
Conventionally, RollBack is known as a sequence correction method for processing request events. RollB
In ack, the arrived event is processed as it is, and the state at that time is also saved. When an event arrives that has a time stamp earlier than the one currently being processed, the processing of the events from the time stamp of that event to the present is discarded, and the system is restored to the state before receiving the event. Then, the process of the event is performed again.

【0004】図6に、RollBackによるイベント
順序補正の具体例を示す。これは、タイムスタンプ1,
3,4のイベントまで処理が終了し、タイムスタンプ5
のイベントの処理中に、該タイムスタンプ5より過去の
タイムスタンプ2を持つイベントが到着した場合(同図
(a))、タイムスタンプ3,4のイベントの処理結果
を破棄して(同図(b))、再度、タイムスタンプ2の
イベントから処理をやり直す(同図(c))、ことを示
している。
FIG. 6 shows a specific example of event sequence correction by RollBack. This is a timestamp 1,
Processing is completed up to events 3 and 4, time stamp 5
When an event having a time stamp 2 earlier than the time stamp 5 arrives during the processing of the event ((a) in the figure), the processing results of the events of the time stamps 3 and 4 are discarded (( b)), the process is restarted from the event of the time stamp 2 ((c) in the figure).

【0005】このように、RollBackでは、過去
に遡るため、応答時間の上限を保証できない、時間的に
連続した処理を行っていて過去に遡ることが許されない
アプリケーションに対応できない、という問題が生じ
る。例えば、先のネットワークゲームをクライアント・
サーバ構成で実現することを考えてみると、遅れて到着
したイベントがあると、その順序補正を行うためにそれ
までの処理を破棄して過去に遡り、再度処理を行う。こ
の時、ゲームに参加しているプレイヤには、ゲームが一
時的に前に戻ったように感じられる。場合によっては、
一度死んだキャラクタが復活し、その後のイベント処理
によっては、そのまま死なずにプレイを続けれるような
ことも起こりうる。
As described above, since RollBack goes back to the past, there arises a problem that the upper limit of the response time cannot be guaranteed, and it is not possible to deal with an application that is not allowed to go back to the past because it is performing temporally continuous processing. For example, the client of the previous network game
Considering realization with a server configuration, if there is an event that arrives late, the processing up to that point is discarded in order to correct the order, the processing is traced back to the past, and the processing is performed again. At this time, the players participating in the game feel that the game has temporarily returned. In some cases,
It is possible that a once-dead character will be revived, and depending on the subsequent event processing, it will be possible to continue playing without dying.

【0006】[0006]

【発明が解決しようとする課題】従来のRollBac
kでは、順序逆転が検出された時点で補正を行うため、
時間的に連続に処理されるようなアプリケーションに対
してうまく順序補正を行うことができない問題があっ
た。
SUMMARY OF THE INVENTION Conventional RollBac
In k, since correction is performed at the time when the sequence inversion is detected,
There is a problem that the order correction cannot be performed well for an application that is processed continuously in time.

【0007】本発明は、このような問題を解決するため
になされたものであり、その目的は、ネットワークゲー
ムのようなアプリケーションに対して応答時間の上限す
なわちリアルタイム性を保証でき、過去に遡ることな
く、到着したイベントの順序逆転の補正を行うことにあ
る。
The present invention has been made to solve such a problem, and an object thereof is to guarantee an upper limit of response time, that is, real-time property for an application such as a network game, and trace it back to the past. Instead, it is to correct the order reversal of the arriving event.

【0008】[0008]

【課題を解決するための手段】イベントの順序逆転は、
イベント送信側計算機(クライアント)とイベント受信
側計算機(サーバ)間の通信遅延時間の差により生じ
る。今、全送信側計算機が同一時刻にイベントを発出し
たとすると、そのイベントは、通信遅延時間の差によ
り、最小の遅延時間を持つ送信側計算機から発出された
イベントから最大の遅延時間を持つ送信側計算機から発
出されたイベントの順に受信側計算機に到着する。すな
わち、イベントの順序逆転は、送信側計算機と受信側計
算機の通信遅延時間の中で最大の通信遅延時間と最小の
通信遅延時間の差の区間で発生する。
[Means for solving the problem] The order reversal of events is
It occurs due to the difference in communication delay time between the event sending computer (client) and the event receiving computer (server). Now, assuming that all sending side computers issue an event at the same time, that event will be sent with the maximum delay time from the event issued from the sending side computer with the smallest delay time due to the difference in communication delay time. The event arrives at the receiving computer in the order of events issued from the computer at the receiving end. That is, the event sequence inversion occurs in the section of the difference between the maximum communication delay time and the minimum communication delay time among the communication delay times of the transmitting side computer and the receiving side computer.

【0009】本発明では、上記通信遅延時間の最大・最
小の差を計算して、これを最大通信遅延時間差とし、こ
の最大通信遅延差の期間でイベントを蓄積し、そのイベ
ントを蓄積中にイベントの順序逆転を検出、補正する。
蓄積期間終了後には、その期間中に蓄積されたイベント
の順序が確定したものとして処理を行う。蓄積期間終了
後に過去のイベントが遅れて到着したとしても、そのイ
ベントは次のイベント蓄積期間内に蓄積・順序補正を行
い、前の期間に遡って順序補正は行わない。
According to the present invention, the difference between the maximum and the minimum of the communication delay times is calculated, the difference is set as the maximum communication delay time difference, the event is accumulated during the period of the maximum communication delay difference, and the event is accumulated during the accumulation of the event. Detect and correct the order inversion of.
After the accumulation period ends, the processing is performed assuming that the order of the events accumulated during the period is fixed. Even if a past event arrives after the end of the accumulation period, the event is subjected to the accumulation / order correction within the next event accumulation period, and the order correction is not performed retroactively to the previous period.

【0010】具体的には、本発明では、送信側計算機に
おいてイベント付与されたタイムスタンプと受信側計算
機の時刻を比較することにより、通信遅延時間を計測す
ることを実現しており、この通信遅延時間の平均を計算
することにより、個々の通信遅延時間の揺らぎを除いた
信頼性の高い通信遅延時間を計算することが可能とな
る。また、送信側計算機毎の通信遅延時間の差は、先に
発出したにもかかわらず、通信遅延時間が大きいため
に、通信遅延時間の小さい送信側計算機が後から送信し
たイベントが受信側計算機に先に到着するイベントの順
序逆転の原因となるが、本発明では、この通信遅延時間
の最大・最小の差である最大遅延時間差を計算し、この
最大通信遅延時間差でイベントを蓄積・ソートすること
により、イベントの順序逆転を補正することが可能であ
る。
Specifically, according to the present invention, it is possible to measure the communication delay time by comparing the time stamp given to the event in the sending computer with the time in the receiving computer. By calculating the average of time, it becomes possible to calculate a reliable communication delay time excluding the fluctuation of each communication delay time. In addition, the difference in the communication delay time for each sending computer is that the communication delay time is large despite the fact that it is issued first, so the event that the sending computer with a small communication delay time sent later is sent to the receiving computer. Although it causes the order inversion of the events that arrive first, in the present invention, the maximum delay time difference which is the maximum and minimum difference of the communication delay times is calculated, and the events are accumulated / sorted by the maximum communication delay time difference. By this, it is possible to correct the order inversion of the event.

【0011】[0011]

【発明の実施の形態】図1は、本発明が適用されるクラ
イアント・サーバの計算機環境の概略ブロック図であ
る。図において、複数のクライアント計算機(イベント
送信側計算機)10−1〜10〜Nはネットワーク20
を介してサーバ計算機(イベント受信側計算機)30と
接続されている。クライアント計算機10−1〜10−
Nのプログラムを(クライアントプログラム)は、各
々、イベントをサーバ計算機30に対して送信する。各
イベントには発出時のタイムスタンプが付与されてい
る。サーバ計算機30では、イベント待ち行列制御機構
31において、各クライアント計算機10−1〜10−
Nから到着したイベントをイベントキュー32に蓄積し
て発生時刻順にソートし、補正期間終了後、イベントキ
ュー32のイベントをサーバプログラム33に渡す。本
発明は、このイベント待ち行列制御機構31におけるイ
ベント順序補正処理にかかわる。
1 is a schematic block diagram of a client / server computer environment to which the present invention is applied. In the figure, a plurality of client computers (event transmitting side computers) 10-1 to 10-N are network 20.
Is connected to the server computer (event receiving side computer) 30 via. Client computer 10-1 to 10-
Each of the N programs (client program) transmits an event to the server computer 30. Each event has a time stamp at the time of departure. In the server computer 30, each client computer 10-1 to 10-in the event queue control mechanism 31.
Events arriving from N are accumulated in the event queue 32 and sorted in the order of occurrence time, and after the correction period ends, the events in the event queue 32 are passed to the server program 33. The present invention relates to the event order correction processing in the event queue control mechanism 31.

【0012】以下に、本発明のイベント順序補正方法の
実施例について詳述する。これにはタイムスロット法と
ウィンドウ法がある。
An embodiment of the event sequence correction method of the present invention will be described in detail below. There are time slot method and window method.

【0013】〈タイムスロット方式〉図2は、本発明の
実施例の一つであるタイムスロット法によるイベント順
序補正の処理フローを示したものである。タイムスロッ
ト法は、タイムスロットと呼ばれる固定的なイベント蓄
積期間においてイベントを蓄積し、イベントの順序補正
を行う手法である。以下にその手順を示す。
<Time Slot Method> FIG. 2 shows a processing flow of event sequence correction by the time slot method which is one of the embodiments of the present invention. The time slot method is a method of accumulating events in a fixed event accumulation period called a time slot and correcting the order of the events. The procedure is described below.

【0014】(1)送信側計算機Ciと受信側計算機S
間の通信遅延時間diを全送信側計算機について計測す
る(ステップ201)。これは、送信側計算機が送信す
るイベント上のタイムスタンプと受信側計算機の時刻を
比較することにより行う。この計測した各通信遅延時間
のうち、最大の通信遅延時間dmax(=max(di))
と最小の通信遅延時間dmin=(min(di))を求
め、この最大通信遅延時間と最小通信遅延時間の差とし
て定義される最大通信遅延時間差I(=dmax−dmin
を計算する。この最大通信遅延時間差Iに基づいて、固
定的なイベント蓄積期間(タイムスロット)を設定す
る。ここでは、例としてイベント蓄積期間として、最大
通信遅延時間差Iをそのまま用いることにする(ステッ
プ202)。ここまでが、イベントの順序補正期間を決
定するための準備期間(トレーニング期間)である。な
お、各送信側計算機がタイムスタンプを付与したイベン
トを何回か繰り返し送信するようにすれば、送信側計算
機と受信側計算機間の通信遅延時間diを平均通信遅延
時間として計測することができ、この平均通信遅延時間
を使用して最大通信遅延時間差を計算することにより、
時々刻々の負荷変動等による揺らぎを吸収できる。
(1) Transmitting computer C i and receiving computer S
The communication delay time d i between them is measured for all computers on the transmitting side (step 201). This is done by comparing the time stamp of the event sent by the sending computer with the time of the receiving computer. Among the measured communication delay times, the maximum communication delay time d max (= max (d i ))
And the minimum communication delay time d min = (min (d i )), and the maximum communication delay time difference I (= d max −d min ) defined as the difference between this maximum communication delay time and the minimum communication delay time.
Is calculated. A fixed event accumulation period (time slot) is set based on the maximum communication delay time difference I. Here, as an example, the maximum communication delay time difference I is used as it is as the event accumulation period (step 202). The process up to this point is the preparation period (training period) for determining the event sequence correction period. If each transmitting computer repeatedly transmits an event with a time stamp, the communication delay time d i between the transmitting computer and the receiving computer can be measured as the average communication delay time. , By calculating the maximum communication delay time difference using this average communication delay time,
Fluctuations due to momentary load fluctuations can be absorbed.

【0015】(2)実際のサービス提供時、現在時刻T
0からT0+Iの期間を一つのタイムスロットとして、各
送信側計算機から到着するイベントを蓄積するためイベ
ントキューを準備する(ステップ203)。
(2) At the time of actual service provision, the current time T
The period from 0 to T 0 + I is set as one time slot, and an event queue is prepared for accumulating the events arriving from each transmitting computer (step 203).

【0016】(3)送信側計算機Ciから到着したイベ
ントEiをイベントキューに蓄積し、このイベントEi
付与されているタイムスタンプの情報を基に、イベント
キュー内の他のイベントと該イベントEiをタイムスタ
ンプの古い順にソートする(ステップ204)。
(3) The event E i arriving from the sending computer C i is accumulated in the event queue, and based on the time stamp information attached to this event E i , the other events in the event queue The events E i are sorted from the oldest time stamp (step 204).

【0017】(4)現在時刻Tがタイムスロットの期限
であるT0+Iを越えたかを検査し(ステップ20
5)、現在時刻Tが期限を越えた場合には、イベントキ
ュー内の順序が確定したものとして、各イベントを処理
ルーチン(サーバプログラム)へ渡す(ステップ20
6)。現在時刻Tが期限を越えない場合はステップ20
4に戻る。
(4) It is checked whether the current time T exceeds the time slot deadline T 0 + I (step 20).
5) When the current time T has exceeded the deadline, it is determined that the order in the event queue is fixed, and each event is passed to the processing routine (server program) (step 20).
6). Step 20 if the current time T does not exceed the deadline
Return to 4.

【0018】(5)イベントキューの各イベントを処理
ルーチンへ渡したなら、前回が通信遅延時間計測から一
定時間経過したか検査し(ステップ207)、経過しな
い場合は、ステップ203に戻り、次のタイムスロット
を設定して、新たなイベントキューを準備し、再度イベ
ントの蓄積と順序補正を行っていく。一方、前回の通信
遅延時間計測後、一定時間が経過した場合には、ステッ
プ201に戻り、再度受信側計算機と送信側計算機間の
通信遅延時間を計測して、最大通信遅延時間差Iを更新
し、新たなイベント蓄積期間(タイムスロット)を設定
する。
(5) If each event in the event queue is passed to the processing routine, it is checked whether a predetermined time has passed since the communication delay time measurement (step 207). If not, the process returns to step 203 to proceed to the next step. Set a time slot, prepare a new event queue, and accumulate the events and correct the order again. On the other hand, if a certain time has elapsed after the last communication delay time measurement, the process returns to step 201, the communication delay time between the receiving computer and the transmitting computer is measured again, and the maximum communication delay time difference I is updated. , Set a new event accumulation period (time slot).

【0019】図4は、本タイムスロット法でイベント順
序補正がどのように行われるかを示した図である。図4
に示すように、時間軸を複数の固定的な蓄積期間(タイ
ムスロット)で区切り、到着したイベントをイベント蓄
積期間終了時まで蓄積する。そして、この蓄積期間中に
到着したイベントを、各イベントのタイムスタンプの古
い順にソートする。したがって、先に発生したイベント
が遅れて到着した場合には、キュー内でのイベントの順
序が入れ替えられ、自然にイベントの順序補正が行われ
る。図4では、先に発生したタイムスタンプ3のイベン
トが、後に発生したタイムスタンプ4のイベントより遅
れて到着した場合、両者の順序がキュー内で入れ替えら
れる例を示している。これにより、イベント蓄積期間終
了時は、タイムスタンプ1〜5の順の正しいイベント順
序が確定する。
FIG. 4 is a diagram showing how the event sequence correction is performed in this time slot method. FIG.
As shown in, the time axis is divided into a plurality of fixed accumulation periods (time slots), and the arrived event is accumulated until the end of the event accumulation period. Then, the events that have arrived during this accumulation period are sorted in ascending order of the time stamp of each event. Therefore, when an event that occurred earlier arrives later, the order of the events in the queue is changed, and the order of the events is naturally corrected. FIG. 4 shows an example in which, when the event of the time stamp 3 that occurs earlier arrives later than the event of the time stamp 4 that occurs later, the order of both events is switched in the queue. As a result, at the end of the event accumulation period, the correct event sequence in the order of the time stamps 1 to 5 is established.

【0020】本タイムスロット法では、イベントの順序
補正はその補正期間内で閉じており、他の補正期間内で
の順序補正結果がその補正期間内のイベントの順序に影
響を与えることはない。
In this time slot method, the order correction of the events is closed within the correction period, and the result of the order correction within another correction period does not affect the order of the events within the correction period.

【0021】〈ウィンドウ法〉図3は、本発明の実施例
の他の一つであるウィンドウ法によるイベント順序補正
の処理フローを示したものである。ウィンドウ法は、到
着した各イベント毎にウィンドウサイズで与えられる蓄
積期間を割当て、蓄積し、イベントの順序補正を行う手
法である。以下にその手順を示す。
<Window Method> FIG. 3 shows a processing flow of event sequence correction by the window method which is another embodiment of the present invention. The window method is a method of allocating an accumulation period given by the window size for each event that has arrived, accumulating it, and correcting the order of the events. The procedure is described below.

【0022】(1)送信側計算機Ciと受信側計算機S
間の通信遅延時間diを全送信側計算機について計測す
る(ステップ301)。この計測した各通信遅延時間の
うち、最大の通信遅延時間dmax(=max(di))と
最小の通信遅延時間dmin=(min(di))を求め、
この最大通信遅延時間と最小通信遅延時間の差として定
義される最大通信遅延時間差I(=dmax−dmin)を計
算する。この最大通信遅延時間差Iを基に、イベント蓄
積期間であるウィンドウサイズを設定する。ここでは、
例としてイベント蓄積期間として、最大通信遅延時間差
Iをそのまま用いることにする(ステップ302)。こ
こまでが、イベントの順序補正期間を決定するための準
備期間(トレーニング期間)である。この場合も、各送
信側計算機がタイムスタンプを付与したイベントを何回
か繰り返し送信して、送信側計算機と受信側計算機間の
通信遅延時間diを平均通信遅延時間として計測し、こ
の平均通信遅延時間を用いて最大通信遅延時間差を計算
してもよい。
(1) Transmitting computer C i and receiving computer S
The communication delay time d i between them is measured for all computers on the transmitting side (step 301). Among the measured communication delay times, the maximum communication delay time d max (= max (d i )) and the minimum communication delay time d min = (min (d i )) are obtained,
The maximum communication delay time difference I (= d max −d min ) defined as the difference between the maximum communication delay time and the minimum communication delay time is calculated. Based on this maximum communication delay time difference I, the window size which is the event accumulation period is set. here,
As an example, the maximum communication delay time difference I is used as it is as the event accumulation period (step 302). The process up to this point is the preparation period (training period) for determining the event sequence correction period. In this case as well, each transmitting computer repeatedly transmits the event to which the time stamp has been added several times, and the communication delay time d i between the transmitting computer and the receiving computer is measured as the average communication delay time. The maximum communication delay time difference may be calculated using the delay time.

【0023】(2)実際のサービス提供時、受信側計算
機にイベントEiが到着したら、該到着したイベントEi
の到着時刻Aiを記録する(ステップ303)。ここ
で、該イベントEiの蓄積期間はAi+Iで表わされる。
(2) When the event E i arrives at the receiving computer during the actual service provision, the arrived event E i
The arrival time A i is recorded (step 303). Here, the accumulation period of the event E i is represented by A i + I.

【0024】(3)到着イベントEiをイベントキュー
に蓄積し、該到着イベントEiに付与されているタイム
スタンプの情報を基に、イベントキュー内の他のイベン
トと該イベントEiをタイムスタンプの古い順にソート
する(ステップ304)。
(3) The arrival event E i is accumulated in the event queue, and other events in the event queue and the event E i are time stamped based on the time stamp information given to the arrival event E i. (Step 304).

【0025】(4)イベントキュー内に、蓄積期間(A
j+I)が現在時刻Tを越えたイベントEjが存在するか
検査し(ステップ305)、経過したイベントEjがあ
れば、そのイベントEjを処理ルーチン(サーバプログ
ラム)に渡す(ステップ306)。蓄積期間を経過した
イベントがなければ、そのままステップ303に戻る。
(4) In the event queue, the accumulation period (A
j + I) is examined whether the events E j beyond the current time T exists (step 305), if any events older E j, and passes the event E j to a processing routine (server program) (step 306) . If no event has passed the accumulation period, the process directly returns to step 303.

【0026】(5)蓄積期間の経過したイベントEj
処理ルーチンへ渡した後、前回の通信遅延時間計測から
一定時間が経過したか検査し(ステップ307)、経過
しない場合はステップ303に戻る。一方、前回の通信
遅延時間計測後、一定時間が経過した場合には、ステッ
プ301に戻り、再度受信側計算機と送信側計算機毎の
通信遅延時間を計測して、最大通信遅延時間差Iを更新
し、新たなイベント蓄積期間(ウィンドウサイズ)を設
定する。
(5) After passing the event E j for which the accumulation period has passed to the processing routine, it is inspected whether a fixed time has passed since the previous measurement of the communication delay time (step 307). If not, the process returns to step 303. . On the other hand, when a certain time has elapsed after the previous communication delay time measurement, the process returns to step 301, the communication delay time of each of the receiving computer and the transmitting computer is measured again, and the maximum communication delay time difference I is updated. , Set a new event accumulation period (window size).

【0027】図5は、本ウィンドウ法でイベント順序が
どのように行われるかを示した図である。図5に示すよ
うに、受信側計算機に到着したイベント毎にイベント蓄
積期間(I)を割当て、該割当てられた蓄積期間が終了
するまでイベントキューに蓄積する。そして、この蓄積
期間中に到着したイベントを、各イベントのタイムスタ
ンプの古い順にキュー内でソートする。したがって、先
に発生したイベントが遅れて到着した場合には、キュー
内でのイベントの順序が入れ替えられ、イベントの順序
補正が行われる。図4では、先に発生したタイムスタン
プ3のイベントが、後に発生したタイムスタンプ4のイ
ベントより遅れて到着した場合、タイムスタンプ4のイ
ベントがまだキュー内にあることを利用して、両者の順
序を入れ替える例を示している。これにより、蓄積期間
を経過した各イベントは、自然に順序補正が終了してお
り、実際の発生順にイベントの処理が行われる。
FIG. 5 is a diagram showing how the event sequence is performed in this window method. As shown in FIG. 5, an event accumulation period (I) is assigned to each event that arrives at the receiving computer, and the event is accumulated in the event queue until the assigned accumulation period ends. Then, the events that have arrived during this accumulation period are sorted in the queue in the order of oldest time stamps of each event. Therefore, if an earlier event arrives later, the order of the events in the queue is changed, and the order of the events is corrected. In FIG. 4, when the event of the time stamp 3 that occurs earlier arrives later than the event of the time stamp 4 that occurs later, the fact that the event of the time stamp 4 is still in the queue is used to Shows an example of exchanging. As a result, the order correction is naturally completed for each event that has passed the accumulation period, and the event processing is performed in the actual occurrence order.

【0028】本ウィンドウ法も、先のタイムスロット法
と同様にイベントの順序補正は蓄積期間内で閉じてお
り、ある蓄積期間での順序補正結果が他の蓄積期間のイ
ベントの順序に影響を与えることはない。
Also in this window method, the event order correction is closed within the accumulation period as in the time slot method, and the result of the order correction in a certain accumulation period affects the order of events in other accumulation periods. There is no such thing.

【0029】[0029]

【発明の効果】以上説明したように、本発明のイベント
順序補正方法によれば、イベントの順序補正は蓄積期間
内で閉じているため、応答時間の上限を保証でき、時間
的に連続した処理を行っていて過去に遡ることが許され
ないアプリケーションに対してもうまく順序補正を行う
ことが可能になる。
As described above, according to the event order correction method of the present invention, since the event order correction is closed within the accumulation period, the upper limit of the response time can be guaranteed, and the continuous processing in time can be performed. It is possible to successfully perform order correction even for an application that is performing the above and is not allowed to go back in the past.

【0030】また、ネットワークの通信遅延は通信回線
及びネットワークの負荷や送信側・受信側計算機の負荷
などにより、揺らぎが生じるが、本発明では、イベント
の蓄積期間の計算に必要な受信側計算機と送信側計算機
毎の通信遅延時間の計測と蓄積期間の再計算を定期的に
行うことにより、常に最適なイベント蓄積期間を維持し
続けることが可能になる。
Further, the communication delay of the network fluctuates due to the load of the communication line and the network, the load of the transmitting side / receiving side computers, and the like. In the present invention, however, it is different from the receiving side computer required for calculating the event accumulation period. By periodically measuring the communication delay time and recalculating the storage period for each sending computer, it becomes possible to always maintain the optimum event storage period.

【0031】さらに、本発明では、受信側計算機と送信
側計算機毎の通信遅延時間の計測を複数回繰り返し、こ
の通信遅延時間の平均を計算することにより、個々の通
信遅延時間の揺らぎを除いた信頼性の高い通信遅延時間
を求めることが可能となる。
Further, according to the present invention, the fluctuation of the individual communication delay time is removed by repeating the measurement of the communication delay time for each of the receiving side computer and the transmitting side computer a plurality of times and calculating the average of this communication delay time. It is possible to obtain a highly reliable communication delay time.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明が適用されるクライアント・サーバ・シ
ステムの概略ブロック図である。
FIG. 1 is a schematic block diagram of a client server system to which the present invention is applied.

【図2】本発明の一実施例のタイムスロット法でのイベ
ント順序補正の処理フローを示す図である。
FIG. 2 is a diagram showing a processing flow of event order correction in the time slot method according to the embodiment of the present invention.

【図3】本発明の他の実施例のウィンドウ法でのイベン
ト順序補正の処理フローを示す図である。
FIG. 3 is a diagram showing a processing flow of event sequence correction by a window method according to another embodiment of the present invention.

【図4】タイムスロット法でイベントの順序補正がどの
ように行われるかを示した図である。
FIG. 4 is a diagram showing how event order correction is performed by the time slot method.

【図5】ウィンドウ法でイベントの順序補正がどのよう
に行われるかを示した図である。
FIG. 5 is a diagram showing how event order correction is performed by the window method.

【図6】従来のRollBackによるイベントの順序
補正がどのような手順で行われるかを示した図である。
FIG. 6 is a diagram showing a procedure of a conventional event order correction by RollBack.

【符号の説明】[Explanation of symbols]

10−1〜10−N クライアント計算機 20 ネットワーク 30 サーバ計算機 31 イベント待ち行列制御機構 32 イベントキュー 33 サーバプログラム 10-1 to 10-N Client computer 20 Network 30 Server computer 31 Event queue control mechanism 32 Event queue 33 Server program

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 複数のクライアント計算機が通信回線あ
るいはネットワークを介してサーバ計算機と接続された
クライアント・サーバ・システムにおいて、時刻が一致
している環境で、各クライアント計算機(以下、イベン
ト送信側計算機という)から発出されたイベントの処理
順序をサーバ計算機(以下、イベント受信側計算機とい
う)にて補正するイベント順序補正方法にであって、 各イベント送信側計算機とイベント受信側計算機間の通
信遅延時間を計測し、 前記各イベント送信側計算機とイベント受信側計算機間
の通信遅延時間の中で最大の通信遅延時間と最小の通信
遅延時間の差(以下、最大遅延時間差という)を計算
し、 前記最大遅延時間差に基づいてイベント蓄積期間を設定
し、 前記イベント蓄積時間において、イベントを蓄積し、該
イベントに付与されているタイムスタンプに基づいて発
出順にソートする、ことを特徴とするイベント順序補正
方法。
1. In a client-server system in which a plurality of client computers are connected to a server computer via a communication line or a network, each client computer (hereinafter referred to as an event transmission side computer) in an environment in which the times are the same. ) Is an event order correction method for correcting the processing order of the events issued by the server computer (hereinafter referred to as the event receiving computer), the communication delay time between each event transmitting computer and the event receiving computer The maximum delay is calculated by calculating the difference between the maximum communication delay time and the minimum communication delay time (hereinafter referred to as the maximum delay time difference) among the communication delay times between the event transmitting side computer and the event receiving side computer. Set the event accumulation period based on the time difference, and set the event at the event accumulation time. Product, and sorting of the dispatch order based on the time stamp given to the event, the event reordering wherein the.
【請求項2】 請求項1記載のイベント順序方法におい
て、各イベント送信側計算機とイベント受信側計算機間
の通信遅延時間の計測及び該計測に基づく最大遅延時間
差の計算を、一定時間経過毎に行い、イベント蓄積期間
を更新することを特徴とするイベント順序補正方法。
2. The event ordering method according to claim 1, wherein the measurement of the communication delay time between each event transmission side computer and the event reception side computer and the calculation of the maximum delay time difference based on the measurement are performed at fixed time intervals. , An event order correction method characterized by updating an event accumulation period.
【請求項3】 請求項1又は2記載のイベント順序補正
方法において、各イベント送信側計算機とイベント受信
側計算機間の通信遅延時間の計測を複数回繰り返し、そ
の平均値を求めることを特徴とするイベント順序補正方
法。
3. The event order correction method according to claim 1 or 2, wherein the measurement of the communication delay time between each event transmission side computer and the event reception side computer is repeated a plurality of times, and the average value thereof is obtained. Event order correction method.
JP8051899A 1996-03-08 1996-03-08 Event order correction method Pending JPH09244984A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8051899A JPH09244984A (en) 1996-03-08 1996-03-08 Event order correction method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8051899A JPH09244984A (en) 1996-03-08 1996-03-08 Event order correction method

Publications (1)

Publication Number Publication Date
JPH09244984A true JPH09244984A (en) 1997-09-19

Family

ID=12899733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8051899A Pending JPH09244984A (en) 1996-03-08 1996-03-08 Event order correction method

Country Status (1)

Country Link
JP (1) JPH09244984A (en)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187534A (en) * 1996-09-27 1998-07-21 Hewlett Packard Co <Hp> Method and system for maintaining strong order in coherent memory system
JPH10334027A (en) * 1997-05-30 1998-12-18 Oki Electric Ind Co Ltd Client-server system
JPH11110232A (en) * 1997-10-08 1999-04-23 Fujitsu Ltd Time management change device and external interrupt protection device
JPH11196126A (en) * 1997-12-09 1999-07-21 Samsung Electron Co Ltd Message processing method of multiuser game program
JPH11212818A (en) * 1998-01-23 1999-08-06 Mitsubishi Electric Corp Decentralized simulation system
JPH11312093A (en) * 1998-04-28 1999-11-09 Hitachi Ltd Distributed processing system
JP2000155693A (en) * 1998-11-18 2000-06-06 Fujitsu Ltd Message controller
JP2000262743A (en) * 1999-03-12 2000-09-26 Nec Corp Remote communicating game device
JP2000293387A (en) * 1999-04-05 2000-10-20 Nec Corp Event notification system
JP2001017735A (en) * 1999-07-05 2001-01-23 Namco Ltd Game operation integrated processing unit and information storage medium
JP2001087560A (en) * 1999-09-24 2001-04-03 Midway Amusement Games Llc System and method of processing network for video game
JP2004070582A (en) * 2002-08-05 2004-03-04 Nec Corp Event notification task control processing system and method and its program
JP2004078665A (en) * 2002-08-20 2004-03-11 Nec Corp Task control apparatus and task control method
JP2004523326A (en) * 2001-03-29 2004-08-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Network latency compensation for multiplayer games
JP2005250659A (en) * 2004-03-02 2005-09-15 Nec Mobiling Ltd Task processing method and device using real time os and program
JP2005309950A (en) * 2004-04-23 2005-11-04 Oki Data Corp Communication device
JP2006305042A (en) * 2005-04-28 2006-11-09 Sega Corp Game information processing device and game control program
JP2007006953A (en) * 2005-06-28 2007-01-18 Konami Digital Entertainment:Kk Game system and its control method, game apparatus and program
WO2007069390A1 (en) * 2005-12-16 2007-06-21 Konami Digital Entertainment Co., Ltd. Game machine, game machine control method, information storage medium, and network game system
WO2010064471A1 (en) * 2008-12-05 2010-06-10 株式会社ソニー・コンピュータエンタテインメント Simulation system
US8137198B2 (en) 2005-06-28 2012-03-20 Konami Digital Entertainment Co., Ltd. Game system, method for controlling game system, game device therefor, and program therefor
US8819355B2 (en) 2009-12-11 2014-08-26 Nec Corporation Information processing apparatus, information processing method, and program
JP2015501031A (en) * 2011-10-31 2015-01-08 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン Apparatus and method for transferring an event detector process
JP2016026642A (en) * 2015-09-17 2016-02-18 グリー株式会社 Game management program, game management method, and game management system
JP2020500345A (en) * 2016-09-02 2020-01-09 アイイーエックス グループ,インコーポレーテッド System and method for creating a temporally accurate event stream
JP2020502647A (en) * 2016-12-15 2020-01-23 アビニシオ テクノロジー エルエルシー Heterogeneous event queue
WO2021260872A1 (en) * 2020-06-25 2021-12-30 日本電信電話株式会社 Message processing server, program and message processing method
EP3827395A4 (en) * 2018-07-26 2022-05-04 Nasdaq, Inc. In-order processing of transactions
WO2023002681A1 (en) * 2021-07-20 2023-01-26 コニカミノルタ株式会社 Information processing system, and information processing program

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187534A (en) * 1996-09-27 1998-07-21 Hewlett Packard Co <Hp> Method and system for maintaining strong order in coherent memory system
JPH10334027A (en) * 1997-05-30 1998-12-18 Oki Electric Ind Co Ltd Client-server system
JPH11110232A (en) * 1997-10-08 1999-04-23 Fujitsu Ltd Time management change device and external interrupt protection device
JPH11196126A (en) * 1997-12-09 1999-07-21 Samsung Electron Co Ltd Message processing method of multiuser game program
US6125386A (en) * 1997-12-09 2000-09-26 Samsung Electronics Co., Ltd. Method for processing messages in multiuser dungeon
JPH11212818A (en) * 1998-01-23 1999-08-06 Mitsubishi Electric Corp Decentralized simulation system
JPH11312093A (en) * 1998-04-28 1999-11-09 Hitachi Ltd Distributed processing system
JP2000155693A (en) * 1998-11-18 2000-06-06 Fujitsu Ltd Message controller
JP2000262743A (en) * 1999-03-12 2000-09-26 Nec Corp Remote communicating game device
JP2000293387A (en) * 1999-04-05 2000-10-20 Nec Corp Event notification system
JP2001017735A (en) * 1999-07-05 2001-01-23 Namco Ltd Game operation integrated processing unit and information storage medium
JP2001087560A (en) * 1999-09-24 2001-04-03 Midway Amusement Games Llc System and method of processing network for video game
JP2004523326A (en) * 2001-03-29 2004-08-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Network latency compensation for multiplayer games
JP2004070582A (en) * 2002-08-05 2004-03-04 Nec Corp Event notification task control processing system and method and its program
JP2004078665A (en) * 2002-08-20 2004-03-11 Nec Corp Task control apparatus and task control method
JP2005250659A (en) * 2004-03-02 2005-09-15 Nec Mobiling Ltd Task processing method and device using real time os and program
JP2005309950A (en) * 2004-04-23 2005-11-04 Oki Data Corp Communication device
JP2006305042A (en) * 2005-04-28 2006-11-09 Sega Corp Game information processing device and game control program
JP2007006953A (en) * 2005-06-28 2007-01-18 Konami Digital Entertainment:Kk Game system and its control method, game apparatus and program
US8137198B2 (en) 2005-06-28 2012-03-20 Konami Digital Entertainment Co., Ltd. Game system, method for controlling game system, game device therefor, and program therefor
WO2007069390A1 (en) * 2005-12-16 2007-06-21 Konami Digital Entertainment Co., Ltd. Game machine, game machine control method, information storage medium, and network game system
JP2007160015A (en) * 2005-12-16 2007-06-28 Konami Digital Entertainment:Kk Game machine, control method for game machine, program and network game system
US8105167B2 (en) 2005-12-16 2012-01-31 Konami Digital Entertainment Co., Ltd. Game machine, game machine control method, information storage medium, and network game system
WO2010064471A1 (en) * 2008-12-05 2010-06-10 株式会社ソニー・コンピュータエンタテインメント Simulation system
JP2010134800A (en) * 2008-12-05 2010-06-17 Sony Computer Entertainment Inc Simulation system
US8938493B2 (en) 2008-12-05 2015-01-20 Sony Corporation Simulation system
US8819355B2 (en) 2009-12-11 2014-08-26 Nec Corporation Information processing apparatus, information processing method, and program
JP2015501493A (en) * 2011-10-31 2015-01-15 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン Apparatus, method, and computer program for moving an event detector process
JP2015501031A (en) * 2011-10-31 2015-01-08 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン Apparatus and method for transferring an event detector process
US9537937B2 (en) 2011-10-31 2017-01-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus, method and computer program for migrating an event detector process
US9954932B2 (en) 2011-10-31 2018-04-24 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for transferring event detector processes
JP2016026642A (en) * 2015-09-17 2016-02-18 グリー株式会社 Game management program, game management method, and game management system
JP2020500345A (en) * 2016-09-02 2020-01-09 アイイーエックス グループ,インコーポレーテッド System and method for creating a temporally accurate event stream
JP2020502647A (en) * 2016-12-15 2020-01-23 アビニシオ テクノロジー エルエルシー Heterogeneous event queue
EP3827395A4 (en) * 2018-07-26 2022-05-04 Nasdaq, Inc. In-order processing of transactions
WO2021260872A1 (en) * 2020-06-25 2021-12-30 日本電信電話株式会社 Message processing server, program and message processing method
JPWO2021260872A1 (en) * 2020-06-25 2021-12-30
WO2023002681A1 (en) * 2021-07-20 2023-01-26 コニカミノルタ株式会社 Information processing system, and information processing program

Similar Documents

Publication Publication Date Title
JPH09244984A (en) Event order correction method
US7747729B2 (en) Determining client latencies over a network
US6442141B1 (en) Network delay and loss simulator
US7447164B2 (en) Communication apparatus, transmission apparatus and reception apparatus
US7092410B2 (en) Method and apparatus for measuring network data packet delay, jitter and loss
US8499069B2 (en) Method for predicting performance of distributed stream processing systems
US6393480B1 (en) Application response time prediction
US20020169880A1 (en) Method and device for robust real-time estimation of the bottleneck bandwidth in the internet
JPH04263536A (en) Apparatus and system for monitoring of network
US8521684B2 (en) System and method for aligning data frames in time
US20050050098A1 (en) System and method for aligning data frames in time
JPH06216890A (en) Method for synchronizing local time scale with reference time scale
KR101468624B1 (en) Terminal, system and method for measuring network state using the same
US8055612B2 (en) System and method for aligning data frames in time
US7366790B1 (en) System and method of active latency detection for network applications
EP0522211B1 (en) Testing a packet-based network
US7689686B2 (en) Active probing for sustainable capacity estimation of networked dataflows
US7386613B2 (en) System and method for measuring middleware response time
WO2021117171A1 (en) Data sequence correction method, packet monitoring device, data sequence correction device, and data sequence correction program
JPH10283276A (en) Event sequence correction method
JP7197010B2 (en) DATA ORDER CORRECTION METHOD, PACKET MONITORING DEVICE, DATA ORDER CORRECTION DEVICE, AND DATA ORDER CORRECTION PROGRAM
CN108259393B (en) Out-of-order correcting method and system in a kind of processing of flow data
US20230344738A1 (en) One way latency estimation without clock synchronization
CN114124754B (en) Method for processing media data packets in a multimedia network and related products
CN117914750B (en) Data processing method, apparatus, computer, storage medium, and program product

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050627

A131 Notification of reasons for refusal

Effective date: 20050719

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051115