(57)【要約】      （修正有）【課題】トポロジー接続状態が刻々と変化するツリー型配信システムにおいて、参加ノード装置の離脱契機をシステム全体として制御し、トポロジー崩壊を防いで安定性の高いツリー型配信システムを実現する離脱可否制御装置等を提供することを目的とする。【解決手段】複数のノード装置より形成されたツリー型配信システムからの離脱可否を制御する離脱可否制御装置であって、ツリー型配信システムのノード装置の数を取得し、ノード装置の数に基づいて、同時に離脱することができる同時離脱処理上限数を決定する。ノード装置から、ツリー型配信システムからの離脱を要求する旨の離脱要求情報を受信すると、現在離脱処理中のノード装置の数が、同時離脱処理上限数に達しているか否かを判断し、同時離脱処理上限数に達していない場合には、離脱許可通知を送信し、同時離脱処理上限数に達している場合には離脱許可通知を送信しないことを特徴とする。【選択図】図４
2008092004.tif 000002
【特許請求の範囲】
【請求項１】
複数のノード装置の参加により形成されたツリー型配信システムであって、配信装置を最上位として前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記配信装置から配信されたコンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システムにおける各前記ノード装置の当該システムからの離脱可否を制御する離脱可否制御装置であって、
前記ツリー型配信システムに参加している前記ノード装置の数を取得し、当該参加中のノード装置の数に基づいて、前記ツリー型配信システムから同時に離脱することができる前記ノード装置の上限数である同時離脱処理上限数を決定する同時離脱処理上限数決定手段と、
いずれかの前記ノード装置から、前記ツリー型配信システムからの離脱を要求する旨の離脱要求情報を受信する離脱要求情報受信手段と、
現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達しているか否かを判断し、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達していない場合には、前記離脱要求情報の送信元のノード装置に対して離脱処理を許可する離脱許可通知を送信し、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達している場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱許可通知を送信しない離脱許可通知手段と、
を有することを特徴とする離脱可否制御装置。
【請求項２】
請求項１に記載の離脱可否制御装置であって、
前記離脱許可通知手段は、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達している場合には、前記離脱要求情報の送信元のノード装置に対して離脱処理を保留するよう指示する離脱保留指示通知を送信することを特徴とする離脱可否制御装置。
【請求項３】
請求項２に記載の離脱可否制御装置であって、
前記配信装置の直近の下位階層に接続されたｎ台の前記ノード装置を最上位として形成するｎ個のサブツリーのうち、現在、前記ツリー型配信システムから離脱する離脱処理中のノード装置が属するサブツリーを特定する離脱処理中サブツリー特定手段を有し、
前記離脱許可通知手段は、
前記離脱要求情報の送信元のノード装置が属する前記サブツリーが、前記離脱処理中サブツリー特定手段によって特定されたサブツリーと同一である場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱許可通知を送信し、前記離脱要求情報の送信元のノード装置が属する前記サブツリーが、前記離脱処理中サブツリー特定手段によって特定されたサブツリーと異なる場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱保留指示通知を送信することを特徴とする離脱可否制御装置。
【請求項４】
請求項１乃至３のいずれか一項に記載の離脱可否制御装置であって、
前記離脱要求情報の送信元の前記ノード装置と、前記配信装置との間に介在する前記ノード装置の数である介在ノード装置数を取得する介在ノード装置数取得手段を有し、
前記離脱許可通知手段は、複数のノード装置から前記離脱要求情報を受信した場合には、前記離脱要求情報の送信元のノード装置のうち、前記介在ノード装置数が多い前記ノード装置に対して優先的に前記離脱許可通知を送信することを特徴とする離脱可否制御装置。
【請求項５】
請求項１乃至４のいずれか一項に記載の離脱可否制御装置であって、
前記離脱要求情報の送信元の前記ノード装置の下位階層として接続されたノード装置の数である下位階層ノード装置数を取得する下位階層ノード装置数取得手段を有し、
前記離脱許可通知手段は、複数のノード装置から前記離脱要求情報を受信した場合には、前記離脱要求情報の送信元のノード装置のうち、前記下位階層ノード装置数が少ない前記ノード装置に対して優先的に前記離脱許可通知を送信することを特徴とする離脱可否制御装置。
【請求項６】
複数のノード装置の参加により形成されたツリー型配信システムであって、配信装置を最上位として前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記配信装置から配信されたコンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システムであって、
各前記ノード装置は、
前記ツリー型配信システムからの離脱可否を制御する離脱可否制御装置に対して、前記ツリー型配信システムからの離脱を要求する旨の離脱要求情報を送信する離脱要求情報送信手段と、
前記離脱可否制御装置から、離脱処理を許可する離脱許可通知を受信する離脱許可通知受信手段と、
前記離脱許可通知を受信した場合に、前記ツリー型配信システムからの離脱処理を実行する離脱処理手段と、を有し、
前記離脱可否制御装置は、
前記ツリー型配信システムに参加している前記ノード装置の数を取得し、当該参加中のノード装置の数に基づいて、前記ツリー型配信システムから同時に離脱することができる前記ノード装置の上限数である同時離脱処理上限数を決定する同時離脱処理上限数決定手段と、
いずれかの前記ノード装置から、前記ツリー型配信システムからの離脱を要求する旨の離脱要求情報を受信する離脱要求情報受信手段と、
現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達しているか否かを判断し、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達していない場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱許可通知を送信し、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達している場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱許可通知を送信しない離脱許可通知手段と、
を有することを特徴とするツリー型配信システム。
【請求項７】
請求項６に記載のツリー型配信システムであって、
前記離脱可否制御装置の前記離脱許可通知手段は、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達している場合には、前記離脱要求情報の送信元のノード装置に対して離脱処理を保留するよう指示する離脱保留指示通知を送信することを特徴とするツリー型配信システム。
【請求項８】
請求項７に記載のツリー型配信システムであって、
前記離脱可否制御装置は、前記配信装置の直近の下位階層に接続されたｎ台の前記ノード装置を最上位として形成するｎ個のサブツリーのうち、現在、前記ツリー型配信システムから離脱する離脱処理中のノード装置が属するサブツリーを特定する離脱処理中サブツリー特定手段を有し、
前記離脱許可通知手段は、
前記離脱要求情報の送信元のノード装置が属する前記サブツリーが、前記離脱処理中サブツリー特定手段によって特定されたサブツリーと同一である場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱許可通知を送信し、前記離脱要求情報の送信元のノード装置が属する前記サブツリーが、前記離脱処理中サブツリー特定手段によって特定されたサブツリーと異なる場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱保留指示通知を送信することを特徴とするツリー型配信システム。
【請求項９】
請求項６乃至８のいずれか一項に記載のツリー型配信システムであって、
前記離脱可否制御装置は、前記離脱要求情報の送信元の前記ノード装置と、前記配信装置との間に介在する前記ノード装置の数である介在ノード装置数を取得する介在ノード装置数取得手段を有し、
前記離脱許可通知手段は、複数のノード装置から前記離脱要求情報を受信した場合には、前記離脱要求情報の送信元のノード装置のうち、前記介在ノード装置数が多い前記ノード装置に対して優先的に前記離脱許可通知を送信することを特徴とするツリー型配信システム。
【請求項１０】
請求項６乃至９のいずれか一項に記載のツリー型配信システムであって、
前記離脱可否制御装置は、前記離脱要求情報の送信元の前記ノード装置の下位階層として接続されたノード装置の数である下位階層ノード装置数を取得する下位階層ノード装置数取得手段を有し、
前記離脱許可通知手段は、複数のノード装置から前記離脱要求情報を受信した場合には、前記離脱要求情報の送信元のノード装置のうち、前記下位階層ノード装置数が少ない前記ノード装置に対して優先的に前記離脱許可通知を送信することを特徴とするツリー型配信システム。
【請求項１１】
請求項６乃至１０のいずれか一項に記載のツリー型配信システムであって、
各前記ノード装置は、前記ツリー型配信システムから離脱しようとする際には、自己の下位階層として接続されたノード装置の有無を判断する下位階層ノード装置有無判断手段を有し、
前記下位階層ノード装置有無判断手段が、自己の下位階層として接続されたノード装置が無いと判断した場合には、前記離脱要求情報送信手段は前記離脱要求情報を送信せず、かつ、前記離脱処理手段は、前記ツリー型配信システムからの離脱処理を実行することを特徴とするツリー型配信システム。
【請求項１２】
複数のノード装置の参加により形成されたツリー型配信システムであって、配信装置を最上位として前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記配信装置から配信されたコンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システムにおけるノード装置離脱制御方法であって、
前記ノード装置が、前記ツリー型配信システムからの離脱可否を制御する離脱可否制御装置に対して、前記ツリー型配信システムからの離脱を要求する旨の離脱要求情報を送信する離脱要求情報送信工程と、
前記離脱可否制御装置が、前記ツリー型配信システムに参加している前記ノード装置の数を取得し、当該参加中のノード装置の数に基づいて、前記ツリー型配信システムから同時に離脱することができる前記ノード装置の上限数である同時離脱処理上限数を決定する同時離脱処理上限数決定工程と、
前記離脱可否制御装置が、いずれかの前記ノード装置から、前記ツリー型配信システムからの離脱を要求する旨の離脱要求情報を受信する離脱要求情報受信工程と、
前記離脱可否制御装置が、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達しているか否かを判断し、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達していない場合には、前記離脱要求情報の送信元のノード装置に対して離脱処理を許可する離脱許可通知を送信し、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達している場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱許可通知を送信しない離脱許可通知工程と、
前記ノード装置が、前記離脱可否制御装置から、離脱処理を許可する離脱許可通知を受信する離脱許可通知受信工程と、
前記ノード装置が、前記離脱許可通知を受信した場合に、前記ツリー型配信システムからの離脱処理を実行する離脱処理工程と、
を有することを特徴とするノード装置離脱制御方法。
【請求項１３】
コンピュータを、請求項１乃至５のいずれか一項に記載の離脱可否制御装置として機能させることを特徴とする離脱可否制御プログラム。
【請求項１４】
コンピュータを、請求項６乃至１１のいずれか一項に記載のノード装置として機能させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノード装置の参加により形成されたツリー型配信システムにおける、ノード装置の離脱制御方法の技術分野に関する。
【背景技術】
【０００２】
ＡＬＭ（Application Layer Multicast）の技術を使ったコンテンツ配信システムでは、ノード装置（視聴端末）の離脱によって配信トポロジー（コンテンツ配信経路）が掻き乱されるリスクを潜在的にかかえている。特にコンテンツ配送の同時性を重視するような放送型（ツリー型）の配信システムの場合には、ノード装置の離脱によって生じた配信経路の断絶状態を短時間で再生しないと、離脱したノード装置の配信経路の下位階層として接続されているノード装置に対してストリーム供給が行われなくなり、これら下位階層として接続されたノード装置でコンテンツの再生が停止する不具合や、下流側トポロジーの連鎖的崩壊を助長させる不具合が生じる。
【０００３】
このような問題に対して、従来技術ではストリーム供給源である上流ノードを複数持たせる、すなわち、複数のノード装置から同時にコンテンツの配信を受けることにより、ノード装置の離脱に備えるといった、冗長接続を利用する方式が用いられてきた。この場合、１つの上流のノード装置からのストリーム供給が停止しても、他の上流のノード装置からはストリーム供給が行われているので、新たな上流のノード装置を再発見するまでの時間的猶予を得ることができる。
【０００４】
また、上流のノード装置を複数持たせる方式において、主ノードを除くノードからはストリームを受信しない状態（接続手続のみ完了させた状態）にしておき、主ノードのストリーム停止を契機に待機状態となっている上流のノード装置のひとつを選択してストリーム供給を迅速に再開するような運用方式も開示されている（特許文献１参照）。
【特許文献１】特開２００６−３３５１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術のいずれの場合もストリーム供給源である上流ノードを複数持たせたノード接続の冗長化に着目した制御方式であるため、システム中の局所的なノード離脱問題については対処することができるが、システム全体で同時多発的に生じるノード離脱問題については十分に対処することができなかった。
【０００６】
そこで、本発明は、接続状態が刻々と変化する配信トポロジーの安定性を保障すべく、参加ノード装置の離脱契機をシステム全体として制御し、トポロジー崩壊を防いで安定性の高いツリー型配信システムを実現する離脱可否制御装置等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、複数のノード装置の参加により形成されたツリー型配信システムであって、配信装置を最上位として前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記配信装置から配信されたコンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システムにおける各前記ノード装置の当該システムからの離脱可否を制御する離脱可否制御装置であって、前記ツリー型配信システムに参加している前記ノード装置の数を取得し、当該参加中のノード装置の数に基づいて、前記ツリー型配信システムから同時に離脱することができる前記ノード装置の上限数である同時離脱処理上限数を決定する同時離脱処理上限数決定手段と、いずれかの前記ノード装置から、前記ツリー型配信システムからの離脱を要求する旨の離脱要求情報を受信する離脱要求情報受信手段と、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達しているか否かを判断し、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達していない場合には、前記離脱要求情報の送信元のノード装置に対して離脱処理を許可する離脱許可通知を送信し、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達している場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱許可通知を送信しない離脱許可通知手段と、を有することを特徴とする離脱可否制御装置である。
【０００８】
これによれば、離脱可否制御装置は、ツリー型配信システムに参加しているノード装置の数に基づいて、同時離脱処理上限数を決定し、参加中の何れかのノード装置から離脱要求情報を受信すると、現在離脱処理中のノード装置の数が、同時離脱処理上限数に達していない場合には、離脱要求情報の送信元のノード装置に対して離脱を許可し、同時離脱処理上限数に達している場合には、離脱要求情報の送信元のノード装置に対して離脱を許可しないよう構成したので、ツリー型配信システム全体の配信トポロジーの中でノード装置の離脱を制御でき、ノード装置の同時多発的な離脱処理による配信停止（配信中断）が発生する事態を回避して、トポロジー安定性を向上させることができる。
【０００９】
上記課題を解決するために、請求項２に記載の発明は、請求項１に記載の離脱可否制御装置であって、前記離脱許可通知手段は、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達している場合には、前記離脱要求情報の送信元のノード装置に対して離脱処理を保留するよう指示する離脱保留指示通知を送信することを特徴とする離脱可否制御装置である。
【００１０】
これによれば、現在離脱処理中のノード装置の数が、同時離脱処理上限数に達している場合には、離脱要求情報の送信元のノード装置に対して離脱の保留を指示するので、ノード装置の同時多発的な離脱処理による配信停止（配信中断）が発生する事態を回避して、トポロジー安定性を向上させることができる。
【００１１】
上記課題を解決するために、請求項３に記載の発明は、請求項２に記載の離脱可否制御装置であって、前記配信装置の直近の下位階層に接続されたｎ台の前記ノード装置を最上位として形成するｎ個のサブツリーのうち、現在、前記ツリー型配信システムから離脱する離脱処理中のノード装置が属するサブツリーを特定する離脱処理中サブツリー特定手段を有し、前記離脱許可通知手段は、前記離脱要求情報の送信元のノード装置が属する前記サブツリーが、前記離脱処理中サブツリー特定手段によって特定されたサブツリーと同一である場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱許可通知を送信し、前記離脱要求情報の送信元のノード装置が属する前記サブツリーが、前記離脱処理中サブツリー特定手段によって特定されたサブツリーと異なる場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱保留指示通知を送信することを特徴とする離脱可否制御装置である。
【００１２】
これによれば、配信トポロジーを構成するサブツリー群の中で単一のサブツリーのみから同時にノードの離脱を許可するので、離脱ノードによる配信トポロジーの撹乱を局所化することができ、結果として配信トポロジーを安定化させることができる。
【００１３】
上記課題を解決するために、請求項４に記載の発明は、請求項１乃至３のいずれか一項に記載の離脱可否制御装置であって、前記離脱要求情報の送信元の前記ノード装置と、前記配信装置との間に介在する前記ノード装置の数である介在ノード装置数を取得する介在ノード装置数取得手段を有し、前記離脱許可通知手段は、複数のノード装置から前記離脱要求情報を受信した場合には、前記離脱要求情報の送信元のノード装置のうち、前記介在ノード装置数が多い前記ノード装置に対して優先的に前記離脱許可通知を送信することを特徴とする離脱可否制御装置である。
【００１４】
これによれば、離脱に伴ってトポロジー構成が不安定な状態となる時間が短くなることが期待されるノード装置を優先して離脱させるので、ツリー型配信システム全体の配信トポロジーをより安定化させることができる。
【００１５】
上記課題を解決するために、請求項５に記載の発明は、請求項１乃至４のいずれか一項に記載の離脱可否制御装置であって、前記離脱要求情報の送信元の前記ノード装置の下位階層として接続されたノード装置の数である下位階層ノード装置数を取得する下位階層ノード装置数取得手段を有し、前記離脱許可通知手段は、複数のノード装置から前記離脱要求情報を受信した場合には、前記離脱要求情報の送信元のノード装置のうち、前記下位階層ノード装置数が少ない前記ノード装置に対して優先的に前記離脱許可通知を送信することを特徴とする離脱可否制御装置である。
【００１６】
これによれば、離脱に伴ってトポロジー構成が不安定な状態となる時間が短くなることが期待されるノード装置を優先して離脱させるので、ツリー型配信システム全体の配信トポロジーをより安定化させることができる。
【００１７】
上記課題を解決するために、請求項６に記載の発明は、複数のノード装置の参加により形成されたツリー型配信システムであって、配信装置を最上位として前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記配信装置から配信されたコンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システムであって、各前記ノード装置は、前記ツリー型配信システムからの離脱可否を制御する離脱可否制御装置に対して、前記ツリー型配信システムからの離脱を要求する旨の離脱要求情報を送信する離脱要求情報送信手段と、前記離脱可否制御装置から、離脱処理を許可する離脱許可通知を受信する離脱許可通知受信手段と、前記離脱許可通知を受信した場合に、前記ツリー型配信システムからの離脱処理を実行する離脱処理手段と、を有し、前記離脱可否制御装置は、前記ツリー型配信システムに参加している前記ノード装置の数を取得し、当該参加中のノード装置の数に基づいて、前記ツリー型配信システムから同時に離脱することができる前記ノード装置の上限数である同時離脱処理上限数を決定する同時離脱処理上限数決定手段と、いずれかの前記ノード装置から、前記ツリー型配信システムからの離脱を要求する旨の離脱要求情報を受信する離脱要求情報受信手段と、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達しているか否かを判断し、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達していない場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱許可通知を送信し、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達している場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱許可通知を送信しない離脱許可通知手段と、を有することを特徴とするツリー型配信システムである。
【００１８】
上記課題を解決するために、請求項７に記載の発明は、請求項６に記載のツリー型配信システムであって、前記離脱可否制御装置の前記離脱許可通知手段は、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達している場合には、前記離脱要求情報の送信元のノード装置に対して離脱処理を保留するよう指示する離脱保留指示通知を送信することを特徴とするツリー型配信システムである。
【００１９】
上記課題を解決するために、請求項８に記載の発明は、請求項７に記載のツリー型配信システムであって、前記離脱可否制御装置は、前記配信装置の直近の下位階層に接続されたｎ台の前記ノード装置を最上位として形成するｎ個のサブツリーのうち、現在、前記ツリー型配信システムから離脱する離脱処理中のノード装置が属するサブツリーを特定する離脱処理中サブツリー特定手段を有し、前記離脱許可通知手段は、前記離脱要求情報の送信元のノード装置が属する前記サブツリーが、前記離脱処理中サブツリー特定手段によって特定されたサブツリーと同一である場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱許可通知を送信し、前記離脱要求情報の送信元のノード装置が属する前記サブツリーが、前記離脱処理中サブツリー特定手段によって特定されたサブツリーと異なる場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱保留指示通知を送信することを特徴とするツリー型配信システムである。
【００２０】
上記課題を解決するために、請求項９に記載の発明は、請求項６乃至８のいずれか一項に記載のツリー型配信システムであって、前記離脱可否制御装置は、前記離脱要求情報の送信元の前記ノード装置と、前記配信装置との間に介在する前記ノード装置の数である介在ノード装置数を取得する介在ノード装置数取得手段を有し、前記離脱許可通知手段は、複数のノード装置から前記離脱要求情報を受信した場合には、前記離脱要求情報の送信元のノード装置のうち、前記介在ノード装置数が多い前記ノード装置に対して優先的に前記離脱許可通知を送信することを特徴とするツリー型配信システムである。
【００２１】
上記課題を解決するために、請求項１０に記載の発明は、請求項６乃至９のいずれか一項に記載のツリー型配信システムであって、前記離脱可否制御装置は、前記離脱要求情報の送信元の前記ノード装置の下位階層として接続されたノード装置の数である下位階層ノード装置数を取得する下位階層ノード装置数取得手段を有し、前記離脱許可通知手段は、複数のノード装置から前記離脱要求情報を受信した場合には、前記離脱要求情報の送信元のノード装置のうち、前記下位階層ノード装置数が少ない前記ノード装置に対して優先的に前記離脱許可通知を送信することを特徴とするツリー型配信システムである。
【００２２】
上記課題を解決するために、請求項１１に記載の発明は、請求項６乃至１０のいずれか一項に記載のツリー型配信システムであって、各前記ノード装置は、前記ツリー型配信システムから離脱しようとする際には、自己の下位階層として接続されたノード装置の有無を判断する下位階層ノード装置有無判断手段を有し、前記下位階層ノード装置有無判断手段が、自己の下位階層として接続されたノード装置が無いと判断した場合には、前記離脱要求情報送信手段は前記離脱要求情報を送信せず、かつ、前記離脱処理手段は、前記ツリー型配信システムからの離脱処理を実行することを特徴とするツリー型配信システムである。
【００２３】
これによれば、自己が末端のノード装置であるか否かを判断し、末端のノード装置であれば、離脱可否制御装置へ離脱の許可を得ることなく、すぐに離脱処理を行なうよう構成したので、離脱によりトポロジー構成に影響のないノード装置については、スムーズに離脱処理を行なうことができる。
【００２４】
上記課題を解決するために、請求項１２に記載の発明は、複数のノード装置の参加により形成されたツリー型配信システムであって、配信装置を最上位として前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記配信装置から配信されたコンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システムにおけるノード装置離脱制御方法であって、前記ノード装置が、前記ツリー型配信システムからの離脱可否を制御する離脱可否制御装置に対して、前記ツリー型配信システムからの離脱を要求する旨の離脱要求情報を送信する離脱要求情報送信工程と、前記離脱可否制御装置が、前記ツリー型配信システムに参加している前記ノード装置の数を取得し、当該参加中のノード装置の数に基づいて、前記ツリー型配信システムから同時に離脱することができる前記ノード装置の上限数である同時離脱処理上限数を決定する同時離脱処理上限数決定工程と、前記離脱可否制御装置が、いずれかの前記ノード装置から、前記ツリー型配信システムからの離脱を要求する旨の離脱要求情報を受信する離脱要求情報受信工程と、前記離脱可否制御装置が、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達しているか否かを判断し、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達していない場合には、前記離脱要求情報の送信元のノード装置に対して離脱処理を許可する離脱許可通知を送信し、現在離脱処理中のノード装置の数が、前記同時離脱処理上限数に達している場合には、前記離脱要求情報の送信元のノード装置に対して前記離脱許可通知を送信しない離脱許可通知工程と、前記ノード装置が、前記離脱可否制御装置から、離脱処理を許可する離脱許可通知を受信する離脱許可通知受信工程と、前記ノード装置が、前記離脱許可通知を受信した場合に、前記ツリー型配信システムからの離脱処理を実行する離脱処理工程と、を有することを特徴とするノード装置離脱制御方法である。
【００２５】
上記課題を解決するために、請求項１３に記載の発明は、コンピュータを、請求項１乃至５のいずれか一項に記載の離脱可否制御装置として機能させることを特徴とする離脱可否制御プログラムである。
【００２６】
上記課題を解決するために、請求項１４に記載の発明は、コンピュータを、請求項６乃至１１のいずれか一項に記載のノード装置として機能させることを特徴とする情報処理プログラムである。
【発明の効果】
【００２７】
本発明によれば、ツリー型配信システムに参加しているノードが配信トポロジーから離脱することにより生じるトポロジーの不安定化を局所化することができるため、配信トポロジーを安定的に維持することができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の最良の実施形態を図面に基づいて説明する。以下に説明する実施の形態は、コンテンツ配信システムに本発明を適用した場合の実施形態である。なお、本発明のコンテンツ配信システム等の各発明は、以下に説明する実施形態に限定されず、本発明の技術思想の範囲内で適宜変更して実施される。
【００２９】
［１．コンテンツ配信システムの概略等］
始めに、図１を参照して、本実施形態に係るコンテンツ配信システムＳの構成等について説明する。
【００３０】
図１は、本実施形態に係るコンテンツ配信システムＳにおける各装置の接続態様の一例を示す説明図である。
【００３１】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、および通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。
【００３２】
コンテンツ配信システムＳは、このようなネットワーク８を介して相互に接続された複数のノード装置３２ａ，３２ｂ，３２ｃ・・・３２ｍを備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノード装置３２ａ，３２ｂ，３２ｃ・・・３２ｍには、ノード装置を示す情報としての固有の製造番号およびＩＰ（Internet Protocol）アドレスが割り当てられている。なお、製造番号およびＩＰアドレスは、複数のノード装置３２間で重複しないものである。なお、以下の説明において、ノード装置３２ａ，３２ｂ，３２ｃ・・・３２ｍのうち何れかのノード装置を示す場合には、便宜上、ノード装置３２という場合がある。
【００３３】
このコンテンツ配信システムＳは、既存のネットワーク８を用いて放送局装置３１及び各ノード装置３２により、図１の上部枠１００内に示す如く放送局装置３１を頂点とするツリー型の配信ネットワークを構築している。
【００３４】
コンテンツ配信システムＳは、放送局装置３１を最上位として複数のノード装置３２ａ乃至３２ｍが複数の階層を形成しつつ、各ＩＰアドレスに基づき、複数の通信経路３３ａ、３３ｂ、３３ｃ、・・・・、３３ｍを介してツリー状に接続されることになる。そして、これら放送局装置３１及び複数のノード装置３２ａ乃至３２ｍは、上記ＩＸ３、ＩＳＰ４、ＤＳＬ回線事業者（の装置）５、ＦＴＴＨ回線事業者（の装置）６、および通信回線７等によって、インターネット等のネットワークに接続され、放送局装置３１により配信されるコンテンツデータは、上位階層のノード装置３２ａ及び３２ｂ等から下位階層のノード装置３２ｃ〜３２ｍに順次転送される。つまり、各ノード装置３２ａ〜３２ｆを中継して各ノード装置３２ｃ〜３２ｍに対してストリーム配信されることになる。
【００３５】
接続先紹介サーバ３５は、放送局装置３１と各ノード装置３２の接続態様（どのノード装置がどのノード装置（又は放送局装置３１）と接続されているか）をトポロジー管理情報（トポロジーデータベース）として記憶している。そのため、例えば図２に示す如く、新たなノード装置３２ｉが当該コンテンツ配信システムＳに参加を希望する場合、つまり放送局装置３１が配信しているコンテンツデータの配信を希望する場合には、自分が接続されるべき上位階層のノード装置３２の候補となるノード装置３２を教えてもらうために、接続先候補要求Ｓｃを図中一点鎖線で示す如く接続先紹介サーバ３５に対して送信する。そうすると、接続先紹介サーバ３５は、下流側に接続することができるノード装置を検索し、検索結果を、接続先候補通知（Ｎｋ{}）としてノード装置３２ｉに送信する。図２に示す例の場合、ノード装置３２ｉが接続されるべき上位階層のノード装置としてノード装置３２ｄを選び出し、当該ノード装置３２ｄの装置情報（ＩＰアドレスを含む）を、接続先候補通知（Ｎｋ{}）としてノード装置３２ｉに対して、図中二点鎖線で示す如く送信する。
【００３６】
そして、ノード装置３２ｉは当該接続先候補通知（Ｎｋ{}）に含まれる装置情報に基づいて、接続されるべき上位階層のノード装置３２（図１に示す例に拠れば、ノード装置３２ｄ）に対して、図中点線で示す如く自己の装置情報を含む接続要求情報Ｓｐを送信して接続要求を行ない、これを受けたノード装置３２ｄが、ノード装置３２ｉにコンテンツデータを転送すべき状況と判断すれば通信経路３３ｉを介したノード装置３２ｉとノード装置３２ｄ間の接続を確立することができるようになっている。
【００３７】
なお、図２に示す例では、接続先紹介サーバ３５は、接続先候補通知（Ｎｋ{}）としてノード装置３２ｄの装置情報（ＩＰアドレスを含む）のみをノード装置３２ｉに教えているが、下流側に接続することができるノード装置が複数あれば、複数のノード装置にかかる装置情報（ＩＰアドレスを含む）をノード装置３２ｉに教え、当該ノード装置３２ｉにて、１台のノード装置を選択し、接続要求を送信するよう構成してもよく、或いは、当該ノード装置３２ｉにて複数のノード装置に接続要求を送信して、応答があったノード装置の中から１台のノード装置を選択してストリーム配信を受けるよう構成してもよい。
【００３８】
ところで、システムに参加しているノード装置３２が、システムから脱退すると、そのノード装置３２に接続された下流のノード装置３２に対してコンテンツデータの供給が停止するので、下流のノード装置３２は自装置のリングバッファ１２１内にバッファリングしているコンテンツデータを消費し尽すまでに新たな上流のノード装置３２を発見して再接続を行い、コンテンツデータの途絶位置から再びコンテンツデータを受信する必要がある。この一連の再接続手続きを滞りなく完了させるためには、配信トポロジーが全体として安定していることが前提となるが、配信トポロジーの中で再接続手続きを実行するノードが、ある瞬間に多数存在すると配信トポロジーが不安定となるので、配信トポロジー全体として各ノードの離脱契機を管理する離脱可否制御装置としての離脱同期サーバ３６を設置する。具体的には、複数のノード装置３２が同時多発的にシステムから離脱することを防ぐために、この離脱同期サーバ３６は離脱を希望するノード装置３２に対して、離脱を許可、或いは保留するよう指示する離脱可否を通知する。
【００３９】
図３に示す如く、コンテンツ配信システムＳに参加しているノード装置３２ｅが当該コンテンツ配信システムＳからの離脱を希望する場合、例えば、ユーザがノード装置３２の電源をオフとする（コンテンツの視聴を停止）ため、或いは、チャンネル変更により、他の放送局装置（図示せず）を頂点とする別のツリーへ移動すべく、当該放送局装置３１を頂点とするツリーから脱退するためなど、上流のノード装置３２ｂとの接続を切断する場合には、ノード装置３２ｅは、先ず、離脱同期サーバ３６に対して離脱の許可を得るために、離脱要求Ｓｒ（離脱要求情報）を図中一点鎖線で示す如く送信する。そうすると、離脱同期サーバ３６は、離脱を許可できる状況であると判断すると、離脱を許可する旨の離脱許可通知をノード装置３２ｅに対して、図中二点鎖線で示す如く送信する。ノード装置３２ｅは、離脱許可通知を受け取ると、上流のノード装置３２ｂとの接続を切断し、離脱処理を実行する。一方、同図、ノード装置３２ｆによって示されるように、離脱同期サーバ３６は、離脱要求Ｓｒを受信しても、離脱を許可できる状況でないと判断すると、離脱を保留するよう指示する旨の離脱保留指示通知を離脱要求Ｓｒ送信元のノード装置３２ｆに返すこともある。
【００４０】
離脱同期サーバ３６は、以下の基準に従って、離脱を希望するノード装置３２に対して離脱可否を決定し、或いは、優先的に離脱させるノード装置３２を定める。
（１）全ノード装置３２のうち、所定割合にのみ離脱を許可する。
（２）離脱を希望するノード装置３２が属するサブツリーに基づいて離脱可否を決定する。
（３）放送局装置３１と、離脱を希望するノード装置３２の間に介在するノード装置３２の数に基づいて離脱許可の優先度を定める。
（４）離脱を希望するノード装置３２の下位階層として接続されたノード装置３２の数に基づいて離脱許可の優先度を定める。
以下、上記各基準について詳細に説明する。
【００４１】
（１）全ノード装置３２のうち、所定割合にのみ離脱を許可する。
先ず、離脱同期サーバ３６が、コンテンツ配信システムＳに参加する全ノード装置３２のうち、所定割合のノード装置３２にのみ離脱を許可する構成について図３を用いて説明する。
【００４２】
図３に示すコンテンツ配信システムＳは、１４台のノード装置３２が参加している。例えば、全ノード装置３２のうち、８％以下のノード装置３２が同時に離脱処理を行なってよいものと定める。そうすると、同時に離脱処理を行なえるノード装置３２の上限数は、１台である。従って、離脱同期サーバ３６は、２台以上のノード装置３２から同時に離脱要求Ｓｒを受信した場合には、１台のノード装置にのみ、離脱許可通知を送信し、他のノード装置には、離脱を保留するよう指示する旨の離脱保留指示通知を送信する。図３に示す例の場合、離脱同期サーバ３６は、ノード装置３２ｅとノード装置３２ｆから離脱要求Ｓｒを受信し、ノード装置３２ｅに離脱許可通知を送信し、ノード装置３２ｆに離脱保留指示通知を送信している。このように、離脱同期サーバ３６が、コンテンツ配信システムＳに参加する全ノード装置の数に応じて、同時に離脱処理を行なうことが可能なノード装置の上限数を定めて離脱可否を決定することにより、コンテンツ配信システムＳ全体の配信トポロジーの中で、多くのノード装置の同時多発的な離脱処理による配信停止（配信中断）が発生する事態を回避することができる。
【００４３】
なお、離脱同期サーバ３６は、トポロジー管理情報を記憶（管理）している接続先紹介サーバ３５から、現在コンテンツ配信システムＳに参加中の全ノード装置の数である「トポロジーサイズ」を取得することにより、同時離脱可能なノード装置３２の上限数を更新するよう構成する。また、本実施形態では、全ノード装置３２のうち、同時離脱可能なノード装置の所定割合を８％としたが、この割合を変動させることにより、同時離脱可能なノード装置３２の上限数を更新することもできる。例えば、コンテンツ配信システムＳに安定的に常駐しているノード装置３２の数が多いと判断できれば、この所定割合を上げることにより、同時離脱可能なノード装置３２の上限数を増加させることができる。更に、離脱同期サーバ３６が、同時離脱可能なノード装置３２の上限数を更新する頻度も自在に設定可能である。例えば、トポロジーサイズ取得契機を、１分に１回と設定すれば、離脱同期サーバ３６は、１分に１回から接続先紹介サーバ３５からトポロジーサイズを取得して、同時離脱可能なノード装置３２の上限数を更新する。
【００４４】
（２）離脱を希望するノード装置３２が属するサブツリーに基づいて離脱可否を決定する。
次に、離脱同期サーバ３６が、離脱を希望するノード装置３２が属するサブツリーに基づいて離脱可否を決定する構成について図４を用いて説明する。
【００４５】
図４に示すコンテンツ配信システムＳは、放送局装置３１の直近の下位階層に接続されたノード装置３２ａと３２ｂを夫々頂点とする２つのサブツリーＡ、Ｂを構成しているといえる。この場合、サブツリーＡ、Ｂ夫々に属する複数のノード装置３２がコンテンツ配信システムＳから離脱し、接続を切断してしまうと、各ノード装置３２の下流に接続されており配信が中断されるノード装置３２が多数発生してしまう。特に、離脱するノード装置３２が、放送局装置３１に近い（放送局装置３１との間に介在するノード装置の数が少ない）場合には、配信が中断されたノード装置３２が接続可能な装置が放送局装置３１のみとなる可能性もあり、問題となる。例えば、ノード装置３２ａと３２ｂが脱退した場合には、ノード装置３２ａとノード装置３２ｂの下流に接続されたノード装置３２ｃ〜３２ｍが全て再接続する必要がある。
【００４６】
従って、離脱同期サーバ３６は、サブツリーＡに属す何れかのノード装置３２が離脱処理を行なっているときに、サブツリーＢに属すノード装置３２から離脱要求Ｓｒを受信した場合には、当該サブツリーＢに属するノード装置３２には、離脱保留指示通知を送信するよう構成する。図４に示す例のように、サブツリーＡに属すノード装置３２ａに対して離脱許可通知を送信した場合に、当該ノード装置３２ａから離脱完了報告がされるまでの間に、サブツリーＢに属すノード装置３２ｆから離脱要求Ｓｒを受信したときには、ノード装置３２ｆに離脱保留指示通知を送信する。このように、離脱同期サーバ３６が、全てのサブツリーでノード装置３２の離脱が同時に発生しないよう制御することにより、コンテンツ配信システムＳ全体の配信トポロジーを安定化させることができる。
【００４７】
（３）放送局装置３１と、離脱を希望するノード装置３２の間に介在するノード装置３２の数に基づいて離脱許可の優先度を定める。
次に、離脱同期サーバ３６が、離脱を希望するノード装置３２の放送局装置３１との間に介在するノード装置の数に基づいて、離脱許可の優先度を定める構成について図５を用いて説明する。
【００４８】
上述したように、ノード装置３２がコンテンツ配信システムＳから離脱すると、離脱したノード装置３２の下流に接続されたノード装置３２が再接続処理を行なうために、一定時間だけトポロジー構成が不安定な状態となる。この不安定な時間は、離脱するノード装置３２が放送局装置３１に近いノード装置であるほど長くなることが発明者の実験によりわかっている。このことから、離脱を希望するノード装置３２が複数ある場合、放送局装置３１から遠い下流のノード装置を、言い換えれば、放送局装置３１との間に介在するノード装置の数が多いノード装置３２を優先して離脱させるよう構成する。放送局装置３１との間に介在するノード装置３２の数は、更に言いかれれば、図５に示すように、「階層数」で表現することができる。放送局装置３１に近い（介在するノード装置３２の数が少ない）ほうを上位階層、放送局装置３１から遠い（介在するノード装置３２の数が多い）ほうを下位階層とし、介在するノード装置の数が少ないほど、階層数も少ない。図５に示す例によれば、放送局装置３１からコンテンツデータを受信しているノード装置３２ａ及び３２ｂは第１階層、当該第１階層のノード装置からコンテンツデータを受信しているノード装置３２ｃ〜３２ｆは第２階層、当該第２階層のノード装置からコンテンツデータを受信しているノード装置３２ｇ〜３２ｍは第３階層となる。図５に示す例の場合、ノード装置３２ａとノード装置３２ｆが離脱同期サーバ３６に離脱要求Ｓｒを送信した場合、離脱を許可する順番として、優先的に第２階層のノード装置３２ｆに離脱許可通知を送信するよう構成する。
【００４９】
なお、離脱を許可する順番については、基準（４）の説明の後に、離脱安定化時間Ｔの説明と併せて詳述する。
（４）離脱を希望するノード装置３２の下位階層として接続されたノード装置３２の数に基づいて離脱許可の優先度を定める。
次に、離脱同期サーバ３６が、離脱を希望するノード装置３２の下位階層として接続されたノード装置３２の数に基づいて、離脱許可の優先度を定める構成について図６を用いて説明する。
【００５０】
離脱したノード装置３２の下流に接続されたノード装置３２による再接続処理に起因するトポロジー構成の不安定時間は、上記（３）で述べたように、“離脱するノード装置３２が放送局装置３１に近いノード装置であるほど長くなる”他に、離脱するノード装置３２の下位階層として接続されたノード装置３２の数が多いほど長くなることが発明者の実験によりわかっている。このことから、離脱を希望するノード装置３２が複数ある場合、下位階層として接続されたノード装置３２の数が少ないノード装置３２を優先して離脱させるよう構成する。図６に示す例の場合、下位階層ノード装置の数が６台であるノード装置３２ａと、下位階層ノード装置の数が５台であるノード装置３２ｂが離脱同期サーバ３６に離脱要求Ｓｒを送信した場合、下位階層ノード装置の数が少ないノード装置３２ｂに、優先的に離脱許可通知を送信する。
【００５１】
続いて、離脱安定化時間Ｔについて説明する。
【００５２】
本実施形態では、離脱同期サーバ３６は、優先的に離脱をさせるノード装置３２を決定するための基準（３）（４）にて述べたトポロジー構成が不安定な状態となる不安定時間を、離脱安定化時間Ｔとして予測し、この時間の経過後に、次に離脱するノード装置に対して離脱許可通知を送信するよう構成する。
【００５３】
離脱同期サーバ３６は、現在コンテンツ配信システムＳに参加中の全ノード装置の数である「トポロジーサイズ」をＳｃｈ、離脱するノード装置３２の階層数をｈｏｐ、離脱するノード装置３２の下位階層として接続されたノード装置３２の数をｎ、各ノード装置３２からの最大分岐数（直近の下位階層ノード装置として接続することができるノード装置の数）を「３」とした場合、離脱ノード装置３２の離脱安定化時間Ｔ（ｓ）を以下の式１によって算出する。
【００５４】
【数１】
2008092004.tif 000003
そして、離脱同期サーバ３６は、離脱許可を与えるための同期制御用キュー（図１０参照。）に、離脱安定化時間Ｔの昇順に離脱希望ノード装置３２を登録する。そして、登録エントリ順に離脱を許可する。図５、図６を用いて説明したように複数のノード装置３２から同時に離脱要求Ｓｒがあった場合には、離脱安定化時間Ｔは、階層数が多いほど、また、下位階層ノード装置数が少ないほど、小さい値が得られるため、離脱安定化時間Ｔの昇順に離脱希望ノード装置３２を同期制御用キューに登録することにより、階層数が多いほど（基準（３））、また、下位階層ノード装置数が少ないほど（基準（４））優先的に離脱許可が与えられることとなる。登録離脱希望ノード装置３２が登録（エントリ）された同期制御用キューのデータ構造の一例を表１に示す。
【００５５】
【表１】
2008092004.tif 000004
表１中、「離脱許可フラグ」は、離脱を許可できる状況であるか否かを示し、「ＯＮ」であれば、離脱を許可できる状況であることを示す。
【００５６】
また、「タイムアウト時刻」は、現在の時刻に離脱安定化時間を加算した時刻であり、離脱同期サーバ３６内のコンピュータ内蔵時計によりカウントされる。
【００５７】
更に、「離脱完了フラグ」は、ノード装置３２から離脱が完了した旨の離脱報告を受けたか否かを示し、「ＯＮ」であれば当該ノード装置３２は離脱が完了していることを示す。
【００５８】
また、「離脱安定化時間タイムアウトフラグ」は、離脱安定化時間Ｔがタイムアウト（経過）したか否かを示し、「ＯＮ」であれば、離脱安定化時間Ｔがタイムアウト（経過）したことを示す。
【００５９】
なお、上述した基準（２）に従って、離脱を希望するノード装置３２に対する離脱可否を決定する場合には、同期制御用キューは、サブツリー毎に管理しなければならない。本実施形態では、基準（２）に従って、離脱を希望するノード装置３２に対する離脱可否を決定することとし、２つのサブツリーに応じた２系統の同期制御用キューを用いることとする。この場合、上記表１のデータ構造がサブツリー毎（キューＱ１、Ｑ２毎）に２つ用意されることとなる。
【００６０】
従って、一方のサブツリーのキューＱ１と、他方のサブツリーのキューＱ２に対し、離脱許可を与えるための実行権限を移動させつつ離脱要求監視を行なうことにより、双方のサブツリーにおいて同時に離脱処理が行なわれないよう構成することができる。具体的には、キューＱ１に属すノード装置３２から離脱処理を完了した旨の離脱報告を受けると、キューＱ２に離脱許可待ち状態となっているノード装置の登録情報があるか否かを確認し、キューＱ２に登録情報があって、キューＱ１に実行権限があれば、キューＱ２へ実行権限を移し、キューＱ２の許可待ち状態となっている登録情報のうち、次に離脱許可できるノード装置の離脱許可フラグをＯＮとする。キューＱ２に離脱許可待ち状態となっているノード装置の登録情報があって、キューＱ１に実行権限がなく、既にキューＱ２に実行権限が移っている場合には、実行権限はそのままに、キューＱ２の許可待ち状態となっている登録情報のうち、次に離脱許可できるノード装置の離脱許可フラグをＯＮとする。一方、キューＱ２に離脱許可待ち状態となっているノード装置の登録情報が無い場合には、実行権限はそのままに、キューＱ１の許可待ち状態となっている登録情報のうち、次に離脱許可できるノード装置の離脱許可フラグをＯＮとする。なお、各キューに対する実行権限の移動のタイミングについては、後にフローチャートを用いて詳細に説明している。
【００６１】
［２．コンテンツ配信システムを構成する各装置の構成等］
図７乃至図１０を参照して、コンテンツ配信システムＳを構成するノード装置３２、放送局装置３１、接続先紹介サーバ３５、離脱同期サーバ３６の構成等について説明する。
【００６２】
［２．１．ノード装置の構成等］
まず、図７に示すノード装置３２の概要構成例を参照して、ノード装置３２の構成および機能について説明する。尚、各ノード装置３２の構成は同じである。
【００６３】
各ノード装置３２は、図７に示すように、演算機能を有するＣＰＵ１１と、受信されたコンテンツデータ等を一時蓄積するリングバッファメモリ１２１、オペレーティングシステム１２２、ストリーム制御プログラム１２３、コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）等をデコード（データ伸張や復号化等）等する画面制御プログラム１２４、トポロジー管理プログラム１２５、コンテンツデータに含まれるエンコードされたオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）する音楽デコーダ１２６、本発明の情報処理プログラムとしての離脱同期制御プログラム１２７及び電源制御プログラム１２８を備え、作業用ＲＡＭ、各種データおよびプログラムを記憶するＲＯＭ等から構成された主記憶装置１２と、各種データやプログラム等を記憶保存（格納）するためのＨＤ等から構成された記録媒体としてのハードディスク装置１３と、ハードディスク装置１３や入力部等の周辺機器との接続を制御し、情報を伝達する周辺機器制御チップ１４と、デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力するビデオチップ１５と、当該ビデオチップ１５から出力されたビデオ信号に基づき映像表示するＣＲＴ、液晶ディスプレイ等の内蔵ディスプレイ１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音源チップ１７と、当該音源チップ１７から出力されたオーディオ信号を音波として出力する内蔵スピーカ１８と、外部のユーザ入力用リモコン２３等からの入力を受信し、ユーザからの指示を受け付け当該指示に応じた指示信号をＣＰＵ１１に対して与える入力部としての赤外線ポート（他にも、例えば、キーボード、マウス、或いは、操作パネル等が可）１９と、ネットワーク８を通じてルータ２４等を介し、他のノード装置３２等との間の情報の通信制御を行なうためのネットワークインターフェイス２１と、主電源２５と、補助電源２６と、を備えて構成され、ＣＰＵ１１、主記憶装置１２、周辺機器制御チップ１４、ビデオチップ１５、音源チップ１７及びネットワークインターフェイス２１はシステムバス２２を介して相互に接続されている。ネットワークインターフェイス２１は、ネットワーク８を介して外部のルータ２４等と接続されている。赤外線ポート１９は、ユーザ入力用リモコン２３からの指示信号を受信し、周辺機器制御チップ１４に当該信号を伝達する。
【００６４】
補助電源２６は、主電源２５の電圧降下を契機に装置への電力供給を主電源２５から切り替えるためのものであり、バッテリ等により構成される。補助電源２６による電力供給中は、ＣＰＵ１１、主記憶装置１２等のストリーム中継を行なうための必要最低限の部材のみを起動状態とする。主電源２５がオフとされた場合には、離脱同期サーバ３６から離脱許可が得られるまでストリーム中継を継続するようにし、離脱許可が得られた時点で、トポロジーから離脱し、その後、補助電源２６もオフとしてノード装置３２を停止させる。このような構成により、ユーザが意図的にノード装置３２の主電源２５を切断した場合や、事故による停電がおきても、コンテンツ配信システムＳからの離脱制御を確実に行なうことができる。
【００６５】
そして、ＣＰＵ１１は主記憶装置１２等に記憶された各種プログラムを実行することにより、ノード装置３２全体を統括制御するようになっており、また、リモコン２３等の入力部からの指示信号に応じて、参加チャンネルの選択処理等を行なうようになっている。ノード装置３２は、実行されるプログラムに応じて、放送局装置３１、情報を送信（転送）するノード装置、情報を受信するノード装置等として機能する。また、ノード装置３２のＣＰＵ１１は、本発明の離脱要求情報送信手段、離脱許可通知受信手段、離脱処理手段及び下位階層ノード装置有無判断手、として機能する。
【００６６】
［２．２．放送局装置の構成等］
次に、図８に示す放送局装置３１の概要構成例を参照して、本発明の配信装置としての放送局装置３１の構成および機能について説明する。
【００６７】
放送局装置３１は、図８に示すように、演算機能を有するＣＰＵ３１１と、受信した第１コンテンツデータ等を一時蓄積するリングバッファメモリ３１２１、オペレーティングシステム３１２２、ストリーム制御プログラム３１２３、コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）等をデコード（データ伸張や復号化等）等する画面制御プログラム３１２４、トポロジー管理プログラム３１２５、コンテンツデータに含まれるエンコードされたオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）する音楽デコーダ３１２６、離脱同期制御プログラム３１２７及び電源制御プログラム３１２８を備え、作業用ＲＡＭ、各種データおよびプログラムを記憶するＲＯＭ等から構成された主記憶装置３１２と、放送用のコンテンツデータおよびプログラム等を記憶保存（格納）するためのＨＤ等から構成されたハードディスク装置３１３と、ハードディスク装置３１３や入力部等の周辺機器との接続を制御し、情報を伝達する周辺機器制御チップ３１４と、デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力するビデオチップ３１５１と、当該ビデオチップ３１５１から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等のディスプレイ３１６１と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音源チップ３１５２と、当該音源チップ３１５２から出力されたオーディオ信号を音波として出力するスピーカ３１６２と、ユーザからの指示を受け付け当該指示に応じた指示信号をＣＰＵ３１１に対して与える入力部としてのキーボード３１６３及びマウス３１６４（他にも、例えば、操作用リモコン、操作パネル等が可）と、ネットワーク８を通じてルータ３１９等を介し、ノード装置３２等との間の情報の通信制御を行なうためのネットワークインターフェイス３１７と、主電源３２０と、補助電源３２１と、を備えて構成され、ＣＰＵ３１１、主記憶装置３１２、周辺機器制御チップ３１４、ビデオチップ３１５１、音源チップ３１５２及びネットワークインターフェイス３１７はシステムバス３１８を介して相互に接続されている。ネットワークインターフェイス３１７は、ネットワーク８を介して外部のルータ３１９等と接続されている。
【００６８】
補助電源３２１は、主電源３２０の電圧降下を契機に装置への電力供給を主電源３２０から切り替えるためのものであり、バッテリ等により構成される。補助電源３２１による電力供給中は、ＣＰＵ３１１、主記憶装置３１２等のコンテンツ配信を行なうための必要最低限の部材のみを起動状態とする。主電源３２０がオフとされた場合には、放送終了を伝令する為の放送終了通知パケットを配信するまでは、コンテンツの配信を継続するようにし、放送終了通知パケットを配信し終わった時点で、補助電源３２１もオフとして放送局装置３１を停止させる。なお、放送終了通知パケットを受信したノード装置３２では、コンテンツの再生を停止して内蔵ディスプレイ１６上に放送が停止した旨の文言を表示する。
【００６９】
そして、ＣＰＵ３１１は主記憶装置３１２等に記憶された各種プログラムを実行することにより、放送局装置３１全体を統括制御するようになっており、また、キーボード３１６３等の入力部からの指示信号に応じて、種々の処理を行なうようになっている。
【００７０】
［２．３．接続先紹介サーバの構成等］
次に、図９に示す接続先紹介サーバ３５の概要構成例を参照して、接続先紹介サーバ３５の構成および機能について説明する。
【００７１】
接続先紹介サーバ３５は、図９に示すように、演算機能を有するＣＰＵ３５１と、端末管理プログラム３５２１、オペレーティングシステム３５２２、トポロジー管理プログラム３５２３、接続先紹介プログラム３５２４及び運用管理プログラム３５２５等を備え、作業用ＲＡＭ、各種データおよびプログラムを記憶するＲＯＭ等から構成された主記憶装置３５２と、トポロジーデータベース、端末管理データベース及びプログラム等を記憶保存（格納）するためのＨＤ等から構成されたハードディスク装置３５３と、ハードディスク装置３５３や入力部等の周辺機器との接続を制御し、情報を伝達する周辺機器制御チップ３５４と、オペレーティングシステム３５２２のＧＵＩ（graphical user interface）として必要な文字や図等の画像を表示するためにビデオ信号を出力するビデオチップ３５５と、当該ビデオチップ３５５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等のディスプレイ３５６１と、ユーザからの指示を受け付け当該指示に応じた指示信号を、周辺機器制御チップ３５４を介してＣＰＵ３５１に与える入力部としてのキーボード３５６２及びマウス３５６３と、ネットワーク８を通じてルータ３５９等を介し、他のノード装置３２等との間の情報の通信制御を行なうためのネットワークインターフェイス３５７と、を備えて構成され、ＣＰＵ３５１、主記憶装置３５２、周辺機器制御チップ３５４、ビデオチップ３５５及びネットワークインターフェイス３５７はシステムバス３５８を介して相互に接続されている。ビデオチップ３５５は、外部のディスプレイ３５６１と接続されており、周辺機器制御チップ３５４は、外部のキーボード３５６２及びマウス３５６３と接続されている。ネットワークインターフェイス３５７は、ネットワーク８を介して外部のルータ３５９等と接続されている。
【００７２】
そして、ＣＰＵ３５１は主記憶装置３５２等に記憶された各種プログラムを実行することにより、接続先紹介サーバ３５全体を統括制御するようになっている。具体的には、ＣＰＵ３５１は、キーボード３５６２又はマウス３５６３等の入力部からの指示信号に応じて、端末管理プログラム３５２１における条件等を変更したり、トポロジー管理プログラム３５２３や接続先紹介プログラム３５２４におけるポリシ等を変更することができる。また、ＣＰＵ３５１は、ネットワーク８やネットワークインターフェイス３５７を通じて受信したノード装置３２からの接続先候補要求Ｓｃに対して、トポロジー管理プログラム３５２３及び接続先紹介プログラム３５２４を用いて接続先候補を決定し、接続先候補通知Ｎｋ｛｝を返信する。
【００７３】
［２．４．離脱同期サーバの構成等］
次に、図１０に示す離脱同期サーバ３６の概要構成例を参照して、本発明の離脱可否制御装置としての離脱同期サーバ３６の構成および機能について説明する。
【００７４】
離脱同期サーバ３６は、図１０に示すように、演算機能を有するＣＰＵ３６１と、端末管理プログラム３６２１、オペレーティングシステム３６２２、本発明の離脱可否制御プログラムとしての離脱要求監視プログラム３６２３及び同期制御用キュー３６２４等を備え、作業用ＲＡＭ、各種データおよびプログラムを記憶するＲＯＭ等から構成された主記憶装置３６２と、各種データ及びプログラム等を記憶保存（格納）するためのＨＤ等から構成されたハードディスク装置３６３と、ハードディスク装置３６３や入力部等の周辺機器との接続を制御し、情報を伝達する周辺機器制御チップ３６４と、オペレーティングシステム３６２２のＧＵＩ（graphical user interface）として必要な文字や図等の画像を表示するためにビデオ信号を出力するビデオチップ３６５と、当該ビデオチップ３６５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等のディスプレイ３６６１と、ユーザからの指示を受け付け当該指示に応じた指示信号を、周辺機器制御チップ３６４を介してＣＰＵ３６１に与える入力部としてのキーボード３６６２及びマウス３６６３と、ネットワーク８を通じてルータ３６９等を介し、他のノード装置３２等との間の情報の通信制御を行なうためのネットワークインターフェイス３６７と、を備えて構成され、ＣＰＵ３６１、主記憶装置３６２、周辺機器制御チップ３６４、ビデオチップ３６５及びネットワークインターフェイス３６７はシステムバス３６８を介して相互に接続されている。ビデオチップ３６５は、外部のディスプレイ３６６１と接続されており、周辺機器制御チップ３６４は、外部のキーボード３６６２及びマウス３６６３と接続されている。ネットワークインターフェイス３６７は、ネットワーク８を介して外部のルータ３６９等と接続されている。
【００７５】
そして、ＣＰＵ３６１は主記憶装置３６２等に記憶された各種プログラムを実行することにより、離脱同期サーバ３６全体を統括制御するようになっている。具体的には、ＣＰＵ３６１は、キーボード３６６２又はマウス３６６３等の入力部からの指示信号に応じて、端末管理プログラム３６２１における条件等を変更したり、離脱要求監視プログラム３６２３やキューＱ１及びキューＱ２を含む同期制御用キュー３６２４におけるポリシや実行権限等を変更することができる。また、ＣＰＵ３６１は、ネットワーク８やネットワークインターフェイス３６７を通じて受信したノード装置３２からの離脱要求Ｓｒに対して、離脱要求監視プログラム３６２３や同期制御用キュー３６２４を用いて離脱許可通知或いは離脱保留指示通知を返信する。またＣＰＵ３６１は、本発明の同時離脱処理上限数決定手段、離脱要求情報受信手段、離脱許可通知手段、離脱処理中サブツリー特定手段、介在ノード装置数取得手段、及び下位階層ノード装置数取得手段、として機能する。
【００７６】
［３．本実施形態のコンテンツ配信システムにおける動作］
次に、本実施形態のコンテンツ配信システムＳにおける各装置の動作について図１１乃至図１６を用いて説明する。なお、以下の各装置の動作説明において、自ノード装置３２の直近の下位階層ノード装置３２として接続されたノード装置を、「下流ノード装置３２」と呼び、自ノード装置３２の直近の上位階層ノード装置３２として接続されたノード装置を、「上流ノード装置３２」と呼ぶこととする。
【００７７】
［３．１．ノード装置の動作］
まず、図１１乃至図１３を参照して、本実施形態のノード装置３２の動作について説明する。
【００７８】
ノード装置３２のＣＰＵ１１は、ユーザ入力用リモコン２３等により自ノード装置３２に電源が入れられたことを認識すると、図１１のフローチャートに示す情報処理を開始する。なお、以下の処理はＣＰＵ１１の制御に基づいて実行される。
【００７９】
処理が開始されると、ＣＰＵ１１は、当該ノード装置３２のプログラム等の各種設定を初期化し（ステップＳ１）、ユーザ入力用リモコン２３等によりコンテンツ配信システムＳへの参加が選択され、参加要求がされたか否かを判断する（ステップＳ２）。参加要求がされた場合には（ステップＳ２；ＹＥＳ）、接続すべき上流ノード候補を紹介してもらうべく、接続先候補要求Ｓｃを接続先紹介サーバ３５へ送信する（ステップＳ３）。そして、主電源２５がオフとされたか否かを判断し（ステップＳ４）、主電源２５がオフとされていなければ（ステップＳ４；ＮＯ）、ステップＳ２の処理へ戻り、主電源２５がオフとされた場合には（ステップＳ４；ＹＥＳ）、電源供給の縮退を行なう（ステップＳ５）。具体的には、主電源２５から補助電源２６へ電力供給源を切り替えると共に、ＣＰＵ１１、主記憶装置１２等のストリーム中継を行なうための必要最低限の部材のみを起動状態とする。そして、電源縮退中フラグをＯＮとして（ステップＳ６）、図１２のステップＳ２２へ移行する。
【００８０】
一方、参加要求がされていない場合には（ステップＳ２；ＮＯ）、接続先紹介サーバ３５から１又は複数の上流ノード候補を含む接続先候補通知Ｎｋ{}を受信したか否かを判断する（ステップＳ７）。接続先紹介サーバ３５から１又は複数の上流ノード候補を受信した場合には（ステップＳ７；ＹＥＳ）、受信した１又は複数の全ての上流ノード候補、又はそのうち何れかの１又は複数の上流ノードを選択して、当該上流ノードに対してＵＰｎＰ（Universal Plug andPlay Forum）、ＵＤＰ（User Datagram Protocol）Ｈｏｌｅ Ｐｕｎｃｈｉｎｇ等によるＮＡＴ（Network Address Translator）越え処理を実施し、接続要求情報Ｓｐを送信する（ステップＳ８）。なお、ステップＳ７にて接続先紹介サーバ３５から得られる上流ノード候補の中には、既にコンテンツ配信システムＳに参加しているノード装置３２のほか、放送局装置３１が含まれることもある。また、接続要求情報Ｓｐを送信する上流ノード装置３２又は（又は放送局装置３１）は、１台であっても、複数台であってもよい。接続要求を送信した上流ノード装置３２又は（又は放送局装置３１）のうち、接続許可応答が返信され、接続が適切に行なわれた上流ノード装置３２又は（又は放送局装置３１）に対して、次のステップでコンテンツデータを配信するよう要求すればよいからである。
【００８１】
続いて、ＮＡＴ越え処理が適切に行なわれ、接続要求情報Ｓｐが送信できた上流ノード装置３２（又は放送局装置３１）に対して、放送局装置３１から配信されているコンテンツデータを配信するよう要求するストリーム配信要求を送信して（ステップＳ９）、ストリーム配信を受け、コンテンツ配信システムＳへの参加が完了すると、接続先紹介サーバ３５へ参加報告を送信（ステップ１０）し、ステップＳ４の処理に戻る。
【００８２】
また、接続先紹介サーバ３５から接続先候補通知Ｎｋ{}を受信していない場合には（ステップＳ７；ＮＯ）、上流ノード装置３２（又は放送局装置３１）からコンテンツデータを受信したか否かを判断する（ステップＳ１１）。ここでは、ステップＳ７〜Ｓ１０の処理で接続した上流ノード装置３２（又は放送局装置３１）から送信されたコンテンツデータの一部（パケット）の受信を開始したか否かを判断することとなる。そして、上流ノード装置３２（又は放送局装置３１）からコンテンツデータを受信した場合には（ステップＳ１１；ＹＥＳ）、自分の下に下流ノード装置３２が接続されている場合には、当該下流ノード装置３２に対して、上流ノード装置３２（又は放送局装置３１）から送信されたコンテンツデータを送信する（ステップＳ１２）。自分の下に下流ノード装置３２が接続されていない場合、つまり、自分がコンテンツ配信システムＳの末端に位置する場合には、コンテンツデータを他のノード装置３２に送信せずともよい。
【００８３】
その後、ステップＳ１１にて上流ノード装置３２（又は放送局装置３１）から受信したコンテンツデータを再生（ステップ１３）し、ステップＳ４の処理に戻る。
【００８４】
ステップＳ１１の処理にて、上流ノード装置３２（又は放送局装置３１）からコンテンツデータを受信していない場合には（ステップＳ１１；ＮＯ）、図１２へ移り、ユーザ入力用リモコン２３等によりコンテンツ配信システムＳからの離脱が選択され、離脱要求がされたか否かを判断する（ステップＳ２１）。離脱要求がされた場合には（ステップＳ２１；ＹＥＳ）、ＣＰＵ１１が下位階層ノード装置有無判断手段として機能し、自分の下に下流ノード装置３２が接続されているか否かを判断（ステップＳ２２）し、自分の下に下流ノード装置３２が接続されている場合には（ステップＳ２２；ＹＥＳ）、接続先紹介サーバ３５から自己の階層数を示す「階層数情報」、自己の下位階層として接続されたノード装置３２の数を示す「下位階層ノード装置数情報」を取得する（ステップＳ２３）。そして、ＣＰＵ１１が離脱要求情報送信手段として機能し、接続先紹介サーバ３５から取得した階層数情報と下位階層ノード装置数情報を含む離脱要求Ｓｒを離脱同期サーバ３６へ送信（ステップ２４）し、ステップＳ４の処理に戻る。
【００８５】
一方、離脱要求がされていない場合には（ステップＳ２１；ＮＯ）、離脱同期サーバ３６から離脱可否に関する通知、すなわち、離脱許可通知又は離脱保留指示通知を受信したか否かを判断する（ステップＳ２５）。離脱同期サーバ３６から通知を受信した場合には（ステップＳ２５；ＹＥＳ）、離脱許可通知であったか否かを判断し（ステップＳ２６）、離脱許可通知でない場合（ステップＳ２６；ＮＯ）には、ステップＳ２２へ移行する。
【００８６】
他方、離脱許可通知だった場合には（ステップＳ２６；ＹＥＳ）、ＣＰＵ１１が離脱処理手段として機能し、ステップＳ２７移行の離脱処理へと移行する。なお、ステップＳ２２の判断にて、自分の下に下流ノード装置３２が接続されていない場合にも（ステップＳ２２；Ｎｏ）、ステップＳ２７移行の離脱処理へと移行する。これにより、例えば、ステップＳ２５において離脱同期サーバ３６から受信した通知が離脱許可通知でなく（Ｓ２６ＮＯ）、保留指示された場合であっても、その後、自分の下に接続されていた下流ノード装置３２が他の上流ノード装置３２に接続されたり、放送局装置３１を頂点とするツリーから離脱して、自分の下に下流ノード装置３２がいなくなった場合には、ステップＳ２２の判断からの分岐により（Ｓ２２ＮＯ→Ｓ２７）、離脱処理が行なえるようになっている。
【００８７】
ステップＳ２７移行の離脱処理では、先ず、上流ノード装置３２（又は放送局装置３１）へストリーム停止要求を送信し（ステップＳ２７）、また、当該上流ノード装置３２（又は放送局装置３１）へ接続解除要求を送信する（ステップＳ２８）。そして上流ノード装置３２（又は放送局装置３１）との接続が解除された後に、接続先紹介サーバ３５へ離脱報告を送信し（ステップＳ２９）、続いて、離脱同期サーバ３６へ離脱報告を送信する（ステップＳ３０）。
【００８８】
そして、電源縮退中フラグがＯＮか否かを判断し（ステップＳ３１）、電源縮退中フラグがＯＮでない場合には（ステップＳ３１；ＮＯ）、ステップＳ４の処理に戻り、電源縮退中フラグがＯＮである場合には（ステップＳ３１；ＹＥＳ）、補助電源２６をオフ（ステップＳ３２）として処理を終了する。
【００８９】
ステップＳ２５にて、離脱同期サーバ３６から通知を受信していない場合には（ステップＳ２５；ＮＯ）、図１３へ移り、接続要求情報Ｓｐを受信したか否かを判断する（ステップＳ４１）。接続要求情報Ｓｐを受信した場合には（ステップＳ４１；ＹＥＳ）、接続要求情報Ｓｐの送信元のノード装置３２を、ノード管理テーブルに下流ノード装置３２として追加して、下流ノード装置３２と（ステップＳ４２）し、送信元のノード装置３２に接続許可応答を返信してステップＳ４の処理に戻る。
【００９０】
一方、接続要求情報Ｓｐを受信していない場合には（ステップＳ４１；ＮＯ）、接続解除要求を受信したか否かを判断する（ステップＳ４３）。接続解除要求を受信した場合には（ステップＳ４３；ＹＥＳ）、接続解除要求の送信元の下流ノード装置３２を、ノード管理テーブルから削除して（ステップＳ４４）、当該下流ノード装置３２を切り離してステップＳ４の処理に戻る。
【００９１】
また、接続解除要求を受信していない場合には（ステップＳ４３；ＮＯ）、ストリーム配信要求を受信したか否かを判断する（ステップＳ４５）。ストリーム配信要求を受信した場合には（ステップＳ４３；ＹＥＳ）、ストリーム配信要求の送信元の下流ノード装置３２にコンテンツデータの送信（ストリーミング）を開始（ステップＳ４６）し、ステップＳ４の処理に戻る。
【００９２】
そして、ストリーム配信要求を受信していない場合には（ステップＳ４５；ＮＯ）、ストリーム停止要求を受信したか否かを判断する（ステップＳ４７）。ストリーム停止要求を受信した場合には（ステップＳ４７；ＹＥＳ）、ストリーム停止要求の送信元の下流ノード装置３２へのコンテンツデータの送信（ストリーミング）を停止（ステップＳ４８）し、ステップＳ４の処理に戻る。
【００９３】
［３．２．接続先紹介サーバ３５の動作］
次いで、図１４を参照して、本実施形態の接続先紹介サーバ３５の動作について説明する。なお、以下の処理はＣＰＵ３５１の制御に基づいて実行される。
【００９４】
接続先紹介サーバ３５のＣＰＵ３５１は、ネットワークインターフェイス３５７を介した外部からの指示又はキーボード３５６２等の入力部からの入力等により、接続先紹介サービスを開始することを認識すると、その処理を開始する（スタート）。
【００９５】
処理が開始されると、ＣＰＵ３５１は、当該接続先紹介サーバ３５のプログラム等の各種設定を初期化し（ステップＳ６０）、放送局装置３１から登録要求（又は解除要求）があるか否かを判断する（ステップＳ６１）。放送局装置３１の登録要求又は解除要求がある場合には（ステップＳ６１；ＹＥＳ）、当該要求に応じて、放送局装置３１の所在情報（ＩＰアドレス等）を端末管理データベースに登録し、又は解除する（ステップＳ６２）。次いで、当該放送局装置３１のチャンネル情報をトポロジーデータベースに登録し又は解除し（ステップＳ６３）、接続先紹介サーバとしてのサービスを終了するか否か、キーボード３５６２等からの入力やネットワークインターフェイス３５７を介した指示等により判断する（ステップＳ６４）。接続先紹介サーバサービスを終了する場合には、当該処理を終了し（ステップＳ６４；ＹＥＳ）、接続先紹介サーバサービスを終了しない場合には（ステップＳ６４；ＮＯ）、ステップＳ６１に戻る。なお、ステップＳ６１〜Ｓ６３では、放送局装置３１からの登録要求又は解除要求に対する処理について述べたが、放送局装置３１以外の他の放送局装置からの登録要求又は解除要求に対する処理、或いは、新たに設立された放送局装置のデータベースへの登録等も同様の処理が行なわれることとなる。
【００９６】
ステップＳ６１において、放送局装置の登録要求又は解除要求がない場合には（ステップＳ６１；ＮＯ）、ノード装置３２から参加要求を受信したか否かを判断する（ステップＳ６５）。参加要求を受信した場合には（ステップＳ６５；ＹＥＳ）、参加要求の送信元のノード装置３２の所在情報（ＩＰアドレス等）を端末管理データベースに登録する（ステップＳ６６）。
【００９７】
一方、ノード装置３２から参加要求を受信していない場合には（ステップＳ６５；ＮＯ）、ノード装置３２から接続先紹介要求Ｓｃを受信した否かを判断する（ステップＳ６７）。接続先紹介要求Ｓｃを受信した場合には（ステップＳ６７；ＹＥＳ）、トポロジーデータベースから接続先候補となるノード装置３２の所在情報（ＩＰアドレス等）を取得して、要求元のノード装置３２に接続先の候補となるノード装置３２（又は放送局装置３１）の所在情報を接続先候補通知Ｎｋ｛｝として送信し（ステップＳ６８）、ステップＳ６４に戻る。
【００９８】
ステップＳ６７において、接続先紹介要求Ｓｃを受信していない場合には（ステップＳ６７；ＮＯ）、ノード装置３２からコンテンツ配信システムＳに参加したことによるトポロジー参加報告又は離脱報告があるか否かを判断する（ステップＳ６９）。ノード装置３２からトポロジー参加報告又は離脱報告がある場合には（ステップＳ６９；ＹＥＳ）、当該ノード装置３２がコンテンツ配信システムＳに参加又は離脱したことによるトポロジーの変動に関する情報をトポロジーのデータベースへ登録（更新）（ステップＳ７０）し、ステップＳ６4へ戻る。
【００９９】
次いで、ステップＳ６９において、ノード装置３２からトポロジー参加報告又は離脱報告がない場合には（ステップＳ６９；ＮＯ）、トポロジーサイズ取得要求を受信したか否かを判断する（ステップＳ７１）。トポロジーサイズ取得要求を受信した場合には（ステップＳ７１；ＹＥＳ）、トポロジーデータベースからトポロジーサイズを取得して、トポロジーサイズ取得要求の送信元のノード装置３２へ送信（ステップＳ７２）し、ステップＳ６4へ戻る。
【０１００】
ステップＳ７１において、トポロジーサイズ取得要求を受信していない場合には（ステップＳ７１；ＮＯ）、ノード装置３２から階層数情報及び下位階層ノード装置数情報取得要求を受信したか否かを判断する（ステップＳ７３）。階層数情報及び下位階層ノード装置数情報取得要求を受信した場合には（ステップＳ７３；ＹＥＳ）、階層数情報及び下位階層ノード装置数情報取得要求の送信元のノード装置３２の階層数と下位階層ノード装置数をトポロジーデータベースから取得して、当該要求元のノード装置３２へ送信（ステップＳ７４）し、ステップＳ4へ戻る。ステップＳ７３において、トポロジーサイズ取得要求を受信していない場合にも（ステップＳ７３；ＮＯ）、ステップＳ６4へ戻る。
【０１０１】
［３．３．離脱同期サーバ３６の動作］
次いで、図１５及び図１６を参照して、本実施形態の離脱同期サーバ３６の動作について説明する。なお、以下の処理はＣＰＵ３６１の制御に基づいて実行される。
【０１０２】
離脱同期サーバ３６のＣＰＵ３６１は、ネットワークインターフェイス３６７を介した外部からの指示又はキーボード３６６２等の入力部からの入力等により、離脱要求監視サービスを開始することを認識すると、その処理を開始する（スタート）。
【０１０３】
処理が開始されると、ＣＰＵ３６１は、当該離脱同期サーバ３６のプログラム等の各種設定を初期化し（ステップＳ８０）、ノード装置３２から離脱要求Ｓｒを受信したか否かを判断する（ステップＳ８１）。ＣＰＵ３６１が離脱要求情報受信手段として機能し、ノード装置３２から離脱要求Ｓｒを受信した場合には（ステップＳ８１；ＹＥＳ）、離脱要求送信元のノード装置３２が、同期制御用キュー３６２４に登録されているか否かを判断し（ステップＳ８２）、登録されている場合には（ステップＳ８２；ＹＥＳ）、次いで、離脱要求送信元のノード装置３２の同期制御用キュー離脱許可フラグがＯＮか否かを判断する（ステップＳ８３）。
【０１０４】
そして、離脱要求送信元のノード装置３２の同期制御用キュー離脱許可フラグがＯＮである場合には（ステップＳ８３；ＹＥＳ）、離脱安定化時間Ｔと現在時刻による離脱同期制御用タイマーを起動してタイムアウト時刻のカウントを開始し、（ステップＳ８４）、ＣＰＵ３６１が離脱許可通知手段として機能し、離脱許可通知を離脱要求送信元のノード装置３２へ送信する（ステップＳ８５）。そして、離脱同期サーバとしてのサービスを終了するか否か、キーボード３６６２等からの入力やネットワークインターフェイス３６７を介した指示等により判断する（ステップＳ８６）。離脱同期サーバサービスを終了しない場合には（ステップＳ８６；ＮＯ）、ステップＳ８１に戻る。
【０１０５】
ステップＳ８１において、離脱要求Ｓｒを受信していない場合には（ステップＳ８１；ＮＯ）、トポロジーサイズを取得すべき時刻（取得契機）であるか否かを判断（ステップＳ８７）し、トポロジーサイズ取得契機である場合には（ステップＳ８３；ＹＥＳ）、接続先紹介サーバ３５へトポロジーサイズ取得要求を送信し、現在コンテンツ配信システムＳに参加しているノード装置３２の数をトポロジーサイズとして取得する（ステップＳ８８）。そして、ＣＰＵ３６１が同時離脱処理数決定手段として機能し、同時離脱処理上限数を算出して決定（ステップＳ８９）し、ステップＳ８６へ戻る。
【０１０６】
ステップＳ８２において、離脱要求送信元のノード装置３２が、同期制御用キュー３６２４に登録されてない場合には（ステップＳ８２；ＮＯ）、離脱要求送信元のノード装置３２に対する離脱安定化時間Ｔを上述した式（１）に従って算出（ステップＳ９０）し、次いで、ＣＰＵ３６１が離脱処理中サブツリー特定手段として機能し、離脱要求送信元のノード装置３２が属すサブツリーを特定する（ステップＳ９１）。
【０１０７】
続いて、離脱要求送信元のノード装置３２の離脱安定化時間Ｔを含む各種情報を、送信元のノード装置３２が属すサブツリーの同期制御用キュー３６２４へ登録（表１参照）した（ステップＳ９２）後に、ここで登録した同期制御用キュー（キューＱ１又はキューＱ２）には、現在実行権限があるか否かを判断する（ステップＳ９３）。そして、登録した同期制御用キューに実行権限がある場合には（ステップＳ９３；ＹＥＳ）、離脱要求送信元のノード装置３２は、同期制御用キューの次の離脱ノードとして登録されており、かつ、同時離脱処理上限数に達してないか否かを判断する（ステップＳ９４）。離脱要求送信元のノード装置３２が、同期制御用キューの次の離脱ノードとして登録されており、かつ、同時離脱処理上限数に達していなければ（ステップＳ９４；ＹＥＳ）、離脱要求送信元のノード装置３２の同期制御用キュー離脱許可フラグをＯＮとし（ステップＳ９５）、ステップＳ８３へ戻る。
【０１０８】
一方、ステップＳ９３において、登録した同期制御用キューに実行権限が無い場合（ステップＳ９３；Ｎｏ）、又は、ステップＳ９４において、離脱要求送信元のノード装置３２が、同期制御用キューの次の離脱ノードとして登録されており、かつ、同時離脱処理上限数に達していないという条件を満たさない場合（ステップＳ９３；Ｎｏ）には、離脱保留指示通知を離脱要求送信元のノード装置３２へ送信し（ステップＳ９６）、ステップＳ８６へ戻る。
【０１０９】
ステップＳ８７において、トポロジーサイズ取得契機でない場合には（ステップＳ８７；ＮＯ）、図１６へ移行し、ノード装置３２から離脱報告があったか否かを判断する（ステップＳ１１１）。ノード装置３２から離脱報告があった場合には（ステップＳ１１１；ＹＥＳ）、離脱報告の送信元のノード装置３２の離脱安定化時間タイムアウトフラグがＯＮであるか否かを判断して（ステップＳ１１２）、離脱安定化時間タイムアウトフラグがＯＮである場合には（ステップＳ１１２；ＹＥＳ）、離脱報告送信元のノード装置３２を同期制御用キュー３６２４から削除する（ステップＳ１１３）。そして、離脱報告送信元のノード装置３２が属さないサブツリーの同期制御用キューに、登録情報があるか否か（ノード装置３２の登録があるか否か）を判断する（ステップＳ１１４）。離脱報告送信元のノード装置３２が属さないサブツリーの同期制御用キューに、登録情報がある場合には（ステップＳ１１４；ＹＥＳ）、離脱報告送信元のノード装置３２が属すサブツリーの同期制御用キューには、現在実行権限があるか否かを判断する（ステップＳ１１５）。そして、実行権限がない場合には（ステップＳ１１５；ＮＯ）、ステップＳ１１７へ移行し、実行権限がある場合には（ステップＳ１１５；ＹＥＳ）、離脱報告送信元のノード装置３２が属さないサブツリーの同期制御用キューに実行権限を移動する（ステップＳ１１６）。次いで、ステップＳ１１７にて、実行権限を移動した先の同期制御用キューにおける次の離脱ノードとして登録されたノード装置３２の離脱許可フラグをＯＮとし（ステップＳ１１７）、ステップＳ８６へ戻る。
【０１１０】
ステップＳ１１４において、離脱報告送信元のノード装置３２が属さないサブツリーの同期制御用キューに、登録情報がない場合には（ステップＳ１１４；ＮＯ）、離脱報告送信元のノード装置３２が属すサブツリーの同期制御用キューにおける次の離脱ノードとして登録されたノード装置３２の離脱許可フラグをＯＮとし（ステップＳ１１８）、ステップＳ８６へ戻る。また、ステップＳ１１２において、離脱報告の送信元のノード装置３２の離脱安定化時間タイムアウトフラグがＯＮでない場合（ステップＳ１１２；ＮＯ）には、離脱報告の送信元のノード装置３２の離脱完了フラグをＯＮとし（ステップＳ１１９）、ステップＳ８６へ戻る。
【０１１１】
ステップ１１１において、ノード装置３２から離脱報告がない場合（ステップＳ１１１；ＮＯ）には、離脱安定化時間Ｔがタイムアウトしているノード装置３２が同期制御用キューにあるか否かを判断し（ステップＳ１２０）、離脱安定化時間Ｔがタイムアウトしているノード装置３２がない場合（ステップＳ１２０；ＮＯ）には、ステップＳ８６へ戻る。一方、離脱安定化時間Ｔがタイムアウトしているノード装置３２がある場合には（ステップＳ１２０；ＹＥＳ）、当該タイムアウトしたノード装置３２の離脱完了フラグがＯＮであるか否かを判断し（ステップＳ１２１）、当該タイムアウトしたノード装置３２の離脱完了フラグがＯＮでない場合（ステップＳ１２１；ＮＯ）には、ステップＳ１１３へ戻り、離脱完了フラグがＯＮである場合（ステップＳ１２１；ＹＥＳ）、当該タイムアウトしたノード装置３２のタイムアウトフラグをＯＮとし（ステップＳ１２２）、ステップＳ８６へ戻る。
【０１１２】
以上のように、本実施形態では、離脱制御サーバ３６は、コンテンツ配信システムＳに参加しているノード装置３２の数をトポロジーサイズとして取得し、当該トポロジーサイズに基づいて、同時離脱処理上限数を決定し、参加中の何れかのノード装置３２から離脱要求Ｓｒを受信すると、現在離脱処理中のノード装置３２の数が、同時離脱処理上限数に達していない場合には、離脱要求Ｓｒの送信元のノード装置３２に対して離脱を許可し、現在離脱処理中のノード装置３２の数が同時離脱処理上限数に達している場合には、離脱要求Ｓｒの送信元のノード装置３２に対して離脱を許可しないよう構成したので、コンテンツ配信システムＳ全体の配信トポロジーの中で、ノード装置３２の同時多発的な離脱処理による配信停止（配信中断）が発生する事態を回避して、トポロジー安定性を向上させることができる。
【０１１３】
なお、上述した実施形態では、コンテンツ配信システムＳが２つのサブツリーＡ、Ｂからなる場合について述べたが、例えば、放送局装置３１の直近の下位階層として接続されたノード装置３２がｎ台ある場合には、コンテンツ配信システムＳがｎつのサブツリーから構成されることとなる。この場合にも、全てのサブツリーにてノード装置３２の離脱が同時に発生しないよう、離脱を許可するための実行権限を移動させるよう制御すればよい。つまり、離脱制御サーバ３６は、放送局装置３１の直近の下位階層に接続されたｎ台のノード装置３２を最上位として形成するｎ個のサブツリーのうち、現在、ツリー型配信システムＳから離脱する離脱処理中のノード装置３２が属するサブツリーを特定し、参加中の何れかのノード装置３２から離脱要求Ｓｒを受信すると、離脱要求Ｓｒ送信元のノード装置３２が属するサブツリーが、現在処理中のサブツリーと同一である場合には、離脱要求Ｓｒ送信元のノード装置３２に対して離脱を許可し、離脱要求Ｓｒ送信元のノード装置３２が属するサブツリーが、現在処理中のサブツリーと異なる場合には、離脱要求Ｓｒ送信元のノード装置３２に対して離脱を保留するよう指示するよう構成する。これによれば、配信トポロジーを構成するサブツリー群の中で単一のサブツリーのみから同時にノードの離脱を許可するので、離脱ノードによる配信トポロジーの撹乱を局所化することができ、結果として配信トポロジーを安定化させることができる。
【０１１４】
更に、離脱制御サーバ３６は、離脱要求Ｓｒ送信元のノード装置３２と、放送局装置３１との間に介在するノード装置３１の数である介在ノード装置数が多いノード装置３２に対して優先的に離脱を許可するよう構成し、また、離脱制御サーバ３６は、離脱要求Ｓｒ送信元のノード装置３２の下位階層ノード装置数が少ないノード装置３２に対して優先的に離脱を許可するよう構成したので、同時に離脱要求を発行した複数のノード装置３２に対する同期制御キュー内での離脱保留時間の合計値を小さくすることができる。つまり、ノード装置３２における離脱処理をスムーズに行なわせることができる。
【０１１５】
更に補足説明をすると、例えば、タスクＡの処理時間が「１」、タスクＢの処理時間が「２」、タスクＣの処理時間が「３」、タスクＤの処理時間が「４」、タスクＥの処理時間が「５」である場合、図１７に示す如く、
（Ｉ）Ａ→Ｂ→Ｃ→Ｄ→Ｅの順で処理した場合、夫々のタスク待ち時間は、タスクＡの待ち時間が「０」、タスクＢの待ち時間が「１」、タスクＣの待ち時間が「３」、タスクＤの待ち時間が「６」、タスクＥの待ち時間が「１０」となり、（ＩＩ）Ｅ→Ｄ→Ｃ→Ｂ→Ａの順で処理した場合、夫々のタスク待ち時間は、タスクＥの待ち時間が「０」、タスクＤの待ち時間が「５」、タスクＣの待ち時間が「９」、タスクＢの待ち時間が「１２」、タスクＡの待ち時間が「１４」となる。
【０１１６】
タスクＡ〜Ｅが同時に到着したときには、処理時間が小さいものから順番に処理した方が、各タスクの待ち時間の合計値が小さくなる。
【０１１７】
本実施形態における制御では、離脱要求ノードが離脱するときに離脱安定化時間だけ次のタスクを待たせなければならないという制約があるので、離脱安定化時間が小さいものから処理するようになっている。
【０１１８】
また、ステップＳ２２において、下流ノード装置３２があるか否か、すなわち、自己が末端のノード装置であるか否かを判断し、末端のノード装置であれば、離脱同期サーバ３６へ離脱の許可を得ることなく、すぐにステップＳ２７以降の離脱処理に移行するよう構成したので、離脱によりトポロジー構成に影響のないノード装置３２については、スムーズに離脱処理を行なうことができる。
【０１１９】
なお、本発明の一例として上述の実施形態を説明したが、本発明はこれに限定されず、例えば、以下の変形形態とすることもできる。
【０１２０】
上述の実施形態においては、コンテンツ配信システムＳにおいて、接続先紹介サーバ３５及び離脱同期サーバ３６を備えているが、この構成に限定されず、システムＳにこれらのサーバ装置を備えていなくても、コンテンツ配信システムＳの放送局装置３１が各サーバ３５，３６として機能するよう構成してもよい。この場合、放送局装置３１が、本発明の配信装置及び離脱可否制御装置として機能することとなる。従って、このような構成とした場合、各装置の役割が変更される場合がある。例えば、上述の実施形態においては、離脱同期サーバ３６が、接続先紹介サーバ３５からトポロジーサイズ、階層数情報及び下位階層ノード装置数情報を取得しているが、放送局装置３１が放送局装置３１と各ノード装置３２の接続態様をトポロジー管理情報（トポロジーデータベース）として記憶している場合には、離脱同期サーバ３６は、放送局装置３１からトポロジーサイズ、階層数情報及び下位階層ノード装置数情報を取得するよう構成すればよい。更に、離脱同期サーバ３６自身が、放送局装置３１と各ノード装置３２の接続態様をトポロジー管理情報（トポロジーデータベース）として記憶している場合には、当該トポロジーデータベースからトポロジーサイズ、階層数情報及び下位階層ノード装置数情報を取得するよう構成すればよい。
【０１２１】
上述の実施形態においては、特に説明していないが、コンテンツ配信システムＳにおいて配信されてノード装置３２において視聴されるコンテンツデータは、データ量が小さくなるように、または試聴に適したように変換してもよい。
【０１２２】
上述のノード装置３２、放送局装置３１、接続先紹介サーバ３５及び離脱同期サーバ３６の各動作に対応するプログラムをフレキシブルディスク又はハードディスク等の情報記録媒体に記録しておき、或いはインターネット等のネットワークを介して取得して記録しておき、これをマイクロコンピュータ等により読み出して実行することにより、当該マイクロコンピュータを各実施形態に係るＣＰＵ１１、ＣＰＵ３１１、ＣＰＵ３５１又はＣＰＵ３６１として機能させることも可能である。
【図面の簡単な説明】
【０１２３】
【図１】本実施形態に係るコンテンツ配信システムＳにおける各ノード装置の接続態様の一例を示す図である。
【図２】本実施形態に係るコンテンツ配信システムＳの概要を説明する図である。
【図３】コンテンツ配信システムＳからノード装置３２が離脱する様子を示す説明図である。
【図４】コンテンツ配信システムＳからノード装置３２が離脱する際の離脱可否基準を示す説明図である。
【図５】コンテンツ配信システムＳからノード装置３２が離脱する際の様子を示す説明図である。
【図６】コンテンツ配信システムＳからノード装置３２が離脱する際の様子を示す説明図である。
【図７】ノード装置３２の概要構成例を示す図である。
【図８】放送局装置３１の概要構成例を示す図である。
【図９】接続先紹介サーバ３５の概要構成例を示す図である。
【図１０】離脱同期サーバ３６の概要構成例を示す図である。
【図１１】ノード装置３２における処理（１）を示すフローチャートである。
【図１２】ノード装置３２における処理（２）を示すフローチャートである。
【図１３】ノード装置３２における処理（３）を示すフローチャートである。
【図１４】接続先紹介サーバ３５における処理を示すフローチャートである。
【図１５】離脱同期サーバ３６における処理（１）を示すフローチャートである。
【図１６】離脱同期サーバ３６における処理（２）を示すフローチャートである。
【図１７】タスクの処理と待ち時間の説明図である。
【符号の説明】
【０１２４】
１  ノード装置
８  ネットワーク
１１  ＣＰＵ
１２  主記憶装置
１３  ハードディスク装置
１４  周辺機器制御チップ
１５  ビデオチップ
１６  内蔵ディスプレイ
１７  音源チップ
１８  内蔵スピーカ
１９  赤外線ポート
２１  ネットワークインターフェイス
２２  システムバス
２３  ユーザ入力用リモコン
２４  ルータ
Ｓ  コンテンツ配信システム
【図１】
2008092004.tif 000005
【図２】
2008092004.tif 000006
【図３】
2008092004.tif 000007
【図４】
2008092004.tif 000008
【図５】
2008092004.tif 000009
【図６】
2008092004.tif 000010
【図７】
2008092004.tif 000011
【図８】
2008092004.tif 000012
【図９】
2008092004.tif 000013
【図１０】
2008092004.tif 000014
【図１１】
2008092004.tif 000015
【図１２】
2008092004.tif 000016
【図１３】
2008092004.tif 000017
【図１４】
2008092004.tif 000018
【図１５】
2008092004.tif 000019
【図１６】
2008092004.tif 000020
【図１７】
2008092004.tif 000021