[go: up one dir, main page]

JP3955989B2 - ストリームデータ分散配信方法及びそのシステム - Google Patents

ストリームデータ分散配信方法及びそのシステム Download PDF

Info

Publication number
JP3955989B2
JP3955989B2 JP2001364944A JP2001364944A JP3955989B2 JP 3955989 B2 JP3955989 B2 JP 3955989B2 JP 2001364944 A JP2001364944 A JP 2001364944A JP 2001364944 A JP2001364944 A JP 2001364944A JP 3955989 B2 JP3955989 B2 JP 3955989B2
Authority
JP
Japan
Prior art keywords
node
user terminal
stream data
connection
downstream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001364944A
Other languages
English (en)
Other versions
JP2003169089A (ja
JP2003169089A5 (ja
Inventor
▲隆▼之 齊藤
雅晴 高野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BITMEDIA INC.
Original Assignee
BITMEDIA INC.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BITMEDIA INC. filed Critical BITMEDIA INC.
Priority to JP2001364944A priority Critical patent/JP3955989B2/ja
Priority to US10/184,415 priority patent/US20030101253A1/en
Publication of JP2003169089A publication Critical patent/JP2003169089A/ja
Publication of JP2003169089A5 publication Critical patent/JP2003169089A5/ja
Application granted granted Critical
Publication of JP3955989B2 publication Critical patent/JP3955989B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、一般的にはネットワーク環境下でストリームデータを分散配信する方法に関し、特にインターネット上においてユーザ端末間でストリームデータの分散配信機能を実現する技術に関する。
【0002】
【従来の技術】
近年、インターネットを代表とする情報通信ネットワーク環境において、ブロードバンド化の推進により、主として動画(映像)や音声のコンテンツ情報(以下ストリームデータと呼ぶ場合がある)の伝送を容易に行なうことが可能になりつつある。ブロードバンド化のネットワーク環境としては、例えばADSL(asymmetric digital subscriber line)伝送方式やCATV(cable television)ネットワークを利用した有線通信方式以外に、携帯電話などの無線通信方式(移動体通信方式)によるネットワーク環境も含まれる。
【0003】
ところで、インターネットに接続されるユーザ端末としては、パーソナルコンピュータ、各種のディジタル情報機器(例えばディジタル・テレビ受信機など)、携帯電話(PHSも含む)、あるいは無線通信機能を有する携帯型情報端末(PDA:personal digital assistantとも呼ばれている)等が含まれる。
【0004】
ブロードバンド化のネットワーク環境下で、これらのユーザ端末を使用することにより、ストリームデータを受信して、ユーザの違和感を伴なうことなく、動画や音声のコンテンツ情報を再生することが可能となる。従来では、インターネットによる情報サービスや、個人間の情報交換では、文字情報や静止画像が主体であり、動画や音声などのストリームデータの通信は限定されたものであった。従って、今後、ブロードバンド化のネットワーク環境の普及に伴なって、ストリームデータ配信サービス事業などのビジネス分野だけでなく、ユーザ間で個人的情報を交換するプライベートの分野でも、ストリームデータ配信に対する需要が増大することが予想される。
【0005】
【発明が解決しようとする課題】
ネットワーク環境下でのブロードバンド化の推進により、インターネットの基幹系や、各家庭のユーザ端末と接続する支線系について、帯域の増強や通信コストの低減化が実現されつつある。
【0006】
しかし一方で、ストリームデータ配信に対する需要の増大化に伴なって、ストリームデータを送信するためのシステムに対して、負荷容量(配信能力)の増大化が要求されている。このことは、特にサーバを中心とする多大な設備投資が要求されて、システム構築に要するコストの増大化を招くことになる。
【0007】
一般的に、ストリームデータの配信システムは、サービス事業者(インターネットサービスプロバイダ:ISPなど)が管理するサーバにより実現されている。従って、サービス事業者側において、コスト面からサーバの負荷容量を増強できない場合、ストリームデータ配信に対する需要の増大化に対応できず、ブロードバンド化により増強されたインターネットの帯域を十分に活用できない状況になる。
【0008】
このような問題点を解消するために、ストリームデータを分散配信(配送)する各種の技術が開発されている。これらの先行技術により、ストリームデータの送信(配信)を行なうサーバの負荷を軽減することが可能となる。しかしながら、いずれの先行技術も基本的には、分散配信システムを事業者が管理するサーバにより中央制御する方式である。このため、ストリームデータの送信に関するサーバの負荷は軽減できても、一方で、分散配信システムを構成するためのトポロジ(ノード間の接続関係)の制御などに関するサーバの負荷が増大するという問題がある。
【0009】
さらに、分散配信システムを中央制御する方式は、サービス事業者が管理するサーバによりストリームデータ配信を行なう事業者向けのアプローチである。換言すれば、ユーザ間で個人的情報を交換するプライベートの分野において、サービス事業者が管理するサーバを要することなく、いわば自律的又は個人的なストリームデータ配信を実現する分散配信システムに関する技術は開発されていない。
【0010】
そこで、本発明の目的は、インターネットなどのネットワーク環境において、特にユーザ端末間での自律的又は個人的なストリームデータ配信を実現できるストリームデータ分散配信技術を提供することにある。
【0011】
【課題を解決するための手段】
本発明の観点は、インターネットなどのネットワーク環境において、各ユーザ端末(ノード)間でストリームデータの送受信を行なうストリームデータ分散配信システムを動的に構築するための方法に関する。本方法の特徴は、各ユーザ端末のネットワーク接続関係を認識するためのトポロジ情報を、各ノード(ユーザ端末)が分散管理する構成にある。換言すれば、各ノードが自律的に、トポロジ情報を記憶し、更新し、提供するなどの管理を行なう機能を備えている。
【0012】
本発明の観点によるストリームデータ分散配信方法は、複数のユーザ端末が相互接続して構築されるネットワークにおいて、各ユーザ端末間で、上流ノードとしてのユーザ端末がストリームデータを送信し、下流ノードとしてのユーザ端末がストリームデータを受信するストリームデータ分散配信機能を実現する方法であって、前記各ユーザ端末は、下流ノードとして接続先の上流ノードを認識する情報を含み、上流ノードと下流ノードとの接続関係を認識するためのトポロジ情報を記憶する手段、当該トポロジ情報を各ユーザ端末間で交換する手段、及び前記ストリームデータの送受信を行なう手段を有し、下流ノードとして動作するユーザ端末は、上流ノードに相当するユーザ端末に接続を要求するステップと、前記トポロジ情報を受信するステップと、受信した前記トポロジ情報から、接続を要求する上流ノードに相当するユーザ端末を選択するステップとを有する手順を実行し、上流ノードとして動作するユーザ端末は、記憶しているトポロジ情報に対して、下流ノードに相当するユーザ端末との接続に従って更新し、かつ上位の上流ノードに相当するユーザ端末から送信されたトポロジ情報を併合するステップと、下流ノードとして接続された全てのユーザ端末に対して、前記トポロジ情報を送信するステップとを有する手順を実行する構成である
【0013】
本発明の観点によるストリームデータ分散配信方法であれば、サービス事業者が管理するストリームデータ配信用サーバや、分散配送系制御サーバなどを要することなく、例えばインターネットに接続されたユーザ端末間で、ストリームデータの送信、受信または中継を行なうことができる。
【0014】
各ノードは、トポロジ情報により認識した上流ノードに接続し、当該上流ノードから送信されるストリームデータを受信できる。また、トポロジ情報により認識した下流ノードに対してストリームデータを送信できる。この場合、上流ノードとして機能する自ノードは、複数の下流ノードに接続し、ストリームデータを同時並行的に送信することができる。また、上流ノードからストリームデータを受信した下流ノードは、他の下流ノードからの接続要求に応じて、上流ノードとして機能し、当該下流ノードに対して受信したストリームデータを送信(要するに中継)することができる。従って、サービス事業者が運営する高性能のストリームデータ配信用サーバを要することなく、インターネットに接続された各ユーザ端末間で、ストリームデータの分散配信を実現することができる。但し、一般的には、各ユーザ端末は、ISPや通信事業者などを介して、インターネットへの接続を行なうことになる。
【0015】
本発明のストリームデータ分散配信方法を利用すれば、一般ユーザが個人的な撮影映像を、インターネットに接続したパーソナルコンピュータなどを利用して、関係者のみに配信するようなパーソナル放送とも言えるサービスが可能となる。また、ユーザまたは事業者は、多数の視聴者に向けてライブやコンサートなどの中継放送を行なういわゆるインターネット放送を実現できる。この場合、インターネット放送事業者は、商業用のインターネット・ストリームデータ配信サービスにおける配信サーバの負荷を軽減させることができる。即ち、インターネット放送事業者が管理するサーバから、少数の各ユーザ端末にストリームデータを配信し、当該各ユーザ端末から他の各ユーザ端末に対して当該ストリームデータを配信することができる。これにより、インターネット放送事業者が管理するサーバの負荷を、直接的にストリームデータを配信する先のユーザ端末数に応じて軽減することができる。
【0016】
【発明の実施の形態】
以下図面を参照して、本発明の実施の形態を説明する。
【0017】
(システムの基本的構成)
図1は、本実施形態に関するストリームデータ分散配信システムの概念を示す図である。
【0018】
本システムは、特にブロードバンドのインターネット等のような常時接続の高速ネットワーク環境を想定し、当該ネットワークに接続された複数のノード10によりストリームデータを分散配信する構成である。ここで、ストリームデータとは、動画(映像)や音声等の連続的ディジタルデータを意味する。また、ノード10とは、一般的には、ネットワークに接続されたユーザ端末であるが、サーバやルータなどのネットワーク機器であってもよい。ユーザ端末としては、具体的には、パーソナルコンピュータ、無線通信機能を有する携帯型情報端末(PDAや、ノート型パーソナルコンピュータなどを意味する)、あるいは携帯電話(PHSも含む)等のディジタル情報機器(デバイス)を意味する。また、ユーザ端末としては、前記のデバイス単体だけでなく、LANもしくは無線LANにより、複数のデバイスを接続して構成されるシステムを意味する場合もある。
【0019】
本システムでは、あるノード10(A)から送信されたストリームデータを受信したノード10(B)は、ストリームデータを復号して再生(視聴)すると共に、他のノード10に中継する。この場合、ノード10(B)は、データ処理能力及びネットワーク接続帯域の許容範囲内で、複数のノード10に対してストリームデータを中継する。
【0020】
要するに、本システムは、上流ノードから下流ノードへストリームデータの中継を実行することにより、高性能の配信用サーバを要することなく、多数のユーザ端末に対してストリームデータ配信を行なうストリームデータ分散配信機能を実現する。ここで、上流ノードとは、自ノードに対して上流であり、ストリームデータの送信元ノードまたは中継ノードである。また、下流ノードとは、自ノードに対してストリームデータの送信先ノードである。下流ノードは、ストリームデータを受信する受信ノード、または更に下流ノードに対して送信する中継ノードでもある。
【0021】
図2は、本システムの具体的構成の一例を示すブロック図である。
【0022】
本システムの具体的想定としては、多数のユーザ端末であるノード10がインターネット20に接続されて構築されたネットワークにおいて、ストリームデータ分散配信系に参加した各ユーザ端末に対してストリームデータが配信される構成である。各ノード10は、例えばADSL伝送方式やCATVネットワークを使用して、常時接続型の高速回線によりインターネットに接続される環境を想定している。
【0023】
あるノード10は、例えばパーソナルコンピュータ(PC)11と、ブロードバンド・ネットワーク接続インターフェース(BBNID)12とを有するユーザ端末である。BBNID(Broad-Band Network Interface Device)12は、具体的にはADSLモデムまたはケーブルモデム(CATVインターネット用モデム)等と、ルータ機能とを一体化したネットワーク機器である。これらのノード10は、インターネット20を介して受信したストリームデータを、例えばPC11のディスプレイ上に再生し、かつ他の下流ノード10へ中継する。
【0024】
また、あるノード10は、例えばPC11とディジタルビデオカメラ(DVC)13とを有する。これらのノード10は上流ノードとして、DVC13により撮影した映像(音声を含む)からなるストリームデータを、PC11にセットされたソフトウェア(同実施形態のメイン構成要素)により送信するユーザ端末である。
【0025】
(ノードの構成)
次に、図3を参照して、同実施形態のユーザ端末であるノード10の構成を説明する。
【0026】
同実施形態のノード10は、例えばパーソナルコンピュータと、当該コンピュータにセットされるソフトウェアと、各種デバイスとから構成される。図3は、同実施形態のメイン構成要素であり、PC11内で稼動する当該ソフトウェア構成を示すブロック図である。
【0027】
ストリームデータ分散配信システムを構成する各ノード10は、全て同一のソフトウェア構成を有し、ストリームデータの送信、受信、中継、再生の各機能を実現する。以下、ソフトウェア構成の各要素について具体的に説明する。なお、同実施形態のソフトウェア構成は、特定のOS(operating system)には依存しない設計である。
【0028】
本ソフトウェア構成は、トポロジエンジン30と、ストリームエンジン31と、ストリームスイッチ部32と、ノード全体の操作環境を司るGUI(graphical user interface)33と、ストリーム再生部34とからなる。
【0029】
トポロジエンジン30は、概略的にはメッセージ(制御情報)を交換することにより、各ノード10間のネットワーク接続関係(トポロジ:topology)を構成する機能を実現する。具体的には、トポロジエンジン30は、各ノード10間をTCP/IP(transmission control protocol/internet protocol)で接続して、各種のメッセージを送受信する。さらに、トポロジエンジン30は、直接あるいは間接的に接続された近傍のノードの存在を、メッセージの交換を通じて認識する。トポロジエンジン30は、当該近傍ノードの存在情報及びストリームデータの受信状態から代替トポロジを求めて、当該トポロジに従って一度構成した各ノード10間の接続関係を変更する。
【0030】
ストリームエンジン31は、ノード10間でのストリームデータの送信、受信、中継の各機能を実現するソフトウェアである。ストリームエンジン31は、トポロジエンジン30から受け取ったトポロジ情報(後述するトポロジ情報テーブル)に基づいて、隣接ノードである下流ノード(単数又は複数)に向けてストリームデータを送信する。また、隣接ノードである上流ノード(単数又は複数)からストリームデータを受信する。
【0031】
ここで、隣接ノードとは、自ノードと直接的に接続している上流又は下流のノードを意味する。また、近傍ノードとは、自ノードと間接的に接続している上流又は下流のノードを意味する。トポロジ情報(トポロジ情報テーブル)は、各ノード間の論理的な接続関係を示す情報(上流/下流及び隣接/近傍を識別する情報)、及び当該接続関係が形成された隣接または近傍のノードを特定する情報(ネットワークアドレスなど)を含む(図15を参照)。
【0032】
ストリームエンジン31は、ストリームデータ送受信用のTCP/IP接続を確立し、各ノード間でストリームデータの送受信を実行する。ストリームエンジン31は、ストリームデータのデータ形式(符号化方式)に依存しない汎用的配送機能を有し、例えばMPEG規格等の各種のデータ形式に適用できる構成である。
【0033】
ストリームスイッチ部32は、ストリームエンジン31と他の機能、デバイス、ファイルとの連携機能を実現するためのソフトウェアである。ストリームスイッチ部32は主機能として、ストリーム再生部34を起動し、ストリームエンジン31から取り出したストリームデータを渡す。ストリーム再生部34は、ストリームデータから出力用の映像や音声を復号化して、再生するためのソフトウェアである。更に、ストリームスイッチ部32は、ローカル装置である例えばデジタルビデオカメラ(DVC)13や、ローカルファイル装置36からストリームデータを取り出し、ストリームエンジン31に渡すことにより他のノードに送信する機能を実現する。
【0034】
GUI33は、トポロジエンジン30、ストリームエンジン31、ストリームデータスイッチ部32のそれぞれと、ユーザとのインターフェースを提供する。具体的には、GUI33は、ディスプレイの画面上に、隣接または近傍ノード間のトポロジ(接続関係)を可視的に表示したり、ストリームエンジン31の通信データ量を可視的に表示する。また、GUI33は、ユーザからのコマンド入力に応じて、他ノードへの明示的接続要求や、自ノードの接続鍵の設定を行なう。接続鍵とは、トポロジエンジン30に含まれるノード間の接続に関する認証機能で使用される鍵データである。
【0035】
ここで、接続鍵(CK)と公開鍵(PK)とを使用する認証機能を、具体的に説明する。あるノードが配信元(配信サーバの役割)となる場合、後述するように、GUI33の公開鍵取得部336が接続鍵発行サーバ71から公開鍵(PK)を取得し、これをトポロジエンジン30の接続認証部307が受け取り記憶する(図4及び図7を参照)。接続認証部307は、接続要求受理部306からの認証要求(接続鍵CKを含む)に応じて、当該公開鍵(PK)を使用して接続鍵(CK)を復号して認証する。
【0036】
これに対して、視聴参加するノードは、GUI33の接続鍵取得部334が接続鍵発行サーバ71から接続鍵(CK)を取得し、これをトポロジエンジン30の接続認証部307が受け取り記憶する。また、上流ノードへの接続要求の際には、トポロジエンジン30の接続要求部305は、接続認証部307から接続鍵(CK)を受け取り、上流ノードへ接続要求を実行する。
【0037】
更に、図4から図7を参照して、ノード10の各ソフトウェア構成を具体的に説明する。
【0038】
(トポロジエンジン)
トポロジエンジン30は、図4に示すように、トポロジ管理部300、トポロジテーブル301、負荷状態監視部302、制御データ通信部303,304、接続要求部305、接続要求受理部306、及び接続認証部307の各機能要素部を有する。
【0039】
トポロジ管理部300は、直接接続している上流ノードから受信したトポロジ情報(TI)に基づいて、隣接ノード群又は近傍ノード群の存在と、それらノード間の接続関係(トポロジ)を認識する。また、トポロジ管理部300は、当該トポロジ情報(TI)のテーブル形式にしたトポロジ情報テーブルをトポロジテーブル301に記憶する(以下TIを情報テーブルと表記する場合がある)。トポロジ管理部300は、ノード間のトポロジの変化に応じて、トポロジテーブル301に記憶した情報テーブル(TI)を更新する。
【0040】
トポロジ管理部300は、直接接続している隣接ノード、即ち上流ノード(通常では単数)及び下流ノード(単数又は複数)のノード識別子(ネットワークアドレス)をストリームエンジン31に渡す。ストリームエンジン31は、当該隣接ノードとの間にストリームデータ送受信用のTCP/IP接続を確立する。また、トポロジ管理部300は、トポロジテーブル301に記憶された情報テーブル(TI)をGUI33に渡す。GUI33は、当該情報テーブル(TI)に基づいて、ノード間のトポロジを可視化して画面上に表示する(図7を参照)。
【0041】
ここで、トポロジ情報テーブル(TI)について、図14及び図15を参照して具体的に説明する。
【0042】
図14は、各ノード10がネットワーク上で接続されている接続関係(トポロジ)の一例を示す図である。各ノード10は、例えばネットワークアドレスに相当する識別子(node0〜node5)により特定される。各ノード10は、基本的には、自ノードに対して上流ノードからトポロジ情報(TI)を受け取り、トポロジテーブル301として登録する。そして、各ノード10は、下流ノードからの接続要求に応じて、当該下流ノードとの接続関係を追加したトポロジ情報(TI)を下流ノードに提供する。
【0043】
ここで、仮に、node0の上流ノード10は、下流ノード(node1,4)との接続関係を記録したトポロジ情報(TI−0)を、当該下流ノード(node1,4)に提供する。このトポロジ情報(TI−0)は、図15(A)に示すように、接続関係にあるノード識別子(node0,1,4)と、隣接ノード(直接的に接続したノード)である上流ノードの識別子(node0のみ)とが対応付けされた情報テーブルである。なお、下流ノードの各識別子(node1,4)に対しては、下流ノードであることを示すフラグ情報を付加してもよい。即ち、自ノード(node0)は、当該フラグ情報により、トポロジ情報(TI−0)に登録された識別子(node1,4)を隣接ノードである下流ノードとして認識できる。
【0044】
下流ノード(node1)は、図14に示すように、自ノードが上流ノードとして下流ノード(node2,3)との接続関係を確立していると想定する。この場合、下流ノード(node1)は、上流ノード(node0)から提供されたトポロジ情報(TI−0)に、当該接続関係を追加したトポロジ情報(TI−1)を生成して、下流ノード(node2,3)に提供する(図15(B)を参照)。このトポロジ情報(TI−1)においても、同様に、下流ノードの各識別子(node2,3)に対しては、下流ノードであることを示すフラグ情報を付加してもよい。
【0045】
ここで、下流ノード(node2)は、提供されたトポロジ情報(TI−1)から、接続関係(1)〜(3)を認識することができる。即ち、接続関係(1)として、自ノード以外に、上流ノード(node1)に対する隣接ノードとして、下流ノード(node3)の存在を認識できる。接続関係(2)として、自ノードの上流ノード(node1)に対して、更に上流となるノード(node0)の存在を認識できる。接続関係(3)として、上流ノード(node0)の下流ノード(node4)の存在を認識できる。これら間接的に接続されたノードnode0、node3,node4は、自ノード(node2)にとっての近傍ノードである。
【0046】
同様に、下流ノード(node3)は、提供されたトポロジ情報(TI−1)から、接続関係(1)〜(3)を認識することができる。即ち、接続関係(1)として、自ノード以外に、上流ノード(node1)に対する隣接ノードとして、下流ノード(node2)の存在を認識できる。接続関係(2)として、自ノードの上流ノード(node1)に対して、更に上流となるノード(node0)の存在を認識できる。接続関係(3)として、上流ノード(node0)の下流ノード(node4)の存在を認識できる。
【0047】
一方、下流ノード(node4)は、図14に示すように、自ノードが上流ノードとして下流ノード(node5)との接続関係を確立していると想定する。この場合、下流ノード(node4)は、提供されたトポロジ情報(TI−0)に、当該接続関係を追加したトポロジ情報(TI−4)を生成して、下流ノード(node5)に提供する(図15(C)を参照)。このトポロジ情報(TI−4)においても、同様に、下流ノードの識別子(node5)に対しては、下流ノードであることを示すフラグ情報を付加してもよい。
【0048】
以上要するに、各ノードは、基本的に上流から下流へ提供されるトポロジ情報(TI)をトポロジテーブル301として管理(登録、更新、提供等)することにより、隣接ノード及び近傍ノードの存在を認識することができる。隣接ノードとは、前述したように、自ノードと直接的に接続する上流ノード又は下流ノードである。近傍ノードとは、自ノードと間接的に接続されたノードである(必ずしも自ノードより上流又は下流の関係とは限らない)。
【0049】
なお、トポロジ情報(TI)は、下流に行くほど情報量が増大することになる。このため、予め情報量の上限値を設定し、当該上限値を超えた場合には、トポロジ管理部300は、自ノードから最も遠い関係にあるノードの情報(識別子等)を削除するような構成が望ましい。
【0050】
負荷状態監視部302は、図4に示すように、後述するストリームエンジン31のストリームデータバッファ(FIFO式バッファ)の格納状態(SB)を監視し、これによりストリームエンジン31の負荷状態を判断する。負荷状態監視部302は、ストリームエンジン31の負荷状態が許容範囲を超える場合には、トポロジ管理部300に対して下流ノードの切断を指示する。なお、後述するように、ストリームエンジン31のストリームデータバッファの格納状態(SB)は、GUI33に対しても通知される。
【0051】
制御データ通信部303は、接続要求部305からの指示に応じて、上流ノード10Aとの制御データ通信チャネルを確立する。上流ノード10Aは、自ノード10からはストリームデータの送信元ノードに相当する。制御データ通信部303は、トポロジ情報(TI)を上流ノード10Aから受信する。また、制御データ通信部303は、上流ノード10Aを別のノードに切替える場合に、制御データ通信チャネルの切断を行なう。
【0052】
制御データ通信部304は、接続要求受理部306からの指示に応じて、下流ノード10Bとの制御データ通信チャネルを確立する。下流ノード10Bは、自ノードから送信するストリームデータの送信先ノードに相当する。制御データ通信部304は、トポロジ情報(TI)を下流ノード10Bへ送信する。また、制御データ通信部304は、下流ノード10Bが上流ノードを自ノードから別ノードへ切替えるときに、制御データ通信チャネルの切断を行なう。
【0053】
接続要求部305は、GUI33からの上流ノードの指定(CR)に応じて、上流ノード10Aに対する接続要求を行なう。さらに、接続要求部305は、接続要求を送信した上流ノード10Aからの接続受理通知に応じて、制御データ通信部303に対して接続を指示する。このとき、トポロジ管理部300に対して、制御データ通信チャネルが確立された上流ノード10Aのネットワークアドレスの登録を指示する。接続要求部305は、接続要求に伴なって、接続対象の上流ノード10Aとの間で接続認証処理に必要な接続鍵データ(CK)と公開鍵データ(PK)の交換を行なう。
【0054】
接続要求受理部306は、下流ノード10Bからの接続要求に応じて、接続認証部307により認証された場合に接続受理を行なう。接続要求受理部306は、接続受理に応じて制御データ通信部304に対して接続を指示すると共に、トポロジ管理部300に対して、制御データ通信チャネルが確立された下流ノード10Bのネットワークアドレスの登録を指示する。接続要求受理部306は、接続受理に伴なって、接続対象の下流ノード10Bとの間で接続認証処理に必要な接続鍵データ(CK)と公開鍵データ(PK)の交換を行なう。なお、接続認証処理手順については、後述する。
【0055】
接続認証部307は、接続要求部305及び接続受理部306による他のノード(上流ノードと下流ノード)との接続に必要な接続認証処理を実行する。接続認証部307は、公開鍵暗号方式を利用した認証処理を実行し、認証チケットに相当する接続鍵データ(CK)と公開鍵データ(PK)をGUI33から受け取る。また、接続認証部307は、接続要求部305及び接続要求受理部306のそれぞれとの間で、接続鍵データ(CK)と公開鍵データ(PK)の交換を実行する。
【0056】
ここで、前述したように、あるノードが配信元(配信サーバの役割)となる場合、GUI33の公開鍵取得部336が接続鍵発行サーバ71から公開鍵データ(PK)を取得し、これをトポロジエンジン30の接続認証部307が受け取り記憶する。接続認証部307は、接続要求受理部306からの認証要求(接続鍵データCKを含む)に応じて、当該公開鍵データ(PK)を使用して接続鍵データ(CK)を復号して認証する。また、視聴参加するノードは、GUI33の接続鍵取得部334が接続鍵発行サーバ71から接続鍵データ(CK)を取得し、これをトポロジエンジン30の接続認証部307が受け取り記憶する。また、上流ノードへの接続要求の際には、トポロジエンジン30の接続要求部305は、接続認証部307から接続鍵データ(CK)を受け取り、上流ノードへ接続要求を実行する。
【0057】
(ストリームエンジン)
ストリームエンジン31は、図5に示すように、ストリームデータ送信部311、ストリームデータ受信部312、ストリームデータバッファ313、ストリームデータバッファ状態監視部314、及びストリームデータ通信接続管理部315の各機能要素部を有する。
【0058】
ストリームデータ送信部311は、ストリームデータバッファ313に格納されたストリームデータを下流ノードに送信する(中継する)。このとき、ストリームデータ送信部311は、ストリームデータ通信接続管理部315から接続許可の指示がなされた下流ノードに対してストリームデータを送信する。
【0059】
ストリームデータバッファ313は、ストリームデータ受信部312で受信された上流ノードからのストリームデータ、または、ストリームスイッチ部32から受け取ったストリームデータを一時的に保存するFIFO式バッファである。ストリームデータバッファ状態監視部314は、ストリームデータバッファ313の格納状態(SB)を常に監視し、トポロジエンジン30及びGUI33に通知する。ここで、格納状態(SB)とは、バッファ313のサイズに対してストリームデータが格納されているデータ量を意味する。
【0060】
ストリームデータ受信部312は、ストリームデータ通信接続管理部315から指定された上流ノードとの間にストリームデータ通信チャネルを確立する。そして、当該上流ノードから送信されたストリームデータを受信して、ストリームデータバッファ313に書き込む。ストリームデータ通信接続管理部315は、ストリームデータ通信チャネルによる接続関係を確立すべき隣接ノードのリストをトポロジエンジン30から受け付ける。
【0061】
(ストリームスイッチ部)
ストリームデータスイッチ部32は、図6に示すように、GUI33からの指定(SW)に応じて、ストリームデータの入出力を切替える。即ち、ストリームスイッチ部32は、ストリームエンジン31から受け取ったストリームデータを、ストリームデータ再生部34またはノードのローカルファイル装置60に転送する。また、ストリームスイッチ部32は、ローカル装置であるデジタルビデオカメラ(DVC)35や、エンコーダデバイス36からのストリームデータ又はローカルファイル装置60に格納しているストリームデータを読出して、ストリームエンジン31に転送する。
【0062】
(GUI)
GUI33は、図7に示すように、ストリームデータ中継制御部331、中継状態(品質)表示部332、トポロジ表示部333、接続鍵取得部334、上流ノード決定部335、及び公開鍵取得部336の各機能要素部を有する。GUI33は、表示装置70の表示画面上のアイコンに対する操作に応じたコマンドを入力したり、当該表示画面上に各種の表示情報を表示する。
【0063】
ストリームデータ中継制御部331は、ユーザからのコマンド入力に応じて、ストリームデータ中継の停止又は再開の指示(SC)をストリームエンジン31に対して行なう。中継状態(品質)表示部332は、ストリームエンジン31からストリームデータバッファ313の格納状態(SB)を読取り、表示画面上に表示させる処理を実行する。
【0064】
トポロジ表示部333は、トポロジエンジン30からのトポロジ情報(TI)を受け取り、隣接ノード又は近傍ノードの接続関係を表示画面上に表示させる処理を実行する。接続鍵取得部334は、ユーザから入力された接続鍵データ(CK)、または後述する接続鍵発行サーバ71から発行された接続鍵データ(CK)をトポロジエンジン30に渡す。上流ノードへの接続要求の際には、トポロジエンジン30の接続要求部305は、接続認証部307から接続鍵データ(CK)を受け取り、上流ノードへ接続要求を実行する。
【0065】
GUI33の公開鍵取得部336は、あるノードが配信元(配信サーバの役割)となる場合、接続鍵発行サーバ71から公開鍵データ(PK)を取得し、トポロジエンジン30の接続認証部307に渡す。接続認証部307は、接続要求受理部306からの認証要求(接続鍵データCKを含む)に応じて、当該公開鍵データ(PK)を使用して接続鍵データ(CK)を復号して認証する。
【0066】
上流ノード決定部335は、ユーザから指定された上流ノード、または後述するノード仲介サーバ72から仲介された上流ノードのネットワークアドレスをトポロジエンジン30に渡す。
【0067】
(接続確立手順)
以下図8を参照して、同実施形態のノード間の接続処理の手順を説明する。
【0068】
ノード間の接続処理は、図8(A)に示す自ノードから見て下流ノードとの接続処理と、同図(B)に示す自ノードから見て上流ノードとの接続処理とに分けられる。要するに、自ノードは、相対的関係としての上流ノードまたは下流ノードとの接続処理を実行する。
【0069】
まず、上流ノードとの接続処理では、自ノードのトポロジエンジン30は、上流ノードに対して接続要求メッセージを送信する(ステップS1)。具体的には、図4に示す接続要求部305が、接続鍵データとIDデータとを含む接続要求メッセージを送信する。IDデータは、例えばストリームデータ配信を行なう特定のネットワークを構築する目的のグループID、またはストリームデータのコンテンツ毎に設定されたコンテンツID等を含む。また、IDデータは、各ノードのハードウェアを識別するためのIDデータ(例えばネットワーク・インターフェースのMACアドレスや、マイクロプロセッサに埋め込まれたシリアル番号など)を含む。
【0070】
自ノードは、上流ノードから接続要求に対する回答(接続認証処理の結果)を受信するまで待機状態となる(ステップS2)。そして、上流ノードから接続許可のメッセージを受信すると、トポロジエンジン30は、当該上流ノードとの制御通信チャネルを確立し、当該上流ノードをトポロジテーブル301に登録する(ステップS4)。また、トポロジエンジン30は、上流ノードから受信した接続許可のメッセージに含まれる公開鍵データを記憶する。更に、トポロジエンジン30は、接続した上流ノードをストリームエンジン31に登録させる(ステップS5)。これにより、ストリームエンジン31は、当該上流ノードとストリームデータ通信チャネルを接続し、ストリームデータを受信可能な状態となる。
【0071】
一方、自ノードは、上流ノードから接続拒否のメッセージを受信すると、別の上流ノードとの接続を試みる処理に移行できる(ステップS3のNO,S6)。ここで、別の上流ノードとは、自ノードが要望するストリームデータの配信を受けるために必要な上流ノードであり、ストリームデータ分散配信ネットワークを構成する同一グループに所属するノードである(後述する)。
【0072】
次に、下流ノードとの接続処理、即ち、自ノードが相対的に上流ノードの場合の接続処理を、図8(A)に示すフローチャートを参照して説明する。
【0073】
自ノードは、下流ノードから接続鍵データを含む接続要求メッセージを受信すると、接続認証処理を実行する(ステップS11,S12)。トポロジエンジン30の接続認証部307は、接続鍵を予め取得してある公開鍵データを用いて復号することにより接続認証処理を実行し、認証できない場合には接続拒否メッセージを下流ノードに返信する(ステップS13のNO,S17)。
【0074】
一方、トポロジエンジン30は、認証成功の場合には、既存の下流ノードへのストリームデータ中継の品質が規定値以上であるか否かを判定し、判定結果が規定値以下の場合には接続拒否メッセージを下流ノードに返信する(ステップS114のNO,S17)。即ち、新たな下流ノードを接続した結果、中継品質が規定値以下になる場合には、自ノードは、下流ノードを増やすことを防ぐため接続を拒否する。
【0075】
トポロジエンジン30は、最終的に接続を許可する場合には、公開鍵データを含む接続許可メッセージを下流ノードに返信する(ステップS14のYES,S15)。更に、トポロジエンジン30は、接続を許可した下流ノードをトポロジテーブル301に登録すると共に、当該下流ノードをストリームエンジン31に登録させる(ステップS16)。これにより、ストリームエンジン31は、当該下流ノードとストリームデータ通信チャネルを接続し、ストリームデータを送信可能な状態となる。
【0076】
以上のような接続処理により、上流ノード及び下流ノードの各ノード間の接続が確立されて、図1に示すように、ストリームデータ分散配信系のネットワークを構成することができる。
【0077】
(上流ノード取得手順)
以下図9を参照して、自ノードがストリームデータ配信を受けるために、即ちストリームデータ分散配信系に参加するために、新規に上流ノードを取得するための手順を説明する。ここで、同図(A),(C)に示すステップS21からステップS26は、各ノード側での処理手順を示す。また、同図(B)に示すステップS31からステップS37は、ノード仲介サーバ側での処理手順を示す。
【0078】
ここでは、ノード仲介サーバ(図7のサーバ72)の存在を想定し、このノード仲介サーバから上流ノードの紹介を受ける構成を説明する。
【0079】
ノード仲介サーバは、グループIDに対応する、即ち一つのストリームデータ分散配信系に属する複数のノードをノードデータベース720に登録している。当然ながら、ノードデータベース720には、複数のグループID(ストリームデータ分散配信系)についてそれぞれに属すノードを登録することができる。
【0080】
まず、自ノードは、上流ノード紹介要求メッセージ(グループIDを含む)を、ノード仲介サーバに送信する(ステップS21)。ノード仲介サーバは、当該メッセージを受信すると、ノードデータベース720から当該ストリームデータ分散配信系に属すノードを検索する(ステップS31,S32)。そして、ノード仲介サーバは、検索したノードのネットワークアドレスを含む応答メッセージを返信する(ステップS33)。
【0081】
自ノードは、応答メッセージから紹介された上流ノードのネットワークアドレスを取得し、当該上流ノードとの接続処理に移行する(ステップS22,S23)。ステップS23は、図8のステップS1から開始される処理ステップである。この接続処理では、前述したように、紹介された上流ノードは、接続認証処理を実行して、最終的に接続許可又は接続拒否の判定を実行する。自ノードは、上流ノードとの接続が完了しない場合には、再度、ノード仲介サーバに対して紹介要求メッセージを送信する(ステップS24のNO,S21)。
【0082】
上流ノードとの接続が完了すると、ノード仲介サーバに接続完了メッセージを送信する(ステップS24のYES,S25)。ノード仲介サーバは、当該メッセージを受信すると、ノードデータベース720に当該自ノードを登録する(ステップS34,S35)。一方で、ノード仲介サーバは、自ノードからストリームデータ分散配信系ネットワークからの離脱を示すノード離脱メッセージを受信すると、ノードデータベース720から当該自ノードの登録を削除する(ステップSS26,S36,S37)。
【0083】
以上のような処理により、ストリームデータ分散配信系のネットワークに参加を希望するユーザは、ストリームデータを中継してくれる上流ノードに接続することができる。なお、ノード仲介サーバを介在させることなく、別の方法で上流ノードのネットワークアドレスを取得できれば、当該上流ノードへの接続は可能である。
【0084】
(トポロジ変更手順)
以下図10を参照して、各ノード間を接続して構成されたストリームデータ分散配信系ネットワークの接続関係であるトポロジを変更する場合の手順を説明する。
【0085】
ここでは、図10(A)に示すように、相対的に下流側のノード(1)、ノード(2)、及び上流側のノード(3)が接続された状態のトポロジを想定する。ノード(2)は、同図(B)に示すように、トポロジ変更処理として、ノード(1)に対する上流ノードの変更処理を実行する。即ち、ノード(2)は、代替上流ノード(3)の指定を含む上流ノード変更メッセージを、下流ノード(1)に送信する(ステップS41)。
【0086】
下流ノード(1)は、同図(C)に示すように、上流ノード(2)から上流ノード変更メッセージを受信すると、指定された代替上流ノード(3)に対する接続処理を実行する(ステップS45,S46)。接続処理では、下流ノード(1)は、代替上流ノード(3)に対して接続要求メッセージを送信する。代替上流ノード(3)は、同図(D)に示すように、受信した接続要求メッセージに基づいて、下流ノード(1)との接続処理を実行する(ステップS50)。そして、代替上流ノード(3)は、接続許可メッセージまたは接続拒否メッセージを下流ノード(1)に返信する。なお、ステップS46,S50は、図8のステップS1,S11から開始される処理ステップに対応する。
【0087】
下流ノード(1)は、代替上流ノード(3)から接続許可メッセージを受信した場合に、上流変更完了の通知を上流ノード(2)に送信する(ステップS47)。下流ノード(1)は、上流ノード(2)との通信チャネル(制御データ通信チャネルとストリームデータ通信チャネル)を切断し、トポロジテーブル301から上流ノード(2)の登録を削除する(ステップS48,S49)。
【0088】
一方、上流ノード(2)は、上流変更完了の通知を受信すると、下流ノード(1)との通信チャネル(制御データ通信チャネルとストリームデータ通信チャネル)を切断し、トポロジテーブル301から下流ノード(2)の登録を削除する(ステップS42,S43,S44)。
【0089】
以上のような上流変更処理により、上流ノードと下流ノードとの接続関係が変更されて、結果として各ノード間の接続関係であるトポロジを変更できる。このトポロジ変更機能は、例えばノード(2)がネットワークから離脱したり、新たにノード(3)が参加するような場合に有効である。即ち、下流ノード(1)は、各ノードの状況に応じて動的かつ自律的に上流ノードを変更できるため、ストリームデータを停止することなく受信することができる。
【0090】
(接続切断手順)
以下図11を参照して、同実施形態のノード間の接続切断処理の手順を説明する。ここでは、下流ノードから上流ノードに対する接続を切断する場合の手順を説明する。逆の場合も、基本的には同様の手順となる。
【0091】
まず、下流ノードは、同図(A)に示すように、接続されている上流ノードに対して切断メッセージを送信する(ステップS61)。上流ノードは、同図(B)に示すように、切断メッセージを受信すると、下流ノードに対して切断受理の通知を送信する(ステップS66,S67)。
【0092】
下流ノードは、上流ノードから切断受理の通知を受信すると、当該上流ノードとの通信チャネル(制御データ通信チャネルとストリームデータ通信チャネル)を切断する(ステップS62,S63)。さらに、下流ノードは、トポロジテーブル301から当該上流ノードの登録を削除する(ステップS64)。
【0093】
一方、上流ノードは、下流ノードとの通信チャネル(制御データ通信チャネルとストリームデータ通信チャネル)を切断する(ステップS68)。さらに、上流ノードは、トポロジテーブル301から下流ノードの登録を削除する(ステップS69)。
【0094】
以上のような接続切断処理により、各ノードは、任意のタイミングで接続関係にあるノードとの接続を切断できる。この接続切断処理により、各ノード間のトポロジが変更となる。
【0095】
(下流ノードの処理手順)
図12は、下流ノード側の処理手順を整理して説明するためのフローチャートである。
【0096】
まず、ユーザがストリームデータ分散配信系ネットワークに参加する場合には、ユーザ端末が下流ノードとして初期化処理を実行することになる(ステップS70)。具体的には、前述したように、ノード仲介サーバから上流ノードの紹介を受ける(ステップS80)。当該下流ノードは、紹介された上流ノードに対する接続要求を実行する(ステップS81)。上流ノードから接続許可通知を受信した場合には、上流ノードとの接続が完了となる(ステップS82のYES)。これにより、下流ノードは、紹介された上流ノードからストリームデータを受信することができる。
【0097】
次に、接続されている上流ノードから上流変更メッセージを受信すると(ステップS71)、下流ノードは、当該メッセージに含まれる代替上流ノードに対して、接続要求を行なう(ステップS81)。この接続要求に対して、代替上流ノードから接続許可通知を受信した場合には、上流ノードとの接続が完了となる(ステップS82のYES)。ここで、下流ノードは、紹介された上流ノードまたは代替上流ノードから接続拒否通知を受信した場合あるいは何ら応答が得られない場合には、ノード仲介サーバから新たな上流ノードの紹介を受ける(ステップS82のNO(A),S80)。
【0098】
一方、下流ノードは、接続している上流ノードとの通信途絶(通信チャネルの切断も含む)を検出した場合には(ステップS72)、トポロジテーブル301から別の上流ノードを選択する(ステップS83)。下流ノードは、選択した上流ノードに対する接続要求を実行する(ステップS81)。上流ノードから接続許可通知を受信した場合には、上流ノードとの接続が完了となる(ステップS82のYES)。
【0099】
選択した上流ノードから接続拒否通知を受信した場合には、下流ノードは、トポロジテーブル301から全ての上流ノードの候補について、選択及び接続要求を実行する(ステップS82のNO(B),S84のNO)。全ての上流ノードの候補から接続拒否通知を受信した場合には、下流ノードは、改めて、ノード仲介サーバから新たな上流ノードの紹介を受ける(ステップS84のYES,S80)。
【0100】
また、下流ノードは、接続している上流ノードからのストリームデータ中継の品質低下を検出した場合には(ステップS73)、当該上流ノードとの接続を切断し、トポロジテーブル301から別の上流ノードを選択する処理に移行する(ステップS85,S83)。以後の処理については、前記の上流ノードとの通信途絶の場合と同様である。
【0101】
(トポロジ情報の交換手順)
図13は、各ノード間でのトポロジ情報の交換手順を整理して説明するためのフローチャートである。
【0102】
各ノードは、前述したように、トポロジエンジン30において、トポロジ管理部300、トポロジテーブル301、及び制御データ通信部303,304により、トポロジ情報テーブル(TI)を交換する。
【0103】
ここでは、上流ノードから下流ノードに対して、トポロジ情報テーブル(TI)を送信する場合を想定する。上流ノードは、接続した下流ノードに対して、自ノードと隣接ノードまたは近傍ノードとの接続関係を示すトポロジ情報テーブルを送信する(ステップS90)。下流ノードは、上流ノードからトポロジ情報テーブルを受信すると、トポロジテーブル301に併合(追加)処理して格納する(ステップS91,S92)。
【0104】
以上のように同実施形態によれば、特にブロードバンドのインターネット等のネットワーク環境において、各ノードに設けられたトポロジエンジン30の機能により、各ノード間を接続して、上流ノードと下流ノードとから構成されるストリームデータ分散配信系ネットワークを形成することができる。具体的には、図1に示すように、例えば最上流のノード10(A)から送信するストリームデータを、近傍の下流ノード10(B)に配信する。当該下流ノード10(B)は、受信したストリームデータを復号して再生すると同時に、上流ノードとして、更に下流ノードに対して当該ストリームデータを中継する。同様にして、各下流ノードは、受信したストリームデータを復号再生すると同時に、上流ノードとして、更に下流ノードに対して中継する。但し、一般的には、各ノードは、ISP(インターネット接続サービスプロバイダ)や通信事業者などを介して、インターネットへの接続を行なうことになる。
【0105】
従って、ストリームデータ配信用のサーバが存在しなくても、クライアント(ユーザ端末)のみから構成されるストリームデータ配信系のネットワークを実現できる。このような分散ネットワーク形成機能を利用することにより、ストリームデータ配信用のサーバからストリームデータ配信を行なうネットワークの場合でも、当該サーバの配信処理に要する負荷の軽減を図ることができる。即ち、例えば放送事業者が運営するサーバから、各ユーザ端末にストリームデータを配信すると共に、当該各ユーザ端末から他の各ユーザ端末に対して当該ストリームデータを配信することができる。これにより、放送事業者が運営するサーバの負荷を、ストリームデータ配信先のユーザ端末数に依存せずに低く抑えることができる。
【0106】
また、いわゆる商業用ストリームデータ配信系のネットワークではなく、ユーザが個人的な撮影映像などを、インターネットに接続した関係者のみの各ノードに対して配信するためのプライベートネットワークを構築することができる。このようなプライベートネットワークを利用して、パーソナル放送とも言えるサービスが可能となる。
【0107】
なお、同実施形態では、ノード仲介サーバの存在を想定した場合について言及している。このノード仲介サーバは、ストリームデータ配信用のサーバ、即ち分散配信系の中央制御サーバとは全く異なるものであり、単に上流サーバとしての候補を紹介するだけの限定された機能しか備えていないサーバである。従って、当該サーバは、ネットワークを構成する全ノードを正確に認識するようなデータベースを必要とせず、ネットワークに参加しているノードの中で未知のノードが存在していても差し支えない。また、ユーザが、ノード仲介サーバからの紹介とは別の方法で、上流ノードを知っている場合には、当然ながら、ノード仲介サーバは不要である。要するに、同実施形態では、ノード仲介サーバの存在は必須要件ではなく、実際上のサービス効率の観点からは望ましい存在である。
【0108】
(同実施形態に適用可能なビジネスモデルまたは応用例)
同実施形態のストリームデータ分散配信系ネットワークを適用することにより、以下のようなビジネスモデルまたは応用例を実現できる。
【0109】
(1)例えば結婚式の披露宴などで、ユーザが個人的に撮影した映像を、ストリームデータとして各ユーザ(関係者のみ)に配信するパーソナル放送またはコミュニティ放送とも呼べるシステムを実現できる。この場合、ネットワークを構築する各ノードは、例えば公開鍵方式による接続認証機能により特定されるユーザ端末のみから構成される。
【0110】
(2)前記(1)の拡張系として、ビデオカメラを用意した複数のユーザが集まり、各ユーザ間で同時に送受信することにより、ビデオ・チャット・サービスを実現できる。
【0111】
(3)ビデオカメラを備えたノードを、例えば街頭など屋外の特定の場所や、ビル、コンサートホール等に設置し、事件やイベントが発生した場合に、当該ビデオカメラにより撮影した映像(音声付)を、予め契約し、接続鍵の配布を受けた各ノードに対して中継するロケーション・サービスとも呼べるビジネスモデルを実現できる。この場合、各ノードは、サービス事業会社と契約することにより、当該会社が運営するネットワークに接続して、中継サービスを受けられる。具体的には、いわゆるインターネット・コンサートライブ放送を容易に実現できる。
【0112】
(4)コンテンツの商用配信サービス系ネットワークにおいて、事業者が運営するサーバから各ユーザに対して、有料のコンテンツを配信する場合に、ユーザが中継ノードを提供することにより、サーバ側の配信負荷を軽減できる。この場合、中継ノードを提供したユーザに対して、当該コンテンツの視聴チケットに交換できるポイントを提供するようなインセンティブを与えることにより、同実施形態のシステムを有効に利用することができる。
【0113】
(5)ノード間の制御データ通信チャネルを利用して、下流ノードから上流ノードへの情報通信を含め、各ノード間をピア・ツー・ピア(peer-to-peer)通信で結ぶことによって、ストリーム配信と同時に様々なコミュニケーション・サービスを実現することができる。例えば、下流から上流へと情報を集約することにより、配信コンテンツの人気投票サービス、クイズやアンケートに対するリアルタイム・サービスが可能となる。この場合も、同時アクセスを処理する大規模なサーバが不要になることがメリットである。また、下流ノード同士でチャットなどのコミュニケーションをストリーム配信と同時に実現できる。コンサート放送を見ながら、視聴者同士がチャットし合うようなサービスを提供できる。
【0114】
【発明の効果】
以上詳述したように本発明によれば、インターネットなどのネットワーク環境において、特にユーザ端末間での自律的又は個人的なストリームデータ配信を実現できるストリームデータ分散配信技術を提供できる。具体的には、例えばブロードバンドのネットワーク環境を利用して、特別のストリームデータ配信用サーバを用意することなく、クライアント(端末ノード)間での動画・音声のストリームデータの分散配信を実現できる。
【図面の簡単な説明】
【図1】本発明の実施形態に関するストリームデータ分散配信システムの概念を示す図。
【図2】同実施形態に関するシステムの具体的構成の一例を示すブロック図。
【図3】同実施形態に関するノード(ユーザ端末)の構成を示すブロック図。
【図4】同ノードのトポロジエンジンの構成を示すブロック図。
【図5】同ノードのストリームエンジンの構成を示すブロック図。
【図6】同ノードのストリームデータスイッチ部の構成を示すブロック図。
【図7】同ノードのGUIの構成を示すブロック図。
【図8】同実施形態に関するノード間の接続確立処理の手順を説明するためのフローチャート。
【図9】同実施形態に関する上流ノード取得手順を説明するためのフローチャート。
【図10】同実施形態に関するトポロジ変更手順を説明するためのフローチャート。
【図11】同実施形態に関するノード間の接続切断処理の手順を説明するためのフローチャート。
【図12】同実施形態に関する下流ノード側の処理手順を説明するためのフローチャート。
【図13】同実施形態に関する各ノード間でのトポロジ情報の交換手順を説明するためのフローチャート。
【図14】同実施形態に関するトポロジ情報の内容を説明するための図。
【図15】同トポロジ情報の一例を示す図。
【符号の説明】
10…ノード
11…パーソナルコンピュータ(PC)
12…ルータ
13…ディジタルビデオカメラ(DVC)
20…インターネット
30…トポロジエンジン
31…ストリームエンジン
32…ストリームスイッチ部
33…GUI
34…ストリームデータ再生部
300…トポロジ管理部
301…ノードテーブル
302…負荷状態監視部
303…制御データ通信部
304…制御データ通信部
305…接続要求部
306…接続要求受理部
307…接続認証部
311…ストリームデータ送信部
312…ストリームデータ受信部
313…ストリームデータバッファ
314…ストリームデータバッファ状態監視部
315…ストリームデータ通信接続管理部

Claims (20)

  1. 複数のユーザ端末が相互接続して構築されるネットワークにおいて、各ユーザ端末間で、上流ノードとしてのユーザ端末がストリームデータを送信し、下流ノードとしてのユーザ端末がストリームデータを受信するストリームデータ分散配信機能を実現する方法であって、
    前記各ユーザ端末は、下流ノードとして接続先の上流ノードを認識する情報を含み、上流ノードと下流ノードとの接続関係を認識するためのトポロジ情報を記憶する手段、当該トポロジ情報を各ユーザ端末間で交換する手段、及び前記ストリームデータの送受信を行なう手段を有し、
    下流ノードとして動作するユーザ端末は、
    上流ノードに相当するユーザ端末に接続を要求するステップと、
    前記トポロジ情報を受信するステップと、
    受信した前記トポロジ情報から、接続を要求する上流ノードに相当するユーザ端末を選択するステップと
    を有する手順を実行し、
    上流ノードとして動作するユーザ端末は、
    記憶しているトポロジ情報に対して、下流ノードに相当するユーザ端末との接続に従って更新し、かつ上位の上流ノードに相当するユーザ端末から送信されたトポロジ情報を併合するステップと、
    下流ノードとして接続された全てのユーザ端末に対して、前記トポロジ情報を送信するステップと
    を有する手順を実行することを特徴とするストリームデータ分散配信方法。
  2. 前記各ユーザ端末は、
    上流ノードまたは下流ノードに相当するユーザ端末との接続切断に応じて、前記トポロジ情報を更新するステップを有することを特徴とする請求項1に記載のストリームデータ分散配信方法。
  3. 下流ノードとして動作するユーザ端末は、
    既存の上流ノードに相当するユーザ端末との接続切断に応じて、前記トポロジ情報から新たな上流ノードに相当するユーザ端末を選択するステップと、
    前記選択した上流ノードに相当するユーザ端末に対して、接続を要求するステップと
    を有することを特徴とする請求項1または請求項2のいずれか1項に記載のストリームデータ分散配信方法。
  4. 上流ノードとして動作するユーザ端末は、
    下流ノードに相当するユーザ端末からの接続要求に応じて接続認証処理を実行するステップを有することを特徴とする請求項1に記載のストリームデータ分散配信方法。
  5. 下流ノードとして動作するユーザ端末は、
    前記上流ノードに相当するユーザ端末から受信した前記ストリームデータを再生するステップを有することを特徴とする請求項1から請求項4のいずれか1項に記載のストリームデータ分散配信方法。
  6. 複数のユーザ端末が相互接続して構築されるネットワークにおいて、各ユーザ端末間で、上流ノードとしてのユーザ端末がストリームデータを送信し、下流ノードとしてのユーザ端末がストリームデータを受信するストリームデータ分散配信機能を実現するためのプログラムであって、
    前記各ユーザ端末は、前記プログラムを実行するコンピュータを有し、
    下流ノードとして接続先の上流ノードを認識する情報を含み、上流ノードと下流ノードとの接続関係を認識するためのトポロジ情報を記憶する機能と、
    前記トポロジ情報を各ユーザ端末間で交換する機能と、
    前記ストリームデータの送受信を行なう機能とを前記コンピュータに実現させて、
    下流ノードとして動作する場合に、
    上流ノードに相当するユーザ端末に接続を要求する機能と、
    前記トポロジ情報を受信する機能と、
    受信した前記トポロジ情報から、接続を要求する上流ノードに相当するユーザ端末を選択する機能とを前記コンピュータに実現させて、
    上流ノードとして動作する場合に、
    記憶しているトポロジ情報に対して、下流ノードに相当するユーザ端末との接続に従って更新し、かつ上位の上流ノードに相当するユーザ端末から送信されたトポロジ情報を併合する機能と、
    下流ノードとして接続された全てのユーザ端末に対して、前記トポロジ情報を送信する機能とを前記コンピュータに実現させるためのプログラム
  7. 上流ノードまたは下流ノードに相当するユーザ端末との接続切断に応じて、前記トポロジ情報を更新する機能を前記コンピュータに実現させることを特徴とする請求項6に記載のプログラム
  8. 下流ノードとして動作する場合に、
    既存の上流ノードに相当するユーザ端末との接続切断に応じて、前記トポロジ情報から新たな上流ノードに相当するユーザ端末を選択する機能と、
    前記選択した上流ノードに相当するユーザ端末に対して、接続を要求する機能と
    を前記コンピュータに実現させることを特徴とする請求項6または請求項7のいずれか1項に記載のプログラム
  9. 上流ノードとして動作する場合に、
    下流ノードに相当するユーザ端末からの接続要求に応じて接続認証処理を実行する機能を前記コンピュータに実現させることを特徴とする請求項に記載のプログラム
  10. 下流ノードとして動作する場合に、
    前記上流ノードに相当するユーザ端末から受信した前記ストリームデータを再生する機能を前記コンピュータに実現させることを特徴とする請求項から請求項9のいずれか1項に記載のプログラム
  11. 複数のユーザ端末が相互接続して構築されるネットワークにおいて、各ユーザ端末間で、上流ノードとしてのユーザ端末がストリームデータを送信し、下流ノードとしてのユーザ端末がストリームデータを受信するストリームデータ分散配信機能を実現するシステムであって、
    前記各ユーザ端末は、
    下流ノードとして接続先の上流ノードを認識する情報を含み、上流ノードと下流ノードとの接続関係を認識するためのトポロジ情報を記憶する手段と、
    前記トポロジ情報を各ユーザ端末間で交換する手段と、
    前記ストリームデータの送受信を行なう手段とを有し、
    下流ノードとして動作するユーザ端末は、
    上流ノードに相当するユーザ端末に接続を要求する手段と、
    前記トポロジ情報を受信する手段と、
    受信した前記トポロジ情報から、接続を要求する上流ノードに相当するユーザ端末を選択する手段とを有し、
    上流ノードとして動作するユーザ端末は、
    記憶しているトポロジ情報に対して、下流ノードに相当するユーザ端末との接続に従って更新し、かつ上位の上流ノードに相当するユーザ端末から送信されたトポロジ情報を併合する手段と、
    下流ノードとして接続された全てのユーザ端末に対して、前記トポロジ情報を送信する手段と
    を有することを特徴とするストリームデータ分散配信システム
  12. 前記各ユーザ端末は、
    上流ノードまたは下流ノードに相当するユーザ端末との接続切断に応じて、前記トポロジ情報を更新する手段を有することを特徴とする請求項11に記載のストリームデータ分散配信システム
  13. 下流ノードとして動作するユーザ端末は、
    既存の上流ノードに相当するユーザ端末との接続切断に応じて、前記トポロジ情報から新たな上流ノードに相当するユーザ端末を選択する手段と、
    前記選択した上流ノードに相当するユーザ端末に対して、接続を要求する手段と
    を有することを特徴とする請求項11または請求項12のいずれか1項に記載のストリームデータ分散配信システム
  14. 上流ノードとして動作するユーザ端末は、
    下流ノードに相当するユーザ端末からの接続要求に応じて接続認証処理を実行する手段を有することを特徴とする請求項11に記載のストリームデータ分散配信システム
  15. 下流ノードとして動作するユーザ端末は、
    前記上流ノードに相当するユーザ端末から受信した前記ストリームデータを再生する手段を有することを特徴とする請求項11から請求項14のいずれか1項に記載のストリームデータ分散配信システム
  16. 複数のユーザ端末が相互接続して構築されるネットワークにおいて、各ユーザ端末間で、上流ノードとしてのユーザ端末がストリームデータを送信し、下流ノードとしてのユーザ端末がストリームデータを受信する各ユーザ端末のそれぞれを構成する電子機器であって、
    前記各ユーザ端末は、
    下流ノードとして接続先の上流ノードを認識する情報を含み、上流ノードと下流ノードとの接続関係を認識するためのトポロジ情報を記憶する手段と、
    前記トポロジ情報を各ユーザ端末間で交換する手段と、
    前記ストリームデータの送受信を行なう手段とを有し、
    下流ノードとして動作するユーザ端末は、
    上流ノードに相当するユーザ端末に接続を要求する手段と、
    前記トポロジ情報を受信する手段と、
    受信した前記トポロジ情報から、接続を要求する上流ノードに相当するユーザ端末を選択する手段とを有し、
    上流ノードとして動作するユーザ端末は、
    記憶しているトポロジ情報に対して、下流ノードに相当するユーザ端末との接続に従って更新し、かつ上位の上流ノードに相当するユーザ端末から送信されたトポロジ情報を併合する手段と、
    下流ノードとして接続された全てのユーザ端末に対して、前記トポロジ情報を送信する手段とを有することを特徴とする電子機器
  17. 前記各ユーザ端末は、
    上流ノードまたは下流ノードに相当するユーザ端末との接続切断に応じて、前記トポロジ情報を更新する手段を有することを特徴とする請求項16に記載の電子機器
  18. 下流ノードとして動作するユーザ端末は、
    既存の上流ノードに相当するユーザ端末との接続切断に応じて、前記トポロジ情報から新たな上流ノードに相当するユーザ端末を選択する手段と、
    前記選択した上流ノードに相当するユーザ端末に対して、接続を要求する手段と
    を有することを特徴とする請求項16または請求項17のいずれか1項に記載の電子機器
  19. 上流ノードとして動作するユーザ端末は、
    下流ノードに相当するユーザ端末からの接続要求に応じて接続認証処理を実行する手段を有することを特徴とする請求項16に記載の電子機器
  20. 下流ノードとして動作するユーザ端末は、
    前記上流ノードに相当するユーザ端末から受信した前記ストリームデータを再生する手段を有することを特徴とする請求項16から請求項19のいずれか1項に記載の電子機器
JP2001364944A 2001-11-29 2001-11-29 ストリームデータ分散配信方法及びそのシステム Expired - Fee Related JP3955989B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001364944A JP3955989B2 (ja) 2001-11-29 2001-11-29 ストリームデータ分散配信方法及びそのシステム
US10/184,415 US20030101253A1 (en) 2001-11-29 2002-06-27 Method and system for distributing data in a network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001364944A JP3955989B2 (ja) 2001-11-29 2001-11-29 ストリームデータ分散配信方法及びそのシステム

Publications (3)

Publication Number Publication Date
JP2003169089A JP2003169089A (ja) 2003-06-13
JP2003169089A5 JP2003169089A5 (ja) 2005-07-21
JP3955989B2 true JP3955989B2 (ja) 2007-08-08

Family

ID=19175055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001364944A Expired - Fee Related JP3955989B2 (ja) 2001-11-29 2001-11-29 ストリームデータ分散配信方法及びそのシステム

Country Status (1)

Country Link
JP (1) JP3955989B2 (ja)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11650784B2 (en) 2003-07-28 2023-05-16 Sonos, Inc. Adjusting volume levels
US11106424B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US8086752B2 (en) 2006-11-22 2011-12-27 Sonos, Inc. Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data
US11106425B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US8234395B2 (en) 2003-07-28 2012-07-31 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
US11294618B2 (en) 2003-07-28 2022-04-05 Sonos, Inc. Media player system
US10613817B2 (en) 2003-07-28 2020-04-07 Sonos, Inc. Method and apparatus for displaying a list of tracks scheduled for playback by a synchrony group
US8290603B1 (en) 2004-06-05 2012-10-16 Sonos, Inc. User interfaces for controlling and manipulating groupings in a multi-zone media system
US9374607B2 (en) 2012-06-26 2016-06-21 Sonos, Inc. Media playback system with guest access
US9977561B2 (en) 2004-04-01 2018-05-22 Sonos, Inc. Systems, methods, apparatus, and articles of manufacture to provide guest access
JP4824914B2 (ja) * 2004-04-26 2011-11-30 株式会社エヌ・ティ・ティ・ドコモ ネットワークリカバリーシステム及びネットワークリカバリー方法並びにノード
US8868698B2 (en) 2004-06-05 2014-10-21 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US8326951B1 (en) 2004-06-05 2012-12-04 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
JP4701643B2 (ja) 2004-07-08 2011-06-15 ブラザー工業株式会社 処理装置、処理方法、処理プログラム、及び記録媒体
EP1768324A4 (en) 2004-07-13 2010-01-20 Brother Ind Ltd DISTRIBUTION DEVICE, RECEIVER DEVICE, THREE-TYPE DISTRIBUTION SYSTEM, INFORMATION PROCESSING METHOD, ETC.
EP1770920A4 (en) 2004-07-16 2011-10-12 Brother Ind Ltd CONNECTING MODE CONTROL DEVICE, CONNECTION MODE CONTROL METHOD AND CONNECTION MODE CONTROL PROGRAM
JP4428161B2 (ja) 2004-07-16 2010-03-10 ブラザー工業株式会社 接続状態制御装置、接続状態制御方法及び接続状態制御用プログラム
JP4496872B2 (ja) * 2004-07-16 2010-07-07 ブラザー工業株式会社 接続態様制御装置及び中継装置、接続態様制御方法及び中継方法並びに接続態様制御用プログラム及び中継装置用プログラム
JP4370995B2 (ja) 2004-07-26 2009-11-25 ブラザー工業株式会社 接続態様設定装置及び接続態様設定方法、並びに接続態様制御装置及び接続態様制御方法等
US7174385B2 (en) * 2004-09-03 2007-02-06 Microsoft Corporation System and method for receiver-driven streaming in a peer-to-peer network
JP4498871B2 (ja) * 2004-09-22 2010-07-07 株式会社エヌ・ティ・ティ・ドコモ 無線通信装置
JP4636864B2 (ja) * 2004-11-30 2011-02-23 株式会社エヌ・ティ・ティ・ドコモ 中継機器
WO2006120946A1 (ja) 2005-05-10 2006-11-16 Brother Kogyo Kabushiki Kaisha ツリー型ネットワークシステム、ノード装置、放送システム及び放送方法等
JP4544072B2 (ja) * 2005-07-20 2010-09-15 ブラザー工業株式会社 ノード装置、コンピュータプログラム、情報配信システム、及びネットワーク参加方法
JP4668013B2 (ja) 2005-08-30 2011-04-13 パナソニック株式会社 コンテンツ配信方法、コンテンツ配信サーバ、通信端末装置及びコンテンツ配信システム
JP4586723B2 (ja) * 2005-12-19 2010-11-24 ブラザー工業株式会社 コンテンツ配信システム及びコンテンツ配信方法並びにそれに用いる端末装置及びそのプログラム
JP2007235471A (ja) 2006-02-28 2007-09-13 Brother Ind Ltd コンテンツ配信システム、コンテンツ配信方法、端末装置、及びそのプログラム
US12167216B2 (en) 2006-09-12 2024-12-10 Sonos, Inc. Playback device pairing
US8788080B1 (en) 2006-09-12 2014-07-22 Sonos, Inc. Multi-channel pairing in a media system
US9202509B2 (en) 2006-09-12 2015-12-01 Sonos, Inc. Controlling and grouping in a multi-zone media system
US8483853B1 (en) 2006-09-12 2013-07-09 Sonos, Inc. Controlling and manipulating groupings in a multi-zone media system
JP4894550B2 (ja) 2007-02-19 2012-03-14 富士通株式会社 コンテンツ配信システム、サーバ装置、およびコンテンツ配信方法
JP5255654B2 (ja) * 2008-01-10 2013-08-07 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 多方向ピアツーピアメディアストリーミング
US8560633B2 (en) * 2010-01-11 2013-10-15 Tangome, Inc. Communicating in a peer-to-peer computer environment
US11429343B2 (en) 2011-01-25 2022-08-30 Sonos, Inc. Stereo playback configuration and control
US11265652B2 (en) 2011-01-25 2022-03-01 Sonos, Inc. Playback device pairing
US9344292B2 (en) 2011-12-30 2016-05-17 Sonos, Inc. Systems and methods for player setup room names
US9729115B2 (en) 2012-04-27 2017-08-08 Sonos, Inc. Intelligently increasing the sound level of player
US9008330B2 (en) 2012-09-28 2015-04-14 Sonos, Inc. Crossover frequency adjustments for audio speakers
US9226087B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US9226073B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US10248376B2 (en) 2015-06-11 2019-04-02 Sonos, Inc. Multiple groupings in a playback system
US10303422B1 (en) 2016-01-05 2019-05-28 Sonos, Inc. Multiple-device setup
US10712997B2 (en) 2016-10-17 2020-07-14 Sonos, Inc. Room association based on name
CN112000453B (zh) * 2020-08-25 2024-06-28 支付宝(杭州)信息技术有限公司 一种流计算系统的调度方法和系统

Also Published As

Publication number Publication date
JP2003169089A (ja) 2003-06-13

Similar Documents

Publication Publication Date Title
JP3955989B2 (ja) ストリームデータ分散配信方法及びそのシステム
US9391786B1 (en) Systems and methods for setting up a session in a collaborative communication system
US20030101253A1 (en) Method and system for distributing data in a network
CN101594594B (zh) 一种实现对等设备间切换流媒体的局域网络系统及其实现方法
CN101453524B (zh) 一种多媒体业务的实现方法
CN100583801C (zh) 一种动态建立组播虚拟局域网域的方法、系统及交换设备
JPH0936917A (ja) 個々の通信端末に調節可能な帯域幅を提供するためのマルチメディア会議呼出
CN112929595B (zh) 一种网络会议融合系统及方法
CN106454766A (zh) 基于Android系统及Wi‑Fi Direct的实时协作数据共享系统
JP3795507B2 (ja) 通信中継装置
JP5877470B2 (ja) 商業通信システムおよび方法
JP4807927B2 (ja) 通信中継装置
JP2004248165A (ja) セッションおよびメディア中継方法、転送方法、ならびにそのプログラムと記録媒体
CN103036882B (zh) P2p网络媒体话机终端
US10320854B1 (en) Systems and methods for setting up a session in a collaborative communication system
JP2004015692A (ja) 通信アプリケーション間の状態情報共有・処理方法およびそのシステム
JP4474244B2 (ja) サービス提供システム及びサービス提供方法
JP4770294B2 (ja) 接続管理装置、接続管理方法、接続管理用プログラム、放送システム、及び放送方法
JP4037432B2 (ja) 電話交換システム及び電話交換方法及び電話交換プログラム
JP4826338B2 (ja) Cugサービスシステム、グループ管理装置、グループ管理装置制御プログラムおよびグループ管理方法
JP5022393B2 (ja) 利用者端末、利用者端末プログラム及び配信ツリーの接続切替方法
JP4245938B2 (ja) 通信支援方法及び通信支援システム装置
JP2000253073A (ja) ネットワークシステム
JP2025030299A (ja) 中継サーバ、情報登録方法、及びプログラム
WO2005026967A1 (ja) データ通信システムおよびデータ通信方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20041126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060516

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070320

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070417

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100518

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110518

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120518

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120518

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130518

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees