(57)【特許請求の範囲】
【請求項１】
複数のプロキシサーバを含むネットワークにおいて、クライアントから送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに転送するアクセス要求転送方法をコンピュータに実行させるアクセス要求転送プログラムであって、
前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
プロキシサーバを識別するプロキシ情報を、前記アクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部に格納する対応づけ格納手順と、
アクセス要求をクライアントから受信すると、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定手順と、
前記判定手順によって現にアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されている前記プロキシ情報によって識別される前記プロキシサーバであって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送手順と、
前記判定手順によって現にアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送手順と、
を実行させ、
前記サーバとして用いられるコンピュータに、
前記第二のアクセス要求転送手順によって転送された前記アクセス要求を前記プロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ情報を蓄積しているプロキシ記憶部に格納するプロキシ情報格納手順と、
前記プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出し、読み出したプロキシ情報を、前記アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信するアクセス応答送信手順と、
を実行させることを特徴とするアクセス要求転送プログラム。
【請求項２】
前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
前記アクセス要求に応答するアクセス応答とともに前記プロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバであって当該アクセス要求を受信したプロキシサーバ以外のプロキシサーバに、当該プロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス要求を転送可能な状況であるか否かを確認する要求である確認要求を送信する確認要求送信手順と、
前記確認要求送信手順によって送信された前記確認要求に対応する判定結果を他のプロキシサーバから受信すると、当該確認要求によって現にアクセス要求を転送可能な状況であるか否かを確認したサーバを示す前記サーバ情報と当該他のプロキシサーバを示す前記プロキシ情報との対応づけに対応づけて、受信した判定結果を前記対応づけ記憶部に格納する判定結果格納手順と、
をさらに実行させ、
前記確認要求送信手順によって送信された前記確認要求を他のプロキシサーバから受信するプロキシサーバとして用いられるコンピュータに、
前記確認要求を受信したプロキシサーバが、前記アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する確認要求判定手順と、
前記確認要求判定手順によって判定された判定結果を当該確認要求の送信元のプロキシサーバに送信する判定結果送信手順と、
をさらに実行させ、
前記第一のアクセス要求転送手順は、現にアクセス要求を転送可能な状況である旨の判定結果と対応づけられているプロキシサーバに、当該アクセス要求を転送することを特徴とする請求項１に記載のアクセス要求転送プログラム。
【請求項３】
前記アクセス応答送信手順は、前記プロキシ記憶部に蓄積されている前記プロキシ情報の内、前記アクセス要求の転送元のプロキシサーバ以外のプロキシサーバを示すプロキシ情報を読み出し、読み出した当該プロキシ情報をアクセス応答とともに送信することを特徴とする請求項２に記載のアクセス要求転送プログラム。
【請求項４】
前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
前記アクセス応答とともに前記プロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバであって当該アクセス応答を受信したプロキシサーバ以外のプロキシサーバと、ピアツーピアネットワークを構築する構築手順をさらに実行させ、
前記確認要求送信手順は、前記構築手順によって構築された前記ピアツーピアネットワークを介して前記確認要求を送信し、
前記判定結果送信手順は、前記判定結果を前記ピアツーピアネットワークを介して送信することを特徴とする請求項２〜３に記載のアクセス要求転送プログラム。
【請求項５】
前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
前記アクセス応答とともに前記プロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバであって当該アクセス応答を受信したプロキシサーバ以外のプロキシサーバと、ピアツーピアネットワークを構築する構築手順をさらに実行させ、
前記アクセス要求に応答するアクセス応答を前記サーバから受信すると、当該アクセス応答を受信したプロキシサーバを識別する前記プロキシ情報並びに当該アクセス要求が指定するサーバを識別する前記サーバ情報並びに当該サーバに現にアクセス可能な状況である旨を示す情報の対応づけを、前記ピアツーピアネットワークを介して他のプロキシサーバに通知する通知手順と、
前記通知手順によって前記ピアツーピアネットワークを介して前記対応づけを通知されるプロキシサーバとして用いられるコンピュータに、
前記通知手順によって通知された前記プロキシ情報と前記サーバ情報と当該サーバに現にアクセス可能な状況である旨を示す情報との対応づけを、前記対応づけ記憶部に格納する通知後格納手順をさらに実行させることを特徴とする請求項２〜４のいずれか一つに記載のアクセス要求転送プログラム。
【請求項６】
複数のプロキシサーバを含むネットワークにおいて、クライアントから送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに転送するアクセス要求転送システムであって、
前記アクセス要求をクライアントから受信するプロキシサーバは、
プロキシサーバを識別するプロキシ情報を、前記アクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部に格納する対応づけ格納手段と、
アクセス要求をクライアントから受信すると、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定手段と、
前記判定手段によって現にアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されている前記プロキシ情報によって識別される前記プロキシサーバであって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送手段と、
前記判定手段によって現にアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送手段と、
を備え、
前記サーバは、
前記第二のアクセス要求転送手段によって転送された前記アクセス要求を前記プロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ情報を蓄積しているプロキシ記憶部に格納するプロキシ情報格納手段と、
前記プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出し、読み出したプロキシ情報を、前記アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信するアクセス応答送信手段と、
を備えることを特徴とするアクセス要求転送システム。
【請求項７】
複数のプロキシサーバを含むネットワークにおいて、クライアントから送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに転送するアクセス要求転送方法であって、
前記アクセス要求をクライアントから受信するプロキシサーバは、
プロキシサーバを識別するプロキシ情報を、前記アクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部に格納する対応づけ格納工程と、
アクセス要求をクライアントから受信すると、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定工程と、
前記判定工程によって現にアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されている前記プロキシ情報によって識別される前記プロキシサーバであって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送工程と、
前記判定工程によって現にアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送工程と、
を含み、
前記サーバは、
前記第二のアクセス要求転送工程によって転送された前記アクセス要求を前記プロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ情報を蓄積しているプロキシ記憶部に格納するプロキシ情報格納工程と、
前記プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出し、読み出したプロキシ情報を、前記アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信するアクセス応答送信工程と、
を含むことを特徴とするアクセス要求転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アクセス要求転送システム、アクセス要求転送方法およびアクセス要求転送プログラムに関する。
【背景技術】
【０００２】
クライアントからサーバにアクセスする際に、クライアントが、クライアントを利用する利用者によって予め設定されたプロキシサーバを介してサーバにアクセスするシステムがある。このようなシステムにおいて、例えば、予め設定されたプロキシサーバからサーバにアクセスすることが可能でない場合（例えば、ネットワークに障害が発生した場合など）がある。このため、このようなシステムでは、従来より、クライアントが用いるプロキシサーバを変更する手法が複数知られている。
【０００３】
例えば、プロキシサーバを手動で変更する手法が知られている。具体的な一例をあげて説明すると、例えば、クライアントの設定を、当該クライントを利用する利用者が変更することにより、クライアントが用いるプロキシサーバを手動で変更する手法が知られている。
【０００４】
また、例えば、プロキシサーバを自動で変更する手法が知られている。具体的な一例をあげて説明すると、例えば、クライアントが、使用するネットワークに応じて、用いるプロキシサーバを自動で選択して変更する手法が知られている。また、例えば、クライアントが、サーバ（ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ））ごとに用いるプロキシサーバを自動で変更する手法が知られている。また、例えば、特許文献１には、プロキシサーバの通信負荷が増大した際に、クライアントが、利用者が予め設定した別のプロキシサーバに自動で変更する手法が開示されている。
【０００５】
【特許文献１】特開２００２−２７１４１５号公報（第５−１２頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上記した従来の手法では、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることができないという課題があった。
【０００７】
例えば、上記した手動で変更する手法では、クライアントは、クライアントを管理する管理者によって予め設定されたプロキシサーバを介して、サーバにアクセスする。ここで、クライアントは、予め設定されたプロキシサーバからサーバにアクセスすることが可能ではなくなった場合（例えば、ネットワークに障害が発生）には、管理者によって、別のプロキシサーバ（サーバにアクセスすることが可能であるプロキシサーバ）に変更される。その後、クライアントは、サーバにアクセスする。このため、上記した手動で変更する手法では、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることができなかった。
【０００８】
また、例えば、上記した自動で変更する手法では、サーバへのアクセス状態（アクセスすることが可能であるか否か）に応じて設定を切り替えることができなかった。つまり、予め設定されたプロキシサーバからサーバにアクセスすることが可能ではなくなった場合には、当該アクセス状態に応じて設定を変更することができなかった。このため、上記した自動で変更する手法では、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることができなかった。
【０００９】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることが可能であるアクセス要求転送システム、アクセス要求転送方法およびアクセス要求転送プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、このアクセス要求転送システムは、複数のプロキシサーバを含むネットワークにおいて、クライアントから送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに転送するアクセス要求転送方法をコンピュータに実行させるアクセス要求転送プログラムであって、前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、プロキシサーバを識別するプロキシ情報を、前記アクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部に格納する対応づけ格納手順と、アクセス要求をクライアントから受信すると、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定手順と、前記判定手順によって現にアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されている前記プロキシ情報によって識別される前記プロキシサーバであって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送手順と、前記判定手順によって現にアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送手順と、を実行させ、前記サーバとして用いられるコンピュータに、前記第二のアクセス要求転送手順によって転送された前記アクセス要求を前記プロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ情報を蓄積しているプロキシ記憶部に格納するプロキシ情報格納手順と、前記プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出し、読み出したプロキシ情報を、前記アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信するアクセス応答送信手順と、を実行させることを要件とする。
【発明の効果】
【００１１】
開示のアクセス要求転送システムによれば、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることが可能である。
【発明を実施するための最良の形態】
【００１２】
以下に添付図面を参照して、この発明に係るアクセス要求転送システム、アクセス要求転送方法およびアクセス要求転送プログラムの実施例を詳細に説明する。なお、以下では、実施例１に係るアクセス要求転送システムの概要、アクセス要求転送システムの構成および処理の流れを順に説明し、その後、その他の実施例について説明する。
【実施例１】
【００１３】
［アクセス要求転送システムの概要］
まず最初に、図１を用いて、実施例１に係るアクセス要求転送システムの概要を説明する。図１は、実施例１に係るアクセス要求転送システムの概要を説明するための図である。
【００１４】
同図に示すように、実施例１に係るアクセス要求転送システムは、複数のプロキシサーバと、クライアントと、サーバとを含むものである。また、複数のプロキシサーバと、クライアントと、サーバとは、ネットワークを介して接続している。ここで、実施例１に係るアクセス要求転送システムは、クライアント（ユーザ端末）から送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに、プロキシサーバを介して転送する。なお、アクセス要求とは、例えば、特定のサーバと情報の送受信を行う要求が該当する。
【００１５】
なお、以下では、実施例１に係るアクセス要求転送システムは、一つのクライアントと、複数のプロキシサーバ（図１に示す例では、「１」および「２」）とを有するものとして説明する。また、実施例１に係るアクセス要求転送システムは、複数のサーバを有し、その内の一つのサーバ（図１に示す例では、サーバ「Ａ」）と情報の送受信をすることを要求するアクセス要求を、クライアントが送信した場合を例に説明する。
【００１６】
そして、以下で説明するように、実施例１に係るアクセス要求転送システムは、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることが可能である。
【００１７】
なお、以下では、まず、プロキシサーバ「１」からサーバにアクセス可能である場合について説明し、その後、プロキシサーバ「１」からサーバにアクセス可能でない場合について説明する。
【００１８】
［アクセス可能時］
まず、プロキシサーバ「１」からサーバにアクセス可能である場合について説明する。実施例１に係るアクセス要求転送システムでは、図１の（１）に示すように、プロキシサーバが、サーバを識別する「サーバ情報」とプロキシサーバを識別する「プロキシ情報」とを対応づけて記憶する対応づけ記憶部を有する。
【００１９】
また、実施例１に係るアクセス要求転送システムでは、図１の（２）に示すように、サーバが、プロキシ情報を蓄積しているプロキシ記憶部を有する。例えば、プロキシ記憶部は、図１の（２）に示す例では、プロキシ情報「２」を記憶する。
【００２０】
このような記憶部を有するプロキシサーバとサーバとを有する実施例１に係るアクセス要求転送システムでは、図１の（３）に示すように、クライアントが、アクセス要求をプロキシサーバに送信する。例えば、クライアントは、サーバ「Ａ」と情報の送受信をすることを要求するアクセス要求を、プロキシサーバ「１」に送信する。
【００２１】
そして、実施例１に係るアクセス要求転送システムでは、図１の（４）に示すように、プロキシサーバが、アクセス要求をクライアントから受信する。そして、実施例１に係るアクセス要求転送システムでは、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する。図１の例を用いて説明すると、プロキシサーバ「１」は、サーバ「Ａ」にアクセス可能であるか否かを判定する。
【００２２】
そして、実施例１に係るアクセス要求転送システムでは、図１の（４）において、現にアクセス可能な状況であると判定すると、図１の（５）に示すように、プロキシサーバが、アクセス要求が指定するサーバに、当該アクセス要求を転送する。例えば、プロキシサーバ「１」は、クライアントから受信したアクセス要求を、サーバ「Ａ」に転送する。
【００２３】
そして、実施例１に係るアクセス要求転送システムでは、図１の（６）に示すように、転送されたアクセス要求をプロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ記憶部に格納する。例えば、サーバは「Ａ」は、図１の（６）に示す例では、プロキシサーバ「１」からアクセス要求を受信する。そして、サーバ「Ａ」は、プロキシサーバ「１」を識別するプロキシ情報「１」を、プロキシ記憶部に格納する。
【００２４】
このように、サーバは、当該サーバにアクセスすることが可能であるプロキシサーバを識別するプロキシ情報を、プロキシ記憶部に蓄積するものである。なお、プロキシ記憶部に格納されているプロキシ情報「２」は、プロキシ情報「１」と同様の処理によって、プロキシ記憶部に格納されるものである。例えば、サーバは、プロキシサーバ「２」から転送されたアクセス要求を受信すると、プロキシ情報「２」を、プロキシ記憶部に格納する。
【００２５】
そして、実施例１に係るアクセス要求転送システムでは、図１の（７）に示すように、サーバは、プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出す。そして、サーバは、読み出したプロキシ情報を、アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信する。
【００２６】
例えば、サーバ「Ａ」は、プロキシ記憶部からプロキシ情報「２」を読み出す。そして、サーバ「Ａ」は、プロキシ情報「２」を、アクセス応答とともにプロキシサーバ「１」に送信する。
【００２７】
そして、実施例１に係るアクセス要求転送システムでは、図１の（８）に示すように、プロキシサーバが、プロキシ情報をアクセス応答とともにサーバから受信する。そして、実施例１に係るアクセス要求転送システムでは、プロキシサーバが、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて、対応づけ記憶部に格納する。
【００２８】
例えば、プロキシサーバが、サーバ「Ａ」からプロキシ情報「２」を受信した場合を例に、具体的に説明する。プロキシサーバ「１」は、サーバ情報「Ａ」に対応づけて、プロキシ情報「２」を、対応づけ記憶部に格納する。
【００２９】
このように、プロキシサーバは、サーバから、当該サーバにアクセスすることが可能であるプロキシサーバを識別するプロキシ情報を受信する。そして、プロキシサーバは、サーバ情報毎に、当該サーバ情報によって識別されるサーバから受信したプロキシ情報（当該サーバにアクセスすることが可能であるプロキシサーバを識別するプロキシ情報）を、対応づけ記憶部に、蓄積するものである。
【００３０】
そして、実施例１に係るアクセス要求転送システムでは、プロキシサーバが、図１の（９）に示すように、サーバから受信したアクセス応答を、クライアントに転送する。
【００３１】
［アクセス不可時］
次に、プロキシサーバ「１」からサーバにアクセス可能でない場合について説明する。なお、実施例１に係るアクセス要求転送システムでは、対応づけ記憶部が、図１の（１）に示すように、プロキシ情報「２」とサーバ情報「Ａ」とを対応づけて記憶するものとして説明する。
【００３２】
実施例１に係るアクセス要求転送システムでは、上記した図１の（４）において、プロキシサーバが、現にアクセス可能な状況でないと判定する。そして、実施例１に係るアクセス要求転送システムでは、プロキシサーバが、アクセス要求が指定するサーバを識別するサーバ情報を用いて対応づけ記憶部を検索する。そして、プロキシサーバは、図１の（１０）に示すように、当該サーバ情報に対応づけて記憶されているプロキシ情報によって識別されるプロキシサーバに、当該アクセス要求を転送する。
【００３３】
例えば、プロキシサーバ「１」は、サーバ「Ａ」にアクセス可能な状況ではないと判定すると、対応づけ記憶部を検索する。そして、プロキシサーバ「１」は、サーバ情報「Ａ」に対応づけられているプロキシ情報「２」を、対応づけ記憶部から読み出す。そして、プロキシサーバ「１」は、クライアントから受信したアクセス要求を、プロキシサーバ「２」に転送する。
【００３４】
そして、実施例１に係るアクセス要求転送システムでは、図１の（１１）に示すように、プロキシサーバ「２」が、プロキシサーバ「１」から転送されたアクセス要求をサーバ「Ａ」に転送する。
【００３５】
そして、実施例１に係るアクセス要求転送システムでは、図１の（１２）から（１４）に示すように、アクセス応答がサーバからクライアントに送信される。
【００３６】
このようなことから、実施例１に係るアクセス要求転送システムは、上記した如く、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることが可能である。
【００３７】
［アクセス要求転送システムの構成］
次に、図２を用いて、図１に示したアクセス要求転送システムの構成を説明する。以下では、まず、クライアントの構成について説明し、続いて、プロキシサーバの構成について説明する。その後、サーバの構成について説明する。なお、図２は、実施例１に係るアクセス要求転送システムの構成の一例を説明するためのブロック図である。
【００３８】
なお、以下では、アクセス要求転送システムが、一つのクライアント１００と、二つのプロキシサーバ２００とを有するものとして説明する。また、アクセス要求転送システムは、複数のサーバ３００を有し、その内の一つのサーバ３００（図１に示す例では、サーバ「Ａ」）と情報の送受信をすることを要求するアクセス要求を、クライアントが送信した場合を例に説明する。
【００３９】
なお、以下では、プロキシサーバ２００各々を識別するプロキシ情報や、サーバ３００を識別するサーバ情報として、説明の便宜上、「１」や「２」などの数字や「Ａ」や「Ｂ」などのアルファベットを用いて説明する。なお、サーバ３００を識別するサーバ情報としては、実際には、アドレスやドメイン名などが用いられるものである。
【００４０】
また、実施例１では、アクセス要求転送システムに含まれる複数のプロキシサーバ２００それぞれは、同じ構成部を有し、同様の機能を有するものとして説明する。なお、図２に示す例では、二つのプロキシサーバ（「１」と「２」）の構成を示しているが、これは、プロキシサーバ間の関係を示すためである。このため、説明の便宜上、プロキシサーバ「２」には、プロキシサーバ「１」が有する構成の一部のみを示す。
【００４１】
また、以下に説明するプロキシサーバ２００は、他のプロキシサーバ２００にアクセス要求を転送し、また、他のプロキシサーバ２００からアクセス要求を転送されるものであるものとして説明する。また、同様に、以下に説明するプロキシサーバ２００は、他のプロキシサーバ２００に確認要求（後述）や判定結果（後述）などを送信し、また、他のプロキシサーバ２００から確認要求（後述）や判定結果（後述）などを受信するものであるものとして説明する。
【００４２】
また、以下の記載では、例を用いて説明する際には、プロキシサーバ「１」を主体として説明する。例えば、他のプロキシサーバ２００にアクセス要求を転送する際には、プロキシサーバ「１」がプロキシサーバ「２」にアクセス要求を転送するものとして説明する。また、同様に、他のプロキシサーバ２００からアクセス要求を転送される際には、プロキシサーバ「１」がプロキシサーバ「２」からアクセス要求を転送されるものとして説明する。
【００４３】
［クライアント］
まず、クライアント１００について説明する。クライアント１００は、ネットワークを介して、プロキシサーバ２００と接続する。また、クライアント１００は、特に本発明に密接に関連するものとして、ブラウザ１０１を有する。
【００４４】
ブラウザ１０１は、ネットワークを介してプロキシサーバ２００にアクセス要求を送信する。具体的には、ブラウザ１０１は、使用するプロキシサーバ２００を識別するプロキシ情報を予め記憶している。なお、このプロキシ情報は、例えば、クライアント１００を管理する管理者によって、ブラウザ１０１に予め格納されるものである。また、ブラウザ１０１は、予め記憶しているプロキシ情報によって識別されるプロキシサーバ２００に、アクセス要求を送信する。
【００４５】
例えば、ブラウザ１０１が、プロキシ情報「１」を予め記憶している場合を例に、具体的に説明する。ブラウザ１０１は、クライアント１００を利用する利用者からサーバ「Ａ」と情報の送受信を行うアクセス要求を送信する指示を入力された後、アクセス要求をプロキシサーバ「１」に送信する。
【００４６】
［プロキシサーバ］
次に、プロキシサーバ２００について、図３〜図７を併せて用いて説明する。なお、図３は、実施例１における対応づけ記憶部に格納されている情報の一例を説明するための図である。図４は、実施例１におけるアクセス記憶部に格納されている情報の一例を説明するための図である。図５は、実施例１におけるポリシ記憶部に格納されている情報の一例を説明するための図である。図６は、実施例１におけるプロキシ記憶部に格納されている情報の一例を説明するための図である。図７は、実施例１におけるサーバからのアクセス応答の一例を説明するための図である。
【００４７】
プロキシサーバ２００は、クライアント１００とサーバ３００と、ネットワークを介して接続する。また、プロキシサーバ２００は、他のプロキシサーバ２００と、ネットワークを介して接続する。例えば、プロキシサーバ「１」は、プロキシサーバ「２」とネットワークを介して接続している。また、プロキシサーバ２００は、クライアント１００からサーバ３００に送信されたアクセス要求を受信し、受信したアクセス要求をサーバ３００や他のプロキシサーバ２００に転送する。また、プロキシサーバ２００は、サーバ３００からクライアント１００に送信されたアクセス応答を受信し、受信したアクセス応答をクライアント１００や他のプロキシサーバ２００に転送するものである。
【００４８】
プロキシサーバ２００は、特に本発明に密接に関連する記憶部として、対応づけ記憶部２０１と、アクセス記憶部２０２と、ポリシ記憶部２０３と、を有する。対応づけ記憶部２０１は、特許請求の範囲に記載の「対応づけ記憶部」に対応する。アクセス記憶部２０２は、特許請求の範囲に記載の「アクセス記憶部」に対応する。
【００４９】
対応づけ記憶部２０１は、サーバ情報とプロキシ情報とを対応づけて記憶する。例えば、図３に示すように、対応づけ記憶部２０１は、「サーバ情報」に対応づけて、「プロキシ情報」と、「利用可否」と、更新された日時を示す「更新日時」と、を記憶する。なお、「利用可否」とは、当該「利用可否」に対応づけられた「プロキシ情報」によって識別されるプロキシサーバが、当該「利用可否」に対応づけられた「サーバ情報」によって識別されるサーバ３００にアクセス要求を転送可能かを示す情報である。
【００５０】
例えば、プロキシサーバ２００の運用ポリシとして、部外者からのアクセスを許可していない場合もある。この「利用可否」は、クライアント１００からのアクセス要求を他のプロキシサーバ２００に転送する際に、その候補として選ばれないようにするための情報として用いられる。
【００５１】
具体的な例をあげて説明すると、対応づけ記憶部２０１は、サーバ情報「Ａ」に対応づけて、プロキシ情報「２」と、利用可否「ＯＫ」と、更新日時「２００７−０８−２９Ｔ１９：１７：４０Ｚ」と、を記憶する。
【００５２】
なお、実施例１では、図３に示すように、対応づけ記憶部２０１が、「サーバ情報」に対応づけて、「プロキシ情報」と「利用可否」と「更新日時」とを記憶する場合を用いて説明するが、本発明はこれに限定されるものではない。例えば、対応づけ記憶部２０１は、「サーバ情報」に対応づけて、「プロキシ情報」のみを記憶してもよい。また、例えば、対応づけ記憶部２０１は、「サーバ情報」に対応づけて、「プロキシ情報」を記憶し、「利用可否」と「更新日時」の内いずれか一方を記憶してもよい。
【００５３】
また、対応づけ記憶部２０１は、後述する対応づけ管理部２１４によって情報が格納されるものである。また、対応づけ記憶部２０１に格納された情報は、後述する対応づけ管理部２１４によって用いられるものである。
【００５４】
アクセス記憶部２０２は、サーバごとに、サーバに現にアクセス可能な状況であるか否かを記憶する。例えば、図４に示すように、アクセス記憶部２０２は、「サーバ情報」に対応づけて、対応づけられたサーバ情報によって識別されるサーバに現にアクセス可能な状況であるかを示す情報である「状態」と、「更新日時」とを記憶する。
【００５５】
具体的な例をあげて説明すると、アクセス記憶部２０２は、サーバ情報「Ａ」に対応づけて、状態「ＯＫ」と、更新日時「２００７−０８−３０Ｔ０９：２７：３０Ｚ」と、を記憶する。
【００５６】
なお、実施例１では、図４に示すように、アクセス記憶部２０２が、「サーバ情報」に対応づけて、「状態」と「更新日時」とを記憶する場合を用いて説明するが、本発明はこれに限定されるものではない。例えば、アクセス記憶部２０２は、「サーバ情報」に対応づけて、「状態」のみを記憶してもよい。
【００５７】
また、アクセス記憶部２０２は、後述するサーバ状態管理部２１３によって情報が格納されるものである。また、アクセス記憶部２０２に格納された情報は、後述するサーバ状態管理部２１３によって用いられるものである。
【００５８】
ポリシ記憶部２０３は、プロキシサーバ２００を運用する上で用いられるポリシを記憶する。例えば、図５に示すように、ポリシ記憶部２０３は、ポリシの一例として、「同一ドメイン内のリクエスト（アクセス要求）を中継する」を記憶し、「特定ユーザ（例えば、クライアント１００や、プロキシサーバ２００）からのリクエストを中継する」を記憶する。
【００５９】
また、ポリシ記憶部２０３は、プロキシサーバ２００を管理する管理者によって、ポリシを予め格納されるものである。また、ポリシ記憶部２０３に格納されたポリシは、他のプロキシサーバから確認要求（後述）が送信されると、後述するプロキシポリシ管理部２１５によって用いられるものである。
【００６０】
なお、ここで、対応づけ記憶部２０１に記憶している情報と、アクセス記憶部２０２に記憶している情報との違いについて、簡単に説明する。
【００６１】
まず、対応づけ記憶部２０１に記憶している情報は、当該対応づけ記憶部２０１が設置されたプロキシサーバ２００以外の他のプロキシサーバ２００についての情報である。具体的には、対応づけ記憶部２０１は、当該他のプロキシサーバ２００それぞれについて、当該他のプロキシサーバ２００からアクセスすることが可能であるサーバ３００を記憶するものである。
【００６２】
これに対して、アクセス記憶部２０２に記憶されている情報は、当該アクセス記憶部２０２が設置されたプロキシサーバ２００についての情報である。具体的には、アクセス記憶部２０２は、サーバ３００それぞれについて、当該アクセス記憶部２０２が設置されたプロキシサーバ２００からアクセスすることが可能であるかを記憶するものである。
【００６３】
次に、対応づけ記憶部２０１が記憶する「利用可否」と、アクセス記憶部２０２が記憶する「状態」との違いについて簡単に説明する。「状態」とは、アクセス記憶部２０２が設置されているプロキシサーバ２００からサーバ３００に現にアクセス可能な状況であるかを示す情報である。例えば、当該プロキシサーバ２００とサーバ３００間のネットワークに異常がなく、プロキシサーバ２００からサーバ３００に現にアクセス可能である場合には、「ＯＫ」となり、可能でない場合には、「ＮＧ」となる。一方、「利用可否」とは、対応づけ記憶部２０１が設置されているプロキシサーバ２００から、「利用可否」に対応づけられた他のプロキシサーバ２００にアクセス要求を転送することが可能か否かを示す。例えば、「利用可否」に対応づけられた他のプロキシサーバ２００にアクセス要求を転送することが可能である場合に、「ＯＫ」となり、可能でない場合に、「ＮＧ」となる。
【００６４】
具体的な一例をあげて説明すると、プロキシサーバ「１」が、プロキシ情報「２」に対応付けて利用可否「ＮＧ」を記憶するのは、次のような場合となる。例えば、プロキシサーバ「２」が、プロキシサーバ「２」に設定されたポリシによって、プロキシサーバ「１」）からのアクセス要求を転送（中継）することを許可しない旨を規定している場合である。なお、この際には、例え、アクセス要求が指定するサーバ３００にプロキシサーバ「２」から現にアクセス可能である場合にも、利用可否は「ＮＧ」となる。
【００６５】
また、プロキシサーバ２００は、所定の処理を行う制御部として、特に本発明に密接に関連するものとして、ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１と、プロキシＩ／Ｆ部２１２と、サーバ状態管理部２１３と、対応づけ管理部２１４と、プロキシポリシ管理部２１５と、切り替え判断処理部２１６と、サーバアクセス処理部２１７と、プロキシ問合せ部２１８と、プロキシアクセス処理部２１９と、有する。
【００６６】
なお、対応づけ管理部２１４は、特許請求の範囲に記載の「対応づけ格納手順」に対応する。切り替え判断処理部２１６とサーバ状態管理部２１３とは、特許請求の範囲に記載の「判定手順」に対応する。切り替え判断処理部２１６とプロキシ問合せ部２１８とプロキシアクセス処理部２１９とは、特許請求の範囲に記載の「第一のアクセス要求転送手順」に対応する。切り替え判断処理部２１６とサーバアクセス処理部２１７とは、特許請求の範囲に記載の「第二のアクセス要求転送手順」に対応する。サーバ状態管理部２１３は、特許請求の範囲に記載の「アクセス情報格納手順」に対応する。プロキシ問合せ部２１８と対応づけ管理部２１４とは、特許請求の範囲に記載の「確認要求送信手順」と「判定結果格納手順」とに対応する。
【００６７】
ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１は、アクセス要求をブラウザ１０１から受信する。そして、ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１は、受信したアクセス要求を切り替え判断処理部２１６に伝達する。
【００６８】
また、ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１は、サーバアクセス処理部２１７からアクセス要求が伝達されると、当該アクセス要求をサーバ３００に転送する。また、ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１は、サーバ３００から送信されたアクセス応答（および当該アクセス要求とともに送信されたプロキシ情報）を受信し、受信したアクセス応答をサーバアクセス処理部２１７に伝達する。
【００６９】
また、ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１は、プロキシアクセス処理部２１９からアクセス応答を受信すると、他のプロキシサーバ２００にアクセス応答を送信する。また、ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１は、他のプロキシサーバ２００から送信されたアクセス応答を受信し、受信したアクセス応答をサーバアクセス処理部２１７に伝達する。
【００７０】
プロキシＩ／Ｆ部２１２は、他のプロキシサーバ２００から確認要求を受信し、受信した確認要求をプロキシポリシ管理部２１５に伝達する。また、プロキシＩ／Ｆ部２１２は、プロキシポリシ管理部２１５から伝達された確認要求に対する判定結果を、他のプロキシサーバ２００に送信する。
【００７１】
また、プロキシＩ／Ｆ部２１２は、プロキシ問合せ部２１８から伝達された確認要求を他のプロキシサーバ２００に伝達する。また、プロキシＩ／Ｆ部２１２は、他のプロキシサーバ２００から送信された確認要求に対する判定結果を、プロキシポリシ管理部２１５に伝達する。
【００７２】
なお、確認要求とは、アクセス要求が指定するサーバに現にアクセス要求を転送可能な状況であるか否かを確認する要求である。また、確認要求に対する判定結果とは、確認要求を送信した送信元のプロキシサーバ２００からのアクセス要求をアクセス要求が指定するサーバに現に転送可能な状況であるか否かを、確認要求を受信したプロキシサーバ２００が判定した結果である。
【００７３】
サーバ状態管理部２１３は、アクセス記憶部２０２を管理し、また、サーバ３００に現にアクセス可能な状況であるか否かを判定する。
【００７４】
まず、アクセス記憶部２０２を管理する点について、具体的に説明する。サーバ状態管理部２１３は、アクセス記憶部２０２に記憶されている「サーバ情報」と「状態」との対応づけを管理する。
【００７５】
例えば、サーバ状態管理部２１３は、アクセス要求に応答するアクセス応答を正常に受信した旨の情報をサーバアクセス処理部２１７から伝達される。そして、サーバ状態管理部２１３は、当該アクセス要求が指定するサーバを識別するサーバ情報と、当該サーバに現にアクセス可能な状況である旨を示す情報とを対応づけて、アクセス記憶部２０２に格納する。図４に示す例を用いて、具体的に説明する。例えば、サーバ「Ａ」からのアクセス応答がサーバアクセス処理部２１７から伝達されると、サーバ状態管理部２１３は、サーバ情報「Ａ」と状態「ＯＫ」とを対応づけて、アクセス記憶部２０２に格納する。
【００７６】
また、例えば、サーバ状態管理部２１３は、アクセス要求に応答するアクセス応答がない旨の情報をサーバアクセス処理部２１７から伝達される。そして、サーバ状態管理部２１３は、当該アクセス要求が指定するサーバを識別するサーバ情報と、当該サーバに現にアクセス可能ではない状況である旨を示す情報とを対応づけて、アクセス記憶部２０２に格納する。図４に示す例を用いて、具体的に説明する。例えば、サーバ状態管理部２１３は、サーバ「Ｂ」からアクセス応答がない旨の情報がサーバアクセス処理部２１７から伝達されると、サーバ情報「Ｂ」と状態「ＮＧ」とを対応づけて、アクセス記憶部２０２に格納する。
【００７７】
また、サーバ状態管理部２１３は、サーバ３００からのアクセス応答が正常でない旨をサーバアクセス処理部２１７から伝達されると、当該サーバ３００を識別するサーバ情報に対応づけられている「状態」を「ＮＧ」に更新する。
【００７８】
また、サーバ状態管理部２１３は、サーバ情報と状態との対応づけをアクセス記憶部２０２に格納する際には、当該対応づけに対応づけて、「更新日時」を格納する。例えば、サーバ状態管理部２１３は、サーバ情報「Ａ」と、状態「ＯＫ」とを対応づけて、アクセス記憶部２０２に格納する際に、更新日時「２００７−０８−３０Ｔ０９：２７：３０Ｚ」をさらに対応づけて格納する。
【００７９】
次に、サーバ３００に現にアクセス可能な状況であるか否かを判定する点について、具体的に説明する。サーバ状態管理部２１３は、アクセス要求が指定するサーバ３００に現にアクセス可能な状況であるか否かを判定する指示を、切り替え判断処理部２１６から伝達されると、当該サーバ３００に現にアクセス可能な状況であるか否か判定する。そして、サーバ状態管理部２１３は、サーバ３００についての判定結果を、切り替え判断処理部２１６に伝達する。
【００８０】
具体的には、サーバ状態管理部２１３は、アクセス記憶部２０２に格納されている「サーバ情報」と「状態」との対応づけを用いて、判定する。例えば、サーバ状態管理部２１３は、アクセス要求が指定するサーバ３００を示すサーバ情報に対応づけて、現にアクセス可能な状況である旨がアクセス記憶部２０２に記憶されているかを判別する。具体的な一例をあげて説明すると、サーバ状態管理部２１３は、状態が「ＯＫ」であるかを判別する。そして、サーバ状態管理部２１３は、現にアクセス可能な状況である旨がアクセス記憶部２０２に記憶されている場合に、現にアクセス可能な状況であると判定する。また、例えば、サーバ状態管理部２１３は、現にアクセス可能な状況である旨がアクセス記憶部２０２に記憶されていない場合に、現にアクセス可能な状況ではないと判定する。そして、サーバ状態管理部２１３は、サーバ３００についての判定結果を、切り替え判断処理部２１６に伝達する。
【００８１】
図４に示す例を用いて、具体的に説明する。例えば、サーバ状態管理部２１３は、サーバ「Ａ」について判定する場合には、アクセス記憶部２０２にサーバ情報「Ａ」と状態「ＯＫ」との対応づけが格納されているので、現にアクセス可能な状況であると判定する。一方、例えば、サーバ状態管理部２１３は、サーバ「Ｂ」について判定する場合には、アクセス記憶部２０２にサーバ情報「Ｂ」と状態「ＮＧ」との対応づけが格納されているので、現にアクセス可能な状況でないと判定する。そして、サーバ状態管理部２１３は、サーバ３００についての判定結果（例えば、「ＮＧ」や、「ＯＫ」）を、切り替え判断処理部２１６に伝達する。
【００８２】
対応づけ管理部２１４は、対応づけ記憶部２０１を管理し、また、プロキシ問合せ部２１８からの問い合わせに応対する。
【００８３】
まず、対応づけ記憶部２０１を管理する点について説明する。具体的には、対応づけ管理部２１４は、プロキシ情報とサーバ情報との対応づけをサーバアクセス処理部２１７から伝達されて対応づけ記憶部２０１に格納する。また、具体的には、対応づけ管理部２１４は、対応づけ記憶部２０１に格納しているプロキシ情報とサーバ情報との対応づけについて、「利用可否」をプロキシ問合せ部２１８から伝達されて対応づけ管理部２１４に格納する。
【００８４】
例えば、図３に示す例を用いて説明すると、対応づけ管理部２１４は、サーバアクセス処理部２１７からサーバ情報「Ａ」とプロキシ情報「２」とが伝達されると、サーバ情報「Ａ」とプロキシ情報「２」の対応づけを対応づけ記憶部２０１に格納する。
【００８５】
また、例えば、対応づけ管理部２１４は、「サーバ情報」と「プロキシ情報」との対応づけがサーバアクセス処理部２１７から伝達されて対応づけ記憶部２０１に新たに格納すると、当該対応づけをプロキシ問合せ部２１８に伝達する。例えば、プロキシ情報を含む対応づけが対応づけ記憶部２０１に存在しているかを（記憶されているかを）確認し、対応づけ記憶部２０１に存在していない場合には、当該対応づけをプロキシ問合せ部２１８に伝達する。
【００８６】
また、例えば、対応づけ管理部２１４は、プロキシ問合せ部２１８に伝達した対応づけに加えて「利用可否」を対応づけた情報がプロキシ問合せ部２１８から伝達されると、伝達された「サーバ情報」と「プロキシ情報」と「利用可否」との対応づけを対応づけ記憶部２０１に格納する。
【００８７】
また、対応づけ管理部２１４は、「サーバ情報」と「プロキシ情報」の対応づけや、「サーバ情報」と「プロキシ情報」と「利用可否」との対応づけを対応づけ記憶部２０１に格納する際には、当該対応づけに対応づけて、「更新日時」を格納する。例えば、対応づけ管理部２１４は、サーバ情報「Ａ」と、プロキシ情報「２」と、利用可否「ＯＫ」とを対応づけて、対応づけ記憶部２０１に格納する際に、更新日時「２００７−０８−２９Ｔ１９：１７：４０Ｚ」を対応づけて格納する。
【００８８】
次に、プロキシ問合せ部２１８からの問い合わせに応対する点について説明する。具体的には、対応づけ管理部２１４は、問い合わせを行う旨とサーバ情報とを、プロキシ問合せ部２１８から伝達される。そして、対応づけ管理部２１４は、当該サーバ情報によって識別されるサーバに現にアクセスすることが可能であるプロキシサーバを識別する「プロキシ情報」を対応づけ記憶部２０１から取得し、プロキシ問合せ部２１８に伝達する。
【００８９】
例えば、対応づけ管理部２１４は、プロキシ問合せ部２１８から、問い合わせを行う旨と、サーバ情報「Ａ」とがプロキシ問合せ部２１８から伝達される。そして、対応づけ管理部２１４は、サーバ情報「Ａ」と利用可否「ＯＫ」に対応づけられたプロキシ情報「２」を対応づけ記憶部２０１を検索して取得し、プロキシ問合せ部２１８に伝達する。
【００９０】
プロキシポリシ管理部２１５は、アクセス要求を転送可能であるか否かを判定する。具体的には、プロキシポリシ管理部２１５は、確認要求を受信したプロキシサーバ２００が、当該確認要求を送信したプロキシサーバ２００からのアクセス要求を、アクセス要求が指定するサーバ３００に現に転送可能な状況であるか否かを判定する。なお、プロキシポリシ管理部２１５は、この他のプロキシサーバから確認要求（後述）が送信されると、処理を行うものである。
【００９１】
さらに詳細には、プロキシポリシ管理部２１５は、プロキシポリシ管理部２１５は、他のプロキシサーバ２００から確認要求をプロキシＩ／Ｆ部２１２から伝達される。そして、プロキシポリシ管理部２１５は、ポリシ記憶部２０３に格納されたポリシを用いて判定し、また、アクセス記憶部２０２に格納されている「サーバ情報」と「状態」との対応づけを用いて判定する。
【００９２】
例えば、プロキシポリシ管理部２１５は、ポリシ記憶部２０３に格納されたポリシを用いた判定を行う。プロキシサーバ「１」が確認要求をプロキシサーバ「２」から受信した場合を例に、具体的に説明する。プロキシポリシ管理部２１５は、例えば、プロキシサーバ「２」からのアクセス要求が、プロキシサーバ「１」と同一のドメイン内からのアクセス要求となる場合に（図５参照）、許可すると判定する。
【００９３】
また、例えば、プロキシポリシ管理部２１５は、アクセス記憶部２０２に格納されている「サーバ情報」と「状態」との対応づけを用いた判定を行う。プロキシサーバ「２」が、サーバ「Ａ」に対してアクセス要求を転送可能な状況である否かを判定する確認要求をプロキシサーバ「２」から受信した場合を例に、具体的に説明する。プロキシポリシ管理部２１５は、サーバ情報「Ａ」に対応づけて状態「ＯＫ」がアクセス記憶部２０２に格納されている場合に、許可すると判定する。一方、プロキシポリシ管理部２１５は、サーバ情報「Ａ」に対応づけて状態「ＮＧ」がアクセス記憶部２０２に格納されている場合に、許可しないと判定する。
【００９４】
また、例えば、プロキシポリシ管理部２１５は、ポリシ記憶部２０３に格納されたポリシを用いた判定にて許可すると判定し、かつ、アクセス記憶部２０２に格納されている「サーバ情報」と「状態」との対応づけを用いた判定にて許可すると判定した場合に、アクセス要求を転送可能であると判定する（「ＯＫ」であると判定する）。また、例えば、プロキシポリシ管理部２１５は、ポリシ記憶部２０３に格納されたポリシを用いた判定か、アクセス記憶部２０２に格納されている「サーバ情報」と「状態」との対応づけを用いた判定かの一方または両方において、許可しないと判定した場合に、アクセス要求を転送可能でないと判定する（「ＮＧ」であると判定する）。
【００９５】
また、プロキシポリシ管理部２１５は、判定された判定結果を、プロキシＩ／Ｆ部２１２に伝達する。
【００９６】
切り替え判断処理部２１６は、アクセス要求がＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１から伝達されると、当該アクセス要求を、サーバ状態管理部２１３かプロキシアクセス処理部２１９かに伝達する。
【００９７】
具体的には、切り替え判断処理部２１６は、アクセス要求が指定するサーバ３００に現にアクセス可能であるかを判別する。そして、切り替え判断処理部２１６は、アクセス要求が指定するサーバ３００に現にアクセス可能な場合に、アクセス要求をサーバ状態管理部２１３に伝送する。また、切り替え判断処理部２１６は、アクセス要求が指定するサーバ３００に現にアクセス可能でない場合に、アクセス要求をプロキシアクセス処理部２１９に伝送する。
【００９８】
ここで、まず、アクセス要求が指定するサーバ３００に現にアクセス可能であるかを判別する点について説明する。切り替え判断処理部２１６は、アクセス要求がＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１から伝達されると、当該アクセス要求をサーバ状態管理部２１３に伝達する。そして、切り替え判断処理部２１６は、アクセス要求が指定するサーバ３００に現にアクセス可能であるかについての判定結果を、サーバ状態管理部２１３から伝達される。
【００９９】
例えば、切り替え判断処理部２１６は、サーバ「Ａ」と情報の送受信を行うアクセス要求をＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１から伝達される。そして、切り替え判断処理部２１６は、当該アクセス要求をサーバ状態管理部２１３に伝達する。
【０１００】
また、例えば、切り替え判断処理部２１６は、サーバ「Ａ」に対して現にアクセス可能である旨の情報（例えば、「ＯＫ」）や、サーバ「Ａ」に対して現にアクセス可能でない旨の情報（例えば、「ＮＧ」）をサーバ状態管理部２１３から伝達される。そして、切り替え判断処理部２１６は、サーバ「Ａ」に対して現にアクセス可能である旨の情報（例えば、「ＯＫ」）がサーバ状態管理部２１３から伝達された場合に、アクセス可能であると判別する。また、切り替え判断処理部２１６は、サーバ「Ａ」に対して現にアクセス可能でない旨の情報（例えば、「ＮＧ」）がサーバ状態管理部２１３から伝達された場合に、アクセス可能でないと判別する。
【０１０１】
次に、アクセス要求が指定するサーバ３００に現にアクセス可能な場合に、切り替え判断処理部２１６が、アクセス要求をサーバ状態管理部２１３に伝送する場合について説明する。
【０１０２】
例えば、切り替え判断処理部２１６は、アクセス要求が指定するサーバ３００に現にアクセス可能である旨の情報が、サーバ状態管理部２１３から伝達される。そして、切り替え判断処理部２１６は、アクセス要求をサーバアクセス処理部２１７に伝達する。例えば、切り替え判断処理部２１６は、サーバ「Ａ」に対して現にアクセス可能でない旨の情報（例えば、「ＯＫ」）をサーバ状態管理部２１３から伝達される。そして、切り替え判断処理部２１６は、サーバ「Ａ」と情報の送受信を行うアクセス要求を、サーバアクセス処理部２１７に伝達する。
【０１０３】
次に、アクセス要求が指定するサーバ３００に現にアクセス可能でない場合に、切り替え判断処理部２１６が、アクセス要求をプロキシアクセス処理部２１９に伝達する場合について説明する。
【０１０４】
例えば、切り替え判断処理部２１６は、現にアクセス可能でない旨の情報がサーバ状態管理部２１３から伝達される。例えば、切り替え判断処理部２１６は、サーバ「Ａ」に対して現にアクセス可能でない旨の情報（例えば、「ＮＧ」）をサーバ状態管理部２１３から伝達される。そして、切り替え判断処理部２１６は、アクセス要求が指定するサーバ３００に、当該アクセス要求を転送可能な他のプロキシサーバ２００を識別する「プロキシ情報」をプロキシ問合せ部２１８から取得する。具体的な例をあげて説明すると、切り替え判断処理部２１６は、アクセス要求をプロキシ問合せ部２１８に伝達する。そして、切り替え判断処理部２１６は、プロキシ情報（例えば、プロキシ情報「４」）をプロキシ問合せ部２１８から伝達される。
【０１０５】
また、例えば、切り替え判断処理部２１６は、プロキシ問合せ部２１８から取得したプロキシ情報と、アクセス要求とを、プロキシアクセス処理部２１９に伝達する。
【０１０６】
また、切り替え判断処理部２１６は、サーバ３００からのアクセス応答は正常でない旨をサーバアクセス処理部２１７から伝達された場合にも、プロキシ情報をプロキシ問合せ部２１８から取得し、アクセス要求と取得したプロキシ情報とをプロキシアクセス処理部２１９に伝達する。
【０１０７】
サーバアクセス処理部２１７は、アクセス要求をサーバ３００に転送する。具体的には、切り替え判断処理部２１６からアクセス要求が伝達されると、当該アクセス要求が指定するサーバ３００に、ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して当該アクセス要求を転送する。例えば、サーバアクセス処理部２１７は、サーバ「Ａ」と情報の送受信を行うアクセス要求を切り替え判断処理部２１６から伝達される。そして、サーバアクセス処理部２１７は、サーバ「Ａ」に、当該アクセス要求をＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して転送する。
【０１０８】
また、サーバアクセス処理部２１７は、アクセス要求をＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して転送すると、サーバ３００からアクセス応答を正常に受信するかを判定する。例えば、サーバアクセス処理部２１７は、アクセス要求をＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して転送した後に、一定時間内にアクセス応答が伝達されるかを判別する。サーバアクセス処理部２１７は、ここで、一定時間内にアクセス応答がなかった場合に、正常に受信しなかったと判定する。また、サーバアクセス処理部２１７は、サーバ３００からのアクセス応答が正常でない旨を切り替え判断処理部２１６とサーバ状態管理部２１３に伝達する。
【０１０９】
また、具体的には、サーバアクセス処理部２１７は、他のプロキシサーバ２００から転送されたアクセス要求をＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して伝達される。そして、サーバアクセス処理部２１７は、当該アクセス要求が指定するサーバ３００に、ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して当該アクセス要求を転送する。
【０１１０】
また、サーバアクセス処理部２１７は、サーバ３００からのアクセス応答を受信すると、当該アクセス応答から、当該アクセス応答とともに送信されたプロキシ情報と、当該サーバ３００を識別するサーバ情報とを取得する。そして、サーバアクセス処理部２１７は、取得したプロキシ情報とサーバ情報とを対応づけ管理部２１４に伝達する。
【０１１１】
また、サーバアクセス処理部２１７は、サーバ３００からのアクセス応答を転送する。具体的には、サーバアクセス処理部２１７は、サーバ３００からのアクセス応答が、ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して伝達される。そして、サーバアクセス処理部２１７は、当該アクセス応答を、当該アクセス応答の送信先であるクライアント１００にＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して伝達する。また、サーバアクセス処理部２１７は、当該アクセス応答の送信元であるサーバ３００を識別するサーバ情報と、当該アクセス応答とともに送信されたプロキシ情報とを、対応づけ管理部２１４に伝達する。また、サーバアクセス処理部２１７は、アクセス応答を正常に受信した旨をサーバ状態管理部２１３に伝達する。
【０１１２】
プロキシ問合せ部２１８は、アクセス要求が指定するサーバ３００に当該アクセス要求を転送可能な他のプロキシサーバ２００を示すプロキシ情報を、対応づけ管理部２１４から取得する。また、プロキシ問合せ部２１８は、対応づけ記憶部２０１に記憶されている「サーバ情報」と「プロキシ情報」との対応づけに対応づけられる「利用可否」を対応づけ管理部２１４に伝達する。
【０１１３】
まず、プロキシ情報を取得する点について説明する。プロキシ問合せ部２１８は、アクセス要求を切り替え判断処理部２１６から伝達される。そして、プロキシ問合せ部２１８は、伝達されたアクセス要求が指定するサーバ３００を識別するサーバ情報と、問い合わせを行う旨とを、対応づけ管理部２１４に伝達する。そして、プロキシ問合せ部２１８は、プロキシ情報を、対応づけ管理部２１４から伝達されて取得する。そして、プロキシ問合せ部２１８は、取得したプロキシ情報を切り替え判断処理部２１６に伝達する。
【０１１４】
また、プロキシ問合せ部２１８は、「プロキシ情報」を対応づけ管理部２１４から取得した際に、確認要求を送信して利用可否を改めて取得してもよい（利用可否の取得については、後述する）。つまり、プロキシ問合せ部２１８は、取得した「プロキシ情報」が有効かどうかを、アクセス要求を他のプロキシサーバ２００に転送する際に確認してもよい。
【０１１５】
次に、「利用可否」を対応づけ管理部２１４に伝達する点について説明する。プロキシ問合せ部２１８は、「サーバ情報」と「プロキシ情報」との対応づけを対応づけ管理部２１４から伝達される。そして、プロキシ問合せ部２１８は、当該「プロキシ情報」によって識別されるプロキシサーバ２００（プロキシポリシ管理部２１５）に、プロキシＩ／Ｆ部２１２を介して当該対応づけについての確認要求を送信する。言い換えると、プロキシ問合せ部２１８は、伝達された「プロキシ情報」によって識別されるプロキシサーバ２００が、確認要求を送信する送信元となるプロキシサーバ２００からのアクセス要求をサーバ３００（伝達された「サーバ情報」によって識別されるサーバ３００）に転送可能であるかを確認する。
【０１１６】
具体的な例をあげて説明する。なお、ここで、プロキシサーバ「１」が確認要求を送信し、サーバ情報「Ａ」とプロキシ情報「２」との対応づけが対応づけ管理部２１４から伝達されたものとする。プロキシ問合せ部２１８は、プロキシサーバ「２」に対して、確認要求をプロキシＩ／Ｆ部２１２を介して送信する。また、ここで、プロキシ問合せ部２１８は、確認要求を送信して、プロキシサーバ「１」からのサーバ「Ａ」に対してのアクセス要求を、プロキシサーバ「２」が転送可能であるかを確認するものである。
【０１１７】
また、例えば、プロキシ問合せ部２１８は、他のプロキシサーバ２００から伝達された確認要求に対応する判定結果を、他のプロキシサーバ２００からプロキシＩ／Ｆ部２１２を介して伝達される。そして、プロキシ問合せ部２１８は、伝達された確認要求に対応する判定結果（「利用可否」）を、対応づけ管理部２１４に伝達する。具体的には、プロキシ問合せ部２１８は、対応づけ管理部２１４から伝達されたサーバ情報とプロキシ情報との対応づけに加えて、「利用可否」を対応づけた情報を、対応づけ管理部２１４に伝達する。
【０１１８】
プロキシアクセス処理部２１９は、アクセス要求を他のプロキシサーバ２００に転送する。具体的には、プロキシアクセス処理部２１９は、プロキシ情報とアクセス要求とを、切り替え判断処理部２１６から伝達される。そして、プロキシアクセス処理部２１９は、伝達されたプロキシ情報によって識別されるプロキシサーバ２００に、伝達されたアクセス要求をＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して転送する。
【０１１９】
［サーバ］
サーバ３００は、一つまたは複数のプロキシサーバ２００とネットワークを介して接続する。また、サーバ３００は、プロキシサーバ２００から転送されたクライアント１００からのアクセス要求を受信すると、アクセス応答をクライアント１００に送信するものである。
【０１２０】
サーバ３００は、特に本発明に密接に関連する記憶部として、プロキシ記憶部３０１を有する。なお、プロキシ記憶部３０１は、特許請求の範囲に記載の「プロキシ記憶部」に対応する。
【０１２１】
プロキシ記憶部３０１は、プロキシ情報を蓄積する。例えば、プロキシ記憶部３０１は、図６に示すように、「プロキシ情報」と「更新日時」とを対応づけて記憶する。図６に示す例を用いて具体的に説明すると、プロキシ記憶部３０１は、プロキシ情報「１」と更新日時「２００７−０７−３０Ｔ１９：１７：４０Ｚ」との対応づけを記憶する。
【０１２２】
また、プロキシ記憶部３０１が記憶する情報は、後述するプロキシ情報管理部３１２によって格納され、また、後述するプロキシ情報管理部３１２によって用いられるものである。
【０１２３】
なお、実施例１では、図６に示すように、プロキシ記憶部３０１が、「プロキシ情報」に対応づけて、「更新日時」を記憶する場合を用いて説明するが、本発明はこれに限定されるものではない。例えば、プロキシ記憶部３０１は、「プロキシ情報」だけを記憶してもよい。
【０１２４】
なお、ここで、プロキシ記憶部３０１が記憶する「プロキシ情報」と、対応づけ記憶部２０１が記憶する「プロキシ情報」との違いについて、簡単に説明する。対応づけ記憶部２０１が記憶している「プロキシ情報」は、プロキシ記憶部３０１が記憶する「プロキシ情報」の一部または全てである。具体的には、対応づけ記憶部２０１が記憶している情報は、プロキシ記憶部３０１が記憶する「プロキシ情報」の一部または全てそれぞれと、プロキシ記憶部３０１が設置されているサーバ３００を識別する「サーバ情報」との対応づけとなる。
【０１２５】
サーバ３００は、特に本発明に密接に関連する制御部として、ＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１と、プロキシ情報管理部３１２と、プロキシ情報付与部３１４と、サービス実行部３１３と、を有する。なお、プロキシ情報管理部３１２は、特許請求の範囲に記載の「プロキシ情報格納手順」に対応する。プロキシ情報付与部３１４は、特許請求の範囲に記載の「アクセス応答送信手順」に対応する。
【０１２６】
ＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１は、プロキシサーバ２００から転送されたアクセス要求を受信し、受信したアクセス要求をプロキシ情報管理部３１２に伝達する。また、ＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１は、サービス実行部３１３からアクセス応答が伝達されると、当該アクセス応答をプロキシサーバ２００に送信する。
【０１２７】
プロキシ情報管理部３１２は、プロキシ情報をプロキシ記憶部３０１に格納する。具体的には、プロキシ情報管理部３１２は、プロキシサーバ２００から転送されたアクセス要求をＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１から伝達されると、当該プロキシサーバ２００を識別するプロキシ情報を、プロキシ記憶部３０１に格納する。また、プロキシ情報管理部３１２はプロキシ情報をプロキシ記憶部３０１に格納する際には、当該プロキシ情報に対応づけて、「更新日時」を格納する。
【０１２８】
例えば、プロキシ情報管理部３１２は、プロキシサーバ「１」から転送されたアクセス要求がＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１から伝達されると、プロキシ情報「１」をプロキシ記憶部３０１に格納する。また、プロキシ情報管理部３１２は、プロキシ情報「１」をプロキシ記憶部３０１に格納する際に、プロキシ情報「１」に対応づけて「２００７−０７−３０Ｔ１９：１７：４０Ｚ」を格納する。
【０１２９】
また、プロキシ情報管理部３１２は、ＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１から伝達されたアクセス応答を、サービス実行部３１３に伝達する。
【０１３０】
サービス実行部３１３は、アクセス要求に対応する処理を行う。具体的には、プロキシ情報管理部３１２からアクセス要求を伝達される。そして、サービス実行部３１３は、伝達されたアクセス要求に対応する処理として、例えば、コンテンツ作成し、また、サーバ３００に予め設定されているサービスを実行する。そして、達されたアクセス要求に対応する処理やデータであってクライアント１００に送信するアクセス応答を、ＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１に伝達する。
【０１３１】
プロキシ情報付与部３１４は、プロキシ記憶部３０１に蓄積されているプロキシ情報を、当該プロキシ記憶部３０１から読み出し、読み出したプロキシ情報を、アクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信する。具体的には、プロキシ情報付与部３１４は、プロキシ記憶部３０１に蓄積されているプロキシ情報の内、アクセス要求の転送元のプロキシサーバ２００以外のプロキシサーバ２００を示すプロキシ情報を読み出す。そして、プロキシ情報付与部３１４は、読み出した当該プロキシ情報をアクセス応答とともに、ＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１を介して送信する。
【０１３２】
例えば、アクセス応答がサービス実行部３１３からＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１に伝達され、当該アクセス応答がＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１からプロキシサーバ２００に送信される場合を例に説明する。ここで、プロキシ情報付与部３１４は、プロキシ記憶部３０１からプロキシ情報を読みだし、読み出したプロキシ情報を、ＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１から送信されるアクセス応答のレスポンスのヘッダに付与する。
【０１３３】
図７に示す例を用いて、具体的に説明する。図７に示すように、プロキシ情報付与部３１４は、ＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１から送信されるアクセス応答のレスポンスのヘッダにプロキシ情報を付与する（図７に示す「Ｘ−Ｐｒｏｘｙ−Ｌｉｓｔ」が該当する）。なお図７に示す例では、プロキシ情報として、「ｖｖ．ｖｖ．ｖｖ．ｖｖ」と「ｗｗ．ｗｗ．ｗｗ．ｗｗ」とを付与する場合を例に示す。
【０１３４】
［アクセス要求の経路］
ここで、図８を用いて、クライアント１００とプロキシサーバ２００とサーバ３００との間において送受信（転送）される、アクセス要求やアクセス応答の流れについて、簡単に説明する。ここでは、まず、正常時について説明し、その後、ネットワーク障害時（異常発生時）について説明する。なお、プロキシサーバ「１」がサーバ「Ａ」と情報の送受信を行うアクセス要求を受信した場合を例に説明する。
【０１３５】
なお、図８−１と図８−２とは、実施例１における情報の流れの一例を説明するための図である。
【０１３６】
なお、ここでいう正常時とは、アクセス要求を受信したプロキシサーバ２００が、当該アクセス要求が指定するサーバ３００に、当該アクセス要求を転送可能である場合を示す。例えば、プロキシサーバ「１」とサーバ「Ａ」との間のネットワークが正常に機能しており、プロキシサーバ「１」が、アクセス要求をサーバ「Ａ」に転送することが現に可能である場合が該当する。
【０１３７】
また、ここでいう異常発生時とは、アクセス要求を受信したプロキシサーバ２００が、当該アクセス要求が指定するサーバ３００に、当該アクセス要求を転送可能でない場合を示す。例えば、プロキシサーバ「１」とサーバ「Ａ」との間のネットワークが正常に機能しておらず、プロキシサーバ「１」が、アクセス要求をサーバ「Ａ」に転送することが現に可能でない場合が該当する。
【０１３８】
ここで、プロキシサーバ「１」は、アクセスしたサーバの状態を記録する記憶部（アクセス記憶部２０２）を有する。また、サーバ３００は、様々なクライアント１００からアクセス要求を受付け、当該サーバ３００にアクセスすることが可能な他のプロキシサーバ２００を識別するプロキシ情報を蓄積する記憶部（プロキシ記憶部３０１）を有する。
【０１３９】
まず、正常時について説明する。図８−１に示すように、クライアント１００は、アクセス要求をプロキシサーバ「１」に送信する。そして、プロキシサーバ「１」は、当該アクセス要求をサーバ３００に転送する。そして、サーバ３００は、アクセス応答とプロキシ情報とをプロキシサーバ「１」に送信する。そして、プロキシサーバ「１」は、アクセス応答をクライアント１００に転送する。
【０１４０】
また、プロキシサーバ「１」は、クライアント１００にアクセス応答を送信した後に、サーバ３００から送信されたプロキシ情報によって識別されるプロキシサーバ２００に確認要求を送信することにより、「利用可否」を取得する。
【０１４１】
次に、ネットワーク障害発生時について説明する。つまり、プロキシサーバ「１」とサーバ３００との間のネットワークに障害が発生したものとする。図８−２に示すように、クライアント１００は、アクセス要求をプロキシサーバ「１」に送信する。ここで、プロキシサーバ「１」は、サーバ３００にアクセス要求を送信できない。このため、プロキシサーバ「１」は、他のプロキシサーバ２００（プロキシサーバ「２」）にアクセス要求を転送する。そして、プロキシサーバ「２」は、アクセス要求をサーバ３００に転送する。
【０１４２】
そして、サーバ３００は、アクセス応答とプロキシ情報とをプロキシサーバ「２」に送信する。そして、プロキシサーバ「２」は、アクセス応答をプロキシサーバ「１」に転送する。そして、プロキシサーバ「１」は、アクセス応答をクライアント１００に転送する。
【０１４３】
なお、この際、プロキシサーバ「１」は、アクセス要求とともにプロキシ情報をクライアント１００に転送することにより、プロキシ情報をクライアント１００にて管理することが可能である。
【０１４４】
［アクセス要求転送システムによる処理］
次に、図９〜１１を用いて、アクセス要求転送システムによる処理を説明する。なお、以下では、まず、シーケンス図（図９と図１０と）を用いて、正常時における処理の流れを説明し、異常発生時における処理の流れを説明する。その後、フローチャート（図１１）を用いて、プロキシサーバ２００の処理を説明する。
【０１４５】
なお、図９は、実施例１におけるアクセス要求転送システムの処理の流れの一例を示すシーケンス図である。図１０は、実施例１におけるアクセス要求転送システムの処理の流れの一例を示すシーケンス図である。図１１は、実施例１におけるアクセス要求転送システムの処理の流れの一例を示すフローチャートである。
【０１４６】
［正常時における処理］
まず、図９を用いて、正常時におけるアクセス要求転送システムの処理の流れを説明する。なお、以下では、アクセス要求転送システムは、一つのクライアントと、複数のプロキシサーバ（図９に示す例では、「１」および「２」）とを有するものとして説明する。また、実施例１に係るアクセス要求転送システムは、複数のサーバを有し、その内の一つのサーバ（図９に示す例では、単に「サーバ」と記載）と情報の送受信をすることを要求するアクセス要求を、クライアントが送信した場合を例に説明する。
【０１４７】
図９に示すように、クライアント１００（ブラウザ１０１）は、ネットワークを介してアクセス要求をプロキシサーバ２００に送信する（ステップＳ１０１）。例えば、図９に示す例では、クライアント１００（ブラウザ１０１）は、プロキシサーバ「１」にアクセス要求を送信する。
【０１４８】
そして、プロキシサーバ２００は、サーバ３００の状態を確認する（ステップＳ１０２）。具体的には、プロキシサーバ２００は、当該サーバ３００に、アクセス可能かを確認する。つまり、プロキシサーバ２００は、アクセス要求をクライアント１００から受信すると、当該アクセス要求を受信したプロキシサーバ２００が、当該アクセス要求が指定するサーバ３００に現にアクセス可能な状況であるか否かを判定する。
【０１４９】
例えば、プロキシサーバ２００では、サーバ状態管理部２１３が、アクセス要求が指定するサーバ３００を識別するサーバ情報に対応づけて、状態「ＯＫ」がアクセス記憶部２０２に記憶されているかを判別する。なお、図９を用いて説明する正常時における処理においては、アクセス記憶部２０２が、アクセス要求が指定するサーバ３００を識別するサーバ情報に対応づけて、状態「ＯＫ」を記憶しているものとする。つまり、プロキシサーバ２００は、アクセス可能であると判定する。
【０１５０】
そして、プロキシサーバ２００は、アクセス要求をサーバ３００に転送する（ステップＳ１０３）。つまり、プロキシサーバ２００は、現にアクセス可能な状況であると判定すると、サーバアクセス処理部２１７が、アクセス要求が指定するサーバ３００に、ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して当該アクセス要求を転送する。
【０１５１】
そして、サーバ３００は、プロキシ情報を取得して蓄積する（ステップＳ１０４）。具体的には、サーバ３００は、アクセス要求をプロキシサーバ２００から受信すると、当該プロキシサーバ２００を識別するプロキシ情報を、プロキシ記憶部３０１に格納する。例えば、プロキシ情報管理部３１２は、プロキシサーバ「１」から転送されたアクセス要求をＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１から伝達されると、プロキシ情報「１」を、プロキシ記憶部３０１に格納する。
【０１５２】
そして、サーバ３００は、サービスの実行を行う（ステップＳ１０５）。例えば、サーバ３００では、サービス実行部３１３が、伝達されたアクセス要求に対応する処理として、コンテンツを作成し、また、サーバ３００に予め設定されているサービスを実行する。
【０１５３】
そして、サーバ３００は、通知するプロキシ情報の決定・付与を行い（ステップＳ１０６）、アクセス応答を送信する（ステップＳ１０７）。具体的には、サーバ３００では、プロキシ情報付与部３１４が、プロキシ記憶部３０１に蓄積されているプロキシ情報を、当該プロキシ記憶部３０１から読み出し、読み出したプロキシ情報を、アクセス応答とともに当該アクセス要求の転送元のプロキシサーバ２００に送信する。例えば、サーバ３００では、プロキシ情報付与部３１４が、プロキシ記憶部３０１からプロキシ情報「２」を読出し、アクセス応答とともにプロキシ情報「２」を、プロキシサーバ「２」にＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１を介して送信する。
【０１５４】
そして、プロキシサーバ２００は、アクセス応答をクライアント１００に転送する（ステップＳ１０８）。具体的には、プロキシサーバ２００では、サーバアクセス処理部２１７が、サーバ３００からのアクセス応答が、ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して伝達される。そして、サーバアクセス処理部２１７は、当該アクセス応答を、当該アクセス応答の送信先であるクライアント１００にＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して伝達する。
【０１５５】
そして、プロキシサーバ２００は、サーバの状態を更新する（ステップＳ１０９）。具体的には、プロキシサーバ２００では、サーバ状態管理部２１３は、アクセス要求が指定するサーバを識別するサーバ情報と、当該サーバに現にアクセス可能な状況である旨を示す情報とを対応づけて、アクセス記憶部２０２に格納する。
【０１５６】
そして、プロキシサーバ２００は、プロキシ情報を取得して登録する（ステップＳ１１０）。具体的には、プロキシサーバ２００では、対応づけ管理部２１４は、サーバアクセス処理部２１７からプロキシ情報とサーバ情報とを伝達されて、プロキシ情報とサーバ情報との対応づけを対応づけ記憶部２０１に格納する。例えば、対応づけ管理部２１４は、サーバ情報とプロキシ情報「２」との対応づけを、対応づけ記憶部２０１に格納する。
【０１５７】
そして、プロキシサーバ２００は、利用可否を問い合わせする（ステップＳ１１１）。具体的には、プロキシサーバ「１」では、対応づけ管理部２１４が、「サーバ情報」とプロキシ情報」「１」との対応づけを対応づけ記憶部２０１に格納すると、当該対応づけをプロキシ問合せ部２１８に伝達する。そして、プロキシ問合せ部２１８は、当該「プロキシ情報」によって識別されるプロキシサーバ２００（プロキシポリシ管理部２１５）に、プロキシＩ／Ｆ部２１２を介して当該対応づけについての確認要求を送信する。
【０１５８】
そして、確認要求を他のプロキシサーバ２００から受信したプロキシサーバ２００は、アクセス要求を転送可能であるかを確認する（ステップＳ１１２）。具体的には、プロキシサーバ「１」から確認要求を受信するプロキシサーバ「２」では、プロキシポリシ管理部２１５は、プロキシサーバ「１」からのアクセス要求を、アクセス要求が指定するサーバ３００にプロキシサーバ「２」が現に転送可能な状況であるか否かを判定する。
【０１５９】
具体的な判定手法の例をあげて説明すると、プロキシポリシ管理部２１５は、ポリシ記憶部２０３に格納されたポリシを用いた判定を行う。また、プロキシポリシ管理部２１５は、アクセス記憶部２０２に格納されている「サーバ情報」と「状態」との対応づけを用いた判定を行う。そして、例えば、プロキシポリシ管理部２１５は、二つの判定にて許可すると判定した場合に、アクセス要求を転送可能であると判定する（利用状態「ＯＫ」であると判定する）。
【０１６０】
そして、確認要求を他のプロキシサーバ２００から受信したプロキシサーバ２００は、回答（判定結果）を送信する（ステップＳ１１３）。具体的には、プロキシポリシ管理部２１５は、判定結果（例えば、利用可否「ＯＫ」）を、プロキシＩ／Ｆ部２１２を介してプロキシサーバ「１」に伝達する。
【０１６１】
そして、確認要求についての判定結果を受信したプロキシサーバ２００は、利用可否を登録する（ステップＳ１１４）。具体的には、プロキシサーバ「１」では、対応づけ管理部２１４は、「サーバ情報」と「プロキシ情報」との対応づけに、受信した「利用可否」を対応づけて、対応づけ記憶部２０１に格納する。例えば、対応づけ管理部２１４は、「サーバ情報」とプロキシ情報「２」との対応づけに、受信した利用可否「ＯＫ」を対応づけて、対応づけ記憶部２０１に格納する。
【０１６２】
［異常発生時における処理］
次に、図１０を用いて、異常発生時におけるアクセス要求転送システムの処理の流れを説明する。なお、正常時における処理と同様の点については、説明を省略し、または、簡潔に行う。
【０１６３】
図１０に示すように、クライアント１００（ブラウザ１０１）は、ネットワークを介してアクセス要求をプロキシサーバ２００に送信する（ステップＳ２０１）。
【０１６４】
そして、プロキシサーバ２００は、サーバ３００の状態を確認する（ステップＳ２０２）。なお、上記したように、図１０を用いて説明する異常発生時における処理においては、アクセス記憶部２０２が、アクセス要求が指定するサーバ３００を識別するサーバ情報に対応づけて、状態「ＮＧ」を記憶しているものとする。つまり、プロキシサーバ２００は、アクセス不可能であると判定する。
【０１６５】
そして、プロキシサーバ２００は、他のプロキシサーバ２００に、サーバ３００へのアクセス状態を問い合わせる（ステップＳ２０３）。つまり、プロキシサーバ２００は、他のプロキシサーバ２００に確認要求を送信する。具体的な例をあげて説明すると、プロキシサーバ２００では、プロキシ問合せ部２１８が、アクセス要求が指定するサーバ３００を識別するサーバ情報と、問い合わせを行う旨とを、対応づけ管理部２１４に伝達する。そして、プロキシ問合せ部２１８は、プロキシ情報を、対応づけ管理部２１４から伝達されて取得する。そして、プロキシ問合せ部２１８は、「プロキシ情報」を対応づけ管理部２１４から取得した際に、確認要求を送信する。
【０１６６】
そして、確認要求を他のプロキシサーバ２００から受信したプロキシサーバ２００は、アクセス要求を転送可能であるかを確認する（ステップＳ２０４）。例えば、プロキシサーバ「２」は、プロキシサーバ「１」から転送されたアクセス要求をサーバ３００に転送することが可能であるかを確認する。なお、ここでは、プロキシサーバ「２」が、プロキシサーバ「１」から転送されたアクセス要求を転送できるものとして説明する。つまり、プロキシサーバ「２」は、利用可否「ＯＫ」と確認する。そして、確認要求を他のプロキシサーバ２００（プロキシサーバ「１」）から受信したプロキシサーバ２００（プロキシサーバ「２」）は、確認要求の送信元であるプロキシサーバ２００（プロキシサーバ「１」）に回答を送信する（ステップＳ２０５）。
【０１６７】
そして、プロキシサーバ２００は、アクセス要求を、アクセス要求を転送可能であると確認した他のプロキシサーバ２００に転送する（ステップＳ２０６）。具体的には、プロキシサーバ「１」では、プロキシアクセス処理部２１９が、アクセス要求をプロキシサーバ「２」に転送する。そして、転送先であるプロキシサーバ「２」では、サーバアクセス処理部２１７が、プロキシサーバ「１」から転送されたアクセス要求を、当該アクセス要求が指定するサーバ３００に転送する（ステップＳ２０７）。
【０１６８】
そして、サーバ３００は、プロキシ情報を取得して蓄積する（ステップＳ２０８）。続いて、サーバ３００は、サービスの実行を行う（ステップＳ２０９）。そして、サーバ３００は、通知するプロキシ情報の決定・付与を行う（ステップＳ２１０）。
【０１６９】
そして、サーバ３００は、アクセス応答を送信する（ステップＳ２１１）。具体的には、サーバ３００では、アクセス応答を、当該サーバ３００にアクセス要求を転送したプロキシサーバ２００に送信する。例えば、図１０に示す例では、サーバ３００は、アクセス応答を、プロキシサーバ「２」に送信する。
【０１７０】
そして、他のプロキシサーバ２００から転送されたアクセス要求を転送したプロキシサーバ２００は、サーバ３００から受信したアクセス応答を、当該アクセス要求の転送元である他のプロキシサーバ２００に転送する。例えば、プロキシサーバ「２」は、サーバ３００から受信したアクセス応答をプロキシサーバ「１」に転送する（ステップＳ２１３）。また、プロキシサーバ「２」は、更新処理を行う（ステップＳ２１２）。具体的には、図９に示したステップＳ１０９〜Ｓ１１４と同様の処理を行う。
【０１７１】
そして、プロキシサーバ２００は、アクセス応答をクライアント１００に転送する（ステップＳ２１４）。具体的には、プロキシサーバ「１」は、プロキシサーバ「２」からアクセス応答を受信すると、当該アクセス応答をクライアント１００に転送する。
【０１７２】
なお、上記した処理のうち、図１０に示すステップＳ２０１とＳ２０２とは、図９に示すステップＳ１０１とＳ１０２と同様である。また、図１０に示すステップＳ２０８〜Ｓ２１０は、図９に示すステップＳ１０４〜Ｓ１０６と同様である。また、図１０に示すステップＳ２１２は、図９に示すステップＳ１０９〜Ｓ１１４と同様である。
【０１７３】
［プロキシサーバによる処理］
次に、図１１を用いて、プロキシサーバ２００の処理について説明する。図１１に示すように、プロキシサーバ２００では、クライアント１００からアクセス要求を受信すると（ステップＳ３０１肯定）、サーバ状態管理部２１３が、アクセス要求で指定されたサーバ３００の状態をアクセス記憶部２０２から取得する（ステップＳ３０２）。具体的には、サーバ状態管理部２１３は、アクセス要求が指定するサーバ３００を識別するサーバ情報に対応づけられた「状態」をアクセス記憶部２０２から取得し、サーバ３００に現にアクセス可能な状況であるか否か判定する。つまり、ここで、サーバ状態管理部２１３は、サーバの状態が「ＯＫ」であるかを判別する（ステップＳ３０３）。
【０１７４】
ここで、サーバ状態管理部２１３によってサーバ状態が「ＯＫ」であると判別されると（ステップＳ３０３肯定）、プロキシサーバ２００では、サーバアクセス処理部２１７が、アクセス要求をサーバ３００にＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して転送する（ステップＳ３０４）。例えば、プロキシサーバ「１」は、サーバ３００にアクセス要求をＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して転送する。
【０１７５】
そして、プロキシサーバ２００は、サーバ３００からアクセス応答を正常に受信するかを判別する（ステップＳ３０５）。具体的には、プロキシサーバ２００では、サーバアクセス処理部２１７が、アクセス要求をＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１を介して転送した後に、一定時間内にアクセス応答が伝達されるかを判別する。
【０１７６】
ここで、サーバ３００からアクセス応答を正常に受信したと判別すると（ステップＳ３０５肯定）、プロキシサーバ２００は、アクセス記憶部を更新する（ステップＳ３０６）。具体的には、サーバ状態管理部２１３が、当該サーバ３００に対応づけられている「状態」を、「ＯＫ」に更新する。
【０１７７】
そして、プロキシサーバ２００は、プロキシ情報を取得する（ステップＳ３０７）。つまり、プロキシサーバ２００では、サーバアクセス処理部２１７が、サーバ３００からのアクセス応答を受信すると、当該アクセス応答とともに送信されたプロキシ情報と、当該サーバ３００を識別するサーバ情報とを取得する。そして、サーバアクセス処理部２１７は、プロキシ情報とサーバ情報とを対応づけ管理部２１４に伝達する。
【０１７８】
そして、プロキシサーバ２００では、アクセス応答をクライアント１００に伝達する（ステップＳ３０８）。
【０１７９】
また、プロキシサーバ２００は、対応づけ管理部２１４が、取得したプロキシ情報を含む対応づけが対応づけ記憶部２０１に存在しているかを（記憶されているかを）確認する（ステップＳ３０９）。ここで、対応づけ管理部２１４は、対応づけが対応づけ記憶部２０１に存在している場合には（ステップＳ３０９肯定）、処理を終了する。
【０１８０】
一方、プロキシサーバ３００では、対応づけ管理部２１４が、対応づけが対応づけ記憶部２０１に存在していない場合には（ステップＳ３０９否定）、利用可否を問い合わせる（ステップＳ３１０）。つまり、対応づけ管理部２１４は、取得したプロキシ情報とアクセス応答の送信元を示すサーバ３００を識別するサーバ情報とを、プロキシ問合せ部２１８に伝達する。そして、プロキシ問合せ部２１８が、当該プロキシ情報によって識別されるプロキシサーバ２００に、確認要求を送信する。
【０１８１】
そして、プロキシサーバ２００では、対応づけ管理部２１４が、プロキシ情報と、確認要求に対する判定結果（「利用可否」）とを対応づけて、対応づけ記憶部２０１に格納する（追加）する（ステップＳ３１１）。なお、ここで、対応づけ管理部２１４は、確認要求に対する判定結果として、例えば、利用可否「ＮＧ」を受信した場合であっても、プロキシ情報と、確認要求に対する判定結果とを対応づけ記憶部２０１に格納する。
【０１８２】
上記したステップＳ３０５において、サーバからアクセス応答を正常に受信しない判別すると（ステップＳ３０５否定）、プロキシサーバ２００は、アクセス記憶部を更新する（ステップＳ３１２）。具体的には、プロキシサーバ２００では、サーバ状態管理部２１３が、当該サーバ３００に対応づけられている「状態」を、「ＮＧ」に更新する。
【０１８３】
そして、上記したステップＳ３０３において、サーバ３００の状態が「ＯＫ」でないと判別し（ステップＳ３０３否定）、または、上記したステップＳ３０５において、サーバからアクセス応答を正常に受信しないと判別してアクセス記憶部２０２を更新すると、プロキシサーバ２００は、アクセス要求転送可能なプロキシサーバ２００を問い合わせる（ステップＳ３１３）。つまり、プロキシサーバ２００では、対応づけ管理部２１４が、アクセス要求が指定するサーバに現にアクセスすることが可能であるプロキシサーバを識別する「プロキシ情報」を対応づけ記憶部２０１から取得する。
【０１８４】
そして、プロキシサーバ２００は、取得したプロキシ情報によって識別されるプロキシサーバ２００に、アクセス要求を転送し、通常のプロキシ処理（例えば、ステップＳ３０５〜Ｓ３１１）を実行する（ステップＳ３１４）。
【０１８５】
［実施例１の効果］
従来より、通常、企業内においては、クライアントはプロキシサーバを介して、自分が所属する組織外のサーバ上のサービス（Ｗｅｂコンテンツ、Ｗｅｂアプリ、Ｗｅｂサービスなど）を利用する。このサーバは、それ自身に障害がなくても、ネットワークに障害が発生し、通信が行えなくなると、サーバによって提供されているサービス自体も利用不可能になっていた。
【０１８６】
ここで、クライアントからプロキシサーバまでのネットワークは、ユーザが所属する組織が管理するので、そこに障害が発生しても、比較的速やかに対処することが可能である。しかし、プロキシサーバからサーバに至るネットワークは、ユーザが所属する組織やサービス提供者によって管理されている訳ではないので、一般に、障害が発生すると、速やかに復旧することが困難である。その結果として、長時間に亘って、サービスが利用できなくなり、業務に支障を来たす場合がある。
【０１８７】
そのような場合において、ネットワークの障害を復旧するよりも、別の経路を利用して、サーバにアクセスできるようにすると、ユーザは継続的にサーバを利用でき、得策である。大企業では、複数のプロキシサーバを持ち、複数の異なるネットワークへのアクセスを持っている場合があり、あるプロキシサーバを経由すると、サーバに到達できないが、別のプロキシサーバを経由すると、同じサーバにアクセス可能な場合がある。すなわち、ユーザは、あるサーバが利用不可能な場合、別のプロキシサーバを利用することで、そのサーバを利用できるようになる場合がある。
【０１８８】
例えば、従来より、クライアントで使用するプロキシサーバ２００を自動的に変更（切り替え）するスクリプト（プログラム）を用いる手法が知られている。具体的には、この手法では、管理者がスクリプトを実行することにより、当該スクリプトが、クライアントのブラウザに予め設定されているプロキシサーバに関する設定情報を書き換え、または、使用するネットワークに応じてプロキシサーバを選択して設定する。
【０１８９】
しかし、このような従来の手法では、管理者が、どのような状況でどのプロキシサーバを使用するかを示す設定情報すべてを予め設定する必要があった。また、管理者が、設定情報をメンテナンスする必要があった。
【０１９０】
また、このような従来の手法では、サーバへのアクセス状態に応じて、プロキシサーバを変更する機能は含まれない。このため、サーバにアクセスすることが可能であるプロキシサーバを管理者が探索し、探索して得られたプロキシサーバを用いてアクセスする旨クライアントの設定を管理者が変更し、クライアントが用いるプロキシサーバを手動で変更する必要があった。
【０１９１】
また、従来より、ある特定のブラウザにはＵＲＬごとに自動的にプロキシを切り替えるアドオンが知られている（例えば、Ｍｏｚｉｌｌａ  ＦｉｒｅＦｏｘ用のＦｏｘｙＰｒｏｘｙ）。しかし、このような従来の手法では、ＵＲＬパターンとプロキシサーバの組との設定情報の事前設定と管理やアクセス状態に応じた自動切換えは行うことができない。
【０１９２】
また、従来より、複数のプロキシサーバの通信負荷を考慮し、サーバやクライアントの設定を変更することなく、クライアントからのアクセス要求時に、レスポンス処理に使用するプロキシサーバを動的に変更する手法が知られている。しかしこの手法においては、切り替え対象となるプロキシサーバを予め設定する必要があり、プロキシサーバの管理者に対する負担が大きくなる。また、この手法においては、プロキシサーバの切り替えのトリガがプロキシサーバの通信負荷の増大であり、また、サーバからのレスポンスを処理するプロキシサーバを切り替えるだけである。このため、この手法においては、ネットワークの障害によるサーバの使用不能を回避することはできない。
【０１９３】
また、従来の技術では、ネットワークに障害が発生した後に、サーバにアクセスすることが可能であるプロキシサーバを管理者が探索し、探索して得られたプロキシサーバを用いてアクセスする旨、クライアントの設定を管理者が変更する。このため、ネットワークに障害が発生した際に、サーバにアクセスすることが可能になるまでに大きな時間が必要となっていた。
【０１９４】
このような従来の手法に対して、実施例１によれば、アクセス要求をクライアントから受信するプロキシサーバ２００は、プロキシ情報をアクセス応答とともにサーバ３００もしくは他のプロキシサーバ２００から受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部２０１に格納し、アクセス要求をクライアント１００から受信すると、当該アクセス要求を受信したプロキシサーバ２００が、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定し、現にアクセス可能な状況でないと判定されると、アクセス要求が指定するサーバ３００を識別するサーバ情報を用いて対応づけ記憶部２０１を検索し、当該サーバ情報に対応づけて記憶されているプロキシ情報によって識別されるプロキシサーバ２００であって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバ２００に、当該アクセス要求を転送し、現にアクセス可能な状況であると判定されると、アクセス要求が指定するサーバ３００に、当該アクセス要求を転送する。また、サーバ３００は、転送されたアクセス要求をプロキシサーバ２００から受信すると、当該プロキシサーバ２００を識別するプロキシ情報を、プロキシ記憶部に格納し、プロキシ記憶部３０１に蓄積されているプロキシ情報を、当該プロキシ記憶部３０１から読み出し、読み出したプロキシ情報を、アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバ２００に送信する。これにより、実施例１によれば、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることが可能である。
【０１９５】
また、実施例１によれば、アクセス要求をクライアント１００から受信するプロキシサーバ２００は、アクセス応答をサーバ３００から受信すると、当該アクセス要求が指定するサーバ３００を識別するサーバ情報と当該サーバ３００に現にアクセス可能な状況である旨を示す情報とを対応づけてアクセス記憶部２０２に格納し、アクセス要求を受信すると、当該アクセス要求が指定するサーバ３００を示すサーバ情報に対応づけて、現にアクセス可能な状況である旨がアクセス記憶部２０２に記憶されているかを判別し、現にアクセス可能な状況である旨が記憶されている場合に、現にアクセス可能な状況であると判定し、現にアクセス可能な状況である旨が記憶されていない場合に、現にアクセス可能な状況ではないと判定するので、アクセス要求が指定するサーバ３００にアクセスできるか否かを迅速に判定することが可能である。
【０１９６】
また、実施例１によれば、アクセス記憶部２０２に、アクセス要求が指定するサーバ３００を示すサーバ情報を含む対応づけが記憶されていない場合に、当該アクセス要求が指定するサーバ３００に、当該アクセス要求を転送し、現にアクセス可能な状況であるかを判定するので、アクセス記憶部２０２に現にアクセス可能な状況であるかが記憶されていない場合であっても、現にアクセス可能な状況であるかを判定することが可能である。
【０１９７】
また、実施例１によれば、アクセス要求をクライアント１００から受信するプロキシサーバ２００は、アクセス要求に応答するアクセス応答とともにプロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバ２００であって当該アクセス要求を受信したプロキシサーバ２００以外のプロキシサーバ２００は、確認要求を送信し、送信された確認要求に対応する判定結果を他のプロキシサーバ２００から受信すると、サーバ情報とプロキシ情報との対応づけに対応づけて、受信した判定結果を対応づけ記憶部２０１に格納し、送信された確認要求を他のプロキシサーバ２００から受信するプロキシサーバ２００は、アクセス要求が指定するサーバ３００に現にアクセス可能な状況であるか否かを判定し、判定結果を当該確認要求の送信元のプロキシサーバ２００に送信する。そして、プロキシサーバ２００は、現にアクセス可能な状況ではないと判定すると、現にアクセス要求を転送可能な状況である旨の判定結果と対応づけられているプロキシサーバ２００に、当該アクセス要求を転送する。これにより、対応づけ記憶部２０１に蓄積されている対応づけの内、どの対応づけが有効かを迅速に判別することが可能である。
【０１９８】
また、実施例１によれば、プロキシ記憶部３０１に蓄積されているプロキシ情報の内、アクセス要求の転送元のプロキシサーバ２００以外のプロキシサーバ２００を示すプロキシ情報を読み出し、読み出した当該プロキシ情報をアクセス応答とともに送信するので、使用する可能性のあるプロキシ情報のみを送信することが可能である。
【０１９９】
例えば、プロキシサーバ２００（「１」）に対して、当該プロキシサーバ２００（「１」）を識別するプロキシ情報を送信したとしても、当該プロキシ情報を受信したプロキシサーバ２００（「１」）は、受信したプロキシ情報を使用することはない。実施例１によれば、このような使用する可能性のないプロキシ情報を送信せず、使用する可能性のあるプロキシ情報のみを送信することが可能である。
【実施例２】
【０２００】
さて、これまで、実施例１として、プロキシサーバ２００が、他のプロキシサーバ２００に個別に確認要求を送信する手法について説明したが、本発明はこれに限定されるものではない。例えば、他のプロキシサーバ２００間でＰ２Ｐ（ピアツーピア）ネットワークを構築して用いてもよい。
【０２０１】
具体的には、実施例２に係るアクセス要求転送システムでは、プロキシサーバ２００が、アクセス応答とともにプロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバ２００であって当該アクセス応答を受信したプロキシサーバ２００以外のプロキシサーバ２００と、ピアツーピアネットワークを構築する。そして、プロキシサーバ２００は、構築したピアツーピアネットワークを介して確認要求を送信し、判定結果をピアツーピアネットワークを介して送信する。
【０２０２】
そこで、以下では、図１２を用いて、実施例２として、Ｐ２Ｐネットワークを構築して用いる手法について説明する。なお、以下では、実施例１に係るアクセス要求転送システムと同様の点については、簡単に説明し、または、説明を省略する。なお、図１２は、実施例２に係るアクセス要求転送システムの構成の一例を説明するためのブロック図である。
【０２０３】
図１２に示すように、実施例２に係るアクセス要求転送システムは、新たに、Ｐ２Ｐネットワーク構成管理部を有する。このＰ２Ｐネットワーク構成管理部は、Ｐ２Ｐネットワークのトポロジ（コンピュータネットワークの接続形態）を管理する。具体的には、プロキシサーバ２００が他のどのプロキシサーバ２００とピア関係を結んでいるかを管理する。なお、Ｐ２Ｐネットワーク構成管理部が管理するＰ２Ｐネットワークは、例えば、プロキシ問合せ部２１８が確認要求を送信（または、確認要求に対する判定結果を送信）する際に用いられるものである。
【０２０４】
具体的には、Ｐ２Ｐネットワーク構成管理部は、対応づけ管理部２１４から「プロキシ情報」と「サーバ情報」との対応づけが新たに通知されると、そのプロキシサーバ２００とピア関係を結ぶかどうかを判定する。そして、Ｐ２Ｐネットワーク構成管理部は、ＰＳＰネットワークを構築し、Ｐ２Ｐネットワークの構造を更新する。
【０２０５】
Ｐ２Ｐネットワーク構成管理部は、ピア関係を結ぶかの判定を行う際に、例えば、応答の早いものプロキシサーバ２００である場合や、ネットワーク的に近くにあるプロキシサーバ２００である場合に、ピア関係を結ぶと判定する。
【０２０６】
また、例えば、確認要求を送信する際には、プロキシサーバ２００（プロキシ問合せ部２１８）では、Ｐ２Ｐネットワーク構成管理部によって管理されているＰ２Ｐネットワークを参照し、ピア関係にある他のプロキシサーバ２００に対して確認要求をＰ２Ｐネットワークを介してプロキシＩ／Ｆ部から送信する。
【０２０７】
また、確認要求の問合せをＰ２Ｐネットワークを介してプロキシＩ／Ｆから受信するプロキシサーバ２００は、確認要求を受信した際に、ピア関係にある他のプロキシサーバ２００に確認要求を中継し、得た結果も含めて確認要求の送信元となるプロキシサーバ２００に送信してもよい。
【０２０８】
なお、Ｐ２Ｐネットワーク構成管理部が管理するＰ２Ｐネットワークは、確認要求を送信する場合だけでなく、他の用途に用いてもよい。例えば、実際にアクセスしたサーバ３００へのアクセス状況を、他のプロキシサーバ２００に通知するのに利用しても構わない。
【０２０９】
具体的には、プロキシサーバ２００は、アクセス要求に応答するアクセス応答をサーバから受信すると、当該アクセス応答を受信したプロキシサーバを識別するプロキシ情報並びに当該アクセス要求が指定するサーバ３００を識別するサーバ情報並びに当該サーバ３００に現にアクセス可能な状況である旨を示す情報の対応づけを、ピアツーピアネットワークを介して他のプロキシサーバに通知する。
【０２１０】
また、ピアツーピアネットワークを介して対応づけを通知されるプロキシサーバ２００は、通知されたプロキシ情報とサーバ情報と当該サーバ３００に現にアクセス可能な状況である旨を示す情報との対応づけを、対応づけ記憶部２０１に格納する。
【０２１１】
具体的な例をあげて説明すると、プロキシサーバ２００は、サーバ３００からのアクセス応答を受信するタイミングで、サーバ状態管理部２１３に対してアクセス状況を更新すると同時に、プロキシ問合せ部２１８は、ピア関係にあるプロキシサーバ２００へアクセス状況の通知を行う。例えば、プロキシ問合せ部２１８は、当該プロキシ問合せ部２１８が設置されたプロキシサーバ２００を識別する「プロキシ情報」と、アクセス応答が送信されたサーバを識別する「サーバ情報」と、「状態」とを、ピア関係にある他のプロキシサーバ２００に通知する。
【０２１２】
［実施例２の効果］
上記したように、実施例２によれば、他のプロキシサーバに個別に問い合わせることなく、ピアツーピアネットワークを介してアクセス状況を確認することが可能である。これにより、代替となるプロキシサーバを検索する際の効率が向上することが可能である。
【０２１３】
また、実施例２によれば、ピアツーピアネットワークを利用して、サーバに現にアクセス可能な状況である旨を示す情報を複数のプロキシサーバ間にて簡単に共有することが可能である。
【実施例３】
【０２１４】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、その他の実施例を説明する。
【０２１５】
［判定手法］
なお、実施例１や２では、アクセス要求が指定するサーバを識別する「サーバ情報」を、アクセス記憶部２０２が記憶していない場合について言及しなかったが、本発明はこれに限定されるものではない。具体的には、プロキシサーバ２００は、アクセス要求が指定するサーバを識別する「サーバ情報」をアクセス記憶部２０２が記憶していない場合であってもよい。
【０２１６】
例えば、プロキシサーバ２００は、現にアクセス可能な状況であるか否かを判定するサーバを識別する「サーバ情報」を含む対応づけが、アクセス記憶部２０２に格納されているかを判定する。
【０２１７】
ここで、例えば、プロキシサーバ２００は、現にアクセス可能な状況であるか否かを判定するサーバを識別する「サーバ情報」を含む対応づけが、アクセス記憶部２０２に格納されていると判定した場合に、アクセス記憶部２０２を用いて判定処理を実行する。一方、プロキシサーバ２００は、現にアクセス可能な状況であるか否かを判定するサーバを識別する「サーバ情報」を含む対応づけが、アクセス記憶部２０２に格納されていないと判定した場合に、当該サーバ３００に実際にデータ（例えば、アクセス要求）を転送し、現にアクセス可能な状況であるかを判定する。
【０２１８】
そして、プロキシサーバ２００は、実際に転送したデータ（例えば、アクセス要求）に対するアクセス応答がサーバ３００から受信した場合に、現にアクセス可能な状況であると判定する。一方、プロキシサーバ２００は、実際に転送したデータ（例えば、アクセス要求）に対するアクセス応答がサーバ３００から受信しなかった場合に、現にアクセス可能な状況ではないと判定する。
【０２１９】
アクセス記憶部２０２が、サーバ情報「Ａ」「Ｂ」「Ｃ」とを含む対応づけのみを記憶している場合を用いて、具体的な一例をあげて説明する。プロキサーバ３００は、サーバ情報「Ｄ」について判定する場合に、サーバ情報「Ｄ」を含む対応づけがアクセス記憶部２０２に格納されていないと判定する。そして、プロキサーバ３００は、サーバ「Ｄ」に対して、実際にアクセス要求を転送する。そして、プロキサーバ３００は、転送したアクセス要求に対するアクセス応答をサーバ「Ｄ」から受信した場合に、現にアクセス可能な状況であると判定する。一方、プロキサーバ３００は、転送したアクセス要求に対するアクセス応答をサーバ「Ｄ」から受信しなかった場合に（例えば、アクセス要求を転送した後に、所定の時間内にアクセス応答を受信しなかった場合に）、現にアクセス可能な状況ではないと判定する。
【０２２０】
なお、その際には、「更新時間」を用いて判定処理を決定してもよい。例えば、「更新時間」が予め設定される閾値以内にあるかを判定し、閾値以内にある場合には、アクセス記憶部２０２を用いて判定し、閾値以内にない場合には、実際にデータを転送して判定してもよい。
【０２２１】
［判定手法］
実施例１や２では、プロキシサーバ２００が、「サーバ情報」と「プロキシ情報」との対応づけを対応づけ記憶部２０１に格納する毎に、確認要求を送信する手法について説明したが、本発明はこれに限定されるものではない。例えば、プロキシサーバ２００は、実際にアクセス要求を他のプロキシサーバ２００に転送する際に、確認要求を送信して「利用可否」を取得してもよい。
【０２２２】
［サーバが送信するプロキシ情報］
また、実施例１や２では、サーバ３００がプロキシサーバ２００に送信するプロキシ情報として、アクセス要求を転送したプロキシサーバ２００以外のプロキシサーバ２００を識別するプロキシ情報を用いる場合について説明した。しかし、本発明はこれに限定されるものではない。例えば、サーバ３００は、プロキシ記憶部３０１に蓄積されているプロキシ情報すべてを送信してもよい。
【０２２３】
また、例えば、サーバ３００は、予め送信するプロキシ情報を選択するポリシを有し、当該ポリシに従って送信するプロキシサーバ２００に送信するプロキシ情報を選択してもよい。具体的な例をあげて説明すると、サーバ３００は、アクセス要求の転送元のプロキシサーバ２００のアドレスとハミング距離が近いものから上位３個を選択し、または、最近アクセスしたもの（「更新日時」が新しいもの）を選択し、または、ＦＱＤＮ（Ｆｕｌｌｙ  Ｑｕａｌｉｆｉｅｄ  Ｄｏｍａｉｎ  Ｎａｍｅ）を見た時にドメインが重なるものを選択してもよい。また、サーバ３００は、アクセス要求の転送元であるプロキシサーバと同一のクラス（例えば、ＩＰアドレスのクラスが同一）であるプロキシ情報を選択してもよい。
【０２２４】
［アクセス要求転送システム構成］
また、実施例１や２では、プロキシサーバ２００を介さずに、クライアント１００がサーバ３００にアクセス要求を送信する場合について言及しなかったが、本発明はこれに限定されるものではない。例えば、本発明を実施するとともに、プロキシサーバ２００を介してアクセス要求がサーバ３００に送信される場合と、プロキシサーバ２００を介さずにアクセス要求がサーバ３００に送信される場合とが混在してもよい。その場合、例えば、サーバ３００は、アクセス要求を受信すると、当該アクセス要求がプロキシサーバ２００を介したアクセス要求かを判別する（例えば、アクセス要求のＵｓｅｒ−Ａｇｅｎｔを調べ、ＳｑｕｉｄやＤｅｌｅＧａｔｅなどプロキシサーバ２００製品の名前が含まれているかどうかを調べて判別する）。そして、サーバ３００は、プロキシサーバ２００を介したアクセス要求であることが分かると、当該プロキシサーバ２００を識別するプロキシ情報を、プロキシ記憶部３０１に格納する。
【０２２５】
［更新］
また、実施例１や２では、記憶部に格納されている情報（「状態」や「利用可否」）を各プロキシサーバ２００が、定期的に更新する手法について言及しなかったが、本発明はこれに限定されるものではない。例えば、プロキシサーバ２００は、タイマを参照し、定期的にサーバの状態情報を他のプロキシサーバ２００とやり取りし、サーバ３００へのアクセスを再試行することによって、「状態」や「利用可否」を定期的に取得して当該情報を更新してもよい。
【０２２６】
なお、その際には、「状態」として、ネットワークに障害が起きた旨を示す「Ｎｅｔｗｏｒｋ  Ｕｎｒｅａｃｈａｂｌｅ」や、タイムアウトを示す「Ｔｉｍｅｏｕｔ」などのネットワークの障害の種類を示す情報を記憶してもよい。
【０２２７】
［アクセス要求転送時］
また、実施例１や２では、アクセス要求転送時に、アクセス要求を転送する他のプロキシサーバ２００がない場合について言及しなかったが、本発明はこれに限定されるものではない。例えば、プロキシサーバ２００は、アクセス要求を転送する他のプロキシサーバ２００がある場合には、当該他のプロキシサーバ２００にアクセス要求を転送する。また、プロキシサーバ２００は、アクセス要求を転送する他のプロキシサーバ２００がない場合には、クライアント１００にエラー（当該アクセス要求をサーバ３００に送信できない旨の情報）を送信してもよい。
【０２２８】
［実施例の組み合わせについて］
また、実施例１では、他のプロキシサーバ２００にアクセス要求を転送する手法を説明する際に、（１）サーバ情報と「状態」とを記憶し、「状態」を用いてアクセス転送先を決定する手法と、（２）アクセス要求が指定するサーバについての対応づけがない場合に、アクセス要求を当該サーバに転送する手法と、（３）当該他のプロキシサーバ２００から当該サーバにアクセスすることが許されるかを確認する手法と、（４）サーバ３００が、当該アクセス要求の送信元以外のプロキシサーバ２００を識別する「プロキシ情報」を送信する手法と、などを併せて説明した。また、実施例２では、（５）ピアツーピアネットワークを用いてプロキシサーバ２００間で情報を送受信する手法と、（６）ピアツーピアネットワークを他のプロキシサーバ２００に情報を通知する手法とを、併せて説明した。
【０２２９】
しかし、本発明の実施の形態は、これに限定されるものではない。例えば、上記した（１）〜（６）の内、いずれか一つまたは複数の手法を合わせて実施してもよい。
【０２３０】
［システム構成］
また、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報（例えば、図１〜図１２）については、特記する場合を除いて任意に変更することができる。
【０２３１】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、プロキシサーバ２００やサーバ３００の各部は適宜統合、分散してもよい。例えば、プロキシポリシ管理部２１５と、サーバ状態管理部２１３と、対応づけ管理部２１４とを統合してもよい。
【０２３２】
また、実施例１や２では、アクセス要求転送システムが有する複数のプロキシサーバ２００それぞれが、同様の機能を有するものとして説明したが、本発明はこれに限定されるものではない。例えば、図２に示した構成部を有するプロキシサーバ２００と、図２に示した構成部を有さないプロキシサーバとが混在している場合であってもよい。
【０２３３】
［プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１３を用いて、上記の実施例と同様の機能を有するアクセス要求転送プログラムを実行するコンピュータの一例を説明する。
【０２３４】
なお、以下では、まず、図１３−１を用いて、アクセス要求転送システムのプロキシサーバ２００として機能するプログラムを実行するコンピュータについて説明し、その後、図１３−２を用いて、アクセス要求転送システムのサーバ３００として機能するプログラムを実行するコンピュータについて説明する。なお、図１３−１と図１３−２とは、実施例１に係るアクセス要求転送システムのプログラムを説明するための図である。
【０２３５】
［プロキシサーバとして機能するプログラム］
まず、アクセス要求転送システムのプロキシサーバ２００として機能するプログラムについて説明する。図１３−１に示すように、コンピュータ３０００は、操作部３００１、マイク３００２、スピーカ３００３、ディスプレイ３００５、通信部３００６、ＣＰＵ３０１０、ＲＯＭ３０１１、ＨＤＤ３０１２、ＲＡＭ３０１３をバス３００９などで接続して構成されている。
【０２３６】
ＲＯＭ３０１１には、上記の実施例１で示したＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１と、プロキシＩ／Ｆ部２１２と、サーバ状態管理部２１３と、対応づけ管理部２１４と、プロキシポリシ管理部２１５と、切り替え判断処理部２１６と、サーバアクセス処理部２１７と、プロキシ問合せ部２１８と、プロキシアクセス処理部２１９と同様の機能を発揮する制御プログラム、つまり、同図に示すように、ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）プログラム３０１１ａと、プロキシＩ／Ｆプログラム３０１１ｂと、サーバ状態管理プログラム３０１１ｃと、対応づけ管理プログラム３０１１ｄと、プロキシポリシ管理プログラム３０１１ｅと、切り替え判断処理プログラム３０１１ｆと、サーバアクセス処理プログラム３０１１ｇと、プロキシ問合せプログラム３０１１ｈと、プロキシアクセス処理プログラム３０１１ｉとが予め記憶されている。なお、これらのプログラム３０１１ａ〜３０１１ｉについては、図２に示したアクセス要求転送システムのプロキシサーバ２００の各構成要素と同様、適宜統合または分離してもよい。
【０２３７】
そして、ＣＰＵ３０１０が、これらのプログラム３０１１ａ〜３０１１ｉをＲＯＭ３０１１から読み出して実行することにより、図１３−１に示すように、各プログラム３０１１ａ〜３０１１ｉについては、ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）プロセス３０１０ａと、プロキシＩ／Ｆプロセス３０１０ｂと、サーバ状態管理プロセス３０１０ｃと、対応づけ管理プロセス３０１０ｄと、プロキシポリシ管理プロセス３０１０ｅと、切り替え判断処理プロセス３０１０ｆと、サーバアクセス処理プロセス３０１０ｇと、プロキシ問合せプロセス３０１０ｈと、プロキシアクセス処理プロセス３０１０ｉとして機能するようになる。なお、各プロセス３０１０ａ〜３０１０ｉは、図２に示した、ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部２１１と、プロキシＩ／Ｆ部２１２と、サーバ状態管理部２１３と、対応づけ管理部２１４と、プロキシポリシ管理部２１５と、切り替え判断処理部２１６と、サーバアクセス処理部２１７と、プロキシ問合せ部２１８と、プロキシアクセス処理部２１９とにそれぞれ対応する。
【０２３８】
そして、ＨＤＤ３０１２には、対応づけ記憶テーブル３０１２ａと、アクセス記憶テーブル３０１２ｂと、ポリシ記憶テーブル３０１２ｃと、が設けられている。なお、各テーブル３０１２ａ〜３０１２ｃは、図２に示した、対応づけ記憶部２０１と、アクセス記憶部２０２と、ポリシ記憶部２０３とにそれぞれ対応する。
【０２３９】
そして、ＣＰＵ３０１０は、対応づけ記憶テーブル３０１２ａと、アクセス記憶テーブル３０１２ｂと、ポリシ記憶テーブル３０１２ｃとを読み出してＲＡＭ３０１３に格納し、ＲＡＭ３０１３に格納された対応づけ記憶データ３０１３ａと、アクセス記憶データ３０１３ｂと、ポリシ記憶データ３０１３ｃとを用いて、アクセス要求転送プログラムを実行する。
【０２４０】
［サーバとして機能するプログラム］
次に、アクセス要求転送システムのサーバ３００として機能するプログラムについて説明する。図１３−２に示すように、コンピュータ４０００は、操作部４００１、マイク４００２、スピーカ４００３、ディスプレイ４００５、通信部４００６、ＣＰＵ４０１０、ＲＯＭ４０１１、ＨＤＤ４０１２、ＲＡＭ４０１３をバス４００９などで接続して構成されている。
【０２４１】
ＲＯＭ４０１１には、上記の実施例１で示したＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１と、プロキシ情報管理部３１２と、プロキシ情報付与部３１４と、サービス実行部３１３と同様の機能を発揮する制御プログラム、つまり、同図に示すように、ＨＴＴＰ  Ｉ／Ｆ（サーバ）プログラム４０１１ａと、プロキシ情報管理プログラム４０１１ｂと、プロキシ情報付与プログラム４０１１ｃと、サービス実行プログラム４０１１ｄとが予め記憶されている。なお、これらのプログラム４０１１ａ〜４０１１ｄについては、図２に示したアクセス要求転送システムのサーバ３００の各構成要素と同様、適宜統合または分離してもよい。
【０２４２】
そして、ＣＰＵ４０１０が、これらのプログラム４０１１ａ〜４０１１ｄをＲＯＭ４０１１から読み出して実行することにより、図１３−２に示すように、各プログラム４０１１ａ〜４０１１ｄについては、ＨＴＴＰ  Ｉ／Ｆ（サーバ）プロセス４０１０ａと、プロキシ情報管理プロセス４０１０ｂと、プロキシ情報付与プロセス４０１０ｃと、サービス実行プロセス４０１０ｄとして機能するようになる。なお、各プロセス４０１０ａ〜４０１０ｄは、図２に示した、ＨＴＴＰ  Ｉ／Ｆ（サーバ）部３１１と、プロキシ情報管理部３１２と、プロキシ情報付与部３１４と、サービス実行部３１３とにそれぞれ対応する。
【０２４３】
そして、ＨＤＤ４０１２には、プロキシ記憶テーブル４０１２ａが設けられている。なお、各テーブル４０１２ａは、図２に示した、プロキシ記憶部３０１にそれぞれ対応する。
【０２４４】
そして、ＣＰＵ４０１０は、プロキシ記憶テーブル４０１２ａを読み出してＲＡＭ４０１３に格納し、ＲＡＭ４０１３に格納されたプロキシ記憶データ４０１３ｄを用いて、アクセス要求転送プログラムを実行する。
【０２４５】
以上の実施例１〜３を含む実施形態に関し、更に以下の付記を開示する。
【０２４６】
（付記１）複数のプロキシサーバを含むネットワークにおいて、クライアントから送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに転送するアクセス要求転送方法をコンピュータに実行させるアクセス要求転送プログラムであって、
前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
プロキシサーバを識別するプロキシ情報を、前記アクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部に格納する対応づけ格納手順と、
アクセス要求をクライアントから受信すると、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定手順と、
前記判定手順によって現にアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されている前記プロキシ情報によって識別される前記プロキシサーバであって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送手順と、
前記判定手順によって現にアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送手順と、
を実行させ、
前記サーバとして用いられるコンピュータに、
前記第二のアクセス要求転送手順によって転送された前記アクセス要求を前記プロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ情報を蓄積しているプロキシ記憶部に格納するプロキシ情報格納手順と、
前記プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出し、読み出したプロキシ情報を、前記アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信するアクセス応答送信手順と、
を実行させることを特徴とするアクセス要求転送プログラム。
【０２４７】
（付記２）前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
アクセス要求に応答するアクセス応答をサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該サーバに現にアクセス可能な状況である旨を示す情報とを対応づけてアクセス記憶部に格納するアクセス情報格納手順をさらに実行させ、
前記判定手順は、前記アクセス要求を受信すると、当該アクセス要求が指定するサーバを示す前記サーバ情報に対応づけて、現にアクセス可能な状況である旨が前記アクセス記憶部に記憶されているかを判別し、現にアクセス可能な状況である旨が記憶されている場合に、現にアクセス可能な状況であると判定し、現にアクセス可能な状況である旨が記憶されていない場合に、現にアクセス可能な状況ではないと判定することを特徴とする付記１に記載のアクセス要求転送プログラム。
【０２４８】
（付記３）前記判定手順は、前記アクセス記憶部に、前記アクセス要求が指定するサーバを示す前記サーバ情報を含む対応づけが記憶されていない場合に、当該アクセス要求が指定するサーバに、当該アクセス要求を転送し、現にアクセス可能な状況であるかを判定することを特徴とする付記２に記載のアクセス要求転送プログラム。
【０２４９】
（付記４）前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
前記アクセス要求に応答するアクセス応答とともに前記プロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバであって当該アクセス要求を受信したプロキシサーバ以外のプロキシサーバに、当該プロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス要求を転送可能な状況であるか否かを確認する要求である確認要求を送信する確認要求送信手順と、
前記確認要求送信手順によって送信された前記確認要求に対応する判定結果を他のプロキシサーバから受信すると、当該確認要求によって現にアクセス要求を転送可能な状況であるか否かを確認したサーバを示す前記サーバ情報と当該他のプロキシサーバを示す前記プロキシ情報との対応づけに対応づけて、受信した判定結果を前記対応づけ記憶部に格納する判定結果格納手順と、
をさらに実行させ、
前記確認要求送信手順によって送信された前記確認要求を他のプロキシサーバから受信するプロキシサーバとして用いられるコンピュータに、
前記確認要求を受信したプロキシサーバが、前記アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する確認要求判定手順と、
前記確認要求判定手順によって判定された判定結果を当該確認要求の送信元のプロキシサーバに送信する判定結果送信手順と、
をさらに実行させ、
前記第一のアクセス要求転送手順は、現にアクセス要求を転送可能な状況である旨の判定結果と対応づけられているプロキシサーバに、当該アクセス要求を転送することを特徴とする付記１〜３のいずれか一つに記載のアクセス要求転送プログラム。
【０２５０】
（付記５）前記アクセス応答送信手順は、前記プロキシ記憶部に蓄積されている前記プロキシ情報の内、前記アクセス要求の転送元のプロキシサーバ以外のプロキシサーバを示すプロキシ情報を読み出し、読み出した当該プロキシ情報をアクセス応答とともに送信することを特徴とする付記１〜４のいずれか一つに記載のアクセス要求転送プログラム。
【０２５１】
（付記６）前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
前記アクセス応答とともに前記プロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバであって当該アクセス応答を受信したプロキシサーバ以外のプロキシサーバと、ピアツーピアネットワークを構築する構築手順をさらに実行させ、
前記確認要求送信手順は、前記構築手順によって構築された前記ピアツーピアネットワークを介して前記確認要求を送信し、
前記判定結果送信手順は、前記判定結果を前記ピアツーピアネットワークを介して送信することを特徴とする付記４または５に記載のアクセス要求転送プログラム。
【０２５２】
（付記７）前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
前記アクセス応答とともに前記プロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバであって当該アクセス応答を受信したプロキシサーバ以外のプロキシサーバと、ピアツーピアネットワークを構築する構築手順をさらに実行させ、
前記アクセス要求に応答するアクセス応答を前記サーバから受信すると、当該アクセス応答を受信したプロキシサーバを識別する前記プロキシ情報並びに当該アクセス要求が指定するサーバを識別する前記サーバ情報並びに当該サーバに現にアクセス可能な状況である旨を示す情報の対応づけを、前記ピアツーピアネットワークを介して他のプロキシサーバに通知する通知手順と、
前記通知手順によって前記ピアツーピアネットワークを介して前記対応づけを通知されるプロキシサーバとして用いられるコンピュータに、
前記通知手順によって通知された前記プロキシ情報と前記サーバ情報と当該サーバに現にアクセス可能な状況である旨を示す情報との対応づけを、前記対応づけ記憶部に格納する通知後格納手順をさらに実行させることを特徴とする付記４〜６のいずれか一つに記載のアクセス要求転送プログラム。
【０２５３】
（付記８）複数のプロキシサーバを含むネットワークにおいて、クライアントから送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに転送するアクセス要求転送システムであって、
前記アクセス要求をクライアントから受信するプロキシサーバは、
プロキシサーバを識別するプロキシ情報を、前記アクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部に格納する対応づけ格納手段と、
アクセス要求をクライアントから受信すると、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定手段と、
前記判定手段によって現にアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されている前記プロキシ情報によって識別される前記プロキシサーバであって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送手段と、
前記判定手段によって現にアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送手段と、
を備え、
前記サーバは、
前記第二のアクセス要求転送手段によって転送された前記アクセス要求を前記プロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ情報を蓄積しているプロキシ記憶部に格納するプロキシ情報格納手段と、
前記プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出し、読み出したプロキシ情報を、前記アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信するアクセス応答送信手段と、
を備えることを特徴とするアクセス要求転送システム。
【０２５４】
（付記９）複数のプロキシサーバを含むネットワークにおいて、クライアントから送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに転送するアクセス要求転送方法であって、
前記アクセス要求をクライアントから受信するプロキシサーバは、
プロキシサーバを識別するプロキシ情報を、前記アクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部に格納する対応づけ格納工程と、
アクセス要求をクライアントから受信すると、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定工程と、
前記判定工程によって現にアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されている前記プロキシ情報によって識別される前記プロキシサーバであって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送工程と、
前記判定工程によって現にアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送工程と、
を含み、
前記サーバは、
前記第二のアクセス要求転送工程によって転送された前記アクセス要求を前記プロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ情報を蓄積しているプロキシ記憶部に格納するプロキシ情報格納工程と、
前記プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出し、読み出したプロキシ情報を、前記アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信するアクセス応答送信工程と、
を含むことを特徴とするアクセス要求転送方法。
【０２５５】
（付記１０）他サーバに通信可能に接続されるプロキシサーバであって、
プロキシサーバを識別する情報としてサーバに蓄積されたプロキシ情報であってアクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信したプロキシ情報を、当該アクセス要求が指定するサーバを識別するサーバ情報に対応づけて格納する対応づけ記憶部と、
クライアントが発したアクセス要求を受信すると、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定手段と、
前記判定手段によって、前記アクセス要求が指定するサーバにアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけられたプロキシ情報によって識別されるプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送手段と、
前記判定手段によって前記アクセス要求が指定するサーバにアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送手段と、
を備えたことを特徴とするプロキシサーバ。
【図面の簡単な説明】
【０２５６】
【図１】実施例１に係るアクセス要求転送システムの概要を説明するための図である。
【図２】実施例１に係るアクセス要求転送システムの構成の一例を説明するためのブロック図である。
【図３】実施例１における対応づけ記憶部に格納されている情報の一例を説明するための図である。
【図４】実施例１におけるアクセス記憶部に格納されている情報の一例を説明するための図である。
【図５】実施例１におけるポリシ記憶部に格納されている情報の一例を説明するための図である。
【図６】実施例１におけるプロキシ記憶部に格納されている情報の一例を説明するための図である。
【図７】実施例１におけるサーバからの接続応答の一例を説明するための図である。
【図８−１】実施例１における情報の流れの一例を説明するための図である。
【図８−２】実施例１における情報の流れの一例を説明するための図である。
【図９】実施例１におけるアクセス要求転送システムの処理の流れの一例を示すシーケンス図である。
【図１０】実施例１におけるアクセス要求転送システムの処理の流れの一例を示すシーケンス図である。
【図１１】実施例１におけるアクセス要求転送システムの処理の流れの一例を示すフローチャートである。
【図１２】実施例２に係るアクセス要求転送システムの構成の一例を説明するためのブロック図である。
【図１３−１】実施例１に係るアクセス要求転送システムのプログラムを説明するための図である。
【図１３−２】実施例１に係るアクセス要求転送システムのプログラムを説明するための図である。
【符号の説明】
【０２５７】
１００  クライアント
１０１  ブラウザ
２００  プロキシサーバ
２０１  対応づけ記憶部
２０２  アクセス記憶部
２０３  ポリシ記憶部
２１１  ＨＴＴＰ  Ｉ／Ｆ（プロキシサーバ）部
２１２  プロキシＩ／Ｆ部
２１３  サーバ状態管理部
２１４  対応づけ管理部
２１５  プロキシポリシ管理部
２１６  切り替え判断処理部
２１７  サーバアクセス処理部
２１８  プロキシ問合せ部
２１９  プロキシアクセス処理部
３００  サーバ
３０１  プロキシ記憶部
３１１  ＨＴＴＰ  Ｉ／Ｆ（サーバ）部
３１２  プロキシ情報管理部
３１３  サービス実行部
３１４  プロキシ情報付与部
【図１】
0004978537.tif 000002
【図２】
0004978537.tif 000003
【図３】
0004978537.tif 000004
【図４】
0004978537.tif 000005
【図５】
0004978537.tif 000006
【図６】
0004978537.tif 000007
【図７】
0004978537.tif 000008
【図８−１】
0004978537.tif 000009
【図８−２】
0004978537.tif 000010
【図９】
0004978537.tif 000011
【図１０】
0004978537.tif 000012
【図１１】
0004978537.tif 000013
【図１２】
0004978537.tif 000014
【図１３−１】
0004978537.tif 000015
【図１３−２】
0004978537.tif 000016