(57)【要約】【課題】クライアントにサービスを提供するための通信とは異なる無用な通信を行うことなく、負荷分散を実現する情報処理装置などを提供する。【解決手段】情報処理装置は、同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段と、依頼に対する応答を受信する受信手段と、依頼を送信してから応答を受信するまでに要した時間である応答時間の情報を、応答を行ったサーバに対応付けて保持する保持手段と、サービスと同一のサービスの依頼を要求する際に、保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段とを備える。【選択図】図４
2019160232.tif 000002
【特許請求の範囲】
【請求項１】
同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段と、
前記依頼に対する応答を受信する受信手段と、
前記依頼を送信してから前記応答を受信するまでに要した時間である応答時間の情報を、当該応答を行ったサーバに対応付けて保持する保持手段と、
前記サービスと同一のサービスの依頼を要求する際に、前記保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段と、
を備えることを特徴とする、情報処理装置。
【請求項２】
前記特定手段は、前記サービスと同一のサービスの依頼に対する、予め定められた回数の応答に係る前記応答時間が短い順に予め定められた数のサーバを前記送信先のサーバとして特定することを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記特定手段は、依頼しようとする前記サービスと同一のサービスの依頼に対する先の応答において、予め設定された閾値時間よりも短い前記応答時間で応答したサーバを前記送信先のサーバとして特定することを特徴とする、請求項１に記載の情報処理装置。
【請求項４】
前記特定手段は、依頼しようとする前記サービスと同一のサービスおよび他のサービスを含むサービスの依頼に対する、予め定められた回数の応答に係る前記応答時間が短い順に予め定められた数のサーバを前記送信先のサーバとして特定することを特徴とする、請求項１に記載の情報処理装置。
【請求項５】
前記特定手段は、サービスの依頼状況に応じて、前記応答時間を用いて定められた規則とは異なる規則をさらに適用して前記送信先のサーバを特定することを特徴とする、請求項１に記載の情報処理装置。
【請求項６】
前記特定手段は、依頼しようとする前記サービスと同一のサービスの依頼における送信先のサーバとなった回数に基づいて定められた規則を適用して送信先のサーバを特定することを特徴とする、請求項５に記載の情報処理装置。
【請求項７】
前記特定手段は、予め定められた条件に基づいて、依頼しようとする前記サービスの依頼の送信先サーバを、直前に当該サービスと同一のサービスの依頼の送信先としたサーバよりも増加させることを特徴とする、請求項１に記載の情報処理装置。
【請求項８】
前記特定手段は、予め定められた条件に合致する場合に、前記サービスの依頼を、当該サービスを提供可能な全てのサーバに送信させることを特徴とする、請求項７に記載の情報処理装置。
【請求項９】
同一の要求を複数の送信先へ送信する送信手段と、
前記要求に対する応答を受信する受信手段と、
前記要求を送信してから前記応答を受信するまでに要した時間に関して予め定められた規則に基づき、以後における当該要求と同種の要求を送信する際の送信先を制限する通信制御手段と、
を備えることを特徴とする、情報処理装置。
【請求項１０】
コンピュータを、
同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段と、
前記依頼に対する応答を受信する受信手段と、
前記依頼を送信してから前記応答を受信するまでに要した時間である応答時間の情報を、当該応答を行ったサーバに対応付けて保持する保持手段と、
前記サービスと同一のサービスの依頼を要求する際に、前記保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段として、
機能させることを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、異なる処理を行うプログラムや実行装置を含む複数の分散配置されたコンピュータ或いは計算機が接続されているネットワーク上での分散処理方法であって、サブプログラム実行サーバリストを有するメインプログラム実行サーバと、１つ以上のサブプログラム実行サ−バとを所定のコンピュータ或いは計算機に設けると共に、前記メインプログラム実行サーバは、メインプログラムを実行する過程においてサブプログラムによる処理が必要なときには、前記サブプログラム実行サーバリストから前記処理を実行可能なサブプログラム実行サーバを抽出して、該抽出したサブプログラム実行サーバに対して処理を依頼し、該処理依頼を受けたサブプログラム実行サーバは、該処理依頼に基づいてサブプログラム処理を実行すると共に処理結果を前記メインプログラム実行サーバに転送し、該処理結果を用いて前記メインプログラム実行サーバはメインプログラムを実行するネットワーク上での分散処理方法が記載されている。
【０００３】
特許文献２には、クライアント端末と複数のサーバ装置とから構成されるシステムに適用され、前記複数のサーバ装置の各々のサーバ装置が、前記クライアント端末からの接続依頼を受信する受信部と、自己の負荷に関する情報および前記クライアント端末に関する情報を含む転送情報を前記システムを構成する他のサーバ装置へ転送する転送部と、前記転送部による転送から所定時間経過後に、前記クライアント端末へ前記接続依頼に対する接続許可応答を返信する応答部と、前記受信部を通じて前記システムを構成する前記他のサーバ装置から転送された他のサーバ装置の負荷に関する情報および前記接続依頼を発信したクライアント端末に関する情報を含む転送情報を受信し、当該受信した転送情報に含まれる前記他のサーバ装置の負荷に関する情報と自己の負荷に関する情報とを比較し、どちらの負荷情報が低いかを判定する判定部とを備え、前記判定部が、前記他のサーバ装置の負荷に関する情報より、前記自己の負荷に関する報が低いと判定した場合に、前記応答部は前記クライアント端末へ前記接続依頼に対する接続許可応答を返信するサーバ装置が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２５００２１号公報
【特許文献２】特許第４０４６５６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数のサービス提供元(サーバとして機能する情報処理装置)と複数のクライアントとを含むサービス・ネットワーク・システムにおいて、クライアントにサービスを安定的に提供する観点から、特定の情報処理装置に負荷が集中しないように負荷分散することが要請される。このとき、複数の情報処理装置が互いの負荷状況に関する情報を交換して、負荷が低い情報処理装置にサービスの提供を依頼することが考えられる。しかし、この場合においては、複数の情報処理装置が互いの負荷状況を交換する通信を行うために、ネットワークの負荷が増大する。
本発明の目的は、クライアントにサービスを提供するための通信とは異なる無用な通信を行うことなく、負荷分散を実現する情報処理装置などを提供することにある。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段と、前記依頼に対する応答を受信する受信手段と、前記依頼を送信してから前記応答を受信するまでに要した時間である応答時間の情報を、当該応答を行ったサーバに対応付けて保持する保持手段と、前記サービスと同一のサービスの依頼を要求する際に、前記保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段と、を備えることを特徴とする、情報処理装置である。
請求項２に記載の発明は、前記特定手段は、前記サービスと同一のサービスの依頼に対する、予め定められた回数の応答に係る前記応答時間が短い順に予め定められた数のサーバを前記送信先のサーバとして特定することを特徴とする、請求項１に記載の情報処理装置である。
請求項３に記載の発明は、前記特定手段は、依頼しようとする前記サービスと同一のサービスの依頼に対する先の応答において、予め設定された閾値時間よりも短い前記応答時間で応答したサーバを前記送信先のサーバとして特定することを特徴とする、請求項１に記載の情報処理装置である。
請求項４に記載の発明は、前記特定手段は、依頼しようとする前記サービスと同一のサービスおよび他のサービスを含むサービスの依頼に対する、予め定められた回数の応答に係る前記応答時間が短い順に予め定められた数のサーバを前記送信先のサーバとして特定することを特徴とする、請求項１に記載の情報処理装置である。
請求項５に記載の発明は、前記特定手段は、サービスの依頼状況に応じて、前記応答時間を用いて定められた規則とは異なる規則をさらに適用して前記送信先のサーバを特定することを特徴とする、請求項１に記載の情報処理装置である。
請求項６に記載の発明は、前記特定手段は、依頼しようとする前記サービスと同一のサービスの依頼における送信先のサーバとなった回数に基づいて定められた規則を適用して送信先のサーバを特定することを特徴とする、請求項５に記載の情報処理装置である。
請求項７に記載の発明は、前記特定手段は、予め定められた条件に基づいて、依頼しようとする前記サービスの依頼の送信先サーバを、直前に当該サービスと同一のサービスの依頼の送信先としたサーバよりも増加させることを特徴とする、請求項１に記載の情報処理装置である。
請求項８に記載の発明は、前記特定手段は、予め定められた条件に合致する場合に、前記サービスの依頼を、当該サービスを提供可能な全てのサーバに送信させることを特徴とする、請求項７に記載の情報処理装置である。
請求項９に記載の発明は、同一の要求を複数の送信先へ送信する送信手段と、前記要求に対する応答を受信する受信手段と、前記要求を送信してから前記応答を受信するまでに要した時間に関して予め定められた規則に基づき、以後における当該要求と同種の要求を送信する際の送信先を制限する通信制御手段と、を備えることを特徴とする、情報処理装置である。
請求項１０に記載の発明は、コンピュータを、同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段と、前記依頼に対する応答を受信する受信手段と、前記依頼を送信してから前記応答を受信するまでに要した時間である応答時間の情報を、当該応答を行ったサーバに対応付けて保持する保持手段と、前記サービスと同一のサービスの依頼を要求する際に、前記保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段として、機能させることを特徴とする、プログラムである。
【発明の効果】
【０００７】
請求項１、９、１０に記載の発明によれば、クライアントにサービスを提供するための通信とは異なる無用な通信を行うことなく、負荷分散ができる。
請求項２に記載の発明によれば、応答時間の短い順に予め定められた数のサーバを特定する場合に比べて、送信先のサーバの数を抑制できる。
請求項３に記載の発明によれば、閾値時間より短い応答時間でサーバを特定しない場合に比べて、サーバの応答性能を特定できる。
請求項４に記載の発明によれば、他のサービスを含まない場合に比べて、応答性能が高いサーバを選択できる。
請求項５に記載の発明によれば、異なる規則をさらに適用しない場合に比べて、実際の依頼状況を反映させて送信先のサーバが選択できる。
請求項６に記載の発明によれば、回数に基づかない場合に比べて、安定的に応答の速いサーバを選択できる。
請求項７に記載の発明によれば、サーバの数を増加させない場合に比べ、確実にサービスを受けられることが優先できる。
請求項８に記載の発明によれば、全てのサーバに送信しない場合に比べ、サーバの改善などが反映させられる。
【図面の簡単な説明】
【０００８】
【図１】本実施の形態が適用される情報処理システムの概要を示す図である。
【図２】サーバが提供するサービスを説明する図である。
【図３】サーバ及びクライアントのハードウエア構成を説明する図である。
【図４】サーバの機能ブロック構成を説明する図である。
【図５】サービス状況蓄積部が蓄積するサービス状況の一例を示す図である。
【図６】サーバの動作を説明するフローチャートである。
【図７】サーバのサービス状況蓄積部に、今回のサービス要求と同一のサービス要求に対してサービス応答がされたレコードがない場合を説明するシーケンス図である。
【図８】サーバのサービス状況蓄積部に、過去において、今回のサービス要求と同じサービス要求に対してサービス応答がされたレコードがある場合を説明するシーケンス図である。
【図９】サーバリスト作成の実施例１を説明するフローチャートである。
【図１０】サーバリスト作成の実施例２を説明するフローチャートである。
【図１１】サーバリスト作成の実施例３を説明するフローチャートである。
【図１２】サーバリスト作成の実施例４を説明するフローチャートである。
【図１３】サーバリスト作成の実施例５を説明するフローチャートである。
【図１４】サーバリスト作成の実施例６を説明するフローチャートである。
【発明を実施するための形態】
【０００９】
ここでは、同じ情報処理（サービス）を提供する複数のサーバ、及びサーバの提供するサービスを依頼する複数のクライアントがネットワークを介して接続されている情報処理システムとして説明する。つまり、クライアントは、サーバにサービスの依頼（サービス要求）を送信し、サーバによって処理された応答を受信する。この情報処理システムは、パブリッシュ・サブスクライブ（Publish-Subscribe）方式（Ｐｕｂ／Ｓｕｂ方式）でメッセージ（応答）を送受信する、いわゆるＰｕｂ／Ｓｕｂメッセージングモデルに対応するシステムである。ここで、サーバが、パブリッシャ（Publisher）であり、クライアントがサブスクライバ（Subscriber）に対応する。
【００１０】
ここでは、複数のサーバは同じサービスを提供できるため、クライアントからサービス要求を受けたサーバは、他のサーバにサービス要求を転送（送信）して、他のサーバがサービス要求に対する応答をしてもよい。つまり、サーバは、クライアントからのサービス要求に対して自身が応答してもよく、他のサーバにサービス要求を転送して、他のサーバからの応答をクライアントに送信してもよい。このようにすることで、最も早い応答をクライアントに送信することで、処理の効率化が図られる。
【００１１】
以下では、サーバが依頼されたサービス（サービス要求）を処理したり、他のサーバにサービス要求を転送したりするとして説明する。サーバ以外に、クライアントやサーバとネットワークとの間に設けられた中継サーバがこのような動作を行ってもよい。ここでは、このような動作を行うサーバ、中継サーバ、クライアントなどを情報処理装置と表記する。
【００１２】
なお、以下で説明する情報処理システムは、Ｐｕｂ／Ｓｕｂメッセージングモデルのシステムに限定されず、同じサービスを提供できる複数のサーバと、サーバにサービスを依頼（サービス要求）するクライアントとを備えるシステムに適用できる。
以下、添付図面を参照して、本発明の実施の形態（本実施の形態）について説明する。
【００１３】
（情報処理システム１）
図１は、本実施の形態が適用される情報処理システム１の概要を示す図である。
情報処理システム１は、複数のイントラネット１０、ネットワーク２０、及び複数のイントラネット１０とネットワーク２０とをそれぞれ接続する複数のルータ３０を備える。図１では、一例として、３つのイントラネット１０を示している。３つのイントラネット１０をそれぞれ区別する場合は、イントラネット１１、１２、１３と表記し、３つのルータをそれぞれ区別する場合は、ルータ３１、３２、３３と表記する。つまり、ルータ３１は、イントラネット１１とネットワーク２０とを接続し、ルータ３２は、イントラネット１２とネットワーク２０とを接続し、ルータ３３は、イントラネット１３とネットワーク２０とを接続する。
【００１４】
ここで、イントラネット１０とは、予め設定された組織内、例えば企業などの内部におけるデータ（パケット）の送受信に限定して設けられたネットワークをいう。ネットワーク２０は、公衆通信回線網などを介してデータ通信するネットワークであって、いわゆるメトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネットなどである。ルータ３０は、イントラネット１０とネットワーク２０との間など、ネットワーク間に置かれて、ＩＰアドレス等を頼りにデータ（パケット）の送受信を中継する機器である。ルータ３０は、それぞれのイントラネット１０を異なるドメインとして（ドメイン名で）区別して、ネットワーク２０とイントラネット１０との間におけるデータ（パケット）の送受信を中継する。
【００１５】
次に、イントラネット１０について説明する。
図１に示すイントラネット１０（イントラネット１１、１２、１３）は、一例として、すべて同じ構成を有しているとする。よって、イントラネット１０の構成を、イントラネット１１で説明する。イントラネット１１（イントラネット１０）は、２つのサブドメイン４０（それぞれを区別する場合は、サブドメイン４１、４２と表記する。）及びサブドメイン４１、４２間を接続するブリッジ５０を備える。各サブドメイン４０は、１つのサーバ６０と、それに接続された情報端末であるクライアント７０とを備える。なお、サブドメイン４１におけるサーバ６０をサーバ６１、クライアント７０をクライアント７１と表記し、サブドメイン４２におけるサーバ６０をサーバ６２、クライアント７０をクライアント７２と表記して区別する。なお、前述したようにサーバ６０は、情報処理装置の一例である。
【００１６】
図１では、各サブドメイン４０（サブドメイン４１、４２）には、１つのクライアント７０のみが表記されているが、複数のクライアント７０を備えていてもよい。つまり、複数のクライアント７０の代表として、１つのクライアント７０を示している。そして、サーバ６０とクライアント７０とは、ローカルエリア・ネットワーク（ＬＡＮ：Local Area Network）８０で接続されている。なお、ＬＡＮ８０は、サブドメイン４１側をＬＡＮ８１と表記し、サブドメイン４２側をＬＡＮ８２と表記して区別する。サーバ６１、６２は、ルータ３０（ルータ３１）に接続されている。２つのサブドメイン４１、４２は、それぞれのＬＡＮ８０（ＬＡＮ８１、８２）間に設けられたブリッジ５０で接続されている。そして、サブドメイン４１にあるクライアント７１は、ＬＡＮ８１で接続されたサーバ６１とデータの送受信が行えるとともに、ブリッジ５０を介してＬＡＮ８２で接続されたサーバ６２ともデータの送受信ができるようになっている。
【００１７】
サブドメイン４０は、ドメイン名に加えられたサブドメイン名で区別されるネットワークである。ブリッジ５０は、ＭＡＣアドレス等を頼りにデータ（パケット）の送受信を行う機器である。ブリッジ５０により、サブドメイン４１、４２間が接続され、１つのイントラネット１０（イントラネット１１）を構成する。ここでは、１つのイントラネット１０に、サブドメイン４０が２つ設けられているが、サブドメイン４０は、１つであってもよく、３以上であってもよい。
【００１８】
以下では、説明を容易にするため、図１に示すように、イントラネット１１のサブドメイン４１におけるサーバ６０（サーバ６１）をサーバＡ１、クライアント７０（クライアント７１）をクライアントＡ１と表記し、サブドメイン４２におけるサーバ６０（サーバ６２）をサーバＡ２、クライアント７０（クライアント７２）をクライアントＡ２と表記する。そして、イントラネット１１と同様な構成であるイントラネット１２における２つのサーバ６０をサーバＢ１、Ｂ２、２つのクライアント７０をクライアントＢ１、Ｂ２と表記する。さらに、イントラネット１１と同様な構成であるイントラネット１３における２つのサーバ６０をサーバＣ１、Ｃ２、２つのクライアント７０をクライアントＣ１、Ｃ２と表記する。
【００１９】
上記においては、３つのイントラネット１０（イントラネット１１、１２、１３）は、同じ構成であるとしたが、互いに異なっていてもよい。例えば、イントラネット１２は、サブドメインが１つ、イントラネット１３は、サブドメインが３つなどである。
【００２０】
（サーバ６０が提供するサービス）
サーバ６０（サーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２）は、クライアント７０（クライアントＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２）に対してサービスを提供する。なお、サービスを提供するとは、クライアント７０のサービスの依頼（サービス要求）を受信し、サーバ６０が処理して、その結果（応答）をクライアント７０に送信することをいう。つまり、サービス要求を処理すること、又は、サービス要求に対応することをいう。
ここでは、サーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２は、サービス１、サービス２、サービス３及びサービス４を提供するとする。
【００２１】
図２は、サーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２が提供するサービスを説明する図である。図２では、サーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２がそれぞれ提供するサービスを〇で示している。
【００２２】
サーバＡ１は、サービス１、３を、サーバＡ２は、サービス１、２、４を、サーバＢ１は、サービス２、３、４を、サーバＢ２は、サービス１、２を、サーバＣ１は、サービス３を、サーバＣ２は、サービス１、３、４を提供する。サーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２は、互いに共通するサービスを提供するように構成されている。つまり、サービス１は、サーバＡ１、Ａ２、Ｂ２、Ｃ２のいずれであっても提供しうる。同様に、サービス２は、サーバＡ２、Ｂ１、Ｂ２のいずれであっても提供しうる。サービス３は、サーバＡ１、Ｂ１、Ｃ１、Ｃ２のいずれであっても提供しうる。サービス４は、サーバＡ２、Ｂ１、Ｃ２のいずれであっても提供しうる。このようにして、サーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２の内の複数のサーバが、共通のサービスを提供するようになっている。
【００２３】
（ハードウエア構成１００）
次に、サーバ６０（サーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２）及びクライアント７０（クライアントＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２）のハードウエア構成を説明する。
図３は、サーバ６０及びクライアント７０のハードウエア構成１００を説明する図である。
【００２４】
ハードウエア構成１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤＤ１０４、通信用入出力インターフェイス（通信ＩＦ）１０５、入出力インターフェイス（入出力ＩＦ）１０６、入出力ＩＦ１０６に接続されたディスプレイ１０７、入出力ＩＦ１０６に接続された入力デバイス１０８、及びバス１１０を備える。
【００２５】
ＲＯＭ１０２は、電源の供給がない場合でも記憶した（書き込まれた）データを保持する不揮発メモリである。ＲＯＭ１０２は、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなどである。ＲＯＭ１０２は、サーバ６０及びクライアント７０をそれぞれ動作させるアプリケーションソフトウエア（プログラム）やプログラムが用いる定数や変数の初期値などのデータを記憶する。
【００２６】
ＲＡＭ１０３は、電源の供給が絶たれると記憶したデータが失われる揮発メモリである。ＲＡＭ１０３は、ＲＯＭ１０２より、データの読み書きが高速である。ＲＡＭ１０３は、例えばＤＲＡＭである。ＲＡＭ１０３は、ＲＯＭ１０２に記憶されたプログラムやデータが読み出され、実行可能な状態に展開されて書き込まれるとともに、サーバ６０及びクライアント７０を動作させるためのデータを記憶するワークエリアとして使用される。
【００２７】
ＨＤＤ１０４は、電源の供給がない場合でも記憶した（書き込まれた）データを保持する書き換え可能な不揮発メモリであって、大容量のデータを記憶する。ＲＯＭ１０２と同様に、サーバ６０及びクライアント７０をそれぞれ動作させるアプリケーションソフトウエア（プログラム）やプログラムが用いる定数や変数の初期値などのデータを記憶してもよい。
【００２８】
通信ＩＦ１０５は、サーバ６０の場合には、図１に示したルータ３０やＬＡＮ８０とのインターフェイスであり、クライアント７０の場合には、図１に示したＬＡＮ８０とのインターフェイスである。
入出力ＩＦ１０６は、ディスプレイ１０７及び入力デバイス１０８に接続されている。ディスプレイ１０７は、画像を視認することが可能なＬＣＤなどである。入力デバイス１０８は、操作者（使用者）がＣＰＵ１０１に指示を与えるためのデバイスであって、キーボード、タッチパネル、スイッチなどである。
バス１１０は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤＤ１０４、通信ＩＦ１０５、及び入出力ＩＦ１０６に接続され、ＣＰＵ１０１の制御によって、プロラムやデータの入出力を可能にする。
【００２９】
ＣＰＵ１０１は、電源が投入されると、ＲＯＭ１０２（又は、ＨＤＤ１０４）に記憶されたプログラムやデータを読み出して、ＲＡＭ１０３上に実行可能な状態に展開して書き込む。そして、プログラムを実行する。プログラムの実行にともない、ＨＤＤ１０４、通信ＩＦ１０５、入出力ＩＦ１０６とデータのやり取りを行う。
【００３０】
上記では、ＲＯＭ１０２、ＲＡＭ１０３及びＨＤＤ１０４を設けたが、ＲＯＭ１０２、ＲＡＭ１０３及びＨＤＤ１０４のいくつかを、書き換え可能な不揮発メモリによって構成してもよい。書き換え可能な不揮発メモリとしては、フラッシュメモリなどを用いればよい。また、ＲＯＭ１０２、ＲＡＭ１０３をＣＰＵ１０１と一体に構成してもよい。この場合、ＲＯＭ１０２、ＲＡＭ１０３を書き換え可能な不揮発メモリによって構成してもよい。書き換え可能な不揮発メモリとしては、フラッシュメモリなどを用いればよい。
【００３１】
ハードウエア構成１００が図１に示すサーバ６０である場合、ディスプレイ１０７及び／又は入力デバイス１０８を備えなくてもよい。また、ハードウエア構成１００が図１に示すクライアント７０である場合、ＨＤＤ１０４を備えなくてもよい。
【００３２】
（サーバ６０の機能ブロック構成）
次に、サーバ６０（サーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２）の機能ブロックの構成（機能ブロック構成）を説明する。以下では、サーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２の機能は、共通であるとしてサーバ６０として説明する。なお、クライアントＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２は、クライアント７０として説明する。
図４は、サーバ６０の機能ブロック構成を説明する図である。
【００３３】
サーバ６０は、サーバ６０を制御する制御部２０１、依頼されたサービスを処理（実行）するサービス処理部２０２、及び、サーバ６０のサービス状況を蓄積（記録）するサービス状況蓄積部２０３を備える。また、サーバ６０は、クライアント７０からサービスの依頼（サービス要求）を受信するサービス要求受信部２０４、及び、クライアント７０へサービス（サービス要求に対するサービス応答）を送信するサービス送信部２０５を備える。なお、サービス状況蓄積部２０３が蓄積するサービス状況については、後述する。
【００３４】
そして、サーバ６０は、クライアント７０からのサービス要求をイントラネット１０の外部にある他のサーバ６０に転送（送信）し、サービス応答を受信するサービス要求転送／応答受信部２０６、及び、イントラネット１０の外部にある他のサーバ６０から転送されたサービス要求を受信し、サービス応答を送信する外部サービス要求受信／応答送信部２０７を備える。さらに、サーバ６０は、サービス要求やサービス応答などに関するデータが送受信されるサービスバス２１０を備える。
以下では、「サービスの依頼」を「サービス要求」と表記し、「サービス」を「サービス要求に対する応答」、「サービス応答」又は「応答」と表記する。また、サービス要求を他のサーバ６０に転送するサーバ６０を、「転送元サーバ」又は「送信元サーバ」と表記し、サービス要求が転送（送信）される他のサーバを、「転送先サーバ」又は「送信先サーバ」と表記することがある。
【００３５】
制御部２０１、サービス処理部２０２、サービス状況蓄積部２０３、サービス要求受信部２０４、サービス送信部２０５、サービス要求転送／応答受信部２０６及び外部サービス要求受信／応答送信部２０７は、サービスバス２１０に接続されている。そして、サービス処理部２０２、サービス状況蓄積部２０３、サービス要求受信部２０４、サービス送信部２０５、サービス要求転送／応答受信部２０６及び外部サービス要求受信／応答送信部２０７は、制御部２０１によって制御される。
サービス要求受信部２０４、サービス送信部２０５は、ＬＡＮ８０に接続されている。また、サービス要求転送／応答受信部２０６及び外部サービス要求受信／応答送信部２０７は、ルータ３０（図１参照）を介して、ネットワーク２０に接続されている。なお、図４では、ルータ３０の記載を省略している。
【００３６】
サーバ６０の基本的な動作を説明する。
サービス要求受信部２０４は、サーバ６０にＬＡＮ８０を経由して接続されたクライアント７０からサービス要求を受信する。すると、制御部２０１は、サーバ６０がサービス要求に係るサービスを提供する場合（図２参照）、自身のサービス処理部２０２でサービス要求に係るサービスの処理を行なわせる。また、制御部２０１は、サービス要求転送／応答受信部２０６から、サーバ６０が含まれるイントラネット１０の外部にある他のサーバ６０にサービス要求を転送する。なお、サービス要求転送／応答受信部２０６は、サービス要求が転送された他のサーバ６０からサービス応答を受信する。
【００３７】
外部サービス要求受信／応答送信部２０７は、他のサーバ６０からのサービス要求を受信する。制御部２０１は、サーバ６０が他のサーバ６０からのサービス要求に係るサービスを提供する場合、自身のサービス処理部２０２にて、サービス要求に係るサービスの処理を行わせる。そして、制御部２０１は、転送されたサービス要求に対するサービス応答を外部サービス要求受信／応答送信部２０７から、サービス要求を転送した他のサーバ６０に送信する。
【００３８】
制御部２０１は、自身のサービス処理部２０２からのサービス応答、又は、サービス要求を転送した他のサーバ６０からのサービス応答を、サービス送信部２０５から、サービス要求したクライアント７０に送信する。なお、サービス要求を転送した他のサーバ６０からのサービス応答は、サービス要求転送／応答受信部２０６が受信する。
そして、サービス要求、サービス応答などのサービス状況の記録が、サービス状況蓄積部２０３に保存される。
【００３９】
つまり、サーバ６０は、サービス要求転送／応答受信部２０６を備えることで、サービス要求を他のサーバ６０に転送し、他のサーバ６０からのサービス応答を受信する。また、外部サービス要求受信／応答送信部２０７を備えることで、他のサーバ６０からのサービス要求を受信し、サービス応答を送信するように構成されている。
【００４０】
次に、図４に示すサーバ６０の機能ブロックと図３に示したハードウエア構成１００との関係を説明する。
制御部２０１及びサービス処理部２０２は、ハードウエア構成１００におけるＣＰＵ１０１によって実現され、サービス状況蓄積部２０３は、ハードウエア構成１００におけるＨＤＤ１０４によって実現される。サービス状況蓄積部２０３は、前述したように、ＨＤＤ１０４の代わりに、書き換え可能な不揮発メモリによって構成されてもよい。サービス要求受信部２０４、サービス送信部２０５、サービス要求転送／応答受信部２０６及び外部サービス要求受信／応答送信部２０７は、ハードウエア構成１００における通信ＩＦ１０５によって実現される。サービスバス２１０は、バス１１０によって実現される。
そして、サービス処理部２０２、サービス状況蓄積部２０３、サービス要求受信部２０４、サービス送信部２０５、サービス要求転送／応答受信部２０６及び外部サービス要求受信／応答送信部２０７は、ＲＯＭ１０２（又は、ＨＤＤ１０４）に記憶されたプログラムやデータに基づいて構成され、ＣＰＵ１０１、つまり制御部２０１によって制御される。
【００４１】
（サービス状況蓄積部２０３）
次に、サービス状況蓄積部２０３を説明する。
図５は、サービス状況蓄積部２０３が蓄積するサービス状況の一例を示す図である。サービス状況蓄積部２０３には、サーバ６０に接続されたクライアント７０からのサービス要求に対するサービス提供の状況（サービス状況）に関する項目が記録（レコード）として蓄積されている。図５では、イントラネット１１におけるサーバＡ１に接続されたクライアントＡ１が、サーバＡ１に対して行ったサービス要求に対するサービス状況に関する項目が蓄積（記録）されている。ここで、サービス状況とは、サービス要求に対する応答（サービス応答）がクライアント７０に送信された（サービスが提供された）場合の他、サービス応答がクライアント７０に送信されなかった場合やサービス要求に対して応答できない場合などの記録を含む。なお、サービス要求に対して応答できない場合とは、図２に示したように、サーバ６０がサービス要求に係るサービスを提供しない場合である。
【００４２】
図５に示すサービス状況は、サーバＡ１がサービス要求受信部２０４で受信したサービス要求に関する記録（レコード）である。ここでは、サービス状況蓄積部２０３には、一例として、レコードの番号（レコードＮｏ．）、サービス要求を受信し処理したサーバ（サーバＡ１）又は転送したサーバ（サーバＡ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２）、サービス要求に係るサービス（サービス１〜４）、サービス応答に要した応答時間ＴＡＴ（Turn Around Time）、採用可否及び回答受信時間が蓄積（記憶）されている。つまり、サービス状況蓄積部２０３は、応答時間ＴＡＴの情報を保持する。
【００４３】
なお、サーバＡ１に対しては、サーバＡ１が含まれるイントラネット１１内のクライアント７０（クライアントＡ１、Ｂ１）からサービス要求される。このとき、サーバＡ１がサービス要求に係るサービスを提供する場合には、レコードＮｏ．１のように、自身によるサービス要求の処理が記録される。
また、サーバＡ１は、サーバＡ１とともにイントラネット１１に含まれるサーバＡ２に対してもサービス要求を転送するようになっている。
【００４４】
ここで、応答時間ＴＡＴとは、サービス要求受信部２０４が受信したサービス要求を、サービス要求転送／応答受信部２０６から他のサーバ６０に転送（送信）してから、他のサーバ６０からサービス要求転送／応答受信部２０６でサービス応答を受信するまでに要した時間をいう。ここでは、ｍｓで示している。なお、応答時間ＴＡＴには、レコードＮｏ．１のように、自身のサービス処理部２０２での処理を開始してから、サービス応答を送信可能になるまでの時間を含む。
【００４５】
そして、採用可否とは、サービス応答がクライアント７０に送信された（サービスが提供された）か否かを示す指標（フラグ）である。送信された場合を採用されたとして“採用”、提供しなかった場合を不採用として“不採用”と表記する。なお、“採用”をＴｒｕｅ（１）、“不採用”をＦａｌｓｅ（０）と符号で表してもよい。そして、回答受信時間とは、サービス応答を受信又はサービス要求に対して応答できない旨の通知を受信した時間をいう。ここでは、回答には、「サービス応答（応答）」と「サービス要求に対して応答できない旨の通知」とを含む。
【００４６】
なお、サービス要求転送／応答受信部２０６は、他のサーバ６０からの「サービス要求に対して応答できない旨の通知」を「サービス応答（応答）」と同様に受信する。また、外部サービス要求受信／応答送信部２０７は、他のサーバ６０からのサービス要求に対して、「サービス要求に対して応答できない旨の通知」を「サービス応答（応答）」と同様に送信する。
【００４７】
以下に、図５に示したサービス状況を説明する。ここでは、クライアントＡ１（クライアント７０）がサーバＡ１（サーバ６０）に対してサービス要求を行っている。そして、サーバ６０（サーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２）は、図２に示したサービス１〜４を提供するとする。
【００４８】
レコードＮｏ．１では、サーバＡ１が、クライアントＡ１からのサービス１のサービス要求に対して、サービス応答したことが記録されている。図２に示したように、サーバＡ１は、サービス１を提供しうる。つまり、クライアントＡ１が接続されているサーバＡ１は、自身のサービス処理部２０２（図４参照）においてサービス１を処理している。応答時間ＴＡＴは、９００ｍｓである。
【００４９】
次に、レコードＮｏ．２では、サーバＢ２が、クライアントＡ１からのサービス１のサービス要求に対して、サービス応答したことが記録されている。図２に示したように、サーバＢ２は、サービス１を提供しうる。つまり、サーバＢ２は、サーバＡ１のサービス要求転送／応答受信部２０６（図４参照）からのサービス１のサービス要求を受信し、サービス応答をサーバＡ１のサービス要求転送／応答受信部２０６に送信している。応答時間ＴＡＴは、１１００ｍｓである。
【００５０】
ここでは、サーバＡ１からの応答時間ＴＡＴがサーバＢ２からの応答時間ＴＡＴより短く、且つ、先に到着している。よって、サーバＡ１からの応答が採用されてクライアントＡ１に送信されている。よって、レコードＮｏ．１のサーバＡ１からの応答が“採用”と記録され、レコードＮｏ．２のサーバＢ２からの応答が“不採用”と記録されている。
【００５１】
レコードＮｏ．３では、クライアントＡ１からのサービス２のサービス要求があった際に、サーバＣ１からサービス要求に対して応答できない旨の通知を受信したことが記録されている。これは、図２に示されているように、サーバＣ１は、サービス２を提供しないためである。
同様に、レコードＮｏ．４では、クライアントＡ１からのサービス３のサービス要求があった際に、サーバＡ２がサービス要求に対して応答できない旨の通知を受信したことが記録されている。これは、図２に示されているように、サーバＡ２は、サービス３を提供しないためである。これらの場合、サーバＡ１は、サービス要求転送／応答受信部２０６から、クライアントＡ１からのサービス２、３のサービス要求を他のサーバ６０（サーバＡ２、Ｃ１）に対して行っている。なお、レコードＮｏ．３、４では、サービス要求に対して応答できないために、応答時間ＴＡＴ及び採用可否の欄が空欄になっている。
【００５２】
そして、レコードＮｏ．ｎ（ｎは、５以上の整数）では、サーバＣ２が、クライアントＡ１からのサービス４のサービス要求に対して、サービス応答したことが記録されている。図２に示したように、サーバＣ２は、サービス４を提供しうる。つまり、サーバＡ１は、サービス要求転送／応答受信部２０６から、クライアントＡ１からのサービス４のサービス要求を他のサーバ６０（サーバＣ２）に対して行っている。これに対して、サーバＣ２からのサービス４のサービス要求に対するサービス応答は、応答時間ＴＡＴが２００ｍｓで受信されている。そして、このサービス応答が、“採用”になっている。
【００５３】
（サーバ６０の動作）
次に、サーバ６０の動作をフローチャートで説明する。
図６は、サーバ６０の動作を説明するフローチャートである。
まず、サーバ６０（例えば、サーバＡ１）に接続されたクライアント７０（例えば、クライアントＡ１）が、サーバ６０に向けてサービスを要求（サービス要求）する。
すると、サービス要求受信部２０４（図４参照）は、クライアント７０からのサービス要求を受信する（ステップ１１。図６では、Ｓ１１と表記する。他の場合も同様とする。）。
【００５４】
制御部２０１は、自身のサーバ６０がサービス要求に係るサービスを提供するか否かを判断する（ステップ１２）。
ステップ１２で、肯定（ＹＥＳ）の判断がされた場合、つまり自身のサーバ６０がサービス要求に係るサービスを提供する場合には、サービス処理部２０２によりサービス要求を処理させる（ステップ１３）。一方、ステップ１２で、否定（ＮＯ）の判断がされた場合、つまり自身がサービス要求に係るサービスを提供しない場合には、ステップ１３をスキップする。
【００５５】
例えば、サーバＡ１は、図２に示したように、サービス１、３を提供するが、サービス２、４は提供しない。よって、サービス要求がサービス１又はサービス３であれば、サーバＡ１は、自身のサービス処理部２０２において、サービス要求を処理する。一方、サービス要求がサービス２又はサービス４であれば、サーバＡ１は、サービス２、４を提供しない、つまり自身のサービス処理部２０２においてサービス要求を処理できないため、そのままとする（処理しない）。
【００５６】
ステップ１２と並行して、制御部２０１は、サービス状況蓄積部２０３にサービス要求にサービス応答したレコードを検索する（ステップ１４）。そして、制御部２０１は、レコードが有る（レコード有）か否かを判断する（ステップ１５）。つまり、サービス状況蓄積部２０３により、今回のサービス要求と同一のサービス要求が過去においてされ、サービス応答したレコードを抽出する。
【００５７】
ステップ１５で、肯定（ＹＥＳ）の判断がされた場合、つまり過去において、今回のサービス要求と同一のサービス要求にサービス応答したレコードがある場合には、制御部２０１は、サービス応答したサーバ６０に基づいて、サーバリストを作成する（サーバリスト作成）（ステップ１６）。つまり、サーバリストには、サービス要求を転送する転送先となるサーバ６０がリストアップされている。なお、サービス要求を転送しないサーバ６０は除かれている。ステップ１６のサーバリスト作成については、後述する。
そして、制御部２０１は、サーバリストにあるサーバ６０に対して、サービス要求転送／応答受信部２０６から、サービス要求を送信（転送）する（ステップ１７）。
【００５８】
一方、ステップ１５で、否定（ＮＯ）の判断がされた場合、つまり過去において、今回のサービス要求と同一のサービス要求にサービス応答をしたレコードがない場合には、制御部２０１は、空のサーバリストを作成する（ステップ１８）。そして、サービス要求転送／応答受信部２０６から、自身を除く他のサーバ６０のすべてに対して、サービス要求を一斉に転送（送信）（ブロードキャスト転送）する（ステップ１９）。なお、ステップ１８を省略してもよい。
また、ステップ１８で、空のサーバリストの代わりに、他の全てのサーバ６０（他の全サーバ６０）を含むサーバリストを作成してもよい。この場合は、フローがステップ１８からステップ１７に移るようにしてもよい。
【００５９】
次に、制御部２０１は、サービス要求に対する回答（回答有）を待つ（ステップ２０）。なお、前述したように、回答には、自身のサービス処理部２０２でサービス要求を処理した場合のサービス応答、及び、サービス要求転送／応答受信部２０６への他のサーバ６０からのサービス応答又はサービス要求に応答できない旨の通知を含む。なお、自身のサーバ６０がサービス要求に係るサービスを提供しない場合には、サービス処理部２０２での処理を行わないため、回答を待たない。
【００６０】
そして、ステップ２０で、肯定（ＹＥＳ）の判断がされた場合、つまり回答が有った（回答有）場合には、回答が最初のサービス応答か否かを判断する（ステップ２１）。なお、最初のサービス応答には、自身のサービス処理部２０２でサービス要求に対する処理をした場合のサービス応答、及び、サービス要求転送／応答受信部２０６への他のサーバ６０から受信したサービス応答の内における最初のものをいう。
【００６１】
ステップ２１で、肯定（ＹＥＳ）の判断がされた場合、つまり最初のサービス応答である場合には、制御部２０１は、サービス送信部２０５からサービス要求をしたクライアント７０にサービス応答を送信（サービスを提供）する（ステップ２２）。そして、このサービス応答が、“採用”になる。
そして、制御部２０１は、回答に関する項目（図５に示した項目）をサービス状況蓄積部２０３にレコードとして記録する（ステップ２３）。
【００６２】
一方、ステップ２１で、否定（ＮＯ）の判断がされた場合、つまり最初のサービス応答でない場合には、制御部２０１は、回答に関する項目（図５に示した項目）をサービス状況蓄積部２０３にレコードとして記録する（ステップ２３）。
【００６３】
なお、複数のサーバ６０に対してサービス要求した場合には、複数のサーバ６０のすべてから回答を受信して、回答に関する項目をレコードとして記録するまで、ステップ２０〜２３が行われる。なお、複数のサーバ６０に対してサービス要求した場合であっても、全てのサーバ６０からの回答に関してレコードとして記録しなくてもよい。例えば、初めてのサービス要求に対しては、全てのサーバ６０からの回答に関してレコードとして記録し、２回目以降のサービス要求に対しては、早いものから５個などと基準を設けて回答をレコードとして記録してもよい。また、応答時間ＴＡＴに差がある場合には、下位のサーバ６０からの回答をレコードとして記録しないようにしてもよい。そして、時間を設定して（タイムアウトを設けて）、設定した時間が経過した後は、回答を待つことを中断してもよい。タイムアウトを設けることで、サーバ６０の待ち時間が削減され、サーバ６０の稼働率が向上する。
【００６４】
上記では、サービス要求と同一のサービス要求にサービス応答したレコードがある場合には、サービス状況蓄積部２０３のレコードに基づいて、サーバリストを作成し、サーバリストのサーバ６０にサービス応答を転送するとした。しかし、サービス要求と同一のサービス要求の回数が２回目、３回目などと少ない場合には、自身を除く他の全てのサーバ６０にサービス要求をブロードキャスト転送するとしてもよい。このようにすることで、サーバ６０の応答時間ＴＡＴのばらつきなどが分かる。
【００６５】
ここでは、同一のサービス要求とするが、全く同一であることを要せず、処理のルーチンが共通するなどの同種のサービス要求であってもよい。
【００６６】
次に、図１に示した情報処理システム１を例として、クライアントＡ１とサーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２との動作を説明する。なお、サーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２は、図２に示したサービス（サービス１〜４）を提供するとする。
【００６７】
まず、サーバ６０のサービス状況蓄積部２０３に、今回のサービス要求と同一のサービス要求に対してサービス応答がされたレコードがない場合、つまり図６のフローチャートのステップ１５で否定（ＮＯ）の判断がされた場合を説明する。
図７は、サーバ６０のサービス状況蓄積部２０３に、今回のサービス要求と同一のサービス要求に対してサービス応答がされたレコードがない場合を説明するシーケンス図である。
【００６８】
クライアントＡ１は、ＬＡＮ８１により、サーバＡ１に接続されている（図１参照）。よって、クライアントＡ１は、ＬＡＮ８１を介して、サーバＡ１にサービス１のサービス要求を行う（ステップ１０１。図７では、Ｓ１０１と表記する。）。以下では、サービス１のサービス要求を「サービス１要求」と、サービス１のサービス要求に対するサービス応答を、「サービス１応答」と、サービス１のサービス要求に対してサービス応答できない旨の通知を「サービス１応答不能通知」と表記する。
【００６９】
サーバＡ１のサービス要求受信部２０４は、クライアントＡ１からのサービス１要求を受信する。図６のフローチャートのステップ１４で説明したように、サーバＡ１の制御部２０１は、サービス状況蓄積部２０３をサービス１で検索する。この場合、サーバＡ１のサービス状況蓄積部２０３には、サービス１要求に対してサービス応答がされたレコードがない。よって、図６のフローチャートのステップ１９で説明したように、サーバＡ１の制御部２０１は、自身を除く他の全サーバＡ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２に対して、サービス１要求をサービス要求転送／応答受信部２０６から一斉に転送（送信）する（ブロードキャスト転送）（ステップ１０２）。
【００７０】
サーバＡ１は、図２に示したようにサービス１を提供するので、サーバＡ１の制御部２０１は、図６のフローチャートのステップ１２で説明したように、自身のサービス処理部２０２でサービス要求を処理する。それに合わせて、図６のフローチャートのステップ２０で説明したように、他のサーバＡ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２からの回答を待つ。前述したように、回答には、サービス１要求に対するサービス１応答の他、サービス１要求に応答できない旨の通知を含む。
【００７１】
次に、サーバＡ１のサービス要求転送／応答受信部２０６は、サーバＡ２からサービス１要求に対するサービス１応答を受信する（ステップ１０３）。図２に示すように、サーバＡ２は、サービス１を提供するので、サーバＡ２は、サービス１応答を送信する。すると、図６のフローチャートのステップ２１で説明したように、サーバＡ１の制御部２０１は、サーバＡ２からのサービス１応答がサービス１要求に対する最初のサービス応答であるか否かを判断する。ここでは、最初のサービス応答であることから、図６のフローチャートのステップ２２で説明したように、サーバＡ２からのサービス１応答をクライアントＡ１に送信する（ステップ１０４）。つまり、サーバＡ２からのサービス１応答が、“採用”となる。
【００７２】
次に、サーバＡ１の制御部２０１は、サーバＡ１のサービス処理部２０２からサービス１応答を受信する（ステップ１０５）。サーバＡ１のサービス処理部２０２からのサービス１応答は、サーバＡ２からのサービス１応答より後であって、最初のサービス１応答でない。よって、サーバＡ１のサービス１応答は、クライアントＡ１には送信されない。つまり、“不採用”となる。
【００７３】
次に、サーバＡ１のサービス要求転送／応答受信部２０６は、サーバＢ１から、サービス１応答不能通知を受信する（ステップ１０６）。図２から分かるように、サーバＢ１は、サービス１を提供しない。
そして、サーバＡ１のサービス要求転送／応答受信部２０６は、サーバＢ２からサービス１応答を受信する（ステップ１０７）。図２から分かるように、サーバＢ２は、サービス１を提供する。しかし、サーバＢ２からのサービス１応答は、最初のサービス１応答でないため、クライアントＡ１には送信されない。つまり、“不採用”となる。
【００７４】
同様にして、サーバＡ１のサービス要求転送／応答受信部２０６は、サーバＣ１から、サービス１応答不能通知を受信する（ステップ１０８）。図２から分かるように、サーバＣ１は、サービス１を提供しない。
そして、サーバＡ１のサービス要求転送／応答受信部２０６は、サーバＣ２からサービス１応答を受信する（ステップ１０９）。図２から分かるように、サーバＣ２は、サービス１を提供する。しかし、サーバＣ２からのサービス１応答は、最初のサービス１応答でないため、クライアントＡ１には送信されない。つまり、“不採用”となる。
なお、サーバＡ１、Ｂ２、Ｃ２のいずれかからのサービス１応答が、サーバＡ２からのサービス１応答より早ければ、そのサービス１応答が、クライアントＡ１に送信される。
【００７５】
ここでは、全てのサーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２からの回答を受信したのち、図６のフローチャートのステップ２３で説明したように、制御部２０１は、サーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２からのサービス１要求に対するそれぞれの回答に関する項目（図５に示した項目）をサービス状況蓄積部２０３にレコードとして記録する（ステップ１１０）。なお、サービス状況蓄積部２０３には、サービス１要求に関するレコードがなかったので、サービス１要求に対するレコードは、新規に作成される。
なお、制御部２０１は、サーバＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２から回答を受信したそれぞれのタイミングにおいて、サービス状況蓄積部２０３にレコードとして記録してもよい。
【００７６】
次に、クライアント７０が過去において、今回のサービス要求と同一のサービス要求に対してサービス応答がされたレコードがある場合を説明する。
図８は、サーバ６０のサービス状況蓄積部２０３に、過去において、今回のサービス要求と同じサービス要求に対してサービス応答がされたレコードがある場合を説明するシーケンス図である。つまり、図６のステップ１５において、肯定（ＹＥＳ）の判断がされた場合である。
【００７７】
クライアントＡ１は、ＬＡＮ８１により、サーバＡ１に接続されている（図１参照）。よって、クライアントＡ１は、ＬＡＮ８１を介して、サーバＡ１にサービス１要求を行う（ステップ２０１）。ステップ２０１は、図７のステップ１０１と同じである。
【００７８】
サーバＡ１のサービス要求受信部２０４は、クライアントＡ１からのサービス１要求を受信する。図６のフローチャートのステップ１４で説明したように、サーバＡ１の制御部２０１は、サービス状況蓄積部２０３をサービス１で検索する。この場合、サーバＡ１のサービス状況蓄積部２０３には、サービス１要求に対してサービス応答がされたレコードがある。よって、図６のフローチャートのステップ１６で説明したように、サービス１応答したサーバ６０に基づいてサーバリストを作成する。ここでのサーバリストは、一例として、サービス１応答可能なサーバＡ２、Ｂ２、Ｃ２がリストアップされているとする（図２参照）。そして、図６のフローチャートのステップ１７で説明したように、サーバリストにリストアップされたサーバ６０に、サービス１要求を転送する（ステップ２０２）。
【００７９】
サーバＡ１は、図２に示したようにサービス１を提供するので、サーバＡ１の制御部２０１は、図６のフローチャートのステップ１２で説明したように、自身のサービス処理部２０２でサービス要求を処理する。それに合わせて、図６のフローチャートのステップ２０で説明したように、他のサーバＡ２、Ｂ２、Ｃ２からの回答を待つ。
【００８０】
次に、サーバＡ１のサービス要求転送／応答受信部２０６は、サーバＡ２からサービス１要求に対するサービス１応答を受信する（ステップ２０３）。すると、図６のフローチャートのステップ２１で説明したように、サーバＡ１の制御部２０１は、サーバＡ２からのサービス１応答がサービス１要求に対する最初のサービス応答であるか否かを判断する。ここでは、最初のサービス応答であることから、図６のフローチャートのステップ２２で説明したように、サーバＡ２からのサービス１応答をクライアントＡ１に送信する（ステップ２０４）。つまり、サーバＡ２からのサービス１応答が、“採用”となる。
【００８１】
次に、サーバＡ１の制御部２０１は、サーバＡ１のサービス処理部２０２からサービス１応答を受信する（ステップ２０５）。サーバＡ１のサービス処理部２０２からのサービス１応答は、サーバＡ２からのサービス１応答より後であって、最初のサービス１応答でない。よって、サーバＡ１のサービス１応答は、クライアントＡ１には送信されない。つまり、“不採用”となる。
【００８２】
そして、サーバＡ１のサービス要求転送／応答受信部２０６は、サーバＢ２からサービス１応答を受信する（ステップ２０６）。しかし、サーバＢ２からのサービス１応答は、最初のサービス１応答でないため、クライアントＡ１には送信されない。つまり、“不採用”となる。
【００８３】
同様にして、サーバＡ１のサービス要求転送／応答受信部２０６は、サーバＣ２からサービス１応答を受信する（ステップ２０７）。しかし、サーバＣ２からのサービス１応答は、最初のサービス１応答でないため、クライアントＡ１には送信されない。つまり、“不採用”となる。
なお、サーバＡ１、Ｂ２、Ｃ２のいずれかからのサービス１応答が、サーバＡ２からのサービス１応答より早ければ、そのサービス１応答が、クライアントＡ１に送信される。
【００８４】
ここでは、サーバＡ１、Ａ２、Ｂ２、Ｃ２からの回答（サービス１応答）を受信したのち、図６のフローチャートのステップ２３で説明したように、制御部２０１は、サーバＡ１、Ａ２、Ｂ２、Ｃ２からのそれぞれの回答（サービス１応答）に関する項目（図５に示した項目）をサービス状況蓄積部２０３にレコードとして記録する（ステップ２０８）。この際、サービス状況蓄積部２０３にあったサービス１要求に関するレコードが更新されて（書き換えられて）もよく、追記されてもよい。
なお、制御部２０１は、サーバＡ１、Ａ２、Ｂ２、Ｃ２から回答（サービス１応答）を受信したそれぞれのタイミングにおいて、サービス状況蓄積部２０３にレコードとして記録してもよい。
【００８５】
以上説明したように、一つのサービス要求に対して、複数のサーバ６０がサービス提供可能な場合に、最初のサービス応答がクライアント７０に提供されるようになっている。ここでは、クライアント７０がサービス要求を行うサーバ６０が、そのサービスを提供する場合であっても、自身のサーバ６０を含めて、最初のサービス応答がクライアント７０に提供される。よって、クライアント７０は、サービスを提供可能なサーバ６０を選択することなく、サービス応答、つまりサービス提供が最も早く応答したサーバ６０から受けられる。
【００８６】
上記では、自身のサーバ６０がサービス要求に係るサービスを提供する場合に、自身のサーバ６０のサービス処理部２０２からのサービス応答が、他のサーバ６０によるサービス応答より遅いとした。これは、自身のサーバ６０が、先に依頼された他の処理で重くなっているときなどに生じる。このため、他のサーバ６０からのサービス応答が先になることがありうる。しかし、自身のサーバ６０によるサービス要求に対するサービス応答が、他のサーバ６０からのサービス応答より早い場合には、自身のサーバ６０がサービスを提供するサービス要求に対しては、他のサーバ６０にサービス要求を転送しないように構成してもよい。
【００８７】
（サーバリスト作成）
次に、図６のフローチャートのステップ１６のサーバリスト作成（サーバリストの作成方法）についての実施例を説明する。サーバリストは、サーバ６０のサービス状況蓄積部２０３に、過去において、今回のサービス要求と同じサービス要求に対するサービス応答がされたレコードがある場合に作成される。そして、サーバリストには、サービス要求を転送するサーバ６０がリストアップされる。
【００８８】
図９は、サーバリスト作成の実施例１を説明するフローチャートである。
実施例１では、サービス状況蓄積部２０３にサービス要求にサービス応答したレコードを検索して抽出したサーバ６０から、応答時間ＴＡＴが短いサーバ６０を特定し、そのサーバ６０を選択してサーバリストを作成する。つまり、サーバ６０の数を制限している。なお、特定とは、サーバ６０の内、応答時間ＴＡＴが短いサーバ６０を見つけ出すことをいう。
【００８９】
検索して抽出したレコードを、応答時間ＴＡＴが短い順に並び変える（ソートする）（ＴＡＴが短い順にソート）（ステップ３１）。そして、応答時間ＴＡＴが短い上位Ｎ個（Ｎは、１以上の整数）のサーバ６０を特定（選択）してサーバリストを作成する（ステップ３２）。上位Ｎ個にサーバ６０の数を限定することにより、サービス要求を転送するサーバ６０の数が抑制される。これにより、サーバ６０からの応答を待つ時間が短くなる。
【００９０】
ここで、応答時間ＴＡＴは、サーバ６０それぞれの直近（最新）の応答時間ＴＡＴであってもよい。直近において応答時間ＴＡＴが短かったことから、今回においても応答時間ＴＡＴが短いことが期待される。つまり、短い応答時間ＴＡＴで、今回のサービス要求に対するサービス応答を得ることが期待される。この場合、１回の応答に対応する。
また、応答時間ＴＡＴは、現時点から予め定められた時間遡った時点までの期間における最短の応答時間ＴＡＴであってもよい。このようにすることで、サーバ６０の応答に対する過去の実績が考慮される。この場合も、１回の応答に対応する。なお、現時点から予め定められた時間遡った時点までの期間とすることで、過去の全ての期間とした場合に比べ、情報処理システム１の時間の経過に伴う状態の変化が反映されやすい。
【００９１】
さらに、応答時間ＴＡＴは、サーバ６０毎に、現時点から予め定められた時間遡った時点までの期間における、予め定められた複数の回数の応答における応答時間ＴＡＴの平均値としてもよい。このときは、応答時間ＴＡＴを平均応答時間ＴＡＴａｖに置き換えればよい。なお、現時点から予め定められた時間遡った時点までの期間とすることで、過去の全ての期間とした場合に比べ、情報処理システム１の時間の経過に伴う状態の変化が反映されやすい。なお、回数が同じであれば、複数の回数の応答時間ＴＡＴの和であってもよい。このときは、応答時間ＴＡＴを和応答時間ＴＡＴｓｕｍに置き換えればよい。
なお、上記では、平均応答時間ＴＡＴａｖとしたが、いわゆる機械学習により応答時間ＴＡＴの変化を学習させ、応答時間ＴＡＴが短いサーバ６０を予測して、サーバ６０を選択してもよい。
【００９２】
上記における現時点から予め定められた時間遡った時点とは、例えば、情報処理システム１が動作を継続的に行うことによって、一つのサービス要求に対する応答時間ＴＡＴに変化が見られた時点をいう。例えば、応答時間ＴＡＴが以前に比べて遅くなったことが感じられるようになった時点である。
【００９３】
図１０は、サーバリスト作成の実施例２を説明するフローチャートである。
実施例２では、応答時間ＴＡＴに閾値時間Ｔｔｈを設け、閾値時間Ｔｔｈより短い応答時間ＴＡＴのサーバ６０を特定（選択）して、サーバリストを作成する。
【００９４】
検索して抽出したレコードから、応答時間ＴＡＴが閾値時間Ｔｔｈよりも短い（ＴＡＴ＜Ｔｔｈ）レコードを抽出する（ステップ４１）。そして、抽出されたレコードのサーバ６０をリストアプしてサーバリストを作成する（ステップ４１）。
ここで、応答時間ＴＡＴが閾値時間Ｔｔｈ以下（ＴＡＴ≦Ｔｔｈ）としてもよい。
【００９５】
なお、応答時間ＴＡＴが閾値時間Ｔｔｈよりも短いレコードが抽出されない場合には、検索されたレコードにおける最短の応答時間ＴＡＴに基づいて、閾値時間Ｔｔｈを設定し直すとよい。
応答時間ＴＡＴは、サーバ６０の通信性能及び処理能力などの応答性能を反映すると推定される。このようにしてサーバリストを作成することで、応答性能の高いサーバ６０が特定され、そのサーバ６０にサービス要求されることになり、クライアント７０がサービス応答を受信するまでの時間が短くなる。
【００９６】
また、実施例１と同様に、応答時間ＴＡＴが閾値時間Ｔｔｈよりも短いレコードを応答時間ＴＡＴが短い順にソートし、上位Ｎ個（Ｎは、１以上の整数）のサーバ６０を選択してサーバリストを作成してもよい。
【００９７】
そして、応答時間ＴＡＴは、実施例１と同様に、サーバ６０それぞれの直近（最新）の応答時間ＴＡＴであってもよい。また、応答時間ＴＡＴは、現時点から予め定められた時間遡った時点までの期間における最短の応答時間ＴＡＴであってもよい。さらに、応答時間ＴＡＴは、サーバ６０それぞれにおいて、現時点から予め定められた時間遡った時点までの期間における、予め定められた複数の回数の応答における応答時間ＴＡＴの平均値としてもよい。
【００９８】
図１１は、サーバリスト作成の実施例３を説明するフローチャートである。
実施例３では、サービス要求と同一のサービス要求に対するサービス応答を含む、他のサービス要求に対するサービス応答の応答時間ＴＡＴが短いサーバ６０を特定（選択）してサーバリストを作成する。
【００９９】
検索して抽出したレコードから、サーバ６０毎に、サービス要求と同一のサービス要求に対するサービス応答、及び、他のサービス要求に対するサービス応答の応答時間ＴＡＴについて、予め定められた回数の平均応答時間ＴＡＴａｖを算出する（ステップ５１）。そして、平均応答時間ＴＡＴａｖを短い順にソートする（ステップ５２）。そして、平均応答時間ＴＡＴａｖが短い上位Ｎ個（Ｎは、１以上の整数）のサーバを特定（選択）してサーバリストを作成する（ステップ５３）。
【０１００】
サービス要求と同一のサービス要求に対するサービス応答の応答時間ＴＡＴ及び他のサービス要求に対するサービス応答の応答時間ＴＡＴがともに短いと、サーバ６０は、通信性能及び処理能力などの応答性能が高いと推定される。よって、サービス要求と同一のサービス要求に対するサービス応答の応答時間ＴＡＴに加え、他のサービス要求に対するサービス応答の応答時間ＴＡＴを加味することで、応答性能が高いサーバ６０が選択される。
【０１０１】
なお、サービス毎に応答時間ＴＡＴが異なる場合には、サービス毎に標準的な応答時間ＴＡＴ（標準応答時間ＴＡＴｓｔ）を設定し、標準応答時間ＴＡＴｓｔで応答時間ＴＡＴを正規化（ノーマライズ）してもよい。
【０１０２】
また、平均応答時間ＴＡＴａｖは、現時点から予め定められた時間遡った時点までの期間における、応答時間ＴＡＴによって求めてもよい。現時点から予め定められた時間遡った時点までの期間とすることで、過去の全ての期間とした場合に比べ、情報処理システム１の時間の経過に伴う状態の変化が反映されやすい。
【０１０３】
実施例１〜３では、応答時間ＴＡＴ又は平均応答時間ＴＡＴａｖに基づいて定められた規則を適用して、サーバ６０が選択されてサーバリストが作成された。
次に、依頼状況に応じて、応答時間ＴＡＴ又は平均応答時間ＴＡＴａｖに基づいて定められた規則とは異なる規則をさらに適用した実施例４、５を説明する。つまり、実施例１〜３と同様なステップの後に、異なる規則によるステップが実行される。ここで、依頼状況とは、下記に示すように、サービス要求のサービス応答を安定して得たい場合や確実にサービス応答（サービス）を得ることを優先する場合など、応答時間ＴＡＴ又は平均応答時間ＴＡＴａｖによるサーバ６０の特定に付加してサーバ６０を特定したい状況をいう。
【０１０４】
図１２は、サーバリスト作成の実施例４を説明するフローチャートである。
まず、実施例１と同様なステップが実行される。つまり、検索して抽出したレコードを、応答時間ＴＡＴが短い順に並び変える（ソートする）（ＴＡＴが短い順に第１ソート）（ステップ６１）。そして、応答時間ＴＡＴが短い上位Ｎ個（Ｎは、１以上の整数）のサーバ６０を特定（選択）する（ステップ６２）。ここで、ステップ６１は、図９の実施例１のステップ３１と同じであり、ステップ６２は、図９の実施例１のステップ３２と同様なステップである。
次に、これらのサーバ６０を、サービス要求と同一のサービス要求が転送された回数（依頼回数）が多い順に第２ソートする（ステップ６３）。そして、依頼回数の多い上位Ｍ個（Ｍは、１以上Ｎ以下の整数）のサーバ６０を特定（選択）してサーバリストを作成する（ステップ６４）。
【０１０５】
依頼回数の多いサーバ６０は、サービス要求に対して安定してサービス応答すると推定される。よって、依頼回数の多いサーバ６０を選択することで、サービス要求のサービス応答が安定して得られることが期待される。
【０１０６】
上記では、実施例１と同様の、応答時間ＴＡＴが短いレコードにソートし、上位Ｎ個のサーバ６０を選択するという応答時間ＴＡＴに基づいて定められた規則に、サービス要求と同一のサービス要求が転送された回数（依頼回数）が多い順という異なる規則をさらに適用した。
なお、ステップ６１、６２において、実施例１と同様の応答時間ＴＡＴが短いレコードをソートし、上位Ｎ個のサーバ６０を選択するステップを用いたが、実施例２と同様に、応答時間ＴＡＴが閾値時間Ｔｔｈより短いレコードを抽出するようにしてもよい。また、実施例３と同様に、サービス要求と同一のサービス要求に対するサービス応答の応答時間ＴＡＴと、他のサ-ビス要求に対する応答時間ＴＡＴとの平均応答時間ＴＡＴａｖを短い順にソートしてもよい。
【０１０７】
次に、サービス要求が転送されるサーバ６０の数を直前と今回とで変化させてサーバリストを作成する実施例５について説明する。
図１３は、サーバリスト作成の実施例５を説明するフローチャートである。
まず、実施例１と同様なステップが実行される。つまり、検索して抽出したレコードを、応答時間ＴＡＴが短い順に並び変える（ソートする）（ＴＡＴが短い順にソート）（ステップ７１）。ここで、ステップ７１は、図９の実施例１のステップ３１と同じである。
次に、直前にサービス要求と同一のサービス要求を転送したサーバ６０がＩ個であった場合、Ｊだけ多いＫ個を算出する（Ｋ＝Ｉ＋Ｊ）（Ｉ、Ｊ、Ｋは、１以上の整数）（ステップ７２）。そして、応答時間ＴＡＴが短い上位Ｋ個のサーバ６０を特定（選択）してサーバリストを作成する（ステップ７３）。
【０１０８】
上記では、実施例１と同様の、応答時間ＴＡＴが短いレコードにソートし、上位Ｎ個のサーバ６０を選択するという応答時間ＴＡＴに基づいて定められた規則に、直前において今回のサービス要求と同一のサービス要求がされた転送されたサーバ６０の数を、今回において増加させるという異なる規則をさらに適用した。サービス要求を転送するサーバ６０の数を増やせば、サービス応答が得られやすくなる。よって、この実施例５は、サービス要求のサービス応答を確実に得たい場合に有効である。つまり、確実にサービス応答（サービス）を得ることを優先する場合に適用するとよい。
【０１０９】
なお、ステップ７１において、実施例１と同様に、応答時間ＴＡＴが短いレコードにソートするステップを用いたが、実施例２と同様に、応答時間ＴＡＴが閾値時間Ｔｔｈより短いレコードを抽出するようにしてもよい。また、実施例３と同様に、サービス要求と同一のサービス要求に対するサービス応答の応答時間ＴＡＴと、他のサ-ビス要求に対する応答時間ＴＡＴとの平均応答時間ＴＡＴａｖが短い順にソートしてもよい。
【０１１０】
次に、これまで説明した実施例１〜５では、過去におけるサービス要求と同一のサービス要求に対するサービス応答のレコードを検索して、サービス要求を転送するサーバ６０を選択した。しかし、情報処理システム１（図１参照）に、サーバ６０の増減があったり、提供するサービスの増減があったりした場合、これらの事情はサービス状況蓄積部２０３に反映されない。
そこで、次に示す実施例６では、予め定められた条件を満たす（合致する）場合には、自身を除く他のサーバ６０のすべてを選択したサーバリストを作成する。
【０１１１】
図１４は、サーバリスト作成の実施例６を説明するフローチャートである。
一定の期間が経過したなど、サーバ６０の制御部２０１によって、予め定められた条件を満たすか否かが判断される（ステップ８１）。
ステップ８１において、肯定（ＹＥＳ）の判断がされた場合、つまり予め定められた条件が満たされた場合には、情報処理システム１に含まれる自身を除く他の全てのサーバ６０（全サーバ６０）を選択して、サーバリストを作成する（ステップ８２）。
ステップ８１において、否定（ＮＯ）の判断がされた場合、つまり予め定められた条件が満たされない場合には、これまで説明した実施例１〜５を実行する。
【０１１２】
ここで、サービス要求が転送されるサーバ６０は、サービス要求に係るサービスを提供していなくてもよい。図４のサービス状況蓄積部２０３及び図７のシーケンス図で説明したように、サービス要求が転送された（転送先の）サーバ６０がサービス要求に係るサービスを提供しない場合には、サービス要求を転送した（転送元の）サーバ６０は、サービス要求にサービス応答できない旨の回答を受信する。また、転送先のサーバ６０がサービス要求に係るサービスを提供する場合には、転送元のサーバ６０は、サービス要求に対するサービス応答を受信する。これにより、サービス状況蓄積部２０３が更新される。これにより、一定の期間内などに行われたサーバ６０の増減、提供するサービスの増減など情報処理システム１の変化が、サービス状況蓄積部２０３に反映される。
【０１１３】
予め定められた条件とは、上記のように予め定められた期間、例えば１年、１か月などの期間であってもよく、サーバ６０の増減又は／及び提供するサービスの増減などの情報処理システム１の変更時などであってもよい。
また、実施例１のステップ３２（図９参照）において、選択しようとするサーバ６０がＮ個に満たない場合を、ステップ８１における予め定められた条件として、ステップ８２を実行するようにしてもよい。実施例３のステップ５３（図１１参照）、実施例４のステップ６２、ステップ６４（図１２参照）及び実施例５のステップ７３（図１３参照）に対して適用してもよい。また、実施例２のステップ４２（図１０参照）において、抽出されたレコードのサーバの数が予め定められた数に満たない場合を、ステップ８１における予め定められた条件として、ステップ８２を実行するようにしてもよい。
これらの場合、実施例１〜５のフローチャートに続けて、実施例６を実行することになる。
【０１１４】
以上説明したように、本実施の形態では、応答時間ＴＡＴ又は平均応答時間ＴＡＴａｖに基づいた規則に基づいて、サービス要求を行うように構成している。
一方、本実施の形態と異なり、負荷の低いサーバを選択して、サービス要求を行うように構成することも可能である。しかし、この場合には、複数のサーバの負荷情報を予め取得しておくことが必要となる。このため、複数のサーバ間で負荷情報を交換するため、ネットワーク上のトラフィックが増加してしまう。
これに対し、本実施の形態では、実際のサービス要求に対するサービス応答から得られた応答時間ＴＡＴ又は平均応答時間ＴＡＴａｖに基づいた規則に基づいて、サービス要求を行うように構成している。つまり、過去のサービス要求に対するサービス応答の状況（サービス状況）を蓄積し、これに基づいて、サービス要求を転送するサーバ６０を選択している。よって、負荷情報を交換することを要せず、ネットワーク上のトラフィックを増加させることがない。また、応答時間ＴＡＴ又は平均応答時間ＴＡＴａｖの短いサーバ６０に、サービス要求が転送される。そして、最も早く得られたサービス応答がクライアント７０に送信されるので、サービスの提供が迅速に行われる。
【０１１５】
上記において説明した実施例１〜６は、初期設定（コンフィグ）によっていずれかが選択されるようにしてもよい。また、サービス要求毎又はサーバ毎に予め定められていてもよい。また、クライアント７０が選択してもよい。実施例４、５における、実施例１〜３と同様なステップの選択についても同じようにすればよい。
【０１１６】
なお、サービス要求転送／応答受信部２０６が、同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段の一例であり、依頼に対する応答を受信する受信手段の一例である。また、サービス状況蓄積部２０３が、依頼を送信してから応答を受信するまでに要した時間である応答時間の情報を、応答を行ったサーバに対応付けて保持する保持手段の一例である。そして、制御部２０１が、サービスと同一のサービスの依頼を要求する際に、保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段の一例である。
また、サービス要求転送／応答受信部２０６が、同一の要求を複数の送信先へ送信する送信手段の一例であり、要求に対する応答を受信する受信手段の一例である。そして、制御部２０１が、要求を送信してから応答を受信するまでに要した時間に関して予め定められた規則に基づき、以後における要求と同種の要求を送信する際の送信先を制限する通信制御手段の一例である。
【０１１７】
なお、同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段、依頼に対する応答を受信する受信手段、依頼を送信してから応答を受信するまでに要した時間である応答時間の情報を、応答を行ったサーバに対応付けて保持する保持手段、サービスと同一のサービスの依頼を要求する際に、保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段する手段を、プログラムによってコンピュータに機能させることができる。このとき、プログラムは、記憶媒体に格納して提供してもよく、また、通信手段によって提供してもよい。その場合、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
【０１１８】
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体には、デジタル・バーサタイル・ディスク（ＤＶＤ）フォーラムによって策定された規格に基づくＤＶＤ、コンパクトディスク（ＣＤ）、ブルーレイ・ディスク（Blue-ray（登録商標） Disk）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ＨＤＤ、ＲＯＭ、フラッシュメモリなどが含まれる。
【０１１９】
通信手段には、ＬＡＮ、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、などに用いられる有線ネットワーク、無線ネットワーク、これらが複合されたネットワークなどが含まれる。
【０１２０】
以上、本発明の実施形態について説明した。本発明の技術的思想の範囲から逸脱しない様々な変更や構成の代替は、本発明に含まれる。
【符号の説明】
【０１２１】
１…情報処理システム、１０、１１、１２、１３…イントラネット、２０…ネットワーク、３０、３１、３２、３３…ルータ、４０、４１、４２…サブドメイン、５０…ブリッジ、６０、６１、６２…サーバ、７０、７１、７２…クライアント、８０、８１、８２…ネットワーク（ＬＡＮ）、１００…ハードウエア構成、２０１…制御部、２０２…サービス処理部、２０３…サービス状況蓄積部、２０４…サービス要求受信部、２０５…サービス送信部、２０６…サービス要求転送／応答受信部、２０７…外部サービス要求受信／応答送信部、２１０…サービスバス
【図１】
2019160232.tif 000003
【図２】
2019160232.tif 000004
【図３】
2019160232.tif 000005
【図４】
2019160232.tif 000006
【図５】
2019160232.tif 000007
【図６】
2019160232.tif 000008
【図７】
2019160232.tif 000009
【図８】
2019160232.tif 000010
【図９】
2019160232.tif 000011
【図１０】
2019160232.tif 000012
【図１１】
2019160232.tif 000013
【図１２】
2019160232.tif 000014
【図１３】
2019160232.tif 000015
【図１４】
2019160232.tif 000016