(57)【要約】【課題】更新情報を発信するサーバと更新情報を受信するクライアント端末との組み合わせが多い場合に、更新情報を加工して配信する機能の負荷を分散する方法を提供する。【解決手段】サーバクライアント接続集約手段４００が、ウェブサーバとクライアント端末とを組み合わせたマトリックスを変形して、ウェブサーバとクライアント端末との接続を集約したマトリックスを生成し、集約情報記憶手段４００に格納する。このマトリックスを更新情報発信サーバ１００と更新情報再発信手段３０２とで共有し、更新情報配信手段３００を集約単位毎に複数用意する。更新情報発信サーバ１００は、更新情報を、集約情報を含むマトリックスに従って集約単位毎に用意された更新情報配信手段３００に発信する。更新情報配信手段３００は、更新情報を加工して、加工した更新情報を更新情報受信クライアント２００に配信する。【選択図】図１
2008046888.tif 000002
【特許請求の範囲】
【請求項１】
ウェブサーバから前記ウェブサーバが提供する情報が更新されたことを示す更新情報を受信して、更新情報をクライアント端末に配信する更新情報配信システムにおいて、
更新情報の送信元と配信先とを集約して示す集約情報を記憶する集約情報記憶手段と、
複数のウェブサーバから前記集約情報にもとづいて送信された更新情報を受信して、受信した前記更新情報を加工する複数の更新情報加工手段と、
前記更新情報加工手段が加工した更新情報を前記集約情報が示す配信先に配信する更新情報再発信手段とを備えた
ことを特徴とする更新情報配信システム。
【請求項２】
更新情報の送信元と配信先とを示す登録状況を、前記送信元の集合と前記配信先の集合との対に集約した集約情報を生成し、生成した集約情報を集約情報記憶手段に格納するサーバクライアント接続集約手段を含む
請求項１記載の更新情報配信システム。
【請求項３】
サーバクライアント接続集約手段は、更新情報の配信先のクライアント端末と更新情報の配信元のウェブサーバとのマトリックス形式で示される更新情報の登録状況を、マトリックスの行と列とをそれぞれ入れ替えて集約し、集約情報を示すマトリックスを生成する
請求項２記載の更新情報配信システム。
【請求項４】
サーバクライアント接続集約手段は、マトリックスの任意の行を１つ選択し、前記選択した行と距離が近い所定の数の行を抜き出して、前記抜き出した行を前記選択した行の直後に挿入して前記マトリックスの行を入れ替え、前記マトリックスの任意の列を１つ選択し、前記選択した列と距離が近い所定の数の列を抜き出して、前記抜き出した列を前記選択した列の直後に挿入して、前記マトリックスの列を入れ替える
請求項３記載の更新情報配信システム。
【請求項５】
更新情報の配信経路であって、更新情報の配信先を構成要素とするツリー構造の配信経路である配信ツリーを集約情報にもとづいて配信先の集合毎に作成する配信ツリー作成手段を含み、
更新情報再発信手段は、前記配信ツリー作成手段が作成した配信ツリーの頂点のクライアント端末に更新情報を配信する
請求項２から請求項４のうちいずれか１項記載の更新情報配信システム。
【請求項６】
集約情報にもとづいて、送信元の集合と配信先の集合との対ごとに、ウェブサーバが更新情報を送信する更新情報加工手段および更新情報再発信手段を決定する更新情報配信手段割当手段を含み、
サーバクライアント接続集約手段は、ウェブサーバが更新情報を送信する送信先の更新情報加工手段および更新情報再発信手段の数が、クライアント端末に登録されている更新情報の発信元のウェブサーバの数、およびウェブサーバに登録されている更新情報の配信先のクライアント端末の数よりも少ない数になるように更新情報の登録状況を集約する
請求項２から請求項５のうちいずれか１項記載の更新情報配信システム。
【請求項７】
ウェブサーバから前記ウェブサーバが提供する情報が更新されたことを示す更新情報を受信して、更新情報をクライアント端末に配信する更新情報配信方法において、
集約情報記憶手段が、更新情報の送信元と配信先とを集約して示す集約情報を記憶し、
複数の更新情報加工手段が、複数のウェブサーバから前記集約情報にもとづいて送信された更新情報を受信して、受信した前記更新情報を加工し、
更新情報再発信手段が、前記更新情報加工手段が加工した更新情報を前記集約情報が示す配信先に配信する
ことを特徴とする更新情報配信方法。
【請求項８】
コンピュータに、ウェブサーバから前記ウェブサーバが提供する情報が更新されたことを示す更新情報を受信させ、更新情報をクライアント端末に配信させるための更新情報配信プログラムであって、
コンピュータに、
複数のウェブサーバから送信された更新情報を受信して、受信した前記更新情報を加工する更新情報加工処理と、
更新情報の送信元と配信先とを集約して示す集約情報にもとづいて、前記更新情報加工処理で加工した更新情報を前記集約情報が示す配信先に配信する更新情報再発信処理とを実行させる
ための更新情報配信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、更新情報配信システム、更新情報配信方法、および更新情報配信プログラムに関し、特にウェブページの更新情報を配信する更新情報配信システム、更新情報配信方法、および更新情報配信プログラムに関する。
【背景技術】
【０００２】
近年、ウェブサーバは、情報が更新されたことを示すＲＳＳ（ＲＤＦ（Ｒｅｓｏｕｒｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｆｒａｍｅｗｏｒｋ）  Ｓｉｔｅ  Ｓｕｍｍａｒｙ、Ｒｉｃｈ  Ｓｉｔｅ  Ｓｕｍｍａｒｙ、またはＲｅａｌｌｙ  Ｓｉｎｐｌｅ  Ｓｙｎｄｉｃａｔｉｏｎ）と呼ばれる更新情報をクライアント端末に配信して、クライアント端末の利用者に短時間でウェブサーバの情報が更新されたことを知らせる。
【０００３】
図１０は、更新情報の配信経路を示す説明図である。図１０に示すように、更新情報発信サーバ１００が発信した更新情報は、通信ネットワーク７００を介して更新情報受信クライアント２００に配信される。
【０００４】
図１１は、更新情報発信サーバ１００と更新情報受信クライアント２００との接続を示す説明図である。図１１に示すように、更新情報は、ウェブページの配信経路と同様に、更新情報発信サーバ１００から更新情報受信クライアント２００に直接配信される。しかし、この基本的な接続形態による更新情報の配信の効率は低い。
【０００５】
図１２は、更新情報配信手段３００を用いた従来のシステムを示す説明図である。図１２に示すように、更新情報発信サーバ１００が発信した更新情報は、更新情報配信手段３００を介して更新情報受信クライアント２００に配信される。このようなシステムには、アグリゲータ型の更新情報配信手段を持つシステムと、ピアツーピア（Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ）型の更新情報配信手段を持つシステムとがある。非特許文献１には、ピアツーピア型の更新情報配信手段を持つ従来のシステムが記載されている。
【０００６】
まず、アグリゲータ型の更新情報配信手段を持つ従来のシステムについて説明する。アグリゲータ型の更新情報配信手段を持つ従来のシステムは、更新情報配信手段が、更新情報加工手段と、更新情報再発信手段とを有する。
【０００７】
１つまたは複数の更新情報発信サーバ１００が更新情報を発信した場合に、更新情報加工手段は、それらの更新情報を１つにまとめる。更新情報再発信手段は、まとめられた更新情報を、すべての更新情報受信クライアント２００にユニキャストで配信する。
【０００８】
次に、ピアツーピア型の更新情報配信手段を持つ従来のシステムについて説明する。ピアツーピア型の更新情報配信手段を持つ従来のシステムは、アグリゲータ型の更新情報配信手段を持つシステムの構成に加えて、配信ツリー作成手段を含む。そして、ピアツーピア型の更新情報配信手段を持つシステムは、アグリゲータ型の更新情報配信手段を持つ従来のシステムの動作に加えて、次の動作を行う。
【０００９】
配信ツリー作成手段は、更新情報受信クライアントの一部または全部を含むクライアント群をツリー構造に構成した配信ツリーを作成する。図１３は、配信ツリーの一例を示す説明図である。更新情報再発信手段は、まとめられた更新情報を、配信ツリーの頂点の更新情報受信クライアント２００に配信する。配信ツリーを構成する各更新情報受信クライアント２００が連鎖的に下位の更新情報受信クライアント２００に更新情報を配信することにより、更新情報は、すべての更新情報受信クライアント２００に配信される。
【００１０】
特許文献１には、１つ以上のウェブサイトに繰り返しアクセスし、そのウェブサイトが更新された場合に、更新されたことを他のコンピュータに通知する更新通知装置が記載されている。
【００１１】
特許文献２には、ウェブサイトを監視し、ウェブサイトが提供する情報が更新された場合に、更新された情報を取得してユーザに配信する情報取得システムが記載されている。
【００１２】
特許文献３には、ウェブサイトが提供する文書が更新された場合に、更新履歴を生成する更新履歴生成装置が記載されている。
【００１３】
特許文献４には、コンテンツを配信するサーバと、コンテンツを受信するクライアント装置とでコンテンツ配信ツリーを形成するコンテンツ配信方法が記載されている。
【００１４】
特許文献５には、サーバから受信した情報の形式および書式に応じたアプリケーションソフトウェアに情報を分配するクライアントが記載されている。
【００１５】
【特許文献１】特開２００５−２８４３３４号公報（段落０００９〜００３２、図１）
【特許文献２】特開２００３−１５０４８６号公報（段落０００７〜００４４、図１）
【特許文献３】特開２００６−９９３４１号公報（段落００２７〜００６９、図１）
【特許文献４】特開２００４−２４６７９０号公報（段落００４７〜００５６、図２）
【特許文献５】特開２００４−３４８２９０号公報（段落００２１〜００６４、図１、図５）
【非特許文献１】ディー・サンドラー（Ｄ．Ｓａｎｄｌｅｒ）、外３名，「シェアリング  ウェブマイクロニュース  ウィズ  ピア−トゥ−ピア  イベント  ノーティフィケーション（Ｓｈａｒｉｎｇ  Ｗｅｂ  ｍｉｃｒｏｎｅｗｓ  ｗｉｔｈ  ｐｅｅｒ−ｔｏ−ｐｅｅｒ  ｅｖｅｎｔ  ｎｏｔｉｆｉｃａｔｉｏｎ）」，ピア−トゥ−ピアシステムズ４第４回インターナショナルワークショップ、アイピーティーピーエス２００５、米国ニューヨーク州イサカ、２００５年２月２４日〜２５日、リバイストセレクテッドペーパーズ（Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ  Ｓｙｓｔｅｍｓ  IV  ４ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｗｏｒｋｓｈｏｐ、ＩＰＴＰＳ  ２００５、  Ｉｔｈａｃａ、ＮＹ、ＵＳＡ、Ｆｅｂｒｕａｒｙ  ２４−２５、２００５、Ｒｅｖｉｃｅｄ  Ｓｅｌｅｃｔｅｄ  Ｐａｐｅｒｓ），（米国），Ｓｐｒｉｎｇｅｒ（スプリンガー），２００５年，シリーズ：レクチャーノーツインコンピュータサイエンス（Ｓｅｒｉｅｓ：Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ）、ボリューム３６４０（Ｖｏｌ．３６４０），ｐ．１４１−１５１
【発明の開示】
【発明が解決しようとする課題】
【００１６】
上述したアグリゲータ型の更新情報配信手段を持つ従来のシステム、およびピアツーピア型の更新情報配信手段を持つ従来のシステムは、図１１に示す接続形態と比較すると、配信の効率は向上している。具体的には、更新情報発信サーバ１００の配信負荷Ｃを更新情報を発信する頻度Ｆと配信先の数Ｎとの積とすると、図１２に示す最も基本的な接続形態では、配信負荷Ｃ＝Ｆ×Ｎであるが、上述したアグリゲータ型の更新情報配信手段を持つ従来のシステム、およびピアツーピア型の更新情報配信手段を持つ従来のシステムは、配信負荷Ｃ＝Ｆ×１である。
【００１７】
しかし、上述したアグリゲータ型の更新情報配信手段を持つ従来のシステム、およびピアツーピア型の更新情報配信手段を持つ従来のシステムには以下に示す問題がある。第１の問題点は、更新情報発信サーバ１００や更新情報受信クライアント２００の数が増えると、更新情報配信手段３００の負荷が増大することである。その理由について説明する。
【００１８】
まず、上述したアグリゲータ型の更新情報配信手段を持つ従来のシステムの更新情報配信手段３００において、更新情報加工手段３０１は、すべての更新情報発信サーバ１００から配信される更新情報をまとめる処理を行う。ここで、更新情報を受信する頻度をＦ、一つの更新情報を処理する負荷をＰ、更新情報発信サーバ１００の数をＭとすると、更新情報加工手段３０１の処理負荷Ｄは、Ｄ＝Ｆ×Ｐ×Ｍである。従って、特に更新情報を受信する頻度Ｆの値が大きい場合に、更新情報発信サーバ１００の数Ｍの値が大きいと、更新情報配信手段３００が含む更新情報加工手段３０１の加工処理の負荷が重くなる。
【００１９】
また、更新情報を再発信する頻度をＦ’、更新情報受信クライアント２００の数をＮとすると、更新情報再発信手段３０２の配信負荷Ｃ’は、Ｃ’＝Ｆ’×Ｎである。従って、特に更新情報を再発信する頻度Ｆ’の値が大きい場合に、更新情報受信クライアント２００の数Ｎの値が大きいと、更新情報配信手段３００が含む更新情報再発信手段３０２の再発信処理の負荷が重くなる。
【００２０】
次に、上述したピアツーピア型の更新情報配信手段を持つ従来のシステムの更新情報配信手段３００において、配信ツリー作成手段３０３は、それぞれの更新情報発信サーバ１００に対応した配信ツリーを作成する。作成される配信ツリーの数は更新情報発信サーバ１００の数Ｍと同じである。そして、配信ツリーは、クライアント端末の参加時や離脱時に再構築される必要があり、クライアント端末の参加や離脱を検知するために、クライアント端末間で定期的な存在確認を行うことが必要である。この再構築や存在確認には通信が伴い、配信ツリーの維持負荷になる。配信ツリーあたりの維持負荷をＧとすると、配信ツリーの総維持負荷Ｅは、Ｅ＝Ｇ×Ｍである。従って、更新情報発信サーバ１００の数Ｍの値が大きいと、配信ツリー作成手段３０３の維持処理の負荷が重くなる。
【００２１】
第２の問題点は、特に、ピアツーピア型の更新情報配信手段３００において、更新情報受信クライアント２００が購読（更新情報を受信することをいう。）を登録していない更新情報発信サーバ１００の更新情報を、その更新情報受信クライアント２００に容易に配信する方法がないことである。その理由は、ピアツーピア型の更新情報配信手段３００の場合は、更新情報は配信ツリー作成手段３０３が作成した配信ツリーによって配信されるため、その配信ツリーを構成しているクライアント以外には更新情報は配信されないからである。
【００２２】
特許文献１に記載されている更新通知装置には、アクセスするウェブサイトの数や、更新されたことを通知するコンピュータの数が多い場合に、負荷が重くなるという問題がある。
【００２３】
特許文献２に記載されている情報取得システムには、監視するウェブサイトの数や、情報を配信するユーザの数が多い場合に、負荷が重くなるという問題がある。特許文献３に記載されている更新履歴生成装置には、監視するウェブサイトの数が多い場合に、負荷が重くなるという問題がある。特許文献４に記載されているコンテンツ配信方法には、コンテンツを配信するサーバの数が多い場合に、コンテンツ配信ツリーの維持処理の負荷が重くなるという問題がある。
【００２４】
そこで、本発明は、更新情報を発信するサーバや、更新情報を受信するクライアント端末の数が増えた場合でも、更新情報を配信するコンピュータの負荷を分散することができる更新情報配信システム、更新情報配信方法、および更新情報配信プログラムを提供することを目的とする。
【００２５】
また、本発明は、更新情報を受信するクライアント端末が購読を登録していないサーバの更新情報も、そのクライアント端末に配信することができる更新情報配信システム、更新情報配信方法、および更新情報配信プログラムを提供することも目的とする。
【課題を解決するための手段】
【００２６】
本発明による更新情報配信システムは、ウェブサーバから、ウェブサーバが提供する情報が更新されたことを示す更新情報を受信して、更新情報をクライアント端末に配信する更新情報配信システムであって、更新情報の送信元と配信先とを集約して示す集約情報を記憶する集約情報記憶手段と、複数のウェブサーバから集約情報にもとづいて送信された更新情報を受信して、受信した更新情報を加工する複数の更新情報加工手段と、更新情報加工手段が加工した更新情報を集約情報が示す配信先に配信する更新情報再発信手段とを備えたことを特徴とする。
【００２７】
更新情報の送信元と配信先とを示す登録状況を、送信元の集合と配信先の集合との対に集約した集約情報を生成し、生成した集約情報を集約情報記憶手段に格納するサーバクライアント接続集約手段を含んでもよい。
【００２８】
サーバクライアント接続集約手段は、更新情報の配信先のクライアント端末と更新情報の配信元のウェブサーバとのマトリックス形式で示される更新情報の登録状況を、マトリックスの行と列とをそれぞれ入れ替えて集約し、集約情報を示すマトリックスを生成してもよい。
【００２９】
マトリックスの任意の行を１つ選択し、選択した行と距離が近い所定の数の行を抜き出して、抜き出した行を選択した行の直後に挿入してマトリックスの行を入れ替え、マトリックスの任意の列を１つ選択し、選択した列と距離が近い所定の数の列を抜き出して、抜き出した列を選択した列の直後に挿入して、マトリックスの列を入れ替えてもよい。
【００３０】
更新情報の配信経路であって、更新情報の配信先を構成要素とするツリー構造の配信経路である配信ツリーを集約情報にもとづいて配信先の集合毎に作成する配信ツリー作成手段を含み、更新情報再発信手段は、配信ツリー作成手段が作成した配信ツリーの頂点のクライアント端末に更新情報を配信してもよい。
【００３１】
集約情報にもとづいて、送信元の集合と配信先の集合との対ごとに、ウェブサーバが更新情報を送信する更新情報加工手段および更新情報再発信手段を決定する更新情報配信手段割当手段を含み、サーバクライアント接続集約手段は、ウェブサーバが更新情報を送信する送信先の更新情報加工手段および更新情報再発信手段の数が、クライアント端末に登録されている更新情報の発信元のウェブサーバの数、およびウェブサーバに登録されている更新情報の配信先のクライアント端末の数よりも少ない数になるように更新情報の登録状況を集約してもよい。
【００３２】
本発明による更新情報配信方法は、ウェブサーバから、ウェブサーバが提供する情報が更新されたことを示す更新情報を受信して、更新情報をクライアント端末に配信する更新情報配信方法であって、集約情報記憶手段が、更新情報の送信元と配信先とを集約して示す集約情報を記憶し、複数の更新情報加工手段が、複数のウェブサーバから集約情報にもとづいて送信された更新情報を受信して、受信した更新情報を加工し、更新情報再発信手段が、更新情報加工手段が加工した更新情報を集約情報が示す配信先に配信することを特徴とする。
【００３３】
本発明による更新情報配信プログラムは、コンピュータに、ウェブサーバからウェブサーバが提供する情報が更新されたことを示す更新情報を受信させ、更新情報をクライアント端末に配信させるための更新情報配信プログラムであって、コンピュータに、複数のウェブサーバから送信された更新情報を受信して、受信した更新情報を加工する更新情報加工処理と、更新情報の送信元と配信先とを集約して示す集約情報にもとづいて、更新情報加工処理で加工した更新情報を集約情報が示す配信先に配信する更新情報再発信処理とを実行させることを特徴とする。
【発明の効果】
【００３４】
本発明によれば、集約情報にもとづいて更新情報を加工し、加工した更新情報を、集約情報にもとづいてクライアント端末に配信するので、更新情報を発信するウェブサーバや、更新情報を受信するクライアント端末の数が増えた場合でも、更新情報を配信するコンピュータの負荷を分散することができる。
【００３５】
また、本発明によれば、集約された登録状況に含まれるクライアント端末であって、更新情報の購読を登録していないクライアント端末に、更新情報を配信することができる。
【００３６】
サーバクライアント接続集約手段が、更新情報の配信先のクライアント端末と更新情報の配信元のウェブサーバとのマトリックス形式で示される更新情報の登録状況を、マトリックスの行と列とをそれぞれ入れ替えて集約し、集約情報を示すマトリックスを生成するように構成されている場合には、集約情報を容易に生成することができる。
【００３７】
集約情報にもとづいて配信先の集合毎に配信ツリーを作成する配信ツリー作成手段を含むように構成されている場合には、配信ツリーの数を少なくして、配信ツリーの維持負荷を軽減することができる。
【発明を実施するための最良の形態】
【００３８】
実施の形態１．
本発明の第１の実施の形態について、図面を参照して説明する。図１は、本発明の更新情報配信システムの第１の実施の形態の構成例を示すブロック図である。
【００３９】
図１に示す更新情報配信システムは、更新情報発信サーバ（ウェブサーバ）１００が発信した更新情報を受信して、更新情報を更新情報受信クライアント（クライアント端末）２００に配信する更新情報配信手段３００と、集約情報記憶手段４００と、サーバクライアント接続集約手段５００と、更新情報配信手段割当手段６００とを含む。更新情報配信手段３００は、サーバ等のコンピュータであり、更新情報加工手段３０１と、更新情報再発信手段３０２とを含む。サーバクライアント接続集約手段５００および更新情報配信手段割当手段６００は、サーバ等のコンピュータである。なお、更新情報配信システムは、複数の更新情報配信手段３００を含む。
【００４０】
更新情報加工手段３０１は、１つまたは複数の更新情報発信サーバ１００から更新情報を受け取り、受け取った更新情報のフォーマットの変更や、フィルタリング、複数の更新情報を１つにまとめるなどの処理を行い、更新情報を加工する。
【００４１】
更新情報加工手段３０１が行う更新情報の加工について説明する。更新情報加工手段３０１が行う更新情報のフォーマットの変更とは、例えば、ＲＳＳ  ｖｅｒｓｉｏｎ１．０のフォーマットのＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）文書をパース（構文解析）し、ノード名や名前空間を置き換えることで、ＲＳＳ  ｖｅｒｓｉｏｎ２．０のフォーマットのＸＭＬ文書に変換することをいう。また、更新情報のフィルタリングとは、例えば、複数のエントリ（例えば、ウェブログにおける記事）を含むＲＳＳ形式の更新情報から、あるキーワードを含むエントリのみを抜き出すことをいう。また、複数の更新情報を１つにまとめるとは、複数の更新情報にもとづいて、当該複数の更新情報が含む情報を含む１つの更新情報を生成することをいう。例えば、時刻情報が付与された複数のエントリを含む複数のＲＳＳ形式の更新情報を、時刻情報にもとづいてエントリを並べ替えて、全てのエントリが時刻順に並んだ１つのＲＳＳ形式の更新情報にまとめることをいう。
【００４２】
更新情報再発信手段３０２は、更新情報加工手段３０１が加工した更新情報を、１つまたは複数の更新情報受信クライアント２００に配信する。
【００４３】
サーバクライアント接続集約手段５００は、それぞれの更新情報発信サーバ１００からそれぞれの更新情報受信クライアント２００への配信状況を示すマトリックスにもとづいて、配信状況を集約したマトリックスを生成し、生成したマトリックスを集約情報記憶手段４００に格納する。更新情報発信サーバ１００、および更新情報再発信手段３０２は、集約情報記憶手段４００に格納されたマトリックスを取得する。
【００４４】
配信状況について説明する。配信状況とは、更新情報が、更新情報発信サーバ１００から更新情報受信クライアント２００に配信される状況をいう。図２は、それぞれの更新情報発信サーバ１００からそれぞれの更新情報受信クライアント２００への更新情報の配信状況を示すマトリックスの一例を示す説明図である。
【００４５】
図２に示すマトリックスは、各更新情報発信サーバを列とし、各更新情報受信クライアントを行として、各更新情報発信サーバが発信した更新情報が各更新情報受信クライアントに配信されるか否かを要素として表している。具体的には、図２に示す例では、１列目のサーバＡは、１行目のクライアントＵに更新情報を配信しているので、マトリックスの１行１列の要素を○で表している。また、２列目のサーバＢは、４行目のクライアントＸに更新情報を配信していないので、マトリックスの４行２列の要素を×で表している。
【００４６】
図２に示す例では、サーバＡは、クライアントＵ、クライアントＸ、およびクライアントＺに更新情報を配信している。また、サーバＢは、クライアントＶ、クライアントＷ、およびクライアントＹに更新情報を配信している。また、サーバＣは、クライアントＵ、クライアントＸ、およびクライアントＺに更新情報を配信している。また、サーバＤは、クライアントＷ、およびクライアントＹに更新情報を配信している。また、サーバＥは、クライアントＶ、クライアントＷ、クライアントＹ、およびクライアントＺに更新情報を配信している。また、サーバＦは、クライアントＵ、クライアントＸ、およびクライアントＺに更新情報を配信している。
【００４７】
また、図２に示すマトリックスでは、１行目はクライアントＵ、２行目はクライアントＶ、３行目はクライアントＷ、４行目はクライアントＸ、５行目はクライアントＹ、６行目はクライアントＺである。そして、図２に示すマトリックスでは、１列目はサーバＡ、２列目はサーバＢ、３列目はサーバＣ、４列目はサーバＤ、５列目はサーバＥ、６列目はサーバＦである。
【００４８】
配信状況の集約について説明する。配信状況（登録状況、または接続関係ともいう。）の集約とは、更新情報発信サーバＡと、更新情報受信クライアントＸとの接続関係があり、別の更新情報発信サーバＣと、同じ更新情報受信クライアントＸとの接続関係がある場合に、集合｛Ａ，Ｃ｝とＸとの接続関係を１つにみなすこと、更新情報発信サーバＡと、更新情報受信クライアントＸとの接続関係があり、同じ更新情報発信サーバＡと、別の更新情報受信クライアントＺとの接続関係がある場合に、Ａと集合｛Ｘ，Ｚ｝との接続関係を１つにみなすこと、およびこれらの複合形、すなわち集合｛Ａ，Ｃ｝から集合｛Ｘ，Ｚ｝への接続関係を１つにみなすことである。ただし、集合の大きさは２に限られるものではない。
【００４９】
そして、集約情報とは、更新情報発信サーバの集合と、更新情報受信クライアントの集合との対を示す情報である。従って、集約情報は、更新情報の送信元と配信先とを集約して示す。
【００５０】
更新情報配信手段割当手段６００は、集約情報記憶手段４００に格納されたマトリックスを参照して、各更新情報発信サーバ１００が更新情報を送信する更新情報配信手段３００を決定する。
【００５１】
更新情報配信手段３００であるコンピュータは、コンピュータに、複数のウェブサーバ（更新情報発信サーバ１００）から送信された更新情報を受信して、受信した更新情報を加工する更新情報加工処理と、更新情報の送信元と配信先とを集約して示す集約情報にもとづいて、更新情報加工処理で加工した更新情報を集約情報が示す配信先（更新情報受信クライアント２００）に配信する更新情報再発信処理とを実行させるための更新情報配信プログラムを搭載している。
【００５２】
次に、本発明の第１の実施の形態の動作について、図面を参照して説明する。図３は、更新情報配信システムの第１の実施の形態の動作を説明するフローチャートである。
【００５３】
まず、サーバクライアント接続集約手段５００は、どの更新情報発信サーバ１００がどの更新情報受信クライアント２００に更新情報を配信するのかを示すマトリックスを、各更新情報発信サーバ１００に登録されている情報、および各更新情報受信クライアント２００に登録されている情報にもとづいて作成したり、当該マトリックスを保持するデータベースから取得したりする。
【００５４】
具体的には、例えば、更新情報受信クライアント２００は、予めどの更新情報発信サーバ１００から更新情報が配信されるのかを示す更新情報登録リストを記憶しており、サーバクライアント接続集約手段５００は、各更新情報受信クライアント２００が記憶している更新情報登録リストにもとづいて、図２に例示したマトリックスを作成する。なお、マトリックスの作成は、更新情報発信サーバ１００が行ってもよいし、図示しない他のサーバが行ってもよい。
【００５５】
サーバクライアント接続集約手段５００は、図２に例示したマトリックスの行と列との順番をそれぞれ入れ替えて、配信状況を集約したマトリックスを生成し、生成したマトリックスを集約情報記憶手段４００に格納する（ステップＳ１０１）。従って、サーバクライアント接続集約手段５００は、集約情報を示すマトリックスを生成する。図４は、サーバクライアント接続集約手段５００が生成したマトリックスを示す説明図である。
【００５６】
図４に示す例では、更新情報の配信状況に応じて、図２に例示したマトリックスの行と列との順番がそれぞれ入れ替えられ、配信状況が集約されている。具体的には、図４に示すマトリックスでは、１行目はクライアントＵ、２行目はクライアントＺ、３行目はクライアントＸ、４行目はクライアントＹ、５行目はクライアントＶ、６行目はクライアントＷである。そして、図４に示すマトリックスでは、１列目はサーバＡ、２列目はサーバＦ、３列目はサーバＣ、４列目はサーバＤ、５列目はサーバＥ、６列目はサーバＢである。
【００５７】
従って、図４に示すマトリックスでは、サーバＡ、サーバＦ、およびサーバＣと、クライアントＵ、クライアントＺ、およびクライアントＸとの接続関係が集約されている。また、図４に示すマトリックスでは、サーバＤ、サーバＥ、およびサーバＢと、クライアントＹ、クライアントＶ、およびクライアントＷとの接続関係が集約され、サーバＢとクライアントＺとの接続関係が集約されている。図４では、集約された接続関係が破線で示されている。すなわち、図４に示す例において、破線で示された範囲が、それぞれ集約された単位である。
【００５８】
更新情報の配信状況を集約する方法について説明する。図５は、更新情報の配信状況を集約する方法を説明するフローチャートである。
【００５９】
サーバクライアント接続集約手段５００が、マトリックスの任意の行をランダムに１つ選択し、Ｐとする（ステップＳ２０１）。サーバクライアント接続集約手段５００が、Ｐと他の各行との距離を計算する（ステップＳ２０２）。サーバクライアント接続集約手段５００が、Ｐと距離が近い上位Ｑ件の行を抜き出し、Ｐの直後に挿入する（ステップＳ２０３）。サーバクライアント接続集約手段５００が、マトリックスの任意の列をランダムに１つ選択し、Ｒとする（ステップＳ２０４）。サーバクライアント接続集約手段５００が、Ｒと他の各列との距離を計算する（ステップＳ２０５）。サーバクライアント接続集約手段５００が、Ｒと距離が近い上位Ｓ件の列を抜き出し、Ｒの直後に挿入する（ステップＳ２０６）。サーバクライアント接続集約手段５００が、ステップＳ２０１からステップＳ２０６をＮ回繰り返す（ステップＳ２０７）。
【００６０】
ここで、Ｑ，Ｓ，Ｎはパラメータである。具体的には、例えば、Ｑは１、Ｓは１、Ｎは１００００である。また、各パラメータ（特にＮ）を、マトリックスのサイズに応じて設定してもよい。具体的には、マトリックスの行数をｊ、列数をｋとした場合に、例えば、Ｑを１〜ｊ×０．０１の間の値に設定し、Ｓを１〜ｋ×０．０１の間の値に設定し、Ｎを（ｊ＋ｋ）×２〜（ｊ＋ｋ）×１００の間の値に設定する。
【００６１】
なお、これらのパラメータは固定値である必要はなく、ステップ毎のマトリックスの変化に応じて変化させてもよい。また、距離の公理（非負性、同一性、対象性、および三角不等式）を満たし、マトリックスの一方の行と他方の行とをそれぞれパラメータｘ１，ｙ１とした関数ｆ（ｘ１，ｙ１）の解（数値（実数））を、一方の行と他方の行との距離とする。同様に、距離の公理（非負性、同一性、対象性、および三角不等式）を満たし、マトリックスの一方の列と他方の列とをそれぞれパラメータｘ２，ｙ２とした関数ｆ（ｘ２，ｙ２）の解（数値（実数））を、一方の列と他方の列との距離とする。
【００６２】
なお、本例では、ハミング距離を用いる。具体的には、一方の行を他方の行に一致させるために行う要素の変化回数をそれらの行の距離とする。つまり、一方の行を他方の行に一致させるために行う要素の変化回数が少ない場合、それらの行の距離は近い。同様に、一方の列を他方の列に一致させるために行う要素の変化回数をそれらの列の距離とする。つまり、一方の列を他方の列に一致させるために行う要素の変化回数が少ない場合、それらの列の距離は近い。
【００６３】
ハミング距離を用いて行を入れ替えて図２に示すマトリックスを変形する場合について、サーバクライアント接続集約手段５００が、図２に示すマトリックスの１行目を選択した場合を例に、具体的に説明する。
【００６４】
図２に示すマトリックスの１行目を選択したサーバクライアント接続集約手段５００は、１行目と他の行との距離を計算する。具体的には、１行目は、○×○××○であり、２行目は×○××○×であり、３行目は×○×○○×であり、４行目は○×○××○であり、５行目は×○×○○×であり、６行目は○×○×○○であるので、２行目を１行目に一致させるためには要素を５回変更しなければならない。そこで、１行目と２行目との距離は５である。
【００６５】
また、３行目を１行目に一致させるためには要素を６回変更しなければならないので、１行目と３行目との距離は６である。また、４行目を１行目に一致させるためには要素を変更しなくてもよいので、１行目と４行目との距離は０である。また、５行目を１行目に一致させるためには要素を６回変更しなければならないので、１行目と５行目との距離は６である。また、６行目を１行目に一致させるためには要素を１回変更しなければならないので、１行目と６行目との距離は１である。
【００６６】
そして、サーバクライアント接続集約手段５００は、１行目との距離が近い行を１つ選択する。具体的には、サーバクライアント接続集約手段５００は、１行目（クライアントＵの行）との距離が最も近い行である４行目（クライアントＸの行）を選択する。サーバクライアント接続集約手段５００は、選択したクライアントＸの行をクライアントＵの行の下に挿入する。
【００６７】
次に、サーバクライアント接続集約手段５００は、マトリックスのいずれかの列を選択して、行を入れ替えた場合と同様に、列を入れ替える。そして、サーバクライアント接続集約手段５００は、行の入れ替えと列の入れ替えとをＮ回繰り返して、図４に示すマトリックスを生成して、生成したマトリックスを集約情報記憶手段４００に格納する。
【００６８】
更新情報配信手段割当手段６００は、集約情報記憶手段４００に格納されたマトリックスを参照して、各更新情報発信サーバ１００が更新情報を送信する更新情報配信手段３００を決定する。つまり、更新情報配信手段割当手段６００は、集約情報記憶手段４００に格納されたマトリックスが含む集約情報にもとづき、集約された単位で各更新情報発信サーバ１００が更新情報を送信する更新情報配信手段３００を決定する。なお、更新情報配信手段割当手段６００が、各更新情報発信サーバ１００が更新情報を送信する更新情報配信手段３００を決定することを、各更新情報発信サーバ１００に更新情報を送信する更新情報配信手段３００を割り当てるともいう。
【００６９】
なお、更新情報配信手段割当手段６００は、例えば、集約情報記憶手段４００に格納されたマトリックスの左上から、ある程度の大きさの矩形であって、９０％以上が○の要素である矩形を集約された単位（集約単位ともいう。）として逐次的に選択する。
【００７０】
なお、ある程度の大きさの矩形とは、行列（マトリックス）のＴ％（例えば１０％）以内の大きさの矩形であって、できるだけ大きい矩形をいう。ここで、行列のＴ％の大きさの矩形とは、行数（行の長さ）および列数（列の長さ）が、それぞれ行列の行数および列数のＴ％である矩形をいう。なお、行列のＴ％の大きさの矩形を、要素の数が行列の要素の数のＴ％である矩形であるとしてもよい。本例では、行列のＴ％の大きさの矩形は、行数および列数が、それぞれ行列の行数および列数のＴ％の矩形であるとして説明する。
【００７１】
例えば、マトリックスの行（または列）の数がＴ１であって、列（または行）の数がＴ２である場合に、矩形の縦の長さｔ１≦Ｔ１×Ｔ／１００であって、矩形の横の長さｔ２≦Ｔ２×Ｔ／１００である矩形を、ある程度の大きさの矩形という。具体的には、例えば、Ｔが１０であり、マトリックスの行数が１００であって、列数が１００である場合に、１００（Ｔ１）×１０（Ｔ）／１００＝１０であるので、ある程度の大きさの矩形の縦の長さｔ１は１０以下である。また、１００（Ｔ２）×１０（Ｔ）／１００＝１０であるので、ある程度の大きさの矩形の横の長さｔ２は１０以下である。
【００７２】
なお、更新情報配信手段割当手段６００は、集約単位を逐次的に選択する場合に、既に他の集約単位に含まれた○の要素を含まないように、集約単位を選択する。つまり、更新情報配信手段割当手段６００は、○の要素が複数の集約単位に重複して含まれることがないようにして、集約単位を逐次的に選択する。そして、更新情報配信手段割当手段６００は、すべての○の要素が集約単位に含まれた場合に、集約単位の選択を終了する。
【００７３】
１つまたは複数の更新情報発信サーバ１００は、集約情報記憶手段４００からマトリックスを取得し、取得したマトリックスにもとづいて、集約された単位で更新情報配信手段割当手段６００に割り当てられた更新情報配信手段３００に更新情報を発信する（ステップＳ１０２）。更新情報加工手段３０１は発信された複数の更新情報を、１つの更新情報にまとめるなどの加工を行う（ステップＳ１０３）。
【００７４】
更新情報再発信手段３０２は、マトリックスを集約情報記憶手段４００から取得し、取得したマトリックスにもとづいて、各更新情報受信クライアント２００に加工された更新情報を配信（再発信）する（ステップＳ１０４）。
【００７５】
本実施の形態によれば、配信状況を集約したマトリックスを生成し、生成したマトリックスを更新情報発信サーバ１００と更新情報配信手段３００とが共有（取得）するように構成したので、更新情報発信サーバ１００に応じて、更新情報の配信先の更新情報配信手段３００を振り分ける（割り当てる）ことができる。そのため、更新情報発信サーバ１００の数が増えた場合でも、１つの更新情報配信手段３００に負荷が集中することを回避することができる。
【００７６】
なお、１つの更新情報加工手段３０１の平均的な処理負荷Ｄは、更新情報を受信する頻度をＦ、１つの更新情報を処理する負荷をＰ、更新情報発信サーバ１００の数をＭ、集約された配信状況の数をＱとすると、１つの更新情報加工手段３０１の平均的な処理負荷Ｄ＝Ｆ×Ｐ×Ｍ÷Ｑである。すなわち、ステップＳ１０１で生成されたマトリックスにもとづいて、更新情報加工手段３０１の処理を分散させることができる。
【００７７】
また、１つの更新情報再発信手段３０２の平均的な配信負荷Ｃ’は、更新情報を再発信する頻度をＦ’、更新情報受信クライアント２００の数をＮとすると、１つの更新情報再発信手段３０２の平均的な配信負荷Ｃ’＝Ｆ’×Ｎ÷Ｑである。すなわち、ステップＳ１０１で生成されたマトリックスにもとづいて、更新情報再発信手段３０２の処理を分散させることができる。
【００７８】
本実施の形態によれば、更新情報発信サーバ１００と更新情報受信クライアント２００との接続関係を集約した情報（サーバクライアント接続集約手段５００が生成したマトリックスが含む集約情報）を用いることにより、図６に示すように、集約された接続関係毎に更新情報配信手段３００を分散させることができる。図６は、各更新情報発信サーバ１００と、集約された接続関係毎に割り当てられた更新情報配信手段３００と、各更新情報受信クライアント２００との接続を示す説明図である。
【００７９】
また、集約された接続関係は、更新情報発信サーバ１００同士や更新情報受信クライアント２００同士の関連性を示しているものであり、集約された接続関係を利用して、更新情報発信サーバ１００が、接続関係がない更新情報受信クライアント２００に更新情報を配信することができる。具体的には、図２に例示したマトリックスを参照すると、サーバＤとクライアントＶとに接続関係はないが、図４に例示したマトリックスを用いた場合、サーバＤが配信した更新情報は、クライアントＶにも配信される。従って、更新情報発信サーバ１００に更新情報の購読の登録をしていない更新情報受信クライアント２００に、関連性がある更新情報を配信して、更新情報受信クライアント２００の利用者の趣向に応じたサービス（更新情報）を提供することができる。
【００８０】
実施の形態２．
本発明の第１の実施の形態について、図面を参照して説明する。図７は、本発明の更新情報配信システムの第２の実施の形態の構成例を示すブロック図である。
【００８１】
本発明の第２の実施の形態の更新情報配信システムは、更新情報配信手段３００が、図１に示す第１の実施の形態の構成要素に加えて、配信ツリー作成手段３０３を有する点が第１の実施の形態の構成と異なる。その他の構成要素は、第１の実施の形態の構成要素と同様なため、図１と同じ符号を付し、説明を省略する。
【００８２】
配信ツリー作成手段３０３は、サーバクライアント接続集約手段５００が生成し、集約情報記憶手段４００に格納されたマトリックスが含む集約情報を参照して、更新情報受信クライアント２００の一部、または全部を含むクライアント群をツリー構造に構成した配信ツリーを作成する。従って、配信ツリー作成手段３０３は、集約された接続関係にもとづいて、配信ツリーを作成する。具体的には、図４に例示したマトリックスのように接続関係が集約された場合、配信ツリー作成手段３０３は、クライアントＵ、クライアントＺ、およびクライアントＸを構成要素とする配信ツリーと、クライアントＹ、クライアントＶ、およびクライアントＷを構成要素とする配信ツリーとを作成する。
【００８３】
図１３は、配信ツリー作成手段３０３が作成した配信ツリーの構成を示す説明図である。図１３に示すように、配信ツリーは、各更新情報受信クライアント２００が、上位の更新情報受信クライアント２００から受信した更新情報を、下位の複数の更新情報受信クライアント２００に送信するように構成されている。
【００８４】
配信ツリー作成手段３０３は、例えば、更新情報受信クライアント２００から配信ツリーに参加する問い合わせを受信した順番で、ツリー構造の上位から順番に、上位の更新情報受信クライアント２００に所定の数（図１３に示す例では、所定の数は２）の更新情報受信クライアント２００が従属して接続されるように、配信ツリーを構成する。
【００８５】
また、配信ツリー作成手段３０３は、例えば、更新情報受信クライアント２００の情報処理能力が高い順番、通信ネットワーク帯域が広い順番、またはクライアント名の辞書式順序で、ツリー構造の上位から順番に更新情報受信クライアント２００を互いに接続されるように、配信ツリーを構成してもよい。
【００８６】
なお、配信ツリー作成手段３０３は、配信ツリーの構造を把握して、配信ツリーを管理する管理サーバによって実現されてもよい。そして、その管理サーバは、更新情報受信クライアント２００から配信ツリーに参加する問い合わせを受信した場合に、例えば、配信ツリーを構成する更新情報受信クライアント２００のうち、下位に接続されている更新情報受信クライアント２００の数が所定の数（図１３に示す例では、所定の数は２）よりも少なく、かつ、頂点の更新情報受信クライアント２００に近い更新情報受信クライアント２００の下位に接続されるように返答する。
【００８７】
また、その管理サーバは、配信ツリーから離脱する問い合わせを受信した場合に、例えば、離脱する更新情報受信クライアント２００の下位に接続されていた更新情報受信クライアント２００が、離脱する更新情報受信クライアント２００の上位の更新情報受信クライアント２００に接続されるように配信ツリーを変更し、その旨を離脱する更新情報受信クライアント２００の上位の更新情報受信クライアント２００、および離脱する更新情報受信クライアント２００の下位に接続されていた更新情報受信クライアント２００に通達する。
【００８８】
その後、管理サーバは、更新情報受信クライアント２００から配信ツリーに参加する問い合わせを受信した場合に、配信ツリーにおける離脱した更新情報受信クライアント２００が接続されていた位置に、新たな更新情報受信クライアント２００を参加させてもよい。そのように構成した場合には、離脱した更新情報受信クライアント２００の上位の更新情報受信クライアント２００に所定の数以上の更新情報受信クライアント２００が従属した状態を、離脱した更新情報受信クライアント２００の上位の更新情報受信クライアント２００に所定の数の更新情報受信クライアント２００が従属した状態に修正することができる。
【００８９】
更新情報再発信手段３０２は、配信ツリー作成手段３０３が作成した配信ツリーにもとづいて、更新情報を配信ツリーの頂点の更新情報受信クライアント２００に配信する。配信ツリーを構成する各更新情報受信クライアント２００は、連鎖的に下位の各更新情報受信クライアント２００に更新情報を送信することにより、すべての更新情報受信クライアント２００に更新情報が配信される。
【００９０】
次に、本発明の第２の実施の形態の動作について、図面を参照して説明する。図８は、更新情報配信システムの第２の実施の形態の動作を説明するフローチャートである。
【００９１】
サーバクライアント接続集約手段５００は、どの更新情報発信サーバ１００がどの更新情報受信クライアント２００へ更新情報を配信するのかを示すマトリックスにもとづいて、配信状況を集約したマトリックスを生成し（ステップＳ３０１）、生成したマトリックスを集約情報記憶手段４００に格納する。
【００９２】
配信ツリー作成手段３０３は、集約情報記憶手段４００に格納されたマトリックスにおける集約された接続関係を参照して、配信ツリーを作成する（ステップＳ３０２）。
【００９３】
更新情報配信手段割当手段６００は、集約情報記憶手段４００に格納されたマトリックスの集約された接続関係を参照して、各更新情報発信サーバ１００に更新情報配信手段３００を割り当てる。
【００９４】
１つまたは複数の更新情報発信サーバ１００は、集約情報記憶手段４００からマトリックスを取得し、取得したマトリックスにもとづいて、集約された単位で更新情報配信手段割当手段６００に割り当てられた更新情報配信手段３００に更新情報を発信する（ステップＳ３０３）。更新情報加工手段３０１は配信された複数の更新情報を、１つの更新情報にまとめるなどの加工を行う（ステップＳ３０４）。
【００９５】
更新情報再発信手段３０２は、マトリックスを集約情報記憶手段４００から取得し、取得したマトリックスにもとづいて、配信ツリー作成手段３０３が作成した配信ツリーにおける頂点の更新情報受信クライアント２００に、加工された更新情報を配信する（ステップＳ３０５）。配信ツリーを構成する各更新情報受信クライアント２００は、連鎖的に下位の各更新情報受信クライアント２００に更新情報を送信する。
【００９６】
本実施の形態によれば、配信状況を集約したマトリックスを生成し、そのマトリックスにもとづいて配信ツリー作成手段３０３が配信ツリーを作成するので、配信ツリーの数を少なくし、配信ツリーの維持負荷を全体で軽減することができる。
【００９７】
なお、配信ツリーの総維持負荷Ｅは、配信ツリーあたりの維持負荷をＧ、集約された配信状況の数をＱとすると、配信ツリーの総維持負荷Ｅ＝Ｇ×Ｑである。つまり、ステップＳ２０１で生成されたマトリックスによって、集約された配信状況の数Ｑを更新情報発信サーバ１００の数Ｍよりも小さい値にすることができるので、配信ツリー作成手段３０３による配信ツリーの維持負荷を軽減することができる。
【実施例１】
【００９８】
本発明の第１の実施例について説明する。本発明の第１の実施例は、図１に示す第１の実施の形態の更新情報配信システムに対応している。更新情報発信サーバ１００はＲＳＳなどの更新情報を発信するウェブサーバである。更新情報受信クライアント２００は更新情報を受信するクライアント端末である。更新情報配信手段３００は、複数の更新情報発信サーバ１００が発信した更新情報をまとめて（加工して）、更新情報受信クライアント２００に配信するアグリゲータサービスを提供するコンピュータである。
【００９９】
更新情報受信クライアント２００は、更新情報を受信するために、更新情報発信サーバ１００のＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）等の情報を登録する更新情報登録リストを保持している。
【０１００】
具体的には、例えば、ＵＲＬが「ａ」の更新情報発信サーバａと、ＵＲＬが「ｂ」の更新情報発信サーバｂと、ＵＲＬが「ｃ」の更新情報発信サーバｃとから更新情報を受信する更新情報受信クライアントＡの更新情報登録リストには、（ａ，ｂ，ｃ）が登録されている。
【０１０１】
また、ＵＲＬが「ｄ」の更新情報発信サーバｄと、ＵＲＬが「ｅ」の更新情報発信サーバｅと、ＵＲＬが「ｆ」の更新情報発信サーバｆとから更新情報を受信する更新情報受信クライアントＢの更新情報登録リストには、（ｄ，ｅ，ｆ）が登録されている。
【０１０２】
また、ＵＲＬが「ｇ」の更新情報発信サーバｇと、ＵＲＬが「ｈ」の更新情報発信サーバｈと、ＵＲＬが「ｉ」の更新情報発信サーバｉとから更新情報を受信する更新情報受信クライアントＢの更新情報登録リストには、（ｇ，ｈ，ｉ）が登録されている。
【０１０３】
サーバクライアント接続集約手段５００は、各更新情報受信クライアントが保持している更新情報登録リストにもとづいて、どの更新情報発信サーバがどの更新情報受信クライアントに更新情報を配信するのかを示すマトリックスを作成する。図９は、サーバクライアント接続集約手段５００が作成したマトリックスの一例を示す説明図である。
【０１０４】
図９に例示したマトリックスにおいて、○の要素は、一方の軸の更新情報受信クライアントの更新情報登録リストに、他方の軸の更新情報発信サーバのＵＲＬが登録され、その更新情報発信サーバが発信する更新情報を、その更新情報受信クライアントが受信することを意味している。
【０１０５】
更新情報発信サーバ１００の数や、更新情報受信クライアント２００の数が少ない場合には、任意の更新情報発信サーバ１００から任意の更新情報受信クライアント２００に更新情報を配信する負荷はそれほど大きくないので、アグリゲータサービスを提供する更新情報配信手段３００を、従来の方法、すなわち単一のサーバで実現することができる。しかし、更新情報発信サーバ１００の数や、更新情報受信クライアント２００の数が多い場合、すなわち、マトリックスが大きい場合には、単一のサーバがアグリゲータサービスを提供することは困難であり、複数のサーバを用いて負荷を分散させる必要がある。
【０１０６】
このとき、マトリックスの行と列とをそれぞれ入れ替えて、○の要素を可能なかぎり集約し、かつ、更新情報配信手段３００を実現するサーバが、更新情報発信サーバ１００と更新情報受信クライアント２００とに可能なかぎり独立になるようにすることで、更新情報配信手段３００と更新情報発信サーバ１００との間の通信量、および更新情報配信手段３００と更新情報受信クライアント２００との間の通信量の増大を防ぐことができる。
【０１０７】
なお、更新情報配信手段３００を実現するサーバは、更新情報発信サーバ１００と更新情報受信クライアント２００とに可能なかぎり独立になるように設置される。すなわち、各更新情報配信手段３００を実現するサーバは、担当する更新情報発信サーバ１００の数と更新情報受信クライアント２００の数とを、各更新情報配信手段３００を実現する全サーバについて合計した数が最小になるように設置される。
【０１０８】
具体的には、図４に示すマトリックスでは、サーバＢは、クライアントＺに更新情報を送信する場合と、クライアントＹ、クライアントＶ、およびクライアントＷに更新情報を送信する場合とで、送信先の更新情報配信手段３００を実現するサーバが異なることがある。そのような場合に、更新情報発信サーバ１００の総数がｋであり、更新情報受信クライアント２００の総数がｌであっても、担当する更新情報発信サーバ１００の数と更新情報受信クライアント２００の数とを、各更新情報配信手段３００を実現する全サーバについて合計した数はｋ＋ｌより多くなる。２つの更新情報配信手段３００を実現するサーバが、サーバＢを担当することになるからである。そのため、サーバＢは、クライアントＺを担当する更新情報配信手段３００を実現するサーバと、クライアントＹ、クライアントＶ、およびクライアントＷを担当する更新情報配信手段３００を実現するサーバとに更新情報を送信しなければならない。
【０１０９】
つまり、担当する更新情報発信サーバ１００の数と更新情報受信クライアント２００の数とを、各更新情報配信手段３００を実現する全サーバについて合計した数が多いと、更新情報配信手段３００と更新情報発信サーバ１００との間の通信量、および更新情報配信手段３００と更新情報受信クライアント２００との間の通信量が増大する。そのような通信量の増大を防ぐため、各更新情報配信手段３００を実現するサーバは、担当する更新情報発信サーバ１００の数と更新情報受信クライアント２００の数とを、各更新情報配信手段３００を実現する全サーバについて合計した数が最小になるように設置される。
【０１１０】
ここで、更新情報配信手段３００を実現するサーバの数が更新情報配信手段３００の数と同数であることが、更新情報配信手段３００を実現するサーバが更新情報発信サーバ１００と更新情報受信クライアント２００とに最も独立であるのだが、一般に、サーバの数は物理的制約により制限される。そして、更新情報配信手段３００を実現するサーバの数よりも更新情報配信手段３００の数が多い場合には、１つのサーバが複数の更新情報配信手段３００の役割を果たすことになる。この場合に、更新情報配信手段３００が対応する集約単位（本例では、更新情報の送信元の更新情報発信サーバ１００および更新情報の配信先の更新情報受信クライアント２００の集合）が、マトリックス上の行または列で重なっていると、接続先が限定されるので好ましい。
【０１１１】
このようなマトリックスの変形の方法として、図５に例示したフローチャートを用いて第１の実施の形態で説明した方法がある。
【０１１２】
具体的には、図５に示すように、サーバクライアント接続集約手段５００が、マトリックスの任意の行をランダムに１つ選択し、Ｐとする（ステップＳ２０１）。サーバクライアント接続集約手段５００が、Ｐと他の各行との距離を計算する（ステップＳ２０２）。サーバクライアント接続集約手段５００が、Ｐと距離が近い上位Ｑ件の行を抜き出し、Ｐの直後に挿入する（ステップＳ２０３）。サーバクライアント接続集約手段５００が、マトリックスの任意の列をランダムに１つ選択し、Ｒとする（ステップＳ２０４）。サーバクライアント接続集約手段５００が、Ｒと他の各列との距離を計算する（ステップＳ２０５）。サーバクライアント接続集約手段５００が、Ｒと距離が近い上位Ｓ件の列を抜き出し、Ｒの直後に挿入する（ステップＳ２０６）。サーバクライアント接続集約手段５００が、ステップＳ２０１からステップＳ２０６をＮ回繰り返す（ステップＳ２０７）。
【０１１３】
ここで、Ｑ，Ｓ，Ｎはパラメータである。具体的には、例えば、Ｑは１、Ｓは１、Ｎは１００００である。また、各パラメータ（特にＮ）を、マトリックスのサイズに応じて設定してもよい。具体的には、マトリックスの行数をｊ、列数をｋとした場合に、例えば、Ｑを１〜ｊ×０．０１の間の値に設定し、Ｓを１〜ｋ×０．０１の間の値に設定し、Ｎを（ｊ＋ｋ）×２〜（ｊ＋ｋ）×１００の間の値に設定する。
【０１１４】
なお、これらのパラメータは固定値である必要はなく、ステップ毎のマトリックスの変化に応じて変化させてもよい。なお、第１の実施の形態では、ハミング距離を用いて行と列とをそれぞれ入れ替えてマトリックスを変形させたが、ユークリッド距離やコサイン距離等の他の方法を用いて行と列とをそれぞれ入れ替えてもよい。
【０１１５】
ユークリッド距離を用いて行を入れ替える方法について説明する。図２に例示したマトリックスにおいて、○を１に置き換え、×を０に置き換えると、４行目は１０１００１である。同様に、５行目は０１０１１０である。そして、６行目は１０１０１１である。
【０１１６】
そして、４行目と５行目とのユークリッド距離は、
（（１−０）２＋（０−１）２＋（１−０）２＋（０−１）２＋（０−１）２＋（１−０）２）１／２＝６１／２である。
【０１１７】
また、４行目と６行目とのユークリッド距離は、
（（１−１）２＋（０−０）２＋（１−１）２＋（０−０）２＋（０−１２）＋（１−１）２）１／２＝１である。
【０１１８】
よって、４行目と５行目とのユークリッド距離よりも４行目と６行目とのユークリッド距離の方が近いので、サーバクライアント接続集約手段５００は、４行目（クライアントＸの行）の下に、６行目（クライアントＺ）の行を挿入する。
【０１１９】
次に、コサイン距離を用いて行を入れ替える方法について説明する。４行目と５行目とのコサイン距離は、
（１×０＋０×１＋１×０＋０×１＋０×１＋１×０）／（（１２＋０２＋１２＋０２＋０２＋１２）１／２×（０２＋１２＋０２＋１２＋１２＋０２）１／２）＝０である。
【０１２０】
また、４行目と６行目とのコサイン距離は、
（１×１＋０×０＋１×１＋０×０＋０×１＋１×１）／（（１２＋０２＋１２＋０２＋０２＋１２）１／２×（１２＋０２＋１２＋０２＋１２＋１２）１／２）＝３／（３１／２×４１／２）である。
【０１２１】
よって、４行目と５行目とのコサイン距離よりも４行目と６行目とのコサイン距離の方が近いので、サーバクライアント接続集約手段５００は、４行目（クライアントＸの行）の下に、６行目（クライアントＺ）の行を挿入する。なお、コサイン距離は、値が大きい方が、距離が近い。
【０１２２】
この方法により、図４に示すような、○の要素が集約されたマトリックスを得ることができる。集約結果の最適性は必要ではない。集約結果が最適でなくても、本発明の目的を達成することができるからである。なお、最適な集約結果とは、○の要素が集約されたマトリックスにおいて、○の要素が集約された部分の数が少なく、大きさが均一になるように集約されたマトリックスをいう。
【０１２３】
なお、図４に示すマトリックスの５行４列の要素のように、集約単位が少数の×の要素を含んでいてもよい。例えば、マトリックスの左上から、ある程度の大きさの矩形で囲まれるマトリックスの要素のうち９０％以上が○であるものを、集約単位として逐次的に選択していく。
【０１２４】
そして、集約単位の数が、更新情報配信手段３００を実現するサーバの数以上にすることで、更新情報の配信処理を更新情報配信手段３００を実現する各サーバに振り分ける。なお、更新情報の配信処理を各サーバに振り分ける際に、各サーバの性能、および集約単位の大きさを考慮することで、より均一に処理を分散することができる。
【０１２５】
また、集約単位の数が更新情報配信手段３００を実現するサーバの数より少ない場合には、大きい集約単位を分割することで、集約単位の数を増やすことができる。具体的には、例えば、集約単位のサーバの数が４つであり、クライアント端末の数が３つである場合に、サーバの数がクライアント端末の数よりも多いので、その集約単位を、サーバの数が２つであり、クライアント端末の数が３つである２つの集約単位に分割する。
【０１２６】
上述した方法で変形されたマトリックスは、更新情報発信サーバ１００と更新情報再発信手段３０２とで共有される。そして、更新情報発信サーバ１００が更新情報配信手段３００に更新情報の配信する際の宛先、および更新情報配信手段３００が更新情報受信クライアント２００へ更新情報を配信する際の宛先は、必要最少限に絞られることが好ましい。そのようにすることで、マトリックスを使った更新情報配信手段３００の負荷分散を行うことができる。
【０１２７】
ところで、変形する前のマトリックスは、更新情報発信サーバ１００の数、更新情報受信クライアント２００の数、および更新情報の登録状況によって変化する。そのため、マトリックスの変形は、定期的またはマトリックスの変化度合いに応じて行われることが好ましく、最新のマトリックスを用いて更新情報が配信されることが好ましい。なお、マトリックスの変形をマトリックスの変化度合いに応じて行うとは、例えば、マトリックスの変形のステップ毎に要素の集約を試み、集約した要素の数が一定以上であればマトリックスの変形を継続し、集約した要素の数が一定未満であればマトリックスの変形を終了することである。
【実施例２】
【０１２８】
本発明の第２の実施例について説明する。本発明の第２の実施例は、図７に示す第２の実施の形態の更新情報配信システムに対応している。
【０１２９】
第２の実施例の更新情報配信システムは、更新情報配信手段３００が配信ツリー作成手段３０３を有する点が、第１の実施例の更新情報配信システムと異なる。非特許文献１に記載されているＦｅｅｄＴｒｅｅというシステムによると、配信ツリー作成手段３０３は、更新情報発信サーバ１００のＵＲＬなどの更新情報の識別子ごとに配信ツリーを作成し、更新情報は複数の更新情報受信クライアント２００に効率的に配信される。
【０１３０】
しかし、各配信ツリーを維持するために、定期的な通信等を行うための維持負荷が発生する。そこで、第２の実施例では、第１の実施例と同様な方法でマトリックスを作成および変形し、集約単位ごとに配信ツリーの作成して、配信ツリーの数を減らす。
【０１３１】
マトリックスの変形、およびグルーピング（要素の集約）の方法は、第１の実施例で述べた方法の他、図５に示すステップＳ２０４〜Ｓ２０６のみを繰り返して、列のみに注目してグルーピングする方法もある。
【０１３２】
変形されたマトリックスは、更新情報発信サーバ１００と配信ツリー作成手段３０３とで共有される。そして、更新情報発信サーバ１００が、更新情報配信手段３００に更新情報の配信する際の宛先を必要最小限に絞ることが好ましく、更新情報配信手段３００は、対応する配信ツリーの頂点の更新情報受信クライアント２００に更新情報を配信することが好ましい。そのようにすることで、ＦｅｅｄＴｒｅｅのメリットを生かしつつ、更新情報発信サーバ１００の数が増えた場合でも、配信ツリーの維持負荷の増大を防ぐことができる。
【０１３３】
また、本実施例の配信ツリーを使うと、更新情報受信クライアント２００の更新情報登録リストに更新情報発信サーバ１００のＵＲＬ等が登録されていない場合であっても、その更新情報発信サーバ１００が集約単位に含まれている場合、すなわち、図４に例示したマトリックスでは×の要素であるが集約単位に入っている場合には、他の更新情報受信クライアント２００の更新情報登録リストに登録されている更新情報発信サーバ１００の更新情報も配信されることになる。具体的には、図４に示す例では、サーバＤが発信した更新情報が、クライアントＶに配信される。この更新情報は、マトリックスの構成方法によって、他の更新情報受信クライアント２００に配信されている更新情報と関連性が高いことが予想され、購読の登録をしていない更新情報受信クライアント２００（本例では、クライアントＶ）にも意味がある場合がある。
【実施例３】
【０１３４】
本発明の第３の実施例は、第１の実施例、および第２の実施例において、更新情報の発信側である更新情報発信サーバ１００と、更新情報配信手段３００とから、それぞれ受信側である更新情報配信手段３００と、更新情報受信クライアント２００とへ更新情報をＰＵＳＨ型で配信する代わりに、受信側である更新情報配信手段３００と、更新情報受信クライアント２００とから、それぞれ発信側である更新情報発信サーバ１００と、更新情報配信手段３００とへ更新情報の発信を要求してＰＵＬＬ型で配信する方式を採用する。
【０１３５】
具体的には、本発明の第１の実施例、および第２の実施例では、更新情報発信サーバ１００が更新情報配信手段３００に更新情報をＰＵＳＨ型で配信し、更新情報配信手段３００が更新情報受信クライアント２００に更新情報をＰＵＳＨ型で配信している。
【０１３６】
それに対して、本発明の第３の実施例は、更新情報配信手段３００が更新情報発信サーバ１００に更新情報の発信を要求して、更新情報がＰＵＬＬ型で配信され、更新情報受信クライアント２００が更新情報配信手段３００に更新情報の発信を要求して、更新情報がＰＵＬＬ型で配信される。
【０１３７】
従って、更新情報受信クライアント２００に、更新情報配信手段３００がＰＵＳＨ型で配信した更新情報を受信するためのソフトウェアをインストールすることなく、他の用途で用いているウェブブラウザのソフトウェアを用いて更新情報を受信することができるので、容易に本発明による更新情報配信システムを導入することができる。
【産業上の利用可能性】
【０１３８】
本発明は、通信ネットワークを介して複数のウェブサーバから複数のクライアント端末に情報を配信するシステムに適用することができる。また、クライアント端末の利用者の趣向に応じたサービスを提供するシステムにも適用することができる。
【図面の簡単な説明】
【０１３９】
【図１】更新情報配信システムの第１の実施の形態の構成例を示すブロック図である。
【図２】それぞれの更新情報発信サーバからそれぞれの更新情報受信クライアントへの更新情報の配信状況を示すマトリックスの一例を示す説明図である。
【図３】更新情報配信システムの第１の実施の形態の動作を説明するフローチャートである。
【図４】サーバクライアント接続集約手段が生成したマトリックスを示す説明図である。
【図５】マトリックスの変形の方法を説明するフローチャートである。
【図６】各更新情報発信サーバと、集約された接続関係毎に割り当てられた更新情報配信手段と、各更新情報受信クライアントとの接続を示す説明図である。
【図７】更新情報配信システムの第２の実施の形態の構成例を示すブロック図である。
【図８】更新情報配信システムの第２の実施の形態の動作を説明するフローチャートである。
【図９】第１の実施例において、サーバクライアント接続集約手段が作成したマトリックスの一例を示す説明図である。
【図１０】更新情報の配信経路を示す説明図である。
【図１１】更新情報発信サーバと更新情報受信クライアントとの接続を示す説明図である。
【図１２】更新情報配信手段を用いた従来のシステムを示す説明図である。
【図１３】配信ツリーの構成を示す説明図である。
【符号の説明】
【０１４０】
１００  更新情報発信サーバ
２００  更新情報受信クライアント
３００  更新情報配信手段
３０１  更新情報加工手段
３０２  更新情報再配信手段
３０３  配信ツリー作成手段
４００  集約情報記憶手段
５００  サーバクライアント接続集約手段
６００  更新情報配信手段割当手段
７００  通信ネットワーク
【図１】
2008046888.tif 000003
【図２】
2008046888.tif 000004
【図３】
2008046888.tif 000005
【図４】
2008046888.tif 000006
【図５】
2008046888.tif 000007
【図６】
2008046888.tif 000008
【図７】
2008046888.tif 000009
【図８】
2008046888.tif 000010
【図９】
2008046888.tif 000011
【図１０】
2008046888.tif 000012
【図１１】
2008046888.tif 000013
【図１２】
2008046888.tif 000014
【図１３】
2008046888.tif 000015