(57)【特許請求の範囲】
【請求項１】
タイムスタンプサーバを含む複数のサーバが接続される第１のネットワークと、クライアントが接続される第２のネットワークとに接続され、前記複数のサーバの負荷量に応じて、前記第２のネットワークから前記第１のネットワークにデータを伝送させる際にデータ送信先のサーバを前記複数のサーバのうちから選択し、選択されたサーバに前記第２のネットワークからのデータを転送する負荷分散装置であって、
前記複数のサーバそれぞれの情報と前記タイムスタンプサーバに時刻証明書を要求するための要求ポリシーとを記憶する記憶手段と、
送信パケットを前記複数のサーバのうちから選択したサーバに送信するパケット送信手段と、
前記パケット送信手段が送信した前記送信パケットに応答して当該選択されたサーバが返信した返信パケットを受信するパケット受信手段と、
前記パケット送信手段が送信した前記送信パケットに当該選択されたサーバが応答した応答時間を算出する応答時間算出手段と、
前記応答時間算出手段が算出した応答時間が所定時間以上の場合に、当該選択されたサーバが過負荷であると判別し、前記記憶手段に記憶された前記複数のサーバそれぞれの情報を基に、前記複数のサーバのうちの、当該選択されたサーバを除外した他のサーバに、第２のネットワークからのデータによる負荷を分散する負荷分散手段と、を備え、
前記パケット送信手段は、前記タイムスタンプサーバを選択して、当該選択したタイムスタンプサーバに送信パケットを送信する場合に、前記記憶手段に記憶された前記要求ポリシーを含めて前記送信パケットを送信し、
前記パケット受信手段は、当該選択されたタイムスタンプサーバから前記返信パケットとして時刻証明書を受信し、
前記負荷分散手段は、前記時刻証明書に適用された生成ポリシーと前記要求ポリシー及び前記時刻証明書の内容を基に、前記時刻証明書が正当なものであるか否かを判別し、前記時刻証明書が正当なものではない場合には、当該時刻証明書を返信したタイムスタンプサーバが異常であると判別し、前記記憶手段に記憶された前記複数のサーバそれぞれの情報を基に、当該時刻証明書を返信したタイムスタンプサーバを除外した他のタイムスタンプサーバにタイムスタンプサービスに関する負荷を分散する、
ことを特徴とする負荷分散装置。
【請求項２】
前記負荷分散手段は、
前記時刻証明書が証明する時刻と、前記パケット受信手段が前記時刻証明書を受信した時刻との時間差が所定時間以上の場合に、前記時刻証明書が正当なものではないと判別し、前記記憶手段に記憶された前記複数のサーバそれぞれの情報を基に、当該時刻証明書を返信したタイムスタンプサーバを除外した他のタイムスタンプサーバにタイムスタンプサービスに関する負荷を分散する、
ことを特徴とする請求項１に記載の負荷分散装置。
【請求項３】
時刻証明書の電子署名を検証して、当該時刻証明書が検証を通るか否かを判別する署名検証手段をさらに備え、
前記負荷分散手段は、
前記署名検証手段が、前記時刻証明書は検証を通らないと判別した場合に、前記時刻証明書が正当なものではないと判別し、前記記憶手段に記憶された前記複数のサーバそれぞれの情報を基に、当該時刻証明書を返信したタイムスタンプサーバを除外した他のタイムスタンプサーバにタイムスタンプサービスに関する負荷を分散する、
ことを特徴とする請求項２に記載の負荷分散装置。
【請求項４】
前記負荷分散手段は、
前記時刻証明書に適用された生成ポリシーが、前記記憶手段に記憶された要求ポリシーと一致しない場合に、前記時刻証明書が正当なものではないと判別し、前記記憶手段に記憶された前記複数のサーバそれぞれの情報を基に、当該時刻証明書を返信したタイムスタンプサーバを除外した他のタイムスタンプサーバにタイムスタンプサービスに関する負荷を分散する、
ことを特徴とする請求項２又は３に記載の負荷分散装置。
【請求項５】
前記応答時間算出手段は、前記パケット送信手段が前記送信パケットを送信した時刻から、前記パケット受信手段が前記返信パケットを受信した時刻までの時間を前記応答時間として算出し、
前記負荷分散手段は、算出された応答時間に基づいて負荷を分散する、
ことを特徴とする請求項１乃至４の何れかに記載の負荷分散装置。
【請求項６】
前記パケット送信手段は、送信時刻を含んだ送信パケットを前記選択したサーバに送信し、
前記パケット受信手段は、前記送信パケットに応答して当該選択されたサーバが前記送信時刻と返信時刻とを含めて返信した返信パケットを受信し、
前記応答時間算出手段は、前記返信パケットに含まれた前記送信時刻から前記返信時刻までの時間を前記応答時間として算出し、
前記負荷分散手段は、算出された応答時間に基づいて負荷を分散する、
ことを特徴とする請求項１乃至４の何れかに記載の負荷分散装置。
【請求項７】
前記負荷分散手段はさらに、
前記返信時刻から、前記パケット受信手段が返信パケットを受信した時刻までの時間差が所定時間以上の場合にも、当該返信パケットを送信したサーバの計時機能が異常であると判別し、前記記憶手段に記憶された前記複数のサーバそれぞれの情報を基に、当該返信パケットを送信したサーバを除外した他のサーバに負荷を分散する、
ことを特徴とする請求項６に記載の負荷分散装置。
【請求項８】
前記所定時間は、前記複数のサーバ毎に設定される、
ことを特徴とする請求項１乃至７の何れかに記載の負荷分散装置。
【請求項９】
前記負荷分散手段が異常であると判別したサーバの処理を停止させる、又は、正常な状態に復帰させる手段をさらに備える、
ことを特徴とする請求項１乃至８の何れかに記載の負荷分散装置。
【請求項１０】
前記パケット受信手段は、前記複数のサーバのうちのサーバに所定のサービスを要求する旨の情報が含まれた要求パケットを前記クライアントから受信し、
前記パケット送信手段は、前記記憶手段に記憶された前記複数のサーバそれぞれの情報を基に、前記複数のサーバから前記所定のサービスを提供することができるサーバを選択し、前記要求パケットを前記送信パケットとして当該選択したサーバに転送し、
前記パケット受信手段は、前記要求パケットに応答して当該選択されたサーバが返信した返信パケットを受信し、
前記負荷分散手段は、前記返信パケットに基づいて当該選択されたサーバが異常であるか否かを判別し、
前記パケット送信手段は、
当該選択されたサーバが異常である場合に、返信パケットを破棄して前記クライアントにエラー応答を送信し、
当該選択されたサーバが異常ではない場合に、返信パケットを前記クライアントに転送する、
ことを特徴とする請求項１乃至９の何れかに記載の負荷分散装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバに対する負荷を分散しながら、クライアント端末と複数のサーバのうちの一つとを選択的に接続する負荷分散装置に関する。
【背景技術】
【０００２】
従来から、サーバ・クライアントシステムにおいて、特定のサーバへの負荷集中を緩和し、個々のサーバに対し負荷を適宜割り振る負荷分散装置が利用されている。
【０００３】
特に、特許文献１の負荷分散装置は、複数のサーバにヘルスチェックフレームを送出し、これに対する応答時間が閾値以上のサーバを、過負荷であるとして通信先サーバの選択対象外とする。さらに、この負荷分散装置は、フレームを送信した時間と、それに応答してサーバが送信した応答フレームを受信した時間との差を応答時間として計測していた。
【特許文献１】特開２００４−６２２４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１の技術では、接続先として、ＮＴＰ（Network Time Protocol）サーバやタイムスタンプサーバ等の時間を扱うサーバを適用した場合に、負荷分散装置における送信時間と受信時間との差を計測しているために、それらのサーバが過負荷であるか否かを判別することはできても、その計時機能が適切であるか否かを判別できなかった。
【０００５】
そのため不適切な計時を行うサーバをシステムから排除することができなかった。そして不適切なサーバをシステム内に含んだままタイムスタンプサービスを提供し続けてしまっていた。
【０００６】
さらに不適切な計時を行っているサーバを正常に復帰させる手段も持っていないので、サーバが異常なまま稼動し続ける状況を改善することができず、システム全体の信頼性を維持することができなかった。
【０００７】
本発明は、上記問題点に鑑みてなされたもので、サーバが過負荷であるか否かと、その計時機能の適切さとを判別して負荷を分散させる負荷分散装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の観点に係る負荷分散装置は、
タイムスタンプサーバを含む複数のサーバが接続される第１のネットワークと、クライアントが接続される第２のネットワークとに接続され、前記複数のサーバの負荷量に応じて、前記第２のネットワークから前記第１のネットワークにデータを伝送させる際にデータ送信先のサーバを前記複数のサーバのうちから選択し、選択されたサーバに前記第２のネットワークからのデータを転送する負荷分散装置であって、
前記複数のサーバそれぞれの情報と前記タイムスタンプサーバに時刻証明書を要求するための要求ポリシーとを記憶する記憶手段と、
送信パケットを前記複数のサーバのうちから選択したサーバに送信するパケット送信手段と、
前記パケット送信手段が送信した前記送信パケットに応答して当該選択されたサーバが返信した返信パケットを受信するパケット受信手段と、
前記パケット送信手段が送信した前記送信パケットに当該選択されたサーバが応答した応答時間を算出する応答時間算出手段と、
前記応答時間算出手段が算出した応答時間が所定時間以上の場合に、当該選択されたサーバが過負荷であると判別し、前記記憶手段に記憶された前記複数のサーバそれぞれの情報を基に、前記複数のサーバのうちの、当該選択されたサーバを除外した他のサーバに、第２のネットワークからのデータによる負荷を分散する負荷分散手段と、を備え、
前記パケット送信手段は、前記タイムスタンプサーバを選択して、当該選択したタイムスタンプサーバに送信パケットを送信する場合に、前記記憶手段に記憶された前記要求ポリシーを含めて前記送信パケットを送信し、
前記パケット受信手段は、当該選択されたタイムスタンプサーバから前記返信パケットとして時刻証明書を受信し、
前記負荷分散手段は、前記時刻証明書に適用された生成ポリシーと前記要求ポリシー及び前記時刻証明書の内容を基に、前記時刻証明書が正当なものであるか否かを判別し、前記時刻証明書が正当なものではない場合には、当該時刻証明書を返信したタイムスタンプサーバが異常であると判別し、前記記憶手段に記憶された前記複数のサーバそれぞれの情報を基に、当該時刻証明書を返信したタイムスタンプサーバを除外した他のタイムスタンプサーバにタイムスタンプサービスに関する負荷を分散する、
ことを特徴とする。
【０００９】
例えば、前記負荷分散手段は、
前記時刻証明書が証明する時刻と、前記パケット受信手段が前記時刻証明書を受信した時刻との時間差が所定時間以上の場合に、前記時刻証明書が正当なものではないと判別し、前記記憶手段に記憶された前記複数のサーバそれぞれの情報を基に、当該時刻証明書を返信したタイムスタンプサーバを除外した他のタイムスタンプサーバにタイムスタンプサービスに関する負荷を分散してもよい。
【００１０】
例えば、時刻証明書の電子署名を検証して、当該時刻証明書が検証を通るか否かを判別する署名検証手段をさらに備え、
前記負荷分散手段は、
前記署名検証手段が、前記時刻証明書は検証を通らないと判別した場合に、前記時刻証明書が正当なものではないと判別し、前記記憶手段に記憶された前記複数のサーバそれぞれの情報を基に、当該時刻証明書を返信したタイムスタンプサーバを除外した他のタイムスタンプサーバにタイムスタンプサービスに関する負荷を分散してもよい。
【００１１】
例えば、前記負荷分散手段は、
前記時刻証明書に適用された生成ポリシーが、前記記憶手段に記憶された要求ポリシーと一致しない場合に、前記時刻証明書が正当なものではないと判別し、前記記憶手段に記憶された前記複数のサーバそれぞれの情報を基に、当該時刻証明書を返信したタイムスタンプサーバを除外した他のタイムスタンプサーバにタイムスタンプサービスに関する負荷を分散してもよい。
【００１２】
例えば、前記応答時間算出手段は、前記パケット送信手段が前記送信パケットを送信した時刻から、前記パケット受信手段が前記返信パケットを受信した時刻までの時間を前記応答時間として算出し、
前記負荷分散手段は、算出された応答時間に基づいて負荷を分散してもよい。
【００１３】
例えば、前記パケット送信手段は、送信時刻を含んだ送信パケットを前記選択したサーバに送信し、
前記パケット受信手段は、前記送信パケットに応答して当該選択されたサーバが前記送信時刻と返信時刻とを含めて返信した返信パケットを受信し、
前記応答時間算出手段は、前記返信パケットに含まれた前記送信時刻から前記返信時刻までの時間を前記応答時間として算出し、
前記負荷分散手段は、算出された応答時間に基づいて負荷を分散してもよい。
【００１４】
例えば、前記負荷分散手段はさらに、
前記返信時刻から、前記パケット受信手段が返信パケットを受信した時刻までの時間差が所定時間以上の場合にも、当該返信パケットを送信したサーバの計時機能が異常であると判別し、前記記憶手段に記憶された前記複数のサーバそれぞれの情報を基に、当該返信パケットを送信したサーバを除外した他のサーバに負荷を分散してもよい。
【００１５】
例えば、前記所定時間は、前記複数のサーバ毎に設定されてもよい。
【００１６】
例えば、前記負荷分散手段が異常であると判別したサーバの処理を停止させる、又は、正常な状態に復帰させる手段をさらに備えてもよい。
【００１７】
例えば、前記パケット受信手段は、前記複数のサーバのうちのサーバに所定のサービスを要求する旨の情報が含まれた要求パケットを前記クライアントから受信し、
前記パケット送信手段は、前記記憶手段に記憶された前記複数のサーバそれぞれの情報を基に、前記複数のサーバから前記所定のサービスを提供することができるサーバを選択し、前記要求パケットを前記送信パケットとして当該選択したサーバに転送し、
前記パケット受信手段は、前記要求パケットに応答して当該選択されたサーバが返信した返信パケットを受信し、
前記負荷分散手段は、前記返信パケットに基づいて当該選択されたサーバが異常であるか否かを判別し、
前記パケット送信手段は、
当該選択されたサーバが異常である場合に、返信パケットを破棄して前記クライアントにエラー応答を送信し、
当該選択されたサーバが異常ではない場合に、返信パケットを前記クライアントに転送してもよい。
【発明の効果】
【００１８】
本発明によれば、サーバが過負荷であるか否かと、その計時機能の適切さとを判別して負荷を分散させることができる。
【００１９】
さらに、計時機能の適切さを判別するので、計時が不適切であった場合には、そのサーバを排除し、不適切な応答をクライアントには返さない。あるいはエラー応答をクライアントに返すようにすることで、常に適切なタイムスタンプサービスを提供することが可能となる。
【００２０】
さらに、計時機能が不適切であるサーバについては、正常な状態に復帰させることができるようになり、システム全体の信頼性を維持することが可能となる。
【発明を実施するための最良の形態】
【００２１】
本発明の負荷分散装置を負荷分散システム１に適用した場合を例に、図面を参照して説明する。
【００２２】
図１に示すように、負荷分散システム１は、負荷分散装置１００と、複数のＮＴＰ（Network Time Protocol）サーバ２００と、複数のタイムスタンプサーバ（ＴＳＳ）３００と、その他のサービスを提供するサーバ５００と、複数のクライアント４００と、通信ネットワークＡと、通信ネットワークＢと、から構成される。
【００２３】
通信ネットワークＡには、負荷分散装置１００と、ＮＴＰサーバ２００と、タイムスタンプサーバ３００と、その他のサービスを提供するサーバ５００とが接続される。
【００２４】
通信ネットワークＢは、例えば、いわゆるインターネットであってもよいし、イントラネットであってもよい。通信ネットワークＢには、負荷分散装置１００と、複数のクライアント４００と、が接続される。
【００２５】
通信ネットワークＡと通信ネットワークＢとは、同一のプロトコルの通信ネットワークである。
【００２６】
クライアント４００は、ＮＴＰサーバ２００、タイムスタンプサーバ３００及びその他のサービスを提供するサーバ５００により供給されるサービスを受けるユーザが利用する端末で、通信ネットワークＢに接続される。
【００２７】
ＮＴＰサーバ２００は、現在時刻を計時する計時部を備え、ネットワークタイムプロトコルに従って、他の上位のＮＴＰサーバから時刻を取得して参照することで、計時部が計時する現在時刻を定期的に補正する。
また、ＮＴＰサーバ２００は、他装置の要求に従って、計時部が計時する現在時刻の情報を提供する。
【００２８】
タイムスタンプサーバ３００は、内部で計時している時刻に基づいて時刻証明書を生成してクライアント４００又は負荷分散装置１００に送信する。その際に、タイムスタンプサーバ３００は、クライアント４００又は負荷分散装置１００の要求ポリシーに従って、電子署名が為された時刻証明書を送信する。
また、タイムスタンプサーバ３００は、上位のＮＴＰサーバ２００から時刻を取得して参照することで、内部で計時している時刻を定期的に補正する。
【００２９】
負荷分散装置１００は、サーバへの負荷を分散させる機能とＮＴＰサーバとしての機能とを持つ。負荷分散装置１００はＧＰＳや標準電波、原子時計などの正確な時刻源と接続されても良いし、そうした時刻源と接続されている他の上位のＮＴＰサーバと時刻同期するようにしてもよい。
負荷分散装置１００は、図２に示すように、制御部１１０と、記憶部１２０と、入力部１３０と、出力部１４０と、通信制御部１５０と、計時部１６０と、から構成される。
【００３０】
記憶部１２０は、例えば、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）やハードディスク等から構成され、制御部１１０の動作プログラムやサーバ情報１２１や要求ポリシー情報１２２等を記憶する。また、記憶部１２０は、制御部１１０のワークエリアとして機能する。
【００３１】
サーバ情報１２１は、通信ネットワークＡに接続される各サーバの状態の情報や、各サーバの状態を判別するための閾値等から構成される。具体的には、図３に示すように、例えば、サーバの種類（ＮＴＰサーバ、タイムスタンプサーバ、または送受信データ中に時刻情報を含むサービスを提供するサーバ、その他）と、各種類のサーバの番号、アドレス、各サーバの状態（正常であるか、異常であるか）、各サーバが過負荷であるか否かを判別するための閾値１ａ及び閾値１ｂ、各サーバの計時機能が適切であるか否かを判別するための閾値２、各タイムスタンプサーバが発行する時刻証明書の時刻が適切であるか否かを判別するための閾値３とから構成される。なお各閾値はサーバ個々に、例えばそのサーバの処理能力等から決められる。
【００３２】
要求ポリシー情報１２２は、クライアント４００又は負荷分散装置１００が、タイムスタンプサーバ３００に対して時刻証明書の発行を要求するときの要求ポリシーの情報である。具体的には、図４に示すように、例えば、要求元、要求する署名アルゴリズムの種類、要求するファイル容量、要求する時刻精度、要求する発行精度等から構成される。クライアント４００又は負荷分散装置１００は、これらの要求ポリシーに従って、タイムスタンプサーバ３００が時刻証明書を発行することを要求する。
【００３３】
入力部１３０は、例えば、キーボード、マウス等から構成され、ユーザによる操作を受け付け、操作情報を制御部１１０に供給する。
【００３４】
出力部１４０は、例えば、表示装置、プリンタ等から構成され、制御部１１０の制御に従い出力情報をユーザに提供する。
【００３５】
通信制御部１５０は、ＬＡＮポートや通信回路等から構成され、通信ネットワークＡと通信ネットワークＢとに接続され、他装置との間でデータの送受信を行う。
【００３６】
計時部１６０は、水晶発振器を内蔵し、水晶発振器の発振周波数に同期したクロックパルスを生成し、クロックパルスに同期して現在時刻を計時して出力する。
【００３７】
制御部１１０は、ＣＰＵ（Central Processing Unit）等から構成され、記憶部１２０に格納された動作プログラムに従って、負荷分散装置１００の全体の動作を制御する。
具体的には、制御部１１０は、記憶部１２０に格納された動作プログラムに従って、ソフトウェア的に動作する時計であるシステムクロックとして機能し、現在時刻を計時して出力する。
また、制御部１１０は、通信制御部１５０を制御して監査パケットを通信ネットワークＡ上の各サーバに送信して各サーバが正常であるか否かを判別し、異常であるサーバ以外に負荷を分散させる。
また、制御部１１０は、クライアント４００による時刻証明書の要求をタイムスタンプサーバ３００に転送し、それに応答してタイムスタンプサーバ３００より返信された時刻証明書をクライアント４００に転送する。
制御部１１０は、ネットワークタイムプロトコルに従って、他の上位のＮＴＰサーバから時刻を取得して参照することで、計時部１６０と制御部１１０内部のシステムクロックとが計時する現在時刻を定期的に補正する。
【００３８】
以下、上記構成を有する負荷分散システム１の動作を説明する。
【００３９】
（実施の形態１）
実施の形態１に係る負荷分散装置１００は、通信ネットワークＡに接続される各サーバに定期的に、監査パケットを送信し、各サーバは、受信した監査パケットに応答して、返信パケットを返信する。負荷分散装置１００は、監査パケットを送信してから、返信パケットを受信するまでの応答時間が閾値１ａ以上である場合に、そのサーバは過負荷状態であるために異常であると判別する。
【００４０】
なお、負荷分散装置１００がタイムスタンプサーバ３００に監査パケットを送信する場合には、監査パケットに要求ポリシーを含めて送信し、タイムスタンプサーバ３００は、返信パケットとして、基本的にはその要求ポリシーに従った時刻証明書を返信する。負荷分散装置１００は、応答時間が閾値１ａ以上である場合に、そのタイムスタンプサーバ３００は異常であると判別する。また、負荷分散装置１００は、時刻証明書の検証を行い、時刻証明書が検証を通らない場合には、そのタイムスタンプサーバ３００は異常であると判別する。また、負荷分散装置１００は、時刻証明書が証明する証明時刻と、時刻証明書を受信した受信時刻との時間差が閾値３以上である場合には、そのタイムスタンプサーバ３００は、その計時機能が適切でないために異常であると判別する。また、負荷分散装置１００は、実際の時刻証明書の生成ポリシーが何らかの理由によって要求ポリシーと異なる場合には、そのタイムスタンプサーバ３００は異常であると判別する。
【００４１】
負荷分散装置１００は、応答時間が閾値１ａ未満である場合に、そのサーバが正常であると判別する。タイムスタンプサーバ３００の場合には、負荷分散装置１００は、さらにその時刻証明書が検証を通り、証明時刻と受信時刻との時間差が閾値３未満であり、時刻証明書の生成ポリシーが要求ポリシーと一致している場合には、そのタイムスタンプサーバ３００が正常であると判別する。
【００４２】
負荷分散装置１００は、新たに異常と判別されたサーバをクライアント４００からの負荷の振り分け対象から外し、そのサーバの処理を停止又は変更させ、そのサーバが正常な状態に戻るように要求を送信する。
【００４３】
負荷分散装置１００は、異常と判別していたサーバが正常に戻ったと判別した場合に、そのサーバをクライアント４００からの負荷の振り分け対象に戻す。
【００４４】
このようにして、負荷分散装置１００は、計時機能の適切さや負荷状態を含んだサーバの状態を判別してクライアントからサーバに対する負荷を分散することができる。
【００４５】
なお、実施の形態１において記憶部１２０は、パケット管理情報１２３をさらに格納する。パケット管理情報１２３は、例えば、図５に示すように、監査パケットを送信するごとに、負荷分散装置１００が監査対象サーバに対して自動的に割り振るポート番号、負荷分散装置１００のＩＰアドレスおよび当該監査パケットを送信した時刻とから構成される。
【００４６】
以下、フローチャートを参照しながら、実際の負荷分散装置１００の処理を説明する。
【００４７】
先ず、図６を参照しながら、負荷分散装置１００が行う負荷分散処理を説明する。簡単に説明すると、負荷分散装置１００は、各サーバに監査パケットを送信し、それに応答して返信された返信パケットを解析し、そのサーバが正常であるか否かを判別して、判別結果に基づいてクライアント４００からの負荷を各サーバに振り分ける。なお、負荷分散処理は、定期的な割り込み処理で実施される。
【００４８】
先ず、制御部１１０は、サーバ情報１２１に記載されているサーバから一つを監査対象サーバとして選択する（ステップＳ１０１）。なお、負荷分散処理が行われるたびに、このステップにおいて、サーバ情報１２１に記載されている順にサーバが監査対象サーバとして選択される。
【００４９】
次に、制御部１１０は、監査パケットを、監査対象サーバに送信する（ステップＳ１０２）。なお、監査対象サーバがタイムスタンプサーバ３００である場合には、制御部１１０は、所定の要求ポリシーを要求ポリシー情報１２２に記載して、その要求ポリシーと、その要求ポリシーに従った時刻証明書の要求とを含んだ監査パケットを、選択されたタイムスタンプサーバ３００に送信する。
【００５０】
制御部１１０は、監査パケットに応答して監査対象サーバが返信した返信パケットを受信したか否かを判別する（ステップＳ１０３）。なお、監査対象サーバがタイムスタンプサーバ３００である場合には、返信パケットは時刻証明書である。
【００５１】
返信パケットを受信していないと判別した場合には（Ｓ１０３；ＮＯ）、制御部１１０は、監査パケットを送信してから所定の時間が経過したか否かを判別する（ステップＳ１０４）。
【００５２】
監査パケットを送信してから所定の時間が経過したと判別した場合には（Ｓ１０４；ＹＥＳ）、制御部１１０は、監査対象サーバが異常であると判別し（ステップＳ１０５）、処理をステップＳ１１０に進める。
【００５３】
監査パケットを送信してから所定の時間が経過していないと判別した場合には（Ｓ１０４；ＮＯ）、制御部１１０は、処理をステップＳ１０３に戻す。
【００５４】
返信パケットを受信したと判別した場合には（Ｓ１０３；ＹＥＳ）、制御部１１０は、返信パケットに基づいて監査対象サーバが正常であるか否かを判別するパケット解析処理を行う（ステップＳ１０６）。なお、パケット解析処理については、詳しく後述する。
【００５５】
制御部１１０は、パケット解析処理の結果、監査対象サーバが正常であるか否かを判別する（ステップＳ１０７）。
【００５６】
監査対象サーバが正常であると判別した場合には（Ｓ１０７；ＹＥＳ）、制御部１１０は、サーバ情報１２１を参照して、直近の負荷分散処理での判別において既にこの監査対象サーバが正常と判別されているか否かを判別する（ステップＳ１０８）。
【００５７】
直近の負荷分散処理での判別においてこの監査対象サーバが正常と判別されている場合には（Ｓ１０８；ＹＥＳ）、つまり、監査対象サーバが引き続き正常である場合には、制御部１１０は、処理を終了させる。
【００５８】
直近の負荷分散処理での判別においてこの監査対象サーバが異常と判別されている場合には（Ｓ１０８；ＮＯ）、つまり、監査対象サーバが異常から正常となった場合には、制御部１１０は、サーバ情報１２１におけるこの監査対象サーバの状態の欄を正常に記載変更し（ステップＳ１０９）、処理を終了させる。
【００５９】
監査対象サーバが異常であると判別した場合には（Ｓ１０７；ＮＯ）、制御部１１０は、サーバ情報１２１を参照して、直近の負荷分散処理での判別において既にこの監査対象サーバが異常と判別されているか否かを判別する（ステップＳ１１０）。
【００６０】
直近の負荷分散処理での判別においてこの監査対象サーバが異常と判別されている場合には（Ｓ１１０；ＹＥＳ）、つまり、監査対象サーバが引き続き異常である場合には、制御部１１０は、処理を終了させる。
【００６１】
直近の負荷分散処理での判別においてこの監査対象サーバが正常と判別されている場合には（Ｓ１１０；ＮＯ）、つまり、監査対象サーバが正常から異常となった場合には、制御部１１０は、サーバ情報１２１におけるこの監査対象サーバの状態の欄を異常に記載を変更する（ステップＳ１１１）。
【００６２】
次に、制御部１１０は、監査対象サーバの処理を停止又は変更させ（ステップＳ１１２）、正常状態に戻るように復帰要求を監査対象サーバに送信し（ステップＳ１１３）、処理を終了させる。
【００６３】
このようにして、負荷分散処理では、負荷分散装置１００は、監査対象サーバの正常・異常を判別して、判別結果に応じてサーバ情報１２１を書き換え、監査対象サーバに対する処理を行う。なお、サーバ情報１２１において状態の欄が異常となっているサーバには、それ以降のクライアント４００からの負荷を振り分けないようにすることにより、負荷の分散が行われる。
【００６４】
ここで、図７を参照しながら、前述したパケット解析処理（Ｓ１０６）について説明する。負荷分散装置１００は、パケットの送受信において、パケットの応答時間や返信時刻と受信時刻との時間差等に基づいて、監査対象サーバの正常・異常を判別する。
【００６５】
先ず、制御部１１０は、受信した返信パケットと送信した監査パケットとの紐付けを行う。返信パケットには、監査パケットに応答して監査対象サーバが返信する返信先を示すＩＰアドレスとポート番号が含まれている。そこで制御部１１０はパケット管理情報１２３を参照して当該返信パケットに含まれるＩＰアドレスとポート番号に対応する監査パケットを送信した際の情報から、当該監査パケットを送信した送信時刻を特定する。
【００６６】
次に、制御部１１０は、返信パケットを受信した時刻と監査パケットを送信した時刻との時間差である応答時間を算出する（ステップＳ１０６−１）。
【００６７】
次に、制御部１１０は、算出した応答時間が、サーバ情報１２１に記載されている、この監査対象サーバの閾値１ａより小さいか否かを判別する（ステップＳ１０６−２）。
【００６８】
応答時間が閾値１ａ以上であると判別した場合には（Ｓ１０６−２；ＮＯ）、制御部１１０は、監査対象サーバが、過負荷であるために異常であると判別して（ステップＳ１０６−９）、処理を負荷分散処理に返す。
【００６９】
次に、制御部１１０は、監査対象サーバがタイムスタンプサーバ３００であるか否かを判別する（ステップＳ１０６−３）。
【００７０】
監査対象サーバがタイムスタンプサーバ３００である場合には（Ｓ１０６−３；ＹＥＳ）、返信パケットは時刻証明書であるので、制御部１１０は、時刻証明書の電子署名の検証を行う（ステップＳ１０６−４）。
【００７１】
制御部１１０は、ステップＳ１０６−４の結果、時刻証明書が検証を通ったか否かを判別する（ステップＳ１０６−５）。
【００７２】
時刻証明書が検証を通らなかった場合には（Ｓ１０６−５；ＮＯ）、制御部１１０は、監査対象サーバ（タイムスタンプサーバ）が異常であると判別して（ステップＳ１０６−９）、処理を負荷分散処理に返す。
【００７３】
時刻証明書が検証を通った場合には（Ｓ１０６−５；ＹＥＳ）、制御部１１０は、時刻証明書が証明する証明時刻と、時刻証明書を受信した受信時刻との時間差を算出する（ステップＳ１０６−６）。
【００７４】
次に、制御部１１０は、証明時刻と受信時刻との時間差が、サーバ情報１２１に記載されている、この監査対象サーバ（タイムスタンプサーバ）の閾値３より小さいか否かを判別する（ステップＳ１０６−７）。
【００７５】
証明時刻と受信時刻との時間差が閾値３以上であると判別した場合には（Ｓ１０６−７；ＮＯ）、制御部１１０は、監査対象サーバ（タイムスタンプサーバ）が、その計時機能が不適切であるために異常であると判別して（ステップＳ１０６−９）、処理を負荷分散処理に返す。
【００７６】
証明時刻と受信時刻との時間差が閾値３未満であると判別した場合には（Ｓ１０６−７；ＹＥＳ）、制御部１１０は、要求ポリシー情報１２２を参照して、クライアント４００が要求した要求ポリシーと、時刻証明書に適用された生成ポリシーとが一致するか否かを判別する（ステップＳ１０６−８）。
【００７７】
要求ポリシーと生成ポリシーとが一致しない場合には（Ｓ１０６−８；ＮＯ）、制御部１１０は、監査対象サーバ（タイムスタンプサーバ）が異常であると判別して（ステップＳ１０６−９）、処理を負荷分散処理に返す。
【００７８】
要求ポリシーと生成ポリシーとが一致する場合には（Ｓ１０６−８；ＹＥＳ）、制御部１１０は、監査対象サーバ（タイムスタンプサーバ）が正常であると判別して（ステップＳ１０６−１０）、処理を負荷分散処理に返す。
【００７９】
このようにして、パケット解析処理によれば、負荷分散装置１００は、データの応答時間と、時刻証明書の状態とによって各サーバが正常であるか否かを判別することができる。
【００８０】
次に、負荷分散装置１００が行う時刻証明仲介処理を説明する。簡単に説明すると、負荷分散装置１００は、クライアント４００から時刻証明の要求を受信すると、その要求を正常なタイムスタンプサーバ３００に転送し、それに応答して返信された時刻証明書を解析する。解析した結果、そのタイムスタンプサーバ３００が正常であれば、時刻証明書をクライアント４００に転送する。解析した結果、そのタイムスタンプサーバ３００が異常であれば、エラー応答をクライアント４００に送信する。
【００８１】
以下、図８のフローチャートを参照しながら、時刻証明仲介処理を詳細に説明する。
【００８２】
クライアント４００から時刻証明の要求を受信すると、制御部１１０は、時刻証明の要求に添付されている要求ポリシーを要求ポリシー情報１２２に記載する（ステップＳ２０１）。
【００８３】
次に、制御部１１０は、サーバ情報１２１の状態の欄が正常であるタイムスタンプサーバ３００から一つを選択し、時刻証明の要求を、選択されたタイムスタンプサーバ３００に転送する（ステップＳ２０２）。
【００８４】
なお、クライアント４００から送信された時刻証明の要求にはクライアント４００のＩＰアドレスと、要求を送信するごとにクライアント４００が自動的に割り振るポート番号が添付されている。制御部１１０は、このＩＰアドレスとポート番号および時刻証明の要求を転送した転送時刻をパケット管理情報１２３に格納する。
【００８５】
制御部１１０は、要求に応答してタイムスタンプサーバ３００が返信した時刻証明書を受信したか否かを判別する（ステップＳ２０３）。
【００８６】
時刻証明書を受信していないと判別した場合には（Ｓ２０３；ＮＯ）、制御部１１０は、時刻証明の要求を転送してから所定の時間が経過したか否かを判別する（ステップＳ２０４）。
【００８７】
時刻証明の要求を転送してから所定の時間が経過したと判別した場合には（Ｓ２０４；ＹＥＳ）、制御部１１０は、そのタイムスタンプサーバ３００が異常であると判別し（ステップＳ２０５）、処理をステップＳ２０９に進める。
【００８８】
時刻証明の要求を転送してから所定の時間が経過していないと判別した場合には（Ｓ２０４；ＮＯ）、制御部１１０は、処理をステップＳ２０３に戻す。
【００８９】
時刻証明書を受信したと判別した場合には（Ｓ２０３；ＹＥＳ）、制御部１１０は、受信した時刻証明書に基づいて、そのタイムスタンプサーバ３００が正常であるか否かを判別する時刻証明書解析処理を行う（ステップＳ２０６）。なお、時刻証明書解析処理については、詳しく後述する。
【００９０】
制御部１１０は、時刻証明書解析処理の結果、タイムスタンプサーバ３００が正常であるか否かを判別する（ステップＳ２０７）。
【００９１】
タイムスタンプサーバ３００が正常であると判別した場合には（Ｓ２０７；ＹＥＳ）、制御部１１０は、受信した時刻証明書をパケット管理情報１２３に記録されているＩＰアドレスとポート番号から特定したクライアント４００に転送して（ステップＳ２０８）、処理を終了させる。
【００９２】
タイムスタンプサーバ３００が異常であると判別した場合には（Ｓ２０７；ＮＯ）、制御部１１０は、サーバ情報１２１におけるこのタイムスタンプサーバ３００の状態の欄を異常に記載を変更する（ステップＳ２０９）。
【００９３】
次に、制御部１１０は、タイムスタンプサーバの処理を停止又は変更させ（ステップＳ２１０）、正常状態に戻るように復帰要求をタイムスタンプサーバに送信し（ステップＳ２１１）、時刻証明書を破棄し、エラー応答をクライアント４００に送信して（ステップＳ２１２）、処理を終了させる。
【００９４】
このようにして、時刻証明仲介処理では、負荷分散装置１００は、正常であると考えられるタイムスタンプサーバに、クライアント４００の時刻証明の要求を転送して時刻証明書を受信し、その時刻証明書に基づいて、そのタイムスタンプサーバの正常・異常を再度判別し、正常である場合には時刻証明書を転送して、異常である場合には、そのサーバに対して所定の処理を行い、クライアント４００には、エラー応答を送信する。よって、正常なタイムスタンプサーバ３００のみからの時刻証明書をクライアント４００は受信することができる。
【００９５】
なお、パケット管理情報１２３にはクライアント４００からの時刻証明の要求を転送した転送時刻が記憶されているので、この情報を用いればタイムスタンプサーバ３００が発行した時刻証明書を受信するまでに要した応答時間を算出することができるので、時刻証明の要求を転送したタイムスタンプサーバ３００が過負荷に陥っていないかどうかについても再度確認するようにしてもよい。
【００９６】
ここで、図９を参照しながら、前述した時刻証明書解析処理（Ｓ２０６）について説明する。負荷分散装置１００は、受信した時刻証明書を、証明時刻と受信時刻との時間差等に基づいて解析し、タイムスタンプサーバの正常・異常を判別する。
【００９７】
先ず、制御部１１０は、受信した時刻証明書の電子署名の検証を行う（ステップＳ２０６−１）。
【００９８】
制御部１１０は、ステップＳ２０６−１の結果、時刻証明書が検証を通ったか否かを判別する（ステップＳ２０６−２）。
【００９９】
時刻証明書が検証を通らなかった場合には（Ｓ２０６−２；ＮＯ）、制御部１１０は、そのタイムスタンプサーバ３００が異常であると判別して（ステップＳ２０６−６）、処理を時刻証明仲介処理に返す。
【０１００】
時刻証明書が検証を通った場合には（Ｓ２０６−２；ＹＥＳ）、制御部１１０は、時刻証明書が証明する証明時刻と、時刻証明書を受信した受信時刻との時間差を算出する（ステップＳ２０６−３）。
【０１０１】
次に、制御部１１０は、証明時刻と受信時刻との時間差が、サーバ情報１２１に記載されている、そのタイムスタンプサーバ３００の閾値３より小さいか否かを判別する（ステップＳ２０６−４）。
【０１０２】
証明時刻と受信時刻との時間差が閾値３以上であると判別した場合には（Ｓ２０６−４；ＮＯ）、制御部１１０は、そのタイムスタンプサーバ３００が、その計時機能が不適切であるために異常であると判別して（ステップＳ２０６−６）、処理を時刻証明仲介処理に返す。
【０１０３】
証明時刻と受信時刻との時間差が閾値３未満であると判別した場合には（Ｓ２０６−４；ＹＥＳ）、制御部１１０は、要求ポリシー情報１２２を参照して、クライアント４００が要求した要求ポリシーと、時刻証明書に適用された生成ポリシーとが一致するか否かを判別する（ステップＳ２０６−５）。
【０１０４】
要求ポリシーと生成ポリシーとが一致しない場合には（Ｓ２０６−５；ＮＯ）、制御部１１０は、タイムスタンプサーバ３００が異常であると判別して（ステップＳ２０６−６）、処理を時刻証明仲介処理に返す。
【０１０５】
要求ポリシーと生成ポリシーとが一致する場合には（Ｓ２０６−５；ＹＥＳ）、制御部１１０は、タイムスタンプサーバ３００が正常であると判別して（ステップＳ２０６−７）、処理を時刻証明仲介処理に返す。
【０１０６】
このようにして、時刻証明書解析処理によれば、負荷分散装置１００は、証明書の検証結果と、証明時刻と受信時刻との時間差と、要求ポリシーと生成ポリシーとの一致・不一致とに基づいてタイムスタンプサーバ３００が正常であるか否かを判別することができる。
【０１０７】
次に、負荷分散装置１００が行う他サービス仲介処理を説明する。簡単に説明すると、負荷分散装置１００は、クライアント４００から、例えば、時刻情報を定期的に提供するサービス等の任意の他のサービスを受けたい旨の要求を受信すると、そのサービスの要求を、正常であり、且つ、そのサービスを行っている通信ネットワークＡ上のサーバ５００に転送し、それに応答して返信されたパケットを受信する。そして、転送した時刻と受信した時刻との時間差が閾値以下であれば、そのサーバを正常と判定し、返信パケットをクライアント４００に転送する。時間差が閾値以上であれば、そのサーバを異常と判定し、エラー応答をクライアント４００に送信する。
【０１０８】
以下、図１０のフローチャートを参照しながら、他サービス仲介処理を詳細に説明する。
【０１０９】
クライアント４００からサービス要求パケットを受信すると、制御部１１０は、サーバ情報１２１の状態の欄が正常であり、且つ、そのサービスを行っているサーバ５００から一つを選択し、そのサービスの要求を、選択されたサーバに転送する（ステップＳ３０１）。
【０１１０】
なお、クライアント４００から送信されたサービス要求パケットにはクライアント４００のＩＰアドレスと、サービス要求パケットを送信するごとにクライアント４００が自動的に割り振るポート番号が添付されている。制御部１１０は、このＩＰアドレスとポート番号をパケット管理情報１２３に格納する。
【０１１１】
制御部１１０は、選択されたサーバがサービス要求パケットに応答して返信した返信パケットを受信したか否かを判別する（ステップＳ３０２）。
【０１１２】
返信パケットを受信していないと判別した場合には（Ｓ３０２；ＮＯ）、制御部１１０は、サービス要求パケットを転送してから所定の時間が経過したか否かを判別する（ステップＳ３０３）。
【０１１３】
サービス要求パケットを転送してから所定の時間が経過したと判別した場合には（Ｓ３０３；ＹＥＳ）、制御部１１０は、処理をステップＳ３０８に進める。
【０１１４】
サービス要求パケットを転送してから所定の時間が経過していないと判別した場合には（Ｓ３０３；ＮＯ）、制御部１１０は、処理をステップＳ３０２に戻す。
【０１１５】
返信パケットを受信したと判別した場合には（Ｓ３０２；ＹＥＳ）、制御部１１０は、受信した返信パケットと転送したサービス要求パケットとの紐付けを行う。返信パケットには、この選択したサーバが要求パケットに応答して返信した返信先を示すＩＰアドレスとポート番号が含まれている。そこで制御部１１０はパケット管理情報１２３を参照して当該返信パケットに含まれるＩＰアドレスとポート番号に対応するサービス要求パケットを転送した際の情報から、転送時刻を特定する。
【０１１６】
次に、制御部１１０は、返信パケットを受信した時刻とサービス要求を転送した転送時刻との時間差である応答時間を算出する（ステップＳ３０４）。
【０１１７】
次に、制御部１１０は、算出した応答時間が、サーバ情報１２１に記載されている、この選択したサーバの閾値１ａより小さいか否かを判別する（ステップＳ３０５）。
【０１１８】
応答時間が閾値１ａ未満であると判別した場合には（Ｓ３０５；ＹＥＳ）、制御部１１０は、選択したサーバは正常であると判別し（ステップＳ３０６）、返信パケットを選択サーバに転送し（ステップＳ３０７）、処理を終了させる。
【０１１９】
応答時間が閾値１ａ以上であると判別した場合には（Ｓ３０５；ＮＯ）、制御部１１０は、対象サーバが、過負荷であるために異常であると判別し（ステップＳ３０８）、サーバ情報１２１におけるこの選択したサーバの状態の欄を異常に記載を変更する。（ステップＳ３０９）
【０１２０】
次に、制御部１１０は、選択サーバの処理を停止又は変更させ（ステップＳ３１０）、正常状態に戻るように復帰要求をこの選択したサーバに送信し（ステップＳ３１１）、返信パケットを破棄し、エラー応答をクライアント４００に送信して（ステップＳ３１２）、処理を終了させる。
【０１２１】
このようにして、他サービス仲介処理では、負荷分散装置１００は、正常なサーバに、クライアント４００のサービスの要求パケットを転送して返信パケットを受信し、その返信パケットに基づいて、そのサーバの正常・異常を判別し、正常である場合には返信パケットを転送して、異常である場合には、そのサーバに対して所定の処理を行い、クライアント４００には、エラー応答を送信する。よって、正常なサーバのみからのサービスをクライアントは受けることができる。
【０１２２】
（実施の形態２）
実施の形態１においては、パケット管理情報１２３を用いて応答時間を算出していた。しかし、実施の形態２においては、パケットに送信時刻及び／又は返信時刻等の時刻情報を含ませることによって応答時間を算出する。なお、応答時間の算出以外は実施の形態１と同様である。
【０１２３】
実施の形態２においては、負荷分散装置１００は、通信ネットワークＡに接続される各サーバに定期的に送信時の時刻である送信時刻情報を含めた監査パケットを送信し、各サーバは、受信した監査パケットに応答して、送信時刻情報と返信時の時刻である返信時刻情報とを含めた返信パケットを返信する。負荷分散装置１００は、返信パケットを受信した後、返信パケットに含まれる送信時刻情報と返信時刻情報から、応答時間を算出し、その応答時間が閾値１ｂ以上である場合に、そのサーバは過負荷状態であるために異常であると判別する。
【０１２４】
また、実施の形態２においては、負荷分散装置１００がタイムスタンプサーバ３００に監査パケットを送信する場合には、監査パケットに要求ポリシーを含めて送信し、タイムスタンプサーバ３００は、返信パケットとして、基本的にはその要求ポリシーに従った時刻証明書を返信する。負荷分散装置１００は、応答時間が閾値１ｂ以上である場合に、そのタイムスタンプサーバ３００は異常であると判別する。また、負荷分散装置１００は、返信時刻から受信時刻までの時間差が閾値２以上である場合に、そのタイムスタンプサーバ３００は異常であると判別する。また、負荷分散装置１００は、時刻証明書の検証を行い、時刻証明書が検証を通らない場合には、そのタイムスタンプサーバ３００は異常であると判別する。また、負荷分散装置１００は、時刻証明書が証明する証明時刻と、時刻証明書を受信した受信時刻との時間差が閾値３以上である場合には、そのタイムスタンプサーバ３００は、その計時機能が適切でないために異常であると判別する。また、負荷分散装置１００は、実際の時刻証明書の生成ポリシーが何らかの理由によって要求ポリシーと異なる場合には、そのタイムスタンプサーバ３００は異常であると判別する。
【０１２５】
また、実施の形態２においては、負荷分散装置１００は、応答時間が閾値1ｂ未満であり、返信時刻から受信時刻までの時間差が閾値２未満である場合に、そのサーバが正常であると判別する。タイムスタンプサーバ３００の場合には、負荷分散装置１００は、さらにその時刻証明書が検証を通り、証明時刻と受信時刻との時間差が閾値３未満であり、時刻証明書の生成ポリシーが要求ポリシーと一致している場合には、そのタイムスタンプサーバ３００が正常であると判別する。
【０１２６】
以下、フローチャートを参照しながら、実施の形態２における実際の負荷分散装置１００の処理を説明する。
【０１２７】
なお、実施の形態２で行われる処理のうち実施の形態１と異なるのは、パケット解析処理と他サービス仲介処理の２つであり、それ以外は実施の形態１と同様であるので詳細な説明は省略し、パケット解析処理と他サービス仲介処理の２つについて以下に詳細に説明するものとする。
【０１２８】
先ず、図１１を参照しながら、実施の形態２におけるパケット解析処理（Ｓ１０６）について説明する。負荷分散装置１００は、パケットの送受信において、パケットの応答時間や返信時刻と受信時刻との時間差等に基づいて、監査対象サーバの正常・異常を判別する。
【０１２９】
先ず、制御部１１０は、受信した返信パケットに含まれる送信時刻と返信時刻との時間差である応答時間を算出する（ステップＳ１０６−２１）。
【０１３０】
次に、制御部１１０は、算出した応答時間が、サーバ情報１２１に記載されている、この監査対象サーバの閾値１ｂより小さいか否かを判別する（ステップＳ１０６−２２）。
【０１３１】
応答時間が閾値１ｂ以上であると判別した場合には（Ｓ１０６−２２；ＮＯ）、制御部１１０は、監査対象サーバが、過負荷であるために異常であると判別して（ステップＳ１０６−３１）、処理を負荷分散処理に返す。
【０１３２】
応答時間が閾値１ｂ未満であると判別した場合には（Ｓ１０６−２２；ＹＥＳ）、制御部１１０は、受信した返信パケットに含まれる返信時刻と、返信パケットを受信した受信時刻との時間差を算出する（ステップＳ１０６−２３）。
【０１３３】
次に、制御部１１０は、返信時刻と受信時刻との時間差が、サーバ情報１２１に記載されている、この監査対象サーバの閾値２より小さいか否かを判別する（ステップＳ１０６−２４）。
【０１３４】
返信時刻と受信時刻との時間差が閾値２以上であると判別した場合には（Ｓ１０６−２４；ＮＯ）、制御部１１０は、監査対象サーバが、計時機能が不適切であるために異常であると判別して（ステップＳ１０６−３１）、処理を負荷分散処理に返す。
【０１３５】
返信時刻と受信時刻との時間差が閾値２未満であると判別した場合には（Ｓ１０６−２４；ＹＥＳ）、制御部１１０は、監査対象サーバがタイムスタンプサーバ３００であるか否かを判別する（ステップＳ１０６−２５）。
【０１３６】
監査対象サーバがタイムスタンプサーバ３００ではない場合には（Ｓ１０６−２５；ＮＯ）、制御部１１０は、監査対象サーバが正常であると判別して（ステップＳ１０６−３２）、処理を負荷分散処理に返す。
【０１３７】
監査対象サーバがタイムスタンプサーバ３００である場合には（Ｓ１０６−２５；ＹＥＳ）、返信パケットは時刻証明書であるので、制御部１１０は、時刻証明書の電子署名の検証を行う（ステップＳ１０６−２６）。
【０１３８】
制御部１１０は、ステップＳ１０６−２６の結果、時刻証明書が検証を通ったか否かを判別する（ステップＳ１０６−２７）。
【０１３９】
時刻証明書が検証を通らなかった場合には（Ｓ１０６−２７；ＮＯ）、制御部１１０は、監査対象サーバ（タイムスタンプサーバ）が異常であると判別して（ステップＳ１０６−３１）、処理を負荷分散処理に返す。
【０１４０】
時刻証明書が検証を通った場合には（Ｓ１０６−２７；ＹＥＳ）、制御部１１０は、時刻証明書が証明する証明時刻と、時刻証明書を受信した受信時刻との時間差を算出する（ステップＳ１０６−２８）。
【０１４１】
次に、制御部１１０は、証明時刻と受信時刻との時間差が、サーバ情報１２１に記載されている、この監査対象サーバ（タイムスタンプサーバ）の閾値３より小さいか否かを判別する（ステップＳ１０６−２９）。
【０１４２】
証明時刻と受信時刻との時間差が閾値３以上であると判別した場合には（Ｓ１０６−２９；ＮＯ）、制御部１１０は、監査対象サーバ（タイムスタンプサーバ）が、その計時機能が不適切であるために異常であると判別して（ステップＳ１０６−３１）、処理を負荷分散処理に返す。
【０１４３】
証明時刻と受信時刻との時間差が閾値３未満であると判別した場合には（Ｓ１０６−２９；ＹＥＳ）、制御部１１０は、要求ポリシー情報１２２を参照して、クライアント４００が要求した要求ポリシーと、時刻証明書に適用された生成ポリシーとが一致するか否かを判別する（ステップＳ１０６−３０）。
【０１４４】
要求ポリシーと生成ポリシーとが一致しない場合には（Ｓ１０６−３０；ＮＯ）、制御部１１０は、監査対象サーバ（タイムスタンプサーバ）が異常であると判別して（ステップＳ１０６−３１）、処理を負荷分散処理に返す。
【０１４５】
要求ポリシーと生成ポリシーとが一致する場合には（Ｓ１０６−３０；ＹＥＳ）、制御部１１０は、監査対象サーバ（タイムスタンプサーバ）が正常であると判別して（ステップＳ１０６−３２）、処理を負荷分散処理に返す。
【０１４６】
このようにして、パケット解析処理によれば、負荷分散装置１００は、データの応答時間と、返信時刻と受信時刻との時間差と、時刻証明書の状態とによって各サーバが正常であるか否かを判別することができる。
【０１４７】
次に、実施の形態２における他サービス仲介処理を説明する。簡単に説明すると、負荷分散装置１００は、クライアント４００から、例えば、時刻情報を定期的に提供するサービス等の任意の他のサービスを受けたい旨の要求を受信すると、そのサービスの要求を、正常であり、且つ、そのサービスを行っている通信ネットワークＡ上のサーバ５００に転送し、それに応答して返信されたデータを受信する。そして、返信された時刻と受信した時刻との時間差が閾値以下であれば、そのサーバを正常と判定し、返信パケットをクライアント４００に転送する。時間差が閾値以上であれば、そのサーバを異常と判定し、エラー応答をクライアント４００に送信する。
【０１４８】
以下、図１２のフローチャートを参照しながら、他サービス仲介処理を詳細に説明する。
【０１４９】
クライアント４００から任意のサービスの要求パケットを受信すると、制御部１１０は、サーバ情報１２１の状態の欄が正常であり、且つ、そのサービスを行っているサーバ５００から一つを選択し、そのサービスの要求を、選択されたサーバに転送する（ステップＳ４０１）。
【０１５０】
制御部１１０は、サービスの要求に応答して選択サーバが返信した返信パケットを受信したか否かを判別する（ステップＳ４０２）。
【０１５１】
返信パケットを受信していないと判別した場合には（Ｓ４０２；ＮＯ）、制御部１１０は、サービスの要求パケットを転送してから所定の時間が経過したか否かを判別する（ステップＳ４０３）。
【０１５２】
サービスの要求パケットを転送してから所定の時間が経過したと判別した場合には（Ｓ４０３；ＹＥＳ）、制御部１１０は、処理をステップＳ４０８に進める。
【０１５３】
サービスの要求パケットを転送してから所定の時間が経過していないと判別した場合には（Ｓ４０３；ＮＯ）、制御部１１０は、処理をステップＳ４０２に戻す。
【０１５４】
返信パケットを受信したと判別した場合には（Ｓ４０２；ＹＥＳ）、制御部１１０は、受信した返信パケットに含まれる、選択サーバが返信した返信時刻と、返信パケットを受信した受信時刻との時間差を算出する（ステップＳ４０４）。
【０１５５】
次に、制御部１１０は、返信時刻と受信時刻との時間差が閾値２より小さいか否かを判別する（ステップＳ４０５）。
【０１５６】
返信時刻と受信時刻との時間差が閾値２未満であると判別した場合には（Ｓ４０５；ＹＥＳ）、制御部１１０は、選択サーバは正常であると判別し（ステップＳ４０６）、返信パケットを選択サーバに転送し（ステップＳ４０７）、処理を終了させる。
【０１５７】
返信時刻と受信時刻との時間差が閾値２以上であると判別した場合には（Ｓ４０５；ＮＯ）、制御部１１０は、選択サーバは異常であると判別し（ステップＳ４０８）、サーバ情報１２１におけるこの選択サーバの状態の欄を異常に記載を変更する（ステップＳ４０９）。
【０１５８】
次に、制御部１１０は、選択サーバの処理を停止又は変更させ（ステップＳ４１０）、正常状態に戻るように復帰要求を選択サーバに送信し（ステップＳ４１１）、返信パケットを破棄し、エラー応答をクライアント４００に送信して（ステップＳ４１２）、処理を終了させる。
【０１５９】
このようにして、他サービス仲介処理では、負荷分散装置１００は、正常なサーバに、クライアント４００のサービスの要求を転送して返信パケットを受信し、その返信パケットに基づいて、そのサーバの正常・異常を判別し、正常である場合には返信パケットを転送して、異常である場合には、そのサーバに対して所定の処理を行い、クライアント４００には、エラー応答を送信する。よって、正常なサーバのみからのサービスをクライアントは受けることができる。
【０１６０】
なお、他サービス仲介処理ではサーバの過負荷判定を実施してはいないが、実施の形態２における他の例と同様、送信時刻や返信時刻を基に判定することができることは言うまでもない。
【０１６１】
今まで述べたように、実施の形態２によれば、実施の形態１で得られる効果に加え、送信時刻や返信時刻をパケットに含めるので、実施の形態１のようにパケット管理情報１２３を持つ必要が無く、システムを簡略化することができる。さらにサーバの返信時刻を受信することにより、例えば他サービス仲介処理などにおいても時刻の確認をすることで、不適切な計時を行っているサーバをシステムから切り離す機会を増やすことができ、システム全体の信頼性をさらに向上させることができる。
【０１６２】
なお、本発明は上記実施形態に限定されず、種々の変形及び応用が可能である。
【０１６３】
本発明にかかる負荷分散装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、通信ネットワークＡ及び通信ネットワークＢに接続されたコンピュータに、上述の制御部１１０と、記憶部１２０と、入力部１３０と、出力部１４０と、通信制御部１５０と、の動作を実行させるためのプログラムを格納した媒体（ＣＤ−ＲＯＭ、ＭＯ等）からこれらのプログラムをインストールすることにより、当該コンピュータは、上述の処理を実行する負荷分散装置として機能する。
【０１６４】
また、コンピュータにプログラムを提供する方法は任意である。例えば、プログラムは、通信回線の掲示板（ＢＢＳ）にアップロードされ、通信回線を介してコンピュータに配信されてもよい。また、プログラムは、プログラムを表す信号により搬送波を変調した変調波により伝送され、この変調波を受信した装置が変調波を復調してこのプログラムを復元するようにしてもよい。そして、コンピュータは、このプログラムを起動して、ＯＳの制御のもと、他のアプリケーションプログラムと同様に実行する。これにより、コンピュータは、上述の処理を実行する負荷分散装置として機能する。
【０１６５】
なお、ＯＳが処理の一部を分担する場合、あるいは、ＯＳが本願発明の１つの構成要素の一部を構成するような場合、記録媒体は、その部分を除いたプログラムを格納してもよい。
【図面の簡単な説明】
【０１６６】
【図１】本発明の実施の形態１及び２に係る負荷分散システムの構成図である。
【図２】図１の負荷分散装置の構成図である。
【図３】図１の負荷分散装置が記憶するサーバ情報を説明するための表である。
【図４】図１の負荷分散装置が記憶する要求ポリシー情報を説明するための表である。
【図５】実施の形態１において図１の負荷分散装置が記憶するパケット管理情報を説明するための表である。
【図６】実施の形態１及び２における負荷分散処理を説明するためのフローチャートである。
【図７】実施の形態１におけるパケット解析処理を説明するためのフローチャートである。
【図８】実施の形態１及び２における時刻証明仲介処理を説明するためのフローチャートである。
【図９】実施の形態１及び２における時刻証明書解析処理を説明するためのフローチャートである。
【図１０】実施の形態１における他サービス仲介処理を説明するためのフローチャートである。
【図１１】実施の形態２におけるパケット解析処理を説明するためのフローチャートである。
【図１２】実施の形態２における他サービス仲介処理を説明するためのフローチャートである。
【符号の説明】
【０１６７】
１        負荷分散システム
１００    負荷分散装置
１１０    制御部
１２０    記憶部
１２１    サーバ情報
１２２    要求ポリシー情報
１２３    パケット管理情報
１３０    入力部
１４０    出力部
１５０    通信制御部
１６０    計時部
２００    ＮＴＰ（Network Time Protocol）サーバ
３００    タイムスタンプサーバ
４００    クライアント
【図１】
0004703634.tif 000002
【図２】
0004703634.tif 000003
【図３】
0004703634.tif 000004
【図４】
0004703634.tif 000005
【図５】
0004703634.tif 000006
【図６】
0004703634.tif 000007
【図７】
0004703634.tif 000008
【図８】
0004703634.tif 000009
【図９】
0004703634.tif 000010
【図１０】
0004703634.tif 000011
【図１１】
0004703634.tif 000012
【図１２】
0004703634.tif 000013