(57)【要約】コンピューター・ユーザーは、１組のコンピューターを含む計算環境を用いることができる。１組のコンピューターは、それぞれ、アプリケーション・リソースおよびユーザー発生データー・ファイルを含む多くのタイプのデーター・オブジェクトを含むブラウザー・キャッシュを有するウェブ・ブラウザーを特徴とする。しかしながら、ブラウザー・キャッシュの内容は、コンピューターの計算環境に大きく寄与し、各コンピューターによって提示される計算環境は広がり、一貫性のない計算環境が提供されることもある。代わりに、計算環境を構成するコンピューターのブラウザー・キャッシュの内容を、全コンピューターにわたって同期させることができる。加えて、ブラウザー・キャッシュを計算環境の他のデーター・オブジェクト（ファイルシステムの関連部分のような）と同期させることができ、同期は、アプリケーションとは独立して実行するブラウザー外部プロセスとして、ブラウザーが実行していなくても、実現することができる。そして、ウェブ・アプリケーションが相互作用することができるプログラム・アクセスによって、同期を露出させることができる。【選択図】図３
2012520504.tif 000002
【特許請求の範囲】
【請求項１】
コンピューター（５２）におけるブラウザー（１６）のブラウザー・キャッシュ（２０）をリモート・コンピューター（５４）のリモート・ストア（５６）と同期させるように構成されたシステム（４２）であって、
前記ブラウザー・キャッシュ（２０）における少なくとも１つのデーター・オブジェクト（２４）の書き込みを検出するように構成されたブラウザー・キャッシュ監視コンポーネント（４４）と、
前記ブラウザー・キャッシュ監視コンポーネント（４４）が前記書き込みを検出したときに、前記ブラウザー・キャッシュ（２０）を前記リモート・ストア（５６）と同期させるように構成されたブラウザー・キャッシュ同期コンポーネント（４６）と、
を含む、システム（４２）。
【請求項２】
請求項１記載のシステムにおいて、前記ブラウザー・キャッシュ同期コンポーネントが、前記ブラウザー・キャッシュを前記リモート・ストアと同期させる通知を前記リモート・コンピューターから受信したときに、前記ブラウザー・キャッシュを前記リモート・ストアと同期させるように構成された、システム。
【請求項３】
請求項１記載のシステムにおいて、前記ブラウザー・キャッシュ同期コンポーネントが、少なくとも１つの同期方針にしたがって、前記ブラウザー・キャッシュを前記リモート・ストアと同期させるように構成された、システム。
【請求項４】
請求項３記載のシステムにおいて、少なくとも１つの同期方針が、
同期トリガーリング方針、
同期タイプ方針、
データー・オブジェクト比較方針、
データー・オブジェクト・タイプ合併方針、および
データー・オブジェクト不一致解決方針、
を含む１組の同期方針から選択される、システム。
【請求項５】
請求項３記載のシステムにおいて、少なくとも１つの同期方針が、前記リモート・コンピューターによって定められる、システム。
【請求項６】
請求項１記載のシステムにおいて、
前記ブラウザー・キャッシュが、前記コンピューターの計算環境に含まれており、
前記少なくとも１つのデーター・オブジェクトが、前記コンピューターの前記計算環境に格納された、システム。
【請求項７】
請求項６記載のシステムにおいて、
前記計算環境が、配備可能な計算環境を含み、
前記リモート・コンピューターが、前記計算環境を管理するように構成された計算環境ホストを含み、
前記ブラウザー・キャッシュ同期コンポーネントが、前記計算環境を前記計算環境ホストと同期させるように構成された計算環境コンポーネントを含む、システム。
【請求項８】
請求項１記載のシステムにおいて、前記ブラウザー・キャッシュ同期コンポーネントが、
前記データー・オブジェクトを同期させる前に、前記コンピューターから前記データー・オブジェクトに対してアクセス・ロックを要求し、
前記データー・オブジェクトの同期が完了したときに、前記データー・オブジェクトに対するアクセス・ロックを解除する、
ことによって、前記ブラウザー・キャッシュに格納されたデーター・オブジェクトを同期させるように構成された、システム。
【請求項９】
請求項１記載のシステムにおいて、前記ブラウザー・キャッシュ同期コンポーネントが、同期プログラム・インターフェースを含み、この同期プログラム・インターフェースが、
少なくとも１つの同期方針の少なくとも１つの特性を開示するように構成された少なくとも１つの同期方針開示動作と、
少なくとも１つの同期方針の少なくとも１つの特性を設定するように構成された少なくとも１つの同期方針設定動作と、
を含む、システム。
【請求項１０】
請求項９記載のシステムにおいて、前記同期プログラム・インターフェースが、前記ブラウザー・キャッシュを前記リモート・ストアと同期させるために前記ブラウザー・キャッシュ同期コンポーネントを呼び出すように構成された同期呼び出し動作を含む、システム。
【請求項１１】
請求項１記載のシステムにおいて、前記ブラウザー・キャッシュに格納された少なくとも１つのデーター・オブジェクトが、前記ブラウザーにおいて実行するように構成されたアプリケーションと関連したアプリケーション／リソースを含む、システム。
【請求項１２】
請求項１１記載のシステムにおいて、
前記データー・オブジェクトが、アプリケーション・インストーラ・パッケージを含み、
前記ブラウザー・キャッシュ同期コンポーネントが、前記リモート・コンピューターから前記データー・オブジェクトを受信したときに、前記アプリケーションをインストールするために前記アプリケーション・インストーラを呼び出すように構成された、システム。
【請求項１３】
請求項1２記載のシステムにおいて、前記アプリケーションが、アプリケーション・ホストと関連付けられており、接続コンテキストおよび切断コンテキストを含む１組のアプリケーション・ホスト接続コンテキストから選択されたアプリケーション・ホスト接続コンテキストにおいて実行するように構成された、システム。
【請求項１４】
請求項１３記載のシステムにおいて、
前記データー・オブジェクトが、オフライン・アプリケーション・リソースを含み、
前記アプリケーションが切断コンテキストにおいて実行するとき、該アプリケーションが前記オフライン・アプリケーション・リソースを使用するように構成された、システム。
【請求項１５】
配備可能な計算環境（８４）を有するコンピューター（５２）におけるブラウザー（１６）のブラウザー・キャッシュ（２０）を、前記計算環境（８４）を管理するように構成された計算環境ホスト（８２）を含むリモート・コンピューター（５４）のリモート・ストア（５６）と同期させるように構成されたシステム（４２）であって、
前記コンピューター（５２）において前記ブラウザー（１６）内で実行し、前記ブラウザー・キャッシュ（２０）において少なくとも１つの除去されたデーター・オブジェクト（２４）の除去を含む、前記ブラウザー・キャッシュ（２０）における少なくとも１つのデーター・オブジェクト（２４）の書き込みを検出するように構成されたブラウザー・キャッシュ監視コンポーネント（４４）と、
前記ブラウザー（１６）外部のプロセスとして前記コンピューター（５２）において実行するように構成されたブラウザー・キャッシュ同期コンポーネント（４６）と、
を含み、前記ブラウザー・キャッシュ同期コンポーネント（４６）が、
前記ブラウザー・キャッシュ監視コンポーネント（４４）が書き込みを検出したときに、前記ブラウザー・キャッシュ（２０）において、少なくとも１つの同期方針にしたがって、少なくとも１つの同期データー・オブジェクト規準に合うデーター・オブジェクト（２４）を前記リモート・ストア（５６）と同期させ、
前記ブラウザー・キャッシュ（２０）を前記リモート・ストア（５６）と同期させる通知を前記リモート・コンピューター（５４）から受信したとき、、前記リモート・コンピューター（５４）によって定められた少なくとも１つの同期方針にしたがって、前記ブラウザー・キャッシュ（２０）において、少なくとも１つの同期データー・オブジェクト規準に合うデーター・オブジェクト（２４）を、前記リモート・ストア（５６）と同期させ、
アプリケーション（２２）に同期プログラム・インターフェースを露出するように構成されており、前記同期プログラム・インターフェースが、
少なくとも１つの同期方針の少なくとも１つの特性を開示するように構成された少なくとも1つの同期方針開示動作と、
少なくとも１つの同期方針の少なくとも１つの特性を設定するように構成された少なくとも１つの同期方針設定動作と、
前記ブラウザー・キャッシュ（２０）を前記リモート・ストア（５６）と同期させるために、前記ブラウザー・キャッシュ同期コンピューター（４６）を呼び出すように構成された同期呼び出し動作と、
を含む、システム。
【発明の詳細な説明】
【従来技術】
【０００１】
[0001]  ウェブサーバーは、ＨＴＭＬページ、メディア・オブジェクト、データー・ストア、および実行可能スクリプトというような１組のデーター・オブジェクトを格納することが多い。これらのデーターは、ウェブ・ブラウザーに供給され、このウェブ・ブラウザーによってレンダリングされて、ウェブサイトを構成する１組のウェブ・ページを提示する。ウェブ・ブラウザーは、通例、ブラウザー・キャッシュを含み、受信した項目が、その後にレンダリングされるウェブ・ページにおける再利用のために格納されることによって、ウェブ・ブラウザーの性能を向上し、ウェブサーバーのリソースを節約し、ウェブサーバーにアクセスできないときには、任意にウェブ・ページをレンダリングする限定的な能力を提供することができる。コンピューター・システム内部にある他のタイプのデーター・オブジェクト（ユーザー文書、アプリケーションおよびオペレーティング・システム・バイナリー、ならびにアプリケーション・コンフィギュレーション情報というような）とは対照的に、ブラウザー・キャッシュに含まれるデーター・オブジェクトは、通例では、一時的で使い捨てと見なされていた。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
[0002]  この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を限定するために用いられることを意図するのでもない。
【０００３】
[0003]  ウェブ技術における開発の結果、一層洗練されたタイプのウェブサイトが得られることとなった。これらのウェブサイトは、ウェブ・ブラウザー内部で実行するウェブ・アプリケーションを組み込むことができる。このようなウェブサイトおよびウェブ・アプリケーションを備えているデーター・オブジェクトは、ブラウザー・キャッシュに格納されることが多く、そしてウェブ・ブラウザーがネットワークに接続されていないときや、ウェブサーバーがオフラインになっているときというように、ウェブサーバーにアクセスできないときに、このようなウェブサイトのレンダリング、およびこのようなウェブ・アプリケーションの実行を可能にすることが望ましい場合がある。また、このようなデーター・オブジェクトは、様々なタイプのブラウザー・キャッシュ（例えば、ブラウザーがホストするアプリケーションのアプリケーション・リソースを格納するアプリケーション・キャッシュ、ならびにＨＴＭＬ文書および画像のような、ウェブサイトから引き出されるデーター・オブジェクトを格納するコンテンツ・キャッシュ）に格納することもできる。
【０００４】
[0004]  現世代のユーザーは、１組のコンピューター（例えば、携帯用コンピューター、ワークステーション、およびセルフォン・デバイス）を利用することが多く、これらのコンピューターがユーザーに、 ユーザーの文書、インストールされたアプリケーション、アプリケーションおよびオペレーティング・システムのコンフィギュレーション情報、ユーザー・プロファイル、種々の個人の表現（例えば、住所録に格納されている連絡先）等のような、計算環境を集合的に提示することができる。更に、これらのコンピューターの特定の態様を同期させて、このようなコンピューター全てにわたって計算環境の一貫性を改善することもできる。しかしながら、それぞれのコンピューターが、ブラウザー・キャッシュを有するブラウザーを備えていることもあり、その内容は、ユーザーが各コンピューターと異なる対話処理を行うので、異なる可能性がある。ブラウザー・キャッシュの内容が、オフラインで利用可能なアプリケーションや保存されているユーザー文書のような、１組の重要なデーター・オブジェクトを含み、これらが増々増えて行くと、このようなコンピューター間におけるこのようなウェブ・キャッシュの分化(divergence)のために、利用可能なアプリケーションの食い違い(inconsistency)、格納されている文書のバージョン不一致(conflicting)、およびメディア・ライブラリの不一致(discrepancy)というような、コンピューター特定差異(computer-specific differences)に至る可能性がある。
【課題を解決するための手段】
【０００５】
[0005]  このような食い違いやバージョン不一致を低減するためには、このようなコンピューターのブラウザー・キャッシュを同期させるとよい。計算環境を共有する１組のコンピューター間において、あるコンピューターは、変化を見いだすためにそのブラウザー・キャッシュの状態を監視し、種々の同期方針にしたがって、他のコンピューターのブラウザー・キャッシュと同期するように構成することができる。このブラウザー・キャッシュの同期は、このようなコンピューター間における全体的な計算環境の同期に含めることもでき、これによって、同期プロセスの効率を高め、コンピューター・リソースを節約することができる。加えて、ウェブ・ブラウザーにおいて実行するアプリケーションが、種々のデーター・オブジェクトの同期を要求することにより、そしてブラウザー・キャッシュの同期方針についての情報を特定することによるというようにして、ブラウザー・キャッシュの同期と相互作用することを可能にするために、プログラム・インターフェースを設けることもできる。ユーザーが利用する種々のコンピューターのブラウザー・キャッシュの一貫性を維持することによって、これらの技法は、ユーザーのデーター・オブジェクトおよび計算環境の一貫性を促進することができる。
【０００６】
[0006]  以上の目的および関連する目的に関連して、以下の説明および添付図面は、ある種の例示的態様および実施態様を明示する。これらは、しかしながら、１つ以上の態様を採用することができる種々の方法の内少数を示すに過ぎない。本開示の他の態様、利点、および新規な特徴は、以下の詳細な説明を添付図面と合わせて考慮することから明白となろう。
【図面の簡単な説明】
【０００７】
【図１】図１は、ブラウザー・キャッシュを有するブラウザーを表す１組のコンピューターを伴うシナリオ例を示すコンポーネント・ブロック図である。
【図２】図２は、同期可能なブラウザー・キャッシュを有するブラウザーを表す、１組のコンピューターを伴うシナリオ例を示すコンポーネント・ブロック図である。
【図３】図３は、コンピューターにおけるブラウザーのブラウザー・キャッシュを、リモート・コンピューターのリモート・ストアと同期させるように構成されているシステム例を示すコンポーネント・ブロック図である。
【図４】図４は、本明細書において明示する設備(provisions)の１つ以上を具体化するように構成されているプロセッサ実行可能命令を備えているコンピューター読み取り可能媒体例の図である。
【図５】図５は、計算環境ホストと種々の計算環境レンダリング・デバイスとの対話処理例の図である。
【図６】図６は、本明細書において明示した設備の１つ以上を実現することができる計算環境例を示す。
【発明を実施するための形態】
【０００８】
[0013]  これより、図面を参照しながら、特許請求する主題について説明する。図面では、全体を通じて、同様のエレメントを指すために同様の参照番号が用いられている。以下の説明では、説明の目的上、特許請求する主題の完全な理解を得るために、多数の具体的な詳細を明示する。しかしながら、特許請求する主題は、これら具体的な詳細がなくても実施できることは明らかであろう。一方、特許請求する主題を記載し易くするために、構造はブロック図形式で示されている。
【０００９】
[0014]  計算機の分野では、ウェブサーバーが種々のビジターにウェブ・ページのコンテンツを提供することができる。早期に作成されたウェブサイトでは、このようなコンテンツは、ＨＴＭＬ文書、このようなＨＴＭＬ文書に組み込まれたグラフィクス、およびクライアント側のＪａｖａＳｃｒｉｐｔ（登録商標）スクリプトというような、単純なタイプのデーター・オブジェクトのみを伴うのが通例であった。これらのデーター・オブジェクトは、ウェブ・ブラウザーに配信され、このウェブ・ブラウザーが、ユーザーに代わって、ウェブサイトを構成するウェブ・ページをレンダリングしていた。
【００１０】
[0015]  ウェブ・ブラウザー開発の初期に、ブラウザー・キャッシュが開発されたが、このようなデーター・オブジェクトの一部または全部を、後に再利用するために、受信時に格納することができ、これによって、データー・オブジェクトの冗長なダウンロードを避け、サーバーにおける計算資源の消費を節約することによって、ウェブ・ブラウザーの性能を改善した。また、ブラウザー・キャッシュに格納されたデーター・オブジェクトは、サーバーがアクセス不能になった場合、例えば、サーバーがオフラインになっているとき、またはコンピューターがネットワークに接続されていないときに、コンテンツの表現をレンダリングするためにも用いることができた。このようなデーター・オブジェクトのキャッシングは、冗長なネットワーク伝送を低減することによって、ウェブ・ブラウザーの性能を向上させたかもしれないが、これらのデーター・オブジェクトは一時的および使い捨てと見なされていた。多くのブラウザーは、一時的な空間節約メカニズムとして、ブラウザー・キャッシュの内容を削除する選択肢を含む。何故なら、その項目は、ユーザーが次にウェブサイトを訪問している間に再度得られることが多いからである。
【００１１】
[0016]  現世代のウェブサイトは、早期に行われたウェブ開発よりも進んだタイプのコンテンツを伴うことが多い。即ち、ウェブサイトは、実行可能バイナリーを含む１つ以上のアプリケーション、データー・ソース、およびユーザーが発生した文書のようなユーザー・データー・オブジェクトを組み込むことができる。また、これらのアプリケーションは、多様な１組のデーター・オブジェクトも含み、これらはウェブ・ブラウザーがアプリケーションを提示する際に用いることができ、ブラウザー・キャッシュに格納することができる。更に、キャッシュ・ブラウザーは、ウェブサイトにアクセスできないとき（例えば、コンピューターがネットワークに接続されていないとき、またはウェブサイトがオフラインになっているとき）に、このウェブサイトのある種の態様へのアクセスを提供するために用いることができるデーター・オブジェクトも格納することができる。これら拡張された能力を考慮して、ブラウザー・キャッシュに格納されているデーター・オブジェクトは、ユーザーの計算環境の大部分を構成する。また、現世代のブラウザーは、異なるタイプの複数のキャッシュも設けている。例えば、ウェブ・ブラウザーにおいて実行することができるアプリケーションのアプリケーション・リソースを構成するデーター・オブジェクトをブラウザー・アプリケーション・キャッシュに格納することができ、一方、ＨＴＭＬ文書およびその中に埋め込まれている画像のような、行った先のウェブサイトから引き出したデーター・オブジェクトは、ブラウザー・コンテンツ・キャッシュに格納することができる。双方のタイプのキャッシュは、同様にウェブ・ブラウザーの動作(performance)を促進することができるが、特定のキャッシュにリソースを格納すると、追加の利点が得られる（例えば、ユーザーが、アプリケーション・キャッシュの内容を保存しつつ、コンテンツ・キャッシュを空にする要求を行うことができる場合もある）。
【００１２】
[0017]  最近の計算環境における他のトレンドでは、ユーザーが利用できるコンピューターの範囲の拡大を伴う。例えば、ユーザーがパーソナル・ワークステーション、ノートブック型、パーム型、またはポケット型の携帯用コンピューター、セルフォン、メディア・プレーヤー、カメラ、およびゲーミング・コンソールを利用できる場合が多い。これらのコンピューターは目的やシナリオを特殊化していることもあるが、ユーザーはこれらの全てを一緒にして、計算環境を構成すると見なすこともできる。更に、計算環境は広く多様なデーター・オブジェクト（例えば、メディア・オブジェクト、文書、アプリケーション、およびオペレーティング・システムの優先項目）を備えることができ、これらのデーター・オブジェクトをこのようなコンピューター全てにわたって共有することができる。例えば、これらのデーター・オブジェクトを自動的に同期させて、一貫性を高めたユーザー体験を提供することができ、１つのコンピューターにおける計算環境の変化（例えば、新たなメディア・オブジェクトまたはアプリケーションの追加、あるいは文書の変更）を自動的に計算環境全体に伝えることができる。
【００１３】
[0018]  図１は、ユーザーが１組のコンピューターを動作させることができるシナリオ例１０を示す。１組のコンピューターには、ワークステーション１４、ノートブック型コンピューター２８、およびセルフォン・デバイス３０が含まれ、これらは、１組のデーター・オブジェクト、例えば、１組の文書３２を格納する計算環境１８を共有する。また、各コンピューターにはブラウザー１６が実装されており、ブラウザー１６は、１組のデーター・オブジェクト２４を備えているアプリケーション２２をレンダリングするために用いることができる。１組のデーター・オブジェクト２４は、それぞれのコンピューターに配信され、ブラウザー１６と関連付けられているブラウザー・キャッシュ２０に格納することができる。データー・オブジェクト２４は、例えば、アプリケーション２２のロジックおよびユーザー・インターフェースを構成するアプリケーション・バイナリー、ユーザー１２によって選択された種々の設定値および好みを格納するアプリケーション・コンフィギュレーション、ならびにアプリケーション２２によって作成された種々の文書を含むことができ、これらは、ブラウザー１６においてユーザー１２に、ユーザー文書２６として提示することができる。１組の文書３２のような、追加のデーター・オブジェクトを計算環境１８に格納することもできるが、ブラウザー・キャッシュ２０の外側である。更に、これらのコンピューターの計算環境１８は、データー・オブジェクトの一部または全部を共有することができる。例えば、計算環境１８が共有されるコンピューターの全てでアクセスを可能にするために、計算環境１８にデーター・オブジェクトとして格納されている文書３２をコンピューター間で共有することができる。
【００１４】
[0019]  しかしながら、これら種々のコンピューターの各々がブラウザー・キャッシュを有するブラウザーを備えており、このようなブラウザー・キャッシュがユーザーの計算環境の大部分を構成するデーター・オブジェクトを組み込んでいる場合、問題が発生する場合がある。早期に作成されたブラウザーにおけるブラウザー・キャッシュは、一時的で使い捨てのデーター・オブジェクトを格納するだけであったので、計算環境においてデーター・オブジェクトが同期されても、コンピューターのブラウザー・キャッシュはこの同期には含まれることができなかった。したがって、ユーザーの計算環境を構成する種々のコンピューターのブラウザー・キャッシュは広がって行き、異なるコンピューターには異なる計算環境ができてしまう（例えば、異なるバージョンの文書がブラウザー・キャッシュに格納されたり、異なる組のブラウザー格納アプリケーションが異なるコンピューターにおいて利用可能になることもある）。更に、図１のシナリオ例１０に示すように、計算環境１８における文書３２および他のデーター・オブジェクトがコンピューター間において自動的に同期されても、それぞれのブラウザー・キャッシュ２０の内容は同期から外れることがある。第１の例として、第１文書（「ＤＯＣ１」）を構成するデーター・オブジェクト２４が各コンピューターにおいて異なるバージョンで存在するかもしれない。これが生ずる可能性があるのは、これらの文書が、異なる時点において、同期されていない異なるデバイスで更新された場合である。第２の例として、データー・オブジェクト２４が１つのブラウザー・キャッシュ２０にはあるが、他のブラウザー・キャッシュ２０にはない場合がある。例えば、「ＤＯＣ３」と称するデーター・オブジェクト２４がワークステーション１４のブラウザー・キャッシュ２０に含まれているが、ノートブック型コンピューター２８のブラウザー・キャッシュ２０には含まれていない。第３の例として、一部のコンピューターには、アプリケーション２２がオフライン・アクセスのために格納されているが、他のコンピューターには格納されていない場合がある。例えば、このシナリオ例１０では、「アプリケーション」アプリケーション２０がワークステーション１４およびノートブック型コンピューター２８にオフライン・アクセスのために格納されているが、セルフォーン・デバイス３０には格納されていない。これらの不一致のうち一部はユーザー１２の選択時に（例えば、セルフォン・デバイス３０からアプリケーション２２を除外するためのユーザー１２からの命令）、または論理的な根本的理由（例えば、記憶空間、性能、またはハードウェアの限界のために、セルフォン・デバイス３０によってアプリケーション２２を実行することができない）に基づいて発生する場合もあるが、他の場合では、これらの不一致は望ましくなくそして回避可能である。しかしながら、ユーザー１２の計算環境を構成するコンピューターのブラウザー・キャッシュ２０を同期させるメカニズムがないために発生する。
【００１５】
[0020]  図２は、この技術の実施形態を説明するシナリオ例４０を示す。図２のシナリオ例４０では、ワークステーション１４、ノートブック型コンピューター２８、およびセルフォン・デバイス３０が、この場合も、それぞれブラウザー１６を備えることができる。ブラウザー１６は、アプリケーション２２に属することができるような、データー・オブジェクト２４を格納するように構成されているブラウザー・キャッシュ２０と結合されている。また、これらのコンピューターは、集合的に、計算環境１８を構成することができ、この計算環境１８は、このような全てのコンピューター間で共有されている。これらのコンピューターは、ユーザーに一層一貫性のある計算環境を提示するために、このようなコンピューター間で同期させるべき１組のデーター・オブジェクト（文書３２のような）を含む。しかしながら、このシナリオ例４０では、これらのコンピューターの内１つ以上は、システム例４２も備えることができる。システム例４２は、それぞれのコンピューターのブラウザー１６のブラウザー・キャッシュ２０を、他のコンピューターのブラウザー１６のブラウザー・キャッシュ２０のような、リモート・コンピューターのリモート・ストアと同期させるように構成されている。システム例４２は、ブラウザー・キャッシュ監視コンポーネント４４を備えることができる。ブラウザー・キャッシュ監視コンポーネント４４は、ブラウザー・キャッシュ２０を監視することができ、キャッシュされているデーター・オブジェクト２４の作成、編集、または削除というような、ブラウザー・キャッシュ２０へのデーター・オブジェクト２４の書き込みを検出するように構成されている。また、システム例４２は、ブラウザー・キャッシュ同期コンポーネント４６も備えることができる。ブラウザー・キャッシュ同期コンポーネント４６は、ブラウザー・キャッシュ監視コンポーネント４４が書き込みを検出したときに、ブラウザー・キャッシュ２０をリモート・ストア（他のコンピューターのブラウザー・キャッシュ２０）と同期させるように構成することができる。第１の例として、セルフォン・デバイス３０に実装されているブラウザー・キャッシュ監視コンポーネント４４は、最新バージョンの「ＤＯＣ１」データー・オブジェクト２４のブラウザー・キャッシュ２０への書き込みを検出することができ、（例えば、直接ブラウザー・キャッシュ２０と対話処理することにより、ブラウザー・キャッシュ２０への書き込みのために、データー・オブジェクト２４をノートブック型コンピューター２８のブラウザー・キャッシュ同期コンポーネント４６に供給することにより等で）データー・オブジェクト２４をノート・ブック型コンピューター２８のブラウザー・キャッシュ２０に配信することができる。ノートブック型コンピューター２８のブラウザー・キャッシュ監視コンポーネント４４は、一方、「ＤＯＣ１」データー・オブジェクト２４の書き込み（データー・オブジェクト２４の早期１．１バージョンを入れ替える）を検出することができ、ブラウザー・キャッシュ同期コンポーネント４６は、更新データー・オブジェクト２４をワークステーション１４のブラウザー・キャッシュ２０に配信することが���きる。
【００１６】
[0021]  図２に示す第２の例として、ブラウザー・キャッシュ監視コンポーネント４４は、「ＤＯＣ３」データー・オブジェクト２４の書き込みを検出し、このデーター・オブジェクト２４がノートブック型コンピューター２８のブラウザー・キャッシュ２０にはないことを検出することができ、この検出時に、ワークステーション１４のブラウザー・キャッシュ同期コンポーネント４６は、「ＤＯＣ３」データー・オブジェクト２４をノートブック型コンピューター２８のブラウザー・キャッシュ２０に配信することができる。第３の例として、ノートブック型コンピューター２８のブラウザー・キャッシュ監視コンポーネント２０は、アプリケーション２２のアプリケーション・リソースを構成するデーター・オブジェクト２４の格納を検出することができ、ノートブック・コンピューター２８のブラウザー・キャッシュ同期コンポーネント４６は、セルフォン・デバイス３０のブラウザー・キャッシュ２０にこのようなデーター・オブジェクト２４がないことを検出すると、これらのデーター・オブジェクト２４をセルフォン・デバイス３０に送ることができる。このように、種々のコンピューターのブラウザー・キャッシュ２０を同期させることによって、一貫した計算環境（「ＤＯＣ１」データー・オブジェクト２４の現バージョン、「ＤＯＣ３」データー・オブジェクト２４の存在、および全てのコンピューターにおけるアプリケーション２２の利用可能性を含む）をユーザーに提示することができる。
【００１７】
[0022]  更に一般的には、そしてこれらのシナリオを考慮して、図３は、本明細書において論ずる技法の実施形態例４２を、コンピューター５２におけるブラウザー１６のブラウザー・キャッシュ２０をリモート・コンピューター５４のリモート・ストア５６と同期させるように構成されているシステム例４２として示す。システム例４２は、ブラウザー・キャッシュ２０における少なくとも１つのデーター・オブジェクト２４の書き込みを検出するように構成することができるブラウザー・キャッシュ監視コンポーネント４４と、ブラウザー・キャッシュ監視コンポーネント４４が書き込みを検出したときに、ブラウザー・キャッシュ２０をリモート・ストア５６と同期させるように構成することができる、ブラウザー・キャッシュ同期コンポーネント４６とを備えることができる。システム例５８は、例えば、１組の命令を備えることができる。この命令は、コンピューター５２のメモリー５８に格納されており、ブラウザー・キャッシュ２０、およびコンピューター５２の計算環境の、特定の１組のユーザーによって利用される他のコンピューター（リモート・コンピューター５４のような）との同期をサポートするために、プロセッサ６０において実行可能である。
【００１８】
[0023]  これらの技法の他の実施形態では、本明細書において紹介する技法を適用するように構成されているプロセッサ実行可能命令を備えているコンピューター読み取り可能媒体が関与する。これらの方法において考案することができるコンピューター読み取り可能媒体の一例を図５に示す。ここでは、実施態様７０がコンピューター読み取り可能媒体７２（例えば、ＣＤ−Ｒ、ＤＶＤ−Ｒ、またはハード・ディスク・ドライブのプラター(platter)）を備えており、その上にコンピューター読み取り可能データーがエンコードされている。一方、このコンピューター読み取り可能データー７４は、本明細書において明記する原理にしたがって動作するように構成されている１組のコンピューター命令７６を備えている。このような一実施形態では、プロセッサ実行可能命令７６は、コンピューターにおけるブラウザーのブラウザー・キャッシュを、図３のシステム例４２のような、リモート・コンピューターのリモート・ストアと同期させるように構成されているシステムを実現するように構成することができる。当業者によって、本明細書において紹介する技法にしたがって動作するように構成されている多くのこのようなコンピューター読み取り可能媒体を考案することができる。
【００１９】
[0024]  本明細書において論ずる技法には、多くの態様において変形も考案することができ、一部の変形は、これらのおよびその他の技法の他の変形に対して、追加の利点を提示すること、および／または欠点を低減することもできる。更に、変形の中には組み合わせて実現できるものもあり、組み合わせの中には、相乗的協同によって、追加の利点および／または欠点低減を特徴とするものもある。種々の実施形態において、これらの変形を組み込んで（例えば、図３のシステム例４２）、このような実施形態に対して、個々の利点および／または相乗的利点を与える(confer)こともできる。
【００２０】
[0025]  これらの技法の実施形態間で多様にすることができる第１の態様は、ブラウザー・キャッシュ２０とリモート・ストア５６との間で行うことができる同期のタイプに関する。データー・オブジェクトを同期させるプロセスは、多くの変数を有することがあり、これらの変数は、異なるシナリオに合わせるために別々に調節することができる。第１の例として、多くのイベントによって同期をトリガーすることができる。このような実施形態の１つでは、ブラウザー・キャッシュ監視コンポーネント４４がデーター・オブジェクト２４のブラウザー・キャッシュ２０への書き込みを検出した後直ちに、同期をトリガーすることができる。素早い同期は、ブラウザー・キャッシュ２０とリモート・ストア５６との間に高い同期度を与えることができるが、例えば、各書き込み時にコンピューター５２とリモート・コンピューター５４との間に接続を作ることによって、および／または短い時間枠の間に数回更新されるデーター・オブジェクト２４に対して短い時間枠の間に一連の接続およびデーター伝送を行うことによって、このトリガーが非効率的になる場合がある。このような実施形態の他の１つでは、ブラウザー監視コンポーネント４４が書き込みを検出したときに同期をトリガーすることができるが、特定のしきい値を満たした後、例えば、定められたしきい値期間が経過しその間に別の書き込みがブラウザー・キャッシュ２０になされなかった後、および／または定められたしきい値データー量がブラウザー・キャッシュ２０に書き込まれ後である。あるいはまたは加えて、同期をリモート・コンピューター５４によってトリガーすることもできる。例えば、リモート・コンピューター５４がブラウザー・キャッシュ２０をリモート・ストア５６と同期させる通知をコンピューター５２に送ることができ、ブラウザー・キャッシュ同期コンポーネント４６は、この通知をリモート・コンピューター５４から受信したときに、この同期を実行するように構成することができる。このタイプの構成は、ピア関係を有するコンピューター間、例えば、いずれかのコンピューター５２のブラウザー・キャッシュ２０を変化させることができる２つのコンピューター間では、有利であると考えられる。他の代替では、所定の時点で、毎週、または最後の同期からある時間量が経過した後というように、同期を周期的にトリガーすることができる。更に別の代替として、しきい値時間期間プロセッサ６０がアイドル状態であることが検出されたとき、またはネットワーク帯域幅の利用可能性が検出されたときというように、他のファクタに基づいて同期をトリガーすることができる。
【００２１】
[0026]  この第１の態様の第２の変形として、同期は多くの方法で行うことができる。第１の例として、コンピューター２０は単にリモート・コンピューター５４に、コンピューター２０において変化する任意のデーター・オブジェクト２４を、リモート・ストア５６の内容を調べずに配信することができる。この構成は、例えば、リモート・コンピューター５４が、コンピューター５２から更新のみを受信するアーカイブ・サーバーを備えている場合に適していると考えられる。第２の例として、ブラウザー・キャッシュ同期コンポーネント４６が、リモート・コンピューター５４のリモート・ストア５６の内容について問い合わせることができ、それぞれのデーター・オブジェクト２４を比較して、リモート・ストア５６において失われているまたは旧式になって更新の期限が来ているデーター・オブジェクト２４を判定することができる。あるいは、ブラウザー・キャッシュ同期コンポーネント４６が、リモート・ストア５６の内容との比較のために、ブラウザー・キャッシュ２０の内容リストをリモート・コンピューター５４に配信することができ、そしてリモート・コンピューター５４から、ブラウザー・キャッシュ２０およびリモート・ストア５６を同期させるために実行すべき動作のリストを受信することができる。いずれの実施形態においても、この比較は多くのファクタを考慮に入れることができ、例えば、データー・オブジェクト２４の修正日付、データー・オブジェクト２４のサイズまたはタイプ、種々のデーター・オブジェクト２４に帰せられるバージョン識別子、および／またはデーター・オブジェクト２４の内容を表すハッシュコードを考慮に入れることができる。ブラウザー・キャッシュ同期コンポーネント４６は、次に、リモート・コンピューター５４に、ブラウザー・キャッシュ２０およびリモート・ストア５６を同期させるために配信されるべきデーター・オブジェクト２４を送ることができる。あるいはまたは加えて、ブラウザー・キャッシュ同期コンポーネント４６は、新たに格納されたデーター・オブジェクト２４またはもっと最近になってリモート・コンピューター５４において更新されたデーター・オブジェクト２４を要求することもでき、このようなデーター・オブジェクト２４を、受信時に、ブラウザー・キャッシュ２０に格納することができる。あるいはまたは加えて、データー・オブジェクト２４がブラウザー・キャッシュ２４およびリモート・ストア５６双方において変化していたことが発見された場合、ブラウザー・キャッシュ同期コンポーネント４６および／またはリモート・コンピューター５４は、これらのデーター・オブジェクト２４の表現の内１つを、信頼できるものとして選択すべきか否か判断し、信頼できない表現を置き換えることができる。あるいは、データー・オブジェクト２４の表現を合併して、このような変化を全て含む混成データー・オブジェクト２４を生成し、双方のインスタンスをこの混成データー・オブジェクトと置き換えることも可能なこともある。
【００２２】
[0027]  変化に富む同期の複雑さの一部を例示するこの第２の変形の特徴の１つは、リモート・ストア５６の中における、ブラウザー・キャッシュ２０に存在しないデーター・オブジェクトの発見に関することである。このようなデーター・オブジェクト２４は、最後の同期以来リモート・ストア５６に新たに格納された場合に存在する可能性があり、またはこのようなデーター・オブジェクト２４がブラウザー・キャッシュ２０から除去された場合に存在する可能性がある。このような実施形態の１つでは、ブラウザー・キャッシュ同期コンポーネント４６がリモート・ストア５６において、ブラウザー・キャッシュ２０には存在しないデーター・オブジェクト２４を検出した場合、リモート・コンピューター５４に、このデーター・オブジェクト２４をリモート・ストア５６から除去するように要求することができる（これによって、ブラウザー・キャッシュ２０からの除去を仮定する）。逆に、ブラウザー・キャッシュ同期コンポーネント５６は、リモート・ストア５６から除去されているデーター・オブジェクト２４をブラウザー・キャッシュ２０から除去する要求をリモート・ストア５６から受信するように構成することもでき、こうして同期を維持するように動作することができる。あるいはまたは加えて、ブラウザー・キャッシュ監視コンポーネント４４は、ブラウザー・キャッシュ２０において少なくとも１つの除去されたデーター・オブジェクト２４の除去を検出することを望む場合があり、次いでブラウザー・キャッシュ同期コンポーネント４６は、リモート・コンピューター５４に、データー・オブジェクト２４をリモート・ストア５６から除去することを要求することができる（これによって、リモート・ストア５６に対する新たな追加を仮定する）。更に他の実施形態では、ブラウザー・キャッシュ監視コンポーネントが、ブラウザー・キャッシュ２０からの少なくとも１つの除去されたデーター・オブジェクト２４の除去を検出するように構成され、このような除去されたデーター・オブジェクト２４のリモート・ストア５６からの除去を要求することができる。その後にリモート・ストア５６において特定されたいずれのデーター・オブジェクト２４も、最近リモート・ストア５６に追加されたものと仮定することができる。更に別の実施形態では、ブラウザー・キャッシュ２０および／またはリモート・ストア５６は、それぞれのデーター・オブジェクト・ストアに対する修正のジャーナルを維持することもでき、精度の高い同期動作を判定するために、このようなジャーナルを検査または比較することができる。
【００２３】
[0028]  この第１の態様の第３の変形として、これらの技法を、ウェブ・ブラウザーによって提供される特定のデーター・キャッシュに選択的に適用することもできる。ウェブ・ブラウザーによって受信されたデーター・オブジェクトは異なるコンテキスト（例えば、アプリケーションに属するアプリケーション・リソース、ならびにＨＴＭＬ文書、スタイル・シート、および埋め込みメディア・オブジェクトのような、ウェブ・ページのレンダリングにおいて用いられるコンテンツ型データー・オブジェクト）において有用であることがあるので、ウェブ・ブラウザーはこのようなデーター・オブジェクトを異なるキャッシュ（例えば、アプリケーション・リソースを格納するように構成されているアプリケーション・キャッシュ、およびコンテンツ型データー・オブジェクトを格納するように構成されているコンテンツ・キャッシュ）に格納することができる。本明細書において関係する同期技法は、このようなキャッシュのコンテンツに種々の方法で適用することができる。第１の例として、同期を均一にこのようなキャッシュ全てにおける全てのデーター・オブジェクトに適用することができる。第２の例として、重要性が高い方のデーター・オブジェクトを格納するように構成されている特定のキャッシュ（例えば、アプリケーション・キャッシュ）のみに同期を適用し、有用性が低いデーター・オブジェクトを格納するように構成されているデーター・キャッシュの内容を無視することができる。第３の例として、別々のこのようなキャッシュに同期を適用することができる。例えば、アプリケーション・キャッシュは完全にそして頻繁に同期させることができ、一方コンテンツ・キャッシュは、その中に格納されているデーター・オブジェクトの一部に関してのみ同期させればよく（例えば、最新の時間枠において引き出されたまたはアクセスされたデーター・オブジェクト）、もっと緩いスケジュールで同期させればよい。
【００２４】
[0029]  この第１の態様の更に別の変形は、同期の更に洗練された形態に関すると言ってもよい。第１の例として、ブラウザー・キャッシュ同期コンポーネント４６および／またはリモート・ストア５６は、少なくとも１つの同期データー・オブジェクト規準に合うデーター・オブジェクト２４の部分集合というような、データー・オブジェクト２４の一部のみを同期させるように構成することもできる。例えば、ブラウザー・キャッシュ同期コンポーネント４６は、ユーザー・データー・ファイルを構成するデーター・オブジェクト２４のみ、および／またはアプリケーション・バイナリーを構成するデーター・オブジェクト２４のみ、および／または特定のユーザーまたはアプリケーションに属するデーター・オブジェクト２４のみ、および／または特定のデーター・サイズを超えていないデーター・オブジェクト２４のみを同期させるように構成することもできる。したがって、ブラウザー・キャッシュ同期コンポーネント４６は、同期の間、ブラウザー・キャッシュ２０に格納されている他のデーター・オブジェクト２４を無視することができる。第２の例として、同期トリガー方針（例えば、同期を開始してもよい状況群）、同期タイプ方針（例えば、単一方向同期対双方向同期）、データー・オブジェクト比較方針（例えば、相違を検出するためにデーター・オブジェクトの２つの表現を比較するときの規準）、データー・オブジェクト・タイプ合併方針（例えば、合併することができるデーター・オブジェクト２４のタイプ、およびそれを行うためのロジック）、および／またはデーター・オブジェクト不一致解決方針（例えば、データー・オブジェクト２４の異なる表現を解明するときのロジック）というような同期の種々の態様を記述する同期方針を考案することもできる。尚、同期の種々の形態を記述する様々な同期方針を定めることは有利であると考えられる（例えば、頻繁でない同期の間に適用される第１同期方針、および頻繁で増分的な同期の間に適用される第２同期方針）。更に、同期方針は、コンピューター５２またはリモート・コンピューター５４のいずれによっても、それらの間の関係に依存して、定めることもできる。当業者であれば、本明細書において論じられる技法を実施しつつ、ブラウザー・キャッシュ２０およびリモート・コンピューター５４の同期を開始し実行する多くの技法を考案できるであろう。
【００２５】
[0030]  これらの技法の実施形態間で多様にすることができる第２の態様は、実施態様のアーキテクチャーに関する。第１の例として、ブラウザー・キャッシュ監視コンポーネント４４およびブラウザー・キャッシュ同期コンポーネント４６は、コンピューター５２内部において種々のやり方で実行することができる。第１のこのような実施形態では、ブラウザー・キャッシュ監視コンポーネント４４は、コンピューター５２においてブラウザー１６内部で、例えば、ブラウザー１６またはその中にインストールされているプラグインの一部として実行するように構成することができる。この実施態様は、ブラウザー・キャッシュ監視コンポーネント４４が、主に、ブラウザー・キャッシュ監視コンポーネント４６によって同期をトリガーするために、ブラウザー・キャッシュ２０を監視して変化を発見するタスクを課されているときに有用であると考えられる。何故なら、このような変化は、ブラウザー１６が実行しているときにのみ発生する可能性が高いと考えられるからである。対照的に、そして代わりにまたは加えて、ブラウザー・キャッシュ同期コンポーネント４６は、コンピューター５２においてブラウザー１６外部のプロセスとして、例えば、コンピューター５２の背景サービスとして実行するように構成することができる。これが有利であると言えるのは、例えば、ウェブ・ページのレンダリングやブラウザー１６によるアプリケーション２０の実行に干渉することなく、変化したデーター・オブジェクト２４を同期させることによって、そしてこのようなアプリケーションが実行していないとき、そしてブラウザー１６が実行していない場合であっても、ブラウザー・キャッシュ２０のリモート・ストア５６との同期が行われることを許容することによって、ブラウザー１６とは独立して同期を行うことができるからである。例えば、コンピューター５２がネットワークに接続されているが、ユーザー１２がブラウザー１６を用いていないとき（例えば、コンピューター５２がアイドル状態にあるとき）、ブラウザー・キャッシュ同期コンポーネント４６は、一部の更新データー・オブジェクト２４をリモート・ストア５６から引き出し、これらをブラウザー・キャッシュ２０に格納することができ、ユーザー１２がこれらのデーター・オブジェクト２４を用いることを要求したときに（例えば、このようなウェブ・オブジェクト２４を組み込んだアプリケーション２２を呼び出す）、コンピューター５２がオフライン状態にあっても、このようなオブジェクトを用いることができる。
【００２６】
[0031]  この第２の態様の第２の例として、これらの技法の実施形態のアーキテクチャーは、本明細書において説明する特徴を実現する間、コンピューター５４内部において他のプロセスの動作を考慮することができる。例えば、ブラウザー・キャッシュ同期コンポーネント４６を、ブラウザー１６外部で実行するプロセスとして実装することは有利であると考えられるが、この独立性のために、これら２つのプロセスの競合的干渉を許す場合がある。第１の例として、ブラウザー・キャッシュ同期コンポーネント４６は、ブラウザー１６によって用いられているデーター・オブジェクト２４を置き換えようとすることもあり、データー違反エラーを発生する。第２の例として、ブラウザー・キャッシュ同期コンポーネント４６およびブラウザー１６が各々データー・オブジェクト２４を更新することもあり、オブジェクト同期構造が用いられない場合、レース状態(race condition)が生ずる可能性があり、その結果データーの損失が発生し、論理的な問題の可能性もある。このような問題を回避しこれらの技法の実施態様を改善するために、ブラウザー・キャッシュ監視コンポーネント４４および／またはブラウザー・キャッシュ同期コンポーネント４６は、他のプロセスの動作を尊重する。第１の例として、ブラウザー・キャッシュ同期コンポーネント４６は、データー・オブジェクト２４をリモート・ストア５６と同期させる前に、データー・オブジェクト２４に対してアクセス・ロック（セマファーまたはミューテックスのような）を要求することができ、データー・オブジェクト２４の同期が完了したときに、データー・オブジェクト２４のロックを解除することができる。あるいはまたは加えて、ブラウザー・キャッシュ監視コンポーネント４４は、ブラウザー１６によって用いられているブラウザー・キャッシュ同期コンポーネント４６によるデーター・オブジェクト２４の更新を検出したときに、ブラウザー１６に更新データー・オブジェクト２４の利用可能性を通知するように構成することができ、ブラウザーは、ブラウザー１６の動作において都合のよいときに（例えば、データー・オブジェクト２４が実際に使用されていないとき）、更新データー・オブジェクト２４を再ロードすることができる。
【００２７】
[0032]  この第２の態様の第３の例として、ブラウザー・キャッシュ同期コンポーネント４６によって行われる同期を、計算環境１８のリモート・ストア５６との更に広い同期に含めることもできる。第１のこのような実施態様では、２つのコンピューターが、ブラウザー・キャッシュ２０内に格納されているデーター・オブジェクト２４およびブラウザー・キャッシュ２０の外部であるが計算環境１８内部に格納されているデーター・オブジェクト２４（例えば、コンピューター５２のファイルシステムに格納されているファイル、オペレーティング・システムによって格納されているユーザー・プロファイル、およびデーターベースに格納されているレコード）の双方を共有することができる。同期プロセスは、１回の同期の間にブラウザー・キャッシュ２０に格納されるデーター・オブジェクト２４を含む、多くのデーター・オブジェクト・システムに格納されアクセスされる大きな様々な１組のデーター・オブジェクト２４を同期させるように考案することができる。これは、例えば、このようなデーター・オブジェクト２４がどのように格納されているかには関係なく、全てのデーター・オブジェクト２４に適用される１つの同期方針をユーザー１２が指定することを可能にするため、そして異なる組のデーター・オブジェクト２４を独立して（そしておそらくは相争いながら）同期させる複数の同期コンポーネントを実装する代わりに、１つのコンポーネントがこのようなデーター・オブジェクト２４の同期を実行することを可能にするために有用となることができる。
【００２８】
[0033]  このような実施形態の１つでは、計算環境１８が配備可能な計算環境を表すことができ、リモート・コンピューター５４は計算環境ホストを構成することができる。現世代の計算環境を構成するオブジェクトの複雑な多様性および分散(decentralization)を減少させるために、計算環境の配備可能な表現を考案することができ、そこでは、計算環境を構成するオブジェクトがデーター・オブジェクト階層に編成され、計算環境ホストによってホストすることができる。この計算環境ホストは、ユーザー１２の計算環境１８を構成する１組のコンピューター全体の表現を格納するように構成することができ、このようなコンピューター間における計算環境１８の同期を調整するように構成することができ、計算環境１８の信頼できる表現を格納するように（例えば、バージョン不一致を解決するときに優先順位を持っているデーター・オブジェクト２４の特定の表現）構成することができ、および／または計算環境１８の配備または新たに加えられたコンピューターのような、特定のコンピューター５２に対するその一部を管理するように構成することができる。（このシナリオにおけるリモート・ストア５６は、ブラウザーすら内蔵していないファイル・サーバーを備えることができる計算環境ホスト８２におけるブラウザー・キャッシュに必ずしも対応しなくてもよく、代わりに、例えば、配備可能な計算環境８４を格納するために割り当てられた計算環境ホスト８２のファイルシステムの一部を表すのであってもよいことは認められよう。）データー・オブジェクト階層は、同じ計算環境（同じユーザー・プロファイル、アプリケーション、データー・ファイル等）を表すために種々のデバイスに配信することができ、各デバイスは、一貫性のあるやり方で、しかしデバイスの能力に基づいてカスタム化して（例えば、ワークステーションに取り付けられているキーボード・デバイスからのデーター入力を受けるハード・キーボード・インターフェース、およびセルフォン・デバイスからデーターを受けるタッチスクリーン・ソフトウェア・キーボード・インターフェース）計算環境をレンダリングすることができる。配備可能な計算環境のユーザーは、したがって、プラットフォームおよびデバイスに独立したやり方で、配備可能な計算環境と対話処理しつつ、同期または非同期呼び出し、標準的動作のバッチ処理、および移動体エージェントというような、代替アクセス技法に対する利点の少なくとも一部も達成することができる。更に、計算環境１８を構成するデーター・オブジェクト２４が配備可能な計算環境内において均一に表現され一貫性のある方法で管理される場合（このようなデーター・オブジェクト２４がアクセスされるときに経由する個々のデーター・オブジェクト・システムには関係なく）、計算環境のデーター・オブジェクトの全てに適用される１組のサービスを考案することができる。しかしながら、当業者であれば、本明細書において論じられる技法を適用することができるこのようなシナリオを数多く考案することができよう。
【００２９】
[0034]  図５は、１つのこのようなシナリオ８０を示し、ここでは、計算環境を計算環境ホスト８２によってホストすることができ、計算環境ホスト８２は、配備可能計算環境８４を格納し管理することができる。また、計算環境ホスト８２は、セルフォン・デバイス８６、パーソナル・ノートブック型コンピューター９０、および公衆ワークステーション９４のような種々のデバイスの代わりに、そして異なるアクセス特権を有する異なるタイプのユーザーの代わりにも、配備可能な計算環境８４を異なる方法でレンダリングすることもできる。したがって、計算環境のレンダリングは、同じアプリケーション、ユーザー・プロファイル、シェル・コンフィギュレーション、ユーザー・データー・オブジェクトなどを露出する全てのデバイスに渡って一貫性のある計算環境を反映する。つまり、ユーザーは高性能ノートブック型コンピューターによる計算環境の最大機能発揮バージョン９２、低パワー・セルフォン・デバイス８６における計算環境の必要最低限のバージョン８８、ならびに公衆端末９４のウェブ・ブラウザー８６による計算環境のブラウザー互換およびプライバシー指向バージョン９８にアクセスすることができる。このような各デバイスの能力が計算環境のレンダリングをサポートする限りにおいて、各デバイスの能力に合わせて調節された配備可能な計算環境８４のレンダリングによって、一貫性のあるユーザー・インターフェースおよびデーター集合を提示することができる。計算環境に対する更新は、計算環境ホスト８２まで戻って伝搬することができ、他のデバイスと自動的に同期させることができる。また、種々のデバイスは、ローカルに格納されているデーターを他のデバイスと共有することによって、そして他のデバイスを制御するまたは他のデバイスによって制御されることによって、協同して動作することができる。したがって、計算環境は、クラウド計算アーキテクチャーとして考案および提示することができ、このクラウド計算アーキテクチャーは、同じ計算環境に対する協同ポータル（デバイス特定の特性を有する）のメッシュを形成する全てのデバイス（「クライアント」）にわたって、一貫性のあるレンダリングとして表現されるデバイスに独立した表現（「クラウド」）を備えている。計算環境のアプリケーションに関して具体的には、配備可能な計算環境８４は、アプリケーション・セットの表現、アプリケーション・リソース、およびそれによって作成されるデーター・オブジェクトを含むことができる。更に、計算環境ホスト８２は、データー・オブジェクト階層３２を構成する種々のオブジェクトにサービスを適用することができ、データー・オブジェクトが配備可能な計算環境８４に格納される共通フォーマットが、それに適用されるデーター・オブジェクトの性質とは無関係に、サービスの一貫性のある利用可能性および適用を容易にすることができる。
【００３０】
[0035]  この第２の態様を参照して、コンピューター５２が、計算環境ホスト８２によって管理されている配備可能な計算環境８４を表す計算環境１８を特徴とする場合、本明細書において論じられる技法は、それに関する特定の利点と共に実現することができる。第１の例として、計算環境ホスト８２がリモート・コンピューター５４としての役割を果たす場合、ブラウザー・キャッシュ２０を計算環境１８の一部として表すことが有利であると考えられる。更に、リモート・ストア５６が、計算環境ホスト８２によって管理されている配備可能な計算環境８４の表現を備えている場合、ブラウザー・キャッシュ２０を含む計算環境１８全体の同期を一緒に行うことができる。例えば、コンピューター５２の大きな１組のデーター・オブジェクト２４の計算環境ホスト８２との同期を管理する計算環境コンポーネントを考案することができる。大きな１組のデーター・オブジェクトには、ブラウザー・キャッシュ２０の中に格納されているデーター・オブジェクト２４、ならびに、ファイルシステムの中にあるファイル、システム・レジストリに格納されているコンフィギュレーション情報、およびオペレーティング・システムが格納するユーザー・プロファイルというような、他のデーター・オブジェクト・システムに格納されこれらを通じてアクセス可能なデーター・オブジェクト２４が含まれる。次いで、ブラウザー・キャッシュ２０の内容および計算環境１８の残りについて、同期を均一に行うことができ、他のサービス（例えば、認証サービスおよび圧縮サービス）を考案し、このようなデーター・オブジェクト２４全てに均一に適用することができる。この場合も、このようなデーター・オブジェクト２４全ての同期を１回の同期プロセスとして、および／または配備可能な計算環境８４の全てのデーター・オブジェクト２４を計算環境ホスト８２と同期させる計算環境コンポーネントのような、１つのコンポーネントにおいて行うことが望ましい場合もある。更に、計算環境ホスト８２は、このようなデーター・オブジェクトの、計算環境を共有する他のコンピューターへの配信も扱うことができ、各コンピューター５４が一義的に計算環境ホスト８２と通信すればよいが、他のコンピューター５４において最初に作成されたまたは最後に更新されたデーター・オブジェクト２４を受信してもよいようにすることもできる。
【００３１】
[0036]  この第２の態様の第４の例として、ブラウザー・キャッシュ監視コンポーネント４４および／またはブラウザー・キャッシュ同期コンポーネント４６が、同期プログラム・インターフェースを特徴とすることもできる。このインターフェースは、ブラウザー１６内部で実行するアプリケーション２２が、ブラウザー・キャッシュ２０におけるデーター・オブジェクト２４の同期と相互作用することを可能にすることができる。第１の例として、同期プログラム・インターフェースは、アプリケーション２２が、データー・オブジェクト２４の最後の同期の日付、およびデーター・オブジェクト２４のソースというような、同期の詳細を特定することを可能にすることができる。このような実施形態の１つでは、同期プログラム・インターフェースは、同期の少なくとも１つの同期方針の少なくとも１つの特性を開示するように構成されている少なくとも１つの同期方針開示動作と、少なくとも1つの同期方針の少なくおtも１つのプロパティを設定するように構成されている少なくとも１つの同期方針設定動作とを備えることができる。例えば、新たなウィルス防止定義データーベースを日曜日毎に夜中に供給するウィルス防止ソフトウェア・ベンダーのように、固定のスケジュールで特定のアプリケーション・リソースを更新するアプリケーション・ホストによって、アプリケーションを供給することができる。したがって、このアプリケーション・ホストは、同期コンポーネント４６に、同期プログラム・インターフェースを通じて、所定の時刻にこのアプリケーション・リソースを構成するデーター・オブジェクト２４を更新することを命令するように、アプリケーション２２を構成することができる。また、アプリケーション２２は、同期プログラム・インターフェースを用いて、データー・オブジェクト２４の最後のこのような同期の日時を特定し（例えば、ウィルス定義データーベースが旧式になっていないかユーザー１２に通知するために）、および／または アプリケーション・ホストによって特定された信頼できるソースによるデーター・オブジェクト２４の同期のみに制限することもできる（例えば、ウィルス定義データーベースをウィルス防止ソフトウェア・ベンダーから直接でなければ引き出せないようにする）。あるいはまたは加えて、ブラウザー・キャッシュ同期コンポーネント４６は、ブラウザー・キャッシュ２０（またはその一部）をリモート・ストア５４と同期させるために、ブラウザー・キャッシュ同期コンポーネント４６を呼び出すように構成された同期プログラム・インターフェースを露出することもできる。例えば、アプリケーション２２が、同期プログラム・インターフェースの動作を通じて、ブラウザー・キャッシュ同期コンポーネント４６による特定のデーター・オブジェクト２４の同期を呼び出すことを可能にすることもできる（例えば、ウィルス防止アプリケーションのユーザーがウィルス定義データーベースの素早い更新を要求する場合）。
【００３２】
[0037]  加えて、同期プログラム・インターフェースは、馴染みのあるそして定着したやり方で実装することもでき、これによって、アプリケーションが便利にそして大きな設計変更なく、インターフェースを利用することを可能にすることができる。例えば、ウェブ・ブラウザー１６において実行するアプリケーション２２をサポートするように設計されているウェブ・ブラウザー・プラグインが、JavaScript（登録商標）ベースの同期プログラム・インターフェースを、例えば、ブラウザー・キャッシュ２０において種々のデーター・オブジェクト２４を読み出しおよび書き込むためにJavaScript（登録商標）において呼び出すことができる１組の動作として露出することができる。あるいはまたは加えて、同期プログラム・インターフェースは、もっと上位の言語、例えば、Ｊａｖａ（登録商標）およびＣ＃のようなオブジェクト指向言語もサポートすることができ、同期サービスのスケジューリング、ローカル・キャッシュの新鮮さおよび方針、ならびに計算環境を構成するコンピューターの関係（例えば、どのコンピューターが特定のデーター・オブジェクトの信頼できる代表のホストとしての役割を果たすか）というような、計算環境の一層洗練された詳細を露出することができ、および／または一層強力なプログラム・アクセス（例えば、特定のデーター・オブジェクトの同期というような計算環境イベントをアプリケーションに通知することができる、イベント予約およびデーター・フィード）を可能にする一層洗練されたプログラミング構造を含むことができる。このように、プログラム・インターフェースは、多種態様な計算環境の態様を洗練されたやり方で露出しつつ、異なるプログラミング技法を利用してその大きな部分を再設計することも書き直すことも必要とせずに、開発者によって容易に選択することができる、馴染みのあるプログラミング・モデルを固守することができる。当業者であれば、本明細書において論じられる技法を実現しつつ、その多くのアーキテクチャーおよび特徴を考案することができよう。
【００３３】
[0038]  これらの技法の実施形態間で多様にすることができる第３の態様は、その種々の実施態様に含むことができるデーター・オブジェクト特定の機構に関する。第１の例として、アプリケーション２２がブラウザー・キャッシュ２０に格納するように要求したデーター・オブジェクト２４が、大きなデーター・オブジェクトまたは関連したデーター・オブジェクトの多数の組というような、１つ以上の異常な特性を有する場合がある。ブラウザー・キャッシュ２０の中には、このようなキャッシングに対処できないものもある。例えば、ブラウザー・キャッシュ２０は、特定のデーター・オブジェクトに対してサイズ制限を賦課することもあり、特定のデーター・オブジェクト２４が大きすぎてブラウザー・キャッシュ２０に格納できない場合もある（例えば、アプリケーション２２によってオフライン・アクセスのために供給されることがある大きなデーターベース）。代わりに、ブラウザー１６は、このようなデーター・オブジェクト２４を、ファイルシステムにおけるファイルというような、ブラウザー・キャッシュ２０外にそして計算環境１８内に格納し、そしてブラウザー・キャッシュ２０外に格納されたデーター・オブジェクト２４に対する参照をブラウザー・キャッシュ２０に格納するように構成することができる。更に、ブラウザー・キャッシュ監視コンポーネント４４は、ブラウザー・キャッシュ２０外に格納されたデーター・オブジェクト２４の更新を、ブラウザー・キャッシュ２０内部に格納されているデーター・オブジェクト２４の更新と共に、監視するように構成することができ、および／またはブラウザー・キャッシュ同期コンポーネント４６は、ブラウザー・キャッシュ２０外に格納されたこのようなデーター・オブジェクト２４を、ブラウザー・キャッシュ２０内に格納されたデーター・オブジェクト２４と共に同期させるように構成することもできる。
【００３４】
[0039]  この第３の態様の第２の例では、ブラウザー・キャッシュ２０に格納されているデーター・オブジェクト２４は、ブラウザー１６内部で実行するように構成されているアプリケーション２２のアプリケーション・リソースを構成することができる。ブラウザー・キャッシュ監視コンポーネント４４および／またはブラウザー・キャッシュ同期コンポーネント４６は、このようなデーター・オブジェクト２４を特定のやり方で扱うように構成することができる。第１のこのようなシナリオでは、データー・オブジェクト２４はアプリケーション・インストーラ・パッケージを構成することができ、このパッケージを呼び出して、ブラウザー１６内にアプリケーション２２をインストールすることができる。したがって、ブラウザー・キャッシュ同期コンポーネント４６は、リモート・コンピューター５４からデーター・オブジェクト２４を受信したときに、アプリケーション・インストーラ・パッケージを呼び出してアプリケーション２２をインストールすることができる。第２の例として、データー・オブジェクト２４が関連付けられているアプリケーション２２をアプリケーション・ホストと関連付けることができ、接続コンテキストまたは切断コンテキストのような、アプリケーション・ホスト接続コンテキストで実行するように構成することができる。このようなシナリオの１つでは、データー・オブジェクト２４はオフライン・アプリケーション・リソースを構成することができ、アプリケーション２２は、アプリケーション２２が切断コンテキストで実行するときに、オフライン・アプリケーション・リソースを用いるように構成することができる。当業者であれば、本明細書において論じられる技法を実現しつつ、特定のタイプのデーター・オブジェクト２４に対してブラウザー・キャッシュ監視コンポーネント４４および／またはブラウザー・キャッシュ同期コンポーネント４６を構成するための技法を数多く考案することができよう。
【００３５】
[0040]  以上、構造的特徴および／または方法論的動作に特定の文言で本主題について説明したが、添付した特許請求の範囲において定められている主題は、以上で説明した特定の特徴や動作に必ずしも限定されるのではないことは言うまでもない。むしろ、これら前述した特定の特徴および動作は、特許請求の範囲を実施する形態例として開示したのである。
【００３６】
[0041]  本願において用いる場合、「コンポーネント」、「モジュール」、「システム」、「インターフェース」などという用語は、一般に、コンピューター関連エンティティ、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかを指すことを意図している。例えば、コンポーネントは、限定ではなく、プロセッサにおいて実行しているプロセス、プロセッサ、オブジェクト、エクゼキュータブル、実行のスレッド、プログラム、および／またはコンピューターであってもよい。例示として、コントローラにおいて実行しているアプリケーションおよびこのコントローラの双方が１つのコンポーネントになることができる。１つ以上のコンポーネントは、プロセスおよび／または実行のスレッドの内部に存在することができ、コンポーネントを１つのコンピューターに配置すること、および／または２つ以上のコンピューター間で分散することもできる。
【００３７】
[0042]  更に、特許請求する主題は、方法、装置、あるいはソフトウェア、ファームウェア、ハードウェアを生産するための標準的なプログラミングおよび／または設計技法を用いた製造の品目、あるいは開示した主題を実現するようにコンピューターを制御するための、その任意の組み合わせとして実現することができる。「製造の品目」という用語は、本明細書において用いられる場合、任意のコンピューター読み取り可能媒体、担体(carrier)、または媒体からアクセス可能なコンピューター・プログラムを包含することを意図している。勿論、特許請求する主題の範囲や主旨から逸脱することなく、この構成に多くの変更を行い得ることは、当業者には認められよう。
【００３８】
[0043]  図６および以下の論述は、本明細書において明示した設備の１つ以上の実施形態を実現するのに適した計算環境の端的な総合的説明を行うためにある。図６の動作環境は、適した動作環境の一例に過ぎず、動作環境の使用範囲や機能について何の限定を示唆することも意図していない。計算デバイスの例には、限定ではなく、パーソナル・コンピューター、サーバー・コンピューター、ハンド・ヘルドまたはラップトップ・デバイス、移動体デバイス（移動体電話機、パーソナル・ディジタル・アシスタント（ＰＤＡ），メディア・プレーヤー等）、マルチプロセッサ・システム、消費者用電子機器、ミニ・コンピューター、メインフレーム・コンピューター、以上のシステムまたはデバイスの内任意のものを含む分散方計算環境などが含まれる。
【００３９】
[0044]  必須ではないが、１つ以上の計算デバイスによって実行される「コンピューター読み取り可能命令」という一般的なコンテキストで、実施形態が説明されている。コンピューター読み取り可能命令は、コンピューター読み取り可能媒体（以下で論ずる）を通じて分散することもできる。コンピューター読み取り可能命令は、関数、オブジェクト、アプリケーション・プログラミング・インターフェース（ＡＰＩ）、データー構造などのようなプログラム・モジュールとして実現することができ、特定のタスクを実行するか、または特定の抽象データー・タイプを実装する。通例、コンピューター読み取り可能命令の機能は、種々の環境における所望に応じて、組み合わせることまたは分散することができる。
【００４０】
[0045]  図６は、本明細書において示した１つ以上の実施形態を実現するように構成されている計算デバイス１０２を備えているシステム１００の一例を示す。一構成では、計算デバイス１０２は少なくとも１つの処理ユニット１０６およびメモリー１０８を含む。計算デバイスの正確な構成およびタイプに依存して、メモリー１０８は揮発性（例えば、ＲＡＭのような）、不揮発性（例えば、ＲＯＭ、フラッシュ・メモリー等のような）、またはこれら２つの何らかの組み合わせとすることができる。この構成は、図６では破線１０４で示されている。
【００４１】
[0046]  他の実施形態では、計算デバイス１０２は追加の機構および／または機能を含むこともできる。例えば、計算デバイス１０２は、追加のストレージ（例えば、リムーバブルおよび／または非リムーバブル）も含むことができる。限定ではなく、追加のストレージには、磁気ストレージ、光ストレージ等が含まれる。このような追加のストレージは、図６ではストレージ１１０によって例示されている。一実施形態では、本明細書において示した１つ以上の実施形態を実現するコンピューター読み取り可能命令は、ストレージ１１０の中にあるとよい。また、ストレージ１１０は、オペレーティング・システム、アプリケーション・プログラム等を実装するために、他のコンピューター読み取り可能命令も格納することができる。コンピューター読み取り可能命令は、例えば、処理ユニット１０６による実行のために、メモリー１０８にロードすることができる。
【００４２】
[0047]  「コンピューター読み取り可能媒体」という用語は、本明細書において用いる場合、コンピューター記憶媒体を含む。コンピューター記憶媒体は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含み、コンピューター読み取り可能命令または他のデーターのような情報の格納のための任意の方法または技術で実現されている。メモリー１０８およびストレージ１１０は、コンピューター記憶媒体の例である。コンピューター記憶媒体は、限定ではなく、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリーまたはその他のメモリー技術、ＣＤ−ＲＯＭ、ディジタル・バーサタイル・ディスク（ＤＶＤ）またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができその上計算デバイス１０２によってアクセスすることができるのであれば他のいずれの媒体をも含む。このようなコンピューター記憶媒体は、そのいずれもが計算デバイス１０２の一部となってもよい。
【００４３】
[0048]  また、計算デバイス１０２は、計算デバイス１０２が他のデバイスと通信することを可能にする通信接続（１つまたは複数）１１６も含むことができる。通信接続（１つまたは複数）１１６は、限定ではなく、モデム、ネットワーク・インターフェース・カード（ＮＩＣ）、統合ネットワーク・インターフェース、無線周波数送信機／受信機、赤外線ポート、ＵＳＢ接続、または計算デバイス１０２を他の計算デバイスと接続するためのその他のインターフェースを含むことができる。通信接続（１つまたは複数）１１６は、有線接続またはワイヤレス接続を含むことができる。通信接続（１つまたは複数）１１６は、通信媒体を送信および／または受信することができる。
【００４４】
[0049]  「コンピューター読み取り可能媒体」という用語は、通信媒体を含むことができる。通信媒体は、通例、搬送波またはその他の伝達メカニズムのような「変調データー信号」にコンピューター読み取り可能命令またはその他のデーターを具体化し、いずれの情報配信媒体も含む。「変調データー信号」という用語は、情報を信号内に符号化するような態様で設定または変更したその特性の１つ以上を有する信号を含むことができる。
【００４５】
[0050]  計算デバイス１０２は、キーボード、マウス、ペン、音声入力デバイス、接触入力デバイス、赤外線カメラ、ビデオ入力デバイス、および／またはその他のあらゆる入力デバイスというような、入力デバイス（１つまたは複数）１１４を含むことができる。１つ以上のディスプレイ、スピーカー、プリンター、および／またはその他の出力デバイスというような出力デバイス（１つまたは複数）１１２も、計算デバイス１０２に含むことができる。入力デバイス（１つまたは複数）１１４および出力デバイス（１つまたは複数）１１２は、有線接続、ワイヤレス接続、またはそのいずれの組み合わせによってでも、計算デバイス１０２に接続することができる。一実施形態では、別の計算デバイスからの入力デバイスまたは出力デバイスを、計算デバイス１０２用の入力デバイス（１つまたは複数）１１４または出力デバイス（１つまたは複数）１１２として用いることもできる。
【００４６】
[0051]  計算デバイス１０２のコンポーネントは、バスのような、種々の相互接続によって接続することができる。このような相互接続は、ＰＣＩ Expressのようなペリフェラル・コンポーネント相互接続（ＰＣＩ）、ユニバーサル・シリアル・バス（ＵＳＢ）、ファイアワイヤ（ＩＥＥＥ１３９４）、光バス構造などを含むことができる。別の実施形態では、計算デバイス１０２のコンポーネントは、ネットワークで相互接続することができる。例えば、メモリー１０８は、ネットワークによって相互接続されている異なる物理的位置にある多数の物理的メモリー・ユニットによって構成することもできる。
【００４７】
[0052]  コンピューター読み取り可能命令を格納するために利用される記憶デバイスは、ネットワークに跨って分散させてもよいことは、当業者には分かるであろう。例えば、ネットワーク１１８を通じてアクセス可能な計算デバイス１２０は、本明細書において提唱した１つ以上の実施形態を実現するために、コンピューター読み取り可能命令を格納することができる。計算デバイス１０２は、計算デバイス１２０にアクセスし、コンピューター読み取り可能命令の一部または全部を実行のためにダウンロードすることができる。あるいは、計算デバイス１０２は、必要に応じて、コンピューター読み取り可能命令の断片をダウンロードすることができ、一部の命令を計算デバイス１０２において実行し、一部を計算デバイス１２０において実行することもできる。
【００４８】
[0053]  本明細書では、実施形態の種々の動作について提唱した。一実施形態では、記載した動作の１つ以上が、１つ以上のコンピューター読み取り可能媒体上に格納されたコンピューター読み取り可能命令を構成することができ、計算デバイスによって実行すると、当該計算デバイスに、記載した動作を実行させる。これらの動作の一部または全部を記載した順序は、これらの動作に必然的な順序依存性があるように解釈すべきではない。この記載から援助を受けた当業者には、代わりの順序も認められよう。更に、本明細書において提唱した各実施形態において、全ての動作が必ずしも出てくる訳ではないことは言うまでもない。
【００４９】
[0054]  更に、「一例の」という単語は、本明細書では、一例、実例、または例示としての役割を果たすことを意味するために用いられる。本明細書において「一例の」として記載される態様または設計はいずれも、他の態様または設計よりも有利であるとは必ずしも解釈されない。むしろ、一例のという用語の使用は、概念を具体的に紹介することを意図している。本明細書において用いる場合、「または」という用語は、排他的な「または」ではなく包含的な「または」を意味することを意図する。即ち、そうでないことが指定されていない限り、または文脈から明白でない限り、「ＸはＡまたはＢを採用する」とは、自然な包含的組み合わせ(permutation)のいずれでも意味することを意図する。即ち、ＸがＡを採用する場合、ＸがＢを採用する場合、またはＸがＡおよびＢの双方を採用する場合、これらの実例のいずれにおいても、「ＸはＡまたはＢを採用する」が満たされる。加えて、冠詞「ａ」および「ａｎ」は、本願および添付した特許請求の範囲において用いられる場合、そうでないことが指定されていない限り、また文脈から単数形態を対象とすることが明白でない限り、「１つ以上」を意味するように通常解釈することができる。
【００５０】
[0055]  また、１つ以上の実施態様に関して本開示を示し説明したが、本明細書および添付図面の熟読および理解に基づいて、同等の変形や変更が当業者には想起されよう。本開示は、このような変更や変形を全て含み、以下の特許請求の範囲のみによって限定される。特に、以上で述べたコンポーネント（例えば、エレメント、リソース等）によって実行される種々の機能に関して、このようなコンポーネントを記載するために用いられた用語は、そうでないことが示されない限り、記載されたコンポーネント（例えば、機能的に同等な）の指定された機能を実行するのであれば、本開示のここで例示された実施態様例における機能を実行する、開示された構造に構造的に同等でなくても、いずれのコンポーネントにも対応することを意図している。加えて、本開示の特定的な機構を、様々な実施態様の内１つのみに関して開示したが、このような機構は、いずれの所与の用途または特定の用途にとっても望まれるまたは有利となるように、他の実施態様の１つ以上の別の機構と組み合わせることができる。更に、「含む」、「有している」(having)、「有する」(has)、「と」(with)という用語、またはその異形が詳細な説明または特許請求の範囲において用いられている限りにおいて、このような単語は、用語「備えている（又は含む）」(comprising)と同様に内包的であることを意図している。
【図１】
2012520504.tif 000003
【図２】
2012520504.tif 000004
【図３】
2012520504.tif 000005
【図４】
2012520504.tif 000006
【図５】
2012520504.tif 000007
【図６】
2012520504.tif 000008
【国際調査報告】
2012520504.tif 000009
2012520504.tif 000010