(57)【特許請求の範囲】
【請求項１】
実行可能命令を有して構成されたコンピューティングデバイスの制御のもとで、
前記コンピューティングデバイスにインストールされた少なくとも１つのアプリケーションを使用してアクセス可能であり且つ対応するファイル種類を有するデータファイルを開くためのコマンドを示す、前記コンピューティングデバイスの入力デバイスへの入力を、検出することと、
前記ファイル種類に関連付けられたポリシーに基づいて、前記データファイルを、前記コンピューティングデバイスの環境とは別の仮想コンピューティング環境内で開く、と決定することと、
前記データファイルを前記仮想コンピューティング環境に提供することと、
１つまたは複数の実行可能命令を送信して、サーバに、前記データファイルを前記仮想コンピューティング環境内で開くために使用可能なアプリケーションを起動させることと、
を備え、
前記ポリシーが、前記仮想コンピューティング環境の序列を、前記複数の仮想コンピューティング環境のうちの各仮想コンピューティング環境の１つまたは複数のセキュリティ態様に基づいて規定するコンピュータ実装方法。
【請求項２】
前記サーバから、前記アプリケーションを使用して前記仮想コンピューティング環境内で前記データファイルを開いた結果として、作成される修正データファイルを受信することと、
前記データファイルと前記修正データファイルとを同期させることと、
をさらに備える、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記ポリシーが、コンピュータシステムのオペレーティングシステムのレジストリファイル内で符号化されており、前記レジストリファイルが、前記対応するファイル種類を有するデータファイルを、前記データファイルを前記仮想コンピューティング環境内で開くと決定するように構成された位置決定アプリケーションに関連付ける、と規定する、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記データファイルを前記仮想コンピューティング環境内で開くと決定した結果として、前記コンピューティングデバイスのユーザに関連付けられた１つまたは複数の認証情報を提供して、前記コンピューティングデバイスを前記仮想コンピューティング環境にアクセスするために使用することを可能にすること、をさらに備える、請求項１に記載のコンピュータ実装方法。
【請求項５】
システムであって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサによって実行されると、前記システムに、
第１のコンピューティング環境において、データファイルを開くためのコマンドを検出することと、
前記データファイルに関連付けられたポリシーに基づいて、前記データファイルを前記第１のコンピューティング環境がネットワークによって分けられている第２のコンピューティング環境内で開くと決定することと、
前記データファイルを前記第２のコンピューティング環境内で開かせる情報を、前記第２のコンピューティング環境に送信することと、を行わせ、
前記ポリシーが、前記第２のコンピューティング環境の序列を、前記複数の第２のコンピューティング環境のうちの各第２のコンピューティング環境の１つまたは複数のセキュリティ態様に基づいて規定する、命令を含むメモリと、
を備える、前記システム。
【請求項６】
前記ポリシーが、前記データファイルに関連付けられたレジストリファイル内で符号化されている、請求項５に記載のシステム。
【請求項７】
前記命令が、前記１つまたは複数のプロセッサによって実行されると、前記システムに、
前記第１のコンピューティング環境において、第２のデータファイルを開くためのコマンドを検出することと、
前記第２のデータファイルに関連付けられたポリシーに少なくとも部分的に基づいて、前記第２のデータファイルを、アプリケーションを使用して、前記第１のコンピューティング環境内で開く、と決定することと、
前記アプリケーションを起動させて、前記第２のデータファイルの使用を可能にすることと、
をさらに行わせる、請求項５に記載のシステム。
【請求項８】
前記第１のコンピューティング環境が、前記システムに前記ネットワークを介してストリーミングされるシングルテナント仮想コンピューティング環境である、請求項５に記載のシステム。
【請求項９】
前記命令が、前記１つまたは複数のプロセッサによって実行されると、前記システムに、
前記第２のコンピューティング環境から、アプリケーションを使用して前記第２のコンピューティング環境内で前記データファイルを開いた結果として作成される修正データファイルを受信することと、
前記データファイルと前記修正データファイルとを、前記第１のコンピューティング環境内で同期させることと、
をさらに行わせる、請求項５に記載のシステム。
【請求項１０】
コンピュータシステムの１つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、少なくとも、
第１のコンピューティング環境内で、対応するファイル種類を有するデータファイルを開くためのコマンドを検出したことに応答して、
前記ファイル種類に関連付けられたポリシーに基づいて、シングルテナント仮想コンピューティング環境を、前記コンピュータシステムがアクセス可能な複数のシングルテナント仮想コンピューティング環境から選択することと、
前記データファイルを前記選択されたシングルテナント仮想コンピューティング環境内で開かせる情報を、前記選択されたコンピューティング環境に送信することと、を行わせ、
前記ポリシーが、前記シングルテナント仮想コンピューティング環境の序列を、前記複数のシングルテナント仮想コンピューティング環境のうちの各シングルテナント仮想環境の１つまたは複数のセキュリティ態様に基づいて規定する、実行可能命令を格納した、非一時的コンピュータ可読ストレージ媒体。
【請求項１１】
前記命令が、前記１つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、前記第１のコンピューティング環境のユーザコンピューティングデバイスに関連付けられた１つまたは複数の認証情報を提供して、前記ユーザコンピューティングデバイスが前記選択されたシングルテナント仮想コンピューティング環境にアクセスすることを可能にすること、を行わせる命令をさらに備える、請求項１０に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項１２】
前記第１のコンピューティング環境が、前記選択されたシングルテナント仮想コンピューティング環境とは別のオペレーティングシステムを含む、請求項１０に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項１３】
前記命令が、前記１つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、前記シングルテナント仮想コンピューティング環境を前記複数のシングルテナント仮想コンピューティング環境から選択した結果として、前記選択されたシングルテナント仮想コンピューティング環境をプロビジョンさせる情報を送信すること、を行わせる命令をさらに含む、請求項１０に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項１４】
前記ポリシーが、前記第１のコンピューティング環境のオペレーティングシステムのレジストリファイル内で符号化されており、前記レジストリファイルが、前記対応するファイル種類を有するデータファイルを、前記データファイルを前記選択されたシングルテナント仮想コンピューティング環境内で開く、と決定するように構成された位置決定アプリケーションに関連付ける、と規定する、請求項１０に記載の非一時的コンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１４年９月２２日に出願され、「ＣＯＭＰＵＴＩＮＧ  ＥＮＶＩＲＯＮＭＥＮＴ  ＳＥＬＥＣＴＩＯＮ  ＴＥＣＨＮＩＱＵＥＳ」という題名の、同時係属のＵ．Ｓ．Ｐａｔｅｎｔ  Ａｐｐｌｉｃａｔｉｏｎ  Ｎｏ．１４／４９２，６４８の優先権を主張し、その内容全体が参照によって本明細書に組み込まれる。
【背景技術】
【０００２】
生産性アプリケーション及び他のアプリケーションへのアクセスは、しばしば、仮想コンピューティング環境を使用して提供される。ユーザは、たとえば、サーバとの接続を確立して、サーバ上で実行されるアプリケーションにアクセスしてもよい。さまざまな手法を使用して、あたかもアプリケーションがローカルで実行されているようなユーザビリティを提供してもよい。ユーザデバイスのディスプレイは、たとえば、グラフィカルユーザインターフェースを、デスクトップメタファーにしたがって提供し、それにより、ユーザが、遠隔で実行されているアプリケーションを開き、それと相互作用することを可能にする。いくつかの実施例では、そのような機能は、組織のデータセンタ内にホストされているサーバなどの、組織自身のハードウェアを使用して提供される。他の実施例では、コンピューティング資源サービスプロバイダが、そのハードウェアを活用して、仮想コンピューティング環境を顧客のためにホストする。そのようなシステムは、時には、一般的に、「仮想デスクトップインフラストラクチャ」（ＶＤＩ）と呼ばれる。
【０００３】
クライアントコンピューティングデバイス及びそれらの対応する仮想コンピューティングシステム環境は、それぞれ、さまざまなインストールされたアプリケーションを有してもよく、それらのアプリケーションは、クライアントコンピューティングデバイスまたは仮想コンピューティングシステム環境のいずれかの中に格納されている１つまたは複数のデータファイルにアクセスするために使用され得る。仮想コンピューティングシステム環境を提供するための従来の構成は、しばしば、柔軟性がなく、しばしば、１つの環境と別の環境とを切り替えることを困難にする。さらに、いくつかの状況では、アプリケーションをローカルで実行することを許すことは、セキュリティリスクを高めることがあり、それは、クライアントコンピューティングデバイスが、携帯用コンピュータ（たとえば、ノートブックコンピュータまたはタブレットコンピュータ）であり、アプリケーションが機密データにアクセスするような時などである。他の状況では、特定のファイル種類のファイルは、ある環境では利用可能であり得るが、そのファイルを開き、処理するように動作可能な適切なアプリケーションがない場合がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示によるさまざまな実施形態を、図面を参照して説明する。
【図面の簡単な説明】
【０００５】
【図１】さまざまな実施形態を実装することができる環境の例示的な実施例を示す。
【図２】少なくとも１つの実施形態による、仮想コンピューティング環境サービスの１つまたは複数の構成要素が、ユーザが仮想コンピューティング環境にアクセスすることを可能にするように構成されている環境の例示的な実施例を示す。
【図３】少なくとも１つの実施形態による、ユーザのコンピューティングデバイスの１つまたは複数の構成要素が、仮想コンピューティング環境サービスとの通信と、それへのアクセスと、を可能にするように構成されている環境の例示的な実施例を示す。
【図４】少なくとも１つの実施形態による、ユーザのコンピューティングデバイス環境の例示的な実施例を示し、そこでは、ユーザは、コンピューティングデバイス内に格納されている１つまたは複数のデータファイルを選択することができる。
【図５】少なくとも１つの実施形態による、ユーザのコンピューティングデバイス環境の例示的な実施例を示し、そこでは、選択されたデータファイルが、ポリシー実装に応答して、仮想コンピューティング環境内でインターフェースを通して活用される。
【図６】少なくとも１つの実施形態による、ユーザのコンピューティングデバイス環境の例示的な実施例を示し、そこでは、選択されたデータファイルが、アプリケーションをコンピューティングデバイス環境内で実行することによって活用される。
【図７】少なくとも１つの実施形態による、選択されたデータファイルをアプリケーションを使用して活用し得るコンピューティング環境を決定するためのプロセスの例示的な実施例を示す。
【図８】少なくとも１つの実施形態による、１つまたは複数のポリシーを活用して、選択されたデータファイルを活用し得るコンピューティング環境を決定するためのプロセスの例示的な実施例を示す。
【図９】少なくとも１つの実施形態による、データファイルを使用するためのアプリケーションが利用可能でないという判断に応答して、データファイルを別のコンピューティング環境に転送するためのプロセスの例示的な実施例を示す。
【図１０】さまざまな実施形態を実装することができる環境を示す。
【発明を実施するための形態】
【０００６】
以下の説明では、さまざまな実施形態を説明する。説明の目的のために、実施形態の完全な理解を提供するために、具体的な構成及び詳細を記載する。しかしながら、実施形態を具体的な詳細なしに実施してもよいということは、また、当業者には明白である。さらに、説明されている実施形態を不明瞭にしないために、良く知られた特徴は、省略または簡略化され得る。
【０００７】
本明細書で説明され、提案される手法は、ローカルコンピューティング環境または仮想コンピューティングシステム環境のいずれかの中に配置された１つまたは複数のデータファイルを活用するためのアプリケーションにアクセスするための、コンピューティング環境の選択に関する。一実施形態では、エンティティは、コンピューティングデバイス（たとえば、ラップトップコンピュータ、デスクトップコンピュータ、モバイルデバイス、など）を使用して、コンピューティングデバイスに格納されているデータファイルを活用する。データファイルを、コンピューティングデバイスにインストールされているさまざまなアプリケーションに関連付けてもよい。たとえば、エンティティがデータファイルを選択すると、コンピューティングデバイスは、コンピューティングデバイスにインストールされている関連アプリケーションを起動させて、ユーザがデータファイルを彼／彼女の目的のために活用することを可能にしてもよい。いくつかの実施例では、エンティティは、組織の従業員であり、組織のビジネスニーズをサポートするために、コンピューティングデバイスを支給されている。しかしながら、本明細書で説明する手法は、仮想コンピューティングシステム環境を使用する他の文脈に応用可能である。
【０００８】
一実施形態では、組織は、コンピューティングデバイスに、位置決定アプリケーションをインストールすることができ、位置決定アプリケーションは、さまざまなデータファイル種類のためのデフォルトアプリケーションとして働くように構成され得る。たとえば、エンティティが特定のデータファイルを選択すると、データファイルにアクセスするために活用され得るアプリケーションを実行するのではなく、コンピューティングデバイスは、この位置決定アプリケーションを実行してもよい。位置決定アプリケーションは、組織によって提供され、コンピューティングデバイスのレジストリまたは他の機構内で符号化されているポリシーを評価して、データファイルをローカルコンピューティングデバイス環境内で活用するとそのポリシーが規定するかどうか、またはデータファイルを仮想コンピューティングシステム環境内で活用するかどうか、を決定するように構成され得る。たとえば、データファイルをローカルコンピューティングデバイス環境内で活用してもよい、とポリシーが規定する場合、位置決定アプリケーションは、選択されたデータファイルを活用するために、コンピューティングデバイスに、エンティティによって使用可能であり得る、デバイスにインストールされているアプリケーションを実行させてもよい。
【０００９】
位置決定アプリケーションが、コンピューティングデバイスのレジストリファイル内に符号化されているポリシーに基づいて、データファイルを仮想コンピューティングシステム環境内で活用すると決定した場合、位置決定アプリケーションは、コンピューティングデバイスに、仮想コンピューティング環境サービスとの通信セッションを開始させて、仮想コンピューティング環境インターフェースを起動させてもよい。このインターフェースは、グラフィカルユーザインターフェース（ＧＵＩ）であってよく、グラフィカルユーザインターフェース（ＧＵＩ）は、エンティティが、さまざまなデータファイル種類に関連付けら得るさまざまなアプリケーションを備える仮想機械インスタンスと相互作用することを可能にし得る。一実施形態では、位置決定アプリケーションは、コンピューティングデバイスに、選択されたデータファイルを仮想コンピューティング環境サービスによって提供される物理ホスト（つまり、物理コンピュータシステム）に送信して、データファイルを、物理ホスト内のデータ保管場所内に格納させる。これは、このデータファイルを仮想コンピューティング環境内で使用することを可能にし得る。
【００１０】
いったんデータファイルが仮想コンピューティング環境サービス内の物理ホストに送信されると、位置決定アプリケーションは、１つまたは複数の実行可能命令を仮想コンピューティング環境内のアプリケーションに送信して、アプリケーションを環境内で起動させ、アプリケーションに、データファイルにアクセスさせることができる。これは、エンティティが、インターフェースを活用して、このアプリケーションと仮想コンピューティング環境内でアクセスされるデータファイルと相互作用することを可能にし得る。エンティティがデータファイルをこの環境内で活用し終えると、アプリケーションは、データファイルを、ユーザのコンピューティングデバイスとは別の場所に格納してもよい。さらに、仮想コンピューティング環境サービスは、更新データファイルをエンティティのコンピューティングデバイスに送信してもよく、そこで、データファイルを同期し、格納してもよい。
【００１１】
代替的な実施形態では、エンティティは、データファイルを、仮想コンピューティング環境内で、彼／彼女のコンピューティングデバイスを通してアクセス可能なインターフェースを通して選択する。選択されたデータファイルにアクセスするために必要なアプリケーションが仮想コンピューティング環境内で利用可能でない場合、仮想コンピューティング環境サービスは、エンティティプロファイルまたはエンティティのコンピューティングデバイスにアクセスして、適切なアプリケーションがエンティティのコンピューティングデバイスにインストールされている、とプロファイル内の情報が示しているかどうかを判断してもよい。適切なアプリケーションがエンティティのコンピューティングデバイスにインストールされている場合、仮想コンピューティング環境サービスは、選択されたデータファイルをエンティティのコンピューティングデバイスに送信し、アプリケーションをコンピューティングデバイス内で起動させて、エンティティが、データファイルを、（たとえば、エンティティの観点から）ローカルなコンピューティング環境内で活用することを可能にし得る。
【００１２】
このようにして、エンティティによって選択されたデータファイルに、アプリケーション可用性及びポリシー定義に基づいて、最適なコンピューティング環境内でアクセスし、それを活用してもよい。加えて、本明細書で説明し、提案する手法は、追加的な技術的進歩を促進する。たとえば、いくつかの実施形態では、仮想コンピューティング環境サービスは、データファイルを、このデータファイルにアクセスするためにアプリケーションをエンティティが使用してもよい環境に、送信してもよいために、エンティティは、データファイルに、適切な環境からアクセスしてもよく、データファイルにアクセスするために、またはデータファイルを活用することができるようにアプリケーションを彼／彼女のコンピューティングデバイスまたは仮想コンピューティング環境内にインストールするために、データファイルを他の場所または環境に手作業で転送する必要がない。
【００１３】
図１は、さまざまな実施形態を実装することができる環境１００の例示的な実施例を示している。環境１００では、ユーザは、コンピューティングデバイス１０２（たとえば、ラップトップコンピュータ、デスクトップコンピュータ、モバイルデバイス、など）を通して、オペレーティングシステムインターフェース１０４と相互作用して、コンピューティングデバイス１０２内に格納されている１つまたは複数のデータファイル１０６にアクセスしてもよい。オペレーティングシステムインターフェース１０４は、グラフィカルユーザインターフェースであってよく、ユーザは、コンピューティングデバイス１０２にインストールされた１つまたは複数のユーザ入力デバイスを通して、グラフィカルユーザインターフェースを活用して、コンピューティングデバイス１０２内に格納されているアプリケーション、ファイル構造及びデータファイルの１つまたは複数のアイコングラフィック描写と相互作用する。たとえば、図１に例示されている通り、ユーザは、彼／彼女のコンピューティングデバイス１０２を活用して、オペレーティングシステムインターフェース１０４内のカーソル１０８と相互作用し、コンピュータアイコン１１０、ごみ箱アイコン１１２、及び１つまたは複数のデータファイルアイコン１０６を選択してもよい。これらのアイコン１０６、アイコン１１０、アイコン１１２を活用して、オペレーティングシステムのさまざまな機能、アプリケーション、ファイル構造、及びデータファイル自体に、インターフェース１０４を通してアクセスしてもよい。
【００１４】
ユーザがカーソル１０８を活用して、関連データファイルを活用するためのデータファイルアイコン１０６を選択すると、コンピューティングデバイス１０２にインストールされているオペレーションシステムは、選択されたデータファイルが、コンピューティングデバイス１０２にインストールされている１つまたは複数のアプリケーションに関連付けられているかどうかを判断してもよい。たとえば、オペレーティングシステムは、ユーザがカーソル１０８を活用してデータファイルアイコン１０６を選択したことに応答して、特定のデータファイル種類が、コンピューティングデバイス１０２にインストールされている１つまたは複数のアプリケーションに関連付けられているかどうかを判断するために、レジストリファイルにアクセスしてもよい。特定のデータファイル種類が特定のアプリケーションに関連付けられている場合、オペレーティングシステムは、そのアプリケーションを実行し、このアプリケーションを通してデータファイルを使用することを可能にし得る。たとえば、特定のデータファイルがワード処理文書である場合、文書は、適切な文書処理アプリケーションを使用して開いてもよい。別の実施例では、特定のデータファイルが表計算文書である場合、文書は、適切な表計算アプリケーションを使用して開いてもよい。レジストリファイルを、本開示を通して、例示の目的のために使用するが、１つまたは複数のポリシーを、特定のデータファイル種類がコンピューティングデバイス１０２にインストールされている１つまたは複数のアプリケーションに関連付けられているかどうかを判断するために使用され得る他の機構内で、符号化してもよい。たとえば、いくつかのオペレーティングシステムは、レジストリファイル以外の設定を活用して、ユーザのコンピューティングデバイス１０２内に格納されているこれらの１つまたは複数のポリシーを符号化するように構成され得る。
【００１５】
一実施形態では、選択されたデータファイルは、インストールされているアプリケーションに関連付けられ、コンピューティングデバイス１０２を通してユーザがアクセス可能である代わりに、コンピューティングデバイス１０２にインストールされている位置決定アプリケーションに、ユーザのコンピューティングデバイス１０２の管理者または他の管理エンティティによって関連付けられ得る。位置決定アプリケーションは、選択されたデータファイル種類に関連付けられ得る１つまたは複数のポリシーを特定するために、コンピューティングデバイス１０２にインストールされている１つまたは複数のレジストリファイルにアクセスするように構成され得る。これらのポリシーは、特定の種類のデータファイルを、コンピューティングデバイス１０２にインストールされているアプリケーションを通して、または別のコンピューティング環境内で利用可能なアプリケーションを通して、活用するかどうかを規定してもよい。特定の種類のデータファイルに、コンピューティングデバイス１０２にインストールされているアプリケーションを使用してアクセスしてもよい、と１つまたは複数のポリシーが規定する場合、位置決定アプリケーションは、オペレーティングシステムに適切なアプリケーションを実行させ、ユーザがコンピューティングデバイス１０２及びオペレーティングシステムインターフェース１０４を通して、アプリケーションを活用して選択されたデータファイルと相互作用することを可能にし得る。
【００１６】
しかしながら、選択されたデータファイルは、コンピューティングデバイス１０２にインストールされているアプリケーションのうちの任意のものを活用して使用されない、と１つまたは複数のポリシーが規定する場合、位置決定アプリケーションは、オペレーティングシステムに、１つまたは複数の仮想コンピューティング環境サーバ１１４との通信セッションを開始させて、選択されたデータファイルを活用し得る仮想コンピューティング環境にアクセスしてもよい。仮想コンピューティング環境サーバ１１４は、１つまたは複数の物理ホストを備えてもよく、物理ホストを使用して、１つまたは複数の仮想機械画像をインスタンス化してもよい。さらに、仮想コンピューティング環境は、シングルテナント（たとえば、一度に１人のユーザのみによって使用可能な）デスクトップ、またはデスクトップメタファーを用いない場合がある他のシングルテナント仮想コンピューティング環境であってよい。これらの１つまたは複数の仮想機械画像は、オペレーティングシステム及び１つまたは複数のアプリケーションを含んでもよく、アプリケーションは、インスタンス化されると、これらの仮想コンピューティング環境サーバ１１４内の１つまたは複数の物理ホスト上にインストールされ得る。コンピューティングデバイス１０２と同様に、仮想コンピューティング環境サーバ１１４は、ユーザに、仮想コンピューティング環境インターフェース１１６を提供してもよく、仮想コンピューティング環境インターフェース１１６は、仮想コンピューティング環境内で利用可能な１つまたは複数のアプリケーションと相互作用するために使用され得る。
【００１７】
位置決定アプリケーションは、コンピューティングデバイス１０２にインストールされているオペレーティングシステムに、ユーザクライアントを起動させてもよく、ユーザクライアントは、この仮想コンピューティング環境インターフェース１１６にアクセスするために使用され得る。加えて、位置決定アプリケーションは、選択されたデータファイルをこれらの仮想コンピューティング環境サーバ１１４に送信してもよく、データファイルは、特定のユーザのための仮想機械画像がインスタンス化されているユーザのコンピューティングデバイス１０２とは別の場所内に、格納され得る。一実施形態では、位置決定アプリケーションは、仮想コンピューティング環境サーバ１１４に、１つまたは複数のセットの認証情報を送信して、ユーザの認証を可能にする。仮想コンピューティング環境サーバ１１４がユーザを認証できない場合、サーバ１１４は、仮想コンピューティング環境インターフェース１１６にユーザのコンピューティングデバイス１０２を通してアクセスするための位置決定アプリケーションの要求を、拒否してもよい。
【００１８】
１つまたは複数の仮想コンピューティング環境サーバ１１４がユーザを認証することができる場合、位置決定アプリケーションは、１つまたは複数の実行可能命令を、仮想コンピューティング環境のオペレーティングシステムに送信して、アプリケーション１１８が仮想コンピューティング環境内で実行されるようにして、選択されたデータファイルの使用を可能にし得る。ユーザは、オペレーティングシステムインターフェース１０４を通して使用可能なユーザクライアントを通して、仮想コンピューティング環境インターフェース１１６を活用して、アプリケーション１１８及び選択されたデータファイルと相互作用することができ得る。ユーザがデータファイルを仮想コンピューティング環境内で活用し終えると、１つまたは複数の仮想コンピューティング環境サーバ１１４は、更新データファイルを、仮想機械画像をインスタンス化してもよい物理ホスト内に格納してもよい。加えて、仮想コンピューティング環境サーバ１１４は、更新データファイルをユーザコンピューティングデバイス１０２に送信してもよく、ユーザコンピューティングデバイス１０２は、この更新データファイルを、その中に格納されているデータファイルと同期させてもよい。
【００１９】
代替的な環境では、ユーザは、仮想コンピューティング環境インターフェース１１８を通して、仮想コンピューティング環境内で使用するためのデータファイルを選択する。ユーザがデータファイルを選択すると、１つまたは複数の仮想コンピューティング環境サーバ１１４は、特定の仮想機械画像がデータファイルの使用を可能にするための適切なアプリケーションを含むかどうかを判断し得る。適切なアプリケーションが仮想コンピューティング環境内で利用可能でないと仮想コンピューティング環境サーバ１１４が判断した場合、仮想コンピューティング環境サーバ１１４は、ユーザのコンピューティングデバイス１０２と、デバイス１０２への１つまたは複数のアプリケーションプログラミングインターフェース（ＡＰＩ）コールなどを通して通信して、データファイルの使用を可能にするように活用され得るアプリケーションが、コンピューティングデバイス１０２のオペレーティングシステム環境内で利用可能かどうかを判断し得る。アプリケーションが特定された場合、仮想コンピューティング環境サーバ１１４は、ユーザアカウント情報データストア内のユーザのアカウント情報にアクセスして、選択されたデータファイル種類にユーザのコンピューティングデバイス１０２を使用してアクセスしてもよいかどうかを判断し得る。
【００２０】
データファイルに、ユーザのコンピューティングデバイス１０２にインストールされているアプリケーションを使用してアクセスすし得る場合、仮想コンピューティング環境サーバ１１４は、選択されたデータファイルを、仮想機械画像がインスタンス化されている物理ホストから、ユーザのコンピューティングデバイス１０２に送信してもよい。さらに、仮想コンピューティング環境サーバ１１４は、実行可能命令を、ユーザのコンピューティングデバイス１０２にインストールされているオペレーティングシステムに送信して、特定のアプリケーションを実行し、そのアプリケーションを通してデータファイルを使用することを可能にし得る。したがって、ユーザは、このアプリケーションをオペレーティングシステムインターフェース１０４を通して活用して、選択されたデータファイルを使用してもよい。いったんユーザがデータファイルを使用し終えると、ユーザのコンピューティングデバイス１０２は、更新データファイルを仮想コンピューティング環境サーバ１１４に送信することができ、仮想コンピューティング環境サーバ１１４は、更新データファイルを、ユーザのコンピューティングデバイス１０２とは異なる場所内に格納されている既存のデータファイルと同期させてもよい。
【００２１】
上述した通り、位置決定アプリケーションが、ユーザのコンピューティングデバイス内に格納されているレジストリファイル内で符号化されている１つまたは複数のポリシーに少なくとも部分的に基づいて、選択されたデータファイルを仮想コンピューティング環境内で活用すると決定した場合、位置決定アプリケーションは、ユーザのコンピューティングデバイスに、仮想コンピューティング環境サービスとの通信セッションを開始させて、この環境にアクセスしてもよい。さらに、位置決定アプリケーションは、１つまたは複数の実行可能命令を仮想コンピューティング環境サービスに送信してもよく、仮想コンピューティング環境サービスは、特定のアプリケーションをこの環境内で起動させてもよく、選択されたデータファイルを仮想コンピューティング環境内で使用することを可能にし得る。したがって、図２は、少なくとも１つの実施形態による環境２００の例示的な実施例を示しており、そこでは、仮想コンピューティング環境サービス２０２の１つまたは複数の構成要素は、ユーザが仮想コンピューティング環境にアクセスすることを可能にするように構成されている。
【００２２】
環境２００では、仮想コンピューティング環境サービス２０２は、ユーザにインターフェース２０４を提供してもよく、インターフェース２０４は、ユーザが、彼／彼女のコンピューティングデバイス２０６を通して、仮想コンピューティング環境サービス２０２にアクセスすることを可能にし得る。ユーザは、インターフェース２０４を、インターネットなどの１つまたは複数の通信ネットワークを通して活用してもよい。インターフェース２０４は、ユーザが仮想コンピューティング環境サービス２０２にアクセスする権限を有していることを保証する、特定の安全処置を含んでもよい。たとえば、仮想コンピューティング環境サービス２０２にアクセスするために、ユーザは、インターフェース２０４を使用する時に、ユーザ名及び対応するパスワードまたは暗号化キーを提供する必要があり得る。加えて、インターフェース２０４に提出される要求（たとえば、ＡＰＩコール）は、暗号化キーを使用して生成された電子署名を必要とし得、電子署名が、（図示しない）承認システムなどの仮想コンピューティング環境サービス２０２によって、検証可能であるようにする。
【００２３】
いったんユーザが、彼／彼女のコンピューティングデバイス２０６を通して、仮想コンピューティング環境サービス２０２へのアクセスを、インターフェース２０４を通して取得すると、仮想コンピューティング環境サービス２０２は、ユーザが、インターフェース２０４を通して、管理サブシステム２０８と相互作用することを可能にし得る。たとえば、管理サブシステム２０６は、ユーザが１つまたは複数の仮想機械画像を遠隔で管理し、維持することを可能にし得る。これらの仮想機械画像を、仮想機械画像データストア２１０内のデータストレージ内に維持してもよい。ユーザが仮想機械インスタンスをプロビジョンするための要求を提出すると、仮想コンピューティング環境サービス２０２は、ユーザが要求した機械画像を特定し、その機械画像を処理するために必要な資源（たとえば、機械画像の構成要素を動作させるために必要なプロセッサとランダムアクセスメモリ（ＲＡＭ）と）を配分してもよい。機械画像を、そのインスタンスの物理ホスト２１２として動作し得る１つまたは複数の物理ストレージデバイス（たとえば、１つまたは複数のサーバまたはハードドライブ）上に、インスタンス化してもよい。
【００２４】
仮想コンピューティング環境サービス２０２は、また、サービス２０２の各ユーザに対して、ユーザプロファイルデータストア２１４内に記録され得るユーザアカウントを維持し得る。各ユーザプロファイルは、１つまたは複数のポリシーを含んでもよく、ポリシーは、ユーザが特定のデータファイル種類を活用することを可能にするように使用可能なアプリケーションを、ユーザの仮想コンピューティング環境内で、ユーザのコンピューティングデバイス２０６内で、または任意の他の環境内で、起動し得るどうかを規定してもよい。たとえば、ユーザのコンピューティングデバイス２０６の管理者は、ユーザのアカウントに適用し得るポリシーを生成してもよく、そのポリシーは、特定のデータファイルはユーザの仮想コンピューティング環境内でのみ開いてもよい、と規定する。このポリシーを、また、ユーザのコンピューティングデバイス２０６の１つまたは複数のレジストリファイル内で符号化してもよい。
【００２５】
ユーザが、彼／彼女のコンピューティングデバイス２０６を使用して、デバイス２０６に格納されている特定のデータファイルを開こうとすると、デバイス２０６にインストールされているオペレーティングシステムは、デバイス２０６にインストールされているどのアプリケーションが、選択されたデータファイルに関連付けられているのかを判断してもよい。たとえば、一実施形態では、オペレーティングシステムは、コンピューティングデバイス２０６内に格納されている１つまたは複数のレジストリファイルに少なくとも部分的に基づいて、選択されたデータファイルが位置決定アプリケーションに関連付けられていることを判断する。このアプリケーションは、ユーザによってアクセス可能でないかもしれず、デバイス２０６の前述の管理者によってコンピューティングデバイス２０６にインストールされ得る。位置決定アプリケーションは、ユーザによるデータファイルの選択を受けて、１つまたは複数のレジストリファイルにアクセスして、特定のデータファイル種類に関連するポリシーを特定するように構成され得る。たとえば、ポリシーは、特定の種類のデータファイルがユーザのコンピューティングデバイス２０６にインストールされているアプリケーションを使用して開かれない、と規定してもよい。さらに、これらのポリシーは、特定の種類のデータファイルは特定の仮想コンピューティング環境内で開かれる、と規定してもよい。ポリシーは、さらに、データファイルを開いてもよい１つまたは複数の仮想コンピューティング環境の序列を規定してもよい。序列は、これらの仮想コンピューティング環境の１つまたは複数の安全態様に少なくとも部分的に基づいて作成され得る。たとえば、著しい安全処置（たとえば、データ暗号化、ファイアウォール実装、ウイルススキャン、など）を有する仮想コンピューティング環境を、これらの１つまたは複数の仮想コンピューティング環境の序列内のより高い序列に規定してもよい。
【００２６】
位置決定アプリケーションが、これらの１つまたは複数のポリシーに少なくとも部分的に基づいて、選択されたデータファイルを（たとえば、ユーザのコンピューティングデバイス２０６に対して）ローカル内で開かないと決定した場合、位置決定アプリケーションは、ユーザのコンピューティングデバイス２０６に、仮想コンピューティング環境サービス２０２との通信セッションを開始させて、ユーザがインターフェース２０４を通して彼／彼女の仮想コンピューティング環境にアクセスすることを可能にし得る。いくつかの実施形態では、位置決定アプリケーションは、仮想コンピューティング環境サービス２０２に、サービス２０２にアクセスするために必要なユーザの認証情報を提供してもよい。位置決定アプリケーションによって提供された、彼／彼女の仮想コンピューティング環境にアクセスするためのユーザの要求に応答して、管理サブシステム２０８は、ユーザプロファイルデータストア２１４内のユーザのアカウントにアクセスして、ユーザの仮想コンピューティング環境のために特定の仮想機械画像をインスタンス化した特定の物理ホスト２１２を、特定してもよい。いったん管理サブシステム２０８が物理ホスト２１２を特定すると、管理サブシステム２０８は、ユーザがインターフェース２０４を通して彼／彼女の仮想コンピューティング環境にアクセスすることを可能にし得る。加えて、位置決定アプリケーションは、選択されたデータファイルを仮想コンピューティング環境サービス２０２に送信することができ、管理サブシステム２０８は、データファイルを、ユーザのコンピューティングデバイス２０６とは異なる場所内に格納してもよい。
【００２７】
いったんデータファイルがユーザのコンピューティングデバイス２０６とは異なる場所内に格納され、ユーザがインターフェース２０４を通して彼／彼女の仮想コンピューティング環境へのアクセスを取得すると、位置決定アプリケーションは、１つまたは複数の実行可能命令を管理サブシステム２０８に送信して、選択されたデータファイルの使用を可能にするように使用可能なアプリケーションを、仮想コンピューティング環境内で起動させ得る。これは、ユーザが、彼のユーザコンピューティングデバイス２０６を通して、データファイルをこの仮想コンピューティング環境内で使用することを可能にし得る。ユーザが選択されたデータファイルを仮想コンピューティング環境内で使用し終えると、管理サブシステム２０８は、ユーザのコンピューティングデバイス２０６と仮想コンピューティング環境との中のデータファイルを同期させるために、更新データファイルをユーザのコンピューティングデバイス２０６に送信してもよい。
【００２８】
一実施形態では、ユーザは、インターフェース２０４を通して、仮想コンピューティング環境内で開く１つまたは複数のデータファイルを選択する。この選択に応答して、管理サブシステム２０８は、ユーザによって活用される特定の仮想機械インスタンスが、これらのデータファイルを開くために必要な１つまたは複数のアプリケーションを含むかどうかを判断してもよい。管理サブシステム２０８が、選択されたデータファイルを開くことができる任意のアプリケーションを特定できない場合、管理サブシステム２０８は、ユーザプロファイルデータストア２１４にアクセスして、これらの特定のデータファイルに関連する任意のポリシーを特定してもよい。たとえば、上述した通り、ユーザのコンピューティングデバイス２０６の管理者は、特定のポリシー内で、ユーザのコンピューティングデバイス２０６がデータファイルを開くために必要な１つまたは複数のアプリケーションを有し、ユーザがこれらのアプリケーションをローカル（たとえば、ユーザのコンピューティングデバイス２０６環境内）で使用することを承認されている、と規定してもよい。
【００２９】
管理サブシステム２０８が、仮想機械インスタンス、ユーザが利用可能な他の仮想機械インスタンスを通して提供されたものであろうと、またはユーザのコンピューティングデバイス２０６にインストールされたものであろうと、選択された１つまたは複数のデータファイルを開くために使用してもよいアプリケーションを特定できない場合、管理サブシステム２０８は、これらのデータファイルを開くためのユーザの要求を拒否してもよい。しかしながら、管理サブシステム２０８が、選択されたデータファイルを開くためのアプリケーションが利用可能な代替的な環境を特定することができた場合、管理サブシステム２０８は、データファイル及び実行可能命令を選択された環境に送信して、アプリケーションを起動させ、データファイルをその環境内で使用することを可能にし得る。たとえば、選択されたデータファイルを開くために必要なアプリケーションをユーザのコンピューティングデバイス２０６内で見つけることができた場合、管理サブシステム２０８は、選択されたデータファイルを物理ホース２１２から取得し、これらのデータファイル及び実行可能命令をユーザのコンピューティングデバイス２０６に送信して、ユーザのコンピューティングデバイス２０６に選択されたアプリケーションを起動させ、これらのデータファイルの使用を可能にし得る。いったんユーザがアプリケーション及びデータファイルをユーザのコンピューティングデバイス２０６内で活用し終えると、ユーザのコンピューティングデバイス２０６は、更新データファイルを仮想コンピューティング環境サービス２０２に送信してもよく、仮想コンピューティング環境サービス２０２は、管理サブシステム２０８を通して、これらの取得データファイルを、ユーザのコンピューティングデバイス２０６とは異なる場所内に格納されているデータファイルと同期させてもよい。
【００３０】
上述した通り、ユーザは、コンピューティングデバイスを活用して、１つまたは複数のデータファイルを開くための１つまたは複数のアプリケーションを起動すし得る。いくつかの実施形態では、選択されたデータファイルを位置決定アプリケーションに関連付けてもよく、位置決定アプリケーションを使用して、データファイルをコンピューティングデバイスにインストールされているアプリケーションを使用して開いてもよいかどうか、またはデータファイルを仮想コンピューティング環境内のみで開いてもよいかどうか、を判断してもよい。したがって、図３は、少なくとも１つの実施形態による環境３００の例示的な実施例を示しており、そこでは、ユーザのコンピューティングデバイス３０４の１つまたは複数の構成要素は、仮想コンピューティング環境サービス３１４との通信とそれへのアクセスとを可能にするように構成されている。図３に示す通り、コンピューティングデバイス３０４は、１つまたは複数のプロセッサ３１２（たとえば、中央処理装置（ＣＰＵ））を含んでもよく、プロセッサ３１２は、バスサブシステムを介して、多数の周辺サブシステムと通信するように構成され得、それらに動作可能に連結され得る。これらの周辺サブシステムは、１つまたは複数のアプリケーション３０８を活用するためのメモリサブシステム及びファイルストレージサブシステム３１０を備えるストレージサブシステム３０６並びに、１つまたは複数のユーザインターフェース入力デバイス、１つまたは複数のユーザインターフェース出力デバイス、ネットワークインターフェースサブシステムなど、を含んでもよい。周辺サブシステムは、また、入力デバイスのセンサに加えて、１つまたは複数のセンサを含んでもよい。そのようなセンサは、全地球測位システム（ＧＰＳ）センサ、加速度計、温度センサ及び、他のセンサを含むが、これらに限定されない。
【００３１】
ストレージサブシステム３０６は、本開示の少なくとも１つの実施形態の機能を提供し得る基本のプログラミング及びデータ構造を格納するための、コンピュータ可読ストレージ媒体を提供してもよい。１つまたは複数のプロセッサによって実行されると、本開示の１つまたは複数の実施形態の機能を提供してもよい、アプリケーションまたはその構成要素（プログラム、コードモジュール（つまり、プログラミングモジュール）、命令）を、ストレージサブシステム３０６内に格納してもよい。これらのアプリケーションモジュールまたは命令を、１つまたは複数のプロセッサ３１２によって実行してもよい。ストレージサブシステム３０６は、加えて、本開示にしがたって使用されるデータを格納するための保存場所を提供してもよい。ストレージサブシステム３０６は、メモリサブシステム及びファイル／ディスクストレージサブシステム３１０を備えてもよい。
【００３２】
ユーザ３０２が、ユーザコンピューティングデバイス３０４を活用してファイルストレージサブシステム３１０内に格納されている１つまたは複数のデータファイルを開くと、１つまたは複数のプロセッサ３１２は、ファイルストレージサブシステム３１０内の１つまたは複数のレジストリファイルにアクセスして、選択された１つまたは複数のデータファイルを開くために使用され得る１つまたは複数のアプリケーション３０８を特定し得る。たとえば、１つまたは複数のレジストリファイルは、選択された１つまたは複数のデータファイルは、コンピューティングデバイス３０４にインストールされている位置決定アプリケーションを使用して開かれる、と規定してもよい。ファイルストレージサブシステム内に格納されている１つまたは複数のレジストリファイルは、コンピューティングデバイス３０４をユーザ３０２が活用するための許可を確立することを任された１人または複数の管理者によって、提供され得る。
【００３３】
これらの１つまたは複数のレジストリファイルは、さらに、１つまたは複数のポリシーを符号化してもよく、ポリシーは、コンピューティングデバイス３０４のユーザ３０２によって選択された、選択された１つまたは複数のデータファイルが、これらのデータファイルを、コンピューティングデバイス３０４にインストールされているアプリケーション３０８を使用して開いてもよいかどうか、を規定してもよい。位置決定アプリケーションは、１つまたは複数のレジストリファイル内で符号化されているこれらの１つまたは複数のポリシーにアクセスして、選択されたデータファイルが、コンピューティングデバイス３０４の環境内で開かれるかどうか、を判断してもよい。位置決定アプリケーションが、これらのポリシーに少なくとも部分的に基づいて、１つまたは複数のデータファイルが、コンピューティングデバイス３０４にインストールされているアプリケーション３０８を使用して開かれないが、代わりに、仮想コンピューティング環境内のアプリケーションを使用して開かれなければならない、と判断した場合、位置決定アプリケーションは、１つまたは複数のプロセッサ３１２に、１つまたは複数の実行可能命令をネットワークインターフェースサブシステムに送信させ、ネットワークインターフェースサブシステムは、インターフェースを仮想コンピューティング環境サービス３１４に提供してもよい。ネットワークインターフェースサブシステムは、アプリケーション３０８のデータ及び、システムにアクセスする（たとえば、ウェブページを受信する）ための電子要求などの他の情報の送信を可能にしてもよく、ウェブページまたは他の情報などの、要求に対する応答を受信することを可能にし得る。
【００３４】
いったん通信チャネルがコンピューティングデバイス３０４と仮想コンピューティング環境サービス３１４との間で確立されると、１つまたは複数のプロセッサ３１２は、実行可能命令をファイルストレージサブシステム３０６に送信して、１つまたは複数の選択されたデータファイルを仮想コンピューティング環境サービス３１４に送信してもよい。加えて、１つまたは複数のプロセッサ３１２は、ユーザクライアントアプリケーションを実行して、ユーザ３０２が、コンピューティングデバイス３０４を活用して、仮想コンピューティング環境サービス３１４によって提供される仮想コンピューティング環境と相互作用することを可能にし得る。たとえば、一実施形態では、１つまたは複数のプロセッサ３１２は、実行可能命令を仮想コンピューティング環境サービス３１４に送信し、仮想コンピューティング環境サービス３１４は、サービスに、アプリケーションをユーザ３０２の仮想コンピューティング環境内で起動させ、１つまたは複数の提供されたデータファイルを開いてもよい。ユーザ３０２が、１つまたは複数のデータファイルを仮想コンピューティング環境内で使用し終えると、仮想コンピューティング環境サービス３１４は、更新データファイルをコンピューティングデバイス３０４に送信してもよく、１つまたは複数のプロセッサ３１２は、これらの受信データファイルを、ファイルストレージサブシステム３１０に格納されているデータファイルと同期させてもよい。
【００３５】
一実施形態では、仮想コンピューティング環境サービス３１４は、ユーザ３０２が彼／彼女の仮想コンピューティング環境内の１つまたは複数のデータファイルを選択したことに応答して、選択されたデータファイルを開くためのアプリケーションがこの環境内では利用可能でない、と判断する。仮想コンピューティング環境サービス３１４は、さらに、ユーザ３０２のプロファイル内で定められている情報に少なくとも部分的に基づいて、コンピューティングデバイス３０４が、選択されたデータファイルを開くために必要な１つまたは複数のアプリケーション３０８を含む、と判断してもよい。結果として、仮想コンピューティング環境サービス３１４は、１つまたは複数のデータファイルをコンピューティングデバイス３０４に送信してもよく、１つまたは複数のプロセッサ３１２は、受信データファイルをファイルストレージサブシステム３１０内に格納してもよい。さらに、１つまたは複数のプロセッサ３１２は、仮想コンピューティング環境サービス３１４によって規定されるアプリケーション３０８を起動し、アプリケーション３０８に、受信した１つまたは複数のデータファイルを、使用のために開かせ得る。
【００３６】
上述した通り、ユーザは、コンピューティングデバイスを通してオペレーティングシステムインターフェースと相互作用して、コンピューティングデバイス内に格納されている１つまたは複数のデータファイルを開いてもよい。オペレーティングシステムインターフェースは、ＧＵＩであってよく、ユーザは、コンピューティングデバイスにインストールされている１つまたは複数のユーザ入力デバイスを通してＧＵＩを活用して、コンピューティングデバイス内に格納されている、アプリケーション、ファイル構造、及びデータファイルの１つまたは複数のアイコングラフィック描写と相互作用してもよい。したがって、図４は、少なくとも１つの実施形態による、ユーザのコンピューティングデバイス環境４００の例示的な実施例を示しており、そこでは、ユーザは、コンピューティングデバイス内に格納されている１つまたは複数のデータファイル４１２を選択することができる。コンピューティングデバイス環境４００は、１つまたは複数のデータファイルとそこで実行可能なアプリケーションと相互作用するために使用可能な、オペレーティングシステムインターフェースであってよい。
【００３７】
コンピューティングデバイス環境４００は、１つまたは複数のアイコンを含んでもよく、アイコンは、コンピューティングデバイス環境４００内で実行され得る１つまたは複数の機能を表してもよい。たとえば、図４に例示する通り、コンピューティングデバイス環境４００は、コンピュータアイコン４０２を含んでもよく、コンピュータアイコン４０２を使用して、さまざまなストレージデバイス（たとえば、ハードドライブ、など）、周辺デバイス（たとえば、ＣＤ−ＲＯＭドライブ、ＤＶＤドライブ、など）、及びネットワークデバイスにアクセスしてもよい。コンピューティングデバイス環境４００は、さらに、ごみ箱アイコン４０４を含んでもよく、ごみ箱アイコン４０４は、１つまたは複数のデータファイルをコンピューティングデバイス環境４００から削除するために使用され得るアプリケーションへのアクセスを可能にし得る。コンピューティングデバイス環境４００は、また、フォルダアイコン４０６を含んでもよく、フォルダアイコン４０６を使用して、コンピューティングデバイスのファイル構造内の特定のデータファイルコンテナにアクセスしてもよい。図４に例示したアイコンだけがコンピューティングデバイス環境４００内で利用可能であり得るアイコンではなく、追加的及び／または代替的なアイコンを、コンピューティングデバイス環境４００内のさまざまな機能に提供してもよい、ということに留意すべきである。
【００３８】
コンピューティングデバイス環境４００は、さらに、アプリケーションボタン４１６を含んでもよく、アプリケーションボタン４１６を使用して、コンピューティングデバイスにインストールされている１つまたは複数のアプリケーションにアクセスしてもよい。ユーザが、アプリケーションボタン４１６を押すことでアプリケーションを選択すると、コンピューティングデバイスは、そのアプリケーションを新しい環境パネル内で起動させてもよく、環境パネルは、コンピューティングデバイス環境４００上に表示され得る。これは、ユーザが、アプリケーションと相互作用し、１つまたは複数のデータファイルをこの環境パネル内から開くように要求することを可能にし得る。
【００３９】
ユーザが、ユーザインターフェースデバイス（たとえば、カーソル４１４）を使用して、フォルダアイコン４０６を選択すると、コンピューティングデバイスの１つまたは複数のプロセッサは、コンピューティングデバイス環境４００に、環境パネル４０８を表示させてもよく、環境パネル４０８は、コンピューティングデバイス内に格納されている１つまたは複数のデータファイル４１０、４１２の１つまたは複数のアイコン表現を含んでもよい。１つまたは複数のデータファイル４１０、４１２のこれら１つまたは複数のアイコン表現から、ユーザは、カーソル４１４を活用して特定のデータファイル４１２を選択し、データファイル４１２をコンピューティングデバイス環境４００内で開くように要求してもよい。この要求に応答して、コンピューティングデバイスは、選択されたデータファイル４１２に関連付けられた１つまたは複数のレジストリファイルに少なくとも部分的に基づいて、どのアプリケーションを使用して選択されたデータファイル４１２を開くか、を決定してもよい。図５と図６とに関連して以下でより詳細に説明する通り、選択されたデータファイル４１２を位置決定アプリケーションに関連付けてもよく、位置決定アプリケーションは、選択されたデータファイル４１２を、コンピューティングデバイス環境４００内または仮想コンピューティング環境内で、開くかどうかを判断してもよい。いくつかの実施形態では、コンピューティングデバイス環境４００は、また、一度に１人のユーザのみが使用可能であるシングルテナントデスクトップであってもよい、ということに留意すべきである。
【００４０】
上述した通り、ユーザが１つまたは複数のデータファイルを選択すると、コンピューティングデバイスは、１つまたは複数のデータファイルに関連付けられた１つまたは複数のレジストリファイルに少なくとも部分的に基づいて、どのアプリケーションを起動させて選択された１つまたは複数のデータファイルを開くか、を決定してもよい。たとえば、管理者は、１つまたは複数のレジストリファイル内で、１つまたは複数のデータファイルを開き得る前に、コンピューティングデバイスが位置決定アプリケーションを起動させる、と規定してもよい。いくつかの実施形態では、このアプリケーションは、１つまたは複数のレジストリファイル内で符号化されている１つまたは複数のポリシーに少なくとも部分的に基づいて、１つまたは複数の選択されたデータファイルを遠隔仮想コンピューティング環境内で開く、と決定してもよい。したがって、図５は、少なくとも１つの実施形態による、ユーザのコンピューティングデバイス環境５００の例示的な実施例を示しており、選択されたデータファイルは、ポリシー実装に応答して、仮想コンピューティング環境内で、インターフェース５０２を通して活用される。
【００４１】
位置決定アプリケーションが、１つまたは複数のレジストリファイル内で符号化されている１つまたは複数のポリシーに少なくとも部分的に基づいて、１つまたは複数の選択されたデータファイルを遠隔仮想コンピューティング環境内で開く、と決定すると、コンピューティングデバイスは、仮想コンピューティング環境インターフェース５０２を起動させてもよく、仮想コンピューティング環境インターフェース５０２をユーザが使用して、仮想コンピューティング環境と相互作用してもよい。上述した通り、位置決定アプリケーションは、コンピューティングデバイスに、仮想コンピューティング環境サービスとの通信チャネルを確立させて、ユーザが彼／彼女の仮想コンピューティング環境にアクセスすることを可能にし得る。たとえば、仮想コンピューティング環境サービスは、コンピューティングデバイスから、仮想コンピューティング環境内で開く１つまたは複数のデータファイルを受信してもよい。さらに、仮想コンピューティング環境サービスは、実行可能命令をコンピューティングデバイスから受信してもよく、実行可能命令は、仮想コンピューティング環境サービスに、選択された１つまたは複数のデータファイルを開くために使用可能なアプリケーションを起動させ得る。
【００４２】
いったん仮想コンピューティング環境サービスとコンピューティングデバイスとの接続が確立されると、仮想コンピューティング環境サービスは、ユーザがコンピューティングデバイス環境５００内の仮想コンピューティング環境インターフェース５０２を活用して、ユーザの仮想コンピューティング環境にアクセスすることを可能にし得る。仮想コンピューティング環境は、コンピューティングデバイス環境５００内に含まれている機能の多くを含んでもよい。たとえば、仮想コンピューティング環境は、アプリケーションボタン５０４を同様に含んでもよく、アプリケーションボタン５０４を、ユーザが、仮想コンピューティング環境インターフェース５０２を通して使用して、仮想コンピューティング環境内で起動され得る１つまたは複数のアプリケーションを選択してもよい。加えて、仮想コンピューティング環境は、コンピューティングデバイスにインストールされているオペレーティングシステムと同様のオペレーティングシステムに基づいてよいが、いくつかの場合では、仮想コンピューティング環境は、１つまたは複数の選択されたデータファイルの処理をやはり行うことができる別のオペレーティングシステムを活用してもよい。
【００４３】
仮想コンピューティング環境は、アプリケーションをこの環境内で実行すると、アプリケーションパネル５０６を作成してもよく、アプリケーションパネル５０６は、ユーザが、アプリケーションと、仮想コンピューティング環境インターフェース５０２を通して相互作用することを可能にし得る。１つまたは複数のデータファイル５０８を、ユーザに、このアプリケーションパネル５０６内で提示してもよく、それにより、ユーザが、１つまたは複数のデータファイル５０８の内容を、作成、削除、修正、または変更することを可能にし得る。ユーザが１つまたは複数のデータファイル５０８を使用し終えると、ユーザは、アプリケーションパネル５０６を閉じることによって、アプリケーションを終了させてもよい。仮想コンピューティング環境サービスは、更新データファイルをコンピューティングデバイスに送信してもよく、コンピューティングデバイスは、受信データファイルを、その中に格納されている１つまたは複数のデータファイルと同期させてもよい。
【００４４】
上述した通り、ユーザは、彼／彼女のコンピューティングデバイスを活用して、１つまたは複数のデータファイルを、コンピューティングデバイスにインストールされた、または仮想コンピューティング環境内の、１つまたは複数のアプリケーションを使用して開いてもよく、たとえば、ユーザが、コンピューティングデバイス環境内のデータファイルを選択すると、コンピューティングデバイスは、１つまたは複数のレジストリファイル内で符号化されている関連性に少なくとも部分的に基づいて、どのアプリケーションを使用して１つまたは複数のデータファイルを開くか、を決定してもよい。代替的に、これらの１つまたは複数のレジストリファイルは、１つまたは複数のデータファイルを位置決定アプリケーションで分析して、１つまたは複数のデータファイルを、コンピューティングデバイス環境内で、または遠隔仮想コンピューティング環境内で、開くかどうかを決定することを規定してもよい。１つまたは複数のデータファイルが位置決定アプリケーション以外のアプリケーションに関連付けられている場合、または位置決定アプリケーションが、１つまたは複数のデータファイルをコンピューティングデバイス環境内で開くと決定した場合、コンピューティングデバイスは、アプリケーションをコンピューティングデバイス環境内で起動させて、アプリケーションがこれらの選択されたデータファイルを開くことを可能にし得る。したがって、図６は、少なくとも１つの実施形態による、ユーザのコンピューティングデバイス環境６００の例示的な実施例を示しており、そこでは、選択されたデータファイルは、アプリケーションをコンピューティングデバイス環境６００内で起動させることによって活用される。コンピューティングデバイス環境６００は、図４に関連して上記で説明したコンピューティングデバイス環境に類似であってよい。
【００４５】
位置決定アプリケーションが、ユーザによって選択された１つまたは複数のデータファイルを、コンピューティングデバイスにインストールされているアプリケーションを使用して開くと決定した時、または１つまたは複数のデータファイルが、位置決定アプリケーション以外のアプリケーションに関連付けられている時、コンピューティングデバイスは、選択された１つまたは複数のデータファイルを開くために使用され得るアプリケーションを、コンピューティングデバイス環境６００内で起動させてもよい。たとえば、アプリケーションは、起動されると、アプリケーションパネル６０２をコンピューティングデバイス環境６００内で作成してもよく、コンピューティングデバイス環境６００は、ユーザが１つまたは複数のユーザインターフェースデバイス（たとえば、カーソル）を活用してアプリケーションと相互作用することを可能にし得る。アプリケーションは、アプリケーションパネル６０２に、１つまたは複数の選択されたデータファイル６０４の内容を投入してもよく、それにより、コンピューティングデバイスのユーザが、これらの内容を必要に応じて変更することを可能にし得る。いったんユーザが１つまたは複数のデータファイル６０４を使用し終えると、ユーザは、アプリケーションパネル６０２を閉じることによって、アプリケーションを終了させてもよい。これにより、コンピューティングデバイスに、これらの１つまたは複数のデータファイルへの任意の変更を保存させてもよい。
【００４６】
上述した通り、ユーザが彼／彼女のコンピューティングデバイス内に格納されている１つまたは複数のデータファイルを選択すると、コンピューティングデバイスは、１つまたは複数のレジストリファイルに少なくとも部分的に基づいて、これらの１つまたは複数のデータファイルに、コンピューティングデバイス環境を通して、または遠隔仮想コンピューティング環境を通して、アクセスするかどうかを判断するために、これらの１つまたは複数のデータファイルが、位置決定アプリケーションを通した追加的な分析を必要とするかどうか、を判断してもよい。代替的に、１つまたは複数のデータファイルが位置決定アプリケーションに関連付けられていない場合、コンピューティングデバイスは、コンピューティングデバイスにインストールされているアプリケーションを起動させて、１つまたは複数のデータファイルを開き、それらの使用をコンピューティングデバイス環境を通して可能にし得る。したがって、図７は、少なくとも１つの実施形態による、コンピューティング環境を決定するためのプロセス７００の例示的な実施例を示しており、そこでは、選択されたデータファイルは、アプリケーションを使用して活用され得る。プロセス７００を、コンピューティングデバイスの１つまたは複数のプロセッサによって実行してもよく、そこに、ユーザによって選択された１つまたは複数のデータファイルが格納され得る。
【００４７】
ユーザが、コンピューティングデバイス環境（たとえば、オペレーティングシステムインターフェース）を通して、彼／彼女が開き、使用したい１つまたは複数のデータファイルを選択すると、１つまたは複数のプロセッサは、ユーザがこれらの１つまたは複数のデータファイルを選択したことを検出し７０２、これらの１つまたは複数のデータファイルが位置決定アプリケーションに関連付けられているかどうかを判断する７０４。たとえば、１つまたは複数のプロセッサは、コンピューティングデバイスに、選択された１つまたは複数のファイルに関連付けられた１つまたは複数のレジストリファイルにアクセスさせて、どのアプリケーションを使用してこれらの１つまたは複数のデータファイルにアクセスするかを決定してもよい。さらに、レジストリファイルは、１つまたは複数のデータファイルに対して使用されるデフォルトアプリケーションを指定してもよい。一実施形態では、コンピューティングデバイスの管理者は、１つまたは複数のレジストリファイルを生成し、これらのレジストリファイル内で、１つまたは複数のデータファイルがデフォルトでは位置決定アプリケーションに関連付けられていることを符号化する。
【００４８】
代替的な実施形態では、ユーザは、１つまたは複数のデータファイルから成るかたまりを選択し、それらは、異なるファイルの種類であってよい。１つまたは複数のプロセッサは、ユーザが１つまたは複数のファイルから成るこのかたまりを選択したことに応答して、１つまたは複数のファイルから成るかたまりの各ファイルに対して、データファイルが位置決定アプリケーションに関連付けられているかどうかを判断してもよい７０４。たとえば、１つまたは複数のプロセッサは、１つまたは複数のデータファイルから成るかたまりの各データファイルに関連付けられた１つまたは複数のレジストリファイルを評価して、どのアプリケーションを使用してこれらの１つまたは複数のデータファイルにアクセスするか、を決定してもよい。これらの１つまたは複数のレジストリファイルに少なくとも部分的に基づいて、１つまたは複数のプロセッサは、位置決定アプリケーション及び／または他のアプリケーションを、ローカルコンピューティング環境内で、１つまたは複数のデータファイルから成るかたまりの各データファイルに対して起動させてもよい。
【００４９】
１つまたは複数のプロセッサが、選択された１つまたは複数のデータファイルが位置決定アプリケーションに関連付けられていないと判断した場合、１つまたは複数のプロセッサは、コンピューティングデバイスに、選択された１つまたは複数のデータファイルを、コンピューティングデバイスにインストールされている（たとえば、コンピューティングデバイスに対する）ローカルアプリケーションを使用することによって開かせ得る７０６。たとえば、１つまたは複数のプロセッサは、コンピューティングデバイスに、コンピューティングデバイスにインストールされているアプリケーションを起動させ、ユーザが、アプリケーションを活用して選択された１つまたは複数のデータファイルにアクセスすることを可能にし得る。しかしながら、１つまたは複数のデータファイルが位置決定アプリケーションに関連付けられている場合、１つまたは複数のプロセッサは、選択された１つまたは複数のデータファイルを、コンピューティングデバイスにインストールされているアプリケーションを使用してローカルで開くかどうかを判断する７１０ために、コンピューティングデバイスに、位置決定アプリケーションを起動させ得る７０８。
【００５０】
上述した通り、位置決定アプリケーションは、選択された１つまたは複数のデータファイルに関連付けられた１つまたは複数のレジストリファイル内で符号化されている１つまたは複数のポリシーを評価して、これらのデータファイルをコンピューティングデバイス環境内でローカルに開くかどうか、またはこれらのデータファイルを遠隔仮想コンピューティング環境内でのみ開いてもよいかどうか、を判断するように構成され得る。位置決定アプリケーションが、１つまたは複数のデータファイルをローカルで開くと決定した場合、アプリケーションは、この決定を１つまたは複数のプロセスに送信してもよく、プロセスは、それに応答して、コンピューティングデバイスに、選択された１つまたは複数のデータファイルを、コンピューティングデバイスにインストールされているローカルアプリケーションを使用することによって開かせ得る７０６。
【００５１】
１つまたは複数のデータファイルをローカルで開くことができない場合、１つまたは複数のプロセッサは、図５で例示したインターフェースなどの仮想コンピューティング環境インターフェースを起動させてもよく７１２、仮想コンピューティング環境サービスにアクセスし、ユーザが、１つまたは複数のデータファイルを開いてもよい彼／彼女の仮想コンピューティング環境にアクセスすることを可能にし得る。たとえば、１つまたは複数のプロセッサは、実行可能命令をコンピューティングデバイスのネットワークインターフェースサブシステムに送信してもよく、実行可能命令は、ネットワークインターフェースサブシステムに、仮想コンピューティング環境サービスとの通信チャネルを確立させてもよい。その後、１つまたは複数のプロセッサは、仮想コンピューティング環境サービスに、ユーザの仮想コンピューティング環境にアクセスするために必要な１つまたは複数のユーザ認証情報を提供してもよい。これは、仮想コンピューティング環境サービスが、ユーザを認証し、ユーザの仮想コンピューティング環境へのアクセスを提供することを可能にし得る。加えて、１つまたは複数のプロセッサは、選択された１つまたは複数のデータファイルを仮想コンピューティング環境サービスに送信して、それらを仮想コンピューティング環境内で使用することを可能にし得る。代替的な実施形態では、１つまたは複数のプロセッサは、仮想コンピューティング環境を生成するために使用され得る仮想機械インスタンスをプロビジョンするための要求を、仮想コンピューティング環境サービスに送信する。
【００５２】
いったん仮想コンピューティング環境インターフェースを起動すると、１つまたは複数のプロセッサは、実行可能命令を仮想コンピューティング環境サーバに送信してもよく７１４、適切なアプリケーションを仮想コンピューティング環境内で起動させて、１つまたは複数のデータファイルを開いてもよい。これは、仮想コンピューティング環境サービスに、アプリケーションを起動させてもよく、１つまたは複数のデータファイルを仮想コンピューティング環境内で開かせ得る。さらに、これは、ユーザが、仮想コンピューティング環境インターフェースを通して、この遠隔アプリケーションと相互作用し、１つまたは複数の開かれたデータファイルを活用することを可能にし得る。
【００５３】
上述した通り、ユーザのコンピューティングデバイス内に格納されている１つまたは複数のデータファイルを、位置決定アプリケーションに関連付けてもよく、位置決定アプリケーションは、１つまたは複数のデータファイルを、コンピューティング環境内でローカルに、または遠隔仮想コンピューティング環境内で、開くかどうかを判断するように構成され得る。したがって、図８は、少なくとも１つの実施形態による、１つまたは複数のポリシーを活用して、選択されたデータファイルを開いてもよいコンピューティング環境を決定するためのプロセス８００の、例示的な実施例を示している。プロセス８００を、前述の位置決定アプリケーションによって実行してもよく、位置決定アプリケーションは、選択された１つまたは複数のデータファイルに関連付けられた１つまたは複数のレジストリファイル及びユーザポリシーにアクセスして、１つまたは複数のデータファイルを開くかどうかを判断するように構成され得る。さらに、位置決定アプリケーションは、コンピューティングデバイスの１つまたは複数のプロセッサと相互作用して、他のアプリケーションをローカルコンピューティングデバイス環境内で起動させる、または遠隔仮想コンピューティング環境内での１つまたは複数のデータファイルへのアクセスを可能にする仮想コンピューティング環境インターフェースを起動させる、ように構成され得る。
【００５４】
図７に関連して上記で説明した通り、コンピューティングデバイスの１つまたは複数のプロセッサは、ユーザが１つまたは複数のデータファイルを選択したことを検出すると、１つまたは複数のデータファイルを位置決定アプリケーションによって分析するかどうかを判断してもよい。たとえば、１つまたは複数のプロセッサは、１つまたは複数のデータファイルが選択された時にはデフォルトアプリケーションを起動させる、と決定するために、コンピューティングデバイスに、選択された１つまたは複数のデータファイルに関連付けられた１つまたは複数のレジストリファイルにアクセスさせてもよい。１つまたは複数のレジストリファイルが、起動されるデフォルトアプリケーションが位置決定アプリケーションであると規定する場合、１つまたは複数のプロセッサは、このアプリケーションを起動させて、１つまたは複数のデータファイルの分析を実行してもよい。
【００５５】
位置決定アプリケーションを起動すると、アプリケーションは、１つまたは複数のプロセッサから、ユーザ情報及び／または選択された１つまたは複数のデータファイルの識別子を受信してもよい８０２。ユーザ情報及び／または選択された１つまたは複数のデータファイルの識別子は、位置決定アプリケーションが、選択された１つまたは複数のデータファイルに関連付けられ得るコンピューティングデバイス内に格納されている１つまたは複数のレジストリファイルを、特定することを可能にし得る。さらに、ユーザ情報及び／または選択された１つまたは複数のデータファイルの識別子は、位置決定アプリケーションが、特定のユーザ及び選択された１つまたは複数のデータファイルのファイル形式に関するこれらの１つまたは複数のレジストリファイル内に符号化されている任意の関連ポリシーを、識別することを可能にし得る８０４。たとえば、１つまたは複数のポリシーは、特定のデータファイル形式をユーザのコンピュータデバイス内で使用してもよいかどうかを規定してもよい。加えて、１つまたは複数のポリシーは、特定のユーザに対して、１つまたは複数のデータファイルをコンピューティングデバイスにインストールされている任意のアプリケーションを使用して開かない場合があるが、１つまたは複数のデータファイルには仮想コンピューティング環境を通してのみアクセスしてもよい、と規定してもよい。これらの１つまたは複数のポリシーを評価することによって、位置決定アプリケーションは、選択された１つまたは複数のデータファイルをローカルで開くかどうかを判断することができてもよい８０６。
【００５６】
位置決定アプリケーションが、１つまたは複数のポリシーに少なくとも部分的に基づいて、１つまたは複数のデータファイルをローカルで開くと判断した場合、位置決定アプリケーションは、１つまたは複数のプロセッサに、ローカルアプリケーションをコンピューティングデバイス環境内で起動させて８０８、ローカルアプリケーションが１つまたは複数のデータファイルを開くことができるようにし、ユーザが、これらの１つまたは複数のデータファイルを、ローカルアプリケーションを通して活用できるようにし得る。代替的に、位置決定アプリケーションが、１つまたは複数のデータファイルを遠隔仮想コンピューティング環境内で開くと判断した場合、位置決定アプリケーションは、１つまたは複数のプロセッサに、仮想コンピューティング環境インターフェースを起動させ８１０、それにより、ユーザが、彼／彼女のコンピューティングデバイスを活用して彼／彼女の仮想コンピューティング環境にアクセスし、１つまたは複数のデータファイルを仮想コンピューティング環境内で開くことを可能にし得る。
【００５７】
上述した通り、ユーザは、仮想コンピューティング環境インターフェースを活用して、仮想コンピューティング環境内に格納されている１つまたは複数のデータファイルを選択してもよい。仮想コンピューティング環境は、１つまたは複数のアプリケーションを含んでもよく、そのアプリケーションを使用して１つまたは複数のデータファイルを開いてもよい。しかしながら、いくつかの実施形態では、仮想コンピューティング環境は、選択された１つまたは複数のデータファイルを開くために必要なアプリケーションを含まない場合がある。そのような場合では、仮想コンピューティング環境サービスの管理サブシステムは、ユーザのコンピューティングデバイスまたは他のコンピューティング環境が適切なアプリケーションを含むかどうかを判断する必要があり得る。さらに、サービスは、ユーザがこれらのデータファイルをこれらの環境のうちの任意のものの中で開く権限を与えられているかどうかを判断する必要があり得る。したがって、図９は、少なくとも１つの実施形態による、データファイルを使用するためのアプリケーションが利用可能でないという判断に応答して、データファイルを別のコンピューティング環境に転送するためのプロセス９００の例示的な実施例を示している。プロセス９００を、前述の仮想コンピューティング環境サービスによって実行してもよく、仮想コンピューティング環境サービスは、ユーザに適応可能な１つまたは複数のポリシーを評価し、１つまたは複数のコンピューティング環境と相互作用するように構成され得る。
【００５８】
ユーザが仮想コンピューティング環境と相互作用すると、彼／彼女は、この環境内に格納されている場合がある１つまたは複数のデータファイルを選択してもよい。これは、仮想コンピューティング環境サービスが、ユーザが仮想コンピューティング環境内の１つまたは複数のデータファイルを選択したことを検出する９０２と、選択されたデータファイルを開くために起動され得るアプリケーションがこの環境内で利用可能かどうかを判断する９０４と、を可能にし得る。たとえば、仮想コンピューティングシステムサービスは、仮想コンピューティング環境を生成するために使用される仮想機械画像を評価して、どのアプリケーションが環境内に含まれているかを判断してもよい。選択された１つまたは複数のデータファイルを開くために使用され得るアプリケーションが仮想コンピューティング環境内で利用可能である場合、仮想コンピューティング環境サービスは、適切なアプリケーションを起動させ９０６、１つまたは複数のデータファイルを仮想コンピューティング環境インターフェースを通して使用することを可能にし得る。
【００５９】
アプリケーションが仮想コンピューティング環境内で利用可能でない場合、仮想コンピューティング環境サービスは、ユーザのコンピューティングデバイス（たとえば、ローカルコンピューティングデバイス環境）が、選択された１つまたは複数のデータファイルを開くために使用され得る１つまたは複数のアプリケーションを含むかどうかを判断してもよい９０８。たとえば、仮想コンピューティング環境サービスは、ユーザプロファイルデータストアにアクセスして、仮想コンピューティング環境のユーザに関連付けられたユーザプロファイルを特定してもよい。このユーザプロファイルは、ユーザのコンピューティングデバイスにインストールされている場合がある１つまたは複数のアプリケーションを規定してもよい。代替的に、仮想コンピューティング環境サービスは、コンピューティングデバイスにインストールされている１つまたは複数のアプリケーションに関する情報を要求するために、１つまたは複数のＡＰＩコールをユーザのコンピューティングデバイスに送信してもよい。いずれの方法も、仮想コンピューティング環境サービスが、必要なアプリケーションがユーザのコンピューティングデバイスにインストールされているかどうかを判断することを可能にし得る９１０。
【００６０】
仮想コンピューティング環境サービスは、コンピューティングデバイスが１つまたは複数のデータファイルを開くために使用され得るアプリケーションを含まない場合、ユーザに、１つまたは複数のデータファイルを開くための追加的なオプションを通知してもいい９１２。たとえば、いくつかの実施形態では、仮想コンピューティングシステムサービスは、ユーザに、選択された１つまたは複数のデータファイルを開くための１つまたは複数の適切なアプリケーションを含み得る他の仮想機械画像を通知し、彼／彼女がこの特定の仮想機械画像を物理ホスト上でインスタンス化したいかどうか、をユーザが決定できるようにしてもよい。代替的に、仮想コンピューティング環境サービスは、アプリケーションを見つけられないために、１つまたは複数のデータファイルを開くためのユーザの要求を拒否してもよい。代替的な実施形態では、仮想コンピューティング環境サービスは、ユーザが仮想コンピューティング環境アプリケーションマーケットプレースにアクセスすることを可能にしてもよく、そこで、ユーザは、１つまたは複数のデータファイルを開くために必要な１つまたは複数のアプリケーションのライセンスを取得することができ得る。ライセンスをこのマーケットプレースから取得すると、仮想コンピューティング環境サービスは、１つまたは複数のアプリケーションをインストールし、ライセンスが有効な限り、ユーザがこれらの１つまたは複数のアプリケーションを活用することを可能にすることによって、ユーザの仮想コンピューティング環境を補ってもよい。
【００６１】
代替的に、１つまたは複数のデータファイルを開くために必要な１つまたは複数のアプリケーションが、ユーザのコンピューティングデバイス内で利用可能である場合、仮想コンピューティング環境サービスは、選択された１つまたは複数のデータファイルをユーザのコンピューティングデバイス環境内で開くための１つまたは複数のポリシーを特定してもよい９１４。たとえば、仮想コンピューティング環境サービスは、ユーザプロファイルデータストア内のユーザのプロファイルにアクセスして、コンピューティングデバイスの管理者または他の管理機関によって定められた、これらの１つまたは複数のポリシーを特定してもよい。１つまたは複数のポリシーは、どのデータファイル種類または形式を、ユーザのコンピューティングデバイス環境内で開いてもよい、及び／またはこの環境内で開いてはいけないか、を規定してもよい。これらの１つまたは複数のポリシーに少なくとも部分的に基づいて、仮想コンピューティング環境サービスは、選択された１つまたは複数のデータファイルを、ユーザのコンピューティングデバイスにインストールされているアプリケーションを使用して開いてもよいかどうか、を判断してもよい９１６。
【００６２】
１つまたは複数のデータファイルをユーザのコンピューティングデバイス環境内で開いてはいけないと判断した結果として、仮想コンピューティング環境サービスは、ユーザに、１つまたは複数のデータファイルを開くための任意の追加的なオプションを通知してもよい９１２。しかしながら、１つまたは複数のデータファイルをユーザのコンピューティングデバイス環境内で開いてもよい場合、仮想コンピューティング環境サービスは、選択された１つまたは複数のデータファイルをユーザのコンピューティングデバイスに提供し９１８、１つまたは複数の実行可能命令をコンピューティングデバイスに送信してもよく、実行可能命令は、実行されると、コンピューティングデバイスに、１つまたは複数のデータファイルをユーザのコンピューティングデバイス環境内で使用することを可能にするために必要な１つまたは複数のアプリケーションを、起動させ得る。
【００６３】
図１０は、さまざまな実施形態による態様を実装するための例示的な環境１０００の態様を示している。理解される通り、ウェブベースの環境を説明の目的のために使用するが、別の環境を必要に応じて使用して、さまざまな実施形態を実装してもよい。環境は、電子クライアントデバイス１００２を含み、電子クライアントデバイス１００２は、要求、メッセージ、または情報を、適切なネットワーク１００４を介して送信及び／または受信するように、また、いくつかの実施形態では、情報をデバイスのユーザに伝えるように、動作可能である任意の適切なデバイスを含むことができる。そのようなクライアントデバイスの実施例は、パーソナルコンピュータ、携帯電話、携帯型メッセージデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、携帯情報端末、組込コンピュータシステム、電子ブックリーダ、及び同様なものを含む。ネットワークは、任意の適切なネットワークを含むことができ、それには、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、衛星ネットワーク、または任意の他のそのようなネットワーク、及び／またはそれらの組み合わせが含まれる。そのようなシステムのために使用される構成要素は、選択されたネットワーク及び／または環境に少なくとも部分的に依存し得る。そのようなネットワークを介して通信するためのプロトコル及び構成要素は、よく知られており、本明細書では詳細に説明しない。ネットワークを介した通信は、有線接続または無線接続によって、及びそれらの組み合わせによって、可能になり得る。本実施例では、ネットワークは、要求を受信し、それに応じてコンテンツを提供するためのウェブサーバ１００６を含む環境としてインターネットを含むが、当業者に明白な通り、他のネットワークでは、同様の目的を果たす代替的なデバイスを使用することができる。
【００６４】
例示的な環境は、少なくとも１つのアプリケーションサーバ１００８とデータストア１０１０とを含む。繋がれまたは構成され、データを適切なデータストアから取得するなどのタスクを実行するように相互作用し得る、いくつかのアプリケーションサーバ、層または他の要素、プロセスまたは構成要素、があり得るということを理解すべきである。本明細書で使用するサーバを、ハードウェアデバイスまたは仮想コンピュータシステムなどのさまざまな方法で実装してもよい。いくつかの文脈では、サーバは、コンピュータシステム上で実行されているプログラミングモジュールを指してもよい。本明細書で使用する通り、特段に述べず、または文脈から明らかでない限り、「データストア」という用語は、データを格納し、それにアクセスし、それを読み出すことができる、任意のデバイスまたはデバイスの組み合わせを指し、データストアは、任意の組み合わせ及び数の、データサーバ、データベース、データストレージデバイスならびにデータストレージ媒体を、標準環境、分散環境、またはクラスター環境内に、含んでもよい。アプリケーションサーバは、データアクセスの一部または全部及びアプリケーションのビジネス論理を扱うクライアントデバイスのための、１つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと統合するための、任意の適切なハードウェア、ソフトウェア及びファームウェアを含むことができる。アプリケーションサーバは、アクセス制御サービスを、データストアと協力して提供してもよく、テキスト、グラフィック、オーディオ、ビデオを含むがこれらに限定されないコンテンツ、及び／またはユーザに提供するために使用可能な他のコンテンツ、を生成することができ、コンテンツは、ユーザに、ウェブサーバによって、ハイパーテキストマークアップ言語（「ＨＴＭＬ」）、拡張マークアップ言語（「ＸＭＬ」）、ジャバスクリプト、カスケーディングスタイルシート（「ＣＳＳ」）、または他の適切なクライアント側構造化言語の形式で、提供され得る。クライアントデバイスに転送されるコンテンツを、クライアントデバイスで処理して、１つまたは複数の形式のコンテンツを提供してもよく、形式には、ユーザが、聴覚的、視覚的に、及び／または手触り、味、及び／または匂いを含む他の感覚を通して感知可能な形式を含むが、これらに限定されない。すべての要求と応答との取り扱い、及びクライアントデバイス１００２とアプリケーションサーバ１００８との間でのコンテンツの提供は、ＰＨＰ：ハイパーテキストプリプロセッサ（「ＰＨＰ」）、Ｐｙｔｈｏｎ、Ｒｕｂｙ、Ｐｅｒｌ、Ｊａｖａ、ＨＴＭＬ、ＸＭＬ、または本実施例では別の適切なサーバ側構造化言語を使用するウェブサーバによって扱われ得る。本明細書で説明する構造化コードを、本明細書のどこかで説明する任意の適切なデバイスまたはホストマシン上で実行することができるために、ウェブサーバ及びアプリケーションサーバは必須ではなく、単に例示的な構成要素である、ということを理解すべきである。さらに、１つのデバイスによって実行されるとして本明細書で説明する動作は、文脈から明らかでない限り、分散システム及び／または仮想システムを形成し得る複数のデバイスによって集合的に実行され得る。
【００６５】
データストア１０１０は、いくつかの別々のデータテーブル、データベース、データ文書、動的データストレージスキーム、及び／または本開示の特定の態様に関するデータを格納するための他のデータストレージ機構と媒体、を含むことができる。たとえば、例示のデータストアは、製品データ１０１２及びユーザ情報１０１６を格納するための機構を含んでもよく、それを使用して、製品側のコンテンツを提供することができる。データストアは、また、ログデータ１０１４を格納するための機構を含んで示されており、その機構を、報告、分析、または他のそのような目的のために使用することができる。ページ画像情報及びアクセス権情報などの、データストア内に格納される必要があり得る多くの他の態様があり得、それらを、上記で挙げた機構のうちの任意のものの中に適切に、またはデータストア１０１０内の追加的な機構の中に、格納することができる、ということを理解すべきである。データストア１０１０は、それに関連付けられた論理を通して、命令をアプリケーションサーバ１００８から受信し、それに応じて、データを取得し、更新し、または処理するように動作可能である。アプリケーションサーバ１００８は、受信命令に応答して、静的データ、動的データ、または静的データと動的データとの組み合わせを提供してもよい。ウェブログ（ブログ）、ショッピングアプリケーション、ニュースサービス及び他のそのようなアプリケーションの中で使用されるデータなどの動的データは、本明細書で説明したサーバ側構造化言語によって生成され得、またはアプリケーションサーバ上またはその制御のもとに動作するコンテンツ管理システム（「ＣＭＳ」）によって提供され得る。一実施例では、ユーザは、ユーザによって操作されるデバイスを通して、特定の種類のアイテムに対する検索要求を提出してもよい。この場合、データストアは、ユーザ情報にアクセスして、ユーザの身元を確認してもよく、その種類のアイテムについての情報を取得するために、カタログ詳細情報にアクセスすることができる。情報を、その後、ユーザがユーザデバイス１００２のブラウザを介して見ることができるウェブページ上の結果リスト内などで、ユーザに返すことができる。関心を持っている特定のアイテムの情報を、ブラウザの専用ページまたはウィンドウで見ることができる。しかしながら、本開示の実施形態は、必ずしもウェブページという文脈に限定されず、要求が必ずしもコンテンツに対する要求でない一般的要求を処理することに、より一般的に適用可能であり得る、ということに留意すべきである。
【００６６】
各サーバは、通常、そのサーバの一般的管理及び動作のための実行可能プログラム命令を提供するオペレーティングシステムを含み、また、通常、サーバのプロセッサによって実行されると、サーバに意図された機能を実行させる命令を格納した、コンピュータ可読ストレージ媒体（たとえば、ハードディスク、ランダムアクセスメモリ、リードオンリーメモリ、など）を含む。オペレーティングシステムの適切な実装態様及びサーバの一般的機能は、知られており、または市販であり、当業者によって、特に本明細書の開示に照らして、容易に実装される。
【００６７】
環境は、一実施形態では、１つまたは複数のコンピュータネットワークまたは直接接続を使用する通信リンクを介して相互接続された、いくつかのコンピュータシステム及び構成要素を活用する分散及び／または仮想コンピューティング環境である。しかしながら、そのようなシステムは、図１０に例示したものよりも少ないまたは多い数の構成要素を有するシステム内で、等しく上手く動作することができる、ということを当業者は理解する。したがって、図１０のシステム１０００の描写は、本来例示的であり、本開示の範囲を限定するものではない、と解釈されるべきである。
【００６８】
本開示の実施形態を、以下の条項を考慮して説明することができる。
１．実行可能命令を有して構成されたコンピューティングデバイスの制御のもとで、
データファイルを開くためのコマンドを示す、前記コンピューティングデバイスの入力デバイスへの入力を検出することであって、前記データファイルが、前記コンピューティングデバイスにインストールされている少なくとも１つのアプリケーションを使用してアクセス可能であり、前記データファイルが、対応するファイル種類を有する、検出することと、
前記ファイル種類に関連付けられたポリシーに少なくとも部分的に基づいて、前記データファイルを、前記コンピューティングデバイスの前記環境とは別の仮想コンピューティング環境内で開く、と決定することと、
前記データファイルを、前記仮想コンピューティング環境に提供することと、
１つまたは複数の実行可能命令を送信して、サーバに、前記データファイルを前記仮想コンピューティング環境内で開くために使用可能なアプリケーションを起動させることと、
を備える、コンピュータ実装方法。
【００６９】
２．前記サーバから、修正データファイルを受信することであって、前記修正データファイルが、前記データファイルを前記アプリケーションを使用して前記仮想コンピューティング環境内で開いた結果として、作成される、受信することと、
前記データファイルと前記修正データファイルとを同期させることと、
をさらに備える、条項１に記載のコンピュータ実装方法。
【００７０】
３．前記ポリシーが、前記コンピュータシステムのオペレーティングシステムのレジストリファイル内で符号化されており、前記レジストリファイルが、前記対応するファイル種類を有するデータファイルを、前記データファイルを前記仮想コンピューティング環境内で開くと決定するように構成された位置決定アプリケーションに関連付ける、と規定する、条項１または条項２に記載のコンピュータ実装方法。
【００７１】
４．前記データファイルを前記仮想コンピューティング環境内で開くと決定した結果として、前記コンピューティングデバイスのユーザに関連付けられた１つまたは複数の認証情報を提供して、前記コンピューティングデバイスを、前記仮想コンピューティング環境にアクセスするために使用することを可能にすること、をさらに備える、条項１から条項３条いずれかに記載のコンピュータ実装方法。
【００７２】
５．システムであって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサによって実行されると、前記システムに、
第１のコンピューティング環境において、データファイルを開くためのコマンドを検出することと、
前記データファイルに関連付けられたポリシーに少なくとも部分的に基づいて、前記データファイルを第２のコンピューティング環境内で開くと決定することであって、前記第１のコンピューティング環境及び前記第２のコンピューティング環境が、ネットワークによって分けられている、決定することと、
前記データファイルを前記第２のコンピューティング環境内で開かせる情報を、前記第２のコンピューティング環境に送信することと、
を行わせる命令を含むメモリと、
を備える、前記システム。
【００７３】
６．前記データファイルが、前記第１のコンピューティング環境内で使用可能な少なくとも１つのアプリケーションを使用してアクセス可能である、条項５に記載のシステム。
【００７４】
７．前記ポリシーが、前記データファイルに関連付けられたレジストリファイル内で符号化されている、条項５または条項６に記載のシステム。
【００７５】
８．前記第２のコンピューティング環境が、前記第１のコンピューティング環境のネットワークインターフェースを通してアクセス可能なシングルテナント仮想コンピューティング環境である、条項５から条項７のうちのいずれかに記載のシステム。
【００７６】
９．前記命令が、前記１つまたは複数のプロセッサによって実行されると、前記システムに、
前記第１のコンピューティング環境において、第２のデータファイルを開くためのコマンドを検出することと、
前記第２のデータファイルに関連付けられたポリシーに少なくとも部分的に基づいて、前記第２のデータファイルを、アプリケーションを使用して、前記第１のコンピューティング環境内で開く、と決定することと、
前記アプリケーションを起動させて、前記第２のデータファイルの使用を可能にすることと、
をさらに行わせる、条項５から条項８条のいずれかに記載のシステム。
【００７７】
１０．前記第１のコンピューティング環境が、前記システムに前記ネットワークを介してストリーミングされるシングルテナント仮想コンピューティング環境である、条項５から条項９のいずれかに記載のシステム。
【００７８】
１１．前記命令が、前記１つまたは複数のプロセッサによって実行されると、前記システムに、
前記第２のコンピューティング環境から、修正データファイルを受信することであって、前記修正データファイルが、前記データファイルを前記アプリケーションを使用して前記第２のコンピューティング環境内で開いた結果として、作成される、受信することと、
前記データファイルと前記修正データファイルとを、前記第１のコンピューティング環境内で同期させることと、
をさらに行わせる、条項５から条項１０のいずれかに記載のシステム。
【００７９】
１２．前記命令が、前記１つまたは複数のプロセッサによって実行されると、前記システムに、前記データファイルを前記第２のコンピューティング環境で開くと決定した結果として、前記第１のコンピューティング環境のユーザコンピューティングデバイスに関連付けられた１つまたは複数の認証情報を提供して、前記ユーザコンピューティングデバイスが前記第２のコンピューティング環境にアクセスすることを可能にすること、をさらに行わせる、条項５から条項１１のいずれかに記載のシステム。
【００８０】
１３コンピュータシステムの１つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、少なくとも、
第１のコンピューティング環境内で、対応するファイル種類を有するデータファイルを開くためのコマンドを検出したことに応答して、
前記ファイル種類に関連付けられたポリシーに少なくとも部分的に基づいて、シングルテナント仮想コンピューティング環境を、前記コンピュータシステムがアクセス可能な複数のシングルテナント仮想コンピューティング環境から選択することと、
前記データファイルを前記選択されたシングルテナント仮想コンピューティング環境内で開かせる情報を、前記選択されたコンピューティング環境に送信することと、
を行わせる実行可能命令をその上に格納して有する、非一時的コンピュータ可読ストレージ媒体。
【００８１】
１４．前記複数のシングルテナント仮想コンピューティング環境が、前記第１のコンピューティング環境を含む、条項１３に記載の非一時的コンピュータ可読ストレージ媒体。
【００８２】
１５．前記命令が、前記１つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、前記第１のコンピューティング環境のユーザコンピューティングデバイスに関連付けられた１つまたは複数の認証情報を提供して、前記ユーザコンピューティングデバイスが前記選択されたシングルテナント仮想コンピューティング環境にアクセスすることを可能にすること、を行わせる命令をさらに備える、条項１３または条項１４に記載の非一時的コンピュータ可読ストレージ媒体。
【００８３】
１６．前記第１のコンピューティング環境が、前記選択されたシングルテナント仮想コンピューティング環境とは別のオペレーティングシステムを含む、条項１３から条項１５のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
【００８４】
１７．
前記命令が、前記１つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、前記シングルテナント仮想コンピューティング環境を前記複数のシングルテナント仮想コンピューティング環境から選択した結果として、前記選択されたシングルテナント仮想コンピューティング環境をプロビジョンさせる情報を送信すること、を行わせる命令をさらに含む、条項１３から条項１６のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
【００８５】
１８．前記ファイル種類に関連付けられた前記ポリシーが、前記シングルテナント仮想コンピューティング環境の序列を、前記複数のシングルテナント仮想コンピューティング環境のうちの各シングルテナント仮想環境の１つまたは複数のセキュリティ態様に少なくとも部分的に基づいて規定する、条項１３から条項１７のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
【００８６】
１９．前記ポリシーが、前記第１のコンピューティング環境のオペレーティングシステムのレジストリファイル内で符号化されており、前記レジストリファイルが、前記対応するファイル種類を有するデータファイルを、前記データファイルを前記選択されたシングルテナント仮想コンピューティング環境内で開くと決定するように構成された位置決定アプリケーションに関連付ける、と規定する、条項１３から条項１８のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
【００８７】
２０．前記データファイルが、前記第１のコンピューティング環境内で使用可能な少なくとも１つのアプリケーションを使用してアクセス可能である、条項１３から条項１９のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
【００８８】
さまざまな実施形態を、さらに、多種多様の動作環境内で実装することができ、動作環境は、いくつかの場合では、１つまたは複数のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含むことができ、それを使用して、任意の数のアプリケーションを動作させることができる。ユーザデバイスまたはクライアントデバイスは、標準オペレーティングシステムを実行しているデスクトップコンピュータ、ノートパソコン、またはタブレットコンピュータなどの多数の汎用パーソナルコンピュータと、モバイルソフトウェアを実行しており、多数のネットワークプロトコルとメッセージングプロトコルとをサポートすることができる、セルラーデバイス、ワイヤレスデバイス及び携帯型デバイスのうちの任意のものを含むことができる。そのようなシステムは、また、さまざまな市販のオペレーティングシステムのうちの任意のもの及び他の知られているアプリケーションを、開発とデータベース管理などの目的のために実行している、多数のワークステーションを含むことができる。これらのデバイスは、また、ダミー端末、シンクライアント、ゲームシステム、及びネットワークを介して通信することができる他のデバイスなどの、他の電子デバイスを含むことができる。これらのデバイスは、また、仮想マシン、ハイパーバイザー、及びネットワークを介して通信することができる他の仮想デバイスなどの、仮想デバイスを含むことができる。
【００８９】
本開示のさまざまな実施形態は、当業者がよく知っているであろう少なくとも１つのネットワークを、さまざまな市販のプロトコルのうちの任意のものを使用した通信をサポートするために活用し、プロトコルは、伝送制御プロトコル／インターネットプロトコル（「ＴＣＰ／ＩＰ」）、ユーザデータグラムプロトコル（「ＵＤＰ」）、オープンシステムインターコネクション（「ＯＳＩ」）モデルのさまざまな層内で動作するプロトコル、ファイル転送プロトコル（「ＦＴＰ」）、Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ（「ＵｐｎＰ」）、ネットワークファイルシステム（「ＮＦＳ」）、Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ（「ＣＩＦＳ」）、及びＡｐｐｌｅＴａｌｋなどである。ネットワークは、たとえば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、衛星ネットワーク、及びそれらの任意の組み合わせであってよい。
【００９０】
ウェブサーバを活用する実施形態では、ウェブサーバは、さまざまなサーバアプリケーションまたは中間アプリケーションのうちの任意のものを実行することができ、ウェブサーバには、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）サーバ、ＦＴＰサーバ、共通ゲートウェイインターフェース（「ＣＧＩ」）サーバ、データサーバ、ジャバサーバ、アパッチサーバ、及びビジネスアプリケーションサーバが含まれる。サーバ（複数可）は、また、１つまたは複数のウェブアプリケーションを実行することなどによって、プログラムまたはスクリプトを、ユーザデバイスからの要求に応じて実行することができ、ウェブアプリケーションは、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃、またはＣ＋＋などの任意のプログラム言語、またはＲｕｂｙ、ＰＨＰ、Ｐｅｒｌ、Ｐｙｔｈｏｎ、またはＴＣＬなどの任意のスクリプト言語、並びにそれらの組み合わせで記述された、１つまたは複数のスクリプトまたはプログラムとして実装され得る。サーバ（複数可）は、また、データベースサーバを含んでもよく、それには、Ｏｒａｃｌｅ（登録商標）とＭｉｃｒｏｓｏｆｔ（登録商標）とＳｙｂａｓｅ（登録商標）及びＩＢＭ（登録商標）からの市販のもの、ＭｙＳＱＬ、Ｐｏｓｔｇｒｅｓ、ＳＱＬｉｔｅ、ＭｏｎｇｏＤＢなどのオープンソースサーバ、ならびに構造化データまたは非構造化データを格納し、読み出し、それにアクセスすることができる任意の他のサーバが、限定せずに含まれる。データベースサーバは、テーブルベースサーバ、文書ベースサーバ、非構造化サーバ、関係型サーバ、非関係型サーバ、またはこれらの及び／または他のデータベースサーバの組み合わせを含んでもよい。
【００９１】
環境は、上記で説明した通り、さまざまなデータストアと他のメモリ及びストレージ媒体を含むことができる。これらは、コンピュータのうちの１つまたは複数にローカルな（及び／またはその中に存在する）ストレージ媒体上、またはネットワーク内のコンピュータの任意のものまたは全部から離れているストレージ媒体上など、さまざまな場所に存在することができる。特定のセットの実施形態では、情報は、当業者がよく知っているストレージエリアネットワーク（「ＳＡＮ」）内に存在してもよい。同様に、コンピュータ、サーバ、またはネットワークデバイスによる機能を実行するために必要なファイルを、必要に応じて、ローカル及び／または遠隔で格納してもよい。システムがコンピュータ制御デバイスを含む場合、各そのようなデバイスは、バスを介して電気的に結合され得るハードウェア要素を含むことができ、要素は、たとえば、少なくとも１つの中央処理装置（「ＣＰＵ」または「プロセッサ」）、少なくとも１つの入力デバイス（たとえば、マウス、キーボード、コントローラ、タッチ画面、またはキーパッド）、及び少なくとも１つの出力デバイス（たとえば、表示デバイス、プリンタ、またはスピーカー）を含む。そのようなシステムは、また、１つまたは複数のストレージデバイスを含んでもよく、それらは、ディスクドライブ、ランダムアクセスメモリ（「ＲＡＭ」）またはリードオンリーメモリ（「ＲＯＭ」）などの光ストレージデバイス及び半導体ストレージデバイス、ならびに取り外し可能媒体デバイス、メモリカード、フラッシュカード、などである。
【００９２】
そのようなデバイスは、また、コンピュータ可読ストレージ媒体リーダー、通信デバイス（たとえば、モデム、ネットワークカード（無線または有線）、赤外線通信デバイス、など）、及び上記で説明した作業メモリを含むことができる。コンピュータ可読ストレージ媒体リーダーを、コンピュータ可読ストレージ媒体と接続することができ、またはそれを受け入れるように構成することができ、コンピュータ可読ストレージ媒体は、遠隔、ローカル、固定及び／または取り外し可能なストレージデバイスと、コンピュータ可読情報を一時的及び／またはより永久的に含み、格納し、送信し、読み出すためのストレージ媒体を表している。システム及びさまざまなデバイスは、また、通常、少なくとも１つの作業メモリデバイス内に配置された、多数のソフトウェアアプリケーション、モジュール、サービス、または他の要素を含み、それには、オペレーティングシステム、及びクライアントアプリケーションまたはウェブブラウザなどのアプリケーションプログラムが含まれる。代替的な実施形態は、上記で説明したものの多数の変形物を有することができる、ということを理解すべきである。たとえば、特注ハードウェアも使用してもよく、及び／または特定の要素を、ハードウェア、ソフトウェア（アプレットなどの携帯型ソフトウェアを含む）、または両方で実装してもよい。さらに、ネットワーク入力／出力デバイスなどの他のコンピューティングデバイスへの接続を使用してもよい。
【００９３】
コードまたはコードの一部を格納するためのストレージ媒体及びコンピュータ可読媒体は、当技術分野で知られ、または使用される任意の適切な媒体を含むことができ、それには、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の保管及び／または送信のための任意の方法または技術で実装された、揮発性及び非揮発性媒体、取り外し可能及び固定媒体、などであるがこれらに限定されないストレージ媒体と通信媒体とを含むが、それらには、ＲＡＭ、ＲＯＭ、電気的消去可能プログラマブルリードオンリーメモリ（「ＥＥＰＲＯＭ」）、フラッシュメモリまたは他のメモリ技術、コンパクトディスクリードオンリーメモリ（「ＣＤ−ＲＯＭ」）、デジタル多用途ディスク（ＤＶＤ）もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、もしくは所望の情報を格納するために使用され得、システムデバイスによってアクセスされ得る、任意の他の媒体が含まれる。本明細書で提供した開示と教示とに基づいて、当業者は、さまざまな実施形態を実装するための他のやり方及び／または方法を理解する。
【００９４】
本明細書及び図面は、したがって、限定的というよりも、例示的な意味で解釈されるものである。しかしながら、特許請求の範囲に記載する本発明の広い精神と範囲とから逸脱せずに、さまざまな修正と変更をそれらに加えてもよいことは明白である。
【００９５】
他の変形物は、本開示の精神の中に含まれる。したがって、開示の手法は、さまざまな修正物と代替的構造との影響を受けやすいが、それらの特定の例示的な実施形態が図面に示され、上記で詳細に説明された。しかしながら、本発明を開示した特定の形態（複数可）に限定する意図はなく、反対に、意図することは、添付の特許請求の範囲で定義する本発明の精神と範囲とに含まれるすべての修正物、代替的構造及び同等物を網羅することである、ということを理解すべきである。
【００９６】
開示の実施形態を説明する文脈における（特に以下の特許請求の範囲の文脈における）、「ａ」、「ａｎ」、及び「ｔｈｅ」という用語と、同様な指示の使用は、本明細書で特段に示さない限り、または文脈から明らかに矛盾しない限り、単数と複数の両方に及ぶものと解釈される。「ｃｏｍｐｒｉｓｉｎｇ（備える）」、「ｈａｖｉｎｇ（有する）」、「ｉｎｃｌｕｄｉｎｇ（含む）」、及び「ｃｏｎｔａｉｎｉｎｇ（含む）」という用語は、特段に述べない限り、オープンエンドな用語（つまり、「含むが、限定されない」を意味する）として解釈されるものである。「ｃｏｎｎｅｃｔｅｄ（接続された）」という用語は、修飾されておらず、物理的接続を指している時は、何か間に介在するものがあったとしても、部分的または全体的に含まれている、取り付けられている、または結合されている、と解釈されるものである。本明細書における値の範囲の列挙は、単に、その範囲内の各１つ１つの値を個々に指すことの簡略方法となることを意図し、本明細書で特段に示さない限り、各１つ１つ値は、あたかもそれが個々に本明細書で列挙されたかのように、本明細書に組み込まれる。「ｓｅｔ（セット）」（たとえば、「ａ  ｓｅｔ  ｏｆ  ｉｔｅｍｓ（アイテムのセット）」）または「ｓｕｂｓｅｔ（サブセット）」という用語は、特段に述べない限り、または文脈から矛盾しない限り、１つまたは複数のメンバーを備える非空の集合であると解釈されるものである。さらに、特段に述べない限り、または文脈から矛盾しない限り、対応するセットの「ｓｕｂｓｅｔ（サブセット）」という用語は、必ずしも、対応するセットの適切なサブセットを示してはおらず、サブセットと対応するセットは、等しい場合がある。
【００９７】
「Ａ、Ｂ及びＣのうちの少なくとも１つ」という形式の表現などの接続言語または「Ａ、Ｂ及びＣのうちの少なくとも１つ」は、特段に述べない限り、または文脈から明らかに矛盾しない限り、アイテム、期間、などが、ＡもしくはＢまたはＣ、またはＡ及びＢならびにＣから成るセットの任意の非空のサブセット、のいずれかであり得ることを示すために一般に使用される文脈で理解される。たとえば、３つのメンバーを有するセットの例示的な実施例では、「Ａ、Ｂ及びＣのうちの少なくとも１つ」という接続表現、及び「Ａ、Ｂ及びＣのうちの少なくとも１つ」は、以下のセット、｛Ａ｝、｛Ｂ｝、｛Ｃ｝、｛Ａ、Ｂ｝、｛Ａ、Ｃ｝、｛Ｂ、Ｃ｝、｛Ａ、Ｂ、Ｃ｝のうちの任意のものを指す。したがって、そのような接続言語は、一般に、特定の実施形態が、Ａのうちの少なくとも１つ、Ｂのうちの少なくとも１つ、及びＣのうちの少なくとも１つ、がそれぞれ存在することを必要とする、ということを暗示するようには意図されていない。
【００９８】
本明細書で説明したプロセスの動作を、本明細書で特段に述べない限り、または文脈から明らかに矛盾しない限り、任意の適切な順番で実行することができる。本明細書で説明したプロセス（またはその変形物及び／または組み合わせ）を、実行可能命令を有して構成された１つまたは複数のコンピュータシステムの制御のもとで実行してもよく、１つまたは複数のプロセッサ上で集合的に実行されているコード（たとえば、実行可能命令、１つまたは複数のコンピュータプログラム、または１つまたは複数のアプリケーション）として、ハードウェアによって、またはそれらの組み合わせによって、実装してもよい。コードを、コンピュータ可読ストレージ媒体上に、たとえば、１つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、格納してもよい。コンピュータ可読ストレージ媒体は、非一時的であってよい。
【００９９】
本明細書で提供したあらゆる実施例及び例示的言語（たとえば、「ｓｕｃｈ  ａｓ（など）」）の使用は、本発明の実施形態を単により良く明らかにすることを意図しており、特段に特許請求されない限り、本発明の範囲に制限を課さない。本明細書中のどのような言葉遣いも、任意の特許請求されない要素が本発明の実施に必須であることを示していると、解釈されるべきではない。
【０１００】
本開示の実施形態を、発明者が知る本発明を実行するためのベストモードを含んで、本明細書で説明した。それらの実施形態の変形物は、前述の説明を読むことで、当業者に明らかになってもよい。発明者は、熟練した技術者がそのような変形物を適切に使用することを期待し、発明者は、本開示の実施形態が、本明細書で具体的に説明した以外の方法で実施されることを意図している。したがって、本開示の範囲は、適用法が許す限り、本明細書に添付される特許請求の範囲に記載する本主題のすべての修正物及び同等物を含む。さらに、上記で説明した要素の任意の組み合わせは、本明細書で特段に述べない限り、または文脈から明らかに矛盾しない限り、そのすべての可能なバリエーションにおいて、本開示の範囲によって包含される。
【０１０１】
出版物、特許出願及び特許を含む本明細書で引用するすべての参考文献は、あたかもそれぞれの参考文献を、個々に、また具体的に示して、参照により組み込んだのと同じように、また、その全体を本明細書に記載したのと同じように、参照によって本明細書に組み込まれる。
【図１】
0006441468.tif 000002
【図２】
0006441468.tif 000003
【図３】
0006441468.tif 000004
【図４】
0006441468.tif 000005
【図５】
0006441468.tif 000006
【図６】
0006441468.tif 000007
【図７】
0006441468.tif 000008
【図８】
0006441468.tif 000009
【図９】
0006441468.tif 000010
【図１０】
0006441468.tif 000011