JP2002182924A - アプリケーションプログラムキャッシング - Google Patents

アプリケーションプログラムキャッシング

Info

Publication number
JP2002182924A
JP2002182924A JP2001246809A JP2001246809A JP2002182924A JP 2002182924 A JP2002182924 A JP 2002182924A JP 2001246809 A JP2001246809 A JP 2001246809A JP 2001246809 A JP2001246809 A JP 2001246809A JP 2002182924 A JP2002182924 A JP 2002182924A
Authority
JP
Japan
Prior art keywords
computing device
application program
caching
component
request
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.)
Granted
Application number
JP2001246809A
Other languages
English (en)
Other versions
JP4290909B2 (ja
Inventor
Vellore T Vetrivelkumaran
ティー ヴェトリヴェルクマラン ヴェロール
Erik B Olson
ビー オルソン エリック
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2002182924A publication Critical patent/JP2002182924A/ja
Application granted granted Critical
Publication of JP4290909B2 publication Critical patent/JP4290909B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 (修正有) 【課題】ネットワークを用いたネットワークコンピュー
ティングにおいて、他の計算装置でアプリケーションを
実行する場合、ホストする計算装置の負荷が大きかった
り、ネットワークの待ち時間が大きく、実行速度が遅く
なる欠点がある。 【解決手段】アプリケーションプログラムコンポーネン
トは、オリジナル計算装置108からキャッシング計算
装置104にキャッシュされて、オリジナル計算装置1
08による実行の代わりに、キャッシュ済みのコンポー
ネントをキャッシング計算装置104が、実行する。ネ
ットワークにおいてアプリケションの実行は負荷又はネ
ットワークの状況に応じて何れの計算装置でも処理出来
るようにする。

Description

【発明の詳細な説明】
【0001】
【関連出願との相互参照】本出願は、先になされた“ウ
ェブアップリケーションのキャッシングと分散実行”な
る発明の名称を持つ、2000年7月11日出願,割当てられた
シリアル番号が60/217,602である仮特許出願(ドケッ
ト番号154795.2)に関連し、その利益と優先権を主張す
る。
【0002】
【発明の背景】本発明は一般に、クライアントの計算装
置のためのオリジナル計算装置によって実行されるアプ
リケーションプログラムに関連し、更に詳しくは、オリ
ジナル装置からダウンロードされ、キャッシュされ、ク
ライアント計算装置のために、クライアント装置及び/
又はキャッシング計算装置によって実行されるプログラ
ムに関連する。
【0003】伝統的に、アプリケーションプログラムは
クライアント計算装置によってローカルに実行されてき
た。これらのプログラムには、ワードプロセッサ用のプ
ログラム,会計用プログラム,個人情報管理(personal
information management programs:PIM)及び他の種類
のプログラムのような多くの種類のコンシューマとビジ
ネス関連のプログラムを含む。ローカルにプログラムを
実行することの利点の一つは、プログラムがクライアン
ト計算装置のハードウェアの許す限り速く走ることであ
ったし、現在も,今後もそうである。
【0004】インターネットのようなネットワークを通
じてのネットワークコンピューティングの普及ととも
に、クライアント計算装置のために、他の計算装置によ
って実行されるアプリケーションプログラムにより多く
の注意が払われるようになってきている。例えば、アプ
リケーションサービスプロバイダ(ASP)は、ASP
のサーバによって、購読クライアントのためにアプリケ
ーションプログラムが実行される購読サービスを提供す
ることもできる。購読クライアントはインターネットを
通じてプログラムを利用する。入出力は一般的にクライ
アント側でなされる一方、プログラムの実行は通常サー
バで行われる。
【0005】このモデルにはいくつかの利点がある。例
えば、適切な情報技術(IT)部門を持たないかもしれ
ぬ中小企業は、代わりに彼らのアプリケーションプログ
ラムのニーズの一部あるいは全部を効果的にASPにア
ウトソーシングできる。つまり、企業はプログラムの保
守や更新に心配しなくて済むことを意味する。その代わ
りに、ほとんど全てがASPによって処理される。その
上、プログラムライセンスに対価を支払う代わりに、企
業はその望みどおり定期購読ベースで支払いを行うこと
ができる。
【0006】クライアント計算装置のために、他の計算
装置によってアプリケーションプログラムを実行するこ
とには欠点も存在する。その一つは、クライアント計算
装置自身によって実行された場合に比べて、プログラム
が走るのが遅いことである。この理由は、アプリケーシ
ョンプログラムをホストする計算装置は数多くのクライ
アントの計算装置の数多くの状態のプログラムを走らせ
なければならない場合があるからである。例えもし、ア
プリケーションプログラムをホストする計算装置が十分
にこの負荷を処理できるとしても、ネットワークの待ち
時間がプログラムの動作スピードに影響を与えることが
ある。最速のインターネット接続であっても、その速度
は、一般的に未だコンピュータが走る内部速度より遅
い。インターネット内の輻輳もまた、クライアント計算
装置が、他の計算装置によって実行されるアプリケーシ
ョンプログラムと対話する速度に影響を与えることがあ
る。これらの理由及びその他の理由により、本発明が必
要とされる。
【0007】
【発明の概要】本発明は、クライアント計算装置あるい
はキャッシング計算装置によるアプリケーションプログ
ラムのキャッシングと実行を提供する。本発明に従っ
て、アプリケーションプログラム全体がキャッシュさ
れ、あるいは、アプリケーションプログラムの一部のみ
がキャッシュされうる。アプリケーションプログラムを
キャッシュするために、クライアント計算装置,キャッ
シング計算装置あるいはその双方が用いられる。これら
の装置がオリジナル計算装置からのアプリケーションプ
ログラムをキャッシュする。アプリケーションプログラ
ムあるいはその一部分がクライアント計算装置にてキャ
ッシュされる場所で、クライアント計算装置は、自分自
身のために、キャッシュ済みのアプリケーションプログ
ラムあるいはその一部のキャッシュ済み部分を実行す
る。もし、アプリケーションプログラムあるいはその一
部がキャッシング装置においてキャッシュされるなら、
キャッシング計算装置が、クライアント計算装置のため
に、キャッシュ済みのアプリケーションプログラム全体
あるいはアプリケーションプログラム中のキャッシュ済
みの部分を実行する。アプリケーションプログラムの一
部はオリジナル計算装置にもまた存在することがあり、
このオリジナル計算装置もまたクライアント計算装置の
ためにアプリケーションプログラムの当該一部を実行す
る。
【0008】本発明に従って、クライアント計算装置
は、アプリケーションプログラムがクライアント計算装
置のために、オリジナル計算装置によって実行されるよ
うにリクエストを発生する。もしクライアント計算装置
がアプリケーションプログラムをキャッシュするだけの
容量を持つのであれば、クライアント計算装置は、当該
リクエストが既にキャッシュしたどれかのアプリケーシ
ョンプログラムと関連するか否かを決定するために、当
該リクエストを傍受し、調査する。もし当該リクエスト
が既にキャッシュしたどれかのアプリケーションプログ
ラムと関連するのであれば、その後、当該リクエスト
は、クライアント計算装置自身による実行のために、キ
ャッシュ済みのアプリケーションプログラムに転送され
る。もし当該リクエストが既にキャッシュしたどれかの
アプリケーションプログラムと関連しないのであれば、
クライアント計算装置は、当該リクエストをキャッシン
グ計算装置あるいはオリジナル計算装置に渡す。
【0009】もし、アプリケーションキャッシング容量
を持つキャッシング計算装置が存するのであれば、当該
リクエストが既にキャッシュしたどれかのアプリケーシ
ョンプログラムと関連するか否かを決定するために、当
該キャッシング計算装置はクライアント計算装置によっ
て当該キャッシング計算装置に転送されたリクエストを
傍受し、調査する。もし、もし当該リクエストが既にキ
ャッシュしたどれかのアプリケーションプログラムと関
連するのであれば、その後、当該リクエストは、クライ
アント計算装置のためのキャッシング計算装置による実
行のために、キャッシュ済みのアプリケーションプログ
ラムに転送される。もし当該リクエストが既にキャッシ
ュしたどれかのアプリケーションプログラムと関連しな
いのであれば、キャッシング計算装置は、当該リクエス
トをオリジナル計算装置に渡し、当該オリジナル計算装
置はクライアント計算装置のために、リクエストされた
アプリケーションプログラムを実行することにより当該
リクエストを履行する。
【0010】アプリケーションキャッシングはコンテン
トキャッシングとは異なる。コンテントキャッシング
は、オリジナル記憶位置よりもクライアント計算装置に
近い位置へのデータ記憶に制限される。クライアント計
算装置がコンテントへのアクセスを希望するとき、当該
クライアント計算装置は結局、より近い位置からコンテ
ントを受信する。これは恐らく、より遠い位置からコン
テントを受信する場合に比べ、より高速である。コンテ
ントキャッシングは比較的単純なプロセスである。コン
テントを記憶している計算装置は実際には何も実行しな
い。当該計算装置は、コンテントをクライアント計算装
置に与えるためのみに存在する一方、クライアント計算
装置自身はコンテントのいくつかを全面的に実行するこ
とがある。
【0011】逆にアプリケーションキャッシングには、
キャッシング計算装置上への少なくともアプリケーショ
ンプログラムの一部のダウンロードとインストールを含
む。キャッシング計算装置は、オリジナル計算装置と互
換性がある。コンフィギュレーションパラメータは、ど
のようにプログラムをインストールするかを決定するた
めに、キャッシング計算装置によってダウンロード及び
解釈される。コンテントをクライアント計算装置に提供
するだけのコンテントキャッシング計算装置と異なり、
アプリケーションキャッシング計算装置は、クライアン
ト計算装置のために少なくともアプリケーションプログ
ラムの一部を実行する。一般的に、コンテントキャッシ
ング計算装置によっては、データの実行はなされない。
【0012】本発明は、コンピュータにより実行される
方法,機械により読み取り可能な媒体,コンピュータ化
されたシステム,そして様々な能力のコンピュータを含
む。ここに説明される以外の、本発明の他の態様,実施
例,及び利点は、詳細な説明を読むことにより、及び図
面を参酌することにより明らかになるであろう。
【0013】
【詳細な説明】以下の本発明の実施例の詳細な説明にお
いては、当該詳細な説明の一部分をなす添付図面への参
照がなされ、当該図面中では図解によって、本発明が実
施されうる特定の実施例が示される。これらの実施例
は、本発明を当業者が実施できるために十分に詳細に記
述される。他の実施例も利用することができ、そして本
発明の意図及び範囲を逸脱せずに論理的,機械的,電気
的,及び他の変更がなされ得る。それゆえ、以下の詳細
な説明は限定的に捉えられるべきではなく、本発明の範
囲は添付される特許請求の範囲によってのみ規定され
る。
【0014】発明の概要 図1の線図100は本発明の好ましい実施例の基本的構成を
図示する。クライアント計算装置102が通信状態で、第
一のネットワーク106を通じてキャッシング計算装置104
に接続される。キャッシング計算装置104は通信状態
で、第二のネットワークを通じてオリジナル計算装置10
8に接続される。102、104、及び108の各計算装置は、デ
スクトップあるいはラップトップコンピュータのような
コンピュータでありうる。各装置102、104、及び108と
して、一つ以上の装置が存在しうる。明確に図解する目
的のために、図1には各装置としては一つずつのみが示
されている。キャッシュ可能なアプリケーションプログ
ラムは初めに、オリジナル計算装置108上にのみインス
トールされる。アプリケーションプログラムは、ビジネ
スあるいはコンシューマ関連のいかなるタイプのアプリ
ケーションプログラムでありうる。アプリケーションプ
ログラムの例としては、ワードプロセッサプログラム,
スプレッドシートプログラム,通信プログラム,及び他
の種類のプログラムを含む。キャッシング計算装置104
は、全てのあるいは一部分のキャッシュ可能なアプリケ
ーションプログラムをキャッシュし終わっており、クラ
イアント計算装置102のために、アプリケーションプロ
グラム中のキャッシュ済みの部分を実行する。もし、キ
ャッシング計算装置104によってアプリケーションプロ
グラムの一部がキャッシュされておらず、オリジナル計
算装置に残存するならば、当該オリジナル計算装置108
がクライアント計算装置102のために、当該プログラム
の当該部分を実行する。クライアント計算装置102もま
た、自分自身のためにアプリケーションプログラムの一
部をキャッシュし実行することができる。
【0015】アプリケーションプログラムは、クライア
ント計算装置102,キャッシング計算装置104,あるいは
オリジナル計算デバイス108の各装置の特性に従って、
当該各装置の一つあるいは全ての装置によって実行され
る異なる部分に分割されうる。プログラムのグラフィカ
ル・ユーザ・インターフェース面はクライアント計算装
置102によってキャッシュされ直接実行されうる。プロ
グラムの大部分を占める、非グラフィカル・ユーザ・イ
ンターフェース面はクライアント計算装置102のために
キャッシング計算装置104によってキャッシュされ実行
される。オリジナル計算装置108はクライアント計算装
置のために、アプリケーションプログラムのうちめった
に使用されない面のみを実行しうる。
【0016】第一のネットワーク106と第二のネットワ
ーク110は異なるネットワークあるいは同じネットワー
クでありうる。ネットワークの例としては、ローカルエ
リアネットワーク(LAN’s),広域ネットワーク
(WAN’s)イントラネット,エクストラネット,イ
ンターネット,構内ネットワーク,遠隔ネットワーク,
及び他の種類のネットワークを含む。図2は、図1の構
成の特定の実施例である線図200を示す。図1のネット
ワーク106は、参照番号206で示される図2の構内ネット
ワークである。そして、図1のネットワーク110は参照
番号210で示される遠隔ネットワークである。構内ネッ
トワーク206と遠隔ネットワーク210では主として、それ
らが接続される装置間の距離が異なる。遠隔ネットワー
ク210を通じて接続されるオリジナル計算装置108とキャ
ッシング計算装置104と比較すると、クライアント計算
装置102とキャッシング装置104は構内ネットワークを通
じて接続されるために、物理的により近接している。
【0017】好ましくは、クライアント計算装置102の
ためにキャッシング計算装置104によってキャッシュさ
れ実行されるアプリケーションプログラムのうちキャッ
シュされた部分は、オリジナル計算装置108によって実
行されるいかなる非キャッシュ部分よりも、装置104を
基点として、より速く走る。これにはいくつかの理由が
考えられる。第一に、キャッシング計算装置104は、オ
リジナル計算装置108が行う程多くのクライアントのた
めにアプリケーションプログラムを実行する必要が無い
かもしれない。第二に、構内ネットワーク206は遠隔ネ
ットワーク210よりも高速のネットワークであるかもし
れない。更に、構内ネットワーク206は遠隔ネットワー
ク210より輻輳していないかもしれない。しかし、クラ
イアント計算装置102自身によってキャッシュされ実行
されるアプリケーションプログラムのいかなる部分も、
キャッシング計算装置104によってキャッシュされ実行
される場合あるいはオリジナル計算装置108によって実
行される場合に比べて、より高速に走るかもしれない。
【0018】図1に話を戻すと、第一のネットワーク10
6と第二のネットワーク110は同じネットワークでありう
る。図3は、図1のネットワーク106とネットワーク110
が同じネットワーク308である実施例たる線図300を示
す。例えば、ネットワーク308はインターネットを含み
うるし、インターネット自身でありうる。曲線の距離表
示用の矢304によって示されるように、オリジナル計算
装置108はキャッシング計算装置104からの距離に比べ
て、クライアント計算装置102から物理的により遠くに
位置する。例えば、クライアント計算装置102はシアト
ルに、キャッシング計算装置104はシカゴに、そしてオ
リジナル計算装置108はロンドンに位置しうる。その結
果、クライアント計算装置102のためにキャッシング計
算装置104によって実行されるアプリケーションプログ
ラムのキャッシュされた部分は、一般的にオリジナル計
算装置108によって実行される部分より速く走る。クラ
イアント計算装置102自身によってキャッシュされ実行
されるいかなる部分も、やはりより速く走る。
【0019】図1,2,及び3を参照して説明されてき
たように、本発明はアプリケーションプログラムの全体
あるいは一部をクライアント計算装置102及び/又はキャ
ッシング計算装置104によってキャッシュすることに関
連する。装置102のために、装置104はプログラムのうち
当該装置104でキャッシュされた部分を実行し、装置102
は自分自身のために、自分でキャッシュした部分を実行
する。アプリケーションプログラムは、クライアント計
算装置102のために各部分が装置102,104あるいは108に
よって実行される、異なる部分に分割されうる。
【0020】詳細な説明中の次の節では、もともとクラ
イアント計算装置102のためにオリジナル計算装置108に
よって実行されることが予定されていたアプリケーショ
ンプログラムが、その代わりに、いかに装置102あるい
はキャッシング計算装置104によって実行されるかを説
明する。他の節では、いかにプログラムがオリジナル計
算装置108からダウンロードされ、キャッシング計算装
置104あるいはクライアント計算装置102によってインス
トールされるかを詳細に説明する。装置102,104及び10
8のいずれかの装置を実施しうる計算装置の例もまた詳
細な説明中の次の節で説明されている。
【0021】キャッシュ可能なプログラムの、キャッシ
ング計算装置あるいはクライアント計算装置による実行 図4は図1のキャッシング計算装置104の実施例をより
詳細に示した図である。線402に示されるように、キャ
ッシング計算装置104は通信状態でクライアント計算装
置に接続され、線404に示されるように、オリジナル計
算装置に接続される。キャッシング計算装置104は第一
のコンポーネント406,第二のコンポーネント408,そし
てキャッシュ済みのアプリケーション410を含む。第一
のコンポーネント406と第二のコンポーネント408はそれ
ぞれ、プラグイン及びサービスと呼ばれることがある。
これらは単一のコンポーネント内に装備されうる。この
アプリケーションで用いられるコンポーネントは、コン
ピュータ命令,コンピュータプログラムモジュール,コ
ンピュータプログラム及びソフトウェアオブジェクトの
一つあるいはそれ以上のセクションを意味する。
【0022】第一のコンポーネント406はアプリケーシ
ョンプログラムに向けられた、クライアント計算装置か
らのリクエストを傍受する。第一のコンポーネント406
は、与えられたリクエストがキャッシュ済みのアプリケ
ーション410内でキャッシュされたアップリケーション
の一部に関連するか否かを決定する。もし、関連するの
であれば、コンポーネント406は当該リクエストをキャ
ッシュされたアップリケーション410内の関連するアプ
リケーションに転送する。このようにしてオリジナル計
算装置ではなく、キャッシング計算装置104で実行が行
われる。与えられたリクエストがキャッシュ済みのアプ
リケーション410内でキャッシュされたアプリケーショ
ンの一部に関連しない場合には、コンポーネント406は
リクエストをオリジナル計算装置へ通過させる。
【0023】図5は一つの実施例で特に装置500が、い
かにアプリケーションプログラムリクエストを、傍受
し,転送し,そして通過させるかを示す図である。装置
500は図1及び図4のキャッシング計算装置104でありう
る。装置500のアプリケーションプロトコルハンドラ502
はアプリケーションプログラムリクエストを傍受する。
プロトコルはリクエストの形式を指定する。リクエスト
は“rapp://www.aspco.com/program/directory/reques
t.ext.”の形式でありうる。“rapp”なるインジケータ
は、リクエストが“遠隔アップリケーションプログラム
プロトコル(remote application program protoco
l)”のような特定のプロトコルと関連することを指定
するために用いられる。“www.aspco.com”なるドメイ
ン名は、インターネット上におけるようなリソース位置
を指定する。インジケータ“program/”と“directory
/”はこの位置における特定のディレクトリを指定す
る。ここで“program/”は現時点でアクセスされている
プログラムを識別するために特に用いられる。“reques
t.ext.”と表示されるように、リクエストはこの位置の
ファイルに対してなされる。
【0024】アプリケーションプロトコルハンドラ502
はクライアント計算装置からの全てのネットワークトラ
ッフィックを調べる。もしトラッフィックの項目が“ra
pp:”なるインジケータの後に来るのであれば、ハンド
ラ502は、リクエストによって特定されるプログラム
が、装置500上で既にキャッシュされたプログラムに関
連するか否かを更に決定する。もし関連しなければ、矢
印503に示されるように、ハンドラ502はリクエストを通
過させる。もし関連すれば、ハンドラ502はリクエスト
をローカルネーム解決ハンドラ504に通過させる。
【0025】ローカルネーム解決ハンドラ504はアプリ
ケーションプログラムリクエストを適切なキャッシュ済
みのアプリケーションに転送する。ハンドラ504は、ロ
ーカルアプリケーションハンドラ506a,506b,・・
・,506nの中からプログラムのために特定のハンドラ
をポイントするように、リクエストを修正する。“rap
p://www.aspco.com/wordprocessing/request.ext.”が
リクエストの例である。もし、ローカルアプリケーショ
ンハンドラ506bがこのリクエストで指示されたアプリ
ケーションに対応するならば、ハンドラ504はローカル
アプリケーションハンドラ506bをポイントするように
リクエストを修正する。ローカルアップリケーションハ
ンドラ506bは“c:/wordprocessing/”によって識別さ
れうる。“c”は、例えばハードディスクドライブのよ
うな、装置500内の物理的な位置を意味し、“wordproce
ssing/”はこの物理的な位置におけるディレクトリを意
味する。ハンドラ504はリクエストを“c:/wordprocessi
ng/request.ext”に修正し、ハンドラ506bがキャッシ
ュされたアプリケーションのためにリクエストを処理す
る。
【0026】以上説明してきたように、必ずしもアプリ
ケーション全体がキャッシュされる必要は無い。むし
ろ、アプリケーションの一つあるいはそれ以上の部分の
みがキャッシュされうる。この場合、各アプリケーショ
ン部分は、ハンドラ506a,506b,・・,506n内の自
分自身のローカルアプリケーションハンドラを持つかも
しれない。アプリケーションプログラムリクエストはこ
のように、アプリケーションプログラムコンポーネント
リクエストとして、より正確に記述される。ここで、各
アプリケーションコンポーネントは装置500上で独自に
キャッシュされうる。与えられたアプリケーションプロ
グラムは、一つのコンポーネントのみからなるかもしれ
ないし、複数のコンポーネントからなるかもしれない。
一つのコンポーネントのみがアプリケーションプログラ
ムを構成する場合には、プログラム全体がキャッシュさ
れるか、あるいはプログラムは全くキャッシュされない
かのいずれかである。複数のコンポーネントがアプリケ
ーションプログラムを構成する場合には、コンポーネン
トのいずれもがキャッシュされうる。
【0027】図4に話を戻すと、好ましくはクライアン
ト計算装置は、実行が、オリジナル計算装置の代わりに
キャッシング計算装置104で行われるかもしれないこと
を認識しない。キャッシング計算装置104によって行わ
れる転送及びキャッシングはクライアント計算装置には
見えないことが好ましい。このことは、クライアント計
算装置は、キャッシング計算装置104による実行を可能
にするために再構成させられる必要は無いことを意味す
る。
【0028】第二のコンポーネント408は、キャッシュ
済みのアプリケーション410内でキャッシュされていな
いアプリケーションプログラムが、ダウンロードされ、
キャッシング計算装置104にインストールされるべきか
否かを決定する。コンポーネント408は、オリジナル計
算装置によって実行されるアプリケーションプログラム
のクライアントによる使用量を常に監視する。コンポー
ネント408は、クライアント計算装置による使用量が、
キャッシング計算装置104による実行のためにアプリケ
ーションプログラムをキャッシュすることを正当化する
に足るだけ十分であるかどうかを周期的に評価する。コ
ンポーネント408は、プログラムの一部あるいは全てを
キャッシュ済みのアプリケーション410にダウンロード
し、インストールすることができる。プログラムがキャ
ッシング計算装置104によってキャッシュされるべきか
否かを決定するために、いかなる基準を用いることもで
きる。
【0029】クライアント計算装置は同様に、キャッシ
ュ済みのアプリケーションプログラムあるいはその一部
をキャッシュし実行することができる。図6は図1のク
ライアント計算装置102の実施例をより詳細に示す図で
ある。クライアント計算装置102は、線604で示されるよ
うに、キャッシング計算装置及び/又はオリジナル計算
装置に通信状態で接続される。図4のキャッシング計算
装置104と同様に、図6のクライアント計算装置102は、
第一のコンポーネント606,第二のコンポーネント608,
及びキャッシュ済みのアプリケーション610を含む。第
一のコンポーネント606及び第二のコンポーネント608は
それぞれ、プラグイン,サービスと呼ばれることがあ
り、単一のコンポーネント内に装備されうる。
【0030】第一のコンポーネント606はクライアント
計算装置102からアプリケーションプログラムに向けら
れた内部リクエストを傍受する。第一のコンポーネント
606は、与えられたリクエストがキャッシュ済みのアプ
リケーション610内でキャッシュされたアプリケーショ
ンの一部分と関連するか否かを決定する。もし関連する
ならば、コンポーネント606はリクエストを、キャッシ
ュ済みのアプリケーション610内の関連するアプリケー
ションの部分に転送する。実行はこのように、オリジナ
ル計算装置あるいはキャッシング計算装置のいずれにお
いてでもなく、クライアント計算装置102で行われる。
もし与えられたリクエストがキャッシュ済みのアプリケ
ーション610内のキャッシュされたアプリケーションの
部分と関係しないのであれば、コンポーネント606はリ
クエストを、キャッシング計算装置あるいはオリジナル
計算装置に通過させる。クライアント計算装置102はま
た、図5の装置500が装置102でありうることを説明する
図を参照して既に説明されたように、アプリケーション
プログラムリクエストを傍受,転送,及び通過させるこ
とができる。
【0031】依然として図6を参照すると、第二のコン
ポーネント608はキャッシュ済みのアプリケーション610
内でキャッシュされていないアプリケーションプログラ
ムがダウンロードされクライアント計算装置102にイン
ストールされるべきか否かを決定する。好ましくは、コ
ンポーネント608は、装置102のためにオリジナル計算装
置あるいはキャッシング計算装置のいずれかによって実
行される、クライアント計算装置102によるアプリケー
ションプログラムの使用量を監視する。コンポーネント
608はその使用量が、クライアント計算装置102による実
行のために、アプリケーションプログラムの一部あるい
はその全体をキャッシュすることを正当化するに足るだ
け十分であるかどうかを周期的に評価する。この決定を
行うために、ある基準が用いられることがある。アプリ
ケーションプログラムあるいはその一部がクライアント
計算装置102でキャッシュされるべきと決定されたとき
は、コンポーネント608はプログラムあるいはその一部
をダウンロードし、キャッシュ済みアプリケーション61
0にインストールする。
【0032】図7は、いかにクライアント計算装置,キ
ャッシング計算装置,及びオリジナル計算装置がアプリ
ケーションプログラムリクエストを処理するかを概説す
る、方法700のフローチャートである。アプリケーショ
ンプログラムは、最初はオリジナル計算装置上にのみイ
ンストールされる。プログラムの一部分あるいはその全
体は、その後クライアント計算装置及び/又はキャッシ
ング計算装置によってキャッシュされうる。破線702及
び704で示されるように、方法700のいくつかの部分はク
ライアント計算装置によって実施され、いくつかの部分
はキャッシング計算装置によって実施され、そしていく
つかの部分はオリジナル計算装置によって実施される。
特に、706,708,710,及び712はクライアント計算装置
によって実施され、714,716,718,及び720はキャッシ
ング計算装置によって実施され、そして722はオリジナ
ル計算装置によって実施される。
【0033】706では、クライアント計算装置はアプリ
ケーションプログラムへの内部生成リクエストを傍受す
る。708でクライアント計算装置は、当該リクエストが
クライアント装置によってキャッシュされたアプリケー
ションプログラムの一部分と関連するか否かを決定す
る。もし関連するのであれば、当該リクエストがクライ
アント計算装置によって処理されるように、当該リクエ
ストは710で転送される。当該リクエストが関連するア
プリケーションプログラムの一部は、クライアント計算
装置によって実行される。もし当該リクエストがキャッ
シュ済みのアプリケーションと関連しなければ、クライ
アント計算装置は712で当該リクエストを通過させる。
【0034】714では、キャッシング計算装置は712でク
ライアント計算装置によって通過させられたリクエスト
を傍受する。716で、キャッシング計算装置は当該リク
エストがキャッシング装置によってキャッシュ済みのア
プリケーションの一部と関連するか否かを決定する。も
し関連するのであれば、当該リクエストがキャッシング
計算装置によって処理されるように、当該リクエストは
718で転送される。当該リクエストが関連するアプリケ
ーションプログラムの一部は、クライアント計算装置の
ためにキャッシング計算装置によって実行される。もし
当該要求がキャッシュ済みのアプリケーションの一部に
関連しないならば、キャッシング計算装置は720で当該
リクエストを通過させる。オリジナル計算装置は722で
当該リクエストを受信し、当該要求を処理する。当該リ
クエストが関連するアプリケーションプログラムの一部
はオリジナル装置あるいはクライアント装置によって実
行される。
【0035】図8は、アプリケーションプログラムの一
部あるいはその全体がキャッシュされるべきか否かをい
かに決定するかを概説する、方法800のフローチャート
である。キャッシング計算装置は、自分が少なくともプ
ログラムの一部をキャッシュすべきか否かを決定するた
めに方法800を実施できる。
【0036】同様に、クライアント計算装置は方法800
を実施できる。802では、当該方法はアプリケーション
プログラムの使用量を監視する。好ましくは、使用量の
監視は継続的に行われる。周期的に、当該方法は804に
おいて、アプリケーションプログラムの少なくとも一部
が基準に従ってキャッシュされるべきか否かを決定す
る。もしキャッシュされるべきでなければ、当該方法は
808で完了する。キャッシュされるべきであれば、806に
おいて、当該方法は少なくともプログラムの一部をキャ
ッシュする。詳細な説明における次の節では、キャッシ
ュ可能なアプリケーションプログラムがどのようにキャ
ッシュされるかを説明する。
【0037】キャッシュ可能なアプリケーションプログ
ラムのキャッシング(ダウンローディングとインストー
リング) 図9は一つの実施例がいかにキャッシュ可能なアプリケ
ーションプログラムをダウンロードし、インストールす
るかを示す、方法900のフローチャートである。方法900
は、図4のキャッシング計算装置104の第二のコンポー
ネント408によって、あるいは、図6のクライアント計
算装置102の第二のコンポーネント608によって実施され
る。これらのコンポーネントは、アプリケーションプロ
グラムがキャッシュされるべきと決定した後に、方法90
0を実施する。方法900のキャッシングプロセスは、プロ
セス内のいかなるポイントでも失敗しうる。失敗した場
合には、その後方法900はアプリケーションプログラム
をうまくキャッシュできない状態で存在する(この状態
は特に図9では取り上げられていない。)この節での説
明は、別々のアプリケーションプログラムコンポーネン
トに区分されていないアプリケーションプログラム全体
をダウンロードし、インストールする場合に焦点を当て
る。この節での説明はまた、アプリケーションプログラ
ム全体ではなくアプリケーションプログラムのコンポー
ネントに関連する方法900を実施することにより、当該
コンポーネントをキャッシュする場合にも適用できる。
キャッシュ可能なアプリケーションプログラムあるいは
その一部は、本節で説明されるようにダウンロードさ
れ、インストールされうるものである。
【0038】902では、本方法はアプリケーションプロ
グラムのために、オリジナル遠隔地から、オリジナル計
算装置にプリインストールされたファイルを取り出す。
プリインストールされたファイルはまた、マニフェスト
とも呼ばれる。マニフェストには、プログラムがうまく
キャッシュされるために必要なコンフィギュレーション
及び他の情報が含まれている。ダウンロードされインス
トールされるべきプログラムのために、マニフェストは
少なくともインストレーションファイルを参照ファイル
として引用する。好ましくは、マニフェストはまた、ア
プリケーションが占有することになるローカル格納スペ
ースの大きさを参照し、またオプションとして、その上
でアプリケーションが走ることが予定されるプラットフ
ォームを参照する。マニフェストはまた、アプリケーシ
ョン名,アプリケーションのバージョン,アプリケーシ
ョンの簡単な説明,及び他の情報のような記述的情報を
含むことがある。
【0039】904で、本方法は、本方法を実施している
計算装置上にアプリケーションプログラムをインストー
ルできるか否かを決定する。これには基本的に二つのチ
ェックが含まれる。第一に、本方法は、使用可能なロー
カル格納スペースが、インストールされるべきプログラ
ムのために十分であることを確認する。使用可能なロー
カル格納スペースは計算装置のハードディスク上で利用
できるフリースペースであるかもしれない。第二に本方
法は、計算装置と、その上にアプリケーションプログラ
ムがインストールされることが予定されるプラットフォ
ームがコンパチブルであることを確認する。マニフェス
トのプラットフォームは、その上でプログラムを走らせ
ることのできるオペーレーティングシステムの最低限の
バージョンを表示することがある。もし本方法がアプリ
ケーションをインストールできないと決定すれば、その
後、本方法はアプリケーションプログラムがインストー
ルされていない状態で本方法が存在する906に進む。
【0040】もしアプリケーションプログラムがインス
トールできるなら、その後、本方法は、本方法がマニフ
ェストによって指定されたインストレーションファイル
をダウンロードする908に進む。909では、本方法はイン
ストレーションファイルを利用することによって、本方
法を実行している装置上にプログラムをインストールす
る。インストレーションファイルは、既知の方法により
計算装置上にインストール可能な、一つあるいはそれ以
上のキャビネット(.CAB)ファイルでありうる。91
0で本方法は、インストールされたアプリケーションプ
ログラムに関して、中央データベースに値を加算する。
中央データベースはまた、レジストリと呼ばれることが
ある。キャッシュされたアプリケーションプログラム
は、レジストリで保守される。レジストリでは、例えば
オリジナル計算装置というようなアプリケーションプロ
グラムの元々のロケーションが、アプリケーションプロ
グラムがキャッシュされた計算装置上のロケーションに
マップされる。これにより、キャッシュされたアプリケ
ーションプログラムへの、プログラムリクエストの転送
を可能となる。レジストリはまた、インストールした時
間やアプリケーション利用情報のような、アプリケーシ
ョンプログラムに関する適切なインストレーション情報
を保守する。
【0041】例えば本方法は、インストールされたアプ
リケーションプログラムのために、以下の値をレジスト
リに加算することができる。 アプリケーションプログラムのオリジナルロケーション プログラムがインストールされたシステム時間 保証された固有の識別子(GUID)として自動的に生
成されうるアプリケーション識別子 アプリケーションがインストールされ、そこから実行可
能であり、アプリケーション識別子に基づきハッシュア
ルゴリズムによって決定可能な、計算装置上の物理的ロ
ケーション アプリケーションプログラムがアクセスされた直近の時
間(プログラムが実行されるまではインストレーション
時がデフォールト値とされる) 計算装置例 図10が例示計算装置1000の図である。図1のクライア
ント計算装置102,キャッシング計算装置104,及びオリ
ジナル計算装置108のいずれもが、例示装置1000として
実現できる。例示計算装置1000は、例えば、デスクトッ
プコンピュータ,ラップトップコンピュータ,あるいは
パーソナルデジタルアシスタント(PDA)でありう
る。本発明は、マルチプロセッサシステム,マルチプロ
セッサベースあるいはプログラマブルなコンシューマエ
レクトロニクス,ネットワークコンピュータ,ミニコン
ピュータ,及びメインフレームコンピュータを含む、他
のコンピュータシステムコンフィギュレーションを用い
ても実施できる。本発明は、タスクが通信ネットワーク
を通してリンクされた遠隔処理装置によって実行され
る、分散コンピュータ環境で実施することもできる。
【0042】装置1000は、一つあるいはそれ以上の次の
コンポーネントを含む:(一つあるいは複数の)プロセ
ッサ1002,メモリ1004,記憶装置1006,通信コンポーネ
ント1008,(一つあるいは複数の)入力装置1010,ディ
スプレー1012,及び(一つあるいは複数の)出力装置10
14。装置1000のうちある特定の具体例によっては、これ
らのコンポーネントのうち一つあるいはそれ以上のコン
ポーネントは存在しないかもしれない。例えば、PDA
は出力装置1014を持たないかもしれない。装置1000の説
明はそのような装置内に通常存在するタイプのコンポー
ネントのあらましとして用いられるものであり、限定的
あるいは網羅的な説明を意味するものではない。
【0043】(一つあるいはそれ以上の)プロセッサ10
02は、単一の中央処理装置(CPU)、あるいは通常並
列処理環境と呼ばれる複数の処理装置を含むかもしれな
い。メモリ1004は読み出し専用メモリ(ROM)及び/
又はランダムアクセスメモリ(RAM)を含むかもしれ
ない。記憶装置1006は、固定媒体記憶装置や取り外し可
能媒体記憶装置等、いかなるタイプの記憶装置でも良
い。前者の例としてはハードディスクドライブ,及びフ
ラッシュメモリあるいは不揮発性記憶装置を含む。後者
の例としては、テープドライブ,CD−ROMのような
光学ドライブ,及びフレキシブルドライブを含む。記憶
装置とそれに付随したコンピュータにより読み取り可能
な媒体は、コンピュータにより読み取り可能な命令,デ
ータ構造,プログラムモジュール,及び他のデータを格
納した不揮発性記憶装置を提供する。データを記憶で
き、コンピュータによりアクセス可能な、いかなるタイ
プのコンピュータにより読み取り可能な媒体を使用する
ことができる。
【0044】装置1000はネットワーク環境で動作するこ
ともできる。ネットワークの例としては、インターネッ
ト,イントラネット,エクストラネット,ローカルエリ
アネットワーク(LAN’s),及び広域ネットワーク
(WAN’s)を含む。装置1000は、装置1000内に存す
るか、あるいは装置1000に取り付けられた通信コンポー
ネント1008を含むかもしれない。コンポーネント1008は
一つあるいはそれ以上のネットワークカード,イーサー
ネットカード,アナログモデム,ケーブルモデム,デジ
タルサブスクライバループ(DSL)モデム,及び統合
サービスデジタル網(ISDN)アダプタでありうる。
(一つ又は複数の)入力装置は、それによってユーザが
装置1000に入力を提供する機構である。そのような(一
つ又は複数の)入力装置1010は、キーボード,ポインテ
ィング装置,マイクロホン,ジョイスティック,ゲーム
パッド,及びスキャナーを含むことができる。ディスプ
レー1012は装置1000が一般に出力をユーザに見せる方法
である。ディスプレー1012は陰極線管(CRT)ディス
プレー装置とフラットパネルディスプレー(FPD)デ
ィスプレー装置を含みうる。装置1000は他の(一つ又は
複数の)出力装置1014を用いて出力をユーザに提供する
かもしれない。(一つ又は複数の)出力装置1014は、ス
ピーカ,プリンタ,及び他のタイプの装置を含むことが
できる。
【0045】これまでに説明された方法はコンピュータ
によって実行されうる。コンピュータによって実行され
る方法の少なくとも一部は、望ましくは、コンピュータ
上で走る一つあるいはそれ以上のプログラムとして実現
される。プログラムは、コンピュータのプロセッサによ
って、メモリのようなコンピュータによって読み取り可
能な媒体から実行することができる。販売のため、及び
他のコンピュータ上でのインストール及び実行のため
に、プログラムは望ましくは、フレキシブルディスクあ
るいはCD−ROMのような、機械読み取り可能な媒体
上に格納可能である。一つのプログラムあるいは複数の
プログラムは、コンピュータシステム,コンピュータ,
あるいは計算装置の一部分であっても良い。
【0046】結論 ここでは特定の実施例が図解され説明されてきたが、こ
こに示される特定の実施例に代えて、同じ目的を達成す
るために考えられる、いかなる組み合わせを用いること
も可能であることが、当業者によって認識されるであろ
うことに言及しておく。本出願は本発明からのいかなる
改変あるいは変動をも包含することを意図している。そ
れゆえ、本発明は特許請求の範囲及びそれと均等なもの
によってのみ限定されることをはっきり意図するもので
ある。
【図面の簡単な説明】
【図1】本発明の好ましい実施例による、クライアント
計算装置,キャッシング計算装置,及びオリジナル計算
装置の基本構成図である。
【図2】本発明の実施例に従って、クライアント計算装
置がローカルネットワークを通じてキャッシング計算装
置に通信状態で接続されており、キャッシング計算装置
がリモートネットワークを通じてオリジナル計算装置に
通信状態で接続されている図のより詳細な構成例を示す
図である。
【図3】本発明の実施例に従って、クライアント計算装
置,キャッシング計算装置,及びオリジナル計算装置が
同じネットワークを通じて、通信状態でお互いに接続さ
れている、図1のより詳細な構成例を示す別の図であ
る。
【図4】本発明の実施例に従って、図1のキャッシング
計算装置をより詳細に示す図である。
【図5】本発明の実施例に従って、クライアント計算装
置あるいはキャッシング計算装置等の装置が、いかにし
てアプリケーションプログラムリクエストを傍受,通
過,転送するかを示す図である。
【図6】本発明の実施例に従って、図1のクライアント
計算装置をより詳細に示す図である。
【図7】いかにしてクライアント計算装置,キャッシン
グ計算装置,及びオリジナル計算装置が、アプリケーシ
ョンプログラムリクエストを処理するかを要約する方法
のフローチャートである。
【図8】クライアント計算装置,キャッシング計算装
置,及びオリジナル計算装置が、アプリケーションプロ
グラムの一部あるいは全体がキャッシュされるべきか否
かを、いかにして決定するかを要約する、方法のフロー
チャートである。
【図9】本発明の実施例に従って、ローカルな実行のた
めに、クライアント計算装置あるいはキャッシング計算
装置がアプリケーションプログラムあるいはアプリケー
ションプログラムコンポーネントをダウンロードしイン
ストールするかを示す方法のフローチャートである。
【図10】図1のキャッシング計算装置,クライアント
計算装置,あるいはオリジナル計算装置のいずれかを実
行させることのできる、計算装置例の図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ヴェロール ティー ヴェトリヴェルクマ ラン アメリカ合衆国 ワシントン州 98052 レッドモンド ノースイースト フォーテ ィーフォース コート 16010 (72)発明者 エリック ビー オルソン アメリカ合衆国 ワシントン州 98053 レッドモンド ノースイースト トウウェ ンティーサード プレイス 22612 Fターム(参考) 5B076 BA06 BB06 5B082 HA05

Claims (48)

    【特許請求の範囲】
  1. 【請求項1】アプリケーションプログラムを実行する方
    法であって、あるオリジナル計算装置から受信したアプ
    リケーションプログラムのうちキャッシュ可能なコンポ
    ーネントをキャッシュし、当該アプリケーションプログ
    ラムのうちのあるコンポーネントを実行するためのリク
    エストを受信し、当該リクエストが、既にキャッシュ済
    みの当該キャッシュ可能なアプリケーションプログラム
    コンポーネントに関連するか否かを決定し、当該リクエ
    ストが既にキャッシュ済みの当該コンポーネントに関連
    するという決定に応じて、当該リクエストを当該キャッ
    シュ可能なアプリケーションプログラムコンポーネント
    に導き、当該リクエストが既にキャッシュ済みの当該コ
    ンポーネントに関連しない場合には当該リクエストを他
    の計算装置に通過させる工程を含む、アプリケーション
    プログラムを実行する方法。
  2. 【請求項2】請求項1に記載された方法であって、当該
    キャッシュ可能なアプリケーションプログラムコンポー
    ネントが、あるキャッシュ可能なアプリケーションプロ
    グラム内の唯一のコンポーネントを構成し、その結果、
    当該キャッシュ可能なプログラムコンポーネントをキャ
    ッシュすることによって、当該キャッシュ可能なアプリ
    ケーションプログラムの全体がキャッシュされる、請求
    項1に記載された方法。
  3. 【請求項3】請求項1に記載された方法であって、当該
    キャッシュ可能なアプリケーションプログラムコンポー
    ネントをキャッシュする工程として、当該キャッシュ可
    能なアプリケーションプログラムコンポーネントのため
    に、当該オリジナル計算装置から一つあるいはそれ以上
    のインストレーションファイルをダウンロードし、当該
    一つあるいはそれ以上のインストレーションファイルを
    利用することにより、当該キャッシュ可能なアプリケー
    ションプログラムコンポーネントをキャッシング計算装
    置上にインストールする工程を含む請求項1に記載され
    た方法。
  4. 【請求項4】請求項1に記載された方法であって、キャ
    ッシュし、受信し、決定し、導き、そして通過させるス
    テップが、あるキャッシング計算装置によって行われ、
    当該リクエストを当該既にキャッシュ済みのキャッシュ
    可能なアプリケーションプログラムコンポーネントに導
    く工程として、あるクライアント計算装置のための当該
    オリジナル計算装置による実行の代わりに、当該クライ
    アント計算装置のために当該キャッシング計算装置が当
    該アプリケーションプログラムコンポーネントを実行す
    る工程を含む請求項1に記載された方法。
  5. 【請求項5】請求項4に記載された方法において当該リ
    クエストが当該オリジナル計算装置に通過させられる、
    請求項4に記載された方法であって、当該キャッシング
    計算装置によって既に通過させられた当該リクエストを
    当該オリジナル計算装置によって受信し、当該クライア
    ント計算装置のために、当該オリジナル計算装置によっ
    て当該アプリケーションプログラムコンポーネントを実
    行する工程を更に含む請求項4に記載された方法。
  6. 【請求項6】請求項4に記載された方法であって、当該
    アプリケーションプログラムコンポーネントリクエスト
    が関連する、あるキャッシュ可能なアプリケーションプ
    ログラムコンポーネントの、クライアント計算装置によ
    る使用量を監視し、当該使用量が、当該キャッシング計
    算装置による当該キャッシュ可能なアプリケーションプ
    ログラムコンポーネントのキャッシングを正当化するに
    足るだけ十分であるかどうかを評価し、当該使用量がキ
    ャッシングを正当化するに足るだけ十分であるという決
    定に応じて、当該キャッシング計算装置で当該アプリケ
    ーションプログラムコンポーネントをキャッシュする工
    程を更に含む請求項4に記載された方法。
  7. 【請求項7】請求項6に記載された方法であって、当該
    キャッシング計算装置で当該キャッシュ可能なアプリケ
    ーションプログラムコンポーネントをキャッシュする工
    程として、当該キャッシュ可能なアプリケーションプロ
    グラムコンポーネントのために、当該キャッシング計算
    装置によって当該オリジナル計算装置から一つあるいは
    それ以上のインストレーションファイルをダウンロード
    し、当該一つあるいはそれ以上のインストレーションフ
    ァイルを利用することによって、当該キャッシング計算
    装置によって、当該キャッシング計算装置上に当該キャ
    ッシュ可能なアプリケーションプログラムコンポーネン
    トをインストールする工程を含む請求項6に記載された
    方法。
  8. 【請求項8】請求項1に記載された方法であって、キャ
    ッシュし、受信し、決定し、導き、そして通過させるス
    テップが、あるクライアント計算装置によって行われ、
    当該アプリケーションプログラムコンポーネントリクエ
    ストを、既にキャッシュ済みの当該キャッシュ可能なア
    プリケーションプログラムコンポーネントに導く工程と
    して、当該クライアント計算装置自身のために当該クラ
    イアント計算装置によって、当該アプリケーションプロ
    グラムコンポーネントを実行する工程を含む、請求項1
    に記載された方法
  9. 【請求項9】請求項8に記載された方法において当該リ
    クエストが当該オリジナル計算装置に通過させられる、
    請求項8に記載された方法であって、当該リクエストを
    当該オリジナル計算装置によって受信し、当該クライア
    ント計算装置のために、当該オリジナル計算装置によっ
    て当該アプリケーションプログラムコンポーネントを実
    行する工程を更に含む、請求項8に記載された方法。
  10. 【請求項10】請求項8に記載された方法において当該
    リクエストが当該キャッシング計算装置に通過させられ
    る、請求項8に記載された方法であって、当該リクエス
    トを、あるキャッシング計算装置により受信し、当該リ
    クエストが、当該キャッシング計算装置によって既にキ
    ャッシュ済みの、あるキャッシュ可能なアプリケーショ
    ンプログラムコンポーネントに関連しているか否かを、
    当該キャッシング計算装置によって決定し、当該リクエ
    ストが、当該キャッシング計算装置によって既にキャッ
    シュ済みの当該コンポーネントに関連するという決定に
    応じて、当該キャッシング計算装置によって当該アプリ
    ケーションプログラムコンポーネントリクエストを、当
    該キャッシング計算装置によって既にキャッシュ済み
    の、当該キャッシュ可能なアプリケーションプログラム
    コンポーネントに導き、当該リクエストが、当該キャッ
    シング計算装置によって既にキャッシュ済みの当該コン
    ポーネントに関連しない場合には、当該キャッシング計
    算装置によって当該アプリケーションプログラムコンポ
    ーネントを当該オリジナル計算装置に通過させる工程を
    更に含む、請求項8に記載された方法。
  11. 【請求項11】請求項10に記載された方法であって、
    当該キャッシング計算装置によって当該アプリケーショ
    ンプログラムコンポーネントリクエストを導く工程とし
    て、当該クライアント計算装置のための当該オリジナル
    計算装置による実行の代わりに、当該クライアント計算
    装置のために当該キャッシング計算装置によって当該ア
    プリケーションプログラムコンポーネントを実行する工
    程を含む、請求項10に記載された方法。
  12. 【請求項12】請求項10に記載された方法であって、
    当該キャッシング計算装置によって当該アプリケーショ
    ンプログラムコンポーネントリクエストを当該オリジナ
    ル計算装置に通過させる工程の後に、当該キャッシング
    計算装置によって通過させられた当該リクエストを、当
    該オリジナル計算装置によって受信し、当該クライアン
    ト計算装置のために、当該オリジナル計算装置によって
    当該アプリケーションプログラムコンポーネントを実行
    する工程を更に含む、請求項10に記載された方法。
  13. 【請求項13】請求項8に記載された方法であって、当
    該アプリケーションプログラムコンポーネントリクエス
    トが関連する、あるキャッシュ可能なアプリケーション
    プログラムコンポーネントの、クライアント計算装置に
    よる使用量を監視し、当該使用量が、当該クライアント
    計算装置による当該キャッシュ可能なアプリケーション
    プログラムコンポーネントのキャッシングを正当化する
    に足るだけ十分かどうかを評価し、当該使用量がキャッ
    シングを正当化するに足るだけ十分であるとの決定に応
    じて、当該クライアント計算装置において、当該アプリ
    ケーションプログラムコンポーネントをキャッシュする
    工程を更に含む、請求項8に記載された方法。
  14. 【請求項14】請求項13に記載された方法であって、
    当該クライアント計算装置での当該アプリケーションプ
    ログラムコンポーネントをキャッシングする工程とし
    て、当該コンポーネントのために、当該クライアント計
    算装置により、当該オリジナル計算装置から、一つある
    いはそれ以上のインストレーションファイルをダウンロ
    ードし、当該一つあるいはそれ以上のインストレーショ
    ンファイルを利用することにより、当該クライアント計
    算装置において、当該クライアント計算装置によって、
    当該コンポーネントをインストールする工程を含む、請
    求項13に記載された方法。
  15. 【請求項15】あるアプリケーションプログラムコンポ
    ーネントの実行リクエストを受信し、当該リクエスト
    が、あるオリジナル計算装置からキャッシュされたある
    キャッシュ可能なアプリケーションプログラムコンポー
    ネントに関連するか否かを決定し、当該リクエストが、
    既にキャッシュ済みの当該コンポーネントに関連すると
    いう決定に応じて、当該アプリケーションプログラムコ
    ンポーネントリクエストを当該キャッシュ可能なアプリ
    ケーションプログラムコンポーネントに導き、当該リク
    エストが、既にキャッシュ済みの当該コンポーネントに
    関連しない場合には、当該リクエストを他の計算装置に
    通過させる工程を含む方法を、ある計算装置のプロセッ
    サによって実行させることによって実施させるための命
    令を格納した、機械により読み取り可能な媒体。
  16. 【請求項16】請求項15に記載された媒体であって、
    当該キャッシュ可能なアプリケーションプログラムコン
    ポーネントが、あるキャッシュ可能なアプリケーション
    プログラムを構成する唯一のコンポーネントであり、そ
    の結果、当該キャッシュ可能なアプリケーションプログ
    ラムコンポーネントをキャッシュすることにより、当該
    キャッシュ可能なアプリケーションプログラム全体がキ
    ャッシュされている、請求項15に記載された媒体。
  17. 【請求項17】請求項15に記載された媒体であって、
    当該計算装置が、あるクライアント計算装置を含む、請
    求項15に記載された媒体。
  18. 【請求項18】請求項17に記載された媒体であって、
    当該アプリケーションプログラムコンポーネントリクエ
    ストを、既にキャッシュ済みの当該キャッシュ可能なア
    プリケーションコンポーネントに導く工程として、当該
    クライアント計算装置のための、あるキャッシング計算
    装置あるいは当該オリジナル計算装置のいずれかによる
    実行の代わりに、当該クライアント計算装置自身のため
    に、当該クライアント計算装置によって、当該アプリケ
    ーションプログラムコンポーネントを実行する工程を含
    む、請求項15に記載された媒体。
  19. 【請求項19】請求項17に記載された媒体であって、
    当該アプリケーションプログラムコンポーネントリクエ
    ストを他の計算装置に通過させる工程として、当該リク
    エストを、あるキャッシング計算装置あるいは当該オリ
    ジナル計算装置のうちの一つに通過させる工程を含む、
    請求項17に記載された媒体。
  20. 【請求項20】請求項15に記載された媒体であって、
    当該計算装置が、あるキャッシング計算装置を含む請求
    項15に記載された媒体。
  21. 【請求項21】請求項20に記載された媒体であって、
    当該アプリケーションプログラムリクエストを、既にキ
    ャッシュ済みの当該キャッシュ可能なアプリケーション
    コンポーネントに導く工程として、あるクライアント計
    算装置のための、当該オリジナル計算装置による実行の
    代わりに、当該クライアント計算装置のために、当該キ
    ャッシング計算装置によって、当該アプリケーションプ
    ログラムコンポーネントを実行する工程を含む、請求項
    20に記載された媒体。
  22. 【請求項22】請求項20に記載された媒体であって、
    当該アプリケーションプログラムコンポーネントリクエ
    ストを他の計算装置に通過させる工程として、当該リク
    エストを当該オリジナル計算装置に通過させる工程を含
    む、請求項20に記載された媒体。
  23. 【請求項23】あるクライアント計算装置による、ある
    オリジナル計算装置上に格納されたあるアプリケーショ
    ンプログラム中のキャッシュ可能なアプリケーションプ
    ログラムコンポーネントの使用量を監視し、当該使用量
    が、当該オリジナル計算装置からの、当該キャッシュ可
    能なアプリケーションプログラムコンポーネントのいず
    れかのキャッシングを正当化するに足るだけ十分である
    かどうかを評価し、当該アプリケーションプログラムコ
    ンポーネントの当該使用量が、キャッシングを正当化す
    るために十分であると評価された、当該アプリケーショ
    ンプログラムコンポーネントのいずれかを、当該オリジ
    ナル計算装置からキャッシュする工程を含む方法を、あ
    る計算装置のプロセッサによって実行させることによっ
    て実施させるための命令を格納した、機械により読み取
    り可能な媒体。
  24. 【請求項24】請求項23に記載された媒体であって、
    当該アプリケーションプログラムが一つあるいはそれ以
    上のキャッシュ可能なコンポーネントからなり、その結
    果、当該アプリケーションプログラム全体がキャッシュ
    されうる、請求項23に記載された媒体。
  25. 【請求項25】請求項23に記載された媒体であって、
    当該アプリケーションプログラムコンポーネントのいず
    れかをキャッシュする工程として、当該オリジナル計算
    装置から一つあるいはそれ以上のインストレーションフ
    ァイルをダウンロードする工程を含む、請求項23に記
    載された媒体
  26. 【請求項26】請求項23に記載された媒体であって、
    当該計算装置が、あるクライアント計算装置である、請
    求項23に記載された媒体。
  27. 【請求項27】請求項23に記載された媒体であって、
    当該計算装置が、あるキャッシング計算装置である、請
    求項23に記載された媒体。
  28. 【請求項28】計算装置であって、あるオリジナル計算
    装置から既にキャッシュ済みの、あるアプリケーション
    プログラムの、あるキャッシュ可能なアプリケーション
    プログラムコンポーネントと、アプリケーションプログ
    ラムコンポーネントへのリクエストを傍受し、既にキャ
    ッシュ済みの当該アプリケーションプログラムコンポー
    ネントと関連する当該リクエストのいずれかを、既にキ
    ャッシュ済みの当該アプリケーションプログラムコンポ
    ーネントに導く、方位指示コンポーネントを含む計算装
    置。
  29. 【請求項29】請求項28に記載された装置であって、
    当該キャッシュ可能なアプリケーションプログラムコン
    ポーネントが、あるキャッシュ可能なアプリケーション
    プログラムを構成する唯一のコンポーネントであり、そ
    の結果、当該キャッシュ可能なアプリケーションプログ
    ラム全体がキャッシュされる、請求項28に記載された
    装置。
  30. 【請求項30】請求項28に記載された装置であって、
    当該装置が、あるクライアント計算装置である請求項2
    8に記載された装置。
  31. 【請求項31】請求項28に記載された装置であって、
    当該装置が、あるキャッシング計算装置である請求項2
    8に記載された装置。
  32. 【請求項32】請求項28に記載された装置であって、
    当該方位指示コンポーネントが更に、既にキャッシュ済
    みの当該アプリケーションプログラムと無関係な当該ア
    プリケーションプログラムコンポーネントリクエスト
    を、他の計算装置に通過させる、請求項28に記載され
    た装置
  33. 【請求項33】請求項28に記載された装置であって、
    当該方位指示コンポーネントが、あるリクエストが、既
    にキャッシュ済みのキャッシュ可能なアプリケーション
    プログラムコンポーネントのいずれかに向けられた、あ
    るアプリケーションプログラムコンポーネントリクエス
    トを含むか否かを決定する、第一のハンドラと、既にキ
    ャッシュ済みの当該アプリケーションプログラムコンポ
    ーネントのための第二のハンドラと、当該リクエスト
    が、既にキャッシュ済みのいずれかのキャッシュ可能な
    アプリケーションプログラムコンポーネントに向けた、
    あるアプリケーションプログラムリクエストを含むとい
    う、当該第一のハンドラによる決定に応じて、当該第一
    のハンドラから当該リクエストを受信し、当該リクエス
    トが、既にキャッシュ済みの当該アプリケーションプロ
    グラムコンポーネントに関連するという決定に応じて、
    当該リクエストを当該第二のハンドラに導く、第三のハ
    ンドラを含む、請求項28に記載された装置。
  34. 【請求項34】請求項28に記載された装置であって、
    アプリケーションプログラムコンポーネントの使用量を
    監視するための、キャッシングコンポーネントを更に含
    む、請求項28に記載された装置。
  35. 【請求項35】請求項34に記載された装置であって、
    当該キャッシングコンポーネントが更に、当該アプリケ
    ーションプログラムコンポーネントのいずれかの当該使
    用量が、キャッシングを正当化するために十分であるか
    否かを評価する、請求項34に記載された装置。
  36. 【請求項36】請求項35に記載された装置であって、
    当該キャッシングコンポーネントが更に、その使用量が
    キャッシングを正当化するだけ十分と評価された、いず
    れかの当該アプリケーションプログラムコンポーネント
    をキャッシュする、請求項35に記載された装置。
  37. 【請求項37】請求項36に記載された装置であって、
    当該キャッシングコンポーネントが当該オリジナル計算
    装置から一つあるいはそれ以上のインストレーションフ
    ァイルをダウンロードすることによって、当該アプリケ
    ーションプログラムコンポーネントのいずれかをキャッ
    シュする、請求項36に記載された装置。
  38. 【請求項38】計算装置であって、あるオリジナル計算
    装置からキャッシュされた、あるキャッシュ可能なアプ
    リケーションプログラムコンポーネントと、当該オリジ
    ナル計算装置による実行の代わりに、当該アプリケーシ
    ョンプログラムコンポーネントを実行するコンポーネン
    トを含む計算装置。
  39. 【請求項39】請求項38に記載された装置であって、
    当該計算装置が、あるクライアント計算装置であって、
    当該クライアント計算装置のための、当該オリジナル計
    算装置による実行の代わりに、当該アプリケーションプ
    ログラムコンポーネントを実行する当該コンポーネント
    が、当該コンポーネント自身のために当該アプリケーシ
    ョンプログラムコンポーネントを実行する、請求項38
    に記載された装置。
  40. 【請求項40】請求項38に記載された装置において当
    該計算装置が、あるキャッシング計算装置である、請求
    項38に記載された装置であって、あるクライアント計
    算装置のための、当該オリジナル計算装置による実行の
    代わりに、当該アプリケーションプログラムコンポーネ
    ントを実行する当該コンポーネントが、当該クライアン
    ト計算装置のために当該アプリケーションプログラムコ
    ンポーネントを実行する、請求項38に記載された装
    置。
  41. 【請求項41】システムであって、あるネットワークに
    通信状態で接続された、あるクライアント計算装置と、
    あるオリジナル計算装置からの、少なくとも一つのキャ
    ッシュ可能なアプリケーションプログラムコンポーネン
    トをキャッシュし、当該クライアント計算装置のために
    当該少なくとも一つのコンポーネントを実行する、ある
    キャッシング計算装置であって、当該キャッシング計算
    装置もまた当該ネットワークに通信状態で接続された、
    当該キャッシング計算装置を含むシステム。
  42. 【請求項42】請求項41に記載されたシステムであっ
    て、当該キャッシング計算装置によってキャッシュされ
    る当該アプリケーションプログラムコンポーネントのう
    ち、少なくとも一つの中のいずれかが、あるキャッシュ
    可能なアプリケーションプログラム中の唯一のコンポー
    ネントを構成し、その結果、当該キャッシュ可能なアプ
    リケーションプログラムコンポーネントをキャッシュす
    る当該キャッシング計算装置によって、当該キャッシュ
    可能なアプリケーションプログラム全体がキャッシュさ
    れる、請求項41に記載されたシステム。
  43. 【請求項43】請求項41に記載されたシステムであっ
    て、当該クライアント計算装置が更に、当該オリジナル
    計算装置からの、少なくとも一つのキャッシュ可能なア
    プリケーションプログラムコンポーネントをキャッシュ
    し、自分自身のために当該少なくとも一つのコンポーネ
    ントを実行する、請求項41に記載されたシステム。
  44. 【請求項44】請求項43に記載されたシステムであっ
    て、当該クライアント計算装置によってキャッシュされ
    る、当該少なくとも一つのアプリケーションプログラム
    コンポーネントのいずれかが、あるキャッシュ可能なア
    プリケーションプログラム中の唯一のコンポーネントを
    構成し、その結果、当該キャッシュ可能なアプリケーシ
    ョンプログラムコンポーネントをキャッシュする当該ク
    ライアント計算装置によって、当該キャッシュ可能なア
    プリケーションプログラム全体がキャッシュされる、請
    求項43に記載されたシステム。
  45. 【請求項45】請求項41に記載されたシステムであっ
    て、当該オリジナル計算装置もまた、通信状態で当該ネ
    ットワークに接続されている、請求項41に記載された
    システム。
  46. 【請求項46】請求項41に記載されたシステムであっ
    て、当該オリジナル計算装置が通信状態で、ある第二の
    ネットワークに接続され、当該キャッシング計算装置も
    また、通信状態で当該第二のネットワークに接続され
    る、請求項41に記載されたシステム。
  47. 【請求項47】あるキャッシング計算装置の利用を通じ
    て、あるクライアント計算装置のために、あるオリジナ
    ル計算装置に格納された、あるコンピュータアプリケー
    ションプログラムあるいはその中のあるコンポーネント
    を実行するための方法であって、当該キャッシング計算
    装置において、当該オリジナル計算装置からの当該アプ
    リケーションプログラム、あるいはその中の当該コンポ
    ーネントを受信してキャッシュし、当該キャッシュ済み
    のアプリケーションプログラムあるいは当該キャッシュ
    済みのコンポーネントを実行するための、あるリクエス
    トに応じて、当該キャッシング計算装置において、当該
    アプリケーションプログラムあるいはその中の当該コン
    ポーネントを実行する工程を含む方法。
  48. 【請求項48】請求項47に記載された方法であって、
    当該アプリケーションプログラムあるいはその中の当該
    コンポーネントの実行結果を、当該キャッシング計算装
    置から当該クライアント計算装置に提供する工程を更に
    含む、請求項47に記載された方法。
JP2001246809A 2000-07-11 2001-07-11 アプリケーションプログラムキャッシング Expired - Lifetime JP4290909B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US21760200P 2000-07-11 2000-07-11
US60/217602 2000-07-11
US09/681844 2001-06-15
US09/681,844 US6941351B2 (en) 2000-07-11 2001-06-15 Application program caching

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005323748A Division JP5072214B2 (ja) 2000-07-11 2005-11-08 アプリケーションプログラムキャッシング

Publications (2)

Publication Number Publication Date
JP2002182924A true JP2002182924A (ja) 2002-06-28
JP4290909B2 JP4290909B2 (ja) 2009-07-08

Family

ID=26912076

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2001246809A Expired - Lifetime JP4290909B2 (ja) 2000-07-11 2001-07-11 アプリケーションプログラムキャッシング
JP2005323748A Expired - Lifetime JP5072214B2 (ja) 2000-07-11 2005-11-08 アプリケーションプログラムキャッシング

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2005323748A Expired - Lifetime JP5072214B2 (ja) 2000-07-11 2005-11-08 アプリケーションプログラムキャッシング

Country Status (3)

Country Link
US (2) US6941351B2 (ja)
EP (1) EP1204025B1 (ja)
JP (2) JP4290909B2 (ja)

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453334B1 (en) * 1997-06-16 2002-09-17 Streamtheory, Inc. Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching
US7103650B1 (en) * 2000-09-26 2006-09-05 Microsoft Corporation Client computer configuration based on server computer update
US8799463B1 (en) * 2000-10-19 2014-08-05 Ariba, Inc. Method and apparatus for processing information related to interactive web sites
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US8831995B2 (en) * 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US6996537B2 (en) 2001-08-13 2006-02-07 Qualcomm Incorporated System and method for providing subscribed applications on wireless devices over a wireless network
JP2003177992A (ja) * 2001-12-10 2003-06-27 Seiko Epson Corp 差分通信システム、差分通信装置及び差分通信プログラム、並びに差分通信方法
EP1324217A1 (en) * 2001-12-18 2003-07-02 Hewlett-Packard Company, A Delaware Corporation Process and cache system for providing an electronic service through a telecommunication network
US7305700B2 (en) 2002-01-08 2007-12-04 Seven Networks, Inc. Secure transport for mobile communication network
US7412481B2 (en) 2002-09-16 2008-08-12 Oracle International Corporation Method and apparatus for distributed rule evaluation in a near real-time business intelligence system
US7941542B2 (en) * 2002-09-06 2011-05-10 Oracle International Corporation Methods and apparatus for maintaining application execution over an intermittent network connection
US7899879B2 (en) 2002-09-06 2011-03-01 Oracle International Corporation Method and apparatus for a report cache in a near real-time business intelligence system
US8165993B2 (en) 2002-09-06 2012-04-24 Oracle International Corporation Business intelligence system with interface that provides for immediate user action
US7945846B2 (en) 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
US7912899B2 (en) 2002-09-06 2011-03-22 Oracle International Corporation Method for selectively sending a notification to an instant messaging device
US8255454B2 (en) 2002-09-06 2012-08-28 Oracle International Corporation Method and apparatus for a multiplexed active data window in a near real-time business intelligence system
US7401158B2 (en) 2002-09-16 2008-07-15 Oracle International Corporation Apparatus and method for instant messaging collaboration
US9232077B2 (en) * 2003-03-12 2016-01-05 Qualcomm Incorporated Automatic subscription system for applications and services provided to wireless devices
US7904823B2 (en) 2003-03-17 2011-03-08 Oracle International Corporation Transparent windows methods and apparatus therefor
FR2864654B1 (fr) * 2003-12-30 2007-02-23 Trusted Logic Procede de determination de caracteristiques operationnelles d'un programme
EP2485187A1 (en) 2004-01-21 2012-08-08 Qualcomm Incorporated Application-based value billing in a wireless subscriber network
US9357031B2 (en) * 2004-06-03 2016-05-31 Microsoft Technology Licensing, Llc Applications as a service
US8812613B2 (en) 2004-06-03 2014-08-19 Maxsp Corporation Virtual application manager
US7664834B2 (en) * 2004-07-09 2010-02-16 Maxsp Corporation Distributed operating system management
US7577949B2 (en) * 2005-01-20 2009-08-18 Microsoft Corporation Installation source management
US8234238B2 (en) * 2005-03-04 2012-07-31 Maxsp Corporation Computer hardware and software diagnostic and report system
US8589323B2 (en) 2005-03-04 2013-11-19 Maxsp Corporation Computer hardware and software diagnostic and report system incorporating an expert system and agents
US8024523B2 (en) 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US7941604B2 (en) * 2006-02-01 2011-05-10 Infineon Technologies Ag Distributed memory usage for a system having multiple integrated circuits each including processors
US8811396B2 (en) 2006-05-24 2014-08-19 Maxsp Corporation System for and method of securing a network utilizing credentials
US8898319B2 (en) 2006-05-24 2014-11-25 Maxsp Corporation Applications and services as a bundle
US20080077622A1 (en) * 2006-09-22 2008-03-27 Keith Robert O Method of and apparatus for managing data utilizing configurable policies and schedules
US7840514B2 (en) * 2006-09-22 2010-11-23 Maxsp Corporation Secure virtual private network utilizing a diagnostics policy and diagnostics engine to establish a secure network connection
US9317506B2 (en) * 2006-09-22 2016-04-19 Microsoft Technology Licensing, Llc Accelerated data transfer using common prior data segments
US7844686B1 (en) 2006-12-21 2010-11-30 Maxsp Corporation Warm standby appliance
US8423821B1 (en) 2006-12-21 2013-04-16 Maxsp Corporation Virtual recovery server
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8307239B1 (en) 2007-10-26 2012-11-06 Maxsp Corporation Disaster recovery appliance
US8645515B2 (en) 2007-10-26 2014-02-04 Maxsp Corporation Environment manager
US8175418B1 (en) 2007-10-26 2012-05-08 Maxsp Corporation Method of and system for enhanced data storage
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
CN102135892B (zh) * 2010-01-22 2015-03-04 广州华多网络科技有限公司 应用程序运行方法、装置及系统
JP5567906B2 (ja) 2010-06-04 2014-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 画面の再現を支援する装置及び方法
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
US9043433B2 (en) 2010-07-26 2015-05-26 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
US20150195340A1 (en) * 2010-09-30 2015-07-09 Google Inc. Determining if an Application is Cached
US20120096048A1 (en) * 2010-10-19 2012-04-19 Microsoft Corporation Personalized Object Dimension
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
GB2500327B (en) 2010-11-22 2019-11-06 Seven Networks Llc Optimization of resource polling intervals to satisfy mobile device requests
GB2501416B (en) 2011-01-07 2018-03-21 Seven Networks Llc System and method for reduction of mobile network traffic used for domain name system (DNS) queries
US20120191803A1 (en) * 2011-01-25 2012-07-26 Microsoft Corporation Decommissioning factored code
GB2505103B (en) 2011-04-19 2014-10-22 Seven Networks Inc Social caching for device resource sharing and management cross-reference to related applications
US8621075B2 (en) 2011-04-27 2013-12-31 Seven Metworks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
EP3324665B1 (en) * 2011-04-27 2022-03-30 Seven Networks, LLC Detection and filtering of malware based on traffic observations made in a distributed mobile traffic management system
US20120278431A1 (en) 2011-04-27 2012-11-01 Michael Luna Mobile device which offloads requests made by a mobile application to a remote entity for conservation of mobile device and network resources and methods therefor
WO2013015995A1 (en) 2011-07-27 2013-01-31 Seven Networks, Inc. Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network
EP2789138B1 (en) 2011-12-06 2016-09-14 Seven Networks, LLC A mobile device and method to utilize the failover mechanisms for fault tolerance provided for mobile traffic management and network/device resource conservation
US8918503B2 (en) 2011-12-06 2014-12-23 Seven Networks, Inc. Optimization of mobile traffic directed to private networks and operator configurability thereof
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
GB2498064A (en) 2011-12-07 2013-07-03 Seven Networks Inc Distributed content caching mechanism using a network operator proxy
WO2013090212A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. Mobile network reporting and usage analytics system and method using aggregation of data in a distributed traffic optimization system
EP2801236A4 (en) 2012-01-05 2015-10-21 Seven Networks Inc DETECTION AND MANAGEMENT OF USER INTERACTIONS WITH FRONT PANEL APPLICATIONS ON A MOBILE DEVICE IN DISTRIBUTED CACHE STORES
EP2645231A3 (en) * 2012-03-29 2014-03-05 Samsung Electronics Co., Ltd. User terminal apparatus, method of controlling user terminal apparatus, image forming apparatus, and method of controlling image forming apparatus
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US10263899B2 (en) 2012-04-10 2019-04-16 Seven Networks, Llc Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US9307493B2 (en) 2012-12-20 2016-04-05 Seven Networks, Llc Systems and methods for application management of mobile device radio state promotion and demotion
US9271238B2 (en) 2013-01-23 2016-02-23 Seven Networks, Llc Application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9326185B2 (en) 2013-03-11 2016-04-26 Seven Networks, Llc Mobile network congestion recognition for optimization of mobile traffic
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US10027753B2 (en) * 2013-10-15 2018-07-17 Microsoft Technology Licensing, Llc Cloud service hosting on client device
CN105608147B (zh) * 2015-12-17 2019-05-21 无锡天脉聚源传媒科技有限公司 一种隐藏图片原始地址的方法及装置
US10277688B2 (en) 2017-01-04 2019-04-30 Microsoft Technology Licensing, Llc Automatic installation activation selection for hosted services

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5771354A (en) * 1993-11-04 1998-06-23 Crawford; Christopher M. Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services
CA2137488C (en) * 1994-02-18 1998-09-29 Richard I. Baum Coexecuting method and means for performing parallel processing in conventional types of data processing systems
JP3946275B2 (ja) * 1995-01-10 2007-07-18 富士通株式会社 リモートインストールシステムおよび方法
US5859971A (en) * 1996-02-15 1999-01-12 International Business Machines Corp. Differencing client/server communication system for use with CGI forms
US5838910A (en) * 1996-03-14 1998-11-17 Domenikos; Steven D. Systems and methods for executing application programs from a memory device linked to a server at an internet site
US5919247A (en) * 1996-07-24 1999-07-06 Marimba, Inc. Method for the distribution of code and data updates
US6006034A (en) * 1996-09-05 1999-12-21 Open Software Associates, Ltd. Systems and methods for automatic application version upgrading and maintenance
DE19712127A1 (de) * 1997-03-22 1998-10-22 Lutz Dr Hagner Vorrichtung zum Zwischenspeichern von Programmteilen in lokalen Netzen ohne lokale oder lokal zentralisierte Programm- oder Daten- und Programmspeicherung zur Beschleunigung der Programmabarbeitung und Optimierung der Datenübertragung zu entfernt stehenden zentralen Applikations- und Datenservern
JPH10334058A (ja) * 1997-05-27 1998-12-18 Shikoku Nippon Denki Software Kk オンラインシステムと負荷分散方式
US6073129A (en) * 1997-12-29 2000-06-06 Bull Hn Information Systems Inc. Method and apparatus for improving the performance of a database management system through a central cache mechanism
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6205481B1 (en) * 1998-03-17 2001-03-20 Infolibria, Inc. Protocol for distributing fresh content among networked cache servers
US6128623A (en) 1998-04-15 2000-10-03 Inktomi Corporation High performance object cache
DE19829026A1 (de) 1998-06-30 2000-01-05 Alcatel Sa Dienstbereitstellungssystem
US20020138640A1 (en) * 1998-07-22 2002-09-26 Uri Raz Apparatus and method for improving the delivery of software applications and associated data in web-based systems
US6574618B2 (en) * 1998-07-22 2003-06-03 Appstream, Inc. Method and system for executing network streamed application
JP2000172657A (ja) * 1998-12-08 2000-06-23 Fujitsu Ltd 分散処理システム、分散処理方法、その方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体、サーバ装置およびクライアント装置
US6442546B1 (en) * 1998-12-30 2002-08-27 At&T Corp. Messaging system with application-defined states
US6430564B1 (en) * 1999-03-01 2002-08-06 Hewlett-Packard Company Java data manager for embedded device
US6430570B1 (en) * 1999-03-01 2002-08-06 Hewlett-Packard Company Java application manager for embedded device

Also Published As

Publication number Publication date
EP1204025A3 (en) 2006-06-14
JP4290909B2 (ja) 2009-07-08
US6941351B2 (en) 2005-09-06
US20020035674A1 (en) 2002-03-21
US20050273766A1 (en) 2005-12-08
EP1204025A2 (en) 2002-05-08
JP5072214B2 (ja) 2012-11-14
EP1204025B1 (en) 2018-09-19
JP2006092569A (ja) 2006-04-06

Similar Documents

Publication Publication Date Title
JP4290909B2 (ja) アプリケーションプログラムキャッシング
US9483256B2 (en) Virtualized application image patching
US11573816B1 (en) Prefetching and managing container images using cluster manifest
US7702800B2 (en) Detecting and handling affinity breaks in web applications
US6877025B2 (en) Integrated JSP and command cache for web applications with dynamic content
RU2453911C2 (ru) Автономное выполнение веб-приложений
JP4629371B2 (ja) キャッシュエントリを無効化する汎用依存関係モデル
JP3980675B2 (ja) ネットワーク独立型ファイル・シャドウイング
US20020116582A1 (en) Batching of invalidations and new values in a web cache with dynamic content
US9185158B2 (en) Content delivery in a network
JP5064753B2 (ja) 方法、コンピュータ・プログラム製品、コンピュータ・プログラム、情報ハンドリング・システム(デフォルト・データ転送コヒーレント・キャッシング・エージェントのシステムおよび方法)
US8880634B2 (en) Cache sharing among branch proxy servers via a master proxy server at a data center
US20090328026A1 (en) Update system, program execution device, and computer program
US20090113398A1 (en) Managing the tracing of the execution of a computer program
US20120158819A1 (en) Policy-based application delivery
US20020116583A1 (en) Automatic invalidation dependency capture in a web cache with dynamic content
JPH10224767A (ja) マルチメディア・システムでデータストリームを効率的に転送するためのシステム及び方法
US20140095644A1 (en) Processing of write requests in application server clusters
US6823360B2 (en) Cofetching in a command cache
US7813964B2 (en) Click and run software purchasing
US20090125569A1 (en) Dynamic replication on demand policy based on zones
JP2006171918A (ja) クライアントへのデータ送信および更新データの実行制御方法
US20240089339A1 (en) Caching across multiple cloud environments
US11463535B1 (en) Using forensic trails to mitigate effects of a poisoned cache
CN114900485B (zh) 访问网络文件存储的方法、电子设备及系统

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040507

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040806

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040811

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050304

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050530

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050712

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20051012

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051012

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051108

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20051118

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20051209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081117

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: 20090402

R150 Certificate of patent or registration of utility model

Ref document number: 4290909

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120410

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120410

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130410

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130410

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140410

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250