JP4220000B2 - データネットワーク上のデータページの転送および表示方法 - Google Patents

データネットワーク上のデータページの転送および表示方法 Download PDF

Info

Publication number
JP4220000B2
JP4220000B2 JP27597797A JP27597797A JP4220000B2 JP 4220000 B2 JP4220000 B2 JP 4220000B2 JP 27597797 A JP27597797 A JP 27597797A JP 27597797 A JP27597797 A JP 27597797A JP 4220000 B2 JP4220000 B2 JP 4220000B2
Authority
JP
Japan
Prior art keywords
data
page
data page
user station
difference
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP27597797A
Other languages
English (en)
Other versions
JPH10214239A (ja
Inventor
バンガ ガウラ
ドーグリス フレデリック
ビスベスバラヤ ジャガディッシュ ホサグラハー
ラビノビッチ マイケル
ホン ボ キエム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
AT&T Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AT&T Corp filed Critical AT&T Corp
Publication of JPH10214239A publication Critical patent/JPH10214239A/ja
Application granted granted Critical
Publication of JP4220000B2 publication Critical patent/JP4220000B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2876Pairs of inter-processing entities at each side of the network, e.g. split proxies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、低速でネットワークに接続されたステーションにデータページを転送および表示するための方法に関する。より詳細には、本発明は、データページが要求された時刻からそのページが表示された時刻までの遅延時間を減少させるための方法に関する。
【0002】
【従来の技術】
インターネットのようなデータネットワークにおいては、互いに高速接続されたサーバにデータが記憶されている。このようなネットワークは、インターネットで一般的なワールド・ワイド・ウェブ(World Wide Web)に用いられているハイパーテキスト・トランスファ・プロトコル(HTTP)のようなプロトコルをサポートしており、かかるプロトコルにおいてはデータが「ページ(page)」として知られているフォーマットでユーザに送られる。HTTPプロトコルでは、ユーザ・インターフェイス・ソフトウェア(「ブラウザ」として知られている)は、ページ中の重要部分を受け取るまではそのページを表示し始めることができず、言うまでもなくページの総てを受け取るまでそのページ全体を表示することができない。このような遅延は待ち時間(latency)と言われている。
【0003】
【発明が解決しようとする課題】
残念ながら、多くのインターネットユーザは、モデムと通常の電話線とを用いて比較的低速でインターネットに接続している。最も速い市販の電話モデムであってもその速度は28.8キロビット/秒(kbps)、あるいは場合により33.6kbpsに制限されている。これにより、ワールド・ワイド・ウェブのページがユーザに送られてユーザのブラウザに表示され得る速度が制限される。さらに、大量のユーザ・トラフィック、特に同じサーバへの他のユーザによる大量のアクセスもまたワールド・ワイド・ウェブの見掛け上の速度を低下させる。その結果、多くのユーザはインターネット一般、特にワールド・ワイド・ウェブの低速さに不満を訴えている。実際のところ、ユーザが感じとる待時間の大部分は、本質的に非常に高速のネットワークであるべきものに相対的に低速で接続されること、およびそこへの大量のトラフィックの結果である。
【0004】
現存するブラウザ・ソフトウェアは、ワールド・ワイド・ウェブのページを受信する際の遅延時間をなくすために種々の試みをしている。例えば、たいていのブラウザは受信したページをディスク・キャッシュ内に記憶するようにしている。もしユーザがあるページを要求してから短期間のうちにそのページを要求した場合、ブラウザはそのページをキャッシュから取り出す。しかしながら、HTTPプロトコルの下では、例えば動的に生成されるページなどのある種のワールド・ワイド・ウェブのページはキャッシュされない場合がある。従って、現在のキャッシュ技術は待ち時間の問題を解決するには不十分である。
【0005】
つまり、比較的高速のネットワークから比較的に低速接続でネットワークに接続されたユーザへデータページを送る際に起こるユーザに知覚される遅延を削減可能とすることが望ましい。
【0006】
また、ブラウザのキャッシュ能力をより有効に利用可能とすることが望ましい。
【0007】
そこで、本発明の目的は、比較的高速のネットワークから比較的に低速接続でネットワークに接続されたユーザへデータページを送る際に起こるユーザに知覚される遅延を削減することである。
【0008】
また、本発明の別の目的は、ブラウザのキャッシュ能力をより有効に利用することである。
【0009】
【課題を解決するための手段】
本発明によると、データがページフォーマットで取り出され得るような種類のデータネットワーク上にデータページを転送および表示するための方法が提供される。当該ネットワークは、データページが記憶される少なくとも1つのサーバと、サーバに接続されたゲートウェイと、有限速度をもつデータ接続によりゲートウェイに接続されたユーザステーションとを有している。ユーザステーションは、1つのサーバから1つのページを要求する。本発明の方法は、1つのサーバからデータページを取り出すために、ユーザステーションからゲートウェイに要求を送ることを含んでいる。この要求に応じて、データページの以前のバージョンが呼び出される。もし以前のバージョンが最新のものでないと判断されると、ユーザステーションに転送されるデータページの、サーバの1つからゲートウェイへの取り出しが開始される。要求に応じゲートウェイでの受信が終了すると、要求されたデータページと以前のバージョンのページとの差異が求められ、その差異がユーザステーションに送られる。ユーザステーションでは、前のバージョンと当該差異との関数としてデータページが計算される。そして、計算されたページがユーザステーションに表示される。
【0010】
本発明の上記した目的や他の目的および利点などは、添付の図面を参照することにより、以下の実施の形態から明らかとなるであろう。なお、図面においては同様の部位には同様の符号を付している。
【0011】
【発明の実施の形態】
本発明はネットワークデータの転送全般に適用可能であるが、これから説明するインターネットとりわけワールド・ワイド・ウェブにとって特に有益であり且つ好適である。ワールド・ワイド・ウェブのアーキテクチュアは、ユーザ接続のネットワーク・ゲートウェイ端部においてプロキシ(proxy)というアプリケーションを採用している。ワールド・ワイド・ウェブのブラウザソフトウェアはプロキシと交信するように設計されており、その結果、プロキシはブラウザの要求をネットワークサーバに中継して送り、1以上のページ形式の要求されたデータを返送する。本発明によると、以下において「ローカルプロキシ」という第2のプロキシが、ソフトウェアによってユーザのコンピュータに設けられることが好ましい。ユーザのブラウザソフトウェアがプロキシとのコンタクトを試みた場合、それはローカルプロキシに接続される。ブラウザ・ソフトウェアに関する限り、ブラウザが要望および要求したときには、ブラウザはプロキシに接続される。そして、ローカルプロキシは接続のネットワーク端部にあるプロキシ(以下、「リモートプロキシ」という)と交信する。
【0012】
ローカルプロキシが存在することにより、ネットワークへの接続の見掛けの速度を高める種々の技術を用いることができる。ユーザのブラウザ・ソフトウェアを変更せずにこのような技術を採用してローカルプロキシを設計することも可能であるが、1以上のこのような技術をブラウザ・ソフトウェアに組み込むことによりローカルプロキシを効果的にブラウザ内に構築することができる。しかしながら、本発明は、ローカルプロキシソフトウェアを別に設けることにより既存のブラウザとともに用いることができる。
【0013】
見掛け上の接続速度を高めるためにローカルプロキシとともに用い得る好適な技術は、現時点において、ユーザステーションにおける計算速度および計算能力がより高速での接続に比べてより容易に得られ且つより安価であるという事実に基づいている。つまり、本発明は、要求されたページのキャッシュされているバージョンを取り出すことと、その後、キャッシュされているバージョンと現在のバージョンとの差異だけをリモートプロキシからローカルプロキシへ送信することに基づいている。ユーザ・ステーションは、その比較的に高速で安価な計算手段を用いることにより、キャッシュされているバージョンと受信した差異データとから最新ページを再構築する。
【0014】
上記の差異を計算するための好適な技術は、1994年12月14日に出願された係属中の米国特許出願番号08/355,889号に開示されており、その総ては本願の参考とされる。しかしながら、当業者に知られているまたは当業者が開発したその他の技術であっても用いることができる。
【0015】
リモートプロキシがローカルプロキシに差異データを送ることができるようにするためには、リモートプロキシで一旦受信した最新ページと既にローカルプロキシにあるページのバージョンとを比較して差異データを計算する必要がある。そのために、リモートプロキシは、ローカルプロキシに既にあるページのバージョンを知っている必要がある。これは、いくつかの方法で実現することができる。
【0016】
まず、リモートプロキシはそのページの少なくとも1つのバージョンを記憶していなければならない(もしユーザに要求されたページがそのリモートプロキシに接続されたいずれのユーザにも要求されたことがないものである場合、リモートプロキシが最新ページを総て受信するのを待ってそのページの総てが送信される。ただし、リモートプロキシが最新ページを総て受信する前にその送信を開始できる場合を除く)。
【0017】
一実施の形態においては、ローカルプロキシはページをキャッシュし(ローカルプロキシが以前にそのページを要求したことがあるものと仮定する)、そして、データページの要求の一部として、既にキャッシュされているのがどのバージョンかを確認する。リモートプロキシは、特定のバージョンがキャッシュされていたかどうかを調べ、もしキャッシュされていれば、最新ページを受信してからそのバージョンを用いて差異を計算する。もしリモートプロキシがその特定のバージョンをキャッシュに持っていなかったときには、リモートプロキシがもっていたなかで最も最新のものに近いバージョンをローカルプロキシに送るとともに、最新バージョンの受信を待つ。
【0018】
本実施の形態の変形例として、リモートプロキシがローカルプロキシにキャッシュされているバージョンをもっている可能性を高めるために、リモートプロキシはあるページのいくつかの異なるバージョンをキャッシュする。別の変形例では、ローカルプロキシはあるページの2以上のバージョンをキャッシュする。また、例えば、ローカルプロキシは、取り出される総てのページの最も最新のものに近いバージョンあるいはキャッシュするようにタグを付けられた総てのページをキャッシュするようにプログラムされることができる。この実施の形態では、ローカルプロキシによってキャッシュされるあるページにリモートプロキシがタグを付けることが好ましい。例えば、人気のあるニュースのページの正午のバージョンは常にキャッシュされ、後のバージョンが取り出されたとしても保持される(後のバージョンもキャッシュされる)。どちらかのプロキシにキャッシュされる量が増えると、リモートプロキシが最新ページを待つ間に転送されるデータ量が減少するが、一方または両方のプロキシにより大きな記憶容量が必要となる。しばしばコンテントプロバイダ(a content privider)またはネットワークサービスプロバイダと関連しているリモートプロキシの記憶容量をより大きくすることは容易であるが、通常家庭またはオフィスのパーソナルコンピュータにあるローカルプロキシの記憶容量を大きくするのにはコストがかかる。
【0019】
リモートプロキシがコンテントプロバイダから最新ページを要求するとき、リモートプロキシがもつ最後のバージョンまたはローカルプロキシがもっているあるいはもっているべきであるとリモートプロキシが知っているバージョンの時刻以来そのページが変更されている場合のみ、リモートプロキシはそのページが送信されるように要求する。HTTPプロトコルはこのような要求のためのコマンドを備えている。もしリモートプロキシが変更なしのメッセージを戻す場合、リモートプロキシはローカルプロキシが既にもっているページが最新のものである(以前にローカルプロキシがそのページをキャッシュしたため、または、ローカルプロキシがコンテントプロバイダのサーバからのレスポンスを待っている間にそのページを送信したため)というメッセージをローカルプロキシに送ることができ、ローカルプロキシは既に自身がもつページをブラウザに引き渡して表示させる。
【0020】
一方、もしリモートプロキシがページの新しいバージョンを受け取った場合、リモートプロキシはその新しいバージョンを送るべきかあるいは差異データを計算してそれを送るべきかを判断しなければならない。この判断は、いくつかの要因に依存する。
【0021】
もしローカルプロキシがそのページの以前のバージョンを既に持っていた場合(ローカルプロキシがそれをキャッシュしていたことにより、または、リモートプロキシが最新バージョンを待っている間にそれを送信したことにより)、新しいバージョン全体を送るべきかあるいは差異データを計算してそれを送るべきかを決定する最も重要な要因は、その新しいバージョンと差異データとの相対的なサイズである。つまり、リモートプロキシは差異データを計算し、そして差異データのサイズと新しいバージョンのサイズとを比較する。もし新しいバージョンが差異データよりも大きくなければ、リモートプロキシはこの新しいバージョンとともに、これは新しいバージョンであり、古いバージョンに基づく再構築は不要である旨のメッセージをローカルプロキシに送る。そして、ローカルプロキシはブラウザに新しいバージョンを渡してそれを表示させる。
【0022】
もし新しいバージョンが差異データよりも大きい場合、リモートプロキシは新しいバージョンがどれ位大きいかに基づいて決定を行わなければならない。なぜならローカルプロキシが再構築を行うにはある程度の時間が必要であり、もし新しいデータが差異データと同じサイズまたは差異データよりも僅かに大きいのであれば、差異データよりも新しいバージョンを送信するほうが早くなる(ユーザがいつ要求されたページを見ることができるかという点から)。新しいバージョンが大きくなって、その新しいバージョンの送信の必要がなくなったか否かの判断は、リアルタイムで測定されてより多くの要因に依存してよく、その結果、新しいデータよりも差異データを送信する限度となる値のサイズは動的に計算される。しかしながら、もしその計算がユーザステーションのプロセッサ速度のようにリモートプロキシにより簡単に決定することができない変数に依存しているのであれば、新しいバージョンが差異データの約120%のサイズになるまではこれをそのままローカルプロキシに送ることができるとリモートプロキシが単純に仮定するようにしてもよい。
【0023】
もしリモートプロキシがいまなお古い旧(stale)バージョンのページをローカルプロキシに送っているのに要求されたページがリモートプロキシに到着した場合、リモートプロキシは、旧バージョンを継続して送るか、または送信を中止して単に新しいバージョンのページ全部をおくるかを決定しなければならない。この決定も、新しいバージョンを送信するのにかかる時間と、旧バージョンを最後まで送り且つ差異データを送信するのにかかる時間との比較に依存する。新しいバージョンを送信するのに必要な時間は、そのサイズから知ることができ、また適当な統計的推量を用いて見積もることができる。同様にして、旧データの送信を完了するのに必要な時間も知ることができる。分からないのは差異データのサイズである。もし新しいバージョンのサイズが残りの旧データよりも小さければ、新しいバージョンが送られる。そうでない場合、差異データが旧ページのサイズのある平均値(好適な実施の形態では40%である)であると仮定される。従って、もし旧データの40%未満が既に送信されている(すなわち、60%を超えるデータが残っている)場合、新しいバージョンを送信するために旧データの送信は中止してよい。逆に言うと、もし旧データが40%を超えて既に送信されている(すなわち、60%未満が残っている)場合、旧データの残りとそれに加えてさらに差異データを送信し続けるのは有効であろう。なぜなら、旧データの残りおよび差異データの合計は新しいバージョンよりもサイズが小さくなるであろうからである。
【0024】
もちろん、もし旧データの送信が続けられ、差異データが計算された場合、差異データが40%よりも大きく、上記決定が逆効果となってしまうであろうことが特定のリクエストについて判明するかもしれない。または、もし新しいバージョンを送ると決定した場合であっても、差異データが予期したよりも小さいことが分かるかもしれない。しかしながら、他のデータがない場合においては、ページサイズの40%を差異データサイズのデフォルトのサイズとしておくことが平均して効果的であることが期待される。また、例えば、差異データのサイズを時間を追って包括的にまたは個々のページ(例えばURLにより)またはサーバについてたどり続け、その情報をデフォルトの差異データサイズを定期的に調節するために用いることも可能である。また、後述するように、差異データのサイズを段階的に(大至急に)見積もりまたは計算することも可能である。
【0025】
いくつかのケースにおいては、まだ旧データを送っているときまたはその後において、差異データが非常に大きいため(差異データは理論的にはページのサイズよりも大きくなることがある)、旧データを送り続けるのが無意味であると判断される。その時点で、旧データと差異データとを送ると言う決定は取り消され、もしもまだ旧データの転送が続いていればそれが中止され、新しいページの全体が転送される。もしも差異データが新しいページよりもサイズが大きいのであれば、たとえ旧データの転送が完了していても新しいページの全体を送信することは意味のあることである。
【0026】
上述した係属中の米国特許出願に記載された差異データの計算技術の好適な実施の形態では、別の効果(side-effect)として、オリジナルのページデータの圧縮バージョンを出力する。これにより、非圧縮バージョンの代わりにキャッシュに記憶され得る各ページの圧縮バージョンを得ることができ、そのために所定のキャッシュサイズにキャッシュされ得るページ数を増加させることができる。さらに、上記技術は、トータルでデータページの新しいバージョンよりもせいぜい数バイト以下大きい差異データを生成する。従って、もしこの好適な技術が用いられた場合、差異データの送信を中止しないことに対する不利益が存在しないので、差異データの送信を中止しなくてもよい。しかしながら、以下に述べる議論は、上記の好適な技術のように効果的でないものをも含んで、用いられ得るいかなる差異計算技術にも適用される。
【0027】
ここまでの議論は、ユーザが既にキャッシュされているページと同じアドレスのページを要求することを仮定している。例えば、ワールド・ワイド・ウェブに関して言うと、同じURL(Uniform Resouce Locator)をもつページである。しかし、本発明は、ページのアドレスが全く同一ではなく類似している場合であっても有益であることがある。なぜなら、これらアドレスには、ある可変領域が異なっても同一の静的コンテントが含まれることがあるからである。例えば、複数のページを含むワールド・ワイド・ウェブのサイトでは、多くのページが共通の特徴を持つ類似のレイアウトを有している。同様に、特定のサーチエンジンでの検索結果を含むページは、実質的に同じグラフィカルレイアウトを一般に有しており、ただテキストデータだけが検索結果ごとに異なるだけである。従って、もし特定のサーチエンジンへの検索がユーザによって開始されたならば、システムはローカルプロキシまたはリモートプロキシにあるそのキャッシュのいずれかから前もってそのサーチエンジンの総括ページまたはそのサーチエンジンから最後にキャッシュされた検索結果を取り出し、必要な差異データが上記いずれかから計算され得る。
【0028】
このようなキャッシュされた検索結果の場所を見付けることは、ワールド・ワイド・ウェブの場合には難しいことではない。特定のサーチエンジンからのサーチ結果のURLは、通常共通の語幹(stem)を有している。すなわち、URLの始めの部分は同じで、後の方は特定のサーチを特徴づけている。サーチ目的物(criteria)はしばしばURL中において、通常語幹に続く "cgi-bin" という文字列の後に配置されている。システムは、これらの文字列をURL中に発見したときに、そのURLが現在のURLと同じ語幹をもつ総てのページのキャッシュされているバージョンを捜し出すように設計され得る。キャッシュされたページからより広く同様のページを捜し出す他の技術としては、受信したデータと、そのデータと同じホストを起源とした同様のサイズを有するいずれかのキャッシュされたページとを比較するものがある。この場合、リモートプロキシは、どのページがどのローカルプロキシに送られたかの情報を得るようにしなければならないであろう。また、単にキャッシュされている総てのページを比較することもできるが、たまたま早期に類似のものが見つからなければ、単純に新しいページを送信するよりも長い時間を要することがある。
【0029】
また、上述の議論では、リモートプロキシがページの新しいバージョン全体を受信するまで差異データが計算されないことが仮定されていた。しかしながら、本発明は、差異データを大至急、すなわち、新しいバージョンを受信しつつ連続して計算する可能性を含むものである。
【0030】
例えば、任意のデータサイズが選択され、そのサイズがリモートプロキシに受信されるデータの各かたまり(chunk)が、キャッシュされているバージョンと比較されて差異データが抽出される。かたまりのサイズは、システムが僅かなサンプルから差異データを計算することがないほどに大きいが、システムのパフォーマンスに相違が生じるだけ頻繁に差異データを生成できるほどに小さい。
【0031】
もしページの2つのバージョン間の差異がテキストの挿入だけであれば、周知の比較技術によりそれを検出することができ、そしてシステムは、各かたまりごとに差異データを送る必要なく、挿入コマンドとともに挿入されるべきデータを送る。同様に、もしページの2つのバージョン間の差異が削除だけであれば、システムは各かたまりごとに差異データを計算するのではなく、同じようなやり方でこれを処理する(例えば、削除(delete)コマンドを用いる)。
【0032】
同様に、かかるシステムは、いつ差異データを送るかを決定することが可能であることが好ましい。もし特定のかたまりについての差異データが小さければ、それが生成されてからすぐに送ることには意味がなく、むしろ差異データが追加されるのを待ったほうがよいこともある。ローカルプロキシに送られる前に蓄積される差異データの量は、好適な実施の形態においては以下のようにして定めることができる。
【0033】
ここで、生成されたが送信されていない差異データを含んで差異データの非送信バイト数をDとする。また、送信されたか否かに拘わらず、生成された差異データの全バイト数をDtotとする。また、すでに処理された新しいバージョンのバイト数をCとする。また、オリジナルページのサイズをSとする。さらに、下限値(下限しきい値)をTsmallとし、上限値(上限しきい値)をTlargeとする。
【0034】
本実施の形態では、Tsmall<D、且つ、Dtot<F(S,C,Tlarge)となったときに蓄積された差異データを送信する。ここで、Fは、オリジナルページのサイズと、すでに処理されたデータのサイズと、上限値Tlargeとの関数である。関数Fは、差異データを送信してももはや利益がない時点についてのカットオフを生成する。このカットオフは、受信した累積バイト数をもとにすると、オリジナルファイルサイズの80%(0.8S)でよい。また、これの代わりに、Sを無視して、Dtot<0.8Cが満たされる限り差異データを送信するようにしてもよい。さらに、より複雑な関数を用いることもできる。
【0035】
もしD<Tsmallであれば、差異データは送信されない。そして、蓄積されたすべてのデータは、より多くの差異データが計算されるまで保持される。例えば、Tsmallは最大パケットサイズの1/2でよく、それ以下の量のデータを送るのは不経済である。
【0036】
一方、もしDtot≧F(S,C,Tlarge)であれば、すでに計算された差異データは大き過ぎるので、差異データの計算は中止される。そして、新しいページの全体が送信される。本実施の形態の「大至急」という性質と一致するように、システムがページ全体が到着するのを待ってページをローカルプロキシに送信することは好ましくなく、その代わりに、すでに受信しているだけのデータが送信され引き続き新しいページのデータが到着するにつれて送信される。なお、もし上述した差異計算技術の好適例が用いられた場合、差異データの送信を続けることが不利益になることはほとんどないことを記しておく。
【0037】
さらに、新しいバージョンの推定サイズに基づいて、まだ計算されていない差異データを含み未送信の差異データの総量を調べるのが有効なことがある。未送信のデータ量は、既に計算されていて且つ未送信であるすべての差異データの量に、まだ計算されていない総ての差異データの量を加えたものとして見積もることができる。後者の値は、データページの以前のバージョンの全サイズと新しいバージョンの既に処理された部分のサイズとの相違量の関数として見積もることができる。
【0038】
上述のように、差異データが大至急に計算される場合、送信中の旧データの量に差異データの量を加えたものと新しいページ全体を送る際に含まれるデータの量とを、大至急に、比較して計算または少なくとも見積もりしなければならない。旧データを送信し続けるかどうかの決定は、よりよい情報に基づいてなすことができる。これは、以下のようにしてなされる。
【0039】
まず、ページのオリジナル(旧)バージョンのサイズをAとする。また、ページの新しいバージョンのサイズをBとする(もしBが分かっていないならば、Aに等しいと見積もりしてよい)。また、ページのオリジナルバージョンのうち既にローカルプロキシに送信された部分のサイズをPA とする(そのページのオリジナルバージョンの全体が既に送信されている場合はAに等しい)。同様に、ページの新しいバージョンのうち既にリモートプロキシが受信した部分のサイズをPB とする。つまり、これらの変数すべては既知の値である。もし上述の好適な差異計算技術が用いられるのであれば、これらの変数は圧縮データを表していてもよいことを記しておく(上述のように、差異データを決定するための型通りの好適な実施の形態ではデータを圧縮する)。圧縮データについて明確に言及する場合、記号CXはxで表される量の圧縮されたバージョンを表すために用いられる。
【0040】
ここで、ページのオリジナルバージョンと新しいバージョンとの差異を表すデータのサイズをΔB,Aとする。また、新しいページの圧縮バージョンのサイズをCB とする。これらの2つの変数は新しいバージョンをすべて受信したらすぐに分かるものである。また、ページのオリジナルバージョンと新しいバージョンのうちすでに受信した部分との差異を表すデータのサイズをΔPB,Aとする。この変数は、新しいバージョンのデータを部分的に受信したらすぐにわかるものである。
【0041】
もしPA=Aであれば、旧データの全体がすでに送信されており、差異データが計算されればこれを送信することができる。もしPA<Aであれば、旧データはまだ送信途中であり、送信を中止してページの新しいバージョンを単純に送信するかどうかを決定しなければならない。上述のように、新しいバージョンを総て受信するまで差異データが計算されないときには、これは差異データの全サイズを見積もることができるかどうかで決まる。しかしながら、ここでは差異データが大至急に計算されるため、この見積もりはより正確に行うことができる。
【0042】
すなわち、もし残っている旧データの量に見積もられた差異データのサイズを足し合わせたものが新しいバージョン(または圧縮が行われる好適な実施の形態においては圧縮された新しいバージョン)の見積もり総量より小さければ(以下の式が成り立てば)、旧データがそのまま送信されるのが好ましい。
A−PcA+ΔB,A<CB
【0043】
もし差異データの全サイズがそのページの一部についての差異データに比例していると仮定すると(常にではないがしばしば真実である)、部分的な差異データが一回計算されると、差異データの全サイズは以下のように見積もることができる。
ΔB,A≒B * ((ΔPB,A)/PB
例えば、もしページの新しいバージョンの前半分についての差異データのサイズがオリジナルページサイズの4分の1であれば、ページの新しいバージョンの差異データの全サイズはその2倍、つまりオリジナルページサイズの2分の1と見積もることができる。
【0044】
もし圧縮が行われていれば、圧縮されたファイルサイズも見積もらなければならない。もしオリジナルバージョンが圧縮形式でローカルプロキシに送信されたならば、そのサイズCA は分かっている。そして、圧縮された新しいバージョンのサイズCB は以下のように見積もることができる。
B≒B * (CA/A)
また、一度得たページの部分圧縮バージョンのサイズから全ページの圧縮率を見積もることができる。
B≒CpB * (B/PB
【0045】
これらの見積もりを行うことにより、残っている旧データの送信を続けるべきか中止すべきかをいつでも決定することが可能である。また、ページの新しいバージョンをさらに受信したときに、見積もりは改良される。
【0046】
図1は、本発明の方法を用いることができるシステム10の概略的なブロック図を示している。ユーザステーション11は、一般的にはブラウザソフトウェア12が動作するパーソナルコンピュータである。ユーザステーション11はローカルプロキシ・ソフトウェア13をも動作させる。ローカルプロキシ・ソフトウェア13は、もしネットワークサービスプロバイダ自身のシステムが本発明の方法を用いることができるのであれば、そのプロバイダによって提供されるのが一般的であろう。ユーザステーション11は、低速のリンク14(上述したように、好ましくはモデム)によってネットワークサービスプロバイダPOP(Point-of-Presence)15に接続されている。ネットワークサービスプロバイダPOP15は、好ましくはT1接続のような非常に高速の接続17によりネットワーク16(例えばインターネット)に接続されるのが好ましい。ネットワークサービスプロバイダPOP15は、リモートプロキシ151(好ましくはソフトウェアとして存在する)を有するゲートウェイ・サーバ150を好ましくは含んでいる。リモートプロキシ151は、多くのユーザステーション11(図示せず)のローカルプロキシ13と交信する。上述したように、ローカルプロキシ13の機能はブラウザ自身の中に組み込むことが可能であり、同様に、リモートプロキシの機能もゲートウェイサーバ150内に組み込むことが可能である。HTTPプロトコルにより、ブラウザ(またはローカルプロキシ)は要求されたページのキャッシュされているバージョン(もしあれば)を識別することができ、もし新しいバージョンをもっているため関連するデータサイズ(下記参照)が分かっているサーバがそれに基づき適当であると判断すると、リモートプロキシが組み込まれたサーバは差異データを生成し且つそれを送信することができる。
【0047】
ネットワーク16は、他のネットワークサービスプロバイダPOPとともに、コンテントサーバを有するコンテントプロバイダを含んでおり、ユーザはネットワークサービスプロバイダPOPを通してコンテントサーバから情報を捜し出す。
【0048】
ユーザのブラウザ12は1つのプロキシと交信するように設計されている。既知のシステムでは、ブラウザ12と交信するプロキシはリモートプロキシ151である。しかしながら、本発明においては、ユーザステーション11はローカルプロキシ13を有しており、ネットワークサービスプロバイダは本発明の方法に適合しているため、ブラウザ12はローカルプロキシ13と交信し、その結果としてリモートプロキシ151と交信する。ローカルプロキシ13は、ブラウザ12が通常プロキシから要求するであろうすべてのメッセージをブラウザ12に送るようにされている。従って、ローカルプロキシ13はブラウザ12に対しては透明である。しかしながら、リモートプロキシ151が本発明の方法に適合しているときには、ローカルプロキシ13はネットワークサービスプロバイダからのソフトウェアによって好ましくは生成されるためほとんど必然的にローカルプロキシ13が存在することになり、ネットワークサービスプロバイダは自身のリモートプロキシ151が本発明に適合したものであればそのソフトウェアをおそらく提供するだけであって、ローカルプロキシ13とリモートプロキシ151とは接続14の見掛けの速度を増大させるようなやり方で交信することが可能となる。見掛けの速度の増大は多くのやり方で達成されるが、上述した方法を用いて達成するのが好ましい。この方法を図2〜図5に示し、以下で説明する。
【0049】
ローカルプロキシ13で実行されるプロセス20の好適な実施の形態の機能が、図2および図3に示されている。
【0050】
ステップ21において、ローカルプロキシ13は、特定のURLで識別されるページを取り出す旨の要求をブラウザ12から受信する。テスト22において、システムは、要求されたページがローカルにキャッシュされているかどうかを調べる。もしキャッシュされていれば、テスト23において、システムは、キャッシュされているバージョンがまだ有効であるかどうかを調べる。このテストは、キャッシュされているデータに記録された有効期日を参照して行うことができる。その代わりとして、ブラウザは、キャッシュされているバージョンは使用できるものではなく、要求されたページはそのコンテントプロバイダから再読み込みしなければならないという指令を送るようにしてもよい。もしテスト23でキャッシュされているバージョンが有効であると判断されると、ローカルプロキシ13はステップ24においてキャッシュされているバージョンをブラウザ12に戻し、ステップ25で本方法は終了する。
【0051】
もしテスト23で要求されたページのキャッシュされているバージョンがもはや有効でないと判断されると、ステップ28において、要求されたページがリモートプロキシ151に要求される。この要求の一部として、リモートプロキシ151は、ローカルプロキシ13が差異データを扱うことができ且つどのバージョンがローカルプロキシ13にキャッシュされているかという通知をローカルプロキシ13から受ける。そして、システムは、上記要求に応答したデータを受け取り且つそのデータを処理するのを待つステップ27に進む。
【0052】
もしテスト22で要求されたページがキャッシュされていないと判断されると、ステップ26においてそのページがリモートプロキシ151に要求される。この要求の一部として、リモートプロキシ151は、ローカルプロキシ13が差異データを扱うことができるという通知をローカルプロキシ13から受け、そしてシステムは上記要求に応答したデータを受け取り且つそのデータを処理するのを待つステップ27に進む。
【0053】
ステップ27におけるレスポンスの処理は、図3に詳細に示されている。HTTPレスポンスはMIME(Multipart Internet Mail Extensions の頭字語)として知られているプロトコルのもとで送信される。MIMEプロトコルのもとでは、メッセージは単一部分メッセージまたは複数部分メッセージとなりうる。これに関連して、もしレスポンスが単一部分メッセージであれば、それは要求されたページの新しいバージョンであり、もしレスポンスが複数部分メッセージであれば、それは要求されたページの新しいバージョンかそのページの差異データあるいは旧バージョンのいずれかであってよい。複数部分メッセージのコンテントを識別する情報は、複数部分メッセージの最初の部分に存在する。従って、プロセス27は、レスポンスがMIME複数部分メッセージであるかどうかをシステムが調べるテスト30から始まる。もしMIME複数部分メッセージでなければ、それは新しいページであり、ステップ31で新しいページがローカルプロキシ13にキャッシュされ、そしてブラウザ12に戻されて表示される。
【0054】
もしテスト30でレスポンスがMIME複数部分メッセージであると判断されると、テスト32において、送信されたデータを同定するメッセージの最初の部分が要求されたページの旧バージョンであるかどうかをシステムが調べる。もし旧バージョンであれば、システムは、テスト33において、旧データの送信が中止されるか(リモートプロキシが新しいページの全体が送信されるべきであると決定した場合)をモニタし続ける。もし中止されれば、残りの送信は要求されたページの新しいバージョンとなり、ステップ31において新しいバージョンがローカルプロキシ13にキャッシュされ、そしてブラウザ12に戻されて表示される。もしテスト33で旧データの送信が中止されなければ、ステップ34で旧データがキャッシュされ、ステップ35でシステムは同様に処理される差異データを待つ。
【0055】
もしテスト32でデータが旧バージョンのデータではないと認められると、それは差異データであることもあり、その可能性がテスト36で調べられる。もしデータが差異データであれば、この差異データが要求されたページのキャッシュされているバージョンに加えられ(ステップ37)、そしてそのページの新しいバージョンが生成され、それがステップ31でローカルプロキシ13にキャッシュされ、そしてブラウザ12に戻されて表示される。もしテスト36でデータが差異データではないと認められると、そのデータは新しいページ全体ということになり(レスポンスの複数部分性にもかかわらず)、ステップ31においてローカルプロキシ13にキャッシュされ、そしてブラウザ12に戻されて表示される。
【0056】
リモートプロキシ151で実行されるプロセス40の好適な実施の形態の機能が、図4および図5に示されている。
【0057】
プロセス40は、特定のURLで識別される特定のページへのユーザステーション11からの要求をリモートプロキシ151が受信するステップ41から始まる。特定のユーザステーション11がローカルプロキシ機能をイネーブルにしなくともよく、従ってプロセス40はその可能性をも説明できるものであり且つ旧式のブラウザからの要求をも考慮したものであることが好ましいことを記しておく。
【0058】
テスト42において、リモートプロキシは要求されたページが自身のキャッシュ内にあるかどうかを調べる。もしキャッシュ内にあれば、テスト43において、リモートプロキシはキャッシュされているバージョンが有効かどうかを調べる(例えば、有効期日/時間を参照して)。もしテスト43でキャッシュされているバージョンが有効であるとされると、テスト44でリモートプロキシは両方のプロキシ(すなわち、ローカルプロキシ13とリモートプロキシ151)が同じバージョンをキャッシュしているかどうかを調べる。もし同じバージョンがキャッシュされているならば、ステップ45において、リモートプロキシ151は、ページが変更されていないことをローカルプロキシ13に通知し、そしてプロセス40はステップ46で終了する。もしテスト44において両方のプロキシが同じバージョンをもっていないと判定されると(これはローカルプロキシが全く存在しない場合を含みうる)、ステップ47でリモートプロキシ151はローカルプロキシ13に新しいページを送り、プロセス40はステップ46で終了する。
【0059】
もしテスト42でリモートプロキシ151が要求されたページのバージョンを自身がキャッシュしていないと判断すると、ステップ48において、リモートプロキシ151はネットワーク16を介してコンテント・プロバイダにそのページを要求する。そして、ステップ49において、リモートプロキシはそのコンテントの到着を待ってその処理を行う。
【0060】
もしテスト43において、キャッシュされているバージョンは期限切れまたはその他の理由で有効ではないとリモートプロキシが判断すると、リモートプロキシは、(1)リモートプロキシがネットワーク16を介してコンテント・プロバイダにそのページを要求するステップ48に進み、さらにリモートプロキシがそのコンテントの到着を待ってその処理を行うステップ49に進み、同時に、(2)テスト400で両方のプロキシに(ローカルプロキシがあるものと仮定する)同じものがキャッシュされているかを判定する。もしそうであれば、リモートプロキシ151は、ステップ49において、要求されたコンテントの到着をもってそれを処理する。もしテスト400で両方のプロキシに同じバージョンがキャッシュされている(これはローカルプロキシが全く存在しない場合を含みうる)とリモートプロキシが判定すると、テスト401において、ユーザステーションが差異データと旧データとを処理して新しいページを構築することが可能であるかどうかをリモートプロキシが判定する(プロセス20のステップ26および28で説明したように、ローカルプロキシは自身が差異データを処理することができるか否かをリモートプロキシに通知し、そしてリモートプロキシはこのどちらのメッセージをローカルプロキシから受け取ったかに基づいてテスト401において判定を行う)。もし差異データを処理できるというメッセージを受け取っていれば、既に2つのプロキシがページの異なるバージョンをキャッシュしていることが分かっており、ステップ402において、リモートプロキシは自身がキャッシュしているバージョンをローカルプロキシに送信し(これにより、2つのプロキシは差異データを用いてページを構築すべく同じ出発点に立つことになる)、さらにステップ49において、要求されたページの到着を待ってこれを処理する。もしテスト401でユーザステーションは差異データおよび旧データを処理して新しいページを構築することができないと判断されると(例えばローカルプロキシが存在しない場合)、リモートプロキシは単にステップ49に進み、当のユーザステーションにその全部が送信されるべき新しいページの受信を待つ。
【0061】
図5にその詳細を示すプロセス49は、要求されたページをコンテント・プロバイダからネットワーク16を経て受信するステップ50から開始される。テスト51において、リモートプロキシは、ユーザステーション11が差異データを処理できるかどうかを判定するテストを行う。もし処理できないのであれば、ステップ52において、リモートプロキシは新しいページの最新バージョンをキャッシュしてそれをユーザステーションに送信する。もしテスト51でユーザステーションは差異データを処理できる(すなわち、ユーザステーションが本発明に従ったローカルプロキシを含んでいる)とリモートプロキシが判定すると、テスト53において、両方のプロキシが同じバージョンをキャッシュしているか否かをリモートプロキシが(ローカルプロキシから送信されたデータに基づいて)判定する。もし同じバージョンをキャッシュしていれば、リモートプロキシは後述のテスト58に進む。もしテスト53で2つのプロキシが同じデータをキャッシュしていないとリモートプロキシが判定すると、リモートプロキシはテスト54に進み、そこで旧データ(すなわち、リモートプロキシにキャッシュされていた以前のバージョンであって、ステップ50において新しいバージョンが到着する前にローカルプロキシへの送信が開始されたもの)がいまなおローカルプロキシへの転送途中であるかをリモートプロキシが判定する。もし転送途中でない(すなわち、旧データの転送が既に完了している)と判定されると、リモートプロキシは後述のテスト58に進む。もしテスト54で旧データがまだ転送中であると判定されると、テスト55において、リモートプロキシは、送信されずに残存している旧データの量がしきい値(例えば、上述したように旧バージョンのサイズの60%)よりも大きいかどうかを判定する。もししきい値よりも大きければ、ステップ56において、旧データの転送が中止され、リモートプロキシはステップ52に進み、そこでリモートプロキシはページの最新バージョンをキャッシュしてそれをユーザステーションに転送する。もしテスト55で残存する旧データの量がしきい値より小さい(すなわち、旧データのほとんどが送信済みである)とリモートプロキシが判定すると、ステップ57において、リモートプロキシは旧データの転送を完了させ、テスト58へと進む。
【0062】
テスト58において、このテストへのリモートプロキシの到達経路に拘わらず、リモートプロキシは、新しく受信したデータがキャッシュされているデータと異なるかどうかを判定する。この判定は、実際のファイルの比較または日付/時間スタンプの比較により行われる。その他、新しく受信したデータが、キャッシュされていたバージョンはまだ最新のものであるという旨のコンテント・プロバイダからの単なるメッセージであってもよい。もしこれらいずれかの方法で新しいデータがキャッシュされているデータと異ならないと判定されると、ステップ59において、リモートプロキシはローカルプロキシにそこにキャッシュされているバージョンが最新のものである(ローカルプロキシが既にそのバージョンをキャッシュしていたか、またはローカルプロキシが前に行われたデータ転送でそのバージョンを受信したかのいずれか)旨を通知する。(新しいデータがキャッシュされているデータと同じであると判定する方法がコンテント・プロバイダからの「変更なし」というメッセージに依存している場合、上述のステップ52において、最新バージョンの送信はキャッシュされているバージョンの送信を含んでおり、リモートプロキシがさらにキャッシュを続けることは実際にはステップ52では必要ではないことを記しておく。)
【0063】
もしテスト58で新しいデータがキャッシュされているデータと異なると判定されると、ステップ503において、直接比較を行うことにより実際の差異が求められる。そしてリモートプロキシはテスト500に進み、差異データのサイズがしきい値より小さいかどうかを判定する。上述したように、比較の方法の一つは差異データが新しいページそれ自身よりも小さいかどうかであるが、上述したように他の要因も考慮される。もしテスト500で差異データのサイズがしきい値よりも小さいとされると、リモートプロキシはステップ501に進んで差異データをローカルプロキシに送信する。ローカルプロキシはその差異データを使って新しいページを再構築する(ステップ37)。もしテスト500で差異データのサイズがしきい値より小さくないとされると、リモートプロキシは差異データを送信するのは非効率的であると判断し、ステップ502に進んで単に新しいページをローカルプロキシに送信する。
【0064】
図6はプロセス49の変形例の一部を示しており、この例において差異データは上述したように大至急に計算され送信される。図6に示した部分的なプロセスは、図5のステップまたはテスト503、500、501、および502に代わるものである。
【0065】
まず、ステップ659において、新しいページデータの今までに受信した部分についての差異データが求められる。次に、テスト60において、他に部分的差異データが保持されているかどうかが判定される(第1回目には常に答えはNOとなる)。もし他に部分的な差異データがなければ、テスト61において、現在の部分的差異データのサイズが上述の送信の可否を決めるための下限値を超えているか否かが判定される。もし超えていなければ、テスト62において、そのページの送信が完了したかが判定される。もし完了していなければ、ステップ63において、部分的差異データは保持され他の以前に保持されている部分的差異データと共に蓄積され、ステップ64において次の部分に進んでプロセスはステップ659に戻る。
【0066】
もしテスト61で現在の部分的差異データのサイズが送信の可否を決めるための下限値を超えていると判定された場合、またはテスト62でそのページの送信が完了したと判断された場合(現在の部分的差異データはたとえ非常に小さくとも送信されなければならないことを意味する)、プロセスは後述するテスト67に進む。
【0067】
もしテスト60で他に部分的差異データが保持されていると判定された場合、本方法はテスト65に進み、保持されている部分的差異データと現在の部分的差異データの合計サイズが送信の可否を決めるための下限値を超えているかどうかが判定される。もし超えていなければ、テスト66において、そのページの送信が完了したかどうかが判定される。もし完了していなければ、ステップ63において、部分的差異データは保持され他の以前に保持されている部分的差異データと共に蓄積され、ステップ64において次の部分に進んでプロセスはステップ659に戻る。
【0068】
もしテスト65で保持されている部分的差異データと現在の部分的差異データの合計サイズが送信の可否を決めるための下限値を超えていると判定された場合、またはテスト66でそのページの送信が完了したかと判定された場合(現在の部分的差異データはたとえ非常に小さくとも送信されなければならないことを意味する)、プロセスはテスト67へ進む。
【0069】
テスト67では、既に転送されたまたはこれから転送される部分的差異データの累積サイズが上述の上限値を超えていたかどうかが判定される。もし超えていれば、ステップ68において部分的差異データの処理が中止され、新しいページデータがローカルプロキシに送信される。この送信は、リモートプロキシが新しいページの全体を受信してからまたはその一部をリモートプロキシが受信したときに部分的に行うようにしてもよい。このように上限値に達することにより部分的差異データの処理を中止するのは、非効率的である可能性が認められる。なぜなら、まだ計算されていない差異データの追加量が小さいかもしれないからであり、しかしそれを知る手段はなく、これについての技術を開発してもよい。
【0070】
もしテスト67で既に転送されたまたはこれから転送される部分的差異データの累積サイズが上限値を超えていないと判定されると、現在の部分的差異データおよび保持されている総ての部分的差異データはステップ69においてローカルプロキシに送信される。そして、テスト600において、そのページの送信が完了したか否かが判定され、完了している場合にはプロセスはステップ601で終了する。完了していない場合にはプロセスはステップ64に進み次の部分が処理される。
【0071】
本発明によると、キャッシュされたページはたとえ見掛け上の有効期限後であっても保持され且つキャッシュ不能のページであってもキャッシュされることは注意されるべきである。これは、以前のバージョンのデータを前もって送っておきそしてその後に差異データを送ることに基づくシステムでは、たとえ期限切れのバージョンであっても全くバージョンがないよりは好ましいからである。以前のバージョン(期限が切れているかどうかを問わない)と最新バージョンとの差異データが計算されうる限りにおいて、キャッシュされたデータの有効期限および「キャッシュ可能性能(cacheability)」は問題ではない。これは、キャッシュされているページが、取り出された最新ページに基づいて差異データを生成するためだけに用いられるという理由で許容されるものである。
【0072】
【発明の効果】
以上説明したように、本発明によると、ブラウザのキャッシュ能力をある程度有効に利用することにより、相対的に高速のネットワークからそのネットワークに相対的に低速で接続されたユーザにデータページを送信する際に生じて知覚される遅延を削減することができる。なお、当業者は本発明を上述の実施の形態とは違ったやり方で実行できることを理解するであろうが、上記実施の形態は説明のために用いられたものであって本発明はそれに限定されるものではなく、本発明は特許請求の範囲のみによって限定されるものである。
【図面の簡単な説明】
【図1】 本発明の方法を用いることができるシステムの概略的なブロック図である。
【図2】 図1に示されたローカルプロキシによって実行される、本発明の方法の一部分のフロー図である。
【図3】 図2に示されたステップの1つを詳細に示すフロー図である。
【図4】 図1に示されたリモートプロキシによって実行される、本発明の方法の一部分のフロー図である。
【図5】 図4に示されたステップの1つを詳細に示すフロー図である。
【図6】 図4に示されたステップの1つの代替的な実施の形態を詳細に示すフロー図である。
【符号の説明】
10 システム、11 ユーザステーション、12 ブラウザ、13 ローカルプロキシ、14 リンク、15 ネットワーク・サービス・プロバイダ・POP、16 ネットワーク、17 高速接続、150 サーバ、151 リモートプロキシ。

Claims (23)

  1. データネットワーク上のデータページの転送および表示方法であって、上記データネットワークはデータがページとして取り出され得るタイプのものであり、上記データネットワークは、上記データページが記憶される少なくとも1つのサーバと、上記少なくとも1つのサーバに接続されたゲートウェイと、有限速度のデータ接続により上記ゲートウェイに接続されたユーザステーションとを有しており、上記ユーザステーションは上記少なくとも1つのサーバから上記ページの1つを要求するような方法において、上記方法は、
    上記少なくとも1つのサーバの1つから上記データページを取り出すために、上記ユーザステーションから上記ゲートウェイに要求を送るステップと、
    上記データページの基礎バージョンを呼び出すステップと、
    上記基礎バージョンが最新のものでないという判断に応答して、上記ユーザステーションへ転送するために上記少なくとも1つのサーバの1つから上記ゲートウェイへの上記データページの取り出しを開始するステップと、
    上記要求に対する応答を上記ゲートウェイで受信した後、上記要求されたデータページとそのページの上記基礎バージョンとの差異を求めるステップと、
    上記ユーザステーションに上記差異を送信するステップと、
    上記基礎バージョンと上記差異との関数として上記データページを上記ユーザステーションにおいて計算するステップと、
    上記計算されたページを上記ユーザステーションに表示するステップと
    上記差異を求めるステップおよび上記差異を送信するステップの効率測度を決定するステップと、
    上記要求されたデータページの全体を上記ゲートウェイから上記ユーザステーションへ送信するのが効率的であると上記効率測度が示すときには、
    上記呼び出すステップ、上記送信するステップ、および上記表示するステップを中止するステップと、
    上記要求されたデータページの全体を上記ゲートウェイから上記ユーザステーションへ送信するステップと、
    上記要求されたデータページを上記ユーザステーションに表示するステップと、
    備えていることを特徴とするデータネットワーク上のデータページの転送および表示方法。
  2. 上記効率測度を決定するステップが、
    上記差異が求められた後に、上記差異のサイズと上記基礎バージョンの未だ転送されていないすべての残存量の送信サイズとの関数として表される合成送信サイズを評価するステップと、
    上記合成送信サイズと上記要求されたデータページの送信サイズとを比較するステップと、
    上記要求されたデータページの送信サイズが上記合成送信サイズを超えている場合には、上記要求されたデータページの全体を上記ゲートウェイから上記ユーザステーションへ送信するには非効率的であると判定し、上記要求されたデータページの送信サイズが上記合成送信サイズを超えていない場合には、上記要求されたデータページの全体を上記ゲートウェイから上記ユーザステーションへ送信するには効率的であると判定するステップとを備えていることを特徴とする請求項に記載のデータネットワーク上のデータページの転送および表示方法。
  3. 上記合成送信サイズおよび上記要求されたデータページの送信サイズのそれぞれが、送信の前に行われる圧縮に基づいて判断されることを特徴とする請求項に記載のデータネットワーク上のデータページの転送および表示方法。
  4. 上記効率測度を決定するステップが、
    上記要求されたデータページが上記ゲートウェイに受信された時点での、上記基礎バージョンが上記ユーザステーションへ転送された割合を判定するステップと、
    上記基礎バージョンが転送された割合がしきい値率を超えている場合には、上記要求されたデータページの全体を上記ゲートウェイから上記ユーザステーションへ送信するには非効率的であると判定し、上記要求されたデータページの送信サイズが上記合成送信サイズを超えていない場合には、上記要求されたデータページの全体を上記ゲートウェイから上記ユーザステーションへ送信するには効率的であると判定するステップとを備えていることを特徴とする請求項に記載のデータネットワーク上のデータページの転送および表示方法。
  5. 上記しきい値率が動的に決定されることを特徴とする請求項に記載のデータネットワーク上のデータページの転送および表示方法。
  6. 上記しきい値率が上記有限速度に基づいて決定されることを特徴とする請求項に記載のデータネットワーク上のデータページの転送および表示方法。
  7. 上記効率測度を決定するステップが、
    上記要求されたデータページが上記ゲートウェイに受信された時点での、上記基礎バージョンが上記ユーザステーションへ転送された割合を判定するステップと、
    上記基礎バージョンが転送された割合がしきい値率を超えている場合には、上記要求されたデータページの全体を上記ゲートウェイから上記ユーザステーションへ送信するには非効率的であると判定するステップと、
    上記要求されたデータページの送信サイズが上記合成送信サイズを超えていない場合には、
    上記差異が求められた後に、上記差異のサイズと上記基礎バージョンの未だ転送されていないすべての残存量の送信サイズとの関数として表される合成送信サイズを評価するステップと、
    上記合成送信サイズと上記要求されたデータページの送信サイズとを比較するステップと、
    上記要求されたデータページの送信サイズが上記合成送信サイズを超えている場合には、上記要求されたデータページの全体を上記ゲートウェイから上記ユーザステーションへ送信するには非効率的であると判定し、上記要求されたデータページの送信サイズが上記合成送信サイズを超えていない場合には、上記要求されたデータページの全体を上記ゲートウェイから上記ユーザステーションへ送信するには効率的であると判定するステップとを備えていることを特徴とする請求項に記載のデータネットワーク上のデータページの転送および表示方法。
  8. 上記合成送信サイズおよび上記要求されたデータページの送信サイズのそれぞれが、送信の前に行われる圧縮に基づいて判断されることを特徴とする請求項に記載のデータネットワーク上のデータページの転送および表示方法。
  9. 上記しきい値率が動的に決定されることを特徴とする請求項に記載のデータネットワーク上のデータページの転送および表示方法。
  10. 上記しきい値率が上記有限速度に基づいて決定されることを特徴とする請求項9に記載のデータネットワーク上のデータページの転送および表示方法。
  11. データネットワーク上のデータページの転送および表示方法であって、上記データネットワークはデータがページとして取り出され得るタイプのものであり、上記データネットワークは、上記データページが記憶される少なくとも1つのサーバと、上記少なくとも1つのサーバに接続されたゲートウェイと、有限速度のデータ接続により上記ゲートウェイに接続されたユーザステーションとを有しており、上記ユーザステーションは上記少なくとも1つのサーバから上記ページの1つを要求するような方法において、上記方法は、
    上記少なくとも1つのサーバの1つから上記データページを取り出すために、上記ユーザステーションから上記ゲートウェイに要求を送るステップと、
    上記データページの基礎バージョンを呼び出すステップと、
    上記基礎バージョンが最新のものでないという判断に応答して、上記ユーザステーションへ転送するために上記少なくとも1つのサーバの1つから上記ゲートウェイへの上記デ ータページの取り出しを開始するステップと、
    上記要求に対する応答を上記ゲートウェイで受信した後、上記要求されたデータページとそのページの上記基礎バージョンとの差異を求めるステップと、
    上記ユーザステーションに上記差異を送信するステップと、
    上記基礎バージョンと上記差異との関数として上記データページを上記ユーザステーションにおいて計算するステップと、
    上記計算されたページを上記ユーザステーションに表示するステップと、
    上記差異のサイズをしきい値と比較するステップと、
    上記差異が上記しきい値を超えている場合に、
    上記呼び出すステップ、上記送信するステップ、および上記表示するステップを中止するステップと、
    上記要求されたデータページの全体を上記ゲートウェイから上記ユーザステーションへ送信するステップと、
    上記要求されたデータページを上記ユーザステーションに表示するステップと
    備えていることを特徴とするデータネットワーク上のデータページの転送および表示方法。
  12. 上記しきい値が動的に決定されることを特徴とする請求項11に記載のデータネットワーク上のデータページの転送および表示方法。
  13. 上記しきい値が上記有限速度に基づいて決定されることを特徴とする請求項12に記載のデータネットワーク上のデータページの転送および表示方法。
  14. データネットワーク上のデータページの転送および表示方法であって、上記データネットワークはデータがページとして取り出され得るタイプのものであり、上記データネットワークは、上記データページが記憶される少なくとも1つのサーバと、上記少なくとも1つのサーバに接続されたゲートウェイと、有限速度のデータ接続により上記ゲートウェイに接続されたユーザステーションとを有しており、上記ユーザステーションは上記少なくとも1つのサーバから上記ページの1つを要求するような方法において、上記方法は、
    上記少なくとも1つのサーバの1つから上記データページを取り出すために、上記ユーザステーションから上記ゲートウェイに要求を送るステップと、
    上記データページの基礎バージョンを呼び出すステップと、
    上記基礎バージョンが最新のものでないという判断に応答して、上記ユーザステーションへ転送するために上記少なくとも1つのサーバの1つから上記ゲートウェイへの上記データページの取り出しを開始するステップと、
    上記要求に対する応答を上記ゲートウェイで受信した後、上記要求されたデータページとそのページの上記基礎バージョンとの差異を求めるステップと、
    上記ユーザステーションに上記差異を送信するステップと、
    上記基礎バージョンと上記差異との関数として上記データページを上記ユーザステーションにおいて計算するステップと、
    上記計算されたページを上記ユーザステーションに表示するステップと、
    を備え、
    上記差異を求めるステップが、
    上記少なくとも1つのサーバの1つからの上記データページの上記取り出しの完了を待つステップと、
    上記取り出しを完了したデータページと上記ページの基礎バージョンとを比較するステップと、
    を備えていることを特徴とするデータネットワーク上のデータページの転送および表示方法。
  15. データネットワーク上のデータページの転送および表示方法であって、上記データネットワークはデータがページとして取り出され得るタイプのものであり、上記データネットワークは、上記データページが記憶される少なくとも1つのサーバと 、上記少なくとも1つのサーバに接続されたゲートウェイと、有限速度のデータ接続により上記ゲートウェイに接続されたユーザステーションとを有しており、上記ユーザステーションは上記少なくとも1つのサーバから上記ページの1つを要求するような方法において、上記方法は、
    上記少なくとも1つのサーバの1つから上記データページを取り出すために、上記ユーザステーションから上記ゲートウェイに要求を送るステップと、
    上記データページの基礎バージョンを呼び出すステップと、
    上記基礎バージョンが最新のものでないという判断に応答して、上記ユーザステーションへ転送するために上記少なくとも1つのサーバの1つから上記ゲートウェイへの上記データページの取り出しを開始するステップと、
    上記要求に対する応答を上記ゲートウェイで受信した後、上記要求されたデータページとそのページの上記基礎バージョンとの差異を求めるステップと、
    上記ユーザステーションに上記差異を送信するステップと、
    上記基礎バージョンと上記差異との関数として上記データページを上記ユーザステーションにおいて計算するステップと、
    上記計算されたページを上記ユーザステーションに表示するステップと、
    を備え、
    上記差異を求めるステップが、
    上記少なくとも1つのサーバの1つからの上記データページの所定部分の取り出しの完了を待つステップと、
    上記データページと上記基礎バージョンとの部分的差異を生成するために、上記データページの上記取り出された所定部分と上記データページの基礎バージョンとを比較するステップと、
    上記データページの追加分の所定部分について、上記待つステップと上記比較するステップとを繰り返すステップとを備えていることを特徴とするデータネットワーク上のデータページの転送および表示方法。
  16. 上記部分的差異を生成する際に、
    上記部分的差異のサイズと下限しきい値とを比較するステップと、
    上記部分的差異の送信サイズが下限しきい値を超えている場合には、上記部分的差異を上記ユーザステーションに送信するステップと、
    上記部分的差異の送信サイズが下限しきい値より小さい場合には、
    上記部分的差異を保持するステップと、
    上記データページとその上記基礎バージョンとの少なくとも1つの追加分の部分的差異を生成するために、上記データページの少なくとも1つの追加分の取り出された所定部分と上記データページの上記基礎バージョンとを比較するステップと、
    上記少なくとも1つの追加分の部分的差異の送信サイズと上記保持された部分的差異の送信サイズとを、これらの合計が上記下限しきい値を超えるまで加算するステップと、
    上記保持された部分的差異および上記少なくとも1つの追加分の部分的差異を上記ユーザステーションに送信するステップとを備えていることを特徴とする請求項15に記載のデータネットワーク上のデータページの転送および表示方法。
  17. 上記部分的差異の送信サイズおよび上記少なくとも1つの追加分の部分的差異の送信サイズのそれぞれが、送信の前に行われる圧縮に基づいて判断されることを特徴とする請求項16に記載のデータネットワーク上のデータページの転送および表示方法。
  18. 上記部分的差異のそれぞれの送信サイズを求めるステップと、
    上記部分的差異のそれぞれを上記ユーザステーションに送信する際に、上記部分的差異の送信サイズと上記ユーザステーションに送信された上記部分的差異の累積送信サイズとを加算するステップと、
    上記累積送信サイズと上限しきい値とを比較するステップと、
    上記累積送信サイズが上記上限しきい値を超えている場合には、上記送信サイズを求めるステップを中止して上記データページを上記ユーザステーションに送信するステップとをさらに備えていることを特徴とする請求項15に記載のデータネットワーク上のデータページの転送および表示方法。
  19. 上記部分的差異の送信サイズおよび上記少なくとも1つの追加分の部分的差異の送信サイズのそれぞれが、送信の前に行われる圧縮に基づいて判断されることを特徴とする請求項18に記載のデータネットワーク上のデータページの転送および表示方法。
  20. 上記差異を求めるステップおよび上記差異を送信するステップの効率測度を決定するステップと、
    上記要求されたデータページの全体を上記ゲートウェイから上記ユーザステーションへ送信するのが効率的であると上記効率測度が示すときには、
    上記呼び出すステップ、上記送信するステップ、および上記表示するステップを中止するステップと、
    上記要求されたデータページの全体を上記ゲートウェイから上記ユーザステーションへ送信するステップと、
    上記要求されたデータページを上記ユーザステーションに表示するステップとをさらに備えていることを特徴とする請求項15に記載のデータネットワーク上のデータページの転送および表示方法。
  21. 上記効率測度を決定するステップが、
    上記部分的差異のサイズが求められた後に、上記部分的差異のサイズと上記基礎バージョンの未だ転送されていないすべての残存量の送信サイズとの関数として表される合成送信サイズを評価するステップと、
    上記合成送信サイズと上記要求されたデータページの送信サイズとを比較するステップと、
    上記要求されたデータページの送信サイズが上記合成送信サイズを超えている場合には、上記要求されたデータページの全体を上記ゲートウェイから上記ユーザステーションへ送信するには非効率的であると判定し、上記要求されたデータページの送信サイズが上記合成送信サイズを超えていない場合には、上記要求されたデータページの全体を上記ゲートウェイから上記ユーザステーションへ送信するには効率的であると判定するステップとを備えていることを特徴とする請求項20に記載のデータネットワーク上のデータページの転送および表示方法。
  22. 上記評価するステップが、上記部分的差異のサイズから、上記データページとその基礎バージョンとの差異を表すデータの全サイズを見積もるステップを備えていることを特徴とする請求項21に記載のデータネットワーク上のデータページの転送および表示方法。
  23. 上記合成送信サイズおよび上記要求されたデータページの送信サイズのそれぞれが、送信の前に行われる圧縮に基づいて判断されることを特徴とする請求項21に記載のデータネットワーク上のデータページの転送および表示方法。
JP27597797A 1996-10-11 1997-10-08 データネットワーク上のデータページの転送および表示方法 Expired - Fee Related JP4220000B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/729,105 1996-10-11
US08/729,105 US5931904A (en) 1996-10-11 1996-10-11 Method for reducing the delay between the time a data page is requested and the time the data page is displayed

Publications (2)

Publication Number Publication Date
JPH10214239A JPH10214239A (ja) 1998-08-11
JP4220000B2 true JP4220000B2 (ja) 2009-02-04

Family

ID=24929603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27597797A Expired - Fee Related JP4220000B2 (ja) 1996-10-11 1997-10-08 データネットワーク上のデータページの転送および表示方法

Country Status (5)

Country Link
US (3) US5931904A (ja)
EP (1) EP0836145B1 (ja)
JP (1) JP4220000B2 (ja)
CA (1) CA2217370C (ja)
DE (1) DE69736045T2 (ja)

Families Citing this family (160)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5931904A (en) * 1996-10-11 1999-08-03 At&T Corp. Method for reducing the delay between the time a data page is requested and the time the data page is displayed
US6604124B1 (en) * 1997-03-13 2003-08-05 A:\Scribes Corporation Systems and methods for automatically managing work flow based on tracking job step completion status
US5948066A (en) * 1997-03-13 1999-09-07 Motorola, Inc. System and method for delivery of information over narrow-band communications links
US6253228B1 (en) * 1997-03-31 2001-06-26 Apple Computer, Inc. Method and apparatus for updating and synchronizing information between a client and a server
US6314456B1 (en) * 1997-04-02 2001-11-06 Allegro Software Development Corporation Serving data from a resource limited system
US6782427B1 (en) * 1997-04-02 2004-08-24 Allegro Software Development Corporation Serving data from a resource limited system
JPH10307818A (ja) * 1997-05-08 1998-11-17 Nec Corp 文書変換システム、文書変換方法および文書変換用プログラムを記録した記録媒体
US7103794B2 (en) 1998-06-08 2006-09-05 Cacheflow, Inc. Network object cache engine
US20030009563A1 (en) * 1997-07-31 2003-01-09 At&T Corp. Method for client-side inclusion of data elements
US6393526B1 (en) * 1997-10-28 2002-05-21 Cache Plan, Inc. Shared cache parsing and pre-fetch
US6286046B1 (en) * 1997-12-22 2001-09-04 International Business Machines Corporation Method of recording and measuring e-business sessions on the world wide web
US7010532B1 (en) * 1997-12-31 2006-03-07 International Business Machines Corporation Low overhead methods and apparatus for shared access storage devices
US6256620B1 (en) * 1998-01-16 2001-07-03 Aspect Communications Method and apparatus for monitoring information access
US6298356B1 (en) * 1998-01-16 2001-10-02 Aspect Communications Corp. Methods and apparatus for enabling dynamic resource collaboration
US6366947B1 (en) * 1998-01-20 2002-04-02 Redmond Venture, Inc. System and method for accelerating network interaction
US7949779B2 (en) * 1998-02-10 2011-05-24 Level 3 Communications, Llc Controlling subscriber information rates in a content delivery network
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
AUPP252798A0 (en) * 1998-03-24 1998-04-23 Griffits, John Philip Enhanced trusted systems processing
US6341339B1 (en) * 1998-03-26 2002-01-22 Compaq Computer Corporation Apparatus and method for maintaining data coherence within a cluster of symmetric multiprocessors
US6412015B1 (en) * 1998-06-24 2002-06-25 New Moon Systems, Inc. System and method for virtualizing and controlling input and output of computer programs
US6427187B2 (en) * 1998-07-31 2002-07-30 Cache Flow, Inc. Multiple cache communication
SE514376C2 (sv) * 1998-09-24 2001-02-19 Mirror Image Internet Inc Ett internet-cachningssystem samt ett förfarande och anordning i ett sådant system
US6230165B1 (en) * 1998-10-16 2001-05-08 Cerulean Method for encoding and transporting database objects over bandwidth constrained networks
US6279041B1 (en) * 1998-11-13 2001-08-21 International Business Machines Corporation Methods, systems and computer program products for differencing data communications using a message queue
US6178461B1 (en) * 1998-12-08 2001-01-23 Lucent Technologies Inc. Cache-based compaction technique for internet browsing using similar objects in client cache as reference objects
US6526448B1 (en) 1998-12-22 2003-02-25 At&T Corp. Pseudo proxy server providing instant overflow capacity to computer networks
US6484212B1 (en) 1999-04-20 2002-11-19 At&T Corp. Proxy apparatus and method for streaming media information
US6651103B1 (en) * 1999-04-20 2003-11-18 At&T Corp. Proxy apparatus and method for streaming media information and for increasing the quality of stored media information
EP1049028A3 (en) * 1999-04-26 2001-01-31 Sarnoff Corporation Efficient distribution of information to the end-user
JP3451981B2 (ja) * 1999-04-30 2003-09-29 日本電気株式会社 インターネットのホームページデータ収集方法
US6263371B1 (en) 1999-06-10 2001-07-17 Cacheflow, Inc. Method and apparatus for seaming of streaming content
US6275470B1 (en) 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US7188240B1 (en) * 1999-07-15 2007-03-06 International Business Machines Corporation Method and system for encryption of web browser cache
US6480211B1 (en) * 1999-07-23 2002-11-12 Denso Corporation Bi-directional update of displays in portable electronic device
US6538667B1 (en) * 1999-07-23 2003-03-25 Citrix Systems, Inc. System and method for providing immediate visual response to user input at a client system connected to a computer system by a high-latency connection
US6721780B1 (en) * 1999-11-09 2004-04-13 Fireclick, Inc. Predictive pre-download of network objects
DE69925170D1 (de) * 1999-11-23 2005-06-09 Peridot Invest Ltd Verfahren zur informationsverteilung zu einem netzkunden
US6374248B1 (en) * 1999-12-02 2002-04-16 Sun Microsystems, Inc. Method and apparatus for providing local path I/O in a distributed file system
AU1956101A (en) * 1999-12-10 2001-06-18 Sun Microsystems, Inc. Maintaining cache consistency for dynamic web content
KR100312426B1 (ko) * 1999-12-15 2001-11-05 오길록 실시간 운영체제 기반의 브라우저를 위한 컨텐츠 변환 및캐슁방법
JP2001184286A (ja) * 1999-12-27 2001-07-06 Nec Corp コンテンツ取得装置、コンテンツ取得方法、コンテンツサーバおよびコンテンツ取得システム
US7243136B2 (en) * 2000-01-18 2007-07-10 Inktomi Corporation Approach for managing and providing content to users
KR100366598B1 (ko) * 2000-01-25 2002-12-31 박형곤 인터넷에서 웹 서버 정보 서비스 방법
US6735623B1 (en) * 2000-02-09 2004-05-11 Mitch Prust Method and system for accessing a remote storage area
US6539406B1 (en) 2000-02-17 2003-03-25 Conectron, Inc. Method and apparatus to create virtual back space on an electronic document page, or an electronic document element contained therein, and to access, manipulate and transfer information thereon
AU2001243218A1 (en) * 2000-02-24 2001-09-03 Shin-Ping Liu Content distribution system
AU778428B2 (en) * 2000-02-25 2004-12-02 Canon Kabushiki Kaisha Local sound and graphic feedback
KR20020097192A (ko) * 2000-03-01 2002-12-31 컴퓨터 어소시에이츠 싱크, 인코포레이티드 컴퓨터 파일의 아카이브 갱신 방법 및 시스템
US7509404B2 (en) * 2000-03-08 2009-03-24 Oracle International Corporation Methods and systems for partial page caching of dynamically generated content
US6684226B1 (en) * 2000-03-24 2004-01-27 Frontline Software Aps Method for storing data in one or more files so that both previous and new versions of the data are separately accessible
EP1143350A1 (en) * 2000-04-03 2001-10-10 Koninklijke KPN N.V. A method and a system for retrieving data of a data network
US7490166B2 (en) 2000-05-26 2009-02-10 Citrix Systems, Inc. Remote control of a client's off-screen surface
US6606604B1 (en) 2000-05-31 2003-08-12 International Business Machines Corporation Incremental updates of items and prices on a customer's computer to reduce download times for frequently purchased items in e-commerce transactions in a method, system and program
FI111594B (fi) * 2000-06-05 2003-08-15 Nokia Corp Tilaajatietojen hallinta matkaviestinjärjestelmässä
US20050055426A1 (en) * 2000-06-12 2005-03-10 Kim Smith System, method and computer program product that pre-caches content to provide timely information to a user
US6742033B1 (en) 2000-06-12 2004-05-25 Gateway, Inc. System, method and computer program product that pre-caches content to provide timely information to a user
US7058691B1 (en) * 2000-06-12 2006-06-06 Trustees Of Princeton University System for wireless push and pull based services
US6675212B1 (en) 2000-06-12 2004-01-06 Gateway, Inc. Method and apparatus for efficient data browsing
US6826626B1 (en) 2000-07-21 2004-11-30 Clear Blue Technologies Management, Inc. Method of and apparatus for rapid retrieval of data in a content distribution network
US7958251B2 (en) 2000-08-04 2011-06-07 Goldman Sachs & Co. Method and system for processing raw financial data streams to produce and distribute structured and validated product offering data to subscribing clients
US7958025B2 (en) 2000-08-04 2011-06-07 Goldman Sachs & Co. Method and system for processing raw financial data streams to produce and distribute structured and validated product offering objects
WO2002013091A1 (en) * 2000-08-04 2002-02-14 Goldman, Sachs & Co. System for processing raw financial data to produce validated product offering information to subscribers
US7139844B2 (en) 2000-08-04 2006-11-21 Goldman Sachs & Co. Method and system for processing financial data objects carried on broadcast data streams and delivering information to subscribing clients
US6704024B2 (en) * 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US7571217B1 (en) 2000-08-16 2009-08-04 Parallel Networks, Llc Method and system for uniform resource locator transformation
US6732237B1 (en) * 2000-08-29 2004-05-04 Oracle International Corporation Multi-tier caching system
US6799251B1 (en) * 2000-08-29 2004-09-28 Oracle International Corporation Performance-based caching
EP1187016A1 (en) * 2000-09-07 2002-03-13 Matsushita Electric Industrial Co., Ltd. Distributed processing job executing method and network system
AU2001288820A1 (en) * 2000-09-12 2002-03-26 Citrix Systems, Inc. A system and method for accessing web pages
US6766354B1 (en) * 2000-09-28 2004-07-20 Intel Corporation Speed sensitive content delivery in a client-server network
US6968461B1 (en) * 2000-10-03 2005-11-22 Networks Associates Technology, Inc. Providing break points in a malware scanning operation
US6978281B1 (en) * 2000-11-21 2005-12-20 Microsoft Corporation Versioned project data
US7269784B1 (en) 2001-01-22 2007-09-11 Kasriel Stephane Server-originated differential caching
US20020107910A1 (en) * 2001-02-02 2002-08-08 Yan Zhao Client/server two-way communication system framework under HTTP protocol
US20020138589A1 (en) * 2001-03-21 2002-09-26 Binnur Al-Kazily System and method for service caching on-demand
US20020147849A1 (en) * 2001-04-05 2002-10-10 Chung-Kei Wong Delta encoding using canonical reference files
US7383348B2 (en) 2001-06-13 2008-06-03 Kabushiki Kaisha Toshiba Data transfer scheme using caching technique for reducing network load
US7185063B1 (en) * 2001-06-22 2007-02-27 Digital River, Inc. Content delivery network using differential caching
EP1276292B1 (en) * 2001-07-13 2018-01-03 Hewlett-Packard Development Company, L.P. File transfer protocol
US20030028673A1 (en) * 2001-08-01 2003-02-06 Intel Corporation System and method for compressing and decompressing browser cache in portable, handheld and wireless communication devices
DE60136107D1 (de) * 2001-08-03 2008-11-20 Nokia Corp Verfahren, system und endgerät für datennetze mit verteilten cache-speichern
US6785769B1 (en) 2001-08-04 2004-08-31 Oracle International Corporation Multi-version data caching
US6789170B1 (en) * 2001-08-04 2004-09-07 Oracle International Corporation System and method for customizing cached data
US7103714B1 (en) 2001-08-04 2006-09-05 Oracle International Corp. System and method for serving one set of cached data for differing data requests
US7092997B1 (en) 2001-08-06 2006-08-15 Digital River, Inc. Template identification with differential caching
US7188214B1 (en) 2001-08-07 2007-03-06 Digital River, Inc. Efficient compression using differential caching
JP4118037B2 (ja) * 2001-09-04 2008-07-16 シャープ株式会社 通信端末機器
JP2003108537A (ja) * 2001-09-13 2003-04-11 Internatl Business Mach Corp <Ibm> ネットワーク上のサーバに対するサービス要求の負荷分散の方法およびシステム
US7860964B2 (en) 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
EP1436736B1 (en) 2001-09-28 2017-06-28 Level 3 CDN International, Inc. Configurable adaptive global traffic control and management
US20030101234A1 (en) * 2001-11-28 2003-05-29 International Business Machines Corporation System and method for indicating whether a document is cached
JP2003177992A (ja) * 2001-12-10 2003-06-27 Seiko Epson Corp 差分通信システム、差分通信装置及び差分通信プログラム、並びに差分通信方法
NL1019618C2 (nl) * 2001-12-20 2003-06-24 Koninkl Kpn Nv Werkwijze, systeem en agent voor het versturen van informatie over een communicatienetwerk.
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US7296051B1 (en) 2002-02-19 2007-11-13 Digital River, Inc. Predictive predownload of templates with delta encoding
US7487261B1 (en) 2002-02-22 2009-02-03 Digital River, Inc. Delta caching service
US8671213B2 (en) 2002-03-14 2014-03-11 Citrix Systems, Inc. Methods and apparatus for generating graphical and media displays at a client
US7376695B2 (en) 2002-03-14 2008-05-20 Citrix Systems, Inc. Method and system for generating a graphical display for a remote terminal session
JP4020676B2 (ja) * 2002-03-26 2007-12-12 株式会社東芝 Webシステム及びWebシステムの制御方法
US7516194B1 (en) * 2002-05-21 2009-04-07 Microsoft Corporation Method for downloading high-volumes of content from the internet without adversely effecting the source of the content or being detected
JP3848209B2 (ja) * 2002-05-23 2006-11-22 株式会社東芝 データ転送装置、データ転送方法及びプログラム
US7565399B1 (en) * 2002-08-26 2009-07-21 Netapp, Inc. Caching web objects transformed by a pipeline of adaptation services
US20040205165A1 (en) * 2003-01-21 2004-10-14 Eplication Networks Ltd. Method for improving quality of service from an Internet server employing heuristic optimization of downloading
US7571391B2 (en) * 2003-10-17 2009-08-04 Sap Ag Selective rendering of user interface of computer program
US7251649B2 (en) * 2003-10-31 2007-07-31 Hewlett-Packard Development Company, L.P. Method for prioritizing content
US20050144278A1 (en) * 2003-12-12 2005-06-30 Valeri Atamaniouk System and method for multipart response optimization
US8010670B2 (en) * 2003-12-23 2011-08-30 Slipstream Data Inc. Meta-data based method for local cache utilization
US7840557B1 (en) * 2004-05-12 2010-11-23 Google Inc. Search engine cache control
US7853676B1 (en) * 2004-06-10 2010-12-14 Cisco Technology, Inc. Protocol for efficient exchange of XML documents with a network device
US8224964B1 (en) 2004-06-30 2012-07-17 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US7437364B1 (en) * 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US8676922B1 (en) 2004-06-30 2014-03-18 Google Inc. Automatic proxy setting modification
US7577749B1 (en) 2004-12-03 2009-08-18 Ux Ltd. Emulation of persistent HTTP connections between network devices
US8423673B2 (en) 2005-03-14 2013-04-16 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment using compression
US8171169B2 (en) 2005-03-14 2012-05-01 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment
US8126990B2 (en) 2005-04-21 2012-02-28 Fiducci Thomas E Data backup and transfer system, method and computer program product
US7849165B2 (en) 2005-04-21 2010-12-07 Fiducci Thomas E Data backup, storage, transfer, and retrieval system, method and computer program product
US8312172B2 (en) * 2005-05-26 2012-11-13 Bytemobile, Inc. Method and system for delta compression
US20070055957A1 (en) * 2005-09-07 2007-03-08 Richard Birenheide Remote debugging proxy
US7603669B2 (en) * 2005-09-27 2009-10-13 Microsoft Corporation Upgrade and downgrade of data resource components
US7596720B2 (en) * 2005-09-27 2009-09-29 Microsoft Corporation Application health checks
US7676806B2 (en) * 2005-09-27 2010-03-09 Microsoft Corporation Deployment, maintenance and configuration of complex hardware and software systems
US20070101061A1 (en) * 2005-10-27 2007-05-03 Guruprasad Baskaran Customized content loading mechanism for portions of a web page in real time environments
US7830388B1 (en) * 2006-02-07 2010-11-09 Vitie Inc. Methods and apparatus of sharing graphics data of multiple instances of interactive application
US7996495B2 (en) * 2006-04-06 2011-08-09 General Electric Company Adaptive selection of image streaming mode
TW200743000A (en) * 2006-05-11 2007-11-16 Ming-Ta Hsu Report retrieval and presentation methods and systems
CN101193113A (zh) * 2006-11-29 2008-06-04 国际商业机器公司 内容响应和内容请求方法及内容响应器和内容请求器
US8499044B2 (en) * 2006-12-07 2013-07-30 Microsoft Corporation Formatted message processing utilizing a message map
US8065275B2 (en) * 2007-02-15 2011-11-22 Google Inc. Systems and methods for cache optimization
US8812651B1 (en) 2007-02-15 2014-08-19 Google Inc. Systems and methods for client cache awareness
US8103783B2 (en) 2007-03-12 2012-01-24 Citrix Systems, Inc. Systems and methods of providing security and reliability to proxy caches
US20080228864A1 (en) * 2007-03-12 2008-09-18 Robert Plamondon Systems and methods for prefetching non-cacheable content for compression history
US8037126B2 (en) 2007-03-12 2011-10-11 Citrix Systems, Inc. Systems and methods of dynamically checking freshness of cached objects based on link status
US7584294B2 (en) 2007-03-12 2009-09-01 Citrix Systems, Inc. Systems and methods for prefetching objects for caching using QOS
US8701010B2 (en) 2007-03-12 2014-04-15 Citrix Systems, Inc. Systems and methods of using the refresh button to determine freshness policy
US7783757B2 (en) 2007-03-12 2010-08-24 Citrix Systems, Inc. Systems and methods of revalidating cached objects in parallel with request for object
US8504775B2 (en) 2007-03-12 2013-08-06 Citrix Systems, Inc Systems and methods of prefreshening cached objects based on user's current web page
US7720936B2 (en) 2007-03-12 2010-05-18 Citrix Systems, Inc. Systems and methods of freshening and prefreshening a DNS cache
US20090049243A1 (en) * 2007-08-13 2009-02-19 Microsoft Corporation Caching Dynamic Content
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
CN102047244B (zh) 2008-04-04 2013-02-27 第三雷沃通讯有限责任公司 在内容分发网络(cdn)中处理长尾内容
US8205643B2 (en) * 2008-10-16 2012-06-26 Woodward, Inc. Multi-tubular fluid transfer conduit
JP5280908B2 (ja) * 2009-03-25 2013-09-04 公益財団法人鉄道総合技術研究所 車上通信装置、データ配信方法、及びプログラム
US8539160B2 (en) * 2009-09-10 2013-09-17 Red Hat, Inc. Asynchronous cache refresh for systems with a heavy load
US8825018B2 (en) * 2010-06-01 2014-09-02 Blackberry Limited Methods and apparatus for increasing voice call performance through controlled interruption of data transfer in a relay network
US8495019B2 (en) 2011-03-08 2013-07-23 Ca, Inc. System and method for providing assured recovery and replication
US8732571B2 (en) * 2011-03-31 2014-05-20 Google Inc. Methods and systems for generating and displaying a preview image of a content area
CA2738290C (en) * 2011-04-28 2019-03-05 Ibm Canada Limited-Ibm Canada Limitee Exclusion of irrelevant data from a dom equivalence
US8909888B2 (en) * 2011-04-29 2014-12-09 Seagate Technology Llc Secure erasure of data from a non-volatile memory
US8984166B2 (en) 2012-04-05 2015-03-17 Cloudflare, Inc. Method and apparatus for reducing network resource transmission size using delta compression
US8832288B1 (en) * 2012-07-13 2014-09-09 Google Inc. Transitions between remotely cached and live versions of a webpage
US9110939B2 (en) * 2012-10-05 2015-08-18 Here Global B.V. Method and apparatus for providing incremental database updates based on delta pages
KR101432990B1 (ko) * 2012-12-12 2014-08-22 에스케이플래닛 주식회사 사용자의 입력에 즉각적인 결과를 제공할 수 있는 서비스 제공 방법, 이를 위한 시스템 및 장치
US9519433B2 (en) 2015-05-13 2016-12-13 VSector Security Technologies, LLC Secure virtual sector erasure method and system
KR20180069806A (ko) * 2015-10-15 2018-06-25 텐세라 네트워크스 리미티드 통신 단말기에서의 콘텐츠의 신선도 인식 프리젠테이션
US10044826B2 (en) 2016-08-10 2018-08-07 Cloudflare, Inc. Method and apparatus for reducing network resource transmission size using delta compression
JP2018195039A (ja) * 2017-05-17 2018-12-06 コニカミノルタ株式会社 データ通信システム及びデータ処理装置
WO2018234967A1 (en) 2017-06-19 2018-12-27 Tensera Networks Ltd. SILENT CONTENT UPDATE IN USER DEVICES
US12120199B2 (en) 2019-09-24 2024-10-15 International Business Machines Corporation Cachability of single page applications

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4992954A (en) * 1987-08-05 1991-02-12 Hitachi, Ltd. Method of storing character patterns and character pattern utilization system
US5210865A (en) * 1989-06-30 1993-05-11 Digital Equipment Corporation Transferring data between storage media while maintaining host processor access for I/O operations
US5155484A (en) * 1991-09-13 1992-10-13 Salient Software, Inc. Fast data compressor with direct lookup table indexing into history buffer
EP0537397B1 (en) * 1991-10-17 1997-02-05 International Business Machines Corporation Adaptive FIFO memory controller
US5235419A (en) * 1991-10-24 1993-08-10 General Instrument Corporation Adaptive motion compensation using a plurality of motion compensators
DE69334349D1 (de) * 1992-09-01 2011-04-21 Apple Inc Verbesserte Vektorquatisierung
GB2278973B (en) * 1993-06-11 1997-10-29 Quantel Ltd Video image processing systems
US5561688A (en) * 1993-12-29 1996-10-01 International Business Machines Corporation Real-time digital audio compression/decompression system
JPH07234810A (ja) * 1994-02-24 1995-09-05 Fujitsu Ltd 共有文書管理方式
US5619685A (en) * 1994-11-04 1997-04-08 Ball Corporation Run-time dynamically adaptive computer process for facilitating communication between computer programs
US5686912A (en) * 1995-05-08 1997-11-11 Hewlett-Packard Company Data compression method and apparatus with optimized transitions between compressed and uncompressed modes
US5867661A (en) * 1996-02-15 1999-02-02 International Business Machines Corporation Method and apparatus of using virtual sockets for reducing data transmitted over a wireless communication link between a client web browser and a host web server using a standard TCP protocol
US5859971A (en) * 1996-02-15 1999-01-12 International Business Machines Corp. Differencing client/server communication system for use with CGI forms
US5878213A (en) * 1996-02-15 1999-03-02 International Business Machines Corporation Methods, systems and computer program products for the synchronization of time coherent caching system
US5754774A (en) * 1996-02-15 1998-05-19 International Business Machine Corp. Client/server communication system
US5931904A (en) * 1996-10-11 1999-08-03 At&T Corp. Method for reducing the delay between the time a data page is requested and the time the data page is displayed

Also Published As

Publication number Publication date
EP0836145A2 (en) 1998-04-15
EP0836145A3 (en) 1999-04-07
US6910073B2 (en) 2005-06-21
DE69736045D1 (de) 2006-07-20
US5931904A (en) 1999-08-03
EP0836145B1 (en) 2006-06-07
CA2217370C (en) 2001-05-08
US6240447B1 (en) 2001-05-29
JPH10214239A (ja) 1998-08-11
US20010020248A1 (en) 2001-09-06
CA2217370A1 (en) 1998-04-11
DE69736045T2 (de) 2007-01-11

Similar Documents

Publication Publication Date Title
JP4220000B2 (ja) データネットワーク上のデータページの転送および表示方法
US8024484B2 (en) Caching signatures
EP1535177B1 (en) Method for caching and delivery of compressed content in a content delivery network
JP3774807B2 (ja) 分散型システムとオブジェクトをプレフェッチする方法
US7315884B2 (en) Reduction of network retrieval latency using cache and digest
US7107406B2 (en) Method of prefetching reference objects using weight values of referrer objects
EP2266043B1 (en) Cache optimzation
US7069342B1 (en) Communication system with content-based data compression
US7159013B2 (en) Downloading and uploading data in information networks
EP1429517B1 (en) Access relaying apparatus
US7194514B1 (en) Stripping email attachment from an email message and adding into the email message a link to fetch the attachment
US7359985B2 (en) Method and system for high-performance delivery of web content using high-performance communications protocols to optimize a measure of communications performance between a source and a destination
US20050198309A1 (en) System and method for intelligent web content fetch and delivery of any whole and partial undelivered objects in ascending order of object size
US20020198993A1 (en) Downloading and uploading data in information networks
US20080235326A1 (en) Methods and Apparatus for Accelerating Web Browser Caching
JP2003281023A (ja) データ転送装置、データ転送方法、データ受信表示装置、プログラム
WO2018228234A1 (zh) 视频缓存方法及视频缓存装置
KR100647419B1 (ko) 데이터 통신을 위한 예측적인 데이터 캐쉬 방법
JP2008293281A (ja) キャッシュ装置、サーバ、キャッシュシステム、キャッシュ方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041001

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080401

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080627

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080926

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081021

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees