JP2009271857A - Computer system - Google Patents
Computer system Download PDFInfo
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
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
ここで、上記した先行技術1において、例えばTCP/IP(Transmission Control Protocol/Internet Protocol)のようなアイドル状態の時には何もパケット(情報)を送信しないプロトコルを用いて通信している場合を想定する。このような場合に、例えばクライアント計算機の電源が急に落ちたり、当該クライアント計算機における物理的な回線が切れたりした場合には、先行技術においては障害情報を送信することができず、正常なクローズのシーケンスが動作しないため、当該クライアント計算機に障害が発生したこと(つまり、ダウンしたこと)を他のクライアント計算機は検知することができない。
Here, in the above-described
そこで、例えば複数のクライアント計算機の各々は、当該クライアント計算機から生存していることを表すパケット(以下、生存通知パケットと表記)を定期的にサーバ計算機に対して送信する。これにより、クライアント計算機から生存通知パケットが一定時間受信されない場合には、サーバ計算機によって当該クライアント計算機がダウンしたことが検知される技術(以下、先行技術2と表記)が知られている。
ところで、上記した先行技術2において、クライアント計算機がダウンしたことを即座に検知するためには、当該クライアント計算機からサーバ計算機に送信される生存通知パケットの送信間隔を短くする必要がある。
By the way, in the
しかしながら、このように生存通知パケットの送信間隔を短くすると、例えばクライアントサーバシステムを構成するクライアント計算機の数が多い場合にはサーバ計算機の負荷(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
また、複数のクライアント計算機10(に含まれるクライアント計算機10a及び10b)は、例えば当該クライアント計算機同士でグループを構成する。このグループを構成する複数のクライアント計算機10間では、互いに生存確認のためのパケットを送信することにより、互いに他のクライアント計算機がダウンしたことをサーバ計算機20に通知する機能を有する。
In addition, a plurality of client computers 10 (
図2は、図1に示す複数のクライアント計算機10に含まれるクライアント計算機10a及び10bの主として機能構成を示すブロック図である。
FIG. 2 is a block diagram mainly showing a functional configuration of the
クライアント計算機10aは、クライアントタイマー部11a、クライアント接続部12a、クライアント内部記憶部13a、クライアント受信パケット処理部14a、クライアント接続状態テーブル15a及びクライアントコールバック処理部16aを含む。
The
クライアントタイマー部11aは、現在時刻を取得する機能を有する。また、クライアントタイマー部11aは、例えば登録された時間が経過した場合にその旨を通知する機能を有する。クライアントタイマー部11aは、例えばクライアント計算機10aに内蔵されたリアルタイムクロック機能またはアラーム機能等により実現される。
The
クライアント接続部12aは、サーバ計算機20に対して、予めクライアントサーバシステムにおいて決められているマルチキャストアドレスを要求するためのマルチキャストアドレス要求パケットを送信する。このマルチキャストアドレスは、サーバ計算機20において保持されている。なお、このマルチキャストアドレスに対して例えばパケットが送信された場合には、例えばクライアントサーバシステムを構成する複数のクライアント計算機10によって受信される。
The
クライアント接続部12aは、マルチキャストアドレス要求パケットに対する応答として、マルチキャストアドレスを含むマルチキャストアドレス応答パケットをサーバ計算機20から受信する。クライアント接続部12aは、受信されたマルチキャストアドレス応答パケットからマルチキャストアドレスを取得する。クライアント接続部12aは、取得されたマルチキャストアドレスをクライアント内部記憶部13aに保存(格納)する。
The
クライアント内部記憶部13aには、クライアント計算機10aが例えばサーバ計算機20と接続を開始した時刻(以下、開始時刻と表記)及び後述する生存確認送信スキップフラグ等が保存される。
The client
クライアント接続部12aは、クライアント計算機10aに割り当てられているクライアントアドレス及びクライアント内部記憶部13aに保存されている開始時刻が格納されたグループ参加要求マルチパケットを、クライアント内部記憶部13aに保存されているマルチキャストアドレスに対して送信する。これにより、クライアントサーバシステムを構成する他のクライアント計算機(例えば、クライアント計算機10b)に対してグループへの参加を要求する。
The
また、クライアント接続部12aは、例えばクライアント計算機10aがサーバ計算機20に接続する際に、当該サーバ計算機20に対して接続要求パケットを送信する。この接続要求パケットには、クライアント計算機10aに割り当てられているクライアントアドレス及びクライアント内部記憶部13aに保存されている開始時刻が格納される。また、この接続要求パケットには、例えばクライアント計算機10aがグループを構成する(つまり、グループ化された)か否かを示すグループフラグ(「TRUE」または「FALSE」)が格納される。クライアント計算機10aがグループ化されたか否かは、後述するクライアント接続状態テーブル15aを参照して決定される。
For example, when the
クライアント接続部12aは、接続要求パケットに対する応答として、接続応答パケットをサーバ計算機20から受信する。この接続応答パケットには、クライアント送信間隔(第1の時間間隔)、クライアントタイムアウト時間(第2の時間間隔)及びサーバ送信間隔(第3の時間間隔)が格納(設定)されている。クライアント送信間隔は、例えばクライアント計算機10aがグループを構成する他のクライアント計算機(例えば、クライアント計算機10b)に自身の生存を通知する間隔を示す。クライアントタイムアウト時間は、例えばクライアント計算機10aがグループを構成する他のクライアント計算機をダウンしたとみなすまでの時間を示す。サーバ送信間隔は、例えばクライアント計算機10aがサーバ計算機20に対して自身の生存を通知する間隔を示す。
The
クライアント接続部12aは、受信された接続応答パケットに応じて、クライアントタイマー部11aにコールバック処理を登録する。このとき、クライアント接続12aは、受信された接続応答パケットに含まれるクライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔をクライアント内部記憶部13aに保存する。なお、コールバック処理の登録の詳細については後述する。
The
クライアント受信パケット処理部14aは、クライアント接続部12aによって送信されたグループ参加要求マルチキャストパケットに対する応答として、例えばクライアント計算機10bからのグループ参加応答マルチキャストパケットを受信する。このグループ参加応答マルチキャストパケットには、グループ参加要求マルチキャストパケットの送信先であるクライアント計算機10bに割り当てられているクライアントアドレス及び当該クライアント計算機10bが例えばサーバ計算機20と接続を開始した時刻(開始時刻)が含まれる。
The client reception
クライアント受信パケット処理部14aは、受信されたグループ参加応答マルチキャストパケットに含まれるクライアントアドレス及び開始時刻を含むレコード(クライアント接続状態テーブルレコード)を、クラインアント接続状態テーブル15aに保存(登録)する。
The client reception
クライアント接続状態テーブル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
また、クライアント受信パケット処理部14aは、他のクライアント計算機(例えば、クライアント計算機10b)からグループ参加要求マルチキャストパケットが送信された場合には、当該グループ参加要求マルチキャストパケットを受信する。クライアント受信パケット処理部14aは、グループ参加要求マルチキャストパケットが受信された場合、新しいレコードとして当該グループ参加要求マルチキャストパケットに含まれるクライアントアドレス及び開始時刻を、クライアント接続状態テーブル15aに保存する。クライアント受信パケット処理部14aは、受信されたグループ参加要求マルチキャストパケットに対する応答として、クライアント計算機10aのクライアントアドレス及び開始時刻を含むクライアント参加応答マルチキャストパケットをマルチキャストアドレスに対して送信する。
In addition, when a group participation request multicast packet is transmitted from another client computer (for example, the
クライアント受信パケット処理部14aは、受信されたクライアント参加要求マルチパケットに応じてクライアント接続状態テーブル15aを更新(つまり、レコードを保存)した後、当該クライアント接続状態テーブル15aに保存(保持)されているレコード数が1である場合には、クライアントタイマー部11aに登録されているコールバック処理を全てキャンセルする。この場合、クライアント受信パケット処理部14aは、クライアント計算機10aがグループ化されたことを示すグループフラグが格納されたグループ化パケットをサーバ計算機20に対して送信する。
The client reception
クライアント受信パケット処理部14aは、グループ化パケットに対する応答としてグループ化応答パケットをサーバ計算機20から受信する。このグループ化応答パケットには、上記した接続応答パケットと同様に、クライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔が格納(設定)されている。クライアント受信パケット処理部14aは、受信されたグループ化応答パケットに応じて、クライアントタイマー部11aにコールバック処理を登録する。このとき、グループ化応答パケットに含まれるクライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔は、クライアント内部記憶部13aに保存される。
The client reception
また、クライアント受信パケット処理部14aは、他のクライアント計算機(例えば、クライアント計算機10b)から当該クライアント計算機10bの生存を通知するための生存通知パケット(以下、クライアント生存通知マルチキャストパケットと表記)が送信された場合に、当該クライアント生存通知マルチキャストパケットを受信する。このクライアント生存通知マルチキャストパケットには、当該クライアント生存通知マルチキャストパケットの送信元であるクライアント計算機10bのクライアントアドレス及び開始時刻が含まれる。
The client reception
クライアント受信パケット処理部14aは、クライアント生存通知マルチキャストパケットが受信された場合、当該クライアント生存通知マルチキャストパケットが受信された受信時刻(現在時刻)をクライアントタイマー部11aから取得する。クライアント受信パケット処理部14aは、受信された生存通知マルチキャストパケットに含まれるクライアントアドレス及び開始時刻を含む(一致する)レコードをクライアント接続状態テーブル15aから取り出す。
When a client survival notification multicast packet is received, the client reception
クライアント受信パケット処理部14aは、取り出されたレコードに含まれる最終確認時刻フィールドにクライアントタイマー部11aから取得された現在時刻(受信時刻)を保存する(置き換える)。
The client reception
つまり、クライアント接続状態テーブル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
クライアント受信パケット処理部14aは、例えばクライアント計算機10bから後述する生存通知済みクライアントマルチキャストパケットが送信された場合には、当該生存通知済みクライアントマルチキャストパケットを受信する。この生存通知済みクライアントマルチキャストパケットには、クライアントアドレス及び開始時刻が格納されている。クライアント受信パケット処理部14aは、受信された生存通知済みクライアントマルチキャストパケットにクライアント計算機10aのクライアントアドレス及び開始時刻が格納されている場合、クライアント内部記憶部13aに生存確認送信スキップフラグ「TRUE」をセット(保存)する。なお、生存確認送信スキップフラグには、「TRUE」及び「FALSE」が含まれる。
The client reception
クライアントコールバック処理部16aは、クライアントタイマー部11aに登録されたコールバック処理を実行する。このコールバック処理においては、例えば上記した生存を通知するためのパケットがグループを構成する例えばクライアント計算機10b及びサーバ計算機20に送信される。また、コールバック処理においては、例えばグループを構成するクライアント計算機10bがダウンしたことがサーバ計算機20に通知される。
The client
クライアントコールバック処理部16aは、第1のコールバック処理部161a、第2のコールバック処理部162a及び第3のコールバック処理部163aを含む。
The client
第1のコールバック処理部161aは、クライアントタイマー部11aからの通知に応じて、グループを構成する他のクライアント計算機(例えば、クライアント計算機10b)にクライアント計算機10aの生存を通知する処理(生存通知パケットクライアント送信コールバック処理)を実行する。クライアントタイマー部11aは、生存通知パケットクライアント送信コールバック処理において登録されている時間間隔で通知を行う。
In response to the notification from the
第1のコールバック処理部161aは、クライアントタイマー部11aからの通知を受けると、クライアント計算機10aのクライアントアドレス及びクライアント内部記憶部13aに保存されている開始時刻を含むクライアント生存通知マルチキャストパケットを、クライアント内部記憶部13aに保存されているマルチキャストアドレスに対して送信する。
When the first
第2のコールバック処理部162aは、クライアントタイマー部11aからの通知に応じて、グループを構成する他のクライアント計算機(例えば、クライアント計算機10b)の生存を確認する処理(クライアント生存確認コールバック処理)を実行する。クライアントタイマー部11aは、クライアント生存確認コールバック処理において登録されている時間間隔で通知を行う。
The second
第2のコールバック処理部162aは、クライアントタイマー部11aからの通知を受けると、当該クライアントタイマー部11aから現在時刻を取得する。第2のコールバック処理部162aは、取得された現在時刻とクライアント接続状態テーブル15aに保持されている最終確認時刻フィールドの値(時刻)との差を算出する。第2のコールバック処理部162aは、算出された差がクライアント内部記憶部13aに保存されているクライアントタイムアウト時間より大きい全てのレコードを、クライアント接続状態テーブル15aから取り出す。
Upon receiving the notification from the
第2のコールバック処理部162aは、取り出された全てのレコードに含まれるクライアントアドレス及び開始時刻が格納されたダウン通知パケットをサーバ計算機20に対して送信する。このダウン通知パケットが送信されることにより、例えばクライアント計算機10bがダウンしたことがサーバ計算機20に通知される。第2のコールバック処理部162aは、ダウン通知パケットが送信されると、取り出された全てのレコードを、クライアント接続状態テーブル15aから削除する。
The second
第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
第3のコールバック処理部163aは、クライアントタイマー部11aからの通知に応じて、グループ化された複数のクライアント計算機10(例えば、クライアント計算機10a及び10b)の生存をサーバ計算機20に対して通知する処理(生存通知パケットサーバ送信コールバック処理)を実行する。クライアントタイマー部11aは、生存通知パケットサーバ送信コールバック処理において登録されている時間間隔で通知を行う。
The third
第3のコールバック処理部163aは、クライアントタイマー部11aからの通知を受けると、クライアント内部記憶部13aに保存されている生存確認送信スキップフラグを確認する。第3のコールバック処理部163aは、生存確認送信スキップフラグが「TRUE」である場合には、当該生存確認送信スキップフラグ「FALSE」をクライアント内部記憶部13aにセットして処理を終了する。
Upon receiving the notification from the
つまり、クライアント内部記憶部13aに生存確認送信スキップフラグ「TRUE」がセット(保存)されている場合には、生存通知パケットサーバ送信コールバック処理が1回スキップされる。
That is, when the survival confirmation transmission skip flag “TRUE” is set (saved) in the client
一方、生存確認スキップフラグが「FALSE」である場合には、第3のコールバック処理部162aは、クライアントタイマー部11aから現在時刻を取得する。第3のコールバック処理部163aは、取得された現在時刻とクライアント接続状態テーブル15aに保持されているレコードに含まれる最終確認時刻フィールドの値(時刻)との差を算出する。
On the other hand, when the survival confirmation skip flag is “FALSE”, the third
この最終確認時刻フィールドには、当該最終確認時刻フィールドを含むレコードに含まれるクライアントアドレスが割り当てられているクライアント計算機(例えば、クライアント計算機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
第3のコールバック処理部163aは、算出された差がクライアント内部記憶部13aに保存されているサーバ送信間隔以上でない、つまり、サーバ間隔より小さい全てのレコードを、クライアント接続状態テーブル15aから取り出す。
The third
第3のコールバック処理部163aは、取り出された全てのレコードに含まれるクライアントアドレス及び開始時刻が格納された生存通知パケットをサーバ計算機20に送信する。この生存通知パケットには、取り出された全てのレコードに含まれるクライアントアドレス及び開始時刻に加えて、クライアント計算機10aのクライアントアドレス及びクライアント内部記憶部13aに格納されている開始時刻が格納される。
The third
第3のコールバック処理部163aは、生存通知パケットをサーバ計算機20に送信した場合、クライアント接続状態テーブル15aから取り出された全てのレコードに含まれるクライアントアドレス及び開始時刻が格納された生存通知済みクライアントマルチキャストパケットを、クライアント内部記憶部13aに保存されているマルチキャストアドレスに対して送信(マルチキャスト)する。これにより、生存通知済みクライアントマルチキャストパケットに含まれるクライアントアドレスが割り当てられているクライアント計算機(例えば、クライアント計算機10b)の生存をサーバ計算機20に通知したことが、当該クライアント計算機10bに対して通知される。
When the third
クライアント計算機10bは、クライアントタイマー部11b、クライアント接続部12b、クライアント内部記憶部13b、クライアント受信パケット処理部14b、クライアント接続状態テーブル15b及びクライアントコールバック処理部16bを含む。
The
クライアント計算機10bに含まれる各部11b〜16bは、上記したクライアント計算機10aに含まれる各部11a〜16aと同様であるため、その詳しい説明は省略する。
Since the units 11b to 16b included in the
また、クライアント計算機10bのクライアントコールバック処理部16bは、第1のクライアントコールバック処理部161b、第2のクライアントコールバック処理部162b及び第3のクライアントコールバック処理部163bを含む。これらの各部161b〜163bは、上記したクライアント計算機10aのクライアントコールバック処理部16aに含まれる各部161a〜163aと同様であるため、その詳しい説明は省略する。
The client
なお、図2においては、クライアント計算機10a及び10bの構成について説明したが、当該クライアント計算機10a及び10b以外のクライアント計算機についても同様である。
Although the configuration of the
図3は、サーバ計算機20の主として機能構成を示すブロック図である。図3に示すように、サーバ計算機20は、サーバタイマー部21、サーバ接続待機部22、サーバ接続状態テーブル23、サーバ受信パケット処理部24及びサーバコールバック処理部25を含む。
FIG. 3 is a block diagram mainly showing a functional configuration of the
なお、サーバ計算機20には、上記したグループを構成する複数のクライアント計算機10間で互いの生存を通知する時間間隔(クライアント送信間隔)としてT1、当該グループを構成する複数のクライアント計算機が他のクライアント計算機をダウンしたとみなすまでの時間間隔(クライアントタイムアウト時間)としてT2、複数のクライアント計算機10の各々が自身の生存をサーバ計算機20に通知する時間間隔(サーバ送信間隔)としてT3、サーバ計算機20が複数のクライアント計算機10の各々をダウンしたとみなすまでの時間間隔(第4の時間間隔)としてT4が予め定められているものとする。
The
ここで、時間間隔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
サーバ接続待機部22は、例えばクライアント計算機10aによって送信されたマルチキャストアドレス要求パケットを受信する。サーバ接続待機部22は、マルチキャストアドレス要求パケットが受信された場合、予めクライアントサーバシステムに決められているマルチキャストアドレスを含むマルチキャストアドレス応答パケットをクライアント計算機10aに送信する。
The server
サーバ接続待機部22は、例えばクライアント計算機10aによって送信された接続要求パケットを受信する。
The server
サーバ接続待機部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
サーバ接続待機部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
サーバ接続状態テーブル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,
サーバ受信パケット処理部24は、例えばクライアント計算機10aによって送信されたグループ化パケットを受信する。
The server reception
ここで、サーバ受信パケット処理部24によって受信されたグループ化パケットに、例えばクライアント計算機10aがグループ化されたことを示すグループフラグ「TRUE」が格納されている場合を想定する。この場合、サーバ受信パケット処理部24は、受信されたグループ化パケットに対する応答として、クライアント送信間隔にT1、クライアントタイムアウト時間にT2及びサーバ送信間隔にT3が設定されたグループ化応答パケットをクライアント計算機10aに送信する。
Here, it is assumed that a group flag “TRUE” indicating that the
一方、サーバ受信パケット処理部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
サーバ受信パケット処理部24によって送信されたグループ化応答パケットに設定されているクライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔に応じて、各種コールバック処理がクライアントタイマー部11aに登録される。
Various callback processes are registered in the
このように、グループ化パケットに格納されているグループフラグに応じて、サーバ受信パケット処理部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
換言すれば、クライアント計算機10aがグループ化されていれば、クライアントタイマー部11aには当該クライアント計算機10aがグループ化されている場合のコールバック処理が登録される。一方、クライアント計算機10aがグループ化されていなければ、クライアントタイマー部11aには当該クライアント計算機10aがグループ化されていない場合のコールバック処理が登録される。
In other words, if the
サーバ受信パケット処理部24は、例えばクライアント計算機10aによって送信されたダウン通知パケットを受信する。サーバ受信パケット処理部24は、受信されたダウン通知パケットに含まれるクライアントアドレス及び開始時刻を含むレコードを、サーバ接続状態テーブル23から削除する。
The server reception
また、サーバ受信パケット処理部24は、例えばクライアント計算機10aによって送信された生存通知パケットを受信する。サーバ受信パケット処理部24は、受信された生存通知パケットに格納されているクライアントアドレス及び開始時刻を含む全てのレコードに含まれる最終確認時刻フィールドの値を現在時刻に置き換える。この現在時刻は、サーバタイマー部21から取得される。
Further, the server reception
サーバコールバック処理部25は、サーバタイマー部21からの通知に応じて、サーバ計算機20と接続されている複数のクライアント計算機10(例えば、クライアント計算機10a及び10b)の生存を確認する処理(サーバ生存確認コールバック処理)を実行する。この場合、サーバタイマー部21は、当該サーバタイマー部21に登録されている時間間隔(T2またはT4)でサーバコールバック処理部25に通知する。ここでは、サーバタイマー部21に登録されている時間間隔は、時間間隔T4であるものとして説明する。
In response to the notification from the
サーバコールバック処理部25は、サーバタイマー部21からの通知を受けると、当該サーバタイマー部21から現在時刻を取得する。サーバコールバック処理部25は、取得された現在時刻とサーバ接続状態テーブル23に保持されている最終確認時刻フィールドの値(時刻)との差を算出する。サーバコールバック処理部25は、算出された差が時間間隔T4より大きい全てのレコードを、サーバ接続状態テーブル23から検索する。これにより、サーバコールバック処理部25は、算出された差が時間間隔T4より大きい全てのレコードに含まれるクライアントアドレスが割り当てられているクライアント計算機がダウンしたことを検知する。サーバコールバック処理部25は、検索された全てのレコードを、サーバ接続状態テーブル23から削除する。
Upon receiving a notification from the
図4は、図2に示すクライアント内部記憶部13a(及びクライアント内部記憶部13b)のデータ構造の一例を示す。図4に示すように、クライアント内部記憶部13aには、開始時刻、生存確認送信スキップフラグ、マルチキャストアドレス、クライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔が保存される。
FIG. 4 shows an example of the data structure of the client
開始時刻は、クライアント計算機10aがサーバ計算機20と接続を開始した時刻を示す。生存確認送信スキップフラグは、上記したように例えば生存通知パケットサーバ送信コールバック処理をスキップするか否か(「TRUE」または「FALSE」)を示す。マルチキャストアドレスは、複数のクライアント計算機10が指定されたアドレスである。また、クライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔は、上記した各種コールバック処理において登録される時間間隔である。
The start time indicates the time when the
図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
なお、図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
ここで、上記したように例えばグループを構成する複数のクライアント計算機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
上記したように、時間間隔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
まず、クライアント計算機10aは、サーバ計算機20に接続する際、クライアント内部記憶部13aについて初期化処理を実行する。この場合、クライアント計算機10aは、クライアント内部記憶部13aに保存されている開始時刻として現在時刻を保存する。この現在時刻は、クライアントタイマー部11aから取得される。また、クライアント計算機10aは、クライアント内部記憶部13aに生存確認送信スキップフラグ「FALSE」をセット(保存)する。
First, when connecting to the
クライアント計算機10aのクライアント接続部12aは、マルチキャストアドレスを要求するためのマルチキャストアドレス要求パケットをサーバ計算機20のサーバ接続待機部22に送信する(ステップS1)。このマルチキャストアドレスは、予めクライアントサーバシステムにおいて決められている。
The
サーバ計算機22のサーバ接続待機部22は、クライアント接続部12aによって送信されたマルチキャストアドレス要求パケットを受信する。サーバ接続待機部22は、マルチキャストアドレス要求パケットが受信されると、当該マルチキャストアドレス要求パケットに対する応答としてマルチキャストアドレス応答パケットをクライアント接続部12aに送信する。
The server
ここで、図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
次に、クライアント接続部12aは、グループへの参加を要求するグループ参加要求マルチキャストパケットを、クライアント内部記憶部13aに保存されたマルチキャストアドレスに対して送信する(ステップS4)。これにより、グループ参加要求マルチキャストパケットは、クライアント計算機10bを含む複数のクライアント計算機10に対して送信される。クライアント接続部12aは、グループ参加要求マルチキャストパケットを送信した後、一定時間(Tc)待機する。
Next, the
ここで、図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
再び図6に戻ると、既にサーバ計算機20との接続処理が完了しているクライアント計算機10bのクライアント受信パケット処理部14bは、クライアント接続部12aによって送信されたグループ参加要求マルチキャストパケットを受信する。クライアント受信パケット処理部14bは、受信されたグループ参加要求マルチキャストパケットに応じてクライアント接続状態テーブル15bを更新する(ステップS5)。この場合、クライアント受信パケット処理部14bは、クライアント接続状態テーブル15bの新しいレコードとして、受信されたグループ参加要求マルチキャストパケットに格納されているクライアント計算機10aのクライアントアドレス及び開始時刻を保存する。
Returning to FIG. 6 again, the client reception
次に、クライアント受信パケット処理部14bは、受信されたグループ参加要求マルチキャストパケットに対する応答としてグループ参加応答マルチキャストパケットを、マルチキャストアドレスに対して送信する(ステップS6)。
Next, the client reception
ここで、クライアント計算機10bはサーバ計算機20と既に接続されているため、上記したステップS1〜ステップS3に相当する処理が実行されている。よって、このステップS6の処理においては、クライアント内部記憶部13bに既に保存されているマルチキャストパケットが用いられる。これにより、グループ参加応答マルチキャストパケットは、クライアント計算機10aを含む複数のクライアント計算機10に対して送信される。
Here, since the
なお、グループ参加応答マルチキャストパケットには、上記した図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
クライアント計算機10aのクライアント受信パケット処理部14aは、クライアント受信パケット処理部14bによって送信されたグループ参加応答マルチキャストパケットを受信する。クライアント受信パケット処理部14aは、受信されたグループ参加応答マルチキャストパケットに応じてクライアント接続状態テーブル15aを更新する(ステップS7)。この場合、クライアント受信パケット処理部14aは、クライアント接続状態テーブル15aの新しいレコードとして、受信されたグループ参加応答マルチキャストパケットに格納されているクライアント計算機10bのクライアントアドレス及び開始時刻を保存する。
The client reception
なお、上記したステップ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
一方、クライアント計算機10bのクライアント受信パケット処理部14bは、クライアント接続状態テーブル15bに保持されているレコードの数を確認する。このとき、クライアント接続状態テーブル15bに保持されているレコードの数が1である場合には、クライアントタイマー部11bに登録されているコールバック処理を全てキャンセルする。
On the other hand, the client reception
クライアント接続状態テーブル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
このとき、クライアント接続状態テーブル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
したがって、クライアント計算機10bは、クライアント計算機10aが接続されるまではグループ化されていない(つまり、クライアント接続状態テーブル15bのレコード数が0であった)ため、クライアントタイマー部11bには上記したクライアント計算機10bがグループ化されていない場合のコールバック処理が登録されている。
Therefore, since the
ここで、クライアント計算機10aが接続されることにより、クライアント接続状態テーブル15bのレコード数が1になるため、クライアント計算機10bはグループ化されることになる。したがって、クライアントタイマー部11bにクライアント計算機10bがグループ化された場合のコールバック処理を登録するため、上記したように当該クライアントタイマー部11bに登録されている(グループ化されていない場合の)コールバック処理を全てキャンセルする。
Here, since the number of records in the client connection state table 15b becomes 1 when the
なお、クライアント接続状態テーブル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
ここで、図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
再び図6に戻ると、サーバ計算機20のサーバ受信パケット処理部24は、クライアント受信パケット処理部14bによって送信されたグループ化パケットを受信する。サーバ受信パケット処理部24は、受信されたグループ化パケットに格納されているグループフラグを確認する。ここでは、受信されたグループ化パケットに格納されているグループフラグは「TRUE」である。この場合、サーバ受信パケット処理部24は、受信されたグループ化パケットに対する応答としてグループ化応答パケットをクライアント計算機10bのクライアント受信パケット処理部14bに送信する(ステップS9)。
Returning to FIG. 6 again, the server reception
ここで、図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
クライアント受信パケット処理部14bは、受信されたグループ化応答パケットに格納されているクライアント送信間隔(T1)、クライアントタイムアウト時間(T2)及びサーバ送信間隔(T3)に基づいて、各種コールバック処理をクライアントタイマー部11bに登録する(ステップS10)。
The client reception
具体的には、クライアント受信パケット処理部14bは、処理される時間間隔をクライアント送信間隔(T1)として、上記した生存通知パケットクライアント送信コールバック処理をクライアントタイマー部11bに登録する。これにより、生存通知パケットクライアント送信コールバック処理は、時間間隔T1で実行される。
Specifically, the client reception
クライアント受信パケット処理部14bは、処理される時間間隔をクライアントタイムアウト時間(T2)として、上記したクライアント生存確認コールバック処理をクライアントタイマー部11bに登録する。これにより、クライアント生存確認コールバック処理は、時間間隔T2で実行される。
The client reception
また、クライアント受信パケット処理部14bは、処理される時間間隔をサーバ送信間隔(T3)として、上記した生存通知パケットサーバ送信コールバック処理をクライアントタイマー部11bに登録する。これにより、生存通知パケットサーバ送信コールバック処理は、時間間隔T3で実行される。
Further, the client reception
一方、クライアント計算機10aのクライアント接続部12aは、上記した一定時間(Tc)待機した後、クライアント接続状態テーブル15aを参照して接続要求パケットをサーバ計算機20のサーバ接続待機部22に送信する(ステップS11)。
On the other hand, the
ここで、図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
再び図6に戻ると、サーバ計算機20のサーバ接続待機部22は、クライアント接続部12aによって送信された接続要求パケットを受信する。サーバ接続待機部22は、受信された接続要求パケットに格納されているグループフラグを確認する。
Returning to FIG. 6 again, the server
サーバ接続待機部22は、接続要求パケットに対する応答として接続応答パケットをクライアント計算機10aのクライアント接続部12aに送信する(ステップS12)。この接続応答パケットには、上記した図10に示すグループ化応答パケットと同様に、クライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔が格納される。
The server
ここでは、グループフラグは「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
クライアント計算機10aのクライアント接続部12aは、サーバ接続待機部22によって送信された接続応答パケットを受信する。クライアント接続部12aは、受信された接続応答パケットに含まれるクライアント送信間隔、クライアントタイムアウト時間及びサーバ送信間隔をクライアント内部記憶部13aに保存する。
The
クライアント接続部12aは、受信された接続応答パケットに格納されているクライアント送信間隔(T1)、クライアントタイムアウト時間(T2)及びサーバ送信間隔(T3)に基づいて、各種コールバック処理をクライアントタイマー部11aに登録する(ステップS14)。
The
具体的には、クライアント接続部12aは、処理される時間間隔をクライアント送信間隔(T1)として、上記した生存通知パケットクライアント送信コールバック処理をクライアントタイマー部11aに登録する。
Specifically, the
クライアント接続部12aは、処理される時間間隔をクライアントタイムアウト時間(T2)として、上記したクライアント生存確認コールバック処理をクライアントタイマー部11aに登録する。
The
また、クライアント接続部12aは、処理される時間間隔をサーバ送信間隔(T3)として、上記した生存通知パケットサーバ送信コールバック処理をクライアントタイマー部11aに登録する。
Further, the
なお、上記したステップ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
このとき、サーバ接続待機部22は、処理される時間間隔を予め定められた時間間隔T2として、サーバ生存確認コールバック処理をサーバタイマー部21に登録する。
At this time, the server
クライアント計算機10aのクライアント接続部12aは、処理される時間間隔をサーバ接続待機部22によって送信された接続応答パケットに含まれるサーバ送信間隔(T1)として、上記した生存通知パケットサーバ送信コールバック処理をクライアントタイマー部11aに登録する。
The
なお、接続応答パケットに含まれるクライアント送信間隔及びクライアントタイムアウト時間は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
次に、クライアント計算機10aが上記した図6に示す処理によってグループ化された状態(定常状態)における各種コールバック処理について説明する。
Next, various callback processes when the
図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
この生存通知パケットクライアント送信コールバック処理は、例えばクライアント計算機10aがグループ化されている場合には、処理される時間間隔をT1としてクライアントタイマー部11aに登録される。これにより、生存通知パケットクライアント送信コールバック処理は、時間間隔T1で実行される。
For example, when the
なお、上記したようにクライアント計算機10aがグループ化されていない場合には、この生存通知パケットクライアント送信コールバック処理はクライアントタイマー部11aには登録されていないため実行されない。
As described above, when the
まず、クライアントタイマー部11aは、例えばクライアント内部記憶部13aに保存されている開始時刻(または前回の第1のコールバック処理部161aによる生存通知パケットクライアント送信コールバック処理)から時間間隔T1が経過した場合に、第1のコールバック処理部161aに対して通知を行う(ステップS21)。つまり、クライアントタイマー部11aは、登録されている時間間隔T1毎(時間間隔T1おき)に通知を行う。
First, the
第1のコールバック処理部161aは、クライアントタイマー部11aからの通知を受けると、クライアント計算機10aのクライアントアドレス及びクライアント内部記憶部13aに保存されている開始時刻を取得する(ステップS22)。
Upon receiving the notification from the
第1のコールバック処理部161aは、取得されたクライアントアドレス及び開始時刻をクライアント生存通知マルチキャストパケットに格納する。第1のコールバック処理部161aは、クライアントアドレス及び開始時刻が格納されたクライアント生存通知マルチキャストパケットを、クライアント内部記憶部13aに保存されているマルチキャストアドレスに対して送信する(ステップS23)。
The first
クライアント計算機10bのクライアント受信パケット処理部14bは、第1のコールバック処理部161aによって送信されたクライアント生存通知マルチキャストパケットを受信する。クライアント受信パケット処理部14bは、受信されたクライアント生存通知マルチキャストパケットに格納されているクライアントアドレス及び開始時刻を含むレコードを、クライアント接続状態テーブル15bから取り出す。
The client reception
クライアント受信パケット処理部14bは、取り出されたレコードに含まれる最終確認時刻(フィールドの値)を現在時刻に置き換える。これにより、クライアント受信パケット処理部14bは、クライアント接続状態テーブル15bを更新する(ステップS24)。
The client reception
上記したように、例えばクライアントタイマー部11aに登録された時間間隔T1毎に例えばクライアント計算機10aから他のクライアント計算機(例えば、クライアント計算機10b)に対してクライアント生存通知マルチキャストパケットを送信することで、当該他のクライアント計算機に対してクライアント計算機10aの生存を通知する。
As described above, for example, by transmitting a client existence notification multicast packet from the
ここでは、クライアント計算機10aのクライアントコールバック処理部16aに含まれる第1のコールバック処理部161aによる生存通知パケットクライアント送信コールバック処理について説明したが、例えばクライアント計算機10bのクライアントコールバック処理部16bに含まれる第1のコールバック処理部161bによる生存通知パケットクライアント送信コールバック処理についても同様である。
Here, the survival notification packet client transmission callback processing by the first
次に、図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
このクライアント生存確認コールバック処理は、例えばクライアント計算機10aがグループ化されている場合には、処理される時間間隔をT2としてクライアントタイマー部11aに登録される。これにより、クライアント生存確認コールバック処理は、時間間隔T2で実行される。また、この時間間隔T2は、クライアントタイムアウト時間としてクライアント内部記憶部13aに保存されている。
For example, when the
なお、上記したようにクライアント計算機10aがグループ化されていない場合には、このクライアント生存確認コールバック処理はクライアントタイマー部11aには登録されていないため実行されない。
As described above, when the
クライアントタイマー部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
第2のコールバック処理部162aは、クライアントタイマー部11aからの通知を受けると、当該クライアントタイマー部11aから現在時刻を取得する。第2のコールバック処理部162aは、取得された現在時刻とクライアント接続状態テーブル15aに保持されているレコードに含まれる最終確認時刻フィールドの値(時刻)との差を算出する。第2のコールバック処理部162aは、算出された差がクライアント内部記憶部13aに保存されているクライアントタイムアウト時間、つまり時間間隔T2より大きい全てのレコードを、クライアント接続状態テーブル15aから取得する(ステップS32)。
Upon receiving the notification from the
次に、第2のコールバック処理部162aは、ダウン通知パケットをサーバ計算機20のサーバ受信パケット処理部24に送信する(ステップS33)。
Next, the second
ここで、図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
ここでは、ダウン通知パケットには、ステップ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
サーバ計算機20のサーバ受信パケット処理部24は、第2のコールバック処理部162aによって送信されたダウン通知パケットを受信する。サーバ受信パケット処理部24は、受信されたダウン通知パケットに格納されているクライアントアドレス及び開始時刻の組を含むレコードを、サーバ接続状態テーブル23から削除する(ステップS35)。
The server reception
一方、第2のコールバック処理部162aは、ステップS24の処理が実行された後のクライアント接続状態テーブル15aを参照する。このとき、クライアント接続状態テーブル15aに保持されているレコードの数が0であれば、第2のコールバック処理部162aは、グループ化されていないことを示すグループフラグ「FALSE」が格納されたグループ化パケットをサーバ計算機20のサーバ受信パケット処理部24に送信する(ステップS36)。なお、クライアント接続状態テーブル15aに保持されているレコードの数が0でなければ、処理は終了される。
On the other hand, the second
サーバ計算機20のサーバ受信パケット処理部24は、第2のコールバック処理部162aによって送信されたグループ化パケットを受信する。サーバ受信パケット処理部24は、受信されたグループ化パケットに格納されているグループフラグが「FALSE」である場合、グループ化応答パケットをクライアント計算機10aのクライアント受信パケット処理部14aに送信する(ステップS37)。ここでは、クライアント計算機10aがグループ化されていないので、クライアント送信間隔として0、クライアントタイムアウト時間として0、サーバ送信間隔としてT1が格納されたグループ化応答パケットが送信される。
The server reception
クライアント計算機10aのクライアント受信パケット処理部14aは、サーバ受信パケット処理部24によって送信されたグループ化応答パケットを受信する。クライアント受信パケット処理部14aは、受信されたグループ化応答パケットに格納されているクライアント送信間隔(0)、クライアントタイムアウト時間(0)、サーバ送信間隔(T1)をクライアント内部記憶部13aに保存する。
The client reception
また、クライアント受信パケット処理部14aは、受信されたグループ化応答パケットに格納されているクライアント送信間隔(0)、クライアントタイムアウト時間(0)、サーバ送信間隔(T1)に基づいて、各種コールバック処理をクライアントタイマー部11aに登録する。
The client reception
この場合、処理される時間間隔をサーバ送信間隔(T1)として、生存通知パケットサーバ送信コールバック処理がクライアントタイマー部11aに登録される。なお、クライアント送信間隔及びクライアントタイムアウト時間は共に0であるため、これらについては登録されない。
In this case, the survival notification packet server transmission callback process is registered in the
上記したようにクライアント接続状態テーブル15aからレコードが削除されることにより、例えばクライアント計算機10aがグループ化されていないこととなった場合には、その旨がサーバ計算機20に通知されることにより、クライアントタイマー部11aにはグループ化されていない場合のコールバック処理が登録される。
As described above, when the record is deleted from the client connection state table 15a, for example, when the
ここでは、クライアント計算機10aのクライアントコールバック処理部16aに含まれる第2のコールバック処理部162aによるクライアント生存確認コールバック処理について説明したが、例えばクライアント計算機10bのクライアントコールバック処理部16bに含まれる第2のコールバック処理部162bによるクライアント生存確認コールバック処理についても同様である。
Here, the client survival confirmation callback processing by the second
次に、図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
この生存通知パケットサーバ送信コールバック処理は、例えばクライアント計算機10aがグループ化されている場合には、処理される時間間隔をT3としてクライアントタイマー部11aに登録される。この場合、生存通知パケットサーバ送信コールバック処理は、時間間隔T3で実行される。
For example, when the
一方、例えばクライアント計算機10aがグループ化されていない場合には、生存通知パケットサーバ送信コールバック処理は、処理される時間間隔をT1としてクライアントタイマー部11aに登録される。この場合、生存通知パケットサーバ送信コールバック処理は、時間間隔T1で実行される。
On the other hand, for example, when the
ここでは、生存通知パケットサーバ送信コールバック処理は、処理される時間間隔をT3としてクライアントタイマー部11aに登録されているものとして説明する。
Here, the survival notification packet server transmission callback process is described as being registered in the
この場合、時間間隔T3は、サーバ送信間隔としてクライアント内部記憶部13aに保存されている。
In this case, the time interval T3 is stored in the client
まず、クライアントタイマー部11aは、例えばクライアント内部記憶部13aに保存されている開始時刻(または前回の第3のコールバック処理部163aによる生存通知パケットサーバ送信コールバック処理から時間間隔T3が経過した場合に、第3のコールバック処理部163aに対して通知を行う(ステップS41)。つまり、クライアントタイマー部11aは、登録されている時間間隔T3毎に通知を行う。
First, the
第3のコールバック処理部163aは、クライアントタイマー部11aからの通知を受けると、生存通知パケットサーバ送信コールバック処理を実行する。第3のコールバック処理部163aは、クライアント内部記憶部13aに保存されている生存確認スキップフラグを確認する。
When the third
第3のコールバック処理部163aは、生存確認スキップフラグが「TRUE」であれば、当該生存確認スキップフラグを「FALSE」として生存通知パケットサーバ送信コールバック処理を終了する。つまり、生存確認スキップフラグが「TRUE」である場合には、上記した時間間隔T3毎に実行される生存通知パケットサーバ送信コールバック処理が1回スキップされる。
If the survival confirmation skip flag is “TRUE”, the third
一方、生存確認スキップフラグが「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
次に、第3のコールバック処理部163aは、生存通知パケットをサーバ計算機20のサーバ受信パケット処理部24に送信する(ステップS43)。
Next, the third
ここで、生存通知パケットには、上記した図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
サーバ計算機20のサーバ受信パケット処理部24は、第3のコールバック処理部163aによって送信された生存通知パケットを受信する。サーバ受信パケット処理部24は、サーバ接続状態テーブル23において、受信された生存通知パケットに格納されているクライアントアドレス及び開始時刻の組を含む全てのレコードの最終確認時刻(フィールドの値)を現在時刻に置き換える。これにより、サーバ受信パケット処理部24は、サーバ接続状態テーブル23を更新する(ステップS44)。なお、現在時刻は、サーバタイマー部21から取得される。
The server reception
また、第3のコールバック処理部163aは、生存通知済みクライアントマルチキャストパケットを、クライアント内部記憶部13aに保存されているマルチキャストアドレスに対して送信する(ステップS45)。この生存通知済みクライアントマルチキャストパケットには、上記した図14に示すダウン通知パケットと同様に、複数のクライアントアドレス及び開始時刻の組が格納される。生存通知済みクライアントマルチキャストパケットには、ステップS42において取得されたレコードの全てのレコードの各々に含まれるクライアントアドレス及び開始時刻の組が格納される。
In addition, the third
クライアント計算機10bのクライアント受信パケット処理部14bは、第3のコールバック処理部163aによって送信された生存通知済みクライアントマルチキャストパケットを受信する。クライアント受信パケット処理部14bは、受信された生存通知済みクライアントマルチキャストパケットにクライアント計算機10bのクライアントアドレス及びクライアント内部記憶部13bに保存されている開始時刻の組が格納されているか否かを確認する。
The client reception
クライアント受信パケット処理部14bは、クライアント計算機10bのクライアントアドレス及びクライアント内部記憶部13bに保存されている開始時刻の組が格納されている場合、クライアント内部記憶部13bに保存されている生存確認送信スキップフラグを「TRUE」に書き換える(ステップS46)。一方、クライアント計算機10bのクライアントアドレス及びクライアント内部記憶部13bに保存されている開始時刻の組が格納されていない場合、処理は終了される。
When the set of the client address of the
上記したように、第3のコールバック処理部163aによる生存通知パケットサーバ送信コールバック処理においては、クライアント計算機10a及び当該クライアント計算機10aとグループ化されている他のクライアント計算機(例えば、クライアント計算機10b)の生存がサーバ計算機20に対して通知される。
As described above, in the survival notification packet server transmission callback processing by the third
また、第3のコールバック処理部163aが例えばクライアント計算機10bの生存を通知した旨を当該クライアント計算機10bに通知することによって、クライアント計算機10bは、生存確認送信スキップフラグを「TRUE」に書き換える。これにより、クライアント計算機10bにおいては、サーバ計算機20に生存を通知する処理(生存通知パケットサーバ送信コールバック処理)がスキップされるので、サーバ計算機20に対する通信量を低減することができる。
Further, the third
ここでは、クライアント計算機10aのクライアントコールバック処理部16aに含まれる第3のコールバック処理部163aによる生存通知パケットサーバ送信コールバック処理について説明したが、例えばクライアント計算機10bのクライアントコールバック処理部16bに含まれる第3のコールバック処理部163bによる生存通知パケットサーバ送信コールバック処理についても同様である。
Here, the survival notification packet server transmission callback processing by the third
次に、図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
このサーバ生存確認コールバック処理は、例えばサーバ計算機20に接続されているクライアント計算機10aがグループ化されている場合には、処理される時間間隔をT4としてクライアントタイマー部21に登録される。この場合、サーバ生存確認コールバック処理は、時間間隔T4で実行される。
For example, when the
一方、例えばサーバ計算機20に接続されているクライアント計算機10aがグループ化されていない場合には、サーバ生存確認コールバック処理は、処理される時間間隔をT2としてサーバタイマー部21に登録される。この場合、サーバ生存確認コールバック処理は、時間間隔T2で実行される。
On the other hand, for example, when the
サーバタイマー部21は、登録されている時間間隔T4毎に、サーバコールバック処理部25に対して通知を行う(ステップS51)。
The
サーバコールバック処理部25は、サーバタイマー部21からの通知を受けると、サーバ生存確認コールバック処理を実行する。サーバコールバック処理部25は、当該サーバタイマー部21から現在時刻を取得する。サーバタイマー部21は、取得された現在時刻とサーバ接続状態テーブル23に保持されている最終確認時刻フィールドの値との差を算出する。サーバコールバック処理部25は、サーバ接続状態テーブル23において、算出された差が時間間隔T4より大きい全てのレコードを特定する(ステップS52)。
Upon receiving the notification from the
この場合、サーバコールバック処理部25は、特定されたレコードに含まれるクライアントアドレスが割り当てられているクライアント計算機をダウンしたとみなして、当該レコードをサーバ接続状態テーブル23から削除する(ステップS53)。
In this case, the server
次に、図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
この場合、クライアント計算機10aは、時間間隔T1毎にクライアント生存通知マルチキャストパケットをマルチキャストアドレスに対して送信する。つまり、クライアント計算機10aは、時間間隔T1でクライアント計算機10b及び10cに対して自身の生存を通知する。
In this case, the
また、クライアント計算機10aは、時間間隔T3で生存通知パケットをサーバ計算機20に対して送信する。つまり、クライアント計算機10aは、時間間隔T3でサーバ計算機20に対して自身の生存を通知する。
Further, the
なお、クライアント計算機10b及び10cについても同様に、時間間隔T1でクライアント生存通知マルチキャストパケットを他のクライアント計算機に対して送信し、時間間隔T3で生存通知パケットをサーバ計算機20に送信する。
Similarly for the
ここで、上記したように時間間隔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
これに伴い、例えばクライアント計算機10a、10b及び10c間での通信量は増加する。したがって、グループを構成する際には、ネットワーク的に近傍のクライアント計算機同士をグループ化することが好ましい。これにより、コストを低減させることができる。
Along with this, for example, the amount of communication between the
また、クライアント計算機10a、10b及び10cでは、例えば時間間隔T2の間に他のクライアント計算機からクライアント生存通知マルチキャストパケットが送信されない場合には、当該他のクライアント計算機をダウンしたものとみなす。
Further, in the
図19に示すように、例えばクライアント計算機10bがクライアント計算機10aをダウンしたものとみなした場合には、クライアント計算機10bはサーバ計算機20に対してその旨をダウン通知パケットにより通知する。これにより、クライアント計算機10a、10b及び10cの各々からサーバ計算機20に対して送信される生存通知パケットの時間間隔(つまり、時間間隔T3)が長い場合であっても、例えばクライアント計算機10aがダウンした際にはその旨をクライアント計算機10bが通知するため、サーバ計算機20は素早くクライアント計算機10aがダウンしたことを検知することができる。
As shown in FIG. 19, for example, when the
上記したように本実施形態においては、グループを構成する複数のクライアント計算機10が定期的に(時間間隔T1で)互いの生存を通知するためにクライアント生存通知マルチキャストパケットを送信することにより、例えばクライアント計算機10aからのクライアント生存通知マルチキャストパケットが予め定められた時間内に受信されない場合には、当該クライアント計算機10aをダウンしたとみなしてその旨がサーバ計算機20に通知される。
As described above, in the present embodiment, a plurality of
したがって、本実施形態においては、複数のクライアント計算機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
また、本実施形態においては、時間間隔T3で複数のクライアント計算機10からサーバ計算機20に対して生存通知パケットが送信される。これによって、例えばグループを構成する複数のクライアント計算機10の全てがダウンした場合であっても、サーバ計算機20は、当該複数のクライアント計算機10がダウンしたことを検知できる。この時間間隔T3は時間間隔T1より長く設定されているため、この場合であってもサーバ計算機20の負荷及び当該サーバ計算機20付近のネットワーク負荷を低減させることができる。
In this embodiment, a survival notification packet is transmitted from the plurality of
なお、本実施形態においては、上記した時間間隔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
また、本実施形態においては、2台以上のクライアント計算機(例えば、クライアント計算機10a及び10b)でグループが構成されるものとして説明したが、例えば3台以上のクライアント計算機でグループが構成されるものとしても構わない。この場合には、3台以上のクライアント計算機でグループが構成されるまでは、上記したグループ化されていない場合のコールバック処理(つまり、クライアント計算機及びサーバ計算機20間での生存確認)が実行される。
In the present embodiment, the group is composed of two or more client computers (for example, 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.
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 ...
Claims (4)
前記第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.
前記第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.
前記第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.
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)
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)
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 |
-
2008
- 2008-05-09 JP JP2008123876A patent/JP2009271857A/en active Pending
Patent Citations (3)
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)
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 |