(57)【要約】【課題】  全体を管理する装置等を必要とせずに、サーバ数やクライアント数の増減に伴う負荷変動にも対応して、全サーバが自立的に負荷を調整し、複数のサーバでの負荷分散・均衡化を図る。特に、Ｗｅｂ参照を代理処理するサーバにおける負荷の均衡化を図る。【解決手段】  複数のサーバ｛ａ，ｂ，ｃ｝を含むグループにおいて共通アドレスを持つ。各サーバは、Ｗｅｂ参照機能、キャッシュ機能、負荷測定機能を持ち、グループの各サーバについて、負荷情報、キャッシュ情報（ＵＲＬや更新日時）等を保有し、グループ内で情報を通知し合う。各サーバは、ＰＣから共通アドレスを用いたＵＲＬ指定による第１要求を受信すると、グループでのキャッシュ状態や負荷状態に応じて処理を受け付ける。該当サーバは、最新のコンテンツデータのキャッシュが無い場合は第２要求及び第２応答によりＷｅｂサーバから取得しキャッシュしてＰＣへ第１応答として送信する。【選択図】  図１０
2006301769.tif 000002
【特許請求の範囲】
【請求項１】
自サーバ装置を含む複数のサーバ装置を含んで構成されるグループを定義したグループ定義情報を保有し、前記グループ定義情報は、前記グループの各サーバ装置の固有アドレスと、前記グループの全サーバ装置での共通アドレスとを持ち、
クライアント装置からの処理要求に応じて外部サーバ装置のデータを対象として参照する代理処理を行う機能と、
前記外部サーバ装置のデータに対するアクセスの処理の情報をキャッシュ情報として、前記アクセスの処理で参照した前記対象のデータをキャッシュデータとして、記憶領域に格納する機能と、
前記キャッシュ情報を前記グループの他サーバ装置との間で授受し合うことにより前記グループの自サーバ装置と他サーバ装置についてのキャッシュ情報を保有し、
前記クライアント装置からの前記共通アドレスによる処理要求に対し、前記自サーバ装置で保有している前記グループの自サーバ装置と他サーバ装置についてのキャッシュ情報の参照に基づき、
前記処理要求で指定される前記対象のデータに対応した、前記グループ内で最新のキャッシュデータを保有している場合には、前記処理要求に対応した代理処理を受け付けることを特徴とするサーバ装置。
【請求項２】
自サーバ装置を含む複数のサーバ装置を含んで構成されるグループを定義したグループ定義情報を保有し、前記グループ定義情報は、前記グループの各サーバ装置の固有アドレスと、前記グループの全サーバ装置での共通アドレスとを持ち、
クライアント装置からの処理要求に応じて外部サーバ装置のデータを対象として参照する代理処理を行う機能と、
前記外部サーバ装置のデータに対するアクセスの処理の情報をキャッシュ情報として、前記アクセスの処理で参照した前記対象のデータをキャッシュデータとして、記憶領域に格納する機能と、
自サーバ装置での処理の負荷を測定する機能とを有し、
前記キャッシュ情報を前記グループの他サーバ装置との間で授受し合うことにより前記グループの自サーバ装置と他サーバ装置についてのキャッシュ情報を保有し、
前記測定した負荷情報を前記グループの他サーバ装置との間で授受し合うことにより前記グループの自サーバ装置と他サーバ装置についての負荷情報を保有し、
前記クライアント装置からの前記共通アドレスによる処理要求に対し、前記自サーバ装置で保有している前記グループの自サーバ装置と他サーバ装置についてのキャッシュ情報と負荷情報の参照に基づき、
前記処理要求で指定される前記対象のデータに対応した、前記グループ内で最新のキャッシュデータを保有している場合には、前記処理要求に対応した代理処理を受け付け、
前記処理要求で指定される前記対象のデータに対応したキャッシュデータを前記グループのどのサーバ装置も保有していない場合には、自サーバ装置の負荷情報が最小である場合に、前記処理要求に対応した代理処理を受け付けることを特徴とするサーバ装置。
【請求項３】
自サーバ装置を含む複数のサーバ装置を含んで構成されるグループを定義したグループ定義情報を保有し、前記グループ定義情報は、前記グループの各サーバ装置の固有アドレスと、前記グループの全サーバ装置での共通アドレスとを持ち、
クライアント装置からの要求に応じて、外部のＷｅｂサーバのコンテンツデータを対象として要求によりアクセスする機能と、
前記Ｗｅｂサーバのコンテンツデータに対するアクセスの処理の情報と、前記アクセスの処理で参照した前記対象のコンテンツデータとを、キャッシュ情報とキャッシュデータとして、記憶領域に格納する機能と、
前記グループにおける自サーバ装置と他サーバ装置についてのキャッシュ情報を保有し、
前記自サーバ装置で保有している自サーバ装置についてのキャッシュ情報を更新した場合、更新されたキャッシュ情報を前記グループの他サーバ装置に送信し、
前記グループの他サーバ装置から前記キャッシュ情報を受信した場合、その情報により前記自サーバ装置で保有している該当他サーバ装置についてのキャッシュ情報を更新する処理を行うことを特徴とするサーバ装置。
【請求項４】
請求項３記載のサーバ装置において、
前記キャッシュ情報は、前記コンテンツデータへのＵＲＬと前記コンテンツデータの更新日時の情報を含み、
前記クライアント装置からの前記共通アドレスを送信先として用いた前記ＵＲＬによるＷｅｂ参照の要求の受信に対し、
前記自サーバ装置で保有している前記グループの自サーバ装置と他サーバ装置のキャッシュ情報の参照に基づき、
自サーバ装置で、前記要求のＵＲＬで指示されるコンテンツデータに対応した、最新のキャッシュ情報を保有している場合には、前記要求に対しての処理受付を行うことを特徴とするサーバ装置。
【請求項５】
請求項４記載のサーバ装置において、
自サーバ装置での処理の負荷を測定する機能を有し、
前記グループにおける前記機能で測定した自サーバ装置の負荷情報と、他サーバ装置の負荷情報とを保有し、
前記自サーバ装置で保有している自サーバ装置についての負荷情報を、前記グループの他サーバ装置に送信し、
前記グループの他サーバ装置から前記負荷情報を受信した場合、その情報により前記自サーバ装置で保有している該当他サーバ装置についての負荷情報を更新する処理を行い、
前記クライアント装置からのＷｅｂ参照の要求の受信に対し、
自サーバ装置で、前記要求のＵＲＬで指示されるコンテンツデータに対応した、最新のキャッシュ情報を保有しており、かつ、自サーバ装置の負荷情報が最小である場合は、前記要求に対しての処理受付を行うことを特徴とするサーバ装置。
【請求項６】
請求項５記載のサーバ装置において、
前記グループの全サーバ装置についての前記処理受付に係わる優先順位の情報を持ち、
前記クライアント装置からのＷｅｂ参照の要求の受信に対し、
前記要求のＵＲＬで指示されるコンテンツデータに対応した、最新のキャッシュ情報を保有し、かつ、前記負荷情報が最小となる、自サーバ装置を含んだ複数のサーバ装置が存在する状態の場合に、これら複数のサーバ装置間で自サーバ装置の前記優先順位が最高位である場合には、前記要求に対しての処理受付を行うことを特徴とするサーバ装置。
【請求項７】
請求項５または６に記載のサーバ装置において、
前記クライアント装置からのＷｅｂ参照の要求の受信に対し、
前記自サーバ装置で保有している前記グループの自サーバ装置と他サーバ装置を含む全サーバ装置分のキャッシュ情報を調査する処理を行い、前記全サーバ装置分のキャッシュ情報内に、前記要求のＵＲＬに対応したキャッシュ情報が存在しない場合は、
前記グループの各サーバ装置についての負荷情報の比較に従い、自サーバ装置の負荷情報の大小に応じて、前記要求に対しての処理受付を行い、前記Ｗｅｂサーバの対象のコンテンツデータに対し要求によりアクセスして取得し、前記クライアント装置へ応答することを特徴とするサーバ装置。
【請求項８】
自サーバ装置を含む複数のサーバ装置を含んで構成されるグループを定義したグループ定義情報を保有し、前記グループ定義情報は、前記グループの各サーバ装置の固有アドレスと、前記グループの全サーバ装置での共通アドレスとを持ち、
クライアント装置からの要求に応じて、外部のデータベースのデータを対象としてアクセスする機能と、
前記データベースのデータに対するアクセスの処理の情報と、前記アクセスの処理で受信した前記対象のデータとを、キャッシュ情報とキャッシュデータとして、記憶領域に格納する機能と、
前記グループにおける自サーバ装置と他サーバ装置についてのキャッシュ情報を保有し、
前記自サーバ装置で保有している自サーバ装置についてのキャッシュ情報を更新した場合、更新されたキャッシュ情報を前記グループの他サーバ装置に送信し、
前記グループの他サーバ装置から前記キャッシュ情報を受信した場合、その情報により前記自サーバ装置で保有している他サーバ装置についてのキャッシュ情報を更新する処理を行うことを特徴とするサーバ装置。
【請求項９】
請求項８記載のサーバ装置において、
前記キャッシュ情報は、前記データベースのデータのアドレスと前記データの更新日時の情報を含み、
前記クライアント装置からの前記共通アドレスを送信先として用いた前記アドレスによる前記データベースのデータに対する参照の要求の受信に対し、
前記自サーバ装置で保有している前記グループの自サーバ装置と他サーバ装置のキャッシュ情報の参照に基づき、
自サーバ装置で、前記要求での対象のデータに対応した、最新のキャッシュ情報を保有している場合は、前記要求に対しての処理受付を行うことを特徴とするサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＣ（パソコン）などのクライアントからの要求を受け付けて処理を行うサーバ装置に関し、特に、クライアントからの、ＷｅｂページなどのＵＲＬ（Uniform Resource Locator）やＩＰアドレス等を指定して行うＷｅｂ参照要求を受け付けてＷｅｂサーバへの参照処理を中継や代行するサーバ装置（プロキシサーバ装置）や、ＤＢ（データベース）の参照要求を受け付けてＤＢサーバへの処理を行うサーバ装置などに関して、複数のサーバ装置における負荷分散の技術に関する。
【背景技術】
【０００２】
従来、サーバ装置毎に、メール、Ｗｅｂ、ＤＢ、アプリケーション実行などの機能を設定した構成において、ＰＣなどのクライアントから、所望の機能に対応するサーバ装置を選び、該当サーバ装置を宛先とした通信アドレスを用いて処理要求を出していた。
【０００３】
そのため、ＰＣが増加してくると、あるサーバ装置に対して負荷が増える。従って、そのたびに、負荷を分散するための外付けのサーバ装置を増設し、接続対象のＰＣ側の設定も変更する必要があった。
【０００４】
また更に、近年では、サーバ装置の増設を容易にするため、“ブレードサーバ”と呼ばれる複数のサーバ装置を筐体に内蔵して、ブレードサーバ単位で挿抜を行う構成により、サーバ機能の性能アップを簡単に行う方式も出てきた。各ブレードサーバは、ＣＰＵ、メモリやハードディスクドライブ（ＨＤＤ）、ネットワーク制御機能などを持つ構成である。
【０００５】
ところが、上記のケースにおいても、やはり、複数のブレードサーバ間でどのように負荷分散するかについては、ＰＣ側での接続先設定を変更することにより負荷分散を図っていた。
【０００６】
また、特に、サーバ機能の１つとして、ネットワーク上の情報資源に対するアクセス・参照を代理・中継処理するプロキシサーバ機能がある。例えばＨＴＴＰプロトコルに対応したプロキシサーバの場合、クライアントによるインターネット上のＷｅｂサーバのコンテンツデータへの参照を代理処理する。本プロキシサーバ機能においては、一般にキャッシュ機能、すなわち参照結果の情報やデータをキャッシュ用記憶領域上にキャッシュ（格納）する機能を持つ。本機能において、クライアントからのＷｅｂ参照要求を受信し、Ｗｅｂサーバへのアクセスにより取得されるコンテンツデータ及びＵＲＬ等の情報をキャッシュし、Ｗｅｂ参照結果をクライアントへ送信する。本機能において、一般に、Ｗｅｂ参照要求の出されたＵＲＬなどが、キャッシュ情報としてすでに登録されており、かつ、Ｗｅｂサーバに掲示されているコンテンツデータの更新日時と、キャッシュデータの更新日時とが一致している場合は、Ｗｅｂサーバにアクセスせずにキャッシュデータを用いて応答することが行われている。以下、プロキシサーバとは、ＨＴＴＰプロトコルに対応してＷｅｂ参照を代理処理するサーバとして説明する。
【０００７】
なお、ＵＲＬは、インターネット上の情報資源を参照する指示子（アドレスや識別情報）であり、プロトコル識別子と情報資源名などで構成される。情報資源名は、インターネット上でのユニーク識別子であり、例えば、ホスト名、ドメイン名、ファイル名などで構成される。通信の際には、ＤＮＳ（Domain Name System）により、ＵＲＬ（ホスト名）とＩＰアドレスとが変換される。
【０００８】
また、複数のサーバ装置間の負荷分散の技術に関して、特許文献１においては、プロキシサーバの並列運転において、お互い相手の負荷を通知し合い、ＰＣから処理要求が来ると、まず、主となるサーバが一旦受け付け、相手サーバの負荷と比較し、それにより、処理要求に対応した処理を自サーバで行うか、または、相手サーバに依頼することにより、負荷分散を図っている。
【０００９】
また、特許文献２においては、複数のサーバノードを持ち、まず、そのうちの一台が、ＰＣからの要求を受け付け、所定の負荷以内であれば、その要求を自サーバで処理し、負荷が越えている場合は、他のサーバから負荷情報を取得し、適切な負荷のサーバへ要求を転送することが開示されている。
【００１０】
また、特許文献３においては、管理サーバが、各ブレードサーバのパフォーマンス情報を受け取り、かつ、各サーバのスループットなどのＱｏＳ属性が下回っていることにより、どのサーバにジョブを割り当てるかの技術が開示されている。
【００１１】
更に、上記サーバに関する性能改善の技術として、特許文献４においては、サーバ機能において、Ｗｅｂ参照要求の出されたＵＲＬと同じカテゴリのものがキャッシュされていれば、そのキャッシュで代用して返信する技術が開示されている。
【特許文献１】特開２００２−２７１４１５号公報
【特許文献２】特開２００４−２８７８８９号公報
【特許文献３】特開２００４−１１０７９１号公報
【特許文献４】特開２００４−２３４１２２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ところが、前記背景技術のいずれにせよ、複数のサーバにおける負荷分散のために、まずは、全体を管理する主サーバ装置を必要とし、主サーバ装置で処理要求を一次受け付けし、他のサーバ装置に依頼するかどうかを決定していた。あるいは複数のサーバ装置に対し外付けの負荷分散装置を設ける必要があった。
【００１３】
そのため、前記主サーバ装置のような装置に対して、比較的高い負荷がかかるため、他のサーバ装置よりも高性能のマシンを必要とする。また、前記主サーバ装置がダウンした場合の代替マシンの準備に別立てとなり、復旧のための時間、工数を必要とする。また、場合によっては、前記主サーバの負荷がある値に達するまでは、残りのサーバがアイドル状態になっている可能性があり、サーバ間での完全な負荷の均衡化を目指したものとなっていなかった。
【００１４】
本発明は以上のような問題に鑑みてなされたものであり、その目的は、複数のサーバにおける負荷分散に関して、下記（１）〜（３）のような課題を解決する技術を提供することにある。（１）前記複数のサーバ装置全体を管理するあるいは処理要求を一次受け付けするような装置や前記外付けの負荷分散装置のような特殊な装置を必要としない構成とする。（２）サーバ装置数やクライアント装置数の増減に伴う負荷変動などにも対応して、定義されたグループ内のサーバ装置における全サーバ装置が自立的に負荷を調整していき、できる限り均等な負荷を分担するようにして処理の負荷分散・均衡化を図る。特に、前記サーバ装置数の増減に関して、ブレードサーバ方式に最適な技術を提供する。（３）特に、Ｗｅｂ参照を代理処理するサーバ（ＨＴＴＰプロトコルに対応したプロキシサーバ）やＤＢ参照を行うサーバ等、外部サーバへのアクセス機能とキャッシュ機能を持つサーバに関して、複数のサーバ装置の間での負荷分散に最適な方式を提供する。以上のことにより、設備の使用効率向上及び仕事効率向上を図ったサーバ装置、制御方法、プログラム、及び情報処理システムなどの技術を提供する。
【課題を解決するための手段】
【００１５】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。前記目的を達成するために、本発明のサーバ装置は、複数のサーバ装置を含んで構成されるグループにおける各々のサーバ装置であって、以下に示す技術的手段を有することを特徴とする。
【００１６】
（１）  本発明では、複数のサーバ装置をグループ化する。本サーバ装置は、自サーバ装置を含む複数のサーバ装置を含んで構成されるグループ（サーバグループ）を定義したグループ定義情報を保有する。グループ定義情報は、グループの各サーバ装置の固有アドレスと、グループの全サーバ装置での共通アドレスとを持つ。本サーバ装置は、通信制御部や処理（サービス）を実行する処理部などの他に、ネットワーク等を通じてクライアント装置からの処理要求の受信に応じて、外部の第２のサーバの保有又はアクセスするデータを対象として参照（ここで参照とは、対象データを受信して取得することと同義である）する代理処理を行うプロキシサーバ機能と、前記第２のサーバのデータに対するアクセスの処理の情報をキャッシュ情報として、前記アクセスの処理で参照した前記対象のデータをキャッシュデータとして、記憶領域に格納（キャッシュ）するキャッシュ機能と、更新などの契機でグループ内で前記キャッシュ情報を通知や交換し合うことによりグループの各サーバ装置のキャッシュ状態を管理する機能と、自サーバ装置での処理の負荷を測定し、更新などの契機でグループ内で負荷情報を通知や交換し合うことによりグループの各サーバ装置の負荷状態を管理する機能とを有する。前記キャッシュ情報は、例えば、第２のサーバや対象データのアドレス情報や、対象データの更新日時などの情報である。
【００１７】
本サーバ装置は、クライアント装置から前記共通アドレスなどを送信先として用いた処理要求の電文を受信すると、前記グループの各サーバ装置のキャッシュ状態や負荷状態に基づき判断して、前記処理要求に対応した代行処理を受け付けるか決定し、受け付けた代行処理を実行する。例えば該当キャッシュデータを保有している場合や、負荷が低い場合に受け付ける。通信時、前記処理要求の送信先は、前記第２のサーバのアドレスから前記グループの共通アドレスへとアドレス変換される。
【００１８】
本サーバ装置は、前記処理要求で指定される前記対象のデータに対応した、前記グループ内で最新のキャッシュデータを自サーバ装置で保有している場合には、前記処理要求に対応した代理処理を受け付ける。また、前記処理要求で指定される前記対象のデータに対応したキャッシュデータを前記グループのどのサーバ装置も保有していない場合には、自サーバ装置の負荷情報が最小である場合などに前記代理処理を受け付ける。
【００１９】
本サーバ装置は、前記受け付け後の代理処理では、その時点で最新の対象のデータによりクライアント装置へ応答する。前記最新の対象のデータをキャッシュデータとして保有している場合は、そのキャッシュデータにより応答する。また、前記最新の対象のデータを保有していない場合は、前記第２のサーバの最新の対象のデータにアクセスし取得してキャッシュして応答する。
【００２０】
（２）  本サーバ装置は、前記グループ定義情報を保有し、クライアント装置からの要求に応じて、外部のＷｅｂサーバのコンテンツデータを対象として要求によりアクセスするＷｅｂアクセス機能と、前記Ｗｅｂサーバのコンテンツデータに対するアクセスの処理の情報と、前記アクセスの処理で参照した前記対象のコンテンツデータとを、キャッシュ情報とキャッシュデータとして、記憶領域に格納する機能とを有する。本サーバ装置は、前記自サーバ装置についてのキャッシュ情報及びキャッシュデータを保有すると共に、同一グループの他の各サーバ装置についてのキャッシュ情報を保有する。本サーバ装置は、前記Ｗｅｂサーバへのアクセス処理などにより、自身で保有している自サーバ装置についてのキャッシュ情報を更新した場合などの契機で、その更新されたキャッシュ情報を、グループの他サーバ装置に送信し、また逆にグループの他サーバ装置からキャッシュ情報を受信した場合、その情報により自サーバ装置で保有している該当他サーバ装置についてのキャッシュ情報を更新する処理を行う。
【００２１】
（３）  更に、本サーバ装置は、前記（２）において、以下を特徴とする。前記キャッシュ情報は、前記コンテンツデータへのＵＲＬやそれに対応する通信アドレス情報やホスト情報と、前記コンテンツデータの更新日時やその他の属性情報との情報を含む。本サーバ装置は、前記クライアント装置からの共通アドレスを送信先として用いたＵＲＬによる第１のＷｅｂ参照の要求の受信に対し、自身で保有している前記グループの各サーバ装置のキャッシュ情報の参照に基づき、自サーバ装置で、前記第１のＷｅｂ参照の要求のＵＲＬで指示されるコンテンツデータに対応した、最新のキャッシュ情報、すなわち前記グループ内で前記更新日時が最新のキャッシュデータを保有している場合は、前記第１のＷｅｂ参照の要求に対しての処理受付を行う。
【００２２】
本サーバ装置は、前記処理受付後、その時点で最新のコンテンツデータによりクライアント装置へ応答する処理を行う。例えば、該当キャッシュデータの更新日時と前記対象のコンテンツデータの更新日時とが同じかどうかをＷｅｂサーバへの問い合わせ等により確認して、同じ場合は該当キャッシュデータによりクライアント装置へ応答し、該当キャッシュデータが古い場合は第２のＷｅｂ参照の要求によりＷｅｂサーバにアクセスして最新のコンテンツデータを取得してキャッシュし応答する。
【００２３】
（４）  更に、本サーバ装置は、前記（３）において、以下を特徴とする。本サーバ装置は、自サーバ装置での処理の負荷を測定する機能を有し、この機能で測定した自サーバ装置の負荷情報と、同一グループの他の各サーバ装置の負荷情報とを保有する。本サーバ装置は、負荷の変動などの契機で、自身で保有している自サーバ装置についての負荷情報をグループの他サーバ装置に送信し、また逆にグループの他サーバ装置から負荷情報を受信した場合、その情報により自身で保有している該当他サーバ装置についての負荷情報を更新する処理を行う。本サーバ装置は、前記クライアント装置からの第１のＷｅｂ参照の要求の受信に対し、自サーバ装置で、第１のＷｅｂ参照の要求のＵＲＬで指示されるコンテンツデータに対応した、最新のキャッシュ情報を保有しており、かつ、自サーバ装置の負荷情報が最小あるいは同程度の範囲などである場合には、前記第１のＷｅｂ参照の要求に対しての処理受付を行う。
【００２４】
（５）  更に、本サーバ装置は、前記（４）において、以下を特徴とする。本サーバ装置は、グループの全サーバ装置についての前記処理受付に係わる優先順位の情報を持つ。本サーバ装置は、前記クライアント装置からの要求の受信に対し、前記要求のＵＲＬで指示されるコンテンツデータに対応した、最新のキャッシュ情報を保有し、かつ、前記負荷情報が最小あるいは同程度の範囲などとなる、自サーバ装置を含んだ複数のサーバ装置が存在する状態である場合は、これら複数のサーバ装置間での前記優先順位を参照して判断する。自サーバ装置の優先順位が最高位である場合には、前記要求に対しての処理受付を行う。
【００２５】
（６）  更に、本サーバ装置は、前記（４）または（５）において、以下を特徴とする。本サーバ装置は、前記クライアント装置からの要求の受信に対し、自身で保有している前記グループの全サーバ装置分のキャッシュ情報を調査する処理を行う。本処理で、全サーバ装置分のキャッシュ情報内に、前記要求のＵＲＬあるいはその一部となるホスト名やドメイン名などの情報に対応したキャッシュ情報が存在しない場合、すなわち該当ＵＲＬのコンテンツデータに対応したキャッシュデータをいずれのサーバ装置も保有していない場合には、前記グループの各サーバ装置についての負荷情報の比較に従い、自サーバ装置の負荷情報の大小に応じて、前記要求に対しての処理受付すなわちＷｅｂサーバへのアクセスの処理の決定を行い、第２のＷｅｂ参照の要求により前記Ｗｅｂサーバの対象のコンテンツデータへアクセスして取得しクライアント装置へ応答する。前記比較で、例えば、グループ内で負荷が最小の場合などに、自サーバ装置で処理を受け付ける。
【００２６】
また例えば、グループ内で複数のサーバ装置が同じ内容の最新のキャッシュデータを保有している場合、各サーバ装置についての負荷情報を比較して、自サーバ装置の負荷が最小の場合などに、自サーバ装置で処理を受け付ける。
【００２７】
（７）  本発明の他のサーバ装置は、前記グループ定義情報を保有し、クライアント装置からの要求に応じて、外部のデータベースのデータを対象としてアクセスする機能と、前記データベースのデータに対するアクセスの処理の情報と、前記アクセスの処理で受信した前記対象のデータとを、キャッシュ情報とキャッシュデータとして、記憶領域に格納する機能とを有する。本サーバ装置は、前記グループにおける各サーバ装置についてのキャッシュ情報を保有し、自身で保有している自サーバ装置についてのキャッシュ情報を更新した場合などの契機で、更新されたキャッシュ情報を前記グループの他サーバ装置に送信し、また逆に前記グループの他サーバ装置からキャッシュ情報を受信した場合、その情報により自身で保有している該当他サーバ装置についてのキャッシュ情報を更新する処理を行う。
【００２８】
（８）  更に、本サーバ装置は、前記（７）において、以下を特徴とする。前記キャッシュ情報は、前記データベースのデータのアドレスや識別情報と、前記データの更新日時の情報を含む。本サーバ装置は、前記クライアント装置からの共通アドレスを送信先として用いた前記アドレスなどによる前記データベースのデータに対する参照や更新や検索などの要求の受信に対し、自身で保有している前記グループの各サーバ装置のキャッシュ情報の参照に基づき、自サーバ装置で、前記要求での対象のデータに対応した、最新のキャッシュ情報を保有している場合は、前記要求に対しての処理受付を行う。本サーバ装置は、前記処理受付後、その時点で最新のデータによりクライアント装置へ応答する処理を行う。
【発明の効果】
【００２９】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。本発明によれば、下記効果を有する。
【００３０】
（１）  複数のサーバ装置における負荷分散・均衡化を実現して、設備使用効率向上及び仕事効率向上を図ることができる。特に、Ｗｅｂ参照を代理するサーバ（プロキシサーバ）やＤＢ参照するサーバ等、外部サーバへアクセスしてデータや情報をキャッシュするサーバ装置において、複数のサーバ装置間での負荷の均衡の適正化を行い、処理性能向上を実現できる。
【００３１】
（２）  前述したような特別な負荷分散装置などを必要としないため、設備のコストも低減できる。サーバ装置やクライアント装置の増減を簡単に行うことができ、それに伴う負荷変動に対応して、最適化をサーバ装置で自立的に行うことができる。特に、ブレードサーバ方式に最適な技術を提供できる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。図１〜図１７は、本発明の一実施の形態を説明するための図である。
【００３３】
本発明の一実施の形態におけるサーバ装置は、本サーバ装置を複数用いてサーバグループが定義・設定された構成において、クライアントからの外部のＷｅｂサーバへの参照の要求をサーバグループで受信して、各サーバ装置でのキャッシュ状態及び負荷状態の判断に応じて、Ｗｅｂサーバ参照の代理処理を受け付ける。これによりサーバ間での負荷の調整がなされる。本サーバ装置上では、サーバグループにおける代理処理に係わる負荷分散のための制御方法に従った処理が、プログラムやハードウェア論理等に従って実行される。
【００３４】
＜情報処理システム＞
図１は、本発明の一実施の形態におけるサーバ装置であるサーバ２００を含んで構成される情報処理システムの構成例を示す。本システムは、ネットワーク４に接続される、ＰＣ１と、サーバ集合筐体２に実装された複数のサーバ２００｛ａ，ｂ，ｃ｝と、Ｗｅｂサーバ３とを有する。
【００３５】
ネットワーク４は、ＴＣＰ／ＩＰをベースとするインターネット、ＬＡＮなどである。本実施の形態では、ネットワーク４は特にＥｔｈｅｒｎｅｔ（登録商標）などによるＬＡＮを含んだインターネットであり、ＴＣＰ／ＩＰベースのプロトコルで通信処理が行われる。ＰＣ１とサーバ２００は、ＬＡＮで接続される。Ｗｅｂサーバ３は、サーバ２００に対する外部サーバとして、インターネット上に多数存在する。また、サーバグループにおける実際の接続形態として、マルチドロップ接続、スイッチングハブやルータ経由によるスター接続などがあり得るが、いずれの場合も、各サーバ２００へ出入りする電文はすべて、他のサーバ２００においても傍受可能なように設定されている。
【００３６】
ＰＣ１は、ネットワーク端末装置であり、サーバ２００に対するクライアント装置として、ネットワーク４を通じてサーバ２００に対してアプリケーション等の処理、本例ではＷｅｂ参照要求処理を実行する。必要に応じて１つ以上のＰＣ１がネットワーク４に接続される構成である。
【００３７】
サーバ２００｛ａ，ｂ，ｃ｝は、クライアントであるＰＣ１からの要求を受信してそれに対応したアプリケーション等の処理を行う装置である。サーバ２００は、ＨＴＴＰプロトコルに対応して、Ｗｅｂサーバ３への参照の代理・中継処理を行うものである。本例では、各サーバ２００は、サーバ集合筐体２内に実装可能なブレードサーバ方式である。
【００３８】
サーバ集合筐体２は、１つの筐体に複数のサーバ２００を実装可能とする筐体である。サーバ集合筐体２は、本例では、ブレードサーバ方式のサーバ２００に対応したブレードシャーシの形態である。その他、サーバ集合筐体２は、サーバ２００の形態に応じてラックマウントキャビネットといった各種形態が可能である。各サーバ２００｛ａ，ｂ，ｃ｝は、保守・管理者により、必要に応じて、サーバ集合筐体２内に対して挿抜の動作により実装可能である。前記サーバ２００の実装とは、サーバ２００及びサーバ集合筐体２の形態に応じた挿抜や搭載やネジ止めなどの方法に加え、製造時点で、布線、半田付けなどにより事実上固定されているものも含んでいい。
【００３９】
サーバ集合筐体２には、各サーバ２００の挿抜のためのスロット及びコネクタ等の構成を有する。例えばサーバ２００の増設の場合、保守・管理者が、対象サーバ２００をスロットに挿入してコネクタ同士を接続することで、サーバ集合筐体２内に接続・固定される。サーバ集合筐体２には、各サーバ２００｛ａ，ｂ，ｃ｝が自由に実装され、すべてのサーバ２００が同じネットワ−ク４に接続される。サーバ集合筐体２に有する実装スペースが許す限りで何台のサーバ２００でも実装可能である。本例では、３つのサーバ２００｛ａ，ｂ，ｃ｝がサーバ集合筐体２内に実装されており、それぞれネットワーク４上で通信可能である。
【００４０】
本システムでは、これら複数のサーバ２００｛ａ，ｂ，ｃ｝を同一グループとして定義し、ネットワーク４上で処理の負荷分散を行う対象として取り扱う。このグループに関する定義情報を含む必要な設定の情報が、当該グループの各サーバ２００において保持される。これら同一グループとして定義及び通信接続される複数のサーバ２００｛ａ，ｂ，ｃ｝を、サーバグループと称する。
【００４１】
Ｗｅｂサーバ３は、Ｗｅｂコンテンツデータ（コンテンツデータとも称する）を掲示してクライアントに提供・送信するサーバである。Ｗｅｂサーバ３は、コンテンツデータのファイルを保有している。Ｗｅｂサーバ３上には、ポートを介してコンテンツデータが外部からアクセス可能な状態として掲示されている。コンテンツデータは、ＨＴＭＬ形式などによるＷｅｂページファイルや、それらにリンクされている画像その他の関連データファイルなどが含まれる。また言うまでも無く、本コンテンツデータの内部（ヘッダ情報など）または外部には、本コンテンツデータの更新日時の情報も記述されている。Ｗｅｂサーバ３は、クライアントとなるサーバ２００から、ネットワーク４を経由して、ドメイン名やファイル名などを含んだ指定ＵＲＬ及びそれに対応するＩＰアドレスによりアクセスされる。Ｗｅｂサーバ３は、ポートを通じて、ＵＲＬ指定によるコンテンツ参照の要求を受信すると、ＵＲＬで指示される最新のコンテンツデータをサーバ２００へ送信する。
【００４２】
本システムでは、ＰＣ１からのＷｅｂ参照要求を、共通の通信アドレスによりサーバグループで受信すると共に、キャッシュ状態と負荷状態に応じてサーバ２００で処理を受け付ける。そして処理を受け付けたサーバ２００は、Ｗｅｂ参照が必要な場合にＷｅｂサーバ３へ要求を出す。そしてサーバ２００はＷｅｂサーバ３からの応答またはキャッシュデータをもとに、ＰＣ１へ応答を送信する。ＰＣ１からは、Ｗｅｂサーバ３に対するＵＲＬ参照要求すなわちＵＲＬ指定によるコンテンツデータ参照の要求が発行される。前記要求を、ＬＡＮ上で、サーバグループのサーバ２００｛ａ，ｂ，ｃ｝で受信し、少なくともいずれかのサーバ２００で受け付けて、Ｗｅｂサーバ３への参照を代理処理する。
【００４３】
＜ＰＣ＞
図２は、ＰＣ１のハードウェアブロック構成図を示している。ＰＣ１は、ＣＰＵ１０１、メモリ１０２、ＬＡＮボード１０３、ＨＤＤ１０４、入力制御ボード１０５、出力制御ボード１０６を有する。
【００４４】
ＣＰＵ１０１は、ＰＣ１全体を制御するプロセッサである。メモリ１０２は、プログラムやデータなどを一時記憶する。ＨＤＤ１０４は、プログラム、テーブル類、ＤＢ情報などを記憶している外部記憶装置である。ＣＰＵ１０１は、メモリ１０２上のプログラムを実行してＰＣ１としての機能を実現する。入力制御ボード１０５は、キーボード、マウスなどの入力装置を制御するボードである。出力制御ボード１０６は、モニタ、液晶ディスプレイなどの表示装置や他の出力装置を制御するボードである。ＬＡＮボード１０３は、ネットワーク４に対するＬＡＮインターフェースを制御するボードである。ＬＡＮボード１０３によりネットワーク４上で各種コマンドやデータが授受される。ＰＣ１は、後述するグループＩＰアドレス６１４などを認識している。
【００４５】
図３は、ＰＣ１のソフトウェアブロック構成図を示している。ＰＣ１は、アプリケーション部１１１、ＯＳ１１２、通信制御部１１３、入力制御部１１４、出力制御部１１５を有する。
【００４６】
アプリケーション部１１１は、Ｗｅｂブラウザなどのプログラムを示す。アプリケーション部１１１は、Ｗｅｂサーバ３に対して参照要求などを発行することができる。ＯＳ（オペレーティングシステム）１１２は、入出力制御、イベント通知、アプリケーション部１１１のプログラムの起動・終了などのスケジュール管理を行う。アプリケーション部１１１及びＯＳ１１２は、サーバ２００に対する処理要求を必要に応じて発行する。
【００４７】
通信制御部１１３は、前記ＬＡＮボード１０３の処理に対応するもので、ＬＡＮインターフェースを制御するドライバや、ＴＣＰ／ＩＰプロトコル制御などが含まれる。通信制御部１１３は、ＬＡＮ上でサーバグループのサーバ２００との間で電文を授受する。通信制御部１１３などの処理により、ＰＣ１からＷｅｂサーバ３への参照要求が、サーバグループへの要求へと変換され送信される。入力制御部１１４は、前記入力装置の入力制御を行うドライバなどを含む。出力制御部１1５は、前記表示装置を制御する表示ドライバ、ビデオメモリ管理などが含まれる。
【００４８】
＜サーバ＞
図４は、サーバ２００｛ａ〜ｃ｝のハードウェアブロック構成図を示している。各々のサーバ２００は、ＣＰＵ２０１、メモリ２０２、ＬＡＮ制御部２０３、ＨＤＤ２０４、ＳＶＰ制御部２０５を有する。
【００４９】
ＣＰＵ２０１は、サーバ２００全体を制御するプロセッサであり、自サーバでの処理及びＷｅｂサーバ３に対する処理を制御する。メモリ２０２は、プログラム、データ、テーブル情報などを一時記憶するメモリである。ＨＤＤ２０４は、プログラム、テーブル類、ＤＢ情報などを記憶している外部記憶装置である。本例では、ＨＤＤ２０４には、後述するテーブル（６，７）やキャッシュ情報及びキャッシュデータが保持される。ＣＰＵ２０１は、メモリ２０２上のプログラムを実行してサーバ２００としての機能を実現する。
【００５０】
ＬＡＮ制御部２０３は、ネットワーク４に対するＬＡＮインターフェースを制御する部分である。ＬＡＮ制御部２０３によりネットワーク４上で各種コマンドやデータが授受される。また、ＬＡＮ制御部２０３は、同一サーバグループ内にある関連ＩＰアドレスをソース、デスティネーションに使用した電文を、一旦、本制御部に取り込み、解析し、傍受可能としている。
【００５１】
ＳＶＰ制御部２０５は、ＳＶＰインターフェースを制御する部分であり、サーバ内各部と外部のＳＶＰ（サービスプロセッサ）に対して接続される。ＳＶＰは、ＳＶＰ制御部２０５を通じて、各サーバ２００についての保守・管理の処理を行う。ＳＶＰの処理は、例えば構成や障害の管理といったものである。
【００５２】
本サーバ２００は、ブレードサーバ方式であるため、個々には入力装置や出力装置を持たない構成である。その代わりに、外付けの監視装置やシステムコンソールなどの役目を果たすＳＶＰによる入出力を可能とするために、ＳＶＰ制御部２０５を有している。保守・管理者は、ＳＶＰを操作してサーバ２００の保守・管理を行うことができる。サーバ集合筐体２としてのブレードシャーシ内には、図示しないが、上記ＳＶＰや、各サーバ２００に対する電源供給を行う電源部や送風を行うファンといった部位が設けられている。
【００５３】
図５は、サーバ２００｛ａ〜ｃ｝のソフトウェアブロック構成図を示している。サーバ２００は、アプリケーション部２１１、ＯＳ２１２、通信制御部２１３、監視制御部２１４、負荷測定部２１５、設定テーブル６、動作テーブル７を有する。
【００５４】
アプリケーション部２１１は、Ｗｅｂ参照などのアプリケーションサーバソフトウェアのプログラムを示す。本例では、アプリケーション部２１１は、ＨＴＴＰに対応したプロキシサーバプログラム、すなわち、Ｗｅｂサーバ３へのアクセス・参照を代理・中継しデータをキャッシュする処理を行うためのプログラムである。アプリケーション部２１１の処理では、ＰＣ１などからのＨＴＴＰプロトコルなどを用いたＵＲＬ指定による参照要求に対して、Ｗｅｂコンテンツデータ参照を制御する。
【００５５】
ＯＳ２１２は、入出力制御、イベント通知、アプリケーション部２１１のプログラムの起動・終了などのスケジュール管理を行う。サーバ２００は、ＯＳ２１２とアプリケーション部２１１において、ＰＣ１からの要求に対応した処理を行う。
【００５６】
通信制御部２１３は、前記ＬＡＮ制御部２０３の処理に対応するもので、ＬＡＮインターフェースを制御するドライバ、ＴＣＰ／ＩＰプロトコル制御などが含まれる。通信制御部２１３を介して、ＰＣ１との間、サーバグループのサーバ２００間、及びＷｅｂサーバ３との間で、それぞれ通信可能である。
【００５７】
監視制御部２１４は、同一サーバグループに構成されたサーバ２００の動作状況の監視や、ＬＡＮインターフェース上での電文の傍受監視などを行う。また監視制御部２１４は、設定テーブル６や動作テーブル７を管理し、必要に応じて参照・更新する。
【００５８】
負荷測定部２１５は、負荷状態の把握のための負荷情報として、自サーバ２００のＣＰＵ２０１におけるＣＰＵ使用率を、定期的またはアプリケーション部２１１の処理の起動・終了などの負荷の変動時に応じて測定する。負荷測定部２１５で測定された自サーバ２００の負荷情報は、監視制御部２１４を介して、動作テーブル７に反映される。また、負荷がある程度変動した場合などの契機で、通信制御部２１３を介して、同一サーバグループ内の他サーバ２００への負荷情報の通知や交換のための通信が行われる。
【００５９】
本実施の形態では、グループ定義情報として、設定テーブル６と動作テーブル７を有する。設定テーブル６は、システムの設定のための情報であり、自身も含めた同一サーバグループの各サーバ２００｛ａ，ｂ，ｃ｝のアドレスや識別名などの必要な設定情報を保持している。動作テーブル７は、システムの状態管理のための情報であり、自身も含めた同一サーバグループの各サーバ２００｛ａ，ｂ，ｃ｝の動作、負荷、及びキャッシュ等の状態を情報として管理・保持している。
【００６０】
Ｗｅｂサーバ３のハードウェアブロック構成は、サーバ２００の構成と同様に、ＣＰＵ、メモリ、ネットワーク制御部、ＨＤＤ等を備える。前記ＣＰＵがメモリ上のプログラムを実行してＷｅｂサーバ３としての機能を実現する。Ｗｅｂサーバ３のソフトウェアブロック構成は、サーバ２００の構成と同様に、ＯＳ、アプリケーション部、ポートを含む通信制御部などを備える。前記アプリケーション部は、Ｗｅｂサーバプログラムなどであり、クライアントからの参照要求に応じて、コンテンツデータを要求元へ送信する処理などを行わせる。なお、Ｗｅｂサーバ３は、前記図４，５に示すサーバ２００と同様のブレードサーバ方式でも、前記図２，３に示すＰＣ１と同様のスタンドアロン方式でもよい。
【００６１】
＜テーブル＞
図６は、設定テーブル６の形式の一実施例を示す。設定テーブル６は、すべてのサーバ２００において、自ホスト名６２０を除き、同じ内容を持つ。設定テーブル６で、列（６０１〜６０３）にサーバ２００｛ａ，ｂ，ｃ｝単位の情報を示し、行（６１１〜６１５）に各設定情報の項目を示している。これら設定テーブル６の内容は、外部のＳＶＰよりＳＶＰ制御部２０５を通じて設定され、ＨＤＤ２０４内に記憶される。
【００６２】
固有ホスト名６１１は、各サーバ２００に固有のホスト名が割り当てられる。本例では、各サーバ２００｛ａ，ｂ，ｃ｝の固有ホスト名６１１は、“ＡＰＳＲＶＲａ”、“ＡＰＳＲＶＲｂ”、“ＡＰＳＲＶＲｃ”と割り当てられている。
【００６３】
固有ＩＰアドレス６１２は、各サーバ２００｛ａ，ｂ，ｃ｝に固有のＩＰアドレスが通信アドレスとして割り当てられる。本例では、各サーバ２００｛ａ，ｂ，ｃ｝の固有ＩＰアドレス６１２は、“２０２．２００．２５６．１”、“２０２．２００．２５６．２”、“２０２．２００．２５６．３”と割り当てられている。
【００６４】
グループホスト名６１３は、同一サーバグループのサーバ２００群のすべてに対して、同一ホスト名が割り当てられる。本例では、サーバ２００｛ａ，ｂ，ｃ｝のグループホスト名６１３は、“ＡＰＳＲＶＲ”が割り当てられている。
【００６５】
グループＩＰアドレス６１４は、同一サーバグループのサーバ２００群のすべてに対して、同一ＩＰアドレスが共通の通信アドレスとして割り当てられる。一般には、本アドレスとして、テレビ会議などで使用される同一のマルチキャストアドレスや、ブロードキャストアドレスとして定義することでもよい。これにより、サーバ２００が分散していても、ルータなどを経由して電文が届けられることになるため、各サーバ２００のデータも傍受が可能になる。また、さらに、各サーバ２００が同じＬＡＮの物理線上に接続されている場合は、固有のＩＰアドレス以外に、あらかじめ定めた共通のＩＰアドレスを監視することで実現可能である。本例では、すべてのサーバ２００｛ａ，ｂ，ｃ｝は、グループＩＰアドレス６１４として“２０２．２００．２５６．０”が割り当てられている。
【００６６】
ＭＡＣアドレス６１５は、各サーバ２００で固有のＭＡＣアドレスである。本例では、サーバ２００｛ａ，ｂ，ｃ｝のＭＡＣアドレス６１５は、それぞれ、“０１．２３．４５．６７．８９．ＡＢ”、“ＡＢ．ＣＤ．ＥＦ．０１．２３．４５”、“６７．８９．ＡＢ．ＣＤ．ＥＦ．０１”となっている。ＬＡＮ制御部２０３は、ＭＡＣアドレス６１５を有し、ＳＶＰからの設定でなく、パワーオン時、自サーバのＭＡＣアドレスのみ、ＬＡＮ制御部２０３から取得し、本テーブルに設定することも可能である。また本ＭＡＣアドレス６１５は、サーバ２００間での処理受け付けの優先順位の情報として使用される。
【００６７】
固有ＩＰアドレス６１２、グループＩＰアドレス６１４、ＭＡＣアドレス６１５は、ネットワーク４上の通信において送信元や送信先のアドレスとして使用される。
【００６８】
また、自ホスト名６２０には、自サーバ２００のホスト名が設定される。例えば、サーバａ（２００）の自ホスト名６２０に、“ＡＰＳＲＶＲａ”が設定されている。自ホスト名６２０が固有ホスト名６１１とリンクすることにより、上記列（６０１〜６０３）のうちいずれが自サーバ２００の内容かを知ることができる。
【００６９】
本実施の形態では、ＰＣ１からサーバ２００に対する要求（第１要求９１３）は、グループＩＰアドレス６１４が送信先として使用される。また、要求を受け付けたサーバ２００からＰＣ１に対する応答（第１応答９１４）は、固有ＩＰアドレス６１２が送信元として使用される。また、サーバ２００からＷｅｂサーバ３に対する要求（第２要求９１５）は、固有ＩＰアドレス６１２が送信元として使用される。ここで、第２要求９１５のデスティネーションとして、Ｗｅｂサーバ３のＩＰアドレスの取得方法に関しては、第１要求９１３のコンテンツ９０５を参照して、それにより、ＤＮＳ機能を持っているサーバから、対応するＩＰアドレスを取得する周知技術を利用している。また、Ｗｅｂサーバ３からサーバ２００に対する応答（第２応答９１６）は、固有ＩＰアドレス６１２が送信先として使用される。ここで、デスティネーションＩＰアドレスとして、第２応答９１６の固有ＩＰアドレス６１２から第１応答９１４のＰＣ１のＩＰアドレスへの変換方法として、サーバ２００内に変換テーブルを持ち変換（Network Address Translation）を行う周知技術を利用している。
【００７０】
ＰＣ１からは要求に対応した処理を実際に受け付けて実行しているサーバ２００を識別する必要は特にないが、当該サーバ２００の識別は、固有ＩＰアドレス６１２等により可能である。また、グループＩＰアドレス６１４や固有ＩＰアドレス６１２は、各サーバ２００間の動作状態や負荷情報やキャッシュ情報の通知や交換などの通信においても使用される。本例では、グループＩＰアドレス６１４を用いてグループ内に情報が通知される。
【００７１】
通信におけるＩＰアドレス部分では、上記グループＩＰアドレス６１４や固有ＩＰアドレス６１２が設定されていても、ネットワーク４やＥｔｈｅｒｎｅｔ（登録商標）のデータリンクレベルでは、実際に送受信処理するＬＡＮ制御部２０３のＭＡＣアドレス６１５が設定される。但し、以降、ＩＰアドレスからＭＡＣアドレス６１５への変換の技術は、ＡＲＰ（Address Resolution Protocol）などを使用して、条件に該当するサーバが応答を返すことでＭＡＣアドレス６１５に変換することによりなされる。以下、この処理の詳細過程は省略するが、ＩＰアドレスで行っている動作は、ＭＡＣアドレス６１５においても同様に適用可能である。
【００７２】
図７は、動作テーブル７の形式の一実施例を示す。動作テーブル７の列（７０１〜７０３）にサーバ２００｛ａ，ｂ，ｃ｝単位の情報を示し、行（７１１，７１２，７１３）に各サーバ２００の動作や負荷やキャッシュの状態などの項目を示している。本例では、動作状態７１１とＣＰＵ使用率７１２とＵＲＬコンテンツキャッシュインデックス情報７１３とにより各サーバ２００の状態が管理されている。これらの値に基づき、サーバ２００での処理の受け付けが判断され、すなわちサーバ２００間の負荷が調整されることになる。
【００７３】
動作状態７１１は、各サーバ２００での処理に係わる動作状態を示す項目であり、状態の変動に応じて設定される。動作状態７１１が“ＯＮ”ならば、該当サーバ２００は、パワー（電源）オンされて稼動状態であること、すなわち処理中または処理提供可能な状態を示す。また動作状態７１１が“ＯＦＦ”ならば、該当サーバ２００は、パワーオフまたは休止状態、すなわち処理提供しない状態であることを示す。
【００７４】
ＣＰＵ使用率７１２は、サーバ２００での処理に関する負荷状態を表わす値であり、ＣＰＵ２０１の使用率の数値（単位は[％]）で示している。自サーバのＣＰＵ使用率７１２は、負荷測定部２１５の処理により設定され、他サーバのＣＰＵ使用率７１２は、他サーバからの負荷情報の通知により設定される。
【００７５】
ＵＲＬコンテンツキャッシュインデックス情報（以下、インデックス情報とも称する）７１３は、サーバ２００がＷｅｂサーバ３にアクセスした結果、キャッシュとして保存している情報及びデータのうちのデータへのインデックス情報（キャッシュ情報とも称する）の部分である。本インデックス情報７１３は、サーバ２００でのキャッシュ状態を表わす情報であり、ＵＲＬに対応したコンテンツデータのキャッシュデータへの参照のためのインデックスとなる。各列（７０１〜７０３）のＵＲＬコンテンツキャッシュインデックスａ，ｂ，ｃは、各サーバ２００の情報に対応する。各サーバ２００は、自サーバについてのＵＲＬコンテンツキャッシュインデックスを、Ｗｅｂ参照結果に応じて適宜更新する。また、サーバ２００間で自サーバについてのインデックス情報７１３（キャッシュ情報）を通知や交換し合うことで、各サーバ２００は、サーバグループの各サーバ２００についてのキャッシュ状態を把握する。
【００７６】
また、これら動作テーブル７の情報も、自ホスト名６２０とリンクして前記図６と同様の列の配列とすることにより、上記列（７０１〜７０３）のうちいずれが自サーバ２００の内容かを知ることができる。これら動作テーブル７の内容は、各サーバ２００の状態が変化するたびに、後述の方法で複数のサーバ２００間でお互いに通信することにより、各サーバ２００で保持している情報の整合性をとっている。
【００７７】
図８は、各サーバ２００が保持するＵＲＬコンテンツキャッシュテーブル（以下、キャッシュテーブルとも称する）の形式の例を示す。本キャッシュテーブルは、キャッシュ情報及びキャッシュデータを管理するものであり、ＵＲＬ８０１、Ｗｅｂ更新日時８０２、ＨＴＭＬファイル名８０３の項目を有する。
【００７８】
ＵＲＬ８０１は、サーバ２００が過去にＷｅｂサーバ３へのアクセスで参照した結果として保存しているＵＲＬを示す。ＵＲＬ８０１は、例えば、「HTTP://Ａ」（Ａは、ホスト名やドメイン名などを含む、情報資源名を表わす文字列とする）である。ＵＲＬ８０１は、プロトコル識別子、ホスト名やドメイン名などに続いてＨＴＭＬファイル名８０３を含む。本例では、ＵＲＬ８０１とは別にＨＴＭＬファイル名８０３を管理している。また、キャッシュテーブルで、ＵＲＬ８０１（ホスト名）と対応付けられるＩＰアドレスなどを管理するようにしてもよい。
【００７９】
Ｗｅｂ更新日時８０２は、ＵＲＬ８０１に対応した、Ｗｅｂサーバ３上のコンテンツデータの更新日時の情報を示す。すなわち、Ｗｅｂ更新日時８０２は、サーバ２００がＷｅｂサーバ３上から参照した結果として保存しているコンテンツデータのキャッシュデータについての更新日時を示す。なお、Ｗｅｂ更新日時８０２は、サーバ２００がコンテンツデータをキャッシュした日時などとは異なる。
【００８０】
図８に示すキャッシュテーブルにおけるＵＲＬコンテンツキャッシュインデックス部（８０１，８０２）に相当する内容が、図７に示す各サーバ２００についてのインデックス情報７１３にも格納されている。
【００８１】
ＨＴＭＬファイル名８０３は、コンテンツデータを表現しているファイル名またはホスト（Ｗｅｂサーバ３）上における当該ファイルへのパスなどを示す。ファイル８２１は、ＨＴＭＬファイル名８０３にリンクされている実コンテンツファイル（ＨＴＭＬファイル等）のデータすなわちサーバ２００におけるキャッシュデータを示す。本例では、コンテンツデータのファイル名をＨＴＭＬファイル名８０３とし、コンテンツデータのファイル８２１をＨＴＭＬファイルとしているが、ＨＴＭＬファイルからリンクされている文字、画像、音声などの各種データファイルや、それらを合わせた複数のファイルや、それらを統合圧縮したファイルなどで構成されていてもよい。多くの場合、実コンテンツファイルには、画像や音声データなども含まれている。本例では、サーバ２００間で、キャッシュテーブルの列（８０１，８０２）に相当するインデックス情報７１３のみを、キャッシュ情報として、お互いに提供・通知し合っている。
【００８２】
図８に示すキャッシュテーブルの行（８１１，８１２）は、それぞれキャッシュ例を示しており、例えば、過去に参照したＵＲＬ８０１について名称順にソートされて配置されている。また、キャッシュテーブルにおいて、コンテンツデータについてのドメインやホストや複数のファイルによる階層構成に対応して、キャッシュ情報及びキャッシュデータを格納し、関連付けて管理する。
【００８３】
＜電文＞
図９は、ネットワーク４またはＬＡＮインターフェース上で使用される電文の形式の一実施例を示している。電文の種類に対応してその電文に設定される各種情報を示している。ＰＣ１、サーバグループのサーバ２００、Ｗｅｂサーバ３の間で授受される電文の種類として、本例では、各コマンド（９１１〜９１９）を使用する。各コマンド（９１１〜９１９）は、例えばヘッダとコンテンツを有する形式であり、ステータスや単なるデータ等の場合を含むものとする。各電文は、コマンド９０１、ソースＩＰアドレス９０２、デスティネーションＩＰアドレス９０３、セッション番号９０４、コンテンツ９０５の領域を含む。
【００８４】
コマンド９０１には、起動完了９１１、負荷情報９１２、第１要求（第１のＵＲＬ参照要求）９１３、第１応答（第１のＵＲＬ参照応答）９１４、第２要求（第２のＵＲＬ参照要求）９１５、第２応答（第２のＵＲＬ参照応答）９１６、更新日時要求９１７、更新日時回答９１８、ＵＲＬキャッシュ９１９がある。各コマンド（９１１〜９１９）は、電文の種類を示しており、コンテンツ９０５として何を含むかが決まる。なお、便宜的に、ＰＣ１とサーバ２００の間の通信で「第１」と称し、サーバ２００とＷｅｂサーバ３の間の通信で「第２」と称して区別している。
【００８５】
ソースＩＰアドレス９０２、デスティネーションＩＰアドレス９０３は、それぞれ、ＴＣＰ／ＩＰプロトコルにおける送信元のアドレス、送信先のアドレスが指定される。またセッション番号９０４は、他の同類の要求及び処理と混信しないための識別情報が設定される。
【００８６】
起動完了９１１は、自サーバ２００が電源オンされて処理提供可能な状態（“ＯＮ”）となったことを、同一サーバグループ内の他サーバ２００に対し知らせるものである。本例では、このソースＩＰアドレス９０２には、各サーバ２００の固有ＩＰアドレス６１２として“２０２．２００．２５６．ｉ”（ｉは１，２，３のどれか）を指定する。またデスティネーションＩＰアドレス９０３には、グループＩＰアドレス６１４を指定する。またコンテンツ９０５には、どのサーバ２００が“ＯＮ”となったかを示す情報として“ＡＰＳＲＶＲｊ＝ＯＮ”（ｊはａ，ｂ，ｃのどれか）が含まれている。
【００８７】
負荷情報９１２は、サーバ２００の負荷の変動時、自身を含む各サーバ２００の負荷情報を、サーバグループ内の他サーバ２００に対し報告するためのものである。前記負荷の変動は、電源オンによるサーバ２００の起動も含む。このソースＩＰアドレス９０２及びデスティネーションＩＰアドレス９０３は、起動完了９１１の場合と同様である。また、コンテンツ９０５には、自サーバ２００で動作テーブル７に保持しているサーバグループ内の全サーバ２００についての負荷情報を、他サーバ２００への確認も含めて報告する。本例では、コンテンツ９０５に、動作状態７１１の情報も含めており、例えば“ＡＰＳＲＶＲａ＝ＯＮ，７０％”，“ＡＰＳＲＶＲｂ＝ＯＮ，８０％”，“ＡＰＳＲＶＲｃ＝ＯＦＦ”などが含まれている。
【００８８】
第１要求９１３は、各ＰＣ１からのＵＲＬ参照要求、すなわちＵＲＬで指定されるＷｅｂサーバ３上のコンテンツデータへの参照（取得）の要求を示す。このソースＩＰアドレス９０２には、ＵＲＬ参照要求元のＰＣ１のＩＰアドレスがセットされ、デスティネーションＩＰアドレス９０３には、参照先のＷｅｂサーバ３のＩＰアドレスがセットされる。ここで、インターネットにおける周知技術により、参照先のＵＲＬの一部（ホスト名やドメイン名）から、ＤＮＳサーバの処理により、指定ＵＲＬに相当するＩＰアドレスが取得される。また、ＰＣ１及びサーバ２００における通信の設定に従い、ＰＣ１からのＷｅｂサーバ３への要求が、ＰＣ１からサーバグループへの要求となるように、接続先が変換される。本例では、第１要求９１３のデスティネーションＩＰアドレス９０３には、Ｗｅｂサーバ３のＩＰアドレスから、アドレス変換により、サーバグループのグループＩＰアドレス６１４がセットされる。また、セッション番号９０４には、他の同類の要求と混信しないための識別情報として、本例では“ａａ”が付与される。またコンテンツ９０５には、要求内容や参照先となるＵＲＬなどが含まれている。
【００８９】
第１応答９１４は、前記第１要求９１３に対応して、サーバグループのサーバ２００からＰＣ１への、ＵＲＬ参照の代行処理の結果の応答を示す。このソースＩＰアドレス９０２には、参照先のＷｅｂサーバ３のＩＰアドレスがセットされ、デスティネーションＩＰアドレス９０３は、要求元のＰＣ１のＩＰアドレスがセットされる。ここで、ソースＩＰアドレス９０２には、Ｗｅｂサーバ３のＩＰアドレスから、アドレス変換により、代行処理するサーバ２００の固有ＩＰアドレス６１２がセットされる場合を示す。またセッション番号９０４には、前記第１要求９１３のセッション番号９０４と同じ値（“ａａ”）が付与される。またコンテンツ９０５には、ＵＲＬに対応したコンテンツデータなどが含まれている。このコンテンツデータは、サーバ２００におけるキャッシュデータまたはＷｅｂサーバ３から新たに取得したコンテンツデータである。
【００９０】
第２要求９１５は、ＰＣ１からのＵＲＬ参照要求に応じて、サーバ２００からＷｅｂサーバ３へ発行されるＵＲＬ参照要求を示す。このソースＩＰアドレス９０２には、要求元のＰＣ１のＩＰアドレスがセットされ、デスティネーションＩＰアドレス９０３には、参照先のＷｅｂサーバ３のＩＰアドレスがセットされる。ここで、ソースＩＰアドレス９０２には、ＰＣ１のＩＰアドレスから、アドレス変換により、第１要求９１３を受け付けて第２要求９１５の処理を実行するサーバ２００の固有ＩＰアドレス６１２がセットされる場合を示す。また、セッション番号９０４には、ＰＣ１からの第１要求９１３におけるセッション番号９０４（“ａａ”）に、第２要求９１５の処理を実行するサーバ２００の識別情報（サーバＩＤ）、例えば固有ホスト名６１１などが付加され用いられる。またコンテンツ９０５には、要求内容や参照先となるＵＲＬなどが含まれている。
【００９１】
第２応答９１６は、前記第２要求９１５に対応して、Ｗｅｂサーバ３からサーバグループのサーバ２００への、ＵＲＬ参照処理の応答を示す。このソースＩＰアドレス９０２には、参照先のＷｅｂサーバ３のＩＰアドレスがセットされ、デスティネーションＩＰアドレス９０３は、要求元のＰＣ１のＩＰアドレスがセットされる。ここで、デスティネーションＩＰアドレス９０３には、ＰＣ１のＩＰアドレスから、アドレス変換により、前記第２要求９１５の処理を実行したサーバ２００の固有ＩＰアドレス６１２がセットされる。またセッション番号９０４には、前記第２要求９１５のセッション番号９０４及びサーバＩＤと同じ値が付与される。またコンテンツ９０５には、ＵＲＬに対応したコンテンツデータなどが含まれている。このコンテンツデータは、Ｗｅｂサーバ３から新たに取得されるコンテンツデータである。
【００９２】
ＰＣ１は、Ｗｅｂサーバ３に対する第１要求９１３を出す。変換により、グループＩＰアドレス６１４を送信先として用いた第１要求９１３の電文が、サーバグループに対して送信される。いずれかのサーバ２００で第１要求９１３の処理を受け付け、Ｗｅｂサーバ３への参照が必要な場合は、第１要求９１３から第２要求９１５に変換し、Ｗｅｂサーバ３に対し第２要求９１５の電文が出される。Ｗｅｂサーバ３は、第２要求９１５に応じて、ＵＲＬで指示されるコンテンツデータを含んだ第２応答９１６の電文を該当サーバ２００へ送信する。該当サーバ２００は、Ｗｅｂサーバ３からの第２応答９１６に応じて、第１応答９１４に変換し、要求元のＰＣ１への応答とする。前記Ｗｅｂサーバ３への参照が必要ない場合は、該当サーバ２００は、キャッシュデータにより第１応答９１４の電文をＰＣ１へ応答する。
【００９３】
更新日時要求９１７と更新日時回答９１８は、サーバ２００におけるコンテンツデータのキャッシュを利用するために、ＵＲＬに対応したコンテンツデータの更新日時をサーバ２００からＷｅｂサーバ３へ問い合わせて確認するための要求とその回答の電文である。例えばＷｅｂで過去に同じドメインやホストのコンテンツデータを参照している場合、同様のデータがサーバ２００のキャッシュ用記憶領域にキャッシュデータとして残っている。そのため、ＰＣ１から参照要求されているコンテンツデータについて、サーバ２００でのキャッシュデータと、Ｗｅｂサーバ３上の最新のコンテンツデータとで、その更新日時が同じ場合は、サーバ２００からＷｅｂサーバ３へ毎回取得しに行く必要は無い。そのため、本電文により、事前などの契機で、サーバ２００から該当ドメインなどのＷｅｂサーバ３に対し、コンテンツデータの更新の状態を確認する。
【００９４】
更新日時要求９１７で、このソースＩＰアドレス９０２には、該当サーバ２００の固有ＩＰアドレス６１２がセットされる場合を示す。デスティネーションＩＰアドレス９０３には、Ｗｅｂサーバ３のＩＰアドレスがセットされる。またセッション番号９０４は、本例ではＰＣ１側とのセッションとは異なる“ｂｂ”が付与される。コンテンツ９０５は、確認対象となるコンテンツデータに対応したＵＲＬなどが含まれる。
【００９５】
更新日時回答９１８で、このソースＩＰアドレス９０２には、Ｗｅｂサーバ３のＩＰアドレスがセットされる。デスティネーションＩＰアドレス９０３には、該当サーバ２００の固有ＩＰアドレス６１２がセットされる場合を示す。またセッション番号９０４は、前記更新日時要求９１７のものと同じ値（“ｂｂ”）が付与される。コンテンツ９０５は、確認対象となるコンテンツデータの更新日時の情報が含まれる。
【００９６】
ＵＲＬキャッシュ９１９は、自サーバにおいてキャッシュ用記憶領域のキャッシュテーブルにキャッシュ情報として保有している自サーバについてのインデックス情報７１３を、同じサーバグループ内の他サーバ２００へ送信してキャッシュ状態を知らせるためのものである。これにより、サーバグループにおいて各サーバ２００は、どのサーバ２００が、どのＵＲＬに対して、最新のコンテンツデータをキャッシュしているか等を知ることができる。このソースＩＰアドレス９０２には、該当サーバ２００の固有ＩＰアドレス６１２がセットされる。デスティネーションＩＰアドレス９０３には、グループＩＰアドレス６１４がセットされる場合を示す。コンテンツ９０５には、該当サーバ２００についてのＵＲＬコンテンツキャッシュインデックスｊ（ｊは、自サーバに対応したａ，ｂ，ｃのいずれか）が含まれる。サーバ２００から本ＵＲＬキャッシュ９１９の電文を他サーバ２００へ送るタイミングは、第２応答９１６により新たなＵＲＬのコンテンツデータまたは最新の更新日時のコンテンツデータをＷｅｂサーバ３から取得して自身のキャッシュ情報を更新した時などである。
【００９７】
本例では、第１応答９１４、第２要求９１５等の電文上において、固有ＩＰアドレス６１２等により、どのサーバ２００が具体的に処理を受け付けたか等を知ることができる。サーバ２００は、要求に対して、各サーバ２００のキャッシュ状態及び負荷状態に応じて自分が処理すべきものか否か判断して、自己責任により処理を遂行することになる。
【００９８】
＜処理シーケンス及びフロー＞
次に、本システムにおける処理のシーケンス及びフローを説明する。図１０は、ＰＣ１、同一サーバグループのサーバ２００｛ａ，ｂ，ｃ｝、及び、Ｗｅｂサーバ３の間での一連の処理及び制御のシーケンスの例を示している。ＰＣ１、サーバ２００、及びＷｅｂサーバ３の間では、前記電文を用いて本シーケンス及びフローに対応した通信及び処理が行われる。
【００９９】
まずステップＳ１１００で、サーバグループにおいて、例えばサーバｃ（２００）は、パワーオンにより稼動状態となった場合、自身における動作状態の変動を通知するための起動完了９１１の電文を、サーバグループ内の他サーバａ及びｂ（２００）に送信する。前記起動完了９１１の電文を受信したサーバａ及びｂ（２００）は、その情報をもとに、自身の動作テーブル７の内容を更新する。
【０１００】
またＳ１２００で、サーバグループにおいて、例えばサーバａ（２００）は、自身におけるある程度の負荷変動を検出すると、負荷情報９１２の電文を、サーバグループ内の他サーバｂ及びｃ（２００）に送信する（Ｓ１１１１）。前記負荷情報８１２の電文を受信したサーバｂ及びｃ（２００）は、その情報をもとに、自身の動作テーブル７の内容を更新する（Ｓ１１２１，Ｓ１１３１）。負荷状態や動作状態の変動が発生したサーバ（２００）では、自身の動作テーブル７の内容を更新している。上記動作が、常時、サーバグループ内で任意のサーバ２００から他サーバ２００に対して、変動発生に伴う情報の通知や交換によりお互いに連絡し合うことが行われている。
【０１０１】
負荷変動時の負荷情報の交信については、通常処理を妨げるほどに頻繁に発生し過ぎないようにする。例えば、サーバグループにおいて、負荷通知のための閾値の設定を持たせ、サーバ２００での負荷変動がその閾値の範囲を越えた場合に負荷情報９１２の電文を送信するようにする。
【０１０２】
次に、Ｓ１１０１で、ＰＣ１から第１のＵＲＬ参照要求処理が行われた場合を示している。ＰＣ１のＷｅｂブラウザのプログラムから、Ｗｅｂサーバ３に対する第１要求９１３の電文が発行される。本第１要求９１３は、アドレスの変換により、サーバグループに対してグループＩＰアドレス６１４を用いて送信される。
【０１０３】
一方、Ｓ１３００で、サーバグループの各サーバ２００は、第１要求９１３を受信する処理、及び、自サーバ２００でその第１要求９１３に対応した処理を受け付けるかどうかを動作テーブル７の参照などに基づき判断する処理などを行う（Ｓ１１１２，Ｓ１１２２，Ｓ１１３２）。図１４や図１５で述べる処理及び制御に従って、いずれかのサーバ２００で処理を受け付け、受け付けたサーバ２００でＷｅｂ参照の代理処理が実行されることになる。
【０１０４】
本例では、サーバグループ内で、該当ＵＲＬに対応したキャッシュデータを保有しておりかつ負荷が低い状態にあるサーバｂ（２００）で処理を受け付ける場合を示している。例えば、第１要求９１３の受信時の各サーバ２００のキャッシュ状態として、サーバａ，ｂ（２００）は該当キャッシュを保有しており、サーバｃ（２００）は保有していないとする。また、サーバｂ（２００）での該当キャッシュデータは、サーバａ（２００）での該当キャッシュデータよりもＷｅｂ更新日時８０２が新しいが、Ｗｅｂサーバ３の最新のコンテンツデータの更新日時よりは古いとする。このような状態に従って、処理を受け付けたサーバｂ（２００）が、Ｗｅｂサーバ３から最新のコンテンツデータを取得してＰＣ１へ応答する場合を示す。
【０１０５】
上記Ｓ１３００では、各サーバ２００で独立して処理の受け付けに関する判断が行われるので、状況に応じて結果として、１つのサーバ２００のみが処理を受け付ける場合以外にも、複数のサーバ２００が処理を受け付ける場合や、いずれも受け付けずに再試行が行われる場合などがある。いずれの場合でも、結果として１つのサーバ２００との間で実際に処理が行われることになる。
【０１０６】
上記Ｓ１３００において、各サーバ２００は、処理受け付けの判断として、動作テーブル７における各サーバ２００｛ａ，ｂ，ｃ｝についてのインデックス情報７１３に基づき、自サーバで該当ＵＲＬに対応したキャッシュを保有しているか、また保有している場合はそのデータが最新のものか、また複数のサーバで保有している場合は自身の負荷が低いか等を確認して、それに基づき自サーバで処理を受け付けるか否かを決める。
【０１０７】
本例では、Ｓ１１２２における要求受信及び処理受付の処理において、サーバｂ（２００）は、該当ＵＲＬのキャッシュデータでグループ内での最新のものを保有しているので、処理受け付けし、更に、そのキャッシュデータがＷｅｂサーバ３でのコンテンツデータと同じ最新のものかを確認するために、更新日時要求９１７の電文をＷｅｂサーバ３へ送信している。これに対し、Ｗｅｂサーバ３は、更新日時要求９１７で指定されるＵＲＬに対応したコンテンツデータの更新日時の情報をセットした更新日時回答９１８の電文を返信する。そしてサーバｂ（２００）は、更新日時回答９１８から、該当キャッシュデータが最新か古いかを確認する。該当キャッシュデータがＷｅｂサーバ３側のコンテンツデータと同じく最新である場合は、本キャッシュデータを用いてＰＣ１へキャッシュ応答として送信することとなる。また、該当キャッシュデータが古い場合は、Ｓ１１２３で示すように、第２要求９１５を発行して最新のコンテンツデータを取得してＳ１１２４でＰＣ１へ応答することとなる。また更に、グループ内のいずれのサーバ２００でも該当キャッシュデータを保有していない場合などには、後述するように、各サーバ２００の負荷状態についての比較判断に従って、処理を受け付けるかどうかを決めることとなる。
【０１０８】
次に、前記Ｓ１１２２により第１要求９１３に対応した処理を受け付けたサーバｂ（２００）では、Ｓ１１２３で、Ｗｅｂサーバ３への参照が必要な場合に、第２のＵＲＬ参照要求処理を行う。サーバｂ（２００）は、Ｗｅｂサーバ３に対して第２要求９１５の電文を送信する。
【０１０９】
Ｓ１１４１において、Ｗｅｂサーバ３は、第２要求９１５に応じて、第２のＵＲＬ参照応答処理を行う。Ｗｅｂサーバ３は、第２要求９１５におけるＵＲＬで指定されるコンテンツデータを、第２応答９１６の電文として、該当サーバｂ（２００）へ送信する。一方、サーバｂ（２００）は、第２応答９１６の電文を受信して最新のコンテンツデータを取得する。
【０１１０】
次に、Ｓ１１２４で、サーバｂ（２００）は、第１のＵＲＬ参照応答処理を行う。サーバｂ（２００）は、Ｗｅｂサーバ３から第２応答９１６により受信した最新のコンテンツデータを、第１応答９１４の電文として、ＰＣ１に対して送信する。一方、ＰＣ１は、第１応答９１４の電文を受信し、最新のコンテンツデータを取得してＷｅｂブラウザで処理する。
【０１１１】
続いて、Ｓ１７００において、サーバｂ（２００）は、キャッシュ状態の更新を通知する処理を行う。前記Ｓ１１２４で、サーバｂ（２００）は、前記Ｓ１１２３でＷｅｂサーバ３から受信した最新のコンテンツデータを、自身のキャッシュテーブルに格納してキャッシュ情報を登録／更新する。それと共に、サーバｂ（２００）は、同じサーバグループの他のサーバａ，ｃ（２００）に対して、自身のキャッシュ情報の更新を通知するために、自サーバについてのインデックス情報７１３を含んだＵＲＬキャッシュ９１９の電文を作成して、グループＩＰアドレス６１４を用いて送信する。本ＵＲＬキャッシュ９１９の電文を受信した各サーバａ，ｃ（２００）は、受信した情報により、自サーバで保有しているキャッシュ情報、すなわち動作テーブル７及びキャッシュテーブル中の該当位置に反映して内容を更新する（Ｓ１１１３，Ｓ１１３３）。これにより、サーバ２００間のキャッシュ情報の整合性が保たれる。従って、サーバ２００でのキャッシュ状態と負荷状態に応じた処理の受け付けによって、サーバ２００間の負荷が調整されることになる。
【０１１２】
また、省略したが、前記サーバグループにおけるサーバｂ（２００）が処理を受け付けた時やその処理を完了した時には、それにより当該サーバｂ（２００）で負荷変動が発生し検出される。そのため、前記Ｓ１２００の処理と同様に、サーバｂ（２００）から負荷情報９１２を他サーバａ及びｃ（２００）に報告し、各動作テーブル７の内容を更新する。
【０１１３】
その他のシーケンスとして、ＰＣ１と該当サーバ２００の間で、処理の受け付けを確認するようにしてもよい。例えば、ＰＣ１からの第１要求９１３に対して、その処理を受け付けたサーバ２００は、ＰＣ１へ処理受付を表わす電文を返し、更にＰＣ１から該当サーバ２００に対して受付応答を表わす電文を返す。このようなシーケンスにより、該当サーバ２００での処理の受け付けを確認する。この場合、上記のような受け付け確認のための電文で、該当サーバ２００の固有ＩＰアドレス６１２等を使用する。処理を受け付けたサーバ２００の固有ＩＰアドレス６１２を使用する理由は、サーバ２００間での情報の交換の遅れや漏れ等に起因して複数のサーバ２００が処理を受け付けた場合にも対応してサーバ２００を識別できるようにするためである。上記受け付け確認の必要性は、これらの電文により、複数のサーバ２００で同じ処理が実行される頻度を下げているだけである。通信におけるノイズなどにより電文が取りこぼされた場合なども含めて、複数のサーバ２００が処理を受け付けた場合も、上記のような仕組みにより処理がなされるようになっている。
【０１１４】
図１１は、サーバグループのサーバ２００｛ａ，ｂ，ｃ｝におけるパワーオン動作時の処理の詳細を示すフロー図である。本処理は、前記図１０における、他サーバ２００へ起動完了９１１の電文を送信する処理（Ｓ１１００）に対応している。
【０１１５】
ステップＳ１００１で、パワーオンにより起動されたサーバ２００（例えばｃ）は、動作テーブル７における自サーバ２００に相当する列の動作状態７１１を、“ＯＦＦ”から“ＯＮ”にする。また、Ｓ１００２で、同サーバ２００（ｃ）は、同じ列のＣＰＵ使用率７１２を、‘０’にセットする。
【０１１６】
次に、Ｓ１００３で、同サーバ２００（ｃ）は、負荷測定部２１５，監視制御部２１４，通信制御部２１３を起動し、これによりサーバグループの監視が行われる状態となる。
【０１１７】
次に、Ｓ１００４で、同サーバ２００（ｃ）は、起動完了９１１の電文を、同一サーバグループ内の他サーバ２００（ａ，ｂ）に対して送信する。これにより、自サーバ２００（ｃ）がサーバグループに対して処理提供可能な状態（“ＯＮ”）で新規追加されることを知らせる。
【０１１８】
一方、図１３のＳ１３２１でも示すように、サーバグループの各サーバ２００（ａ，ｂ）は、前記起動完了９１１の電文を受信すると、それにより新規追加されるサーバ２００（ｃ）に対して、自身の動作テーブル７の内容を更新すると共に、自身を含む各サーバ２００（ａ，ｂ）の負荷情報を前記負荷情報９１２の電文により通知する。
【０１１９】
次に、Ｓ１００５で、前記起動完了９１１を送信したサーバ２００（ｃ）は、他サーバ２００（ａ，ｂ）からの負荷情報９１２の電文の受信を確認する。負荷情報９１２の電文を受信した場合（Ｓ１００５−ＹＥＳ）、Ｓ１００６で、同サーバ２００（ｃ）は、受信した負荷情報９１２の電文におけるコンテンツ９０５に含まれている各サーバ２００（ａ，ｂ）についての負荷情報に従い、それに対応する自身の動作テーブル７における自サーバの列（７０１）以外のすべての列（７０２，７０３）を更新する。
【０１２０】
図１２は、サーバグループのサーバ２００｛ａ，ｂ，ｃ｝における負荷情報の送信処理の詳細を示すフロー図である。本処理は、前記図１０における、負荷変動をチェックして他サーバ２００へ負荷情報９１２の電文を送信する処理（Ｓ１２００）に対応している。
【０１２１】
まず、Ｓ１２０１で、各サーバ２００は、負荷測定部２１５により、自サーバ２００の負荷情報としてＣＰＵ使用率７１２を測定している。この負荷の測定方法については各種周知技術があるが、例えば、インターバルタイマーを利用して、一定間隔で、ＯＳ２１２の状態を見て、ウェイト状態か否か（すなわち処理待ちか処理中か）を判定したり、ＣＰＵ自身から発生されるウェイト信号、ＨＯＬＤ信号など特定の信号を監視することにより、ＣＰＵ２０１の使用率を計算することにより行う。
【０１２２】
Ｓ１２０２で、サーバ２００は、直前測定時の自サーバ２００の動作テーブル７のＣＰＵ使用率７１２と、Ｓ１２０１で現在測定した値とを比較する。比較に基づき、Ｓ１２０３で、前記測定したＣＰＵ使用率７１２の値が、ある程度の範囲内に収まるかそれ以上に変動しているかを、閾値との比較により判定することで負荷変動をチェックする。なお、上記判断の基準となる閾値について設定可能としてもよい。
【０１２３】
前記閾値内の変動の場合（Ｓ１２０３−ＹＥＳ）、Ｓ１２０５で、該当サーバ２００は、定められた時間分をウェイト後、Ｓ１２０１へ移り、再度同様の処理を繰り返す。上記定められた時間の値は、ランダム値や一定値などである。
【０１２４】
前記閾値以上の変動がある場合（Ｓ１２０３−ＮＯ）、Ｓ１２０４において、該当サーバ２００は、前記Ｓ１２０１での測定値を、動作テーブル７におけるＣＰＵ使用率７１２の項目の自サーバ２００に対応する列へ設定して更新する。
【０１２５】
次に、Ｓ１２０６において、該当サーバ２００は、負荷変動を検出したことにより、負荷情報９１２の電文を作成する。すなわち、該当サーバ２００は、自身の動作テーブル７における動作状態７１１及びＣＰＵ使用率７１２の項目における全サーバの列（７０１〜７０３）に対応した値を、負荷情報９１２の電文のコンテンツ９０５へセットする。なお、この際、ＣＰＵ使用率７１２の値のみ使用するようにしてもよい。
【０１２６】
次に、Ｓ１２０７において、該当サーバ２００は、作成した負荷情報９１２の電文を、同一サーバグループ内の他サーバ２００に対して送信する。
【０１２７】
なお、前記各サーバ２００の動作テーブル７の情報に関しては、状態変動や情報の通知の遅れ等により、サーバ２００間で違いがあり得る。前記他サーバ２００から負荷情報９１２を受信した際に動作テーブル７へ反映する情報の決定においては、例えば、常に受信した最近値を使用すること、あるいは、最近値に限らず重い負荷を示す情報の方を優先して使用すること等により決定してもよい。また例えば、動作テーブル７で記憶する情報として、ある時点の負荷であることを示すタイムスタンプ情報を付加しておき、本タイムスタンプと比較し、新しい値を利用する形式としてもよい。
【０１２８】
また、サーバ２００間での負荷情報９１２の授受に関しては、あるサーバ２００からサーバグループに対して自サーバ２００のみの情報を通知するようにしてもよい。本例では、動作テーブル７における自サーバ２００を含むすべてのサーバ２００についての負荷情報を他サーバ２００へ通知することで、サーバ２００間の情報の違いを少なくさせるようにしている。
【０１２９】
図１３は、サーバグループのサーバ２００｛ａ，ｂ，ｃ｝における各種コマンド９０１の電文の受信処理についての詳細を示すフロー図である。
【０１３０】
まず、Ｓ１３０２において、電文を受信したサーバ２００は、受信した電文のコマンド９０１が負荷情報９１２かどうかを判定する。負荷情報９１２の場合、Ｓ１３１１で、該当サーバ２００は、該当電文のコンテンツ９０５における全サーバについての負荷情報を、動作テーブル７の該当行（７１１，７１２）の自サーバ以外の列（７０１〜７０３）へセットする。
【０１３１】
次に、Ｓ１３０３において、該当サーバ２００は、コマンド９０１が起動完了９１１かどうか判定する。起動完了９１１の場合、Ｓ１３２１で、該当サーバ２００は、該当電文のコンテンツ９０５における対象サーバの動作状態の情報を、自身の動作テーブル７における動作状態７１１の対象列へセットする。
【０１３２】
次に、Ｓ１３０４で、該当サーバ２００は、コマンド９０１が第１要求９１３かどうか判定する。第１要求９１３の場合、Ｓ１３４１で、図１４で示す処理要求受信処理を行う。そしてこの処理後に終了する。
【０１３３】
次に、Ｓ１３０５で、該当サーバ２００は、コマンド９０１が第２応答９１６かどうか判定する。第２応答９１６の場合、Ｓ１３３１で、該当サーバ２００は、図１７で後述するＵＲＬ参照応答処理を行う。
【０１３４】
次に、Ｓ１３０６で、該当サーバ２００は、コマンド９０１が更新日時回答９１８かどうか判定する。更新日時回答９１８の場合、Ｓ１３５１で、該当サーバ２００は、図１６で後述するＵＲＬ参照要求処理を行う。
【０１３５】
次に、Ｓ１３０７で、該当サーバ２００は、コマンド９０１がＵＲＬキャッシュ９１９かどうか判定する。ＵＲＬキャッシュ９１９の場合、Ｓ１３６１で、該当サーバ２００は、そのコンテンツ９０５に含まれている対象サーバのインデックス情報７１３を、自身の動作テーブル７の該当行（７１３）の対象サーバの列へセットする。これにより、自サーバ２００で他サーバ２００のキャッシュ情報も取得して保持することができる。受信した電文のコマンド９０１が以上に該当しない場合、何もしないで当該電文を破棄して終了する。
【０１３６】
図１４は、サーバグループのサーバ２００｛ａ，ｂ，ｃ｝における処理要求受信処理（Ｓ１３００，Ｓ１１１２，Ｓ１１２２，Ｓ１１３２，Ｓ１３４１）の詳細を示すフロー図である。サーバ２００は、第１要求９１３で指定されるＵＲＬに関して本処理を行う。本処理では、自サーバ２００でのキャッシュ状態と負荷状態を判断して、自サーバ２００で処理を受け付けるかどうか決定する。
【０１３７】
まず、Ｓ１４０１において、サーバ２００は、指定ＵＲＬについて、動作テーブル７における全サーバの列（７０１〜７０３）のインデックス情報７１３内に含まれているＵＲＬ８０１から、指定ＵＲＬと同じものを抽出する検索を行う。この時、全サーバに対応する全列を検索の対象にする。
【０１３８】
Ｓ１４０２において、サーバ２００は、前記検索の結果、自サーバ内に該当ＵＲＬに対応したキャッシュ情報及びキャッシュデータが存在し、かつ自サーバに含まれる該当ＵＲＬのキャッシュにおけるＷｅｂ更新日時８０２が最新かどうかを判定する。
【０１３９】
上記判定で、サーバ２００は、自サーバの該当キャッシュが最新である場合（Ｓ１４０２−ＹＥＳ）、Ｓ１４０３において、該当ＵＲＬのＷｅｂサーバ３におけるその時点のコンテンツデータの更新日時と比較するために、更新日時要求９１７の電文を作成し、該当Ｗｅｂサーバ３に対し送信する。
【０１４０】
また上記判定で、サーバ２００は、自サーバの該当キャッシュが最新でない場合（Ｓ１４０２−ＮＯ）、Ｓ１４０４において、動作テーブル７においてサーバグループの他サーバ２００の列で該当ＵＲＬのキャッシュが存在するかどうかを調べる。ここで、他サーバ２００が該当ＵＲＬに対応したキャッシュデータを保有している場合（Ｓ１４０４−ＹＥＳ）、その保有しているサーバ２００が自サーバと同様の処理要求受信処理を行っているので、自サーバでは何もせず終了する。
【０１４１】
また上記判定で、サーバグループにおける自他の各サーバ２００で該当ＵＲＬのキャッシュを保有していない場合は（Ｓ１４０４−ＮＯ）、Ｓ１４０５で、図１５で後述するサーバ負荷比較処理において、どのサーバ２００が処理を受け付けるべきかを、各サーバ２００の負荷状態などに従って決めることになる。
【０１４２】
図１５は、サーバグループのサーバ２００｛ａ，ｂ，ｃ｝におけるサーバ負荷比較処理（Ｓ１４０５）の詳細を示すフロー図である。Ｓ１５０３，Ｓ１５０４の処理により、いずれかのサーバ２００で処理を受け付けるように制御する例である。
【０１４３】
まず、Ｓ１５０１において、サーバ２００は、自身の動作テーブル７における全サーバの列の情報を読み出す。
【０１４４】
次に、Ｓ１５０２において、サーバ２００は、動作テーブル７におけるＣＰＵ使用率７１２の自サーバの列と他のサーバの列との値を比較する。そして、Ｓ１５０３で、自サーバの列のＣＰＵ使用率７１２がサーバグループ内で最小であり、かつ、Ｓ１５０４で、自サーバの列のＭＡＣアドレス６１５の値が最小である、という条件を満たすかどうかを判断する。すなわちサーバグループ内のサーバ２００で負荷が最小の状態である１つのサーバを判断する。上記処理を通じて、１つのサーバ２００が、第１要求９１３に対応した処理を受け付ける義務を負うことになる。本例では、グループ内のサーバ２００間での特定の優先順位の設定として、ＭＡＣアドレス６１５の値を用いている。
【０１４５】
上記条件を満たさない場合（Ｓ１５０３−ＮＯ，Ｓ１５０４−ＮＯ）、該当サーバ２００は、処理受け付けせずに終了する。上記条件を満たす場合（Ｓ１５０４−ＹＥＳ）、Ｓ１５０５において、該当サーバ２００は、処理を受け付けることに決め、次に続く処理のために第２要求９１５の電文を作成し、Ｗｅｂサーバ３に対し送信する。
【０１４６】
前記Ｓ１５０４でＭＡＣアドレス６１５を使用する理由は、サーバグループで処理を受け付けるサーバ２００を決定する場合に、最後にクリンチすることの無いようにするためであって、他サーバ２００と一致することのない識別情報であればＩＰアドレスなど他の情報を用いてもよい。本例では、あらかじめ設定されている所定の規則の例として、設定テーブル６における各サーバ２００のＭＡＣアドレス６１５の情報を用いている。
【０１４７】
また前記Ｓ１５０３等において、サーバ２００の負荷状態を最小値により判断する以外にも、負荷情報がある程度の閾値以下に収まるものを選択すること等により判断してもよい。
【０１４８】
また前記処理を受け付けたサーバ２００では、ランダムな時間ウェイトして他サーバ２００からの電文を傍受監視して他サーバ２００で処理を受け付けていないことを確認してから第２要求９１５の電文を送信するようにしてもよい。
【０１４９】
また前記判断の結果、自サーバ２００で処理を受け付ける条件が成立しない場合、該当サーバ２００は、ランダムな時間分ウェイトして、他サーバ２００が処理を受け付けたかどうかを、他サーバ２００が送信する電文を傍受監視することによって判断するようにしてもよい。該当サーバ２００は、他サーバ２００からＷｅｂサーバ３への第２要求９１５等の電文を傍受した場合、他サーバ２００での処理受け付けが確認されるので終了する。また、前記ウェイトで電文を傍受しなかった場合、再度、開始に戻って処理受け付けのための判断を再試行するようにしてもよい。この再試行は、サーバグループの全サーバ２００が処理を受け付けなくなる場合を防止するための措置である。
【０１５０】
また前記電文の傍受により他サーバ２００からの応答（処理受け付け）を知る方法以外にも、サーバ２００からＰＣ１やＷｅｂサーバ３への要求や応答の送信時に、これに合わせて、同じサーバグループ内の他サーバ２００に対してマルチキャスト送信も含む明示的な送信を行う方法により、前記応答を知ることとしてもよい。
【０１５１】
上記のようなサーバ２００での処理受け付けの決定に係わる所定の判断基準や規則に応じて、１つのサーバ２００で処理受け付けが行われるように制御している。また複数のサーバ２００で処理受け付けが行われる場合も発生し得るが、１つのサーバ２００で実際に処理を行わせるように制御している。本例では、サーバ２００での処理受け付けの判断で、まずキャッシュ状態を判断し、次に負荷状態を判断して決めている。
【０１５２】
またその他、サーバグループにおける自他の複数のサーバ２００で該当ＵＲＬの同じ更新日時のキャッシュデータを保有している場合に、所定の基準や規則に応じて、いずれかのサーバ２００で処理を受け付けることに決める。例えば図１５と同様の負荷比較処理によって負荷の低い状態にある１つのサーバ２００で処理を受け付けるように決める。あるいは各サーバ２００に定められたＭＡＣアドレス６１５等の異なる値を比較して決める。
【０１５３】
また、条件を満たす複数のサーバ２００で処理を受け付けるようにしてもよい。この場合、同じ処理を受け付けて同時平行的に処理させる。この場合でも、ＰＣ１では、最終的には、処理結果となる第２応答９１６を早く返したサーバ２００からのデータが採用されることになる。
【０１５４】
図１６は、サーバグループのサーバ２００｛ａ，ｂ，ｃ｝における第２のＵＲＬ参照要求処理（Ｓ１１２３，Ｓ１３５１）を含む処理の詳細フロー図を示す。本処理は、サーバ２００で第１要求９１３の受信及び処理受け付けに応じて行われる第２要求９１５の処理に対応している。本例では、サーバ２００での第２のＵＲＬ参照要求処理（Ｓ１１２３）は、処理受け付け（Ｓ１１２２）においてキャッシュの更新日時の確認により処理を受け付けることを決めた後、自サーバで最新のコンテンツデータのキャッシュを保有していないと判明した時に実行される。
【０１５５】
まず、Ｓ１６０１において、該当サーバ２００は、Ｗｅｂサーバ３から受信した更新日時回答９１８の電文のコンテンツ９０５に含まれる更新日時の情報と、自サーバに含まれる該当ＵＲＬ８０１のキャッシュのＷｅｂ更新日時８０２の情報とを比較する。そして、Ｓ１６０２で、前記Ｗｅｂサーバ３から受信した更新日時の情報の方が最新である場合、言い換えれば、自サーバ２００で保有している該当キャッシュデータ（ファイル８２１）が、Ｗｅｂサーバ３で掲示している最新のコンテンツデータより古いことが判明した場合（Ｓ１６０２−ＹＥＳ）、最新のコンテンツデータを参照することに決め、Ｓ１６０３で、サーバ２００は、第２要求９１５の電文を作成して、Ｗｅｂサーバ３へ送信して終了する。
【０１５６】
前記Ｓ１６０２で、逆に、前記Ｗｅｂサーバ３から受信した更新日時の情報が、自サーバ２００で保有している該当キャッシュデータのＷｅｂ更新日時８０２と同じである場合、言い換えれば、自サーバ２００で保有している該当キャッシュデータが、Ｗｅｂサーバ３で掲示している最新のコンテンツデータと同じであることが判明した場合（Ｓ１６０２−ＮＯ）、キャッシュ応答することを決める。Ｓ１６０４で、サーバ２００は、自サーバでのキャッシュ情報及びキャッシュデータにおいて、キャッシュテーブルにおける該当ＵＲＬ８０１に対応するＨＴＭＬファイル名８０３及びそのファイル８２１を使用して、第１応答９１４の電文を作成し、要求元のＰＣ１へ送信して終了する。
【０１５７】
図１７は、サーバグループのサーバ２００｛ａ，ｂ，ｃ｝におけるＵＲＬ参照応答処理（Ｓ１１２４）を含む処理の詳細を示すフロー図である。本処理は、サーバ２００で第２応答９１６の受信に応じて行われる第１応答９１４の処理及びＵＲＬキャッシュ処理に対応している。
【０１５８】
まず、Ｓ１７０１において、該当サーバ２００は、Ｗｅｂサーバ３から受信した第２応答９１６の電文のコンテンツ９０５に含まれている、該当ＵＲＬに対応したコンテンツデータを、キャッシュ記憶領域に格納する。すなわち、サーバ２００は、受信コンテンツデータについてのキャッシュ情報を、自身のキャッシュテーブルの列（８０１〜８０３）に追加して情報を更新し、また受信コンテンツデータをファイル８２１に格納する。
【０１５９】
次に、Ｓ１７０２で、サーバ２００は、キャッシュテーブルにおける、前記受信コンテンツデータについての、ＵＲＬ８０１及びＷｅｂ更新日時８０２を含む情報を、自身の動作テーブル７におけるインデックス情報７１３の領域に追加して情報を更新する。
【０１６０】
次に、Ｓ１７０３で、サーバ２００は、前記受信コンテンツデータをもとに、第１応答９１４の電文を作成し、要求元のＰＣ１へ送信する。ＰＣ１では、第１応答９１４の電文が受信され、Ｗｅｂブラウザ等で処理されることになる。
【０１６１】
次に、Ｓ１７０４で、サーバ２００は、上記処理で自サーバでのキャッシュ情報を更新したことにより、これをサーバグループの他サーバ２００へ通知して他サーバ２００の持つキャッシュ情報を更新させるために、ＵＲＬキャッシュ９１９の電文を作成し、他サーバ２００へ送信する。サーバ２００は、ＵＲＬキャッシュ９１９の電文のコンテンツ９０５に、上記処理で更新した自サーバについてのキャッシュ情報（インデックス情報７１３）を含む情報をセットする。一方、本ＵＲＬキャッシュ９１９の電文を受信した他の各サーバ２００では、前記Ｓ１３６１の処理が行われキャッシュ情報が更新されることになる。
【０１６２】
以上説明したように、本実施の形態によれば、複数のＷｅｂサーバ３に対するＰｒｏｘｙサーバ機能を持つサーバ２００のサーバグループにおいて、グループ内の各サーバ２００における最新のキャッシュと負荷の状態をお互いのサーバ２００が知り、それに基づき処理を受け付けてＷｅｂ参照の代理処理を実行することにより、サーバ２００間での最適な負荷配分を自立的に行うことができる。複数のＰＣ１から参照要求が集中したとしても、各サーバ２００での判断に従って適切に負荷配分が調整される。また、全体を管理するあるいは処理要求を一次受け付けするような装置を必要とせず、また外付けの負荷分散装置のような特殊な装置を必要とせず、サーバグループ内のサーバ２００における処理の負荷分散・均衡化を図ることができる。サーバ２００やＰＣ１の数の増減に伴う負荷変動にも対応して、全サーバ２００が自立的に負荷を調整していき、常に、全サーバ２００でできる限り均等に負荷を持つようにできる。
【０１６３】
以上の他に、本実施の形態では、サーバ２００として、Ｗｅｂサーバ３に対するＰｒｏｘｙサーバ機能を例とし、複数のサーバ２００から共通してアクセスされる典型としてＷｅｂサーバ３を例にしたが、サーバ２００として、その他のアプリケーションに対応したサーバに対しアクセスしてデータや情報をキャッシュする処理を行う機能にも同様に適用可能である。例えば、ＤＢ、ＤＮＳ、電子メール、その他データ処理などの処理を行うサーバに対しアクセスするサーバで、参照したＤＢデータ、ＵＲＬ情報や通信アドレス情報、電子メールデータ等の情報及びデータをキャッシュする処理を行う場合に可能である。キャッシュ対象は、参照先の識別情報や通信アドレス、参照したデータ及びその更新日時などである。例えばクライアントからの要求に応じてＤＢサーバに対する参照処理を行うサーバ２００とした形態では、本サーバ２００で、キャッシュ情報及びデータとして、ＤＢサーバの識別情報やアドレス、ＤＢファイル名、検索キーコード、データの更新日、対応するフィールドの内容などを保有し、キャッシュ情報をグループ内で交換し合い、各サーバ２００でＤＢデータのキャッシュ状態とＤＢ参照処理の負荷状態を判断して、処理を受け付けする。この場合、前記第２要求９１５はＤＢアクセス要求となり、前記第２応答９１６はＤＢアクセス結果となる。ＤＢアクセス要求にはコンテンツとして例えば検索キーが含まれる。ＤＢアクセス結果のコンテンツは例えばＤＢ検索結果データである。
【０１６４】
また、サーバ２００の負荷情報としてＣＰＵ使用率７１２を用いたが、その他、サーバ２００でＰＣ１から受け付けた処理数や、いわゆるトラフィック量（転送レート等）や、実行ジョブ（サーバ２００での処理を分割した単位）数などの他のパラメータを使用してもよい。
【０１６５】
また、本例では、負荷分散対象となるサーバ２００に関して、同様の性能のブレードサーバ方式を対象にした。これに限らず、本発明の他の実施の形態では、前記ブレードサーバ方式ではなく、スタンドアロン型の複数のサーバ装置や、それぞれ異なる性能の複数のサーバを用いてシステムが構成される。スタンドアロン型の複数のサーバ装置でシステムを構成する場合、前記図１におけるサーバ集合筐体２を除いた同様の構成となる。また上記異なる性能の複数のサーバ、例えばＣＰＵ２０１の処理速度[Ｈｚ]が異なる複数のサーバで構成する場合では、負荷情報として前記ＣＰＵ使用率７１２などを使用する場合、低い性能のサーバには少ない仕事量を、高い性能のサーバには多くの仕事量を課すような負荷分散の均衡を保たせる。
【０１６６】
また、処理を受け付けたサーバ２００の識別に関して、固有ＩＰアドレス６１２を用いる以外には、グループＩＰアドレス６１４、セッション番号９０４、及びサーバＩＤの組み合わせを用いる等としてもよい。
【０１６７】
また、本システム内に１つのサーバグループのみ設定される場合を示したが、例えば、サーバ集合筐体２においてサーバ２００の組み合わせにより複数のサーバグループを設定して、各サーバグループにおいて同様に負荷分散することも可能である。
【０１６８】
また、本例では、各サーバ２００のネットワーク４に対する接続・配線の形式について、マルチドロップ型、すなわち各サーバ２００が独立してＬＡＮ制御部２０３によりネットワーク４に対し接続される形式とした。これに限らず、各サーバ２００が、ネットワーク４に対し、スイッチやハブやルータやゲートウェイ等の、データ転送の役割を持つ中継部を介在して接続・配線される形式も可能である。すなわち各サーバ２００が中継部に接続され、中継部がネットワーク４に対し接続される形式である。例えば、サーバ集合筐体２内にこのような中継部を設けた構成も可能である。この場合でも、各サーバ２００間、及び、各サーバ２００とＰＣ１との間の通信の電文において、前記グループＩＰアドレス６１４が用いられた場合には、前記中継部でその電文が同一サーバグループのサーバ２００に対して転送されるように、転送に関する設定を行っておく。これにより同様に負荷分散が実現可能である。
【０１６９】
また、起動完了９１１、負荷情報９１２、ＵＲＬキャッシュ９１９などのサーバ２００間で交換する電文のデスティネーションＩＰアドレスとして、共通のグループＩＰアドレス６１４を使用せず、毎回、同じグループの全サーバ２００の個別ＩＰアドレス（６１２）に対して、ユニキャスト通信により、相手を明示的に指定して送る方法でもよい。
【０１７０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【０１７１】
本発明は、サーバやサーバを含んで構成される情報処理システムなどに利用可能である。
【図面の簡単な説明】
【０１７２】
【図１】本発明の一実施の形態におけるサーバ装置を含んで構成される情報処理システムの構成例を示す図である。
【図２】本発明の一実施の形態のサーバ装置に対して通信接続されるクライアントであるＰＣのハードウェアブロック構成を示す図である。
【図３】本発明の一実施の形態のサーバ装置に対して通信接続されるクライアントであるＰＣのソフトウェアブロック構成を示す図である。
【図４】本発明の一実施の形態におけるサーバ装置のハードウェアブロック構成を示す図である。
【図５】本発明の一実施の形態におけるサーバ装置のソフトウェアブロック構成を示す図である。
【図６】本発明の一実施の形態におけるサーバ装置で保持される設定テーブルの形式の一実施例を示す図である。
【図７】本発明の一実施の形態におけるサーバ装置で保持される動作テーブルの形式の一実施例を示す図である。
【図８】本発明の一実施の形態におけるサーバ装置で保持される、ＵＲＬコンテンツキャッシュテーブルの形式の一実施例を示す図である。
【図９】本発明の一実施の形態におけるサーバ装置を含んで構成される情報処理システムにおいて、ＬＡＮを含むネットワークのインターフェース上で使用される電文の形式の一実施例を示す図である。
【図１０】本発明の一実施の形態におけるサーバ装置を含んで構成される情報処理システムにおいて、ＰＣ、同一サーバグループのサーバ、及び、Ｗｅｂサーバの間での一連の処理及び制御のシーケンスの例を示す図である。
【図１１】本発明の一実施の形態のサーバ装置における、パワーオン動作時の処理の詳細を示すフロー図である。
【図１２】本発明の一実施の形態のサーバ装置における、負荷情報の送信処理の詳細を示すフロー図である。
【図１３】本発明の一実施の形態のサーバ装置における、各種コマンドの電文の受信処理についての詳細を示すフロー図である。パワーオン動作時の処理の詳細を示すフロー図である。
【図１４】本発明の一実施の形態のサーバ装置における、処理要求受信処理の詳細を示すフロー図である。
【図１５】本発明の一実施の形態のサーバ装置における、サーバ負荷比較処理の詳細を示すフロー図である。
【図１６】本発明の一実施の形態のサーバ装置における、ＵＲＬ参照要求処理を含む処理の詳細を示すフロー図である。
【図１７】本発明の一実施の形態のサーバ装置における、ＵＲＬ参照応答処理を含む処理の詳細を示すフロー図である。
【符号の説明】
【０１７３】
１…ＰＣ、２…サーバ集合筐体、３…Ｗｅｂサーバ、４…ネットワーク、６…設定テーブル、７…動作テーブル、１０１，２０１…ＣＰＵ、１０２，２０２…メモリ、１０３…ＬＡＮボード、１０４，２０４…ＨＤＤ、１０５…入力制御ボード、１０６…出力制御ボード、１１１，２１１…アプリケーション部、１１２，２１２…ＯＳ、１１３，２１３…通信制御部、１１４…入力制御部、１１５…出力制御部、２００…サーバ、２０３…ＬＡＮ制御部、２０５…ＳＶＰ制御部、２１４…監視制御部、２１５…負荷測定部、７１１…動作状態、７１２…ＣＰＵ使用率、７１３…ＵＲＬコンテンツキャッシュインデックス情報、８０１…ＵＲＬ、８０２…Ｗｅｂ更新日時、８０３…ＨＴＭＬファイル名、８２１…ファイル。
【図１】
2006301769.tif 000003
【図２】
2006301769.tif 000004
【図３】
2006301769.tif 000005
【図４】
2006301769.tif 000006
【図５】
2006301769.tif 000007
【図６】
2006301769.tif 000008
【図７】
2006301769.tif 000009
【図８】
2006301769.tif 000010
【図９】
2006301769.tif 000011
【図１０】
2006301769.tif 000012
【図１１】
2006301769.tif 000013
【図１２】
2006301769.tif 000014
【図１３】
2006301769.tif 000015
【図１４】
2006301769.tif 000016
【図１５】
2006301769.tif 000017
【図１６】
2006301769.tif 000018
【図１７】
2006301769.tif 000019