ところで、システムに参加する全てのノード装置が対等な機能を有するピアツーピア型の情報通信システムにおいては、クライアント・サーバ型の情報通信システムと比べて、当該システム内のネットワークリソースを効率良く利用できる反面、各ノード装置は、自身の近隣のノード装置の情報のみしか把握していない。従って、ノード装置は、この種のコンテンツデータ配信システムに参加しようとするときには、自身が何れのノード装置にアクセス(接続)して接続を試みるべきかを、システムの接続態様全体を制御する管理サーバ等に問合せ、当該管理サーバからの指示に従って、既にシステムに参加しているノード装置に接続することになる。
従って、例えばあるノード装置がシステムから脱退した場合などには、その都度その脱退したノード装置の下位階層として接続してコンテンツデータを受信していたノード装置は、接続可能な別のノード装置を管理サーバに問い合わせなければならず、管理サーバには一時的に超過した負荷を課すこととなり、当該システム全体に悪影響を及ぼすという問題があった。
また、ツリー型ネットワークシステムでは、最上位の放送局装置等の配信サーバから配信されたコンテンツデータを、上流のノード装置が下流のノード装置へと順次転送する構成であるため、上流のノード装置ほどサービスの提供者としての役割が大きくなってくる。従って、より安定したシステムを構築するためには、配信適正が高いノード装置をより上流に配置することが望ましい。言い換えれば、配信サーバとして用いることもできるほど配信能力が高いノード装置ほど上流に配置されることが望ましい。
しかし、最適な配置を行うためには、管理サーバが全ノード装置の属性情報と常に変化している接続構成を完全に把握していなければならず、また、ノード装置の参加・脱退の度にシステム全体の最適化・再配置が行われるため、管理サーバだけでなくシステム全体に負荷がかかってしまうという問題があった。
本発明は、以上の点等に鑑みてなされたものであり、管理サーバに負担をかけず、各ノード装置を最適に配置したツリー型ネットワークシステムを構築することが可能な情報配信システム、情報配信方法及び処理プログラム等を提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、配信情報を配信する情報配信装置と、前記配信情報を受信する複数のノード装置と、システムに参加する際に前記ノード装置から送信された参加要求を示す参加要求情報を受信する管理装置とを備えたツリー型ネットワークシステムであって、前記情報配信装置を最上位として前記複数のノード装置が複数の階層を形成しつつ通信経路を介してツリー状に接続され、前記情報配信装置により送信された前記配信情報が、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送される前記ツリー型ネットワークシステムにおいて、前記管理装置は、前記ノード装置の属性情報毎に、所定数のノード装置の装置情報を記憶する記憶手段と、当該ツリー型ネットワークシステムへ参加するべきノード装置から、接続すべき接続候補のノード装置の装置情報を要求する前記参加要求情報を受信する参加要求情報受信手段と、前記参加要求情報を送信したノード装置の属性情報を取得する属性情報取得手段と、前記情報配信装置の装置情報と、前記記憶手段が記憶した前記ノード装置の装置情報のうち、取得した前記属性情報に基づいて装置情報を接続先候補情報として決定する接続先候補情報決定手段と、決定した前記接続先候補情報を、前記参加要求情報を送信したノード装置に送信する接続先候補情報送信手段と、を有し、前記ノード装置は、前記ツリー型ネットワークシステムへ参加する際に前記管理装置に前記参加要求情報を送信する参加要求情報送信手段と、前記管理装置から送信された前記接続先候補情報を受信する接続先候補情報受信手段と、受信した前記接続先候補情報に係る前記ノード装置又は前記情報配信装置に対して接続を要求する接続要求情報を送信する接続要求情報送信手段と、他のノード装置から送信された前記接続要求情報を受信する接続要求情報受信手段と、前記接続要求情報受信手段が前記接続要求情報を受信したとき、自身に接続するべきか否かを判断する判断手段と、前記接続要求情報の送信元であるノード装置を自身に接続すべきと前記判断手段が判断したとき、前記接続要求情報の送信元であるノード装置を接続して前記配信情報を転送するノード装置接続手段と、を有することを特徴とする。
これによれば、ノード装置がツリー型ネットワークシステムに参加する際には、管理装置に接続先の候補となるノード装置を問合せ、当該ノード装置に対して接続要求を行い、これを受けたノード装置では自身に接続すべきか否かを判断するよう構成したので、管理装置に負担をかけずにより安定性の高いツリー型ネットワークシステムを構築することが可能になる。また、管理装置はノード装置の属性情報毎に、所定数のノード装置だけを管理(記憶)すればよいので管理装置の処理負担を抑えて、各ノード装置にて自律的に接続態様を制御することができる。また、属性情報に基づいて接続先の候補となるノード装置を決定するよう構成したので、同じ属性情報を持ったノード装置が一箇所に集まるようにネットワークシステムを構築できるので、何れかのノード装置において切断が起こった場合でも、再接続処理がシステム全体に波及することを防ぐことができる。
上記課題を解決するために、請求項2に記載の発明は、配信情報を配信する情報配信装置と、前記配信情報を受信する複数のノード装置と、システムに参加する際に前記ノード装置から送信された参加要求を示す参加要求情報を受信する管理装置とを備えたツリー型ネットワークシステムであって、前記情報配信装置を最上位として前記複数のノード装置が複数の階層を形成しつつ通信経路を介してツリー状に接続され、前記情報配信装置により送信された前記配信情報が、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送される前記ツリー型ネットワークシステムにおける前記ノード装置であって、前記ツリー型配信システムへ参加する際に前記管理装置に前記参加要求情報を送信する参加要求情報送信手段と、前記参加要求情報に応じて前記管理装置から送信された接続先候補情報を受信する接続先候補情報受信手段と、受信した前記接続先候補情報に係る前記ノード装置又は前記情報配信装置に対して接続を要求する接続要求情報を送信する接続要求情報送信手段と、他のノード装置から送信された前記接続要求情報を受信する接続要求情報受信手段と、前記接続要求情報受信手段が前記接続要求情報を受信したとき、自身に接続するべきか否かを判断する判断手段と、前記接続要求情報の送信元であるノード装置を自身に接続すべきと前記判断手段が判断したとき、前記接続要求情報の送信元であるノード装置を接続して前記配信情報を転送するノード装置接続手段と、を有することを特徴とする。
これによれば、ツリー型ネットワークシステムに参加する各ノード装置が装置情報に基づいて上位適正が高いノード装置が親ノード装置となるよう構成したので、より安定性の高いネットワークシステムを構築することが可能になる。
上記課題を解決するために、請求項3に記載の発明は、請求項2に記載のノード装置において、前記判断手段は、前記接続要求情報の送信元であるノード装置の上位適正を比較する比較手段を備え、比較の結果、自身の上位適正が前記接続要求情報の送信元であるノード装置の上位適正以上である場合には、前記接続要求情報の送信元であるノード装置を自身に接続すべきと判断することを特徴とする。
これによれば、接続要求情報を受信した場合に自身の上位適正が接続要求情報の送信元であるノード装置の上位優先よりも高い場合に自身が親ノード装置となるよう構成したので、より安定性の高いネットワークシステムを構築することが可能になる。
上記課題を解決するために、請求項4に記載の発明は、請求項2又は請求項3に記載のノード装置において、前記接続先候補情報受信手段によって受信された接続先候補情報を親候補装置情報として記憶する親候補装置記憶手段と、前記親候補装置記憶手段に記憶された前記親候補装置情報から親装置を選択する親装置選択手段と、を有し、前記接続要求情報送信手段は、前記親装置選択手段によって選択された親装置に対して前記接続要求情報を送信することを特徴とする。
これによれば、複数の親候補の中から親装置を選択して当該親装置に対して接続要求情報を送信するよう構成したので、親候補装置情報に含まれる親候補の中から最も親装置としてふさわしいノード装置(親装置)に対して接続要求を行うことができる。
上記課題を解決するために、請求項5に記載の発明は、請求項4に記載のノード装置において、前記親候補装置記憶手段は、前記情報配信装置から当該ノード装置自身までの通信経路に存在する全てのノード装置の装置情報を親候補装置情報として記憶し、前記親装置選択手段は、前記親候補装置情報として記憶された各前記装置情報に基づいて、各前記ノード装置の上位優先順位を決定し、最も上位優先順位の高いノード装置を選択することを特徴とする。
これによれば、システムに参加する各ノード装置が、上位優先順位に基づいて他のノード装置と互いに接続/切断するなどの接続態様を自律的に制御することができる。
上記課題を解決するために、請求項6に記載の発明は、請求項3乃至請求項5に記載のノード装置において、前記比較手段による比較の結果、自身の上位適正が、前記接続要求情報の送信元であるノード装置の上位適正より低い場合には、前記接続要求情報の送信元であるノード装置の装置情報を、前記親候補装置記憶手段に記憶した前記親候補装置情報に追加する親候補装置記憶制御手段と、親装置として接続されたノード装置との接続を切断する親装置切断手段と、を有することを特徴とする。
これによれば、接続要求情報を受信した場合に自身の上位適正が接続要求情報の送信元であるノード装置の上位優先よりも低い場合には、自身の親装置との接続を切断するよう構成したので、各ノード装置が自身の接続態様を自律的に制御することができる。
上記課題を解決するために、請求項7に記載の発明は、請求項3乃至請求項6のいずれか一項に記載のノード装置において、前記比較手段による比較の結果、自身の上位適正が、前記接続要求情報の送信元であるノード装置の上位適正より低い場合であって、かつ、自身の属性情報と前記接続要求情報の送信元であるノード装置の属性情報とが同じで、かつ、自身が当該属性情報に係る、最も上位のノード装置である最上ノード装置である場合には、前記管理装置に対して、前記接続要求情報の送信元であるノード装置が自身に代えて前記属性情報に係る最上ノード装置となることを通知する最上ノード装置交代通知手段を有することを特徴とする。
これによれば、管理装置は各属性情報に係る最新の最上ノード装置の情報を保持(管理)することが可能になる。
上記課題を解決するために、請求項8に記載の発明は、請求項2乃至請求項7のいずれか一項に記載のノード装置において、自身の下位階層として接続されているノード装置である子ノード装置の装置情報を記憶する子ノード装置記憶手段と、前記子ノード装置の数が、自身の配信許容数を超えた場合には、前記子ノード装置記憶手段に記憶した前記子ノード装置の装置情報に基づいて、各前記子ノード装置の下位優先順位を決定して最も下位優先順位の低い子ノード装置を選択する子ノード装置選択手段と、前記子ノード装置選択手段により選択された前記子ノード装置への自身との接続を切断する子ノード装置切断手段と、前記子ノード装置選択手段により選択された前記子ノード装置の装置情報を前記子ノード装置記憶手段から削除する子ノード装置記憶制御手段と、削除後に前記子ノード装置記憶手段に記憶された前記子ノード装置の装置情報を、前記最も下位優先順位の低い子ノード装置に対して、接続先候補情報として送信する接続先候補情報送信手段と、を有することを特徴とする。
これによれば、ノード装置に配信許容数がある場合であっても、ノード装置の属性情報を含む装置情報に基づいて下位優先順位を決定し、当該下位優先順位の最も低いノード装置2から接続を切断するよう構成したので、各ノード装置が自身の接続態様を自律的により適切に制御することができる。
上記課題を解決するために、請求項9に記載の発明は、請求項8に記載のノード装置において、前記親候補装置記憶制御手段は、他の前記ノード装置から前記接続先候補情報を受信すると、当該接続先候補情報に係る前記ノード装置の装置情報を前記親候補装置記憶手段に記憶した前記親候補装置情報に追加することを特徴とする。
これによれば、ノード装置は常によりふさわしいノード装置に接続することが可能になる。
上記課題を解決するために、請求項10に記載の発明は、請求項3乃至請求項9のいずれか一項に記載のノード装置において、前記ノード装置に係る上位適正は、自身の配信能力、自身の下位階層として接続されているノード装置から最下位のノード装置までのノード装置である子孫ノード装置の数、のうち少なくとも何れか一つに基づいて定められることを特徴とする。
これによれば、ツリー型ネットワークシステムに参加する各ノード装置が、各装置の配信能力や子孫ノード装置の数に基づいて上位適正を定めたので、より安定性の高いネットワークシステムを構築することが可能になる。
上記課題を解決するために、請求項11に記載の発明は、請求項10に記載のノード装置において、前記配信能力が高いほど前記上位適正は高くなり、前記子孫ノード装置の数が少ないほど前記上位適正は高くなることを特徴とする。
これによれば、より安定性の高いネットワークシステムを構築することが可能になる。
上記課題を解決するために、請求項12に記載の発明は、請求項6乃至請求項11のいずれか一項に記載のノード装置において、前記親装置選択手段は、前記上位優先順位を、前記親候補装置記憶手段に前記親候補装置情報として記憶された各前記装置情報に係る前記属性情報、前記配信能力、前記ツリー型ネットワークシステムにおける階層数、前記子孫ノード装置の数、のうち少なくとも何れか一つに基づいて決定し、前記子ノード装置選択手段は、前記下位優先順位を、前記記憶手段に記憶した前記子ノード装置の装置情報に係る前記属性情報、前記配信能力、前記子孫ノード装置の数、のうち少なくとも何れか一つに基づいて決定することを特徴とする。
これによれば、各ノード装置の配信能力や属性情報等に基づいて上位優先順位と下位優先順位を決定するよう構成したので、各ノード装置をより適切に配置することが可能になる。
上記課題を解決するために、請求項13に記載の発明は、請求項12に記載のノード装置において、前記親装置選択手段は、前記上位優先順位を、それぞれに重みが付加された前記属性情報、前記配信能力、前記ツリー型ネットワークシステムにおける階層数、前記子孫ノード装置の数の内、何れか複数に基づいて決定し、前記子ノード装置選択手段は、前記下位優先順位を、それぞれに重みが付加された前記属性情報、前記配信能力、前記子孫ノード装置の数、の内、複数に基づいて決定することを特徴とする。
これによれば、上位優先順位と下位優先順位を各ノード装置の配信能力や属性情報等の複数の情報に基づいてより適切に決定できるので、各ノード装置をより適切に配置することが可能になる。
上記課題を解決するために、請求項14に記載の発明は、請求項10乃至請求項13のいずれか一項に記載のノード装置において、前記ノード装置の前記配信能力は、当該ノード装置の処理能力、当該ノード装置に付帯する前記通信経路の有効帯域、当該ノード装置が前記ツリー型ネットワークシステムに参加している参加時間、既に受信した前記配信情報であって未だ所持している前記配信情報の量、のうち少なくとも何れか一つに基づいて定められることを特徴とする。
これによれば、配信能力を、各ノード装置に付帯する通信経路の有広帯域や、処理能力等に基づいてより適切に決定できるので、上位適正、上位優先順位、下位優先順位をより適切に決定することができる。
上記課題を解決するために、請求項15に記載の発明は、請求項7乃至請求項14のいずれか一項に記載のノード装置において、前記属性情報は、ノード装置がネットワークにおいて所属するネットワーク接続サービスグループを示す所属情報であることを特徴とする。
これによれば、属性情報をノード装置の所属情報とするため、ノード装置が自律的に接続態様を制御する際の影響をシステム全体に波及させることを防いで、できるだけ同じ所属情報である他のノード装置と接続等を行うことが可能になる。
上記課題を解決するために、請求項16に記載の発明は、請求項7乃至請求項16のいずれか一項に記載のノード装置において、前記属性情報は、AS番号であることを特徴とする。
これによれば、属性情報をAS番号とするため、ノード装置が自律的に接続態様を制御する際の影響をシステム全体に波及させることを防いで、できるだけ同じAS番号である他のノード装置と接続等を行うことが可能になる。
上記課題を解決するために、請求項17に記載の発明は、コンピュータを、請求項2乃至請求項16のいずれか一項に記載のノード装置として機能させることを特徴とする。
上記課題を解決するために、請求項18に記載の発明は、配信情報を配信する情報配信装置と、前記配信情報を受信する複数のノード装置と、システムに参加する際に前記ノード装置から送信された参加要求を示す参加要求情報を受信する管理装置とを備えたツリー型ネットワークシステムであって、前記情報配信装置を最上位として前記複数のノード装置が複数の階層を形成しつつ通信経路を介してツリー状に接続され、前記情報配信装置により送信された前記配信情報が、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送される前記ツリー型ネットワークシステムにおける前記管理装置であって、前記ノード装置の属性情報毎に、所定数のノード装置の装置情報を記憶する記憶手段と、当該ツリー型ネットワークシステムへ参加するべきノード装置から、当該ノード装置が接続する接続候補のノード装置の装置情報を要求する前記参加要求情報を受信する参加要求情報受信手段と、前記参加要求情報を送信したノード装置の属性情報を取得する属性情報取得手段と、前記情報配信装置の装置情報と、前記記憶手段が記憶した前記ノード装置の装置情報のうち、取得した前記属性情報に基づいて装置情報を接続先候補情報として決定する接続先候補情報決定手段と、決定した前記接続先候補情報を、前記参加要求情報を送信したノード装置に送信する接続先候補情報送信手段と、を有し、前記記憶手段は、前記ノード装置の属性情報毎に、最も上位のノード装置である最上ノード装置の装置情報を記憶し、前記接続先候補情報決定手段は、前記情報配信装置の装置情報と、前記記憶手段が記憶した前記最上ノード装置の装置情報のうち、取得した前記属性情報に基づいて一の装置情報を接続先候補情報として決定することを特徴とする。
これによれば、管理装置はノード装置の属性情報毎に、所定数のノード装置だけを管理(記憶)すればよいので負担を抑えて、各ノード装置にて自律的に接続態様を制御することができる。これによれば、属性情報に基づいて接続先の候補となるノード装置を接続先候補情報として決定するよう構成したので、例えば同じ属性情報を持ったノード装置が一箇所に集まるようにネットワークシステムを構築できるので、何れかのノード装置において切断が起こった場合でも、再接続処理がシステム全体に波及することを防ぐことができる。また、管理装置はノード装置の属性情報毎に、最も上位のノード装置である最小ノード装置だけを管理(記憶)すればよいので負担を最小限に抑えて、各ノード装置にて自律的に接続態様を制御することができる。
上記課題を解決するために、請求項19に記載の発明は、請求項18に記載の管理装置において、前記接続先候補情報決定手段は、前記属性情報取得手段によって取得した属性情報と同じ属性情報に係る装置情報が前記記憶手段に記憶されている場合には、前記記憶手段が記憶した前記最上ノード装置の装置情報のうち、当該属性情報に係る前記最上ノード装置の装置情報を前記接続先候補情報として決定することを特徴とする。
これによれば、属性情報に基づいて接続先の候補となるノード装置を接続先候補情報として決定するよう構成したので、同じ属性情報を持ったノード装置が一箇所に集まるようにネットワークシステムを構築できるので、何れかのノード装置において切断が起こった場合でも、再接続処理がシステム全体に波及することを防ぐことができる。
上記課題を解決するために、請求項20に記載の発明は、請求項18または請求項19に記載の管理装置において、前記接続先候補情報決定手段は、前記属性情報取得手段によって取得した属性情報と同じ属性情報に係る装置情報が前記記憶手段に記憶されていない場合には、前記情報配信装置の装置情報を前記接続先候補情報として決定することを特徴とする。
これによれば、取得した属性情報と同じ属性情報に係る装置情報が前記記憶手段に記憶されていない場合であっても、情報配信装置の装置情報を接続先候補情報とすることができる。
上記課題を解決するために、請求項21に記載の発明は、請求項18乃至請求項20のいずれか一項に記載の管理装置において、前記ノード装置から、前記最上ノード装置が他の前記ノード装置に交代することが通知されると、前記記憶手段に記憶した前記最上ノード装置のうち、通知をした前記ノード装置の属性情報に係る前記最上ノード装置を、前記他のノード装置として前記記憶手段に記憶させする記憶制御手段を有することを特徴とする。
これによれば、管理装置は各属性情報に係る最新の最上ノード装置の情報を保持(管理)することが可能になる。
上記課題を解決するために、請求項22に記載の発明は、請求項18乃至請求項21のいずれか一項に記載の管理装置において、前記属性情報は、ノード装置がネットワークにおいて所属するネットワーク接続サービスグループを示す所属情報であることを特徴とする。
これによれば、属性情報をノード装置の所属情報とするため、ノード装置が自律的に接続態様を制御する際の影響をシステム全体に波及させることを防いで、できるだけ同じ所属情報である他のノード装置と接続等を行うことが可能になる。
上記課題を解決するために、請求項23に記載の発明は、請求項18乃至請求項22の
いずれか一項に記載の管理装置において、前記属性情報は、AS番号であることを特徴とする。
これによれば、属性情報をAS番号とするため、ノード装置が自律的に接続態様を制御する際の影響をシステム全体に波及させることを防いで、できるだけ同じAS番号である他のノード装置と接続等を行うことが可能になる。
上記課題を解決するために、請求項24に記載の発明は、コンピュータを、請求項18乃至請求項23のいずれか一項に記載の管理装置として機能させることを特徴とする。
上記課題を解決するために、請求項25に記載の発明は、配信情報を配信する情報配信装置と、前記配信情報を受信する複数のノード装置と、システムに参加する際に前記ノード装置から送信された参加要求を示す参加要求情報を受信する管理装置とを備えたツリー型ネットワークシステムであって、前記情報配信装置を最上位として前記複数のノード装置が複数の階層を形成しつつ通信経路を介してツリー状に接続され、前記情報配信装置により送信された前記配信情報が、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送される前記ツリー型ネットワークシステムにおける情報配信方法であって、前記管理装置が各前記ノード装置が所属する属性情報毎に、所定数のノード装置の装置情報を記憶する工程と、前記ノード装置が、前記ツリー型ネットワークシステムへ参加する際に前記管理装置に前記参加要求情報を送信する参加要求情報送信工程と、前記管理装置が当該ツリー型ネットワークシステムへ参加するべきノード装置から、前記参加要求情報を受信する要求情報受信工程と、前記管理装置が前記参加要求情報を送信したノード装置の属性情報を取得する属性情報取得工程と、前記管理装置が前記情報配信装置の装置情報と、前記記憶工程が記憶した前記ノード装置の装置情報のうち、取得した前記属性情報に基づいて装置情報を接続先候補情報として決定する接続先候補情報決定工程と、前記管理装置が前記決定した前記接続先候補情報を、前記参加要求情報を送信したノード装置に送信する接続先候補情報送信工程と、前記参加要求情報を送信したノード装置が、前記管理装置から送信された前記接続先候補情報を受信する前記接続先候補情報受信工程と、前記参加要求情報を送信したノード装置が、受信した前記接続先候補情報に係る前記ノード装
置又は前記情報配信装置に対して接続を要求する接続要求情報を送信する接続要求情報送信工程と、前記接続要求情報を受信した前記ノード装置が、前記接続要求情報受信手段が前記接続要求情報を受信したとき、自身に接続するべきか否かを判断する判断工程と、前記接続要求情報を受信した前記ノード装置が、前記接続要求情報の送信元であるノード装置を自身に接続すべきと前記判断手段が判断したとき、前記接続要求情報の送信元であるノード装置を接続して前記配信情報を転送するノード装置接続工程と、を有することを特徴とする。
本発明によれば、本実施形態によれば、システムに参加する各ノード装置が、かかる装置情報に基づいて上位適正が高いノード装置が親ノード装置となるよう互いに接続する構成としたので、より安定性の高いネットワークシステムを構築することが可能になる。
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、ツリー型のコンピュータネットワークシステムに対して本発明を適用した場合の実施形態である。
[1.ツリー型ネットワークシステムの構成]
始めに、図1を参照して、本実施形態にかかるツリー型ネットワークシステムの概要構成等について説明する。
図1は、本実施形態に係るツリー型ネットワークシステムにおける各装置の接続態様の一例を示す説明図である。なお、図1の例において、ツリー型ネットワークシステムSにおける各装置間の電気的な接続態様(例えば、どの装置と、どの装置の通信が確立されているかの接続関係)を示している。本実施形態では、本発明における受信装置としてのノード装置は、配信サーバ1から配信されたコンテンツを、ノード装置2に備えたバッファメモリに一時的に記憶させながら当該コンテンツを再生する。
このツリー型ネットワークシステムSは、図1に示すように、配信情報としてのストリーミングデータ等のコンテンツデータ(以下、単に「コンテンツ」と言う。)の配信元である配信サーバ1(情報配信装置)と、当該配信サーバ1から配信されたコンテンツを受信する複数のノード装置(ピア)2a、2b、2c、・・・・、2n、を備えて構成されており、ピアツーピア(Peer to Peer(P2P))方式のネットワークシステムとなっている。
また、ツリー型ネットワークシステムSは、配信サーバ1を最上位として複数のノード装置2a乃至2nが複数の階層を形成しつつ、各IPアドレスに基づき、複数の通信経路3a、3b、3c、・・・・、3nを介してツリー状に接続されることになる。
そして、配信サーバ1により配信されるコンテンツは、上位階層のノード装置2a及び2b等から下位階層のノード装置2g〜2n等に順次転送されることになる。なお、以下の説明において、ノード装置2a乃至2nのうち何れかのノード装置を示す場合には、便宜上、ノード装置2という場合がある。
なお、これら配信サーバ1及び複数のノード装置2a乃至2nは、IX(Internet eXchange)、ISP(Internet Service Provider)、DSL(Digital Subscriber Line)回線事業者(の装置)、FTTH(Fiber To The Home)回線事業者(の装置)、及び通信回線(例えば、電話回線や光ケーブル等)等によって、インターネット等のネットワークに、物理的に接続されており、当該配信サーバ1及び各ノード装置2a乃至2nには、固有の装置ID及びIP(Internet Protocol)アドレスが割り振られている。
また、管理サーバ100は、ノード装置2がいずれのネットワーク接続サービス提供者によってネットワークに接続されているかを示す提供者情報毎に、最も上位階層に接続されているノード装置の装置情報を記憶しているため、例えば、図2に示す如く、ノード装置2iが当該ネットワークシステムSに参加を希望する場合、つまり配信サーバ1が配信しているコンテンツの配信を希望する場合には、自分が接続されるべき上位階層のノード装置2の候補となるノード装置2を教えてもらうために、接続先候補要求Scを図中一点鎖線で示す如く管理サーバ100に対して送信する。そうすると、管理サーバ100は、ノード装置2iが接続しているネットワーク接続サービス提供者を示す提供者情報(以下、「属性情報」と言う。)に基づいて、ノード装置2iが接続されるべき上位階層のノード装置2としてノード装置2dを選び出し、当該ノード装置2dの装置情報(IPアドレスを含む)を、接続先候補通知(Nk{})としてノード装置2iに対して、図中二点鎖線で示す如く送信する。
そして、ノード装置2iは当該接続先候補通知(Nk{})に含まれる装置情報に基づいて、接続されるべき上位階層のノード装置2(図2に示す例に拠れば、ノード装置2d)に対して、図中点線で示す如く自己の装置情報を含む接続要求情報Srを送信して接続要求を行ない、これを受けたノード装置2dが自分がノード装置2iにコンテンツを転送すべきなのか否か、すなわち、互いの装置情報を比較してより上位階層に存在すべきノード装置2の上位適正を比較して、自身の上位適正のほうが高いと判断し、ノード装置2iにコンテンツを転送すべき状況と判断すれば通信経路3jを介したノード装置2iとノード装置2d間の接続を確立することができるようになっている。
すなわち、本実施形態におけるツリー型ネットワークシステムは、各ノード装置2の装置情報や上記属性情報に基づいてよりツリーの上流(上位階層)に存在すべき上位適正を決定し、当該上位適正に従ってシステム内における各ノード装置2の接続態様が各ノード装置2によって自律的に決定されることにより、各ノード装置2を最適に配置したネットワークシステムを構成することが可能になる。
[2−1.ノード装置の構成及び機能]
先ず、図3を参照して、ノード装置2の構成及び機能について説明する。尚、各ノード装置2の構成は同じである。
図3は、ノード装置2の概要構成例を示す図である。
各ノード装置2は、図3に示すように、演算機能を有するCPU,作業用RAM,各種データ及びプログラムを記憶するROM等から構成されたコンピュータとしての制御部11と、プログラム(本発明の処理プログラムを含む)等を記憶保存(格納)するためのHD等から構成された記録媒体としての記憶部12と、受信したコンテンツを一時蓄積する記憶手段としてのバッファメモリ13と、コンテンツに含まれるエンコードされたビデオデータ(映像情報)及びオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)するデコーダ部14と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部15と、当該映像処理部15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の表示部16と、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音声処理部17と、当該音声処理部17から出力されたオーディオ信号を音波として出力するスピーカ18と、ネットワークを通じて他のノード装置2や管理サーバ100及び配信サーバ1等との間の情報の通信制御を行なうための通信部19と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部11に対して与える入力部(例えば、操作パネル、或いは、マウス、キーボード等)20と、を備えて構成され、制御部11、記憶部12、バッファメモリ13、デコーダ部14、及び通信部19はバス21を介して相互に接続されている。
記憶部12は、親候補装置記憶手段及び子ノード装置記憶手段として機能し、後に詳述する基本処理にて、親候補ノード装置情報リストL1{}及び子ノード装置情報リストL2が生成され記憶される。
また、当該記憶部12には、ノード装置2の属性情報、階層情報、子ノード装置情報、IPアドレス情報、トップ情報及び配信能力情報等が装置情報として記憶されている。ここで、「属性情報」とは、上述したようにノード装置2がネットワークにおいて所属するネットワーク接続サービスグループを示す所属情報を示し、より具体的には、ノード装置2がいずれのネットワーク接続サービス提供者によってネットワークに接続されているかを示す提供者情報を示す。なお、一例として、各ノード装置がネットワークに参加するために接続している接続業者であるネットワーク接続サービス提供者を示すAS(Autonomous System)番号を属性情報として定める。
そして、「階層情報」とは、ツリー型ネットワークシステムSにおける階層数を示すものでありシステムに参加後に記憶部12に記憶される。また、「子孫ノード装置数情報」とは、自己の下流に接続されたノード装置(子孫ノード装置)の数を示す。なお、本実施形態においては、各ノード装置2に直接接続することができる子ノード装置の数を配信許容数として全て「2」とする。そして、「IPアドレス情報」とは、当該ノード装置2の宛先情報であるIPアドレスを示す。また、「トップ情報」とは、自身がツリー型ネットワークシステムSに参加するノード装置2のうち、同じ属性情報を有するノード装置2の中で、最も上位階層に位置する最上ノード装置としてのトップノード装置であるか否かを示すものであり、システムに参加後に記憶部12に記憶される。
そして、「配信能力情報」とはノード装置2のコンテンツを含む各種データ配信の配信能力を示すものであり、後に詳細に説明する。また、ノード装置2が当該ネットワークシステムSに参加する際に最初にアクセスする管理サーバ100のIPアドレス等の宛先情報も記憶される。
そして、制御部11におけるCPUが記憶部12等に記憶された処理プログラムを実行することにより、当該制御部12は、ノード装置2の上記各構成要素を制御しつつ、本発明の参加要求情報送信手段、接続先候補情報受信手段、接続要求情報送信手段、接続要求情報受信手段、判断手段、ノード装置接続手段、比較手段、親候補装置記憶手段、親装置選択手段、親候補装置記憶制御手段、親装置切断手段、最上ノード装置交代通知手段、子ノード装置記憶手段、子ノード装置選択手段、子ノード装置切断手段、子ノード装置記憶制御手段及び接続先候補情報送信手段として機能するようになっている。
[2−2.システム管理サーバ装置の構成及び機能]
次に、図4等を参照して、管理サーバ100の構成及び機能について説明する。
図4は、管理サーバ100の概要構成例を示す図である。
管理サーバ100は、図4に示すように、演算機能を有するCPU,作業用RAM,各種データ及びプログラムを記憶するROM等から構成されたコンピュータとしての制御部101と、各種データ,テーブル及びプログラム(本発明の管理プログラムを含む)等を記憶するHD等から構成された記憶部102と、ネットワークを通じて配信サーバ1及びノード装置2との間の通信制御を行うための通信部103と、を備えて構成され、これらの各構成要素はバス104を介して相互に接続されている。
なお、上記記憶部102には、ツリー型ネットワークシステムSに参加するノード装置2が所属する属性情報毎に、最も上位のノード装置2であるトップノード装置(最上ノード装置)の装置情報が記憶されている。更に、記憶部102には配信サーバ1の装置情報も記憶されている。
そして、制御部101におけるCPUが記憶部102等に記憶された管理プログラムを実行することにより、当該制御部101は、管理サーバ100の各構成要素を制御しつつ、本発明の記憶手段、記憶制御手段、参加要求情報受信手段、属性情報取得手段、接続先候補情報決定手段及び接続先候補情報送信手段として機能するようになっている。以下に、制御部101により実行される上記各手段としての機能について具体的に説明する。
[3.ツリー型ネットワークシステムの構築]
次に、図5乃至図7を参照して、ツリー型ネットワークシステムSの構築手法について説明する。
図5乃至図7は、ノード装置2tがツリー型ネットワークシステムSへ参加する様子を示す説明図であり、図5(A)は図5(B)に示すツリー型ネットワークシステムSにおける最下位層に接続されたノード装置2yとノード装置2zの記憶部12に記憶された親候補ノード装置情報リストL1{}の説明図である。
図5(B)に示す如く、最下位層に接続されたノード装置2y及びノード装置2zは、配信サーバ1から配信されているコンテンツを上位階層のノード装置2であるノード装置2xから受信している。以下の説明ではこのようなノード装置2xとノード装置2yとノード装置2zとの関係について、ノード装置2xをノード装置2y及びノード装置2zの「親ノード装置」と言い、ノード装置2y及びノード装置2zをノード装置2xの「子ノード装置」と言う。また、同じ親ノード装置(図の例ではノード装置2x)を持つノード装置2yとノード装置2zは互いに「兄弟ノード装置」と言う。
また、ノード装置2vは、配信サーバ1から配信されているコンテンツを下位階層のノード装置2であるノード装置2wに送信(転送)している。そしてこれを受けたノード装置2wは更に下位階層であるノード装置2xに送信(転送)している。このようにして最下位層に接続されたノード装置2y及びノード装置2zまでコンテンツが転送されていく。以下の説明では、このようなノード装置2zと、配信サーバ1から自身までの通信経路に存在する全てのノード装置2(ノード装置2x、2w及び2v)の関係について、ノード装置2x、2w及び2vを、ノード装置2zの「祖先ノード装置」と言う。また、ノード装置2vと、当該ノード装置2vの下位階層として接続されているノード装置2wから最下位層のノード装置2y及びノード装置2zまでのノード装置(ノード装置2w、2x、2y及び2z)と、の関係について、ノード装置2w、2x、2y及び2zをノード装置2vの「子孫ノード装置」と言う。なお、ノード装置2vの子孫ノード装置は、図5(B)に図示されているノード装置2w、2x、2y及び2zのみでなく、図中点線で示すノード装置2v(及びノード装置2w)からの通信経路上にある図示しないノード装置2v(及びノード装置2w)の下位に接続されたノード装置(及び当該ノード装置2以降に接続されているノード装置2)も含み、全部で「16」のノード装置2vの子孫ノード装置が存在することとなる。従って、ノード装置2vの子孫ノード装置数は「16」となる。
そして、図5(A)に示す如く、ノード装置2y及びノード装置2zの記憶部12には、配信サーバ1から自身までの通信経路に存在する全てのノード装置2、すなわち祖先ノード装置の装置情報が親候補ノード装置情報リストL1{}(親候補装置情報)として記憶されている。ここで、親候補ノード装置とは、親ノード装置となるべきノード装置2の候補であり、親候補ノード装置情報リストL1{}には、親候補ノード装置の装置情報が記憶されている。この装置情報は、システムに参加する際に管理サーバ100から受信する接続先候補通知Nk{}に含まれる接続先候補のノード装置2の装置情報を初めとして、システムSに参加中において、システムSに参加している他のノード装置2にて行われる後に詳述する各種処理によって、当該他のノード装置2から送信される接続先候補通知Nk{}に含まれる接続先候補のノード装置2の装置情報を、親候補ノード装置情報リストL1{}に追加して記憶する。また、自身が後に詳述する各種処理を行った場合にも、親候補ノード装置情報リストL1{}に親候補ノード装置の装置情報を追加や削除等の更新を行なう。
図5(A)に示す例によれば、ノード装置2yとノード装置2zは、親候補ノード装置情報リストL1{}に、ノード装置2v、ノード装置2w、ノード装置2x、ノード装置2y及びノード装置2zの装置情報を記憶している。
また、管理サーバ100の記憶部102には、最上ノード装置としてのトップノード装置の装置情報が各属性情報毎に記憶されている。より具体的には、例えば図5(C)に示す如く属性情報「A1」のトップノード装置がノード装置2v、属性情報「A2」のトップノード装置がノード装置2w、属性情報「A3」のトップノード装置がノード装置2x、そして属性情報「A4」のトップノード装置がノード装置2zと、それぞれの属性情報毎にトップノード装置の装置情報が記憶されている。
[3−1.優先順位]
ここで、ツリー型ネットワークシステムSにおける優先順位について、図5(A)に示す親候補ノード装置情報リストL1{}を参照して説明する。
ツリー型ネットワークシステムSにおいて、以下の条件に当てはまるノード装置ほど、上流にあるべきノード装置としての優先順位が高くなる。<1>配信能力が高い。<2>階層数が小さい(既に上流に位置している。)。<3>子孫ノード装置の数が多い。<4>トップノード装置である。
ここで、条件<1>の配信能力とはどのようなものかについて説明する。ノード装置2に付帯する通信経路3は、有効帯域が大きいほど速くコンテンツを転送することができたり、また、装置自身の処理能力が高いと、速くコンテンツを転送することができたり、転送速度が一定であるならば接続可能となるノード装置の数が増やすことができる。
また、各ノード装置2の連続接続時間については、システムSに参加している時間が長いほうがこれからも長く接続し続ける可能性が高く、安定性が高いと評価できる。既に受信したコンテンツデータであって未だバッファメモリ内に所持しているコンテンツデータ量が多い方が他のノード装置へ安定して配信することができる。よって、配信能力を、ノード装置2に付帯する通信経路3の有効帯域、装置自身の処理能力、連続接続時間、バッファメモリ内に所持しているコンテンツデータ量に基づいて決定すると良い。
本実施形態では、配信能力を、ノード装置2に付帯する通信経路3の有効帯域、装置自身の処理能力及び連続接続時間に基づいて決定することとする。
さらに、上流にあるべきノード装置の優先順位について、図5(A)に示す親候補ノード装置情報リストL1{}に示される装置情報を用いて説明すると、ノード装置2vが配信能力情報「4」で最も配信能力が高く(条件<1>)、現時点では階層情報で示す階層数が小さく(条件<2>)子孫ノード装置の数が多く(条件<3>)、現在のトップノード装置である(条件<4>)ため、上流にあるべきノード装置2の優先順位が最も高い。したがって、図5(B)に示すツリー型ネットワークシステムSにて最も上流に位置している。
なお、ノード装置2vの子孫ノード装置は、図5(B)に図示されているノード装置2w、2x、2y及び2zのみでなく、図中点線で示すノード装置2v(及びノード装置2w)からの通信経路上にある図示しないノード装置2v(及びノード装置2w)の下位に接続されたノード装置も含み、全部で「16」のノード装置2vの子孫ノード装置が存在することとなる。従って、ノード装置2vの子孫ノード装置数は「16」となる。
このようにして以下、配信能力や子孫ノード装置の数等に基づいて決定された優先順位に従ってノード装置2w、ノード装置2x、ノード装置2y及びノード装置2zと順番に接続されシステムSを構築する。
より具体的には、各ノード装置2が記憶部12に記憶した親候補ノード装置情報リストL1{}のうち、接続を試みる親ノード装置を決定する際には、上述した優先順位の条件に、自己の属性情報を考慮して定めた「上位優先順位」に従って親ノード装置を決定する。また、各ノード装置2が子ノード装置を決定する際にも、記憶部12に記憶した子ノード装置情報リストL2{}のうち、自己の属性情報と上述した優先順位に基づいて決定された「下位優先順位」に従って子ノード装置を決定する。すなわち、属性情報とはノード装置2の所属するネットワーク接続サービスグループであって、言わばノード装置2の接続地域を示すものであるため、同じ属性情報を有するノード装置2同士で接続することで、通信負荷が相対的に小さい(例えば、中継数が少ない、言い換えれば、ネットワーク距離が近い)通信経路を介して互いに接続されるようにしたので、例えば、特定のIPルータ等に負荷(アクセス)が集中することを軽減し、システムの運用効率の向上を実現することができるのである。なお、「上位優先順位」及び「下位優先順位」については、以下の「3−2.ツリー型ネットワークシステムSへの参加」の説明にて詳述する。
[3−2.ツリー型ネットワークシステムへの参加]
図6を参照してノード装置2がツリー型ネットワークシステムSに参加する際の手法について説明する。
図6(A)は、図6(B)に示すツリー型ネットワークシステムSに参加する際の接続要求情報Srに含まれるノード装置2tの装置情報の説明図である。図6(C)は、接続要求情報Srを受信したノード装置2xの記憶部12に記憶された子ノード装置情報リストL2{}の説明図である。
いま、新たにシステムSに参加するノード装置2tは、管理サーバ100に対して接続先候補要求Scを図中一点鎖線で示す如く送信する。なお、ノード装置2tは、工場出荷時等に予め管理サーバ100のIPアドレス等の宛先情報を記憶しているものとし、接続先候補要求Scには、ノード装置2tの装置情報が含まれるものとする。そして、これを受けた管理サーバ100は、ノード装置2tが接続を要求すべきノード装置2のIPアドレスを含む装置情報を接続先候補Nkとして含む接続先候補通知(Nk{})をノード装置2tに送信する。
ここで、管理サーバ100は、接続先候補要求Scに含まれるノード装置2tの装置情報の属性情報と同じ属性情報のトップノード装置を接続先候補Nk{}とする。図6(A)及び図5(C)に拠れば、ノード装置2tの属性情報は「A3」であるため、管理サーバ100は、記憶部102を参照して属性情報「A3」に対応するトップノード装置としてのノード装置2xの装置情報含む接続先候補通知(Nk{})をノード装置2tに送信する。
そしてこれを受けたノード装置2tは、ノード装置2xに対して図中点線で示す如く接続要求情報Srを送信する。なお、接続要求情報Srには、ノード装置2tの装置情報が含まれるものとする。
ノード装置2tから接続要求情報Srを受信したノード装置2xは、接続要求情報Srに含まれるノード装置2tの装置情報と自己の装置情報とを比較して、どちらが親ノード装置として適切であるかを検討する(上位適正の検討)。
そこで、互いの配信能力と下流に接続されたノード装置2(すなわち、子孫ノード装置)の数とを比較して、「上位適正」を、<1>配信能力が高いほうが上位適正が高く、<2>配信能力が同じであれば子孫ノード装置の数が少ないノード装置のほうが上位適正が高いとして判断する。従って、図6に示す例によれば、ノード装置2tの配信能力は「1」であって、ノード装置2xの配信能力は「2」であるので、ノード装置2xのほうが上位適正が高いことがわかる。
しかし、ノード装置2xの配信許容数は「2」なので、現在の子ノード装置であるノード装置2y及び2zで既に配信許容数を満たしており、これ以上ノード装置2tを子ノード装置として接続することができない。従って、ノード装置2xは、記憶部12に記憶した子ノード装置情報リストL2{}(図6(C))を参照して、各ノード装置2の装置情報を比較して、子ノード装置としての優先順位(下位優先順位)が最も低いノード装置2を切断する。
そこで、各ノード装置2の配信能力と下流に接続されたノード装置2(すなわち、子孫ノード装置)の数とを比較して、「下位適正」(子ノード装置としての適正)を、<1>配信能力が高いノード装置2が下位適正は高く、<2>配信能力が同じであれば子孫ノード装置の数が多いノード装置2が下位適正は高い。として定め、これを用いて、「下位優先順位」を、<1>同じ属性情報かつ下位適正の最も高いノード装置2。<2>異なる属性情報かつ下位適正の最も高いノード装置2。<3>同じ属性情報のノード装置2。<4>異なる属性情報のノード装置2。の順に従って決定する。
従って、図6に示す例によれば、ノード装置2xと同じ属性情報「A3」であって、下位適正の高いノード装置2yが最も優先順位が高く、次いで、属性情報は異なるが下位適性の高いノード装置2z、そして最後に同じ属性情報であるが下位適正が低いノード装置2tが最も下位優先順位が低い。従って、ノード装置2xは最も下位優先順位が低いノード装置2tとの接続を切断する。このとき、ノード装置2xはノード装置2tの親候補として、自己が所持する子ノード装置情報リストL2{}(図6(C))を接続先候補Nkとして含む接続先候補通知(Nk{})をノード装置2tに送信する。
そしてこれを受けたノード装置2tは、当該接続先候補通知(Nk{})に含まれる接続先候補Nkを親候補ノード装置情報リストL1{}に追加し、当該親候補ノード装置情報リストL1{}に含まれるノード装置2のうち、上位優先順位の最も高いノード装置2を親ノード装置として当該装置に接続要求情報Srを送信して接続を要求する。そして、図7(A)に示す如く自己の親ノード装置として最も適切なノード装置2yと接続することができる。図7(A)は、図7(B)に示すツリー型ネットワークシステムSに参加が完了したノード装置2tの記憶部12に記憶された親候補ノード装置情報リストL1{}の説明図である。
なお、上位優先順位の最も高いノード装置2(親ノード装置として決定すべきノード装置)は、上記「3−1.優先順位」にて説明した配信能力や子孫ノード装置数等に基づく優先順位と自己の属性情報を考慮して決定する。より具体的には、「上位優先順位」を、<1>自分より上位適正の高いノード装置2。<2>自分と同じ属性情報をもつノード装置2。<3>なるべく自分に階層情報が近いノード装置2。の順に従って決定する。
なお、「自分より上位適正が高い」とは、自身の上位適正よりも上位適正が高いか否かだけを判定するものであり、“自身が知っているノード装置2の中から最も上位適正が高いノード装置を選ぶ”ものではない。つまり、本実施形態によるネットワーク接続方法を用いると、上流に位置するノード装置2は比較的上位適正が高いものが接続されるよう構成される。従って、もし単純に“自身が知っているノード装置2の中から最も上位適正が高いノード装置を選ぶ”としてしまうと、あるノード装置2が脱退した時にその子孫ノード装置が全員上流の端末に接続しようとして接続の集中が発生してしまう。従って、上記条件<1>は、自身の上位適正よりも上位適正が高いか否かだけを判定するよう構成し、条件<2>及び条件<3>によって厳正に上位優先順位を決定できるよう構成する。
また、条件<3>の「階層情報が近い」とは、階層数の差が小さいことを言い、例えば、兄弟ノード装置同士であれば、階層数が同じなので、階層数の差は0となり、最も階層情報が近いといえる。
従って、上位優先順位は、自分より上位適正が高く(条件<1>)、かつ自分と同じ属性情報をもち(条件<2>)、かつなるべく自分に階層情報が近い(条件<3>)ノード装置2が上位優先順位が最も高く、次いで、自分より上位適正が高く(条件<1>)、かつ自分と同じ属性情報をもつ(条件<2>)ノード装置2、自分より上位適正が高く(条件<1>)、かつなるべく自分に階層情報が近い(条件<3>)ノード装置2、自分より上位適正が高い(条件<1>)ノード装置2、の順番で上位優先順位が徐々に低くなる。
以上説明したように、各ノード装置2が他のノード装置2の属性情報と自己の属性情報とを照らし合わせて、互いに比較して各ノード装置2が自律的にネットワークを構築することにより、より信頼性の高いツリー型ネットワークシステムSを構築することができる。
[3−3.ツリー型ネットワークシステムの構築例]
次に、図8乃至図19等を参照して、ツリー型ネットワークシステムSが構築されていく例について更に具体的に説明する。なお、以下の説明において、属性が「AX」(Xは1乃至4)、配信能力が「PX」(Xは1乃至4)のノード装置をノード装置2-AX-PXとして表す。なお、配信能力は「P1」、「P2」、「P3」、「P4」と順に大きくなるものとする。
図8乃至図19の右枠内に示す複数の新規参加ノード装置が、当該図8乃至図19の右枠内を図中上から下へ示す順でシステムSに参加する際の動作について説明する。
まず、図8及び図9に示す如く、ノード装置2-A1-P3(属性が「A1」、配信能力が「P3」)は、管理サーバ100に接続先候補要求Scを送信すると、当該管理サーバ100から接続先候補通知(Nk{})として配信サーバ1のIPアドレスを受信し、これに基づいて配信サーバ1と接続してコンテンツの配信を受ける。一方、管理サーバ100は、ノード装置2-A1-P3の属性情報を属性「A1」のトップノード装置のとして属性情報として記憶部102に記憶させる。
続いて、図10に示すようにノード装置2-A2-P2が管理サーバ100に接続先候補要求Scを送信し、管理サーバ100は配信サーバ1の配信許容数に未だ余裕があるので、配信サーバ1のIPアドレスを接続先候補通知(Nk{})としてノード装置2-A2-P2に送信する。そして、ノード装置2-A2-P2の属性情報を属性「A2」のトップノード装置の属性情報として記憶部102に記憶させる。ノード装置2-A2-P2は、配信サーバ1と接続してコンテンツの配信を受ける。
続いて、図10及び図11に示すように、ノード装置2-A1-P2が参加する際には、管理サーバ100が属性「A1」のトップノード装置であるノード装置2-A1-P3の属性情報をノード装置2-A1-P2に接続先候補通知(Nk{})として教え、これを受けたノード装置2-A1-P2は、属性「A1」のトップノード装置であるノード装置2-A1-P3に対して接続要求情報Srを送信する。そして、接続要求情報Srを受信した属性「A1」のトップノード装置であるノード装置2-A1-P3は、接続要求情報Srの送信元であるノード装置2-A1-P2と自己(ノード装置2-A1-P3)との上位適正を比較する。その結果配信能力の高いノード装置2-A1-P3がそのまま上位を維持してノード装置2-A1-P2を子ノード装置として接続し、当該ノード装置2-A1-P2にコンテンツを転送する(図11を参照。)。
続いて、ノード装置2-A4-P2が参加する際には、当該ノード装置2-A4-P2から接続先候補要求Scを受信した管理サーバ100は、記憶部102に属性「A4」のトップノード装置を記憶していないので、配信サーバ1の宛先情報等を含む装置情報を接続先候補通知(Nk{})として教える。
そしてこれを受けたノード装置2-A4-P2は、ノード装置2-A1-P3に対して接続要求情報Srを送信する。そして、接続要求情報Srを受信したノード装置2-A1-P3は、接続要求情報Srの送信元であるノード装置2-A4-P2と自己(ノード装置2-A1-P3)との上位適正を比較する。その結果配信能力の高いノード装置2-A1-P3がそのまま上位を維持してノード装置2-A4-P2を子ノード装置として接続し、当該ノード装置2-A4-P2にコンテンツを転送する。
次に、図11及び図12に示すように、新たにノード装置2-A2-P4がシステムSに参加すべく、接続先候補要求Scを管理サーバ100に送信し、これを受けた管理サーバ100は、属性「A2」のトップノード装置であるノード装置2-A2-P2の属性情報を接続先候補通知(Nk{})として教える。そしてこれを受けたノード装置2-A2-P4は、ノード装置2-A2-P2に対して接続要求情報Srを送信する。そして、接続要求情報Srを受信した属性「A2」のトップノード装置であるノード装置2-A2-P2は、接続要求情報Srの送信元であるノード装置2-A2-P4と自己(ノード装置2-A2-P2)との上位適正を比較する。その結果、配信能力の高いノード装置2-A2-P4が属性「A2」の新たなトップノード装置となって(トップノード装置交代)、配信サーバ1と接続し、ノード装置2-A2-P2を子ノード装置として接続し、当該ノード装置2-A2-P2に対してコンテンツを転送する(図12を参照。)。そして、ノード装置2-A2-P2は、属性「A2」のトップノード装置がノード装置2-A2-P4に交替したことを管理サーバ100に通知する。
そして、図13に示す如く、次の新規参加ノード装置2-A1-P4も同様にして管理サーバ100から同一属性である属性「A1」のトップノード装置であるノード装置2-A1-P3の属性情報を接続先候補通知(Nk{})として受信し、当該ノード装置2-A1-P3に対して接続要求を行なう。そして、これを受けたノード装置2-A1-P3では、上記と同様にしてノード装置2-A1-P4と自己(ノード装置2-A1-P3)との上位適正を比較する。その結果、配信能力の高いノード装置2-A1-P4が属性「A1」の新たなトップノード装置となって(トップノード装置交代)、ノード装置2-A1-P3を子ノード装置として接続し、当該ノード装置2-A1-P3に対してコンテンツを転送する。そして、ノード装置2-A1-P3は、属性「A1」のトップノード装置がノード装置2-A1-P4に管理サーバ100に交替したことを通知する。
同様にして新たにノード装置2-A1-P3、ノード装置2-A3-P1がシステムSに参加後の接続態様を図14に示す。
続いて、新たにノード装置2-A1-P1がシステムSに参加すべく、接続先候補要求Scを管理サーバ100に送信し、これを受けた管理サーバ100は、属性「A1」のトップノード装置であるノード装置2-A1-P4の属性情報を接続先候補通知(Nk{})として教える。そしてこれを受けたノード装置2-A1-P1は、ノード装置2-A1-P4に対して接続要求情報Srを送信する。そして、接続要求情報Srを受信した属性「A1」のトップノード装置であるノード装置2-A1-P4は、接続要求情報Srの送信元であるノード装置2-A1-P1と自己(ノード装置2-A1-P4)との上位適正を比較する。その結果配信能力の高いノード装置2-A1-P4がそのまま上位を維持することになる。しかし、当該ノード装置2-A1-P4は、既に子ノード装置と2つのノード装置2-A1-P3を接続済みであるため、ノード装置2-A1-P1を子ノード装置としてしまうと、配信許容数「2」を超えてしまう。したがって、ノード装置2-A1-P4は、2つのノード装置2-A1-P3とノード装置2-A1-P1の下位優先順位を比較して最も下位優先順位の低いノード装置2であるノード装置2-A1-P1を切断する(図15を参照。)。そして、ノード装置2-A1-P4はノード装置2-A1-P1を切断する際に、自己の子ノード装置情報リストL2{}を接続先候補通知(Nk{})としてノード装置2-A1-P1に対して送信する。そして、これを受けたノード装置2-A1-P1は、当該接続先候補通知(Nk{})に含まれる装置情報を親候補ノード装置情報リストL1{}として新たに記憶し、最も上位優先順位が高いノード装置2として選び出したノード装置2-A1-P3に対して接続要求を行ない、当該ノード装置2-A1-P3の子ノード装置として接続する。
また、図14乃至図15に示すように、次の新規参加ノード装置2-A4-P3も同様にして管理サーバ100から同一属性である属性「A4」のトップノード装置であるノード装置2-A4-P2の属性情報を接続先候補通知(Nk{})として受信し、当該ノード装置2-A4-P2に対して接続要求を行なう。そして、これを受けたノード装置2-A4-P2では、上記と同様にしてノード装置2-A4-P3と自己(ノード装置2-A4-P2)との上位適正を比較する。その結果、配信能力の高いノード装置2-A4-P3が属性「A4」の新たなトップノード装置となって(トップノード装置交代)、ノード装置2-A1-P3に接続し、ノード装置2-A4-P4を子ノード装置として接続し、当該ノード装置2-A4-P2に対してコンテンツを転送する。そして、ノード装置2-A4-P2は、属性「A1」のトップノード装置がノード装置2-A4-P3に管理サーバ100に交替したことを通知する。
そして、図15の右枠内に示す新規参加ノード装置のうち、最後のノード装置2-A4-P4の参加直後の状態を図16に示す。
同図によれば、最後に参加したノード装置2-A4-P4は、自分より配信能力の低いノード装置2-A1-P3を親ノード装置としている。従って、ノード装置2-A4-P4は自己の記憶部12に記憶した親候補ノード装置情報リストL1{}から最も上位優先順位の高いノード装置として選び出したノード装置2-A1-P4に接続要求情報Srを送信する(図17を参照。)。しかし、当該ノード装置2-A1-P4は、既に子ノード装置として2つのノード装置2-A1-P3とノード装置2-A1-P4を接続済みであるため、ノード装置2-A4-P4を子ノード装置としてしまうと、配信許容数「2」を超えてしまう。したがって、最も下位優先順位の低いノード装置であるノード装置2-A1-P3を切断する(図18を参照。)。
そして、ノード装置2-A1-P4はノード装置2-A1-P3を切断する際に、自己の子ノード装置情報リストL2{}を接続先候補通知(Nk{})としてノード装置2-A1-P3に対して送信する。そして、これを受けたノード装置2-A1-P3は、当該接続先候補通知(Nk{})に含まれる装置情報を親候補ノード装置情報リストL1{}として新たに記憶し、最も上位優先順位が高いノード装置2-A1-P4を親ノード装置として選択し接続要求情報Srを送信して当該ノード装置2-A1-P4からコンテンツを転送してもらう(図19を参照。)。
このように、各ノード装置2が他のノード装置と上位適正、上位優先順位及び下位優先順位を互いに比較して自律的にネットワークを構築することにより、より信頼性の高いツリー型ネットワークシステムSを構築することができる。
[4.各ノード装置及び管理サーバにおける具体的処理]
続いて、各ノード装置2及び管理装置100における各種処理についてフローチャートを用いて具体的に説明する。
[4-1.各ノード装置における基本処理]
続いて、図20に示すフローチャートを用いて各ノード装置2における処理について具体的に説明する。なお、当該フローチャートにより示される処理は、記憶部12或いは制御部11内の図示しないROM等に予め記憶されているプログラム(処理プログラムを含む)に基づいて当該制御部11の制御に基づいて実行されるものであり、当該処理を実行するノード装置2をノード装置2Nとして説明する。
先ず、ツリー型ネットワークシステムSに参加する際に、ノード装置2Nは親ノード装置情報Bと親候補ノード装置情報リストL1{}と子ノード装置情報リストL2{}を記憶部12に生成する(ステップS1、ステップS2)。制御部11が親候補装置記憶制御手段及び子ノード装置記憶制御手段として機能すると共に、記憶部12と共に親候補装置記憶手段、子ノード装置記憶手段として機能するためである。記憶部12内に既に親ノード装置情報Bと、リストL1{}及びL2{}が存在する場合は、古い情報であるため削除して新たに生成しなおす。このように親ノード装置情報Bと、リストL1{}及びL2{}は処理開始時に必ず初期化するため、記憶部12でなく作業用のRAM内に生成しても良い。なお、この時点では当該親ノード装置情報Bと、リストL1{}及びL2{}は空の状態である。
続いて、制御部11は参加要求情報送信手段として機能し、管理サーバ100に対して、システムに参加するために、コンテンツの転送(送信)をしてもらうための接続先のノード装置2を問い合わせるべく、ノード装置2Nの装置情報を含む接続先候補要求Sc(参加要求情報)を送信する(ステップS3)。次いで、ノード装置2N内に具備する内蔵時計等をタイマーとして用いて、当該タイマーを0として(リセットして)時間測定を開始する(ステップS4)。
そして、ノード装置2Nが接続すべき1以上のノード装置2の装置情報を接続先候補通知(Nk{})を受信したか否かを判定(ステップS5)する。なお、接続先候補通知(Nk{})は、上記参加要求情報としての接続先候補要求Scを受信した管理サーバ100から、或いは、後に詳述する接続処理が行われたノード装置2から、或いは、親候補ノード装置情報リストL1{}に含まれる何れかのノード装置2にて後に詳述する子ノード装置情報更新処理が行なわれることにより、当該処理が行なわれたノード装置2から送信される。
そして、制御部11が接続先候補情報受信手段として機能し、接続先候補通知(Nk{})を受信した場合(ステップS5:Yes)には、制御部11は親候補装置記憶手段として機能し、受信した接続先候補通知(Nk{})に含まれる接続先候補のノード装置の装置情報を、記憶部12の親候補ノード装置情報リストL1{}に追加(ステップS6)して、ステップS5に移行する。
図5及び図6を用いて具体的に説明すると、新たにシステムに参加するノード装置2tの属性は「A3」であるので、管理サーバ100から接続先候補通知(Nk{})として、属性「A3」のトップノード装置であるノード装置2xのIPアドレスを含むノード装置2xの装置情報(属性情報、配信能力情報、階層情報、子ノード装置情報、トップ情報およびIPアドレス情報)を受信し、これをノード装置2tに設けた記憶部12に親候補ノード装置情報リストL1{}に追加(記憶)する。
そして、ステップS5の判定の結果、接続先候補通知(Nk{})を受信していない場合(ステップS5:No)には、コンテンツを受信したか否かを判定(ステップS7)し、受信していない場合(ステップS7:No)には、ステップS8に移行してタイムアウト処理を行なう。すなわち、ステップS4で測定を開始した時間が所定時間を経過したか否か(タイムアウト)を判定し(ステップS8)、タイムアウトでなければ(ステップS8:No)、ステップS5に移行して、ステップS7にて引き続きコンテンツを受信するようになっている。
他方、判定の結果タイムアウトである場合(ステップS8:Yes)には、親候補ノード装置情報リストL1{}が空か否かを判定し(ステップS9)、空である場合(ステップS9:Yes)には、ステップS3に移行して管理サーバ100に、再度、接続先候補要求Scを送信する。一方、親候補ノード装置情報リストL1{}が空で無い場合(ステップS9:No)には、制御部11は親装置選択手段として機能し、親候補ノード装置情報リストL1{}で最も上位優先順位が高いノード装置2を親ノード装置(親装置)として選択して記憶部12の親ノード装置情報Bに装置情報を記憶する(ステップS10)。そして、制御部11は親候補ノード装置情報リストL1{}から親ノード装置として選択されたノード装置2(親ノード装置情報B)を削除する(ステップS11)。そして制御部11は、接続要求情報送信手段として機能し、記憶部12の親ノード装置情報Bに格納された装置情報に係る親装置としてのノード装置2に対して接続要求情報Srを送信(ステップS12)し、ステップS4の処理に移行する。
図6を用いて具体的に説明すると、新たにシステムに参加するノード装置2tの記憶部12の親候補ノード装置情報リストL1{}には、管理サーバ100から受信した接続先候補であるノード装置2xの装置情報が記憶されているので、ノード装置2tは、当該ノード装置2xの装置情報に含まれるIPアドレスに基づいて、ノード装置2xに対して接続要求情報Srを送信する。そして、ノード装置2xとの接続が成功すると、ノード装置2tはノード装置2xからコンテンツの転送を受けることができる。なお、接続要求情報Srを受信したノード装置2xにて行われる接続処理については後に詳述する。
また、ステップS7の判定の結果、コンテンツを受信している場合(ステップS7:Yes)には、ステップS13に移行して接続要求情報Srを受信したか否かを判定(ステップS13)し、制御部11が接続要求情報受信手段として機能し、接続要求情報Srを受信した場合(ステップS13:Yes)には、後に詳述する接続処理を行なう(ステップS14)。他方、受信していない場合(ステップS13:No)には、子ノード装置情報変更通知を受信したか否かを判定する(ステップS15)。
そして、判定の結果、子ノード情報変更通知を受信した場合(ステップS15:Yes)には、後に詳述する子ノード装置情報更新処理を行ない(ステップS16)、他方、子ノード情報変更通知を受信していない場合(ステップS15:No)には、ユーザによって入力部20が操作されることにより、システムからの脱退が選択されたか否かを判定し(ステップS17)、システムからの脱退が選択された場合(ステップS17:Yes)には、全ての接続を切断(ステップS18)し処理を終了する。他方、システムからの脱退が選択されていない場合(ステップS17:No)には、ステップS5に移行してステップS5乃至ステップS17の処理を繰り返し行なう。
[4-2.管理サーバにおける接続先候補通知処理]
続いて、管理サーバ100において行われる接続先候補通知処理について図21に示すフローチャートを用いて説明する。当該接続先候補通知処理は、記憶部102或いは制御部101内の図示しないROM等に予め記憶されているプログラム(管理プログラムを含む)に基づいて当該制御部101の制御に基づいて実行されるものであり、管理サーバ100の制御部101が参加要求情報受信手段として機能し、上述した上記図20のフローチャートを用いて説明した「4-1.各ノード装置における基本処理」を実行中のノード装置2Nから参加要求情報としての接続先候補要求情報Scを受信することにより開始される。
先ず、制御部101は属性情報取得手段として機能し、接続先候補要求情報Scの送信元のノード装置2Nの属性情報を取得する。本実施形態では、ノード装置2Nの属性情報は当該接続先候補要求情報Scに含まれるものとするが、接続先候補要求情報Scを受信後、接続先候補要求情報Scの送信元のノード装置2に属性情報を要求するよう構成してもよい。
そして、制御部101は接続先候補情報決定手段として機能し、システムSに参加中のノード装置2にノード装置2Nと同じ属性情報を有するノード装置2が存在するか否かを判定する(ステップS30)。つまり、管理サーバは、各属性の最上ノード装置(トップノード装置)の装置情報を記憶部102に記憶しているので(記憶手段)、ノード装置2Nと同じ属性の最上ノード装置(トップノード装置)の装置情報が記憶部102に記憶されていれば、システムSに参加中のノード装置2にノード装置2Nと同じ属性に属しているノード装置2が存在すると判断することができる。例えば、図5(C)に示す各属性毎のトップノード装置の装置情報の一例に拠れば、ノード装置2tと同じ属性「A3」のノード装置2xの装置情報が記憶されているので、ノード装置2tと同じ属性であるノード装置2が存在すると判定される。
また図8に示すようにシステムSに参加しているノード装置2がない場合には、最初に参加するノード装置2-A1-P3は、システム中に同じ属性情報を有するノード装置2がないと判定される。さらに、図9及び図10に示す如く、次に参加するノード装置2-A2-P2の場合は、管理サーバ100の記憶部102に当該ノード装置2-A2-P2と同じ属性「A2」のトップノード装置の装置情報が記憶されていないので、システム中に同じ属性を有するノード装置2がないと判定される。
そしてこのように、システム中に同じ属性を有するノード装置2がないと判定された場合(ステップS30:No)には、配信サーバ1の装置情報を接続先候補Nk{}とする(ステップS31)。なお、図8に示すようにシステムSに参加しているノード装置2がない場合にも、最初に参加するノード装置2-A1-P3は、図9に示すように、配信サーバ1と直接接続するしかないので、配信サーバ1の装置情報を接続先候補Nk{}とするよう構成する。このように、管理サーバ100は配信サーバ1の配信許容数を予め把握していなくても、システム中に同じ属性を有するトップノード装置があるか否かのみを判定するだけでよく、同じ属性のトップノード装置を記憶していない場合には、配信サーバ1の装置情報を接続先候補Nk{}とする。その結果、これを受けたノード装置2が配信サーバ1に接続を試みることによって、配信サーバ1の配信許容数を超えることとなってしまった場合であっても、配信サーバ1自身が「子ノード装置情報更新処理」を実行することにより最も下位優先順位の低いノード装置2を切断するよう構成する。
他方、ステップS30の判定において、接続先候補要求Scに含まれるノード装置2Nの属性情報に基づいて、システム中に同じ属性を有するノード装置2があると判定された場合(ステップS30:Yes)には、当該トップノード装置の装置情報を接続先候補Nk{}とする。
そして、制御部101は、接続先候補情報送信手段として機能し、接続先候補要求Scを送信してきた送信元のノード装置2Nに対して、接続先候補Nk{}を含む接続先候補通知(Nk{})を送信(ステップS33)して処理を終了する。
[4-3.各ノード装置における接続処理]
続いて、各ノード装置2において行われる接続処理について図22に示すフローチャートを用いて説明する。当該接続処理は、ノード装置2が、上記図20のフローチャートを用いて説明した「4-1.各ノード装置における基本処理」を実行した他のノード装置2から接続要求情報Srを受信することにより開始される。なお、ここでは上記処理を実行したノード装置2Nから接続要求情報Srを受信したノード装置2によって行なわれる接続処理として説明する。
先ず、自身のノード装置(自ノード装置)をノード装置2Sとして定義し(ステップS40)、当該ノード装置2Sの記憶部12に記憶されている親ノード装置情報B及び親候補ノード装置情報リストL1{}を接続先候補Nk{}とする(ステップS41)。つまり、ノード装置2Sは自己の下位ノード装置として接続するノード装置2Nに自分の持っている親ノード装置情報B及び親候補ノード装置情報リストL1{}を接続先候補Nk{}として教えることにより、ノード装置2Nは、自分の直系のノード装置2、すなわち配信サーバ1から自己に至るまでのノード装置2の装置情報を知って記憶部12の親候補ノード装置情報リストL1{}に記憶させることができるのである(詳細はステップS6を参照。)。
この処理の趣旨は、ノード装置2Sは自己の下位ノード装置として接続するノード装置2Nに対して、直系のノード装置2の装置情報を教えることなので、厳密には、ノード装置2Sの親候補ノード装置情報リストL1{}に含まれるノード装置2Sの兄弟のノード装置2の装置情報は親候補ノード装置情報リストL1{}から除いて、接続先候補Nk{}としても良い。
そして、ノード装置2Nに接続先候補通知(Nk{})を送信する(ステップS42)。このとき送信された接続先候補通知(Nk{})は、上述した基本処理を実行しているノード装置2NによりステップS5の処理にて受信の判定対象となる。
続いて、制御部11は判断手段及び比較手段として機能し、接続要求情報Srの送信元であるノード装置2Nを自身に接続するべきか否かを判断するために、ノード装置2Nの上位適正とノード装置2Sの上位適正とを比較し、ノード装置2Nの方が上位適正が高いか否かを判定する(ステップS43)。すなわち、ノード装置2Nの方がノード装置2Sよりも配信能力が高いか、また、配信能力が同じならばノード装置2Nの方がノード装置2Sよりも下流のノード装置数が少ないか、を判定する。
判定の結果、ノード装置2Nの方が上位適正が高いと判定されなかった場合(ステップS43:No)、つまりノード装置2S自身の上位適正が、接続要求情報Srの送信元であるノード装置2Nの上位適性以上である場合には、接続要求情報Srの送信元であるノード装置2Nを自身に接続するべきと判断し、制御部11はノード装置接続手段として機能し、ノード装置2Nがノード装置2Sの子ノード装置として接続して、言い換えると、ノード装置2Sがノード装置2Nの親ノード装置となって、子ノード装置としてのノード装置2Nに対してコンテンツの転送を開始する(ステップS44)。なお、送信したコンテンツは、上述した基本処理を実行しているノード装置2NによりステップS7の処理にてコンテンツ受信の判定対象となる。
そして、子ノード装置情報更新処理を行ない(ステップS45)、処理を終了する。子ノード装置情報更新処理にて、ノード装置2Sの子ノード装置となったノード装置2Nを、ノード装置2Sの記憶部12の子ノード装置情報リストL2{}に加え、さらにその旨を、ノード装置2Nの装置情報を送信して親ノード装置や他の子ノード装置に教える処理を行なう。なお、子ノード装置情報更新処理についての具体的処理は後に詳述する。
一方、ステップS43の判定の結果、ノード装置2Nの上位適正がノード装置2Sの上位適正より高いと判定された場合(ステップS43:Yes)には、ノード装置2Sの属性情報とノード装置2Nの属性情報が同じで、かつノード装置2Sはトップノード装置か否かを判定する(ステップS46)。つまり、ノード装置2Nが今接続しようとしているノード装置2Sは、ノード装置2Nが属する属性の中で最も優先順位が高く、最も上流に位置するトップノード装置(最上ノード装置)であるか否かを判定する。判定の結果、ノード装置2Sの属性情報は、ノード装置2Nの属性情報と同じで、かつノード装置2Sはトップノード装置である場合には(ステップS46:Yes)、制御部11は最上ノード装置交代通知手段として機能し、当該属性のトップノード装置であるノード装置2Sより上位適正の高いノード装置2Nが新たなトップノード装置となるためトップノード装置が交代したことを管理サーバ100に知らせるため、管理サーバ100にトップ交代通知Stを送信する(ステップS47)。なお、管理サーバ100では、トップ交代通知Stにてトップの交代した旨の通知を受けると、制御部101が更新手段として機能し、当該トップ交代通知Stの送信元であるノード装置2の属性情報に対応するトップノード装置(トップ交代通知Stの送信元と同じノード装置となる。)を、トップ交代通知Stに含まれる新たなノード装置2の装置情報を用いて、当該新たなノード装置2をトップノード装置として更新する。
また、ステップS46の判定の結果、ノード装置2Sの属性情報とノード装置2Nの属性情報が同じ、かつノード装置2Sはトップノード装置で無い場合には(ステップS46:No)には、ステップS46に移行し、制御部11は親候補装置記憶制御手段として機能し、記憶手段12の親候補ノード装置情報リストL1{}にノード装置2Nを追加する(ステップS48)。ノード装置2Sとノード装置2Nの属性情報が異なったり、或いは、同じ属性情報であったとしてもノード装置2Sがトップノード装置で無い場合には、より上位適正の高いノード装置2Nがノード装置2Sの親ノード装置となるだけなので、トップノード装置の交代は起こらないので、管理サーバ100にアクセスすることなく、単にノード装置2Sの記憶部12に記憶した親候補ノード装置情報リストL1{}にノード装置2Nを追加する。
そして、制御部11は親装置切断手段として機能し、上位階層として接続されたノード装置2との接続を切断(ステップS49)して処理を終了する。
ノード装置2Sは、ステップS49の処理を実行して上位階層として接続されたノード装置との接続を切断した場合であっても、当該ノード装置2Sが実行する上述した基本処理のステップS9乃至S12で親候補ノード装置情報リストL1{}のうち、最も上位優先順位の高いノード装置2を新たに親ノード装置として接続要求情報Srを送信し、接続を試みる。
このとき、上述した基本処理(図20を参照。)を実行しているノード装置2Nは、当該処理のステップS8にてタイムアウト(ステップS8:Yes)となり、新たな親ノード装置の選択を行なうこととなる。
[4-4.各ノード装置及び配信サーバにおける子ノード装置情報更新処理]
続いて、各ノード装置2及び配信サーバ1において行われる子ノード装置情報更新処理について図23に示すフローチャートを用いて説明する。なお、各ノード装置2にて行われる子ノード装置送信処理は、上記「4-1.各ノード装置における基本処理」におけるステップS16と、上記「4-2.各ノード装置における接続処理」におけるステップS45にて実行される処理であり、配信サーバ1においては、子ノード装置送信処理は、新たなノード装置2から接続要求情報Srを受信することにより実行される。なお、ここではノード装置2Sによって行われる子ノード装置送信処理について説明する。
なお、先ず、新たに子ノード装置が接続されたか否かを判定する(ステップS60)。
判定の結果、新たに子ノード装置が接続されていない場合(ステップS60:No)には、子ノード装置情報リストL2{}にある、子ノード装置情報変更通知の送信元のノード装置2の装置情報を更新する(ステップS61)。具体的には、子ノード装置情報変更通知に含まれる子孫ノード装置数情報を用いて、自己の子ノード装置情報リストL2{}のうち、子ノード装置情報変更通知の送信元のノード装置2の子ノード装置情報を更新する。
他方、新たに子ノード装置2が接続された場合(ステップS60:Yes)には、子ノード装置情報リストL2{}に新たな子ノード装置2を追加する(ステップS66)。そして、子ノード装置数が配信許容数より大きいか否かを判定(ステップS67)し、子ノード装置数が配信許容数より大きい場合(ステップS67:Yes)には、制御部11は子ノード装置選択手段及び子ノード装置記憶制御手段として機能し、子ノード装置情報リストL2{}で最も下位優先順位の低いノード装置(以下、ノード装置2Uと言う。)を選択し、ノード装置2Uを子ノード装置情報リストL2{}から削除する(ステップS68)。配信許容数に適合させるためである。そして、制御部11は子ノード装置切断手段として機能し、ノード装置2Uとの接続を切断する(ステップS69)。切断されたノード装置2Uは、上述した基本処理(図20を参照。)を実行しているため、当該処理のステップS7にてコンテンツを受信していないと判定され(ステップS7:No)、その後のステップS8にてタイムアウト(ステップS8:Yes)となって、更にその後のステップS9以降の処理において新たな親ノード装置の選択を行なうこととなる。
次に、子ノード装置情報リストL2{}を接続先候補Nk{}とする(ステップS70)。つまり、ノード装置2Sは、自己の配信許容数に合わせるために、やむを得ず接続を切断しようとしているノード装置2Uに自分の持っている子ノード装置情報リストL2{}を接続先候補Nk{}として教えることにより、ノード装置2Uは、ノード装置2Sの下位に接続されたノード装置(子ノード装置情報リストL2{}に含まれるノード装置)を知って記憶部12の親候補ノード装置情報リストL1{}に記憶させることができるのである(詳細にはステップS6を参照。)。これにより、ノード装置2Uはノード装置2Sとの接続を切断された後にノード装置2Sの下位ノード装置として接続するノード装置2さらに下流のノード装置2(子孫ノード装置)の何れかのノード装置2に接続することができる。そして、制御部11は接続先候補情報送信手段として機能し、ノード装置2Uに接続先候補通知(Nk{})を送信(ステップS71)してステップS62に移行する。このとき送信された接続先候補通知(Nk{})は、上述した基本処理を実行しているノード装置2UによりステップS5の処理にて受信の判定対象となる。
次に、ノード装置2Sの子孫ノード装置の数を更新する(ステップS62)。より具体的には、自身の子ノード装置の数と、各子ノード装置の子ノード装置の数と、の和を求めればよい。例えば、図19に示す例によれば、ノード装置2-A4-P4は、子ノード装置情報リストL2{}に、子ノード装置であるノード装置2-A4-P3の装置情報が記憶されているので、これに基づいて、子ノード装置であるノード装置2-A4-P3の子ノード装置数が「2」として取得できる。さらに、自己の子ノード装置数はノード装置2-A4-P3のみであるので「1」として取得できる。そして、子孫ノード装置の数をこれらの和「3」として取得(更新)することができる。同様にして、図19におけるノード装置2-A2-P4は、子ノード装置情報リストL2{}に、子ノード装置2であるノード装置2-A2-P3とノード装置2-A3-P3の装置情報が記憶されているので、これに基づいて、子ノード装置であるノード装置2-A2-P3の子ノード装置数とノード装置2-A3-P3の子ノード装置数とを夫々「1」として取得できる。さらに、自己の子ノード装置数は「2」であるため、子孫ノード装置2の数をこれらの和「4」として取得(更新)することができる。
次に、子ノード装置情報リストL2{}を接続先候補Nk{}とし(ステップS63)、全ての子ノード装置2に、接続先候補通知(Nk{})を送信(ステップS64)する。このとき送信された接続先候補通知(Nk{})は、上述した基本処理を実行している全ての子ノード装置によりステップS5の処理にて受信の判定対象となる。
続いて、上位階層として接続された親ノード装置に、自ノード装置の装置情報を含む子ノード装置情報変更通知を送信(ステップS65)して処理を終了する。
なお、ステップS65で送信された接続先候補通知(Nk{})は、上述した基本処理を実行している全ての親ノード装置によりステップS15の処理にて受信の判定対象となる。
以上説明したように、本実施形態によれば、ツリー型ネットワークシステムSに参加する各ノード装置2が装置情報に基づいて上位適正が高いノード装置が親ノード装置となるよう構成したので、より親ノード装置にふさわしいノード装置が上位として接続された安定性の高いネットワークシステムを構築することが可能になる。
なお、上述した本実施形態では、配信能力を子ノード装置の最大接続数と連続接続時間とに基づいて配決定することとしたが、これに限らず、当該ノード装置2の処理能力、当該ノード装置2に付帯する通信経路の有効帯域、当該ノード装置2が前記ツリー型ネットワークシステムSに参加している連続接続時間、既に受信したコンテンツデータであって未だ所持しているコンテンツデータの量、のうち少なくとも何れかに基づいて定めればよい。
また、上述した本実施形態では、管理サーバ100は、最も上位階層に位置する最上ノード装置としてのトップノード装置の装置情報を各属性情報毎に記憶するよう構成したが、これに限らず、例えば最上位階層から所定数下の階層までのノード装置の装置情報を記憶するよう構成してもよい。例えば、所定数を「1」とした場合には、各属性情報毎に最も上位階層に位置するノード装置の装置情報を記憶すればよく、上述した実施形態に対応する。所定数が「2」や「3」などと複数とした場合には、例えば所定数が「3」の場合、管理サーバ100が最上位から上位3つのノード装置の装置情報を記憶し、管理サーバ100が接続先候補要求Scを送信してきたノード装置2に対して接続先候補Nk{}として、対応する属性情報のノード装置2の装置情報を決定する際に、対応する複数のノード装置2から一つのを選択した装置情報を接続先候補Nk{}として接続先候補要求Scを送信してきたノード装置2に対して送信するようにしてもよいし、記憶した対応する複数のノード装置2全ての装置情報を接続先候補Nk{}として接続先候補要求Scを送信してきたノード装置2に対して送信してもよい。この場合でにおいても、管理サーバ100はノード装置2の属性情報毎に、所定数のノード装置2だけを管理(記憶)すればよいので負担を抑えて、各ノード装置2にて自律的に接続態様を制御することができる。
また、ノード装置2の所属するネットワーク接続サービスグループ(所属情報)を示すAS番号等の属性情報を含む装置情報に基づいて上位優先順位を決定し、当該上位優先順位の最も高い他のノード装置2に対して接続要求情報Srを送信するよう構成したので、同じ属性情報を持ったノード装置2が一箇所に集まるようにネットワークシステムSを構築できるので、何れかのノード装置2において切断が起こった場合でも、再接続処理がシステム全体に波及することを防ぐことができる。
そして、各ノード装置がツリー型ネットワークシステムに参加する際には、管理サーバ100に接続先の候補となるノード装置2を問合せ、当該ノード装置2に対して接続要求を行い、これを受けたノード装置2では自身に接続すべきか否かを判断するよう構成したので、管理サーバ100に負担をかけずにより安定性の高いツリー型ネットワークシステムSを構築することが可能になる。
また、管理サーバ100はノード装置2の属性情報毎に、最も上位のノード装置2である最上ノード装置だけを管理(記憶)すればよいので管理サーバ100の処理負担を最小限に抑えて、各ノード装置2にて自律的に接続態様を制御することができる。
さらに、ノード装置2に配信許容数がある場合であっても、ノード装置2が所属するネットワーク接続サービスグループ(所属情報)を示す属性情報を含む装置情報に基づいて下位優先順位を決定し、当該下位優先順位の最も低いノード装置2から接続を切断するよう構成したので、各ノード装置2が自身の接続態様を自律的かつ最適に制御することができる。