説明

P2P型Webプロキシネットワークシステム

【課題】従来よりも更にユーザ端末からみた応答性能などを向上する。
【解決手段】本システムでは、Webクライアント(20)とWebサーバ(30)の間に、Webコンテンツのキャッシュデータを代理応答するWebプロキシサーバ(10)のP2Pネットワーク(100)が構成される。P2Pネットワーク(100)で、DHTの仕組みを用いて、キャッシュの高速な検索、及び負荷分散を図る。Webプロキシサーバ(10)は、要求を受けた際、Webクライアント(20)から提供されるWebクライアント情報(71)を用いて、キャッシュを応答する好適なノードを選択する機能を有する。Webクライアント情報(71)は、例えば、Webクライアント(20)とWebプロキシサーバ(10)との間で過去にキャッシュを授受した時の応答時間の情報を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インターネット等の情報処理の技術に関し、特に、Webプロキシ(Webコンテンツのキャッシュ・負荷分散などの機能)、P2P(Peer to Peer)通信、等の技術に関する。
【背景技術】
【0002】
[Webプロキシ] インターネットにおいて、ユーザ端末(Webクライアント)からWebサーバにアクセスしてWebコンテンツ(サービス等)を利用する。その際、Webクライアント−Webサーバ間に介在するWebプロキシサーバ(キャッシュサーバ)で、Webコンテンツのデータをキャッシュ(キャッシュデータを記憶)し、Webクライアントへ提供(代理応答)する。これにより、Webクライアントへの応答性能や、Webサーバの負荷低減・ネットワーク上の負荷分散などを図っている。
【0003】
[P2P] インターネット上に構成されるP2Pネットワークにおいて、P2P機能を備えた端末(ノード)は、P2Pのリンク(論理的な接続)で互いに通信し、対象のデータ(ファイル)を順次に転送し、交換し、また転送データのキャッシュ(コピー)を保持する。
【0004】
[DHT] P2Pにおける有効な手法として分散ハッシュテーブル(DHT:Distributed Hash Table)がある。DHTの手法では、P2Pノード及び転送ファイル(コンテンツ)に一意のIDが付与される。このIDは、P2PノードのIPアドレスや対象ファイル名などをもとに、ハッシュ関数を用いて算出して得られる。DHTにより、ファイル(そのID)とその保存先のP2Pノード(そのID)との対応関係が構成・管理される。各P2PノードがDHT情報及びキャッシュデータを分散的に保有する。ファイルを取得する際には、IDからDHTにより保存先が検索(発見)される。DHTでは、全P2Pノードについて、経路(あるノードから対象ファイルを持つノードまでの経路)が計算される。
【0005】
[先行技術例] 上記要素(Webプロキシ等)及びネットワーク性能向上などに関連する先行技術例として、特開2010−198116号公報(特許文献1)などがある。特許文献1(「P2Pを用いたWebアプリケーション間通信方法」等)では、以下のような記載がある。課題として、マッシュアップ(WebAPIを用いて他の複数のWebアプリケーションの機能を呼び出して組み合わせることによりWebアプリケーションを構築する等の技術)したWebアプリケーション間の通信であってもWebアプリケーションの応答性の低下を防止できるP2Pの技術を提供する(段落0012〜0015等)。ネットワークシステムとして、Webブラウザが動作するクライアントPCと、Webアプリケーションが動作するWebサーバと、キャッシュサーバとが接続され、データを転送するためのP2Pノードとして機能し、Webブラウザ−Webアプリケーション間、あるいは、Webアプリケーション間でデータが授受される。P2Pノードは、中継系ノード(例えばキャッシュサーバ)と、エッジ系ノード(例えばWebサーバ及びクライアントPC)とに分類される。中継系ノードは、ネットワーク運営者により管理され、他の中継系ノード及びエッジ系ノードとの間にリンクを張る。エッジ系ノードは、P2P網への参加と離脱を自由とし、中継系ノードとの間にリンクを張る。中継系ノードは、データを中継するP2Pノードを記述したルート(経路)情報を保持し、ルート設定を行い、他の中継系ノードとの間(リンク)で、自ノードで保持しているルート情報を交換する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2010−198116号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
前記特許文献1では、多段のWebアプリケーション(マッシュアップ)の呼び出し、人気のあるWebアプリケーションへの集中、等に対応するためのキャッシュ機構として、P2Pの仕組みを導入している(段落0017等)。アクセス要求の多いWebアプリケーションに関してキャッシュ応答することにより、負荷軽減、応答時間の向上を図る。Webアプリケーション(マッシュアップ)にP2Pのキャッシュ機構を適用する場合の課題として、P2Pノードの参加・離脱によるルートの再計算による負荷増大・性能低下の問題を挙げている(段落0028の課題1)。また、P2Pノード間のリンク(論理的な接続)によるオーバーレイネットワークと、実ネットワークとのトポロジ・特性の違いによる性能低下の問題を挙げている(段落0029の課題2)。上記2つの問題への対処として、P2Pノードを前述の2種類(中継系、エッジ系)に分け、2つの問題を個別に処理する構成としている。中継系ノードのネットワークでは、基本的に固定のノードとし、ノード間のリンクの張り方、ルートの計算を担当し、トポロジ的に近くのノード間にリンクを張り、ルートの再計算を抑制している。
【0008】
しかしながら、特許文献1のような技術でも、ユーザ端末(Webクライアント)からみた応答性能や応答品質などの面で改善余地などの課題がある。例えば、複数のキャッシュサーバで同じキャッシュデータを保有している場合で、各サーバからのユーザ端末へのキャッシュデータの応答において、応答時間(応答速度など)に差が生じる場合がある。しかし従来システムでは、上記複数の各サーバの応答時間などは考慮されていない。よって、応答時間が短くできる可能性があるにもかかわらず結果的に応答時間が長くなるサーバから応答されてしまう場合があり、ユーザ端末からみた応答性能などの面で劣る場合がある。
【0009】
以上を鑑み、本発明の主な目的は、Webプロキシを用いたネットワークに係わり、従来よりも更に、ユーザ端末(Webクライアント)からみた応答性能や応答品質などの向上を実現できる技術を提供することである。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明のうち代表的な形態は、Webプロキシを用いたネットワークによる情報処理システム(P2P型Webプロキシネットワークシステム)、等であって、以下に示す構成を有することを特徴とする。
【0011】
本形態のシステムは、Webコンテンツ(ないしサービス)を要求するWebブラウザを含むWebクライアント装置と、Webコンテンツを提供するWebサーバ装置と、Webクライアント装置とWebサーバ装置の間でWebコンテンツのキャッシュデータを保有し代理応答で提供するWebプロキシサーバ装置とがネットワークで接続されるシステムである。複数のWebプロキシサーバ装置がP2Pネットワークで接続される。前記P2Pネットワークは、第1種のWebプロキシサーバであるグループリーダのノード群のP2P接続による第1のネットワークと、前記グループリーダに対して接続される、第2種のWebプロキシサーバであるグループメンバのノード群のP2P接続による第2のネットワークとで構成される。
【0012】
前記第1種のWebプロキシサーバは、DHT機能と、グループ管理機能とを有する。DHT機能は、分散ハッシュテーブル(DHT)情報を用いて、前記Webコンテンツと、当該Webコンテンツのキャッシュデータを保有する前記第2種のWebプロキシサーバとの対応関係を管理し、前記Webクライアント装置からのWebコンテンツの要求を受けると、前記DHT情報を用いて、当該Webコンテンツのキャッシュデータを保有する該当の第2種のWebプロキシサーバを含むグループの該当の第1種のWebプロキシサーバを検索し、必要に応じて当該要求を転送する処理を行う。グループ管理機能は、自身が担当するグループに対応する前記第2のネットワークのグループメンバの各ノードの情報を管理し各ノードと通信する処理を行う。
【0013】
前記第2種のWebプロキシサーバは、キャッシュ管理機能と、グループ通信機能とを有する。キャッシュ管理機能は、前記Webコンテンツのキャッシュデータを保有し情報を管理する処理を行う。グループ通信機能は、自身のグループ内で前記グループリーダのノードと情報を通信する処理を行う。
【0014】
前記Webクライアント装置は、アクセス機能と、Webクライアント情報管理機能とを有する。アクセス機能は、対象のWebコンテンツの情報を前記第1種のWebプロキシサーバへ送信し、前記第2種のWebプロキシサーバから応答のキャッシュデータを取得する処理を行う。Webクライアント情報管理機能は、自身で管理するWebクライアント情報を前記第1種のWebプロキシサーバに対して提供する。
【0015】
前記Webクライアント情報は、例えば、前記Webクライアント装置と前記Webプロキシサーバ装置との間で過去に前記Webコンテンツのキャッシュデータを取得した時の応答時間(ないし応答速度など)の情報を含む。
【0016】
前記要求を受けた際、前記該当の第1種のWebプロキシサーバは、該当の第2種のWebプロキシサーバの中から、前記要求に対し応答させるノードを決定するために、前記Webクライアント情報を参照し、前記応答時間が短いノードを優先的に選択し、決定したノードへリダイレクトさせる処理を行う応答ノード選択機能を有する。
【0017】
前記Webクライアント装置は、前記アクセス機能により、前記リダイレクト先の第2種のWebプロキシサーバから前記キャッシュデータを取得し、前記Webクライアント情報管理機能により、その時の応答時間の情報を記録する処理を行う。
【発明の効果】
【0018】
本発明のうち代表的な形態によれば、Webプロキシを用いたネットワークに係わり、従来よりも更に、ユーザ端末(Webクライアント)からみた応答性能や応答品質などの向上を実現できる。特に、ネットワークの負荷分散などを図りつつ、ユーザ端末へのWebコンテンツキャッシュデータの応答時間を短くしたり、応答データの品質を高めたりすることができる。
【図面の簡単な説明】
【0019】
【図1】本発明の実施の形態1のシステム(P2P型Webプロキシネットワークシステム)の全体の構成を示す図である。
【図2】実施の形態1のシステムでのネットワーク構造を示す図である。
【図3】実施の形態1のシステムでのネットワーク構築手続き等について示す図である。
【図4】実施の形態1のシステムでのWebクライアントからのアクセス手順(その1)を示す図である。
【図5】実施の形態1のシステムでのWebクライアントからのアクセス手順(その2)を示す図である。
【図6】実施の形態1のシステムでのWebサーバ側のキャッシュ更新の機能について示す図である。
【図7】実施の形態1のシステムでのグループリーダサーバによる応答サーバの選択の判定処理例について示す図である。
【図8】実施の形態1のシステムでの機能構成について示す図である。
【図9】本発明の実施の形態2のシステムでのコンテンツフィルタリング処理例について示す図である。
【図10】実施の形態2のシステムでの機能構成について示す図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【0021】
<実施の形態1>
図1〜図7を用いて、本発明の実施の形態1のシステム(P2P型Webプロキシネットワークシステム)について説明する。特に、Webクライアント情報として、今までのWebクライアント−Webプロキシサーバ間におけるWebコンテンツキャッシュデータの授受の時の応答時間情報を用いて、最適な応答ノードを選択する構成を示す。
【0022】
[システム構成]
図1において、実施の形態1のシステムの全体の構成として、インターネット上、ユーザ端末(Webクライアント)20と、Webサーバ30と、それらの間に介在するWebプロキシサーバP2Pネットワーク(N0と略す)100とを有する。WebプロキシサーバP2Pネットワーク(N0)100は、複数のWebプロキシサーバ10によるP2Pネットワークで構成される。15は、P2PノードであるWebプロキシサーバ10間の通信のリンク(論理的な接続)を示す。Webプロキシサーバ10(特に後述のGMS12)は、Webサーバ30のWebコンテンツ(オリジナル)のデータ(51)に関するキャッシュデータ(52)を保有する。
【0023】
ユーザ端末(Webクライアント)20は、Webブラウザ21と、Webブラウザ21の追加機能を実現するプラグイン22とを備える、PC等の各種の情報処理装置である。本システムでは、Webクライアント情報71を利用して特徴的な処理を行うため、Webクライアント20側に、対応する処理モジュール(プログラム)であるプラグイン22を備える。なお、プラグイン22という形に限らず、同様の処理機能をユーザ端末20の持つ機能として実装すればよい。
【0024】
Webサーバ30は、Webサーバ31(プログラム)と、後述の(Webサーバ用)クライアント機能32とを備える情報処理装置(Webサーバ装置)であり、コンテンツ(オリジナル)51を保有/提供する。コンテンツ(オリジナル)51は、Webサーバ30により提供されるサービス処理と捉えてもよい。
【0025】
ユーザ端末20のWebブラウザ21(プラグイン22の処理を経由する)から、Webサーバ30の代わりに、本ネットワークN0のWebプロキシサーバ10へアクセスし、Webコンテンツのキャッシュデータ(52)を取得する。N0のキャッシュ(52)を利用することにより、たとえ応答速度の遅いWebサーバ30のコンテンツ(51)(例えば高負荷、遠距離のサーバ、大容量のコンテンツなど)に対しても、ユーザ端末20から高速なアクセス(取得)が可能である。
【0026】
Webクライアント20−Webサーバ30間で、特に人が何もしなくても自動的に、本ネットワークN0が、コンテンツ(51)に関する負荷分散を図ってくれる。N0は、DHTによるキャッシュ(52)の配置及びその高速な検索、負荷分散などを実現する。
【0027】
なお本システムで、各ノード(20,10,30)は、必要に応じてID情報が付与され管理される。このIDは、IPアドレスやURL、あるいはハッシュ値などが適用可能である。例えば、ユーザ端末20は、WebクライアントID(プラグインID)を持つ。Webサーバ30は、WebサーバID,コンテンツIDなどを持つ。Webプロキシサーバ10は、WebプロキシサーバID(後述のGLSノードID,GMSノードID),コンテンツIDなどを持つ。
【0028】
[ネットワーク構造]
図2で、図1のWebプロキシサーバP2Pネットワーク(N0)100のネットワーク構造を示す。N0は、2種類(2層)のネットワークN1,N2により構成される。N0のWebプロキシサーバ10は、2種類のWebプロキシサーバ10(GLS11,GMS12)により構成される。第1のネットワーク(GLSネットワーク)N1は、第1種のWebプロキシサーバ10であるグループリーダサーバ(GLS)11により構成される。第2のネットワーク(GMSネットワーク)N2は、上位の1つのGLS11と、その下位に接続(リンク)される、第2種のWebプロキシサーバ10であるグループメンバサーバ(GMS)12により構成される。
【0029】
第1のネットワーク(GLSネットワーク)N1は、構造化ネットワーク(ネットワーク管理者により設定される基本的に静的な構造のネットワーク)である。各GLS11ノードは、FQDNで管理されるドメインに対応付けられるグループ(第2のネットワークN2)を担当するように構成(設定)される。N1内(グループ(N2)間)では、各GLS11ノードが、DHTを用いて、GLS11間でのキャッシュデータ(52)の配置、検索、負荷分散など(DHT機能と総称する)を高速に実現する。各GLS11は、DHT情報や、自身の担当グループ(N2)を構成する各GMS12ノードの情報などを、管理情報61として保有する。
【0030】
第2のネットワーク(GMSネットワーク)N2は、非構造化ネットワーク(基本的に動的な構造のネットワーク)であり、負荷の変化や障害に強く、コンテンツ(52)の人気(要求の多さ)に応じて、適宜GMS12ノードが増減する。N2は、GLS11ノード毎の担当ドメイン(FQDN)のグループとして構築される。N2は、管理上は図示のようにツリー構造(P2Pのリンク15がツリー状)のネットワークとして構成され、グループのメンバである複数のGMS12ノードは、このツリー構造で上位の1つのGLS11に対して接続される。特にグループ(N2)内で複数のGMS12が同じコンテンツ(51)のキャッシュデータ(52)を保有することにより負荷分散を図る。
【0031】
[FQDN・ドメイン]
本システムでは、グループ(N2)の構成に関し、FQDN(Fully Qualified Domain Name:完全修飾ドメイン名)を使用する。FQDNは階層構造を持つドメイン名である(例:www.abcde.jp)。1つのGLS11は、1つのFQDNを担当し、当該FQDN(対応ドメイン)に応じたグループ(N2)を担当し、当該グループ(N2)の情報を管理情報61として持つ。
【0032】
例えば図2で、N1のGLS11のうちID「GLS1」は、ある第1のFQDN#1を担当し、ID「GLS2」は、ある第2のFQDN#2を担当する。例えば、「GLS1」のグループ(N2)では、GMS12であるID「GMS1」〜「GMS4」が接続されている。
【0033】
GLSネットワークN1の構築の際は、DHTの仕組みを利用して、FQDN(ドメイン)に対してIPアドレス(ノード)を一意に対応させるハッシュ関数によって、当該FQDN(ドメイン)とIPアドレス(ノード)との対応関係を決定する。
【0034】
コンテンツID(URL等)とFQDN(ドメイン)との対応関係があり、DHTによりFQDN(ドメイン)とIPアドレス(ノード)との一意の対応関係が管理される。即ちコンテンツ(51)のキャッシュ(52)が配置されるグループ(N2)のGLS11ノードのIPアドレスが管理される。またGLS11は、グループ(N2)内でキャッシュ(52)が配置されるGMS12ノードのIPアドレスを管理する。Webクライアント20から対象キャッシュデータ(52)へのアクセスの際の流れとしては、コンテンツID(URL等)→FQDN(ドメイン)→DHT(ハッシュ)→IPアドレス(GLSノード)→(リダイレクト)→IPアドレス(GMSノード)→対象コンテンツ(キャッシュ)、といった対応関係で到達することができる(後述)。
【0035】
上記に関する構成例として、本システムでは、まず、FQDNから生成されるDHTに基づいてGMS12(もしくはグループ(N2))を選出する。このDHTは、キャッシュサーバ(応答ノードの候補)として、唯一のサーバ(GMS12/グループ)を指す(対応付ける)のではなく、特に、DHT上の距離空間で距離的に近いサーバ(群)を代替サーバとして選出可能な構成とする。例えば上記構成により選出した上位の(距離的に一番近い)サーバの応答速度が遅いときは、DHT上の距離が次に近いサーバ(群)をキャッシュサーバ(応答ノードの候補)として選出する。上記構成により、本システムでは、キャパシティが自動的に且つ効率的に増大する。
【0036】
[DHT]
DHTの手法(公知技術)において、各P2Pノード(本システムでのN1のGLS11)は、DHTによる分散的な経路情報(DHT情報)を保有する。経路情報は、自ノードから他ノード(宛先ノード)へデータを送信する際に、自ノードからリンク(15)を張っているいずれのノードへデータを転送すれば宛先ノードへ届けることができるかを示す情報である。N1のGLS11は、管理情報61のうちのDHT情報を用いて、コンテンツキャッシュデータ(52)の保有先となるグループ(対応GLS11)及びノード(GMS12)の登録及び検索が可能である。
【0037】
GLS11の持つ管理情報61は、ユーザ端末20が要求している対象コンテンツのキャッシュデータ(52)を提供するために、N1内のどのGLS11ノード(該当GLS11)へ要求を転送するべきかを決定するために必要なDHT情報、及び、該当GLS11のグループ(N2)内のどのGMS12ノード(該当GMS12)へ要求を転送(リダイレクト)するべきかを決定するために必要な情報(キャッシュの配置を含むGLSノード情報)を含む。該当GMS12は、対象キャッシュ(52)を保有するノードや、当該データ(52)をWebクライアント20へ応答させるノード(応答ノード)のことである。該当GLS11は、該当GMS12を含むグループ(N2)の上位ノードのことである。上記DHT情報は、ハッシュ関数に基づき計算される、例えばコンテンツID(URL等)またはその対応ドメインと、宛先/転送先ノードID(GLSノードID)との対応関係の情報を含む。
【0038】
[管理情報]
図3〜図5等に示すように、各ノードが本システムに係わる管理情報を持つ。Webクライアント20(プラグイン22)は、管理情報70(図4,図5)として、アクセス用情報、GLSノード情報、GMSノード情報、などを持つ。上記アクセス用情報は、Webクライアント20からネットワークN0(キャッシュ)へアクセスするための情報であり、対象コンテンツまたはその対応ドメインの情報、後述の初期ノード情報、N1(GLS11)へのアクセスにより得られるノード情報、などである。アクセス先ノードは基本的にN1のGLS11ノードとなる。上記GLSノード情報やGMSノード情報は、初期設定されたアクセス先GLS11ノード(初期ノード)のIPアドレス情報や、アクセスの実績に応じて増えるノード(11,12)毎のIPアドレス情報などである。また実施の形態1では、GMSノード情報として、応答時間(RT)の情報を含む。この応答時間(RT)の情報は、当該Webクライアント20が今まで(過去)にGMS12ノードとの間でキャッシュデータ(52)を授受した時のGMS12からの応答時間を示す情報である(図5)。
【0039】
GLS11は、管理情報61(図3,図4)として、DHT情報、GLSノード情報、GMSノード情報などを持つ。上記DHT情報は、前述の経路情報を含む、コンテンツID/ドメインと宛先/転送先ノードID(GLSノードID)との対応関係を示す情報である。上記GLSノード情報は、N1内の他のGLS11ノードのIPアドレスなどの通信用の情報である。上記GMSノード情報は、当該GLS11の担当グループ(N2)内に接続されるメンバである各GMS12ノードのIPアドレスなどの通信用の情報、及びGMS12に配置されるキャッシュ(52)を示す管理情報である。GMSノード情報として特に、負荷情報、応答時間(RT)情報などを含む。負荷情報は、GMS11の負荷状態を示す情報であり、該当GMS12から通知される。応答時間(RT)情報は、GMS11とWebクライアント20との応答時間(実績)を示す情報であり、Webクライアント20側(Webクライアント情報71)から提供される。
【0040】
GMS12は、管理情報62(図3,図4)として、グループノード情報、コンテンツ情報、負荷情報などを持つ。上記グループノード情報は、当該GMS12が含まれるグループ(N2)の上位のGLS11ノードや他のGMS12ノードとの通信用のIPアドレス情報などである。コンテンツ情報は、当該GMS12が保有するWebコンテンツ(51)のキャッシュデータ(52)のIDや他の管理情報などである。負荷情報は、当該GMS12の負荷状態を示す情報であり、GLS11へ通知される。
【0041】
Webサーバ30の持つ管理情報80(図6)として、アクセス用情報、キャッシュ情報などを含む。アクセス用情報は、Webクライアント20側と同様に、本ネットワークN0(GLS11)にアクセスするための情報である。キャッシュ情報は、自身が保有するWebコンテンツ(オリジナル)(51)のIDや他の管理情報である。
【0042】
[ネットワーク構築]
図3で、N0(N1,N2)のネットワーク構築の手続きや関連処理等について説明する。
【0043】
(N1構築) GLSネットワークN1の構築では、GLS11毎の担当グループ(N2)となるドメイン(FQDN)を決める。所定の特性のハッシュ関数を用いて、ドメイン(FQDN)に対してIPアドレス(ノードのIPアドレス)を対応付ける。このドメイン(入力)とIPアドレス(出力)との対応関係は多対一である(1つのGLS11は複数ドメインを1グループとして担当することができる)。
【0044】
N0へのキャッシュ登録(配置)としては、例えば、第1のコンテンツ(51)のURLが第1のドメイン(例:図2、FQDN#1)に対応するとき、DHTで対応付けられる第1のIPアドレスのGLS11(例:「GLS1」)のグループ(N2)内のGMS12に対応キャッシュ(52)が保有され、また第2のWebコンテンツ(52)のURLが第2のドメイン(例:FQDN#2)に対応するとき、対応付けられる第2のIPアドレスのGLS11(例:「GLS2」)のグループ(N2)内のGMS12に対応キャッシュ(52)が保有される。GLS11は、管理情報61(GMSノード情報)でキャッシュ配置を管理する。
【0045】
N1の構築及び管理では、ネットワーク構築プロトコル(GLS11ノードの増減など)、情報共有プロトコル(GLS11ノード間のDHT情報の通信など)、耐障害プロトコル(グループ(N2)間のキャッシュ(52)の負荷分散など)等については、例えば既存プロトコルを利用して実現する。
【0046】
GLS11ノードには、最初(設置時)、ネットワーク管理者などにより、初期の管理情報61が設定される(あるいは隣ノードからのDHT情報をコピーする等)。また、運用時、GLS11ノード間では、随時、P2Pのリンク15を介して、管理情報61の内容(DHT情報など)が交換される。各GLS11ノードで最適な内容の状態になるように管理情報61が動的に更新される。新規のGLS11ノードが追加された場合、N1内の他のGLS11ノードと通信して情報を取得することにより、新規のGLS11ノードの管理情報61が構成される。
【0047】
(N2構築) GMSネットワークN2の構築では、GLS11をルート(最上位)のノードとして、その下位に、GMS12による管理上のツリー構造のP2Pネットワークを構築する。各GMS12ノードは負荷などに応じて自由に増減される。各GMS12ノードは、自身の管理情報62を管理する。
【0048】
なおツリー構造に応じて、GMS12をグループ(N2)内のサブリーダとして設定することもできる。例えば、図3の「GMS2」をサブリーダとし、その下位の「GMS3」「GMS4」を含むサブグループを構成し、サブリーダは、サブグループ内のGMS12ノードの情報を管理する。
【0049】
N2の構築及び管理では、ネットワーク構築プロトコル(GMS12ノードの増減など)、情報共有プロトコル(GMS12ノード間での情報通知など)、耐障害プロトコル(GMS12ノード間でのキャッシュ(52)の負荷分散など)等については、例えば既存プロトコルを利用して実現する。
【0050】
運用時、各GMS12は、自身の管理情報62で管理する自身の負荷状態を示す負荷情報を、自グループ(N2)の上位のGLS11ノードへ通知する(図3、B1)。GLS11は、通知(B1)を受けると、管理情報61の該当GMS12の負荷状態を記憶、更新する。なお逆に、GLS11が下位の各GMS12から負荷情報を収集する形などとしてもよい。負荷情報の通知(B1)の処理例としては、各GMS12は、自身の負荷(例えば計測値)が一定以上(例えば閾値以上)である場合(時)、その負荷状態(負荷大)を示す情報をGLS11へ通知する。また、GMS12は、自身の負荷(例えば計測値)が一定以下(例えば閾値以下)である場合(時)、その負荷状態(負荷小)を示す情報をGLS11へ通知する。
【0051】
GMS12の負荷状態(負荷情報)として、少なくとも2値(負荷大/負荷小)を有するが、複数レベル値としてもよいし、負荷の計測値としてもよい。また上記に限らず他の各種の手段(例えば既存のサーバ監視システムの機能)を用いて、GMS12の負荷状態を検出し把握してもよい。
【0052】
[クライアントアクセス手順(その1)]
図4で、Webコンテンツキャッシュデータ(52)要求時のWebクライアント20からのアクセス手順(基本)を示す。概略、ステップS1〜S3の順の処理が行われる。
【0053】
(S1) まず、Webブラウザ21(プラグイン22)から、N1のGLS11ノードにアクセスし、対象コンテンツ取得の要求を送信する。N1のDHT機能により、Webクライアント20から該当GLS11ノード(対象キャッシュ(52)を保有している該当GMS12を含むグループ(N2)の上位ノード)へ直接的にアクセス可能である。
【0054】
(S2) 上記S1の要求を受けた該当GLS11ノードは、当該要求を、自身の担当グループ(N2)内の1つの該当GMS12ノード(対象キャッシュ(52)を保有するノード)へ転送して処理(応答)を担当させる。そのために、GLS11は、自身の管理情報61(各GMS12ノードの負荷情報を含む)を参照し、対象キャッシュ(52)を保有する複数のGMS12ノードのうち、なるべく負荷の小さい状態のGMS12ノードを応答ノードとして選択する。GLS11は、S1の要求を自ノードから当該選択した応答ノード(対応するIPアドレス)へリダイレクトさせる。
【0055】
なお通常、負荷分散の観点から、グループ(N2)内の複数のGMS12ノードに同じキャッシュ(52)を保有させるが、1つしかキャッシュ保有ノードが無い場合は当該GMS12が応答ノードとして決定される。また、上記選択した応答ノード(GMS12)での応答実行ができない場合は、GLS11を介して別のGMS12ノード(例えば次に負荷が小さいノード)へ切り換えることができ、同様にリダイレクトすればよい。
【0056】
上記GMS12の負荷に応じて選択する場合の判定例としては、GLS11は、通知(B1)で負荷が一定以上の状態(負荷大)のGMS12については、以降、当該GMS12をリダイレクト先として指定しないようにする(優先順位を下げる等)。また、GLS11は、通知(B1)で負荷が一定以下の状態(負荷小)のGMS12については、以降、当該GMS12をリダイレクト先として指定する候補にするようにする(優先順位を上げる等)。
【0057】
(S3) 上記S2を受け、Webブラウザ21(プラグイン22)は、N2の上記リダイレクト先(応答ノード)のGMS12(IPアドレス)へアクセスし、当該ノードで保有している該当キャッシュデータ(52)を取得する。即ち、当該GMS12からWebクライアント20へ当該キャッシュ(コピー)を応答送信する。プラグイン22は、対象データを正常に受信すると、自身の管理情報70(GMSノード情報)に、今回の当該GMS12との応答で要した実績の応答時間(RT)の情報を記録する。
【0058】
図4の例では、対象コンテンツキャッシュデータ(52)を保有する該当ノードが「GLS1」のグループ(N2)内の「GMS1」「GMS2」等である。S2の際、「GLS1」は、その時の負荷が一番小さい例えば「GMS1」を選択している。そして、「GMS1」からのデータの応答の結果、Webクライアント20は、「GMS1」からのデータの応答で要した時間の大きさを示す情報を記録する。
【0059】
なおS1,S2の際、プラグイン22では、例えば、対象コンテンツID(URL等)を要求に添えてGLS11側へ与える。GLS11側は、Webクライアント20から与えられた情報に対し、管理情報61(DHT情報)の参照により、対象コンテンツに関係付けられる該当GLS11ノード(IPアドレス)を高速に検索できる。
【0060】
[クライアントアクセス手順(その2)]
続いて、図5で、Webコンテンツキャッシュデータ(52)要求時のWebクライアント20からのアクセス手順(詳細)について示す。ステップA1〜A4等を有する。
【0061】
前記S2でGLS11が管理情報61に基づきリダイレクト先(応答ノード)のGMS12を選択する判定処理の際に、各GMS12の負荷状態と併せて、応答時間(RT)情報を考慮して決定する。
【0062】
(A1) Webクライアント20(プラグイン22)は、管理情報70の一部として、N0(N1)への初期アクセス用の1つ以上のGLS11ノードのIPアドレス等の情報(初期ノード情報)を有する。この初期GLS11ノードは任意でよい。Webクライアント20は、初回、初期ノード情報を用いて、N1の初期GLS11ノードへアクセスする。図5の例では初期ノードが「GLS0」である。例えば、プラグイン22には予め上記初期ノード情報が設定(登録)されている。
【0063】
上記初回アクセスした際、初期GLS11ノードから、その管理情報61(DHT情報)により、GLSネットワークN1の情報が得られる。即ち、対象キャッシュを保有する該当GMS12ノードを含むグループ(N2)の上位ノードである該当GLS11ノードの情報、あるいは該当GLS11ノードを含む複数または全てのGLS11ノードの情報が得られる。Webクライアント20は、得られた情報を用いて、該当GLS11ノード(IPアドレス)へアクセス(要求を送信)する。本例では該当GLS11ノードが「GLS1」である。
【0064】
(A2) Webクライアント20は、2回目以降のN1へのアクセスでは、上記A1の初回アクセス時に得た情報を用いて、該当GLS11ノードへ直接的にアクセス可能となる(図4のS1に対応)。
【0065】
なおWebクライアント20からのN0へのアクセス時に前回に対してGLSネットワークN1の構造が変化していた場合は、A1の初回アクセス時と同様の手順を踏む。なお基本的にはGLS11を介してGMS12(応答ノード)へアクセスする方式とし、Webクライアント20から直接的に該当GMS12へアクセスする方式とはしない(その都度の適切な応答ノードを決定するため)。
【0066】
前記図4のS1,S2に関し、該当GLS11ノードからグループ(N2)内の該当GMS12(応答ノード)を選択しリダイレクトさせる手順の詳細処理例は以下である。
【0067】
(A3) プラグイン22は、前述のように、今まで(過去)にキャッシュ(52)の取得でアクセスしたGMS12ノードの情報、特に応答時間(RT)情報を、自身の管理情報70として保有している。プラグイン22は、該当GLS11へアクセスする際(A2)に、要求情報と共に、上記応答時間(RT)を含む自身の情報(Webクライアント情報71)を併せて送信・提供する。あるいは、その際、該当GLS11側からプラグイン22側へ応答時間(RT)を含むWebクライアント情報71を要求して取得してもよい。該当GLS11は、取得したWebクライアント情報71の内容を管理情報61に記録する。例えば、WebクライアントIDと、当該応答時間(RT)が長かったGMS12のノードIDとの対応関係の情報を記録する(後述、図7)。
【0068】
また上記Webクライアント情報71のやりとりに関しては、上記とは別の所定のタイミングで、GLS11がプラグイン22からWebクライアント情報71を収集・取得してもよい。また、要求(A2)の都度に送受信せずに、応答時間(RT)の変化が大きい場合のみ送受信したり、既にGLS11で取得済みのWebクライアント情報71を繰り返し参照してもよい。
【0069】
応答時間(RT)情報としては、例えば、リダイレクト後にWebクライアント20(プラグイン22)から該当GMS12へ要求を送信してから応答のキャッシュデータを受信するまでに要したターンアラウンドタイム[秒]などの形で計測した値としてもよい。あるいは、その計測値をもとに複数のレベルに区分した値などの形にしてもよい(例:短い/普通/長い:3レベル)。また勿論、応答時間に限らず、対応する応答速度などへ変換した値でもよい。あるいは、プラグイン22での判断で、応答時間が所定の閾値以上で長かった場合や、所定の閾値以下で短かった場合に、対応するGMSノードIDを記録またはGLS11へ提供するようにしてもよいし、同様にGLS11側で判断してもよい。
【0070】
図5の例では、あるWebクライアント20「CL1」について、過去の直近で、「GMS1」との応答時間(RT)が一番短く、「GMS2」のRTが一番長かったとする。そして、A3で提供するRT情報として、RT値が閾値以下、あるいは一番短かった条件に該当するGMS12のノードID「GMS1」を送信している。
【0071】
(A4) 該当GLS11ノードは、A2(S1)の要求を受けた際、管理情報61の参照に基づき、前述のように各GMS12ノードの負荷状態を考慮すると共に、各GMS12の応答時間(RT)情報を併せて考慮し、応答ノードとするGMS12を選択する。例えば、グループ(N2)から、まず負荷が小さいあるいは問題無いノードを基本的な候補として抽出し、その複数のGMS12ノードのうち、該当Webクライアント20との応答時間(RT)が短かったノードを優先的に選択する。選択された応答ノード(IPアドレス)がリダイレクト先として指定される。本例では、A3の情報により、「CL1」−「GMS1」間でRTが短かったため、「GMS1」が応答ノードとして選択される。
【0072】
別の処理例では、該当Webクライアント20との応答時間(RT)が長かったGMS12ノードを応答ノード選択の候補から外す(優先順位を下げる等)ようにしてもよい。
【0073】
なお上記応答ノード選択の処理例では、同じIDのWebクライアント20(例:「CL1」)に関して判定しているが、他の異なるIDのWebクライアント20(例:「CL2」)に関しても、それらのクライアント(CL1,CL2)の位置等が類似であれば、応答時間(RT)も類似になると推測できるため、それら異なるIDのWebクライアント20(複数)に関しても同様に判定してもよい。
【0074】
またWebクライアント20でプラグイン22が管理情報70を保持する方式に関して、例えば過去の複数回の応答時間(RT)の情報を履歴として保存する。例えば、Webクライアント20が持つ所定のメモリ量の範囲内で保持する形とし、過去の古い情報から順に消去する。また、RT値の短い順/長い順にランキングのようにレコードを保持する形としてもよい。
【0075】
[コンテンツキャッシュ更新]
図6で、Webサーバ30側によるWebコンテンツキャッシュデータの更新の機能に関して説明する。Webサーバ30に備えるクライアント機能32により、Webサーバ31のコンテンツ(オリジナル)51のデータをネットワークN0へキャッシュ登録し、またその後、N0側へプッシュすることにより、N2(GMS12)のコンテンツ(キャッシュ)52のデータを更新させる処理を行う。ステップC1,C2を有する。
【0076】
例えば、Webサーバ30(31)は、コンテンツ(オリジナル)51として、第1のコンテンツCa,第2のコンテンツCbを持つとする。キャッシュ登録時、第1のコンテンツCaは、DHTにより、ある第1のGLS11(例:「GLS1」)のグループ(N2)内のGMS12(例:「GMS1」〜「GMS3」)へ格納され、第2のコンテンツCbは、DHTにより、ある第2のGLS11(例:「GLS2」)のグループ(N2)のGMS12(例:「GMS4」)へ格納されるとする。
【0077】
(C1) ステップC1で、Webサーバ30(31)でのコンテンツ(51)の更新に伴いキャッシュ(52)の更新を実行したい時、クライアント機能32から、N1(該当GLS11)へアクセスする。この際のアクセス手順は、前述のWebクライアント20側のアクセス手順と同様にDHTの仕組み等を用いてなされる。本例では、クライアント機能32から、コンテンツCaのデータ(コピー)が「GLS1」へプッシュ(送信)され、コンテンツCbのデータ(コピー)が「GLS2」へプッシュ(送信)される。
【0078】
(C2) ステップC2で、上記プッシュを受けた該当GLS11ノード(GLS1,GLS2)は、自身のグループ(N2)内の該当GMS12ノード(旧版のキャッシュを保有しているノード)へ、更新版のコンテンツデータを送信する。この際、N2のツリー構造に従い、上位のGLS11から下位の各GMS12へ当該データを順次伝播させ、該当の各GMS12内のキャッシュ(52)を更新させる。例えば「GLS1」のグループ内の各GMS12(「GMS1」〜「GMS3」)で保有するキャッシュCa’がすべて更新される。
【0079】
Webサーバ30側のクライアント機能32により、ネットワークN0内のキャッシュデータ(52)の鮮度を高めることができ、即ちユーザ端末20への応答性能・応答品質を高めることができる。
【0080】
[判定処理例]
図7で、GLS11により応答ノード(GMS12)を選択する際の判定処理例について示す。判定の際に考慮する要素として、前述のように、負荷と応答時間(RT)があり、本実施の形態では両方を考慮して選択する。一方のみ考慮して選択する形態も可能である。
【0081】
図7の例では、「GLS1」のグループ(N2)の「GMS1」「GMS2」があり、それぞれ同じコンテンツ(キャッシュ)Cx’を保有しているとする。例えば、過去の直近のキャッシュ応答における応答時間(RT)として、ここでは簡単に短い/普通/長いの3レベル値としたとき、「GMS1」はRTが短く、「GMS2」はRTが長かったとする。このRT情報はそれぞれプラグイン22の管理情報70にGMSノードIDとの対応関係で記載される。このRT情報を含むWebクライアント情報71がGLS11へ提供され、GLS11の管理情報61に対応情報が記載される。
【0082】
一方、GLS11は、随時、各GMS12からの負荷情報の通知(B1)を受けて、管理情報61にGMS12の負荷状態(現在の負荷状態)を記載している。例えば負荷をここでは簡単に小/中/大の3レベル値としたとき、「GMS1」は現在の負荷が大、「GMS2」は現在の負荷が小、とする。
【0083】
前記S2(A4)で、GLS11が応答ノードを選択するための判定処理において、管理情報61を参照し、図7の例の状態では、応答ノードの候補となる「GMS1」「GMS2」に関して、現在の負荷の観点では、「GMS2」の方が小さく、過去の応答時間(RT)の観点では、「GMS1」の方が短い。ここで、負荷と応答時間の両方を考慮して判定する方式において、負荷の小ささを優先して選択する方式とする場合は、「GMS2」を応答ノードとして選択し、応答時間の短さを優先して選択する方式とする場合は、「GMS1」を応答ノードとして選択する。実施の形態1では、応答時間(RT)の短さを優先して選択する方式とし、本例では「GMS1」が応答ノードとして選択される。
【0084】
なお上記方式(優先する観点)を選択して設定可能としたり、上記方式を状況に応じて使い分けるように制御する形態としてもよい。また例えば、両方の要素(負荷、応答時間)の値を用いて所定の計算式で求めた値をもとに応答ノードを選択する方式としてもよい。例えば要素(優先する観点)に応じて重み付けの係数を設定し、候補のGMS12ノード毎に、[負荷の係数]×[現在の負荷値]+[応答時間の係数]×[過去の応答時間値]、といった計算式で値を求め、当該値に応じてノードを選択する。
【0085】
また、利用する応答時間(RT)の情報としては、過去の直近のアクセス時の情報に限らず、過去の複数回のアクセスにおける平均などの統計値を利用してもよいし、ベストやワーストのランキング値を利用してもよい。
【0086】
[機能]
図8を用いて、実施の形態1のシステムのハードウェア・ソフトウェア実装構成や機能構成についてまとめると以下である。ユーザ端末20は、プロセッサ、メモリ(ROM,RAM,ディスク等)、入力装置、出力装置、通信インタフェース装置、及びバスなどを備え、これらを用いたソフトウェアプログラム処理(制御部201)により、Webブラウザ21、及びプラグイン22を実現する。プラグイン22により、メモリ(記憶部202)に、Webクライアント情報71を含む管理情報70を記憶する。
【0087】
プラグイン22は、アクセス機能22A、Webクライアント情報管理機能22Bなどの処理部を有する。アクセス機能22Aは、前述のアクセス用情報を用いて、対象コンテンツ(52)を取得(要求)するためにネットワークN0(GLS11,GMS12)へアクセスする機能である。Webクライアント情報管理機能22Bは、例えば、GMS12とのキャッシュデータの応答での応答時間(RT)を計測し、所定の形式の応答時間情報72を作成し、Webクライアント情報71(管理情報70)の中に格納する処理や、GLS11へWebクライアント情報71を送信・提供する処理などを行う。
【0088】
Webサーバ30は、プロセッサ、メモリ、入力装置、出力装置、通信インタフェース装置、及びバスなどを備え、これらを用いたソフトウェアプログラム処理(制御部301)により、Webサーバ31やクライアント機能32を実現する。Webサーバ31及びクライアント機能32は、メモリ(記憶部302)に、Webコンテンツのオリジナルデータ(51)、及び管理情報80などを記憶する。
【0089】
クライアント機能32は、アクセス機能32A、プッシュ機能32Bなどの処理部を備える。アクセス機能32Aは、Webクライアント20側の機能(22A)と同様にN0(GLS11)へアクセスするための機能である。プッシュ機能32Bは、前述(図6)のプッシュによるキャッシュ更新などの処理を行う。
【0090】
Webプロキシサーバ10は、GLS11(第1種のWebプロキシサーバ)、GMS12(第2種のWebプロキシサーバ)を有し、それぞれ、プロセッサ、メモリ、入力装置、出力装置、通信インタフェース装置、及びバスなどを備え、これらを用いたソフトウェアプログラム処理(制御部111,121)により、対応する種別に応じたGLS機能やGMS機能を実現する。GLS機能は、メモリ(記憶部112)に、前述の管理情報61(DHT,GLS,GMSなどの情報)を記憶する。GMS機能は、メモリ(記憶部122)に、前述の管理情報62(グループ、コンテンツ、負荷などの情報)、及びキャッシュデータ(52)を記憶する。
【0091】
GLS機能は、DHT機能11A、グループ管理機能11B、応答ノード選択機能11Cなどを有する。DHT機能11Aは、前述のDHTによるキャッシュ(52)の登録、検索などの処理、及び管理情報61のDHT情報の管理処理を行う。グループ管理機能11Bは、担当グループ(N2)の各GMS12ノードの情報などを管理情報61として管理する処理を行う。応答ノード選択機能11Cは、前述のWebクライアント情報71(管理情報61)に基づき応答ノードを選択する判定などの処理を行う。
【0092】
GMS機能は、キャッシュ管理機能12A、負荷管理機能12B、グループ通信機能12Cなどを有する。キャッシュ管理機能12Aは、自ノードのキャッシュデータ(52)をメモリに保有し情報を管理する処理などを行う。負荷管理機能12Bは、自ノードの負荷状態を計測し負荷情報として管理情報62に格納する処理などを行う。グループ通信機能は、負荷情報の通知などのために自グループの上位のGLS11や他のGMS12と通信する処理などを行う。
【0093】
[効果等]
以上のように、実施の形態1によれば、WebプロキシサーバP2Pネットワーク(N0)及びDHT等の構成で、Webコンテンツキャッシュデータ(52)の負荷分散を図りつつ、Webクライアント情報71(特に応答時間情報)を用いてその都度好適な応答ノードを選択する構成により、従来よりも更に、ユーザ端末(Webクライアント)20からみた応答性能などを向上できる。特に、ネットワークの負荷分散などを図りつつ、ユーザ端末20へのキャッシュデータ(52)の応答時間を短くすることができる。
【0094】
本システムで、実績の応答時間(RT)が長かったGMS12ノードは、以降、応答ノードとして選択されにくくなるので、負荷は減る可能性があり、やがて応答性能が改善する可能性がある。改善した場合、当該ノードが応答ノードとして選択されやすくなる。また、応答時間(RT)が短かったノードは、以降、応答ノードとして選択されやすくなるので、負荷は増える可能性があり、やがて応答性能が落ちる可能性がある。落ちた場合、当該ノードが応答ノードとして選択されにくくなる。このように調整の作用が働くため、ネットワーク性能を向上または維持することができる。
【0095】
<実施の形態2>
図9,図10を用いて、本発明の実施の形態2のシステムについて説明する。実施の形態2では、実施の形態1を前提(図1〜図3等の基本構成を共通とする)として、更に、Webクライアント情報71として、クライアント属性情報を利用し、クライアント属性情報に応じてキャッシュデータ応答に関するコンテンツフィルタリング(「CF」と略す)を行い、適切な(品質の高い)キャッシュデータを応答する構成を示す。
【0096】
実施の形態2では、ネットワークN1のGLS11ノードは、Webクライアント20(プラグイン22)から提供されるクライアント属性情報に応じて、コンテンツキャッシュデータ(52)の取得(要求−応答)に係わる、応答ノード(実施の形態1と同様)を含む、CFの内容(どのGMS12ノードのどのコンテンツキャッシュデータ(52)をブロック/非ブロックするか等)を決定する。そして、応答品質を高めるための好適な応答ノードとなるGMS12ノードを選択し、選択されたGMS12ノードからCF後のキャッシュデータ(52)を応答する。また特に、複数のWebクライアント20及び複数のコンテンツ(51)に関して、ネットワークN0側で上記クライアント属性情報を用いて協調フィルタリング処理を行うことにより、クライアント属性に応じたキャッシュデータ(52)を提供する。
【0097】
実施の形態2のシステムのCF機能は、実施の形態1の機能(応答時間を考慮して応答ノードを選択する機能)とは独立した機能として説明する(実施の形態2では応答時間情報を用いない)。これに限らず、実施の形態1と実施の形態2の機能の両方を組み合わせた形態が可能である。例えば実施の形態1の機能を持つネットワークN0上に実施の形態2のCF機能を持つ上位のネットワークをレイヤとして構成した形態などが可能である。
【0098】
[コンテンツフィルタリング機能]
図9で、実施の形態2のCF機能による処理例を示す。N1側のGLS11は、CF機能を備える。Webクライアント20からのコンテンツ取得要求に対し、GLS11のCF機能により、Webクライアント20からのWebクライアント情報71(クライアント属性情報を含む)に応じて、GMS12のキャッシュ(52)をフィルタリング(例えばブロック/非ブロック)して、該当GMS12ノードからWebクライアント20へ応答する(ブロックの場合はキャッシュデータ送信無し)。
【0099】
Webクライアント20のプラグイン22は、Webクライアント情報71として、クライアント属性情報73(あるいはユーザ設定によるCF用設定情報)を管理・保持し、必要に応じてGLS11側へ提供(送信)する。クライアント属性情報73は、Webコンテンツ参照及びCFに係わる属性を示す情報である。具体例としては、ユーザ端末20が教育用(学校など)のPCである場合、会社のPCである場合、一般家庭や個人のPCである場合、などが挙げられる。図9の例では、第1のWebクライアント20である「CL1」のクライアント属性がAであり、第2のWebクライアント20である「CL2」のクライアント属性がBとする。
【0100】
また、Webサーバ30により提供されるコンテンツ(51,52)に関するコンテンツ情報として、コンテンツ属性情報を有し、CFに用いる。図9の例では、「GMS1」が持つ第1のコンテンツ(キャッシュ)Cx’のコンテンツ属性をXとし、「GMS2」が持つ第2のコンテンツ(キャッシュ)Cy’のコンテンツ属性をYとする。コンテンツ属性の具体例としては、教育用(学校など)のWebページ、会社のWebページ、一般家庭や個人の作成のWebページ、などが挙げられる。
【0101】
GLS11は、Webクライアント20から提供されたWebクライアント情報71(クライアント属性情報73)に対応する情報を管理情報61内に格納する。図9の例では、管理情報61として前述のDHT情報(コンテンツとノード(GLS11)との対応関係の情報)やGMSノード情報(キャッシュ配置など)などに加え、CF機能によるCF管理情報91を有する。CF管理情報91において、CF状態(CF制御内容)を示す情報を含み、Webクライアント20の属性と、コンテンツ(コンテンツ属性)と、GMS12(応答ノード)との対応関係における例えばブロック状態(ブロック対象)を管理する。
【0102】
GLS11は、コンテンツ取得要求に対し、CF管理情報91を含む管理情報61を参照し、前述の応答ノードとなるGMS12、及びそのCF対象のキャッシュデータ(52)を決定する。実施の形態2では、CFの内容として、簡単に、ブロック(提供しない)/非ブロック(元のまま提供する)の2通りがあるものとするが、これに限らず所定のCF手法(データを加工して提供する等)を適用してもよい。
【0103】
図9の例では、あるグループ(N2)のGLS11である「GLS1」は、グループ内のGMS12(「GMS1」,「GMS2」)の各キャッシュ(Cx’,Cy’)に関して、管理情報61に基づきCF(ブロック)を実行する。「CL1」(属性A)は、「GMS1」からはコンテンツCx’(属性X)を非ブロックで取得できるが、「GMS2」からはコンテンツCy’(属性Y)がCFによりブロックされ取得できない。また、「CL2」(属性B)は、「GMS2」からはコンテンツCy’(属性Y)を非ブロックで取得できるが、「GMS1」からはコンテンツCx’(属性X)がCFによりブロックされ取得できない。
【0104】
GLS11のCF機能は、クライアント属性とコンテンツ属性との関係を判断し、CF内容を決定する。例えば、CF機能は、複数のWebクライアント(クライアント属性)と複数のコンテンツ(コンテンツ属性)とを対象として、協調フィルタリング(公知技術)の処理を実行し、CF内容を決定する。例えば、ある属性Aの「CL1」はある属性YのコンテンツCy’がブロックされるというCF状態情報を利用し、同じ属性Aの別のWebクライアント20である例えば「CL3」は同じ属性YのCy’がブロックされるように制御される。即ち、類似のクライアント属性に対しては類似のコンテンツ属性をブロック/非ブロックするといったCF内容になる。
【0105】
また、プラグイン22により当該クライアント属性によるコンテンツ属性へのアクセス(対応関係)の情報を管理し、Webクライアント情報71としてGLS11へ提供し、GLS11で当該アクセス(対応関係)の情報を利用して同様に協調フィルタリングなどでCF内容を決定するといった形態としてもよい。
【0106】
また、CF機能(クライアント属性情報に応じてコンテンツの応答をブロックする)をコンテンツ推薦機能(クライアント属性情報に応じて推薦するコンテンツを応答する)に替えてもよい。
【0107】
[機能]
図10を用いて、実施の形態2のシステムのハードウェア・ソフトウェア実装構成や機能構成についてまとめると以下である。図8との違いとして、プラグイン22によるWebクライアント情報71を含む管理情報70として、Webクライアント属性情報73を含む。Webクライアント情報管理機能22Bは、自身のWebクライアント属性情報73をユーザ設定に基づき作成し、Webクライアント情報71の中に格納する処理や、GLS11へ送信・提供する処理などを行う。またコンテンツ(51,52)に関する管理情報であるコンテンツ情報として、コンテンツ属性情報を含む。GLS11のGLS機能は、CF機能11Dを含む。CF機能11Dは、前述(図9)のWebクライアント情報71(クライアント属性情報)に応じて応答ノードの応答キャッシュのフィルタリング処理を行う。GLS機能の管理情報61は、前述のCF管理情報91を含む。
【0108】
[効果等]
以上のように、実施の形態2によれば、WebプロキシサーバP2Pネットワーク(N0)及びDHT等の構成で、Webコンテンツキャッシュデータ(52)の負荷分散を図りつつ、Webクライアント情報71(特にクライアント属性情報)を用いてコンテンツフィルタリングして好適なキャッシュデータを応答する構成により、従来よりも更に、ユーザ端末(Webクライアント)20からみた応答品質などを向上できる。特に、ネットワークの負荷分散などを図りつつ、ユーザ端末20へ応答するコンテンツデータの品質を高めることができる。
【0109】
<変形例等>
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。前述した以外の変形例として以下が挙げられる。
【0110】
実施の形態1のようにWebクライアント20側からN0(GLS11)側へ応答時間(RT)情報を含むWebクライアント情報71を提供するので、例えばRTが長かったGMS12ノード、即ちその時の応答性能が良くなかったノードを情報として把握することができる。この情報を利用して、該当GMS12ノードやそれを含むグループ(N2)あるいはネットワークN0全体に対する対処処理(応答性能の改善を図るための処理)を実行するようにしてもよい。例えば、GLS11から該当GMS12ノードやその管理者へ情報を通知して応答性能の改善に役立てる。例えば、該当グループ(N2)を含めDHTによるキャッシュ(52)の配置を再考し、応答性能の改善を図る。
【産業上の利用可能性】
【0111】
本発明は、インターネット等に利用可能である。
【符号の説明】
【0112】
10…Webプロキシサーバ、11…第1種のWebプロキシサーバ(グループリーダサーバ)、12…第2種のWebプロキシサーバ(グループメンバサーバ)、15…リンク、20…ユーザ端末(Webクライアント)、21…Webブラウザ、22…プラグイン、30…Webサーバ、31…Webサーバ、32…(Webサーバ用)クライアント機能、51…コンテンツ(オリジナル)、52…コンテンツ(キャッシュ)、71…Webクライアント情報、100…WebプロキシサーバP2Pネットワーク(N0)、N1…グループリーダサーバネットワーク、N2…グループメンバサーバネットワーク。

【特許請求の範囲】
【請求項1】
Webコンテンツを要求するWebブラウザを含むWebクライアント装置と、Webコンテンツを提供するWebサーバ装置と、Webクライアント装置とWebサーバ装置の間でWebコンテンツのキャッシュデータを保有し代理応答で提供するWebプロキシサーバ装置とがネットワークで接続され、
複数のWebプロキシサーバ装置がP2Pネットワークで接続され、
前記P2Pネットワークは、
第1種のWebプロキシサーバであるグループリーダのノード群のP2P接続による第1のネットワークと、
前記グループリーダに対して接続される、第2種のWebプロキシサーバであるグループメンバのノード群のP2P接続による第2のネットワークとで構成され、
前記第1種のWebプロキシサーバは、
分散ハッシュテーブル(DHT)情報を用いて、前記Webコンテンツと、当該Webコンテンツのキャッシュデータを保有する前記第2種のWebプロキシサーバを含むグループの前記第1種のWebプロキシサーバとの対応関係を管理し、前記Webクライアント装置からのWebコンテンツの要求を受けると、前記DHT情報を用いて、当該Webコンテンツのキャッシュデータを保有する該当の第2種のWebプロキシサーバを含むグループの該当の第1種のWebプロキシサーバを検索し、必要に応じて当該要求を転送する処理を行うDHT機能と、
自身が担当するグループに対応する前記第2のネットワークのグループメンバの各ノードの情報を管理し各ノードと通信する処理を行うグループ管理機能と、を有し、
前記第2種のWebプロキシサーバは、
前記Webコンテンツのキャッシュデータを保有し情報を管理する処理を行うキャッシュ管理機能と、
自身のグループ内で前記グループリーダのノードと情報を通信する処理を行うグループ通信機能とを有し、
前記Webクライアント装置は、
対象のWebコンテンツの情報を前記第1種のWebプロキシサーバへ送信し、前記第2種のWebプロキシサーバから応答のキャッシュデータを取得する処理を行うアクセス機能と、
自身で管理するWebクライアント情報を前記第1種のWebプロキシサーバに対して提供するWebクライアント情報管理機能とを有し、
前記Webクライアント情報は、前記Webクライアント装置と前記Webプロキシサーバ装置との間で過去に前記Webコンテンツのキャッシュデータを取得した時の応答時間の情報を含み、
前記該当の第1種のWebプロキシサーバは、該当の第2種のWebプロキシサーバの中から、前記要求に対し応答させるノードを決定するために、前記Webクライアント情報を参照し、前記応答時間が短いノードを優先的に選択し、決定したノードへリダイレクトさせる処理を行う応答ノード選択機能を有し、
前記Webクライアント装置は、前記アクセス機能により、前記リダイレクト先の第2種のWebプロキシサーバから前記キャッシュデータを取得し、前記Webクライアント情報管理機能により、その時の応答時間の情報を記録する処理を行うこと、を特徴とするP2P型Webプロキシネットワークシステム。
【請求項2】
請求項1記載のP2P型Webプロキシネットワークシステムにおいて、
前記第2種のWebプロキシサーバは、自身の負荷の状態を含む情報を管理する処理を行う負荷管理機能を有し、前記グループ通信機能により、自身の負荷の状態を含む情報を自身のグループ内の前記グループリーダのノードへ通知する処理を行い、
前記第1種のWebプロキシサーバのグループ管理機能は、前記通知をもとに、各グループメンバのノードの負荷状態を管理し、
前記該当の第1種のWebプロキシサーバは、前記応答ノード選択機能により、該当の第2種のWebプロキシサーバの中から、当該要求に対し応答させるノードを決定するために、前記各グループメンバのノードの負荷状態を参照し、負荷が小さいノードを優先的に選択する、あるいは負荷が大きいノードをなるべく選択しないようにする処理を行うこと、を特徴とするP2P型Webプロキシネットワークシステム。
【請求項3】
請求項1記載のP2P型Webプロキシネットワークシステムにおいて、
前記Webクライアント装置から、前記第1種のWebプロキシサーバに対し、前記Webコンテンツの要求の際に、併せて、前記応答時間の情報を含むWebクライアント情報を送信し、
前記第1種のWebプロキシサーバは、受信したWebクライアント情報に基づき、自身のグループのグループメンバのノード毎の前記応答時間の情報を管理すること、を特徴とするP2P型Webプロキシネットワークシステム。
【請求項4】
請求項1記載のP2P型Webプロキシネットワークシステムにおいて、
前記応答時間の情報は、前記Webクライアント装置が前記リダイレクト先の第2種のWebプロキシサーバから対象のWebコンテンツのキャッシュデータを受信するまでの時間を計測した値であること、を特徴とするP2P型Webプロキシネットワークシステム。
【請求項5】
請求項1記載のP2P型Webプロキシネットワークシステムにおいて、
前記応答時間の情報は、前記Webクライアント装置が前記リダイレクト先の第2種のWebプロキシサーバから対象のWebコンテンツのキャッシュデータを受信するまでの時間の大きさを示すレベル値であること、を特徴とするP2P型Webプロキシネットワークシステム。
【請求項6】
請求項1記載のP2P型Webプロキシネットワークシステムにおいて、
前記Webクライアント装置から前記第1種のWebプロキシサーバへ提供される前記Webクライアント情報は、前記応答時間が短かった第2種のWebプロキシサーバのノードの識別情報を含み、
前記第1種のWebプロキシサーバの応答ノード選択機能は、前記提供された識別情報に基づき、前記応答時間が短かった第2種のWebプロキシサーバのノードを優先的に選択すること、を特徴とするP2P型Webプロキシネットワークシステム。
【請求項7】
請求項1記載のP2P型Webプロキシネットワークシステムにおいて、
前記Webクライアント装置から前記第1種のWebプロキシサーバへ提供される前記Webクライアント情報は、前記応答時間が長かった第2種のWebプロキシサーバのノードの識別情報を含み、
前記第1種のWebプロキシサーバの応答ノード選択機能は、前記提供された識別情報に基づき、前記応答時間が長かった第2種のWebプロキシサーバのノードをなるべく選択しないようにすること、を特徴とするP2P型Webプロキシネットワークシステム。
【請求項8】
請求項1記載のP2P型Webプロキシネットワークシステムにおいて、
前記該当の第1種のWebプロキシサーバは、前記応答ノード選択機能により、前記要求に対し応答させるノードを決定する際、前記各グループメンバのノードの負荷と応答時間の大きさの両方を考慮し、第1に、応答時間の短いノードを優先的に選択し、第2に、負荷の小さいノードを優先的に選択すること、を特徴とするP2P型Webプロキシネットワークシステム。
【請求項9】
請求項1記載のP2P型Webプロキシネットワークシステムにおいて、
前記該当の第1種のWebプロキシサーバは、前記応答ノード選択機能により、前記要求に対し応答させるノードを決定する際、前記各グループメンバのノードの負荷と応答時間の大きさの両方を考慮し、第1に、負荷の小さいノードを優先的に選択し、第2に、応答時間の短いノードを優先的に選択すること、を特徴とするP2P型Webプロキシネットワークシステム。
【請求項10】
請求項1記載のP2P型Webプロキシネットワークシステムにおいて、
前記Webサーバ装置は、前記Webプロキシサーバ装置のP2Pネットワークに配置される前記Webコンテンツのキャッシュデータを最新の状態に更新させるためのプッシュ機能を含むクライアント機能を備えること、を特徴とするP2P型Webプロキシネットワークシステム。
【請求項11】
請求項1記載のP2P型Webプロキシネットワークシステムにおいて、
前記Webクライアント情報は、前記Webクライアント装置の属性情報を含み、
前記第1種のWebプロキシサーバは、前記第2種のWebプロキシサーバから前記Webクライアント装置へ応答する前記Webコンテンツのキャッシュデータをコンテンツフィルタリングする制御を行うコンテンツフィルタリング機能を有し、当該コンテンツフィルタリングの管理情報を保有し、
前記該当の第1種のWebプロキシサーバは、前記要求に対し応答させるノードから前記キャッシュデータを応答させる際、前記コンテンツフィルタリング機能により、前記Webクライアント情報を参照し、当該Webクライアントの属性に応じて、当該キャッシュデータをブロックするかどうかを含むコンテンツフィルタリング内容を決定し、当該内容で応答を制御する処理を行うこと、を特徴とするP2P型Webプロキシネットワークシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−105227(P2013−105227A)
【公開日】平成25年5月30日(2013.5.30)
【国際特許分類】
【出願番号】特願2011−247080(P2011−247080)
【出願日】平成23年11月11日(2011.11.11)
【出願人】(000155469)株式会社野村総合研究所 (1,067)
【Fターム(参考)】