(57)【特許請求の範囲】
【請求項１】
メディア・デバイスのネットワーク内でコンテンツ項目を提供する方法であって、前記方法は、
所望のコンテンツ項目についての第１の所望のコンテンツＩＤを、前記メディア・デバイスのネットワーク内の第１のデバイスのコンテンツ・ディレクトリに挿入するステップであって、前記ネットワーク内の前記デバイスの前記コンテンツ・ディレクトリは、前記デバイス内に存在するコンテンツのコンテンツＩＤと、同じく前記デバイスが所望するコンテンツのコンテンツＩＤとを含む、前記挿入するステップと、
前記ネットワーク内の前記他のデバイスのコンテンツ・ディレクトリを比較して、前記他のデバイスのいずれかが前記第１の所望のコンテンツＩＤを含むコンテンツ・ディレクトリを有するかどうかを判断する、前記比較するステップと、
そのコンテンツ・ディレクトリ内に前記第１の所望のコンテンツＩＤを有するデバイスについて、前記他のデバイス内に前記所望のコンテンツが存在するかどうかを判断するステップと、
前記他のデバイス内に前記所望のコンテンツが存在するかどうかを判断することに応答して、前記所望のコンテンツのコピーを前記第１のデバイスに転送するステップと、
を含む方法。
【請求項２】
前記他のデバイス内に前記第１の所望のコンテンツが存在するかどうかを判断する前記ステップは、
前記他のデバイスのコンテンツ・ディレクトリ内に前記第１の所望のコンテンツＩＤを有するコンテンツのレプリカが存在するかどうかを判断することによって、所望のコンテンツを識別するステップであって、レプリカの不存在は、前記コンテンツが所望のコンテンツであることを示す、前記識別するステップを含む、請求項１に記載の方法。
【請求項３】
前記ネットワークの前記デバイス内にデジタル・コンテンツ項目の各バイナリ・ツリーを作成するステップをさらに含み、各コンテンツ項目は、前記ツリー内のリーフ・ノードにより表され、前記デバイスのいずれかにおけるいずれかのコンテンツ項目の変更は、前記バイナリ・ツリーの変更をもたらす、請求項１又は請求項２のいずれかに記載の方法。
【請求項４】
前記比較するステップは、
各デバイスについての前記バイナリ・ツリーを他の全てのデバイスと交換することによって、各デバイス内の前記バイナリ・ツリーを定期的に更新するステップと、
現在のツリーのルート・ノードを以前に格納されたルート・ノードのルート・ノードと比較することによって、バイナリ・ツリーに対する何らかの変更があるかどうかを判断するステップと、
前記現在のルート・ノードが異なるかどうかを判断することに応答して、変更された前記ルート・ノードの下方のノードのみを置き換えることによって、前記デバイスについての前記局所的に格納されたバイナリ・ツリーを更新するステップと、
をさらに含む、請求項３に記載の方法。
【請求項５】
前記バイナリ・ツリーを作成するステップは、
所定の区分化基準を用いて、コンテンツＩＤに従って前記バイナリ・ツリー内のノードを区分化するステップと、
前記区分化に基づいて前記コンテンツＩＤにより前記ノードをグループ化するステップと、
をさらに含む、請求項４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク・メディア・デバイスに関し、より具体的には、ネットワーク・メディア・デバイス内の求められている（sought-after）コンテンツ項目にマーク付けし、これを獲得することに関する。
【背景技術】
【０００２】
テレビ、ＤＶＤプレーヤ、デジタル・ビデオ・レコーダ（ＤＶＲ）及びＭＰ３ミュージック・プレーヤ等の家庭用メディア・デバイスにおける最近の傾向は、ローカル・エリア・ネットワークを介して家庭内のこうしたデバイスを相互接続することである。家庭用メディア・デバイスのための提案される又は利用可能なネットワーク解決法は、イーサネット又はＩＥＥＥ１３９４を使用して、銅線伝送、ファイバ伝送、無線伝送、又はこれらの組み合わせのいずれかでデバイスを接続する
【０００３】
大部分の解決法は、典型的には、デバイスを別個の単一のインスタンス・デバイスとして扱うものである。ネットワークの使用が、リモート・アクセスして、デバイスを制御すること、及び、ストリーミング・コンテンツを復号装置（例えば、ＤＶＤプレーヤ）からレンダリング装置（例えば、テレビ）に伝えることに限定されることがある。次第に、家庭用メディア・デバイス内で用いられるコンテンツは、ファイル又はファイル・グループのようなコード化されたデジタル・データとしてメディア・デバイス上に保持され、かつ、メディア・デバイスに直接接続される又はネットワークのデバイスがアクセスする磁気ディスク若しくはフラッシュ・メディア・デバイス上に格納されるようになっている。このようなコンテンツは、映画、テレビ番組、音楽及びデジタル写真を含む、種々のメディア形式から成る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワーク・メディア・デバイス上の求められているコンテンツ項目にマーク付けし、これを獲得するためのシステム、方法及びコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【０００５】
第１の態様から見ると、本発明は、所望のコンテンツ項目についての第１の所望のコンテンツ識別（ＩＤ）を、メディア・デバイスのネットワーク内の第１のデバイスのコンテンツ・ディレクトリに挿入することであって、ネットワーク内のデバイスのコンテンツ・ディレクトリは、デバイス内に存在するコンテンツのコンテンツＩＤと、同じくデバイスが所望するコンテンツのコンテンツＩＤとを含む、挿入することと、ネットワーク内の他のデバイスのコンテンツ・ディレクトリを比較して、他のデバイスのいずれかが、第１の所望のコンテンツＩＤを含むコンテンツ・ディレクトリを有するかどうかを判断することと、そのコンテンツ・ディレクトリ内に第１の所望のコンテンツＩＤを有するデバイスについて、他のデバイス内に所望のコンテンツが存在するかどうかを判断することと、他のデバイス内に所望のコンテンツが存在する場合には、所望のコンテンツのコピーを第１のデバイスに転送することとを含む、方法を提供する。
【０００６】
第２の態様から見ると、本発明は、コンピュータ・システムが探索している特定のコンテンツ項目を識別するコンピュータ・システムのコンテンツ・ディレクトリ内に、少なくとも１つのコンテンツ・プレースホルダを配置することであって、コンピュータ・システムは複数のコンピュータ・システムに相互接続されている、配置することと、コンピュータ・システムのディレクトリ内のコンテンツを、複数のコンピュータ・システム内のコンテンツと同期させることと、特定のコンテンツの存在を同期させる際に、コンピュータ・システムが、複数のコンピュータ・システムの少なくとも１つに通知することを可能にすることと、同期させることの後、複数のコンピュータ・システムの少なくとも１つから特定のコンテンツを取得することとを含む、方法を提供する。
【０００７】
第３の態様から見ると、本発明は、各々がコンテンツ項目へのアクセスを有し、かつ、デジタル・コンテンツを互いに交換することができる、複数の相互接続されたメディア・プレーヤと、デバイス内の各コンテンツ項目のリスト及びデバイスの所望のコンテンツ項目のリストを含む、各デバイス内のコンテンツ・リストと、各デバイス上の各コンテンツ・リストのバイナリ・ツリー表現とを含む、システムを提供する。
【０００８】
第４の態様から見ると、本発明は、デバイス内に常駐するコンテンツの全てのコピー及びデバイスの所望のコンテンツの記憶場所を表す、各デバイスについてのバイナリ・ツリーをデバイスのクラスタ内に生成し、クラスタ内の複数の他のデバイスについてのバイナリ・ツリーを各デバイス内に格納し、複数の他のデバイスについてのバイナリ・ツリーを用いて所望のコンテンツの記憶場所を判断し、判断された記憶場所から所望のコンテンツを取得するように構成された、コンピュータ使用可能プログラム・コードがその上に具体化されたコンピュータ使用可能媒体を含む、メディア・デバイスのネットワーク内でコンテンツ項目を提供するためのコンピュータ・プログラム製品を提供する。
【０００９】
さらに別の態様によると、本発明は、プログラムがコンピュータ上で実行されているときに本発明のステップを実行するためのソフトウェア・コード部分を含む、コンピュータ可読媒体上に格納され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムを提供する。
【００１０】
ここで、本発明が、単なる例として、次の図面内に示される好ましい実施形態を参照して説明される。
【図面の簡単な説明】
【００１１】
【図１】従来技術による、本発明の好ましい実施形態を実施することができる、デバイスのコンテンツ・クラスタのブロック図を示す。
【図２】本発明の好ましい実施形態による、バイナリ・ツリーの図を示す。
【図３】本発明の好ましい実施形態による、このようなデバイスのネットワーク内の複数のメディア・デバイスから所望のコンテンツを取得するためのプロセスのフローチャートを示す。
【図４】本発明の好ましい実施形態による、デバイスのネットワーク内のデバイス間でコンテンツ・リストを同期させるためのプロセスのフローチャートを示す。
【図５】本発明の好ましい実施形態による、本発明の１つの実施形態を実施するのに有用な情報処理システムの高レベル・ブロック図を示す。
【発明を実施するための形態】
【００１２】
本発明の好ましい実施形態が、ネットワーク・メディア・デバイス上の求められているコンテンツ項目にマーク付けし、これを獲得するためのシステム、方法及びコンピュータ可読媒体を提供する。必要とされるネットワーキング・プロトコル及びライセンスを受けたコンテンツの無許可配布を防ぐためのコンテンツ保護システムを確立するために、多くの努力がなされているが、これらのネットワーク化されたメディア・デバイス上に保持され、そこから入手可能なコンテンツのインテリジェントな管理に関しては、相対的にほとんど革新が行われていない。コンテンツを保持するデータ・ファイルをインテリジェントに管理することが望ましい。当技術分野の現在の状態は、一般に、コンテンツの明示的なコピーを１つのデバイスから別のデバイスへと作成することに限られている。
【００１３】
デジタル・ビデオ・レコーダは、デバイスが自動的にコピーを記録する検索基準から成る「検索リスト」を作成する能力をもつ。ユーザは、「Ｓｔａｒ  Ｔｒｅｋ（スター・トレック）」の全話を取得せよ、或いは、タイトル内にＳｔａｒ  Ｔｒｅｋを有する「＊スター・トレック＊」あらゆる番組を取得せよ、といった種々の検索項目を、明示的に又は照合パターンを用いて入力する。こうした検索は、ビデオ配信ソース（ケーブル又は衛星、或いはインターネット）により提供されたテレビ番組のメタデータ記述（タイトル、俳優、ディレクタ、要約、日付、ジャンル、オリジナル放送／再放送）に依存して、これらの検索語を適用する。この能力を備えた市場の製品の例は、ＴｉＶｏ  ＤＶＲである。ＴｉＶｏの場合、この検索は、ユーザが検索を作成する単一のＴｉＶｏデバイスにしか適用されない。さらに、この検索は、ＴｉＶｏデバイスに供給するビデオ・ソース（ケーブル又は衛星）を通じて放送されるとき、ＴｉＶｏに、番組を録画するように指示するためにのみ用いられる。ＴｉＶｏデバイスは、ネットワーク上の他のコンテンツ保持デバイスからコンテンツ・データのコピーを取得する能力をもたない。
【００１４】
デバイスとステージング・サーバとの同期を介して、コンテンツがデバイス上に提供されるように明示的に要求する能力が、Ａｐｐｌｅ社のＡｐｐｌｅ  ＴＶ製品に見られる。ここで、Ａｐｐｌｅ  ＴＶ装置は、コンテンツを後の再生のためにコピーすることができる内蔵ハード・ドライブを含む。コンテンツは、同じ家庭内のＰＣ上で実行されているｉＴｕｎｅアプリケーションから取得され、ネットワークを介してＡｐｐｌｅ  ＴＶ装置に接続される。コピーされるコンテンツは、次の同期操作で入手可能なあらゆるコンテンツを自動的に選択することによって、又は、ＰＣ上に既に存在するコンテンツを明示的に選択することによって、選択される。しかしながら、Ａｐｐｌｅ  ＴＶの解決法では、ＰＣ上にまだ存在しないコンテンツ項目をコピーするために、デバイスのユーザが、選択的な要求を作成することはできない。Ａｐｐｌｅ  ＴＶの解決法はまた、データ・ソースとして１つのＰＣのみを使用する作業に限定される。
【００１５】
ここで図１を参照すると、従来技術による、本発明の好ましい実施形態を実施することができる、例示的なコンテンツ・クラスタ１０が示される。コンピュータ１２、セット・トップ・ボックス１４、デジタル・ビデオ・レコーダ（ＤＶＲ）１６、ＤＶＤプレーヤ１８、ＭＰ３プレーヤ２０及び携帯電話２２のような複数のデバイスが、全て、ローカル・エリア・ネットワーク（ＬＡＮ）又は広域エリア・ネットワーク（ＷＡＮ）のようなネットワーク２４に接続される。本発明の幾つかの好ましい実施形態において、銅線伝送、ファイバ伝送、無線伝送、又はこれらの方法の組み合わせを通じて、イーサネット又はＩＥＥＥ１３９４を使用して、ネットワークは、デバイスを接続することができる。セット・トップ・ボックス１４、ＤＶＲ１６及びＤＶＤプレーヤはそれぞれ、１つ又は複数のテレビ２５に接続される。コンピュータ１２はまた、外部メモリ・ユニット２６、外部ディスプレイ・ユニット２８及びプロセッサ３０も含む。コンピュータ１２以外の他のデバイス１４−２２は全て、内部又は外部メモリ・ユニット、ディスプレイ・ユニット及びプロセッサを含むことができることが理解されるであろう。
【００１６】
デバイスの各々が、デバイス１２−２２のいずれかに格納されたコンテンツにアクセス可能であることが望ましい。種々のデバイス内のコンテンツに関する情報は、各々のコンテンツ項目についての固有の識別子（ＩＤ）、並びに、コンテンツ項目の既知のコピーの各々及びコピーを保持するデバイスのリストから成る、コンテンツ・リスト内に格納される。
【００１７】
コンテンツ・クラスタ内のコンテンツ項目は、どのデバイスに格納されるかに関係なく、同じコンテンツ項目（例えば、映画又は歌）のどの２つ又はそれ以上のインスタンスも同じコンテンツ識別子を有するように、コンテンツ項目と一意に関連付けられた識別子によって識別される。
【００１８】
本発明の好ましい実施形態を適用することができるコンテンツ・クラスタ１０の一例は、ＩＢＭ（登録商標）のＡｄｖａｎｃｅｄ  Ｓｅｃｕｒｅ  Ｃｏｎｔｅｎｔ  Ｃｌｕｓｔｅｒ  Ｔｅｃｈｎｏｌｏｇｙ（ＡＳＣＣＴ）におけるものであり、これは、クラスタ内の他のデバイス上に存在するコンテンツ項目のレプリカのリストと共に、デバイス上に保持されるコンテンツ項目のリストを備えている。ＩＢＭは、米国、他の国、又はその両方におけるＩｎｔｅｒｎａｔｉｏｎｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの商標である。ＩＢＭのＡＳＣＣＴは、クラスタ内のデバイスが、デバイス上に保持されるコンテンツ項目を表すハッシュ・ツリー（hash tree）を発行する、高速同期プロトコルを提供する。
【００１９】
デバイス上に保持されるコンテンツを表すハッシュ・ツリーは、保持されるコンテンツ項目の各々のコンテンツＩＤを取得し、それを、同じ最初の２文字を有する他のコンテンツ項目と共にグループ化することによって構築される。コンテンツＩＤは、同じ動きのような２つの同一のコンテンツ項目が同じ値を有するように、確定的に得られた１６バイトの値である。このことは、コンテンツ項目についてのコンテンツ・ユニバーサル・リソース・ネーム（Ｕｎｉｖｅｒｓａｌ  Ｒｅｓｏｕｒｃｅ  Ｎａｍｅ、ＵＲＮ）を、コンテンツ（ＵＲＮ）を統計的に別個の１６バイト値に変換するＡＥＳ−１２８ハッシュ関数への入力として用いることによって達成される。コンテンツＵＲＮは、コンテンツの作成者又は配布者のいずれかにより、コンテンツ項目に割り当てられる。この値は、コンテンツ項目を一意に識別するために用いられる。
【００２０】
クラスタ内の各デバイスは、各自のコンテンツ状態ツリーを互いに交換する。デバイスからの現在のツリーを、受信した以前のツリーと比較することによって、どのコンテンツ・グループに追加又は削除がなされたかを容易に検出することができる。受信側デバイスによる第２の比較により、受信側デバイスが、他のデバイスから取り出す必要があるツリーのリーフを判断することが可能になるので、受信側デバイは、コンテンツのローカル・リストを更新することができる。このツリーの比較は、簡単な等価比較演算子（equality comparison operator）を用いて行うことができる。例えば、値の排他的論理和演算（ＸＯＲ）を行い、その結果が全て０であった場合、ブランチ内には変更がない。これまで説明したように、ＩＢＭ  ＡＳＣＣＴにおけるコンテンツ・ディレクトリは、ローカル・デバイス上のコンテンツ項目及び他のデバイス上のコンテンツ・レプリカのリストを管理するだけである。
【００２１】
図２は、本発明の好ましい実施形態による、バイナリ・ツリー３２である例示的なコンテンツ状態ツリーを示す。この例においては、コンテンツＩＤの最初の２文字をグループ化基準として使用して、１２８ビット／１６バイトのハッシュ値を生成するために、ＡＥＳ１２８をハッシュとして用いる。これにより、デバイスのコンテンツ・リストに関するハッシュ・ツリー３２がもたらされる。例示的なコンテンツＩＤは、以下の文字範囲〔０・・・９，Ａ−Ｆ〕を有するように１６進法で表された１６バイト値であるので、この例示的なツリー３２は、２５６個のリーフ３３を有する。このようにコンテンツＩＤの最初の２バイトを使用することにより、００からＦＦまでの値の範囲に及ぶ最初の２バイトを有する可能な２５６個のグループがもたらされる。その結果として、これは、９つのレベルのツリー、及び、各々が１６バイトのハッシュ値を保持する５１１個のノードをもたらす。従って、ツリー全体のサイズは、８１７６バイトである。
【００２２】
ハッシュ関数は、常に一定数のビットを戻すので、バイナリ・ツリーの各ノードは、同じサイズである。その結果、ハッシュ・ツリーは、一緒に付加され、ツリーを通る固定経路をたどるノードの値から成る、連続した一連のバイトとして表すことができる。
【００２３】
ツリーを通る固定経路の一例は、ルート・ノード３４から始まり、次のレベルにおいて最も左のノード３６が続き、最も右のノード３７に達するまで、その次のレベルにおいて各ノードを順に通る、幅優先（breadth-first）経路である。このプロセスは、該プロセスが、同じようにトラバースされるリーフの最後のレベルに達するまでレベル毎に繰り返される。このシステムは、全てのデバイスがそれに一貫して従う限り、任意のパス・トラバーサル（path traversal）方法を用いることができる。
【００２４】
トラバーサルに関する上述の幅優先手法を上記の例に適用することにより、以下の例示的なツリーの８１７６バイトの文字列表現が生成される。
〔ノード１〕１６バイト〔ノード２〕１６バイト・・・〔ノード５１１〕１６バイト＝範囲〔０・・・９，Ａ−Ｆ〕の８１７６バイトの文字列
【００２５】
関係しているコンテンツ・エントリのグループが変わる場合、特定のグループについてのリーフ・ノードの値が変わる。このような変更は、新しい項目がグループに追加されるか又はグループから削除される場合、或いは、グループ内のコンテンツ・エントリのいずれかが変更される場合に生じる。従って、コンテンツ・リストに対するあらゆる変更、又はコンテンツ・リスト内の要素に対するあらゆる変更が、変更が適用されるグループのハッシュ値の変更に反映される。その結果、より高いレベルのそれぞれは、より低いレベルに基づいて算出されるので、リーフ・ノードにおける変更は、ツリーにおいて上方に反映される。最終的には、ルート・ノード３４の値が変更される。所与のレベルにおけるノードの変更は、それより下位のノードにおいて１つ又は複数の変更が生じたことを反映する。
【００２６】
従って、単にルート・ノード３４を検査することによって、コンテンツ・リスト全体に対して何らかの変更が生じたかどうかを確認することが可能である。ルート・ノード３４が新しい値を有する場合、リスト内に１つ又は複数の変更が生じている。変更の場所は、ルート・ノード３４から下方に移動するツリー３２を比較検査することにより、推論することができる。所与のレベルにおけるノード内の変更は、それより下方のノードの変更を示す。ノード内に変更がないことは、それより下方のブランチ内のノードのいずれにも変更が生じなかったことを反映する。これは、コンテンツ・リストが変更されたかどうかを最初に検出し、変更が生じた場所を見つけ出すための高性能の機構を形成する。ごく最近格納された所与のコンテンツ・リストのツリーを格納し、それを同じリストの最新のハッシュ・ツリーと比較することによって、リストが変更されたかどうかを効率的に判断し、リストが変更されている場合には、中に変更を有するそれらのグループを識別することが可能である。このような比較の１つの利点は、全てのリーフ・ノードが変更されていない限り、概して、変更を求めて全てのリーフ・ノードを順次検索するよりも速く、変更されたリーフ・ノード値の記憶場所を判断することが可能である点である。
【００２７】
クラスタ内の各デバイスは、そのコンテンツ状態ツリーを、他の全てのデバイスと交換する。デバイスからの現在のツリーを、受信した以前のツリーと比較することによって、どのコンテンツ・グループに追加又は削除があるかを容易に検出することができる。受信側デバイスによる第２の比較により、受信側デバイスが、コンテンツのローカル・リストを更新するために、ツリーのどのリーフを他のデバイスから取り出す必要があるかを判断することが可能になる。このツリーの比較は、簡単な等価比較演算子を用いて行うことができ、例えば、値の排他的論理和演算を行い、その結果が全て０である場合、ブランチ内には変更がない。これは、全ての値が、使用されたハッシュ関数の結果と同じ長さであるために可能になる。これらの比較は、より低速で複雑な比較論理の代わりに、原始的操作のみを必要とするので、迅速に実行される。
【００２８】
表されたコンテンツ・リスト・ツリーのバイナリ・ツリーをデバイス間で交換することによって、少量のデータを使用し、コンテンツ・リストのどの区分を交換しなければならないかを判断して他のデバイス上に保持されているレプリカに関する情報を取得すること、又は、集約されたコンテンツ・リスト内に別のデバイス上のコンテンツを含ませることができる。
【００２９】
コンテンツ・リストを表すバイナリ・ツリーは、４つのステップ・プロセスによって構築される。最初に、何らかのグループ化基準に基づいて、コンテンツ・リスト内のエントリが、グループに区分化される。容認できる基準の実例は、コンテンツＩＤの最初の２バイトである。グループは、統計的に均等配分する必要はなく、またリストを、ハッシュ・ツリーの構築に使用できる部分に分割する以外に、他の如何なる特性ももたない。
【００３０】
第２のステップは、各々の区分化されたグループ内のコンテンツ・エントリのリストのハッシュを算出することである。グループ毎に１つのこれらのハッシュ値は、ハッシュ・ツリーのリーフを形成する。
【００３１】
第３のステップにおいて、互いに結合され、次いでハッシュ値が算出されたノードの真下にあるツリー内の２つのノードのハッシュから、新しいより上位のノード値を算出することによって、バイナリ・ツリーが算出される。所与のレベルに奇数のノードがある場合には、新しいレベルにおける最後のノードは、それより下方の単一の奇数−外側ノードのハッシュを含む。
【００３２】
第４のステップにおいては、上記の第３のステップが繰り返され、単一のルート・ノードが算出されるまでツリーを上方に移動させる。これらの４つのステップにより、バイナリ・ツリーを構成するコンテンツ・リストの現在の状態を表すバイナリ・ツリーがもたらされる。
【００３３】
使用される区分化基準が、リストが分割されるグループの数を決定する。これにより、ツリー内のリーフの数、そして次に、ツリーの高さが決定され、それにより、ツリーの全体のサイズ、ツリーを表すのに必要なデータの量、デバイス間で伝送する必要があるデータの量、及び、同期しているデバイスが取得したいと望むコンテンツ・リストのデータを有するかどうかを判断するために、デバイスが比較しなければならないデータの量が決定される。より幅広いツリーをもたらす区分化は、コンテンツ・リストに対する変更をより精密に追跡することを可能にするが、ツリーのサイズは、急速に大きくなる。
【００３４】
本発明の好ましい実施形態によると、デバイスは、局所的には保有していないコンテンツについてのコンテンツＩＤを、そのコンテンツ・ディレクトリに挿入することができる。この結果、クラスタ内の他のデバイスが、いつ、一致するコンテンツＩＤを有するコンテンツを保有するかを、デバイスが検出することが可能になる。これを具体的に言うと、デバイスは、コンテンツＩＤを取得する方法、及び、デバイスがそのコンテンツを保持していると他のデバイスに誤って伝えないことを確実にする方法を必要とする。
【００３５】
所望のコンテンツのコンテンツＩＤを算出するために、デバイスは、コンテンツについてのコンテンツＵＲＮを取得する必要がある。このことは、確立されたコンテンツＵＲＮエントリのデータベースに問い合わせるなど、種々の方法によって行うことができ、又は、他のコンテンツ項目のメタデータから取得することができる。メタデータは、関連した番組、コンテンツの特別版、又は解像度若しくは品質といった異なるコード化によりコード化されたコンテンツのバージョンのような、類似したコンテンツについてのコンテンツＵＲＮを含むことができる。
【００３６】
コンテンツ項目についてのレプリカ・エントリを検査することによって、実際のコンテンツのインスタンスに対する、求められているコンテンツのためのプレースホルダであるコンテンツＩＤの曖昧性除去を行うことできる。コンテンツを保持するデバイスは、既知のレプリカのリスト内にそのローカル・コピーも列挙するので、これは、単に、デバイスが、レプリカ・インスタンスを保持するものとして列挙されるかどうかを確認するという問題である。レプリカ・インスタンスが存在しない場合、コンテンツＩＤは、所望のコンテンツのためのプレースホルダである。
【００３７】
コンテンツ・プレースホルダの導入により、デバイスによる種々の新しい操作が、コンテンツ項目とインテリジェントに連携することが可能になる。本発明の種々の好ましい実施形態において、これらの操作は、（１）モバイル機器上へのコンテンツの自動提供、（２）コンテンツ項目の自動バックアップ、（３）ネットワーク上での不適切な又は禁止された材料の自動警告、（４）オンライン・コンテンツ・プロバイダからのコンテンツの自動購入、及び（５）ネットワークの全てのデバイス又はユーザによる、求められているコンテンツの集約リストの作成を含むことができる。
【００３８】
モバイル機器上へのコンテンツの自動提供は、コンテンツ・プレースホルダをモバイル機器のコンテンツ・ディレクトリ内に配置することによって達成することができる。所望のコンテンツがネットワーク上で入手可能であることが明らかになると、次に、デバイスをトリガし、コンテンツのレプリカを保持するデバイスの１つから、コンテンツのコピーを取得することができる。
【００３９】
コンテンツ項目の自動バックアップは、クラスタがバックアップ又はコピーを自動的に作成するのを確実にすることを望む場合に、コンテンツについてのエントリを収容するバックアップ装置を生成することによって達成することができる。モバイル機器の提供に用いられる手法と類似した手法を用いて、ネットワーク上でコンテンツが入手可能であるものとして検出されたときに、バックアップ装置をトリガして、コンテンツに対するバックアップ操作を実行する。
【００４０】
ネットワーク上での不適切な又は禁止された材料の自動警告は、監視装置のコンテンツ・ディレクトリ内にコンテンツ項目を配置することによって達成することができる。一致するコンテンツが発見されると、保有しているデバイスによりコンテンツの削除を要求する、又は、ユーザに対する警告又はログを出すといった、操作がトリガされる。
【００４１】
オンライン・コンテンツ・プロバイダからのコンテンツの自動購入は、ネットワークに接続され、デバイスと同期されるデバイス（仮想の又は現実の）を有するオンライン・コンテンツ・プロバイダによって達成することができる。デバイスは、コンテンツ・プレースホルダの存在を検出し、次に、要求されるコンテンツをデバイスに提供することができる。この操作は、所定のアカウントを介した自動課金を含むことができる。
【００４２】
ネットワークの全てのデバイス又はユーザによる、求められているコンテンツの集約リストの作成は、ネットワーク上で利用可能なデバイスと同期させて、デバイスが探索する、求められているコンテンツから成る新しいリストを構築することによって達成することができる。このことは、要求インスタンスにより要求された材料をランク付けするといった、より高レベルの操作を可能にし、次にこれを用いて、ネットワークへの配信のための優先順位を決定することができる。他の高レベルの操作は、価格決定アルゴリズムの適用、又は、所望のコンテンツの最適な配信を決定するためのプロセスを含むことができる。
【００４３】
様々な家庭内ネットワークにわたって行われるとき、本発明の技術を用いる所望のコンテンツのこの集約を用いて、所望のコンテンツのリストを構築することができ、次にこのリストをコンテンツ・プロバイダにより用いて、どのコンテンツを提供すべきかについて、十分な情報に得た上で判断を行うことができる。
【００４４】
図３は、本発明の好ましい実施形態による、所望のコンテンツを取得するためのプロセスのフローチャートを示す。ブロック４０において、ネットワーク・デバイスの所望のコンテンツを識別するコンテンツ・ディレクトリ内に、コンテンツ・プレースホルダを配置する。ブロック４１において、ディレクトリ内のコンテンツを、ネットワーク内の他のデバイス内のコンテンツと同期させる。決定ブロック４２において、同期の際に所望のコンテンツが見出されるかどうかについての判断が行われる。所望のコンテンツが見出された場合、ブロック４４において、所望のコンテンツの存在を同期させる際、メディア・デバイスの１つに通知する。ブロック４６において、もともと所望のコンテンツを要求しているメディア・デバイスが、ネットワーク内のメディア・デバイスの１つから所望のコンテンツを受信する。ブロック４２において所望のコンテンツが見出されなかった場合、プロセスはブロック４１に戻り、同期が完了するまで同期を継続する。
【００４５】
図４は、本発明の好ましい実施形態による、デバイスのクラスタ内のデバイス間でコンテンツ・リストを同期させるためのプロセス５０のフローチャートを示す。ブロック５２において、デバイスから現在のバイナリ・ツリーを受信する。次に、プロセスは、決定の菱形５４において、現在のツリーが、デバイスから受信した以前のツリーと異なるかどうかを判断する。異なる場合には、ブロック５６において、プロセスは、どのリーフが変更されたのかを判断する。現在のツリーが違っていない場合、プロセスは、ブロック５２に戻り、次のデバイスを処理する。次に、ブロック５８において、全ての変更されたリーフを更新する。ブロック６０において、プロセス５０は、ブロック５２に戻り、クラスタ内の全てのデバイスが処理されるまで、次のデバイスを処理する。
【００４６】
上述の開示から分かるように、本発明の好ましい実施形態は、ネットワーク・メディア・デバイスのコンテンツ・クラスタ上の求められているコンテンツ項目にマーク付けし、これを獲得することができるシステムを提供する。
【００４７】
当業者には認識されるように、本発明は、システム、方法、又はコンピュータ・プログラム製品として具体化することができる。従って、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形式をとることができ、これらはすべて、本明細書において、一般的に「回路」、「モジュール」又は「システム」と呼ぶことができる。
【００４８】
さらに、本発明は、媒体内に具体化されたコンピュータ使用可能プログラム・コードを有する、いずれかの有形の表現媒体内に具体化されたコンピュータ・プログラム又はコンピュータ・プログラム製品の形態をとることができる。１つ又は複数のコンピュータ使用可能媒体又はコンピュータ可読媒体のいずれの組み合わせを用いることもできる。コンピュータ使用可能媒体又はコンピュータ可読媒体は、例えば、電子的、磁気的、光学的、電磁気的、赤外線、又は半導体のシステム、装置、デバイス、又は伝搬媒体とすることができるが、これらに限定されるものではない。コンピュータ可読媒体のより具体的な例（非網羅的なリスト）は、以下のもの、即ち、１つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み取り専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤＲＯＭ）、光記憶装置、インターネット又はイントラネットをサポートする通信媒体、又は磁気記憶装置を含む。そのプログラムを例えば、その紙又は他の媒体の光学スキャンによって電子的にキャプチャし、次いで、コンパイルし、解釈し、又は必要に応じてそれ以外の適切な方法で処理し、その後、コンピュータ・メモリ内に格納することができるので、コンピュータ使用可能又はコンピュータ可読媒体は、プログラムが印刷された紙又は別の適切な媒体とすることさえできることに留意されたい。本明細書の文脈において、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置、又はデバイスによって使用するため、又はそれらと接続して使用するために、プログラムを収容、保存、通信、伝搬、又は輸送することができるあらゆる媒体とすることができる。コンピュータ使用可能媒体は、コンピュータ使用可能なプログラム・コードがその中で具体化された、ベースバンド内の、又は搬送波の一部としての、伝搬されたデータ信号を含むものとすることができる。コンピュータ使用可能プログラム・コードは、無線、有線、光ファイバ・ケーブル、及びＲＦなどを含むがそれらには限定されないいずれかの適切な媒体を用いて伝送することができる。
【００４９】
本発明の動作を遂行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト配向プログラミング言語、及び「Ｃ」プログラミング言語又は同様なプログラミング言語のような、従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。プログラム・コードは、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立したソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部がリモート・コンピュータ上で実行される場合もあり、又は完全にリモート・コンピュータ若しくはサーバ上で実行される場合もある。一番最後のシナリオの場合、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部のコンピュータへの接続がなされる場合もある（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）。
【００５０】
本発明は、本発明の好ましい実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令によって実施することができることが理解されるであろう。これらのコンピュータ・プログラム命令を、機械を製造するために、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／行為を実施するための手段を作成するようにさせることができる。
【００５１】
これらのコンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能なデータ処理装置を特定の方式で機能させるよう指示することができるコンピュータ可読媒体内に格納し、その結果、コンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／行為を実施する命令手段を含む製品を製造するようにさせることもできる。
【００５２】
コンピュータ・プログラム命令をコンピュータ又は他のプログラム可能データ処理装置上にロードして、一連の動作ステップをコンピュータ又は他のプログラム可能装置上で実行させ、コンピュータ又は他のプログラム可能装置上で実行される命令がフローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／行為を実施するためのプロセスを提供するように、コンピュータにより実行されるプロセスを生成することもできる。
【００５３】
図面内のフローチャート及びブロック図は、本発明の種々の好ましい実施形態による、システム、方法及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能な命令を含む、モジュール、セグメント又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図面に記された順序とは異なる順序で行われることもあることに留意されたい。例えば、連続して図示された２つのブロックが実際には実質的に同時に実行されることもあり、又はこれらのブロックは、関与する機能に応じて、ときには逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、並びにブロック図及び／又はフローチャート図内のブロックの組合せは、指定された機能又は行為を実行する専用ハードウェア・ベースのシステム、又は専用ハードウェアとコンピュータ命令との組合せによって実装することができることにも留意されるであろう。
【００５４】
図５は、本発明の１つの好ましい実施形態を実装するために有用な情報処理システムを示す高レベル・ブロック図である。コンピュータ・システムは、プロセッサ１０２のような１つ又は複数のプロセッサを含む。プロセッサ１０２は、通信インフラストラクチャ１０４（例えば、通信バス、クロスオーバ・バー又はネットワーク）に接続される。種々のソフトウェアの好ましい実施形態は、この例示的なコンピュータ・システムに関して説明される。この説明を読んだ後、当業者には、他のコンピュータ・システム及び／又はコンピュータ・アーキテクチャを用いて本発明を実装する方法が明らかになるであろう。
【００５５】
コンピュータ・システムは、ディスプレイ・ユニット１０８上で表示するために、通信インフラストラクチャ１０４から（又は、図示されていないフレーム・バッファから）グラフィックス、テキスト及び他のデータを転送する、ディスプレイ・インターフェース１０６を含むことができる。コンピュータ・システムはまた、メイン・メモリ１１０、好ましくはランダム・アクセス・メモリ（ＲＡＭ）を含み、二次メモリ１１２を含むこともできる。二次メモリ１１２は、例えば、ハード・ディスク・ドライブ１１４、及び／又はリムーバブル・ストレージ・ドライブ１１６を含むことができ、リムーバブル・ストレージ・ドライブ１１６は、例えば、フロッピーディスク・ドライブ、磁気テープ・ドライブ又は光ディスク・ドライブを表す。リムーバブル・ストレージ・ドライブ１１６は、当業者に周知の方式でリムーバブル・ストレージ・ユニット１１８から読み出し、及び／又はこれに書き込みをする。リムーバブル・ストレージ・ユニット１１８は、例えば、フロッピ・ディスク、コンパクト・ディスク、磁気テープ又は光ディスク等を表し、リムーバブル・ストレージ・ドライブ１１６がこれを読み出し、かつこれに対して書き込みを行う。認識されるように、リムーバブル・ストレージ・ユニット１１８は、コンピュータ・ソフトウェア及び／又はデータを内部に格納したコンピュータ可読媒体を含む。
【００５６】
本発明の代替的な実施形態において、二次メモリ１１２は、コンピュータ・プログラム又は他の命令をコンピュータ・システムにロードするのを可能にするための、他の同様の手段を含むことができる。このような手段は、例えば、リムーバブル・ストレージ・ユニット１２０と、インターフェース１２２とを含むことができる。このような手段の例としては、プログラム・カートリッジ及びカートリッジ・インターフェース（例えば、ビデオ・ゲーム装置において見られるもののような）、リムーバブル・メモリ・チップ（ＥＰＲＯＭ又はＰＲＯＭのような）及び関連のソケット、並びにリムーバブル・ストレージ・ユニット１２０からコンピュータ・システムにソフトウェア及びデータを転送させることが可能な他のリムーバブル・ストレージ・ユニット１２０及びインターフェース１２２を挙げることができる。
【００５７】
コンピュータ・システムは、通信インターフェース１２４を含むこともできる。通信インターフェース１２４は、ソフトウェア及びデータをコンピュータ・システムと外部デバイスとの間で転送することを可能にする。通信インターフェース１２４の例としては、モデム、ネットワーク・インターフェース（イーサネット・カードのような）、通信ポート、又はＰｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ａｓｓｏｃｉａｔｉｏｎ（ＰＣＭＣＩＡ）スロット及びカード等を挙げることができる。通信インターフェース１２４を介して転送されるソフトウェア及びデータは信号の形態であり、これは、例えば、電子信号、電磁気信号、光信号、又は通信インターフェース１２４によって受信することができる他の信号とすることができる。これらの信号は、通信パス（即ち、チャネル）１２６を介して通信インターフェース１２４に送られる。この通信パス１２６は、信号を搬送するものであり、配線又はケーブル、光ファイバ、電話線、携帯電話リンク、ＲＦリンク及び／又は他の通信チャネルを用いて実装することができる。
【００５８】
本文書において、「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」及び「コンピュータ可読媒体」という用語は、一般に、メイン・メモリ１１０及び二次メモリ１１２、リムーバブル・ストレージ・ドライブ１１６、並びにハード・ディスク・ドライブ１１４に組み込まれたハード・ディスクのような媒体のことを指すために用いられる。
【００５９】
コンピュータ・プログラム（コンピュータ制御論理とも呼ばれる）は、メイン・メモリ１１０及び／又は二次メモリ１１２内に格納される。コンピュータ・プログラムは、通信インターフェース１２４を介して受信することもできる。このようなコンピュータ・プログラムは、実行されたときに、コンピュータ・システムがここで論じた本発明の特徴を実行することを可能にする。特に、コンピュータ・プログラムは、実行されたときに、プロセッサ１０２がコンピュータ・システムの特徴を実行することを可能にする。従って、このようなコンピュータ・プログラムは、コンピュータ・システムのコントローラを表す。
【００６０】
上述の説明から、本発明が、本発明の好ましい実施形態を実施するためのシステム、コンピュータ・プログラム製品及び方法を提供することが分かる。特許請求の範囲において、ある要素を単数形で言及している場合、明示的に述べられていない限りは、「１つかつ唯一」を意味することを意図するものではなく、むしろ「１つ又は複数」を意味することが意図される。当業者に現在公知であり又は後に公知となる上記の例示的な実施形態の要素の機能的な均等物の全てが、本特許請求の範囲に包含されることが意図される。ここにおける請求項の要素は、その要素が「〜のための手段」又は「〜のためのステップ」という語句を用いて明確に詳述されていない限りは、米国特許法第１１２節、第６段落の規定の下で解釈されるべきではない。
【００６１】
本明細書において用いられる用語は、特定の実施形態を説明する目的のためのもの過ぎず、発明を限定することを意図するものではない。本明細書において用いられる場合、文脈から明らかにそうでないことが示されていない限り、「ａ」、「ａｎ」及び「ｔｈｅ」の単数形は、複数形も同様に含むことが意図される。「含む（ｃｏｍｐｒｉｓｅｓ）」及び／又は「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」という用語は、本明細書において用いられる場合、言明された特徴、整数、ステップ、動作、要素及び／又はコンポーネントの存在を特定するものではあるが、１つ又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネント及び／又はそれらの群の存在又は追加を排除するものではないこともさらに理解されるであろう。
【００６２】
以下の特許請求の範囲における全ての「手段又はステップと機能との組合せ（ミーンズ又はステップ・プラス・ファンクション）」要素の対応する構造、材料、行為及び均等物は、その機能を、明確に特許請求されているように他の特許請求された要素と組み合わせて実行するための、いかなる構造、材料又は行為をも含むことが意図される。本発明の説明は、例示及び説明の目的で提示されたものであるが、網羅的であることを意図するものではなく、本発明を開示された形態に限定することを意図するものでもない。本発明の範囲及び精神から逸脱することのない多くの変更及び変形が、当業者には明らかである。実施形態は、本発明の原理及び実際の用途を最も良く説明するため、及び、当業者が本発明を種々の変更を有する種々の実施形態について企図される特定の使用に好適なものとして理解することを可能にするために、選択及び記載された。
【符号の説明】
【００６３】
１０：コンテンツ・クラスタ
１２：コンピュータ
１４：セット・トップ・ボックス
１６：デジタル・ビデオ・レコーダ（ＤＶＲ）
１８：ＤＶＤプレーヤ
２０：ＭＰ３プレーヤ
２２：携帯電話
２４：ネットワーク
２５：テレビ（ＴＶ）
２６：外部メモリ・ユニット
２８：外部ディスプレイ・ユニット
３０：プロセッサ
３２：バイナリ・ツリー
３３：リーフ
３４：ルート・ノード
３６、３７：ノード
１０２：プロセッサ
１０４：通信インフラストラクチャ（バス）
１０６：ディスプレイ・インターフェース
１０８：ディスプレイ・ユニット
１１０：メイン・メモリ
１１２：二次メモリ
１１４：ハード・ディスク・ドライブ
１１６：リムーバブル・ストレージ・ドライブ
１１８、１２０：リムーバブル・ストレージ・ユニット
１２２：インターフェース
１２４：通信インターフェース
１２６：通信パス
【図１】
0005647679.tif 000002
【図２】
0005647679.tif 000003
【図３】
0005647679.tif 000004
【図４】
0005647679.tif 000005
【図５】
0005647679.tif 000006