(57)【要約】【課題】  端末装置によるサーバの異常検出が遅延する。【解決手段】  第１のサーバから応答を受信して最近応答時間を算出する受信部と、第１のサーバに要求を送信したのち、最近応答時間を越えても要求に対する応答を受信部が受信しないと、要求を第２のサーバに送信する送信部を備える、第１と第２のサーバに接続された端末装置。【選択図】      図１
2010102553.tif 000002
【特許請求の範囲】
【請求項１】
第１のサーバから応答を受信して最近応答時間を算出する受信部と、
前記第１のサーバに要求を送信したのち、前記最近応答時間を越えても前記要求に対する前記応答を前記受信部が受信しないと、前記要求を第２のサーバに送信する送信部を備える、前記第１と前記第２のサーバに接続された端末装置。
【請求項２】
過去一定時間内に前記第１のサーバから前記受信部が受信した前記応答の応答時間の平均値を、前記最近応答時間として算出する前記受信部を備える、請求項１の端末装置。
【請求項３】
前記第１のサーバから前記受信部が受信した前記応答のうち、直近の所定数の前記応答の応答時間の平均値を、前記最近応答時間として算出する前記受信部を備える、請求項１の端末装置。
【請求項４】
請求項１乃至３の何れかの端末装置と、
前記第１と前記第２のサーバを包含するサーバクライアントシステム。
【請求項５】
第１と第２のサーバに接続されたコンピュータに、
前記第１のサーバから応答を受信して最近応答時間を算出する受信処理と、
前記第１のサーバに要求を送信したのち、前記最近応答時間を越えても前記要求に対する前記応答を受信しないと、前記要求を前記第２のサーバに送信する送信処理を実行させる、端末制御プログラム。
【請求項６】
前記コンピュータに、
過去一定時間内に前記第１のサーバから受信した前記応答の応答時間の平均値を、前記最近応答時間として算出する前記受信処理を実行させる、請求項５の端末制御プログラム。
【請求項７】
前記コンピュータに
前記第１のサーバから受信した前記応答のうち、直近の所定数の前記応答の応答時間の平均値を、前記最近応答時間として算出する前記受信処理を実行させる、請求項５の端末制御プログラム。
【請求項８】
第１と第２のサーバに接続されたコンピュータが、
前記第１のサーバから応答を受信して最近応答時間を算出する受信工程と、
前記第１のサーバに要求を送信したのち、前記最近応答時間を越えても前記要求に対する前記応答を受信しないと、前記要求を前記第２のサーバに送信する送信工程を有する、端末制御方法。
【請求項９】
前記コンピュータが、
過去一定時間内に前記第１のサーバから受信した前記応答の応答時間の平均値を、前記最近応答時間として算出する前記受信工程を有する、請求項８の端末制御方法。
【請求項１０】
前記コンピュータが、
前記第１のサーバから受信した前記応答のうち、直近の所定数の前記応答の応答時間の平均値を、前記最近応答時間として算出する前記受信工程を有する、請求項８の端末制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置、サーバクライアントシステム、端末制御プログラム、および、端末制御方法に関する。
【背景技術】
【０００２】
特許文献１は、サーバに対して送信したヘルスチェックフレームの応答時間が、固定的なしきい値以上になると、当該サーバの負荷増大と判断して、端末からのアクセス対象外とする負荷分散装置を開示する。
【０００３】
特許文献２は、クライアントからの処理要求を、接続数の最も少ないサーバに振り分けるゲートウェイ装置を開示する。
【０００４】
特許文献３は、複数のサーバのＩＰアドレスを管理テーブルに保持し、当該テーブルに基づいて、接続サーバを選択する端末を開示する。
【０００５】
【特許文献１】特開２００４−６２２４６
【特許文献２】特開２００２−２６９０６１
【特許文献３】特開２０００−９９４３５
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１の負荷制御装置は、応答時間を固定的なしきい値と対比している。応答時間に基づいてサーバ異常を検出しようとする場合、このような固定的なしきい値を用いると、当該しきい値は大きな値にならざるを得ない。負荷変動や通信障害などによる応答時間の増大を見込む必要があるからである。この結果、異常検出が遅延するという課題が発生する。特許文献２および３の技術は、応答時間に基づいてサーバ異常を検出するものではない為、上記の課題を解決しない。
【０００７】
本発明は、上記の課題を解決するための、端末装置、サーバクライアントシステム、端末制御プログラム、および、端末制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一実施形態の端末装置は、第１のサーバから応答を受信して最近応答時間を算出する受信部と、前記第１のサーバに要求を送信したのち、前記最近応答時間を越えても前記要求に対する前記応答を前記受信部が受信しないと、前記要求を第２のサーバに送信する送信部を備え、前記第１と前記第２のサーバに接続される。
【０００９】
本発明の一実施形態の端末制御プログラムは、第１と第２のサーバに接続されたコンピュータに、前記第１のサーバから応答を受信して最近応答時間を算出する受信処理と、前記第１のサーバに要求を送信したのち、前記最近応答時間を越えても前記要求に対する前記応答を受信しないと、前記要求を前記第２のサーバに送信する送信処理を実行させる。
【００１０】
本発明の一実施形態の端末制御方法は、第１と第２のサーバに接続されたコンピュータが、前記第１のサーバから応答を受信して最近応答時間を算出する受信工程と、前記第１のサーバに要求を送信したのち、前記最近応答時間を越えても前記要求に対する前記応答を受信しないと、前記要求を前記第２のサーバに送信する送信工程を有する。
【発明の効果】
【００１１】
端末が、サーバの応答時間に基づいてサーバ異常を迅速に検出出来る。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明の第１の実施形態にかかるクライアントサーバシステム１０の構成を示す。クライアントサーバシステム１０は、端末装置２０と複数のサーバ３０から構成される。端末装置２０と各サーバ３０は、ネットワークなどを経由して接続されている。サーバ３０は、例えば、第１のサーバ３１、第２のサーバ３２である。端末装置２０は、サーバ３０の何れかに送信メッセージ４０を送信して、その返信として受信メッセージ４１を受信する。送信メッセージ４０は、例えば、端末装置２０からサーバ３０への業務処理依頼を包含し、受信メッセージ４１は、業務処理結果報告を包含する。ここで、端末装置２０は、複数のサーバ３０から一を選んで送信メッセージ４０を送信することで、複数のサーバ３０間で負荷分散をはかっている。
【００１３】
端末装置２０は、受信部２１、送信部２２、端末業務部２３を備える。また、端末装置２０は、図示しないメモリ上にサーバ管理表５０を備える。送信部２２は、サーバ３０に送信メッセージ４０を送信する。受信部２１は、送信メッセージ４０の返信としての受信メッセージ４１を受信する。端末業務部２３は端末装置２０側の業務処理を行う。
【００１４】
端末業務部２３、受信部２１および送信部２２は、ハードウェアで実現される。受信部２１および送信部２２は、コンピュータ２８でもある端末装置２０のプロセッサがメモリ上の端末制御プログラム２９を実行することで実現されても良い。端末業務部２３は、コンピュータ２８でもある端末装置２０のプロセッサが、メモリ上の図示しない端末アプリケーションプログラムを実行することで実現されても良い。
【００１５】
サーバ３０は、サーバ通信部３３とサーバ業務部３４を包含する。サーバ通信部３３は、端末装置２０から送信メッセージ４０を受信して、端末装置２０に受信メッセージ４１を返信する。サーバ業務部３４は、サーバ通信部３３から送信メッセージ４０を受け取ってサーバ３０側の業務処理を行って、受信メッセージ４１を生成してサーバ通信部３３に出力する。
【００１６】
図２は、送信メッセージ４０と受信メッセージ４１の構成を示す。送信メッセージ４０は、メッセージＩＤ４２と要求４３を包含する。受信メッセージ４１は、メッセージＩＤ４２と応答４４を包含する。
【００１７】
メッセージＩＤ４２は、送信メッセージ４０および受信メッセージ４１の識別子であり、例えば、端末装置２０で生成されて送信メッセージ４０に付加され、その返信の受信メッセージ４１にコピーされる。
【００１８】
要求４３は、例えば、端末業務部２３で作成されてサーバ業務部３４宛に送信される業務処理用のデータである。応答４４は、例えば、要求４３を入力したサーバ業務部３４で作成されて端末業務部２３宛に送信される業務処理用のデータである。
【００１９】
図３は、サーバ管理表５０の構成を示す図である。サーバ管理表５０は、サーバ３０対応のエントリ５８を複数包含する。各エントリ５８は、サーバ名５１、通信アドレス５２、最近応答時間５３、接続数５４、ＴＯフラグ５５（ＴＯ：タイムオーバー）、送信記録５６、応答履歴５７を包含する。
【００２０】
サーバ名５１はサーバ３０の識別子である。通信アドレス５２は、端末装置２０が送信するためのサーバ３０のアドレスでありＩＰアドレスなどである。最近応答時間５３は、過去一定時間内に、サーバ３０が応答に要した時間の平均値である。最近応答時間５３の初期値は、システムパラメータとして適宜与えられる。また、当該応答に要した時間とは、例えば、端末装置２０が送信メッセージ４０をサーバ３０に送信してから、受信メッセージ４１を受信するまでの経過時間である。また、当該応答に要した時間は、例えば、サーバ３０が送信メッセージ４０を端末装置２０から受信してから、当該サーバ３０が、受信メッセージ４１を端末装置２０に送信するまでの経過時間であってもよい。接続数５４は、端末装置２０がサーバ３０に送信したが、未だ、対応する受信メッセージ４１を受信していない送信メッセージ４０の数を記憶する。接続数５４の初期値はゼロである。ＴＯフラグ５５は、ＯＮ/ＯＦＦの２値（初期値ＯＦＦ）を取り、ＯＮのときにサーバ３０の応答時間６５が所定値を超過したことを示すデータである。
【００２１】
送信記録５６は、端末装置２０がサーバ３０に送信したが、未だ、対応する受信メッセージ４１を受信していない送信メッセージ４０に関する情報を格納する。送信記録５６は、サーバ３０毎に接続数５４と同じ個数存在する。送信記録５６は、メッセージＩＤ４２、Ｃフラグ６１（Ｃ：キャンセル）、送信時刻６２、タイマＩＤ６３を包含する。メッセージＩＤ４２は、サーバ３０に送信されて、未だ、対応する受信メッセージ４１を受信していない送信メッセージ４０の識別子である。Ｃフラグ６１は、ＯＮ／ＯＦＦの２値を取り、ＯＮのとき、当該送信メッセージ４０の応答時間６５が所定値を超過してキャンセルされたことを示す。送信時刻６２は、当該送信メッセージ４０が送信された時刻を示す。タイマＩＤ６３は、当該送信メッセージ４０の送信後の経過時間を計測するための割り込みタイマの識別子である。
【００２２】
応答履歴５７は、過去一定時間内にサーバ３０から受信した受信メッセージ４１に関する情報を格納する。応答履歴５７は、例えば、この為に十分な領域がある循環バッファである。ここで、一定時間は、例えば、システムパラメータで規定される。
【００２３】
受信時刻６４は、当該受信メッセージ４１が送信された時刻を示す。応答時間６５は、サーバ３０が応答に要した時間である。
【００２４】
図４は、送信部２２の動作フローチャートである。送信部２２は、端末業務部２３から送信要求を受けて動作する。送信部２２は、先ず、端末業務部２３から要求４３を入力する（Ｓ１）。同部は、サーバ管理表５０を参照して負荷の低い正常なサーバ３０を選択する（Ｓ２）。同部は、ＴＯフラグ５５がＯＦＦで、接続数５４が最も小さなサーバ３０（例えば、第１のサーバ３１）を選択する。同部は、当該サーバ３０の接続数５４の値を１加算する（Ｓ３）。その後、同部は、端末装置２０で一意の値を生成してメッセージＩＤ４２とする。同部は、メッセージＩＤ４２と要求４３を結合して送信メッセージ４０を組み立てて、選択したサーバ３０の通信アドレス５２を宛先として送信する（Ｓ４）。送信後、同部は、選択したサーバ３０の最近応答時間５３を指定して、割り込みタイマを起動する（Ｓ５）。
【００２５】
ここで、割り込みタイマは、指定された時間が経過すると割り込みを発生するタイマである。割り込みタイマはシステムに複数実装されており各々識別子を持つ。送信部２２は使用されていないタイマを選択して起動する。割り込み発生時、割り込みタイマはタイマの識別子を報告する。
【００２６】
最後に、同部は、選択したサーバ３０の送信記録５６を作成して（Ｓ６）、一旦処理を終了する。送信記録５６を作成において、同部は、送信メッセージ４０のメッセージＩＤ４２を送信記録５６のメッセージＩＤ４２に格納し、Ｃフラグ６１をＯＦＦに設定し、送信時刻６２を設定する。同部は、例えば、図示しないタイマから現時刻を取得して、送信時刻６２に設定する。最後に、同部は、起動した割り込みタイマの識別子をタイマＩＤ６３に格納する。
【００２７】
この後、タイマ起動時に指定された最近応答時間５３を経過しても受信メッセージ４１が受信されないと、割り込みタイマが割り込みを発生して、その通知が送信部２２に行われる。この通知は、割り込みタイマ対応の割り込みハンドラなどが、割り込みタイマの識別子を付加して行う。
【００２８】
割り込みタイマからの割り込みが通知されると、送信部２２は、通知されたタイマの識別子と、サーバ管理表５０のタイマＩＤ６３を照合し、一致する送信記録５６および当該送信記録５６を含むサーバ管理表５０のエントリ５８を取得する（Ｓ７）。同部は、当該送信記録５６のＣフラグ６１をＯＮにする（Ｓ８）と共に、当該エントリ５８のＴＯフラグ５５をＯＮにする（Ｓ９）。
【００２９】
その後、送信部２２は、再度、サーバ管理表５０を参照して負荷の低い正常なサーバ３０を選択する（Ｓ２）。同部は、例えば、ＴＯフラグ５５がＯＦＦで、接続数５４が最も小さなサーバ３０を選択するのであるが、今回は、第１のサーバ３１は選択されない。第１のサーバ３１対応のＴＯフラグ５５がＯＮだからである。同部は、別のサーバ３０（例えば、第２のサーバ３２）を選ぶことになる。
【００３０】
図５は、受信部２１の動作フローチャートである。受信部２１は、サーバ３０から受信メッセージ４１を受信して動作する。同部は、受信メッセージ４１のメッセージＩＤ４２とサーバ管理表５０のメッセージＩＤ４２を照合し、一致する送信記録５６および当該送信記録５６を含むサーバ管理表５０のエントリ５８を取得する（Ｓ１１）。当該エントリ５８のＣフラグ６１がＯＮであれば（Ｓ１２でＯＮ）、同部は当該送信記録５６を削除、当該エントリ５８の接続数５４を１減じて（Ｓ１８）処理を終了する。即ち、同部は受信メッセージ４１を破棄する。
【００３１】
当該エントリ５８のＣフラグ６１がＯＦＦであれば（Ｓ１２でＯＦＦ）、同部は受信メッセージ４１の応答４４を端末業務部２３に出力する（Ｓ１３）。次に、同部は応答履歴５７を追記する（Ｓ１４）。具体的に、同部は、現時刻と当該送信記録５６の送信時刻６２の差分を算出して、差分を応答時間６５に、現時刻を受信時刻６４に設定する。同部は、例えば、図示しないタイマから現時刻を取得する。
【００３２】
その後、同部は、当該送信記録５６からタイマＩＤ６３を取得して、当該識別子の割り込みタイマを停止、未使用状態にする（Ｓ１５）。その後、同部は、受信時刻６４が現時刻から過去一定時間内の応答履歴５７を全て取得する（Ｓ１６）。同部は、取得した応答履歴５７に関し、応答時間６５の平均値を算出し、当該エントリ５８の最近応答時間５３を更新する（Ｓ１７）。最後に、同部は当該送信記録５６を削除、当該エントリ５８の接続数５４を１減じて（Ｓ１８）、処理を終了する。
【００３３】
本実施形態の効果は、サーバ３０が応答に要する時間に基づいて、端末装置２０がサーバ３０の異常を迅速に検出出来ることである。その理由は、過去一定時間内の受信メッセージ４１の応答時間６５の平均値に基づいて、応答に要する時間監視を行うからである。
【００３４】
本発明の第２の実施形態にかかるクライアントサーバシステム１０は、第１の実施形態とは異なる方法で最近応答時間５３を算出する。本実施形態の受信部２１は、サーバ管理表５０に、過去一定個数分の応答履歴５７を保持する。応答履歴５７は、例えば、この為に十分な領域がある循環バッファである。ここで、一定個数は、例えば、システムパラメータで規定される。
【００３５】
図５に於いて、本実施形態の受信部２１は、新しいものから順に、一定個数の応答履歴５７を取得する（Ｓ１６）。同部は、取得した応答履歴５７に関し、応答時間６５の平均値を算出し、当該エントリ５８の最近応答時間５３を更新する（Ｓ１７）。他は、第１の実施形態と同じである。
【００３６】
本実施形態に於いては、受信メッセージ４１の受信頻度が大きく変化する場合でも、適切な異常検出が出来る。その理由は、最新一定個数の受信メッセージ４１の応答時間６５の平均値に基づいて、応答に要する時間監視を行うからである。受信メッセージ４１の受信頻度が小さいときに、少数の応答時間６５に基づいて、偏った監視時間を設定することを防止できる。
【００３７】
図６は、本発明の基本的な構成を示す。第１のサーバ３１と第２のサーバ３２接続された端末装置２０は、受信部２１と送信部２２を備える。受信部２１は、第１のサーバ３１から応答４４を受信して最近応答時間５３を算出する。送信部２２は、第１のサーバ３１に要求４３を送信したのち、最近応答時間５３を越えても要求４３に対する応答４４を受信部２１が受信しないと、要求４３を第２のサーバ３２に送信する。
【図面の簡単な説明】
【００３８】
【図１】図１は、本発明の第１の実施形態にかかるクライアントサーバシステム１０の構成を示す。
【図２】図２は、送信メッセージ４０と受信メッセージ４１の構成を示す。
【図３】図３は、サーバ管理表５０の構成を示す図である。
【図４】図４は、送信部２２の動作フローチャートである。
【図５】図５は、受信部２１の動作フローチャートである。
【図６】図６は、本発明の基本的な構成を示す図である。
【符号の説明】
【００３９】
１０    クライアントサーバシステム
２０    端末装置
２１    受信部
２２    送信部
２３    端末業務部
２８    コンピュータ
２９    端末制御プログラム
３０    サーバ
３１    第１のサーバ
３２    第２のサーバ
３３    サーバ通信部
３４    サーバ業務部
４０    送信メッセージ
４１    受信メッセージ
４２    メッセージＩＤ
４３    要求
４４    応答
５０    サーバ管理表
５１    サーバ名
５２    通信アドレス
５３    最近応答時間
５４    接続数
５５    ＴＯフラグ
５６    送信記録
５７    応答履歴
５８    エントリ
６１    Ｃフラグ
６２    送信時刻
６３    タイマＩＤ
６４    受信時刻
６５    応答時間
【図１】
2010102553.tif 000003
【図２】
2010102553.tif 000004
【図３】
2010102553.tif 000005
【図４】
2010102553.tif 000006
【図５】
2010102553.tif 000007
【図６】
2010102553.tif 000008