(57)【要約】  ストリーミングデータのリアルタイムレコーディングをサポートすることができる分散型ストレージシステムが提供される。それゆえ、ＭＸＦファイルに基づいてデータストリームが少なくとも第１のＭＸＦファイル（１）及び第２のＭＸＦファイル（２）の中にパッケージングされる。第１のコネクションデータ（１N）が第１のＭＸＦファイル（１）の中に挿入され、この第１のコネクションデータ（１N）は第２のＭＸＦファイル（２）を指示する。さらに、第２のコネクションデータ（２L）が第２のＭＸＦファイル（２）の中に挿入され、この第２のコネクションデータ（２L）は第１のＭＸＦファイル（１）を指示する。メタデータとしてＭＸＦファイルに挿入されたこれらのコネクションデータはシームレスなリアルタイムレコーディングとストリーム可能なデータプレイバックの両方を可能にする。
2008500608.tif 000002
【特許請求の範囲】
【請求項１】
分散型ストレージシステムにおいてデータストリームをレコーディングするための方法において、
前記データストリームを少なくとも第１のＭＸＦファイル（１）及び第２のＭＸＦファイル（２）の中にパッケージングし、
第１のコネクションデータ（１N）を前記第１のＭＸＦファイル（１）の中に挿入し、前記第１のコネクションデータ（１N）は前記第２のＭＸＦファイル（２）を指示し、
第２のコネクションデータ（２L）を前記第２のＭＸＦファイル（２）の中に挿入し、前記第２のコネクションデータ（２L）は前記第１のＭＸＦファイル（１）を指示することを特徴とする、分散型ストレージシステムにおいてデータストリームをレコーディングするための方法。
【請求項２】
第３のコネクションデータ（２N）を前記第２のＭＸＦファイル（２）の中に挿入するステップを含み、前記第３のコネクションデータ（２N）は第３のＭＸＦファイル（３）を指示する、請求項１記載の方法。
【請求項３】
コネクションデータを挿入する１つのステップ又は複数のステップは個々のＭＸＦファイルのレコーディングをターミネートする間に実施される、請求項１又は２記載の方法。
【請求項４】
データストリームは特定個数のＭＸＦファイルに分割され、これらのＭＸＦファイルの全てを指示するコネクションデータは前記特定個数のＭＸＦファイルの各々の中に格納される、請求項１〜３のうちの１項記載の方法。
【請求項５】
コネクションデータはＭＸＦファイルのヘッダ及び／又はフッタデータの中に挿入される、請求項１〜４のうちの１項記載の方法。
【請求項６】
分散型ストレージシステムにデータストリームをレコーディングするための装置において、
前記データストリームを少なくとも第１のＭＸＦファイル（１）及び第２のＭＸＦファイル（２）の中にパッケージングするためのパッケージング手段を有し、
第１のコネクションデータ（１N）を前記第１のＭＸＦファイル（１）の中に挿入し、前記第１のコネクションデータ（１N）は前記第２のＭＸＦファイル（２）を指示し、第２のコネクションデータ（２L）を前記第２のＭＸＦファイル（２）の中に挿入し、前記第２のコネクションデータ（２L）は前記第１のＭＸＦファイル（１）を指示するためのデータ処理手段を有することを特徴とする、分散型ストレージシステムにデータストリームをレコーディングするための装置。
【請求項７】
前記データ処理手段は、第３のコネクションデータ（２N）を前記第２のＭＸＦファイル（２）の中に挿入し、前記第３のコネクションデータ（２N）は第３のＭＸＦファイル（３）を指示する、請求項６記載の装置。
【請求項８】
パッケージング手段はデータストリームを特定個数のＭＸＦファイルに分割することを可能にし、全てのこれらのＭＸＦファイルを指示するコネクションデータは前記特定個数のＭＸＦファイルの各々の中に格納可能である、請求項６又は７記載の装置。
【請求項９】
データ処理手段はコネクションデータをＭＸＦファイルのヘッダ及び／又はフッタデータの中に挿入する、請求項６〜８のうちの１項記載の装置。
【請求項１０】
分散型ストレージシステムにレコーディングされたデータストリームをプレイバックするための方法において、
第１のＭＸＦファイル（１）からコネクションデータ（１N）を読み出し、該コネクションデータ（１N）は第２のＭＸＦファイル（２）を指示し、
前記コネクションデータ（１N）に基づいてＭＸＦファイルチェーンを形成し、
該ＭＸＦファイルチェーンに従って前記第１のＭＸＦファイル（１）及び前記第２のＭＸＦファイル（２）のエッセンスデータをプレイバックすることを特徴とする、分散型ストレージシステムにレコーディングされたデータストリームをプレイバックすることを特徴とする、分散型ストレージシステムにレコーディングされたデータストリームをプレイバックするための方法。
【請求項１１】
コネクションデータを読み出すステップは前記ＭＸＦファイルチェーンの各ＭＸＦファイルに対して繰り返される、請求項１０記載の方法。
【請求項１２】
コネクションデータを読み出すステップは１つのＭＸＦファイルチェーンに対して一度だけ実施され、前記ＭＸＦファイルチェーンの全てのＭＸＦファイルを指示するコネクションデータは前記ＭＸＦファイルチェーンの前記ＭＸＦファイルの各々に含まれる、請求項１０記載の方法。
【請求項１３】
分散型ストレージシステムにレコーディングされたデータストリームをプレイバックするための装置において、
第１のＭＸＦファイル（１）からコネクションデータ（１N）を読み出すための読み出し手段を有し、該コネクションデータ（１N）は第２のＭＸＦファイル（２）を指示し、
前記コネクションデータ（１N）に基づいてＭＸＦファイルチェーンを形成するためのデータ処理手段を有し、
前記ＭＸＦファイルチェーンに従って前記第１のＭＸＦファイル（１）及び前記第２のＭＸＦファイル（２）のエッセンスデータをプレイバックするためのプレイング手段を有することを特徴とする、分散型ストレージシステムにレコーディングされたデータストリームをプレイバックするための装置。
【請求項１４】
前記読み出し手段は前記ＭＸＦファイルチェーンの各ＭＸＦファイルからコネクションデータを読み出すことができる、請求項１３記載の装置。
【請求項１５】
前記読み出し手段は前記ＭＸＦファイルチェーンの１つのＭＦＸファイルからＭＸＦファイルチェーンの全てのコネクションデータを読み出すことができる、請求項１３記載の装置。
【請求項１６】
コネクションデータはタスクデータ、属性データ及び参照データを含み、前記タスクデータはタスクＩＤ値を含み、前記属性データは「次の」又は「前の」のような状態値を含み、前記参照データは別のＭＸＦファイルのＩＤ値を含む、請求項１〜１５のうちの１項記載の方法又は装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は分散型ストレージシステムにおけるデータストリームをレコーディングするための方法又は装置に関する。さらに、本発明は分散型ストレージシステムにレコーディングされたこのようなデータストリームをプレイバックするための方法又は装置に関する。
【０００２】
背景
ピアツーピア（Ｐ２Ｐ）テクノロジに基づいて、分散型ストレージシステムは、重要なデータを異なるピアに複製すること又はラージサイズデータを分割しこれらのデータを異なるピアに共有又は格納することのようなデータの格納のために接続されたピア、すなわちノードの全ストレージキャパシティを利用することができる。
【０００３】
本明細書は特別なマテリアルエクスチェンジフォーマット（ＭＸＦ）に関する。ＭＸＦは関連データ及びメタデータを有するオーディオビジュアルマテリアルの交換用のオープンファイルフォーマットである。それはサーバ、ワークステーション及び他のコンテンツクリエーティングデバイスの間のファイルベースのインターオペラビリティを改善することを目的としてデザイン及びインプリメントされたものである。
【０００４】
ベーシックＭＸＦ構造
ＭＸＦ規格仕様書から抜粋された図１に示されているように、ＭＸＦフォーマットはファイルヘッダ、ファイルボディ及びファイルフッタから成る。
【０００５】
ファイルヘッダはヘッダメタデータを含み、このヘッダメタデータはデコーダコンプライアンスの早期決定のためのラベルを含むファイル全体に関する情報を提供する。
【０００６】
ファイルボディはエッセンスコンテナに格納された画像、音声及びデータエッセンスを有する。異なるトラックからのエッセンスコンテナがインターリーブされるか又は図２に示されたように分離される。ファイルボディのボディパーティションパックはオプショナルにヘッダメタデータの反復を含むことができる。
【０００７】
ファイルフッタはファイルをターミネートし、オプショナルにヘッダメタデータを含みうる。ファイルフッタはさらに（ファイルの持続時間のような）ファイルヘッダ書き込み時には利用できない情報などを含みうる。ある特殊なケースでは、ファイルフッタは省略されうる。
【０００８】
ファイルヘッダは容易に分離してパーシングのためにマイクロプロセッサに送られるように十分に小さくデザインされる。ファイルの大部分は通常ファイルボディであり、これは画像、音声及びデータエッセンスである。ファイルフッタは、ファイルの終端部にヘッダメタデータを入れるためのキャパシティを提供する。理由は、ＭＸＦファイルにストリームをレコーディングすることのような特定の適用事例では、レコーディングが終了するまでは分からないヘッダメタデータが存在するからである。ファイルフッタはこれを行うためのメカニズムを提供するのである。それはまたファイルがターミネートしたことを明瞭に指示する。
【０００９】
ベーシックＭＸＦ構造はＭＸＦファイル全体に亘って埋め込まれるメタデータをサポートする。
【００１０】
ストリームインターフェースとのＭＸＦインターオペレーション
ＭＸＦファイルはしばしばストリーミング環境において処理される。これはビデオテープ、データテープへの及びからのストリーミング及び単方向性リンク又はナローバンドリターンチャネルを有するリンクを介する伝送を含む。
【００１１】
ソース又はリンク又はデスティネーション（destination）がストリーミングモードでしか動作していない場合には、シーケンシャルライティング（sequential writing）が必要である。ランダムアクセスライティング（random access writing）は例えばダウンストリームアクセスパフォーマンスを最適化するためのデータ転送の前又は後に許可されうる。
【００１２】
ＭＸＦのオペレーショナルパターンはストリーミングのために作成されたファイルを指示する特別修飾子ビット（special qualifier bit）を有する。
【００１３】
ＭＸＦファイルは、ＭＰＥＧ２システム及びエレメンタリストリーム、ＡＥＳ３データストリーム（Audio Engineering Society Standard）及びデジタルビデオ（ＤＶ）ＤＩＦパケットストリームのような規格化されたフォーマットから直接的に作成されうる。これらのフォーマットは、ＳＭＰＴＥ  ２５９Ｍ（Serial Digital Interface, SDI）、ＳＭＰＴＥ  ３０５Ｍ（Serial Digital Transport Interface, SDTI）、ＳＭＰＴＥ  ２９２Ｍ（High-Definition Serial Digital Interface, HD-SDI）のようないくつかのリアルタイムインターフェースのうちの１つから又はＩＥＥＥ−１３９４、ＡＴＭ、ＩＥＥＥ８０２（イーサネット）、ＡＮＳＩファイバチャネルなどのようなリアルタイムプロトコルを有するトランスポートインターフェースからマッピングされる。
【００１４】
ストリーミングファイルがキャプチャされる場合、ファイルヘッダが作成され、エッセンスはオンザフライでラッピングされるＫＬＶ（Key Length Value）である。データレートはＫＬＶラッピング及びヘッダの付加のために増大する。リアルタイムストリーミングデバイスは、ストリーミングインターフェースのいかなるバッファリング要求もデータレートのこの変化と共に満たされることを保証しなければならない。
【００１５】
ベーシックＭＸＦ構造はストリームレコーディング及びプレイバックをサポートする。
【００１６】
分散型ストレージシステムのファイル分割要求
分散型ストレージホームネットワークシステムの挙動は未来においておそらくあらゆる種類のデータの便利な自動的「ストアキーピング（storekeeping）」によって特徴付けられるだろう。ユーザはいずれにせよどこにコンテンツが格納されているか知らないだろう。よって、この種の分散型ストレージシステムはモノリシックなストレージブロックと見なされ、このシステムはそれ自体で、ユーザによるいかなる管理上の努力もなしに、そして要求アプリケーション（requiring application）に対する透過的な挙動によってフリーなストレージのキャパシティにマッチするストレージデバイスを探す必要がある。
【００１７】
分散型ストレージシステムは異なる規格（例えばＭＰＥＧ−２、ＤＶなど）のストリーミングデータを有して到来する様々な長さのアプリケーションパケットを取り扱う必要がある。ストリーミングデータが分散型ストレージシステムによって取り扱われる場合、一般的にはデータのサイズを予め取得することはできない。よって、ピア又はノードの最大キャパシティに到達する場合にはデータのシームレスなリアルタイル分割が必要となりうる。本発明はレコーディング及びプレイバックコンディションに対する分散型ストレージ環境におけるストリーミングデータの処理のための方法を提案する。
【００１８】
発明
本発明の課題はストリーミングデータのリアルタイムレコーディングをサポートすることができる分散型ストレージシステムを提供することである。
【００１９】
本発明によれば、上記課題は、データストリームを少なくとも第１のＭＸＦファイル及び第２のＭＸＦファイルの中にパッケージングし、第１のコネクションデータを第１のＭＸＦファイルの中に挿入し、第１のコネクションデータは第２のＭＸＦファイルを指示し、第２のコネクションデータを第２のＭＸＦファイルの中に挿入し、第２のコネクションデータは第１のＭＸＦファイルを指示することによる分散型ストレージシステムにおいてデータストリームをレコーディングするための方法によって解決される。
【００２０】
さらに、データストリームを少なくとも第１のＭＸＦファイル及び第２のＭＸＦファイルの中にパッケージングするためのパッケージング手段を含み、第１のコネクションデータを第１のＭＸＦファイルの中に挿入し、第１のコネクションデータは第２のＭＸＦファイルを指示し、第２のコネクションデータを第２のＭＸＦファイルの中に挿入し、第２のコネクションデータは第１のＭＸＦファイルを指示するためのデータ処理手段を含む分散型ストレージシステムにデータストリームをレコーディングするための相応する装置が提供される。
【００２１】
同時に、第１のＭＸＦファイルからコネクションデータを読み出し、このコネクションデータは第２のＭＸＦファイルを指示し、このコネクションデータに基づいてＭＸＦファイルチェーンを形成し、ＭＸＦファイルチェーンに従って第１のＭＸＦファイル及び第２のＭＸＦファイルのエッセンスデータをプレイバックすることによる分散型ストレージシステムにレコーディングされたデータストリームをプレイバックするための方法が提供される。
【００２２】
さらに、第１のＭＸＦファイルからコネクションデータを読み出すための読み出し手段を含み、このコネクションデータは第２のＭＸＦファイルを指示し、このコネクションデータに基づいてＭＸＦファイルチェーンを形成するためのデータ処理手段を含み、ＭＸＦファイルチェーンに従って第１のＭＸＦファイル及び第２のＭＸＦファイルのエッセンスデータをプレイバックするためのプレイング手段を含む分散型ストレージシステムにレコーディングされたデータストリームをプレイバックするための装置が提供される。
【００２３】
このような方法及び装置の利点は、ストリームレコーディングの間に、もしピアがそのストレージキャパシティに達しても、入力ストリームを連続的にレコーディングするためにこの入力ストリームがもう一つのピア又は他の複数のピアにリルーティングされることである。ファイル分割はリアルタイムで行われる。従って、本発明はこのようなシームレスなリアルタイムストリームレコーディング及びＭＸＦファイルに対するストリーム可能なデータプレイバックを可能にする。
【００２４】
有利には、データストリームをレコーディングする本発明の方法はさらに第３のコネクションデータを第２のＭＸＦファイルの中に挿入するステップを含み、前記第３のコネクションデータは第３のＭＸＦファイルを指示する。こうして、現在のＭＸＦファイルは前のＭＸＦファイルを指示し、さらに次のＭＸＦファイルを指示する。
【００２５】
コネクションデータを挿入するステップ又は複数のステップは個々のＭＸＦファイルのレコーディングをターミネートする間に実施される。その瞬間、前のＭＸＦファイル及び次のＭＸＦファイルが利用可能となるか又はそれぞれ既知となる。
【００２６】
レコーディングの間に、データストリームは特定個数のＭＸＦファイルに分割され、この特定個数は前もって既知ではなく、これらのＭＸＦファイルの全てを指示するコネクションデータは前記特定個数のＭＸＦファイルの各々の中に格納される。これによってただ一つのＭＸＦファイルに到達することによって完全なＭＸＦファイルチェーンを得ることが可能となる。
【００２７】
コネクションデータはメタデータとしてＭＸＦファイルのヘッダ及び／又はフッタの中に挿入される。もしコネクションデータがヘッダ及びフッタの両方に格納されているならば、このＭＸＦファイルは後で問題なく分割されうる。
【００２８】
ＭＸＦファイルがオープン状態にある場合、ＭＸＦファイルチェーンをビルドアップするためにコネクションデータを読み出すステップが前記ＭＸＦファイルチェーンの各ＭＸＦファイルに対して繰り返される。こうして、ＭＸＦファイルチェーンがステップバイステップでビルドアップされうる。
【００２９】
ＭＸＦファイルがクローズド状態にある、すなわち終了されている場合、コネクションデータを読み出すステップは１つのＭＸＦファイルチェーンに対してただ一度だけ実施される必要があり、前記ＭＸＦファイルチェーンの全てのＭＸＦファイルを指示するコネクションデータは前記ＭＸＦファイルチェーンの前記ＭＸＦファイルの各々に含まれる。この場合、完全なＭＸＦファイルチェーンを得るためにはＭＸＦファイルのうちのいずれか一つを読み出しさえすればよい。
【００３０】
有利には、コネクションデータはタスクデータ、属性データ及び参照データを含む。タスクデータはタスクＩＤ値を含み、属性データは（後続のＭＸＦファイルに対する）「次の」又は（先行するＭＸＦファイルに対する）「前の」のような状態値を含み、参照値は別のＭＸＦファイルのＩＤ値、例えばＵＵＩＤを含む。これらの３つの異なるデータをコネクションメタデータとしてＭＸＦヘッダに挿入することによって、レコーディング及びプレイバックのためのシームレスなリアルタイムストリーム分割を実現することができる。
【００３１】
図面
本発明を添付図面との関連においてより詳しく記述する。
【００３２】
図１は規格に従ったシンプルなＭＸＦファイルのデータ構造全体を示し、
図２はいくつかのオプショナルなコンポーネントを有するＭＸＦファイルのデータ構造全体を示し、
図３は本発明によるメタデータを分割するスキームを示し、
図４は分散型ストレージシステムのピア１におけるストリームレコーディングの後でのＭＸＦファイル１へのコネクションメタデータの挿入を示し、
図５は分散型ストレージシステムのピア２におけるストリームレコーディングの前及び後でのＭＸＦファイル２へのコネクションメタデータの挿入を示し、
図６は分散型ストレージシステムのピアｋ［ｋ＝２，３，．．．（ｎ−１）］におけるストリームレコーディングの前及び後でのＭＸＦファイルｋへのコネクションメタデータの挿入を示し、
図７はピアｎにおけるストリームレコーディングの前及び後でのＭＸＦファイルｎへのコネクションメタデータの挿入を示し、
図８はクローズド及び完了状態におけるＭＸＦファイル１のコネクションメタデータを示し、
図９はクローズド及び完了状態におけるＭＸＦファイルｋのコネクションメタデータを示し、
図１０はクローズド及び完了状態におけるＭＸＦファイルｎのコネクションメタデータを示し、
図１１はＭＸＦファイル内のコネクションメタデータパッケージを示す。
【００３３】
実施例
次に本発明の有利な実施例を詳しく記述する。
【００３４】
ＭＸＦファイルの中への特別な「コネクションメタデータ」のセットアップ
ストリームレコーディング及びプレイバックのためのリアルタイムファイル分割を実現するためには、特別な「コネクションメタデータ」が作成される。このコネクションメタデータはＭＸＦファイルのヘッダメタデータの中に挿入される。ヘッダメタデータはファイルヘッダ、ファイルボディ及び／又はファイルフッタ内に配置されうる。
【００３５】
図３に示されているように、本発明によるコネクションメタデータは少なくとも３つの部分から成る。すなわち、タスク、属性及び参照である。これらの部分は例えばフィールドであればよい。
【００３６】
タスクフィールドはタスクＩＤ値を含む。例えば、各ストリームレコーディングアクションは自身のタスクＩＤを有する。属性フィールド値は少なくとも２つの状態、「次の」及び「前の」を表す。「次の」属性は、分割ストリームレコーディングのために、現在のＭＸＦファイルに後続のＭＸＦファイルが続くことを意味する。後続のＭＸＦファイルは参照フィールドに含まれるＵＵＩＤ（Universal Unique Identifier）によって見いだされうる。「前の」属性は、現在のファイルが先行するＭＸＦファイルに続いており、分割ストリームの一部分であることを意味する。先行するＭＸＦファイルは参照フィールドに含まれるＵＵＩＤによって見いだされうる。
【００３７】
ストリームレコーディングの異なる種類の分割シナリオを表すために、ヘッダメタデータは多重コネクションメタデータを含みうる。コネクションメタデータはまず第一にＭＸＦファイルヘッダ及びファイルフッタの両方によって生成されうる。
【００３８】
次にコネクションメタデータのアプリケーションシナリオが詳しく指示される。
【００３９】
コネクションメタデータを使用することによるＭＸＦファイルのシーケンスの中へのストリームのレコーディング
分散型ストレージシステムにおいて連結ストリームオブジェクトを取り扱うために、全ての関連ＭＸＦファイルがＵＵＩＤによりラベリングされ、連結されたストリーム可能なオブジェクトの全シーケンス（ＭＸＦファイル）が各ＭＸＦファイル内に埋め込まれるコネクションメタデータの助けによって生成される。
【００４０】
分散型ストレージシステムの１つの要求はユーザにとっては重要ではない全てのファンクションのセルフオーガナイジングである。これらのタスク（例えば１つのノードのキャパシティに達した場合のファイル分割）のためには、ノード間のコントロールメッセージのセルフコントロールされた交換が必要である。
【００４１】
分散型ストレージシステムでは入力ストリームがｎ個のピアのｎ個のＭＸＦファイルの中に連続的にリアルタイムレコーディングされる。これら全てのＭＸＦファイル内のコネクションメタデータは同一のタスクＩＤ値を有する。全てのピアは互いに分散型ストレージシステムによりデザインされたコントロールメタデータを介して通信する。レコーディングプロシージャを以下に詳しく記述する（図４〜８参照）。
【００４２】
１．最初に、入力ストリームが分散型ストレージシステムのピア（１）のＭＸＦファイル（１）の中にパッケージングされる。
【００４３】
２．ピア（１）がその最大ストレージキャパシティに達する前に、ピア（１）はコントロールメッセージを他のピアに送信し、どこかのピアがストリームをレコーディングし続けることができるか問い合わせる。
【００４４】
３．もしピア（２）がストリームをレコーディングし続けることができると応答するならば、ピア（１）は入力ストリームの受信デバイスにピア（２）へ到来するストリームをリルーティングすることを準備するようにと伝える。
【００４５】
４．図４に示されているように、現在のストリームレコーディングをターミネートする間に、ピア（１）は新たなコネクションメタデータ（１N）を生成し、これを現在のＭＸＦファイル（１）のファイルフッタの中のヘッダメタデータの中に挿入する。この場合、通常はＭＸＦファイルフッタの中のヘッダメタデータはオプショナルであるが、ＭＸＦファイル（１）のファイルフッタはヘッダメタデータを含まなくてはならない。現在のストリームレコーディングタスクＩＤはコネクションメタデータ（１N）のタスク値としてセットされる。コネクションメタデータ（１N）の属性値は「次の」にセットされ、参照は後続のストリームをレコーディングするピア（２）のＭＸＦファイル（２）のＵＵＩＤを含む。
【００４６】
５．図５に示されているように、ピア（２）が到来するストリームをレコーディングし始める場合、最初にこのピア（２）はＭＸＦファイル（２）のファイルヘッダを生成し、コネクションメタデータ（２L）をファイルヘッダのヘッダメタデータの中に挿入する。コネクションメタデータ（２L）の属性の値は「前の」であり、ＭＸＦファイル（１）のＵＵＩＤがその参照の中に入れられる。
【００４７】
６．もしピア（２）がその最大ストレージキャパシティに達するならば、ステップ２〜４に記述されたのと同じアクションが繰り返される。入力ストリームはピア（２）におけるレコーディングタスクをターミネートした後で別のピアにリルーティングされ、コネクションメタデータ（２N）がピア（２）のファイルフッタのヘッダメタデータの中に挿入される。コネクションメタデータ（２N）の属性は「次の」であり、その参照は次のＭＸＦファイル（３）のＵＵＩＤを含む。図５を参照。
【００４８】
７．後続のピア（ｋ）は、ピア（ｎ）のＭＸＦファイル（ｎ）によって全ストリームレコーディング処理が終了するまでステップ５及び６を繰り返す。ただしここでｋ＝２，３，．．．（ｎ−１）である。図６に示されているように、ファイルヘッダのヘッダメタデータにおいて、全ての先行する「前の」コネクションメタデータ（（２L）．．．（ｋL））がアキュムレートされ、作成されたＭＸＦファイルの自然な順番に従ってヘッダメタデータの中に挿入される。この構造によって各ＭＸＦファイル（ｋ）が全ての先行する連結ＭＸＦファイルを知ることが可能となる。
【００４９】
８．図７に示されているように、全ストリームレコーディング処理がピア（ｎ）において終了する場合、ＭＸＦファイル（ｎ）はファイルヘッダの中にヘッダメタデータを生成し、このヘッダメタデータが全ての「前の」コネクションメタデータ（（２L）．．．（ｋL））をアキュムレートし、これらをその自然な順番でアレンジする。全ストリームレコーディングタスクをターミネートする前に、コネクションメタデータ（（２L）．．．（ｋL））の同一シーケンスがオプショナルにＭＸＦファイル（ｎ）のファイルフッタのヘッダメタデータにおいてリピートされうる。
【００５０】
上記のストリームレコーディング処理によって、入力ストリームはＭＸＦファイルシーケンス（１，２，．．ｎ）の中にレコーディングされる。ファイルヘッダ又はファイルフッタのヘッダメタデータの中のこれらのリアルタイムで生成された「前の」及び「次の」コネクションメタデータはこのＭＸＦファイルシーケンスをプレイバックするのに十分なメッセージを提供する。
【００５１】
クローズドＭＸＦファイルにおけるコネクションメタデータのファイナライジング
しかし、上記プロシージャによって入力ストリームから生成されるこれらのｎ個のＭＸＦファイルはまだ「オープン」状態にあることは心に留めておかねばならない。ＭＸＦ規格仕様書によれば、ＭＸＦファイルはプレイバックの前にクローズされる。それゆえ、上記のＭＸＦファイルのヘッダメタデータ内のコネクションメタデータパーティションを「クローズ」させるためにはファイナライジングプロセスが必要である。全ての関連ピアはこれらの連結ＭＸＦファイルの中のコネクションメタデータメッセージをサーチし収集するためにコントロールメタデータを互いに送信しあう。「クローズド」ＭＸＦファイルの中のコネクションメタデータは次のように記述される（図８〜１０参照）。
【００５２】
１．図８に示されているように、ファイナライジングプロセスの後では、第１のＭＸＦファイル（１）のヘッダメタデータは「前の」コネクションメタデータを含まず、インデックスＮにより示されているように全ての「次の」コネクションメタデータ（（１N）．．．（（ｎ−１）N））を含む。ヘッダメタデータはオプショナルにファイルフッタ及びファイブボディのボディパーティションにおいて図８で点線の矢印で示されているようにリピートされうる。
【００５３】
２．図９に示されているように、ファイナライジングプロセスの後では、いかなる後続のＭＸＦファイル（ｋ）のヘッダメタデータも、現在のＭＸＦファイル（ｋ）の前に作成された全ての「前の」コネクションメタデータ及び現在のファイルのそれ（（２L）．．．（ｋL））を含み、さらに現在のＭＸＦファイル（ｋ）の後で作成された全ての「次の」コネクションメタデータ及び現在のファイルのそれ（（ｋN）．．．（（ｎ−１）N））を含む。
【００５４】
３．図１０に示されているように、ファイナライジングプロセスの後では、最終ＭＸＦファイル（ｎ）のヘッダメタデータはＭＸＦファイルのシーケンスの中に作成された全ての「前の」コネクションメタデータ（（２L）．．．（ｎL））を含む。ＭＸＦファイル（１）の場合のように、全てのＭＸＦファイル（ｋ）及び（ｎ）の中のヘッダメタデータはオプショナルにファイルフッタ及びファイブボディのボディパーティションにおいて図１０で点線の矢印で示されているようにリピートされうる。
【００５５】
コネクションメタデータを使用することによる連結ＭＸＦファイルプレイバック
ＭＸＦフィーチャによってＭＸＦエッセンスコンテナの中のそのエッセンスのストリーム可能なプレイバックが可能となる。
【００５６】
分散型ストレージシステムによりデザイン及び生成されるコントロールメタデータを使用することによってピアのグループの間でストリーム可能なプレイバックをセットアップすることが可能である。
【００５７】
オープンＭＸＦファイルのプレイバック
ＭＸＦデコーダはオープンＭＸＦファイルをデコードできることを要求されないが、ここでコネクテッドメタデータを有するこれらの連結オープンＭＸＦファイルをプレイバックすることは可能であると考えられる。図４〜７に示されているように、通常各ＭＸＦファイルの中のこれらの埋め込まれたコネクションメタデータは全ての先行する連結ＭＸＦファイル及びただ次のＭＸＦファイルのみへの参照を提供する。これらのＭＸＦファイルのプレイバックの場合、プレイバックタスクをセットアップすることはどのピア（１，２，．．．，ｎ）のどのＭＸＦファイルからでもスタートされうる。最初に、全ての先行するＭＸＦファイルの全てのＵＵＩＤが各ＭＸＦファイルのファイルヘッダ又はファイルフッタのヘッダメタデータの中のこれらのアキュムレートされた「前の」コネクションメタデータから抽出される。ただし「前の」コネクションメタデータを持たないＭＸＦファイル（１）は除く。次いで、現在のＭＸＦファイルのファイルフッタの中の「次の」コネクションメタデータがその次の参照ＭＸＦファイルを見つけ出すためにパーズされる。各々の次のＭＸＦファイルのファイルフッタの中の「次の」コネクションメタデータが一つ一つパーズされる。その後、プレイバックタスクが関連付けられたピアの間のコントロールメタデータを使用することによってアレンジされる。
【００５８】
クローズドＭＸＦファイルのプレイバック
図８〜１０に示されているように、クローズドＭＸＦファイルでは、各ＭＸＦファイルはコンパクトなコネクションメタデータを含み、これらのコネクションメタデータは全ての他の連結ＭＸＦファイルへリンクしている。この場合、プレイバックタスクはどのピア（１，．．．，ｎ）のどのＭＸＦファイルからでもスタートできる。現在のＭＸＦファイルの中のコネクションメタデータだけがパーズされる必要がある。というのも、このコネクションメタデータはどのセレクトされたＭＸＦファイルからでも全ての連結ＭＸＦファイルに関する全ての参照メッセージを含むからである。１つのピアの１つのＭＸＦファイルからの参照メッセージに基づいて、システム内でストリーム可能なプレイバックタスクがセットアップされうる。
【００５９】
コネクションメタデータパッケージによりサポートされる多重タスク
図１１に示されているように、ストリームをＭＸＦファイルの中にレコーディング又はパッケージングする間に、ヘッダメタデータの中で異なるコネクションメタデータパッケージを作成することが許可されている。異なるパッケージの中のコネクションメタデータはそれらのタスクＩＤによって区別される。異なるコネクションメタデータパッケージは連結ＭＸＦファイルの異なるシーケンスを指示する。このデザインは次のシナリオにおいて有用である。
【００６０】
ピアのＭＸＦファイルの中にストリームをレコーディングする間、このピアがその最大ストレージキャパシティに達する前に、このピアは他のピアに入力ストリームをレコーディングし続けることができるか問い合わせる。もし１つより多くのピアがこれをできるならば、そして現在のネットワークキャパシティが同期されたストリームレコーディングを行うことが可能であり、タスクマネージャがそうしたいならば、現在のピアは多重コネクションメタデータパッケージを生成する。同一パッケージの中のコネクションメタデータは同一のタスクＩＤを有し、これは連結ＭＸＦファイルのシーケンスを表す。異なるパッケージはＭＸＦファイルの異なるシーケンスを指示する。この適用事例においては、連結ＭＸＦファイルの多重シーケンスが生成される。
【００６１】
ストリームが分割されて連結ＭＸＦファイルの中にレコーディングされる場合、時々ユーザは安全なコピーを行うためにいくつかのＭＸＦファイルを複製したいと思うだろう。複製されたＭＸＦファイルはそのオリジンと同一の又はそのオリジンとは異なるピアに存在しうる。この場合、システムは全ての関連ＭＸＦファイルの関連ヘッダメタデータにおいて別個のコネクションメタデータパッケージを生成しなければならない。このような代替的なコネクションメタデータパッケージに基づいて、欠陥ファイルを修理し最適なプレイバックをアレンジすることが可能である。
【００６２】
本発明は分散型ストレージネットワークにおいて使用されうるあらゆる種類のストリームレコーディングデバイス、とりわけピアツーピアネットワークのような分散ネットワークにおけるオーディオ及び／又はビデオストリームレコーダに対して使用可能である。
【図面の簡単な説明】
【００６３】
【図１】規格に従ったシンプルなＭＸＦファイルのデータ構造全体を示す。
【図２】いくつかのオプショナルなコンポーネントを有するＭＸＦファイルのデータ構造全体を示す。
【図３】本発明によるメタデータを分割するスキームを示す。
【図４】分散型ストレージシステムのピア１におけるストリームレコーディングの後でのＭＸＦファイル１へのコネクションメタデータの挿入を示す。
【図５】分散型ストレージシステムのピア２におけるストリームレコーディングの前及び後でのＭＸＦファイル２へのコネクションメタデータの挿入を示す。
【図６】分散型ストレージシステムのピアｋ［ｋ＝２，３，．．．（ｎ−１）］におけるストリームレコーディングの前及び後でのＭＸＦファイルｋへのコネクションメタデータの挿入を示す。
【図７】ピアｎにおけるストリームレコーディングの前及び後でのＭＸＦファイルｎへのコネクションメタデータの挿入を示す。
【図８】クローズド及び完了状態におけるＭＸＦファイル１のコネクションメタデータを示す。
【図９】クローズド及び完了状態におけるＭＸＦファイルｋのコネクションメタデータを示す。
【図１０】クローズド及び完了状態におけるＭＸＦファイルｎのコネクションメタデータを示す。
【図１１】ＭＸＦファイル内のコネクションメタデータパッケージを示す。
【符号の説明】
【００６４】
１  第１のＭＸＦファイル
２  第２のＭＸＦファイル
３  第３のＭＸＦファイル
１N  第１のコネクションデータ
２L  第２のコネクションデータ
２N  第３のコネクションデータ
【図１】
2008500608.tif 000003
【図２】
2008500608.tif 000004
【図３】
2008500608.tif 000005
【図４】
2008500608.tif 000006
【図５】
2008500608.tif 000007
【図６】
2008500608.tif 000008
【図７】
2008500608.tif 000009
【図８】
2008500608.tif 000010
【図９】
2008500608.tif 000011
【図１０】
2008500608.tif 000012
【図１１】
2008500608.tif 000013
【手続補正書】
【提出日】平成18年11月1日(2006.11.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
分散型ストレージシステムにおいてデータストリームのレコーディングをコントロールするための方法において、
前記データストリームを第１のＭＸＦファイル（１）の中にパッケージングし、
前記第１のＭＸＦファイル（１）を第１のストレージ媒体にレコーディングのために伝達し、
前記第１のストレージ媒体がほとんど満杯であることを検出し、
この検出に基づいて、前記データストリームを第２のＭＸＦファイル（２）の中にパッケージングし、
前記第２のＭＸＦファイル（２）を異なる第２のストレージ媒体にレコーディングのために伝達し、
第１のコネクションデータ（１N）を前記第１のＭＸＦファイル（１）の中に挿入し、前記第１のコネクションデータ（１N）は前記第２のＭＸＦファイル（２）を指示し、
第２のコネクションデータ（２L）を前記第２のＭＸＦファイル（２）の中に挿入し、前記第２のコネクションデータ（２L）は前記第１のＭＸＦファイル（１）を指示することを特徴とする、分散型ストレージシステムにおいてデータストリームのレコーディングをコントロールするための方法。
【請求項２】
データストリームは複数のＭＸＦファイルの中に分割され、さらにアキュムレートされた第３のコネクションデータ（２L，．．．ｋL）を前記第２の及び更なるＭＸＦファイルの中に挿入するステップを含み、所与のＭＸＦファイルに対する第３のコネクションデータ（２L，．．．ｋL）は前記所与のＭＸＦファイルに先行するデータストリームの全てのＭＸＦファイルを指示する、請求項１記載の方法。
【請求項３】
第３のコネクションデータ（２L，．．．ｋL）は前記先行するＭＸＦファイルの自然な作成順に従って順序付けられる、請求項１又は２記載の方法。
【請求項４】
コネクションデータを挿入する１つのステップ又は複数のステップは個々のＭＸＦファイルのレコーディングをターミネートする間に実施される、請求項１〜３のうちの1項記載の方法。
【請求項５】
コネクションデータはＭＸＦファイルのヘッダ及び／又はフッタデータの中に挿入される、請求項１〜４のうちの１項記載の方法。
【請求項６】
分散型ストレージシステムにおけるデータストリームのレコーディングをコントロールするための装置において、
前記データストリームを第１のＭＸＦファイル（１）の中にパッケージングするための手段を有し、
前記第１のＭＸＦファイル（１）を第１のストレージ媒体にレコーディングのために伝達するための手段を有し、
前記第１のストレージ媒体がほとんど満杯であることを検出するための手段を有し、
この検出に基づいて、前記データストリームを第２のＭＸＦファイル（２）の中にパッケージングするための手段を有し、
前記第２のＭＸＦファイル（２）を異なる第２のストレージ媒体にレコーディングのために伝達するための手段を有し、
第１のコネクションデータ（１N）を前記第１のＭＸＦファイル（１）の中に挿入するための手段を有し、前記第１のコネクションデータ（１N）は前記第２のＭＸＦファイル（２）を指示し、
第２のコネクションデータ（２L）を前記第２のＭＸＦファイル（２）の中に挿入するための手段を有し、前記第２のコネクションデータ（２L）は前記第１のＭＸＦファイル（１）を指示することを特徴とする、分散型ストレージシステムにおけるデータストリームのレコーディングをコントロールするための装置。
【請求項７】
パッケージング手段はデータストリームを複数のＭＸＦファイルに分割することを可能にし、さらにアキュムレートされた第３のコネクションデータ（２L，．．．ｋL）を前記第２の及び更なるＭＸＦファイルの中に挿入するための手段を含み、所与のＭＸＦファイルに対する前記第３のコネクションデータ（２L，．．．ｋL）は前記所与のＭＸＦファイルに先行するデータストリームの全てのＭＸＦファイルを指示する、請求項６記載の装置。
【請求項８】
パッケージング手段はデータストリームを特定個数のＭＸＦファイルに分割することを可能にし、全てのこれらのＭＸＦファイルを指示するコネクションデータは前記特定個数のＭＸＦファイルの各々の中に格納可能である、請求項６又は７記載の装置。
【請求項９】
データ処理手段はコネクションデータをＭＸＦファイルのヘッダ及び／又はフッタデータの中に挿入する、請求項６〜８のうちの１項記載の装置。
【請求項１０】
さらに、データストリームの連続レコーディングを要求する他の装置へメッセージを送信するための手段を有し、
少なくとも１つの第２の装置から応答を受信するための手段を有し、
データストリームのレコーディングを準備するように前記第２の装置に通知するための手段を有し、
前記第２の装置へ第２のＭＸＦファイル（２）をリルーティングするための手段を有する、請求項６〜９のうちの１項記載の装置。
【請求項１１】
分散型ストレージシステムにレコーディングされたデータストリームをプレイバックするための方法において、
第１のストレージデバイスに格納された第１のＭＸＦファイル（１）からコネクションデータ（１N）を読み出し、該コネクションデータ（１N）は第２のストレージデバイスの第２のＭＸＦファイル（２）を指示し、
前記コネクションデータ（１N）に基づいてＭＸＦファイルチェーンを形成し、
該ＭＸＦファイルチェーンに従って前記第１のＭＸＦファイル（１）及び前記第２のＭＸＦファイル（２）のエッセンスデータをプレイバックすることを特徴とする、分散型ストレージシステムにレコーディングされたデータストリームをプレイバックするための方法。
【請求項１２】
コネクションデータを読み出すステップは前記ＭＸＦファイルチェーンの各ＭＸＦファイルに対して繰り返される、請求項１１記載の方法。
【請求項１３】
コネクションデータを読み出すステップは１つのＭＸＦファイルチェーンに対して一度だけ実施され、前記ＭＸＦファイルチェーンの全てのＭＸＦファイルを指示するコネクションデータは前記ＭＸＦファイルチェーンの前記ＭＸＦファイルの各々に含まれる、請求項１１記載の方法。
【請求項１４】
分散型ストレージシステムにレコーディングされたデータストリームをプレイバックするための装置において、
第１のストレージデバイスから第１のＭＸＦファイル（１）を検索するための手段を有し、
前記第１のＭＸＦファイル（１）からコネクションデータ（１N）を読み出すための読み出し手段を有し、前記コネクションデータ（１N）は異なる第２のストレージデバイスに格納された第２のＭＸＦファイル（２）を指示し、
前記コネクションデータ（１N）に基づいてＭＸＦファイルチェーンを形成するためのデータ処理手段を有し、
前記ＭＸＦファイルチェーンに従って前記第１のＭＸＦファイル（１）及び前記第２のＭＸＦファイル（２）のエッセンスデータをプレイバックするためのプレイング手段を有することを特徴とする、分散型ストレージシステムにレコーディングされたデータストリームをプレイバックするための装置。
【請求項１５】
前記読み出し手段はＭＸＦファイルチェーンの１つのＭＦＸファイルから前記ＭＸＦファイルチェーンの全てのコネクションデータを読み出すことができる、請求項１４記載の装置。
【請求項１６】
コネクションデータはタスクデータ、属性データ及び参照データを含み、前記タスクデータはタスクＩＤ値を含み、前記属性データは「次の」又は「前の」のような状態値を含み、前記参照データは別のＭＸＦファイルのＩＤ値を含む、請求項１〜１５のうちの１項記載の方法又は装置。
【国際調査報告】
2008500608.tif 000014
2008500608.tif 000015