(57)【要約】【課題】時系列データを安定した配信を可能とする。【解決手段】ネットワーク上で、時系列データをＮ（Ｎは整数）個の利用者端末ノードによって分散配信する際の配信トポロジーの構築方法において、Ｎ個の利用者端末ノードを、時系列データの配信元ノード１０から順に、長さＮの１次元配列状に配置する。ｉ（ｉは、ｉ≦Ｎを満たす整数）番目の利用者端末ノード１２を、第１の接続経路を介して（ｉ−１）番目の利用者端末ノードと接続する。また、第２の接続経路を介してｉ／Ｍ（Ｍは整数）番目の利用者端末ノードと接続する。【選択図】図１
2008005356.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上で、時系列データをＮ（Ｎは整数）個の利用者端末ノードによって分散配信する際の配信トポロジーの構築方法であって、
Ｎ個の利用者端末ノードを、前記時系列データの配信元ノードから順に、長さＮの１次元配列状に配置し、ｉ（ｉは、ｉ≦Ｎを満たす整数）番目の利用者端末ノードを、第１の接続経路を介して（ｉ−１）番目の利用者端末ノードと接続するとともに、第２の接続経路を介してｊ（ｊは、ｊ≦ｉ−２を満たす整数）番目の利用者端末ノードと接続することを特徴とする構築方法。
【請求項２】
Ｍを２以上の整数とするとき、前記ｊは、略（ｉ／Ｍ）であることを特徴とする請求項１に記載の構築方法。
【請求項３】
Ｎ個の利用者端末ノードで構成される配信トポロジーに、新たな（Ｎ＋１）番目の利用者端末ノードが参加する際に、前記１次元配列の長さを１増やし、前記（Ｎ＋１）番目の利用者端末ノードを、前記１次元配列のＮ＋１番目に追加することを特徴とする請求項１または２に記載の構築方法。
【請求項４】
Ｎ個の利用者端末ノードで構成される配信トポロジーから、Ｌ（ＬはＬ≦Ｎを満たす整数）番目の利用者端末ノードが脱退する際に、ｋ（ｋは、ｋ≧Ｌ＋１を満たす整数）番目の利用者端末ノードを、前記１次元配列の（ｋ−１）番目に再配置することを特徴とする請求項１から３のいずれかに記載の構築方法。
【請求項５】
ネットワーク上で、時系列データをＮ（Ｎは整数）個の利用者端末ノードによって分散配信する分散配信方法であって、
Ｎ個の利用者端末ノードを、長さＮの１次元配列状に配置し、ｉ（ｉはｉ≦Ｎを満たす整数）番目の利用者端末ノードを、第１の接続経路を介して（ｉ−１）番目の利用者端末ノードと接続するとともに、第２の接続経路を介してｊ（ｊは、ｊ≦ｉ−２を満たす整数）番目の利用者端末ノードと接続し、前記第１、第２の接続経路の少なくとも一方を介して、前記時系列データを配信することを特徴とする分散配信方法。
【請求項６】
前記時系列データは、ネットワークが正常に保たれる間、前記第２の接続経路を優先的に介して配信されることを特徴とする請求項５に記載の分散配信方法。
【請求項７】
ネットワーク上で、時系列データを複数の利用者端末ノードによって分散配信する際に、前記利用端末ノードとして使用されるコンピュータであって、
本コンピュータが、ｉ（ｉは整数）番目の利用者端末ノードとして配置された場合に、（ｉ−１）番目の利用者端末ノードと接続するとともに、（ｉ／Ｍ）番目（Ｍは２以上の整数）の利用者端末ノードと接続する接続手段と、
上流に接続される前記（ｉ−１）番目および前記（ｉ／Ｍ）番目の利用者端末ノードの少なくとも一方から、前記時系列データを受け、下流に接続される（ｉ＋１）番目および（ｉ×Ｍ）番目の利用者端末ノードの少なくとも一方に、前記時系列データを中継する中継手段と、
上流に接続される利用者端末ノードから受けた時系列データを再生する再生手段と、
を備えることを特徴とするコンピュータ。
【請求項８】
ネットワーク上で、時系列データを複数の利用者端末ノードによって分散配信する際に、ｉ（ｉは整数）番目の利用者端末ノードとして配置されたコンピュータに、
（ｉ−１）番目の利用者端末ノードと接続するとともに、（ｉ／Ｍ）番目（Ｍは２以上の整数）の利用者端末ノードと接続する接続ステップと、
上流に接続される前記（ｉ−１）番目および前記（ｉ／Ｍ）番目の利用者端末ノードの少なくとも一方から、前記時系列データを受け、下流に接続される（ｉ＋１）番目および（ｉ×Ｍ）番目の利用者端末ノードの少なくとも一方に、前記時系列データを中継するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像や音声などの時系列データを、インターネットなどのネットワーク上で配信し、配信元の端末からデータを受信した利用者の端末（ノード）が、さらに他のノードへ、データを中継することを繰り返すことで、多数の利用者が、時系列データを分散配信する方式に関する。
【背景技術】
【０００２】
インターネットを利用して、同時に多数の視聴者が、テレビやラジオに代表される映像や音声の時系列データを常時受信できることは望ましい。特に放送電波が届きにくい地域や、海外などの遠隔地から放送を受信する場面においては、有用である。
【０００３】
しかしながら、映像や音声などの時系列データを、インターネット上で多数の利用者に対して配信する従来の方式では、配信サーバへの集中的な同時アクセスを処理するため、高性能な演算処理装置を備えた多数の配信サーバ群による負荷分散と、十分な帯域のネットワーク回線の確保を行う必要があった。
【０００４】
このため、安定した配信サービスを実現するためには、配信時間帯における利用者の最大同時アクセス数を予測した上で、十分に余裕のある計算機の処理能力と、ネットワーク回線を予め準備する必要があり、実際の利用者のアクセス数が少ない場合であっても、サービス提供者は、余分な設備費用を負担する必要があった。
【０００５】
特に配信時の通信トラフィック容量が膨大となる映像データに関しては、十分なネットワーク回線の帯域を確保することが物理的にも容易でないため、電波放送のように、常に多数の利用者に対して、映像配信を継続するサービスを実現することは困難であった。以下の文献には、この問題点を解決するための技術が開示されている。
【特許文献１】特開２００３−１６９０８９号公報
【非特許文献１】X. Zhang他、「A  Data-driven Overlay Network for Live Media Streaming」、In Proc. of the 24th IEEE INFOCOM、March 2005、ｐ．２１０２−２１１１
【０００６】
特許文献１に記載された発明では、ネットワーク環境において、利用者端末ノード間で、ストリームデータの送受信を行うストリームデータ分散配信システムが構築される。この従来方式では、各ノードは、配信トポロジー上の近傍ノード情報を、上流ノードから下流ノードに伝え、上流ノードが配信トポロジーから脱退した場合であっても、下流ノードは、その情報をもとに、近傍の上流ノードの候補を見つけ、配信トポロジーを再構築していた。
【０００７】
非特許文献１に記載された方式では、ノード間でツリー型の配信トポロジーを構築せず、各ノードは、必要な時系列データを持つ他のノードを動的に検出する方式で、分散配信システムを構築した。この従来方式では、あるノードが不意に分散配信系から脱退した場合でも、配信トポロジーの維持を考慮しなかった。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１の方式による配信システムでは、効率的な配信トポロジーの構築方法は考慮されていなかった。この従来方式では、上流ノードとの接続が失われた際、下流ノードは、上流ノードから取得していた配信トポロジー情報をもとに、近傍ノードから新たな上流ノードを選択し、再接続を試みるが、このとき、参加している全ノードにデータが行き渡るための中継回数は考慮されていなかった。このため、中継回数が多くなるような配信トポロジーが構築される可能性がある問題が存在した。
【０００９】
本来は、データが中継される際に、途中で発生する障害の可能性を極力低くするため、中継回数は少ない方が望ましい。しかしながら、ノードが激しく参加・脱退を繰り返す配信トポロジーにおいては、中継回数を低くすることを目的とした配信トポロジーを維持することは複雑で困難であり、その手法が発見されていなかったため、実現は難しかった。
【００１０】
このような理由から、非特許文献１の方式では、特に上流ノードと下流ノードの関係が明確なツリー型のトポロジーにおいて、配信トポロジーの維持を行うことが難しいことを指摘した上で、ツリー型の配信トポロジーの維持を行わない代わりに、必要なデータを持つノードを動的に検出して取得するという方式を採用した。
【００１１】
しかしながら、この従来方式では、時系列データを断片化して、多数の利用者に浸透させていかなければならず、断片化された必要なデータがすべて揃わないと、時系列データの再生は行うことができない問題があった。
【００１２】
本来ならば、時系列データは断片化せずに、連続して中継される方が、各ノードにおいて、時系列データを再生する際にネットワークの通信のゆらぎ（ジッタ）を吸収するバッファリングサイズの見積もりが容易であり望ましい。しかしながら、安定したデータの中継と、トポロジーの維持の両方を考慮した方式は、これまで発見されておらず、実現することが難しかった。
【００１３】
本発明はかかる課題に鑑みてなされたものであり、その包括的な目的は、時系列データの安定した配信が可能な配信トポロジーの提供にある。
【課題を解決するための手段】
【００１４】
本発明のある態様は、ネットワーク上で、時系列データをＮ（Ｎは整数）個の利用者端末ノードによって分散配信する際の配信トポロジーの構築方法に関する。この構築方法は、Ｎ個の利用者端末ノードを、時系列データの配信元ノードから順に、長さＮの１次元配列状に配置し、ｉ（ｉは、ｉ≦Ｎを満たす整数）番目の利用者端末ノードを、第１の接続経路を介して（ｉ−１）番目の利用者端末ノードと接続するとともに、第２の接続経路を介してｊ（ｊは、ｊ≦ｉ−２を満たす整数）番目の利用者端末ノードと接続する。
【００１５】
この態様によると、各利用者端末ノードは、第１、第２の２つの接続経路を介して、上流、すなわち配信元ノードに近い利用者端末ノードと接続されるため、いずれかの経路において不具合が生じた場合にも、残りの接続経路を迂回路とすることにより、データを途切れることなく安定して配信することができ、ロバストな配信トポロジーを構築できる。
【００１６】
Ｍを２以上の整数とするとき、ｊは、略（ｉ／Ｍ）であってもよい。この場合、Ｎ番目の利用者端末ノードを、第２の接続経路を介して、ｌｏｇＮ（Ｍを底とする）に比例したホッピング回数で、配信元ノードと接続することができる。
【００１７】
Ｎ個の利用者端末ノードで構成される配信トポロジーに、新たな（Ｎ＋１）番目の利用者端末ノードが参加する際に、１次元配列の長さを１増やし、新たな（Ｎ＋１）番目の利用者端末ノードを、１次元配列のＮ＋１番目に追加してもよい。
１次元配列のリストを利用して利用者端末ノードを管理することにより、新たな参加者が追加する際に、１次元配列の最後尾に追加するのみで、配信トポロジーを更新することができる。
【００１８】
Ｎ個の利用者端末ノードで構成される配信トポロジーから、Ｌ（ＬはＬ≦Ｎを満たす整数）番目の利用者端末ノードが脱退する際に、ｋ（ｋは、ｊ≧Ｌ＋１を満たす整数）番目の利用者端末ノードを、前記１次元配列の（ｋ−１）番目に再配置してもよい。
１次元配列のリストを利用して利用者端末ノードを管理することにより、利用者端末ノードが離脱した際に、リストの順番を１つ繰り上げるのみで簡易にの配信トポロジーを再構築することができる。
【００１９】
本発明の別の態様は、ネットワーク上で、時系列データをＮ（Ｎは整数）個の利用者端末ノードによって分散配信する分散配信方法に関する。この分散配信方法は、Ｎ個の利用者端末ノードを、長さＮの１次元配列状に配置し、ｉ（ｉはｉ≦Ｎを満たす整数）番目の利用者端末ノードを、第１の接続経路を介して（ｉ−１）番目の利用者端末ノードと接続するとともに、第２の接続経路を介してｊ（ｊは、ｊ≦ｉ−２を満たす整数）番目の利用者端末ノードと接続し、第１、第２の接続経路の少なくとも一方を介して、時系列データを配信する。
【００２０】
この態様によると、各利用者端末ノードは、第１、第２の２つの接続経路を介して、上流、すなわち配信元ノードに近い利用者端末ノードと接続されるため、いずれかの経路において不具合が生じた場合にも、残りの接続経路でデータを配信することができ、ロバストな配信が実現できる。また、１次元配列状に配置することにより、新たな利用者端末ノードの追加、あるいは利用者端末ノードの脱退の際の配信トポロジーの再構築を簡易化することができる。
【００２１】
時系列データは、ネットワークが正常に保たれる間、第２の接続経路を優先的に介して配信されてもよい。この場合、時系列データを断片化することなく、多数のノードに少ない回数で中継することができる。
【００２２】
本発明の別の態様は、ネットワーク上で、時系列データを複数の利用者端末ノードによって分散配信する際に、前記利用端末ノードとして使用されるコンピュータに関する。このコンピュータは、自身が、ｉ（ｉは整数）番目の利用者端末ノードとして配置された場合に、（ｉ−１）番目の利用者端末ノードと接続するとともに、（ｉ／Ｍ）番目（Ｍは２以上の整数）の利用者端末ノードと接続する接続手段と、上流に接続される（ｉ−１）番目および（ｉ／Ｍ）番目の利用者端末ノードの少なくとも一方から、時系列データを受け、下流に接続される（ｉ＋１）番目および（ｉ×Ｍ）番目の利用者端末ノードの少なくとも一方に、前記時系列データを中継する中継手段と、上流に接続される利用者端末ノードから受けた時系列データを再生する再生手段と、を備える。
この態様によれば、Ｎ個のコンピュータが、利用者端末ノードとしてネットワーク上に接続されるとき、配信トポロジーが、長さがＮの１次元配列として構築されるとともに、各コンピュータは、２つの経路を介して上流のコンピュータと接続されることになり、安定した分散配信が実現できる。
【００２３】
本発明の別の態様は、ネットワーク上で、時系列データを複数の利用者端末ノードによって分散配信する際に、利用端末ノードとして使用されるコンピュータによって利用されるコンピュータプログラムに関する。このコンピュータプログラムは、本コンピュータが、ｉ（ｉは整数）番目の利用者端末ノードとして配置された場合に、（ｉ−１）番目の利用者端末ノードと接続するとともに、（ｉ／Ｍ）番目（Ｍは２以上の整数）の利用者端末ノードと接続する接続ステップと、上流に接続される前記（ｉ−１）番目および（ｉ／Ｍ）番目の利用者端末ノードの少なくとも一方から、前記時系列データを受け、下流に接続される（ｉ＋１）番目および（ｉ×Ｍ）番目の利用者端末ノードの少なくとも一方に、時系列データを中継するステップと、を実行させる。
【発明の効果】
【００２４】
本発明によれば、時系列データの安定した配信が可能な配信トポロジーを提供することができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
【００２６】
以下の実施の形態は、ネットワーク上における音声・動画などの時系列データの配信に関するものである。以下では、この発明の好適な実施例を図面に基づいて説明する。図１は、実施の形態に係る時系列データの配信トポロジー概念図である。この配信トポロジーでは、ネットワーク上に、１つの時系列データの配信元ノード１０と、N（Ｎは整数）個の利用者端末ノード１２があると仮定している。配信元ノード１０は、時系列データが配信される起点となるノードであり、たとえばサーバーがその機能を果たす。各利用者端末ノード１２には、配信元ノード１０を起点として、時系列データが配信される。
【００２７】
はじめに、配信元ノード１０とＮ個の利用者端末ノード１２の接続形態、すなわち配信トポロジーの構築について説明する。
配信トポロジーは、N個の利用者端末ノード１２に対して、長さNの１次元配列データ構造上に構築する。すなわち、N個の利用者端末ノード１２が接続していく場合、各利用者端末ノード１２は、配信元ノード１０を１次元配列データ構造上の最初の配列要素として、N個を並べて接続していく。図１中で各ノードの右に示す数字ｉは、配信元ノードからの距離を表し、同時に１次元配列の配列番号とみなすことができる。ｉ番目の利用者端末ノード１２は、（ｉ−１）番目の利用者端末ノード１２と第１の接続経路を介して接続される。図１において、第１の接続経路は実線で示される。
【００２８】
さらに、ｉ番目の利用者端末ノード１２は、ｊ（ｊは、ｊ≦ｉ−２を満たす整数）番目の利用者端末ノード１２と、第２の接続経路を介して接続される。本実施の形態おいて、Ｍを２以上の整数定数とするとき、ｊ≒ｉ／Ｍである。ｉ／Ｍが整数でない場合、小数点以下を四捨五入してもよいし、切り捨ててもよい。図１において、第２の接続経路は破線で示される。本実施の形態に係る配信トポロジーの構築規則は、以上のようにして定義される。時系列データは、少なくとも第１、第２の接続経路のいずれか一方を介して、下流の、すなわちｉの大きい利用者端末ノード１２へと転送されていく。
【００２９】
図１では、Ｎ＝９、Ｍ＝２の例を示している。たとえば、ｉ＝８の利用者端末ノード１２はｉ＝４，７の利用者端末ノード１２と接続され、時系列データを取得する。すなわち、第１の接続経路を介して、（ｉ−１）＝（８−１）＝７番目の利用者端末ノード１２と接続されるとともに、第２の接続経路を介して、（ｉ／Ｍ）＝（８／２）＝４番目の利用者端末ノード１２と接続される。同様に、ｉ＝４のノードはｉ＝２、３の利用者端末ノード１２と接続され、時系列データを取得する。ｉ＝２番目の利用者端末ノード１２については、第１の経路による接続先と、第２の経路による接続先が一致し、ｉ＝１から時系列データを取得する。ｉ＝１番目の利用者端末ノード１２は、配信元ノード１０から時系列データを取得する。
【００３０】
なお、図１では、整数ｊを決定する際に、ｉ／Ｍを四捨五入している。その結果、ｉ＝３、ｉ＝５の利用者端末ノード１２は、第２の接続経路を介して、それぞれｉ＝２、ｉ＝３の利用者端末ノード１２と接続される。その他の利用者端末ノード１２についても同様であるが、図１では図示していない。
【００３１】
次に、本実施の形態において、新たな利用者端末ノード１２が参加する場合の配列の操作について説明する。配信トポロジーに対する新しい利用者端末ノード１２の参加は、１次元配列データ構造の長さを１つ増加させ、その最後尾に、新たな利用者端末ノード１２を追加することにより行われる。すなわち、すでにN個の利用者端末ノード１２が配信トポロジー上に存在する場合、ｉ＝Ｎ＋１番目に新しい利用者端末ノード１２を追加すれば良い。新たな利用者端末ノード１２は、第１の接続経路を介して、Ｎ番目の利用者端末ノード１２と接続され、第２の接続経路を介して、（Ｎ＋１）／２番目の利用者端末ノード１２と接続される。
【００３２】
また、配信トポロジーから利用者端末ノード１２が離脱する場合には、離脱する利用者端末ノード１２以降の利用者端末ノード１２の配列番号を１つづつ繰り上げる。すなわち、ｉ番目の利用者端末ノード１２が脱退するときは、ｉ＋１番目の利用者端末ノード１２が新しいｉ番目のノードとなり、以降の利用者端末ノード１２は、同様にｉの値が１つずつ小さくなるように再配置する。繰り上げられた利用者端末ノード１２は、繰り上げ後の配列の順番ｉ’（＝ｉ−１）を用いて定められる、（ｉ’−１）番目および（ｉ’／２）番目の利用者端末ノード１２と再接続される。
【００３３】
好ましくは、時系列データは、ネットワークが正常に保たれる間、第２の接続経路を優先的に介して配信されてもよい。たとえば、図１において、ｉ＝８番目の利用者端末ノード１２に着目すると、時系列データは、第２の接続経路を介して、ｉ＝１、２、４、８のノードをたどって伝送される。これによって、多数のノードに少ないｌｏｇＭに比例した回数で中継することができる。さらに、ある利用者端末ノード１２は、第２の接続経路からのみ時系列データを受け取るため、時系列データが断片化されるという問題を回避することができる。
【００３４】
このとき、第１の接続経路は、第１の接続経路のバックアップ用として機能させてもよい。すなわち、上流の利用者端末ノード１２がリストから脱退したり、回線に異常が発生した場合に、第２の接続経路からのデータ配信が停止すると、第１の接続経路から時系列データを受け取ってもよい。第２の接続経路からのデータ転送が停止した利用者端末ノード１２は、第１の接続経路に対してデータを転送するように要求する。
【００３５】
たとえば、ｉ＝４番目の利用者端末ノード１２に異常が発生したり、この利用者端末ノード１２をルートとする第２の接続経路に異常が発生したとする。この場合、この利用者端末ノード１２をルートとする第２の接続経路を介して時系列データを受ける利用者端末ノード１２（ｉ＝７、８）へのデータ転送が停止する。このとき、第２の接続経路が遮断されたｉ＝７番目の利用者端末ノード１２は、ｉ＝６の利用者端末ノード１２に対して、第１の接続経路を介してデータ転送を要求し、時系列データを受ける。その結果、ｉ＝１、２、６、７の順番で時系列データが転送される。同様に、ｉ＝８についても、第２の接続経路からデータを受けることができなくなるが、第１の接続経路を介してｉ＝７番目の利用者端末ノード１２からデータを受けることにより、ｉ＝１、２、６、７、８の順番で時系列データが転送される。これよりも下流の利用者端末ノード１２についても同様にしてｉ＝４の利用者端末ノード１２における障害の影響を実質的に受けることなくデータを受信することができる。このように、本実施の形態によれば、有効な障害回避および輻輳回避を実現できる。
【００３６】
また、上流の利用者端末ノード１２が脱退した場合に、上述の再配置を行うのに必要なデータの授受を、第１の接続経路を介して、順々と下流の利用者端末ノード１２へと伝達することにより、下流の利用者端末ノード１２は、接続すべき利用者端末ノード１２に対して、正確に再接続することができる。
【００３７】
このように構築した本実施の形態に係る配信トポロジーは、単なるツリー型の配信トポロジーや、隣接した利用者端末ノード１２を中継するだけの配信トポロジーの場合と比較し、様々な利点が生まれる。
【００３８】
第１の利点として、ｉ番目に位置する利用者端末ノード１２は、第２の接続経路を介して、ｉ×Ｍ番目の利用者端末ノード１２に時系列データを中継するため、配信トポロジー全体では、Ｍをｌｏｇの底とした、最大ｌｏｇＮ回の中継で、時系列データを、N個すべての利用者端末ノード１２に配布することができる。これは、単純に隣接した利用者端末ノード１２を中継する場合（すなわち第１の接続経路のみの場合）が、最大Ｎ回の中継になることに対して、極めて少ない回数で配布できることを意味する。
【００３９】
第２の利点として、配信元ノード１０から中継を繰り返して、時系列データを受取る各利用者端末ノード１２は、（ｉ−１）番目ならびにｉ／Ｍ番目の利用者端末ノード１２から、第１、第２の複数の接続経路を介して時系列データの取得が可能なため、多くの中継経路の「迂回路」を持つことになり、中継経路の途中の利用者端末ノード１２が、不意に配信トポロジーから脱退（ネットワークの切断や端末の故障などを想定）しても、途切れることなく時系列データを中継することが可能となる。この結果、安定した分散配信システムを実現することが可能となる。
【００４０】
第３の利点として、Ｎ個の利用者端末ノード１２のうちＰ個が、本発明の配信トポロジーから脱退した場合でも、脱退せずに残った利用者端末ノード１２を、該１次元配列データ構造上を用いて、速やかに再配置でき、残された（Ｎ−Ｐ）個の利用者端末ノード１２によって、再度、ｌｏｇ（Ｎ−Ｐ）回の中継で時系列データを配信できる配信トポロジーを構築できる。ツリー型の配信トポロジー構造では、配信トポロジーの維持が複雑になることに対して、本実施の形態の１次元配列データ構造型の配信トポロジーでは、極めて単純な手続きで配信トポロジーを維持でき、望ましい。
【００４１】
第４の利点として、各利用者端末ノード１２は、より配信元ノード１０に近い上流の（すなわちｉが小さい）利用者端末ノード１２から、時系列データを断片化することなく、連続的に受信することが可能である。利用者の脱退の影響が少ない配信トポロジーを構築する場合、複数の利用者端末ノードからデータを受信するため、断片化して配信することが考えられるが、この場合、断片化されたデータがすべて揃うまでは、時系列データの再生が難しかったが、本実施の形態では、その問題を解決しており、望ましい。
【００４２】
さらに、即時に配信トポロジーを再構築し、時系列データを断片化することなく連続的に中継するため、ネットワーク上で動画や音声などの時系列データを分散配信することができ、データ配信元のネットワーク負荷や計算資源の消費を低減したサービスを提供することが可能となる。
【００４３】
ここで、以上の実施の形態では、ｉ番目の利用者端末ノード１２は、より配信元ノード１０に近い（ｉ−１）番目およびｉ／Ｍ番目の２つの利用者端末ノード１２から時系列データを取得することを述べたが、各利用者端末ノード１２に対してＭの値は複数存在してもよく、３つ以上の利用者端末ノード１２から時系列データを取得しても良い。この場合、第３の接続経路（あるいはそれ以上の接続経路）が形成されることになる。
【００４４】
次に、図２、図３を用いて、ネットワーク上で配信トポロジーを構築し、時系列データを中継・再生するプログラムの実施例を示す。
【００４５】
図２は、配信元ノード１０上で動作するプログラムの機能を示す。図２は、配信元ノード１０と、利用者端末ノード１２間の接続を示している。配信元ノード１０と利用者端末ノード１２は、ネットワーク１００を介して接続される。
配信トポロジーを構成するプログラムとデータは、配信元ノード１０内のメモリ(Ｍｅｍｏｒｙ)２２に格納される。配信元ノード１０のプログラムは、レコーダ（Ｒｅｃｏｒｄｅｒ）２００、中継エンジン（Ｒｅｌａｙ  Ｅｎｇｉｎｅ）１１０、接続エンジン（Ｃｏｎｎｅｃｔｉｏｎ  Ｅｎｇｉｎｅ）１４０を含んで構成される。
【００４６】
図３は、利用者端末ノード１２上で動作するプログラムの機能を示す。図３は、利用者端末ノード１２と、利用者端末ノード１２間の接続を示している。配信元ノード１０と利用者端末ノード１２は、ネットワーク１００を介して接続される。利用者端末ノード１２のプログラムは、メモリ２２に格納され、中継エンジン１１０、再生バッファ（Ｐｌａｙ  Ｂｕｆｆｅｒ）１３０、接続エンジン１４０、プレイヤ（Ｐｌａｙｅｒ）１２０で構成される。図３の利用者端末ノード１２は、すべて同様に構成される。
【００４７】
なお、図中、様々な処理を行う機能ブロックとして記載される各要素は、ソフトウェア的には、メモリにロードされたプログラムなどによって実現され、ハードウェア的には、ＣＰＵ、メモリ、その他のＬＳＩで構成することができる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００４８】
以下、各ブロックの機能について説明する。
レコーダ２００は、配信元ノード１０において、最初に時系列データをデバイスから取得し、使用するコーデックにエンコードする機能を有する。図２の配信元ノード１０は、予めレコーダ２００を用いて、利用者端末ノード１２に送信するストリーミングデータ１６０を生成する。ここで、ストリーミングデータ１６０は、分散配信の対象となる時系列データを意味する。
【００４９】
接続エンジン１４０は、配信元ノード１０および各利用者端末ノード１２間の接続状況を把握し、最新の配信トポロジー情報を維持する機能を有する。配信元ノード１０の接続エンジン１４０は、利用者端末ノード１２の接続を待機しておく。
中継エンジン１１０は、配信元ノード１０や利用者端末ノード１２間のストリーミングデータ（時系列データ）１６０や、トポロジーデータ（Ｔｏｌｏｐｏｇｙ  Ｄａｔａ）１５０を中継する。また、図３における再生バッファ１３０は、利用者端末ノード１２に到達した時系列データを再生する前に、一時的にデータを蓄える機能を有する。プレイヤ１２０は、利用者端末ノード１２に到達した時系列データを、コーデックのデコードを行った上で再生する機能を有する。
【００５０】
図２を参照し、利用者端末ノード１２が、配信元ノード１０に接続し、配信トポロジーを形成する例を示す。
最初に配信元ノード１０に接続する利用者端末ノード１２の接続エンジン１４０は、配信元ノード１０の接続エンジン１４０に接続を要求し、接続を確立する。この接続が確立した場合に、接続エンジン１４０は、トポロジーデータ１５０を生成し、中継エンジン１１０から、トポロジーデータ１５０およびストリーミングデータ１６０の２種類のデータ送信を開始する。ここで、トポロジーデータ１５０は、前述の配信トポロジーを表現する１次元配列データ構造のデータを表す。トポロジーデータ１５０には、各利用者端末ノード１２の配信トポロジー上の位置（１次元配列データ構造上のインデックス）、ネットワーク１００上の位置（インターネットに適用する場合は、ＩＰアドレス）を含む。なお、ネットワーク１００は、インターネットに限らず、携帯電話などの無線ネットワークなど、様々な通信インフラに適用可能である。このようにして、配信元ノード１０と、１番目の利用者端末ノード１２の接続が確立される。
【００５１】
次に、利用者端末ノード１２同士の接続について、図３を参照して説明する。図３に示すように、複数の利用者端末ノード１２は、前述の配信トポロジーの形式に従って、１次元配列データ構造の長さを１つずつ大きくしながら、配信トポロジーを構成していく。トポロジーデータ１５０およびストリーミングデータ１６０は、中継エンジン１１０によって、下流の利用者端末ノード１２へと伝送されていく。
【００５２】
ここでは、Ｎ個の利用者端末ノード１２により配信トポロジーが構成されているときに、新たにｉ番目のノードが、配信トポロジーに参加する例を示す。以降、［ｉ］は、ｉ番目の利用者端末ノードであることを示す。
【００５３】
まず、（Ｎ＋１）番目の新たな利用者端末ノード１２は、すでに配信トポロジーに参加している利用者端末ノードの最後に接続するため、配信トポロジーに参加中の利用者端末ノード１２もしくは、配信元ノード１０のいずれかに接続することとする。
【００５４】
新たな利用者端末ノード１２に接続された利用者端末ノード１２は、保有するストリーミングデータ１６０の次の中継先が存在する場合は、その中継先のネットワーク１００上の位置を、新たに参加する利用者端末ノード１２に伝えることを繰り返し、最終的に最後尾の利用者端末ノード１２に到達した場合（中継先がない利用者端末ノード１２［Ｎ］に到達した場合）、その後ろに接続を試みる。
【００５５】
ここで、Ｎ番目の利用者端末ノード１２は、Ｎ−１番目もしくは、Ｎ／Ｍ番目の利用者端末ノード１２から取得したストリーミングデータ１６０を保持しており、次の中継先からの接続を待機しているものとする。
【００５６】
新たな利用者端末ノード１２の接続エンジン１４０は、Ｎ番目の利用者端末ノードの接続エンジン１４０に接続要求を出し、接続を確立する。このとき、トポロジーデータ１５０をＮ番目の利用者端末ノード１２から取得する。
【００５７】
このトポロジーデータ１５０は、上述のように１次元配列データ構造のデータであり、ｉ番目の利用者端末ノード１２には、１〜ｉ番目までの利用者端末ノード１２の情報が、１次元配列データの要素として記載されている。（ｉ＋１）番目の利用者端末ノード１２は、ｉ番目の利用者端末ノード１２からトポロジーデータ１５０を受け取り、配列の長さを１つ加えて、自らのＩＰアドレスなどの情報を付加して更新し、保持する。（Ｎ＋１）番目の利用者端末ノード１２は、Ｎ番目の利用者端末ノード１２から受け取ったトポロジーデータ１５０を用いて、（Ｎ＋１）／Ｍ番目の利用者端末ノード１２に対しても接続要求を出し、接続を確立することができる。以上が、新たな利用者端末ノード１２の配列トポロジーへの参加のスキームである。
【００５８】
次に、配信トポロジー上に参加している利用者端末ノード１２が、配信トポロジーから脱退する場合（不意の事故などによる切断を含む）の処理について述べる。ｉ＝Ｌ番目の利用者端末ノード１２が、配信トポロジーから脱退したときは、（Ｌ＋１）番目の利用者ノードの接続エンジン１４０が検出し、（Ｌ＋１）番目以降の利用者端末ノード１２に対して、更新したトポロジーデータ１５０を中継していくことで伝える。
【００５９】
この結果、（Ｌ＋１）番目の利用者端末ノード１２から後ろに続く利用者端末ノード１２は、Ｌ番目の利用者端末ノード１２の脱退により、ｉの値を１つずつ小さくしていく。このとき、接続エンジン１４０は、新しいｉの値を使って、ｉ／Ｍ番目の利用者端末ノード１２に対して、接続要求を出し、新しい配信トポロジーを構築する。
【００６０】
次に、各利用者端末ノード１２間で、時系列データを中継し、再生する様子を説明する。まず、前述の配信トポロジーにおいて、最初に配信元ノード１０に接続する利用者端末ノード１２は、そのままストリーミングデータ１６０を取得する。このデータの送受信は、中継エンジン１１０を用いる。
【００６１】
後に続く利用者端末ノード１２は、配信トポロジー上で、ｉ番目に位置する場合は、（ｉ−１）番目、ｉ／Ｍ番目のいずれか一方、もしくは両方の利用者端末ノード１２から中継エンジン１１０を用いて、ストリーミングデータ１６０の中継を繰り返す。
【００６２】
各利用者端末ノード１２は、受け取ったストリーミングデータ１６０を、次の利用者端末ノード１２に中継するとともに、再生バッファ１３０に転送する。再生バッファ１３０は、メモリ上にストリーミングデータ１６０を一定時間格納する領域で、ネットワーク１００上で発生することが予測されるデータ通信のゆらぎ（ジッタ）を吸収し、プレイヤ１２０によって、ストリーミングデータ１６０が途切れなく再生する効果がある。
【００６３】
図４は、時系列データの配信元ノード１０の装置構成例を示す。配信元ノード１０は、ＣＰＵ２１、メモリ２２、ビデオキャプチャ２８、音声入力部３１、ネットワークインターフェース２４を備える。ビデオキャプチャ２８には、映像入力装置３４（ビデオカメラなど）を接続し、音声入力部３１には、音声入力装置（マイクロホンなど）３６を接続する。メモリ２２には、配信元ノード１０の機能を実現する前述のプログラム、トポロジーデータ１５０およびストリーミングデータ１６０が記憶されており、該プログラムは、ＣＰＵ２１によって処理される。映像入力装置３４、音声入力装置３６によって取得された時系列データを加工したストリーミングデータ１６０やトポロジーデータ１５０は、ネットワークインターフェース２４によって、ネットワーク１００に送出され、利用者端末ノード１２に送信される。
【００６４】
図５は、利用者端末ノード１２の装置構成例を示す。利用者端末ノード１２は、たとえば、パーソナルコンピュータや携帯電話端末などの通信手段を備えた機器であって、ＣＰＵ２１、メモリ２２、映像出力部２７、音声出力部２９、音源部３０、ネットワークインターフェース２４を備える。映像出力部２７には、映像出力装置３３を接続し映像を再生する。音声出力部２９は、音声出力装置３５を接続し、音源部３０によって生成された音を再生する。メモリ２２には、利用者端末ノード１２の機能を実現する前述のプログラム、トポロジーデータ１５０およびストリーミングデータ１６０が記憶されており、該プログラムは、ＣＰＵ２１によって処理される。ストリーミングデータ１６０やトポロジーデータ１５０は、ネットワークインターフェース２４によって、ネットワーク１００を介して、配信元ノード１０や、他の利用者端末ノード１２との間で送受信される。
【００６５】
以上、ネットワーク上の計算機間の連続中継を利用した時系列データの分散配信方式の実施例を詳細に説明した。本発明は、インターネット上の端末間のみに限らず、例えば携帯電話同士を中継していく、分散配信方式などへの応用が可能である。
【図面の簡単な説明】
【００６６】
【図１】実施の形態に係る時系列データの配信トポロジー概念図である。
【図２】時系列データ配信元ノード上で動作するプログラムの機能を示すブロック図である。
【図３】利用者端末ノード上で動作するプログラムの機能を示すブロック図である。
【図４】時系列データ配信元ノードの装置構成を示すブロック図である。
【図５】利用者端末ノードの装置構成を示すブロック図である。
【符号の説明】
【００６７】
１０  配信元ノード、  １２  利用者端末ノード、  ２１  ＣＰＵ、  ２２  メモリ、  ２４  ネットワークインターフェース、  ２７  映像出力部、  ２８  ビデオキャプチャ、  ２９  音声出力部、  ３０  音源部、  ３１  音声入力部、  ３３  映像出力装置、  ３４  映像入力装置、  ３５  音声出力装置、  ３６  音声入力装置、  １００  ネットワーク、  １１０  中継エンジン、  １２０  プレイヤ、  １３０  再生バッファ、  １４０  接続エンジン、  １５０  トポロジーデータ、  １６０  ストリーミングデータ、  ２００  レコーダ。
【図１】
2008005356.tif 000003
【図２】
2008005356.tif 000004
【図３】
2008005356.tif 000005
【図４】
2008005356.tif 000006
【図５】
2008005356.tif 000007