以下の様々な実施形態の説明では、本明細書の一部を形成し且つ本明細書に記載された態様を実施することができる様々な実施形態として示される、上記特定された添付図面が参照される。他の実施形態が利用可能であり、本明細書に記載された範囲から逸脱せずに、構造的および機能的に変更することが可能であることが理解されるべきである。様々な態様は、他の実施形態が可能であり、様々な異なる方法で実施するおよび実行することが可能である。
本明細書で使用される表現および用語は、説明のためのものであり、限定的であると見なされるべきではないと理解されるべきである。むしろ、本明細書で使用される句および用語は、最も広い解釈および意味を与えられるべきである。「含む(including)」および「備える(comprising)」並びにその変形の使用は、それ以降に列挙された項目およびその均等物、並びにそれらの追加項目および均等物を包含することを意味する。用語「取り付けられた(mounted)」、「接続された(connected)」、「結合された(coupled)」、「位置決められた(positioned)」、「係合された(engaged)」および同様の用語の使用は、直接的および間接的な取り付け、接続、結合、位置決めおよび係合を含むことを意味する。
コンピューティングアーキテクチャ
コンピュータソフトウェア、ハードウェア、およびネットワークは、スタンドアロン、ネットワーク化、リモートアクセス(別名、リモートデスクトップ)、仮想化、および/またはクラウドベース環境を含む様々な異なるシステム環境で利用することができる。図1は、スタンドアロンおよび/またはネットワーク環境で、本明細書に記載される1つ以上の例示的な態様を実施するために使用可能であるシステムアーキテクチャおよびデータ処理装置の一例を示している。様々なネットワークノード103、105、107、および109は、インターネットなどのワイドエリアネットワーク(WAN)101を介して相互接続することができる。プライベートイントラネット、企業ネットワーク、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、無線ネットワーク、パーソナルネットワーク(PAN)などを含む他のネットワークもまた使用してもよく、または代替として使用してもよい。ネットワーク101は、例示のためのものであり、より少ないまたは追加のコンピュータネットワークと置き換えてもよい。ローカルエリアネットワークは、任意の公知のLANトポロジのうちの1つ以上を有してもよく、イーサネット(登録商標)などの様々な異なるプロトコルのうちの1つ以上を使用してもよい。デバイス103、105、107、109および他のデバイス(図示せず)は、ツイストペア線、同軸ケーブル、光ファイバ、電波または他の通信媒体を介して1つ以上のネットワークに接続してもよい。
本明細書で使用する図面に示されている用語「ネットワーク」は、遠隔記憶装置が1つ以上の通信経路を介して結合されるシステムを指すだけでなく、時折、記憶能力を有するそのようなシステムに結合することができるスタンドアロン装置をも指す。したがって、用語「ネットワーク」は、「物理ネットワーク」だけでなく、全ての物理ネットワークに存在する−単一エンティティに起因する−データから構成される「コンテンツネットワーク」をも含む。
コンポーネントは、データサーバ103、ウェブサーバ105、およびクライアントコンピュータ107、109を含むことができる。データサーバ103は、本明細書に記載された1つ以上の例示的な態様を実行するためのデータベースおよび制御ソフトウェアの全体的なアクセス、制御および管理を提供する。データサーバ103は、ユーザが要求したデータと対話してデータを取得するウェブサーバ105に接続することができる。その代わりに、データサーバ103は、ウェブサーバ自体として機能してもよく、インターネットに直接接続されてもよい。データサーバ103は、ネットワーク101(例えば、インターネット)を介して、直接的または間接的な接続を介して、または他の何らかのネットワークを介してウェブサーバ105に接続することができる。ユーザは、ウェブサーバ105によってホストされた1つ以上の外部に露出されたウェブサイトを介してデータサーバ103に接続するために、例えばウェブブラウザを用いて、リモートコンピュータ107、109を使用してデータサーバ103と対話することができる。クライアントコンピュータ107、109は、そこに記憶されたデータにアクセスするためにデータサーバ103と協働して使用されてもよく、または他の目的のために使用されてもよい。例えば、クライアントデバイス107から、ユーザは、当該技術分野において知られているように、インターネットブラウザを使用して、または(インターネットなどの)コンピュータネットワーク上のウェブサーバ105および/またはデータサーバ103と通信するソフトウェアアプリケーションを実行することによって、ウェブサーバ105にアクセスすることができる。
サーバおよびアプリケーションは、同じ物理マシン上で結合することができ、別個の仮想または論理アドレスを保持することができ、または別個の物理マシン上に存在することができる。図1は、使用可能なネットワークアーキテクチャの単なる一例を示しており、当業者であれば、本明細書においてさらに記載するように、使用する特定のネットワークアーキテクチャおよびデータ処理装置が変化してもよく、それらが提供する機能に対して二次的であることを理解する。例えば、ウェブサーバ105およびデータサーバ103によって提供されるサービスは、単一サーバ上で結合することができる。
各コンポーネント103、105、107、109は、任意の種類の公知のコンピュータ、サーバ、またはデータ処理装置とすることができる。データサーバ103は、例えば、データサーバ103の全体的な動作を制御するプロセッサ111を含むことができる。データサーバ103は、さらに、ランダムアクセスメモリ(RAM)113、読出し専用メモリ(ROM)115、ネットワークインターフェース117、入出力インターフェース119(例えば、キーボード、マウス、ディスプレイ、プリンタなど)、およびメモリ121を含むことができる。入出力(I/O)119は、データまたはファイルの読み取り、書き込み、表示、および/または印刷のための様々なインターフェースユニットおよびドライブを含むことができる。メモリ121は、さらに、データ処理装置103の全体的な動作を制御するためのオペレーティングシステムソフトウェア123、本明細書に記載される態様を実行するようにデータサーバ103に指示する制御ロジック125、および本明細書に記載される態様とあわせて使用されても使用されなくてもよい二次機能、サポート機能、および/または他の機能を提供する他のアプリケーションソフトウェア127を記憶することができる。制御ロジックはまた、本明細書ではデータサーバソフトウェア125とも呼ばれる。データサーバソフトウェアの機能は、制御ロジックにコード化されたルールに基づいて自動的に行われる、システムに入力を提供するユーザによって手動で行われる、および/またはユーザ入力(例えば、クエリ、データ更新など)に基づく自動処理の組み合わせによる動作または決定を指すことができる。
メモリ121はまた、第1のデータベース129および第2のデータベース131を含む、本明細書に記載される1つ以上の態様の実行に使用するデータを記憶することができる。ある実施形態では、第1のデータベースは、(例えば、別個のテーブル、レポートなどとして)第2のデータベースを含むことができる。すなわち、情報は、システム設計に応じて、単一データベースに記憶することができ、または、異なる論理、仮想、もしくは物理データベースに分離することができる。デバイス105、107、109は、デバイス103に関して記載されたものと同様のまたは異なるアーキテクチャを有してもよい。当業者であれば、本明細書に記載されたデータ処理装置103(またはデバイス105、107、109)の機能が、例えば、地理的位置、ユーザアクセスレベル、サービス品質(QoS)などに基づいてトランザクションを分離するために、複数のコンピュータにわたって処理負荷を分散するように、複数のデータ処理装置にわたって分散されてもよいことを理解する。
1つ以上の態様は、本明細書に記載される1つ以上のコンピュータまたは他のデバイスによって実行する、1つ以上のプログラムモジュールなど、コンピュータ使用可能または読み取り可能なデータおよび/またはコンピュータ実行可能命令で具体化されてもよい。一般に、プログラムモジュールは、特定のタスクを実行するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含むか、または、コンピュータまたは他のデバイスのプロセッサによって実行するときに特定の抽象データ型を実行する。モジュールは、実行のために後でコンパイルされるソースコードプログラミング言語で書かれてもよく、または、(これらに限定されるものではないが)ハイパーテキストマークアップ言語(HTML)もしくは拡張マークアップ言語(XML)などのスクリプト言語で書かれてもよい。コンピュータ実行可能命令は、不揮発性記憶装置などのコンピュータ可読媒体に記憶されてもよい。ハードディスク、CD−ROM、光記憶デバイス、磁気記憶デバイス、及び/またはそれらの任意の組み合わせを含む、任意の適切なコンピュータ可読記憶媒体を利用し得る。さらに、本明細書に記載されたようなデータまたはイベントを表す様々な伝送(非記憶)媒体は、送信元と送信先との間で、金属ワイヤ、光ファイバ、および/または無線伝送媒体(例えば、空中および/または宇宙空間)などの信号伝達媒体を介して進む電磁波の形態で伝送されてもよい。本明細書に記載される様々な態様は、方法、データ処理システム、またはコンピュータプログラム製品として具体化されてもよい。したがって、ソフトウェア、ファームウェア、および/またはハードウェア、または集積回路、フィールドプログラマブルゲートアレイ(FPGA)などのハードウェア均等物において、様々な機能が全体的または部分的に具体化されてもよい。本明細書に記載の1つ以上の態様をより効果的に実施するために、特定のデータ構造が使用されてもよく、そのようなデータ構造は、本明細書に記載されたコンピュータ実行可能命令およびコンピュータ使用可能データの範囲内であると想定される。
図2をさらに参照すると、本明細書に記載された1つ以上の態様は、リモートアクセス環境において実装することができる。図2は、本明細書に記載された1つ以上の例示的な態様にしたがって使用することができる例示的なコンピューティング環境200におけるコンピューティングデバイス201を含む例示的なシステムアーキテクチャを示している。コンピューティングデバイス201は、クライアントアクセスデバイスに仮想マシンを提供するように構成された単一サーバまたは複数サーバのデスクトップ仮想化システム(例えば、リモートアクセスまたはクラウドシステム)内のサーバ206aとして使用することができる。コンピューティングデバイス201は、サーバ、並びにRAM205、ROM207、I/Oモジュール209、およびメモリ215を含むその関連コンポーネントの全体的な動作を制御するためのプロセッサ203を有することができる。
I/Oモジュール209は、コンピューティングデバイス201のユーザが入力を提供することができるマウス、キーパッド、タッチスクリーン、スキャナ、光学式読み取り装置、および/またはスタイラス(または他の入力装置)を含むことができ、また、オーディオ出力を提供するためのスピーカと、テキスト、オーディオビジュアル、および/またはグラフィカル出力を提供するためのビデオ表示装置とのうちの1つ以上を含むことができる。本明細書に記載されるような様々な機能を実行するために専用の目的のコンピューティングデバイスにコンピューティングデバイス201を構成するための命令をプロセッサ203に提供するために、ソフトウェアをメモリ215および/または他の記憶装置内に記憶することができる。例えば、メモリ215は、オペレーションシステム217、アプリケーションプログラム219、および関連するデータベース221などのコンピューティングデバイス201によって使用されるソフトウェアを記憶することができる。
コンピューティングデバイス201は、端末240(クライアントデバイスとも呼ばれる)などの1つ以上のリモートコンピュータへの接続をサポートするネットワーク環境で動作することができる。端末240は、コンピューティングデバイス103または201に関して上述した要素の多くまたは全てを含むパーソナルコンピュータ、モバイルデバイス、ラップトップコンピュータ、タブレット、またはサーバとすることができる。図2に示されるネットワーク接続は、ローカルエリアネットワーク(LAN)225およびワイドエリアネットワーク(WAN)229を含むが、他のネットワークも含んでもよい。LANネットワーキング環境で使用される場合、コンピューティングデバイス201は、ネットワークインターフェースまたはアダプタ223を介してLAN225に接続されてもよい。WANネットワーキング環境で使用される場合、コンピューティングデバイス201は、コンピュータネットワーク230(例えば、インターネット)などのWAN229上での通信を確立するためのモデム227または他のワイドエリアネットワークインターフェースを含んでもよい。示されたネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことが理解されよう。コンピューティングデバイス201および/または端末240はまた、バッテリ、スピーカ、およびアンテナ(図示せず)などの様々な他のコンポーネントを含むモバイル端末(例えば、携帯電話、スマートフォン、携帯情報端末(PDA)、ノートブックなど)であってもよい。
本明細書に記載される態様はまた、多数の他の汎用または専用コンピューティングシステム環境または構成によって動作することもできる。本明細書に記載された態様によって使用するのに適している可能性がある他のコンピューティングシステム、環境、および/または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラマブル家電、ネットワークパーソナルコンピュータ(PC)、ミニコンピュータ、メインフレームコンピュータ、上記システムまたはデバイスのいずれかを含む分散コンピューティング環境などを含むが、これらに限定されるものではない。
図2に示すように、1つ以上のクライアントデバイス240は、1つ以上のサーバ206a−206n(一般に、ここでは「サーバ206」と呼ばれる)と通信することができる。一実施形態では、コンピューティング環境200は、サーバ206とクライアントマシン240との間に設置されたネットワーク機器を含むことができる。ネットワーク機器は、クライアント/サーバ接続を管理することができ、場合によっては、複数のバックエンドサーバ206の間でクライアント接続を負荷分散することができる。
クライアントマシン240は、ある実施形態では、単一クライアントマシン240または単一グループのクライアントマシン240と呼ばれてもよく、一方、サーバ206は、単一サーバ206または単一グループのサーバ206と呼ばれてもよい。別の一実施形態では、単一クライアントマシン240は、複数のサーバ206と通信し、一方、他の実施形態では、単一サーバ206は、複数のクライアントマシン240と通信する。さらに他の実施形態では、単一クライアントマシン240は、単一サーバ206と通信する。
クライアントマシン240は、ある実施形態では、以下の非網羅的な用語のいずれか1つによって参照することができる:クライアントマシン;クライアント;クライアントコンピュータ;クライアントデバイス;クライアントコンピューティングデバイス;ローカルマシン;リモートマシン;クライアントノード;エンドポイント;またはエンドポイントノード。サーバ206は、ある実施形態では、以下の非網羅的な用語のいずれか1つによって参照することができる:サーバ、ローカルマシン;リモートマシン;サーバファーム、またはホストコンピューティングデバイス。
一実施形態では、クライアントマシン240は、仮想マシンであってもよい。仮想マシンは、任意の仮想マシンとすることができ、ある実施形態では、仮想マシンは、例えば、シトリックス・システムズ、IBM、VMwareによって開発されたハイパーバイザ、または任意の他のハイパーバイザなどのタイプ1またはタイプ2ハイパーバイザによって管理される任意の仮想マシンとすることができる。いくつかの態様では、仮想マシンは、ハイパーバイザによって管理されてもよく、態様では、仮想マシンは、サーバ206上で実行するハイパーバイザまたはクライアント240上で実行するハイパーバイザによって管理されてもよい。
ある実施形態は、サーバ206または他の遠隔配置されたマシン上で遠隔実行するアプリケーションによって生成されたアプリケーション出力を表示するクライアントデバイス240を含む。これらの実施形態では、クライアントデバイス240は、仮想マシン受信機プログラムまたはアプリケーションを実行して、アプリケーションウィンドウ、ブラウザ、または他の出力ウィンドウに出力を表示することができる。一例では、アプリケーションはデスクトップであり、他の例では、アプリケーションは、デスクトップを生成または提示するアプリケーションである。デスクトップは、ローカルおよび/またはリモートアプリケーションを統合することができるオペレーティングシステムのインスタンスのためのユーザインターフェースを提供するグラフィカルシェルを含むことができる。本明細書で使用されるように、アプリケーションは、オペレーティングシステムのインスタンス(および任意選択で、デスクトップも)がロードされた後に実行するプログラムである。
サーバ206は、ある実施形態では、リモート提示プロトコルまたは他のプログラムを使用して、クライアント上で実行するシンクライアントまたはリモートディスプレイアプリケーションにデータを送信し、サーバ206上で実行するアプリケーションによって生成されるディスプレイ出力を提示する。シンクライアントまたはリモートディスプレイプロトコルは、以下の非網羅的なプロトコルリストのいずれか1つとすることができる:フロリダ州フォートローダーデールのシトリックス・システムズ社によって開発されたインディペンデント・コンピューティング・アーキテクチャ(ICA)プロトコル;またはワシントン州レドモンドのマイクロソフトコーポレーションによって製造されたリモートデスクトッププロトコル(RDP)。
リモートコンピューティング環境は、サーバ206a−206nが例えばクラウドコンピューティング環境内のサーバファーム206に一体に論理的にグループ化されるように、複数のサーバ206a−206nを含むことができる。サーバファーム206は、地理的に分散されるとともに一体に論理的にグループ化されたサーバ206、または互いに近接して配置されるとともに一体に論理的にグループ化されたサーバ206を含むことができる。ある実施形態では、サーバファーム206内の地理的に分散されたサーバ206a−206nは、WAN(ワイド)、MAN(メトロポリタン)、またはLAN(ローカル)を使用して通信することができ、異なる地理的領域を、以下のように特徴付けることができる:異なる大陸;大陸の異なる地域;異なる国;異なる州;異なる都市;異なるキャンパス;異なる部屋;または前途の地理的位置の任意の組み合わせ。ある実施形態では、サーバファーム206は、単一エンティティとして管理することができる一方で、他の実施形態では、サーバファーム206は、複数のサーバファームを含むことができる。
ある実施形態では、サーバファームは、略同様のタイプのオペレーティングシステムプラットフォーム(例えば、ウィンドウズ(登録商標)、UNIX(登録商標)、リナックス(登録商標)、iOS、アンドロイド、シンビアンなど)を実行するサーバ206を含むことができる。他の実施形態では、サーバファーム206は、第1のタイプのオペレーティングシステムプラットフォームを実行する1つ以上のサーバの第1のグループと、第2のタイプのオペレーティングシステムプラットフォームを実行する1つ以上のサーバの第2のグループとを含むことができる。
サーバ206は、必要に応じて、例えば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、機器、ネットワーク機器、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、セキュア・ソケット・レイヤ(SSL)VPNサーバ、ファイアウォール、ウェブサーバ、アプリケーションサーバなどの任意のタイプのサーバとして、またはファイアウォール機能、アプリケーション機能、もしくは負荷分散機能を提供するマスタアプリケーションサーバ、アクティブディレクトリを実行するサーバ、もしくはアプリケーション加速プログラムを実行するサーバとして構成することができる。他のサーバタイプも使用することができる。
ある実施形態は、クライアントマシン240からのリクエストを受信し、そのリクエストを第2のサーバ206bに転送し、第2のサーバ206bからの応答を利用して、クライアントマシン240によって生成されたリクエストに応答する第1のサーバ206aを含む。第1のサーバ206aは、クライアントマシン240に利用可能なアプリケーションの列挙を取得することができ、およびアプリケーションの列挙内で識別されるアプリケーションをホストするアプリケーションサーバ206に関連するアドレス情報として取得することができる。そして、第1のサーバ206aは、ウェブインターフェースを使用してクライアントのリクエストに対する応答を提示することができ、クライアント240に直接通信して、識別されたアプリケーションへのアクセスをクライアント240に提供することができる。1つ以上のクライアント240および/または1つ以上のサーバ206は、ネットワーク230、例えばネットワーク101を介してデータを送信することができる。
図3は、例示的なデスクトップ仮想化システムのハイレベルアーキテクチャを示している。示されるように、デスクトップ仮想化システムは、仮想デスクトップおよび/または仮想アプリケーションを1つ以上のクライアントアクセスデバイス240に提供するように構成された少なくとも1つの仮想化サーバ301を含む、単一サーバまたは複数サーバシステム、またはクラウドシステムとすることができる。本明細書では、デスクトップは、1つ以上のアプリケーションがホストおよび/または実行することができるグラフィック環境または空間を指す。デスクトップは、ローカルおよび/またはリモートアプリケーションが統合することができる、オペレーティングシステムのインスタンスのためのユーザインターフェースを提供するグラフィカルシェルを含むことができる。アプリケーションは、オペレーティングシステムのインスタンス(および必要に応じてデスクトップも)がロードされた後に実行するプログラムを含むことができる。オペレーティングシステムの各インスタンスは、物理的(例えば、デバイス毎に1つのオペレーティングシステム)または仮想的(例えば、単一デバイス上で動作するOSの多くのインスタンス)とすることができる。各アプリケーションは、ローカルデバイス上で実行されてもよく、または遠隔配置されたデバイス(例えば、リモート)上で実行されてもよい。
コンピュータデバイス301は、例えば、単一サーバ、複数サーバ、またはクラウドコンピューティング環境などの仮想化環境内の仮想化サーバとして構成することができる。図3に示される仮想化サーバ301は、図2に示されるサーバ206の1つ以上の実施形態によって、または他の公知のコンピューティングデバイスによって装備および/または実装することができる。仮想化サーバ301には、1つ以上の物理ディスク304、1つ以上の物理デバイス306、1つ以上の物理プロセッサ308および1つ以上の物理メモリ316を含むことができるハードウェア層が含まれる。ある実施形態では、ファームウェア312は、物理メモリ316のメモリ要素内に記憶することができ、一つ以上の物理プロセッサ308によって実行することができる。仮想化サーバ301は、さらに、物理メモリ316のメモリ要素に記憶され、1つ以上の物理プロセッサ308によって実行することができるオペレーティングシステム314を含むことができる。さらに、ハイパーバイザ302は、物理メモリ316のメモリ要素に記憶することができ、物理プロセッサ308のうちの1つ以上によって実行することができる。
物理プロセッサ308のうちの1つ以上での実行は、1つ以上の仮想マシン332A−C(一般には332)とすることができる。各仮想マシン332は、仮想ディスク326A−Cおよび仮想プロセッサ328A−Cを有することができる。ある実施形態では、第1の仮想マシン332Aは、仮想プロセッサ328Aを使用して、ツールスタック324を含む制御プログラム320を実行することができる。制御プログラム320は、制御仮想マシン、Dom0、ドメイン0、またはシステム管理および/または制御に使用される他の仮想マシンと呼ばれてもよい。ある実施形態では、1つ以上の仮想マシン332B−Cは、仮想プロセッサ328B−Cを使用して、ゲストオペレーティングシステム330A−Bを実行することができる。
仮想化サーバ301は、仮想化サーバ301と通信する1つ以上のハードウェアピースを有するハードウェア層310を含むことができる。ある実施形態では、ハードウェア層310は、1つ以上の物理ディスク304、1つ以上の物理デバイス306、1つ以上の物理プロセッサ308、および1つ以上のメモリ216を含むことができる。物理コンポーネント304、306、308、および316は、例えば、上述したコンポーネントのいずれかを含むことができる。物理デバイス306は、例えば、ネットワークインターフェースカード、ビデオカード、キーボード、マウス、入力装置、モニタ、ディスプレイ装置、スピーカ、光学ドライブ、記憶装置、ユニバーサルシリアルバス接続、プリンタ、スキャナ、ネットワーク要素(例えば、ルータ、ファイアウォール、ネットワークアドレス変換器、ロードバランサ、仮想プライベートネットワーク(VPN)ゲートウェイ、ダイナミック・ホスト・コンフィギュレーション・プロトコル(DHCP)ルータなど)、または仮想化サーバ301と接続するまたは通信する任意の装置を含むことができる。ハードウェア層310内の物理メモリ316は、任意の種類のメモリを含むことができる。物理メモリ316は、データを記憶することができ、ある実施形態では、1つ以上のプログラム、または実行可能命令のセットを記憶することができる。図3は、ファームウェア312が仮想化サーバ301の物理メモリ316内に記憶される実施形態を示している。物理メモリ316に記憶されたプログラムまたは実行可能命令は、仮想化サーバ301の1つ以上のプロセッサ308によって実行することができる。
仮想化サーバ301はまた、ハイパーバイザ302も含むことができる。ある実施形態では、ハイパーバイザ302は、任意数の仮想マシン332を形成および管理するために、仮想化サーバ301上のプロセッサ308によって実行するプログラムとすることができる。ハイパーバイザ302は、仮想マシンモニタ、またはプラットフォーム仮想化ソフトウェアと呼ばれてもよい。ある実施形態では、ハイパーバイザ302は、コンピューティングマシン上で実行する仮想マシンを監視する実行可能命令およびハードウェアの任意の組み合わせとすることができる。ハイパーバイザ302は、仮想化サーバ301上で実行するオペレーティングシステム314内で実行するハイパーバイザであるタイプ2ハイパーバイザとすることができる。そして、仮想マシンは、ハイパーバイザの上のレベルで実行する。ある実施形態では、タイプ2ハイパーバイザは、タイプ2ハイパーバイザがユーザのオペレーティングシステムと対話するように、ユーザのオペレーティングシステムのコンテキスト内で実行する。他の実施形態では、仮想化環境内の1つ以上の仮想化サーバ301は、代わりに、タイプ1ハイパーバイザ(図示せず)を含むことができる。タイプ1ハイパーバイザは、ハードウェア層310内のハードウェアおよびリソースに直接アクセスすることによって、仮想化サーバ301上でことができる。すなわち、タイプ2ハイパーバイザ302は、示されるように、ホストオペレーティングシステム314を介してシステムリソースにアクセスするが、タイプ1ハイパーバイザは、ホストオペレーティングシステム314なしで全てのシステムリソースに直接アクセスすることができる。タイプ1ハイパーバイザは、仮想化サーバ301の1つ以上の物理プロセッサ308上で直接実行することができ、および物理メモリ316に記憶されたプログラムデータを含むことができる。
ハイパーバイザ302は、ある実施形態では、システムリソースに直接アクセスするオペレーティングシステム330または制御プログラム320をシミュレートする任意の方法で、仮想マシン332上で実行するオペレーティングシステム330または制御プログラム320に仮想リソースを提供することができる。システムリソースは、物理デバイス306、物理ディスク304、物理プロセッサ308、物理メモリ316および仮想化サーバ301のハードウェア層310に含まれる任意の他のコンポーネントを含むことができるが、これらに限定されるものではない。ハイパーバイザ302は、仮想ハードウェアのエミュレーション、物理ハードウェアのパーティション、物理ハードウェアの仮想化、および/またはコンピューティング環境へのアクセスを提供する仮想マシンの実行に使用することができる。さらに他の実施形態では、ハイパーバイザ302は、仮想化サーバ301上で実行する仮想マシン332のプロセッサスケジューリングおよびメモリパーティショニングを制御する。ハイパーバイザ302は、カリフォルニア州パロアルトのVMWare社によって製造されたもの:オープンソースのXenProject.orgコミュニティによって開発が監督されているオープンソース製品であるXENPROJECTハイパーバイザ;マイクロソフトによって提供されるHyperV、VirtualServer、または仮想PCハイパーバイザなどを含むことができる。ある実施形態では、仮想化サーバ301は、ゲストオペレーティングシステムが実行可能な仮想マシンプラットフォームを形成するハイパーバイザ302を実行する。これらの実施形態では、仮想化サーバ301は、ホストサーバと呼ばれてもよい。そのような仮想化サーバの例は、フロリダ州フォートローダーデールのシトリックス・システム社によって提供されるXENSERVERである。
ハイパーバイザ302は、ゲストオペレーティングシステム330が実行する1つ以上の仮想マシン332B−C(一般には332)を形成することができる。ある実施形態では、ハイパーバイザ302は、仮想マシンイメージをロードして仮想マシン332を形成することができる。他の実施形態では、ハイパーバイザ302は、仮想マシン332内のゲストオペレーティングシステム330を実行することができる。さらに他の実施形態では、仮想マシン332は、ゲストオペレーティングシステム330を実行することができる。
仮想マシン332を形成することに加えて、ハイパーバイザ302は、少なくとも1つの仮想マシン332の実行を制御することができる。他の実施形態では、ハイパーバイザ302は、仮想化サーバ301によって提供される少なくとも1つのハードウェアリソース(例えば、ハードウェア層310内で利用可能な任意のハードウェアリソース)の抽象化を少なくとも1つの仮想マシン332に提示することができる。他の実施形態では、ハイパーバイザ302は、仮想マシン332が仮想化サーバ301内で利用可能な物理プロセッサ308にアクセスする方法を制御することができる。物理プロセッサ308へのアクセスを制御することは、仮想マシン332がプロセッサ308へのアクセスを有するべきかどうか、および物理プロセッサ能力が仮想マシン332にどのように提示されるかを判定することを含むことができる。
図3に示すように、仮想化サーバ301は、1つ以上の仮想マシン332をホストするまたは実行することができる。仮想マシン332は、プロセッサ308によって実行するときに、仮想マシン332が物理コンピューティングデバイスのように多くのプログラムおよびプロセスを実行することができるように、物理コンピュータの動作を模倣する実行可能命令のセットである。図3は、仮想化サーバ301が3つの仮想マシン332をホストする実施形態を示しているが、他の実施形態では、仮想化サーバ301は、任意数の仮想マシン332をホストすることができる。ハイパーバイザ302は、ある実施形態では、その仮想マシン332に利用可能な物理ハードウェア、メモリ、プロセッサおよび他のシステムリソースの固有の仮想ビューを各仮想マシン332に提供する。ある実施形態では、固有の仮想ビューは、一つ以上の仮想マシン許可、1つ以上の仮想マシン識別子へのポリシーエンジンの適用、仮想マシンにアクセスするユーザ、仮想マシン上で実行するアプリケーション、仮想マシンによってアクセスするネットワーク、または任意の他の所望の基準のうちの1つ以上に基づくことができる。例えば、ハイパーバイザ302は、1つ以上のセキュアではない仮想マシン332、および1つ以上のセキュアな仮想マシン332を形成することができる。セキュアではない仮想マシン332は、セキュアである仮想マシン332のアクセスが許可され得るリソース、ハードウェア、メモリロケーション、およびプログラムに対するアクセスを拒否され得る。他の実施形態では、ハイパーバイザ302は、仮想マシン332に利用可能な物理ハードウェア、メモリ、プロセッサおよび他のシステムリソースの略同様の仮想ビューを各仮想マシン332に提供することができる。
各仮想マシン332は、仮想ディスク326A−C(一般には326)および仮想プロセッサ328A−C(一般には328)を含むことができる。仮想ディスク326は、ある実施形態では、仮想化サーバ301の1つ以上の物理ディスク304、または仮想化サーバ301の1つ以上の物理ディスク304の一部の仮想化されたビューである。物理ディスク304の仮想化されたビューは、ハイパーバイザ302によって生成する、提供する、および管理することができる。ある実施形態では、ハイパーバイザ302は、各仮想マシン332に物理ディスク304の固有のビューを提供する。従って、これらの実施形態では、各仮想マシン332に含まれる特定の仮想ディスク326は、他の仮想ディスク326と比較した場合に固有であり得る。
仮想プロセッサ328は、仮想化サーバ301の1つ以上の物理プロセッサ308の仮想化されたビューとすることができる。ある実施形態では、物理プロセッサ308の仮想化されたビューは、ハイパーバイザ302によって生成する、提供する、および管理することができる。ある実施形態では、仮想プロセッサ328は、少なくとも1つの物理プロセッサ308の全ての同じ特性を実質的に有する。他の実施形態では、仮想プロセッサ308は、仮想プロセッサ328の特性の少なくとも一部が対応する物理プロセッサ308の特性と異なるように、物理プロセッサ308の修正されたビューを提供する。
図4をさらに参照すると、本明細書に記載されるいくつかの態様は、クラウドベース環境において実装することができる。図4は、クラウドコンピューティング環境(またはクラウドシステム)400の例を示している。図4に示すように、クライアントコンピュータ411−414は、クラウド管理サーバ410と通信して、クラウドシステムのコンピューティングリソース(例えば、ホストサーバ403、記憶装置リソース404、およびネットワークリソース405)にアクセスすることができる。
管理サーバ410は、1つ以上の物理サーバ上に実装されてもよい。管理サーバ410は、とりわけ、例えばフロリダ州フォートローダーデールのシトリックス・システム社によるCLOUDPLATFORM、またはOPENSTACKを実行することができる。管理サーバ410は、例えば、ホストコンピュータ403、データ記憶装置404、およびネットワーキング装置405などのクラウドハードウェアおよびソフトウェアリソースを含む様々なコンピューティングリソースを管理することができる。クラウドハードウェアおよびソフトウェアリソースは、プライベートおよび/またはパブリックコンポーネントを含むことができる。例えば、クラウドは、1つ以上の特定の顧客またはクライアントコンピュータ411−414によって、および/またはプライベートネットワークを介して使用されるプライベートクラウドとして構成されてもよい。他の実施形態では、オープンまたはハイブリッドネットワークを介して他の顧客によってパブリッククラウドまたはハイブリッドパブリック・プライベートクラウドが使用されてもよい。
管理サーバ410は、クラウドオペレータおよびクラウド顧客が、クラウドシステムと対話することができるユーザインターフェースを提供するように構成することができる。例えば、管理サーバ410は、クラウドオペレータがクラウドリソースを管理し、仮想化層を構成し、顧客アカウントを管理し、他のクラウド管理タスクを実行することを可能にするために、ユーザインターフェースを有するアプリケーションプログラミングインターフェース(API)のセットおよび/または1つ以上のクラウドオペレータコンソールアプリケーション(例えば、スタンドアロンアプリケーション上のウェブベース)を提供することができる。管理サーバ410はまた、例えば、クラウド内の仮想マシンを形成、変更または破棄するリクエストなど、クライアントコンピュータ411−414を介してエンドユーザからクラウドコンピューティングリクエストを受信するように構成されたユーザインターフェースを有するAPIのセットおよび/または1つ以上の顧客コンソールアプリケーションを含むことができる。クライアントコンピュータ411−414は、インターネットまたは他の通信ネットワークを介して管理サーバ410に接続し、管理サーバ410によって管理されるコンピューティングリソースのうちの1つ以上へのアクセスを要求することができる。クライアントリクエストに応じて、管理サーバ410は、クライアントリクエストに基づいて、クラウドシステムのハードウェア層内の物理リソースを選択して提供するように構成されたリソースマネージャを含むことができる。例えば、管理サーバ410およびクラウドシステムの追加コンポーネントは、ネットワーク(例えば、インターネット)を介して、クライアントコンピュータ411−414において顧客のために仮想マシンおよびその動作環境(例えば、ハイパーバイザ、記憶装置リソース、ネットワーク要素によって提供されるサービスなど)を設定、形成および管理するように構成することができ、計算リソース、データ記憶サービス、ネットワーキング能力、並びにコンピュータプラットフォームおよびアプリケーションサポートを顧客に提供する。クラウドシステムはまた、セキュリティシステム、開発環境、ユーザインターフェースなどを含む様々な特定のサービスを提供するように構成することもできる。
特定のクライアント411−414は、例えば、同じエンドユーザ、または同じ会社もしくは組織に所属する異なるユーザに代わって、仮想マシンを形成する異なるクライアントコンピュータに関連することができる。他の例では、特定のクライアント411−414は、異なる会社または組織に所属するユーザなど、無関係であってもよい。無関係なクライアントの場合、仮想マシンまたは任意の1人のユーザの記憶装置に関する情報は、他のユーザから隠されていてもよい。
ここで、クラウドコンピューティング環境の物理ハードウェア層を参照すると、利用可能領域401−402(または領域)は、物理コンピューティングリソースの併置されたセットを指すことができる。領域は、コンピューティングリソースのクラウド全体における他の領域から地理的に離れていてもよい。例えば、領域401は、カリフォルニアに位置する第1のクラウドデータセンターであってもよく、領域402は、フロリダに位置する第2のクラウドデータセンターであってもよい。管理サーバ410は、利用可能領域の1つに、または別の場所に配置されてもよい。各領域は、ゲートウェイを介して、管理サーバ410などの領域外にあるデバイスとインターフェースする内部ネットワークを含むことができる。クラウドのエンドユーザ(例えば、クライアント411−414)は、領域間の区別を認知していることもあれば認知していないこともある。例えば、エンドユーザは、指定された量のメモリ、処理能力、およびネットワーク能力を有する仮想マシンの形成を要求することができる。管理サーバ410は、ユーザのリクエストに応答することができ、仮想マシンが領域401または領域402からのリソースを使用して形成されたかどうかをユーザが知ることなく仮想マシンを形成するためにリソースを割り当てることができる。他の例では、クラウドシステムは、エンドユーザが、特定領域または領域内の特定のリソース403−405に仮想マシン(または他のクラウドリソース)を割り当てることを要求することを可能にすることができる。
この例では、各領域401−402は、例えば、物理ホスティングリソース(または処理リソース)、物理ネットワークリソース、物理記憶装置リソース、スイッチ、および顧客にクラウドコンピューティングサービスを提供するために使用することができる追加のハードウェアリソースなどの様々な物理ハードウェアコンポーネント(またはコンピューティングリソース)403−405の構成を含むことができる。クラウド領域401−402内の物理ホスティングリソースは、仮想マシンインスタンスを形成してホストするように構成することができる上述の仮想化サーバ301などの1つ以上のコンピュータサーバ403を含むことができる。クラウド領域401または402内の物理ネットワークリソースは、ファイアウォール、ネットワークアドレス変換器、ロードバランサ、仮想プライベートネットワーク(VPN)ゲートウェイ、ダイナミックホストコンフィギュレーションプロトコル(DHCP)ルータなど、クラウド顧客にネットワークサービスを提供するように構成されたハードウェアおよび/またはソフトウェアを備える1つ以上のネットワーク要素405(例えば、ネットワークサービスプロバイダ)を含むことができる。クラウド領域401−402内の記憶装置リソースは、記憶装置ディスク(例えば、ソリッドステートドライブ(SSD)、磁気ハードディスクなど)および他の記憶装置を含むことができる。
図4に示される例示的なクラウドコンピューティング環境はまた、仮想マシンを形成および管理し、クラウド内の物理リソースを使用する顧客に他のサービスを提供するように構成された追加のハードウェアおよび/またはソフトウェアリソースを有する(例えば、図1−図3に示されるような)仮想化層を含むことができる。仮想化層は、図3において上述したように、ネットワーク仮想化、記憶装置仮想化などを提供するために、他のコンポーネントとともにハイパーバイザを含むことができる。仮想化層は、物理リソース層とは別個の層であってもよく、または同じハードウェアおよび/またはソフトウェアリソースの一部または全部を物理リソース層と共有してもよい。例えば、仮想化層は、物理コンピューティングリソースとともに各仮想化サーバ403にインストールされたハイパーバイザを含むことができる。例えば、WINDOWS(登録商標) AZURE(ワシントン州レドモンドのマイクロソフトコーポレーション)、AMAZON EC2(ワシントン州シアトルのアマゾン.com社)、IBM BLUE CLOUD(ニューヨーク州アーモンクのIBM社)などの公知のクラウドシステムが代わりに使用されてもよい。
企業モビリティ管理アーキテクチャ
図5は、BYOD環境で使用する企業モビリティ技術アーキテクチャ500を表している。アーキテクチャは、モバイルデバイス502のユーザが、モバイルデバイス502から企業または個人リソースにアクセスすることおよびモバイルデバイス502を個人的な使用のために使用することの双方を可能にする。ユーザは、ユーザによって購入されたモバイルデバイス502または企業によってユーザに提供されたモバイルデバイス502を使用して、そのような企業リソース504または企業サービス508にアクセスすることができる。ユーザは、業務用のみまたは業務用および個人用のためにモバイルデバイス502を利用することができる。モバイルデバイスは、iOSオペレーティングシステム、およびアンドロイドオペレーティングシステムなどを実行することができる。企業は、モバイルデバイス504を管理するためのポリシーを実装することを選択することができる。ポリシーは、モバイルデバイスが識別され、セキュアであるかもしくはセキュリティ検証され、企業リソースへの選択的または完全なアクセスが提供されるように、ファイアウォールまたはゲートウェイを介して埋め込まれてもよい。ポリシーは、モバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはモバイルデバイス、アプリケーション、およびデータ管理ポリシーのいくつかの組み合わせであってもよい。モバイルデバイス管理ポリシーのアプリケーションを介して管理されるモバイルデバイス504は、登録デバイスと呼ばれてもよい。
ある実施形態では、モバイルデバイスのオペレーティングシステムは、管理パーティション510および非管理パーティション512に分離することができる。管理パーティション510は、管理パーティション上で実行するアプリケーションおよび管理パーティションに記憶されたデータを保護するために、適用されるポリシーを有することができる。管理パーティション上で実行されているアプリケーションは、セキュアアプリケーションとすることができる。他の実施形態では、全てのアプリケーションは、アプリケーションとは別に受信した1つ以上のポリシーファイルのセットにしたがって実行することができ、ポリシーファイルは、1つ以上のセキュリティパラメータ、特徴、リソース制限、および/またはそのアプリケーションがデバイス上で実行されているときにモバイルデバイス管理システムによって実行する他のアクセスコントロールを定義する。それぞれのポリシーファイルにしたがって動作することにより、各アプリケーションは、1つ以上の他のアプリケーションおよび/またはリソースとの通信を許可または制限することができ、それによって仮想パーティションを形成することができる。したがって、本明細書では、パーティションは、メモリの物理的に区画化された部分(物理パーティション)、メモリの論理的に区画化された部分(論理パーティション)、および/または1つ以上のポリシーおよび/または本明細書に記載された複数のアプリケーションにまたがるポリシーファイルの実行の結果として形成される仮想パーティション(仮想パーティション)とすることができる。他の言い方をすれば、管理アプリケーション上でポリシーを実行することにより、それらのアプリケーションは、他の管理アプリケーションおよび信頼できる企業リソースとだけ通信可能であるように制限することができ、それによって管理されていないアプリケーションおよびデバイスによる侵入が不可能な仮想パーティションを形成する。
セキュアアプリケーションは、電子メールアプリケーション、ウェブブラウジングアプリケーション、ソフトウェア・アズ・ア・サービス(SaaS)アクセスアプリケーション、ウィンドウズ(登録商標)アプリケーションアクセスアプリケーションなどとすることができる。セキュアアプリケーションは、セキュアネイティブアプリケーション514、セキュアアプリケーションランチャ518によって実行するセキュアリモートアプリケーション522、セキュアアプリケーションランチャ518によって実行する仮想化アプリケーション526などであってもよい。セキュアネイティブアプリケーション514は、セキュアアプリケーションラッパー520によってラップすることができる。セキュアアプリケーションラッパー520は、セキュアネイティブアプリケーションがデバイス上で実行するときにモバイルデバイス502上で実行する統合ポリシーを含むことができる。セキュアアプリケーションラッパー520は、セキュアネイティブアプリケーション514がセキュアネイティブアプリケーション514の実行時に要求されたタスクを完了するために必要とすることがある企業でホストされているリソースに対してモバイルデバイス502上で実行されているセキュアネイティブアプリケーション514をポイントするメタデータを含むことができる。セキュアアプリケーションランチャ518によって実行するセキュアリモートアプリケーション522は、セキュアアプリケーションランチャアプリケーション518内で実行されてもよい。セキュアアプリケーションランチャ518によって実行する仮想化アプリケーション526は、企業リソース504などでモバイルデバイス502上のリソースを利用することができる。セキュアアプリケーションランチャ518によって実行する仮想化アプリケーション526によってモバイルデバイス502上で使用されるリソースは、ユーザ対話リソース、処理リソースなどを含むことができる。ユーザ対話リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、音声入力、視覚入力、ジェスチャ入力などを収集して送信するために使用することができる。処理リソースは、ユーザインターフェース、企業リソース504から受信したプロセスデータなどを提示するために使用することができる。セキュアアプリケーションランチャ518によって実行する仮想化アプリケーション526によって企業リソース504で使用されるリソースは、ユーザインターフェース生成リソース、処理リソースなどを含むことができる。ユーザインターフェース生成リソースは、ユーザインターフェースをアセンブルし、ユーザインターフェースを変更し、ユーザインターフェースをリフレッシュするなどのために使用することができる。処理リソースは、情報の生成、情報の読み取り、情報の更新、情報の削除などに使用することができる。例えば、仮想化アプリケーションは、グラフィカルユーザインターフェース(GUI)に関連するユーザ対話を記録し、サーバアプリケーションがサーバ上で動作するアプリケーションへの入力としてユーザ対話データを使用するサーバアプリケーションに、それらを通信することができる。この構成では、企業は、アプリケーションに関連するデータ、ファイルなどと同様に、サーバ側でアプリケーションを維持するように選択することができる。企業は、モバイルデバイス上に装備するためにそれらを保護することによって本明細書の原理に従っていくつかのアプリケーションを「動員」するように選択することができるが、この構成はまた、特定のアプリケーションのために選択することができる。例えば、一部のアプリケーションは、モバイルデバイス上で使用するために保護することができるが、他は、モバイルデバイス上での装備のために準備されないかまたは適切でないかもしれないため、企業は、仮想化技術を介して準備されないアプリケーションに対するモバイルユーザアクセスを提供するように選択することができる。別の一例として、企業は、モバイルデバイスにとってアプリケーションをカスタマイズすることが非常に困難であるかまたは望ましくない大規模且つ複雑なデータセットを有する大規模で複雑なアプリケーション(例えば、物質リソース計画アプリケーション)を有することがあるため、仮想化技術を介してアプリケーションに対するアクセスを提供するように選択することができる。さらに別の一例として、企業は、セキュアなモバイル環境ではセンシティブすぎると企業が見なし得る高度にセキュアなデータ(例えば、人事データ、顧客データ、エンジニアリングデータ)を維持するアプリケーションを有することがあるため、仮想化技術を使用して、そのようなアプリケーションおよびデータへのモバイルアクセスを可能にするように選択することができる。企業は、サーバ側でより適切に動作するとみなされるアプリケーションに対するアクセスを可能にするように、モバイルデバイス上に完全にセキュアであり、完全に機能するアプリケーションの双方並びに仮想化アプリケーションを提供するように選択することができる。一実施形態では、仮想化アプリケーションは、セキュアな記憶場所の1つに携帯電話上のデータ、ファイルなどを記憶することができる。例えば、企業は、特定の情報が電話に記憶されるのを可能にしつつ、他の情報は許可しないように選択することができる。
本明細書に記載されるように、仮想化アプリケーションに関連して、モバイルデバイスは、GUIを提示した後にGUIとのユーザ対話を記録するように設計された仮想化アプリケーションを有することができる。アプリケーションは、アプリケーションとのユーザ対話として、サーバ側アプリケーションによって使用されるようにサーバ側へのユーザ対話を通信することができる。それに応答して、サーバ側のアプリケーションは、新たなGUIをモバイルデバイスに送返することができる。例えば、新たなGUIは、静的ページ、動的ページ、アニメーションなどとすることができ、それにより、遠隔に位置するリソースへのアクセスを提供する。
セキュアアプリケーションは、モバイルデバイスの管理パーティション510内のセキュアデータコンテナ528に記憶されたデータにアクセスすることができる。セキュアデータコンテナに確保されたデータは、セキュアラップアプリケーション514、セキュアアプリケーションランチャ522によって実行するアプリケーション、セキュアアプリケーションランチャ522によって実行する仮想化アプリケーション526などによってアクセスすることができる。セキュアデータコンテナ528に記憶されるデータは、ファイル、データベースなどを含むことができる。セキュアデータコンテナ528に記憶されるデータは、特定のセキュアアプリケーション530に制限されたデータ、セキュアアプリケーション532の間で共有されるデータなどを含むことができる。セキュアアプリケーションに制限されたデータは、セキュアな一般データ534および高度にセキュアなデータ538を含むことができる。セキュアな一般データは、拡張暗号化標準(AES)128ビット暗号化などの強力な形式の暗号化を使用することができる一方で、高度にセキュアなデータ538は、AES256ビット暗号化などの非常に強力な形式の暗号化を使用することができる。セキュアデータコンテナ528に記憶されたデータは、デバイスマネージャ524からコマンドを受信し次第、デバイスから削除することができる。セキュアアプリケーションは、デュアルモードオプション540を有することができる。デュアルモードオプション540は、セキュアでないまたは管理されていないモードでセキュアアプリケーションを動作させるためのオプションをユーザに提示することができる。セキュアでないまたは管理されていないモードでは、セキュアアプリケーションは、モバイルデバイス502の管理されていないパーティション512上のセキュアでないデータコンテナ542に記憶されたデータにアクセスすることができる。セキュアでないデータコンテナに記憶されるデータは、個人データ544であってもよい。セキュアでないデータコンテナ542に記憶されたデータはまた、モバイルデバイス502の管理されていないパーティション512上で実行されているセキュアでないアプリケーション548によってアクセスされてもよい。セキュアでないデータコンテナ542に記憶されたデータは、セキュアデータコンテナ528に記憶されたデータがモバイルデバイス502から削除されたとき、モバイルデバイス502上に残っていてもよい。企業は、企業によって所有される、ライセンスされたまたは管理される、選択されたまたは全てのデータ、ファイル、および/またはアプリケーション(企業データ)をモバイルデバイスから削除する一方で、ユーザによって所有、ライセンスまたは管理される個人データ、ファイル、および/またはアプリケーション(個人データ)を残すまたは保全することを望むことがある。この動作は、選択的ワイプと呼ばれてもよい。本明細書に記載された態様にしたがって配置された企業および個人データにより、企業は、選択的ワイプを実行することができる。
モバイルデバイスは、企業における企業リソース504および企業サービス508、パブリックインターネット548などに接続することができる。モバイルデバイスは、仮想プライベートネットワーク接続を介して企業リソース504および企業サービス508に接続することができる。マイクロVPNまたはアプリケーション固有VPNとも呼ばれる仮想プライベートネットワーク接続は、特定のアプリケーション550、特定のデバイス、モバイルデバイス上の特定のセキュア領域552などに固有のものであってもよい。例えば、電話のセキュア領域内のラップアプリケーションのそれぞれは、場合によってはユーザまたはデバイス属性情報とあわせて、アプリケーションに関連する属性に基づいてVPNへのアクセスが与えられるように、アプリケーション固有VPNを介して企業リソースにアクセスすることができる。仮想プライベートネットワーク接続は、マイクロソフト・エクスチェンジ・トラフィック、マイクロソフト・アクティブ・ディレクトリ・トラフィック、ハイパーテキスト転送プロトコル(HTTP)・トラフィック、ハイパーテキスト転送プロトコル・セキュア(HTTPS)・トラフィック、アプリケーション管理トラフィックなどを伝送することができる。仮想プライベートネットワーク接続は、シングルサインオン認証プロセス554をサポートしてイネーブルにすることができる。シングルサインオンプロセスは、その後に認証サービス558によって検証される認証情報の単一セットをユーザが提供するのを可能にすることができる。そして、認証サービス558は、個々の企業リソース504に対する認証情報を提供することをユーザに要求することなく、複数の企業リソース504へのアクセスをユーザに与えることができる。
仮想プライベートネットワーク接続は、アクセスゲートウェイ560によって確立されて管理されてもよい。アクセスゲートウェイ560は、モバイルデバイス502への企業リソース504の配信を管理し、加速し、及び改善する性能向上機能を含むことができる。アクセスゲートウェイはまた、モバイルデバイス502からパブリックインターネット548へのトラフィックをリルートすることができ、モバイルデバイス502がパブリックインターネット548上で動作するパブリックに利用可能であり且つセキュアでないアプリケーションにアクセスすることを可能にする。モバイルデバイスは、トランスポートネットワーク562を介してアクセスゲートウェイに接続することができる。トランスポートネットワーク562は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、パブリックネットワーク、プライベートネットワークなどとすることができる。
企業リソース504は、電子メールサーバ、ファイル共有サーバ、SaaSアプリケーション、ウェブアプリケーションサーバ、ウィンドウズ(登録商標)アプリケーションサーバなどを含むことができる。電子メールサーバは、エクスチェンジサーバ、ロータス・ノーツサーバなどを含むことができる。ファイル共有サーバは、ShareFileサーバなどを含むことができる。SaaSアプリケーションは、セールスフォースなどを含むことができる。ウィンドウズ(登録商標)アプリケーションサーバは、ローカルのウィンドウズ(登録商標)オペレーティングシステム上で実行することが意図されたアプリケーションなどを提供するように構築された任意のアプリケーションサーバを含むことができる。企業リソース504は、構内ベースのリソース、クラウドベースのリソースなどであってもよい。企業リソース504は、モバイルデバイス502によって直接またはアクセスゲートウェイ560を介してアクセスされてもよい。企業リソース504は、トランスポートネットワーク562を介してモバイルデバイス502によってアクセスされてもよい。トランスポートネットワーク562は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、パブリックネットワーク、プライベートネットワークなどとすることができる。
企業サービス508は、認証サービス558、脅威検出サービス564、デバイスマネージャサービス524、ファイル共有サービス568、ポリシーマネージャサービス570、ソーシャル統合サービス572、アプリケーションコントローラサービス574などを含むことができる。認証サービス558は、ユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービスなどを含むことができる。認証サービス558は、証明書を使用することができる。証明書は、企業リソース504などによってモバイルデバイス502上に記憶されてもよい。モバイルデバイス502に記憶された証明書は、モバイルデバイス上の暗号化された場所に記憶されてもよく、証明書は、認証時に使用するためにモバイルデバイス502に一時的に記憶などされてもよい。脅威検出サービス564は、侵入検出サービス、不正アクセス試行検出サービスなどを含むことができる。不正アクセス試行検出サービスは、デバイス、アプリケーション、データなどへの不正なアクセス試行を含むことができる。デバイス管理サービス524は、構成、プロビジョニング、セキュリティ、サポート、監視、報告、およびサービスの廃止を含むことができる。ファイル共有サービス568は、ファイル管理サービス、ファイル記憶サービス、ファイル協働サービスなどを含むことができる。ポリシーマネージャサービス570は、デバイスポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービスなどを含むことができる。ソーシャル統合サービス572は、連絡先統合サービス、協働サービス、フェイスブック、ツイッター(登録商標)、およびリンクトインなどのソーシャルネットワークとの統合などを含むことができる。アプリケーションコントローラサービス574は、管理サービス、プロビジョニングサービス、開発サービス、割り当てサービス、失効サービス、ラッピングサービスなどを含むことができる。
企業モビリティ技術アーキテクチャ500は、アプリケーションストア578を含むことができる。アプリケーションストア578は、アンラップされたアプリケーション580、事前ラップされたアプリケーション582などを含むことができる。アプリケーションは、アプリケーションコントローラ574からアプリケーションストア578に投入されてもよい。アプリケーションストア578は、アクセスゲートウェイ560、パブリックインターネット548などを介してモバイルデバイス502によってアクセスされてもよい。アプリケーションストアは、直感的で使いやすいユーザインターフェースを備えることができる。
ソフトウェア開発キット584は、本明細書で前述したように、アプリケーションをラッピングすることによって、ユーザによって選択されたアプリケーションを保護する能力をユーザに提供することができる。そして、ソフトウェア開発キット584を使用してラッピングされたアプリケーションは、アプリケーションコントローラ574を使用してアプリケーションストア578にそれを投入することによって、モバイルデバイス502に利用可能にすることができる。
企業モビリティ技術アーキテクチャ500は、管理および分析機能588を含むことができる。管理および分析機能588は、リソースの使用方法、リソースの使用頻度などに関連する情報を提供することができる。リソースは、デバイス、アプリケーション、データなどを含むことができる。リソースの使用方法は、どのデバイスがどのアプリケーションをダウンロードし、どのアプリケーションがどのデータにアクセスするかなどを含むことができる。リソースの使用頻度は、アプリケーションがダウンロードされた頻度、アプリケーションによって特定のデータセットがアクセスされた回数などを含むことができる。
図6は、別の例示的な企業モビリティ管理システム600である。図5を参照して上述したモビリティ管理システム500のコンポーネントのいくつかは、簡略化するために省略されている。図6に示されるシステム600のアーキテクチャは、多くの点で、図5を参照して上述したシステム500のアーキテクチャと同様であり、上述していない追加の特徴を含むことができる。
この場合、左側は、上記右側に示されるように、エクスチェンジ、共有ポイント、公開鍵インフラストラクチャ(PKI)リソース、ケルベロスリソース、証明書発行サービスなどの様々な企業リソース608およびサービス609にアクセスするために(アクセスゲートウェイおよびアプリケーションコントローラ機能を含む)ゲートウェイサーバ606と対話するクライアントエージェント604を有する、登録されたモバイルデバイス602を表している。具体的に示されていないが、モバイルデバイス602はまた、アプリケーションの選択およびダウンロードのために企業アプリケーションストア(ストアフロント)と対話することもできる。
クライアントエージェント604は、高解像度ユーザ体験(HDX)/ICAディスプレイリモーティングプロトコルを使用してアクセスされる企業データセンターでホストされたウィンドウズ(登録商標)アプリケーション/デスクトップのためのUI(ユーザインターフェース)仲介として機能する。クライアントエージェント604はまた、ネイティブiOSまたはアンドロイドアプリケーションなどのネイティブアプリケーションのモバイルデバイス602上へのインストールおよび管理をサポートする。例えば、図6に示される管理対象アプリケーション610(メール、ブラウザ、ラップされたアプリケーション)は、全てデバイス上でローカルに実行するネイティブアプリケーションである。クライアントエージェント604およびこのアーキテクチャのアプリケーション管理フレームワークは、接続およびSSO(シングルサインオン)などのポリシー駆動管理機能および特徴を企業リソース/サービス608に提供するように機能する。クライアントエージェント604は、他のゲートウェイサーバコンポーネントへのSSOを用いて、企業に対する、通常はアクセスゲートウェイ(AG)に対するプライマリユーザ認証を処理する。クライアントエージェント604は、ゲートウェイサーバ606からポリシーを取得して、モバイルデバイス602上の管理対象アプリケーション610の挙動を制御する。
ネイティブアプリケーション610とクライアントエージェント604との間のセキュアプロセス間通信(IPC)リンク612は、クライアントエージェントが各アプリケーションを「ラッピング」するアプリケーション管理フレームワーク614によって実行するポリシーを供給することを可能にする管理チャネルを表す。IPCチャネル612はまた、クライアントエージェント604が、企業リソース608への接続およびSSOを可能にする認証証明書および認証情報を供給することを可能にする。最後に、IPCチャネル612は、アプリケーション管理フレームワーク614が、オンラインおよびオフライン認証などのクライアントエージェント604によって行われるユーザインターフェース機能を呼び出すことを可能にする。
クライアントエージェント604とゲートウェイサーバ606との間の通信は、本質的に、各ネイティブ管理対象アプリケーション610をラッピングするアプリケーション管理フレームワーク614からの管理チャネルの拡張である。アプリケーション管理フレームワーク614は、クライアントエージェント604からポリシー情報を要求し、順にクライアントエージェント604は、ゲートウェイサーバ606からそれを要求する。アプリケーション管理フレームワーク614は、認証を要求し、そしてクライアントエージェント604は、ゲートウェイサーバ606(NetScalerアクセスゲートウェイとしても知られる)のゲートウェイサービス部分にログインする。クライアントエージェント604はまた、以下でより詳細に説明するように、ローカルデータボールト616の暗号鍵を導出するための入力材料を生成することができる、またはPKI保護されたリソースへの直接認証を可能にすることができるクライアント証明書を提供することができる、ゲートウェイサーバ606上のサポートサービスを呼び出すこともできる。
より詳細には、アプリケーション管理フレームワーク614は、各管理対象アプリケーション610を「ラップする」。これは、明示的な構築ステップ、または構築後の処理ステップを介して組み込むことができる。アプリケーション管理フレームワーク614は、セキュアIPCチャネルを初期化するようにアプリケーション610の最初の起動時にクライアントエージェント604と「ペアリング」し、そのアプリケーションのポリシーを取得することができる。アプリケーション管理フレームワーク614は、クライアントエージェントのログイン依存性や、ローカルOSサービスの使用方法またはアプリケーション610との対話方法を制限するいくつかの包含ポリシーなど、ローカルに適用されるポリシーの関連部分を実行することができる。
アプリケーション管理フレームワーク614は、セキュアIPCチャネル612を介してクライアントエージェント604によって提供されるサービスを使用して、認証および内部ネットワークアクセスを容易にすることができる。プライベートおよび共有データボールト616(コンテナ)の鍵管理はまた、管理対象アプリケーション610とクライアントエージェント604との間の適切な対話によっても管理することができる。ボールト616は、オンライン認証後にのみ利用可能であってもよく、またはポリシーによって許可されている場合にはオフライン認証後に利用可能とされてもよい。ボールト616の最初の使用は、オンライン認証を必要としてもよく、オフラインアクセスは、オンライン認証が再び要求される前に、ポリシーリフレッシュ期間まで制限されてもよい。
内部リソースへのネットワークアクセスは、個々の管理対象アプリケーション610からアクセスゲートウェイ606を介して直接発生してもよい。アプリケーション管理フレームワーク614は、各アプリケーション610に代わってネットワークアクセスを編成する役割を担う。クライアントエージェント604は、オンライン認証の後に取得される適切な時間制限された二次認証情報を提供することによって、これらのネットワーク接続を容易にすることができる。リバースウェブプロキシ接続およびエンドツーエンドVPNスタイルトンネル618など、複数のモードのネットワーク接続を使用することができる。
メールおよびブラウザ管理対象アプリケーション610は、特別なステータスを有し、任意にラップされたアプリケーションに対して一般に利用可能ではない可能性があるファシリティを利用することができる。例えば、メールアプリケーションは、完全なAGログオンを必要とせずに長時間にわたってエクスチェンジにアクセスするのを可能にする特別なバックグラウンドネットワークアクセス機構を使用してもよい。ブラウザアプリケーションは、異なる種類のデータを分離すルために、複数のプライベートデータボールトを使用してもよい。
このアーキテクチャは、他の様々なセキュリティ機能の組み込みをサポートする。例えば、ゲートウェイサーバ606(そのゲートウェイサービスを含む)は、場合によっては、アクティブディレクトリ(AD)パスワードを検証する必要がない。状況によっては、一部のユーザに対してADパスワードが認証要素として使用されるかどうかは、企業の裁量に委ねることができる。ユーザがオンラインまたはオフラインである(すなわち、ネットワークに接続されているかまたはネットワークに接続されていない)場合、異なる認証方法を使用することができる。
ステップアップ認証は、ゲートウェイサーバ606が強力な認証を必要とする高度な機密データへのアクセスを有することが許可された管理対象ネイティブアプリケーション610を識別することができ、これが事前のより弱いレベルのログイン後にユーザによって再認証が要求されることを意味する場合であっても、これらのアプリケーションへのアクセスが適切な認証を行った後にのみ許可することを保証することができる機能である。
この解決策の他のセキュリティ機能は、モバイルデバイス602上のデータボールト616(コンテナ)の暗号化である。ボールト616は、ファイル、データベース、および構成を含む全てのデバイス上のデータが保護されるように暗号化することができる。オンラインボールトの場合、鍵はサーバ(ゲートウェイサーバ606)に記憶することができ、オフラインボールトの場合、鍵のローカルコピーは、ユーザパスワードまたは生体検証によって保護することができる。データがセキュアコンテナ616内のデバイス602にローカルに記憶されすときは、最小限のAES256暗号化アルゴリズムを利用することが好ましい。
他のセキュアなコンテナ機能も実装することができる。例えば、アプリケーション610の内部で起こっている全てのセキュリティイベントがログされてバックエンドに報告されるロギング機能が含まれてもよい。アプリケーション610が改ざんを検出した場合などには、関連する暗号化鍵がランダムデータによって上書きすることができ、ユーザデータが破壊された旨のヒントはファイルシステムに残らないデータワイプがサポートされてもよい。スクリーンショット保護は、アプリケーションがスクリーンショットにデータが記憶されるのを防止することができる他の機能である。例えば、キーウィンドウの隠しプロパティをYESに設定することができる。これは、その結果として画面上に現在表示されているコンテンツを隠すことができ、コンテンツが通常存在するところに空白のスクリーンショットをもたらすことができる。
例えば、ローカルデータ転送を、それをコピーすることによってまたは外部アプリケーションにそれを送信することによって、いかなるデータもアプリケーションコンテナの外部にローカルに転送されるのを防止することなどにより、防止することができる。キーボードキャッシュ機能は、機密テキストフィールドの自動修正機能を無効にするように動作することができる。SSL証明書の検証が動作可能であるため、アプリケーションは、鍵チェーンに記憶する代わりにサーバSSL証明書を具体的に検証する。デバイス上のデータを暗号化するために使用される鍵がユーザによって供給されるパスフレーズまたは生体データ(オフラインアクセスが要求される場合)を使用して生成されるように、暗号化鍵生成機能を使用することができる。オフラインアクセスが要求されない場合、サーバ側でランダムに生成されて記憶された他の鍵とXOR演算することができる。鍵導出関数は、ユーザパスワードから生成された鍵がその暗号ハッシュを形成するのではなく、KDF(鍵導出関数、特にパスワードベースの鍵導出関数2(PBKDF2))を使用するように動作することができる。後者は、ブルートフォース攻撃または辞書攻撃の影響を受けやすい鍵を形成する。
さらに、1つ以上の初期化ベクトルが暗号化方法に使用することができる。初期化ベクトルは、同じ暗号化データの複数のコピーを生成し、異なる暗号文出力をもたらし、再生および暗号解読攻撃の双方を防止する。これはまた、データを暗号化するために使用された特定の初期化ベクトルがわからない場合、盗まれた暗号化鍵を用いたとしても攻撃者がいかなるデータを復号することを防止する。さらに、ユーザがアプリケーション内で認証された後にのみアプリケーションデータが復号される認証後復号が使用されてもよい。他の機能は、必要なときにのみメモリ(ディスクではない)に保持することができるメモリ内の機密データに関連することができる。例えば、ログイン後にログイン認証情報がメモリから消去することができ、オブジェクティブCインスタンス変数内の暗号化鍵および他のデータは、それらが容易に参照することができるため、記憶されない。代わりに、メモリは、これらについて手動で割り当てることができる。
非活動タイムアウトを実装することができ、ポリシー定義の非活動期間後に、ユーザセッションが終了する。
アプリケーション管理フレームワーク614からのデータ漏洩は、他の方法で防止することができる。例えば、アプリケーション610がバックグラウンドに置かれている場合、メモリは、所定の(設定可能な)期間後にクリアすることができる。バックグラウンドの場合、フォアグランドプロセスを固定するためにアプリケーションの最後に表示された画面のスナップショットを撮ることができる。スクリーンショットは、機密データを含むことがあるため、クリアされる必要がある。
他のセキュリティ機能は、1つ以上のアプリケーションへのアクセスのためにAD(アクティブディレクトリ)622のパスワードを使用せずにOTP(ワンタイムパスワード)620を使用することに関する。場合によっては、一部のユーザは、彼らのADパスワードを知らない(または知ることを許可されない)ため、これらのユーザは、SecurIDのようなハードウェアOTPシステムを使用するなどによってOTP620を使用して認証することができる(OTPは、EntrustまたはGemaltoなど、異なるベンダによっても提供されてもよい)。場合によっては、ユーザがユーザIDを用いて認証した後、テキストがOTP620とともにユーザに送信される。場合によっては、これは、オンラインでの使用のためにのみ実装することができ、プロンプトは単一フィールドである。
企業ポリシーを介してオフライン使用が許可されるアプリケーション610のオフライン認証のために、オフラインパスワードが実装することができる。例えば、企業は、このようにストアフロントにアクセスされることを望むことがある。この場合、クライアントエージェント604は、カスタムオフラインパスワードを設定するようにユーザに要求することができ、ADパスワードは使用されない。ゲートウェイサーバ606は、これらの要件は変更されることがあるものの、標準的なウィンドウズ(登録商標)サーバパスワードの複雑さの要件によって記述されるものなど、最小長、文字クラスの構成、およびパスワードの寿命に関するパスワード標準を制御および実行するためのポリシーを提供することができる。
別の機能は、(アプリケーション管理フレームワークのマイクロVPN機能を介してPKI保護されたウェブリソースにアクセスする目的で)二次認証情報としての特定のアプリケーション610のためのクライアント側証明書の有効化に関する。例えば、アプリケーションは、そのような証明書を利用することができる。この場合、ActiveSyncプロトコルを使用する証明書ベースの認証をサポートすることができ、クライアントエージェント604からの証明書は、ゲートウェイサーバ606によって取り出すことができ、鍵チェーン内で使用することができる。各管理対象アプリケーションは、ゲートウェイサーバ606において定義されたラベルによって識別される1つの関連クライアント証明書を有することができる。
ゲートウェイサーバ606は、関連する管理対象アプリケーションが、内部PKI保護リソースを認証するのを可能にするためにクライアント証明書の発行をサポートするよう、企業専用ウェブサービスと対話することができる。
クライアントエージェント604およびアプリケーション管理フレームワーク614は、内部PKI保護ネットワークリソースへの認証のためにクライアント証明書を取得および使用することをサポートするように拡張することができる。様々なレベルのセキュリティ要件および/または分離要件に一致するために、複数の証明書がサポートすることができる。証明書は、メールおよびブラウザ管理対象アプリケーションによって、最終的には任意のラップされたアプリケーションによって使用されてもよい(アプリケーション管理フレームワークがhttpsリクエストを仲介するのに合理的なウェブサービススタイル通信パターンをそれらのアプリケーションが使用するという条件で)。
iOS上でのアプリケーション管理クライアント証明書のサポートは、各管理対象アプリケーションのiOS鍵チェーンに公開鍵暗号化標準(PKCS)12 BLOB(バイナリラージオブジェクト)を各使用期間にわたってインポートすることに依存してもよい。アプリケーション管理フレームワークのクライアント証明書のサポートは、プライベートなメモリ内鍵記憶装置によるHTTPS実装を使用してもよい。クライアント証明書は、決してiOS鍵チェーンには存在せず、また強力に保護された「オンラインのみ」のデータ値を潜在的に除いて、永続化されない。
相互SSLはまた、モバイルデバイス602が企業に対して認証することを要求することによって追加のセキュリティを提供するように実装されてもよく、その逆でもよい。ゲートウェイサーバ606に対する認証のための仮想スマートカードも実装することができる。
ケルベロスの制限サポートおよび完全サポートの双方を、追加の機能とすることができる。完全サポート機能は、ADパスワードまたは信頼できるクライアント証明書を使用して、アクティブディレクトリ(AD)622に対して完全ケルベロスログインを実行し、HTTPネゴシエート認証チャレンジに応答するためにケルベロスサービスチケットを取得する能力に関する。制限サポート機能は、シトリックス・アクセス・ゲートウェイ・エンタープライズ・エディション(AGEE)の制限付き委任に関し、AGEEは、HTTPネゴシエート認証チャレンジに対する応答するためにケルベロスサービスチケット(制約付き委任の対象)を取得して使用するよう、ケルベロスプロトコル遷移を呼び出すことをサポートする。この機構は、http(httpsではない)接続がVPNおよびマイクロVPNモードでプロキシされる場合、リバースウェブプロキシ(企業仮想プライベートネットワーク(CVPN)モードとも呼ばれる)モードで動作する。
別の機能は、脱獄またはルーティング検出時に自動的に発生することができ、管理コンソールからプッシュされたコマンドとして発生することができ、アプリケーション610が実行されていない場合であっても、リモートワイプ機能を含むことができる、アプリケーションコンテナのロックおよびワイピングに関する。
故障が発生した場合にユーザが複数の異なる場所のいずれかからサービスを受けることを可能にする、企業アプリケーションストアおよびアプリケーションコントローラのマルチサイトアーキテクチャまたは構成をサポートすることができる。
場合によっては、管理対象アプリケーション610は、API(例えばOpenSSL)を介して、証明書および秘密鍵にアクセスすることを許可することができる。企業の信頼できる管理対象アプリケーション610は、アプリケーションのクライアント証明書および秘密鍵を用いて、特定の公開鍵動作を実行することを許可することができる。アプリケーションがブラウザのように動作して証明書のアクセスが要求されない場合、アプリケーションが「私は誰か」の証明書を読み取る場合、アプリケーションが証明書を使用してセキュアなセッショントークンを構築する場合、およびアプリケーションが重要データ(例えば、トランザクションログ)のデジタル署名のためにまたは一時的なデータ暗号化のために秘密鍵を使用する場合など、それぞれに応じて様々な使用事例を識別して処理することができる。
ホストされたアプリケーションに対するスマートアクセスのモバイルデバイスへの提供
本開示の1つ以上の態様は、図1−図6に関連して上述したコンピュータシステムアーキテクチャ、リモートアクセスシステムアーキテクチャ、仮想化(ハイパーバイザ)システムアーキテクチャ、クラウドベースシステムアーキテクチャ、および/または企業モビリティ管理システムのうちの1つ以上を使用して組み込む、埋め込む、および/または実装することができる。さらに、本開示では以下の略語を使用することができる:エンドポイント分析(EPA);デスクトップデリバリコントローラ(DDC);モバイルアプリケーション管理(MAM);モバイルデバイス管理(MDM);モバイルデバイス体験(MDX);NetScalerゲートウェイ(NSG);プルーフ・オブ・コンセプト(POC);共有秘密ボールト(SSV);ストアフロント(SF);WorxHome(WH);XenApp(XA);XenDesktop(XD);およびXenMobileサーバ(XMS)。
上述したように、本開示の態様は、そのようなアプリケーションがモバイルデバイスによってアクセスされる場合に高解像度体験(HDX)のホストされたアプリケーションのためにスマートアクセスを提供する。そのようなスマートアクセスは、管理対象デバイスからスマートアクセスポリシーへの入力として、リッチMDMベースのエンドポイント分析を活用することによって提供することができる。それに加えてまたはその代わりに、そのようなスマートアクセスは、管理対象または管理されていないデバイスからスマートアクセスポリシーへの入力として、リッチMAMベースのエンドポイント分析を活用することによって提供される。それに加えてまたはその代わりに、拡張スマートアクセス(例えば、本開示の1つ以上の態様にしたがって提供することができる)は、リッチMDMエンドポイント分析および/またはMAMエンドポイント分析に基づいて、HDXアプリケーションおよび/または特定のHDXセッションリダイレクション機能の可用性を制限することができる。
図7は、CITRIX XenAppおよびCITRIX XenDesktopが現在(例えば、デスクトップコンピューティングデバイスに関して)の「スマートアクセス」を提供することができる方法の例を示している。上述したように、そのような現在のエンドポイント分析(EPA)技術は、通常はマイクロソフトのウィンドウズ(登録商標)またはアップルのMAC OS Xなどのデスクトップオペレーティングシステムを実行しているデスクトップコンピュータ装置で動作する。しかしながら、そのような現在のエンドポイント分析技術は、モバイルコンピューティングデバイスまたはモバイルオペレーティングシステムには適用することができない。
本開示の1つ以上の態様は、従来技術および/または現在の技術の1つ以上の制限を克服する技術的解決策を提供することができる。特に、本開示の1つ以上の態様は、以下の特徴を提供することができる。例えば、本開示の1つ以上の態様は、HDXセッションポリシーの列挙、起動、実行、および/または適用を含むことができる、HDXアプリケーションの高度なスマートアクセスを提供するために、MDMベースおよび/またはMAMベースのエンドポイント分析を適用することができる。場合によっては、特定のモバイルデバイスがコンプライアンス内であるかコンプライアンス外であるか(例えば、1つ以上のポリシーを用いて)を示すために単一のコンプライアンスタグが使用される「単純な」実装モデルを利用することができる。別の場合では、MDMエージェントおよび/またはMAMラッパーなどのMDM技術および/またはMAM技術を使用して実行するリッチエンドポイント分析に基づいて、1つ以上のカスタムコンプライアンスタグが使用される「高度な」実装モデルを利用することができる。
コンプライアンスタグを設定することができるおよび/またはスマートアクセスポリシー設定を定義することができる管理ユーザインターフェースが提供されてもよい。例えば、1つ以上のコンプライアンスタグは、ネガティブタグ(例えば、除外タグ)またはポジティブタグ(例えば、特定の機能を有効にするアサーションタグ)のいずれかとして定義および/または使用することができる。
図8は、本開示の1つ以上の態様にしたがって、CITRIX XenMobileから単一のコンプライアンスタグが受信され、アクセスがブロックされる例、およびHDXのホストされたアプリケーション(例えば、CITRIX XenAppおよび/またはCITRIX XenDesktopを介して1つ以上のモバイルデバイスに提供することができる)における体験が制限される例を示している。
図9は、本開示の1つ以上の態様にしたがって、CITRIX XenMobileから単一のコンプライアンスタグが受信され、CITRIX XenMobileにおいてトリガイベントが選択される例を示している。
図10は、本開示の1つ以上の態様にしたがって、CITRIX XenMobileから単一のコンプライアンスタグが受信され、アクションがCITRIX XenMobileにおいて選択される例を示している。
図11は、本開示の1つ以上の態様にしたがって、CITRIX XenMobileから単一のコンプライアンスタグが受信され、CITRIX XenMobileから受信した単一のコンプライアンスタグに基づいて、CITRIX XenAppおよび/またはCITRIX XenDesktopにスマートアクセスポリシーが設定される例を示している。
図12は、本開示の1つ以上の態様にしたがって、1つ以上のカスタムコンプライアンスタグがCITRIX XenMobileから受信される例を示している。
図13は、CITRIX XenMobileから受信した1つ以上のカスタムコンプライアンスタグに基づいて、スマートアクセスポリシーがCITRIX XenAppおよび/またはCITRIX XenDesktopに設定される例を示している。
本開示の1つ以上の態様を実装する場合、1つ以上の装備オプションを使用することができる。例えば、本開示の1つ以上の態様は、MDM機能のみ、MAM機能のみ、またはMDM機能およびMAM機能を使用して装備することができる。場合によっては、CITRIX WorxHomeは、MDM機能および/またはMAM機能の双方を提供するとともに、HDXのホストされたアプリケーション機能(例えば、CITRIX XenMobileサーバ集約ストアを使用して)を提供する際に使用することができる。例えば、HDX機能は、CITRIX WorxHomeに埋め込まれていてもよく、または、CITRIXレシーバは、HDXプレーヤアプリケーションとしてのみ使用されてもよい。別の場合では、CITRIX WorxHomeは、MDM機能および/またはMAM機能のためのみに使用されてもよい。これらの場合では、CITRIXレシーバは、HDX機能(例えば、別個のHDXストアおよびHDXプレーヤアプリケーションを使用することを含むことができる)に対して使用されてもよい。
本開示の1つ以上の態様を実装する場合、1つ以上の技術的オプションが使用されてもよい。例えば、1つの技術的オプションにおいて、CITRIX WorxHomeは、CITRIX XenMobile集約ストアとともに使用されてもよい。この技術的オプションが使用される場合、CITRIX XenMobileサーバは、CITRIX StoreFrontサーバにコンプライアンスタグを送信することができる。
別の技術的オプションでは、2つのモバイルアプリケーションが使用されてもよい。例えば、CITRIX WorxHomeは、登録、MDM機能および/またはMAM機能の提供、およびモバイルアプリケーションストアおよび/またはネイティブアプリケーションストアの提供のために使用することができる。さらに、CITRIXレシーバは、HDXストアおよびHDXプレーヤの提供のために使用することができる。この技術的オプションが使用される場合、特定の情報をアプリケーション間で共有することができる。例えば、デバイス識別子(ID)情報を共有することができ(例えば、好ましい構成を提供すことができる)、または1つ以上の実際のコンプライアンスタグを共有することができる(例えば、より単純で実用的なオプションを提供できるが、追加のセキュリティ対策が使用されておらず安全性が低い可能性がある)。MDM機能のみが使用される場合、MDMアプリケーションプロパティは、値を共有するように設定することができる。MAM機能のみが使用される場合、MDXボールトインターフェース、共有秘密ボールト(SSV)ボールトインターフェース、または他のカスタムアプリケーションプログラミングインターフェース(API)は、値を共有するために使用することができる。場合によっては、CITRIXレシーバとStoreFrontサーバとの間および/またはCITRIX WorxHomeとXenMobileサーバとの間で、デバイスID情報および/またはコンプライアンスタグを共有および/または通信するために拡張配信サービスプロトコルを使用することができる。場合によっては、XenMobileサーバは、デバイスID情報および/または1つ以上のコンプライアンスタグをStoreFrontサーバ(例えば、好ましい構成を表すことができる)に送信することができる。
別の技術的オプションでは、管理ユーザインターフェースが使用されてもよい。例えば、CITRIX StoreFrontおよびXenAppおよび/またはXenDesktopで使用するために、1つ以上のコンプライアンスタグを定義するように、CITRIX XenMobileサーバ管理コンソールユーザインターフェースを使用することができる。デスクトップおよび/またはアプリケーションフィルタリング並びにセッションポリシーのために、CITRIX XenMobileサーバMDMおよび/またはMAMコンプライアンスタグを使用するように、CITRIX XenAppおよび/またはXenDesktop Studio UIの1つ以上のアップデートを行うことができる。
1つ以上の構成では、MAMサービスおよび/またはMDMサービスから受信したエンドポイント分析(EPA)データは、使用される特定のモバイルデバイスに関する情報を提供することができる。そのような情報は、例えば、モバイルデバイスが脱獄されているかどうかを示すことができ、ジオフェンシングに関連する情報を含むことができ、デバイスモデルを識別する情報を含むことができ、オペレーティングシステムのバージョンを識別する情報を含むことができ、特定のアプリケーションがインストールされているかどうかを示す情報を含むことができ、ユーザが特定の機能または特徴を無効にしたかどうかを識別する情報を含むことができ、モバイルデバイスに関連するキャリアネットワークを識別する情報を含むことができ、モバイルデバイスに関連する国コードを識別する情報を含むことができ、および/または他の情報を含むことができる。
場合によっては、XMS管理者は、資産インベントリ、デバイスプロパティ、イベント、および/または他の要因に基づいて、1つ以上の特定のコンプライアンスタグを設定するために、XMSで自動アクションを構成することができる。例えば、デバイスが指定された緯度および/または経度の範囲内にない場合、特定のコンプライアンスタグを、「境界違反(PerimiterBreached)」に設定することができる。それに加えてまたはその代わりに、デバイスのオペレーティングシステムがバージョン8.xよりも低い場合、特定のコンプライアンスタグを、「レガシーモバイルOS(LegacyMobileOS)」に設定することができる。それに加えてまたはその代わりに、デバイスが脱獄されている場合、特定のコンプライアンスタグを、「脱獄(Jailbroken)」に設定することができる。それに加えてまたはその代わりに、デバイスが指定された緯度および/または経度の範囲内にある場合、特定のコンプライアンスタグは、「リモートアクセス(RemoteAccess)」に設定することができる。
その後、XA/XD管理は、1つ以上のスマートアクセスポリシーを設定することができる。例えば、特定のアプリケーションまたはデスクトップに対するユーザアクセスを、XenMobileタグに基づいて制限することができる。例えば、特定のアプリケーションまたはデスクトップへのユーザアクセスは、ユーザのデバイスが「脱獄(Jailbroken)」または「境界違反(PerimiterBreached)」のステータスを有することを示すXenMobileタグに基づいて制限することができる。
別の例として、1つ以上のHDXセッションポリシーが1人以上のユーザに適用することができる。例えば、HDXクライアントドライブマッピングは、ユーザのデバイスが「脱獄(Jailbroken)」のステータスを有することを示すタグに基づいて無効にすることができる。別の例として、「Framehawk」HDXグラフィックスモード(例えば、帯域幅の使用およびXA/XDサーバのスケーラビリティを犠牲にして(例えば、CPUおよびメモリを犠牲にして)、WAN(例えば、待ち時間およびパケット損失が大きいことがある)を介して優れたHDXセッション対話性を提供することができる)は、XenMobileタグに基づいて有効にすることができる。例えば、そのような「Framehawk」HDXグラフィックスモードは、ユーザのデバイスが「リモートアクセス(RemoteAccess)」のステータスを有することを示すXenMobileタグに基づいて有効にすることができる。そうでなければ、デバイス上で提供されるHDXセッションは、帯域幅をほとんど使用せず且つXA/XDサーバのスケーラビリティ(例えば、ボックス上の多数のユーザを最大にすることができる)を優先するデフォルトのThinwire HDXグラフィックスモードを使用することができる。いくつかの構成では、MAM EPAは、MDM EPAよりも範囲が限定されることがある。
本開示の1つ以上の態様を実装において1つ以上の装備オプションを使用することができる。いくつかの装備オプションの例については、以下において詳細に説明される。
装備#1:XenMobileサーバ集約ストアによる統合クライアント(WorxHome)
場合によっては、本開示の態様は、装備1を表す図14に示される方法で実装されてもよい。そのような装備は、CITRIX WorxHomeが統合ストアを提供してアプリケーションのサポートを開始するときに使用することができる。この装備では、実際にHDX接続を確立するために、レシーバアプリケーションを使用することができる。代替構成では、HDX接続を確立するためにWorxHomeに埋め込まれたHDXエンジンを使用することができる。
図14に示される装備および構成では、XenMobileサーバは、StoreFrontサーバからHDXアプリケーションを集約するように構成することができる。さらに、NetScalerゲートウェイは、EPAで構成することができる。ユーザ・エージェントがウィンドウズ(登録商標)またはMAC OS Xのラップトップまたはデスクトップコンピュータ上のブラウザを提示するときに、EPAスキャンを実行するようにセッションポリシーを構成することができる。他のクライアント(例えば、モバイルデバイスやネイティブレシーバなど)の場合、NetScalerゲートウェイは、例えば、EPAタグを必要とする機密性の高いHDXアプリケーションへのアクセスがそのようなクライアントからは利用できない可能性がある場合、EPAをスキップすることができる。
さらにまた、図14に示される装備および構成において、XenAppおよび/またはXenDesktopの公開されたアプリケーションおよびセッションポリシーは、スマートアクセス(例えば、アプリケーションの可用性またはセッション体験は、EPAに基づいて制限することができる)に対して適切に構成することができる。さらに、特定のトリガ(例えば、ユーザトリガ、デバイストリガ、アプリケーショントリガなど)に基づいて、デバイスをコンプライアンス違反とマークするようにXenMobile自動アクションを構成することができる。
図14に示される装備および構成では、動作の例示的なランタイムシーケンスは、以下のように発生することができる。第1に、WorxHomeは、XenMobileにアプリケーションの列挙を要求することができる。第2に、StoreFrontに対して列挙リクエストを行うとき、XenMobileは、プログラム隣接エージェント(PNA)プロトコルリクエスト(例えば、HTTPヘッダとして)にデバイスコンプライアンスタグを注入することができる。これらのタグは、XenMobileサーバ上の署名証明書を使用して署名することができる。第3に、StoreFrontは、これらのタグの署名を検証し、NFuseプロトコル一覧表リクエストを介してタグをXA/XDに中継することができる。第4に、XA/XDは、提供されたユーザコンテキストおよびタグに基づいてアプリケーションをフィルタリングすることができ、アプリケーションの詳細をWHに返送する(例えば、StoreFrontおよびXenMobileを介して)ことができる。
第5に、ユーザがアプリケーションを起動すると、起動リクエストは、同じ経路を介してXA/XDに送信することができる(例えば、WH→XenMobile→StoreFront→XA/XD)。コンプライアンスタグは、PNA起動リクエストをStoreFrontに行う前に、XenMobileによって挿入することができる。起動が許可された場合、起動情報(例えば、ICAファイルで具現化することができる)がWHに送信することができる。第6に、XA/XDは、(例えば、リモートHDXウィンドウズ(登録商標)セッションとすることができる)リモートHDXセッションが形成されるときに使用されることになるログオンチケットとともにタグを保存することができるリモートHDXセッション(例えば、リモートHDXウィンドウズ(登録商標)セッション)開始中に、タグは、適用可能なセッションポリシーを判定するために使用することができる。
装備#2:それぞれ独自のストアを有する別個のWorxHomeおよびレシーバクライアント
場合によっては、本開示の態様は、装備2を表す図15に示される方法で実装することができる。そのような装備は、CITRIX WorxHomeが、MAM/MDM登録エージェントおよびモバイルアプリケーション用のストアとしてのみ使用される場合に使用することができる。これらの場合では、レシーバは、HDXアプリケーションのストアおよびプレーヤとして使用することができる。さらに、コンプライアンスタグは、クライアントアプリケーション間で直接交換することができる。
この装備の代替構成では、レシーバは、モバイルアプリケーションのストアとすることもできる。すなわち、この代替構成では、レシーバは、モバイルアプリケーションおよびHDXアプリケーションの双方のクライアント集約ストアを含むことができ、それぞれXenMobileおよびStoreFrontサーバの双方と通信することができる。この代替構成では、MAM/MDM登録エージェントとしてのWorxHomeとレシーバとの間でコンプライアンスタグを伝送する必要があるかもしれない。
図15に示される装備および構成では、XenMobileサーバは、StoreFrontサーバからHDXアプリケーションを集約するように構成されていない可能性がある。NetScalerゲートウェイは、EPAで構成することができる。セッションポリシーは、ユーザ・エージェントがウィンドウズ(登録商標)またはMAC OS Xのラップトップまたはデスクトップコンピュータ上のブラウザを示すとき、にEPAスキャンを実行するように構成することができる。他のクライアント(例えば、モバイルデバイスやネイティブレシーバなど)の場合、NetScalerゲートウェイは、例えば、EPAタグを必要とする機密性の高いHDXアプリケーションへのアクセスがそのようなクライアントからは利用できない可能性がある場合、EPAをスキップすることができる。
さらにまた、図15に示される装備および構成において、XenAppおよび/またはXenDesktopの公開されたアプリケーションおよびセッションポリシーは、スマートアクセス(例えば、アプリケーションの可用性またはセッション体験は、EPAに基づいて制限することができる)に対して適切に構成することができる。さらに、特定のトリガ(例えば、ユーザトリガ、デバイストリガ、アプリケーショントリガなど)に基づいて、デバイスをコンプライアンス違反とマークするようにXenMobile自動アクションを構成することができる。
図15に示される装備および構成では、管理者は、XenMobile上で以下の設定のいずれかまたは双方を実行する必要がある。第1に、MDMに登録されるデバイスの場合、レシーバネイティブアプリケーションがデバイスにコンプライアンスステータスをプッシュするように、アプリケーション・プロパティを構成する必要がある。このプロパティのフォーマットは、判定されることになる(例えば、1つの長いプロパティまたは複数のプロパティ)。さらに、この機能は、MDMのみの装備に対するサポートを行うこともできるが、ラップされたレシーバおよび/または管理対象レシーバ(例えば、XMアプリケーション用レシーバ)を使用する必要がある場合がある。第2に、MDMに登録されないデバイスの場合、管理者は、XenMobile管理対象アプリケーションとして、ラップされたレシーバアプリケーションおよび/または管理対象レシーバアプリケーションを公開する必要がある場合がある。
図15に示される装備および構成では、動作の例示的なランタイムシーケンスは、以下のように発生することができる。第1に、レシーバは、モバイルデバイス(MDMまたはMAMを介して)にインストールすることができる。第2に、XenMobileは、デバイスのデバイスコンプライアンスステータスを判定し、以下のいずれかの機構を使用して、この情報をモバイルデバイスに対し利用可能とすることができる:(1)MDMを介したアプリケーション・プロパティのプッシュ;(2)デバイスコンプライアンスステータスをXMに問い合わせてそれをMDXボールトに保存するWH。コンプライアンスステータスは、[タグ、タイムスタンプ、および署名]から構成することができる。タイムスタンプおよび署名は、リプレイ攻撃および偽造攻撃をそれぞれ防止するために使用することができる。署名は、XMSサーバにインストールされている証明書の秘密鍵を使用して作成することができる。
第3に、レシーバは、コンプライアンスステータスを示すアプリケーション・プロパティが存在するかどうかをチェックすることができる。そうでない場合、レシーバは、MDXボールト(存在する場合)を調べてコンプライアンスステータスをチェックすることができる。列挙リクエストをStoreFrontに行うとき、レシーバは、配信サービスリクエストにデバイスコンプライアンスタグを含むことができる。
第4に、StoreFrontは、それにインストールされている証明書の公開鍵(例えば、XMサーバ上に存在する秘密鍵に対応する)を使用して署名を検証することができる。そして、StoreFrontは、NFuse一覧表リクエストを介してこれらのタグをXA/XDに中継することができる。第5に、XA/XDは、提供されたユーザコンテキストおよびタグに基づいてアプリケーションをフィルタリングすることができ、アプリケーションの詳細は、StoreFrontを介してレシーバに返送することができる。第6に、ユーザがアプリケーションを起動すると、起動リクエストは、同じ経路を介してXA/XDに送信することができる(例えば、レシーバ→StoreFront→XA/XD)。コンプライアンスタグは、配信サービスがStoreFrontにリクエストを開始する前にレシーバによって挿入することができる。起動が許可された場合、起動情報(例えば、ICAファイルで具現化することができる)をレシーバに送信することができる。第7に、XA/XDは、リモートHDXセッション(例えば、リモートHDXウィンドウズ(登録商標)セッションとすることができる)が形成されるときに使用することになるログオンチケットとともにタグを保存することができる。(例えば、リモートHDXウィンドウズ(登録商標)セッション開始とすることができる)リモートHDXセッション開始中に、タグは、適用可能なセッションポリシーを判定するために使用することができる。
装備#2に対する代替設計:XenMobileサーバは、StoreFrontサーバにデバイスIDおよびコンプライアンスタグを提供する
場合によっては、本開示の態様は、上述した同じ装備2において適用可能なより高度な設計を表す図16に示される方法で実装することができる。この代替設計では、WorxHomeおよびレシーバは、デバイスIDを共有し、XenMobileサーバおよびStoreFrontサーバにそれぞれ通信することができる。そして、XenMobileサーバは、コンプライアンスタグとともにデバイスIDをStoreFrontサーバに提供することができる。したがって、コンプライアンスタグは、サーババックエンドを介して共有することができ、一致したデバイスIDに基づいて特定のレシーバインスタンスに関連付けることができる。
この設計は、いくつかの利点を有する。例えば、1つの利点は、コンプライアンスタグがモバイルデバイスと直接交換しない可能性があり、それゆえに潜在的な攻撃面を低減するため、セキュリティである。別の一つの利点は、デバイスIDのみがサーバと交換する可能性があるため、クライアントおよびプロトコル実装の単純性である。しかしながら、XenMobileサーバからStoreFrontサーバへのデバイスIDおよびコンプライアンスタグの通信を設定する際に複雑さが増えることがある。
図16に示すように、それぞれが独自のストアを有する別個のWorxHomeおよびレシーバクライアントアプリケーションを提供することができる。デバイスIDは、クライアントアプリケーション間で共有することができる。さらに、XenMobileサーバは、デバイスIDおよびコンプライアンスタグをStoreFrontサーバに提供することができる。
図16に示される装備および構成では、動作の例示的なランタイムシーケンスは、以下のように発生することができる。第1に、WorxHomeおよびレシーバは、双方とも、MACアドレスまたは2つのアプリケーション間で共有される自律的に生成された永続的秘密など、固有のデバイスIDを取得することができる。MAM専用モードでは、固有のデバイスIDは、MDXボールトまたは共有秘密ボールト(SSV)または他のAPIを介して取得することができる。MDM専用モードでは、固有のデバイスIDは、WHまたはXMSのいずれかによって生成され、交換することができる。そして、それは、MDMプロパティを介してレシーバにプッシュすることができる。MDM+MAMモードでは、上記のこれらの機構のいずれかを使用することができる。
第2に、双方のアプリケーションは、固有のデバイスIDをサーバに通信することができる。例えば、WHは、既存の配信サービスプロトコルを拡張するためにXMSと通信することができる(例えば、WHからXMS)。さらに、レシーバは、既存の配信サービスプロトコルを拡張するためにSFと通信することができる(例えば、レシーバからSF)。
第3に、SFは、デバイスIDに基づいてXMSからコンプライアンスタグを照会することができる。例えば、SFは、XMSを呼び出して、デバイスIDがSFに対して認証されたユーザに属するかどうかをチェックすることができ、コンプライアンスタグを取得することができる。これは、XMSとSFとの間に認証されたコネクタが構築される必要がある場合がある。XenMobileデバイスマネージャのRESTウェブサービスAPIは、デバイスIDデータを抽出するために利用することができる。あるいは、SFがXMSに照会するために新たなAPIを構築することができる。APIは、公開鍵/秘密鍵暗号に基づいて保護することができる。
第4に、SFは、コンプライアンスタグをレシーバのHDXアプリケーション列挙および起動リクエストに割り当てるおよび/または適用することができる。そして、それは、NFuse列挙リクエストを介して、これらのタグをXA/XDに中継することができる。第5に、XA/XDは、提供されたユーザコンテキストおよびタグに基づいてアプリケーションをフィルタリングすることができ、アプリケーションの詳細は、StoreFrontを介してレシーバに返送することができる。
第6に、ユーザがアプリケーションを起動すると、起動リクエストを同じ経路を介してXA/XDに送信することができる(例えば、レシーバ→StoreFront→XA/XD)。コンプライアンスタグは、配信サービスがStoreFrontにリクエストを開始する前にレシーバによって挿入することができる。起動が許可された場合、起動情報(例えば、ICAファイルで具現化することができる)をレシーバに送信することができる。
第7に、XA/XDは、リモートHDXセッション(例えば、リモートHDXウィンドウズ(登録商標)セッションであってもよい)が形成されるときに、使用することになるログオンチケットとともにタグを保存することができるリモートHDXセッション開始中(例えば、リモートHDXウィンドウズ(登録商標)セッション開始であってもよい)に、タグは、適用可能なセッションポリシーを判定するために使用することができる。
本開示の1つ以上の態様を実装する際に、以下の表に含まれる1つ以上の技術的オプションを利用することができる。
本開示の態様は、ウェブアプリケーション、ネットワークおよび/またはクラウドベースリソースに対するアクセスまたはその特徴を選択的に制限するために適用することができる。それに加えてまたはそれに代えて、本開示の態様は、例えば、Citrix XenApp/XenDesktop、Citrixセキュアブラウザサービス、共有ファイル、および/またはGoToプロダクツなど、クライアント−サーバ通信または直接クライアント−クライアント通信を含む任意の製品で使用することができる。
図17は、本明細書に記載された1つ以上の例示的な態様にかかる、ホストされたアプリケーションに対するスマートアクセスをモバイルデバイスに提供する方法を示している。ある実施形態では、図17に示される方法は、図1−図6に関連して上述したコンピュータシステムアーキテクチャ、リモートアクセスシステムアーキテクチャ、仮想化(ハイパーバイザ)システムアーキテクチャ、クラウドベースシステムアーキテクチャ、および/または企業モビリティ管理システムのうちの1つ以上の要素を組み込む、利用するおよび/または含むコンピューティングプラットフォームによって実行することができる。例えば、図17に示される方法は、少なくとも1つのプロセッサ、メモリ、および通信インターフェースを有するコンピューティングプラットフォームによって実行することができる。ステップ1705において、コンピューティングプラットフォームは、通信インターフェースを介して、モバイルデバイスからエンドポイント分析情報を受信することができる。ステップ1710において、コンピューティングプラットフォームは、1つ以上のスマートアクセスポリシーおよびモバイルデバイスから受信したエンドポイント分析情報に基づいて、ホストされた高解像度体験(HDX)アプリケーションまたは1つ以上の特定のHDXセッション機能の可用性をモバイルデバイスに対して制限するかどうかを判定することができる。ステップ1715において、コンピューティングプラットフォームは、ホストされたHDXアプリケーションまたは1つ以上の特定のHDXセッション機能の可用性をモバイルデバイスに対して制限する判定に基づいて、ホストされたHDXアプリケーションまたは1つ以上の特定のHDXセッション機能の可用性をモバイルデバイスに対して制限することができる。
図18は、本明細書に記載された1つ以上の例示的な態様に従って、ホストされたアプリケーションへのスマートアクセスが登録されたデバイスに提供するための例示的なコンピューティング環境を示している。図18を参照すると、コンピューティング環境1800は、仮想化サーバインフラストラクチャ1810、企業モビリティ管理サーバ1820、ユーザデバイス1830、およびネットワーク1850を含むことができる。仮想化サーバインフラストラクチャ1810、企業モビリティ管理サーバ1820、およびユーザデバイス1830は、1つ以上のプロセッサ、メモリ、通信インターフェース、および/または同様のものなどの1つ以上の物理コンポーネントを含むことができる。さらに、仮想化サーバインフラストラクチャ1810は、上述した仮想化サーバおよび/または他の仮想化インフラストラクチャのうちの1つ以上の態様を含む、組み込む、および/または実装することができる。企業モビリティ管理サーバ1820は、上述した企業システムおよび/または管理サーバのうちの1つ以上の態様を含む、組み込む、および/または実装することができる。ユーザデバイス1830は、上述したクライアントデバイス、モバイルデバイス、および/またはユーザデバイスのうちの1つ以上の態様を含む、組み込む、および/または実装することができる。
例えば、仮想化サーバインフラストラクチャ1810は、少なくとも1つのプロセッサ1811、少なくとも1つのメモリ1812、および少なくとも1つの通信インターフェース1816を含むことができる。プロセッサ1811は、企業アプリケーションストア(例えば、1つ以上の登録されたデバイスおよび/または企業に関連する他のデバイスに対して)を仮想化サーバインフラストラクチャ1810に提供することをもたらす1つ以上のアプリケーション、1つ以上の仮想化されたおよび/またはホストされたアプリケーションセッション、および/または1つ以上の仮想化されたおよび/またはホストされたデスクトップセッションを含む、オペレーティングシステムおよび/または1つ以上のアプリケーションの実行などの1つ以上の機能を、仮想化サーバインフラストラクチャ1810が実行することをもたらすためのメモリ1812に記憶された命令を実行することができる。メモリ1812は、企業アプリケーションストアモジュール1813(例えば、仮想化サーバインフラストラクチャ1810の1つ以上の態様を組み込むことができる、および/または上述した例においてCITRIX StoreFrontと同様の機能を仮想化サーバインフラストラクチャに提供することができる)を記憶することができる。さらに、メモリ1812は、アプリケーション仮想化モジュール1814(例えば、仮想化サーバインフラストラクチャ1810の1つ以上の態様を組み込むことができる、および/または上述した例においてCITRIX XenAppと同様の機能を仮想化サーバインフラストラクチャに提供することができる)を記憶することができる。メモリ1812はまた、デスクトップ仮想化モジュール1815(例えば、仮想化サーバインフラストラクチャ1810の1つ以上の態様を組み込むことができる、および/または上述した例においてCITRIX XenDesktopと同様の機能を仮想化サーバインフラストラクチャに提供することができる)を記憶することができる。通信インターフェース1816は、仮想化サーバインフラストラクチャ1810が、企業モビリティ管理サーバ1820、ユーザデバイス1830、および/または1つ以上の他のシステムおよび/またはデバイスなど、コンピューティング環境1800内の1つ以上の他のシステムおよび/またはデバイスと通信することができる1つ以上のネットワークインターフェースを含むことができる。
企業モビリティ管理サーバ1820は、少なくとも1つのデバイス登録システム1821および少なくとも1つのポリシー実行システム1822を含むおよび/または提供することができる。デバイス登録システム1821は、1つ以上のポリシー実行スキーム(例えば、企業組織に関連付けられ、企業モビリティ管理サーバ1820を使用して1人以上の管理者によって実装および/または管理することができる)にユーザデバイス1830および/または1つ以上の他のユーザデバイスなどの1つ以上のユーザデバイスを、企業モビリティ管理サーバ1820が登録することを可能にするおよび/または企業モビリティ管理サーバに登録することができる。ポリシー実行システム1822は、ユーザデバイス1830および/または1つ以上の他のユーザデバイスなどの1つ以上の登録ユーザデバイスにおいて1つ以上の企業ポリシーを企業モビリティ管理サーバ1820が実行するのを可能にするおよび/または実行することをもたらすことができる。ポリシー実行システム1822および企業モビリティ管理サーバ1820によって1つ以上の登録されたユーザデバイス上で実行することができる1つ以上の企業ポリシーは、ポリシー実行システム1822および/または企業モビリティ管理サーバ1820(例えば、1つ以上の登録されたユーザモバイルデバイスを含む1つ以上の管理対象デバイスに関して)によって定義して、適用して、実行して、更新して、無効にして、および/または制御することができる1つ以上のモバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルコンテンツ管理ポリシー、および/または他の企業ポリシーを含むことができる。
ユーザデバイス1830は、1つ以上のネイティブアプリケーション1831およびクライアントエージェント1832を含むおよび/または提供することができる。1つ以上のネイティブアプリケーション1831は、上述したネイティブアプリケーションのうちの1つ以上の態様(例えば、ネイティブアプリケーション610)を含む、組み込む、および/または実装することができる。さらに、クライアントエージェント1832は、上述したクライアントエージェントのうちの1つ以上の態様(例えば、クライアントエージェント604)を含む、組み込む、および/または実装することができる。ネットワーク1850は、1つ以上のローカルエリアネットワーク、ワイドエリアネットワーク、パブリックネットワーク、プライベートネットワーク、および/またはサブネットワークを含むことができ、仮想化サーバインフラストラクチャ1810、企業モビリティ管理サーバ1820、およびユーザデバイス1830を相互接続することができる。
図19Aおよび図19Bは、本明細書に記載された1つ以上の例示的な態様にかかる、ホストされたアプリケーションに対するスマートアクセスを登録されたデバイスに提供するための例示的なイベントシーケンスを示している。図19Aを参照すると、ステップ1901において、ユーザデバイス1830は、企業モビリティ管理サーバ1820に登録することができる。例えば、ステップ1901において、ユーザデバイス1830は、企業モビリティ管理サーバ1820によって実装することができる企業モバイルデバイス管理、モバイルアプリケーション管理、および/または他のポリシー実行スキームに登録するために、企業モビリティ管理サーバ1820とデータを送信、受信、および/または交換することができる。場合によっては、ユーザデバイス1830の登録中に、企業モビリティ管理サーバ1820は、後続の動作におけるユーザデバイス1830の識別を容易にするために、企業モビリティ管理サーバ1820によって記憶および/または維持することができるおよび/または1つ以上の他のシステムおよび/またはデバイス(例えば、ユーザデバイス1830、仮想化サーバインフラストラクチャ1810)に送信することができるユーザデバイス1830についての固有のデバイス識別子を生成することができる。
ステップ1902において、企業モビリティ管理サーバ1820は、ユーザデバイス1830のエンドポイント分析を開始することができる。例えば、企業モビリティ管理サーバ1820は、ユーザデバイス1830が企業モビリティ管理サーバ1820によって実行することができる1つ以上のポリシーに適合しているかどうかを判定するために、企業モビリティ管理サーバ1820によって分析および/または評価することができるステータス情報を提供するようにユーザデバイス1830に要求および/または照会することができる。場合によっては、企業モビリティ管理サーバ1820は、単純なエンドポイント分析を実行することができる(例えば、上述したように、ユーザデバイス1830がユーザデバイス1830に適用可能であり且つ企業モビリティ管理サーバ1820によってユーザデバイス1830上で実行されるポリシーのセットに完全に適合しているかどうかを単に判定することができる)一方で、他の場合では、企業モビリティ管理サーバ1820は、リッチエンドポイント分析を実行することができる(例えば、上述したように、ユーザデバイス1830に適用可能であり且つ企業モビリティ管理サーバ1820によってユーザデバイス1830上で実行されるポリシーのセットに含まれる各ポリシーに関して、ユーザデバイス1830がポリシーのセットに含まれる各特定のポリシーに適合しているかどうか個別に判定することができる)。
ステップ1903において、企業モビリティ管理サーバ1820は、(例えば、ステップ1902においてユーザデバイス1830のエンドポイント分析を開始および/または実行することに基づいて)ユーザデバイス1830についての1つ以上のコンプライアンスタグを生成することができる。場合によっては、1つ以上のコンプライアンスタグは、ユーザデバイス1830がユーザデバイス1830に適用可能であり且つ企業モビリティ管理サーバ1820によって、ユーザデバイス1830上で実行するポリシーのセットに適合しているかどうかおよび/またはその旨を示すことができる。さらに、(1つ以上のコンプライアンスタグは、場合によっては、企業モビリティ管理サーバ1820の署名証明書を使用して企業モビリティ管理サーバ1820によって署名することができる。)
ステップ1904において、企業モビリティ管理サーバ1820は、1つ以上のコンプライアンスタグ(例えば、ステップ1903において企業モビリティ管理サーバ1820によって生成された1つ以上のコンプライアンスタグ)を1つ以上の受信システムおよび/またはデバイスに送信することができる。場合によっては、企業モビリティ管理サーバ1820は、上述した例示的な装備モデルのうちの1つ以上に関連して、上述したように登録されたユーザデバイス(例えば、ユーザデバイス1830)に1つ以上のコンプライアンスタグを送信することができる。それに加えてまたはその代わりに、企業モビリティ管理サーバ1820は、上述した他の例示的な装備モデルのうちの1つ以上に関連して上述したように仮想化インフラストラクチャ(例えば、仮想化サーバインフラストラクチャ1810)に1つ以上のコンプライアンスタグを送信することができる。
図19Bを参照すると、ステップ1905において、仮想化サーバインフラストラクチャ1810は、登録されたユーザデバイス(例えば、ユーザデバイス1830)からのホストされたアプリケーションセッション、ホストされたデスクトップセッション、または他のホストされたセッションのリクエストを受信することができる。そのようなリクエストは、ユーザデバイス1830上で実行される企業ポータルクライアントおよび/またはレシーバアプリケーション(例えば、上述した例のように、CITRIX WorxHome、CITRIXレシーバなど)を使用して開始することができる。それに加えてまたはその代わりに、そのようなリクエストは、仮想化サーバインフラストラクチャ1810によって提供される企業アプリケーションストア(例えば、上述した例のように、CITRIX StoreFront)を介して受信されてもよい。
ステップ1906において、仮想化サーバインフラストラクチャ1810は、ホストされたセッションを要求する登録されたユーザデバイス(例えば、ユーザデバイス1830)に関連する1つ以上のコンプライアンスタグおよび/またはホストされたセッションを要求する登録されたユーザデバイス(例えば、ユーザデバイス1830)に関連する他のエンドポイント分析情報を受信することができる。例えば、ステップ1906において、仮想化サーバインフラストラクチャ1810は、通信インターフェース(例えば、通信インターフェース1816)を介して、登録されたデバイス(例えば、ユーザデバイス1830)に関連するエンドポイント分析情報を受信することができる。場合によっては、仮想化サーバインフラストラクチャ1810は、登録されたユーザデバイス(例えば、上述した例示的な装備モデルのうちの1つ以上に関連して上述したユーザデバイス1830)からの、1つ以上のコンプライアンスタグおよび/または他のエンドポイント分析情報を受信することができる一方で、別の場合では、仮想化サーバインフラストラクチャ1810は、企業管理サーバ(例えば、上述した他の例示的な装備モデルのうちの1つ以上に関連して上述した企業モビリティ管理サーバ1820)から、登録されたユーザデバイスからの1つ以上のコンプライアンスタグおよび/または他のエンドポイント分析情報を受信することができる。仮想化サーバインフラストラクチャ1810が、企業モビリティ管理サーバ1820から、登録されたユーザデバイスからの1つ以上のコンプライアンスタグおよび/または他のエンドポイント分析情報を受信する場合、仮想化サーバインフラストラクチャ1810は、登録されたデバイス(例えば、ユーザデバイス1830)に割り当てることができ且つ仮想化サーバインフラストラクチャ1810から受信したコンプライアンスタグおよび/または他のエンドポイント分析情報とともに、仮想化サーバインフラストラクチャ1810によって受信した固有の識別子に基づいて、受信したコンプライアンスタグおよび/または他のエンドポイント分析情報と、受信したコンプライアンスタグおよび/または他のエンドポイント分析情報が関連する特定の登録されたデバイス(例えば、ユーザデバイス1830)との相関をとることができる。
ある実施形態では、登録されたデバイスに関連するエンドポイント分析情報を受信することは、登録されたデバイスから登録されたデバイスに関連するエンドポイント分析情報を受信することを含むことができる。例えば、登録されたデバイス(例えば、ユーザデバイス1830)に関連するエンドポイント分析情報を受信する際に、仮想化サーバインフラストラクチャ1810は、登録されたデバイス(例えば、ユーザデバイス1830)から、登録されたデバイス(例えば、ユーザデバイス1830)に関連付けられたエンドポイント分析情報を受信することができる。
ある実施形態では、登録されたデバイスに関連するエンドポイント分析情報を受信することは、企業モビリティ管理サーバから登録されたデバイスに関連するエンドポイント分析情報を受信することを含むことができる。例えば、登録されたデバイス(例えば、ユーザデバイス1830)に関連するエンドポイント分析情報を受信する際に、仮想化サーバインフラストラクチャ1810は、企業モビリティ管理サーバ(例えば、企業モビリティ管理サーバ1820)から、登録されたデバイス(例えば、ユーザデバイス1830)に関連付けられたエンドポイント分析情報を受信することができる。
ある実施形態では、登録されたデバイスは、登録されたデバイスに関連するエンドポイント分析情報が受信される前に、企業モビリティ管理サーバによって実装される少なくとも1つのポリシー実行スキームに登録されたデバイスを登録するために、企業モビリティ管理サーバによって登録することができる。例えば、登録されたデバイス(例えば、ユーザデバイス1830)は、登録されたデバイス(例えば、ユーザデバイス1830)に関連するエンドポイント分析情報が受信される前に、企業モビリティ管理サーバ(例えば、企業モビリティ管理サーバ1820)によって実装される少なくとも1つのポリシー実行スキームに登録されたデバイス(例えば、ユーザデバイス1830)を登録するために、企業モビリティ管理サーバ(例えば、企業モビリティ管理サーバ1820)によって登録することができる。
ある実施形態では、登録されたデバイスに関連するエンドポイント分析情報を受信することは、登録されたデバイスに関連する固有のデバイス識別子を受信することを含むことができ、登録されたデバイスに関連する固有のデバイス識別子は、企業モビリティ管理サーバによって実装された少なくとも1つのポリシー実行スキームにおける登録されたデバイスの登録中に企業モビリティ管理サーバによって生成することができる。例えば、登録されたデバイス(例えば、ユーザデバイス1830)に関連するエンドポイント分析情報を受信する際に、仮想化サーバインフラストラクチャ1810は、登録されたデバイス(例えば、ユーザデバイス1830)に関連する固有のデバイス識別子を受信することができる。さらに、登録デバイス(例えば、ユーザデバイス1830)に関連する固有のデバイス識別子は、企業モビリティ管理サーバ(例えば、企業モビリティ管理サーバ1820)によって実装される少なくとも1つのポリシー実行スキームにおける登録デバイス(例えば、ユーザデバイス1830)の登録中に企業モビリティ管理サーバ(例えば、企業モビリティ管理サーバ1820)によって生成することができる。
ある実施形態では、登録されたデバイスに関連するエンドポイント分析情報を受信することは、登録されたデバイスについて企業モビリティ管理サーバによって生成された1つ以上のコンプライアンスタグを受信することを含むことができる。例えば、登録されたデバイス(例えば、ユーザデバイス1830)に関連するエンドポイント分析情報を受信する際に、仮想化サーバインフラストラクチャ1810は、登録されたデバイス(例えば、ユーザデバイス1830)についての企業モビリティ管理サーバ(例えば、企業モビリティ管理サーバ1820)によって生成された1つ以上のコンプライアンスタグを受信することができる。例えば、仮想化サーバインフラストラクチャ1810は、企業モビリティ管理サーバ1820によってユーザデバイス1830上で実行されるエンドポイント分析に基づいて、ステップ1906において、ユーザデバイス1830についての企業モビリティ管理サーバ1820によって生成された1つ以上のコンプライアンスタグを受信することができる。
場合によっては、1つ以上のコンプライアンスタグは、モバイルデバイス管理(MDM)ポリシー実行スキームに基づいて、登録されたデバイスについて企業モビリティ管理サーバによって生成されてもよい。例えば、1つ以上のコンプライアンスタグは、モバイルデバイス管理(MDM)ポリシー実行スキーム(例えば、企業モビリティ管理サーバ1820によって実装されてもよい)に基づいて、登録されたデバイス(例えば、ユーザデバイス1830)のために企業モビリティ管理サーバ(例えば、企業モビリティ管理サーバ1820)によって生成されてもよい。
場合によっては、1つ以上のコンプライアンスタグは、モバイルアプリケーション管理(MAM)ポリシー実行スキームに基づいて、登録されたデバイスについて企業モビリティ管理サーバによって生成されてもよい。例えば、1つ以上のコンプライアンスタグは、(例えば、企業モビリティ管理サーバ1820によって実装されてもよい)モバイルアプリケーション管理(MAM)ポリシー実行スキームに基づいて、登録されたデバイス(例えば、ユーザデバイス1830)のために企業モビリティ管理サーバ(例えば、企業モビリティ管理サーバ1820)によって生成されてもよい。
場合によっては、1つ以上のコンプライアンスタグは、モバイルコンテンツ管理(MCM)ポリシー実行スキームに基づいて、登録されたデバイスについて企業モビリティ管理サーバによって生成されてもよい。例えば、1つ以上のコンプライアンスタグは、(例えば、企業モビリティ管理サーバ1820によって実装されてもよい)モバイルコンテンツ管理(MCM)ポリシー実行スキームに基づいて、登録されたデバイス(例えば、ユーザデバイス1830)のために企業モビリティ管理サーバ(例えば、企業モビリティ管理サーバ1820)によって生成されてもよい。
ステップ1907において、仮想化サーバインフラストラクチャ1810は、ホストされたセッション(例えば、1つ以上のスマートアクセスポリシーに基づいて、ユーザデバイス1830についてのホストされたアプリケーション機能を選択的に有効にするかまたは無効にするかを判定するために)を要求する登録されたユーザデバイス(例えば、ユーザデバイス1830)に関連する1つ以上のコンプライアンスタグおよび/またはホストされたセッションを要求する登録されたユーザデバイス(例えば、ユーザデバイス1830)に関連する他のエンドポイント分析情報を分析することができる。例えば、ステップ1907において、仮想化サーバインフラストラクチャ1810は、登録されたデバイス(例えば、ユーザデバイス1830)に関連するエンドポイント分析情報を分析し、1つ以上のスマートアクセスポリシーに基づいて、ホストされたアプリケーション機能を選択的に有効にするかまたは無効にするかを判定することができる。1つ以上のスマートアクセスポリシーは、例えば、管理者によって定義および/または更新されてもよく、仮想化サーバインフラストラクチャ1810および/または企業モビリティ管理サーバ1820によって維持されてもよい。さらに、1つ以上のスマートアクセスポリシーは、例えば、ホストされたセッションで特定の機能(例えば、上記例において説明した「Framehawk」高解像度グラフィックスモードなど)を選択的に有効にする状況および/またはホストされたセッションで特定の機能(例えば、上記例において説明したコピーアンドペースト機能、印刷機能、および/またはローカルドライブマッピング機能など)を選択的に無効にする状況を定義することができる。
ある実施形態では、登録されたデバイスに関連するエンドポイント分析情報を分析して1つ以上のスマートアクセスポリシーに基づいて、ホストされたアプリケーション機能を選択的に有効にするかまたは無効にするかを判定することは、完全なホストされたアプリケーション機能を有効にするように判定することを含むことができる。例えば、1つ以上のスマートアクセスポリシーに基づいて、ホストされたアプリケーション機能を選択的に有効にするかまたは無効にするかを判定するために登録されたデバイス(例えば、ユーザデバイス1830)に関連するエンドポイント分析情報を分析する際に、仮想化サーバインフラストラクチャ1810は、完全なホストされたアプリケーション機能(例えば、完全なホストされたアプリケーション機能を許可するように1つ以上のスマートアクセスポリシーで指定された1つ以上の状況に一致した登録されたユーザデバイス(例えば、ユーザデバイス1830)に関連する1つ以上のコンプライアンスタグに基づいて)を有効にするように判定することができる。
ある実施形態では、登録されたデバイスに関連するエンドポイント分析情報を分析して1つ以上のスマートアクセスポリシーに基づいて、ホストされたアプリケーション機能を選択的に有効にするかまたは無効にするかを判定することは、部分的なホストされたアプリケーション機能を有効にするように判定することを含むことができる。例えば、1つ以上のスマートアクセスポリシーに基づいてホストされたアプリケーション機能を選択的に有効にするかまたは無効にするかを判定するために登録されたデバイス(例えば、ユーザデバイス1830)に関連するエンドポイント分析情報を分析する際に、仮想化サーバインフラストラクチャ1810は、部分的なホストされたアプリケーション機能(例えば、部分的なホストされたアプリケーション機能を許可するおよび/または要求するように1つ以上のスマートアクセスポリシーで指定された1つ以上の状況に一致した登録されたユーザデバイス(例えば、ユーザデバイス1830)に関連する1つ以上のコンプライアンスタグに基づいて)を有効にするように判定することができる。
ある実施形態では、登録されたデバイスに関連するエンドポイント分析情報を分析して1つ以上のスマートアクセスポリシーに基づいて、ホストされたアプリケーション機能を選択的に有効にするかまたは無効にするかを判定することは、部分的なホストされたアプリケーション機能を無効にするように判定することを含むことができる。例えば、1つ以上のスマートアクセスポリシーに基づいてホストされたアプリケーション機能を選択的に有効にするかまたは無効にするかを判定するために登録されたデバイス(例えば、ユーザデバイス1830)に関連するエンドポイント分析情報を分析する際に、仮想化サーバインフラストラクチャ1810は、部分的なホストされたアプリケーション機能(例えば、無効にされるべき特定のホストされたアプリケーション機能を要求するように1つ以上のスマートアクセスポリシーで指定された1つ以上の状況に一致した登録されたユーザデバイス(例えば、ユーザデバイス1830)に関連する1つ以上のコンプライアンスタグに基づいて)を無効にするように判定することができる。
ある実施形態では、登録されたデバイスに関連するエンドポイント分析情報を分析して1つ以上のスマートアクセスポリシーに基づいてホストされたアプリケーション機能を選択的に有効にするかまたは無効にするかを判定することは、完全なホストされたアプリケーション機能を無効にするように判定することを含むことができる。例えば、1つ以上のスマートアクセスポリシーに基づいて、ホストされたアプリケーション機能を選択的に有効にするかまたは無効にするかを判定するために登録されたデバイス(例えば、ユーザデバイス1830)に関連するエンドポイント分析情報を分析する際に、仮想化サーバインフラストラクチャ1810は、完全なホストされたアプリケーション機能(例えば、無効にされるべき完全なホストされたアプリケーション機能を要求するように1つ以上のスマートアクセスポリシーで指定された1つ以上の状況に一致した登録されたユーザデバイス(例えば、ユーザデバイス1830)に関連する1つ以上のコンプライアンスタグに基づいて)を無効にするように判定することができる。これらの場合では、仮想化サーバインフラストラクチャ1810は、ユーザデバイス1830がホストされたセッションに完全にアクセスするのを防止および/または制限することができ、および/または第1のインスタンスのユーザデバイス1830のホストされたセッションを起動しない可能性がある。
ステップ1908において、仮想化サーバインフラストラクチャ1810は、登録されたユーザデバイス(例えば、ユーザデバイス1830)に関連する1つ以上のコンプライアンスタグおよび/または登録されたユーザデバイス(例えば、ユーザデバイス1830)に関連する他のエンドポイント分析情報を分析することに基づいて、ユーザデバイス1830にホストされたアプリケーション体験を提供することができる。例えば、ステップ1908において、仮想化サーバインフラストラクチャ1810は、登録されたデバイス(例えば、ユーザデバイス1830)に関連するエンドポイント分析情報を分析し、1つ以上のスマートアクセスポリシーに基づいてホストされたアプリケーション機能を選択的に有効にするかまたは無効にするかを判定することに基づいて、通信インターフェース(例えば、通信インターフェース1816)を介して、ホストされたアプリケーション体験を登録されたデバイス(例えば、ユーザデバイス1830)に提供することができる。
ユーザデバイス1830にホストされたアプリケーション体験を提供する際に、仮想化サーバインフラストラクチャ1810は、例えば、エンドポイント分析情報およびスマートアクセスポリシーに基づいて、ステップ1908において選択的に有効および/または無効にされた、ホストされたアプリケーション機能にしたがって、ユーザデバイス1830に対して1つ以上のホストされたアプリケーションおよび/またはホストされたデスクトップに関連する1つ以上の仮想化されたおよび/またはリモートのユーザインターフェースグラフィックスを生成および/または送信することができる。それに加えてまたはその代わりに、ホストされたアプリケーション体験をユーザデバイス1830に提供する際に、仮想化サーバインフラストラクチャ1810は、例えば、エンドポイント分析情報およびスマートアクセスポリシーに基づいて、ステップ1908において選択的に有効および/または無効にされた、ホストされたアプリケーション機能にしたがって、ユーザデバイス1830から受信した入力および/またはリクエストを、受信および/または処理することができる。
図20は、本明細書に記載された1つ以上の例示的な態様にかかる、ホストされたアプリケーションに対するスマートアクセスを、登録されたデバイスに提供する例示的な方法を示している。図20を参照すると、ステップ2005において、少なくとも1つのプロセッサ、通信インターフェース、およびメモリを有するコンピューティングプラットフォームは、通信インターフェースを介して、登録されたデバイスに関連するエンドポイント分析情報を受信することができる。ステップ2010において、コンピューティングプラットフォームは、登録されたデバイスに関連するエンドポイント分析情報を分析し、1つ以上のスマートアクセスポリシーに基づいて、ホストされたアプリケーション機能を選択的に有効にするかまたは無効にするかを判定することができる。ステップ2015において、コンピューティングプラットフォームは、通信インターフェースを介して、登録されたデバイスに関連するエンドポイント分析情報を分析して、1つ以上のスマートアクセスポリシーに基づいてホストされたアプリケーション機能を選択的に有効にするかまたは無効にするかを判定することに基づいて、ホストされたアプリケーション体験を登録されたデバイスに提供することができる。
上記で例示したように、本開示の様々な態様は、ホストされたアプリケーションに対するスマートアクセスをモバイルデバイスに提供することに関する。主題は、構造的特徴および/または方法論的作用に特有の文言で記載されているが、添付の特許請求の範囲に定義された主題は、必ずしも上述した特定の特徴または作用に限定されるものではないことが理解されるべきである。むしろ、上述した特定の特徴および動作は、以下の特許請求の範囲のいくつかの例示的な実装として記載される。