JP2004221756A - Information processing apparatus and information processing method, and computer program - Google Patents

Information processing apparatus and information processing method, and computer program Download PDF

Info

Publication number
JP2004221756A
JP2004221756A JP2003004680A JP2003004680A JP2004221756A JP 2004221756 A JP2004221756 A JP 2004221756A JP 2003004680 A JP2003004680 A JP 2003004680A JP 2003004680 A JP2003004680 A JP 2003004680A JP 2004221756 A JP2004221756 A JP 2004221756A
Authority
JP
Japan
Prior art keywords
data
processing
packet
reproduction
node
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.)
Pending
Application number
JP2003004680A
Other languages
Japanese (ja)
Inventor
Yasushi Katayama
靖 片山
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2003004680A priority Critical patent/JP2004221756A/en
Publication of JP2004221756A publication Critical patent/JP2004221756A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an apparatus and method with a distribution type data storage processing configuration for efficiently executing processing of acquiring and reproducing data from each node. <P>SOLUTION: A reproduction instruction apparatus for transmitting a data reproduction processing request to a node connected to a network is configured to revise and set a reply probability β to be applied to the decision processing for deciding whether or not the node receiving the reproduction processing request packet executes the processing in compliance with the processing request depending on a packet transmission sequence and to control the transmission timing of the reproduction processing request packet. The apparatus sets a higher reply probability β for an initial data request, executes the processing of setting a lower reply probability β to prevent reception of wasteful packets when a buffer free capacity is decreased and also adjusts the packet transmission interval. Thereby, the efficient utilization of the buffer and high speed reception are realized. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、情報処理装置および情報処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、データを複数ノードに分散記録した分散型記憶処理構成において、各ノードからのデータ取得再生処理を実行する際の効率的なデータ取得および再生処理を可能とする情報処理装置および情報処理方法、並びにコンピュータ・プログラムに関する。
【0002】
【従来の技術】
近年、インターネット等の通信ネットワークには、様々な情報処理装置、例えばパーソナルコンピュータ(PC)、大型コンピュータ、サーバ、その他の通信機器が接続され、各ネットワーク接続機器間の映像、画像データ、音声データ、あるいは各種プログラム等のコンテンツの転送、あるいは様々な処理データの転送が行なわれている。ネットワークを通じてやりとりされるコンテンツの種類は、テキスト・静止画などから、動画・音声などのマルチメディアコンテンツへと移行が進んでおり、コンテンツの大容量化が著しく進んでいる。
【0003】
あるデータを、ネットワークを介して互いに接続された多数の情報処理端末に分散して記録する大規模ストレージシステムが注目されている。このような分散型ストレージシステムにおいて、データを記録管理するサーバは、マルチキャスト等によって情報処理端末やその他のサーバにデータを送信して、データを情報処理端末や他のサーバに備えられたローカルの記録媒体に記録している。
【0004】
この場合、オンデマンドでデータを取り出せるようにするためには、記録媒体に多量のデータを記録しなければならない。例えば、1本当たり約2ギガバイトのデータ容量になる映画の場合、このような映像データを500本分記録するとすれば、1テラバイト以上の容量が必要となる。
【0005】
また、ストリーミングによってサーバがデータを要求しているクライアントに対してユニキャストでデータを提供する際には、エラーのない伝送を行うため、例えば、TCP/IPの到着済み信号(ACK)のようにデータの再送を要求するプロトコルが用いられる。
【0006】
ところが、この手法は、サーバ側に多大な負担がかかるため、高性能なサーバ1台を用いたとしても、現状では、数百台のクライアントにしかサービスを提供することができない。また、UDP/IPのようなACKを用いないプロトコルを使用したとしても、サービス可能なクライアントの数は、数千台程度である。このように、ストリーミングによってデータを提供しようとすると、サーバ側のコストが増大し、クライアントの数が制限されてしまう。
【0007】
従来のストリーミングシステムでは、単一のサーバまたはキャッシュサーバからストリームを流すシステムが一般的であった。このようなシステムにおいては、サーバ側でタイミングを合わせてネットワークに送信し、クライアント側でPLL制御を実行して再生タイミングの制御を行っていた。このPLL制御を実行するためには、到着時刻のジッタの吸収のためのバッファを設けることが必要であり、データ受信を行うクライアント側のバッファに入力データを一時蓄積して、バッファからデータを取り出してPLL制御による再生を行うことが必要であった。従って、画像あるいは音声を受信してから、実際に出力するまでの遅延が発生していた。また、クライアント側のバッファ容量が充分でないとバッファ溢れ等が発生し、再生エラーが発生するなどの問題もあった。
【0008】
近年、クライアント側のバッファ容量の問題を改善する方法として、MicrosoftのWMP9(Corona)や、Real MediaのTrue Streamは、クライアントからサーバへのフィードバックをベースにする手法を採用している。しかし、このようなフィードバック手法を実行すると、多数のクライアントにデータを配信する場合には、多数のクライアントからサーバへのリクエストが発生し、サーバに負荷をかけることになる。従って、多数、例えばインターネットを介したデータ配信のように数千あるいは数万の再生クライアントがいるようなシステムにおいては、ネットワーク上に多数のサーバ、キャッシュサーバ等を配置するなどインフラを構築しない限り、フィードバック手法による解決は困難である。
【0009】
そこでサーバの負荷を分散させる方法が提案されてきた。例えば、事前にキャッシュが存在するノードを特定して、特定サーバに対する負荷集中を避ける方式である。しかしながら、このアプローチでは事前にキャッシュが存在するノードを特定するために、中央に検索サーバを置いて、検索サーバへの問い合わせを実行して、その後コンテンツサーバへアクセスを行うことが必要となり、処理時間に基づく遅延が発生する。
【0010】
そこで近年では、マルチキャスト技術にFEC(Forward Error Correction)を用いて、データの再送を要求することなく複数のクライアントにデータを送信する方式が提案されている。これは、サーバがマルチキャストでストリームを繰り返し送信し、クライアントは、このストリームから必要な信号を拾い上げ、拾い上げたデータを復号して再生する方式である。
【0011】
この方式を利用して、1本2ギガバイトになる映画の映像データ500本分を10分以内に送信する場合には、約14.7ギガビット/秒の伝送帯域が必要である。さらに、同量の映像データを1分以内に送信する場合には、約147ギガビット/秒の伝送帯域が必要になる。これは、理論値であるが、このような容量及び伝送方式に耐えうるサーバは、非常にコストがかかり、実現したとしても実用的でない。また、複数のホストにデータを分散して記録するという方式もあるが、このシステムを実現しようとすると、巨大なデータを複数のサーバで管理しなければならないため、データ管理やデータ通信のための処理が増大してしまう。
【0012】
また、近年、情報処理装置間の直接通信処理としてのピア・ツー・ピア(P2P:Peer−to−Peer)ネットワーク技術が開発され、利用されている。P2Pネットワークとは、集中的に処理を行なうサーバを設置するのではなく、各ネットワーククライアントが持つ資源としての情報処理装置、例えばPC、携帯端末、PDA、携帯電話、さらに、通信処理可能な機能を持つあるいは通信機器に接続された記憶手段としてのディスク装置、あるいはプリンタ等、様々な機器をお互いにネットワークを介して通信し、各ネットワーククライアントが持つ資源の共有を可能とした構成である。
【0013】
ピア・ツー・ピア(P2P:Peer−to−Peer)ネットワーク技術は、米IBM社が提唱するAPPN(Advanced Peer to Peer Networking)の中で用いられたのが最初とされている。このネットワークを使うことで、従来のようなクライアント−サーバ型ネットワークにおいてコンテンツ配信を行う場合に必要となる巨大な配信サーバを設置する必要がなくなり、各ネットワーククライアントが持つ資源に分散配置されたコンテンツを多くのユーザが利用可能となり、大容量のコンテンツの分散格納および、配信が可能となる。
【0014】
ピア・ツー・ピア(P2P:Peer−to−Peer)ネットワークには、「ピュア(Pure)ピア・ツー・ピア(P2P:Peer−to−Peer)ネットワーク」と「ハイブリッド(Hybrid)ピア・ツー・ピア(P2P:Peer−to−Peer)ネットワーク」の2つのネットワーク形態がある。
【0015】
ピュア(Pure)ピア・ツー・ピア(P2P:Peer−to−Peer)ネットワークとは、システムの各構成要素(ピア:Peer)が等しい機能・役割を持ち、対等なコミュニケーションを行うネットワーク形態である。それを用いた代表的なサービスとしてはグヌーテラ(Gnuterlla)が挙げられる。ハイブリッド(Hybrid)ピア・ツー・ピア(P2P:Peer−to−Peer)ネットワークとは、ピュア(Pure)ピア・ツー・ピア(P2P:Peer−to−Peer)ネットワークに加えて、システムの各構成要素(ピア:Peer)間の相互作用を円滑にするための制御用サーバを用いるネットワーク形態のことである。それを用いた代表的なサービスとしてはナップスター(Napster)が挙げられる。
【0016】
ナップスター(Napster)に代表されるハイブリッドピア・ツー・ピア(Hybrid P2P)方式では、ネットワーク接続された端末がコンテンツを取得しようとする場合には、まず中央のサーバでコンテンツリソースを検索し、端末は、検索情報に基づいて、そのリソースを保有しているノード(他のネットワーク接続端末)にアクセスし、コンテンツの取得を行なう。この方式では、中央サーバにすべてのノードのリソース情報を登録する必要があり、さらに検索が中央サーバに集中するという欠点がある。
【0017】
そこで、リソース検索等の処理を複数の装置に分散させて実行する方式が提案された。この処理分散方式では、処理実行の判断装置をツリー状の関係に配置するなどの方法により管理し、管理情報に基づいてリソース検索等の処理を複数の装置に分散させて実行するものである。しかし、この方式でも、処理を実行する装置が数百万など多数になると、ツリー構成を管理する情報量の増大、複数の処理装置に実行命令を伝達させるための処理命令数の増大、あるいはツリーの一貫性の保障などの問題が発生する。また、複数の処理実行判断装置による判断処理が必要となるため、処理遅延が起こる問題がある。
【0018】
これらの弱点を補うために、すべての命令をすべてのネットワーク接続ノードに送り、各ノードにおいて受信した処理命令を自分が実行するかどうかを判断をさせる方式がある。これが、グヌーテラ(Gnutella)に代表されるピュア・ピア・ツー・ピア(Pure P2P)方式である。この方式は、ハイブリッドピア・ツー・ピア(Hybrid P2P)方式と違って、リソース検索処理を実行する中央サーバを持たない構成であり、各ノード間で直接、検索要求を送受信してリソースの件策を実行して、ヒットした端末にコンテンツ送信等の処理要求を依頼する構成である。
【0019】
このグヌーテラ(Gnutella)に代表されるピュア・ピア・ツー・ピア(Pure P2P)方式においても、検索命令の転送には、ツリー構造やネットワーク構造などのルーティングを使うことによって、すべてのまたはできるだけ多くのノードに対して検索を行わせる構成が有効である。しかし、この方式においても、自ノードで実行しない処理命令の命令転送処理を実行することになり、伝送経路に負担がかかる欠点がある。
【0020】
例えばすべてのネットワーク接続ノードを検索して、処理要求を全ノードに到達させるためには、複雑なルーティング管理が必要となる。一方、ベストエフォート方式のノード検索を実行すると、すべてのノードに命令を伝達することは保証されず、必要なリソースを見つけ出せない場合がある。また、ノード検索のための通信が多発するとネットワークにおける輻輳が発生するという問題もある。
【0021】
【発明が解決しようとする課題】
本発明は上述の従来技術における各種の問題点に鑑みてなされたものであり、多数の端末(ノード)の接続されたネットワーク構成、すなわち、データを複数ノードに分散して記録する分散型記憶処理構成において、分散されたデータを効率的に取得し、取得データに基づく確実な再生処理を可能とする情報処理装置および情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【0022】
より具体的には、再生指示装置としての再生要求ノードのバッファの使用効率を高め、データ受信から再生処理に至る時間的ロスを減少させて効率的なデータ再生を可能とした情報処理装置および情報処理方法、並びにコンピュータ・プログラムを提供する。
【0023】
本発明は、ネットワーク接続された複数の端末(ノード)に設置された記憶手段に格納されたデータを取得してデータ再生を実行する場合に、事前のノード検索等の処理を行なうことなく再生要求を送信し、要求を受信した端末(ノード)において、自律的に命令を実行するかしないかを判断して命令の選択的な実行を行なう分散型データ処理構成の下で、再生要求ノードの有するバッファの容量に応じた再送要求等のフィードバック制御を実行して効率的なデータ取得および再生処理を実行可能とした情報処理装置および情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【0024】
【課題を解決するための手段】
本発明の第1の側面は、
ネットワーク接続されたノードに対してデータ再生処理要求を送信する再生指示装置としての情報処理装置であり、
データ再生処理要求パケットを生成するパケット生成部と、
前記データ再生処理要求パケットの受信ノードにおいて、処理要求に従った処理を実行するか否かの判定処理に適用する返信確率βの値を前記データ再生処理要求パケット送信シーケンスに応じて変更設定するルール判断条件設定部と、
前記データ再生処理要求パケットの送信タイミングを制御する位相制御部と、前記パケット生成部において生成したパケットを送信するネットワークインタフェース部と、
前記データ再生処理要求パケットに対する応答としてノードから受信するパケット格納データを記憶するバッファと、 を有することを特徴とする情報処理装置にある。
【0025】
さらに、本発明の情報処理装置の一実施態様において、前記ルール判断条件設定部は、連続して送信するデータ再生処理要求パケット送信シーケンスにおいて、前記返信確率βの値を次第に低下させた値として設定する処理を実行する構成を有することを特徴とする。
【0026】
さらに、本発明の情報処理装置の一実施態様において、前記位相制御部は、連続して送信するデータ再生処理要求パケット送信シーケンスにおいて、データ再生処理要求パケット送信間隔を次第に長く設定する制御処理を実行する構成を有することを特徴とする。
【0027】
さらに、本発明の情報処理装置の一実施態様において、前記ノードに格納された再生対象データは、データをp個のブロック数に分割し、p個のブロックにFEC符号化を施してq個のブロックに変換した符号化率q/pの符号化処理データであり、前記ルール判断条件設定部は、前記データ再生処理要求を受信するノードにおいて返信確率βでデータを返信させる確率値を再生ルール判断条件記述として設定する構成であり、前記ネットワークに接続された記録指示装置から指定される記録確率α、および前記符号化ブロック数qと、ネットワーク接続ノード数nによって算出可能な返信ブロック数q×α×n×βと、前記ブロック数pとの関係が、返信ブロック数:q×α×n×β>ブロック数:pとなる返信確率:βを基準値とし、前記バッファ残容量が大きい場合は、前記データ再生処理要求パケットに設定する返信確率βの値を高く設定し、バッファ残容量が小さい場合は返信確率βの値を低く設定する制御を行う構成であることを特徴とする。
【0028】
さらに、本発明の情報処理装置の一実施態様において、前記位相制御部は、前リクエストとしてのデータ再生処理要求に対する受信応答パケットが、復号処理可能なパケット数である前記値pに達したことを条件として、あるいは前記値pに近い数となったことを条件として、次のリクエストを送信する位相制御を実行する構成であることを特徴とする。
【0029】
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、さらに、デインタリーブ処理およびFEC復号処理を実行するデータ復元処理部を有し、前記データ復元処理部は、前記データ再生処理要求を受信したノードから受信するパケットから抽出される再生対象データについてのデインタリーブ処理およびFEC復号処理を実行し、データ復元を行なう構成であることを特徴とする。
【0030】
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、さらに、外部からの同期制御情報を受信し、前記データ再生処理要求パケットの送信タイミングを制御するタイミング同期処理部を有する構成であることを特徴とする。
【0031】
さらに、本発明の第2の側面は、
ネットワーク接続されたノードに対するデータ再生処理要求の送信に基づくデータ再生処理制御を実行する情報処理方法であり、
データ再生処理要求パケットの受信ノードにおいて、処理要求に従った処理を実行するか否かの判定処理に適用する返信確率βの値を前記データ再生処理要求パケット送信シーケンスに応じて変更設定するルール判断条件設定ステップと、
データ再生処理要求パケットを生成するパケット生成ステップと、
前記データ再生処理要求パケットの送信タイミングを制御する位相制御ステップと、
を有することを特徴とする情報処理方法にある。
【0032】
さらに、本発明の情報処理方法の一実施態様において、前記ルール判断条件設定ステップは、連続して送信するデータ再生処理要求パケット送信シーケンスにおいて、前記返信確率βの値を次第に低下させた値として設定する処理を実行することを特徴とする。
【0033】
さらに、本発明の情報処理方法の一実施態様において、前記位相制御ステップは、連続して送信するデータ再生処理要求パケット送信シーケンスにおいて、データ再生処理要求パケット送信間隔を次第に長く設定する制御処理を実行することを特徴とする。
【0034】
さらに、本発明の情報処理方法の一実施態様において、前記ノードに格納された再生対象データは、データをp個のブロック数に分割し、p個のブロックにFEC符号化を施してq個のブロックに変換した符号化率q/pの符号化処理データであり、前記ルール判断条件設定ステップは、前記データ再生処理要求を受信するノードにおいて返信確率βでデータを返信させる確率値を再生ルール判断条件記述として設定し、前記ネットワークに接続された記録指示装置から指定される記録確率α、および前記符号化ブロック数qと、ネットワーク接続ノード数nによって算出可能な返信ブロック数q×α×n×βと、前記ブロック数pとの関係が、返信ブロック数:q×α×n×β>ブロック数:pとなる返信確率:βを基準値とし、前記バッファ残容量が大きい場合は、前記データ再生処理要求パケットに設定する返信確率βの値を高く設定し、バッファ残容量が小さい場合は返信確率βの値を低く設定する制御を行うことを特徴とする。
【0035】
さらに、本発明の情報処理方法の一実施態様において、前記位相制御ステップは、前リクエストとしてのデータ再生処理要求に対する受信応答パケットが、復号処理可能なパケット数である前記値pに達したことを条件として、あるいは前記値pに近い数となったことを条件として、次のリクエストを送信する位相制御を実行することを特徴とする。
【0036】
さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、デインタリーブ処理およびFEC復号処理を実行するデータ復元処理ステップを有し、前記データ復元処理ステップは、前記データ再生処理要求を受信したノードから受信するパケットから抽出される再生対象データについてのデインタリーブ処理およびFEC復号処理を実行し、データ復元を行なうことを特徴とする。
【0037】
さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、外部からの同期制御情報を受信し、前記データ再生処理要求パケットの送信タイミングを制御するタイミング同期処理ステップを有することを特徴とする。
【0038】
さらに、本発明の第3の側面は、
ネットワーク接続されたノードに対するデータ再生処理要求の送信に基づくデータ再生制御処理を実行するコンピュータ・プログラムであり、
データ再生処理要求パケットの受信ノードにおいて、処理要求に従った処理を実行するか否かの判定処理に適用する返信確率βの値を前記データ再生処理要求パケット送信シーケンスに応じて変更設定するルール判断条件設定ステップと、
データ再生処理要求パケットを生成するパケット生成ステップと、
前記データ再生処理要求パケットの送信タイミングを制御する位相制御ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【0039】
【作用】
本発明の構成によれば、ネットワーク接続されたノードに対してデータ再生処理要求を送信する再生指示装置において、再生処理要求パケットの受信ノードが処理要求に従った処理を実行するか否かの判定処理に適用する返信確率βをパケット送信シーケンスに応じて変更設定するとともに、データ再生処理要求パケットの送信タイミングを制御する構成とし、初めはバッファを早く埋めるために無駄パケットが多くなることを許容した高い返信確率β値を設定し、バッファ空き容量が減少すると、無駄パケットの受信を防止するために、低い返信確率βを設定する処理を実行し、かつ、パケット送信間隔の調整をおこなうことで、バッファの効率的利用および高速受信を実現したデータ再生を行うことが可能となる。
【0040】
さらに、本発明の構成によれば、ネットワークに接続された記録指示装置から指定される記録確率α、および前記符号化ブロック数qと、ネットワーク接続ノード数nによって算出可能な返信ブロック数q×α×n×βと、前記ブロック数pとの関係が、返信ブロック数:q×α×n×β>ブロック数:pとなる返信確率:βを基準値とし、バッファ残容量が大きい場合は、データ再生処理要求パケットに設定する返信確率βの値を高く設定し、バッファ残容量が小さい場合は返信確率βの値を低く設定する制御を行う構成としたので、応答パケットに基づく再生可能性を保障した上でのバッファ使用効率の向上、高速受信が実現される。
【0041】
さらに、本発明の構成によれば、再生指示装置において、タイミング発生装置から受信するタイミング制御パケットに基づいて再生命令の送信タイミングを制御することが可能となり、記録処理と再生処理を並列に実行する場合においても、記録遅れあるいは再生処理遅れ等が発生することなく、記録処理の進行に従った再生処理が可能となる。
【0042】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【0043】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0044】
【発明の実施の形態】
以下、本発明の情報処理装置および情報処理方法、並びにコンピュータ・プログラムについて、図面を参照して、詳細に説明する。説明は、以下の項目順に行なう。
1.ネットワーク構成
2.ノードとしての情報処理装置構成
3.記録指示装置構成およびデータ記録処理
4.再生指示装置構成およびデータ再生処理
5.データ記録再生処理シーケンス
6.記録再生時における同期処理
7.情報処理装置のハード構成
【0045】
[1.ネットワーク構成]
まず、本発明の情報処理装置を適用したデータ処理を実現するネットワーク構成例について図1を参照して説明する。図1は、ネットワークを構成する端末にデータを分散して記録する分散型ストレージシステムの具体例を示す図である。分散型ストレージシステムは、ネットワーク100の通信網に接続されたn個のノード111、112、…、115と、各ノードへのデータの記録を指示制御する記録指示装置101と、各ノードに記録されたデータを読み出す再生指示装置102とを有する。
【0046】
なお、本実施例では、記録指示装置101と、各ノード111〜115と、再生指示装置102とを別の装置として説明するが、これら両装置の機能を有する記録再生指示装置のような装置があってもよい。また、ノードの各々が記録指示装置や再生指示装置としての機能を装備することもできる。この場合、ネットワークを構成する各装置を区別なく使用できる。なお、記録指示装置、再生指示装置、ノードを総称して情報処理装置と呼ぶ。
【0047】
すなわち、図2に示すような、ネットワーク構成を想定可能である。情報処理装置は、他の情報処理装置との通信可能な構成を有し通信ネットワークにより接続される。ネットワークは、基本的には、ルックアップサーバ(Look−upServer)としての制御用サーバを持たないピュア(Pure)ピア・ツー・ピア(P2P:Peer−to−Peer)ネットワークである。
【0048】
図2に示すように、各情報処理装置121〜126がネットワーク110を介して相互に通信を実行し、コンテンツ記録処理やコンテンツ再生処理等の各種のデータ処理を実行する。なお、本発明は、制御用サーバが存在するハイブリッド(Hybrid)ピア・ツー・ピア(P2P:Peer−to−Peer)ネットワークにおいても適用可能であり、特にネットワーク構成を限定して適用可能なものではなく、情報処理装置相互において通信が可能な構成であればよい。
【0049】
図2に示す情報処理装置121〜126のいずれかがコンテンツの記録要求、あるいはコンテンツの再生要求をネットワーク接続された情報処理装置に出力する。コンテンツの記録要求を行なう場合は、例えば所定のルールに基づくマルチキャストアドレスを設定した記録要求処理要求パケットを生成し、パケットにコンテンツをFEC(Forward Error Correction)をかけるとともにインタリーブ処理した分割データとして格納し、他の情報処理装置に対して送信する。これらのパケットを受信した情報処理装置は、データ記録処理を実行するか否かを自律的に判定して、判定に基づくコンテンツ記録処理を行なう。
【0050】
また、コンテンツの再生処理を行なう場合は、情報処理装置121〜126のいずれかがコンテンツ再生要求を他の情報処理装置、例えば所定のルールに基づくマルチキャストアドレスを設定した要求パケットを生成して送信する。これらのパケットを受信した情報処理装置は、データ抽出処理を実行するか否かを自律的に判定して、判定に基づくコンテンツ抽出処理を行ない、要求に従って抽出したデータ、例えばFEC(Forward Error Correction)をかけるとともにインタリーブ処理した分割データをパケットに格納して再生要求情報処理装置に対して送信する。
【0051】
なお、図1、図2においては、ネットワークを構成するルータなどの伝送制御装置を省略してあるが、実際には、ノードを通過するパケットの経路を選択するルータなどの伝送制御装置が設けられている。伝送制御装置は、ノードとは別に設けられていてもよいし、ノードが伝送制御装置としての機能を有していてもよい。
【0052】
[2.ノードとしての情報処理装置構成]
次に、ノードとして機能する情報処理装置の構成について説明する。図3は、ノードとして機能する情報処理装置の構成を示す図である。
【0053】
図3に示すように情報処理装置(ノード)200は、ルール判断処理部201、データ処理部202、パケット処理部203、データ送受信部204を有する。データ送受信部204は、ネットワークを介して接続された他の情報処理装置に対する送信パケットの出力、および他の情報処理装置からの受信パケットの入力処理を実行する。
【0054】
パケット処理部203は、自装置から、ネットワーク接続された他の情報処理装置に対して送信するパケットの生成処理、あるいは他の情報処理装置から受信したパケットの解析処理等を行なう。
【0055】
データ処理部202は、それぞれの情報処理装置に格納されたデータ処理プログラムに従った処理を実行する。例えば、ネットワークに接続された他の記録指示装置あるいは再生指示装置等の情報処理装置からのデータ処理要求に基づくデータ処理、例えばコンテンツ再生要求であれば、指定コンテンツを記憶部205から取り出して、パケット処理部203に出力する処理である。また、コンテンツ記録要求であれば、入力コンテンツを記憶部205に入力格納する処理である。
【0056】
ルール判断処理部201は、本発明の情報処理装置に固有の処理を実行する処理部であり、入力したパケットに記述された[ルール判断条件記述]としての確率値:α、あるいはβをもとに、パケットに基づくデータ処理、例えばデータ記録命令に対応する処理としてのデータ受信および記憶部に対する格納処理、あるいはデータ再生命令に対応する処理としての記憶部からのデータ抽出および送信処理、これらの処理を実行するか否かを判定する処理を実行する。本発明の構成においては、記録命令を実行する確率をαとし、再生命令を実行する確率をβとして設定し、それぞれ記録指示装置、再生指示装置が送信する記録要求または再生要求パケットにこれらの確率値が設定される。
【0057】
例えばコンテンツ記録処理を実行する場合、分散型ストレージシステムを構成するノードの数nが十分に大きく、且つ復号化されたブロックの個数qが十分に大きい場合、全てのノードにパケットが均等に記録され、分散型ストレージシステム全体としてαの確率でデータが記録される。
【0058】
また、コンテンツ再生処理を実行する場合、各ノードのルール判断処理部201では、再生命令を実行するか否かを確率:βに基づいて判断して実行する。このように再生命令では、それぞれのノードで一定の確率でしか命令が実行されないので、パケットの消失が起こる。しかし、複数の分散ノードからトータルで十分な数のパケットが送られてくるように再生命令が実行される確率βを設定しておけば、これを結合して、FEC(Forward Error Collection)に基づくエラーコレクションを実行して、元のデータを再生できる。
【0059】
[3.記録指示装置構成およびデータ記録処理]
次に、記録指示装置およびデータ記録処理について説明する。図4は、記録指示装置250の構成を示す図である。記録指示装置250は、複数のノードに対する記録処理要求対象データ(コンテンツ)を入力するデータ入力部251、例えばFEC(Forward Error Collection)符号化、および符号化データに対するインタリーブ処理等のデータ加工を実行するデータ加工部252、前述の[ルール判断条件記述]としての確率値:αを設定するルール判断条件設定部253、データ加工部252で生成した加工データおよびルール判断条件設定部253で設定したルール判断条件記述を格納し、アドレスを設定したパケットを生成するパケット生成部254、およびネットワークとの接続を行うネットワークインタフェース255を有している。
【0060】
ここで、FEC符号化とは、トルネード符号化方式、リードトルネード符号化方式、ターボ符号方式などの受信側で誤り訂正を行う符号化方式の総称であり、データ加工部252は、データ入力部251から入力されたデータをp個のブロックに分割し、このp個のブロックにFEC符号化を施してq個のブロックに変換する。このp個のブロックからq個のブロックに符号化することを符号化率q/pの符号化といい、この符号化率q/pを変更することによって、この分散型ストレージシステムの記録効率や伝送効率を変更することができる。
【0061】
インタリーブ処理は、符号化されたデータの順番を並び換える処理である。インタリーブすることによってデータを分散させ、パケットの消失によって発生するバーストエラーがランダムエラーになるようにすることができ、その結果、消失データ部をFECに従ったエラーコレクションによって訂正することが可能となる。
【0062】
FECエンコード処理およびインタリーブ処理について、図5を参照して説明する。図5(a)に示すように、入力した元データをp個のブロックに分割する。そして、図5(b)に示すように、符号化率q/pのFEC符号化を施し、p個のブロックに分割したデータをq個の符号化ブロックに変換する。
【0063】
上述したように、FEC符号化とは、トルネード符号化方式、リードトルネード符号化方式、ターボ符号化方式などの受信側で誤り訂正を行う符号化方式の総称であり、FEC符号化を用いて、あるデータを符号化率q/pで符号化した場合、論文RIZZ097(http://www.iet.unipi.it/ ̄luigi/fec.html#fec.ps)に発表されているように、p個以上の符号化されたブロックが残存すれば、幾つかのブロックが消失しても、元のメッセージが復元できるようになっている。
【0064】
FEC符号化を施されたデータは、図5(c)に示すようにインタリーブ処理が実行され。符号化されたデータの順番を並び換え、データを分散させる。インタリーブ処理のなされたデータは、ルール判断条件設定部253に出力され、前述の[ルール判断条件記述]としての確率値:αを設定する。
【0065】
[ルール判断条件記述]としての確率値:αの設定処理は、前述のデータ加工部の処理に関連して設定される。データ加工部は、データをp個のブロック数に分割し、生成したp個のブロックにFEC符号化を施してq個のブロックに変換する符号化率q/pの符号化処理を実行するものとした場合、ルール判断条件設定部253は、データ記録処理要求を受信するノードにおいて記録確率:αでデータを記録させる確率値:αを記録ルール判断条件記述として設定する構成であり、ネットワークに接続された再生指示装置102(図1参照)から指定される返信確率:β、および前記符号化ブロック数:qと、ネットワーク接続ノード数:nによって算出可能な返信ブロック数:q×α×n×βと、ブロック数:pとの関係が、
返信ブロック数:q×α×n×β>ブロック数:p
となるように確率値:αを設定する。この設定により、再生指示装置の再生要求によって各ノードから返信確率:βで返信される返信データからの確実なデータ復元が保証される。
【0066】
パケット生成部254は、データ加工部252で生成した加工データを所定の大きさに分割し、ルール判断条件設定部253で設定したルール判断条件記述を格納し、アドレスを含むヘッダやフッタを付加したパケットを生成して、ネットワークインタフェース255を介して送信する。なお、パケットは送信ノードに応じたアドレス設定、すなわちユニキャスト若しくはマルチキャストを用いて分散型ストレージシステムを構成する各ノードに送信する。
【0067】
図6は、パケット生成部254によって生成されるパケット40の構造を示す図である。パケットは、ヘッダ、記録ルール判断条件記述、ペイロード、フッタから構成される。ペイロードには、FECエンコード処理およびインタリーブ処理がなされた加工データ(加工コンテンツ)が格納される。ヘッダとフッタには、データの種類を示すデータID、CRC(Cyclic Redundancy Check)のチェックサム、パケット送信先ノードの固有識別子としてのGUID(Global Unique ID)、ネットワークアドレスなどの制御情報が記述されている。
【0068】
記録ルール判断条件記述には、後述する各ノードがこのパケットを記録する確率:αが記述されている。パケットを受信したノードのルール判断処理部201(図3参照)は、この記録確率αに基づいてパケットを記録する。
【0069】
分散型ストレージシステムを構成する全てのノードは、この記録確率に基づいてパケットを記録するか否かを決定する。これにより、分散型ストレージシステムを構成するノードに確率αでデータが記録されることになる。この分散型ストレージシステムでは、ノードの数nが十分に大きく、且つ復号されたブロック数qが十分に大きい場合に、各ノードに均等な確率でデータを分散することができる。
【0070】
なお、記録ルール判断条件記述を加工コンテンツを格納したパケットと別のパケットに格納し、加工コンテンツを格納したパケットに記録ルール判断条件記述を格納したパケットのリンク情報を格納し、加工コンテンツを格納したパケットを受信したノードがリンク情報に基づいて対応する記録ルール判断条件記述格納パケットを取得する構成としてもよい。
【0071】
次に、記録指示装置からの記録処理要求パケットの送信に基づいて、パケットを受信したノードが自律的にコンテンツを記録するか否かを判定して処理を実行する記録処理手順について説明する。
【0072】
図7は、記録指示装置101から複数ノード111〜115に対して、データ記録命令としての図6に示すデータ記録処理要求パケットを送信する処理を説明する図である。記録指示装置は、図6で説明したFEC処理およびインタリーブ処理を施した加工データをペイロードとし、さらに、ルール判断条件記述としての確率値:αを設定したパケットを各ノードに対してユニキャストあるいはマルチキャスト送信する。
【0073】
図8を参照して、パケットを受信したノードにおける処理手順を説明する。まず、ステップS101で、データ記録処理要求パケットを待機し、ステップS102でパケットを受信したと判定すると、ステップS103において、乱数生成処理を実行し、ステップS104において、生成した乱数と、データ記録処理要求パケット内に格納された記録ルール判断条件記述:確率αとの比較を行ない、比較結果に基づいて、命令の実行、非実行を判定する。
【0074】
例えば、生成乱数>確率αであれば、パケットのペイロードとして格納された加工データを自己の記憶手段に記録する処理を実行し、生成乱数≦確率αであれば、データ記録処理を実行しない。
【0075】
なお、各ノードにおいて生成される乱数は、分散型ストレージシステムを構成するノードの数nが十分に大きく、且つ復号化されたブロックの個数qが十分に大きい場合、全てのノードにパケットが均等に記録され、分散型ストレージシステム全体としてαの確率でデータが記録されるように発生乱数の範囲が設定される。
【0076】
ステップS104における乱数に基づく比較処理結果として、データ記録処理要求を実行すべきとの判定がなされれば、ステップS105に進み、パケットのペイロードとして格納された加工データの抽出処理を実行して、自装置(ノード)の記憶手段に抽出データを記録する処理を実行する。一方、乱数に基づく比較処理結果として、データ記録処理要求を実行しないとの判定がなされれば、ステップS106に進み、データ記録処理を実行せずに処理を終了する。
【0077】
このように、データ記録処理要求(命令)を受信した情報処理装置は、パケット内に格納された記録ルール判断条件記述と乱数との比較に基づいて自律的に命令の実行、非実行を判定し、判定に従った処理を行なう。
【0078】
次に、図9の処理フローを参照して、データ記録処理要求を受信した情報処理装置側において、ハッシュ値を算出して、ハッシュ値に基づいて自律的にデータ記録処理要求の実行、非実行を判定する処理について説明する。
【0079】
まず、ステップS201で、データ処理要求パケットを待機し、ステップS202でパケットを受信したと判定すると、ステップS203において、受信パケット内の格納データに基づくハッシュ値生成処理を実行し、ステップS204において、生成したハッシュ値に基づいて、命令の実行、非実行を判定する。
【0080】
例えば、情報処理装置は、それぞれ予め設定された閾値としての設定値を記憶部に格納し、生成ハッシュ値>設定値であれば、命令実行、生成ハッシュ値≦設定値であれば、命令を非実行とするなどの設定とする。
【0081】
ハッシュ値の生成対象とするデータ処理要求パケット内に格納されたデータは、図10に示すように、例えばコンテンツデータの識別子(データID)、あるいはデータの一部、例えばデータ先頭から所定(n)ビットのデータをハッシュ対象データとして設定するなどが可能である。ハッシュ値算出は例えばMD5の適用が可能であり、図10に示すようにデータIDのMD5によるハッシュ値、あるいはデータ内容のMD5によるハッシュ値が生成される。
【0082】
ステップS204におけるハッシュ値に基づく判定結果として、データ記録処理要求を実行すべきとの判定がなされれば、ステップS205に進み、パケットのペイロードとして格納された加工データの抽出処理を実行して、自装置(ノード)の記憶手段に抽出データを記録する処理を実行する。一方、ハッシュ値に基づく比較処理結果として、データ記録処理要求を実行しないとの判定がなされれば、ステップS206に進み、データ記録処理を実行せずに処理を終了する。
【0083】
このように、データ記録処理要求(命令)を受信した情報処理装置は、パケット内に格納されたデータのハッシュ値と各ノードの設定値との比較に基づいて自律的に命令の実行、非実行を判定し、判定に従った処理を行なう。
【0084】
[4.再生指示装置構成およびデータ再生処理]
次に、データの再生指示を各ノードに送信し、各ノードから再生対象のデータを受信してデータ再生処理を実行する再生指示装置102(図1参照)について説明する。図11は、再生指示装置270の構成を示す図である。再生指示装置270は、ネットワークを介しての外部とのデータの送受信を行うネットワークインタフェース271、入力パケットからのペイロード取り出し等の処理を実行するパケット処理部272、ペイロードに含まれる再生対象データを格納するバッファ273、受信パケットから抽出したデータのデインタリーブ処理、FECデコード処理を実行し、コンテンツデータの復元を実行するデータ復元処理部274、復元したデータのモニタやスピーカ(図示省略)などの外部機器に対する出力処理制御を実行するデータ処理部275、データ要求パケットに設定する[ルール判断条件記述]としての確率値:βを決定するルール判断条件設定部276、ノードに再生対象データを指定した再生データ送信を要求するパケットを生成するデータ要求パケット生成部277、データ要求パケットの出力タイミング制御としての位相制御を実行する位相制御部(パケット出力タイミング制御部)278を有する。
【0085】
データ要求パケット生成部277は、分散型ストレージシステムを構成する各ノードにデータを要求するパケットを送信する。図12は、データを要求するパケットの構成を示す図である。パケットは、ヘッダ、再生ルール判断条件記述部、リクエスト記述部、フッタから構成される。リクエスト記述部には、要求するデータを識別するためのデータIDが記録される。ヘッダとフッタには、CRCのチェックサム、ノードのネットワークアドレスやGUID、データの順序を示すシーケンス番号などの制御情報が記録される。
【0086】
再生ルール判断条件記述部には、ルール判断条件設定部276の決定した返信確率βを設定する。返信確率βは、パケットを受信したノードがデータを返信するか否かの判定を行うための変数である。この変数をもとに、データを返信すると判定するノードもあれば、データを返信しないと判定するノードもあるが、返信確率βは、分散型ストレージシステム全体をマクロ的にみたときの値であり、分散型ストレージシステム全体では、各ノードのデータを返信する確率がβになる。そのため、分散型ストレージシステムにn個のノードが存在する場合に、返信されるパケットの割合は、ノードの個数nと返信確率βを掛け合わせた値n×βとなる。
【0087】
パケット処理部272は、各ノードから返信されたパケットを結合する。図13は、ノードから返信されたパケットのデータ構造を示す図である。図13に示すようにパケットは、ヘッダ、ペイロード、フッタから構成され、ペイロードには各ノードが記憶部から抽出したデータ、すなわち、先に図5を参照して説明したFEC処理およびインタリーブ処理のなされたデータブロックが格納され、ヘッダとフッダには、CRCのチェックサムや受信側のノードのネットワークアドレス、パケットの順序を示すシーケンス番号など、制御情報が格納される。
【0088】
図13に示すパケットを再生指示装置が受信すると、パケット処理部272はパケット解析を実行し、シーケンス番号を読み取り、受信したパケットの順序を入れ替え、ヘッダやフッタなどの制御情報を除去して、シーケンス番号の順にパケットを結合する。
【0089】
データ復元処理部274は、受信データブロックにデインタリーブをかけ、データの並びを整列させ、さらにデインタリーブされたデータにFEC復号を施し、元のデータを復元する。
【0090】
FECおよびデインタリーブ処理に基づくデータ復元処理ついて、図14を参照して説明する。図14(a)に示すように、各ノードからの受信パケットは、ネットワーク上において消失が発生し、受信データブロックと消失データブロックが混在することになる。
【0091】
なお、受信データブロックは、先に図5を参照して説明したように、符号化率q/pのFEC符号化を施し、p個のブロックに分割したデータをq個の符号化ブロックに変換したブロックデータである。
【0092】
再生指示装置における、データ復元処理部274は、まず、受信データブロックにデインタリーブをかけ、データの並びを整列させ、図14(b)に示すデインタリーブ処理データを生成する。デインタリーブ処理データには消失パケット、すなわち消失ブロックに基づくデータ消失部が存在する。しかしデインタリーブ処理により、これらのエラーは、エラー部が大きなデータ領域として存在するバーストエラーではなく、微少データ領域からなるランダムエラーとなる。このような微少データ領域からなるランダムエラーは、FECによるエラーの解消が可能である。
【0093】
データ復元処理部274は、図14(b)に示すデインタリーブ処理データについて、FECによるエラー訂正を実行し、図14(c)に示す復元データを生成する。上述したように、FEC符号化とは、トルネード符号化方式、リードトルネード符号化方式、ターボ符号化方式などの受信側で誤り訂正を行う符号化方式の総称であり、FEC符号化を用いて、あるデータを符号化率q/pで符号化した場合、論文RIZZ097(http://www.iet.unipi.it/ ̄luigi/fec.html#fec.ps)に発表されているように、p個以上の符号化されたブロックが残存すれば、幾つかのブロックが消失しても、元のメッセージが復元できる。
【0094】
データ復元処理部274によって復元されたデータは、データ処理部275に出力される。データ処理部275は、復号されたデータを、図示しない記録部に保存したり、モニタやスピーカなどの出力部に出力インタフェースを介して出力する。
【0095】
本発明に従った分散型ストレージシステムは、記録確率αで各ノードにデータを記録し、各ノードに記録したデータを返信確率βで返信させるシステムであり、図1に示す記録指示装置101から出力される元データは、α×n×βの割合で返信される。例えば、p個のブロックをq個のブロックに符号化すると、q×α×n×β個のブロックが返信される。前述の論文RIZZ097に記載のように、この返信されたブロックの個数が復号前のブロックの個数pよりも多い場合、データは復号可能である。そのため、返信されるブロックの個数がp個より多くなるように、α、β、q/pの値を決定しておくと、目的のデータを復号することができる。
【0096】
すなわち、再生指示装置270におけるルール判断条件設定部276は、ノードに格納された再生対象データが、p個のブロックにFEC符号化を施してq個のブロックに変換した符号化率q/pの符号化処理データであるとき、ネットワークに接続された記録指示装置から指定される記録確率:αと返信確率:βおよびp,q、および前記符号化ブロック数:qと、ネットワーク接続ノード数:nによって算出可能な返信ブロック数:q×α×n×βと、ブロック数:pとの関係が、
返信ブロック数:q×α×n×β>ブロック数:p
となる確率値:βとして設定する。この設定により、再生指示装置の再生要求によって各ノードから返信確率:βで返信される返信データからの確実なデータ復元が保証される。
【0097】
このように、本具体例における分散型ストレージシステムは、
p≧q×α×n×β
を満たすように、符号化率q/p、記録確率α、返信確率βを設定すればよいので、上述の式を満たす範囲で符号化率q/p、記録確率α、返信確率βを変更することにより、データの記録効率や伝送効率を変更させることができる。以下、q/p、α、βの各パラメータの設定例について説明する。
【0098】
例えば、非常に多くの返信要求があるデータに対して、記録確率αの値を大きくし、返信確率βの値を小さくすると、各ノードから送信されるデータが少なくなり、ノードにおけるデータの検索処理やデータの送信処理が簡略化されるようになる。
【0099】
また、記録確率αの値を大きくするかわりに、符号化率q/pの値を大きくして、返信確率βを小さくしても、各ノードにおけるデータの検索処理やデータの送信処理を簡略化することができる。
【0100】
また、符号化率q/pを小さくし、記録確率αを大きくすると、送信するパケットの数を抑えることができる。これは、pが十分大きいときに効果的である。また、記録確率αを小さくし、符号化率q/pを小さくすることで、同一のパケットを複数のノードに記録することを避けることができる。これは、pが十分小さいときに効果がある。
【0101】
また、返信確率βを大きくし、記録確率α又は符号化率q/pを小さくすることにより、分散型ストレージシステム全体に記録される符号化データの容量を小さくすることができる。或いは、データの記録時、出力時又は送信時などに、パケットの消失する確率をaとすると、a×n×α×q×βがpよりも十分大きくなるようにα、β、q/pの値を制御することによって、十分な数のデータが返信される。
【0102】
また、複数のノードから返信されるユニークなパケットの個数を数学的に推定し、記録確率、返信確率、または符号化率を大きくすることで、ユニークなパケットが到着する確率を高くすることができる。
【0103】
しかし、上述のように分散型記憶処理構成において、データ取得再生を行おうとすると、複数のノードから同一のデータを格納したパケットを受信することになる。すなわち複数の重複パケットを受信し、これらをバッファ273に格納することになる。この結果、無駄なデータでバッファの記憶可能な残容量が著しく減少する場合が発生する可能性があり、バッファ溢れ等により有効なパケットを効率的に受信できない場合が発生する。
【0104】
そこで、図11に示すルール条件設定部276で設定する返信確率βを調整し、また、位相制御部278において、データ要求パケット(図12参照)の送信タイミングの制御を実行して、バッファ273の効率的利用を図り、有効データを効率的に受信しバッファ273に格納する制御を実行する。
【0105】
ネットワークのルーティングなどによる影響で、再生命令としてのデータ要求パケット(図12参照)の送信から再生データ格納パケット(図13参照)の到着までの時間は一般に正規分布のような山型のグラフになる。図15は、再生指示装置のバッファに対して同じペースでデータが入力されるように制御された場合の再生指示装置に対する時間に対する入力パケット数の変移を示すグラフである。
【0106】
横軸が時間であり、縦軸が再生指示装置(再生要求ノード)が、再生命令としてのデータ要求パケット(図12参照)の送信に対する応答として他のノードから受信する再生データ格納パケット(図13参照)の入力パケット数である。それぞれの山は、異なるデータリクエストに対する受信パケットを示している。図から理解されるように、各リクエストに対する入力パケット数は時間の経過に伴い増加しピーク(各山の頂点)を形成後、減少する。図15に示すデータは、上述した返信確率βが、各リクエスト(データ要求パケット)において一定に設定されている場合を想定しており、各リクエストに対する応答パケット(再生データ格納パケット)の変移はいずれも同様の変移となっている。
【0107】
次に図16を参照して再生指示装置がデータ要求パケットに設定する返信確率βを異ならせた場合の各リクエストに対する応答パケット(再生データ格納パケット)の変移について説明する。
【0108】
図16において、(a)は返信確率βを高い値に設定した場合、(b)は返信確率βを低い値に設定した場合における応答パケット(再生データ格納パケット)の受信パケット数変移を示している。
【0109】
返信確率βを高く設定すれば、データ要求パケットを受信したノードにおける処理確率、すなわち要求データを自己の記憶手段から取得して再生データ格納パケット(図13参照)を生成して再生指示装置に対して送信する確率が大きくなり、図16(a)に示すように、高い山を形成する受信パケット数推移を示す。一方、返信確率βを低く設定すれば、データ要求パケットを受信したノードにおける再生データ格納パケットの生成、返信確率が小さくなり、図16(b)に示すように、低い山を形成する受信パケット数推移を示すことになる。
【0110】
再生指示装置側においては、返信確率βを大きくとればとるほど早くバッファを満たすだけの有効なパケットが得られるが、1つのリクエストに対しては、前述したように、例えば、p個のブロックをq個のブロックに符号化したデータにおいて、返信確率βの設定に応じたq×α×n×β個のブロックが返信される。論文RIZZ097に記載のように、この返信されたブロックの個数が復号前のブロックの個数pよりも多い場合、データは復号可能である。そのため、返信されるブロックの個数がp個に達すれば目的のデータを復号することができる。従って、p個を超えるパケットは、無駄パケットとなる。これらの無駄パケットをバッファに格納することはバッファの記憶可能な残容量を減らしてしまうのみであり、新たなリクエストに対する応答パケットの記憶領域の確保を阻害してしまうことになる。
【0111】
逆に、図16(b)に示すように返信確率βを低く設定した場合、時間的に遅れてきて無駄になるパケットは少なくなるが、バッファを満たす速度は少なくなる。
【0112】
上記状況に鑑みて、本発明に係る再生指示装置(再生要求ノード)においては、図11に示す位相制御部278で再生命令としてのデータ要求パケットの送信タイミングを制御し、ルール判断条件設定部276においてデータ要求パケットに設定する返信確率βの値の調整を実行する。これらの制御により、バッファの効率的な利用と無駄パケットの受信を減少を実現する。
【0113】
図17は、本発明の再生指示装置(再生要求ノード)における制御例を示す図である。図15、図16と同様、横軸が時間であり、縦軸が再生指示装置(再生要求ノード)が、再生命令としてのデータ要求パケット(図12参照)の送信に対する応答として他のノードから受信する再生データ格納パケット(図13参照)の入力パケット数である。それぞれの山は、異なるデータリクエストに対する受信パケットを示している。
【0114】
図17には、(a)〜(d)の4つの異なる連続するデータ要求リクエストに対応する再生データ格納パケットの入力パケット数の推移を示している。連続するデータ要求を送信する場合、要求開始初期に送信するデータ要求パケットに設定する返信確率βの値を高く設定し、時間の経過とともに、返信確率βの設定値を低くなるように調整する。
【0115】
前述したようにノードに格納された再生対象データは、データをp個のブロック数に分割し、p個のブロックにFEC符号化を施してq個のブロックに変換した符号化率q/pの符号化処理データであり、ルール判断条件設定部は、データ再生処理要求を受信するノードにおいて返信確率βでデータを返信させる確率値を再生ルール判断条件記述として設定する構成であり、ネットワークに接続された記録指示装置から指定される記録確率α、および前記符号化ブロック数qと、ネットワーク接続ノード数nによって算出可能な返信ブロック数q×α×n×βと、ブロック数pとの関係が、返信ブロック数:q×α×n×β>ブロック数:pとなる返信確率:βを基準値とし、バッファ残容量が大きい場合は、データ再生処理要求パケットに設定する返信確率βの値を高く設定し、バッファ残容量が小さい場合は返信確率βの値を低く設定する制御を行う。
【0116】
すなわち、初めはバッファを早く埋めるために無駄パケットが多くなることを許容した高い返信確率β値を設定する。すなわち、バッファ容量は充分あるので、高速受信を優先する。次第にバッファ空き容量が減少すると、無駄パケットの受信を防止するために、低い返信確率βを設定する。すなわち、高速受信よりもバッファ容量を考慮した処理を実行する。
【0117】
しかし、受信速度の低下は、再生効率の低下を招くことになり問題である。従って、受信速度の低下を防止するため、再生指示装置からのデータ要求パケットの送信タイミングを前倒しする。
【0118】
例えば、p個のブロックをq個のブロックに符号化したデータにおいて、返信確率βの設定に応じたq×α×n×β個のブロックが返信される構成において、返信ブロックの個数が復号前のブロックの個数pよりも多い場合、データは復号可能であるため、返信されるブロックの個数が、ほぼp個に達した時点で、次のリクエストに対する応答パケットが受信されるように、データ要求パケットの送信タイミングを設定する。
【0119】
図17に示す時間T1,T2,T3は、データ要求パケットに対応する応答パケットの受信間隔を示しているが、再生指示装置におけるデータ要求パケットの送信タイミングも図17に示す時間T1,T2,T3に対応する間隔に設定される。すなわち、徐々に次の再生命令(データ要求パケット)を送るまでの持間が伸びていく。
【0120】
このように、図11に示す再生指示装置におけるルール判断条件設定部276は、再生命令としてのデータ要求パケットの再生条件ルールに設定する返信確率βの値の設定処理において、初期値を高く設定し、後続リクエストにおいて徐々に設定値を低くする制御を行う。また、位相制御部278は、データ要求パケットの送信タイミングを図17に示す時間T1,T2,T3のように、初期のリクエスト間隔を短くし、徐々にリクエスト送信間隔を長くする制御を実行する。
【0121】
なお、これらの制御は、バッファ273に対する到着パケット数、バッファ273の残容量情報に基づいて制御することでより確実な制御が可能となる。
【0122】
再生指示装置からの再生処理要求パケットの送信に基づいて、パケットを受信したノードが自律的にコンテンツを抽出し送信するか否かを判定して処理を実行する再生処理手順について説明する。
【0123】
図18は、再生指示装置102から複数ノード111〜115に対して、データ再生命令としての図12に示すデータ再生処理要求パケットを送信する処理を説明する図である。再生指示装置は、再生指定データの識別子、例えばコンテンツID、GUID等をリクエスト記述として設定し、さらに、ルール判断条件記述としての確率値:βを設定した図12に示すデータ再生処理要求パケットを生成し、パケットを各ノードに対してユニキャストあるいはマルチキャスト配信する。
【0124】
図19は、図12に示すデータ再生処理要求パケットを受信したノードが再生命令に従って、データ再生処理、すなわち自ノードの記憶部からの指定データの読み取り、パケット生成、パケット送信を実行するか、しないかを自律的に判定し、処理実行の判定を行なったノードにおいてのみ再生データを格納したパケット、すなわち図6で説明したFEC処理およびインタリーブ処理を施した加工データをペイロードとしたパケット(図13参照)を生成して、再生指示装置112に対して送信する。
【0125】
図20を参照して、ルール判断条件記述としての確率値:βを設定した図12に示すデータ再生処理要求パケットを受信したノードにおける処理手順を説明する。まず、ステップS301で、データ再生処理要求パケットを待機し、ステップS302でパケットを受信したと判定すると、ステップS303において、乱数生成処理を実行し、ステップS304において、生成した乱数と、データ再生処理要求パケット内に格納された再生ルール判断条件記述:確率βとの比較を行ない、比較結果に基づいて、命令の実行、非実行を判定する。
【0126】
例えば、生成乱数>確率βであれば、自己の記憶手段に格納された指定コンテンツを抽出し、抽出データをペイロードとしたパケット(図13参照)を生成して、再生指示装置に対して送信する処理を実行し、生成乱数≦確率βであれば、データ再生処理を実行しない。
【0127】
ステップS304における乱数に基づく比較処理結果として、データ再生処理要求を実行すべきとの判定がなされれば、ステップS305に進み、自装置(ノード)の記憶手段に格納された加工データの抽出処理を実行して、抽出データをペイロードとしたパケット(図13参照)を生成して、再生指示装置に対して送信する処理を実行する。一方、乱数に基づく比較処理結果として、データ再生処理要求を実行しないとの判定がなされれば、ステップS306に進み、データ再生処理を実行せずに処理を終了する。
【0128】
このように、データ再生処理要求(命令)を受信した情報処理装置は、パケット内に格納された再生ルール判断条件記述と乱数との比較に基づいて自律的に命令の実行、非実行を判定し、判定に従った処理を行なう。
【0129】
次に、図21の処理フローを参照して、データ再生処理要求を受信した情報処理装置側において、ハッシュ値を算出して、ハッシュ値に基づいて自律的にデータ再生処理要求の実行、非実行を判定する処理について説明する。
【0130】
まず、ステップS401で、データ再生処理要求パケットを待機し、ステップS402でパケットを受信したと判定すると、ステップS403において、受信パケット内の格納データに基づくハッシュ値生成処理を実行し、ステップS404において、生成したハッシュ値に基づいて、命令の実行、非実行を判定する。
【0131】
例えば、情報処理装置は、それぞれ予め設定された閾値としての設定値を記憶部に格納し、生成ハッシュ値>設定値であれば、命令実行、生成ハッシュ値≦設定値であれば、命令を非実行とするなどの設定とする。
【0132】
ハッシュ値の生成対象とするデータは、先にデータ記録要求の処理の判定と同様、図10に示す、例えばコンテンツデータの識別子(データID)、あるいはデータの一部、例えばデータ先頭からXビットのデータをハッシュ対象データとして設定するなどが可能である。ハッシュ値算出は例えばMD5の適用が可能であり、図10に示すようにデータIDのMD5によるハッシュ値、あるいはデータ内容のMD5によるハッシュ値が生成される。
【0133】
ステップS404におけるハッシュ値に基づく判定結果として、データ記録処理要求を実行すべきとの判定がなされれば、ステップS405に進み、自装置(ノード)の記憶手段に格納された加工データの抽出処理を実行して、抽出データをペイロードとしたパケット(図13参照)を生成して、再生指示装置に対して送信する処理を実行する。一方、ハッシュ値に基づく比較処理結果として、データ再生処理要求を実行しないとの判定がなされれば、ステップS406に進み、データ再生処理を実行せずに処理を終了する。
【0134】
このように、データ再生処理要求(命令)を受信した情報処理装置は、パケット内に格納されたデータのハッシュ値と各ノードの設定値との比較に基づいて自律的に命令の実行、非実行を判定し、判定に従った処理を行なう。
【0135】
[5.データ記録再生処理シーケンス]
次に、図22および図23を参照して記録指示装置からノードに対するデータ記録処理要求の発行、ノードにおけるデータ記録処理、再生指示装置からノードに対するデータ再生処理要求の発行、ノードにおけるデータ抽出、パケット送信処理の一連の処理シーケンスについて、まとめて説明する。
【0136】
図22において、記録指示装置は、まず、ステップS11において、記録対象データ(コンテンツ)の加工、すなわち、FEC処理、およびインタリーブ処理を実行する。この処理は、先に図5を参照して説明した処理である。
【0137】
次に、記録指示装置は、ステップS12において、データ記録処理要求(命令)パケットの生成処理を実行する。インタリーブ処理のなされたデータがペイロードとして格納されるとともに、ルール判断条件設定部253(図4参照)において決定される[ルール判断条件記述]としての確率値:αを設定したパケットを生成する。
【0138】
次に、記録指示装置は、ステップS13において、送信ノードに応じたアドレス設定、すなわちユニキャスト若しくはマルチキャストを用いて分散型ストレージシステムを構成する各ノードに送信する。
【0139】
記録指示装置からのデータ記録処理要求(命令)パケットを受信したノードの処理は、先に、図8、図9を参照して説明した処理の実行、非実行を自律的に判断して行なわれる処理となる。図22には、2つのノード(ノード1,2)の処理を示してあるが、この他にも多数のノードにおいて、自律的な判断(確率制御)が実行され、データ記録処理を実行するノード、データ記録処理を実行しないノードが存在する。
【0140】
図22に示す2つのノード(ノード1,2)は、ステップS21,S31の確率制御処理、すなわち、図8を参照して説明した生成乱数と、受信パケット(データ記録処理要求パケット)中の記録ルール判断条件記述として設定された確率:αとの比較に基づく、処理実行/非実行の判定処理、あるいは、図9を参照して説明したパケット内データに基づくハッシュ値と、ノードの設定値との比較に基づく、処理実行/非実行の判定処理を実行する。
【0141】
図22に示す2つのノード(ノード1,2)は、ステップS21,S31の確率制御処理の結果として、いずれもデータ記録処理を実行するとの結論が得られ、ステップS22,S32において、データ記録処理を実行する。記録対象データは、記録指示装置から受信したデータ記録処理要求パケットに格納されたFECおよびインタリーブされた加工データである。
【0142】
次に、図23を参照して再生処理シーケンスについて説明する。再生指示装置は、ステップS41において、再生処理要求(命令)パケット(図12参照)を各ノードに対して送信する。再生対象となるコンテンツID等をリクエスト記述として格納し、再生ルール判断条件記述(確率:β)を設定したパケットである。再生ルール判断条件記述としての返信確率:βの値は、前述したように初期的には比較的高い値に設定される。
【0143】
再生処理要求(命令)パケット(図12参照)を受信した各ノード、すなわち図23に示す2つのノード(ノード1,2)は、ステップS51,S61の確率制御処理、すなわち、図20を参照して説明した生成乱数と、受信パケット(データ再生処理要求パケット)中の再生ルール判断条件記述として設定された確率:βとの比較に基づく、処理実行/非実行の判定処理、あるいは、図21を参照して説明したパケット内データに基づくハッシュ値と、ノードの設定値との比較に基づく、処理実行/非実行の判定処理を実行する。
【0144】
図23に示すノード1は、ステップS51の確率制御処理の結果として、データ再生処理を実行するとの結論が得られ、ステップS52において、再生処理要求(命令)パケットのリクエスト記述に従って、自ノードの記憶部から対応データを取得し、取得データをペイロードとして格納したパケット(図13参照)を生成して、ステップS53において、再生指示装置に対して送信する。
【0145】
一方、図23に示すノード2は、ステップS61の確率制御処理の結果として、データ再生処理を実行しないとの結論が得られ、データ抽出およびパケット生成、送信を実行せずに処理を終了する。
【0146】
なお、図23には、ノード1からのみのデータが再生指示装置に送信されている構成となっているが、図示しないノード3〜nからのデータ格納パケットが再生指示装置に送信され、再生指示装置は、多数のノードから多数のパケットを受信している。
【0147】
再生データを格納したパケットを受信した再生指示装置は、ステップS71において、受信データブロックにデインタリーブをかけ、データの並びを整列させ、さらにデインタリーブされたデータにFEC復号を施し、元のデータを復元する。
【0148】
FECおよびデインタリーブ処理に基づくデータ復元処理ついては、先に図14を参照して説明した通りである。消失パケットが存在しても、デインタリーブ処理により、エラーは、エラー部が大きなデータ領域として存在するバーストエラーではなく、ランダムエラーとなり、FEC復号処理により元のデータが復元される。
【0149】
次に再生指示装置は、ステップS72において、次に送信する再生命令としてのデータ要求パケットの再生条件ルールに設定する返信確率βの値、およびデータ要求パケットの送信タイミングを設定する。
【0150】
返信確率βの値の設定においては、図11に示すルール判断条件設定部276において、前述したように初期値を高く設定し、後続リクエストにおいて徐々に設定値を低くする制御を行う。また、位相制御部278において、データ要求パケット送信タイミングを先に図17を参照して説明したように時間T1,T2,T3のように、初期のリクエスト間隔を短くし、徐々にリクエスト送信間隔を長くする制御を実行する。これらの制御は、バッファ273に対する到着パケット数、バッファ273の残容量情報に基づいて制御する。
【0151】
なお、図23に示すーケンス図においては、ステップS72の返信確率βおよび発送タイミングとしての位相の設定処理を前リクエストに対する応答パケットを受信し、その応答パケットに対するデインタリーブ処理を実行後に行うシーケンスとして示してあるが、この返信確率βおよび発送タイミングとしての位相の設定処理は、前リクエストに対する応答パケットの受信前等において行ってもよい。すなわち、バッファ273に対する到着パケット数、バッファ273の残容量情報に基づいてステップS72の処理を実行し、次のリクエストを送信する。
【0152】
ステップS73において、再生指示装置は、ステップS72で設定した返信確率βを設定した再生処理要求(命令)パケット(図12参照)をステップS72で設定した発送タイミングに基づいて、各ノードに対して送信する。
【0153】
再生処理要求(命令)パケット(図12参照)を受信した各ノード、すなわち図23に示す2つのノード(ノード1,2)は、ステップS81,S82の確率制御処理、すなわち、図20を参照して説明した生成乱数と、受信パケット(データ再生処理要求パケット)中の再生ルール判断条件記述として設定された確率:βとの比較に基づく、処理実行/非実行の判定処理、あるいは、図21を参照して説明したパケット内データに基づくハッシュ値と、ノードの設定値との比較に基づく、処理実行/非実行の判定処理を実行する。
【0154】
図23に示すノード1は、ステップS82の確率制御処理の結果として、データ再生処理を実行するとの結論が得られ、ステップS83において、再生処理要求(命令)パケットのリクエスト記述に従って、自ノードの記憶部から対応データを取得し、取得データをペイロードとして格納したデータ格納パケット(図13参照)を生成して、ステップS84において、再生指示装置に対して送信する。
【0155】
一方、図23に示すノード2は、ステップS81の確率制御処理の結果として、データ再生処理を実行しないとの結論が得られ、データ抽出およびパケット生成、送信を実行せずに処理を終了する。
【0156】
再生データを格納したパケットを受信した再生指示装置は、ステップS91において、受信データブロックにデインタリーブをかけ、データの並びを整列させ、さらにデインタリーブされたデータにFEC復号を施し、元のデータを復元する。
【0157】
再生支持装置は、さらにリクエストすべきデータが存在する場合は、前述のステップS72と同様の返信確率βの設定と、位相設定を行い、設定に基づくデータ要求パケットの送信処理を繰り返す。
【0158】
このように、データ再生要求を実行する再生指示装置は、バッファに対する到着パケット数、バッファの残容量に基づいてデータ要求パケットに設定する返信確率βの値と、データ要求パケットの送信タイミングを制御する。バッファ残容量が大きい場合は、返信確率βの値を高く設定し、バッファ残容量が小さい場合は返信確率βの値を低くする制御を行うとともに、前リクエストに対する到着パケットが、復号処理可能なパケット数pに達したことを条件として、あるいはpに近い数となったことを条件として、次のリクエストを送信する位相制御を実行する。
【0159】
この返信確率βと、位相制御処理により、効率的なバッファの利用およびデータの高速受信が実現される。
【0160】
次に、図24を参照して再生指示装置における処理手順について説明する。まず、ステップS501において、再生指示装置は、再生処理要求(命令)パケット(図12参照)を各ノードに対して送信する。再生対象となるコンテンツID等をリクエスト記述として格納し、再生ルール判断条件記述(確率:β)を設定したパケットである。再生ルール判断条件記述としての返信確率:βの値は、前述したように初期的には比較的高い値に設定される。
【0161】
再生指示装置は、ステップS502において、再生データ格納パケットを待機し、ステップS503において受信が確認されると、ステップS504において、受信データブロックにデインタリーブをかけ、データの並びを整列させ、さらにデインタリーブされたデータにFEC復号を施し、元のデータを復元する。
【0162】
次に再生指示装置は、ステップS505において、再生処理コンテンツに関するデータ受信が完了したか否かを判定し、完了していないと判定した場合は、ステップS506において次のデータ要求パケットに設定する返信確率βの値と、パケット送信タイミングの設定をバッファ到着パケット数およびバッファ残容量に基づいて設定し、ステップS507において、設定したパケット送信タイミングまで待機した後、ステップS501において、データ要求パケットを送信する。
【0163】
[6.記録再生時における同期処理]
次に、ネットワーク上の複数ノードに対する記録指示装置によるデータ記録処理と、再生指示装置による再生処理が並列に実行される場合の同期処理構成について説明する。
【0164】
図25は、記録指示装置101が分散したノード111〜115に対してデータ記録命令を送信し、各ノードが前述した自立的判断によるデータ記録を実行しており、この処理に並列して再生指示装置102が、記録中のータについて前述のデータ要求パケットの送信に基づくデータ再生を実行する構成例を示している。
【0165】
この並列処理構成において、記録指示装置101がデータ記録を行うペースと再生指示装置102がデータ再生を実行するペースが違うと、再生指示装置102で、バッファアンダーフロー、あるいはオーバーフローが起こり、再生処理エラーが発生する場合がある。このような再生処理エラーを防止するため、記録指示装置101にタイミング発生装置311を構成し、再生指示装置102にタイミング同期装置312を構成した。
【0166】
記録指示装置101のタイミング発生装置311は、各ノード111〜115に対して送信した記録命令の送信タイミング情報を例えばタイムスタンプデータとして格納したタイミング制御パケットを再生指示装置102のタイミング同期装置312に送信する。
【0167】
再生指示装置102では、タイミング同期装置312の受信したタイミング制御パケットを取り出して、データ記録処理タイミング情報を取得し、取得した情報に基づいて、再生命令を各ノード111〜115に対して送信し、また、バッファからのデータの取り出しタイミングを制御する。
【0168】
すなわち、再生指示装置102は、記録指示装置101がデータ記録を実行したタイミングの後、一定時間後に、記録対象データの取得処理としてのデータ要求パケットをノード111〜115に対して送信する。一定時間後とは、記録指示装置101からの記録命令を各ノードが受信し、データ記録処理を実行する時間を考慮した時間とする。このようにタイミング制御を実行することで、各ノード111〜115は、記録指示装置からの記録命令に基づいてデータ記録を行った後、そのデータの再生要求を、再生指示装置102から受信することになり、格納されたデータを取り出して送信することが可能となり、再生指示装置102は、確実にデータを受信し、再生を実行することが可能となる。
【0169】
図26は、タイミング発生装置321を別に独立して設定して記録指示装置101側と、再生指示装置102側に各々タイミング同期装置322,323を設定した構成例である。
【0170】
タイミング発生装置321は、記録指示装置101側と、再生指示装置102側に各々タイミング同期装置322,323に対してタイミング情報を例えばタイムスタンプデータとして格納したタイミング制御パケットを送信する。
【0171】
記録指示装置101および再生指示装置102では、タイミング発生装置321から受信したタイミング制御パケットを取り出して、データ記録または再生処理タイミングを制御する。すなわち、取得したタイミング情報に基づくタイミング制御の下に、記録命令または再生命令を各ノード111〜115に対して送信し、また、バッファからのデータの取り出しタイミングを制御する。双方が同期した処理を実行することで、記録処理遅れあるいは再生処理遅れ等が発生することなく、記録処理の進行に従った再生処理が可能となる。
【0172】
図27に、独立して設けたタイミング発生装置の出力するタイミング制御情報に基づいて、記録指示装置および再生指示装置がそれぞれ記録命令および再生命令の発行制御を実行するシーケンス図を示す。
【0173】
タイミング発生装置は、ステップS700において、自己のクロック情報に基づくタイムスタンプを設定したタイミング制御パケットを記録指示装置および再生指示装置に送信する。タイミング発生装置は、ステップS700におけるタイミング制御パケット送信後、定期的にタイムスタンプを設定したタイミング制御パケットを繰り返し、記録指示装置および再生指示装置に送信する。
【0174】
記録指示装置は、タイミング発生装置から受信するタイミング制御パケットに格納されたタイムスタンプ情報、および自己のクロック情報に基づいて、ノードに対する記録命令パケットの送信処理を実行する。ステップS701〜S703の処理は、先に図22を参照して説明した処理と同様であるので、説明を省略する。
【0175】
記録指示装置は、以下、タイミング発生装置から連続して受信するタイミング制御パケットに基づいて、ノードに対する記録命令パケットの送信タイミングを制御して、パケット送信処理を実行する。
【0176】
一方、再生指示装置は、タイミング発生装置から受信するタイミング制御パケットに格納されたタイムスタンプ情報、および自己のクロック情報に基づいて、ノードに対する再生命令パケットの送信処理を実行する。ステップS704〜S708の処理は、先に図23を参照して説明した処理と同様であるので、説明を省略する。
【0177】
再生指示装置は、以下、タイミング発生装置から連続して受信するタイミング制御パケットに基づいて、ノードに対する再生命令パケットの送信タイミングを制御して、パケット送信処理を実行する。
【0178】
このように、記録指示装置および再生指示装置では、タイミング発生装置から受信した共通のタイミング制御パケットに基づいて記録命令および再生命令の送信タイミングを制御することが可能となり、双方が同期した処理を行うことが可能となり、記録処理遅れあるいは再生処理遅れ等が発生することなく、記録処理の進行に従った再生処理が可能となる。
【0179】
[7.情報処理装置のハード構成]
次に、上述の実施例において説明したノード、記録指示装置、再生指示装置、タイミング発生装置を構成する情報処理装置のハード構成例について説明する。
【0180】
図28に、制御手段としてCPU(Central Processing Unit)を備えた情報処理装置例を示す。図28に示す構成について説明する。CPU(Central Processing Unit)901は、各種プログラムを実行するプロセッサである。ROM(Read−Only−Memory)902は、CPU901が実行するプログラム、あるいは演算パラメータとしての固定データを格納する。RAM(Random Access Memory)903は、CPU901の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。
【0181】
HDD904はハードディスクの制御を実行し、ハードディスクに対する各種データ、プログラムの格納処理および読み出し処理を実行する。エンコード/デコード処理部905は、コンテンツ等の送信データのエンコード処理、受信データのデコード処理を前述した処理に従って実行する。
【0182】
バス921はPCI(Peripheral Component Internet/Interface)バス等により構成され、各モジュール、入出力インタフェース922を介した各入出力装置とのデータ転送を可能にしている。
【0183】
入力部911は、例えばキーボード、ポインティングデバイスを含む入力部である。キーボードやマウス等を介して入力部911が操作された場合、あるいは、通信部913からのデータを受信した場合などにCPU901に指令が入力され、ROM(Read Only Memory)902に格納されているプログラムを実行する。出力部912は、例えばCRT、液晶ディスプレイ等であり、各種情報をテキストまたはイメージ等により表示する。
【0184】
通信部913は情報処理装置間の通信、あるいは、その他のエンティテイとの通信処理を実行し、CPU901の制御の下に、各記憶部から供給されたデータ、あるいはCPU901、エンコード/デコード処理部905によって処理されたデータを送信したり、他エンティテイからのデータを受信する処理を実行する。
【0185】
ドライブ914は、フレキシブルディスク、CD−ROM(Compact Disc ReadOnly Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体915の記録再生を実行するドライブであり、各リムーバブル記録媒体915からのプログラムまたはデータ再生、リムーバブル記録媒体915に対するプログラムまたはデータ格納を実行する。
【0186】
各記憶媒体に記録されたプログラムまたはデータを読み出してCPU901において実行または処理を行なう場合は、読み出したプログラム、データは入出力インタフェース922、バス921を介して例えば接続されているRAM903に供給される。
【0187】
なお、明細書中において説明した各処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、又は各種のプログラムをインストールすることで各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、フレキシブルディスクやCD−ROM等のプログラム読み取り可能な記録媒体にプログラムを格納して提供してもよいし、インターネットなどの通信網を介してプログラムをダウンロードしてもよい。
【0188】
具体的には、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【0189】
また、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0190】
なお、ノード、記録指示装置、再生指示装置を構成する情報処理装置としては、カムコーダ、パーソナルビデオレコーダーやホームゲートウェイなどが考えられるが、データを記録する記録部と、所定の演算を行う制御部と、データの送受信を行うネットワークインタフェースを有していればその他の構成を備える装置であってもよい。
【0191】
また、記録確率α、返信確率βをパケット中に記録したが、記録確率α、返信確率βを任意の記録装置、若しくはパケットなどに記録し、各ノードがその値を参照するようにしてもよい。また、FEC符号化としてリードトルネード符号化方式を利用した場合には、インタリーブ処理を省略することもできる。
【0192】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0193】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0194】
【発明の効果】
以上、説明してきたように、本発明の構成によれば、ネットワーク接続されたノードに対してデータ再生処理要求を送信する再生指示装置において、再生処理要求パケットの受信ノードが処理要求に従った処理を実行するか否かの判定処理に適用する返信確率βをパケット送信シーケンスに応じて変更設定するとともに、データ再生処理要求パケットの送信タイミングを制御する構成とし、初めはバッファを早く埋めるために無駄パケットが多くなることを許容した高い返信確率β値を設定し、バッファ空き容量が減少すると、無駄パケットの受信を防止するために、低い返信確率βを設定する処理を実行し、かつ、パケット送信間隔の調整をおこなうことで、バッファの効率的利用および高速受信を実現したデータ再生を行うことが可能となる。
【0195】
さらに、本発明の構成によれば、ネットワークに接続された記録指示装置から指定される記録確率α、および前記符号化ブロック数qと、ネットワーク接続ノード数nによって算出可能な返信ブロック数q×α×n×βと、前記ブロック数pとの関係が、返信ブロック数:q×α×n×β>ブロック数:pとなる返信確率:βを基準値とし、バッファ残容量が大きい場合は、データ再生処理要求パケットに設定する返信確率βの値を高く設定し、バッファ残容量が小さい場合は返信確率βの値を低く設定する制御を行う構成としたので、応答パケットに基づく再生可能性を保障した上でのバッファ使用効率の向上、高速受信が実現される。
【0196】
さらに、本発明の構成によれば、再生指示装置において、タイミング発生装置から受信するタイミング制御パケットに基づいて再生命令の送信タイミングを制御することが可能となり、記録処理と再生処理を並列に実行する場合においても、記録遅れあるいは再生処理遅れ等が発生することなく、記録処理の進行に従った再生処理が可能となる。
【図面の簡単な説明】
【図1】本発明の適用可能な分散型ストレージシステム構成例について説明する図である。
【図2】本発明の適用可能なネットワーク構成例について説明する図である。
【図3】ネットワーク接続される情報処理装置(ノード)の構成について説明する図である。
【図4】記録指示装置の構成について説明する図である。
【図5】記録指示装置において実行するデータのFEC符号化処理およびインタリーブ処理について説明する図である。
【図6】記録指示装置から送信するデータ記録処理要求パケットの構成について説明する図である。
【図7】記録指示装置からノードに対するデータ記録処理要求パケットの送信処理について説明する図である。
【図8】記録指示装置からデータ記録処理要求パケットを受信したノードにおける自律的な処理実行判定処理を含む処理手順を説明するフロー図である。
【図9】記録指示装置からデータ記録処理要求パケットを受信したノードにおける自律的な処理実行判定処理を含む処理手順を説明するフロー図である。
【図10】記録指示装置からデータ記録処理要求パケットを受信したノードにおける自律的な処理実行判定において生成するハッシュ値の例について説明する図である。
【図11】再生指示装置の構成について説明する図である。
【図12】再生指示装置から送信するデータ再生処理要求パケットの構成について説明する図である。
【図13】データ再生処理要求パケットを受信したノードから再生指示装置に対して送信するパケットの構成について説明する図である。
【図14】再生指示装置において実行するデータのデインタリーブ処理およびFEC復号処理について説明する図である。
【図15】再生指示装置の受信するパケット数の推移データの例を示す図である。
【図16】再生指示装置の受信するパケット数の推移と、返信確率βの設定値との対応について説明する図である。
【図17】本発明の再生指示装置の返信確率および位相制御に基づく受信パケット数の推移データの例を示す図である。
【図18】再生指示装置からノードに対するデータ再生処理要求パケットの送信処理について説明する図である。
【図19】再生指示装置からデータ再生処理要求パケットを受信したノードからのデータ格納パケットの送信処理について説明する図である。
【図20】再生指示装置からデータ再生処理要求パケットを受信したノードにおける自律的な処理実行判定処理を含む処理手順を説明するフロー図である。
【図21】再生指示装置からデータ再生処理要求パケットを受信したノードにおける自律的な処理実行判定処理を含む処理手順を説明するフロー図である。
【図22】記録指示装置からのデータ記録処理要求、ノードにおけるデータ記録処理について説明するシーケンス図である。
【図23】再生指示装置からのデータ再生処理要求、ノードにおけるデータ抽出送信処理、再生指示装置における再生処理について説明するシーケンス図である。
【図24】再生指示装置における処理手順を説明するフローチャートを示す図である。
【図25】タイミング発生装置および同期装置に基づく記録再生処理の同期処理構成について説明する図である。
【図26】独立して設けたタイミング発生装置および同期装置に基づく記録再生処理の同期処理構成について説明する図である。
【図27】タイミング発生装置からのタイミング制御情報に基づく記録再生処理シーケンスを説明する図である。
【図28】本発明の情報処理装置のハードウェア構成例について説明する図である。
【符号の説明】
100 ネットワーク
101 記録指示装置
102 再生指示装置
111〜115 ノード
110 ネットワーク
121〜126 情報処理装置
200 情報処理装置(ノード)
201 ルール判断処理部
202 データ処理部
203 パケット処理部
204 データ送受信部
250 記録指示装置
251 データ入力部
252 データ加工部
253 ルール判断条件設定部
254 パケット生成部
255 ネットワークインタフェース
270 再生指示装置
271 ネットワークインタフェース
272 パケット処理部
273 バッファ
274 データ復元処理部
275 データ処理部
276 ルール判断条件設定部
277 データ要求パケット生成部
278 位相制御部
311 タイミング発生装置
312 タイミング同期装置
321 タイミング発生装置
322,323 タイミング同期装置
901 CPU
902 ROM
903 RAM
904 HDD
905 エンコード/デコード処理部
911 入力部
912 出力部
913 通信部
914 ドライブ
915 リムーバブル記憶媒体
921 バス
922 入出力インタフェース
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an information processing apparatus, an information processing method, and a computer program. More specifically, in a distributed storage processing configuration in which data is distributedly recorded in a plurality of nodes, an information processing apparatus and information enabling efficient data acquisition and reproduction processing when executing data acquisition / reproduction processing from each node The present invention relates to a processing method and a computer program.
[0002]
[Prior art]
In recent years, various information processing apparatuses, for example, personal computers (PCs), large computers, servers, and other communication devices have been connected to a communication network such as the Internet, and video, image data, audio data, Alternatively, transfer of contents such as various programs or transfer of various processing data is performed. The type of content exchanged through a network is shifting from text and still images to multimedia contents such as moving images and audio, and the capacity of the content is remarkably increasing.
[0003]
Attention has been paid to a large-scale storage system for distributing and recording certain data in a large number of information processing terminals connected to each other via a network. In such a distributed storage system, a server that records and manages data transmits data to an information processing terminal or another server by multicast or the like, and stores the data in a local storage provided in the information processing terminal or another server. Recorded on medium.
[0004]
In this case, in order to be able to retrieve data on demand, a large amount of data must be recorded on a recording medium. For example, in the case of a movie having a data capacity of about 2 gigabytes per movie, if 500 such video data are recorded, a capacity of 1 terabyte or more is required.
[0005]
In addition, when the server provides data to the client requesting the data in a unicast manner by streaming, in order to perform error-free transmission, for example, a TCP / IP arriving signal (ACK) is used. A protocol that requires retransmission of data is used.
[0006]
However, this method imposes a heavy burden on the server side, so that even if one high-performance server is used, at present, services can be provided only to several hundred clients. Even if a protocol that does not use ACK such as UDP / IP is used, the number of clients that can be serviced is about several thousands. As described above, when data is provided by streaming, the cost of the server increases, and the number of clients is limited.
[0007]
In a conventional streaming system, a system for streaming a stream from a single server or a cache server is generally used. In such a system, the server side transmits the data to the network at the same timing, and the client side executes the PLL control to control the reproduction timing. In order to execute the PLL control, it is necessary to provide a buffer for absorbing the jitter of the arrival time. The input data is temporarily stored in a buffer on the client side that receives data, and the data is extracted from the buffer. Therefore, it is necessary to perform reproduction by PLL control. Therefore, there has been a delay from the reception of the image or the sound to the actual output. In addition, if the buffer capacity of the client is not sufficient, there is a problem that the buffer overflows and a reproduction error occurs.
[0008]
In recent years, Microsoft's WMP9 (Corona) and Real Media's True Stream have adopted a method based on feedback from a client to a server as a method for improving the buffer capacity problem on the client side. However, when such a feedback method is executed, when data is distributed to a large number of clients, requests from a large number of clients to the server are generated, and a load is imposed on the server. Therefore, in a system in which there are a large number, for example, thousands or tens of thousands of playback clients such as data distribution via the Internet, unless an infrastructure is constructed such as arranging a large number of servers, cache servers, etc. on a network, The solution by the feedback method is difficult.
[0009]
Therefore, a method of distributing the load on the server has been proposed. For example, there is a method in which a node in which a cache exists is specified in advance to avoid load concentration on a specific server. However, in this approach, it is necessary to place a search server in the center, execute an inquiry to the search server, and then access the content server in order to identify the node where the cache exists in advance. Delay occurs.
[0010]
Therefore, in recent years, a method of transmitting data to a plurality of clients without requesting retransmission of data by using FEC (Forward Error Correction) as a multicast technique has been proposed. In this method, a server repeatedly transmits a stream by multicast, and a client picks up a necessary signal from the stream, decodes the picked-up data, and reproduces the data.
[0011]
In order to transmit 500 video data of 2 Gigabytes per movie within 10 minutes using this method, a transmission band of about 14.7 Gbit / s is required. Furthermore, when transmitting the same amount of video data within one minute, a transmission band of about 147 Gbit / s is required. This is a theoretical value, but a server that can withstand such a capacity and transmission method is very costly and impractical even if realized. In addition, there is a method of distributing and recording data on multiple hosts, but in order to realize this system, huge data must be managed by multiple servers, so data management and data communication are required. Processing increases.
[0012]
In recent years, peer-to-peer (P2P: Peer-to-Peer) network technology has been developed and used as a direct communication process between information processing apparatuses. The P2P network does not include a server that performs intensive processing, but includes an information processing device as a resource of each network client, such as a PC, a mobile terminal, a PDA, a mobile phone, and a function capable of performing communication processing. Various devices, such as a disk device or a printer, as storage means connected to or connected to a communication device, communicate with each other via a network, and the resources of each network client can be shared.
[0013]
Peer-to-Peer (P2P: Peer-to-Peer) network technology is said to have been used for the first time in Advanced Peer-to-Peer Networking (APPN) proposed by IBM Corporation. By using this network, there is no need to install a huge distribution server required for distributing contents in a conventional client-server type network, and contents distributed to resources of each network client can be distributed. Many users are available, and large-capacity content can be distributed and stored.
[0014]
Peer-to-peer (P2P) networks include "Pure-Peer-to-Peer (P2P) networks" and "Hybrid (peer-to-peer) networks". (P2P: Peer-to-Peer network).
[0015]
A pure peer-to-peer (P2P) network is a network form in which each component (peer) of the system has an equal function / role and performs equal communication. A typical service using this is Gnutella. A hybrid peer-to-peer (P2P) network is a pure peer-to-peer (P2P) network as well as each component of the system. (Peer: Peer) It is a network form that uses a control server to facilitate interaction. A typical service using the service is Napster.
[0016]
In a hybrid peer-to-peer (Hybrid P2P) system represented by Napster, when a network-connected terminal attempts to acquire content, first, a content server is searched for a content resource by a central server. Then, based on the search information, access is made to the node (other network connection terminal) holding the resource to obtain the content. In this method, it is necessary to register the resource information of all nodes in the central server, and furthermore, there is a disadvantage that the search is concentrated on the central server.
[0017]
Therefore, a method has been proposed in which processes such as resource search are distributed to a plurality of devices and executed. In this processing distribution method, processing determination apparatuses are managed by a method such as arranging them in a tree-like relationship, and processing such as resource search is distributed to a plurality of apparatuses and executed based on management information. However, even in this method, when the number of devices that execute processing increases, for example, to several millions, the amount of information for managing the tree configuration increases, the number of processing instructions for transmitting execution instructions to a plurality of processing devices increases, or the tree increases. Problems such as ensuring the consistency of the system arise. In addition, there is a problem that a processing delay occurs because determination processing by a plurality of processing execution determination devices is required.
[0018]
In order to compensate for these weaknesses, there is a method in which all commands are sent to all network connection nodes, and each node determines whether or not to execute the received processing command. This is a pure peer-to-peer (Pure P2P) system represented by Gnutella. This scheme is different from the hybrid peer-to-peer (Hybrid P2P) scheme in that it does not have a central server that executes a resource search process. Is executed to request the hit terminal for a processing request such as content transmission.
[0019]
Also in the pure peer-to-peer (Pure P2P) system represented by Gnutella, all or as much as possible of the search instruction is transferred by using a routing such as a tree structure or a network structure. A configuration in which a node performs a search is effective. However, this method also has a drawback in that an instruction transfer process of a processing instruction that is not executed in its own node is executed, and a load is imposed on a transmission path.
[0020]
For example, in order to search all the network connection nodes and make the processing request reach all the nodes, complicated routing management is required. On the other hand, when the node search of the best effort method is executed, it is not guaranteed that the instruction is transmitted to all the nodes, and a necessary resource may not be found. Further, there is a problem that congestion in the network occurs when communication for node search occurs frequently.
[0021]
[Problems to be solved by the invention]
The present invention has been made in view of the above-described various problems in the related art, and has a network configuration in which a large number of terminals (nodes) are connected, that is, a distributed storage process in which data is distributed to a plurality of nodes and recorded. It is an object of the present invention to provide an information processing apparatus, an information processing method, and a computer program which can efficiently acquire distributed data and perform a reliable reproduction process based on the acquired data.
[0022]
More specifically, an information processing apparatus and an information processing apparatus that increase the efficiency of use of a buffer of a reproduction request node as a reproduction instruction device, reduce the time loss from data reception to reproduction processing, and enable efficient data reproduction. A processing method and a computer program are provided.
[0023]
According to the present invention, when performing data reproduction by acquiring data stored in storage means installed in a plurality of terminals (nodes) connected to a network, a reproduction request can be made without performing a process such as a node search in advance. Is transmitted to the terminal (node) that has received the request. Under the distributed data processing configuration in which it is determined whether or not to execute the instruction autonomously and the instruction is selectively executed, the reproduction request node has It is an object of the present invention to provide an information processing apparatus, an information processing method, and a computer program that can execute efficient data acquisition and reproduction processing by executing feedback control such as a retransmission request according to the capacity of a buffer.
[0024]
[Means for Solving the Problems]
According to a first aspect of the present invention,
An information processing device as a reproduction instruction device for transmitting a data reproduction processing request to a node connected to a network,
A packet generation unit that generates a data reproduction processing request packet;
A rule for changing and setting the value of the return probability β applied to the process of determining whether or not to execute the process according to the processing request at the receiving node of the data reproduction process request packet in accordance with the data reproduction process request packet transmission sequence A judgment condition setting unit;
A phase control unit that controls a transmission timing of the data reproduction processing request packet, a network interface unit that transmits the packet generated by the packet generation unit,
And a buffer for storing packet storage data received from the node as a response to the data reproduction processing request packet.
[0025]
Further, in one embodiment of the information processing apparatus of the present invention, the rule determination condition setting unit sets the value of the return probability β as a gradually reduced value in a data reproduction process request packet transmission sequence to be continuously transmitted. It is characterized by having a configuration for executing a process to perform.
[0026]
Further, in one embodiment of the information processing apparatus of the present invention, the phase control unit executes control processing for setting a data reproduction processing request packet transmission interval to be gradually longer in a data reproduction processing request packet transmission sequence to be continuously transmitted. It is characterized by having the structure which does.
[0027]
Further, in one embodiment of the information processing apparatus of the present invention, the data to be reproduced stored in the node is obtained by dividing the data into p blocks and subjecting the p blocks to FEC encoding to obtain q blocks. The rule determination condition setting unit is coding processing data of the coding rate q / p converted into blocks, and the rule determining condition setting unit determines a probability value for returning data at the node receiving the data reproduction processing request with a return probability β. This is a configuration that is set as a condition description. The recording probability α specified by the recording instruction device connected to the network, the number of coding blocks q, and the number of return blocks q × α that can be calculated from the number n of network connection nodes The relationship between × n × β and the number of blocks p is the number of reply blocks: q × α × n × β> the number of blocks: p. When the remaining capacity is large, the value of the reply probability β set in the data reproduction processing request packet is set to be high, and when the remaining capacity of the buffer is small, control is performed to set the value of the reply probability β to be low. Features.
[0028]
Further, in one embodiment of the information processing apparatus of the present invention, the phase control unit determines that the reception response packet corresponding to the data reproduction processing request as the previous request has reached the value p which is the number of packets that can be decoded. A phase control for transmitting the next request is performed as a condition or on condition that the number becomes close to the value p.
[0029]
Further, in one embodiment of the information processing apparatus of the present invention, the information processing apparatus further includes a data restoration processing unit that performs a deinterleaving process and an FEC decoding process, and the data restoration processing unit includes the data reproduction unit. The deinterleaving process and the FEC decoding process are performed on data to be reproduced extracted from the packet received from the node that has received the processing request, and the data is restored.
[0030]
Further, in one embodiment of the information processing apparatus of the present invention, the information processing apparatus further includes a timing synchronization processing unit that receives synchronization control information from the outside and controls transmission timing of the data reproduction processing request packet. It is characterized by having a configuration.
[0031]
Further, a second aspect of the present invention provides
An information processing method for performing data reproduction processing control based on transmission of a data reproduction processing request to a node connected to a network,
Rule determination for changing the value of the return probability β applied to the process of determining whether or not to execute the process according to the processing request at the receiving node of the data reproduction process request packet in accordance with the data reproduction process request packet transmission sequence Condition setting step;
A packet generation step of generating a data reproduction processing request packet;
A phase control step of controlling a transmission timing of the data reproduction processing request packet,
An information processing method comprising:
[0032]
Further, in one embodiment of the information processing method of the present invention, the rule determination condition setting step sets the value of the return probability β as a value that is gradually reduced in a data reproduction processing request packet transmission sequence that is transmitted continuously. Is performed.
[0033]
Further, in one embodiment of the information processing method of the present invention, the phase control step executes a control process of setting a data reproduction process request packet transmission interval to be gradually longer in a data reproduction process request packet transmission sequence to be continuously transmitted. It is characterized by doing.
[0034]
Further, in one embodiment of the information processing method according to the present invention, the data to be reproduced stored in the node is obtained by dividing the data into p blocks and subjecting the p blocks to FEC encoding to obtain q blocks. The coding process data of the coding rate q / p converted into blocks, wherein the rule determination condition setting step determines a probability value at which data is returned at the node receiving the data playback processing request with a return probability β. Set as a condition description, the recording probability α specified by the recording instruction device connected to the network, the number of coding blocks q, and the number of reply blocks q × α × n × The relationship between β and the number of blocks p is the number of reply blocks: q × α × n × β> the number of blocks: p. Be greater, the higher set value of the return probability beta to be set to the data reproduction process request packet, if the buffer remaining capacity is small and performs a control to set a low value of the return probability beta.
[0035]
Further, in one embodiment of the information processing method according to the present invention, the phase control step includes a step of determining that a reception response packet to the data reproduction processing request as the previous request has reached the value p which is the number of packets that can be decoded. The phase control for transmitting the next request is performed as a condition or on condition that the number becomes close to the value p.
[0036]
Further, in one embodiment of the information processing method of the present invention, the information processing method further includes a data restoration processing step of executing a deinterleave processing and an FEC decoding processing, and the data restoration processing step includes the data reproduction processing step. The present invention is characterized in that deinterleave processing and FEC decoding processing are performed on reproduction target data extracted from a packet received from a node that has received a processing request, and data restoration is performed.
[0037]
Further, in one embodiment of the information processing method of the present invention, the information processing method further includes a timing synchronization processing step of receiving synchronization control information from the outside and controlling transmission timing of the data reproduction processing request packet. It is characterized by the following.
[0038]
Further, a third aspect of the present invention provides
A computer program that executes data reproduction control processing based on transmission of a data reproduction processing request to a node connected to a network,
Rule determination for changing the value of the return probability β applied to the process of determining whether or not to execute the process according to the processing request at the receiving node of the data reproduction process request packet in accordance with the data reproduction process request packet transmission sequence A condition setting step;
A packet generation step of generating a data reproduction processing request packet;
A phase control step of controlling a transmission timing of the data reproduction processing request packet,
A computer program characterized by having:
[0039]
[Action]
According to the configuration of the present invention, in the reproduction instruction device that transmits a data reproduction processing request to a node connected to a network, it is determined whether or not the receiving node of the reproduction processing request packet executes the processing according to the processing request. The return probability β to be applied to the processing is changed and set according to the packet transmission sequence, and the transmission timing of the data reproduction processing request packet is controlled. At first, it was allowed to increase the useless packets to fill the buffer quickly. When a high return probability β value is set and the buffer free space decreases, a process of setting a low return probability β is performed to prevent the reception of useless packets, and by adjusting the packet transmission interval, It is possible to perform data reproduction that realizes efficient use of the buffer and high-speed reception.
[0040]
Further, according to the configuration of the present invention, the recording probability α specified by the recording instruction device connected to the network, the number of coded blocks q, and the number of return blocks q × α that can be calculated from the number of network connection nodes n When the relationship between × n × β and the number of blocks p is the number of reply blocks: q × α × n × β> the number of blocks: p, the return probability: β is used as a reference value, and when the remaining buffer capacity is large, The value of the reply probability β set in the data reproduction processing request packet is set to a high value, and if the remaining buffer capacity is small, the control is performed to set the value of the reply probability β to a low value. As a result, the buffer use efficiency is improved, and high-speed reception is realized.
[0041]
Further, according to the configuration of the present invention, it becomes possible for the reproduction instruction device to control the transmission timing of the reproduction command based on the timing control packet received from the timing generation device, and execute the recording process and the reproduction process in parallel. In this case, the reproduction process can be performed in accordance with the progress of the recording process without causing a recording delay or a reproduction process delay.
[0042]
The computer program of the present invention is provided, for example, in a computer-readable format for a general-purpose computer system capable of executing various program codes, in a storage medium or communication medium such as a CD, FD, or MO. Or a computer program that can be provided by a communication medium such as a network. By providing such a program in a computer-readable format, processing according to the program is realized on a computer system.
[0043]
Further objects, features and advantages of the present invention will become apparent from the following detailed description based on embodiments of the present invention and the accompanying drawings. In this specification, the term “system” refers to a logical set of a plurality of devices, and is not limited to a device having each component in the same housing.
[0044]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an information processing apparatus, an information processing method, and a computer program according to the present invention will be described in detail with reference to the drawings. The description will be made in the following order.
1. Network configuration
2. Information processing device configuration as a node
3. Recording instruction device configuration and data recording process
4. Playback instruction device configuration and data playback processing
5. Data recording / playback processing sequence
6. Synchronous processing during recording and playback
7. Hardware configuration of information processing device
[0045]
[1. Network configuration]
First, an example of a network configuration that realizes data processing to which the information processing apparatus of the present invention is applied will be described with reference to FIG. FIG. 1 is a diagram showing a specific example of a distributed storage system for distributing and recording data to terminals constituting a network. The distributed storage system includes n nodes 111, 112,..., And 115 connected to a communication network of the network 100, a recording instruction device 101 that instructs and controls recording of data in each node, and a recording instruction device 101 that is recorded in each node. And a reproduction instructing device 102 for reading the read data.
[0046]
In this embodiment, the recording instruction apparatus 101, the nodes 111 to 115, and the reproduction instruction apparatus 102 will be described as separate apparatuses. However, an apparatus such as a recording / reproduction instruction apparatus having the functions of these two apparatuses will be described. There may be. Further, each of the nodes may be provided with a function as a recording instruction device or a reproduction instruction device. In this case, each device constituting the network can be used without distinction. Note that the recording instruction device, the reproduction instruction device, and the node are collectively called an information processing device.
[0047]
That is, a network configuration as shown in FIG. 2 can be assumed. The information processing device has a configuration capable of communicating with another information processing device and is connected by a communication network. The network is basically a pure peer-to-peer (P2P) network that does not have a control server as a look-up server (look-up server).
[0048]
As shown in FIG. 2, the information processing devices 121 to 126 mutually communicate via the network 110, and execute various data processes such as a content recording process and a content reproduction process. The present invention is also applicable to a hybrid peer-to-peer (P2P) network in which a control server exists, and is not particularly applicable to a limited network configuration. Instead, any configuration is possible as long as the information processing apparatuses can communicate with each other.
[0049]
One of the information processing devices 121 to 126 shown in FIG. 2 outputs a content recording request or a content reproduction request to an information processing device connected to the network. When a content recording request is made, for example, a recording request processing request packet in which a multicast address is set based on a predetermined rule is generated, and the packet is subjected to FEC (Forward Error Correction) and stored as interleaved divided data. , To another information processing apparatus. The information processing apparatus that receives these packets autonomously determines whether or not to execute data recording processing, and performs content recording processing based on the determination.
[0050]
When the content is to be reproduced, one of the information processing apparatuses 121 to 126 generates a content reproduction request and transmits the generated packet to another information processing apparatus, for example, a request packet in which a multicast address based on a predetermined rule is set. . The information processing apparatus that receives these packets autonomously determines whether or not to execute data extraction processing, performs content extraction processing based on the determination, and extracts data, for example, FEC (Forward Error Correction) according to the request. And the interleaved divided data is stored in a packet and transmitted to the reproduction request information processing apparatus.
[0051]
Although a transmission control device such as a router constituting a network is omitted in FIGS. 1 and 2, a transmission control device such as a router for selecting a route of a packet passing through a node is actually provided. ing. The transmission control device may be provided separately from the node, or the node may have a function as the transmission control device.
[0052]
[2. Information processing device configuration as a node]
Next, the configuration of the information processing device functioning as a node will be described. FIG. 3 is a diagram illustrating a configuration of an information processing apparatus that functions as a node.
[0053]
As shown in FIG. 3, the information processing device (node) 200 includes a rule determination processing unit 201, a data processing unit 202, a packet processing unit 203, and a data transmission / reception unit 204. The data transmission / reception unit 204 outputs a transmission packet to another information processing device connected via a network and executes a process of inputting a reception packet from the other information processing device.
[0054]
The packet processing unit 203 performs a process of generating a packet to be transmitted from the own device to another information processing device connected to the network, a process of analyzing a packet received from another information processing device, and the like.
[0055]
The data processing unit 202 executes a process according to a data processing program stored in each information processing device. For example, data processing based on a data processing request from an information processing device such as another recording instruction device or a reproduction instruction device connected to a network, for example, in the case of a content reproduction request, the specified content is taken out from the storage unit 205, This is processing to be output to the processing unit 203. In the case of a content recording request, the process is to input and store the input content in the storage unit 205.
[0056]
The rule determination processing unit 201 is a processing unit that executes processing unique to the information processing apparatus according to the present invention, and based on a probability value: α or β as [rule determination condition description] described in an input packet. In addition, data processing based on a packet, for example, data reception and storage processing to a storage unit as processing corresponding to a data recording instruction, or data extraction and transmission processing from the storage unit as processing corresponding to a data reproduction instruction, these processings Is performed to determine whether or not to execute. In the configuration of the present invention, the probability of executing a recording command is set as α, and the probability of executing a playback command is set as β, and these probabilities are set in a recording request device or a recording request or a reproduction request packet transmitted by the recording device. The value is set.
[0057]
For example, when executing the content recording process, if the number n of the nodes configuring the distributed storage system is sufficiently large and the number q of the decoded blocks is sufficiently large, the packets are uniformly recorded in all the nodes. , Data is recorded with a probability of α for the entire distributed storage system.
[0058]
When executing the content reproduction processing, the rule determination processing unit 201 of each node determines whether or not to execute the reproduction instruction based on the probability: β and executes it. As described above, in the reproduction command, since the command is executed only at a certain probability in each node, packet loss occurs. However, if the probability β of the execution of the reproduction command is set so that a sufficient number of packets are sent from a plurality of distributed nodes in total, these are combined and based on FEC (Forward Error Collection). You can perform error correction and play back the original data.
[0059]
[3. Recording Instruction Device Configuration and Data Recording Process]
Next, the recording instruction device and the data recording process will be described. FIG. 4 is a diagram showing a configuration of the recording instruction device 250. The recording instruction device 250 executes data processing such as a data input unit 251 that inputs recording processing request data (contents) to a plurality of nodes, for example, FEC (Forward Error Collection) encoding, and interleave processing on encoded data. A data processing unit 252, a rule determination condition setting unit 253 for setting a probability value: α as the above-mentioned “rule determination condition description”, processed data generated by the data processing unit 252, and a rule determination set by the rule determination condition setting unit 253 It has a packet generator 254 for storing a condition description and generating a packet with an address set, and a network interface 255 for connecting to a network.
[0060]
Here, the FEC coding is a general term for coding methods that perform error correction on the receiving side, such as a tornado coding method, a read tornado coding method, and a turbo coding method, and the data processing unit 252 includes a data input unit 251. Is divided into p blocks, and the p blocks are subjected to FEC encoding to be converted into q blocks. Encoding from the p blocks to the q blocks is referred to as encoding of a coding rate q / p. By changing the coding rate q / p, the recording efficiency of the distributed storage system can be improved. The transmission efficiency can be changed.
[0061]
The interleaving process is a process of rearranging the order of encoded data. By interleaving, data can be dispersed, and a burst error caused by packet loss can be made a random error. As a result, a lost data portion can be corrected by error correction according to FEC. .
[0062]
The FEC encoding process and the interleaving process will be described with reference to FIG. As shown in FIG. 5A, the input original data is divided into p blocks. Then, as shown in FIG. 5B, FEC encoding is performed at an encoding rate of q / p, and the data divided into p blocks is converted into q encoded blocks.
[0063]
As described above, FEC coding is a general term for coding methods that perform error correction on the receiving side, such as a tornado coding method, a lead tornado coding method, and a turbo coding method. When certain data is coded at the coding rate q / p, as described in the paper RIZZ097 (http://www.et.unipi.it/@luigi/fec.html#fec.ps), If more than one coded block remains, the original message can be restored even if some blocks are lost.
[0064]
The data subjected to the FEC encoding is subjected to an interleaving process as shown in FIG. The order of the encoded data is rearranged to distribute the data. The data subjected to the interleave processing is output to the rule determination condition setting unit 253, and the probability value: α is set as the above [rule determination condition description].
[0065]
The setting process of the probability value: α as the [rule determination condition description] is set in relation to the above-described process of the data processing unit. The data processing unit executes coding processing of a coding rate q / p in which data is divided into p blocks, and the generated p blocks are subjected to FEC coding and converted into q blocks. In this case, the rule determination condition setting unit 253 is configured to set, as a recording rule determination condition description, a probability value: α at which data is to be recorded with a recording probability: α at a node that receives a data recording processing request, and is connected to a network. The return probability designated by the reproduced playback instruction device 102 (see FIG. 1): β, the number of coded blocks: q, and the number of reply blocks that can be calculated from the number of network connection nodes: n: q × α × n × The relationship between β and the number of blocks: p is
Number of reply blocks: q × α × n × β> Number of blocks: p
A probability value: α is set so that With this setting, reliable data restoration from return data returned from each node with a return probability: β in response to a reproduction request from the reproduction instruction device is guaranteed.
[0066]
The packet generation unit 254 divides the processed data generated by the data processing unit 252 into a predetermined size, stores the rule determination condition description set by the rule determination condition setting unit 253, and adds a header and a footer including an address. A packet is generated and transmitted via the network interface 255. The packet is transmitted to each node configuring the distributed storage system using the address setting according to the transmission node, that is, using unicast or multicast.
[0067]
FIG. 6 is a diagram illustrating a structure of the packet 40 generated by the packet generation unit 254. The packet is composed of a header, a description of a recording rule determination condition, a payload, and a footer. The payload stores processed data (processed content) on which FEC encoding processing and interleaving processing have been performed. In the header and footer, control information such as a data ID indicating a data type, a CRC (Cyclic Redundancy Check) checksum, a GUID (Global Unique ID) as a unique identifier of the packet transmission destination node, and a network address are described. I have.
[0068]
In the recording rule determination condition description, a probability that each node described below records this packet: α is described. The rule determination processing unit 201 (see FIG. 3) of the node that has received the packet records the packet based on the recording probability α.
[0069]
All nodes constituting the distributed storage system determine whether to record a packet based on the recording probability. As a result, data is recorded with the probability α in the nodes constituting the distributed storage system. In this distributed storage system, when the number n of nodes is sufficiently large and the number q of decoded blocks is sufficiently large, data can be distributed to each node with equal probability.
[0070]
The recording rule determination condition description is stored in a packet different from the packet storing the processed content, the link information of the packet storing the recording rule determination condition description is stored in the packet storing the processed content, and the processed content is stored. The node that has received the packet may acquire the corresponding recording rule determination condition description storage packet based on the link information.
[0071]
Next, a recording processing procedure in which a node that has received a packet autonomously determines whether or not to record content based on transmission of a recording processing request packet from the recording instruction device and executes the processing will be described.
[0072]
FIG. 7 is a diagram illustrating a process of transmitting the data recording processing request packet shown in FIG. 6 as a data recording command from the recording instruction device 101 to the plurality of nodes 111 to 115. The recording instruction device uses the processed data subjected to the FEC process and the interleave process described in FIG. 6 as a payload, and further transmits a packet in which a probability value: α as a rule determination condition description is set to each node by unicast or multicast. Send.
[0073]
With reference to FIG. 8, a processing procedure in the node that has received the packet will be described. First, in step S101, a data recording request packet is awaited. If it is determined in step S102 that the packet has been received, a random number generation process is executed in step S103. In step S104, the generated random number and the data recording process request Recording rule judgment condition description stored in the packet: comparison with the probability α is performed, and execution or non-execution of the instruction is judged based on the comparison result.
[0074]
For example, if the generated random number> probability α, the processing for recording the processed data stored as the payload of the packet in its own storage means is executed. If the generated random number ≦ probability α, the data recording processing is not executed.
[0075]
Note that, when the number n of the nodes constituting the distributed storage system is sufficiently large and the number q of the decoded blocks is sufficiently large, the random numbers generated in each node are such that the packets are equally transmitted to all the nodes. The range of the generated random number is set so that the data is recorded and the data is recorded with the probability of α as the entire distributed storage system.
[0076]
If it is determined that the data recording processing request should be executed as a result of the comparison processing based on the random number in step S104, the process proceeds to step S105, where processing for extracting the processed data stored as the payload of the packet is executed, and A process for recording the extracted data in the storage unit of the device (node) is executed. On the other hand, if it is determined that the data recording processing request is not to be executed as the comparison processing result based on the random number, the process proceeds to step S106, and the processing ends without executing the data recording processing.
[0077]
As described above, the information processing apparatus that has received the data recording processing request (instruction) autonomously determines the execution or non-execution of the instruction based on the comparison between the recording rule determination condition description stored in the packet and the random number. , And performs processing according to the determination.
[0078]
Next, referring to the processing flow of FIG. 9, the information processing apparatus that has received the data recording processing request calculates a hash value, and autonomously executes and does not execute the data recording processing request based on the hash value. Will be described.
[0079]
First, in step S201, a data processing request packet is awaited. If it is determined in step S202 that the packet has been received, a hash value generation process based on data stored in the received packet is executed in step S203. The execution or non-execution of the instruction is determined based on the hash value thus obtained.
[0080]
For example, the information processing apparatus stores a preset value as a preset threshold value in the storage unit, and executes the command if the generated hash value is greater than the set value, and executes the instruction if the generated hash value is smaller than or equal to the set value. Make settings such as execution.
[0081]
As shown in FIG. 10, the data stored in the data processing request packet for which the hash value is to be generated is, for example, an identifier (data ID) of the content data or a part of the data, for example, a predetermined (n) from the head of the data. Bit data can be set as hash target data. For example, MD5 can be applied to the hash value calculation, and a hash value based on MD5 of the data ID or a hash value based on MD5 of the data content is generated as shown in FIG.
[0082]
If the result of the determination based on the hash value in step S204 indicates that the data recording processing request should be executed, the process proceeds to step S205, where the processing for extracting the processed data stored as the payload of the packet is executed, and A process for recording the extracted data in the storage unit of the device (node) is executed. On the other hand, if it is determined that the data recording processing request is not to be executed as the comparison processing result based on the hash value, the process proceeds to step S206, and the processing ends without executing the data recording processing.
[0083]
As described above, the information processing apparatus that has received the data recording processing request (instruction) autonomously executes and non-executes the instruction based on the comparison between the hash value of the data stored in the packet and the set value of each node. Is determined, and processing according to the determination is performed.
[0084]
[4. Playback instruction device configuration and data playback processing]
Next, a reproduction instruction device 102 (see FIG. 1) that transmits a data reproduction instruction to each node, receives data to be reproduced from each node, and executes data reproduction processing will be described. FIG. 11 is a diagram showing the configuration of the reproduction instruction device 270. The reproduction instruction device 270 stores a network interface 271 for transmitting and receiving data to and from the outside via a network, a packet processing unit 272 for performing processing such as taking out a payload from an input packet, and data to be reproduced included in the payload. A buffer 273, a data restoration processing unit 274 that executes deinterleaving processing and FEC decoding processing of data extracted from a received packet and executes restoration of content data, and supplies the restored data to an external device such as a monitor or a speaker (not shown). A data processing unit 275 for executing output processing control, a rule determination condition setting unit 276 for determining a probability value: β as a [rule determination condition description] to be set in a data request packet, and playback data transmission in which a playback target data is specified for a node Generate a packet requesting Over data request packet generating unit 277, a phase control section (packet output timing control unit) 278 for executing phase control of the output timing control of the data request packet.
[0085]
The data request packet generator 277 transmits a packet requesting data to each node constituting the distributed storage system. FIG. 12 is a diagram showing a configuration of a packet requesting data. The packet includes a header, a playback rule determination condition description section, a request description section, and a footer. In the request description part, a data ID for identifying requested data is recorded. Control information such as a CRC checksum, a network address or GUID of a node, and a sequence number indicating the order of data is recorded in the header and footer.
[0086]
The return probability β determined by the rule determination condition setting unit 276 is set in the reproduction rule determination condition description unit. The return probability β is a variable for determining whether the node that has received the packet returns data. Based on this variable, some nodes determine that data is to be returned, and some nodes determine not to return data. The return probability β is a value when the entire distributed storage system is viewed macroscopically. In the distributed storage system as a whole, the probability of returning data from each node is β. Therefore, when there are n nodes in the distributed storage system, the ratio of returned packets is a value n × β obtained by multiplying the number n of nodes by the return probability β.
[0087]
The packet processing unit 272 combines the packets returned from each node. FIG. 13 is a diagram illustrating a data structure of a packet returned from the node. As shown in FIG. 13, the packet is composed of a header, a payload, and a footer, and the payload includes data extracted from the storage unit by each node, that is, FEC processing and interleave processing described above with reference to FIG. The header and the footer store control information such as a CRC checksum, a network address of a receiving node, and a sequence number indicating a packet order.
[0088]
When the reproduction instruction device receives the packet shown in FIG. 13, the packet processing unit 272 performs packet analysis, reads a sequence number, rearranges the order of the received packet, removes control information such as a header and a footer, and performs sequence analysis. Combine packets in numerical order.
[0089]
The data restoration processing unit 274 deinterleaves the received data blocks, arranges the data, and performs FEC decoding on the deinterleaved data to restore the original data.
[0090]
The data restoration processing based on the FEC and the deinterleave processing will be described with reference to FIG. As shown in FIG. 14A, a received packet from each node is lost on the network, and the received data block and the lost data block are mixed.
[0091]
As described above with reference to FIG. 5, the received data block is subjected to FEC encoding at an encoding rate of q / p, and the data divided into p blocks is converted into q encoded blocks. Block data.
[0092]
The data restoration processing unit 274 in the reproduction instruction device first deinterleaves the received data block, arranges the data arrangement, and generates deinterleaved processing data shown in FIG. The deinterleaved data includes a lost packet, that is, a data lost portion based on a lost block. However, due to the deinterleave processing, these errors are not burst errors in which an error portion exists as a large data area, but random errors including a small data area. Such a random error including a small data area can be eliminated by the FEC.
[0093]
The data restoration processing unit 274 performs error correction by FEC on the deinterleaved processing data shown in FIG. 14B, and generates restored data shown in FIG. 14C. As described above, FEC coding is a general term for coding methods that perform error correction on the receiving side, such as a tornado coding method, a lead tornado coding method, and a turbo coding method. When certain data is coded at the coding rate q / p, as described in the paper RIZZ097 (http://www.et.unipi.it/@luigi/fec.html#fec.ps), If more than one coded block remains, the original message can be restored even if some blocks are lost.
[0094]
The data restored by the data restoration processing unit 274 is output to the data processing unit 275. The data processing unit 275 stores the decoded data in a recording unit (not shown) or outputs the data to an output unit such as a monitor or a speaker via an output interface.
[0095]
The distributed storage system according to the present invention is a system in which data is recorded in each node with a recording probability α and data recorded in each node is returned with a return probability β, and is output from the recording instruction device 101 shown in FIG. The original data is returned at a rate of α × n × β. For example, if p blocks are coded into q blocks, q × α × n × β blocks are returned. As described in the above-mentioned article RIZZ097, if the number of returned blocks is larger than the number p of blocks before decoding, data can be decoded. Therefore, if the values of α, β, and q / p are determined so that the number of returned blocks is larger than p, target data can be decoded.
[0096]
That is, the rule determination condition setting unit 276 in the reproduction instruction device 270 determines that the reproduction target data stored in the node has a coding rate q / p obtained by performing FEC encoding on p blocks and converting the blocks into q blocks. When the data is coded processing data, a recording probability: α, a return probability: β and p, q specified by the recording instruction device connected to the network, the number of coded blocks: q, and a number of network connection nodes: n The relationship between the number of reply blocks that can be calculated by: q × α × n × β and the number of blocks: p is
Number of reply blocks: q × α × n × β> Number of blocks: p
Is set as β. With this setting, reliable data restoration from return data returned from each node with a return probability: β in response to a reproduction request from the reproduction instruction device is guaranteed.
[0097]
Thus, the distributed storage system in this example is
p ≧ q × α × n × β
Since the coding rate q / p, the recording probability α, and the return probability β may be set so as to satisfy the above, the coding rate q / p, the recording probability α, and the return probability β are changed within a range that satisfies the above-described formula. This makes it possible to change the data recording efficiency and transmission efficiency. Hereinafter, an example of setting each parameter of q / p, α, and β will be described.
[0098]
For example, when the value of the recording probability α is increased and the value of the response probability β is decreased for data having a very large number of reply requests, the data transmitted from each node decreases, and the data search processing at the node is performed. And data transmission processing is simplified.
[0099]
Also, instead of increasing the value of the recording probability α, the value of the coding rate q / p is increased and the response probability β is reduced, but the data search processing and data transmission processing at each node are simplified. can do.
[0100]
When the coding rate q / p is reduced and the recording probability α is increased, the number of packets to be transmitted can be suppressed. This is effective when p is large enough. Also, by reducing the recording probability α and decreasing the coding rate q / p, it is possible to avoid recording the same packet in a plurality of nodes. This is effective when p is sufficiently small.
[0101]
Also, by increasing the return probability β and decreasing the recording probability α or the coding rate q / p, the capacity of the coded data recorded in the entire distributed storage system can be reduced. Alternatively, when the probability of packet loss at the time of data recording, output, transmission, or the like is a, α, β, q / p such that a × n × α × q × β is sufficiently larger than p. , A sufficient number of data is returned.
[0102]
Also, by estimating the number of unique packets returned from a plurality of nodes mathematically and increasing the recording probability, return probability, or coding rate, the probability of unique packet arrival can be increased. .
[0103]
However, in the distributed storage processing configuration as described above, when data acquisition and reproduction are to be performed, packets storing the same data are received from a plurality of nodes. That is, a plurality of duplicate packets are received and stored in the buffer 273. As a result, there is a possibility that the available storage capacity of the buffer is significantly reduced due to useless data, and a case where effective packets cannot be efficiently received due to buffer overflow or the like occurs.
[0104]
Therefore, the return probability β set by the rule condition setting unit 276 shown in FIG. 11 is adjusted, and the transmission timing of the data request packet (see FIG. 12) is controlled by the phase control unit 278 to execute the control of the buffer 273. For efficient use, control for efficiently receiving valid data and storing it in the buffer 273 is executed.
[0105]
Due to the influence of network routing and the like, the time from transmission of a data request packet (see FIG. 12) as a playback command to arrival of a playback data storage packet (see FIG. 13) generally becomes a mountain-like graph like a normal distribution. . FIG. 15 is a graph showing a change in the number of input packets with respect to time for the playback instruction device when data is controlled to be input to the buffer of the playback instruction device at the same pace.
[0106]
The horizontal axis is time, and the vertical axis is a playback data storage packet (FIG. 13) that the playback instruction device (playback request node) receives from another node in response to transmission of a data request packet (see FIG. 12) as a playback command. ) Is the number of input packets. Each peak indicates a received packet for a different data request. As can be understood from the figure, the number of input packets for each request increases with the passage of time, decreases after forming peaks (peaks of each mountain). The data shown in FIG. 15 is based on the assumption that the above-mentioned return probability β is set to be constant in each request (data request packet). Has a similar transition.
[0107]
Next, transition of a response packet (reproduced data storage packet) for each request in the case where the return probability β set in the data request packet by the reproduction instruction device is changed will be described with reference to FIG.
[0108]
In FIG. 16, (a) shows the change in the number of received packets of the response packet (reproduced data storage packet) when the return probability β is set to a high value, and (b) shows the case when the return probability β is set to a low value. I have.
[0109]
If the return probability β is set to a high value, the processing probability at the node that has received the data request packet, that is, the request data is obtained from its own storage means, and a reproduction data storage packet (see FIG. 13) is generated. 16A, the transmission probability increases, and as shown in FIG. On the other hand, if the reply probability β is set low, the generation and reply probability of the reproduced data storage packet at the node that has received the data request packet is reduced, and as shown in FIG. It will show the transition.
[0110]
On the reproduction instructing device side, the larger the return probability β is, the faster the valid packets that can fill the buffer are obtained. However, for one request, as described above, for example, p blocks are used. In the data coded into q blocks, q × α × n × β blocks corresponding to the setting of the return probability β are returned. As described in the paper RIZZ097, when the number of returned blocks is larger than the number p of blocks before decoding, data can be decoded. Therefore, if the number of returned blocks reaches p, the target data can be decoded. Therefore, packets exceeding p packets are wasted packets. Storing these useless packets in the buffer only reduces the remaining capacity of the buffer that can be stored, and hinders securing a storage area for response packets to new requests.
[0111]
Conversely, when the return probability β is set low as shown in FIG. 16B, the number of packets that are delayed in time and wasted decreases, but the speed of filling the buffer decreases.
[0112]
In view of the above situation, in the reproduction instruction device (reproduction request node) according to the present invention, the phase control unit 278 shown in FIG. 11 controls the transmission timing of the data request packet as the reproduction command, and sets the rule determination condition setting unit 276. , The value of the return probability β set in the data request packet is adjusted. By these controls, efficient use of the buffer and reduction of reception of useless packets are realized.
[0113]
FIG. 17 is a diagram illustrating a control example in the reproduction instruction device (reproduction request node) of the present invention. As in FIGS. 15 and 16, the horizontal axis represents time, and the vertical axis represents the reproduction instruction device (reproduction request node) received from another node as a response to the transmission of a data request packet (see FIG. 12) as a reproduction command. This is the number of input packets of reproduced data storage packets (see FIG. 13) to be reproduced. Each peak indicates a received packet for a different data request.
[0114]
FIG. 17 shows the transition of the number of input packets of reproduced data storage packets corresponding to four different continuous data request requests (a) to (d). When transmitting a continuous data request, the value of the return probability β set in the data request packet transmitted at the beginning of the request is set to a high value, and the setting value of the return probability β is adjusted to decrease as time passes.
[0115]
As described above, the reproduction target data stored in the node has a coding rate q / p obtained by dividing the data into p blocks and subjecting the p blocks to FEC encoding to convert the blocks into q blocks. The rule determination condition setting unit is encoding processing data, and is configured to set, as a reproduction rule determination condition description, a probability value at which data is returned with a return probability β at a node that receives a data reproduction processing request, and is connected to a network. The relationship between the recording probability α specified by the recording instruction device and the number of coded blocks q, the number of reply blocks q × α × n × β that can be calculated from the number n of network connection nodes, and the number of blocks p is as follows: Number of reply blocks: q × α × n × β> Number of blocks: p Return probability: β is used as a reference value, and when the remaining buffer capacity is large, it is set in a data reproduction processing request packet. It sets high value of signal probability beta, when the buffer remaining capacity is small performs control to set a low value of the return probability beta.
[0116]
That is, at first, a high return probability β value is set that allows more wasteful packets to fill the buffer earlier. That is, since the buffer capacity is sufficient, high-speed reception is prioritized. As the buffer free space gradually decreases, a low return probability β is set in order to prevent reception of useless packets. That is, processing is performed in consideration of buffer capacity rather than high-speed reception.
[0117]
However, a decrease in the reception speed causes a decrease in the reproduction efficiency, which is a problem. Therefore, in order to prevent the reception speed from decreasing, the transmission timing of the data request packet from the reproduction instruction device is advanced.
[0118]
For example, in data in which p blocks are coded into q blocks, in a configuration in which q × α × n × β blocks are returned according to the setting of the return probability β, the number of return blocks is If the number of returned blocks is larger than p, the data can be decoded. When the number of returned blocks reaches almost p, the data request is received so that a response packet to the next request is received. Set the packet transmission timing.
[0119]
Times T1, T2, and T3 shown in FIG. 17 indicate reception intervals of response packets corresponding to the data request packets. However, the transmission timing of the data request packet in the reproduction instruction device is also the time T1, T2, and T3 shown in FIG. Is set to the interval corresponding to. That is, the time until the next reproduction command (data request packet) is sent gradually increases.
[0120]
As described above, the rule determination condition setting unit 276 in the reproduction instruction device shown in FIG. 11 sets the initial value high in the process of setting the value of the return probability β set in the reproduction condition rule of the data request packet as the reproduction command. In the subsequent request, control to gradually lower the set value is performed. In addition, the phase control unit 278 executes control to shorten the initial request interval and gradually increase the request transmission interval, such as the times T1, T2, and T3 shown in FIG. 17, for the transmission timing of the data request packet.
[0121]
These controls can be performed more reliably by controlling based on the number of packets arriving at the buffer 273 and the remaining capacity information of the buffer 273.
[0122]
A description will be given of a reproduction processing procedure in which a node that has received a packet autonomously determines whether or not to extract and transmit content based on transmission of a reproduction processing request packet from the reproduction instruction device and executes the processing.
[0123]
FIG. 18 is a diagram illustrating a process of transmitting the data reproduction process request packet shown in FIG. 12 as a data reproduction command from the reproduction instruction device 102 to the plurality of nodes 111 to 115. The reproduction instruction device sets an identifier of the reproduction designation data, for example, a content ID, a GUID, or the like as a request description, and further generates a data reproduction processing request packet shown in FIG. 12 in which a probability value: β is set as a rule determination condition description. Then, the packet is unicast or multicast delivered to each node.
[0124]
FIG. 19 shows whether or not the node receiving the data reproduction request packet shown in FIG. 12 executes the data reproduction processing, that is, reads the designated data from the storage unit of its own node, generates the packet, and transmits the packet according to the reproduction command. A packet in which reproduced data is stored only at the node that has determined autonomously that the processing has been performed, that is, a packet having processed data subjected to the FEC processing and interleaving processing described in FIG. 6 as a payload (see FIG. 13) ) Is generated and transmitted to the reproduction instruction device 112.
[0125]
Referring to FIG. 20, a processing procedure in the node that has received the data reproduction processing request packet shown in FIG. 12 in which the probability value: β is set as the rule determination condition description will be described. First, in step S301, a data reproduction processing request packet is awaited. If it is determined in step S302 that the packet has been received, a random number generation process is executed in step S303. In step S304, the generated random number and the data reproduction processing request Description of playback rule determination condition stored in packet: comparison with probability β, and execution / non-execution of instruction is determined based on the comparison result.
[0126]
For example, if the generated random number> probability β, the designated content stored in its own storage means is extracted, a packet having the extracted data as a payload (see FIG. 13) is generated, and transmitted to the reproduction instruction device. The process is executed, and if the generated random number ≦ probability β, the data reproduction process is not executed.
[0127]
If it is determined that the data reproduction processing request should be executed as a result of the comparison processing based on the random number in step S304, the process proceeds to step S305, and the processing of extracting the processed data stored in the storage unit of the own device (node) is performed. Then, a process of generating a packet with the extracted data as a payload (see FIG. 13) and transmitting the packet to the reproduction instruction device is performed. On the other hand, if it is determined that the data reproduction processing request is not to be executed as the comparison processing result based on the random number, the process proceeds to step S306, and the processing ends without executing the data reproduction processing.
[0128]
As described above, the information processing apparatus that has received the data reproduction processing request (instruction) autonomously determines the execution or non-execution of the instruction based on the comparison between the reproduction rule determination condition description stored in the packet and the random number. , And performs processing according to the determination.
[0129]
Next, with reference to the processing flow of FIG. 21, the information processing apparatus that has received the data reproduction processing request calculates a hash value, and autonomously executes and does not execute the data reproduction processing request based on the hash value. Will be described.
[0130]
First, in step S401, a data reproduction request packet is awaited. If it is determined in step S402 that the packet has been received, a hash value generation process based on data stored in the received packet is executed in step S403, and in step S404, An execution or non-execution of an instruction is determined based on the generated hash value.
[0131]
For example, the information processing apparatus stores a preset value as a preset threshold value in the storage unit, and executes the command if the generated hash value is greater than the set value, and executes the instruction if the generated hash value is smaller than or equal to the set value. Make settings such as execution.
[0132]
The data for which the hash value is to be generated is, for example, an identifier (data ID) of the content data or a part of the data, for example, X bits from the beginning of the data shown in FIG. It is possible to set data as hash target data. For example, MD5 can be applied to the hash value calculation, and a hash value based on MD5 of the data ID or a hash value based on MD5 of the data content is generated as shown in FIG.
[0133]
If it is determined that the data recording processing request should be executed as a result of the determination based on the hash value in step S404, the process proceeds to step S405, and the processing of extracting the processed data stored in the storage unit of the own device (node) is performed. Then, a process of generating a packet with the extracted data as a payload (see FIG. 13) and transmitting the packet to the reproduction instruction device is performed. On the other hand, if it is determined that the data reproduction processing request is not to be executed as the comparison processing result based on the hash value, the process proceeds to step S406, and the processing ends without executing the data reproduction processing.
[0134]
As described above, the information processing apparatus that has received the data reproduction processing request (command) autonomously executes and non-executes the command based on the comparison between the hash value of the data stored in the packet and the set value of each node. Is determined, and processing according to the determination is performed.
[0135]
[5. Data recording / playback processing sequence]
Next, referring to FIGS. 22 and 23, the recording instruction device issues a data recording processing request to the node, the node performs data recording processing, the reproduction instruction device issues a data reproduction processing request to the node, the node extracts data, A series of processing sequences of the transmission processing will be described together.
[0136]
In FIG. 22, the recording instruction apparatus first performs processing of recording target data (contents), that is, FEC processing and interleave processing in step S11. This process is the process described above with reference to FIG.
[0137]
Next, in step S12, the recording instruction device executes a process of generating a data recording process request (command) packet. The data subjected to the interleave processing is stored as a payload, and a packet is generated in which a probability value: α is set as a [rule determination condition description] determined by the rule determination condition setting unit 253 (see FIG. 4).
[0138]
Next, in step S13, the recording instruction device transmits an address to each node configuring the distributed storage system using an address setting corresponding to the transmission node, that is, using unicast or multicast.
[0139]
The processing of the node which has received the data recording processing request (command) packet from the recording instruction device is performed by autonomously determining whether to execute the processing described with reference to FIGS. Processing. FIG. 22 shows the processing of two nodes (nodes 1 and 2). In many other nodes, an autonomous judgment (probability control) is executed and a node that executes data recording processing There are nodes that do not execute the data recording process.
[0140]
The two nodes (nodes 1 and 2) shown in FIG. 22 perform the probability control processing of steps S21 and S31, that is, the generation random number described with reference to FIG. 8 and the recording in the received packet (data recording processing request packet). Probability set as rule determination condition description: processing execution / non-execution determination processing based on comparison with α, or a hash value based on data in a packet described with reference to FIG. Is executed based on the comparison of the above.
[0141]
As a result of the probability control processes in steps S21 and S31, it is concluded that the two nodes (nodes 1 and 2) shown in FIG. 22 execute the data recording process. In steps S22 and S32, the data recording process is performed. Execute The recording target data is the FEC and the interleaved processed data stored in the data recording processing request packet received from the recording instruction device.
[0142]
Next, a reproduction processing sequence will be described with reference to FIG. In step S41, the reproduction instruction device transmits a reproduction processing request (command) packet (see FIG. 12) to each node. This is a packet in which a content ID or the like to be reproduced is stored as a request description and a reproduction rule determination condition description (probability: β) is set. The value of the return probability β as the description of the reproduction rule determination condition is initially set to a relatively high value as described above.
[0143]
Each node that has received the reproduction processing request (command) packet (see FIG. 12), that is, the two nodes (nodes 1 and 2) shown in FIG. 23, refers to the probability control processing of steps S51 and S61, that is, to FIG. The processing execution / non-execution determination processing based on a comparison between the generated random number described above and the probability: β set as the reproduction rule determination condition description in the received packet (data reproduction processing request packet), or FIG. The process execution / non-execution determination process is performed based on a comparison between the hash value based on the in-packet data described with reference to the node setting value.
[0144]
As a result of the probability control process in step S51, the conclusion that the node 1 shown in FIG. 23 executes the data reproduction process is obtained. In step S52, the node 1 stores the data in its own node according to the request description of the reproduction process request (command) packet. The corresponding data is obtained from the unit, and a packet (see FIG. 13) storing the obtained data as a payload is generated and transmitted to the reproduction instruction device in step S53.
[0145]
On the other hand, as a result of the probability control process in step S61, the node 2 shown in FIG. 23 determines that the data reproduction process is not to be executed, and ends the process without executing data extraction, packet generation, and transmission.
[0146]
Although FIG. 23 shows a configuration in which data only from node 1 is transmitted to the reproduction instruction device, data storage packets from nodes 3 to n (not shown) are transmitted to the reproduction instruction device, The device is receiving a large number of packets from a large number of nodes.
[0147]
In step S71, the reproduction instruction device that has received the packet storing the reproduction data applies deinterleaving to the received data block, arranges the data arrangement, further performs FEC decoding on the deinterleaved data, and converts the original data. Restore.
[0148]
The data restoration processing based on the FEC and the deinterleave processing is as described above with reference to FIG. Even if there is a lost packet, the error becomes a random error instead of a burst error in which an error part exists as a large data area by the deinterleave processing, and the original data is restored by the FEC decoding processing.
[0149]
Next, in step S72, the reproduction instruction device sets the value of the return probability β to be set in the reproduction condition rule of the data request packet as the reproduction command to be transmitted next, and sets the transmission timing of the data request packet.
[0150]
In setting the value of the reply probability β, the rule determination condition setting unit 276 shown in FIG. 11 performs control to set the initial value higher as described above and gradually lower the set value in the subsequent request. Also, the phase control unit 278 shortens the initial request interval as in the time T1, T2, and T3 as described earlier with reference to FIG. Execute the control to lengthen. These controls are performed based on the number of packets arriving at the buffer 273 and the remaining capacity information of the buffer 273.
[0151]
In the sequence diagram shown in FIG. 23, the process of setting the return probability β and the phase as the sending timing in step S72 is shown as a sequence in which a response packet to a previous request is received and a deinterleave process to the response packet is performed. However, the process of setting the return probability β and the phase as the sending timing may be performed before receiving a response packet to the previous request. That is, the process of step S72 is executed based on the number of packets arriving at the buffer 273 and the remaining capacity information of the buffer 273, and the next request is transmitted.
[0152]
In step S73, the reproduction instruction device transmits a reproduction processing request (command) packet (see FIG. 12) in which the return probability β set in step S72 is set to each node based on the dispatch timing set in step S72. I do.
[0153]
Each node that has received the reproduction processing request (command) packet (see FIG. 12), that is, the two nodes (nodes 1 and 2) shown in FIG. 23, refers to the probability control processing of steps S81 and S82, that is, to FIG. The processing execution / non-execution determination processing based on a comparison between the generated random number described above and the probability: β set as the reproduction rule determination condition description in the received packet (data reproduction processing request packet), or FIG. The process execution / non-execution determination process is performed based on a comparison between the hash value based on the in-packet data described with reference to the node setting value.
[0154]
As a result of the probability control process in step S82, the conclusion that the node 1 shown in FIG. 23 executes the data reproduction process is obtained. In step S83, the node 1 stores the data in its own node according to the request description of the reproduction process request (instruction) packet. The corresponding data is obtained from the unit, and a data storage packet (see FIG. 13) storing the obtained data as a payload is generated, and is transmitted to the reproduction instruction device in step S84.
[0155]
On the other hand, as a result of the probability control process in step S81, the node 2 illustrated in FIG. 23 determines that the data reproduction process is not to be performed, and ends the process without performing data extraction, packet generation, and transmission.
[0156]
In step S91, the playback instruction device that has received the packet storing the playback data performs deinterleaving on the received data block, arranges the data arrangement, further performs FEC decoding on the deinterleaved data, and converts the original data. Restore.
[0157]
If there is more data to be requested, the reproduction support apparatus sets the return probability β and sets the phase in the same manner as in step S72, and repeats the data request packet transmission process based on the setting.
[0158]
As described above, the reproduction instruction device that executes the data reproduction request controls the value of the return probability β set for the data request packet based on the number of packets arriving at the buffer and the remaining capacity of the buffer, and the transmission timing of the data request packet. . If the remaining buffer capacity is large, the value of the return probability β is set high, and if the remaining buffer capacity is small, control is performed to decrease the value of the return probability β. The phase control for transmitting the next request is executed on condition that the number reaches the number p or on the condition that the number approaches the number p.
[0159]
The return probability β and the phase control process realize efficient use of a buffer and high-speed reception of data.
[0160]
Next, a processing procedure in the reproduction instruction device will be described with reference to FIG. First, in step S501, the reproduction instruction device transmits a reproduction processing request (command) packet (see FIG. 12) to each node. This is a packet in which a content ID or the like to be reproduced is stored as a request description and a reproduction rule determination condition description (probability: β) is set. The value of the return probability β as the description of the reproduction rule determination condition is initially set to a relatively high value as described above.
[0161]
The reproduction instruction device waits for the reproduction data storage packet in step S502, and when reception is confirmed in step S503, in step S504, the reproduction instruction device deinterleaves the received data block, arranges the data arrangement, and further deinterleaves. FEC decoding is performed on the obtained data to restore the original data.
[0162]
Next, in step S505, the reproduction instruction device determines whether or not data reception regarding the reproduction processing content has been completed. If it is determined that data reception has not been completed, the return probability set in the next data request packet in step S506 The value of β and the setting of the packet transmission timing are set based on the number of packets arriving in the buffer and the remaining buffer capacity, and in step S507, after waiting for the set packet transmission timing, the data request packet is transmitted in step S501.
[0163]
[6. Synchronous processing during recording and playback]
Next, a description will be given of a synchronous processing configuration in which data recording processing by a recording instruction device for a plurality of nodes on a network and reproduction processing by a reproduction instruction device are executed in parallel.
[0164]
FIG. 25 shows that the recording instruction device 101 transmits a data recording instruction to the distributed nodes 111 to 115, and each node executes data recording based on the autonomous judgment described above. A configuration example in which the device 102 executes data reproduction based on the transmission of the data request packet for data being recorded is shown.
[0165]
In this parallel processing configuration, if the pace at which the recording instructing device 101 performs data recording and the pace at which the playback instructing device 102 performs data playback are different, a buffer underflow or overflow occurs in the playback instructing device 102, and a playback processing error occurs. May occur. In order to prevent such a reproduction processing error, a timing generation device 311 is configured in the recording instruction device 101, and a timing synchronization device 312 is configured in the reproduction instruction device 102.
[0166]
The timing generation device 311 of the recording instruction device 101 transmits a timing control packet storing transmission timing information of the recording instruction transmitted to each of the nodes 111 to 115 as, for example, time stamp data to the timing synchronization device 312 of the reproduction instruction device 102. I do.
[0167]
The reproduction instruction device 102 extracts the timing control packet received by the timing synchronization device 312, acquires data recording processing timing information, and transmits a reproduction command to each of the nodes 111 to 115 based on the acquired information. It also controls the timing of extracting data from the buffer.
[0168]
That is, the reproduction instruction device 102 transmits a data request packet as a process of acquiring recording target data to the nodes 111 to 115 after a certain time after the timing at which the recording instruction device 101 executes data recording. The time after a certain time is a time in consideration of the time when each node receives the recording command from the recording instruction device 101 and executes the data recording process. By performing the timing control in this manner, each of the nodes 111 to 115 receives a data reproduction request from the reproduction instruction device 102 after performing data recording based on a recording command from the recording instruction device. Thus, the stored data can be taken out and transmitted, and the reproduction instruction device 102 can reliably receive the data and execute the reproduction.
[0169]
FIG. 26 shows a configuration example in which the timing generator 321 is set independently and separately, and the timing synchronizers 322 and 323 are set on the recording instruction device 101 side and the reproduction instruction device 102 side, respectively.
[0170]
The timing generation device 321 transmits a timing control packet storing timing information, for example, as time stamp data to the timing synchronization devices 322 and 323 on the recording instruction device 101 side and the reproduction instruction device 102 side.
[0171]
The recording instruction device 101 and the reproduction instruction device 102 take out the timing control packet received from the timing generation device 321 and control the data recording or reproduction processing timing. That is, under the timing control based on the acquired timing information, a recording command or a reproduction command is transmitted to each of the nodes 111 to 115, and the timing of extracting data from the buffer is controlled. By performing the processing in synchronization with each other, the reproduction processing can be performed in accordance with the progress of the recording processing without causing any delay in the recording processing or the reproduction processing.
[0172]
FIG. 27 shows a sequence diagram in which the recording instruction device and the reproduction instruction device respectively execute the issuance control of the recording instruction and the reproduction instruction based on the timing control information output from the independently provided timing generating device.
[0173]
In step S700, the timing generation device transmits a timing control packet in which a time stamp is set based on its own clock information to the recording instruction device and the reproduction instruction device. After transmitting the timing control packet in step S700, the timing generation device periodically repeats the timing control packet in which the time stamp is set, and transmits it to the recording instruction device and the reproduction instruction device.
[0174]
The recording instruction device executes a process of transmitting a recording command packet to the node based on the time stamp information stored in the timing control packet received from the timing generation device and its own clock information. The processing in steps S701 to S703 is the same as the processing described above with reference to FIG. 22, and a description thereof will be omitted.
[0175]
Hereinafter, the recording instruction device controls the transmission timing of the recording command packet to the node based on the timing control packet continuously received from the timing generation device, and executes the packet transmission process.
[0176]
On the other hand, the reproduction instructing device executes transmission processing of a reproduction instruction packet to the node based on the time stamp information stored in the timing control packet received from the timing generating device and its own clock information. The processing in steps S704 to S708 is the same as the processing described above with reference to FIG. 23, and a description thereof will not be repeated.
[0177]
Hereinafter, the reproduction instruction device controls the transmission timing of the reproduction command packet to the node based on the timing control packet continuously received from the timing generation device, and executes the packet transmission process.
[0178]
As described above, the recording instruction device and the reproduction instruction device can control the transmission timing of the recording instruction and the reproduction instruction based on the common timing control packet received from the timing generation device, and perform the synchronized processing. This makes it possible to perform a reproduction process in accordance with the progress of the recording process without causing any delay in the recording process or the reproduction process.
[0179]
[7. Hardware configuration of information processing device]
Next, an example of a hardware configuration of the information processing device that configures the node, the recording instruction device, the reproduction instruction device, and the timing generation device described in the above embodiment will be described.
[0180]
FIG. 28 illustrates an example of an information processing apparatus including a CPU (Central Processing Unit) as a control unit. The configuration shown in FIG. 28 will be described. A CPU (Central Processing Unit) 901 is a processor that executes various programs. A ROM (Read-Only-Memory) 902 stores a program executed by the CPU 901 or fixed data as operation parameters. A RAM (Random Access Memory) 903 is used as a storage area and a work area for a program executed in the processing of the CPU 901 and parameters that change as appropriate in the program processing.
[0181]
The HDD 904 performs control of the hard disk, and stores and reads various data and programs from and to the hard disk. The encoding / decoding processing unit 905 performs the encoding processing of transmission data such as content and the decoding processing of reception data in accordance with the above-described processing.
[0182]
The bus 921 is configured by a PCI (Peripheral Component Internet / Interface) bus or the like, and enables data transfer with each module and each input / output device via the input / output interface 922.
[0183]
The input unit 911 is an input unit that includes, for example, a keyboard and a pointing device. When the input unit 911 is operated via a keyboard, a mouse, or the like, or when data is received from the communication unit 913, a command is input to the CPU 901 and a program stored in a ROM (Read Only Memory) 902 is stored. Execute The output unit 912 is, for example, a CRT, a liquid crystal display, or the like, and displays various types of information as text or images.
[0184]
The communication unit 913 executes communication between information processing apparatuses or communication processing with other entities, and under the control of the CPU 901, data supplied from each storage unit, or the CPU 901 and the encode / decode processing unit 905. A process for transmitting processed data and receiving data from another entity is executed.
[0185]
The drive 914 is a drive that performs recording and reproduction of a removable recording medium 915 such as a flexible disk, a CD-ROM (Compact Disc Only Memory), an MO (Magneto optical) disk, a DVD (Digital Versatile Disc), a magnetic disk, and a semiconductor memory. Yes, it executes the reproduction of the program or data from each removable recording medium 915 and the storage of the program or data in the removable recording medium 915.
[0186]
When a program or data recorded in each storage medium is read and executed or processed in the CPU 901, the read program and data are supplied to, for example, the connected RAM 903 via the input / output interface 922 and the bus 921.
[0187]
The processes described in the specification can be executed by hardware, software, or a combination of both. When a series of processing is executed by software, it is possible to execute various functions by installing a computer in which a program constituting the software is incorporated in dedicated hardware or various programs, For example, the program may be stored in a program readable recording medium such as a flexible disk or a CD-ROM and provided to a general-purpose personal computer, or the program may be downloaded via a communication network such as the Internet. .
[0188]
Specifically, the program can be recorded in a hard disk or a ROM (Read Only Memory) as a recording medium in advance. Alternatively, the program is temporarily or permanently stored on a removable recording medium such as a flexible disk, a CD-ROM (Compact Disc Only Memory), an MO (Magneto optical) disk, a DVD (Digital Versatile Disc), a magnetic disk, or a semiconductor memory. It can be stored (recorded). Such a removable recording medium can be provided as so-called package software.
[0189]
In addition to installing the program on the computer from the above-described removable recording medium, the program can be wirelessly transferred from the download site to the computer, or transferred to the computer via a network such as a LAN (Local Area Network) or the Internet by wire. The computer can receive the program transferred in this way and install it on a recording medium such as a built-in hard disk.
[0190]
As the information processing device constituting the node, the recording instruction device, and the reproduction instruction device, a camcorder, a personal video recorder, a home gateway, and the like can be considered. Alternatively, the apparatus may have another configuration as long as it has a network interface for transmitting and receiving data.
[0191]
Further, although the recording probability α and the reply probability β are recorded in the packet, the recording probability α and the reply probability β may be recorded in any recording device or packet, and each node may refer to the values. . When the read tornado coding method is used as the FEC coding, the interleaving process can be omitted.
[0192]
The various processes described in the specification may be executed not only in chronological order according to the description but also in parallel or individually according to the processing capability of the device that executes the processes or as necessary. Further, in this specification, a system is a logical set configuration of a plurality of devices, and is not limited to a device having each configuration in the same housing.
[0193]
The present invention has been described in detail with reference to the specific embodiments. However, it is obvious that those skilled in the art can modify or substitute the embodiments without departing from the spirit of the present invention. That is, the present invention has been disclosed by way of example, and should not be construed as limiting. In order to determine the gist of the present invention, the claims described at the beginning should be considered.
[0194]
【The invention's effect】
As described above, according to the configuration of the present invention, in the reproduction instruction apparatus that transmits a data reproduction processing request to a node connected to the network, the receiving node of the reproduction processing request packet performs processing in accordance with the processing request. Is changed according to the packet transmission sequence, and the transmission timing of the data reproduction processing request packet is controlled. Set a high return probability β value that allows more packets, and when the buffer free space decreases, execute processing to set a low return probability β to prevent the reception of useless packets, and transmit the packet. By adjusting the interval, it is possible to perform data reproduction that achieves efficient use of the buffer and high-speed reception. .
[0195]
Further, according to the configuration of the present invention, the recording probability α specified by the recording instruction device connected to the network, the number of coded blocks q, and the number of return blocks q × α that can be calculated from the number of network connection nodes n When the relationship between × n × β and the number of blocks p is the number of reply blocks: q × α × n × β> the number of blocks: p, the return probability: β is used as a reference value, and when the remaining buffer capacity is large, The value of the reply probability β set in the data reproduction processing request packet is set to a high value, and if the remaining buffer capacity is small, the control is performed to set the value of the reply probability β to a low value. As a result, the buffer use efficiency is improved, and high-speed reception is realized.
[0196]
Further, according to the configuration of the present invention, it becomes possible for the reproduction instruction device to control the transmission timing of the reproduction command based on the timing control packet received from the timing generation device, and execute the recording process and the reproduction process in parallel. In this case, the reproduction process can be performed in accordance with the progress of the recording process without causing a recording delay or a reproduction process delay.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a configuration example of a distributed storage system to which the present invention can be applied.
FIG. 2 is a diagram illustrating an example of a network configuration to which the present invention can be applied.
FIG. 3 is a diagram illustrating a configuration of an information processing apparatus (node) connected to a network.
FIG. 4 is a diagram illustrating a configuration of a recording instruction device.
FIG. 5 is a diagram illustrating FEC encoding processing and interleaving processing of data executed in the recording instruction device.
FIG. 6 is a diagram illustrating a configuration of a data recording processing request packet transmitted from the recording instruction device.
FIG. 7 is a diagram illustrating transmission processing of a data recording processing request packet from a recording instruction device to a node.
FIG. 8 is a flowchart illustrating a processing procedure including an autonomous processing execution determination process in a node that has received a data recording processing request packet from the recording instruction device.
FIG. 9 is a flowchart illustrating a processing procedure including an autonomous processing execution determination processing in a node that has received a data recording processing request packet from the recording instruction device.
FIG. 10 is a diagram illustrating an example of a hash value generated in an autonomous process execution determination in a node that has received a data recording process request packet from a recording instruction device.
FIG. 11 is a diagram illustrating a configuration of a reproduction instruction device.
FIG. 12 is a diagram illustrating a configuration of a data reproduction processing request packet transmitted from the reproduction instruction device.
FIG. 13 is a diagram illustrating a configuration of a packet transmitted from the node that has received the data reproduction processing request packet to the reproduction instruction device.
FIG. 14 is a diagram for describing data deinterleaving processing and FEC decoding processing executed in the reproduction instruction device.
FIG. 15 is a diagram illustrating an example of transition data of the number of packets received by the reproduction instruction device.
FIG. 16 is a diagram illustrating the correspondence between the transition of the number of packets received by the reproduction instruction device and the set value of the return probability β.
FIG. 17 is a diagram showing an example of transition data of the number of received packets based on the return probability and the phase control of the reproduction instruction device of the present invention.
FIG. 18 is a diagram illustrating transmission processing of a data reproduction processing request packet from a reproduction instruction device to a node.
FIG. 19 is a diagram illustrating transmission processing of a data storage packet from a node that has received a data reproduction processing request packet from the reproduction instruction device.
FIG. 20 is a flowchart illustrating a processing procedure including an autonomous processing execution determination processing in a node that has received a data reproduction processing request packet from the reproduction instruction device.
FIG. 21 is a flowchart illustrating a processing procedure including an autonomous processing execution determination process in a node that has received a data reproduction processing request packet from a reproduction instruction device.
FIG. 22 is a sequence diagram illustrating a data recording process request from a recording instruction device and a data recording process in a node.
FIG. 23 is a sequence diagram illustrating a data reproduction processing request from a reproduction instruction device, a data extraction and transmission process in a node, and a reproduction process in a reproduction instruction device.
FIG. 24 is a flowchart illustrating a processing procedure in the playback instruction device.
FIG. 25 is a diagram illustrating a synchronous processing configuration of a recording / reproducing process based on a timing generation device and a synchronization device.
FIG. 26 is a diagram illustrating a synchronous processing configuration of a recording / reproducing process based on a timing generator and a synchronizer provided independently.
FIG. 27 is a diagram illustrating a recording / reproducing processing sequence based on timing control information from a timing generator.
FIG. 28 is a diagram illustrating an example of a hardware configuration of an information processing apparatus according to the present invention.
[Explanation of symbols]
100 networks
101 Recording instruction device
102 Playback instruction device
111-115 nodes
110 network
121-126 Information processing device
200 Information processing device (node)
201 Rule judgment processing unit
202 Data processing unit
203 Packet processing unit
204 Data transmission / reception unit
250 Recording instruction device
251 data input section
252 Data processing unit
253 Rule judgment condition setting part
254 packet generator
255 network interface
270 Playback instruction device
271 Network Interface
272 Packet processing unit
273 buffer
274 Data restoration processing unit
275 Data processing unit
276 Rule judgment condition setting section
277 Data request packet generator
278 Phase control unit
311 Timing generator
312 Timing synchronizer
321 Timing generator
322,323 timing synchronizer
901 CPU
902 ROM
903 RAM
904 HDD
905 Encoding / decoding processing unit
911 input section
912 output unit
913 Communication unit
914 drive
915 Removable storage medium
921 bus
922 I / O interface

Claims (15)

ネットワーク接続されたノードに対してデータ再生処理要求を送信する再生指示装置としての情報処理装置であり、
データ再生処理要求パケットを生成するパケット生成部と、
前記データ再生処理要求パケットの受信ノードにおいて、処理要求に従った処理を実行するか否かの判定処理に適用する返信確率βの値を前記データ再生処理要求パケット送信シーケンスに応じて変更設定するルール判断条件設定部と、
前記データ再生処理要求パケットの送信タイミングを制御する位相制御部と、前記パケット生成部において生成したパケットを送信するネットワークインタフェース部と、
前記データ再生処理要求パケットに対する応答としてノードから受信するパケット格納データを記憶するバッファと、 を有することを特徴とする情報処理装置。
An information processing device as a reproduction instruction device for transmitting a data reproduction processing request to a node connected to a network,
A packet generation unit that generates a data reproduction processing request packet;
A rule for changing and setting the value of the return probability β applied to the process of determining whether or not to execute the process according to the processing request at the receiving node of the data reproduction process request packet in accordance with the data reproduction process request packet transmission sequence A judgment condition setting unit;
A phase control unit that controls a transmission timing of the data reproduction processing request packet, a network interface unit that transmits the packet generated by the packet generation unit,
A buffer for storing packet storage data received from a node as a response to the data reproduction processing request packet.
前記ルール判断条件設定部は、
連続して送信するデータ再生処理要求パケット送信シーケンスにおいて、前記返信確率βの値を次第に低下させた値として設定する処理を実行する構成を有することを特徴とする請求項1に記載の情報処理装置。
The rule determination condition setting unit,
2. The information processing apparatus according to claim 1, wherein in the data reproduction processing request packet transmission sequence to be continuously transmitted, processing is performed to set the value of the return probability β as a gradually reduced value. .
前記位相制御部は、
連続して送信するデータ再生処理要求パケット送信シーケンスにおいて、データ再生処理要求パケット送信間隔を次第に長く設定する制御処理を実行する構成を有することを特徴とする請求項1に記載の情報処理装置。
The phase control unit,
2. The information processing apparatus according to claim 1, wherein a control process for setting a data reproduction process request packet transmission interval to be gradually longer in a data reproduction process request packet transmission sequence to be continuously transmitted is performed.
前記ノードに格納された再生対象データは、データをp個のブロック数に分割し、p個のブロックにFEC符号化を施してq個のブロックに変換した符号化率q/pの符号化処理データであり、
前記ルール判断条件設定部は、
前記データ再生処理要求を受信するノードにおいて返信確率βでデータを返信させる確率値を再生ルール判断条件記述として設定する構成であり、前記ネットワークに接続された記録指示装置から指定される記録確率α、および前記符号化ブロック数qと、ネットワーク接続ノード数nによって算出可能な返信ブロック数q×α×n×βと、前記ブロック数pとの関係が、
返信ブロック数:q×α×n×β>ブロック数:p
となる返信確率:βを基準値とし、前記バッファ残容量が大きい場合は、前記データ再生処理要求パケットに設定する返信確率βの値を高く設定し、バッファ残容量が小さい場合は返信確率βの値を低く設定する制御を行う構成であることを特徴とする請求項1に記載の情報処理装置。
The data to be reproduced stored in the node is obtained by dividing the data into p blocks and subjecting the p blocks to FEC coding to convert the blocks into q blocks, thereby performing an encoding process at a coding rate q / p. Data,
The rule determination condition setting unit,
A configuration in which a probability value for returning data with a return probability β at a node receiving the data reproduction processing request is set as a reproduction rule determination condition description, and a recording probability α specified from a recording instruction device connected to the network, And the relationship between the number of coded blocks q, the number of reply blocks q × α × n × β that can be calculated from the number n of network connection nodes, and the number of blocks p,
Number of reply blocks: q × α × n × β> Number of blocks: p
Return probability: β is used as a reference value. When the remaining buffer capacity is large, the value of the return probability β set in the data reproduction processing request packet is set high, and when the remaining buffer capacity is small, the return probability β is set. The information processing apparatus according to claim 1, wherein the information processing apparatus is configured to perform control for setting a value to be low.
前記位相制御部は、
前リクエストとしてのデータ再生処理要求に対する受信応答パケットが、復号処理可能なパケット数である前記値pに達したことを条件として、あるいは前記値pに近い数となったことを条件として、次のリクエストを送信する位相制御を実行する構成であることを特徴とする請求項4に記載の情報処理装置。
The phase control unit,
On condition that the reception response packet to the data reproduction processing request as the previous request has reached the value p, which is the number of packets that can be decoded, or on condition that the number is close to the value p, the following The information processing apparatus according to claim 4, wherein the information processing apparatus is configured to execute phase control for transmitting a request.
前記情報処理装置は、さらに、
デインタリーブ処理およびFEC復号処理を実行するデータ復元処理部を有し、
前記データ復元処理部は、前記データ再生処理要求を受信したノードから受信するパケットから抽出される再生対象データについてのデインタリーブ処理およびFEC復号処理を実行し、データ復元を行なう構成であることを特徴とする請求項1に記載の情報処理装置。
The information processing device further includes:
A data restoration processing unit that performs deinterleaving processing and FEC decoding processing;
The data restoration processing unit is configured to execute deinterleaving processing and FEC decoding processing on reproduction target data extracted from a packet received from a node that has received the data reproduction processing request, and perform data restoration. The information processing apparatus according to claim 1.
前記情報処理装置は、さらに、
外部からの同期制御情報を受信し、前記データ再生処理要求パケットの送信タイミングを制御するタイミング同期処理部を有する構成であることを特徴とする請求項1に記載の情報処理装置。
The information processing device further includes:
The information processing apparatus according to claim 1, further comprising a timing synchronization processing unit that receives synchronization control information from outside and controls transmission timing of the data reproduction processing request packet.
ネットワーク接続されたノードに対するデータ再生処理要求の送信に基づくデータ再生処理制御を実行する情報処理方法であり、
データ再生処理要求パケットの受信ノードにおいて、処理要求に従った処理を実行するか否かの判定処理に適用する返信確率βの値を前記データ再生処理要求パケット送信シーケンスに応じて変更設定するルール判断条件設定ステップと、
データ再生処理要求パケットを生成するパケット生成ステップと、
前記データ再生処理要求パケットの送信タイミングを制御する位相制御ステップと、
を有することを特徴とする情報処理方法。
An information processing method for performing data reproduction processing control based on transmission of a data reproduction processing request to a node connected to a network,
Rule determination for changing the value of the return probability β applied to the process of determining whether or not to execute the process according to the processing request at the receiving node of the data reproduction process request packet in accordance with the data reproduction process request packet transmission sequence A condition setting step;
A packet generation step of generating a data reproduction processing request packet;
A phase control step of controlling a transmission timing of the data reproduction processing request packet,
An information processing method comprising:
前記ルール判断条件設定ステップは、
連続して送信するデータ再生処理要求パケット送信シーケンスにおいて、前記返信確率βの値を次第に低下させた値として設定する処理を実行することを特徴とする請求項8に記載の情報処理方法。
The rule determination condition setting step includes:
9. The information processing method according to claim 8, wherein, in a data reproduction processing request packet transmission sequence to be continuously transmitted, a process of setting the value of the return probability β as a gradually reduced value is executed.
前記位相制御ステップは、
連続して送信するデータ再生処理要求パケット送信シーケンスにおいて、データ再生処理要求パケット送信間隔を次第に長く設定する制御処理を実行することを特徴とする請求項8に記載の情報処理方法。
The phase control step includes:
9. The information processing method according to claim 8, wherein in the data reproduction processing request packet transmission sequence to be continuously transmitted, control processing for setting a data reproduction processing request packet transmission interval to be gradually longer is executed.
前記ノードに格納された再生対象データは、データをp個のブロック数に分割し、p個のブロックにFEC符号化を施してq個のブロックに変換した符号化率q/pの符号化処理データであり、
前記ルール判断条件設定ステップは、
前記データ再生処理要求を受信するノードにおいて返信確率βでデータを返信させる確率値を再生ルール判断条件記述として設定し、前記ネットワークに接続された記録指示装置から指定される記録確率α、および前記符号化ブロック数qと、ネットワーク接続ノード数nによって算出可能な返信ブロック数q×α×n×βと、前記ブロック数pとの関係が、
返信ブロック数:q×α×n×β>ブロック数:p
となる返信確率:βを基準値とし、前記バッファ残容量が大きい場合は、前記データ再生処理要求パケットに設定する返信確率βの値を高く設定し、バッファ残容量が小さい場合は返信確率βの値を低く設定する制御を行うことを特徴とする請求項8に記載の情報処理方法。
The data to be reproduced stored in the node is obtained by dividing the data into p blocks and subjecting the p blocks to FEC coding to convert the blocks into q blocks, thereby performing an encoding process at a coding rate q / p. Data,
The rule determination condition setting step includes:
A probability value for returning data with a return probability β at a node receiving the data reproduction processing request is set as a reproduction rule determination condition description, and a recording probability α specified by a recording instruction device connected to the network and the code The relationship between the number of coded blocks q, the number of reply blocks q × α × n × β that can be calculated from the number of network connection nodes n, and the number of blocks p is as follows:
Number of reply blocks: q × α × n × β> Number of blocks: p
Return probability: β is used as a reference value. When the remaining buffer capacity is large, the value of the return probability β set in the data reproduction processing request packet is set high, and when the remaining buffer capacity is small, the return probability β is set. 9. The information processing method according to claim 8, wherein control is performed to set the value low.
前記位相制御ステップは、
前リクエストとしてのデータ再生処理要求に対する受信応答パケットが、復号処理可能なパケット数である前記値pに達したことを条件として、あるいは前記値pに近い数となったことを条件として、次のリクエストを送信する位相制御を実行することを特徴とする請求項11に記載の情報処理方法。
The phase control step includes:
On the condition that the reception response packet to the data reproduction processing request as the previous request has reached the value p, which is the number of packets that can be decoded, or on condition that the number is close to the value p, the following The information processing method according to claim 11, wherein phase control for transmitting the request is performed.
前記情報処理方法は、さらに、
デインタリーブ処理およびFEC復号処理を実行するデータ復元処理ステップを有し、
前記データ復元処理ステップは、前記データ再生処理要求を受信したノードから受信するパケットから抽出される再生対象データについてのデインタリーブ処理およびFEC復号処理を実行し、データ復元を行なうことを特徴とする請求項8に記載の情報処理方法。
The information processing method further includes:
Having a data restoration processing step of performing deinterleaving processing and FEC decoding processing;
The data restoration processing step performs data restoration by executing deinterleaving processing and FEC decoding processing on reproduction target data extracted from a packet received from a node that has received the data reproduction processing request. Item 9. The information processing method according to Item 8.
前記情報処理方法は、さらに、
外部からの同期制御情報を受信し、前記データ再生処理要求パケットの送信タイミングを制御するタイミング同期処理ステップを有することを特徴とする請求項8に記載の情報処理方法。
The information processing method further includes:
9. The information processing method according to claim 8, further comprising a timing synchronization processing step of receiving synchronization control information from outside and controlling transmission timing of the data reproduction processing request packet.
ネットワーク接続されたノードに対するデータ再生処理要求の送信に基づくデータ再生制御処理を実行するコンピュータ・プログラムであり、
データ再生処理要求パケットの受信ノードにおいて、処理要求に従った処理を実行するか否かの判定処理に適用する返信確率βの値を前記データ再生処理要求パケット送信シーケンスに応じて変更設定するルール判断条件設定ステップと、
データ再生処理要求パケットを生成するパケット生成ステップと、
前記データ再生処理要求パケットの送信タイミングを制御する位相制御ステップと、
を有することを特徴とするコンピュータ・プログラム。
A computer program for performing data reproduction control processing based on transmission of a data reproduction processing request to a node connected to a network,
Rule determination for changing the value of the return probability β applied to the process of determining whether or not to execute the process according to the processing request at the receiving node of the data reproduction process request packet in accordance with the data reproduction process request packet transmission sequence A condition setting step;
A packet generation step of generating a data reproduction processing request packet;
A phase control step of controlling a transmission timing of the data reproduction processing request packet,
A computer program comprising:
JP2003004680A 2003-01-10 2003-01-10 Information processing apparatus and information processing method, and computer program Pending JP2004221756A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003004680A JP2004221756A (en) 2003-01-10 2003-01-10 Information processing apparatus and information processing method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003004680A JP2004221756A (en) 2003-01-10 2003-01-10 Information processing apparatus and information processing method, and computer program

Publications (1)

Publication Number Publication Date
JP2004221756A true JP2004221756A (en) 2004-08-05

Family

ID=32895594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003004680A Pending JP2004221756A (en) 2003-01-10 2003-01-10 Information processing apparatus and information processing method, and computer program

Country Status (1)

Country Link
JP (1) JP2004221756A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008537258A (en) * 2005-04-20 2008-09-11 マイクロソフト コーポレーション System and method for distributed and decentralized data storage and retrieval
JP2013102527A (en) * 2006-11-09 2013-05-23 Microsoft Corp Consistency in federation infrastructure
JPWO2014156034A1 (en) * 2013-03-26 2017-02-16 パナソニック株式会社 Server, router, receiving terminal and processing method
US9647917B2 (en) 2004-10-22 2017-05-09 Microsoft Technology Licensing, Llc Maintaining consistency within a federation infrastructure

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9647917B2 (en) 2004-10-22 2017-05-09 Microsoft Technology Licensing, Llc Maintaining consistency within a federation infrastructure
JP2008537258A (en) * 2005-04-20 2008-09-11 マイクロソフト コーポレーション System and method for distributed and decentralized data storage and retrieval
JP4913128B2 (en) * 2005-04-20 2012-04-11 マイクロソフト コーポレーション System and method for distributed and decentralized data storage and retrieval
US8266237B2 (en) 2005-04-20 2012-09-11 Microsoft Corporation Systems and methods for providing distributed, decentralized data storage and retrieval
US8549095B2 (en) 2005-04-20 2013-10-01 Microsoft Corporation Distributed decentralized data storage and retrieval
JP2013102527A (en) * 2006-11-09 2013-05-23 Microsoft Corp Consistency in federation infrastructure
US8990434B2 (en) 2006-11-09 2015-03-24 Microsoft Technology Licensing, Llc Data consistency within a federation infrastructure
JPWO2014156034A1 (en) * 2013-03-26 2017-02-16 パナソニック株式会社 Server, router, receiving terminal and processing method

Similar Documents

Publication Publication Date Title
JP4676833B2 (en) System and method for distributed streaming of scalable media
JP4172259B2 (en) Information processing apparatus and method, and computer program
JP4920220B2 (en) Receiver-driven system and method in peer-to-peer network
JP5058468B2 (en) Method for erasure resistant encoding of streaming media, media having computer-executable instructions for performing the method, and system
US11477262B2 (en) Requesting multiple chunks from a network node on the basis of a single request message
CN104662865B (en) Mixed type HTTP and UDP content distribution
US8819259B2 (en) Fast retrieval and progressive retransmission of content
US8943215B2 (en) Distributed smooth streaming utilizing dynamic manifests
KR101009326B1 (en) Information processing device, information processing method, and recording medium
KR20030056701A (en) Apparatus and method for providing multimedia streaming service by using point-to-point connection
KR102110421B1 (en) System and method for delivering an audio-visual content to a client device
KR20080106187A (en) Reliable, efficient peer-to-peer storage
JP2010504652A (en) Method and system for managing a video network
WO2014063457A1 (en) Systems and methods for data representation and transportation
JP2004531824A (en) File transmission method in network environment
WO2012011473A1 (en) Transmitting device, transmitting method, receiving device, receiving method, communication system, data structure, program, and storage medium
JP2004221756A (en) Information processing apparatus and information processing method, and computer program
JP2004220183A (en) Information processor and information processing method, and computer program
JP2023554289A (en) Multi-source media distribution system and method
Lou et al. Quality of service in peer-to-peer iptv networks
JP2008187339A (en) Communication apparatus and program for content distribution system