(57)【特許請求の範囲】
【請求項１】
第１のノードを含む複数のノードを構成要素とする論理ネットワークにおいてデータを配信するマルチキャストシステムであって、
前記第１のノードは、
第１の配信元が発信するデータだけを受信するノードから成る第１のマルチキャストツリーを構成する第１の構成部と、
第２の配信元が発信するデータだけを受信するノードから成る第２のマルチキャストツリーを構成する第２の構成部と、
前記第１及び第２の配信元が発信するデータの両方を受信するノードから成る第３のマルチキャストツリーを構成する第３の構成部と、
前記第３のマルチキャストツリーの第１の葉に前記第１のマルチキャストツリーを接続し、前記第３のマルチキャストツリーの第２の葉に前記第２のマルチキャストツリーを接続して統合マルチキャストツリーを生成する統合部と
を有するマルチキャストシステム。
【請求項２】
前記統合部は、前記第１及び第２マルチキャストツリーの構成に基づき、前記第１及び第２の葉を選択する
請求項１に記載のマルチキャストシステム。
【請求項３】
前記第１のノードは、
前記第１及び第２のマルチキャストツリー間の類似度を算出する算出部
を更に有し、
前記統合手段は、前記類似度が一定値以上であった場合に、前記第１及び第２のマルチキャストツリーを統合する
請求項１に記載のマルチキャストシステム。
【請求項４】
前記第１のノードは、
前記第１のマルチキャストツリーに参加するノードから、前記第１のマルチキャストツリーに関するデータの他に利用しているデータについての利用状況を収集する収集部
を更に有し、
前期統合部は、前記利用状況に基づいて、前記他のデータに関する他のマルチキャストツリーと前記第１のマルチキャストツリーを統合する
請求項１に記載のマルチキャストシステム。
【請求項５】
前記第１のノードは、
前記利用状況を収集する際に、前記利用状況の報告をしてきたノード数と、前記報告に記載された他のマルチキャストツリーの利用件数から類似度を算出する算出部
を更に有し、
前記統合手段は、前記類似度が一定値以上であった場合に、前記他のマルチキャストツリーと前記第１のマルチキャストツリーを統合する
請求項４に記載のマルチキャストシステム。
【請求項６】
前記第１のノードにおいて、
前記第３の構成部は、前記統合マルチキャストツリーに参加するノードのノード情報を参照して第３のマルチキャストツリーを構成し、
前記統合マルチキャストツリーに参加するノードに、前記統合マルチキャストツリーへの参加を依頼する依頼部
を更に有する請求項４に記載のマルチキャストシステム。
【請求項７】
前記第１もしくは第２のマルチキャストツリーを用いて管理される第２のノード
を更に備え、
前記第２のノードは、
前記統合マルチキャストツリーへ参加を要求する要求部と、
前記第２のノードが利用している前記第１もしくは第２のマルチキャストツリーのデータの発信元となっているノードへ、前記第２のノードが利用している他のマルチキャストツリーの利用状況を通知する通知部と
を有する請求項１から６のいずれか一項に記載のマルチキャストシステム。
【請求項８】
前記第２のノードは、
前記第２のノードで利用しているマルチキャストツリーの状況を、利用しているマルチキャストツリーの配信元となっているノードへ送信する
請求項７に記載のマルチキャストシステム。
【請求項９】
前記第２のノードは、
前記統合マルチキャストツリーへの参加を依頼された場合に、統合マルチキャストツリーへの参加する参加部
を更に有する請求項７に記載のマルチキャストシステム。
【請求項１０】
複数のノードを構成要素とする論理ネットワークにおいてデータを配信するマルチキャストシステムにおけるマルチキャスツリー構成方法であって、
第１の配信元が発信するデータだけを受信するノードから成る第１のマルチキャストツリーを構成するステップと、
第２の配信元が発信するデータだけを受信するノードから成る第２のマルチキャストツリーを構成するステップと、
前記第１及び第２の配信元が発信するデータの両方を受信するノードから成る第３のマルチキャストツリーを構成するステップと、
前記第３のマルチキャストツリーの第１の葉に前記第１のマルチキャストツリーを接続し、前記第３のマルチキャストツリーの第２の葉に前記第２のマルチキャストツリーを接続して統合マルチキャストツリーを生成するステップと
を備えるマルチトキャスツリー構成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチキャストシステム、マルチキャストツリー構成方法、及びコンピュータプログラムに関する。特に本発明は、複数のノードを構成要素とする論理ネットワークにおいてデータを配信するマルチキャストシステム、マルチキャストツリー構成方法、及びコンピュータプログラムに関する。
本願は、２０１０年２月２３日に、日本に出願された特願２０１０−０３７２６２号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【０００２】
マルチキャストシステムは、ネットワーク内で、複数の相手を指定して同じデータを送信するシステムである。具体的には、マルチキャストシステムでは、データの配信元のルートノードを起点とするマルチキャストツリーに沿ってデータが伝送される。【０００３】
マルチキャストツリーは、データを利用する複数のノードによって構成される論理ネットワークで、配信元毎に作成する場合や、１つのマルチキャストツリーを共有する場合がある。データ配信の際、データはマルチキャストツリーの構成に従ってノード間を転送される。【０００４】
どのノードがどのデータを要求しているかを全て把握して、できるだけ少ないマルチキャストツリーを構成し、複数のデータがそれぞれのマルチキャストツリーの上流から下流まで後戻り無く転送するため、隣接行列を用いたグループ分け方法が知られている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−０４６８８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、既存のマルチキャストシステムでは、ルートノードの数が増加するにつれ、各ノードの転送処理負荷が高くなってしまう。その理由は、ルートノード毎にマルチキャストツリーを作成する場合は、あるノードが複数のルートノードからのデータを受信するためには、その数と同数のツリーに属さなければならず、ツリー毎の転送のためのテーブルが必要になり、転送処理負荷が高くなってしまうためである。一方、１つのマルチキャストツリーを共有する場合は、不要なデータを受信することがあり、不要か否かを判定するために、ルートノードの数と同数のフィルタルールが必要になるためである。【０００７】
また、既存のマルチキャストシステムでは、ノードの数が増加するにつれ、マルチキャストツリーに参加するノードの追加と削除のための処理負荷が高くなってしまう。その理由は、特許文献１に記載の手法の場合は、ノードの参加離脱の度に複数のマルチキャストツリー全体を再構成する必要があり、共通化しているルートノードの数が多い程、またノード数が多い程、マルチキャストツリーに参加するノードの追加と削除のための処理負荷が高くなってしまうためである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は、例えば以下の側面を有する。
第１の側面は、複数のノードを構成要素とする論理ネットワークにおいてデータを配信するマルチキャストシステムであって、複数のノードのうち、少なくとも一のノードは、２つの配信元が発信するデータの両方を受信するノードから成るマルチキャストツリーを構成する手段と、１つの配信元が発信するデータだけを受信するノードから成るマルチキャストツリーをそれぞれ構成する手段と、両方を受信するノードから成るマルチキャストツリーの葉のノードのいずれかに、１つの配信元が発信するデータだけを受信するノードから成るマルチキャストツリーを接続することによって、２つのマルチキャストツリーを１つに統合する手段とを有する。【０００９】
第２の形態は、マルチキャスツリー構成方法であって、２つの配信元が発信するデータの両方を受信するノードから成るマルチキャストツリーを構成するステップと、１つの配信元が発信するデータだけを受信するノードから成るマルチキャストツリーをそれぞれ構成するステップと、両方を受信するノードから成るマルチキャストツリーの葉のノードのいずれかに、１つの配信元が発信するデータだけを受信するノードから成るマルチキャストツリーを接続することによって、２つのマルチキャストツリーを１つに統合するステップとを有する。【００１０】
なお、上記の側面は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となり得る。
【発明の効果】
【００１１】
以上の説明から明らかなように、上記側面によれば、全てのデータを受信するノードにおいて、転送のためのデータベースの情報量を削減することができると共に、転送処理の負荷を削減することができる。【００１２】
また、上記側面によれば、隣接行列を用いたマルチキャストツリーのトポロジの変更方法と異なり、トポロジ修正中であっても、局所的なノードの追加、削除が可能になり、結果マルチキャストツリーに参加するノードの追加と削除のための負荷を削減することができる。
【図面の簡単な説明】
【００１３】
【図１】マルチキャストツリー１の構成の一例を示す図である。
【図２】一実施形態に係るマルチキャストツリーＣ１及びマルチキャストツリーＣ２の統合例を示す図である。
【図３】本実施形態のノード１００の構成を示す図である。
【図４】本実施形態のノード情報データベース１２１のデータ構成を示す図である。
【図５】本実施形態の利用データデータベース１２１のデータ構成を示す図である。
【図６】本実施形態のルートノード２００の構成を示す図である。
【図７】本実施形態の利用状況データベース２２３のデータ構成を示す図である。
【図８】本実施形態におけるノード１００において、利用データメッセージを送信する場合の動作フローを示す図である。
【図９】本実施形態によるノード１００が統合ツリー参加依頼メッセージを受信した場合の動作フローを示す図である。
【図１０】本実施形態によるルートノード２００が別のマルチキャストツリー１と統合する場合の動作フローを示す図である。
【図１１】本実施形態によるルートノード２００が統合応答メッセージを受信した場合の動作フローを示す図である。
【図１２】本実施形態によるルートノード２００が統合メッセージを受信した場合の動作フローを示す図である。
【図１３】本実施形態によるルートノード２００が利用データメッセージを受信した場合の動作フローを示す図である。
【発明を実施するための形態】
【００１４】
以下、実施の形態を説明する。以下の実施形態は発明を限定するものではなく、また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１５】
図１は、マルチキャストツリーＣ１の構成の一例を示す。マルチキャストツリーは、複数のノードを構成要素とする論理ネットワークである。具体的には、マルチキャストツリーは、データの配信元のルートノードを起点として、データを伝送すべきノードの関係を示している。また、一般に、それぞれ異なるデータを配信する複数のルートノードが存在する場合、マルチキャストツリーは、各ルートノードを起点としてそれぞれ伝送すべきノードの関係を示すよう、それぞれ個別に構成される。すなわち、マルチキャストツリー１を論理ネットワーク上で複数組み合わせることにより、多種多様なデータを、ノード１００に配信する大規模なマルチキャストシステムを構築することができる。
【００１６】
マルチキャストツリー１は、複数のノード１００ａ〜ｊ（以下、ノード１００と総称する。）、及びルートノード２００を構成要素とする論理ネットワークである。マルチキャストツリー１の構成例では、ルートノード２００を頂点とし、ルートノード２００の配下にノード１００ａ、ノード１００ｂがあり、ノード１００ａの配下にノード１００ｃ及び１００ｄ、ノード１００ｂの配下にノード１００ｅがあるというような、ツリー構造の状態で接続されている。
【００１７】
ノード１００は、ルートノード２００、もしくは１つ又は複数のノード１００と接続する。各ノード１００は、接続しているルートノード２００、もしくは１つ又は複数のノード１００からデータを受信した場合に、マルチキャストツリー１での下流にあるノード１００にデータを転送する。論理ネットワーク上にあるノード１００は、所望するデータを論理ネットワーク上で検索し、そのデータを有するルートノード２００又はそのコンテンツを有するルートノード２００が構成するツリーに接続しているノード１００に接続することによってマルチキャストツリー１に参加することができる。
【００１８】
図２は、一実施形態に係るマルチキャストツリーＣ１及びマルチキャストツリーＣ２の統合例を示す。マルチキャストツリーＣ１とマルチキャストツリーＣ２を統合するマルチキャストツリーＣ１＋Ｃ２の構成例を示している。マルチキャストツリーＣ１＋Ｃ２では、マルチキャストツリーＣ１とマルチキャストツリーＣ２双方に参加していたノード１００をマルチキャストツリー１のルートノード２００に近い位置に接続させ、その配下にマルチキャストツリーＣ１又はマルチキャストツリーＣ２のみに参加しているノード１００を接続させている。この構成によって、あるノード１００の配下のノード１００全てに、自ノードが受信するデータそのまま、又は自ノードが受信するデータの一部を転送すればよいことになり、結果データ転送のフィルタ処理が軽減できる。
【００１９】
この例では、ノードｎ２、ノードｎ８、ノードｎ１１、ノードｎ２２、ノードｎ３、ノードｎ９はマルチキャストツリーＣ１とマルチキャストツリーＣ２どちらにも参加していたため、マルチキャストツリーＣ１＋Ｃ２では、ルートノード２００として動作しているノードｎ２に近い位置でツリーを構成している。また、ノードｎ３の下に、マルチキャストツリーＣ１のみに接続していたノード１００で構成されるツリーが、ノードｎ９の下に、マルチキャストツリーＣ２のみに接続していたノード１００で構成されるツリーが、それぞれ接続している。この構成では、ノードｎ３、ノードｎ９を除く全てのノード１００は、マルチキャストツリーＣ１＋Ｃ２の上位から受けたデータを、そのまま下位に転送すればよく、データのフィルタルールは必要ない。ノードｎ３、ノードｎ９においてのみ、上位から受け取ったデータ２種のうち下位のノードが必要とするデータのみを下位に転送するためのフィルタルールが必要になる。しかし、ノードｎ３、ノードｎ９の下位にはマルチキャストツリーＣ１又はマルチキャストツリーＣ２いずれか一方のみのデータを必要とするノード１００しか接続していないため、フィルタルールは極簡易なものでよく、転送処理の負荷も少ない。また、この例ではマルチキャストツリーＣ１及びマルチキャストツリーＣ２のルートノード２００がどちらもノードｎ２となっているが、別々のルートノード２００であってもよい。
【００２０】
図３は、本実施形態のノード１００の構成を示す。ノード１００は、主制御部１１０とネットワークインターフェイス１２０と、ノード情報データベースと利用データデータベース１２２と、を有する。主制御部１１０は、ＣＰＵ、ＲＡＭ、及びＯＳ等で構成されたコンピュータの主要部であり、主制御部１１０の中に、動作するプログラムとして構成されている送受信部１１１と、ツリー参加要求機能部１１２と、利用データ報告機能部１１３と、を有する。
【００２１】
ここで、まず、ノード情報データベース１２１と、利用データデータベース１２２と、のデータ構成について説明する。
【００２２】
図４は、本実施形態のノード情報データベース１２１のデータ構成を示す。ノード情報データベース１２１は、利用データデータベースに保存しているデータ毎に、マルチキャストツリー１におけるノード情報を保存する。ノード情報とは、ノード１００を一意に識別するクライアントＩＤ、ＩＰアドレス、ポート番号等、他のノード１００とメッセージを送受信するために必要な情報であり、マルチキャストツリー１のツリー構造において自ノードより上及び下にあるノード１００の情報である。また、ノード情報データベース１２１のデータ構成におけるフィルタとは、統合されたマルチキャストツリー１において配下のノード１００にどのデータを転送するかどうかを示すフィルタルールである。
【００２３】
図５は、本実施形態の利用データデータベース１２２のデータ構成を示す。利用データデータベース１２２は、自ノードが参加しているマルチキャストツリー１のデータに関するメタデータを保存している。メタデータとは、データに付随する情報であって、例えば、データＩＤ、ＵＲＩ（Ｕｎｉｖｅｒｓａｌ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）、タイトル、作成者、作成場所、作成時間、キーワード等である。
さらにメタデータに加えてデータ本体を保持することもできる。
【００２４】
送受信部１１１は、ネットワークインターフェイス１２０を介して、ルートノード２００、又は他のノード１００からのメッセージを受信して、メッセージ種別を見た上で、メッセージをツリー参加要求機能部１１２に送る。また、送受信部１１１は、ツリー参加要求機能部１１２、利用データ報告機能部１１３、からメッセージを受け取り、メッセージに記載されている宛先であるルートノード２００、又は他のノード１００にネットワークインターフェイス１２０を介してメッセージを送信する。
【００２５】
ツリー参加要求機能部１１２は、統合ツリー参加依頼メッセージを受信すると、統合ツリー参加依頼メッセージに記載のマルチキャストツリー１の構成情報を参照して、ノード情報データベース１２１及び利用データデータベース１２２を更新する。このとき複数のデータＩＤを統合できる場合、例えば図３上のノード情報データベース１２１の場合で、Ｃ１とＣ２を統合する募集に適合するとき、図３下のノード情報データベースのようにＣ１とＣ２を統合するエントリを作成する。さらにこのとき統合ツリー参加依頼メッセージにフィルタルールも記載されていた場合は、ノード情報データベース１２１のフィルタルールも更新する。
【００２６】
利用データ報告機能部１１３は、利用データデータベース１２２を参照し、利用しているデータのメタデータの一部又は全部を利用データメッセージに記載して、ルートノード２００へ利用データメッセージを送信する。ここで複数のマルチキャストツリーに参加していた場合は、それぞれのマルチキャストツリーのルートノード２００に対して、利用データメッセージを送信する。
【００２７】
図６は、本実施形態のルートノード２００の構成を示す。ルートノード２００は、主制御部２１０とネットワークインターフェイス２２０と、ノード情報データベース２２１と、利用データデータベース２２２と、利用状況データベース２２３と、を有する。主制御部２１０は、ＣＰＵ、ＲＡＭ、及びＯＳ等で構成されたコンピュータの主要部であり、主制御１１０の中に、動作するプログラムとして構成されている送受信部２１１と、統合機能部２１２と、データ利用状況集計機能部２１３と、を有する。
【００２８】
図７は、本実施形態の利用状況データベース２２３のデータ構成を示す。利用状況データベース２２３は、自ノードがルートノード２００として構成しているマルチキャストツリー１に参加しているひとつ又は複数のノード１００が、他のどんなマルチキャストツリー１に参加しているかを収集したデータである。図７の例では、ノードＩＤ毎の利用データの表とデータＩＤ毎の利用しているノードの数の表で構成されている。
【００２９】
ルートノード２００における、ノード情報データベース２２１、利用データデータベース２２２は、ノード１００のノード情報データベース１２１、利用データデータベース１２２と同一のデータ構造であるため詳細は説明を省略する。
【００３０】
送受信部２１１は、ネットワークインターフェイス２２０を介して、他のルートノード２００、又はノード１００からのメッセージを受信して、メッセージ種別を見た上で、統合機能部２１２又はデータ利用状況集計機能部２１３に送る。また、送受信部２１１は、統合機能部２１２、からメッセージを受け取り、メッセージに記載されている宛先である他のルートノード２００、又はノード１００にネットワークインターフェイス１２０を介してメッセージを送信する。
【００３１】
統合機能部２１２は、別のマルチキャストツリー１と統合する場合に、統合するマルチキャストツリー１のルートノード２００に対し、統合メッセージを送信する。さらに、統合機能部２１２は、統合応答メッセージを受信すると、統合マルチキャストツリー１を構成するため、利用状況データベース２２３及びノード情報データベース２２１を参照し、統合応答メッセージに記載の、統合する別のマルチキャストツリー１を利用していたノード１００のノード情報を確認し、統合マルチキャストツリー１の構成を決定する。具体的には、統合前マルチキャストツリー１双方のデータを利用していたノード１００で構成されるツリー、一方のマルチキャストツリー１のデータのみを利用していたノード１００で構成されるツリー、もう一方のマルチキャストツリー１のデータのみを利用していたノード１００で構成されるツリー、それぞれを構成する。さらに、統合前マルチキャストツリー１双方のデータを利用していたノード１００で構成されるツリーの葉の位置にあたるノード１００から２つのノード１００を選び、それぞれの葉に一方のマルチキャストツリー１のデータのみを利用していたノード１００で構成されるツリー、もう一方のマルチキャストツリー１のデータのみを利用していたノード１００で構成されるツリー、それぞれを接続させる構成とすることで、統合マルチキャストツリー１を構成する。さらに、一方のマルチキャストツリー１のデータのみを利用していたノード１００で構成されるツリー、もう一方のマルチキャストツリー１のデータのみを利用していたノード１００で構成されるツリー、いずれかを接続することになったノード１００にはフィルタルールを指定する。ここで、統合前マルチキャストツリー１双方のデータを利用していたノード１００で構成されるツリーの葉の位置にあたるノード１００から２つのノード１００を選ぶ場合、統合前のツリー構成に近い接続関係になるようにノード１００を選ぶ、ノードＩＤでランダムに選ぶ等がある。統合前のツリー構成に近い接続関係になるようにノード１００を選ぶとは、例えば、図２の例では、マルチキャストツリーＣ１においてノードｎ３の下にノードｎ１８が接続しているが、統合マルチキャストツリーＣ１＋Ｃ２においても同様の構成とすること等である。また、統合前マルチキャストツリー１双方のデータを利用していたノード１００で構成されるツリーの葉の位置にあたるノード１００が１つしかない場合に限って、統合前マルチキャストツリー１双方のデータを利用していたノード１００で構成されるツリーの葉の位置にあたるノード１つに、一方のマルチキャストツリー１のデータのみを利用していたノード１００で構成されるツリー、もう一方のマルチキャストツリー１のデータのみを利用していたノード１００で構成されるツリー、両方のツリーを接続してもよい。統合機能部２１２は、統合マルチキャストツリー１の構成を決定後、統合マルチキャストツリー１に参加することになるノード１００に対し、統合ツリー参加依頼メッセージを送信する。ここで、統合ツリー参加依頼メッセージにはフィルタルールを含むマルチキャストツリー１の構成情報が含まれる。さらに、統合機能部２１２は、利用データデータベース２２２を更新し、ノード情報データベース２２１を更新し、統合マルチキャストツリー１のための利用データデータベース２２２及びノード情報データベース２２１を確定させる。さらに、統合機能部２１２は、他のルートノード２００から統合メッセージを受信すると、ノード情報データベース２２１及び利用データデータベース２２２を更新し利用状況データベース２２３及びノード情報データベース２２１の内容を含む統合応答メッセージを送信する。
【００３２】
データ利用状況集計機能部２１３は、利用データメッセージを受信すると、利用状況データベース２２３を参照し、利用状況データベース２２３のノードＩＤと利用データの組み合わせ、及びデータＩＤ毎の利用ノード数を更新する。
【００３３】
次に、本実施形態の動作について、特に特徴的な部分について説明する。
【００３４】
図８は、本実施形態におけるノード１００において、利用データメッセージを送信する場合の動作フローを示す。動作を開始すると、まず送受信部１１１が他のノード１００、ルートノード２００、もしくはノード１００内の主制御部１１０からの通信を待つ状態（以後、アイドル状態という）となる（Ｓ３００）。
【００３５】
ノード１００は、アイドル状態中に（Ｓ３００）、利用データデータベース１２２を参照し（Ｓ３０１）、利用しているデータのメタデータの一部又は全部を記載した利用データメッセージを作成し（Ｓ３０２）、ルートノード２００へ利用データメッセージを送信し（Ｓ３０３）、アイドル状態に戻る。
【００３６】
図９は、本実施形態によるノード１００が統合ツリー参加依頼メッセージを受信した場合の動作フローを示す。ノード１００は、アイドル状態から（Ｓ３００）、統合ツリー参加依頼メッセージを受信すると（Ｓ３１１）、ノード情報データベース１２１を更新し（Ｓ３１２）、利用データデータベース１２２を更新し（Ｓ３１３）、アイドル状態に戻る。
【００３７】
図１０は、本実施形態によるルートノード２００が別のマルチキャストツリー１と統合する場合の動作フローを示す。動作を開始すると、まず送受信部２１１が他のノード１００、ルートノード２００、もしくはノード２００内の主制御部２１０からの通信を待つ状態（以後、アイドル状態という）となる（Ｓ４００）。ルートノード２００は、アイドル状態から（Ｓ４００）、統合メッセージを送信し（Ｓ４０１）、アイドル状態に戻る。
【００３８】
図１１は、本実施形態によるルートノード２００が統合応答メッセージを受信した場合の動作フローを示す。ルートノード２００は、アイドル状態から（Ｓ４００）、統合応答メッセージを受信すると（Ｓ４１１）、利用状況データベース２２３を参照し（Ｓ４１２）、ノード情報データベース２２１を参照し（Ｓ４１３）、統合前マルチキャストツリー１双方のデータを利用していたノード１００で構成されるツリーを作成し（Ｓ４１４）、一方のマルチキャストツリー１のデータのみを利用していたノード１００で構成されるツリーを作成し（Ｓ４１５）、もう一方のマルチキャストツリー１のデータのみを利用していたノード１００で構成されるツリーを作成し（Ｓ４１６）、Ｓ４１４、Ｓ４１５、Ｓ４１６で作成したツリーから統合マルチキャストツリー１を作成し（Ｓ４１７）、統合ツリー参加依頼メッセージを送信し（Ｓ４１８）、ノード情報データベース２２１を更新し（Ｓ４１９）、利用データデータベース２２２を更新し（Ｓ４２０）、アイドル状態に戻る。
【００３９】
図１２は、本実施形態によるルートノード２００が統合メッセージを受信した場合の動作フローを示す。ルートノード２００は、アイドル状態から（Ｓ４００）、統合メッセージを受信すると（Ｓ４２１）、ノード情報データベース２２１を更新し（Ｓ４２２）、利用データデータベース２２２を更新し（Ｓ４２３）、統合応答メッセージを送信し（Ｓ４２４）、アイドル状態に戻る。
【００４０】
図１３は、本実施形態によるルートノード２００が利用データメッセージを受信した場合の動作フローを示す。ルートノード２００は、アイドル状態から（Ｓ４００）、利用データメッセージを受信すると（Ｓ４３１）、利用状況データベース２２３を更新し（Ｓ４３２）、アイドル状態に戻る。
【００４１】
なお、図８〜１３で説明したフローチャートに係る各ステップの動作内容は、ノード１００とルートノード２００とが予め備えるコンピュータ（主制御部）で動作するプログラムとして実行させるように構成することができる。
【００４２】
上述した説明では、２つのマルチキャストツリー１を１つに統合する際、全てのデータを利用するノードで構成されるマルチキャストツリーを構成し、一部のデータを利用するノードで構成されるマルチキャストツリーをそれぞれ構成し、全てのデータを利用するノードで構成されるマルチキャストツリーの葉のノードにおいて一部のデータを利用するノードで構成されるマルチキャストツリーを接続させる構成としたが、一部のデータを利用するノードで構成されるマルチキャストツリーは、それぞれ単一である必要はなく、それぞれに複数のマルチキャストツリーを構成してもよい。この場合、構成した複数の一部のデータを利用するノードで構成されるマルチキャストツリーの数と同数の、全てのデータを利用するノードで構成されるマルチキャストツリーの葉のノードを選出し、接続させる。
【００４３】
また、上述した説明では、ルートノード２００とノード１００との間の通信において、統合ツリー参加依頼メッセージは、ルートノード２００とノード１００との間で１対１でメッセージを送受信する構成としたが、統合前のマルチキャストツリー１の構成を用いて、メッセージの送受信を行ってもよい。
【００４４】
また、上述した説明では、ルートノード２００において、受信した利用データメッセージに基づいて、統合マルチキャストツリー１を構成する、としたが、ノード１００にもルートノード２００の統合機能部２１３に相当する機能を持たせることによって、分散協調して統合マルチキャストツリー１を構成するとしてもよい。この場合、統合マルチキャストツリー１を構成する場合に、２つの配信元が発信するデータの両方を受信するノードから成るマルチキャストツリー１を  構成する段階と、１つの配信元が発信するデータだけを受信するノードから成るマルチキャストツリー１をそれぞれ構成する段階と、に分けて、ノード１００に対しツリー参加を募集し、募集に対して参加を要求してきたノード１００を順に統合マルチキャストツリーに接続させることによって、目的とする統合マルチキャストツリー１を構成する。
【００４５】
また、上述した説明では、２つのマルチキャストツリー１を１つに統合する際、統合メッセージを送信したルートノード２００が、新たな統合マルチキャストツリー１のルートノード２００となり、統合メッセージを受信したルートノード２００が、新たな統合マルチキャストツリー１のルートノード２００へデータを送信する構成としたが、新たな統合マルチキャストツリー１のルートノード２００は何れのルートノード２００であってもよい。
【００４６】
また、上述した説明では、２つのマルチキャストツリー１を１つに統合する機能、動作について説明したが、３つ以上のツリーを統合する場合も同様の機能、動作で実現できる。詳しくは省略するが、例えば、３つのマルチキャストツリー１間の場合、３つの配信元が発信するデータの全てを受信するノードから成るマルチキャストツリー１、３つの配信元のうち何れか２つのデータを受信するノードから成るマルチキャストツリー１を３個、１つの配信元が発信するデータだけを受信するノードから成るマルチキャストツリー１を３個、を構成し、３つの配信元が発信するデータの全てを受信するノードから成るマルチキャストツリー１の葉のノードのいずれかに、３つの配信元のうち何れか２つのデータを受信するノードから成るマルチキャストツリー１を接続し、３つの配信元のうち何れか２つのデータを受信するノードから成るマルチキャストツリー１の葉のノードのうち、受信データに適合するノードいずれかに、１つの配信元が発信するデータだけを受信するノードから成るマルチキャストツリー１を接続することによって、３つのマルチキャストツリーを１つに統合することができる。
【００４７】
また、上述した説明では、２つのマルチキャストツリー１を１つに統合する機能、動作について説明したが、ある統合マルチキャストツリー１において、統合前の２つのマルチキャストツリー１に分離することもできる。詳しくは省略するが、統合のための機能、動作と同様の機能、動作で実現できる。例えば、分離が決定した場合、分離するためにデータそれぞれのマルチキャストツリー１を作成し、それぞれのデータを利用するノード１００をそれぞれのマルチキャストツリー１に参加させ、統合マルチキャストツリー１を削除することで実現できる。この分離のための機能、動作は３つ以上のマルチキャストツリー１を統合した統合マルチキャストツリーにおいても同様である。
【００４８】
また、上述した説明では、複数のマルチキャストツリー１を１つに統合、又は統合マルチキャストツリー１を複数のマルチキャストツリー１に分離する機能、動作について説明したが、統合又は分離の契機として、マルチキャストツリー１間の類似度を利用してもよい。このとき類似度とは、あるデータＩＤにおいて、利用状況データベースにあるノード数と利用件数から算出され、複数のマルチキャストツリー１間の参加しているノード１００の類似度を示す。この類似度が一定以上のマルチキャストツリー１において統合する、一定以下のマルチキャストツリー１において分離する、とすることもできる。
【００４９】
また、上述した説明では、主にノード１００に対する接続を用いて説明したが、ルートノード２００もノード１００と同様のノードとして動作してもよい。
【００５０】
以上説明したように、２つの配信元が発信するデータの両方を受信するノードから成るマルチキャストツリーを構成し、１つの配信元が発信するデータだけを受信するノードから成るマルチキャストツリーをそれぞれ構成し、両方を受信するノードから成るマルチキャストツリーの葉のノードのいずれかに、１つの配信元が発信するデータだけを受信するノードから成るマルチキャストツリーを接続し２つのマルチキャストツリーを１つに統合することによって、全てのデータを受信するノードにおける転送のためのテーブルを削減でき、転送処理負荷を削減することができ、また、複数のデータのための統合マルチキャストツリーにおいても、マルチキャストツリーに参加するノードの追加と削除のための処理を局所化し、結果マルチキャストツリーに参加するノードの追加と削除のための負荷を削減することができる。
【００５１】
本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に多様な変更又は改良を加えることが可能であることは、当業者に明らかである。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得る。
【００５２】
なお、上記の実施形態では、統合前マルチキャストツリー１双方のデータを利用していたノード１００で構成されるツリーを作成する。この処理においては、例えば、まず、双方のデータを利用するノード１００を抽出する。次に、例えばＣ２を受信するノードからなるツリーにおいて、双方のデータを利用していたノード１００のみを残したツリーを作成する。この双方のデータを利用していたノード１００のツリーにおいては、葉が欠落する箇所が存在する。この欠落箇所には、下位の葉や右隣、もしくは左隣の葉をこの欠落箇所に移動させる。ここでは、例えば、作成されたツリーにおいて、欠落箇所に対して、下位の階層にあるものが用いられ、更に、下位の階層にある葉については、右（もしくは左）にあるノードが優先される。このようなルールに従い、双方のデータを利用していたノード１００で構成されるツリーを構成しても良い。また、一方のマルチキャストツリー１のデータのみを利用していたノード１００で構成されるツリーの作成においても、同様の方法を用いても良い。なお、このようなツリーの構成方法は一例であり、他の方法を用いても良い。
【００５３】
また、上記実施形態におけるフィルタルールとは、例えば、受信したデータの配下のノードへの送信の要否を判断する基準である。これは例えば、配下のノードが特定の発信もとから配信されたデータのみを受信する場合（例えばＣ１のみ）、他の発信元から配信されたデータ（例えばＣ２から配信されたデータ）を配下のノードへ送信する必要がない、といったものである。
【産業上の利用可能性】
【００５４】
上記の実施形態は、ネットワーク内で複数の相手を指定して同じデータを送信するマルチキャストシステムに適用ができる。
【符号の説明】
【００５５】
１  マルチキャストツリー
１００  ノード
１１０  主制御部
１１１  送受信部
１１２  ツリー参加要求機能部
１１３  利用データ報告機能部
１２０  ネットワークインターフェイス
１２１  ノード情報データベース
１２２  利用データデータベース
２００  ルートノード
２１０  主制御部
２１１  送受信部
２１２  統合機能部
２１３  データ利用状況集計機能部
２２０  ネットワークインターフェイス
２２１  ノード情報データベース
２２２  利用データデータベース
２２３  利用状況データベース
Ｃ１  マルチキャストツリー
Ｃ２  マルチキャストツリー
Ｃ１＋Ｃ２  マルチキャストツリー
【図１】
0005626331.tif 000002
【図２】
0005626331.tif 000003
【図３】
0005626331.tif 000004
【図４】
0005626331.tif 000005
【図５】
0005626331.tif 000006
【図６】
0005626331.tif 000007
【図７】
0005626331.tif 000008
【図８】
0005626331.tif 000009
【図９】
0005626331.tif 000010
【図１０】
0005626331.tif 000011
【図１１】
0005626331.tif 000012
【図１２】
0005626331.tif 000013
【図１３】
0005626331.tif 000014