説明

アクセス要求転送システム、アクセス要求転送方法およびアクセス要求転送プログラム

【課題】ネットワークに障害が発生した際に、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることを課題とする。
【解決手段】開示のアクセス転送システムによれば、アクセス要求をクライアントから受信すると、プロキシサーバは、当該アクセス要求が指定するサーバに現にアクセス可能かを判定し、アクセス可能でないと判定すると、対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されているプロキシ情報によって識別されるプロキシサーバに、当該アクセス要求を転送する。また、サーバは、アクセス要求をプロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報をプロキシ記憶部に格納し、プロキシ記憶部に蓄積されているプロキシ情報を、アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、アクセス要求転送システム、アクセス要求転送方法およびアクセス要求転送プログラムに関する。
【背景技術】
【0002】
クライアントからサーバにアクセスする際に、クライアントが、クライアントを利用する利用者によって予め設定されたプロキシサーバを介してサーバにアクセスするシステムがある。このようなシステムにおいて、例えば、予め設定されたプロキシサーバからサーバにアクセスすることが可能でない場合(例えば、ネットワークに障害が発生した場合など)がある。このため、このようなシステムでは、従来より、クライアントが用いるプロキシサーバを変更する手法が複数知られている。
【0003】
例えば、プロキシサーバを手動で変更する手法が知られている。具体的な一例をあげて説明すると、例えば、クライアントの設定を、当該クライントを利用する利用者が変更することにより、クライアントが用いるプロキシサーバを手動で変更する手法が知られている。
【0004】
また、例えば、プロキシサーバを自動で変更する手法が知られている。具体的な一例をあげて説明すると、例えば、クライアントが、使用するネットワークに応じて、用いるプロキシサーバを自動で選択して変更する手法が知られている。また、例えば、クライアントが、サーバ(URL(Uniform Resource Locator))ごとに用いるプロキシサーバを自動で変更する手法が知られている。また、例えば、特許文献1には、プロキシサーバの通信負荷が増大した際に、クライアントが、利用者が予め設定した別のプロキシサーバに自動で変更する手法が開示されている。
【0005】
【特許文献1】特開2002−271415号公報(第5−12頁、第1図)
【発明の開示】
【発明が解決しようとする課題】
【0006】
ところで、上記した従来の手法では、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることができないという課題があった。
【0007】
例えば、上記した手動で変更する手法では、クライアントは、クライアントを管理する管理者によって予め設定されたプロキシサーバを介して、サーバにアクセスする。ここで、クライアントは、予め設定されたプロキシサーバからサーバにアクセスすることが可能ではなくなった場合(例えば、ネットワークに障害が発生)には、管理者によって、別のプロキシサーバ(サーバにアクセスすることが可能であるプロキシサーバ)に変更される。その後、クライアントは、サーバにアクセスする。このため、上記した手動で変更する手法では、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることができなかった。
【0008】
また、例えば、上記した自動で変更する手法では、サーバへのアクセス状態(アクセスすることが可能であるか否か)に応じて設定を切り替えることができなかった。つまり、予め設定されたプロキシサーバからサーバにアクセスすることが可能ではなくなった場合には、当該アクセス状態に応じて設定を変更することができなかった。このため、上記した自動で変更する手法では、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることができなかった。
【0009】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることが可能であるアクセス要求転送システム、アクセス要求転送方法およびアクセス要求転送プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決し、目的を達成するため、このアクセス要求転送システムは、複数のプロキシサーバを含むネットワークにおいて、クライアントから送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに転送するアクセス要求転送方法をコンピュータに実行させるアクセス要求転送プログラムであって、前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、プロキシサーバを識別するプロキシ情報を、前記アクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部に格納する対応づけ格納手順と、アクセス要求をクライアントから受信すると、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定手順と、前記判定手順によって現にアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されている前記プロキシ情報によって識別される前記プロキシサーバであって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送手順と、前記判定手順によって現にアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送手順と、を実行させ、前記サーバとして用いられるコンピュータに、前記第二のアクセス要求転送手順によって転送された前記アクセス要求を前記プロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ情報を蓄積しているプロキシ記憶部に格納するプロキシ情報格納手順と、前記プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出し、読み出したプロキシ情報を、前記アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信するアクセス応答送信手順と、を実行させることを要件とする。
【発明の効果】
【0011】
開示のアクセス要求転送システムによれば、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることが可能である。
【発明を実施するための最良の形態】
【0012】
以下に添付図面を参照して、この発明に係るアクセス要求転送システム、アクセス要求転送方法およびアクセス要求転送プログラムの実施例を詳細に説明する。なお、以下では、実施例1に係るアクセス要求転送システムの概要、アクセス要求転送システムの構成および処理の流れを順に説明し、その後、その他の実施例について説明する。
【実施例1】
【0013】
[アクセス要求転送システムの概要]
まず最初に、図1を用いて、実施例1に係るアクセス要求転送システムの概要を説明する。図1は、実施例1に係るアクセス要求転送システムの概要を説明するための図である。
【0014】
同図に示すように、実施例1に係るアクセス要求転送システムは、複数のプロキシサーバと、クライアントと、サーバとを含むものである。また、複数のプロキシサーバと、クライアントと、サーバとは、ネットワークを介して接続している。ここで、実施例1に係るアクセス要求転送システムは、クライアント(ユーザ端末)から送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに、プロキシサーバを介して転送する。なお、アクセス要求とは、例えば、特定のサーバと情報の送受信を行う要求が該当する。
【0015】
なお、以下では、実施例1に係るアクセス要求転送システムは、一つのクライアントと、複数のプロキシサーバ(図1に示す例では、「1」および「2」)とを有するものとして説明する。また、実施例1に係るアクセス要求転送システムは、複数のサーバを有し、その内の一つのサーバ(図1に示す例では、サーバ「A」)と情報の送受信をすることを要求するアクセス要求を、クライアントが送信した場合を例に説明する。
【0016】
そして、以下で説明するように、実施例1に係るアクセス要求転送システムは、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることが可能である。
【0017】
なお、以下では、まず、プロキシサーバ「1」からサーバにアクセス可能である場合について説明し、その後、プロキシサーバ「1」からサーバにアクセス可能でない場合について説明する。
【0018】
[アクセス可能時]
まず、プロキシサーバ「1」からサーバにアクセス可能である場合について説明する。実施例1に係るアクセス要求転送システムでは、図1の(1)に示すように、プロキシサーバが、サーバを識別する「サーバ情報」とプロキシサーバを識別する「プロキシ情報」とを対応づけて記憶する対応づけ記憶部を有する。
【0019】
また、実施例1に係るアクセス要求転送システムでは、図1の(2)に示すように、サーバが、プロキシ情報を蓄積しているプロキシ記憶部を有する。例えば、プロキシ記憶部は、図1の(2)に示す例では、プロキシ情報「2」を記憶する。
【0020】
このような記憶部を有するプロキシサーバとサーバとを有する実施例1に係るアクセス要求転送システムでは、図1の(3)に示すように、クライアントが、アクセス要求をプロキシサーバに送信する。例えば、クライアントは、サーバ「A」と情報の送受信をすることを要求するアクセス要求を、プロキシサーバ「1」に送信する。
【0021】
そして、実施例1に係るアクセス要求転送システムでは、図1の(4)に示すように、プロキシサーバが、アクセス要求をクライアントから受信する。そして、実施例1に係るアクセス要求転送システムでは、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する。図1の例を用いて説明すると、プロキシサーバ「1」は、サーバ「A」にアクセス可能であるか否かを判定する。
【0022】
そして、実施例1に係るアクセス要求転送システムでは、図1の(4)において、現にアクセス可能な状況であると判定すると、図1の(5)に示すように、プロキシサーバが、アクセス要求が指定するサーバに、当該アクセス要求を転送する。例えば、プロキシサーバ「1」は、クライアントから受信したアクセス要求を、サーバ「A」に転送する。
【0023】
そして、実施例1に係るアクセス要求転送システムでは、図1の(6)に示すように、転送されたアクセス要求をプロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ記憶部に格納する。例えば、サーバは「A」は、図1の(6)に示す例では、プロキシサーバ「1」からアクセス要求を受信する。そして、サーバ「A」は、プロキシサーバ「1」を識別するプロキシ情報「1」を、プロキシ記憶部に格納する。
【0024】
このように、サーバは、当該サーバにアクセスすることが可能であるプロキシサーバを識別するプロキシ情報を、プロキシ記憶部に蓄積するものである。なお、プロキシ記憶部に格納されているプロキシ情報「2」は、プロキシ情報「1」と同様の処理によって、プロキシ記憶部に格納されるものである。例えば、サーバは、プロキシサーバ「2」から転送されたアクセス要求を受信すると、プロキシ情報「2」を、プロキシ記憶部に格納する。
【0025】
そして、実施例1に係るアクセス要求転送システムでは、図1の(7)に示すように、サーバは、プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出す。そして、サーバは、読み出したプロキシ情報を、アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信する。
【0026】
例えば、サーバ「A」は、プロキシ記憶部からプロキシ情報「2」を読み出す。そして、サーバ「A」は、プロキシ情報「2」を、アクセス応答とともにプロキシサーバ「1」に送信する。
【0027】
そして、実施例1に係るアクセス要求転送システムでは、図1の(8)に示すように、プロキシサーバが、プロキシ情報をアクセス応答とともにサーバから受信する。そして、実施例1に係るアクセス要求転送システムでは、プロキシサーバが、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて、対応づけ記憶部に格納する。
【0028】
例えば、プロキシサーバが、サーバ「A」からプロキシ情報「2」を受信した場合を例に、具体的に説明する。プロキシサーバ「1」は、サーバ情報「A」に対応づけて、プロキシ情報「2」を、対応づけ記憶部に格納する。
【0029】
このように、プロキシサーバは、サーバから、当該サーバにアクセスすることが可能であるプロキシサーバを識別するプロキシ情報を受信する。そして、プロキシサーバは、サーバ情報毎に、当該サーバ情報によって識別されるサーバから受信したプロキシ情報(当該サーバにアクセスすることが可能であるプロキシサーバを識別するプロキシ情報)を、対応づけ記憶部に、蓄積するものである。
【0030】
そして、実施例1に係るアクセス要求転送システムでは、プロキシサーバが、図1の(9)に示すように、サーバから受信したアクセス応答を、クライアントに転送する。
【0031】
[アクセス不可時]
次に、プロキシサーバ「1」からサーバにアクセス可能でない場合について説明する。なお、実施例1に係るアクセス要求転送システムでは、対応づけ記憶部が、図1の(1)に示すように、プロキシ情報「2」とサーバ情報「A」とを対応づけて記憶するものとして説明する。
【0032】
実施例1に係るアクセス要求転送システムでは、上記した図1の(4)において、プロキシサーバが、現にアクセス可能な状況でないと判定する。そして、実施例1に係るアクセス要求転送システムでは、プロキシサーバが、アクセス要求が指定するサーバを識別するサーバ情報を用いて対応づけ記憶部を検索する。そして、プロキシサーバは、図1の(10)に示すように、当該サーバ情報に対応づけて記憶されているプロキシ情報によって識別されるプロキシサーバに、当該アクセス要求を転送する。
【0033】
例えば、プロキシサーバ「1」は、サーバ「A」にアクセス可能な状況ではないと判定すると、対応づけ記憶部を検索する。そして、プロキシサーバ「1」は、サーバ情報「A」に対応づけられているプロキシ情報「2」を、対応づけ記憶部から読み出す。そして、プロキシサーバ「1」は、クライアントから受信したアクセス要求を、プロキシサーバ「2」に転送する。
【0034】
そして、実施例1に係るアクセス要求転送システムでは、図1の(11)に示すように、プロキシサーバ「2」が、プロキシサーバ「1」から転送されたアクセス要求をサーバ「A」に転送する。
【0035】
そして、実施例1に係るアクセス要求転送システムでは、図1の(12)から(14)に示すように、アクセス応答がサーバからクライアントに送信される。
【0036】
このようなことから、実施例1に係るアクセス要求転送システムは、上記した如く、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることが可能である。
【0037】
[アクセス要求転送システムの構成]
次に、図2を用いて、図1に示したアクセス要求転送システムの構成を説明する。以下では、まず、クライアントの構成について説明し、続いて、プロキシサーバの構成について説明する。その後、サーバの構成について説明する。なお、図2は、実施例1に係るアクセス要求転送システムの構成の一例を説明するためのブロック図である。
【0038】
なお、以下では、アクセス要求転送システムが、一つのクライアント100と、二つのプロキシサーバ200とを有するものとして説明する。また、アクセス要求転送システムは、複数のサーバ300を有し、その内の一つのサーバ300(図1に示す例では、サーバ「A」)と情報の送受信をすることを要求するアクセス要求を、クライアントが送信した場合を例に説明する。
【0039】
なお、以下では、プロキシサーバ200各々を識別するプロキシ情報や、サーバ300を識別するサーバ情報として、説明の便宜上、「1」や「2」などの数字や「A」や「B」などのアルファベットを用いて説明する。なお、サーバ300を識別するサーバ情報としては、実際には、アドレスやドメイン名などが用いられるものである。
【0040】
また、実施例1では、アクセス要求転送システムに含まれる複数のプロキシサーバ200それぞれは、同じ構成部を有し、同様の機能を有するものとして説明する。なお、図2に示す例では、二つのプロキシサーバ(「1」と「2」)の構成を示しているが、これは、プロキシサーバ間の関係を示すためである。このため、説明の便宜上、プロキシサーバ「2」には、プロキシサーバ「1」が有する構成の一部のみを示す。
【0041】
また、以下に説明するプロキシサーバ200は、他のプロキシサーバ200にアクセス要求を転送し、また、他のプロキシサーバ200からアクセス要求を転送されるものであるものとして説明する。また、同様に、以下に説明するプロキシサーバ200は、他のプロキシサーバ200に確認要求(後述)や判定結果(後述)などを送信し、また、他のプロキシサーバ200から確認要求(後述)や判定結果(後述)などを受信するものであるものとして説明する。
【0042】
また、以下の記載では、例を用いて説明する際には、プロキシサーバ「1」を主体として説明する。例えば、他のプロキシサーバ200にアクセス要求を転送する際には、プロキシサーバ「1」がプロキシサーバ「2」にアクセス要求を転送するものとして説明する。また、同様に、他のプロキシサーバ200からアクセス要求を転送される際には、プロキシサーバ「1」がプロキシサーバ「2」からアクセス要求を転送されるものとして説明する。
【0043】
[クライアント]
まず、クライアント100について説明する。クライアント100は、ネットワークを介して、プロキシサーバ200と接続する。また、クライアント100は、特に本発明に密接に関連するものとして、ブラウザ101を有する。
【0044】
ブラウザ101は、ネットワークを介してプロキシサーバ200にアクセス要求を送信する。具体的には、ブラウザ101は、使用するプロキシサーバ200を識別するプロキシ情報を予め記憶している。なお、このプロキシ情報は、例えば、クライアント100を管理する管理者によって、ブラウザ101に予め格納されるものである。また、ブラウザ101は、予め記憶しているプロキシ情報によって識別されるプロキシサーバ200に、アクセス要求を送信する。
【0045】
例えば、ブラウザ101が、プロキシ情報「1」を予め記憶している場合を例に、具体的に説明する。ブラウザ101は、クライアント100を利用する利用者からサーバ「A」と情報の送受信を行うアクセス要求を送信する指示を入力された後、アクセス要求をプロキシサーバ「1」に送信する。
【0046】
[プロキシサーバ]
次に、プロキシサーバ200について、図3〜図7を併せて用いて説明する。なお、図3は、実施例1における対応づけ記憶部に格納されている情報の一例を説明するための図である。図4は、実施例1におけるアクセス記憶部に格納されている情報の一例を説明するための図である。図5は、実施例1におけるポリシ記憶部に格納されている情報の一例を説明するための図である。図6は、実施例1におけるプロキシ記憶部に格納されている情報の一例を説明するための図である。図7は、実施例1におけるサーバからのアクセス応答の一例を説明するための図である。
【0047】
プロキシサーバ200は、クライアント100とサーバ300と、ネットワークを介して接続する。また、プロキシサーバ200は、他のプロキシサーバ200と、ネットワークを介して接続する。例えば、プロキシサーバ「1」は、プロキシサーバ「2」とネットワークを介して接続している。また、プロキシサーバ200は、クライアント100からサーバ300に送信されたアクセス要求を受信し、受信したアクセス要求をサーバ300や他のプロキシサーバ200に転送する。また、プロキシサーバ200は、サーバ300からクライアント100に送信されたアクセス応答を受信し、受信したアクセス応答をクライアント100や他のプロキシサーバ200に転送するものである。
【0048】
プロキシサーバ200は、特に本発明に密接に関連する記憶部として、対応づけ記憶部201と、アクセス記憶部202と、ポリシ記憶部203と、を有する。対応づけ記憶部201は、特許請求の範囲に記載の「対応づけ記憶部」に対応する。アクセス記憶部202は、特許請求の範囲に記載の「アクセス記憶部」に対応する。
【0049】
対応づけ記憶部201は、サーバ情報とプロキシ情報とを対応づけて記憶する。例えば、図3に示すように、対応づけ記憶部201は、「サーバ情報」に対応づけて、「プロキシ情報」と、「利用可否」と、更新された日時を示す「更新日時」と、を記憶する。なお、「利用可否」とは、当該「利用可否」に対応づけられた「プロキシ情報」によって識別されるプロキシサーバが、当該「利用可否」に対応づけられた「サーバ情報」によって識別されるサーバ300にアクセス要求を転送可能かを示す情報である。
【0050】
例えば、プロキシサーバ200の運用ポリシとして、部外者からのアクセスを許可していない場合もある。この「利用可否」は、クライアント100からのアクセス要求を他のプロキシサーバ200に転送する際に、その候補として選ばれないようにするための情報として用いられる。
【0051】
具体的な例をあげて説明すると、対応づけ記憶部201は、サーバ情報「A」に対応づけて、プロキシ情報「2」と、利用可否「OK」と、更新日時「2007−08−29T19:17:40Z」と、を記憶する。
【0052】
なお、実施例1では、図3に示すように、対応づけ記憶部201が、「サーバ情報」に対応づけて、「プロキシ情報」と「利用可否」と「更新日時」とを記憶する場合を用いて説明するが、本発明はこれに限定されるものではない。例えば、対応づけ記憶部201は、「サーバ情報」に対応づけて、「プロキシ情報」のみを記憶してもよい。また、例えば、対応づけ記憶部201は、「サーバ情報」に対応づけて、「プロキシ情報」を記憶し、「利用可否」と「更新日時」の内いずれか一方を記憶してもよい。
【0053】
また、対応づけ記憶部201は、後述する対応づけ管理部214によって情報が格納されるものである。また、対応づけ記憶部201に格納された情報は、後述する対応づけ管理部214によって用いられるものである。
【0054】
アクセス記憶部202は、サーバごとに、サーバに現にアクセス可能な状況であるか否かを記憶する。例えば、図4に示すように、アクセス記憶部202は、「サーバ情報」に対応づけて、対応づけられたサーバ情報によって識別されるサーバに現にアクセス可能な状況であるかを示す情報である「状態」と、「更新日時」とを記憶する。
【0055】
具体的な例をあげて説明すると、アクセス記憶部202は、サーバ情報「A」に対応づけて、状態「OK」と、更新日時「2007−08−30T09:27:30Z」と、を記憶する。
【0056】
なお、実施例1では、図4に示すように、アクセス記憶部202が、「サーバ情報」に対応づけて、「状態」と「更新日時」とを記憶する場合を用いて説明するが、本発明はこれに限定されるものではない。例えば、アクセス記憶部202は、「サーバ情報」に対応づけて、「状態」のみを記憶してもよい。
【0057】
また、アクセス記憶部202は、後述するサーバ状態管理部213によって情報が格納されるものである。また、アクセス記憶部202に格納された情報は、後述するサーバ状態管理部213によって用いられるものである。
【0058】
ポリシ記憶部203は、プロキシサーバ200を運用する上で用いられるポリシを記憶する。例えば、図5に示すように、ポリシ記憶部203は、ポリシの一例として、「同一ドメイン内のリクエスト(アクセス要求)を中継する」を記憶し、「特定ユーザ(例えば、クライアント100や、プロキシサーバ200)からのリクエストを中継する」を記憶する。
【0059】
また、ポリシ記憶部203は、プロキシサーバ200を管理する管理者によって、ポリシを予め格納されるものである。また、ポリシ記憶部203に格納されたポリシは、他のプロキシサーバから確認要求(後述)が送信されると、後述するプロキシポリシ管理部215によって用いられるものである。
【0060】
なお、ここで、対応づけ記憶部201に記憶している情報と、アクセス記憶部202に記憶している情報との違いについて、簡単に説明する。
【0061】
まず、対応づけ記憶部201に記憶している情報は、当該対応づけ記憶部201が設置されたプロキシサーバ200以外の他のプロキシサーバ200についての情報である。具体的には、対応づけ記憶部201は、当該他のプロキシサーバ200それぞれについて、当該他のプロキシサーバ200からアクセスすることが可能であるサーバ300を記憶するものである。
【0062】
これに対して、アクセス記憶部202に記憶されている情報は、当該アクセス記憶部202が設置されたプロキシサーバ200についての情報である。具体的には、アクセス記憶部202は、サーバ300それぞれについて、当該アクセス記憶部202が設置されたプロキシサーバ200からアクセスすることが可能であるかを記憶するものである。
【0063】
次に、対応づけ記憶部201が記憶する「利用可否」と、アクセス記憶部202が記憶する「状態」との違いについて簡単に説明する。「状態」とは、アクセス記憶部202が設置されているプロキシサーバ200からサーバ300に現にアクセス可能な状況であるかを示す情報である。例えば、当該プロキシサーバ200とサーバ300間のネットワークに異常がなく、プロキシサーバ200からサーバ300に現にアクセス可能である場合には、「OK」となり、可能でない場合には、「NG」となる。一方、「利用可否」とは、対応づけ記憶部201が設置されているプロキシサーバ200から、「利用可否」に対応づけられた他のプロキシサーバ200にアクセス要求を転送することが可能か否かを示す。例えば、「利用可否」に対応づけられた他のプロキシサーバ200にアクセス要求を転送することが可能である場合に、「OK」となり、可能でない場合に、「NG」となる。
【0064】
具体的な一例をあげて説明すると、プロキシサーバ「1」が、プロキシ情報「2」に対応付けて利用可否「NG」を記憶するのは、次のような場合となる。例えば、プロキシサーバ「2」が、プロキシサーバ「2」に設定されたポリシによって、プロキシサーバ「1」)からのアクセス要求を転送(中継)することを許可しない旨を規定している場合である。なお、この際には、例え、アクセス要求が指定するサーバ300にプロキシサーバ「2」から現にアクセス可能である場合にも、利用可否は「NG」となる。
【0065】
また、プロキシサーバ200は、所定の処理を行う制御部として、特に本発明に密接に関連するものとして、HTTP I/F(プロキシサーバ)部211と、プロキシI/F部212と、サーバ状態管理部213と、対応づけ管理部214と、プロキシポリシ管理部215と、切り替え判断処理部216と、サーバアクセス処理部217と、プロキシ問合せ部218と、プロキシアクセス処理部219と、有する。
【0066】
なお、対応づけ管理部214は、特許請求の範囲に記載の「対応づけ格納手順」に対応する。切り替え判断処理部216とサーバ状態管理部213とは、特許請求の範囲に記載の「判定手順」に対応する。切り替え判断処理部216とプロキシ問合せ部218とプロキシアクセス処理部219とは、特許請求の範囲に記載の「第一のアクセス要求転送手順」に対応する。切り替え判断処理部216とサーバアクセス処理部217とは、特許請求の範囲に記載の「第二のアクセス要求転送手順」に対応する。サーバ状態管理部213は、特許請求の範囲に記載の「アクセス情報格納手順」に対応する。プロキシ問合せ部218と対応づけ管理部214とは、特許請求の範囲に記載の「確認要求送信手順」と「判定結果格納手順」とに対応する。
【0067】
HTTP I/F(プロキシサーバ)部211は、アクセス要求をブラウザ101から受信する。そして、HTTP I/F(プロキシサーバ)部211は、受信したアクセス要求を切り替え判断処理部216に伝達する。
【0068】
また、HTTP I/F(プロキシサーバ)部211は、サーバアクセス処理部217からアクセス要求が伝達されると、当該アクセス要求をサーバ300に転送する。また、HTTP I/F(プロキシサーバ)部211は、サーバ300から送信されたアクセス応答(および当該アクセス要求とともに送信されたプロキシ情報)を受信し、受信したアクセス応答をサーバアクセス処理部217に伝達する。
【0069】
また、HTTP I/F(プロキシサーバ)部211は、プロキシアクセス処理部219からアクセス応答を受信すると、他のプロキシサーバ200にアクセス応答を送信する。また、HTTP I/F(プロキシサーバ)部211は、他のプロキシサーバ200から送信されたアクセス応答を受信し、受信したアクセス応答をサーバアクセス処理部217に伝達する。
【0070】
プロキシI/F部212は、他のプロキシサーバ200から確認要求を受信し、受信した確認要求をプロキシポリシ管理部215に伝達する。また、プロキシI/F部212は、プロキシポリシ管理部215から伝達された確認要求に対する判定結果を、他のプロキシサーバ200に送信する。
【0071】
また、プロキシI/F部212は、プロキシ問合せ部218から伝達された確認要求を他のプロキシサーバ200に伝達する。また、プロキシI/F部212は、他のプロキシサーバ200から送信された確認要求に対する判定結果を、プロキシポリシ管理部215に伝達する。
【0072】
なお、確認要求とは、アクセス要求が指定するサーバに現にアクセス要求を転送可能な状況であるか否かを確認する要求である。また、確認要求に対する判定結果とは、確認要求を送信した送信元のプロキシサーバ200からのアクセス要求をアクセス要求が指定するサーバに現に転送可能な状況であるか否かを、確認要求を受信したプロキシサーバ200が判定した結果である。
【0073】
サーバ状態管理部213は、アクセス記憶部202を管理し、また、サーバ300に現にアクセス可能な状況であるか否かを判定する。
【0074】
まず、アクセス記憶部202を管理する点について、具体的に説明する。サーバ状態管理部213は、アクセス記憶部202に記憶されている「サーバ情報」と「状態」との対応づけを管理する。
【0075】
例えば、サーバ状態管理部213は、アクセス要求に応答するアクセス応答を正常に受信した旨の情報をサーバアクセス処理部217から伝達される。そして、サーバ状態管理部213は、当該アクセス要求が指定するサーバを識別するサーバ情報と、当該サーバに現にアクセス可能な状況である旨を示す情報とを対応づけて、アクセス記憶部202に格納する。図4に示す例を用いて、具体的に説明する。例えば、サーバ「A」からのアクセス応答がサーバアクセス処理部217から伝達されると、サーバ状態管理部213は、サーバ情報「A」と状態「OK」とを対応づけて、アクセス記憶部202に格納する。
【0076】
また、例えば、サーバ状態管理部213は、アクセス要求に応答するアクセス応答がない旨の情報をサーバアクセス処理部217から伝達される。そして、サーバ状態管理部213は、当該アクセス要求が指定するサーバを識別するサーバ情報と、当該サーバに現にアクセス可能ではない状況である旨を示す情報とを対応づけて、アクセス記憶部202に格納する。図4に示す例を用いて、具体的に説明する。例えば、サーバ状態管理部213は、サーバ「B」からアクセス応答がない旨の情報がサーバアクセス処理部217から伝達されると、サーバ情報「B」と状態「NG」とを対応づけて、アクセス記憶部202に格納する。
【0077】
また、サーバ状態管理部213は、サーバ300からのアクセス応答が正常でない旨をサーバアクセス処理部217から伝達されると、当該サーバ300を識別するサーバ情報に対応づけられている「状態」を「NG」に更新する。
【0078】
また、サーバ状態管理部213は、サーバ情報と状態との対応づけをアクセス記憶部202に格納する際には、当該対応づけに対応づけて、「更新日時」を格納する。例えば、サーバ状態管理部213は、サーバ情報「A」と、状態「OK」とを対応づけて、アクセス記憶部202に格納する際に、更新日時「2007−08−30T09:27:30Z」をさらに対応づけて格納する。
【0079】
次に、サーバ300に現にアクセス可能な状況であるか否かを判定する点について、具体的に説明する。サーバ状態管理部213は、アクセス要求が指定するサーバ300に現にアクセス可能な状況であるか否かを判定する指示を、切り替え判断処理部216から伝達されると、当該サーバ300に現にアクセス可能な状況であるか否か判定する。そして、サーバ状態管理部213は、サーバ300についての判定結果を、切り替え判断処理部216に伝達する。
【0080】
具体的には、サーバ状態管理部213は、アクセス記憶部202に格納されている「サーバ情報」と「状態」との対応づけを用いて、判定する。例えば、サーバ状態管理部213は、アクセス要求が指定するサーバ300を示すサーバ情報に対応づけて、現にアクセス可能な状況である旨がアクセス記憶部202に記憶されているかを判別する。具体的な一例をあげて説明すると、サーバ状態管理部213は、状態が「OK」であるかを判別する。そして、サーバ状態管理部213は、現にアクセス可能な状況である旨がアクセス記憶部202に記憶されている場合に、現にアクセス可能な状況であると判定する。また、例えば、サーバ状態管理部213は、現にアクセス可能な状況である旨がアクセス記憶部202に記憶されていない場合に、現にアクセス可能な状況ではないと判定する。そして、サーバ状態管理部213は、サーバ300についての判定結果を、切り替え判断処理部216に伝達する。
【0081】
図4に示す例を用いて、具体的に説明する。例えば、サーバ状態管理部213は、サーバ「A」について判定する場合には、アクセス記憶部202にサーバ情報「A」と状態「OK」との対応づけが格納されているので、現にアクセス可能な状況であると判定する。一方、例えば、サーバ状態管理部213は、サーバ「B」について判定する場合には、アクセス記憶部202にサーバ情報「B」と状態「NG」との対応づけが格納されているので、現にアクセス可能な状況でないと判定する。そして、サーバ状態管理部213は、サーバ300についての判定結果(例えば、「NG」や、「OK」)を、切り替え判断処理部216に伝達する。
【0082】
対応づけ管理部214は、対応づけ記憶部201を管理し、また、プロキシ問合せ部218からの問い合わせに応対する。
【0083】
まず、対応づけ記憶部201を管理する点について説明する。具体的には、対応づけ管理部214は、プロキシ情報とサーバ情報との対応づけをサーバアクセス処理部217から伝達されて対応づけ記憶部201に格納する。また、具体的には、対応づけ管理部214は、対応づけ記憶部201に格納しているプロキシ情報とサーバ情報との対応づけについて、「利用可否」をプロキシ問合せ部218から伝達されて対応づけ管理部214に格納する。
【0084】
例えば、図3に示す例を用いて説明すると、対応づけ管理部214は、サーバアクセス処理部217からサーバ情報「A」とプロキシ情報「2」とが伝達されると、サーバ情報「A」とプロキシ情報「2」の対応づけを対応づけ記憶部201に格納する。
【0085】
また、例えば、対応づけ管理部214は、「サーバ情報」と「プロキシ情報」との対応づけがサーバアクセス処理部217から伝達されて対応づけ記憶部201に新たに格納すると、当該対応づけをプロキシ問合せ部218に伝達する。例えば、プロキシ情報を含む対応づけが対応づけ記憶部201に存在しているかを(記憶されているかを)確認し、対応づけ記憶部201に存在していない場合には、当該対応づけをプロキシ問合せ部218に伝達する。
【0086】
また、例えば、対応づけ管理部214は、プロキシ問合せ部218に伝達した対応づけに加えて「利用可否」を対応づけた情報がプロキシ問合せ部218から伝達されると、伝達された「サーバ情報」と「プロキシ情報」と「利用可否」との対応づけを対応づけ記憶部201に格納する。
【0087】
また、対応づけ管理部214は、「サーバ情報」と「プロキシ情報」の対応づけや、「サーバ情報」と「プロキシ情報」と「利用可否」との対応づけを対応づけ記憶部201に格納する際には、当該対応づけに対応づけて、「更新日時」を格納する。例えば、対応づけ管理部214は、サーバ情報「A」と、プロキシ情報「2」と、利用可否「OK」とを対応づけて、対応づけ記憶部201に格納する際に、更新日時「2007−08−29T19:17:40Z」を対応づけて格納する。
【0088】
次に、プロキシ問合せ部218からの問い合わせに応対する点について説明する。具体的には、対応づけ管理部214は、問い合わせを行う旨とサーバ情報とを、プロキシ問合せ部218から伝達される。そして、対応づけ管理部214は、当該サーバ情報によって識別されるサーバに現にアクセスすることが可能であるプロキシサーバを識別する「プロキシ情報」を対応づけ記憶部201から取得し、プロキシ問合せ部218に伝達する。
【0089】
例えば、対応づけ管理部214は、プロキシ問合せ部218から、問い合わせを行う旨と、サーバ情報「A」とがプロキシ問合せ部218から伝達される。そして、対応づけ管理部214は、サーバ情報「A」と利用可否「OK」に対応づけられたプロキシ情報「2」を対応づけ記憶部201を検索して取得し、プロキシ問合せ部218に伝達する。
【0090】
プロキシポリシ管理部215は、アクセス要求を転送可能であるか否かを判定する。具体的には、プロキシポリシ管理部215は、確認要求を受信したプロキシサーバ200が、当該確認要求を送信したプロキシサーバ200からのアクセス要求を、アクセス要求が指定するサーバ300に現に転送可能な状況であるか否かを判定する。なお、プロキシポリシ管理部215は、この他のプロキシサーバから確認要求(後述)が送信されると、処理を行うものである。
【0091】
さらに詳細には、プロキシポリシ管理部215は、プロキシポリシ管理部215は、他のプロキシサーバ200から確認要求をプロキシI/F部212から伝達される。そして、プロキシポリシ管理部215は、ポリシ記憶部203に格納されたポリシを用いて判定し、また、アクセス記憶部202に格納されている「サーバ情報」と「状態」との対応づけを用いて判定する。
【0092】
例えば、プロキシポリシ管理部215は、ポリシ記憶部203に格納されたポリシを用いた判定を行う。プロキシサーバ「1」が確認要求をプロキシサーバ「2」から受信した場合を例に、具体的に説明する。プロキシポリシ管理部215は、例えば、プロキシサーバ「2」からのアクセス要求が、プロキシサーバ「1」と同一のドメイン内からのアクセス要求となる場合に(図5参照)、許可すると判定する。
【0093】
また、例えば、プロキシポリシ管理部215は、アクセス記憶部202に格納されている「サーバ情報」と「状態」との対応づけを用いた判定を行う。プロキシサーバ「2」が、サーバ「A」に対してアクセス要求を転送可能な状況である否かを判定する確認要求をプロキシサーバ「2」から受信した場合を例に、具体的に説明する。プロキシポリシ管理部215は、サーバ情報「A」に対応づけて状態「OK」がアクセス記憶部202に格納されている場合に、許可すると判定する。一方、プロキシポリシ管理部215は、サーバ情報「A」に対応づけて状態「NG」がアクセス記憶部202に格納されている場合に、許可しないと判定する。
【0094】
また、例えば、プロキシポリシ管理部215は、ポリシ記憶部203に格納されたポリシを用いた判定にて許可すると判定し、かつ、アクセス記憶部202に格納されている「サーバ情報」と「状態」との対応づけを用いた判定にて許可すると判定した場合に、アクセス要求を転送可能であると判定する(「OK」であると判定する)。また、例えば、プロキシポリシ管理部215は、ポリシ記憶部203に格納されたポリシを用いた判定か、アクセス記憶部202に格納されている「サーバ情報」と「状態」との対応づけを用いた判定かの一方または両方において、許可しないと判定した場合に、アクセス要求を転送可能でないと判定する(「NG」であると判定する)。
【0095】
また、プロキシポリシ管理部215は、判定された判定結果を、プロキシI/F部212に伝達する。
【0096】
切り替え判断処理部216は、アクセス要求がHTTP I/F(プロキシサーバ)部211から伝達されると、当該アクセス要求を、サーバ状態管理部213かプロキシアクセス処理部219かに伝達する。
【0097】
具体的には、切り替え判断処理部216は、アクセス要求が指定するサーバ300に現にアクセス可能であるかを判別する。そして、切り替え判断処理部216は、アクセス要求が指定するサーバ300に現にアクセス可能な場合に、アクセス要求をサーバ状態管理部213に伝送する。また、切り替え判断処理部216は、アクセス要求が指定するサーバ300に現にアクセス可能でない場合に、アクセス要求をプロキシアクセス処理部219に伝送する。
【0098】
ここで、まず、アクセス要求が指定するサーバ300に現にアクセス可能であるかを判別する点について説明する。切り替え判断処理部216は、アクセス要求がHTTP I/F(プロキシサーバ)部211から伝達されると、当該アクセス要求をサーバ状態管理部213に伝達する。そして、切り替え判断処理部216は、アクセス要求が指定するサーバ300に現にアクセス可能であるかについての判定結果を、サーバ状態管理部213から伝達される。
【0099】
例えば、切り替え判断処理部216は、サーバ「A」と情報の送受信を行うアクセス要求をHTTP I/F(プロキシサーバ)部211から伝達される。そして、切り替え判断処理部216は、当該アクセス要求をサーバ状態管理部213に伝達する。
【0100】
また、例えば、切り替え判断処理部216は、サーバ「A」に対して現にアクセス可能である旨の情報(例えば、「OK」)や、サーバ「A」に対して現にアクセス可能でない旨の情報(例えば、「NG」)をサーバ状態管理部213から伝達される。そして、切り替え判断処理部216は、サーバ「A」に対して現にアクセス可能である旨の情報(例えば、「OK」)がサーバ状態管理部213から伝達された場合に、アクセス可能であると判別する。また、切り替え判断処理部216は、サーバ「A」に対して現にアクセス可能でない旨の情報(例えば、「NG」)がサーバ状態管理部213から伝達された場合に、アクセス可能でないと判別する。
【0101】
次に、アクセス要求が指定するサーバ300に現にアクセス可能な場合に、切り替え判断処理部216が、アクセス要求をサーバ状態管理部213に伝送する場合について説明する。
【0102】
例えば、切り替え判断処理部216は、アクセス要求が指定するサーバ300に現にアクセス可能である旨の情報が、サーバ状態管理部213から伝達される。そして、切り替え判断処理部216は、アクセス要求をサーバアクセス処理部217に伝達する。例えば、切り替え判断処理部216は、サーバ「A」に対して現にアクセス可能でない旨の情報(例えば、「OK」)をサーバ状態管理部213から伝達される。そして、切り替え判断処理部216は、サーバ「A」と情報の送受信を行うアクセス要求を、サーバアクセス処理部217に伝達する。
【0103】
次に、アクセス要求が指定するサーバ300に現にアクセス可能でない場合に、切り替え判断処理部216が、アクセス要求をプロキシアクセス処理部219に伝達する場合について説明する。
【0104】
例えば、切り替え判断処理部216は、現にアクセス可能でない旨の情報がサーバ状態管理部213から伝達される。例えば、切り替え判断処理部216は、サーバ「A」に対して現にアクセス可能でない旨の情報(例えば、「NG」)をサーバ状態管理部213から伝達される。そして、切り替え判断処理部216は、アクセス要求が指定するサーバ300に、当該アクセス要求を転送可能な他のプロキシサーバ200を識別する「プロキシ情報」をプロキシ問合せ部218から取得する。具体的な例をあげて説明すると、切り替え判断処理部216は、アクセス要求をプロキシ問合せ部218に伝達する。そして、切り替え判断処理部216は、プロキシ情報(例えば、プロキシ情報「4」)をプロキシ問合せ部218から伝達される。
【0105】
また、例えば、切り替え判断処理部216は、プロキシ問合せ部218から取得したプロキシ情報と、アクセス要求とを、プロキシアクセス処理部219に伝達する。
【0106】
また、切り替え判断処理部216は、サーバ300からのアクセス応答は正常でない旨をサーバアクセス処理部217から伝達された場合にも、プロキシ情報をプロキシ問合せ部218から取得し、アクセス要求と取得したプロキシ情報とをプロキシアクセス処理部219に伝達する。
【0107】
サーバアクセス処理部217は、アクセス要求をサーバ300に転送する。具体的には、切り替え判断処理部216からアクセス要求が伝達されると、当該アクセス要求が指定するサーバ300に、HTTP I/F(プロキシサーバ)部211を介して当該アクセス要求を転送する。例えば、サーバアクセス処理部217は、サーバ「A」と情報の送受信を行うアクセス要求を切り替え判断処理部216から伝達される。そして、サーバアクセス処理部217は、サーバ「A」に、当該アクセス要求をHTTP I/F(プロキシサーバ)部211を介して転送する。
【0108】
また、サーバアクセス処理部217は、アクセス要求をHTTP I/F(プロキシサーバ)部211を介して転送すると、サーバ300からアクセス応答を正常に受信するかを判定する。例えば、サーバアクセス処理部217は、アクセス要求をHTTP I/F(プロキシサーバ)部211を介して転送した後に、一定時間内にアクセス応答が伝達されるかを判別する。サーバアクセス処理部217は、ここで、一定時間内にアクセス応答がなかった場合に、正常に受信しなかったと判定する。また、サーバアクセス処理部217は、サーバ300からのアクセス応答が正常でない旨を切り替え判断処理部216とサーバ状態管理部213に伝達する。
【0109】
また、具体的には、サーバアクセス処理部217は、他のプロキシサーバ200から転送されたアクセス要求をHTTP I/F(プロキシサーバ)部211を介して伝達される。そして、サーバアクセス処理部217は、当該アクセス要求が指定するサーバ300に、HTTP I/F(プロキシサーバ)部211を介して当該アクセス要求を転送する。
【0110】
また、サーバアクセス処理部217は、サーバ300からのアクセス応答を受信すると、当該アクセス応答から、当該アクセス応答とともに送信されたプロキシ情報と、当該サーバ300を識別するサーバ情報とを取得する。そして、サーバアクセス処理部217は、取得したプロキシ情報とサーバ情報とを対応づけ管理部214に伝達する。
【0111】
また、サーバアクセス処理部217は、サーバ300からのアクセス応答を転送する。具体的には、サーバアクセス処理部217は、サーバ300からのアクセス応答が、HTTP I/F(プロキシサーバ)部211を介して伝達される。そして、サーバアクセス処理部217は、当該アクセス応答を、当該アクセス応答の送信先であるクライアント100にHTTP I/F(プロキシサーバ)部211を介して伝達する。また、サーバアクセス処理部217は、当該アクセス応答の送信元であるサーバ300を識別するサーバ情報と、当該アクセス応答とともに送信されたプロキシ情報とを、対応づけ管理部214に伝達する。また、サーバアクセス処理部217は、アクセス応答を正常に受信した旨をサーバ状態管理部213に伝達する。
【0112】
プロキシ問合せ部218は、アクセス要求が指定するサーバ300に当該アクセス要求を転送可能な他のプロキシサーバ200を示すプロキシ情報を、対応づけ管理部214から取得する。また、プロキシ問合せ部218は、対応づけ記憶部201に記憶されている「サーバ情報」と「プロキシ情報」との対応づけに対応づけられる「利用可否」を対応づけ管理部214に伝達する。
【0113】
まず、プロキシ情報を取得する点について説明する。プロキシ問合せ部218は、アクセス要求を切り替え判断処理部216から伝達される。そして、プロキシ問合せ部218は、伝達されたアクセス要求が指定するサーバ300を識別するサーバ情報と、問い合わせを行う旨とを、対応づけ管理部214に伝達する。そして、プロキシ問合せ部218は、プロキシ情報を、対応づけ管理部214から伝達されて取得する。そして、プロキシ問合せ部218は、取得したプロキシ情報を切り替え判断処理部216に伝達する。
【0114】
また、プロキシ問合せ部218は、「プロキシ情報」を対応づけ管理部214から取得した際に、確認要求を送信して利用可否を改めて取得してもよい(利用可否の取得については、後述する)。つまり、プロキシ問合せ部218は、取得した「プロキシ情報」が有効かどうかを、アクセス要求を他のプロキシサーバ200に転送する際に確認してもよい。
【0115】
次に、「利用可否」を対応づけ管理部214に伝達する点について説明する。プロキシ問合せ部218は、「サーバ情報」と「プロキシ情報」との対応づけを対応づけ管理部214から伝達される。そして、プロキシ問合せ部218は、当該「プロキシ情報」によって識別されるプロキシサーバ200(プロキシポリシ管理部215)に、プロキシI/F部212を介して当該対応づけについての確認要求を送信する。言い換えると、プロキシ問合せ部218は、伝達された「プロキシ情報」によって識別されるプロキシサーバ200が、確認要求を送信する送信元となるプロキシサーバ200からのアクセス要求をサーバ300(伝達された「サーバ情報」によって識別されるサーバ300)に転送可能であるかを確認する。
【0116】
具体的な例をあげて説明する。なお、ここで、プロキシサーバ「1」が確認要求を送信し、サーバ情報「A」とプロキシ情報「2」との対応づけが対応づけ管理部214から伝達されたものとする。プロキシ問合せ部218は、プロキシサーバ「2」に対して、確認要求をプロキシI/F部212を介して送信する。また、ここで、プロキシ問合せ部218は、確認要求を送信して、プロキシサーバ「1」からのサーバ「A」に対してのアクセス要求を、プロキシサーバ「2」が転送可能であるかを確認するものである。
【0117】
また、例えば、プロキシ問合せ部218は、他のプロキシサーバ200から伝達された確認要求に対応する判定結果を、他のプロキシサーバ200からプロキシI/F部212を介して伝達される。そして、プロキシ問合せ部218は、伝達された確認要求に対応する判定結果(「利用可否」)を、対応づけ管理部214に伝達する。具体的には、プロキシ問合せ部218は、対応づけ管理部214から伝達されたサーバ情報とプロキシ情報との対応づけに加えて、「利用可否」を対応づけた情報を、対応づけ管理部214に伝達する。
【0118】
プロキシアクセス処理部219は、アクセス要求を他のプロキシサーバ200に転送する。具体的には、プロキシアクセス処理部219は、プロキシ情報とアクセス要求とを、切り替え判断処理部216から伝達される。そして、プロキシアクセス処理部219は、伝達されたプロキシ情報によって識別されるプロキシサーバ200に、伝達されたアクセス要求をHTTP I/F(プロキシサーバ)部211を介して転送する。
【0119】
[サーバ]
サーバ300は、一つまたは複数のプロキシサーバ200とネットワークを介して接続する。また、サーバ300は、プロキシサーバ200から転送されたクライアント100からのアクセス要求を受信すると、アクセス応答をクライアント100に送信するものである。
【0120】
サーバ300は、特に本発明に密接に関連する記憶部として、プロキシ記憶部301を有する。なお、プロキシ記憶部301は、特許請求の範囲に記載の「プロキシ記憶部」に対応する。
【0121】
プロキシ記憶部301は、プロキシ情報を蓄積する。例えば、プロキシ記憶部301は、図6に示すように、「プロキシ情報」と「更新日時」とを対応づけて記憶する。図6に示す例を用いて具体的に説明すると、プロキシ記憶部301は、プロキシ情報「1」と更新日時「2007−07−30T19:17:40Z」との対応づけを記憶する。
【0122】
また、プロキシ記憶部301が記憶する情報は、後述するプロキシ情報管理部312によって格納され、また、後述するプロキシ情報管理部312によって用いられるものである。
【0123】
なお、実施例1では、図6に示すように、プロキシ記憶部301が、「プロキシ情報」に対応づけて、「更新日時」を記憶する場合を用いて説明するが、本発明はこれに限定されるものではない。例えば、プロキシ記憶部301は、「プロキシ情報」だけを記憶してもよい。
【0124】
なお、ここで、プロキシ記憶部301が記憶する「プロキシ情報」と、対応づけ記憶部201が記憶する「プロキシ情報」との違いについて、簡単に説明する。対応づけ記憶部201が記憶している「プロキシ情報」は、プロキシ記憶部301が記憶する「プロキシ情報」の一部または全てである。具体的には、対応づけ記憶部201が記憶している情報は、プロキシ記憶部301が記憶する「プロキシ情報」の一部または全てそれぞれと、プロキシ記憶部301が設置されているサーバ300を識別する「サーバ情報」との対応づけとなる。
【0125】
サーバ300は、特に本発明に密接に関連する制御部として、HTTP I/F(サーバ)部311と、プロキシ情報管理部312と、プロキシ情報付与部314と、サービス実行部313と、を有する。なお、プロキシ情報管理部312は、特許請求の範囲に記載の「プロキシ情報格納手順」に対応する。プロキシ情報付与部314は、特許請求の範囲に記載の「アクセス応答送信手順」に対応する。
【0126】
HTTP I/F(サーバ)部311は、プロキシサーバ200から転送されたアクセス要求を受信し、受信したアクセス要求をプロキシ情報管理部312に伝達する。また、HTTP I/F(サーバ)部311は、サービス実行部313からアクセス応答が伝達されると、当該アクセス応答をプロキシサーバ200に送信する。
【0127】
プロキシ情報管理部312は、プロキシ情報をプロキシ記憶部301に格納する。具体的には、プロキシ情報管理部312は、プロキシサーバ200から転送されたアクセス要求をHTTP I/F(サーバ)部311から伝達されると、当該プロキシサーバ200を識別するプロキシ情報を、プロキシ記憶部301に格納する。また、プロキシ情報管理部312はプロキシ情報をプロキシ記憶部301に格納する際には、当該プロキシ情報に対応づけて、「更新日時」を格納する。
【0128】
例えば、プロキシ情報管理部312は、プロキシサーバ「1」から転送されたアクセス要求がHTTP I/F(サーバ)部311から伝達されると、プロキシ情報「1」をプロキシ記憶部301に格納する。また、プロキシ情報管理部312は、プロキシ情報「1」をプロキシ記憶部301に格納する際に、プロキシ情報「1」に対応づけて「2007−07−30T19:17:40Z」を格納する。
【0129】
また、プロキシ情報管理部312は、HTTP I/F(サーバ)部311から伝達されたアクセス応答を、サービス実行部313に伝達する。
【0130】
サービス実行部313は、アクセス要求に対応する処理を行う。具体的には、プロキシ情報管理部312からアクセス要求を伝達される。そして、サービス実行部313は、伝達されたアクセス要求に対応する処理として、例えば、コンテンツ作成し、また、サーバ300に予め設定されているサービスを実行する。そして、達されたアクセス要求に対応する処理やデータであってクライアント100に送信するアクセス応答を、HTTP I/F(サーバ)部311に伝達する。
【0131】
プロキシ情報付与部314は、プロキシ記憶部301に蓄積されているプロキシ情報を、当該プロキシ記憶部301から読み出し、読み出したプロキシ情報を、アクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信する。具体的には、プロキシ情報付与部314は、プロキシ記憶部301に蓄積されているプロキシ情報の内、アクセス要求の転送元のプロキシサーバ200以外のプロキシサーバ200を示すプロキシ情報を読み出す。そして、プロキシ情報付与部314は、読み出した当該プロキシ情報をアクセス応答とともに、HTTP I/F(サーバ)部311を介して送信する。
【0132】
例えば、アクセス応答がサービス実行部313からHTTP I/F(サーバ)部311に伝達され、当該アクセス応答がHTTP I/F(サーバ)部311からプロキシサーバ200に送信される場合を例に説明する。ここで、プロキシ情報付与部314は、プロキシ記憶部301からプロキシ情報を読みだし、読み出したプロキシ情報を、HTTP I/F(サーバ)部311から送信されるアクセス応答のレスポンスのヘッダに付与する。
【0133】
図7に示す例を用いて、具体的に説明する。図7に示すように、プロキシ情報付与部314は、HTTP I/F(サーバ)部311から送信されるアクセス応答のレスポンスのヘッダにプロキシ情報を付与する(図7に示す「X−Proxy−List」が該当する)。なお図7に示す例では、プロキシ情報として、「vv.vv.vv.vv」と「ww.ww.ww.ww」とを付与する場合を例に示す。
【0134】
[アクセス要求の経路]
ここで、図8を用いて、クライアント100とプロキシサーバ200とサーバ300との間において送受信(転送)される、アクセス要求やアクセス応答の流れについて、簡単に説明する。ここでは、まず、正常時について説明し、その後、ネットワーク障害時(異常発生時)について説明する。なお、プロキシサーバ「1」がサーバ「A」と情報の送受信を行うアクセス要求を受信した場合を例に説明する。
【0135】
なお、図8−1と図8−2とは、実施例1における情報の流れの一例を説明するための図である。
【0136】
なお、ここでいう正常時とは、アクセス要求を受信したプロキシサーバ200が、当該アクセス要求が指定するサーバ300に、当該アクセス要求を転送可能である場合を示す。例えば、プロキシサーバ「1」とサーバ「A」との間のネットワークが正常に機能しており、プロキシサーバ「1」が、アクセス要求をサーバ「A」に転送することが現に可能である場合が該当する。
【0137】
また、ここでいう異常発生時とは、アクセス要求を受信したプロキシサーバ200が、当該アクセス要求が指定するサーバ300に、当該アクセス要求を転送可能でない場合を示す。例えば、プロキシサーバ「1」とサーバ「A」との間のネットワークが正常に機能しておらず、プロキシサーバ「1」が、アクセス要求をサーバ「A」に転送することが現に可能でない場合が該当する。
【0138】
ここで、プロキシサーバ「1」は、アクセスしたサーバの状態を記録する記憶部(アクセス記憶部202)を有する。また、サーバ300は、様々なクライアント100からアクセス要求を受付け、当該サーバ300にアクセスすることが可能な他のプロキシサーバ200を識別するプロキシ情報を蓄積する記憶部(プロキシ記憶部301)を有する。
【0139】
まず、正常時について説明する。図8−1に示すように、クライアント100は、アクセス要求をプロキシサーバ「1」に送信する。そして、プロキシサーバ「1」は、当該アクセス要求をサーバ300に転送する。そして、サーバ300は、アクセス応答とプロキシ情報とをプロキシサーバ「1」に送信する。そして、プロキシサーバ「1」は、アクセス応答をクライアント100に転送する。
【0140】
また、プロキシサーバ「1」は、クライアント100にアクセス応答を送信した後に、サーバ300から送信されたプロキシ情報によって識別されるプロキシサーバ200に確認要求を送信することにより、「利用可否」を取得する。
【0141】
次に、ネットワーク障害発生時について説明する。つまり、プロキシサーバ「1」とサーバ300との間のネットワークに障害が発生したものとする。図8−2に示すように、クライアント100は、アクセス要求をプロキシサーバ「1」に送信する。ここで、プロキシサーバ「1」は、サーバ300にアクセス要求を送信できない。このため、プロキシサーバ「1」は、他のプロキシサーバ200(プロキシサーバ「2」)にアクセス要求を転送する。そして、プロキシサーバ「2」は、アクセス要求をサーバ300に転送する。
【0142】
そして、サーバ300は、アクセス応答とプロキシ情報とをプロキシサーバ「2」に送信する。そして、プロキシサーバ「2」は、アクセス応答をプロキシサーバ「1」に転送する。そして、プロキシサーバ「1」は、アクセス応答をクライアント100に転送する。
【0143】
なお、この際、プロキシサーバ「1」は、アクセス要求とともにプロキシ情報をクライアント100に転送することにより、プロキシ情報をクライアント100にて管理することが可能である。
【0144】
[アクセス要求転送システムによる処理]
次に、図9〜11を用いて、アクセス要求転送システムによる処理を説明する。なお、以下では、まず、シーケンス図(図9と図10と)を用いて、正常時における処理の流れを説明し、異常発生時における処理の流れを説明する。その後、フローチャート(図11)を用いて、プロキシサーバ200の処理を説明する。
【0145】
なお、図9は、実施例1におけるアクセス要求転送システムの処理の流れの一例を示すシーケンス図である。図10は、実施例1におけるアクセス要求転送システムの処理の流れの一例を示すシーケンス図である。図11は、実施例1におけるアクセス要求転送システムの処理の流れの一例を示すフローチャートである。
【0146】
[正常時における処理]
まず、図9を用いて、正常時におけるアクセス要求転送システムの処理の流れを説明する。なお、以下では、アクセス要求転送システムは、一つのクライアントと、複数のプロキシサーバ(図9に示す例では、「1」および「2」)とを有するものとして説明する。また、実施例1に係るアクセス要求転送システムは、複数のサーバを有し、その内の一つのサーバ(図9に示す例では、単に「サーバ」と記載)と情報の送受信をすることを要求するアクセス要求を、クライアントが送信した場合を例に説明する。
【0147】
図9に示すように、クライアント100(ブラウザ101)は、ネットワークを介してアクセス要求をプロキシサーバ200に送信する(ステップS101)。例えば、図9に示す例では、クライアント100(ブラウザ101)は、プロキシサーバ「1」にアクセス要求を送信する。
【0148】
そして、プロキシサーバ200は、サーバ300の状態を確認する(ステップS102)。具体的には、プロキシサーバ200は、当該サーバ300に、アクセス可能かを確認する。つまり、プロキシサーバ200は、アクセス要求をクライアント100から受信すると、当該アクセス要求を受信したプロキシサーバ200が、当該アクセス要求が指定するサーバ300に現にアクセス可能な状況であるか否かを判定する。
【0149】
例えば、プロキシサーバ200では、サーバ状態管理部213が、アクセス要求が指定するサーバ300を識別するサーバ情報に対応づけて、状態「OK」がアクセス記憶部202に記憶されているかを判別する。なお、図9を用いて説明する正常時における処理においては、アクセス記憶部202が、アクセス要求が指定するサーバ300を識別するサーバ情報に対応づけて、状態「OK」を記憶しているものとする。つまり、プロキシサーバ200は、アクセス可能であると判定する。
【0150】
そして、プロキシサーバ200は、アクセス要求をサーバ300に転送する(ステップS103)。つまり、プロキシサーバ200は、現にアクセス可能な状況であると判定すると、サーバアクセス処理部217が、アクセス要求が指定するサーバ300に、HTTP I/F(プロキシサーバ)部211を介して当該アクセス要求を転送する。
【0151】
そして、サーバ300は、プロキシ情報を取得して蓄積する(ステップS104)。具体的には、サーバ300は、アクセス要求をプロキシサーバ200から受信すると、当該プロキシサーバ200を識別するプロキシ情報を、プロキシ記憶部301に格納する。例えば、プロキシ情報管理部312は、プロキシサーバ「1」から転送されたアクセス要求をHTTP I/F(サーバ)部311から伝達されると、プロキシ情報「1」を、プロキシ記憶部301に格納する。
【0152】
そして、サーバ300は、サービスの実行を行う(ステップS105)。例えば、サーバ300では、サービス実行部313が、伝達されたアクセス要求に対応する処理として、コンテンツを作成し、また、サーバ300に予め設定されているサービスを実行する。
【0153】
そして、サーバ300は、通知するプロキシ情報の決定・付与を行い(ステップS106)、アクセス応答を送信する(ステップS107)。具体的には、サーバ300では、プロキシ情報付与部314が、プロキシ記憶部301に蓄積されているプロキシ情報を、当該プロキシ記憶部301から読み出し、読み出したプロキシ情報を、アクセス応答とともに当該アクセス要求の転送元のプロキシサーバ200に送信する。例えば、サーバ300では、プロキシ情報付与部314が、プロキシ記憶部301からプロキシ情報「2」を読出し、アクセス応答とともにプロキシ情報「2」を、プロキシサーバ「2」にHTTP I/F(サーバ)部311を介して送信する。
【0154】
そして、プロキシサーバ200は、アクセス応答をクライアント100に転送する(ステップS108)。具体的には、プロキシサーバ200では、サーバアクセス処理部217が、サーバ300からのアクセス応答が、HTTP I/F(プロキシサーバ)部211を介して伝達される。そして、サーバアクセス処理部217は、当該アクセス応答を、当該アクセス応答の送信先であるクライアント100にHTTP I/F(プロキシサーバ)部211を介して伝達する。
【0155】
そして、プロキシサーバ200は、サーバの状態を更新する(ステップS109)。具体的には、プロキシサーバ200では、サーバ状態管理部213は、アクセス要求が指定するサーバを識別するサーバ情報と、当該サーバに現にアクセス可能な状況である旨を示す情報とを対応づけて、アクセス記憶部202に格納する。
【0156】
そして、プロキシサーバ200は、プロキシ情報を取得して登録する(ステップS110)。具体的には、プロキシサーバ200では、対応づけ管理部214は、サーバアクセス処理部217からプロキシ情報とサーバ情報とを伝達されて、プロキシ情報とサーバ情報との対応づけを対応づけ記憶部201に格納する。例えば、対応づけ管理部214は、サーバ情報とプロキシ情報「2」との対応づけを、対応づけ記憶部201に格納する。
【0157】
そして、プロキシサーバ200は、利用可否を問い合わせする(ステップS111)。具体的には、プロキシサーバ「1」では、対応づけ管理部214が、「サーバ情報」とプロキシ情報」「1」との対応づけを対応づけ記憶部201に格納すると、当該対応づけをプロキシ問合せ部218に伝達する。そして、プロキシ問合せ部218は、当該「プロキシ情報」によって識別されるプロキシサーバ200(プロキシポリシ管理部215)に、プロキシI/F部212を介して当該対応づけについての確認要求を送信する。
【0158】
そして、確認要求を他のプロキシサーバ200から受信したプロキシサーバ200は、アクセス要求を転送可能であるかを確認する(ステップS112)。具体的には、プロキシサーバ「1」から確認要求を受信するプロキシサーバ「2」では、プロキシポリシ管理部215は、プロキシサーバ「1」からのアクセス要求を、アクセス要求が指定するサーバ300にプロキシサーバ「2」が現に転送可能な状況であるか否かを判定する。
【0159】
具体的な判定手法の例をあげて説明すると、プロキシポリシ管理部215は、ポリシ記憶部203に格納されたポリシを用いた判定を行う。また、プロキシポリシ管理部215は、アクセス記憶部202に格納されている「サーバ情報」と「状態」との対応づけを用いた判定を行う。そして、例えば、プロキシポリシ管理部215は、二つの判定にて許可すると判定した場合に、アクセス要求を転送可能であると判定する(利用状態「OK」であると判定する)。
【0160】
そして、確認要求を他のプロキシサーバ200から受信したプロキシサーバ200は、回答(判定結果)を送信する(ステップS113)。具体的には、プロキシポリシ管理部215は、判定結果(例えば、利用可否「OK」)を、プロキシI/F部212を介してプロキシサーバ「1」に伝達する。
【0161】
そして、確認要求についての判定結果を受信したプロキシサーバ200は、利用可否を登録する(ステップS114)。具体的には、プロキシサーバ「1」では、対応づけ管理部214は、「サーバ情報」と「プロキシ情報」との対応づけに、受信した「利用可否」を対応づけて、対応づけ記憶部201に格納する。例えば、対応づけ管理部214は、「サーバ情報」とプロキシ情報「2」との対応づけに、受信した利用可否「OK」を対応づけて、対応づけ記憶部201に格納する。
【0162】
[異常発生時における処理]
次に、図10を用いて、異常発生時におけるアクセス要求転送システムの処理の流れを説明する。なお、正常時における処理と同様の点については、説明を省略し、または、簡潔に行う。
【0163】
図10に示すように、クライアント100(ブラウザ101)は、ネットワークを介してアクセス要求をプロキシサーバ200に送信する(ステップS201)。
【0164】
そして、プロキシサーバ200は、サーバ300の状態を確認する(ステップS202)。なお、上記したように、図10を用いて説明する異常発生時における処理においては、アクセス記憶部202が、アクセス要求が指定するサーバ300を識別するサーバ情報に対応づけて、状態「NG」を記憶しているものとする。つまり、プロキシサーバ200は、アクセス不可能であると判定する。
【0165】
そして、プロキシサーバ200は、他のプロキシサーバ200に、サーバ300へのアクセス状態を問い合わせる(ステップS203)。つまり、プロキシサーバ200は、他のプロキシサーバ200に確認要求を送信する。具体的な例をあげて説明すると、プロキシサーバ200では、プロキシ問合せ部218が、アクセス要求が指定するサーバ300を識別するサーバ情報と、問い合わせを行う旨とを、対応づけ管理部214に伝達する。そして、プロキシ問合せ部218は、プロキシ情報を、対応づけ管理部214から伝達されて取得する。そして、プロキシ問合せ部218は、「プロキシ情報」を対応づけ管理部214から取得した際に、確認要求を送信する。
【0166】
そして、確認要求を他のプロキシサーバ200から受信したプロキシサーバ200は、アクセス要求を転送可能であるかを確認する(ステップS204)。例えば、プロキシサーバ「2」は、プロキシサーバ「1」から転送されたアクセス要求をサーバ300に転送することが可能であるかを確認する。なお、ここでは、プロキシサーバ「2」が、プロキシサーバ「1」から転送されたアクセス要求を転送できるものとして説明する。つまり、プロキシサーバ「2」は、利用可否「OK」と確認する。そして、確認要求を他のプロキシサーバ200(プロキシサーバ「1」)から受信したプロキシサーバ200(プロキシサーバ「2」)は、確認要求の送信元であるプロキシサーバ200(プロキシサーバ「1」)に回答を送信する(ステップS205)。
【0167】
そして、プロキシサーバ200は、アクセス要求を、アクセス要求を転送可能であると確認した他のプロキシサーバ200に転送する(ステップS206)。具体的には、プロキシサーバ「1」では、プロキシアクセス処理部219が、アクセス要求をプロキシサーバ「2」に転送する。そして、転送先であるプロキシサーバ「2」では、サーバアクセス処理部217が、プロキシサーバ「1」から転送されたアクセス要求を、当該アクセス要求が指定するサーバ300に転送する(ステップS207)。
【0168】
そして、サーバ300は、プロキシ情報を取得して蓄積する(ステップS208)。続いて、サーバ300は、サービスの実行を行う(ステップS209)。そして、サーバ300は、通知するプロキシ情報の決定・付与を行う(ステップS210)。
【0169】
そして、サーバ300は、アクセス応答を送信する(ステップS211)。具体的には、サーバ300では、アクセス応答を、当該サーバ300にアクセス要求を転送したプロキシサーバ200に送信する。例えば、図10に示す例では、サーバ300は、アクセス応答を、プロキシサーバ「2」に送信する。
【0170】
そして、他のプロキシサーバ200から転送されたアクセス要求を転送したプロキシサーバ200は、サーバ300から受信したアクセス応答を、当該アクセス要求の転送元である他のプロキシサーバ200に転送する。例えば、プロキシサーバ「2」は、サーバ300から受信したアクセス応答をプロキシサーバ「1」に転送する(ステップS213)。また、プロキシサーバ「2」は、更新処理を行う(ステップS212)。具体的には、図9に示したステップS109〜S114と同様の処理を行う。
【0171】
そして、プロキシサーバ200は、アクセス応答をクライアント100に転送する(ステップS214)。具体的には、プロキシサーバ「1」は、プロキシサーバ「2」からアクセス応答を受信すると、当該アクセス応答をクライアント100に転送する。
【0172】
なお、上記した処理のうち、図10に示すステップS201とS202とは、図9に示すステップS101とS102と同様である。また、図10に示すステップS208〜S210は、図9に示すステップS104〜S106と同様である。また、図10に示すステップS212は、図9に示すステップS109〜S114と同様である。
【0173】
[プロキシサーバによる処理]
次に、図11を用いて、プロキシサーバ200の処理について説明する。図11に示すように、プロキシサーバ200では、クライアント100からアクセス要求を受信すると(ステップS301肯定)、サーバ状態管理部213が、アクセス要求で指定されたサーバ300の状態をアクセス記憶部202から取得する(ステップS302)。具体的には、サーバ状態管理部213は、アクセス要求が指定するサーバ300を識別するサーバ情報に対応づけられた「状態」をアクセス記憶部202から取得し、サーバ300に現にアクセス可能な状況であるか否か判定する。つまり、ここで、サーバ状態管理部213は、サーバの状態が「OK」であるかを判別する(ステップS303)。
【0174】
ここで、サーバ状態管理部213によってサーバ状態が「OK」であると判別されると(ステップS303肯定)、プロキシサーバ200では、サーバアクセス処理部217が、アクセス要求をサーバ300にHTTP I/F(プロキシサーバ)部211を介して転送する(ステップS304)。例えば、プロキシサーバ「1」は、サーバ300にアクセス要求をHTTP I/F(プロキシサーバ)部211を介して転送する。
【0175】
そして、プロキシサーバ200は、サーバ300からアクセス応答を正常に受信するかを判別する(ステップS305)。具体的には、プロキシサーバ200では、サーバアクセス処理部217が、アクセス要求をHTTP I/F(プロキシサーバ)部211を介して転送した後に、一定時間内にアクセス応答が伝達されるかを判別する。
【0176】
ここで、サーバ300からアクセス応答を正常に受信したと判別すると(ステップS305肯定)、プロキシサーバ200は、アクセス記憶部を更新する(ステップS306)。具体的には、サーバ状態管理部213が、当該サーバ300に対応づけられている「状態」を、「OK」に更新する。
【0177】
そして、プロキシサーバ200は、プロキシ情報を取得する(ステップS307)。つまり、プロキシサーバ200では、サーバアクセス処理部217が、サーバ300からのアクセス応答を受信すると、当該アクセス応答とともに送信されたプロキシ情報と、当該サーバ300を識別するサーバ情報とを取得する。そして、サーバアクセス処理部217は、プロキシ情報とサーバ情報とを対応づけ管理部214に伝達する。
【0178】
そして、プロキシサーバ200では、アクセス応答をクライアント100に伝達する(ステップS308)。
【0179】
また、プロキシサーバ200は、対応づけ管理部214が、取得したプロキシ情報を含む対応づけが対応づけ記憶部201に存在しているかを(記憶されているかを)確認する(ステップS309)。ここで、対応づけ管理部214は、対応づけが対応づけ記憶部201に存在している場合には(ステップS309肯定)、処理を終了する。
【0180】
一方、プロキシサーバ300では、対応づけ管理部214が、対応づけが対応づけ記憶部201に存在していない場合には(ステップS309否定)、利用可否を問い合わせる(ステップS310)。つまり、対応づけ管理部214は、取得したプロキシ情報とアクセス応答の送信元を示すサーバ300を識別するサーバ情報とを、プロキシ問合せ部218に伝達する。そして、プロキシ問合せ部218が、当該プロキシ情報によって識別されるプロキシサーバ200に、確認要求を送信する。
【0181】
そして、プロキシサーバ200では、対応づけ管理部214が、プロキシ情報と、確認要求に対する判定結果(「利用可否」)とを対応づけて、対応づけ記憶部201に格納する(追加)する(ステップS311)。なお、ここで、対応づけ管理部214は、確認要求に対する判定結果として、例えば、利用可否「NG」を受信した場合であっても、プロキシ情報と、確認要求に対する判定結果とを対応づけ記憶部201に格納する。
【0182】
上記したステップS305において、サーバからアクセス応答を正常に受信しない判別すると(ステップS305否定)、プロキシサーバ200は、アクセス記憶部を更新する(ステップS312)。具体的には、プロキシサーバ200では、サーバ状態管理部213が、当該サーバ300に対応づけられている「状態」を、「NG」に更新する。
【0183】
そして、上記したステップS303において、サーバ300の状態が「OK」でないと判別し(ステップS303否定)、または、上記したステップS305において、サーバからアクセス応答を正常に受信しないと判別してアクセス記憶部202を更新すると、プロキシサーバ200は、アクセス要求転送可能なプロキシサーバ200を問い合わせる(ステップS313)。つまり、プロキシサーバ200では、対応づけ管理部214が、アクセス要求が指定するサーバに現にアクセスすることが可能であるプロキシサーバを識別する「プロキシ情報」を対応づけ記憶部201から取得する。
【0184】
そして、プロキシサーバ200は、取得したプロキシ情報によって識別されるプロキシサーバ200に、アクセス要求を転送し、通常のプロキシ処理(例えば、ステップS305〜S311)を実行する(ステップS314)。
【0185】
[実施例1の効果]
従来より、通常、企業内においては、クライアントはプロキシサーバを介して、自分が所属する組織外のサーバ上のサービス(Webコンテンツ、Webアプリ、Webサービスなど)を利用する。このサーバは、それ自身に障害がなくても、ネットワークに障害が発生し、通信が行えなくなると、サーバによって提供されているサービス自体も利用不可能になっていた。
【0186】
ここで、クライアントからプロキシサーバまでのネットワークは、ユーザが所属する組織が管理するので、そこに障害が発生しても、比較的速やかに対処することが可能である。しかし、プロキシサーバからサーバに至るネットワークは、ユーザが所属する組織やサービス提供者によって管理されている訳ではないので、一般に、障害が発生すると、速やかに復旧することが困難である。その結果として、長時間に亘って、サービスが利用できなくなり、業務に支障を来たす場合がある。
【0187】
そのような場合において、ネットワークの障害を復旧するよりも、別の経路を利用して、サーバにアクセスできるようにすると、ユーザは継続的にサーバを利用でき、得策である。大企業では、複数のプロキシサーバを持ち、複数の異なるネットワークへのアクセスを持っている場合があり、あるプロキシサーバを経由すると、サーバに到達できないが、別のプロキシサーバを経由すると、同じサーバにアクセス可能な場合がある。すなわち、ユーザは、あるサーバが利用不可能な場合、別のプロキシサーバを利用することで、そのサーバを利用できるようになる場合がある。
【0188】
例えば、従来より、クライアントで使用するプロキシサーバ200を自動的に変更(切り替え)するスクリプト(プログラム)を用いる手法が知られている。具体的には、この手法では、管理者がスクリプトを実行することにより、当該スクリプトが、クライアントのブラウザに予め設定されているプロキシサーバに関する設定情報を書き換え、または、使用するネットワークに応じてプロキシサーバを選択して設定する。
【0189】
しかし、このような従来の手法では、管理者が、どのような状況でどのプロキシサーバを使用するかを示す設定情報すべてを予め設定する必要があった。また、管理者が、設定情報をメンテナンスする必要があった。
【0190】
また、このような従来の手法では、サーバへのアクセス状態に応じて、プロキシサーバを変更する機能は含まれない。このため、サーバにアクセスすることが可能であるプロキシサーバを管理者が探索し、探索して得られたプロキシサーバを用いてアクセスする旨クライアントの設定を管理者が変更し、クライアントが用いるプロキシサーバを手動で変更する必要があった。
【0191】
また、従来より、ある特定のブラウザにはURLごとに自動的にプロキシを切り替えるアドオンが知られている(例えば、Mozilla FireFox用のFoxyProxy)。しかし、このような従来の手法では、URLパターンとプロキシサーバの組との設定情報の事前設定と管理やアクセス状態に応じた自動切換えは行うことができない。
【0192】
また、従来より、複数のプロキシサーバの通信負荷を考慮し、サーバやクライアントの設定を変更することなく、クライアントからのアクセス要求時に、レスポンス処理に使用するプロキシサーバを動的に変更する手法が知られている。しかしこの手法においては、切り替え対象となるプロキシサーバを予め設定する必要があり、プロキシサーバの管理者に対する負担が大きくなる。また、この手法においては、プロキシサーバの切り替えのトリガがプロキシサーバの通信負荷の増大であり、また、サーバからのレスポンスを処理するプロキシサーバを切り替えるだけである。このため、この手法においては、ネットワークの障害によるサーバの使用不能を回避することはできない。
【0193】
また、従来の技術では、ネットワークに障害が発生した後に、サーバにアクセスすることが可能であるプロキシサーバを管理者が探索し、探索して得られたプロキシサーバを用いてアクセスする旨、クライアントの設定を管理者が変更する。このため、ネットワークに障害が発生した際に、サーバにアクセスすることが可能になるまでに大きな時間が必要となっていた。
【0194】
このような従来の手法に対して、実施例1によれば、アクセス要求をクライアントから受信するプロキシサーバ200は、プロキシ情報をアクセス応答とともにサーバ300もしくは他のプロキシサーバ200から受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部201に格納し、アクセス要求をクライアント100から受信すると、当該アクセス要求を受信したプロキシサーバ200が、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定し、現にアクセス可能な状況でないと判定されると、アクセス要求が指定するサーバ300を識別するサーバ情報を用いて対応づけ記憶部201を検索し、当該サーバ情報に対応づけて記憶されているプロキシ情報によって識別されるプロキシサーバ200であって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバ200に、当該アクセス要求を転送し、現にアクセス可能な状況であると判定されると、アクセス要求が指定するサーバ300に、当該アクセス要求を転送する。また、サーバ300は、転送されたアクセス要求をプロキシサーバ200から受信すると、当該プロキシサーバ200を識別するプロキシ情報を、プロキシ記憶部に格納し、プロキシ記憶部301に蓄積されているプロキシ情報を、当該プロキシ記憶部301から読み出し、読み出したプロキシ情報を、アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバ200に送信する。これにより、実施例1によれば、クライアントの設定に変更を加えることなく、別のプロキシサーバからサーバにアクセスすることが可能である。
【0195】
また、実施例1によれば、アクセス要求をクライアント100から受信するプロキシサーバ200は、アクセス応答をサーバ300から受信すると、当該アクセス要求が指定するサーバ300を識別するサーバ情報と当該サーバ300に現にアクセス可能な状況である旨を示す情報とを対応づけてアクセス記憶部202に格納し、アクセス要求を受信すると、当該アクセス要求が指定するサーバ300を示すサーバ情報に対応づけて、現にアクセス可能な状況である旨がアクセス記憶部202に記憶されているかを判別し、現にアクセス可能な状況である旨が記憶されている場合に、現にアクセス可能な状況であると判定し、現にアクセス可能な状況である旨が記憶されていない場合に、現にアクセス可能な状況ではないと判定するので、アクセス要求が指定するサーバ300にアクセスできるか否かを迅速に判定することが可能である。
【0196】
また、実施例1によれば、アクセス記憶部202に、アクセス要求が指定するサーバ300を示すサーバ情報を含む対応づけが記憶されていない場合に、当該アクセス要求が指定するサーバ300に、当該アクセス要求を転送し、現にアクセス可能な状況であるかを判定するので、アクセス記憶部202に現にアクセス可能な状況であるかが記憶されていない場合であっても、現にアクセス可能な状況であるかを判定することが可能である。
【0197】
また、実施例1によれば、アクセス要求をクライアント100から受信するプロキシサーバ200は、アクセス要求に応答するアクセス応答とともにプロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバ200であって当該アクセス要求を受信したプロキシサーバ200以外のプロキシサーバ200は、確認要求を送信し、送信された確認要求に対応する判定結果を他のプロキシサーバ200から受信すると、サーバ情報とプロキシ情報との対応づけに対応づけて、受信した判定結果を対応づけ記憶部201に格納し、送信された確認要求を他のプロキシサーバ200から受信するプロキシサーバ200は、アクセス要求が指定するサーバ300に現にアクセス可能な状況であるか否かを判定し、判定結果を当該確認要求の送信元のプロキシサーバ200に送信する。そして、プロキシサーバ200は、現にアクセス可能な状況ではないと判定すると、現にアクセス要求を転送可能な状況である旨の判定結果と対応づけられているプロキシサーバ200に、当該アクセス要求を転送する。これにより、対応づけ記憶部201に蓄積されている対応づけの内、どの対応づけが有効かを迅速に判別することが可能である。
【0198】
また、実施例1によれば、プロキシ記憶部301に蓄積されているプロキシ情報の内、アクセス要求の転送元のプロキシサーバ200以外のプロキシサーバ200を示すプロキシ情報を読み出し、読み出した当該プロキシ情報をアクセス応答とともに送信するので、使用する可能性のあるプロキシ情報のみを送信することが可能である。
【0199】
例えば、プロキシサーバ200(「1」)に対して、当該プロキシサーバ200(「1」)を識別するプロキシ情報を送信したとしても、当該プロキシ情報を受信したプロキシサーバ200(「1」)は、受信したプロキシ情報を使用することはない。実施例1によれば、このような使用する可能性のないプロキシ情報を送信せず、使用する可能性のあるプロキシ情報のみを送信することが可能である。
【実施例2】
【0200】
さて、これまで、実施例1として、プロキシサーバ200が、他のプロキシサーバ200に個別に確認要求を送信する手法について説明したが、本発明はこれに限定されるものではない。例えば、他のプロキシサーバ200間でP2P(ピアツーピア)ネットワークを構築して用いてもよい。
【0201】
具体的には、実施例2に係るアクセス要求転送システムでは、プロキシサーバ200が、アクセス応答とともにプロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバ200であって当該アクセス応答を受信したプロキシサーバ200以外のプロキシサーバ200と、ピアツーピアネットワークを構築する。そして、プロキシサーバ200は、構築したピアツーピアネットワークを介して確認要求を送信し、判定結果をピアツーピアネットワークを介して送信する。
【0202】
そこで、以下では、図12を用いて、実施例2として、P2Pネットワークを構築して用いる手法について説明する。なお、以下では、実施例1に係るアクセス要求転送システムと同様の点については、簡単に説明し、または、説明を省略する。なお、図12は、実施例2に係るアクセス要求転送システムの構成の一例を説明するためのブロック図である。
【0203】
図12に示すように、実施例2に係るアクセス要求転送システムは、新たに、P2Pネットワーク構成管理部を有する。このP2Pネットワーク構成管理部は、P2Pネットワークのトポロジ(コンピュータネットワークの接続形態)を管理する。具体的には、プロキシサーバ200が他のどのプロキシサーバ200とピア関係を結んでいるかを管理する。なお、P2Pネットワーク構成管理部が管理するP2Pネットワークは、例えば、プロキシ問合せ部218が確認要求を送信(または、確認要求に対する判定結果を送信)する際に用いられるものである。
【0204】
具体的には、P2Pネットワーク構成管理部は、対応づけ管理部214から「プロキシ情報」と「サーバ情報」との対応づけが新たに通知されると、そのプロキシサーバ200とピア関係を結ぶかどうかを判定する。そして、P2Pネットワーク構成管理部は、PSPネットワークを構築し、P2Pネットワークの構造を更新する。
【0205】
P2Pネットワーク構成管理部は、ピア関係を結ぶかの判定を行う際に、例えば、応答の早いものプロキシサーバ200である場合や、ネットワーク的に近くにあるプロキシサーバ200である場合に、ピア関係を結ぶと判定する。
【0206】
また、例えば、確認要求を送信する際には、プロキシサーバ200(プロキシ問合せ部218)では、P2Pネットワーク構成管理部によって管理されているP2Pネットワークを参照し、ピア関係にある他のプロキシサーバ200に対して確認要求をP2Pネットワークを介してプロキシI/F部から送信する。
【0207】
また、確認要求の問合せをP2Pネットワークを介してプロキシI/Fから受信するプロキシサーバ200は、確認要求を受信した際に、ピア関係にある他のプロキシサーバ200に確認要求を中継し、得た結果も含めて確認要求の送信元となるプロキシサーバ200に送信してもよい。
【0208】
なお、P2Pネットワーク構成管理部が管理するP2Pネットワークは、確認要求を送信する場合だけでなく、他の用途に用いてもよい。例えば、実際にアクセスしたサーバ300へのアクセス状況を、他のプロキシサーバ200に通知するのに利用しても構わない。
【0209】
具体的には、プロキシサーバ200は、アクセス要求に応答するアクセス応答をサーバから受信すると、当該アクセス応答を受信したプロキシサーバを識別するプロキシ情報並びに当該アクセス要求が指定するサーバ300を識別するサーバ情報並びに当該サーバ300に現にアクセス可能な状況である旨を示す情報の対応づけを、ピアツーピアネットワークを介して他のプロキシサーバに通知する。
【0210】
また、ピアツーピアネットワークを介して対応づけを通知されるプロキシサーバ200は、通知されたプロキシ情報とサーバ情報と当該サーバ300に現にアクセス可能な状況である旨を示す情報との対応づけを、対応づけ記憶部201に格納する。
【0211】
具体的な例をあげて説明すると、プロキシサーバ200は、サーバ300からのアクセス応答を受信するタイミングで、サーバ状態管理部213に対してアクセス状況を更新すると同時に、プロキシ問合せ部218は、ピア関係にあるプロキシサーバ200へアクセス状況の通知を行う。例えば、プロキシ問合せ部218は、当該プロキシ問合せ部218が設置されたプロキシサーバ200を識別する「プロキシ情報」と、アクセス応答が送信されたサーバを識別する「サーバ情報」と、「状態」とを、ピア関係にある他のプロキシサーバ200に通知する。
【0212】
[実施例2の効果]
上記したように、実施例2によれば、他のプロキシサーバに個別に問い合わせることなく、ピアツーピアネットワークを介してアクセス状況を確認することが可能である。これにより、代替となるプロキシサーバを検索する際の効率が向上することが可能である。
【0213】
また、実施例2によれば、ピアツーピアネットワークを利用して、サーバに現にアクセス可能な状況である旨を示す情報を複数のプロキシサーバ間にて簡単に共有することが可能である。
【実施例3】
【0214】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、その他の実施例を説明する。
【0215】
[判定手法]
なお、実施例1や2では、アクセス要求が指定するサーバを識別する「サーバ情報」を、アクセス記憶部202が記憶していない場合について言及しなかったが、本発明はこれに限定されるものではない。具体的には、プロキシサーバ200は、アクセス要求が指定するサーバを識別する「サーバ情報」をアクセス記憶部202が記憶していない場合であってもよい。
【0216】
例えば、プロキシサーバ200は、現にアクセス可能な状況であるか否かを判定するサーバを識別する「サーバ情報」を含む対応づけが、アクセス記憶部202に格納されているかを判定する。
【0217】
ここで、例えば、プロキシサーバ200は、現にアクセス可能な状況であるか否かを判定するサーバを識別する「サーバ情報」を含む対応づけが、アクセス記憶部202に格納されていると判定した場合に、アクセス記憶部202を用いて判定処理を実行する。一方、プロキシサーバ200は、現にアクセス可能な状況であるか否かを判定するサーバを識別する「サーバ情報」を含む対応づけが、アクセス記憶部202に格納されていないと判定した場合に、当該サーバ300に実際にデータ(例えば、アクセス要求)を転送し、現にアクセス可能な状況であるかを判定する。
【0218】
そして、プロキシサーバ200は、実際に転送したデータ(例えば、アクセス要求)に対するアクセス応答がサーバ300から受信した場合に、現にアクセス可能な状況であると判定する。一方、プロキシサーバ200は、実際に転送したデータ(例えば、アクセス要求)に対するアクセス応答がサーバ300から受信しなかった場合に、現にアクセス可能な状況ではないと判定する。
【0219】
アクセス記憶部202が、サーバ情報「A」「B」「C」とを含む対応づけのみを記憶している場合を用いて、具体的な一例をあげて説明する。プロキサーバ300は、サーバ情報「D」について判定する場合に、サーバ情報「D」を含む対応づけがアクセス記憶部202に格納されていないと判定する。そして、プロキサーバ300は、サーバ「D」に対して、実際にアクセス要求を転送する。そして、プロキサーバ300は、転送したアクセス要求に対するアクセス応答をサーバ「D」から受信した場合に、現にアクセス可能な状況であると判定する。一方、プロキサーバ300は、転送したアクセス要求に対するアクセス応答をサーバ「D」から受信しなかった場合に(例えば、アクセス要求を転送した後に、所定の時間内にアクセス応答を受信しなかった場合に)、現にアクセス可能な状況ではないと判定する。
【0220】
なお、その際には、「更新時間」を用いて判定処理を決定してもよい。例えば、「更新時間」が予め設定される閾値以内にあるかを判定し、閾値以内にある場合には、アクセス記憶部202を用いて判定し、閾値以内にない場合には、実際にデータを転送して判定してもよい。
【0221】
[判定手法]
実施例1や2では、プロキシサーバ200が、「サーバ情報」と「プロキシ情報」との対応づけを対応づけ記憶部201に格納する毎に、確認要求を送信する手法について説明したが、本発明はこれに限定されるものではない。例えば、プロキシサーバ200は、実際にアクセス要求を他のプロキシサーバ200に転送する際に、確認要求を送信して「利用可否」を取得してもよい。
【0222】
[サーバが送信するプロキシ情報]
また、実施例1や2では、サーバ300がプロキシサーバ200に送信するプロキシ情報として、アクセス要求を転送したプロキシサーバ200以外のプロキシサーバ200を識別するプロキシ情報を用いる場合について説明した。しかし、本発明はこれに限定されるものではない。例えば、サーバ300は、プロキシ記憶部301に蓄積されているプロキシ情報すべてを送信してもよい。
【0223】
また、例えば、サーバ300は、予め送信するプロキシ情報を選択するポリシを有し、当該ポリシに従って送信するプロキシサーバ200に送信するプロキシ情報を選択してもよい。具体的な例をあげて説明すると、サーバ300は、アクセス要求の転送元のプロキシサーバ200のアドレスとハミング距離が近いものから上位3個を選択し、または、最近アクセスしたもの(「更新日時」が新しいもの)を選択し、または、FQDN(Fully Qualified Domain Name)を見た時にドメインが重なるものを選択してもよい。また、サーバ300は、アクセス要求の転送元であるプロキシサーバと同一のクラス(例えば、IPアドレスのクラスが同一)であるプロキシ情報を選択してもよい。
【0224】
[アクセス要求転送システム構成]
また、実施例1や2では、プロキシサーバ200を介さずに、クライアント100がサーバ300にアクセス要求を送信する場合について言及しなかったが、本発明はこれに限定されるものではない。例えば、本発明を実施するとともに、プロキシサーバ200を介してアクセス要求がサーバ300に送信される場合と、プロキシサーバ200を介さずにアクセス要求がサーバ300に送信される場合とが混在してもよい。その場合、例えば、サーバ300は、アクセス要求を受信すると、当該アクセス要求がプロキシサーバ200を介したアクセス要求かを判別する(例えば、アクセス要求のUser−Agentを調べ、SquidやDeleGateなどプロキシサーバ200製品の名前が含まれているかどうかを調べて判別する)。そして、サーバ300は、プロキシサーバ200を介したアクセス要求であることが分かると、当該プロキシサーバ200を識別するプロキシ情報を、プロキシ記憶部301に格納する。
【0225】
[更新]
また、実施例1や2では、記憶部に格納されている情報(「状態」や「利用可否」)を各プロキシサーバ200が、定期的に更新する手法について言及しなかったが、本発明はこれに限定されるものではない。例えば、プロキシサーバ200は、タイマを参照し、定期的にサーバの状態情報を他のプロキシサーバ200とやり取りし、サーバ300へのアクセスを再試行することによって、「状態」や「利用可否」を定期的に取得して当該情報を更新してもよい。
【0226】
なお、その際には、「状態」として、ネットワークに障害が起きた旨を示す「Network Unreachable」や、タイムアウトを示す「Timeout」などのネットワークの障害の種類を示す情報を記憶してもよい。
【0227】
[アクセス要求転送時]
また、実施例1や2では、アクセス要求転送時に、アクセス要求を転送する他のプロキシサーバ200がない場合について言及しなかったが、本発明はこれに限定されるものではない。例えば、プロキシサーバ200は、アクセス要求を転送する他のプロキシサーバ200がある場合には、当該他のプロキシサーバ200にアクセス要求を転送する。また、プロキシサーバ200は、アクセス要求を転送する他のプロキシサーバ200がない場合には、クライアント100にエラー(当該アクセス要求をサーバ300に送信できない旨の情報)を送信してもよい。
【0228】
[実施例の組み合わせについて]
また、実施例1では、他のプロキシサーバ200にアクセス要求を転送する手法を説明する際に、(1)サーバ情報と「状態」とを記憶し、「状態」を用いてアクセス転送先を決定する手法と、(2)アクセス要求が指定するサーバについての対応づけがない場合に、アクセス要求を当該サーバに転送する手法と、(3)当該他のプロキシサーバ200から当該サーバにアクセスすることが許されるかを確認する手法と、(4)サーバ300が、当該アクセス要求の送信元以外のプロキシサーバ200を識別する「プロキシ情報」を送信する手法と、などを併せて説明した。また、実施例2では、(5)ピアツーピアネットワークを用いてプロキシサーバ200間で情報を送受信する手法と、(6)ピアツーピアネットワークを他のプロキシサーバ200に情報を通知する手法とを、併せて説明した。
【0229】
しかし、本発明の実施の形態は、これに限定されるものではない。例えば、上記した(1)〜(6)の内、いずれか一つまたは複数の手法を合わせて実施してもよい。
【0230】
[システム構成]
また、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報(例えば、図1〜図12)については、特記する場合を除いて任意に変更することができる。
【0231】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、プロキシサーバ200やサーバ300の各部は適宜統合、分散してもよい。例えば、プロキシポリシ管理部215と、サーバ状態管理部213と、対応づけ管理部214とを統合してもよい。
【0232】
また、実施例1や2では、アクセス要求転送システムが有する複数のプロキシサーバ200それぞれが、同様の機能を有するものとして説明したが、本発明はこれに限定されるものではない。例えば、図2に示した構成部を有するプロキシサーバ200と、図2に示した構成部を有さないプロキシサーバとが混在している場合であってもよい。
【0233】
[プログラム]
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図13を用いて、上記の実施例と同様の機能を有するアクセス要求転送プログラムを実行するコンピュータの一例を説明する。
【0234】
なお、以下では、まず、図13−1を用いて、アクセス要求転送システムのプロキシサーバ200として機能するプログラムを実行するコンピュータについて説明し、その後、図13−2を用いて、アクセス要求転送システムのサーバ300として機能するプログラムを実行するコンピュータについて説明する。なお、図13−1と図13−2とは、実施例1に係るアクセス要求転送システムのプログラムを説明するための図である。
【0235】
[プロキシサーバとして機能するプログラム]
まず、アクセス要求転送システムのプロキシサーバ200として機能するプログラムについて説明する。図13−1に示すように、コンピュータ3000は、操作部3001、マイク3002、スピーカ3003、ディスプレイ3005、通信部3006、CPU3010、ROM3011、HDD3012、RAM3013をバス3009などで接続して構成されている。
【0236】
ROM3011には、上記の実施例1で示したHTTP I/F(プロキシサーバ)部211と、プロキシI/F部212と、サーバ状態管理部213と、対応づけ管理部214と、プロキシポリシ管理部215と、切り替え判断処理部216と、サーバアクセス処理部217と、プロキシ問合せ部218と、プロキシアクセス処理部219と同様の機能を発揮する制御プログラム、つまり、同図に示すように、HTTP I/F(プロキシサーバ)プログラム3011aと、プロキシI/Fプログラム3011bと、サーバ状態管理プログラム3011cと、対応づけ管理プログラム3011dと、プロキシポリシ管理プログラム3011eと、切り替え判断処理プログラム3011fと、サーバアクセス処理プログラム3011gと、プロキシ問合せプログラム3011hと、プロキシアクセス処理プログラム3011iとが予め記憶されている。なお、これらのプログラム3011a〜3011iについては、図2に示したアクセス要求転送システムのプロキシサーバ200の各構成要素と同様、適宜統合または分離してもよい。
【0237】
そして、CPU3010が、これらのプログラム3011a〜3011iをROM3011から読み出して実行することにより、図13−1に示すように、各プログラム3011a〜3011iについては、HTTP I/F(プロキシサーバ)プロセス3010aと、プロキシI/Fプロセス3010bと、サーバ状態管理プロセス3010cと、対応づけ管理プロセス3010dと、プロキシポリシ管理プロセス3010eと、切り替え判断処理プロセス3010fと、サーバアクセス処理プロセス3010gと、プロキシ問合せプロセス3010hと、プロキシアクセス処理プロセス3010iとして機能するようになる。なお、各プロセス3010a〜3010iは、図2に示した、HTTP I/F(プロキシサーバ)部211と、プロキシI/F部212と、サーバ状態管理部213と、対応づけ管理部214と、プロキシポリシ管理部215と、切り替え判断処理部216と、サーバアクセス処理部217と、プロキシ問合せ部218と、プロキシアクセス処理部219とにそれぞれ対応する。
【0238】
そして、HDD3012には、対応づけ記憶テーブル3012aと、アクセス記憶テーブル3012bと、ポリシ記憶テーブル3012cと、が設けられている。なお、各テーブル3012a〜3012cは、図2に示した、対応づけ記憶部201と、アクセス記憶部202と、ポリシ記憶部203とにそれぞれ対応する。
【0239】
そして、CPU3010は、対応づけ記憶テーブル3012aと、アクセス記憶テーブル3012bと、ポリシ記憶テーブル3012cとを読み出してRAM3013に格納し、RAM3013に格納された対応づけ記憶データ3013aと、アクセス記憶データ3013bと、ポリシ記憶データ3013cとを用いて、アクセス要求転送プログラムを実行する。
【0240】
[サーバとして機能するプログラム]
次に、アクセス要求転送システムのサーバ300として機能するプログラムについて説明する。図13−2に示すように、コンピュータ4000は、操作部4001、マイク4002、スピーカ4003、ディスプレイ4005、通信部4006、CPU4010、ROM4011、HDD4012、RAM4013をバス4009などで接続して構成されている。
【0241】
ROM4011には、上記の実施例1で示したHTTP I/F(サーバ)部311と、プロキシ情報管理部312と、プロキシ情報付与部314と、サービス実行部313と同様の機能を発揮する制御プログラム、つまり、同図に示すように、HTTP I/F(サーバ)プログラム4011aと、プロキシ情報管理プログラム4011bと、プロキシ情報付与プログラム4011cと、サービス実行プログラム4011dとが予め記憶されている。なお、これらのプログラム4011a〜4011dについては、図2に示したアクセス要求転送システムのサーバ300の各構成要素と同様、適宜統合または分離してもよい。
【0242】
そして、CPU4010が、これらのプログラム4011a〜4011dをROM4011から読み出して実行することにより、図13−2に示すように、各プログラム4011a〜4011dについては、HTTP I/F(サーバ)プロセス4010aと、プロキシ情報管理プロセス4010bと、プロキシ情報付与プロセス4010cと、サービス実行プロセス4010dとして機能するようになる。なお、各プロセス4010a〜4010dは、図2に示した、HTTP I/F(サーバ)部311と、プロキシ情報管理部312と、プロキシ情報付与部314と、サービス実行部313とにそれぞれ対応する。
【0243】
そして、HDD4012には、プロキシ記憶テーブル4012aが設けられている。なお、各テーブル4012aは、図2に示した、プロキシ記憶部301にそれぞれ対応する。
【0244】
そして、CPU4010は、プロキシ記憶テーブル4012aを読み出してRAM4013に格納し、RAM4013に格納されたプロキシ記憶データ4013dを用いて、アクセス要求転送プログラムを実行する。
【0245】
以上の実施例1〜3を含む実施形態に関し、更に以下の付記を開示する。
【0246】
(付記1)複数のプロキシサーバを含むネットワークにおいて、クライアントから送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに転送するアクセス要求転送方法をコンピュータに実行させるアクセス要求転送プログラムであって、
前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
プロキシサーバを識別するプロキシ情報を、前記アクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部に格納する対応づけ格納手順と、
アクセス要求をクライアントから受信すると、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定手順と、
前記判定手順によって現にアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されている前記プロキシ情報によって識別される前記プロキシサーバであって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送手順と、
前記判定手順によって現にアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送手順と、
を実行させ、
前記サーバとして用いられるコンピュータに、
前記第二のアクセス要求転送手順によって転送された前記アクセス要求を前記プロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ情報を蓄積しているプロキシ記憶部に格納するプロキシ情報格納手順と、
前記プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出し、読み出したプロキシ情報を、前記アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信するアクセス応答送信手順と、
を実行させることを特徴とするアクセス要求転送プログラム。
【0247】
(付記2)前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
アクセス要求に応答するアクセス応答をサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該サーバに現にアクセス可能な状況である旨を示す情報とを対応づけてアクセス記憶部に格納するアクセス情報格納手順をさらに実行させ、
前記判定手順は、前記アクセス要求を受信すると、当該アクセス要求が指定するサーバを示す前記サーバ情報に対応づけて、現にアクセス可能な状況である旨が前記アクセス記憶部に記憶されているかを判別し、現にアクセス可能な状況である旨が記憶されている場合に、現にアクセス可能な状況であると判定し、現にアクセス可能な状況である旨が記憶されていない場合に、現にアクセス可能な状況ではないと判定することを特徴とする付記1に記載のアクセス要求転送プログラム。
【0248】
(付記3)前記判定手順は、前記アクセス記憶部に、前記アクセス要求が指定するサーバを示す前記サーバ情報を含む対応づけが記憶されていない場合に、当該アクセス要求が指定するサーバに、当該アクセス要求を転送し、現にアクセス可能な状況であるかを判定することを特徴とする付記2に記載のアクセス要求転送プログラム。
【0249】
(付記4)前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
前記アクセス要求に応答するアクセス応答とともに前記プロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバであって当該アクセス要求を受信したプロキシサーバ以外のプロキシサーバに、当該プロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス要求を転送可能な状況であるか否かを確認する要求である確認要求を送信する確認要求送信手順と、
前記確認要求送信手順によって送信された前記確認要求に対応する判定結果を他のプロキシサーバから受信すると、当該確認要求によって現にアクセス要求を転送可能な状況であるか否かを確認したサーバを示す前記サーバ情報と当該他のプロキシサーバを示す前記プロキシ情報との対応づけに対応づけて、受信した判定結果を前記対応づけ記憶部に格納する判定結果格納手順と、
をさらに実行させ、
前記確認要求送信手順によって送信された前記確認要求を他のプロキシサーバから受信するプロキシサーバとして用いられるコンピュータに、
前記確認要求を受信したプロキシサーバが、前記アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する確認要求判定手順と、
前記確認要求判定手順によって判定された判定結果を当該確認要求の送信元のプロキシサーバに送信する判定結果送信手順と、
をさらに実行させ、
前記第一のアクセス要求転送手順は、現にアクセス要求を転送可能な状況である旨の判定結果と対応づけられているプロキシサーバに、当該アクセス要求を転送することを特徴とする付記1〜3のいずれか一つに記載のアクセス要求転送プログラム。
【0250】
(付記5)前記アクセス応答送信手順は、前記プロキシ記憶部に蓄積されている前記プロキシ情報の内、前記アクセス要求の転送元のプロキシサーバ以外のプロキシサーバを示すプロキシ情報を読み出し、読み出した当該プロキシ情報をアクセス応答とともに送信することを特徴とする付記1〜4のいずれか一つに記載のアクセス要求転送プログラム。
【0251】
(付記6)前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
前記アクセス応答とともに前記プロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバであって当該アクセス応答を受信したプロキシサーバ以外のプロキシサーバと、ピアツーピアネットワークを構築する構築手順をさらに実行させ、
前記確認要求送信手順は、前記構築手順によって構築された前記ピアツーピアネットワークを介して前記確認要求を送信し、
前記判定結果送信手順は、前記判定結果を前記ピアツーピアネットワークを介して送信することを特徴とする付記4または5に記載のアクセス要求転送プログラム。
【0252】
(付記7)前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
前記アクセス応答とともに前記プロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバであって当該アクセス応答を受信したプロキシサーバ以外のプロキシサーバと、ピアツーピアネットワークを構築する構築手順をさらに実行させ、
前記アクセス要求に応答するアクセス応答を前記サーバから受信すると、当該アクセス応答を受信したプロキシサーバを識別する前記プロキシ情報並びに当該アクセス要求が指定するサーバを識別する前記サーバ情報並びに当該サーバに現にアクセス可能な状況である旨を示す情報の対応づけを、前記ピアツーピアネットワークを介して他のプロキシサーバに通知する通知手順と、
前記通知手順によって前記ピアツーピアネットワークを介して前記対応づけを通知されるプロキシサーバとして用いられるコンピュータに、
前記通知手順によって通知された前記プロキシ情報と前記サーバ情報と当該サーバに現にアクセス可能な状況である旨を示す情報との対応づけを、前記対応づけ記憶部に格納する通知後格納手順をさらに実行させることを特徴とする付記4〜6のいずれか一つに記載のアクセス要求転送プログラム。
【0253】
(付記8)複数のプロキシサーバを含むネットワークにおいて、クライアントから送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに転送するアクセス要求転送システムであって、
前記アクセス要求をクライアントから受信するプロキシサーバは、
プロキシサーバを識別するプロキシ情報を、前記アクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部に格納する対応づけ格納手段と、
アクセス要求をクライアントから受信すると、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定手段と、
前記判定手段によって現にアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されている前記プロキシ情報によって識別される前記プロキシサーバであって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送手段と、
前記判定手段によって現にアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送手段と、
を備え、
前記サーバは、
前記第二のアクセス要求転送手段によって転送された前記アクセス要求を前記プロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ情報を蓄積しているプロキシ記憶部に格納するプロキシ情報格納手段と、
前記プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出し、読み出したプロキシ情報を、前記アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信するアクセス応答送信手段と、
を備えることを特徴とするアクセス要求転送システム。
【0254】
(付記9)複数のプロキシサーバを含むネットワークにおいて、クライアントから送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに転送するアクセス要求転送方法であって、
前記アクセス要求をクライアントから受信するプロキシサーバは、
プロキシサーバを識別するプロキシ情報を、前記アクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部に格納する対応づけ格納工程と、
アクセス要求をクライアントから受信すると、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定工程と、
前記判定工程によって現にアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されている前記プロキシ情報によって識別される前記プロキシサーバであって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送工程と、
前記判定工程によって現にアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送工程と、
を含み、
前記サーバは、
前記第二のアクセス要求転送工程によって転送された前記アクセス要求を前記プロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ情報を蓄積しているプロキシ記憶部に格納するプロキシ情報格納工程と、
前記プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出し、読み出したプロキシ情報を、前記アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信するアクセス応答送信工程と、
を含むことを特徴とするアクセス要求転送方法。
【0255】
(付記10)他サーバに通信可能に接続されるプロキシサーバであって、
プロキシサーバを識別する情報としてサーバに蓄積されたプロキシ情報であってアクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信したプロキシ情報を、当該アクセス要求が指定するサーバを識別するサーバ情報に対応づけて格納する対応づけ記憶部と、
クライアントが発したアクセス要求を受信すると、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定手段と、
前記判定手段によって、前記アクセス要求が指定するサーバにアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけられたプロキシ情報によって識別されるプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送手段と、
前記判定手段によって前記アクセス要求が指定するサーバにアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送手段と、
を備えたことを特徴とするプロキシサーバ。
【図面の簡単な説明】
【0256】
【図1】実施例1に係るアクセス要求転送システムの概要を説明するための図である。
【図2】実施例1に係るアクセス要求転送システムの構成の一例を説明するためのブロック図である。
【図3】実施例1における対応づけ記憶部に格納されている情報の一例を説明するための図である。
【図4】実施例1におけるアクセス記憶部に格納されている情報の一例を説明するための図である。
【図5】実施例1におけるポリシ記憶部に格納されている情報の一例を説明するための図である。
【図6】実施例1におけるプロキシ記憶部に格納されている情報の一例を説明するための図である。
【図7】実施例1におけるサーバからの接続応答の一例を説明するための図である。
【図8−1】実施例1における情報の流れの一例を説明するための図である。
【図8−2】実施例1における情報の流れの一例を説明するための図である。
【図9】実施例1におけるアクセス要求転送システムの処理の流れの一例を示すシーケンス図である。
【図10】実施例1におけるアクセス要求転送システムの処理の流れの一例を示すシーケンス図である。
【図11】実施例1におけるアクセス要求転送システムの処理の流れの一例を示すフローチャートである。
【図12】実施例2に係るアクセス要求転送システムの構成の一例を説明するためのブロック図である。
【図13−1】実施例1に係るアクセス要求転送システムのプログラムを説明するための図である。
【図13−2】実施例1に係るアクセス要求転送システムのプログラムを説明するための図である。
【符号の説明】
【0257】
100 クライアント
101 ブラウザ
200 プロキシサーバ
201 対応づけ記憶部
202 アクセス記憶部
203 ポリシ記憶部
211 HTTP I/F(プロキシサーバ)部
212 プロキシI/F部
213 サーバ状態管理部
214 対応づけ管理部
215 プロキシポリシ管理部
216 切り替え判断処理部
217 サーバアクセス処理部
218 プロキシ問合せ部
219 プロキシアクセス処理部
300 サーバ
301 プロキシ記憶部
311 HTTP I/F(サーバ)部
312 プロキシ情報管理部
313 サービス実行部
314 プロキシ情報付与部

【特許請求の範囲】
【請求項1】
複数のプロキシサーバを含むネットワークにおいて、クライアントから送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに転送するアクセス要求転送方法をコンピュータに実行させるアクセス要求転送プログラムであって、
前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
プロキシサーバを識別するプロキシ情報を、前記アクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部に格納する対応づけ格納手順と、
アクセス要求をクライアントから受信すると、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定手順と、
前記判定手順によって現にアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されている前記プロキシ情報によって識別される前記プロキシサーバであって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送手順と、
前記判定手順によって現にアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送手順と、
を実行させ、
前記サーバとして用いられるコンピュータに、
前記第二のアクセス要求転送手順によって転送された前記アクセス要求を前記プロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ情報を蓄積しているプロキシ記憶部に格納するプロキシ情報格納手順と、
前記プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出し、読み出したプロキシ情報を、前記アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信するアクセス応答送信手順と、
を実行させることを特徴とするアクセス要求転送プログラム。
【請求項2】
前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
前記アクセス要求に応答するアクセス応答とともに前記プロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバであって当該アクセス要求を受信したプロキシサーバ以外のプロキシサーバに、当該プロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス要求を転送可能な状況であるか否かを確認する要求である確認要求を送信する確認要求送信手順と、
前記確認要求送信手順によって送信された前記確認要求に対応する判定結果を他のプロキシサーバから受信すると、当該確認要求によって現にアクセス要求を転送可能な状況であるか否かを確認したサーバを示す前記サーバ情報と当該他のプロキシサーバを示す前記プロキシ情報との対応づけに対応づけて、受信した判定結果を前記対応づけ記憶部に格納する判定結果格納手順と、
をさらに実行させ、
前記確認要求送信手順によって送信された前記確認要求を他のプロキシサーバから受信するプロキシサーバとして用いられるコンピュータに、
前記確認要求を受信したプロキシサーバが、前記アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する確認要求判定手順と、
前記確認要求判定手順によって判定された判定結果を当該確認要求の送信元のプロキシサーバに送信する判定結果送信手順と、
をさらに実行させ、
前記第一のアクセス要求転送手順は、現にアクセス要求を転送可能な状況である旨の判定結果と対応づけられているプロキシサーバに、当該アクセス要求を転送することを特徴とする請求項1に記載のアクセス要求転送プログラム。
【請求項3】
前記アクセス応答送信手順は、前記プロキシ記憶部に蓄積されている前記プロキシ情報の内、前記アクセス要求の転送元のプロキシサーバ以外のプロキシサーバを示すプロキシ情報を読み出し、読み出した当該プロキシ情報をアクセス応答とともに送信することを特徴とする請求項2に記載のアクセス要求転送プログラム。
【請求項4】
前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
前記アクセス応答とともに前記プロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバであって当該アクセス応答を受信したプロキシサーバ以外のプロキシサーバと、ピアツーピアネットワークを構築する構築手順をさらに実行させ、
前記確認要求送信手順は、前記構築手順によって構築された前記ピアツーピアネットワークを介して前記確認要求を送信し、
前記判定結果送信手順は、前記判定結果を前記ピアツーピアネットワークを介して送信することを特徴とする請求項2〜3に記載のアクセス要求転送プログラム。
【請求項5】
前記アクセス要求をクライアントから受信するプロキシサーバとして用いられるコンピュータに、
前記アクセス応答とともに前記プロキシ情報を受信すると、当該プロキシ情報によって識別されるプロキシサーバであって当該アクセス応答を受信したプロキシサーバ以外のプロキシサーバと、ピアツーピアネットワークを構築する構築手順をさらに実行させ、
前記アクセス要求に応答するアクセス応答を前記サーバから受信すると、当該アクセス応答を受信したプロキシサーバを識別する前記プロキシ情報並びに当該アクセス要求が指定するサーバを識別する前記サーバ情報並びに当該サーバに現にアクセス可能な状況である旨を示す情報の対応づけを、前記ピアツーピアネットワークを介して他のプロキシサーバに通知する通知手順と、
前記通知手順によって前記ピアツーピアネットワークを介して前記対応づけを通知されるプロキシサーバとして用いられるコンピュータに、
前記通知手順によって通知された前記プロキシ情報と前記サーバ情報と当該サーバに現にアクセス可能な状況である旨を示す情報との対応づけを、前記対応づけ記憶部に格納する通知後格納手順をさらに実行させることを特徴とする請求項2〜4のいずれか一つに記載のアクセス要求転送プログラム。
【請求項6】
複数のプロキシサーバを含むネットワークにおいて、クライアントから送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに転送するアクセス要求転送システムであって、
前記アクセス要求をクライアントから受信するプロキシサーバは、
プロキシサーバを識別するプロキシ情報を、前記アクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部に格納する対応づけ格納手段と、
アクセス要求をクライアントから受信すると、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定手段と、
前記判定手段によって現にアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されている前記プロキシ情報によって識別される前記プロキシサーバであって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送手段と、
前記判定手段によって現にアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送手段と、
を備え、
前記サーバは、
前記第二のアクセス要求転送手段によって転送された前記アクセス要求を前記プロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ情報を蓄積しているプロキシ記憶部に格納するプロキシ情報格納手段と、
前記プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出し、読み出したプロキシ情報を、前記アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信するアクセス応答送信手段と、
を備えることを特徴とするアクセス要求転送システム。
【請求項7】
複数のプロキシサーバを含むネットワークにおいて、クライアントから送信されたアクセス要求を、当該アクセス要求がアクセス先として指定するサーバに転送するアクセス要求転送方法であって、
前記アクセス要求をクライアントから受信するプロキシサーバは、
プロキシサーバを識別するプロキシ情報を、前記アクセス要求に応答するアクセス応答とともにサーバもしくは他のプロキシサーバから受信すると、当該アクセス要求が指定するサーバを識別するサーバ情報と当該プロキシ情報とを対応づけて対応づけ記憶部に格納する対応づけ格納工程と、
アクセス要求をクライアントから受信すると、当該アクセス要求を受信したプロキシサーバが、当該アクセス要求が指定するサーバに現にアクセス可能な状況であるか否かを判定する判定工程と、
前記判定工程によって現にアクセス可能な状況でないと判定されると、前記アクセス要求が指定するサーバを識別するサーバ情報を用いて前記対応づけ記憶部を検索し、当該サーバ情報に対応づけて記憶されている前記プロキシ情報によって識別される前記プロキシサーバであって当該アクセス要求を受信した当該プロキシサーバ以外のプロキシサーバに、当該アクセス要求を転送する第一のアクセス要求転送工程と、
前記判定工程によって現にアクセス可能な状況であると判定されると、前記アクセス要求が指定するサーバに、当該アクセス要求を転送する第二のアクセス要求転送工程と、
を含み、
前記サーバは、
前記第二のアクセス要求転送工程によって転送された前記アクセス要求を前記プロキシサーバから受信すると、当該プロキシサーバを識別するプロキシ情報を、プロキシ情報を蓄積しているプロキシ記憶部に格納するプロキシ情報格納工程と、
前記プロキシ記憶部に蓄積されているプロキシ情報を、当該プロキシ記憶部から読み出し、読み出したプロキシ情報を、前記アクセス要求に応答するアクセス応答とともに当該アクセス要求の転送元のプロキシサーバに送信するアクセス応答送信工程と、
を含むことを特徴とするアクセス要求転送方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8−1】
image rotate

【図8−2】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13−1】
image rotate

【図13−2】
image rotate


【公開番号】特開2009−245309(P2009−245309A)
【公開日】平成21年10月22日(2009.10.22)
【国際特許分類】
【出願番号】特願2008−92975(P2008−92975)
【出願日】平成20年3月31日(2008.3.31)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】