(57)【特許請求の範囲】
【請求項１】
クライアントリクエストのグルーピングを行うリクエストグルーピング部と、
前記リクエストグルーピング部によるグルーピングにより得られたクライアントリクエストのグループをグルーピングの単位にして、クライアント装置のグルーピングを行うクライアントグルーピング部と、
前記リクエストグルーピング部によるグルーピング結果と前記クライアントグルーピング部によるグルーピング結果とに基づき、クライアントリクエストのグループごとに、グループに含まれるクライアントリクエストとグループに所属するクライアント装置とを通知するグループ情報を、グループに所属するクライアント装置に送信するグループ情報送信部とを有するサーバ装置。
【請求項２】
前記サーバ装置は、更に、
前記リクエストグルーピング部によるグルーピング結果と前記クライアントグルーピング部によるグルーピング結果とに基づき、クライアントリクエストのグループごとに、クライアントリクエストとクライアント装置との組合せを記憶する組合せ記憶部を有する請求項１に記載のサーバ装置。
【請求項３】
前記リクエストグルーピング部は、
クライアントリクエスト間の関係を解析してクライアントリクエストのグルーピングを行う請求項１に記載のサーバ装置。
【請求項４】
前記リクエストグルーピング部は、
クライアントリクエストが対象とする、互いに関連付けられたデータ群の階層構造を解析してクライアントリクエストのグルーピングを行う請求項１に記載のサーバ装置。
【請求項５】
前記リクエストグルーピング部は、
各グループのクライアントリクエストの個数が均等になるようにクライアントリクエストのグルーピングを行う請求項１に記載のサーバ装置。
【請求項６】
前記クライアントグルーピング部は、
クライアントリクエストが受信された場合、受信されたクライアントリクエストの送信元のクライアント装置を、受信されたクライアントリクエストが含まれるグループに所属させる請求項１に記載のサーバ装置。
【請求項７】
クライアントリクエストのグルーピングにより得られたクライアントリクエストのグループをグルーピングの単位にしてクライアント装置のグルーピングを行うサーバ装置によって指定されたグループであって自装置が所属するグループである所属グループに含まれるクライアントリクエストの送信権が自装置にあるか否かを判定し、前記クライアントリクエストの送信権が自装置にある場合に、前記クライアントリクエストに対するレスポンスがキャッシュ領域にキャッシュされているか否かを判定する送信権判定部と、
前記送信権判定部により前記クライアントリクエストの送信権が自装置にあり、前記クライアントリクエストに対するレスポンスが前記キャッシュ領域にキャッシュされていないと判定された場合に、前記サーバ装置に前記クライアントリクエストを送信し、前記送信権判定部により前記クライアントリクエストの送信権が自装置にないと判定された場合に、前記所属グループに所属している他のクライアント装置に前記クライアントリクエストを送信するリクエスト送信部とを有するクライアント装置。
【請求項８】
前記クライアント装置は、更に、
前記所属グループに所属している他のクライアント装置から送信されたクライアントリクエストを受信するリクエスト受信部を有し、
前記送信権判定部は、
前記リクエスト受信部により受信された受信クライアントリクエストの送信権が自装置にあるか否かを判定し、前記受信クライアントリクエストの送信権が自装置にある場合に、前記受信クライアントリクエストに対するレスポンスが前記キャッシュ領域にキャッシュされているか否かを判定し、
前記リクエスト送信部は、
前記送信権判定部により前記受信クライアントリクエストの送信権が自装置にあり、前記受信クライアントリクエストに対するレスポンスが前記キャッシュ領域にキャッシュされていないと判定された場合に、前記サーバ装置に前記受信クライアントリクエストを送信し、前記送信権判定部により前記受信クライアントリクエストの送信権が自装置にないと判定された場合に、前記所属グループに所属している他のクライアント装置のうち前記受信クライアントリクエストの送信元のクライアント装置以外のクライアント装置に前記受信クライアントリクエストを送信する請求項７に記載のクライアント装置。
【請求項９】
前記クライアント装置は、更に、
前記所属グループに含まれないクライアントリクエストであるグループ外クライアントリクエストの前記サーバ装置への送信が必要になった場合に、前記所属グループに所属している他のクライアント装置に前記所属グループからの離脱を通知する離脱通知部と、
前記離脱通知部により前記所属グループに所属している他のクライアント装置に前記所属グループからの離脱が通知された後に、前記サーバ装置に前記グループ外クライアントリクエストを送信して、前記サーバ装置に、前記グループ外クライアントリクエストが含まれるグループへの加入を要求するグループ加入要求部とを有する請求項７に記載のクライアント装置。
【請求項１０】
コンピュータであるサーバ装置が、クライアントリクエストのグルーピングを行うリクエストグルーピング処理と、
前記サーバ装置が、前記リクエストグルーピング処理によるグルーピングにより得られたクライアントリクエストのグループをグルーピングの単位にして、クライアント装置のグルーピングを行うクライアントグルーピング処理と、
前記サーバ装置が、前記リクエストグルーピング処理によるグルーピング結果と前記クライアントグルーピング処理によるグルーピング結果とに基づき、クライアントリクエストのグループごとに、グループに含まれるクライアントリクエストとグループに所属するクライアント装置とを通知するグループ情報を、グループに所属するクライアント装置に送信するグループ情報送信処理とを有するグルーピング方法。
【請求項１１】
コンピュータであるサーバ装置に、
クライアントリクエストのグルーピングを行うリクエストグルーピング処理と、
前記リクエストグルーピング処理によるグルーピングにより得られたクライアントリクエストのグループをグルーピングの単位にして、クライアント装置のグルーピングを行うクライアントグルーピング処理と、
前記リクエストグルーピング処理によるグルーピング結果と前記クライアントグルーピング処理によるグルーピング結果とに基づき、クライアントリクエストのグループごとに、グループに含まれるクライアントリクエストとグループに所属するクライアント装置とを通知するグループ情報を、グループに所属するクライアント装置に送信するグループ情報送信処理とを実行させるグルーピングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ−クライアント型のシステムに関する。
【背景技術】
【０００２】
従来のサーバ−クライアント型のシステムは、各クライアント装置（以下、単にクライアントともいう）が個別にクライアントリクエスト（以下、単にリクエストともいう）をサーバ装置（以下、単にサーバともいう）に送信している。
図２４に従来のシステムを示す。
図２４は、以下の２つの動作を示したものである。
１）クライアント１、２、４が同一のリクエストＲｅｑｕｅｓｔＡをサーバに送信する。２）クライアント３がＲｅｑｕｅｓｔＢをサーバに送信する。
従来のシステムでは、同一のリクエストがクライアントから送られてきた場合、サーバはリクエストを個別に扱う。
重複するリクエストを処理するため、サーバが無駄な計算をしている問題があった。
図２４の例では、サーバはＲｅｑｕｅｓｔＡに対応する処理を３回行い、個々のクライアントにレスポンスを返却する。
このように、サーバは同じ処理を３回重複して行っている。
サーバへのアクセス数を削減するための技術として、特許文献１に開示の技術や特許文献２に開示の技術がある。
これらの文献の技術は、複数のクライアントの中から決められた代表クライアントのみがサーバと通信を行うという技術である。
具体的には、まず、クライアントを複数のグループに分割する。
グループの分割は、物理的なネットワークの構成を元に行う。
その後、グループごとにサーバと通信をする代表クライアントを決める。
代表クライアント以外のクライアントは、代表クライアントを経由してサーバと通信をする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開ＷＯ２０１１／１３５６２９号公報
【特許文献２】特開２００６−２８５６０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１及び特許文献２に開示の技術は、物理的なネットワークの構成を元に、複数のクライアントを複数のグループにグルーピングする。
しかしながら、物理的なネットワーク構成とリクエストの共通性との間に必ずしも相関があるわけでない。
つまり、物理的に近接する位置に配置されているクライアントであっても送信するリクエストが共通するとは限らず、物理的に離れているクライアントであっても送信するリクエストが共通する場合もある。
このように、特許文献１及び特許文献２に係るグルーピング方法は、必ずしも適切なグルーピング方法とは限らない。
【０００５】
本発明は、このような事情に鑑みたものであり、サーバ−クライアント型のシステムにおいて、クライアント装置を効果的にグルーピングして、サーバ装置が受信するリクエスト数を少なくすることを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るサーバ装置は、
クライアントリクエストのグルーピングを行うリクエストグルーピング部と、
前記リクエストグルーピング部によるグルーピングにより得られたクライアントリクエストのグループをグルーピングの単位にして、クライアント装置のグルーピングを行うクライアントグルーピング部とを有する。
【発明の効果】
【０００７】
本発明によれば、クライアントリクエストのグループをグルーピングの単位にしてクライアント装置のグルーピングを行うため、物理的なネットワークの構成を元にグルーピングする方法と比べて、サーバ装置が受信するリクエスト数を少なくすることができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るシステム構成例を示す図。
【図２】実施の形態１に係るサーバ装置の機能モジュール構成例を示す図。
【図３】実施の形態１に係るクライアント装置の機能モジュール構成例を示す図。
【図４】実施の形態１に係るサーバ装置によるグルーピング処理を示すフローチャート図。
【図５】実施の形態１に係るクライアント装置がグループに加入する際の処理を示すフローチャート図。
【図６】実施の形態１に係るクライアント装置によるリクエスト送信時の処理を示すフローチャート図。
【図７】実施の形態１に係るクライアント装置によるリクエスト受信時の処理を示すフローチャート図。
【図８】実施の形態１に係るクライアント装置によるレスポンス受信時の処理を示すフローチャート図。
【図９】実施の形態１に係るＷｅｂページのグルーピング例を示す図。
【図１０】実施の形態１に係るＷｅｂページの構成例を示す図。
【図１１】実施の形態１に係るＷｅｂページへの番号の付加手順例を示す図。
【図１２】実施の形態１に係るＷｅｂページへの番号の付加手順例を示す図。
【図１３】実施の形態１に係るＷｅｂページへの番号の付加手順例を示す図。
【図１４】実施の形態１に係る管理リングの例を示す図。
【図１５】実施の形態１に係る管理リングにおけるリクエストの配置位置の例を示す図。
【図１６】実施の形態１に係るグループ１の管理リング及びグループ２の管理リングの例を示す図。
【図１７】実施の形態１に係るグループ加入方法を示す図。
【図１８】実施の形態１に係るグループ１の管理リング及びグループ２の管理リングでのクライアント装置及びリクエストの配置例を示す図。
【図１９】実施の形態１に係るレスポンスＤＢの情報例を示す図。
【図２０】実施の形態１に係るレスポンスＤＢの情報例を示す図。
【図２１】実施の形態１に係るクライアントグループの例を示す図。
【図２２】実施の形態１に係るサーバ装置のハードウェア構成例を示す図。
【図２３】従来のクライアントグループの例を示す図。
【図２４】従来のリクエスト送信例を示す図。
【発明を実施するための形態】
【０００９】
実施の形態１．
本実施の形態では、物理的なネットワークの構成を元にグルーピングする方法と比べて、サーバ装置が受信するクライアントリクエストの個数が少なくなるグルーピング方法を示す。
特許文献１及び特許文献２に示すように物理的なネットワーク構成を元に複数のクライアント装置のグループ分割を行うと、図２３に示すように、各クライアントグループから、全てのクライアントリクエストについて重複が発生する可能性がある。
本実施の形態では、クライアントリクエストのグループをグルーピングの単位にしてクライアント装置のグルーピングを行う。
クライアントリクエストのグループ構成を用いたクライアント装置のグルーピングの方が、サーバ装置が受信するリクエスト数が少なくなる。
【００１０】
＊＊＊構成の説明＊＊＊
本実施の形態では、図１に例示するように、サーバ装置１００に複数のクライアント装置２００が接続されているサーバ−クライアントシステムを想定する。
図３では、３台のクライアント装置２００が接続されているが、クライアント装置２００は３台に限らない。
以下では、クライアント装置２００の台数は６台とする。
また、６台のクライアント装置２００には、Ｎｏ．１〜６までのクライアント装置２００を識別する番号が振られているものとする。
また、サーバ装置１００の台数は１台であるとする。
【００１１】
また、本システムは、互いに関連付けられたデータ群を閲覧するシステムを想定する。  本システムは、互いに関連付けられたデータ群として、具体的には、図１０に示すＷｅｂページを閲覧するシステムを想定する。
Ｗｅｂページは、複数のページの集合である。
各ページは、別のページと、リンクで関連付けられている。
リンクで関連付けられた別のページを閲覧するとき、ページの表示に使用するデータの要求（リクエスト）がクライアント装置２００からサーバ装置１００に送信される。
クライアント装置２００では、サーバ装置１００から、ページのデータが格納されたレスポンスを受け取ることで、ページを表示することができる。
図１０に示すように、本実施の形態に係るＷｅｂページは、Ｈｏｍｅ画面と、Ｐａｇｅ１〜６からなる子階層構造となっている。
例えば、クライアント装置２００がＰａｇｅ２を閲覧するとき、Ｐａｇｅ２を閲覧するためのクライアントリクエストであるＲｅｑｕｅｓｔ２を送信する。
クライアント装置２００はＲｅｑｕｅｓｔ２に対応するＲｅｓｐｏｎｓｅを受け取ることで、Ｐａｇｅ２の情報を得るものとする。
Ｐａｇｅの番号と、Ｐａｇｅに対応するリクエストの番号は一致するものとする。
また、図１０のリンクは、遷移できるページの関係を示す。
Ｈｏｍｅ画面からはＰａｇｅ１とＰａｇｅ２に遷移できるが、その他のページには遷移できない。
また、以下では、グルーピングするときに用いるグループの数を２とする。
【００１２】
本実施の形態では、サーバ装置１００は、クライアントリクエストのグループをグルーピングの単位にして、クライアント装置２００のグルーピングを行う。
つまり、本実施の形態では、サーバ装置１００は、Ｗｅｂページを閲覧するためのリクエスト（ＲｅｑｕｅｓｔＨｏｍｅ、Ｒｅｑｕｅｓｔ１〜Ｒｅｑｕｅｓｔ６）を２つのグループにグルーピングし、リクエストのグループをグルーピングの単位にしてクライアント装置２００のグルーピングを行う。
【００１３】
また、本実施の形態では、Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ（以下、ＤＨＴ）を用いて代表クライアント装置２００へのリクエスト送信、システムへのクライアント加入、離脱を行うものとする。
ＤＨＴで用いるリングのサイズを２４とする。
ＤＨＴを用いた通信方法は一例であり、特許文献１や特許文献２の方法を用いて通信しても構わない。
【００１４】
図２は、本実施の形態に係るサーバ装置１００の機能モジュール構成例を示す。
【００１５】
リクエストグルーピング部１０１は、クライアントリクエスト間の関係を解析してクライアントリクエストのグルーピングを行う。
より具体的には、リクエストグルーピング部１０１は、Ｗｅｂページの閲覧のためのリクエストでは、リクエストが対象とするＷｅｂページの階層構造を解析してリクエストのグルーピングを行う。
なお、以下では、Ｗｅｂページの閲覧のためのリクエストのグルーピングを、便宜上、Ｗｅｂページのグルーピングともいう。
また、リクエストグルーピング部１０１は、Ｗｅｂページに無関係のリクエストでは、各グループのリクエストの個数が均等になるようにリクエストのグルーピングを行う。
【００１６】
グループ加入要求受信部１０２は、クライアント装置２００から、グループ加入要求を受信する。
グループ加入要求は、送信元のクライアント装置２００をいずれかのグループに加入させるよう要求するメッセージである。
グループ加入要求にはクライアントリクエストが含まれている。
【００１７】
クライアントグルーピング部１０３は、リクエストグルーピング部１０１によるグルーピングにより得られたクライアントリクエストのグループをグルーピングの単位にして、クライアント装置２００のグルーピングを行う。
クライアントグルーピング部１０３は、グループ加入要求に含まれるクライアントリクエストが属するグループに、グループ加入要求の送信元のクライアント装置を所属させる。
【００１８】
組合せ記憶部１０４は、リクエストグルーピング部１０１によるグルーピング結果とクライアントグルーピング部１０３によるグルーピング結果とに基づき、クライアントリクエストのグループごとに、クライアントリクエストとクライアント装置との組合せを記憶する。
【００１９】
グループ情報送信部１０５は、グループ情報をクライアント装置２００に送信する。
グループ情報は、リクエストグルーピング部１０１によるグルーピング結果とクライアントグルーピング部１０３によるグルーピング結果とに基づき、クライアントリクエストのグループごとに、グループに含まれるクライアントリクエストとグループに所属するクライアント装置とを通知する情報である。
グループ情報送信部１０５は、このようなグループ情報を、グループに所属するクライアント装置２００に送信する。
【００２０】
リクエスト受信部１０６は、クライアント装置２００からリクエストを受信する。
【００２１】
レスポンス生成部１０７は、リクエスト受信部１０６が受信したリクエストに対するレスポンスを生成する。
【００２２】
レスポンス送信部１０８は、レスポンス生成部１０７により生成されたレスポンスをリクエストの送信元のクライアント装置２００に送信する。
【００２３】
図３は、クライアント装置２００の機能モジュール構成例を示す。
【００２４】
グループ加入要求部２０１は、サーバ装置１００にグループ加入要求を送信する。
前述のように、グループ加入要求にはクライアントリクエストが含まれる。
グループ加入要求部２０１は、クライアント装置２００がいずれのグループにも所属していない場合にグループ加入要求をサーバ装置１００に送信する。
また、グループ加入要求部２０１は、後述する離脱通知部２１２により所属グループに所属している他のクライアント装置２００に所属グループからの離脱が通知された後に、サーバ装置１００にグループ加入要求を送信する。
なお、所属グループとは、サーバ装置１００によって指定された自装置が所属するグループである。
【００２５】
グループ情報受信部２０２は、サーバ装置１００からグループ情報を受信する。
【００２６】
クライアント探索部２０３は、グループ情報受信部２０２が受信したグループ情報に基づき、所属グループに含まれるクライアント装置２００のうち管理リング上で自装置の前に位置するクライアント装置２００及び後ろに位置するクライアント装置２００を探索する。
管理リンクについては後述する。
【００２７】
リクエスト受信部２０４は、所属グループに所属している他のクライアント装置２００から送信されたクライアントリクエストを受信する。
【００２８】
送信権判定部２０５は、所属グループに含まれるクライアントリクエストの送信権が自装置にあるか否かを判定し、クライアントリクエストの送信権が自装置にある場合に、クライアントリクエストに対するレスポンスがレスポンスＤＢ２０９にキャッシュされているか否かを判定する。
より具体的には、送信権判定部２０５は、自装置においてクライアントリクエストの送信が必要になった場合に、クライアントリクエストの送信権が自装置にあれば、受信クライアントリクエストに対するレスポンスがレスポンスＤＢ２０９にキャッシュされているか否かを判定する。
また、送信権判定部２０５は、リクエスト受信部２０４により受信された受信クライアントリクエストの送信権が自装置にあるか否かを判定し、受信クライアントリクエストの送信権が自装置にある場合に、受信クライアントリクエストに対するレスポンスがレスポンスＤＢ２０９にキャッシュされているか否かを判定する。
【００２９】
リクエスト送信部２０６は、送信権判定部２０５によりクライアントリクエストの送信権が自装置にあり、クライアントリクエストに対するレスポンスがレスポンスＤＢ２０９にキャッシュされていないと判定された場合に、サーバ装置１００にクライアントリクエストを送信する。
また、リクエスト送信部２０６は、送信権判定部２０５によりクライアントリクエストの送信権が自装置にないと判定された場合に、所属グループに所属している他のクライアント装置２００にクライアントリクエストを送信する。
【００３０】
レスポンス受信部２０７は、サーバ装置１００又は所属グループに所属している他のクライアント装置２００からクライアントリクエストに対するレスポンスを受信する。
つまり、クライアントリクエストの送信権が自装置にある場合は、レスポンス受信部２０７はサーバ装置１００からレスポンスを受信する。
一方、クライアントリクエストの送信権が自装置にない場合は、レスポンス受信部２０７は他のクライアント装置２００からレスポンスを受信する。
【００３１】
レスポンス送信部２０８は、所属グループに所属している他のクライアント装置２００にレスポンスを送信する。
例えば、所属グループに属する他のクライアント装置２００からクライアントリクエストを受信した場合に、送信権判定部２０５によりクライアントリクエストの送信権が自装置にあり、クライアントリクエストに対するレスポンスがレスポンスＤＢ２０９にキャッシュされていると判定された場合に、レスポンスＤＢ２０９にキャッシュされているレスポンスを、クライアントリクエストの送信元のクライアント装置２００に送信する。
また、レスポンス送信部２０８は、レスポンス受信部２０７により受信されたレスポンスを、所属グループに属する他のクライアント装置２００に送信する。
【００３２】
レスポンスＤＢ２０９は、クライアントリクエストに対するレスポンスをキャッシュするキャッシュ領域である。
【００３３】
システム情報ＤＢ２１０は、システム情報を記憶する。
システム情報は、所属グループに関する情報である。
より具体手的には、システム情報は、所属グループが対象とするクライアントリクエスト、所属グループに含まれるクライアント装置２００のうち管理リングにおいて自装置の前に位置するクライアント装置２００及び後ろに位置するクライアント装置２００等の情報である。
【００３４】
システム情報書き換え部２１１は、システム情報ＤＢ２１０のシステム情報を書き換える。
【００３５】
離脱通知部２１２は、所属グループに含まれないクライアントリクエストであるグループ外クライアントリクエストのサーバ装置１００への送信が必要になった場合に、所属グループに所属している他のクライアント装置２００に所属グループからの離脱を通知する。
【００３６】
＊＊＊動作の説明＊＊＊
次に、サーバ装置１００及びクライアント装置２００の動作の概要を説明する。
図４は、サーバ装置１００の動作の概要を説明するフローチャートである。
図４は、本願に係るグルーピング方法及びグルーピングプログラムを示している。
図５〜図８は、クライアント装置２００の動作の概要を説明するフローチャートである。
まず、図４を参照してサーバ装置１００の動作の概要を説明する。
【００３７】
サーバ装置１００では、リクエストグルーピング部１０１がクライアントリクエストをグルーピングする（Ｓ１０１）（リクエストグルーピング処理）。
クライアントリクエストのグルーピング手法の詳細は後述する。
また、このとき、組合せ記憶部１０４は、グループごとに、グループとクライアントリクエストとの組み合せを記憶する。
【００３８】
次に、グループ加入要求受信部１０２がクライアント装置２００からグループ加入要求を受信した際に、クライアントグルーピング部１０３がグループ加入要求の送信元のクライアント装置２００を、Ｓ１０１により得られたクライアントリクエストのグループにグルーピングする（Ｓ１０２）（クライアントグルーピング処理）。
前述したように、グループ加入要求には、いずれかのクライアントリクエストが含まれており、グループ加入要求受信部１０２は、グループ加入要求に含まれるクライアントリクエストが所属するグループにグループ加入要求の送信元のクライアント装置２００を所属させる。
【００３９】
次に、組合せ記憶部１０４が、グループごとに、グループとクライアントリクエストとクライアント装置２００との組み合わせを記憶する（Ｓ１０３）。
【００４０】
また、グループ情報送信部１０５が、グループ加入要求の送信元のクライアント装置２００に、グループ加入情報を送信する（Ｓ１０４）。
【００４１】
次に、クライアント装置２００の動作の概要を説明する。
図５は、クライアント装置２００がグループに加入する際の動作例を示す。
図６は、クライアント装置２００においてリクエストの送信が必要になった際の動作例を示す。
図７は、クライアント装置２００が他のクライアント装置２００からリクエストを受信した際の動作例を示す。
図８は、クライアント装置２００がレスポンスを受信した際の動作例を示す。
以下、図５〜図８の順に、クライアント装置２００の動作の概要を説明する。
【００４２】
図５では、クライアント装置２００がグループに未加入のときにサーバ装置１００のリクエストを送信する必要が生じた場合に、グループ加入要求部２０１が、リクエストが含まれるグループ加入要求をサーバ装置１００に送信する（Ｓ２０１）。
【００４３】
次に、サーバ装置１００において図３のＳ１０２〜Ｓ１０４が行われてグループ情報が送信されると、グループ情報受信部２０２がグループ情報を受信する（Ｓ２０２）。
【００４４】
次に、クライアント探索部２０３が、Ｓ２０２で受信されたグループ情報を解析して、所属グループに含まれるクライアント装置２００のうち自装置の前に位置するクライアント装置２００及び後ろに位置するクライアント装置２００を探索する（Ｓ２０３）。
【００４５】
次に、システム情報書き換え部２１１が、グループ情報及びＳ２０３の探索の結果を用いて、システム情報ＤＢ２１０のシステム情報を更新する（Ｓ２０４）。
より具体的には、システム情報書き換え部２１１は、所属グループが対象とするクライアントリクエスト、所属グループに含まれるクライアント装置２００のうち自装置の前に位置するクライアント装置２００及び後ろに位置するクライアント装置２００等の情報をシステム情報ＤＢ２１０にシステム情報として書き込む。
【００４６】
図６では、例えば、図３に図示していないアプリケーションプログラム等によりリクエストの送信が要求されて、リクエストの送信が必要になった場合（Ｓ３０１でＹＥＳ）に、送信権判定部２０５が、そのリクエストが自装置の所属グループが対象としているリクエストか否かを判定する（Ｓ３０２）。
送信権判定部２０５は、システム情報ＤＢ２１０内のシステム情報を参照してＳ３０２の判定を行う。
【００４７】
自装置の所属グループが対象としているリクエストであれば（Ｓ３０２）、送信権判定部２０５は、そのリクエストの送信権が自装置にあるか否かを判定する（Ｓ３０３）。
送信権判定部２０５は、Ｓ３０３の判定もシステム情報を参照して行う。
【００４８】
送信権が自装置にある場合（Ｓ３０３でＹＥＳ）は、送信権判定部２０５は、そのリクエストに対するレスポンスがレスポンスＤＢ２０９にキャッシュされているか否かを判定する（Ｓ３０４）。
【００４９】
レスポンスがレスポンスＤＢ２０９にキャッシュされている場合（Ｓ３０４でＹＥＳ）は、送信権判定部２０５はレスポンスＤＢ２０９からレスポンスを取得する（Ｓ３０５）。
そして、送信権判定部２０５は、取得したレスポンスを、例えばアプリケーションプログラムに返却する。
【００５０】
一方、レスポンスがレスポンスＤＢ２０９にキャッシュされていない場合（Ｓ３０４でＮＯ）は、リクエスト送信部２０６がリクエストをサーバ装置１００に送信する（Ｓ３０６）。
【００５１】
また、Ｓ３０３において自装置にリクエストの送信権がない場合（Ｓ３０３でＮＯ）は、送信権判定部２０５がシステム情報から自装置の次のクライアント装置２００を特定し、リクエスト送信部２０６がリクエストを当該クライアント装置２００に送信する（Ｓ３０７）。
【００５２】
また、Ｓ３０２において所属グループが対象とするリクエストではない場合（Ｓ３０８でＮＯ）は、離脱通知部２１２が、所属グループ内の他のクライアント装置２００に離脱通知を送信して、所属グループから離脱する（Ｓ３０８）。
その後、図５のＳ２０１の処理を行って、送信が必要になったリクエストが属するグループに加入し、その後、Ｓ３０１からの処理を行う。
【００５３】
図７において、リクエスト受信部２０４が、所属グループに所属するクライアント装置２００のうち管理リングにおいて自装置の前のクライアント装置２００からリクエストを受信した場合（Ｓ４０１でＹＥＳ）に、送信権判定部２０５が、そのリクエストの送信権が自装置にあるか否かを判定する（Ｓ４０２）。
送信権判定部２０５は、Ｓ４０２の判定もシステム情報を参照して行う。
【００５４】
送信権が自装置にある場合（Ｓ４０２でＹＥＳ）は、送信権判定部２０５は、そのリクエストに対するレスポンスがレスポンスＤＢ２０９にキャッシュされているか否かを判定する（Ｓ４０３）。
【００５５】
レスポンスがレスポンスＤＢ２０９にキャッシュされている場合（Ｓ４０３でＹＥＳ）は、送信権判定部２０５はレスポンスＤＢ２０９からレスポンスを取得し、レスポンス送信部２０８がレスポンスを自装置の前のクライアント装置２００に送信する（Ｓ４０４）。
【００５６】
一方、レスポンスがレスポンスＤＢ２０９にキャッシュされていない場合（Ｓ３０４でＮＯ）は、リクエスト送信部２０６がリクエストをサーバ装置１００に送信する（Ｓ４０５）。
【００５７】
また、Ｓ４０２において自装置にリクエストの送信権がない場合は、リクエスト送信部２０６が、管理リングにおいて自装置の次のクライアント装置２００にリクエストを送信する（Ｓ４０６）。
【００５８】
図８において、レスポンス受信部２０７が、サーバ装置１００又は自装置の次のクライアント装置２００からレスポンスを受信した場合（Ｓ５０１でＹＥＳ）に、送信権判定部２０５が、受信したレスポンスのリクエストの発行元が自装置であるか否かを判断する（Ｓ５０２）。
【００５９】
自装置がリクエストの発行元である場合（Ｓ５０２）は、送信権判定部２０５は、レスポンスをレスポンスＤＢ２０９にキャッシュし（Ｓ５０３）、また、アプリケーションプログラム等にレスポンスを返却する。
【００６０】
一方、Ｓ５０２において自装置がリクエストの発行元でない場合（Ｓ５０２でＮＯ）は、自装置の前のクライアント装置２００に転送する（Ｓ５０４）。
【００６１】
次に、本実施の形態に係るサーバ装置１００及びクライアント装置２００の動作の詳細を説明する。
ここでは、以下の４つの段階におけるサーバ装置１００及びクライアント装置２００の動作例を説明する。
＜１＞サーバの立ち上げ段階
＜２＞クライアントがグループに加入する段階
＜３＞クライアントがグループを離脱する段階
＜４＞クライアントがリクエストを送信する段階
【００６２】
＜１＞サーバの立ち上げ段階
サーバ装置１００の立ち上げ時に、リクエストグルーピング部１０１によりリクエストをグルーピングする処理（図４のＳ１０１）が行われる。
リクエストグルーピング部１０１は、例えば、クラスタリング手法を用いてリクエストをグルーピングする。
具体的な処理の流れは、以下のとおりである。
１）親ページと、その子ページに対して、０から順番に番号を割り振る。
階層構造になっているＷｅｂページ（図１０）において、図１１に示すように、最も上のレイヤに位置するＨｏｍｅ画面と、その子ページであるＰａｇｅ１とＰａｇｅ２に対して、０から順番に番号を振る。
２）同様に、図１２に示すように、Ｐａｇｅ１と、Ｐａｇｅ２を親ページとする。
これらのページとその子ページに対して、同様の方法で０から順番に番号を振る。
３）上記の１）で付けた番号を一桁目、２）で付けた番号を二桁目とする。
以下の処理をすることで、各ページに値を付ける。
ａ）二つの番号を持っている場合
図１２で該当するページ：Ｐａｇｅ１、２
処理内容：二つの番号を結合する。
この結果、Ｐａｇｅ１は１０となり、Ｐａｇｅ２は２０となる。
ｂ）下位の桁を持っていない場合（ｅｘ：二桁目の情報を持っていない場合）
図１２で該当するページ：Ｈｏｍｅ画面
処理内容：下位の桁に０を付けた値とする。
この結果、Ｈｏｍｅ画面は００となる。
ｃ）上位の桁を持っていない場合（ｅｘ：一桁目の情報を持っていない場合）
図１２で該当するページ：Ｐａｇｅ３〜６
処理内容：親ページの上位の桁を割り当てて結合する。
Ｐａｇｅ３の場合、Ｐａｇｅ１の一桁目（親ページの上位の桁）である１と、Ｐａｇｅ３が持つ二桁目１を結合し、１１となる。
Ｐａｇｅ４の場合、同様の方法で１２となる。
ｄ）各ページに振られた番号を元に、クラスタリングする。
クラスタリング手法を用いて、クラスタリングする。
クラスタリング手法の一例として、Ｋ−ｍｅａｎｓ法がある。
上記の方法により、各ページに図１３に示す番号が付く。
【００６３】
また、リクエストグルーピング部１０１は、遷移情報を用いてリクエストをグルーピングしてもよい。
リクエストグルーピング部１０１は、あらかじめ遷移情報が得られている場合は、遷移情報を元にグルーピングする。
具体的には、リクエストグルーピング部１０１は、遷移回数が少ないリンクを境界としてグルーピングする。
【００６４】
また、リクエストグルーピング部１０１は、複数リクエスト単位のグルーピングを行ってもよい。
Ｗｅｂページと異なり、ページ間の関連性が示されていない場合は、複数リクエスト単位でグルーピングする。
例えば、システムで扱う１０個のリクエスト１〜１０を元に、２つのグループを作成するケースを考える。
この場合に、リクエストグルーピング部１０１は、各グループに属するリクエストの数が均等になるようにリクエストをグルーピングする。
例えば、リクエスト１〜５をグループ１とし、リクエスト６〜１０をグループ２とする。
そして、クライアントグルーピング部１０３は、リクエスト１〜５を送信するクライアント装置２００はグループ１に分類し、リクエスト６〜１０を送信するクライアント装置２００はグループ２に分類する。
【００６５】
また、リクエストグルーピング部１０１は、リクエストの送信権とクライアントを管理するリング（管理リング）に対して、リクエストを登録する。
本実施の形態では、送信権を持つクライアントのみが、リクエストをサーバに送信するものとする。
ただし、送信権を持つクライアントの探索に失敗したときなどは、例外的に、送信権を持っていなくてもクライアントがサーバにリクエストを送信できるものとする。
最終的に、図１４に示すように、送信権とクライアントが、管理用のリングに登録される。
【００６６】
ここでは、リクエストグルーピング部１０１がクラスタリング手法を用いてリクエストをグルーピングする場合の管理リングへの登録方法を説明する。
【００６７】
リクエストグルーピング部１０１がクラスタリング手法を用いてリクエストをグルーピングして、図９のグルーピング結果が得られたとする。
図９では、Ｈｏｍｅ画面とＰａｇｅ１、３、４がグループ１に属し、Ｐａｇｅ２、５、６がグループ２に属する。
Ｈｏｍｅ画面、Ｐａｇｅ１、３、４を閲覧するクライアントは、グループ１に分類される。
また、Ｐａｇｅ２、５、６を閲覧するクライアントは、グループ２に分類される。
リクエストグルーピング部１０１は、管理リングを、グループごとに作成する。
また、リクエストグルーピング部１０１は、グループごとに、リクエストを登録する。
グループ１に対応するページは、Ｈｏｍｅ画面、Ｐａｇｅ１、３、４である。
これらに対応するリクエストＲｅｑｕｅｓｔ  Ｈｏｍｅ、Ｒｅｑｕｅｓｔ１、３、４の送信権を、グループ１のリングで管理する。
同様に、グループ２のリングでＲｅｑｕｅｓｔ２、５、６の送信権を管理する。
グルーピング処理をしたのち、リクエストグルーピング部１０１は、リクエストを管理リングに登録する。
方法は、まず、各リクエストに対して、０〜２４−１の整数値からランダムに値を振る。
その後、対応するリング上の位置に、各リクエストを配置する。
管理リングには、図１５に示すように０〜２４−１の値が振られている。
リクエストグルーピング部１０１は、対応する位置にリクエストを配置する。
各ページに登録しているリクエストに、以下の値が与えられたとき、図１６に示すようにリクエストが登録される。
グループ１のリングに登録するリクエスト送信権
Ｒｅｑｕｅｓｔ  Ｈｏｍｅ：３
Ｒｅｑｕｅｓｔ１：１３
Ｒｅｑｕｅｓｔ３：９
Ｒｅｑｕｅｓｔ４：５
グループ２のリングに登録するリクエスト送信権
Ｒｅｑｕｅｓｔ２：１４
Ｒｅｑｕｅｓｔ５：１
Ｒｅｑｕｅｓｔ６：７
【００６８】
＜２＞クライアントがグループに加入する段階
グループに未加入のクライアント装置２００では、グループ加入要求部２０１がグループ加入要求をサーバ装置１００に送信する（図５のＳ２０１）。
システム情報ＤＢにデータが無い場合は、クライアント装置２００は、グループに未加入の状態である。
グループ加入要求部２０１は、例えば、ユーザの入力をトリガーに、グループ加入要求を送信する。
ユーザ入力の具体例として、以下がある。
１）ボタンの押し下げ
２）Ｗｅｂページシステム内のいずれかのページに対応するＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）の入力
３）ＵＲＬリンクのクリック
これらの処理があると、リクエストが生成され、リクエストが含まれるグループ加入要求がサーバ装置１００に送信される。
【００６９】
サーバ装置１００では、グループ加入要求に対して図１７に示す２つの方式のいずれかの方式よりグループ情報を送信する。
方法１では、サーバ装置１００のグループ情報送信部１０５がグループ加入要求に含まれるリクエストに対応するレスポンスとともに、グループ情報をクライアント装置２００に送信する。
方法２では、サーバ装置１００のグループ情報送信部１０５がグループ情報のみをクライアント装置２００に送信する。
グループ情報には具体的に以下の内容が含まれる。
リクエストやクライアントに付くＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）の範囲
グループが対象とするリクエスト
各リクエストのＩＤ
管理リングに含まれるクライアント１つ（存在しない場合、データを格納しない）
クライアントのＩＤ
【００７０】
リクエストグルーピング部１０１は、リングが管理する値（実施の形態では、０〜２４−１）の中からランダムにクライアントのＩＤを選択する。
また、クライアントが管理するリクエストの送信権は、管理リング上で前のクライアントから、現在のクライアントまでのものである。
数式では、以下の（１）式で示すことができる。
（１）式に示す３つのうち、いずれか１つを満たせば、リクエスト送信権をクライアントが管理する。
（１）式の中で、ＩＤｐｒｅは管理リング上で前のクライアントのＩＤである。
また、ＩＤｃｕｒは現在のクライアントのＩＤである。
また、ＩＤｒｉｇｈｔはリクエスト送信権のＩＤである。
また、ＲｇはグループＧに含まれるリクエストの集合、ｒｅｑはリクエストを示す。
また、Ｍａｘは管理リングが付けられるＩＤの最大値である。
本実施の形態では、Ｍａｘ＝２４−１である。
【００７１】
【数１】
0006324331.tif 000002
【００７２】
グループ情報受信部２０２は、サーバ装置１００から送信されたグループ情報を受信する。
グループ情報受信部２０２は、条件により異なる動作をする。
具体的な動作は、以下のとおりである。
【００７３】
条件１：グループ情報に含まれる、管理リング上のクライアントデータが存在しないとき（管理リングに、クライアントが１台しか登録されていないとき）
グループ情報受信部２０２は、システム情報ＤＢ２１０に、グループ情報に以下の情報を記述し、グループ情報をシステム情報ＤＢ２１０に保存する。
１）管理リング上で次のクライアント：加入したクライアント（自装置）
２）管理リング上で前のクライアント：加入したクライアント（自装置）
３）自装置が送信権を持つリクエスト：グループが対象とするリクエスト全て
【００７４】
条件２：条件１以外のとき
グループ情報受信部２０２は、クライアント探索部２０３に、グループ情報に含まれるクライアントＩＤを元に、管理リング上で次のクライアントと前のクライアントを探索する処理を依頼する。
【００７５】
クライアント探索部２０３は、クライアントＩＤを元に、管理リング上の次のクライアントと前のクライアントを探索する。
つまり、クライアント探索部２０３は、所属グループに所属するクライアントのうち管理リング上で自装置の前に位置するクライアントと次に位置するクライアントを探索する。
クライアント探索部２０３によるクライアント探索処理は、以下に示す条件によって、処理が異なる。
なお、システムに加入したクライアント（自装置）のＩＤを、ＩＤｓｅａｒｃｈとする。
【００７６】
条件Ａ：以下の式（２）の２つの式のうちのいずれかの式を満たす場合
システム情報書き換え部２１１が、システム情報ＤＢ２１０のシステム情報を書き換える。
以下において、ＩＤｐｒｅはシステムに加入したクライアント（自装置）の前のクライアント、ＩＤｓｕｃはシステムに加入したクライアント（自装置）の次のクライアントである。
具体的な動作は、以下のとおりである。
・ＩＤｐｒｅのクライアントではグループ加入要求部２０１が、管理リング上の次のクライアントとして、加入したばかりのクライアントを登録する。
・ＩＤｓｕｃのクライアントではグループ加入要求部２０１が、管理リング上の前のクライアントとして、加入したばかりのクライアントを登録する。
その後、ＩＤｓｕｃのクライアントのグループ加入要求部２０１は、システム情報ＤＢ２１０で管理する送信権のうち、（１）式を満たさなくなった送信権を削除する。
・ＩＤｓｅａｒｃｈのクライアントではグループ加入要求部２０１が、管理リング上の前のクライアントとしてＩＤｐｒｅのクライアント、管理リング上の後のクライアントとしてＩＤｓｕｃのクライアントを登録する。
また、ＩＤｓｅａｒｃｈのクライアントのグループ加入要求部２０１は、システム情報ＤＢ２１０に、（１）式を満たすリクエストを登録する。
【００７７】
条件Ｂ：以下の式（２）の２つの式のうちのいずれも満たさない場合
管理リング上の次のクライアント（ＩＤｓｕｃのクライアント）に探索を委ねる。
【００７８】
【数２】
0006324331.tif 000003
【００７９】
システム情報ＤＢ２１０が管理するシステム情報は、以下のとおりである。
１）グループの情報
・リクエストやクライアントに付くＩＤの範囲
・グループが対象とするリクエスト
・各リクエストのＩＤ
・管理リングに含まれるクライアント１つ（存在しない場合、データを格納しない）
・クライアントのＩＤ
２）管理リング上で次のクライアント
３）管理リング上で前のクライアント
４）自装置が送信権を持っているリクエスト
【００８０】
クライアントがグループに加入する段階の動作を具体例を用いて説明する。
ここでは、クライアント装置２００においてユーザがＵＲＬを入力することで、グループ加入要求部２０１がサーバ装置１００にグループ加入要求を送信するものとする。
また、このときグループ加入要求に含まれるリクエストは、Ｒｅｑｕｅｓｔ  Ｈｏｍｅであるとする。
また、サーバ装置１００では、図１７の方法２にてクライアント装置２００のシステム加入を登録するものとする。
また、グループに加入するクライアント装置２００を、クライアント１とする。
【００８１】
グループ加入要求がサーバ装置１００に送信されると、グループ情報送信部１０５がグループ情報を生成し、グループ加入要求の送信元のクライアント装置２００にグループ情報を送信する。
クライアント装置２００がサーバ装置１００に送ったリクエストは、Ｒｅｑｕｅｓｔ  Ｈｏｍｅであるため、Ｒｅｑｕｅｓｔ  Ｈｏｍｅが登録されているグループ１のグループ情報をクライアント装置２００に送信する。
グループ情報で通知する内容は、具体的には以下のとおりである。
上記の（１）式２番目の条件式を満たすことから、クライアント１は、Ｒｅｑｕｅｓｔ
Ｈｏｍｅ、Ｒｅｑｕｅｓｔ１、Ｒｅｑｕｅｓｔ３、Ｒｅｑｕｅｓｔ４の送信権を保持する。
また、クライアント１のＩＤは、０〜２４−１の中からランダムに選択された結果、６である。
グループ情報を受信したグループ情報受信部２０２は、以下の情報をシステム情報ＤＢに保存する。
１）グループ情報
・リクエストやクライアントに付くＩＤの範囲：０〜２４−１
・グループ１が対象とするリクエスト：Ｒｅｑｕｅｓｔ  Ｈｏｍｅ、Ｒｅｑｕｅｓｔ１、３、４
・各リクエストのＩＤ：
Ｒｅｑｕｅｓｔ  Ｈｏｍｅ：３
Ｒｅｑｕｅｓｔ１：１３
Ｒｅｑｕｅｓｔ３：９
Ｒｅｑｕｅｓｔ４：５
・管理リング上のクライアント：なし
・クライアントのＩＤ：６
２）管理リング上で次のクライアント：クライアント１
３）管理リング上で前のクライアント：クライアント１
４）自装置が送信権を持っているリクエスト：Ｒｅｑｕｅｓｔ  Ｈｏｍｅ、  Ｒｅｑｕｅｓｔ１、３、４
【００８２】
クライアント２からグループ加入要求が送信された場合は、サーバ装置１００はクライアント２も同様の方法によりグループに登録する。
クライアント２も、クライアント１と同様に、Ｒｅｑｕｅｓｔ  Ｈｏｍｅが含まれるグループ加入要求が送信された場合は、グループ情報送信部１０５から送信されるグループ情報は以下のようになる。
・リクエストやクライアントに付くＩＤの範囲：０〜２４−１
・グループ１が対象とするリクエスト：Ｒｅｑｕｅｓｔ  Ｈｏｍｅ、Ｒｅｑｕｅｓｔ１、３、４
・各リクエストのＩＤ：
Ｒｅｑｕｅｓｔ  Ｈｏｍｅ：３
Ｒｅｑｕｅｓｔ１：１３
Ｒｅｑｕｅｓｔ３：９
Ｒｅｑｕｅｓｔ４：５
・管理リング上のクライアント：クライアント１
・クライアントのＩＤ：１１
このとき、クライアント２のクライアント探索部２０３が、次のクライアントと前のクライアントを探索する。
探索の結果、次のクライアントも、前のクライアントもクライアント１であることがわかる。
その後、クライアント１及びクライアント２のシステム情報書き換え部２１１にて、それぞれのシステム情報を書き換える。
これにより、クライアント１とクライアント２のシステム情報ＤＢは、以下のように書き換わる。
α）クライアント１のシステム情報
１）グループ情報
・リクエストやクライアントに付くＩＤの範囲：０〜２４−１
・グループ１が対象とするリクエスト：Ｒｅｑｕｅｓｔ  Ｈｏｍｅ、Ｒｅｑｕｅｓｔ１、３、４
・各リクエストのＩＤ：
Ｒｅｑｕｅｓｔ  Ｈｏｍｅ：３
Ｒｅｑｕｅｓｔ１：１３
Ｒｅｑｕｅｓｔ３：９
Ｒｅｑｕｅｓｔ４：５
・管理リング上のクライアント：クライアント１
・クライアントのＩＤ：１１
２）管理リング上で次のクライアント：クライアント２
３）管理リング上で前のクライアント：クライアント２
４）自装置が送信権を持っているリクエスト：Ｒｅｑｕｅｓｔ  Ｈｏｍｅ、Ｒｅｑｕｅｓｔ１、４
β）クライアント２のシステム情報
１）グループ情報
・リクエストやクライアントに付くＩＤの範囲：０〜２４−１
・グループ１が対象とするリクエスト：Ｒｅｑｕｅｓｔ  Ｈｏｍｅ、  Ｒｅｑｕｅｓｔ１、３、４
・各リクエストのＩＤ：
Ｒｅｑｕｅｓｔ  Ｈｏｍｅ：３
Ｒｅｑｕｅｓｔ１：１３
Ｒｅｑｕｅｓｔ３：９
Ｒｅｑｕｅｓｔ４：５
・管理リング上のクライアント：クライアント１
・クライアントのＩＤ：１１
２）管理リング上で次のクライアント：クライアント１
３）管理リング上で前のクライアント：クライアント１
４）自装置が送信権を持っているリクエスト：Ｒｅｑｕｅｓｔ３
なお、この時点での管理リングで管理するクライアントと、リクエスト送信権の関係を、図１８に示す。
【００８３】
＜３＞クライアントがグループを離脱する段階
所属グループに含まれないクライアントリクエスト（以下、グループ外クライアントリクエストともいう）のサーバ装置１００への送信が必要になった場合に、クライアントは、所属グループから離脱する。
そして、当該クライアントでは、グループ加入要求部２０１が、グループ外クライアントリクエストが含まれるグループ加入要求をサーバ装置１００に送信して、サーバ装置１００に、グループ外クライアントリクエストが含まれるグループへの加入を要求する。
クライアントが所属グループから離脱するときは、離脱通知部２１２が、管理リング上で次の位置にあるクライアントと、前の位置にあるクライアントに離脱する旨を伝え、その後、所属グループから離脱する。
離脱通知部２１２は、具体的には、以下のように動作する。
まず、離脱通知部２１２は、システム情報から、管理リング上で次の位置にあるクライアントの情報を取得する。
その後、離脱通知部２１２は、次の位置にあるクライアントに対して、所属グループを離脱する旨を通知する。
離脱通知部２１２は、以下を通知する。
１）自装置に送信権があるリクエスト
２）管理リング上で自装置の前に位置するクライアントの情報
また、離脱通知部２１２は、システム情報ＤＢから、管理リング上で前の位置にあるクライアントの情報を取得する。
その後、離脱通知部２１２は、前の位置にあるクライアントに対して、所属グループを離脱する旨を通知する。
離脱通知部２１２は、以下を通知する。
１）管理リング上で自装置の次に位置するクライアントの情報
【００８４】
また、所属グループを離脱するクライアントから通知を受けたクライアントでは、システム情報書き換え部２１１が、所属グループを離脱するクライアントから送られてきた情報を元に、システム情報ＤＢ２１０のシステム情報を書き換える。
具体的には、離脱するクライアントの次の位置にあるクライアントでは、システム情報書き換え部２１１が、離脱するクライアントからの情報で通知された送信権をシステム情報に追加する。
また、システム情報に記述されている前の位置のクライアントを、離脱するクライアントからの情報で通知された前の位置のクライアントに書き換える。
また、離脱するクライアントの前の位置にあるクライアントでは、システム情報書き換え部２１１が、システム情報に記述されている次の位置のクライアントを、離脱するクライアントからの情報で通知された次の位置のクライアントに書き換える。
【００８５】
ここでは、図１８に示す状態からクライアント１がグループ１から離脱する例を示す。
グループ１を離脱するために、クライアント１では、離脱通知部２１２が、管理リング上で次の位置にあるクライアントであるクライアント２に、グループ１を離脱する旨を伝える。
具体的には、クライアント１の離脱通知部２１２は、次の位置にあるクライアント（クライアント２）に以下の情報を伝える。
・自装置に送信権があるリクエスト：Ｒｅｑｕｅｓｔ  Ｈｏｍｅ、Ｒｅｑｕｅｓｔ１、４
・管理リング上で前のクライアントの情報：クライアント２
クライアント１の離脱に伴い、クライアント２では、システム情報書き換え部２１１が、クライアント２が保持するシステム情報を、以下のように書き換える。
以下では、Ｂｅｆｏｒｅが書き換え前、Ａｆｔｅｒが書き換え後である。
・リクエストやクライアントに付くＩＤの範囲：０〜２４−１
・グループ１が対象とするリクエスト：Ｒｅｑｕｅｓｔ  Ｈｏｍｅ、  Ｒｅｑｕｅｓｔ１、３、４
・各リクエストのＩＤ：
Ｒｅｑｕｅｓｔ  Ｈｏｍｅ：３
Ｒｅｑｕｅｓｔ１：１３
Ｒｅｑｕｅｓｔ３：９
Ｒｅｑｕｅｓｔ４：５
・管理リング上のクライアント：クライアント１
・クライアントのＩＤ：１１
・管理リング上で次のクライアント：クライアント１
・管理リング上で前のクライアント：クライアント１（Ｂｅｆｏｒｅ）⇒クライアント２（Ａｆｔｅｒ）
・自装置が送信権を持っているリクエスト：  Ｒｅｑｕｅｓｔ３（Ｂｅｆｏｒｅ）⇒Ｒｅｑｕｅｓｔ  Ｈｏｍｅ、Ｒｅｑｕｅｓｔ１、３、４（Ａｆｔｅｒ）
【００８６】
また、クライアント１の離脱通知部２１２は、管理リング上で前の位置にあるクライアントであるクライアント２に、グループ１を離脱する旨を伝える。
具体的には、クライアント１の離脱通知部２１２は、前の位置にあるクライアント（クライアント２）に以下の情報を伝える。
・管理リング上で次のクライアントの情報：クライアント２
この結果、クライアント２のシステム情報は、以下のように書き換わる。
・リクエストやクライアントに付くＩＤの範囲：０〜２４−１
・グループ１が対象とするリクエスト：Ｒｅｑｕｅｓｔ  Ｈｏｍｅ、Ｒｅｑｕｅｓｔ１、３、４
・各リクエストのＩＤ：
Ｒｅｑｕｅｓｔ  Ｈｏｍｅ：３
Ｒｅｑｕｅｓｔ１：１３
Ｒｅｑｕｅｓｔ３：９
Ｒｅｑｕｅｓｔ４：５
・管理リング上のクライアント：クライアント１
・クライアントのＩＤ：１１
・管理リング上で次のクライアント：クライアント１（Ｂｅｆｏｒｅ）⇒クライアント２（Ａｆｔｅｒ）
・管理リング上で前のクライアント：クライアント２
・自装置が送信権を持っているリクエスト：  Ｒｅｑｕｅｓｔ  Ｈｏｍｅ、Ｒｅｑｕｅｓｔ１、３、４
【００８７】
＜４＞クライアントがリクエストを送信する段階
各クライアントは、複数のクライアントを経由して、送信権を持つクライアントを探索する。
具体的には、各クライアントが持っている、管理リング上で次のクライアントの情報を元に、クライアントを経由して送信権を持つクライアントを探索する。
【００８８】
各クライアントでは、リクエストの送信が必要になった場合、または、他のクライアントからリクエストを受信した場合に、送信権判定部２０５が、自装置が当該リクエストの送信権を保持しているかどうかを判定する。
自装置が当該リクエストの送信権を保持している場合は、送信権判定部２０５は、レスポンスＤＢ２０９にレスポンスがあるかどうかを確認する。
レスポンスＤＢ２０９は、レスポンスデータを保存するＤＢである。
レスポンスＤＢは、図１９に示すように、各リクエストに対応するレスポンスと、その期限が示されている。
自装置がリクエストの送信権を保持している場合であって、レスポンスＤＢ２０９にレスポンスがない場合は、リクエスト送信部２０６が、サーバにリクエストを送信する。
サーバからレスポンスを受信した場合に、リクエストが他のクライアントからのリクエストであれば、レスポンス送信部２０８が、管理リング上で前の位置にあるクライアントにレスポンスを送信する。
一方、自装置がリクエストの送信権を保持している場合であって、レスポンスＤＢ２０９にレスポンスがある場合は、送信権判定部２０５は、レスポンスＤＢ２０９から、リクエストに対応するレスポンスを取得する。
リクエストが他のクライアントからのリクエストであれば、レスポンス送信部２０８が、管理リング上で前の位置にあるクライアントにレスポンスを送信する。
自装置がリクエストの送信権を保持していない場合は、送信権判定部２０５は、システム情報ＤＢ２１０から管理リング上で次のクライアントを取得する。
その後、リクエスト送信部２０６が、次のクライアントにリクエストを送信する。
【００８９】
また、クライアントにおいて、所属グループが対象としないリクエスト（グループ外クライアントリクエスト）の送信が必要になった場合は、前述したように、所属グループを離脱した後、そのリクエスト（グループ外クライアントリクエスト）に対応するグループに加入する。
【００９０】
ここでは、図１８に示すクライアント１においてＲｅｑｕｅｓｔ４の送信が必要になった例を示す。
まず、クライアント１の送信権判定部２０５が、システム情報に、Ｒｅｑｕｅｓｔ４が含まれるかどうか調べる。
つまり、Ｒｅｑｕｅｓｔ４が、グループ１が対象としているリクエストであるかどうかを調べる。
この場合、Ｒｅｑｕｅｓｔ４がシステム情報に含まれる。
また、送信権判定部２０５は、システム情報を調べ、自装置（クライアント１）にＲｅｑｕｅｓｔ４の送信権があるかどうかを判定する。
この場合、自装置（クライアント１）にはＲｅｑｕｅｓｔ４の送信権がある。
次に、送信権判定部２０５は、レスポンスＤＢ２０９を調べ、Ｒｅｑｕｅｓｔ４に対応するレスポンスデータの存在を調べる。
図１９に、初期状態のレスポンスＤＢ２０９の中身を示す。
ここでは、Ｒｅｑｕｅｓｔ４に対応するレスポンスデータがレスポンスＤＢ２０９に格納されていないため、リクエスト送信部２０６が、Ｒｅｑｕｅｓｔ４をサーバに送信する。
サーバでは、リクエスト受信部１０６がＲｅｑｕｅｓｔ４を受信し、レスポンス生成部１０７がＲｅｑｕｅｓｔ４に対応するレスポンスを生成し、レスポンス送信部１０８がレスポンスをクライアント１に送信する。
クライアント１では、レスポンス受信部２０７が、サーバから送信されたレスポンスを受信する。
そして、送信権判定部２０５が、レスポンスＤＢ２０９にレスポンスを格納する。
このとき、レスポンスに、データの保存期間を示す情報が付いているならば、その情報とともにレスポンスをレスポンスＤＢ２０９に格納する。
Ｒｅｑｕｅｓｔ４のレスポンスを、レスポンスＤＢ２０９に書き込んだ結果を図２０に示す。
【００９１】
上記処理の後、クライアント２がＲｅｑｕｅｓｔ４を送信する処理の流れを説明する。
クライアント２の送信権判定部２０５が、システム情報に、Ｒｅｑｕｅｓｔ４が含まれるかどうか調べる。
つまり、Ｒｅｑｕｅｓｔ４が、グループ１が対象としているリクエストであるかどうかを調べる。
この場合、Ｒｅｑｕｅｓｔ４がシステム情報に含まれる。
また、送信権判定部２０５は、システム情報を調べ、自装置（クライアント２）にＲｅｑｕｅｓｔ４の送信権があるかどうかを判定する。
自装置（クライアント２）にはＲｅｑｕｅｓｔ４の送信権がないため、管理リング上で次のクライアント（クライアント１）にＲｅｑｕｅｓｔ４を送信する。
【００９２】
クライアント１では、リクエスト受信部２０４が、クライアント２から送信されたＲｅｑｕｅｓｔ４を受信し、送信権判定部２０５が、システム情報を参照して、自装置（クライアント１）にＲｅｑｕｅｓｔ４の送信権があるかどうかを調べる。
クライアント１はＲｅｑｕｅｓｔ４の送信権を保持しており、また、レスポンスＤＢ２０９には、Ｒｅｑｕｅｓｔ４に対応するレスポンスのデータがある。
レスポンスの有効期限内であれば、レスポンス送信部２０８は、レスポンスＤＢ２０９内のレスポンスを前のクライアントであるクライアント２に送信する。
【００９３】
また、クライアント１が、Ｒｅｑｕｅｓｔ５を送信する例を説明する。
Ｒｅｑｕｅｓｔ５は、グループ１が対象とするリクエストではない。
このため、クライアント１の離脱通知部２１２が、グループ１からの離脱を通知する。
そして、クライアント１のグループ加入要求部２０１がＲｅｑｕｅｓｔ５を含むグループ加入要求部をサーバに送信することで、クライアント１がグループ２に加入する。
図１７の方法１の場合は、サーバがＲｅｑｕｅｓｔ５のレスポンスをグループ２のグループ情報とともにクライアント１に送信する。
一方、図１７の方法２の場合は、サーバはグループ２のグループ情報をクライアント１に送信する。
クライアント１は、グループ情報に従って、グループ２の管理リング上で次の位置にあるクライアントを特定し、特定したクライアントにＲｅｑｕｅｓｔ５を送信する。
以降の処理は、グループ１での処理と同様である。
【００９４】
＊＊＊効果の説明＊＊＊
特許文献１及び特許文献２に示す、物理的なネットワーク構成を元にクライアントのグループ分割を行う方法では、各グループから、全てのリクエストが重複してサーバに送信される可能性がある（図２３）。
一方、本実施の形態では、クライアントリクエストを元にクライアントのグループ分割を行う、ため、リクエストが重複してサーバ装置に送信されることがない（図２１）。
クライアントから、全てのリクエスト（Ｒｅｑｕｅｓｔ  Ｈｏｍｅ、１〜６）が送信される場合、上記手法を用いることにより、特許文献１及び特許文献２の方法と比べてサーバの処理負荷を５０％削減できる。
【００９５】
＊＊＊ハードウェア構成の説明＊＊＊
【００９６】
最後に、サーバ装置１００及びクライアント装置２００のハードウェア構成例を図２２を参照して説明する。
サーバ装置１００及びクライアント装置２００はコンピュータである。
サーバ装置１００及びクライアント装置２００は、プロセッサ９０１、補助記憶装置９０２、メモリ９０３、通信装置９０４、入力インタフェース９０５、ディスプレイインタフェース９０６といったハードウェアを備える。
プロセッサ９０１は、信号線９１０を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インタフェース９０５は、入力装置９０７に接続されている。
ディスプレイインタフェース９０６は、ディスプレイ９０８に接続されている。
【００９７】
プロセッサ９０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
プロセッサ９０１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
補助記憶装置９０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。
メモリ９０３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、データを受信するレシーバー９０４１及びデータを送信するトランスミッター９０４２を含む。
通信装置９０４は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
入力インタフェース９０５は、入力装置９０７のケーブル９１１が接続されるポートである。
入力インタフェース９０５は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子である。
ディスプレイインタフェース９０６は、ディスプレイ９０８のケーブル９１２が接続されるポートである。
ディスプレイインタフェース９０６は、例えば、ＵＳＢ端子又はＨＤＭＩ（登録商標）（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子である。
入力装置９０７は、例えば、マウス、キーボード又はタッチパネルである。
ディスプレイ９０８は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００９８】
補助記憶装置９０２には、図２に示す要素及び図３に示す要素（但し、「〜記憶部」を除く）（これらをまとめて「部」と表記する）の機能を実現するプログラムが記憶されている。
このプログラムは、メモリ９０３にロードされ、プロセッサ９０１に読み込まれ、プロセッサ９０１によって実行される。
更に、補助記憶装置９０２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がメモリ９０３にロードされ、プロセッサ９０１はＯＳを実行しながら、「部」の機能を実現するプログラムを実行する。
図２２では、１つのプロセッサ９０１が図示されているが、サーバ装置１００及びクライアント装置２００が複数のプロセッサ９０１を備えていてもよい。
そして、複数のプロセッサ９０１が「部」の機能を実現するプログラムを連携して実行してもよい。
また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ９０３、補助記憶装置９０２、又は、プロセッサ９０１内のレジスタ又はキャッシュメモリに記憶される。
【００９９】
また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
「回路」は、プロセッサ９０１だけでなく、ロジックＩＣ又はＧＡ（Ｇａｔｅ  Ａｒｒａｙ）又はＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）又はＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ
Ａｒｒａｙ）といった他の種類の処理回路をも包含する概念である。
【符号の説明】
【０１００】
１００  サーバ装置、１０１  リクエストグルーピング部、１０２  グループ加入要求受信部、１０３  クライアントグルーピング部、１０４  組合せ記憶部、１０５  グループ情報送信部、１０６  リクエスト受信部、１０７  レスポンス生成部、１０８  レスポンス送信部、２００  クライアント装置、２０１  グループ加入要求部、２０２  グループ情報受信部、２０３  クライアント探索部、２０４  リクエスト受信部、２０５  送信権判定部、２０６  リクエスト送信部、２０７  レスポンス受信部、２０８  レスポンス送信部、２０９  レスポンスＤＢ、２１０  システム情報ＤＢ、２１１  システム情報書き換え部、２１２  離脱通知部。
【図１】
0006324331.tif 000004
【図２】
0006324331.tif 000005
【図３】
0006324331.tif 000006
【図４】
0006324331.tif 000007
【図５】
0006324331.tif 000008
【図６】
0006324331.tif 000009
【図７】
0006324331.tif 000010
【図８】
0006324331.tif 000011
【図９】
0006324331.tif 000012
【図１０】
0006324331.tif 000013
【図１１】
0006324331.tif 000014
【図１２】
0006324331.tif 000015
【図１３】
0006324331.tif 000016
【図１４】
0006324331.tif 000017
【図１５】
0006324331.tif 000018
【図１６】
0006324331.tif 000019
【図１７】
0006324331.tif 000020
【図１８】
0006324331.tif 000021
【図１９】
0006324331.tif 000022
【図２０】
0006324331.tif 000023
【図２１】
0006324331.tif 000024
【図２２】
0006324331.tif 000025
【図２３】
0006324331.tif 000026
【図２４】
0006324331.tif 000027