特許第6441468号(P6441468)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマゾン テクノロジーズ インコーポレイテッドの特許一覧

<>
  • 特許6441468-コンピューティング環境選択手法 図000002
  • 特許6441468-コンピューティング環境選択手法 図000003
  • 特許6441468-コンピューティング環境選択手法 図000004
  • 特許6441468-コンピューティング環境選択手法 図000005
  • 特許6441468-コンピューティング環境選択手法 図000006
  • 特許6441468-コンピューティング環境選択手法 図000007
  • 特許6441468-コンピューティング環境選択手法 図000008
  • 特許6441468-コンピューティング環境選択手法 図000009
  • 特許6441468-コンピューティング環境選択手法 図000010
  • 特許6441468-コンピューティング環境選択手法 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6441468
(24)【登録日】2018年11月30日
(45)【発行日】2018年12月19日
(54)【発明の名称】コンピューティング環境選択手法
(51)【国際特許分類】
   G06F 9/445 20180101AFI20181210BHJP
   G06F 9/455 20060101ALI20181210BHJP
【FI】
   G06F9/445 130
   G06F9/455 150
【請求項の数】14
【全頁数】34
(21)【出願番号】特願2017-513738(P2017-513738)
(86)(22)【出願日】2015年9月21日
(65)【公表番号】特表2017-529619(P2017-529619A)
(43)【公表日】2017年10月5日
(86)【国際出願番号】US2015051263
(87)【国際公開番号】WO2016048910
(87)【国際公開日】20160331
【審査請求日】2017年3月10日
(31)【優先権主張番号】14/492,648
(32)【優先日】2014年9月22日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506329306
【氏名又は名称】アマゾン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】100106541
【弁理士】
【氏名又は名称】伊藤 信和
(72)【発明者】
【氏名】ベルマ バルン
【審査官】 多賀 実
(56)【参考文献】
【文献】 特表2005−505051(JP,A)
【文献】 米国特許出願公開第2012/0303763(US,A1)
【文献】 特開2013−065205(JP,A)
【文献】 特開2012−089044(JP,A)
【文献】 特開2011−108087(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/44− 9/54
G06F 12/00
G06F 21/00
G06F 21/12−21/16
G06F 21/30−21/46
G06F 21/50−21/57
(57)【特許請求の範囲】
【請求項1】
実行可能命令を有して構成されたコンピューティングデバイスの制御のもとで、
前記コンピューティングデバイスにインストールされた少なくとも1つのアプリケーションを使用してアクセス可能であり且つ対応するファイル種類を有するデータファイルを開くためのコマンドを示す、前記コンピューティングデバイスの入力デバイスへの入力を検出することと、
前記ファイル種類に関連付けられたポリシーに基づいて、前記データファイルを、前記コンピューティングデバイスの環境とは別の仮想コンピューティング環境内で開く、と決定することと、
前記データファイルを前記仮想コンピューティング環境に提供することと、
1つまたは複数の実行可能命令を送信して、サーバに、前記データファイルを前記仮想コンピューティング環境内で開くために使用可能なアプリケーションを起動させることと、
を備え
前記ポリシーが、前記仮想コンピューティング環境の序列を、前記複数の仮想コンピューティング環境のうちの各仮想コンピューティング環境の1つまたは複数のセキュリティ態様に基づいて規定するコンピュータ実装方法。
【請求項2】
前記サーバから、前記アプリケーションを使用して前記仮想コンピューティング環境内で前記データファイルを開いた結果として、作成される修正データファイルを受信することと
前記データファイルと前記修正データファイルとを同期させることと、
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ポリシーが、コンピュータシステムのオペレーティングシステムのレジストリファイル内で符号化されており、前記レジストリファイルが、前記対応するファイル種類を有するデータファイルを、前記データファイルを前記仮想コンピューティング環境内で開くと決定するように構成された位置決定アプリケーションに関連付ける、と規定する、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記データファイルを前記仮想コンピューティング環境内で開くと決定した結果として、前記コンピューティングデバイスのユーザに関連付けられた1つまたは複数の認証情報を提供して、前記コンピューティングデバイスを前記仮想コンピューティング環境にアクセスするために使用することを可能にすること、をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項5】
システムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されると、前記システムに、
第1のコンピューティング環境において、データファイルを開くためのコマンドを検出することと、
前記データファイルに関連付けられたポリシーに基づいて、前記データファイルを前記第1のコンピューティング環境がネットワークによって分けられている第2のコンピューティング環境内で開くと決定することと、
前記データファイルを前記第2のコンピューティング環境内で開かせる情報を、前記第2のコンピューティング環境に送信することと、を行わせ、
前記ポリシーが、前記第2のコンピューティング環境の序列を、前記複数の第2のコンピューティング環境のうちの各第2のコンピューティング環境の1つまたは複数のセキュリティ態様に基づいて規定する、命令を含むメモリと、
を備える、前記システム。
【請求項6】
前記ポリシーが、前記データファイルに関連付けられたレジストリファイル内で符号化されている、請求項5に記載のシステム。
【請求項7】
前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記システムに、
前記第1のコンピューティング環境において、第2のデータファイルを開くためのコマンドを検出することと、
前記第2のデータファイルに関連付けられたポリシーに少なくとも部分的に基づいて、前記第2のデータファイルを、アプリケーションを使用して、前記第1のコンピューティング環境内で開く、と決定することと、
前記アプリケーションを起動させて、前記第2のデータファイルの使用を可能にすることと、
をさらに行わせる、請求項5に記載のシステム。
【請求項8】
前記第1のコンピューティング環境が、前記システムに前記ネットワークを介してストリーミングされるシングルテナント仮想コンピューティング環境である、請求項5に記載のシステム。
【請求項9】
前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記システムに、
前記第2のコンピューティング環境から、アプリケーションを使用して前記第2のコンピューティング環境内で前記データファイルを開いた結果として作成される修正データファイルを受信することと、
前記データファイルと前記修正データファイルとを、前記第1のコンピューティング環境内で同期させることと、
をさらに行わせる、請求項5に記載のシステム。
【請求項10】
コンピュータシステムの1つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、少なくとも、
第1のコンピューティング環境内で、対応するファイル種類を有するデータファイルを開くためのコマンドを検出したことに応答して、
前記ファイル種類に関連付けられたポリシーに基づいて、シングルテナント仮想コンピューティング環境を、前記コンピュータシステムがアクセス可能な複数のシングルテナント仮想コンピューティング環境から選択することと、
前記データファイルを前記選択されたシングルテナント仮想コンピューティング環境内で開かせる情報を、前記選択されたコンピューティング環境に送信することと、を行わせ、
前記ポリシーが、前記シングルテナント仮想コンピューティング環境の序列を、前記複数のシングルテナント仮想コンピューティング環境のうちの各シングルテナント仮想環境の1つまたは複数のセキュリティ態様に基づいて規定する、実行可能命令を格納した、非一時的コンピュータ可読ストレージ媒体。
【請求項11】
前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、前記第1のコンピューティング環境のユーザコンピューティングデバイスに関連付けられた1つまたは複数の認証情報を提供して、前記ユーザコンピューティングデバイスが前記選択されたシングルテナント仮想コンピューティング環境にアクセスすることを可能にすること、を行わせる命令をさらに備える、請求項10に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項12】
前記第1のコンピューティング環境が、前記選択されたシングルテナント仮想コンピューティング環境とは別のオペレーティングシステムを含む、請求項10に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項13】
前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、前記シングルテナント仮想コンピューティング環境を前記複数のシングルテナント仮想コンピューティング環境から選択した結果として、前記選択されたシングルテナント仮想コンピューティング環境をプロビジョンさせる情報を送信すること、を行わせる命令をさらに含む、請求項10に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項14】
前記ポリシーが、前記第1のコンピューティング環境のオペレーティングシステムのレジストリファイル内で符号化されており、前記レジストリファイルが、前記対応するファイル種類を有するデータファイルを、前記データファイルを前記選択されたシングルテナント仮想コンピューティング環境内で開く、と決定するように構成された位置決定アプリケーションに関連付ける、と規定する、請求項10に記載の非一時的コンピュータ可読ストレージ媒体。

【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2014年9月22日に出願され、「COMPUTING ENVIRONMENT SELECTION TECHNIQUES」という題名の、同時係属のU.S.Patent Application No.14/492,648の優先権を主張し、その内容全体が参照によって本明細書に組み込まれる。
【背景技術】
【0002】
生産性アプリケーション及び他のアプリケーションへのアクセスは、しばしば、仮想コンピューティング環境を使用して提供される。ユーザは、たとえば、サーバとの接続を確立して、サーバ上で実行されるアプリケーションにアクセスしてもよい。さまざまな手法を使用して、あたかもアプリケーションがローカルで実行されているようなユーザビリティを提供してもよい。ユーザデバイスのディスプレイは、たとえば、グラフィカルユーザインターフェースを、デスクトップメタファーにしたがって提供し、それにより、ユーザが、遠隔で実行されているアプリケーションを開き、それと相互作用することを可能にする。いくつかの実施例では、そのような機能は、組織のデータセンタ内にホストされているサーバなどの、組織自身のハードウェアを使用して提供される。他の実施例では、コンピューティング資源サービスプロバイダが、そのハードウェアを活用して、仮想コンピューティング環境を顧客のためにホストする。そのようなシステムは、時には、一般的に、「仮想デスクトップインフラストラクチャ」(VDI)と呼ばれる。
【0003】
クライアントコンピューティングデバイス及びそれらの対応する仮想コンピューティングシステム環境は、それぞれ、さまざまなインストールされたアプリケーションを有してもよく、それらのアプリケーションは、クライアントコンピューティングデバイスまたは仮想コンピューティングシステム環境のいずれかの中に格納されている1つまたは複数のデータファイルにアクセスするために使用され得る。仮想コンピューティングシステム環境を提供するための従来の構成は、しばしば、柔軟性がなく、しばしば、1つの環境と別の環境とを切り替えることを困難にする。さらに、いくつかの状況では、アプリケーションをローカルで実行することを許すことは、セキュリティリスクを高めることがあり、それは、クライアントコンピューティングデバイスが、携帯用コンピュータ(たとえば、ノートブックコンピュータまたはタブレットコンピュータ)であり、アプリケーションが機密データにアクセスするような時などである。他の状況では、特定のファイル種類のファイルは、ある環境では利用可能であり得るが、そのファイルを開き、処理するように動作可能な適切なアプリケーションがない場合がある。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示によるさまざまな実施形態を、図面を参照して説明する。
【図面の簡単な説明】
【0005】
図1】さまざまな実施形態を実装することができる環境の例示的な実施例を示す。
図2】少なくとも1つの実施形態による、仮想コンピューティング環境サービスの1つまたは複数の構成要素が、ユーザが仮想コンピューティング環境にアクセスすることを可能にするように構成されている環境の例示的な実施例を示す。
図3】少なくとも1つの実施形態による、ユーザのコンピューティングデバイスの1つまたは複数の構成要素が、仮想コンピューティング環境サービスとの通信と、それへのアクセスと、を可能にするように構成されている環境の例示的な実施例を示す。
図4】少なくとも1つの実施形態による、ユーザのコンピューティングデバイス環境の例示的な実施例を示し、そこでは、ユーザは、コンピューティングデバイス内に格納されている1つまたは複数のデータファイルを選択することができる。
図5】少なくとも1つの実施形態による、ユーザのコンピューティングデバイス環境の例示的な実施例を示し、そこでは、選択されたデータファイルが、ポリシー実装に応答して、仮想コンピューティング環境内でインターフェースを通して活用される。
図6】少なくとも1つの実施形態による、ユーザのコンピューティングデバイス環境の例示的な実施例を示し、そこでは、選択されたデータファイルが、アプリケーションをコンピューティングデバイス環境内で実行することによって活用される。
図7】少なくとも1つの実施形態による、選択されたデータファイルをアプリケーションを使用して活用し得るコンピューティング環境を決定するためのプロセスの例示的な実施例を示す。
図8】少なくとも1つの実施形態による、1つまたは複数のポリシーを活用して、選択されたデータファイルを活用し得るコンピューティング環境を決定するためのプロセスの例示的な実施例を示す。
図9】少なくとも1つの実施形態による、データファイルを使用するためのアプリケーションが利用可能でないという判断に応答して、データファイルを別のコンピューティング環境に転送するためのプロセスの例示的な実施例を示す。
図10】さまざまな実施形態を実装することができる環境を示す。
【発明を実施するための形態】
【0006】
以下の説明では、さまざまな実施形態を説明する。説明の目的のために、実施形態の完全な理解を提供するために、具体的な構成及び詳細を記載する。しかしながら、実施形態を具体的な詳細なしに実施してもよいということは、また、当業者には明白である。さらに、説明されている実施形態を不明瞭にしないために、良く知られた特徴は、省略または簡略化され得る。
【0007】
本明細書で説明され、提案される手法は、ローカルコンピューティング環境または仮想コンピューティングシステム環境のいずれかの中に配置された1つまたは複数のデータファイルを活用するためのアプリケーションにアクセスするための、コンピューティング環境の選択に関する。一実施形態では、エンティティは、コンピューティングデバイス(たとえば、ラップトップコンピュータ、デスクトップコンピュータ、モバイルデバイス、など)を使用して、コンピューティングデバイスに格納されているデータファイルを活用する。データファイルを、コンピューティングデバイスにインストールされているさまざまなアプリケーションに関連付けてもよい。たとえば、エンティティがデータファイルを選択すると、コンピューティングデバイスは、コンピューティングデバイスにインストールされている関連アプリケーションを起動させて、ユーザがデータファイルを彼/彼女の目的のために活用することを可能にしてもよい。いくつかの実施例では、エンティティは、組織の従業員であり、組織のビジネスニーズをサポートするために、コンピューティングデバイスを支給されている。しかしながら、本明細書で説明する手法は、仮想コンピューティングシステム環境を使用する他の文脈に応用可能である。
【0008】
一実施形態では、組織は、コンピューティングデバイスに、位置決定アプリケーションをインストールすることができ、位置決定アプリケーションは、さまざまなデータファイル種類のためのデフォルトアプリケーションとして働くように構成され得る。たとえば、エンティティが特定のデータファイルを選択すると、データファイルにアクセスするために活用され得るアプリケーションを実行するのではなく、コンピューティングデバイスは、この位置決定アプリケーションを実行してもよい。位置決定アプリケーションは、組織によって提供され、コンピューティングデバイスのレジストリまたは他の機構内で符号化されているポリシーを評価して、データファイルをローカルコンピューティングデバイス環境内で活用するとそのポリシーが規定するかどうか、またはデータファイルを仮想コンピューティングシステム環境内で活用するかどうか、を決定するように構成され得る。たとえば、データファイルをローカルコンピューティングデバイス環境内で活用してもよい、とポリシーが規定する場合、位置決定アプリケーションは、選択されたデータファイルを活用するために、コンピューティングデバイスに、エンティティによって使用可能であり得る、デバイスにインストールされているアプリケーションを実行させてもよい。
【0009】
位置決定アプリケーションが、コンピューティングデバイスのレジストリファイル内に符号化されているポリシーに基づいて、データファイルを仮想コンピューティングシステム環境内で活用すると決定した場合、位置決定アプリケーションは、コンピューティングデバイスに、仮想コンピューティング環境サービスとの通信セッションを開始させて、仮想コンピューティング環境インターフェースを起動させてもよい。このインターフェースは、グラフィカルユーザインターフェース(GUI)であってよく、グラフィカルユーザインターフェース(GUI)は、エンティティが、さまざまなデータファイル種類に関連付けら得るさまざまなアプリケーションを備える仮想機械インスタンスと相互作用することを可能にし得る。一実施形態では、位置決定アプリケーションは、コンピューティングデバイスに、選択されたデータファイルを仮想コンピューティング環境サービスによって提供される物理ホスト(つまり、物理コンピュータシステム)に送信して、データファイルを、物理ホスト内のデータ保管場所内に格納させる。これは、このデータファイルを仮想コンピューティング環境内で使用することを可能にし得る。
【0010】
いったんデータファイルが仮想コンピューティング環境サービス内の物理ホストに送信されると、位置決定アプリケーションは、1つまたは複数の実行可能命令を仮想コンピューティング環境内のアプリケーションに送信して、アプリケーションを環境内で起動させ、アプリケーションに、データファイルにアクセスさせることができる。これは、エンティティが、インターフェースを活用して、このアプリケーションと仮想コンピューティング環境内でアクセスされるデータファイルと相互作用することを可能にし得る。エンティティがデータファイルをこの環境内で活用し終えると、アプリケーションは、データファイルを、ユーザのコンピューティングデバイスとは別の場所に格納してもよい。さらに、仮想コンピューティング環境サービスは、更新データファイルをエンティティのコンピューティングデバイスに送信してもよく、そこで、データファイルを同期し、格納してもよい。
【0011】
代替的な実施形態では、エンティティは、データファイルを、仮想コンピューティング環境内で、彼/彼女のコンピューティングデバイスを通してアクセス可能なインターフェースを通して選択する。選択されたデータファイルにアクセスするために必要なアプリケーションが仮想コンピューティング環境内で利用可能でない場合、仮想コンピューティング環境サービスは、エンティティプロファイルまたはエンティティのコンピューティングデバイスにアクセスして、適切なアプリケーションがエンティティのコンピューティングデバイスにインストールされている、とプロファイル内の情報が示しているかどうかを判断してもよい。適切なアプリケーションがエンティティのコンピューティングデバイスにインストールされている場合、仮想コンピューティング環境サービスは、選択されたデータファイルをエンティティのコンピューティングデバイスに送信し、アプリケーションをコンピューティングデバイス内で起動させて、エンティティが、データファイルを、(たとえば、エンティティの観点から)ローカルなコンピューティング環境内で活用することを可能にし得る。
【0012】
このようにして、エンティティによって選択されたデータファイルに、アプリケーション可用性及びポリシー定義に基づいて、最適なコンピューティング環境内でアクセスし、それを活用してもよい。加えて、本明細書で説明し、提案する手法は、追加的な技術的進歩を促進する。たとえば、いくつかの実施形態では、仮想コンピューティング環境サービスは、データファイルを、このデータファイルにアクセスするためにアプリケーションをエンティティが使用してもよい環境に、送信してもよいために、エンティティは、データファイルに、適切な環境からアクセスしてもよく、データファイルにアクセスするために、またはデータファイルを活用することができるようにアプリケーションを彼/彼女のコンピューティングデバイスまたは仮想コンピューティング環境内にインストールするために、データファイルを他の場所または環境に手作業で転送する必要がない。
【0013】
図1は、さまざまな実施形態を実装することができる環境100の例示的な実施例を示している。環境100では、ユーザは、コンピューティングデバイス102(たとえば、ラップトップコンピュータ、デスクトップコンピュータ、モバイルデバイス、など)を通して、オペレーティングシステムインターフェース104と相互作用して、コンピューティングデバイス102内に格納されている1つまたは複数のデータファイル106にアクセスしてもよい。オペレーティングシステムインターフェース104は、グラフィカルユーザインターフェースであってよく、ユーザは、コンピューティングデバイス102にインストールされた1つまたは複数のユーザ入力デバイスを通して、グラフィカルユーザインターフェースを活用して、コンピューティングデバイス102内に格納されているアプリケーション、ファイル構造及びデータファイルの1つまたは複数のアイコングラフィック描写と相互作用する。たとえば、図1に例示されている通り、ユーザは、彼/彼女のコンピューティングデバイス102を活用して、オペレーティングシステムインターフェース104内のカーソル108と相互作用し、コンピュータアイコン110、ごみ箱アイコン112、及び1つまたは複数のデータファイルアイコン106を選択してもよい。これらのアイコン106、アイコン110、アイコン112を活用して、オペレーティングシステムのさまざまな機能、アプリケーション、ファイル構造、及びデータファイル自体に、インターフェース104を通してアクセスしてもよい。
【0014】
ユーザがカーソル108を活用して、関連データファイルを活用するためのデータファイルアイコン106を選択すると、コンピューティングデバイス102にインストールされているオペレーションシステムは、選択されたデータファイルが、コンピューティングデバイス102にインストールされている1つまたは複数のアプリケーションに関連付けられているかどうかを判断してもよい。たとえば、オペレーティングシステムは、ユーザがカーソル108を活用してデータファイルアイコン106を選択したことに応答して、特定のデータファイル種類が、コンピューティングデバイス102にインストールされている1つまたは複数のアプリケーションに関連付けられているかどうかを判断するために、レジストリファイルにアクセスしてもよい。特定のデータファイル種類が特定のアプリケーションに関連付けられている場合、オペレーティングシステムは、そのアプリケーションを実行し、このアプリケーションを通してデータファイルを使用することを可能にし得る。たとえば、特定のデータファイルがワード処理文書である場合、文書は、適切な文書処理アプリケーションを使用して開いてもよい。別の実施例では、特定のデータファイルが表計算文書である場合、文書は、適切な表計算アプリケーションを使用して開いてもよい。レジストリファイルを、本開示を通して、例示の目的のために使用するが、1つまたは複数のポリシーを、特定のデータファイル種類がコンピューティングデバイス102にインストールされている1つまたは複数のアプリケーションに関連付けられているかどうかを判断するために使用され得る他の機構内で、符号化してもよい。たとえば、いくつかのオペレーティングシステムは、レジストリファイル以外の設定を活用して、ユーザのコンピューティングデバイス102内に格納されているこれらの1つまたは複数のポリシーを符号化するように構成され得る。
【0015】
一実施形態では、選択されたデータファイルは、インストールされているアプリケーションに関連付けられ、コンピューティングデバイス102を通してユーザがアクセス可能である代わりに、コンピューティングデバイス102にインストールされている位置決定アプリケーションに、ユーザのコンピューティングデバイス102の管理者または他の管理エンティティによって関連付けられ得る。位置決定アプリケーションは、選択されたデータファイル種類に関連付けられ得る1つまたは複数のポリシーを特定するために、コンピューティングデバイス102にインストールされている1つまたは複数のレジストリファイルにアクセスするように構成され得る。これらのポリシーは、特定の種類のデータファイルを、コンピューティングデバイス102にインストールされているアプリケーションを通して、または別のコンピューティング環境内で利用可能なアプリケーションを通して、活用するかどうかを規定してもよい。特定の種類のデータファイルに、コンピューティングデバイス102にインストールされているアプリケーションを使用してアクセスしてもよい、と1つまたは複数のポリシーが規定する場合、位置決定アプリケーションは、オペレーティングシステムに適切なアプリケーションを実行させ、ユーザがコンピューティングデバイス102及びオペレーティングシステムインターフェース104を通して、アプリケーションを活用して選択されたデータファイルと相互作用することを可能にし得る。
【0016】
しかしながら、選択されたデータファイルは、コンピューティングデバイス102にインストールされているアプリケーションのうちの任意のものを活用して使用されない、と1つまたは複数のポリシーが規定する場合、位置決定アプリケーションは、オペレーティングシステムに、1つまたは複数の仮想コンピューティング環境サーバ114との通信セッションを開始させて、選択されたデータファイルを活用し得る仮想コンピューティング環境にアクセスしてもよい。仮想コンピューティング環境サーバ114は、1つまたは複数の物理ホストを備えてもよく、物理ホストを使用して、1つまたは複数の仮想機械画像をインスタンス化してもよい。さらに、仮想コンピューティング環境は、シングルテナント(たとえば、一度に1人のユーザのみによって使用可能な)デスクトップ、またはデスクトップメタファーを用いない場合がある他のシングルテナント仮想コンピューティング環境であってよい。これらの1つまたは複数の仮想機械画像は、オペレーティングシステム及び1つまたは複数のアプリケーションを含んでもよく、アプリケーションは、インスタンス化されると、これらの仮想コンピューティング環境サーバ114内の1つまたは複数の物理ホスト上にインストールされ得る。コンピューティングデバイス102と同様に、仮想コンピューティング環境サーバ114は、ユーザに、仮想コンピューティング環境インターフェース116を提供してもよく、仮想コンピューティング環境インターフェース116は、仮想コンピューティング環境内で利用可能な1つまたは複数のアプリケーションと相互作用するために使用され得る。
【0017】
位置決定アプリケーションは、コンピューティングデバイス102にインストールされているオペレーティングシステムに、ユーザクライアントを起動させてもよく、ユーザクライアントは、この仮想コンピューティング環境インターフェース116にアクセスするために使用され得る。加えて、位置決定アプリケーションは、選択されたデータファイルをこれらの仮想コンピューティング環境サーバ114に送信してもよく、データファイルは、特定のユーザのための仮想機械画像がインスタンス化されているユーザのコンピューティングデバイス102とは別の場所内に、格納され得る。一実施形態では、位置決定アプリケーションは、仮想コンピューティング環境サーバ114に、1つまたは複数のセットの認証情報を送信して、ユーザの認証を可能にする。仮想コンピューティング環境サーバ114がユーザを認証できない場合、サーバ114は、仮想コンピューティング環境インターフェース116にユーザのコンピューティングデバイス102を通してアクセスするための位置決定アプリケーションの要求を、拒否してもよい。
【0018】
1つまたは複数の仮想コンピューティング環境サーバ114がユーザを認証することができる場合、位置決定アプリケーションは、1つまたは複数の実行可能命令を、仮想コンピューティング環境のオペレーティングシステムに送信して、アプリケーション118が仮想コンピューティング環境内で実行されるようにして、選択されたデータファイルの使用を可能にし得る。ユーザは、オペレーティングシステムインターフェース104を通して使用可能なユーザクライアントを通して、仮想コンピューティング環境インターフェース116を活用して、アプリケーション118及び選択されたデータファイルと相互作用することができ得る。ユーザがデータファイルを仮想コンピューティング環境内で活用し終えると、1つまたは複数の仮想コンピューティング環境サーバ114は、更新データファイルを、仮想機械画像をインスタンス化してもよい物理ホスト内に格納してもよい。加えて、仮想コンピューティング環境サーバ114は、更新データファイルをユーザコンピューティングデバイス102に送信してもよく、ユーザコンピューティングデバイス102は、この更新データファイルを、その中に格納されているデータファイルと同期させてもよい。
【0019】
代替的な環境では、ユーザは、仮想コンピューティング環境インターフェース118を通して、仮想コンピューティング環境内で使用するためのデータファイルを選択する。ユーザがデータファイルを選択すると、1つまたは複数の仮想コンピューティング環境サーバ114は、特定の仮想機械画像がデータファイルの使用を可能にするための適切なアプリケーションを含むかどうかを判断し得る。適切なアプリケーションが仮想コンピューティング環境内で利用可能でないと仮想コンピューティング環境サーバ114が判断した場合、仮想コンピューティング環境サーバ114は、ユーザのコンピューティングデバイス102と、デバイス102への1つまたは複数のアプリケーションプログラミングインターフェース(API)コールなどを通して通信して、データファイルの使用を可能にするように活用され得るアプリケーションが、コンピューティングデバイス102のオペレーティングシステム環境内で利用可能かどうかを判断し得る。アプリケーションが特定された場合、仮想コンピューティング環境サーバ114は、ユーザアカウント情報データストア内のユーザのアカウント情報にアクセスして、選択されたデータファイル種類にユーザのコンピューティングデバイス102を使用してアクセスしてもよいかどうかを判断し得る。
【0020】
データファイルに、ユーザのコンピューティングデバイス102にインストールされているアプリケーションを使用してアクセスすし得る場合、仮想コンピューティング環境サーバ114は、選択されたデータファイルを、仮想機械画像がインスタンス化されている物理ホストから、ユーザのコンピューティングデバイス102に送信してもよい。さらに、仮想コンピューティング環境サーバ114は、実行可能命令を、ユーザのコンピューティングデバイス102にインストールされているオペレーティングシステムに送信して、特定のアプリケーションを実行し、そのアプリケーションを通してデータファイルを使用することを可能にし得る。したがって、ユーザは、このアプリケーションをオペレーティングシステムインターフェース104を通して活用して、選択されたデータファイルを使用してもよい。いったんユーザがデータファイルを使用し終えると、ユーザのコンピューティングデバイス102は、更新データファイルを仮想コンピューティング環境サーバ114に送信することができ、仮想コンピューティング環境サーバ114は、更新データファイルを、ユーザのコンピューティングデバイス102とは異なる場所内に格納されている既存のデータファイルと同期させてもよい。
【0021】
上述した通り、位置決定アプリケーションが、ユーザのコンピューティングデバイス内に格納されているレジストリファイル内で符号化されている1つまたは複数のポリシーに少なくとも部分的に基づいて、選択されたデータファイルを仮想コンピューティング環境内で活用すると決定した場合、位置決定アプリケーションは、ユーザのコンピューティングデバイスに、仮想コンピューティング環境サービスとの通信セッションを開始させて、この環境にアクセスしてもよい。さらに、位置決定アプリケーションは、1つまたは複数の実行可能命令を仮想コンピューティング環境サービスに送信してもよく、仮想コンピューティング環境サービスは、特定のアプリケーションをこの環境内で起動させてもよく、選択されたデータファイルを仮想コンピューティング環境内で使用することを可能にし得る。したがって、図2は、少なくとも1つの実施形態による環境200の例示的な実施例を示しており、そこでは、仮想コンピューティング環境サービス202の1つまたは複数の構成要素は、ユーザが仮想コンピューティング環境にアクセスすることを可能にするように構成されている。
【0022】
環境200では、仮想コンピューティング環境サービス202は、ユーザにインターフェース204を提供してもよく、インターフェース204は、ユーザが、彼/彼女のコンピューティングデバイス206を通して、仮想コンピューティング環境サービス202にアクセスすることを可能にし得る。ユーザは、インターフェース204を、インターネットなどの1つまたは複数の通信ネットワークを通して活用してもよい。インターフェース204は、ユーザが仮想コンピューティング環境サービス202にアクセスする権限を有していることを保証する、特定の安全処置を含んでもよい。たとえば、仮想コンピューティング環境サービス202にアクセスするために、ユーザは、インターフェース204を使用する時に、ユーザ名及び対応するパスワードまたは暗号化キーを提供する必要があり得る。加えて、インターフェース204に提出される要求(たとえば、APIコール)は、暗号化キーを使用して生成された電子署名を必要とし得、電子署名が、(図示しない)承認システムなどの仮想コンピューティング環境サービス202によって、検証可能であるようにする。
【0023】
いったんユーザが、彼/彼女のコンピューティングデバイス206を通して、仮想コンピューティング環境サービス202へのアクセスを、インターフェース204を通して取得すると、仮想コンピューティング環境サービス202は、ユーザが、インターフェース204を通して、管理サブシステム208と相互作用することを可能にし得る。たとえば、管理サブシステム206は、ユーザが1つまたは複数の仮想機械画像を遠隔で管理し、維持することを可能にし得る。これらの仮想機械画像を、仮想機械画像データストア210内のデータストレージ内に維持してもよい。ユーザが仮想機械インスタンスをプロビジョンするための要求を提出すると、仮想コンピューティング環境サービス202は、ユーザが要求した機械画像を特定し、その機械画像を処理するために必要な資源(たとえば、機械画像の構成要素を動作させるために必要なプロセッサとランダムアクセスメモリ(RAM)と)を配分してもよい。機械画像を、そのインスタンスの物理ホスト212として動作し得る1つまたは複数の物理ストレージデバイス(たとえば、1つまたは複数のサーバまたはハードドライブ)上に、インスタンス化してもよい。
【0024】
仮想コンピューティング環境サービス202は、また、サービス202の各ユーザに対して、ユーザプロファイルデータストア214内に記録され得るユーザアカウントを維持し得る。各ユーザプロファイルは、1つまたは複数のポリシーを含んでもよく、ポリシーは、ユーザが特定のデータファイル種類を活用することを可能にするように使用可能なアプリケーションを、ユーザの仮想コンピューティング環境内で、ユーザのコンピューティングデバイス206内で、または任意の他の環境内で、起動し得るどうかを規定してもよい。たとえば、ユーザのコンピューティングデバイス206の管理者は、ユーザのアカウントに適用し得るポリシーを生成してもよく、そのポリシーは、特定のデータファイルはユーザの仮想コンピューティング環境内でのみ開いてもよい、と規定する。このポリシーを、また、ユーザのコンピューティングデバイス206の1つまたは複数のレジストリファイル内で符号化してもよい。
【0025】
ユーザが、彼/彼女のコンピューティングデバイス206を使用して、デバイス206に格納されている特定のデータファイルを開こうとすると、デバイス206にインストールされているオペレーティングシステムは、デバイス206にインストールされているどのアプリケーションが、選択されたデータファイルに関連付けられているのかを判断してもよい。たとえば、一実施形態では、オペレーティングシステムは、コンピューティングデバイス206内に格納されている1つまたは複数のレジストリファイルに少なくとも部分的に基づいて、選択されたデータファイルが位置決定アプリケーションに関連付けられていることを判断する。このアプリケーションは、ユーザによってアクセス可能でないかもしれず、デバイス206の前述の管理者によってコンピューティングデバイス206にインストールされ得る。位置決定アプリケーションは、ユーザによるデータファイルの選択を受けて、1つまたは複数のレジストリファイルにアクセスして、特定のデータファイル種類に関連するポリシーを特定するように構成され得る。たとえば、ポリシーは、特定の種類のデータファイルがユーザのコンピューティングデバイス206にインストールされているアプリケーションを使用して開かれない、と規定してもよい。さらに、これらのポリシーは、特定の種類のデータファイルは特定の仮想コンピューティング環境内で開かれる、と規定してもよい。ポリシーは、さらに、データファイルを開いてもよい1つまたは複数の仮想コンピューティング環境の序列を規定してもよい。序列は、これらの仮想コンピューティング環境の1つまたは複数の安全態様に少なくとも部分的に基づいて作成され得る。たとえば、著しい安全処置(たとえば、データ暗号化、ファイアウォール実装、ウイルススキャン、など)を有する仮想コンピューティング環境を、これらの1つまたは複数の仮想コンピューティング環境の序列内のより高い序列に規定してもよい。
【0026】
位置決定アプリケーションが、これらの1つまたは複数のポリシーに少なくとも部分的に基づいて、選択されたデータファイルを(たとえば、ユーザのコンピューティングデバイス206に対して)ローカル内で開かないと決定した場合、位置決定アプリケーションは、ユーザのコンピューティングデバイス206に、仮想コンピューティング環境サービス202との通信セッションを開始させて、ユーザがインターフェース204を通して彼/彼女の仮想コンピューティング環境にアクセスすることを可能にし得る。いくつかの実施形態では、位置決定アプリケーションは、仮想コンピューティング環境サービス202に、サービス202にアクセスするために必要なユーザの認証情報を提供してもよい。位置決定アプリケーションによって提供された、彼/彼女の仮想コンピューティング環境にアクセスするためのユーザの要求に応答して、管理サブシステム208は、ユーザプロファイルデータストア214内のユーザのアカウントにアクセスして、ユーザの仮想コンピューティング環境のために特定の仮想機械画像をインスタンス化した特定の物理ホスト212を、特定してもよい。いったん管理サブシステム208が物理ホスト212を特定すると、管理サブシステム208は、ユーザがインターフェース204を通して彼/彼女の仮想コンピューティング環境にアクセスすることを可能にし得る。加えて、位置決定アプリケーションは、選択されたデータファイルを仮想コンピューティング環境サービス202に送信することができ、管理サブシステム208は、データファイルを、ユーザのコンピューティングデバイス206とは異なる場所内に格納してもよい。
【0027】
いったんデータファイルがユーザのコンピューティングデバイス206とは異なる場所内に格納され、ユーザがインターフェース204を通して彼/彼女の仮想コンピューティング環境へのアクセスを取得すると、位置決定アプリケーションは、1つまたは複数の実行可能命令を管理サブシステム208に送信して、選択されたデータファイルの使用を可能にするように使用可能なアプリケーションを、仮想コンピューティング環境内で起動させ得る。これは、ユーザが、彼のユーザコンピューティングデバイス206を通して、データファイルをこの仮想コンピューティング環境内で使用することを可能にし得る。ユーザが選択されたデータファイルを仮想コンピューティング環境内で使用し終えると、管理サブシステム208は、ユーザのコンピューティングデバイス206と仮想コンピューティング環境との中のデータファイルを同期させるために、更新データファイルをユーザのコンピューティングデバイス206に送信してもよい。
【0028】
一実施形態では、ユーザは、インターフェース204を通して、仮想コンピューティング環境内で開く1つまたは複数のデータファイルを選択する。この選択に応答して、管理サブシステム208は、ユーザによって活用される特定の仮想機械インスタンスが、これらのデータファイルを開くために必要な1つまたは複数のアプリケーションを含むかどうかを判断してもよい。管理サブシステム208が、選択されたデータファイルを開くことができる任意のアプリケーションを特定できない場合、管理サブシステム208は、ユーザプロファイルデータストア214にアクセスして、これらの特定のデータファイルに関連する任意のポリシーを特定してもよい。たとえば、上述した通り、ユーザのコンピューティングデバイス206の管理者は、特定のポリシー内で、ユーザのコンピューティングデバイス206がデータファイルを開くために必要な1つまたは複数のアプリケーションを有し、ユーザがこれらのアプリケーションをローカル(たとえば、ユーザのコンピューティングデバイス206環境内)で使用することを承認されている、と規定してもよい。
【0029】
管理サブシステム208が、仮想機械インスタンス、ユーザが利用可能な他の仮想機械インスタンスを通して提供されたものであろうと、またはユーザのコンピューティングデバイス206にインストールされたものであろうと、選択された1つまたは複数のデータファイルを開くために使用してもよいアプリケーションを特定できない場合、管理サブシステム208は、これらのデータファイルを開くためのユーザの要求を拒否してもよい。しかしながら、管理サブシステム208が、選択されたデータファイルを開くためのアプリケーションが利用可能な代替的な環境を特定することができた場合、管理サブシステム208は、データファイル及び実行可能命令を選択された環境に送信して、アプリケーションを起動させ、データファイルをその環境内で使用することを可能にし得る。たとえば、選択されたデータファイルを開くために必要なアプリケーションをユーザのコンピューティングデバイス206内で見つけることができた場合、管理サブシステム208は、選択されたデータファイルを物理ホース212から取得し、これらのデータファイル及び実行可能命令をユーザのコンピューティングデバイス206に送信して、ユーザのコンピューティングデバイス206に選択されたアプリケーションを起動させ、これらのデータファイルの使用を可能にし得る。いったんユーザがアプリケーション及びデータファイルをユーザのコンピューティングデバイス206内で活用し終えると、ユーザのコンピューティングデバイス206は、更新データファイルを仮想コンピューティング環境サービス202に送信してもよく、仮想コンピューティング環境サービス202は、管理サブシステム208を通して、これらの取得データファイルを、ユーザのコンピューティングデバイス206とは異なる場所内に格納されているデータファイルと同期させてもよい。
【0030】
上述した通り、ユーザは、コンピューティングデバイスを活用して、1つまたは複数のデータファイルを開くための1つまたは複数のアプリケーションを起動すし得る。いくつかの実施形態では、選択されたデータファイルを位置決定アプリケーションに関連付けてもよく、位置決定アプリケーションを使用して、データファイルをコンピューティングデバイスにインストールされているアプリケーションを使用して開いてもよいかどうか、またはデータファイルを仮想コンピューティング環境内のみで開いてもよいかどうか、を判断してもよい。したがって、図3は、少なくとも1つの実施形態による環境300の例示的な実施例を示しており、そこでは、ユーザのコンピューティングデバイス304の1つまたは複数の構成要素は、仮想コンピューティング環境サービス314との通信とそれへのアクセスとを可能にするように構成されている。図3に示す通り、コンピューティングデバイス304は、1つまたは複数のプロセッサ312(たとえば、中央処理装置(CPU))を含んでもよく、プロセッサ312は、バスサブシステムを介して、多数の周辺サブシステムと通信するように構成され得、それらに動作可能に連結され得る。これらの周辺サブシステムは、1つまたは複数のアプリケーション308を活用するためのメモリサブシステム及びファイルストレージサブシステム310を備えるストレージサブシステム306並びに、1つまたは複数のユーザインターフェース入力デバイス、1つまたは複数のユーザインターフェース出力デバイス、ネットワークインターフェースサブシステムなど、を含んでもよい。周辺サブシステムは、また、入力デバイスのセンサに加えて、1つまたは複数のセンサを含んでもよい。そのようなセンサは、全地球測位システム(GPS)センサ、加速度計、温度センサ及び、他のセンサを含むが、これらに限定されない。
【0031】
ストレージサブシステム306は、本開示の少なくとも1つの実施形態の機能を提供し得る基本のプログラミング及びデータ構造を格納するための、コンピュータ可読ストレージ媒体を提供してもよい。1つまたは複数のプロセッサによって実行されると、本開示の1つまたは複数の実施形態の機能を提供してもよい、アプリケーションまたはその構成要素(プログラム、コードモジュール(つまり、プログラミングモジュール)、命令)を、ストレージサブシステム306内に格納してもよい。これらのアプリケーションモジュールまたは命令を、1つまたは複数のプロセッサ312によって実行してもよい。ストレージサブシステム306は、加えて、本開示にしがたって使用されるデータを格納するための保存場所を提供してもよい。ストレージサブシステム306は、メモリサブシステム及びファイル/ディスクストレージサブシステム310を備えてもよい。
【0032】
ユーザ302が、ユーザコンピューティングデバイス304を活用してファイルストレージサブシステム310内に格納されている1つまたは複数のデータファイルを開くと、1つまたは複数のプロセッサ312は、ファイルストレージサブシステム310内の1つまたは複数のレジストリファイルにアクセスして、選択された1つまたは複数のデータファイルを開くために使用され得る1つまたは複数のアプリケーション308を特定し得る。たとえば、1つまたは複数のレジストリファイルは、選択された1つまたは複数のデータファイルは、コンピューティングデバイス304にインストールされている位置決定アプリケーションを使用して開かれる、と規定してもよい。ファイルストレージサブシステム内に格納されている1つまたは複数のレジストリファイルは、コンピューティングデバイス304をユーザ302が活用するための許可を確立することを任された1人または複数の管理者によって、提供され得る。
【0033】
これらの1つまたは複数のレジストリファイルは、さらに、1つまたは複数のポリシーを符号化してもよく、ポリシーは、コンピューティングデバイス304のユーザ302によって選択された、選択された1つまたは複数のデータファイルが、これらのデータファイルを、コンピューティングデバイス304にインストールされているアプリケーション308を使用して開いてもよいかどうか、を規定してもよい。位置決定アプリケーションは、1つまたは複数のレジストリファイル内で符号化されているこれらの1つまたは複数のポリシーにアクセスして、選択されたデータファイルが、コンピューティングデバイス304の環境内で開かれるかどうか、を判断してもよい。位置決定アプリケーションが、これらのポリシーに少なくとも部分的に基づいて、1つまたは複数のデータファイルが、コンピューティングデバイス304にインストールされているアプリケーション308を使用して開かれないが、代わりに、仮想コンピューティング環境内のアプリケーションを使用して開かれなければならない、と判断した場合、位置決定アプリケーションは、1つまたは複数のプロセッサ312に、1つまたは複数の実行可能命令をネットワークインターフェースサブシステムに送信させ、ネットワークインターフェースサブシステムは、インターフェースを仮想コンピューティング環境サービス314に提供してもよい。ネットワークインターフェースサブシステムは、アプリケーション308のデータ及び、システムにアクセスする(たとえば、ウェブページを受信する)ための電子要求などの他の情報の送信を可能にしてもよく、ウェブページまたは他の情報などの、要求に対する応答を受信することを可能にし得る。
【0034】
いったん通信チャネルがコンピューティングデバイス304と仮想コンピューティング環境サービス314との間で確立されると、1つまたは複数のプロセッサ312は、実行可能命令をファイルストレージサブシステム306に送信して、1つまたは複数の選択されたデータファイルを仮想コンピューティング環境サービス314に送信してもよい。加えて、1つまたは複数のプロセッサ312は、ユーザクライアントアプリケーションを実行して、ユーザ302が、コンピューティングデバイス304を活用して、仮想コンピューティング環境サービス314によって提供される仮想コンピューティング環境と相互作用することを可能にし得る。たとえば、一実施形態では、1つまたは複数のプロセッサ312は、実行可能命令を仮想コンピューティング環境サービス314に送信し、仮想コンピューティング環境サービス314は、サービスに、アプリケーションをユーザ302の仮想コンピューティング環境内で起動させ、1つまたは複数の提供されたデータファイルを開いてもよい。ユーザ302が、1つまたは複数のデータファイルを仮想コンピューティング環境内で使用し終えると、仮想コンピューティング環境サービス314は、更新データファイルをコンピューティングデバイス304に送信してもよく、1つまたは複数のプロセッサ312は、これらの受信データファイルを、ファイルストレージサブシステム310に格納されているデータファイルと同期させてもよい。
【0035】
一実施形態では、仮想コンピューティング環境サービス314は、ユーザ302が彼/彼女の仮想コンピューティング環境内の1つまたは複数のデータファイルを選択したことに応答して、選択されたデータファイルを開くためのアプリケーションがこの環境内では利用可能でない、と判断する。仮想コンピューティング環境サービス314は、さらに、ユーザ302のプロファイル内で定められている情報に少なくとも部分的に基づいて、コンピューティングデバイス304が、選択されたデータファイルを開くために必要な1つまたは複数のアプリケーション308を含む、と判断してもよい。結果として、仮想コンピューティング環境サービス314は、1つまたは複数のデータファイルをコンピューティングデバイス304に送信してもよく、1つまたは複数のプロセッサ312は、受信データファイルをファイルストレージサブシステム310内に格納してもよい。さらに、1つまたは複数のプロセッサ312は、仮想コンピューティング環境サービス314によって規定されるアプリケーション308を起動し、アプリケーション308に、受信した1つまたは複数のデータファイルを、使用のために開かせ得る。
【0036】
上述した通り、ユーザは、コンピューティングデバイスを通してオペレーティングシステムインターフェースと相互作用して、コンピューティングデバイス内に格納されている1つまたは複数のデータファイルを開いてもよい。オペレーティングシステムインターフェースは、GUIであってよく、ユーザは、コンピューティングデバイスにインストールされている1つまたは複数のユーザ入力デバイスを通してGUIを活用して、コンピューティングデバイス内に格納されている、アプリケーション、ファイル構造、及びデータファイルの1つまたは複数のアイコングラフィック描写と相互作用してもよい。したがって、図4は、少なくとも1つの実施形態による、ユーザのコンピューティングデバイス環境400の例示的な実施例を示しており、そこでは、ユーザは、コンピューティングデバイス内に格納されている1つまたは複数のデータファイル412を選択することができる。コンピューティングデバイス環境400は、1つまたは複数のデータファイルとそこで実行可能なアプリケーションと相互作用するために使用可能な、オペレーティングシステムインターフェースであってよい。
【0037】
コンピューティングデバイス環境400は、1つまたは複数のアイコンを含んでもよく、アイコンは、コンピューティングデバイス環境400内で実行され得る1つまたは複数の機能を表してもよい。たとえば、図4に例示する通り、コンピューティングデバイス環境400は、コンピュータアイコン402を含んでもよく、コンピュータアイコン402を使用して、さまざまなストレージデバイス(たとえば、ハードドライブ、など)、周辺デバイス(たとえば、CD−ROMドライブ、DVDドライブ、など)、及びネットワークデバイスにアクセスしてもよい。コンピューティングデバイス環境400は、さらに、ごみ箱アイコン404を含んでもよく、ごみ箱アイコン404は、1つまたは複数のデータファイルをコンピューティングデバイス環境400から削除するために使用され得るアプリケーションへのアクセスを可能にし得る。コンピューティングデバイス環境400は、また、フォルダアイコン406を含んでもよく、フォルダアイコン406を使用して、コンピューティングデバイスのファイル構造内の特定のデータファイルコンテナにアクセスしてもよい。図4に例示したアイコンだけがコンピューティングデバイス環境400内で利用可能であり得るアイコンではなく、追加的及び/または代替的なアイコンを、コンピューティングデバイス環境400内のさまざまな機能に提供してもよい、ということに留意すべきである。
【0038】
コンピューティングデバイス環境400は、さらに、アプリケーションボタン416を含んでもよく、アプリケーションボタン416を使用して、コンピューティングデバイスにインストールされている1つまたは複数のアプリケーションにアクセスしてもよい。ユーザが、アプリケーションボタン416を押すことでアプリケーションを選択すると、コンピューティングデバイスは、そのアプリケーションを新しい環境パネル内で起動させてもよく、環境パネルは、コンピューティングデバイス環境400上に表示され得る。これは、ユーザが、アプリケーションと相互作用し、1つまたは複数のデータファイルをこの環境パネル内から開くように要求することを可能にし得る。
【0039】
ユーザが、ユーザインターフェースデバイス(たとえば、カーソル414)を使用して、フォルダアイコン406を選択すると、コンピューティングデバイスの1つまたは複数のプロセッサは、コンピューティングデバイス環境400に、環境パネル408を表示させてもよく、環境パネル408は、コンピューティングデバイス内に格納されている1つまたは複数のデータファイル410、412の1つまたは複数のアイコン表現を含んでもよい。1つまたは複数のデータファイル410、412のこれら1つまたは複数のアイコン表現から、ユーザは、カーソル414を活用して特定のデータファイル412を選択し、データファイル412をコンピューティングデバイス環境400内で開くように要求してもよい。この要求に応答して、コンピューティングデバイスは、選択されたデータファイル412に関連付けられた1つまたは複数のレジストリファイルに少なくとも部分的に基づいて、どのアプリケーションを使用して選択されたデータファイル412を開くか、を決定してもよい。図5図6とに関連して以下でより詳細に説明する通り、選択されたデータファイル412を位置決定アプリケーションに関連付けてもよく、位置決定アプリケーションは、選択されたデータファイル412を、コンピューティングデバイス環境400内または仮想コンピューティング環境内で、開くかどうかを判断してもよい。いくつかの実施形態では、コンピューティングデバイス環境400は、また、一度に1人のユーザのみが使用可能であるシングルテナントデスクトップであってもよい、ということに留意すべきである。
【0040】
上述した通り、ユーザが1つまたは複数のデータファイルを選択すると、コンピューティングデバイスは、1つまたは複数のデータファイルに関連付けられた1つまたは複数のレジストリファイルに少なくとも部分的に基づいて、どのアプリケーションを起動させて選択された1つまたは複数のデータファイルを開くか、を決定してもよい。たとえば、管理者は、1つまたは複数のレジストリファイル内で、1つまたは複数のデータファイルを開き得る前に、コンピューティングデバイスが位置決定アプリケーションを起動させる、と規定してもよい。いくつかの実施形態では、このアプリケーションは、1つまたは複数のレジストリファイル内で符号化されている1つまたは複数のポリシーに少なくとも部分的に基づいて、1つまたは複数の選択されたデータファイルを遠隔仮想コンピューティング環境内で開く、と決定してもよい。したがって、図5は、少なくとも1つの実施形態による、ユーザのコンピューティングデバイス環境500の例示的な実施例を示しており、選択されたデータファイルは、ポリシー実装に応答して、仮想コンピューティング環境内で、インターフェース502を通して活用される。
【0041】
位置決定アプリケーションが、1つまたは複数のレジストリファイル内で符号化されている1つまたは複数のポリシーに少なくとも部分的に基づいて、1つまたは複数の選択されたデータファイルを遠隔仮想コンピューティング環境内で開く、と決定すると、コンピューティングデバイスは、仮想コンピューティング環境インターフェース502を起動させてもよく、仮想コンピューティング環境インターフェース502をユーザが使用して、仮想コンピューティング環境と相互作用してもよい。上述した通り、位置決定アプリケーションは、コンピューティングデバイスに、仮想コンピューティング環境サービスとの通信チャネルを確立させて、ユーザが彼/彼女の仮想コンピューティング環境にアクセスすることを可能にし得る。たとえば、仮想コンピューティング環境サービスは、コンピューティングデバイスから、仮想コンピューティング環境内で開く1つまたは複数のデータファイルを受信してもよい。さらに、仮想コンピューティング環境サービスは、実行可能命令をコンピューティングデバイスから受信してもよく、実行可能命令は、仮想コンピューティング環境サービスに、選択された1つまたは複数のデータファイルを開くために使用可能なアプリケーションを起動させ得る。
【0042】
いったん仮想コンピューティング環境サービスとコンピューティングデバイスとの接続が確立されると、仮想コンピューティング環境サービスは、ユーザがコンピューティングデバイス環境500内の仮想コンピューティング環境インターフェース502を活用して、ユーザの仮想コンピューティング環境にアクセスすることを可能にし得る。仮想コンピューティング環境は、コンピューティングデバイス環境500内に含まれている機能の多くを含んでもよい。たとえば、仮想コンピューティング環境は、アプリケーションボタン504を同様に含んでもよく、アプリケーションボタン504を、ユーザが、仮想コンピューティング環境インターフェース502を通して使用して、仮想コンピューティング環境内で起動され得る1つまたは複数のアプリケーションを選択してもよい。加えて、仮想コンピューティング環境は、コンピューティングデバイスにインストールされているオペレーティングシステムと同様のオペレーティングシステムに基づいてよいが、いくつかの場合では、仮想コンピューティング環境は、1つまたは複数の選択されたデータファイルの処理をやはり行うことができる別のオペレーティングシステムを活用してもよい。
【0043】
仮想コンピューティング環境は、アプリケーションをこの環境内で実行すると、アプリケーションパネル506を作成してもよく、アプリケーションパネル506は、ユーザが、アプリケーションと、仮想コンピューティング環境インターフェース502を通して相互作用することを可能にし得る。1つまたは複数のデータファイル508を、ユーザに、このアプリケーションパネル506内で提示してもよく、それにより、ユーザが、1つまたは複数のデータファイル508の内容を、作成、削除、修正、または変更することを可能にし得る。ユーザが1つまたは複数のデータファイル508を使用し終えると、ユーザは、アプリケーションパネル506を閉じることによって、アプリケーションを終了させてもよい。仮想コンピューティング環境サービスは、更新データファイルをコンピューティングデバイスに送信してもよく、コンピューティングデバイスは、受信データファイルを、その中に格納されている1つまたは複数のデータファイルと同期させてもよい。
【0044】
上述した通り、ユーザは、彼/彼女のコンピューティングデバイスを活用して、1つまたは複数のデータファイルを、コンピューティングデバイスにインストールされた、または仮想コンピューティング環境内の、1つまたは複数のアプリケーションを使用して開いてもよく、たとえば、ユーザが、コンピューティングデバイス環境内のデータファイルを選択すると、コンピューティングデバイスは、1つまたは複数のレジストリファイル内で符号化されている関連性に少なくとも部分的に基づいて、どのアプリケーションを使用して1つまたは複数のデータファイルを開くか、を決定してもよい。代替的に、これらの1つまたは複数のレジストリファイルは、1つまたは複数のデータファイルを位置決定アプリケーションで分析して、1つまたは複数のデータファイルを、コンピューティングデバイス環境内で、または遠隔仮想コンピューティング環境内で、開くかどうかを決定することを規定してもよい。1つまたは複数のデータファイルが位置決定アプリケーション以外のアプリケーションに関連付けられている場合、または位置決定アプリケーションが、1つまたは複数のデータファイルをコンピューティングデバイス環境内で開くと決定した場合、コンピューティングデバイスは、アプリケーションをコンピューティングデバイス環境内で起動させて、アプリケーションがこれらの選択されたデータファイルを開くことを可能にし得る。したがって、図6は、少なくとも1つの実施形態による、ユーザのコンピューティングデバイス環境600の例示的な実施例を示しており、そこでは、選択されたデータファイルは、アプリケーションをコンピューティングデバイス環境600内で起動させることによって活用される。コンピューティングデバイス環境600は、図4に関連して上記で説明したコンピューティングデバイス環境に類似であってよい。
【0045】
位置決定アプリケーションが、ユーザによって選択された1つまたは複数のデータファイルを、コンピューティングデバイスにインストールされているアプリケーションを使用して開くと決定した時、または1つまたは複数のデータファイルが、位置決定アプリケーション以外のアプリケーションに関連付けられている時、コンピューティングデバイスは、選択された1つまたは複数のデータファイルを開くために使用され得るアプリケーションを、コンピューティングデバイス環境600内で起動させてもよい。たとえば、アプリケーションは、起動されると、アプリケーションパネル602をコンピューティングデバイス環境600内で作成してもよく、コンピューティングデバイス環境600は、ユーザが1つまたは複数のユーザインターフェースデバイス(たとえば、カーソル)を活用してアプリケーションと相互作用することを可能にし得る。アプリケーションは、アプリケーションパネル602に、1つまたは複数の選択されたデータファイル604の内容を投入してもよく、それにより、コンピューティングデバイスのユーザが、これらの内容を必要に応じて変更することを可能にし得る。いったんユーザが1つまたは複数のデータファイル604を使用し終えると、ユーザは、アプリケーションパネル602を閉じることによって、アプリケーションを終了させてもよい。これにより、コンピューティングデバイスに、これらの1つまたは複数のデータファイルへの任意の変更を保存させてもよい。
【0046】
上述した通り、ユーザが彼/彼女のコンピューティングデバイス内に格納されている1つまたは複数のデータファイルを選択すると、コンピューティングデバイスは、1つまたは複数のレジストリファイルに少なくとも部分的に基づいて、これらの1つまたは複数のデータファイルに、コンピューティングデバイス環境を通して、または遠隔仮想コンピューティング環境を通して、アクセスするかどうかを判断するために、これらの1つまたは複数のデータファイルが、位置決定アプリケーションを通した追加的な分析を必要とするかどうか、を判断してもよい。代替的に、1つまたは複数のデータファイルが位置決定アプリケーションに関連付けられていない場合、コンピューティングデバイスは、コンピューティングデバイスにインストールされているアプリケーションを起動させて、1つまたは複数のデータファイルを開き、それらの使用をコンピューティングデバイス環境を通して可能にし得る。したがって、図7は、少なくとも1つの実施形態による、コンピューティング環境を決定するためのプロセス700の例示的な実施例を示しており、そこでは、選択されたデータファイルは、アプリケーションを使用して活用され得る。プロセス700を、コンピューティングデバイスの1つまたは複数のプロセッサによって実行してもよく、そこに、ユーザによって選択された1つまたは複数のデータファイルが格納され得る。
【0047】
ユーザが、コンピューティングデバイス環境(たとえば、オペレーティングシステムインターフェース)を通して、彼/彼女が開き、使用したい1つまたは複数のデータファイルを選択すると、1つまたは複数のプロセッサは、ユーザがこれらの1つまたは複数のデータファイルを選択したことを検出し702、これらの1つまたは複数のデータファイルが位置決定アプリケーションに関連付けられているかどうかを判断する704。たとえば、1つまたは複数のプロセッサは、コンピューティングデバイスに、選択された1つまたは複数のファイルに関連付けられた1つまたは複数のレジストリファイルにアクセスさせて、どのアプリケーションを使用してこれらの1つまたは複数のデータファイルにアクセスするかを決定してもよい。さらに、レジストリファイルは、1つまたは複数のデータファイルに対して使用されるデフォルトアプリケーションを指定してもよい。一実施形態では、コンピューティングデバイスの管理者は、1つまたは複数のレジストリファイルを生成し、これらのレジストリファイル内で、1つまたは複数のデータファイルがデフォルトでは位置決定アプリケーションに関連付けられていることを符号化する。
【0048】
代替的な実施形態では、ユーザは、1つまたは複数のデータファイルから成るかたまりを選択し、それらは、異なるファイルの種類であってよい。1つまたは複数のプロセッサは、ユーザが1つまたは複数のファイルから成るこのかたまりを選択したことに応答して、1つまたは複数のファイルから成るかたまりの各ファイルに対して、データファイルが位置決定アプリケーションに関連付けられているかどうかを判断してもよい704。たとえば、1つまたは複数のプロセッサは、1つまたは複数のデータファイルから成るかたまりの各データファイルに関連付けられた1つまたは複数のレジストリファイルを評価して、どのアプリケーションを使用してこれらの1つまたは複数のデータファイルにアクセスするか、を決定してもよい。これらの1つまたは複数のレジストリファイルに少なくとも部分的に基づいて、1つまたは複数のプロセッサは、位置決定アプリケーション及び/または他のアプリケーションを、ローカルコンピューティング環境内で、1つまたは複数のデータファイルから成るかたまりの各データファイルに対して起動させてもよい。
【0049】
1つまたは複数のプロセッサが、選択された1つまたは複数のデータファイルが位置決定アプリケーションに関連付けられていないと判断した場合、1つまたは複数のプロセッサは、コンピューティングデバイスに、選択された1つまたは複数のデータファイルを、コンピューティングデバイスにインストールされている(たとえば、コンピューティングデバイスに対する)ローカルアプリケーションを使用することによって開かせ得る706。たとえば、1つまたは複数のプロセッサは、コンピューティングデバイスに、コンピューティングデバイスにインストールされているアプリケーションを起動させ、ユーザが、アプリケーションを活用して選択された1つまたは複数のデータファイルにアクセスすることを可能にし得る。しかしながら、1つまたは複数のデータファイルが位置決定アプリケーションに関連付けられている場合、1つまたは複数のプロセッサは、選択された1つまたは複数のデータファイルを、コンピューティングデバイスにインストールされているアプリケーションを使用してローカルで開くかどうかを判断する710ために、コンピューティングデバイスに、位置決定アプリケーションを起動させ得る708。
【0050】
上述した通り、位置決定アプリケーションは、選択された1つまたは複数のデータファイルに関連付けられた1つまたは複数のレジストリファイル内で符号化されている1つまたは複数のポリシーを評価して、これらのデータファイルをコンピューティングデバイス環境内でローカルに開くかどうか、またはこれらのデータファイルを遠隔仮想コンピューティング環境内でのみ開いてもよいかどうか、を判断するように構成され得る。位置決定アプリケーションが、1つまたは複数のデータファイルをローカルで開くと決定した場合、アプリケーションは、この決定を1つまたは複数のプロセスに送信してもよく、プロセスは、それに応答して、コンピューティングデバイスに、選択された1つまたは複数のデータファイルを、コンピューティングデバイスにインストールされているローカルアプリケーションを使用することによって開かせ得る706。
【0051】
1つまたは複数のデータファイルをローカルで開くことができない場合、1つまたは複数のプロセッサは、図5で例示したインターフェースなどの仮想コンピューティング環境インターフェースを起動させてもよく712、仮想コンピューティング環境サービスにアクセスし、ユーザが、1つまたは複数のデータファイルを開いてもよい彼/彼女の仮想コンピューティング環境にアクセスすることを可能にし得る。たとえば、1つまたは複数のプロセッサは、実行可能命令をコンピューティングデバイスのネットワークインターフェースサブシステムに送信してもよく、実行可能命令は、ネットワークインターフェースサブシステムに、仮想コンピューティング環境サービスとの通信チャネルを確立させてもよい。その後、1つまたは複数のプロセッサは、仮想コンピューティング環境サービスに、ユーザの仮想コンピューティング環境にアクセスするために必要な1つまたは複数のユーザ認証情報を提供してもよい。これは、仮想コンピューティング環境サービスが、ユーザを認証し、ユーザの仮想コンピューティング環境へのアクセスを提供することを可能にし得る。加えて、1つまたは複数のプロセッサは、選択された1つまたは複数のデータファイルを仮想コンピューティング環境サービスに送信して、それらを仮想コンピューティング環境内で使用することを可能にし得る。代替的な実施形態では、1つまたは複数のプロセッサは、仮想コンピューティング環境を生成するために使用され得る仮想機械インスタンスをプロビジョンするための要求を、仮想コンピューティング環境サービスに送信する。
【0052】
いったん仮想コンピューティング環境インターフェースを起動すると、1つまたは複数のプロセッサは、実行可能命令を仮想コンピューティング環境サーバに送信してもよく714、適切なアプリケーションを仮想コンピューティング環境内で起動させて、1つまたは複数のデータファイルを開いてもよい。これは、仮想コンピューティング環境サービスに、アプリケーションを起動させてもよく、1つまたは複数のデータファイルを仮想コンピューティング環境内で開かせ得る。さらに、これは、ユーザが、仮想コンピューティング環境インターフェースを通して、この遠隔アプリケーションと相互作用し、1つまたは複数の開かれたデータファイルを活用することを可能にし得る。
【0053】
上述した通り、ユーザのコンピューティングデバイス内に格納されている1つまたは複数のデータファイルを、位置決定アプリケーションに関連付けてもよく、位置決定アプリケーションは、1つまたは複数のデータファイルを、コンピューティング環境内でローカルに、または遠隔仮想コンピューティング環境内で、開くかどうかを判断するように構成され得る。したがって、図8は、少なくとも1つの実施形態による、1つまたは複数のポリシーを活用して、選択されたデータファイルを開いてもよいコンピューティング環境を決定するためのプロセス800の、例示的な実施例を示している。プロセス800を、前述の位置決定アプリケーションによって実行してもよく、位置決定アプリケーションは、選択された1つまたは複数のデータファイルに関連付けられた1つまたは複数のレジストリファイル及びユーザポリシーにアクセスして、1つまたは複数のデータファイルを開くかどうかを判断するように構成され得る。さらに、位置決定アプリケーションは、コンピューティングデバイスの1つまたは複数のプロセッサと相互作用して、他のアプリケーションをローカルコンピューティングデバイス環境内で起動させる、または遠隔仮想コンピューティング環境内での1つまたは複数のデータファイルへのアクセスを可能にする仮想コンピューティング環境インターフェースを起動させる、ように構成され得る。
【0054】
図7に関連して上記で説明した通り、コンピューティングデバイスの1つまたは複数のプロセッサは、ユーザが1つまたは複数のデータファイルを選択したことを検出すると、1つまたは複数のデータファイルを位置決定アプリケーションによって分析するかどうかを判断してもよい。たとえば、1つまたは複数のプロセッサは、1つまたは複数のデータファイルが選択された時にはデフォルトアプリケーションを起動させる、と決定するために、コンピューティングデバイスに、選択された1つまたは複数のデータファイルに関連付けられた1つまたは複数のレジストリファイルにアクセスさせてもよい。1つまたは複数のレジストリファイルが、起動されるデフォルトアプリケーションが位置決定アプリケーションであると規定する場合、1つまたは複数のプロセッサは、このアプリケーションを起動させて、1つまたは複数のデータファイルの分析を実行してもよい。
【0055】
位置決定アプリケーションを起動すると、アプリケーションは、1つまたは複数のプロセッサから、ユーザ情報及び/または選択された1つまたは複数のデータファイルの識別子を受信してもよい802。ユーザ情報及び/または選択された1つまたは複数のデータファイルの識別子は、位置決定アプリケーションが、選択された1つまたは複数のデータファイルに関連付けられ得るコンピューティングデバイス内に格納されている1つまたは複数のレジストリファイルを、特定することを可能にし得る。さらに、ユーザ情報及び/または選択された1つまたは複数のデータファイルの識別子は、位置決定アプリケーションが、特定のユーザ及び選択された1つまたは複数のデータファイルのファイル形式に関するこれらの1つまたは複数のレジストリファイル内に符号化されている任意の関連ポリシーを、識別することを可能にし得る804。たとえば、1つまたは複数のポリシーは、特定のデータファイル形式をユーザのコンピュータデバイス内で使用してもよいかどうかを規定してもよい。加えて、1つまたは複数のポリシーは、特定のユーザに対して、1つまたは複数のデータファイルをコンピューティングデバイスにインストールされている任意のアプリケーションを使用して開かない場合があるが、1つまたは複数のデータファイルには仮想コンピューティング環境を通してのみアクセスしてもよい、と規定してもよい。これらの1つまたは複数のポリシーを評価することによって、位置決定アプリケーションは、選択された1つまたは複数のデータファイルをローカルで開くかどうかを判断することができてもよい806。
【0056】
位置決定アプリケーションが、1つまたは複数のポリシーに少なくとも部分的に基づいて、1つまたは複数のデータファイルをローカルで開くと判断した場合、位置決定アプリケーションは、1つまたは複数のプロセッサに、ローカルアプリケーションをコンピューティングデバイス環境内で起動させて808、ローカルアプリケーションが1つまたは複数のデータファイルを開くことができるようにし、ユーザが、これらの1つまたは複数のデータファイルを、ローカルアプリケーションを通して活用できるようにし得る。代替的に、位置決定アプリケーションが、1つまたは複数のデータファイルを遠隔仮想コンピューティング環境内で開くと判断した場合、位置決定アプリケーションは、1つまたは複数のプロセッサに、仮想コンピューティング環境インターフェースを起動させ810、それにより、ユーザが、彼/彼女のコンピューティングデバイスを活用して彼/彼女の仮想コンピューティング環境にアクセスし、1つまたは複数のデータファイルを仮想コンピューティング環境内で開くことを可能にし得る。
【0057】
上述した通り、ユーザは、仮想コンピューティング環境インターフェースを活用して、仮想コンピューティング環境内に格納されている1つまたは複数のデータファイルを選択してもよい。仮想コンピューティング環境は、1つまたは複数のアプリケーションを含んでもよく、そのアプリケーションを使用して1つまたは複数のデータファイルを開いてもよい。しかしながら、いくつかの実施形態では、仮想コンピューティング環境は、選択された1つまたは複数のデータファイルを開くために必要なアプリケーションを含まない場合がある。そのような場合では、仮想コンピューティング環境サービスの管理サブシステムは、ユーザのコンピューティングデバイスまたは他のコンピューティング環境が適切なアプリケーションを含むかどうかを判断する必要があり得る。さらに、サービスは、ユーザがこれらのデータファイルをこれらの環境のうちの任意のものの中で開く権限を与えられているかどうかを判断する必要があり得る。したがって、図9は、少なくとも1つの実施形態による、データファイルを使用するためのアプリケーションが利用可能でないという判断に応答して、データファイルを別のコンピューティング環境に転送するためのプロセス900の例示的な実施例を示している。プロセス900を、前述の仮想コンピューティング環境サービスによって実行してもよく、仮想コンピューティング環境サービスは、ユーザに適応可能な1つまたは複数のポリシーを評価し、1つまたは複数のコンピューティング環境と相互作用するように構成され得る。
【0058】
ユーザが仮想コンピューティング環境と相互作用すると、彼/彼女は、この環境内に格納されている場合がある1つまたは複数のデータファイルを選択してもよい。これは、仮想コンピューティング環境サービスが、ユーザが仮想コンピューティング環境内の1つまたは複数のデータファイルを選択したことを検出する902と、選択されたデータファイルを開くために起動され得るアプリケーションがこの環境内で利用可能かどうかを判断する904と、を可能にし得る。たとえば、仮想コンピューティングシステムサービスは、仮想コンピューティング環境を生成するために使用される仮想機械画像を評価して、どのアプリケーションが環境内に含まれているかを判断してもよい。選択された1つまたは複数のデータファイルを開くために使用され得るアプリケーションが仮想コンピューティング環境内で利用可能である場合、仮想コンピューティング環境サービスは、適切なアプリケーションを起動させ906、1つまたは複数のデータファイルを仮想コンピューティング環境インターフェースを通して使用することを可能にし得る。
【0059】
アプリケーションが仮想コンピューティング環境内で利用可能でない場合、仮想コンピューティング環境サービスは、ユーザのコンピューティングデバイス(たとえば、ローカルコンピューティングデバイス環境)が、選択された1つまたは複数のデータファイルを開くために使用され得る1つまたは複数のアプリケーションを含むかどうかを判断してもよい908。たとえば、仮想コンピューティング環境サービスは、ユーザプロファイルデータストアにアクセスして、仮想コンピューティング環境のユーザに関連付けられたユーザプロファイルを特定してもよい。このユーザプロファイルは、ユーザのコンピューティングデバイスにインストールされている場合がある1つまたは複数のアプリケーションを規定してもよい。代替的に、仮想コンピューティング環境サービスは、コンピューティングデバイスにインストールされている1つまたは複数のアプリケーションに関する情報を要求するために、1つまたは複数のAPIコールをユーザのコンピューティングデバイスに送信してもよい。いずれの方法も、仮想コンピューティング環境サービスが、必要なアプリケーションがユーザのコンピューティングデバイスにインストールされているかどうかを判断することを可能にし得る910。
【0060】
仮想コンピューティング環境サービスは、コンピューティングデバイスが1つまたは複数のデータファイルを開くために使用され得るアプリケーションを含まない場合、ユーザに、1つまたは複数のデータファイルを開くための追加的なオプションを通知してもいい912。たとえば、いくつかの実施形態では、仮想コンピューティングシステムサービスは、ユーザに、選択された1つまたは複数のデータファイルを開くための1つまたは複数の適切なアプリケーションを含み得る他の仮想機械画像を通知し、彼/彼女がこの特定の仮想機械画像を物理ホスト上でインスタンス化したいかどうか、をユーザが決定できるようにしてもよい。代替的に、仮想コンピューティング環境サービスは、アプリケーションを見つけられないために、1つまたは複数のデータファイルを開くためのユーザの要求を拒否してもよい。代替的な実施形態では、仮想コンピューティング環境サービスは、ユーザが仮想コンピューティング環境アプリケーションマーケットプレースにアクセスすることを可能にしてもよく、そこで、ユーザは、1つまたは複数のデータファイルを開くために必要な1つまたは複数のアプリケーションのライセンスを取得することができ得る。ライセンスをこのマーケットプレースから取得すると、仮想コンピューティング環境サービスは、1つまたは複数のアプリケーションをインストールし、ライセンスが有効な限り、ユーザがこれらの1つまたは複数のアプリケーションを活用することを可能にすることによって、ユーザの仮想コンピューティング環境を補ってもよい。
【0061】
代替的に、1つまたは複数のデータファイルを開くために必要な1つまたは複数のアプリケーションが、ユーザのコンピューティングデバイス内で利用可能である場合、仮想コンピューティング環境サービスは、選択された1つまたは複数のデータファイルをユーザのコンピューティングデバイス環境内で開くための1つまたは複数のポリシーを特定してもよい914。たとえば、仮想コンピューティング環境サービスは、ユーザプロファイルデータストア内のユーザのプロファイルにアクセスして、コンピューティングデバイスの管理者または他の管理機関によって定められた、これらの1つまたは複数のポリシーを特定してもよい。1つまたは複数のポリシーは、どのデータファイル種類または形式を、ユーザのコンピューティングデバイス環境内で開いてもよい、及び/またはこの環境内で開いてはいけないか、を規定してもよい。これらの1つまたは複数のポリシーに少なくとも部分的に基づいて、仮想コンピューティング環境サービスは、選択された1つまたは複数のデータファイルを、ユーザのコンピューティングデバイスにインストールされているアプリケーションを使用して開いてもよいかどうか、を判断してもよい916。
【0062】
1つまたは複数のデータファイルをユーザのコンピューティングデバイス環境内で開いてはいけないと判断した結果として、仮想コンピューティング環境サービスは、ユーザに、1つまたは複数のデータファイルを開くための任意の追加的なオプションを通知してもよい912。しかしながら、1つまたは複数のデータファイルをユーザのコンピューティングデバイス環境内で開いてもよい場合、仮想コンピューティング環境サービスは、選択された1つまたは複数のデータファイルをユーザのコンピューティングデバイスに提供し918、1つまたは複数の実行可能命令をコンピューティングデバイスに送信してもよく、実行可能命令は、実行されると、コンピューティングデバイスに、1つまたは複数のデータファイルをユーザのコンピューティングデバイス環境内で使用することを可能にするために必要な1つまたは複数のアプリケーションを、起動させ得る。
【0063】
図10は、さまざまな実施形態による態様を実装するための例示的な環境1000の態様を示している。理解される通り、ウェブベースの環境を説明の目的のために使用するが、別の環境を必要に応じて使用して、さまざまな実施形態を実装してもよい。環境は、電子クライアントデバイス1002を含み、電子クライアントデバイス1002は、要求、メッセージ、または情報を、適切なネットワーク1004を介して送信及び/または受信するように、また、いくつかの実施形態では、情報をデバイスのユーザに伝えるように、動作可能である任意の適切なデバイスを含むことができる。そのようなクライアントデバイスの実施例は、パーソナルコンピュータ、携帯電話、携帯型メッセージデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、携帯情報端末、組込コンピュータシステム、電子ブックリーダ、及び同様なものを含む。ネットワークは、任意の適切なネットワークを含むことができ、それには、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、衛星ネットワーク、または任意の他のそのようなネットワーク、及び/またはそれらの組み合わせが含まれる。そのようなシステムのために使用される構成要素は、選択されたネットワーク及び/または環境に少なくとも部分的に依存し得る。そのようなネットワークを介して通信するためのプロトコル及び構成要素は、よく知られており、本明細書では詳細に説明しない。ネットワークを介した通信は、有線接続または無線接続によって、及びそれらの組み合わせによって、可能になり得る。本実施例では、ネットワークは、要求を受信し、それに応じてコンテンツを提供するためのウェブサーバ1006を含む環境としてインターネットを含むが、当業者に明白な通り、他のネットワークでは、同様の目的を果たす代替的なデバイスを使用することができる。
【0064】
例示的な環境は、少なくとも1つのアプリケーションサーバ1008とデータストア1010とを含む。繋がれまたは構成され、データを適切なデータストアから取得するなどのタスクを実行するように相互作用し得る、いくつかのアプリケーションサーバ、層または他の要素、プロセスまたは構成要素、があり得るということを理解すべきである。本明細書で使用するサーバを、ハードウェアデバイスまたは仮想コンピュータシステムなどのさまざまな方法で実装してもよい。いくつかの文脈では、サーバは、コンピュータシステム上で実行されているプログラミングモジュールを指してもよい。本明細書で使用する通り、特段に述べず、または文脈から明らかでない限り、「データストア」という用語は、データを格納し、それにアクセスし、それを読み出すことができる、任意のデバイスまたはデバイスの組み合わせを指し、データストアは、任意の組み合わせ及び数の、データサーバ、データベース、データストレージデバイスならびにデータストレージ媒体を、標準環境、分散環境、またはクラスター環境内に、含んでもよい。アプリケーションサーバは、データアクセスの一部または全部及びアプリケーションのビジネス論理を扱うクライアントデバイスのための、1つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと統合するための、任意の適切なハードウェア、ソフトウェア及びファームウェアを含むことができる。アプリケーションサーバは、アクセス制御サービスを、データストアと協力して提供してもよく、テキスト、グラフィック、オーディオ、ビデオを含むがこれらに限定されないコンテンツ、及び/またはユーザに提供するために使用可能な他のコンテンツ、を生成することができ、コンテンツは、ユーザに、ウェブサーバによって、ハイパーテキストマークアップ言語(「HTML」)、拡張マークアップ言語(「XML」)、ジャバスクリプト、カスケーディングスタイルシート(「CSS」)、または他の適切なクライアント側構造化言語の形式で、提供され得る。クライアントデバイスに転送されるコンテンツを、クライアントデバイスで処理して、1つまたは複数の形式のコンテンツを提供してもよく、形式には、ユーザが、聴覚的、視覚的に、及び/または手触り、味、及び/または匂いを含む他の感覚を通して感知可能な形式を含むが、これらに限定されない。すべての要求と応答との取り扱い、及びクライアントデバイス1002とアプリケーションサーバ1008との間でのコンテンツの提供は、PHP:ハイパーテキストプリプロセッサ(「PHP」)、Python、Ruby、Perl、Java、HTML、XML、または本実施例では別の適切なサーバ側構造化言語を使用するウェブサーバによって扱われ得る。本明細書で説明する構造化コードを、本明細書のどこかで説明する任意の適切なデバイスまたはホストマシン上で実行することができるために、ウェブサーバ及びアプリケーションサーバは必須ではなく、単に例示的な構成要素である、ということを理解すべきである。さらに、1つのデバイスによって実行されるとして本明細書で説明する動作は、文脈から明らかでない限り、分散システム及び/または仮想システムを形成し得る複数のデバイスによって集合的に実行され得る。
【0065】
データストア1010は、いくつかの別々のデータテーブル、データベース、データ文書、動的データストレージスキーム、及び/または本開示の特定の態様に関するデータを格納するための他のデータストレージ機構と媒体、を含むことができる。たとえば、例示のデータストアは、製品データ1012及びユーザ情報1016を格納するための機構を含んでもよく、それを使用して、製品側のコンテンツを提供することができる。データストアは、また、ログデータ1014を格納するための機構を含んで示されており、その機構を、報告、分析、または他のそのような目的のために使用することができる。ページ画像情報及びアクセス権情報などの、データストア内に格納される必要があり得る多くの他の態様があり得、それらを、上記で挙げた機構のうちの任意のものの中に適切に、またはデータストア1010内の追加的な機構の中に、格納することができる、ということを理解すべきである。データストア1010は、それに関連付けられた論理を通して、命令をアプリケーションサーバ1008から受信し、それに応じて、データを取得し、更新し、または処理するように動作可能である。アプリケーションサーバ1008は、受信命令に応答して、静的データ、動的データ、または静的データと動的データとの組み合わせを提供してもよい。ウェブログ(ブログ)、ショッピングアプリケーション、ニュースサービス及び他のそのようなアプリケーションの中で使用されるデータなどの動的データは、本明細書で説明したサーバ側構造化言語によって生成され得、またはアプリケーションサーバ上またはその制御のもとに動作するコンテンツ管理システム(「CMS」)によって提供され得る。一実施例では、ユーザは、ユーザによって操作されるデバイスを通して、特定の種類のアイテムに対する検索要求を提出してもよい。この場合、データストアは、ユーザ情報にアクセスして、ユーザの身元を確認してもよく、その種類のアイテムについての情報を取得するために、カタログ詳細情報にアクセスすることができる。情報を、その後、ユーザがユーザデバイス1002のブラウザを介して見ることができるウェブページ上の結果リスト内などで、ユーザに返すことができる。関心を持っている特定のアイテムの情報を、ブラウザの専用ページまたはウィンドウで見ることができる。しかしながら、本開示の実施形態は、必ずしもウェブページという文脈に限定されず、要求が必ずしもコンテンツに対する要求でない一般的要求を処理することに、より一般的に適用可能であり得る、ということに留意すべきである。
【0066】
各サーバは、通常、そのサーバの一般的管理及び動作のための実行可能プログラム命令を提供するオペレーティングシステムを含み、また、通常、サーバのプロセッサによって実行されると、サーバに意図された機能を実行させる命令を格納した、コンピュータ可読ストレージ媒体(たとえば、ハードディスク、ランダムアクセスメモリ、リードオンリーメモリ、など)を含む。オペレーティングシステムの適切な実装態様及びサーバの一般的機能は、知られており、または市販であり、当業者によって、特に本明細書の開示に照らして、容易に実装される。
【0067】
環境は、一実施形態では、1つまたは複数のコンピュータネットワークまたは直接接続を使用する通信リンクを介して相互接続された、いくつかのコンピュータシステム及び構成要素を活用する分散及び/または仮想コンピューティング環境である。しかしながら、そのようなシステムは、図10に例示したものよりも少ないまたは多い数の構成要素を有するシステム内で、等しく上手く動作することができる、ということを当業者は理解する。したがって、図10のシステム1000の描写は、本来例示的であり、本開示の範囲を限定するものではない、と解釈されるべきである。
【0068】
本開示の実施形態を、以下の条項を考慮して説明することができる。
1.実行可能命令を有して構成されたコンピューティングデバイスの制御のもとで、
データファイルを開くためのコマンドを示す、前記コンピューティングデバイスの入力デバイスへの入力を検出することであって、前記データファイルが、前記コンピューティングデバイスにインストールされている少なくとも1つのアプリケーションを使用してアクセス可能であり、前記データファイルが、対応するファイル種類を有する、検出することと、
前記ファイル種類に関連付けられたポリシーに少なくとも部分的に基づいて、前記データファイルを、前記コンピューティングデバイスの前記環境とは別の仮想コンピューティング環境内で開く、と決定することと、
前記データファイルを、前記仮想コンピューティング環境に提供することと、
1つまたは複数の実行可能命令を送信して、サーバに、前記データファイルを前記仮想コンピューティング環境内で開くために使用可能なアプリケーションを起動させることと、
を備える、コンピュータ実装方法。
【0069】
2.前記サーバから、修正データファイルを受信することであって、前記修正データファイルが、前記データファイルを前記アプリケーションを使用して前記仮想コンピューティング環境内で開いた結果として、作成される、受信することと、
前記データファイルと前記修正データファイルとを同期させることと、
をさらに備える、条項1に記載のコンピュータ実装方法。
【0070】
3.前記ポリシーが、前記コンピュータシステムのオペレーティングシステムのレジストリファイル内で符号化されており、前記レジストリファイルが、前記対応するファイル種類を有するデータファイルを、前記データファイルを前記仮想コンピューティング環境内で開くと決定するように構成された位置決定アプリケーションに関連付ける、と規定する、条項1または条項2に記載のコンピュータ実装方法。
【0071】
4.前記データファイルを前記仮想コンピューティング環境内で開くと決定した結果として、前記コンピューティングデバイスのユーザに関連付けられた1つまたは複数の認証情報を提供して、前記コンピューティングデバイスを、前記仮想コンピューティング環境にアクセスするために使用することを可能にすること、をさらに備える、条項1から条項3条いずれかに記載のコンピュータ実装方法。
【0072】
5.システムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されると、前記システムに、
第1のコンピューティング環境において、データファイルを開くためのコマンドを検出することと、
前記データファイルに関連付けられたポリシーに少なくとも部分的に基づいて、前記データファイルを第2のコンピューティング環境内で開くと決定することであって、前記第1のコンピューティング環境及び前記第2のコンピューティング環境が、ネットワークによって分けられている、決定することと、
前記データファイルを前記第2のコンピューティング環境内で開かせる情報を、前記第2のコンピューティング環境に送信することと、
を行わせる命令を含むメモリと、
を備える、前記システム。
【0073】
6.前記データファイルが、前記第1のコンピューティング環境内で使用可能な少なくとも1つのアプリケーションを使用してアクセス可能である、条項5に記載のシステム。
【0074】
7.前記ポリシーが、前記データファイルに関連付けられたレジストリファイル内で符号化されている、条項5または条項6に記載のシステム。
【0075】
8.前記第2のコンピューティング環境が、前記第1のコンピューティング環境のネットワークインターフェースを通してアクセス可能なシングルテナント仮想コンピューティング環境である、条項5から条項7のうちのいずれかに記載のシステム。
【0076】
9.前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記システムに、
前記第1のコンピューティング環境において、第2のデータファイルを開くためのコマンドを検出することと、
前記第2のデータファイルに関連付けられたポリシーに少なくとも部分的に基づいて、前記第2のデータファイルを、アプリケーションを使用して、前記第1のコンピューティング環境内で開く、と決定することと、
前記アプリケーションを起動させて、前記第2のデータファイルの使用を可能にすることと、
をさらに行わせる、条項5から条項8条のいずれかに記載のシステム。
【0077】
10.前記第1のコンピューティング環境が、前記システムに前記ネットワークを介してストリーミングされるシングルテナント仮想コンピューティング環境である、条項5から条項9のいずれかに記載のシステム。
【0078】
11.前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記システムに、
前記第2のコンピューティング環境から、修正データファイルを受信することであって、前記修正データファイルが、前記データファイルを前記アプリケーションを使用して前記第2のコンピューティング環境内で開いた結果として、作成される、受信することと、
前記データファイルと前記修正データファイルとを、前記第1のコンピューティング環境内で同期させることと、
をさらに行わせる、条項5から条項10のいずれかに記載のシステム。
【0079】
12.前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記システムに、前記データファイルを前記第2のコンピューティング環境で開くと決定した結果として、前記第1のコンピューティング環境のユーザコンピューティングデバイスに関連付けられた1つまたは複数の認証情報を提供して、前記ユーザコンピューティングデバイスが前記第2のコンピューティング環境にアクセスすることを可能にすること、をさらに行わせる、条項5から条項11のいずれかに記載のシステム。
【0080】
13コンピュータシステムの1つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、少なくとも、
第1のコンピューティング環境内で、対応するファイル種類を有するデータファイルを開くためのコマンドを検出したことに応答して、
前記ファイル種類に関連付けられたポリシーに少なくとも部分的に基づいて、シングルテナント仮想コンピューティング環境を、前記コンピュータシステムがアクセス可能な複数のシングルテナント仮想コンピューティング環境から選択することと、
前記データファイルを前記選択されたシングルテナント仮想コンピューティング環境内で開かせる情報を、前記選択されたコンピューティング環境に送信することと、
を行わせる実行可能命令をその上に格納して有する、非一時的コンピュータ可読ストレージ媒体。
【0081】
14.前記複数のシングルテナント仮想コンピューティング環境が、前記第1のコンピューティング環境を含む、条項13に記載の非一時的コンピュータ可読ストレージ媒体。
【0082】
15.前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、前記第1のコンピューティング環境のユーザコンピューティングデバイスに関連付けられた1つまたは複数の認証情報を提供して、前記ユーザコンピューティングデバイスが前記選択されたシングルテナント仮想コンピューティング環境にアクセスすることを可能にすること、を行わせる命令をさらに備える、条項13または条項14に記載の非一時的コンピュータ可読ストレージ媒体。
【0083】
16.前記第1のコンピューティング環境が、前記選択されたシングルテナント仮想コンピューティング環境とは別のオペレーティングシステムを含む、条項13から条項15のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
【0084】
17.
前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、前記シングルテナント仮想コンピューティング環境を前記複数のシングルテナント仮想コンピューティング環境から選択した結果として、前記選択されたシングルテナント仮想コンピューティング環境をプロビジョンさせる情報を送信すること、を行わせる命令をさらに含む、条項13から条項16のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
【0085】
18.前記ファイル種類に関連付けられた前記ポリシーが、前記シングルテナント仮想コンピューティング環境の序列を、前記複数のシングルテナント仮想コンピューティング環境のうちの各シングルテナント仮想環境の1つまたは複数のセキュリティ態様に少なくとも部分的に基づいて規定する、条項13から条項17のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
【0086】
19.前記ポリシーが、前記第1のコンピューティング環境のオペレーティングシステムのレジストリファイル内で符号化されており、前記レジストリファイルが、前記対応するファイル種類を有するデータファイルを、前記データファイルを前記選択されたシングルテナント仮想コンピューティング環境内で開くと決定するように構成された位置決定アプリケーションに関連付ける、と規定する、条項13から条項18のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
【0087】
20.前記データファイルが、前記第1のコンピューティング環境内で使用可能な少なくとも1つのアプリケーションを使用してアクセス可能である、条項13から条項19のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
【0088】
さまざまな実施形態を、さらに、多種多様の動作環境内で実装することができ、動作環境は、いくつかの場合では、1つまたは複数のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含むことができ、それを使用して、任意の数のアプリケーションを動作させることができる。ユーザデバイスまたはクライアントデバイスは、標準オペレーティングシステムを実行しているデスクトップコンピュータ、ノートパソコン、またはタブレットコンピュータなどの多数の汎用パーソナルコンピュータと、モバイルソフトウェアを実行しており、多数のネットワークプロトコルとメッセージングプロトコルとをサポートすることができる、セルラーデバイス、ワイヤレスデバイス及び携帯型デバイスのうちの任意のものを含むことができる。そのようなシステムは、また、さまざまな市販のオペレーティングシステムのうちの任意のもの及び他の知られているアプリケーションを、開発とデータベース管理などの目的のために実行している、多数のワークステーションを含むことができる。これらのデバイスは、また、ダミー端末、シンクライアント、ゲームシステム、及びネットワークを介して通信することができる他のデバイスなどの、他の電子デバイスを含むことができる。これらのデバイスは、また、仮想マシン、ハイパーバイザー、及びネットワークを介して通信することができる他の仮想デバイスなどの、仮想デバイスを含むことができる。
【0089】
本開示のさまざまな実施形態は、当業者がよく知っているであろう少なくとも1つのネットワークを、さまざまな市販のプロトコルのうちの任意のものを使用した通信をサポートするために活用し、プロトコルは、伝送制御プロトコル/インターネットプロトコル(「TCP/IP」)、ユーザデータグラムプロトコル(「UDP」)、オープンシステムインターコネクション(「OSI」)モデルのさまざまな層内で動作するプロトコル、ファイル転送プロトコル(「FTP」)、Universal Plug and Play(「UpnP」)、ネットワークファイルシステム(「NFS」)、Common Internet File System(「CIFS」)、及びAppleTalkなどである。ネットワークは、たとえば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、衛星ネットワーク、及びそれらの任意の組み合わせであってよい。
【0090】
ウェブサーバを活用する実施形態では、ウェブサーバは、さまざまなサーバアプリケーションまたは中間アプリケーションのうちの任意のものを実行することができ、ウェブサーバには、ハイパーテキスト転送プロトコル(「HTTP」)サーバ、FTPサーバ、共通ゲートウェイインターフェース(「CGI」)サーバ、データサーバ、ジャバサーバ、アパッチサーバ、及びビジネスアプリケーションサーバが含まれる。サーバ(複数可)は、また、1つまたは複数のウェブアプリケーションを実行することなどによって、プログラムまたはスクリプトを、ユーザデバイスからの要求に応じて実行することができ、ウェブアプリケーションは、Java(登録商標)、C、C#、またはC++などの任意のプログラム言語、またはRuby、PHP、Perl、Python、またはTCLなどの任意のスクリプト言語、並びにそれらの組み合わせで記述された、1つまたは複数のスクリプトまたはプログラムとして実装され得る。サーバ(複数可)は、また、データベースサーバを含んでもよく、それには、Oracle(登録商標)とMicrosoft(登録商標)とSybase(登録商標)及びIBM(登録商標)からの市販のもの、MySQL、Postgres、SQLite、MongoDBなどのオープンソースサーバ、ならびに構造化データまたは非構造化データを格納し、読み出し、それにアクセスすることができる任意の他のサーバが、限定せずに含まれる。データベースサーバは、テーブルベースサーバ、文書ベースサーバ、非構造化サーバ、関係型サーバ、非関係型サーバ、またはこれらの及び/または他のデータベースサーバの組み合わせを含んでもよい。
【0091】
環境は、上記で説明した通り、さまざまなデータストアと他のメモリ及びストレージ媒体を含むことができる。これらは、コンピュータのうちの1つまたは複数にローカルな(及び/またはその中に存在する)ストレージ媒体上、またはネットワーク内のコンピュータの任意のものまたは全部から離れているストレージ媒体上など、さまざまな場所に存在することができる。特定のセットの実施形態では、情報は、当業者がよく知っているストレージエリアネットワーク(「SAN」)内に存在してもよい。同様に、コンピュータ、サーバ、またはネットワークデバイスによる機能を実行するために必要なファイルを、必要に応じて、ローカル及び/または遠隔で格納してもよい。システムがコンピュータ制御デバイスを含む場合、各そのようなデバイスは、バスを介して電気的に結合され得るハードウェア要素を含むことができ、要素は、たとえば、少なくとも1つの中央処理装置(「CPU」または「プロセッサ」)、少なくとも1つの入力デバイス(たとえば、マウス、キーボード、コントローラ、タッチ画面、またはキーパッド)、及び少なくとも1つの出力デバイス(たとえば、表示デバイス、プリンタ、またはスピーカー)を含む。そのようなシステムは、また、1つまたは複数のストレージデバイスを含んでもよく、それらは、ディスクドライブ、ランダムアクセスメモリ(「RAM」)またはリードオンリーメモリ(「ROM」)などの光ストレージデバイス及び半導体ストレージデバイス、ならびに取り外し可能媒体デバイス、メモリカード、フラッシュカード、などである。
【0092】
そのようなデバイスは、また、コンピュータ可読ストレージ媒体リーダー、通信デバイス(たとえば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイス、など)、及び上記で説明した作業メモリを含むことができる。コンピュータ可読ストレージ媒体リーダーを、コンピュータ可読ストレージ媒体と接続することができ、またはそれを受け入れるように構成することができ、コンピュータ可読ストレージ媒体は、遠隔、ローカル、固定及び/または取り外し可能なストレージデバイスと、コンピュータ可読情報を一時的及び/またはより永久的に含み、格納し、送信し、読み出すためのストレージ媒体を表している。システム及びさまざまなデバイスは、また、通常、少なくとも1つの作業メモリデバイス内に配置された、多数のソフトウェアアプリケーション、モジュール、サービス、または他の要素を含み、それには、オペレーティングシステム、及びクライアントアプリケーションまたはウェブブラウザなどのアプリケーションプログラムが含まれる。代替的な実施形態は、上記で説明したものの多数の変形物を有することができる、ということを理解すべきである。たとえば、特注ハードウェアも使用してもよく、及び/または特定の要素を、ハードウェア、ソフトウェア(アプレットなどの携帯型ソフトウェアを含む)、または両方で実装してもよい。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続を使用してもよい。
【0093】
コードまたはコードの一部を格納するためのストレージ媒体及びコンピュータ可読媒体は、当技術分野で知られ、または使用される任意の適切な媒体を含むことができ、それには、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の保管及び/または送信のための任意の方法または技術で実装された、揮発性及び非揮発性媒体、取り外し可能及び固定媒体、などであるがこれらに限定されないストレージ媒体と通信媒体とを含むが、それらには、RAM、ROM、電気的消去可能プログラマブルリードオンリーメモリ(「EEPROM」)、フラッシュメモリまたは他のメモリ技術、コンパクトディスクリードオンリーメモリ(「CD−ROM」)、デジタル多用途ディスク(DVD)もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、もしくは所望の情報を格納するために使用され得、システムデバイスによってアクセスされ得る、任意の他の媒体が含まれる。本明細書で提供した開示と教示とに基づいて、当業者は、さまざまな実施形態を実装するための他のやり方及び/または方法を理解する。
【0094】
本明細書及び図面は、したがって、限定的というよりも、例示的な意味で解釈されるものである。しかしながら、特許請求の範囲に記載する本発明の広い精神と範囲とから逸脱せずに、さまざまな修正と変更をそれらに加えてもよいことは明白である。
【0095】
他の変形物は、本開示の精神の中に含まれる。したがって、開示の手法は、さまざまな修正物と代替的構造との影響を受けやすいが、それらの特定の例示的な実施形態が図面に示され、上記で詳細に説明された。しかしながら、本発明を開示した特定の形態(複数可)に限定する意図はなく、反対に、意図することは、添付の特許請求の範囲で定義する本発明の精神と範囲とに含まれるすべての修正物、代替的構造及び同等物を網羅することである、ということを理解すべきである。
【0096】
開示の実施形態を説明する文脈における(特に以下の特許請求の範囲の文脈における)、「a」、「an」、及び「the」という用語と、同様な指示の使用は、本明細書で特段に示さない限り、または文脈から明らかに矛盾しない限り、単数と複数の両方に及ぶものと解釈される。「comprising(備える)」、「having(有する)」、「including(含む)」、及び「containing(含む)」という用語は、特段に述べない限り、オープンエンドな用語(つまり、「含むが、限定されない」を意味する)として解釈されるものである。「connected(接続された)」という用語は、修飾されておらず、物理的接続を指している時は、何か間に介在するものがあったとしても、部分的または全体的に含まれている、取り付けられている、または結合されている、と解釈されるものである。本明細書における値の範囲の列挙は、単に、その範囲内の各1つ1つの値を個々に指すことの簡略方法となることを意図し、本明細書で特段に示さない限り、各1つ1つ値は、あたかもそれが個々に本明細書で列挙されたかのように、本明細書に組み込まれる。「set(セット)」(たとえば、「a set of items(アイテムのセット)」)または「subset(サブセット)」という用語は、特段に述べない限り、または文脈から矛盾しない限り、1つまたは複数のメンバーを備える非空の集合であると解釈されるものである。さらに、特段に述べない限り、または文脈から矛盾しない限り、対応するセットの「subset(サブセット)」という用語は、必ずしも、対応するセットの適切なサブセットを示してはおらず、サブセットと対応するセットは、等しい場合がある。
【0097】
「A、B及びCのうちの少なくとも1つ」という形式の表現などの接続言語または「A、B及びCのうちの少なくとも1つ」は、特段に述べない限り、または文脈から明らかに矛盾しない限り、アイテム、期間、などが、AもしくはBまたはC、またはA及びBならびにCから成るセットの任意の非空のサブセット、のいずれかであり得ることを示すために一般に使用される文脈で理解される。たとえば、3つのメンバーを有するセットの例示的な実施例では、「A、B及びCのうちの少なくとも1つ」という接続表現、及び「A、B及びCのうちの少なくとも1つ」は、以下のセット、{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}のうちの任意のものを指す。したがって、そのような接続言語は、一般に、特定の実施形態が、Aのうちの少なくとも1つ、Bのうちの少なくとも1つ、及びCのうちの少なくとも1つ、がそれぞれ存在することを必要とする、ということを暗示するようには意図されていない。
【0098】
本明細書で説明したプロセスの動作を、本明細書で特段に述べない限り、または文脈から明らかに矛盾しない限り、任意の適切な順番で実行することができる。本明細書で説明したプロセス(またはその変形物及び/または組み合わせ)を、実行可能命令を有して構成された1つまたは複数のコンピュータシステムの制御のもとで実行してもよく、1つまたは複数のプロセッサ上で集合的に実行されているコード(たとえば、実行可能命令、1つまたは複数のコンピュータプログラム、または1つまたは複数のアプリケーション)として、ハードウェアによって、またはそれらの組み合わせによって、実装してもよい。コードを、コンピュータ可読ストレージ媒体上に、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、格納してもよい。コンピュータ可読ストレージ媒体は、非一時的であってよい。
【0099】
本明細書で提供したあらゆる実施例及び例示的言語(たとえば、「such as(など)」)の使用は、本発明の実施形態を単により良く明らかにすることを意図しており、特段に特許請求されない限り、本発明の範囲に制限を課さない。本明細書中のどのような言葉遣いも、任意の特許請求されない要素が本発明の実施に必須であることを示していると、解釈されるべきではない。
【0100】
本開示の実施形態を、発明者が知る本発明を実行するためのベストモードを含んで、本明細書で説明した。それらの実施形態の変形物は、前述の説明を読むことで、当業者に明らかになってもよい。発明者は、熟練した技術者がそのような変形物を適切に使用することを期待し、発明者は、本開示の実施形態が、本明細書で具体的に説明した以外の方法で実施されることを意図している。したがって、本開示の範囲は、適用法が許す限り、本明細書に添付される特許請求の範囲に記載する本主題のすべての修正物及び同等物を含む。さらに、上記で説明した要素の任意の組み合わせは、本明細書で特段に述べない限り、または文脈から明らかに矛盾しない限り、そのすべての可能なバリエーションにおいて、本開示の範囲によって包含される。
【0101】
出版物、特許出願及び特許を含む本明細書で引用するすべての参考文献は、あたかもそれぞれの参考文献を、個々に、また具体的に示して、参照により組み込んだのと同じように、また、その全体を本明細書に記載したのと同じように、参照によって本明細書に組み込まれる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10