(57)【特許請求の範囲】
【請求項１】
コンピューターにおいて実装され、少なくとも１つのデバイスのコンピューティング環境を表すオブジェクト階層におけるアプリケーションの展開を管理する方法であって、
アプリケーションをデバイスに展開する要求を受け取ると、
前記コンピューターが、前記オブジェクト階層が前記アプリケーションを含まない場合に、前記アプリケーションを、アプリケーションを記憶するアプリケーション・ストアから取得し、少なくとも２つのコンフィギュレーション情報を含んだ前記アプリケーションを前記オブジェクト階層にインサートするステップと、
前記コンピューターが、前記デバイスと、前記アプリケーションと、前記アプリケーション向けに前記デバイスによって使用されるべく前記少なくとも２つのコンフィギュレーション情報から選択されたコンフィギュレーション情報と、の関連を前記オブジェクト階層の中に作成するステップと、
前記コンピューターが、前記アプリケーション、前記選択されたコンフィギュレーション情報、及び、前記アプリケーションと前記デバイスと前記選択されたコンフィギュレーション情報との関連、を含む前記オブジェクト階層の少なくとも一部を、前記デバイスと同期させるステップと、
を含む、方法。
【請求項２】
請求項１記載の方法において、アプリケーション照会をユーザーから受け取ると、
前記コンピューターが、前記アプリケーション照会を満たすアプリケーションを前記アプリケーション・ストアから選択するステップと、
前記コンピューターが、選択されたアプリケーションを前記ユーザーに提示するステップと、
を含む、方法。
【請求項３】
請求項１記載の方法であって、
前記コンピューターが、前記アプリケーションをユーザー間で共有する要求を受け取ると、前記アプリケーションを前記ユーザー間で共有するステップを含む、方法。
【請求項４】
メモリーとプロセッサーとを備えアプリケーションを記憶するアプリケーション・ストアへのアクセスを有するコンピューターにおいて実装され、アプリケーション・ストアによって管理される少なくとも１つのアプリケーションの、少なくとも１つのデバイスにおけるコンピューティング環境を表すオブジェクト階層への展開を管理するシステムであって、
前記コンピューティング環境にアプリケーションをインストールする要求を受け取ると、前記オブジェクト階層が前記アプリケーションを含まない場合には、前記アプリケーションを前記アプリケーション・ストアから取得し、少なくとも２つのコンフィギュレーション情報を含んだ前記アプリケーションを前記オブジェクト階層に挿入するように構成されているアプリケーション取得コンポーネントと、
少なくとも１つのデバイスにおいてアプリケーションをインストールする要求を受け取ると、前記デバイスと、前記アプリケーションと、前記アプリケーション向けに前記デバイスによって使用されるべく前記少なくとも２つのコンフィギュレーション情報から選択されたコンフィギュレーション情報と、の関連を前記オブジェクト階層において作成するように構成されているアプリケーション・マッピング・コンポーネントと、
前記アプリケーション、前記選択されたコンフィギュレーション情報、及び、前記アプリケーションと前記デバイスと前記選択されたコンフィギュレーション情報との関連、を含む前記オブジェクト階層を、前記少なくとも１つのデバイスと同期させるように構成されているアプリケーション展開コンポーネントと、
を備え、前記各コンポーネントは、前記コンピューターの前記メモリーに記憶された命令を前記コンピューターの前記プロセッサーが実行することによってその機能が実現される、システム。
【請求項５】
請求項４記載のシステムであって、
前記オブジェクト階層を記憶するように構成されているオブジェクト階層ストアと、
前記オブジェクト階層の少なくとも一部を前記コンピューターから前記少なくとも１つのデバイスへ送信することによって、前記オブジェクト階層の少なくとも一部を前記少なくとも１つのデバイスと同期させるように構成されているオブジェクト階層送信コンポーネントと、
を備えている、システム。
【請求項６】
請求項４記載のシステムであって、
ユーザーからアプリケーション照会を受け取り、
前記アプリケーション照会を満たすアプリケーションを前記アプリケーション・ストアから選択し、
選択されたアプリケーションをユーザーに提示する、
ように構成されたアプリケーション発見コンポーネントを備えている、システム。
【請求項７】
請求項４記載のシステムにおいて、前記アプリケーション取得コンポーネントは、
前記デバイスを通じてアプリケーション・ライセンスの条件をユーザーに提示し、
前記ユーザーから前記アプリケーション・ライセンスの条件の受諾を受け取ると、前記アプリケーション・ライセンスの前記受諾を記録するように構成されている、システム。
【請求項８】
請求項４記載のシステムにおいて、前記アプリケーション取得コンポーネントは、前記アプリケーションのユーザーを表すユーザー・アカウントを発生することによってウェブ・アプリケーションへのアクセスを取得するように構成されている、システム。
【請求項９】
請求項４記載のシステムであって、
前記少なくとも１つのデバイスにおいて前記アプリケーションを起動するように構成されているアプリケーション起動コンポーネントを備えている、システム。
【請求項１０】
請求項４記載のシステムであって、
前記アプリケーションをユーザー間で共有する要求を受け取り、前記アプリケーションを共有する前記要求を受け取ると前記アプリケーションを前記ユーザー間で共有するように構成されているアプリケーション共有コンポーネントを備えている、システム。
【請求項１１】
請求項１０記載のシステムにおいて、前記アプリケーション共有コンポーネントは、前記アプリケーションと、アプリケーション・セッションと、アプリケーション・コンフィギュレーションと、前記アプリケーションによって発生された少なくとも１つのデータ・オブジェクトと、の中の少なくとも１つを含む前記オブジェクト階層の一部を前記ユーザー間で共有するように構成されている、システム。
【請求項１２】
請求項４記載のシステムであって、
前記アプリケーションを更新するように構成されているアプリケーション更新コンポーネントを備えている、システム。
【請求項１３】
請求項１２記載のシステムにおいて、前記アプリケーション更新コンポーネントは、前記オブジェクト階層において少なくとも１つのアプリケーション・リソースを更新するように構成されている、システム。
【請求項１４】
請求項４記載のシステムであって、
前記アプリケーションを取り消すように構成されているアプリケーション取消コンポーネントを備えている、システム。
【請求項１５】
メモリーとプロセッサーとを備えアプリケーションを記憶するアプリケーション・ストアへのアクセスを有するコンピューターにおいて実装され、少なくとも１つのデバイスのコンピューティング環境を表すオブジェクト階層におけるアプリケーションの展開を管理するシステムであって、
前記オブジェクト階層を記憶するように構成されているオブジェクト階層ストアと、
ユーザーからアプリケーション照会を受け取り、前記アプリケーション照会を満たすアプリケーションを前記アプリケーション・ストアから選択し、選択されたアプリケーションをユーザーに提示するように構成されたアプリケーション発見コンポーネントと、
前記コンピューティング環境においてアプリケーションをインストールする要求を受け取ると、
前記デバイスを通じてアプリケーション・ライセンスの条件をユーザーに提示し、
前記ユーザーから前記アプリケーション・ライセンスの条件の受諾を受け取ると、前記アプリケーション・ライセンスの前記受諾を記録し、
前記アプリケーションのユーザーを表すユーザー・アカウントを発生することによってウェブ・アプリケーションへのアクセスを取得し、
前記アプリケーションを前記アプリケーション・ストアから取得し、
少なくとも２つのコンフィギュレーション情報を含んだ前記アプリケーションを前記オブジェクト階層に挿入する、
ように構成されているアプリケーション取得コンポーネントと、
デバイスにおいて前記アプリケーションをインストールする要求を受け取ると、前記デバイスと、前記アプリケーションと、前記アプリケーション向けに前記デバイスによって使用されるべく前記少なくとも２つのコンフィギュレーション情報から選択されたコンフィギュレーション情報と、の関連を前記オブジェクト階層において作成するように構成されているアプリケーション・マッピング・コンポーネントと、
前記アプリケーション、前記選択されたコンフィギュレーション情報、及び、前記アプリケーションと前記デバイスと前記選択されたコンフィギュレーション情報との関連、を含む前記オブジェクト階層の少なくとも一部を、前記コンピューターから前記少なくとも１つのデバイスへ送信することによって、前記オブジェクト階層の少なくとも一部を前記少なくとも１つのデバイスと同期させるように構成されているオブジェクト階層送信コンポーネントと、
前記少なくとも１つのデバイスにおいて前記アプリケーションを起動するように構成されているアプリケーション起動コンポーネントと、
前記アプリケーションをユーザー間で共有する要求を受け取るアプリケーション共有コンポーネントであって、前記要求を受け取ると、前記アプリケーションと、アプリケーション・セッションと、アプリケーション・コンフィギュレーションと、前記アプリケーションによって発生された少なくとも１つのデータ・オブジェクトと、の中の少なくとも１つを含む前記オブジェクト階層の一部を前記ユーザー間で共有するように構成されているアプリケーション共有コンポーネントと、
前記オブジェクト階層において少なくとも１つのアプリケーション・リソースを更新するように構成されているアプリケーション更新コンポーネントと、
前記アプリケーションを取り消すように構成されているアプリケーション取消コンポーネントと、
を備え、前記各コンポーネントは、前記コンピューターの前記メモリーに記憶された命令を前記コンピューターの前記プロセッサーが実行することによってその機能が実現される、システム。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  多くのコンピューティング環境は、大きく多様なオブジェクトの集合を備えており、これらは１組のオブジェクト・システムによって管理されている。例えば、あるコンピューティング環境は、１つのファイル・システムによって管理される１組のファイルと、１つのデーターベース・システムによって管理される1つ又は複数のデーターベースと、アプリケーションを表し１つのアセンブリ・キャッシュによって管理される１組のエクゼキュータブル・バイナリー(executable binaries)と、オペレーティング・システムのユーザー・プロファイル・コンポーネントによって管理される１組のユーザー・プロファイルと、データー・キャッシュ・コンポーネントによって管理される種々のデーター・キャッシュとを備えていることがある。種々のデーター・キャッシュとは、オペレーティング・システムのコピー・バッファによって管理される１組のコピーされた項目、オペレーティング・システムの実行取り消し(undo)コンポーネントによって管理される１組の実行取り消し行為、およびオペレーティング・システムの項目使用追跡コンポーネントによって管理される１組の「最新使用」項目等である。更に、このようなオブジェクトは、一人以上のユーザーによってそして1つ又は複数の動作（例えば、２つのオブジェクト集合を併合するオブジェクト同期動作、およびソース・オブジェクト集合と一致するように目標オブジェクト集合を調節するオブジェクト・ミラーリング動作）にしたがって動作する複数のデバイス間で交換することもできる。このように、オブジェクトは、１組のオブジェクト・システムを通じて疎に編成されており、一体となってコンピューティング環境を表す。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
[0002]  従来のコンピューティング環境内におけるアプリケーション管理は、かなりのユーザー関与を伴うことが多かった。例えば、ユーザーは、所望のアプリケーションを独立して発見することができ、そしてセットアップ・エクゼキュータブルまたはセットアップ・ファイルを収容したＣＤ−ＲＯＭのようなインストーラー・パッケージを調達することができる。次いで、ユーザーは、ファイルを特定の場所にコピーし登録情報を作成することによってというようにして、コンピューティング環境におけるアプリケーションの展開を容易にするアプリケーション・インストーラーを利用することができる。しかしながら、アプリケーションの展開後では、コンピューティング環境は、当該アプリケーションに対して継続サポートを殆ど提供しないのが通例であり、アンインストーラー・アプリケーションしか備えていないこともときにはある。実行、共有、同期、および更新というような共通の維持作業は、アプリケーションに委ねられているのが普通である。更に、１つのコンピューター・システムにアプリケーションを展開した場合でも、２つ以上のこのようなプラットフォームにおいて共通の目的のために同じユーザーによって操作され利用されるのであっても、他のコンピューター・システムまたはデバイスにおける当該アプリケーションの展開が可能になることや容易になることは希である。
【課題を解決するための手段】
【０００３】
[0003]  この摘要は、以下で詳細の説明において更に説明する概念から選択したものを簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の鍵となる要素または必須の特徴を特定することを意図するのでなければ、特許請求する主題の範囲を限定するために用いることを意図するのでもない。
【０００４】
[0004]  
コンピューティングシステム内において、オブジェクトがちぐはぐで疎に纏められたオブジェクト・システムの集合として編成されているために、様々な問題を生ずる可能性がある。例えば、種々のデバイスを通じてユーザーに一貫性のあるコンピューティング環境を提示することが、特にデバイスの能力にばらつきがある場合（例えば、高性能パーソナル・ワークステーション、ブラウザー主体の公衆端末、および低性能のセルフォン・デバイス）、困難な場合がある。別の例として、同期およびバックアップというようなサービスをオブジェクトに適用するには、各オブジェクト・システムとインターフェースして、それによって管理されているオブジェクトに作用させなければならないことがあり、このようなインターフェースはオブジェクト・システム間で多様に異なる場合がある。第３の例として、多種多様なオブジェクトの集合（アプリケーションを構成するオブジェクトの全てというようなオブジェクト集合）を関係付けることは、管理するオブジェクト・システムの協同が不完全なために、困難になる場合がある。
【０００５】
[0005]  コンピューティング環境を構成するオブジェクトを表すための代わりの技法では、オブジェクトをオブジェクト階層に編成する必要があり、このオブジェクト階層をコンピューティング環境ホストによってホストすることができる。オブジェクトがオブジェクト・システムによって均一に表現され一貫性のある方法で管理されていれば、このコンピューティング環境のオブジェクトの全てに適用するために、１組のサービスを交換することができる。更に、オブジェクト階層を種々のデバイスに配信して、同じコンピューティング環境（同じユーザー・プロファイル、アプリケーション、データー・ファイル等を含む）を表すことができ、各デバイスは、そのコンピューティング環境を一貫性のある態様でレンダリングするが、当該デバイスの能力（例えば、ワークステーションに取り付けられているキーボード・デバイスからのデーター入力を受けるためのハード・キーボード・インターフェース、およびセルフォン・デバイスからのデーター入力を受けるためのタッチスクリーン・ソフトウェア・キーボード・インターフェース）に基づいてカスタム化することができる。
【０００６】
[0006]  この特質があるオブジェクト階層内では、アプリケーション管理タスクを実行することができる。コンピューティング環境ホストは、アプリケーションの取得、アプリケーションのデバイスとの関連付け、およびアプリケーションのデバイス上での展開を容易にすることができる。展開可能なオブジェクト階層においてアプリケーションを１組のオブジェクトとして表現すると、共通アプリケーション管理タスクをやり易くすることができる。第１の例として、アプリケーションを容易に展開することができ、そして多くの想定場面では、オブジェクト階層において表されている複数のコンピューター・システムおよびデバイス上において自動的に展開することができる。例えば、アプリケーションの第１バージョンをワークステーションに展開することができ、このアプリケーションの第２バージョンを、公衆端末で用いるためのウェブまたはウェブ対応アプリケーションとして展開することができ、このアプリケーションの第３バージョンを、低電力セルフォン・デバイス上で用いるための縮減機能アプリケーションとして展開することができる。第２の例として、コンピューティング環境ホストは、オブジェクト階層をしかるべく調節し、オブジェクト階層のホストされているバージョンと展開されたバージョンとを同期させることによって調節をデバイスに展開することによって、アプリケーションの更新を容易にすることができる（例えば、アプリケーション・リソースの更新バージョンとのパッチング、またはアプリケーションと用いるための新たなコンテンツの展開）。
【０００７】
[0007]  更に、展開可能なオブジェクト階層においてアプリケーションを１組のオブジェクトとして表現すると、新たな機構が可能になることがある。第１の例として、コンピューティング環境は、オブジェクト階層の具体的な部分を第２のユーザーのデバイス、コンピューター・システム、またはコンピューティング環境ホストに展開することによって、ユーザーがアプリケーションを第２のユーザーと、またはアプリケーション・セッションの態様(aspect)と共有することを可能にすることができる。例えば、第１ユーザーは、メディア・プレーヤー・アプリケーションを通じて第１コンピューター上で再生するために１組の歌オブジェクトを選択することができ、更に第２ユーザーとのメディア・プレーヤー・アプリケーション・セッションを共有することを選択することができる（例えば、メディア・プレーヤー・アプリケーションのオーディオを第２のユーザーにストリーミングすることによって）。第２の例として、アプリケーションのコンフィギュレーションを、オブジェクト階層の一部として、デバイスおよびコンピューター・システム間で同期させることができる。デバイスには依存しないアプリケーション・プロパティ（例えば、スペル・チェック辞書に追加される特定用途向けの単語）を自動的にこのようなデバイスおよびコンピューター・システムの全てに伝搬させることができ、一方デバイス特定のアプリケーション・プロパティを、コンピューティング環境ホストによって、それぞれのデバイスに合わせて指定することができる。このように、コンピューティング環境ホストのアプリケーション管理サービスは、一人以上のユーザーによって操作される種々のコンピューター・システムおよびデバイス上における、アプリケーションの発見、展開、使用、および除去をサポートすることができる。
【０００８】
[0008]  以上の目的および関連する目的の遂行のために、以下の説明および添付図面は、ある種の例示的態様および実施態様を詳述する。しかし、これらは、1つ又は複数の態様を用いることができる種々の方法の内、そのわずかを示すに過ぎない。本開示のその他の態様、利点、および新規な特徴は、添付図面と合わせて検討したときに、以下の詳細な説明から明白となろう。
【図面の簡単な説明】
【０００９】
【図１】図１は、コンピューティング環境における典型的なアプリケーションのライフ・サイクルの図である。
【図２】図２は、コンピューティング環境ホストの種々のコンピューティング環境レンダリング・デバイスとの相互作用の一例を示す。
【図３】図３は、デバイス上においてコンピューティング環境を表すオブジェクト階層において、アプリケーションの展開を管理する方法例を示す流れ図である。
【図４】図４は、アプリケーション・ストアによって管理されている少なくとも１つのアプリケーションの、少なくとも１つのデバイス上においてコンピューティング環境を表すオブジェクト階層に対する展開を管理する例示的システムを示すコンポーネント・ブロック図である。
【図５】図５は、少なくとも１つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する別の例示的システムを示すコンポーネント・ブロック図である。
【図６】図６は、少なくとも１つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する更に別の例示的システムを示すコンポーネント・ブロック図である。
【図７】図７は、少なくとも１つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する例示的システムの一部のコンポーネント・ブロック図である。
【図８】図８は、少なくとも１つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する例示的システムの別の一部のコンポーネント・ブロック図である。
【図９】図９は、少なくとも１つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する例示的システムの更に別の一部のコンポーネント・ブロック図である。
【図１０】図１０は、少なくとも１つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理するシステムの更に別の例を示すコンポーネント・ブロック図である。
【図１１】図１１は、本明細書において明記する機能(provision)の1つ又は複数を実現することができるコンピューティング環境例を示す。
【発明を実施するための形態】
【００１０】
[0020]  これより、図面を参照しながら特許請求する主題について説明する。図面において、同様の参照番号が、同様の要素を示すために全体を通じて用いられている。以下の記載では、説明の目的上、特許請求する主題の完全な理解が得られるようにするために、多数の具体的な詳細を明記する。しかしながら、特許請求する主題は、これら具体的な詳細がなくても実施可能であることは明白であろう。他方において、周知の構造およびデバイスは、特許請求する主題を記載し易くするために、ブロック図で示されている。
【００１１】
[0021]  従来のコンピューティング環境は、大規模且つ様々なアプリケーション系列を含み、クロックおよび計算器のような単純な目的の小型ツールから、ソフトウェア統合開発環境および生産性スイートのような複雑で相互に関係するアプリケーションの大型スイートまでの範囲に及ぶ。また、アプリケーションは、マルチメディア・プレーヤーおよびそれによってレンダリングされるメディア・オブジェクト（例えば、リーダー・アプリケーションによってレンダリングする1つ又は複数の電子書籍）、ゲーム、スクリーン・セイバー、種々の形式のハードウェアを管理するデバイス・ドライバ等のような媒体も備えていることもある。アプリケーションは、ローカルに（例えば、ユーザーのデバイスに展開されているエクゼキュータブル・バイナリーおよびリソースによって）展開すること、リモートに（例えば、リモート・サーバー上で実行し、ウェブ・ブラウザーを通じてユーザーと通信するウェブ・アプリケーション）展開することができ、あるいはその組み合わせも可能である（例えば、ネットワーク・アクセス可能な電子メール・アーカイブにアクセスするように構成されている電子メール・クライアントのような、リモート・リソースを利用する、ローカルにインストールされているアプリケーション）。通常、オペレーティング・システムがホストに供給されてアプリケーションを維持管理し、更にアプリケーション・ランチャー(application launcher)および関係のあるデーター・オブジェクトとの関連を通じて、アプリケーションへのユーザー・アクセスを提供する。
【００１２】
[0022]  図１は、コンピューティング環境においてアプリケーションが辿る典型的なアプリケーション・ライフ・サイクル１０を示す。アプリケーション・ライフ・サイクル１０は、典型的なコンピューティング環境において遂行され、データー・オブジェクトをコピーする、コンフィギュレーション情報を書き込むおよび読み取る、ならびにオブジェクトを要求してコンピューター・ネットワークを通じてサーバーから受信するというような、かなりの数の動作を伴うことがある。アプリケーション・ライフ・サイクル１０は、通常調達１２から始まり、ユーザーは、コンピューティング環境においてアクセス可能にするアプリケーションを選択する。調達１２は、通例、発見１４を含む。ユーザーは、アプリケーション・ライブラリーのユーザー・ドリブン・ブラウジング(user-driven browsing)または広告の提案を通じてというようにして、アプリケーションを知ることになる。また、調達１２は、通例、取得１６も含む。ユーザーは、アプリケーションのリソースを入手し、そのアプリケーションを用いる許可を手配する。ローカルにインストールされたアプリケーションについては、取得１６は、インストーラー・アプリケーションをアプリケーション・サーバーからダウンロードする必要がある場合もある。一方ウェブ・アクセス可能アプリケーションでは、ウェブメール・サービスに対してユーザー・アカウントを作成することによってというようにして、ウェブ・アプリケーションの供給業者に署名する(sign up)する必要がある場合がある。また、取得１６は、金銭の支払い、およびエンド・ユーザー・ライセンス契約（ＥＵＬＡ）をユーザーに提示し、その条件(terms and conditions)の受諾を要請するというような使用許諾、というようなトランザクションも必要となる場合もある。ときとして、予めインストールされているアプリケーションを、新たなコンピューティング環境のデフォルト・コンポーネントとして、ユーザーに利用可能にすることによって、というようにして、調達１２の一部または全部を省略してもよいこともある。
【００１３】
[0023]  調達１２の後または調達１２と同時に、アプリケーション・ライフ・サイクル１０は、インストール１８を必要とすることが多く、ローカルコンピューティング環境はプログラムに対するアクセスを与えるように構成されている。ときとして、インストール１８はマッピング２０を必要とし、特定のデバイスがアプリケーションを用いるように構成される。マッピング２０は、ソフトウェアにアクセスするためにユーザーが特定のデバイスを指定すること（例えば、アプリケーションを展開しようとするセルフォン・デバイスを選択する）、および／またはソフトウェアを使用するデバイスを許可すること（例えば、製品の活性化によって）が必要となる場合がある。また、インストール１８は、展開２２も必要とし、アプリケーションを構成するリソースが1つ又は複数のマッピングされたデバイスに展開される（例えば、アプリケーション・フォルダーを作成し、このようなフォルダーにアプリケーション・バイナリーを入れ、コード・ライブラリーを登録し、コンフィギュレーション情報をシステム・レジストリおよびコンフィギュレーション・ファイルに書き込む）。また、展開２２は、アプリケーションにアプリケーション・ランチャーを登録し、アプリケーションをそれに関係するデーター・オブジェクトと関連付け（例えば、メディア・アプリケーションをあるタイプのメディア・オブジェクトのためのメディア・プレーヤーとして特定する）、および／またはシステムの初期化のときまたは特定のイベントに応答してアプリケーションを自発的に起動するようにコンピューティング環境を構成することによってというようにして、コンピューティング環境がアプリケーションへのアクセスを与えるように構成することを必要とする場合もある。また、展開２２は、アプリケーションを使用する際にユーザーを補佐するために、文書を表示することを伴う場合もある。想定場面の中には、デバイスにネットワーク・サーバーを登録する、またはそのデバイスのためにアプリケーションをホストするようにネットワーク・サーバーを構成するというように、インストール１８がリモート・リソースのコンフィギュレーション設定を伴う場合もある。別の想定場面では、インストール１８を縮減または省略してもよい場合もある。例えば、ローカルに展開されたアプリケーションは、コンフィギュレーション設定やインストールを行わなくても実行するエクゼキュータブル・バイナリーを備えている場合があり、ウェブ・アプリケーションはローカル・デバイス上ではいずれの形式のインストールも必要としない場合がある。
【００１４】
[0024]  調達１２およびインストール１８の後、アプリケーションは、一人以上のユーザーによる使用２４の準備ができていると考えられる。使用２４は、通例、実行２６を伴い、例えば、アプリケーションを起動することによって、またはアプリケーションと関連のあるデーター・オブジェクトを活性化することによって開始することができる。また、実行２６は、メディア・プレーヤーによってレンダリングすることができる新たなメディア・オブジェクトのような、追加コンテンツの取得を含むこともある。また、使用２４は更新２８も伴い、アプリケーションの新たなバージョンを提供するまたはそれによって利用されるリソースの保守を行うためのパッチング(patching)（例えば、新たな形態のマルウェア(malware)を検出しこれに対処するための情報を受け取り組み込むウィルス防止パッケージ）というような、アプリケーションに対する継続中の変更を含む。このような更新２８は、ときとして、アプリケーション・サーバーによってリモート・リソースにおいて実行することもある。例えば、ウェブメール提供業者は、ユーザーまたはユーザー・デバイスを巻き込むことなく、そしてユーザーが意識せずとも、そのバック・エンド・ソフトウェアを頻繁に更新することがある。
【００１５】
[0025]  また、アプリケーション・ライフ・サイクル１０は、アンインストール３０も伴うことがあり、ここでアプリケーションが1つ又は複数のデバイスから除去される。アンインストール３０は、マッピング解除(unmapping)３２を含むことがあり、1つ又は複数のデバイスはアプリケーションの使用許可を剥奪される。例えば、ウェブ・アプリケーションは、ある種のデバイス上でないとアクセスできないこともあり、アプリケーション・サーバー上に格納されている許可済みデバイス・リストから除去することによって、デバイスのマッピング解除を行うことができる。また、アンインストール３０は、使用廃止(decommissioning)３４も含むことがあり、ここではアプリケーションのリソースを1つ又は複数のデバイスから除去することができる。使用廃止３４は、ユーザーが要求することができ、または自発的に呼び出すこともできる（例えば、アプリケーションが限定期間だけユーザーに使用許諾されている場合があり、コンピューティング環境は、使用許諾期間の満了時に自動的にアプリケーションを使用廃止するように構成することができる）。
【００１６】
[0026]  アプリケーション・ライフ・サイクルは広範囲に及ぶ種々のアプリケーションに広く利用されているが、多くの従来のコンピューティング環境は、アプリケーション・ライフ・サイクルが様々な欠点を表出させるように構成されている。一例として、従来のコンピューティング環境は、このアプリケーション・ライフ・サイクルを実施する際に大量のユーザー関与を強要する場合がある。調達１２の間、コンピューティング環境は、アプリケーションを発見または取得するサポートを殆どまたは全く提供できないこともあり、ユーザーは、検索（例えば、ウェブ検索）によって有用なアプリケーションを探して、アプリケーション・インストール・パッケージをダウンロードする作業を負担することもある。また、調達１２は、ライセンスのユーザー受諾を必要とする場合があるが、これを破棄することもできる（例えば、特定のボイラープレート・エンド・ユーザー・ライセンス契約の下で提供されたアプリケーションであればいずれも、ユーザーは予め許可することができる）。最新のコンピューティング環境は、通例、マッピング２０のサポートを殆どまたは全く提供せず、ユーザーは１団のデバイス上におけるアプリケーションの個々の展開を手配しなければならないこともある。多くの従来のコンピューティング環境は、自動化されたインストーラー・ツールのように、展開２２のために何らかのサポートを提供する。しかしながら、このようなインストーラー・ツールは、なおも、ウェブ・アプリケーションにおいてユーザー・アカウントを作成している間にユーザー情報（氏名、電子メール・アドレス等）を入力する、ライセンスを購入するためにクレジット・カード情報を提供する、そしてインストール用ＣＤのように物理媒体と共に含まれるシリアル・キーを入力するというような、別の場合には回避できるかもしれない大量の相互作用をユーザーに任せる場合がある。また、従来のコンピューティング環境は、更新２８に対して不適切なサポートを提供する場合もあり、アプリケーションに任されるか、またはユーザーが開始するソフトウェア・パッチの発見、ダウンロード、および適用に任されることが多い。最後に、マッピング解除３４および使用廃止３４は、インストーラー・アプリケーションによって容易にすることができるが、デバイス毎の管理に制限される場合がある。例えば、ユーザーは各デバイス上においてアンインストールを開始しなければならないかもしれず、このようなデバイス全ての間で展開を中央で管理することは難しいこともあり得る。
【００１７】
[0027]  これらの欠点は、悪化する可能性があり、最新のコンピューティング環境使用のコンテキストでは別の欠点が発生する虞れもあり、１団のデバイスを跨って広がることが多い。コンピューティング環境のユーザーは、協同してワークステーション、ノートブックまたはタブレットのような携帯用コンピューター・システム、ゲーム・コンソール、セルフォン、およびメディア・プレーヤーを管理および利用することもある。更に、ユーザーは、公衆のワークステーション上においてコンピューティング環境の全部または一部にアクセスすることや、コンピューティング環境の一部または全部へのアクセスを他のユーザーに付与することを（例えば、ゲストにコンピューティング環境を利用させるため、またはその中で管理されているデーター・オブジェクトにアクセスさせるため）望む場合もある。コンピューティング環境のコンテキストにおいてユーザーが動作させることができるデバイスは普及し続けているにも拘わらず、従来のオペレーティング・システムは、このようなデバイス間におけるコンピューティング環境の一貫した提示のためのサポートや、これらのデバイスによるデーター・オブジェクトの配信、アクセス、および同期を促進するためのサポートを殆ど提供することができない。この限られたサポートは、特に、アプリケーションに関して明白である。一般に、ユーザーは各デバイス上において、他のいずれのデバイスのコンフィギュレーションからも独立して、アプリケーション・ライフ・サイクル１０の多くの態様を手動で実行することが多い。例えば、ユーザーは、ユーザー自身の好みにしたがって、特定のアプリケーションのコンフィギュレーションを設定することができるが、アプリケーションと同様に各デバイスのコンフィギュレーションを設定するには、アプリケーションの展開毎に、手作業でコンフィギュレーションを設定しなければならないことが多い。加えて、多数のデバイスを協同で用いる場合、新たな問題が生ずる虞れがある。例えば、あるユーザーが第１デバイス上においてある人についての１組の連絡先情報を有する場合、第２デバイス上では同じ人についての１組の連絡先情報との一貫性がないこともあり得るので、どちらの組の連絡先情報の方が新しいのかユーザーが確認できない場合がある。
【００１８】
[0028]  １団のデバイス間において、一貫性があり、展開可能で、かつ拡張可能な態様でコンピューティング環境へのアクセスを提供する技法を開発する試みが近年行われている。また、これらの技法は、協同するデバイス間において１組の共通アプリケーションを提供し、更にこのようなデバイス間においてアプリケーションの調達、インストール、使用、およびアンインストールを管理する集中サービスも提供することも追求している。アプリケーションの集合は、必ずしも種々のデバイス間で同一とは限らず、例えば、ワークステーションが、セルフォン・デバイス上では適正に実行しない可能性がある高性能のアプリケーション（例えば、写真編集ソフトウェア、グラフィック集約的ゲーム）を内蔵することもあり、セルフォン・デバイスは、携帯用ではないワークステーションには関連のない可搬性アプリケーション（例えば、ＧＰＳ系地図作成ソフトウェア）を含むこともある。しかしながら、多くのアプリケーションおよびそれに関係するデーター・オブジェクトは、このようなデバイス間で共有することができ（例えば、ユーザーのカレンダー・オブジェクトを管理するように構成されているカレンダー・アプリケーション）、このようなデバイス間におけるアプリケーションおよびデーター・オブジェクトの配信や同期を可能にするように、コンピューティング環境を適応させることもできる。また、このようなデバイス毎にアプリケーションを適応させることもできる。例えば、アプリケーションの第１バージョンまたはコンフィギュレーションは、ワークステーションのような高性能デバイスに適応させることができ、一方アプリケーションの第２バージョンまたはコンフィギュレーションは、画面サイズおよび入力能力に制限がある低性能デバイスに適応させることができる。しかしながら、同じアプリケーションのアプリケーション・コンフィギュレーション（例えば、視覚様式のようなユーザーの好み）のその他の部分は、デバイス間で共有することができ、種々のデバイス間においてユーザー体験のコンピューティング環境との一貫性を促進することができる。
【００１９】
[0029]  したがって、コンピューター・システムは、１組のデバイス間における、アプリケーション集合を含むコンピューティング環境の展開を可能にするように表現できる利点があることを認めることができる。このような技法の１つでは、１組のアプリケーションを、アプリケーション・リソース、およびそれによって用いられるデーター・オブジェクトを含むコンピューティング環境は、デバイスの能力に応じたレンダリングを行うためにデバイスに配信することができるように表現される。この表現は、オブジェクト階層にしたがって編成され、共通文法にしたがって表現された１組のオブジェクトを備えている。これらのオブジェクトは、ユーザーによって作成されるユーザー・ファイルおよびデーターのような、コンピューター・システムのデーター・オブジェクトを含む。また、これらのオブジェクトは、シェル、およびその中で提供されるアプリケーションというような、オペレーティング・システムのコンポーネントを構成するエクゼキュータブル・バイナリーおよびクラス・ライブラリーも含む。また、オブジェクトは、コンピューティング環境のユーザー・インターフェースを指定する情報を含み、この情報には、シェルの基本設定(shell preference)（例えば、視覚的主題、アプリケーション起動メニュー、およびダブル・クリック閾値）、ユーザー・アカウントおよび特権、セキュリティ情報（例えば、パスワード、セキュリティ・トークン、および証明書）、アプリケーション・バイナリーおよびコンフィギュレーション情報、ユーザー・データーおよびメタデーター（例えば、ファイル共有情報）、ならびにデーター・キャッシュ（例えば、最近使用したファイルのリスト、およびブラウザー履歴）が含まれる。これらのオブジェクトの種々の本質および使用にも拘わらず、これらのオブジェクトはオブジェクト階層において共通の態様で表されており、階層において任意に編成することができる。つまり、１組の分離したデーター・ストアを備えており、各々が１つのタイプのオブジェクトを収容する（例えば、ファイル・システムはファイルを収容し、レジストリはコンフィギュレーション情報を収容し、データー・キャッシュはブラウザー履歴を収容する）従来のコンピューター・システムとは対照的に、この手法におけるオブジェクト階層は、このようなオブジェクトの全てをオブジェクト階層において共通の態様で編成する。
【００２０】
[0030]  この態様で表現されたコンピューティング環境は、いずれのデバイスにでも配信することができ、そのデバイスの能力に適した態様でレンダリングすることができる。例えば、ワークステーションは、この情報を、ロバストな汎用コンピューティング環境としてレンダリングすることができ、一方公衆ワークステーションは、ウェブ・ブラウザー（例えば、ユーザーのセッションの終了時に破棄することができる仮想機械）を通じて異なるコンピューティング環境体験をレンダリングすることができ、セルフォンは、セルフォン関連情報（例えば、連絡先、カレンダー、およびナビゲーション・データー）により速くアクセスする、より軽いインターフェースを提供することができる。更に、この情報集合に対する更新（例えば、好みの変更、およびその中に収容されているデーター・ファイルに対する更新）は、情報集合の基本的(canonical)ソースに適用することができ、これによって、情報集合が配信される他の全てのデバイスに伝搬させることができる。また、コンピューティング環境を共有するデバイス同士を、共有情報集合を通じて統合して、１つのデバイスが、情報集合において特定された他のデバイスと相互作用を行うことができる。例えば、第１デバイス上に格納されているデーターに第２デバイスによってアクセスすることができ、第２デバイスによって第１デバイスを、通信管路を通じて、制御することができる。したがって、情報集合は、コンピューティング環境を、役割能力(role capabilities)および各デバイスのリソースと共に、共有するデバイスの集合体を特定し、潜在的に大多数で多様となる可能性があるデバイス群に跨って、統合コンピューティング体験を提供することができる。
【００２１】
[0031]  図２は、このような想定場面４０の１つを示す。ここでは、コンピューティング環境は、コンピューティング環境ホスト４２によってホストすることができ、コンピューティング環境ホスト４２はオブジェクト階層４４を格納および管理することができる。また、コンピューティング環境ホスト４２は、セルフォン・デバイス４６、パーソナル・ノート型コンピューター５０、および公衆ワークステーション５４に代わって、更に異なるアクセス特権を有する異なる種類のユーザーに代わって、異なる方法でオブジェクト階層４４をレンダリングすることができる。したがって、コンピューティング環境のレンダリングは、同じアプリケーション、ユーザー・プロファイル、シェル・コンフィギュレーション、ユーザー・データー・オブジェクト等を露出する全てのデバイスに跨って、一貫性のあるコンピューティング環境を反映 (reflect)する。つまり、ユーザーは、高性能ノート型コンピューターによって全機能満載バージョン５２のコンピューティング環境にアクセスすることができ、停電力セルフォン・デバイス４６上において余分なものを省いたバージョン４８のコンピューティング環境にアクセスすることができ、更に公衆端末５４のウェブ・ブラウザー４６によって、ブラウザー互換性があり秘密指向バージョン(privacy-oriented version)５８のコンピューティング環境にアクセスすることができる。このようなデバイスの各々の能力がコンピューティング環境のレンダリングをサポートする範囲において、各デバイスの能力に合わせて調節されたオブジェクト階層４４のレンダリングにより、一貫性のあるユーザー・インターフェースおよびデーター集合を提示することができる。コンピューティング環境に対する更新は、コンピューティング環境ホスト４２に向かって逆に伝搬させることができ、他のデバイスと自動的に同期させることができる。また、種々のデバイスは、ローカルに格納されているデーターを他のデバイスと共有することによって、そして他のデバイスを制御するまたは他のデバイスによって制御されることによって、協同することもできる。したがって、コンピューティング環境は、クラウドコンピューティングアーキテクチャとして考案し提示することができ、同じコンピューティング環境に対して協同ポータル（デバイス特定プロパティを有する）のメッシュを形成する全てのデバイス（「クライアント」）に跨る、一貫性のあるレンダリングとして表されるデバイス独立表現（「クラウド」）を構成する。コンピューティング環境のアプリケーションに関して具体的には、オブジェクト階層４４は、アプリケーション集合、アプリケーション・リソース、およびそれによって作成されたデーター・オブジェクトの表現を含むことができる。更に、コンピューティング環境ホスト４２は、オブジェクト階層４４を構成する種々のオブジェクトにサービスを適用することができ、オブジェクト階層にオブジェクトを格納する共通フォーマットが、適用されるオブジェクトの本質とは無関係に、サービスの一貫性のある可用性および適用を促進することができる。
【００２２】
[0032]  これらの目的を促進するために、オブジェクト階層のオブジェクト群を図式に編成するオブジェクト階層体系を考案することができる。例えば、データー・オブジェクト（ファイルのような）、ユーザーおよびユーザー・アカウント、デバイス、ならびにコンピューティング環境によって生ずるイベント、更にはそれらの間の派生(derivation)、所有、および相互関係を表すために、オブジェクトを考案し構造化することができる。このオブジェクトを編成する態様は、オブジェクトの別の編成に対して、格別な利点をもたらす、および／または欠点を低減することができる。したがって、このオブジェクト階層体系は、これにしたがってオブジェクトを編成するができ、コンピューティング環境のこのようなオブジェクトの使用を考慮して考案される。例えば、それぞれのオブジェクトを、種々の許可の集合を有する1つ又は複数のユーザー・アカウント（例えば、あるオブジェクトに対してリード／ライト許可を有する第１ユーザー・アカウント、そのオブジェクトに対して読み取り専用許可を有する第２ユーザー・アカウント、およびそのオブジェクトに対して許可を有していない第３ユーザー・アカウント）と関連付けることによって、セキュリティ許可(security permission)をモデル化することができる。コンピューティング環境は、オブジェクト階層体系の構造およびセマンティクス(semantics)にしたがって、オブジェクト階層のオブジェクトを利用するように構成することができ、これによって、各デバイスのコンフィギュレーションおよび能力に適した態様であるが、それ以外ではこのようなデバイス全ての間で一貫性のある態様で、複数のデバイスにまたがって、展開可能なコンピューティング環境の提示を可能にする。
【００２３】
[0033]  この種のオブジェクト階層内では、１組のアプリケーションは、各アプリケーションのアプリケーション・ライフ・サイクルと一貫性のある態様で管理することができる。例えば、コンピューティング環境ホスト４２は、アプリケーションの取得、アプリケーションの1つ又は複数のデバイスとの関連付け、および各デバイス上におけるアプリケーションの展開を容易にすることができる。アプリケーションをオブジェクト階層４４において１組のオブジェクトとして表現することにより、共通アプリケーション管理タスクを容易にすることができる。第１の例として、オブジェクト階層４４において表されている複数のコンピューター・システムおよびデバイス上において、アプリケーションを容易に展開することができ、多くの想定場面では自動的に展開することができる。例えば、第１バージョンのアプリケーションをパーソナル・ノート型コンピューター５０に展開することができ、第２バージョンのアプリケーションを、公衆ワークステーション５４と用いるためのウェブまたはウェブ対応アプリケーションとして展開することができ、第３バージョンのアプリケーションを、低電力セルフォン・デバイス４６上で用いるための機能削減アプリケーションとして展開することができる。第２の例として、コンピューティング環境ホスト４２は、オブジェクト階層４４をしかるべく調節し、ホストされ展開されたバージョンのオブジェクト階層４４を同期させることによってこの調節をデバイスに展開することにより、アプリケーションの更新（例えば、アプリケーション・リソースの、アプリケーションと共に用いるための新たなコンテンツの更新バージョンとのパッチング、または新たなコンテンツの展開）を容易にすることもできる。
【００２４】
[0034]  また、展開可能オブジェクト階層４４においてアプリケーションを１組のオブジェクトとして表現することによって、新たな特徴も可能にすることができる。第１の例として、コンピューティング環境は、オブジェクト階層４４の特定部分を第２ユーザーのデバイス、コンピューター・システム、またはコンピューティング環境ホスト４２に展開することによって、ユーザーがアプリケーションを第２ユーザー、またはアプリケーション・セッションの一態様と共有することを可能にすることができる。例えば、第１ユーザーが１組の歌オブジェクトを選択し、メディア・プレーヤー・アプリケーションによって第１コンピューター上で再生することができ、更にメディア・プレーヤーのアプリケーション・セッションを第２ユーザーと共有することを選択することができる（例えば、メディア・プレーヤー・アプリケーションのオーディオを第２ユーザーにストリーミングすることによって）。第２の例として、オブジェクト階層の一部として、デバイスおよびコンピューター・システム間で、アプリケーションのコンフィギュレーションを同期させることができる。デバイスに独立したアプリケーション・プロパティ（例えば、スペル・チェック辞書に追加した特定用途向けの単語）を自動的にこのようなデバイスおよびコンピューター・システムの全てに伝搬させることができ、一方デバイス特定のアプリケーション・プロパティは、コンピューティング環境ホスト４２によってそれぞれのデバイスに合わせて指定することができる。このように、コンピューティング環境ホスト４２のアプリケーション管理サービスは、一人以上のユーザーが操作する種々のコンピューター・システムおよびデバイス上におけるアプリケーションの発見、展開、使用、および除去をサポートすることができる。これらの作業の多くの部分は、オブジェクト階層４４を調節し、その展開を、その中に表されている種々のデバイスに同期させることによって実行することができ、自動化プロセスとして、コンピューティング環境およびユーザー体験全体の一貫性に多大な改良を得ることができる。
【００２５】
[0035]  図３は、アプリケーション・ストアに格納されているアプリケーションの、デバイス上にコンピューティング環境を表すオブジェクト階層への展開を管理する方法例６０として、これらの技法の一実施形態を示す。図２を参照すると、この方法例６０は、セルフォン・デバイス４０、ノート型コンピューター５０、および公衆ワークステーション５４のような、1つ又は複数のデバイス上においてアプリケーションをインストールし管理するために利用することができる。その際、デバイスに配信されている（少なくとも部分的に）展開可能オブジェクト階層４４においてそのアプリケーションを表現する。方法例６０は、６２において開始し、アプリケーションをデバイスに展開する要求を受けるステップ（６４）を含む。この要求は、アプリケーションをインストールしたいコンピューティング環境のユーザーによって発生すること、デバイス上におけるコンピューティング環境の表現において実行中のプログラムによって発生すること、少なくとも１つのアプリケーションが予めインストールされている新たなコンピューティング環境を発生するように構成されているプログラムによって発生すること等ができる。また、方法例６０は、アプリケーション・ストアからアプリケーションを取得するステップ（６６）も含む。アプリケーションがウェブ・アプリケーションである場合、取得するステップ６６は、単に（例えば）提供されるＵＲＬにおいてアプリケーションの可用性を検証するだけでよい場合もある。また、方法例６０は、オブジェクト階層において表されているデバイスをアプリケーションにマッピングするステップ（６８）も含む。マッピングするステップ６８は、オブジェクト階層内にあるデバイスの表現を、オブジェクト階層内にあるアプリケーションの表現と関連付けて、デバイス等に関するアプリケーションについてのオブジェクト階層における１組のコンフィギュレーション情報を作成することを含むことができる。
【００２６】
[0036]  また、図３の方法例６０は、オブジェクト階層内にアプリケーションを展開するステップ７０も含む。展開するステップ７０は、オブジェクト階層内においてアプリケーションの表現を作成し、オブジェクト階層のアプリケーション表現において1つ又は複数のエクゼキュータブル・バイナリーを表し、更にデバイス等に関してアプリケーションのコンフィギュレーションを設定することを含むことができる。ウェブ・アプリケーションについては、展開するステップ７０は、例えば、デバイスと関連のあるアプリケーション・ランチャー表現に、ウェブサイトへのリンクを挿入すること、および／またはセッション間におけるウェブ・アプリケーションの永続性を促進するために、デバイス上に1つ又は複数のクッキーを作成することを含むことができる。また、方法例６０は、オブジェクト階層の少なくとも一部をデバイスに送信するステップ７２も含む。例えば、ノート型コンピューター５０のような高性能コンピューター・システムは、オブジェクト階層の最大バージョンを受信することができ、一方比較的停電力のセルフォン・デバイス４６は、オブジェクト階層の内、セルフォン・デバイス４６に関連のある部分だけを受信すればよい。この部分は、セルフォン・デバイス４６と互換性のある新たなアプリケーションの展開を含む。アプリケーションをデバイスと関連付けるようにオブジェクト階層を構成し、オブジェクト階層をデバイスに展開し終えると、方法例６０はデバイスに関して展開したアプリケーションの管理を遂行し、したがって７４において終了する。
【００２７】
[0037]  図４は、アプリケーション・ストア８４に格納されているアプリケーションの、少なくとも１つのデバイス上においてコンピューティング環境を表すオブジェクト階層８２への展開を管理する例示的システム８６として具体化した、これらの技法の第２実施形態を示す。この想定場面８０では、３つの展開可能なアプリケーション、即ち、計算器アプリケーション、カレンダー・アプリケーション、およびメディア・プレーヤー・アプリケーションが関与する。これらのアプリケーションは、３つのデバイス、セルフォン・デバイス、ノート型コンピューター・デバイス、および公衆ワークステーション上に表されるコンピューティング環境内で利用可能にすることができる。この想定場面８０内では、前述のアプリケーションは、少なくとも１つのアプリケーションを表すアプリケーション・ストア８６によってホストされる。これらのアプリケーションは、コンピューティング環境内において、そしてオブジェクト階層８２のコンフィギュレーションを再設定することによってそのコンピューティング環境をレンダリングすることができるデバイス上において展開することができる。
【００２８】
[0038]  この想定場面８０内では、アプリケーション管理システム８６は、オブジェクト階層内において1つ又は複数のアプリケーションの展開を遂行するように動作することができる。例示的システム８６は、アプリケーション取得コンポーネント８８を備えている。アプリケーション取得コンポーネント８８は、アプリケーションをインストールする要求を受け、アプリケーション・ストア８４からそのアプリケーションを取得するように構成されている。また、アプリケーション取得コンポーネント８８は、要求がいずれの必要条件（例えば、アプリケーションは要求されたデバイス上で実行できるか否か、ユーザーはアプリケーションをインストールし実行することを許可されているか、ユーザーの種々のセキュリティ特権および使用許諾問題に関する必要条件等）も満たすか否か判断することができる。また、図４の例示的システム８６はアプリケーション・マッピング・コンポーネント９０も含む。アプリケーション・マッピング・コンポーネント９０は、オブジェクト階層８２内に表されている少なくとも１つのデバイスを、少なくとも１つのインストールされているアプリケーションにマッピングするように構成されている。例えば、計算器アプリケーションが既にオブジェクト階層８２の中に含まれている場合、アプリケーション・マッピング・コンポーネント９０は、オブジェクト階層８２内に、計算器アプリケーションと、そのアプリケーションを提供しようとしている1つ又は複数のデバイスとの間の関連付けを作成することができる。計算器アプリケーションが未だオブジェクト階層８２の中に含まれていない場合、例示的システム８６は、マッピングを実行する前に、例えば、エクゼキュータブル・バイナリーまたはウェブ・アプリケーション・ウェブサイトへのリンクの表現をオブジェクト階層８２の中にコピーすることによって、計算器アプリケーションの表現をオブジェクト階層８２の中に作成することもできる。また、例示的システム８６は、アプリケーション展開コンポーネント９２も含む。これは、少なくとも１つのインストールされているアプリケーションをオブジェクト階層８２の中に展開するように構成されている。展開には、例えば、新たにマッピングされたデバイスについてのデバイス特定コンフィギュレーション情報をオブジェクト階層の中に作成すること、新たにマッピングされたデバイスをデバイス独立コンフィギュレーション情報と関連付けること、1つ又は複数のデバイス上でレンダリングされるアプリケーション・ランチャーにアプリケーションを挿入すること等を必要とすることがある。オブジェクト階層８２の中にあるデバイスの表現を、デバイスによってレンダリングされたコンピューティング環境の中に表されているアプリケーション集合の表現に関連付けた後、例示的システム８６は、これによって、コンピューティング環境を表すオブジェクト階層において展開されたアプリケーションの管理を遂行する。
【００２９】
[0039]  本明細書において記載する技法は、多くの態様に変形があっても実現することができ、一部の変形は、これらおよびその他の技法のその他の変形に関して、更に別の利点を表すことおよび／または欠点を縮減することもあり得る。これらの変形は、図３の方法例６０および図４の例示的システム８６のように、種々の実施形態に含まれる可能性があり、更にこのような様々な追加利点および／または縮減された欠点を公表する(present)ために、他のこのような変形と互換性があるとよい。したがって、当業者はこのような多くの実施形態を、本明細書において論ずる技法にしたがって考案することができる。
【００３０】
[0040]  これらの技法の実施態様間で多様に変化する可能性がある第１の態様は、アプリケーション管理サービスを提供するアプリケーション管理サーバーのアーキテクチャに関する。図４に示すように、アプリケーション管理システム８４は、種々のアプリケーションを有するアプリケーション・ストア８２と相互作用することができ、その中に格納されているアプリケーションを要求し受け取ることができ、更にそのアプリケーションをオブジェクト階層８２に展開することができる。この想定場面８０では、アプリケーション管理システム８４は、1つ又は複数のアプリケーション・ストアおよびコンピューティング環境ホスト８６間において単体のインターフェースとして具体化されている。しかしながら、他のアーキテクチャおよびシステム分解(system factoring)も、これらの技法を実現するのに適している場合もある。
【００３１】
[0041]  図５は、第２のアーキテクチャ例１００を示す。ここでも、アプリケーション管理サービス８６は、アプリケーション・ストア８４としての役割を果たし、したがって、計算器アプリケーション１０２およびカレンダー・アプリケーション１０４のような、種々のアプリケーションを収容する。これらのアプリケーションは、オブジェクト階層８２に展開することができる。この実施形態は、アプリケーション取得サービスと、展開に利用可能なアプリケーションとの統合緊密化という利点を表すことができる。
【００３２】
[0042]  図６は、第３のアーキテクチャ例１１０を示す。ここでは、コンピューティング環境ホスト４２は、アプリケーション管理サービス８６を組み込む。したがって、コンピューティング環境ホスト４２は、オブジェクト階層８２と、アプリケーション取得コンポーネント８８、アプリケーション・マッピング・コンポーネント９０、およびアプリケーション展開コンポーネント９２というような、アプリケーション管理サービス８６のサービスとの双方を格納することができる。この第３のアーキテクチャ例１１０では、デバイス上に表されたコンピューティング環境内においてユーザーによって発せられた要求によってというようにして、アプリケーション１１２をデバイスから直接受け取ることができる。コンピューティング環境ホスト４２は、この要求を受けて、アプリケーション管理サービス８６のコンポーネントによってその要求を処理し、コンピューティング環境ホスト４２に格納されているオブジェクト階層８２を更新することができる。次いで、更新されたオブジェクト階層８２をデバイスと同期させて、アプリケーションのデバイスへの展開を完了することができる。当業者であれば、これらおよびその他のシステム分解も、本明細書において論ずる技法を実現する間に、考案することができよう。
【００３３】
[0043]  これらの技法の実施態様間で多様に変化する可能性がある第２の態様は、取得、マッピング、および展開を含む、アプリケーション管理の基本コンポーネントの多様な変化に関する。この態様の第１の変形として、アプリケーションを取得するには、通例、アプリケーションを展開する要求を受け取り、特定のデバイスに関してオブジェクト階層に展開しようとするアプリケーションを取得する必要がある。しかしながら、取得は、アプリケーションについてのエンド・ユーザー・ライセンス契約の条件を表示するというように、デバイスを通じてユーザーにアプリケーション・ライセンスを提示することを含む場合もある。また、取得は、展開の必要条件として、アプリケーション・ライセンスを受け入れることをユーザーに要求することを含む場合もあり、アプリケーション・ライセンスの受諾を受けたときに、取得は、アプリケーション・ライセンス・サーバーに通知することによってというようにして、アプリケーション・ライセンスの受諾を記録することを含む場合もある。この受諾は、ユーザーからの承認として、または例えば、ある特定のアプリケーション・ライセンスの下で（例えば、ＧＮＵ公開ライセンスの特定バージョンの下で与えられるあらゆるアプリケーション）いずれかのアプリケーションの受諾を予め許可している場合、自動受諾として受けることもあり得る。また、取得は、アプリケーションに対するライセンスの電子商取引による購入というように、少なくとも１つのデバイスのユーザーとの取得手続きを仲介することを含む場合もある。また、取得は、アプリケーションのユーザーを表すユーザー・アカウントを発生することを含む場合もある。これは、ウェブメール・サーバー上に完全にホストされコンピューティング環境におけるブラウザーを通じて提供されるウェブメール・アプリケーションのように、ウェブ・アプリケーションへのアクセスを取得するには特に有利であると考えられる。
【００３４】
[0044]  この第２の態様の第２の変形として、アプリケーションのマッピングは、通例、そのアプリケーションを、オブジェクト階層において表されている1つ又は複数のデバイスと関連付けることを含む。しかしながら、マッピングは、アプリケーションがデバイスと互換性のあるバージョンで入手可能か否か、そしてアプリケーションまたはその異形（早期バージョンのような）が既にデバイス上で利用可能になっているか否かというような、デバイス特定状態の検査を含むこともできる。また、マッピングは、デバイスと互換性があるかもしれないアプリケーション・バイナリーの新バージョン、またはアプリケーションが依存しデバイスに展開することができる追加のコンポーネント（例えば、別のサーバーから読み出すことができる支援ランタイム(supporting runtime)）というような、新たなデバイスへのアプリケーションのマッピングを促進するための追加のリソースを取得することを含んでもよい。また、マッピングは、アプリケーション活性化サーバーによるアプリケーションの活性化を含むこともできる。アプリケーション活性化サーバーは、起動時にデバイス上においてアプリケーションによって有効性が判断される認証済み証明書を与えることによってというようにして、特定のデバイス上におけるアプリケーションの実行を許可することができる。
【００３５】
[0045]  この第２の態様の第３の変形として、アプリケーションの展開は、通例、アプリケーションのコンポーネントの表現をオブジェクト階層に挿入することによってというようにして、オブジェクト階層内にアプリケーションを展開することを含む。典型的に編成されたアプリケーションであっても、多数の方法で構造化することができる。小さなユーティリティが１つのエクゼキュータブル・バイナリーを構成することができ、このエクゼキュータブル・バイナリーを全体的または部分的にコンパイルすることができ、あるいは各デバイス上でローカルにコンパイルされるソース・コードとして含めることができる。このエクゼキュータブル・バイナリーは、例えば、ソース・コード・モジュール、解析ツリー、部分的にコンパイルされたバイナリーを表す中間言語命令、全体的にコンパイルされたバイナリー等として表すことができる。ユーティリティを大きくすれば、1つ又は複数のエクゼキュータブル・バイナリー、グローバル・アセンブリ・キャッシュに登録することができる共有アセンブリ、アイコン、サウンド・オブジェクト、写真、文書、およびビデオのようなアプリケーション・リソース、ヘルプ・ファイル、リレーショナル・データーベースのような、1つ又は複数の構造化データー・ストアに格納されているデーター・リソース、ワープロ・アプリケーションにおけるスペル・チェック・ツールのための言語辞書ファイルのような付属アプリケーション・リソース、内部に指定されているリソースのインデックスとしての役割を果たすアプリケーション・マニフェスト(manifest)等というような、１組のリソースを構成することもできる。更に、アプリケーションは、様々なバージョンのエクゼキュータブル・バイナリーを含むことができ、その各々は、特定のプラットフォームを目的とすることができる。例えば、あるアプリケーションは、ノート型コンピューター５０のようなより強力なデバイス上において用いるために全機能満載バージョンを含み、更に低電力セルフォン・デバイス４６上において用いるために縮減機能バージョンを含むことができる。また、アプリケーションは、様々なコンフィギュレーション情報集合を含むこともでき、その各々は特定のプラットフォームを目的とする。アプリケーションは、単体のインストーラー・パッケージとして、またはデバイス系インストーラー(device-based installer)によって展開することができるインストール可能なアーカイブとして、またはいずれの場所でも利用することができる1つ又は複数のリソースの集合等として表すことができる。
【００３６】
[0046]  また、オブジェクト階層は、従来とは異なる構造のアプリケーションを含むこともできる。例えば、ゲーム・アプリケーションは、複雑な三次元環境およびその中に表現されるオブジェクトを構築するためのビットマップ・テクスチャーおよびメッシュのような大多数のグラフィクス・リソースを含む場合がある。ウェブ対応アプリケーション(web-enabled application)は、１組のウェブ・ページを含むことがあり、これらのウェブ・ページはインライン・コードの部分を収容することができ、またはソース・コードまたはコンパイル形態で含まれるＪａｖａ（登録商標）オブジェクトのような、外部コード・リソースを参照することができる。また、このようなアプリケーションは、単にこのようなリソースが入手可能なウェブサイトへの参照として、表すこともできる。また、ウェブ対応アプリケーションは、拡張可能アプリケーション・マークアップ言語（ＸＡＭＬ）のようなマークアップ言語によって構造化することもできる。マークアップ言語は、デバイス上においてコンパイルすること、あるいはアプリケーションとしてまたはウェブ・ブラウザー内にホストされているアプレットとしてインタープリター式に実行することができる。最後に、ウェブ・アプリケーションは、単に、当該アプリケーションの一部または全部を展開することができる1つ又は複数のウェブサイトを参照する1つ又は複数のＵＲＬとして表すこともでき、これらのＵＲＬには、デバイス上でウェブ・ブラウザーによってアクセスすることができる。代わりにまたは加えて、セッション間でウェブ・アプリエーションの状態を存続させるためにローカルに格納することができるクッキーのような、何らかのリソースをデバイス展開のために含めることができる。
【００３７】
[0047]  アプリケーションを構成するリソースは多様である可能性があるので、オブジェクト階層におけるアプリケーションの展開は、同様にロバストであるとよい。例えば、テキスト・リソースは、平文として含ませることができ、あるいは汎用または特殊目的の圧縮ユーティリティによって圧縮することもできる。バイナリー・リソースは、シリアル化したバイナリー・コードとして提示することができ、バイナリー圧縮ユーティリティによって圧縮することができ、コード変換する（例えば、UuencodeまたはMIMEによって）こと等もできる。階層的に編成されたオブジェクトは、ＸＭＬのような階層フォーマット化にしたがって構造化することができ、あるいは１つの階層オブジェクトとしてシリアル化することもできる。大きなオブジェクトは、原子ユニットとして含め、圧縮し、コード変換し（例えば、空間を保存するために、ムービー・ファイルをもっと低いビットレートで符号化し直すことができる）、ある時間の間にまたは特別な目的のため等でデバイスに個々に送信することができる部分にセグメント化することができる。リソースは、オブジェクト階層に含めることができ、または必要に応じてアクセスすることができるリソースをホストするサーバーへの参照として挿入することができる。多数のオブジェクトの大きな集合は、アーカイブ（例えば、数千個のオブジェクトを収容した圧縮ファイル）として含めることができる。ウェブ系アプリケーションは、当該アプリケーションのコンポーネントを入手することができる1つ又は複数のＵＲＬとして表すことができる。代わりにまたは加えて、ウェブ・アプリケーションのスナップショットを取り込み、オブジェクト階層の中に含ませることによって、当該アプリケーションのキャッシュ・バージョンを備える、またはアプリケーションへのオフライン・アクセスを可能にすることもできる。当業者であれば、オブジェクト階層においてアプリケーションを表現するための多くの技法を、本明細書において論ずる技法を実現する間に、考案することができよう。
【００３８】
[0048]  アプリケーションをオブジェクト階層において表現することに加えて、展開は、デバイスに関しておよび／またはユーザーに関して、アプリケーションのコンフィギュレーションを設定することを含むこともできる。例えば、新たな１組のコンフィギュレーション情報をデバイスに合わせて定式化することができ、またはコンフィギュレーション設定のライブラリーの中にあるしかるべき１組のコンフィギュレーション情報を、デバイスによる使用に合わせて指定することができる。図７は、このような１つの想定場面１２０を示す。ここでは、オブジェクト階層８２は、カレンダー・アプリケーションの表現を含む。このカレンダー・アプリケーションは、２つのエクゼキュータブル・バイナリー（ローカル・ネーティブ実行のための１つのコンパイルしたエクゼキュータブルと、標準的なウェブ・ブラウザーによる低速であるが標準化を重視したアクセスのための１つのクライアント側ブラウザー・スクリプト）と、２つのコンフィギュレーション設定（高性能デバイスのための全機能コンフィギュレーションと、低電力移動体デバイスのための携帯用コンフィギュレーション設定）とを備えている。また、オブジェクト階層８２は、ユーザーが選択した好ましいカラー方式というような、いずれのデバイスでも用いることができるようにするためのデバイス独立設定値を備えたコンフィギュレーション設定も含む。また、オブジェクト階層８２は、コンピューティング環境をレンダリングすることができる２つのデバイス、即ち、低電力セルフォン・デバイス４６および高性能ノート型コンピューター５０の表現も収容する。
【００３９】
[0049]  これらのデバイスに合わせてオブジェクト階層８２の中にアプリケーションを展開する際に、アプリケーション展開コンポーネント９２は、各デバイス上における個々の使用に合わせてアプリケーションのコンフィギュレーションを設定することができる。例えば、カレンダー・アプリケーションを、セルフォン・デバイス４６のウェブ・ブラウザー・アプリケーション内において実行することができるクライアント側ブラウザー・スクリプト・エクゼキュータブル・バイナリーと、そして低電力デバイス用形態用コンフィギュレーション設定と関連付けることによって、セルフォン・デバイス４６に合わせて展開することができる。同様に、カレンダー・アプリケーションを、コンパイルしたエクゼキュータブル・バイナリーと、そしてノート型コンピューター５０がレンダリングすることができる計算集約的な機構を設けることができる全機能コンフィギュレーション設定と関連付けることによって、ノート型コンピューター５０に合わせてカレンダー・アプリケーションを展開することができる。しかしながら、双方のデバイスは、１組の一貫したデバイス独立機能を提示するために、デバイス独立コンフィギュレーション設定を組み込むことができ、これによって計算メッシュ(computing mesh)のこのようなデバイス全ての間において一貫性のあるコンピューティング環境を促進する。当業者であれば、オブジェクト階層８２におけるアプリケーションの取得、マッピング、および展開における更に別の変形も、本明細書において論ずる技法を実現する間に、考案することができよう。
【００４０】
[0050]  これらの技法の実施態様間で多様に変化する可能性がある第３の態様は、このような実施形態の基本コンポーネントに追加することができる追加の機構に関する。基本的な管理サービス（取得、マッピング、および展開）に加えて、アプリケーションの管理に追加のサービスを提供することができ、アプリケーション・ライフ・サイクルの管理においてユーザーおよびコンピューター・システムに役立つことができる。
【００４１】
[0051]  この第３の態様の第１の変形として、アプリケーション管理サービスは、図６の第３のアーキテクチャ例１１０に示すような、コンピューティング環境ホストとしての役割を果たすこともできる。この第１の変形では、アプリケーション管理サービスは、更に、オブジェクト階層を格納するように構成されているオブジェクト階層ストアと、オブジェクト階層の少なくとも一部をデバイスに（例えば、更新したオブジェクト階層を、各デバイス上に格納されているオブジェクト階層と同期させることによって）送信するように構成されているオブジェクト階層送信コンポーネントとを備えている。展開するアプリケーションを含むオブジェクト階層の部分をデバイスに送信すると、アプリケーションのデバイスへのインストールおよび展開を行うことができる。
【００４２】
[0052]  この第３の態様の第２の変形として、アプリケーション管理サービスは、ユーザーに関心があるかもしれないアプリケーションの発見を容易にすることもできる。例えば、アプリケーションのオブジェクト階層への展開を管理する方法（図３の方法例６０のような）は、照会の(querying)態様を含むことができ、この方法は、ユーザーからアプリケーションの照会を受けたときに、そのアプリケーションの照会を満たすアプリケーションを選択し、この選択したアプリケーションをユーザーに紹介するように構成されている。同様に、アプリケーションのオブジェクト階層への展開を管理するシステム（図４の例示的システム８６のような）は、アプリケーション発見コンポーネントを含むことができる。アプリケーション発見コンポーネントは、ユーザーからアプリケーションの照会を受け、そのアプリケーションの照会を満たすアプリーションを選択し、選択したアプリケーションをユーザーに紹介するように構成することができる。次いで、ユーザーは、選択されたアプリケーションから1つ又は複数を取得するように選別することができ、アプリケーション管理システムは、そのアプリケーションをオブジェクト階層に展開することができる。
【００４３】
[0053]  図８は、このような１つの想定場面１３０を示す。ここでは、ユーザー１３２が、ユーザーのセルフォン・デバイス４６と互換性があるかもしれないオーディオ・プレーヤー・アプリケーションを特定することを望んでいる。したがって、ユーザー１３２は、セルフォン・デバイスと互換性のあるメディア・プレーヤー・アプリケーションについての照会というような、アプリケーション照会１３６を、アプリケーション管理サービス８６のアプリケーション発見コンポーネント１３４に発行することができる。アプリケーション発見コンポーネント１３４は、アプリケーション・ストア８４と通信して、セルフォン・デバイス用オーディオ・プレーヤー・アプリケーションおよびセルフォン・デバイス用ビデオ・プレーヤー・アプリケーションというような、アプリケーション照会１３６を満たすアプリケーションを特定することができる。したがって、アプリケーション発見コンポーネント１３４は、これらのアプリケーションをユーザー１３２に紹介する応答１３８を供給することができる。ユーザー１３２は、発見されたアプリケーションの内、セルフォン・デバイス４６に展開しようとする1つ又は複数の選択１４０によって、アプリケーション管理サービス８６に回答することができる。次いで、アプリケーション管理サービス８６は、選択されたアプリケーション（この想定場面１３０では、セルフォン・デバイス用オーディオ・プレーヤー・アプリケーション）を取得することができ、そのアプリケーションをオブジェクト階層１４２に展開することができる。次いで、セルフォン・デバイス４６に送信して、選択されたアプリケーションの展開を完了することができる。当業者であれば、アプリケーションの発見を容易にするその他の手法も、本明細書において論ずる技法を実現する間に、考案することができよう。
【００４４】
[0054]  この第３の態様の第３の変形として、アプリケーション管理サービスは、アプリケーションの起動を容易にすることもできる。例えば、アプリケーション管理サービスを具体化する例示的システムは、アプリケーション起動コンポーネントを含むことができる。このアプリケーション起動コンポーネントは、少なくとも１つのデバイス上においてアプリケーションを起動するように構成することができる。アプリケーション起動コンポーネントは、例えば、デバイスに合ったプラットフォームを設け、アプリケーションの実行を容易にするように構成されているランタイム(runtime)を備えることができる。例えば、アプリケーションをサービスにおいてクライアント側ブラウザー・スクリプトとして展開することができ、アプリケーション管理サービスは、オブジェクト階層と共に、ブラウザー・スクリプトをインタープリター式で実行することができるブラウザー・ランタイムを含むことができる。別の例として、アプリケーションをソース・コードとして表すことができ、アプリケーション起動コンポーネントは、デバイス特定コンパイラを備えることができる。デバイス特定コンパイラは、デバイス上でアプリケーションを起動したときに、ソース・コードをコンパイルしてエクゼキュータブル・バイナリーとし、これをデバイス上で実行することができる。更に、アプリケーション起動コンポーネントは、コンパイルしたエクゼキュータブル・バイナリーを、アセンブリ・キャッシュの中にというように、格納することもでき、アプリケーションを再度コンパイルする代わりに、格納したエクゼキュータブル・バイナリーを取り出すことによって、アプリケーションを起動するその後の要求に応答することができる。第３の例として、ウェブ対応アプリケーションは、リモート・リソースにアクセスするように構成されているクライアント側フロント・エンドを備えることができ、アプリケーション起動コンポーネントは、リモート・リソースに接続し、アプリケーションの起動時にデバイスに対する入手可能性を検証しようとすることもできる。当業者であれば、デバイス上におけるアプリケーションの起動を容易にする多くの方法を、本明細書において論ずる技法を実現する間に、考案することができよう。
【００４５】
[0055]  この第３の態様の第４の変形として、アプリケーション管理サービスは、更に、アプリケーションの態様(aspects)を他のユーザーと共有するのを容易にすることもできる。このようなアプリケーションの共有は、多くの想定場面において行われる可能性がある。第１の例として、共有は、アプリケーション全体（それと関連のある全てのリソースおよびデーター・オブジェクトを含む）の共有を必要とする場合がある。第２の例として、共有は、あるバージョンのアプリケーションを他のユーザーと共有することを伴う場合もある。例えば、第１ユーザーがアプリケーションを用いるライセンスを購入しており、第２ユーザーにそのアプリケーションをライセンスすることを進めるために、アプリケーションの一部の特徴を実演することができる縮減機能バージョンで、そのアプリケーションを第２ユーザーと共有することができる。第３の例として、共有は、アプリケーションによって作成されたメディア・オブジェクトのような、アプリケーションと関連のある1つ又は複数のデーター・オブジェクトを共有することを伴う場合もある。つまり、第２ユーザーが同じアプリケーションまたは別のアプリケーションを用いて、第２ユーザーのコンピューティング環境内にメディア・オブジェクトをレンダリングすることができる。第４の例として、共有は、アプリケーションのコンフィギュレーションを他のユーザーと共有することを伴う場合もある。例えば、ソフトウェア開発チームの数人の部員が、ソフトウェアの開発においてチームとして作業しながら、統合開発環境の内特定のコンフィギュレーションを利用することもあり得る。第５の例として、共有は、アプリケーションの一セッションを他のユーザーと共有することを伴う場合もある。例えば、二人のユーザーがテキスト文書の準備において協力することが考えられ、第１ユーザーがワープロ・アプリケーションの一セッションを第２ユーザーと共有して、これらのユーザー間における生の対話処理を促進することができる。これらの共有の想定場面は、コンピューティング環境（１つのオブジェクト階層によって表される）の数人のユーザー間や、２つ以上のコンピューティング環境（多数のオブジェクト階層によって表される）のユーザー間において起きる可能性があり、あるいはファイル転送プロトコル（ＦＴＰ）のような共通の通信プロトコルを通じて、共有するコンピューティング環境のデーター・オブジェクトを供給することによって、コンピューティング環境を表すオブジェクト階層の一部を、分からないように表されているコンピューティング環境のユーザーと共有するときにも起こる可能性がある。当業者であれば、これらおよびその他の共有の想定場面を、本明細書において論ずる技法を実現する間に、考案することができよう。
【００４６】
[0056]  図９は、アプリケーション共有の想定場面１５０を示す。ここでは、第１オブジェクト階層１５２の第１ユーザーが、メディア・プレーヤー・アプリケーションと、種々のアーティストによって作成された種々の歌という形態のいくつかのメディア・オブジェクトを取得しており、このようなメディア・オブジェクトは忠実性高く符号化されている（即ち、３２０ｋｂｐｓの符号化速度）。また、第１ユーザーはポッドキャストのようなメディア・プレーヤー・セッションも作成しており、これは、第１オブジェクト階層１５２のメディア・セクションにおいて表されているオブジェクトの内数個を参照する。第１ユーザーはこのポッドキャストを、第２オブジェクト階層１５４の第２ユーザーと共有することを望むかもしれない。したがって、アプリケーション共有は、このメディア・プレーヤー・セッションを第１オブジェクト階層１５２から第２オブジェクト階層１５４にコピーすることを必要とすることもある。メディア・プレーヤー・セッションは、第１オブジェクト階層１５２に格納されているいくつかのメディア・オブジェクトを参照するので、このアプリケーション共有は、メディア・オブジェクトを第２オブジェクト階層１５４にコピーすることによって、その中で参照されているメディア・オブジェクトを共有することを必要とする場合もある。しかしながら、メディア・オブジェクトに付随するディジタル権利は、忠実度を低くしなければ、メディア・オブジェクトの他のオブジェクト階層への送信を許可しない場合もある。したがって、コンピューティング環境は、第２オブジェクト階層に、品質を低下させてコード変換したメディア・オブジェクト（例えば、２４ｋｂｐｓ符号化速度）のバージョンを送信すればよい。加えて、第２オブジェクト階層１５４は、メディア・オブジェクトによって表されるタイプのオーディオについては、メディア・プレーヤー・アプリケーションを含まなくてもよい。したがって、第１オブジェクト階層１５２は、メディア・プレーヤー・アプリケーションの１つのバージョンを第２オブジェクト階層１５４と共有すればよい。しかしながら、第１ユーザーが取得したメディア・プレーヤー・アプリケーションのエンド・ユーザー・ライセンス契約にしたがって、縮減機能バージョンを第２ユーザーに送信することができる。このように、アプリケーション・セッションに関するコンポーネントのディジタル権利を遵守しつつ、第１オブジェクト階層１５２の一部を第２オブジェクト階層１５４に送信することによって、アプリケーション、それによってレンダリングされるメディア・オブジェクト、および第１ユーザーが発生したアプリケーション・セッションを、第２ユーザーと自動的に共有することができる。
【００４７】
[0057]  この第３の態様の第５の変形として、アプリケーション管理サービスは、新たなコンテンツによるアプリケーションの更新を容易にすることができる。バイナリーをパッチングし、新たなリソースを挿入し、既存のリソースを変更または除去することによって、アプリケーションを新たなバージョンに、そして新たなコンテンツで更新することが多い。このような更新は、アプリケーション管理サービスによって、アプリケーション更新を入手し、オブジェクト階層において表されているアプリケーションに更新を展開することによって（例えば、オブジェクト階層に収容されているアプリケーション・リソースを更新すること、および／または新たなリソースを新たなオブジェクトとしてオブジェクト階層に挿入することによって）実行することができる。これらの更新は、ユーザーの要求時に適用することができる。ユーザーは、アプリケーションによって露出されることになる新たなコンテンツを既に取得していることもある。また、更新は、アプリケーション・ストアへの照会によって、アプリケーション管理サービスによって読み出すこともでき、あるいはアプリケーション・ストアまたは管理運営サーバーによってアプリケーション管理サービスにプッシュすること等ができる。更新されたオブジェクト階層は、次いで、1つ又は複数のデバイスに送信することができ、これによって、コンピューティング環境のアプリケーションの更新を、ユーザー関与に頼る程度を低減して遂行することができる。当業者であれば、オブジェクト階層において表されているアプリケーションを更新する多くの方法を、本明細書において論ずる技法を実現する間に、考案することができよう。
【００４８】
[0058]  この第３の態様の第６の変形として、アプリケーション管理サービスは、コンピューティング環境からのアプリケーションの取り消しも許可することができる。この取り消しには、アプリケーションのデバイスへのマッピングを除去する、アプリケーション活性化サーバーの許可済みデバイス・リストにおいてデバイスの許可を廃止する(de-authorize)、デバイスからアプリケーション・リソースを除去する（例えば、そのデバイスから、オブジェクト階層の内アプリケーション・リソースを収容する部分を制止することによって）、ならびにアプリケーション・リソースの全てをオブジェクト階層および全てのマッピングされたデバイスから除去することによってアプリケーションを完全に使用廃止するというように、多くの想定場面が関与する可能性がある。取り消しは、1つ又は複数のデバイスからアプリケーションをアンインストールしたいユーザーの要求によって、または期間限定ソフトウェア・ライセンスの満了時に、またはデバイスを計算メッシュから除去するとき等に行うことができる。この変形の一実施形態例として、アプリケーション管理システムは、これらの態様のいずれにおいても、少なくとも１つのデバイスからアプリケーションを取り消すように構成されているアプリケーション取り消しコンポーネントを含むことができる。当業者であれば、オブジェクト階層によって表されるコンピューティング環境内部からアプリケーションを取り消す多くの方法を、本明細書において論ずる技法を実現する間に、考案することができよう。
【００４９】
[0059]  これらの態様のこれらの変形は、本明細書において論じた技法の多くの実施形態に含めることができ、図３の方法例６０および図４の例示的システム８６を含む。更に、様々なこのような変形は、組み合わせて実現することもでき、これらの別の変形およびこれらの技法の別の態様と共に実現して、図３および図４に示したより基本的な実施形態に関して、様々な利点を得ること、および／または欠点を縮減することができる。また、組み合わせによっては、相乗効果が得られる場合もある。例えば、アプリケーション発見コンポーネントをアプリケーション取得コンポーネントに協同的にリンクして、アプリケーションの調達の内、発見、購入、ライセンス受諾、およびユーザー・アカウント作成を、統合ユーザー体験として提示することもできる。
【００５０】
[0060]  図１０は、少なくとも１つのデバイス（セルフォン・デバイス４６、ノート型コンピューター５０、および公衆ワークステーション５４のような）上においてコンピューティング環境を表すオブジェクト階層４４において、アプリケーションの展開を管理する例示的システム１６０を示す。図１０の例示的システム１６０は、本明細書において論じた変形の多くを具体化する。図１０の例示的システム１６０は、オブジェクト階層４４を格納するように構成されているオブジェクト階層ストア８２と、少なくとも１つのアプリケーションを表すアプリケーション・ストア８４とを含み、それぞれのアプリケーションが少なくとも１つのアプリケーション・リソースを構成する。また、例示的システム１６０は、ユーザーからアプリケーション照会を受けて、そのアプリケーション照会を満たすアプリケーションを選択し、選択したアプリケーションをユーザーに紹介するように構成されているアプリケーション発見コンポーネント１３４も含む。また、例示的システム１６０は、アプリケーション取得コンポーネント８８も含む。アプリケーション取得コンポーネント８８は、アプリケーションをインストールする要求を受け、デバイスを通じてユーザーにアプリケーション・ライセンスを提示し、ユーザーからアプリケーション・ライセンスの受諾を受けたときに、アプリケーション・ライセンスの受諾を記録するように構成されている。また、アプリケーション取得コンポーネント８８は、アプリケーションのユーザーを表すユーザー・アカウントを発生し、少なくとも１つのデバイスのユーザーとの取得トランザクションを仲介するように構成されている。アプリケーション発見コンポーネント１３４およびアプリケーション取得コンポーネント８８は、調和して、典型的なアプリケーション・ライフ・サイクルにおけるアプリケーションの調達を容易にする。
【００５１】
[0061]  また、図１０の例示的システム１６０は、アプリケーション・マッピング・コンポーネント９０も含む。アプリケーション・マッピング・コンポーネント９０は、オブジェクト階層４４において表されている少なくとも１つのデバイスを、少なくとも１つのインストールされているアプリケーションにマッピングするように構成されている。また、例示的システム１６０はアプリケーション展開コンポーネント９２も含む。アプリケーション展開コンポーネント９２は、当該デバイスおよびそのデバイスのユーザーの内少なくとも１つに関してアプリケーションのコンフィギュレーションを設定することによって、少なくとも１つのインストールされたアプリケーションをオブジェクト階層４４の中に展開するように構成されている。アプリケーション・マッピング・コンポーネント９０およびアプリケーション展開コンポーネント９２は、調和して、典型的なアプリケーション・ライフ・サイクルにおける、オブジェクト階層内のアプリケーションのインストールを容易にする。
【００５２】
[0062]  また、図１０の例示的システム１６０は、アプリケーション起動コンポーネント１６２も含む。アプリケーション起動コンポーネント１６２は、少なくとも１つのデバイス上においてアプリケーションを起動するように構成されている。また、例示的システム１６０はアプリケーション共有コンポーネント１６４も含む。アプリケーション共有コンポーネント１６４は、ユーザーとアプリーションを共有する要求を受けて、このアプリケーションを共有する要求を受けたときに、アプリケーション、アプリケーション・セッション、アプリケーション・コンフィギュレーション、およびアプリケーションが発生した少なくとも１つのデーター・オブジェクトの内少なくとも１つを構成する、オブジェクト階層の一部をユーザーと共有するように構成されている。また、例示的システム１６０は、アプリケーション更新コンポーネント１６６も含む。アプリケーション更新コンポーネント１６６は、オブジェクト階層４４において少なくとも１つのアプリケーション・リソースを更新するように構成されている。アプリケーション起動コンポーネント１６２、アプリケーション共有コンポーネント１６４、およびアプリケーション更新コンポーネント１６６は、調和して、典型的なアプリケーション・ライフ・サイクルにおける1つ又は複数のデバイス上でのアプリケーションの実行を容易にする。
【００５３】
[0063]  また、図１０の例示的システム１６０は、アプリケーション取り消しコンポーネント１６８も含む。アプリケーション取り消しコンポーネント１６８は、（例えば、オブジェクト階層において1つ又は複数のデバイスの表現からアプリケーションのマッピングを解除し、1つ又は複数のデバイスからアプリケーションを除去し、および／またはオブジェクト階層からアプリケーションを完全に除去することによってアプリケーションを完全に使用廃止することにより）アプリケーションを取り消すように構成されている。アプリケーション取り消しコンポーネント１６８は、これによって、典型的なアプリケーション・ライフ・サイクルにおいてアプリケーションのアンインストールを容易にする。
【００５４】
[0064]  最後に、例示的システム１６０は、オブジェクト階層送信コンポーネント１７０も含む。オブジェクト階層送信コンポーネント１７０は、オブジェクト階層４４の少なくとも一部を少なくとも１つのデバイスに送信するように構成されている。オブジェクト階層４４は、アプリケーション管理システム１６０のコンポーネントの多くによって変更することができ、オブジェクト階層４４の変更を、その中に表されている1つ又は複数のデバイスと同期させて、コンピューティング環境のアプリケーション集合の更新を実施することができる。本明細書において論じた技法のこれら多くの変形を組み合わせることによって、例示的システム１６０は、計算メッシュを構成する多くのデバイス間において、典型的なアプリケーション・ライフ・サイクルを通じて大きなアプリケーション集合を管理運営するための総合的なアプリケーション管理サービスを提供する。
【００５５】
[0065]  以上、構造的特徴および／または方法論的行為に特定的な文言で本主題について説明したが、添付した特許請求の範囲において定義されている主題は、かならずしも前述した具体的な特徴や行為には限定されないことは言うまでもない。むしろ、前述の具体的な特徴および行為は、特許請求の範囲を実施する形態例として開示したまでである。
【００５６】
[0066]  本願において用いる場合、「コンポーネント」、「モジュール」、「システム」、「インターフェース」等の用語は、一般に、コンピューター関連エンティティを指し、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかであることを意図している。例えば、コンポーネントは、限定ではなく、プロセッサ上で実行中のプロセス、プロセッサ、オブジェクト、エクゼキュータブル、実行のスレッド、プログラム、および／またはコンピューターであってもよい。例示として、コントローラ上で実行中のアプリケーションおよびそのコントローラの双方がコンポーネントであり得る。1つ又は複数のコンポーネントが１つのプロセスの中に位置しても良く、および／または実行のスレッドおよびコンポーネントを１つのコンピューター上に局在させて(localize)もよく、および／または２つ以上のコンピューター間で分散してもよい。
【００５７】
[0067]  更に、特許請求する主題は、コンピューターを制御して開示した主題を実現させるソフトウェア、ファームウェア、ハードウェア、またはそれらのいかなる組み合わせをも生成するために、標準的なプログラミングおよび／またはエンジニアリング技法を用いた、方法、装置、または製造品目として実現することができる。「製造品目」という用語は、本明細書において用いる場合、あらゆるコンピューター読み取り可能デバイス、担体、または媒体からでもアクセス可能なコンピューター・プログラムを包含することを意図している。勿論、特許請求する主題の範囲および主旨から逸脱することなく、多くの変更をこの構成に加えることができることは、当業者には認められよう。
【００５８】
[0068]  図１１および以下の論述は、本明細書において明記した設備(provision)の1つ又は複数の実施形態を実現するのに適したコンピューティング環境の端的な全体的説明を提示する。図１１の動作環境は、適した動作環境の一例に過ぎず、動作環境の使用または機能の範囲に関して、何の限定も示唆することを意図するのではない。コンピューティングデバイスの例には、限定ではなく、パーソナル・コンピューター、サーバー・コンピューター、ハンドヘルドまたはラップトップ・デバイス、移動体デバイス（移動電話機、パーソナル・ディジタル・アシスタント（ＰＤＡ）、メディア・プレーヤーなど）、マルチプロセッサ・システム、消費者向け電子機器、ミニ・コンピューター、メインフレーム・コンピューター、以上のシステムまたはデバイスのいずれでも含む分散型コンピューティング環境等が含まれる。
【００５９】
[0069]  実施形態は、1つ又は複数のコンピューティングデバイスによって実行される「コンピューター読み取り可能命令」という一般的なコンテキストにおいて説明するが、こうすることが求められているのではない。コンピューター読み取り可能命令は、コンピューター読み取り可能媒体（以下で論ずる）によって配信することができる。コンピューター読み取り可能命令は、関数、オブジェクト、アプリケーション・プログラミング・インターフェース（ＡＰＩ）、データー構造などのような、特定のタスクを実行するかまたは特定の抽象的データー・タイプを実現するプログラム・モジュールとして実現することができる。通例では、コンピューター読み取り可能命令の機能は、所望に応じて、種々の環境において組み合わせることまたは分散することもできる。
【００６０】
[0070]  図１１は、本明細書において提唱した1つ又は複数の実施形態を実現するように構成されているコンピューティングデバイス１８２を備えているシステム１８０の一例を示す。一構成では、コンピューティングデバイス１８２は、少なくとも１つの演算装置１８６と、メモリー１８８とを含む。コンピューティングデバイスの正確な構成および種類によっては、メモリー１８８は揮発性（例えば、ＲＡＭのような）、不揮発性（例えば、ＲＯＭ、フラッシュ・メモリーのような）、またはこれら２つの組み合わせとなることもある。この構成は、図１１では、破線１８４によって示されている。
【００６１】
[0071]  他の実施形態では、コンピューティングデバイス１８２は、追加の機構および／または機能を含むこともできる。例えば、コンピューティングデバイス１８２は、限定ではなく、磁気ストレージ、光ストレージ等を含む追加のストレージ（例えば、リムーバブルおよび／または非リムーバブル）を含むこともできる。このような追加のストレージは、図１１では、ストレージ１９０によって例示されている。一実施形態では、本明細書において提唱した1つ又は複数の実施形態を実現するためのコンピューター読み取り可能命令は、ストレージ１９０の中に入れることができる。また、ストレージ１９０は、オペレーティング・システム、アプリケーション・プログラムなどを実装するための他のコンピューター読み取り可能命令も格納することができる。コンピューター読み取り可能命令は、例えば、演算装置１８６による実行のために、メモリー１８８にロードすることができる。
【００６２】
[0072]  「コンピューター読み取り可能媒体」という用語は、本明細書において用いる場合、コンピューター記憶媒体を含む。コンピューター記憶媒体は、コンピューター読み取り可能命令またはその他のデーターのような情報の格納のためにいずれかの方法または技術で実現された、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含む。メモリー１８８およびストレージ１９０は、コンピューター記憶媒体の例である。コンピューター記憶媒体は、限定ではなく、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリーまたはその他のメモリー技術、ＣＤ−ＲＯＭ、ディジタル・バーサタイル・ディスク（ＤＶＤ）またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができその上デバイス１８２によってアクセスすることができるのであれば他のいずれの媒体をも含む。このような御ピュータ記憶媒体は、そのいずれもがコンピューティングデバイス１８２の一部となってもよい。
【００６３】
[0073]  また、コンピューティングデバイス１８２は、コンピューティングデバイス１８２が他のデバイスと通信することを可能にする通信接続（１つまたは複数）１９６も含むことができる。通信接続（１つまたは複数）１９６は、限定ではなく、モデム、ネットワーク・インターフェース・カード（ＮＩＣ）、統合ネットワーク・インターフェース、無線周波数送信機／受信機、赤外線ポート、ＵＳＢ接続、またはコンピューティングデバイス１８２を他のコンピューティングデバイスと接続するためのその他のインターフェースを含むことができる。通信接続（１つまたは複数）１９６は、有線接続またはワイヤレス接続を含むことができる。通信接続（１つまたは複数）１９６は、通信媒体を送信および／または受信することができる。
【００６４】
[0074]  「コンピューター読み取り可能媒体」という用語は、通信媒体を含むことができる。通信媒体は、通例、搬送波またはその他の伝達メカニズムのような「変調データー信号」にコンピューター読み取り可能命令またはその他のデーターを具体化し、いずれの情報配信媒体も含む。「変調データー信号」という用語は、情報を信号内に符号化するような態様で設定または変更したその特性の1つ又は複数を有する信号を含むことができる。
【００６５】
[0075]  コンピューティングデバイス１８２は、キーボード、マウス、ペン、音声入力デバイス、接触入力デバイス、赤外線カメラ、ビデオ入力デバイス、および／またはその他のあらゆる入力デバイスというような、入力デバイス（１つまたは複数）１９４を含むことができる。1つ又は複数のディスプレイ、スピーカー、プリンター、および／またはその他の出力デバイスというような出力デバイス（１つまたは複数）１９２も、コンピューティングデバイス１８２に含むことができる。入力デバイス（１つまたは複数）１９４および出力デバイス（１つまたは複数）１９２は、有線接続、ワイヤレス接続、またはそのいずれの組み合わせによってでも、コンピューティングデバイス１８２に接続することができる。一実施形態では、別のコンピューティングデバイスからの入力デバイスまたは出力デバイスを、コンピューティングデバイス１８２用の入力デバイス（１つまたは複数）１９４または出力デバイス（１つまたは複数）１９２として用いることもできる。
【００６６】
[0076]  コンピューティングデバイス１８２のコンポーネントは、バスのような、種々の相互接続によって接続することができる。このような相互接続は、ＰＣＩ Expressのようなペリフェラル・コンポーネント相互接続（ＰＣＩ）、ユニバーサル・シリアル・バス（ＵＳＢ）、ファイアワイヤ（ＩＥＥＥ１３９４）、光バス構造などを含むことができる。別の実施形態では、コンピューティングデバイス１８２のコンポーネントは、ネットワークで相互接続することができる。例えば、メモリー１８８は、ネットワークによって相互接続されている異なる物理的位置にある多数の物理的メモリー・ユニットによって構成することもできる。
【００６７】
[0077]  コンピューター読み取り可能命令を格納するために利用される記憶デバイスは、ネットワークに跨って分散させてもよいことは、当業者には分かるであろう。例えば、ネットワーク１９８を通じてアクセス可能なコンピューティングデバイス２００は、本明細書において提唱した1つ又は複数の実施形態を実現するために、コンピューター読み取り可能命令を格納することができる。コンピューティングデバイス１８２は、コンピューティングデバイス１００にアクセスし、コンピューター読み取り可能命令の一部または全部を実行のためにダウンロードすることができる。あるいは、コンピューティングデバイス１８２は、必要に応じて、コンピューター読み取り可能命令の断片をダウンロードすることができ、一部の命令をコンピューティングデバイス１８２において実行し、一部をコンピューティングデバイス２００において実行することもできる。
【００６８】
[0078]  本明細書では、実施形態の種々の動作について提唱した。一実施形態では、記載した動作の1つ又は複数が、1つ又は複数のコンピューター読み取り可能媒体上に格納されたコンピューター読み取り可能命令を構成することができ、コンピューティングデバイスによって実行すると、当該コンピューティングデバイスに、記載した動作を実行させる。これらの動作の一部または全部を記載した順序は、これらの動作に必然的な順序依存性があるように解釈すべきではない。この記載の援助を得た当業者には、代わりの順序も認められよう。更に、本明細書において提唱した各実施形態において、全ての動作が必ずしも出てくる訳ではないことは言うまでもない。
【００６９】
[0079]  更に、「一例の」という単語は、本明細書では、一例、実例、または例示としての役割を果たすことを意味するために用いられる。本明細書において「一例の」として記載される態様または設計はいずれも、他の態様または設計よりも有利であるとは必ずしも解釈されない。むしろ、一例のという用語の使用は、概念を具体的に紹介することを意図している。本明細書において用いる場合、「または」という用語は、排他的な「または」ではなく包含的な「または」を意味することを意図する。即ち、そうでないことが指定されていない限り、または文脈から明白でない限り、「ＸはＡまたはＢを採用する」とは、自然な包含的組み合わせ(permutation)のいずれでも意味することを意図する。即ち、ＸがＡを採用する場合、ＸがＢを採用する場合、またはＸがＡおよびＢの双方を採用する場合、これらの実例のいずれにおいても、「ＸはＡまたはＢを採用する」が満たされる。加えて、冠詞「ａ」および「ａｎ」は、本願および添付した特許請求の範囲において用いられる場合、そうでないことが指定されていない限り、また単数形を対象とすることが文脈から明白でない限り、「1つ又は複数」を意味するように通常解釈することができる。
【００７０】
[0080]  また、1つ又は複数の実施態様に関して本開示を示し説明したが、本明細書および添付図面の熟読および理解に基づいて、同等の変形や変更が当業者には想起されよう。本開示は、このような変更や変形を全て含み、以下の特許請求の範囲のみによって限定される。特に、以上で述べたコンポーネント（例えば、エレメント、リソース等）によって実行される種々の機能に関して、このようなコンポーネントを記載するために用いられた用語は、そうでないことが示されない限り、記載されたコンポーネント（例えば、機能的に同等な）の指定された機能を実行するのであれば、本開示のここで例示された実施態様例における機能を実行する、開示された構造に構造的に同等でなくても、いずれのコンポーネントにも対応することを意図している。加えて、本開示の特定的な機構を、様々な実施態様の内１つのみに関して開示したが、このような機構は、いずれの所与の用途または特定の用途にとっても望まれるまたは有利となるように、他の実施態様の1つ又は複数の別の機構と組み合わせることができる。更に、「含む」、「有している」(having)、「有する」(has)、「と」(with)という用語、またはその異形が詳細な説明または特許請求の範囲において用いられている限りにおいて、このような単語は、用語「備えている」(comprising)と同様に内包的であることを意図している。
【図１】
0005409767.tif 000002
【図２】
0005409767.tif 000003
【図３】
0005409767.tif 000004
【図４】
0005409767.tif 000005
【図５】
0005409767.tif 000006
【図６】
0005409767.tif 000007
【図７】
0005409767.tif 000008
【図８】
0005409767.tif 000009
【図９】
0005409767.tif 000010
【図１０】
0005409767.tif 000011
【図１１】
0005409767.tif 000012