【発明の詳細な説明】
マルチメディア内容をマルチキャストするシステムおよび方法
[発明の背景]
[発明の分野]
本発明は、一般にマルチキャストネットワーク環境におけるマルチメディア内
容の配布に関し、とくに、1以上の受信機に情報をマルチキャストするための高
速マルチキャスト通信チャンネルと、受信機がネットワークと対話できるように
するために低速で動作することのできる応答チャンネルとを有しているマルチキ
ャストネットワークシステムに関する。
[関連技術の説明]
マルチメディア情報を配布するための最も一般的な方式は、インターネットの
ワールド・ワイド・ウェブ(WWW)である。図1を参照すると、WWWは1組
のネットワークアクセス可能な情報リソースであると考えられ、多数のウェブサ
ーバ10およびウェブブラウザ12がTCP/IPプロトコルを介してインターネッ
ト14に接続されている。これらのプロトコルは、ここにおいて参考文献とされて
いる文献(“Internetworking with TCP/IP,Vol.1”by Douglas Comer,publishe
d by Prentice-Hall in 1991)に記載されている。ウェブブラウザ12は、一般に
インターネットに接続されるパーソナルコンピュータ(PC)16に設けられてい
る。PC16とインターネット14との間の接続は、ダイヤルアップモデム電話回線
接続のような低速接続であることが多い。ウェブサーバ10はまた、一般に1.5
MbpsのT1接続のような高速専用回路によってインターネットに接続される
。PCユーザは、サーバ10からインターネット14を介してハイパーテキスト転送
プロトコル(HTTP)を使用してウェブサイト18(ウェブページ、グラフィッ
クスおよびその他のマルチメディア内容を含む)にアクセスするためにブラウザ
12を使用する。ワールド・ワイド・ウェブから情報を検索するこの“通常の”方
式では、ユーザが繰り返し同じウェブサイトにアクセスする場合でも、ユーザが
ウェブサイトにアクセスするごとに別個のTCP接続が必要である。
ワールド・ワイド・ウェブは、3つの基本的アイディアに基づいている:
(1)リソースに対するグローバル命名方式…ユニフォーム・リソース・ロケー
タ(URL)
(2)命名されたリソースにアクセスするためのプロトコル…その最も一般的な
ものがHTTPである
(3)ハイパーテキスト…リンクを別のリソースに埋込む能力であり、代表的に
ハイパーテキスト・マークアップ言語(HTML)にしたがって行われる。
各ウェブサイト18は、ウェブブラウザ12のユーザにとって1組の関連内容に見
える単一の企画(enterprise)により動作されるウェブページの集合体を含んでい
る。ウェブサイト18内のウェブページは、ハイパーテキスト・マークアップ言語
(HTML)規格にしたがってフォーマット化される。HTML規格は、テキス
トの位置、サイズおよびフォントの制御を含む高品質のテキストの表示、および
ウェブページ内におけるグラフィックスの表示を実現する。HTML規格はまた
、異なったウェブサーバに記憶されているウェブページと全く異なるウェブサイ
トとの間の連結(linking)を含む、あるウェブページから別のものへの“連結”
を行う。各HTML文書、グラフィックスイメージ、ビデオクリップその他の個
々の内容の一部は、ユニフォーム・リソース・ロケータ(URL)と呼ばれてい
るインターネットアドレスによって識別される。ここで使用されているように、
“URL”は、ウェブ内容の個々の一部(HTML文書、イメージ、サウンドク
リップ、ビデオクリップ等)のアドレスを指し、“URLデータ項目”とはUR
Lによってアドレス指定された内容の個々の一部を指す。
マルチメディア情報にアクセスするための上述の通常のダイヤルアップ方式は
かなり広く普及しているが、それは少なくとも2つの非常に重要な方法で限定さ
れている。第1に、ほとんどのPCユーザは、普通の電話回線によるダイヤルア
ップモデムを使用してインターネットにアクセスする。これらの回線は比較的低
速(たとえば、28.8または56kbps)で動作するため、通常のウェブペ
ージ(たとえば、150kバイト)の表示に長い時間(たとえば、50秒)を要
し、非常に短いビデオクリップ(低解像度の“クイックタイム”フォーマットの
6MBのムービトレーラのような)の表示にはもっと長い時間(たとえば、30
分)を要する。また、ユーザの電話回線は、インターネットがアクセスされてい
る全期間中、正規の音声通話のために利用することができない。
第2に、通常の方法では、各ウェブサイト18がその内容を各ウェブブラウザ12
に個々に伝送しなければならない2地点間転送が使用される。したがって、単一
の150kバイトのウェブページは、インターネットを横断してウェブサーバか
らそのページを表示する各ブラウザに個々に伝送されなければならない。普通の
ウェブサーバが最繁時に10,000人の各ユーザに適度に大きい容量の10ペ
ージを(合計1.5MBのあいだ)伝送する場合、ウェブサーバには、少なくと
も33Mbpsの帯域幅のインターネットへのリンクが必要である。インターネ
ットへのリンクおよびそのリンクを満たすのに十分に高速のウェブサーバは、現
在のところ、ひどく高価であり複雑である。最繁時における100万人以上のユ
ーザに対するサポートは、現在のインターネットテクノロジーでは完全に不可能
である。
現在、ワールド・ワイド・ウェブは、ウェブサイトオペレータがそのサイトの
内容の収益を得るために、2つの方法(広告および予約申込み)をサポートして
いる。広告は代表的にイメージの形態でウェブサイトのウェブページ中に埋込ま
れ、ユーザはそのイメージをクリックすることによって広告主のウェブサイトに
“連結”し、さらに多くの情報を得ることができる。ウェブベースの広告は、ウ
ェブサーバ10が、何人のユーザが所定の広告を見たのかを正確に追跡し、また、
繰り返しユーザについて、そのユーザが見た広告およびこのような広告の数をユ
ーザごとに追跡することができるという点で普通のマルチキャスト広告(たとえ
ば、テレビジョン、ラジオおよび新聞広告)より優れている。
ウェブサイトが申込みによって収益を生む場合、ユーザがそのサイトに“申込
んで”いれば、すなわち、そのサイトにアクセスするための料金の支払に同意し
ていれば、そのウェブサイトの内容だけにアクセスすることができる。ユーザが
サイトへのアクセスを希望するたびに、課金名およびパスワードの提出をユーザ
に要求することによって、ウェブサイトは、料金を支払った申込者だけがサイト
にアクセスできるようにアクセスを制御する。
マルチキャストシステムは、ユーザが共通の内容にアクセスしているときにイ
ンターネットよりはるかに容易に多数のユーザに適応することができる。これは
、所定のデータ項目が受信機の数に関係なくマルチキャストされる(すなわち、
一度しか送られない)ためである。近年、マルチメディア内容を配布するマルチ
キャストネットワークは、静止衛星マルチキャストまたはFM無線サイドバンド
伝送のような広域ネットワークによって使用されている。
いくつかのマルチメディアマルチキャストシステムが理論上提案されており、
これらのシステムは頻繁にアクセスされたURLを個々にマルチキャストするこ
とを含み、これらURLは、過去のヒストリに基づいて受信機に重要であるかも
しれないウェブページだけを受信機がフィルタし、記憶することができるように
するタグを付けられている。これらのシステムの商業的な展開は失敗している。
これは、それらが許可なく内容をコピーしマルチキャストし、それによって恐ら
く著作権法と抵触するためである。さらに、それらは、“オフライン”で(すな
わち、インターネットに接続されているあいだではなく)アクセスされることの
できる一致した内容のセットをユーザに保証せず、ウェブサイトの申込みおよび
広告収益を保護するメカニズムを与えられていない。
商業的に展開されるマルチメディアマルチキャストシステムは、ニュースおよ
び情報を(限られたグラフィックスで)配布するためにFM無線サイドバンドマ
ルチキャストを使用するエア・メディア社のインターネット・アンテナ・システ
ムである。コンピュータ端末は、マルチキャスト情報を受信し、コンピュータの
ハードディスク上にそれを記憶する。この情報は、著作権のあるフォーマットで
マルチキャストされ、ユーザが特殊目的アプリケーションを介して利用できるよ
うにされる。エア・メディアシステムは、部分的にはその非常に遅い速度(たと
えば、19kbps)のFMサイドバンドマルチキャスト伝送システムのために
、注目せずにはいられない内容に欠ける。
別のこのようなシステムは、インテル社のインターキャストシステムであり、
それは情報をマルチキャストするためにNTSCマルチキャスト内で垂直帰線消
去期間を使用して、それが伝送されるテレビジョンチャンネルを“データ強化”
する。垂直帰線消去期間は、普通は限定字幕情報を伝送するために使用されるが
、それもまた低速マルチキャスト(たとえば、30kbps)である。インター
キ
ャストは、エアメディアシステムとは違ってそのデータを標準HTMLフォーマ
ットでマルチキャストする。インターキャストは、ユーザがコンピュータモニタ
上でテレビジョンプログラムを見ると同時に、補足HTMLマルチメディアデー
タにアクセスすることを特殊ハードウェアと共に可能にする、ウェブブラウザに
類似したビューアアプリケーションを提供する。
このようなマルチキャストシステムに関する主要な問題は、マルチキャスト放
送用の良好な内容の利用度である。良好な内容のプロバイダは、とくに、多数の
ユーザがすでにこのような内容を受信することになった後、あるいはマルチキャ
ストシステムオペレータが多額の支払いに同意した場合にのみ、マルチキャスト
システム用に内容を準備する。しかしながら、マルチキャストオペレータは一般
に、システムの内容が良好になるまで多数のユーザを獲得できず、また、多数の
ユーザがこのシステムに加入するまで良好な内容の支払いをするための融資を受
けることができない。この良好な内容/ユーザ数の因果関係の問題が長年にわた
ってマルチメディアマルチキャストシステムの発展を妨げてきた。
多くの場合、新しいマルチキャストシステムは、先在する内容を再利用するこ
とによって始められる。テレビジョンは、たとえば、元来他のメディアのために
作成された内容を再利用することによって“因果関係”の問題を克服した。ラジ
オ番組は、しばしば元の俳優、登場人物、筋、および先在する台本のかなりの部
分を保持して視覚(テレビジョンでの)および聴覚の両方による視聴に変えられ
た。映画、演劇、オペラおよびその他の既存の素材はまた、テレビジョン上でマ
ルチキャストされた。一度テレビジョンがこの先在する内容を使用して確立され
、結果を得るために必要なユーザ数を獲得すると、テレビジョンだけをターゲッ
トにした新しい内容(すなわち、状況喜劇、連続ドラマ、夜のニュース、深夜の
トーク番組、インフォマーシャル等)を作成する余裕がテレビジョンマルチキャ
スタに生まれた。
マルチキャストシステムの発達の成功を妨げてきた別の大きな問題は、受信コ
ンピュータ上におけるマルチキャストデータの処理(受信、フィルタリング、記
憶等)の影響である。従来のマルチキャストシステムは、ユーザは別のアプリケ
ーションを動作するためにマルチキャストアプリケーションをしばしばディスエ
ーブルして、マルチキャストデータの受信が受信コンピュータの性能に悪影響を
与えるために失敗であった。ユーザはマルチキャスト受信機アプリケーションの
保存を忘れ、それによって機能性の完全な損失を誘発することが多かった。コン
ピュータゲームは、コンピュータの全てのリソースを使用するアプリケーション
の典型的な例であり、そのような機能性においてマルチキャストデータの受信お
よび処理による悪影響を受ける。さらに、パーソナルコンピュータのオペレーテ
ィングシステムは一般に、競合する実時間アプリケーション間でリソースを最適
に共用しない。したがって、典型的なパーソナルコンピュータのユーザは、マル
チキャストマルチメディア内容を受信したことによる性能の損失(“動きのぎく
しゃくした(jerky)”ビデオおよびグラフィックス、ならびに反応の鈍いゲーム
制御の少なくとも一方のような)を黙認しない。
エアメディアのようないくつかのマルチキャストシステムにおいて、受信コン
ピュータに対する影響は、マルチキャストリンクの速度が遅いために顕著ではな
かった。しかしながら、高速マルチキャストリンクは、ユーザが利用できる内容
の量および品質を高めるために非常に望ましい。したがって、既存の内容と両立
し、受信コンピュータによって行われる別の処理を妨害しない高速マルチキャス
トシステムが必要とされている。
[発明の概要]
本発明以前には、新しいマルチキャストシステムが直面するユーザ数/良好な
内容の因果関係の問題を解決することができるマルチメディアマルチキャストシ
ステムはなかった。本発明は、ウェブサイトの動作の変更を必要としない方法で
既存のウェブサイトから修正されていない高品質の内容へのアクセスを行うこと
によってこの問題を克服し、また、ウェブサイトの広告および申し込み収益を保
護する。本発明はまた、非常に高品質の内容を提供するために高速リンク(衛星
リンクのような)を使用し、受信コンピュータ内の別のアプリケーションの動作
に対する最小限の影響によりこのような内容をこのような高速リンクから受信す
るいくつかの新しいメカニズムを含んでいる。本発明は、ここにおいて“ディレ
クPC(商標名)ウェブキャスト”または“ウェブキャスト”と呼ばれている。
(ディレクPCは、ヒューズネットワークシステムズ社の登録商標である。)本
出願人の別出願第08/257,670号明細書(1994年6月8日出願)および第08/795,5
05号明細書(1997年2月7日出願)(共に本出願人に権利が譲渡されている)に
は、基本的なディレクPCシステムが記載されており、このシステムは一般にイ
ンターネットから情報を受信する1方向高速リンクを提供するが、マルチキャス
トネットワークを使用しない。
一般に、ウェブキャストは、選択されたウェブサイト内容(“チャンネル”と
呼ぶ)を受信コンピュータのハードディスクにマルチキャストし、ユーザがその
内容を“ハードディスク速度”で利用できるようにするマルチキャストネットワ
ークを含んでいる。以下詳細に説明するように、チャンネルは、ユーザが関心を
持って繰り返しアクセスする可能性のある1組のウェブ内容である。チャンネル
内のウェブ内容は、周期的に更新されることが好ましい。ウェブキャストは、ウ
ェブサイトの動作に対する変更を何等必要とすることなく、広告ベースの収益を
サポートするために十分な使用情報(すなわち、どのような内容がユーザによっ
てアクセスされているか)をウェブサイトに報告する。
本発明はまた、申し込みベースの収益ウェブサイトをサポートする。各受信コ
ンピュータは、利用可能なウェブサイドチャンネルのプロモーションおよび申し
込みをサポートする電子プログラムガイド(EPG)を受信する。EPGは、ユ
ーザが申し込んだチャンネルへの容易なアクセスを可能にし、その他全ての利用
可能なウェブキャストチャンネルのプロモーション材料を提供するため、静的ウ
ェブページによって達成されるものを上回る機能性を提供する。このようなプロ
モーション材料は、ユーザによってそのチャンネルの申込みまたは申込み取消し
がなされるまでEPGのキャッシュされた内容からアクセスされる。この時点で
、ウェブキャストソフトウェアは、マルチキャストネットワーク中の条件付きア
クセスシステムにコンタクトをとり、申込みを開始または終了させるように処理
を行う。条件付きアクセスシステムは随意に、後日ウェブキャストユーザに請求
し、および、またはチャンネルのウェブサイトに報告を返信するためのマルチキ
ャストシステムの請求システムに申込み情報を提供する。
受信コンピュータ内において、ウェブキャストは、記憶された(または“キャ
ッシュされた”)ウェブサイトチャンネル内容を表示するようにウェブブラウザ
を構成する。スタートされたとき、受信コンピュータ上の内容ビューアは、ウェ
ブキャスト内容ビューア内のHTTP代理サーバを介してキャッシュされた内容
にアクセスするようにウェブブラウザを構成する。“キャッシュミス”は、ブラ
ウザがマルチキャストデータのキャッシュに記憶されていないURLをリクエス
トしたときに発生する。キャッシュミスが発生した場合、ウェブキャストソフト
ウェアはユーザに知らせ、通常の(すなわち、ダイヤルアップ)インターネット
アクセスにより内容にアクセスする選択肢をユーザに提供する。ユーザがそうす
ることを選択した場合、ウェブキャストアプリケーションは、インターネットへ
の接続を設定し(必要ならば)、失われた内容を含むインターネットでウェブサ
ーバに内容のリクエストを転送する。このインターネット接続は、ユーザによる
アクションを全く必要とせず、ウェブキャストソフトウェアによって自動的に設
定されるという点において“シームレス”であることが好ましい。ウェブキャス
トはまた時々、適切なウェブサイトに使用情報を送るためにインターネットへの
接続を設定する。
本発明の1つの特徴によると、チャンネルの内容が複数のURLデータ項目を
含み、各URLデータ項目がURLによってアドレス指定される、チャンネルに
編成された内容を送信するシステムおよび方法は、1以上のマルチキャストアド
レスを各チャンネルに割当て、チャンネルの内容のアセンブリングをスケジュー
ルし、チャンネルの内容をアセンブルし、チャンネルの内容をパケットに断片化
し、これにおいて各パケットがチャンネルのマルチキャストアドレスの1つによ
ってアドレス指定され、そのパケットをマルチキャストすることによって構成さ
れている。
本発明の別の特徴によると、チャンネルの内容が複数のURLデータ項目を含
み、各URLデータ項目がURLによってアドレス指定されるチャンネルに編成
された内容を送信するシステムおよび方法は、チャンネルの内容のアセンブリン
グをスケジュールし、チャンネルの内容をアセンブルし、URLデータ項目のサ
ブセットを圧縮し、これにおいて圧縮された各URLデータ項目が別のURLデ
ータ項目を圧縮から復元することなく圧縮から復元されることができるように、
各URLデータ項目が別のURLデータ項目とは無関係に個別に圧縮され、チャ
ンネルの内容をパケットに断片化し、そのパケットをマルチキャストすることに
よって構成されている。本発明は、さらに、チャンネルの内容のベースパケット
をアセンブルしてもよく、ここにおいてベースパッケージは各URLデータ項目
をチャンネル中に含み、チャンネルの内容のデルタパッケージをアセンブルして
もよく、ここにおいてデルタパッケージは、ベースパッケージの前のアセンブリ
ングから変化した、あるいは新しくなっているURLデータ項目を含んでいる。
本発明のさらに別の特徴によると、チャンネルの内容が複数のURLデータ項
目を含み、各URLデータ項目がURLによってアドレス指定されるチャンネル
に編成された内容を送信するシステムおよび方法は、チャンネルの内容のアセン
ブリングをスケジュールし、スケジュールにしたがってチャンネルの内容をアセ
ンブルし、チャンネルの内容をパケットに断片化し、そのパケットを複数の受信
機にマルチキャストし、ここにおいて各受信機は受信されたチャンネルの内容を
受信機メモリに記憶し、各受信機から使用報告を受信し、ここにおいて各使用報
告は、受信機メモリからアクセスされた記憶されたURLデータ項目からURL
データ項目のサブセットを識別することによって構成されている。
本発明の別の特徴によると、チャンネルの内容が複数のURLデータ項目を含
み、各URLデータ項目がURLによってアドレス指定され、また、マルチキャ
ストネットワークがチャンネルの内容を受信機にパケットで送信するチャンネル
に編成された内容をマルチキャストネットワークから受信するための受信機は、
チャンネルのパケットを伝送するために使用されるマルチキャストアドレスを決
定し、チャンネルのマルチキャストアドレスを含むパケットの受信をエネーブル
し、チャンネルのマルチキャストアドレスを含むパケットを受信し、チャンネル
の内容に受信されたパケットをアセンブルし、チャンネルの内容を記憶し、ユー
ザが記憶されたチャンネルの内容にアクセスすることを可能にする。受信機は、
さらに、ユーザがURLデータ項目にアクセスした時点で記憶されたチヤンネル
内容中の圧縮された各URLデータ項目を圧縮から個々に復元する。
本発明のさらに別の特徴によると、マルチキャストシステムにおける受信機は
、マルチキャストネットワークからURLデータ項目を受信し、受信されたUR
Lデータ項目を記憶し、ユーザが記憶されたURLデータ項目にアクセスするこ
と
を可能にし、記憶されたURLデータ項目へのユーザアクセスを追跡する。受信
機は、さらに、ユーザによってアクセスされることをリクエストされたURLデ
ータ項目が記憶されたURLデータ項目内に何時存在しないかを決定し、リクエ
ストされたURLデータ項目が記憶されていないことをユーザに通知し、ユーザ
がインターネットのようなTCP/IPネットワークへの接続(ダイヤルアップ
モデムのような)を介して記憶されていないURLデータ項目にアクセスするこ
とを可能にする。
本発明のさらに別の特徴によると、マルチキャストシステムにおける受信機は
、受信機アクティビティを監視し、マルチキャストネットワークから内容を選択
的に受信し、ここにおいてその内容は監視された受信機アクティビティに基づい
て選択的に受信される。受信機は、たとえばパーソナルコンピュータでもよく、
監視されるアクティビティは、その受信機上で動作する別のアプリケーション/
プログラム、ディスク/メモリ利用、およびユーザ入力(キーストロークまたは
マウスクリック)を含んでいてもよい。受信機は、さらに、受信が監視されてい
るアクティビティを妨害しないように、監視されているアクティビティが終了す
るまで内容の受信を中断してもよい。
本発明の別の特徴によると、マルチキャストシステムにおける受信機は、マル
チキャストネットワークからURLデータ項目を含むパケットを受信し、この受
信されたパケットをURLデータ項目のセットを含むチャンネルにアセンブルす
るパッケージ受信機と、チャンネルを記憶するメモリと、記憶されたチャンネル
中のURLデータ項目へのアクセスをユーザがリクエストすることを可能にする
内容ビューアとを含んでいる。
本発明のさらに別の特徴によると、URLデータ項目をウェブサイトから複数
の受信機にマルチキャストするシステムは、URLデータ項目をウェブサイトか
ら検索して、検索されたURLデータ項目をパッケージにフォーマット化するウ
ェブクローラと、ウェブクローラからパッケージを受信し、このパッケージをパ
ケットに断片化し、パケットをマルチキャストネットワークに送信するパッケー
ジデリバリサブシステムと、どの受信機がパケットの受信を許可されているかを
決定する条件付きアクセスシステムとを含んでおり、ここにおいてマルチキャス
トネットワークが許可された受信機だけにパケットをマルチキャストする。
本発明のさらに別の特徴によると、チャンネルの内容が少なくとも1つのウェ
ブサイトからの複数のURLデータ項目を含む、チャンネルに編成された内容を
複数の受信機にマルチキャストするシステムは、ウェブサイトからTCP/IP
ネットワークを介してURLデータ項目を検索して、検索されたURLデータ項
目をパッケージにフォーマット化するウェブクローラと、ウェブクローラからパ
ッケージを受信し、このパッケージをパケットに断片化するパッケージデリバリ
サブシステムと、どの受信機がパケットの受信を許可されているかを決定する条
件付きアクセスシステムと、パケットをパッケージデリバリサブシステムから受
信するマルチキャストネットワークとを含んでいる。条件付きアクセスシステム
はパケットを暗号化し、マルチキャストネットワークは、許可された受信機に暗
号化されたパケットをマルチキャストし、それにおいて許可された受信機がパケ
ットをメモリに記憶し、パケットを解読する。
[図面の簡単な説明]
図1は、インターネットからの情報にアクセスするための従来技術の方法の簡
単なブロック図である。
図2は、本発明のマルチキャストシステムのブロック図である。
図3は、図2のマルチキャストシステムのバックエンドサブシステムのブロッ
ク図である。
図4は、アクティブなウェブサイト内容を収集するために図3のウェブクロー
ラによって使用されるプロセスのブロック図である。
図5は、図3のバックエンドサブシステムのパッケージデリバリサブシステム
によって行われるステップを示すフローチャートである。
図6は、チャンネルに必要な最大メモリスペースとパッケージ放送スケジュー
ルとをユーザに知らせるために使用されることのできる電子プログラムガイド(
EPG)の例示的なウインドウである。
図7は、ユーザが利用可能なチャンネルの内容の試写を見ることを可能とし、
ユーザがそのチャンネルを申込む、あるいは申込みを取消すことを可能にする電
子プログラムガイド(EPG)の例示的なウインドウである。
図8は、“キャッシュミス”が発生した場合に図2の受信機の内容ビューアに
よって行われるステップを示すフローチャートである。
図9は、キャッシュミスをユーザに知らせ、インターネットへの接続が設定さ
れるべきか否かをユーザに質問するために内容ビューアによって生成された対話
ボックスの一例である。
図10は、本発明の使用報告機能を示すブロック図である。
図11は、使用情報を報告するために図7の内容ビューアによって行われるス
テップを示すフローチャートである。
図12は、使用情報を報告するためにインターネットに接続する許可をユーザ
に求めるための内容ビューアによって生成された対話ボックスの一例である。
[詳細な説明]
[ウェブキャストチャンネル]
本発明は、ユーザが興味を持って繰り返しアクセスする可能性のある1組のU
RLデータ項目である“チャンネル”に送信するURLデータ項目を編成する。
チャンネルは一般に、ウェブクローラによってウェブサイトから周期的に抽出さ
れ、条件付きアクセス保護されたマルチキャストファイル転送によって申込んだ
ユーザに配布されるべきウェブサイトの内容のサブセット(すなわち、1組のウ
ェブページ)である。したがって、チャンネルの内容は、代表的に単一のウェブ
サイトからの全てのURLデータ項目を収集したものから構成されている。チャ
ンネルの内容は、周期的に更新されることが好ましい。代表的なチャンネルは、
たとえば3,000個の異なったURLデータ項目の内容を含んでいてもよい。
www.direcpc.comまたはwww.hns.comのような任意のウェブサイト、www.abcnews.
comのような一般的な新しいウェブサイト、あるいはquicken.excite.comのよう
な投資ニュースサイトがこれらの例に含まれてもよい。
ユーザは、関心のあるウェブキャストチャンネルを申込み、申込まれたチャン
ネルだけがユーザの受信端末で受信されて記憶される。チャンネルの内容および
マルチキャストスケジュールは、ウェブキャストチャンネル定義によって特定さ
れる。各チャンネルのチャンネル定義は予め定められている。しかしながら、ウ
ェブキャストは、チャンネル定義の変更を可能にしてもよい。各チャンネル定義
は、少なくとも以下のものを含んでいる:
(1)各ストランドが開始アドレス(URL)およびサーチの深さを含んでい
るウェブストランドのリスト。各ウェブページは別のページへのリンクを含んで
いてもよいため、サーチの深さとは、元のページで検索され記憶されるリンクの
数のことである。好ましい実施形態において、サーチの深さは、元のウェブペー
ジから2“レベル”に設定されている。すなわち、チャンネルは、元のウェブペ
ージと、元のページから離れた2つのハイパーテキストリンク(すなわち、2つ
のマウスクリック)であるその他全てのページとを含む。しかしながら、サーチ
の深さは、そのチャンネルに含まれる最適のウェブサイトとして任意の数のレベ
ルに設定されてよい。
(2)どのURLがチャンネルに含まれ、あるいはそのチャンネルから排除さ
れるかを示すフィルタセットのリスト。別のフィルタセットはまた、URLデー
タ項目が存在するならば、それが送信される前にどのように圧縮されるかを識別
してもよい。さらに別のフィルタセットは、以下詳細に説明するように各URL
に割当てられるべき“ヒット・トラッキング”属性を定義してもよい。ウェブク
ローラは、各開始URLでスタートし、フィルタをパスした全てのリンクを特定
されたサーチの深さまで探索する。
(3)チャンネルの内容がマルチキャストネットワークによってパッケージさ
れ、各ユーザにマルチキャストされる頻度および方法を特定するスケジュール。
[システムコンポーネント]
図2を参照すると、本発明のウェブキャストシステム20は、1以上のマルチキ
ャストネットワーク24(リンクC)と通信するバックエンドサブシステム22から
構成されている。このバックエンドサブシステム22は、インターネット14(リン
クA,B)のようなTCP/IPインターネットワークを介して複数のウェブサ
イト18(ここから内容が収集される)に接続されている。マルチキャストネット
ワーク24は、衛星またはその他の高速(200kbpsを越える)リンクのよう
な高速リンク(F)によってウェブサイト18から検索された情報を複数の受信機
26にマルチキャストする。各受信機26は、たとえばユーザの家庭または会社にあ
るパーソナルコンピュータであってもよい。しかしながら、受信機26はまた、セ
ット・トップボックス、デジタルテレビジョン、またはインターネット内容を受
信できるその他のデバイスを含んでいてもよい。各受信機26はまた、たとえばダ
イヤルアップモデム、ISDN、2方向ケーブルまたはリンクであってもよい低
速リンク(D)によってインターネット14に接続されていることが好ましい。さ
らに、本発明は、イントラネットのような、インターネット以外の他のTCP/
IPネットワークにより構成されることが可能である。
以下には、ウェブキャストシステムコンポーネントの基本機能が説明され、図
2に種々のデータ流通路が示されている。しかしながら、説明される機能は、特
定のシステム構成に応じてシステムのコンポーネントにおける位置を変えてもよ
いことが理解される。
[バックエンドサブシステム機能]
バックエンドサブシステム22(一般にコンピュータまたはネットワークコンピ
ュータのセットを含んでいる)は、少なくとも次の機能を行う:
(1)ウェブサイト18からインターネット14または私設TCP/IPネットワ
ークまたはイントラネット(リンクAおよびB)を介してURLデータ項目を収
集し、これをパッケージにアセンブルする。
(2)大きい(すなわち、マルチメガバイトの多重倍)パッケージ(ウェブサ
イト18からのURLデータ項目を含んでいる)を適切なパケットのシーケンスに
断片化し、パケットをマルチキャストネットワーク24(リンクC)に送る。
(3)受信機26(リンクDおよびA)からの使用報告を随意に処理し、使用報
告をウェブサイト18(リンクAおよびB)に戻す。
(4)受信機26(リンクDおよびA)からのチャンネル申込みおよび申込み取
消しリクエストを随意に処理し、このようなリクエストをウェブサイト18(リン
クAおよびB)に随意に転送する。
(5)ウェブキャストチャンネルに対して条件付きアクセスを随意に行う。条
件付きアクセスは、通常、マルチキャストネットワーク24中の条件付きアクセス
システム25によって行われるが、マルチキャストネットワークがこの条件付きア
クセスシステムを含んでいない場合、あるいはマルチキャストネットワークの条
件付きアクセスシステムの使用が望ましくない場合には、バックエンドサブシス
テム22によって実施されることができる。
[マルチキャストネットワーク機能]
マルチキャストネットワーク24は、少なくとも次の機能を行う:
(1)バックエンドサブシステム22(リンクC)からパケットを受信し、また
、その他の任意の放送ソース27(リンクE)からのデータ(デジタルビデオ、オ
ーディオ音声のような)と共にパケットを随意に多重化する。
(2)高速リンク(リンクF)によってパケットを受信機26にマルチキャスト
する。
(3)申込んだ受信機だけがチャンネルのパッケージを受信することを確実に
するために条件付きアクセスシステム25によって条件付きアクセスを随意に行う
。
(4)受信機26からバックエンドサブシステム22への帰路を随意に設けて、利
用報告を可能にする。
(5)受信機26からのチャンネル申込みおよび申込み取消しリクエストを随意
に処理する。
(6)インターネットアクセスを随意に行い、受信機がインターネットからの
“キャッシュミス”にアクセスすることを可能にする。
[受信機機能]
各受信機26は、少なくとも次の機能を行う:
(1)適切なアドレスの受信を可能にするためにマルチキャストシステム24と
対話する。
(2)マルチキャストネットワーク24(リンクF)から受信されたパケットを
処理する。
(3)受信されたパケットからウェブキャストチャンネルパッケージを再アセ
ンブルし、それぞれファイルとしてメモリ(たとえば、ハードディスク)28に記
憶する。
(4)マルチキャストパッケージが受信され処理されるときに受信機上で実行
している別のアプリケーションに対する影響を最小限にするためにメモリ28の中
のスペースを管理し、受信機のリソースの使用を管理する。
(5)ユーザがどのウェブキャストチャンネルを申込むべきかを決定すること
を手助けするプロモーション材料をユーザに提供する(すなわち、EPGによっ
て)。
(6)マルチキャストネットワーク24(または随意にバックエンドサブシステ
ム22)にチャンネル申込みまたは申込み取消しリクエストを提供する。
(7)マルチキャストネットワークによってバックエンドサブシステム22に使
用情報を報告する。
(8)マルチキャストネットワークが条件付きアクセスを行っておらず、条件
付きアクセスが所望されている場合には、受信されたパッケージを随意に解読す
る。
(9)バックエンドサブシステム(マルチキャストネットワークではなく)が
条件付きアクセスを行っている場合に、条件付きアクセスのキー材料を得るため
にバックエンドサブシステム22と対話する。
[バックエンドサブシステムコンポーネント]
図3を参照すると、バックエンドサブシステム22は、(1)1以上のウェブク
ローラ30、および(2)パッケージデリバリサブシステム36の2つの主要なコン
ポーネントを含んでいる。各ウェブクローラ30は一般に、予め定められたチャン
ネル定義32にしたがってウェブサイト18からチャンネルにアクセスするコンピュ
ータである。ウェブクローラ30はTelePort ProおよびWeb Wackerのような入手可
能なウェブクローラに類似している。商用のウェブクローラとの主な相違は、商
用のウェブクローラが各URLデータ項目をファイルとしてディスクに記憶し、
DirecPC WebCastウェブクローラ30がURLデータ項目をパッケージにフォーマ
ット化する(以下参照)ことである。以下に詳細に説明するように、ウェブクロ
ーラ30は、ウェブサイト18からURLデータ項目を収集する。URLデータ項目
は、チャンネル定義の中のURL、およびサーチの深さに基づいてリストされた
URLに“リンク”されたその他のURLのリストから収集される。その後、ウ
ェブクローラ30は、収集されたURLデータ項目をパッケージ34にフォーマット
化し(以下詳細に説明するように)、パッケージ34をパツケージデリバリサブシ
ステム36に依頼する。
パッケージデリバリサブシステム36は、ウェブクローラ30からパッケージ34を
受け取って、パッケージ34を適切なシーケンスのマルチキャストパケット38に断
片化し、これらが受信機26へのマルチキャスト送信のためにマルチキャストネッ
トワーク24に供給される。
バックエンドサブシステム22はまた、受信機26から使用報告42を受取る1以上
のキャッシュ・ヒット・トラッカー40を随意に含んでいる。使用報告は、ウェブ
サイト18に周期的に伝送されるヒットログファイル44として記憶されてもよい。
(以下、本発明の使用報告機能を詳細に説明する。)
バックエンドサブシステム22はまた、登録サーバ46(オートコミッショニング
サーバと呼んでもよい)を随意に含んでいる。登録サーバ46は、ウェブキャスト
チャンネルを申込むのにユーザにとって都合のよい方法を提供し、またパッケー
ジデリバリエンベロープと、申込みおよび取り消された申込みを追跡する申込み
請求(billing)記録48を生成する。(以下、本発明の申込み機能もまた詳細に説
明する。)
[ウェブクローリング]
上述したように、バックエンドサブシステム22は、チャンネルの内容をパッケ
ージし、マルチキャストネットワーク24を介して受信機26にマルチキャスト送信
するためにそれをパッケージデリバリサブシステム36に依頼する1以上のウェブ
クローラ30を含む。ウェブクローラ30が種々のウェブサイト18から内容を収集す
るプロセスは、一般に“クローリング”と呼ばれている。ウェブクローラ30は、
ウェブサイトを周期的におよび、またはスケジュールにしたがってクロールする
ことが好ましい。ウェブクローラ30は、コンピュータ“ストリーム”または“フ
ラット”ファイル(大部分のパーソナルコンピュータのファイルシステムによっ
て使用されている)として記憶され、転送されることが好ましい単一のデータ構
造中にチャンネルの内容をフォーマット化する。チャンネル内容を含んでいるフ
ァイルは、パッケージ34と呼ばれる。
ウェブクローラ30は、バックエンドサブシステム22中において、いくつかの場
合にウェブクローリングを管理する努力を最小にするパッケージデリバリサブシ
ステム36の近くに配置されてもよい。その代りに、ウェブクローラ30は、それが
クローリングしているウェブサイトの近くに、たとえば、ウェブサイトのサーバ
と同じ構内ネットワーク上に配置されてもよい。この構成によって、圧縮された
パッケージだけ(全てのチャンネル内容ではなく)が広域ネットワークを横断し
て送られるため、広域ネットワークを横切るトラフィックの量が減少する。
ウェブクローラ30は一般に、パッケージに含まれるURLの使用済みリストを
受け取らない。その代りに、このウェブクローラは、チャンネル中に含まれるべ
きURLデータ項目のURLアドレスのリストを含んでいるチャンネル定義32(
ウェブクローラ中に位置してもよいし、あるいはクローラによって外部サーバか
ら検索されてもよい)を受け取る。チャンネル定義32における各開始URLアド
レスに対して、ウェブクローラ30は、クロールされることとなるURLアドレス
のリストを生成し、それには最初開始アドレスだけが含まれている。ウェブクロ
ーラ30は、リストが空になるまで、各URLデータ項目を繰り返し検索してその
リストからURLアドレスを除去する。このウェブクローラは、チャンネルをク
ロールするのに必要とされる時間を短くするためにこのような検索を並列に多数
行ってもよい。
ウェブクローラ30は、検索された各URLデータ項目のこれらのリンクされた
データ項目の内容を解析して、それが別のURLデータ項目への“リンク”を含
んでいるか否かを決定する。一般に、HTMLページだけがリンクを含んでいる
。そうである場合、付加的なURLデータ項目がチャンネル定義フィルタに合格
すれば、クロールされるべきURLアドレスのリストにそのURLアドレスが追
加される。リストに追加されたURLは、フレーム、埋め込まれたグラフィック
ス、java appletクラス、およびそのページの外部の別のURLへの参照(“リ
ンク”とも呼ばれる)を含んでいてもよい。フレームは、埋め込まれたHTML
ページと考えることができる。フレーム、埋め込まれたグラフィックス、java a
ppletクラス、およびフレーム内に埋め込まれたグラフィックスは、ウェブペー
ジの一部分と考えることができ、その“レベル”または“深さ”はそれらを参照
したHTMLと同じである。解析にしたがってページから“リンク”されたUR
Lは、それらを参照したページより“深い”(すなわち、開始アドレスからさら
に遠く離れた)1つのレベルとみなされる。URLのクロールの深さは、“クロ
ール”されるべきURLのリスト上にURLアドレス自身と共に記憶される。U
RLは、
チャンネル定義フィルタをパスし、その深さがその開始アドレスと関連したサー
チの深さを越えず、また、URLが以前そのリストに入れられたことがない場合
にのみ、クロールされるべきURLのリストに配置される。
URLに対するリクエストへのウェブサーバの応答は、別のURL(しばしば
異なったウェブサーバ上の)にそのリクエストを“再度指令すること”によって
行われることが多い。結局、検索されることとなるURLの深さは、このように
再度指令することでは増加しない。ウェブクローラ30は、チャンネルの内容のセ
ット全体を収集し、ここでは“ベース”パッケージと呼んでいるパッケージ34中
にそれを配置するようにプログラムされることができる。ベースパッケージを生
成するためのウェブクローリングは、ここでは、“ベースクロール”と呼ばれて
いる。しかしながら、チャンネルの内容は、ウェブサイトオペレータによって頻
繁に更新される可能性があり、更新は予測不能に生じる可能性があり、またウェ
ブサイトの内容の更新された一致した表示をウェブキャストユーザに提供するこ
とが重要である。したがって、一度ベースパッケージが生成されると、ウェブク
ローラ30は、ベースクロールが発生したために変化したURLデータ項目だけを
含むパッケージを生成するようにスケジュールされることができる。変化または
変更された内容だけを含むパッケージは、ここでは“デルタ”パッケージと呼ば
れる。デルタパッケージを生成するためのウェブクローリングは、ここでは“デ
ルタクロール”と呼ばれている。
URLデータ項目を検索した時、ウェブクローラは、ウェブクローラによって
生成されているパッケージ内にURLデータ項目を含んでいるか否か、およびど
のように含んでいるかを決定する。この決定は、(1)種々のフィルタ設定、(
2)ベースパッケージまたはデルタパッケージのいずれがクロールされているか
、および(3)デルタパッケージがクロールされている場合、URLデータ項目
がチャンネルのベースパッケージに存在するか否か、また、そうであるならば、
URLデータ項目が変化したか否かに依存する。
ベースパッケージがクロールされている場合、URLは、フィルタをパスした
場合にパッケージ中に含まれる。デルタパッケージがクロールされている場合に
は、URLはそれがフィルタをパスし、また、それがベースパッケージ中に存在
せず、かつベースパッケージ中のバージョン後に変化した場合にそのパッケージ
に含まれる。URLが変化したか否かは、実際に内容を比較するか、あるいはウ
ェブサーバによって提供された“最後に修正された”フィールドをチェックする
ことによって決定されることができる。いくつかのサイトに対して、“最後に修
正された”フィールドはあてにできないため、実際にデータを比較する必要があ
る。その代り、ウェブクローラ30は、データ項目と関連した検査合計またはメッ
セージダイジェストを比較することによって、URLデータ項目が変化したか否
かを決定できる。
クローリングは、一般に、それがウェブサイトの生成や動作への変化を何等必
要としないため、チャンネルのURLを得るのに好ましいメカニズムである。こ
れは、上述したユーザの数/良好な内容という“因果関係の問題”を克服すると
きに非常に重要である。しかしながら、クローリングは、各クロールに関して各
URLが別個にチェックされなければならないため、ネットワーキングおよびウ
ェブサーバリソースを無駄にする可能性がある。このデータ流は、30分ごとに
クロールされる40MBのベースパッケージ(圧縮されていない)に対して、8
0kbpsを越える。
したがって、URLの“最後に修正された”日付を正しく設定したウェブサイ
トに対して、本発明は、HTTP“Get If Modified Since”リクエストにより
URLをリクエストすることによって処理時間を減少させる。ウェブキャストで
の申込みに利用できるウェブサイトは、どのURLがそのチャンネルに含まれる
か、およびURLが何時変化したかの両者を正確に示すそれら自身のチャンネル
定義を生成する。このようなチャンネル定義は、チャンネルに含まれることとな
る全てのURLと、およびそれぞれが最後に修正された時を単にリストにしても
よい。このようなチャンネル定義により、ウェブクローラは、検索されたURL
およびそれらの修正日を記憶することによって、新しいURL、または前のクロ
ール後に変化したURLを収集するだけでよい。これによって、そのチャンネル
の内容に対するウェブサイトの制御が最大になり、一方内容を収集するために必
要とされるウェブサーバおよびネットワーキングリソースが最小になる。
動的なウェブサイト内容により、チャンネルに必要とされる全てのURLを収
集するのにHTMLの簡単な解析では不十分であるというウェブキャストクロー
リングに特有の問題が生じる。動的な内容の一例は、スタートされたときに1組
のスポーッスコアを検索して表示するスポーツスコアJava Appletである。スコ
アを含んでいるURLはHTMLによって参照されず、通常ウェブクローラによ
って収集されない。データは、Java Appletをアクティブに動作することによっ
てのみ収集されることができる。
この欠点を克服するために、チャンネル定義は、その内容がJava-capableブラ
ウザによって収集されたページのリストを提供する。図4を参照すると、ウェブ
クローラ30は、ウェブクローラを代理サーバとして使用するためにJava-capable
ブラウザ50を構成し、動的内容(データ流A)で構成されたページを表示するよ
うにこのブラウザ50に対して命令する。ブラウザ50は、代理サーバ(データ流B
)として動作しているウェブクローラ30を介してウェブサーバ10からアクティブ
な内容を収集する。ウェブクローラを代理サーバとして使用するためにプラウザ
50を構成することにより、ウェブクローラは、アクティブな内容(データ流C)
を含んでいるブラウザによりアクセスされたURLを監視し記録することが可能
になる。
[圧縮]
上述のように、ウェブクローラ30は、チャンネルに対するURLデータ項目を
収集し、それらをパッケージ34中に配置する。各パッケージは、(1)1組のU
RLデータ項目、(2)URLデータ項目への迅速なアクセスを可能にするため
の、ハッシュテーブルのようなインデックス情報、ならびに(3)パッケージに
よって含まれているURLデータ項目のセットを識別する種々の補足情報および
その内容の使用法をガイドするための他の情報を含んでいる。ウェブクローラ30
は、各URLデータ項目を個々に圧縮するために、1977年にLiv and Zempel
によって作成されたもの(LZ77)のような無損失圧縮アルゴリズムまたは他
のアルゴリズムを使用する。[別の無損失圧縮アルゴリズムは、本出願人に譲渡
された本出願人の別出願08/982,864明細書(“Data Compression For Use With
A Communications Channel”,filed on December 2,1997)に記載されている。
]圧縮されることのできるURLデータ項目は、(パッケージ全体を圧縮するの
で
はなく)パッケージ34中に配置される前に個々に圧縮される(また、圧縮された
ものとしてフラグで示される)。
多数の場合、ベースクロールとデルタクロールの時の間に変化したURLデー
タ項目は部分的に変わったに過ぎない。たとえば、多数のウェブサイトは、ペー
ジがサービスされるたびにHTMLベージ中に埋め込まれた広告を変える。この
ような場合、1つのクロールから次のクロールへ、広告のURLデータ項目を含
む数個の文字だけが変更される。別の場合には、ウェブページの大きい部分は、
一致した外観およびスタイルをウェブページに提供する“ボイラープレート(反
復使用語句)”から構成されている。このようなウェブページ内の実際の内容が
完全に変更された場合でさえ、そのページのごく少数の文字しか変わらない。こ
れを考慮すると、ここにおいて“差圧縮”と呼ばれるものをウェブクローラ30が
実施した場合に、デルタパッケージのサイズが最小にされることができる。
差圧縮により、ウェブクローラ30は、データパッケージ中に含まれるURLデ
ータ項目をベースパッケージ中の対応したURLデータ項目(もし、存在するな
らば)と比較する。ウェブクローラ30は、デルタパッケージのURLデータ項目
をデータのセクションに分割し、各セクションに対して、次の(1)ベースパッ
ケージのURLデータ項目への参照、または(2)デルタパッケージのURLデ
ータ項目からのデータのセクションのいずれかをURLデータ項目の圧縮された
バージョン中に配置する:
(1)ベースパッケージのURLデータ項目への参照は、データのこのセクシ
ョンがベースパッケージのURLデータ項目とデルタパッケージのURLデータ
項目の両方において全く同じに現れるため、それが見出されることができる場合
である。一般に、この参照はデータ自身よりはるかに小さく、それによって固有
に圧縮を行なう。参照の一例は、URLの始めから最初のバイトまでのオフセッ
トおよび最後のバイトに対するオフセットである。その代り、別のさらに複雑で
あるがもっとコンパクトなメカニズムが参照を符号化するために使用されてもよ
い;
(2)デルタパッケージのURLデータ項目からのデータのセクションは、何
等圧縮を行わないが、デルタパッケージのURLデータ項目がベースパッケージ
のURLデータ項目および差圧縮URLデータ項目から修正されることなく確実
に再度組立てられることができるようにするために存在している。その後、差圧
縮URLデータ項目は、デルタパッケージ中に配置される前に、LZ77のよう
な無損失データ圧縮アルゴリズムにより随意に圧縮されることができる。
チャンネル定義フィルタは、パッケージに含まれているURLデータ項目が圧
縮されるべきか否かを示し、そして、そうであるならば、使用される圧縮アルゴ
リズムを示す。デルタパッケージについて、チャンネル定義フィルタはまた、差
圧縮がデルタパッケージに含まれるべきURLに適用されるべきか否か(および
差を決定するために使用されるべきアルゴリズム)を特定する。
表1は、ベース/デルタパッケージの有効性、URLデータ項目の個々の圧縮
、および差圧縮を示すウェブキャストチャンネルからの例を表している。
結果的に得られた圧縮率(すなわち、ほぼ14対1)は、一般にこのようなパ
ッケージに関して2.5対1を越えない通常の無損失データ圧縮アルゴリズムを
直接適用することによって達成可能な圧縮率よりはるかに高い。したがって、デ
ルタパッケージをベースパッケージと組合せて使用することにより、ウェブサイ
トで受信機を“最新”に維持するために必要とされる帯域幅の量は、ウェブサイ
トの内容の全セットを繰り返しマルチキャストするのに比較して大幅に減少され
る。本発明はまた、ウェブサイトの内容の一致したスナップショットを常に提供
するという目的を保持しながら、これを達成する。
本発明はまた、デルタパッケージのデルタパッケージを使用してもよい。たと
えば、スポーツウェブサイトのゲームのスコアは、ウェブサイトに対してこれ以
外何ら変更されずに頻繁に更新されてもよい。このような場合、URLデータ項
目だけが1つのクロールから次のクロールへのスコア変更を含んでいる。したが
って、デルタパッケージは、それが前のデルタパッケージからの差(すなわち、
新しいスコア)だけを含むように生成され、差圧縮されてもよい。さらに、デル
タパッケージのデルタパッケージを使用することにより、送信されなければなら
ないデータ量が減少される。
[パッケージ化および圧縮の利点]
本発明にしたがってウェブサイト内容をチャンネルおよびパッケージに編成す
ることにより、受信機26上のアクティブな別のアプリケーションの機能にマルチ
キャスト受信が及ぼす影響を減少するという大きい利点および利益が得られる。
たとえば、高速アクセス用の組込み指標を有する単一のファイルとして各パッケ
ージ34を編成することにより、受信機16が内容をユーザに表示する前にそれに関
して行わなければならない処理が最小になる。別の例は、各URLデータ項目を
別個のファイルとして(既存のブラウザキャッシュにより一般的に行われている
ように)記憶するものであるが、これには、URLデータ項目を個々のファイル
に分割し、廃物ファイルを削除するのに膨大な処理(および付加的なメモリ/デ
ィスクスペース)が必要である。多くのウェブチャンネルは、3000個を越え
るURLを含んでいる可能性があり、この処理(すなわち、3000個の別々の
ファイルの)には数分以上を要する可能性がある。さらに、内容が受信された(
その時点で発生した他のいずれの処理を遮断して)後や、あるいはユーザが最初
にこの内容にアクセスした(このプロセスが発生しているあいだユーザが待機す
る必要性を生じさせて)時のいずれで、この処理が行われなければならない。さ
らに、単一のファイル中に全てのURLデータ項目を保存することにより、各U
RLに対するファイルを開閉するオーバーヘッドを除去することによって内容を
表示するのに必要とされる処理が減少する。
各URLデータ項目を個々に圧縮する(パッケージを全体的に圧縮するのでは
なく)ことはまた、受信機16がパッケージの内容を表示する前に行わなければな
らない処理を減少させる。パッケージの圧縮を全体的に復元するには、上述した
ように、受信時(その時点で発生した全ての処理が遮断される)や、あるいはユ
ーザが最初にパッケージの内容にアクセスした時(ユーザに待機することを強制
する)のいずれにおいても多くの処理が必要とされる。また、パッケージ全体の
圧縮では、パッケージ全体の内容が圧縮を復元された形態で記憶されなければな
らないため、もっと多くのメモリまたはディスクスペースが使用される。各UR
Lデータ項目の圧縮を、必要とされているように個々に復元することにより、デ
ータ項目は、圧縮された形態で記憶される(メモリスペースを減少させる)こと
が可能になる。また、ユーザによって実際にアクセスされるデータ項目の圧縮だ
けが復元され、それによって全体的な処理時間が短縮される。また、URLデー
タ項目の圧縮復元は、ユーザが受信機に対して内容を表示するように命じた時に
行われるため、この圧縮復元には、受信機リソースの使用を必要とする他のアプ
リケーションを遮断してしまう恐れがない。
さらに、デルタパッケージおよびベースパッケージを使用することによって、
受信機16がアイドル状態であると予想できる期間(たとえば、深夜)中にベース
パッケージが受信され、一方もっと小さいデルタパッケージが一日をとおして受
信されることができるようにスケジュールを組むことが可能になる。それによっ
て、受信機の電源をオフにすることが可能になり、あるいは受信機が別の処理専
用に使用されている期間中パッケージ受信を中断、打切り、または終了でき、か
つパッケージ受信がエネーブルされた後、依然として受信機は迅速に“最新”の
状態にされることができる。本発明はまた、ユーザが内容の完全で一致したバー
ジョンを提供されることを確実にする。したかって、本発明は、ユーザがシステ
ムを使用しないように、あるいは受信機をオフにすることによって偶発的に受信
を終了しないように受信機を連続的に動作することを要求されることが多かった
他のマルチキャストシステムにまさる顕著な利点を提供する。デルタおよびベー
スパッケージ送信により、とくにベースパッケージが夜間または活動停止期間中
に送信される場合に、ユーザはピーク使用時間中に受信機の電源を切断でき、あ
るいはパッケージ受信を中断でき、しかもパッケージ受信が再開されたとき、依
然として受信機が迅速に最新の状態にされることができる。
とくに差圧縮でのデルタパッケージの使用では、受信機を最新の状態に維持す
るために受信され処理されなければならないデータが少なくなるため、送信量が
はるかに少なくなる。この結果、帯域幅要求が低くなり、デルタパッケージが受
信された時の受信機に対する影響を小さくする。
さらに、ユーザが申込んだチャンネル中に内容を編成し、単一ファイルパッケ
ージ中に内容を編成することにより、ユーザにとって興味のない内容をフィルタ
処理で取り除くことで受信機処理がほとんど無駄にならない、非常に効率的なマ
ルチキャストファイル転送プロトコルによってこの内容が送信されることが可能
になる。また、それによって送信の予定を立てることが可能になるため、ユーザ
は彼等が所望した内容を受信するために受信を何時エネーブルしなければならな
いか決定することができる。
本発明の好ましい実施形態では、各ベースおよびデルタパッケージが単一ファ
イルとして記憶されるが、各パッケージを少数のファイルに記憶する(すなわち
ファイルの数がパッケージ中のURLの数より少ない)ことによって、上述した
多数の利点がさらに達成され、またいくつかのマルチキャストネットワーク内で
はそれが望ましいことがある。さらに、上述の多数の利点は、受信機内でインデ
ックス情報を単一(または少数)のファイルから生成することでも実現される。
[マルチキャストネットワークコンポーネント]
再び図2を参照すると、いくつかのコンポーネントがマルチキャストネットワ
ークの特定の実施形態に応じて変わる可能性があるが、一般的には、マルチキャ
ストネットワーク24には、次のコンポーネントが含まれる:
(1)ヘッドエンドサブシステム52。これは、(a)バックエンドサブシス
テム12(リンクC)からパケットをとり、そのパケットを受信機26(リンクF)
にマルチキャストし、(b)バックエンドサブシステム12のパケットを、別の放
送ソース27(リンクE)からのデータ(すなわち、デジタルビデオ、オーディオ
など)と随意に多重化し、結果的に得られたデータ流を受信機26にマルチキャス
トすることができる。
(2)マルチキャスト受信機54。これは、リクエストされたチャンネルから
受信機26(リンクF)にマルチキャストパケットを供給するように応答すること
ができる。その代りに、このマルチキャスト受信機は、受信周辺装置および関連
したソフトウェアを備えたパーソナルコンピュータのように受信機26と一体化さ
れてもよい。デジタル衛星テレビジョンセットトップボックスまたはケーブルテ
レビジョンセットトップボックスは、一体化されたマルチキャスト受信機を含む
ことができる受信機の別の例である。
(3)条件付きアクセスシステム25。これは、ヘッドエンドサブシステム52
と一体化されてもよい。条件付きアクセスシステム25は、本明細書において参考
文献とされている米国特許第5,481,609号明細書、第5,282,249号明細書、第5,65
9,615号明細書または第5,652,795号明細書に記載されているタイプのものであっ
てもよい。同様にここにおいて参考文献とされている文献(“APPLIED Cryptogr
aphy,2nd Edition”,published by John Wiley and Sons,1996)には、一般的
な暗号技術が記載されている。
条件付きアクセスシステム25は、受信機26がその受信を許可されたパケットだ
けを解読するようにパケットを暗号化するために暗号キーまたはキーのセットを
使用する。一般に、受信機26は、受信されるべきチャンネルをマルチキャスト受
信機54に知らせる。マルチキャスト受信機54が受信機26と一体化されている場合
、これはソフトウェアインターフェースによって行われる。その後、マルチキャ
スト受信機54は、条件付きアクセスシステム25にコンタクトをとり、パケットの
暗
号化を開始し、受信機が適切なキーを与えられ、それが受信することを許可され
たパケットを解読する。
本発明の関係において、マルチキャストネットワークは、特定のタイプのネッ
トワークに何等限定されず、伝送されているデータがセグメント化され、1以上
の比較的小さいパケット(たとえば、ほぼ<1MB)中に配置され、各パケット
がマルチキャストアドレスフィールドを含むいずれのデジタルマルチキャストネ
ットワークを含んでもよい。好ましい実施形態において、マルチキャストネット
ワーク24は、デジタルビデオおよびデータの両サービスを伝送するホームシステ
ムに直通の静止衛星である。別の実施形態では、マルチキャストネットワーク24
は、アナログ(およびデジタルの少なくとも一方)テレビジョンおよびデジタル
マルチキャストデータサービスの両者を伝送する2方向ケーブルテレビジョンネ
ットワークである。マルチキャストネットワークはまた、イーサネット(宛先M
ACアドレスフィールドがマルチキャストアドレスを伝送する)、デジタルビデ
オ放送(DVB)衛星、地上その他のメディア、MPEG2転送パケットを使用
しPIDフィールドがマルチキャストアドレスを伝送するATSCデジタルテレ
ビジョンおよびその他のマルチキャストネットワーク、MBONE(試験的イン
ターネットマルチキャストネットワーク)、マルチプロトコルのカプセル化され
たデータを伝送するDVB、ならびにIP(インターネットプロトコル)パケッ
トが使用され、宛先IPアドレスフィールドがマルチキャストアドレスを保持し
ている任意の他のIPマルチキャストネットワークのようなその他の任意のタイ
プのマルチキャストネットワークを含んでいる。
[受信機コンポーネント]
好ましい実施形態において、受信機26はパーソナルコンピュータである。しか
しながら、受信機26は、テレビジョンを介して視聴されるデータサービスを(随
意にデジタルビデオサービスと共に)提供するセットトップボックス、あるいは
ビデオおよびデータの両サービスを提供するようにセットトップボックスとテレ
ビジョンの機能を一体化するデジタルテレビジョンのようなマルチキャストネッ
トワークからパケットを受信して処理することができる任意のコンポーネントを
含んでいてもよい。無線受信機を備えた可搬式または手持式コンピュータ等は、
本発明により使用されてもよい受信機の別の例である。
図2を参照すると、各受信機26は、以下に示すコンポーネントに機能的に圧縮
から復元されてもよいソフトウェアを含んでいる。しかしながら、ソフトウェア
の実際の編成は、特定の構成の範囲内において変化してもよい。
(1)パッケージ受信機56。このパッケージ受信機56は、申込まれたチャン
ネルからマルチキャスト受信機54を介して受信されたパケットを処理し、これら
のパケットからパッケージを再アセンブルする。(上述のように、マルチキャス
ト受信機はまた、受信機中に配置されてもよい。)上述したように、各パッケー
ジは個々のファイル(または少数のファイル)として受信機メモリ28(すなわち
、受信コンピュータのハードディスク)に記憶される。マルチキャストネットワ
ーク34が条件付きアクセスを行っておらず、条件付きアクセスが所望された場合
、パッケージ受信機56は、随意にパッケージを解読する。パッケージ受信機はま
た、受信機メモリ28中のスペースの使用を管理し、受信機リソースの使用を管理
して、マルチキャスト受信および処理がその受信機上で実行されている別のアプ
リケーションに及ぼす影響を最小限にする。
(2)内容ビューア58。受信機26中の内容ビューア58は、ユーザがどのチャ
ンネルを申込むべきかを決定するのを手助けするプロモーション材料をユーザに
提供する(すなわち、電子プログラムガイドEPGによって)。好ましい実施形
態において、内容ビューアはまた、ユーザの指令でチャンネルに申込む、あるい
は申込みを取消すようにマルチキャストネットワーク24(または随意にバックエ
ンドサブシステム22)と対話する。バックエンドサブシステム22(マルチキャス
トネットワークではなく)が条件付きアクセスを行っている場合、内容ビューア
は、キー材料を得るためにバックエンドサブシステムと対話することが好ましい
。内容ビューア58はまた、使用情報(すなわち、どのチャンネルがユーザによっ
てアクセスされたかに関する情報)をバックエンドサブシステム22に報告するこ
とが好ましい。
[パッケージ送信]
好ましい実施形態において、パッケージ送信は、IPマルチキャストパケット
を伝送し、各チャンネルがIPマルチキャストアドレスを割当てられる条件付き
アクセス制御マルチキャストネットワーク24によって行われる。マルチキャスト
ネットワークの条件付きアクセスシステム25は、申込んだ受信機だけがチャンネ
ルのIPパケットにアクセスすることを確実にする。マルチキャストネットワー
ク24は、パッケージデリバリサブシステム36がパッケージのまもなく発生する送
信を告知する(announce)パケットを送る単一のIPマルチキャストアドレス(あ
らゆる受信機26が受信してもよい)を提供することが好ましい。
好ましい実施形態において、受信機26は、IPマルチキャストアドレスを選択
的にエネーブルまたはディスエーブルしてもよい。IPマルチキャストアドレス
がディスエーブルである場合、マルチキャスト受信機54は、ディスエーブルされ
たアドレスの識別および廃棄に関連した処理のために受信機26に負担がかからな
いように、そのアドレスを含むパケットをフィルタして除去する。
その代りに、マルチキャストネットワーク24が欧州デジタルビデオマルチキャ
スト(DVB)標準に従ったものである場合、各チャンネルはMPEG2転送ス
トリームを割当てられ、マルチキャストネットワークの条件付きアクセスシステ
ム25は、申込んだ受信機だけがチャンネルのMPEG2転送ストリームにアクセ
スすることを確実にする。
別の実施形態において、1以上のマルチキャストアドレスは、各チャンネルに
専用に(たとえば、ベースパッケージ送信に対して1つのアドレス、デルタパッ
ケージ送信に対して1つのアドレス、制御情報に対して1つのアドレス等)使用
されてもよい。アドレスまたはアドレスのセットはまた、一時にパッケージ当り
1つのアドレスまたはアドレスのセットで多数のチャンネルによって共用されて
もよい。しかしながら、これらの構成は、条件付きアクセスシステム25を複雑に
するので好ましくない。
バックエンドサブシステム22におけるパッケージデリバリサブシステム36は、
各パッケージに対するスケジュールでウェブクローラ30(図3)からパッケージ
34を受信する。このスケジュールには、送信が行われる時、パッケージの送信の
優先度、送信が行われる速度、パッケージが一度以上送信されるか否かのような
情報およびパッケージ送信に関連した別の情報の少なくとも一方が含まれている
。
図5は、パッケージ34をマルチキャストネットワーク24に送信するためにバッ
クエンドサブシステム22のパッケージデリバリサブシステム36によって行われる
ステップを示すフローチャートである。スケジュールがパッケージを与えられた
場合、ステップはスケジュール制約の範囲内で実行される。パッケージデリバリ
サブシステム(PDS)36は最初に、送信されるべきパッケージを識別するマル
チキャスト告知(アナウンス)パケットをフォーマット化する(ブロック60)。
マルチキャスト告知パケットは、たとえばパッケージがチャンネルのどの部分で
あるか、どの種類のパッケージが送信されているか、パッケージの1つのバージ
ョンを別のものから特有に識別する情報、およびパッケージのサイズを含んでい
てもよい。次にPDS36は、マルチキャスト告知アドレスによって送信されるこ
ととなるマルチキャスト告知パケットをマルチキャストネットワーク24に送る(
ブロック62)。PDS36は、高い確率の受信を確実にするためにパケットを何回
も送信することが好ましい。
PDS36は、受信機26が、パッケージが受信されるか否かを決定し受信の準備
をすることを可能にするために短時間(たとえば3秒)待機する(ブロック64)
。随意に、条件付きアクセスが所望されているが、マルチキャストネットワーク
24によって行われない場合、PDS36は、パッケージ全体または個々のパケット
のいずれを暗号化するために、申込んだ受信機だけが利用できるキーまたはキー
のセットを使用する(ブロック66)。
PDS36は、パケットのシーケンスにパッケージを断片化し、この場合、各パ
ケットは、特有のシーケンス番号を有し(ブロック68)、特定されたビット速度
でパケットの送信を開始する(ブロック70)。パッケージデリバリサブシステム
36はまた、別の情報(マルチキャスト告知パケット内または別のパケット内のい
ずれか)をマルチキャストして、受信機がパッケージの最初および最後のパケッ
トを識別することを可能にする。続いて、PDS36は、受信の確率を増加させる
ためにパッケージのパケットを再送信する。PDS36は、スケジュールを組んで
パッケージを再送信し、あるパッケージだけが再送信されるようにスケジュール
することが好ましい。たとえば、ベースパッケージは、時刻およびパッケージの
サイズのような要因に応じて2乃至3回送信されることが好ましい。しかしなが
ら、パケット損失が次のデルタパッケージの後続する送信によって回復される可
能性があるため、デルタパッケージは一度だけ送信されることが好ましい。
[パッケージ受信]
各受信機26中のパッケージ受信機56は、受信機アクティビティ、および受信機
のパッケージ受信の準備を分類するためのユーザ入力の少なくとも一方を監視す
るように随意に構成されてもよい。たとえば、パッケージ受信機56は、(i)受信
機コンピュータ端末CPUローディング、(ii)受信機コンピュータディスクアク
ティビティ、(iii)ユーザ入力(マウスクリックおよびキーボードのキースト
ロークの少なくとも一方)、および(iv)時刻の少なくとも1つを監視する。ユー
ザはまた、パッケージが受信される時期の好みを入力する。たとえば、ユーザは
、コンピュータゲームを始める前にユーザ入力(マウスクリックまたはキースト
ローク)を行わずに少なくとも30分経過するまで、あるいは最小CPUローデ
ィングおよびディスクアクティビティだけの少なくとも30分が経過するまで全
てのパッケージ受信が中断されることを指定してもよい。その代り、ユーザは、
このような環境下においてベースパッケージ受信だけを可能にしてもよい。
したがって、受信機のパッケージ受信の準備は、次のように分類できる:
(1)完全に中断される。パッケージ受信機56は、他の処理を妨害しないよ
うにパッケージ受信を行わない;
(2)ベースパッケージ受信のみ。パッケージ受信機56は、他の処理の妨害
を軽減するためにベースパッケージだけを受信する;あるいは
(3)パッケージ受信がエネーブルされる。パッケージ受信機56は、関心の
あるパッケージ(すなわち、ベースまたはデルタ)を受信する。
パッケージ受信が完全に中断されたとき、パッケージ受信機56は、マルチキャ
スト告知パケットのアドレスをディスエーブルにすることによってそれらの受信
を中断することが好ましい。さらに、パッケージ受信機は、コンピュータおよび
ユーザアクティビティを監視するのに必要なものに応じて、しかし、これを含ま
ない、そのリソース(メモリ、スレッド等)の全部または一部を解放することに
よってその影響を減少させてもよい。その“フットプリント”(すなわち、パッ
ケージを受信しないときに使用されるリソースの量)が低い場合、パッケージ受
信機56はこのような告知の全てを静かに廃棄することが可能である。
パッケージ受信がベース受信または全てのパッケージ受信のいずれをもエネー
ブルさせたとき、パッケージ受信機56は、各マルチキャスト告知パケットを評価
して、対応したパッケージが受信されたか否かを決定する。受信が始まるのは、
(1)パッケージのタイプ(ベースまたはデルタ)の受信が現在エネーブルされ
ている場合、(2)パッケージの受信がまだ成功していない場合、(3)パッケ
ージが申込んだチャンネルに対するものである場合、および(4)ディスク/メ
モリ使用管理がパッケージの受信を許した場合(以下さらに詳細に説明する)だ
けである。
パッケージ受信機56は、パッケージが受信されるべきであることを決定した場
合、マルチキャスト受信機54に対して関連したアドレスをエネーブルするように
リクエストする。その後、パッケージ受信機56は、パッケージのパケットを処理
し、すでに受信されたパケットを廃棄し、以前に受信されたことのないパケット
をメモリに記憶し(すなわち、それらをディスクに書込む)、それによってパッ
ケージを再アセンブルする。
パッケージ受信機56は、パケットが失われることなく全パッケージが受信され
たか否かを決定するために、パケットシーケンス番号および最初と最後のパケッ
ト表示(indication)を監視することが好ましい。パッケージ受信機56は、予め定
められたタイムアウト期間内のパケットを受信しないか、あるいは最後のパケッ
トの受信かのいずれによってパケットの送信の終わりを識別する。シーケンス外
のパケットを可能にするマルチキャストネットワークにおいて、パッケージ受信
機は全てのパケットが受信されたことを決定するために別のタイムアウト期間の
あいだ待機しなければならない可能性がある。パッケージが影響を受けずに受信
された場合、パッケージ受信機56はパッケージを内容ビューア58が利用できるよ
うにする。パッケージがもとのまま受信されることに失敗した場合、パッケージ
受信機は、好ましくはその他の動作の中断または通知を行わずに、そのパッケー
ジを廃棄する。しかしながら、失われたパケットのセットが記録され(ある方式
で)、パケットの反復的な送信時に、失われたパケットだけを記憶することによ
って“ホール”が充填されることが好ましい。これによって、反復的な送信時に
おける受信の確率が高くなるが、パケット損失確率が非常に低いいくつかのネッ
トワークではこれは必要ない。
パッケージが受信されているあいだ、パッケージ受信機56はまた、たとえば、
これが別のアクティビティのために必要とされた場合、受信を打切る機会をユー
ザに随意に与えることが好ましい。パッケージが受信されているあいだ、パッケ
ージ受信機56はまた、ユーザアクティビティおよびコンピュータ端末ローディン
グを監視し、以前に構成されたユーザの好みに応じて受信を打切ることが好まし
い。
[メモリ/ディスクスペース管理]
従来技術のマルチキャストシステムは、メモリまたはディスクスペースを多量
に消費することによってしばしば受信機の通常の動作を妨害した。本発明の高速
マルチキャストネットワークは、低速マルチキャストより多いデータ量の送信を
可能にするため、実効的なメモリ/ディスクスペース管理を行わない場合にはパ
ッケージがかなり余分に多量のメモリ/ディスクスペースを消費する確率が高い
、この潜在的な問題を克服するために、本発明のウェブクローラ30とパッケージ
受信機56は、メモリ使用を管理して受信機26に対する影響を最小にするように協
同する。
最初に、ウェブクローラ30に与えられる各チャンネル定義32は、チャンネルに
対する“メモリバジェット”を含む(図3)。チャンネルのサイズに近似したこ
のメモリバジェットは、ウェブキャストのメモリ/ディスク使用がユーザ予測を
確実に越えないようにするために使用される。ウェブクローラ30は、チャンネル
によって消費される総メモリスペースがチャンネルのメモリバジェットを越えな
いことを確実にする。とくに、ウェブクローラ30は、送信のためにパッケージデ
リバリサブシステム36に各パッケージを提出する前に、各パッケージのサイズを
チェックする。ウェブクローラ30は、それがメモリバジェットを越えない場合に
のみ、パッケージデリバリサブシステム36にベースパッケージを提出する。ウェ
ブクローラ30は、デルタパッケージのサイズプラス対応したベースパッケージの
サイズがメモリバジェットを越えない場合にのみデルタパッケージを提出する。
パッケージ受信機56はまた、その受信を開始する前にパッケージのサイズをチ
ェックする。パッケージ受信機は、パッケージのサイズ、プラス、前に受信され
たパッケージのサイズがチャンネルのメモリバジェットを越えない場合に受信を
予め許す。パッケージのサイズがメモリバジェットを越えた場合、パッケージ受
信機は、チャンネルの前に受信されたパッケージを削除することが受信を可能に
するか否かをチェックする。ベースパッケージに関して、パッケージ受信機は、
ベースパッケージのための空間を生成するために必要なときにチャンネルのパッ
ケージを削除する。パッケージ受信機56は最初に前のベースパッケージを削除し
、その後それの前のベースパッケージに対する任意のデルタパッケージを削除し
、それから必要に応じて他の任意のデルタパッケージを削除することが好ましい
。デルタパッケージについて、パッケージ受信機は、受信を許可する必要がある
ときにチャンネルの前に受信されたデルタパッケージを削除することが好ましい
。
一度パッケージを予め受信することが許されると、パッケージ受信機56は、ウ
ェブキャストチャンネル記憶のために使用されていない予め定められた最小メモ
リスペースに対する受信機メモリ28中の利用可能なスペースをチェックする。パ
ッケージ受信機は、パッケージがこのしきい値の下で利用可能なメモリ/ディス
クスペースを取らない場合にのみ受信を許可する。
パッケージ受信機は、メモリ/ディスクスペースがパッケージの受信を許可し
ない時を記録し、内容ビューア58がメモリスペースの不足をユーザに通知するこ
とが好ましい。好ましい実施形態において、ユーザはEPG(電子プログラムガ
イド)によって通知される。パッケージに申込む前に、EPGは、チャンネルに
対するメモリバジェットおよび利用可能なメモリ/ディスクスペースをユーザに
通知する。図6は、ユーザにそのように通知するために使用されることのできる
EPGウインドウの一例である。図6に示されているように、EPGはまた、パ
ッケージの受信が行われる時をユーザに通知することが好ましい。たとえば、ベ
ースパッケージは、使用率の低い期間(夜間のような)中に放送されてもよい。
デルタパッケージ(更新を含む)は、30分ごとのように周期的に放送されるこ
とが好ましい。また、EPGによって、パッケージが受信されることができる時
をユーザが指定することが可能になる。
[チャンネル申込みおよび条件付きアクセス]
上述したように、あらゆるユーザが電子プログラムガイド(EPG)チャンネ
ルを受信する。好ましい実施形態において、存在しているEPGチャンネルは1
つである。しかしながら、とくに言語、ユーザが選択したサービスプラン、年齢
、性別等の要因に基づいてユーザに合わせて作成された多数のEPGチャンネル
が使用されてもよい。EPGは利用できる各チャンネルのプロモーション内容を
含み、これによってユーザは、チャンネルを評価して、申込むべきチャンネルま
たは申込まないチャンネルを選択することができることが好ましい。EPGおよ
びそのプロモーション内容は、ウェブサイトのように構成されることが好ましく
、それはグラフィックスおよびその他のアクティブな内容が埋込まれたHTML
ページの集合物であり、ユーザはボタン、チェックボックス等をクリックするこ
とによって所望のチャンネルを示す。図7は、利用可能なチャンネルをユーザに
通知するために使用されてもよいEPGウインドウの一例である。図7の例はま
た、ユーザがチャンネルの試写にリンクすることを可能にし、チャンネルを申込
むか、あるいは申込まないためのボックスをユーザに提供する。
受信機26における内容ビューア58は、ユーザによって開始されたとき、ユーザ
がプロモーション材料を利用できるようにする。内容ビューア58はまた、ユーザ
がチャンネルを申込むまたは申込まないというリクエストを処理する。条件付き
アクセスが行われない場合、内容ビューア58は、ユーザの申込み/申込み取消し
リクエストをパッケージ受信機56に知らせ、パッケージ受信機56は受信を開始し
、あるいはチャンネルのパッケージの受信を適切に中止する。
しかしながら、本発明において、条件付きアクセス方式が実施されることが好
ましい。上述のように、条件付きアクセスは、たとえばマルチキャストネットワ
ーク24、バックエンドサブシステム22、またはそれら2両者の組合せによって実
施されてもよい。
条件付きアクセスがマルチキャストネットワーク24において条件付きアクセス
システム25によって行われた場合、内容ビューア58は、マルチキャストネットワ
ークに対して申込みまたは申込み取消しトランザクションを行う。一般的に、こ
れはマルチキャスト受信機54を介して行われ、随意にヘッドエンドサブシステム
52に直ぐに、または後の時間にコンタクトしてもよい。いくつかのマルチキャス
トネットワークに対して、内容ビューア58はヘッドエンドサブシステム52に直接
コンタクトし(インターネット、ダイヤルアップモデム接続、または任意の別の
適切な手段を介して)、トランザクションを行ってもよい。トランザクションが
受諾された場合、内容ビューア58はパッケージ受信機58に通知し、このパッケー
ジ受信機58がチャンネルのパッケージの受信を適宜開始または中止する。マルチ
キャストネットワーク24は、このようなトランザクションの終りに(またはリク
エスト時に)現在申込まれたチャンネルの完全なセットを提供し、それによって
内容ビューア58およびマルチキャスト受信機54をマルチキャストネットワーク24
と同期させることが好ましい。また、条件付きアクセスシステム25は、マルチキ
ャストアドレスへの許可されていないアクセスを阻止するために暗号化を使用す
ることが好ましく、この場合、1つのチャンネルのマルチキャストアドレスを暗
号化するために使用されるキーは、別のチャンネルのマルチキャストアドレスを
暗号化するために使用されるキーとは異なっている。
その代りに、マルチキャストネットワーク24が条件付きアクセスを行い、バッ
クエンドサブシステム22が申込み処理を行ってもよい。この構成により、バック
エンドサブシステム22は、チャンネル申込みおよび申込み取消しのためのトラン
ザクションを処理し、マルチキャストネットワーク24がマルチキャストアドレス
へのアクセスを制御する。内容ビューア58はバックエンドサブシステム22の登録
サーバ46にコンタクトし(ダイヤルアップモデム、インターネット等を介して)
、申込みトランザクションを行う。トランザクションリクエストは、(i)受信
機が受信しているマルチキャスト受信機を識別する情報、(ii)チャンネルがリク
エストされている情報、および随意に(iii)リクエストの送り手の真正を証明す
るために使用される情報を含んでいる。
登録サーバ46は、リクエストの真正を証明し、メッセージが真正と証明された
場合、チャンネルを伝送するマルチキャストアドレスのセットにリクエストされ
たチャンネルをマッピングする。その後、登録サーバ46は、申込まれたチャンネ
ルを伝送するアドレスに受信機26がアクセスできるようにリクエストするマルチ
キャストネットワークのヘッドエンドサブシステム52に対するトランザクション
を行う。この真正証明は、チャンネルへのアクセスがリクエストされた受信機26
の内容ビューア58からリクエストが得られたことを確認することを意図されてい
る。真正証明は、パスワード証明によって行われることが好ましい。しかしなが
ら、この真正証明はまた、公開キー暗号を使用して行われてもよい。
申込みリクエストが処理されると、マルチキャストネットワーク24は、受信機
26が許可されたマルチキャストアドレスからのパケットだけを受信することを確
実にすることができる。好ましい実施形態において、マルチキャストネットワー
クにおける条件付きアクセスシステム25は、暗号を使用してマルチキャストアド
レスへの許可されていないアクセスを阻止し、この場合、1つのチャンネルのマ
ルチキャストアドレスを暗号化するために使用されるキーは、別のチャンネルの
マルチキャストアドレスを暗号化するために使用されるキーとは異なっている。
その代りに、条件付きアクセスがバックエンドサブシステム22だけによって実
施されてもよい。この実施形態では、内容ビューア58が登録サーバ46にコンタク
トし(ダイヤルアップモデム,インターネット等を介して)、申込み/申込み取
消しトランザクションを行う。その後、バックエンドサブシステム22は、受信機
がチャンネル解読キーを利用できるようにする。受信機は、暗号キーを獲得して
更新するために登録サーバ46によるトランザクションを周期的に行わなければな
らないかもしれない。(これは、使用報告と共に随意に行われてもよい。)トラ
ンザクションが受諾されると、パッケージ受信機56は、上述のように通知される
。一般に、この条件付きアクセスの実施形態は、マルチキャストネットワークに
よって提供される条件付きアクセスシステムほど秘密に対して安全ではなく、や
はりあるレベルの安全性を提供する。
上述の実施形態の任意のものにおいて、多数の申込みリクエストおよび申込み
取消しリクエストの少なくとも一方がさらに効率的な処理のために一括処理され
てもよい。
[オフラインブラウジング]
オフラインブラウジングとは、ユーザがインターネットに接続せずにウェブサ
イト内容にアクセスすることを言う。受信機26内の内容ビューア58は、ウェブキ
ャストチャンネル内容のユーザのオフラインブラウジングをサポートするために
応答する。好ましい実施形態において、内容ビューア58は、既存の(すなわち、
修正されていない)ウェブブラウザ12と動作する代理サーバアプリケーションを
含んでいる。これによって、ユーザは新しいユーザインターフェースを再度学習
することなく広く普及しているウェブブラウザにより連続的に動作することが可
能になる。
好ましい実施形態において、ユーザがオフラインブラウジングセッションを開
始したとき、内容ビューア58は、最初にウェブブラウザ12が動作しているか否か
を決定し、そうであるならば、ブラウザを閉じるようにユーザを促す。ブラウザ
が動作していない場合、内容ビューア58は、内容ビューア/代理サーバを介して
インターネットにアクセスするようにブラウザを構成する。その後、内容ビュー
ア/代理サーバは、電子プログラムガイド(EPG)の表示をブラウザに開始さ
せる。オフラインブラウジングセッションが終了すると、内容ビューア/代理サ
ーバ58はブラウザ12を閉じて、そのブラウザを元来の非代理構成に再構成する。
本発明の別の実施形態において、内容ビューア58は、ブラウザがネットワーク
を横断してURLをリクエストする前に内容ビューア58からURLをリクエスト
するように、ブラウザのキャッシュと一体化される。
いずれの実施形態においても、内容ビューア58は、それが初期化してしまうと
、ブラウザ12からURLに対するリクエストを受信し、URLのその“キャッシ
ュ”からそれらを見出そうとする。キャッシュは、申込んだチャンネルから受信
されたパッケージ内に含まれるURLデータ項目から構成されている。キャッシ
ュ検索を行う内容ビューア58の立場から、URLは2つの部分から構成されてい
る。たとえばURLの“http://www.direcpc.com/users/index.html”は、
(1)プロトコル(常にhttpである)と、URLがリクエストされているウェ
ブサーバのドメイン名とを識別する第1の部分である“http://www.direcpc.com
”と、
(2)ウェブサーバのファイルシステム内のURLのパス名(ディレクトリお
よびファイル名)を識別する第2の部分である“/users/index.html”の2つの
部分を示す。
内容ビューア58は、最初にドメイン名検索を行うことによってキャッシュ検索
を行う。内容ビューア58は、ドメイン名からのURLを含んでいるチャンネルの
リストにドメイン名をマッピングするデータ構造を保守する。好ましい実施形態
において、このデータ構造はハッシュテーブルであり、各ハッシュエントリはリ
ストであり、各リストエントリはドメイン名およびチャンネルIDを含んでいる
。(技術的に知られているように、ハッシュテーブルはアレイからの効率的な情
報検索方法を提供する。ハッシュテーブルの使用によって、発生する可能性のあ
る異なった可能なエントリ(または鍵)がインデックス機能のアクションの下に
アレイ中の同じ位置にマッピングされることが可能になる。)内容ビューア58は
、パッケージに含まれているURLのドメイン名をリストしたその各パッケージ
内の補足的な情報からこのデータ構造を構成することが好ましい。内容ビューア
58は、URLからドメイン名を抽出し、URLを含んでいる可能性のあるチャン
ネルのリストをこのデータ構造から決定する。
次に、内容ビューア58はURL検索を行い、この場合、内容ビューアは候補チ
ャンネルのリスト(ドメイン名検索から決定された)をとり、一致したものが見
出されるまで各チャンネルのパッケージをチェックする。内容ビューア58は最初
に、一致についてチャンネルのデルタパッケージ(利用可能ならば)をチェック
し、その後そのベースパッケージをチェックすることが好ましい。
いくつかの例において、URLは1以上のチャンネルのパッケージ中に存在し
ている可能性がある。これを処理するために、好ましい実施形態では、内容ビュ
ーア58は、最も新しいクロール開始時間でスタートするチャンネルをチェックす
る。(チャンネルの開始時間はそのパッケージの補足情報中に記録されている。
)
内容ビューア58は、パッケージの中にURLを見出すと、メモリ28からのパッ
ケージからURLデータ項目を検索し、必要ならばURLデータ項目の圧縮を復
元する。URLデータ項目が差圧縮されている場合、内容ビューアはベースパッ
ケージおよびデルタパッケージの両方からURLデータ項目を検索し(必要に応
じて圧縮を復元し)、差圧縮復元を行って修正されたURLの内容を復元する。
多くの場合において、本発明は、インターネットへのダイヤルアップモデム電
話接続を有するホームコンピュータ実行ウインドウズ95(商標名)のような、
インターネットへの交換接続を有する受信機26により使用される。電話回線はイ
ンターネットアクセスおよび通常電話サービス(POTS)の両方に使用される
ことが多い。別の例はISDN交換接続である。受信機が別の接続の使用を妨害
する可能性のある共用リソースであることに加えて、インターネットへの交換接
続は頻繁に測定されるので、ユーザは各使用により付加的な出費を被る。
このような交換接続状況では、受信機は、他のユーザと電話回線を共用するこ
とが望ましい。好ましい実施形態において、内容ビューア58は、他のユーザと電
話回線を共用することを可能にする方式で電話回線へのアクセスを制御しながら
、チャンネル定義の範囲外の内容への“シームレス”アクセスを可能にするよう
にユーザと対話する。内容ビューアは、“キャッシュミス”を制御することによ
ってこれを行う。
“キャッシュミス”は、受信されてメモリ28に記憶されたどのパッケージ内に
もないURLをブラウザ12がリクエストしたときに発生する。リクエストされた
URLは、受信されたパッケージ中にない可能性がある。これは、たとえばキャ
ッシュされたウェブページが、クロールされずチャンネルに含まれなかったUR
Lを参照してもよいためである。これは、クローリング中のインターネット休止
のために、あるいはウェブページが自動的にクロールされることのできない動的
内容を含んでいたために発生する可能性がある。この例では、いくつかのキャッ
シュミスが短期間内に、失われた埋込みURLのそれぞれに対して1つづつ頻繁
に生じている。
リクエストされたURLはまた、ユーザがチャンネル定義の範囲外のページを
参照するチャンネル定義内のページからのリンクをクリックした場合に存在しな
い可能性がある。たとえば、チャンネル定義が2レベルの探索深さを定めており
、ユーザが3レベルの深さのURLをリクエストした場合、キャッシュミスが発
生する。キャッシュミスはまた、ユーザがそのキャッシュ中に存在しないURL
をブラウザの宛先とした場合にも発生する。
キャッシュミスが発生した場合、内容ビューア58はユーザに通知し、ユーザが
インターネットに接続して(交換接続を介して)、キャッシュされていないウェ
ブページへのシームレスアクセスを行う機会を提供することが好ましい。図8は
、キャッシュミスが発生した場合に内容ビューア58によって行われるステップの
フローチャートである。内容ビューア58は最初に、別のキャッシュミスが最近発
生したか否かを決定する(ブロック100)。否の場合、それは、キャッシュミス
が
処理される方法をユーザが前に特定したか否かを決定する(ブロック102)。ユ
ーザの好みが特定されない場合、内容ビューア58は、キャッシュミスが発生した
こと、およびリクエストされた内容がインターネットにアクセスすることによっ
てしか得られないことをユーザに知らせる(ブロック104)。
その後、内容ビューア58は、ユーザがインターネットに接続してリクエストさ
れた内容の検索の開始を所望するか否かを彼等に質問する(ブロック106)。こ
の質問は、接続の別の使用を妨害する(すなわち、電話の呼を中断する)か、あ
るいは不所望な金額の請求を招く可能性のあるインターネットへの自動的な接続
を防止する。この質問への応答を待っているあいだに別のキャッシュミスが発生
した場合、内容ビューア58は、ユーザが応答するまでキャッシュミスを保持する
。ブロック106はまた随意に、質問に応答するのにN秒あることをユーザに知ら
せるカウントダウンを質問と共に開始する。図9は、キャッシュミスをユーザに
知らせ、インターネットへの接続についてユーザに質問するために使用されても
よい対話ボックスの一例である。図9の例には、随意のカウントダウンも含まれ
ている。
再び図8を参照すると、ユーザがインターネットへの接続を所望しないと応答
した場合、あるいはカウントダウンがユーザ応答なしに終了した場合、内容ビュ
ーア58は、インターネットに接続することによってしか内容を得ることができな
いという表示をブラウザ12に与えることによってキャッシュミスリクエストを拒
否する(ブロック108)。好ましい実施形態において、内容ビューアは、インタ
ーネットによってしか内容を得ることができないことを説明したテキストを含ん
でいるテキストまたはHTML本文を含む“エラー”HTTP応答(またはHT
MLページへの宛先の書き変え)に戻る。この結果、ブラウザ12がこのテキスト
(またはHTMLページ)をユーザに表示する。
その代りとして、ユーザがインターネットへの接続によるリクエストされた内
容へのアクセスを所望すると応答した場合、内容ビューアはインターネット接続
を開始する(ブロック110)。好ましい実施形態において、内容ビューア58は、
通常の代理サーバとして動作し、リクエストされたURLのサーバへのTCP接
続、およびユーザ応答を待機中に保持されていたキャッシュミスからリクエスト
された別のURLのサーバへの接続を開始する。受信機26は、このような接続開
始を受信すると、インターネットへの交換接続を自動的に開始するように構成さ
れてもよい。別の実施形態において、内容ビューア58は交換接続のデバイスドラ
イバと対話し、接続を開始して、インターネットへの接続が設定されるまで全て
のURLリクエストを保持する。
再びブロック100を参照すると、内容ビューア58が、別のキャッシュミスが最
近発生したと決定した場合、ユーザにより前のキャッシュミスに対する入力がな
され、インターネット接続を開始する(ブロック110)か、あるいはリクエスト
を拒否する(ブロック108)。ブロック110乃至112は、ユーザがキャッシュミス
質問を“浴びせられる”事態を防ぐ。この事態は埋込まれたURLが1以上失わ
れたウェブページにおいて頻繁に発生する。
同様に、ユーザがキャッシュミスリクエストの好みを指示したと内容ビューア
が決定した場合(ブロック102)には、その選択に続いて(ブロック114)、接続
を開始するか(ブロック110)、あるいはリクエストを拒否する(ブロック108)
。
[使用報告]
本発明は、ウェブサイトの動作に対する変更を何等必要とせず、広告ベースの
ビジネスモデルをサポートするのに十分な使用情報をウェブサイトに提供する。
その代りとして、ネットワークオペレーションセンター(NOC)のような別の
ソースに使用情報の報告がなされてもよい。とくに、本発明は、ユーザがあたか
も通常のキャッシング代理サーバを介してそのウェブサイトにアクセスしている
かのようにウェブサイトに使用情報を報告することができる。その代りに、本発
明は、ログファイルの形態で使用情報をウェブサイトに報告してもよい。
一般に、ウェブブラウザ12は、ユーザが見る各URLに対する別々のリクエス
トをウェブサーバ10に送る(図1)。URLに対するリクエストは“ヒット”と
呼ばれている。広告収益が生じるようするために、ウェブサイトは一般に、各広
告URLに対して“ヒット”数(すなわち、そのサイトがURLをサービスした
回数)を記録する。ウェブサイトは、(i)そのサイトが受信した実際の“ヒッ
ト”数、あるいは(ii)過去の経験に基づいてその広告が受信されると予想できる
“ヒ
ット”数の予測のいずれかに基づく広告収益を受信する。
ウェブサイトは、一般に、このサイトを訪れたユーザの識別子(すなわち、名
前、アドレス、電話番号等)を決定することができない。しかしながら、ウェブ
サイトは、どのURLが同じユーザによってある期間(すなわち、数週間および
数か月)にわたってアクセスされているかを知らされることができる。ウェブサ
イトは、そのサイトからURLをリクエストしている異なる各ブラウザに特有の
“クッキー”を割当てることによってこの情報を収集する(技術的に知られてい
るように、“クッキー”は、ユーザの身元を明かすことなくユーザを特有に識別
する、ウェブサーバとウェブブラウザとの間で送信される限られた内部情報の一
部分である。)。広告収益を保持するために、ウェブサイトは、どの“ヒット”
が同じユーザから受信されているかを知らせることができることが重要である。
本発明は、バックエンドサブシステム22におけるキャッシュヒットトラッカー40
を使用することによってこのような情報をウェブサイトに提供する(図3参照)
。
次に、図10を参照すると、受信機26における内容ビューア58は、種々のチャ
ンネルのチャンネル定義によって指定されたとおりに、バックエンドサブシステ
ムのキャッシュヒットトラッカー40に使用情報42を送る。チャンネル定義のヒッ
トトラッキング部分は、パッケージの補足情報内で受信機26に伝送される。好ま
しい実施形態において、使用情報は、各“ヒット”に対する別々の記録から構成
され、ここにおいてキャッシュヒットのサブセットだけが報告される。この使用
情報は、インターネット14のようなTCP/IPネットワークによって報告され
ることが好ましく、インターネットへの受信機のインターフェースは、ダイヤル
アップモデム接続のような交換接続によってなされることができる。しかしなが
ら、使用情報は、その他の任意の適切な接続によって報告可能なことが理解され
るであろう。
本発明は、代理(ウェブサイト動作への変更を要求しない)またはログファイ
ル(単にログファイルを獲得して処理すること以外、ウェブサイト動作に対する
変更を要求しない)のいずれかによって、1チャンネルごとに使用情報をウェブ
サイト(または別の位置)に戻す。代理報告に関して、キャッシュヒットトラッ
カー40は、HTTP代理サーバとして(ウェブサーバの観点から見て)動作する
ことが好ましい。キャッシュヒットトラッカー40は、内容ビューア58から報告さ
れた“ヒット”を受信機26に記憶し、それに続いて報告された各URLに対する
HTTP動作を実行する。これによって、受信機26がインターネット14に接続さ
れるのに必要な時間が最小にされる。それはそのヒットがウェブサーバ10に報告
されているあいだにそれが遅延されないためである。キャッシュヒットトラッカ
ー40によって行われるHTTP動作のタイプはチャンネル定義によって規定され
、このチャンネル定義は使用報告42と共にキャッシュヒットトラッカー40に送ら
れる。とくに、以下のHTTP動作は、代理使用報告を1チャンネルごとに行う
ように構成されてもよい:
(1)GET
キャッシュヒットトラッカー40は、HTTP GET動作(一般に、ウェブサー
バ10からキャッシュヒットトラッカー40にURLデータ項目を転送する)を行う
ことができる。その後、キャッシュヒットトラッカー40は、受信される全てのデ
ータを待機するが、受信するとそのデータを廃棄する。この動作は、ウェブサー
バ10が受信するはずのものが、本発明を使用することなく、ユーザにURLデー
タ項目を直接検索させたことと最も厳密に一致する。
(2)GET待機なし
キャッシュヒットトラッカー40は、HTTP GET動作(上述のもの)を行っ
てもよいが、ウェブサーバ10から受信されるべきHTTP応答ヘッダしか待たな
い。受信されると、キャッシュヒットトラッカー40はすぐに接続を閉じる。この
動作によって使用されるネットワーク帯域幅は狭い。これは、実際のURLデー
タ項目が完全に転送される必要がないためである。
(3)GET If Modified Since
キャッシュヒットトラッカー40は、最後に修正されたデータがURLと共にパッ
ケージに含まれているHTTP応答ヘッダから生じる、GET If−Modi
fied−SinceHTTP動作を行うことができる。この動作はまた、一般
的に全内容が送信されず、一方HTTP動作を完了するため、ネットワーク利用
度を減少させる。
(4)GET If Modified Since待機なし
キャッシュヒットトラッカー40は、GET If−Modified−Sinc
e動作(上記のような)を行うことができるが、URLが変化し、これが送られ
るべきウェブサーバ10からの応答後はデータを待たない。実際のURLデータ項
目が転送されないため、この動作によって使用されるネットワーク帯域幅は狭い
。
キャッシュヒットトラッカー40はまた、ログファイル44を使用して使用報告を
行ってもよい。この方法において、キャッシュヒットトラッカー40は、報告され
たヒットをログファイル44に記憶し、各チャンネルに対して別個のログファイル
を維持することが好ましい。キャッシュヒットトラッカー40は、(たとえば、F
TP GET動作によって)ウェブサイトでログファイル44を利用できるように
するか、あるいはログファイル44をウェブサイトに(たとえば、FTP PUT
動作またはeメールによって)周期的に伝送する。
好ましい実施形態において、各ヒットログファイル44は、1行当たり1つの記
録および1記録当たり固定したフィールド数のフラットASCIIファイルであ
る。全てのフィールドは、スペースで分離されており、スペースを含むフィール
ドはコーテーションマーク(“”)で閉じられている。以下の表2において、ヒ
ットログファイル44の好ましいフォーマットを示す。
表2の好ましいヒットログファイルフォーマットにおいて、“サイトID”フ
ィールドは、単一のユーザからのヒットがそのユーザの身元を明かすことなく識
別されることを可能にするという点で“クッキー”(上述の)にほぼ等しいもの
をウェブサイトに提供する。以下は、ヒットログファイル記録の一例である(実
際のログファイルでは、この記録は1行である):
各チャンネルに対するチャンネル定義は、全てのヒットまたはヒットのフィル
タ処理されたサブセットのいずれが報告されるかを指令する。報告されたヒット
をフィルタ処理することによって、ウェブサーバにおいて無用な処理(およびユ
ーザの接続時間)が最小限にされ、一方において広告およびその他の重要なヒッ
トのための報告情報が確保される。フィルタは、一般に、“重要でないヒット”
を取り除き、広告関連ヒットおよびHTMLヒットだけを報告し、それによって
ウェブサイトが広告統計およびページ人気度を利用する(tally)ことができるよ
うにするために設けられている。重要でないヒットの報告を減少するために使用
されてもよいフィルタには、以下のものが含まれる:
(1)内容フィルタ
内容フィルタは、たとえば、全ての広告が.gif(グラフィックスインターチェン
ジフォーマット)画像の形態である場合に使用されることができる。内容フィル
タは、全ての.gif画像URLを検出して報告し、ほとんどの非.gif(すなわち、
非広告)URLを取り除く。
(2)URLフィルタ
URLフィルタは、たとえば、全ての広告が”/ads/”をそれらのURL中に含
むURLを有している場合に使用されてもよい。したがって、“URLが”/ads
/”を含む”フィルタは、”/ads/”を含むURLによる全てのヒットを検出して
報告し、他の(すなわち、非広告)URLを取り除く。このようなURLフイル
タのバリエーションは、“URL開始”フィルタ、“URL終了”フィルタ、ま
たは
“URLが正則表現に一致する”フィルタ等を含んでいてもよい。
チャンネル定義はまた、受信機がどのような環境の下でそのチャンネルに対す
る使用情報を報告するかを定義する。たとえば、受信機は、オフラインブラウジ
ングセッションの終了時に、あるいは周期的(毎晩、一週間毎、一か月毎等)に
使用情報を報告する。これら2つの方法は、それぞれ“セッションエンド報告”
および“周期的報告”と呼ばれる。その代りとして、使用情報は、要求時または
その他任意の機会に報告されてもよい。
ウェブキャストチャンネルは、一般に、代表的なウェブサイトの内容のサブセ
ットだけを含んでいる。図8に関連して上述したように、ユーザがキャッシュさ
れていないURL(キャッシュミス)にアクセスすることを要求した場合、内容
ビューア58は、ユーザの考え次第で、受信機26をインターネットに接続し、ウェ
ブサーバ10からURLに直接アクセスしてもよい。この直接的な接続は、ウェブ
サーバ10が、まるで普通にインターネットユーザによるようにこのようなヒット
を追跡することを可能にする。したがって、本発明のキャッシュミス特徴は、さ
らに、ウェブサイトが“click-thrus”のトラッキング、すなわち、ユーザが付
加的な情報を提供するウェブサイトにリンクするためにクリックした場合を保存
することを可能にする。ウェブサイト内に含まれている広告は、たとえば、広告
された製品に関する付加的な情報を提供するウェブサイトへのリンクを含んでい
ることが多い。これは、広告収益が時に広告を見るユーザの数だけでなく、広告
された製品に関する別の情報のために“click-thru”するユーザの数にも基づい
ているため重要である。本発明は、チャンネル定義の範囲外のURLへの“シー
ムレス”または自動アクセスを行うことによって広告収益のこの重要な形態を保
持する。しかしながら、このような状況において、使用報告は、交換接続の別の
使用を妨げず、過度の接続料金を招かないことが望ましい。
セッションエンド報告および周期的報告の両者を使用することが、これらの目
的を達成する助けとなる。チャンネルは、使用報告接続数を最小限にすることよ
りもほぼ実時間で使用報告を得ることが重要な場合にセッションエンド使用報告
用に構成される。チャンネルは、接続料金を最小限にすることが重要な場合に周
期的報告用に構成される。全てのチャンネルを一週間ごとの報告用に構成するこ
とによって使用報告を一週間に1度の接続に集中させることができる。全チャン
ネルに対する使用報告はまた、同じ時間枠においてスケジュール化されることが
できる。
周期的報告に関して、使用報告は、インターネットへの接続の数を最小にする
ように最適化される。これは、使用情報を書き出し、同時に発生する可能性のあ
るインターネットへの他の任意の接続に使用報告を便乗(piggyback)させるため
に可能な限り待機することによって行われる。(“便乗”とは、使用情報を別の
情報と共に送ることを指す。)
周期的報告に関して、キャッシュヒットトラッカーがオーバーロードにならな
いように、内容の報告のバランスをとることが望ましい。受信機は、使用報告時
間枠(たとえば、真夜中と午前5時との間の毎晩)と、および各チャンネルのた
めに、使用情報が報告されるまでに待機している最大時間を示す使用接続タイム
アウト値とを受信する。このタイムアウトは、たとえば5日間のデフォルトを有
していてもよい。受信機は使用報告時間枠内においてランダムな時間を選び、そ
の時間に使用報告接続がなされるか否かをチェックする。任意のチャンネルの使
用情報がチャンネルの使用接続タイムアウトより古ければ、接続がなされなけれ
ばならないこととなる。このような接続がなされたとき、全ての保留中の使用情
報が報告される。
好ましい実施形態において、受信機は、最初に便乗タイムアウトおよび使用報
告再トライタイムアウトを受信することによって、別のインターネット接続にお
いて使用報告を“便乗”させる。受信機はまた、ディスエーブルされた、実行中
である、あるいは終了したいずれの使用報告時間を保持する。受信機は、インタ
ーネット接続を監視する。受信機がインターネットに接続したとき、受信機は、
便乗タイムアウト後にタイムアウトし、タイマーをスタートさせるように使用報
告タイマーを初期化する。受信機がインターネットから遮断されているとき、そ
れは使用報告タイマーをディスエーブルする。使用報告タイマーが終了したとき
、受信機は、報告される準備が整った使用情報が存在するかどうかをチェックし
、存在しているならば、受信機はその報告を試みる。報告が成功または失敗した
とき、受信機は接続をチェックし、依然として接続されている場合には、受信機
は、
再トライタイムアウト期間後にタイムアウトして、タイマーをスタートさせるよ
うに使用報告タイマーを初期化する。
したがって、周期的報告では、ユーザが使用接続タイムアウト値(たとえば、
5日)のあいだ一回もインターネットに接続しない場合にのみ、使用報告のため
にインターネットへの特別な接続がなされる。
セッションエンド報告に関して、報告は通常オフラインブラウジングセッショ
ンが終った時に行われる。ユーザが使用が報告されなかったことをその時点で示
した場合、(たとえば、電話回線がすでに占有されているために)、使用報告は
次のオフラインブラウジングセッションのスタートまで記憶されている。したが
って、各オフラインブラウジングセッションのスタート時に、内容ビューア58は
、前のオフラインブラウジングセッションから保留されているセッションエンド
使用報告が存在するか否かをチェックする。そうである場合、内容ビューア58は
、使用情報の報告を許可するようにユーザを促し、許可が受信されて使用が報告
された後でのみ、オフラインブラウジングが始まることを可能にする。一度セッ
ションエンド使用が報告されると、その直後に内容ビューア58が保留中の周期的
使用を報告するが、それはこれによって別個の周期的使用報告接続が不要になる
可能性があるためである。
図11は、セッションエンドまたは周期的使用報告のために好ましい実施形態
において内容ビューア58によって行われるステップを示すフローチャートである
。内容ビューア58は、使用報告が開始されたことを一度決定すると、受信機26が
インターネットにすでに接続されているか否かを決定する(ブロック150)。否
の場合、それは使用報告を行うためにインターネットへの接続を許可するように
ユーザを促す(ブロック152)。これによって使用報告が別のビューアアプリケ
ーションを妨害することが阻止される。内容ビューア58はまた、ユーザが応答す
るためのカウントダウンを開始することが好ましい。図12は、使用情報を報告
するためにインターネットに接続することを許可するようにユーザを促すために
使用される対話ボックスの一例である。図12の例には、オプションのカウント
ダウンもまた含まれている。
再び図11を参照すると、内容ビューアは、ユーザが接続を承認した許可を与
えたか否か決定する(ブロック154)。許可が与えられた場合(あるいは、ユー
ザが特定された時間内に応答できなかった場合)、内容ビューア58は、インター
ネットへの接続の設定を試みる(ブロック156)。
次に、内容ビューアは、接続が成功したか否かを決定する(ブロック158)。
接続の試みが失敗した場合、あるいはユーザが接続する許可を拒否した場合、内
容ビューアは、後に報告するために使用情報を記憶し(ブロック160)、プログ
ラムが終了する。接続が成功した場合、内容ビューアは、保留中の使用情報を全
てキャッシュヒットトラッカー40に報告する(ブロック162)。内容ビューアは
、HTTP PUTまたはHTTP POST動作のシーケンスの形態で使用情
報を報告することが好ましい。これらのHTTP動作は、ほとんどのファイアウ
ォールを通ってインターネットに送られることができるので好ましい。しかしな
がら、使用情報はeメールによって報告されることも可能であり、それによって
ほとんどの種類のシステムで情報の送信が可能になる。各HTTP PUTまた
はHTTP POST動作(またはeメール送信)は、多数のヒットについての
使用情報のブロックを含んでいることが好ましく、それにより使用報告接続時間
を減少させることによって使用情報がさらに効率的に送信されることが可能にな
る。
その後、内容ビューアは、報告が成功したか否かを決定する(ブロック164)
。否の場合には、(たとえば、HTTP PUT動作が失敗した場合)、それは
後に報告されるように使用情報を記憶する(ブロック166)。それはまた、いく
つかの報告の試みが存在するか否かを決定し、そうならば、使用情報を廃棄して
もよい(ブロック166)。使用情報が記憶または廃棄された後(ブロック166)、
あるいは内容ビューアが報告が成功したと決定した場合(ブロック164)、内容
ビューアは、インターネットからの接続を遮断する(ブロック168)。
その代りに、内容ビューア58は受信機がインターネットに接続されていると決
定した場合(ブロック150)、上述したように保留している使用情報を全て現在
のインターネット接続上に“便乗”させる(ブロック170)。その後、内容ビュ
ーアは、報告が成功したか否かを決定する(ブロック172)。否の場合、内容ビ
ューアは、ブロック166との関連で上述したように使用情報を記憶するか、廃棄
する(ブロック174)。報告が成功した場合、あるいは使用情報が記憶または廃
棄された後、プログラムは終了する。
上記の説明から、当業者は、本発明の種々の修正および別の実施形態を認識す
るであろう。したがって、ここに記載されたものは、単なる例示と解釈すべきで
あり、本発明を実行する最良モードを当業者に教示するためのものである。シス
テムの詳細は、実質上本発明の技術的範囲を逸脱することなく異なってもよく、
添付された請求の範囲に記載された技術的範囲内の全ての修正の限定的な使用は
確保される。DETAILED DESCRIPTION OF THE INVENTION
System and method for multicasting multimedia content
[Background of the Invention]
[Field of the Invention]
The present invention generally relates to the use of multimedia in a multicast network environment.
Content distribution, especially for multicasting information to one or more receivers.
Fast multicast communication channel and allow receivers to interact with the network
Multi-key with a response channel that can operate at low speed
Related to local network systems.
[Description of Related Technology]
The most common method for distributing multimedia information is on the Internet.
The World Wide Web (WWW). Referring to FIG. 1, one set of WWW
Is considered to be a network accessible information resource for
Server 10 and web browser 12 are connected to the Internet via the TCP / IP protocol.
Connected to port 14. These protocols are referenced here.
("Internetworking with TCP / IP, Vol. 1 ”by Douglas Comer, publishe
d by Prentice-Hall in 1991). Web browsers 12 are generally
Provided in a personal computer (PC) 16 connected to the Internet
You. The connection between the PC 16 and the Internet 14 is a dial-up modem telephone line
It is often a low-speed connection like a connection. Web server 10 also generally includes: 5
Connected to the Internet by high-speed dedicated circuits such as Mbps T1 connection
. PC users transfer hypertext from server 10 via Internet 14
Website 18 (web pages, graphics, etc.) using the
Browser to access the Internet (including media and other multimedia content)
Use 12. This “normal” way to retrieve information from the World Wide Web
The formula states that if a user visits the same website repeatedly,
Each visit to the website requires a separate TCP connection.
The World Wide Web is based on three basic ideas:
(1) Global naming method for resources: uniform resource location
TA (URL)
(2) Protocols for accessing named resources ... the most common
Things are HTTP
(3) Hypertext: The ability to embed a link in another resource, typically
It is performed according to the hypertext markup language (HTML).
Each website 18 is viewed by the web browser 12 user as a set of related content.
Contains a collection of web pages operated by a single enterprise
You. The web pages within website 18 are in a hypertext markup language
Formatted according to the (HTML) standard. HTML standards are text
Display high-quality text, including control over text position, size and font, and
Realize the display of graphics in web pages. The HTML standard also
Web site stored on a different web server and a completely different web site
"Linking" from one web page to another, including linking to
I do. Each HTML document, graphics image, video clip and other individual
Some of these contents are called uniform resource locators (URLs).
Internet address. As used here,
“URL” is an individual part of the web content (HTML document, image, sound
Lip, video clip, etc.), and "URL data item"
Refers to an individual piece of content addressed by L.
The usual dial-up method described above for accessing multimedia information is
Although fairly widespread, it is limited in at least two very important ways
Have been. First, most PC users dial in over ordinary telephone lines.
Access the Internet using a laptop modem. These lines are relatively low
Speed (for example, 28. 8 or 56 kbps).
Page (for example, 150 KB) takes a long time (for example, 50 seconds).
And very short video clips (low resolution “quick time” format)
Displaying a longer time (such as a 6MB movie trailer) could take up to 30 minutes.
Minutes). Also, the user's telephone line must have access to the Internet.
Not be available for regular voice calls during the entire period.
Second, in a conventional manner, each web site 18 stores its contents in each web browser 12
A point-to-point transfer is used, which must be transmitted individually. So a single
Is a 150kbyte web page traversing the Internet by a web server
Must be transmitted individually to each browser that displays the page. Usual
During the busy hour, the web server could serve 10,000 users with a moderately large capacity of 10 pages.
Page (total 1. For transmission (during 5 MB), the web server must have at least
Also requires a link to the Internet with a bandwidth of 33 Mbps. Internet
A link to the link and a web server fast enough to satisfy the link
At present, it is terribly expensive and complex. More than 1 million people at the peak
Support is completely impossible with current Internet technologies
It is.
Currently, the World Wide Web is a website operator
Support two methods (advertisement and reservation application) to earn content
I have. Ads are typically embedded in website web pages in the form of images
And the user clicks on the image to go to the advertiser's website
You can "link" and get more information. Web-based advertising
Web server 10 accurately tracks how many users have viewed a given ad,
For repeated users, you can see the ads they saw and the number of such ads.
Ordinary multicast advertisements (e.g.,
TV, radio and newspaper ads).
If a website generates revenue by signing up,
"Means that you agree to pay for the site.
You can access only the contents of that website. The user
Submit a billing name and password each time you want to access the site
By requesting the website, only the applicant who paid the site
Control access to allow access to.
Multicast systems are used when users are accessing common content.
It can adapt to a large number of users much more easily than the Internet. this is
, A given data item is multicast regardless of the number of receivers (ie,
It is sent only once). In recent years, multimedia that distributes multimedia contents
Cast network can be geostationary satellite multicast or FM radio sideband
Used by wide area networks such as transmission.
Several multimedia multicast systems have been proposed in theory,
These systems can multicast frequently accessed URLs individually.
And these URLs may be important to the receiver based on past history.
Allow receivers to filter and remember only web pages that may not
You are tagged. Commercial deployment of these systems has failed.
This means that they copy and multicast the content without permission, thereby possibly
This is in conflict with copyright law. In addition, they are “offline”
(That is, not being connected to the Internet)
Without guaranteeing the set of possible matches to the user,
You have not been given a mechanism to protect your advertising revenue.
Commercially deployed multimedia multicast systems are
FM Radio Sideband Manager to distribute information and information (with limited graphics)
Air Media Internet Antenna System using Multicast
It is. The computer terminal receives the multicast information and
Store it on your hard disk. This information is in a copyrighted format
Multicast and available to users via special purpose applications
I'm sorry. Air media systems are partially due to their very slow speed (
For example, for a 19 kbps) FM sideband multicast transmission system
Lack of content that cannot be ignored.
Another such system is the Intel intercast system,
It uses vertical blanking within the NTSC multicast to multicast information.
Using the last period to "data enhance" the television channel on which it is transmitted
I do. The vertical blanking period is usually used to transmit limited subtitle information,
, Which is also slow multicast (eg, 30 kbps). Inter
Ki
Cast, unlike air media systems, converts its data to standard HTML format.
Multicast on the Internet. Intercast allows the user to monitor the computer
Watch the television program above, and at the same time
Web browser, which allows you to access the data with special hardware
Provide a similar viewer application.
A major problem with such a multicast system is the multicast broadcast.
Good content usage for remittance. Good content providers, in particular,
After the user has already received such content, or
Multicast only if the strike system operator agrees with the large payment
Prepare content for the system. However, multicast operators are generally
In addition, many users cannot be acquired until the content of the system becomes good,
Until the user subscribes to this system, a loan is issued to make good payments.
I can't get it. This good content / user causality problem has been around for many years.
This has hindered the development of multimedia multicast systems.
In many cases, new multicast systems can reuse pre-existing content.
And started by. Television, for example, originally for other media
The problem of "causality" was overcome by reusing the created contents. Raj
O shows often include a substantial portion of the original actor, characters, lines, and pre-existing script
Hold minutes and convert to both visual (television) and auditory viewing
Was. Movies, plays, operas and other existing materials are also
Multicast. Once television is established using this pre-existing content
Once you have the number of users you need to get results,
New content (i.e. situational comedy, serial drama, night news, late night
(TV talks, infomercials, etc.)
Born in Star.
Another major issue that has hindered the successful development of multicast systems is the
Processing of multicast data on a computer (reception, filtering,
Etc.). In a conventional multicast system, the user has to
Multicast applications are often disabled to run
Receiving multicast data will adversely affect the performance of the receiving computer.
It was a failure to give. The user can use the multicast receiver application
Often, they forgot to save, thereby triggering a complete loss of functionality. Con
Pewter games are applications that use all the resources of a computer
Is a typical example of receiving and receiving multicast data in such functionality.
And adverse effects of treatment. In addition, the personal computer operator
Systems generally optimize resources between competing real-time applications.
Do not share with Thus, a typical personal computer user would be
Performance loss due to the reception of multicast multimedia content ("
"Jerky" video and graphics, and responsive games
Do not tolerate (like at least one of the controls).
In some multicast systems such as air media, receiving
The effect on the computer is not significant due to the slow speed of the multicast link.
won. However, high-speed multicast links are not available to users.
Highly desirable to increase the quantity and quality of the. Therefore, compatible with existing content
High-speed multicast that does not interfere with other processing performed by the receiving computer
System is needed.
[Summary of the Invention]
Prior to the present invention, the number of users facing the new multicast system / good
A multimedia multicast system that can solve the problem of content causality
There was no stem. The present invention is a method that does not require a change in the behavior of the website
Accessing unmodified, high-quality content from existing websites
Overcome this problem and also preserve website advertising and subscription revenue.
Protect. The present invention also provides high speed links (satellite) to provide very high quality content.
Use another application in the receiving computer (like a link)
Receiving such content from such high-speed links with minimal impact on
It includes several new mechanisms. The present invention relates to the
PC (trade name) webcast "or" webcast ".
(Direct PC is a registered trademark of Hughes Network Systems, Inc.)
No. 08 / 257,670 (filed on Jun. 8, 1994) and 08 / 795,5 filed by the applicant.
No. 05 (filed on February 7, 1997) (both rights have been assigned to the applicant)
Describes the basic directory PC system, which is generally
Provides a one-way high-speed link to receive information from the Internet,
Do not use networking.
In general, webcasts include selected website content (“channels” and
Call) to the receiving computer's hard disk.
Multicast network that makes content available at "hard disk speed"
Includes As described in more detail below, channels are
A set of web content that can be repeatedly accessed and carried. Channel
Preferably, the web content within is periodically updated. Webcast
Ad-based revenue without any changes to website behavior
Sufficient usage information to support (i.e., what
Has been accessed) to the website.
The present invention also supports subscription-based revenue websites. Each receiver
Computer will promote and offer available webside channels.
Receive an electronic program guide (EPG) that supports embedding. EPG
Allows easy access to the channel the user has subscribed to and all other uses
To provide promotional material for possible webcast channels,
It offers functionality that exceeds that achieved by web pages. Such a professional
Motion Materials are subscribed to or unsubscribed from the channel by the user.
Is accessed from the cached contents of the EPG until at this point
Webcast software is a conditional access network in multicast networks.
Access system and initiate or close the application
I do. Conditional access system optionally bills webcast users at a later date
And / or multi-key to reply to the channel website
The application information is provided to the billing system of the last system.
In the receiving computer, the webcast is stored (or “cast”).
Web browser to display the content of the website channel
Is configured. When started, the content viewer on the receiving computer
Content cached via HTTP proxy server in broadcast content viewer
Configure your web browser to access. "Cache miss"
User requests a URL that is not stored in the multicast data cache
Fired when If a cache miss occurs, webcast software
The ware informs the user that the normal (ie dial-up) Internet
The user is provided with an option to access the contents by access. User does
If you choose to
Set up a connection (if necessary) to connect to the Internet with lost content.
Forwards the content request to the server. This Internet connection is
No action required, automatically set by webcast software
It is preferably “seamless” in that it is defined. Webcass
May also occasionally access the Internet to send usage information to the appropriate website.
Set up a connection.
According to one feature of the invention, the content of the channel includes a plurality of URL data items.
Each URL data item is addressed by a URL, including
Systems and methods for transmitting organized content include one or more multicast addresses.
Assign a channel to each channel and schedule assembly of the channel contents.
Assemble the channel contents and fragment the channel contents into packets
Where each packet is associated with one of the multicast addresses of the channel.
And configured by multicasting the packet.
Have been.
According to another feature of the invention, the content of the channel includes a plurality of URL data items.
Only, each URL data item is organized into channels addressed by URL
A system and method for transmitting channeled content comprises an assembly of channel content.
Schedules, assembles channel content, and supports URL data items.
Subset, where each compressed URL data item is a separate URL data item.
So that data items can be decompressed without decompression
Each URL data item is individually compressed independently of another URL data item, and
Fragmenting the contents of the channel into packets and multicasting the packets
Therefore, it is constituted. The present invention further provides a base packet of channel content.
, Where the base package is each URL data item
In the channel and assemble a delta package of the channel contents
Where the delta package is the assembly before the base package
This includes URL data items that have changed or are new from the default.
According to yet another feature of the invention, the content of the channel is a plurality of URL data items.
The channel that contains the URL and where each URL data item is addressed by a URL
A system and method for transmitting organized content to an
Schedule a bling and assemble the contents of the channel according to the schedule.
, Fragment the contents of the channel into packets, and receive the packet multiple times.
Multicast to the receiver, where each receiver broadcasts the contents of the received channel.
The usage report is stored in the receiver memory, and the usage report is received from each receiver.
The notification is based on the URL from the stored URL data item accessed from the receiver memory.
It consists of identifying a subset of data items.
According to another feature of the invention, the content of the channel includes a plurality of URL data items.
Only, each URL data item is addressed by a URL, and
The channel on which the strike network sends the contents of the channel to the receiver in packets
The receiver for receiving the content organized in the multicast network from the
Determines the multicast address used to transmit packets on the channel.
To enable the reception of packets containing the multicast address of the channel.
Receive a packet containing the multicast address of the channel,
Assemble the received packet into the contents of the channel, store the contents of the channel, and
Allows the user to access the contents of the stored channel. The receiver is
In addition, the channel stored when the user accessed the URL data item
Each compressed URL data item in the content is individually decompressed from the compression.
According to yet another feature of the invention, a receiver in a multicast system comprises:
Receiving a URL data item from a multicast network and receiving the received UR
L data item and allows the user to access the stored URL data item.
When
To track user access to stored URL data items. Receiving
The machine also receives the URL data requested to be accessed by the user.
Data item is not present in the stored URL data item, and
Notifies the user that the URL data item that was
Is connected to a TCP / IP network such as the Internet (dial-up
Access unstored URL data items (such as a modem).
And enable.
According to yet another feature of the invention, a receiver in a multicast system comprises:
Monitor receiver activity and select content from multicast network
Where the content is based on monitored receiver activity
Received selectively. The receiver may be, for example, a personal computer,
The activity being monitored is another application running on the receiver /
Program, disk / memory usage, and user input (keystroke or
Mouse click). The receiver is also monitored for reception
Monitored activities are terminated so as not to interfere with
The reception of the content may be interrupted until the request is received.
According to another feature of the present invention, a receiver in a multicast system comprises:
Receiving a packet containing a URL data item from a multicast network,
Assemble the received packet into a channel containing a set of URL data items
Package receiver, memory for storing channels, and stored channels
Allows users to request access to URL data items in
Includes a content viewer.
According to yet another aspect of the invention, a plurality of URL data items are
System that multicasts to a receiver at
To format the retrieved URL data item into a package.
Web crawlers and packages received from web crawlers, and
Packet that is fragmented into packets and sent to a multicast network.
Delivery subsystem and which receivers are authorized to receive packets.
A conditional access system to determine
The network multicasts the packet only to authorized receivers.
According to yet another aspect of the invention, the content of the channel is at least one way.
Content organized into channels, including multiple URL data items from Website
A system for multicasting to multiple receivers is available from the website via TCP / IP
Retrieving a URL data item via a network and retrieving the URL data item
A web crawler that formats the eyes into packages, and a web crawler
Package delivery to receive the package and fragment this package into packets
Subsystems and terms that determine which receivers are authorized to receive packets
Access system with condition and packet received from package delivery subsystem
And the multicast network to which it communicates. Conditional access system
Encrypts the packet and the multicast network encrypts it to authorized receivers.
Multicasts the encrypted packet, where the authorized receiver
The packet is stored in memory and the packet is decrypted.
[Brief description of drawings]
FIG. 1 illustrates a simplified prior art method for accessing information from the Internet.
It is a simple block diagram.
FIG. 2 is a block diagram of the multicast system of the present invention.
FIG. 3 is a block diagram of the back-end subsystem of the multicast system of FIG.
FIG.
FIG. 4 shows the web browser of FIG. 3 for collecting active website content.
FIG. 4 is a block diagram of the process used by the server.
FIG. 5 shows a package delivery subsystem of the back-end subsystem of FIG.
3 is a flowchart showing steps performed by the maker.
Figure 6 shows the maximum memory space required for the channel and the package broadcast schedule.
Electronic program guide that can be used to inform the user
3 is an exemplary window of an EPG).
FIG. 7 allows the user to view a preview of the available channel content,
A telephone that allows the user to subscribe or unsubscribe to that channel
6 is an exemplary window of a child program guide (EPG).
FIG. 8 shows the contents viewer of the receiver shown in FIG. 2 when a “cache miss” occurs.
It is a flowchart which shows the step performed.
FIG. 9 informs the user of a cache miss and establishes a connection to the Internet.
Dialog generated by the content viewer to ask the user if it should be
It is an example of a box.
FIG. 10 is a block diagram showing the usage reporting function of the present invention.
FIG. 11 illustrates a process performed by the content viewer of FIG. 7 to report usage information.
It is a flowchart which shows a step.
FIG. 12 shows a user who has permission to connect to the Internet to report usage information.
7 is an example of a dialog box generated by a content viewer for asking for a request.
[Detailed description]
[Webcast Channel]
The present invention provides a set of U that a user may repeatedly access with interest.
It organizes URL data items to be transmitted to the RL data item "channel".
Channels are generally extracted periodically from web sites by web crawlers.
Subscribed by conditional access protected multicast file transfer
A subset of the website content to be distributed to users (ie, a set of
Web page). Therefore, channel content is typically
It consists of a collection of all URL data items from the site. Cha
Preferably, the contents of the channel are updated periodically. A typical channel is
For example, it may include the contents of 3,000 different URL data items.
www. direcpc. com or www. hns. any website like com, www. abcnews.
Common new websites like com, or quicken. excite. like com
Various investment news sites may be included in these examples.
The user subscribes to the webcast channel of interest, and
Only the flannel is received and stored at the user's receiving terminal. Channel content and
The multicast schedule is specified by the webcast channel definition.
It is. The channel definition of each channel is predetermined. However, c
The webcast may allow for a change in the channel definition. Each channel definition
Includes at least the following:
(1) Each strand contains a start address (URL) and a search depth
List of web strands. Each web page contains a link to another page
Search depth is the number of links found and stored on the original page.
It is a number. In a preferred embodiment, the depth of the search is
It is set to 2 “levels” from the first. That is, the channel is
Page and two hypertext links away from the original page (ie, two
Mouse clicks) on all other pages. However, search
Depth can be any number of levels as the best website for the channel.
May be set to
(2) Which URLs are included in or excluded from the channel
A list of filter sets that indicate which Another set of filters also includes URL data
Data item, if present, identifies how it will be compressed before it is transmitted
May be. Yet another set of filters includes each URL as described in detail below.
May be defined as a "hit tracking" attribute to be assigned. Webk
Laura starts at each start URL and identifies all links that have passed the filter
Search to the specified search depth.
(3) The contents of the channel are packaged by the multicast network.
Schedule that specifies how often and how to be multicast to each user.
[System Component]
Referring to FIG. 2, the webcast system 20 of the present invention includes one or more multi-keys.
From the backend subsystem 22 communicating with the local network 24 (link C)
It is configured. This back-end subsystem 22 is connected to the Internet 14 (link
(A) and (B) via a TCP / IP internetwork.
Connected to site 18, from which content is collected. Multicast net
Work 24 may be a satellite or other high speed (greater than 200 kbps) link.
Information retrieved from website 18 by a simple high-speed link (F) to multiple receivers
Multicast to 26. Each receiver 26 is located, for example, at the user's home or office.
Personal computer. However, receiver 26 also
Receive top-top boxes, digital television, or Internet content.
Other devices that can be trusted may be included. Each receiver 26 also has a
Ear-up modem, ISDN, two-way cable or link may be low
It is preferably connected to the Internet 14 by a speed link (D). Sa
In addition, the present invention is directed to other TCP / IP systems other than the Internet, such as an intranet.
It can be configured by an IP network.
The following describes the basic functions of the webcast system components,
FIG. 2 shows various data flow paths. However, the features described are not
Depending on the specific system configuration, the position of the system components may be changed.
Is understood.
[Back-end subsystem function]
Back-end subsystem 22 (typically a computer or network
Computer set) perform at least the following functions:
(1) From the website 18 to the Internet 14 or a private TCP / IP network
URL data items over the Internet or intranet (links A and B)
And assemble it into a package.
(2) Large (i.e., multi-megabyte multiple) packages (websites)
(Including the URL data item from site 18) into the appropriate sequence of packets.
Fragments and sends the packet to the multicast network 24 (link C).
(3) The usage report from the receiver 26 (links D and A) is optionally processed and used.
Return the notice to website 18 (links A and B).
(4) Channel application and reception from receiver 26 (links D and A)
You can process your request for deletion at will and submit such request to website 18 (link
(A) and (B).
(5) Optionally access the webcast channel conditionally. Article
Conditional access is usually conditional access in multicast network 24
Performed by system 25, the multicast network
Access system, or a multicast network
If the use of conditional access systems is not desirable,
Can be implemented by the system 22.
[Multicast network function]
The multicast network 24 performs at least the following functions:
(1) receive a packet from the backend subsystem 22 (link C), and
, Data from any other broadcast source 27 (link E) (digital video, audio
(Such as audio audio).
(2) Multicast the packet to the receiver 26 via the high-speed link (link F)
I do.
(3) Ensure that only the receivers that have applied receive channel packages
Optional access by the conditional access system 25 to access
.
(4) The return route from the receiver 26 to the back-end subsystem 22 is optionally provided to
Enable reporting.
(5) Optional for channel application and application cancellation request from receiver 26
To process.
(6) Internet access is optional, and the receiver
Enables access to "cache misses".
[Receiver function]
Each receiver 26 performs at least the following functions:
(1) A multicast system 24 to enable reception of appropriate addresses
make a conversation.
(2) packet received from multicast network 24 (link F)
To process.
(3) Re-assemble the webcast channel package from the received packet
And store them as files in the memory (for example, hard disk) 28.
Remember
(4) Execute on receiver when multicast package is received and processed
In memory 28 to minimize the impact on other applications
Manage space and manage receiver resource usage.
(5) Determine which webcast channel the user should subscribe to
Provide users with promotional material to help with
hand).
(6) Multicast network 24 (or optionally backend subsystem)
22) provide a channel subscription or subscription cancellation request.
(7) Used for the back-end subsystem 22 by the multicast network.
Report usage information.
(8) The multicast network is not making conditional access and the condition
Optional decryption of the received package if unattended access is desired
You.
(9) The back-end subsystem (not the multicast network)
To get the key material for conditional access when performing conditional access
Interacts with the backend subsystem 22.
[Backend Subsystem Component]
Referring to FIG. 3, the back-end subsystem 22 includes (1) one or more web
Roller 30 and (2) the package delivery subsystem 36.
Contains components. Each web crawler 30 generally has a predetermined channel.
A computer that accesses the channel from website 18 according to channel definition 32
Data. Web Crawler 30 is available like TelePort Pro and Web Wacker
Similar to a good web crawler. The main difference from commercial web crawlers is that
Web crawler stores each URL data item on disk as a file,
DirecPC WebCast Web crawler 30 formats URL data items into packages
(See below). As described in detail below,
The writer 30 collects URL data items from the website 18. URL data item
Are listed based on the URL in the channel definition and the search depth
Gathered from a list of other URLs that are "linked" to the URL. Then, c
The web crawler 30 formats the collected URL data items into a package 34
Package 34 (as described in detail below) and package delivery
Ask stem 36.
The package delivery subsystem 36 extracts the package 34 from the web crawler 30.
Received and breaks package 34 into a properly sequenced multicast packet 38.
And send them to the multicast network for multicast transmission to the receiver 26.
Network 24.
The back-end subsystem 22 may also receive one or more usage reports 42 from the receiver 26.
Optional cache hit tracker 40. Usage reports are available on the web
It may be stored as a hit log file 44 that is periodically transmitted to the site 18.
(Hereinafter, the use report function of the present invention will be described in detail.)
The back-end subsystem 22 also has a registration server 46 (auto commissioning
(Which may be referred to as a server). Registration server 46, webcast
Provides a convenient way for users to subscribe to channels, and
Application Delivery Tracking and Subscription Tracking Subscriptions and Canceled Submissions
Generate a billing record 48. (Hereinafter, the application function of the present invention is also described in detail.
I will tell. )
[Web crawling]
As described above, the back-end subsystem 22 packages the contents of the channel.
And multicast transmission to the receiver 26 via the multicast network 24
One or more webs that ask the package delivery subsystem 36 to do
Includes crawler 30. Web crawler 30 collects content from various websites 18
This process is commonly referred to as "crawling." Web crawler 30,
Crawl websites periodically and / or on a schedule
Is preferred. The web crawler 30 is a computer “stream” or
Rat file (which is the file system of most personal computers)
A single data structure that is preferably stored and transmitted as
Format the contents of the channel during production. File containing channel content
The file is called package 34.
The web crawler 30 has several places in the backend subsystem 22.
Package delivery subsystem to minimize efforts to manage web crawling
It may be located near the stem 36. Instead, web crawlers 30
Near the crawling website, for example, the website server
May be arranged on the same private network. With this configuration, the compressed
Only the package (not all channel content) traverses the wide area network
The traffic across the wide area network is reduced.
Web crawlers 30 generally maintain a used list of URLs included in the package.
Can not accept. Instead, the web crawler should be included in the channel
Channel definition 32 (which contains a list of URL addresses of URL data items
It may be located in a web crawler, or it may be located on an external server by the crawler.
May be searched for). Each starting URL ad in channel definition 32
Address, the web crawler 30 sends the URL address to be crawled.
Generates a list that contains only the starting address initially. Web black
The controller 30 repeatedly searches each URL data item until the list becomes empty,
Remove the URL address from the list. This web crawler crawls your channel
Many such searches in parallel to reduce the time required to roll
May go.
The web crawler 30 uses these linked data items for each URL data item retrieved.
Analyze the contents of the data item and include a "link" to another URL data item.
Determine if you are running. Generally, only HTML pages contain links
. If so, the additional URL data items pass the channel definition filter
Then, the URL address is added to the list of URL addresses to be crawled.
Be added. URLs added to the list are frames, embedded graphics
A reference to another URL outside the page, the java applet class, and the page (see
The frame may be embedded HTML.
You can think of it as a page. Frame, embedded graphics, java a
The pplet class and the graphics embedded in the frame are
Can be thought of as part of a page, and its "level" or "depth" refers to them.
HTML. UR "linked" from page according to analysis
L is “deeper” than the page that referenced them (ie,
(Far away) is considered one level. The crawl depth of the URL is
Is stored along with the URL address itself on the list of URLs that are to be redirected.
RL is
Passes a channel definition filter whose depth is associated with its start address.
If the URL does not exceed the depth of the switch and the URL has not been previously included in the list.
Only in the list of URLs to be crawled.
The web server's response to the request for the URL is another URL (often
By "re-directing" the request to a different web server)
Often done. Eventually, the depth of the URL to be searched is
Ordering again does not increase. Web crawler 30 provides security for channel content.
ToOverallIn a package 34, here called the “base” package
Can be programmed to place it in Raw base package
Web crawling to create is referred to here as "bescroll"
I have. However, channel content is frequently updated by website operators.
Updates can occur frequently, updates can occur unpredictably, and
Provide webcast users with an updated and consistent view of the content of the website.
And is important. Therefore, once the base package is generated,
Roller 30 only stores the URL data items that have changed due to the occurrence of the base scroll.
A package can be scheduled to be generated. Change or
Packages that contain only changed content are referred to here as "delta" packages.
It is. Web crawling to generate delta packages is described here as “data
It is called "Rutachlor".
When searching for a URL data item, the web crawler
Whether or not the generated package contains URL data items, and
To determine if it contains. This decision is based on (1) various filter settings, (
2) Whether the base package or delta package is crawled
, And (3) the URL data item if the delta package has been crawled
Is present in the base package of the channel, and if so,
It depends on whether the URL data item has changed.
If the base package has been crawled, the URL will pass the filter
If included in the package. If the delta package is crawled
Means that the URL passes the filter and that it exists in the base package
If the package does not change and changes after the version in the base package
include. Whether or not the URL has changed can be determined by actually comparing the contents or
Check the "last modified" field provided by the web server
Can be determined by: For some sites, the “final fix
Since "corrected" fields cannot be relied upon, it is necessary to actually compare the data.
You. Instead, the web crawler 30 checks the checksum or message associated with the data item.
Whether the URL data item has changed by comparing the sage digest
Can be determined.
Crawling generally requires no change to the creation or behavior of a website.
This is the preferred mechanism for obtaining the URL of the channel because it is not needed. This
This is to overcome the "causality problem" of number of users / good content mentioned above.
Is very important. However, crawling is different for each crawl
Because the URL must be checked separately, networking and
Web server resources may be wasted. This data flow occurs every 30 minutes
8 for a 40MB crawled base package (uncompressed)
Exceeds 0 kbps.
Therefore, websites that correctly set the URL's “last modified” date
In response to this request, the present invention provides an HTTP “Get If Modified Since” request.
Requesting a URL reduces processing time. By webcast
Websites that can be used to sign up for which URLs are included in that channel
And their own channel that shows exactly both when the URL changed
Generate definitions. Such a channel definition will be included in the channel.
Just list all URLs that have been modified and when each was last modified
Good. With such a channel definition, the web crawler allows the searched URL
And their modification dates, so that new URLs or previous
You only need to collect the URLs that have changed since the last change. This allows the channel
The website has maximum control over the content of the content, while the
Minimal web server and networking resources are required.
Dynamic website content captures all URLs needed for the channel
Webcast crawling that simple analysis of HTML is not enough to gather
Problems specific to rings arise. One example of dynamic content is one set when started
Is a sports score Java Applet that searches and displays sport scores. Suko
URLs that contain URLs are not referenced by HTML, and are usually
Is not collected. Data is activated by the active operation of the Java Applet.
Can only be collected.
To overcome this shortcoming, the channel definition uses a Java-capable
Provide a list of pages collected by the user. Referring to FIG.
Crawler 30 is Java-capable to use a web crawler as a proxy server.
Configure the browser 50 to display a page composed of dynamic contents (data stream A).
And instructs the browser 50. Browser 50 is a proxy server (data flow B
Active from web server 10 via web crawler 30 operating as
To collect important content. Browser to use web crawler as proxy server
By configuring the 50, the web crawler will display the active content (data stream C)
Monitor and record URLs accessed by browsers containing
become.
[compression]
As described above, the web crawler 30 stores the URL data item for the channel.
Collect and place them in package 34. Each package consists of (1) a set of U
RL data items, (2) to allow quick access to URL data items
Index information such as hash table, and (3) package
Various additional information identifying the set of URL data items contained therein and
Contains other information to guide you in using the content. Web crawler 30
Introduced Liv and Zempel in 1977 to compress each URL data item individually.
Lossless compression algorithms such as those created by LZ77 (LZ77) or other
Use the algorithm. [Another lossless compression algorithm assigned to the applicant
No. 08 / 982,864 filed by the applicant (“Data Compression For Use With
A Communications Channel ”, filed on December 2, 1997).
] The URL data items that can be compressed are (compress the entire package
so
(Not compressed) individually before placing in package 34 (also compressed
As indicated by the flag).
In many cases, the URL data changed between the time of the base scroll and the delta crawl
The data items are only partially changed. For example, many websites
The advertisement embedded in the HTML page changes each time the page is serviced. this
In such cases, from one crawl to the next, include the URL data item for the ad
Only a few characters are changed. In other cases, a large portion of a web page
“Boilerplate (anti-boiler) that provides a consistent look and style to web pages
Reused word) ”. The actual content of such a web page is
Even if changed completely, only a few characters on the page change. This
Considering this, the web crawler 30 uses what is referred to herein as "differential compression".
When implemented, the size of the delta package can be minimized.
Due to the differential compression, the web crawler 30 is able to store the URL
Data item in the corresponding URL data item in the base package (if it does not exist
To compare with lava). The web crawler 30 uses the delta package URL data item
Is divided into data sections, and for each section, the following (1)
A reference to the cage URL data item, or (2) the URL data of the delta package.
Any of the sections of data from the data item
Place in version:
(1) Reference to the URL data item of the base package is performed in this section of the data.
Is the base package URL data item and the delta package URL data
If it can be found because it appears exactly the same in both of the items
It is. Generally, this reference is much smaller than the data itself, and
Compression. An example of a reference is the offset from the beginning of the URL to the first byte.
Offset to the last and last byte. Instead, another more complex
Some but more compact mechanisms may be used to encode the reference.
I;
(2) What is the section of data from the URL data item of the delta package?
Does not perform equal compression, but the URL data item of the delta package is the base package
From URL data items and differentially compressed URL data items
To be able to be reassembled. Then the differential pressure
Before being placed in the delta package, the shortened URL data item, such as LZ77, is
It can be optionally compressed by a lossless data compression algorithm.
The channel definition filter compresses URL data items included in the package.
Indicates whether to be compressed and, if so, the compression algorithm used
Show the rhythm. For delta packages, the channel definition filter also
Whether compression should be applied to the URL to be included in the delta package (and
Algorithm to be used to determine the difference).
Table 1 shows the validity of base / delta packages, individual compression of URL data items
, And an example from a webcast channel showing differential compression.
The resulting compression ratio (ie, approximately 14 to 1) is generally
1. Regarding package A normal lossless data compression algorithm that does not exceed 5: 1
Much higher than the compression ratio achievable by direct application. Therefore, De
By using the ruta package in combination with the base package, Web site
The amount of bandwidth required to keep the receiver “up-to-date” Web site
Compared to repeatedly multicasting the entire set of content
You. The present invention also provides Always provide a consistent snapshot of website content
While maintaining the purpose of doing Achieve this.
The present invention also provides A delta package may be used. And
For example, The score of a game on a sports website is No more websites
It may be updated frequently without any change. In such a case, URL data term
Only the eyes include a score change from one crawl to the next. But
What The Delta package is That is the difference from the previous delta package (ie,
New score). It may be differentially compressed. further, Dell
By using the delta package of the data package, Must be sent
No data volume is reduced.
[Advantages of packaging and compression]
Organize website content into channels and packages according to the present invention
By doing Multi to the function of another active application on the receiver 26
Significant advantages and benefits of reducing the impact of cast reception are obtained.
For example, Each package as a single file with built-in indicators for fast access
By organizing page 34, Before the receiver 16 displays the content to the user,
The processing that must be performed is minimized. Another example is Each URL data item
As a separate file (commonly done with existing browser caches)
So that it remembers, This includes URL data items to individual files
Divided into A huge amount of processing (and additional memory / data) to delete garbage files
Disk space). Many web channels are Over 3000
URL that may contain This process (ie, 3000 separate
Can take several minutes or more. further, Content received (
After interrupting any other processing that occurred at that time) Or the user first
Accessed this content (the user waits while this process occurs).
At any time) This process must be performed. Sa
In addition, By storing all URL data items in a single file, Each U
Content by removing the overhead of opening and closing files to the RL
The processing required to display is reduced.
Compress each URL data item individually.
Not) also means Must be done before the receiver 16 displays the contents of the package.
Reduce unnecessary processing. To fully decompress a package, Mentioned above
like, When receiving (all processing that occurred at that time is cut off), Or Yu
When a user first accesses the contents of a package (forcing the user to wait)
) Requires a lot of processing. Also, The entire package
With compression, The entire package contents must be stored in a decompressed form.
Not More memory or disk space is used. Each UR
Compression of L data items By restoring individually as needed, De
Data items are Be stored in compressed form (reducing memory space)
Becomes possible. Also, Compression of data items that are actually accessed by the user
The injury was restored, Thereby, the overall processing time is reduced. Also, URL Day
Compression and decompression of data items When the user instructs the receiver to display the content
To be done, This decompression involves Other applications that require the use of receiver resources
There is no danger of blocking the application.
further, By using Delta Package and Base Package,
A period during which the receiver 16 can be expected to be idle (eg, Base during midnight)
Package is received, On the other hand, smaller Delta packages are received throughout the day.
It will be possible to schedule it so that it can be communicated. By that
hand, It is possible to turn off the receiver, Or, if the receiver is
Suspends package reception during the period used for Discontinuation, Or you can exit, Or
After one package reception is enabled, Receivers are still quickly “latest”
Can be put into state. The present invention also provides User has complete and matched bar of content
Make sure John is offered. Because The present invention When the user
To avoid using Or accidental reception by turning off the receiver
Was required to operate the receiver continuously so as not to terminate
It offers significant advantages over other multicast systems. Delta and Ba
By sending a package, Especially when the base package is at night or during periods of inactivity
If sent to Users can power down the receiver during peak usage hours, Ah
Or you can interrupt package reception, Moreover, when package reception is resumed, Depend
However, the receiver can be quickly updated.
Especially with the use of delta packages with differential compression, Keep your receiver up to date
To receive and process less data, Transmission volume
Much less. As a result, Lower bandwidth requirements, Delta package received
Minimize the effect on the receiver when received.
further, Organize the content in the channel that the user subscribed to, Single file package
By organizing the content during the page, Filter content that is not of interest to the user
By removing it by processing, receiver processing is almost useless, Very efficient
This content can be transmitted by Multicast File Transfer Protocol
become. Also, This allows you to schedule your submission, A user
Must enable reception to receive the content they want
You can decide how.
In a preferred embodiment of the present invention, Each base and delta package is a single file
Is stored as Store each package in a few files (ie
The number of files is less than the number of URLs in the package) Mentioned above
Numerous benefits are further achieved, Also within some multicast networks
It may be desirable. further, Many of the benefits described above are: Indication in the receiver
It is also realized by generating the information from a single (or a small number of files).
[Multicast Network Component]
Referring again to FIG. Some components are multicast networks
May vary depending on the particular implementation of the network, In general, Multicast
Strike network 24, The following components are included:
(1) Headend subsystem 52. this is, (A) Back-end subsystem
Take the packet from system 12 (link C) The packet is received by the receiver 26 (link F).
Multicast to (B) The packet of the back-end subsystem 12 is Another release
Data from source 27 (link E) (ie, Digital video, audio
) And optionally multiplexing, Multicast the resulting data stream to receiver 26
Can be
(2) Multicast receiver 54. this is, From the requested channel
Responding to provide a multicast packet to receiver 26 (link F)
Can be. Instead, This multicast receiver Receiver peripherals and related
Integrated with the receiver 26 like a personal computer with pre-installed software
It may be. Digital satellite television set-top box or cable
Revision set-top boxes Includes integrated multicast receiver
5 is another example of a receiver that can be used.
(3) Conditional access system 25. this is, Headend subsystem 52
And may be integrated. Conditional access system 25 Reference in this specification
U.S. Patent No. 5, 481, No. 609, number 5, 282, No. 249, number 5, 65
9, No. 615 or No. 5, 652, It is of the type described in
You may. Similarly, the reference referred to here (“APPLIED Cryptogr
aphy, 2nd Edition ”, published by John Wiley and Sons, 1996) general
Various cryptographic techniques are described.
Conditional access system 25 The receiver 26 is the packet permitted to receive it
A key or set of keys to encrypt the packet so that
use. In general, The receiver 26 Multicast receiving channel to be received
Notify Shinki 54. When the multicast receiver 54 is integrated with the receiver 26
, This is done by a software interface. afterwards, Multicast
Strike receiver 54, Contact Conditional Access System 25, Packet
Dark
Encryption, The receiver is given the appropriate key, It is allowed to receive
Decrypts the packet.
In the context of the present invention, Multicast networks are A specific type of network
Is not limited to any network, The data being transmitted is segmented, 1 or more
Relatively small packets (for example, Approximately <1MB) Each packet
Any digital multicast network that contains a multicast address field
Network may be included. In a preferred embodiment, Multicast net
Work 24 Home system for transmitting both digital video and data services
It is a geostationary satellite directly connected to the system. In another embodiment, Multicast network 24
Is Analog (and / or digital) television and digital
Two-way cable television network transmitting both multicast data services
Network. Multicast networks also Ethernet (destination M
The AC address field carries the multicast address), Digital bidet
Broadcasting (DVB) satellite, Ground and other media, Uses MPEG2 transfer packet
ATSC digital telecommunication with PID field transmitting multicast address
Vision and other multicast networks, MBONE (Experimental Inn
Internet multicast network), Multi-protocol encapsulated
DVB for transmitting data And IP (Internet Protocol) packets
Is used, The destination IP address field holds the multicast address
Any other tie, such as any other IP multicast network
Includes multicast networks.
[Receiver component]
In a preferred embodiment, Receiver 26 is a personal computer. Only
while doing, The receiver 26 Data services that can be viewed via television
Set-top box, Or
Set-top boxes and telecommunications to provide both video and data services
Multicast network such as digital television that integrates vision functions
Any component that can receive and process packets from the network
May be included. Portable or hand-held computers with radio receivers, etc.
5 is another example of a receiver that may be used in accordance with the present invention.
Referring to FIG. Each receiver 26 Functionally compressed into the components listed below
Includes software that may be restored from However, software
The actual organization of It may vary within a particular configuration.
(1) Package receiver 56. This package receiver 56 Chang applied
Process packets received from the channel through the multicast receiver 54, these
Reassemble the package from the packet. (As mentioned above, Multicast
G receiver also It may be located in the receiver. ) As mentioned above, Each package
The messages are stored as individual files (or a small number of files) in receiver memory 28 (ie,
, It is stored on the hard disk of the receiving computer. Multicast network
Network 34 does not have conditional access, When conditional access is desired
, Package receiver 56 Decrypt the package at will. Package receiver
Was Manages the use of space in the receiver memory 28, Manage receiver resource usage
do it, Another application where multicast reception and processing is running on that receiver
Minimize impact on application.
(2) Content viewer 58. The content viewer 58 in the receiver 26 Which channel the user
Promotional materials to help users decide whether to apply for a channel
Provide (ie, Electronic Program Guide EPG). Preferred implementation
In the state The content viewer also Apply to the channel at the direction of the user, There
Will cancel the application so that multicast network 24 (or
Interact with the command subsystem 22). Backend subsystem 22 (multicast
(But not the network) has conditional access, Content viewer
Is Preferably interact with backend subsystem to get key material
. Content Viewer 58 also Usage information (ie, Which channels are
To the back-end subsystem 22).
Is preferred.
[Package transmission]
In a preferred embodiment, Package sending is IP multicast packet
To transmit Condition that each channel can be assigned an IP multicast address
Access control is performed by the multicast network 24. Multicast
The network conditional access system 25 Only the receiver that has applied for the channel
Make sure you have access to the IP packets of the Multicast network
Qu 24 The package delivery subsystem 36 sends the package
A single IP multicast address that sends announce packets
(May be received by any receiver 26).
In a preferred embodiment, The receiver 26 Select IP multicast address
Alternatively, it may be enabled or disabled. IP multicast address
Is disabled, The multicast receiver 54 Disabled
No burden is placed on the receiver 26 for processing related to the identification and disposal of
So, Filter out packets containing that address.
Instead, Multicast network 24 is a European digital video multicast
Strike (DVB) standard, Each channel is an MPEG2 transfer
Assigned a trim, Conditional access system for multicast networks
25 Only the subscribed receiver has access to the MPEG2 transfer stream of the channel.
Make sure that
In another embodiment, The one or more multicast addresses are On each channel
Dedicated (for example, One address for base package submission, Delta Pack
One address for cage transmission, Use one address for control information)
May be done. An address or set of addresses can also Per package at a time
Shared by multiple channels in one address or set of addresses
Is also good. However, These configurations are: Complex conditional access system 25
Is not preferred.
The package delivery subsystem 36 in the back-end subsystem 22
Package from web crawler 30 (Figure 3) on schedule for each package
Receive 34. This schedule includes When the transmission takes place, Package submission
priority, The speed at which the transmission takes place, As if the package was sent more than once
Contains information and / or other information related to package submission
.
FIG. To send the package 34 to the multicast network 24,
Done by the package delivery subsystem 36 of the client subsystem 22
It is a flowchart which shows a step. Schedule given package
If The steps are performed within schedule constraints. Package delivery
Subsystem (PDS) 36 first Mark identifying the package to be sent
The multicast announcement packet is formatted (block 60).
The multicast announcement packet is For example, what part of the channel is the package
Is there What kind of package is being sent, One barge of package
Information that uniquely identifies the action from another, And include package size
You may. Next, PDS36 This is sent by the multicast announcement address.
Is sent to the multicast network 24 as
Block 62). PDS36, How many times are the packets to ensure a high probability of reception
Is also preferably transmitted.
PDS36, Receiver 26, Determine if the package will be received and prepare to receive it
Wait for a short time (eg 3 seconds) to be able to do the job (block 64)
. Optionally, Although conditional access is desired, Multicast network
If not done by 24, PDS36, Entire package or individual packets
To encrypt any of Key or key that can only be used by the receiver that has applied
Use the set of (block 66).
PDS36, Fragment the package into a sequence of packets, in this case, Each pa
The ket is Has a unique sequence number (block 68), The specified bit rate
To start transmitting a packet (block 70). Package delivery subsystem
36 also Other information, such as in a multicast announcement packet or another packet
Multicast) The receiver will check the first and last packet of the package.
Allows you to identify continue, PDS36, Increase the probability of reception
In order to resend the package packet. PDS36, Make a schedule
Resubmit the package, Schedule only one package to be resent
Is preferred. For example, The base package is Time and package
Preferably, it is transmitted two or three times depending on factors such as size. However
Et al., Packet loss can be recovered by subsequent transmission of the next delta package
Because of the potential Preferably, the delta package is sent only once.
[Package receiving]
The package receiver 56 in each receiver 26 is Receiver activity, And receiver
Monitor user input to categorize readiness to receive the package
May be arbitrarily configured. For example, Package receiver 56 (i) Reception
Computer terminal CPU loading, (ii) Receiver computer disk access
The activity, (Iii) User input (mouse click and keyboard keystroke)
At least one of the rooks), And (iv) monitoring at least one of the times. You
The also Enter preferences for when the package will be received. For example, The user
, User input (mouse click or keystroke) before starting a computer game
Lok) until at least 30 minutes have passed Or the minimum CPU load
Until at least 30 minutes of only
You may specify that all package reception be suspended. instead of, The user
In such an environment, only the base package reception may be enabled.
Therefore, Preparation for receiving the package of the receiver They can be classified as:
(1) Completely interrupted. Package receiver 56 I will not disturb other processing
Do not receive packages
(2) Only base package reception. Package receiver 56 Interfering with other processing
Receive only the base package to mitigate Or
(3) Package reception is enabled. Package receiver 56 Of interest
A package (ie, Base or delta).
When package reception is completely interrupted, Package receiver 56 Multicast
Receive them by disabling the address of strike notification packets.
Is preferably interrupted. further, Package receiver, Computer and
Depending on what you need to monitor user activity, But, Include this
Absent, Its resources (memory, To release all or part of a thread, etc.)
Therefore, the influence may be reduced. Its “footprint” (ie, Pack
The amount of resources used when no cage is received) Package receiving
The transmitter 56 can silently discard all such announcements.
Package reception is either base reception or all package reception.
When you Package receiver 56 Evaluate each multicast announcement packet
do it, Determine whether the corresponding package has been received. Reception starts when
(1) Package type (base or delta) reception is currently enabled
If (2) If the package has not been successfully received, (3) Package
If the page is for the channel you subscribed to, And (4) disk / me
If the usage management allows the package to be received (described in more detail below)
It is.
Package receiver 56 If you decide that the package should be received
If Enable the associated address for the multicast receiver 54
Request. afterwards, Package receiver 56 Process package packets
And Discard already received packets, Packets that have never been received before
In memory (ie, Write them to disk), This allows
Reassemble the cage.
Package receiver 56 All packages are received without packet loss
To determine whether Packet sequence number and first and last packet
Preferably, the indication is monitored. Package receiver 56 Predetermined
Do not receive packets within the specified timeout period, Or the last packet
The end of packet transmission is identified by either receipt of a packet. Out of sequence
In a multicast network that allows packets of Package receiving
The machine will wait another timeout period to determine that all packets have been received.
You may have to wait in the meantime. Package received unaffected
If done, Package receiver 56 can use packages for content viewer 58
To do. If the package fails to be received as is, package
The receiver is Preferably without interruption or notification of other actions, That package
Discard the device. However, A set of lost packets is recorded (some methods
so), When sending packets repeatedly, By storing only lost packets
Thus, the “hole” is preferably filled. by this, During repetitive transmission
Reception probability increases, Some networks with very low probability of packet loss
This is not necessary for networking.
While the package is being received, Package receiver 56 also For example,
If this was needed for another activity, Opportunity to cancel reception
It is preferred to give it to the user at will. While the package is being received, Package
Page receiver 56 also User activity and computer terminal loading
Monitor the It is preferable to abort the reception according to the preferences of previously configured users.
No.
[Memory / Disk Space Management]
Prior art multicast systems are: Large amounts of memory or disk space
Consumption often interfered with the normal operation of the receiver. High speed of the present invention
Multicast networks are Sending more data than slow multicast
To make it possible, If effective memory / disk space management is not performed,
Packages are likely to consume a significant extra amount of memory / disk space
, To overcome this potential problem, Web crawler 30 and package of the present invention
The receiver 56 Work together to manage memory usage and minimize impact on receiver 26
Same.
At first, Each channel definition 32 given to the web crawler 30 is On the channel
The “memory budget” (FIG. 3). Close to the size of the channel
The memory budget for Webcast memory / disk usage predicts users
Used to ensure that it is not exceeded. Web crawler 30, Channel
Memory space consumed by the
Make sure that In particular, Web crawler 30, Packaged for sending
Before submitting each package to the Revali subsystem 36, The size of each package
To check. Web crawler 30, If it does not exceed the memory budget
only, Submit the base package to the package delivery subsystem 36. We
Bukurora 30 Delta package size plus corresponding base package
Submit a delta package only if the size does not exceed the memory budget.
Package receiver 56 also Check the package size before you start receiving it.
Check. Package receiver, Package size, plus, Previously received
Received if the package size does not exceed the channel's memory budget.
Forgive in advance. If the package size exceeds the memory budget, Package receiving
The transmitter is Deleting packages received before the channel allows reception
Check whether to do. Regarding the base package, Package receiver,
When needed to create space for the base package,
Remove the cage. Package receiver 56 first deletes the previous base package
, Then remove any delta packages for the base package before it
, Then it is preferable to remove any other delta packages as needed
. About Delta Package Package receiver, Need to allow receiving
Sometimes it is preferable to delete a delta package received before a channel
.
Once you are allowed to receive the package in advance, Package receiver 56 C
Predefined minimum memo not used for webcast channel storage
Check available space in receiver memory 28 for respace. Pa
The package receiver is The memory / disk space available for the package below this threshold
Allow reception only if space is not taken.
Package receiver, Memory / disk space allowed to receive package
Record when not, The content viewer 58 notifies the user of the lack of memory space.
Is preferred. In a preferred embodiment, The user has an EPG
Id). Before applying for the package, EPG is On the channel
Memory budget and available memory / disk space for users
Notice. FIG. Can be used to notify users as such
It is an example of an EPG window. As shown in FIG. EPG also Pa
Preferably, the user is notified when a package is received. For example, Be
Source package It may be broadcast during periods of low usage (such as at night).
Delta packages (including updates) Be broadcast periodically, such as every 30 minutes
Is preferred. Also, By EPG, When package can be received
Can be specified by the user.
[Channel subscription and conditional access]
As mentioned above, Any user can use the Electronic Program Guide (EPG) channel
Receive the file. In a preferred embodiment, The existing EPG channel is 1
One. However, Especially the language, Service plan selected by the user, age
, Many EPG channels tailored to users based on gender and other factors
May be used. The EPG will show you the promotion details of each available channel
Including This allows the user Rate your channel, Channels to apply for
Preferably, it is possible to select a channel to which no application is made. EPG and
And the promotion content Preferably constructed like a website
, It is an HTML with embedded graphics and other active content
A collection of pages, User is a button, Click the check box etc.
And indicate the desired channel. FIG. Available channels to users
5 is an example of an EPG window that may be used for notification. The example in FIG.
Was Allows users to link to previews of the channel, Apply for channel
Well, Alternatively, a box for not applying is provided to the user.
The content viewer 58 in the receiver 26 When initiated by the user, A user
Make promotional materials available. Content Viewer 58 also A user
Handles requests to subscribe or not subscribe to channels. Conditional
If no access occurs, Content Viewer 58 User Application / Application Cancellation
Notify the request to the package receiver 56, Package receiver 56 starts receiving
, Alternatively, the reception of the package of the channel is appropriately stopped.
However, In the present invention, Preferably conditional access methods are implemented
Good. As mentioned above, Conditional access is For example, a multicast network
Week 24, Backend subsystem 22, Or the combination of the two
May be applied.
Conditional access is conditional access in multicast network 24
When done by system 25, Content Viewer 58 Multicast network
Perform an apply or cancel application transaction for the Typically, This
This is done via a multicast receiver 54, Optional headend subsystem
Immediately on 52 Or you may contact at a later time. Some multicast
Network Content viewer 58 directly to headend subsystem 52
Contact (Internet, Dial-up modem connection, Or any other
Through appropriate means), A transaction may be performed. Transaction is
If accepted, The content viewer 58 notifies the package receiver 58, This package
The receiver 58 starts or stops receiving the package of the channel as appropriate. Multi
Cast Network 24 At the end of such a transaction (or
Provide a complete set of currently subscribed channels (at est) Thereby
The content viewer 58 and the multicast receiver 54 are connected to the multicast network 24.
It is preferable to synchronize with. Also, Conditional access system 25 Marquis
Use encryption to block unauthorized access to
Preferably in this case, Implement the multicast address of one channel
The key used to encrypt Multicast address of another channel
It is different from the key used to encrypt.
Instead, Multicast network 24 makes conditional access, Bag
The client subsystem 22 may perform an application process. With this configuration, back
End subsystem 22 Tran for channel application and cancellation
Process the zaction, Multicast network 24 is a multicast address
Control access to. Content viewer 58 registers backend subsystem 22
Contact server 46 (dial-up modem, Via the Internet etc.)
, Perform an application transaction. The transaction request is (I) Reception
Information identifying the multicast receiver the machine is receiving, (ii) Channel is requested
The information being esteemed, And (iii) certify the authenticity of the sender of the request
Contains information used to
The registration server 46 Prove the authenticity of the request, Message proved authentic
If Requested for a set of multicast addresses that carry the channel
Map channels afterwards, The registration server 46 The applied channel
A multicast requesting that the receiver 26 can access the address transmitting the
Transactions to the cast network headend subsystem 52
I do. This proof is Receiver 26 requested to access the channel
Is intended to confirm that the request was obtained from the content viewer 58
You. Proof of authenticity is Preferably, this is done by password proof. However
Et al., This proof is also It may be performed using public key cryptography.
Once the application request has been processed, The multicast network 24 Receiving machine
26 will only receive packets from authorized multicast addresses.
You can do it. In a preferred embodiment, Multicast network
The conditional access system 25 in the Multicast addresses using cryptography
To prevent unauthorized access to in this case, One channel
The key used to encrypt the multicast address is Of another channel
It is different from the key used to encrypt the multicast address.
Instead, Conditional access performed only by backend subsystem 22
May be applied. In this embodiment, Content viewer 58 contacts registration server 46
(Dial-up modem, Via the Internet), Application / Application
Perform an erase transaction. afterwards, The back-end subsystem 22 Receiving machine
Make the channel decryption key available. The receiver is Get the encryption key
Transactions by the registration server 46 must be performed periodically to update
Maybe not. (this is, It may optionally be performed with the usage report. )Tiger
Once the transaction is accepted, Package receiver 56 Notified as described above
. In general, An embodiment of this conditional access is: Multicast network
Thus, the conditional access system provided is not as secure as secrets, And
Provides a level of security.
In any of the above embodiments, Numerous application requests and applications
At least one of the cancellation requests is batched for more efficient processing
You may.
[Offline browsing]
What is offline browsing? If the user does not connect to the Internet
Access to the contents of the site. The content viewer 58 in the receiver 26 Web
To support offline browsing of users of the content of the last channel
respond. In a preferred embodiment, Content Viewer 58 Existing (ie,
Proxy server application that works with web browser 12 (not modified)
Contains. by this, User re-learns new user interface
Can be operated continuously by a widely used web browser without
It will work.
In a preferred embodiment, User opens an offline browsing session
When you start Content Viewer 58 Whether the web browser 12 is running first
And determine If so, Prompt the user to close the browser. browser
Is not working, Content Viewer 58 Via content viewer / proxy server
Configure your browser to access the Internet. afterwards, Content view
A / Proxy server Display of electronic program guide (EPG) started in browser
Let When your offline browsing session ends, Content viewer / proxy service
Server 58 closes browser 12, Reconfigure the browser to its original non-proxy configuration.
In another embodiment of the present invention, Content Viewer 58 Browser is network
Request URL from Content Viewer 58 before requesting a URL across
As Integrated with browser cache.
In any of the embodiments, Content Viewer 58 When it is initialized
, When a request for a URL is received from the browser 12, The "cache" of the URL
Try to find them from the list. The cache is Receive from subscribed channel
URL data items included in the specified package. Cash
From the viewpoint of the content viewer 58 that performs a search, URLs are composed of two parts
You. For example, the URL "http: // www. direcpc. com / users / index. html ”
(1) The protocol (always http) and the URL for which the URL is requested
The first part that identifies the domain name of the server is "http: // www. direcpc. com
"When,
(2) URL path name (directory and directory) in the web server file system
/ Users / index. html ”
Show the part.
Content Viewer 58 performs a cache search by first performing a domain name search
I do. The content viewer 58 displays the channel containing the URL from the domain name.
Maintain a data structure that maps domain names to lists. Preferred embodiment
In, this data structure is a hash table, and each hash entry is
List entry, where each list entry contains a domain name and a channel ID
. (As is known in the art, hash tables provide efficient information from arrays.
Provide information search method. The use of hash tables can cause
Different possible entries (or keys) under the indexing action
This allows it to be mapped to the same location in the array. ) Content Viewer 58
, Each package that lists the domain names of the URLs contained in the package
It is preferable to construct this data structure from the supplementary information within. Content viewer
58 extracts the domain name from the URL and changes the URL that may contain the URL.
The list of tunnels is determined from this data structure.
Next, the content viewer 58 performs a URL search, and in this case, the content viewer
Take a list of channels (determined from a domain name search) and find a match
Check the package for each channel until released. Content Viewer 58 First
Check the channel's delta package (if available) for a match
And then check the base package.
In some examples, the URL is in a package of one or more channels.
Could be. To handle this, the preferred embodiment provides a content view.
Check for channels that start at the latest crawl start time.
You. (The start time of the channel is recorded in the supplementary information of the package.
)
When the content viewer 58 finds a URL in the package, the content viewer 58
Retrieve the URL data item from the cage and, if necessary, decompress the URL data item.
I will. If the URL data item is differentially compressed, the content viewer
Retrieve URL data items from both cage and delta packages (if necessary)
And restore the contents of the corrected URL by performing differential compression restoration.
In many cases, the present invention provides a dial-up modem connection to the Internet.
Such as a home computer running Windows 95 (trademark) with a talk connection,
Used by receiver 26 with a switched connection to the Internet. The telephone line is
Used for both Internet access and regular telephone service (POTS)
Often. Another example is an ISDN switched connection. Receiver blocks use of another connection
Connection to the Internet, in addition to shared resources
Since the continuation is measured frequently, the user incurs additional expense with each use.
In such a switched connection situation, the receiver can share the telephone line with other users.
Is desirable. In a preferred embodiment, the content viewer 58 communicates with other users.
Controlling access to telephone lines in a way that allows sharing of telephone lines
To allow “seamless” access to content outside of the channel definition
To interact with the user. The content viewer can control "cache misses"
Do this.
“Cache misses” are generated in any package received and stored in memory 28.
This occurs when the browser 12 requests a URL that does not have any URL. Requested
The URL may not be in the received package. This is, for example,
URs whose web pages were crawled and were not included in the channel
This is because L may be referred to. This is an internet pause during crawling
Dynamic or web pages cannot be crawled automatically
This can occur because the content was included. In this example, some caches
Schmied frequently, within a short period of time, one for each of the embedded URLs lost
Has occurred.
The requested URL also indicates that the user has visited a page outside the scope of the channel definition.
Does not exist if you click a link from a page in the referenced channel definition.
May be For example, if the channel definition defines two levels of search depth
If a user requests a URL three levels deep, a cache miss occurs
Live. A cache miss also indicates that the user does not have a URL in the cache.
Also occurs when is set as the browser destination.
If a cache miss occurs, the content viewer 58 notifies the user and
Connect to the Internet (via the exchange connection) and
It is preferable to provide an opportunity for seamless access to the web page. FIG. 8
Of the steps performed by the content viewer 58 in the event of a cache miss
It is a flowchart. Content Viewer 58 first started another cache miss recently
It is determined whether or not it has been produced (block 100). If no, it is a cache miss
But
It is determined whether the user has previously identified the method to be processed (block 102). You
If the user preference is not specified, the content viewer 58
And that the requested content has access to the Internet.
The user is informed that it is only available (block 104).
After that, the content viewer 58 requests that the user connect to the Internet and
Ask them if they want to initiate a search for the retrieved content (block 106). This
The question is whether it will interfere with another use of the connection (ie, interrupt the telephone call) or
Or an automatic connection to the Internet that could lead to unwanted charges
To prevent Another cache miss while waiting for a response to this question
The content viewer 58 holds the cache miss until the user responds
. Block 106 also optionally informs the user that there are N seconds to respond to the question.
Start a countdown with questions. Figure 9 shows a cache miss to the user
Used to inform and ask users about their connection to the Internet
It is an example of a good dialog box. The example in FIG. 9 also includes an optional countdown
ing.
Referring again to FIG. 8, the user responds that he does not want to connect to the Internet.
The content view, or if the countdown ends without a user response,
Core 58 can only be obtained by connecting to the Internet.
The cache miss request by giving
No (block 108). In a preferred embodiment, the content viewer
-Includes text explaining that content can only be obtained via the Internet
"Error" HTTP response (or HT) containing the text or HTML body
Return to (Rewriting destination to ML page). As a result, browser 12
(Or HTML page) to the user.
Instead, if the user requests to connect to the Internet,
If you respond that you want access to the content, the content viewer
Is started (block 110). In a preferred embodiment, the content viewer 58
Acts as a normal proxy server, and connects the requested URL to the TCP server.
Request from a cache miss held while waiting for a user response
Initiate a connection to another URL server. The receiver 26 opens such a connection.
Is configured to automatically initiate an exchange connection to the Internet when
It may be. In another embodiment, the content viewer 58 is a device driver for the exchange connection.
Talk to Iva, initiate a connection, and everything until a connection to the Internet is set up
Is held.
Referring back to block 100, the content viewer 58 finds another cache miss.
If it is determined that a recent cache miss has occurred, the user has not
Initiates an internet connection (block 110) or requests
Is rejected (block 108). Blocks 110 to 112 indicate that the user has
Prevent questions from being “swept away”. This situation is when one or more embedded URLs are lost
Occurs frequently on a modified web page.
Similarly, when the user indicates a preference for a cache miss request, the content viewer
Is determined (block 102), following its selection (block 114),
Start (block 110) or reject the request (block 108)
.
[Use Report]
The present invention does not require any changes to the operation of the website and is ad-based
Provide sufficient usage information on the website to support the business model.
Instead, another network such as the Network Operations Center (NOC)
Usage information may be reported to the source. In particular, the present invention
Are also accessing that website through a normal caching proxy server
The usage information can be reported to the website as if. Instead,
The user may report usage information to a website in the form of a log file.
Generally, the web browser 12 provides a separate request for each URL that the user sees.
Is sent to the web server 10 (FIG. 1). Request for URL is "hit"
being called. In order to generate advertising revenue, websites are generally
The number of "hits" against the advertised URL (i.e., the site served the URL
Count). Websites may (i) receive the actual "hits"
Or (ii) you can expect the ad to be received based on past experience
“Hi
Receive ad revenue based on any of the "number" forecasts.
Websites generally contain the identifier (ie, name) of the user who visited the site.
Before, address, telephone number, etc.). However, the web
The site will allow any URL to be served by the same user for a period of time (ie, weeks and
(Several months). Websa
Sites are specific to each different browser requesting a URL from the site.
Gather this information by assigning “cookies” (known in the art
As such, a "cookie" uniquely identifies a user without revealing the user's identity
Of limited internal information transmitted between the web server and the web browser
Part. ). In order to retain advertising revenue, websites must identify which “hits”
It is important to be able to tell if the is received from the same user.
The present invention provides a cache hit tracker 40 in the backend subsystem 22.
Providing such information to websites by using (see Figure 3)
.
Next, referring to FIG. 10, the content viewer 58 in the receiver 26 displays various channels.
Back-end subsystem as specified by the channel definition
The usage information 42 is sent to the system cache hit tracker 40. Channel definition hits
The tracking portion is transmitted to the receiver 26 in the supplementary information of the package. Like
In a preferred embodiment, the usage information comprises a separate record for each "hit"
Where only a subset of the cache hits are reported. This use
Information is reported by a TCP / IP network such as the Internet 14
Preferably, the interface of the receiver to the Internet is a dial
It can be made by a switched connection, such as an up-modem connection. However
It is understood that usage information can be reported by any other suitable connection.
Will be.
The present invention provides a proxy (no change to website behavior) or log file
Files (other than simply acquiring and processing log files)
No change required), the usage information is web-
Return to site (or another location). Regarding proxy reporting,
The car 40 operates (from a web server perspective) as an HTTP proxy server
Is preferred. Cache hit tracker 40 reported from content viewer 58
The stored "hits" are stored in the receiver 26, and subsequently for each URL reported.
Perform an HTTP operation. This connects the receiver 26 to the Internet 14.
The time required to complete is minimized. It reports that hit to web server 10
Because it is not delayed while it is being done. Cache hit tracker
The type of HTTP operation performed by -40 is specified by the channel definition.
, This channel definition is sent to cache hit tracker 40 with usage report 42
It is. In particular, the following HTTP operation performs a proxy use report for each channel.
It may be configured as:
(1)GET
The cache hit tracker 40 uses HTTP GET operation (generally,
Transfer the URL data item from the server 10 to the cache hit tracker 40).
be able to. After that, the cache hit tracker 40
Data, but discards the data when received. This behavior is
What the server 10 is supposed to receive will provide the user with the URL data without using the present invention.
Data item is the most exact match.
(2)No GET waiting
The cache hit tracker 40 performs an HTTP GET operation (described above).
May wait for only the HTTP response header to be received from the web server 10.
No. Upon receipt, the cache hit tracker 40 immediately closes the connection. this
The network bandwidth used by the operation is small. This is the actual URL data
Data items need not be completely transferred.
(3)GET If Modified Since
The cache hit tracker 40 sends the last modified data along with the URL.
GET If-Modi resulting from HTTP response header contained in cage
It can perform a fed-Sinc HTTP operation. This behavior is also general
Network contents to complete the HTTP operation on the other hand
Decrease the degree.
(4)GET If Modified Sin No Wait
The cache hit tracker 40 is a GET If-Modified-Sinc
e operation (as described above) can be performed, but the URL changes and this is sent
It does not wait for data after a response from the web server 10 to be done. Actual URL data term
This action uses less network bandwidth because the eyes are not transferred
.
Cache hit tracker 40 also uses log file 44 to report usage
May go. In this way, the cache hit tracker 40 is reported
The hits are stored in log file 44, and a separate log file for each channel
Is preferably maintained. The cache hit tracker 40 (for example, F
Make log file 44 available on website (via TP GET action)
Or log file 44 to a website (eg, FTP PUT
Transmit periodically (by action or email).
In the preferred embodiment, each hit log file 44 contains one record per line.
Record and a flat ASCII file with a fixed number of fields per record
You. All fields are separated by spaces and fields that contain spaces
Is closed with a quote mark (""). In Table 2 below,
7 shows a preferred format of the log file 44.
In the preferred hit log file format in Table 2, the "Site ID"
Fields recognize hits from a single user without revealing that user's identity.
What is roughly equivalent to a "cookie" (described above) in that it allows you to be separated
To your website. The following is an example of a hit log file record (actual
In the last log file, this record is one line):
The channel definition for each channel can be either
Dictate which subset of the filtered subset is reported. Reported hits
By filtering unnecessary processes (and users) at the web server.
User connection time) while advertising and other important hits are minimized.
Report information for the project. Filters are generally “unimportant hits”
And report only ad-related and HTML hits,
Websites can use advertising statistics and page popularity to (tally)
It is provided for the purpose. Used to reduce reporting of insignificant hits
Filters that may be included include the following:
(1)Content filter
Content filters can be used, for example, to ensure that all ads
Format) can be used in the form of an image. Content Fill
Will detect and report all .gif image URLs and return most non-.gif (ie,
Remove the (non-advertisement) URL.
(2)URL filter
URL filters may, for example, include that all ads include "/ ads /" in their URL.
May be used when the URL has a URL. Therefore, “URL is” / ads
The "include" filter detects all hits with URLs that include "/ ads /"
Report and remove other (ie, non-advertisement) URLs. Such a URL file
The variations of the filter are “URL start” filter, “URL end” filter,
Or
A filter such as “URL matches regular expression” may be included.
The channel definition also defines the receiver's
The usage information to be reported. For example, the receiver can browse offline
At the end of the training session or periodically (every night, weekly, monthly, etc.)
Report usage information. These two methods are called “session end reports”
And called "periodic reporting". Alternatively, usage information may be provided upon request or
It may be reported on any other occasion.
Webcast channels are generally a subset of the content of a typical website.
Included only. As described above in connection with FIG.
If you request to access a URL (cache miss) that is not
The viewer 58 connects the receiver 26 to the Internet and
The server may directly access the URL. This direct connection is
The server 10 hits like this, just like an Internet user
To be able to track. Therefore, the cache miss feature of the present invention is
In addition, websites track "click-thrus", that is,
Save clicks to link to websites that provide additional information
To be able to Ads contained within the website are, for example, ads
Contains a link to a website that provides additional information about the product
Often. This is because advertising revenue is not only the number of
Also based on the number of users "click-thru" for additional information about the product
It is important because The present invention provides "sea" for URLs outside the scope of the channel definition.
"Response" or automatic access to preserve this important form of advertising revenue.
Carry. However, in such a situation, the usage report may indicate another
It is desirable not to hinder use and not to incur excessive connection charges.
The use of both session end reporting and periodic reporting is
Help you achieve your goals. Channels should minimize usage reporting connections
Session end usage report when it is important to get a usage report almost in real time
Configured for Channels are only available when it is important to minimize connection charges.
Configured for periodic reporting. Configure all channels for weekly reporting
Thus, the usage report can be concentrated on the connection once a week. All Chan
Reports to the panel may also be scheduled in the same time frame.
it can.
For periodic reporting, usage reporting minimizes the number of connections to the Internet
So that it is optimized. This writes out usage information and can occur at the same time.
To piggyback usage reports on any other connection to the Internet
This is done by waiting as long as possible. ("Piggybacking" means that usage information is
Refers to sending with information. )
Cache hit tracker is not overloaded for periodic reporting
It is advisable to balance the reporting of content. When the receiver reports usage
Time slots (for example, every night between midnight and 5 am), and
Connection time, which indicates the maximum time to wait before reporting usage information
Out value and receive. This timeout has a default of, for example, 5 days.
It may be. The receiver selects a random time within the usage reporting time frame and
Check if a usage report connection is made at this time. Use any channel
If the usage information is older than the channel use connection timeout, a connection must be made.
Must be done. When such a connection is made, all pending usage information
Information is reported.
In a preferred embodiment, the receiver first initiates a piggyback timeout and usage report.
By receiving a retry timeout, another Internet connection
And “piggyback” the usage report. Receiver also disabled, running
Retain any usage report time that is or has expired. The receiver is
Monitor internet connection. When the receiver connects to the Internet, the receiver
Time out after piggybacking timeout and use timer to start timer
Initialize the notification timer. When the receiver is disconnected from the Internet,
It disables the usage report timer. When the usage report timer expires
, The receiver checks if there is usage information ready to be reported
, If present, the receiver attempts to report it. Report succeeded or failed
When the receiver checks the connection, and if still connected, the receiver
Is
Timeout after retry timeout period and start timer
Initialize the usage report timer.
Thus, periodic reporting allows the user to use a connection timeout value (e.g.,
5 days) only if you have never connected to the Internet
A special connection to the Internet is made.
For session end reporting, the report is usually an offline browsing session.
This is done when the game is over. Indicates at that time that the user did not report usage
If you do (for example, because the telephone line is already occupied), the usage report
It is stored until the start of the next offline browsing session. But
At the start of each offline browsing session, the content viewer 58
Session end pending from previous offline browsing session
Check if a usage report exists. If so, the content viewer 58
Prompts the user to allow reporting of usage information, permission is received and usage is reported
Allows offline browsing to begin only after it has been done. Once set
Shortly after the end of use is reported, the content viewer 58
Report usage, which eliminates the need for a separate periodic usage reporting connection
This is because there is a possibility.
FIG. 11 shows a preferred embodiment for session end or periodic usage reporting
6 is a flowchart showing steps performed by the content viewer 58 in FIG.
. Once the content viewer 58 determines that usage reporting has begun, the receiver 26
A determination is made as to whether one is already connected to the Internet (block 150). no
In case it allows connection to the internet to make usage reports
Prompt the user (block 152). This allows usage reports to be
Is prevented from interfering. The content viewer 58 also responds to the user
It is preferable to start a countdown for the purpose. Figure 12 reports usage information
To urge users to allow them to connect to the Internet to
It is an example of the dialog box used. In the example of FIG.
Down is also included.
Referring back to FIG. 11, the content viewer grants the user permission to approve the connection.
A determination is made as to whether it has been received (block 154). If permission is granted (or
Content viewer 58 does not respond within the specified time), the content viewer 58
Attempt to set up a connection to the net (block 156).
Next, the content viewer determines whether the connection was successful (block 158).
If the connection attempt fails or the user denies permission to connect,
The viewer stores the usage information for later reporting (block 160) and
Ram ends. If the connection is successful, the content viewer will display all pending usage information.
To the cache hit tracker 40 (block 162). Content viewer
Usage information in the form of a sequence of HTTP, PUT or HTTP POST operations
It is preferable to report the information. These HTTP operations are compatible with most firewalls.
Preferred because it can be sent to the Internet through the Internet. But
However, usage information can also be reported by email,
Most types of systems allow the transmission of information. Each HTTP PUT or
Is an HTTP POST operation (or emailing) for multiple hits
Preferably contains a block of usage information, so that usage reporting connection time
The use information can be transmitted more efficiently.
You.
Thereafter, the content viewer determines whether the report was successful (block 164).
. If not (eg, if the HTTP PUT operation failed),
The usage information is stored as will be reported later (block 166). It also goes
Determine if there are any reporting attempts, and if so, discard the usage information.
(Block 166). After the usage information is stored or discarded (block 166),
Alternatively, if the content viewer determines that the report was successful (block 164), the content
The viewer blocks the connection from the Internet (block 168).
Instead, content viewer 58 determines that the receiver is connected to the Internet.
If specified (block 150), all pending usage information is
"Piggyback" on the Internet connection (block 170). After that, the content view
The client determines whether the report was successful (block 172). If not, the content
The software may store or discard the usage information as described above in connection with block 166.
(Block 174). Successful reporting or usage information is memorized or discarded
After being discarded, the program ends.
From the above description, those skilled in the art will recognize various modifications and alternative embodiments of the present invention.
Will be. Therefore, what is described herein should be construed as merely exemplary.
Yes, to teach those skilled in the art the best mode of carrying out the invention. Cis
The details of the system may vary without substantially departing from the scope of the invention,
The limited use of all modifications within the scope of the appended claims is not
Secured.
─────────────────────────────────────────────────────
フロントページの続き
(51)Int.Cl.7 識別記号 FI テーマコート゛(参考)
H04L 12/54 H04L 11/20 101B
12/58 9/00 641
H04N 7/173 610
(81)指定国 EP(AT,BE,CH,CY,
DE,DK,ES,FI,FR,GB,GR,IE,I
T,LU,MC,NL,PT,SE),OA(BF,BJ
,CF,CG,CI,CM,GA,GN,GW,ML,
MR,NE,SN,TD,TG),AP(GH,GM,K
E,LS,MW,SD,SZ,UG,ZW),EA(AM
,AZ,BY,KG,KZ,MD,RU,TJ,TM)
,AL,AM,AT,AU,AZ,BA,BB,BG,
BR,BY,CA,CH,CN,CU,CZ,DE,D
K,EE,ES,FI,GB,GE,GH,GM,HR
,HU,ID,IL,IS,JP,KE,KG,KP,
KR,KZ,LC,LK,LR,LS,LT,LU,L
V,MD,MG,MK,MN,MW,MX,NO,NZ
,PL,PT,RO,RU,SD,SE,SG,SI,
SK,SL,TJ,TM,TR,TT,UA,UG,U
Z,VN,YU,ZW
【要約の続き】
の使用、および受信機上でアクティブであってもよい別
のアプリケーションを管理し、マルチキャスト情報の受
信および処理が受信機動作を妨害しないことを確実にす
る。──────────────────────────────────────────────────の Continued on the front page (51) Int.Cl. 7 Identification symbol FI Theme coat II (reference) H04L 12/54 H04L 11/20 101B 12/58 9/00 641 H04N 7/173 610 (81) Designated countries EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, IT, LU, MC, NL, PT, SE), OA (BF, BJ, CF, CG, CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG), AP (GH, GM, KE, LS, MW, SD, SZ, UG, ZW), EA (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), AL, AM, AT, AU, AZ, BA, BB, BG, BR, BY, CA, CH, CN, CU, CZ, DE, DK, EE, ES, FI, GB, GE, GH, GM, HR , HU, ID, IL, IS, JP, KE, KG, KP, KR, KZ, LC, LK LR, LS, LT, LU, LV, MD, MG, MK, MN, MW, MX, NO, NZ, PL, PT, RO, RU, SD, SE, SG, SI, SK, SL, TJ, TM , TR, TT, UA, UG, UZ, VN, YU, ZW, and manage another application that may be active on the receiver, and receive and process multicast information. Ensure that it does not interfere with receiver operation.