JP2012520504A - デバイスおよびウェブ・サービスにわたってブラウザー・キャッシュを同期させるためのプログラミング・モデル - Google Patents
デバイスおよびウェブ・サービスにわたってブラウザー・キャッシュを同期させるためのプログラミング・モデル Download PDFInfo
- Publication number
- JP2012520504A JP2012520504A JP2011554064A JP2011554064A JP2012520504A JP 2012520504 A JP2012520504 A JP 2012520504A JP 2011554064 A JP2011554064 A JP 2011554064A JP 2011554064 A JP2011554064 A JP 2011554064A JP 2012520504 A JP2012520504 A JP 2012520504A
- Authority
- JP
- Japan
- Prior art keywords
- browser cache
- synchronization
- browser
- data object
- computing environment
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Abstract
コンピューター・ユーザーは、1組のコンピューターを含む計算環境を用いることができる。1組のコンピューターは、それぞれ、アプリケーション・リソースおよびユーザー発生データー・ファイルを含む多くのタイプのデーター・オブジェクトを含むブラウザー・キャッシュを有するウェブ・ブラウザーを特徴とする。しかしながら、ブラウザー・キャッシュの内容は、コンピューターの計算環境に大きく寄与し、各コンピューターによって提示される計算環境は広がり、一貫性のない計算環境が提供されることもある。代わりに、計算環境を構成するコンピューターのブラウザー・キャッシュの内容を、全コンピューターにわたって同期させることができる。加えて、ブラウザー・キャッシュを計算環境の他のデーター・オブジェクト(ファイルシステムの関連部分のような)と同期させることができ、同期は、アプリケーションとは独立して実行するブラウザー外部プロセスとして、ブラウザーが実行していなくても、実現することができる。そして、ウェブ・アプリケーションが相互作用することができるプログラム・アクセスによって、同期を露出させることができる。
【選択図】図3
【選択図】図3
Description
[0001] ウェブサーバーは、HTMLページ、メディア・オブジェクト、データー・ストア、および実行可能スクリプトというような1組のデーター・オブジェクトを格納することが多い。これらのデーターは、ウェブ・ブラウザーに供給され、このウェブ・ブラウザーによってレンダリングされて、ウェブサイトを構成する1組のウェブ・ページを提示する。ウェブ・ブラウザーは、通例、ブラウザー・キャッシュを含み、受信した項目が、その後にレンダリングされるウェブ・ページにおける再利用のために格納されることによって、ウェブ・ブラウザーの性能を向上し、ウェブサーバーのリソースを節約し、ウェブサーバーにアクセスできないときには、任意にウェブ・ページをレンダリングする限定的な能力を提供することができる。コンピューター・システム内部にある他のタイプのデーター・オブジェクト(ユーザー文書、アプリケーションおよびオペレーティング・システム・バイナリー、ならびにアプリケーション・コンフィギュレーション情報というような)とは対照的に、ブラウザー・キャッシュに含まれるデーター・オブジェクトは、通例では、一時的で使い捨てと見なされていた。
[0002] この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を限定するために用いられることを意図するのでもない。
[0003] ウェブ技術における開発の結果、一層洗練されたタイプのウェブサイトが得られることとなった。これらのウェブサイトは、ウェブ・ブラウザー内部で実行するウェブ・アプリケーションを組み込むことができる。このようなウェブサイトおよびウェブ・アプリケーションを備えているデーター・オブジェクトは、ブラウザー・キャッシュに格納されることが多く、そしてウェブ・ブラウザーがネットワークに接続されていないときや、ウェブサーバーがオフラインになっているときというように、ウェブサーバーにアクセスできないときに、このようなウェブサイトのレンダリング、およびこのようなウェブ・アプリケーションの実行を可能にすることが望ましい場合がある。また、このようなデーター・オブジェクトは、様々なタイプのブラウザー・キャッシュ(例えば、ブラウザーがホストするアプリケーションのアプリケーション・リソースを格納するアプリケーション・キャッシュ、ならびにHTML文書および画像のような、ウェブサイトから引き出されるデーター・オブジェクトを格納するコンテンツ・キャッシュ)に格納することもできる。
[0004] 現世代のユーザーは、1組のコンピューター(例えば、携帯用コンピューター、ワークステーション、およびセルフォン・デバイス)を利用することが多く、これらのコンピューターがユーザーに、 ユーザーの文書、インストールされたアプリケーション、アプリケーションおよびオペレーティング・システムのコンフィギュレーション情報、ユーザー・プロファイル、種々の個人の表現(例えば、住所録に格納されている連絡先)等のような、計算環境を集合的に提示することができる。更に、これらのコンピューターの特定の態様を同期させて、このようなコンピューター全てにわたって計算環境の一貫性を改善することもできる。しかしながら、それぞれのコンピューターが、ブラウザー・キャッシュを有するブラウザーを備えていることもあり、その内容は、ユーザーが各コンピューターと異なる対話処理を行うので、異なる可能性がある。ブラウザー・キャッシュの内容が、オフラインで利用可能なアプリケーションや保存されているユーザー文書のような、1組の重要なデーター・オブジェクトを含み、これらが増々増えて行くと、このようなコンピューター間におけるこのようなウェブ・キャッシュの分化(divergence)のために、利用可能なアプリケーションの食い違い(inconsistency)、格納されている文書のバージョン不一致(conflicting)、およびメディア・ライブラリの不一致(discrepancy)というような、コンピューター特定差異(computer-specific differences)に至る可能性がある。
[0005] このような食い違いやバージョン不一致を低減するためには、このようなコンピューターのブラウザー・キャッシュを同期させるとよい。計算環境を共有する1組のコンピューター間において、あるコンピューターは、変化を見いだすためにそのブラウザー・キャッシュの状態を監視し、種々の同期方針にしたがって、他のコンピューターのブラウザー・キャッシュと同期するように構成することができる。このブラウザー・キャッシュの同期は、このようなコンピューター間における全体的な計算環境の同期に含めることもでき、これによって、同期プロセスの効率を高め、コンピューター・リソースを節約することができる。加えて、ウェブ・ブラウザーにおいて実行するアプリケーションが、種々のデーター・オブジェクトの同期を要求することにより、そしてブラウザー・キャッシュの同期方針についての情報を特定することによるというようにして、ブラウザー・キャッシュの同期と相互作用することを可能にするために、プログラム・インターフェースを設けることもできる。ユーザーが利用する種々のコンピューターのブラウザー・キャッシュの一貫性を維持することによって、これらの技法は、ユーザーのデーター・オブジェクトおよび計算環境の一貫性を促進することができる。
[0006] 以上の目的および関連する目的に関連して、以下の説明および添付図面は、ある種の例示的態様および実施態様を明示する。これらは、しかしながら、1つ以上の態様を採用することができる種々の方法の内少数を示すに過ぎない。本開示の他の態様、利点、および新規な特徴は、以下の詳細な説明を添付図面と合わせて考慮することから明白となろう。
[0013] これより、図面を参照しながら、特許請求する主題について説明する。図面では、全体を通じて、同様のエレメントを指すために同様の参照番号が用いられている。以下の説明では、説明の目的上、特許請求する主題の完全な理解を得るために、多数の具体的な詳細を明示する。しかしながら、特許請求する主題は、これら具体的な詳細がなくても実施できることは明らかであろう。一方、特許請求する主題を記載し易くするために、構造はブロック図形式で示されている。
[0014] 計算機の分野では、ウェブサーバーが種々のビジターにウェブ・ページのコンテンツを提供することができる。早期に作成されたウェブサイトでは、このようなコンテンツは、HTML文書、このようなHTML文書に組み込まれたグラフィクス、およびクライアント側のJavaScript(登録商標)スクリプトというような、単純なタイプのデーター・オブジェクトのみを伴うのが通例であった。これらのデーター・オブジェクトは、ウェブ・ブラウザーに配信され、このウェブ・ブラウザーが、ユーザーに代わって、ウェブサイトを構成するウェブ・ページをレンダリングしていた。
[0015] ウェブ・ブラウザー開発の初期に、ブラウザー・キャッシュが開発されたが、このようなデーター・オブジェクトの一部または全部を、後に再利用するために、受信時に格納することができ、これによって、データー・オブジェクトの冗長なダウンロードを避け、サーバーにおける計算資源の消費を節約することによって、ウェブ・ブラウザーの性能を改善した。また、ブラウザー・キャッシュに格納されたデーター・オブジェクトは、サーバーがアクセス不能になった場合、例えば、サーバーがオフラインになっているとき、またはコンピューターがネットワークに接続されていないときに、コンテンツの表現をレンダリングするためにも用いることができた。このようなデーター・オブジェクトのキャッシングは、冗長なネットワーク伝送を低減することによって、ウェブ・ブラウザーの性能を向上させたかもしれないが、これらのデーター・オブジェクトは一時的および使い捨てと見なされていた。多くのブラウザーは、一時的な空間節約メカニズムとして、ブラウザー・キャッシュの内容を削除する選択肢を含む。何故なら、その項目は、ユーザーが次にウェブサイトを訪問している間に再度得られることが多いからである。
[0016] 現世代のウェブサイトは、早期に行われたウェブ開発よりも進んだタイプのコンテンツを伴うことが多い。即ち、ウェブサイトは、実行可能バイナリーを含む1つ以上のアプリケーション、データー・ソース、およびユーザーが発生した文書のようなユーザー・データー・オブジェクトを組み込むことができる。また、これらのアプリケーションは、多様な1組のデーター・オブジェクトも含み、これらはウェブ・ブラウザーがアプリケーションを提示する際に用いることができ、ブラウザー・キャッシュに格納することができる。更に、キャッシュ・ブラウザーは、ウェブサイトにアクセスできないとき(例えば、コンピューターがネットワークに接続されていないとき、またはウェブサイトがオフラインになっているとき)に、このウェブサイトのある種の態様へのアクセスを提供するために用いることができるデーター・オブジェクトも格納することができる。これら拡張された能力を考慮して、ブラウザー・キャッシュに格納されているデーター・オブジェクトは、ユーザーの計算環境の大部分を構成する。また、現世代のブラウザーは、異なるタイプの複数のキャッシュも設けている。例えば、ウェブ・ブラウザーにおいて実行することができるアプリケーションのアプリケーション・リソースを構成するデーター・オブジェクトをブラウザー・アプリケーション・キャッシュに格納することができ、一方、HTML文書およびその中に埋め込まれている画像のような、行った先のウェブサイトから引き出したデーター・オブジェクトは、ブラウザー・コンテンツ・キャッシュに格納することができる。双方のタイプのキャッシュは、同様にウェブ・ブラウザーの動作(performance)を促進することができるが、特定のキャッシュにリソースを格納すると、追加の利点が得られる(例えば、ユーザーが、アプリケーション・キャッシュの内容を保存しつつ、コンテンツ・キャッシュを空にする要求を行うことができる場合もある)。
[0017] 最近の計算環境における他のトレンドでは、ユーザーが利用できるコンピューターの範囲の拡大を伴う。例えば、ユーザーがパーソナル・ワークステーション、ノートブック型、パーム型、またはポケット型の携帯用コンピューター、セルフォン、メディア・プレーヤー、カメラ、およびゲーミング・コンソールを利用できる場合が多い。これらのコンピューターは目的やシナリオを特殊化していることもあるが、ユーザーはこれらの全てを一緒にして、計算環境を構成すると見なすこともできる。更に、計算環境は広く多様なデーター・オブジェクト(例えば、メディア・オブジェクト、文書、アプリケーション、およびオペレーティング・システムの優先項目)を備えることができ、これらのデーター・オブジェクトをこのようなコンピューター全てにわたって共有することができる。例えば、これらのデーター・オブジェクトを自動的に同期させて、一貫性を高めたユーザー体験を提供することができ、1つのコンピューターにおける計算環境の変化(例えば、新たなメディア・オブジェクトまたはアプリケーションの追加、あるいは文書の変更)を自動的に計算環境全体に伝えることができる。
[0018] 図1は、ユーザーが1組のコンピューターを動作させることができるシナリオ例10を示す。1組のコンピューターには、ワークステーション14、ノートブック型コンピューター28、およびセルフォン・デバイス30が含まれ、これらは、1組のデーター・オブジェクト、例えば、1組の文書32を格納する計算環境18を共有する。また、各コンピューターにはブラウザー16が実装されており、ブラウザー16は、1組のデーター・オブジェクト24を備えているアプリケーション22をレンダリングするために用いることができる。1組のデーター・オブジェクト24は、それぞれのコンピューターに配信され、ブラウザー16と関連付けられているブラウザー・キャッシュ20に格納することができる。データー・オブジェクト24は、例えば、アプリケーション22のロジックおよびユーザー・インターフェースを構成するアプリケーション・バイナリー、ユーザー12によって選択された種々の設定値および好みを格納するアプリケーション・コンフィギュレーション、ならびにアプリケーション22によって作成された種々の文書を含むことができ、これらは、ブラウザー16においてユーザー12に、ユーザー文書26として提示することができる。1組の文書32のような、追加のデーター・オブジェクトを計算環境18に格納することもできるが、ブラウザー・キャッシュ20の外側である。更に、これらのコンピューターの計算環境18は、データー・オブジェクトの一部または全部を共有することができる。例えば、計算環境18が共有されるコンピューターの全てでアクセスを可能にするために、計算環境18にデーター・オブジェクトとして格納されている文書32をコンピューター間で共有することができる。
[0019] しかしながら、これら種々のコンピューターの各々がブラウザー・キャッシュを有するブラウザーを備えており、このようなブラウザー・キャッシュがユーザーの計算環境の大部分を構成するデーター・オブジェクトを組み込んでいる場合、問題が発生する場合がある。早期に作成されたブラウザーにおけるブラウザー・キャッシュは、一時的で使い捨てのデーター・オブジェクトを格納するだけであったので、計算環境においてデーター・オブジェクトが同期されても、コンピューターのブラウザー・キャッシュはこの同期には含まれることができなかった。したがって、ユーザーの計算環境を構成する種々のコンピューターのブラウザー・キャッシュは広がって行き、異なるコンピューターには異なる計算環境ができてしまう(例えば、異なるバージョンの文書がブラウザー・キャッシュに格納されたり、異なる組のブラウザー格納アプリケーションが異なるコンピューターにおいて利用可能になることもある)。更に、図1のシナリオ例10に示すように、計算環境18における文書32および他のデーター・オブジェクトがコンピューター間において自動的に同期されても、それぞれのブラウザー・キャッシュ20の内容は同期から外れることがある。第1の例として、第1文書(「DOC1」)を構成するデーター・オブジェクト24が各コンピューターにおいて異なるバージョンで存在するかもしれない。これが生ずる可能性があるのは、これらの文書が、異なる時点において、同期されていない異なるデバイスで更新された場合である。第2の例として、データー・オブジェクト24が1つのブラウザー・キャッシュ20にはあるが、他のブラウザー・キャッシュ20にはない場合がある。例えば、「DOC3」と称するデーター・オブジェクト24がワークステーション14のブラウザー・キャッシュ20に含まれているが、ノートブック型コンピューター28のブラウザー・キャッシュ20には含まれていない。第3の例として、一部のコンピューターには、アプリケーション22がオフライン・アクセスのために格納されているが、他のコンピューターには格納されていない場合がある。例えば、このシナリオ例10では、「アプリケーション」アプリケーション20がワークステーション14およびノートブック型コンピューター28にオフライン・アクセスのために格納されているが、セルフォーン・デバイス30には格納されていない。これらの不一致のうち一部はユーザー12の選択時に(例えば、セルフォン・デバイス30からアプリケーション22を除外するためのユーザー12からの命令)、または論理的な根本的理由(例えば、記憶空間、性能、またはハードウェアの限界のために、セルフォン・デバイス30によってアプリケーション22を実行することができない)に基づいて発生する場合もあるが、他の場合では、これらの不一致は望ましくなくそして回避可能である。しかしながら、ユーザー12の計算環境を構成するコンピューターのブラウザー・キャッシュ20を同期させるメカニズムがないために発生する。
[0020] 図2は、この技術の実施形態を説明するシナリオ例40を示す。図2のシナリオ例40では、ワークステーション14、ノートブック型コンピューター28、およびセルフォン・デバイス30が、この場合も、それぞれブラウザー16を備えることができる。ブラウザー16は、アプリケーション22に属することができるような、データー・オブジェクト24を格納するように構成されているブラウザー・キャッシュ20と結合されている。また、これらのコンピューターは、集合的に、計算環境18を構成することができ、この計算環境18は、このような全てのコンピューター間で共有されている。これらのコンピューターは、ユーザーに一層一貫性のある計算環境を提示するために、このようなコンピューター間で同期させるべき1組のデーター・オブジェクト(文書32のような)を含む。しかしながら、このシナリオ例40では、これらのコンピューターの内1つ以上は、システム例42も備えることができる。システム例42は、それぞれのコンピューターのブラウザー16のブラウザー・キャッシュ20を、他のコンピューターのブラウザー16のブラウザー・キャッシュ20のような、リモート・コンピューターのリモート・ストアと同期させるように構成されている。システム例42は、ブラウザー・キャッシュ監視コンポーネント44を備えることができる。ブラウザー・キャッシュ監視コンポーネント44は、ブラウザー・キャッシュ20を監視することができ、キャッシュされているデーター・オブジェクト24の作成、編集、または削除というような、ブラウザー・キャッシュ20へのデーター・オブジェクト24の書き込みを検出するように構成されている。また、システム例42は、ブラウザー・キャッシュ同期コンポーネント46も備えることができる。ブラウザー・キャッシュ同期コンポーネント46は、ブラウザー・キャッシュ監視コンポーネント44が書き込みを検出したときに、ブラウザー・キャッシュ20をリモート・ストア(他のコンピューターのブラウザー・キャッシュ20)と同期させるように構成することができる。第1の例として、セルフォン・デバイス30に実装されているブラウザー・キャッシュ監視コンポーネント44は、最新バージョンの「DOC1」データー・オブジェクト24のブラウザー・キャッシュ20への書き込みを検出することができ、(例えば、直接ブラウザー・キャッシュ20と対話処理することにより、ブラウザー・キャッシュ20への書き込みのために、データー・オブジェクト24をノートブック型コンピューター28のブラウザー・キャッシュ同期コンポーネント46に供給することにより等で)データー・オブジェクト24をノート・ブック型コンピューター28のブラウザー・キャッシュ20に配信することができる。ノートブック型コンピューター28のブラウザー・キャッシュ監視コンポーネント44は、一方、「DOC1」データー・オブジェクト24の書き込み(データー・オブジェクト24の早期1.1バージョンを入れ替える)を検出することができ、ブラウザー・キャッシュ同期コンポーネント46は、更新データー・オブジェクト24をワークステーション14のブラウザー・キャッシュ20に配信することができる。
[0021] 図2に示す第2の例として、ブラウザー・キャッシュ監視コンポーネント44は、「DOC3」データー・オブジェクト24の書き込みを検出し、このデーター・オブジェクト24がノートブック型コンピューター28のブラウザー・キャッシュ20にはないことを検出することができ、この検出時に、ワークステーション14のブラウザー・キャッシュ同期コンポーネント46は、「DOC3」データー・オブジェクト24をノートブック型コンピューター28のブラウザー・キャッシュ20に配信することができる。第3の例として、ノートブック型コンピューター28のブラウザー・キャッシュ監視コンポーネント20は、アプリケーション22のアプリケーション・リソースを構成するデーター・オブジェクト24の格納を検出することができ、ノートブック・コンピューター28のブラウザー・キャッシュ同期コンポーネント46は、セルフォン・デバイス30のブラウザー・キャッシュ20にこのようなデーター・オブジェクト24がないことを検出すると、これらのデーター・オブジェクト24をセルフォン・デバイス30に送ることができる。このように、種々のコンピューターのブラウザー・キャッシュ20を同期させることによって、一貫した計算環境(「DOC1」データー・オブジェクト24の現バージョン、「DOC3」データー・オブジェクト24の存在、および全てのコンピューターにおけるアプリケーション22の利用可能性を含む)をユーザーに提示することができる。
[0022] 更に一般的には、そしてこれらのシナリオを考慮して、図3は、本明細書において論ずる技法の実施形態例42を、コンピューター52におけるブラウザー16のブラウザー・キャッシュ20をリモート・コンピューター54のリモート・ストア56と同期させるように構成されているシステム例42として示す。システム例42は、ブラウザー・キャッシュ20における少なくとも1つのデーター・オブジェクト24の書き込みを検出するように構成することができるブラウザー・キャッシュ監視コンポーネント44と、ブラウザー・キャッシュ監視コンポーネント44が書き込みを検出したときに、ブラウザー・キャッシュ20をリモート・ストア56と同期させるように構成することができる、ブラウザー・キャッシュ同期コンポーネント46とを備えることができる。システム例58は、例えば、1組の命令を備えることができる。この命令は、コンピューター52のメモリー58に格納されており、ブラウザー・キャッシュ20、およびコンピューター52の計算環境の、特定の1組のユーザーによって利用される他のコンピューター(リモート・コンピューター54のような)との同期をサポートするために、プロセッサ60において実行可能である。
[0023] これらの技法の他の実施形態では、本明細書において紹介する技法を適用するように構成されているプロセッサ実行可能命令を備えているコンピューター読み取り可能媒体が関与する。これらの方法において考案することができるコンピューター読み取り可能媒体の一例を図5に示す。ここでは、実施態様70がコンピューター読み取り可能媒体72(例えば、CD−R、DVD−R、またはハード・ディスク・ドライブのプラター(platter))を備えており、その上にコンピューター読み取り可能データーがエンコードされている。一方、このコンピューター読み取り可能データー74は、本明細書において明記する原理にしたがって動作するように構成されている1組のコンピューター命令76を備えている。このような一実施形態では、プロセッサ実行可能命令76は、コンピューターにおけるブラウザーのブラウザー・キャッシュを、図3のシステム例42のような、リモート・コンピューターのリモート・ストアと同期させるように構成されているシステムを実現するように構成することができる。当業者によって、本明細書において紹介する技法にしたがって動作するように構成されている多くのこのようなコンピューター読み取り可能媒体を考案することができる。
[0024] 本明細書において論ずる技法には、多くの態様において変形も考案することができ、一部の変形は、これらのおよびその他の技法の他の変形に対して、追加の利点を提示すること、および/または欠点を低減することもできる。更に、変形の中には組み合わせて実現できるものもあり、組み合わせの中には、相乗的協同によって、追加の利点および/または欠点低減を特徴とするものもある。種々の実施形態において、これらの変形を組み込んで(例えば、図3のシステム例42)、このような実施形態に対して、個々の利点および/または相乗的利点を与える(confer)こともできる。
[0025] これらの技法の実施形態間で多様にすることができる第1の態様は、ブラウザー・キャッシュ20とリモート・ストア56との間で行うことができる同期のタイプに関する。データー・オブジェクトを同期させるプロセスは、多くの変数を有することがあり、これらの変数は、異なるシナリオに合わせるために別々に調節することができる。第1の例として、多くのイベントによって同期をトリガーすることができる。このような実施形態の1つでは、ブラウザー・キャッシュ監視コンポーネント44がデーター・オブジェクト24のブラウザー・キャッシュ20への書き込みを検出した後直ちに、同期をトリガーすることができる。素早い同期は、ブラウザー・キャッシュ20とリモート・ストア56との間に高い同期度を与えることができるが、例えば、各書き込み時にコンピューター52とリモート・コンピューター54との間に接続を作ることによって、および/または短い時間枠の間に数回更新されるデーター・オブジェクト24に対して短い時間枠の間に一連の接続およびデーター伝送を行うことによって、このトリガーが非効率的になる場合がある。このような実施形態の他の1つでは、ブラウザー監視コンポーネント44が書き込みを検出したときに同期をトリガーすることができるが、特定のしきい値を満たした後、例えば、定められたしきい値期間が経過しその間に別の書き込みがブラウザー・キャッシュ20になされなかった後、および/または定められたしきい値データー量がブラウザー・キャッシュ20に書き込まれ後である。あるいはまたは加えて、同期をリモート・コンピューター54によってトリガーすることもできる。例えば、リモート・コンピューター54がブラウザー・キャッシュ20をリモート・ストア56と同期させる通知をコンピューター52に送ることができ、ブラウザー・キャッシュ同期コンポーネント46は、この通知をリモート・コンピューター54から受信したときに、この同期を実行するように構成することができる。このタイプの構成は、ピア関係を有するコンピューター間、例えば、いずれかのコンピューター52のブラウザー・キャッシュ20を変化させることができる2つのコンピューター間では、有利であると考えられる。他の代替では、所定の時点で、毎週、または最後の同期からある時間量が経過した後というように、同期を周期的にトリガーすることができる。更に別の代替として、しきい値時間期間プロセッサ60がアイドル状態であることが検出されたとき、またはネットワーク帯域幅の利用可能性が検出されたときというように、他のファクタに基づいて同期をトリガーすることができる。
[0026] この第1の態様の第2の変形として、同期は多くの方法で行うことができる。第1の例として、コンピューター20は単にリモート・コンピューター54に、コンピューター20において変化する任意のデーター・オブジェクト24を、リモート・ストア56の内容を調べずに配信することができる。この構成は、例えば、リモート・コンピューター54が、コンピューター52から更新のみを受信するアーカイブ・サーバーを備えている場合に適していると考えられる。第2の例として、ブラウザー・キャッシュ同期コンポーネント46が、リモート・コンピューター54のリモート・ストア56の内容について問い合わせることができ、それぞれのデーター・オブジェクト24を比較して、リモート・ストア56において失われているまたは旧式になって更新の期限が来ているデーター・オブジェクト24を判定することができる。あるいは、ブラウザー・キャッシュ同期コンポーネント46が、リモート・ストア56の内容との比較のために、ブラウザー・キャッシュ20の内容リストをリモート・コンピューター54に配信することができ、そしてリモート・コンピューター54から、ブラウザー・キャッシュ20およびリモート・ストア56を同期させるために実行すべき動作のリストを受信することができる。いずれの実施形態においても、この比較は多くのファクタを考慮に入れることができ、例えば、データー・オブジェクト24の修正日付、データー・オブジェクト24のサイズまたはタイプ、種々のデーター・オブジェクト24に帰せられるバージョン識別子、および/またはデーター・オブジェクト24の内容を表すハッシュコードを考慮に入れることができる。ブラウザー・キャッシュ同期コンポーネント46は、次に、リモート・コンピューター54に、ブラウザー・キャッシュ20およびリモート・ストア56を同期させるために配信されるべきデーター・オブジェクト24を送ることができる。あるいはまたは加えて、ブラウザー・キャッシュ同期コンポーネント46は、新たに格納されたデーター・オブジェクト24またはもっと最近になってリモート・コンピューター54において更新されたデーター・オブジェクト24を要求することもでき、このようなデーター・オブジェクト24を、受信時に、ブラウザー・キャッシュ20に格納することができる。あるいはまたは加えて、データー・オブジェクト24がブラウザー・キャッシュ24およびリモート・ストア56双方において変化していたことが発見された場合、ブラウザー・キャッシュ同期コンポーネント46および/またはリモート・コンピューター54は、これらのデーター・オブジェクト24の表現の内1つを、信頼できるものとして選択すべきか否か判断し、信頼できない表現を置き換えることができる。あるいは、データー・オブジェクト24の表現を合併して、このような変化を全て含む混成データー・オブジェクト24を生成し、双方のインスタンスをこの混成データー・オブジェクトと置き換えることも可能なこともある。
[0027] 変化に富む同期の複雑さの一部を例示するこの第2の変形の特徴の1つは、リモート・ストア56の中における、ブラウザー・キャッシュ20に存在しないデーター・オブジェクトの発見に関することである。このようなデーター・オブジェクト24は、最後の同期以来リモート・ストア56に新たに格納された場合に存在する可能性があり、またはこのようなデーター・オブジェクト24がブラウザー・キャッシュ20から除去された場合に存在する可能性がある。このような実施形態の1つでは、ブラウザー・キャッシュ同期コンポーネント46がリモート・ストア56において、ブラウザー・キャッシュ20には存在しないデーター・オブジェクト24を検出した場合、リモート・コンピューター54に、このデーター・オブジェクト24をリモート・ストア56から除去するように要求することができる(これによって、ブラウザー・キャッシュ20からの除去を仮定する)。逆に、ブラウザー・キャッシュ同期コンポーネント56は、リモート・ストア56から除去されているデーター・オブジェクト24をブラウザー・キャッシュ20から除去する要求をリモート・ストア56から受信するように構成することもでき、こうして同期を維持するように動作することができる。あるいはまたは加えて、ブラウザー・キャッシュ監視コンポーネント44は、ブラウザー・キャッシュ20において少なくとも1つの除去されたデーター・オブジェクト24の除去を検出することを望む場合があり、次いでブラウザー・キャッシュ同期コンポーネント46は、リモート・コンピューター54に、データー・オブジェクト24をリモート・ストア56から除去することを要求することができる(これによって、リモート・ストア56に対する新たな追加を仮定する)。更に他の実施形態では、ブラウザー・キャッシュ監視コンポーネントが、ブラウザー・キャッシュ20からの少なくとも1つの除去されたデーター・オブジェクト24の除去を検出するように構成され、このような除去されたデーター・オブジェクト24のリモート・ストア56からの除去を要求することができる。その後にリモート・ストア56において特定されたいずれのデーター・オブジェクト24も、最近リモート・ストア56に追加されたものと仮定することができる。更に別の実施形態では、ブラウザー・キャッシュ20および/またはリモート・ストア56は、それぞれのデーター・オブジェクト・ストアに対する修正のジャーナルを維持することもでき、精度の高い同期動作を判定するために、このようなジャーナルを検査または比較することができる。
[0028] この第1の態様の第3の変形として、これらの技法を、ウェブ・ブラウザーによって提供される特定のデーター・キャッシュに選択的に適用することもできる。ウェブ・ブラウザーによって受信されたデーター・オブジェクトは異なるコンテキスト(例えば、アプリケーションに属するアプリケーション・リソース、ならびにHTML文書、スタイル・シート、および埋め込みメディア・オブジェクトのような、ウェブ・ページのレンダリングにおいて用いられるコンテンツ型データー・オブジェクト)において有用であることがあるので、ウェブ・ブラウザーはこのようなデーター・オブジェクトを異なるキャッシュ(例えば、アプリケーション・リソースを格納するように構成されているアプリケーション・キャッシュ、およびコンテンツ型データー・オブジェクトを格納するように構成されているコンテンツ・キャッシュ)に格納することができる。本明細書において関係する同期技法は、このようなキャッシュのコンテンツに種々の方法で適用することができる。第1の例として、同期を均一にこのようなキャッシュ全てにおける全てのデーター・オブジェクトに適用することができる。第2の例として、重要性が高い方のデーター・オブジェクトを格納するように構成されている特定のキャッシュ(例えば、アプリケーション・キャッシュ)のみに同期を適用し、有用性が低いデーター・オブジェクトを格納するように構成されているデーター・キャッシュの内容を無視することができる。第3の例として、別々のこのようなキャッシュに同期を適用することができる。例えば、アプリケーション・キャッシュは完全にそして頻繁に同期させることができ、一方コンテンツ・キャッシュは、その中に格納されているデーター・オブジェクトの一部に関してのみ同期させればよく(例えば、最新の時間枠において引き出されたまたはアクセスされたデーター・オブジェクト)、もっと緩いスケジュールで同期させればよい。
[0029] この第1の態様の更に別の変形は、同期の更に洗練された形態に関すると言ってもよい。第1の例として、ブラウザー・キャッシュ同期コンポーネント46および/またはリモート・ストア56は、少なくとも1つの同期データー・オブジェクト規準に合うデーター・オブジェクト24の部分集合というような、データー・オブジェクト24の一部のみを同期させるように構成することもできる。例えば、ブラウザー・キャッシュ同期コンポーネント46は、ユーザー・データー・ファイルを構成するデーター・オブジェクト24のみ、および/またはアプリケーション・バイナリーを構成するデーター・オブジェクト24のみ、および/または特定のユーザーまたはアプリケーションに属するデーター・オブジェクト24のみ、および/または特定のデーター・サイズを超えていないデーター・オブジェクト24のみを同期させるように構成することもできる。したがって、ブラウザー・キャッシュ同期コンポーネント46は、同期の間、ブラウザー・キャッシュ20に格納されている他のデーター・オブジェクト24を無視することができる。第2の例として、同期トリガー方針(例えば、同期を開始してもよい状況群)、同期タイプ方針(例えば、単一方向同期対双方向同期)、データー・オブジェクト比較方針(例えば、相違を検出するためにデーター・オブジェクトの2つの表現を比較するときの規準)、データー・オブジェクト・タイプ合併方針(例えば、合併することができるデーター・オブジェクト24のタイプ、およびそれを行うためのロジック)、および/またはデーター・オブジェクト不一致解決方針(例えば、データー・オブジェクト24の異なる表現を解明するときのロジック)というような同期の種々の態様を記述する同期方針を考案することもできる。尚、同期の種々の形態を記述する様々な同期方針を定めることは有利であると考えられる(例えば、頻繁でない同期の間に適用される第1同期方針、および頻繁で増分的な同期の間に適用される第2同期方針)。更に、同期方針は、コンピューター52またはリモート・コンピューター54のいずれによっても、それらの間の関係に依存して、定めることもできる。当業者であれば、本明細書において論じられる技法を実施しつつ、ブラウザー・キャッシュ20およびリモート・コンピューター54の同期を開始し実行する多くの技法を考案できるであろう。
[0030] これらの技法の実施形態間で多様にすることができる第2の態様は、実施態様のアーキテクチャーに関する。第1の例として、ブラウザー・キャッシュ監視コンポーネント44およびブラウザー・キャッシュ同期コンポーネント46は、コンピューター52内部において種々のやり方で実行することができる。第1のこのような実施形態では、ブラウザー・キャッシュ監視コンポーネント44は、コンピューター52においてブラウザー16内部で、例えば、ブラウザー16またはその中にインストールされているプラグインの一部として実行するように構成することができる。この実施態様は、ブラウザー・キャッシュ監視コンポーネント44が、主に、ブラウザー・キャッシュ監視コンポーネント46によって同期をトリガーするために、ブラウザー・キャッシュ20を監視して変化を発見するタスクを課されているときに有用であると考えられる。何故なら、このような変化は、ブラウザー16が実行しているときにのみ発生する可能性が高いと考えられるからである。対照的に、そして代わりにまたは加えて、ブラウザー・キャッシュ同期コンポーネント46は、コンピューター52においてブラウザー16外部のプロセスとして、例えば、コンピューター52の背景サービスとして実行するように構成することができる。これが有利であると言えるのは、例えば、ウェブ・ページのレンダリングやブラウザー16によるアプリケーション20の実行に干渉することなく、変化したデーター・オブジェクト24を同期させることによって、そしてこのようなアプリケーションが実行していないとき、そしてブラウザー16が実行していない場合であっても、ブラウザー・キャッシュ20のリモート・ストア56との同期が行われることを許容することによって、ブラウザー16とは独立して同期を行うことができるからである。例えば、コンピューター52がネットワークに接続されているが、ユーザー12がブラウザー16を用いていないとき(例えば、コンピューター52がアイドル状態にあるとき)、ブラウザー・キャッシュ同期コンポーネント46は、一部の更新データー・オブジェクト24をリモート・ストア56から引き出し、これらをブラウザー・キャッシュ20に格納することができ、ユーザー12がこれらのデーター・オブジェクト24を用いることを要求したときに(例えば、このようなウェブ・オブジェクト24を組み込んだアプリケーション22を呼び出す)、コンピューター52がオフライン状態にあっても、このようなオブジェクトを用いることができる。
[0031] この第2の態様の第2の例として、これらの技法の実施形態のアーキテクチャーは、本明細書において説明する特徴を実現する間、コンピューター54内部において他のプロセスの動作を考慮することができる。例えば、ブラウザー・キャッシュ同期コンポーネント46を、ブラウザー16外部で実行するプロセスとして実装することは有利であると考えられるが、この独立性のために、これら2つのプロセスの競合的干渉を許す場合がある。第1の例として、ブラウザー・キャッシュ同期コンポーネント46は、ブラウザー16によって用いられているデーター・オブジェクト24を置き換えようとすることもあり、データー違反エラーを発生する。第2の例として、ブラウザー・キャッシュ同期コンポーネント46およびブラウザー16が各々データー・オブジェクト24を更新することもあり、オブジェクト同期構造が用いられない場合、レース状態(race condition)が生ずる可能性があり、その結果データーの損失が発生し、論理的な問題の可能性もある。このような問題を回避しこれらの技法の実施態様を改善するために、ブラウザー・キャッシュ監視コンポーネント44および/またはブラウザー・キャッシュ同期コンポーネント46は、他のプロセスの動作を尊重する。第1の例として、ブラウザー・キャッシュ同期コンポーネント46は、データー・オブジェクト24をリモート・ストア56と同期させる前に、データー・オブジェクト24に対してアクセス・ロック(セマファーまたはミューテックスのような)を要求することができ、データー・オブジェクト24の同期が完了したときに、データー・オブジェクト24のロックを解除することができる。あるいはまたは加えて、ブラウザー・キャッシュ監視コンポーネント44は、ブラウザー16によって用いられているブラウザー・キャッシュ同期コンポーネント46によるデーター・オブジェクト24の更新を検出したときに、ブラウザー16に更新データー・オブジェクト24の利用可能性を通知するように構成することができ、ブラウザーは、ブラウザー16の動作において都合のよいときに(例えば、データー・オブジェクト24が実際に使用されていないとき)、更新データー・オブジェクト24を再ロードすることができる。
[0032] この第2の態様の第3の例として、ブラウザー・キャッシュ同期コンポーネント46によって行われる同期を、計算環境18のリモート・ストア56との更に広い同期に含めることもできる。第1のこのような実施態様では、2つのコンピューターが、ブラウザー・キャッシュ20内に格納されているデーター・オブジェクト24およびブラウザー・キャッシュ20の外部であるが計算環境18内部に格納されているデーター・オブジェクト24(例えば、コンピューター52のファイルシステムに格納されているファイル、オペレーティング・システムによって格納されているユーザー・プロファイル、およびデーターベースに格納されているレコード)の双方を共有することができる。同期プロセスは、1回の同期の間にブラウザー・キャッシュ20に格納されるデーター・オブジェクト24を含む、多くのデーター・オブジェクト・システムに格納されアクセスされる大きな様々な1組のデーター・オブジェクト24を同期させるように考案することができる。これは、例えば、このようなデーター・オブジェクト24がどのように格納されているかには関係なく、全てのデーター・オブジェクト24に適用される1つの同期方針をユーザー12が指定することを可能にするため、そして異なる組のデーター・オブジェクト24を独立して(そしておそらくは相争いながら)同期させる複数の同期コンポーネントを実装する代わりに、1つのコンポーネントがこのようなデーター・オブジェクト24の同期を実行することを可能にするために有用となることができる。
[0033] このような実施形態の1つでは、計算環境18が配備可能な計算環境を表すことができ、リモート・コンピューター54は計算環境ホストを構成することができる。現世代の計算環境を構成するオブジェクトの複雑な多様性および分散(decentralization)を減少させるために、計算環境の配備可能な表現を考案することができ、そこでは、計算環境を構成するオブジェクトがデーター・オブジェクト階層に編成され、計算環境ホストによってホストすることができる。この計算環境ホストは、ユーザー12の計算環境18を構成する1組のコンピューター全体の表現を格納するように構成することができ、このようなコンピューター間における計算環境18の同期を調整するように構成することができ、計算環境18の信頼できる表現を格納するように(例えば、バージョン不一致を解決するときに優先順位を持っているデーター・オブジェクト24の特定の表現)構成することができ、および/または計算環境18の配備または新たに加えられたコンピューターのような、特定のコンピューター52に対するその一部を管理するように構成することができる。(このシナリオにおけるリモート・ストア56は、ブラウザーすら内蔵していないファイル・サーバーを備えることができる計算環境ホスト82におけるブラウザー・キャッシュに必ずしも対応しなくてもよく、代わりに、例えば、配備可能な計算環境84を格納するために割り当てられた計算環境ホスト82のファイルシステムの一部を表すのであってもよいことは認められよう。)データー・オブジェクト階層は、同じ計算環境(同じユーザー・プロファイル、アプリケーション、データー・ファイル等)を表すために種々のデバイスに配信することができ、各デバイスは、一貫性のあるやり方で、しかしデバイスの能力に基づいてカスタム化して(例えば、ワークステーションに取り付けられているキーボード・デバイスからのデーター入力を受けるハード・キーボード・インターフェース、およびセルフォン・デバイスからデーターを受けるタッチスクリーン・ソフトウェア・キーボード・インターフェース)計算環境をレンダリングすることができる。配備可能な計算環境のユーザーは、したがって、プラットフォームおよびデバイスに独立したやり方で、配備可能な計算環境と対話処理しつつ、同期または非同期呼び出し、標準的動作のバッチ処理、および移動体エージェントというような、代替アクセス技法に対する利点の少なくとも一部も達成することができる。更に、計算環境18を構成するデーター・オブジェクト24が配備可能な計算環境内において均一に表現され一貫性のある方法で管理される場合(このようなデーター・オブジェクト24がアクセスされるときに経由する個々のデーター・オブジェクト・システムには関係なく)、計算環境のデーター・オブジェクトの全てに適用される1組のサービスを考案することができる。しかしながら、当業者であれば、本明細書において論じられる技法を適用することができるこのようなシナリオを数多く考案することができよう。
[0034] 図5は、1つのこのようなシナリオ80を示し、ここでは、計算環境を計算環境ホスト82によってホストすることができ、計算環境ホスト82は、配備可能計算環境84を格納し管理することができる。また、計算環境ホスト82は、セルフォン・デバイス86、パーソナル・ノートブック型コンピューター90、および公衆ワークステーション94のような種々のデバイスの代わりに、そして異なるアクセス特権を有する異なるタイプのユーザーの代わりにも、配備可能な計算環境84を異なる方法でレンダリングすることもできる。したがって、計算環境のレンダリングは、同じアプリケーション、ユーザー・プロファイル、シェル・コンフィギュレーション、ユーザー・データー・オブジェクトなどを露出する全てのデバイスに渡って一貫性のある計算環境を反映する。つまり、ユーザーは高性能ノートブック型コンピューターによる計算環境の最大機能発揮バージョン92、低パワー・セルフォン・デバイス86における計算環境の必要最低限のバージョン88、ならびに公衆端末94のウェブ・ブラウザー86による計算環境のブラウザー互換およびプライバシー指向バージョン98にアクセスすることができる。このような各デバイスの能力が計算環境のレンダリングをサポートする限りにおいて、各デバイスの能力に合わせて調節された配備可能な計算環境84のレンダリングによって、一貫性のあるユーザー・インターフェースおよびデーター集合を提示することができる。計算環境に対する更新は、計算環境ホスト82まで戻って伝搬することができ、他のデバイスと自動的に同期させることができる。また、種々のデバイスは、ローカルに格納されているデーターを他のデバイスと共有することによって、そして他のデバイスを制御するまたは他のデバイスによって制御されることによって、協同して動作することができる。したがって、計算環境は、クラウド計算アーキテクチャーとして考案および提示することができ、このクラウド計算アーキテクチャーは、同じ計算環境に対する協同ポータル(デバイス特定の特性を有する)のメッシュを形成する全てのデバイス(「クライアント」)にわたって、一貫性のあるレンダリングとして表現されるデバイスに独立した表現(「クラウド」)を備えている。計算環境のアプリケーションに関して具体的には、配備可能な計算環境84は、アプリケーション・セットの表現、アプリケーション・リソース、およびそれによって作成されるデーター・オブジェクトを含むことができる。更に、計算環境ホスト82は、データー・オブジェクト階層32を構成する種々のオブジェクトにサービスを適用することができ、データー・オブジェクトが配備可能な計算環境84に格納される共通フォーマットが、それに適用されるデーター・オブジェクトの性質とは無関係に、サービスの一貫性のある利用可能性および適用を容易にすることができる。
[0035] この第2の態様を参照して、コンピューター52が、計算環境ホスト82によって管理されている配備可能な計算環境84を表す計算環境18を特徴とする場合、本明細書において論じられる技法は、それに関する特定の利点と共に実現することができる。第1の例として、計算環境ホスト82がリモート・コンピューター54としての役割を果たす場合、ブラウザー・キャッシュ20を計算環境18の一部として表すことが有利であると考えられる。更に、リモート・ストア56が、計算環境ホスト82によって管理されている配備可能な計算環境84の表現を備えている場合、ブラウザー・キャッシュ20を含む計算環境18全体の同期を一緒に行うことができる。例えば、コンピューター52の大きな1組のデーター・オブジェクト24の計算環境ホスト82との同期を管理する計算環境コンポーネントを考案することができる。大きな1組のデーター・オブジェクトには、ブラウザー・キャッシュ20の中に格納されているデーター・オブジェクト24、ならびに、ファイルシステムの中にあるファイル、システム・レジストリに格納されているコンフィギュレーション情報、およびオペレーティング・システムが格納するユーザー・プロファイルというような、他のデーター・オブジェクト・システムに格納されこれらを通じてアクセス可能なデーター・オブジェクト24が含まれる。次いで、ブラウザー・キャッシュ20の内容および計算環境18の残りについて、同期を均一に行うことができ、他のサービス(例えば、認証サービスおよび圧縮サービス)を考案し、このようなデーター・オブジェクト24全てに均一に適用することができる。この場合も、このようなデーター・オブジェクト24全ての同期を1回の同期プロセスとして、および/または配備可能な計算環境84の全てのデーター・オブジェクト24を計算環境ホスト82と同期させる計算環境コンポーネントのような、1つのコンポーネントにおいて行うことが望ましい場合もある。更に、計算環境ホスト82は、このようなデーター・オブジェクトの、計算環境を共有する他のコンピューターへの配信も扱うことができ、各コンピューター54が一義的に計算環境ホスト82と通信すればよいが、他のコンピューター54において最初に作成されたまたは最後に更新されたデーター・オブジェクト24を受信してもよいようにすることもできる。
[0036] この第2の態様の第4の例として、ブラウザー・キャッシュ監視コンポーネント44および/またはブラウザー・キャッシュ同期コンポーネント46が、同期プログラム・インターフェースを特徴とすることもできる。このインターフェースは、ブラウザー16内部で実行するアプリケーション22が、ブラウザー・キャッシュ20におけるデーター・オブジェクト24の同期と相互作用することを可能にすることができる。第1の例として、同期プログラム・インターフェースは、アプリケーション22が、データー・オブジェクト24の最後の同期の日付、およびデーター・オブジェクト24のソースというような、同期の詳細を特定することを可能にすることができる。このような実施形態の1つでは、同期プログラム・インターフェースは、同期の少なくとも1つの同期方針の少なくとも1つの特性を開示するように構成されている少なくとも1つの同期方針開示動作と、少なくとも1つの同期方針の少なくおtも1つのプロパティを設定するように構成されている少なくとも1つの同期方針設定動作とを備えることができる。例えば、新たなウィルス防止定義データーベースを日曜日毎に夜中に供給するウィルス防止ソフトウェア・ベンダーのように、固定のスケジュールで特定のアプリケーション・リソースを更新するアプリケーション・ホストによって、アプリケーションを供給することができる。したがって、このアプリケーション・ホストは、同期コンポーネント46に、同期プログラム・インターフェースを通じて、所定の時刻にこのアプリケーション・リソースを構成するデーター・オブジェクト24を更新することを命令するように、アプリケーション22を構成することができる。また、アプリケーション22は、同期プログラム・インターフェースを用いて、データー・オブジェクト24の最後のこのような同期の日時を特定し(例えば、ウィルス定義データーベースが旧式になっていないかユーザー12に通知するために)、および/または アプリケーション・ホストによって特定された信頼できるソースによるデーター・オブジェクト24の同期のみに制限することもできる(例えば、ウィルス定義データーベースをウィルス防止ソフトウェア・ベンダーから直接でなければ引き出せないようにする)。あるいはまたは加えて、ブラウザー・キャッシュ同期コンポーネント46は、ブラウザー・キャッシュ20(またはその一部)をリモート・ストア54と同期させるために、ブラウザー・キャッシュ同期コンポーネント46を呼び出すように構成された同期プログラム・インターフェースを露出することもできる。例えば、アプリケーション22が、同期プログラム・インターフェースの動作を通じて、ブラウザー・キャッシュ同期コンポーネント46による特定のデーター・オブジェクト24の同期を呼び出すことを可能にすることもできる(例えば、ウィルス防止アプリケーションのユーザーがウィルス定義データーベースの素早い更新を要求する場合)。
[0037] 加えて、同期プログラム・インターフェースは、馴染みのあるそして定着したやり方で実装することもでき、これによって、アプリケーションが便利にそして大きな設計変更なく、インターフェースを利用することを可能にすることができる。例えば、ウェブ・ブラウザー16において実行するアプリケーション22をサポートするように設計されているウェブ・ブラウザー・プラグインが、JavaScript(登録商標)ベースの同期プログラム・インターフェースを、例えば、ブラウザー・キャッシュ20において種々のデーター・オブジェクト24を読み出しおよび書き込むためにJavaScript(登録商標)において呼び出すことができる1組の動作として露出することができる。あるいはまたは加えて、同期プログラム・インターフェースは、もっと上位の言語、例えば、Java(登録商標)およびC#のようなオブジェクト指向言語もサポートすることができ、同期サービスのスケジューリング、ローカル・キャッシュの新鮮さおよび方針、ならびに計算環境を構成するコンピューターの関係(例えば、どのコンピューターが特定のデーター・オブジェクトの信頼できる代表のホストとしての役割を果たすか)というような、計算環境の一層洗練された詳細を露出することができ、および/または一層強力なプログラム・アクセス(例えば、特定のデーター・オブジェクトの同期というような計算環境イベントをアプリケーションに通知することができる、イベント予約およびデーター・フィード)を可能にする一層洗練されたプログラミング構造を含むことができる。このように、プログラム・インターフェースは、多種態様な計算環境の態様を洗練されたやり方で露出しつつ、異なるプログラミング技法を利用してその大きな部分を再設計することも書き直すことも必要とせずに、開発者によって容易に選択することができる、馴染みのあるプログラミング・モデルを固守することができる。当業者であれば、本明細書において論じられる技法を実現しつつ、その多くのアーキテクチャーおよび特徴を考案することができよう。
[0038] これらの技法の実施形態間で多様にすることができる第3の態様は、その種々の実施態様に含むことができるデーター・オブジェクト特定の機構に関する。第1の例として、アプリケーション22がブラウザー・キャッシュ20に格納するように要求したデーター・オブジェクト24が、大きなデーター・オブジェクトまたは関連したデーター・オブジェクトの多数の組というような、1つ以上の異常な特性を有する場合がある。ブラウザー・キャッシュ20の中には、このようなキャッシングに対処できないものもある。例えば、ブラウザー・キャッシュ20は、特定のデーター・オブジェクトに対してサイズ制限を賦課することもあり、特定のデーター・オブジェクト24が大きすぎてブラウザー・キャッシュ20に格納できない場合もある(例えば、アプリケーション22によってオフライン・アクセスのために供給されることがある大きなデーターベース)。代わりに、ブラウザー16は、このようなデーター・オブジェクト24を、ファイルシステムにおけるファイルというような、ブラウザー・キャッシュ20外にそして計算環境18内に格納し、そしてブラウザー・キャッシュ20外に格納されたデーター・オブジェクト24に対する参照をブラウザー・キャッシュ20に格納するように構成することができる。更に、ブラウザー・キャッシュ監視コンポーネント44は、ブラウザー・キャッシュ20外に格納されたデーター・オブジェクト24の更新を、ブラウザー・キャッシュ20内部に格納されているデーター・オブジェクト24の更新と共に、監視するように構成することができ、および/またはブラウザー・キャッシュ同期コンポーネント46は、ブラウザー・キャッシュ20外に格納されたこのようなデーター・オブジェクト24を、ブラウザー・キャッシュ20内に格納されたデーター・オブジェクト24と共に同期させるように構成することもできる。
[0039] この第3の態様の第2の例では、ブラウザー・キャッシュ20に格納されているデーター・オブジェクト24は、ブラウザー16内部で実行するように構成されているアプリケーション22のアプリケーション・リソースを構成することができる。ブラウザー・キャッシュ監視コンポーネント44および/またはブラウザー・キャッシュ同期コンポーネント46は、このようなデーター・オブジェクト24を特定のやり方で扱うように構成することができる。第1のこのようなシナリオでは、データー・オブジェクト24はアプリケーション・インストーラ・パッケージを構成することができ、このパッケージを呼び出して、ブラウザー16内にアプリケーション22をインストールすることができる。したがって、ブラウザー・キャッシュ同期コンポーネント46は、リモート・コンピューター54からデーター・オブジェクト24を受信したときに、アプリケーション・インストーラ・パッケージを呼び出してアプリケーション22をインストールすることができる。第2の例として、データー・オブジェクト24が関連付けられているアプリケーション22をアプリケーション・ホストと関連付けることができ、接続コンテキストまたは切断コンテキストのような、アプリケーション・ホスト接続コンテキストで実行するように構成することができる。このようなシナリオの1つでは、データー・オブジェクト24はオフライン・アプリケーション・リソースを構成することができ、アプリケーション22は、アプリケーション22が切断コンテキストで実行するときに、オフライン・アプリケーション・リソースを用いるように構成することができる。当業者であれば、本明細書において論じられる技法を実現しつつ、特定のタイプのデーター・オブジェクト24に対してブラウザー・キャッシュ監視コンポーネント44および/またはブラウザー・キャッシュ同期コンポーネント46を構成するための技法を数多く考案することができよう。
[0040] 以上、構造的特徴および/または方法論的動作に特定の文言で本主題について説明したが、添付した特許請求の範囲において定められている主題は、以上で説明した特定の特徴や動作に必ずしも限定されるのではないことは言うまでもない。むしろ、これら前述した特定の特徴および動作は、特許請求の範囲を実施する形態例として開示したのである。
[0041] 本願において用いる場合、「コンポーネント」、「モジュール」、「システム」、「インターフェース」などという用語は、一般に、コンピューター関連エンティティ、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかを指すことを意図している。例えば、コンポーネントは、限定ではなく、プロセッサにおいて実行しているプロセス、プロセッサ、オブジェクト、エクゼキュータブル、実行のスレッド、プログラム、および/またはコンピューターであってもよい。例示として、コントローラにおいて実行しているアプリケーションおよびこのコントローラの双方が1つのコンポーネントになることができる。1つ以上のコンポーネントは、プロセスおよび/または実行のスレッドの内部に存在することができ、コンポーネントを1つのコンピューターに配置すること、および/または2つ以上のコンピューター間で分散することもできる。
[0042] 更に、特許請求する主題は、方法、装置、あるいはソフトウェア、ファームウェア、ハードウェアを生産するための標準的なプログラミングおよび/または設計技法を用いた製造の品目、あるいは開示した主題を実現するようにコンピューターを制御するための、その任意の組み合わせとして実現することができる。「製造の品目」という用語は、本明細書において用いられる場合、任意のコンピューター読み取り可能媒体、担体(carrier)、または媒体からアクセス可能なコンピューター・プログラムを包含することを意図している。勿論、特許請求する主題の範囲や主旨から逸脱することなく、この構成に多くの変更を行い得ることは、当業者には認められよう。
[0043] 図6および以下の論述は、本明細書において明示した設備の1つ以上の実施形態を実現するのに適した計算環境の端的な総合的説明を行うためにある。図6の動作環境は、適した動作環境の一例に過ぎず、動作環境の使用範囲や機能について何の限定を示唆することも意図していない。計算デバイスの例には、限定ではなく、パーソナル・コンピューター、サーバー・コンピューター、ハンド・ヘルドまたはラップトップ・デバイス、移動体デバイス(移動体電話機、パーソナル・ディジタル・アシスタント(PDA),メディア・プレーヤー等)、マルチプロセッサ・システム、消費者用電子機器、ミニ・コンピューター、メインフレーム・コンピューター、以上のシステムまたはデバイスの内任意のものを含む分散方計算環境などが含まれる。
[0044] 必須ではないが、1つ以上の計算デバイスによって実行される「コンピューター読み取り可能命令」という一般的なコンテキストで、実施形態が説明されている。コンピューター読み取り可能命令は、コンピューター読み取り可能媒体(以下で論ずる)を通じて分散することもできる。コンピューター読み取り可能命令は、関数、オブジェクト、アプリケーション・プログラミング・インターフェース(API)、データー構造などのようなプログラム・モジュールとして実現することができ、特定のタスクを実行するか、または特定の抽象データー・タイプを実装する。通例、コンピューター読み取り可能命令の機能は、種々の環境における所望に応じて、組み合わせることまたは分散することができる。
[0045] 図6は、本明細書において示した1つ以上の実施形態を実現するように構成されている計算デバイス102を備えているシステム100の一例を示す。一構成では、計算デバイス102は少なくとも1つの処理ユニット106およびメモリー108を含む。計算デバイスの正確な構成およびタイプに依存して、メモリー108は揮発性(例えば、RAMのような)、不揮発性(例えば、ROM、フラッシュ・メモリー等のような)、またはこれら2つの何らかの組み合わせとすることができる。この構成は、図6では破線104で示されている。
[0046] 他の実施形態では、計算デバイス102は追加の機構および/または機能を含むこともできる。例えば、計算デバイス102は、追加のストレージ(例えば、リムーバブルおよび/または非リムーバブル)も含むことができる。限定ではなく、追加のストレージには、磁気ストレージ、光ストレージ等が含まれる。このような追加のストレージは、図6ではストレージ110によって例示されている。一実施形態では、本明細書において示した1つ以上の実施形態を実現するコンピューター読み取り可能命令は、ストレージ110の中にあるとよい。また、ストレージ110は、オペレーティング・システム、アプリケーション・プログラム等を実装するために、他のコンピューター読み取り可能命令も格納することができる。コンピューター読み取り可能命令は、例えば、処理ユニット106による実行のために、メモリー108にロードすることができる。
[0047] 「コンピューター読み取り可能媒体」という用語は、本明細書において用いる場合、コンピューター記憶媒体を含む。コンピューター記憶媒体は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含み、コンピューター読み取り可能命令または他のデーターのような情報の格納のための任意の方法または技術で実現されている。メモリー108およびストレージ110は、コンピューター記憶媒体の例である。コンピューター記憶媒体は、限定ではなく、RAM、ROM、EEPROM、フラッシュ・メモリーまたはその他のメモリー技術、CD−ROM、ディジタル・バーサタイル・ディスク(DVD)またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができその上計算デバイス102によってアクセスすることができるのであれば他のいずれの媒体をも含む。このようなコンピューター記憶媒体は、そのいずれもが計算デバイス102の一部となってもよい。
[0048] また、計算デバイス102は、計算デバイス102が他のデバイスと通信することを可能にする通信接続(1つまたは複数)116も含むことができる。通信接続(1つまたは複数)116は、限定ではなく、モデム、ネットワーク・インターフェース・カード(NIC)、統合ネットワーク・インターフェース、無線周波数送信機/受信機、赤外線ポート、USB接続、または計算デバイス102を他の計算デバイスと接続するためのその他のインターフェースを含むことができる。通信接続(1つまたは複数)116は、有線接続またはワイヤレス接続を含むことができる。通信接続(1つまたは複数)116は、通信媒体を送信および/または受信することができる。
[0049] 「コンピューター読み取り可能媒体」という用語は、通信媒体を含むことができる。通信媒体は、通例、搬送波またはその他の伝達メカニズムのような「変調データー信号」にコンピューター読み取り可能命令またはその他のデーターを具体化し、いずれの情報配信媒体も含む。「変調データー信号」という用語は、情報を信号内に符号化するような態様で設定または変更したその特性の1つ以上を有する信号を含むことができる。
[0050] 計算デバイス102は、キーボード、マウス、ペン、音声入力デバイス、接触入力デバイス、赤外線カメラ、ビデオ入力デバイス、および/またはその他のあらゆる入力デバイスというような、入力デバイス(1つまたは複数)114を含むことができる。1つ以上のディスプレイ、スピーカー、プリンター、および/またはその他の出力デバイスというような出力デバイス(1つまたは複数)112も、計算デバイス102に含むことができる。入力デバイス(1つまたは複数)114および出力デバイス(1つまたは複数)112は、有線接続、ワイヤレス接続、またはそのいずれの組み合わせによってでも、計算デバイス102に接続することができる。一実施形態では、別の計算デバイスからの入力デバイスまたは出力デバイスを、計算デバイス102用の入力デバイス(1つまたは複数)114または出力デバイス(1つまたは複数)112として用いることもできる。
[0051] 計算デバイス102のコンポーネントは、バスのような、種々の相互接続によって接続することができる。このような相互接続は、PCI Expressのようなペリフェラル・コンポーネント相互接続(PCI)、ユニバーサル・シリアル・バス(USB)、ファイアワイヤ(IEEE1394)、光バス構造などを含むことができる。別の実施形態では、計算デバイス102のコンポーネントは、ネットワークで相互接続することができる。例えば、メモリー108は、ネットワークによって相互接続されている異なる物理的位置にある多数の物理的メモリー・ユニットによって構成することもできる。
[0052] コンピューター読み取り可能命令を格納するために利用される記憶デバイスは、ネットワークに跨って分散させてもよいことは、当業者には分かるであろう。例えば、ネットワーク118を通じてアクセス可能な計算デバイス120は、本明細書において提唱した1つ以上の実施形態を実現するために、コンピューター読み取り可能命令を格納することができる。計算デバイス102は、計算デバイス120にアクセスし、コンピューター読み取り可能命令の一部または全部を実行のためにダウンロードすることができる。あるいは、計算デバイス102は、必要に応じて、コンピューター読み取り可能命令の断片をダウンロードすることができ、一部の命令を計算デバイス102において実行し、一部を計算デバイス120において実行することもできる。
[0053] 本明細書では、実施形態の種々の動作について提唱した。一実施形態では、記載した動作の1つ以上が、1つ以上のコンピューター読み取り可能媒体上に格納されたコンピューター読み取り可能命令を構成することができ、計算デバイスによって実行すると、当該計算デバイスに、記載した動作を実行させる。これらの動作の一部または全部を記載した順序は、これらの動作に必然的な順序依存性があるように解釈すべきではない。この記載から援助を受けた当業者には、代わりの順序も認められよう。更に、本明細書において提唱した各実施形態において、全ての動作が必ずしも出てくる訳ではないことは言うまでもない。
[0054] 更に、「一例の」という単語は、本明細書では、一例、実例、または例示としての役割を果たすことを意味するために用いられる。本明細書において「一例の」として記載される態様または設計はいずれも、他の態様または設計よりも有利であるとは必ずしも解釈されない。むしろ、一例のという用語の使用は、概念を具体的に紹介することを意図している。本明細書において用いる場合、「または」という用語は、排他的な「または」ではなく包含的な「または」を意味することを意図する。即ち、そうでないことが指定されていない限り、または文脈から明白でない限り、「XはAまたはBを採用する」とは、自然な包含的組み合わせ(permutation)のいずれでも意味することを意図する。即ち、XがAを採用する場合、XがBを採用する場合、またはXがAおよびBの双方を採用する場合、これらの実例のいずれにおいても、「XはAまたはBを採用する」が満たされる。加えて、冠詞「a」および「an」は、本願および添付した特許請求の範囲において用いられる場合、そうでないことが指定されていない限り、また文脈から単数形態を対象とすることが明白でない限り、「1つ以上」を意味するように通常解釈することができる。
[0055] また、1つ以上の実施態様に関して本開示を示し説明したが、本明細書および添付図面の熟読および理解に基づいて、同等の変形や変更が当業者には想起されよう。本開示は、このような変更や変形を全て含み、以下の特許請求の範囲のみによって限定される。特に、以上で述べたコンポーネント(例えば、エレメント、リソース等)によって実行される種々の機能に関して、このようなコンポーネントを記載するために用いられた用語は、そうでないことが示されない限り、記載されたコンポーネント(例えば、機能的に同等な)の指定された機能を実行するのであれば、本開示のここで例示された実施態様例における機能を実行する、開示された構造に構造的に同等でなくても、いずれのコンポーネントにも対応することを意図している。加えて、本開示の特定的な機構を、様々な実施態様の内1つのみに関して開示したが、このような機構は、いずれの所与の用途または特定の用途にとっても望まれるまたは有利となるように、他の実施態様の1つ以上の別の機構と組み合わせることができる。更に、「含む」、「有している」(having)、「有する」(has)、「と」(with)という用語、またはその異形が詳細な説明または特許請求の範囲において用いられている限りにおいて、このような単語は、用語「備えている(又は含む)」(comprising)と同様に内包的であることを意図している。
Claims (15)
- コンピューター(52)におけるブラウザー(16)のブラウザー・キャッシュ(20)をリモート・コンピューター(54)のリモート・ストア(56)と同期させるように構成されたシステム(42)であって、
前記ブラウザー・キャッシュ(20)における少なくとも1つのデーター・オブジェクト(24)の書き込みを検出するように構成されたブラウザー・キャッシュ監視コンポーネント(44)と、
前記ブラウザー・キャッシュ監視コンポーネント(44)が前記書き込みを検出したときに、前記ブラウザー・キャッシュ(20)を前記リモート・ストア(56)と同期させるように構成されたブラウザー・キャッシュ同期コンポーネント(46)と、
を含む、システム(42)。 - 請求項1記載のシステムにおいて、前記ブラウザー・キャッシュ同期コンポーネントが、前記ブラウザー・キャッシュを前記リモート・ストアと同期させる通知を前記リモート・コンピューターから受信したときに、前記ブラウザー・キャッシュを前記リモート・ストアと同期させるように構成された、システム。
- 請求項1記載のシステムにおいて、前記ブラウザー・キャッシュ同期コンポーネントが、少なくとも1つの同期方針にしたがって、前記ブラウザー・キャッシュを前記リモート・ストアと同期させるように構成された、システム。
- 請求項3記載のシステムにおいて、少なくとも1つの同期方針が、
同期トリガーリング方針、
同期タイプ方針、
データー・オブジェクト比較方針、
データー・オブジェクト・タイプ合併方針、および
データー・オブジェクト不一致解決方針、
を含む1組の同期方針から選択される、システム。 - 請求項3記載のシステムにおいて、少なくとも1つの同期方針が、前記リモート・コンピューターによって定められる、システム。
- 請求項1記載のシステムにおいて、
前記ブラウザー・キャッシュが、前記コンピューターの計算環境に含まれており、
前記少なくとも1つのデーター・オブジェクトが、前記コンピューターの前記計算環境に格納された、システム。 - 請求項6記載のシステムにおいて、
前記計算環境が、配備可能な計算環境を含み、
前記リモート・コンピューターが、前記計算環境を管理するように構成された計算環境ホストを含み、
前記ブラウザー・キャッシュ同期コンポーネントが、前記計算環境を前記計算環境ホストと同期させるように構成された計算環境コンポーネントを含む、システム。 - 請求項1記載のシステムにおいて、前記ブラウザー・キャッシュ同期コンポーネントが、
前記データー・オブジェクトを同期させる前に、前記コンピューターから前記データー・オブジェクトに対してアクセス・ロックを要求し、
前記データー・オブジェクトの同期が完了したときに、前記データー・オブジェクトに対するアクセス・ロックを解除する、
ことによって、前記ブラウザー・キャッシュに格納されたデーター・オブジェクトを同期させるように構成された、システム。 - 請求項1記載のシステムにおいて、前記ブラウザー・キャッシュ同期コンポーネントが、同期プログラム・インターフェースを含み、この同期プログラム・インターフェースが、
少なくとも1つの同期方針の少なくとも1つの特性を開示するように構成された少なくとも1つの同期方針開示動作と、
少なくとも1つの同期方針の少なくとも1つの特性を設定するように構成された少なくとも1つの同期方針設定動作と、
を含む、システム。 - 請求項9記載のシステムにおいて、前記同期プログラム・インターフェースが、前記ブラウザー・キャッシュを前記リモート・ストアと同期させるために前記ブラウザー・キャッシュ同期コンポーネントを呼び出すように構成された同期呼び出し動作を含む、システム。
- 請求項1記載のシステムにおいて、前記ブラウザー・キャッシュに格納された少なくとも1つのデーター・オブジェクトが、前記ブラウザーにおいて実行するように構成されたアプリケーションと関連したアプリケーション/リソースを含む、システム。
- 請求項11記載のシステムにおいて、
前記データー・オブジェクトが、アプリケーション・インストーラ・パッケージを含み、
前記ブラウザー・キャッシュ同期コンポーネントが、前記リモート・コンピューターから前記データー・オブジェクトを受信したときに、前記アプリケーションをインストールするために前記アプリケーション・インストーラを呼び出すように構成された、システム。 - 請求項12記載のシステムにおいて、前記アプリケーションが、アプリケーション・ホストと関連付けられており、接続コンテキストおよび切断コンテキストを含む1組のアプリケーション・ホスト接続コンテキストから選択されたアプリケーション・ホスト接続コンテキストにおいて実行するように構成された、システム。
- 請求項13記載のシステムにおいて、
前記データー・オブジェクトが、オフライン・アプリケーション・リソースを含み、
前記アプリケーションが切断コンテキストにおいて実行するとき、該アプリケーションが前記オフライン・アプリケーション・リソースを使用するように構成された、システム。 - 配備可能な計算環境(84)を有するコンピューター(52)におけるブラウザー(16)のブラウザー・キャッシュ(20)を、前記計算環境(84)を管理するように構成された計算環境ホスト(82)を含むリモート・コンピューター(54)のリモート・ストア(56)と同期させるように構成されたシステム(42)であって、
前記コンピューター(52)において前記ブラウザー(16)内で実行し、前記ブラウザー・キャッシュ(20)において少なくとも1つの除去されたデーター・オブジェクト(24)の除去を含む、前記ブラウザー・キャッシュ(20)における少なくとも1つのデーター・オブジェクト(24)の書き込みを検出するように構成されたブラウザー・キャッシュ監視コンポーネント(44)と、
前記ブラウザー(16)外部のプロセスとして前記コンピューター(52)において実行するように構成されたブラウザー・キャッシュ同期コンポーネント(46)と、
を含み、前記ブラウザー・キャッシュ同期コンポーネント(46)が、
前記ブラウザー・キャッシュ監視コンポーネント(44)が書き込みを検出したときに、前記ブラウザー・キャッシュ(20)において、少なくとも1つの同期方針にしたがって、少なくとも1つの同期データー・オブジェクト規準に合うデーター・オブジェクト(24)を前記リモート・ストア(56)と同期させ、
前記ブラウザー・キャッシュ(20)を前記リモート・ストア(56)と同期させる通知を前記リモート・コンピューター(54)から受信したとき、、前記リモート・コンピューター(54)によって定められた少なくとも1つの同期方針にしたがって、前記ブラウザー・キャッシュ(20)において、少なくとも1つの同期データー・オブジェクト規準に合うデーター・オブジェクト(24)を、前記リモート・ストア(56)と同期させ、
アプリケーション(22)に同期プログラム・インターフェースを露出するように構成されており、前記同期プログラム・インターフェースが、
少なくとも1つの同期方針の少なくとも1つの特性を開示するように構成された少なくとも1つの同期方針開示動作と、
少なくとも1つの同期方針の少なくとも1つの特性を設定するように構成された少なくとも1つの同期方針設定動作と、
前記ブラウザー・キャッシュ(20)を前記リモート・ストア(56)と同期させるために、前記ブラウザー・キャッシュ同期コンピューター(46)を呼び出すように構成された同期呼び出し動作と、
を含む、システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/402,366 US8812451B2 (en) | 2009-03-11 | 2009-03-11 | Programming model for synchronizing browser caches across devices and web services |
US12/402,366 | 2009-03-11 | ||
PCT/US2010/024669 WO2010104659A2 (en) | 2009-03-11 | 2010-02-19 | Programming model for synchronizing browser caches across devices and web services |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012520504A true JP2012520504A (ja) | 2012-09-06 |
Family
ID=42729006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011554064A Withdrawn JP2012520504A (ja) | 2009-03-11 | 2010-02-19 | デバイスおよびウェブ・サービスにわたってブラウザー・キャッシュを同期させるためのプログラミング・モデル |
Country Status (9)
Country | Link |
---|---|
US (2) | US8812451B2 (ja) |
EP (1) | EP2406725A2 (ja) |
JP (1) | JP2012520504A (ja) |
KR (1) | KR101644666B1 (ja) |
CN (1) | CN102349062B (ja) |
BR (1) | BRPI1008362A2 (ja) |
RU (1) | RU2011137392A (ja) |
TW (1) | TW201033832A (ja) |
WO (1) | WO2010104659A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014154059A (ja) * | 2013-02-13 | 2014-08-25 | Mitsubishi Electric Corp | 時空管理装置及び時空管理プログラム |
JP2016523400A (ja) * | 2013-05-29 | 2016-08-08 | マイクロソフト テクノロジー ライセンシング,エルエルシー | 同期フレームワークの拡張可能性 |
Families Citing this family (103)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10419541B2 (en) | 2008-11-26 | 2019-09-17 | Free Stream Media Corp. | Remotely control devices over a network without authentication or registration |
US10334324B2 (en) | 2008-11-26 | 2019-06-25 | Free Stream Media Corp. | Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device |
US9961388B2 (en) | 2008-11-26 | 2018-05-01 | David Harrison | Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements |
US9519772B2 (en) | 2008-11-26 | 2016-12-13 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US10880340B2 (en) | 2008-11-26 | 2020-12-29 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US10977693B2 (en) | 2008-11-26 | 2021-04-13 | Free Stream Media Corp. | Association of content identifier of audio-visual data with additional data through capture infrastructure |
US10567823B2 (en) | 2008-11-26 | 2020-02-18 | Free Stream Media Corp. | Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device |
US9386356B2 (en) | 2008-11-26 | 2016-07-05 | Free Stream Media Corp. | Targeting with television audience data across multiple screens |
US9986279B2 (en) | 2008-11-26 | 2018-05-29 | Free Stream Media Corp. | Discovery, access control, and communication with networked services |
US9026668B2 (en) | 2012-05-26 | 2015-05-05 | Free Stream Media Corp. | Real-time and retargeted advertising on multiple screens of a user watching television |
US10631068B2 (en) | 2008-11-26 | 2020-04-21 | Free Stream Media Corp. | Content exposure attribution based on renderings of related content across multiple devices |
US8180891B1 (en) | 2008-11-26 | 2012-05-15 | Free Stream Media Corp. | Discovery, access control, and communication with networked services from within a security sandbox |
US9154942B2 (en) | 2008-11-26 | 2015-10-06 | Free Stream Media Corp. | Zero configuration communication between a browser and a networked media device |
US8812451B2 (en) | 2009-03-11 | 2014-08-19 | Microsoft Corporation | Programming model for synchronizing browser caches across devices and web services |
US9762701B1 (en) * | 2009-04-10 | 2017-09-12 | Open Invention Network Llc | System and method for cached streaming application isolation |
US9577893B1 (en) * | 2009-04-10 | 2017-02-21 | Open Invention Network Llc | System and method for cached streaming application isolation |
JP4792100B2 (ja) * | 2009-06-29 | 2011-10-12 | 株式会社東芝 | ファイル共有システム |
US8458239B2 (en) * | 2009-12-16 | 2013-06-04 | International Business Machines Corporation | Directory traversal in a scalable multi-node file system cache for a remote cluster file system |
US9158788B2 (en) | 2009-12-16 | 2015-10-13 | International Business Machines Corporation | Scalable caching of remote file data in a cluster file system |
US8473582B2 (en) * | 2009-12-16 | 2013-06-25 | International Business Machines Corporation | Disconnected file operations in a scalable multi-node file system cache for a remote cluster file system |
US8495250B2 (en) | 2009-12-16 | 2013-07-23 | International Business Machines Corporation | Asynchronous file operations in a scalable multi-node file system cache for a remote cluster file system |
US9111006B2 (en) * | 2010-03-16 | 2015-08-18 | Salesforce.Com, Inc. | System, method and computer program product for communicating data between a database and a cache |
US8386423B2 (en) * | 2010-05-28 | 2013-02-26 | Microsoft Corporation | Scalable policy-based database synchronization of scopes |
US8555155B2 (en) * | 2010-06-04 | 2013-10-08 | Apple Inc. | Reader mode presentation of web content |
US8935666B2 (en) * | 2010-06-30 | 2015-01-13 | Gordon G. MILLER, III | Systems and methods for dynamic mobile applications |
US20150195340A1 (en) * | 2010-09-30 | 2015-07-09 | Google Inc. | Determining if an Application is Cached |
US8635271B1 (en) | 2010-10-01 | 2014-01-21 | Google Inc. | Method and system for maintaining client cache coherency in a distributed network system |
US9165285B2 (en) | 2010-12-08 | 2015-10-20 | Microsoft Technology Licensing, Llc | Shared attachments |
US20120174212A1 (en) * | 2010-12-29 | 2012-07-05 | Microsoft Corporation | Connected account provider for multiple personal computers |
TWI468951B (zh) * | 2011-01-06 | 2015-01-11 | Tencent Tech Shenzhen Co Ltd | A method and device for implementing subscription information from a web page |
US9740587B2 (en) | 2011-01-28 | 2017-08-22 | Hewlett-Packard Development Company, L.P. | Distributing power usage data for low-level components of a computing device to subscribing programs |
US10552799B2 (en) | 2011-04-28 | 2020-02-04 | Microsoft Technology Licensing, Llc | Upload of attachment and insertion of link into electronic messages |
US9137185B2 (en) | 2011-04-28 | 2015-09-15 | Microsoft Technology Licensing, Llc | Uploading attachment to shared location and replacing with a link |
US11308449B2 (en) | 2011-04-28 | 2022-04-19 | Microsoft Technology Licensing, Llc | Storing metadata inside file to reference shared version of file |
US8682989B2 (en) | 2011-04-28 | 2014-03-25 | Microsoft Corporation | Making document changes by replying to electronic messages |
US10185932B2 (en) | 2011-05-06 | 2019-01-22 | Microsoft Technology Licensing, Llc | Setting permissions for links forwarded in electronic messages |
US8977947B2 (en) | 2011-06-03 | 2015-03-10 | Apple Inc. | Method for presenting documents using a reading list panel |
US8850516B1 (en) | 2011-06-22 | 2014-09-30 | Emc Corporation | Virtual private cloud that provides enterprise grade functionality and compliance |
US9417759B1 (en) * | 2011-06-27 | 2016-08-16 | Google Inc. | Synchronizing data across multiple browser tabs or windows |
KR20130028375A (ko) * | 2011-09-09 | 2013-03-19 | 주식회사 팬택 | Html5 기반의 웹브라우저 작업 환경 동기화 모바일 장치 및 그 방법 |
US9152732B2 (en) * | 2011-11-02 | 2015-10-06 | Microsoft Technology Licensing, Llc. | Browser cache assist for accessing web-based content |
US8225191B1 (en) * | 2011-11-07 | 2012-07-17 | Google Inc. | Synchronizing web browsers |
US9661073B2 (en) * | 2011-11-18 | 2017-05-23 | Google Inc. | Web browser synchronization with multiple simultaneous profiles |
CN102523285B (zh) * | 2011-12-15 | 2014-04-02 | 杭州电子科技大学 | 一种基于对象分布式文件系统的存储缓存方法 |
KR101672349B1 (ko) * | 2011-12-27 | 2016-11-07 | 한국전자통신연구원 | 파일 클라우드 서비스 장치 및 방법 |
US20140108091A1 (en) * | 2012-04-19 | 2014-04-17 | FullCircle CRM | Method and System for Attributing Metrics in a CRM System |
US9122766B2 (en) * | 2012-09-06 | 2015-09-01 | Microsoft Technology Licensing, Llc | Replacement time based caching for providing server-hosted content |
US9338508B2 (en) | 2012-10-23 | 2016-05-10 | Google Technology Holdings LLC | Preserving a consumption context for a user session |
US9781192B2 (en) | 2013-01-25 | 2017-10-03 | Qualcomm Incorporated | Device management service |
KR102015108B1 (ko) | 2013-03-12 | 2019-10-22 | 한국전자통신연구원 | 이종 서비스 간 서비스 제공 방법과 사용자 단말 및 웹 서버 |
US20150058834A1 (en) * | 2013-03-15 | 2015-02-26 | Innopath Software, Inc. | Distributing software for updating of client devices |
US9535681B2 (en) | 2013-03-15 | 2017-01-03 | Qualcomm Incorporated | Validating availability of firmware updates for client devices |
US20140359488A1 (en) * | 2013-05-29 | 2014-12-04 | Microsoft Corporation | Centralized Management of Link Data for Multiple Applications, Computers and Resources, through Operating Systems and Networked Storage Services |
US10229181B2 (en) * | 2013-07-16 | 2019-03-12 | Pankaj Sharma | System and method for synchronizing data between communication devices in a networked environment without a central server |
US9503541B2 (en) * | 2013-08-21 | 2016-11-22 | International Business Machines Corporation | Fast mobile web applications using cloud caching |
US20150067089A1 (en) * | 2013-09-05 | 2015-03-05 | Hintroapps Limited | Metadata driven declarative client-side session management and differential server side data submission |
JP6292810B2 (ja) * | 2013-10-02 | 2018-03-14 | キヤノン株式会社 | データ同期方法、データ同期装置およびプログラム |
US9542467B2 (en) | 2013-11-18 | 2017-01-10 | International Business Machines Corporation | Efficiently firing mapping and transform rules during bidirectional synchronization |
US9367597B2 (en) * | 2013-11-18 | 2016-06-14 | International Business Machines Corporation | Automatically managing mapping and transform rules when synchronizing systems |
US10402744B2 (en) | 2013-11-18 | 2019-09-03 | International Busniess Machines Corporation | Automatically self-learning bidirectional synchronization of a source system and a target system |
US9779069B2 (en) | 2014-01-31 | 2017-10-03 | Yahoo Holdings, Inc. | Model traversing based compressed serialization of user interaction data and communication from a client-side application |
US9959255B2 (en) | 2014-01-31 | 2018-05-01 | Yahoo Holdings, Inc. | Dynamic streaming content provided by server and client-side tracking application |
US9680897B2 (en) * | 2014-01-31 | 2017-06-13 | Yahoo! Inc. | Throttled scanning for optimized compression of network communicated data |
US11095743B2 (en) | 2014-07-16 | 2021-08-17 | Tensera Networks Ltd. | Optimized content-delivery network (CDN) for the wireless last mile |
US10432748B2 (en) * | 2014-07-16 | 2019-10-01 | Tensera Networks Ltd. | Efficient content delivery over wireless networks using guaranteed prefetching at selected times-of-day |
RU2608668C2 (ru) * | 2014-07-30 | 2017-01-23 | Общество С Ограниченной Ответственностью "Яндекс" | Система и способ управления и организации кэша веб-браузера для обеспечения автономного просмотра |
US20170286448A1 (en) * | 2014-08-27 | 2017-10-05 | Hewlett-Packard Development Company, L.P. | Portable storage device |
US9792266B1 (en) * | 2014-12-08 | 2017-10-17 | Amazon Technologies, Inc. | Content synchronization across devices |
US10452317B2 (en) * | 2014-12-31 | 2019-10-22 | Pure Storage, Inc. | DAP redistribution operation within a dispersed storage network |
US20180107728A1 (en) * | 2014-12-31 | 2018-04-19 | International Business Machines Corporation | Using tombstone objects to synchronize deletes |
US10656866B2 (en) * | 2014-12-31 | 2020-05-19 | Pure Storage, Inc. | Unidirectional vault synchronization to support tiering |
US10126974B2 (en) * | 2014-12-31 | 2018-11-13 | International Business Machines Corporation | Redistributing encoded data slices in a dispersed storage network |
US20180101434A1 (en) * | 2014-12-31 | 2018-04-12 | International Business Machines Corporation | Listing types in a distributed storage system |
US20180107535A1 (en) * | 2014-12-31 | 2018-04-19 | International Business Machines Corporation | Vault redundancy reduction within a dispersed storage network |
US20180107398A1 (en) * | 2014-12-31 | 2018-04-19 | International Business Machines Corporation | Vault synchronization within a dispersed storage network |
US20160321285A1 (en) * | 2015-05-02 | 2016-11-03 | Mohammad Faraz RASHID | Method for organizing and distributing data |
US9760459B2 (en) * | 2015-06-10 | 2017-09-12 | International Business Machines Corporation | Synchronization policies among nodes |
AU2015255223B2 (en) * | 2015-08-26 | 2021-02-25 | Roar Software Pty Ltd | System and process for generating an internet application |
US11783120B2 (en) * | 2015-08-26 | 2023-10-10 | Roar Software Pty Ltd. | System and process for generating an internet application |
US10929201B2 (en) * | 2015-10-22 | 2021-02-23 | Wind River Systems, Inc. | Method and system for implementing generation locks |
WO2017119869A1 (en) * | 2016-01-05 | 2017-07-13 | Entit Software Llc | Resource requests |
CN107241372A (zh) | 2016-03-29 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 配置信息生成、发送方法及资源加载方法和装置及系统 |
US10469611B2 (en) | 2016-05-03 | 2019-11-05 | Microsoft Technology Licensing, Llc | Reduced page load time utilizing cache storage |
US10394468B2 (en) * | 2017-02-23 | 2019-08-27 | International Business Machines Corporation | Handling data slice revisions in a dispersed storage network |
US10901738B2 (en) | 2017-11-14 | 2021-01-26 | International Business Machines Corporation | Bulk store and load operations of configuration state registers |
US10496437B2 (en) | 2017-11-14 | 2019-12-03 | International Business Machines Corporation | Context switch by changing memory pointers |
US10761983B2 (en) * | 2017-11-14 | 2020-09-01 | International Business Machines Corporation | Memory based configuration state registers |
US10635602B2 (en) | 2017-11-14 | 2020-04-28 | International Business Machines Corporation | Address translation prior to receiving a storage reference using the address to be translated |
US10558366B2 (en) | 2017-11-14 | 2020-02-11 | International Business Machines Corporation | Automatic pinning of units of memory |
US10761751B2 (en) | 2017-11-14 | 2020-09-01 | International Business Machines Corporation | Configuration state registers grouped based on functional affinity |
US10698686B2 (en) | 2017-11-14 | 2020-06-30 | International Business Machines Corporation | Configurable architectural placement control |
US10642757B2 (en) | 2017-11-14 | 2020-05-05 | International Business Machines Corporation | Single call to perform pin and unpin operations |
US10664181B2 (en) | 2017-11-14 | 2020-05-26 | International Business Machines Corporation | Protecting in-memory configuration state registers |
US10592164B2 (en) | 2017-11-14 | 2020-03-17 | International Business Machines Corporation | Portions of configuration state registers in-memory |
US11922187B2 (en) | 2018-03-05 | 2024-03-05 | Tensera Networks Ltd. | Robust application preloading with accurate user experience |
US11915012B2 (en) | 2018-03-05 | 2024-02-27 | Tensera Networks Ltd. | Application preloading in the presence of user actions |
CN111314396B (zh) * | 2018-12-11 | 2022-11-25 | 杭州海康威视数字技术股份有限公司 | 数据处理方法及装置 |
EP4004767A4 (en) | 2019-07-30 | 2023-03-08 | Tensera Networks Ltd. | PRE-RENDERING APPLICATION USER INTERFACES INTO USER DEVICES |
US11544344B2 (en) * | 2019-11-06 | 2023-01-03 | Citrix Systems, Inc. | Remote web browsing service |
US11593026B2 (en) | 2020-03-06 | 2023-02-28 | International Business Machines Corporation | Zone storage optimization using predictive protocol patterns |
CN116670646A (zh) | 2020-12-03 | 2023-08-29 | 腾赛拉网络有限公司 | 预加载具有现有任务的应用 |
CN112528187B (zh) * | 2020-12-18 | 2024-04-30 | 上海中通吉网络技术有限公司 | 浏览器数据缓存处理方法、装置和系统 |
US11860771B1 (en) * | 2022-09-26 | 2024-01-02 | Browserstack Limited | Multisession mode in remote device infrastructure |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7080051B1 (en) | 1993-11-04 | 2006-07-18 | Crawford Christopher M | Internet download systems and methods providing software to internet computer users for local execution |
US6594682B2 (en) * | 1997-10-28 | 2003-07-15 | Microsoft Corporation | Client-side system for scheduling delivery of web content and locally managing the web content |
US6505300B2 (en) | 1998-06-12 | 2003-01-07 | Microsoft Corporation | Method and system for secure running of untrusted content |
US6151599A (en) * | 1998-07-17 | 2000-11-21 | International Business Machines Corporation | Web client scripting test architecture for web server-based authentication |
US6233606B1 (en) * | 1998-12-01 | 2001-05-15 | Microsoft Corporation | Automatic cache synchronization |
US6615253B1 (en) | 1999-08-31 | 2003-09-02 | Accenture Llp | Efficient server side data retrieval for execution of client side applications |
US6546554B1 (en) | 2000-01-21 | 2003-04-08 | Sun Microsystems, Inc. | Browser-independent and automatic apparatus and method for receiving, installing and launching applications from a browser on a client computer |
US6725262B1 (en) * | 2000-04-27 | 2004-04-20 | Microsoft Corporation | Methods and systems for synchronizing multiple computing devices |
US7219304B1 (en) * | 2000-06-19 | 2007-05-15 | International Business Machines Corporation | System and method for developing and administering web applications and services from a workflow, enterprise, and mail-enabled web application server and platform |
US20020103822A1 (en) | 2001-02-01 | 2002-08-01 | Isaac Miller | Method and system for customizing an object for downloading via the internet |
US20070220000A1 (en) * | 2001-05-09 | 2007-09-20 | Walsh Aaron E | Universal Cache |
US7263712B2 (en) * | 2001-05-29 | 2007-08-28 | Intel Corporation | Enabling a PC-DTV receiver to share the resource cache with multiple clients |
US7275243B2 (en) | 2002-03-22 | 2007-09-25 | Sun Microsystems, Inc. | Mobile download system |
US20030217142A1 (en) | 2002-05-15 | 2003-11-20 | Microsoft Corporation | Method and system for supporting the communication of presence information regarding one or more telephony devices |
US8255548B2 (en) * | 2002-06-13 | 2012-08-28 | Salesforce.Com, Inc. | Offline web services API to mirror online web services API |
US6941310B2 (en) | 2002-07-17 | 2005-09-06 | Oracle International Corp. | System and method for caching data for a mobile application |
US7606314B2 (en) * | 2002-08-29 | 2009-10-20 | Raritan America, Inc. | Method and apparatus for caching, compressing and transmitting video signals |
GB0321674D0 (en) * | 2003-09-16 | 2003-10-15 | Cognima Ltd | Catching content on phones |
US7694328B2 (en) | 2003-10-21 | 2010-04-06 | Google Inc. | Systems and methods for secure client applications |
US7272782B2 (en) * | 2003-12-19 | 2007-09-18 | Backweb Technologies, Inc. | System and method for providing offline web application, page, and form access in a networked environment |
US20050240558A1 (en) | 2004-04-13 | 2005-10-27 | Reynaldo Gil | Virtual server operating on one or more client devices |
US20060053368A1 (en) * | 2004-05-20 | 2006-03-09 | Bea Systems, Inc. | Conduit manager for occasionally-connected application server |
US7383405B2 (en) | 2004-06-30 | 2008-06-03 | Microsoft Corporation | Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity |
CA2486103A1 (en) | 2004-10-26 | 2006-04-26 | Platespin Ltd. | System and method for autonomic optimization of physical and virtual resource use in a data center |
US8082541B2 (en) | 2004-12-09 | 2011-12-20 | Advantest Corporation | Method and system for performing installation and configuration management of tester instrument modules |
US7664788B2 (en) * | 2005-01-10 | 2010-02-16 | Microsoft Corporation | Method and system for synchronizing cached files |
CA2513016A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | A secure method of synchronizing cache contents of a mobile browser with a proxy server |
US20070033155A1 (en) | 2005-08-02 | 2007-02-08 | Landsman Richard A | Client/server web application architectures for offline usage, data structures, and related methods |
US8601475B2 (en) | 2005-08-02 | 2013-12-03 | Aol Inc. | Download and upload of email messages using control commands in a client/server web application |
US7594003B2 (en) | 2005-08-02 | 2009-09-22 | Aol Llc | Client/server web application architectures for offline usage, data structures, and related methods |
US8429630B2 (en) | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
CN1956449B (zh) | 2005-10-28 | 2011-05-18 | 北京书生国际信息技术有限公司 | 数据资源防复制加密传输方法及设备系统 |
US8606895B2 (en) | 2006-01-17 | 2013-12-10 | Kidaro (Israel) Ltd. | Seamless integration of multiple computing environments |
JP4514718B2 (ja) | 2006-01-20 | 2010-07-28 | 株式会社豊田中央研究所 | 膜電極接合体及び固体高分子型燃料電池 |
JP2007208458A (ja) * | 2006-01-31 | 2007-08-16 | Fujifilm Corp | 通信システム、通信端末および通信方法 |
US20080072053A1 (en) * | 2006-09-15 | 2008-03-20 | Halim Budi S | Web-based authentication system and method |
US20080098093A1 (en) * | 2006-10-16 | 2008-04-24 | Palm, Inc. | Offline automated proxy cache for web applications |
US7814234B2 (en) * | 2006-10-30 | 2010-10-12 | Microsoft Corporation | Offline execution of web based applications |
US8166515B2 (en) | 2006-10-30 | 2012-04-24 | Microsoft Corporation | Group policy for unique class identifier devices |
US20080147671A1 (en) | 2006-12-18 | 2008-06-19 | Lampdesk Corporation | System for Running Web Applications Offline and Providing Access to Native Services |
US20080148298A1 (en) | 2006-12-18 | 2008-06-19 | Palm, Inc. | System and Methods for Providing Granular Security for Locally Running Scripted Environments and Web Applications |
US7870596B2 (en) | 2007-02-01 | 2011-01-11 | Microsoft Corporation | Accessing network resources outside a security boundary |
US20080189767A1 (en) | 2007-02-01 | 2008-08-07 | Microsoft Corporation | Accessing file resources outside a security boundary |
US8452853B2 (en) * | 2007-03-05 | 2013-05-28 | International Business Machines Corporation | Browser with offline web-application architecture |
US8702501B2 (en) | 2007-04-05 | 2014-04-22 | Igt | Formation and use of formal partnerships for play games |
US8171109B2 (en) * | 2007-05-30 | 2012-05-01 | Red Hat, Inc. | Mobile bookmarks |
US8458612B2 (en) | 2007-07-29 | 2013-06-04 | Hewlett-Packard Development Company, L.P. | Application management framework for web applications |
US8725679B2 (en) * | 2008-04-07 | 2014-05-13 | International Business Machines Corporation | Client side caching of synchronized data |
CN101309291B (zh) | 2008-05-30 | 2011-04-20 | 中兴通讯股份有限公司 | 终端数据维护的工具和方法 |
US8627328B2 (en) | 2008-11-14 | 2014-01-07 | Oracle International Corporation | Operation control for deploying and managing software service in a virtual environment |
US8812451B2 (en) * | 2009-03-11 | 2014-08-19 | Microsoft Corporation | Programming model for synchronizing browser caches across devices and web services |
US8090797B2 (en) | 2009-05-02 | 2012-01-03 | Citrix Systems, Inc. | Methods and systems for launching applications into existing isolation environments |
US8464319B2 (en) | 2010-01-08 | 2013-06-11 | Microsoft Corporation | Resource access based on multiple scope levels |
US20130219383A1 (en) * | 2012-02-16 | 2013-08-22 | Israel Hilerio | Using an Application Cache to Update Resources of Installed Applications |
EP3012739A1 (en) * | 2014-10-20 | 2016-04-27 | TISOFT Wojciech Jedrzejewski | System for synchronizing web browsers |
-
2009
- 2009-03-11 US US12/402,366 patent/US8812451B2/en active Active
-
2010
- 2010-02-10 TW TW099104197A patent/TW201033832A/zh unknown
- 2010-02-19 KR KR1020117020852A patent/KR101644666B1/ko active IP Right Grant
- 2010-02-19 RU RU2011137392/08A patent/RU2011137392A/ru not_active Application Discontinuation
- 2010-02-19 BR BRPI1008362A patent/BRPI1008362A2/pt not_active IP Right Cessation
- 2010-02-19 EP EP10751165A patent/EP2406725A2/en not_active Withdrawn
- 2010-02-19 CN CN2010800112929A patent/CN102349062B/zh active Active
- 2010-02-19 JP JP2011554064A patent/JP2012520504A/ja not_active Withdrawn
- 2010-02-19 WO PCT/US2010/024669 patent/WO2010104659A2/en active Application Filing
-
2014
- 2014-08-18 US US14/462,325 patent/US10242023B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014154059A (ja) * | 2013-02-13 | 2014-08-25 | Mitsubishi Electric Corp | 時空管理装置及び時空管理プログラム |
JP2016523400A (ja) * | 2013-05-29 | 2016-08-08 | マイクロソフト テクノロジー ライセンシング,エルエルシー | 同期フレームワークの拡張可能性 |
Also Published As
Publication number | Publication date |
---|---|
EP2406725A2 (en) | 2012-01-18 |
BRPI1008362A2 (pt) | 2018-03-06 |
KR101644666B1 (ko) | 2016-08-01 |
US10242023B2 (en) | 2019-03-26 |
US8812451B2 (en) | 2014-08-19 |
RU2011137392A (ru) | 2013-03-20 |
TW201033832A (en) | 2010-09-16 |
US20100235321A1 (en) | 2010-09-16 |
CN102349062B (zh) | 2013-10-30 |
KR20110128846A (ko) | 2011-11-30 |
WO2010104659A2 (en) | 2010-09-16 |
CN102349062A (zh) | 2012-02-08 |
WO2010104659A3 (en) | 2010-12-09 |
US20150046519A1 (en) | 2015-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10242023B2 (en) | Programming model for synchronizing browser caches across devices and web services | |
US11740891B2 (en) | Providing access to a hybrid application offline | |
US20210357200A1 (en) | Application management within deployable object hierarchy | |
US8572033B2 (en) | Computing environment configuration | |
US9298747B2 (en) | Deployable, consistent, and extensible computing environment platform | |
US9489440B2 (en) | Opportunistic, priority-based object synchronization | |
EP2815311B1 (en) | Using an application cache to update resources of installed applications | |
US10185549B2 (en) | Updating live system with static changes | |
CN103514298A (zh) | 一种实现文件锁的方法及元数据服务器 | |
US20120102484A1 (en) | Installing software remotely using a high privilege process | |
US10140155B2 (en) | Dynamically provisioning, managing, and executing tasks | |
JP2015049826A (ja) | 営業情報同期システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20130507 |