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

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

Info

Publication number
JP5072214B2
JP5072214B2 JP2005323748A JP2005323748A JP5072214B2 JP 5072214 B2 JP5072214 B2 JP 5072214B2 JP 2005323748 A JP2005323748 A JP 2005323748A JP 2005323748 A JP2005323748 A JP 2005323748A JP 5072214 B2 JP5072214 B2 JP 5072214B2
Authority
JP
Japan
Prior art keywords
computing device
application program
request
component
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
JP2005323748A
Other languages
English (en)
Other versions
JP2006092569A (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 JP2006092569A publication Critical patent/JP2006092569A/ja
Application granted granted Critical
Publication of JP5072214B2 publication Critical patent/JP5072214B2/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

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

Claims (9)

  1. クライアント計算装置、キャッシング計算装置又はオリジナル計算装置のいずれかのプロセッサが、アプリケーションプログラムを実行するコンピュータ実行方法であって、前記アプリケーションプログラムは、前記オリジナル計算装置にのみプリインストールされ、前記コンピュータ実行方法は、
    (a)前記クライアント計算装置のプロセッサが、周期的に、前記キャッシング計算装置および前記オリジナル計算装置における前記アプリケーションプログラムの第1の使用状況を監視するステップと、
    (b)前記クライアント計算装置のプロセッサが、前記第1の使用状況に基づき、前記アプリケーションプログラムのコンポーネントの全部または一部をキャッシュすることを決定するステップと、
    (c)前記クライアント計算装置のプロセッサが、前記オリジナル計算装置から、前記第1の使用状況に基づきキャッシュすることを決定したアプリケーションプログラムのコンポーネントの全部または一部をダウンロードし、インストールするステップと、
    (d)前記キャッシング計算装置のプロセッサが、周期的に、前記オリジナル計算装置における前記アプリケーションプログラムの第2の使用状況を監視するステップと、
    (e)前記キャッシング計算装置のプロセッサが、前記第2の使用状況に基づき、前記アプリケーションプログラムのコンポーネントの全部または一部をキャッシュすることを決定するステップと、
    (f)前記キャッシング計算装置のプロセッサが、前記オリジナル計算装置から、前記第2の使用状況に基づきキャッシュすることを決定したアプリケーションプログラムのコンポーネントの全部または一部をダウンロードし、インストールするステップと、
    (g)前記クライアント計算装置のプロセッサが、任意の処理を実行するためのリクエストを受信するステップと、
    (h)前記クライアント計算装置のプロセッサが、前記リクエストが、前記第1の使用状況に基づきインストールしたアプリケーションプログラムのコンポーネントに対するものであるか否かを前記リクエストに含まれる指定により決定するステップと、
    (i)前記リクエストが前記第1の使用状況に基づきインストールしたアプリケーションプログラムのコンポーネントに対するものであるという決定に応じて、前記クライアント計算装置のプロセッサが、前記リクエストを前記第1の使用状況に基づきインストールしたアプリケーションプログラムのコンポーネントにより処理するステップと、
    (j)前記リクエストが前記第1の使用状況に基づきインストールしたアプリケーションプログラムのコンポーネントに対するものでないという決定に応じて、前記クライアント計算装置のプロセッサが、前記リクエストを前記キャッシング計算装置にパスし、前記キャッシング計算装置において再度、前記クライアント計算装置を前記キャッシング計算装置に、および前記第1の使用状況を前記第2の使用状況にそれぞれ置き換えた前記ステップ(g)乃至(j)を実行し、さらに前記リクエストが前記第2の使用状況に基づきインストールしたアプリケーションプログラムのコンポーネントに対するものでないという決定に応じて、前記キャッシング計算装置のプロセッサが、前記リクエストを前記オリジナル計算装置にパスし、前記リクエストを前記プリインストールしたアプリケーションプログラムのコンポーネントにより処理するステップと
    を備えたことを特徴とするコンピュータ実行方法。
  2. 前記アプリケーションプログラムのコンポーネントが、前記アプリケーションプログラム内の唯一のコンポーネントを構成し、その結果、前記アプリケーションプログラムのコンポーネントをインストールすることによって、前記アプリケーションプログラムの全体がインストールされることを特徴とする請求項1に記載されたコンピュータ実行方法。
  3. 前記ステップ(c)および(f)は、
    前記オリジナル計算装置から一つあるいはそれ以上のインストレーションファイルをダウンロードするステップと、
    前記インストレーションファイルを利用することにより、前記アプリケーションプログラムのコンポーネントの全部または一部を前記オリジナル計算装置からダウンロードし、インストールするステップと
    を含むことを特徴とする請求項1に記載されたコンピュータ実行方法。
  4. 前記ステップ(b)および(e)は、
    前記アプリケーションプログラムのコンポーネントの全部または一部をインストールするために必要な、記憶装置の空き容量を確認するステップと、
    前記アプリケーションプログラムのコンポーネントの全部または一部が、インストールするための前記クライアント計算装置または前記キャッシング計算装置に対し、コンパチブルであるか否かを確認するステップと、
    前記空き容量の確認および/または前記コンパチブルであるか否かの確認に基づき、前記アプリケーションプログラムのコンポーネントの全部または一部をキャッシュすることを決定するステップと
    を含むことを特徴とする請求項1に記載されたコンピュータ実行方法。
  5. 少なくともクライアント計算装置およびキャッシング計算装置から構成されるシステムであって、
    前記クライアント計算装置は、
    周期的に、前記キャッシング計算装置およびオリジナル計算装置におけるアプリケーションプログラムの第1の使用状況を監視し、前記第1の使用状況に基づき、前記アプリケーションプログラムのコンポーネントの全部または一部をキャッシュすることを決定し、前記第1の使用状況に基づきキャッシュすることを決定したアプリケーションプログラムのコンポーネントの全部または一部を、前記オリジナル計算装置からダウンロードし、インストールする第1のコンポーネントであって、前記アプリケーションプログラムは、前記オリジナル計算装置にのみプリインストールされる、第1のコンポーネントと、
    前記アプリケーションプログラムのコンポーネントの実行のリクエストを受信し、前記リクエストを、前記第1の使用状況に基づきインストールしたアプリケーションプログラムのコンポーネントにより処理させ、前記リクエストが前記第1の使用状況に基づきインストールしたアプリケーションプログラムのコンポーネントに対するものでないという決定に応じて、前記リクエストを前記キャッシング計算装置にパスする第2のコンポーネントと、
    少なくとも一つのメモリと、
    少なくとも一つのプロセッサとを有し
    前記キャッシング計算装置は、
    周期的に、前記オリジナル計算装置におけるアプリケーションプログラムの第2の使用状況を監視し、前記第2の使用状況に基づき、前記アプリケーションプログラムのコンポーネントの全部または一部をキャッシュすることを決定し、前記第2の使用状況に基づきキャッシュすることを決定したアプリケーションプログラムのコンポーネントの全部または一部を、前記オリジナル計算装置からダウンロードし、インストールする第3のコンポーネントと、
    前記リクエストを、前記第2の使用状況に基づきインストールしたアプリケーションプログラムのコンポーネントにより処理させ、前記リクエストが前記第2の使用状況に基づきインストールしたアプリケーションプログラムのコンポーネントに対するものでないという決定に応じて、前記リクエストを前記オリジナル計算装置にパスする第4のコンポーネントと、
    少なくとも一つのメモリと、
    少なくとも一つのプロセッサとを有することを特徴とするシステム
  6. 前記アプリケーションプログラムのコンポーネントが、アプリケーションプログラムを構成する唯一のコンポーネントであり、その結果、前記アプリケーションプログラムのコンポーネントをインストールすることによって、前記アプリケーションプログラム全体がインストールされることを特徴とする請求項に記載されたシステム
  7. 前記第2のコンポーネントおよび前記第4のコンポーネントは、
    前記リクエストが、前記インストールしたアプリケーションプログラムのコンポーネントに対するアプリケーションプログラムコンポーネントリクエストを含むか否かを前記リクエストに含まれる指定により決定する、第1のハンドラと、
    前記インストールしたアプリケーションプログラムのコンポーネントに対するリクエストを処理する第2のハンドラと、
    前記リクエストが、前記アプリケーションプログラムコンポーネントリクエストを含むという、前記第1のハンドラによる決定に応じて、前記第1のハンドラから前記リクエストを受信し、前記リクエストが、前記インストールしたアプリケーションプログラムのコンポーネントに対するものであるという決定に応じて、前記リクエストを前記第2のハンドラに転送する第3のハンドラと
    を含むことを特徴とする請求項に記載されたシステム
  8. 前記第1のコンポーネントおよび前記第3のコンポーネントはさらに、前記オリジナル計算装置から一つあるいはそれ以上のインストレーションファイルをダウンロードし利用することにより、前記アプリケーションプログラムのコンポーネントの全部または一部を前記オリジナル計算装置からダウンロードし、インストールすることを特徴とする請求項に記載されたシステム
  9. 前記第1のコンポーネントおよび前記第3のコンポーネントによる、前記アプリケーションプログラムのコンポーネントの全部または一部をキャッシュすることの決定には、
    前記アプリケーションプログラムのコンポーネントの全部または一部をインストールするために必要な、記憶装置の空き容量を確認することと、
    前記アプリケーションプログラムのコンポーネントの全部または一部が、インストールするための前記クライアント計算装置または前記キャッシング計算装置に対し、コンパチブルであるか否かを確認することと、
    前記空き容量の確認および/または前記コンパチブルであるか否かの確認に基づき、前記アプリケーションプログラムのコンポーネントの全部または一部をキャッシュすることを決定することと
    を含むことを特徴とする請求項に記載されたシステム
JP2005323748A 2000-07-11 2005-11-08 アプリケーションプログラムキャッシング Expired - Lifetime JP5072214B2 (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 Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2006092569A JP2006092569A (ja) 2006-04-06
JP5072214B2 true JP5072214B2 (ja) 2012-11-14

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 Before (1)

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

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
US8165993B2 (en) 2002-09-06 2012-04-24 Oracle International Corporation Business intelligence system with interface that provides for immediate user action
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
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
US7912899B2 (en) 2002-09-06 2011-03-22 Oracle International Corporation Method for selectively sending a notification to an instant messaging device
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
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
US10043170B2 (en) 2004-01-21 2018-08-07 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
US20080077622A1 (en) * 2006-09-22 2008-03-27 Keith Robert O Method of and apparatus for managing data utilizing configurable policies and schedules
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
US8423821B1 (en) 2006-12-21 2013-04-16 Maxsp Corporation Virtual recovery server
US7844686B1 (en) 2006-12-21 2010-11-30 Maxsp Corporation Warm standby appliance
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
JP5620578B2 (ja) 2010-07-26 2014-11-05 セブン ネットワークス インコーポレイテッド 複数のアプリケーションにわたるモバイルネットワークトラフィック調整
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
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
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
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
US8316098B2 (en) 2011-04-19 2012-11-20 Seven Networks Inc. Social caching for device resource sharing and management
GB2493473B (en) 2011-04-27 2013-06-19 Seven Networks Inc System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
GB2505585B (en) 2011-04-27 2015-08-12 Seven Networks Inc Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
PL2702524T3 (pl) * 2011-04-27 2018-02-28 Seven Networks Llc Wykrywanie i filtrowanie złośliwego oprogramowania, oparte na obserwacji ruchu wykonywanego w rozproszonym układzie zarządzania ruchem w sieciach mobilnych
WO2013015994A1 (en) 2011-07-27 2013-01-31 Seven Networks, Inc. Monitoring mobile application activities for malicious traffic on a mobile device
US8934414B2 (en) 2011-12-06 2015-01-13 Seven Networks, Inc. Cellular or WiFi mobile traffic optimization based on public or private network destination
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
WO2013086447A1 (en) 2011-12-07 2013-06-13 Seven Networks, Inc. Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9208123B2 (en) 2011-12-07 2015-12-08 Seven Networks, Llc Mobile device having content caching mechanisms integrated with a network operator for traffic alleviation in a wireless network and methods therefor
US20130159511A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. System and method for generating a report to a network operator by distributing aggregation of data
US8909202B2 (en) 2012-01-05 2014-12-09 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
US20130268656A1 (en) 2012-04-10 2013-10-10 Seven Networks, Inc. Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system 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
US20140177497A1 (en) 2012-12-20 2014-06-26 Seven Networks, Inc. Management of mobile device radio state promotion and demotion
US9241314B2 (en) 2013-01-23 2016-01-19 Seven Networks, Llc Mobile device with 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
EP1204025A2 (en) 2002-05-08
JP4290909B2 (ja) 2009-07-08
JP2002182924A (ja) 2002-06-28
EP1204025B1 (en) 2018-09-19
US20020035674A1 (en) 2002-03-21
US20050273766A1 (en) 2005-12-08
EP1204025A3 (en) 2006-06-14
US6941351B2 (en) 2005-09-06
JP2006092569A (ja) 2006-04-06

Similar Documents

Publication Publication Date Title
JP5072214B2 (ja) アプリケーションプログラムキャッシング
US9483256B2 (en) Virtualized application image patching
US11573816B1 (en) Prefetching and managing container images using cluster manifest
US6192398B1 (en) Remote/shared browser cache
US7702800B2 (en) Detecting and handling affinity breaks in web applications
US6877025B2 (en) Integrated JSP and command cache for web applications with dynamic content
US7178143B2 (en) Multi-version hosting of application services
US8453121B2 (en) Managing the tracing of the execution of a computer program
JP3980675B2 (ja) ネットワーク独立型ファイル・シャドウイング
US7779402B2 (en) System and method for fine grain method update of an application to provide continuous availability
US20020116582A1 (en) Batching of invalidations and new values in a web cache with dynamic content
JP3481054B2 (ja) ゲートウェイ装置、クライアント計算機およびそれらを接続した分散ファイルシステム
EP1265130A2 (en) Method and apparatus for runtime merging of hierarchical trees
CN111475180A (zh) 更新客户端缓存的方法和系统
WO2004097668A1 (en) Accessing data based on user identity
US20080270524A1 (en) Distributing files over a computer network
US20100325363A1 (en) Hierarchical object caching based on object version
WO2004097669A2 (en) Accessing data stored in multiple locations
US20120166572A1 (en) Cache sharing among branch proxy servers via a master proxy server at a data center
WO2012087991A2 (en) Policy-based application delivery
US20020111992A1 (en) JSP composition in a cache for web applications with dynamic content
JP2005519351A (ja) 分散ピアツーピア共用技術へクライアントを奨励する方法および装置
US7813964B2 (en) Click and run software purchasing
US6823360B2 (en) Cofetching in a command cache
US20100313207A1 (en) Service provider management device, service provider management program, and service provider management method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120427

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120727

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120817

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

R150 Certificate of patent or registration of utility model

Ref document number: 5072214

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

Year of fee payment: 3

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term