JP6324331B2 - サーバ装置及びクライアント装置及びグルーピング方法及びグルーピングプログラム - Google Patents
サーバ装置及びクライアント装置及びグルーピング方法及びグルーピングプログラム Download PDFInfo
- Publication number
- JP6324331B2 JP6324331B2 JP2015028323A JP2015028323A JP6324331B2 JP 6324331 B2 JP6324331 B2 JP 6324331B2 JP 2015028323 A JP2015028323 A JP 2015028323A JP 2015028323 A JP2015028323 A JP 2015028323A JP 6324331 B2 JP6324331 B2 JP 6324331B2
- Authority
- JP
- Japan
- Prior art keywords
- client
- request
- group
- grouping
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Description
図24に従来のシステムを示す。
図24は、以下の2つの動作を示したものである。
1)クライアント1、2、4が同一のリクエストRequestAをサーバに送信する。2)クライアント3がRequestBをサーバに送信する。
従来のシステムでは、同一のリクエストがクライアントから送られてきた場合、サーバはリクエストを個別に扱う。
重複するリクエストを処理するため、サーバが無駄な計算をしている問題があった。
図24の例では、サーバはRequestAに対応する処理を3回行い、個々のクライアントにレスポンスを返却する。
このように、サーバは同じ処理を3回重複して行っている。
サーバへのアクセス数を削減するための技術として、特許文献1に開示の技術や特許文献2に開示の技術がある。
これらの文献の技術は、複数のクライアントの中から決められた代表クライアントのみがサーバと通信を行うという技術である。
具体的には、まず、クライアントを複数のグループに分割する。
グループの分割は、物理的なネットワークの構成を元に行う。
その後、グループごとにサーバと通信をする代表クライアントを決める。
代表クライアント以外のクライアントは、代表クライアントを経由してサーバと通信をする。
しかしながら、物理的なネットワーク構成とリクエストの共通性との間に必ずしも相関があるわけでない。
つまり、物理的に近接する位置に配置されているクライアントであっても送信するリクエストが共通するとは限らず、物理的に離れているクライアントであっても送信するリクエストが共通する場合もある。
このように、特許文献1及び特許文献2に係るグルーピング方法は、必ずしも適切なグルーピング方法とは限らない。
クライアントリクエストのグルーピングを行うリクエストグルーピング部と、
前記リクエストグルーピング部によるグルーピングにより得られたクライアントリクエストのグループをグルーピングの単位にして、クライアント装置のグルーピングを行うクライアントグルーピング部とを有する。
本実施の形態では、物理的なネットワークの構成を元にグルーピングする方法と比べて、サーバ装置が受信するクライアントリクエストの個数が少なくなるグルーピング方法を示す。
特許文献1及び特許文献2に示すように物理的なネットワーク構成を元に複数のクライアント装置のグループ分割を行うと、図23に示すように、各クライアントグループから、全てのクライアントリクエストについて重複が発生する可能性がある。
本実施の形態では、クライアントリクエストのグループをグルーピングの単位にしてクライアント装置のグルーピングを行う。
クライアントリクエストのグループ構成を用いたクライアント装置のグルーピングの方が、サーバ装置が受信するリクエスト数が少なくなる。
本実施の形態では、図1に例示するように、サーバ装置100に複数のクライアント装置200が接続されているサーバ−クライアントシステムを想定する。
図3では、3台のクライアント装置200が接続されているが、クライアント装置200は3台に限らない。
以下では、クライアント装置200の台数は6台とする。
また、6台のクライアント装置200には、No.1〜6までのクライアント装置200を識別する番号が振られているものとする。
また、サーバ装置100の台数は1台であるとする。
Webページは、複数のページの集合である。
各ページは、別のページと、リンクで関連付けられている。
リンクで関連付けられた別のページを閲覧するとき、ページの表示に使用するデータの要求(リクエスト)がクライアント装置200からサーバ装置100に送信される。
クライアント装置200では、サーバ装置100から、ページのデータが格納されたレスポンスを受け取ることで、ページを表示することができる。
図10に示すように、本実施の形態に係るWebページは、Home画面と、Page1〜6からなる子階層構造となっている。
例えば、クライアント装置200がPage2を閲覧するとき、Page2を閲覧するためのクライアントリクエストであるRequest2を送信する。
クライアント装置200はRequest2に対応するResponseを受け取ることで、Page2の情報を得るものとする。
Pageの番号と、Pageに対応するリクエストの番号は一致するものとする。
また、図10のリンクは、遷移できるページの関係を示す。
Home画面からはPage1とPage2に遷移できるが、その他のページには遷移できない。
また、以下では、グルーピングするときに用いるグループの数を2とする。
つまり、本実施の形態では、サーバ装置100は、Webページを閲覧するためのリクエスト(RequestHome、Request1〜Request6)を2つのグループにグルーピングし、リクエストのグループをグルーピングの単位にしてクライアント装置200のグルーピングを行う。
DHTで用いるリングのサイズを24とする。
DHTを用いた通信方法は一例であり、特許文献1や特許文献2の方法を用いて通信しても構わない。
より具体的には、リクエストグルーピング部101は、Webページの閲覧のためのリクエストでは、リクエストが対象とするWebページの階層構造を解析してリクエストのグルーピングを行う。
なお、以下では、Webページの閲覧のためのリクエストのグルーピングを、便宜上、Webページのグルーピングともいう。
また、リクエストグルーピング部101は、Webページに無関係のリクエストでは、各グループのリクエストの個数が均等になるようにリクエストのグルーピングを行う。
グループ加入要求は、送信元のクライアント装置200をいずれかのグループに加入させるよう要求するメッセージである。
グループ加入要求にはクライアントリクエストが含まれている。
クライアントグルーピング部103は、グループ加入要求に含まれるクライアントリクエストが属するグループに、グループ加入要求の送信元のクライアント装置を所属させる。
グループ情報は、リクエストグルーピング部101によるグルーピング結果とクライアントグルーピング部103によるグルーピング結果とに基づき、クライアントリクエストのグループごとに、グループに含まれるクライアントリクエストとグループに所属するクライアント装置とを通知する情報である。
グループ情報送信部105は、このようなグループ情報を、グループに所属するクライアント装置200に送信する。
前述のように、グループ加入要求にはクライアントリクエストが含まれる。
グループ加入要求部201は、クライアント装置200がいずれのグループにも所属していない場合にグループ加入要求をサーバ装置100に送信する。
また、グループ加入要求部201は、後述する離脱通知部212により所属グループに所属している他のクライアント装置200に所属グループからの離脱が通知された後に、サーバ装置100にグループ加入要求を送信する。
なお、所属グループとは、サーバ装置100によって指定された自装置が所属するグループである。
管理リンクについては後述する。
より具体的には、送信権判定部205は、自装置においてクライアントリクエストの送信が必要になった場合に、クライアントリクエストの送信権が自装置にあれば、受信クライアントリクエストに対するレスポンスがレスポンスDB209にキャッシュされているか否かを判定する。
また、送信権判定部205は、リクエスト受信部204により受信された受信クライアントリクエストの送信権が自装置にあるか否かを判定し、受信クライアントリクエストの送信権が自装置にある場合に、受信クライアントリクエストに対するレスポンスがレスポンスDB209にキャッシュされているか否かを判定する。
また、リクエスト送信部206は、送信権判定部205によりクライアントリクエストの送信権が自装置にないと判定された場合に、所属グループに所属している他のクライアント装置200にクライアントリクエストを送信する。
つまり、クライアントリクエストの送信権が自装置にある場合は、レスポンス受信部207はサーバ装置100からレスポンスを受信する。
一方、クライアントリクエストの送信権が自装置にない場合は、レスポンス受信部207は他のクライアント装置200からレスポンスを受信する。
例えば、所属グループに属する他のクライアント装置200からクライアントリクエストを受信した場合に、送信権判定部205によりクライアントリクエストの送信権が自装置にあり、クライアントリクエストに対するレスポンスがレスポンスDB209にキャッシュされていると判定された場合に、レスポンスDB209にキャッシュされているレスポンスを、クライアントリクエストの送信元のクライアント装置200に送信する。
また、レスポンス送信部208は、レスポンス受信部207により受信されたレスポンスを、所属グループに属する他のクライアント装置200に送信する。
システム情報は、所属グループに関する情報である。
より具体手的には、システム情報は、所属グループが対象とするクライアントリクエスト、所属グループに含まれるクライアント装置200のうち管理リングにおいて自装置の前に位置するクライアント装置200及び後ろに位置するクライアント装置200等の情報である。
次に、サーバ装置100及びクライアント装置200の動作の概要を説明する。
図4は、サーバ装置100の動作の概要を説明するフローチャートである。
図4は、本願に係るグルーピング方法及びグルーピングプログラムを示している。
図5〜図8は、クライアント装置200の動作の概要を説明するフローチャートである。
まず、図4を参照してサーバ装置100の動作の概要を説明する。
クライアントリクエストのグルーピング手法の詳細は後述する。
また、このとき、組合せ記憶部104は、グループごとに、グループとクライアントリクエストとの組み合せを記憶する。
前述したように、グループ加入要求には、いずれかのクライアントリクエストが含まれており、グループ加入要求受信部102は、グループ加入要求に含まれるクライアントリクエストが所属するグループにグループ加入要求の送信元のクライアント装置200を所属させる。
図5は、クライアント装置200がグループに加入する際の動作例を示す。
図6は、クライアント装置200においてリクエストの送信が必要になった際の動作例を示す。
図7は、クライアント装置200が他のクライアント装置200からリクエストを受信した際の動作例を示す。
図8は、クライアント装置200がレスポンスを受信した際の動作例を示す。
以下、図5〜図8の順に、クライアント装置200の動作の概要を説明する。
より具体的には、システム情報書き換え部211は、所属グループが対象とするクライアントリクエスト、所属グループに含まれるクライアント装置200のうち自装置の前に位置するクライアント装置200及び後ろに位置するクライアント装置200等の情報をシステム情報DB210にシステム情報として書き込む。
送信権判定部205は、システム情報DB210内のシステム情報を参照してS302の判定を行う。
送信権判定部205は、S303の判定もシステム情報を参照して行う。
そして、送信権判定部205は、取得したレスポンスを、例えばアプリケーションプログラムに返却する。
その後、図5のS201の処理を行って、送信が必要になったリクエストが属するグループに加入し、その後、S301からの処理を行う。
送信権判定部205は、S402の判定もシステム情報を参照して行う。
ここでは、以下の4つの段階におけるサーバ装置100及びクライアント装置200の動作例を説明する。
<1>サーバの立ち上げ段階
<2>クライアントがグループに加入する段階
<3>クライアントがグループを離脱する段階
<4>クライアントがリクエストを送信する段階
サーバ装置100の立ち上げ時に、リクエストグルーピング部101によりリクエストをグルーピングする処理(図4のS101)が行われる。
リクエストグルーピング部101は、例えば、クラスタリング手法を用いてリクエストをグルーピングする。
具体的な処理の流れは、以下のとおりである。
1)親ページと、その子ページに対して、0から順番に番号を割り振る。
階層構造になっているWebページ(図10)において、図11に示すように、最も上のレイヤに位置するHome画面と、その子ページであるPage1とPage2に対して、0から順番に番号を振る。
2)同様に、図12に示すように、Page1と、Page2を親ページとする。
これらのページとその子ページに対して、同様の方法で0から順番に番号を振る。
3)上記の1)で付けた番号を一桁目、2)で付けた番号を二桁目とする。
以下の処理をすることで、各ページに値を付ける。
a)二つの番号を持っている場合
図12で該当するページ:Page1、2
処理内容:二つの番号を結合する。
この結果、Page1は10となり、Page2は20となる。
b)下位の桁を持っていない場合(ex:二桁目の情報を持っていない場合)
図12で該当するページ:Home画面
処理内容:下位の桁に0を付けた値とする。
この結果、Home画面は00となる。
c)上位の桁を持っていない場合(ex:一桁目の情報を持っていない場合)
図12で該当するページ:Page3〜6
処理内容:親ページの上位の桁を割り当てて結合する。
Page3の場合、Page1の一桁目(親ページの上位の桁)である1と、Page3が持つ二桁目1を結合し、11となる。
Page4の場合、同様の方法で12となる。
d)各ページに振られた番号を元に、クラスタリングする。
クラスタリング手法を用いて、クラスタリングする。
クラスタリング手法の一例として、K−means法がある。
上記の方法により、各ページに図13に示す番号が付く。
リクエストグルーピング部101は、あらかじめ遷移情報が得られている場合は、遷移情報を元にグルーピングする。
具体的には、リクエストグルーピング部101は、遷移回数が少ないリンクを境界としてグルーピングする。
Webページと異なり、ページ間の関連性が示されていない場合は、複数リクエスト単位でグルーピングする。
例えば、システムで扱う10個のリクエスト1〜10を元に、2つのグループを作成するケースを考える。
この場合に、リクエストグルーピング部101は、各グループに属するリクエストの数が均等になるようにリクエストをグルーピングする。
例えば、リクエスト1〜5をグループ1とし、リクエスト6〜10をグループ2とする。
そして、クライアントグルーピング部103は、リクエスト1〜5を送信するクライアント装置200はグループ1に分類し、リクエスト6〜10を送信するクライアント装置200はグループ2に分類する。
本実施の形態では、送信権を持つクライアントのみが、リクエストをサーバに送信するものとする。
ただし、送信権を持つクライアントの探索に失敗したときなどは、例外的に、送信権を持っていなくてもクライアントがサーバにリクエストを送信できるものとする。
最終的に、図14に示すように、送信権とクライアントが、管理用のリングに登録される。
図9では、Home画面とPage1、3、4がグループ1に属し、Page2、5、6がグループ2に属する。
Home画面、Page1、3、4を閲覧するクライアントは、グループ1に分類される。
また、Page2、5、6を閲覧するクライアントは、グループ2に分類される。
リクエストグルーピング部101は、管理リングを、グループごとに作成する。
また、リクエストグルーピング部101は、グループごとに、リクエストを登録する。
グループ1に対応するページは、Home画面、Page1、3、4である。
これらに対応するリクエストRequest Home、Request1、3、4の送信権を、グループ1のリングで管理する。
同様に、グループ2のリングでRequest2、5、6の送信権を管理する。
グルーピング処理をしたのち、リクエストグルーピング部101は、リクエストを管理リングに登録する。
方法は、まず、各リクエストに対して、0〜24−1の整数値からランダムに値を振る。
その後、対応するリング上の位置に、各リクエストを配置する。
管理リングには、図15に示すように0〜24−1の値が振られている。
リクエストグルーピング部101は、対応する位置にリクエストを配置する。
各ページに登録しているリクエストに、以下の値が与えられたとき、図16に示すようにリクエストが登録される。
グループ1のリングに登録するリクエスト送信権
Request Home:3
Request1:13
Request3:9
Request4:5
グループ2のリングに登録するリクエスト送信権
Request2:14
Request5:1
Request6:7
グループに未加入のクライアント装置200では、グループ加入要求部201がグループ加入要求をサーバ装置100に送信する(図5のS201)。
システム情報DBにデータが無い場合は、クライアント装置200は、グループに未加入の状態である。
グループ加入要求部201は、例えば、ユーザの入力をトリガーに、グループ加入要求を送信する。
ユーザ入力の具体例として、以下がある。
1)ボタンの押し下げ
2)Webページシステム内のいずれかのページに対応するURL(Uniform Resource Locator)の入力
3)URLリンクのクリック
これらの処理があると、リクエストが生成され、リクエストが含まれるグループ加入要求がサーバ装置100に送信される。
方法1では、サーバ装置100のグループ情報送信部105がグループ加入要求に含まれるリクエストに対応するレスポンスとともに、グループ情報をクライアント装置200に送信する。
方法2では、サーバ装置100のグループ情報送信部105がグループ情報のみをクライアント装置200に送信する。
グループ情報には具体的に以下の内容が含まれる。
リクエストやクライアントに付くID(Identifier)の範囲
グループが対象とするリクエスト
各リクエストのID
管理リングに含まれるクライアント1つ(存在しない場合、データを格納しない)
クライアントのID
また、クライアントが管理するリクエストの送信権は、管理リング上で前のクライアントから、現在のクライアントまでのものである。
数式では、以下の(1)式で示すことができる。
(1)式に示す3つのうち、いずれか1つを満たせば、リクエスト送信権をクライアントが管理する。
(1)式の中で、IDpreは管理リング上で前のクライアントのIDである。
また、IDcurは現在のクライアントのIDである。
また、IDrightはリクエスト送信権のIDである。
また、RgはグループGに含まれるリクエストの集合、reqはリクエストを示す。
また、Maxは管理リングが付けられるIDの最大値である。
本実施の形態では、Max=24−1である。
グループ情報受信部202は、条件により異なる動作をする。
具体的な動作は、以下のとおりである。
グループ情報受信部202は、システム情報DB210に、グループ情報に以下の情報を記述し、グループ情報をシステム情報DB210に保存する。
1)管理リング上で次のクライアント:加入したクライアント(自装置)
2)管理リング上で前のクライアント:加入したクライアント(自装置)
3)自装置が送信権を持つリクエスト:グループが対象とするリクエスト全て
グループ情報受信部202は、クライアント探索部203に、グループ情報に含まれるクライアントIDを元に、管理リング上で次のクライアントと前のクライアントを探索する処理を依頼する。
つまり、クライアント探索部203は、所属グループに所属するクライアントのうち管理リング上で自装置の前に位置するクライアントと次に位置するクライアントを探索する。
クライアント探索部203によるクライアント探索処理は、以下に示す条件によって、処理が異なる。
なお、システムに加入したクライアント(自装置)のIDを、IDsearchとする。
システム情報書き換え部211が、システム情報DB210のシステム情報を書き換える。
以下において、IDpreはシステムに加入したクライアント(自装置)の前のクライアント、IDsucはシステムに加入したクライアント(自装置)の次のクライアントである。
具体的な動作は、以下のとおりである。
・IDpreのクライアントではグループ加入要求部201が、管理リング上の次のクライアントとして、加入したばかりのクライアントを登録する。
・IDsucのクライアントではグループ加入要求部201が、管理リング上の前のクライアントとして、加入したばかりのクライアントを登録する。
その後、IDsucのクライアントのグループ加入要求部201は、システム情報DB210で管理する送信権のうち、(1)式を満たさなくなった送信権を削除する。
・IDsearchのクライアントではグループ加入要求部201が、管理リング上の前のクライアントとしてIDpreのクライアント、管理リング上の後のクライアントとしてIDsucのクライアントを登録する。
また、IDsearchのクライアントのグループ加入要求部201は、システム情報DB210に、(1)式を満たすリクエストを登録する。
管理リング上の次のクライアント(IDsucのクライアント)に探索を委ねる。
1)グループの情報
・リクエストやクライアントに付くIDの範囲
・グループが対象とするリクエスト
・各リクエストのID
・管理リングに含まれるクライアント1つ(存在しない場合、データを格納しない)
・クライアントのID
2)管理リング上で次のクライアント
3)管理リング上で前のクライアント
4)自装置が送信権を持っているリクエスト
ここでは、クライアント装置200においてユーザがURLを入力することで、グループ加入要求部201がサーバ装置100にグループ加入要求を送信するものとする。
また、このときグループ加入要求に含まれるリクエストは、Request Homeであるとする。
また、サーバ装置100では、図17の方法2にてクライアント装置200のシステム加入を登録するものとする。
また、グループに加入するクライアント装置200を、クライアント1とする。
クライアント装置200がサーバ装置100に送ったリクエストは、Request Homeであるため、Request Homeが登録されているグループ1のグループ情報をクライアント装置200に送信する。
グループ情報で通知する内容は、具体的には以下のとおりである。
上記の(1)式2番目の条件式を満たすことから、クライアント1は、Request
Home、Request1、Request3、Request4の送信権を保持する。
また、クライアント1のIDは、0〜24−1の中からランダムに選択された結果、6である。
グループ情報を受信したグループ情報受信部202は、以下の情報をシステム情報DBに保存する。
1)グループ情報
・リクエストやクライアントに付くIDの範囲:0〜24−1
・グループ1が対象とするリクエスト:Request Home、Request1、3、4
・各リクエストのID:
Request Home:3
Request1:13
Request3:9
Request4:5
・管理リング上のクライアント:なし
・クライアントのID:6
2)管理リング上で次のクライアント:クライアント1
3)管理リング上で前のクライアント:クライアント1
4)自装置が送信権を持っているリクエスト:Request Home、 Request1、3、4
クライアント2も、クライアント1と同様に、Request Homeが含まれるグループ加入要求が送信された場合は、グループ情報送信部105から送信されるグループ情報は以下のようになる。
・リクエストやクライアントに付くIDの範囲:0〜24−1
・グループ1が対象とするリクエスト:Request Home、Request1、3、4
・各リクエストのID:
Request Home:3
Request1:13
Request3:9
Request4:5
・管理リング上のクライアント:クライアント1
・クライアントのID:11
このとき、クライアント2のクライアント探索部203が、次のクライアントと前のクライアントを探索する。
探索の結果、次のクライアントも、前のクライアントもクライアント1であることがわかる。
その後、クライアント1及びクライアント2のシステム情報書き換え部211にて、それぞれのシステム情報を書き換える。
これにより、クライアント1とクライアント2のシステム情報DBは、以下のように書き換わる。
α)クライアント1のシステム情報
1)グループ情報
・リクエストやクライアントに付くIDの範囲:0〜24−1
・グループ1が対象とするリクエスト:Request Home、Request1、3、4
・各リクエストのID:
Request Home:3
Request1:13
Request3:9
Request4:5
・管理リング上のクライアント:クライアント1
・クライアントのID:11
2)管理リング上で次のクライアント:クライアント2
3)管理リング上で前のクライアント:クライアント2
4)自装置が送信権を持っているリクエスト:Request Home、Request1、4
β)クライアント2のシステム情報
1)グループ情報
・リクエストやクライアントに付くIDの範囲:0〜24−1
・グループ1が対象とするリクエスト:Request Home、 Request1、3、4
・各リクエストのID:
Request Home:3
Request1:13
Request3:9
Request4:5
・管理リング上のクライアント:クライアント1
・クライアントのID:11
2)管理リング上で次のクライアント:クライアント1
3)管理リング上で前のクライアント:クライアント1
4)自装置が送信権を持っているリクエスト:Request3
なお、この時点での管理リングで管理するクライアントと、リクエスト送信権の関係を、図18に示す。
所属グループに含まれないクライアントリクエスト(以下、グループ外クライアントリクエストともいう)のサーバ装置100への送信が必要になった場合に、クライアントは、所属グループから離脱する。
そして、当該クライアントでは、グループ加入要求部201が、グループ外クライアントリクエストが含まれるグループ加入要求をサーバ装置100に送信して、サーバ装置100に、グループ外クライアントリクエストが含まれるグループへの加入を要求する。
クライアントが所属グループから離脱するときは、離脱通知部212が、管理リング上で次の位置にあるクライアントと、前の位置にあるクライアントに離脱する旨を伝え、その後、所属グループから離脱する。
離脱通知部212は、具体的には、以下のように動作する。
まず、離脱通知部212は、システム情報から、管理リング上で次の位置にあるクライアントの情報を取得する。
その後、離脱通知部212は、次の位置にあるクライアントに対して、所属グループを離脱する旨を通知する。
離脱通知部212は、以下を通知する。
1)自装置に送信権があるリクエスト
2)管理リング上で自装置の前に位置するクライアントの情報
また、離脱通知部212は、システム情報DBから、管理リング上で前の位置にあるクライアントの情報を取得する。
その後、離脱通知部212は、前の位置にあるクライアントに対して、所属グループを離脱する旨を通知する。
離脱通知部212は、以下を通知する。
1)管理リング上で自装置の次に位置するクライアントの情報
具体的には、離脱するクライアントの次の位置にあるクライアントでは、システム情報書き換え部211が、離脱するクライアントからの情報で通知された送信権をシステム情報に追加する。
また、システム情報に記述されている前の位置のクライアントを、離脱するクライアントからの情報で通知された前の位置のクライアントに書き換える。
また、離脱するクライアントの前の位置にあるクライアントでは、システム情報書き換え部211が、システム情報に記述されている次の位置のクライアントを、離脱するクライアントからの情報で通知された次の位置のクライアントに書き換える。
グループ1を離脱するために、クライアント1では、離脱通知部212が、管理リング上で次の位置にあるクライアントであるクライアント2に、グループ1を離脱する旨を伝える。
具体的には、クライアント1の離脱通知部212は、次の位置にあるクライアント(クライアント2)に以下の情報を伝える。
・自装置に送信権があるリクエスト:Request Home、Request1、4
・管理リング上で前のクライアントの情報:クライアント2
クライアント1の離脱に伴い、クライアント2では、システム情報書き換え部211が、クライアント2が保持するシステム情報を、以下のように書き換える。
以下では、Beforeが書き換え前、Afterが書き換え後である。
・リクエストやクライアントに付くIDの範囲:0〜24−1
・グループ1が対象とするリクエスト:Request Home、 Request1、3、4
・各リクエストのID:
Request Home:3
Request1:13
Request3:9
Request4:5
・管理リング上のクライアント:クライアント1
・クライアントのID:11
・管理リング上で次のクライアント:クライアント1
・管理リング上で前のクライアント:クライアント1(Before)⇒クライアント2(After)
・自装置が送信権を持っているリクエスト: Request3(Before)⇒Request Home、Request1、3、4(After)
具体的には、クライアント1の離脱通知部212は、前の位置にあるクライアント(クライアント2)に以下の情報を伝える。
・管理リング上で次のクライアントの情報:クライアント2
この結果、クライアント2のシステム情報は、以下のように書き換わる。
・リクエストやクライアントに付くIDの範囲:0〜24−1
・グループ1が対象とするリクエスト:Request Home、Request1、3、4
・各リクエストのID:
Request Home:3
Request1:13
Request3:9
Request4:5
・管理リング上のクライアント:クライアント1
・クライアントのID:11
・管理リング上で次のクライアント:クライアント1(Before)⇒クライアント2(After)
・管理リング上で前のクライアント:クライアント2
・自装置が送信権を持っているリクエスト: Request Home、Request1、3、4
各クライアントは、複数のクライアントを経由して、送信権を持つクライアントを探索する。
具体的には、各クライアントが持っている、管理リング上で次のクライアントの情報を元に、クライアントを経由して送信権を持つクライアントを探索する。
自装置が当該リクエストの送信権を保持している場合は、送信権判定部205は、レスポンスDB209にレスポンスがあるかどうかを確認する。
レスポンスDB209は、レスポンスデータを保存するDBである。
レスポンスDBは、図19に示すように、各リクエストに対応するレスポンスと、その期限が示されている。
自装置がリクエストの送信権を保持している場合であって、レスポンスDB209にレスポンスがない場合は、リクエスト送信部206が、サーバにリクエストを送信する。
サーバからレスポンスを受信した場合に、リクエストが他のクライアントからのリクエストであれば、レスポンス送信部208が、管理リング上で前の位置にあるクライアントにレスポンスを送信する。
一方、自装置がリクエストの送信権を保持している場合であって、レスポンスDB209にレスポンスがある場合は、送信権判定部205は、レスポンスDB209から、リクエストに対応するレスポンスを取得する。
リクエストが他のクライアントからのリクエストであれば、レスポンス送信部208が、管理リング上で前の位置にあるクライアントにレスポンスを送信する。
自装置がリクエストの送信権を保持していない場合は、送信権判定部205は、システム情報DB210から管理リング上で次のクライアントを取得する。
その後、リクエスト送信部206が、次のクライアントにリクエストを送信する。
まず、クライアント1の送信権判定部205が、システム情報に、Request4が含まれるかどうか調べる。
つまり、Request4が、グループ1が対象としているリクエストであるかどうかを調べる。
この場合、Request4がシステム情報に含まれる。
また、送信権判定部205は、システム情報を調べ、自装置(クライアント1)にRequest4の送信権があるかどうかを判定する。
この場合、自装置(クライアント1)にはRequest4の送信権がある。
次に、送信権判定部205は、レスポンスDB209を調べ、Request4に対応するレスポンスデータの存在を調べる。
図19に、初期状態のレスポンスDB209の中身を示す。
ここでは、Request4に対応するレスポンスデータがレスポンスDB209に格納されていないため、リクエスト送信部206が、Request4をサーバに送信する。
サーバでは、リクエスト受信部106がRequest4を受信し、レスポンス生成部107がRequest4に対応するレスポンスを生成し、レスポンス送信部108がレスポンスをクライアント1に送信する。
クライアント1では、レスポンス受信部207が、サーバから送信されたレスポンスを受信する。
そして、送信権判定部205が、レスポンスDB209にレスポンスを格納する。
このとき、レスポンスに、データの保存期間を示す情報が付いているならば、その情報とともにレスポンスをレスポンスDB209に格納する。
Request4のレスポンスを、レスポンスDB209に書き込んだ結果を図20に示す。
クライアント2の送信権判定部205が、システム情報に、Request4が含まれるかどうか調べる。
つまり、Request4が、グループ1が対象としているリクエストであるかどうかを調べる。
この場合、Request4がシステム情報に含まれる。
また、送信権判定部205は、システム情報を調べ、自装置(クライアント2)にRequest4の送信権があるかどうかを判定する。
自装置(クライアント2)にはRequest4の送信権がないため、管理リング上で次のクライアント(クライアント1)にRequest4を送信する。
クライアント1はRequest4の送信権を保持しており、また、レスポンスDB209には、Request4に対応するレスポンスのデータがある。
レスポンスの有効期限内であれば、レスポンス送信部208は、レスポンスDB209内のレスポンスを前のクライアントであるクライアント2に送信する。
Request5は、グループ1が対象とするリクエストではない。
このため、クライアント1の離脱通知部212が、グループ1からの離脱を通知する。
そして、クライアント1のグループ加入要求部201がRequest5を含むグループ加入要求部をサーバに送信することで、クライアント1がグループ2に加入する。
図17の方法1の場合は、サーバがRequest5のレスポンスをグループ2のグループ情報とともにクライアント1に送信する。
一方、図17の方法2の場合は、サーバはグループ2のグループ情報をクライアント1に送信する。
クライアント1は、グループ情報に従って、グループ2の管理リング上で次の位置にあるクライアントを特定し、特定したクライアントにRequest5を送信する。
以降の処理は、グループ1での処理と同様である。
特許文献1及び特許文献2に示す、物理的なネットワーク構成を元にクライアントのグループ分割を行う方法では、各グループから、全てのリクエストが重複してサーバに送信される可能性がある(図23)。
一方、本実施の形態では、クライアントリクエストを元にクライアントのグループ分割を行う、ため、リクエストが重複してサーバ装置に送信されることがない(図21)。
クライアントから、全てのリクエスト(Request Home、1〜6)が送信される場合、上記手法を用いることにより、特許文献1及び特許文献2の方法と比べてサーバの処理負荷を50%削減できる。
サーバ装置100及びクライアント装置200はコンピュータである。
サーバ装置100及びクライアント装置200は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906といったハードウェアを備える。
プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インタフェース905は、入力装置907に接続されている。
ディスプレイインタフェース906は、ディスプレイ908に接続されている。
プロセッサ901は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。
メモリ903は、例えば、RAM(Random Access Memory)である。
通信装置904は、データを受信するレシーバー9041及びデータを送信するトランスミッター9042を含む。
通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。
入力インタフェース905は、入力装置907のケーブル911が接続されるポートである。
入力インタフェース905は、例えば、USB(Universal Serial Bus)端子である。
ディスプレイインタフェース906は、ディスプレイ908のケーブル912が接続されるポートである。
ディスプレイインタフェース906は、例えば、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。
入力装置907は、例えば、マウス、キーボード又はタッチパネルである。
ディスプレイ908は、例えば、LCD(Liquid Crystal Display)である。
このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
更に、補助記憶装置902には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
図22では、1つのプロセッサ901が図示されているが、サーバ装置100及びクライアント装置200が複数のプロセッサ901を備えていてもよい。
そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリに記憶される。
「回路」は、プロセッサ901だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field−Programmable Gate
Array)といった他の種類の処理回路をも包含する概念である。
Claims (11)
- クライアントリクエストのグルーピングを行うリクエストグルーピング部と、
前記リクエストグルーピング部によるグルーピングにより得られたクライアントリクエストのグループをグルーピングの単位にして、クライアント装置のグルーピングを行うクライアントグルーピング部と、
前記リクエストグルーピング部によるグルーピング結果と前記クライアントグルーピング部によるグルーピング結果とに基づき、クライアントリクエストのグループごとに、グループに含まれるクライアントリクエストとグループに所属するクライアント装置とを通知するグループ情報を、グループに所属するクライアント装置に送信するグループ情報送信部とを有するサーバ装置。 - 前記サーバ装置は、更に、
前記リクエストグルーピング部によるグルーピング結果と前記クライアントグルーピング部によるグルーピング結果とに基づき、クライアントリクエストのグループごとに、クライアントリクエストとクライアント装置との組合せを記憶する組合せ記憶部を有する請求項1に記載のサーバ装置。 - 前記リクエストグルーピング部は、
クライアントリクエスト間の関係を解析してクライアントリクエストのグルーピングを行う請求項1に記載のサーバ装置。 - 前記リクエストグルーピング部は、
クライアントリクエストが対象とする、互いに関連付けられたデータ群の階層構造を解析してクライアントリクエストのグルーピングを行う請求項1に記載のサーバ装置。 - 前記リクエストグルーピング部は、
各グループのクライアントリクエストの個数が均等になるようにクライアントリクエストのグルーピングを行う請求項1に記載のサーバ装置。 - 前記クライアントグルーピング部は、
クライアントリクエストが受信された場合、受信されたクライアントリクエストの送信元のクライアント装置を、受信されたクライアントリクエストが含まれるグループに所属させる請求項1に記載のサーバ装置。 - クライアントリクエストのグルーピングにより得られたクライアントリクエストのグループをグルーピングの単位にしてクライアント装置のグルーピングを行うサーバ装置によって指定されたグループであって自装置が所属するグループである所属グループに含まれるクライアントリクエストの送信権が自装置にあるか否かを判定し、前記クライアントリクエストの送信権が自装置にある場合に、前記クライアントリクエストに対するレスポンスがキャッシュ領域にキャッシュされているか否かを判定する送信権判定部と、
前記送信権判定部により前記クライアントリクエストの送信権が自装置にあり、前記クライアントリクエストに対するレスポンスが前記キャッシュ領域にキャッシュされていないと判定された場合に、前記サーバ装置に前記クライアントリクエストを送信し、前記送信権判定部により前記クライアントリクエストの送信権が自装置にないと判定された場合に、前記所属グループに所属している他のクライアント装置に前記クライアントリクエストを送信するリクエスト送信部とを有するクライアント装置。 - 前記クライアント装置は、更に、
前記所属グループに所属している他のクライアント装置から送信されたクライアントリクエストを受信するリクエスト受信部を有し、
前記送信権判定部は、
前記リクエスト受信部により受信された受信クライアントリクエストの送信権が自装置にあるか否かを判定し、前記受信クライアントリクエストの送信権が自装置にある場合に、前記受信クライアントリクエストに対するレスポンスが前記キャッシュ領域にキャッシュされているか否かを判定し、
前記リクエスト送信部は、
前記送信権判定部により前記受信クライアントリクエストの送信権が自装置にあり、前記受信クライアントリクエストに対するレスポンスが前記キャッシュ領域にキャッシュされていないと判定された場合に、前記サーバ装置に前記受信クライアントリクエストを送信し、前記送信権判定部により前記受信クライアントリクエストの送信権が自装置にないと判定された場合に、前記所属グループに所属している他のクライアント装置のうち前記受信クライアントリクエストの送信元のクライアント装置以外のクライアント装置に前記受信クライアントリクエストを送信する請求項7に記載のクライアント装置。 - 前記クライアント装置は、更に、
前記所属グループに含まれないクライアントリクエストであるグループ外クライアントリクエストの前記サーバ装置への送信が必要になった場合に、前記所属グループに所属している他のクライアント装置に前記所属グループからの離脱を通知する離脱通知部と、
前記離脱通知部により前記所属グループに所属している他のクライアント装置に前記所属グループからの離脱が通知された後に、前記サーバ装置に前記グループ外クライアントリクエストを送信して、前記サーバ装置に、前記グループ外クライアントリクエストが含まれるグループへの加入を要求するグループ加入要求部とを有する請求項7に記載のクライアント装置。 - コンピュータであるサーバ装置が、クライアントリクエストのグルーピングを行うリクエストグルーピング処理と、
前記サーバ装置が、前記リクエストグルーピング処理によるグルーピングにより得られたクライアントリクエストのグループをグルーピングの単位にして、クライアント装置のグルーピングを行うクライアントグルーピング処理と、
前記サーバ装置が、前記リクエストグルーピング処理によるグルーピング結果と前記クライアントグルーピング処理によるグルーピング結果とに基づき、クライアントリクエストのグループごとに、グループに含まれるクライアントリクエストとグループに所属するクライアント装置とを通知するグループ情報を、グループに所属するクライアント装置に送信するグループ情報送信処理とを有するグルーピング方法。 - コンピュータであるサーバ装置に、
クライアントリクエストのグルーピングを行うリクエストグルーピング処理と、
前記リクエストグルーピング処理によるグルーピングにより得られたクライアントリクエストのグループをグルーピングの単位にして、クライアント装置のグルーピングを行うクライアントグルーピング処理と、
前記リクエストグルーピング処理によるグルーピング結果と前記クライアントグルーピング処理によるグルーピング結果とに基づき、クライアントリクエストのグループごとに、グループに含まれるクライアントリクエストとグループに所属するクライアント装置とを通知するグループ情報を、グループに所属するクライアント装置に送信するグループ情報送信処理とを実行させるグルーピングプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015028323A JP6324331B2 (ja) | 2015-02-17 | 2015-02-17 | サーバ装置及びクライアント装置及びグルーピング方法及びグルーピングプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015028323A JP6324331B2 (ja) | 2015-02-17 | 2015-02-17 | サーバ装置及びクライアント装置及びグルーピング方法及びグルーピングプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016151846A JP2016151846A (ja) | 2016-08-22 |
JP6324331B2 true JP6324331B2 (ja) | 2018-05-16 |
Family
ID=56696594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015028323A Active JP6324331B2 (ja) | 2015-02-17 | 2015-02-17 | サーバ装置及びクライアント装置及びグルーピング方法及びグルーピングプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6324331B2 (ja) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4271620B2 (ja) * | 2004-06-10 | 2009-06-03 | 日本電信電話株式会社 | 分散型データ処理/管理装置及びその方法 |
JP2007323334A (ja) * | 2006-05-31 | 2007-12-13 | Waakuatto:Kk | Webページ抽出システム、これを用いた広告配信システムおよび広告配信プログラム |
JP2009075912A (ja) * | 2007-09-21 | 2009-04-09 | Hoshiai Shinichi | 情報共有システム |
JP5011185B2 (ja) * | 2008-03-26 | 2012-08-29 | 株式会社エヌ・ティ・ティ・データ | 情報分析装置、情報分析方法、及び情報分析プログラム |
JP2010123038A (ja) * | 2008-11-21 | 2010-06-03 | Nippon Telegr & Teleph Corp <Ntt> | 関連ウェブページ発見装置、関連ウェブページ発見方法および関連ウェブページ発見プログラム |
WO2011039642A1 (en) * | 2009-09-30 | 2011-04-07 | France Telecom | Cluster peer for peer-to-peer systems and method of operation thereof |
JP2012064136A (ja) * | 2010-09-17 | 2012-03-29 | Nippon Telegr & Teleph Corp <Ntt> | テストデータ生成方法、テストデータ生成装置及びテストデータ生成プログラム |
JP2013167982A (ja) * | 2012-02-14 | 2013-08-29 | Onkyo Corp | コントローラ及びそのプログラム |
-
2015
- 2015-02-17 JP JP2015028323A patent/JP6324331B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016151846A (ja) | 2016-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11356829B2 (en) | Dynamic types for activity continuation between electronic devices | |
US10574770B2 (en) | Managing notifications across multiple devices | |
US10356466B1 (en) | Providing selectable content creator controls in conjunction with sponsored media content items | |
CN110727525B (zh) | 用于活动协作的配套应用程序 | |
US8935560B2 (en) | System and method of file locking in a network file system federated namespace | |
CN108432200B (zh) | 用于保护和控制对私密个人信息的访问的方法 | |
EP3485400A1 (en) | Methods and systems for server-side rendering of native content for presentation | |
US20140143647A1 (en) | Method for improving browser cache by reducing duplicate stored content | |
US9177009B2 (en) | Generation based update system | |
KR20200140944A (ko) | 전자 디바이스들 사이의 액티비티 계속 | |
KR102049133B1 (ko) | 파일 서술자를 자동으로 관리하는 기법 | |
US10574703B1 (en) | Content delivery employing multiple security levels | |
WO2017045450A1 (zh) | 资源的操作处理方法及装置 | |
US20150347996A1 (en) | Shared purchases | |
WO2017128701A1 (zh) | 存储数据的方法和装置 | |
JP2022064883A (ja) | 強化されたオンラインプライバシ | |
CN114073058A (zh) | 用于基于网络的媒体处理(nbmp)中的媒体处理功能的配置参数的图形表示和描述 | |
CN110545324B (zh) | 数据处理方法、装置、系统、网络设备和存储介质 | |
US9047300B2 (en) | Techniques to manage universal file descriptor models for content files | |
US8639770B1 (en) | Separation of mutable and immutable data in a memory cache for improvement of data updates | |
US10771572B1 (en) | Method and system for implementing circle of trust in a social network | |
CN107949830B (zh) | 将与活动相关的信息从源电子装置转发至伴随电子装置 | |
JP6324331B2 (ja) | サーバ装置及びクライアント装置及びグルーピング方法及びグルーピングプログラム | |
US20230088115A1 (en) | Generating early hints informational responses at an intermediary server | |
JP2018055314A (ja) | 画像転送装置および画像転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170123 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180109 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180205 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180313 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180410 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6324331 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |