(57)【特許請求の範囲】
【請求項１】
到来するデータストリームの記憶方法であって、該データストリームは識別可能なデータユニットからなる形式のものにおいて、
・第１の記憶デバイス(N1)にて、データストリーム(18)の第１の部分を第１の記憶媒体(D1)に格納し、該データストリーム(18)の第１の部分に関連する第１のデータセット(10)を形成し、かつ格納し、
該第1のデータセット(10)は前記データストリームの前記第１の部分に対する識別子(PlaycellUUID1)を含み、
・前記第1のデバイス(N1)の残りの空き格納エリアが閾値以下である場合、前記第１の記憶デバイス(N1)から１つまたは複数の別の記憶デバイスに、記憶エリアに対する要求を送信し、
・前記第１の記憶デバイス(N1)で１つまたは複数の応答を前記１つまたは複数の別の記憶デバイスから受信し、
・前記応答を受信した前記１つまたは複数の別の記憶デバイスから第２の記憶デバイス(N2)を選択し、
・前記第1の記憶デバイス(N1)と並列に、前記選択された第２の記憶デバイス(N2)にて、到来するデータストリームを第２の記憶媒体(IB2)にバッファリングし、
・前記第1の記憶デバイス(N1)が一杯の場合、前記第１の記憶デバイス(N1)から前記第２の記憶デバイス(N2)へ、前記第１の記憶媒体(D1)に格納された最後のデータユニット(SOBU#i-1)に対する識別子を送信し、該識別子を前記第１のデータセット(10)と共に前記第１の記憶デバイス(N1)に格納し、
・前記第２の記憶デバイス(N2)の前記第２の記憶媒体(IB2)で、前記格納されたデータストリーム内で前記第1の記憶媒体(D1)に格納された前記最後のデータユニット(SOBU#i-1)に対する識別子を検出し、
・当該検出に基づき、前記第２の記憶デバイス(N2)の第３の記憶媒体(D2)に、後続のデータユニットを含むデータストリーム(19)の第２の部分を格納し、該データストリーム(19)の前記第２の部分に関連する第２のデータセット(11)を形成し、かつ格納し、
該データセットは、データストリームの第２の部分に対する識別子を含むものであり、
・前記識別子(PlaycellUUID1, PlaycellUUID2)の少なくとも１つを他のデータセット(10,11)共に別の記憶デバイス(N1,N2)に格納する、
ことを特徴とする記憶方法。
【請求項２】
第２の記憶デバイス(N2)を１つまたは複数の別の記憶デバイスから選択するステップは、空き記憶容量、可能な記録速度または格納すべきコンテンツの内容に基づいて実行する、請求項１記載の方法。
【請求項３】
複数の記憶デバイスからの連続するデータストリームの連続部分を復元する方法であって、該データストリームはパケットのような識別可能なデータユニットからなる形式のものにおいて
・データストリームの第１の部分を第１の記憶デバイス(N1)から復元し、復元したデータストリームを出力バス(APB)に転送し、
・前記第１の記憶デバイス(N1)にて、データストリームの第１の部分に関連するデータセット(10)を復元し、
該データセットは第１と第２の識別子を含み、
該第１の識別子は前記データストリームの前記第１の部分に対する識別子(PlaycellUUID1)であるか、または前記データストリームの第２の部分に対する識別子(PlaysellUUID2)であり、
前記第２の識別子は前記データストリームの前記第１の部分に含まれる最後のデータユニットに対する識別子であり、
・前記第１と第２の識別子を前記第１の記憶デバイス(N1)から複数の別の記憶デバイスに送信し(CMB)、
・第２の記憶デバイス(N2)にて、受信された前記第１の識別子(PlaycellUUID1, PlaycellUUID2)により識別されるデータストリームの前記第２の部分が記憶媒体(D2)からの復元のために使用可能であることを検出し、
・該第２の記憶デバイス(N2)にて、データストリームの前記第２の部分の少なくとも開始部を前記記憶媒体(D2)から復元し、これを別の記憶媒体(OB2)にバッファリングし、
・前記第２の記憶デバイス(N2)にて、前記第１の記憶デバイス(N1)の前記出力バス(APB)を監視し、
・前記監視に基づき、前記第２の記憶デバイス(N2)にて、前記データストリームの前記第１の部分に含まれる前記最後のデータユニットがいつ前記出力バス(APB)に転送されたかを検出し、
・前記検出に基づき、前記データストリームの前記第２の部分を前記別の記憶媒体(OB2)から読み出し、これを前記出力バス(APB)に転送する、ことを特徴とする復元方法。
【請求項４】
データストリームの前記第１の部分に関連するデータセット(10)はさらに第２の記憶デバイス(N2)に対する識別子を含む、請求項１から３までのいずれか一項記載の方法。
【請求項５】
前記記憶媒体はメモリ(IB1,IB2,OB1,OB2)および光学的ディスクまたは磁気ディスク(D1,D2)を含む、請求項１から４までのいずれか一項記載の方法。
【請求項６】
前記記憶デバイス(N1,N2)はネットワークのノードである、請求項１から５までのいずれか一項記載の方法。
【請求項７】
識別可能なデータユニットは、単調な連続番号またはタイムスタンプを含む、請求項１から６までのいずれか一項記載の方法。
【請求項８】
前記第１の記憶デバイス(N1)から前記第２の記憶デバイス(N2)に送信されたメッセージは、前記データストリームの前記第２の部分の格納個所についての情報を含む、請求項１から７までのいずれか一項記載の方法。
【請求項９】
データストリームを格納するための装置であって、
該装置は分散型ネットワークのノードであり、
前記データストリームは識別可能なデータユニットからなる形式の装置において、
・第１の記憶媒体(IB2)を有し、該第１の記憶媒体は受信されたデータストリームの一部をバッファリングするためのメモリであり、
・前記第１の記憶媒体(IB2)から読み出されたデータを第２の記憶媒体(D2)に転送する手段(SRU2)を有し、
・前記分散型ネットワークの別のノードから格納エリアに対する要求を受信し、当該要求に応答し、特定のデータユニットに対する識別子を受信する手段(MC2)を有し、
該手段(MC2)はまた、前記第２の記憶媒体(D2)における残りの空き格納エリアが閾値以下である場合、格納エリアに対する要求を送信し、種々異なるデバイスからの複数の応答を受信し、前記応答の評価に基づいて応答デバイスの１つを選択することができ、
・前記特定のデータユニットが前記受信された識別子に従って第１の記憶媒体(IB2)に格納されたか否かを検出する手段を有し、
・前記特定のデータユニットの検出に基づいて、前記特定のデータユニットに後続するデータユニットを前記第１の記憶媒体(IB2)から前記第２の記憶媒体(D2)へ転送開始する手段を有し、
・前記データストリームに関連するデータセット(11)を形成し、格納する手段を有し、
前記データセット(11)は前記データストリームに対する識別子(PlaylistUUID)と、前記第２の記憶媒体(D2)に格納された最後のデータユニットに対する識別子を含む、
ことを特徴とする装置。
【請求項１０】
データストリームの一部を復元するための装置であって、
該装置は分散型ネットワークのノードであり、
前記データストリームは識別可能なデータユニットからなる形式の装置において、
・第１の記憶媒体(D2)からデータを読み出す手段(PU2)を有し、
・メモリである第２の記憶媒体(OB2)を有し、
・前記第１の記憶媒体(D2)から読み出されたデータを前記第２の記憶媒体(OB2)へ転送する手段を有し、
ここで該手段は、最初は前記第２の記憶媒体(OB2)へデータを、前記第１の記憶媒体(D2)から読み出されたデータストリームの開始部により転送し、
・特定のデータユニットに対する識別子を受信する手段(MC2)を有し、
・データ接続(APB)からデータを受信する手段(IB2)を有し、
・前記データ接続(APB)から受信されたデータを監視し、前記特定のデータユニットがデータ接続(APB)で受信されたか否かを検出し、当該検出に基づいて、データユニットを前記第２の記憶媒体(D2)から前記第１の記憶媒体(OB2)へ転送開始する手段(BCU2)を有し、
・前記データユニットを前記第1の記憶媒体(OB2)から前記データ接続(APB)へ出力する手段を有する、
ことを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データストリームの分散的記憶および復元のための方法に関する。とりわけ本発明はデータストリーム、例えばマルチメディアデータストリームをリアルタイムでシームレスに分割および復元する方法に関する。
【背景技術】
【０００２】
マルチメディアホームネットワークは、オーディオ、ビデオおよび他のデータを含むデータストリームの処理にしばしば使用される。このことは大容量のデータの記録および再生を含む。通常、ビデオフィルムまたはオーディオトラック等のユニットを含むデータストリームは単一ファイルとして処理され、記憶される。内部的にはこれらのストリームは例えばデジタルビデオ（ＤＶ）またはＭＰＥＧ２規格に対して定義されたパケットに構造化される。規格に依存してこれらのパケットは異なる長さを有することがあり、例えばＭＰＥＧ２に対しては１８８バイトである。
【０００３】
データ量と同じように使用可能な記憶容量も劇的に増加しており、記憶エリアを編成することはユーザにとって面倒なタスクである。種々の自動的アプローチが存在する。例えば使用される記憶エリアネットワークを記憶デバイスごとに分離するのである。すなわち接続されているすべてのデータ発生デバイスおよびデータ消費デバイスに対して記憶容量を提供するのである。このような技術は分散的記憶と称される。なぜならこの技術は、接続されている記憶デバイスのいずれかに記憶されることになるファイルを自動的に分割し、これを後から復元するからである。このようなシステムでは、ユーザは所定のコンテンツがどこに記憶されているかを知る必要がない。種々の形式のアプリケーションパケットを処理することができるようにするため、マルチメディアネットワーク用の分散的記憶システムはアプリケーションパケットを記憶のためにパケットコンテナーに入れる。これはDVDストリーム記録規格に対して「DVD Specification for Rewritable/Re-recordable Discs, Part 5, Stream Recording, May 2000」に定義されている。適切なリアルタイム再生を可能にするため、タイムスタンプ（ＡＴＳ）がアプリケーションパケットに割り当てられている。
【０００４】
分散的記憶法はまた、種々の形式のデータに対して便利な自動的管理人となりつつあるホームネットワークに適用することもできる。このシステムはユーザの介入なしで自立的に、記録に対して十分な記憶容量を提供する記憶デバイスを探すことができる。例えばビデオ記録のようなアプリケーションに対してこの記憶システムの動作は通常は透明である。
【０００５】
しかしリアルタイムストリーミングデータを記録すべき場合、一般的にはデータストリームのサイズ、すなわち必要な記憶エリアを前もって知ることは不可能である。従って記憶エリア管理が困難であり、そのためリアルタイムデータの記録は通常、選択された記憶デバイスが一杯になると終了する。
【０００６】
分散的記憶システム、一般的にはネットワークのアーキテクチャはクライアント−サーバ原理またはピア・ツー・ピア（Ｐ２Ｐ）原理に基づくことができる。Ｐ２Ｐネットワークは中央ネットワーク構成を必要としない。なぜならノードまたはピアが通常は直接、それぞれ他のノードまたはピアと通信するからである。サービスおよびリソース（例えば記憶エリア）は共有される。従って多数の強化機能がユーザに提供される。
【０００７】
マルチメディアホームネットワーク用の分散的記憶システムはストリーミングデータのリアルタイム記録をサポートすべきである。リアルタイム記録の性質から、記録されるファイルまたはデータストリームの長さは記録時には未知であり、選択された記憶デバイスが、データストリームを完全に格納する前に満杯になる危険性がある。このような場合、データストリームの残りの部分は他の記憶デバイスに格納することができる。しかし他の記憶デバイスの選択および作動には時間がかかり、このことはリアルタイム特性を阻害する。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の課題は、データストリームを記録中にシームレスに複数のチャンクに分割し、このチャンクをリアルタイムで接続された種々異なる記憶デバイスに分配し、これによりチャンクをシームレスにリアルタイムでストリームの再生のために再び復元できるようにすることである。
【課題を解決するための手段】
【０００９】
この課題は、到来するデータストリームの記憶方法であって、該データストリームは識別可能なデータユニットからなる形式のものにおいて、
・第１の記憶デバイスにて、データストリームの第１の部分を第１の記憶媒体に格納し、該データストリームの第１の部分に関連する第１のデータセットを形成し、かつ格納し、
該データセットはデータストリームの第１の部分に対する識別子を含み、
・第１の記憶デバイスから１つまたは複数の別の記憶デバイスに要求を送信し、
・第１の記憶デバイスで１つまたは複数の応答を１つまたは複数の別の記憶デバイスから受信し、
・応答を受信した１つまたは複数の別の記憶デバイスから第２の記憶デバイスを選択し、
・選択された第２の記憶デバイスにて、到来するデータストリームを第２の記憶媒体に格納し、
・第１の記憶デバイスから第２の記憶デバイスへ、第１の記憶媒体に格納された最後のデータユニットに対する識別子を送信し、該識別子を第１のデータセットと共に第１の記憶デバイスに格納し、
・第２の記憶デバイスの第２の記憶媒体で、前記格納されたデータストリーム内で識別されたデータユニットを検出し、
・第２の記憶デバイスの第３の記憶媒体に、後続のデータユニットを含むデータストリームの第２の部分を格納し、該データストリームの第２の部分に関連する第２のデータセットを形成し、かつ格納し、
該データセットは、データストリームの第２の部分に対する識別子を含むものであり、
・前記識別子の少なくとも１つを他のデータセット共に別の記憶デバイスに格納する、
ことにより解決される。
【００１０】
この記憶方法を使用する装置は請求項９に記載されている。データストリームの一部を種々の記憶媒体から復元するための方法は請求項２に記載されている。このデータ復元方法を使用する装置は請求項１０に記載されている。
【発明を実施するための最良の形態】
【００１１】
本発明によれば、メタデータタグと一時バッファが、データをシームレスにリアルタイムで分割し、このデータを分配された記憶環境でシームレスにリアルタイムで復元するために使用される。データストリームの記録中に、記憶デバイスの最大容量に達すると、本発明の方法はストリームを分割し、残りを他の記憶デバイスに格納することができる。記録ストレージノードおよびネットワークの他のストレージノードで使用可能な記憶容量がこの目的のために監視される。
【００１２】
データストリームが第１の記憶デバイスに記録されている間に、このデバイスでの使用可能記憶容量が限界になると、ネットワーク中の別の記憶デバイスが選択される。この記憶デバイスはもちろん、現在アクティブな記憶デバイスが満杯になった後で記録を継続するのに適したデバイスである。第１のデバイスの空き記憶エリアの残りが閾値を下回ると、他の記憶デバイスが通告を受け取り、ストリーミングデータの一時バッファへのバッファリングを開始する。これは第１の記憶デバイスでの記録と並行して行われる。第１の記憶デバイスが満杯になると、すなわちこれがそれ以上パケットを記憶できなくなると、第１の記憶デバイスは第２のデバイスに通告を送信する。この通告は識別子を含んでおり、この識別子は第１のデバイスにより記憶された最後のパケットを規定する。この通告の受信に基づいて、第２のデバイスは記憶すべき最初のパケットを識別し、このスタートパケットと連続データパケットをその一時バッファから記憶エリアに転送する。従ってデータストリームの記録を継続することができる。
【００１３】
有利には本発明の方法はデータ損失がなく、従ってストリームの再生時に知覚されるような中断を防止する。
【００１４】
記録を継続するために他の記憶デバイスを選択するプロセスは、空き記憶容量、可能な記録速度またはコンテンツの形式等のパラメータに基づくことができる。
【００１５】
同じように完全なデータストリームを再生するために、種々異なるチャンクが復元される。ストリームの始まりを含む第１のチャンクはメタデータタグによりそれとしてマークされている。このマークはメタデータタグを特定することにより明示的または暗示的である。メタデータタグはまた、関連するデータチャンクに含まれる最後のアプリケーションパケットの識別子を含む。この識別子は例えばタイムスタンプ値またはＵＵＩＤである。メタデータタグはまた、次のチャンクを保持する記憶デバイスの識別子、および次のチャンクの識別子または先行のチャンクの識別子または両者の識別子、例えばプレイセルＵＵＩＤを含むことができる。第１のチャンクが記憶デバイスから読み出され、再生のためにバッファされる間、そのメタデータタグは評価され、メッセージが少なくとも次の記憶デバイスに送信される。このメタデータタグは最初のチャンクの最後のパケットを識別し、かつ次のチャンクを識別する。第２の記憶デバイスが、例えばプレイセルＵＵＩＤを備える要求されたチャンクを自分が有することを検出すると、第２の記憶デバイスは第１のデバイスにより共通のデータ接続に再生されるデータを監視する。そして最後のパケットを検出すると、第２のデバイスは第２のチャンクのパケットの再生を開始する。個々のデータチャンクの長さに依存して、第２のデバイスはそのデータチャンクの第１のパケットを読み出すより十分に早期にメッセージを受信し、前もってパケットを一時バッファにバッファすることができる。これにより再生を、第２の記憶媒体からのデータ検索により形成される遅延なしで開始することができる。択一的に、第２デバイスに送信されるメッセージは現在再生されているチャンクの識別子、例えばそのプレイセルＵＵＩＤを含むことができ、第２のデバイスに記憶された第２のチャンクのメタデータタグはそれに先行するチャンクの識別子を含む。識別子が等しければ、第２のチャンクは第１のチャンクの最後のパケットの後に再生すべき次のチャンクであり、これはそのＡＴＳにより検出される。
【００１６】
従ってリアルタイムデータストリームを、種々異なるデバイスに記憶されるデータチャンクに分解することができ、これをシームレスに再生のために復元することができる。分散された記憶システムでこのように復元されたストリームを取り扱うために、本発明の方法は、データチャンクの全シーケンスをメタデータ記述子により記述する。この記述子は、分散型システムにより自動的に発生され、ナビゲーションデータとしてデータチャンクと関連付けられ、従ってデータチャンクのリンクリストを発生する。本発明によれば、メタデータ記述子は各チャンクごとに、オリジナルストリームを再構築するのに、すなわちデータを再生するのに必要なすべての情報を少なくとも含んでいる。このメタデータ記述子は少なくとも次の情報を含んでいる：データチャンクが所属するデータストリームに対する記述子、存在するならば先行のデータチャンクに対する記述子、存在するならば後続のデータチャンクに対する記述子、最後のパケットに対する記述子である。さらに次の情報をメタデータ記述子に記憶すると有利である：先行／後続のチャンクを保持すると予測される記憶デバイスに対する記述子、記録のデータおよび時間、データストリームのタイトル、そして最初のおよび／または最後のパケットのタイムスタンプ、すなわちＡＴＳである。これらのメタデータ記述子は、例えばチャンクに関連するメタデータ記述子がストリームに関連する他のメタデータ記述子を参照する場合には階層を含むことができる。
【００１７】
本発明の有利な実施例は従属請求項、以下の実施例、および図面に記載されている。
【実施例】
【００１８】
以下の本発明の方法の実施例の説明はＤＶＤストリーム記録規格に基づくものであるが、この方法はストリーム記録に対する他のいずれの規格によるデータに対しても同様に使用することができる。
【００１９】
図１は本発明の実施例を示し、これはメタデータ記述子によりリンクされた分散ストリームオブジェクトを記憶する分散型記憶システムである。この場合、２つのノードＮ１，Ｎ２がデータストリームのストレージに含まれている。このデータストリームはマルチユニットＳＯＢ＃１，...，ＳＯＢＵ＃ｊからなり、２つのデータチャンク１８，１９に分割されている。ＤＶＤストリーム記録規格は６４ｋＢ長のストリームオブジェクトユニット（ＳＯＢＵ）からなるストリームオブジェクト（ＳＯＢ）を、可変長アプリケーションパケットに対するコンテナとして定義する。図１では、第１の記憶デバイスＮ１がＳＯＢＵ＃１，．．．，ＳＯＢＵ＃ｉ−１を含むストリーム１８を、これが記憶エリアを有する限り記録する。記録中、第１の記憶デバイスはまたストリームオブジェクト１９を参照する情報ファイル１２と、プログラムに対する他のナビゲーション情報１４を発生し、記憶する。この情報ファイル１２はプレイリストと、ユニークなラベル、すなわちプレイセルＵＵＩＤ１、プレイセルＵＵＩＤ２によりラベルされたプレイセルを含む。情報ファイル１２はまたナビゲーションのためにマッピングリスト（ＭＡＰＬ）１６も含む。ＭＡＰＬには、各粗部に対する到着時間間隔がキャプチャされている。これは、これらの時間を相応するＳＯＢＵのアドレスに変換するのに用いられる。このＳＯＢＵは特定のパケット到着時間を備えるアプリケーションパケットを含んでいる。プレイリストは１つまたは複数のプレイセルの開始時間および終了時間を含む。さらにメタデータ記述子１０が発生され、情報ファイル１２またはストリームオブジェクト１８にそれぞれ添付される。最初にメタデータ記述子１０はプレイセルラベルとしてプレイセルＵＵＩＤ１を含んでいる。
【００２０】
第１の記憶デバイスＮ１が記録している間、接続された他の記憶デバイスは使用可能な記憶容量について監視される。択一的に例えば同報メッセージを接続されたすべての記憶デバイスに送信し、記憶エリアを要求することができる。これら記憶デバイスの１つＮ２が、現在アクティブなデバイスＮ１の潜在的後継者として選択される。第１の記憶デバイスＮ１の記憶容量が、ストリームの継続中に限界に近付くと、他の記憶デバイスＮ２がアクティベートされ、ストリームの記録を継続する。このデバイスＮ２は、第１の記憶デバイスＮ１に格納された最後のアプリケーションパケットのＡＴＳについて通告を受ける。これは最後に記憶されたユニットＳＯＢＵ＃ｉ−１に含まれている。第２の記憶デバイスＮ２他のストリームオブジェクト１９でストリームの記録を継続する。この別のストリームオブジェクト１９はユニットＳＯＢＵ＃ｉ，．．，ＳＯＢＵ＃ｊからなり、これらは第１のデバイスＮ１により記憶された最後のユニットＳＯＢＵ＃ｉ−１に続くものである。ここでこのストリームオブジェクト１９は後続のアプリケーションパケットを含む。第２の記憶デバイスはこのストリームオブジェクト１９に対して、ＭＡＰＬ１７、識別子１５およびメタデータ記述子１１を含む情報ファイル１３を発生する。メタデータ記述子１１はプレイセルラベル、プレイセルＵＵＩＤ１，プレイセルＵＵＩＤ２だけでなく、先行のデータチャンク、すなわちストリームオブジェクト１８を記録する他の記憶デバイスＮ１のメタデータ記述子１０に対するポインタも含む。同様に第１の記憶デバイスＮ１にあるメタデータ記述子１０も、これが第２の記憶デバイスＮ２へのポインタを含むように更新される。
【００２１】
本発明の実施例では、メタデータ記述子１０，１１は、どこに先行および／または後続のＳＯＢが記憶されているかという詳細な情報、すなわちアドレス、ファイル名またはパス名も含む。
【００２２】
分散型記憶システムに対する要求の１つは、ノードの記憶容量限界に達する際に分割されたファイルを自動的に自己編成することである。Ｐ２Ｐネットワークでは、ノード間のメッセージの自己制御交換がこのタスクのために使用される。図２は簡素化された分散型記憶システムモデルを示し、このモデルは２つの記憶ノードＮ１，Ｎ２と、入力サービスＩＳのための別個のノードＮ３を記録の場合に有する。例としてこれらのノードはＰ２Ｐネットワークのピアであると仮定される。従ってノード間のバス接続は以下に述べるように仮想接続であり、同じ物理的接続を使用する。データは例えば無線周波数受信器ＲＦＲを介して受信される。受信ノードＮ３の入力サービスＩＳ、例えばデコーダはアプリケーションパケットを抽出し、タイムスタンプをキャプチャし、アプリケーションパケットバスＡＰＢ上のパケットを記憶ノードＮ１，Ｎ２に分配する。記憶ノードＮ１，Ｎ２にはアプリケーションパケットバスＡＰＢ、入力バッファＩＢ１，ＩＢ２およびストリーム記録ユニットＳＲＵ１，ＳＲＵ２へのインタフェースが装備されている。ストリーム記録ユニットＳＲＵ１，ＳＲＵ２はストリーミングデータのナビゲーション情報を発生し、アプリケーションパケットをストリーミングパケットに、使用されるストリーム記録規格、例えばＤＶＤストリーム記録規格に対するＳＯＢＵに従ってパックする。各記憶ノードにあるストリーム記録ユニットは記憶媒体Ｄ１，Ｄ２、例えば光学的ディスクまたはハードディスクにアクセスし、ここにストリーミングパケットを格納する。ノードＮ１〜Ｎ３はメッセージコントローラＭＣ１〜ＭＣ３を有し、これらは共通のコントロールメッセージバスＣＭＢに接続されている。これによりノードはコントロールメッセージを交換することができ、必要であれば記録を編成し、ファイルを分割することができる。
【００２３】
ＤＶＤストリーム記録規格によれば、時間情報をすべてのアプリケーションパケットに添付し、格納された転送パケットの適切なリアルタイム再生を可能にしなければならない。アプリケーションタイムスタンプ（ＡＴＳ）のキャプチャは例えば入力サービスＩＳにより実行することができる。この入力サービスは転送ストリームをレシーバＲＦＲから受信し、デコードする。記憶ノードＮ１，Ｎ２の入力バッファＩＢ１，ＩＢ２は、ファイル分割が必要になったとき、タイムフレームをブリッジして１つノードから別のノードに切り換えるために使用される。図２には示されていないが、透過的なネットワークプロトコルをアプリケーションパケットバスＡＰＢに対して使用し、エラー接続データまたはリンクを追加するのも有利である。
【００２４】
さらに２つの記憶ノードＮ１，Ｎ２間のコントロールメッセージが交換される。このメッセージは発生されたプレイセルの識別子またはＵＵＩＤを含む。これらのＵＵＩＤはストリームの分割を記述するのに使用され、ストリームオブジェクトのメタデータ記述子に関連のノードで書き込まれる。メタデータ記述子はこの実施例では同じメディアにストリームオブジェクトとして格納される。上記のＤＶＤストリーム記録規格が使用されるなら、アプリケーションプライベートデータフィールドをメタデータ記述子に対するコンテナとして使用することができる。
【００２５】
図３にはバッファシナリオが示されており、これはストリームを記録する場合に１つのノードから別のノードに切り換えることを説明する。この実施例のシナリオでは、入力バッファへのデータストリームのバッファリングが最初は第１のノードＮｏｄｅ＿Ａにおいて時間ｔ０でスタートする。入力バッファの充填度Ｖin−Ｖoutは時間ｔ１まで上昇し、バッファされたデータは大容量記憶媒体に記録開始される。バッファをからにし、バッファされたデータを記録することは通常、新たなデータの受信とバッファリングより高速である。従ってバッファ充填度は平均値を中心に往復発振するが、この簡素化された図面ではバッファ充填度は一定であると仮定される。記憶ノードＮｏｄｅ＿Ａは自分の空き記憶容量を監視する。これが時間ｔ２でその容量限界にまもなく達することに気が付くと、このノードＮｏｄｅ＿Ａは「Call for free capacity（空き容量に対する要求）」を伴うメッセージを接続されている他のノードのいくつか、またはすべてに送信する。第２のノードＮｏｄｅ＿Ｂが後継者として選択される。Ｐ２Ｐネットワークではこれはネゴシエーションプロセスで実行される。別の場合は別のユニット、例えばメインサーバが後継のノードを選択する。第２のノードＮｏｄｅ＿Ｂが選択され、時間ｔ３でこれが入力ストリームをその入力バッファにバッファ開始することが分かると、この第２のノードはアクティブな記憶ノードＮｏｄｅ＿Ａにパラレルなスタンバイノードとされる。スタンバイノードＮｏｄｅ＿Ｂにバッファされたデータはまだ記録されていないから、バッファ充填度は上昇する。バッファが時間ｔ４でほぼ満杯となり、アクティブノードＮｏｄｅ＿Ａから「満杯」メッセージが受信されると、もっとも古くバッファされたデータはリングバッファのように上書きされる。この時間の間、バッファ充填度は一定である。なぜならバッファは満杯、またはほぼ満杯のままだからである。
【００２６】
第１のノードＮｏｄｅ＿Ａに空き記憶容量がなくなると、これは記録を停止し、「満杯」メッセージをスタンバイノードＮｏｄｅ＿Ｂに時間ｔ５で送信する。このメッセージは、最後に記録されたアプリケーションパケットのアプリケーションタイムスタンプ（ＡＴＳ）値を含む。しばらくして時間ｔ６でスタンバイノードＮｏｄｅ＿Ｂはこのメッセージを受信し、その記憶構築を完了する。その時点からスタンバイノードがアクティブノードと見なされる。このノードは、メッセージに含まれるＡＴＳを評価し、このメッセージに含まれるＡＴＳよりも高いＡＴＳを有する、バッファされたアプリケーションパケットの記録を開始する。他のアプリケーションパケットは破棄される。
【００２７】
記録プロセスでは、入力バッファからアプリケーションパケットを読み出し、これをストリーミングパケットに使用されるストリーミング規格に従いパッキングし、そしてこのストリーミングパケットを記憶媒体、例えばディスクに書き込む。従ってバッファ充填度は時間ｔ７まで減少し、上記のように平均レベルに達する。このレベルは例えばプログラミングするか、またはハードウエアにより規定することができる。入力バッファＢmaxのサイズは、第１のノードＮｏｄｅ＿Ａが「満杯」メッセージをｔ５で第２のノードＮｏｄｅ＿Ｂに送信する時点と、ｔ６での記録の開始との間の時間を十分にブリッジできるように選択しなければならない。この時間はまた上記のメッセージングと、第２のノードＮｏｄｅ＿Ｂでの記録プロセスの準備および構築も含む。バッファはこのタイムフレームの間に受信されたすべてのアプリケーションパケットを保持でいなければならない。
【００２８】
分散型記憶システムに格納されたストリーミングデータを連続的に再生するため、出力バッファが必要である。これはノード間で切り換えが行われる際にタイムスロットをブリッジする。図４は、再生の場合での簡素化された分散型記憶システムモデルを示す。このモデルは記憶ノードＮ１，Ｎ２と、表示サービスＤＳに対する１つのノードＮ３、例えばモニタを有する。記憶ノードＮ１，Ｎ２には、アプリケーションパケットバスＡＰＢ、出力バッファＯＢ１，ＯＢ２、バッファコントロールユニットＢＣＵ１，ＢＣＵ２、および記憶媒体Ｄ１，Ｄ２に接続された再生ユニットＰＵ１，ＰＵ２に対するインタフェースが装備されている。再生ユニットＰＵ１，ＰＵ２は、記憶媒体Ｄ１，Ｄ２から読み出されたストリーミングパケットをアプリケーションパケットに変換する。
【００２９】
さらにすべてのノードはメッセージコントローラＭＣ１〜ＭＣ３を有し、このメッセージコントローラはコントロールメッセージをコントロールメッセージバスＣＭＢ上で交換する。出力バッファＯＢ１，ＯＢ２は２つの機能を有する。第１の機能は、ノード間を切り換える間に、アプリケーションパケットデータを連続的に供給することである。第２の機能は、再生ユニットＰＵ１，ＰＵ２により供給されるデータ速度を所要のアプリケーションパケットデータ速度にマッチングすることである。例えば記憶媒体Ｄ１から第１のノードＮ１で読み出されたデータが再生される場合、それぞれのプレイリストに関連するメタデータタグは、そのストリームが完全にはこの媒体Ｄ１に格納されておらず、同じストリームの後続チャンクは別のノードＮ２に格納されていることを指示する。このメタデータタグはまた最後に格納されたアプリケーションパケットのＡＴＳ、および他のプレイセルの識別子を含む。このメタデータタグはさらに、このデータがどこに格納されているかについての詳細な情報も含む。
【００３０】
第１のノードＮ１がそのデータチャンクを共通の接続、例えばアプリケーションパケットバスＡＰＢ上で再生する間、メッセージコントローラＭＣ１はメッセージを別のノードのメッセージコントローラＭＣ２に送信し、それぞれ後続のデータストリームの再生に対する準備を要求する。このメッセージの受信に基づき、別のノードＮ２はデータをその記憶媒体Ｄ２から読み出し開始し、アプリケーションパケットをその出力バッファＯＢ２に、メッセージコントローラＭＣ２が「空き」メッセージをアクティブノードＮ１から受信するまでバッファする。アクティブ再生ユニットＰＵ１がその最後のアプリケーションパケットを出力バッファＯＢ１に書き込むと、アクティブノードＮ１は「空き」メッセージを別のノードＮ２に送信する。このメッセージの受信に基づき、別のノードＮ２はアクティブノードになる。次に第２のノードＮ２はバスＡＰＢ上でアプリケーションパケットのＡＴＳを、そのバッファコントロールユニットＢＣＵ２を使用して監視する。最後のパケットが検出されると、バッファコントロールユニットＢＣＵ２は出力バッファＯＢ２をイネーブルし、そのコンテンツをバスＡＰＢに出力させ、また再生ユニットＰＵ２をイネーブルし、さらなるデータを記憶媒体Ｄ２から出力バッファＯＢ２に読み出す。
【００３１】
図５に示されたバッファシナリオは、分散型ストリーム記録に対して、再生動作の際に１つのノードから別のノードに切り換えることを説明するものである。
【００３２】
ストリームの再生はまず第１のノードＮ１において時間ｔ０で開始される。使用されたバッファ充填ストラテジーに依存して、最初のディスク読み出しプロセスはバースト状データ特性を引き起こすことがある。これはバッファ充填度の変化として示されており、それからバッファは擬似的に安定した状態に時間ｔ１で達する。上記のデータバーストのため、バッファ充填度は常にこの擬似安定状態を中心に変化する。ストリーム分割を特徴付けるメタデータ記述子から第１のノードＮｏｄｅ＿Ａは、他のどのノードＮｏｄｅ＿Ｂが後継ノードであり、ストリーミングデータの次の部分を保持するかを知る。時間ｔ２で最後のパケットが読み出され、アクティブノードＮｏｄｅ＿Ａにバッファされ、このアクティブノードは「後継ノードに対する要求」メッセージを別のノードＮｏｄｅ＿Ｂに送信する。このメッセージは最後のアプリケーションパケットのタイムスタンプ値を含んでいる。後継ノードＮｏｄｅ＿Ｂはメッセージを受信し、再生プロセスを準備し、アプリケーションパケットのバッファを時間ｔ３で開始する。その出力バッファＯＢ２の充填度はその時から上昇する。ノード間が切り替わるときにシームレスな再生を達成するため、後継ノードＮｏｄｅ＿ＢはアプリケーションパケットバスＡＰＢから、アクティブノードＮｏｄｅ＿Ａにより送信されたアプリケーションパケットを読み出し、タイムスタンプを評価する。バッファコントロールユニットＢＣＵ２はこのＡＴＳを「後継ノードに対する要求」メッセージからのＡＴＳと比較する。これらのタイムスタンプが等しければ、これは第１のノードＮｏｄｅ＿Ａの出力バッファＯＢ２が時間ｔ４で空であることを意味し、出力バッファＯＢ２は瞬時のパケットの終了後にそのパケットをバスＡＰＢに転送開始する。これにより表示ノードＮ３の表示サービスＤＳはアプリケーションパケットをシームレスに２つの記憶ノードＮ１，Ｎ２から受信する。出力バッファＯＢ１，ＯＢ２のサイズは、再生プロセスのメッセージングと構築のための時間が後継ノードでブリッジされるように選択される。
【００３３】
以下、本発明の２つの実施例を説明する。この実施例は分散されたストリームのチャンクをシームレスに再生することができる。
【００３４】
図６は、再生のための簡素化された分散型記憶システムモデルを示す。このモデルは２つの記憶ノードＮ１，Ｎ２と、表示サービスのための１つのノードＮ３を備える。相応にこのモデルは記録のためにも使用できる。このモデルではストリームのすべての部分が１つのノードＮ１を介してルーティングされ、１つのバッファコントロールユニットＢＣＵ１だけがアクティブである。このノードだけがストリームのシームレスな再生を制御する。一方、別のノードＮ２はそのアプリケーションパケットをアプリケーションパケットバスＡＰＢに送信するのではなく、アクティブなバッファコントロールユニットＢＣＵ１に送信する。上記のように、Ｐ２Ｐネットワークの場合、この仮想拡張バスＸＢが同じ物理的接続である。
【００３５】
同様に図７は別の簡素化された、再生のための分散型記憶システムモデルを示す。このモデルは２つの記憶ノードＮ１，Ｎ２と、表示サービスのための１つのノードＮ３を有する。このモデルでバッファリングは表示サービスノードＮ３で実行され、このノードはストリームのシームレスな再生を制御する。この解決手段では、データを非記憶ノードでバッファすることが必要である。表示サービスノードＮ３のメッセージコントローラＭＣ３はメッセージをアクティブ記憶ノードＮ１から受信する。このメッセージは最後のアプリケーションパケットのＡＴＳを指示する。バッファコントロールユニットＢＣＵ３はバッファされたアプリケーションパケットのタイムスタンプを監視し、アクティブ記憶ノードＮ１からの最後のパケットの受信が検出されると、メッセージが後継ノードＮ２のメッセージコントローラＭＣ２に送信される。後継ノードは次にアプリケーションパケットをその記憶媒体Ｄ２から検索し、これを表示サービスノードＮ３の入力バッファＩＢ３に送信する。この入力バッファＩＢ３は、要求されたメッセージングとデータ検索時間の間をブリッジするのに十分なアプリケーションパケットを保持できなければならない。
【００３６】
本発明の方法はまた、単調な連続番号がアプリケーションデータパケットを識別するためのタイムスタンプの代わりに使用されるシステムでも使用することができる。この場合、番号はラップアラウンド後に誤解釈を防止するため十分長さでなければならない。これは例えばＴＣＰ／ＩＰパケットに対しては３２ビットである。
【００３７】
本発明の実施例では、種々異なる記憶デバイスが同じデバイス、例えば１つのマルチメディアレコーダ内のマルチハードディスクまたは他の磁気ディスクに配置されている。
【００３８】
本発明の実施例では、第２の記憶デバイスがいつデータのバッファを開始するかについてのメッセージを受け取らずに記録が実行される。その代わりに第２の記憶デバイスは入力データを連続的にバッファする。この場合、格納すべき第１のバッファされたアプリケーションパケットを識別するメッセージを受信するだけで十分である。
【００３９】
本発明の実施例では、メタデータ記述子は先行および／または後続のチャンクを保持すると予測される記憶デバイスに対する識別子を含む。
【００４０】
本発明の実施例では、メタデータ記述子はまた、どこに先行および／または後続のチャンクが格納されているかについての詳細な情報、例えばアドレス、ファイル名またはパス名も含む。
【００４１】
本発明の実施例では、データストリームは第１の記憶媒体が満杯になったときだけでなく、何らかの他の理由で第１の記憶デバイスに記録の問題が生じたときにも分割される。
【００４２】
本発明の方法は、識別子を備えるパケットのような識別可能なユニットからなるデータストリームを複数の記憶デバイスに記憶および復元するのに適する。さらにデータ復元はコピー、エンコーディング、転送または再生の目的のために使用することができる。
【図面の簡単な説明】
【００４３】
【図１】メタデータ記述子によりリンクされた分散型ストリームオブジェクトを示す図である。
【図２】記録の場合の分散型記憶システムモデルを示す図である。
【図３】記録中に１つの記憶デバイスから別の記憶デバイスにシームレスに切り換える場合のメッセージングとバッファリングのシナリオを示す図である。
【図４】再生の場合の分散型記憶システムモデルを示す図である。
【図５】再生中に１つの記憶デバイスから別の記憶デバイスにシームレスに切り換える場合のメッセージングとバッファリングのシナリオを示す図である。
【図６】再生の場合の分散型記憶システムモデルを示す図であり、すべてのチャンクは１つのノードを介してルーティングされる。
【図７】再生の場合の分散型記憶システムモデルを示す図であり、入力バッファが非記憶ノードにある。
【図１】
0004657652.tif 000002
【図２】
0004657652.tif 000003
【図３】
0004657652.tif 000004
【図４】
0004657652.tif 000005
【図５】
0004657652.tif 000006
【図６】
0004657652.tif 000007
【図７】
0004657652.tif 000008