(57)【要約】【課題】サーバとクライアントの関係が頻繁に変化する場合においても、更新情報の配信の高効率とシステムの高可用を両立する。【解決手段】アグリゲーションサーバは、各配信サーバから、配信サーバから配信サーバ内のコンテンツに対応する複数の受信クライアントへの更新情報の複数の配信経路を表すトポロジ情報を受信する受信手段と、受信されたトポロジ情報毎に複数の配信経路の中から１つの選択配信経路を選択する際に、少なくとも２つの選択配信経路の少なくとも一部が重なるように選択配信経路を選択し、選択の結果を複数の配信サーバに送信し、かつ、前記一部の始点となる受信クライアントとその受信クライアントが合成する複数の更新情報とを示した合成指示を、前記一部を含む選択配信経路を表すトポロジ情報を送信した配信サーバのそれぞれに送信する制御手段と、を含む。【選択図】図１
2010050815.tif 000002
【特許請求の範囲】
【請求項１】
複数の配信サーバと通信可能なアグリゲーションサーバであって、
各配信サーバから、当該配信サーバから当該配信サーバ内のコンテンツに対応づけられた複数の受信クライアントへの前記コンテンツの更新情報についての複数の配信経路を表すトポロジ情報を受信する受信手段と、
前記受信手段にて受信されたトポロジ情報毎に当該トポロジ情報が表す複数の配信経路の中から１つの選択配信経路を選択する際に、少なくとも２つの前記選択配信経路の少なくとも一部が重なるように、前記選択配信経路を選択し、当該選択の結果を前記複数の配信サーバに送信し、かつ、前記一部の始点となる受信クライアントと、当該受信クライアントが合成する複数の更新情報と、を示した合成指示を、前記複数の配信サーバのうち、少なくとも、前記一部を含む選択配信経路を表すトポロジ情報を送信した実行配信サーバのそれぞれに送信する制御手段と、を含むアグリゲーションサーバ。
【請求項２】
請求項１に記載のアグリゲーションサーバにおいて、
前記制御手段は、
前記受信手段にて受信された各トポロジ情報を格納する格納手段と、
定期的に動作開始通知を発する動作開始通知手段と、
前記動作開始通知手段にて前記動作開始通知が発せられると、前記格納手段内のトポロジ情報毎に前記１つの選択配信経路を選択する際に、少なくとも２つの前記選択配信経路の少なくとも一部が重なるように、前記選択配信経路を選択し、当該選択の結果を前記複数の配信サーバに送信し、かつ、前記合成指示を、前記複数の配信サーバのうち、少なくとも前記実行配信サーバのそれぞれに送信する演算手段と、を含む、アグリゲーションサーバ。
【請求項３】
請求項２に記載のアグリゲーションサーバにおいて、
前記演算手段は、前記トポロジ情報毎に前記１つの選択配信経路を選択する際に、前記選択配信経路の組み合わせの中から、前記選択配信経路内の前記受信クライアント間のリンクの重なり数の分散値が最大になる組み合わせを求め、当該組み合わせに示された選択配信経路を選択する、アグリゲーションサーバ。
【請求項４】
請求項１から３のいずれか１項に記載のアグリゲーションサーバと通信可能であり、また、自己内のコンテンツの更新情報を当該コンテンツに対応づけられた複数の受信クライアントに配信する配信サーバであって、
自サーバから前記複数の受信クライアントへの前記更新情報についての複数の配信経路を表すトポロジ情報を作成し、当該トポロジ情報を前記アグリゲーションサーバに送信し、前記アグリゲーションサーバから、前記複数の配信経路の中から選択された選択配信経路を示す選択結果を受信すると、前記複数の配信経路の中から前記選択配信経路を選択し、当該アグリゲーションから、前記合成指示を受信すると、当該合成指示を前記選択配信経路に関連づけて記憶する管理手段と、
前記管理手段にて選択された選択配信経路に前記合成指示が関連づけられている場合、前記更新情報に、前記選択配信経路を示す配信経路情報と前記合成指示とを付し、前記配信経路情報と合成情報とが付された更新情報を、前記選択配信経路に従って配信し、前記選択配信経路に前記合成指示が関連づけられていない場合、前記更新情報に前記配信経路情報を付し、前記配信経路情報が付された更新情報を、前記選択配信経路に従って配信する配信手段と、を含む配信サーバ。
【請求項５】
請求項４に記載の配信サーバにおいて、
前記管理手段は、
記憶手段と、
前記トポロジ情報を作成し、当該トポロジ情報を前記記憶手段に記憶するトポロジ情報管理手段と、
定期的に報告開始通知を発する報告開始通知手段と、
前記報告開始通知手段にて前記報告開始通知が発せられると、前記記憶手段内のトポロジ情報を前記アグリゲーションサーバに送信する報告手段と、を含み、
前記トポロジ情報管理手段は、前記アグリゲーションサーバから、前記選択結果を受信すると、前記複数の配信経路の中から前記選択配信経路を選択し、当該アグリゲーションから、前記合成指示を受信すると、当該合成指示を前記選択配信経路に関連づけて前記記憶手段に記憶する、配信サーバ。
【請求項６】
請求項４または５に記載の配信サーバにおいて、
前記配信手段は、
前記更新情報を生成する生成手段と、
前記生成手段にて前記更新情報が生成されると、前記選択配信経路に前記合成指示が関連づけられている場合、前記更新情報に前記配信経路情報と前記合成指示とを付し、前記配信経路情報と合成情報とが付された更新情報を、前記選択配信経路に従って配信し、前記選択配信経路に前記合成指示が関連づけられていない場合、前記更新情報に前記配信経路情報を付し、前記配信経路情報が付された更新情報を、前記配信経路に従って配信する配信制御手段と、を含む、配信サーバ。
【請求項７】
請求項４から６のいずれか１項に記載の配信サーバにおいて、
前記管理手段は、新たな受信クライアントから、前記更新情報の通知を要求する旨の参加メッセージを受信した場合、当該新たな受信クライアントを前記コンテンツに対応づけて前記トポロジ情報を更新し、更新後のトポロジ情報を前記アグリゲーションサーバに送信する、配信サーバ。
【請求項８】
請求項４から７のいずれか１項に記載の配信サーバにおいて、
前記管理手段は、既に前記コンテンツと対応づけられている受信クライアントのいずれかから、前記更新情報の通知を中止する旨の離脱メッセージを受信した場合、当該受信クライアントと前記コンテンツとの対応づけを解消して前記トポロジ情報を更新し、更新後のトポロジ情報を前記アグリゲーションサーバに送信する、配信サーバ。
【請求項９】
請求項４から８のいずれか１項に記載の複数の配信サーバ、および、他の受信クライアントと、通信可能な受信クライアントであって、
更新情報格納手段と、
各配信サーバまたは他の受信クライアントから、前記選択配信経路を示す配信経路情報が付された更新情報を受信する更新情報受信手段と、
前記更新情報に付された配信経路情報に、自受信クライアントが終端として示されている場合には、当該更新情報の転送を中止し、当該配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されており、かつ、当該合成指示に自受信クライアントが示されている場合には、当該更新情報を、前記更新情報格納手段に格納する中継管理手段と、
前記配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されており、かつ、当該合成指示に自受信クライアントが示されていない場合、または、当該配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されていない場合には、当該更新情報を、前記配信経路情報に従って、他の受信クライアントに転送し、また、前記更新情報格納手段内に、前記合成指示に示された複数の更新情報が格納されている場合、当該複数の更新情報を合成し、当該合成された更新情報を、前記配信経路情報に従って、他の受信クライアントに転送する転送管理手段と、を含む受信クライアント。
【請求項１０】
請求項９に記載の受信クライアントにおいて、
前記転送管理手段は、前記更新情報格納手段内に前記更新情報が格納されてからの経過時間をカウントするカウント手段を含み、前記カウント手段が所定時間をカウントすると、前記更新情報格納手段内に、前記更新指示に示された全ての更新情報が格納されていなくても、前記更新情報格納手段内の前記更新情報を合成し、当該合成された更新情報を、前記配信経路情報に従って、他の受信クライアントに転送する、受信クライアント。
【請求項１１】
請求項１から３のいずれか１項に記載のアグリゲーションサーバと、
請求項４から８のいずれか１項に記載の複数の配信サーバと、
請求項９または１０に記載の複数の受信クライアントと、を含む配信システム。
【請求項１２】
複数の配信サーバと通信可能なアグリゲーションサーバが行うアグリゲーション方法であって、
各配信サーバから、当該配信サーバから当該配信サーバ内のコンテンツに対応づけられた複数の受信クライアントへの前記コンテンツの更新情報についての複数の配信経路を表すトポロジ情報を受信する受信ステップと、
前記受信されたトポロジ情報毎に当該トポロジ情報が表す複数の配信経路の中から１つの選択配信経路を選択する際に、少なくとも２つの前記選択配信経路の少なくとも一部が重なるように、前記選択配信経路を選択し、当該選択の結果を前記複数の配信サーバに送信し、かつ、前記一部の始点となる受信クライアントと、当該受信クライアントが合成する複数の更新情報と、を示した合成指示を、前記複数の配信サーバのうち、少なくとも、前記一部を含む選択配信経路を表すトポロジ情報を送信した実行配信サーバのそれぞれに送信する制御ステップと、を含むアグリゲーション方法。
【請求項１３】
請求項１２に記載のアグリゲーション方法において、
前記制御ステップは、
前記受信された各トポロジ情報を格納手段に格納する格納ステップと、
定期的に動作開始通知を発する動作開始通知ステップと、
前記動作開始通知が発せられると、前記格納手段内のトポロジ情報毎に前記１つの選択配信経路を選択する際に、少なくとも２つの前記選択配信経路の少なくとも一部が重なるように、前記選択配信経路を選択し、当該選択の結果を前記複数の配信サーバに送信し、かつ、前記合成指示を、前記複数の配信サーバのうち、少なくとも前記実行配信サーバのそれぞれに送信する送信制御ステップと、を含む、アグリゲーション方法。
【請求項１４】
請求項１から３のいずれか１項に記載のアグリゲーションサーバと通信可能であり、また、自己内のコンテンツの更新情報を当該コンテンツに対応づけられた複数の受信クライアントに配信する配信サーバが行う配信方法であって、
自サーバから前記複数の受信クライアントへの前記更新情報についての複数の配信経路を表すトポロジ情報を作成し、当該トポロジ情報を前記アグリゲーションサーバに送信し、前記アグリゲーションサーバから、前記複数の配信経路の中から選択された選択配信経路を示す選択結果を受信すると、前記複数の配信経路の中から前記選択配信経路を選択し、当該アグリゲーションから、前記合成指示を受信すると、当該合成指示を前記選択配信経路に関連づけて記憶する管理ステップと、
前記選択配信経路に前記合成指示が関連づけられている場合、前記更新情報に、前記選択配信経路を示す配信経路情報と前記合成指示とを付し、前記配信経路情報と合成情報とが付された更新情報を、前記選択配信経路に従って配信し、前記選択配信経路に前記合成指示が関連づけられていない場合、前記更新情報に前記配信経路情報を付し、前記配信経路情報が付された更新情報を、前記選択配信経路に従って配信する配信ステップと、を含む配信方法。
【請求項１５】
請求項１４に記載の配信方法において、
前記管理ステップは、
前記トポロジ情報を作成し、当該トポロジ情報を記憶手段に記憶するトポロジ情報管理ステップと、
定期的に報告開始通知を発する報告開始通知ステップと、
前記報告開始通知が発せられると、前記記憶手段内のトポロジ情報を前記アグリゲーションサーバに送信する報告ステップと、
前記アグリゲーションサーバから、前記選択結果を受信すると、前記複数の配信経路の中から前記選択配信経路を選択し、当該アグリゲーションから、前記合成指示を受信すると、当該合成指示を前記選択配信経路に関連づけて前記記憶手段に記憶管理ステップと、を含む、配信方法。
【請求項１６】
請求項４から８のいずれか１項に記載の複数の配信サーバ、および、他の受信クライアントと、通信可能な受信クライアントが行う受信方法であって、
各配信サーバまたは他の受信クライアントから、前記選択配信経路を示す配信経路情報が付された更新情報を受信する更新情報受信ステップと、
前記更新情報に付された配信経路情報に、自受信クライアントが終端として示されている場合には、当該更新情報の転送を中止し、当該配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されており、かつ、当該合成指示に自受信クライアントが示されている場合には、当該更新情報を、更新情報格納手段に格納する中継管理ステップと、
前記配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されており、かつ、当該合成指示に自受信クライアントが示されていない場合、または、当該配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されていない場合には、当該更新情報を、前記配信経路情報に従って、他の受信クライアントに転送し、また、前記更新情報格納手段内に、前記合成指示に示された複数の更新情報が格納されている場合、当該複数の更新情報を合成し、当該合成された更新情報を、前記配信経路情報に従って、他の受信クライアントに転送する転送管理ステップと、を含む受信方法。
【請求項１７】
請求項１６に記載の受信方法において、
前記転送管理ステップは、
前記更新情報格納手段内に前記更新情報が格納されてからの経過時間をカウントするカウントステップと、
前記経過時間が所定時間になると、前記更新情報格納手段内に、前記更新指示に示された全ての更新情報が格納されていなくても、前記更新情報格納手段内の前記更新情報を合成し、当該合成された更新情報を、前記配信経路情報に従って、他の受信クライアントに転送する転送ステップと、を含む、受信方法。
【請求項１８】
複数の配信サーバと通信可能なコンピュータに、
各配信サーバから、当該配信サーバから当該配信サーバ内のコンテンツに対応づけられた複数の受信クライアントへの前記コンテンツの更新情報についての複数の配信経路を表すトポロジ情報を受信する受信手順と、
前記受信されたトポロジ情報毎に当該トポロジ情報が表す複数の配信経路の中から１つの選択配信経路を選択する際に、少なくとも２つの前記選択配信経路の少なくとも一部が重なるように、前記選択配信経路を選択し、当該選択の結果を前記複数の配信サーバに送信し、かつ、前記一部の始点となる受信クライアントと、当該受信クライアントが合成する複数の更新情報と、を示した合成指示を、前記複数の配信サーバのうち、少なくとも、前記一部を含む選択配信経路を表すトポロジ情報を送信した実行配信サーバのそれぞれに送信する制御手順と、を実行させるためのプログラム。
【請求項１９】
請求項１８に記載のプログラムにおいて、
前記制御手順は、
前記受信された各トポロジ情報を格納手段に格納する格納手順と、
定期的に動作開始通知を発する動作開始通知手順と、
前記動作開始通知が発せられると、前記格納手段内のトポロジ情報毎に前記１つの選択配信経路を選択する際に、少なくとも２つの前記選択配信経路の少なくとも一部が重なるように、前記選択配信経路を選択し、当該選択の結果を前記複数の配信サーバに送信し、かつ、前記合成指示を、前記複数の配信サーバのうち、少なくとも前記実行配信サーバのそれぞれに送信する送信制御手順と、を含む、プログラム。
【請求項２０】
請求項１から３のいずれか１項に記載のアグリゲーションサーバと通信可能であり、また、自己内のコンテンツの更新情報を当該コンテンツに対応づけられた複数の受信クライアントに配信するコンピュータに、
自コンピュータから前記複数の受信クライアントへの前記更新情報についての複数の配信経路を表すトポロジ情報を作成し、当該トポロジ情報を前記アグリゲーションサーバに送信し、前記アグリゲーションサーバから、前記複数の配信経路の中から選択された選択配信経路を示す選択結果を受信すると、前記複数の配信経路の中から前記選択配信経路を選択し、当該アグリゲーションから、前記合成指示を受信すると、当該合成指示を前記選択配信経路に関連づけて記憶する管理手順と、
前記選択配信経路に前記合成指示が関連づけられている場合、前記更新情報に、前記選択配信経路を示す配信経路情報と前記合成指示とを付し、前記配信経路情報と合成情報とが付された更新情報を、前記選択配信経路に従って配信し、前記選択配信経路に前記合成指示が関連づけられていない場合、前記更新情報に前記配信経路情報を付し、前記配信経路情報が付された更新情報を、前記選択配信経路に従って配信する配信手順と、を実行させるためのプログラム。
【請求項２１】
請求項２０に記載のプログラムにおいて、
前記管理手順は、
前記トポロジ情報を作成し、当該トポロジ情報を記憶手段に記憶するトポロジ情報管理手順と、
定期的に報告開始通知を発する報告開始通知手順と、
前記報告開始通知が発せられると、前記記憶手段内のトポロジ情報を前記アグリゲーションサーバに送信する報告手順と、
前記アグリゲーションサーバから、前記選択結果を受信すると、前記複数の配信経路の中から前記選択配信経路を選択し、当該アグリゲーションから、前記合成指示を受信すると、当該合成指示を前記選択配信経路に関連づけて前記記憶手段に記憶管理手順と、を含む、プログラム。
【請求項２２】
請求項４から８のいずれか１項に記載の複数の配信サーバ、および、他の受信クライアントと、通信可能なコンピュータに、
各配信サーバまたは他の受信クライアントから、前記選択配信経路を示す配信経路情報が付された更新情報を受信する更新情報受信手順と、
前記更新情報に付された配信経路情報に、自受信クライアントが終端として示されている場合には、当該更新情報の転送を中止し、当該配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されており、かつ、当該合成指示に自受信クライアントが示されている場合には、当該更新情報を、更新情報格納手段に格納する中継管理手順と、
前記配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されており、かつ、当該合成指示に自受信クライアントが示されていない場合、または、当該配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されていない場合には、当該更新情報を、前記配信経路情報に従って、他の受信クライアントに転送し、また、前記更新情報格納手段内に、前記合成指示に示された複数の更新情報が格納されている場合、当該複数の更新情報を合成し、当該合成された更新情報を、前記配信経路情報に従って、他の受信クライアントに転送する転送管理手順と、を実行させるためのプログラム。
【請求項２３】
請求項２２に記載のプログラムにおいて、
前記転送管理手順は、
前記更新情報格納手段内に前記更新情報が格納されてからの経過時間をカウントするカウント手順と、
前記経過時間が所定時間になると、前記更新情報格納手段内に、前記更新指示に示された全ての更新情報が格納されていなくても、前記更新情報格納手段内の前記更新情報を合成し、当該合成された更新情報を、前記配信経路情報に従って、他の受信クライアントに転送する転送手順と、を含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多数のサーバから発信される様々なコンテンツについて、端末から更新情報の要求があった場合に、そのコンテンツの更新情報を、その端末に提供する、配信システムに関する。
【０００２】
特には、本発明は、アグリゲーションサーバ、配信サーバ、受信クライアント、配信システム、アグリゲーション方法、配信方法、受信方法およびプログラムに関する。
【背景技術】
【０００３】
近年、携帯電話、ＰＤＡまたは車載端末などの移動端末においても、移動しながら、音声や映像などの大容量コンテンツをネットワークを利用して交換したい、という要望が、ユーザの間で高まってきている。
【０００４】
さらに、街角監視カメラまたは各種センサが生成した情報などのコンテンツも、ネットワークに流通させ、活用したい、といった要望もある。
【０００５】
そのような要望に対応する技術が検討されている。特に、様々で多量のコンテンツが流通する中で、コンテンツの鮮度を損なわずに、コンテンツの情報を、ユーザへ、リアルタイムに届けることが重要となる。
【０００６】
このような要望に対して、コンテンツが更新されたことを表す更新情報を端末に配信するシステムが検討されている。
【０００７】
このシステムにおいて、コンテンツ毎に、更新情報の配信のためのトポロジ（配信経路を示した機器の接続形態）が作成され、そのトポロジに従って更新情報が配信されると、更新情報の配信効率が悪くなってしまう。
【０００８】
そこで、特許文献１には、更新情報の配信頻度を少なくするために、更新情報を合成すなわちアグリゲーションする手法が記載されている。
【０００９】
特許文献１に記載の手法では、更新情報が、更新情報配信システムで一旦集約される。また、クライアントがどのコンテンツの更新情報を要求しているかを表す情報も、更新情報配信システムで集約される。そして、更新情報配信システムが、更新情報をアグリゲーションできるクライアントの配信ツリーすなわちトポロジを設定し、更新情報をアグリゲーションし、アグリゲーションされた更新情報を、トポロジに従って配信することによって、更新情報の配信効率を高めている。
【特許文献１】特開２００８−４６８８８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記手法は、ユビキタスネットワーク社会において通信機器間の接続が頻繁に改変する状況に十分対応できない。
【００１１】
例えば、特許文献１に記載の手法では、サーバとクライアントの関係が頻繁に変化した場合、トポロジの組み換えが頻繁になり、可用性が悪くなるという課題があった。
【００１２】
本発明の目的は、上記課題を解決することが可能な、アグリゲーションサーバ、配信サーバ、受信クライアント、配信システム、アグリゲーション方法、配信方法、受信方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明のアグリゲーションサーバは、複数の配信サーバと通信可能なアグリゲーションサーバであって、各配信サーバから、当該配信サーバから当該配信サーバ内のコンテンツに対応づけられた複数の受信クライアントへの前記コンテンツの更新情報についての複数の配信経路を表すトポロジ情報を受信する受信手段と、前記受信手段にて受信されたトポロジ情報毎に当該トポロジ情報が表す複数の配信経路の中から１つの選択配信経路を選択する際に、少なくとも２つの前記選択配信経路の少なくとも一部が重なるように、前記選択配信経路を選択し、当該選択の結果を前記複数の配信サーバに送信し、かつ、前記一部の始点となる受信クライアントと、当該受信クライアントが合成する複数の更新情報と、を示した合成指示を、前記複数の配信サーバのうち、少なくとも、前記一部を含む選択配信経路を表すトポロジ情報を送信した実行配信サーバのそれぞれに送信する制御手段と、を含む。
【００１４】
本発明の配信サーバは、上記アグリゲーションサーバと通信可能であり、また、自己内のコンテンツの更新情報を当該コンテンツに対応づけられた複数の受信クライアントに配信する配信サーバであって、自サーバから前記複数の受信クライアントへの前記更新情報についての複数の配信経路を表すトポロジ情報を作成し、当該トポロジ情報を前記アグリゲーションサーバに送信し、前記アグリゲーションサーバから、前記複数の配信経路の中から選択された選択配信経路を示す選択結果を受信すると、前記複数の配信経路の中から前記選択配信経路を選択し、当該アグリゲーションから、前記合成指示を受信すると、当該合成指示を前記選択配信経路に関連づけて記憶する管理手段と、前記管理手段にて選択された選択配信経路に前記合成指示が関連づけられている場合、前記更新情報に、前記選択配信経路を示す配信経路情報と前記合成指示とを付し、前記配信経路情報と合成情報とが付された更新情報を、前記選択配信経路に従って配信し、前記選択配信経路に前記合成指示が関連づけられていない場合、前記更新情報に前記配信経路情報を付し、前記配信経路情報が付された更新情報を、前記選択配信経路に従って配信する配信手段と、を含む。
【００１５】
本発明の受信クライアントは、複数の上記配信サーバ、および、他の受信クライアントと、通信可能な受信クライアントであって、更新情報格納手段と、各配信サーバまたは他の受信クライアントから、前記選択配信経路を示す配信経路情報が付された更新情報を受信する更新情報受信手段と、前記更新情報に付された配信経路情報に、自受信クライアントが終端として示されている場合には、当該更新情報の転送を中止し、当該配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されており、かつ、当該合成指示に自受信クライアントが示されている場合には、当該更新情報を、前記更新情報格納手段に格納する中継管理手段と、前記配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されており、かつ、当該合成指示に自受信クライアントが示されていない場合、または、当該配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されていない場合には、当該更新情報を、前記配信経路情報に従って、他の受信クライアントに転送し、また、前記更新情報格納手段内に、前記合成指示に示された複数の更新情報が格納されている場合、当該複数の更新情報を合成し、当該合成された更新情報を、前記配信経路情報に従って、他の受信クライアントに転送する転送管理手段と、を含む。
【００１６】
本発明の配信システムは、上記アグリゲーションサーバと、複数の上記配信サーバと、複数の上記受信クライアントと、を含む。
【００１７】
本発明のアグリゲーション方法は、複数の配信サーバと通信可能なアグリゲーションサーバが行うアグリゲーション方法であって、各配信サーバから、当該配信サーバから当該配信サーバ内のコンテンツに対応づけられた複数の受信クライアントへの前記コンテンツの更新情報についての複数の配信経路を表すトポロジ情報を受信する受信ステップと、前記受信されたトポロジ情報毎に当該トポロジ情報が表す複数の配信経路の中から１つの選択配信経路を選択する際に、少なくとも２つの前記選択配信経路の少なくとも一部が重なるように、前記選択配信経路を選択し、当該選択の結果を前記複数の配信サーバに送信し、かつ、前記一部の始点となる受信クライアントと、当該受信クライアントが合成する複数の更新情報と、を示した合成指示を、前記複数の配信サーバのうち、少なくとも、前記一部を含む選択配信経路を表すトポロジ情報を送信した実行配信サーバのそれぞれに送信する制御ステップと、を含む。
【００１８】
本発明の配信方法は、上記アグリゲーションサーバと通信可能であり、また、自己内のコンテンツの更新情報を当該コンテンツに対応づけられた複数の受信クライアントに配信する配信サーバが行う配信方法であって、自サーバから前記複数の受信クライアントへの前記更新情報についての複数の配信経路を表すトポロジ情報を作成し、当該トポロジ情報を前記アグリゲーションサーバに送信し、前記アグリゲーションサーバから、前記複数の配信経路の中から選択された選択配信経路を示す選択結果を受信すると、前記複数の配信経路の中から前記選択配信経路を選択し、当該アグリゲーションから、前記合成指示を受信すると、当該合成指示を前記選択配信経路に関連づけて記憶する管理ステップと、前記選択配信経路に前記合成指示が関連づけられている場合、前記更新情報に、前記選択配信経路を示す配信経路情報と前記合成指示とを付し、前記配信経路情報と合成情報とが付された更新情報を、前記選択配信経路に従って配信し、前記選択配信経路に前記合成指示が関連づけられていない場合、前記更新情報に前記配信経路情報を付し、前記配信経路情報が付された更新情報を、前記選択配信経路に従って配信する配信ステップと、を含む。
【００１９】
本発明の受信方法は、複数の上記配信サーバ、および、他の受信クライアントと、通信可能な受信クライアントが行う受信方法であって、各配信サーバまたは他の受信クライアントから、前記選択配信経路を示す配信経路情報が付された更新情報を受信する更新情報受信ステップと、前記更新情報に付された配信経路情報に、自受信クライアントが終端として示されている場合には、当該更新情報の転送を中止し、当該配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されており、かつ、当該合成指示に自受信クライアントが示されている場合には、当該更新情報を、更新情報格納手段に格納する中継管理ステップと、前記配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されており、かつ、当該合成指示に自受信クライアントが示されていない場合、または、当該配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されていない場合には、当該更新情報を、前記配信経路情報に従って、他の受信クライアントに転送し、また、前記更新情報格納手段内に、前記合成指示に示された複数の更新情報が格納されている場合、当該複数の更新情報を合成し、当該合成された更新情報を、前記配信経路情報に従って、他の受信クライアントに転送する転送管理ステップと、を含む。
【００２０】
本発明のプログラムは、複数の配信サーバと通信可能なコンピュータに、各配信サーバから、当該配信サーバから当該配信サーバ内のコンテンツに対応づけられた複数の受信クライアントへの前記コンテンツの更新情報についての複数の配信経路を表すトポロジ情報を受信する受信手順と、前記受信されたトポロジ情報毎に当該トポロジ情報が表す複数の配信経路の中から１つの選択配信経路を選択する際に、少なくとも２つの前記選択配信経路の少なくとも一部が重なるように、前記選択配信経路を選択し、当該選択の結果を前記複数の配信サーバに送信し、かつ、前記一部の始点となる受信クライアントと、当該受信クライアントが合成する複数の更新情報と、を示した合成指示を、前記複数の配信サーバのうち、少なくとも、前記一部を含む選択配信経路を表すトポロジ情報を送信した実行配信サーバのそれぞれに送信する制御手順と、を実行させる。
【００２１】
本発明のプログラムは、上記アグリゲーションサーバと通信可能であり、また、自己内のコンテンツの更新情報を当該コンテンツに対応づけられた複数の受信クライアントに配信するコンピュータに、自コンピュータから前記複数の受信クライアントへの前記更新情報についての複数の配信経路を表すトポロジ情報を作成し、当該トポロジ情報を前記アグリゲーションサーバに送信し、前記アグリゲーションサーバから、前記複数の配信経路の中から選択された選択配信経路を示す選択結果を受信すると、前記複数の配信経路の中から前記選択配信経路を選択し、当該アグリゲーションから、前記合成指示を受信すると、当該合成指示を前記選択配信経路に関連づけて記憶する管理手順と、前記選択配信経路に前記合成指示が関連づけられている場合、前記更新情報に、前記選択配信経路を示す配信経路情報と前記合成指示とを付し、前記配信経路情報と合成情報とが付された更新情報を、前記選択配信経路に従って配信し、前記選択配信経路に前記合成指示が関連づけられていない場合、前記更新情報に前記配信経路情報を付し、前記配信経路情報が付された更新情報を、前記選択配信経路に従って配信する配信手順と、を実行させる。
【００２２】
本発明のプログラムは、複数の上記配信サーバ、および、他の受信クライアントと、通信可能なコンピュータに、各配信サーバまたは他の受信クライアントから、前記選択配信経路を示す配信経路情報が付された更新情報を受信する更新情報受信手順と、前記更新情報に付された配信経路情報に、自受信クライアントが終端として示されている場合には、当該更新情報の転送を中止し、当該配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されており、かつ、当該合成指示に自受信クライアントが示されている場合には、当該更新情報を、更新情報格納手段に格納する中継管理手順と、前記配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されており、かつ、当該合成指示に自受信クライアントが示されていない場合、または、当該配信経路情報に自受信クライアントが中継箇所として示されており、かつ、当該更新情報に前記合成指示が付されていない場合には、当該更新情報を、前記配信経路情報に従って、他の受信クライアントに転送し、また、前記更新情報格納手段内に、前記合成指示に示された複数の更新情報が格納されている場合、当該複数の更新情報を合成し、当該合成された更新情報を、前記配信経路情報に従って、他の受信クライアントに転送する転送管理手順と、を実行させる。
【発明の効果】
【００２３】
本発明によれば、サーバとクライアントの関係が頻繁に変化する場合においても、更新情報の配信の高効率と、システムの高可用を両立することが可能になる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施形態を図面を参照して説明する。
【００２５】
（第１の実施形態）
図１は、本発明に係る第１の実施形態の更新情報配信システム（以下、単に「配信システム」と称する）１のネットワーク構成例を示す概念図である。
【００２６】
配信システム１は、複数の更新情報配信サーバ（以下、単に「配信サーバ」と称する）１００と、アグリゲーションサーバ２００と、複数の更新情報受信クライアント（以下、単に「受信クライアント」と称する）３００と、を含む。
【００２７】
配信サーバ１００は、例えば、コンピュータである。
【００２８】
配信サーバ１００は、１つまたは複数の他の配信サーバ１００と、アグリゲーションサーバ２００と、複数の受信クライアント３００と、直接的または間接的に接続する。
【００２９】
配信サーバ１００は、自サーバが保有するコンテンツが更新されたことを表す更新情報を、複数の受信クライアント３００のうち、その更新情報を希望する受信クライアント（以下「参加クライアント」と称する）３００ａのそれぞれへ送信する。
【００３０】
参加クライアント３００ａのそれぞれは、自己に送信される更新情報に示されるコンテンツと対応づけられている。
【００３１】
更新情報は、更新メッセージに付加されて送信される。
【００３２】
本実施形態では、配信サーバ１００は、コンテンツ毎に、コンテンツの更新メッセージの送信経路および送信先（参加クライアント３００ａ）等を表す更新グラフを作成する。配信サーバ１００は、コンテンツ毎に、更新グラフを保存する。
【００３３】
コンテンツの更新メッセージは、そのコンテンツに対応する更新グラフに従い転送されていく。
【００３４】
各更新グラフは、トポロジ情報と、アグリゲーション指示と、更新グラフ参加クライアント情報（以下、単に「参加クライアント情報」と称する）と、を含む。
【００３５】
トポロジ情報は、参加クライアント３００ａの接続形態、すなわち、トポロジ情報に対応するコンテンツの更新メッセージの送信経路を表すトポロジを示す。
【００３６】
トポロジ情報は、現在利用中のトポロジと、１つまたは複数のトポロジ候補と、を示す。つまり、トポロジ情報は、配信サーバ１００からその配信サーバ１００内のコンテンツに対応づけられた複数の受信クライアント３００への更新情報の複数の配信経路を表す。
【００３７】
アグリゲーション指示は、アグリゲーション（合成）される複数の更新メッセージ（以下「被合成更新メッセージ」と称する）と、アグリゲーションを実行させる参加クライアント（以下「実行クライアント」と称する）３００ａ１と、を表す。
【００３８】
つまり、アグリゲーション指示は、実行クライアント３００ａ１に、複数の被合成更新メッセージをアグリゲーションすることを指示するための、情報である。
【００３９】
なお、アグリゲーション指示は、アグリゲーションサーバ２００によって作成され、アグリゲーションサーバ２００から配信サーバ１００に送信される。
【００４０】
参加クライアント情報は、参加クライアント３００ａにコンテンツの更新メッセージを送信する際に必要な情報である。
【００４１】
例えば、参加クライアント３００ａのクライアントＩＤ、ＩＰアドレス、ポート番号が、参加クライアント情報として、用いられる。
【００４２】
アグリゲーションサーバ２００は、例えば、コンピュータである。
【００４３】
アグリゲーションサーバ２００は、１つまたは複数の配信サーバ１００と、直接的または間接的に接続する。
【００４４】
アグリゲーションサーバ２００は、配信サーバ１００から、コンテンツ毎に、更新グラフのトポロジ情報を収集する。例えば、アグリゲーションサーバ２００は、各配信サーバ１００から、更新グラフのトポロジ情報を受信することによって、トポロジ情報を収集する。
【００４５】
アグリゲーションサーバ２００は、更新メッセージを効率よくアグリゲーション（合成）できるトポロジの組み合わせを、更新グラフのトポロジ情報に基づいて計算する。
【００４６】
受信クライアント３００は、例えば、コンピュータである。
【００４７】
受信クライアント３００は、１つまたは複数の配信サーバ１００と、１つまたは複数の他の受信クライアント３００と、直接的または間接的に接続する。
【００４８】
受信クライアント３００は、受信クライアント３００の使用者（以下、単に「使用者」と称する）の操作に従って、使用者が希望するコンテンツ（以下「希望コンテンツ」と称する）を、配信システム１上で検索する。
【００４９】
受信クライアント３００は、希望コンテンツが発見された場合、希望コンテンツを所有する配信サーバ１００に、使用者の操作に従って接続する。
【００５０】
図２は、配信サーバ１００と、アグリゲーションサーバ２００と、受信クライアント３００（参加クライアント３００ａ）と、の間でやり取りされる情報（メッセージ）と、配信システム１の動作の概要を示した説明図である。各メッセージには、宛先が記載されている。
【００５１】
図２において、受信クライアント３００は、使用者の操作に従って、検索メッセージ１００１を、配信サーバ１００に送信する。
【００５２】
検索メッセージ１００１には、希望コンテンツに関する１つまたは複数の情報が記載されている。
【００５３】
配信サーバ１００は、検索メッセージ１００１を受信すると、検索メッセージ１００１に記載されたコンテンツに関する情報に該当するコンテンツを検索する。
【００５４】
配信サーバ１００は、その検索結果を、検索応答メッセージ１００２に付加する。
【００５５】
配信サーバ１００は、検索結果が付加された検索応答メッセージ１００２を、検索メッセージ１００１の送信元（受信クライアント３００）に送信する。
【００５６】
受信クライアント３００は、検索応答メッセージ１００２を受信すると、検索応答メッセージ１００２に付加されている検索結果を表示する。
【００５７】
受信クライアント３００は、使用者から、検索結果に示されたコンテンツについての更新情報を希望する旨の指示を受け付けると、参加クライアント３００ａとして機能して、更新グラフ参加メッセージ（以下、単に「参加メッセージ」と称する）１００３を、配信サーバ１００に送信する。
【００５８】
参加メッセージ１００３には、希望コンテンツの識別情報（コンテンツＩＤ）と、参加クライアント３００ａの情報（クライアントＩＤ、ＩＰアドレス、ポート番号）とが、記載されている。
【００５９】
配信サーバ１００は、参加メッセージ１００３を受信すると、参加メッセージ１００３に記載されている希望コンテンツの識別情報にて識別される希望コンテンツを特定する。
【００６０】
続いて、配信サーバ１００は、その希望コンテンツに対応する更新グラフ（以下「対応更新グラフ」と称する）を、参加クライアント３００ａの情報に基づいて更新する。
【００６１】
このとき、配信サーバ１００は、配信サーバ１００と、既に更新情報の通知対象に参加している参加クライアント３００ａと、新たに参加した参加クライアント３００ａと、の複数の接続形態、すなわち、複数のトポロジを示すトポロジ情報を作成する。
【００６２】
つまり、このトポロジ情報は、配信サーバ１００から、既に更新情報の通知対象に参加している参加クライアント３００ａおよび新たに参加した参加クライアント３００ａへの、更新メッセージの複数の配信経路（トポロジ）を表す。
【００６３】
配信サーバ１００は、トポロジ情報にて示された複数のトポロジの中から、今後使用するトポロジを適宜選択し、その選択結果を、トポロジ情報に記載する。
【００６４】
配信サーバ１００は、対応更新グラフ内のトポロジ情報を、その作成されたトポロジ情報に更新する。
【００６５】
さらに、配信サーバ１００は、参加クライアント３００ａの情報を、参加クライアント情報に追加する。
【００６６】
配信サーバ１００は、対応更新グラフを更新すると、更新グラフ参加応答メッセージ（以下、単に「参加応答メッセージ」と称する）１００４を、参加クライアント３００ａに送信する。
【００６７】
参加応答メッセージ１００４には、対応更新グラフ内のトポロジ情報が含まれる。
【００６８】
また、各配信サーバ１００は、予め設定された時間毎に、トポロジ報告メッセージ１００５を、アグリゲーションサーバ２００に送信する。
【００６９】
各トポロジ報告メッセージ１００５には、トポロジ報告メッセージ１００５の送信元である配信サーバ１００に保存されている、コンテンツ毎の更新グラフが含まれる。
【００７０】
なお、配信サーバ１００は、自サーバ内の全ての更新グラフを、トポロジ報告メッセージ１００５に含めてもよいし、自サーバ内の更新グラフのいずれかを、トポロジ報告メッセージ１００５に含めてもよい。
【００７１】
アグリゲーションサーバ２００は、トポロジ報告メッセージ１００５を受信する毎に、トポロジ報告メッセージ１００５に含まれているコンテンツ毎の更新グラフを保存する。
【００７２】
アグリゲーションサーバ２００は、予め設定された時間毎に、各更新グラフに示されたトポロジのそれぞれの組み合わせの中で、更新メッセージをアグリゲーションすることができる組み合わせ（以下「推奨組み合わせ」と称する）を演算して求める。
【００７３】
本実施形態では、アグリゲーションサーバ２００は、トポロジ情報毎にトポロジ情報が表す複数のトポロジの中から１つの選択トポロジ、つまり、選択配信経路を選択する際に、少なくとも２つの選択トポロジ（選択配信経路）の少なくとも一部が重なるように、選択トポロジを選択する。
【００７４】
アグリゲーションサーバ２００は、トポロジ情報ごとに選択された選択トポロジの組み合わせを、推奨組み合わせとして用いる。
【００７５】
アグリゲーションサーバ２００は、推奨組み合わせを求めると、選択トポロジのうち重なる部分（上記一部）の始点となる受信クライアントを実行クライアントとして示すと共に、その実行クライアントがアグリゲーションする複数の更新メッセージを示したアグリゲーション指示を生成する。
【００７６】
アグリゲーション指示は、一般的に合成指示と呼ぶことができる。
【００７７】
アグリゲーションサーバ２００は、推奨組み合わせと、アグリゲーション指示とを、トポロジ指定メッセージ１００６に付加する。
【００７８】
アグリゲーションサーバ２００は、推奨組み合わせとアグリゲーション指示とが付加されたトポロジ指定メッセージ１００６を、全ての配信サーバ１００に送信する。
【００７９】
各配信サーバ１００は、トポロジ指定メッセージ１００６を受信すると、自サーバ内のコンテンツ毎の更新グラフ内のトポロジ情報にて示された複数のトポロジのうち、トポロジ指定メッセージ１００６に付加された推奨組み合わせに示された選択トポロジを、今後使用するトポロジとして選択し、その選択結果をトポロジ情報に記載する。
【００８０】
また、各配信サーバ１００は、トポロジ指定メッセージ１００６に付加されたアグリゲーション指示を、今後使用するトポロジに関連づけて記憶する。
【００８１】
また、配信サーバ１００内のコンテンツが更新されると、配信サーバ１００は、更新のあったコンテンツに対応する更新フラグ内のトポロジ情報に記載されているトポロジのうち、今後使用するトポロジとして選択されたトポロジ（選択トポロジ）通りに更新メッセージ１００７が転送されていくように、更新メッセージ１００７に、コンテンツのメタデータの更新内容を示したメタデータ更新情報と、選択トポロジを示した選択トポロジ情報（配信経路情報）と、アグリゲーション指示と、を含め、その更新メッセージ１００７を、選択トポロジに従った送信先（参加クライアント３００ａ）に送信する。
【００８２】
参加クライアント３００ａは、更新メッセージ１００７を受信すると、更新メッセージ１００７に含まれるメタデータ更新情報を得る。
【００８３】
更新メッセージ１００７内の選択トポロジに転送指示（次の送信先）が記載されていない（つまり、自己が終端として示されている）場合、参加クライアント３００ａは、更新メッセージ１００７の転送を中止する。
【００８４】
更新メッセージ１００７内の選択トポロジに転送指示が記載され（つまり、自己が中継箇所として示され）、かつ、アグリゲーション指示がない場合、または、更新メッセージ１００７内の選択トポロジに転送指示があり、かつ、アグリゲーション指示があり、かつ、アグリゲーション指示に自己が実行クライアントとして記載されていない場合、参加クライアント３００ａは、更新メッセージ１００７をコピーし、そのコピーを、転送先として指定された参加クライアント３００ａに送信する。
【００８５】
更新メッセージ１００７内の選択トポロジに転送指示があり、かつ、アグリゲーション指示があり、かつ、アグリゲーション指示に自己が実行クライアントとして記載されており、かつ、アグリゲーション指示に記載された更新メッセージの全てが、自己に存在していない場合、参加クライアント３００ａは、その更新メッセージ１００７を保存し、続いて、その更新メッセージについての時間カウントを開始する。
【００８６】
なお、アグリゲーション指示に記載された更新メッセージの全てが、自己に存在する場合、参加クライアント３００ａは、時間カウントを停止し、アグリゲーション対象の更新メッセージをアグリゲーションして、アグリゲーションした更新メッセージを、選択トポロジに従い送信する。
【００８７】
なお、参加クライアント３００ａは、時間カウントの値が所定の時間を示すと、自己に保存中の、アグリゲーション指示に記載された各更新メッセージを読み出し、その更新メッセージをアグリゲーションし、選択トポロジに従い、アグリゲーションした更新メッセージ１０７を送信する。
【００８８】
また、参加クライアント３００ａは、使用者から希望コンテンツ本体を要求する旨の情報を受け付けると、コンテンツ要求メッセージ１００８を、希望コンテンツに対応する配信サーバ１００に送信する。
【００８９】
コンテンツ要求メッセージ１００８には、希望コンテンツの識別情報（コンテンツＩＤ）が記載されている。
【００９０】
配信サーバ１００は、コンテンツ要求メッセージ１００８を受信すると、コンテンツ要求メッセージ１００８内のコンテンツの識別情報にて識別されたコンテンツを、コンテンツ要求応答メッセージ１００９に付加して、コンテンツ要求メッセージ１００８の送信元（参加クライアント３００ａ）に送信する。
【００９１】
また、参加クライアント３００ａは、使用者から、コンテンツの更新情報の通知の中止を希望する旨の指示を受け付けると、更新グラフ離脱メッセージ（以下、単に「離脱メッセージ」と称する）１０１０を、配信サーバ１００に送信する。
【００９２】
離脱メッセージ１０１０には、更新情報の通知の中止を希望するコンテンツの識別情報（コンテンツＩＤ）と、参加クライアント３００ａの情報（クライアントＩＤ、ＩＰアドレス、ポート番号）とが、記載されている。
【００９３】
配信サーバ１００は、離脱メッセージ１０１０を受信すると、離脱メッセージ１０１０に記載されているコンテンツの識別情報にて識別されるコンテンツを特定する。
【００９４】
続いて、更新グラフ管理部１１４は、その特定されたコンテンツに対応する更新グラフ（対応更新グラフ）を、離脱メッセージ１０１０に記載されている受信クライアント３００（具体的には、参加クライアント３００ａ）の情報に基づいて更新する。
【００９５】
このとき、配信サーバ１００は、既に参加している参加クライアント３００ａから、離脱希望の参加クライアント３００ａを除いた参加クライアント３００ａと、配信サーバ１００と、の複数の接続形態、すなわち、複数のトポロジを示すトポロジ情報を作成する。
【００９６】
このトポロジ情報は、配信サーバ１００から、既に参加している参加クライアント３００ａから離脱希望の参加クライアント３００ａを除いた参加クライアント３００ａへの、更新メッセージの複数の配信経路を表す。
【００９７】
配信サーバ１００は、トポロジ情報にて示された複数のトポロジの中から、今後使用するトポロジ（選択トポロジ）を選択し、その選択結果を、トポロジ情報に記載する。
【００９８】
配信サーバ１００は、対応更新グラフ内のトポロジ情報を、その作成されたトポロジ情報に更新する。
【００９９】
さらに、配信サーバ１００は、離脱を希望する参加クライアント３００ａの情報を、参加クライアント情報から削除する。
【０１００】
配信サーバ１００は、対応更新グラフを更新すると、更新グラフ離脱応答メッセージ（以下、単に「離脱応答メッセージ」と称する）１０１１を、離脱メッセージ１０１０の送信元（参加クライアント３００ａ）に送信する。
【０１０１】
次に、配信サーバ１００と、アグリゲーションサーバ２００と、受信クライアント３００と、のそれぞれについて説明する。
【０１０２】
図３は、配信サーバ１００の構成を示すブロック図である。
【０１０３】
配信サーバ１００は、主制御部１１０と、更新グラフ参加クライアント情報データベース（以下「参加クライアント情報ＤＢ」と称する）１２１と、メタデータデータベース（以下「メタデータＤＢ」と称する）１２２と、コンテンツデータベース（以下「コンテンツＤＢ」と称する）１２３と、サーバ情報データベース（以下「サーバ情報ＤＢ」と称する）１２４と、ネットワークインターフェイス（以下「ネットワークＩＦ」と称する）１３０と、を含む。
【０１０４】
主制御部１１０は、送受信部１１１と、トポロジ報告部１１２と、トポロジ報告タイマ１１３と、更新グラフ管理部１１４と、検索サーバ部１１５と、メタデータ配信サーバ部１１６と、メタデータ生成部１１７と、コンテンツサーバ部１１８と、を含む。
【０１０５】
主制御部１１０は、ＣＰＵ、ＲＡＭ、およびＯＳなどで構成されたコンピュータの主要部である。主制御部１１０は、ＣＤ−ＲＯＭ、ハードディスクまたはメモリに記録されたプログラムに従って動作する。ＣＤ−ＲＯＭ、ハードディスクまたはメモリは、一般的に、コンピュータにて読み取り可能な記録媒体と呼ぶことができる。
【０１０６】
主制御部１１０は、そのプログラムを記録媒体から読み取り実行することによって、送受信部１１１、トポロジ報告部１１２、トポロジ報告タイマ１１３、更新グラフ管理部１１４、検索サーバ部１１５、メタデータ配信サーバ部１１６、メタデータ生成部１１７、および、コンテンツサーバ部１１８として機能する。
【０１０７】
トポロジ報告部１１２と、トポロジ報告タイマ１１３と、更新グラフ管理部１１４と、参加クライアント情報ＤＢ１２１とは、管理部１００ａに含まれる。
【０１０８】
メタデータ配信サーバ部１１６と、メタデータ生成部１１７と、メタデータＤＢ１２２とは、配信部１００ｂに含まれる。
【０１０９】
メタデータ配信サーバ部１１６と、メタデータＤＢ１２２とは、配信制御部１００ｂ１に含まれる。
【０１１０】
配信サーバ１００は、自己内のコンテンツの更新情報を、そのコンテンツに対応づけられた複数の受信クライアント３００、すなわち、複数の参加クライアント３００ａに配信する。
【０１１１】
管理部１００ａは、一般的に管理手段と呼ぶことができる。
【０１１２】
管理部１００ａは、自サーバから複数の参加クライアント３００ａへの更新情報の複数の配信経路（トポロジ）を表すトポロジ情報を作成する。
【０１１３】
管理部１００ａは、そのトポロジ情報を含むトポロジ報告メッセージ１００５を、アグリゲーションサーバ２００に送信する。
【０１１４】
管理部１００ａは、アグリゲーションサーバ２００から、トポロジ指定メッセージ１００６を受信すると、トポロジ情報が示す複数のトポロジの中から、トポロジ指定メッセージ１００６に選択トポロジとして示されたトポロジを、今後使用するトポロジ（選択トポロジ）として選択し、その選択結果をトポロジ情報に記載する。
【０１１５】
管理部１００ａは、トポロジ指定メッセージ１００６内のアグリゲーション指示を、その選択されたトポロジ（選択トポロジ）に関連づけて記憶する。
【０１１６】
配信部１００ｂは、一般的に配信手段と呼ぶことができる。
【０１１７】
配信部１００ｂは、選択トポロジにアグリゲーション指示が関連づけられている場合、更新メッセージ１００７に、その選択トポロジを示す選択トポロジ情報とアグリゲーション指示とを付して、選択トポロジ情報とアグリゲーション指示とが付された更新メッセージ１００７を、その選択トポロジに従って配信する。
【０１１８】
一方、選択トポロジにアグリゲーション指示が関連づけられていない場合、配信部１００ｂは、更新メッセージ１００７に選択トポロジ情報を付して、選択トポロジ情報が付された更新メッセージ１００７を、その選択トポロジに従って配信する。
【０１１９】
参加クライアント情報ＤＢ１２１は、一般的に記憶手段と呼ぶことができる。
【０１２０】
図４は、参加クライアント情報ＤＢ１２１のデータ構成を示す概念図である。
【０１２１】
参加クライアント情報ＤＢ１２１は、コンテンツＤＢ１２３に保存されているコンテンツ毎に（図４では、コンテンツＩＤ毎に）、トポロジ情報と、アグリゲーション指示と、更新グラフ参加クライアント情報と、を保存する。
【０１２２】
トポロジ情報と、アグリゲーション指示と、更新グラフ参加クライアント情報とで、更新グラフが構成される。
【０１２３】
図４において、例えば、トポロジ情報の「ｎ１−ｎ１０−ｎ１３」は、受信クライアントｎ１、ｎ１０およびｎ１３が直列に接続され、受信クライアントｎ１が配信サーバ１００に接続されていることを示す。
【０１２４】
また、トポロジ情報の「ｎ１−ｎ１０−ｎ１３」は、受信クライアントｎ１およびｎ１０が中継箇所であり、受信クライアントｎ１３が終端であることも示す。
【０１２５】
一方、トポロジ情報の「ｎ１、ｎ１０、ｎ１３」は、受信クライアントｎ１、ｎ１０およびｎ１３が、スター型で配信サーバ１００に接続されていることを示す。
【０１２６】
コンテンツＣ１に関連づけられているアグリゲーション指示「ｎ１０−ｎ１３：Ｃ１０」は、受信クライアントｎ１０が実行クライアントであり、コンテンツＣ１の更新メッセージとコンテンツＣ１０の更新メッセージとが被合成更新メッセージであることを示す。
【０１２７】
また、コンテンツＣ１に関連づけられているアグリゲーション指示「ｎ１０−ｎ１３：Ｃ１０」は、受信クライアントｎ１３が、合成された更新メッセージを合成前の更新メッセージのそれぞれに分離する分離クライアントであることも示す。
【０１２８】
コンテンツＣ１に関連づけられているアグリゲーション指示「ｎ１０−ｎ１３：Ｃ１０」は、例えば、アグリゲーションサーバ２００から、「ｎ１０−ｎ１３：Ｃ１、Ｃ１０」の形式で送信される。
【０１２９】
「ｎ１０−ｎ１３：Ｃ１、Ｃ１０」は、ｎ１０が実行クライアントであり、コンテンツＣ１の更新メッセージとコンテンツＣ１０の更新メッセージとが被合成更新メッセージであり、ｎ１３が分離クライアントであることを示す。
【０１３０】
更新グラフ管理部１１４が、その「ｎ１０−ｎ１３：Ｃ１、Ｃ１０」から、自クライアントに格納されているコンテンツに対応するＣ１を検出すると、参加クライアント情報ＤＢ１２１において、コンテンツＣ１と関連づけて「ｎ１０−ｎ１３：Ｃ１０」を保存する。なお、「ｎ１０−ｎ１３：Ｃ１０」の代わりに、「ｎ１０−ｎ１３：Ｃ１、Ｃ１０」が保存されてもよい。
【０１３１】
なお、トポロジ情報と、アグリゲーション指示と、更新グラフ参加クライアント情報と、更新グラフとについては、上述した通りである。
【０１３２】
図５は、メタデータＤＢ１２２のデータ構成を示す概念図である。
【０１３３】
メタデータＤＢ１２２は、コンテンツＤＢ１２３に保存されているコンテンツのメタデータを保存している。
【０１３４】
メタデータとは、コンテンツに付随する情報であって、例えば、コンテンツＩＤ、ＵＲＩ、タイトル、作成者、作成場所、作成時間、キーワードなどである。
【０１３５】
コンテンツＤＢ１２３は、配信サーバ１００が受信クライアント３００に更新情報を通知する対象としているコンテンツを保存している。
【０１３６】
コンテンツとは、例えば、テキスト、音声、写真、動画などである。コンテンツに更新があった場合、コンテンツＤＢ１２３は、メタデータ生成部１１７に、更新があった旨を通知する。
【０１３７】
図６は、サーバ情報ＤＢ１２４のデータ構成を示す概念図である。
【０１３８】
サーバ情報ＤＢ１２４は、検索サーバ部１１５が検索応答メッセージ１００２を送信するときに利用するサーバ情報のデータベースである。サーバ情報ＤＢ１２４は、検索応答メッセージ１００２を送信する際に必要となるサーバＩＤ、ＩＰアドレス、ポート番号などの情報を保存する。
【０１３９】
送受信部１１１は、ネットワークＩＦ１３０を介して、アグリゲーションサーバ２００と、他の配信サーバ１００と、受信クライアント３００と、のそれぞれから、メッセージを受信し処理する。
【０１４０】
送受信部１１１は、受信したメッセージが参加メッセージ１００３であった場合は、参加メッセージ１００３を、更新グラフ管理部１１４へ送る。
【０１４１】
さらに、送受信部１１１は、受信したメッセージが離脱メッセージ１０１０であった場合は、離脱メッセージ１０１０を、更新グラフ管理部１１４へ送る。
【０１４２】
さらに、送受信部１１１は、受信したメッセージがトポロジ指定メッセージ１００６であった場合は、トポロジ指定メッセージ１００６を、更新グラフ管理部１１４へ送る。
【０１４３】
さらに、送受信部１１１は、受信したメッセージがコンテンツ要求メッセージ１００８であった場合は、コンテンツ要求メッセージ１００８を、コンテンツサーバ部１１８へ送る。
【０１４４】
さらに、送受信部１１１は、受信したメッセージが検索メッセージ１００１であった場合は、検索メッセージ１００１を、検索サーバ部１１５へ送る。
【０１４５】
さらに、送受信部１１１は、トポロジ報告部１１２と、更新グラフ管理部１１４と、検索サーバ部１１５と、メタデータ配信サーバ部１１６と、コンテンツサーバ部１１８と、のそれぞれから、メッセージを受け取る。
【０１４６】
送受信部１１１は、そのメッセージに記載された宛先（例えば、アグリゲーションサーバ２００、他の配信サーバ１００、または、受信クライアント３００）に、ネットワークＩＦ１３０を介して、そのメッセージを送信する。
【０１４７】
更新グラフ管理部１１４は、一般的にトポロジ情報管理手段と呼ぶことができる。
【０１４８】
更新グラフ管理部１１４は、受信クライアント３００から参加メッセージ１００３を受信した場合、参加メッセージ１００３に記載されている希望コンテンツの識別情報にて識別される希望コンテンツを特定する。
【０１４９】
続いて、更新グラフ管理部１１４は、その希望コンテンツに対応する更新グラフ（対応更新グラフ）を、参加メッセージ１００３に記載されている受信クライアント３００（具体的には、参加クライアント３００ａ）の情報に基づいて更新する。
【０１５０】
このとき、更新グラフ管理部１１４は、自サーバ１００と、既に更新情報の通知対象に参加している参加クライアント３００ａと、新たに参加した参加クライアント３００ａと、の複数の接続形態、すなわち、複数のトポロジを示すトポロジ情報を作成する。
【０１５１】
トポロジとしては、例えば、リングトポロジ、二分木トポロジ、など形態を指定するものや、ホップ数最小トポロジ、負荷最小トポロジといったトポロジ作成ポリシーを指定するものなどがある。
【０１５２】
更新グラフ管理部１１４は、トポロジ情報にて示された複数のトポロジの中から、今後使用するトポロジ（選択トポロジ）を適宜選択し、その選択結果を、トポロジ情報に記載する。
【０１５３】
更新グラフ管理部１１４は、参加クライアント情報ＤＢ１２１に保存されている対応更新グラフ内のトポロジ情報を、その作成されたトポロジ情報に更新する。
【０１５４】
さらに、更新グラフ管理部１１４は、参加クライアント３００ａの情報を、参加クライアント情報ＤＢ１２１内の参加クライアント情報に追加する。
【０１５５】
更新グラフ管理部１１４は、参加クライアント情報ＤＢ１２１内の対応更新グラフを更新すると、参加応答メッセージ１００４を、参加クライアント３００ａに送信する。
【０１５６】
参加応答メッセージ１００４には、対応更新グラフ内のトポロジ情報が含まれる。
【０１５７】
さらに、更新グラフ管理部１１４は、受信クライアント３００（参加クライアント３００ａ）から離脱メッセージ１０１０を受信した場合、離脱メッセージ１０１０に記載されているコンテンツの識別情報に対応する更新グラフを、参加クライアント３００ａの情報に基づいて更新する。
【０１５８】
このとき、更新グラフ管理部１１４は、既に参加している参加クライアント３００ａから、離脱を希望する参加クライアント３００ａを除いた、参加クライアント３００ａと、自サーバ１００と、の複数の接続形態、すなわち、複数のトポロジを示すトポロジ情報を作成する。
【０１５９】
更新グラフ管理部１１４は、トポロジ情報にて示された複数のトポロジの中から、今後使用するトポロジを選択し、その選択結果を、トポロジ情報に記載する。
【０１６０】
更新グラフ管理部１１４は、参加クライアント情報ＤＢ１２１内の対応更新グラフ内のトポロジ情報を、その作成されたトポロジ情報に更新する。
【０１６１】
さらに、更新グラフ管理部１１４は、離脱を希望する参加クライアント３００ａの情報を、参加クライアント情報ＤＢ１２１内の参加クライアント情報から削除する。
【０１６２】
更新グラフ管理部１１４は、参加クライアント情報ＤＢ１２１内の対応更新グラフを更新すると、離脱応答メッセージ１０１１を、離脱メッセージ１０１０の送信元（参加クライアント３００ａ）に送信する。
【０１６３】
さらに、更新グラフ管理部１１４は、アグリゲーションサーバ２００からトポロジ指定メッセージ１００６を受信した場合、トポロジ指定メッセージ１００６に記載されている推奨組み合わせ（コンテンツ毎のトポロジ）に合うように、参加クライアント情報ＤＢ１２１内のコンテンツ毎の更新グラフを更新する。
【０１６４】
具体的には、更新グラフ管理部１１４は、参加クライアント情報ＤＢ１２１内のコンテンツ毎のトポロジの中で、推奨組み合わせにて示されたコンテンツ毎のトポロジを、今後利用するトポロジ（選択トポロジ）として設定する。
【０１６５】
トポロジ報告タイマ１１３は、一般的に報告開始通知手段と呼ぶことができる。
【０１６６】
トポロジ報告タイマ１１３は、予め設定された時間毎に、トポロジ報告部１１２に対しトポロジ報告契機を通知する。トポロジ報告契機は、一般的に報告開始通知と呼ぶことができる。
【０１６７】
トポロジ報告部１１２は、一般的に報告手段と呼ぶことができる。
【０１６８】
トポロジ報告部１１２は、トポロジ報告タイマ１１３からの通知を契機として、参加クライアント情報ＤＢ１２１の全てのトポロジ情報またはいくつかのトポロジ情報を、トポロジ報告メッセージ１００５に含めて、アグリゲーションサーバ２００へ送信する。
【０１６９】
メタデータ配信サーバ部１１６は、メタデータ生成部１１７からの通知を契機に、更新のあったコンテンツについて、参加クライアント情報ＤＢ１２１に記載されている受信クライアント３００（参加クライアント３００ａ）に対し、選択トポロジに記載されている通りに更新メッセージ１００７が転送されていくように、メタデータ更新情報と、選択トポロジ情報と、その選択トポロジ情報に関連づけられているアグリゲーション指示とを、更新メッセージ１００７に含めて送信する。
【０１７０】
なお、選択トポロジ情報にアグリゲーション指示が関連づけられていない場合、メタデータ配信サーバ部１１６は、メタデータ更新情報と、選択トポロジ情報とを、更新メッセージ１００７に含めて送信する。
【０１７１】
例えば、図４に示した選択トポロジが「ｎ１−ｎ１０−ｎ１３」である状況下で、コンテンツＣ１に更新があった場合は、メタデータ配信サーバ部１１６は、受信クライアントｎ１に対し、選択トポロジ「ｎ１−ｎ１０−ｎ１３」を示す選択トポロジ情報と、その選択トポロジに関連づけられているアグリゲーション指示「ｎ１０−ｎ１３：Ｃ１０」と、が付された更新メッセージ１００７を送信する。
【０１７２】
コンテンツサーバ部１１８は、受信クライアント３００（具体的には、参加クライアント３００ａ）からコンテンツ要求メッセージ１００８を受信した場合、コンテンツ要求メッセージ１００８で指定されたコンテンツを、コンテンツ要求応答メッセージ１００９に付加して、受信クライアント３００に送信する。
【０１７３】
検索サーバ部１１５は、受信クライアント３００から検索メッセージ１００１を受信した場合、メタデータＤＢ１２２と検索メッセージ１００１に付加されたキーワードを照合して、検索メッセージ１００１に適合するメタデータを検索応答メッセージ１００２に付加して受信クライアント３００に送信する。
【０１７４】
さらに、検索サーバ部１１５は、受信クライアント３００から検索メッセージ１００１を受信した場合、サーバ情報ＤＢ１２４に記載された配信サーバ１００に対して、受信した検索メッセージ１００１をコピーして送信する。
【０１７５】
メタデータ生成部１１７は、一般的に生成手段と呼ぶことができる。
【０１７６】
メタデータ生成部１１７は、コンテンツＤＢ１２３からコンテンツ更新の通知を受けた場合、コンテンツＤＢ１２３内の該当するコンテンツの更新内容を確認し、メタデータＤＢ１２２内の該当するメタデータを更新する。本実施形態では、更新されたメタデータが、更新情報として用いられる。
【０１７７】
さらに、メタデータ生成部１１７は、コンテンツＤＢ１２３からコンテンツ更新の通知を受けた場合、メタデータ配信サーバ部１１６に対し、該当するコンテンツについてコンテンツ更新を通知する。
【０１７８】
配信制御部１００ｂ１は、一般的に配信制御手段と呼ぶことができる。
【０１７９】
配信制御部１００ｂ１は、メタデータ生成部１１７からの通知を契機に、更新のあったコンテンツについて、メタデータ更新情報と、選択トポロジ情報と、その選択トポロジ情報に関連づけられているアグリゲーション指示とを、更新メッセージ１００７に含めて、選択トポロジに従って送信する。
【０１８０】
なお、選択トポロジ情報にアグリゲーション指示が関連づけられていない場合、配信制御部１００ｂ１は、更新のあったコンテンツについて、メタデータ更新情報と、選択トポロジ情報とを、更新メッセージ１００７に含めて、選択トポロジに従って送信する。
【０１８１】
図７は、アグリゲーションサーバ２００の構成を示すブロック図である。
【０１８２】
アグリゲーションサーバ２００は、主制御部２１０と、トポロジ情報データベース（以下「トポロジ情報ＤＢ」と称する）２２１と、 ネットワークインターフェイス（以下「ネットワークＩＦ」と称する）２３０と、を含む。
【０１８３】
主制御部２１０は、送受信部２１１と、アグリゲーションパタン演算部２１２と、アグリゲーションパタン演算タイマ２１３と、を含む。
【０１８４】
主制御部２１０は、ＣＰＵ、ＲＡＭ、およびＯＳなどで構成されたコンピュータの主要部である。主制御部２１０は、ＣＤ−ＲＯＭ、ハードディスクまたはメモリに記録されたプログラムに従って動作する。
【０１８５】
主制御部２１０は、そのプログラムを記録媒体から読み取り実行することによって、送受信部２１１、アグリゲーションパタン演算部２１２、および、アグリゲーションパタン演算タイマ２１３として機能する。
【０１８６】
アグリゲーションパタン演算部２１２と、アグリゲーションパタン演算タイマ２１３と、トポロジ情報ＤＢ２２１とは、制御部２００ａに含まれる。
【０１８７】
トポロジ情報ＤＢ２２１は、一般的に格納手段と呼ぶことができる。
【０１８８】
図８は、トポロジ情報ＤＢ２２１のデータ構成を示す概念図である。
【０１８９】
トポロジ情報ＤＢ２２１は、配信サーバ１００ごとに、配信サーバ１００から送信されるコンテンツ毎の更新グラフを保存する。
【０１９０】
送受信部２１１は、一般的に受信手段と呼ぶことができる。
【０１９１】
送受信部２１１は、ネットワークＩＦ２３０を介して、配信サーバ１００からのメッセージを受信し処理する。
【０１９２】
送受信部２１１は、受信したメッセージがトポロジ報告メッセージ１００５であった場合は、トポロジ報告メッセージ１００５を、アグリゲーションパタン演算部２１２へ送る。
【０１９３】
さらに、送受信部２１１は、アグリゲーションパタン演算部２１２からメッセージ（例えば、トポロジ指定メッセージ１００６）を受け取り、そのメッセージに記載された宛先となる配信サーバ１００に、ネットワークＩＦ２３０を介して、そのメッセージを送信する。
【０１９４】
アグリゲーションパタン演算部２１２は、一般的に演算手段と呼ぶことができる。
【０１９５】
アグリゲーションパタン演算部２１２は、配信サーバ１００からトポロジ報告メッセージ１００５を受信した場合、トポロジ報告メッセージ１００５に含まれるコンテンツ毎の更新グラフを、トポロジ情報ＤＢ２２１に登録する。
【０１９６】
さらに、アグリゲーションパタン演算部２１２は、アグリゲーションパタン演算タイマ２１３からの通知を契機として、トポロジ情報ＤＢ２２１に保存された、配信サーバ１００毎のトポロジ情報を全て読み出し、各更新グラフに示されたコンテンツ毎に、トポロジのそれぞれの組み合わせの中から、推奨組み合わせを演算して求める。
【０１９７】
このとき、アグリゲーションパタン演算部２１２は、トポロジ情報毎に１つの選択トポロジを選択する際に、選択トポロジの組み合わせの中から、選択トポロジ内の受信クライアント間のリンクの重なり数の分散値が最大になる組み合わせを求め、その組み合わせを推奨組み合わせとして選択する。
【０１９８】
このように更新グラフのトポロジの組み合わせを選択することにより、配信サーバ１００が許すトポロジ構成の組み合わせの中で、更新メッセージをアグリゲーションできるリンク数を最大化することができる。
【０１９９】
さらに、アグリゲーションパタン演算部２１２は、推奨組み合わせに応じたアグリゲーション指示を生成する。
【０２００】
さらに、アグリゲーションパタン演算部２１２は、推奨組み合わせと、アグリゲーション指示とを、トポロジ指定メッセージ１００６に付加する。
【０２０１】
アグリゲーションパタン演算部２１２は、推奨組み合わせとアグリゲーション指示とが付加されたトポロジ指定メッセージ１００６を、全ての配信サーバ１００に送信する。
【０２０２】
アグリゲーションパタン演算タイマ２１３は、一般的に動作開始通知手段と呼ぶことができる。
【０２０３】
アグリゲーションパタン演算タイマ２１３は、予め設定された時間毎に、アグリゲーションパタン演算部２１２に対し、アグリゲーション組み合わせ演算の契機を通知する。この契機は、一般的に動作開始通知と呼ぶことができる。
【０２０４】
制御部２００ａは、一般的に制御手段と呼ぶことができる。
【０２０５】
制御部２００ａは、アグリゲーションパタン演算タイマ２１３からの通知を契機として、推奨組み合わせを演算し、さらに、その推奨組み合わせに応じたアグリゲーション指示を生成する。
【０２０６】
制御部２００ａは、推奨組み合わせと、アグリゲーション指示とを、トポロジ指定メッセージ１００６に付加する。
【０２０７】
制御部２００ａは、推奨組み合わせとアグリゲーション指示とが付加されたトポロジ指定メッセージ１００６を、全ての配信サーバ１００に送信する。
【０２０８】
図９は、受信クライアント３００の構成を示すブロック図である。
【０２０９】
受信クライアント３００は、主制御部３１０と、サーバ情報データベース（以下「サーバ情報ＤＢ」と称する）３２１と、ネットワークインターフェイス（以下「ネットワークＩＦ」と称する）３３０と、を含む。
【０２１０】
主制御部３１０は、送受信部３１１と、コンテンツクライアント部３１２と、検索クライアント部３１３と、更新グラフ参加離脱部３１４と、更新グラフクライアント部３１５と、アグリゲーション待ちバッファ３１６と、メッセージ作成部３１７と、バッファタイマ３１８と、を含む。
【０２１１】
主制御部３１０は、ＣＰＵ、ＲＡＭ、およびＯＳなどで構成されたコンピュータの主要部である。主制御部３１０は、ＣＤ−ＲＯＭ、ハードディスクまたはメモリに記録されたプログラムに従って動作する。
【０２１２】
主制御部３１０は、そのプログラムを記録媒体から読み取り実行することによって、送受信部３１１、コンテンツクライアント部３１２、検索クライアント部３１３、更新グラフ参加離脱部３１４、更新グラフクライアント部３１５、アグリゲーション待ちバッファ３１６、メッセージ作成部３１７、および、バッファタイマ３１８として機能する。
【０２１３】
メッセージ作成部３１７と、バッファタイマ３１８とは、転送管理部３００ａに含まれる。
【０２１４】
サーバ情報ＤＢ３２１は、図６に示した配信サーバ１００内のサーバ情報ＤＢ１２４と同等のものであって、検索クライアント部３１３が検索メッセージ１００１を送信するときに利用するデータベースである。
【０２１５】
サーバ情報ＤＢ３２１は、検索メッセージ１００１を送信する際に必要となるサーバＩＤ、ＩＰアドレス、ポート番号などの情報を保存する。
【０２１６】
送受信部３１１は、一般的に更新情報受信手段と呼ぶことができる。
【０２１７】
送受信部３１１は、ネットワークＩＦ３３０を介して、配信サーバ１００と受信クライアント３００とのそれぞれから、メッセージを受信し処理する。
【０２１８】
送受信部３１１は、受信したメッセージがコンテンツ要求応答メッセージ１００９であった場合は、コンテンツ要求応答メッセージ１００９を、コンテンツクライアント部３１２へ送る。
【０２１９】
さらに、送受信部３１１は、受信したメッセージが検索応答メッセージ１００２であった場合は、検索応答メッセージ１００２を、検索クライアント部３１３へ送る。
【０２２０】
さらに、送受信部３１１は、受信したメッセージが参加応答メッセージ１００４であった場合は、参加応答メッセージ１００４を、更新グラフ参加離脱部３１４へ送る。
【０２２１】
さらに、送受信部３１１は、受信したメッセージが離脱応答メッセージ１０１１であった場合は、離脱応答メッセージ１０１１を、更新グラフ参加離脱部３１４へ送る。
【０２２２】
さらに、送受信部３１１は、受信したメッセージが更新メッセージ１００７であった場合は、更新メッセージ１００７を、更新グラフクライアント部３１５へ送る。
【０２２３】
さらに、送受信部３１１は、コンテンツクライアント部３１２と、検索クライアント部３１３と、更新グラフクライアント部３１５と、メッセージ作成部３１７と、のそれぞれから、メッセージを受け取り、そのメッセージに記載された宛先となる配信サーバ１００あるいは受信クライアント３００に、ネットワークＩＦ３３０を介して、そのメッセージを送信する。
【０２２４】
コンテンツクライアント部３１２は、更新メッセージ１００７を受信しているコンテンツについて、使用者からそのコンテンツ本体を要求する旨の情報を受け付けると、そのコンテンツを有する配信サーバ１００に対し、コンテンツ要求メッセージ１００８を送信する。
【０２２５】
コンテンツクライアント部３１２は、コンテンツ要求応答メッセージ１００９を受信した場合、コンテンツ要求応答メッセージ１００９に付加されたコンテンツを得る。
【０２２６】
検索クライアント部３１３は、使用者の操作に従って希望コンテンツを検索する場合、希望コンテンツに関する情報をひとつまたは複数記載した検索メッセージ１００１を作成する。
【０２２７】
検索クライアント部３１３は、サーバ情報ＤＢ３２１に記載のあるひとつまたは複数の配信サーバ１００に対し、検索メッセージ１００１を送信する。
【０２２８】
ここで、コンテンツに関する情報とは、例えばコンテンツＩＤ、ＵＲＩ、タイトル、作成者、作成場所、作成時間、キーワードなどである。
【０２２９】
検索クライアント部３１３は、検索応答メッセージ１００２を受信すると、検索応答メッセージ１００２に記載されているコンテンツのメタデータを表示する。
【０２３０】
更新グラフ参加離脱部３１４は、検索クライアント部３１３が受信した検索応答メッセージ１００２に記載されているコンテンツの配信対象に参加する場合、そのコンテンツを有する配信サーバ１００に対し、参加メッセージ１００３を送信する。
【０２３１】
さらに、更新グラフ参加離脱部３１４は、参加応答メッセージ１００４を受信した場合、以後、更新メッセージ１００７を受理する。
【０２３２】
さらに、更新グラフ参加離脱部３１４は、更新メッセージ１００７の通知を中止する場合、その更新メッセージ１００７の送信元の配信サーバ１００へ、離脱メッセージ１０１０を送信する。
【０２３３】
さらに、更新グラフ参加離脱部３１４は、離脱応答メッセージ１０１１を受信した場合、あるいは、更新メッセージ１００７の送信元の配信サーバ１００へ離脱メッセージ１０１１を送信したのち一定時間経過後に、アグリゲーション待ちバッファ３１６内に、その更新メッセージに対応するバッファが存在していた場合は、そのバッファを削除する。
【０２３４】
更新グラフクライアント部３１５は、一般的に中継管理手段と呼ぶことができる。
【０２３５】
更新グラフクライアント部３１５は、更新メッセージ１００７を受信した場合、更新メッセージ１００７に含まれるメタデータ更新情報を得る。
【０２３６】
このとき、更新メッセージ１００７内の選択トポロジに転送指示が記載されていない場合、更新グラフクライアント部３１５は、更新メッセージ１００７の転送を中止する。
【０２３７】
更新メッセージ１００７内の選択トポロジに転送指示があり、かつ、アグリゲーション指示があり、かつ、アグリゲーション指示に自クライアントが実行クライアントとして記載されている場合、更新グラフクライアント部３１５は、アグリゲーション待ちバッファ３１６に、そのアグリゲーション指示に対応するバッファを作成し、そのバッファに、更新メッセージ１００７を保存する。なお、このバッファは、アグリゲーション指示の組み合わせ毎に作成される。
【０２３８】
更新メッセージ１００７内の選択トポロジに転送指示があり、かつ、アグリゲーション指示がない場合、または、更新メッセージ１００７内の選択トポロジに転送指示があり、かつ、アグリゲーション指示があり、かつ、アグリゲーション指示に自己が実行クライアントとして記載されていない場合、更新グラフクライアント部３１５は、更新メッセージ１００７をコピーし、そのコピーを、メッセージ作成部３１７に渡す。
【０２３９】
アグリゲーション待ちバッファ３１６は、一般的に更新情報格納手段と呼ぶことができる。
【０２４０】
さらに、アグリゲーション待ちバッファ３１６は、作成済みのバッファへ更新メッセージ１００７が保存されたとき、アグリゲーション対象となる他の更新メッセージ１００７が他のバッファに存在していなかった場合は、更新メッセージ１００７を保存したバッファ用のバッファタイマ３１８の時間カウントを開始させる。
【０２４１】
また、アグリゲーション待ちバッファ３１６は、作成済みのバッファへ更新メッセージ１００７が保存されたとき、アグリゲーション対象となる他の更新メッセージ１００７が他のバッファに存在している場合は、バッファタイマ３１８をリセットし、アグリゲーション対象の複数の更新メッセージ１００７を、メッセージ作成部３１７へ渡す。
【０２４２】
さらに、アグリゲーション待ちバッファ３１６は、バッファタイマ３１８からタイマ切れ通知を受けると、そのバッファタイマ３１８に対応するバッファに保存されている更新メッセージ１００７を、メッセージ作成部３１７へ渡す。
【０２４３】
メッセージ作成部３１７は、更新グラフクライアント部３１５から更新メッセージ３１５を得ると、選択トポロジに従い、受信クライアント３００へ、更新メッセージ１００７を送信する。
【０２４４】
さらに、メッセージ作成部３１７は、アグリゲーション待ちバッファ３１６から得た複数の更新メッセージ１００７をアグリゲーションして、選択トポロジに従い、受信クライアント３００へ、その更新メッセージ１００７を送信する。
【０２４５】
バッファタイマ３１８は、一般的にカウント手段と呼ぶことができる。
【０２４６】
バッファタイマ３１８は、タイマをひとつまたは複数持ち、アグリゲーション待ちバッファ３１６からの通知により、アグリゲーション待ちバッファ３１６に作成されているバッファに一対一に対応するタイマを作動、またはリセットする。
【０２４７】
さらに、バッファタイマ３１８は、予め定められた時間を経過したタイマがあった場合、そのタイマに対応するバッファの情報を、アグリゲーション待ちバッファ３１６に通知し、そのタイマをリセットする。
【０２４８】
転送管理部３００ａは、一般的に転送管理手段と呼ぶことができる。
【０２４９】
転送管理部３００ａは、バッファタイマ３１８が所定時間をカウントすると、アグリゲーション待ちバッファ３１６内に、アグリゲーション指示に示された全ての更新メッセージが格納されていなくても、アグリゲーション待ちバッファ３１６内の更新メッセージを合成し、その合成された更新メッセージを、選択トポロジに従って、受信クライアント３００に転送する。
【０２５０】
次に、動作を説明する。
【０２５１】
図１０は、配信サーバ１００が受信クライアント３００から参加メッセージ１００３を受信した場合の、配信サーバ１００の動作を示すフローチャートである。
【０２５２】
配信サーバ１００が動作を開始すると、まず、送受信部１１１が、アグリゲーションサーバ２００、他の配信サーバ１００、もしくは、受信クライアント３００からの通信を待つ状態（以後「アイドル状態」と称する）となる（ステップ４００）。
【０２５３】
配信サーバ１００は、アイドル状態下で、受信クライアント３００から参加メッセージ１００３を受信すると（ステップ４０１）、参加メッセージ１００３に対応するコンテンツの参加クライアント情報ＤＢ１２１内のトポロジ情報と参加クライアント情報とを更新する（ステップ４０２）。
【０２５４】
続けて、配信サーバ１００は、トポロジ情報を含めた参加応答メッセージ１００４を、参加メッセージ１００３の送信元（受信クライアント３００）に送信し（ステップ４０３）、その後、アイドル状態に戻る（ステップ４００）。
【０２５５】
図１１は、配信サーバ１００が受信クライアント３００から離脱メッセージ１０１０を受信した場合の、配信サーバ１００の動作を示すフローチャートである。
【０２５６】
配信サーバ１００は、アイドル状態下で、受信クライアント３００から離脱メッセージ１０１０を受信すると（ステップ４１１）、離脱メッセージ１０１０に対応する参加クライアント情報ＤＢ１２１のトポロジ情報と参加クライアント情報とを更新する（ステップ４１２）。
【０２５７】
続けて、配信サーバ１００は、離脱応答メッセージ１０１１を、離脱メッセージ１０１０の送信元（受信クライアント３００）に送信し（ステップ４１３）、その後、アイドル状態に戻る（ステップ４００）。
【０２５８】
図１２は、配信サーバ１００がコンテンツを更新した場合の、配信サーバ１００の動作を示すフローチャートである。
【０２５９】
配信サーバ１００は、アイドル状態下でコンテンツを更新すると（ステップ４２１）、更新のあったコンテンツについて、参加クライアント情報ＤＢ１２１に記載されている受信クライアント３００に対し、選択トポロジ情報に記載されている通りに更新メッセージ１００７が転送されていくように、更新メッセージ１００７に、メタデータ更新情報と、トポロジ情報と、アグリゲーション指示と、を含めて、送信し（ステップ４２２）、その後、アイドル状態に戻る（ステップ４００）。なお、トポロジ情報は、選択トポロジを示す。
【０２６０】
図１３は、配信サーバ１００内でトポロジ報告タイマ１１３が切れた場合の、配信サーバ１００の動作を示すフローチャートである。
【０２６１】
配信サーバ１００は、アイドル状態下で、トポロジ報告タイマ１１３が切れると（ステップ４３１）、参加クライアント情報ＤＢ１２１の内容の一部または全てを、トポロジ報告メッセージ１００５に含めて、アグリゲーションサーバ２００へ送信し（ステップ４３２）、その後、アイドル状態に戻る（ステップ４００）。
【０２６２】
図１４は、配信サーバ１００がアグリゲーションサーバ２００からトポロジ指定メッセージ１００６を受信した場合の、配信サーバ１００の動作を示すフローチャートである。
【０２６３】
配信サーバ１００は、アイドル状態下で、アグリゲーションサーバ２００からトポロジ指定メッセージ１００６を受信すると（ステップ４４１）、トポロジ指定メッセージ１００６に記載されている推奨組み合わせおよびアグリゲーション指示に基づいて、参加クライアント情報ＤＢ１２１を更新し（ステップ４４２）、その後、アイドル状態に戻る（ステップ４００）。
【０２６４】
図１５は、配信サーバ１００が受信クライアント３００からコンテンツ要求メッセージ１００８を受信した場合の、配信サーバ１００の動作を示すフローチャートである。
【０２６５】
配信サーバ１００は、アイドル状態下で、受信クライアント３００からコンテンツ要求メッセージ１００８を受信すると（ステップ４５１）、コンテンツ要求メッセージ１００８で指定されたコンテンツを、コンテンツ要求応答メッセージ１００９に付加して、受信クライアント３００に送信し（ステップ４５２）、その後、アイドル状態に戻る（ステップ４００）。
【０２６６】
図１６は、配信サーバ１００が受信クライアント３００から検索メッセージ１００１を受信した場合の、配信サーバ１００の動作を示すフローチャートである。
【０２６７】
配信サーバ１００は、アイドル状態下で、受信クライアント３００から検索メッセージ１００１を受信すると（ステップ４６１）、メタデータＤＢ１２２と検索メッセージに付加されたキーワードを照合し（ステップ４６２）、適合するメタデータを検索応答メッセージ１００２に付加して受信クライアント３００に送信する（ステップ４６３）。
【０２６８】
さらに、配信サーバ１００は、サーバ情報ＤＢ１２４に記載されたサーバに対して、受信した検索メッセージ１００１をコピーして送信し（ステップ４６４）、その後、アイドル状態に戻る（ステップ４００）。
【０２６９】
図１７は、アグリゲーションサーバ２００が配信サーバ１００からトポロジ報告メッセージ１００５を受信した場合の、アグリゲーションサーバ２００の動作を示すフローチャートである。
【０２７０】
アグリゲーションサーバ２００が動作を開始すると、まず、送受信部２１１が配信サーバ１００からの通信を待つ状態（以後「アイドル状態」と称する）となる（ステップ５００）。
【０２７１】
アグリゲーションサーバ２００は、アイドル状態下で、配信サーバ１００からトポロジ報告メッセージ１００５を受信すると（ステップ５０１）、トポロジ報告メッセージ１００５に含まれるコンテンツ毎の更新グラフを、トポロジ情報ＤＢ２２１に登録することによって、トポロジ情報ＤＢ２２１を更新し（ステップ５０２）、その後、アイドル状態に戻る（ステップ５００）。
【０２７２】
図１８は、アグリゲーションサーバ２００内のアグリゲーションパタン演算タイマ２１３が切れた場合の、アグリゲーションサーバ２００の動作を示すフローチャートである。
【０２７３】
アグリゲーションサーバ２００は、アイドル状態下で、アグリゲーションパタン演算タイマ２１３が切れると（ステップ５１１）、トポロジ情報ＤＢ２２１に保存された配信サーバ１００毎の更新グラフを全て読み出し、一部または全てのコンテンツ毎の更新グラフのトポロジの組み合わせに対し、更新メッセージ１００７がアグリゲーションできる推奨組み合わせを演算し（ステップ５１２）、その推奨組み合わせを、トポロジ指定メッセージ１００６に付加して、全ての配信サーバ１００に送信し（ステップ５１３）、その後、アイドル状態に戻る（ステップ５００）。
【０２７４】
図１９は、受信クライアント３００が配信サーバ１００に更新グラフへの参加を希望した場合の、受信クライアント３００の動作を示すフローチャートである。
【０２７５】
受信クライアント３００が動作を開始すると、まず、送受信部３１１が、配信サーバ１００もしくは受信クライアント３００からの通信を待つ状態（以後「アイドル状態」と称する）となる（ステップ６００）。
【０２７６】
受信クライアント３００は、アイドル状態下で、配信サーバ１００の更新グラフへ参加するために、参加メッセージ１００３を送信する（ステップ６０１）。
【０２７７】
続いて、受信クライアント３００は、配信サーバ１００から参加応答メッセージ１００４を受信し（ステップ６０２）、アイドル状態に戻る（ステップ６００）。
【０２７８】
図２０は、受信クライアント３００が、参加している更新グラフからの離脱を希望した場合の、受信クライアント３００の動作を示すフローチャートである。
【０２７９】
受信クライアント３００は、アイドル状態下で、コンテンツの更新の通知を中止するために、そのコンテンツを有する配信サーバ１００へ、離脱メッセージ１０１０を送信する（ステップ６１１）。
【０２８０】
続いて、受信クライアント３００は、配信サーバ１００から、離脱応答メッセージ１０１１を受信する（ステップ６１２）。
【０２８１】
さらに、離脱した更新の通知に関係するバッファ（関係バッファ）があった場合（ステップ６１３のＹＥＳ）、受信クライアント３００は、アグリゲーション待ちバッファ３１６に存在する関係バッファを削除し（ステップ６１４）、その後、アイドル状態に戻る（ステップ６００）。
【０２８２】
関係バッファがなかった場合（ステップ６１３のＮＯ）、受信クライアント３００は、アイドル状態に戻る（ステップ６００）。
【０２８３】
図２１は、受信クライアント３００が配信サーバ１００から更新メッセージ１００７を受信した場合の、受信クライアント３００の動作を示すフローチャートである。
【０２８４】
受信クライアント３００は、アイドル状態下で、更新メッセージ１００７を受信すると（ステップ６２１）、更新メッセージ１００７に含まれるメタデータ更新情報を得る（ステップ６２２）。
【０２８５】
さらに、更新メッセージ１００７内の選択トポロジに転送指示がなかった場合（ステップ６２３のＮＯ）、受信クライアント３００は、アイドル状態に戻る（ステップ６００）。
【０２８６】
選択トポロジに転送指示があった場合（ステップ６２３のＹＥＳ）、かつ、アグリゲーション指示がなかった場合、または、選択トポロジに転送指示があり、かつ、アグリゲーション指示があり、かつ、アグリゲーション指示に自己が実行クライアントとして記載されていない場合（ステップ６２４のＮＯ）、受信クライアント３００は、更新メッセージ１００７をコピーし、そのコピーを、転送先として指定された受信クライアント３００に送信し（ステップ６２５）、アイドル状態に戻る（ステップ６００）。
【０２８７】
更新メッセージ１００７内の選択トポロジに転送指示があり、かつ、アグリゲーション指示があり、かつ、アグリゲーション指示に自己が実行クライアントとして記載されており（ステップ６２４のＹＥＳ）、かつ、アグリゲーション指示に記載された更新メッセージの全てが、自己内のバッファに存在していない場合（ステップ６２６のＮＯ）、受信クライアント３００は、そのバッファに対応するバッファタイマ３１８を開始させる（ステップ６２７）。
【０２８８】
その後、ステップ６２６の結果に関わらず、受信クライアント３００は、更新メッセージ１００７をアグリゲーション待ちバッファ３１６の該当するバッファへ保存する（ステップ６２８）。
【０２８９】
このとき、バッファにおいてアグリゲーション対象の更新メッセージの全てが揃っていない場合（ステップ６２９のＮＯ）、受信クライアント３００は、アイドル状態に戻る（ステップ６００）。
【０２９０】
バッファにおいてアグリゲーション対象の更新メッセージの全てが揃った場合（ステップ６２９のＹＥＳ）、受信クライアント３００は、バッファタイマ３１８をリセットし（ステップ６３０）、対象の更新メッセージをアグリゲーションして、アグリゲーションした更新メッセージを、選択トポロジに従い送信し（ステップ６３１）、アイドル状態に戻る（ステップ６００）。
【０２９１】
図２２は、受信クライアント３００においてバッファタイマ３１８が切れた場合の、受信クライアント３００の動作を示すフローチャートである。
【０２９２】
受信クライアント３００は、アイドル状態下で、バッファタイマ３１８がきれると（ステップ６４１）、タイマに対応するアグリゲーション待ちバッファ３１６のバッファから更新メッセージを読み出してアグリゲーションし、アグリゲーションした更新メッセージを選択トポロジに従い送信し（ステップ６４２）、アイドル状態に戻る（ステップ６００）。
【０２９３】
図２３は、受信クライアント３００において配信サーバ１００に対してコンテンツ本体を要求した場合の、受信クライアント３００の動作を示すフローチャートである。
【０２９４】
受信クライアント３００は、アイドル状態下で、希望コンテンツを有する配信サーバ１００に対し、コンテンツ要求メッセージ１００８を送信し（ステップ６５１）、その返信としてコンテンツ要求応答メッセージ１００９を受信することでコンテンツ本体を得て（ステップ６５２）、アイドル状態に戻る（ステップ６００）。
【０２９５】
図２４は、受信クライアント３００がコンテンツを検索する場合の、受信クライアント３００の動作を示すフローチャートである。
【０２９６】
受信クライアント３００は、アイドル状態下で、希望コンテンツに関する情報をひとつまたは複数記載した検索メッセージ１００１を作成し、ひとつまたは複数の配信サーバ１００に対し、検索メッセージ１００１を送信し（ステップ６６１）、その返信として配信サーバ１００から検索応答メッセージ１００２を受信すると、検索応答メッセージ１００２に記載されているコンテンツのメタデータを表示し（ステップ６６２）、アイドル状態に戻る（ステップ６００）。
【０２９７】
なお、図１０〜２４で説明したフローチャートに係る各ステップの動作内容は、配信サーバ１００とアグリゲーションサーバ２００と受信クライアント３００とが予め備えるコンピュータ（主制御部１１０、主制御部２１０、主制御部３１０）で動作するプログラムにて規定することができる。
【０２９８】
本実施形態では、各配信サーバ１００が、配信サーバ１００が配信するコンテンツの更新情報を受信する受信クライアント３００の更新グラフのトポロジを、予め複数作成する。
【０２９９】
アグリゲーションサーバ２００が、配信サーバ１００から、コンテンツ毎の更新グラフのトポロジ情報を収集する。
【０３００】
アグリゲーションサーバ２００が、トポロジ情報に基づいて、推奨組み合わせとアグリゲーション指示とを求める。
【０３０１】
アグリゲーションサーバ２００が、推奨組み合わせとアグリゲーション指示とを、各配信サーバ１００に送信する。
【０３０２】
このため、サーバとクライアントの関係が頻繁に変化する場合においても、更新情報の配信の高効率とシステムの高可用とを両立する配信システムを提供することができる。
【０３０３】
なお、この効果は、送受信部２１１と制御部２００ａとからなるアグリエーションサーバ、管理部１００ａと配信部１００ｂとからなる配信サーバ、アグリゲーション待ちバッファ３１６と送受信部３１１と更新グラフクライアント部３１５と転送管理部３００ａとからなる受信クライアントでも奏することが可能である。
【０３０４】
また、本実施形態では、アグリゲーションサーバ２００は、定期的に、推奨組み合わせとアグリゲーション指示とを求める。
【０３０５】
この場合、トポロジ情報が変化しても、定期的に、推奨組み合わせとアグリゲーション指示とを変更することが可能になる。
【０３０６】
また、本実施形態では、アグリゲーションサーバ２００は、選択トポロジの組み合わせのうち、選択トポロジ内の受信クライアント間のリンクの重なり数の分散値が最大になる選択トポロジの組み合わせを、推奨組み合わせとする。
【０３０７】
この場合、更新メッセージのアグリゲーションに最適な選択トポロジを求めることが可能になる。
【０３０８】
また、配信サーバ１００は、アグリゲーションサーバ２００からの指示（選択トポロジやアグリゲーション指示）を、更新情報と共に、更新メッセージ１００７に載せて、受信クライアント３００に送信する。
【０３０９】
また、受信クライアント３００は、更新メッセージ１００７に載せられた指示に従って、更新メッセージ１００７を配信およびアグリゲーションする。
【０３１０】
この場合、アグリゲーションサーバ２００からの指示通りに、更新メッセージ１００７を配信およびアグリゲーションすることが可能になる。
【０３１１】
また、本実施形態では、配信サーバ１００は、定期的に、トポロジ情報をアグリゲーションサーバ２００に送信する。
【０３１２】
この場合、トポロジ情報の変化を、定期的に、アグリゲーションサーバ２００に知らせることが可能になる。
【０３１３】
また、本実施形態では、更新情報が生成されると、配信サーバ１００は、アグリゲーションサーバ２００からの指示を、更新情報と共に、更新メッセージ１００７に載せて、受信クライアント３００に送信する。
【０３１４】
この場合、更新情報を、適切なタイミングで、アグリゲーションサーバ２００からの指示と共に、更新メッセージ１００７に載せて、受信クライアント３００に送信することが可能になる。
【０３１５】
また、本実施形態では、配信サーバ１００は、参加メッセージを受信した場合、または、離脱メッセージを受信した場合、参加クライアントの変更に伴って、トポロジ情報を更新する。
【０３１６】
この場合、参加クライアントの変化に応じて、トポロジ情報を更新することが可能になる。
【０３１７】
また、本実施形態では、受信クライアント３００は、更新メッセージが、所定時間、バッファに格納され続けていると、バッファ内の更新メッセージをアグリゲーションして、選択トポロジに従って他の受信クライアント３００に転送する。
【０３１８】
（第２の実施形態）
次に、本発明の第２の実施形態を説明する。
【０３１９】
第２の実施形態では、アグリゲーションサーバ２００において、図７に示したアグリゲーションパタン演算部２１２の代わりに、アグリゲーションパタン演算部２１２ａが用いられる。第１の実施形態と同様なため、説明を省略する。
【０３２０】
アグリゲーションパタン演算部２１２ａは、配信サーバ１００からトポロジ報告メッセージ１００５を受信した場合、トポロジ報告メッセージ１００５に含まれるコンテンツ毎の更新グラフを、トポロジ情報ＤＢ２２１に登録する。
【０３２１】
さらに、アグリゲーションパタン演算部２１２ａは、アグリゲーションパタン演算タイマ２１３からの通知を契機として、トポロジ情報ＤＢ２２１に保存された、配信サーバ１００毎のトポロジ情報を全て読み出し、各更新グラフに示されたコンテンツ毎に、トポロジのそれぞれの組み合わせの中から、推奨組み合わせを演算して求める。
【０３２２】
このとき、アグリゲーションパタン演算部２１２ａは、トポロジ情報毎に１つの選択トポロジを選択する際に、選択トポロジの組み合わせの中から、選択トポロジの次数の分散値が最小にする組み合わせを求め、その組み合わせを推奨組み合わせとして選択する。
【０３２３】
このように更新グラフのトポロジの組み合わせを選択することにより、配信サーバ１００が許すトポロジ構成の組み合わせの中で、受信クライアント３００のリンク負荷を分散することができる。
【０３２４】
さらに、アグリゲーションパタン演算部２１２ａは、推奨組み合わせに応じたアグリゲーション指示を生成する。
【０３２５】
さらに、アグリゲーションパタン演算部２１２ａは、推奨組み合わせと、アグリゲーション指示とを、トポロジ指定メッセージ１００６に付加する。
【０３２６】
アグリゲーションパタン演算部２１２ａは、推奨組み合わせとアグリゲーション指示とが付加されたトポロジ指定メッセージ１００６を、全ての配信サーバ１００に送信する。
【０３２７】
本実施形態では、アグリゲーションサーバ２００は、選択トポロジの組み合わせのうち、選択トポロジの次数の分散値が最小になる組み合わせ、すなわち、受信クライアント３００の負荷を分散できる組み合わせを見つけ、その組み合わせを配信サーバ１００へ送信する。
【０３２８】
このため、サーバとクライアントの関係が頻繁に変化する場合においても、受信クライアント３００の負荷を均一にできる配信システムを提供することができる。
【０３２９】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることは言うまでもないことである。
【図面の簡単な説明】
【０３３０】
【図１】本発明の第１の実施形態の配信システム１のネットワーク構成を示す概念図である。
【図２】配信システム１の動作の概要を説明するためのシーケンス図である。
【図３】配信サーバ１００の構成を示すブロック図である。
【図４】参加クライアント情報ＤＢ１２１の構成を示す概念図である。
【図５】メタデータＤＢ１２２の構成を示す概念図である。
【図６】サーバ情報ＤＢ１２４の構成を示す概念図である。
【図７】アグリゲーションサーバ２００の構成を示すブロック図である。
【図８】トポロジ情報ＤＢ２２１の構成を示す概念図である。
【図９】受信クライアント３００の構成を示すブロック図である。
【図１０】配信サーバ１００が受信クライアント３００から参加メッセージを受信した場合の配信サーバ１００の動作を示すフローチャートである。
【図１１】配信サーバ１００が受信クライアント３００から離脱メッセージを受信した場合の配信サーバ１００の動作を示すフローチャートである。
【図１２】配信サーバ１００がコンテンツを更新した場合の配信サーバ１００の動作を示すフローチャートである。
【図１３】配信サーバ１００においてトポロジ報告タイマ１１３が切れた場合の配信サーバ１００の動作を示すフローチャートである。
【図１４】配信サーバ１００がアグリゲーションサーバ２００からトポロジ指定メッセージを受信した場合の配信サーバ１００の動作を示すフローチャートである。
【図１５】配信サーバ１００が受信クライアント３００からコンテンツ要求メッセージを受信した場合の配信サーバ１００の動作を示すフローチャートである。
【図１６】配信サーバ１００が受信クライアント３００から検索メッセージを受信した場合の配信サーバ１００の動作を示すフローチャートである。
【図１７】アグリゲーションサーバ２００が配信サーバ１００からトポロジ報告メッセージを受信した場合のアグリゲーションサーバ２００の動作を示すフローチャートである。
【図１８】アグリゲーションサーバ２００においてアグリゲーションパタン演算タイマ２１３が切れた場合のアグリゲーションサーバ２００の動作を示すフローチャートである。
【図１９】受信クライアント３００が配信サーバ１００に更新グラフへの参加を希望した場合の受信クライアント３００の動作を示すフローチャートである。
【図２０】受信クライアント３００が参加している更新グラフからの離脱を希望した場合の受信クライアント３００の動作を示すフローチャートである。
【図２１】受信クライアント３００が配信サーバ１００から更新メッセージを受信した場合の受信クライアント３００の動作を示すフローチャートである。
【図２２】受信クライアント３００においてバッファタイマ３１８が切れた場合の受信クライアント３００の動作を示すフローチャートである。
【図２３】受信クライアント３００において配信サーバ１００に対してコンテンツ本体を要求した場合の受信クライアント３００の動作を示すフローチャートである。
【図２４】受信クライアント３００がコンテンツを検索した場合の受信クライアント３００の動作を示すフローチャートである。
【符号の説明】
【０３３１】
１  更新情報配信システム１
１００  更新情報配信サーバ
１００ａ  管理部
１００ｂ  配信部
１００ｂ１  配信制御部
１１０  主制御部
１１１  送受信部
１１２  トポロジ報告部
１１３  トポロジ報告タイマ
１１４  更新グラフ管理部
１１５  検索サーバ部
１１６  メタデータ配信サーバ部
１１７  メタデータ生成部
１１８  コンテンツサーバ部
１２１  更新グラフ参加クライアント情報ＤＢ
１２２  メタデータＤＢ
１２３  コンテンツＤＢ
１２４  サーバ情報ＤＢ
１３０  ネットワークインターフェイス
２００  アグリゲーションサーバ
２００ａ  制御部
２１０  主制御部
２１１  送受信部
２１２  アグリゲーションパタン演算部
２１３  アグリゲーションパタン演算タイマ
２２１  トポロジ情報ＤＢ
２３０  ネットワークインターフェイス
３００  更新情報受信クライアント
３００ａ  転送管理部
３１０  主制御部
３１１  送受信部
３１２  コンテンツクライアント部
３１３  検索クライアント部
３１４  更新グラフ参加離脱部
３１５  更新グラフクライアント部
３１６  アグリゲーション待ちバッファ
３１７  メッセージ作成部
３１８  バッファタイマ
３２１  サーバ情報ＤＢ
３３０  ネットワークインターフェイス
【図１】
2010050815.tif 000003
【図２】
2010050815.tif 000004
【図３】
2010050815.tif 000005
【図４】
2010050815.tif 000006
【図５】
2010050815.tif 000007
【図６】
2010050815.tif 000008
【図７】
2010050815.tif 000009
【図８】
2010050815.tif 000010
【図９】
2010050815.tif 000011
【図１０】
2010050815.tif 000012
【図１１】
2010050815.tif 000013
【図１２】
2010050815.tif 000014
【図１３】
2010050815.tif 000015
【図１４】
2010050815.tif 000016
【図１５】
2010050815.tif 000017
【図１６】
2010050815.tif 000018
【図１７】
2010050815.tif 000019
【図１８】
2010050815.tif 000020
【図１９】
2010050815.tif 000021
【図２０】
2010050815.tif 000022
【図２１】
2010050815.tif 000023
【図２２】
2010050815.tif 000024
【図２３】
2010050815.tif 000025
【図２４】
2010050815.tif 000026