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

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

Info

Publication number
JP4290909B2
JP4290909B2 JP2001246809A JP2001246809A JP4290909B2 JP 4290909 B2 JP4290909 B2 JP 4290909B2 JP 2001246809 A JP2001246809 A JP 2001246809A JP 2001246809 A JP2001246809 A JP 2001246809A JP 4290909 B2 JP4290909 B2 JP 4290909B2
Authority
JP
Japan
Prior art keywords
computing device
component
application program
request
caching
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 - Lifetime
Application number
JP2001246809A
Other languages
English (en)
Other versions
JP2002182924A (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.)
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

Images

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)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【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は通信状態で、第二のネットワークを通じてオリジナル計算装置108に接続される。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に話を戻すと、第一のネットワーク106と第二のネットワーク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及び108のいずれかの装置を実施しうる計算装置の例もまた詳細な説明中の次の節で説明されている。
【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/request.ext.”の形式でありうる。“rapp”なるインジケータは、リクエストが“遠隔アップリケーションプログラムプロトコル(remote application program protocol)”のような特定のプロトコルと関連することを指定するために用いられる。“www.aspco.com”なるドメイン名は、インターネット上におけるようなリソース位置を指定する。インジケータ“program/”と“directory/”はこの位置における特定のディレクトリを指定する。ここで“program/”は現時点でアクセスされているプログラムを識別するために特に用いられる。“request.ext.”と表示されるように、リクエストはこの位置のファイルに対してなされる。
【0024】
アプリケーションプロトコルハンドラ502はクライアント計算装置からの全てのネットワークトラッフィックを調べる。もしトラッフィックの項目が“rapp:”なるインジケータの後に来るのであれば、ハンドラ502は、リクエストによって特定されるプログラムが、装置500上で既にキャッシュされたプログラムに関連するか否かを更に決定する。もし関連しなければ、矢印503に示されるように、ハンドラ502はリクエストを通過させる。もし関連すれば、ハンドラ502はリクエストをローカルネーム解決ハンドラ504に通過させる。
【0025】
ローカルネーム解決ハンドラ504はアプリケーションプログラムリクエストを適切なキャッシュ済みのアプリケーションに転送する。ハンドラ504は、ローカルアプリケーションハンドラ506a,506b,・・・,506nの中からプログラムのために特定のハンドラをポイントするように、リクエストを修正する。“rapp://www.aspco.com/wordprocessing/request.ext.”がリクエストの例である。もし、ローカルアプリケーションハンドラ506bがこのリクエストで指示されたアプリケーションに対応するならば、ハンドラ504はローカルアプリケーションハンドラ506bをポイントするようにリクエストを修正する。ローカルアップリケーションハンドラ506bは“c:/wordprocessing/”によって識別されうる。“c”は、例えばハードディスクドライブのような、装置500内の物理的な位置
を意味し、“wordprocessing/”はこの物理的な位置におけるディレクトリを意味する。ハンドラ504はリクエストを“c:/wordprocessing/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はプログラムあるいはその一部をダウンロードし、キャッシュ済みアプリケーション610にインストールする。
【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によって実施される。これらのコンポーネントは、アプリケーションプログラムがキャッシュされるべきと決定した後に、方法900を実施する。方法900のキャッシングプロセスは、プロセス内のいかなるポイントでも失敗しうる。失敗した場合には、その後方法900はアプリケーションプログラムをうまくキャッシュできない状態で存在する(この状態は特に図9では取り上げられていない。)
この節での説明は、別々のアプリケーションプログラムコンポーネントに区分されていないアプリケーションプログラム全体をダウンロードし、インストールする場合に焦点を当てる。この節での説明はまた、アプリケーションプログラム全体ではなくアプリケーションプログラムのコンポーネントに関連する方法900を実施することにより、当該コンポーネントをキャッシュする場合にも適用できる。キャッシュ可能なアプリケーションプログラムあるいはその一部は、本節で説明されるようにダウンロードされ、インストールされうるものである。
【0038】
902では、本方法はアプリケーションプログラムのために、オリジナル遠隔地から、オリジナル計算装置にプリインストールされたファイルを取り出す。プリインストールされたファイルはまた、マニフェストとも呼ばれる。マニフェストには、プログラムがうまくキャッシュされるために必要なコンフィギュレーション及び他の情報が含まれている。ダウンロードされインストールされるべきプログラムのために、マニフェストは少なくともインストレーションファイルを参照ファイルとして引用する。好ましくは、マニフェストはまた、アプリケーションが占有することになるローカル格納スペースの大きさを参照し、またオプションとして、その上でアプリケーションが走ることが予定されるプラットフォームを参照する。マニフェストはまた、アプリケーション名,アプリケーションのバージョン,アプリケーションの簡単な説明,及び他の情報のような記述的情報を含むことがある。
【0039】
904で、本方法は、本方法を実施している計算装置上にアプリケーションプログラムをインストールできるか否かを決定する。これには基本的に二つのチェックが含まれる。第一に、本方法は、使用可能なローカル格納スペースが、インストールされるべきプログラムのために十分であることを確認する。使用可能なローカル格納スペースは計算装置のハードディスク上で利用できるフリースペースであるかもしれない。第二に本方法は、計算装置と、その上にアプリケーションプログラムがインストールされることが予定されるプラットフォームがコンパチブルであることを確認する。マニフェストのプラットフォームは、その上でプログラムを走らせることのできるオペーレーティングシステムの最低限のバージョンを表示することがある。もし本方法がアプリケーションをインストールできないと決定すれば、その後、本方法はアプリケーションプログラムがインストールされていない状態で本方法が存在する906に進む。
【0040】
もしアプリケーションプログラムがインストールできるなら、その後、本方法は、本方法がマニフェストによって指定されたインストレーションファイルをダウンロードする908に進む。909では、本方法はインストレーションファイルを利用することによって、本方法を実行している装置上にプログラムをインストールする。インストレーションファイルは、既知の方法により計算装置上にインストール可能な、一つあるいはそれ以上のキャビネット(.CAB)ファイルでありうる。910で本方法は、インストールされたアプリケーションプログラムに関して、中央データベースに値を加算する。中央データベースはまた、レジストリと呼ばれることがある。キャッシュされたアプリケーションプログラムは、レジストリで保守される。レジストリでは、例えばオリジナル計算装置というようなアプリケーションプログラムの元々のロケーションが、アプリケーションプログラムがキャッシュされた計算装置上のロケーションにマップされる。これにより、キャッシュされたアプリケーションプログラムへの、プログラムリクエストの転送を可能となる。レジストリはまた、インストールした時間やアプリケーション利用情報のような、アプリケーションプログラムに関する適切なインストレーション情報を保守する。
【0041】
例えば本方法は、インストールされたアプリケーションプログラムのために、以下の値をレジストリに加算することができる。
アプリケーションプログラムのオリジナルロケーション
プログラムがインストールされたシステム時間
保証された固有の識別子(GUID)として自動的に生成されうるアプリケーション識別子
アプリケーションがインストールされ、そこから実行可能であり、アプリケーション識別子に基づきハッシュアルゴリズムによって決定可能な、計算装置上の物理的ロケーション
アプリケーションプログラムがアクセスされた直近の時間(プログラムが実行されるまではインストレーション時がデフォールト値とされる)
計算装置例
図10が例示計算装置1000の図である。図1のクライアント計算装置102,キャッシング計算装置104,及びオリジナル計算装置108のいずれもが、例示装置1000として実現できる。例示計算装置1000は、例えば、デスクトップコンピュータ,ラップトップコンピュータ,あるいはパーソナルデジタルアシスタント(PDA)でありうる。本発明は、マルチプロセッサシステム,マルチプロセッサベースあるいはプログラマブルなコンシューマエレクトロニクス,ネットワークコンピュータ,ミニコンピュータ,及びメインフレームコンピュータを含む、他のコンピュータシステムコンフィギュレーションを用いても実施できる。本発明は、タスクが通信ネットワークを通してリンクされた遠隔処理装置によって実行される、分散コンピュータ環境で実施することもできる。
【0042】
装置1000は、一つあるいはそれ以上の次のコンポーネントを含む:(一つあるいは複数の)プロセッサ1002,メモリ1004,記憶装置1006,通信コンポーネント1008,(一つあるいは複数の)入力装置1010,ディスプレー1012,及び(一つあるいは複数の)出力装置1014。装置1000のうちある特定の具体例によっては、これらのコンポーネントのうち一つあるいはそれ以上のコンポーネントは存在しないかもしれない。例えば、PDAは出力装置1014を持たないかもしれない。装置1000の説明はそのような装置内に通常存在するタイプのコンポーネントのあらましとして用いられるものであり、限定的あるいは網羅的な説明を意味するものではない。
【0043】
(一つあるいはそれ以上の)プロセッサ1002は、単一の中央処理装置(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のキャッシング計算装置,クライアント計算装置,あるいはオリジナル計算装置のいずれかを実行させることのできる、計算装置例の図である。

Claims (11)

  1. クライアント計算装置、キャッシング計算装置又はオリジナル計算装置のいずれかのプロセッサが、アプリケーションプログラムを実行する方法であって、
    (a)前記クライアント計算装置のプロセッサが、オリジナル計算装置から受信したアプリケーションプログラムのうち所定のキャッシュ可能なコンポーネントをインストールし、
    (b)前記クライアント計算装置のプロセッサが、当該アプリケーションプログラムのうちのコンポーネントを実行するためのリクエストであって、実行すべきコンポーネントの指定を含むリクエストを受信し、
    (c)当該リクエストが、既にインストール済みの当該キャッシュ可能なアプリケーションプログラムコンポーネントに対するものか否かを、前記リクエストに含まれる指定により決定し、
    (d)前記クライアント計算装置における、当該リクエストが既にインストール済みの当該コンポーネントに対するものという決定に応じて、当該リクエストを当該キャッシュ可能なアプリケーションプログラムコンポーネントにより処理し
    (e)当該リクエストが既にインストール済みの当該コンポーネントに対するものではない場合には、前記クライアント計算装置のプロセッサが、当該リクエストをキャッシング計算装置にパスし、前記キャッシング計算装置において再度、前記クライアント計算装置を前記キャッシング計算装置に置き換えたステップ(b)、(c)、(d)を実行し、さら当該リクエストが既にインストール済みの当該コンポーネントに対するものではない場合には、前記キャッシング計算装置のプロセッサが、当該リクエストを前記オリジナル計算装置にパスし、前記オリジナル計算装置のプロセッサが、当該リクエストをアプリケーションプログラムコンポーネントにより処理する
    ステップを含み、
    前記アプリケーションコンポーネントの使用状況を監視し、該使用状況により前記キャッシュ可能なアプリケーションプログラムコンポーネントにより処理することを決定することを特徴とするアプリケーションプログラムを実行する方法。
  2. 当該キャッシュ可能なアプリケーションプログラムコンポーネントが、キャッシュ可能なアプリケーションプログラム内の唯一のコンポーネントを構成し、その結果、当該キャッシュ可能なプログラムコンポーネントをインストールすることによって、当該キャッシュ可能なアプリケーションプログラムの全体がインストールされることを特徴とする請求項1に記載された方法。
  3. 当該キャッシュ可能なアプリケーションプログラムコンポーネントをインストールするステップとして、
    当該キャッシュ可能なアプリケーションプログラムコンポーネントのために、当該オリジナル計算装置から一つあるいはそれ以上のインストレーションファイルをダウンロードするステップと、
    当該一つあるいはそれ以上のインストレーションファイルを利用することにより、当該キャッシュ可能なアプリケーションプログラムコンポーネントをキャッシング計算装置上にインストールするステップと
    を含むことを特徴とする請求項1に記載された方法。
  4. (a)クライアント計算装置のプロセッサが、アプリケーションプログラムコンポーネントの実行リクエストを受信し、
    (b)当該リクエストが、オリジナル計算装置からキャッシュされたキャッシュ可能なアプリケーションプログラムコンポーネントに対するものであるか否かをクライアント計算装置のプロセッサが決定し、
    (c)当該リクエストが、既にインストール済みの当該コンポーネントに対するものという決定に応じて、クライアント計算装置のプロセッサが、当該アプリケーションプログラムコンポーネントリクエストを当該キャッシュ可能なアプリケーションプログラムコンポーネントにより処理し
    (d)当該リクエストが、既にインストール済みの当該コンポーネントに対するものではない場合には、クライアント計算装置のプロセッサが、当該リクエストをキャッシング計算装置にパスし、前記キャッシング計算装置において再度、前記クライアント計算装置を前記キャッシング計算装置に置き換えたステップ(a)、(b)、(c)を実行し、さら当該リクエストが既にインストール済みの当該コンポーネントに対するものではない場合には、前記キャッシング計算装置のプロセッサが、当該リクエストを前記オリジナル計算装置にパスし、前記オリジナル計算装置のプロセッサが、当該リクエストをアプリケーションプログラムコンポーネントにより処理する
    ステップを含み、
    前記アプリケーションコンポーネントの使用状況を監視し、該使用状況により前記キャッシュ可能なアプリケーションプログラムコンポーネントにより処理することを決定する方法を、前記クライアント計算装置、前記キャッシング計算装置又は前記オリジナル計算装置のいずれかのプロセッサによって実行させることによって実施させるための命令を格納したことを特徴とする計算装置により読み取り可能な媒体。
  5. 当該キャッシュ可能なアプリケーションプログラムコンポーネントが、キャッシュ可能なアプリケーションプログラムを構成する唯一のコンポーネントであり、その結果、
    当該キャッシュ可能なアプリケーションプログラムコンポーネントをインストールすることにより、当該キャッシュ可能なアプリケーションプログラム全体がインストールれることを特徴とする請求項4に記載された媒体。
  6. クライアント計算装置であって、
    独立したオリジナル計算装置から既にインストール済みの、アプリケーションプログラムの、キャッシュ可能なアプリケーションプログラムコンポーネントと、
    前記キャッシュ可能なアプリケーションプログラムコンポーネントの実行のリクエストを傍受し、当該キャッシュ可能なアプリケーションプログラムコンポーネントに対する当該リクエストのいずれかを、当該キャッシュ可能なアプリケーションプログラムコンポーネントにより処理する処理指示コンポーネントと、
    少なくとも一つのプログラムの少なくとも一つのセクションを含む、各コンポーネントの少なくとも一部を記憶するメモリと、
    メモリに記憶された前記少なくとも一つのプログラムの前記少なくとも一つのセクションを実行することが可能であり、少なくとも前記処理指示コンポーネントを実行するように構成された、少なくとも一つのプロセッサとを含み、
    前記処理指示コンポーネントの機能によってさらに、当該リクエストが当該キャッシュ可能なアプリケーションプログラムコンポーネントに対するものではない場合には、前記クライアント計算装置のプロセッサが、当該リクエストを処理するコンポーネントと、前記処理指示コンポーネントとして機能するコンポーネントと、前記少なくとも一つのプログラムの少なくとも一つのセクションを含む、各コンポーネントの少なくとも一部を記憶するメモリと、前記メモリに記憶された前記少なくとも一つのプログラムの前記少なくとも一つのセクションを実行することが可能であり、少なくとも前記処理指示コンポーネントを実行するように構成された、少なくとも一つのプロセッサとを有するキャッシング計算装置にパスし、前記アプリケーションコンポーネントの使用状況を監視し、該使用状況により前記キャッシュ可能なアプリケーションプログラムコンポーネントにより処理することを決定することを特徴とするクライアント計算装置。
  7. 当該キャッシュ可能なアプリケーションプログラムコンポーネントが、キャッシュ可能なアプリケーションプログラムを構成する唯一のコンポーネントであり、その結果、当該キャッシュ可能なアプリケーションプログラム全体がインストールされることを特徴とする請求項6に記載された装置。
  8. 当該処理指示コンポーネントが、
    リクエストが、既にインストール済みのキャッシュ可能なアプリケーションプログラムコンポーネントのいずれかにより処理するよう指示された、アプリケーションプログラムコンポーネントリクエストを含むか否かを決定する、第1のハンドラと、
    既にインストール済みの当該アプリケーションプログラムコンポーネントのために前記リクエストを処理する第2のハンドラと、
    当該リクエストが、既にインストール済みのいずれかのキャッシュ可能なアプリケーションプログラムコンポーネントに指示された、アプリケーションプログラムリクエストを含むという、当該第1のハンドラによる決定に応じて、当該第1のハンドラから当該リクエストを受信し、当該リクエストが、既にインストール済みの当該アプリケーションプログラムコンポーネントに対するものであるという決定に応じて、当該リクエストを当該第2のハンドラに指示する、第3のハンドラを含むことを特徴とする請求項6に記載された装置。
  9. アプリケーションプログラムコンポーネントの使用量を監視するための、キャッシングコンポーネントを更に含むことを特徴とする請求項6に記載された装置。
  10. 当該キャッシングコンポーネントが当該オリジナル計算装置から一つあるいはそれ以上のインストレーションファイルをダウンロードすることによって、当該アプリケーションプログラムコンポーネントのいずれかを処理することを特徴とする請求項9に記載された装置。
  11. クライアント計算装置であって、
    独立したオリジナル計算装置からキャッシュされた、キャッシュ可能なアプリケーションプログラムコンポーネントを含む第1のコンポーネントと、
    当該オリジナル計算装置によ実行する代わりに、当該アプリケーションプログラムコンポーネントへ当該アプリケーションプログラムコンポーネントに対する実行のリクエストを転送し、当該アプリケーションプログラムコンポーネントのために該リクエストを処理する第2のコンポーネントと、
    少なくとも一つのプログラムの少なくとも一つのセクションを含む、各コンポーネントの少なくとも一部を記憶するメモリと、
    メモリに記憶された前記少なくとも一つのプログラムの前記少なくとも一つのセクションを実行することが可能であり、少なくとも前記第2のコンポーネントを実行するように構成された、少なくとも一つのプロセッサとを含み、
    当該実行のリクエストが当該アプリケーションプログラムコンポーネントに対するものではない場合には、前記クライアント計算装置のプロセッサが、当該実行のリクエストを、前記第1のコンポーネントの機能を有するコンポーネントと、前記第2のコンポーネントの機能を有するコンポーネントと、前記メモリの機能を有するメモリと、前記プロセッサの機能を有するプロセッサとを有するキャッシング計算装置にパスし、前記アプリケーションコンポーネントの使用状況を監視し、該使用状況により前記キャッシュ可能なアプリケーションプログラムコンポーネントにより処理することを決定することを特徴とするクライアント計算装置。
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/681,844 US6941351B2 (en) 2000-07-11 2001-06-15 Application program caching
US09/681844 2001-06-15

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 JP2002182924A (ja) 2002-06-28
JP4290909B2 true 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
US8831995B2 (en) * 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US7062567B2 (en) * 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded 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
EP1466261B1 (en) 2002-01-08 2018-03-07 Seven Networks, LLC Connection architecture for a mobile 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
US7912899B2 (en) 2002-09-06 2011-03-22 Oracle International Corporation Method for selectively sending a notification to an instant messaging device
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
US7941542B2 (en) * 2002-09-06 2011-05-10 Oracle International Corporation Methods and apparatus for maintaining application execution over an intermittent network connection
US8165993B2 (en) 2002-09-06 2012-04-24 Oracle International Corporation Business intelligence system with interface that provides for immediate user action
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
US7945846B2 (en) 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
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
WO2005069917A2 (en) 2004-01-21 2005-08-04 Qualcomm Incorporated Application-based value billing in a wireless subscriber network
US8812613B2 (en) 2004-06-03 2014-08-19 Maxsp Corporation Virtual application manager
US9357031B2 (en) * 2004-06-03 2016-05-31 Microsoft Technology Licensing, Llc Applications as a service
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
US8589323B2 (en) 2005-03-04 2013-11-19 Maxsp Corporation Computer hardware and software diagnostic and report system incorporating an expert system and agents
US8234238B2 (en) * 2005-03-04 2012-07-31 Maxsp Corporation Computer hardware and software diagnostic and report system
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
US8898319B2 (en) 2006-05-24 2014-11-25 Maxsp Corporation Applications and services as a bundle
US8811396B2 (en) 2006-05-24 2014-08-19 Maxsp Corporation System for and method of securing a network utilizing credentials
US9317506B2 (en) * 2006-09-22 2016-04-19 Microsoft Technology Licensing, Llc Accelerated data transfer using common prior data segments
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
US20080077622A1 (en) * 2006-09-22 2008-03-27 Keith Robert O Method of and apparatus for managing data utilizing configurable policies and schedules
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
US8175418B1 (en) 2007-10-26 2012-05-08 Maxsp Corporation Method of and system for enhanced data storage
US8645515B2 (en) 2007-10-26 2014-02-04 Maxsp Corporation Environment manager
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 インターナショナル・ビジネス・マシーンズ・コーポレーション 画面の再現を支援する装置及び方法
CA2806527A1 (en) 2010-07-26 2012-02-09 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
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
US8903954B2 (en) 2010-11-22 2014-12-02 Seven Networks, Inc. Optimization of resource polling intervals to satisfy mobile device requests
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
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
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
EP2661697B1 (en) 2011-01-07 2018-11-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
GB2517815A (en) 2011-04-19 2015-03-04 Seven Networks Inc Shared resource and virtual resource management in a networked environment
WO2012149443A1 (en) * 2011-04-27 2012-11-01 Seven Networks, Inc. Detection and filtering of malware based on traffic observations made in a distributed mobile traffic management system
GB2504037B (en) 2011-04-27 2014-12-24 Seven Networks Inc Mobile device which offloads requests made by a mobile application to a remote entity for conservation of mobile device and network resources
WO2012149434A2 (en) 2011-04-27 2012-11-01 Seven Networks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
EP2737742A4 (en) 2011-07-27 2015-01-28 Seven Networks Inc AUTOMATIC PRODUCTION AND DISTRIBUTION OF GUIDELINES INFORMATION ON MOBILE MOBILE TRANSPORT IN A WIRELESS NETWORK
EP2789137A4 (en) 2011-12-06 2015-12-02 Seven Networks Inc SYSTEM OF REDUNDANTLY CLUSTERED MACHINES FOR PROVIDING TILTING MECHANISMS IN MOBILE TRAFFIC MANAGEMENT AND NETWORK RESOURCE PRESERVATION
US8934414B2 (en) 2011-12-06 2015-01-13 Seven Networks, Inc. Cellular or WiFi mobile traffic optimization based on public or private network destination
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
WO2013086455A1 (en) 2011-12-07 2013-06-13 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
EP2792188B1 (en) 2011-12-14 2019-03-20 Seven Networks, LLC Mobile network reporting and usage analytics system and method using aggregation of data in a distributed traffic optimization system
WO2013103988A1 (en) 2012-01-05 2013-07-11 Seven Networks, Inc. Detection and management of user interactions with foreground applications on a mobile device in distributed caching
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
WO2014011216A1 (en) 2012-07-13 2014-01-16 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
US6941351B2 (en) 2005-09-06
JP2002182924A (ja) 2002-06-28
EP1204025A2 (en) 2002-05-08
JP2006092569A (ja) 2006-04-06
EP1204025B1 (en) 2018-09-19
US20020035674A1 (en) 2002-03-21
US20050273766A1 (en) 2005-12-08
JP5072214B2 (ja) 2012-11-14

Similar Documents

Publication Publication Date Title
JP4290909B2 (ja) アプリケーションプログラムキャッシング
US6877025B2 (en) Integrated JSP and command cache for web applications with dynamic content
US7702800B2 (en) Detecting and handling affinity breaks in web applications
US6192398B1 (en) Remote/shared browser cache
US11573816B1 (en) Prefetching and managing container images using cluster manifest
US8631397B2 (en) Virtualized application image patching
US8453121B2 (en) Managing the tracing of the execution of a computer program
US7178143B2 (en) Multi-version hosting of application services
JP3980675B2 (ja) ネットワーク独立型ファイル・シャドウイング
US20020116582A1 (en) Batching of invalidations and new values in a web cache with dynamic content
US7117216B2 (en) Method and apparatus for runtime merging of hierarchical trees
US6910082B1 (en) Method, system and program products for reducing data movement within a computing environment by bypassing copying data between file system and non-file system buffers in a server
JP3481054B2 (ja) ゲートウェイ装置、クライアント計算機およびそれらを接続した分散ファイルシステム
US20100325363A1 (en) Hierarchical object caching based on object version
WO2004097668A1 (en) Accessing data based on user identity
US20020116583A1 (en) Automatic invalidation dependency capture in a web cache with dynamic content
JP2005018773A (ja) キャッシュエントリを無効化する汎用依存関係モデル
US20020111992A1 (en) JSP composition in a cache for web applications with dynamic content
US8930518B2 (en) Processing of write requests in application server clusters
US6823360B2 (en) Cofetching in a command cache
US20100313207A1 (en) Service provider management device, service provider management program, and service provider management method
US20020112125A1 (en) Command caching to improve network server performance
US7813964B2 (en) Click and run software purchasing
US20090125569A1 (en) Dynamic replication on demand policy based on zones
US20060059251A1 (en) Method and system for request management processing

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