(57)【要約】装置上のメディア・コンテンツ・データベースを管理する方法および装置が記載される。本方法および装置は、メディア・コンテンツに関連する、イベント識別子を含むイベント・データを受信し（５２５）、前記イベント識別子がメモリにすでに記憶されているイベント・データについてのイベント識別子に一致するかどうかを判定し（５４０）、受信されたイベント識別子が記憶されているイベント・データについてのイベント識別子に一致しない場合に、そのイベント・データに受信されたイベント・データを追加し（７５０）、受信されたイベント識別子が記憶されているイベント・データについてのイベント識別子に一致する場合に、記憶されているイベント・データを受信されたイベント・データで置き換える（７６５）ことを含む。
2014507849.tif 000002
【特許請求の範囲】
【請求項１】
メディア・コンテンツに関連する、イベント識別子を含むイベント・データを受信する段階と；
前記イベント識別子がメモリにすでに記憶されているイベント・データについてのイベント識別子に一致するかどうかを判定する段階と；
受信されたイベント識別子が記憶されているイベント・データについてのイベント識別子に一致しない場合に、そのイベント・データに受信されたイベント・データを追加する段階と；
受信されたイベント識別子が記憶されているイベント・データについてのイベント識別子に一致する場合に、記憶されているイベント・データを受信されたイベント・データで置き換える段階とを含む、
方法。
【請求項２】
メモリ・スワップが行われるべきかどうかを、前記メモリに記憶されているイベント・データに基づいて判定する段階と；
メモリ・スワップが行われるべきであると判定される場合に、前記メモリ中のイベント・データをもって、第一のイベント・データベースを更新する段階とをさらに含む、
請求項１記載の方法。
【請求項３】
受信されたイベント識別子が記憶されているイベント・データについてのイベント識別子に一致しない場合に、イベント・カウント値を更新する段階をさらに含む、請求項２記載の方法。
【請求項４】
前記判定が、前記イベント・カウント値および以前のメモリ・スワップからの時間期間に基づく、請求項３記載の方法。
【請求項５】
前記判定する段階（５４０）が、前記イベント・カウント値が所定のイベント・カウント閾値を超えるおよび以前のメモリ・スワップからの時間期間値が所定の時間期間値を超えるのうちの少なくとも一方であるかどうかを判定する段階を含む、請求項３記載の方法。
【請求項６】
前記所定のイベント・カウント閾値および前記所定の時間期間値が、ある時間期間内に受信されたイベント数、時刻およびある時間期間内のイベント問い合わせ数のうちの少なくとも一つに基づく、請求項５記載の方法。
【請求項７】
前記第一のイベント・データベースが、前記第一のイベント・データベースを更新する前記段階より前には書き込みデータベースとして特定され、更新する前記段階後には読み出しデータベースと特定され、更新する前記段階前に読み出しデータベースとして特定されていた第二のイベント・データベースが、更新する前記段階後には書き込みデータベースとして特定される、請求項２記載の方法。
【請求項８】
一つまたは複数のイベントに関連する情報を要求するイベント問い合わせを受信する段階と；
前記第一のイベント・データベースが更新されているかどうかを判定する段階と；
前記第一のイベント・データベースが更新されていれば、前記イベント問い合わせを前記第一のイベント・データベースに差し向ける段階と；
前記第一のイベント・データベースの内容を第二のイベント・データベースにコピーする段階であって、前記第二のイベント・データベースは、前記第一のイベント・データベースが更新されていなかった場合に前記イベント問い合わせを受け取る、段階とをさらに含む、
請求項２記載の方法。
【請求項９】
前記第一のイベント・データベースを前記第二のイベント・データベースにコピーする前に、前記第二のイベント・データベースに前記イベント問い合わせを差し向ける段階と；
前記第二のイベント・データベースに基づく前記イベント問い合わせへの第一の結果および前記第一のデータベースに基づく前記イベント問い合わせへの第二の結果を提供する段階とをさらに含む、
請求項８記載の方法。
【請求項１０】
メディア・コンテンツに関連する前記イベント・データが、少なくとも二つのコンテンツ源のうちの一つから提供される、請求項１記載の方法。
【請求項１１】
前記イベント・データが、放送コンテンツ送達ネットワークおよびブロードバンド・コンテンツ送達ネットワークからイベント・データを受信する装置によって受信される、請求項１記載の方法。
【請求項１２】
前記ブロードバンド・コンテンツ送達ネットワークから受信されるイベント・データが電子番組ガイドの一部として含まれる、請求項１１記載の方法。
【請求項１３】
メディア・コンテンツに関連する、イベント識別子を含むイベント・データを受信する手段と；
前記イベント識別子がメモリにすでに記憶されているイベント・データについてのイベント識別子に一致するかどうかを判定する手段と；
受信されたイベント識別子が記憶されているイベント・データについてのイベント識別子に一致しない場合に、そのイベント・データに受信されたイベント・データを追加する手段と；
受信されたイベント識別子が記憶されているイベント・データについてのイベント識別子に一致する場合に、記憶されているイベント・データを受信されたイベント・データで置き換える手段とを有する、
装置。
【請求項１４】
メモリ・スワップが行われるべきかどうかを、前記メモリに記憶されているイベント・データに基づいて判定する手段と；
メモリ・スワップが行われるべきであると判定される場合に、前記メモリ中のイベント・データをもって、第一のイベント・データベースを更新する手段とをさらに有する、
請求項１３記載の装置。
【請求項１５】
受信されたイベント識別子が記憶されているイベント・データについてのイベント識別子に一致しない場合に、イベント・カウント値を更新する手段をさらに有する、請求項１４記載の装置。
【請求項１６】
前記判定が、前記イベント・カウント値および以前のメモリ・スワップからの時間期間に基づく、請求項１５記載の装置。
【請求項１７】
前記判定する手段（８００）が、前記イベント・カウント値が所定のイベント・カウント閾値を超えるおよび以前のメモリ・スワップからの時間期間値が所定の時間期間値を超えるのうちの少なくとも一方であるかどうかを判定する手段を有する、請求項１５記載の装置。
【請求項１８】
前記所定のイベント・カウント閾値および前記所定の時間期間値が、ある時間期間内に受信されたイベント数、時刻およびある時間期間内のイベント問い合わせ数のうちの少なくとも一つに基づく、請求項１７記載の装置。
【請求項１９】
前記第一のイベント・データベースが、前記第一のイベント・データベースを更新する前記段階より前には書き込みデータベースとして特定され、更新する前記段階後には読み出しデータベースと特定され、更新する前記段階前に読み出しデータベースとして特定されていた第二のイベント・データベースが、更新する前記段階後には書き込みデータベースとして特定される、請求項１４記載の装置。
【請求項２０】
一つまたは複数のイベントに関連する情報を要求するイベント問い合わせを受信する手段と；
前記第一のイベント・データベースが更新されているかどうかを判定する手段と；
前記第一のイベント・データベースが更新されていれば、前記イベント問い合わせを前記第一のイベント・データベースに差し向ける手段と；
前記第一のイベント・データベースの内容を第二のイベント・データベースにコピーする手段であって、前記第二のイベント・データベースは、前記第一のイベント・データベースが更新されていなかった場合に前記イベント問い合わせを受け取る、手段とをさらに有する、
請求項１４記載の装置。
【請求項２１】
前記第一のイベント・データベースを前記第二のイベント・データベースにコピーする前に、前記第二のイベント・データベースに前記イベント問い合わせを差し向ける手段と；
前記第二のイベント・データベースに基づく前記イベント問い合わせへの第一の結果および前記第一のデータベースに基づく前記イベント問い合わせへの第二の結果を提供する手段とをさらに有する、
請求項２０記載の装置。
【請求項２２】
当該装置が、放送コンテンツ送達ネットワークおよびブロードバンド・コンテンツ送達ネットワークからイベント・データを受信する受信装置である、請求項１３記載の装置。
【請求項２３】
前記ブロードバンド・コンテンツ送達ネットワークから受信されるイベント・データが電子番組ガイドの一部として含まれる、請求項２２記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照
本願は2011年1月6日に出願された「受信装置においてデータベースを検索する方法および装置」という名称の仮出願第61/430,271号および2011年1月6日に出願された「受信装置においてデータベースを更新する方法および装置」という名称の仮出願第61/430,287号の優先権を主張する。
【０００２】
発明の技術分野
本開示は概括的には、メディア・コンテンツを受信し、管理するシステムに関する。より詳細には、受信装置においてメディア・コンテンツのデータベースを受信、管理、更新および検索する方法および装置に関する。
【背景技術】
【０００３】
放送コンテンツ・サービス・プロバイダーとインターネット・サービス・プロバイダーは、それぞれのコンテンツ送達システム内での相乗効果を見出し続けている。多くの新しいネットワーク接続された装置は今や、メディア・コンテンツまたはサービスのプロバイダーから固有の機能に基づいてメディア・コンテンツをナビゲートし、検索する機能を含んでいる。新しいネットワーク接続された装置、特に家庭において使用されるかかる装置は、放送中心の装置およびインターネット・ネットワーク中心の装置に関連する動作および機能を併合しつつある。これらの新しいネットワーク接続された装置は、テレビジョン、セットトップボックス、家庭ゲートウェイ、家庭コンピュータ・メディア・ステーション、タブレットなどを含む。これらの新しいネットワーク接続された装置はさらに、信号受信、メディア記録、家庭ネットワーキングおよびインターネット接続機能を提供する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、放送中心装置とインターネット中心装置の間の動作上の相違は問題として残る。放送およびインターネットに基づくメディア機能が単一の装置に併合された際、新たなコマンド、制御およびコンテンツ管理問題が持ち上がった。たとえば、装置において動的に、メディア・コンテンツにアクセスし、これを更新し、そのナビゲーションおよび使用を制御できることは、問題のままである。特に、ネットワークがメディア・コンテンツの複数の源ならびに複数のサービスおよびプロバイダーを含む場合にそうである。ネットワークに接続された受信装置においてメディア・コンテンツのナビゲーション、管理、検索、アクセスおよび制御を可能にする機構が必要とされている。特に、メディア・コンテンツ・データベース構造における更新および検索の管理を改善する機構が必要とされている。
【課題を解決するための手段】
【０００５】
本開示のある側面によれば、装置上のメディア・コンテンツ・データベースを管理、更新および検索する方法が記載される。本方法は、メディア・コンテンツに関連する、イベント識別子を含むイベント・データを受信する段階と、前記イベント識別子がメモリにすでに記憶されているイベント・データについてのイベント識別子に一致するかどうかを判定する段階と、受信されたイベント識別子が記憶されているイベント・データについてのイベント識別子に一致しない場合に、そのイベント・データに受信されたイベント・データを加える段階と、受信されたイベント識別子が記憶されているイベント・データについてのイベント識別子に一致する場合に、記憶されているイベント・データを受信されたイベント・データで置き換える段階とを含む。
【０００６】
本開示のもう一つの側面によれば、装置においてメディア・コンテンツ・データベースを管理、更新および検索する装置が記載される。本装置は、メディア・コンテンツに関連する、イベント識別子を含むイベント・データを受信する手段と、前記イベント識別子がメモリにすでに記憶されているイベント・データについてのイベント識別子に一致するかどうかを判定する手段と、受信されたイベント識別子が記憶されているイベント・データについてのイベント識別子に一致しない場合に、そのイベント・データに受信されたイベント・データを加える手段と、受信されたイベント識別子が記憶されているイベント・データについてのイベント識別子に一致する場合に、記憶されているイベント・データを受信されたイベント・データで置き換える手段とを含む。
【図面の簡単な説明】
【０００７】
本開示のこれらおよびその他の側面、特徴および利点は、付属の図面との関連で読むべき好ましい実施形態の以下の詳細な説明から記述され、あるいは明白となるであろう。
【０００８】
図面において、同様の参照符号は諸図を通じて同様の要素を示す。
【図１】本開示に基づく、ビデオ・コンテンツを送達する例示的なシステムのブロック図である。
【図２】本開示に基づく、例示的なクライアント装置のブロック図である。
【図３】本開示に基づく、タッチパネル装置の概観図である。
【図４】本開示に基づく、メディア・コンテンツ・データベースを管理するための処理コードの一部の構造の図である。
【図５】本開示に基づくメディア・コンテンツ・データベースを管理する例示的なプロセスのフローチャートである。
【図６】本開示に基づくメディア・コンテンツ・データベースを管理するもう一つの例示的なプロセスのフローチャートである。
【図７】本開示に基づくメディア・コンテンツ・データベースを管理するさらなる例示的なプロセスのフローチャートである。
【図８】本開示に基づくキャッシュ・コントローラのある実施形態のブロック図である。
【図９】本開示に基づく制御回路のある実施形態のブロック図である。
【図１０】本開示に基づくコンテンツの例示的なレコード構造を示す図である。  図面は本開示の概念を例解するためのものであり、必ずしも本開示を例解する唯一可能な構成ではないことは理解しておくべきである。
【発明を実施するための形態】
【０００９】
図に示される要素はさまざまな形のハードウェア、ソフトウェアまたはそれらの組み合わせで実装されうることは理解しておくべきである。好ましくは、これらの要素は、プロセッサ、メモリおよび入出力インターフェースを含んでいてもよい、一つまたは複数の適切にプログラムされた汎用装置上の、ハードウェアおよびソフトウェアの組み合わせにおいて実装される。本稿において、「結合された」という句は、直接に接続されたまたは一つまたは複数の中間コンポーネントを通じて間接的に接続されていることを意味するものと定義される。そのような中間コンポーネントはハードウェアおよびソフトウェア・ベースのコンポーネントの両方を含んでいてもよい。
【００１０】
本記述は、本開示の原理を例解する。当業者は、たとえ本稿で明示的に記載または図示されていなくても、本開示の原理を具現し、その精神および範囲内に含まれるさまざまな構成を考案することができるであろうことは理解されるであろう。
【００１１】
本稿に記載されるあらゆる例および条件付きの言辞は、本開示の原理および発明者によって当技術分野の発展のために寄与される概念の理解において読者を助ける教育目的を意図されており、そのような特定的に挙げられる例および条件に限定することはないものとして解釈されるものとする。
【００１２】
さらに、本開示の原理、側面および実施形態ならびにその個別的な例を挙げる本稿におけるあらゆる陳述は、その構造的等価物および機能的等価物両方を包含することが意図される。さらに、そのような等価物が現在知られている等価物および将来開発される等価物の両方、すなわち構造に関わりなく同じ機能を実行する開発される任意の要素を含むことが意図される。
【００１３】
よって、たとえば、当業者は、本稿で呈示されるブロック図が本開示の原理を具現する例示的な回路の概念的な図を表していることを理解するであろう。同様に、あらゆるフローチャート、流れ図、状態遷移図、擬似コードなどがさまざまなプロセスを表しており、実質的にコンピュータ可読媒体中に表現でき、よってコンピュータやプロセッサが明示的に示されているか否かによらず、コンピュータまたはプロセッサによって実行できることも理解されるであろう。
【００１４】
図面に示されているさまざまな要素の機能は、専用ハードウェアおよび適切なソフトウェアとの関連でソフトウェアを実行する機能をもつハードウェアの使用を通じて提供されてもよい。プロセッサによって提供されるとき、そうした機能は単一の専用プロセッサによって提供されても、単一の共有プロセッサによって提供されても、あるいは一部が共有されていてもよい複数の個別プロセッサによって提供されてもよい。さらに、用語「プロセッサ」または「コントローラ」の明示的な使用は、ソフトウェアを実行する機能をもつハードウェアのみを指すものと解釈すべきではなく、暗黙的に、限定なしに、デジタル信号プロセッサ（「DSP」）ハードウェア、ソフトウェアを記憶するための読み出し専用メモリ（「ROM」）、ランダム・アクセス・メモリ（「RAM」）および不揮発性記憶装置を含んでいてもよい。
【００１５】
従来のものおよび／またはカスタムのその他のハードウェアが含まれていてもよい。同様に、図面に示されるいかなるスイッチも単に概念的なものである。その機能はプログラム論理の動作を通じて、専用論理を通じて、プログラム制御と専用論理の相互作用を通じて、あるいはさらには手動で実行されてもよい。特定の技法は、コンテキストからより特定的に理解されるままに、実装者によって選択可能である。
【００１６】
本願の請求項では、指定された機能を実行する手段と表現される任意の要素は、その機能を実行する任意の仕方を包含することが意図されており、たとえば、ａ）その機能を実行する回路要素の組み合わせまたはｂ）任意の形の、よってファームウェア、マイクロコードなどを含むソフトウェアを当該機能を実行するために該ソフトウェアを実行するための適切な回路と組み合わせたものを含む。かかる請求項によって定義される本開示は、記載されるさまざまな手段によって与えられる機能が、請求項が要求する仕方で組み合わされ、一緒にされるという事実にある。よって、これらの機能を提供できる任意の手段が本願で示されるものと等価であると見なされる。
【００１７】
本願の諸実施形態は、メディア・コンテンツのデータベースを効率的に管理することに関連する。諸実施形態は、複数のメディア・イベントを記憶しているデータベースを管理および更新することに向けられる。メディア・イベントは、番組ガイドから受領されるエントリーおよび情報、ウェブ・サービスから入手可能なコンテンツの一覧または他の同様のイベント・コンテンツ・エントリーおよび情報を含んでいてもよい。データベースが更新されるのと同時に、データベースへの問い合わせ要求が実行される。これらの問い合わせ要求は、正確かつ適時な結果を生成するべきである。本願の諸実施形態は、ゲートウェイ装置またはセットトップボックスのような、限られた処理資源をもつ組み込みシステムに最も好適である。諸実施形態は、イベントを受領し、該イベントを、新規イベントとして、またはすでにメモリ・キャッシュにあるイベントを上書きする更新イベントとして、メモリ・キャッシュに記憶する方法および装置を含む。その後キャッシュ・メモリは、キャッシュ・スワップまたはキャッシュ・フラッシュの指示またはそのトリガーが判別されるときに、データベースに書き込まれる。キャッシュ・スワップまたはキャッシュ・フラッシュは、新規イベント計数または所定の時間期間を超過したなど、いくつかの可能な動作条件に基づいてトリガーされてもよい。ひとたびキャッシュ・メモリが書き込まれ、データベースが更新されると、この新たに更新されたデータベースは、「問い合わせ」または読み出し専用データベースとして同定またはポイントされ、現在の「問い合わせ」データベースはもはやポイントされなくなり、消去され、新たな問い合わせデータベースのバックグラウンドでのコピーが、問い合わせプロセスに影響しない仕方で、新たに消去されたデータベースに対してなされる。
【００１８】
ここで図１に目を転じると、家庭またはエンド・ユーザーにコンテンツを送達するためのシステム１００のある実施形態のブロック図が示されている。コンテンツは映画スタジオまたは制作ハウスといったコンテンツ源１０２に起源をもつ。コンテンツは二つの形のうちの少なくとも一つで供給されうる。一つの形は、コンテンツの放送される形であってもよい。放送コンテンツは、放送アフィリエート・マネージャ１０４に提供される。放送アフィリエート・マネージャは典型的には全国的な放送サービスであり、アメリカン・ブロードキャスティング・カンパニー（ABC:  American  Broadcasting  Company）、ナショナル・ブロードキャスティング・カンパニー（NBC:  National  Broadcasting  Company）、コロンビア・ブロードキャスティング・システム（CBS:  Columbia  Broadcasting  System）などといったものである。放送アフィリエート・マネージャはコンテンツを収集し、記憶してもよく、送達ネットワーク１（１０６）として示される送達ネットワークを通じたコンテンツの送達をスケジューリングしてもよい。送達ネットワーク１（１０６）は、全国的なセンターから一つまたは複数の地方もしくは地域のセンターへの衛星リンク送信を含むことができる。送達ネットワーク１（１０６）は、コンテンツ送達のための標準的な伝送プロトコルおよび規格のいかなるものを使ってもよい（たとえば、先進テレビジョン・システムズ委員会（ATSC:  Advanced  Television  Systems  Committee）A/53、デジタル・ビデオ・ブロードキャスト（DVB:  digital  video  broadcast）ケーブル（DVB-C）、DVB衛星（DVB-S）またはDVB地上波（DVB-T））。送達ネットワーク１（１０６）はまた、空中無線放送、衛星放送またはケーブル放送を通じてなど、ローカルな送達システムを使うローカルなコンテンツ送達をも含んでいてもよい。ローカルに送達されるコンテンツは、ユーザーの家庭にあるユーザーのクライアント装置１０８に提供される。放送アフィリエート・マネージャ１０４はデータ・サーバー１１６にも情報を提供する。この情報は、これに限られないが、プログラミング、送達または放送スケジュールに関するデータまたは放送コンテンツに関係する他の型の情報を含んでいてもよい。
【００１９】
放送アフィリエート・マネージャに提供されない追加情報（たとえば特別な通知またはスケジューリング情報）または他のコンテンツが、コンテンツ源１０２からコンテンツ・マネージャ１１０に送達されてもよい。コンテンツ・マネージャ１１０は、コンテンツ・プロバイダー、放送サービスまたは送達ネットワーク・サービスと連携したサービス・プロバイダーであってもよい。コンテンツ・マネージャ１１０は、インターネット・ウェブサイトまたはウェブ・サービスを通じて動作してもよい。コンテンツ・マネージャ１１０はまた、インターネット・コンテンツを送達システム中に組み込んでもよい。コンテンツ・マネージャ１１０は、コンテンツをユーザーのクライアント装置１０８に、別個の送達ネットワーク、送達ネットワーク２（１１２）を通じて送達してもよい。送達ネットワーク２（１１２）は高速ブロードバンド・インターネット型の通信システムを含んでいてもよい。放送アフィリエート・マネージャ１０４からのコンテンツが送達ネットワーク２（１１２）の全部または諸部分を使って送達されてもよく、コンテンツ・マネージャ１１０からのコンテンツが送達ネットワーク１（１０６）の全部または諸部分を使って送達されてもよいことを注意しておくことが重要である。さらに、ユーザーは、必ずしもコンテンツをコンテンツ・マネージャ１１０によって管理してもらうことなく、コンテンツを、送達ネットワーク２（１１２）を介してインターネットから直接取得してもよい。
【００２０】
データ・サーバー１１６は放送アフィリエート・マネージャ１０４から情報を受領し、該情報を、ユーザー装置（たとえばクライアント装置１０８）への送達に好適なコンテンツ・ストリームに変換する。データ・サーバー１１６は、ウェブサイトまたは何らかのネットワーキング・サイトについてのウェブ・サービスを含んでいてもよい。データ・サーバー１１６は、コンテンツ・ストリームおよび情報をクライアント装置１０８に提供するために送達ネットワーク２（１１２）に接続してもよい。あるいはまた、データ・サーバー１１６は、セルラー・ネットワークまたは他の無線送達ネットワークへのネットワーク・インターフェースを含んでいて、コンテンツおよび情報を、該無線ネットワークと互換なフォーマットで、クライアント装置１０８に直接提供してもよい。さらに、データ・サーバー１１６は、たとえば、コンテンツ・マネージャ１１０および送達ネットワーク２（１１２）を通じて、インターネットから情報を受信してもよい。追加的なインターフェースは、番組、コンテンツおよびスケジューリングに関係した情報が、放送アフィリエート・マネージャ１０４以外の源（たとえば、他のユーザー、ウェブサイトまたはニュース・エージェンシー）からデータ・サーバー１１６に提供されることを許可する。
【００２１】
クライアント装置１０８は送達ネットワーク１（１０６）および送達ネットワーク２（１１２）の一方または両方から種々の型のコンテンツを受信してもよい。クライアント装置１０８はコンテンツを処理し、ユーザー選好およびコマンドに基づいてコンテンツの分離を提供する。クライアント装置１０８は、コンテンツを記録および／または記憶するとともにコンテンツをオーディオおよび／またはビデオ信号として再生するための、ハードドライブまたは光学式ディスク・ドライブのような記憶装置を含んでいてもよい。クライアント装置１０８は、セットトップボックス、家庭メディア・サーバー、コンピュータ・メディア・ステーション、タブレット装置、家庭ネットワーク・ゲートウェイ、マルチメディア・プレーヤー、家庭ネットワーキング機器などであってもよい。クライアント装置１０８の動作のさらなる詳細および記憶されたコンテンツの受領、管理、更新および検索に関連する機能は図２との関係で後述する。処理されたコンテンツ（たとえばオーディオおよびビデオ信号）は表示装置１１４に与えられる。表示装置１１４は通常の二次元（2D）型のディスプレイであってもよいし、あるいはまた高度な三次元（3D）ディスプレイであってもよい。
【００２２】
任意のメディア番組およびコンテンツならびに該メディア番組およびコンテンツに関係した任意の情報（たとえば番組ガイドまたは番組メタデータ）はコンテンツ源（たとえばコンテンツ源１０２）に発してもよいことを注意しておくことが重要である。コンテンツおよび情報は、コンテンツ・マネージャに送信されてもよく、最終的に、送達ネットワーク１（１０６）または送達ネットワーク２（１１２）のいずれかを通じてクライアントまたはユーザー装置（たとえばクライアント装置１０８）に送達されてもよい。あるいはまた、コンテンツ源からのコンテンツおよび情報は、データ・サーバー１１６のようなデータ・サーバーに送達されて、フォーマットし直されて、次いでクライアントまたはユーザー装置に送達されてもよい。さらにまた、コンテンツおよび情報は、データ・サーバー（たとえばデータ・サーバー１１６）またはインターネット上のサードパーティー源に発して、クライアントまたはユーザー装置への送達のためにデータ・サーバー１１６に提供されてもよい。
【００２３】
ここで図２に目を転じると、受信装置２００のコアある実施形態のブロック図が示されている。後述する点のほかは、装置２００は図１に記載したクライアント装置１０８と同様の仕方で動作する。装置２００は、表示装置１１４自身を含む他のシステムに組み込まれていてもよい。いずれの場合も、システムの完全な動作に必要ないくつかのコンポーネントは簡潔のため示していない。示されていないコンポーネントは当業者にはよく知られている。
【００２４】
信号は、入力信号受信器２０２において装置２００とのインターフェースをもつ。入力信号受信器２０２は入力ストリーム・プロセッサ２０４に接続する。入力ストリーム・プロセッサ２０４はオーディオ・プロセッサ２０６およびビデオ・プロセッサ２１０に接続する。オーディオ・プロセッサ２０６はオーディオ・インターフェース２０８に接続し、該オーディオ・インターフェース２０８は装置２００からのオーディオ出力信号を与える。ビデオ・プロセッサ２１０はディスプレイ・インターフェース２１８に接続し、該ディスプレイ・インターフェース２１８が装置２００からのビデオ出力信号を与える。オーディオ・プロセッサ２０６およびビデオ・プロセッサ２１０は記憶装置２１２にも接続する。コントローラ２１４が記憶装置２１２ならびに入力ストリーム・プロセッサ２０４、オーディオ・プロセッサ２０６およびビデオ・プロセッサ２１０に接続する。制御メモリ２２０がコントローラ２１４に接続している。コントローラ２１４はユーザー・インターフェース２１６およびハンドヘルド・インターフェース２２２にも接続している。
【００２５】
コンテンツは、入力信号受信器２０２において受領される。入力信号受信器２０２は、空中、ケーブル、衛星、イーサネット（登録商標）、ファイバーおよび電話線ネットワークを含むいくつかの可能なネットワークの一つを通じて提供される信号を受信し、復調し、復号するために使われるいくつかの既知の受信器回路の一つまたは複数であってもよい。入力信号受信器２０２が、所望される放送入力信号と同じ送達ネットワーク（すなわち送達ネットワーク１（１０６））を通じて、または図１に示されるような異なるネットワーク（すなわち送達ネットワーク２（１１２））および／または代替的なセルラーもしくは無線ネットワークを通じて送達される、メディア・コンテンツ信号ならびにデータ信号のための受信、復調および復号回路を含んでいてもよいことに注意することが重要である。送達ネットワーク２（１１２）または無線ネットワークを通じての受信されたメディア・コンテンツおよびデータは、メディア・コンテンツおよび送達ネットワーク１（１０６）とは異なっていてもよい。データは、スケジューリング変更および更新に関連する情報ならびにいずれかの送達ネットワークを通じて送達されるメディア・コンテンツに関係した情報を含んでいてもよい。ある実施形態では、ケーブル放送信号が信号受信器２０２内のケーブル・チューナー回路において受信され、復調され、復号される。所望される放送入力信号は、入力信号受信器２０２において、制御インターフェース（図示せず）を通じて与えられるユーザー入力に基づいて選択され、取得されてもよい。入力信号受信器２０２は、さらに双方向性のネットワーク接続性を提供する、インターネット・プロトコル（IP）インターフェース回路をも含む。
【００２６】
入力信号受信器２０２内の回路の一つまたは複数からの復号された出力信号は入力ストリーム・プロセッサ２０４に与えられる。入力ストリーム・プロセッサ２０４は最終的な信号選択および処理を実行し、そのコンテンツ・ストリームについてのオーディオ・コンテンツからのビデオ・コンテンツの分離を含む。オーディオ・コンテンツは、受信されたフォーマット（たとえば圧縮されたデジタル信号）から別のフォーマット（たとえばアナログ波形信号）への変換のためにオーディオ・プロセッサ２０６に提供される。アナログ波形信号はオーディオ・インターフェース２０８に、さらに表示装置１１４またはオーディオ・アンプ（図示せず）に与えられる。あるいはまた、オーディオ・インターフェース２０８はデジタル信号を、高精細度マルチメディア・インターフェース（HDMI:  High-Definition  Multimedia  Interface）ケーブルまたはソニー／フィリップス・デジタル相互接続フォーマット（SPDIF:  Sony/Philips  Digital  Interconnect  Format）のような代わりのオーディオ・インターフェースを使って、オーディオ出力装置または表示装置に与えてもよい。オーディオ・プロセッサ２０６は、オーディオ信号の記憶のための任意の必要な変換をも実行する。
【００２７】
入力ストリーム・プロセッサ２０４からのビデオ出力はビデオ・プロセッサ２１０に与えられる。ビデオ信号はいくつかのフォーマットの一つであってもよい。ビデオ・プロセッサ２１０は、入力信号フォーマットに基づいて、必要に応じてビデオ・コンテンツの変換を提供する。ビデオ・プロセッサ２１０はまた、ビデオ信号の記憶のための任意の必要な変換をも実行する。
【００２８】
記憶装置２１２は入力において受領されたオーディオおよびビデオ・コンテンツを記憶する。記憶装置２１２は、コントローラ２１４の制御のもとで、またユーザー・インターフェース２１６から受領されるコマンド、たとえば早送り（FF:  fast-forward）および巻き戻し（Rew:  rewind）のようなナビゲーション命令にも基づいて、コンテンツののちの取得および再生を許容する。記憶装置２１２はハードディスク・ドライブ、静的RAM（SRAM）もしくは動的RAM（DRAM）のような一つまたは複数の大容量の集積電子メモリ、コンパクト・ディスク・ドライブまたはデジタル・ビデオ・ディスク・ドライブのような交換可能な光ディスク記憶システムまたは装置２００の外部にあって装置２００がアクセスできる記憶であってもよい。
【００２９】
入力にまたは記憶装置２１２に由来する、ビデオ・プロセッサ２１０からの変換されたビデオ信号は、ディスプレイ・インターフェース２１８に与えられる。ディスプレイ・インターフェース２１８はさらに、上記の型の表示装置に表示信号を提供する。ディスプレイ・インターフェース２１８は、赤緑青（RGB）のようなアナログ信号インターフェースであってもよく、あるいはデジタル・インターフェース（たとえばHDMI）であってもよい。
【００３０】
コントローラ２１４はバスを介して、入力ストリーム・プロセッサ２０２、オーディオ・プロセッサ２０６、ビデオ・プロセッサ２１０、記憶装置２１２、ユーザー・インターフェース２１６およびハンドヘルド・インターフェース２２２を含む装置２００のコンポーネントのいくつかに相互接続される。コントローラ２１４は、入力ストリーム信号を記憶装置上での記憶のためまたは表示のための信号に変換するための変換プロセスを管理する。コントローラ２１４は、記憶されたコンテンツの取り出しおよび再生をも管理する。コントローラ２１４はさらに、コントローラ２１４のための情報および命令コードを記憶する制御メモリ２２０（たとえば、RAM、SRAM、DRAM、読み出し専用メモリ（ROM）、プログラム可能型ROM、電子的にプログラム可能なROM（EPROM）、電子的に消去可能なプログラム可能型ROM（EEPROM）、フラッシュメモリなどを含む揮発性もしくは不揮発性メモリ）に結合される。さらに、メモリ２２０の実装は、単一メモリ・デバイスまたは代替的に二つ以上のメモリ回路が一緒に接続されて共有または共通メモリを形成したものといった、いくつかの可能な実施形態を含んでいてもよい。さらに、メモリは、バス通信回路の一部のような他の回路と一緒に、より大きな回路の中に含められてもよい。
【００３１】
ユーザー・インターフェース要素および表示装置とインターフェースをもつことに加えて、クライアント装置２００は、タブレットのようなハンドヘルド装置とも、ハンドヘルド・インターフェース２２２を通じてインターフェースをもっていてもよい。このハンドヘルド装置は、追加的なコントロールとともに表示画面を含んでいてもよく、あるいはタッチスクリーンを含んでいてもよい。ビデオ・プロセッサ２１０からのビデオ信号および画面上表示（on  screen  display）メッセージおよびメッセージ・プロンプト・リターン（message  prompt  returns）のような他のデータは、コントローラ２１４とハンドヘルド・インターフェース２２２との間でルーティングされてもよい。ハンドヘルド・インターフェース２２２は信号およびデータを、ハンドヘルド装置またはタブレットと、Wi-Fi、ブルートゥースまたは米国電気電子技術者協会（IEEE:  Institute  of  Electrical  and  Electronics  Engineers）規格802.11のような電波周波数通信リンクを使って送信および受信してもよい。ハンドヘルド・インターフェース２２２はあるいはまた、赤外線インターフェースを使ってハンドヘルド装置またはタブレットと信号およびデータを送受信してもよい。
【００３２】
動作では、装置２００は、のちにより詳細に述べるように、セットトップボックスまたは家庭ゲートウェイのようなクライアント装置内のメディア・コンテンツ・データベースを更新、管理および検索するプロセスを実装する。アルゴリズムまたは機能の物理的な実装は、ビデオ・プロセッサ２１０に関係した離散的な回路のようなハードウェアにおいて、あるいは制御メモリ２２０にあってコントローラ２１４によって読み出されて実行されるソフトウェアのようなソフトウェアにおいてなされてもよい。本方法は、メディア・コンテンツに関連する、一意的なイベント識別子を含むイベント・データを受信する段階と、キャッシュ・メモリ中のアレイに前記イベント・データを記憶するために前記イベント識別子を調べる段階と、受領されたイベント・データ中のイベント識別子が現在、アレイ内になければ、イベント・カウント値を更新する段階と、イベント・カウント値が所定の閾値を超えることおよび時間期間値が所定の閾値を超えることの少なくとも一方のときなど、キャッシュ・メモリのスワップがトリガーされる場合に、アレイ内のイベント・データをもって第一のイベント・データベースを更新する段階とを含む。
【００３３】
本開示において記述されるプロセスは、スクロール、ブラウズ、ページング、単語による検索などといったデータベース検索のための機能を表現するために使用できる入力装置を用いてもよい。これを許容するために、図３に示されるタッチパネル装置３００が、図２に示されるような装置２００内のユーザー・インターフェース２１６および／またはハンドヘルド・インターフェース２２２を介してインターフェースをもたされてもよい。タッチパネル装置３００は、手の動きまたはジェスチャーおよびアクションがパネルを通じてクライアント装置（たとえば装置２００またはクライアント装置１０８）または他の制御装置についてのコマンドに変換されたものに基づいて、受信装置またはセットトップボックスの動作を許容する。さらに、タッチパネル装置３００は、主たる表示装置（たとえば表示装置１１４）の閲覧を中断したり妨害したりすることなく画面上表示ウィンドウおよびメッセージといった追加的なコンテンツがユーザーに対して表示されることを許容する第二の画面として機能してもよい。ある実施形態では、タッチパネル装置３００は、電子番組ガイドまたはコンテンツ表示ガイドの表示をナビゲートするためのナビゲーション・ツールのはたらきをしてもよい。他の実施形態では、タッチパネル装置３００はさらに、コンテンツの表示を示すグリッド・ガイドを通じてユーザーが前記ナビゲーションとより直接的に相互作用できるようにする表示装置としてのはたらきをする。タッチパネル装置は、たとえばフロント・パネル・ディスプレイまたはアレイの一部としてセットトップボックス自身に組み込まれていてもよいことを注意しておくことが重要である。タッチパネル装置３００はまた、アクチベーターまたは作動ボタンのようなより通常の制御機能を含むリモコン装置の一部として含まれていてもよい。
【００３４】
メディア記憶およびインターフェース装置として使われる装置２００のような装置の動作上の諸側面は、典型的には、メディア・コンテンツならびにコンテンツを同定するデータベース・エントリーもしくはレコードの記憶、維持、検索、取り出しを含む。データベース情報およびエントリーの更新は、定期的または継続的なコンテンツ情報更新を含むことができる動的なシステムでは重要である。たとえば、新たなデータベース・レコードまたは情報が受領され、データベースに与えられてもよい。さらに、現在記憶されているコンテンツおよび該コンテンツに関連するエントリーまたは情報が除去または消去されてもよい。コンテンツは、定期的に、あるいはまた、ユーザー・コントロールからの当該装置への入力を通じて除去または消去されてもよい。同時にまたはほぼ同時に、データベース検索要求のような要求がなされてもよい。一般に、コンテンツおよび情報のあらゆる種類および形態が、複数の源から受領され、データベースに入力されてもよい。検索要求のために安定したデータベースが利用可能であることが重要である。検索機能を維持し、検索結果および検索パフォーマンスをできるだけ高く保ちながら、データおよび情報がデータベースに加えられる必要がある。データベース中での更新および検索に対する改善は、単純なデータベース構造（たとえば、構造化照会言語（SQL:  structured  query  language）データベースにおいて実装される構造）においては一層望ましい。
【００３５】
本稿に記述されるメディア・コンテンツ・データベースの更新、管理および検索のための機能および制御は、ゲートウェイ装置（たとえば装置２００）に関連する動作コードまたはファームウェアの一部として包含されていてもよい。プロセスは、任意のプログラミング言語（たとえばジャバ（Java）またはハイパーテキスト・マークアップ言語（HTML:  hypertext  markup  language））で書かれた動作命令を含んでいてもよい。アプリケーションは事前にロードされていても、ダウンロードされてもよく（たとえばサーバーまたはインターネット・サイトから）、ホスト装置のメモリに記憶されていてもよい。ある実施形態では、命令は図２の制御メモリ２２０に記憶され、そこで命令はコントローラ２１４によって取り出され、実行されることは理解されるであろう。別の実施形態では、前記メモリおよび前記処理を実行する対応するプロセッサまたはコントローラは、別個のスタンドアローンの集積回路（たとえば、デジタル処理プロセッサ（DSP）または特定用途向け集積回路（ASIC:  application  specific  integrated  circuit））に統合されていてもよい。
【００３６】
ここで図４に目を転じると、本開示の諸側面に基づく受信装置におけるメディア・コンテンツ・データベースを管理するために使われる動作コードの一部についての例示的なアーキテクチャ４００が図示されている。DVB源からの入力データはDVBイベント源プラグイン４２０に渡される。第二の源、ブロードバンド・コンテンツ源からの入力データはブロードバンド・イベント源プラグイン４２５に渡される。DVBイベント源プラグイン４２０およびブロードバンド・イベント源プラグイン４２５は、源プラグイン・アプリケーション・プログラミング・インターフェース（API:  application  programming  interface）４４２へのインターフェースをもつ。源プラグインAPI  ４４２はプログラム・データベース４４０へのインターフェースをもつ。プログラム・データベース４４０は、記録スケジューラ４６０およびコンテンツ・アグリゲーター４７０の両方へのインターフェースをもつ。源プラグインAPI  ４４２は、他の源プラグイン（図示せず）へのインターフェースをも提供していてもよい。同様に、プログラム・データベース４４０は他のモジュール（図示せず）へのインターフェースをも提供する。最後に、DVBイベント源プラグイン４２０、ブロードバンド・イベント源プラグイン４２５、源プラグインAPI  ４４２およびプログラム・データベース４４０は、プログラム・データベース・コンポーネント４４５として包含されている。
【００３７】
プログラム・データベース・コンポーネント４４５は、装置（たとえば装置２００）内でコンテンツ・データベースを管理するためのいくつかのサービスおよび機能を提供する。プログラム・データベース・コンポーネント４４５は、当該装置のリブート後すぐに取得可能なイベント情報（たとえば、データベース・エントリーおよび情報）の持続的な記憶を提供する。プログラム・データベース・コンポーネント４４５はさらに、イベントまたはエントリー情報および基準に基づく効率的かつ柔軟な検索インターフェース機能を提供する。検索機能は、番組に関係した特定の情報（たとえばジャンル、時間枠）を検索することを含んでいてもよい。検索機能はまた、基準の組み合わせに基づく検索をも含んでいてもよい。番組データベース・コンポーネント４４５はまた、イベントまたはエントリー情報を番組データベース４４０に提供するための柔軟なインターフェースを提供する。
【００３８】
番組データベース４４０は、イベントまたはエントリー情報を収集し、それについて検索可能なインターフェースを提供することを受け持つ。イベントについて与えられるデータ（たとえばメディア・コンテンツ・エントリー）は、異なるサービス・プロバイダーおよびネットワークの間では有意に変わりうる。番組データベース４４０は、記憶されているデータの詳細についての固有の知識がなくてもイベントまたはエントリー・データにおける有意な変動を動作コードが受け入れられるようにする、非常に柔軟な検索入力インターフェースおよびデータベース構造をもって設計された。さらに、番組データベース４４０への入力は源プラグインAPI  ４４２を通じて抽象化される（abstracted）。番組データベースは、初期のイベント処理のために、源プラグインAPI  ４４２を通じてインターフェースを指定する。源プラグインAPI  ４４２は、他のコンポーネント（たとえば記録スケジューラ４６０およびコンテンツ・アグリゲーター４７０）に明かされる機能や動作は含まない。
【００３９】
諸イベント源のインターフェースとなるDVBイベント源プラグイン４２０およびブロードバンド・イベント源プラグイン４２５は、番組データベース４４０によって直接呼び出すことのできるいくつかの可能な共有ライブラリのうちの二つである。DVBイベント源プラグイン４２０は、DVB規格の一つに従う放送信号ストリーム内で搬送される番組ガイド・データへの個別的なインターフェースを提供する。ブロードバンド・イベント源プラグイン４２５は、一つまたは複数のウェブまたはインターネット・ベースのコンテンツ送達サービスへの個別的なインターフェースを提供する。別個の源プラグインAPI  ４４２はさらに、イベント源が番組データベース４４０に登録されることを許容し、イベント情報を提供するよう定義される。プラグインを使うことによって、番組データベース・コンポーネント４４５の残りに影響することなく、プラグイン中の特定のサービスまたはコンテンツ・プロバイダーについて、モデル・カスタマイズができる。源プラグインAPI  ４４２は、他の源プラグイン（図示せず）のためのインターフェースをも含む。番組データベース４４０がさらに、複数の源からのイベントまたはエントリー・データを受け入れられるようにするためである。
【００４０】
番組データベース４４０は、諸コンポーネント（たとえば、記録スケジューラ４６０およびコンテンツ・アグリゲーター４７０）がイベントまたはエントリーならびに付随情報を検索および取得できるようにする一組のサービス定義をも提供する。記録スケジューラ４６０は、番組データベース４４０からの情報を使って、装置（たとえば装置２００）によって受信されるコンテンツの記録をスケジュールおよび管理する。これらの記録は、ユーザー選好またはあらかじめ定義された条件（たとえば一連の諸記録）に基づいて自動的に記録されてもよいし、あるいはユーザー要求によって開始されてもよい。記録スケジューラ４６０はまた、スケジュール変更が発生するときに記録スケジュールを調整するよう、番組データベース４４０からイベント（たとえば番組ガイド）更新を受信もする。たとえば、ある番組コンテンツ・エピソードが所与の日において午後８：００から午後８：３０に記録されるようスケジュールされていることがある。その後、ネットワーク・プロバイダーは、午後８：３０から午後９：００にネットワークを通じて送達されるようそのエピソードをスケジュールし直す更新されたイベント情報を送ることがある。記録スケジューラ４６０は、このイベント更新を番組データベース４４０から受け取り、しかるべく記録スケジュールを調整する。
【００４１】
コンテンツ・アグリゲーター４７０は、装置（たとえば装置２００）とのインターフェースをもつ複数の源からの、存在するまたは入手可能なコンテンツを収集し、さらに同定する。これらの源は、番組データベース４４０によって与えられる任意のイベントまたは番組データを含む。他の源は、当該装置上に存在する以前に記録されたコンテンツ、当該装置上に存在するダウンロードされたコンテンツおよびUSBスティックもしくは家庭ネットワーク上に存在するユーザー・コンテンツを含んでいてもよい。コンテンツ・アグリゲーター４７０はすべての利用可能なコンテンツについての情報を提供するための単一のインターフェースを提供する。コンテンツ・アグリゲーター４７０はさらに、これに限られないがデジタル・リビング・ネットワーク・アライアンス（DLNA:  digital  living  network  alliance）サービス、ローカルな表示装置のためのユーザー・インターフェースおよびタブレット上で走るリモート・クライアントを含む、当該ソフトウェア・アーキテクチャ内の他のモジュールまたはサービスとのインターフェースをもっていてもよい。
【００４２】
以下に記載されるプロセスは、データベース・システムの更新パフォーマンスを改善する諸実施形態を含む。これらのプロセスは、さまざまな構成およびアーキテクチャ４００を含むプログラム・アーキテクチャにおいて使用されうる。さらに、これらのプロセスは、上述した装置２００およびクライアント装置１０８を含むさまざまな装置に含まれていてもよい。これらのプロセスは、別個のデータ記憶構造の間の二つの別個の交換機構の使用を包含する。第一に、はいってくるイベント、データおよび情報を一時的に記憶するためにメモリ・キャッシュ構造が使用される。典型的には新たなプログラムまたは送達スケジュールもしくは番組ガイドへの更新といったイベントを同定する、はいってくるデータ記録および情報は、まずメモリ・キャッシュに入れられる。定期的に、メモリ・キャッシュはスワップされて、最も最近書き込まれたメモリ・キャッシュが、二つの主要なデータベースのうち書き込み専用モードにされているほうにコピーされるまたは書き込まれる。同時に、当該データベースの安定バージョンを表す、当該データベースの以前に書き込まれたバージョンは、読み出しモードにされて、任意の検索要求にサービスするために使われる。キャッシング・プロセスは動的で、最後の転送以降のエントリー数、経過した時間期間または検索要求の頻度のような因子に依存していてもよい。キャッシュ・スワップ・トリガーのような因子の組み合わせを使えば、検索要求の頻度に基づいてキャッシュ転送を遅らせるまたは多数のイベント・エントリーの受領に基づいて転送を増大させることによって、動的スワップ・アプローチがさらに向上される。
【００４３】
さらに、キャッシュまたは主たるデータベースのいずれかのスワップの際に開始された検索要求は、識別され、待ち行列に入れられる、記憶されるまたはスワップ中に他の仕方で別個に処理されるのでもよい。たとえば、スワップの時間期間中に開始された検索要求は、初期には現在のデータベースを使ってサービスされてもよい。スワップ完了後、識別された要求は、先の検索要求結果への補足として、更新された情報を使って改めてサービスされることができる。
【００４４】
ここで図５および図６に目を転じると、本開示の諸側面に基づく装置におけるデータベースを更新するためのプロセス５００およびプロセス６００が示されている。プロセス５００およびプロセス６００は主として図２に記載される装置２００に関して述べられるが、プロセス５００および／またはプロセス６００のステップの一つまたは複数は、図１に記載されるクライアント装置１０８にも等しく適用可能であってもよい。さらに、プロセス５００および／またはプロセス６００のステップは、放送ネットワーク源（たとえば図１の送達ネットワーク１（１０６））から送達されるおよび副次ネットワーク（たとえば図１の送達ネットワーク２（１１４））へ／から送達される通信に依拠していてもよい。さらに、プロセス５００およびプロセス６００において記述されるステップのいくつかは二度以上実装されてもよいし、あるいは再帰的に実装されてもよい。そのような修正は、プロセス５００またはプロセス６００の全体的な側面にいかなる影響も及ぼすことなくできる。
【００４５】
さらに、プロセス５００およびプロセス６００は互いとの関連において記述されるが、これらのプロセスが分離可能であることを注意しておくことが重要である。プロセス５００は主として初期のイベントまたはエントリー・キャッシングおよび更新のための動作を記述する。プロセス６００は主として、完全なデータベース・スワップ・プロセスに含まれるステップを記述する。結果として、プロセス５００およびプロセス６００は独立して実装されてもよい。
【００４６】
プロセス５００では、ステップ５０５において、プロセスは、時間フレームの開始を初期化することをもって始まる。時間フレーム初期化は、番組データベースに含めるためのエントリー、コンテンツおよび情報といった新たな入力を蓄積するための時間を決定するための一つの機構を提供する。時間フレーム情報は、タイマーの動作を通じて維持されてもよい。タイマーは、実時間ベースで動作してもよいし、あるいは当該装置の動作の時間を使うなど、「実際の使用」時間ベースで動作してもよい。時間フレームは、５分など、あらかじめ決定された値であってもよいし、あるいはユーザーによってまたはプロセスのモニタリング（たとえばある時間期間にわたるエントリー数、カバーされる時刻など）を通じて動的に調整可能であってもよい。また、ステップ５０５では、適切な時間ベース（たとえばタイマー）が装置２００内のコントローラ２１４によってモニタリングされる。ステップ５１０では、時間ベースが定期的または継続的にモニタリングされる間に、ステップ５０５で初期化された時間フレームを超過したかどうかについての判定がなされる。ステップ５１０で、時間フレームを超過していなければ、モニタリングは、ステップ５１０における次の判定まで続けられる。ステップ５１０において時間フレームを超過していれば、ステップ５１５において、時間フレームはリセットされる。ステップ５１５でのリセット後、プロセスはステップ５０５での新たな時間フレームの初期化に戻る。
【００４７】
これとは別に、ステップ５０５における時間フレーム初期化に続いて、ステップ５２０でイベント・カウントが初期化される。次に、ステップ５２５において、受領されるイベントまたはエントリーがモニタリングされる。先述したように、これらのイベントまたはエントリーは、コンテンツ源またはコンテンツ・プロバイダーからの新規エンティティーであってもよく、あるいはデータベース中の既存のエントリーへの更新であってもよい。いずれにせよ、該エントリーに基づいてデータベースへの変更が必要である。ステップ５２５でイベントが受領されなければ、プロセスはステップ５２５に戻ってモニタリングを続ける。ステップ５２５においてイベントまたはエントリーが受領されたら、ステップ５３０において、イベントまたはエントリー情報が検査される。具体的には、イベント識別子に関係する情報が検査される。後述するように、イベント識別子は、イベント・カウンタのために、イベントまたはエントリーが新規であるかどうかを判定するために使われる。
【００４８】
次に、ステップ５３５において、イベントまたはエントリー情報がアレイ・キャッシュ構造に記憶される。イベントまたはエントリー情報および該アレイ・キャッシュ・ポインタ構造の位置の記憶は、制御メモリ２２０、記憶装置２１２または別個のメモリ構造（図示せず）においてできる。さらに、プロセス５００は、それぞれ別個のポインタをもつ二つのアレイ・キャッシュ構造を維持する。ステップ５４０において、受領されたエントリーまたはイベントが新規イベントを表すかどうかについて判定がなされる。判定は、イベント中の一意的な識別子を、すでにアレイ・キャッシュにあるイベントの一意的な識別子と比較することによってなされてもよい。
【００４９】
ステップ５４０で、受領されたイベントまたはエントリーが新規でないとの判定がなされる場合、プロセスはステップ５２５で新たなイベントを待つことに戻る。この場合、受領されたイベントまたはエントリーおよび情報は、アレイ・キャッシュ中の以前のイベントまたはエントリーについての情報を置換するために使われてもよい。ステップ５４０において、受領されたイベントまたはエントリーが新規であるとの判定がなされる場合、ステップ５４５で、イベント・カウントが更新またはインクリメントされる。次いで、受領されたイベントまたはエントリーおよび情報はアレイ・キャッシュに加えられてもよい。
【００５０】
次に、ステップ５５０において、ステップ５４５で最近インクリメントされたイベント・カウントが所定のイベント・カウント最大閾値を超えているかどうかについて判定がなされる。先述したように、最大イベント・カウントは固定値（たとえば10イベント）、ユーザー設定可能な値または他の動作条件（時間期間あたりのイベント数または時刻）を考慮に入れる動的な値でありうる。ステップ５５０において、イベント・カウントが閾値を超えていないという判定がなされる場合には、プロセスはステップ５２５において新たなイベントを待つことに戻る。
【００５１】
ステップ５５０において、イベント・カウントが閾値を超えているとの判定がなされる場合には、ステップ５５５において、現在使用されているアレイ・キャッシュ中に存在するインデックスを現在ポイントしているポインタが、第二のアレイ・キャッシュをポイントするよう変更される。この第二のアレイ・キャッシュは空であり、いかなる以前のエントリーもクリアされている。最も最近の諸エントリーを含むアレイ・キャッシュは、プロセス６００の一部としてコンテンツが主たるデータベースに書き込まれるまでは維持される。さらに、プロセス５００は、ステップ５５５のあと、ステップ５１０における時間フレーム初期化に戻り、新たなイベント・キャッシング・サイクルを開始する。
【００５２】
ここで図６のプロセス６００に目を転じると、現在〔カレント〕書き込みデータベースがアレイ・キャッシュからの新規エントリーを用いて更新される。ステップ５５５においてスワップされ、最も最近の受領エントリーまたはイベントを含んでいるアレイ・キャッシュが現在書き込みデータベースに書き込まれる。先述したように、データベース・スワップを容易にするために二つのデータベースが維持されてもよい。任意の時点において、データベースの一方が現在書き込みデータベースであり、他方のデータベースは現在読み出しデータベースである。ステップ６２０では、ステップ６１０での書き込みプロセスが完了しているかどうかについて判定がなされる。ステップ６２０において書き込みプロセスが完了していないとの判定がなされる場合、プロセスはステップ６１０に戻って現在書き込みデータベースにエントリーまたはイベントを書き込むことを続ける。
【００５３】
ステップ６２０において、書き込みプロセスが完了しているとの判定がなされる場合、ステップ６３０において、スワップされたアレイ・キャッシュが削除される。ステップ６４０では、データベース・スワップが実行される。データベース・スワップは、現在読み出しデータベースをポイントしているポインタを現在書き込みデータベースをポイントするよう変更することを含む。ポインタの変更に加えて、書き込みを防止するための書き込み保護条件が現在書き込みデータベースに対して課されてもよい。一方、書き込みを可能にする現在の書き込み保護が現在読み出しデータベースに課されてもよい。ステップ６１０で新規イベントまたはエントリーをもって更新される現在書き込みデータベースが、今や新たな読み出しデータベースである。
【００５４】
次に、ステップ６５０において、現在読み出しデータベースが消去されて、新たな書き込みデータベースとなる。該データベースに記憶されているエントリーおよびイベントのすべてが削除または除去される。ステップ６５０では、新たな読み出しデータベース（現在読み出しデータベースになった、以前の現在書き込みデータベースとしてさらに同定される）の内容が、新たな書き込みデータベース（現在書き込みデータベースとなった、以前の読み出しデータベースとしてさらに同定される）にコピーされる。新たな読み出しデータベースに含まれるイベントおよびエントリーが読み出され、新たな書き込みデータベースに書き込まれる。
【００５５】
ステップ６１０における書き込みがステップ６２０においてモニタリングされることを注意しておくことが重要である。それにより、ステップ６４０におけるデータベース・スワップは、アレイ・キャッシュの現在書き込みデータベースへの書き込みの完了前に起こることはない。また、ステップ６１０での書き込みの結果として、データベース内容の一部だけが変更されうる可能性もある。いくつかの実施形態では、プロセスが効率を保つため、ステップ６１０における書き込みは、より低位の動作および機能（たとえばデータベース検索要求、ユーザー入力処理など）に比べて、装置内での資源（たとえばコントローラ２１４における処理時間および通信バス時間）の使用について優先権を与えられてもよい。他の実施形態では、ステップ６１０における書き込みに、より高い優先権が与えられなくてもよい。その代わり、データ損失を防ぐために、ステップ６１０における書き込みの十分なバッファリングを補償するような設計上の配慮がなされる。さらに、ステップ６６０における書き込みまたはコピーは、背景動作としてなされてもよく（すなわち、資源に対するより低い優先権を与えられる）、ほとんどまたは全くモニタリングを必要としなくてもよい。ステップ６６０における書き込みは、ステップ５５０における次のキャッシュ・アレイ・スワップが完了する前に終了している必要がある。いくつかの実施形態では、ステップ６６０において書き込みをモニタリングし、ステップ５１０における時間フレームについてのまたはステップ５５０におけるイベント・カウントについての閾値を調整することが有利であることがある。
【００５６】
プロセス５００およびプロセス６００における諸ステップは単に一つの好ましい実施形態であることを注意しておくことも重要である。他のいくつかの実施形態では、プロセス５００に記述されるキャッシュの一方または両方がなくされたり、あるいはプロセス６００に記述される主たるデータベースの一方または両方に統合されたりしてもよい。さらに、資源および／または時間管理におけるさらなる柔軟性を許容するために、三つ以上のキャッシュまたは三つ以上のデータベースが使用されてもよい。さらに他の実施形態では、プロセス５００またはプロセス６００におけるある種のステップは、再配列されてもよく、あるいはなくされてもよい。たとえば、ある実施形態において、ステップ５５５におけるアレイ・キャッシュ・スワップは、代替的に、ステップ６２０におけるイベントまたはエントリーの現在書き込みデータベースへの書き込みの完了のあとに行われてもよい。さらに、ステップ５１０における時間フレーム比較およびステップ５５０におけるイベント・カウント比較は並列に実行されるように示されているが、これらの比較ステップは直列に実行されてもよい。たとえば、ステップ５１０における比較が、ステップ５５０における比較の直前に実行されてもよい。
【００５７】
プロセス５００および６００における諸ステップは、データベースについての更新機構を制御することによってメディア・コンテンツ・データベースを効率的に管理するためのプロセスを記述している。データベース・スワップの頻度を管理することは、パフォーマンス、特にデータ入出力スループットに関するパフォーマンスと、ユーザーに呈示されるコンテンツの精度との間のトレードオフの制御を許容する。プロセス５００およびプロセス６００における諸ステップは、データベース・エントリーをキャッシュして、あらかじめ定義された数のキャッシュされたレコードの受信後、あらかじめ定義された時間期間後または他の何らかの、可能性としては動的に調整可能なパラメータ後にはじめて主たるデータベースを更新することを受け持つ。このキャッシング機構は、電源喪失を含むいくつかの動作シナリオに対して更新プロセスをより順応できるようにすることによって、データベース更新のパフォーマンスを改善する。キャッシング機構は、トランザクション・オーバーヘッドを複数のレコードにわたって分散させるまたは分割払いにし、それにより総トランザクション時間を減らすことによって、パフォーマンスを改善する。たとえば、多くのデータベース管理システムは、多数のデータベース・エントリー挿入動作を許容しうる。しかしながら、実際のデータベース更新速度またはトランザクション時間は、記憶媒体転送レートなど他の要因によって制限されることがある。管理システムはしばしば各データベース・エントリー挿入を、別個のトランザクションとして扱う。制御された更新機構を使って複数のデータベース・エントリーを一つの挿入動作にグループ化することによって、トランザクション時間は、複数の挿入動作にまたがって分割払いまたは分散されうる。制御される更新機構は、更新時間の短縮およびデータベース更新速度の改善につながる。
【００５８】
本稿に記載されるプロセスの利点のいくつかの例示的な例解として、装置は、所与の時間期間にわたってイベント・レコードの25個の部分または「チャンク」を（たとえばソフトウェア内のプラグイン・モジュールからまたは外部の源から）受領する。イベント・レコードの各部分は、50個ものイベントを含みうる。典型的なデータベース更新時間が各トランザクションについて2秒であれば、イベント・レコードの各部分を受領した時点でデータベースを更新すれば（すなわち、各チャンクについてデータベースへの書き込み、ディスクへのフラッシュなどを行う）、総待ち時間が少なくとも50秒になる。この間は、データベースは、最新の受領された更新に対して「無効」（つまり、更新されていない）と考えられる。はいってくるイベントの諸部分（たとえば一度に25個の部分）をキャッシングし、それらを単一のトランザクションとして同時にデータベースに書き込むことによって、総待ち時間はたった2秒まで短縮されることがありうる。キャッシング・プロセスはさらに、先述したように更新頻度またはアクセス頻度を含むいくつかの因子に基づいて動的に運用および管理されてもよい。
【００５９】
さらに、それぞれの受領部分についての個々のトランザクションについての長い待ち時間は、更新と、データベース問い合わせもしくは検索要求とが並行して行われる可能性が高くなるため、コンテンツ検索のためのデータベース問い合わせおよび読み出し時間が遅くなることにつながる。多くのデータベース・システムは、同時の書き込みおよび読み出し動作を許可しないまたは推奨しない。本稿に記載されるスワップまたは更新プロセスは、並行した書き込みもしくは更新と読み出しもしくは問い合わせアクセスに関連する問題に対処する。別個の読み出しおよび書き込みデータベースを維持することで、検索要求に対するより高速なユーザー応答が可能となる。
【００６０】
さらに、キャッシング機構は、データベースに書き込まれる可能性のあるデータの量を減らすこともありうる。いくつかのコンテンツ送達シナリオでは、同じイベント情報が繰り返し提供されることがある。そのようなシナリオは、数日分の番組ガイド情報が一時間毎に放送され、送られうる放送信号送達システムにおいてしばしば見られる。現在受信された番組ガイド中の多くのイベント・エントリーは、以前に受信されているイベントまたはエントリー情報と同一である。さらに、以前に受領されたエントリーに対する更新であるいくつかのエントリーが受領されることがある。イベント識別子を維持し、新たなエントリーを含めるかあるいは既存のエントリーを更新もしくは置換して、最新の更新された情報のみを含めるようキャッシュを更新することによって、あらゆる反復的な更新は、イベントまたはメモリ・キャッシュにおける識別される変化に限定される。さらに、反復的なイベントまたはエントリー情報の結果としての不要な更新は最小限となる。
【００６１】
ここで図７に目を転じると、本開示の諸側面に基づく装置におけるデータベースを更新するプロセス７００のもう一つの実施形態が示されている。プロセス５００およびプロセス６００と同様に、プロセス７００は主として装置２００に関して記述されるが、ステップの一つまたは複数は図１に記載されるクライアント装置１０８にも等しく適用可能でありうる。プロセス７００は主としてプロセス５００に対する代替プロセスを記述する。プロセス５００と同様に、プロセス７００はプロセス６００との関連で使用されてもよく、あるいはプロセス６００とは完全に独立に使われてもよい。さらに、プロセス７００において記述されるステップのいくつかは二度以上実装されてもよいし、あるいは再帰的に実装されてもよい。そのような修正は、プロセス７００の全体的な側面にいかなる影響も及ぼすことなくできる。
【００６２】
ステップ７１０において、プロセスは次の受領イベントまたはキャッシュ・フラッシュ信号を待つ。ステップ７１０において、現在イベント・カウントおよびタイマー経過時間カウントを含む、ある種の動作条件がすでに進行中またはアクティブであると考えられることを注意しておくことが重要である。新たなイベントまたはエントリーが受領されるまたはキャッシュ・フラッシュ信号が受領される場合、ステップ７２０において、キャッシュ・フラッシュ信号が受信されたのかどうかについての判定がなされる。キャッシュ・フラッシュ信号が受信されたのであれば、ステップ７２５において、現在イベント・キャッシュの制御は現在書き込みデータベースに移される。ステップ７３０では、データベース書き込み信号が現在書き込みデータベースに与えられる。ステップ７２５における制御の移行およびステップ７３０における書き込み信号の送信は、プロセス６００におけるステップ６１０と同様の仕方で現在イベント・キャッシュが現在書き込みデータベースに書き込まれることを許容する。ステップ７３５では、現在のイベント・カウントはゼロにリセットされる。
【００６３】
ステップ７２０において、キャッシュ・フラッシュ信号が受領されないと判定される場合、またはステップ７３５におけるイベント・カウント・リセットに続いて、ステップ７４０において、データベースについてのイベントまたはエントリーが受信されたかどうかについての判定がなされる。ステップ７４０でイベントやエントリーが受信されていなければ、プロセス７００はステップ７１０に戻って、次の受領されるエントリーもしくはイベントまたはキャッシュ・フラッシュ信号を待つ。ステップ７４０においてイベントが受信されたと判定される場合、ステップ７４５において、受信されたイベントが新規イベントとして識別されるかどうかについての判定がなされる。受信されたイベントがすでに現在イベント・キャッシュにあるイベントとは異なる場合、新規イベントが識別される。たとえば、各イベントは、一意的なイベント識別子またはイベントIDを含んでいてもよい。イベントが受信される場合、受信されたイベントの識別子がイベント・キャッシュ中のイベント識別子の現在のリストと比較される。マッチが見出されなければ、受信されたイベントは新規イベントとして識別される。
【００６４】
ステップ７４５において、受信されたイベントまたはエントリーが新規イベントであると判定される場合、ステップ７５０において、受信されたイベントは現在イベント・キャッシュに追加される。ステップ７５５では、イベント・カウントがインクリメントされ、ステップ７６０では、更新されたインクリメントされたイベント・カウントが他のプロセスまたは関数に送られるまたは提供される。たとえば、ステップ７６０において、更新されたイベント・カウントは、プロセス５００において述べたステップ５１０および５５０と同様に、キャッシュ・フラッシュ信号がいつ生成され、送られるべきかを動的に決定するためのプロセスまたは回路に送られてもよい。キャッシュ・フラッシュ信号の決定および生成に関するさらなる詳細は後述する。生成され送られるキャッシュ・フラッシュ信号がその後、プロセス７００の先頭におけるステップ７１０において受領されうることを注意しておくことが重要である。
【００６５】
ステップ７４５で、受信されたイベントまたはエントリーが新規イベントではないと判定される場合、受信されたイベントは、現在イベント・キャッシュ中に現在ある、同じイベントIDをもつイベントの代わりに、現在イベント・キャッシュに挿入される。このようにして、イベント・キャッシュ中に現在あるイベントは、より新しい受信されたイベント情報によって更新されることができ、該情報のデータベースへのさらなる書き込みを待つ必要がない。更新されたイベント・カウントを送ったのちまたは現在イベント・キャッシュ中のイベントを置換したのち、プロセス７００はステップ７１０に戻って、次の受領されるエントリーもしくはイベントまたはキャッシュ・フラッシュ信号を待つ。さらに、イベント・カウントがインクリメントされ、送られるのが、ステップ７４５において受信されたイベントが新規イベントであると判定される場合にのみであることを注意しておくことが重要である。受信されたイベントが新規イベントではない場合には、受信されたイベントについての情報は、イベント・カウントをインクリメントしたり更新イベント・カウント値を送ったりすることなく、現在イベント・キャッシュ中の同じイベントについての情報を置換する。
【００６６】
ここで図８を参照すると、本開示の諸側面に基づくキャッシュ・コントローラ８００のある実施形態のブロック図が示されている。キャッシュ・コントローラ８００は、受信もしくはゲートウェイ装置（たとえば図２に記載される装置２００または図１に記載されるクライアント装置１０８）において使用される制御回路の一部として含まれていてもよい回路を含む。さらに、キャッシュ・コントローラ８００によって実装される論理的な機能は、図５のプロセス５００または図７のプロセス７００のいずれかについての先述した一つまたは複数のプロセス・ステップと同様である。
【００６７】
キャッシュ・コントローラ８００はキャッシュ制御ブロック８１０を含む。キャッシュ制御ブロック８１０は制御論理８２０を含む。制御論理８２０はイベント・カウント入力信号、一つまたは複数のシステム活動メトリック信号および他の入力を受信する。他の信号は、キャッシュ制御プロセスにおいて使われる閾値信号および有効化／無効化信号を含む。キャッシュ制御ブロック８１０はタイマー８３０をも含む。タイマー８３０は、制御論理ブロック８２０にタイマー終了信号を提供する。制御論理ブロック８２０の出力は、キャッシュ・コントローラ８００の出力としても同定される、キャッシュ・フラッシュ信号である。このキャッシュ・フラッシュ信号は、プロセス７００におけるステップ７２０において述べた信号と同様であり、タイマー８３０にもタイマー・リセット入力として与えられる。
【００６８】
制御論理ブロック８２０は、いくつかの入力を受け取り、それらの入力を組み合わせて処理して、イベント・キャッシュまたはメモリがいつスワップおよび／またはフラッシュされるべきかを決定する。制御論理ブロック８２０は、たとえば一組の論理ゲート、プログラム可能な論理アレイを含むいくつかの実施形態の一つとしてまたはマイクロコントローラ回路の一部として実装されてもよい。制御論理ブロック８２０は、プロセス５００におけるステップ５２０、５４５および５５０またはプロセス７００におけるステップ７３０、７５５および７６０において記述されたイベント・カウントと同様のイベント・カウントを示す一つの入力を受け取る。制御論理ブロックはまた、イベント・カウント以外の、一つまたは複数の他のシステム活動メトリックを含む入力をも受け取る。これらのメトリックは、新しいエントリーを受け取るレートの指標、時刻の指標、ユーザー検索要求のレートの指標または制御論理ブロック８２０の出力を変更するために使われうる他の任意のメトリックを含んでいてもよい。さらに、制御論理ブロック８２０は、先述したメトリックの一つまたは複数についての閾値などといった事前記憶された値を含んでいてもよいもう一つの入力を受け取る。これらの値は、初期設計の一部として決定されていてもよいし、あるいはユーザー選択可能であってもよい。これらの値はさらに、装置内のメモリ（たとえば装置２００内のメモリ２２０）に記憶されていてもよい。各入力は、データのバイトをなす一つまたは複数のデジタル・ビット値信号であってもよい。たとえば、各入力は、並列信号線上で個々に与えられる8つのビットであってもよい。
【００６９】
タイマー８３０は、入力クロック信号（図示せず）に基づいて動作し、プロセス５００におけるステップ５０５、５１０および５１５で記述されたタイマーと同様のタイマー機能を提供する。タイマー８３０は、クロック信号を使って、最後のタイマー・リセット以降の経過時間を維持する。経過時間値は、設計の一部としてあらかじめ決められていてもよいし、あるいはユーザー選択可能であってもよい。ひとたびタイマー８３０におけるカウント値があらかじめ決められた値を超えると、タイマー終了信号が制御論理ブロック８２０に送られる。このタイマー終了信号は、タイマー８３０が、制御論理ブロック８２０の出力におけるキャッシュ・フラッシュ信号との関連でタイマー・リセット信号を受信するまで残ってもよい。
【００７０】
動作では、キャッシュ・コントローラ８００は、イベント・カウントおよび活動メトリックといった入力を、閾値のような他の入力とともに、装置（たとえば装置２００）内の他のコンポーネントから受領する。これらの入力を、タイマー終了信号とともに使って、キャッシュ・コントローラ８００は、現在イベント・キャッシュ・メモリのスワップまたはフラッシュをいつ実行するかを決定する。先述したように、いくつかの例では、三つ以上のイベント・キャッシュが使用されもよく、あるいはまた、イベント・キャッシュおよびデータベース両方を組み込む、より統合されたメモリ構造が使用されてもよい。
【００７１】
ここで図９に目を転じると、本開示の諸側面に基づく制御回路のある実施形態のブロック図が示されている。制御回路９００は、キャッシュ・コントローラ（たとえば図８に記載されるキャッシュ・コントローラ８００）において使用されるキャッシュ制御ブロックに含まれていてもよい。さらに、制御回路９００によって実装される論理的な機能は、図５のプロセス５００または図７のプロセス７００のいずれかにおいて先述した一つまたは複数のプロセス・ステップと同様であってもよい。
【００７２】
制御回路９００は、二つの入力、イベント・カウントおよびイベント閾値を受領する比較器９１０を含む。比較器９１０の出力は、ORゲート９２０に与えられる。ORゲート９２０の出力は、可能なキャッシュ・フラッシュ信号の一つを表す。
【００７３】
比較器９１０は、単純な非安定な（astable）またはロックされていない（unlocked）比較器であってもよい。入力P（イベント・カウント信号）およびQ（イベント閾値信号）のそれぞれは、先述したようにデータのバイトをなす一つまたは複数のデジタル・ビット値信号であってもよい。比較器９１０の出力は、Q入力値（入力ビット信号によって表される）がP入力値を超えるまで、論理的な低（たとえば値「0」）であってもよい。Q入力値がP入力を超えると、比較器９１０の出力は論理的な高（たとえば値=「1」）に変わる。比較器９１０は、同期的な動作を許容するクロック入力（図示せず）をも含んでいてもよい。同期的な動作では、出力における低から高への状態変化は、Q入力値がP入力値を超えたあとの最初のクロック・エッジにおいて生じうる。
【００７４】
ORゲート９２０は、比較器９１０からの出力を、単一ビット入力信号、タイマー終了とともに受領する。ORゲート９２０出力は、比較器９１０からの出力またはタイマー終了信号値のいずれかが論理的な高になるまで、論理的な低のままである。いずれかの入力が論理的な高になれば、ORゲート９２０の出力（すなわちキャッシュ・フラッシュ信号）が論理的な高になる。
【００７５】
制御回路９００と同様の他の回路がキャッシュ・コントローラ（たとえば図８に記載されるキャッシュ・コントローラ８００）に含まれていてもよいことを注意しておくことが重要である。これらの制御回路のそれぞれは、別個のキャッシュ・フラッシュ信号を生成してもよく、それらの信号のそれぞれがさらに一緒に接続されて、図８に記述されたキャッシュ制御信号と同様の最終的なキャッシュ制御信号を生成してもよい。
【００７６】
ここで図１０に目を転じると、本開示に基づくコンテンツ・イベントまたはエントリーについての例示的なレコード構造１０００が図示されている。レコード構造１０００は、上述したプロセス５００、プロセス６００およびプロセス７００との関連で使用されてもよい。レコード構造１０００は、図４に記述されたアーキテクチャ４００との関連で使用され、受信装置（たとえば図２の装置２００または図１のクライアント装置１０８）内のメモリにおいて実装および記憶されてもよい。レコード構造１０００が一つの可能なレコード構造を例解しているだけであることを注意しておくことが重要である。他のレコード構造構成が可能であり、関わっている動作コードまたは使用されるプログラミング言語に依存してもよい。そうした構成は本開示の範囲内と考えられる。
【００７７】
レコード構造１０００はイベント・テーブル１０１０を含む。イベント・テーブル１０１０はイベント識別子、開始時間および継続時間についてのエントリーを含む。さらに、イベント・テーブル１０１０は、一つまたは複数の「キー（key）が値（value）に等しい」というエントリーを含んでいてもよい。これらのエントリーのそれぞれは、各イベントについて個別的に同定され、イベントによって変わってもよい。このイベント情報はパースされて、個々の情報型またはキーが同定される。これらのキーは一般的なキー型エントリーの集合に揃えられ該情報型に関連付けられた個別的な情報が値として割り当てられる。たとえば、イベントは、「トランスフォーマー（Transformers）」というタイトル（Title）のタイトル識別子を含んでいてもよい。この場合、イベント・テーブル１０１０に「Title=Transformers」としてエントリーが追加される。他のキー型は、説明、保護者によるレーティング、シリーズ識別子、エピソード識別子およびサービス識別子を含んでいてもよい。さらに、主たるイベント・テーブル１０１０は、イベント・テーブル１０１０内のエントリーの一つまたは複数に基づいて、イベントを自動インデックス付けするための、リスト・リンク（list  linking）機能を含む。
【００７８】
本願の諸実施形態は、メディア・コンテンツのデータベースを効率的に管理することに向けられる。上記の諸実施形態は、データベースへの有効な問い合わせ要求を許可および実行しつつ、更新する必要のある複数のメディア・イベント（たとえば番組ガイドからのエントリー）を記憶しているデータベースを更新することを記述する。上記の諸実施形態は、イベントを受領し、該イベントを、新規イベントとして、またはすでにメモリ・キャッシュにあるイベントを上書きする更新イベントとして、メモリ・キャッシュに記憶する方法および装置を含む。その後キャッシュ・メモリは、キャッシュ・メモリ・スワップを実行するためのトリガーに基づいて、データベースに書き込まれる。キャッシュ・メモリ・スワップのためのトリガーは、新規イベント・カウントまたは所定の時間期間を超過したなど、いくつかの異なるトリガー・イベントに基づいていてもよい。トリガーのためにイベントの組み合わせを使うことで、トリガーを動的にできる。ひとたびキャッシュ・メモリが書き込まれ、データベースが更新されると、このデータベースは、「問い合わせ」または読み出し専用データベースとして同定またはポイントされ、現在の「問い合わせ」データベースはもはやポイントされなくなり、消去され、新たな問い合わせデータベースのバックグラウンドでのコピーが、問い合わせプロセスに影響しない仕方で、新たに消去されたデータベースに対してなされる。
【００７９】
本稿では本開示の教示を組み込む実施形態が詳細に示され、説明されているが、当業者は、やはりこれらの教示を組み込んでいる数多くの他の変形実施形態を容易に考案できる。装置上のメディア・コンテンツ・データベースを管理するための方法および装置の好ましい実施形態（それらは限定するのではなく、例解することを意図したものである）を述べてきたが、上記の教示に照らして修正および変形が当業者によってできることを注意しておく。したがって、開示される本開示の個別的な実施形態に変更がなされてもよく、それは付属の請求項に記載される本開示の範囲内であることは理解しておくものとする
【図１】
2014507849.tif 000003
【図２】
2014507849.tif 000004
【図３】
2014507849.tif 000005
【図４】
2014507849.tif 000006
【図５】
2014507849.tif 000007
【図６】
2014507849.tif 000008
【図７】
2014507849.tif 000009
【図８】
2014507849.tif 000010
【図９】
2014507849.tif 000011
【図１０】
2014507849.tif 000012
【国際調査報告】
2014507849.tif 000013