(57)【特許請求の範囲】
【請求項１】
データ処理システムにおいて、プリキャッシュされたデータを複数のユーザに効率的に分配する方法であって、
１つまたは複数のコンテンツ・サーバ上のデータにアクセスするために複数のユーザによって使用される中間サーバにおいて、ユーザ・データ要求を監視するステップと、
ユーザ・データ要求を監視する前記ステップにおいて取得された、前記中間サーバを使用するしきい値数のユーザによる選択されたデータに対する過去のアクセス履歴に基づいて、プリフェッチするために１つまたは複数のコンテンツ・サーバ上に置かれたデータを選択するステップと、
前記選択するステップにおいて選択されたデータの現行バージョンを、前記中間サーバに送信するステップとを含む方法。
【請求項２】
ユーザ・データ要求を監視する前記ステップが、ユーザからウェブ・サイトのオフピーク情報検索要求を受け取るステップをさらに含む、請求項１に記載の方法。
【請求項３】
ユーザ・データ要求を監視する前記ステップが、複数のウェブ・サイトの閲覧要求の登録リストに登録されているウェブ・サイトを閲覧する閲覧要求を受け取るステップをさらに含む、請求項１に記載の方法。
【請求項４】
さらに、複数のウェブ・サイトの閲覧要求の登録リストを形成するステップを有する、請求項１に記載の方法。
【請求項５】
複数のウェブ・サイトの閲覧要求の登録リストを形成する前記ステップが、前記登録リストを選り分けて放棄された閲覧要求を除去するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記中間サーバに送信するために前記選択されたデータを圧縮するステップをさらに含む、請求項１に記載の方法。
【請求項７】
ユーザ・データ要求を監視する前記ステップが、ウェブ・サイトのページを求める要求を受け取るステップをさらに含む、請求項１に記載の方法。
【請求項８】
プリフェッチするために１つまたは複数のコンテンツ・サーバ上に置かれたデータを選択する前記ステップが、前記中間サーバに送信するために、前記中間サーバにまだ存在していないウェブ・サイトのデータを選択するステップをさらに含む、請求項１に記載の方法。
【請求項９】
ウェブ・サイトのデータを選択する前記ステップが、完全なページがサイズ制限に違反しない場合、前記中間サーバ内にまだ存在しておらず、前記中間サーバの少なくとも１人のユーザによってアクセスされる可能性が高い完全なページを前記ウェブ・サイトから選択するステップをさらに含む、請求項８に記載の方法。
【請求項１０】
ウェブ・サイトのデータを選択する前記ステップが、前記中間サーバ内にまだ存在しておらず、前記中間サーバの少なくとも１人のユーザによってアクセスされる可能性が高い完全なページを、ファイル数、バイト数、及び制限時間から成るグループから選択されたサイズ制限までウェブ・サイトから選択するステップをさらに含む、請求項８に記載の方法。
【請求項１１】
プリフェッチするために１つまたは複数のコンテンツ・サーバ上に置かれたデータを選択する前記ステップが、前記中間サーバに送信するために前に選択された少なくとも１つのページにリンクされたページを選択するステップをさらに含む、請求項１に記載の方法。
【請求項１２】
ユーザ・データ要求を監視する前記ステップが、ページをウェブ・サイトから求める要求を受け取るステップをさらに含み、
プリフェッチするために１つまたは複数のコンテンツ・サーバ上に置かれたデータを選択する前記ステップが、前記要求ページにリンクされた前記中間サーバ内にまだ存在していないページであって、ユーザによってアクセスされる可能性の高い前記要求ページにリンクするページを選択するステップをさらに含む、
請求項１に記載の方法。
【請求項１３】
プリフェッチするために１つまたは複数のコンテンツ・サーバ上に置かれたデータを選択する前記ステップが、前記中間サーバ内にまだ存在していない選択された前記データ内の更新データを特定するステップと、前記中間サーバに送信するために前記更新データのみを選択するステップとを、さらに含み、
前記中間サーバに送信する前記ステップが、選択された前記更データを圧縮された形で前記中間サーバに送信するステップをさらに含む、
請求項１に記載の方法。
【請求項１４】
前記中間サーバに送信するために前記更新データを選択する前記ステップが、前記中間サーバのユーザによってアクセスされる可能性の高い少なくとも１つのページにリンクしているページのうち前記中間サーバ内にまだ存在していない更新部分を選択するステップをさらに含む、請求項１３に記載の方法。
【請求項１５】
プリキャッシュされたデータを複数のユーザに効率的に分配する装置であって、
１つまたは複数のコンテンツ・サーバのデータにアクセスするために複数のユーザによって使用される中間サーバにおいてユーザ・データ要求を監視する監視手段と、
前記監視手段において取得された、前記中間サーバを使用するしきい値数のユーザによる選択されたデータに対する過去のアクセス履歴に基づいて、プリフェッチするために１つまたは複数のコンテンツ・サーバ上に置かれたデータを選択する選択手段と、
前記選択されたデータの現行バージョンを前記中間サーバに送信する送信手段とを含む装置。
【請求項１６】
前記選択されたデータを前記中間サーバに送信するために圧縮する圧縮手段をさらに含む請求項１５に記載の装置。
【請求項１７】
前記監視手段が、ウェブ・サイトのページを求める要求を受信する手段を含む、請求項１５に記載の装置。
【請求項１８】
前記監視手段が、データをウェブ・サイトから求める要求を受け取る手段をさらに含み、
前記選択手段が、前記中間サーバに送信するために前記中間サーバ内にまだ存在していない更新データを前記ウェブ・サイトから選択する手段をさらに含む、
請求項１７に記載の装置。
【請求項１９】
前記選択手段が、前記中間サーバ内にまだ存在しておらず、前記中間サーバの少なくとも１人のユーザによってアクセスされる可能性が高いページを前記ウェブ・サイトから選択する手段をさらに含む、請求項１８に記載の装置。
【請求項２０】
前記選択手段が、前記中間サーバにすでに存在するデータの少なくとも１つのページにリンクされたページを選択する手段をさらに含む、請求項１８に記載の装置。
【請求項２１】
前記リンクされたページを選択する手段が、前記中間サーバの少なくとも１人のユーザによってアクセスされる可能性が高いページを選択する、請求項２０に記載の装置。
【請求項２２】
前記選択手段が、前記中間サーバにまだ存在していない前記選択されたデータ内の更新データを特定する特定手段と、前記中間サーバに送信するために前記更新データのみを選択する選択手段と、を含み、
前記送信手段が、前記選択された更新データを圧縮された形で前記中間サーバに送信する手段を含む、請求項１８に記載の装置。
【請求項２３】
前記選択手段が、中間サーバの少なくとも１人のユーザによってアクセスされる可能性が高い少なくとも１つのページにリンクされたページのうち、前記中間サーバ・システム内にまだ存在していない更新部分を選択する手段を含む、請求項１８に記載の装置。
【請求項２４】
データ処理システムと共に使用するコンピュータ・プログラムを記憶したコンピュータ読み取り可能な記憶媒体であって、
１つまたは複数のコンテンツ・サーバ上のデータにアクセスするために複数のユーザによって使用される中間サーバにおいてユーザ・データ要求を監視する第１の命令と、
前記第１の命令によって取得された、中間サーバを使用するしきい値数のユーザによる選択されたデータに対する過去のアクセス履歴に基づいて、プリフェッチするために１つまたは複数のコンテンツ・サーバ上に置かれたデータを選択する第２の命令と、
前記選択されたデータの現行バージョンを圧縮された形式で前記中間サーバに送信する第３の命令とを含む、
前記記憶媒体。
【請求項２５】
少なくとも１つのコンテンツ・サーバのデータにアクセスするために複数のユーザによって使用される中間サーバ・システムの複数のユーザにデータを効率的に分配する方法であって、
複数のユーザからデータを求める要求を受け取るステップと、
受け取った要求に基づいて、コンテンツ・サーバのデータの中から、当該データが前記コンテンツ・サーバのユーザによってアクセスされる確率に基づいて、前記中間サーバ・システムを使用するしきい値数の複数のユーザによってアクセスされる可能性が高いと判断されたデータを選択するステップと、
選択されたデータを中間サーバ・システムにおいてプリキャッシュするステップと、
複数のユーザ内の個々のユーザが前記中間サーバ・システムに接続すると、プリキャッシュされたデータの一部を求める個々のユーザからの要求を受け取る前に、プリキャッシュされたデータから、個々のユーザから前に受け取った要求に基づいて選択されたプリキャッシュされたデータの一部を個々のユーザに圧縮された形で送信するステップとを含む方法。
【請求項２６】
前記データはウェブ・ページであり、前記データが前記コンテンツ・サーバのユーザによってアクセスされる確率は、前記ウェブ・ページへアクセスしたユーザ数によって決定される、請求項２５に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般にデータ処理システムに関し、詳細にはデータ処理システムのデータ分配機構に関する。さらに具体的には、本発明はインターネットから多数のデータ処理システムに情報のデータ分配を行う機構に関する。
【０００２】
【従来の技術】
インターネットは、情報源としても娯楽源としても定着した文化機構になっている。多くの企業は、その市場開発の一環としてウェブ・サイトを開設し、企業が提供する製品やサービスについて消費者に知らせたりその他の情報を提供したりすることによって、ブランド信仰を生み出そうとしている。多くの米国連邦、州、及び地方行政機構も、インターネット・サイトを情報提供の目的に使用しており、米国の州の内国歳入庁の事務官など事実上社会のあらゆる階層の人々と対話しなければならない機関は特にそうである。公共記録の情報ガイドや検索可能データベースをオンラインで提供することによって、運営費を削減することができる。
【０００３】
現在、インターネットで最も一般的に使用されているデータ伝送方法は、ワールド・ワイド・ウェブ環境を使用する方法であり、これは単に「ウェブ」とも呼ばれる。ファイル転送プロトコル（ＦＴＰ）やＧｏｐｈｅｒなど、情報を伝送するためのインターネット資源は他にもあるが、ウェブほど普及していない。ウェブ環境では、サーバとクライアントが、ハイパーテキスト転送プロトコル（ＨＴＴＰ）という、様々なデータ・ファイル（たとえばテキスト、静止画像、音声、動画像など）の伝送を処理する周知のプロトコルを使用してデータ伝送を行う。ユーザに提示するために、情報は標準ページ記述言語であるハイパーテキスト・マークアップ言語（ＨＴＭＬ）によってフォーマットされる。基本提示フォーマットの他に、開発者はＨＴＭＬによってユニフォーム・リソース・ロケータ（ＵＲＬ）で識別される他のウェブ資源への「リンク」を指定することができる。ＵＲＬとは、特定の情報への通信経路を定義する特殊構文識別子である。クライアントがアクセスすることができる「ページ」と呼ばれる情報の各論理ブロックがＵＲＬによって識別される。
【０００４】
ウェブ上の情報の検索は、一般に、クライアント機においてＨＴＭＬ対応の「ブラウザ」（ＵＲＬによって識別された情報を求める要求を受渡しすることができるプログラム）によって行われる。要求は、クライアントに接続されたサーバに渡され、一連のサーバによって処理されて要求された情報の検索を行うことができる。この情報はＨＴＭＬに従ってフォーマットされたクライアントに提供される。
【０００５】
最大の消費者層は、現在これらのウェブ資源にアクセスすることができない。このような消費者は一般に、これらの資源を利用するのに不可欠なハードウェア及びソフトウェアも必要なコンピュータ技術も手に入れることができないか、またはその動機を持っていない。現在販売されている大部分のコンピュータには、ウェブ・ブラウザを含むインターネット・アクセス機能がプリロードされているが、かなりの数の家庭はパーソナル・コンピュータを持っていない。操作が簡単でコンピュータ技術のないユーザでもインターネットにアクセスする機会が得られるようにする低価格のデータ処理システムが必要である。この必要は、たとえば「ＷｅｂＴＶ」などの「セットトップ」システムによってある程度は満たされる。この種のシステムを使用すると、放送またはケーブル・テレビジョンなど従来のテレビジョン表示とインターネット・アクセス用のユーザ・インタフェースとを迅速に切り換えることができる。したがって、ユーザのテレビジョンはウェブ機器の一部になる。
【０００６】
しかし、ウェブ機器用の低価格で簡単なデータ処理システムを設計するには、対象ユーザが知識がなかったり不慣れであることを前提とする必要がある。したがって、データ処理システムの操作は、単純でしかも直観的であり、ユーザ側の技術的知識をほとんどあるいはまったく必要としないものでなければならない。この点で、ウェブ機器に実装する際に従来のウェブ・ブラウザの機構の多くをユーザにとって透過になるように適応させなければならない。
【０００７】
ウェブ機器に関して実施すると特に有利となるウェブ・ブラウザの１つの機能はオフライン閲覧である。特定のウェブ・サイトに対して大量の通信需要があると、そのようなサイトへのアクセスが困難になることがある。オフライン閲覧を使用すると、クライアント側で同時ユーザ対話なしにオフピーク期間中にそのサイトにある情報を取り出し、後でユーザがオフラインで閲覧することができる。オフライン閲覧とは、ハード・ドライブなどのローカル・メモリのキャッシュに入れられたウェブ・ページを、そのウェブ・ページの取り出し元のウェブ・サイトに接続せずに表示する処理である。これらのページは一般に、元のウェブ・サイトからオフピーク検索、すなわちサイトへの通信量が最も少ない期間中の検索によって取り出される。
【０００８】
一般に、スケジューリング・ユーティリティによって、ユーザは特定のウェブ・ページを取り出し、ユーザのハード・ドライブに記憶して後で見ることができる。オフライン・ブラウザは、個々のユーザにとっては有利かも知れないが、クライアントのグループとウェブとの間の通信の最適化に対応することができない。各クライアントがオフピーク情報検索を使用している個々のクライアントが同じサーバまたはサーバのグループに接続する場合も通信資源に負担がかかる可能性がある。このような状況は、特に相当数のウェブ機器が１つのサービス・プロバイダを介してインターネットにアクセスする場合に起こる。そのような環境でのオフライン閲覧を複雑にするオフピーク情報検索の実際上の制約に加えて、サービス・プロバイダがオフライン閲覧用のオフピーク情報検索に割り当てる時間を制限することが予想される。
【０００９】
したがって、人気のあるインターネット・サイトから特定のユーザ・グループに情報をダウンロードする自動的でより効率の高い機構を備えることが望ましいであろう。複数のユーザによるオフピーク情報検索の使用は、時差がある場合であってもサーバとインターネットとの間にボトルネックを生じさせ、必要帯域幅を満たすための追加の資源を必要とする。したがって、この帯域幅要件をなくす機構を設けることも望ましい。また、この機構によって情報源から個々のユーザまでの伝送時間とサーバにおける必要最小資源までの伝送時間の両方が最小限になれば有利であろう。
【００１０】
【発明が解決しようとする課題】
したがって、本発明の１つの目的は、改良されたデータ処理システムを提供することである。
【００１１】
本発明の他の目的は、データ処理システム用の改良されたデータ分配機構を提供することである。
【００１２】
本発明の他の目的は、インターネットから多数のデータ処理システムへの情報のデータ分配を行う改良された方法及び機構を提供することである。
【００１３】
【課題を解決するための手段】
上記の目的は、以下に述べるようにして達成される。複数ユーザによるワールド・ワイド・ウェブへのアクセスを可能にするサーバにおいて、定期的に更新されるウェブ・サイトから選択されたページをプリキャッシュする。ユーザによってアクセスされる可能性が高いウェブ・サイトのホーム・ページにリンクするページを取り出してサーバに記憶する。加入者からのそのウェブ・サイトへのオフライン閲覧要求に応答して、まだ加入者のシステムに存在していないそれらのページまたはページの一部に、統計情報やリンク関係、内容を使用してアクセス尤度による優先順位を付ける。アクセスされる可能性の最も高いページまたはページ部分を圧縮して加入者に送信し、それによって必要接続時間を最小限にすると共に更新可能な加入者数を最大限にする。
【００１４】
【発明の実施の形態】
図面、特に図１を参照すると、本発明を実施することができる分散データ処理システムの図が示されている。ユーザ装置１０２、１０４、１０６、及び１０８は、それらのユーザ装置が公衆交換電話網（ＰＳＴＮ）１１８にアクセスできるようにする通信リンク１１０、１１２、１１４、及び１１６を有する。ユーザ装置はこれらの通信リンクを介してサーバ１２０と通信する。サーバは通信リンク１２２によってＰＳＴＮ１１８に接続されている。サーバ１１２０はユーザ装置１０２〜１０８が通信リンク１２６を介してインターネット１２４にアクセスすることができるようにする。ユーザ装置１０２〜１０８によるインターネット１２４へのアクセスを可能にするほかに、サーバ１２０は様々な構成情報、パスワード、電子メール・メッセージ、及びバックアップ・データを記憶装置（ＳＤ）１２８に記憶する。ユーザ装置１０２〜１０８は、米国のカリフォルニア州やニューヨーク州などの地理的に遠隔の場所に置かれていてもよい。さらに、ユーザ装置１０２〜１０８は地球上の他の大陸にあってもよい。
【００１５】
図２を参照すると、本発明により図１のサーバ１２０などのサーバとして実施することができるデータ処理システムを示すブロック図が図示されている。データ処理システム２００は、システム・バス２０６に接続された複数のプロセッサ２０２及び２０４を含む対称マルチプロセッサ（ＳＭＰ）システムとすることができる。システム・バス２０６には、ローカル・メモリ２０９とのインタフェースを提供するメモリ・コントローラ／キャッシュ２０８も接続されている。システム・バス２０６にはＩ／Ｏバス・ブリッジ２１０が接続され、Ｉ／Ｏバス２１２へのインタフェースを提供する。メモリ・コントローラ／キャッシュ２０８とＩ／Ｏバス・ブリッジ２１０は図のように統合することもできる。
【００１６】
Ｉ／Ｏバス２１２に接続された周辺装置相互接続（ＰＣＩ）バス・ブリッジ２１４がＰＣＩバス２１６へのインタフェースを提供する。ＰＣＩバス２１６にはいくつかのモデム２１８〜２２０を接続することができる。典型的なＰＣＩバス実施態様は、４基のＰＣＩ拡張スロットまたはアドイン・コネクタに対応する。アドイン・ボードを介してＰＣＩローカル・バス２１６に接続されているモデム２１８〜２２０を介して図１に図示されているＰＳＴＮ１１８への通信リンクを設けることができる。図の例のモデム２１８〜２２０は、図１に示すインターネット１２４への接続も提供する。
【００１７】
追加のＰＣＩバス・ブリッジ２２２、２２４が追加のＰＣＩバス２２６、２２８へのインタフェースを提供し、そこから追加のモデムに対応することができる。このようにして、サーバ２００は同時に複数のユーザ装置によるダイアルアップを可能にする。図のように、Ｉ／Ｏバスにはメモリ・マップ・グラフィクス・アダプタ２３０とハード・ディスク２３２も直接または間接に接続することができる。
【００１８】
当業者なら、図２に図示されているハードウェアは変更可能であることがわかるであろう。たとえば、図のハードウェアに追加して、またはその代わりとして、光ディスク・ドライブなど他の周辺装置も使用可能である。図の例は、本発明に関してアーキテクチャ上の制限を示すことを意味しない。
【００１９】
図２に図示するデータ処理システムは、たとえば、拡張対話式エグゼクティブ（ＡＩＸ）オペレーティング・システムが稼働する米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレイションの製品であるＩＢＭ  ＲＩＳＣ／Ｓｙｓｔｅｍ６０００システムとすることができる。データ処理システムは、ウェブ・サーバにプラットフォームを提供すると共に、インターネット・サービス・プロバイダがウェブ・クライアントまたはユーザ装置にインターネットへのアクセスを提供するために使用する相互接続されたサーバのグループのうちの１つのサーバとなることができる。
【００２０】
本発明の好ましい実施例によるサーバ・データ処理システムは、インタフェースの拡張に対応する、米国カリフォルニア州マウンテンビューのネットスケープ・コミュニケーションズ・コーポレイションの製品であるＮｅｔｓｃａｐｅ  Ｅｎｔｅｒｐｒｉｓｅ  Ｓｅｒｖｅｒバージョン２．０などのウェブ・サーバ・プログラムを含む。したがってこのサーバは、クライアントの要求を構成情報と共に受け入れ、応答を返す周知の１組のサーバ・アプリケーション機能（ＳＡＦ）を含む。サーバは、アプリケーション開発者が一般に「プラグイン」と呼ばれているソフトウェア・プログラムを使用してＳＡＦの拡張またはカスタマイズを行うことができるようにする拡張機能を備えたアプリケーション・プログラミング・インタフェース（ＡＰＩ）も含むことができる。サーバは、クライアントによるオフライン閲覧をサポートし、ウェブ・ページをプリキャッシュするための記憶装置を備える。サーバは、クライアントがプリキャッシュとオフライン・ダウンロードを行うためのウェブ・ページを選択する後述のプロセスも実施またはサポートする。
【００２１】
次に図３を参照すると、図１のユーザ装置１０２〜１０８などのユーザ装置として実施可能なデータ処理システムの図が示されている。図３は、データ処理システムを全体的に示した図である。図示されている例のデータ処理システム３００は、ユーザが負担するハードウェア費用を最低限に抑えてインターネットへのアクセスを提供する。データ処理システム３００はデータ処理装置３０２を含む。データ処理装置３０２は、一般的な娯楽センターに収まる大きさであることが好ましく、ユーザがインターネットを「ブラウズ（閲覧）」することができるようにするパーソナル・コンピュータが従来備える必要なすべての機能を備えている。さらに、データ処理装置３０２は、たとえば留守番電話機能、ファクシミリ伝送の送受信、またはボイス・メール機能の提供など、その他の一般的な機能も備えることができる。
【００２２】
データ処理装置３０２はウェブ機器であり、グラフィカル情報の表示のためにテレビジョン３０４に接続される。テレビジョン３０４は適合するテレビジョンであればどのようなテレビジョンでもよいが、Ｓビデオ入力を備えたカラー・テレビジョンは画像情報をよりよく表示する。データ処理装置３０２は、標準同軸ケーブル接続によってテレビジョン３０４に接続することができる。リモート・コントロール装置３０６によって、ユーザはデータ処理装置３０２との対話や制御を行うことができる。リモート・コントロール装置３０６は赤外線（ＩＲ）信号を放出し、干渉を避けるために通常のテレビジョン、ステレオ、及びＶＣＲ用赤外線遠隔制御周波数とは異なる周波数で変調されることが好ましい。リモート・コントロール装置３０６は、表示装置上でのカーソル移動及び項目選択を行う機能を含む従来のパーソナル・コンピュータにおけるポインティング・デバイスの機能を備える。
【００２３】
次に図４を参照すると、本発明の好ましい実施例によるデータ処理装置３０２の主要な構成要素のブロック図が図示されている。従来のパーソナル・コンピュータと同様に、データ処理装置３０２はシステム・バス４０８に接続されたプロセッサ４０４とメモリ４０６を含むマザーボード４０２を備える。プロセッサ４０４は、少なくとも１００ＭＨｚ以上で動作する４８６プロセッサであることが好ましい。メモリ４０６は、基本入出力サービス（ＢＩＯＳ）ルーチンを含む読取り専用メモリ（ＲＯＭ）４０６ａを含み、キャッシュ・メモリまたはビデオＲＡＭあるいはその両方を含むことができる。
【００２４】
マザーボード４０２上にあり、システム・バス４０８に接続されたビデオ／ＴＶ変換器４１０が、コンピュータ・モニタ用のコンピュータ・ビデオ信号と、複合テレビジョン信号と、Ｓビデオ信号とを発生する。ビデオ／ＴＶ変換器４１０の機能は、市販のビデオ及び変換器チップを使用して実現可能である。有線キーボード／ポインティング・デバイスと赤外線キーボード／リモート・コントロールのどちらを使用しているかを問わず、マザーボード４０２上のキーボード／リモート・コントロール・インタフェース装置４１２がコントローラ４１４を介してキーボード・コードを受け取る。赤外線リモート・コントロール装置３０６は信号を送出し、その信号が従来のマウスまたはポインティング・デバイスの移動によって発生した制御信号として最終的にシリアル・ポートに送られる。リモート・コントロール装置３０６上のボタンのうちの２つは従来のマウスの２つのボタンと同じに解釈されるが、残りのボタンは赤外線キーボードのキーストロークに対応する信号を送出する。したがって、リモート・コントロール装置３０６は赤外線キーボードが備える機能の一部を備えている。マザーボード４０２上のコネクタ／表示器４１６が、前述のデータ処理装置３０２上の接続機構と表示器の機能を果たす。
【００２５】
図の例のマザーボード４０２の外部には、電源４１８と、ハード・ドライブ４２０と、モデム４２２と、スピーカ４２４がある。電源４１８は従来の電源であるが、コントローラ４１４からマザーボード４０２、ハード・ドライブ４２０、モデム４２２に供給されるすべての電力を遮断する制御信号を受け取る点が異なる。ある種の回復状況では、電源を遮断してリブートするのが、これらのすべての装置を既知の状態にリセットする唯一の保証された方法である場合がある。すなわち、電源４１８は、制御装置４１４からの信号に応答して、データ処理装置３０２の電源を切り、再起動することができる。
【００２６】
ハード・ドライブ４２０には、データ処理装置３０２のオペレーティング・システムとアプリケーション・ソフトウェアが入っている。これには、米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレイションの製品であるＩＢＭ  ＤＯＳ  ７．０と、米国ワシントン州レドモンドのマイクロソフト・コーポレイションの製品であるＷｉｎｄｏｗｓ  ３．１と、米国カリフォルニア州マウンテンビューのネットスケープ・コミュニケーションズ・コーポレイションの製品であるＮｅｔｓｃａｐｅ  Ｎａｖｉｇａｔｏｒが含まれることが好ましい。ハード・ドライブ４２０にはデータも記憶される。モデム４２２はマザーボード４０２の側面に取り付けられたスロットに差し込まれ、Ｖ．４２ｂｉｓ、Ｖ．３４ｂｉｓ、Ｖ．３４、Ｖ．１７  Ｆａｘ、ＭＮＰ１−５、及びＡＴコマンド・セットに対応する３３．６ｋｂｐｓモデムであることが好ましい。ハード・ドライブ４２０には、気に入ったインターネット・サイトや、インタフェース・サイトからダウンロードされまだ閲覧されていないリストなどのデータも記憶される。さらに、ハード・ドライブ４２０には、サービス・プロバイダとの通信リンクの確立とデータ処理システムの構成プロセスの開始に必要な命令が入れられる。
【００２７】
コントローラ４１４は、１つまたは複数の８０５ｘファミリー・コントローラであることが好ましい。コントローラ４１４には絶えず電力供給され、データ処理装置３０２がオンにされると、データ処理装置３０２が正常に稼働していることを示す「ｐｉｎｇ」がないかシステムを監視する。コントローラ４１４が所定のタイムアウト期間内にｐｉｎｇを受け取らなかった場合、コントローラ４１４はシステムから電源を遮断し、システムを再起動する。これが必要になるのは、たとえばシステムに一般保護違反が生じた場合である。何度も再起動を試みてシステムが正常に機能しないことがわかった場合、コントローラ４１４はデータ処理装置３０２を遮断し、表示器４１６で点検が必要であることを知らせる。したがって、データ処理装置３０２は、状況によってはユーザの介入なしに自己回復することができる。
【００２８】
コントローラ４１４は、赤外線リモート・コントロール装置３０６、赤外線キーボード、有線キーボード、または有線マウスからの入力信号の受信と処理も行う。１つのキーボードまたはポインティング・デバイスを使用しているときは他の入力装置はすべてロックアウト（無視）され、所定の期間の間どの入力装置もアクティブにならなかった時点までその状態が続く。その後、最初に活動を生じさせたキーボードまたはポインティング・デバイスが他のすべての入力装置をロックアウトする。また、コントローラ４１４はモデムの使用を示すＬＥＤ表示器を除くすべてのＬＥＤ表示器を直接制御し、電源オフ−オン・サイクル中にブート・セクタ選択を指定する。
【００２９】
当業者なら、図３及び図４に図示し、前述した構成要素は特定の用途または実施態様によって変わる場合があることがわかるであろう。本発明を実施することができるそのような変形態様は、本発明の精神及び範囲に入るものと見なされる。
【００３０】
次に図５を参照すると、本発明の好ましい実施例による、サーバにおいてデータをプリキャッシュするプロセスを示す高水準フローチャートが図示されている。このプロセスは、ウェブ・サーバがオフピーク時間帯に実行するか、またはバックグラウンド・アプリケーションとして１日中または数日間にわたって連続実行することができる。
【００３１】
図のプロセスはステップ５０２から開始する。ステップ５０２には、サーバのシステム・クロックまたはサーバ内の他の何らかの事象に基づくプロセスの時限「ウェイクアップ」または自動開始が示されている。ダウンロード開始のタイミングは、ユーザ装置による自動ダウンロードのスケジューリングに合わせて調整することができる。たとえば、サーバを使用するユーザ装置がすべて、午前３：００から午前５：００までの間に自動ダウンロードを行うように構成されている場合、サーバはこのプロセスを午前１：００頃に開始するように構成し、それによってサーバへの必要なダウンロードを、ユーザ装置のダウンロードに間に合うように完了させることができる。あるいは、それぞれの自動ダウンロードをオーバーラップさせ、サーバへの個々のダウンロードがユーザ装置からの要求の前に完了するようにすることもできる。この代替方法は、このプロセスをバックグラウンド・アプリケーションとして実行する場合に適切であろう。
【００３２】
プロセスは次にステップ５０４に進み、サーバでプリキャッシュするデータの登録リストから項目を選択する。登録リストには、クライアントまたはユーザ装置が定期的に（たとえば毎晩または週１回）ダウンロードする情報の識別標識が、識別された各情報について現在登録されている付随するユーザ番号と共に入っている。登録リストには、たとえばユーザまたはクライアントによって頻繁に要求される様々なウェブ・ページのＵＲＬのリストを含めることができる。
【００３３】
登録リストは、登録リストへの項目の追加を求める特定のユーザ要求によって、または同じ情報源からの定期的転送がないかユーザ転送を監視することによって、あるいはその両方によって生成することができる。たとえば、登録リストは、ウェブ・データがプリキャッシュされるサーバを使用するクライアントからの特定のオフピーク情報検索要求をコンパイルするか、またはクライアントのウェブ・ブラウザの「ブックマーク」リストまたは「お気に入り」リストを調べることによって生成することができる。あるいは、ブックマーク・リストにＵＲＬが追加されるとオフピーク検索リストへのそのＵＲＬの追加に関してクライアントへの照会が開始されるようにクライアントのウェブ・ブラウザを構成することもできる。
【００３４】
登録リストは、実際のユーザ転送を監視し、それらを登録要求と比較して、項目を要求したユーザがその項目をしきい値期間（すなわち１カ月）より長い期間にわたってダウンロードしない場合、その項目に付随する要求番号を減分することによって維持することができる。このようにして、「放棄された」かまたは要求ユーザが使用しなかった要求項目は登録リストから選り除けられる。たとえば、ユーザ装置は、ダウンロード・データを閲覧したかどうかを監視し、一定期間の間特定のダウンロード・データが閲覧されなかった後、そのようなデータの自動ダウンロードを終了することができる。
【００３５】
プロセスはステップ５０４からステップ５０６に進み、選択された項目の定期ダウンロードのために登録されているクライアントまたはユーザ装置の数がしきい値を超えているかどうかを判断する。しきい値は選択された項目のダウンロードをプリキャッシュする効率によって決定する。たとえば、特定のダウンロードについて１つのユーザしか登録されていない場合は、単純にそのユーザが要求データを直接ダウンロードすることができるようにした方が、ダウンロード・データをサーバでプリキャッシュするよりも効率的である。登録リストの個々の項目のしきい値は、その項目がユーザによってオフピーク情報検索のために特に要求されたのかそれとも単にその項目の要求頻度に基づいて登録リストに追加されたに過ぎないのかに応じて設定することができる。
【００３６】
選択された項目について登録されているユーザがしきい値よりも少ない場合、プロセスはステップ５０７に進み、すべての項目が検査されたかどうかを判断する。すべての項目が検査された場合、プロセスは後述のステップ５１４に進む。しかし、まだすべての項目が検査されていない場合は、プロセスはステップ５０４に戻り、異なる項目を選択する。少なくともしきい値数のユーザが選択された項目に登録されている場合、プロセスはステップ５０８に進み、選択された項目によって識別されたデータをフェッチし、そのデータを圧縮し、サーバに記憶する。データの圧縮には任意の適合する圧縮ユーティリティを使用することができる。
【００３７】
好ましい実施例では、フェッチされるデータはインターネット上のウェブ・サイトからのウェブ・ページを含む。取り出されるウェブ・ページの数は、どのウェブ・ページまたはサブページがユーザによってアクセスされる確率が最も高いかを決定する規則またはヒューリスティックによって決まる。ダウンロードされるウェブ・ページはそれぞれいくつかのファイルまたは構成要素から成る。したがって、サーバに記憶されているが、取り出されたウェブ・ページでは更新されたかまたはもはや参照されなくなったウェブ・ページ構成要素の以前のダウンロード・データは、このステップの一部として削除することができる。異なるサイトから入手したウェブ・ページを圧縮して別々に記憶し、各ユーザにそのユーザが要求したページのみが容易に分配されるようにすることができる。したがって、各サーバはそのサーバを使用するユーザによるオフピーク検索のために要求された特定のウェブ・サイトについてのみミラー・サイトとして機能する。
【００３８】
プロセスは次にステップ５１０に進み、クライアントのダウンロードのためにサーバにプリキャッシュされている項目のリストを含むダウンロード・リストを更新する。ダウンロード・リストには、各ダウンロード構成要素の日時など、その他の情報も含めることができる。プロセスは次にステップ５１２に進み、登録リスト内のすべての項目を検査したかどうかを判断する。まだの場合はプロセスはステップ５０４に戻り、登録リスト内の他の項目を選択する。しかしすべての項目を検査した場合は、プロセスはステップ５１４に進み、次の時限プリキャッシュ・ダウンロードが開始されるまで遊休状態になる。
【００３９】
図６を参照すると、本発明の好ましい実施例による、ユーザ装置（またはウェブ・クライアント）にプリキャッシュ・ダウンロードを送信するプロセスを示す高水準フローチャートが図示されている。このプロセスはステップ６０２から開始し、サーバが特定のウェブ・ページの自動時限オフピーク検索要求やダイアルアップ時に行われるオンライン要求などのダウンロード要求を受け取る。この要求には、後述するように特定のウェブ・サイトのＵＲＬを含めることができる。プロセスは次にステップ６０４に進み、サーバでプリキャッシュされているダウンロードのダウンロード・リストを検査する。次にステップ６０６に進み、要求されたダウンロード・データがサーバにプリキャッシュされているかどうかを判断する。プリキャッシュされていない場合、プロセスはステップ６０８に進み、ダウンロード要求を該当する場所に送信する。次にプロセスはステップ６１６に進み、次のダウンロード要求を受け取るまでプロセスは遊休状態になる。
【００４０】
それに対して、要求されたダウンロードがサーバにプリキャッシュされている場合はプロセスはステップ６１０に進み、ダウンロード要求はサーバによってインタセプトされる。次にプロセスはステップ６１２に進み、要求されたダウンロード・データがサーバから要求ユーザ装置またはウェブ・クライアントに送信される。要求されたデータはユーザ装置でハード・ディスク・ドライブなどのローカル・メモリに記憶される。プロセスは次にステップ６１４に進み、ユーザ・ユニットはダウンロードされたデータを自動的に圧縮解除する。次にプロセスはステップ６１６に進み、次のダウンロード要求を受け取るまでプロセスは遊休状態になる。
【００４１】
次に図７を参照すると、本発明の好ましい実施例による、サーバから受け取ったプリキャッシュ・ダウンロード・データをユーザ装置で処理するプロセスを示す高水準フローチャートが図示されている。このプロセスはステップ７０２から開始し、ユーザ装置がプリキャッシュされたダウンロード・データをサーバから受信する。プロセスは次にステップ７０４に進み、サーバから受信した類似した性質の以前のダウンロード・データ（すなわちダウンロードされたウェブ・ページ構成要素のより古いバージョン）を削除する。次にプロセスはステップ７０６に進み、受信した時点でダウンロード・データを自動的に圧縮解除して表示を高速化する。プロセスは次にステップ７０８に進み、別のダウンロードを受信するまでプロセスは遊休状態になる。
【００４２】
図８を参照すると、本発明の好ましい実施例による、ウェブ・サイトまたはサーバ・キャッシュからデータを取り出すプロセスを示す高水準フローチャートが図示されている。図のプロセスの全体または一部を使用して、図５のステップ５０８に図示されているようにウェブ・サイトから情報を取り出してウェブ・サーバにプリキャッシュするか、または図６のステップ６１２に関連して説明したようにウェブ・サーバからウェブ・クライアントのハード・ドライブに記憶する。
【００４３】
サーバでプリキャッシュするための情報の検索プロセスに必要なのは単純なフェッチにはとどまらず、オフピーク情報検索の実体に合わせて調整しなければならない。オフピーク検索を求めるユーザ要求数は、それらの要求を満たすために使用可能な帯域幅、時間、及び資源の容量をはるかに超えると予想される。すなわち、要求が満たされたとすれば、実際に提供可能なよりも多くの資源を消費することになる。したがって、プリキャッシュするデータを検索するプロセスは、要求と要求されたデータを解析し、データをインテリジェントな方式でフェッチしなければならない。
【００４４】
ウェブ・ページ、すなわちハイパーテキスト文書は、そのページの通信源を識別するＵＲＬを使用して検索される。ＵＲＬの典型的な形式は「ｗｗｗ．ドメイン名．／ファイルパス／ファイル名」である。ドメイン名と拡張子によって、要求情報が入っている特定のウェブ・サイト（ウェブ・ドメインまたはサーバ）を識別する。要求情報は、要求の対称であるウェブ・サイト上のディレクトリ内に編成されたファイルまたはファイルのグループを含む。したがって、ＵＲＬは、要求された情報が入っているファイルまでの経路を含んでいなければならず、ファイル名も必要とする場合もある。ブラウザによって表示されるのはＨＴＭＬファイルのみであり、「．ｈｔｍｌ」または「．ｈｔｍ」というデフォルト拡張子がとられるため、ファイル名には拡張子を指定する必要がない。要求でファイル名を指定しない場合、ブラウザは指定されたウェブ・ドメイン及びパスで「ｄｅｆａｕｌｔ」または「ｉｎｄｅｘ」という名前のＨＴＭＬファイルを探索する。
【００４５】
特定の場所（またはドメイン）にあるウェブ・ページは、１つまたは複数のＨＴＭＬファイルと、それに付随する画像、音声、動画像、及び実行可能スクリプト・ファイルを含む。ウェブ・ページの一部を形成するＨＴＭＬファイルは、ＪＰＥＧまたはＧＩＦ形式の画像などの画像ファイル、ＷＡＶまたはＭＩＤＩ形式のオーディオ情報などの音声ファイル、ＭＰＥＧ形式のビデオ情報などの動画像ファイル、ＪＡＶＡ、ＪＡＶＡＳＣＲＩＰＴなどの実行可能スクリプト・ファイル、またはコモン・ゲートウェイ・インタフェース（ＣＧＩ）スクリプト・ファイルなどを指す参照を含むことが多い。より重要なのは、ＨＴＭＬファイルには一般に、「リンク」、すなわち他のＨＴＭＬファイルに「ジャンプする」（実際には検索する）ＵＲＬを含む埋め込まれた参照が入っていることである。このような他のＨＴＭＬファイルは、ローカル（パスはおそらく異なるが、同じウェブ・ドメインにある）の場合もあり、リモート（異なるウェブ・ドメインまたはサーバにある）である場合もある。
【００４６】
ブラウザによるウェブ・ページの表示には、表示するウェブ・ページをフォーマットする少なくとも１つのＨＴＭＬファイルと、そのＨＴＭＬファイルで参照されている各画像、音声、動画像、及びスクリプト・ファイルの取り出しが必要である。さらに、ウェブ・ページを有効にキャッシュするには、ページ内のリンクを解決し、表示のためのデータを取り出す必要がある。リンクによって参照されているページ自体にさらに他のページへのリンクが含まれていることがあり、その先にさらにリンクされているというように続いていることがある。このようにして、１つのオフライン閲覧要求によって、リンク「ツリー」のルートを含むページが要求されることも考えられ、それを拡大すれば、現在公開されている実質的にすべてのウェブ・ページが含まれることになる。さらに、クライアントのオフピーク検索時間は前述の理由から制限されることがある。これらの理由により、サーバ・キャッシュとの間でデータの取り出しを行うプロセスは、インテリジェントに実施しなければならない。
【００４７】
図のプロセスはフェッチ要求を受け取るステップ８０２から始まる。フェッチ要求は、サーバがクライアントによるオフピーク検索要求で受け取るかまたはサーバによるプリキャッシュのための検索プロセスの一部として受け取ることができる。次にプロセスはステップ８０４に進み、要求に従って検索または送信する情報を判断する。サーバでキャッシュするためにウェブ・サイトから検索される情報またはサーバ・キャッシュからクライアントに送信される情報は、使用可能な資源に過度に負担をかけずにユーザの関心を満足させる可能性が最も高いファイルを識別する１組の規則またはヒューリスティックを使用して選択される。
【００４８】
サーバ・キャッシュの状況では、サーバでキャッシングするためにどのウェブ・サイト・ファイルを取り出すかを判断する規則は、クライアントの関心を引く可能性が高い一定の範囲のページを入手し、使用可能な合計キャッシュ容量があると仮定してキャッシュ・データを適切なサイズに制限するという２つの目標によって決まる。特定の一連のリンクすなわちパスをたどるために不当な量のシステム資源を費やすことなく、ウェブ・ページに付随するファイルの広範なサンプリングを取り出す必要がある。
【００４９】
たとえば、ユーザが特定のニュース・ページ・サイトに関心を持っていたとすると、システムは最初にそのニュース・サイトの初期またはデフォルトＨＴＭＬファイルと、そのファイル内で参照されている画像、スクリプトなどを取り出すことになる。デフォルトＨＴＭＬファイル及びそれに密接に関連づけられた画像、スクリプトなどを含むこの１組のファイルを「ホーム・ページ」とも呼ぶことがある。一般にＨＴＭＬファイルとそのＨＴＭＬファイルのテキスト内で参照されている画像、音声、動画像、スクリプト・ファイルを「ページ」と呼ぶことがある。同じ画像、音声、動画像、またはスクリプト・ファイルが複数のＨＴＭＬファイルに関連づけられていたり参照されたりすることがあり、したがって複数のページにある場合がある。画像、音声、動画像、またはスクリプト・ファイルとは異なり、別々のＨＴＭＬファイルへの参照、すなわちページ内のリンクは、別個のページへの参照である。一般に、キャッシュのためにウェブ・サイト情報を取り出す場合、容量制限違反にならない限り（たとえばページに異常に大きな動画像ファイルが含まれているなど）、部分的なページ（たとえば音声ファイルを無視するなど）ではなく完全なページを取り出すことが好ましい。
【００５０】
次に、システムはニュース・サイトのホーム・ページ内のリンクの解決を開始し、それらのリンクを他のページまでたどり、それらのページを取り出す。これらの第２レベルのページ内のリンクをたどり、ホーム・ページを起点とするリンク・ツリーを完全にたどり尽くすかまたはしきい値を超えるまでこのプロセスが再帰的に続けられる。しきい値は検索されたいくつかのファイル、検索されたバイト数、またはファイル検索に費やされた時間によって決定することができる。リンク・ツリーをたどり尽くす前に、選定されたしきい値を超えるのが普通であるため、リンク・ツリー内で取り出す最も好ましいページを識別する機構を設けなければならない。
【００５１】
多くのページは、特定のページにアクセスするユーザの数を監視する機能を備える。したがってこの統計情報を使用してサイトのうちの最も人気のある領域を優先検索のために識別することができる。統計情報と共にまたはその代わりとして「幅優先」検索システムを使用して、最も人気のあるページを識別することができる。「幅優先」システムは、リンク・ツリーの所与のレベルからすべてのページを全部または同様の量だけ検索してから、そのリンク・ツリーの次のレベルに進む。これは、リンク・ツリー内の特定の経路のすべてのレベルを完全にたどり尽くしてから、様々なレベルにあるその経路からの分岐をたどる「深さ優先」検索システムとは異なる。キャッシングの１つの「幅優先」方式については、Ｊ．トンプソン（Ｔｈｏｍｐｓｏｎ）とＶ．バースティス（Ｂｅｒｓｔｉｓ）による「Ｍｅｔｈｏｄ  ｆｏｒ  Ｏｐｔｉｍｉｚｉｎｇ  Ｏｆｆ−Ｐｅａｋ  Ｃａｃｈｉｎｇ  ｏｆ  Ｄａｔａ」という名称の米国特許出願に記載されている。
【００５２】
前述のシステムと組み合わせて実施することができるページ検索の他の規則は、同じサイトにある（すなわちページＵＲＬ内の同じドメイン名によって識別される）ページを異なるサイトにあるページよりも優先することである。この規則を拡張して、所与のサイトの同じディレクトリに入っているページを異なるディレクトリ内のページより優先させることもできる。サイトベースの優先によって、検索からいわゆる「スーパーリンク」ページのふるい落としが可能になる。スーパーリンク・ページにはウェブ内の過剰なサイトへのリンクが含まれ、対象となる特定の領域のリソース・ロケータの機能を果たすことが多い。スーパーリンク・ページ内のすべてのリンクをたどると、使用可能なシステム資源が速く消費される可能性がある。サイトベースの優先と組み合わせてページ・リンク・カウントを使用し、たとえば１００というしきい値数を超えるリンクを含むページとのリンクを無視することもできる。この場合も、そのような多数のリンクを完全に解決した場合、使用可能資源が速く消費されることになる。
【００５３】
クライアント検索の状況では、オフピーク情報検索中にクライアントにどの情報を送信するかを決定する規則は、関心のあるページをクライアントに提供し、しかも割り振られた資源のしきい値に収まるようにするという同様の目標に基づく。オフピーク検索による接続時間を最小限にするという最も重要な問題は、キャッシュされた情報をユーザにダウンロードする状況にも存在する。この接続時間の短縮によって、より多くのクライアントに質の高いサービスを公平に提供することができる。なお、オフピーク検索のための時間と帯域幅の制限は通常より厳しい場合がある。
【００５４】
クライアントにどの情報を送信するかを決定する規則は状況の相違により多少異なる。たとえば、クライアントがキャッシュされている特定のサイトを一度もダウンロードしたことがない場合、そのサイトの全内容（全てのページ）をダウンロードしなければならない。ユーザが一晩のオフピーク情報検索を１時間に制限されている場合、一晩ですべてのページをクライアントにダウンロードすることができないことがある。特定のサイトをダウンロードするのに数夜を要することもある。したがって、ダウンロード内容に優先順位システムを設定しなければならない。
【００５５】
要求されたサイトのウェブ・ページがオフライン閲覧のためにユーザ装置で実質的にミラーリングされることも忘れてはならない。新しいサイトを初めてダウンロードするユーザと、更新内容を要求するに過ぎない既存の加入者とを区別しなければならない。大きなウェブ・サイトの場合、初めての加入者に要求されたサイトに必要なすべてのファイルを一晩でダウンロードすることができない場合がある。その新しい加入者にはウェブ・サイト・ファイルを数夜にわたってダウンロードする必要がある。この状況では、全ページをダウンロードせず、それによってユーザが、オフライン閲覧のためにオフピーク検索がすべて完了するのを待つ間に要求ウェブ・サイトの内容の一部を見ることができるようにすることが好ましい場合がある。たとえば、ページに付随する音声ファイルはＨＴＭＬファイルやそれに付随する画像ファイルよりも優先度が低いとみなされる。したがって、所与のサイトのすべての音声ファイルに最低のダウンロード優先度を割り当て、最後の夜にダウンロードする。さらに、前述の統計ベース、幅優先、及びサイトまたはディレクトリ・ベースの優先度を使用して、どのページをダウンロードのために選択するかを決定することができる。
【００５６】
クライアント・ダウンロードの状況では、接続時間を最小限にするという目標のために情報の重複も考慮する必要が生じる。たとえば、ロゴ画像のように特定のサイトの多くのページで同じ画像ファイルを使用する場合、その画像ファイルには同じサイトの他のファイルよりも高いダウンロード優先度を割り当てることができる。これを考慮する必要がある他の状況は、同じ広告を使用している日刊ニュース・サイトの場合のように、クライアントが所与のサイトの情報をすでにダウンロードしており、更新内容だけを必要とするかどうかという場合である。サーバ・キャッシュ内のファイルの日付とサイズをクライアントのシステムに入っているものと比較することによって、そのクライアントのために更新しなければならない変更がわかる。あるいは、クライアントに前にダウンロードされているファイルのリストを維持することができる。これは、個々のクライアントが加入しているサービスのリストはいずれにしても維持しなければならないため、好ましいと考えられる。このようなリストは、キャッシュに入れるサイトの登録リストを更新し、前にクライアントにダウンロードされているファイルをより除ける資源ともなる。
【００５７】
クライアント・ダウンロードの場合についてステップ８０４のプロセスを拡張した図を図８に示す。クライアント・ダウンロードの状況では、ステップ８０４ａでどのデータを送信するかの判断を開始し、要求されたウェブ・サイトについてクライアントにすでにダウンロードされているデータがある場合はそれを識別する。図の例では、所与のウェブ・サイトについてクライアントにダウンローされているファイルのリストが、クライアント機またはサーバ上で維持されていることを前提としている。これをそのウェブ・サイトの現行ファイルのリストと比較し、ファイル名、日付、またはサイズに不一致があれば変更が識別される。次にプロセスはステップ８０４ｂに進み、前述の規則または同様の規則に従って、ダウンロードするデータに優先順位を付ける。
【００５８】
図のプロセスは、同じ情報の流れを異なる受信者に同時に提供するマルチキャスト・プロセスの一部として使用することができる。たとえば、幾人かのユーザが同じニュース・サイトのオフピーク検索に加入しており、したがって同じ更新を必要とするとする。同じ情報の流れを受信するように個々のダウンロード・プロセスを調整すれば、１つのサーバ・プロセスを使用してそれぞれにユーザを更新することができる。マルチキャストは、１つの家庭に複数のユーザ装置がある場合に有用であると考えられる。
【００５９】
ステップ８０４で送信または検索を行うデータが特定されると、プロセスはステップ８０６に進み、特定された情報を取り出し、圧縮してサーバに記憶するか、特定された情報を圧縮キャッシュ・ファイルから抽出して圧縮し、クライアントに送信する。クライアント・ダウンロードの状況では、接続時間を最小限にするために、キャッシュされたデータをクライアントに送信する際に圧縮する重要性が生じる。サーバで大量のウェブ・サイト情報を１つのファイルに圧縮するのは、ウェブ・サイト情報からページまたはファイルをクライアントに選択的に送信する重大な障害にはならない。周知のアルゴリズムを使用して、圧縮アーカイブからファイルを抽出し、送信中にオンザフライで圧縮することができる。その結果、その情報から選択されたページまたはファイルだけを送信すれば済み、圧縮された形で送信して接続時間を短縮することができる。
【００６０】
ウェブ・サイトが最終的にキャッシュ最適化ページを実施することが予想される。たとえば、ウェブ・サイトはキャッシングとダウンロードに優先順位付けするために使用する規則を知ってページを構成し、クライアントへの優先キャッシングとダウンロードのためにキャッシュ最適化ページを作成することができる。ウェブ公開者は、どのページまたはファイルが同じウェブ「公開物」の一部であり、どのリンクが別個の公開物のページを参照しているかを識別するコメントを組み込むこともできる。ページを周期的に更新するウェブ・サイトは、ウェブ・サイトの更新または変更されたファイルを圧縮して１つのバンドルにし、検索を効率化することができる。サーバがそのようなウェブ・サイトのオフライン購読の便宜を提供する場合、サーバは圧縮された変更済みファイルのミラーとして機能するだけでよい。
【００６１】
以上、本発明について完全機能データ処理システムの文脈で説明したが、当業者なら本発明の機構は様々な形態の、命令のコンピュータ可読媒体の形で分配することができ、本発明は実際に分配を行うために使用する特定のタイプの信号保持媒体に関係なく等しく適用されることがわかることに留意することが重要である。コンピュータ可読媒体の例としては、フロッピィ・ディスクやＣＤ−ＲＯＭなどの記録可能型媒体とディジタル及びアナログの通信リンクなどの伝送型媒体とがある。
【００６２】
本発明は、別々の伝送時にすべてのデータが必然的に同じノードを通過する状況において、通過複数の情報源から複数の宛先にデータを分配する効率的な手段を提供する。サーバからインターネットまでの必要帯域幅は、複数ユーザによって要求された情報をサーバにおいてプリキャッシュまたは「ミラーリング」することによって削減される。要求された情報は圧縮されるため、サーバにおける占有空間が少なくなり、ユーザへの伝送が高速化される。
【００６３】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００６４】
（１）データ処理システムにおいて、プリキャッシュされたデータを複数のユーザに効率的に分配する方法であって、
システムからデータを求める要求を受け取るステップと、
前記システム内にまだ存在していない要求データを特定するステップと、
選択がユーザが前記特定された要求の選択された一部にアクセスする確率に基づき、サイズ制限内の前記特定された要求データの選択された一部に制限されている、前記特定された要求データの一部を前記システムに送信するために選択するステップと、
前記特定された要求データの前記選択された一部を圧縮された形で前記システムに送信するステップとを含み、プリキャッシュされたデータを複数のユーザに効率的に分配することができる方法。
（２）システムからデータを求める要求を受け取る前記ステップが、
ウェブ・サイトのオフピーク情報検索要求を受け取るステップをさらに含む、上記（１）に記載の方法。
（３）システムからデータを求める要求を受け取る前記ステップが、
複数のウェブ・サイトの閲覧要求の登録リストからウェブ・サイトの閲覧要求を受け取るステップをさらに含む、上記（１）に記載の方法。
（４）複数のウェブ・サイトの閲覧要求の登録リストを収集するステップをさらに含む、上記（１）に記載の方法。
（５）複数のウェブ・サイトの閲覧要求の登録リストを収集する前記ステップが、
前記登録リストを選り分けて放棄された閲覧要求を除去するステップをさらに含む、上記（１）に記載の方法。
（６）前記システムに送信するために前記特定された要求データの前記選択された一部を圧縮するステップをさらに含む、上記（１）に記載の方法。
（７）データを求める要求を受け取る前記ステップが、
ウェブ・サイトからデータのページを求める要求を受け取るステップをさらに含む、上記（１）に記載の方法。
（８）システムからデータを求める要求を受け取る前記ステップがウェブ・サイトからデータを求める要求を受け取るステップをさらに含み、
前記システムに送信するために前記特定された要求データの一部を選択するステップが、前記システムに送信するために前記システム内にまだ存在していない前記データの一部をウェブ・サイトから選択するステップをさらに含む、上記（１）に記載の方法。
（９）前記ウェブ・サイトから前記データの一部を選択する前記ステップが、完全なページがサイズ制限に違反しない場合、前記システム内にまだ存在しておらずユーザによってアクセスされる可能性が高い前記完全なページを前記ウェブ・サイトから選択するステップをさらに含む、上記（８）に記載の方法。
（１０）前記ウェブ・サイトから前記データの一部を選択する前記ステップが、前記システム内にまだ存在しておらずユーザによってアクセスされる可能性が高い完全なページを、ファイル数、バイト数、及び制限時間から成るグループから選択されたサイズ制限までウェブ・サイトから選択するステップをさらに含む、上記（８）に記載の方法。
（１１）システムからデータを求める要求を受け取る前記ステップが、ウェブ・サイトから少なくとも１つのページを求める要求を受け取るステップをさらに含み、
前記システムに送信するために前記特定された要求データの一部を選択する前記ステップが、前記システムに送信するためにデータの前記少なくとも１つのページにリンクされたページを選択するステップをさらに含む、上記（１）に記載の方法。
（１２）システムからデータを求める要求を受け取る前記ステップが、ウェブ・サイトからページを求める要求を受け取るステップをさらに含み、
前記システム内にまだ存在しない要求データを特定する前記ステップが、前記ウェブ・サイトから前記システム内にまだ存在していない前記要求ページにリンクされたページを特定するステップをさらに含み、
前記システムに送信するために前記特定された要求データの一部を選択する前記ステップが、前記ウェブ・サイトからユーザによってアクセスされる可能性の高い前記要求ページにリンクするページを選択するステップをさらに含む、上記（１）に記載の方法。
（１３）一定期間後に前記システムからの前記データを求める第２の要求を受け取るステップと、
前記特定された要求データから前記システム内にまだ存在していない残りのデータを特定するステップと、
前記システムに送信するために前記残りのデータの一部を選択するステップと、
前記選択された残りのデータを圧縮された形で前記システムに送信するステップとをさらに含む、上記（１）に記載の方法。
（１４）前記システムからデータを求める要求を受け取る前記ステップが、ウェブ・サイトから少なくとも１つのページを求める要求を受け取るステップをさらに含み、
要求データを特定する前記ステップが、前記システム内にまだ存在していない、前記少なくとも１つのページにリンクしているページの部分を特定するステップをさらに含み、
前記特定された要求データの一部を選択する前記ステップが、ユーザによってアクセスされる可能性の高い少なくとも１つの前記ページにリンクしているページのうち前記システム内にまだ存在していない部分を選択するステップをさらに含み、
前記特定された要求データの前記選択された部分を送信するステップが、ページの前記選択された部分を前記システムに送信するステップをさらに含む、上記（１）に記載の方法。
（１５）プリキャッシュされたデータを複数のユーザに効率的に分配する装置であって、
システムからデータを求める要求を受け取る受信手段と、
前記システム内にまだ存在しない要求データを特定する特定手段と、
前記選択がユーザが前記特定された要求データの前記選択された一部にアクセスする確率に基づき、サイズ制限内の前記特定された要求データの選択された一部に制限されている、前記特定された要求データの一部を前記システムに送信するために選択する選択手段と、
前記特定された要求データの前記選択された一部を圧縮された形で前記システムに送信する送信手段とを含み、プリキャッシュされたデータを前記装置によって複数のユーザに効率的に分配することができる装置。
（１６）前記特定された要求データの前記選択された一部を前記システムに送信するために圧縮する圧縮手段をさらに含む上記（１５）に記載の装置。
（１７）前記受信手段がウェブ・サイトからデータのページを求める要求を受信する手段を含む、上記（１５）に記載の装置。
（１８）前記受信手段がウェブ・サイトからデータを求める要求を受け取る手段をさらに含み、
前記選択手段が、前記システムに送信するために前記システム内にまだ存在していない前記データの一部を前記ウェブ・サイトから選択する手段をさらに含む、上記（１７）に記載の装置。
（１９）前記選択手段が、
前記システム内にまだ存在しておらず、ユーザによってアクセスされる可能性が高いページを前記ウェブ・サイトから選択する手段をさらに含む、上記（１８）に記載の装置。
（２０）前記受信手段が、ウェブ・サイトから少なくとも１つのページを求める要求を受信する手段をさらに含み、
前記選択手段が、前記システムに送信するためにデータの前記少なくとも１つのページにリンクされたページを選択する手段をさらに含む、上記（１８）に記載の装置。
（２１）前記受信手段が、ウェブ・サイトからページを求める要求を受信する手段をさらに含み、
前記特定手段が、前記ウェブ・サイトから前記システム内にまだ存在していない前記要求ページにリンクされたページを特定する手段をさらに含み、
前記選択手段が、前記ウェブ・サイトからユーザによってアクセスされる可能性の高い前記要求されたページにリンクしたページを選択する手段をさらに含む、上記（１８）に記載の装置。
（２２）一定の期間後に前記システムから前記データを求める第２の要求を受信する受信手段と、
前記特定された要求データから前記システム内にまだ存在していない残りのデータを特定する特定手段と、
前記システムに送信するために前記残りのデータの一部を選択する選択手段と、
前記選択された残りのデータを前記システムに圧縮された形で送信する送信手段とをさらに含む、上記（１８）に記載の装置。
（２３）前記受信手段が、ウェブ・サイトから少なくとも１つのページを求める要求を受信する手段をさらに含み、
前記特定手段が、前記システム内にまだ存在していない前記少なくとも１つのページにリンクされたページの部分を特定する手段をさらに含み、
前記選択手段が、前記少なくとも１つのページにリンクされたページのうちの前記システム内にまだ存在しておらずユーザによってアクセスされる可能性の高い部分を選択する手段をさらに含み、
前記特定された要求データの前記選択された一部を送信する前記送信手段が、ページのうちの前記選択された部分を前記システムに送信する手段をさらに含む、上記（１８）に記載の装置。
（２４）データ処理システムと共に使用するコンピュータ・プログラム製品であって、
コンピュータ使用可能媒体と、
システムからデータを求める要求を受け取る前記コンピュータ使用可能媒体上の第１の命令と、
前記システム内にまだ存在していない要求データを特定する前記コンピュータ使用可能媒体上の第２の命令と、
前記システムに送信するために前記特定された要求データの一部を選択する前記コンピュータ使用可能媒体上の第３の命令と、
前記特定された要求データの前記選択された部分を前記システムに送信する前記コンピュータ使用可能媒体上の第４の命令とを含み、前記コンピュータ使用可能媒体がプリキャッシュされたデータを複数のユーザに効率的に分配する機構を含む、コンピュータ・プログラム製品。
（２５）コンピュータ使用可能媒体がハード・ディスク・ドライブである、上記（２４）に記載のコンピュータ・プログラム製品。
（２６）ウェブ・ページをプリキャッシュする方法であって、
要求されたウェブ・サイト・ホーム・ページの登録リストを維持するステップと、
要求された各ウェブ・サイト・ホーム・ページについてキャッシュ・ウェブ・サイトを作成するステップと、
前記登録リスト内のウェブ・サイト・ホーム・ページを求める要求に応答して、対応するキャッシュ・ウェブ・サイトの変更部分を特定するステップと、
サイズ制限を超えない、キャッシュ・ウェブ・サイトに対応する前記変更部分の一部を送信するステップとを含む方法。
（２７）キャッシュ・ウェブ・サイトを作成する前記ステップが、
ユーザによってアクセスされる可能性の高い前記ウェブ・サイト・ホーム・ページにリンクされたページを特定するステップと、
前記要求されたウェブ・サイト・ホーム・ページと前記ウェブ・サイト・ホーム・ページにリンクされた前記特定されたページとを取り出すステップと、
前記要求されたウェブ・サイト・ホーム・ページと前記ウェブ・サイト・ホーム・ページにリンクされた前記特定されたページを圧縮するステップとを含む、上記（２６）に記載の方法。
（２８）ユーザによってアクセスされる可能性の高い前記ウェブ・サイト・ホーム・ページにリンクされたページを特定する前記ステップが、
前記ウェブ・サイト・ホーム・ページによって参照され、ユーザによって最も頻繁にアクセスされるすべてのページを特定するステップと、
前記ウェブ・サイト・ホーム・ページによって参照されるページによって参照されるページを特定するステップとを含み、ユーザによってアクセスされる可能性が高いページを特定するために幅優先方式を使用する、上記（２７）に記載の方法。
（２９）サイズ制限を超えないキャッシュ・ウェブ・サイトに対応する前記変更部分の一部を送信する前記ステップが、
ページが前記サイズ制限を超えない場合に完全なページを送信するステップをさらに含む、上記（２７）に記載の方法。
（３０）要求されたウェブ・サイト・ホーム・ページの登録リストを維持する前記ステップが、
新規の閲覧要求を追加するステップと、
放棄されるようになった既存の閲覧要求を削除するステップとを含む、上記（２６）に記載の方法。
（３１）複数のユーザにデータを効率的に分配する方法であって、
複数のユーザからデータを求める要求を受け取るステップと、
受け取った要求に基づいて、入手可能なデータのより大きなプールの中から複数のユーザによってアクセスされる可能性の高いデータを選択するステップと、選択されたデータをサーバ・システムにおいてプリキャッシュするステップと、
複数のユーザ内の個々のユーザがサーバ・システムに接続すると、プリキャッシュされたデータから、個々のユーザから前に受け取った要求に基づいて選択されたプリキャッシュされたデータの一部を個々のユーザに圧縮された形で送信するステップとを含む方法。
【図面の簡単な説明】
【図１】本発明を実施することができる分散データ処理システムを示す図である。
【図２】本発明の好ましい実施例による、サーバとして実施することができるデータ処理システムを示すブロック図である。
【図３】本発明の好ましい実施例による、ユーザ装置として実施することができるデータ処理システムを示す図である。
【図４】本発明の好ましい実施例による、ユーザ装置として実施することができるデータ処理装置の主要構成要素を示すブロック図である。
【図５】本発明の好ましい実施例による、サーバにおけるデータのプリキャッシュを行うプロセスを示す高水準フローチャートである。
【図６】本発明の好ましい実施例による、ユーザ装置へのプリキャッシュ・ダウンロード・データを送信するプロセスを示す高水準フローチャートである。
【図７】本発明の好ましい実施例による、サーバから取り出されたプリキャッシュ・ダウンロード・データをユーザ装置において処理するプロセスを示す高水準フローチャートである。
【図８】本発明の好ましい実施例による、ウェブ・サイトまたはサーバ・キャッシュからデータを取り出すプロセスを示す高水準フローチャートである。
【符号の説明】
１０２  ユーザ装置
１１０  通信リンク
１１８  公衆交換電話網
１２０  サーバ
１２４  インターネット
２００  データ処理システム
２０２  プロセッサ
２０６  システム・バス
２０８  メモリ・コントローラ／キャッシュ
２０９  ローカル・メモリ
２１０  Ｉ／Ｏバス・ブリッジ
２１２  Ｉ／Ｏバス
２１４  ＰＣＩバス・ブリッジ
２１６  ＰＣＩバス
２１８  モデム
２２２  ＰＣＩバス・ブリッジ
２２６  ＰＣＩバス
２３０  メモリ・マップ・グラフィクス・アダプタ
２３２  ハード・ディスク
３００  データ処理システム
３０２  データ処理装置
３０６  リモート・コントロール装置
４０２  マザーボード
４０８  システム・バス
４１０  ビデオ／ＴＶ変換器
４１４  コントローラ
４１８  電源
４２０  ハード・ドライブ
４２２  モデム
４２４  スピーカ
【図１】
0003762828.tif 000002
【図２】
0003762828.tif 000003
【図３】
0003762828.tif 000004
【図４】
0003762828.tif 000005
【図５】
0003762828.tif 000006
【図６】
0003762828.tif 000007
【図７】
0003762828.tif 000008
【図８】
0003762828.tif 000009