(57)【要約】複数のプロセッサ２０５と、バックボーンスイッチ２０３と、複数の格納装置２０７と、複数のユーザプロセス５０３とを有する対話型ブロードバンドサーバシステム１０９。バックボーンスイッチはプロセッサ間の高速通信を可能にする。格納装置はタイトルを格納するプロセッサに分散され、各タイトルは格納装置に分配されるデータブロック５１３に分割される。ユーザプロセスは、複数の加入者位置１０５とのインタフェースのためプロセッサ上で実行されるよう構成される。各ユーザプロセスは、リクエストされたタイトルをバックボーンスイッチを介し２以上のプロセッサから抽出し、リクエストを行う加入者位置への送信のためリクエストされたタイトルを構成するよう動作する。格納装置は複数のＲＡＩＤグループ４０１に構成される。分散されたメディアリーダ２１９とライブラリ格納システム２０１が備えられてもよい。複数のアイソクロナスタイトルが下流方向の加入者に同時に送信されてもよい。ロード及び処理オーバヘッドを軽減するため、タイトルは前処理され、所定のフォーマットで格納されてもよい。
2005527130.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、
前記複数のプロセッサに接続され、該複数のプロセッサの各々の間の高速通信を可能にするバックボーンスイッチと、
前記複数のプロセッサに接続及び分散される複数の格納装置であって、各自が該複数の格納装置の２以上に分散されるデータブロックに分割される少なくとも１つのタイトルを格納する格納装置と、
複数の加入者位置のインタフェースをとるための前記複数のプロセッサ上での実行のための複数のユーザプロセスであって、各自が前記複数のプロセッサの２以上から前記バックボーンスイッチを介しリクエストされたタイトルを抽出し、リクエストを行う加入者位置への送信のため前記リクエストされたタイトルを構成するよう動作するユーザプロセスとからなることを特徴とする対話型ブロードバンドサーバシステム。
【請求項２】
請求項１記載の対話型ブロードバンドサーバシステムであって、前記複数の格納装置は複数のＲＡＩＤグループに構成され、格納された各タイトルのデータブロックは前記複数のＲＡＩＤグループに分散されていることを特徴とする対話型ブロードバンドサーバシステム。
【請求項３】
請求項２記載の対話型ブロードバンドサーバシステムであって、各データブロックはさらに前記複数のＲＡＩＤグループの１つに分散される複数のサブブロックに分割されることを特徴とする対話型ブロードバンドサーバシステム。
【請求項４】
請求項２記載の対話型ブロードバンドサーバシステムであって、ＲＡＩＤグループ抽出及び構成機能は前記複数のユーザプロセスに分散されていることを特徴とする対話型ブロードバンドサーバシステム。
【請求項５】
請求項１記載の対話型ブロードバンドサーバシステムであって、各ユーザプロセスは、前記バックボーンスイッチを介して、タイトルのリクエストを転送し、該リクエストされたタイトルのデータブロックの位置を特定するタイトルマップを受信し、該タイトルマップを利用して前記バックボーンスイッチを介し前記複数の格納装置から前記データブロックを抽出するよう動作することを特徴とする対話型ブロードバンドサーバシステム。
【請求項６】
請求項５記載の対話型ブロードバンドサーバシステムであって、各タイトルマップはタイトルの各データブロックが前記複数の格納装置のどこに格納されているかを定義することを特徴とする対話型ブロードバンドサーバシステム。
【請求項７】
請求項１記載の対話型ブロードバンドサーバシステムであって、さらに、
少なくとも１つのタイトルを格納するための少なくとも１つの格納ソースと、
前記複数のプロセッサの少なくとも１つで実行され、各自が前記少なくとも１つの格納ソースからタイトルを抽出し、該タイトルをデータブロックに分割し、前記複数のプロセッサ及び前記バックボーンスイッチを介し前記複数の格納装置に前記データブロックを分散させるよう構成された少なくとも１つのロードプロセスとを備えることを特徴とする対話型ブロードバンドサーバシステム。
【請求項８】
請求項７記載の対話型ブロードバンドサーバシステムであって、さらに、
前記複数のプロセッサの少なくとも１つで実行され、各自がリクエストされたタイトルのデータブロックを前記複数の格納装置から抽出し、該抽出されたデータブロックをリクエストを行ったユーザプロセスに転送するよう構成された少なくとも１つの抽出プロセスを備えることを特徴とする対話型ブロードバンドサーバシステム。
【請求項９】
請求項７記載の対話型ブロードバンドサーバシステムであって、前記複数のプロセッサの少なくとも１つは前記複数の格納装置に格納された各タイトルのためのタイトルマップを有するマスタディレクトリを備えたディレクトリプロセスを実行し、各自が対応するタイトルの各データブロックを配置するタイトルマップを有することを特徴とする対話型ブロードバンドサーバシステム。
【請求項１０】
請求項９記載の対話型ブロードバンドサーバシステムであって、前記ディレクトリプロセスは、前記複数のユーザプロセスの何れかからタイトルリクエストを受信し、前記複数の格納装置において格納スペースを割り当て、対応するタイトルマップを生成し、前記少なくとも１つの格納ソースから前記複数の格納装置に前記リクエストされたタイトルのコピーを転送するためロードプロセスを呼び出し、前記複数のユーザプロセスの何れかにタイトルマップを転送するよう動作し、前記ロードプロセスは対応するタイトルマップに従って各データブロックを格納することを特徴とする対話型ブロードバンドサーバシステム。
【請求項１１】
請求項９記載の対話型ブロードバンドサーバシステムであって、前記ディレクトリプロセスは、前記複数の格納装置に格納スペースを割り当てるとき、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）ポリシーを利用することを特徴とする対話型ブロードバンドサーバシステム。
【請求項１２】
請求項９記載の対話型ブロードバンドサーバシステムであって、前記複数の格納装置は複数のＲＡＩＤグループに構成され、格納されている各タイトルのデータブロックは前記複数のＲＡＩＤグループに均等に分散されていることを特徴とする対話型ブロードバンドサーバシステム。
【請求項１３】
請求項７記載の対話型ブロードバンドサーバシステムであって、前記少なくとも１つの格納ソースは、各自が前記複数のプロセッサの対応するプロセッサと接続され、少なくとも１つのタイトルを格納する記憶メディアを受け入れるよう構成された複数のメディアリーダを備えることを特徴とする対話型ブロードバンドサーバシステム。
【請求項１４】
請求項１３記載の対話型ブロードバンドサーバシステムであって、前記複数のメディアリーダの各々は光ディスクドライブを備えることを特徴とする対話型ブロードバンドサーバシステム。
【請求項１５】
請求項１３記載の対話型ブロードバンドサーバシステムであって、前記少なくとも１つの格納ソースは、複数のタイトルを格納するための複数の記憶メディアを有し、前記バックボーンスイッチを介しタイトルリクエストを受信し、前記複数のメディアリーダの何れかに対応する記憶メディアをロードするよう構成されたライブラリ格納システムを備えることを特徴とする対話型ブロードバンドサーバシステム。
【請求項１６】
請求項１３記載の対話型ブロードバンドサーバシステムであって、前記複数のプロセッサの各々は、前記複数の格納装置に接続された第１周辺インタフェースと、前記複数のメディアリーダに接続された第２周辺インタフェースと、前記バックボーンスイッチのポートに接続された第３周辺インタフェースと、前記複数の加入者位置の少なくとも１つとインタフェースをとるための第４周辺インタフェースとを有するパーソナルコンピュータ（ＰＣ）構成要素を備えたＰＣシステムを有することを特徴とする対話型ブロードバンドサーバシステム。
【請求項１７】
請求項１記載の対話型ブロードバンドサーバシステムであって、前記複数のプロセッサは、処理サポートシステムとビジネスサポートシステムを実行する管理プロセッサを有することを特徴とする対話型ブロードバンドサーバシステム。
【請求項１８】
請求項１記載の対話型ブロードバンドサーバシステムであって、前記バックボーンスイッチはイーサネット（登録商標）スイッチを備えることを特徴とする対話型ブロードバンドサーバシステム。
【請求項１９】
請求項１記載の対話型ブロードバンドサーバシステムであって、少なくとも１つのタイトルは、ロード及び処理オーバヘッドを軽減するため、前処理され、所定のフォーマットで格納されることを特徴とする対話型ブロードバンドサーバシステム。
【請求項２０】
請求項１９記載の対話型ブロードバンドサーバシステムであって、前記少なくとも１つのタイトルは、予め暗号化され、予め計算された冗長情報を有し、転送プロトコルを含むことを特徴とする対話型ブロードバンドサーバシステム。
【請求項２１】
請求項１記載の対話型ブロードバンドサーバシステムであって、１つのプロセッサ上で実行される複数のプロセスの少なくとも１つは他のプロセッサ上でシャドウ処理されることを特徴とする対話型ブロードバンドサーバシステム。
【請求項２２】
請求項２１記載の対話型ブロードバンドサーバシステムであって、前記複数のプロセッサの各々はシャドウ処理を実行するプロセッサへのハートビート信号を生成することを特徴とする対話型ブロードバンドサーバシステム。
【請求項２３】
請求項２２記載の対話型ブロードバンドサーバシステムであって、各ハートビート信号は、加入者位置に送られるタイトルのマスタプロセスの位置を示し、ハートビートステータス標識として機能する数値であることを特徴とする対話型ブロードバンドサーバシステム。
【請求項２４】
請求項２１記載の対話型ブロードバンドサーバシステムであって、さらに、
第１プロセッサの出力に接続される第１ポートと、前記第１プロセッサによりサポートされる第１加入者位置とのインタフェースのための第２ポートと、前記第１プロセッサをシャドウ処理する第２プロセッサの出力に接続される第３ポートと、前記第２プロセッサによりサポートされる第２加入者位置とのインタフェースのための第４ポートとを有する出力スイッチを備えることを特徴とする対話型ブロードバンドサーバシステム。
【請求項２５】
複数の双方向ポートを含むバックボーンスイッチと、
複数のディスクドライブを備えたディスクアレイであって、該ディスクアレイに分散される複数のデータブロックに分割された複数のタイトルを格納するディスクアレイと、
各自が前記バックボーンスイッチのポートに接続された第１インタフェースと、前記ディスクアレイの少なくとも１つのディスクドライブに接続された第２インタフェースと、複数の加入者装置とのインタフェースのためのネットワークに接続するための第３インタフェースとを含む複数のインタフェースを有する複数のプロセッサと、
前記複数のプロセッサ上の実行のためであり、各プロセッサが前記複数のプロセッサの２以上からリクエストされたタイトルの複数のデータブロックを抽出し、前記リクエストされたタイトルを構成し、前記第３インタフェースを介し前記リクエストされたタイトルを送信することを可能にする複数のプロセスとからなることを特徴とする対話型ブロードバンドサーバシステム。
【請求項２６】
請求項２５記載の対話型ブロードバンドサーバシステムであって、前記ディスクアレイは複数のＲＡＩＤグループに構成され、格納されている各タイトルのデータブロックは前記複数のＲＡＩＤグループに分散されることを特徴とする対話型ブロードバンドサーバシステム。
【請求項２７】
請求項２６記載の対話型ブロードバンドサーバシステムであって、各ＲＡＩＤグループは、各自が前記複数のプロセッサの異なる１つに接続された複数のディスクドライブを備えることを特徴とする対話型ブロードバンドサーバシステム。
【請求項２８】
請求項２７記載の対話型ブロードバンドサーバシステムであって、各データブロックはさらに、各自がＲＡＩＤグループの別のディスクドライブに格納された複数のサブブロックに分割されることを特徴とする対話型ブロードバンドサーバシステム。
【請求項２９】
請求項２５記載の対話型ブロードバンドサーバシステムであって、複数のタイトルの各々は、前記複数のプロセッサの対応する第３インタフェースを介し対応する複数の加入者装置に同時に送られるアイソクロナスデータコンテンツを有することを特徴とする対話型ブロードバンドサーバシステム。
【請求項３０】
請求項２５記載の対話型ブロードバンドサーバシステムであって、さらに、
複数のメディアリーダと、
各自が前記複数のメディアリーダの１つに接続された第４インタフェースをさらに有する前記複数のプロセッサの複数のインタフェースと、
前記バックボーンスイッチのポートに接続され、複数のタイトルをまとめて格納する複数の記憶メディアを備え、前記バックボーンスイッチを介しタイトルリクエストを受信し、前記複数のメディアリーダの利用可能な何れかに対応する記憶メディアをロードするよう構成されたライブラリ格納システムとを備えることを特徴とする対話型ブロードバンドサーバシステム。
【請求項３１】
請求項３０記載の対話型ブロードバンドサーバシステムであって、前記複数のプロセスは、タイトルをメディアリーダから抽出し、前記タイトルをデータブロックに分割し、前記データブロックを前記複数のプロセッサを介し前記ディスクアレイに分散させるよう構成された少なくとも１つのロードプロセスを含むことを特徴とする対話型ブロードバンドサーバシステム。
【請求項３２】
請求項３１記載の対話型ブロードバンドサーバシステムであって、前記ロードプロセスはさらに、前記タイトルの各データブロックを配置するタイトルマップを生成することを特徴とする対話型ブロードバンドサーバシステム。
【請求項３３】
請求項３２記載の対話型ブロードバンドサーバシステムであって、前記複数のプロセスは、前記タイトルマップを抽出し、該タイトルマップを利用して前記タイトルの各データブロックを抽出するプロセッサ上で実行される少なくとも１つのユーザプロセスを有することを特徴とする対話型ブロードバンドサーバシステム。
【請求項３４】
請求項２５記載の対話型ブロードバンドサーバシステムであって、ロード及び処理オーバヘッドを軽減するため、少なくとも１つのタイトルが前処理され、所定のフォーマットで格納されることを特徴とする対話型ブロードバンドサーバシステム。
【請求項３５】
請求項３４記載の対話型ブロードバンドサーバシステムであって、前記少なくとも１つのタイトルは予め暗号化されることを特徴とする対話型ブロードバンドサーバシステム。
【請求項３６】
請求項３４記載の対話型ブロードバンドサーバシステムであって、前記少なくとも１つのタイトルは予め計算された冗長情報を含むことを特徴とする対話型ブロードバンドサーバシステム。
【請求項３７】
請求項３４記載の対話型ブロードバンドサーバシステムであって、前記少なくとも１つのタイトルは予め格納された転送プロトコルを含むことを特徴とする対話型ブロードバンドサーバシステム。
【請求項３８】
請求項３４記載の対話型ブロードバンドサーバシステムであって、前記少なくとも１つのタイトルは格納されているタイトルコンテンツ内の特定位置への複数のポインタを含むことを特徴とする対話型ブロードバンドサーバシステム。
【請求項３９】
請求項３８記載の対話型ブロードバンドサーバシステムであって、前記複数のポインタは複数のタイムスタンプを含むことを特徴とする対話型ブロードバンドサーバシステム。
【請求項４０】
複数のポートを有するバックボーンスイッチと、
各自が前記複数のポートの１つを介し前記バックボーンスイッチに接続された複数のプロセッサと、
各自が前記複数のプロセッサの対応するプロセッサに接続された複数のメディアリーダと、
前記バックボーンスイッチのポートに接続され、複数のタイトルをまとめて格納する複数の記憶メディアを有し、プロセッサからタイトルリクエストを受信し、前記複数のメディアリーダの利用可能な何れかに対応する記憶メディアをロードするよう構成されたライブラリ格納システムと、
前記複数のプロセッサに分散された複数の格納装置と、
前記複数のプロセッサ上で実行され、一括的にタイトルリクエストを送信し、前記利用可能なメディアリーダからリクエストされたタイトルを抽出し、前記リクエストされたタイトルを前記複数の格納装置に格納し、前記リクエストされたタイトルを前記複数のプロセッサの１つに送る少なくとも１つのプロセスとからなることを特徴とする対話型コンテンツエンジン。
【請求項４１】
請求項４０記載の対話型コンテンツエンジンであって、前記複数のプロセスは、前記タイトルリクエストを前記ライブラリ格納システムに転送し、前記リクエストされたタイトルをメディアリーダから抽出し、前記リクエストされたタイトルをデータブロックに分割し、前記データブロックを前記複数のプロセッサを介し前記複数の格納装置に格納し、前記リクエストされたタイトルの各データブロックを配置するタイトルマップを生成する少なくとも１つのロードプロセスと、前記タイトルマップを抽出し、該タイトルマップを利用して前記リクエストされたタイトルの各データブロックを抽出する少なくとも１つのユーザプロセスとを備えることを特徴とする対話型コンテンツエンジン。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［関連出願の相互参照］
本出願は、２００１年１１月２８日に出願された米国仮特許出願第６０／３３３，８５６号「対話型ブロードバンドサーバシステム」に基づくものであり、その内容が参照することによりここに含まれる。
［発明の技術分野］
本発明は、対話型ブロードバンドサーバシステムに関し、より詳細には、ビデオオンデマンド（ＶＯＤ）サービスの送信に利用されるような多数の同時アイソクロナス（ｓｉｍｕｌｔａｎｅｏｕｓ  ｉｓｏｃｈｒｏｎｏｕｓ）データストリームを含む多様なデータ及びサービスを送信することが可能な対話型ブロードバンドサーバシステムに関する。
［関連技術の説明］
対話型ブロードバンドサーバ（ＩＢＳ）システムは、多様なデータを送信し、多くの同時サービスを提供する装置である。そのようなサービスには、予め記録された映像（クリップからスポット、映画まで）からの映像ストリーム、略リアルタイムのイベントからの映像ストリーム、双方向音声データ、データ伝送ダウンロード、データベース相互作用、クレジットカード取引のサポート、対話型シミュレーション及びゲーム、マルチメディアコンテンツの配信、既知あるいは将来の他の任意のサービスが含まれてもよい。ＩＢＳシステムは、数千の同時アイソクロナスデータストリームを提供することが望ましい。ここで「アイソクロナス」とは、時間に依存したデータストリームを表し、ストリームの一貫性を保つため中断なく連続的に送信される必要のあるデータストリームを表している。アイソクロナスデータストリームの例として、生放送のテレビ映像の供給、トレーニングビデオ、映画及び個別にリクエストされた広告のような受信と同時に送信されるリアルタイムの映像及び音声が含まれる。ＩＢＳシステムはまた、ネットワーク管理のための提供しながら、すべてのサービスの正確な追跡、把握、格納及び請求を行わねばならない。基本的に同様の装置を説明するのに利用される他の用語として、映像サーバ、メディアサーバ、対話型ブロードバンドサーバ、対話型コンテンツエンジン、帯域幅乗算器及びメトロポリタンメディアサーバなどが含まれる。
【０００２】
分散処理システムを利用したものに対して、１以上の大容量集中サーバを特徴付ける実施例を含むＩＢＳシステムを実現する試み及び提案がなされてきた。この試みは、コスト効果的かつ実践的な設計を維持する一方、高品質のサービスを数千のユーザに送信することが可能なＩＢＳシステムを提供することにある。従来のサーバの設計はあるタイトルの１つの複製から生成される出力ストリームの数に制限があった。これにより、人気のあるタイトルには冗長な記憶が必要であり、どのタイトルの人気が出るかについての予めの情報が必要とされる（あるタイトルの人気があるとわかると、それを複製するための帯域幅の余地はないかもしれない）。
［発明の概要］
本発明の一実施例による対話型ブロードバンドサーバシステムは、複数のプロセッサ、バックボーンスイッチ、複数の格納装置及び複数のユーザプロセスを有する。バックボーンスイッチは、プロセッサ間の高速通信を可能にする。格納装置は少なくとも１つのタイトルを格納するプロセッサに接続及び分散され、各タイトルは２以上の格納装置に分散されるデータブロックに分割される。ユーザプロセスは、複数の加入者位置とのインタフェースのためプロセッサ上で実行されるよう構成される。各ユーザプロセスは、リクエストされたタイトルをバックボーンスイッチを介し２以上のプロセッサから抽出し、リクエストを行う加入者位置への送信のためリクエストされたタイトルを構成するよう動作する。
【０００３】
一実施例では、格納装置は、複数のＲＡＩＤグループに構成され、格納されている各タイトルのデータブロックがＲＡＩＤグループに分散されている。一構成では、例えば、各データブロックはあるＲＡＩＤグループに分散された複数のサブブロックに分割される。このＲＡＩＤの実施例では、ＲＡＩＤグループの抽出及び構成機能がユーザプロセスに分散されているかもしれない。
【０００４】
他の実施例では、対話型ブロードバンドサーバシステムは、複数の双方向ポート、ディスクアレイ、複数のプロセッサ及び複数のプロセスを含むバックボーンスイッチから構成される。ディスクアレイは、複数のディスクドライブを備え、複数のデータブロックに分割される複数のタイトルを格納する。データブロックはディスクアレイに分散されている。各プロセッサは、バックボーンスイッチのポートに接続される第１インタフェース、ディスクアレイの少なくとも１つのディスクドライブに接続される第２インタフェース及び複数の加入者装置とのインタフェースのためネットワークに接続する第３インタフェースを含む複数のインタフェースを有する。このプロセスにより、各プロセッサは２以上のプロセッサからリクエストされたタイトルのデータブロックを抽出し、このリクエストされたタイトルを構成し、第３インタフェースを介しリクエストされたタイトルを送信することができる。
【０００５】
加入者装置への送信には、任意のタイプのコンテンツが考えられる。一実施例では、複数のタイトルの各々は、プロセッサの対応する第３インタフェースを介し対応する複数の加入者装置に同時に送信されるアイソクロナスデータコンテンツから構成される。
【０００６】
本システムは、各自が対応するプロセッサに接続される複数のメディアリーダと、ライブラリ格納システムを備えてもよい。一実施例では、プロセッサはメディアリーダに接続するための追加的なインタフェースを備えている。ライブラリ格納システムは、複数のタイトルを格納した複数の記憶メディアを有し、バックボーンスイッチのポートに接続される。ライブラリ格納システムは、バックボーンスイッチを介しタイトルリクエストを受信し、対応する記憶メディアを複数の記憶メディアの利用可能な何れかにロードするよう構成される。
【０００７】
複数のプロセスは、メディアリーダからタイトルを抽出し、このタイトルをデータブロックに分割し、データブロックをプロセッサを介しディスクアレイに分配するよう構成された少なくとも１つのロードプロセスを備えてもよい。ロードプロセスは、タイトルの各データブロックの位置に関するタイトルマップを生成してもよい。複数のプロセスはさらに、タイトルマップを抽出し、それを使ってタイトルの各データブロックを抽出するプロセッサ上で実行される少なくとも１つのユーザプロセスを備えてもよい。
【０００８】
ロード及び処理オーバヘッドを軽減するため、タイトルは前処理され、所定のフォーマットで格納される。前処理の例として、予めの暗号化、予めの計算、冗長情報、予め格納された転送プロトコル、様々な理由により格納されたタイトルコンテンツ内の特定位置へのポインタなどがあげられる。ポインタは、例えば、タイムスタンプから構成されていてもよい。
【０００９】
本発明の一実施例による対話型コンテンツエンジンは、複数のポート、複数のプロセッサ、複数のメディアリーダ、ライブラリ格納システム、格納装置、及びプロセッサ上で実行される少なくとも１つのプロセスを有するバックボーンスイッチを備える。この少なくとも１つのプロセスは、一括的に、タイトルリクエストを送信し、利用可能なメディアリーダからリクエストされたタイトルを抽出し、このリクエストされたタイトルを格納装置に格納し、このリクエストされたタイトルを複数のプロセッサの１つに送信する。
【００１０】
本発明のより完全なる理解のため、添付された図面とともになされる以下の説明に対する参照がなされる。ここで同一の参照番号は同一の特徴を示している。
［発明の実施例の詳細な説明］
本発明の一実施例による対話型ブロードバンドサーバシステムは、コンテンツの冗長な格納の必要性と、共存するタイトル毎の事前の格納管理を回避することにより、従来のサーバの最も問題となる特徴を解決する。どのタイトルが最も人気となるかについての先行知識は必要とされず、タイトルの１つのコピーが、サーバの最大ストリーム出力容量まで、それぞれが当該タイトルのやや異なる（個々に制御された）時点で任意数の同時ユーザに利用されてもよい。
【００１１】
ここで説明される実施例では、上記容量は、ディスクドライブのアレイ上の各タイトルの「ブロック（ｃｈｕｎｋ）」を形成することにより行われる。ここで、各ブロックは一定の記憶量または一定の時間量を表す。あるタイトルにアクセスする各ユーザ処理には、当該タイトルの各ブロックの位置が与えられ、それらを独立した（大部分の場合）アイソクロナス出力ストリームに再構成する。各ブロックは、例えば、ドライブごとに１つのサブブロックで５つの「サブブロック」にというようなＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋ）で格納される。これら５つのサブブロックは２０％の冗長情報を含み、ドライブやプロセッサの故障の場合には、消失したサブブロックの再構築が可能となる。このアプローチは、すべての出力ストリームが１つのタイトルから生成されること、あるいは各出力ストリームが異なるタイトルから生成されることを可能にし、すべてのプロセッサ及びバックボーン（バックプレーン）スイッチに等しく分散された負荷を与える。管理は自動であり、コンテンツの人気に関する先行知識は必要でない。新しいタイトルがライブラリからリクエストされると、ハードドライブ記憶装置の最近最も利用されていない（ＬＲＵ）タイトルが領域確保のため消去される。各サブブロックは、それが最近最も利用されていないサブブロックになるまで格納されているプロセッサのメモリに同様にキャッシュされ、現在リクエストされているものの領域確保のため消去される。サーバ資源の割り当ては自動であり、瞬間的な要求に基づくものである。
【００１２】
図１は、本発明の一実施例により構成された対話型ブロードバンドサーバ（ＩＢＳ）システム１０９を有する通信システム１００の簡素化されたブロック図である。ＩＢＳシステム１０９は、一例となる便利な配信地点１０１に位置し、ネットワーク通信システム１０７と、データ及びサービスを１以上の加入者位置１０５に配信する一例となる配信ネットワーク１０３を介し接続されている。以下に説明されるように、ＩＢＳシステム１０９は加入者位置１０５への配信のため蓄積された（典型的には、符号化、暗号化及び／または圧縮された）コンテンツを有するライブラリ記憶システム２０１（図２）を内蔵する。加入者位置１０５の任意の１以上からの加入者情報が分散地点１０１への上流への転送が実行される双方向通信がサポートされる。ネットワーク通信システム１０７は、非同期転送モード（ＡＴＭ）、イーサネット（登録商標）ネットワーク、無線デジタル加入者線（ＤＳＬ）やＨＦＣ（Ｈｙｂｒｉｄ  Ｆｉｂｅｒ  Ｃｏａｘ）ネットワークのような、アイソクロナスデータの送信をサポートし、加入者位置１０５への下流方向への転送のためのデータを変調し、加入者情報の受信及び復調を行うための上流方向チャンネルへの調整を行う任意のタイプのデータネットワークであってもよい。
【００１３】
１以上のコンピュータネットワーク１１１（例えば、インターネット）や他のコンテンツシステムのような、電話情報、衛星通信システム、有線放送システム１１６（例えば、マイクロ波タワー）などの任意の組み合わせを表す多くの異なるタイプの情報ソースが考えられる。コンピュータネットワーク１１１は、任意のタイプのローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）あるいはインターネットなどを含むグローバルなコンピュータネットワークを含んでもよい。他のコンテンツシステム１１３は、公衆交換電話網（ＰＳＴＮ）を含むものであってもよく、及び／またはテレビ放送コンテンツなどの任意のタイプの情報の送受信に利用されてもよい。コンピュータネットワーク１１１及び／または他のコンテンツシステム１１３は、配信地点１０１（例えば、ヘッドエンドとして）に配置されてもよいし、上流方向に配置され、光ファイバリンクのような適切なデータ転送機構を介し送信されてもよい。特定の構成に依存して、コンピュータネットワーク１１１及び／または他のコンテンツシステム１１３のそれぞれが直接ネットワーク通信システム１０７に接続されてもよく、加入者位置１０５への配信のためＩＢＳシステム１０９を介し接続されてもよい。配信地点１０１は、例えば、内部サーバ、ファイアウォール、インターネットプロトコル（ＩＰ）ルータ、信号合成器、チャンネルリマッパ（ｃｈａｎｎｅｌ  ｒｅ−ｍａｐｐｅｒ）のようなデータ送信のための適当な装置を含んでいてもよい。
【００１４】
ネットワーク通信システム１０７及び配信ネットワーク１０３の特定の構成は、利用される特定のアーキテクチャ及び技術に依存する。一実施例では、配信ネットワーク１０３は、加入者メディアがローカルノード（例えば、光と電子フォーマット間の変換を提供する光ノードなど）から各加入者位置１０５に配信される同軸ケーブルを含むＨＦＣネットワークに従い構成される。ＨＦＣ構成では、ソース情報がヘッドエンドから複数の配信ハブのそれぞれに配信され、さらにソース情報は１以上の光ノードなどに配信され、続いて同軸ケーブルのような対応する加入者メディアリンクを介して１以上の加入者位置１０５に配信される。そのような構成では、配信地点１０１はヘッドエンド、配信ハブまたは光ノードの何れか１つを表すかもしれない。各配信地点は連続するより小さな地理上の領域をサポートする。例えば、ヘッドエンドは大都市領域全体のような比較的大きな地理上の領域をサポートし、さらに、各自が配信ハブによりサポートされるより小さな領域に分割される。各配信ハブによりサポートされる領域は、さらに、大都市領域内の複数近傍のような、各自が対応する光ノードによりサポートされるより小さい領域に分割される。
【００１５】
例えば、ＳＯＮＥＴ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｏｐｔｉｃａｌ  Ｎｅｔｗｏｒｋ）リングなどのような光リンクが利用されてもよい。任意の既知あるいは将来的に開発されるメディアがネットワークの各通信リンクに対し考えられると理解される。ＨＦＣ実施例では、例えば、各光ノードは上流の配信地点から光信号を受信し、この光信号を合成された電気信号に変換し、同軸ケーブルを介し合成された電気信号を対応する地理的サービス領域の複数の加入者位置１０５のそれぞれに配信する。加入者情報は電子フォーマット（例えば、無線周波数（ＲＦ）信号）で転送され、各光ノードで合成され、合成された光信号を対応する配信ハブに上流方向の転送を行う。
【００１６】
各加入者位置１０５は、特定の加入者位置１０５のための合成された電気信号からソース情報を調整、復号及び復調するセットトップボックス、同軸ケーブル、ＤＳＬモデムなどのようなユーザ宅内機器（ＣＰＥ）（図示せず）を含む。各加入者位置１０５におけるＣＰＥは、加入者情報をＲＦ信号などに符号化、変調及びアップ変換する変調器などを含んでもよい。各加入者位置１０５からの上流方向ＲＦ信号が適切な加入者媒体（またはメディア）で対応するノードに送信され、加入者信号を光信号に変換する。例えば、レーザを使って、リターン信号を光信号に変換し、この戻り光信号を他の光ファイバケーブルを介しある配信ハブの光受信機に送信してもよい。
【００１７】
ケーブル及び電話産業により開発されたブロードバンドネットワーク技術の何れかのような他のブロードバンドネットワーク環境が考えられる。一例として、下流方向により大きな帯域幅を割り当てるため上流方向の帯域幅を削減する非同期デジタル加入者線（ＡＤＳＬ）技術があげられる。電話産業のＦＩＴＣ（Ｆｉｂｅｒ−ｔｏ−ｔｈｅ−Ｃｕｒｂ）アーキテクチャが、マルチチャンネル、マルチポイント配信サービス（ＭＭＤＳ）あるいはセルアプローチを利用したローカルマルチポイント配信サービス（ＬＭＤＳ）と共に考えられる。
【００１８】
ソース及び加入者情報は、映像、音声、他のデータ信号などの任意の組み合わせを含み、様々なフォーマットの何れであってもよい。ソース情報は、インターネットプロトコル（ＩＰ）パケット、イーサネット（登録商標）フレーム、ＡＴＭセルなどの配信ハブに提供されるような固定あるいは可変サイズのフレーム、パケットまたはセルをもたらすかもしれない。離散コサイン変換（ＤＣＴ）や、ＭＰＥＧ−１、ＭＰＥＧ−２やＭＰＥＧ−４などのＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅｓ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）により開発された規格群のようなデジタル映像圧縮技術が考えられる。例えば、ＭＰＥＧ−２規格は、従来からのテレビ、高品位テレビ（ＨＤＴＶ）及び５チャンネルサラウンドサウンドを含む広範囲の音声／映像フォーマットをサポートする。ＭＰＥＧ−２は、ＤＶＤ（デジタル多用途ディスクあるいはデジタルビデオディスク）映画で利用される放送用画質解像度を提供し、所望のＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）に応じて、４〜２０Ｍｂｐｓ（Ｍｅｇａｂｉｔｓ  ｐｅｒ  ｓｅｃｏｎｄ）の帯域幅を要する。この送信データ及び情報には、加入者位置１０５における任意の１以上の特定加入者装置を示す１以上の宛先アドレスなどが含まれてもよい。各加入者位置１０５におけるＣＰＥは、情報を受信し、この受信情報を復調し、加入者にもとのコンテンツを送信するためのアドレス情報を復号する適当な通信装置を含む。上流方向の加入者情報は同様の方法により扱われてもよい。
【００１９】
図２Ａは、ＩＢＳシステム１０９の一実施例のブロック図である。ＩＢＳシステム１０９は、バックボーンまたはバックプレーンスイッチ２０３に接続されたライブラリ記憶システム２０１を有し、さらにそれぞれＰ１、Ｐ２、…、Ｐｎ（ｎは正の整数）とラベル付けされたプロセッサ２０５のそれぞれに接続される。各プロセッサ２０５は、ディスクアレイ２０７として構成された１以上のハードディスクドライブを備え、さらにそれぞれＭＤ１、ＭＤ２、…、ＭＤｎとラベル付けされた変調／復調（ＭＯＤ／ＤＥＭＯＤ）２０９の対応する１つに接続される。バックボーンスイッチ２０３に接続されたオペレーションサポートシステム（ＯＳＳ）２１１及びビジネスサポートシステム（ＢＳＳ）２１３を含む管理プロセッサ２１０がまた示される。しかしながら、ここで、管理プロセッサ２１０は付随的なものであり、ＯＳＳ２１１及びＢＳＳ２１３を含む管理機能はプロセッサ２０５間で分散されてもよい。
【００２０】
ディスクアレイ２０７は、それぞれＰａＤｂ（ａはプロセッサ番号を、ｂはディスク番号を表し、それらは１からｘまでの値をとる）とラベル付けされる。番号ｘは、ディスクアレイ２０７のプロセッサあたりのディスクドライブ数を表す正の整数である。一例となる構成では、ｎは１００、ｘは８であり、これにより、１００個のプロセッサ２０５と、合計でｎ×ｘ＝８００個のディスクドライブが存在することになる。以下で説明されるように、ディスクアレイ２０７はさらに、複数のプロセッサ２０５と複数のディスクドライブにデータ群あるいはデータブロックを分散するための複数のＲＡＩＤに構成される。ＭＯＤ／ＤＥＭＯＤ２０９は、ネットワーク通信システム１０７に含まれ、データの対応する加入者位置１０５への下流方向の送信のため各プロセッサ２０５からのデータ及び情報を変調し、各プロセッサ２０５による利用のため上流方向の加入者データ及び情報を復調するよう各ＭＯＤ／ＤＥＭＯＤ２０９は動作する。
【００２１】
ライブラリ格納システム２０１は、様々な方法の何れかにより構成可能であり、その特定の構成及び動作は本開示の範囲を越えるものである。一般に、各プロセッサ２０５は、バックボーンスイッチ２０３を介しライブラリ格納システム２０３に「タイトル」（例えば、ビデオ、映画など）のリクエストや他のコンテンツのリクエストを送信するよう構成され、ライブラリ格納システム２０１はリクエストされたデータを転送することにより、あるいは、例えば、対応する光ディスク（例えば、ＤＶＤ）やテープカートリッジなどをロードするなどリクエストされたタイトルを含むメディアにアクセスすることにより応答する。一実施例では、ロードされたデータ及び情報は、バックボーンスイッチ２０３を介しリクエストを行ったプロセッサ２０５に転送される。以下に説明されるように、ライブラリ格納システム２０１は、光ディスクをプロセッサ２０５間に分散された複数の光ディスクドライブの選ばれたものや利用可能なものにロードする。提供されるデータのフォーマットや速度は、特定のライブラリ及びデータ格納構成に依存する。映像アプリケーションのデータスピードは、１Ｍｂｐｓ（ＶＨＳビデオ画質に対して）から約１０Ｍｂｐｓ（ＤＶＤ画質に対して）あるいはそれ以上にわたるかもしれない。特定のデータフォーマットは、データまたはアプリケーションのタイプに依存して変換する。ＭＰＥＧ−２フォーマットによる音声／映像データは、映画などのために考えられ、ビットストリーム形式で送信されるＩ、Ｐ及びＢ  ＭＰＥＧフォーマット形式で画像グループ（ＧＯＰ）として送信される。もちろん、たとえば、コンピュータネットワークを介しインターネット上での通信に利用されるインターネットプロトコル（ＩＰ）パケットのような、様々なサイズのファイルからの任意のビットレートのアイソクロナスデータ及び非アイソクロナスデータを含む他のタイプのデータが考えられる。
【００２２】
ビデオオンデマンド（ＶＯＤ）システムなどの映像及び／またはマルチメディア情報の送信に適した一構成では、ライブラリ格納システム２０１は、ロボットベースのディスクアクセスシステムにおいてさらに構成されるＤＶＤディスク及び／またはテープカートリッジのスタックあるいはライブラリを有する。ＶＯＤベースアプリケーションに対して、ライブラリ格納システム２０１は、ビデオレンタルビジネスと同等のタイトル数を少なくとも有し、利用可能になるごとに新しいタイトルを追加するよう適応可能であるべきである。テレビオンデマンドアプリケーションでは、タイトル数は数１０万点になるかもしれない。多くのタイトルが頻繁にはリクエストされず、リクエストに応じて任意のタイトルを送信するよう構成された児童ライブラリ格納システム２０１に格納される。
【００２３】
ロボット格納ライブラリは、コンピュータ産業のために開発されてきたものであり、数百の光ディスクを保持するジュークボックスシステムから数千のテープカートリッジや光ディスクを保持する部屋の大きさほどのロボットまでサイズにわたっている。これらライブラリは、全体の動作速度によりオフラインとして従来特徴づけされてきた。一方、少なくとも１つの構成では、ライブラリ格納システム２０１は、部分的にプロセッサ２０５間に分散されているメディアリーダおよび読み取り／書き込み装置を内蔵することにより、リクエストから送出まで３０秒以内の遅延で抑えられるよう設計されている。ライブラリ格納システム２０１の機械的要素は、すべてのディスクへの冗長なアクセスに対し構成され、それによってタイトルの１つのコピーのみがライブラリ格納システム２０１で必要とされ、最も可能性の高い機械的エラーはタイトルへのアクセスをブロックしないということである。ライブラリ格納システム２０１はメイン格納装置（ライブラリの任意のタイトルが任意の時点で任意のユーザに対し利用可能である）であると考えられるので、ＩＢＳシステム１０９のディスクアレイ２０７の格納は最近リクエストされたタイトルのキャッシュであると考えられる。その結果、ＩＢＳシステム１０９は、大容量ストリーム集中サーバ、あるいはより小さなローカルエリアへの分散キャッシュ処理を有する集中ライブラリとして、配置されている各システムの経済性に基づき構成されてもよい。
【００２４】
バックボーンスイッチ２０３は、プロセッサ２０５、管理プロセッサ２１及びライブラリ格納システム２０１とのインタフェースを実現する複数のポートを有する。追加あるいはスペアのポートが、例えば、エラー、故障、メンテナンス及びアップグレードなどの発生時にプロセッサ２０５の何れかを取り替えるための１以上のスタンバイコンピュータのためなどのような様々な目的のため利用されてもよい。一実施例では、バックボーンスイッチ２０３は、イーサネット（登録商標）規格に従い構成され、プロセッサ２０５、２１０及びライブラリ格納システム２０１を接続するための十分な数のポートを有する。ファウンダリネットワークス（Ｆｏｕｎｄａｒｙ  Ｎｅｔｗｏｒｋｓ）により製造されるシャーシベースの「Ｂｉｇｉｒｏｎ」製品群のような在庫品が利用可能である。１つのＢｉｇｉｒｏｎ製品は、少なくとも１１０個のポートを備え、各双方向ポートは２Ｇｂｐｓフルデュプレクス（ｄｕｐｌｅｘ）動作で各方向に１Ｇｂｐｓデータレートが可能である。このように、各プロセッサ２０５は、接続されたユーザのため出力ストリームを再構成するため、あるいはローカルディスクドライブへの格納のため、他のプロセッサや記憶ユニットから１Ｇｂｐｓまでのデータを受信する。各プロセッサ２０５は、バックボーンスイッチ２０３の１つのポートに接続され、それにより１００個のプロセッサＰ１〜Ｐ１００のそれぞれは同時に１Ｇｂｐｓまでのデータを受信することができる。
【００２５】
一実施例では、ライブラリ格納システム２０１は、バックボーンスイッチ２０３の複数のポートに接続され、それにより各プロセッサ２０５はライブラリ格納システム２０１及び他のプロセッサからデータを受信することができる。このように、リクエストされたタイトルのライブラリ格納システム２０１からのデータが、バックボーンスイッチ２０３によりライブラリ格納システム２０１から転送される。あるいは、以下でより詳細に説明されるように、ライブラリ格納システム２０１は、タイトルリクエストを主に受信するための１つのポートに接続される。この構成では、ターゲットプロセッサ（のユーザプロセス）により具体的にリクエストされるデータは、他のプロセッサに接続される光ドライブなどから受信される。このデータは、他のプロセッサ上で実行されているプロセスをロードするターゲットプロセッサに接続されるドライブに格納予定のデータを含んでいるかもしれない。ここで、プロセッサ／格納ユニット（プロセッサＰ１〜Ｐ１００）の個数及びバックボーンスイッチのサイズに関して反映されるような、ＩＢＳシステム１０９の特定サイズ及びトータルデータ出力容量は、ピーク需要期間を含むある時間に要求されるコンテンツのレベルをサポート及び期待する加入者位置１０５の個数に基づきスケーリングされるかもしれない。また、１Ｇｂｐｓのポートレートは一例に過ぎず、２．５、４、１０、４０あるいはそれ以上のＧｂｐｓのポートレートのような他のデータレートが考えられる。
【００２６】
ＯＳＳ２１１は、ネットワーク管理及び管理ソフトウェアを実行し、標準管理情報を処理する。ＯＳＳ２１１は、オペレータがエラー状態を合図し、問題点を解決するためＩＢＳシステム１０９にアクセスし、その動作を制御することを可能にする。一構成では、ＯＳＳ２１１は遠隔アクセス可能である。エラーが発生すると、遠隔アクセス可能なＯＳＳ２１１は診断及び解決が可能である。そのような遠隔アクセスは、オペレータが分散地点１０１の物理的施設に行く必要を回避することができ、そうでない場合には、加入者満足やサービス中断に関して不便で、時間のかかる潜在的に高コストとなるであろう。遠隔アクセスは、グローバルネットワーク（例えば、インターネット）などのような外部ネットワークへの接続により可能となる。与えられる場合、管理プロセッサ２１０は、外部コンピュータネットワーク１１１に接続され、管理システムの遠隔処理が可能となるよう遠隔制御ソフトウェアを介しアクセス可能である。あるいは、外部ネットワークへの接続がバックボーンスイッチ２０３の１以上のポートを介し行われる。
【００２７】
ＢＳＳ２１３は、制御システム２１５と請求システム２１７を有する。制御システム２１５は、コンテンツの管理を行い、ＩＢＳシステム１０９の通常動作を指示し、プロセッサ２０５とバックボーンスイッチ２０３の動作を指示する。請求情報は、制御システム２１５から請求システム２１７に送られる。各プロセッサ２０５は、所定の請求処理に基づき、各加入者位置１０５の請求情報をモニタ及び追跡するソフトウェアエージェントまたはアプリケーションを有する。ＢＳＳ２１３は、この請求情報を回収し、所望の複雑な形式の請求を可能にする。例えば、追加的サービスのための一定の月毎の追加による固定料金と別のイベントに対する個々の請求が考えられる。電話請求処理は、固定の月毎の料金と、追加ベース（例えば、分毎または秒毎）の利用に基づく請求と、二次的企業（例えば、長距離プロバイダ）のための請求を含んでもよい。テレマーケティングサービスでは、迅速なクレジット確認と、金融及び発送（在庫及び発送）システムとのリアルタイムの相互作用が要求される。ＢＳＳ２１３は、仮想ショッピングセンタなどのための売上ベースのある割合の請求を可能にするため関連ビジネスの売上のモニタ及び追跡を可能にする。これら及び他の複雑な請求モデルが考えられ、ＢＳＳ２１３によりサポートされる。
【００２８】
ここで、ＯＳＳとＢＳＳの機能はＩＢＳシステム１０９により、専用プロセッサ（例えば、管理プロセッサ２１０）を追加することにより、あるいは既存のプロセッサ２０５上で分散して処理を実行することにより、与えられるかもしれない。ＩＢＳは高い信頼性を有するよう設計され、それの潜在的な冗長性を十分活用し、十分な処理容量を有する。その結果、高い信頼性が要求されるプロセスの実行に適する。
【００２９】
ライブラリ格納システムに蓄積され、そこから調達されるタイトルの多くは、所有者のものであるか、あるいは著作権情報を含んでいるかもしれない。一実施例では、タイトルデータの多くは、予め暗号化され、ＩＢＳシステム１０９を介し加入者位置１０５までの処理中、暗号化された状態で保たれるかもしれない。各加入者位置１０５におけるＣＰＥは、表示や実行のためデータを解読する適当な解読機能を有する。そのような構成は、タイトル毎の暗号化を要する。タイトルデータはストリーム毎に暗号化される必要があり、データの各加入者位置１０５への各独立したストリームは同一のタイトルにさえ別々に暗号化される。例えば、ある加入者位置１０５に配信された所与のタイトルは、異なる加入者位置１０５（あるいは以降の時点での同一の加入者）に暗号化された形式で配信された同一のタイトルに関して別々に暗号化される。ＭＤｎ２２７として示されるＭＯＤ／ＤＥＭＯＤ２０９は、ストリーム毎の暗号化を可能にする実施例を示す。各タイトルは、ＩＢＳシステム１０９を介しライブラリ格納システム２０１からＭＯＤ／ＤＥＭＯＤ２０９への処理中、暗号化されたままである。この場合、各ＭＯＤ／ＤＥＭＯＤ２０９は、各ＭＯＤ／ＤＥＭＯＤ２０９内で各タイトルを解読するための解読機能２２９を有する。その後、データは対応する加入者位置１０５への送出のため、データを再暗号化する暗号化機能２３１に送出される。ここで、同様の暗号化テクニックが利用されたとしても、別の一意的な暗号化キーが利用され、それにより、データは各ストリームに対して一意的に暗号化されるかもしれない。
【００３０】
図２Ｂは、プロセッサ２０５に分散されている光ディスクドライブ２１９を利用したＩＢＳシステムの他の実施例の一部を示すブロック図である。この場合、ＤＶＤドライブやその他のメディアリーダのような各光ディスクドライブ２１９が、対応するプロセッサ２０５に接続されている。光ディスクドライブ２１９はまた、光ディスクロードシステム２２１によるアクセスのため、ライブラリ格納システム２０１に隣接するよう物理的に配置されている。ライブラリ格納システム２０１はまた、光ディスクロードシステム２２３にアクセス可能な光ディスクライブラリ２２３を有する。ここで、光ディスクライブラリ２２３は、複数のタイトル及び他の配信コンテンツを格納している。
【００３１】
光ディスクロードシステム２２１は、何れかのプロセッサ２０５とのインタフェースのため少なくとも１つの通信リンク２２５を介しバックボーンスイッチ２０３に接続される内部プロセッサまたは制御回路（図示せず）を有するロボットベースのロードシステムなどを備えてもよい。このように、任意のプロセッサ２０５は、タイトルのリクエストを光ディスクロードシステム２２１に送信し、そこで光ディスクライブラリ２２３から１以上の対応するディスクが抽出され、この抽出されたディスクが光ディスクドライブ２１９の選択されたもの、あるいは利用可能なものにロードされる。ＩＢＳシステム１０９の分散性は、プロセッサ２０５の何れかが光ディスクドライブ２２３の何れかにロードされたディスクからデータにアクセスすることを可能にする。そのような分散された構成により、光ディスクロードシステム２２１は、任意の逐次的あるいはランダム選択プロセスに従いディスクをロードすることができ、ロードあるいは配信遅延を回避することができる。ディスクアレイ２０７の比較的大きなサイズの格納は、要求されたタイトルがディスクアレイ２０７に蓄積されている可能性をかなり大きなものにする。その結果、ライブラリ格納システム２０１とディスクアレイ２０７との帯域幅要求は緩和される。分散された光ディスクドライブの実施例は、タイトル要求を処理するため十分な帯域幅を有する。
【００３２】
ライブラリ格納システム２０１に蓄積されているタイトルは、低処理オーバヘッドによる高速ロード処理のため、複数の拡張を含む所有者フォーマットで蓄積されてもよい。コンテンツは、予め計算され蓄積されたＲＡＩＤ冗長性により、結果として得られるストリームにすでに適用されている転送プロトコルにより、及びさらなる処理を要するか、あるいはさらなる処理（例えば、高速転送、巻き戻し及びストリームの次のストリームへのつなぎ合わせのための画像グループ（ＭＰＥＧ−２  ＧＯＰ）に必要なコンテンツ（例えば、タイムスタンプ、転送ヘッダ）内の特定位置へのポインタにより、予め暗号化される。その結果として、タイトルがスピード超過した高速転送でライブラリ格納システム２０１からロードされ、その結果、ほとんどすべての動作モードがタイトルの第１ユーザに提供され、ロード処理は可能な限り少ない処理オーバヘッドで済む。記録処理システム２３３が、標準的あるいはその他の利用可能なフォーマット（例えば、ＭＰＥＧ、ＤＶＤなど）のデータを光ディスクライブラリ２２３の光メディアへの格納のため、上述の所望の所有者フォーマットに変換するため与えられてもよい。
【００３３】
図３は、各プロセッサ２０５の一実施例のブロック図である。図２に示されるＩＢＳシステム１０９の一例となる構成は、各プロセッサ２０５が実質的に同様の方法で構成されている大規模相互接続プロセッサアレイ（ＭＩＰＡ）構成を示している。このように、単一あるいは少数の複雑あるいは高コストサーバシステムの代わりに、多数の比較的シンプルで低コストのコンピュータシステムが利用されてもよい。各プロセッサ２０５は、標準的なデスクトップ、サーバあるいはパーソナルコンピュータ（ＰＣ）システム要素などを利用して実現されてもよい。
【００３４】
各プロセッサ２０５は、１以上の中央演算ユニット（ＣＰＵ）３０３、ランダムアクセスメモリ（ＲＡＭ）や読み出し専用メモリ（ＲＯＭ）装置の任意の組み合わせを含むメモリシステム３０５、ディスプレイとのインタフェースをとるオプションの映像インタフェース３０７、及びキーボードやマウスなどの対応するＩ／Ｏ装置のインタフェースをとるための１以上の入出力（Ｉ／Ｏ）インタフェースに接続された比較的標準的なバス構造またはシステム３０１を備える。バスシステム３０１は、例えば、少なくとも１つのホストバス、１以上の周辺バス、１以上の拡張バスのような複数のバスを備え、そのそれぞれは当業者には既知のブリッジ回路あるいはコントローラによりサポートされている。バスシステム３０１はまた、与えられたプロセッサＰａのディスクアレイ２０７のディスク１及びディスク２（ＰａＤ１，ＰａＤ２）のような典型的には２つのＩＤＥディスクドライブ３１３に接続するため、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）コントローラ３１１に接続される。バスシステム３０１は、３２ビット３３メガヘルツ（ＭＨｚ）ＰＣＩバス３１５のような１以上のＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを有するかあるいは、インタフェースをとる。ＰＣＩバス３１５は、各自が少なくとも２つのＰＣＩディスクドライブ３１９とのインタフェースのための３つのＰＣＩディスクドライブコントローラ３１７（ＰＣＩ１、ＰＣＩ２及びＰＣＩ３に示されるような）に接続される。プロセッサＰａのディスク３−８（ＰａＤ３−ＰａＤ８）を実現するＰＣＩディスクドライブ３１９が示される。バスシステム３０１はまた、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）アダプタ、ファイアワイヤコントローラ（Ｆｉｒｅｗｉｒｅ  ｃｏｎｔｒｏｌｌｅｒ）、ＵＳＢ  ２（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ  ｖｅｒｓｉｏｎ  ２．０）コントローラなど、分散光ディスクドライブ２１９の対応する１以上とのインタフェースのため、高速ディスクコントローラ３２９に接続される。
【００３５】
バスシステム３０１はまた、例示された実施例では６４ビット６６ＭＨｚＰＣＩバスである他のＰＣＩバス３２１に接続される。ＰＣＩバス３２１は、バックプレーンスイッチ２０３とＭＯＤ／ＤＥＭＯＤ２０９の対応するものとのインタフェースのため、それぞれ少なくとも２つの１Ｇｂｐｓイーサネット（登録商標）ネットワークインタフェースカード（ＮＩＣ）３２３と３２５とインタフェースをとる。ここで、６４ビット６６ＭＨｚＰＣＩバスは４Ｇｂｐｓ以上の生データスループットが可能であり、その結果、２つの２ＧｂｐｓフルデュプレクスＮＩＣ３２３と３２５のフルデュプレクスデータスループットの処理に十分である。また、メモリ３０５にロードされる１以上のアプリケーションプログラムなどを表し、以下で詳細に説明されるように、プロセッサ２０５の機能及び処理を実行するためＣＰＵ３０３により実行されるソフトウェアアプリケーションブロック（ＡＰＰＳ）３２７が示される。例えば、ユーザプロセスは、特定のプロセッサ２０５によりサポートされる各ユーザの管理のため実行されてもよい。また、ＮＩＣ３２５を介した加入者位置１０５からのタイトルリクエストの検出、ＮＩＣ３２３を介したディスクドライブ３１３と３１９での処理及び格納のため部分的なタイトルデータの受信、ディスクドライブ３１３と３１９からメモリ３０５へのタイトルデータの抽出、タイトルデータの処理、及びＮＩＣ３２５を介したリクエストを行う加入者位置１０５へのデータの送出のための他のプログラムが含まれる。もちろん、他の多くの処理及び機能が、例えば、ＲＡＩＤデータ格納のため、請求アプリケーション、管理アプリケーション、エラー検出訂正コード（ＥＣＣ）のようなＩＢＳシステム１０９の実現のため定義される。
【００３６】
各プロセッサ２０５は、ＭｉｃｒｏｓｏｆｔＷｉｎｄｏｗｓ（登録商標）系のオペレーティングシステムから選ばれたオペレーティングシステム（ＯＳ）、あるいはＬｉｎｕｘの適当なバージョン及び設定のような任意の適当な私有あるいは一般に利用可能なＯＳによる構成が可能である。一実施例では、リアルタイム（ＲＴ）ＬｉｎｕｘとＬｉｎｕｘＯＳとの組み合わせが考えられる。リアルタイムオペレーティングシステム（ＲＴＯＳ）、リアルタイムアプリケーションインタフェース（ＲＴＡＩ）及びリアルタイムネットワーク（ＲＴＮｅｔ）が、リアルタイムでの応答を可能にするため直接及びネットワークを介してリアルタイムまたはアイソクロナス処理を扱うため考えられる。ファイル構成のためのＬＤＡＰ（Ｌｉｇｈｔｗｅｉｇｈｔ  Ｄｉｒｅｃｔｏｒｙ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）、ＲＴＳ（Ｒｅａｌ  Ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ）、ＲＴＳＰ（Ｒｅａｌ  Ｔｉｍｅ  Ｓｔｒｅａｍｉｎｇ  Ｐｒｏｔｏｃｏｌ）及びＭＰＩ（Ｍｅｓｓａｇｅ  Ｐａｓｓｉｎｇ  Ｉｎｔｅｒｆａｃｅ）などの様々なプロトコル及びインタフェースが利用可能である。クラスタメッセージパッシング（ＭＰ）レイヤによるクラスタ構成が、請求処理、ユーザインタフェース及び管理処理の実行のため考えられる。
【００３７】
図４は、本発明の一実施例によるＲＡＩＤディスク構成４０１内のディスクアレイ２０７の一例となる構成を示すブロック図である。この構成では、各自８つのドライブを有する１００個のプロセッサが存在し、１〜８００まで番号付けされた合計８００個のディスクドライブが存在する。第１プロセッサＰ１の第１ディスクＤ１（あるいはＰ１Ｄ１）が第１ディスクドライブ１として番号付けされ、第２プロセッサＰ２の第１ディスクＤ１（あるいはＰ２Ｄ１）が第２ディスクドライブ２として番号付けされ、以下同様にして番号付けされることにより、プロセッサＰ１〜Ｐ１００のそれぞれの第１ディスクドライブによりディスクドライブ１〜１００が形成される。次のディスクドライブ１０１は第１プロセッサＰ１の第２ディスクドライブであり、次のディスクドライブ１０２は第２プロセッサＰ２の第２ディスクドライブであり、以下同様に番号付けされる。このように、第１プロセッサＰ１の８つのディスクドライブは、それぞれ１、１０１、２０１、３０１、４０１、５０１、６０１及び７０１と番号付けされる。第２プロセッサＰ２の８つのディスクドライブは、それぞれ２、１０２、２０２、３０２、４０２、５０２、６０２及び７０２と番号付けされる。以下同様にして番号付けされる。ディスクドライブ１〜８００はそれぞれ５つのディスクのＲＡＩＤに組織化され、合計１６０のＲＡＩＤが形成される。ここで、第１ＲＡＩＤ１はディスクドライブ１〜５により形成され、第２ＲＡＩＤ２はディスクドライブ６〜１０により形成され、以下同様にして最後のＲＡＩＤ１６０がディスクドライブ７９６〜８００により形成される。
【００３８】
各ＲＡＩＤは、別のプロセッサ、ソフトウェアプロセッサまたは他の既存の構成によりしばしば実現されるＲＡＩＤコントローラにより管理または制御されるかもしれない。ここで図示及び説明される実施例では、各ＲＡＩＤグループは単に概念的に存在するものであって、従って関連付けされたＲＡＩＤコントローラはない。代わりに、ＲＡＩＤ制御機能及び処理がプロセッサ２０５において分散化される。コンテンツがロードされると、ロードプロセス（ＬＰ）５０９（図５）のようなロードプロセスにより、ディレクトリプロセス（ＤＰ）５０５から利用可能な格納地点のリストが受信される。その後、予め計算され格納されたＲＡＩＤ情報を有するコンテンツが取られ、それがＤＰ５０５により与えられた地点リストに分配される。異なるロードプロセスにより、コンテンツが同一のＲＡＩＤグループに同時に格納されてもよい。同一のトークンにより、ユーザプロセス（ＵＰ）５０３のようなタイトルを読み込むユーザプロセスにより、当該タイトルのディレクトリエントリにリストされるようなサブブロックがリクエストされ、消失したサブブロックを再生するため必要な計算が実行される。管理システムにエラードライブが交換されたと通知されると、影響の出たドライブの何れかを直接制御する必要のない素早くロードされたプロセッサあるいはスペアのプロセッサに対して再構成プロセスが開始される。
【００３９】
各ＲＡＩＤはＲｊ（ｊは１から１６０までのＲＡＩＤインデックス）として示される。このように、プロセッサ１〜１００のアレイを通じて実行される複数のソフトウェアプロセスにより各自制御されるＲ１〜Ｒ１６０とラベル付けされた１６０のＲＡＩＤグループが存在する。各ＲＡＩＤグループは、ハードウェア、論理及び処理の任意の組み合わせからなり、そこでの処理は、ユーザプロセス、抽出プロセス、ロードプロセスなどの以下で詳細に説明される他のプロセスに含まれてもよい。このため、５つのドライブ境界でなく１つのドライブ境界においてＲＡＩＤグループを構成することが可能となるであろう。しかし、ここで示された実施例は概念的簡素化のため、５つのドライブ境界を有するよう示される。
【００４０】
ここで例示あるいは説明されるＲＡＩＤ構成は単なる一例であり、様々なＲＡＩＤ構成が可能かつ考えうるということは理解されるであろう。ＲＡＩＤセットは任意の所望の方法で重複あるいは包含されてもよい。また、複数のプロセッサ２０５に、より大規模なプロセッサの分散のため、所与のＲＡＩＤプロセスが含まれてもよい。もちろん、各ＲＡＩＤは、（５より小または大なる）任意数のディスクドライブを含んでもよく、各ＲＡＩＤは、何れかのプロセッサと関連付けされたプロセッサ及び第１ディスクドライブと関連付けされたプロセッサのような必ずしも１つのみでないプロセッサにより制御されてもよい。にもかかわらず、各プロセッサグループは、プロセッサ間のデータ分散を最大化するため、所与のプロセッサの１つのみのディスクドライブを含むことが望ましい。これにより、プロセッサ２０５の故障により、それが属するＲＡＩＤグループのそれぞれから１つだけのドライブが取り除かれるので、処理の中断を避けることができる。不良なプロセッサ２０５のプロセスのすべてが遮断されれば、以下で説明されるように、ＩＢＳシステム１０９全体の処理が障害なく継続される。もしこれらプロセスが遮断されなければ、ＩＢＳシステム１０９の重大な能力劣化が生じ、これにより不良なプロセッサに接続されたクライアントに直接影響が及ぼされる。ＩＢＳシステム１０９は「ホットスタンバイ（ｈｏｔ  ｓｔａｎｄｂｙ）」プロセッサを有するよう構成されているならば、即座に不良なプロセッサの画像に自らを再構成し始める。
【００４１】
以下で詳細に説明されるように、ＲＡＩＤ構成は、データストリームがデータブロックに分割されることを可能にし、このデータブロックはさらに分割され、ＲＡＩＤのディスクドライブで分散またはストライプ処理される。例えば、あるデータブロックは冗長な情報を有するよう処理され（ＥＣＣなどを利用して）、処理されたデータブロックは５つのサブブロックに分割され、ＲＡＩＤの５つのディスクドライブのそれぞれに配信される。
【００４２】
図５Ａは、プロセッサＰａ５０１としてしめされる選択されたプロセッサ２０５で実行されるユーザプロセス（ＵＰ）５０３により開始されるユーザタイトルリクエスト（ＵＴＲ）、タイトルのロード処理、格納処理及び抽出処理を示すブロック図である。各プロセッサ２０５は、それがサポートする下流方向加入者位置１０５（ユーザ）のそれぞれに対し別のユーザプロセスを実行する。ＵＰ５０３は、加入者位置１０５からのタイトルのユーザタイトルリクエスト（ＵＴＲ）に応答して、タイトルを抽出し、加入者位置１０５に送信するユーザプロセスの一例となる処理を示す。ＵＰ５０３は、ＵＴＲを他のプロセッサ２０５あるいは管理プロセッサ２１０を表すプロセッサＰｄ５０２で実行されているディレクトリプロセス（ＤＰ）５０５に転送する。以下で詳細に説明されるように、ＤＰ５０５はまず、マスタディレクトリ（ＭＤ）６０１（図６）に問い合わせることにより、タイトルがディスクアレイ２０７にすでに格納されているかどうか判断する。タイトルがディスクアレイ２０７にロードされていないとわかると、ＤＰ５０５はメモリを割り当て（あるいは次のディスクスペースが利用可能であるか判断し）、ディスクアレイ２０７のタイトルの連続する各ブロックの位置を特定するタイトルマップ（ＴＭ）５０７を生成する。以下で詳細に説明されるように、タイトルデータはデータブロックに分割され、このデータブロックはさらにデータサブブロックに分割され、ディスクアレイ２０７により形成されたＲＡＩＤに分散される。ＴＭ５０７は、タイトルの各ブロック（及びサブブロック）の位置を特定するデータマップである。タイトルがすでにロードされている場合、ＴＭ５０７がＭＤ６０１のタイトルに対しすでに存在し、ＤＰ５０５はバックボーンスイッチ２０３を介しＵＰ５０３にＴＭ５０７をコピーする。ここで、ＵＰ５０３は、ＴＭ５０７‘として示されるローカルコピーとしてそれを格納する。
【００４３】
ＵＰ５０３は、特定のユーザや加入者位置１０５に関連付けされたパラメータまたは変数を含むよう、以下で詳細に説明されるように、ＴＭ５０７‘を選択的に初期化してもよい。タイトルがＭＤ６０１にロードされておらず、従ってディスクアレイ２０７に格納されていないとわかったら、ＤＰ５０５はライブラリ格納システム２０１からタイトルにアクセスするため、ロードプロセス（ＬＰ）５０９を呼び出す。ＬＰ５０９はバックボーンスイッチ２０３を介し当該タイトルのリクエストを送信し、ライブラリ格納システム２０１はＤＶＤやテープカートリッジのようなデータソースメディア５１１を抽出し、選択されたメディアを適当なリーダ（例えば、テープドライブ、ＤＶＤプレーヤなど）にロードする。リーダは、ライブラリ構成に応じて、他のプロセッサ２０５またはバックボーンスイッチ２０３を介して、プロセッサＰａ５０１のＬＰ５０９によるアクセスのため、データを転送する。このデータは、データビットストリームなどのような様々な方法で転送可能であり、ローカルライブラリリソースだけでなく遠隔からも受信されるかもしれない。
【００４４】
ＬＰ５０９は、データを５１３に示されるような連続したデータブロックアレイＣ１、Ｃ２、Ｃ３、…、Ｃｉに構成する。各データブロックは、所定のタイミングインターバルやデータサイズのようなデータに関する指定されたパラメータに対応する。一実施例では、例えば、各データブロックＣｉは、映像データのほぼ１秒分に相当する。例えば、４Ｍｂｐｓで再生される映像データは、１秒分のデータに相当する約５００キロビット（Ｋｂ）のブロックに分割される。ＬＰ５０９は、データブロックの適切な分割の決定を行う。例えば、ＭＰＥＧ−２データでは、データは表示順でなく復号順で与えられるＩ、Ｐ及びＢフレームに構成される。ＭＰＥＧ−２では、ＬＰ５０９が画像グループ（ＧＯＰ）を決定し、１秒毎に３０の表示可能フレームなどのような指定されたサイズあるいはタイミングインターバルに相当するようＧＯＰの適切な分割を決定する。
【００４５】
ＬＰ５０９は、特定の構成に依存して、データブロックのコンテンツの追加的処理を実行するようにしてもよい。そのような処理には、例えば、双方向リンクリストやタグ及びタイミング情報を早送り（ＦＦ）、巻き戻し（ＲＷ）及びジャンプ機能のためにコンテンツに挿入する処理が含まれる。このような機能は、ユーザのためのパーソナル映像レコーダ（ＰＶＲ）機能の実現のため所望されるかもしれない。これによりユーザは、視聴あるいは再生視聴中におけるコンテンツの巻き戻し、早送り、一時停止や録画などＶＣＲと同様にしてタイトルの処理が可能となる。例えば、図示されるように、データブロックＣ１〜Ｃｉは、実行される所望の処理に応じて変更されたデータを表すデータブロックＣ１‘〜Ｃｉ’に処理される。さらに、データブロックＣ１‘〜Ｃｉ’は、ＥＣＣデータの挿入などＲＡＩＤのため処理されてもよい。例えば、図示されるように、データブロックＣ１‘とＣ２’はそれぞれＣ１‘ＥＣＣ（１−５）とＣＥＣＣ（１−５）に処理される。ここで各データブロックは、対応するＲＡＩＤの５つのディスクに分散されるＲＡＩＤデータを表す１〜５まで番号付けされた連続するサブブロックを含む。
【００４６】
ＬＰ５０９は、各データブロックがどこに格納されるべきか決定するためＴＭ５０７に問い合わせる。必ずしもディスクアレイ２０７における正確な位置が特定される必要はない。一実施例では、ＴＭ５０７は、第１ブロックＣ１‘ＥＣＣ（１−５）をプロセッサＰｂ５１５に、第２ブロックＣ２’ＥＣＣ（１−５）をプロセッサＰｃ５２１にというように各ブロックを転送する。利用される特定のＲＡＩＤディスク構成４０１とは独立に、データブロックができるだけ均等に各ＲＡＩＤに転送される場合、データの最大分散が達成される。第２ブロックを同じＲＡＩＤに送信する前、連続するブロックを１つおきのＲＡＩＤに転送することによりこれは行われる。例えば、第１ブロック１６０は、第２ブロックがＲＡＩＤ１に転送される前に、ＲＡＩＤ１〜１６０に送られてもよい。ＴＭ５０７が各データブロックの位置を記録しているため、必ずしもデータブロックは特定のＲＡＩＤ順で分散されている必要はない。実際、一実施例では、データブロックは任意の適当なランダムアルゴリズムに基づき、ランダムに分散される。このランダムアルゴリズムは、例えば、データが均等に分散されるのを保証するため擬似乱数を利用するものであってもよい。その場合、選択される次のＲＡＩＤは、すべてのＲＡＩＤが利用されて始めて格納されたグループからのものとなり、当該プロセスが繰り返される。他方、所定あるいは逐次的なＲＡＩＤ順序の保持は、予測可能性の効果や抽出効率性を提供するかもしれない。
【００４７】
データブロックＣ１‘ＥＣＣ（１−５）はＬＰ５０９によりプロセッサＰｂ５１５に転送され、データブロックＣ１‘ＥＣＣ（１−５）のサブブロック１〜５はそれのＲＡＩＤ５１９のディスクドライブに分散される。例えば、５つのサブブロックＣ１‘ＥＣＣ（１）、Ｃ１‘ＥＣＣ（２）、Ｃ１‘ＥＣＣ（３）、Ｃ１‘ＥＣＣ（４）及びＣ１‘ＥＣＣ（５）が、図示されるようにＲＡＩＤ５１９の５つのディスクドライブに分散される。ここで、ＬＰ５０９により生成されるサブブロック数はＲＡＩＤのディスクドライブ数に等しく、各ＲＡＩＤに対して任意の適当な数のディスクドライブが利用されてもよい。ＥＣＣプロセスは、何れかのディスクドライブのデータがＲＡＩＤのその他のディスクドライブからのデータにより再構成されることを保証する。例えば、サブブロックＣ１‘ＥＣＣ（３）はサブブロックＣ１‘ＥＣＣ（１、２、４、５）から再構成されるかもしれない。データブロックＣ２‘ＥＣＣ（１−５）は、ＬＰ５０９によりプロセッサＰｃ５２１に転送され、このデータブロックＣ２‘ＥＣＣ（１−５）のサブブロックはＲＡＩＤ５１９に関して前述されたようにＲＡＩＤ５２５のディスクドライブに分散される。タイトルのすべてのデータブロックＣ１‘ＥＣＣ（１−５）に対してこのプロセスが繰り返される。
【００４８】
ＵＰ５０３は、ＵＴＲに応答した抽出及びリクエストを行う加入者位置１０５への転送に対して、データがいつ利用可能となるかを通知されるか、あるいはそうでなければ決定する。例えば、ＵＰ５０３は、ＴＭ５０７‘をモニタするか、あるいはデータが利用可能となることをＤＰ５０５により通知されるか、またあるいは単にリクエストを送信し、配信されるデータを待機するかもしれない。一実施例では、ＵＰ５０３は、タイトル全体がアクセス、処理及びＲＡＩＤに格納されるまで待機する。あるいは、タイトルのうちの所定のデータ量が格納されるか、あるいはリクエストされたデータ送信されると同時に、ＵＰ５０３はデータの抽出及び転送を開始する。何れのイベントにおいても、ＵＰ５０３はＴＭ５０７’に問い合わせを行い、連続するデータリクエスト（ＤＲＱｘ）を送信し、対応するデータ応答（ＤＲＳｘ）を受信することにより（ｘはデータブロックインデックス（例えば、ＤＲＱ１、ＤＲＱ２など）を表す整数）、指定されたプロセッサ２０５から書くデータブロックをリクエストする。一実施例では、各プロセッサ２０５は、リクエストされたデータブロックの抽出のため、対応するＲＡＩＤのインタフェースとなるローカル抽出プロセス（ＲＰ）を実行する。ＲＰは、データリクエストＤＲＱｘを受信し、ローカルＲＡＩＤからリクエストされたデータを抽出し、対応するＤＲＳｘを転送する。図示されるように、プロセッサＰｂ５１５は、データリクエストＤＲＱ１を受信するＲＰ５２７を実行し、ＲＡＩＤ５１９からデータブロックＣ１‘ＥＣＣ（１−５）を抽出し、対応するデータレスポンスＤＲＳ１により応答する。また、プロセッサＰｃ５２１は、データリクエストＤＲＱ２を受信するＲＰ５２９を実行し、ＲＡＩＤ５２５からデータブロックＣ２‘ＥＣＣ（１−５）を抽出し、対応するデータレスポンスＤＲＳ２により応答する。ＵＰ５０３は、データレスポンスを受信し、データブロックをリクエストを行った加入者位置１０５に転送する。ＵＰ５０３は、抽出されるデータタイプに応じて、さらなるデータ処理を実行してもよい。例えば、一実施例では、ＵＰ５０３は、加入者位置１０５におけるＣＰＥによる利用のため、ＭＰＥＧ−２データを復号順から表示順に再構成するＭＰＥＧでコーダ６１３（図６）を有する。
【００４９】
上述のアクセス、格納及び抽出プロセスは、加入者位置１０５のテレビ、電話あるいはコンピュータによりリアルタイムで実行あるいは利用される音声／映像データのような、アイソクロナスデータに特に適している。しかしながら、この出力データはアイソクロナスデータに限定されず、コンピュータ上で実行されるブラウザによる表示のために抽出されるデータのようなバースト非同期データであってもよい。また、加入者位置１０５のＣＰＥがローカルな格納装置を有する場合、送信が同期でなく非同期で、データ表示速度と異なるデータレートで行われるという点を除き、同様の方法で行われてもよい。
【００５０】
本発明の範囲を逸脱することなく多くの変形及び変更が考えられる。例えば、必要に応じて再構成あるいは復号プロセスは、ユーザプロセス以外のプロセスにより実行されてもよい。再構成の信頼性は、タイトルの再構成に利用される各サブブロックへの別々のデータパスを有するため、ユーザプロセスにおいて最も高いものとなる必要がある。
【００５１】
図５Ｂは、リクエストされたタイトルへのアクセス及び格納のための一例となる分散ロードプロセスを示すブロック図である。本実施例では、ＤＰ５０５によりＭＤ６０１のタイトルが未ロードであると検出されると、ＤＰ５０５はマスタロードプロセス（ＭＬＰ）５３１を呼び出す。ＭＬＰ５３１は、ライブラリ格納システム２０１にリクエストを送信し、データブロックの格納場所を決定するため、前述と同様にしてＴＭ５０７に問い合わせる。プロセッサＰｄ５０２へのデータを抽出する代わりに、ＭＬＰ５３１は、対応するデータサブブロックが格納される各ＲＡＩＤ群を構成するディスクドライブを制御するプロセッサ２０５と通信するローカルロードプロセス（ＬＬＰ）を呼び出す。例えば、ＬＬＰ５３３がプロセッサＰｂ５１５で呼び出され、データブロックＣ１はソースメディア５１１からＬＬＰ５３３へ直接転送される。同様にして、ＬＬＰ５３５がプロセッサＰｃ５２１で呼び出され、データブロックＣ２はソースメディア５１１からＬＬＰ５３５へ直接転送される。図示されるように、以降の処理はそれぞれのＬＬＰ５３３及び５３５で実行され、ＭＬＰ５３１により指示されるように対応するＲＡＩＤ５１９及び５２５に格納される。このようにして、バックプレーンスイッチ２０３を通じる２つのパスを要する、１つのプロセッサでのデータブロックのロード及び処理、その後のデータブロックの分散されたプロセッサへの転送よりむしろ、各データブロックがバックプレーンスイッチ２０３のより狭い帯域幅を必要とする分散されたプロセッサに直接転送され処理される。ここで、データはプロセッサ２０５に接続されるＤＶＤプレーヤーに直接与えられたとしても、バックプレーンスイッチ２０３はＬＬＰを実行する適当なプロセッサ２０５にデータの転送を行うのに依然として利用される。
【００５２】
図５Ｃは、分散された光ディスクドライブ２１９を利用したリクエストされたタイトルのアクセス及び格納のための一例となる協調ロードプロセスを示すブロック図である。ＤＰ５０５はＭＬＰ５３１を呼び出し、前述と同様にしてライブラリ格納システム２０１にリクエストが送信される。ライブラリ格納システム２０１は、示されるようなプロセッサＰｅ５３７関連付けされたもののような分散された光ディスクドライブ２１９をランダムに、あるいは利用可能なものを選ぶ。ここでは、ソースメディア５１１はプロセッサＰｅ５３７にとってローカルである。ＭＬＰ５３１は、プロセッサＰｅ５３７（ライブラリ格納システム２０１により通知されるような）を特定し、例えば、データブロックのプロセッサＰｂ５１５及びＰｃ５２１などへの分散のような、前述と同様の方法によりタイトルのロード及び格納のためプロセッサＰｅ５３７上でＬＬＰ５３９を呼び出す。すべてのデータがこのプロセッサを通過するので、ＲＡＩＤ及びＥＣＣ処理はプロセッサＰｅ５３７に対して選択的かつ便宜的に実行されてもよい。このようにして、バックプレーンスイッチ２０３における帯域幅の利用が軽減される。
【００５３】
当業者には理解されるように、ロードプロセス５０９や５３１、抽出プロセス５２９などの任意の与えられたプロセスは、１以上の任意のプロセッサ２０５上で実行されてもよい。図５Ａ〜５Ｃは、図示の簡単化のため、各プロセッサを介しある時点においてブロック全体に動作するロード及び抽出プロセスを示しているが、各ブロックのデータサブブロックは複数のプロセッサにわたるＲＡＩＤグループ内で分配されると理解されるであろう。従って、任意の与えられたプロセッサが、所与の格納あるいは抽出プロセスに対しある時点で１つのみのサブブロックを読み書きするかもしれない。例えば、図５ＡはプロセッサＰｂ５１５により扱われるブロックＣ１‘（１−５）を示しているが、各データサブブロックは与えられたＲＡＩＤグループの対応するディスクドライブに関連付けされた別のプロセッサにより読み書きされてもよい。各プロセッサ２０５は接続されているディスクドライブから読まれたデータやそこに書き込まれたデータの制御を行うが、ＲＡＩＤ機能は他のプロセッサ上で実行される別のプロセスにより扱われてもよい（例えば、ＲＡＩＤ機能はシステム機能において仮想的かつ暗黙的なものであるかもしれない）。
【００５４】
図６は、プロセッサＰａ５０１上のユーザプロセスによるタイトルのリクエスト及び抽出と、プロセッサＰｄ５０２で実行されるＤＰ５０５の動作を示すより詳細なブロック図である。同様のブロックまたはプロセスは、同一の参照番号を仮定している。前述と同様にして、ユーザプロセス（ＵＰ）５０３は、ＵＴＲを受信して、プロセッサＰｄ５０２上で実行されるＤＰ５０５にこのＵＴＲを転送する。ＤＰ５０５はＭＤ６０１を有し、さらにＭＤ６０１はライブラリ格納システム２０１で利用可能なすべてのタイトルと各タイトルの対応する位置をリストするタイトルリスト６０３を有する。すべてのタイトルが格納されたままとされ、ライブラリ格納システム２０１において利用可能であり、さらにディスクアレイ２０７にコピーされてもよい。ＭＤ６０１はまた、空のスペースやすべてのタイトルの位置を含むディスクアレイ２０７のすべての格納をマップした格納ファイル６０４を有する。以前にリクエストされたタイトルは抽出され、前述のロードプロセスの任意の構成を利用して、ディスクアレイ２０７に格納される。現在ＭＤ６０１に格納されているタイトルマップは、各自のタイトルを有する、タイトル１、タイトル２、タイトル３などとして示されるＴＭ６０５として示される。ディスクアレイ２０７に蓄積された各タイトルと関連付けされ、ＤＰ５０５による参照のためＭＤ６０１のＤＭ６０１を有するタイトルリスト６０３にエントリがなされる。タイトルがディスクアレイ２０７に蓄積されている限り、ＭＤ６０１にＤＭ６０５は存在し、さらにタイトルリスト６０３に反映される。ここで、ＤＰ５０５はプロセッサ２０５の何れかあるいは管理プロセッサ２１０に配置された中央プロセスとして示される。他の実施例では、ＤＰ５０５はプロセッサ２０５で実行される分散プロセスであってもよい。しかしながら、ＭＤ６０１は、ライブラリ格納システム２０１のタイトル及び他のデータの一貫性及び整合性を維持するため中央に配置されることが望ましい。
【００５５】
一実施例では、ＬＲＵポリシーに基づき、タイトルはディスクアレイ２０７に格納される。これによると、既存のタイトルがディスクアレイ２０７に格納され、ＭＤ６０１で参照されると、新たなタイトルのための格納スペースが必要となり、当該既存タイトルがＭＤ６０１の最も以前に参照されたタイトルであるとき、より最近にリクエストされたタイトルにより上書きされるまで、そこに保持される。ＭＤ６０１は、履歴ファイル６０７のディスクアレイ２０７に蓄積される各タイトルの相対的な経時を追跡し、再びリクエストされるとタイトルの経時がリセットされる。ライブラリ格納システム２０１から新たにロードされたタイトル、あるいはＭＤ６０１から再びリクエストされたタイトルが最も最新のタイトルとなり、最後にリクエストされたときに対応して、経時パラメータがＭＤ６０１の各タイトルに対して記録される。ライブラリ格納システム２０１からロードされた新しいタイトルに対してからのスペースがディスクアレイ２０７に存在する限り、この空のスペースが利用され、ロードされたタイトルはディスクアレイ２０７にそのまま格納される。しかし空のスペースがもはやなくなると、ＤＰ５０５はこの新たなタイトルを格納するため、ＭＤ６０１の最も以前のタイトルの１以上を上書きすることによりスペースを割り当てる。タイトルがディスクアレイ２０７で上書きされると、それに関連付けされたＤＭ６０５がＭＤ６０１から削除される。また、ローカルな参照がタイトルリスト６０３から削除され、それによってタイトルリスト６０３は、当該タイトルがライブラリ格納システム２０１に存在するだけであると示す。上書き及び消去されたタイトルが再びリクエストされると、それはライブラリ格納システム２０１から新たにロードされる。
【００５６】
リクエストされたタイトルがディスクアレイ２０７に格納されておらず、したがってＭＤ６０１で参照されない場合、ＤＰ５０５は格納ファイル６０４と履歴ファイル６０７に問い合わせ、新たなタイトルのための格納スペースを割り当て、ＭＤ６０１内に新たなＤＭを生成する。タイトルがすでにディスクアレイ２０７に格納されている場合、タイトルマップ（ＴＭ）はすでにＭＤ６０１に存在している。図示されるように、ＵＴＲはＤＰ５０５に転送され、ＴＭ５０７（タイトル４と示される）の配置または生成が行われる。その後、ＤＰ５０５はＴＭ５０７のコピーのリクエストを行ったプロセッサＰａ５０１に転送し、上述のようにＴＭ５０７’としてローカルコピーが格納される。
【００５７】
ＵＰ５０３は、それ自身の動作パラメータ及びユーザ契約に従って、ＴＭ５０７‘のヘッダ情報を初期化する。その後、ＵＰ５０３は、データブロック位置をＴＭ５０７’に問い合わせ、格納されているデータブロックを抽出するため、バックボーンスイッチ２０３を介し、６０９として典型的に示されるデータを管理するその他のプロセッサ２０５のローカル抽出プロセス（ＲＰ）と協調する。図示された実施例では、ＵＰ５０３は、ＥＣＣ符号かフォーマットを含められた冗長情報なしの実データに変換するＥＣＣデコーダ６１１などを含む。データブロックがＲＡＩＤのディスクドライブのサブブロックとして格納されており、ＥＣＣデコーダ６１１を利用して、冗長データを除去することによりもとのデータが再構成されるということが思い起こされる。ここで、任意の与えられたＲＡＩＤの複数のディスクドライブは可変スピードまたはレスポンス時間を有するかもしれない。これによると、ローカルなＲＰ６０９は必ずしもデータを１つのブロックとして返す必要はなく、特定のＲＡＩＤの個々のディスクドライブのレスポンス時間に従う一連のサブブロックとして返せばよい。また、与えられたＲＡＩＤのあるディスクドライブは、どんな理由であれ欠陥を有するか、あるいは非応答的であるかもしれない。どちらのイベントでも、ＥＣＣでコーダ６１１を利用するＵＰ５０３は、規定されたサブブロックの一部を利用して、訂正データを復号することができる。例えば、５つのディスクドライブを利用して構成されたＲＡＩＤに対して、ＥＣＣデコーダ６１１はデータの５つのサブブロックの何れか４つを利用してもとのデータを再構成することができる。一実施例では、ＥＣＣでコーダ６１１は、全体のプロセスの高速化のため、最後のサブブロックが到着するまで待機するのでなく、もとのデータを自動的に再構成する。
【００５８】
図示された実施例では、図示された実施例では、ＵＰ５０３はさらに、所望であれば、データを表示順に再構成するＭＰＥＧデコーダ６１３などを備える。例えば、ＭＰＥＧデータが復号順でアクセス及び格納されると、ＭＰＥＧデコーダ６１３は当該データを表示順に再構成し、その後データのリクエストを行った加入者位置１０５に送信する。前述のように、ＵＰ５０３は、加入者位置１０５へのデータストリームがこの加入者位置１０５のＣＰＥの適切な動作を保証するよう適切なレートで維持される一実施例においては、アイソクロナスモードで動作する。他の実施例では、ＣＰＥがローカルメモリを備える場合、ＵＰ５０３は非同期モードで動作し、加入者位置１０５のＣＰＥによる適切な表示のため、各データブロックを十分な時間で送出する。ＵＰ５０３はさらに、巻き戻し（ＲＷ）、一時停止あるいは早送り（ＦＦ）コマンドのような、加入者位置１０５からの追加的コマンドを検出し、プロセッサＰａ５０１によりサポートされ、対応するユーザ規定に従い許可される場合、それに応じてデータストリームを変更するよう構成される。例えば、ＵＰ５０３は、ＲＷコマンドまたはＦＦコマンドに応答して、現在のデータストリームを中断し、以前あるいは以降のデータにアクセスすることにより、ＴＭ５０７において行ったり来たりする。
【００５９】
Ｐａ５０１上で実行されるローカルエージェントあるいはプロセス群６１５が示され、各プロセッサ２０５に与えられる。一実施例では、各プロセッサ２０５は、管理プロセッサ２１０上で実行される対応する管理、ＯＳＳ、ＢＳＳ、制御及び請求機能及びプロセスのインタフェースとなる１以上のローカルエージェントを実行する。他の実施例では、管理プロセッサ２１０は備えられず、管理、ＯＳＳ、ＢＳＳ、制御及び請求機能及びプロセスは１以上のプロセッサ２０５に分散されている。エージェントまたはプロセス６１５は、例えば、プロセッサＰａ５０１によりサポートされる各加入者位置１０５と関連付けされているユーザ行動を追跡するためのローカルビジネスプロセス（ｌｏｃａｌ  ｂｕｓｉｎｅｓｓ  ｐｒｏｃｅｓｓ）を備えてもよい。ローカルビジネスプロセスは、請求などのため、プロセッサＰａ５０１によりサポートされるすべてのユーザのユーザ行動を追跡する。エージェントとして、ローカルビジネスエージェントは、請求情報や他の所望の情報を含むユーザ情報を送信するため、ＢＳＳ２１３とのインタフェースをとる。ローカルビジネスエージェントは、前述したような所定の請求規定に基づき、各加入者位置１０５の請求情報をモニタ及び追跡するソフトウェアエージェントあるいはアプリケーションの機能を実行するようにしてもよい。この請求情報は、ＢＳＳ２１３の請求情報２１７への転送のため、制御システム２１５に送信される。
【００６０】
図７は、前述のＴＭ５０７として利用される一例となるタイトルマップＴＭのより詳細なブロック図である。ＤＭは、タイトルを格納するためのタイトルフィールド７０１と、特定のユーザと関連付けされた任意の情報及び／または当該ユーザまたは加入者位置１０５と関連付けされた任意の適用可能な契約を格納するための契約パラメータ制約フィールド７０３を有する。視聴時間７０５、停止タイミング７０７、ＦＦカウント値７０９やＲＷカウント値７１１のようないくつかの例が示される。視聴時間７０５は、リクエスト後ユーザがそのタイトルを視聴しなければならない最大時間を表すために含められる。停止タイミング７０７は、ユーザが視聴を中断すれば、さらなる支払いなくタイトルの利用が可能である最大時間を表すために含められる。ＦＦ及びＲＷカウント値７０９と７１１は、それぞれユーザが早送りまたは巻き戻しを行わねばならない回数をカウントあるいは制限するため含められる。例えば、「巻き戻しなし」条項や「３回までの巻き戻し」条項が視聴契約に含められ、ＲＷカウント値７１１を利用して、それぞれ巻き戻しの禁止や３回までの巻き戻し制限が行われる。現在のデータポインタ７１３は、送信済みデータと送信予定データとの間の位置をマークするアドレスまたはポインタを格納するために含められ、これにより、ＵＰ５０３はデータの進行を追跡することができる。データブロック数、サイズ、位置などの情報を含むデータブロックフィールド７１７の連続あるいはリンクリストのようなデータブロックアドレスまたはポインタのリストを格納するデータセクション７１５が与えられる。
【００６１】
示されたＤＭは、多くの変形及び構成または追加的パラメータが、様々な設計パラメータに応じて利用可能であるという点で、単なる一例であるということは理解されるであろう。ＵＰ５０３は、必要に応じて、特定の視聴及び停止タイミングパラメータＦＦ／ＲＷカウントのような適用可能な所定のユーザ契約に従って、ＤＭを初期化する。現在データポインタ７１３は、開始時に視聴プロセスを初期化するため、ゼロまたは第１データブロックへのポイントにリセットされる。現在データポインタ７１３のリセットは、ＤＭがすでに格納されているタイトルのため、他のプロセッサ２０５からコピーされる場合に必要とされる。
【００６２】
図８は、タイトル及びデータの格納と抽出のため、ＩＢＳシステム１０９により利用されるキャッシュ処理及びＬＲＵポリシーを示すブロック図である。ＬＲＵポリシーは、ＲＡＩＤを構成するディスクアレイ２０７で利用され、まず空のスペースが利用され、もはや空のスペースがなくなったとき、最も以前のデータから上書きされる。このキャッシュ処理法では、データが格納された高速メモリまたは格納場所からいつでも取り出されることが保証される。このキャッシュ処理法は、ディスクアレイ２０７がライブラリ格納システム２０１のデータキャッシュとして機能し、メモリ８２３としてまとめて示されるプロセッサ２０５の各メモリ３０５がディスクアレイ２０７のデータキャッシュとして機能するという点で、階層的なものである。各プロセッサ２０５のメモリ３０３のキャッシュメモリとして機能するローカルに読み込まれるサブブロック（ＬＲＵベースでまた管理される）の大規模メモリキャッシュやＣＰＵ３０３のレベル２（Ｌ２）キャッシュのような追加的なレイヤが存在してもよい。レベル１キャッシュは、典型的には各ＣＰＵに内蔵され、図示または説明はされない。各ＣＰＵ３０３はＣＰＵ８２７としてまとめて示され、Ｌ２キャッシュはＬ２キャッシュ８２５としてまとめて示される。ユーザストリーム毎の出力キャッシュを利用して、要求のピークにより生じる格納からの任意のレート変動がバッファされ、ユーザプロセスの終了とともにこれらのバッファは破棄される。
【００６３】
タイトルリクエスト８０１のスタックは、それぞれ「Ａ」、「Ｂ」、「Ｃ」などとラベル付けされたタイトルのユーザにより開始されるＵＴＲの簡単化された表示である。第１ブロック８０３は、それぞれタイトルＡ、Ｂ、Ｃ、Ｄ及びＥのための最初の５つのＵＴＲを表す。格納表示８１５は、同じサイズの５つまでのタイトルを格納することが可能なよう示されたディスクアレイ２０７の合計の格納容量の単純化された表示である。もちろん、実際の構成では、ディスクアレイ２０７の格納容量は実質的により大きなものであり、タイトルは可変サイズである。最初の５つのタイトルＡ〜Ｅが、格納表示８１５により示されるような連続した位置に格納されるよう示されている。再び、この表示は、各タイトルが実際さらなる細分化され、ＲＡＩＤに分散されるという点で単純化される。まずここで、ディスクアレイ２０７は初期的には空である。そのため、各タイトルＡ〜Ｅはライブラリ格納システム２０１から抽出されねばならず、ＩＢＳシステム１０９内のデータ抽出時間は最大となる。また、抽出された第１タイトル群のそれぞれは、現在あるタイトルを上書きするのでなく、空のデータ領域に格納される。そのため、各タイトルはＬＲＵポリシーに従って可能な限り長くディスクアレイ２０７に保持される。
【００６４】
ブロック８０５に示される次にリクエストされたタイトル「Ｂ」は、格納表示８１５により示されるように、すでに格納されているので、ライブラリ格納システム２０１でなくディスクアレイ２０７のＲＡＩＤから抽出される。このように、タイトルがディスクアレイ２０７に格納されている限り、かなり速い抽出が可能である。なぜなら、ディスクアレイ２０７はライブラリ格納システム２０１よりかなり高速に動作するからである。タイトルがプロセッサメモリにキャッシュされているとき、当該タイトルはディスクアレイ２０７からオーダー単位の速さでより高速な抽出が可能となる。同様のことがブロック８０７に示される次にリクエストされるタイトル「Ｃ」に対しても成り立つ。なぜならこのタイトルは格納表示８１５に示されるように、すでにディスクアレイ２０７に格納され、ライブラリ格納システム２０１から再度抽出する必要がないからである。ここで、各タイトルに対して生成され、ＭＤ６０１に格納されているＤＭは、当該タイトルがディスクアレイ２０７に格納されている限り、有効とされる。ＭＤ６０１のＤＭの「マスタ」コピーが同一タイトルをリクエストするプロセッサ２０５の何れかにコピーされる。従って、タイトルＢ及びＣのもとのＤＭはコピー及び再利用される。この結果、一度しかリクエストされない場合より、タイトルＢ及びＣはディスクアレイ２０７により長く保持される。追加的な部分データ方針が選択的に利用されてもよい。ここでは、ライブラリ格納システム２０１からタイトル全体を抽出するより、ディスクアレイ２０７に部分的に格納されたタイトルが再利用される。例えば、この部分データ構成では、タイトルＢあるいはＣが格納表示８１５において部分的に上書きされたとしても、削除された部分がライブラリ格納システム２０１から抽出される一方、残った部分は利用される。このような部分データ方針は、追加的なデータ追跡及び管理機能を必要とする。
【００６５】
ディスクアレイ２０７に空の格納スペースがもはや利用可能でないとき、８０９で示される新しいタイトルＦが次にリクエストされる。ディスクアレイ２０７の最も以前のデータはタイトルＡであり、新しい格納表示８１７により示されるように、新しいタイトルＦはＬＲＵポリシーに従って以前のタイトルＡに取って代わる。タイトルＢ、Ｃ、Ｄ及びＥが新しいタイトルＦと共にディスクアレイ２０７に格納される。新たなタイトルＧが、８１１に示されるように、次にリクエストされると、再びディスクアレイ２０７の最も以前のデータＤが置き換えられる。新たな格納表示８１９により示されるように、タイトルＦ、Ｂ、Ｃ、Ｇ及びＥが含まれる。８１３に示されるように、タイトルＡが再びリクエストされる。もとのリクエストからのタイトルＡのデータはすでに上書きされ、ディスクアレイ２０７に残っていないため、タイトルＡは新しいタイトルとして扱われ、ディスクアレイ２０７に格納された最も以前のデータと置き換えられる。このようにして、新しい格納表示８２１により示されるように、新しいタイトルＡはディスクアレイ２０７の最も以前のタイトルＥと置き換えられる。ＬＲＵポリシーは、データが新たなタイトルによる上書きを行う前に、できるだけ長くディスクアレイ２０７に当該データを格納するものであると理解されるであろう。
【００６６】
ＣＰＵ８２７は、ディスクアレイ２０７からデータを抽出するのに利用されるユーザプロセス（ＵＰ）とローカルＲＰプロセスを含むタイトルデータを処理するプロセス８２９を実行する。ＣＰＵ８２７は、一般にメモリ８２３を利用して動作するため、ディスクアレイ２０７から抽出されるデータは、バックボーンスイッチ２０３及び／または加入者位置１０５への転送前に、まずローカルメモリ８２３に格納される。また、ＣＰＵ８２７は、より高速かつより効率的なデータ抽出を可能にするＬ２キャッシュ８２５を備えてもよい。ＣＰＵ８２７は、存在する場合には、プロセス８２９によりリクエストされるデータをまずＬ２キャッシュ８２５から、次にメモリ８２３から、最後にディスクアレイ２０７から自動的に抽出する。データがディスクアレイ２０７に格納されていない場合、ＤＰ５０５は、前述のように、ライブラリ格納システム２０１からディスクアレイ２０７へのタイトルの抽出のため、ロード処理プロセッサ５０９またはＭＬＰ５３１を呼び出す。このようにして、メモリ８２３とＬ２キャッシュ８２５は、ディスクアレイ２０７より上位のキャッシュレイヤとして機能する。メモリ８２３とＬ２キャッシュ８２５は一般にＬＲＵポリシーに従い動作する。その結果、新たなデータによる上書き前にできるだけ長くデータはメモリに保持される。ＬＲＵポリシーによると、ＲＡＭキャッシュ領域がフルで、新たなデータが読み込まれると、ＲＡＭのデータの最も以前のセグメントが、ディスクアレイ２０７で利用されたＬＲＵポリシーと同様にして当該メモリ領域を再利用する新たなコンテンツにより消去される。このようにして、ＬＲＵ及びキャッシュ処理によると、リクエストされたデータが最近読まれたもののためＲＡＭにまだ存在する場合、ディスクアレイ２０７にアクセスする必要なくデータはＲＡＭから提供され、ディスクアレイ２０７にまだ残っている場合、ライブラリ格納システム２０１からのアクセスよりも、ディスクアレイ２０７からデータは提供される。これにより、より人気のあるタイトルはメモリまたはディスクドライブに存在する確率が高くなり、ほとんどリクエストされない人気のないタイトルよりはるかに速く抽出することが出きるということが理解されるであろう。
【００６７】
図９は、本発明の一実施例によるシャドウ処理を示すブロック図である。第１プロセッサＰａ９０１は、第１タイトルマップＴＭ１９０５を利用する第１ユーザプロセスＵＰ１９０３を実行する。第２プロセッサＰｂ９０７は、シャドウタイトルマップＴＭ１シャドウ９１１を利用するＵＰ１シャドウ９０９として示されるＵＰ１のためのシャドウユーザプロセスを実行する。この構成で、１つのプロセッサ上で実行される各通常ユーザプロセスに対して、シャドウユーザプロセスが他のプロセッサ上で実行される。また、ディレクトリプロセスがＭＤ６０１からコピーされると、シャドウユーザプロセスにより制御されるように、シャドウプロセッサ上でコピーが行われる。ＵＰ１９０３が通常に動作している限り、ＵＰ１シャドウ９０９は単にＵＰ１９０３を模倣あるいはミラーリングし、相対的に最小の処理を実行する。特に、ＵＰ１シャドウ９０９は、ＤＭ１シャドウ９１１によるＤＭ１９０５内の現在データ位置のシャドウ処理のような、他のシャドウ機能の中のＵＰ１９０３の進行を単に追跡する。このように、シャドウ処理ＵＰ１シャドウ９０９とＤＭ１シャドウ９１１の実現のため、プロセッサＰｂ９０７により実行されるオーバヘッド処理量は最小である。同様にして、第２プロセッサＰｂ９０７は、第２タイトルマップＤＭ２９１５を利用する第２ユーザプロセスＵＰ２９１３を実行する。第１プロセッサＰａ９０１は、シャドウディレクタマップＤＭ２シャドウ９１９を利用する、ＵＰ２シャドウ９１７として示されるＵＰ２のためのシャドウユーザプロセスを実行する。再び、ＵＰ２９１３が通常動作する限り、ＵＰ２シャドウ９１７は単に模倣またはミラーリングするか、あるいは他のシャドウ機能の中でＵＰ２９１３の進行を追跡する。
【００６８】
このように、プロセッサＰａ９０１とＰｂ９０７は、少なくとも１つのユーザプロセスに関して互いに追跡を行うということが理解されるであろう。明示的には示されていないが、プロセッサＰａ９０１のような所与のプロセッサ上で実行されるすべてのユーザプロセスは、必ずしも同一のプロセッサでない他のプロセッサ２０５に関するシャドウプロセスによりミラーリングされる。例えば、プロセッサＰａ９０１が２５０のユーザプロセスを実行している場合、２５０のシャドウプロセスがその他のプロセッサ２０５に分散されるか、あるいはプロセッサＰｂ９０７のような少なくとも１つの他のプロセッサ上で実行される。また、プロセッサＰａ９０１は、他のプロセッサ２０５上で実行される他のユーザプロセスに対し少なくとも１つのシャドウプロセスを実行するか、あるいは各プロセッサ２０５が一般に２５０までのユーザプロセスを扱うと仮定して、２５０まであるいはそれ以上のシャドウプロセスを実行するようにしてもよい。一実施例では、プロセッサＰａ９０１のような所与のプロセッサ上で実行されるすべてのユーザプロセスが、プロセッサＰｂ９０７のような他の１つのプロセッサにより、あるいはその反対にシャドウ処理される。
【００６９】
ハートビート信号（ｈｅａｒｔｂｅａｔ  ｓｉｇｎａｌ）ＨＢ１が、プロセッサＰａ９０１からプロセッサＰｂ９０７に与えられる。ＨＢ１信号は、ソフトウェアプロセス、ハードウェアプロセスあるいはその組み合わせにより生成されてもよい。例えば、ＨＢ１信号は、プロセッサＰａ９０１上で実行されるユーザプロセスＵＰ１９０３と直接関連付けされてもよいし、あるいはプロセッサＰａ９０１上で実行されるすべてのユーザプロセスと関連付けされてもよい。あるいは、ＨＢ１信号は、ハードウェアに関連し、プロセッサＰａ９０１またはそれのＣＰＵにより生成されてもよい。ＨＢ１信号は、もとになるコンピュータの状態を示すよう一般に動作する周期的あるいは連続信号である。例えば、ＨＢ１信号がプロセッサＰａ９０１により周期的または連続的に生成される（あるいは連続的にネゲートされる）限り、プロセッサＰｂ９０７はプロセッサＰａ９０１が通常動作していると仮定し、その進行をシャドウ処理し続ける。しかしながら、プロセッサＰａ９０１が所定期間ＨＢ１信号のアサートに失敗するときのような、ＨＢ１信号がエラーを示す場合、あるいはＨＢ１信号がネゲートあるいはアサートされる（アース信号あるいはオープン回路ハードウェア信号のような）場合／とき、プロセッサＰｂ９０７は関連するプロセスあるいはプロセッサＰａ９０１のエラーと考え、プロセッサＰｂ９０７は、ユーザプロセスＵＰ１シャドウ９０９を駆動して、メインユーザプロセスＵＰ１９０３を引き継ぐ。ＵＰ１シャドウ９０９がＵＰ１９０３を追跡しているので、ＵＰ１シャドウ９０９はユーザから見えない方法（ｔｒａｎｓｐａｒｅｎｔ  ｍａｎｎｅｒ）でＵＰ１９０３が終了した地点から正確にほとんどすぐに引継ぎを行う。その結果、対応する加入者位置１０５におけるエンドユーザはサービスの中断を受けずに済む。ＨＢ１信号のタイミングは、シャドウプロセスＵＰ１シャドウ９０９がサービスの中断なくＵＰ１９０３のサービスの制御を考えることを可能にするよう設計されている。プロセッサＰｂ９０７によりプロセッサＰａ９０１にアサートされた他のハートビート信号ＨＢ２は、プロセッサＰｂ９０７上で実行される１以上のプロセスのエラー、あるいはプロセッサＰｂ９０７自身のエラーにより、シャドウプロセスＵＰ２シャドウ９１７がメインプロセスＵＰ２９１３の処理を引き継ぐことを可能にするよう同様に動作する。ハートビート信号の１つのフォーマットは、表示されるファイルのマスタプロセスの位置を示す数値であり、それによって、ハートビートステータス標識として機能する。
【００７０】
一実施例では、プロセッサＰａ９０１上で実行されるすべてのメインユーザプロセスが、プロセッサＰｂ９０７上の対応するシャドウプロセスにより、あるいはその反対としてシャドウ処理される。本実施例では、プロセッサ２０５はすべて対にされ、第１プロセッサが対となる第２プロセッサを、そしてその反対に第２プロセッサが第１プロセッサをそれぞれシャドウ処理する。このようにして、シャドウ処理を行うプロセッサのシャドウプロセスは、プロセッサ２０５の何れかの不良が起こったとしても、メイン処理を果たすことができる。類似した一連のスイッチ９２１のうちの対応するものが、メインプロセスとシャドウプロセスとの間のユーザからは見えない自動的なスイッチ処理を可能にするようプロセッサ２０５の各ペアの出力に配置される。図示されるように、プロセッサＰａ９０１の出力はスイッチ９２１のポート９２７に接続され、プロセッサＰｂ９０７の出力はスイッチ９２１のポート９２９に接続される。スイッチ９２１の第３ポート９３１はプロセッサＰａ９０１の変調／復調器ＭＤａ９２３に接続され、もう１つのポート９３３はプロセッサＰｂ９０７の変調／復調器ＭＤｂ９２５に接続される。スイッチ９２１は、各ポート９２７〜９３３が１Ｇｂｐｓ以上で動作する４−ポートイーサネット（登録商標）スイッチなどのアドレスベースのスイッチである。
【００７１】
通常動作中、プロセッサＰａ９０１によりアサートされるデータはＭＤａ９２３に供給され、ポート９２７に入力されるデータはスイッチ９２１によりポート９３１に転送される。同様に、通常動作中、プロセッサＰｂ９０７によりアサートされるデータはＭＤｂ９２５に供給され、ポート９２９に入力されるデータはスイッチ９２１によりポート９３３に転送される。プロセッサＰｂ９０７の不良時に、ＨＢ２信号がそのようなエラーを示すと、シャドウプロセスＵＰ２シャドウ９１７がメインプロセスＵＰ２９１３を引き継ぐ。シャドウプロセスＵＰ２シャドウ９１７は依然としてＭＤｂ９２５に向けられているデータをスイッチ９２１のポート９２７にアサートする。これによって、スイッチ９２１はデータをポート９３１でなくそれのポート９３３に自動転送する。プロセスＵＰ１９０３によりアサートされたデータはＭＤａ９２３に向けられたままとされ、ポート９２７に入力されるデータは依然としてスイッチ９２１によりポート９３１に転送される。このようにして、プロセッサＰｂ９０７の不良はプロセスＵＰ１９０３及びＵＰ２９１３に関連付けされた加入者位置１０５に対して実質的に見えないようになっている。同様にして、プロセッサＰａ９０１の不良時には、シャドウプロセスＵＰ１シャドウ９０９が不良状態のメインプロセスＵＰ１９０３の引継ぎを行い、データをＭＤａ９２３に向け、スイッチ９２１によりポート９２９からポート９３１に転送される。このように、プロセッサＰａ９０１の不良は、プロセスＵＰ１９０３及びＵＰ２９１３に関連付けされた加入者位置１０５に対して実質的に見えないようになっている。
【００７２】
さらにここで、スイッチ９２１は上流方向への加入者データを自動処理し、起動されたシャドウプロセスにより修正された加入者位置１０５から送信された任意の加入者データの受信が行われる。特に、シャドウプロセスＵＰ２シャドウ９１７がメインプロセスＵＰ２９１３を引き継ぐため始動すると、不良なメインプロセスＵＰ２９１３のためプロセッサＰｂ９０７に向けられたＭＤｂ９２５に送信されるデータはスイッチ９２１によりポート９３３からポート９２７に自動転送され、シャドウプロセスＵＰ２シャドウ９１７により受信される。同様に、シャドウプロセスＵＰ１シャドウ９０９がメインプロセスＵＰ１９０３を引き継ぐため始動すると、不良なメインプロセスＵＰ１９０３のためプロセッサＰａ９０１に向けられたＭＤａ９２３に送信されるデータはスイッチ９２１によりポート９３１からポート９２９に自動転送され、シャドウプロセスＵＰ１シャドウ９０９により受信される。
【００７３】
さらにここで、プロセッサＰａ９０１がプロセッサＰｂのシャドウペアとなっている場合、プロセッサＰａ９０１（またはＰｂ９０７）の不良時には、もう一方のプロセッサＰｂ９０７（またはＰａ９０１）が不良状態のプロセッサのすべてのユーザプロセスを受け持つ。このようにして、シャドウ処理を行うプロセッサは即座に両方のプロセッサのためのすべてのユーザに対するすべてのデータ処理を受け持つ。これまでユーザプロセスに関してシャドウプロセスが説明されてきたが、このシャドウプロセスは、例えば、ＲＡＩＤコントローラ、抽出プロセス、ロードプロセス、ディレクトリプロセス、ビジネスプロセスなどのユーザサービスに関する他の処理機能に対しても利用可能である。ピーク時のような高使用時にこのようなエラーが発生し、プロセッサ２０５がそのようなプロセッサのペアの合成されたトータル処理を扱えるよう設計されている場合、恐らく残りのプロセッサが両方のプロセッサの全体処理能力をまかなうことはできない。
【００７４】
所与のプロセッサ２０５の過重加入者負荷（ｏｖｅｒ−ｓｕｂｓｃｒｉｂｅｄ）が生じる場合、例えば、もう一方のプロセッサの不調時などの場合、サービスの低下が起こると考えられる。通常状態では、「バーカーチャンネル（Ｂａｒｋｅｒ  ｃｈａｎｎｅｌ）」、プレビュー及び利用可能なビットレート非同期トラフィックのため過剰にネットワーク帯域幅が利用されているかもしれない。エラーが発生し、シャドウプロセスが現在のすべてのプロセスを引き受けることができない場合、バーカーチャンネルまたはプレビューは映像から静止画像に戻るか、あるいはインフォマーシャル（ｉｎｆｏｍｅｒｃｉａｌ）のような他のサービスに転じられる。ＡＢＲトラフィックは大きく低減されるかもしれない。プロセッサ２０５の帯域幅の大部分が無料サービスに利用される場合、緊急時にはまずそのようなサービスが削除される。最後の手段として、ユーザストリームがファーストカムファーストサーブ（ｆｉｒｓｔ−ｃｏｍｅ  ｆｉｒｓｔ−ｓｅｒｖｅｄ，ＦＣＦＳ）のような優先基準に従って中断されるか、あるいはより高料金のストリームが維持される。一実施例では、例えば、２つのプロセッサの処理を引き受けようとするシャドウ処理を行うプロセッサが不良状態のプロセッサの全体処理能力を引き受けることができないと判断し、このシャドウ処理を行うプロセッサはその時点で処理可能なプロセスのみを選択的に引き受ける。例えば、シャドウ処理を実行するプロセッサは、ＦＣＦＳ基準などに従いユーザプロセスの一部のみを引き受けるかもしれない。このようにして、一部のユーザはサービスの中断を余儀なくされるが、多くのユーザに対してサービスの中断を回避することができる。
【００７５】
ここで、タイトル及び情報は、データタイプやＩＢＳシステム１０９の処理能力に応じたライブラリ格納システム２０１における様々な蓄積フォーマットであるかもしれない。また、データはロード及び格納プロセスの実行中、あるいは抽出及び送出プロセスの実行中に、１以上のプロセスにより処理されてもよい。これまで、ＭＰＥＧ−２データの復号順から表示順への変換、ＲＡＩＤ格納のためのＥＣＣ情報やＰＶＲ機能（例えば、早送り、巻き戻し、一時停止）を可能にするタイミング情報の生成などの例が与えられてきた。表示対象あるいは表示中に利用されるコマーシャル、メタデータあるいは追加情報を追加するためのつなぎコンテンツ、契約上の義務（例えば、有効期限など）のような他の情報及びコンテンツが追加されてもよい。追加される情報の多くは、各データブロックのヘッダに含まれてもよい。
【００７６】
一実施例では、追加情報の一部あるいはすべてを含めるため、そしてタイトルがリクエストされ、ディスクアレイ２０７にロードされたとき、後処理を低減あるいは回避するために、タイトルはライブラリ格納システム２０１への格納のため指定されたフォーマットに予め記録されてもよい。メタデータの一例となるフォーマットとして、ＭＰＥＧ−７規格によって示されるようなＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）がある。一構成では、１以上のプロセッサ２０５は、受信したコンテンツを所望のフォーマットで格納するための処理及び記録機能を備える。あるいは、別の記録ステーション（図示せず）が、第三者からのコンテンツを所与のフォーマットあるいは標準フォーマットからＩＢＳシステム１０９による利用のため所望のフォーマットに変換するため与えられる。このように、データは再構成され、上記のような追加情報により補充され、さらにＥＣＣ情報を含むＲＡＩＤフォーマットに予め処理され、その後所望のフォーマットで格納される。このように、処理データライブラリ格納システム２０１からロードされ、ディスクアレイ２０７に格納され、及び／またはユーザプロセスによりディスクアレイ２０７から抽出されると、追加的処理は大きく最小化される。
【００７７】
ここで、ライブラリ格納システム２０１に格納されている各タイトルは、格納されているデータタイプに応じて、対応する帯域幅またはデータレートと関連付けされてもよい。このように、ＩＢＳシステム１０９は、任意の時点において可変コンテンツを１Ｍｂｐｓ以下から２０Ｍｂｐｓ以上の間で変動するデータレートで処理する。また、ＩＢＳシステム１０９の各構成要素は、常にそれを超えることがない所定の最大帯域幅を有する。例えば、バックボーンスイッチ２０３と各プロセッサ２０５は、それらに関連付けされた所与の最大帯域幅を有する。処理中のデータは可変データレートを有するため、過重負荷あるいはボトルネックが発生するシステムの地点でデータはスタックされる。ライブラリ格納システム２０１からディスクアレイ２０７へのデータのランダムあるいは擬似ランダムな格納は、ランダムアルゴリズムを使ったとしても完全には解決されないが、帯域幅スタック問題を軽減することができるであろう。
【００７８】
管理プロセッサ２１０で集中的に実行されるか、あるいはプロセッサ２０５に分散される管理機能は、過重負荷状態を招く帯域幅スタック処理及び潜在的なスループットのボトルネックを回避するため、帯域幅の管理を行う。一実施例では、管理機能は、各構成要素における帯域幅の利用を追跡し、さらにリクエストされた各タイトルに関連付けされた追加的な帯域幅を追跡する。タイトルがリクエストされると、管理機能は現在の帯域幅と新たなタイトルを追加するのに要する追加的な帯域幅を比較し、任意の与えられた時点でこの新たな帯域幅要件と最大帯域幅パラメータを比較する。このような帯域幅の追跡はまた、最大帯域幅パラメータを潜在的に超えるかもしれない帯域幅使用ピークを回避または最小化するため、経時的に必要な帯域幅を把握する。一実施例では、管理機能は待ち時間及び遅延の増加により、潜在的な過重負荷状態を回避する。このようにして、管理機能が過重負荷状態を特定すると、新たなタイトルリクエストはすぐには開始されず、管理機能による遅延の増加後、帯域幅使用が再計算される。過重負荷状態が依然として解消されない場合、管理機能は過重負荷状態が解消あるいは最小化されるまで、追加的に遅延を増やすことにより再計算を続ける。このように、新たなタイトルは、過重負荷状態を解消または最小化するための計算された遅延の増加後に開始される。一構成では、余分な帯域幅が回避不可能である場合、新たなタイトルはいつまでも遅延される。あるいは、ある遅延により帯域幅使用ピークが最小化された後、管理機能は、経時的に処理を展開し、過重負荷状態を解消するため、すべての余分な過重負荷状態を予想し、帯域幅を再割り当てする。例えば、過重負荷状態を回避するため、追加的な前処理が実行されてもよいし、あるいは分散処理が利用されてもよい。
【００７９】
本発明がそれの好適なものを含む実施例を参照して詳細に説明されたが、他の実施例及び変形が可能かつ考えられる。本発明は、本発明の趣旨及び範囲に合理的に含まれうる変形、修正及び均等なものをカバーするものとされる。当業者は、添付されたクレームにより定義される本発明の趣旨及び範囲から逸脱することなく、本発明と同一の目的を実行する他の構成を設計または修正するための基礎として、開示された概念及び特定の実施例を容易に利用できると認識すべきである。
【図面の簡単な説明】
【００８０】
【図１】図１は、本発明の一実施例に従い構成された対話型ブロードバンドサーバ（ＩＢＳ）システムを含む通信システムの簡素化されたブロック図である。
【図２Ａ】図２Ａは、図１のＩＢＳシステムの一実施例のブロック図である。
【図２Ｂ】図２Ｂは、図２Ａのプロセッサに分散された一例となる光ディスクドライブを利用する図１のＩＢＳシステムの他の実施例を一部のブロック図である。
【図３】図３は、図２の各プロセッサの一実施例のブロック図である。
【図４】図４は、本発明の一実施例によるＲＡＩＤディスク構成を示すブロック図である。
【図５Ａ】図５Ａは、図２の選択されたプロセッサ上で実行されるユーザプロセス（ＵＰ）により起動されるタイトルのユーザタイトルリクエスト（ＵＴＲ）、ロード、格納及び抽出プロセスを示すブロック図である。
【図５Ｂ】図５Ｂは、リクエストされたタイトルへのアクセス及び格納のための一例となる分散ロードプロセスを示すブロック図である。
【図５Ｃ】図５Ｃは、図２の分散された光ディスクドライブを利用したリクエストされたタイトルへのアクセス及び格納のための一例となる協調ロードプロセスを示すブロック図である。
【図６】図６は、図２のあるプロセッサ上のユーザプロセスによるタイトルのリクエスト及び抽出処理と他のプロセッサ上で実行されるディレクトリプロセスの動作を示すより詳細なブロック図である。
【図７】図７は、ユーザプロセス、ディレクトリプロセス、ロードプロセスなどを含む様々なプロセスにより利用される一例となるタイトルマップのより詳細なブロック図である。
【図８】図８は、タイトル及びデータの格納及び抽出のため図１のＩＢＳシステムにより利用されるキャッシュ処理及びＬＲＵ（Ｌｅａｓｔ−Ｒｅｃｅｎｔｌｙ−Ｕｓｅｄ）法を示すブロック図である。
【図９】図９は、本発明の一実施例によるシャドウ処理を示すブロック図である。
【図１】
2005527130.tif 000003
【図２Ａ】
2005527130.tif 000004
【図２Ｂ】
2005527130.tif 000005
【図３】
2005527130.tif 000006
【図４】
2005527130.tif 000007
【図５Ａ】
2005527130.tif 000008
【図５Ｂ】
2005527130.tif 000009
【図５Ｃ】
2005527130.tif 000010
【図６】
2005527130.tif 000011
【図７】
2005527130.tif 000012
【図８】
2005527130.tif 000013
【図９】
2005527130.tif 000014
【国際調査報告】
2005527130.tif 000015