(57)【特許請求の範囲】
【請求項１】
（ａ）コンピューティングデバイスにより、クラウドベースのストレージプラットフォームに対する接続が利用可能かどうかを判別し、
（ｂ）前記クラウドベースのストレージプラットフォームに対する前記接続が利用可能であると判別したことに応答して、前記コンピューティングデバイスにより、ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させ、
（ｃ）前記コンピューティングデバイスにより、前記ローカルのキャッシュデータに基づいて、ネイティブデスクトップを表示する、方法であって、
前記同期させるステップ（ｂ）は、（ｂ１）前記クラウドベースのストレージプラットフォームから、リモート仮想デスクトップ上に維持される１つまたは複数のファイルを含むリモートデスクトップデータを受信し、ここにおいて前記リモート仮想デスクトップ上に維持される前記１つまたは複数のファイルは、前記リモート仮想デスクトップに関連する１または複数の仮想マシンを作成し管理するように構成されたハイパーバイザを含む仮想化サーバによって実行されるデスクトップ管理サービスによって、前記クラウドベースのストレージプラットフォーム上に記憶され、（ｂ２）前記クラウドベースのストレージプラットフォームから受信された前記リモートデスクトップデータを、前記ローカルのキャッシュデータを更新するために前記コンピューティングデバイス上のローカルキャッシュ内に保存する各ステップを含み、
前記表示するステップ（ｃ）は、（ｃ１）前記ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させている間に、前記リモート仮想デスクトップ上に維持され、前記コンピューティングデバイス上の前記ローカルキャッシュ内に保存されたリモートファイルに対応する、キャッシュされたファイルにアクセスするための要求を受信し、（ｃ２）前記ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させている間に、前記リモート仮想デスクトップ上に維持され、前記コンピューティングデバイス上の前記ローカルキャッシュ内に格納されたリモートファイルに対応する、前記キャッシュされたファイルを開くためにネイティブエディタが利用できるかどうかを判定し、（ｃ３）前記コンピューティングデバイス上でネイティブエディタが利用できると判定されたことに応じて、前記コンピューティングデバイス上のネイティブエディタを用いて、前記ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させている間に、前記リモート仮想デスクトップ上に維持され、前記コンピューティングデバイス上の前記ローカルキャッシュ内に格納されたリモートファイルに対応する、前記キャッシュされたファイルを開く、各ステップを含む、方法。
【請求項２】
前記ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させるステップ（ｂ）は、前記リモート仮想デスクトップ上で維持される少なくとも１つのファイルになされた１つまたは複数の変更に基づいて、前記ローカルのキャッシュデータを更新するステップを含む、請求項１に記載の方法。
【請求項３】
前記ローカルのキャッシュデータを同期させるステップは、前記リモート仮想デスクトップ上に維持される少なくとも１つのファイルに関連して、前記コンピューティングデバイス上の前記ローカルキャッシュに保存された少なくとも１つの対応するファイルになされた変更に基づいて、前記クラウドベースのストレージプラットフォームに格納された情報を更新するステップを含む、請求項１に記載の方法。
【請求項４】
前記ローカルキャッシュに基づいて前記ネイティブデスクトップを提示するステップは、前記リモート仮想デスクトップを表す１つまたは複数の要素の配置を提示するステップを含み、前記要素は、前記リモート仮想デスクトップに関連した背景、前記リモート仮想デスクトップに関連したメニューの配置、または前記リモート仮想デスクトップに関連したアイコンの配置、のいずれか１つもしくは複数である、請求項１に記載の方法。
【請求項５】
前記クラウドベースのストレージプラットフォームへの前記接続が用意されていない場合、前記ネイティブデスクトップが表示される、請求項１に記載の方法。
【請求項６】
前記コンピューティングデバイスは、前記クラウドベースのストレージプラットフォームに対する前記接続が利用できないと判別されたことに応答して、データを前記クラウドベースのストレージプラットフォームに同期させることを、前記コンピューティングデバイスに後の時刻に試行させるように、同期タイマーをリセットする、請求項１に記載の方法。
【請求項７】
前記コンピューティングデバイスは、前記コンピューティングデバイス上でネイティブエディタが利用できないと判定されたことに応じて、前記ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させている間に、前記リモート仮想デスクトップ上に維持され、前記コンピューティングデバイス上の前記ローカルキャッシュ内に格納された前記リモートファイルに対応する前記キャッシュされたファイルを開くための遠隔型アプリケーションを提示し、前記遠隔型アプリケーションは、仮想化サーバによって用意され、受信アプリケーションを通して、前記コンピューティングデバイス上に提示される、請求項１に記載の方法。
【請求項８】
前記ローカルのキャッシュデータに基づいて、前記ネイティブデスクトップを表示するステップ（ｃ）は、前記リモート仮想デスクトップに関連して前記仮想化サーバへのネットワーク接続ができないときに、前記コンピューティングデバイスのユーザが前記ネイティブデスクトップを見ることができるように構成された受信アプリケーションを用いて、前記ネイティブデスクトップを表示することを含む、請求項１に記載の方法。
【請求項９】
前記リモートデスクトップデータは、１もしくは複数のアプリケーションショートカット、１もしくは複数のドキュメント、１もしくは複数のレジストリキー、１もしくは複数の個人設定、または１もしくは複数のレイアウト設定を含む、請求項１に記載の方法。
【請求項１０】
前記コンピューティングデバイスは、前記コンピューティングデバイスに関連する状態情報に基づいて、前記ネイティブデスクトップ上で、前記ネイティブデスクトップのふるまいを制御する１または複数のポリシーを適用する、請求項１に記載の方法。
【請求項１１】
前記ネイティブデスクトップに適用される１または複数のポリシーのうち、少なくとも１つのポリシーは、前記コンピューティングデバイスに関連する状態情報に基づいて、１または複数の特定のアプリケーションが、前記コンピューティングデバイスの前記ローカルキャッシュに保存された前記リモートデスクトップデータにアクセスすることを選択的に禁止するように構成されている、請求項１０に記載の方法。
【請求項１２】
少なくとも１つのプロセッサと、コンピュータ読み取り可能な指示を格納したメモリと、を含むコンピューティングデバイスであって、前記指示は、前記少なくとも１つのプロセッサにより実行された場合に、
（ａ）コンピューティングデバイスにより、クラウドベースのストレージプラットフォームに対する接続が利用可能かどうかを判別し、
（ｂ）前記クラウドベースのストレージプラットフォームに対する前記接続が利用可能であると判別したことに応答して、前記コンピューティングデバイスにより、ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させ、
（ｃ）前記コンピューティングデバイスにより、前記ローカルのキャッシュデータに基づいて、ネイティブデスクトップを表示する、各ステップを行わせ、
前記同期させるステップ（ｂ）は、（ｂ１）前記クラウドベースのストレージプラットフォームから、リモート仮想デスクトップ上に維持される１つまたは複数のファイルを含むリモートデスクトップデータを受信し、ここにおいて前記リモート仮想デスクトップ上に維持される前記１つまたは複数のファイルは、前記リモート仮想デスクトップに関連する１または複数の仮想マシンを作成し管理するように構成されたハイパーバイザを含む仮想化サーバによって実行されるデスクトップ管理サービスによって、前記クラウドベースのストレージプラットフォーム上に記憶され、（ｂ２）前記クラウドベースのストレージプラットフォームから受信された前記リモートデスクトップデータを前記ローカルのキャッシュデータを更新するために前記コンピューティングデバイス上のローカルキャッシュ内に保存する各ステップを含み、
前記表示するステップ（ｃ）は、（ｃ１）前記ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させている間に、前記リモート仮想デスクトップ上に維持され、前記コンピューティングデバイス上の前記ローカルキャッシュ内に保存されたリモートファイルに対応する、キャッシュされたファイルにアクセスするための要求を受信し、（ｃ２）前記ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させている間に、前記リモート仮想デスクトップ上に維持され、前記コンピューティングデバイス上の前記ローカルキャッシュ内に格納されたリモートファイルに対応する、前記キャッシュされたファイルを開くためにネイティブエディタが利用できるかどうかを判定し、（ｃ３）前記コンピューティングデバイス上でネイティブエディタが利用できると判定されたことに応じて、前記コンピューティングデバイス上のネイティブエディタを用いて、前記ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させている間に、前記リモート仮想デスクトップ上に維持され、前記コンピューティングデバイス上の前記ローカルキャッシュ内に格納されたリモートファイルに対応する、前記キャッシュされたファイルを開く各ステップを含む、コンピューティングデバイス。
【請求項１３】
前記ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させるステップ（ｂ）は、前記リモート仮想デスクトップ上で維持される少なくとも１つのファイルになされた１つまたは複数の変更に基づいて、前記ローカルのキャッシュデータを更新するステップを含む、請求項１２に記載のコンピューティングデバイス。
【請求項１４】
前記ローカルのキャッシュデータを同期させるステップは、前記リモート仮想デスクトップ上に維持される少なくとも１つのファイルに関連して、前記コンピューティングデバイス上の前記ローカルキャッシュに保存された少なくとも１つの対応するファイルになされた変更に基づいて、前記クラウドベースのストレージプラットフォームに格納された情報を更新するステップを含む、請求項１２に記載のコンピューティングデバイス。
【請求項１５】
前記ローカルキャッシュに基づいて前記ネイティブデスクトップを提示するステップは、前記リモート仮想デスクトップを表す１つまたは複数の要素の配置を提示するステップを含み、前記要素は、前記リモート仮想デスクトップに関連した背景、前記リモート仮想デスクトップに関連したメニューの配置、または前記リモート仮想デスクトップに関連したアイコンの配置、のいずれか１つもしくは複数である、請求項１２に記載のコンピューティングデバイス。
【請求項１６】
前記クラウドベースのストレージプラットフォームへの前記接続が用意されていない場合、前記ネイティブデスクトップが表示される、請求項１２に記載のコンピューティングデバイス。
【請求項１７】
前記メモリは、コンピュータ読み取り可能な追加の指示を格納し、前記追加の指示は、前記少なくとも１つのプロセッサにより実行された場合に、
前記クラウドベースのストレージプラットフォームに対する前記接続が利用できないと判別されたことに応答して、データを前記クラウドベースのストレージプラットフォームに同期させることを、前記コンピューティングデバイスに後の時刻に試行させるように、同期タイマーをリセットする、請求項１２に記載のコンピューティングデバイス。
【請求項１８】
前記メモリは、コンピュータ読み取り可能な追加の指示を格納し、前記追加の指示は、前記少なくとも１つのプロセッサにより実行された場合に、
前記コンピューティングデバイス上でネイティブエディタが利用できないと判定されたことに応じて、前記ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させている間に、前記リモート仮想デスクトップ上に維持され、前記コンピューティングデバイスの前記ローカルキャッシュ内に格納された前記リモートファイルに対応するキャッシュされたファイルを開くための遠隔型アプリケーションを提示し、前記遠隔型アプリケーションは、仮想化サーバによって用意され、受信アプリケーションを通して、前記コンピューティングデバイス上に提示される、請求項１２に記載のコンピューティングデバイス。
【請求項１９】
前記ローカルのキャッシュデータに基づいて、前記ネイティブデスクトップを表示するステップ（ｃ）は、前記リモート仮想デスクトップに関連して前記仮想化サーバへのネットワーク接続ができないときに、前記コンピューティングデバイスのユーザが前記ネイティブデスクトップを見ることができるように構成された受信アプリケーションを用いて、前記ネイティブデスクトップを表示することを含む、請求項１２に記載のコンピューティングデバイス。
【請求項２０】
不揮発性の、コンピュータで読み取り可能な命令を格納した１または複数の記憶媒体であって、前記命令は、コンピューティングデバイスにより実行された場合に、
（ａ）コンピューティングデバイスにより、クラウドベースのストレージプラットフォームに対する接続が利用可能かどうかを判別し、
（ｂ）前記クラウドベースのストレージプラットフォームに対する前記接続が利用可能であると判別したことに応答して、前記コンピューティングデバイスにより、ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させ、
（ｃ）前記コンピューティングデバイスにより、前記ローカルのキャッシュデータに基づいて、ネイティブデスクトップを表示する、各処理を行わせ、
前記同期させる処理（ｂ）は、（ｂ１）前記クラウドベースのストレージプラットフォームから、リモート仮想デスクトップ上に維持される１つまたは複数のファイルを含むリモートデスクトップデータを受信し、ここにおいて前記リモート仮想デスクトップ上に維持される前記１つまたは複数のファイルは、前記リモート仮想デスクトップに関連する１または複数の仮想マシンを作成し管理するように構成されたハイパーバイザを含む仮想化サーバによって実行されるデスクトップ管理サービスによって、前記クラウドベースのストレージプラットフォーム上に記憶され、（ｂ２）前記クラウドベースのストレージプラットフォームから受信された前記リモートデスクトップデータを前記ローカルのキャッシュデータを更新するために前記コンピューティングデバイス上のローカルキャッシュ内に保存する各処理を含み、
前記表示する処理（ｃ）は、（ｃ１）前記ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させている間に、前記リモート仮想デスクトップ上に維持され、前記コンピューティングデバイス上の前記ローカルキャッシュ内に保存されたリモートファイルに対応する、キャッシュされたファイルにアクセスするための要求を受信し、（ｃ２）前記ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させている間に、前記リモート仮想デスクトップ上に維持され、前記コンピューティングデバイス上の前記ローカルキャッシュ内に格納されたリモートファイルに対応する、前記キャッシュされたファイルを開くためにネイティブエディタが利用できるかどうかを判定し、（ｃ３）前記コンピューティングデバイス上でネイティブエディタが利用できると判定されたことに応じて、前記コンピューティングデバイス上のネイティブエディタを用いて、前記ローカルのキャッシュデータを前記クラウドベースのストレージプラットフォームと同期させている間に、前記リモート仮想デスクトップ上に維持され、前記コンピューティングデバイス上の前記ローカルキャッシュ内に格納されたリモートファイルに対応する、前記キャッシュされたファイルを開く各処理を含む、記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータハードウェアおよびコンピュータソフトウェアに関するものである。特に、本発明の１つまたは複数の態様は、大略的に、リモートデスクトップからマイニング（mined from）されたクラウド同期型データを使って、（たとえば、モバイルデバイスなどのクライアントデバイス上に）ネイティブデスクトップを提供するためのコンピュータハードウェアおよびコンピュータソフトウェアに関するものである。
【背景技術】
【０００２】
モバイルデバイス（たとえば、スマートフォン、タブレット型コンピュータ、他の種類のモバイル型コンピューティングデバイスなど）が普及している。人々は、様々な目的のために個人用の設定およびビジネス用の設定において、モバイルデバイスを盛んに使用している。さらに、多くの人々は、今や、１つまたは複数のモバイルデバイスを含む複数のコンピューティングデバイスを有しており、これら様々なデバイスは、異なる物理的な場所にある場合が多い。たとえば、ユーザは、ユーザの家または事務所に典型的に位置する仕事用のラップトップ型コンピュータと、ユーザが行くところのどこへでも持っていくことができるモバイルデバイスと、を所有する場合がある。
【０００３】
特定の人がどこにいようが、またはどのようなデバイスを使おうが、ユーザは、自分の電子ファイル、設定、および他の情報に、当該ユーザが携帯するデバイスを介して、アクセスしたいと望む場合がある。さらに、そのようなユーザは、身近なおよび／または一貫した方法で自分の情報が提示される場合、比較的快適にその情報に対して、アクセス、閲覧、編集、および／または相互にやりとり（interact）することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、具体的には、ユーザが雇用主所有の仕事用のコンピュータおよび個人用のモバイルデバイスなど複数の異なるコンピューティングデバイスを有する場合、ユーザが、ユーザのデータに対して、アクセス、閲覧、編集、および／または他の形でやりとりできる、便利で、機能的で、かつ簡単な使用方法を、様々なシステムおよび手法を通して提供する。
【課題を解決するための手段】
【０００５】
以下に詳細に議論されるいくつかの本発明の態様は、ユーザにより１つのデスクトップ上（たとえば、典型的には、仕事用コンピュータ上に提供される、および／または仕事用コンピュータを介してアクセスされるソースデスクトップ上）に作成、編集、および／または他の形で使用された情報を、他の異なるデスクトップ（たとえば、ユーザのモバイルデバイス上に提供され、および／またはユーザのモバイルデバイスを介してアクセスされるターゲットデスクトップ）と同期するための手法を提供する。
【０００６】
情報は、クラウドベースのデータストレージプラットフォームを使って同期されてもよく、同期された情報は、マイニング（mine）されてもよく、および／または他の形でソースデスクトップから多くの異なる方法（たとえば、オペレーティングシステムおよび／またはソースデスクトップ上の１つまたは複数のアプリケーションで使用される様々なファイル、設定、および／または他のデータを特定、抽出、分析、および／または選択的に格納することによって、ユーザと関連付けられた様々なユーザプロファイル情報を特定、抽出、および／または格納することによってなど）で取得されてもよい。
【０００７】
さらに、この同期された情報を使って、ユーザのモバイルデバイスは、ネイティブデスクトップを提示、表示、および／または他の形で提供してもよい。そのようなネイティブデスクトップは、ユーザが、ユーザのモバイルデバイス上の情報に対して、ネイティブにオン状態にされ、および／またはモバイルデバイスおよびそのオペレーティングシステムにより提供されるデスクトップにおいて、アクセス、閲覧、編集、および／またはやりとりできるようにするだけではなく、モバイルデバイスが、ソースデスクトップ（モバイルデバイス上に設けられたネイティブデスクトップに対して、リモートデスクトップと考えられる）および／または他のネットワークと接続が確立できないような場合でも、そのようなアクセス、閲覧、編集、および／またはやりとりを生じさせることも可能である。
【０００８】
以下により詳細に記載するこれらの手法および／または他の特徴および機能の様々な態様を利用することにより、具体的には、ユーザが他のリモートコンピュータシステムおよび／またはコンピューティング環境に格納、維持、および／または他の形で使用される情報に対して、アクセス、閲覧、編集、および／または他の形でやりとりすることを望む状況において、よりよい利便性、機能性、および使い易さをモバイルデバイスのユーザに提供することができる。
【０００９】
よって、以下に記載されるいくつかの実施形態では、少なくとも１つのコンピューティングデバイスにより提供されるデスクトップ管理サービスは、リモートデスクトップからのデータを選択的に格納してもよい。その後、デスクトップ管理サービスは、格納されたデータをクラウドベースのデータストレージプラットフォームと同期させてもよい。その後、デスクトップ管理サービスは、同期されたデータを使って、ネイティブデスクトップをクライアントデバイス上（たとえば、スマートフォン、タブレット型コンピュータ、ラップトップ型コンピュータ、またはその他のいくつかのタイプのモバイル型コンピューティングデバイスなどのモバイルデバイス上であってもよい）に提示させてもよい。
【００１０】
いくつかの構成では、抽出、分析、および／または選択的に格納されたデータは、１つもしくは複数のアプリケーションショートカット、１つもしくは複数のドキュメント、１つもしくは複数のレジストリキー、１つもしくは複数の個人設定、または１つもしくは複数のレイアウト設定を含んでいてもよい。さらに／あるいは（Additionaly or alternatively）、リモートデスクトップは、第１のオペレーティングシステムと関連付けられてもよく、ネイティブデスクトップは、第１のオペレーティングシステムとは異なる第２のオペレーティングシステムと関連付けられてもよい。
【００１１】
いくつかの実施形態では、ネイティブデスクトップをクライアントデバイス上に提示させることは、ネイティブデスクトップの少なくとも１つのネイティブアプリケーションを使って、同期されたデータのうち少なくとも一部を提示させることを含んでいてもよい。いくつかの追加および／または代替的な実施形態では、ネイティブデスクトップをクライアントデバイス上に提示させることは、同期されたデータのうち少なくとも一部用のネイティブビューイングアプリケーションが利用不可能な場合、遠隔型アプリケーションをクライアントデバイス上に提示させることを含んでいてもよい。
【００１２】
いくつかの実施形態では、ネイティブデスクトップをクライアントデバイス上に提示させた後、バックグラウンド接続を、クライアントデバイスと、リモートデスクトップを提供するように構成された第２のデバイスとの間に確立させてもよい。いくつかの追加および／または代替的な実施形態では、ネイティブデスクトップをクライアントデバイス上に提示させた後、同期されたデータのうち少なくとも一部に対するクライアントデバイスになされた変更は、クラウドベースのデータストレージプラットフォームと同期されてもよい。
【００１３】
以下に記載するその他の実施形態では、コンピューティングデバイスは、クラウドベースのストレージプラットフォームに対する接続が利用可能かどうかを判断してもよい。クラウドベースのストレージプラットフォームに対する接続が利用可能であると判断したことに対応して、コンピューティングデバイスは、ローカルのキャッシュデータをクラウドベースのストレージプラットフォームと同期させてもよく、ローカルのキャッシュデータは、リモートデスクトップ上に維持される１つまたは複数のファイルを含んでいてもよい。次に、コンピューティングデバイスは、ローカルのキャッシュデータに基づいて、ネイティブデスクトップを提示してもよい。
【００１４】
いくつかの例では、ローカルのキャッシュデータをクラウドベースのストレージプラットフォームと同期させることは、リモートデスクトップ上の少なくとも１つのファイルになされた１つまたは複数の変更に基づいて、ローカルのキャッシュデータを更新することを含んでいてもよい。さらに／あるいは、ローカルのキャッシュデータを同期させることは、コンピューティングデバイス上の少なくとも１つのファイルになされた変更に基づいて、クラウドベースのストレージプラットフォームに格納された情報を更新することを含んでいてもよい。
【００１５】
いくつかの例では、ネイティブデスクトップを提示することは、キャッシュされたファイルにアクセスするための要求を受信することと、ネイティブエディタ内のキャッシュされたファイルを開くことと、を含んでいてもよい。さらに／あるいは、ネイティブデスクトップを提示することは、リモートデスクトップを表す１つまたは複数の要素の配置を提示することを含んでいてもよい。
【００１６】
１つまたは複数の配置では、コンピューティングデバイスからクラウドベースのストレージプラットフォームへの接続が利用不可能な場合、ネイティブデスクトップを（たとえば、コンピューティングデバイスにより）提示してもよい。
【００１７】
以上に記載した特徴は、多くの他の特徴とともに、以下の図面を参照しながら以下により詳細に説明される。
【００１８】
以下の図面において、類似の参照符号は類似の要素を示す。
【図面の簡単な説明】
【００１９】
【図１】本発明の１つまたは複数の実施形態に従って使用されるコンピュータシステムのアーキテクチャを示す図である。
【図２】本発明の１つまたは複数の実施形態に従って使用されるリモートアクセスシステムのアーキテクチャを示す図である。
【図３】本発明の１つまたは複数の実施形態に従って使用される仮想化（ハイパーバイザ）システムのアーキテクチャを示す図である。
【図４】本発明の１つまたは複数の実施形態に従って使用されるクラウドベースのシステムのアーキテクチャを示す図である。
【図５】本発明の１つまたは複数の実施形態に従って使用される企業モビリティ管理システムを示す図である。
【図６】本発明の１つまたは複数の実施形態に従って使用される他の企業モビリティ管理システムを示す図である。
【図７】本発明の１つまたは複数の実施形態に従う、クラウド同期型データを使ってネイティブデスクトップを提供する方法を示すフローチャートである。
【図８】本発明の１つまたは複数の実施形態に従う、クラウド同期型データを使ってネイティブデスクトップを提供する際の、モバイルデバイスに表示されるユーザインターフェースを示す図である。
【図９】本発明の１つまたは複数の実施形態に従う、クラウド同期型データを使ってネイティブデスクトップを提供する際の、モバイルデバイスに表示されるユーザインターフェースを示す図である。
【図１０】本発明の１つまたは複数の実施形態に従う、クラウド同期型データを使ってネイティブデスクトップを提供する際の、モバイルデバイスに表示されるユーザインターフェースを示す図である。
【図１１】本発明の１つまたは複数の実施形態に従う、クラウド同期型データを使ってネイティブデスクトップを提供する際の、モバイルデバイスに表示されるユーザインターフェースを示す図である。
【図１２】本発明の１つまたは複数の実施形態に従う、クラウド同期型データを使ってネイティブデスクトップを提供する際の、モバイルデバイスに表示されるユーザインターフェースを示す図である。
【図１３】本発明の１つまたは複数の実施形態に従う、クラウド同期型データを使ってネイティブデスクトップを提供するシステムの一実施例を示す図である。
【図１４】本発明の１つまたは複数の実施形態に従う、コンピューティングデバイスにネイティブデスクトップを提示する様々な方法を示すフローチャートである。
【図１５】本発明の１つまたは複数の実施形態に従う、コンピューティングデバイスにネイティブデスクトップを提示する様々な方法を示すフローチャートである。
【図１６】本発明の１つまたは複数の実施形態に従う、コンピューティングデバイスにネイティブデスクトップを提示する様々な方法を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下の説明では、上で特定された、本明細書の一部をなす添付図面に対する言及がなされる。該図面では、本発明が実施される様々な実施形態が例として示されている。しかし他の実施形態が利用されてもよく、かつ本明細書に記載されている範囲から逸脱することなく、構造的で機能的な変形例が示されてもよい。発明は、他の実施形態を可能とし、様々な異なる方法で実施または遂行可能である。
【００２１】
さらに、本明細書に使用される語法および専門用語は説明のためのものであり、限定するものとして解釈されるべきではない。むしろ、本明細書で使用されるフレーズおよび用語には、最も広い解釈および意味が付与されるべきである。例えば「含む」および「備える」ならびにその派生語が使用されると、この後に列記される項目およびその均等物ならびに追加の項目およびその均等物が包括される。
【００２２】
上述のように、クライアントデバイス上に提供されたネイティブデスクトップから離れた他のデスクトップからマイニングされた（たとえば、抽出、分析、および／または選択的に格納された）データを含むクラウド同期型データを使って、ネイティブデスクトップを、たとえばモバイルデバイスなどのクライアントデバイス上に離れた他のデスクトップから提供することに関するある実施形態が本明細書で論じられる。これらのコンセプトをより詳細に論じる前に、本発明の様々な態様を実施および／または他の形で提供するために使用されるコンピューティングアーキテクチャおよび企業モビリティ管理アーキテクチャのいくつかの実施例を図１〜図６を参照してまず論じる。
【００２３】
コンピュータソフトウェア、ハードウェア、およびネットワークは、とりわけ、スタンドアロン型、ネットワーク型、リモートアクセス（別名、リモートデスクトップ）型、仮想化型、および／またはクラウドベースの各環境を含む、様々な異なるシステム環境において利用される。
【００２４】
図１は、スタンドアロン型および／またはネットワーク型環境における、本明細書で説明される１つまたは複数の態様を実施するために使用されるシステムのアーキテクチャおよびデータ処理装置の一実施例を示す図である。様々なネットワークノード１０３、１０５、１０７、および１０９が、インターネットなどのワイドエリアネットワーク（ＷＡＮ）１０１を介して相互接続されている。プライベートイントラネット、コーポレートネットワーク、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイヤレスネットワーク、パーソナルネットワーク（ＰＡＮ）などを含む、他のネットワークもまた、あるいは代わりに、使用されてもよい。ネットワーク１０１は、例示を目的とするものであり、より少ないまたは追加のコンピュータネットワークで代替されてもよい。ＬＡＮは、１つまたは複数の任意の既知のＬＡＮトポロジーを有してもよく、イーサネット（登録商標）などの、１つまたは複数の様々な異なるプロトコルを使用してもよい。デバイス１０３、１０５、１０７、１０９、および（図示されない）他のデバイスは、ツイストペア線、同軸ケーブル、光ファイバ、電波、または他の通信媒体を介して、１つもしくは複数のネットワークに接続されていてもよい。
【００２５】
本明細書に使用され、かつ図面に示される際、用語「ネットワーク」は、遠隔記憶装置が１つまたは複数の通信パスを介して連結されているシステムだけを意味するのではなく、記憶能力を有するシステムなどとしばしば結合されてもよいスタンドアロン型デバイスをも意味する。したがって、用語「ネットワーク」は、「物理的なネットワーク」だけではなく、物理的なネットワーク全体に存在する（単一のエンティティに帰属可能な）データから構成される「コンテントネットワーク」をも意味する。
【００２６】
コンポーネントは、データサーバ１０３と、ウェブサーバ１０５と、クライアントコンピュータ１０７、１０９と、を含んでいてもよい。データサーバ１０３は、本発明の１つまたは複数の実施形態を行うためのデータベースおよび制御ソフトウェアの全体のアクセス、制御、および管理（administration）を提供する。データサーバ１０３は、ユーザがデータと相互にやりとり（interact）し、要求に応じてデータを取得するためのウェブサーバ１０５に接続されている。あるいは、データサーバ１０３は、ウェブサーバ自体として機能してもよく、インターネットに直接接続されていてもよい。データサーバ１０３は、直接的もしくは間接的な接続を介して、またはいくつかの他のネットワークを介して、ネットワーク１０１（たとえば、インターネット）によってウェブサーバ１０５に接続されている。
【００２７】
ユーザは、リモートコンピュータ１０７、１０９を使って、たとえば、ウェブサーバ１０５によりホスティングされた１つまたは複数の外部に露出したウェブサイトを介して、データサーバ１０３に接続するためのウェブブラウザを使って、データサーバ１０３と相互にやりとりしてもよい。クライアントコンピュータ１０７、１０９は、データサーバ１０３に格納されたデータにアクセスするためにデータサーバ１０３と協調して使用されてもよく、または他の目的のために使用されてもよい。たとえば、クライアントデバイス１０７から、ユーザは、当業界で既知のように、インターネットブラウザを使用して、またはウェブサーバ１０５および／もしくはデータサーバ１０３とコンピュータネットワーク（インターネットなど）上で通信するソフトウェアアプリケーションを実行することによって、ウェブサーバ１０５にアクセスしてもよい。
【００２８】
サーバおよびアプリケーションは、同一の物理的なマシン上で組み合わせされてもよく、別個の仮想アドレスもしくは論理アドレスを保持してもよく、または別個の物理的なマシン上に存在してもよい。
【００２９】
図１は、使用されているネットワークアーキテクチャの一実施例だけを示すものであり、本明細書でさらに説明されるように、使用される具体的なネットワークアーキテクチャおよびデータ処理装置が変更されてもよく、それらが提供する機能の方が重要であることを当業者は理解するだろう。たとえば、ウェブサーバ１０５およびデータサーバ１０３により提供されるサービスは、単一のサーバ上で組み合わされてもよい。
【００３０】
各コンポーネント１０３、１０５、１０７、１０９は、任意のタイプの既知のコンピュータ、サーバ、またはデータ処理装置であってもよい。データサーバ１０３は、たとえば、レートサーバ１０３の全体的な動作を制御するプロセッサ１１１を含んでいてもよい。データサーバ１０３は、ＲＡＭ１１３と、ＲＯＭ１１５と、ネットワークインターフェース１１７と、入出力インターフェース１１９（たとえば、キーボード、マウス、ディスプレイ、プリンタなど）と、メモリ１２１と、をさらに含んでいてもよい。
【００３１】
Ｉ／Ｏ１１９は、データまたはファイルを読み込み、書き込み、表示し、および／または印刷するための様々なインターフェースユニットおよびドライブを含んでいてもよい。メモリ１２１は、データ処理装置１０３の全体的な動作を制御するためのオペレーティングシステムソフトウェア１２３と、本明細書で説明される態様を行うデータサーバ１０３を指示するための制御ロジック１２５と、本明細書で説明される態様とともに使用されてもよく、または使用されなくてもよい二次的、支援および／または他の機能を提供する他のアプリケーションソフトウェア１２７と、をさらに含んでいてもよい。
【００３２】
制御ロジックは、本明細書においてデータサーバソフトウェア１２５として言及されるものでもよい。データサーバソフトウェアの機能は、制御ロジックにコーディングされたルールに基づいて自動的になされる動作または決定、システムへ入力するユーザにより手動でなされる動作または決定、および／またはユーザ入力（たとえば、クエリ、データアップデートなど）に基づく自動処理の組み合わせによりなされる、動作または決定を指す。
【００３３】
メモリ１２１はまた、本明細書で説明される１つまたは複数の態様を行う際に使用されるデータを、第１のデータベース１２９および第２のデータベース１３１を含むデータベースに格納していてもよい。いくつかの実施形態では、第１のデータベースは、第２のデータベースを（たとえば、セパレートテーブル、レポートなどとして）含んでいてもよい。つまり、情報を、単一のデータベースに格納することができ、または、システム設計により、異なるロジカルデータベース、仮想データベース、もしくは物理的データベースに分離することもできる。デバイス１０５、１０７、１０９は、デバイス１０３に関して説明されるように、同様のまたは異なるアーキテクチャを有してもよい。当業者であれば、データ処理装置１０３（またはデバイス１０５、１０７、１０９）の本明細書で説明される機能は、たとえば、複数のコンピュータに亘って処理負荷を分配したり、地理的位置、ユーザアクセスレベル、サービス品質（ＱｏＳ）などに基づいてトランザクションを分けたりするために、複数のデータ処理装置に亘って分散されてもよいことが理解されよう。
【００３４】
本発明の１つまたは複数の態様は、１つまたは複数のコンピュータまたは本明細書で説明される他のデバイスにより実行される、１つまたは複数のプログラムモジュールにおいてなど、コンピュータ使用可能もしくは読み取り可能なデータおよび／またはコンピュータで実行可能な指示において具現化されてもよい。一般に、プログラムモジュールは、コンピュータまたは他のデバイス内のプロセッサにより実行された場合、特定のタスクを実行し、または特定のアブストラクトデータタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。モジュールは、実行のためにその後コンパイルされるソースコードプログラミング言語で記述されてもよく、（限定はされないが）Ｊａｖａ（登録商標）ｓｃｒｉｐｔまたはＡｃｔｉｏｎＳｃｒｉｐｔなどのスクリプト言語で記述されてもよい。
【００３５】
コンピュータ実行可能な指示は、非揮発性記憶装置などのコンピュータ読み取り可能媒体に格納されてもよい。ハードディスク、ＣＤ−ＲＯＭ、光学記憶装置、磁気記憶装置、および／または任意のそれらの組み合わせを含む、任意の適切なコンピュータ読み取り可能記憶媒体が利用されてもよい。さらに、本明細書で説明されるデータまたはイベントを表す様々な送信（非記憶）媒体は、金属線、光ファイバ、および／または無線送信媒体（たとえば、空気および／または空間）などの信号伝導媒体を通って移動する電磁波の形態で送信元と送信先との間を伝送されてもよい。
【００３６】
本明細書で説明される様々な態様は、方法、データ処理システム、またはコンピュータプログラムプロダクトとして具現化されてもよい。したがって、ソフトウェア、ファームウェアおよび／またはハードウェア、または集積回路などのハードウェア均等物、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの全体または一部において様々な機能が具現化されてもよい。特定のデータ構造を使って、本明細書で説明される１つまたは複数の態様をさらに効率的に実施してもよく、そのようなデータ構造は、本明細書で説明されるコンピュータで実行可能な指示およびコンピュータで使用可能なデータの範囲内であると想到される。
【００３７】
図２をさらに参照して、本明細書で説明される１つまたは複数の態様は、リモートアクセス環境において実施されてもよい。図２は、本発明に説明される１つまたは複数の実施形態に従って利用されるコンピューティング環境２００における汎用コンピューティングデバイス２０１を含むシステムのアーキテクチャを示す。汎用コンピューティングデバイス２０１は、クライアントアクセスデバイスに対して仮想マシンを提供するように構成された単一のサーバまたはマルチサーバデスクトップ仮想化システム（たとえば、リモートアクセスまたはクラウドシステム）内のサーバ２０６ａとして使用される。汎用コンピューティングデバイス２０１は、サーバと、ランダムアクセスメモリ（ＲＡＭ）２０５、読出し専用メモリ（ＲＯＭ）２０７、入出力（Ｉ／Ｏ）モジュール２０９、およびメモリ２１５を含む、その関連するコンポーネントと、の全体の動作を制御するためのプロセッサ２０３を有している。
【００３８】
Ｉ／Ｏモジュール２０９としては、汎用コンピューティングデバイス２０１のユーザが入力するためのマウス、キーパッド、タッチスクリーン、スキャナ、光学リーダ、および／またはスタイラス（または（複数の）他の入力デバイス）が挙げられ、また、音声出力を提供するための１つまたは複数のスピーカ、ならびにテキスト出力、視聴覚出力、および／またはグラフィック出力を提供するための映像ディスプレイデバイスも挙げられる。ソフトウェアは、メモリ２１５および／または他のストレージ内に格納され、プロセッサ２０３に対して指示を与えて、汎用コンピューティングデバイス２０１を、本明細書で説明される様々な機能を行うために専用のコンピューティングデバイスになるように構成する。たとえば、メモリ２１５は、オペレーティングシステム２１７、アプリケーションプログラム２１９、および関連付けられたデータベース２２１などのコンピューティングデバイス２０１により使用されるソフトウェアを格納している。
【００３９】
コンピューティングデバイス２０１は、（クライアントデバイスとも称される）端末２４０などの１つまたは複数のリモートコンピュータへの接続を支援するネットワーク型環境内で動作する。端末２４０は、汎用コンピューティングデバイス１０３または２０１に対して、上述の要素の多くまたはすべてを含むパーソナルコンピュータ、モバイルデバイス、ラップトップ型コンピュータ、タブレット、またはサーバであってもよい。図２に描写されるネットワーク接続として、ローカルエリアネットワーク（ＬＡＮ）２２５およびワイドエリアネットワーク（ＷＡＮ）２２９が挙げられるが、他のネットワークを含んでいてもよい。ＬＡＮネットワーキング環境で使用される場合、コンピューティングデバイス２０１は、ネットワークインターフェースまたはアダプタ２２３を介して、ＬＡＮ２２５に接続されてもよい。ＷＡＮネットワーキング環境で使用される場合、コンピューティングデバイス２０１は、コンピュータネットワーク２３０（たとえば、インターネット）などのＷＡＮ２２９上で通信を確立するためのモデム２２７、または他のワイドエリアネットワークインターフェースを含んでいてもよい。
【００４０】
図示されるネットワーク接続は、例示的であり、コンピュータ間に通信リンクを確立する他の手段が使用されてもよいことが理解されよう。コンピューティングデバイス２０１および／または端末２４０はまた、バッテリ、スピーカ、アンテナ（図示せず）など様々な他のコンポーネントを含むモバイル端末（たとえば、携帯電話、スマートフォン、ＰＤＡ、ノート型パソコンなど）であってもよい。
【００４１】
本明細書で説明される発明の態様は、多くの他の汎用または専用コンピューティングシステムの環境または構成においても動作可能である。本明細書で説明される態様での使用に適切である他のコンピューティングシステム、環境、および／または構成の実施例として、限定されるものではないが、パーソナルコンピュータ、サーバコンピュータ、携帯型またはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上述のシステムまたはデバイスなどのいずれかを含む分散型コンピューティング環境が挙げられる。
【００４２】
図２に示すように、１つまたは複数のクライアントデバイス２４０は、１つまたは複数のサーバ２０６ａ〜２０６ｎ（まとめて、本明細書では「（複数の）サーバ２０６」と称される）と通信する。１つの実施形態では、コンピューティング環境２００は、（複数の）サーバ２０６と（複数の）クライアントマシン２４０との間に設置されるネットワークアプライアンスを備えている。ネットワークアプライアンスは、クライアント／サーバ接続を管理してもよく、場合によっては、複数のバックエンドサーバ２０６間のクライアント接続の負荷を分散してもよい。
【００４３】
（複数の）クライアントマシン２４０は、いくつかの実施形態では、単一のクライアントマシン２４０または単一グループのクライアントマシン２４０と称され、一方、（複数の）サーバ２０６は、単一のサーバ２０６または単一グループのサーバ２０６と称される。１つの実施形態では、単一のクライアントマシン２４０は、２つ以上のサーバ２０６と通信を行い、一方、他の実施形態では、単一のサーバ２０６は、２つ以上のクライアントマシン２４０と通信を行う。さらに他の実施形態では、単一のクライアントマシン２４０は、単一のサーバ２０６と通信を行う。
【００４４】
クライアントマシン２４０は、いくつかの実施形態では、完全に網羅しているわけではないが、以下の用語のいずれか１つにより言及されてもよい：（複数の）クライアントマシン、（複数の）クライアント、（複数の）クライアントコンピュータ、（複数の）クライアントデバイス、（複数の）クライアントコンピューティングデバイス、ローカルマシン、リモートマシン、（複数の）クライアントノード、（複数の）エンドポイント、または（複数の）エンドポイントノード。サーバ２０６は、いくつかの実施形態では、完全に網羅しているわけではないが、以下の用語のいずれか１つにより言及されてもよい：（複数の）サーバ、ローカルマシン、リモートマシン、（複数の）サーバファーム、または（複数の）ホストコンピューティングデバイス。
【００４５】
１つの実施形態では、クライアントマシン２４０は、仮想マシンであってもよい。仮想マシンは、任意の仮想マシンであってもよいが、一方、いくつかの実施形態では、仮想マシンは、たとえば、Ｃｉｔｒｉｘ  Ｓｙｓｔｅｍｓ、ＩＢＭ、ＶＭｗａｒｅにより開発されたハイパーバイザなどのタイプ１もしくはタイプ２のハイパーバイザ、または任意の他のハイパーバイザにより管理される任意の仮想マシンであってもよい。いくつかの態様では、仮想マシンは、ハイパーバイザにより管理されてもよいが、一方、態様では、仮想マシンは、サーバ２０６上で実行するハイパーバイザまたはクライアント２４０上で実行するハイパーバイザにより管理されてもよい。
【００４６】
いくつかの実施形態には、サーバ２０６または他の遠隔に位置するマシン上で遠隔で実行するアプリケーションにより生成されるアプリケーション出力を表示するクライアントデバイス２４０が含まれる。これらの実施形態では、クライアントデバイス２４０は、仮想マシンクライアントエージェントプログラムまたはアプリケーションを実行して、アプリケーションウインドウ、ブラウザ、または他の出力ウインドウに出力を表示する。１つの実施例では、アプリケーションは、デスクトップであり、その一方、他の実施例では、アプリケーションは、デスクトップを生成または提示するアプリケーションである。デスクトップは、ローカルおよび／またはリモートアプリケーションが統合可能なオペレーティングシステムのインスタンスに対してユーザインターフェースを提供するグラフィカルシェルを含んでいてもよい。本明細書で使用される際、アプリケーションは、オペレーティングシステム（および任意選択的にデスクトップ）のインスタンスがロードされた後で実行するプログラムである。
【００４７】
サーバ２０６は、いくつかの実施形態では、リモートプレゼンテーションプロトコルまたは他のプログラムを使って、データをクライアント上で実行するシンクライアントまたはリモートディスプレイアプリケーションに対して送信し、サーバ２０６上で実行するアプリケーションにより生成されるディスプレイ出力を提示する。シンクライアントまたはリモートディスプレイプロトコルは、完全に網羅しているわけではないが、以下のプロトコルの一覧のいずれか１つであってもよい。フロリダ州フォート・ローダーデールのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．により開発されたＩｎｄｅｐｅｎｄｅｎｔ  Ｃｏｍｐｕｔｉｎｇ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＣＡ）プロトコル、またはワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎにより製造されたＲｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｐｒｏｔｏｃｏｌ（ＲＤＰ）。
【００４８】
リモートコンピューティング環境は、サーバ２０６ａ〜２０６ｎがサーバファーム２０６、たとえば、クラウドコンピューティング環境に、ロジカルにグループ化されるように２つ以上のサーバ２０６ａ〜２０６ｎを含んでいる。サーバファーム２０６は、地理的に分散配置される一方、ロジカルにグループ化されたサーバ２０６、または互いに近接して位置する一方、ロジカルにグループ化されたサーバ２０６を含んでいてもよい。サーバファーム２０６内の地理的に分散配置されたサーバ２０６ａ〜２０６ｎは、いくつかの実施形態では、ＷＡＮ（ワイド）、ＭＡＮ（メトロポリタン）、またはＬＡＮ（ローカル）を使って通信を行うことができ、その場合、異なる地理的領域は、異なる大陸、大陸の異なる領域、異なる国、異なる州、異なる都市、異なるキャンパス、異なる部屋、または前述の地理的位置の任意の組み合わせとして特徴付けることができる。いくつかの実施形態では、サーバファーム２０６は、単一のエンティティとして運営されてもよく、一方、他の実施形態では、サーバファーム２０６は、複数のサーバファームを含むことができる。
【００４９】
いくつかの実施形態では、サーバファームは、実質的に同様のタイプのオペレーティングシステムのプラットフォーム（たとえば、ＷＩＮＤＯＷＳ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、ｉＯＳ、ＡＮＤＲＯＩＤ（登録商標）、ＳＹＭＢＩＡＮなど）を実行するサーバ２０６を含んでいてもよい。他の実施形態では、サーバファーム２０６は、第１のタイプのオペレーティングシステムのプラットフォームを実行する１つまたは複数のサーバの第１のグループと、第２のタイプのオペレーティングシステムのプラットフォームを実行する１つまたは複数のサーバの第２のグループと、を含んでいてもよい。
【００５０】
サーバ２０６は、たとえば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプライアンス、ネットワークアプライアンス、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、ＳＳＬ  ＶＰＮサーバ、ファイアウォール、ウェブサーバ、アプリケーションサーバまたはマスタアプリケーションサーバ、アクティブディレクトリを実行するサーバ、またはファイアウォール機能、アプリケーション機能、もしくは負荷分散機能を提供するアプリケーション高速化プログラムを実行するサーバなど、必要に応じて任意のタイプのサーバとして構成されてもよい。他のサーバタイプもまた使用されてもよい。
【００５１】
いくつかの実施形態は、クライアントマシン２４０から要求を受信し、要求を第２のサーバ２０６ｂに転送し、第２のサーバ２０６ｂからの応答でクライアントマシン２４０により生成された要求に対して応答する、第１のサーバ２０６ａを備えている。第１のサーバ２０６ａは、クライアントマシン２４０が利用可能なアプリケーションのイニュミレーション（inumeration）、およびアプリケーションのイニュミレーション内で特定されたアプリケーションをホスティングするアプリケーションサーバ２０６と関連付けられたアドレス情報を獲得してもよい。第１のサーバ２０６ａは、その後、ウェブインターフェースを使って、クライアントの要求に対する応答を提示し、クライアント２４０と直接通信し、特定されたアプリケーションへのアクセスをクライアント２４０へ提供する。１つもしくは複数のクライアント２４０および／または１つもしくは複数のサーバ２０６は、ネットワーク２３０、たとえば、ネットワーク１０１上でデータを送信してもよい。
【００５２】
図２は、デスクトップ仮想化システムのハイレベルのアーキテクチャを示す。図示のように、デスクトップ仮想化システムは、仮想デスクトップおよび／または仮想アプリケーションを１つまたは複数のクライアントアクセスデバイス２４０に提供するように構成された、少なくとも１つの仮想化サーバ２０６を含む、単一のサーバもしくはマルチサーバシステム、またはクラウドシステムであってもよい。本明細書で使用されるように、デスクトップとは、１つもしくは複数のアプリケーションがホスティングされ、および／または実行されてもよいグラフィカル環境もしくは空間を意味する。デスクトップは、ローカルおよび／またはリモートアプリケーションが統合可能なオペレーティングシステムのインスタンスに対してユーザインターフェースを提供するグラフィカルシェルを含んでいてもよい。アプリケーションは、オペレーティングシステムのインスタンス（および、任意選択的にデスクトップ）がローディングされた後に実行するプログラムを含んでいてもよい。オペレーティングシステムの各インスタンスは、物理的（たとえば、デバイスごとに１つのオペレーティングシステム）、または仮想（たとえば、単一デバイス上で稼動するＯＳの多くのインスタンス）であってもよい。各アプリケーションは、ローカルデバイス上で実行されてもよく、または遠隔に位置するデバイス（たとえば、遠隔型）上で実行されてもよい。
【００５３】
さらに図３を参照して、コンピュータデバイス３０１は、たとえば、単一のサーバ、マルチサーバ、またはクラウドコンピューティング環境などの仮想化環境内の仮想化サーバとして構成される。図３に示す仮想化サーバ３０１は、図２に示すサーバ２０６の１つまたは複数の実施形態もしくは他の既知のコンピューティングデバイスとしてデプロイ（deploy）されることができ、および／または複数の実施形態もしくは他の既知のコンピューティングデバイスによって実装されることができる。
【００５４】
仮想化サーバ３０１において、１つまたは複数の物理的ディスク３０４と、１つまたは複数の物理的デバイス３０６と、１つまたは複数の物理的プロセッサ３０８と、１つまたは複数の物理的メモリ３１６と、を含むことができる、ハードウェアレイヤが含まれる。いくつかの実施形態では、ファームウェア３１２は、物理的メモリ３１６内のメモリ要素内に格納することができ、１つまたは複数の物理的プロセッサ３０８により実行することができる。仮想化サーバ３０１は、物理的メモリ３１６内のメモリ要素に格納されてもよく、１つまたは複数の物理的プロセッサ３０８により実行されてもよい、オペレーティングシステム３１４をさらに含んでいてもよい。さらにまた、ハイパーバイザ３０２は、物理的メモリ３１６内のメモリ要素に格納されてもよく、１つまたは複数の物理的プロセッサ３０８により実行されてもよい。
【００５５】
１つまたは複数の物理的プロセッサ３０８上で実行することは、１つまたは複数の仮想マシン３３２Ａ〜３３２Ｃ（まとめて３３２と称す）であってもよい。各仮想マシン３３２は、仮想ディスク３２６Ａ〜３２６Ｃと、仮想プロセッサ３２８Ａ〜３２８Ｃと、を有してもよい。いくつかの実施形態では、第１の仮想マシン３３２Ａは、仮想プロセッサ３２８Ａを使って、ツールスタック３２４を含む制御プログラム３２０を実行してもよい。制御プログラム３２０は、システムアドミニストレーションおよび／または制御のために使用される制御仮想マシン、Ｄｏｍ０、Ｄｏｍａｉｎ  ０、または他の仮想マシンと称されてもよい。いくつかの実施形態では、１つまたは複数の仮想マシン３３２Ｂ〜３３２Ｃは、仮想プロセッサ３２８Ｂ〜３２８Ｃを使って、ゲストオペレーティングシステム３３０Ａ〜Ｂを実行できる。
【００５６】
仮想化サーバ３０１は、仮想化サーバ３０１と通信する１つまたは複数のハードウェアを有するハードウェアレイヤ３１０を含んでいてもよい。いくつかの実施形態では、ハードウェアレイヤ３１０は、１つまたは複数の物理的ディスク３０４と、１つまたは複数の物理的デバイス３０６と、１つまたは複数の物理的プロセッサ３０８と、１つまたは複数のメモリ２１６と、を含むことができる。物理的なコンポーネント３０４、３０６、３０８および３１６は、たとえば、上述のコンポーネントのうちいずれかを含んでいてもよい。
【００５７】
物理的デバイス３０６としては、たとえば、ネットワークインターフェースカード、ビデオカード、キーボード、マウス、入力デバイス、モニタ、ディスプレイデバイス、スピーカ、光学ドライブ、記憶装置、ユニバーサルシリアルバスコネクション、プリンタ、スキャナ、ネットワーク要素（たとえば、ルータ、ファイアウォール、ネットワークアドレス変換器、負荷分散器、仮想プライベートネットワーク（ＶＰＮ）ゲートウェイ、ダイナミックホストコンフィギュレーションプロトコル（ＤＨＣＰ）ルータなど）、または仮想化サーバ３０１と接続もしくは通信する任意のデバイスが挙げられる。ハードウェアレイヤ３１０における物理的メモリ３１６は、任意のタイプのメモリを含んでいてもよい。物理的メモリ３１６は、データを格納してもよく、いくつかの実施形態では、１つまたは複数のプログラム、または実行可能な指示のセットを格納してもよい。図３は、ファームウェア３１２が仮想化サーバ３０１の物理的メモリ３１６内に格納される実施形態を示す。物理的メモリ３１６内に格納されるプログラムまたは実行可能な指示は、仮想化サーバ３０１の１つまたは複数のプロセッサ３０８により実行できる。
【００５８】
仮想化サーバ３０１は、また、ハイパーバイザ３０２を含んでいてもよい。いくつかの実施形態では、ハイパーバイザ３０２は、仮想化サーバ３０１上のプロセッサ３０８により実行されるプログラムであり、任意の数の仮想マシン３３２を作成および管理してもよい。ハイパーバイザ３０２は、仮想マシンモニタ、またはプラットフォーム仮想化ソフトウェアと称されてもよい。いくつかの実施形態では、ハイパーバイザ３０２は、実行可能な指示および計算機上で実行する仮想マシンをモニタするハードウェアの任意の組み合わせであってもよい。ハイパーバイザ３０２は、タイプ２のハイパーバイザであってもよく、オペレーティングシステム３１４内で実行するハイパーバイザは、仮想化サーバ３０１上で実行する。仮想マシンは、その後、ハイパーバイザの上のレベルで実行する。いくつかの実施形態では、タイプ２のハイパーバイザは、タイプ２のハイパーバイザがユーザのオペレーティングシステムとやりとりするようにユーザのオペレーティングシステムのコンテキスト内で実行する。
【００５９】
他の実施形態では、仮想化環境内の１つまたは複数の仮想化サーバ２０１は、その代わりに、タイプ１のハイパーバイザ（図示せず）を含んでいてもよい。タイプ１のハイパーバイザは、ハードウェアレイヤ３１０内のハードウェアおよびリソースに直接アクセスすることによって、仮想化サーバ３０１上で実行してもよい。つまり、タイプ２のハイパーバイザ３０２は、システムリソースにホストオペレーティングシステム３１４を介してアクセスする一方、図示のように、タイプ１のハイパーバイザは、ホストオペレーティングシステム３１４を介さず、すべてのシステムリソースに直接アクセスしてもよい。タイプ１のハイパーバイザは、仮想化サーバ３０１の１つまたは複数の物理的プロセッサ３０８上で直接実行し、物理的メモリ３１６に格納されたプログラムを含んでいてもよい。
【００６０】
ハイパーバイザ３０２は、いくつかの実施形態では、システムリソースに対して直接アクセスするオペレーティングシステム３３０または制御プログラム３２０をシミュレートするいずれの態様でも、仮想リソースを仮想マシン３３２上で実行するオペレーティングシステム３３０または制御プログラム３２０に対して提供することができる。システムリソースは、物理的デバイス３０６と、物理的ディスク３０４と、物理的プロセッサ３０８と、物理的メモリ３１６と、仮想化サーバ３０１のハードウェアレイヤ３１０に含まれる任意の他のコンポーネントと、を含むことができるが、これらに限定されるわけではない。
【００６１】
ハイパーバイザ３０２を使って、仮想ハードウェアをエミュレートし、物理的ハードウェアを分割し、物理的ハードウェアを仮想化し、および／またはコンピューティング環境へのアクセスを提供する仮想マシンを実行してもよい。さらに他の実施形態では、ハイパーバイザ３０２は、仮想化サーバ３０１上で実行する仮想マシン３３２に対するプロセッサのスケジューリングおよびメモリ分割を制御する。ハイパーバイザ３０２として、カリフォルニア州パロアルトのＶＭｗａｒｅ，Ｉｎｃにより製造されたハイパーバイザ、オープンソースＸｅｎ．ｏｒｇコミュニティにより開発が監督されているオープンソースの製品であるＸＥＮハイパーバイザ、Ｍｉｃｒｏｓｏｆｔにより提供されているＨｙｐｅｒＶ、ＶｉｒｔｕａｌＳｅｒｖｅｒまたは仮想ＰＣハイパーバイザなどが挙げられる。
【００６２】
いくつかの実施形態では、仮想化サーバ３０１は、その上でゲストオペレーティングシステムが実行してもよい仮想マシンプラットフォームを作成するハイパーバイザ３０２を実行する。これらの実施形態では、仮想化サーバ３０１は、ホストサーバと称されてもよい。そのような仮想化サーバの一例は、フロリダ州フォート・ローダーデールのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃにより提供されるＸＥＮ  ＳＥＲＶＥＲである。
【００６３】
ハイパーバイザ３０２は、その中でゲストオペレーティングシステム３３０が実行する１つまたは複数の仮想マシン３３２Ｂ〜３３２Ｃ（まとめて３３２と称す）を作成してもよい。いくつかの実施形態では、ハイパーバイザ３０２は、仮想マシン画像をロードして、仮想マシン３３２を作成してもよい。他の実施形態では、ハイパーバイザ３０２は、仮想マシン３３２内でゲストオペレーティングシステム３３０を実行してもよい。さらに他の実施形態では、仮想マシン３３２は、ゲストオペレーティングシステム３３０を実行してもよい。
【００６４】
仮想マシン３３２を生成することに加えて、ハイパーバイザ３０２は、少なくとも１つの仮想マシン３３２の実行を制御してもよい。他の実施形態では、ハイパーバイザ３０２は、少なくとも１つの仮想マシン３３２に対して、仮想化サーバ３０１（たとえば、ハードウェアレイヤ３１０内で利用可能な任意のハードウェアリソース）により提供される少なくとも１つのハードウェアリソースのアブストラクションを提示してもよい。他の実施形態では、ハイパーバイザ３０２は、仮想マシン３３２が仮想化サーバ３０１内で利用可能な物理的プロセッサ３０８にアクセスする様式を制御してもよい。物理的プロセッサ３０８に対するアクセスを制御することは、仮想マシン３３２がプロセッサ３０８に対してアクセスするべきか否か、かつどのように物理的プロセッサの能力が仮想マシン３３２に対して提示されるかを判断することを含んでいてもよい。
【００６５】
図３に示すように、仮想化サーバ３０１は、１つまたは複数の仮想マシン３３２をホスティングまたは実行してもよい。仮想マシン３３２は、プロセッサ３０８により実行された場合、仮想マシン３３２がまさに物理的なコンピューティングデバイスのようにプログラムおよびプロセスを実行できるように物理的なコンピュータの動作を模倣する実行可能な指示のセットである。
【００６６】
図３は、仮想化サーバ３０１が３つの仮想マシン３３２をホスティングしている実施形態を示す一方、他の実施形態では、仮想化サーバ３０１は、任意の数の仮想マシン３３２をホスティングできる。ハイパーバイザ３０２は、いくつかの実施形態では、各仮想マシン３３２に対して、物理的なハードウェア、メモリ、プロセッサ、その仮想マシン３３２が利用可能な他のシステムリソースの固有の仮想ビューを提供する。いくつかの実施形態では、固有の仮想ビューは、仮想マシンの許可、１つまたは複数の仮想マシンの識別子に対するポリシーエンジンの付与、仮想マシンにアクセスするユーザ、仮想マシン上で実行するアプリケーション、仮想マシンによりアクセスされるネットワーク、または任意の他の所望の基準のうち１つ以上に基づくことができる。たとえば、ハイパーバイザ３０２は、１つまたは複数のセキュリティ保護されていない仮想マシン３３２および１つまたは複数のセキュリティ保護されている仮想マシン３３２を作成してもよい。セキュリティ保護されていない仮想マシン３３２は、セキュリティ保護されている仮想マシン３３２がアクセスを許可されているリソース、ハードウェア、メモリロケーション、およびプログラムにアクセスすることを禁止されてもよい。他の実施形態では、ハイパーバイザ３０２は、各仮想マシン３３２に対して、物理的なハードウェア、メモリ、プロセッサおよび仮想マシン３３２が利用可能な他のシステムリソースの実質的に同様の仮想ビューを提供してもよい。
【００６７】
各仮想マシン３３２は、仮想ディスク３２６Ａ〜３２６Ｃ（まとめて３２６と称す）および仮想プロセッサ３２８Ａ〜３２８Ｃ（まとめて３２８と称す）を含んでいてもよい。仮想ディスク３２６は、いくつかの実施形態では、仮想化サーバ３０１の１つもしくは複数の物理的ディスク３０４の仮想型ビューであるか、または仮想化サーバ３０１の１つもしくは複数の物理的ディスク３０４の一部である。物理的ディスク３０４の仮想型ビューを、ハイパーバイザ３０２により、生成、提供、および管理することができる。いくつかの実施形態では、ハイパーバイザ３０２は、各仮想マシン３３２に対して、物理的ディスク３０４の固有の（unique）ビューを提供する。よって、これらの実施形態では、各仮想マシン３３２内に含まれる特定の仮想ディスク３２６を、他の仮想ディスク３２６と比較した場合、固有のものにできる。
【００６８】
仮想プロセッサ３２８は、仮想化サーバ３０１の１つまたは複数の物理的プロセッサ３０８の仮想型ビューであってもよい。いくつかの実施形態では、物理的プロセッサ３０８の仮想型ビューを、ハイパーバイザ３０２により、生成、提供、および管理できる。いくつかの実施形態では、仮想プロセッサ３２８は、少なくとも１つの物理的プロセッサ３０８の実質的にすべて同じ特徴を有する。他の実施形態では、仮想プロセッサ３０８は、仮想プロセッサ３２８の特徴の少なくとも一部が対応する物理的プロセッサ３０８の特徴と異なるように物理的プロセッサ３０８の変更したビューを提供する。
【００６９】
さらに図４を参照して、本明細書で説明されるいくつかの態様が、クラウドベースの環境内で実施されている。図４は、クラウドコンピューティング環境（またはクラウドシステム）４００の一実施例を示す。図４から分かるように、クライアントコンピュータ４１１〜４１４は、クラウド管理サーバ４１０と通信して、クラウドシステムのコンピューティングリソース（たとえば、ホストサーバ４０３、ストレージリソース４０４、およびネットワークリソース４０５）にアクセスする。
【００７０】
管理サーバ４１０は、１つまたは複数の物理的なサーバ上に実装されてもよい。管理サーバ４１０は、たとえば、とりわけ、フロリダ州フォート・ローダーデールのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．のＣＬＯＵＤＳＴＡＣＫ、またはＯＰＥＮＳＴＡＣＫを稼動させてもよい。管理サーバ４１０は、たとえば、ホストコンピュータ４０３、データ記憶装置４０４、およびネットワーキングデバイス４０５であるクラウドハードウェアおよびソフトウェアリソースを含む、様々なコンピューティングリソースを管理してもよい。クラウドハードウェアおよびソフトウェアリソースは、プライベートおよび／またはパブリックコンポーネントを含んでいてもよい。たとえば、クラウドは、１つもしくは複数の特定の顧客もしくはクライアントコンピュータ４１１〜４１４によって、および／またはプライベートネットワークを介して、使用されるプライベートクラウドとして構成されてもよい。他の実施形態では、パブリッククラウドまたはハイブリッド型のパブリック・プライベートクラウドは、オープン型またはハイブリッド型のネットワーク上で他の顧客により使用されてもよい。
【００７１】
管理サーバ４１０は、クラウドオペレータおよびクラウド顧客がクラウドシステムとやりとりするためのユーザインターフェースを提供するように構成されてもよい。たとえば、管理サーバ４１０は、ＡＰＩおよび／または１つもしくは複数のクラウドオペレータコンソールアプリケーション（たとえば、ウェブベースのまたはスタンドアロン型のアプリケーション）のセットに対して、ユーザインターフェースを提供し、クラウドオペレータに対して、クラウドリソースを管理させ、仮想化レイヤを構成させ、顧客アカウントを管理させ、他のクラウドアドミニストレーション業務を行わせてもよい。管理サーバ４１０はまた、クライアントコンピュータ４１１〜４１４を介してエンドユーザからクラウドコンピューティング要求、たとえば、クラウド内にて仮想マシンを作成、変更、または破壊するための要求を受信するように構成されたユーザインターフェースを有するＡＰＩおよび／または１つもしくは複数の顧客コンソールアプリケーションのセットを含んでいてもよい。
【００７２】
クライアントコンピュータ４１１〜４１４は、インターネットまたは他の通信ネットワークを介して、管理サーバ４１０に接続してもよく、管理サーバ４１０により管理される１つまたは複数のコンピューティングリソースへのアクセスを要求してもよい。クライアントの要求に応答して、管理サーバ４１０は、クライアントの要求に基づいて、クラウドシステムのハードウェアレイヤ内の物理的リソースを、選択およびプロビジョニングするように構成されたリソースマネージャを含んでいてもよい。たとえば、クラウドシステムの管理サーバ４１０および追加的なコンポーネントは、仮想マシンおよびそれらのオペレーティング環境（たとえば、ハイパーバイザ、ストレージリソース、ネットワーク要素により提供されるサービスなど）を、クライアントコンピュータ４１１〜４１４における顧客のために、ネットワーク（たとえば、インターネット）上で、プロビジョニング、作成、および管理するように構成されてもよく、顧客に対して、計算リソース、データストレージサービス、ネットワーキング能力、ならびにコンピュータプラットフォームおよびアプリケーション支援を提供する。クラウドシステムはまた、セキュリティシステム、開発環境、ユーザインターフェースなどを含む様々な特定のサービスを提供するように構成されてもよい。
【００７３】
あるクライアント４１１〜４１４は、たとえば、同じエンドユーザまたは同じ会社もしくは組織の系列下にある異なるユーザのために、仮想マシンを作成する、関係がある異なるクライアントコンピュータであってもよい。他の実施例では、あるクライアント４１１〜４１４は、異なる会社または組織の系列下にあるユーザなど無関係でもよい。無関係のクライアントのために、いずれか１人のユーザの仮想マシンまたはストレージに関する情報が、他のユーザから隠されてもよい。
【００７４】
ここで、クラウドコンピューティング環境の物理的なハードウェアレイヤを参照して、利用可能ゾーン４０１〜４０２（またはゾーン）は、物理的なコンピューティングリソースの並置されたセットを意味してもよい。ゾーンは、コンピューティングリソースの全体的なクラウドにおいて、他のゾーンから地理的に離間されていてもよい。たとえば、ゾーン４０１は、カリフォルニアに位置する第１のクラウドデータセンタであってもよく、ゾーン４０２は、フロリダに位置する第２のクラウドデータセンタであってもよい。管理サーバ４１０は、利用可能ゾーンの１つ、または離間した場所に位置してもよい。各ゾーンは、管理サーバ４１０などゾーンの外部にあるデバイスと、ゲートウェイを介してインターフェースする内部ネットワークを含んでいてもよい。クラウドのエンドユーザ（たとえば、クライアント４１１〜４１４）は、ゾーン間の区別を認識していてもしていなくてもよい。たとえば、エンドユーザは、メモリ、処理力、およびネットワーク能力の特定化された量を有する仮想マシンの作成を要求してもよい。管理サーバ４１０は、ユーザの要求に応答してもよく、仮想マシンがゾーン４０１またはゾーン４０２からのリソースを使って作成されたかどうかをユーザが知らなくとも、リソースを割り当てて仮想マシンを作成してもよい。他の実施例では、クラウドシステムは、エンドユーザに対して、仮想マシン（または他のクラウドリソース）が特定のゾーン内に、またはゾーン内の特定のリソース４０３〜４０５に割り当てられるように要求できるようにしてもよい。
【００７５】
この実施例では、各ゾーン４０１〜４０２は、たとえば、クラウドコンピューティングサービスを顧客に提供するために使用されてもよい物理的なホスティングリソース（または処理リソース）、物理的なネットワークリソース、物理的なストレージリソース、スイッチ、および追加的なハードウェアリソースといった、様々な物理的なハードウェアコンポーネント（コンピューティングリソース）４０３〜４０５の配置を含んでいてもよい。
【００７６】
クラウドゾーン４０１〜４０２内の物理的なホスティングリソースは、仮想マシンインスタンスを作成およびホスティングするように構成されてもよい上述のような仮想化サーバ３０１など、１つまたは複数のコンピュータサーバ４０３を含んでいてもよい。クラウドゾーン４０１または４０２内の物理的なネットワークリソースは、ネットワークサービスをクラウド顧客に提供するように構成されたハードウェアおよび／またはソフトウェアを備える、ファイアウォール、ネットワークアドレス変換器、負荷分散器、仮想プライベートネットワーク（ＶＰＮ）ゲートウェイ、ダイナミックホストコンフィギュレーションプロトコル（ＤＨＣＰ）ルータなどの１つまたは複数のネットワーク要素４０５（たとえば、ネットワークサービスプロバイダ）を含んでいてもよい。クラウドゾーン４０１〜４０２内のストレージリソースは、ストレージディスク（たとえば、ソリッドステートドライブ（ＳＳＤ）、磁気ディスクデバイスなど）および他の記憶装置を含んでいてもよい。
【００７７】
図４に示すクラウドコンピューティング環境はまた、仮想マシンを作成および管理し、クラウドの物理的なリソースを使って、他のサービスを顧客に提供するように構成された追加的なハードウェアおよび／またはソフトウェアリソースを有する（たとえば、図１〜図３に示される）仮想化レイヤを含んでいてもよい。仮想化レイヤは、図３において上述したように、他のコンポーネントとともに、ハイパーバイザを含み、ネットワーク仮想化、ストレージ仮想化などを提供してもよい。仮想化レイヤは、物理リソースレイヤから離間した層でもよく、またはいくつかのもしくはすべての同じハードウェアおよび／もしくはソフトウェアリソースを物理リソースレイヤと共有してもよい。たとえば、仮想化レイヤは、物理的なコンピューティングリソースを有する仮想化サーバ４０３の各々に設置されたハイパーバイザを含んでいてもよい。または、たとえば、ＷＩＮＤＯＷＳ（登録商標）  ＡＺＵＲＥ（ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ）、ＡＭＡＺＯＮ  ＥＣ２（ワシントン州シアトルのＡｍａｚｏｎ．ｃｏｍ  Ｉｎｃ．）、ＩＢＭ  ＢＬＵＥ  ＣＬＯＵＤ  （ニューヨーク州アーモンクのＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎ）などの既知のクラウドシステムが代わりに使用されてもよい。
【００７８】
図５は、ＢＹＯＤ環境での使用のための企業モビリティ技術アーキテクチャ５００を表す。アーキテクチャにより、モバイルデバイス５０２のユーザは、企業または個人リソースに対してモバイルデバイス５０２からアクセスできることと、モバイルデバイス５０２を個人利用できることと、の両方が可能になる。ユーザは、ユーザにより購入されたモバイルデバイス５０２または企業によりユーザに対して提供されたモバイルデバイス５０２を使用して、そのような企業リソース５０４または企業サービス５０８にアクセスできる。ユーザは、ビジネス利用のみ、またはビジネスおよび個人利用として、モバイルデバイス５０２を利用してもよい。モバイルデバイスは、ｉＯＳオペレーティングシステム、Ａｎｄｒｏｉｄ（登録商標）オペレーティングシステム、および／またはその他を稼動してもよい。
【００７９】
企業は、モバイルデバイス５０４を管理するポリシーを実装するように選択してもよい。ポリシーは、モバイルデバイスが特定され、セキュリティ保護された状態であり、安全性が確保され、かつ企業リソースに対して、選択的または完全なアクセスが提供されるような方法で、ファイアウォールまたはゲートウェイを介して導入されてもよい。ポリシーは、モバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはモバイルデバイス、アプリケーションおよびデータ管理ポリシーのいくつかの組み合わせであってもよい。モバイルデバイス管理ポリシーのアプリケーションを介して管理されるモバイルデバイス５０４は、被登録デバイスまたは被管理デバイスと称されてもよい。
【００８０】
いくつかの実施形態では、モバイルデバイスのオペレーティングシステムは、被管理パーティション５１０および非管理パーティション５１２に分割されてもよい。被管理パーティション５１０は、稼動中のアプリケーションおよび被管理パーティションに格納されたデータの危険性をなくすためのポリシーを自身に適応してもよい。他の実施形態では、すべてのアプリケーションは、アプリケーションから別途受信され、アプリケーションがデバイス上で実行するときにモバイルデバイス管理システムにより執行される１つもしくは複数のセキュリティパラメータ、特徴、リソース制限、および／または他のアクセス制御を定義する１つもしくは複数のポリシーファイルのセットに従って実行してもよい。それぞれの（複数の）ポリシーファイルに従って動作することにより、各アプリケーションは、１つもしくは複数の他のアプリケーションおよび／またはリソースと通信することが許可または制限され、それによって、仮想パーティションが作成されてもよい。
【００８１】
したがって、本明細書で使用される際、パーティションは、メモリの物理的に分割された部分（物理的なパーティション）、メモリの論理的に分割された部分（ロジカルパーティション）、および／または本明細書で説明される、１つもしくは複数のポリシーおよび／またはポリシーファイルが複数のアプリケーションに亘って執行された結果、作成された仮想パーティション（仮想パーティション）を意味してもよい。別の言い方をすれば、ポリシーを被管理アプリケーションに執行すると、これらのアプリケーションは、制限され、他の被管理アプリケーションおよび信用できる企業リソースとのみ通信ができるようになり、それによって、非管理アプリケーションおよびデバイスからは侵入できない仮想パーティションが作成される。
【００８２】
被管理パーティション上で稼動するアプリケーションは、セキュリティ保護されているアプリケーションであってもよい。セキュリティ保護されているアプリケーションは、ｅメールアプリケーション、ウェブブラウジングアプリケーション、サービスとしてのソフトフェア（ＳａａＳ）アクセスアプリケーション、Ｗｉｎｄｏｗｓ（登録商標）  Ａｐｐｌｉｃａｔｉｏｎアクセスアプリケーションなどであってもよい。セキュリティ保護されているアプリケーションは、セキュリティ保護されているネイティブアプリケーション５１４、セキュリティ保護されているアプリケーションランチャ５１８により実行されるセキュリティ保護されているリモートアプリケーション５２２、セキュリティ保護されているアプリケーションランチャ５１８により実行される仮想化アプリケーション５２６などであってもよい。
【００８３】
セキュリティ保護されているネイティブアプリケーション５１４は、セキュリティ保護されているアプリケーションラッパー５２０によりラップされてもよい。セキュリティ保護されているアプリケーションラッパー５２０は、セキュリティ保護されているネイティブアプリケーションがデバイス上で実行された場合、モバイルデバイス５０２上で実行される統合型ポリシーを含んでいてもよい。セキュリティ保護されているアプリケーションラッパー５２０は、モバイルデバイス５０２上で稼動するセキュリティ保護されているネイティブアプリケーション５１４を、セキュリティ保護されているネイティブアプリケーション５１４の実行時に要求されるタスクを完了するようにセキュリティ保護されているネイティブアプリケーション５１４要求してもよい、企業でホスティングされるリソースに向けるメタデータを含んでいてもよい。セキュリティ保護されているアプリケーションランチャ５１８により実行されるセキュリティ保護されているリモートアプリケーション５２２は、セキュリティ保護されているアプリケーションランチャアプリケーション５１８内で実行されてもよい。
【００８４】
セキュリティ保護されているアプリケーションランチャ５１８により実行される仮想化アプリケーション５２６は、企業リソース５０４などにおいて、モバイルデバイス５０２上のリソースを利用してもよい。セキュリティ保護されているアプリケーションランチャ５１８により実行される仮想化アプリケーション５２６によりモバイルデバイス５０２上で使用されるリソースは、ユーザインタラクション用リソース、処理用リソースなどを含んでいてもよい。ユーザインタラクション用リソースを使って、キーボード入力、マウス入力、カメラ入力、触覚入力、音声入力、視覚入力、ジェスチャ入力などを収集および送信してもよい。
【００８５】
処理用リソースを使って、ユーザインターフェースを提示し、企業リソース５０４から受信したデータを処理するなどしてもよい。セキュリティ保護されているアプリケーションランチャ５１８により実行される仮想化アプリケーション５２６により企業リソース５０４において使用されるリソースは、ユーザインターフェース生成用リソース、処理用リソースなどを含んでいてもよい。ユーザインターフェース生成用リソースを使って、ユーザインターフェースを組み立て、ユーザインターフェースを変更し、ユーザインターフェースを新しくするなどしてもよい。処理用リソースを使って、情報を作成し、情報を読み込み、情報を更新し、情報を削除するなどしてもよい。たとえば、仮想化アプリケーションは、ＧＵＩと関連付けられたユーザのインタラクションを記録し、それをサーバアプリケーションに通信してもよいが、サーバアプリケーションは、該ユーザのインタラクションのデータを、サーバ上で動作しているアプリケーションに対する入力として使用することとなる。この配置では、企業は、サーバ側に、アプリケーション、およびアプリケーションと関連付けられたデータ、ファイルなどを維持することを選んでもよい。
【００８６】
企業は、アプリケーションをモバイルデバイスに確実にデプロイすることにより、本明細書の原理に従っていくつかのアプリケーションを「起動」させるよう選択する一方、この配置はまた、あるアプリケーション用に選択されてもよい。たとえば、いくつかのアプリケーションは、モバイルデバイス上での使用のためにセキュリティ保護性が確保されている一方、他のものは、モバイルデバイス上でのデプロイに準備が整っていない場合、または適切ではない場合があるので、企業は、モバイルユーザアクセスを、準備が整っていないアプリケーションに対して、仮想化技術によって提供してもよい。他の実施例として、企業は、巨大で複雑なデータのセット（たとえば、資材所要量計画アプリケーション）を有する巨大で複雑なアプリケーションを有する場合があり、その場合、アプリケーションをモバイルデバイス用にカスタマイズすることが困難で、それ以外の場合は、望ましくない場合があるため、企業は、仮想化技術によってアプリケーションへのアクセスを提供することを選んでもよい。
【００８７】
さらに他の実施例として、企業は、セキュリティ保護性が確保されたモバイル環境にとってさえあまりにも機密性が高いものとして企業から見なされる非常にセキュリティ保護されているデータ（たとえば、人材に関するデータ、顧客データ、技術資料）を維持するアプリケーションを有してもよく、企業は、仮想化技術を使用することを選んで、そのようなアプリケーションおよびデータにモバイルアクセスすることを許可してもよい。
【００８８】
企業は、モバイルデバイス上の完全なセキュリティ保護性を有した、完全に機能的なアプリケーションおよび仮想化アプリケーションの両方を提供することを選び、サーバ側のより適切に動作されると考えられるアプリケーションへのアクセスを許可してもよい。実施形態では、仮想化アプリケーションは、携帯電話上のセキュリティ保護されているストレージの場所のうちの１つに、いくつかのデータ、ファイルなどを格納してもよい。企業は、たとえば、ある情報が電話に格納されることを選んでもよい一方、他の情報は許可しなくてもよい。
【００８９】
仮想化アプリケーションに関連して、本明細書で説明されるように、モバイルデバイスは、ＧＵＩを提示し、その後、ＧＵＩとのユーザのインタラクションを記録するように設計されている仮想化アプリケーションを有してもよい。アプリケーションは、ユーザのインタラクションを、サーバ側に伝え、アプリケーションとのユーザのインタラクションとして、サーバ側アプリケーションに使用されてもよい。対して、サーバ側のアプリケーションは、新たなＧＵＩをモバイルデバイスに対して返送してもよい。たとえば、新たなＧＵＩは、静止ページ、動的ページ、アニメーションなどであってもよい。
【００９０】
セキュリティ保護されているアプリケーションは、モバイルデバイスの被管理パーティション５１０内のセキュリティ保護されているデータコンテナ５２８に格納されたデータにアクセスしてもよい。セキュリティ保護されているデータコンテナに安全に守られているデータは、セキュリティ保護されているラップ化アプリケーション５１４、セキュリティ保護されているアプリケーションランチャ５１８により実行されたアプリケーション、セキュリティ保護されているアプリケーションランチャ５１８により実行された仮想化アプリケーション５２６などによりアクセスされてもよい。セキュリティ保護されているデータコンテナ５２８に格納されたデータは、ファイル、データベースなどを含んでいてもよい。セキュリティ保護されているデータコンテナ５２８に格納されたデータは、特定のセキュリティ保護されているアプリケーション５３０に制限されるデータ、セキュリティ保護されているアプリケーション５３２間に共有されるデータなどを含んでいてもよい。セキュリティ保護されているアプリケーションに制限されるデータは、セキュリティ保護されている一般データ５３４および非常にセキュリティ保護されているデータ５３８を含んでいてもよい。セキュリティ保護されている一般データは、ＡＥＳ１２８ビット暗号化技術など高い暗号化技術の形態を使用するが、一方、非常にセキュリティ保護されているデータ５３８は、ＡＥＳ２５６ビット暗号化技術など非常に高い暗号化技術の形態を使用してもよい。
【００９１】
セキュリティ保護されているデータコンテナ５２８に格納されたデータは、デバイスマネージャ５２４からコマンドを受けとると、デバイスから削除されてもよい。セキュリティ保護されているアプリケーションは、デュアルモードオプション５４０を有してもよい。デュアルモードオプション５４０は、セキュリティ保護されていないモードでセキュリティ保護されているアプリケーションを動作させるオプションを、ユーザに対して、提示してもよい。セキュリティ保護されていないモードでは、セキュリティ保護されているアプリケーションは、モバイルデバイス５０２の非管理パーティション５１２上のセキュリティ保護されていないデータコンテナ５４２に格納されたデータにアクセスしてもよい。セキュリティ保護されていないデータコンテナに格納されたデータは、個人データ５４４であってもよい。セキュリティ保護されていないデータコンテナ５４２に格納されたデータはまた、モバイルデバイス５０２の非管理パーティション５１２上で稼動するセキュリティ保護されていないアプリケーション５４８によりアクセスされてもよい。セキュリティ保護されていないデータコンテナ５４２に格納されたデータは、セキュリティ保護されているデータコンテナ５２８に格納されたデータがモバイルデバイス５０２から削除された場合、モバイルデバイス５０２上に残っていてもよい。
【００９２】
企業は、企業により所有、認可、制御されている、選択された、またはすべてのデータ、ファイル、および／またはアプリケーション（企業データ）をモバイルデバイスから削除したい一方、ユーザにより所有、認可、制御されている個人データ、ファイル、および／またはアプリケーション（個人データ）を放置、または他の形で保存する。この動作は、選択的消去と称されてもよい。本明細書で説明される態様に従って配置される企業および個人データを使って、企業は、選択的消去を行ってもよい。
【００９３】
モバイルデバイスは、企業での企業リソース５０４および企業サービス５０８に、また、公衆インターネット５４８などに接続してもよい。モバイルデバイスは、仮想プライベートネットワークの接続によって、企業リソース５０４および企業サービス５０８に接続してもよい。仮想プライベートネットワークの接続（また、マイクロＶＰＮまたはアプリケーション固有のＶＰＮと称されてもよい）は、特定のアプリケーション５５０、特定のデバイス、モバイルデバイス上の特定のセキュリティ保護されている領域など（たとえば、５５２）に固有のものである。たとえば、電話のセキュリティ保護されている領域内のラップ化アプリケーションの各々は、可能であればユーザまたはデバイス属性情報とともに、アプリケーションに関連付けられた属性に基づいて、ＶＰＮに対するアクセスが承諾されるように、アプリケーション固有のＶＰＮを介して企業リソースにアクセスしてもよい。
【００９４】
仮想プライベートネットワークの接続は、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅトラフィック、Ｍｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙトラフィック、ＨＴＴＰトラフィック、ＨＴＴＰＳトラフィック、アプリケーション管理トラフィックなどを伝送してもよい。仮想プライベートネットワークの接続は、シングルサインオン認証プロセス５５４を支援および可能にしてもよい。シングルサインオンプロセスにより、ユーザは、その後、認証サービス５５８により認証される、単一セットの認証証明を提供することができる。その後、認証サービス５５８は、認証証明を各個別の企業リソース５０４へ提供するようユーザに要求することなく、複数の企業リソース５０４へのユーザのアクセスを承諾してもよい。
【００９５】
仮想プライベートネットワークの接続は、アクセスゲートウェイ５６０により、確立および管理されてもよい。アクセスゲートウェイ５６０は、企業リソース５０４のモバイルデバイス５０２への送達を管理、加速、および改善する性能向上機構を含んでいてもよい。アクセスゲートウェイはまた、モバイルデバイス５０２から公衆インターネット５４８へのトラフィックを再ルーティングしてもよく、モバイルデバイス５０２は、公的に利用可能であるが、セキュリティ保護されていない、公衆インターネット５４８上で稼動するアプリケーションにアクセスできる。モバイルデバイスは、トランスポートネットワーク５６２を介して、アクセスゲートウェイに接続してもよい。トランスポートネットワーク５６２は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、パブリックネットワーク、プライベートネットワークなどであってもよい。
【００９６】
企業リソース５０４は、ｅメールサーバ、ファイル共有サーバ、ＳａａＳアプリケーション、ウェブアプリケーションサーバ、Ｗｉｎｄｏｗｓ（登録商標）アプリケーションサーバなどを含んでいてもよい。ｅメールサーバとして、Ｅｘｃｈａｎｇｅサーバ、Ｌｏｔｕｓ  Ｎｏｔｅｓサーバなどが挙げられる。ファイル共有サーバとして、ＳｈａｒｅＦｉｌｅサーバなどが挙げられる。ＳａａＳアプリケーションとしては、Ｓａｌｅｓｆｏｒｃｅなどが挙げられる。
【００９７】
Ｗｉｎｄｏｗｓ（登録商標）アプリケーションサーバは、ローカルなＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム上などで稼動することを意図されているアプリケーションを提供するように構築されている任意のアプリケーションサーバを含んでいてもよい。企業リソース５０４は、プレミスベースのリソース、クラウドベースのリソースなどであってもよい。企業リソース５０４は、直接またはアクセスゲートウェイ５６０を介して、モバイルデバイス５０２によりアクセスされてもよい。企業リソース５０４は、トランスポートネットワーク５６２を介して、モバイルデバイス５０２によりアクセスされてもよい。トランスポートネットワーク５６２は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、パブリックネットワーク、プライベートネットワークなどであってもよい。
【００９８】
企業サービス５０８は、認証サービス５５８、脅威検出サービス５６４、デバイスマネージャサービス５２４、ファイル共有サービス５６８、ポリシーマネージャサービス５７０、ソーシャルインテグレーションサービス５７２、アプリケーションコントローラサービス５７４などを含んでいてもよい。認証サービス５５８は、ユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービスなどを含んでいてもよい。認証サービス５５８は、証明書を使用してもよい。証明書は、企業リソース５０４などにより、モバイルデバイス５０２上に格納されてもよい。モバイルデバイス５０２上に格納された証明書は、モバイルデバイス上の暗号化された場所において格納されてもよく、証明書は、認証の際などにおける使用のために、モバイルデバイス５０２上に一時的に格納されてもよい。脅威検出サービス５６４は、侵入検出サービス、不正アクセス試行検出サービスなどを含んでいてもよい。不正アクセス試行検出サービスは、デバイス、アプリケーション、データなどへアクセスするための不正な試行を含んでいてもよい。
【００９９】
デバイス管理サービス５２４は、コンフィギュレーション、プロビジョニング、セキュリティ、サポート、モニタリング、レポーティング、およびデコミッショニングサービスを含んでいてもよい。ファイル共有サービス５６８は、ファイル管理サービス、ファイルストレージサービス、ファイルコラボレーションサービスなどを含んでいてもよい。ポリシーマネージャサービス５７０は、デバイスポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービスなどを含んでいてもよい。ソーシャルインテグレーションサービス５７２は、コンタクトインテグレーションサービス、コラボレーションサービス、Ｆａｃｅｂｏｏｋ、Ｔｗｉｔｔｅｒ、ＬｉｎｋｅｄＩｎなどのソーシャルネットワークとのインテグレーションなどを含んでいてもよい。アプリケーションコントローラサービス５７４は、管理サービス、プロビジョニングサービス、デプロイメントサービス、アサインメントサービス、リボケーションサービス、ラッピングサービスなどを含んでいてもよい。
【０１００】
企業モビリティ技術アーキテクチャ５００は、アプリケーションストア５７８を含んでいてもよい。アプリケーションストア５７８は、アンラップ化アプリケーション５８０、プリラップ化アプリケーション５８２などを含んでいてもよい。アプリケーションは、アプリケーションコントローラ５７４からアプリケーションストア５７８内にポピュレートされてもよい。アプリケーションストア５７８は、アクセスゲートウェイ５６０または公衆インターネット５４８などを介してモバイルデバイス５０２によりアクセスされてもよい。
【０１０１】
アプリケーションストアは、感覚的で使用が簡単なユーザインターフェースを備えていてもよい。アプリケーションストア５７８は、ソフトウェア開発キット５８４へのアクセスを提供してもよい。ソフトウェア開発キット５８４は、本説明において前述したように、アプリケーションをラップすることにより、ユーザが選択したアプリケーションをセキュリティ保護された状態にする機能をユーザに提供してもよい。ソフトウェア開発キット５８４を使ってラップ化されたアプリケーションは、その後、アプリケーションコントローラ５７４を使ってアプリケーションストア５７８にポピュレートすることにより、モバイルデバイス５０２が利用可能になる。
【０１０２】
企業モビリティ技術アーキテクチャ５００は、管理および分析の能力を含んでいてもよい。管理および分析の能力は、どのようにリソースが使用され、どの程度頻繁にリソースが使用されるかなどに関する情報を提供してもよい。リソースには、デバイス、アプリケーション、データなどが含まれてもよい。どのようにリソースが使用されるかは、どのデバイスがどのアプリケーションをダウンロードし、どのアプリケーションがどのデータにアクセスするかなどを含んでいてもよい。どの程度頻繁にリソースが使用されるかは、どの程度頻繁にアプリケーションがダウンロードされたかということ、特定のデータのセットがアプリケーションにより何回アクセスされたかということなどを含んでいてもよい。
【０１０３】
図６は、他の企業モビリティ管理システム６００である。図５を参照して上述したモビリティ管理システム５００のコンポーネントのいくつかは、簡潔化のために省略されている。図６に描写されたシステム６００のアーキテクチャは、多くの点において、図５を参照して上述したシステム５００のアーキテクチャと同様であり、上で言及していない追加の特徴を含んでいてもよい。
【０１０４】
この場合、左手側は、クライアントエージェント６０４を有する被登録／被管理モバイルデバイス６０２を表し、クライアントエージェント６０４は、（アクセスゲートウェイおよびアプリケーションコントローラ機能を含む）ゲートウェイサーバ６０６とやり取りし、上の右手側に示されるように、Ｅｘｃｈａｎｇｅ、Ｓｈａｒｅｐｏｉｎｔ、ＰＫＩリソース、Ｋｅｒｂｅｒｏｓリソース、証明書発行サービスなどの様々な企業リソース６０８およびサービス６０９へアクセスする。具体的には示されていないが、モバイルデバイス６０２はまた、アプリケーションの選択およびダウンロードのためにアプリケーションストアとやり取りしてもよい。
【０１０５】
クライアントエージェント６０４は、企業データセンタにホスティングされている、限定されるわけではない、ＩＣＡプロトコルなどのディスプレイリモーティングプロトコルを使ってアクセスされる、Ｗｉｎｄｏｗｓ（登録商標）アプリケーション／デスクトップのためのＵＩ（ユーザインターフェース）手段としての機能を果たす。クライアントエージェント６０４はまた、モバイルデバイス６０２上のネイティブｉＯＳまたはＡｎｄｒｏｉｄ（登録商標）アプリケーションなどのネイティブアプリケーションのインストールおよび管理を支援する。たとえば、上述の図に示す被管理型アプリケーション６１０（メール、ブラウザ、ラップ化アプリケーション）はすべて、デバイス上でローカルに実行するネイティブアプリケーションである。本アーキテクチャのクライアントエージェント６０４およびアプリケーション管理フレームワーク（ＡＭＦ）は、企業リソース／サービス６０８に対するコネクティビティおよびＳＳＯ（シングルサインオン）など、ポリシー駆動型管理能力および機構を提供する役割を果たす。
【０１０６】
クライアントエージェント６０４は、企業に対する、通常は、他のゲートウェイサーバコンポーネントに対するＳＳＯを有するアクセスゲートウェイ（ＡＧ）に対するプライマリユーザ認証を取り扱う。クライアントエージェント６０４は、ゲートウェイサーバ６０６からポリシーを取得し、モバイルデバイス６０２上のＡＭＦ被管理型アプリケーション６１０の挙動を制御する。いくつかの代替実施形態では、（たとえば、被管理型アプリケーション６１０に含まれてもよい）１つまたは複数のネイティブアプリケーションは、コマンドをクライアントエージェント６０４から受信し、および／または他の形でクライアントエージェント６０４とやりとりして、インストールおよび／または管理の機能を提供してもよい。
【０１０７】
いくつかの実施形態では、クライアントエージェント６０４は、モバイルデバイス上のポリシーエージェントとしてだけ機能してもよく、別個のクライアントエージェントは、レシーバおよび／または仮想化機能を（たとえば、上述のディスプレイリモーティングプロトコルを使って）提供してもよい。そのような分割された機能を実施する際、クライアントエージェント６０４は、たとえば、ネイティブアプリケーションのインストールおよび／または管理を支援してもよいが、モバイルデバイス上で稼動している異なるクライアントエージェントによりその代わりに実行および／または提供されてもよいレシーバおよび／または仮想化機能を提供しなくてもよい。
【０１０８】
ネイティブアプリケーション６１０とクライアントエージェント６０４との間のセキュリティ保護されているＩＰＣリンク６１２は、管理チャンネルを表すが、同チャンネルにより、クライアントエージェントは、各アプリケーションを「ラップ」するアプリケーション管理フレームワーク６１４により執行されるポリシーを供給することを許可される。また、ＩＰＣチャンネル６１２により、クライアントエージェント６０４は、コネクティビティおよびＳＳＯを企業リソース６０８に対して有効にする証明および認証情報を供給することを許可される。最後に、ＩＰＣチャンネル６１２により、アプリケーション管理フレームワーク６１４は、オンラインおよびオフラインの認証など、クライアントエージェント６０４により実施されるユーザインターフェース機能を呼び出すことを許可される。
【０１０９】
クライアントエージェント６０４とゲートウェイサーバ６０６との間の通信は、本質的に、各ネイティブ被管理型アプリケーション６１０をラップするアプリケーション管理フレームワーク６１４からの管理チャンネルの延長である。アプリケーション管理フレームワーク６１４は、クライアントエージェント６０４からのポリシー情報を要求し、今度は、ゲートウェイサーバ６０６から同情報を要求する。アプリケーション管理フレームワーク６１４は、認証を要求し、クライアントエージェント６０４は、ゲートウェイサーバ６０６のゲートウェイサービス部に対してログインを行う。クライアントエージェント６０４はまた、ローカルなデータボルト６１６用の暗号化キーを引き出すための入力マテリアルを生成してもよいか、または以下により十分に説明する、ＰＫＩにより保護されたリソースに対する直接認証を有効にしてもよいクライアント証明書を提供してもよい、ゲートウェイサーバ６０６に対する支援サービスを呼び出してもよい。
【０１１０】
より詳しくは、アプリケーション管理フレームワーク６１４は、各被管理型アプリケーション６１０を「ラップ」する。これは、明示的な構築ステップを介して、または構築後の処理ステップを介して組み込まれてもよい。アプリケーション管理フレームワーク６１４は、アプリケーション６１０の最初の開始において、クライアントエージェント６０４と「ペアを形成」し、セキュリティ保護されているＩＰＣチャンネルを起動し、そのアプリケーションに対するポリシーを取得してもよい。アプリケーション管理フレームワーク６１４は、クライアントエージェントのログイン・ディペンデンシーおよびどのようにローカルなＯＳサービスが使用されてもよいか、またはそれらがどのようにアプリケーション６１０とやりとりしてもよいかを制限するコンテインメントポリシーのうちのいくつかなど、ローカルに適用するポリシーの関係する部分を執行してもよい。
【０１１１】
アプリケーション管理フレームワーク６１４は、セキュリティ保護されているＩＰＣチャンネル６１２上で、クライアントエージェント６０４により提供されたサービスを使って、認証および内部ネットワークのアクセスを容易にしてもよい。プライベートおよび共有データボルト６１６（コンテナ）のキーの管理はまた、被管理型アプリケーション６１０とクライアントエージェント６０４との間の適切なインタラクションによって管理されてもよい。ボルト６１６は、オンライン認証後はじめて利用可能になってよく、または、ポリシーにより許可される場合、オフライン認証後、利用可能になってもよい。ボルト６１６を最初に使用する場合は、オンライン認証を要求してもよく、オフラインのアクセスは、オンライン認証が再度要求される前に、最長でもポリシー更新期間に限定されてもよい。
【０１１２】
内部リソースへのネットワークアクセスは、個別の被管理型アプリケーション６１０からゲートウェイサーバ６０６を介して直接的に発生してもよい。アプリケーション管理フレームワーク６１４は、各アプリケーション６１０に代わって、ネットワークアクセスを取りまとめる責任がある。クライアントエージェント６０４は、オンライン認証の後に取得される適切な時間制限された二次的証明を提供することにより、これらのネットワーク接続を容易にしてもよい。リバースウェブプロキシ接続、端末同士のＶＰＮ様式のトンネル６１８など、ネットワーク接続の複数のモードが使用されてもよい。
【０１１３】
メールおよびブラウザ被管理型アプリケーション６１０は、特別のステータスを有し、任意のラップ化アプリケーションに大略的に利用可能でないと思われるファシリティを使用してもよい。たとえば、メールアプリケーションは、完全なＡＤログオンを必要とすることなく、延長時間に亘ってメールアプリケーションに対するＥｘｃｈａｎｇｅへのアクセスを許可する特別なバックグラウンドネットワークアクセス機構を使用してもよい。ブラウザアプリケーションは、複数のプライベートデータボルトを使って、様々な種類のデータを区別してもよい。
【０１１４】
このアーキテクチャは、様々な他のセキュリティ機構の組み込みを支援する。たとえば、（自身のゲートウェイサービスを含む）ゲートウェイサーバ６０６は、場合によっては、ＡＤパスワードの妥当性確認をする必要がないこととなる。ＡＤパスワードをある状況下であるユーザのための認証要素として使用するかどうかは、企業の判断次第とすることができる。様々な認証方法が、ユーザがオンラインか、またはオフライン（つまり、ネットワークに接続しているか接続していないか）かによって、使われてもよい。
【０１１５】
ステップアップ認証は、ゲートウェイサーバ６０６が、強力な認証が必要な非常に機密性が高いデータに対するアクセス権を有することを許可されている被管理型ネイティブアプリケーション６１０を特定し、より弱い以前のレベルのログインの後、ユーザにより再認証が必要であっても、これらのアプリケーションへのアクセスは、適切な認証を行った後でのみ許可されることを確実にするという機構である。
【０１１６】
この解決策の他のセキュリティ機構は、モバイルデバイス６０２上のデータボルト（data vaults）６１６（コンテナ）の暗号化である。ボルト６１６は、ファイル、データベース、および構成を含むデバイス上のデータのすべてが保護されるように暗号化されてもよい。オンラインのボルトに対して、キーは、サーバ（ゲートウェイサーバ６０６）に格納されてもよく、オフラインのボルトに対して、キーのローカルコピーが、ユーザパスワードにより保護されてもよい。データが、セキュリティ保護されているコンテナ６１６内のデバイス６０２上にローカルに格納される場合、最小限のＡＥＳ２５６ビット暗号化アルゴリズムが利用されることが好ましい。
【０１１７】
他のセキュリティ保護されているコンテナ機構もまた実装されてもよい。たとえば、アプリケーション６１０内部で発生するすべてのセキュリティイベントがログされ、バックエンドに報告される、ロギング機構が備えられてもよい。アプリケーション６１０が改ざんを検出した場合、関連付けられた暗号化キーがランダムデータで上書きされ、ユーザデータが破壊されたファイルシステム上にヒントを残さないといったデータ消去が支援されてもよい。スクリーンショット保護は、アプリケーションがどのデータもスクリーンショットに格納されないようにしてもよい他の機構である。たとえば、キーウインドウの隠されたプロパティがＹＥＳに設定されてもよい。これにより、画面に現在表示されているすべてのコンテンツが隠れ、その結果、空白のスクリーンショットとなるが、通常は、そこにコンテンツが存在するだろう。
【０１１８】
たとえば、データをコピーするか、または外部アプリケーションへ送信することによって、任意のデータがアプリケーションコンテナ外にローカルに転送されることを防止することにより、ローカルなデータ転送が防止されてもよい。キーボードキャッシュ機構を動作させて、機密テキストフィールドのために、オートコレクト機能を無効にしてもよい。ＳＳＬ証明書妥当性検証を動作可能にして、サーバＳＳＬ証明書をキーチェーンに格納する代わりに、アプリケーションがサーバＳＳＬ証明書を具体的に妥当性検証してもよい。（オフラインでのアクセスが要求される場合、）デバイス上のデータを暗号化するために使用するキーがユーザにより供給されるパスフレーズを使って生成されるように、暗号化キー生成機構を使ってもよい。オフラインアクセスが要求されない場合、ランダムに生成され、サーバ側に格納される他のキーとのＸＯＲがとられる。ユーザパスワードから生成されたキーが、その暗号学的ハッシュを生成するよりもＫＤＦ（キー導出機能、特に、ＰＢＫＤＦ２）を使用するようにキー導出機能を動作させてもよい。暗号学的ハッシュは、ブルートフォースまたは辞書攻撃に対してキーが脆弱である。
【０１１９】
さらに、１つまたは複数の初期化ベクトルが暗号化の方法において使用されてもよい。初期化ベクトルにより、同一の暗号化されたデータの複数のコピーが作成され、異なる暗号文の出力が生じ、その結果、反射攻撃および暗号解読攻撃の両方を防ぐことができる。これによりまた、データを暗号化するために使用された特定の初期化ベクトルが不明な場合、盗まれた暗号化キーを使っても、攻撃者による任意のデータの解読を防ぐことができることとなる。さらに、ユーザがアプリケーション内で認証をした後になってはじめてアプリケーションデータが解読される、認証後の解読を使用してもよい。他の機構は、必要なときにのみ（ディスクではなく）メモリ内に保持されてもよいメモリ内の機密データに関するものであってもよい。たとえば、ログイン証明は、ログインの後、メモリから消去され、暗号化キーおよびオブジェクティブＣインスタンス変数内部の他のデータは簡単に参照されてしまうので格納されない。その代わりに、メモリは、これらのために手動で割り当てられてもよい。
【０１２０】
ポリシーが定義した非活動期間の後、ユーザセッションが終了する、非活動時間が実装されてもよい。
【０１２１】
アプリケーション管理フレームワーク６１４からのデータ漏洩は、他の方法で防止されてもよい。たとえば、アプリケーション６１０をバックグラウンドに置いた場合、メモリは、所定の（構成可能な）時間の後、取り除かれる。バックグラウンドされた場合、アプリケーションの最後に表示された画面のスナップショットが取られ、フォアグランド処理を早めてもよい。スクリーンショットは、守秘データを含んでいる場合があるため、消去されるべきである。
【０１２２】
他のセキュリティ機構は、１つまたは複数のアプリケーションにアクセスするためのＡＤ（アクティブディレクトリ）６２２のパスワードを使用しない、ＯＴＰ（ワンタイムパスワード）６２０の使用に関する。場合によって、ユーザによっては、自身のＡＤパスワードを知らない（または知ることを許可されていない）ので、これらのユーザは、ＳｅｃｕｒＩＤのようなハードウェアＯＴＰ（ＯＴＰは、ＥｎｔｒｕｓｔまたはＧｅｍａｌｔｏなど様々なベンダーによって提供されてもよい）システムを使用することによってなど、ＯＴＰ６２０を使用して認証してもよい。場合によっては、ユーザがユーザＩＤを使って認証した後、テキストがＯＴＰ６２０を有するユーザへ送信される。場合によっては、これは、単一のフィールドであるプロンプトで、オンラインでの使用のためだけに実施されてもよい。
【０１２３】
オフラインのパスワードは、オフラインでの使用が企業ポリシーにより許可される、アプリケーション６１０に対するオフラインの認証のために実装されてもよい。たとえば、企業は、このような様式で、企業アプリケーションストアがアクセスされることを望む可能性がある。この場合、クライアントエージェント６０４は、ユーザに対して、カスタムなオフラインのパスワードを設定するように要求してもよく、ＡＤパスワードは使用されない。ゲートウェイサーバ６０６は、これらの要件は変更される場合もあるが、標準的なＷｉｎｄｏｗｓ（登録商標）  Ｓｅｒｖｅｒパスワードの複雑度の要件により記載されるように、最小長さ、文字種の組合せ、パスワードの使用期間に関して、ポリシーを提供して、パスワードの基準を管理および執行してもよい。
【０１２４】
他の機構は、（マイクロＶＰＮ機構を介して、ＰＫＩにより保護されているウェブリソースにアクセスする目的のために、）二次証明としての、あるアプリケーション６１０のためのクライアント側の証明書の有効化に関する。たとえば、ｅメールアプリケーションは、そのような証明書を利用してもよい。この場合、クライアントエージェント６０４からの証明書がゲートウェイサーバ６０６により回収され、キーチェーンにおいて使用される、ＡｃｔｉｖｅＳｙｎｃプロトコルを使った証明書型認証が支援されてもよい。各被管理型アプリケーションは、ゲートウェイサーバ６０６において定義されたラベルによって特定される、１つの関連付けられたクライアント証明書を有してもよい。
【０１２５】
ゲートウェイサーバ６０６は、企業専用ウェブサービスとやりとりし、クライアント証明書の発行を支援して、関係する被管理型アプリケーションが内部ＰＫＩにより保護されたリソースから認証されるようにしてもよい。
【０１２６】
クライアントエージェント６０４およびアプリケーション管理フレームワーク６１４を向上させ、内部ＰＫＩにより保護されたネットワークリソースから認証を受けるためのクライアント証明書の取得および使用を支援してもよい。様々なレベルのセキュリティおよび／または分離要件に適合するように、２つ以上の証明書が支援されてもよい。証明書は、メールおよびブラウザ被管理型アプリケーションにより、かつ最終的には、任意のラップ化アプリケーションにより使用されてもよい（ただし、これらのアプリケーションは、アプリケーション管理フレームワークがＨＴＴＰＳ要求に介在することが合理的であるウェブサービススタイル通信パターンを使用していることが条件である）。
【０１２７】
ｉＯＳ上でのクライアント証明書支援は、ＰＫＣＳ  １２  ＢＬＯＢ（Ｂｉｎａｒｙ  Ｌａｒｇｅ  Ｏｂｊｅｃｔ）を各被管理型アプリケーションのｉＯＳキーチェーン内へ、各使用期間、インポートすることに依ってもよい。クライアント証明書支援は、プライベートメモリ内のキーストレージでのＨＴＴＰＳの実施を使用してもよい。クライアント証明書は、ｉＯＳキーチェーン内に決して存在することはなく、潜在的に、強力に保護されている「オンラインのみ」のデータ値以外には留まることはない。
【０１２８】
相互ＳＳＬもまた、実装され、モバイルデバイス６０２が企業から認証され、その逆も認証されることを要求することによって、追加のセキュリティを提供してもよい。ゲートウェイサーバ６０６から認証されるための仮想スマートカードもまた、実装されてもよい。
【０１２９】
制限付きで、かつ完全なＫｅｒｂｅｒｏｓ支援が、追加の機構であってもよい。完全な支援機構は、ＡＤパスワードまたは信用できるクライアント証明書を使って、完全なＫｅｒｂｅｒｏｓログインをＡＤ６２２に対して行い、ＨＴＴＰネゴシエート認証課題に対して応答するためのＫｅｒｂｅｒｏｓサービスチケットを取得する能力に関する。制限付き支援機構は、ＨＴＴＰネゴシエート認証課題に応答して、（制約付き委任の対象である）Ｋｅｒｂｅｒｏｓサービスチケットを取得および使用できるようにＡＦＥＥがＫｅｒｂｅｒｏｓプロトコルの遷移を引き出すことを支援する、ＡＧＥＥにおける制約付き委任に関する。この機構は、リバースウェブプロキシ（別名、ＣＶＰＮ）モードで稼動し、かつ（ＨＴＴＰＳではなく）ＨＴＴＰ接続がＶＰＮおよびマイクロＶＰＮモードでプロキシされた場合、稼動する。
【０１３０】
他の機構は、アプリケーション６１０が稼動していなくても、ジェイルブレイクまたはルーティングを検知したときに自動的に発生し、アドミニストレーションコンソールからプッシュ型のコマンドとして発生してもよく、リモート消去機能を含んでいてもよい、アプリケーションコンテナのロッキングおよび削除に関する。
【０１３１】
企業アプリケーションストアおよびアプリケーションコントローラのマルチサイトアーキテクチャまたはコンフィギュレーションが支援されていてもよく、これにより、故障の場合、ユーザがいくつかの異なる場所のうち１つからサービスを受けることができる。
【０１３２】
場合によっては、被管理型アプリケーション６１０は、ＡＰＩ（例示的ＯｐｅｎＳＳＬ）を介して、証明書およびプライベートキーにアクセスすることが許可されてもよい。企業の信頼できる被管理型アプリケーション６１０は、アプリケーションのクライアント証明書およびプライベートキーを使って、特定のパブリックキー動作を行うことが許可されてもよい。アプリケーションがブラウザのような挙動をし、証明書へのアクセスが求められない場合、「私は誰」に対する証明書をアプリケーションが読み込んだ場合、アプリケーションが証明書を使って、セキュリティ保護されているセッショントークンを構築した場合、アプリケーションが重要データ（たとえば、トランザクションログ）のデジタル署名のため、または一時的なデータ暗号化のためにプライベートキー使う場合など、様々なユースケースが特定され、適切に扱われてもよい。
【０１３３】
本発明の様々な態様を提供および／または実施するために使用される、コンピューティングアーキテクチャおよび企業モビリティ管理アーキテクチャのいくつかの実施例を説明してきたが、ここでは、複数の実施形態がより詳細に記載される。特に、上に紹介したように、本発明のいくつかの態様は、マイニング（たとえば、抽出、分析、および／または選択的に格納）されたデータを含んでいてもよいクラウド同期型データを使って、モバイルデバイス上に提供されたネイティブデスクトップから離間した他のデスクトップから、ネイティブデスクトップを（たとえば、モバイルデバイスなどのクライアントデバイス上に）提供することに大略的に関係する。
【０１３４】
以下の説明では、１つまたは複数の実施形態に従う、どのようにデータがリモートデスクトップからマイニングされ、クラウドベースのデータストレージプラットフォームと同期され、モバイルデバイス上にネイティブデスクトップを提供する際に使用されるかを示す様々な実施例が提供される。これらの、および／または他の特徴を実装することにより、ユーザが最も必要とするであろう、および／またはユーザにより最も重要だと考えられる情報が、同期の結果、キャッシュされ、および／または他の形でユーザのモバイルデバイス上にローカルに格納され、これにより、次に、モバイルデバイスがネットワーク接続を利用できない状況下でも、この情報が、ユーザのためにカスタマイズされた方法、および／または身近な方法で提示されることが可能になってもよい。たとえば、（リモートデスクトップ上に作成されていてもよいが、同期中、モバイルデバイスにより取得されてもよい）ローカルにキャッシュされた情報は、モバイルデバイスがネットワーク接続を利用できるかどうかに拘らず、ネイティブビューイングアプリケーションを使って、モバイルデバイス上にネイティブデスクトップに提示されてもよい。
【０１３５】
図７は、本発明の１つまたは複数の実施形態に従う、クラウド同期型データを使って、ネイティブデスクトップを提供する方法を示すフローチャートを示す。１つまたは複数の実施形態では、図７に示す方法、および／または該方法の１つまたは複数のステップは、コンピューティングデバイス（たとえば、汎用コンピューティングデバイス２０１）により実行されてもよい。たとえば、図７に示す方法は、１つまたは複数の仮想化サーバなどの１つまたは複数のコンピューティングデバイス上で実行および／または他の形でかかるデバイスにより提供されるデスクトップ管理サービスにより行われてもよい。そのようなデスクトップ管理サービスの実施例は、以下にさらに詳細に記載される。他の例では、図７に示す方法は、仮想マシン、ハイパーバイザ、および／またはその他により行われてもよい。さらに他の例では、図７に示す方法および／または該方法の１つまたは複数のステップは、場合によっては、（汎用コンピューティングデバイス２０１などの、コンピューティングデバイスの１つまたは複数の態様を実施してもよい）モバイルデバイスにより行われてもよい。他の実施形態では、図７に示す方法および／または該方法の１つまたは複数のステップは、非一時的コンピュータ読み取り可能メモリなど、コンピュータ読み取り可能媒体に格納されるコンピュータで実行可能な指示において具現化されてもよい。
【０１３６】
ステップ７０５では、データは、リモートデスクトップからマイニングされる。たとえば、リモートデスクトップは、特定のオペレーティングシステムおよび／またはオペレーティングシステムの特定のインスタンスを介して提供され、および／または他の形でそれらと関連付けられてもよい、アプリケーション、ドキュメント、個人設定の集まりでもよい。そのようなリモートデスクトップからデータをマイニングする場合、この情報のいずれかおよび／またはすべては、デスクトップから特定、収集、および／または他の形で抽出され、抽出されたデータの様々な部分は、（たとえば、同期の目的のために）格納されるべきかどうかを判断するために分析され、かつ（たとえば、この分析に基づいて）格納するために選択された抽出されたデータの１つまたは複数の部分のために、（たとえば、以下により詳細に説明する同期を容易にするために）他のシステムまたはサーバ上に格納されてもよい。
【０１３７】
場合によっては、データは、様々な情報を、デスクトップ（以下に説明するように、アプリケーションショートカット、ドキュメント、設定、および／または他のタイプの情報）から抽出、分析、および選択的に格納し、かつこの情報を（この点も以下に説明するように）クラウドベースのデータプラットフォームと同期するように構成されたソースデスクトップ上で稼動しているエージェントまたは他のアプリケーション（たとえば、プラグイン、スクリプトなど）により、（場合によっては、「ソース」デスクトップと称されてもよい）リモートデスクトップから抽出、分析、および／または選択的に格納されてもよい。他の例では、データは、サーバ上で実行されている仮想マシンおよび／またはハイパーバイザを含む、（たとえば、ソースデスクトップを提供してもよい）１つまたは複数の仮想化サーバ、および／または１つまたは複数の他のマシン上で実行される、サービス（たとえば、デスクトップ管理サービス）または他のアプリケーションにより、ソースデスクトップから抽出、分析、および／または選択的に格納されてもよい。たとえば、データは、そのようなマシン上で実行されているプロファイル管理ソフトウェアにより、ソースデスクトップから抽出、分析、および／または選択的に格納されてもよく、プロファイル管理ソフトウェアは、ユーザのネットワークプロファイルと関連付けられた情報を含んでいてもよいネットワークシェアから、ユーザ情報を引き出すように構成されてもよい。そのようなプロファイル管理ソフトウェアは、場合によっては、デスクトップ管理サービスの一部であってもよく、一方、他の場合では、プロファイル管理ソフトウェアは、以下により詳細に説明するデスクトップ管理サービスなどのデスクトップ管理サービスを提供してもよい。
【０１３８】
場合によっては、抽出、分析、および／もしくは選択的に格納されたデータは、１つもしくは複数のアプリケーションショートカット、１つもしくは複数のドキュメント、１つもしくは複数のレジストリキー、１つもしくは複数の個人設定、または１つもしくは複数のレイアウト設定を含んでいてもよい。アプリケーションショートカットおよびドキュメントは、たとえば、最近アクセスされ、および／または使用されたアプリケーションおよびドキュメント、ならびに様々なメニューおよび／またはデスクトップに含まれる他の要素上に存在および／またはそれらを介してアクセス可能な他のアプリケーションおよびドキュメントを含んでいてもよい。さらに、レジストリキー、個人設定、およびレイアウト設定は、デスクトップの複数の異なる態様を制御し、および／またはそれらに影響を及ぼす、様々なプリファレンスおよび／または他の設定を定義してもよい。たとえば、個人設定は、デスクトップに含まれる１つまたは複数のアプリケーション（たとえば、ワードプロセッシングアプリケーション、ｅメールアプリケーション、インスタントメッセージアプリケーションなど）により使用されるカスタムスペルチェック用辞書を含んでいてもよい。他の実施例として、個人設定は、ユーザの好みのウェブサイトおよび／またはネットワークフォルダのためのブックマークを含んでいてもよい。
【０１３９】
場合によっては、リモートデスクトップは、第１のオペレーティングシステムと関連付けられてもよく、（たとえば、下に説明するように、クライアントデバイス上に提示されてもよい）ネイティブデスクトップは、第１のオペレーティングシステムとは異なる第２のオペレーティングシステムと関連付けられてもよい。たとえば、リモートデスクトップは、（たとえば、仕事用コンピュータ上のユーザにより頻繁にアクセスされてもよい）ＷＩＮＤＯＷＳ（登録商標）デスクトップであってもよく、ネイティブデスクトップは、（たとえば、以下に説明するように、ユーザのモバイルデバイス上に提示されてもよい）ｉＯＳまたはＡＮＤＲＯＩＤ（登録商標）デスクトップであってもよい。
【０１４０】
ステップ７１０では、データは、クラウドベースのデータストレージプラットフォームと同期される。たとえば、ステップ７１０では、（たとえば、ステップ７０５で抽出、分析、および／または選択的に格納された）データは、Ｃｉｔｒｉｘ  ＳｙｓｔｅｍｓによるＳＨＡＲＥＦＩＬＥなどのクラウドベースのデータストレージプラットフォームに対してアップロードされ、および／または他の形で同プラットフォームとの間で送受信されてもよい。エージェント、アプリケーション、またはサービス（たとえば、デスクトップ管理サービス）は、たとえば、抽出、分析、および／または選択的に格納されたデータをクラウドベースのストレージプラットフォームと同期させ、および／または（たとえば、データをクラウドベースのストレージプラットフォームとの間で送受信し、および／またはそのようなデータをクラウドベースのストレージプラットフォームとの間で送受信させることにより）そのような同期を発生させてもよい。以下に示すように、この同期は、（たとえば、クラウドベースのデータストレージプラットフォームに接続、および／またはそこからデータをダウンロードすることにより）他のデバイスおよび／またはシステムがデータを取得できるようにしてもよい。
【０１４１】
いくつかの実施形態では、クラウドベースのデータストレージプラットフォームを使って、抽出、分析、および／または選択的に格納されたデータをモバイルデバイスと同期することに加えて、および／またはそれに代えて、（たとえば、以下に説明するように）、追加のおよび／または代替の同期技術および／またはサービスを利用してもよい。たとえば、場合によっては、リモートデスクトップからマイニングされたデータは、ＩＣＡチャンネル上で、モバイルデバイスと同期され、その後、（たとえば、以下に説明するように）ネイティブデスクトップに提示する際に使用するためにモバイルデバイス上にキャッシュされてもよい。データがモバイルデバイス上で同期および／またはかかるデバイス上でキャッシュされる追加および代替の方法が以下により詳細に記載される。
【０１４２】
ステップ７１５では、ネイティブデスクトップが、同期されたデータを使って、（たとえば、モバイルデバイスであってもよい）クライアントデバイス上に提示される。そのようなネイティブデスクトップは、たとえば、モバイルデバイス上で実行するレシーバソフトウェアにより管理されるネイティブにレンダリングされたデスクトップを備えてもよく、同期されたデータは、モバイルデバイス上にローカルにキャッシュされ、かつネイティブデスクトップをレンダリングする際、ならびに／またはリモートデスクトップから抽出、分析、および／もしくは選択的に格納されたアプリケーション、ドキュメント、および／もしくは他の情報へアクセスする際に使用されてもよい。たとえば、リモートデスクトップが複数のドキュメント、アプリケーションショートカット、およびあるデスクトップバックグラウンド画像を含んでいた場合、（たとえば、クラウドベースのデータストレージプラットフォームから取得した同期されたデータを使用した結果、）ネイティブデスクトップも同じドキュメント、アプリケーションショートカット、およびデスクトップバックグラウンド画像を含んでいてもよい。
【０１４３】
さらに、以下により詳細に記載するように、モバイルデバイスのユーザは、（たとえば、ネイティブドキュメントビューイングアプリケーション、ネイティブワードプロセッシングアプリケーションなど）（もし、たとえば、そのようなアプリケーションが利用可能であれば）モバイルデバイス上でネイティブビューイングアプリケーションを使って、および／または（もし、たとえば、ネイティブビューイングアプリケーションが利用不可であれば）仮想化型、遠隔型アプリケーションを使って、これらのドキュメントおよび／または他のファイルとやりとりできてもよい。
【０１４４】
図７に示す方法が（たとえば、リモート／ソースデスクトップを提供する１つまたは複数の仮想化サーバ上で実行されてもよい）デスクトップ管理サービスにより行われる場合は、そのようなデスクトップ管理サービスにより、たとえば、モバイルデバイスがクラウドベースのストレージプラットフォームにアクセスするように構成することにより、ネイティブデスクトップが、モバイルデバイス上に提示され、同期されたデータをモバイルデバイス上にダウンロード、格納、および／または維持してもよい。さらに、ネイティブデスクトップをモバイルデバイス上に提示させる際、デスクトップ管理サービスは、（たとえば、ネイティブデスクトップを閲覧および／または同デスクトップとやりとりするための要求を受信したことに対応して）デスクトップをユーザに提示する際に、同期されたデータを使用するようにモバイルデバイスをさらに構成してもよい。
【０１４５】
このようにモバイルデバイスを構成する際、デスクトップ管理サービスは、たとえば、モバイルデバイスの１つまたは複数の設定および／またはモバイルデバイス上で実行されてもよい１つまたは複数のソフトウェアアプリケーションを、確立および／または変更してもよい。たとえば、モバイルデバイスを構成する際、デスクトップ管理サービスは、モバイルデバイス上にインストールされ、および／または他の形でかかるデバイス上で稼動するよう構成されたレシーバアプリケーションの１つまたは複数の設定を確立および／または変更してもよく、これらの設定は、（たとえば、スケジュールに沿って周期的になど、ユーザがデスクトップを閲覧することを要求した場合、オンデマンドで）レシーバアプリケーションが、クラウドベースのストレージプラットフォームにアクセスし、クラウドベースのストレージプラットフォームにより維持された同期されたデータを取得および／またはローカルにキャッシュできるようになり、および／またはそのようにさせられてもよい。
【０１４６】
特に、マイニングされたデータがリモートデスクトップとクラウドストレージプラットフォームとの間で同期されることに加えて、データはまた、クラウドストレージプラットフォームとリモートデスクトップの特定のユーザに連結された１つまたは複数のモバイルデバイスとの間で同期されてもよい。そのようなデータは、たとえば、モバイルデバイスにより、オンデマンドで（たとえば、ユーザがモバイルデバイス上のレシーバアプリケーションを開くか、または同アプリケーションに切り替えたとき）ダウンロードされてもよく、および／または周期的に（たとえば、毎時、毎日などスケジュールに沿って）モバイルデバイスに提供されてもよい。場合によっては、１つのデバイスまたはデスクトップ上で同期されたデータに対して変更を加えられた場合、すべての同期されたデバイスが、本開示の様々な態様に従って、ネイティブデスクトップの同期されたデータの最新版を提示できるようにクラウドストレージプラットフォームおよび／またはデスクトップ管理サービスは、（たとえば、接続が利用可能、および／または確立できる際に、）変更を他のデバイスに対してプッシュしてもよい。
【０１４７】
１つまたは複数の実施形態では、（たとえば、ステップ７１５において）モバイルデバイス上に提示されるネイティブデスクトップは、ユーザおよび／またはデバイス上で実行するオペレーティングシステムにより使用されているデバイスのタイプに依存してもよい。
【０１４８】
たとえば、モバイルデバイスがｉＯＳオペレーティングシステムを稼動している場合、モバイルデバイス上に提示されるネイティブデスクトップは、ネイティブデスクトップの見た目および雰囲気がｉＯＳオペレーティングシステムおよび／またはデバイス上で実行されている他のアプリケーションと一貫性があり、および／またはシームレスであるように、ある特徴を有してもよい。同様に、モバイルデバイスがＡＮＤＲＯＩＤ（登録商標）オペレーティングシステムを稼動している場合、モバイルデバイス上に提示されるネイティブデスクトップは、ネイティブデスクトップの見た目および雰囲気がＡＮＤＲＯＩＤ（登録商標）オペレーティングシステムおよび／またはデバイス上で実行されている他のアプリケーションと一貫性があり、および／またはシームレスであるように、ある特徴を有してもよい。他の場合では、ネイティブデスクトップは、デバイスで使用されている（たとえば、ｉＯＳおよびＡＮＤＲＯＩＤ（登録商標）以外の）異なるオペレーティングシステムに基づいて、モバイルデバイス上に提示されてもよい。さらに、配置によっては、ネイティブデスクトップが提示されるデバイスは、モバイルデバイスでなくてもよく、むしろデバイスは、テザー型デバイス、有線コンピュータデバイス、および／またはその他であってもよい。
【０１４９】
たとえば、場合によっては、ネイティブデスクトップをモバイルデバイス上に提示させることは、ネイティブデスクトップの少なくとも１つのネイティブアプリケーションを使って、同期されたデータのうち少なくとも一部を表示させることを含んでいてもよい。たとえば、同期されたデータがＭＩＣＲＯＳＯＦＴ  ＷＯＲＤドキュメントを含み、かつモバイルデバイス上に提示されるネイティブデスクトップがＡＰＰＬＥ  ｉＯＳデスクトップである場合、同期されたデータを提示させることは、ＡＰＰＬＥ  ＰＡＧＥＳまたはモバイルデバイス上にネイティブに実行および／またはレンダリングされる他のワードプロセッシングアプリケーションにドキュメントを提示することを含んでいてもよい。
【０１５０】
他の場合では、ネイティブデスクトップをモバイルデバイス上に提示させることは、同期されたデータのうち少なくとも一部用のネイティブビューイングアプリケーションが利用不可能な場合、遠隔型アプリケーションをモバイルデバイス上に提示させることを含んでいてもよい。たとえば、同期されたデータは上の実施例のようにＭＩＣＲＯＳＯＦＴ  ＷＯＲＤドキュメントを含むが、ネイティブデスクトップおよび／またはモバイルデバイスはドキュメントを表示および／または編集できるアプリケーションを含まない場合、遠隔で実行されるアプリケーションが、（たとえば、モバイルデバイスがネットワーク接続を利用可能な場合、）モバイルデバイスに切り替えられ、および／または他の形でかかるデバイス上に提示され、ドキュメントにアクセス可能になり、および／または編集できるようになってもよい。よって、この実施例では、ＭＩＣＲＯＳＯＦＴ  ＷＯＲＤのリモートセッションが、モバイルデバイス上に表示および／または他の形で提示されてもよい。
【０１５１】
リモートセッションは、たとえば、上述の１つまたは複数の態様の仮想化技術を使って、（たとえば、ネイティブに実行および／またはレンダリングされたアプリケーションではない）リモートサーバにより提供されたＭＩＣＲＯＳＯＦＴ  ＷＯＲＤアプリケーションの仮想化であってもよい。このように、（たとえば、Ｗｉｎｄｏｗｓ（登録商標）デスクトップから）遠隔で実行されるアプリケーションをネイティブデスクトップ上に呼び出すことが可能であり、その結果、ユーザは、ネイティブアプリケーションと遠隔型アプリケーションとの間を、シームレスに、かつ透過的に切り替えられるようになり、向上したシームレスなユーザエクスペリエンスを提供できる。
【０１５２】
いくつかの実施形態では、ネイティブデスクトップは、モバイルデバイス上にインストールされ、および／またはかかるデバイスにより実行されるレシーバアプリケーションを使って、モバイルデバイス上に提示されてもよい。他の場合では、アプリケーションストアからユーザによりダウンロードおよび／またはインストールされる１つまたは複数のアプリケーションを含む、任意の望ましい（複数の）ソフトウェアアプリケーションを、ネイティブデスクトップを提示する際に使用してもよい。
【０１５３】
ステップ７２０では、バックグラウンド接続がモバイルデバイスと、リモートデスクトップを提供するように構成された第２のデバイス（仮想マシンまたはハイパーバイザなど）との間に確立される。たとえば、リモートデスクトップがリモートのＷｉｎｄｏｗｓ（登録商標）デスクトップであり、ネイティブデスクトップがモバイルデバイス上に提示されるｉＯＳまたはＡＮＤＲＯＩＤ（登録商標）デスクトップの場合、モバイルデバイス（および／またはかかるデバイス上で実行されているレシーバソフトウェア）は、ネイティブデスクトップが、最初、モバイルデバイスにレンダリング、表示、および／または他の形で提示された後、リモートのＷｉｎｄｏｗｓ（登録商標）デスクトップへの接続を確立してもよい。これにより、たとえば、モバイルデバイスのユーザが自身のドキュメントおよびアプリケーションにアクセスおよび／またはこれらを閲覧するために待たなければならない時間量が（たとえば、ネイティブデスクトップが利用不可能な場合にユーザが待たなければならない時間量、およびリモートデスクトップがロードおよび表示されるまでユーザが待たなければならない時間量に対して）削減されてもよい。換言すれば、ネイティブデスクトップが最初に提示された後、バックグラウンドでリモートデスクトップに対する接続を確立することにより、ユーザは、自身のドキュメント、アプリケーション、および他のデータに対して即時アクセスが可能であると認識してもよい。
【０１５４】
ステップ７２５では、クライアントデバイス上で同期されたデータに対してなされた変更は、クラウドベースのデータストレージプラットフォームと同期される。たとえば、同期されたデータの少なくとも一部が（たとえば、ネイティブビューイングアプリケーションおよび／またはネイティブデスクトップにおいて、データの少なくとも一部をユーザの編集および／または他の形で変更した結果として）モバイルデバイス上で変更される場合、これらの変更がリモートデスクトップ（たとえば、リモートのＷｉｎｄｏｗｓ（登録商標）デスクトップ）上に反映するように、変更のうちいずれかおよび／またはすべてがクラウドベースのデータストレージプラットフォームと同期されてもよい。たとえば、ユーザがモバイルデバイス上のネイティブワードプロセッシングアプリケーションを利用して、ネイティブデスクトップに含まれるドキュメントを編集する場合、ユーザが後でリモートデスクトップ上のドキュメントにアクセスした場合、ユーザが保存したドキュメントに対する変更は、モバイルデバイス上のドキュメントになされた変更が反映されるようにクラウドベースのデータストレージプラットフォームと同期されてもよい。
【０１５５】
いくつかの実施形態では、（たとえば、クラウドベースのデータストレージプラットフォームにより維持された）マイニングおよび同期されたデータおよび／または（たとえば、モバイルデバイス上に維持された）このデータのローカルにキャッシュされたコピーは、複数の異なるセキュリティ手段で安全が確保され、ネットワークアドミニストレータおよび／または他のユーザがデータに対するアクセスおよび／または編集の制御を行うことができる。たとえば、場合によっては、ロケーションベースのセキュリティ手段は、ネットワークアドミニストレータにより構成および／または実施され、１つまたは複数の特定の場所（たとえば、特定のオフィスビル内など、仕事の現場）では、モバイルデバイスのユーザがローカルにキャッシュされデータに対して、アクセス、オープン、閲覧、および／または編集することができ、他の場所（たとえば、モバイルデバイスのユーザの自宅）では、そのようなデータに対して、アクセス、オープン、閲覧、および／または編集することが制限されてもよい。同様の制限は、たとえば、どのアプリケーションがネイティブデスクトップにおいて実行され、および／またはネイティブデスクトップを介して提供されるかを制御および／または制限するよう構成および／または実施されてもよい。さらに／あるいは、他の設定が、ネイティブデスクトップにおけるアプリケーションの実行および／または含有を、（たとえば、アプリケーションストアからモバイルデバイス上にインストールされてもよい任意のアプリケーションではない）１つまたは複数の、特定のセキュリティ保護されているモバイルアプリケーションに制御および／または制限するように構成および／または実施されてもよい。
【０１５６】
（たとえば、クラウドベースのデータストレージプラットフォームにより維持される）マイニングおよび同期されたデータおよび／または（たとえば、クライアントデバイス上に維持される）このデータのローカルにキャッシュされたコピーがセキュリティ保護されている場合には、１つまたは複数のポリシーが定義、適用、執行、および／または他の形で使用され、どのようにデータがアクセスおよび／または使用されるかが制御されてもよい。
【０１５７】
そのようなポリシーは、たとえば、クライアントデバイスに関連付けられた状態情報（state information）という点で評価されてもよいクライアントデバイスの現在のコンテキストにより、許可および／または禁止されたデータの使用を定義してもよい。そのような状態情報は、たとえば、どのアプリケーションおよび／またはファイルがクライアントデバイス上にインストールおよび／または使用されているか、どこにクライアントデバイスが位置しているか、および／またはどの（複数の）ネットワークにクライアントデバイスが接続されているかに関する情報を含んでいてもよい。この状態情報は、たとえば、クライアントデバイス上で稼動する管理エージェントによりモニタされ、この状態情報をモニタすることに加え、管理エージェントは、また、（たとえば、１つまたは複数のクライアントデバイスの機能を選択的に有効化および／または無効化し、クライアントデバイス上のローディングされたアプリケーションの１つまたは複数の機能を選択的に有効化および／または無効化し、クライアントデバイス上の１つまたは複数の特定の情報リソースへのアクセスを選択的に有効化および／または無効化することなどにより）ポリシー遵守を執行してもよい。
【０１５８】
いくつかの実施形態では、１つまたは複数のポリシーは、ネイティブデスクトップの挙動を制御するように構成されてもよい。特に、１つまたは複数のポリシーは、たとえば、クライアントデバイスと関連付けられた状態情報に基づいて、クライアントデバイス上に提示されるネイティブデスクトップの挙動に対して、制御し、セキュリティ保護性を確保し、および／または他の形で影響を与えるように構成されてもよい。たとえば、クライアントデバイス上で適用、執行、および／または他の形で使用されてもよい１つまたは複数のポリシーのうち少なくとも１つのポリシーは、クライアントデバイスと関連付けられた状態情報によって、マイニングおよび同期されたデータをローカルにキャッシュおよび／または他の形で格納するクライアントデバイスの能力を選択的に無効化および／または有効化するように構成されてもよい。
【０１５９】
他の実施例として、クライアントデバイス上で適用、執行、および／または他の形で使用されてもよい１つまたは複数のポリシーのうち少なくとも１つのポリシーは、クライアントデバイスと関連付けられた状態情報によって、クライアントデバイス上の１つまたは複数のキャッシュされたファイルにアクセスするために認証が必要かどうかを制御するように構成されてもよい。他の実施例として、クライアントデバイス上で適用、執行、および／または他の形で使用されてもよい１つまたは複数のポリシーのうち少なくとも１つのポリシーは、マイニングおよび同期されたデータを閲覧および／または編集する際に、クライアントデバイスと関連付けられた状態情報によって、ネイティブデスクトップが１つまたは複数のネイティブエディタおよび／または他のネイティブアプリケーションを使用することが許可されているかどうかを制御するように構成されてもよい。他の実施例として、クライアントデバイス上で適用、執行、および／または他の形で使用されてもよい１つまたは複数のポリシーのうち少なくとも１つのポリシーは、マイニングおよび同期されたデータを閲覧および／または編集する際に、クライアントデバイスと関連付けられた状態情報によって、ネイティブデスクトップが１つまたは複数の遠隔型アプリケーションを使用することが許可されているかどうかを制御するように構成されてもよい。他の実施例として、クライアントデバイス上で適用、執行、および／または他の形で使用されてもよい１つまたは複数のポリシーのうち少なくとも１つのポリシーは、クライアントデバイスと関連付けられた状態情報によって、クライアントデバイス上の１つまたは複数の特定のアプリケーションが、マイニングおよび同期されたデータに対して、閲覧、編集、および／または他の形でアクセスすることを選択的に許可および／または禁止するように構成されてもよい。
【０１６０】
どのようにモバイルデバイス上のネイティブデスクトップがいくつかの実施形態でセキュリティ保護されるか、ならびにいくつかの実施形態で使用されてもよい追加のコンピューティングシステムのアーキテクチャおよびコンピューティング環境は、２０１３年３月２９日に出願され、参照により本明細書にあらゆる目的でその全体が組み込まれる、「SYSTEMS AND METHODS FOR ENTERPRISE MOBILITY MANAGEMENT」と題された米国特許出願第６１／８０６，５７７号にさらに詳細に説明されている。
【０１６１】
図８〜図１２は、本発明の１つまたは複数の実施形態に従うクラウド同期型データを使って、ネイティブデスクトップを提供する際に、モバイルデバイス上に表示されてもよいユーザインターフェースを描いている。
【０１６２】
図８は、モバイルデバイス（たとえば、スマートフォン、タブレット型コンピュータ、任意の他のタイプのモバイル型コンピューティングデバイスなど）にネイティブにレンダリングおよび表示されてもよいネイティブデスクトップ８００を含むユーザインターフェースの実施例を示す。図８から分かるように、ネイティブデスクトップ８００は、プログラム、ドキュメント、ならびにアクセスおよび／または表示されてもよい他のファイルのメニューをユーザが閲覧することを可能にするユーザ選択型ボタンであってもよい、スタートボタン８０５を含んでいる。１つまたは複数の実施形態では、上述した実施例のように、メニューのコンテンツは、抽出、分析、および／または選択的に格納され、その後、同期されたリモートデスクトップ（たとえば、リモートのＷｉｎｄｏｗｓ（登録商標）デスクトップ）内に含まれるスタートメニューのコンテンツを反映してもよい。さらに、ネイティブデスクトップ８００は、１つまたは複数のドキュメント８１０、８１５、８２０および８２５を含み、（たとえば、上述で実行された同期の結果として）リモートデスクトップ内に含まれるドキュメントを同様に反映してもよい。
【０１６３】
１つまたは複数の実施形態において、ネイティブデスクトップ８００はまた、（ネイティブデスクトップが同期されるリモートデスクトップをユーザが閲覧することを可能にするユーザ選択型ボタンであってもよい）リモートデスクトップボタン８３０と、（リモートデスクトップに対するバックグラウンド接続が確立されたかどうかを示してもよい）接続ステータスインジケータ８３５と、（他のウインドウが表示されている場合、ユーザがデスクトップを閲覧することを可能にするユーザ選択型ボタンであってもよい）閲覧デスクトップボタン８４０と、（ユーザが様々なアプリケーション間で、および／または様々なファイル間で、ディスプレイを切り替えることを可能にするユーザ選択型ボタンであってもよい）アプリケーション切替ボタン８４５と、を含む、複数の他のボタンおよびインジケータを含んでいる。
【０１６４】
図９は、ネイティブデスクトップ９００の他の実施例を示す。図９から分かるように、選択されているスタートボタン９０５に基づいて、様々なアプリケーション、ドキュメント、および／または他のファイルを含むメニュー９１０が表示されている。１つまたは複数の実施形態では、メニュー９１０のコンテンツは、ネイティブデスクトップ９００が同期されたリモートデスクトップに含まれる同様のメニューのコンテンツと対応してもよい。たとえば、上述のデータマイニングおよび同期技術を使って、（たとえば、リモートのＷｉｎｄｏｗｓ（登録商標）デスクトップであってもよい）リモートデスクトップ内のユーザのスタートメニューのコンテンツは、ネイティブデスクトップ９００において提示され、ユーザは、モバイルデバイス上の身近な方法で、スタートメニューに含まれるアプリケーション、ドキュメント、および／または他のファイルに対して、アクセスおよび／または閲覧ができるようになってもよい。
【０１６５】
図１０は、ネイティブビューイングアプリケーションが表示されるユーザインターフェース１０００を示す。図１０から分かるように、ユーザインターフェース１０００は、（たとえば、上述のデータマイニングおよび同期技術を使って）モバイルデバイス上のネイティブデスクトップと同期されているドキュメントのコンテンツを含んでいる。さらに、ユーザインターフェース１０００は、選択された場合、メニュー１０１０を表示させるメニューボタン１００５を含んでいてもよい。そして、メニュー１０１０は、モバイルデバイスのユーザがドキュメントに関する様々なアクションを行えるようにする複数のオプション１０１５、１０２０、１０２５を含んでいてもよい。たとえば、メニュー１０１０は、選択された場合、モバイルデバイスに、ネイティブビューイングアプリケーションにドキュメントを表示することから遠隔型アプリケーションにドキュメントを提示するように切り替えさせてもよいオープンアプリケーションオプション１０１５を含んでいてもよい。さらに、メニュー１０１０は、ユーザに１人または複数の受信者に対してドキュメントを送信することを許可してもよいファイル送信オプション１０２０、およびユーザに１人または複数の受信者とドキュメントへのリンクを共有することを許可してもよいコピーリンクオプション１０２５を含んでいてもよい。
【０１６６】
図１１は、ドキュメントが遠隔型アプリケーションに提示されているユーザインターフェース１１００を示す。特に、ユーザインターフェース１１００は、ユーザが前の実施例のメニュー１０１０のオープンアプリケーションオプション１０１５を選択することに応答して、表示される。この選択に基づいて、モバイルデバイスは、図１１から分かるように、ドキュメントに対して遠隔型アプリケーションを提示してもよい。
【０１６７】
図１２は、ネイティブデスクトップ１２００の他の実施例を示す。図１２から分かるように、モバイルデバイスのユーザがアプリケーション切替ボタン１２０５を選択することに基づいて、アプリケーション切替メニュー１２１０が表示されている。さらに、アプリケーション切替メニュー１２１０は、複数のアイコン１２１５および１２２０を含み、これらのアイコンの各々は、ネイティブデスクトップ１２００を介してアクセスできる様々なドキュメントに対応してもよい。場合によっては、ドキュメントおよび／またはアプリケーション切替メニュー１２１０に含まれてもよいアプリケーションショートカットのすべては、ローカルで実行および／またはネイティブにモバイルデバイス上にレンダリングされるドキュメントおよび／またはアプリケーションに対応してもよい。他の場合では、ドキュメントおよび／またはアプリケーション切替メニュー１２１０に含まれてもよいアプリケーションショートカットの一部またはすべては、遠隔で実行およびモバイルデバイス上に単に表示されるドキュメントおよび／またはアプリケーションに対応してもよい。
【０１６８】
図１３は、本発明に説明される１つまたは複数の実施形態に従った、クラウド同期型データを使ってネイティブデスクトップを提供するシステム１３００の一実施例を描写している。図１３から分かるように、システム１３００は、仮想化サーバ１３０５と、１つまたは複数のクラウドサーバ１３３５と、クライアントデバイス１３４５と、を含んでいる。いくつかの実施形態では、システム１３００は、ここで説明するものに代えて、および／またはそれに加えて、他の要素を含んでいてもよい。たとえば、システム１３００は、複数の仮想化サーバおよび／または複数のクライアントデバイスを含んでいてもよい。
【０１６９】
１つまたは複数の配置において、仮想化サーバ１３０５は、汎用コンピューティングデバイス２０１の１つまたは複数の態様を実施してもよい。たとえば、仮想化サーバ１３０５は、たとえば、仮想化サーバ１３０５に、様々な指示を受信、格納、および／または実行させることを可能にしてもよい１つもしくは複数のプロセッサ、メモリ、および／または他のコンポーネントを含んでいてもよい。さらに／あるいは、仮想化サーバ１３０５は、仮想化サーバ３０１の１つまたは複数の態様を実施してもよい。
【０１７０】
いくつかの実施形態では、仮想化サーバ１３０５は、たとえば、本開示の１つまたは複数の態様に従って、モバイルデバイスのユーザによりアクセスおよび／または使用されてもよいリモートデスクトップ１３１０を含む、１つまたは複数の仮想デスクトップのための情報に対する、アクセスおよび／または格納を提供してもよい。仮想化サーバ１３０５はまた、（たとえば、仮想化サーバ１３０５にデスクトップ管理サービス１３１５を提供させるコンピュータ読み取り可能指示を格納および／または実行することにより、仮想化サーバ１３０５により提供されてもよい）デスクトップ管理サービス１３１５を提供してもよい。
【０１７１】
いくつかの実施形態では、デスクトップ管理サービス１３１５は、あるタスクを実行、および／または本開示の様々な態様を簡易にしてもよい他の機能を提供してもよい、様々なエージェントを含んでいてもよい。たとえば、デスクトップ管理サービス１３１５は、データマイニングエージェント１３２０と、同期エージェント１３２５と、管理エージェント１３３０と、を含んでいてもよい。他の実施形態では、ここで説明したものに代えて、および／またはそれに加えて、デスクトップ管理サービス１３１５は、他のエージェントおよび／または他の要素を含んでいてもよい。
【０１７２】
配置によっては、データマイニングエージェント１３２０は、リモートデスクトップ１３１０を含む１つまたは複数の仮想デスクトップから情報を特定、収集、および／または抽出してもよい。さらに、データマイニングエージェント１３２０は、特定、収集、および／または抽出された情報を分析して、そのような情報を、同期を目的として格納するべきかどうかを判別してもよい。データマイニングエージェント１３２０は、また、分析に基づいて格納するように選択された情報の部分を格納してもよい。たとえば、データマイニングエージェント１３２０は、仮想化サーバ１３０５により維持され、および／または同サーバにアクセス可能である１つもしくは複数のデータベース内のこの情報のいずれかおよび／またはすべてをローカルに格納してもよい。さらに、上述したように、リモートデスクトップ１３１０などの仮想デスクトップからデータマイニングエージェント１３２０により収集および／または抽出されてもよい情報のタイプは、アプリケーションショートカット、ドキュメント、レジストリキー、個人設定、レイアウト設定、および他のタイプの情報を含んでいてもよい。
【０１７３】
配置によっては、同期エージェント１３２５は、データマイニングエージェント１３２０により格納された情報をクラウドベースのストレージプラットフォーム１３４０などのクラウドベースのストレージプラットフォームに対して、アップロードしてもよい。このアップロードにより、本開示の様々な態様に従って、たとえば、他のデバイスおよび／または他のシステムは、ネイティブデスクトップを提示する際、使用するための、データマイニングエージェント１３２０により格納される情報を取得できてもよい。さらに、同期エージェント１３２５は、クラウドベースのストレージプラットフォーム１３４０を使って、情報を受信および／または他の形で情報を送受信し、データマイニングエージェント１３２０により格納された情報が最新であることを確実にする。特に、他のデバイス上のこの情報に変更が加えられたとき、かつそのような変更がクラウドベースのストレージプラットフォーム１３４０にそのとき格納された情報に反映されたとき、他のシステム上になされた任意の変更が仮想化サーバ１３０５により提供される仮想デスクトップ１３１０において反映されるように、変更および／または更新された情報が同期エージェント１３２５によりダウンロードされてもよい。
【０１７４】
配置によっては、管理エージェント１３３０は、ネイティブデスクトップをクライアントデバイス１３４５などの、１つまたは複数のクライアントデバイス上に提示させてもよい。ネイティブデスクトップをクライアントデバイス上に提示させる際、管理エージェント１３３０は、たとえば、クライアントデバイス（および／またはクライアントデバイス上でロードおよび／または実行される１つまたは複数のソフトウェアアプリケーション）を構成して、その結果、デバイス（および／またはデバイス上のアプリケーション）が、データマイニングエージェント１３２０により格納および／または同期エージェント１３２５によりクラウドベースのストレージプラットフォーム１３４０と同期されてもよい情報を使って、ネイティブデスクトップを提示できるようになってもよい。
【０１７５】
１つまたは複数の配置において、１つまたは複数のクラウドサーバ１３３５は、汎用コンピューティングデバイス２０１の１つまたは複数の態様を実施してもよい。たとえば、１つまたは複数のクラウドサーバ１３３５の各々は、たとえば、各サーバに、様々な指示を受信、格納、および／または実行させることを可能にしてもよい１つまたは複数のプロセッサ、メモリ、および／または他のコンポーネントを含んでいてもよい。
【０１７６】
いくつかの実施形態では、１つまたは複数のクラウドサーバ１３３５は、クラウドベースのストレージプラットフォーム１３４０を提供してもよい。たとえば、１つまたは複数のクラウドサーバ１３３５は、クラウドベースのストレージプラットフォーム１３４０と関連付けられたデータを格納し、クラウドベースのストレージプラットフォーム１３４０と関連付けられた認証、暗号化、および他の機能などの、他の機能を提供してもよい。
【０１７７】
いくつかの実施形態では、クラウドベースのストレージプラットフォーム１３４０は、１つもしくは複数の特定の組織または他のエンティティと関連付けられてもよい様々な企業ユーザを含む、様々なユーザに対して、データストレージ、ファイル共有、および他の機能を提供してもよい。場合によっては、クラウドベースのストレージプラットフォーム１３４０は、企業リソース５０４と同様の企業リソースであってもよく、モバイルコンピューティングサービスを（たとえば、従業員、契約企業、メンバー、アフィリエイト、認証ユーザ、および／または他のエンティティへ）提供する際、組織または他のエンティティによりデプロイされた企業モビリティアーキテクチャの一部であってもよい。
【０１７８】
１つまたは複数の配置において、クライアントデバイス１３４５は、汎用コンピューティングデバイス２０１の１つまたは複数の態様を実装してもよい。たとえば、クライアントデバイス１３４５は、たとえば、クライアントデバイス１３４５に、様々な指示を受信、格納、および／または実行させることを可能にしてもよい１つまたは複数のプロセッサ、メモリ、および／または他のコンポーネントを含んでいてもよい。場合によっては、クライアントデバイス１３４５は、スマートフォン、タブレット型コンピュータ、または他のタイプのモバイル型コンピューティングデバイスなどのモバイルデバイスであってもよい。
【０１７９】
いくつかの実施形態では、クライアントデバイス１３４５は、（たとえば、コンピュータ読み取り可能指示を格納および／または実行することによって、）同期エージェント１３５０と、キャッシュ１３３５と、レシーバアプリケーション１３６０と、を含んでもよく、および／または提供してもよい。配置によっては、同期エージェント１３５０は、１つまたは複数のクラウドサーバ１３５５に接続してもよく、クラウドベースのストレージプラットフォーム１３４０に対して、情報をダウンロード、情報をアップロード、および／または情報を送受信してもよい。したがって、１つまたは複数のクラウドサーバ１３３５から同期エージェント１３５０により取得された情報は、リモート仮想デスクトップ１３１０からマイニングされた情報および／または他の情報を含んでいてもよい。さらに、同期エージェント１３５０は、クライアントデバイス１３４５上のローカルキャッシュ１３５５においてクラウドベースのストレージプラットフォーム１３４０から取得された情報を格納してもよい。
【０１８０】
配置によっては、レシーバアプリケーション１３６０は、クライアントデバイス１３４５上でロードおよび／またはクライアントデバイス１３４５により実行されるソフトウェアアプリケーションであってもよい。レシーバアプリケーション１３６０は、たとえば、ネイティブデスクトップ１３６５を提供してもよく、場合によっては、同期エージェント１３５０によりキャッシュ１３５５に格納および／または他の形でリモートデスクトップ１３１０から取得された情報を使って、ネイティブデスクトップ１３６５は、レシーバアプリケーション１３６０により提示されてもよい。キャッシュ１３５５に格納された情報を使って、ネイティブデスクトップ１３６５を提示することにより、クライアントデバイス１３４５と、仮想化サーバ１３０５および／または１つもしくは複数のクラウドサーバ１３３５との間でネットワーク接続を確立できない場合であっても、レシーバアプリケーション１３６０は、クライアントデバイス１３４５のユーザがネイティブデスクトップ１３６５に対して、閲覧および／またはやりとりできるようにしてもよい。そのようなネットワーク接続が確立可能なときに、レシーバアプリケーション１３６０はまた、ネイティブデスクトップ１３６５をクライアントデバイス１３４５のユーザに提供する際に、リモート仮想デスクトップ１３１０とデータを直接送受信してもよい。
【０１８１】
図１３では、同期エージェント１３５０がレシーバアプリケーション１３６０とは別要素として示される一方、同期エージェント１３５０は、他の配置では、レシーバアプリケーション１３６０に組み込まれていてもよく、レシーバアプリケーション１３６０自身がクラウドベースのストレージプラットフォーム１３４０に対して、接続および／またはデータを送受信して、ネイティブデスクトップ１３６５を提示する際、レシーバアプリケーション１３６０により使用されてもよい情報を含む情報を同期してもよい。
【０１８２】
図１４〜図１６は、本発明の１つまたは複数の実施形態に従う、コンピューティングデバイスにネイティブデスクトップを提示する様々な方法を示すフローチャートである。特に、図１４〜図１６に示すフローチャートは、異なる配置においてネイティブデスクトップを提供する際に、モバイルデバイスにより実行されてもよいステップを示している。例示の目的のため、これらのフローチャートにおいて示される方法は、図１３に示すシステムのアーキテクチャと関連して説明される。しかしながら、他の実施形態では、これらのフローチャートに示される方法は、追加のおよび／または代替のシステムのアーキテクチャと関連して行われてもよいことを理解されたい。
【０１８３】
図１４に示す方法において、モバイルデバイスは、リモートデスクトップの他の態様をキャッシュすることなく、リモートデスクトップの再現をローカルにキャッシュし、その後、ネイティブデスクトップを提示する際、ローカルにキャッシュされたデータを使用してもよい。さらに、図１４に示す方法において、モバイルデバイスは、クラウドベースのストレージプラットフォームの関与なしにリモートデスクトップの再現をローカルにキャッシュしてもよい。
【０１８４】
特に、方法は、レシーバアプリケーションが起動されるステップ１４０５で開始される。たとえば、ステップ１４０５では、クライアントデバイス１３４５は、レシーバアプリケーション１３６０を、開始し、開き、および／または他の形で実行を開始してもよい。場合によっては、レシーバアプリケーション１３６０は、クライアントデバイス１３４５上の同期エージェント１３５０により開始されてもよく、レシーバアプリケーション１３６０に（たとえば、キャッシュ１３５５内に格納されたデータと同期するために）リモートデスクトップ１３１０に接続および／またはデータの送受信をさせてもよい。レシーバアプリケーション１３６０は、たとえば、クライアントデバイス１３４５と仮想化サーバ１３０５との間のネットワーク接続が利用可能になるときはいつでも自動的に、および／または１つもしくは複数の他の基準に基づいて、スケジュール通り、周期的に開始されてもよい。
【０１８５】
ステップ１４１０では、クライアントデバイス１３４５は、仮想化サーバ１３０５への接続を確立する。特に、クライアントデバイス１３４５は、仮想化サーバ１３０５に接続して、リモートデスクトップ１３１０からデータを抽出および格納してもよい。
【０１８６】
ステップ１４１５では、クライアントデバイス１３４５は、リモートデスクトップ１３１０の再現をキャッシュする。（たとえば、ステップ１４１５でキャッシュされてもよい）リモートデスクトップの再現は、リモートデスクトップおよび／もしくはデスクトップからアクセス可能な１つもしくは複数のメニューに含まれたファイルおよび／もしくはフォルダの１つもしくは複数の名前、これらのファイルおよび／もしくはフォルダのための１つもしくは複数のアイコン、アイコンおよび／もしくはメニューの配置および／もしくはレイアウトを定義する情報、１つもしくは複数のデスクトップのバックグラウンド、ならびに／またはリモートデスクトップと関連付けられた他のメタデータを含んでいてもよい。この情報のいずれかおよび／またはすべては、ステップ１４１５で、クライアントデバイス１３４５により、レシーバアプリケーション１３６０とリモートデスクトップ１３１０との間で確立された接続（たとえば、ＩＣＡチャンネルであってもよい）上でダウンロードされてもよい。さらに、クライアントデバイス１３４５は、レシーバアプリケーション１３６０がクローズされた後、および／またはクライアントデバイス１３４５と仮想化サーバ１３０５との間の接続が切断された後でも、キャッシュ１３５５内にリモートデスクトップ１３１０の再現を格納してもよい。
【０１８７】
ステップ１４２０では、クライアントデバイス１３４５は、ステップ１４１５でキャッシュされたリモートデスクトップ１３１０の再現に基づいてネイティブデスクトップを提示する。たとえば、ステップ１４２０では、レシーバアプリケーション１３６０は、クライアントデバイス１３４５に、ネイティブデスクトップ１３６５を含むユーザインターフェースを表示させてもよい。ネイティブデスクトップ１３６５が提示および／または表示されてもよいユーザインターフェースを生成する際、レシーバアプリケーション１３６０および／またはクライアントデバイス１３４５は、リモートデスクトップ１３１０のキャッシュされた再現を含む、キャッシュ１３５５に格納された情報にアクセスおよび／またはかかる情報を使用してもよく、ネイティブデスクトップ１３６５の外観は、リモートデスクトップ１３１０の外観を反映する。
【０１８８】
ステップ１４２５では、クライアントデバイス１３４５は、ファイルにアクセスするための要求が受信されたかどうかを判別する。たとえば、ステップ１４２５では、クライアントデバイス１３４５は、ネイティブデスクトップ１３６５に含まれるファイルにアクセスするための要求に対応するユーザ入力が受信されたかどうかを判別してもよい。そのような要求が受信されていれば、ステップ１４３０では、クライアントデバイス１３４５は、要求されたファイルに対して、ネイティブエディタがクライアントデバイス１３４５上で利用可能かどうかを判別してもよい。そのようなネイティブエディタは、たとえば、（たとえば、クライアントデバイス１３４５のユーザがアクセスを要求した）ファイルを閲覧および／または編集できるようにするクライアントデバイス１３４５上でロードされ、および／またはそれにより実行可能なソフトウェアアプリケーションであってもよい。
【０１８９】
（たとえば、ステップ１４３０において）ネイティブエディタが利用可能な場合は、ステップ１４３５で、クライアントデバイス１３４５は、要求されたファイルと関連付けられたファイルデータをダウンロードし、その後、ネイティブエディタ内のファイルを開いてもよい。ファイルデータは、たとえば、仮想化サーバ１３０５およびリモートデスクトップ１３１０に対する（たとえば、ＩＣＡチャンネルであってもよい）事前に確立された接続を介して、クライアントデバイス１３４５によりダウンロードされてもよい。この接続が切断された場合、クライアントデバイス１３４５は、仮想化サーバ１３０５およびリモートデスクトップ１３１０に対する接続を再度確立するよう試みてもよい。接続が確立できない場合、クライアントデバイス１３４５および／またはレシーバアプリケーション１３６０は、エラーメッセージを表示してもよい。ほかにも、いったん接続が確立され、ファイルデータがダウンロードされれば、クライアントデバイス１３４５は、ネイティブエディタを開始し、および／またはネイティブエディタにファイルデータを開かせて、要求されたファイルをクライアントデバイス１３４５のユーザが閲覧および／または編集できるようにしてもよい。
【０１９０】
（たとえば、ステップ１４３０において）ネイティブエディタが利用不可能な場合、ステップ１４４０で、クライアントデバイス１３４５は、遠隔型アプリケーションを開始および提示してもよい。遠隔型アプリケーションは、ネイティブエディタがクライアントデバイス１３４５上で利用可能でなくても、たとえば、要求されたファイルをクライアントデバイス１３４５のユーザに対して閲覧および／または編集を可能にすることができる。そのような遠隔型アプリケーションは、たとえば、仮想化サーバ１３０５により（たとえば、クライアントデバイス１３４５と仮想化サーバ１３０５との間の事前に確立した接続を介して）提供されてもよく、レシーバアプリケーション１３６０を介して、クライアントデバイス１３４５上に提示されてもよい。クライアントデバイス１３４５と仮想化サーバ１３０５との間の事前に確立した接続が切断されている場合、クライアントデバイス１３４５は、仮想化サーバ１３０５およびリモートデスクトップ１３１０に対する接続を再度確立するよう試みてもよい。接続が確立できない場合、クライアントデバイス１３４５および／またはレシーバアプリケーション１３６０は、エラーメッセージを表示してもよい。ほかにも、いったん接続が確立されていた場合、クライアントデバイス１３４５および／またはレシーバアプリケーション１３６０は、仮想化サーバ１３０５により提供された遠隔型アプリケーションを提示し、要求されたファイルをクライアントデバイス１３４５のユーザが閲覧および／または編集できるようにしてもよい。
【０１９１】
（たとえば、ステップ１４２５において）ファイルにアクセスするための要求が受信されていない場合、ステップ１４４５で、クライアントデバイス１３４５は、アプリケーションを開くための要求が受信されているか否かを判別してもよい。たとえば、ステップ１４４５では、クライアントデバイス１３４５は、ネイティブデスクトップ１３６５に含まれるアプリケーションを開くための要求に対応するユーザ入力が受信されたかどうかを判別してもよい。そのような要求が受信されていれば、その後、ステップ１４５０で、クライアントデバイスは、遠隔型アプリケーションを開始および提示してもよい。遠隔型アプリケーションは、たとえば、開くように要求されたアプリケーションに対応してもよく、上述の実施例では、遠隔型アプリケーションは、仮想化サーバ１３０５により提供されてもよく、レシーバアプリケーション１３６０を介して、クライアントデバイス１３４５上に提示されてもよい。クライアントデバイス１３４５と仮想化サーバ１３０５との間の事前に確立した接続が切断されている場合、クライアントデバイス１３４５は、仮想化サーバ１３０５およびリモートデスクトップ１３１０に対する接続を再度確立するよう試みてもよい。接続が確立できない場合、クライアントデバイス１３４５および／またはレシーバアプリケーション１３６０は、エラーメッセージを表示してもよい。ほかにも、いったん接続が確立されていた場合、クライアントデバイス１３４５および／またはレシーバアプリケーション１３６０は、仮想化サーバ１３０５により提供される遠隔型アプリケーションを提示し、クライアントデバイス１３４５のユーザが、要求されたアプリケーションとやりとりできるようにしてもよい。
【０１９２】
その後、本方法は終了してもよい。さらに／あるいは、１つまたは複数のステップは、周期的に繰り返されて（たとえば、ループで）、リモートデスクトップのキャッシュされた再現の連続する同期および／または様々な要求、ユーザ入力、および／または他の入力の連続処理を可能にしてもよい。
【０１９３】
図１５に示す方法では、モバイルデバイスは、リモートデスクトップの再現、およびリモートデスクトップに含まれる１つまたは複数のファイルのための実体データの少なくとも一部をローカルにキャッシュし、モバイルデバイスは、ネイティブデスクトップを提示する際に、このローカルにキャッシュされたデータをその後使用してもよく、ある例では、キャッシュしたファイルに対するアクセスを提供してもよい。さらに、図１５に示す方法では、モバイルデバイスは、クラウドベースのストレージプラットフォームの関与なしにリモートデスクトップおよび／またはファイルデータの再現をローカルにキャッシュしてもよい。
【０１９４】
特に、方法は、レシーバアプリケーションが起動されるステップ１５０５において開始される。たとえば、ステップ１５０５では、上述のようにレシーバアプリケーションがステップ１４０５で開始される方法と同様に、クライアントデバイス１３４５は、レシーバアプリケーション１３６０に対して、開始し、開き、および／または他の形で実行を開始する。ステップ１５１０では、クライアントデバイス１３４５は、上述のように、そのような接続がステップ１４１０で確立されてもよい方法と同様に、仮想化サーバ１３０５に対する接続を確立する。ステップ１５１５では、クライアントデバイス１３４５は、上述のように、そのようなリモートデスクトップの再現がステップ１４１５でキャッシュされる方法と同様に、リモートデスクトップ１３１０の再現をキャッシュする。
【０１９５】
ステップ１５２０では、クライアントデバイス１３４５は、リモートデスクトップ１３１０と関連付けられたファイルデータをキャッシュする。そのようなファイルデータは、たとえば、リモートデスクトップ１３１０に格納および／または他の形で含まれる１つもしくは複数のファイルに含まれ、および／またはそれらを構成する実体データを含んでいてもよい。
【０１９６】
上述した実施例のように、レシーバアプリケーション１３６０が閉じられた後、および／またはクライアントデバイス１３４５と仮想化サーバ１３０５との間の接続が切断された後でも、クライアントデバイス１３４５は、キャッシュされたファイルデータを（たとえば、キャッシュ１３５５に）格納および／または他の形で維持してもよい。キャッシュされたファイルデータをこのように格納および／または維持することにより、たとえば、クライアントデバイス１３４５のユーザがレシーバアプリケーション１３６０に戻り、リモートデスクトップ１３１０と関連付けられたキャッシュされたファイルとのインタラクションを望んだ場合、クライアントデバイス１３４５は、キャッシュされたファイルデータに対するオフラインのアクセスを可能にしてもよい。場合によっては、リモートデスクトップ１３１０と関連付けられたファイルデータをキャッシュする際、クライアントデバイス１３４５は、ユーザのリモートデスクトップ１３１０に含まれてもよいすべてのファイルに対するデータをダウンロードおよび／またはキャッシュしてもよく、一方、他の場合では、クライアントデバイス１３４５は、選択されたファイルに対してのみ、データをダウンロードおよび／またはキャッシュしてもよい。たとえば、特定のファイルは、ユーザのプリファレンス、スペースおよび／もしくは帯域制限、１つもしくは複数のアルゴリズム、ならびに／または他の要因に基づいてキャッシュされてもよい。
【０１９７】
ステップ１５２５では、クライアントデバイス１３４５は、上述したようにステップ１４２０でそのようなネイティブデスクトップが提示される方法と同様に、ステップ１５１５でキャッシュされたリモートデスクトップ１３１０の再現に基づいて、ネイティブデスクトップを提示する。ステップ１５３０では、クライアントデバイス１３４５は、キャッシュされたファイルにアクセスするための要求が受信されたかどうかを判別する。たとえば、ステップ１５３０では、クライアントデバイス１３４５は、ネイティブデスクトップ１３６５に含まれるキャッシュされたファイルにアクセスするための要求に対応するユーザ入力が受信されたかどうかを判別してもよい。そのような要求が受信されていれば、ステップ１５３５では、クライアントデバイス１３４５は、キャッシュされたファイルに対するネイティブエディタがクライアントデバイス１３４５上で利用可能かどうかを判別してもよい。上述した実施例のように、そのようなネイティブエディタは、たとえば、（たとえば、クライアントデバイス１３４５のユーザがアクセスを要求した）ファイルを閲覧および／または編集できるようにするクライアントデバイス１３４５上にロードされ、および／またはクライアントデバイス１３４５により実行可能である、ソフトウェアアプリケーションであってもよい。
【０１９８】
（たとえば、ステップ１５３５において）ネイティブエディタが利用可能な場合、ステップ１５４０で、クライアントデバイス１３４５は、ネイティブエディタ内のキャッシュされたファイルを開く。たとえば、クライアントデバイス１３４５は、ネイティブエディタを開始し、および／またはキャッシュされたファイルデータをネイティブエディタに開かせて、要求されたファイルをクライアントデバイス１３４５のユーザが閲覧および／または編集できるようにしてもよい。ファイルデータはキャッシュされ、ネイティブエディタが利用可能なため、クライアントデバイス１３４５と仮想化サーバ１３０５との間のネットワーク接続は、クライアントデバイス１３４５のユーザがファイルを閲覧および／または編集できるようにするために必要とされなくてもよい。ネイティブエディタを使って、ファイルデータに対して任意の変更がなされた場合、クライアントデバイス１３４５は、キャッシュ１３５５に格納および／または他の形で維持されたキャッシュされたファイルデータを更新し、変更を反映し、変更は、ネイティブエディタが閉じられ、レシーバアプリケーション１３６０が閉じられ、および／またはクライアントデバイス１３４５と仮想化サーバ１３０５との間のネットワーク接続が確立可能な場合、後で、たとえば、レシーバアプリケーション１３６０により、リモートデスクトップ１３１０と同期されてもよい。
【０１９９】
（たとえば、ステップ１５３５において）ネイティブエディタが利用不可能な場合、ステップ１５４５では、上述したように、ステップ１４４０において、そのような遠隔型アプリケーションが開始および提示されてもよい方法と同様に、クライアントデバイス１３４５は、遠隔型アプリケーションを開始および提示する。そのような遠隔型アプリケーションは、たとえば、ネイティブエディタがクライアントデバイス１３４５上で利用不可能な例の場合、ファイル自体は、クライアントデバイス１３４５上にキャッシュされてもよいが、クライアントデバイス１３４５のユーザによるファイルの閲覧および／または編集を可能にしてもよい。
【０２００】
（たとえば、ステップ１５３０において）キャッシュされたファイルにアクセスするための要求が受信されない場合、ステップ１５５０で、クライアントデバイス１３４５は、アプリケーションを開くか、またはキャッシュされていないファイルにアクセスするための要求が受信されているか否かを判別する。そのような要求が受信されていれば、その後、ステップ１５５５で、上述の実施例において、そのような遠隔型アプリケーションが開始および提示されてもよい方法と同様に、クライアントデバイス１３４５は、遠隔型アプリケーションを開始および提示してもよい。その後、および／またはそのような要求が受信されていない場合、本方法は終了してもよい。さらに／あるいは、１つまたは複数のステップが周期的に（たとえば、ループで）繰り返され、リモートデスクトップのキャッシュされた再現の連続する同期、キャッシュされたファイルデータの連続する同期、および／または様々な要求、ユーザ入力、および／または他の入力の連続処理を可能にしてもよい。
【０２０１】
図１６は、本発明の１つまたは複数の実施形態に従うコンピューティングデバイスにおいてネイティブデスクトップを提示する他の方法を示す。上述のように、図１６に示すステップは、１つまたは複数の実施形態において、クライアントデバイス１３４５などのモバイルデバイスにより実行されてもよい。さらに、図１６に示す方法では、データを１つまたは複数の仮想化サーバと同期させてもよいクラウドベースのストレージプラットフォームと同期することにより、モバイルデバイスは、リモートデスクトップの再現と、リモートデスクトップと関連付けられた１つまたは複数のファイルとの両方をローカルにキャッシュしてもよい。
【０２０２】
図１６で分かるように、方法は、クライアントデバイス１３４５が同期タイマが満了したかどうかを判別するステップ１６０５で開始される。たとえば、クライアントデバイス１３４５は、既定時間量（たとえば、６０秒、５分、１時間など）を定義するカウントダウンタイマを維持してもよく、かかる時間の後、クライアントデバイス１３４５は、キャッシュされたデータを同期するよう試みるべきである。
【０２０３】
（たとえば、ステップ１６０５において）同期タイマが満了した場合、ステップ１６１０で、クライアントデバイス１３４５は、クラウドベースのストレージプラットフォームに対する接続が利用可能かどうかを判別する。たとえば、ステップ１６１０において、クライアントデバイス１３４５は、クライアントデバイス１３４５から１つまたは複数のクラウドサーバ１３３５および／またはクラウドベースのストレージプラットフォーム１３４０に対する接続が利用可能かどうかを判別してもよい。（たとえば、ステップ１６１０において）そのような接続が利用可能な場合、ステップ１６１５において、クライアントデバイス１３４５は、クラウドベースのストレージプラットフォーム１３４０に対して接続してもよい。次に、ステップ１６２０では、クライアントデバイス１３４５は、クラウドベースのストレージプラットフォーム１３４０と同期するデータが存在するかどうかを判別してもよい。同期するデータが存在するかどうかを判別する際、クライアントデバイス１３４５は、クラウドベースのストレージプラットフォーム１３４０に対して、ダウンロードおよび／またはアップロードする新しい、および／または更新された情報が存在するかどうかを判別してもよい。
【０２０４】
（たとえば、ステップ１６２０において）同期するデータが存在する場合、ステップ１６２５で、クライアントデバイス１３４５は、クラウドベースのストレージプラットフォーム１３４０とデータを同期する。このように、クラウドベースのストレージプラットフォーム１３４０に対する接続が利用可能であると判別したことに応答して、クライアントデバイス１３４５は、ローカルのキャッシュデータをクラウドベースのストレージプラットフォーム１３４０と同期させてもよく、上述した実施例のように、このローカルのキャッシュデータは、リモートデスクトップ（たとえば、リモート仮想デスクトップ１３１０）上に維持された１つまたは複数のファイルを含んでいてもよい。
【０２０５】
いくつかの例では、ローカルのキャッシュデータをクラウドベースのストレージプラットフォームと同期させることは、リモートデスクトップ上の少なくとも１つのファイルになされた１つまたは複数の変更に基づいて、ローカルのキャッシュデータを更新することを含んでいてもよい。たとえば、データをクラウドベースのストレージプラットフォーム１３４０と同期する際、クライアントデバイス１３４５は、１つまたは複数の同期されたファイルに対するリモートデスクトップ１３１０になされた１つまたは複数の変更に基づいて、ローカルキャッシュ１３５５に格納されたデータを更新してもよい。さらに／あるいは、ローカルのキャッシュデータを同期させることは、コンピューティングデバイス上の少なくとも１つのファイルになされた変更に基づいて、クラウドベースのストレージプラットフォームに格納された情報を更新することを含んでいてもよい。たとえば、データをクラウドベースのストレージプラットフォーム１３４０と同期する際、クライアントデバイス１３４５は、クラウドベースのストレージプラットフォーム１３４０に格納されたデータを更新し、ネイティブデスクトップ１３６５を介してなされ、および／または他の形で１つまたは複数の同期されたファイルに対してクライアントデバイス１３４５になされた変更を反映してもよい。
【０２０６】
（たとえば、ステップ１６２５において）データをクラウドベースのストレージプラットフォーム１３４０と同期した後、または（たとえば、ステップ１６２０において）同期するデータがないと判断した後、または（たとえば、ステップ１６１０において）クラウドベースのストレージプラットフォーム１３４０に対する接続が利用不可能であると判断した後、クライアントデバイス１３４５は、ステップ１６３０で、同期タイマをリセットする。たとえば、ステップ１６３０では、クライアントデバイス１３４５は、クライアントデバイス１３４５がデータをクラウドベースのストレージプラットフォーム１３４０と同期することを再度試みるべきときまで、同期タイマが再度カウントダウンを始めるように同期タイマを元の完全な値にリセットしてもよい。
【０２０７】
ステップ１６３５では、クライアントデバイス１３４５は、ローカルのキャッシュデータに基づいてネイティブデスクトップを提示および／または更新する。たとえば、ステップ１６３５では、クライアントデバイス１３４５は、ローカルキャッシュ１３５５に格納および／またはクライアントデバイス１３４５により他の形でキャッシュされてもよいデータを使って、ネイティブデスクトップを提示してもよい。場合によっては、ネイティブデスクトップを提示することは、リモートデスクトップを表す１つまたは複数の要素の配置を提示することを含んでいてもよい。たとえば、ネイティブデスクトップを提示する際、クライアントデバイス１３４５は、リモート仮想デスクトップ１３１０に含まれる要素の対応する配置に適合および／または他の形で反映する要素の配置を提示してもよい。これは、たとえば、ネイティブデスクトップの外見がリモートデスクトップの外見を反映または実質的に反映するようにリモートデスクトップと一致するバックグラウンド、メニューの一致するレイアウトおよび／もしくはアイコンの配置、ならびに／または他の一致する特徴を有するネイティブデスクトップを提示することを含んでいてもよい。さらに、１つまたは複数の配置では、コンピューティングデバイスからクラウドベースのストレージプラットフォームへの接続が利用不可能な場合、ネイティブデスクトップを提示してもよい。たとえば、ステップ１６３５では、クライアントデバイス１３４５からクラウドベースのストレージプラットフォーム１３４０に対する接続が利用不可能および／または確立することができなくても、クライアントデバイス１３４５は、ネイティブデスクトップ１３６５を提示してもよい。
【０２０８】
ステップ１６４０では、クライアントデバイス１３４５は、キャッシュされたファイルにアクセスするための要求が受信されたかどうかを判別する。たとえば、ステップ１６４０では、クライアントデバイス１３４５は、ネイティブデスクトップ１３６５に含まれるキャッシュされたファイルにアクセスするための要求に対応するユーザ入力が受信されたかどうかを判別してもよい。そのような要求が受信されていれば、ステップ１６４５では、クライアントデバイス１３４５は、キャッシュされたファイルに対して、ネイティブエディタがクライアントデバイス１３４５上で利用可能かどうかを判別してもよい。上述した実施例のように、そのようなネイティブエディタは、キャッシュされたファイルをクライアントデバイス１３４５上で閲覧および／または編集できるようにするクライアントデバイス１３４５上でロードし、および／またはクライアントデバイス１３４５により実行可能なソフトウェアアプリケーションであってもよい。
【０２０９】
（たとえば、ステップ１６４５において）ネイティブエディタが利用可能な場合、ステップ１６５０で、クライアントデバイス１３４５は、ネイティブエディタ内のキャッシュされたファイルを開く。たとえば、クライアントデバイス１３４５は、ネイティブエディタを開始し、および／またはキャッシュされたファイルデータをネイティブエディタに開かせて、クライアントデバイス１３４５のユーザが、キャッシュされたファイルを閲覧および／または編集できるようにしてもよい。
【０２１０】
（たとえば、ステップ１６４５において）ネイティブエディタが利用不可能な場合、ステップ１６５５では、上述の実施例において、そのような遠隔型アプリケーションが開始および提示されてもよい方法と同様に、クライアントデバイス１３４５は、遠隔型アプリケーションを開始および提示する。特に、そのような遠隔型アプリケーションは、たとえば、ネイティブエディタがクライアントデバイス１３４５上で利用不可能な例の場合、クライアントデバイス１３４５のユーザによるファイルの閲覧および／または編集を可能にしてもよい。さらに、上述の実施例のように、ネイティブエディタを開始および提示する際、クライアントデバイス１３４５は、仮想化サーバ１３０５に対して接続するか、または接続を試みてもよい。次に、および／または（たとえば、ステップ１６４０において）キャッシュされたファイルに対してアクセスするための要求が受信されない場合、本方法は終了してもよい。さらに／あるいは、１つまたは複数のステップは、周期的に（たとえば、ループで）繰り返され、キャッシュされたデータの連続同期および／または様々な要求、ユーザ入力、および／または他の入力の継続処理を可能にしてもよい。
【０２１１】
前述したように、本開示の様々な態様は、リモートデスクトップからマイニングされたクラウド同期型データを使って、（たとえば、モバイルデバイス上に）ネイティブデスクトップを提供するためのコンピュータハードウェアおよびソフトウェアに関係する。各主題が構造の特徴および／または方法論的行為に固有の言語で記載されているが、添付の特許請求の範囲に定義される本発明の主題は、上述の特定の特徴または行為に必ずしも限定されるわけではないことを理解されたい。むしろ、上述の特定の特徴および行為は、以下の特許請求の範囲を実施するいくつかの実施例として説明される。
【０２１２】
関連出願の相互参照
本出願は、「PROVIDING A NATIVE DESKTOP USING  CLOUD-SYNCHRONIZED DATA」と題された、２０１３年４月９日に出願された米国特許仮出願第６１／８１０，０４８号の利益を主張するものであり、該仮出願は、参照によりその全体が本明細書に組み込まれている。
【図１】
0006301529.tif 000002
【図２】
0006301529.tif 000003
【図３】
0006301529.tif 000004
【図４】
0006301529.tif 000005
【図５】
0006301529.tif 000006
【図６】
0006301529.tif 000007
【図７】
0006301529.tif 000008
【図８】
0006301529.tif 000009
【図９】
0006301529.tif 000010
【図１０】
0006301529.tif 000011
【図１１】
0006301529.tif 000012
【図１２】
0006301529.tif 000013
【図１３】
0006301529.tif 000014
【図１４】
0006301529.tif 000015
【図１５】
0006301529.tif 000016
【図１６】
0006301529.tif 000017