JP2009271857A - Computer system - Google Patents

Computer system Download PDF

Info

Publication number
JP2009271857A
JP2009271857A JP2008123876A JP2008123876A JP2009271857A JP 2009271857 A JP2009271857 A JP 2009271857A JP 2008123876 A JP2008123876 A JP 2008123876A JP 2008123876 A JP2008123876 A JP 2008123876A JP 2009271857 A JP2009271857 A JP 2009271857A
Authority
JP
Japan
Prior art keywords
client
computer
server
packet
time
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
JP2008123876A
Other languages
Japanese (ja)
Inventor
Taro Masuda
太郎 増田
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2008123876A priority Critical patent/JP2009271857A/en
Publication of JP2009271857A publication Critical patent/JP2009271857A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To quickly detect that a client computer fails by reducing the load of a server computer or a network load near the server computer. <P>SOLUTION: In this computer system, a first callback processing part 161a transmits an alive notification packet including an address of the client computer 10a at a time interval T1. A client reception packet processing part 14b stores a record including the address included in the transmitted alive notification packet and a receiving time when the alive notification packet is received in a client connection state table 15b. A second callback processing part 162b acquires a record in which a difference between the current time and the receiving time is larger than a time interval T2 from the client connection state table 15b at the time interval T2. The second callback processing part 162b notifies the server computer 20 that the client computer 10a fails to which an address included in the acquired record is allocated. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、サーバ計算機に接続されたクライアント計算機がダウンしたことを検知する計算機システムに関する。   The present invention relates to a computer system that detects that a client computer connected to a server computer is down.

複数の計算機(以下、クライアント計算機と表記)及びサーバ計算機を備えるクライアントサーバシステム(計算機システム)においては、例えばクライアント計算機の障害の発生により当該クライアント計算機がダウンしたことを監視する場合がある。   In a client server system (computer system) including a plurality of computers (hereinafter referred to as client computers) and a server computer, it may be monitored that the client computer is down due to the occurrence of a failure in the client computer, for example.

例えばクライアント計算機がクライアントサーバシステムにログインする際に、当該クライアント計算機がログインした旨を示す情報が一時的にデータベースに格納される場合を想定する。この場合において、クライアント計算機が終了(ダウン)した場合には即座にその情報をデータベースから削除しないと次のログインができなくなる。このような場合には、クライアント計算機を監視することにより、当該クライアント計算機がダウンしたことを検知する必要がある。   For example, it is assumed that when a client computer logs in to a client server system, information indicating that the client computer has logged in is temporarily stored in a database. In this case, when the client computer is terminated (down), the next login cannot be performed unless the information is immediately deleted from the database. In such a case, it is necessary to detect that the client computer is down by monitoring the client computer.

また、サーバ計算機がクライアント計算機に対応するリソースを有する場合においても、当該クライアント計算機がダウンした場合には当該クライアント計算機が利用していたリソースを解放しなければ、当該サーバ計算機はサービスを継続することができない。したがって、クライアント計算機がダウンした場合には、当該クライアント計算機のダウンを検知し、即座にリソースを解放する必要がある。   In addition, even when the server computer has resources corresponding to the client computer, if the client computer goes down, the server computer must continue the service if the resources used by the client computer are not released. I can't. Therefore, when a client computer goes down, it is necessary to detect that the client computer is down and immediately release resources.

そこで、例えば各計算機が自計算機に障害が発生した場合に、他計算機にその障害情報を一斉同報し、障害情報を受け取った他計算機はその情報を、更に、自己の計算機に通信路を介して接続された他計算機に一斉同報する技術(以下、先行技術1と表記)が開示されている(例えば、特許文献1を参照)。この先行技術1によれば、各計算機は障害が発生した計算機からの障害情報の直接通知の他に、他計算機からの迂回通知により障害情報が通知されるため、ある通信路が通信不能になった場合でも、他の通信路を介して障害情報を受け取ることができる。   So, for example, when each computer has a failure in its own computer, the failure information is broadcast to other computers at the same time, and the other computer that has received the failure information further passes the information to its own computer via a communication path. A technique (hereinafter referred to as Prior Art 1) that broadcasts simultaneously to other connected computers is disclosed (for example, see Patent Document 1). According to this prior art 1, since each computer is notified of the failure information by a detour notification from another computer in addition to the direct notification of the failure information from the computer in which the failure has occurred, a certain communication path becomes unable to communicate. Even in the case of failure, failure information can be received via another communication path.

ここで、上記した先行技術1において、例えばTCP/IP(Transmission Control Protocol/Internet Protocol)のようなアイドル状態の時には何もパケット(情報)を送信しないプロトコルを用いて通信している場合を想定する。このような場合に、例えばクライアント計算機の電源が急に落ちたり、当該クライアント計算機における物理的な回線が切れたりした場合には、先行技術においては障害情報を送信することができず、正常なクローズのシーケンスが動作しないため、当該クライアント計算機に障害が発生したこと(つまり、ダウンしたこと)を他のクライアント計算機は検知することができない。   Here, in the above-described prior art 1, it is assumed that communication is performed using a protocol that does not transmit any packet (information) in an idle state such as TCP / IP (Transmission Control Protocol / Internet Protocol). . In such a case, for example, when the power of the client computer suddenly drops or the physical line in the client computer is cut off, failure information cannot be transmitted in the prior art, and the normal close Since this sequence does not operate, other client computers cannot detect that a failure has occurred in the client computer (that is, that the client computer has gone down).

そこで、例えば複数のクライアント計算機の各々は、当該クライアント計算機から生存していることを表すパケット(以下、生存通知パケットと表記)を定期的にサーバ計算機に対して送信する。これにより、クライアント計算機から生存通知パケットが一定時間受信されない場合には、サーバ計算機によって当該クライアント計算機がダウンしたことが検知される技術(以下、先行技術2と表記)が知られている。
特開平11−175489号公報
Therefore, for example, each of the plurality of client computers periodically transmits a packet indicating that the client computer is alive (hereinafter referred to as a survival notification packet) to the server computer. As a result, a technique (hereinafter referred to as Prior Art 2) is known in which when a survival notification packet is not received from a client computer for a certain period of time, the server computer detects that the client computer is down.
JP-A-11-175589

ところで、上記した先行技術2において、クライアント計算機がダウンしたことを即座に検知するためには、当該クライアント計算機からサーバ計算機に送信される生存通知パケットの送信間隔を短くする必要がある。   By the way, in the prior art 2 described above, in order to immediately detect that the client computer has gone down, it is necessary to shorten the transmission interval of the survival notification packet transmitted from the client computer to the server computer.

しかしながら、このように生存通知パケットの送信間隔を短くすると、例えばクライアントサーバシステムを構成するクライアント計算機の数が多い場合にはサーバ計算機の負荷(CPU負荷)またはサーバ計算機近傍のネットワークの負荷が高くなる。   However, if the transmission interval of the survival notification packet is shortened in this way, for example, when the number of client computers constituting the client server system is large, the load on the server computer (CPU load) or the load on the network in the vicinity of the server computer increases. .

そこで、本発明の目的は、サーバ計算機の負荷またはサーバ計算機付近のネットワーク負荷を低減し、クライアント計算機がダウンしたことを迅速に検知する計算機システムを提供することにある。   Therefore, an object of the present invention is to provide a computer system that can quickly detect that a client computer has gone down by reducing the load on the server computer or the network load in the vicinity of the server computer.

本発明の1つの態様によれば、第1の計算機と、前記第1の計算機と接続された第2の計算機と、前記第1の計算機及び前記第2の計算機と接続された第3の計算機を具備し、前記第1の計算機は、前記第1の計算機に割り当てられたアドレスを含む生存通知パケットを、予め定められた第1の時間間隔で送信する送信手段を含み、前記第2の計算機は、前記送信された生存通知パケットを受信する受信手段と、前記受信された生存通知パケットに含まれる前記第1の計算機に割り当てられたアドレス及び当該生存通知パケットが受信された受信時刻を含むレコードを保持するテーブルと、現在時刻と前記受信時刻との差が予め定められた第2の時間間隔以上である当該受信時刻を含むレコードを、当該第2の時間間隔で前記テーブルから取得する取得手段と、前記取得されたレコードに含まれるアドレスが割り当てられた前記第1の計算機がダウンしたことを前記第3の計算機に通知する通知手段とを含むことを特徴とする計算機システムが提供される。   According to one aspect of the present invention, a first computer, a second computer connected to the first computer, a third computer connected to the first computer and the second computer. And the first computer includes transmission means for transmitting a survival notification packet including an address assigned to the first computer at a predetermined first time interval, and the second computer Is a record including receiving means for receiving the transmitted survival notification packet, an address assigned to the first computer included in the received survival notification packet, and a reception time when the survival notification packet is received And a record including the reception time at which the difference between the current time and the reception time is equal to or greater than a predetermined second time interval is taken from the table at the second time interval. And a notifying means for notifying the third computer that the first computer to which the address included in the acquired record has been assigned is down is provided. Is done.

本発明によれば、サーバ計算機の負荷またはサーバ計算機付近のネットワーク負荷を低減し、クライアント計算機がダウンしたことを迅速に検知することを可能とする。   According to the present invention, the load on the server computer or the network load in the vicinity of the server computer is reduced, and it is possible to quickly detect that the client computer is down.

以下、図面を参照して、本発明の実施形態について説明する。   Embodiments of the present invention will be described below with reference to the drawings.

図1は、本実施形態に係るクライアントサーバシステム(計算機システム)のハードウェア構成を示すブロック図である。   FIG. 1 is a block diagram showing a hardware configuration of a client server system (computer system) according to the present embodiment.

図1に示すクライアントサーバシステムは、主として複数のクライアント計算機10(第1及び第2の計算機)と、当該複数のクライアント計算機10からアクセスされるサーバ計算機20(第3の計算機)とから構成される。複数のクライアント計算機10には、例えばクライアント計算機10a及び10bが含まれる。複数のクライアント計算機10は、例えばローカルエリアネットワーク(LAN:Local Area Network)のようなネットワーク30を介してサーバ計算機20と接続されている。また、複数のクライアント計算機10に含まれるクライアント計算機10a及び10bは、互いにネットワーク30を介して接続されている。   The client server system shown in FIG. 1 mainly includes a plurality of client computers 10 (first and second computers), and a server computer 20 (third computer) accessed from the plurality of client computers 10. . The plurality of client computers 10 include, for example, client computers 10a and 10b. The plurality of client computers 10 are connected to the server computer 20 via a network 30 such as a local area network (LAN). Client computers 10 a and 10 b included in the plurality of client computers 10 are connected to each other via a network 30.

また、複数のクライアント計算機10(に含まれるクライアント計算機10a及び10b)は、例えば当該クライアント計算機同士でグループを構成する。このグループを構成する複数のクライアント計算機10間では、互いに生存確認のためのパケットを送信することにより、互いに他のクライアント計算機がダウンしたことをサーバ計算機20に通知する機能を有する。   In addition, a plurality of client computers 10 (client computers 10a and 10b included therein) form a group with the client computers, for example. The plurality of client computers 10 constituting this group have a function of notifying the server computer 20 that the other client computers are down by transmitting packets for confirming the existence of each other.

図2は、図1に示す複数のクライアント計算機10に含まれるクライアント計算機10a及び10bの主として機能構成を示すブロック図である。   FIG. 2 is a block diagram mainly showing a functional configuration of the client computers 10a and 10b included in the plurality of client computers 10 shown in FIG.

クライアント計算機10aは、クライアントタイマー部11a、クライアント接続部12a、クライアント内部記憶部13a、クライアント受信パケット処理部14a、クライアント接続状態テーブル15a及びクライアントコールバック処理部16aを含む。   The client computer 10a includes a client timer unit 11a, a client connection unit 12a, a client internal storage unit 13a, a client reception packet processing unit 14a, a client connection state table 15a, and a client callback processing unit 16a.

クライアントタイマー部11aは、現在時刻を取得する機能を有する。また、クライアントタイマー部11aは、例えば登録された時間が経過した場合にその旨を通知する機能を有する。クライアントタイマー部11aは、例えばクライアント計算機10aに内蔵されたリアルタイムクロック機能またはアラーム機能等により実現される。   The client timer unit 11a has a function of acquiring the current time. Further, the client timer unit 11a has a function of notifying that when a registered time has elapsed, for example. The client timer unit 11a is realized by, for example, a real-time clock function or an alarm function built in the client computer 10a.

クライアント接続部12aは、サーバ計算機20に対して、予めクライアントサーバシステムにおいて決められているマルチキャストアドレスを要求するためのマルチキャストアドレス要求パケットを送信する。このマルチキャストアドレスは、サーバ計算機20において保持されている。なお、このマルチキャストアドレスに対して例えばパケットが送信された場合には、例えばクライアントサーバシステムを構成する複数のクライアント計算機10によって受信される。   The client connection unit 12a transmits a multicast address request packet for requesting a multicast address determined in advance in the client server system to the server computer 20. This multicast address is held in the server computer 20. For example, when a packet is transmitted to this multicast address, it is received by, for example, a plurality of client computers 10 constituting the client server system.

クライアント接続部12aは、マルチキャストアドレス要求パケットに対する応答として、マルチキャストアドレスを含むマルチキャストアドレス応答パケットをサーバ計算機20から受信する。クライアント接続部12aは、受信されたマルチキャストアドレス応答パケットからマルチキャストアドレスを取得する。クライアント接続部12aは、取得されたマルチキャストアドレスをクライアント内部記憶部13aに保存(格納)する。   The client connection unit 12a receives a multicast address response packet including the multicast address from the server computer 20 as a response to the multicast address request packet. The client connection unit 12a acquires a multicast address from the received multicast address response packet. The client connection unit 12a stores (stores) the acquired multicast address in the client internal storage unit 13a.

クライアント内部記憶部13aには、クライアント計算機10aが例えばサーバ計算機20と接続を開始した時刻(以下、開始時刻と表記)及び後述する生存確認送信スキップフラグ等が保存される。   The client internal storage unit 13a stores, for example, a time when the client computer 10a starts connection with the server computer 20 (hereinafter referred to as a start time), a survival confirmation transmission skip flag, which will be described later, and the like.

クライアント接続部12aは、クライアント計算機10aに割り当てられているクライアントアドレス及びクライアント内部記憶部13aに保存されている開始時刻が格納されたグループ参加要求マルチパケットを、クライアント内部記憶部13aに保存されているマルチキャストアドレスに対して送信する。これにより、クライアントサーバシステムを構成する他のクライアント計算機(例えば、クライアント計算機10b)に対してグループへの参加を要求する。   The client connection unit 12a stores, in the client internal storage unit 13a, the group participation request multipacket in which the client address assigned to the client computer 10a and the start time stored in the client internal storage unit 13a are stored. Sent to a multicast address. As a result, another client computer (for example, client computer 10b) constituting the client server system is requested to participate in the group.

また、クライアント接続部12aは、例えばクライアント計算機10aがサーバ計算機20に接続する際に、当該サーバ計算機20に対して接続要求パケットを送信する。この接続要求パケットには、クライアント計算機10aに割り当てられているクライアントアドレス及びクライアント内部記憶部13aに保存されている開始時刻が格納される。また、この接続要求パケットには、例えばクライアント計算機10aがグループを構成する(つまり、グループ化された)か否かを示すグループフラグ(「TRUE」または「FALSE」)が格納される。クライアント計算機10aがグループ化されたか否かは、後述するクライアント接続状態テーブル15aを参照して決定される。   For example, when the client computer 10 a connects to the server computer 20, the client connection unit 12 a transmits a connection request packet to the server computer 20. The connection request packet stores a client address assigned to the client computer 10a and a start time saved in the client internal storage unit 13a. Further, in this connection request packet, for example, a group flag (“TRUE” or “FALSE”) indicating whether or not the client computer 10a forms a group (that is, grouped) is stored. Whether or not the client computers 10a are grouped is determined with reference to a client connection state table 15a described later.

クライアント接続部12aは、接続要求パケットに対する応答として、接続応答パケットをサーバ計算機20から受信する。この接続応答パケットには、クライアント送信間隔(第1の時間間隔)、クライアントタイムアウト時間(第2の時間間隔)及びサーバ送信間隔(第3の時間間隔)が格納(設定)されている。クライアント送信間隔は、例えばクライアント計算機10aがグループを構成する他のクライアント計算機(例えば、クライアント計算機10b)に自身の生存を通知する間隔を示す。クライアントタイムアウト時間は、例えばクライアント計算機10aがグループを構成する他のクライアント計算機をダウンしたとみなすまでの時間を示す。サーバ送信間隔は、例えばクライアント計算機10aがサーバ計算機20に対して自身の生存を通知する間隔を示す。   The client connection unit 12a receives a connection response packet from the server computer 20 as a response to the connection request packet. In this connection response packet, a client transmission interval (first time interval), a client timeout time (second time interval), and a server transmission interval (third time interval) are stored (set). The client transmission interval indicates, for example, an interval at which the client computer 10a notifies its existence to another client computer (for example, the client computer 10b) constituting the group. The client timeout time indicates, for example, a time until the client computer 10a considers that another client computer constituting the group is down. The server transmission interval indicates, for example, an interval at which the client computer 10a notifies its own existence to the server computer 20.

クライアント接続部12aは、受信された接続応答パケットに応じて、クライアントタイマー部11aにコールバック処理を登録する。このとき、クライアント接続12aは、受信された接続応答パケットに含まれるクライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔をクライアント内部記憶部13aに保存する。なお、コールバック処理の登録の詳細については後述する。   The client connection unit 12a registers a callback process in the client timer unit 11a according to the received connection response packet. At this time, the client connection 12a stores the client transmission interval, the client timeout time, and the server transmission interval included in the received connection response packet in the client internal storage unit 13a. Details of the callback process registration will be described later.

クライアント受信パケット処理部14aは、クライアント接続部12aによって送信されたグループ参加要求マルチキャストパケットに対する応答として、例えばクライアント計算機10bからのグループ参加応答マルチキャストパケットを受信する。このグループ参加応答マルチキャストパケットには、グループ参加要求マルチキャストパケットの送信先であるクライアント計算機10bに割り当てられているクライアントアドレス及び当該クライアント計算機10bが例えばサーバ計算機20と接続を開始した時刻(開始時刻)が含まれる。   The client reception packet processing unit 14a receives, for example, a group participation response multicast packet from the client computer 10b as a response to the group participation request multicast packet transmitted by the client connection unit 12a. In this group participation response multicast packet, the client address assigned to the client computer 10b that is the transmission destination of the group participation request multicast packet and the time (start time) at which the client computer 10b starts connection with the server computer 20, for example. included.

クライアント受信パケット処理部14aは、受信されたグループ参加応答マルチキャストパケットに含まれるクライアントアドレス及び開始時刻を含むレコード(クライアント接続状態テーブルレコード)を、クラインアント接続状態テーブル15aに保存(登録)する。   The client reception packet processing unit 14a stores (registers) a record (client connection state table record) including the client address and start time included in the received group participation response multicast packet in the client connection state table 15a.

クライアント接続状態テーブル15aには、クライアント計算機10aとグループを構成する他のクライアント計算機(例えば、クライアント計算機10b)のクライアントアドレス及び開始時刻を含むレコードが保持される。クライアント接続状態テーブル15aに保持されるレコードには、クライアントアドレス(フィールド)、開始時刻(フィールド)及び最終確認時刻(フィールド)が含まれる。   The client connection state table 15a holds a record including the client address and start time of another client computer (for example, the client computer 10b) that forms a group with the client computer 10a. The record held in the client connection state table 15a includes a client address (field), a start time (field), and a final confirmation time (field).

また、クライアント受信パケット処理部14aは、他のクライアント計算機(例えば、クライアント計算機10b)からグループ参加要求マルチキャストパケットが送信された場合には、当該グループ参加要求マルチキャストパケットを受信する。クライアント受信パケット処理部14aは、グループ参加要求マルチキャストパケットが受信された場合、新しいレコードとして当該グループ参加要求マルチキャストパケットに含まれるクライアントアドレス及び開始時刻を、クライアント接続状態テーブル15aに保存する。クライアント受信パケット処理部14aは、受信されたグループ参加要求マルチキャストパケットに対する応答として、クライアント計算機10aのクライアントアドレス及び開始時刻を含むクライアント参加応答マルチキャストパケットをマルチキャストアドレスに対して送信する。   In addition, when a group participation request multicast packet is transmitted from another client computer (for example, the client computer 10b), the client reception packet processing unit 14a receives the group participation request multicast packet. When the group participation request multicast packet is received, the client reception packet processing unit 14a stores the client address and start time included in the group participation request multicast packet as a new record in the client connection state table 15a. The client reception packet processing unit 14a transmits a client participation response multicast packet including the client address and start time of the client computer 10a to the multicast address as a response to the received group participation request multicast packet.

クライアント受信パケット処理部14aは、受信されたクライアント参加要求マルチパケットに応じてクライアント接続状態テーブル15aを更新(つまり、レコードを保存)した後、当該クライアント接続状態テーブル15aに保存(保持)されているレコード数が1である場合には、クライアントタイマー部11aに登録されているコールバック処理を全てキャンセルする。この場合、クライアント受信パケット処理部14aは、クライアント計算機10aがグループ化されたことを示すグループフラグが格納されたグループ化パケットをサーバ計算機20に対して送信する。   The client reception packet processing unit 14a updates (that is, stores a record) the client connection state table 15a according to the received client participation request multipacket, and then stores (holds) the client connection state table 15a in the client connection state table 15a. When the number of records is 1, all the callback processes registered in the client timer unit 11a are canceled. In this case, the client reception packet processing unit 14a transmits to the server computer 20 a grouped packet in which a group flag indicating that the client computer 10a is grouped is stored.

クライアント受信パケット処理部14aは、グループ化パケットに対する応答としてグループ化応答パケットをサーバ計算機20から受信する。このグループ化応答パケットには、上記した接続応答パケットと同様に、クライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔が格納(設定)されている。クライアント受信パケット処理部14aは、受信されたグループ化応答パケットに応じて、クライアントタイマー部11aにコールバック処理を登録する。このとき、グループ化応答パケットに含まれるクライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔は、クライアント内部記憶部13aに保存される。   The client reception packet processing unit 14a receives a grouping response packet from the server computer 20 as a response to the grouping packet. This grouping response packet stores (sets) a client transmission interval, a client timeout time, and a server transmission interval in the same manner as the connection response packet described above. The client reception packet processing unit 14a registers a callback process in the client timer unit 11a according to the received grouping response packet. At this time, the client transmission interval, client timeout time, and server transmission interval included in the grouping response packet are stored in the client internal storage unit 13a.

また、クライアント受信パケット処理部14aは、他のクライアント計算機(例えば、クライアント計算機10b)から当該クライアント計算機10bの生存を通知するための生存通知パケット(以下、クライアント生存通知マルチキャストパケットと表記)が送信された場合に、当該クライアント生存通知マルチキャストパケットを受信する。このクライアント生存通知マルチキャストパケットには、当該クライアント生存通知マルチキャストパケットの送信元であるクライアント計算機10bのクライアントアドレス及び開始時刻が含まれる。   The client reception packet processing unit 14a receives a survival notification packet (hereinafter referred to as a client survival notification multicast packet) for notifying the existence of the client computer 10b from another client computer (for example, the client computer 10b). In this case, the client existence notification multicast packet is received. This client existence notification multicast packet includes the client address and start time of the client computer 10b that is the transmission source of the client existence notification multicast packet.

クライアント受信パケット処理部14aは、クライアント生存通知マルチキャストパケットが受信された場合、当該クライアント生存通知マルチキャストパケットが受信された受信時刻(現在時刻)をクライアントタイマー部11aから取得する。クライアント受信パケット処理部14aは、受信された生存通知マルチキャストパケットに含まれるクライアントアドレス及び開始時刻を含む(一致する)レコードをクライアント接続状態テーブル15aから取り出す。   When a client survival notification multicast packet is received, the client reception packet processing unit 14a acquires a reception time (current time) when the client survival notification multicast packet is received from the client timer unit 11a. The client reception packet processing unit 14a extracts a record including (matching) the client address and start time included in the received survival notification multicast packet from the client connection state table 15a.

クライアント受信パケット処理部14aは、取り出されたレコードに含まれる最終確認時刻フィールドにクライアントタイマー部11aから取得された現在時刻(受信時刻)を保存する(置き換える)。   The client reception packet processing unit 14a stores (replaces) the current time (reception time) acquired from the client timer unit 11a in the final confirmation time field included in the extracted record.

つまり、クライアント接続状態テーブル15aに保持されるレコードに含まれる最終確認時刻フィールドには、グループを構成する他のクライアント計算機(例えば、クライアント計算機10b)から最後に送信されたクライアント生存通知マルチキャストパケットが受信された受信時刻が保存される。   In other words, the last confirmation time field included in the record held in the client connection state table 15a receives the client survival notification multicast packet last transmitted from another client computer (for example, the client computer 10b) constituting the group. The received reception time is stored.

クライアント受信パケット処理部14aは、例えばクライアント計算機10bから後述する生存通知済みクライアントマルチキャストパケットが送信された場合には、当該生存通知済みクライアントマルチキャストパケットを受信する。この生存通知済みクライアントマルチキャストパケットには、クライアントアドレス及び開始時刻が格納されている。クライアント受信パケット処理部14aは、受信された生存通知済みクライアントマルチキャストパケットにクライアント計算機10aのクライアントアドレス及び開始時刻が格納されている場合、クライアント内部記憶部13aに生存確認送信スキップフラグ「TRUE」をセット(保存)する。なお、生存確認送信スキップフラグには、「TRUE」及び「FALSE」が含まれる。   The client reception packet processing unit 14a receives, for example, a client multicast packet that has been notified of survival, which will be described later, from the client computer 10b. The existence-notified client multicast packet stores a client address and a start time. The client reception packet processing unit 14a sets the survival confirmation transmission skip flag “TRUE” in the client internal storage unit 13a when the client address and the start time of the client computer 10a are stored in the received multicast notification client multicast packet. (save. The existence confirmation transmission skip flag includes “TRUE” and “FALSE”.

クライアントコールバック処理部16aは、クライアントタイマー部11aに登録されたコールバック処理を実行する。このコールバック処理においては、例えば上記した生存を通知するためのパケットがグループを構成する例えばクライアント計算機10b及びサーバ計算機20に送信される。また、コールバック処理においては、例えばグループを構成するクライアント計算機10bがダウンしたことがサーバ計算機20に通知される。   The client callback processing unit 16a executes a callback process registered in the client timer unit 11a. In this callback process, for example, a packet for notifying the above-mentioned existence is transmitted to, for example, the client computer 10b and the server computer 20 constituting the group. In the callback process, for example, the server computer 20 is notified that the client computer 10b constituting the group has gone down.

クライアントコールバック処理部16aは、第1のコールバック処理部161a、第2のコールバック処理部162a及び第3のコールバック処理部163aを含む。   The client callback processing unit 16a includes a first callback processing unit 161a, a second callback processing unit 162a, and a third callback processing unit 163a.

第1のコールバック処理部161aは、クライアントタイマー部11aからの通知に応じて、グループを構成する他のクライアント計算機(例えば、クライアント計算機10b)にクライアント計算機10aの生存を通知する処理(生存通知パケットクライアント送信コールバック処理)を実行する。クライアントタイマー部11aは、生存通知パケットクライアント送信コールバック処理において登録されている時間間隔で通知を行う。   In response to the notification from the client timer unit 11a, the first callback processing unit 161a is a process for notifying the survival of the client computer 10a to another client computer (for example, the client computer 10b) constituting the group (a survival notification packet). Execute client send callback processing). The client timer unit 11a performs notification at a time interval registered in the survival notification packet client transmission callback process.

第1のコールバック処理部161aは、クライアントタイマー部11aからの通知を受けると、クライアント計算機10aのクライアントアドレス及びクライアント内部記憶部13aに保存されている開始時刻を含むクライアント生存通知マルチキャストパケットを、クライアント内部記憶部13aに保存されているマルチキャストアドレスに対して送信する。   When the first callback processing unit 161a receives the notification from the client timer unit 11a, the first callback processing unit 161a transmits the client existence notification multicast packet including the client address of the client computer 10a and the start time stored in the client internal storage unit 13a to the client It transmits to the multicast address stored in the internal storage unit 13a.

第2のコールバック処理部162aは、クライアントタイマー部11aからの通知に応じて、グループを構成する他のクライアント計算機(例えば、クライアント計算機10b)の生存を確認する処理(クライアント生存確認コールバック処理)を実行する。クライアントタイマー部11aは、クライアント生存確認コールバック処理において登録されている時間間隔で通知を行う。   The second callback processing unit 162a confirms the survival of another client computer (for example, the client computer 10b) constituting the group in response to the notification from the client timer unit 11a (client survival confirmation callback processing). Execute. The client timer unit 11a notifies at a registered time interval in the client survival confirmation callback process.

第2のコールバック処理部162aは、クライアントタイマー部11aからの通知を受けると、当該クライアントタイマー部11aから現在時刻を取得する。第2のコールバック処理部162aは、取得された現在時刻とクライアント接続状態テーブル15aに保持されている最終確認時刻フィールドの値(時刻)との差を算出する。第2のコールバック処理部162aは、算出された差がクライアント内部記憶部13aに保存されているクライアントタイムアウト時間より大きい全てのレコードを、クライアント接続状態テーブル15aから取り出す。   Upon receiving the notification from the client timer unit 11a, the second callback processing unit 162a acquires the current time from the client timer unit 11a. The second callback processing unit 162a calculates the difference between the acquired current time and the value (time) of the last confirmation time field held in the client connection state table 15a. The second callback processing unit 162a extracts from the client connection state table 15a all records in which the calculated difference is greater than the client timeout time stored in the client internal storage unit 13a.

第2のコールバック処理部162aは、取り出された全てのレコードに含まれるクライアントアドレス及び開始時刻が格納されたダウン通知パケットをサーバ計算機20に対して送信する。このダウン通知パケットが送信されることにより、例えばクライアント計算機10bがダウンしたことがサーバ計算機20に通知される。第2のコールバック処理部162aは、ダウン通知パケットが送信されると、取り出された全てのレコードを、クライアント接続状態テーブル15aから削除する。   The second callback processing unit 162a transmits to the server computer 20 a down notification packet in which the client address and the start time included in all the extracted records are stored. By transmitting this down notification packet, for example, the server computer 20 is notified that the client computer 10b is down. When the down notification packet is transmitted, the second callback processing unit 162a deletes all the extracted records from the client connection state table 15a.

第2のコールバック処理部162aは、取り出された全てのレコードが削除された後のクライアント接続状態テーブル15aに保存されているレコード数が0である場合には、クライアント計算機10aがグループ化されていないことを示すグループフラグ(つまり、「FALSE」)が格納されたグループ化パケットをサーバ計算機20に送信する。   When the number of records stored in the client connection state table 15a after all the extracted records are deleted is 0, the second callback processing unit 162a groups the client computers 10a. A grouping packet in which a group flag indicating that there is not (that is, “FALSE”) is stored is transmitted to the server computer 20.

第3のコールバック処理部163aは、クライアントタイマー部11aからの通知に応じて、グループ化された複数のクライアント計算機10(例えば、クライアント計算機10a及び10b)の生存をサーバ計算機20に対して通知する処理(生存通知パケットサーバ送信コールバック処理)を実行する。クライアントタイマー部11aは、生存通知パケットサーバ送信コールバック処理において登録されている時間間隔で通知を行う。   The third callback processing unit 163a notifies the server computer 20 of the existence of a plurality of grouped client computers 10 (for example, client computers 10a and 10b) in response to the notification from the client timer unit 11a. Execute the process (survival notification packet server send callback process). The client timer unit 11a performs notification at time intervals registered in the survival notification packet server transmission callback process.

第3のコールバック処理部163aは、クライアントタイマー部11aからの通知を受けると、クライアント内部記憶部13aに保存されている生存確認送信スキップフラグを確認する。第3のコールバック処理部163aは、生存確認送信スキップフラグが「TRUE」である場合には、当該生存確認送信スキップフラグ「FALSE」をクライアント内部記憶部13aにセットして処理を終了する。   Upon receiving the notification from the client timer unit 11a, the third callback processing unit 163a confirms the survival confirmation transmission skip flag stored in the client internal storage unit 13a. If the survival confirmation transmission skip flag is “TRUE”, the third callback processing unit 163a sets the survival confirmation transmission skip flag “FALSE” in the client internal storage unit 13a and ends the process.

つまり、クライアント内部記憶部13aに生存確認送信スキップフラグ「TRUE」がセット(保存)されている場合には、生存通知パケットサーバ送信コールバック処理が1回スキップされる。   That is, when the survival confirmation transmission skip flag “TRUE” is set (saved) in the client internal storage unit 13a, the survival notification packet server transmission callback process is skipped once.

一方、生存確認スキップフラグが「FALSE」である場合には、第3のコールバック処理部162aは、クライアントタイマー部11aから現在時刻を取得する。第3のコールバック処理部163aは、取得された現在時刻とクライアント接続状態テーブル15aに保持されているレコードに含まれる最終確認時刻フィールドの値(時刻)との差を算出する。   On the other hand, when the survival confirmation skip flag is “FALSE”, the third callback processing unit 162a acquires the current time from the client timer unit 11a. The third callback processing unit 163a calculates the difference between the acquired current time and the value (time) of the final confirmation time field included in the record held in the client connection state table 15a.

この最終確認時刻フィールドには、当該最終確認時刻フィールドを含むレコードに含まれるクライアントアドレスが割り当てられているクライアント計算機(例えば、クライアント計算機10b)から最後にクライアント生存通知マルチキャストパケットが受信された時刻(受信時刻)が保存されている。   In this final confirmation time field, the last time the client existence notification multicast packet was received from the client computer (for example, the client computer 10b) to which the client address included in the record including the final confirmation time field is assigned (reception) Time) is saved.

第3のコールバック処理部163aは、算出された差がクライアント内部記憶部13aに保存されているサーバ送信間隔以上でない、つまり、サーバ間隔より小さい全てのレコードを、クライアント接続状態テーブル15aから取り出す。   The third callback processing unit 163a extracts from the client connection state table 15a all the records whose calculated difference is not equal to or greater than the server transmission interval stored in the client internal storage unit 13a, that is, smaller than the server interval.

第3のコールバック処理部163aは、取り出された全てのレコードに含まれるクライアントアドレス及び開始時刻が格納された生存通知パケットをサーバ計算機20に送信する。この生存通知パケットには、取り出された全てのレコードに含まれるクライアントアドレス及び開始時刻に加えて、クライアント計算機10aのクライアントアドレス及びクライアント内部記憶部13aに格納されている開始時刻が格納される。   The third callback processing unit 163a transmits to the server computer 20 a survival notification packet in which the client address and the start time included in all the extracted records are stored. In this survival notification packet, in addition to the client address and start time included in all the extracted records, the client address of the client computer 10a and the start time stored in the client internal storage unit 13a are stored.

第3のコールバック処理部163aは、生存通知パケットをサーバ計算機20に送信した場合、クライアント接続状態テーブル15aから取り出された全てのレコードに含まれるクライアントアドレス及び開始時刻が格納された生存通知済みクライアントマルチキャストパケットを、クライアント内部記憶部13aに保存されているマルチキャストアドレスに対して送信(マルチキャスト)する。これにより、生存通知済みクライアントマルチキャストパケットに含まれるクライアントアドレスが割り当てられているクライアント計算機(例えば、クライアント計算機10b)の生存をサーバ計算機20に通知したことが、当該クライアント計算機10bに対して通知される。   When the third callback processing unit 163a transmits the existence notification packet to the server computer 20, the existence notification notified client in which the client addresses and start times included in all the records extracted from the client connection state table 15a are stored. The multicast packet is transmitted (multicast) to the multicast address stored in the client internal storage unit 13a. As a result, the client computer 10b is notified that the server computer 20 has been notified of the existence of the client computer (for example, the client computer 10b) to which the client address included in the client multicast packet that has been notified of the existence is assigned. .

クライアント計算機10bは、クライアントタイマー部11b、クライアント接続部12b、クライアント内部記憶部13b、クライアント受信パケット処理部14b、クライアント接続状態テーブル15b及びクライアントコールバック処理部16bを含む。   The client computer 10b includes a client timer unit 11b, a client connection unit 12b, a client internal storage unit 13b, a client reception packet processing unit 14b, a client connection state table 15b, and a client callback processing unit 16b.

クライアント計算機10bに含まれる各部11b〜16bは、上記したクライアント計算機10aに含まれる各部11a〜16aと同様であるため、その詳しい説明は省略する。   Since the units 11b to 16b included in the client computer 10b are the same as the units 11a to 16a included in the client computer 10a, detailed description thereof is omitted.

また、クライアント計算機10bのクライアントコールバック処理部16bは、第1のクライアントコールバック処理部161b、第2のクライアントコールバック処理部162b及び第3のクライアントコールバック処理部163bを含む。これらの各部161b〜163bは、上記したクライアント計算機10aのクライアントコールバック処理部16aに含まれる各部161a〜163aと同様であるため、その詳しい説明は省略する。   The client callback processing unit 16b of the client computer 10b includes a first client callback processing unit 161b, a second client callback processing unit 162b, and a third client callback processing unit 163b. Since these units 161b to 163b are the same as the units 161a to 163a included in the client callback processing unit 16a of the client computer 10a, detailed description thereof will be omitted.

なお、図2においては、クライアント計算機10a及び10bの構成について説明したが、当該クライアント計算機10a及び10b以外のクライアント計算機についても同様である。   Although the configuration of the client computers 10a and 10b has been described with reference to FIG. 2, the same applies to client computers other than the client computers 10a and 10b.

図3は、サーバ計算機20の主として機能構成を示すブロック図である。図3に示すように、サーバ計算機20は、サーバタイマー部21、サーバ接続待機部22、サーバ接続状態テーブル23、サーバ受信パケット処理部24及びサーバコールバック処理部25を含む。   FIG. 3 is a block diagram mainly showing a functional configuration of the server computer 20. As shown in FIG. 3, the server computer 20 includes a server timer unit 21, a server connection standby unit 22, a server connection state table 23, a server reception packet processing unit 24, and a server callback processing unit 25.

なお、サーバ計算機20には、上記したグループを構成する複数のクライアント計算機10間で互いの生存を通知する時間間隔(クライアント送信間隔)としてT1、当該グループを構成する複数のクライアント計算機が他のクライアント計算機をダウンしたとみなすまでの時間間隔(クライアントタイムアウト時間)としてT2、複数のクライアント計算機10の各々が自身の生存をサーバ計算機20に通知する時間間隔(サーバ送信間隔)としてT3、サーバ計算機20が複数のクライアント計算機10の各々をダウンしたとみなすまでの時間間隔(第4の時間間隔)としてT4が予め定められているものとする。   The server computer 20 includes T1 as a time interval (client transmission interval) for notifying the existence of each other among the plurality of client computers 10 constituting the group, and the plurality of client computers constituting the group are other clients. T2 as a time interval (client timeout time) until the computer is considered to be down, T3 as a time interval (server transmission interval) for each of the plurality of client computers 10 to notify the server computer 20 of its existence, and the server computer 20 It is assumed that T4 is determined in advance as a time interval (fourth time interval) until each of the plurality of client computers 10 is considered to be down.

ここで、時間間隔T2は時間間隔T1より長く、時間間隔T4は時間間隔T3より長く定められているものとする。また、時間間隔T3は時間間隔T1より長く、時間間隔T4は時間間隔T2より長く定められているものとする。   Here, it is assumed that the time interval T2 is longer than the time interval T1, and the time interval T4 is longer than the time interval T3. The time interval T3 is set longer than the time interval T1, and the time interval T4 is set longer than the time interval T2.

サーバタイマー部21は、現在時刻を取得する機能を有する。また、サーバタイマー部21は、例えば登録された時間が経過した場合にその旨を通知する機能を有する。サーバタイマー部21は、例えばサーバ計算機20に内蔵されたリアルタイムクロック機能またはアラーム機能等により実現される。   The server timer unit 21 has a function of acquiring the current time. The server timer unit 21 has a function of notifying that when, for example, a registered time has elapsed. The server timer unit 21 is realized by, for example, a real-time clock function or an alarm function built in the server computer 20.

サーバ接続待機部22は、例えばクライアント計算機10aによって送信されたマルチキャストアドレス要求パケットを受信する。サーバ接続待機部22は、マルチキャストアドレス要求パケットが受信された場合、予めクライアントサーバシステムに決められているマルチキャストアドレスを含むマルチキャストアドレス応答パケットをクライアント計算機10aに送信する。   The server connection standby unit 22 receives, for example, a multicast address request packet transmitted by the client computer 10a. When a multicast address request packet is received, the server connection standby unit 22 transmits a multicast address response packet including a multicast address determined in advance by the client server system to the client computer 10a.

サーバ接続待機部22は、例えばクライアント計算機10aによって送信された接続要求パケットを受信する。   The server connection standby unit 22 receives, for example, a connection request packet transmitted by the client computer 10a.

サーバ接続待機部22は、受信された接続要求パケットに含まれるグループフラグが「TRUE(つまり、クライアント計算機10aがグループ化された)」であれば、当該接続要求パケットに対する応答として、クライアント送信間隔にT1、クライアントタイムアウト時間にT2、サーバ送信間隔にT3が設定された接続応答パケットをクライアント計算機10aに送信する。このとき、サーバ接続待機部22は、サーバタイマー部21に対して、上記した時間間隔T4でコールバック処理を登録する。   If the group flag included in the received connection request packet is “TRUE (that is, the client computers 10a are grouped)”, the server connection standby unit 22 sets the client transmission interval as a response to the connection request packet. A connection response packet in which T1, T2 is set as the client timeout time, and T3 is set as the server transmission interval is transmitted to the client computer 10a. At this time, the server connection standby unit 22 registers the callback processing with the server timer unit 21 at the time interval T4 described above.

サーバ接続待機部22は、受信された接続要求パケットに含まれるグループフラグが「FALSE(つまり、クライアント計算機10aがグループ化されていない)」であれば、当該接続要求パケットに対する応答として、クライアント送信間隔に0、クライアントタイムアウト時間に0、サーバ送信間隔にT1が設定された接続応答パケットをクライアント計算機10aに送信する。このとき、サーバ接続待機部22は、サーバタイマー部21に対して、時間間隔T2でコールバック処理を登録する。   If the group flag included in the received connection request packet is “FALSE” (that is, the client computer 10a is not grouped), the server connection standby unit 22 sends a client transmission interval as a response to the connection request packet. The connection response packet in which 0 is set to 0, 0 is set to the client timeout period and T1 is set to the server transmission interval is transmitted to the client computer 10a. At this time, the server connection standby unit 22 registers the callback process with the server timer unit 21 at the time interval T2.

サーバ接続状態テーブル23には、サーバ計算機20に接続されている複数のクライアント計算機10(例えば、クライアント計算機10a及び10b)のクライアントアドレス、開始時刻及び最終確認時間を含むレコード(サーバ接続状態テーブルレコード)が保持される。   The server connection state table 23 includes a record (server connection state table record) including client addresses, start times, and final confirmation times of a plurality of client computers 10 (for example, client computers 10a and 10b) connected to the server computer 20. Is retained.

サーバ受信パケット処理部24は、例えばクライアント計算機10aによって送信されたグループ化パケットを受信する。   The server reception packet processing unit 24 receives, for example, a grouped packet transmitted by the client computer 10a.

ここで、サーバ受信パケット処理部24によって受信されたグループ化パケットに、例えばクライアント計算機10aがグループ化されたことを示すグループフラグ「TRUE」が格納されている場合を想定する。この場合、サーバ受信パケット処理部24は、受信されたグループ化パケットに対する応答として、クライアント送信間隔にT1、クライアントタイムアウト時間にT2及びサーバ送信間隔にT3が設定されたグループ化応答パケットをクライアント計算機10aに送信する。   Here, it is assumed that a group flag “TRUE” indicating that the client computers 10a are grouped is stored in the grouped packet received by the server reception packet processing unit 24, for example. In this case, as a response to the received grouped packet, the server received packet processing unit 24 sends a grouped response packet in which T1 is set in the client transmission interval, T2 is set in the client timeout period, and T3 is set in the server transmission interval to the client computer 10a Send to.

一方、サーバ受信パケット処理部24によって受信されたグループ化パケットに例えばクライアント計算機10aがグループ化されていないことを示すグループフラグ「FALSE」が格納されている場合を想定する。この場合、サーバ受信パケット処理部24は、受信されたグループ化パケットに対する応答として、クライアント送信間隔に0、クライアントタイムアウト時間に0及びサーバ送信間隔にT1が設定されたグループ化応答パケットをクライアント計算機10aに送信する。   On the other hand, it is assumed that a group flag “FALSE” indicating that, for example, the client computer 10a is not grouped is stored in the grouped packet received by the server reception packet processing unit 24. In this case, the server reception packet processing unit 24 sends, as a response to the received grouping packet, a grouping response packet in which 0 is set in the client transmission interval, 0 is set in the client timeout period, and T1 is set in the server transmission interval. Send to.

サーバ受信パケット処理部24によって送信されたグループ化応答パケットに設定されているクライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔に応じて、各種コールバック処理がクライアントタイマー部11aに登録される。   Various callback processes are registered in the client timer unit 11a according to the client transmission interval, client timeout time, and server transmission interval set in the grouping response packet transmitted by the server reception packet processing unit 24.

このように、グループ化パケットに格納されているグループフラグに応じて、サーバ受信パケット処理部24によって送信されるグループ化応答パケットに格納されるクライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔は異なる。つまり、例えばクライアント計算機10aがグループ化されている否かによって、クライアントタイマー部11aにおけるコールバック処理において登録される時間間隔は異なる。   As described above, the client transmission interval, the client timeout time, and the server transmission interval stored in the grouping response packet transmitted by the server reception packet processing unit 24 differ depending on the group flag stored in the grouping packet. That is, for example, the time interval registered in the callback process in the client timer unit 11a differs depending on whether or not the client computers 10a are grouped.

換言すれば、クライアント計算機10aがグループ化されていれば、クライアントタイマー部11aには当該クライアント計算機10aがグループ化されている場合のコールバック処理が登録される。一方、クライアント計算機10aがグループ化されていなければ、クライアントタイマー部11aには当該クライアント計算機10aがグループ化されていない場合のコールバック処理が登録される。   In other words, if the client computer 10a is grouped, the callback processing when the client computer 10a is grouped is registered in the client timer unit 11a. On the other hand, if the client computer 10a is not grouped, a callback process when the client computer 10a is not grouped is registered in the client timer unit 11a.

サーバ受信パケット処理部24は、例えばクライアント計算機10aによって送信されたダウン通知パケットを受信する。サーバ受信パケット処理部24は、受信されたダウン通知パケットに含まれるクライアントアドレス及び開始時刻を含むレコードを、サーバ接続状態テーブル23から削除する。   The server reception packet processing unit 24 receives, for example, a down notification packet transmitted by the client computer 10a. The server reception packet processing unit 24 deletes the record including the client address and the start time included in the received down notification packet from the server connection state table 23.

また、サーバ受信パケット処理部24は、例えばクライアント計算機10aによって送信された生存通知パケットを受信する。サーバ受信パケット処理部24は、受信された生存通知パケットに格納されているクライアントアドレス及び開始時刻を含む全てのレコードに含まれる最終確認時刻フィールドの値を現在時刻に置き換える。この現在時刻は、サーバタイマー部21から取得される。   Further, the server reception packet processing unit 24 receives a survival notification packet transmitted by the client computer 10a, for example. The server reception packet processing unit 24 replaces the value of the last confirmation time field included in all records including the client address and the start time stored in the received survival notification packet with the current time. The current time is acquired from the server timer unit 21.

サーバコールバック処理部25は、サーバタイマー部21からの通知に応じて、サーバ計算機20と接続されている複数のクライアント計算機10(例えば、クライアント計算機10a及び10b)の生存を確認する処理(サーバ生存確認コールバック処理)を実行する。この場合、サーバタイマー部21は、当該サーバタイマー部21に登録されている時間間隔(T2またはT4)でサーバコールバック処理部25に通知する。ここでは、サーバタイマー部21に登録されている時間間隔は、時間間隔T4であるものとして説明する。   In response to the notification from the server timer unit 21, the server callback processing unit 25 confirms the existence of a plurality of client computers 10 (for example, client computers 10a and 10b) connected to the server computer 20 (server existence). Confirmation callback processing) is executed. In this case, the server timer unit 21 notifies the server callback processing unit 25 at the time interval (T2 or T4) registered in the server timer unit 21. Here, the time interval registered in the server timer unit 21 will be described as the time interval T4.

サーバコールバック処理部25は、サーバタイマー部21からの通知を受けると、当該サーバタイマー部21から現在時刻を取得する。サーバコールバック処理部25は、取得された現在時刻とサーバ接続状態テーブル23に保持されている最終確認時刻フィールドの値(時刻)との差を算出する。サーバコールバック処理部25は、算出された差が時間間隔T4より大きい全てのレコードを、サーバ接続状態テーブル23から検索する。これにより、サーバコールバック処理部25は、算出された差が時間間隔T4より大きい全てのレコードに含まれるクライアントアドレスが割り当てられているクライアント計算機がダウンしたことを検知する。サーバコールバック処理部25は、検索された全てのレコードを、サーバ接続状態テーブル23から削除する。   Upon receiving a notification from the server timer unit 21, the server callback processing unit 25 acquires the current time from the server timer unit 21. The server callback processing unit 25 calculates the difference between the acquired current time and the value (time) of the last confirmation time field held in the server connection state table 23. The server callback processing unit 25 searches the server connection state table 23 for all records having the calculated difference larger than the time interval T4. Thereby, the server callback processing unit 25 detects that the client computer to which the client address included in all the records whose calculated difference is larger than the time interval T4 is assigned is down. The server callback processing unit 25 deletes all the retrieved records from the server connection state table 23.

図4は、図2に示すクライアント内部記憶部13a(及びクライアント内部記憶部13b)のデータ構造の一例を示す。図4に示すように、クライアント内部記憶部13aには、開始時刻、生存確認送信スキップフラグ、マルチキャストアドレス、クライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔が保存される。   FIG. 4 shows an example of the data structure of the client internal storage unit 13a (and client internal storage unit 13b) shown in FIG. As shown in FIG. 4, the client internal storage unit 13a stores a start time, a survival confirmation transmission skip flag, a multicast address, a client transmission interval, a client timeout time, and a server transmission interval.

開始時刻は、クライアント計算機10aがサーバ計算機20と接続を開始した時刻を示す。生存確認送信スキップフラグは、上記したように例えば生存通知パケットサーバ送信コールバック処理をスキップするか否か(「TRUE」または「FALSE」)を示す。マルチキャストアドレスは、複数のクライアント計算機10が指定されたアドレスである。また、クライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔は、上記した各種コールバック処理において登録される時間間隔である。   The start time indicates the time when the client computer 10a starts connection with the server computer 20. The survival confirmation transmission skip flag indicates whether or not to skip the survival notification packet server transmission callback process (“TRUE” or “FALSE”) as described above. The multicast address is an address for which a plurality of client computers 10 are designated. The client transmission interval, client timeout time, and server transmission interval are time intervals registered in the various callback processes described above.

図5は、図2に示すクライアント接続状態テーブル15aに保持されるレコードのデータ構造の一例を示す。図5に示すように、レコードには、クライアントアドレスフィールド、開始時刻フィールド及び最終確認時刻フィールドが含まれる。   FIG. 5 shows an example of the data structure of records held in the client connection state table 15a shown in FIG. As shown in FIG. 5, the record includes a client address field, a start time field, and a final confirmation time field.

クライアントアドレスフィールドには、クライアント計算機10aとグループ化されているクライアント計算機(例えば、クライアント計算機10b)に割り当てられているクライアントアドレスが保存される。開始時刻フィールドには、クライアントアドレスフィールドに保存されているクライアントアドレスが割り当てられているクライアント計算機がサーバ計算機20と接続を開始した時刻が保存される。また、最終確認時刻フィールドには、クライアントアドレスフィールドには、クライアントアドレスが割り当てられているクライアント計算機の生存が最後に確認された時刻(例えば、生存通知パケットが受信された受信時刻)が保存される。   The client address field stores a client address assigned to a client computer (for example, the client computer 10b) grouped with the client computer 10a. In the start time field, the time when the client computer to which the client address stored in the client address field is assigned starts connection with the server computer 20 is stored. In the final confirmation time field, the client address field stores the time at which the survival of the client computer to which the client address is assigned was last confirmed (for example, the reception time when the survival notification packet was received). .

なお、図4に示すサーバ接続状態テーブル23に保持されるレコードのデータ構造についても図5に示すデータ構造と同様であるため、その詳しい説明は省略する。   The data structure of the record held in the server connection state table 23 shown in FIG. 4 is the same as the data structure shown in FIG.

次に、図6のシーケンスチャートを参照して、例えばクライアント計算機10aがクライアント計算機10bを含むグループに参加し、サーバ計算機20に接続するまでの処理手順について説明する。なお、クライアント計算機10bは既にサーバ計算機20と接続されているものとする。   Next, with reference to the sequence chart of FIG. 6, for example, a processing procedure until the client computer 10a joins the group including the client computer 10b and connects to the server computer 20 will be described. It is assumed that the client computer 10b is already connected to the server computer 20.

ここで、上記したように例えばグループを構成する複数のクライアント計算機10間で互いの生存を通知する時間間隔(クライアント送信間隔)としてT1、当該グループを構成する複数のクライアント計算機10の各々が他のクライアント計算機をダウンしたとみなすまでの時間間隔(クライアントタイムアウト時間)としてT2、複数のクライアント計算機10の各々が自身の生存をサーバ計算機20に通知する時間間隔(サーバ送信間隔)としてT3、サーバ計算機20が複数のクライアント計算機10の各々をダウンしたとみなすまでの時間間隔としてT4が予め定められているものとする。   Here, as described above, for example, T1 is the time interval (client transmission interval) for notifying the existence of each other among the plurality of client computers 10 constituting the group, and each of the plurality of client computers 10 constituting the group is the other T2 as a time interval (client timeout time) until the client computer is considered to be down, T3 as a time interval (server transmission interval) for each of the plurality of client computers 10 to notify the server computer 20 of its existence, and the server computer 20 Assume that T4 is predetermined as a time interval until each of the plurality of client computers 10 is considered to be down.

上記したように、時間間隔T1〜T4は、上記した各種コールバック処理において登録されるが、サーバ計算機20に接続されているクライアント計算機がグループ化されているか否かに応じて登録される時間間隔が異なる。   As described above, the time intervals T1 to T4 are registered in the various callback processes described above. However, the time intervals are registered depending on whether or not the client computers connected to the server computer 20 are grouped. Is different.

まず、クライアント計算機10aは、サーバ計算機20に接続する際、クライアント内部記憶部13aについて初期化処理を実行する。この場合、クライアント計算機10aは、クライアント内部記憶部13aに保存されている開始時刻として現在時刻を保存する。この現在時刻は、クライアントタイマー部11aから取得される。また、クライアント計算機10aは、クライアント内部記憶部13aに生存確認送信スキップフラグ「FALSE」をセット(保存)する。   First, when connecting to the server computer 20, the client computer 10a executes an initialization process for the client internal storage unit 13a. In this case, the client computer 10a stores the current time as the start time stored in the client internal storage unit 13a. This current time is acquired from the client timer unit 11a. In addition, the client computer 10a sets (saves) a survival confirmation transmission skip flag “FALSE” in the client internal storage unit 13a.

クライアント計算機10aのクライアント接続部12aは、マルチキャストアドレスを要求するためのマルチキャストアドレス要求パケットをサーバ計算機20のサーバ接続待機部22に送信する(ステップS1)。このマルチキャストアドレスは、予めクライアントサーバシステムにおいて決められている。   The client connection unit 12a of the client computer 10a transmits a multicast address request packet for requesting a multicast address to the server connection standby unit 22 of the server computer 20 (step S1). This multicast address is determined in advance in the client server system.

サーバ計算機22のサーバ接続待機部22は、クライアント接続部12aによって送信されたマルチキャストアドレス要求パケットを受信する。サーバ接続待機部22は、マルチキャストアドレス要求パケットが受信されると、当該マルチキャストアドレス要求パケットに対する応答としてマルチキャストアドレス応答パケットをクライアント接続部12aに送信する。   The server connection standby unit 22 of the server computer 22 receives the multicast address request packet transmitted by the client connection unit 12a. When the multicast address request packet is received, the server connection standby unit 22 transmits a multicast address response packet to the client connection unit 12a as a response to the multicast address request packet.

ここで、図7は、マルチキャストアドレス応答パケットのデータ構造の一例を示す。図7に示すように、マルチキャストアドレス応答パケットには、マルチキャストアドレスが格納される。   Here, FIG. 7 shows an example of the data structure of the multicast address response packet. As shown in FIG. 7, a multicast address is stored in the multicast address response packet.

再び図6に戻ると、クライアント計算機10aのクライアント接続部12aは、サーバ接続待機部22によって送信されたマルチキャストアドレス応答パケットを受信する。クライアント接続部12aは、受信されたマルチキャストアドレス応答パケットに格納されているマルチキャストアドレスを取得する。クライアント接続部12aは、取得されたマルチキャストアドレスをクライアント内部記憶部13aに保存する(ステップS3)。   Returning again to FIG. 6, the client connection unit 12 a of the client computer 10 a receives the multicast address response packet transmitted by the server connection standby unit 22. The client connection unit 12a acquires the multicast address stored in the received multicast address response packet. The client connection unit 12a stores the acquired multicast address in the client internal storage unit 13a (step S3).

次に、クライアント接続部12aは、グループへの参加を要求するグループ参加要求マルチキャストパケットを、クライアント内部記憶部13aに保存されたマルチキャストアドレスに対して送信する(ステップS4)。これにより、グループ参加要求マルチキャストパケットは、クライアント計算機10bを含む複数のクライアント計算機10に対して送信される。クライアント接続部12aは、グループ参加要求マルチキャストパケットを送信した後、一定時間(Tc)待機する。   Next, the client connection unit 12a transmits a group participation request multicast packet for requesting participation in the group to the multicast address stored in the client internal storage unit 13a (step S4). Thereby, the group participation request multicast packet is transmitted to a plurality of client computers 10 including the client computer 10b. After transmitting the group participation request multicast packet, the client connection unit 12a waits for a predetermined time (Tc).

ここで、図8は、グループ参加要求マルチキャストパケットのデータ構造の一例を示す。図8に示すように、グループ参加要求マルチキャストパケットには、クライアントアドレス及び開始時刻が格納される。このクライアントアドレスは、グループ参加要求マルチキャストパケットの送信元であるクライアント計算機10aに割り当てられているアドレスである。また、開始時刻は、クライアント内部記憶部13aに保存されている開始時刻である。   Here, FIG. 8 shows an example of the data structure of the group participation request multicast packet. As shown in FIG. 8, the client address and the start time are stored in the group participation request multicast packet. This client address is an address assigned to the client computer 10a that is the transmission source of the group participation request multicast packet. The start time is a start time stored in the client internal storage unit 13a.

再び図6に戻ると、既にサーバ計算機20との接続処理が完了しているクライアント計算機10bのクライアント受信パケット処理部14bは、クライアント接続部12aによって送信されたグループ参加要求マルチキャストパケットを受信する。クライアント受信パケット処理部14bは、受信されたグループ参加要求マルチキャストパケットに応じてクライアント接続状態テーブル15bを更新する(ステップS5)。この場合、クライアント受信パケット処理部14bは、クライアント接続状態テーブル15bの新しいレコードとして、受信されたグループ参加要求マルチキャストパケットに格納されているクライアント計算機10aのクライアントアドレス及び開始時刻を保存する。   Returning to FIG. 6 again, the client reception packet processing unit 14b of the client computer 10b that has already completed connection processing with the server computer 20 receives the group participation request multicast packet transmitted by the client connection unit 12a. The client reception packet processing unit 14b updates the client connection state table 15b according to the received group participation request multicast packet (step S5). In this case, the client reception packet processing unit 14b stores the client address and start time of the client computer 10a stored in the received group join request multicast packet as a new record in the client connection state table 15b.

次に、クライアント受信パケット処理部14bは、受信されたグループ参加要求マルチキャストパケットに対する応答としてグループ参加応答マルチキャストパケットを、マルチキャストアドレスに対して送信する(ステップS6)。   Next, the client reception packet processing unit 14b transmits a group participation response multicast packet to the multicast address as a response to the received group participation request multicast packet (step S6).

ここで、クライアント計算機10bはサーバ計算機20と既に接続されているため、上記したステップS1〜ステップS3に相当する処理が実行されている。よって、このステップS6の処理においては、クライアント内部記憶部13bに既に保存されているマルチキャストパケットが用いられる。これにより、グループ参加応答マルチキャストパケットは、クライアント計算機10aを含む複数のクライアント計算機10に対して送信される。   Here, since the client computer 10b is already connected to the server computer 20, processing corresponding to the above-described steps S1 to S3 is executed. Therefore, in the process of step S6, a multicast packet already stored in the client internal storage unit 13b is used. Thereby, the group participation response multicast packet is transmitted to a plurality of client computers 10 including the client computer 10a.

なお、グループ参加応答マルチキャストパケットには、上記した図8に示すグループ参加要求マルチキャストパケットと同様に、クライアントアドレス及び開始時刻が格納される。このクライアントアドレスは、クライアント計算機10bのクライアントアドレスである。また、開始時刻は、クライアント内部記憶部13bに格納されている開始時刻である。   The group participation response multicast packet stores the client address and the start time in the same manner as the group participation request multicast packet shown in FIG. This client address is the client address of the client computer 10b. The start time is a start time stored in the client internal storage unit 13b.

クライアント計算機10aのクライアント受信パケット処理部14aは、クライアント受信パケット処理部14bによって送信されたグループ参加応答マルチキャストパケットを受信する。クライアント受信パケット処理部14aは、受信されたグループ参加応答マルチキャストパケットに応じてクライアント接続状態テーブル15aを更新する(ステップS7)。この場合、クライアント受信パケット処理部14aは、クライアント接続状態テーブル15aの新しいレコードとして、受信されたグループ参加応答マルチキャストパケットに格納されているクライアント計算機10bのクライアントアドレス及び開始時刻を保存する。   The client reception packet processing unit 14a of the client computer 10a receives the group participation response multicast packet transmitted by the client reception packet processing unit 14b. The client reception packet processing unit 14a updates the client connection state table 15a according to the received group participation response multicast packet (step S7). In this case, the client reception packet processing unit 14a stores the client address and start time of the client computer 10b stored in the received group join response multicast packet as a new record in the client connection state table 15a.

なお、上記したステップS5〜ステップS7の処理は、例えばクライアント接続部12aが待機している一定時間Tcの間に実行される。   Note that the processing in steps S5 to S7 described above is executed, for example, during a predetermined time Tc in which the client connection unit 12a is on standby.

一方、クライアント計算機10bのクライアント受信パケット処理部14bは、クライアント接続状態テーブル15bに保持されているレコードの数を確認する。このとき、クライアント接続状態テーブル15bに保持されているレコードの数が1である場合には、クライアントタイマー部11bに登録されているコールバック処理を全てキャンセルする。   On the other hand, the client reception packet processing unit 14b of the client computer 10b confirms the number of records held in the client connection state table 15b. At this time, if the number of records held in the client connection state table 15b is 1, all callback processes registered in the client timer unit 11b are canceled.

クライアント接続状態テーブル15bに保持されているレコードの数は、クライアント計算機10bとグループを構成するクライアント計算機の数を表す。つまり、クライアント接続状態テーブル15bに保持されているレコードの数が1以上である場合には、クライアント計算機10bはグループ化されていることを示す。   The number of records held in the client connection state table 15b represents the number of client computers that form a group with the client computer 10b. That is, when the number of records held in the client connection state table 15b is 1 or more, it indicates that the client computer 10b is grouped.

このとき、クライアント接続状態テーブル15bに保持されているレコードの数が1であれば、当該クライアント接続状態テーブル15bに保持されているレコードは上記したステップS5において保存されたクライアント計算機10aのクライアントアドレス及び開始時刻を含むレコードである。   At this time, if the number of records held in the client connection status table 15b is 1, the records held in the client connection status table 15b are stored in the client address of the client computer 10a stored in step S5 described above. This record contains the start time.

したがって、クライアント計算機10bは、クライアント計算機10aが接続されるまではグループ化されていない(つまり、クライアント接続状態テーブル15bのレコード数が0であった)ため、クライアントタイマー部11bには上記したクライアント計算機10bがグループ化されていない場合のコールバック処理が登録されている。   Therefore, since the client computer 10b is not grouped until the client computer 10a is connected (that is, the number of records in the client connection state table 15b is 0), the client timer unit 11b includes the client computer 10b described above. Callback processing when 10b is not grouped is registered.

ここで、クライアント計算機10aが接続されることにより、クライアント接続状態テーブル15bのレコード数が1になるため、クライアント計算機10bはグループ化されることになる。したがって、クライアントタイマー部11bにクライアント計算機10bがグループ化された場合のコールバック処理を登録するため、上記したように当該クライアントタイマー部11bに登録されている(グループ化されていない場合の)コールバック処理を全てキャンセルする。   Here, since the number of records in the client connection state table 15b becomes 1 when the client computer 10a is connected, the client computers 10b are grouped. Therefore, in order to register the callback processing when the client computer 10b is grouped in the client timer unit 11b, the callback registered in the client timer unit 11b (when not grouped) as described above. Cancel all processing.

なお、クライアント接続状態テーブル15bに保持されているレコードの数が1でない(つまり、2以上である)場合には、クライアントタイマー部11bには既にグループ化されている場合のコールバック処理が登録されているため、以下に示すステップS8〜ステップS10の処理は実行されない。   If the number of records held in the client connection state table 15b is not 1 (that is, 2 or more), the callback processing when already grouped is registered in the client timer unit 11b. Therefore, the processing of step S8 to step S10 shown below is not executed.

クライアント受信パケット処理部14bは、コールバック処理が全てキャンセルされると、グループ化パケットをサーバ計算機20のサーバ受信パケット処理部24に送信する(ステップS8)。   When all the callback processes are canceled, the client reception packet processing unit 14b transmits the grouped packet to the server reception packet processing unit 24 of the server computer 20 (step S8).

ここで、図9は、グループ化パケットのデータ構造の一例を示す。図9に示すように、グループ化パケットには、グループフラグが格納される。このグループフラグには、グループ化されたことを示す「TRUE」及びグループ化されていないことを示す「FALSE」が含まれる。   Here, FIG. 9 shows an example of the data structure of the grouped packet. As shown in FIG. 9, a group flag is stored in the grouped packet. This group flag includes “TRUE” indicating grouping and “FALSE” indicating not grouping.

上記したステップS8においては、クライアント計算機10bがグループ化されたことを示す「TRUE」が格納されたグループ化パケットが送信される。   In step S8 described above, a grouping packet storing “TRUE” indicating that the client computers 10b are grouped is transmitted.

再び図6に戻ると、サーバ計算機20のサーバ受信パケット処理部24は、クライアント受信パケット処理部14bによって送信されたグループ化パケットを受信する。サーバ受信パケット処理部24は、受信されたグループ化パケットに格納されているグループフラグを確認する。ここでは、受信されたグループ化パケットに格納されているグループフラグは「TRUE」である。この場合、サーバ受信パケット処理部24は、受信されたグループ化パケットに対する応答としてグループ化応答パケットをクライアント計算機10bのクライアント受信パケット処理部14bに送信する(ステップS9)。   Returning to FIG. 6 again, the server reception packet processing unit 24 of the server computer 20 receives the grouped packet transmitted by the client reception packet processing unit 14b. The server reception packet processing unit 24 checks the group flag stored in the received grouped packet. Here, the group flag stored in the received grouped packet is “TRUE”. In this case, the server reception packet processing unit 24 transmits a grouping response packet to the client reception packet processing unit 14b of the client computer 10b as a response to the received grouping packet (step S9).

ここで、図10は、グループ化応答パケットのデータ構造の一例を示す。図10に示すように、グループ化応答パケットには、サーバ送信間隔、クライアント送信間隔及びクライアントタイムアウト時間が格納される。   Here, FIG. 10 shows an example of the data structure of the grouping response packet. As shown in FIG. 10, the grouping response packet stores a server transmission interval, a client transmission interval, and a client timeout time.

上記したステップS9においては、クライアント送信間隔としてT1、クライアントタイムアウト時間としてT2、サーバ送信間隔としてT3が格納(設定)されたグループ化応答パケットが送信される。つまり、グループ化されている場合のコールバック処理を登録するための値(時間間隔)が格納されたグループ化応答パケットが送信される。   In step S9 described above, a grouping response packet storing (setting) T1 as the client transmission interval, T2 as the client timeout time, and T3 as the server transmission interval is transmitted. That is, a grouping response packet in which a value (time interval) for registering callback processing when grouped is stored is transmitted.

再び図6に戻ると、クライアント計算機10bのクライアント受信パケット処理部14bは、サーバ受信パケット処理部24によって送信されたグループ化応答パケットを受信する。クライアント受信パケット処理部14bは、受信されたグループ化応答パケットに格納されているクライアント送信間隔(T1)、クライアントタイムアウト時間(T2)及びサーバ送信間隔(T3)をクライアント内部記憶部13bに保存する。   Returning again to FIG. 6, the client reception packet processing unit 14 b of the client computer 10 b receives the grouping response packet transmitted by the server reception packet processing unit 24. The client reception packet processing unit 14b stores the client transmission interval (T1), client timeout time (T2), and server transmission interval (T3) stored in the received grouping response packet in the client internal storage unit 13b.

クライアント受信パケット処理部14bは、受信されたグループ化応答パケットに格納されているクライアント送信間隔(T1)、クライアントタイムアウト時間(T2)及びサーバ送信間隔(T3)に基づいて、各種コールバック処理をクライアントタイマー部11bに登録する(ステップS10)。   The client reception packet processing unit 14b performs various callback processes on the basis of the client transmission interval (T1), client timeout time (T2), and server transmission interval (T3) stored in the received grouping response packet. Register in the timer unit 11b (step S10).

具体的には、クライアント受信パケット処理部14bは、処理される時間間隔をクライアント送信間隔(T1)として、上記した生存通知パケットクライアント送信コールバック処理をクライアントタイマー部11bに登録する。これにより、生存通知パケットクライアント送信コールバック処理は、時間間隔T1で実行される。   Specifically, the client reception packet processing unit 14b registers the above-described survival notification packet client transmission callback processing in the client timer unit 11b with the processing time interval as the client transmission interval (T1). Thereby, the survival notification packet client transmission callback process is executed at the time interval T1.

クライアント受信パケット処理部14bは、処理される時間間隔をクライアントタイムアウト時間(T2)として、上記したクライアント生存確認コールバック処理をクライアントタイマー部11bに登録する。これにより、クライアント生存確認コールバック処理は、時間間隔T2で実行される。   The client reception packet processing unit 14b registers the above-described client survival confirmation callback processing in the client timer unit 11b with the processing time interval as the client timeout period (T2). Thereby, the client existence confirmation callback process is executed at the time interval T2.

また、クライアント受信パケット処理部14bは、処理される時間間隔をサーバ送信間隔(T3)として、上記した生存通知パケットサーバ送信コールバック処理をクライアントタイマー部11bに登録する。これにより、生存通知パケットサーバ送信コールバック処理は、時間間隔T3で実行される。   Further, the client reception packet processing unit 14b registers the above-described survival notification packet server transmission callback processing in the client timer unit 11b with the processing time interval as the server transmission interval (T3). Thereby, the survival notification packet server transmission callback process is executed at the time interval T3.

一方、クライアント計算機10aのクライアント接続部12aは、上記した一定時間(Tc)待機した後、クライアント接続状態テーブル15aを参照して接続要求パケットをサーバ計算機20のサーバ接続待機部22に送信する(ステップS11)。   On the other hand, the client connection unit 12a of the client computer 10a waits for the predetermined time (Tc), and then transmits a connection request packet to the server connection standby unit 22 of the server computer 20 with reference to the client connection state table 15a (step S11).

ここで、図11は、接続要求パケットのデータ構造の一例を示す。図11に示すように、接続要求パケットには、クライアントアドレス、開始時刻及びグループフラグが格納されている。   Here, FIG. 11 shows an example of the data structure of the connection request packet. As shown in FIG. 11, the connection request packet stores a client address, a start time, and a group flag.

ここで、クライアント接続状態テーブル15aには、上記したステップS7においてクライアント計算機10bのクライアントアドレス及び開始時刻を含むレコードが保存されている。したがって、クライアント接続状態テーブル15aに保持されているレコードの数は1以上であるため、クライアント計算機10aはグループ化されている。これにより、上記したステップS11においては、クライアント計算機10aのクライアントアドレス、クライアント内部記憶部13aに保存されている開始時刻及びクライアント計算機10aがグループ化されていることを示す「TRUE」が格納された接続要求パケットが送信される。   Here, in the client connection state table 15a, a record including the client address and the start time of the client computer 10b is stored in step S7 described above. Therefore, since the number of records held in the client connection state table 15a is 1 or more, the client computers 10a are grouped. As a result, in the above-described step S11, the client address of the client computer 10a, the start time stored in the client internal storage unit 13a, and “TRUE” indicating that the client computers 10a are grouped are stored. A request packet is sent.

再び図6に戻ると、サーバ計算機20のサーバ接続待機部22は、クライアント接続部12aによって送信された接続要求パケットを受信する。サーバ接続待機部22は、受信された接続要求パケットに格納されているグループフラグを確認する。   Returning to FIG. 6 again, the server connection standby unit 22 of the server computer 20 receives the connection request packet transmitted by the client connection unit 12a. The server connection standby unit 22 confirms the group flag stored in the received connection request packet.

サーバ接続待機部22は、接続要求パケットに対する応答として接続応答パケットをクライアント計算機10aのクライアント接続部12aに送信する(ステップS12)。この接続応答パケットには、上記した図10に示すグループ化応答パケットと同様に、クライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔が格納される。   The server connection standby unit 22 transmits a connection response packet to the client connection unit 12a of the client computer 10a as a response to the connection request packet (step S12). In this connection response packet, the client transmission interval, the client timeout time, and the server transmission interval are stored as in the grouping response packet shown in FIG.

ここでは、グループフラグは「TRUE」である。この場合、接続応答パケットには、クライアント送信間隔としてT1、クライアントタイムアウト時間としてT2及びサーバ送信間隔としてT3が格納される。つまり、グループ化されている場合のコールバック処理を登録するための値(時間間隔)が格納された接続応答パケットが送信される。   Here, the group flag is “TRUE”. In this case, the connection response packet stores T1 as the client transmission interval, T2 as the client timeout time, and T3 as the server transmission interval. That is, a connection response packet in which a value (time interval) for registering callback processing when grouped is stored is transmitted.

サーバ接続待機部22は、接続応答パケットの送信とともに、処理される時間間隔を予め定められた時間間隔T4として、サーバ生存確認コールバック処理をサーバタイマー部21に登録する(ステップS13)。   The server connection standby unit 22 registers the server survival confirmation callback process in the server timer unit 21 with the transmission of the connection response packet as the time interval T4 set in advance (step S13).

クライアント計算機10aのクライアント接続部12aは、サーバ接続待機部22によって送信された接続応答パケットを受信する。クライアント接続部12aは、受信された接続応答パケットに含まれるクライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔をクライアント内部記憶部13aに保存する。   The client connection unit 12a of the client computer 10a receives the connection response packet transmitted by the server connection standby unit 22. The client connection unit 12a stores the client transmission interval, client timeout time, and server transmission interval included in the received connection response packet in the client internal storage unit 13a.

クライアント接続部12aは、受信された接続応答パケットに格納されているクライアント送信間隔(T1)、クライアントタイムアウト時間(T2)及びサーバ送信間隔(T3)に基づいて、各種コールバック処理をクライアントタイマー部11aに登録する(ステップS14)。   The client connection unit 12a performs various callback processes based on the client transmission interval (T1), the client timeout period (T2), and the server transmission interval (T3) stored in the received connection response packet. (Step S14).

具体的には、クライアント接続部12aは、処理される時間間隔をクライアント送信間隔(T1)として、上記した生存通知パケットクライアント送信コールバック処理をクライアントタイマー部11aに登録する。   Specifically, the client connection unit 12a registers the above-described survival notification packet client transmission callback processing in the client timer unit 11a with the processing time interval as the client transmission interval (T1).

クライアント接続部12aは、処理される時間間隔をクライアントタイムアウト時間(T2)として、上記したクライアント生存確認コールバック処理をクライアントタイマー部11aに登録する。   The client connection unit 12a registers the above-described client survival confirmation callback processing in the client timer unit 11a with the time interval to be processed as the client timeout time (T2).

また、クライアント接続部12aは、処理される時間間隔をサーバ送信間隔(T3)として、上記した生存通知パケットサーバ送信コールバック処理をクライアントタイマー部11aに登録する。   Further, the client connection unit 12a registers the above-described survival notification packet server transmission callback processing in the client timer unit 11a with the processing time interval as the server transmission interval (T3).

なお、上記したステップS11において送信された接続要求パケットに格納されているググループフラグが例えば「FALSE」であれば、クライアント計算機10aはグループ化されていない。この場合、サーバ接続待機部22は、クライアント送信間隔として0、クライアントタイムアウト時間として0、サーバ送信間隔としてT1が格納された接続応答パケットをクライアント計算機10aに送信する。つまり、グループ化されていない場合のコールバック処理を登録するための値(時間間隔)が格納された接続応答パケットが送信される。   If the group flag stored in the connection request packet transmitted in step S11 described above is, for example, “FALSE”, the client computers 10a are not grouped. In this case, the server connection standby unit 22 transmits a connection response packet storing 0 as the client transmission interval, 0 as the client timeout time, and T1 as the server transmission interval to the client computer 10a. That is, a connection response packet storing a value (time interval) for registering callback processing when not grouped is transmitted.

このとき、サーバ接続待機部22は、処理される時間間隔を予め定められた時間間隔T2として、サーバ生存確認コールバック処理をサーバタイマー部21に登録する。   At this time, the server connection standby unit 22 registers the server survival confirmation callback process in the server timer unit 21 with the time interval to be processed as a predetermined time interval T2.

クライアント計算機10aのクライアント接続部12aは、処理される時間間隔をサーバ接続待機部22によって送信された接続応答パケットに含まれるサーバ送信間隔(T1)として、上記した生存通知パケットサーバ送信コールバック処理をクライアントタイマー部11aに登録する。   The client connection unit 12a of the client computer 10a performs the above-described survival notification packet server transmission callback process with the processing time interval as the server transmission interval (T1) included in the connection response packet transmitted by the server connection standby unit 22. Register in the client timer unit 11a.

なお、接続応答パケットに含まれるクライアント送信間隔及びクライアントタイムアウト時間は0であるので、これらについてはクライアントタイマー部11aに登録されない。つまり、クライアント計算機10aがグループ化されていない場合には、当該クライアント計算機10aにおいては上記した生存通知パケットクライアント送信コールバック処理及びクライアント生存確認コールバック処理は実行されない。換言すれば、クライアント計算機10aはグループ化されていない場合、当該クライアント計算機10aは、他のクライアント計算機には自身の生存を通知せず、サーバ計算機20に対してのみ通知することになる。   Since the client transmission interval and the client timeout time included in the connection response packet are 0, they are not registered in the client timer unit 11a. That is, when the client computer 10a is not grouped, the above-described survival notification packet client transmission callback processing and client survival confirmation callback processing are not executed in the client computer 10a. In other words, when the client computer 10a is not grouped, the client computer 10a does not notify other client computers of its own existence, but only notifies the server computer 20.

次に、クライアント計算機10aが上記した図6に示す処理によってグループ化された状態(定常状態)における各種コールバック処理について説明する。   Next, various callback processes when the client computer 10a is grouped by the process shown in FIG. 6 (steady state) will be described.

図12のシーケンスチャートを参照して、クライアント計算機10aのクライアントコールバック処理部16aに含まれる第1のコールバック処理部161aによる生存通知パケットクライアント送信コールバック処理の処理手順について説明する。   With reference to the sequence chart of FIG. 12, the processing procedure of the survival notification packet client transmission callback processing by the first callback processing unit 161a included in the client callback processing unit 16a of the client computer 10a will be described.

この生存通知パケットクライアント送信コールバック処理は、例えばクライアント計算機10aがグループ化されている場合には、処理される時間間隔をT1としてクライアントタイマー部11aに登録される。これにより、生存通知パケットクライアント送信コールバック処理は、時間間隔T1で実行される。   For example, when the client computer 10a is grouped, the survival notification packet client transmission callback process is registered in the client timer unit 11a with the processing time interval as T1. Thereby, the survival notification packet client transmission callback process is executed at the time interval T1.

なお、上記したようにクライアント計算機10aがグループ化されていない場合には、この生存通知パケットクライアント送信コールバック処理はクライアントタイマー部11aには登録されていないため実行されない。   As described above, when the client computers 10a are not grouped, the survival notification packet client transmission callback process is not executed because it is not registered in the client timer unit 11a.

まず、クライアントタイマー部11aは、例えばクライアント内部記憶部13aに保存されている開始時刻(または前回の第1のコールバック処理部161aによる生存通知パケットクライアント送信コールバック処理)から時間間隔T1が経過した場合に、第1のコールバック処理部161aに対して通知を行う(ステップS21)。つまり、クライアントタイマー部11aは、登録されている時間間隔T1毎(時間間隔T1おき)に通知を行う。   First, the client timer unit 11a, for example, has passed the time interval T1 from the start time stored in the client internal storage unit 13a (or the survival notification packet client transmission callback process by the previous first callback processing unit 161a). In such a case, a notification is sent to the first callback processing unit 161a (step S21). That is, the client timer unit 11a notifies at every registered time interval T1 (every time interval T1).

第1のコールバック処理部161aは、クライアントタイマー部11aからの通知を受けると、クライアント計算機10aのクライアントアドレス及びクライアント内部記憶部13aに保存されている開始時刻を取得する(ステップS22)。   Upon receiving the notification from the client timer unit 11a, the first callback processing unit 161a obtains the client address of the client computer 10a and the start time stored in the client internal storage unit 13a (step S22).

第1のコールバック処理部161aは、取得されたクライアントアドレス及び開始時刻をクライアント生存通知マルチキャストパケットに格納する。第1のコールバック処理部161aは、クライアントアドレス及び開始時刻が格納されたクライアント生存通知マルチキャストパケットを、クライアント内部記憶部13aに保存されているマルチキャストアドレスに対して送信する(ステップS23)。   The first callback processing unit 161a stores the acquired client address and start time in the client existence notification multicast packet. The first callback processing unit 161a transmits the client existence notification multicast packet in which the client address and the start time are stored to the multicast address stored in the client internal storage unit 13a (step S23).

クライアント計算機10bのクライアント受信パケット処理部14bは、第1のコールバック処理部161aによって送信されたクライアント生存通知マルチキャストパケットを受信する。クライアント受信パケット処理部14bは、受信されたクライアント生存通知マルチキャストパケットに格納されているクライアントアドレス及び開始時刻を含むレコードを、クライアント接続状態テーブル15bから取り出す。   The client reception packet processing unit 14b of the client computer 10b receives the client existence notification multicast packet transmitted by the first callback processing unit 161a. The client reception packet processing unit 14b extracts a record including the client address and the start time stored in the received client existence notification multicast packet from the client connection state table 15b.

クライアント受信パケット処理部14bは、取り出されたレコードに含まれる最終確認時刻(フィールドの値)を現在時刻に置き換える。これにより、クライアント受信パケット処理部14bは、クライアント接続状態テーブル15bを更新する(ステップS24)。   The client reception packet processing unit 14b replaces the last confirmation time (field value) included in the extracted record with the current time. Thereby, the client reception packet processing unit 14b updates the client connection state table 15b (step S24).

上記したように、例えばクライアントタイマー部11aに登録された時間間隔T1毎に例えばクライアント計算機10aから他のクライアント計算機(例えば、クライアント計算機10b)に対してクライアント生存通知マルチキャストパケットを送信することで、当該他のクライアント計算機に対してクライアント計算機10aの生存を通知する。   As described above, for example, by transmitting a client existence notification multicast packet from the client computer 10a to another client computer (for example, the client computer 10b) at every time interval T1 registered in the client timer unit 11a, for example, The other client computers are notified of the existence of the client computer 10a.

ここでは、クライアント計算機10aのクライアントコールバック処理部16aに含まれる第1のコールバック処理部161aによる生存通知パケットクライアント送信コールバック処理について説明したが、例えばクライアント計算機10bのクライアントコールバック処理部16bに含まれる第1のコールバック処理部161bによる生存通知パケットクライアント送信コールバック処理についても同様である。   Here, the survival notification packet client transmission callback processing by the first callback processing unit 161a included in the client callback processing unit 16a of the client computer 10a has been described. For example, the client callback processing unit 16b of the client computer 10b includes The same applies to the survival notification packet client transmission callback processing by the included first callback processing unit 161b.

次に、図13のシーケンスチャートを参照して、クライアント計算機10aのクライアントコールバック処理部16aに含まれる第2のコールバック処理部162aによるクライアント生存確認コールバック処理の処理手順について説明する。   Next, with reference to a sequence chart of FIG. 13, a processing procedure of client survival confirmation callback processing by the second callback processing unit 162a included in the client callback processing unit 16a of the client computer 10a will be described.

このクライアント生存確認コールバック処理は、例えばクライアント計算機10aがグループ化されている場合には、処理される時間間隔をT2としてクライアントタイマー部11aに登録される。これにより、クライアント生存確認コールバック処理は、時間間隔T2で実行される。また、この時間間隔T2は、クライアントタイムアウト時間としてクライアント内部記憶部13aに保存されている。   For example, when the client computer 10a is grouped, this client existence confirmation callback process is registered in the client timer unit 11a with the processing time interval as T2. Thereby, the client existence confirmation callback process is executed at the time interval T2. The time interval T2 is stored in the client internal storage unit 13a as a client timeout time.

なお、上記したようにクライアント計算機10aがグループ化されていない場合には、このクライアント生存確認コールバック処理はクライアントタイマー部11aには登録されていないため実行されない。   As described above, when the client computers 10a are not grouped, the client existence confirmation callback process is not executed because it is not registered in the client timer unit 11a.

クライアントタイマー部11aは、例えばクライアント内部記憶部13aに保存されている開始時刻(または前回の第2のコールバック処理部162aによるクライアント生存確認コールバック処理)から時間間隔T2が経過した場合に、第2のコールバック処理部162aに対して通知を行う(ステップS31)。つまり、クライアントタイマー部11aは、登録されている時間間隔T2毎に通知を行う。   For example, when the time interval T2 has elapsed since the start time stored in the client internal storage unit 13a (or the client survival confirmation callback processing by the second callback processing unit 162a of the previous time), the client timer unit 11a 2 is notified to the callback processing unit 162a (step S31). That is, the client timer unit 11a notifies at each registered time interval T2.

第2のコールバック処理部162aは、クライアントタイマー部11aからの通知を受けると、当該クライアントタイマー部11aから現在時刻を取得する。第2のコールバック処理部162aは、取得された現在時刻とクライアント接続状態テーブル15aに保持されているレコードに含まれる最終確認時刻フィールドの値(時刻)との差を算出する。第2のコールバック処理部162aは、算出された差がクライアント内部記憶部13aに保存されているクライアントタイムアウト時間、つまり時間間隔T2より大きい全てのレコードを、クライアント接続状態テーブル15aから取得する(ステップS32)。   Upon receiving the notification from the client timer unit 11a, the second callback processing unit 162a acquires the current time from the client timer unit 11a. The second callback processing unit 162a calculates the difference between the acquired current time and the value (time) of the final confirmation time field included in the record held in the client connection state table 15a. The second callback processing unit 162a acquires, from the client connection state table 15a, all records in which the calculated difference is stored in the client internal storage unit 13a, that is, the client time-out period, that is, a record that is larger than the time interval T2. S32).

次に、第2のコールバック処理部162aは、ダウン通知パケットをサーバ計算機20のサーバ受信パケット処理部24に送信する(ステップS33)。   Next, the second callback processing unit 162a transmits a down notification packet to the server reception packet processing unit 24 of the server computer 20 (step S33).

ここで、図14は、ダウン通知パケットのデータ構造の一例を示す。図14に示すようにダウン通知パケットには、例えば複数のクライアントアドレス及び開始時刻の組が格納される。図14に示す例では、クライアントアドレス1及び開始時刻1の組からクライアントアドレスN及び開始時刻Nの組までのN(Nは2以上の整数)組のクライアントアドレス及び開始時刻の組が格納されている。   Here, FIG. 14 shows an example of the data structure of the down notification packet. As shown in FIG. 14, the down notification packet stores, for example, a set of a plurality of client addresses and start times. In the example shown in FIG. 14, N (N is an integer of 2 or more) sets of client addresses and start times from the set of client address 1 and start time 1 to the set of client address N and start time N are stored. Yes.

ここでは、ダウン通知パケットには、ステップS22において取得された全てのレコードの各々に含まれるクライアントアドレス及び開始時刻の組が格納される。なお、図14においては、ダウン通知パケットには、複数のクライアントアドレス及び開始時刻の組が格納されるものとして説明したが、例えばステップS22において取得されたレコードが1つである場合には、ダウン通知パケットには、1組のクライアントアドレス及び開始時刻が格納される。   Here, the down notification packet stores a set of the client address and the start time included in each of all the records acquired in step S22. In FIG. 14, the down notification packet has been described as storing a plurality of sets of client addresses and start times. However, if there is one record acquired in step S22, for example, The notification packet stores a set of client addresses and start time.

第2のコールバック処理部162aは、ダウン通知パケットを送信すると、当該ダウン通知パケットに含まれるクライアントアドレス及び開始時刻(の組)を含むレコード(つまり、ステップS22において取得されたレコード)を、クライアント接続状態テーブル15aから削除する(ステップS34)。   When the second callback processing unit 162a transmits the down notification packet, the second callback processing unit 162a transmits a record including the client address and the start time (a set) included in the down notification packet (that is, the record acquired in step S22) to the client. Delete from the connection state table 15a (step S34).

サーバ計算機20のサーバ受信パケット処理部24は、第2のコールバック処理部162aによって送信されたダウン通知パケットを受信する。サーバ受信パケット処理部24は、受信されたダウン通知パケットに格納されているクライアントアドレス及び開始時刻の組を含むレコードを、サーバ接続状態テーブル23から削除する(ステップS35)。   The server reception packet processing unit 24 of the server computer 20 receives the down notification packet transmitted by the second callback processing unit 162a. The server reception packet processing unit 24 deletes the record including the set of the client address and the start time stored in the received down notification packet from the server connection state table 23 (Step S35).

一方、第2のコールバック処理部162aは、ステップS24の処理が実行された後のクライアント接続状態テーブル15aを参照する。このとき、クライアント接続状態テーブル15aに保持されているレコードの数が0であれば、第2のコールバック処理部162aは、グループ化されていないことを示すグループフラグ「FALSE」が格納されたグループ化パケットをサーバ計算機20のサーバ受信パケット処理部24に送信する(ステップS36)。なお、クライアント接続状態テーブル15aに保持されているレコードの数が0でなければ、処理は終了される。   On the other hand, the second callback processing unit 162a refers to the client connection state table 15a after the processing in step S24 is executed. At this time, if the number of records held in the client connection state table 15a is 0, the second callback processing unit 162a has a group flag “FALSE” indicating that it is not grouped. The packet is transmitted to the server reception packet processing unit 24 of the server computer 20 (step S36). If the number of records held in the client connection state table 15a is not 0, the process is terminated.

サーバ計算機20のサーバ受信パケット処理部24は、第2のコールバック処理部162aによって送信されたグループ化パケットを受信する。サーバ受信パケット処理部24は、受信されたグループ化パケットに格納されているグループフラグが「FALSE」である場合、グループ化応答パケットをクライアント計算機10aのクライアント受信パケット処理部14aに送信する(ステップS37)。ここでは、クライアント計算機10aがグループ化されていないので、クライアント送信間隔として0、クライアントタイムアウト時間として0、サーバ送信間隔としてT1が格納されたグループ化応答パケットが送信される。   The server reception packet processing unit 24 of the server computer 20 receives the grouped packet transmitted by the second callback processing unit 162a. When the group flag stored in the received grouping packet is “FALSE”, the server reception packet processing unit 24 transmits a grouping response packet to the client reception packet processing unit 14a of the client computer 10a (step S37). ). Here, since the client computers 10a are not grouped, a grouping response packet storing 0 as the client transmission interval, 0 as the client timeout time, and T1 as the server transmission interval is transmitted.

クライアント計算機10aのクライアント受信パケット処理部14aは、サーバ受信パケット処理部24によって送信されたグループ化応答パケットを受信する。クライアント受信パケット処理部14aは、受信されたグループ化応答パケットに格納されているクライアント送信間隔(0)、クライアントタイムアウト時間(0)、サーバ送信間隔(T1)をクライアント内部記憶部13aに保存する。   The client reception packet processing unit 14a of the client computer 10a receives the grouping response packet transmitted by the server reception packet processing unit 24. The client reception packet processing unit 14a stores the client transmission interval (0), client timeout time (0), and server transmission interval (T1) stored in the received grouping response packet in the client internal storage unit 13a.

また、クライアント受信パケット処理部14aは、受信されたグループ化応答パケットに格納されているクライアント送信間隔(0)、クライアントタイムアウト時間(0)、サーバ送信間隔(T1)に基づいて、各種コールバック処理をクライアントタイマー部11aに登録する。   The client reception packet processing unit 14a performs various callback processing based on the client transmission interval (0), the client timeout time (0), and the server transmission interval (T1) stored in the received grouping response packet. Is registered in the client timer unit 11a.

この場合、処理される時間間隔をサーバ送信間隔(T1)として、生存通知パケットサーバ送信コールバック処理がクライアントタイマー部11aに登録される。なお、クライアント送信間隔及びクライアントタイムアウト時間は共に0であるため、これらについては登録されない。   In this case, the survival notification packet server transmission callback process is registered in the client timer unit 11a with the processing time interval as the server transmission interval (T1). Since both the client transmission interval and the client timeout time are 0, they are not registered.

上記したようにクライアント接続状態テーブル15aからレコードが削除されることにより、例えばクライアント計算機10aがグループ化されていないこととなった場合には、その旨がサーバ計算機20に通知されることにより、クライアントタイマー部11aにはグループ化されていない場合のコールバック処理が登録される。   As described above, when the record is deleted from the client connection state table 15a, for example, when the client computer 10a is not grouped, the server computer 20 is notified of this, and the client computer 10a is notified. A callback process when not grouped is registered in the timer unit 11a.

ここでは、クライアント計算機10aのクライアントコールバック処理部16aに含まれる第2のコールバック処理部162aによるクライアント生存確認コールバック処理について説明したが、例えばクライアント計算機10bのクライアントコールバック処理部16bに含まれる第2のコールバック処理部162bによるクライアント生存確認コールバック処理についても同様である。   Here, the client survival confirmation callback processing by the second callback processing unit 162a included in the client callback processing unit 16a of the client computer 10a has been described. For example, the client callback processing unit 16b of the client computer 10b includes The same applies to the client existence confirmation callback process by the second callback processing unit 162b.

次に、図15のシーケンスチャートを参照して、クライアント計算機10aのクライアントコールバック処理部16aに含まれる第3のコールバック処理部163aによる生存通知パケットサーバ送信コールバック処理の処理手順について説明する。   Next, with reference to the sequence chart of FIG. 15, the processing procedure of the survival notification packet server transmission callback processing by the third callback processing unit 163a included in the client callback processing unit 16a of the client computer 10a will be described.

この生存通知パケットサーバ送信コールバック処理は、例えばクライアント計算機10aがグループ化されている場合には、処理される時間間隔をT3としてクライアントタイマー部11aに登録される。この場合、生存通知パケットサーバ送信コールバック処理は、時間間隔T3で実行される。   For example, when the client computer 10a is grouped, the survival notification packet server transmission callback process is registered in the client timer unit 11a with the processing time interval as T3. In this case, the survival notification packet server transmission callback process is executed at the time interval T3.

一方、例えばクライアント計算機10aがグループ化されていない場合には、生存通知パケットサーバ送信コールバック処理は、処理される時間間隔をT1としてクライアントタイマー部11aに登録される。この場合、生存通知パケットサーバ送信コールバック処理は、時間間隔T1で実行される。   On the other hand, for example, when the client computer 10a is not grouped, the survival notification packet server transmission callback process is registered in the client timer unit 11a with the processing time interval as T1. In this case, the survival notification packet server transmission callback process is executed at the time interval T1.

ここでは、生存通知パケットサーバ送信コールバック処理は、処理される時間間隔をT3としてクライアントタイマー部11aに登録されているものとして説明する。   Here, the survival notification packet server transmission callback process is described as being registered in the client timer unit 11a with the time interval to be processed as T3.

この場合、時間間隔T3は、サーバ送信間隔としてクライアント内部記憶部13aに保存されている。   In this case, the time interval T3 is stored in the client internal storage unit 13a as a server transmission interval.

まず、クライアントタイマー部11aは、例えばクライアント内部記憶部13aに保存されている開始時刻(または前回の第3のコールバック処理部163aによる生存通知パケットサーバ送信コールバック処理から時間間隔T3が経過した場合に、第3のコールバック処理部163aに対して通知を行う(ステップS41)。つまり、クライアントタイマー部11aは、登録されている時間間隔T3毎に通知を行う。   First, the client timer unit 11a, for example, the start time stored in the client internal storage unit 13a (or when the time interval T3 has elapsed from the survival notification packet server transmission callback processing by the previous third callback processing unit 163a) In addition, a notification is sent to the third callback processing unit 163a (step S41), that is, the client timer unit 11a notifies every registered time interval T3.

第3のコールバック処理部163aは、クライアントタイマー部11aからの通知を受けると、生存通知パケットサーバ送信コールバック処理を実行する。第3のコールバック処理部163aは、クライアント内部記憶部13aに保存されている生存確認スキップフラグを確認する。   When the third callback processing unit 163a receives a notification from the client timer unit 11a, the third callback processing unit 163a executes a survival notification packet server transmission callback process. The third callback processing unit 163a confirms the survival confirmation skip flag stored in the client internal storage unit 13a.

第3のコールバック処理部163aは、生存確認スキップフラグが「TRUE」であれば、当該生存確認スキップフラグを「FALSE」として生存通知パケットサーバ送信コールバック処理を終了する。つまり、生存確認スキップフラグが「TRUE」である場合には、上記した時間間隔T3毎に実行される生存通知パケットサーバ送信コールバック処理が1回スキップされる。   If the survival confirmation skip flag is “TRUE”, the third callback processing unit 163a sets the survival confirmation skip flag to “FALSE” and ends the survival notification packet server transmission callback process. That is, when the survival confirmation skip flag is “TRUE”, the survival notification packet server transmission callback process executed every time interval T3 is skipped once.

一方、生存確認スキップフラグが「FALSE」であれば、第3のコールバック処理部163aは、クライアントタイマー部11aから現在時刻を取得する。第3のコールバック処理部163aは、取得された現在時刻とクライアント接続状態テーブル15aに保持されている最終確認時刻フィールドの値(時刻)との差を算出する。第3のコールバック処理部163aは、算出された差がクライアント内部記憶部13aに保存されているサーバ送信間隔、つまり時間間隔T3より小さい全てのレコードを、クライアント接続状態テーブル15aから取得する(ステップS42)。   On the other hand, if the survival confirmation skip flag is “FALSE”, the third callback processing unit 163a acquires the current time from the client timer unit 11a. The third callback processing unit 163a calculates a difference between the acquired current time and the value (time) of the last confirmation time field held in the client connection state table 15a. The third callback processing unit 163a acquires, from the client connection state table 15a, all records whose calculated differences are stored in the client internal storage unit 13a and that are smaller than the server transmission interval, that is, the time interval T3 (Step S1). S42).

次に、第3のコールバック処理部163aは、生存通知パケットをサーバ計算機20のサーバ受信パケット処理部24に送信する(ステップS43)。   Next, the third callback processing unit 163a transmits a survival notification packet to the server reception packet processing unit 24 of the server computer 20 (step S43).

ここで、生存通知パケットには、上記した図14に示すダウン通知パケットと同様に、複数のクライアントアドレス及び開始時刻の組が格納される。ここでは、生存通知パケットには、クライアント計算機10aのクライアントアドレス及びクライアント内部記憶部13aに保存されている開始時刻の組と、ステップS42において取得された全てのレコードの各々に含まれるクライアントアドレス及び開始時刻の組が格納される。   Here, like the down notification packet shown in FIG. 14 described above, a plurality of sets of client addresses and start times are stored in the survival notification packet. Here, the existence notification packet includes the client address of the client computer 10a and the set of the start time stored in the client internal storage unit 13a, and the client address and start included in each of all the records acquired in step S42. A set of times is stored.

サーバ計算機20のサーバ受信パケット処理部24は、第3のコールバック処理部163aによって送信された生存通知パケットを受信する。サーバ受信パケット処理部24は、サーバ接続状態テーブル23において、受信された生存通知パケットに格納されているクライアントアドレス及び開始時刻の組を含む全てのレコードの最終確認時刻(フィールドの値)を現在時刻に置き換える。これにより、サーバ受信パケット処理部24は、サーバ接続状態テーブル23を更新する(ステップS44)。なお、現在時刻は、サーバタイマー部21から取得される。   The server reception packet processing unit 24 of the server computer 20 receives the survival notification packet transmitted by the third callback processing unit 163a. In the server connection state table 23, the server reception packet processing unit 24 sets the final confirmation time (field value) of all records including the set of the client address and the start time stored in the received survival notification packet as the current time. Replace with Thereby, the server reception packet processing unit 24 updates the server connection state table 23 (step S44). The current time is acquired from the server timer unit 21.

また、第3のコールバック処理部163aは、生存通知済みクライアントマルチキャストパケットを、クライアント内部記憶部13aに保存されているマルチキャストアドレスに対して送信する(ステップS45)。この生存通知済みクライアントマルチキャストパケットには、上記した図14に示すダウン通知パケットと同様に、複数のクライアントアドレス及び開始時刻の組が格納される。生存通知済みクライアントマルチキャストパケットには、ステップS42において取得されたレコードの全てのレコードの各々に含まれるクライアントアドレス及び開始時刻の組が格納される。   In addition, the third callback processing unit 163a transmits the existence-sold client multicast packet to the multicast address stored in the client internal storage unit 13a (step S45). This survival notification-completed client multicast packet stores a plurality of sets of client addresses and start times, as in the down notification packet shown in FIG. In the existence-notified client multicast packet, a set of the client address and the start time included in each of all the records acquired in step S42 is stored.

クライアント計算機10bのクライアント受信パケット処理部14bは、第3のコールバック処理部163aによって送信された生存通知済みクライアントマルチキャストパケットを受信する。クライアント受信パケット処理部14bは、受信された生存通知済みクライアントマルチキャストパケットにクライアント計算機10bのクライアントアドレス及びクライアント内部記憶部13bに保存されている開始時刻の組が格納されているか否かを確認する。   The client reception packet processing unit 14b of the client computer 10b receives the existence-notified client multicast packet transmitted by the third callback processing unit 163a. The client reception packet processing unit 14b confirms whether or not the combination of the client address of the client computer 10b and the start time stored in the client internal storage unit 13b is stored in the received client multicast packet that has been notified of existence.

クライアント受信パケット処理部14bは、クライアント計算機10bのクライアントアドレス及びクライアント内部記憶部13bに保存されている開始時刻の組が格納されている場合、クライアント内部記憶部13bに保存されている生存確認送信スキップフラグを「TRUE」に書き換える(ステップS46)。一方、クライアント計算機10bのクライアントアドレス及びクライアント内部記憶部13bに保存されている開始時刻の組が格納されていない場合、処理は終了される。   When the set of the client address of the client computer 10b and the start time stored in the client internal storage unit 13b is stored, the client reception packet processing unit 14b skips the existence confirmation transmission stored in the client internal storage unit 13b. The flag is rewritten to “TRUE” (step S46). On the other hand, when the set of the client address of the client computer 10b and the start time stored in the client internal storage unit 13b is not stored, the process is terminated.

上記したように、第3のコールバック処理部163aによる生存通知パケットサーバ送信コールバック処理においては、クライアント計算機10a及び当該クライアント計算機10aとグループ化されている他のクライアント計算機(例えば、クライアント計算機10b)の生存がサーバ計算機20に対して通知される。   As described above, in the survival notification packet server transmission callback processing by the third callback processing unit 163a, the client computer 10a and another client computer (for example, the client computer 10b) grouped with the client computer 10a. Is notified to the server computer 20.

また、第3のコールバック処理部163aが例えばクライアント計算機10bの生存を通知した旨を当該クライアント計算機10bに通知することによって、クライアント計算機10bは、生存確認送信スキップフラグを「TRUE」に書き換える。これにより、クライアント計算機10bにおいては、サーバ計算機20に生存を通知する処理(生存通知パケットサーバ送信コールバック処理)がスキップされるので、サーバ計算機20に対する通信量を低減することができる。   Further, the third callback processing unit 163a notifies the client computer 10b that the client computer 10b has been notified of the existence of the client computer 10b, for example, so that the client computer 10b rewrites the existence confirmation transmission skip flag to “TRUE”. Thereby, in the client computer 10b, the process of notifying the server computer 20 of survival (survival notification packet server transmission callback process) is skipped, so the amount of communication with the server computer 20 can be reduced.

ここでは、クライアント計算機10aのクライアントコールバック処理部16aに含まれる第3のコールバック処理部163aによる生存通知パケットサーバ送信コールバック処理について説明したが、例えばクライアント計算機10bのクライアントコールバック処理部16bに含まれる第3のコールバック処理部163bによる生存通知パケットサーバ送信コールバック処理についても同様である。   Here, the survival notification packet server transmission callback processing by the third callback processing unit 163a included in the client callback processing unit 16a of the client computer 10a has been described. For example, the client callback processing unit 16b of the client computer 10b includes The same applies to the survival notification packet server transmission callback processing by the included third callback processing unit 163b.

次に、図16のシーケンスチャートを参照して、サーバ計算機20のサーバコールバック処理部25によるサーバ生存確認コールバック処理の処理手順について説明する。   Next, with reference to a sequence chart of FIG. 16, a processing procedure of server survival confirmation callback processing by the server callback processing unit 25 of the server computer 20 will be described.

このサーバ生存確認コールバック処理は、例えばサーバ計算機20に接続されているクライアント計算機10aがグループ化されている場合には、処理される時間間隔をT4としてクライアントタイマー部21に登録される。この場合、サーバ生存確認コールバック処理は、時間間隔T4で実行される。   For example, when the client computer 10a connected to the server computer 20 is grouped, the server survival confirmation callback process is registered in the client timer unit 21 with the processing time interval as T4. In this case, the server survival confirmation callback process is executed at the time interval T4.

一方、例えばサーバ計算機20に接続されているクライアント計算機10aがグループ化されていない場合には、サーバ生存確認コールバック処理は、処理される時間間隔をT2としてサーバタイマー部21に登録される。この場合、サーバ生存確認コールバック処理は、時間間隔T2で実行される。   On the other hand, for example, when the client computer 10a connected to the server computer 20 is not grouped, the server existence confirmation callback processing is registered in the server timer unit 21 with the processing time interval being T2. In this case, the server existence confirmation callback process is executed at the time interval T2.

サーバタイマー部21は、登録されている時間間隔T4毎に、サーバコールバック処理部25に対して通知を行う(ステップS51)。   The server timer unit 21 notifies the server callback processing unit 25 at every registered time interval T4 (step S51).

サーバコールバック処理部25は、サーバタイマー部21からの通知を受けると、サーバ生存確認コールバック処理を実行する。サーバコールバック処理部25は、当該サーバタイマー部21から現在時刻を取得する。サーバタイマー部21は、取得された現在時刻とサーバ接続状態テーブル23に保持されている最終確認時刻フィールドの値との差を算出する。サーバコールバック処理部25は、サーバ接続状態テーブル23において、算出された差が時間間隔T4より大きい全てのレコードを特定する(ステップS52)。   Upon receiving the notification from the server timer unit 21, the server callback processing unit 25 executes server survival confirmation callback processing. The server callback processing unit 25 acquires the current time from the server timer unit 21. The server timer unit 21 calculates the difference between the acquired current time and the value of the last confirmation time field held in the server connection state table 23. The server callback processing unit 25 identifies all records in the server connection state table 23 where the calculated difference is greater than the time interval T4 (step S52).

この場合、サーバコールバック処理部25は、特定されたレコードに含まれるクライアントアドレスが割り当てられているクライアント計算機をダウンしたとみなして、当該レコードをサーバ接続状態テーブル23から削除する(ステップS53)。   In this case, the server callback processing unit 25 considers that the client computer to which the client address included in the specified record is assigned is down, and deletes the record from the server connection state table 23 (step S53).

次に、図17及び図18を参照して、本実施形態に係るクライアントサーバシステムにおけるパケットの流れについて説明する。   Next, with reference to FIG. 17 and FIG. 18, the flow of packets in the client server system according to the present embodiment will be described.

図17に示すように、クライアントサーバシステムは、クライアント計算機10a、10b、10c及びサーバ計算機20を備えるものとする。また、クライアント計算機10a、10b、10c及びサーバ計算機20は互いにネットワークにより接続されている。また、クライアント計算機10a、10b及び10cは、グループを構成する(グループ化されている)ものとする。   As shown in FIG. 17, the client server system includes client computers 10 a, 10 b, 10 c and a server computer 20. The client computers 10a, 10b, 10c and the server computer 20 are connected to each other via a network. The client computers 10a, 10b, and 10c form a group (grouped).

この場合、クライアント計算機10aは、時間間隔T1毎にクライアント生存通知マルチキャストパケットをマルチキャストアドレスに対して送信する。つまり、クライアント計算機10aは、時間間隔T1でクライアント計算機10b及び10cに対して自身の生存を通知する。   In this case, the client computer 10a transmits a client existence notification multicast packet to the multicast address every time interval T1. That is, the client computer 10a notifies its existence to the client computers 10b and 10c at the time interval T1.

また、クライアント計算機10aは、時間間隔T3で生存通知パケットをサーバ計算機20に対して送信する。つまり、クライアント計算機10aは、時間間隔T3でサーバ計算機20に対して自身の生存を通知する。   Further, the client computer 10a transmits a survival notification packet to the server computer 20 at the time interval T3. That is, the client computer 10a notifies its own existence to the server computer 20 at the time interval T3.

なお、クライアント計算機10b及び10cについても同様に、時間間隔T1でクライアント生存通知マルチキャストパケットを他のクライアント計算機に対して送信し、時間間隔T3で生存通知パケットをサーバ計算機20に送信する。   Similarly for the client computers 10b and 10c, the client existence notification multicast packet is transmitted to the other client computers at the time interval T1, and the existence notification packet is transmitted to the server computer 20 at the time interval T3.

ここで、上記したように時間間隔T3は時間間隔T1と比較して十分に長い間隔とする。これにより、クライアント計算機10a、10b及び10c間で送受信されるクライアント生存通知マルチキャストパケットと比較して、サーバ計算機20において受信される生存通知パケットの数を削減することができる。したがって、サーバ計算機20及び当該サーバ計算機20近傍のネットワーク負荷を抑制することができる。   Here, as described above, the time interval T3 is sufficiently longer than the time interval T1. As a result, the number of survival notification packets received by the server computer 20 can be reduced as compared with client survival notification multicast packets transmitted and received between the client computers 10a, 10b, and 10c. Therefore, the server computer 20 and the network load in the vicinity of the server computer 20 can be suppressed.

これに伴い、例えばクライアント計算機10a、10b及び10c間での通信量は増加する。したがって、グループを構成する際には、ネットワーク的に近傍のクライアント計算機同士をグループ化することが好ましい。これにより、コストを低減させることができる。   Along with this, for example, the amount of communication between the client computers 10a, 10b and 10c increases. Therefore, when configuring a group, it is preferable to group client computers in the vicinity of the network. Thereby, cost can be reduced.

また、クライアント計算機10a、10b及び10cでは、例えば時間間隔T2の間に他のクライアント計算機からクライアント生存通知マルチキャストパケットが送信されない場合には、当該他のクライアント計算機をダウンしたものとみなす。   Further, in the client computers 10a, 10b, and 10c, for example, when the client existence notification multicast packet is not transmitted from another client computer during the time interval T2, it is considered that the other client computer is down.

図19に示すように、例えばクライアント計算機10bがクライアント計算機10aをダウンしたものとみなした場合には、クライアント計算機10bはサーバ計算機20に対してその旨をダウン通知パケットにより通知する。これにより、クライアント計算機10a、10b及び10cの各々からサーバ計算機20に対して送信される生存通知パケットの時間間隔(つまり、時間間隔T3)が長い場合であっても、例えばクライアント計算機10aがダウンした際にはその旨をクライアント計算機10bが通知するため、サーバ計算機20は素早くクライアント計算機10aがダウンしたことを検知することができる。   As shown in FIG. 19, for example, when the client computer 10b considers the client computer 10a to be down, the client computer 10b notifies the server computer 20 of this by a down notification packet. As a result, even if the time interval (that is, the time interval T3) of the survival notification packet transmitted from each of the client computers 10a, 10b, and 10c to the server computer 20 is long, for example, the client computer 10a is down. At that time, the client computer 10b notifies that fact, so the server computer 20 can quickly detect that the client computer 10a is down.

上記したように本実施形態においては、グループを構成する複数のクライアント計算機10が定期的に(時間間隔T1で)互いの生存を通知するためにクライアント生存通知マルチキャストパケットを送信することにより、例えばクライアント計算機10aからのクライアント生存通知マルチキャストパケットが予め定められた時間内に受信されない場合には、当該クライアント計算機10aをダウンしたとみなしてその旨がサーバ計算機20に通知される。   As described above, in the present embodiment, a plurality of client computers 10 constituting a group transmit client survival notification multicast packets periodically (at a time interval T1) to notify each other of the survival, for example, client If the client existence notification multicast packet from the computer 10a is not received within a predetermined time, the client computer 10a is considered to be down and the server computer 20 is notified accordingly.

したがって、本実施形態においては、複数のクライアント計算機10からサーバ計算機20への生存を通知するための生存通知パケットによる負荷を複数のクライアント計算機10に分散し、当該サーバ計算機20への生存通知パケットを削減することにより、当該サーバ計算機20の負荷及び当該サーバ計算機20付近のネットワーク負荷を低減させ、かつ、複数のクライアント計算機10の各々がダウンしたことを迅速に検知することが可能となる。   Therefore, in this embodiment, the load due to the life notification packet for notifying the existence from the plurality of client computers 10 to the server computer 20 is distributed to the plurality of client computers 10, and the existence notification packet to the server computer 20 is transmitted. By reducing the load, the load on the server computer 20 and the network load in the vicinity of the server computer 20 can be reduced, and it is possible to quickly detect that each of the plurality of client computers 10 is down.

また、本実施形態においては、時間間隔T3で複数のクライアント計算機10からサーバ計算機20に対して生存通知パケットが送信される。これによって、例えばグループを構成する複数のクライアント計算機10の全てがダウンした場合であっても、サーバ計算機20は、当該複数のクライアント計算機10がダウンしたことを検知できる。この時間間隔T3は時間間隔T1より長く設定されているため、この場合であってもサーバ計算機20の負荷及び当該サーバ計算機20付近のネットワーク負荷を低減させることができる。   In this embodiment, a survival notification packet is transmitted from the plurality of client computers 10 to the server computer 20 at the time interval T3. Thus, for example, even when all of the plurality of client computers 10 constituting the group are down, the server computer 20 can detect that the plurality of client computers 10 are down. Since this time interval T3 is set longer than the time interval T1, even in this case, the load on the server computer 20 and the network load in the vicinity of the server computer 20 can be reduced.

なお、本実施形態においては、上記した時間間隔T1及びT3の差が大きいほど複数のクライアント計算機10及びサーバ計算機20間の生存確認のパケットが削減されるため、当該サーバ計算機20の負荷及び当該サーバ計算機20付近のネットワーク負荷の低減の効果が大きい。しかしながら、時間間隔T3及びT4の関係(T3<T4)から、時間間隔T3を大きくすることにより時間間隔T4が大きくなりすぎると、上記したようにグループを構成する複数のクライアント計算機10の全てがダウンしたときのダウン検知までの時間が長くなる。このため、上記事情を考慮した適当な時間間隔を定めるとよい。   In the present embodiment, the larger the difference between the time intervals T1 and T3 described above, the fewer the survival confirmation packets between the plurality of client computers 10 and the server computers 20, so the load on the server computer 20 and the server The effect of reducing the network load in the vicinity of the computer 20 is great. However, from the relationship between the time intervals T3 and T4 (T3 <T4), if the time interval T4 becomes too large by increasing the time interval T3, as described above, all of the plurality of client computers 10 constituting the group are down. It takes longer time to detect down. For this reason, it is preferable to determine an appropriate time interval in consideration of the above circumstances.

また、本実施形態においては、2台以上のクライアント計算機(例えば、クライアント計算機10a及び10b)でグループが構成されるものとして説明したが、例えば3台以上のクライアント計算機でグループが構成されるものとしても構わない。この場合には、3台以上のクライアント計算機でグループが構成されるまでは、上記したグループ化されていない場合のコールバック処理(つまり、クライアント計算機及びサーバ計算機20間での生存確認)が実行される。   In the present embodiment, the group is composed of two or more client computers (for example, the client computers 10a and 10b). However, for example, the group is composed of three or more client computers. It doesn't matter. In this case, until the group is configured by three or more client computers, the callback processing (that is, the existence check between the client computer and the server computer 20) is performed as described above when the group is not grouped. The

また、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。   Further, the present invention is not limited to the above-described embodiments as they are, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. Moreover, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment.

本発明の実施形態に係るクライアントサーバシステムのハードウェア構成を示すブロック図。The block diagram which shows the hardware constitutions of the client server system which concerns on embodiment of this invention. 図1に示す複数のクライアント計算機10に含まれるクライアント計算機10a及び10bの主として機能構成を示すブロック図。FIG. 2 is a block diagram mainly showing a functional configuration of client computers 10a and 10b included in the plurality of client computers 10 shown in FIG. サーバ計算機20の主として機能構成を示すブロック図。The block diagram which mainly shows a function structure of the server computer 20. FIG. 図2に示すクライアント内部記憶部13aのデータ構造の一例を示す図。The figure which shows an example of the data structure of the client internal memory | storage part 13a shown in FIG. 図2に示すクライアント接続状態テーブル15aに保持されるレコードのデータ構造の一例を示す図。The figure which shows an example of the data structure of the record hold | maintained in the client connection state table 15a shown in FIG. クライアント計算機10aがグループに参加し、サーバ計算機20に接続するまでの処理手順を示すシーケンスチャート。The sequence chart which shows the process sequence until the client computer 10a joins a group and connects to the server computer 20. FIG. マルチキャストアドレス応答パケットのデータ構造の一例を示す図。The figure which shows an example of the data structure of a multicast address response packet. グループ参加要求マルチキャストパケットのデータ構造の一例を示す図。The figure which shows an example of the data structure of a group participation request | requirement multicast packet. グループ化パケットのデータ構造の一例を示す図。The figure which shows an example of the data structure of a grouping packet. グループ化応答パケットのデータ構造の一例を示す図。The figure which shows an example of the data structure of a grouping response packet. 接続要求パケットのデータ構造の一例を示す図。The figure which shows an example of the data structure of a connection request packet. 第1のコールバック処理部161aによる生存通知パケットクライアント送信コールバック処理の処理手順を示すシーケンスチャート。The sequence chart which shows the process sequence of the survival notification packet client transmission callback process by the 1st callback process part 161a. 第2のコールバック処理部162aによるクライアント生存確認コールバック処理の処理手順を示すシーケンスチャート。The sequence chart which shows the process sequence of the client survival confirmation callback process by the 2nd callback process part 162a. ダウン通知パケットのデータ構造の一例を示す図。The figure which shows an example of the data structure of a down notification packet. 第3のコールバック処理部163aによる生存通知サーバ送信コールバック処理の処理手順を示すシーケンスチャート。The sequence chart which shows the process sequence of the survival notification server transmission callback process by the 3rd callback process part 163a. サーバ計算機20のサーバコールバック処理部25によるサーバ生存確認コールバック処理の処理手順を示すシーケンスチャート。The sequence chart which shows the process sequence of the server survival confirmation callback process by the server callback process part 25 of the server computer. クライアント計算機10aが他のクライアント計算機10b及び10c及びサーバ計算機20に自身の生存を通知する際のパケットの流れについて説明するための図。The figure for demonstrating the flow of a packet when the client computer 10a notifies other client computer 10b and 10c and the server computer 20 of own survival. クライアント計算機10bがクライアント計算機10aをダウンしたとみなした場合のパケットの流れについて説明するための図。The figure for demonstrating the flow of a packet when the client computer 10b considers the client computer 10a to have gone down.

符号の説明Explanation of symbols

10a,10b…クライアント計算機、11a,11b…クライアントタイマー部、12a,12b…クライアント接続部、13a,13b…クライアント内部記憶部、14a,14b…クライアント受信パケット処理部、15a,15b…クライアント接続状態テーブル、16a,16b…クライアントコールバック処理部、20…サーバ計算機、21…サーバタイマー部、22…サーバ接続待機部、23…サーバ接続状態テーブル、24…サーバ受信パケット処理部、25…サーバコールバック処理部、30…ネットワーク、161a、161b…第1のコールバック処理部、162a,162b…第2のコールバック処理部、163a,163b…第3のコールバック処理部。   10a, 10b ... client computer, 11a, 11b ... client timer unit, 12a, 12b ... client connection unit, 13a, 13b ... client internal storage unit, 14a, 14b ... client received packet processing unit, 15a, 15b ... client connection state table , 16a, 16b ... client callback processing unit, 20 ... server computer, 21 ... server timer unit, 22 ... server connection standby unit, 23 ... server connection status table, 24 ... server received packet processing unit, 25 ... server callback processing 30, network, 161 a, 161 b, first callback processing unit, 162 a, 162 b, second callback processing unit, 163 a, 163 b, third callback processing unit.

Claims (4)

第1の計算機と、前記第1の計算機と接続された第2の計算機と、前記第1の計算機及び前記第2の計算機と接続された第3の計算機を具備し、
前記第1の計算機は、前記第1の計算機に割り当てられたアドレスを含む生存通知パケットを、予め定められた第1の時間間隔で送信する送信手段を含み、
前記第2の計算機は、
前記送信された生存通知パケットを受信する受信手段と、
前記受信された生存通知パケットに含まれる前記第1の計算機に割り当てられたアドレス及び当該生存通知パケットが受信された受信時刻を含むレコードを保持するテーブルと、
現在時刻と前記受信時刻との差が予め定められた第2の時間間隔より大きい当該受信時刻を含むレコードを、当該第2の時間間隔で前記テーブルから取得する取得手段と、
前記取得されたレコードに含まれるアドレスが割り当てられた前記第1の計算機がダウンしたことを前記第3の計算機に通知する通知手段と
を含む
ことを特徴とする計算機システム。
A first computer; a second computer connected to the first computer; a third computer connected to the first computer and the second computer;
The first computer includes transmission means for transmitting a survival notification packet including an address assigned to the first computer at a predetermined first time interval,
The second calculator is
Receiving means for receiving the transmitted survival notification packet;
A table holding a record including an address assigned to the first computer included in the received life notification packet and a reception time when the life notification packet is received;
An acquisition means for acquiring, from the table, a record including the reception time at which a difference between a current time and the reception time is greater than a predetermined second time interval, at the second time interval;
A computer system comprising: notification means for notifying the third computer that the first computer to which the address included in the acquired record has been assigned is down.
前記第1の計算機の送信手段は、前記第1の計算機に割り当てられたアドレスを含む生存通知パケットを、予め定められた第3の時間間隔で前記第3の計算機に送信し、
前記第3の計算機は、
前記第1の計算機の送信手段によって第3の時間間隔で送信された生存通知パケットを受信する受信手段と、
前記第3の計算機の受信手段によって受信された生存通知パケットに含まれる前記第1の計算機に割り当てられたアドレス及び当該生存通知パケットが受信された受信時刻を含むレコードを保持するテーブルと、
現在時刻と前記第3の計算機のテーブルに保持されているレコードに含まれる受信時刻との差が予め定められた第4の時間間隔より大きい当該レコードを、当該第4の時間間隔で当該第3の計算機のテーブルから取得する取得手段と、
前記第3の計算機の取得手段によって取得されたレコードに含まれるアドレスが割り当てられた前記第1の計算機がダウンしたこと検知する検知手段と
を含む
ことを特徴とする請求項1記載の計算機システム。
The transmission means of the first computer transmits a survival notification packet including an address assigned to the first computer to the third computer at a predetermined third time interval.
The third computer is
Receiving means for receiving a survival notification packet transmitted at a third time interval by the transmitting means of the first computer;
A table holding a record including an address assigned to the first computer included in the life notification packet received by the reception unit of the third computer and a reception time when the life notification packet is received;
A record having a difference between a current time and a reception time included in a record held in the table of the third computer that is greater than a predetermined fourth time interval is set to the third time interval at the fourth time interval. Acquisition means for acquiring from the table of the computer,
The computer system according to claim 1, further comprising: a detecting unit that detects that the first computer to which an address included in the record acquired by the acquiring unit of the third computer is assigned is down.
前記第3の時間間隔は前記第1の時間間隔より長いことを特徴とする請求項2記載の計算機システム。   3. The computer system according to claim 2, wherein the third time interval is longer than the first time interval. 前記第2の計算機の取得手段は、現在時刻と前記第2の計算機のテーブルに保持されているレコードに含まれる受信時刻との差が前記第3の時間間隔より大きい当該レコードを、前記第3の時間間隔で当該第2の計算機のテーブルから取得し、
前記第2の計算機は、
前記第2の計算機の取得手段によって前記第3の時間間隔で取得されたレコードに含まれるアドレスを含む生存通知パケットを前記第3の計算機に送信する第1の送信手段と、
前記第2の計算機の取得手段によって前記第3の時間間隔で取得されたレコードに含まれるアドレスを含む生存通知済みパケットを前記第1の計算機に送信する第2の送信手段と
を更に含み、
前記第3の計算機の受信手段は、前記第2の計算機の第1の送信手段によって送信された生存通知パケットを受信し、
前記第3の計算機は、前記第3の計算機の受信手段によって受信された生存通知パケットに含まれるアドレスを含む前記第3の計算機のテーブルに保持されているレコードに含まれる受信時刻を、当該生存通知パケットが受信された受信時刻に更新する更新手段を更に含み、
前記第1の計算機は、前記第2の計算機の第2の送信手段によって送信された生存通知済みパケットを受信する受信手段を更に含み、
前記第1の計算機の送信手段は、前記第1の計算機の受信手段によって当該第1の計算機に割り当てられているアドレスが含まれた生存通知済みパケットが受信された場合、前記第3の時間間隔で送信される生存通知パケットの送信をスキップする
ことを特徴とする請求項2記載の計算機システム。
The acquisition means of the second computer obtains the record in which the difference between the current time and the reception time included in the record held in the table of the second computer is greater than the third time interval. From the table of the second computer at time intervals of
The second calculator is
First transmission means for transmitting a survival notification packet including an address included in the record acquired at the third time interval by the acquisition means of the second computer to the third computer;
A second sending means for sending a survival-notified packet including an address included in the record obtained at the third time interval by the obtaining means of the second computer to the first computer;
The receiving means of the third computer receives the survival notification packet transmitted by the first transmitting means of the second computer,
The third computer uses the reception time included in the record held in the table of the third computer including the address included in the survival notification packet received by the receiving unit of the third computer as the survival time. Update means for updating at a reception time when the notification packet is received;
The first computer further includes receiving means for receiving the survival-notified packet transmitted by the second transmitting means of the second computer,
When the transmission means of the first computer receives the alive notification-completed packet including the address assigned to the first computer by the reception means of the first computer, the third time interval The computer system according to claim 2, wherein transmission of a survival notification packet transmitted in step (1) is skipped.
JP2008123876A 2008-05-09 2008-05-09 Computer system Pending JP2009271857A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008123876A JP2009271857A (en) 2008-05-09 2008-05-09 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008123876A JP2009271857A (en) 2008-05-09 2008-05-09 Computer system

Publications (1)

Publication Number Publication Date
JP2009271857A true JP2009271857A (en) 2009-11-19

Family

ID=41438323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008123876A Pending JP2009271857A (en) 2008-05-09 2008-05-09 Computer system

Country Status (1)

Country Link
JP (1) JP2009271857A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012253654A (en) * 2011-06-06 2012-12-20 Onkyo Corp Controller and program thereof
JP2017068309A (en) * 2015-09-28 2017-04-06 日本電気株式会社 Information processing device, failure determination method, cluster system, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01154257A (en) * 1987-12-10 1989-06-16 Fujitsu Ltd Mutual monitor processing system
JPH10143480A (en) * 1996-11-14 1998-05-29 Hitachi Ltd Autonomous distributed system
JP2003271471A (en) * 2002-03-19 2003-09-26 Nec Corp Computer monitoring system, computer monitoring method and computer monitoring program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01154257A (en) * 1987-12-10 1989-06-16 Fujitsu Ltd Mutual monitor processing system
JPH10143480A (en) * 1996-11-14 1998-05-29 Hitachi Ltd Autonomous distributed system
JP2003271471A (en) * 2002-03-19 2003-09-26 Nec Corp Computer monitoring system, computer monitoring method and computer monitoring program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012253654A (en) * 2011-06-06 2012-12-20 Onkyo Corp Controller and program thereof
JP2017068309A (en) * 2015-09-28 2017-04-06 日本電気株式会社 Information processing device, failure determination method, cluster system, and program

Similar Documents

Publication Publication Date Title
JP2005287045A (en) Method for discovery of device connected to ip network and device to carry out the method
TW200534637A (en) Redundant routing capabilities for a network node cluster
US20070121490A1 (en) Cluster system, load balancer, node reassigning method and recording medium storing node reassigning program
JP4411222B2 (en) Network, network terminal device, IP address management method used therefor, and program thereof
CN104205756A (en) Concurrent process execution
US10855648B2 (en) Methods and apparatus for operating and managing a constrained device within
CN104601702B (en) Cluster remote procedure calling (PRC) method and system
JP5174613B2 (en) Broadcast system and broadcast method
JP4703682B2 (en) Cluster system and program
JP2009271857A (en) Computer system
JP2011039681A (en) Relay device, information processing method related to transfer rule, and program
JP2009206731A (en) Monitoring system, monitoring device, monitoring method, and program
US20230146880A1 (en) Management system and management method
JP2007249659A (en) System-switching method, computer system therefor, and program
JP2010003054A (en) Network management system, data acquisition device and node operation state acquiring method
JP4836920B2 (en) Network monitoring system and terminal device
CN105340247A (en) Method for network change tolerant service discovery in a computer network
JP6002642B2 (en) Communication node, network system, and device control method
JP6251203B2 (en) Streaming data distribution system and streaming data distribution method
JP2009070172A (en) Content distribution and storage system, provider server device registering method, node device, and node processing program
US8432922B2 (en) Method for managing IP tunnels
US9019964B2 (en) Methods and systems for routing application traffic
JP2006129348A (en) Master node determination system and method, node device, and computer program
JP5458610B2 (en) Relay communication system
JP2008219279A (en) Network monitoring method and network monitoring system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100525

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101005