(57)【特許請求の範囲】
【請求項１】
コンピューティング装置であって、
１つ以上のコンピューター可読記憶媒体と、
前記１つ以上のコンピューター可読記憶媒体に動作可能に結合される処理システムと、
ローミング設定サービスを提供するために、前記１つ以上のコンピューター可読記憶媒体に格納されるプログラム命令であって、前記命令が前記処理システムによって実行されると、前記処理システムに、少なくとも、
コンテンツ・アイテムをホストするローカル・インストレーション・モデルに従ってプロビジョニングされたアプリケーション・プログラムのインスタンスと連動する間、ユーザーの前記コンテンツ・アイテムとの相互作用を少なくとも示す、前記ユーザーに特有のローミング設定への更新を受け取らせ、
前記コンテンツ・アイテムをホストするホストアプリケーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムのインスタンスによって開始される、前記ユーザーに特有の前記ローミング設定についての要求を受け取らせ、
前記要求に応答して、更新済みのローミング設定を抽出させ、前記更新済みのローミング設定が、前記ローカル・インストレーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムのインスタンスと連動する間、前記ユーザーの前記コンテンツ・アイテムとの前記相互作用を少なくとも示す前記ローミング設定への更新を反映し、
前記ホストアプリケーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムのインスタンスへのデリバリのために、前記更新済みのローミング設定を移送させる
ように指示する、コンピューティング装置。
【請求項２】
請求項１記載のコンピューティング装置において、
前記アプリケーション・プログラムが生産性アプリケーションを含み、
前記コンテンツ・アイテムが生産性ドキュメントを含み、
前記ユーザーの前記コンテンツ・アイテムとの相互作用が、前記ユーザーに代わって最も直近にアクセスされた前記生産性ドキュメントの箇所を含む、コンピューティング装置。
【請求項３】
請求項２記載のコンピューティング装置において、前記生産性ドキュメントが、ワード・プロセッシング・ドキュメント、スプレッドシート・ドキュメント、およびプレゼンテーション・ドキュメントの内の少なくとも１つを含む、コンピューティング装置。
【請求項４】
請求項２記載のコンピューティング装置において、前記生産性ドキュメントが、共有の生産性ドキュメントを含み、前記プログラム命令が、前記処理システムによって実行されると、前記処理システムに、更に、
第２ユーザーに特有の第２ローミング設定についての第２要求を受け取らせ、前記第２ローミング設定が、前記ホストアプリケーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムの第２インスタンスと連動する間、前記第２ユーザーの前記共有の生産性ドキュメントとの第２相互作用を少なくとも示し、
前記第２要求に応答して、前記第２ローミング設定を抽出させ、前記アプリケーション・プログラムの第２インスタンスへのデリバリのために前記第２ローミング設定を移送させる
ように指示し、
前記第２ユーザーの前記共有の生産性ドキュメントとの前記第２相互作用が、前記第２ユーザーに代わって最も直近にアクセスされた前記生産性ドキュメントの第２箇所を含む、コンピューティング装置。
【請求項５】
請求項１記載のコンピューティング装置において、前記処理システムが、ローカルにインストールされた前記ローカル・インストレーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムのインスタンスを有するクライアント・デバイスと通信する、コンピューティング装置。
【請求項６】
請求項５記載のコンピューティング装置において、前記処理システムが、ホストされた前記ローカル・インストレーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムのインスタンスを有するアプリケーション・サーバーと通信する、コンピューティング装置。
【請求項７】
請求項６記載のコンピューティング装置であって、前記プログラム命令が前記処理システムによって実行されると、前記処理システムに、更に、
故障条件に応じて前記ローミング設定のコピーを取得するために、前記ローカル・インストレーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムの少なくとも１つのインスタンスへのデリバリについての回復要求を生成および移送させるように指示する、コンピューティング装置。
【請求項８】
請求項１記載のコンピューティング装置において、
前記アプリケーション・プログラムが第１生産性アプリケーションを含み、前記コンテンツ・アイテムが第１生産性ドキュメントを含み、
前記プログラム命令が、前記処理システムによって実行されると、前記処理システムに、更に、
第２生産性ドキュメントをホストする第２生産性アプリケーションのインスタンスによって開始される、前記ユーザーに特有の前記ローミング設定についての第２要求を受け取らせ、
前記要求に応答して、更新済みのローミング設定を抽出させ、前記更新済みのローミング設定が、前記ローカル・インストレーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムのインスタンスと連動する間、前記ユーザーの前記コンテンツ・アイテムとの前記相互作用を少なくとも示す、前記ローミング設定への更新を反映し、
前記第２生産性アプリケーションのインスタンスへのデリバリのために前記更新済みのローミング設定を移送させる
ように指示し、
前記第２生産性アプリケーションが、前記第１生産性アプリケーションとは異なる種別のアプリケーションを含み、前記第２生産性ドキュメントが、前記第１生産性ドキュメントとは異なる種別のドキュメントを含む、コンピューティング装置。
【請求項９】
請求項８記載のコンピューティング装置において、前記ユーザーに特有の前記ローミング設定がカスタム辞書を含み、前記ローカル・インストレーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムのインスタンスと連動する間、前記ユーザーの前記コンテンツ・アイテムとの相互作用が前記カスタム辞書への修正を含む、コンピューティング装置。
【請求項１０】
ローミング設定サービスを動作させるコンピューター実装方法であって、コンピューターによる、
コンテンツ・アイテムをホストするローカル・インストレーション・モデルに従ってプロビジョニングされたアプリケーション・プログラムのインスタンスと連動する間、ユーザーの前記コンテンツ・アイテムとの相互作用を少なくとも示す、前記ユーザーに特有のローミング設定への更新を受け取るステップと、
前記コンテンツ・アイテムをホストするホストアプリケーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムのインスタンスによって開始される、前記ユーザーに特有の前記ローミング設定についての要求を受け取るステップと、
前記要求に応答して、更新済みのローミング設定を抽出するステップであって、前記更新済みのローミング設定が、前記ローカル・インストレーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムのインスタンスと連動する間、前記ユーザーの前記コンテンツ・アイテムとの前記相互作用を少なくとも示す前記ローミング設定への更新を反映するステップと、
前記ホストアプリケーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムのインスタンスへのデリバリのために、前記更新済みのローミング設定を移送するステップと
を含む、方法。
【請求項１１】
請求項１０記載の方法において、
前記アプリケーション・プログラムが生産性アプリケーションを含み、
前記コンテンツ・アイテムが生産性ドキュメントを含み、
前記ユーザーの前記コンテンツ・アイテムとの前記相互作用が、前記ユーザーに代わって最も直近にアクセスされた前記生産性ドキュメントの箇所を含む、方法。
【請求項１２】
請求項１１記載の方法において、前記生産性ドキュメントが、ワード・プロセッシング・ドキュメント、スプレッドシート・ドキュメント、およびプレゼンテーション・ドキュメントの内の少なくとも１つを含む、方法。
【請求項１３】
請求項１１記載の方法において、前記生産性ドキュメントが共有の生産性ドキュメントを含み、当該方法が、更に、
第２ユーザーに特有の第２ローミング設定についての第２要求を受け取るステップであって、前記第２ローミング設定が、前記ホストアプリケーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムの第２インスタンスと連動する間、前記第２ユーザーの前記共有の生産性ドキュメントとの第２相互作用を少なくとも示す、ステップと、
前記第２要求に応答して、前記第２ローミング設定を抽出するステップと、
前記アプリケーション・プログラムの第２インスタンスへのデリバリのために前記第２ローミング設定を移送するステップと
を含み、前記第２ユーザーの前記共有の生産性ドキュメントとの前記第２相互作用が、前記第２ユーザーに代わって最も直近にアクセスされた前記生産性ドキュメントの第２箇所を含む、方法。
【請求項１４】
請求項１０記載の方法において、前記更新を受け取るステップが、ローカルにインストールされた前記ローカル・インストレーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムのインスタンスを有するクライアント・デバイスから、前記更新を受け取るステップを含む、方法。
【請求項１５】
請求項１４記載の方法において、前記更新を受け取るステップが、ホストされた前記ローカル・インストレーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムのインスタンスを有するアプリケーション・サーバーから前記更新を受け取るステップを含む、方法。
【請求項１６】
請求項１５記載の方法であって、更に、
故障条件に応じて前記ローミング設定のコピーを取得するために、前記ローカル・インストレーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムの少なくとも１つのインスタンスへのデリバリについての回復要求を生成および移送するステップを含む、方法。
【請求項１７】
請求項１０記載の方法において、
前記アプリケーション・プログラムが第１生産性アプリケーションを含み、
前記コンテンツ・アイテムが第１生産性ドキュメントを含み、
当該方法が、更に、
第２生産性ドキュメントをホストする第２生産性アプリケーションのインスタンスによって開始される、前記ユーザーに特有の前記ローミング設定についての第２要求を受け取るステップと、
前記要求に応答して、更新済みのローミング設定を抽出するステップであって、前記更新済みのローミング設定が、前記ローカル・インストレーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムのインスタンスと連動する間、前記ユーザーの前記コンテンツ・アイテムとの前記相互作用を少なくとも示す、前記ローミング設定への更新を反映し、前記第２生産性アプリケーションのインスタンスへのデリバリのために前記更新済みのローミング設定を移送する、ステップと
を含み、前記ユーザに特有の前記ローミング設定がカスタム辞書を含み、前記ローカル・インストレーション・モデルに従ってプロビジョニングされた前記アプリケーション・プログラムのインスタンスと連動する間、前記ユーザーの前記コンテンツ・アイテムとの相互作用が前記カスタム辞書への修正を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の態様は、コンピューター・ハードウェアおよびソフトウェア、その中でも特に、ユーザーに特有のローミング設定サービスに関連するものである。
【背景技術】
【０００２】
ユーザーがアプリケーション環境と連動する(engage with)時に、アプリケーションの設定により、優先度、状態および他のアプリケーション環境の特性を格納および適用できる。最も直近に使用したファイルのリスト、カスタム辞書、および閲覧する優先度は、設定についての例である。これは、ワード・プロセッシング、スプレッドシート、電子メール、プレゼンテーション、ソーシャル・ネットワーキング、またはゲームのアプリケーションのようなアプリケーションを起動するときに適用することができる。
【０００３】
多種多様なアプリケーション・モデルが存在し、これにより、ユーザーはアプリケーション環境およびコンテンツをエクスペリエンス(experience)することができる。例えば、アプリケーションは、ローカルにインストールおよび実行することができ、ｗｅｂベースのプラットフォームでホストすること、または、他の技術間でローカルの実行のためにネットワークを介してストリームすることができる。無数の種別のコンピューティング・デバイス（例えば、デスクトップおよびラップトップ・コンピューター、タブレット、ネットブック、ウルトラ・ブック、電子リーダー、携帯電話、インターネット・ブラウズ用機器、およびゲーム・コンソール）を使用することができる。
【０００４】
設定は、様々な方法で多様なアプリケーション・エクスペリエンスにわたり管理できる。幾らかの解決策では、アプリケーション・プログラムとオペレーティング・システム・エレメント間で設定に関連する呼び出しを関しおよび遮断するクライアント・プログラムを提供する。この手法では、ユーザーによって１つのデバイス上で確立された設定を同一のユーザーによってアクセスされる他のデバイスに伝達することができる。
【０００５】
幾らかの共有のドキュメント環境に関し、設定はグローバルに適用することができ、各バージョンの共有のドキュメントがあらゆる他のバージョンと同一の設定を承継することができる。例えば、如何なるユーザーにもアクセスされる共有のドキュメントの最新ページは、当該共有ドキュメントをオープンするとあらゆる他のユーザーにも提示することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ローミング設定サービスを容易にするシステム、方法およびソフトウェアについて本明細書で提供する。特に、ユーザーに特有の設定が、異なるアプリケーション・モデルに従ってプロビジョニングされるアプリケーションのインスタンス間においてローミングすることができる。
【課題を解決するための手段】
【０００７】
一実施形態では、ローミング設定は、第１のアプリケーション・モデルに従ってプロビジョニングされたアプリケーション・プログラムのインスタンスによって開始される、ユーザーに特有のローミング設定への更新を受け取る。第２のアプリケーション・モデルに従ってプロビジョニングされたアプリケーション・プログラムのインスタンスによって開始される、ユーザーに特有のローミング設定の要求を受け取ると、ローミング設定サービスは、ローミング設定への更新を反映した更新済みのローミング設定を抽出する。設定サービスは、第２のアプリケーション・モデルに従ってプロビジョニングされたアプリケーション・プログラムのインスタンスへのデリバリのために上記更新済みのローミング設定を移送する。
【０００８】
本摘要は、以下の技術開示部で更に説明する、より簡略化した形態の概念の選択を導入するために設けられる。本概要は、特許請求する主題の鍵となる特徴や必須の特徴を特定するのを意図せず、また、特許請求する主題の範囲を限定するのを意図するものではないことが理解されるべきである。
【０００９】
本開示の多くの態様は、次の図面を参照することでより良く理解することができる。これら図面に関連して幾らかの実施形態を説明するものの、本開示は本明細書に開示する実施形態に限定されないが、全ての代替物、修正物および均等物をカバーすることを意図するものである。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態のローミング設定サービスの動作の例示である。
【図２】図２は、実施形態のローミング設定サービスを提供するために設定サーバーによって実行されるプロセスの例示である。
【図３】図３は、実施形態のローミング設定サービスを提供するためにアプリケーションのインスタンスによって実行されるプロセスの例示である。
【図４】図４は、実施形態のローミング設定サービスを提供するためのコンピューティング環境の例示である。
【図５】図５は、実施形態のローミング設定サービスを提供するためのコンピューティング環境の例示である。
【図６】図６は、実施形態のローミング設定サービスを提供する際のコンピューティング環境における動作交換を例示するシーケンス図である。
【図７】図７は、実施形態のローミング設定サービスを提供する際のコンピューティング環境における動作交換を例示するシーケンス図である。
【図８】図８は、実施形態のローミング設定サービスを提供する際のコンピューティング環境における動作交換を例示するシーケンス図である。
【図９】図９は、実施形態のローミング設定サービスを提供する際のコンピューティング環境における動作交換を例示するシーケンス図である。
【発明を実施するための形態】
【００１１】
本明細書に説明する実施形態は、ユーザーに特有のものをベースにしてローミング設定を容易にすることにより、改良したアプリケーション・エクスペリエンスを提供する。１つのアプリケーション・モデルに従ってプロビジョニングされるアプリケーションと連動する際に確立されるローミング設定は、異なるアプリケーション・モデルに従ってプロビジョニングされるものの、同一のアプリケーションと連動するときに享受することができる。実際、ローミング設定はまた、同一アプリケーションについて、単なる異なるインスタンスではない異なるアプリケーションにも適用可能である。
【００１２】
簡単な例では、ユーザーは、彼／彼女のデスクトップまたはラップトップ・コンピューターにローカルにインストールされた生産性アプリケーションと連動するときに設定を確立することができる。次いで、ホスト済みのアプリケーション・モデル、即ちストリーミング・アプリケーション・モデルによって同一のアプリケーションと引き続き連動するときに、ユーザーは同一の設定を享受することができる。この手法では、ユーザーは、アプリケーションがデリバリされるプロビジョニング・モデルに拘わらず、アプリケーションの様々なインスタンスにわたり共有のアプリケーション・エクスペリエンスを享受することができる。言及したように、ローミング設定は、異なるアプリケーションに対して適用可能とすることができる。例えば、ユーザーは、一方の生産性アプリケーションと共に適切なアプリケーションに供給されるもののような異なる生産性アプリケーションと連動することができる。ユーザーに特有のローミング設定の全部または一部は、異なるアプリケーションによって抽出および適用することができる。
【００１３】
一実施形態では、設定サービスは、異なるアプリケーション・モデルおよび異なるアプリケーションにわたる、ユーザーに特有の設定についての上記のローミングを実現するために機能する。ユーザーに特有の設定は、様々な方法でプロビジョニングされるアプリケーションが有する様々なインスタンスによって、設定サービスに伝達することができる。ユーザーが様々なプロビジョニング・モデルによってアプリケーションと連動すると、設定サービスはそのユーザーの設定を伝達することができ、これにより、当該アプリケーションのそのインスタンスが、馴染みのあるアプリケーション・エクスペリエンスをレンダリングするのを可能にする。ユーザーがアプリケーションの異なるインスタンスに移されると、当該ユーザーに付随する設定は、アプリケーションの次のインスタンスがどのようにしてプロビジョニングされるかに拘わらず、設定サービスに対して更新され、当該ユーザーと共にプリケーションの次のインスタンスに移されることができる。
【００１４】
設定サービスは様々なプロビジョニング・モデルを適合することができ、本明細書で述べるそれらのものには限定してはならない。ローカルにインストール済みのインスタンス、ホスト済みのインスタンス、およびストリーミング・インスタンスは、これらの組合せまたは変更を含み、プロビジョニング・モデルの単なる幾らかの例示に過ぎない。例えば、アプリケーションが有する幾らかのインスタンスは、最初にストリーミング法で供給されるが、次いで、ローカルにインストールされ、それから実行することができる。他の例では、アプリケーションが有する幾らかのインスタンスは、ユーザーによって連動されるローカル・デバイスからリモートで実行するコンポーネントを含んでもよく、これはまた、ローカル・デバイス上で、恐らくはブラウザーのような他のローカル・アプリケーション内で実行する他のコンポーネントを含んでもよい。
【００１５】
基礎となるデバイスは、それを通じてユーザーがアプリケーションと連動できるが、変更することもでき、また、設定サービスによって適合される多様なプロビジョニング・モデルに寄与することができる。例えば、ユーザーは、デスクトップ・コンピューター、ラップトップ・コンピューター、タブレット型コンピューター、携帯電話、媒体デバイス、音楽プレーヤー、ビデオ・デバイス、およびインターネット機器を、プロビジョニング・モデルに従ってアプリケーションを供給可能な他の如何なる種別のコンピューティング・デバイスと同様に、使用してアプリケーションと連動することができる。
【００１６】
様々なアプリケーション・プログラムはまた、設定サービスによって適合することもでき、本明細書に述べるそれらのものには限定してはならない。通信アプリケーション、生産性アプリケーション、ゲーム・アプリケーション、エンターテインメント・アプリケーション、ブラウジング・アプリケーション、およびソーシャル・ネットワーク・アプリケーションは、如何なる組合せやその変更と同様に、様々なプロビジョニング・モデルに従ってプロビジョニングできる幾らかの例示のアプリケーションに過ぎない。生産性アプリケーションの例には、これに限定されないが、ドキュメント編集アプリケーション、スプレッドシート・アプリケーション、プレゼンテーション・アプリケーション、およびデータベース・アプリケーションが含まれる。
【００１７】
他の簡単な例では、ユーザーは、彼または彼女のラップトップ・コンピューターによって生産性アプリケーションが有する、ローカルにインストールされたインスタンスと連動することができる。アプリケーションが有する当該インスタンスと協働する間、ユーザーと関連付けられる設定は、アプリケーションによって追跡され、さもなければ決定することができる。最も直近に使用されたドキュメントのリスト、カスタム辞書、およびユーザーによって最後にアクセスしたドキュメントのページは設定の例示である。但し、他のタイプの設定、設定の組合せ、またはその変更もあり得ることが理解されるべきである。
【００１８】
ユーザーが生産性アプリケーションと連動すると設定を変更することができる。例えば、最も直近に使用したドキュメントのリストを変更することができ、ワードをカスタム辞書に追加すること、または、ドキュメントの最後にアクセスしたページを変更することができる。したがって、ラップトップ・コンピューター上にローカルにインストール済みの実行中のアプリケーションが有するインスタンスは、設定サービスに対して更新済みの設定を伝達することができる。設定サービスは、更新済みの設定をユーザーに関連付けて格納する。その結果、更新済みの設定は、引き続き、抽出およびアプリケーションの他のインスタンスへの供給をすることができる。
【００１９】
この例に続いて、ユーザーは、同一の生産性アプリケーションと再度連動することができる。しかし、ホスト済みのバージョンのアプリケーションのようにそのインスタンスは異なって供給される。ホスト済みのバージョンは、同一のラップトップ・コンピューター、または全く異なるコンピューティング・デバイスで起動しているｗｅｂブラウザー・アプリケーションによってアクセスすることができる。生産性アプリケーションのホスト済みのインスタンスと連動すると、ユーザーに特有の更新済みの設定は、設定サービスから抽出することができ、ローカルにインストールされたインスタンスによってアプリケーションと連動するときのように、馴染みのあるエクスペリエンスを享受できる。例えば、ユーザーがドキュメントをオープンする場合に、ドキュメントは、ラップトップ上で最後にアクセスしたページのような最も直近にアクセスしたページをオープンすることができる。
【００２０】
上記の例の変更例としては、参照したドキュメントは、複数のユーザーが当該ドキュメントにアクセス可能なように共有された生産性ドキュメントであってもよい。この場合、ユーザーは、彼／彼女が最後にアクセスした特定のページに戻ることができる一方で、他のユーザーは、各ユーザーが任意のユーザーによって最後にアクセスされたページに戻るのではなく、彼らが最後にアクセスした他のページに戻ることができる。
【００２１】
これより図面を参照する。図１から図３は、ローミング設定サービスの動作について、コンピューティング環境および当該サービスを実行するプロセスと共に例示する。特に、図１がローミング設定サービスの動作を例示する一方で、図２および図３は当該サービスを提供するプロセスについて例示する。図４は、ローミング設定サービスおよびプロセスを実装するのに適したコンピューティング環境を例示する。図５は、ローミング設定サービスが実施される他のコンピューティング環境について例示する。一方、図６から図８は、ローミング設定サービスを提供するコンテキストにおいて当該コンピューティング環境における様々な動作交換について例示する。
【００２２】
これより図１を参照する。ローミング環境１００は、アプリケーション・モデル１０５に従ってプロビジョニングされるアプリケーション・インスタンス１０３、アプリケーション・モデル１０９に従ってプロビジョニングされるアプリケーション・インスタンス１０７、およびアプリケーション・モデル１１３に従ってプロビジョニングされるアプリケーション・インスタンス１１１を含む。ローミング環境１００はまた、設定サーバー１２１および設定ストレージ１２３を、コンテンツ・サーバー１３１およびコンテンツ・ストレージ１３３と同様に含む。
【００２３】
動作において、ユーザー１０１は、最初に（Ｔ１）、アプリケーション・モデル１０５に従ってプロビジョニングされるアプリケーション・インスタンス１０３と連動する。例えば、コンテンツを、コンテンツ・サーバー１３１によってコンテンツ・ストレージ１３３から抽出し、アプリケーション・インスタンス１０３に伝達することができ、ユーザー１０１がそのコンテンツと協働するのを可能にする。ユーザー１０１は、コンテンツをコンテンツ・サーバー１３１から抽出することなくアプリケーション・インスタンス１０３と連動できることが理解されるべきである。本明細書で用いるように、コンテンツは、写真、ドキュメント、スプレッドシート、プレゼンテーション、ビデオ等のようなコンテンツ・アイテムに関するものとすることができる。しかしながら、コンテンツはまた、幾らかのドキュメント、スプレッドシート、プレゼンテーション等のようなコンテンツ・アイテムのコレクションに関するものとすることができる。
【００２４】
アプリケーション・インスタンス１０３と連動および協働すると、設定の更新が開始され、設定サーバー１２１に伝達される。設定の更新は、恐らくは、コンテンツに関してユーザーによって為される相互作用を示す、ユーザー１０１についてのユーザーに特有の設定に対して行われる変更を含むことができる。設定サーバー１２１は、設定ストレージ１２３内でユーザー１０１と関連付けられた設定を更新して、変更を反映する。コンテンツとのユーザー相互作用については公知であり、そのキャプチャーは通常、ほとんどの生産性アプリケーションによってサポートされている。例えば、数多くの生産性アプリケーションは、ドキュメントをクローズする前にドキュメントのどのページまたはどのポイントに達したのかというような、記録、注釈付け、それ以外ではユーザー相互作用に対応する情報の格納を可能とすることができる。ユーザー相互作用は通常、ユーザー・インタフェース・デバイスおよび対応のソフトウェアを含むユーザー・インターフェースによって受ける。
【００２５】
その後に（Ｔ２）、ユーザー１０１は、アプリケーション・モデル１０９に従ってプロビジョニングされるアプリケーション・インスタンス１０７と連動することができる。アプリケーション・インスタンス１０７と連動すると、ユーザー１０１に特有の設定は、設定サーバー１２１によってアプリケーション・インスタンス１０７に伝達される。設定は、アプリケーション・インスタンス１０３による設定の更新によって早期になされた変更を反映できる。コンテンツはまた、コンテンツ・ストレージ１３３から抽出し、コンテンツ・サーバー１３１によってアプリケーション・インスタンス１０７に供給することもできる。コンテンツは、コンテンツ・サーバー１３１によってアプリケーション・インスタンス１０３に早期に供給される同一のアイテムまたは複数のアイテムとしてもよい。コンテンツがアプリケーション・インスタンス１０３によってアクセスされるのと同一のコンテンツとするシナリオでは、アプリケーション・インスタンス１０７によって取得した少なくとも一部の設定を、コンテンツに適用することができる。言い換えると、ユーザー１０１は、１つのモデルに従ってプロビジョニングされるアプリケーション・インスタンス１０３、または他のモデルに従ってプロビジョニングされるアプリケーション・インスタンス１０７がコンテンツにアクセスできるかどうかについて、コンテンツに適用される共通の設定を享受することができる。
【００２６】
更なる他の時間（Ｔ３）では、異なるユーザー（ユーザー１０２）は、アプリケーション・モデル１１３に従ってプロビジョニングされるアプリケーション・インスタンス１１１と連動することができる。アプリケーション・インスタンス１１１と連動すると、ユーザー１０２に特有の設定は、設定サーバー１２１によってアプリケーション・インスタンス１１１に伝達される。コンテンツはまた、コンテンツ・ストレージ１３３から抽出することができ、コンテンツ・サーバー１３１によってアプリケーション・インスタンス１１１に提供することもできる。
【００２７】
実際のところ、コンテンツは、コンテンツ・サーバー１３１によって、アプリケーション・インスタンス１０３およびアプリケーション・インスタンス１０５の一方または双方に早期に供給される同一のアイテムまたは複数のアイテムとすることができる。例えば、コンテンツは、共有のコンテンツとしてもよい。このような状況では、ユーザー１０２に特有の設定は、アプリケーション・インスタンス１１１によって共有されるコンテンツに適用することができ、ユーザー１０２が、ユーザー１０１のためにコンテンツに適用される設定とは異なる設定をエクスペリエンスすることが可能になる。
【００２８】
図２は、設定サーバー１２１によってローミング環境１００内に実装され、ローミング設定サービスの少なくとも一部を提供するサーバー・プロセスを例示したものである。開始のために、設定サーバー１２１は、ユーザーに特有のアプリケーション・インスタンスから設定の更新を受け取る（ステップ２０１）。更新が適用される設定は、同一のアプリケーション・インスタンス、異なるアプリケーション・インスタンス、または全く異なるアプリケーションの動作の間に以前に確立できたものであることが理解されるべきである。次に、設定サーバー１２１は、ユーザーに特有のローミング設定について他のアプリケーション・インスタンスからの要求を受ける（ステップ２０３）。設定サーバー１２１は、ユーザーに特有のローミング設定を抽出し（ステップ２０５）、そして、他のアプリケーション・インスタンスへのデリバリのためにそれらを移送する（ステップ２０７）。
【００２９】
図３は、ユーザーに特有のローミング設定サービスの少なくとも一部を提供するために、アプリケーション・インスタンス１０３，１０７，１１１によって実装されるアプリケーション・プロセス３００を例示する。最初に、アプリケーション・インスタンスは、ユーザーに特有のローミング設定の要求を生成し、設定サービス１２１に送信する（ステップ３０１）。アプリケーション・インスタンスはまた、コンテンツ・サーバー１３１からコンテンツを任意に取得することもできる。ローミング設定を受け取ると（ステップ３０３）、アプリケーション・インスタンスは、ユーザーに特有の設定を、コンテンツ、またはコンテンツに関連するアプリケーション・インスタンスの一部を含むアプリケーション・インスタンスに適用する。
【００３０】
これより図４を参照する。ローミング設定サービスを実施するのに適したコンピューティング環境４００について例示する。コンピューティング環境４００は、コンピューティング・システム４１０およびコンピューティング・システム４２０を含む。コンピューティング・システム４１０は、通常、如何なるコンピューティング・システム、即ち設定サーバー１２１を適切に実装できるシステムを表す。コンピューティング・システム４２０は、通常、アプリケーション・インスタンス１０３，１０７，１１１がアプリケーション・モデル１０５，１０９，１１３に従って適切に実装できる如何なるコンピューティング・システム（複数も可）を表す。アプリケーション・モデル１０５、１０９，１１３の例には、これらに限定されないが、ローカル・インストール・モデル、ホストされたアプリケーション・モデル、およびストリーミング・アプリケーション・モデルが含まれる。
【００３１】
コンピューティング・システム４１０の例には、サーバー・コンピューター、仮想マシン、および分散コンピューティング・システムが、これらの他の如何なる組合せまたはその変更と同様に含まれる。コンピューティング・システム４２０の例には、パーソナル・コンピューター、サーバー・コンピューター、クライアント・コンピューター、モバイル・コンピューター、媒体デバイス、インターネット機器、デスクトップ・コンピューター、ラップトップ・コンピューター、タブレット型コンピューター、ノートブック・コンピューター、モバイル・フォン、スマート・フォン、ゲーム用デバイス、およびパーソナル・デジタル・アシスタントが、これらの如何なる組合せまたはその変更と同様に含まれる。
【００３２】
コンピューティング・システム４１０は、処理システム４１１、ストレージ・システム４１３、ソフトウェア４１５、および通信インターフェース４１７を含む。処理システム４１１は、ストレージ・システム４１３および通信インターフェース４１７と動作可能に結合する。処理システム４１１は、設定サーバー４２１を含むソフトウェア４１５をストレージ・システム４１３からロードして実行する。一般的なコンピューティング・システム４１０によって実行されるときに、ソフトウェア４１５は、コンピューター・システム４１０に指示して、本明細書に説明するサーバー・プロセス２００のために動作させる。
【００３３】
コンピューティング・システム４１０は、追加のデバイス、特徴または機能性を任意に含むことができる。例えば、コンピューティング・システム４１０は、キーボード、マウス、音声入力デバイス、タッチ入力デバイス、ジェスチャー入力デバイス、または相当する他の入力デバイスのような入力デバイスを任意に有することができる。ディスプレイ、スピーカー、プリンター、および相当する他の種別の出力デバイスのような出力デバイスをまた任意に含むこともできる。これらのデバイスは、公知技術であり、詳細をここで述べる必要がないものである。
【００３４】
更に図４を参照する。処理システム４１１は、ストレージ・システム４１３からソフトウェア４１５を抽出および実行するマイクロプロセッサや他の回路を備えることができる。処理システム４１１は、単一の処理デバイス内に実装することができるものの、プログラム命令を実行する際に協働する複数の処理デバイスまたはサブ・システムにわたって分散させてもよい。処理システム４１１の例には、汎用目的中央演算ユニット、特定アプリケーション向けプロセッサー、および論理デバイスを、如何なる他の種別の処理デバイスや複数の処理デバイスの組合せまたはその変更と同様に含まれる。
【００３５】
ストレージ・システム４１３は、演算処理システム４１１によって読み込み可能、且つソフトウェア４１５および設定ストレージ１２３を格納できる如何なる記憶媒体をも備えることができる。ストレージ・システム４１３は、コンピューター可読命令、データ構造、プログラム・モジュールまたは他のデータのような情報のストレージのための如何なる方法または技術で実施される、揮発性および不揮発、並びに着脱可能および着脱不能な媒体を含むことができる。ストレージ・システム４１３は、単一のストレージ・デバイスとして実装することができるものの、複数のストレージ・デバイスまたはサブ・システムにわたって実装してもよい。ストレージ・システム４１３は、処理システム４１１と通信可能なコントローラーのような追加の構成要素を備えてもよい。
【００３６】
ストレージ媒体の例には、ランダム・アクセス・メモリ、リード・オンリ・メモリ、磁気ディスク、光ディスク、フラッシュ・メモリ、仮想メモリおよび非仮想メモリ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、若しくは他の磁気ストレージ・デバイス、または所望の情報を格納するのに用いることができる命令実行システムによってアクセスできる如何なる他の媒体もが、これらの如何なる組合せ若しくは変更または如何なる他の記憶媒体と同様に含まれる。幾らかの実施形態では、ストレージ媒体は、非一時的ストレージ・メディアとしてもよい。幾らかの実施形態では、少なくとも一部のストレージ媒体は、一時的なものとしてもよい。如何なる場合でも、ストレージ媒体は伝播された信号ではないことが理解されるべきである。
【００３７】
ソフトウェア４１５は設定サーバー１２１を含み、サーバー・プロセス２００を実施する。設定サーバー１２１は、サーバー・プログラム命令内に実装することができる。そして、他の機能間で、コンピューティング・システム４１０によって実行されると、コンピューティング・システム４１０に対し要求を処理するよう指示して、ローミング設定への更新を反映し、且つ、クライアントへのデリバリのために更新済みのローミング設定を移送する、ユーザーに関連付けられた更新済みのローミング設定を識別する。
【００３８】
ソフトウェア４１５は、オペレーティング・システム・ソフトウェアまたは他のアプリケーション・ソフトウェアのような設定サーバー１２１に加え、追加のプロセス、プログラム、またはコンポーネントを含むことができる。ソフトウェア４１５はまた、ファームウェア、または処理システム４４１によって実行可能な他の形態のマシン可読処理命令を含むことができる。
【００３９】
一般に、ソフトウェア４１５は、処理システム４１１にロードおよび実行されると、処理システム４１１およびコンピューティング・システム４１０全体を、汎用目的コンピューティング・システムから、各実施形態について本明細書で説明するローミング設定サービスを容易にするためにカスタマイズされた特定目的コンピューティング・システムに変換させる(transform)ことができる。実際のところ、ストレージ・システム４１３上でコード化したソフトウェア４１５は、ストレージ・システム４１３の物理的な構造を変換することができる。物理的な構造の特定の変換は、この説明の異なる実施形態における様々な要因に依存させることができる。このような要因の例は、これに限定されないが、ストレージ・システム４１３のストレージ媒体を実装するのに用いる技術、およびコンピューター・ストレージ媒体がプライマリまたはセカンダリのストレージとして特徴付けられるかについて含むことができる。
【００４０】
例えば、コンピューター・ストレージ媒体が半導体ベース・メモリとして実装される場合、ソフトウェア４１５は、プログラムがコード化されると半導体メモリの物理的な状態を変換することができる。例えば、ソフトウェア４１５は、半導体メモリを構成するトランジスター、コンデンサー、または他の別個の回路要素の状態を変換することができる。類似の変換は、磁気または光学媒体に関して生じさせることがある。物理媒体の他の変換は、本説明の範囲から逸脱することなく、本検討を容易にするためにのみ提供した上記の例を用いることで可能となる。
【００４１】
コンピューティング・システム４１０は一般に、設定サーバー１２１が配備および実行できるコンピューティング環境４００における構成要素を表すものであることを意図するのが理解されるべきである。しかしながら、コンピューティング・システム４１０はまた、コンピューティング環境４００の他の構成要素（図示せず）も表すことができる。当該コンピューティング環境４００には、少なくとも設定サーバー１２１が提示され、また当該コンピューティング環境４００からは、構成サーバー２１２が、実行のために、移送、ダウンロード、それ以外にはコンピューティング・システム４１０と類似の他のコンピューティング・システムに提供されることができる。
【００４２】
図１を再度参照する。変換は、ソフトウェア４１５および特に設定サーバー１２１を採用するコンピューティング・システム４１０の動作を通じて、サーバー・プロセス２００に関連して実行することができる。例えば、コンピューティング・システム４１０は、ユーザーに特有の設定の更新について処置することによって１つの状態から他のものに変換するのを考慮できる。第１の状態では、ユーザーに特有の設定は、ストレージ・システム４１３上の設定ストレージ１２３に格納される。設定の更新を受け取ると、ユーザーに特有の設定が更新されて、該更新で提示された変更を反映することができる。これにより、コンピューティング・システム４１０を第２の異なる状態に変更する。
【００４３】
図４を再度参照する。通信インターフェース４１７は、通信ネットワーク４０５を通じて、コンピューティング・システム４１０およびコンピューティング・システム４２０の間の通信を、図示しない他のコンピューティング・システムを用いるのと同様に、可能にする通信接続およびデバイスを含むことができる。システム間の通信を共に可能にする接続およびデバイスの例には、ネットワーク・インターフェース・カード、アンテナ、電力増幅器、ＲＦ回路、トランシーバー、および他の通信回路が含まれる。上記のネットワーク、接続、およびデバイスは、周知のものであり、ここで詳細に述べる必要はないものである。
【００４４】
コンピューティング・システム４２０に関連し、幾らかの要素が、コンピューティング・システム４１０で見られるものと同様に含まれ、処理システム４２１、ストレージ・システム４２３、および通信インターフェース４２７を含む。ここで詳細に述べる必要はないものである。コンピューティング・システム４２０はまた、ソフトウェア４２５およびユーザー・インターフェース４２９を含み、以降により詳細に述べる。処理システム４２１は、ストレージ・システム４２３、通信インターフェース４２７、およびユーザー・インターフェース４２９と動作可能に結合される。処理システム４２１は、アプリケーション・インスタンス１０３，１０７，１１１を代表するアプリケーション・インスタンス４２６を含むソフトウェア４２５をストレージ・システム４２３からロードして実行する。一般的なコンピューティング・システム４２０、特に処理システム４２１によって実行されるときに、ソフトウェア４１５は、コンピューター・システム４２０に指示して、本明細書に説明するアプリケーション・プロセス２００のために動作させる。
【００４５】
ソフトウェア４２５は、アプリケーション・インスタンス４２６を含み、アプリケーション・プロセス３００を実施する。アプリケーション・インスタンス４２６は、サーバー・プログラム命令内に実装することができ、他の機能間で、コンピューティング・システム４２０によって実行されると、コンピューティング・システム４２０に要求を処理するように指示し、ユーザーに特有のローミング設定を要求、受信、および適用することができる。アプリケーション・プログラム命令はまた、クライアント・プログラム命令と称される命令も含むことができる。ソフトウェア４２５は、オペレーティング・システム・ソフトウェアまたは他のアプリケーション・ソフトウェアのようなアプリケーション・インスタンス４２６に加え、追加のプロセス、プログラムまたはコンポーネントを含むことができる。ソフトウェア４２５はまた、ファームウェア、または処理システム４４１によって実行可能な他の形態のマシン可読処理命令を含むことができる。
【００４６】
一般に、ソフトウェア４２５は、処理システム４２１にロードして実行されると、汎用目的コンピューティング・システムから、処理システム４２１およびコンピューティング・システム４２０全体を、各実施形態について本明細書で説明するローミング設定サービスを容易にするためにカスタマイズされた特定目的のコンピューティング・システムに変換させることができる。実際のところ、ストレージ・システム４２３上のコード化したソフトウェア４２５は、ストレージ・システム４２３の物理的な構造を変換することができる。物理的な構造の特定の変換は、この説明の異なる実施形態における様々な要因に依存することができる。このような要因の例には、これに限定されないが、ストレージ・システム４２３のストレージ媒体を実装するのに用いる技術、およびコンピューター・ストレージ媒体がプライマリまたはセカンダリのストレージとして特徴付けられるかについて含むことができる。
【００４７】
例えば、コンピューター・ストレージ媒体が半導体ベース・メモリとして実装される場合、ソフトウェア４２５は、プログラムがコード化されると半導体メモリの物理的な状態を変換することができる。例えば、ソフトウェア４２５は、半導体メモリを構成するトランジスター、コンデンサー、または他の別個の回路要素の状態を変換することができる。類似の変換は、磁気または光学媒体に関して生じさせることがある。物理媒体の他の変換は、本説明の範囲から逸脱することなく、本検討を容易にするためにのみ提供した上記の例を用いることで可能となる。
【００４８】
コンピューティング・システム４２０は、一般に、アプリケーション・インスタンスが配備および実行できるコンピューティング環境４００における構成要素を表すものであることを意図するのが理解されるべきである。しかしながら、コンピューティング・システム４２０はまた、コンピューティング環境４００の他の構成要素（図示せず）も表すことができ、当該コンピューティング環境４００には、少なくともアプリケーション・インスタンスが提示され、また当該コンピューティング環境４００からは、実行のために、アプリケーション・インスタンスが移送、ダウンロード、それ以外には他のコンピューティング・システムに提供されることができる。
【００４９】
図１を再度参照する。変換は、ソフトウェア４２５および特にアプリケーション・インスタンス４２６を採用するコンピューティング・システム４２０の動作を通じて、ローミング環境１００に関連して実行することができる。例えば、コンピューティング・システム４２０は、ユーザーに特有の設定の更新を処置することによって１つの状態から他のものに変換するのを考慮することができる。第１の状態では、アプリケーション・インスタンスは、ユーザーに特有の設定なしで起動される。ユーザーに特有の設定を要求および受け取ると、アプリケーション・インスタンスが変更されて、設定を反映することができる。これにより、コンピューティング・システム４２０を第２の異なる状態に変更する。
【００５０】
ユーザー・インターフェース４２９は、マウス、音声入力デバイス、ユーザーからジェスチャーを受けるタッチ入力デバイス、ユーザーの非タッチ・ジェスチャーおよび他の動作を検出するモーション入力デバイス、並びに相当する他の入力デバイスおよびユーザーからのユーザー入力を受けることが可能な付随の処理要素を含むことができる。ディスプレイ、スピーカー、プリンター、接触型デバイス、および他の種別の出力デバイスのような出力デバイスをまたユーザー・インターフェース４２９に任意に含むことができる。上記のユーザー入力デバイスは、公知技術であり、詳細をここで述べる必要がないものである。
【００５１】
アプリケーション・インターフェース４３１は、アプリケーション・インスタンス４２６によって生成することができ、ユーザー・インターフェース４２９によって表示することができる。アプリケーション・インターフェース４３１は、アプリケーション・インスタンス４２６に伝達することができる、ユーザーに特有のローミング設定の幾らかの例を示す。この設定は単に例示のものに過ぎず、本明細書で開示するものには限定してはならないことが理解されるべきである。設定は、最も直近に使用されたドキュメント４３５のリスト、ドキュメント４３７内のテキスト・ブロックのフォーマット・スタイル４３９、および、ユーザーに特有の設定に関連付けられるユーザーに代わってそのドキュメントに直近にアクセスされたページ４４１を含む。
【００５２】
動作において、アプリケーション・インスタンス４２６は、ユーザー・サイン・イン・モジュール４３３によって特定されるユーザーに関連付けられた、ユーザーに特有の設定を抽出するように機能する。サイン・インは、アプリケーション・インスタンス４２６内で統合することができるが、他のアプリケーションまたはオペレーティング・システムの要素のような、コンピューター・システム４２０上で実行している他の要素と統合することができる。ユーザーは、ユーザー・サイン・イン・モジュール４３３に加えて、またはこれに替わる他の手段によって識別できることが理解されるべきである。
【００５３】
ユーザーがアプリケーション・インターフェース４３１と相互作用すると、設定を変更することができる。つまり、トリガー、即ち設定サーバー１２１への更新を促す。例えば、ドキュメント４３７は、最も直近に使用したドキュメント４３５のリスト内にあるドキュメントＡ，Ｂ，Ｃの内１つに加え、またはこれと置換することができる。ドキュメント４３７を通じてユーザーが異なるページにナビゲートすると、最も直近にアクセスしたページはページＸから異なるページに変更することができる。同様に、ユーザーは、テキスト・ブロック４３９のフォーマットを変更するように決定することができる。アプリケーション・インスタンス４２６は、ユーザーに関連付けてストレージするために設定サーバー１２１に対しこれら変更を伝達することができる。
【００５４】
次いで、恐らくはコンピューター・システム４２０または若干の他の類似のデバイス上に実装された他のアプリケーション・インスタンスと連動すると、更新済みのユーザー設定は、設定サーバー１２１から抽出しロードすることができ、さもなければアプリケーション・インターフェースによって他のアプリケーション・インスタンスに対してレンダリングすることができる。この手法では、同一のユーザーは、以前にアプリケーション・インスタンス４２６と連動したのと同一の設定を享受することができる。例えば、ユーザーには、直近に使用したドキュメントの馴染みのあるリストを提示することができ、ドキュメント内でアクセスした最後のページに戻り、馴染みのあるフォーマットで提示することができる。
【００５５】
図５は、ローミング設定サービスが実施されているコンピューティング環境５００を例示するものである。コンピューティング環境５００は、クライアント・デバイス５０３、クライアント・デバイス５０５およびクライアント・デバイス５０７を含み、例示の目的で全てがユーザー５０１に通常は関連付けられている。コンピューティング環境５００はまた、クライアント・デバイス５０９およびクライアント・デバイス５１１も含み、共に、例示の目的でユーザー５０２に通常は関連付けられている。パーソナル・コンピューター、ラップトップ・コンピューター、タブレット型コンピューター、携帯電話、媒体デバイス、音楽プレーヤー、およびビデオ・デバイスのようなクライアント・コンピューティング・システムは、クライアント・デバイス５０３，５０５，５０７，５０９，５１１の例示である。
【００５６】
クライアント・デバイス５０３，５０５，５０７，５０９，５１１は、様々な時に、設定サービス５２０、コンテンツ・サービス５３０、およびホスト済みアプリケーション・サービス５４０と通信ネットワーク５１８を通じて通信することができる。設定サービス５２０は、図４に示したコンピューティング・システム４１０のようなサーバー・コンピューター・システム上に実装することができる。ホスト済みアプリケーション・サービス５４０は、アプリケーション・サーバー上に実装することができ、それ自身で、コンピューティング・システム４１０，４２０と類似のコンピューター・システムであってもよい。
【００５７】
ユーザー５０１によって動作されるクライアント・デバイス５０３，５０５，５０７の各々は、様々なプロビジョニング・モデルに従ってプロビジョニングされるアプリケーション・インスタンスを含む。特に、クライアント・デバイス５０３は、インストール済みのアプリケーション５０４を含む。同様に、クライアント・デバイス５０５は、インストール済みのアプリケーション５０６を含む。クライアント・デバイス５０７は、ホスト済みのアプリケーション５０８を含む。
【００５８】
ユーザー５０２によって動作されるクライアント・デバイスの各々はまた、様々なプロビジョニング・モデルに従ってプロビジョニングされるアプリケーション・インスタンスを含む。クライアント・デバイス５０９はインストール済みのアプリケーション５１０を含み、そして、クライアント・デバイス５１１はホスト済みのアプリケーション５１２を含む。
【００５９】
各デバイスは、本明細書において述べるアプリケーション・インスタンスと類似、またはこれと異なる他の追加のアプリケーション・インスタンスを有してもよいことが理解されるべきである。加えて、他のアプリケーション・インスタンスは、コンピューティング環境５００に例示したアプリケーション・インスタンスと類似のモデルに従ってプロビジョニングされてもよいことが理解されるべきである。しかしながら、アプリケーション・インスタンスは、ストリーミング・アプリケーション・モデルまたは本明細書で検討したプロビジョニング・モデルの如何なる組合せまたは変更のような、例示していない他のプロビジョニング・モデルに従ってプロビジョニングされてもよい。
【００６０】
ユーザーに特有の設定が類似のアプリケーション・インスタンスに適用できる一方で、ユーザーに特有の設定が異なる種別のアプリケーションにもまた適用できてもよいことが理解されるべきである。加えて、各アプリケーション・インスタンスは、如何なる他のアプリケーション・インスタンスと同一のアプリケーションが有するインスタンスとしてもよい。例えば、各アプリケーション・インスタンスは、生産性アプリケーション、特にワード・プロセッシング・アプリケーションとすることができる。
【００６１】
しかしながら、各アプリケーション・インスタンス、または複数のアプリケーション・インスタンスの内の少なくとも１つは、他のアプリケーション・インスタンスとは異なるアプリケーションのインスタンスとなることもある。例えば、幾らかのアプリケーション・インスタンスは生産性アプリケーションのインスタンスとすることができ、その一方で、他のアプリケーション・インスタンスはゲーム・アプリケーションのインスタンスとすることができる。更に他の例では、幾らかのアプリケーションはワード・プロセッシング・アプリケーションのインスタンスとすることができ、その一方で、他のアプリケーション・インスタンスはスプレッドシート・アプリケーションのインスタンスとすることができる。
【００６２】
設定サービス５２０は、設定５２１および設定５２２を含む。設定５２１は、ユーザー５０１に適宜関連付けることができる如何なる他のデバイスと同様に、クライアント・デバイス５０３，５０５，５０７との間でローミングできるユーザー５０１に対応した設定を表す。設定５２２は、ユーザー５０２に適宜関連付けることができる如何なる他のデバイスと同様、クライアント・デバイス５０９，５１１との間でローミングできるユーザー５０２に対応した設定を表す。
【００６３】
コンテンツ・サービス５３０は、ドキュメント５３１および共有ドキュメント５３２を含む。コンテンツ・サービス５３０は、生産性アプリケーションのようなアプリケーション・プログラムによってロードし、さもなければホストできるコンテンツを格納できる如何なるシステムまたはサービスとしてもよい。コンテンツ・サービス５３０は、設定サービス５２０を動作させる同一のエンティティによって動作するような統合サービスとしてもよい。しかしながら、コンテンツ・サービス５３０は、設定サービス５２０を動作させるエンティティ以外のエンティティによって動作してもよい。換言すれば、コンテンツ・サービス５３０は、コンテンツ・アイテムについてリモートまたはクラウド・ベースのストレージを可能にするサードパーティのストレージ・サービスとしてもよい。しかしながら、コンテンツ・サービス５３０はまた、設定サービス５２０を提供する同一のエンティティによって提供される統合したストレージ・サービスとしてもよい。
【００６４】
動作において、ユーザー５０１は、クライアント・デバイス５０３，５０５，５０７上の如何なるアプリケーション・インスタンスをも連動させることができる。アプリケーション・インスタンスとの連動の一部として、ユーザー５０１は、アプリケーション・インスタンスに対して識別されることができる。例えば、ユーザー５０１はアプリケーション・インスタンスにサイン・インすることができる。次いで、アプリケーション・インスタンスは、設定５２１を取得するために設定サービス５２０に対してユーザー５０１の識別情報を伝達する。設定５２１は、ユーザー５０１に特有のものである。
【００６５】
ユーザー５０１がアプリケーション・インスタンスと協働すると、設定５２１への更新が設定サービス５２０に供給される。次いで、同一のクライアント・デバイスまたは異なるクライアント・デバイス上で、ユーザー５０１が同一のアプリケーション・インスタンスまたは他のアプリケーション・インスタンスと連動すると、そのユーザーは再び識別されることができて、設定５２１がユーザーのために抽出されることができる。他のアプリケーション・インスタンスは、つまり、設定５２１をロードして、最初のアプリケーション・インスタントとの連動時に享受されるように、設定５２１の観点で構成される類似のアプリケーション・インターフェースをユーザー５０１に提示することができる。
【００６６】
アプリケーション・インスタンスの種別は変えることができ、ユーザー５０１に特有の設定は、尚もアプリケーションによって提供され、促進することができる。例えば、ローカルにインストールされたアプリケーションから更新される設定は、アプリケーションにおいて、ｗｅｂベースのインスタンスのようなホストされたインスタンスにローミングすることができる。つまり、クライアント・デバイス上に直接インストールされたアプリケーションと協働するか、または、リモート・サーバー上にホストされたバージョンのアプリケーションと協働するかに関係なく、ユーザー５０１は同一の設定をエクスペリエンスすることができる。
【００６７】
なお、設定５２１の少なくとも一部は、ドキュメント５３１または共有ドキュメント５３２のような、コンテンツ・サービス５３０によって格納された特定のコンテンツ・アイテムに関連付けることができる点に留意すべきである。つまり、ユーザー５０１に動作させるクライアント・デバイスは、設定サービス５２０から設定を、そして、コンテンツ・サービス５３０からコンテンツを要求することができる。設定５２１は、次いで、コンテンツにアクセスするためにユーザー５０１が使用しているのがどのデバイスか若しくはアプリケーション・インスタンスか、またはこれらの組合せであるかに拘らず、コンテンツに適用することができる。
【００６８】
設定が共有ドキュメント５３２に適用される場合、このような設定は、ユーザー５０１が、ユーザー５０２に関連してカスタマイズした手法で共有ドキュメント５３２をエクスペリエンスするのを可能にする。例えば、設定５２１は、共有ドキュメント５３２においてユーザー５０１によってアクセスされた最後のページを特定できる。その一方で、設定５２２は、ユーザー５０２によってアクセスされた最後のページを特定できる。
【００６９】
更に、動作において、ユーザー５０２は、クライアント・デバイス５０９，５１１上のアプリケーション・インスタンスの何れかを連動させることができる。アプリケーション・インスタンスとの連動の一部として、ユーザー５０２は、アプリケーション・インスタンスに識別されることができる。例えば、ユーザー５０２は、プリケーション・インスタンスにサイン・インしてもよい。アプリケーション・インスタンスは、次いで、設定５２２を取得するために設定サービス５２０にユーザー５０２の識別情報を伝達する。設定は、ユーザー５０２に特有のものである。
【００７０】
ユーザー５０２がアプリケーション・インスタンスと協働すると、設定５２２への更新が設定サービス５２０に供給される。次いで、同一のクライアント・デバイスまたは異なるクライアント・デバイス上で、ユーザー５０２が他のアプリケーション・インスタンスと連動すると、そのユーザーは再び識別されることができ、設定５２２をユーザー５０２のために抽出することができる。他のアプリケーション・インスタンスは、つまり、設定５２２をロードして、最初のアプリケーション・インスタントとの連動時に享受されるように、設定５２２の観点で構成される類似のアプリケーション・インターフェースをユーザー５０１に提示することができる。
【００７１】
なお、設定５２２の少なくとも一部は、共有ドキュメント５３２のような、共有コンテンツ・アイテムに関連付けることができる点に留意すべきである。つまり、ユーザー５０２に動作させるクライアント・デバイスは、設定サービス５２０から設定を、そして、コンテンツ・サービス５３０からコンテンツを要求することができる。設定５２２は、次いで、コンテンツにアクセスするためにユーザー５０２に使用されているのがどのデバイスか若しくはアプリケーション・インスタンスか、またはこれらの組合せであるかに拘らず、コンテンツに適用することができる。
【００７２】
設定が共有ドキュメント５３２に適用される場合、このような設定は、ユーザー５０２が、ユーザー５０１に関連してカスタマイズした手法で共有ドキュメント５３２をエクスペリエンスするのを可能にする。例えば、設定５２２は、共有ドキュメント５３２においてユーザー５０２によってアクセスされた最後のページを特定できる。その一方で、設定５２１は、ユーザー５０１によってアクセスされた最後のページを特定できる。
【００７３】
これより図６から図９を参照する。幾らかのシーケンス図を例示して、実装においてローミング設定サービスを提供する際の、コンピューティング環境５００内での動作交換について説明する。
【００７４】
図６に移り、動作交換６００の一例を示す。これにより、ユーザー５０１に特有の設定が、２つの異なるクライアント・デバイス間でローミングされる。当該クライアントは、それ上で起動しているインストール済みのアプリケーション・インスタンスを有している。最初に、ユーザー５０１は、ログインするか、さもなければクライアント・デバイス５０３上のインストール済みのアプリケーション５０４に対して識別される。ユーザー５０１が識別されると、クライアント・デバイス５０３によってインストール済みのアプリケーション５０４が設定要求を開始する。当該設定要求は、通信ネットワーク５１８を通じて、設定サービス５２０にデリバリするために移送される。設定要求はユーザー５０１を識別し、設定サービス５２０がユーザー５０１に特有の設定５２１を抽出するのを可能にする。設定サービス５２０は、インストール済みのアプリケーション５０４にロードまたは設定するために、クライアント・デバイス５０３に設定５２１を戻す。
【００７５】
同時に、設定要求の前に、または、その後に、インストール済みのアプリケーション５０４はまた、コンテンツ・サービス５３０からドキュメント５３１の抽出を開始する。コンテンツ・サービス５３０は、ドキュメント５３１をクライアント・デバイス５０３に供給する。インストール済みのアプリケーション５０４は、次いで、ドキュメント５３１に関連する設定５２１の一部を適用することができる。
【００７６】
インストール済みのアプリケーション５０４、ドキュメント５３１、またはインストール済みのアプリケーション５０４によって発生するアプリケーション環境の他の態様への変更を恐らくは行いながら、ユーザー５０１がインストール済みのアプリケーション５０４と協働すると、設定５３１への変更が監視され、設定サービス５２０への設定の更新に供給される。設定サービス５２０は、変更を受け取ると共に格納された設定５２１のコピーを更新して、変更を反映することができる。
【００７７】
後に、ユーザー５０１は、クライアント・デバイス５０５上にインストール済みのアプリケーション５０６と連動する。ユーザー５０１は再び、ログインまたは幾らかの他の識別機構によって識別される。ログインは、インストール済みのアプリケーション５０６、インストール済みのアプリケーション５０６に関連付けられるアプリケーション環境、または、インストール済みのアプリケーション５０６に関連付けられるオペレーティング・システムに関連付けることができる。代替として、ログインは、コンテンツ・サービス５３０と関連付けてもよい。例えば、ユーザー５０１はコンテンツ・サービス５３０に関連付けられたクライアント・アプリケーションにログインして、ドキュメント、およびコンテンツ・サービス５３０に格納した他のコンテンツへのアクセスを得ることができる。この識別情報は、次いで、設定サービス５２０にユーザー５０１を認識させるために用いることができる。
【００７８】
インストール済みのアプリケーション５０６は、設定の要求をクライアント・デバイス５０５によって開始する。当該要求は、通信ネットワーク５１８を介して設定サービス５２０にデリバリするために移送される。設定サービス５２０は、要求を受け取り、これに応答して更新済みのバージョンの設定５２１を抽出する。そして、当該設定５２１を、それら更新済みの形態で、インストール済みのアプリケーション５０６に供給する。インストール済みのアプリケーション５０６はまた、コンテンツ・サービス５３０からドキュメント５３１を抽出してもよい。コンテンツ・サービス５３０は、ドキュメント５３１をクライアント・デバイス５０５に供給する。インストール済みのアプリケーション５０６は次いで、ドキュメント５３１に関連する設定５２１の一部を適用することができる。これにより、ユーザー５０１が、クライアント・デバイス５０３上でインストール済みのアプリケーション５０４を通じてエクスペリエンスするのと類似の方法で、インストール済みのアプリケーション５０６によってドキュメント５３１をエクスペリエンスするのを可能にする。
【００７９】
図７は動作交換７００を例示する。これにより、ユーザー５０１に特有の設定が２つの異なるクライアント・デバイス間でローミングされる。クライアント・デバイスは、起動している異なる種別のアプリケーション・インスタンスを有している。即ち、設定５２１は、アプリケーションが有するインストール済みのインスタンスとアプリケーションのホスト済みのインスタンスとの間でローミングされる。
【００８０】
最初に、ユーザー５０１は、ログインするか、さもなければクライアント・デバイス５０３上のインストール済みのアプリケーション５０４に対して識別される。ユーザー５０１が識別されると、クライアント・デバイス５０３によってインストール済みのアプリケーション５０４は設定要求を開始する。当該設定要求は、通信ネットワーク５１８を通じて、設定サービス５２０にデリバリするために移送される。設定要求はユーザー５０１を識別し、設定サービス５２０がユーザー５０１に特有の設定５２１を抽出するのを可能にする。設定サービス５２０は、インストール済みのアプリケーション５０４にロードするために、クライアント・デバイス５０３に設定５２１を戻す。
【００８１】
同時に、設定要求の前に、または、その後に、インストール済みのアプリケーション５０４はまた、コンテンツ・サービス５３０からドキュメント５３１の抽出を開始する。コンテンツ・サービス５３０は、ドキュメント５３１をクライアント・デバイス５０３に供給する。インストール済みのアプリケーション５０４は、次いで、ドキュメント５３１に関連する設定５２１の一部を適用することができる。
【００８２】
インストール済みのアプリケーション５０４、ドキュメント５３１、またはインストール済みのアプリケーション５０４によって発生するアプリケーション環境の他の態様への変更を恐らくは行いながら、ユーザー５０１がインストール済みのアプリケーション５０４と協働すると、設定５２１への変更が監視され、設定サービス５２０への設定の更新に供給される。設定サービス５２０は、変更を受け取ると共に格納された設定５２１のコピーを更新して、変更を反映することができる。
【００８３】
後に、ユーザー５０１は、クライアント・デバイス５０７上のホスト済みのアプリケーション５０６と連動する。ユーザー５０１は、アプリケーション・サービス５４０へのログインまたは幾らかの他の識別機構によって識別される。アプリケーション・サービス５４０は、生産性アプリケーション５４３をホストして、そのインスタンスを、ホスト済みのアプリケーション５０８によって表されるクライアント・デバイス５０７へ供給する。ログインは、ホスト済みのアプリケーション５０８、ホスト済みのアプリケーション５０８に関連付けられるアプリケーション環境、または、ホスト済みのアプリケーション５０８に関連付けられるオペレーティング・システムにさえも関連付けることができる。代替として、ログインは、コンテンツ・サービス５３０と関連付けてもよい。例えば、ユーザー５０１はコンテンツ・サービス５３０に関連付けられたクライアント・アプリケーションにログインして、ドキュメント、およびコンテンツ・サービス５３０に格納した他のコンテンツへのアクセスを得ることができる。この識別情報は、次いで、設定サービス５２０にユーザー５０１を認識させるために用いることができる。
【００８４】
アプリケーション・サービス５４０は次いで、ユーザー５０１に特有の設定の要求を開始する。当該要求は通信ネットワーク５１８を介して設定サービス５２０にデリバリするために移送される。代替として、ホスト済みのアプリケーション５０８が、アプリケーション・サービス５４０に代わってこの要求を行ってもよい。設定サービス５２０は、要求を受け取り、これに応答して、更新済みのバージョンの設定５２１を抽出する。そして、設定５２１をそれら更新済みの形態で、アプリケーション・サービス５４０に供給するか、代替としてはホスト済みのアプリケーション５０８に供給する。アプリケーション・サービス５４０は次いで、ホスト済みのアプリケーション５０８によって表される、クライアント・デバイス５０７上でエクスペリエンスされる生産性アプリケーション５４３のインスタンスに対して設定５２１を適用することができる。代替として、ホスト済みのアプリケーション５０８は、設定をそれ自身に適用することができ、アプリケーション・サービス５４０または設定サービス５２０によってそれに伝達される。
【００８５】
ホスト済みのアプリケーション５０８はまた、アプリケーション・サービス５４０を通じて伝達されるドキュメント５３１の要求を開始することもできる。アプリケーション・サービス５４０は、要求されたドキュメントを取得するために、この要求を受け取り、ドキュメント要求をコンテンツ・サービス５３０に伝達する。コンテンツ・サービス５３０は、ドキュメント５３１をアプリケーション・サービス５４０に供給する。アプリケーション・サービス５４０はドキュメント５３１に関連する設定５２１の一部を適用する。アプリケーション・サービス５４０は次いで、クライアント・デバイス５０７上で起動するホスト済みのアプリケーション５０８によってユーザーにドキュメント５３１を提示する。これにより、ユーザー５０１が、インストール済みアプリケーション５０４を通じてエクスペリエンスするときと類似の方法で、ホスト済みのアプリケーション５０８によってドキュメント５３１をエクスペリエンスするのを可能にする。代替として、ホスト済みのアプリケーション５０７は、ホスト済みのアプリケーション・サービス５４０に代わって、設定サービス５２０と通信することにより、ホスト済みのアプリケーション５０８はドキュメント５３１に設定を適用することができる。
【００８６】
更なる他の代替では、コンテンツ・サービス５３０は設定サービス５２０と通信可能であり、ユーザー５０１またはユーザー５０２のいずれかに特有のローミング設定を取得することができる。この代替では、ユーザーは、アプリケーションのログイン、コンテンツ・サービス５３０に付随するログイン・プロセスまたは幾らかの他の手法によってコンテンツ・サービス５３０に対して識別されることができる。コンテンツ・アイテムがユーザーに代わってアプリケーションによって要求されると、コンテンツ・サービス５３０は、設定サービス５２０と通信して、ローミング設定を抽出することができる。コンテンツ・サービス５３０は次いで、どのアプリケーションが供給されるかに基づくアプリケーション・モデルに拘わらず、コンテンツ・アイテムおよびローミング設定の両方を、要求しているアプリケーションに供給することができる。例えば、コンテンツ・サービス５３０は、クライアント・デバイス５０３，５０５，５０７，５０９，５１１にローカルにインストールされ、ストリームされ、またはホストする手法で起動しているアプリケーションにローミング設定を伝達することができる。加えて、コンテンツ・サービス５３０は、ホスト済みのアプリケーション・サービス５４０にローミング設定を伝達することができる。
【００８７】
図７のユーザー５０１に関して上述したようなインストール済みのアプリケーション５１０およびホスト済みのアプリケーション５１２に関するものと類似のシナリオをユーザー５０２がエクスペリエンスできることが理解されるべきである。
【００８８】
図８は動作交換８００を例示し、ユーザー５０１に特有の設定およびユーザー５０２に特有の設定が共に共有コンテンツに適用され、各ユーザーが同一のコンテンツに関してカスタマイズした設定をエクスペリエンスすることができる。
【００８９】
最初に、ユーザー５０１は、ログインするか、さもなければクライアント・デバイス５０３上のインストール済みのアプリケーション５０４に対して識別される。ユーザー５０１が識別されると、クライアント・デバイス５０３によってインストール済みのアプリケーション５０４は設定要求を開始する。当該設定要求は、通信ネットワーク５１８を通じて、設定サービス５２０にデリバリするために移送される。設定要求はユーザー５０１を識別し、設定サービス５２０がユーザー５０１に特有の設定５２１を抽出するのを可能にする。設定サービス５２０は、インストール済みのアプリケーション５０４にロードするために、クライアント・デバイス５０３に設定５２１を戻す。
【００９０】
同時に、設定要求の前に、または、その後に、インストール済みのアプリケーション５０４はまた、コンテンツ・サービス５３０からドキュメント５３２の抽出を開始する。コンテンツ・サービス５３０は、ドキュメント５３２をクライアント・デバイス５０３に供給する。インストール済みのアプリケーション５０４は、次いで、ドキュメント５３２に関連する設定５２１の一部を適用することができる。共有のドキュメント５３２に適用される設定の例では、このような設定により、ユーザー５０１が、ユーザー５０２と関連してカスタマイズする手法で共有ドキュメント５３２をエクスペリエンスするのを可能にする。例えば、設定５２１は、共有ドキュメント５３２においてユーザー５０１がアクセスした最後のページ（ページＸ）を特定することができる。その一方で、後記するように、設定５２２は、共有ドキュメント５３２においてユーザー５０２がアクセスした最後のページ（ページＹ）を特定することができる。
【００９１】
その間、ユーザー５０２は、クライアント・デバイス５０９上のインストール済みのアプリケーション５１０と連動することができる。ユーザー５０２は、ログインまたは幾らかの他の識別機構によって識別される。インストール済みのアプリケーション５１０は、クライアント・デバイスによって設定の要求を開始する。設定要求は、通信ネットワーク５１８を通じて設定サービス５２０にデリバリするために移送される。設定サービス５２０は、要求を受け取り、これに応答して、ユーザー５０２に特有の設定５２１を抽出する。そして、設定５２２をインストール済みのアプリケーション５１０に供給する。
【００９２】
インストール済みのアプリケーション５１０はまた、コンテンツ・サービス５３０から共有ドキュメント５３２を抽出することもできる。コンテンツ・サービス５３０は、ドキュメント５３２をクライアント・デバイス５０９に供給する。インストール済みのアプリケーション５１０は次いで、共有ドキュメント５３２に関連する設定５２２の一部を供給することができる。共有ドキュメント５３２に適用される設定の例として、このような設定により、ユーザー５０２が、ユーザー５０１と関連してカスタマイズする手法で共有ドキュメント５３２をエクスペリエンスするのを可能にする。例えば、設定５２２は、共有ドキュメント５３２においてユーザー５０２がアクセスした最後のページ（ページＹ）を特定することができる。その一方で、先に説明したように、設定５２２は、共有ドキュメント５３２においてユーザー５０２がアクセスした最後のページ（ページＹ）を特定することができる。
【００９３】
図９は、設定サービス５２１の故障に関係する動作交換９００を例示する。動作交換９００では、設定の更新は、アタッチされ、さもなければ包含される生成識別子と共に、設定サービス５２１に供給される。例えば、クライアント・デバイス５０３は、インストール済みのアプリケーション５０４による更新が開始されると、設定サービス５２１に発生識別子を供給する。同様に、クライアント・デバイス５０５は、インストール済みのアプリケーション５０６による更新が開始されると、生成識別子を設定サービス５２１に供給する。
【００９４】
所与の如何なる時でも故障が発生することがあり、設定サービス５２１の全部または一部を不能にする。例えば、ユーザー５０１に特有の設定５２１は削除され、破壊され、さもなければ利用不可能なようにレンダリングされることができる。故障状態の検出に応じて、設定サービス５２１は生成ストアを解析することができる。ここでは、生成識別子がアプリケーション・インスタンスに関連付けられて格納され、どのアプリケーション・インスタンスが、ユーザー５０１に関連する最新バージョンの設定５２１への問い合わせをすべきかを判断することができる。
【００９５】
この例では、クライアント・デバイス５０３によって供給される生成識別子が最新の生成識別子を表すことが例示の目的で判断される。したがって、設定サービス５２１は、クライアント・デバイス５０３上のインストール済みのアプリケーション・インスタンスへの修復要求を行って、完全またはほぼ完全な設定５２１のコピーを供給することができる。このように、設定サービス５２０は設定５２１を取得することができ、また、先に進めること(moving forward)により、設定５２１が、他のデバイスおよびユーザー５０１によって連動されたアプリケーション・インスタンスへのローミングを可能にする。
【００９６】
代替では、生成識別子を設定の更新と共に供給するのではない。クライアント・デバイス５０３，５０５上で起動する様々なアプリケーション・インスタンスは、それら各々の設定の更新を追跡することができる。次いで、故障に応じて、設定サービス５２０は、クライアント・デバイス５０３，５０５にそれら各々の生成識別子について問い合わせることができる。その時に、クライアント・デバイス５０３，５０５は、それら各々の生成識別子を設定サービス５２０による分析のために供給することができ、故障に応じた最新の設定５２１のコピーの位置を判断することができる。
【００９７】
ローミング設定の動作上の例示では、サービスは、コンテンツ・アイテムをホストする第１のアプリケーション・モデルに従ってプロビジョニングされたアプリケーション・プログラムのインスタンスと連動する間、コンテンツ・アイテムとのユーザーの少なくとも相互作用を示すユーザー特有のローミング設定への更新を受け取る。後に、サービスは、コンテンツ・アイテムをホストする第２のアプリケーション・モデルに従ってプロビジョニングされたアプリケーション・プログラムのインスタンスによって開始される、ユーザー特有のローミング設定の要求を受け取る。要求に応答して、サービスは、更新されたローミング設定を抽出する。当該更新されたローミング設定は、第１アプリケーション・モデルに従ってプロビジョニングされたアプリケーション・プログラムのインスタンスと連動する間、コンテンツ・アイテムとのユーザーの少なくとも相互作用を示すローミング設定の更新を反映する。サービスは、第２アプリケーション・モデルに従ってプロビジョニングされたアプリケーション・プログラムのインスタンスへのデリバリのために更新済みのローミング設定を移送する。
【００９８】
１つのシナリオでは、アプリケーション・プログラムは生産性アプリケーションとすることができ、コンテンツ・アイテムが生産性ドキュメントとすることができる。加えて、コンテンツ・アイテムとのユーザーの相互作用が、ユーザーに代わって最も直近にアクセスした生産性ドキュメントの箇所とすることができる。変更例としては、生産性ドキュメントが、ワード・プロセッシング・ドキュメント、スプレッドシート・ドキュメント、またはプレゼンテーション・ドキュメントの内の少なくとも１つを、如何なる他の種別の生産性ドキュメントと同様に含むことができる。
【００９９】
他のシナリオでは、生産性ドキュメントを共有の生産性ドキュメントとすることができる。このような場合では、サービスは、他のユーザーに特有のローミング設定についての他の要求を受け取ることができる。当該ローミング設定は、第２アプリケーション・モデルに従ってプロビジョニングされたアプリケーション・プログラムの他のインスタンスと連動する間における共有の生産性ドキュメントとの他のユーザーの相互作用を示す。当該他の要求に応答して、サービスは、関連するローミング設定を抽出し、アプリケーション・プログラムの他のインスタンスへのデリバリのためにローミング設定を移送する。他のユーザーと共有生産性ドキュメントとの相互作用は、他のユーザーに代わって最も直近にアクセスした生産性ドキュメントの箇所に対応する。
【０１００】
幾らかの実施形態では、第１アプリケーション・モデルは、ローカル・インストレーション・モデルとすることができ、更新は、ローカルにインストールされた第１アプリケーション・モデルに従ってプロビジョニングされたアプリケーション・プログラムのインスタンスを有するクライアント・デバイスによって伝達される。第２のアプリケーション・モデルは、ホスト済みのアプリケーション・モデルとすることができ、更新は、ホスト済みの第１アプリケーション・モデルに従ってプロビジョニングされたアプリケーション・プログラムのインスタンスを有するアプリケーション・サーバーから伝達される。
【０１０１】
１つのシナリオでは、サービスは、故障条件に応じてローミング設定のコピーを取得するために、第１アプリケーション・モデルに従ってプロビジョニングされたアプリケーション・プログラムの少なくとも１つのインスタンスへのデリバリのために回復要求を生成および移送することができる。
【０１０２】
更なる他のシナリオでは、サービスは、異なる種別のアプリケーションによって適用することができるユーザーに特有のローミング設定を伝達することができる。例えば、ローミング設定は、ワード・プロセッシング・アプリケーションによって、スプレッドシート・アプリケーションと同様に、適用することができる。このようなシナリオでは、サービスは、ドキュメントをホストする生産性アプリケーションのインスタンスによって介されるユーザーに特有のローミング設定についての要求を受け取る。要求に応答して、サービスは、異なるアプリケーション・プログラムのインスタンスと連動する間、ユーザーとコンテンツ・アイテムとの少なくとも相互作用を示すローミング設定への更新を反映する更新済みのローミング設定を抽出する。サービスは、生産性アプリケーションのインスタンスへのデリバリのために更新済みのローミング設定を移送する。異なる種別のアプリケーションに適用できる設定の例示には、カスタム辞書、マクロ、カスタム・クリップ・アート、およびテンプレートが、数多くの他の種別の設定と同様に、含まれる。例えば、ユーザーは、ワード・プロセッシング・ドキュメントと連動する間にカスタム辞書へのワードを追加するような、カスタム辞書への修正を行うことができる。次いで、プレゼンテーション・アプリケーションと連動する間、カスタム辞書はそれに含まれた当該ワードを有することになる。
【０１０３】
図面に記載した機能ブロック図、動作シーケンス、およびフロー図は、本開示の新規な態様を実施するために、例示のアーキテクチャー、環境、および方法を表したものである。説明を単純化するために、本明細書において含まれる方法論は機能図、動作シーケンスまたはフロー図の形態とすることができ、また、一連の行為として説明することができる。その一方で、方法論は、行為の順序には限定されず、幾らかの行為は、それに従ってことなる順序および／または本明細書に示し説明した他の行為と同時に発生してもよいことが理解され、認められるべきである。例えば、当業者にとって、代替として、方法論が状態図のような一連の相互に関係がある状態またはイベントとして表すことができることが理解され、認められるであろう。更に、方法論に例示する全ての行為が新規の実施形態に要求される訳ではない。
【０１０４】
含まれる説明および図面は、最良の形態を製作し使用する方法を当業者に教示するために、特定の実施形態を示したものである。発明の原理を教示する目的で、幾らかの従前の態様を単純化し省略した。当業者にとって、本発明の範囲内となるこれら実施形態からの変更が認められるであろう。当業者にとって、また、先に説明した特徴が複数の実施形態を形成する様々な方法で組み合わせることができることが認められるであろう。その結果として、本発明は先に説明した特定の実施形態に限定されるのではないものの、特許請求の範囲またはそれらの均等物によってのみ限定される。
【図１】
0006257610.tif 000002
【図２】
0006257610.tif 000003
【図３】
0006257610.tif 000004
【図４】
0006257610.tif 000005
【図５】
0006257610.tif 000006
【図６】
0006257610.tif 000007
【図７】
0006257610.tif 000008
【図８】
0006257610.tif 000009
【図９】
0006257610.tif 000010