(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-07-27
(54)【発明の名称】レガシー仮想配信アプライアンスとともに使用するための接続リーシングシステムおよび関連方法
(51)【国際特許分類】
H04L 41/0897 20220101AFI20220720BHJP
H04L 41/40 20220101ALI20220720BHJP
【FI】
H04L41/0897
H04L41/40
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021558671
(86)(22)【出願日】2020-05-19
(85)【翻訳文提出日】2021-11-25
(86)【国際出願番号】 US2020033521
(87)【国際公開番号】W WO2020236773
(87)【国際公開日】2020-11-26
(32)【優先日】2019-05-20
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-05-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】508045099
【氏名又は名称】シトリックス・システムズ・インコーポレイテッド
【氏名又は名称原語表記】Citrix Systems,Inc.
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ゲオルギー モンチロフ
(57)【要約】
コンピューティングシステムは、パブリッシュされたリソースエンタイトルメントに基づいてパブリッシュされる接続リースを使用する仮想セッションへの接続を要求するように構成されたクライアントデバイスと、パブリッシュされたリソースエンタイトルメントを記憶および更新するように構成されたコンピューティングデバイスとを含んでよい。また、システムは、接続ディスクリプタファイルに基づいて仮想セッションへのアクセスをクライアントデバイスに提供するように構成された仮想配信アプライアンスを含んでよい。コネクタアプライアンスは、接続リースを含むクライアントデバイスから接続要求を受信し、コンピューティングデバイスに接続リースの妥当性検証を要求し、接続リースの妥当性検証に応答して、仮想配信アプライアンスに接続リースを解決し、セッション妥当性検証をクライアントデバイスに返すように構成されてよい。クライアントデバイスは、セッション妥当性検証に応答して接続ディスクリプタファイルを生成し、生成された接続ディスクリプタファイルを使用して仮想配信アプライアンスとの接続を始めるように構成されてよい。
【特許請求の範囲】
【請求項1】
方法であって、
仮想セッションを始めるために複数のクライアントデバイスからコネクタアプライアンスにおける接続要求を受信することであって、前記接続要求は、パブリッシュされたリソースエンタイトルメントに基づいてパブリッシュされる接続リースを含み、複数のクライアントデバイスのための前記パブリッシュされたリソースエンタイトルメントは、コンピューティングデバイスによって記憶および更新されることと、
前記コンピューティングデバイスから、前記コネクタアプライアンスにおける前記接続リースの妥当性検証を要求することと、
前記コンピューティングデバイスによる前記接続リースの妥当性検証に応答して、前記コネクタアプライアンスにおいて、仮想配信アプライアンスに対して前記接続リースを解決することであって、前記仮想配信アプライアンスは、接続ディスクリプタファイルに基づいて前記仮想セッションへのアクセスを前記クライアントデバイスに提供するように構成されることと、
前記仮想セッションにアクセスするために前記接続ディスクリプタファイルを準備する際に使用するために、前記コネクタアプライアンスから前記クライアントデバイスにセッション妥当性検証を返すことと、
を備える方法。
【請求項2】
前記接続ディスクリプタファイルが、前記クライアントデバイスにおいて、前記接続リースおよび前記セッション妥当性検証から生成される、請求項1に記載の方法。
【請求項3】
受信することが、前記接続リースを使用して前記コネクタアプライアンスに前記クライアントデバイスを直接的に接続することによって、前記クライアントデバイスから前記接続要求を前記コネクタアプライアンスによって受信することを備える、請求項1に記載の方法。
【請求項4】
受信することが、ゲートウェイアプライアンスを介して前記接続リースを使用して前記コネクタアプライアンスに前記クライアントデバイスを接続することによって、前記クライアントデバイスから前記接続要求を前記コネクタアプライアンスによって受信することを備える、請求項1に記載の方法。
【請求項5】
前記接続が、前記接続ディスクリプタファイルを使用して前記仮想配信アプライアンスに直接的に接続することによって前記クライアントデバイスから前記仮想配信アプライアンスに始められる、請求項1に記載の方法。
【請求項6】
前記クライアントデバイスから前記仮想配信アプライアンスへの前記接続が、前記接続ディスクリプタファイルを使用してゲートウェイアプライアンスを介して始められる、請求項1に記載の方法。
【請求項7】
前記コネクタアプライアンスにおいて、前記クライアントデバイスからの要求に応答して接続リース解決データを生成することをさらに備える、請求項1に記載の方法。
【請求項8】
前記クライアントデバイスは、ゲートウェイアプライアンスおよび他のクライアントデバイスのうちの少なくとも1つに接続リース解決データを要求するようにさらに構成される、請求項7に記載の方法。
【請求項9】
生成することは、前記接続リースおよび前記接続リース解決データのうちの少なくとも1つに基づいてテレメトリデータを生成することを備え、前記クライアントデバイスは、それに応答してセッション要求を生成することなく前記テレメトリデータを受信する、請求項7に記載の方法。
【請求項10】
前記接続リースは、前記クライアントデバイスのうちの少なくともいくつかに、前記コネクタアプライアンスを介して前記仮想配信アプライアンスを通じて前記仮想セッションへの接続を間接的に要求させるために、前記コネクタアプライアンスのネットワークアドレスを含む、請求項1に記載の方法。
【請求項11】
前記仮想配信アプライアンスは、異なるゾーンに配置された複数の仮想配信アプライアンスを備え、前記コネクタアプライアンスは、前記異なるゾーンに配置され、それらのゾーン内の仮想配信アプライアンスに割り当てられた複数のコネクタアプライアンスを備え、前記方法は、前記コネクタアプライアンスにおいて、それら自体のゾーンのための接続要求を許可するために前記コンピューティングデバイスのアベイラビリティのない異なるゾーン内の別のコネクタアプライアンスに接続要求をリダイレクトすることをさらに備える、請求項1に記載の方法。
【請求項12】
前記仮想配信アプライアンスは、異なるゾーンに配置された複数の仮想配信アプライアンスを備え、前記コネクタアプライアンスは、前記異なるゾーンに配置され、それらのゾーン内の仮想配信アプライアンスに割り当てられた複数のコネクタアプライアンスを備え、前記方法は、同じゾーン内のコネクタアプライアンスにおいて、前記ゾーンのためのリーダコネクタアプライアンスを選ぶことと、前記ゾーンのための接続要求を許可するために前記コンピューティングデバイスのアベイラビリティなしでリーダコネクタアプライアンスに受信された接続要求をリダイレクトすることをさらに備える、請求項1の方法。
【請求項13】
ゾーンのための前記リーダコネクタアプライアンスにおいて、
パブリッシュされたリソースエンタイトルメントおよび仮想セッション情報のうちの少なくとも1つを備えるローカルホストキャッシュを前記コンピューティングデバイスと同期させることと、
前記ゾーンのための接続要求を許可するために前記コンピューティングデバイスのアベイラビリティなしで接続リースを妥当性検証し、仮想配信アプライアンスへの接続リースを解決し、前記クライアントデバイスに前記セッション妥当性検証を返すことと、
をさらに備える、請求項12に記載の方法。
【請求項14】
前記コネクタアプライアンスにおいて、前記クライアントデバイスを、それらの接続リース内で前記コンピューティングデバイスのアベイラビリティなしで次のオプションに進むように向けることをさらに備える、請求項1に記載の方法。
【請求項15】
コンピューティングシステムであって、
パブリッシュされたリソースエンタイトルメントに基づいてパブリッシュされる接続リースを使用する仮想セッションへの接続を要求するように構成された複数のクライアントデバイスと、
前記複数のクライアントデバイスのための前記パブリッシュされたリソースエンタイトルメントを記憶および更新するように構成されたコンピューティングデバイスと、
接続ディスクリプタファイルに基づいて前記仮想セッションへのアクセスを前記クライアントデバイスに提供するように構成された仮想配信アプライアンスと、
コネクタアプライアンスであり、
前記接続リースを含む前記クライアントデバイスから接続要求を受信し、
前記コンピューティングデバイスに前記接続リースの妥当性検証を要求し、
前記コンピューティングデバイスによる前記接続リースの妥当性検証に応答して、前記仮想配信アプライアンスに前記接続リースを解決し、セッション妥当性検証を前記クライアントデバイスに返すように構成されたコネクタアプライアンスと、
を備え、
前記クライアントデバイスは、前記セッション妥当性検証に応答して前記接続ディスクリプタファイルを生成し、前記仮想セッションにアクセスするために前記生成された接続ディスクリプタファイルを使用して前記仮想配信アプライアンスとの接続を始めるように構成された、コンピューティングシステム。
【請求項16】
前記クライアントデバイスが、前記接続リースおよび前記セッション妥当性から前記接続ディスクリプタファイルを生成するように構成された、請求項15に記載のコンピューティングシステム。
【請求項17】
前記クライアントデバイスが、前記接続ディスクリプタファイルを使用して前記仮想配信アプライアンスと直接的に接続することによって、前記仮想配信アプライアンスとの前記接続を始めるように構成された、請求項15に記載のコンピューティングシステム。
【請求項18】
前記クライアントデバイスが、前記接続ディスクリプタファイルを使用してゲートウェイアプライアンスを介して、前記仮想配信アプライアンスとの前記接続を始めるように構成された、請求項15に記載のコンピューティングシステム。
【請求項19】
前記クライアントデバイスが、前記コネクタアプライアンスからの接続リース解決データを要求するようにさらに構成された、請求項15に記載のコンピューティングシステム。
【請求項20】
前記コネクタアプライアンスが、異なるゾーンに配置された複数のコネクタアプライアンスを備え、前記クライアントデバイスは、前記異なるゾーンの前記コネクタアプライアンスのアベイラビリティを監視するように、および前記接続リースとの接続を要求し、前記コネクタアプライアンスの少なくとも1つの前記アベイラビリティがアベイラビリティ閾値以上または以下であることに応答して、直接的にまたはゲートウェイアプライアンスを介して、前記セッション妥当性検証を受信するように構成された、請求項15に記載のコンピューティングシステム。
【請求項21】
前記仮想配信アプライアンスは、異なるゾーンに配置された複数の仮想配信アプライアンスを備え、前記セッション妥当性検証は、ゾーンアソシエーション情報を含み、前記クライアントデバイスは、異なるゾーンにおけるコネクタアプライアンスのアベイラビリティおよび前記ゾーンアソシエーション情報に応答して、直接起動またはゲートウェイアプライアンスを介した起動のための接続ディスクリプタファイルファイルおよびセッション要求を生成するように構成された、請求項20に記載のコンピューティングシステム。
【請求項22】
コネクタアプライアンスであって、
メモリと、
プロセッサであり、
仮想セッションを始めるために複数のクライアントデバイスからコネクタアプライアンスにおける接続要求を受信し、前記接続要求は、パブリッシュされたリソースエンタイトルメントに基づいてパブリッシュされる接続リースを含み、複数のクライアントデバイスのための前記パブリッシュされたリソースエンタイトルメントは、コンピューティングデバイスによって記憶および更新され、
前記コンピューティングデバイスから、前記コネクタアプライアンスにおける前記接続リースの妥当性検証を要求し、
前記コンピューティングデバイスによる前記接続リースの妥当性検証に応答して、前記コネクタアプライアンスにおいて、仮想配信アプライアンスに対して前記接続リースを解決し、前記仮想配信アプライアンスは、接続ディスクリプタファイルに基づいて前記仮想セッションへのアクセスを前記クライアントデバイスに提供するように構成され、
前記仮想セッションにアクセスするために前記接続ディスクリプタファイルを準備する際に使用するために、前記コネクタアプライアンスから前記クライアントデバイスにセッション妥当性検証を返す、
ために前記メモリと協働するように構成されたプロセッサと、
を備えたコネクタアプライアンス。
【請求項23】
前記クライアントデバイスが、前記コネクタアプライアンスから接続リース解決データを要求するようにさらに構成された、請求項22に記載のコネクタアプライアンス。
【請求項24】
前記コネクタアプライアンスは、前記コンピューティングデバイスのアベイラビリティなしで、前記クライアントデバイスにそれら接続リースにおける次のオプションに向かうように構成された、請求項22に記載のコネクタアプライアンス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、レガシー仮想配信アプライアンスとともに使用するための接続リーシングシステムおよび関連方法に関する。
【背景技術】
【0002】
本出願は、2019年5月20に出願された特許仮出願第62/850,076号明細書の利益を主張し、参照によりその全体が本明細書に組み込まれる。
【0003】
多数の組織が今や、それぞれのユーザの変動するニーズに対処するためのより柔軟なオプションを提供するために、アプリケーションおよび/またはデスクトップ仮想化を使用している。デスクトップ仮想化では、ユーザのオペレーティングシステム、アプリケーション、および/またはユーザ設定がユーザの物理的なスマートフォン、ラップトップ、またはデスクトップコンピュータから分離され得る。クライアント-サーバ技術を使用して、「仮想化されたデスクトップ」がクライアントコンピューティングデバイスのローカルストレージ内ではなく、リモートサーバ内に記憶され、リモートサーバによって管理され得る。
【0004】
いくつかの異なるタイプのデスクトップ仮想化システムがある。一例として、仮想デスクトップインフラストラクチャ(VDI)は、サーバ内に常駐する仮想マシン内でユーザデスクトップおよび/またはアプリケーションを動作させるプロセスを指す。また、仮想化システムは、コンピューティングデスクトップ仮想化サーバのプール、記憶ディスク、ネットワーキングハードウェア、および他の物理的リソースが仮想デスクトップをプロビジョニングするために、および/または共有アプリケーションへのアクセスを提供するために使用され得るクラウドコンピューティング環境内で実装され得る。
【発明の概要】
【0005】
方法は、仮想セッションを始めるために複数のクライアントデバイスからコネクタアプライアンスにおける接続要求を受信することを含んでよい。接続要求は、パブリッシュされたリソースエンタイトルメントに基づいてパブリッシュされる接続リースを含んでよく、複数のクライアントデバイスのためのパブリッシュされたリソースエンタイトルメントは、コンピューティングデバイスによって記憶および更新されてよい。方法は、コンピューティングデバイスから、コネクタアプライアンスにおける接続リースの妥当性検証を要求することと、コンピューティングデバイスによる接続リースの妥当性検証に応答して、コネクタアプライアンスにおいて、仮想配信アプライアンスに対して接続リースを解決することとをさらに含んでよい。仮想配信アプライアンスは、接続ディスクリプタファイルに基づいて仮想セッションへのアクセスをクライアントデバイスに提供するように構成されてよい。方法は、仮想セッションにアクセスするために接続ディスクリプタファイルを準備する際に使用するためにコネクタアプライアンスからクライアントデバイスにセッション妥当性検証を返すことも含んでよい。
【0006】
例として、接続ディスクリプタファイルは、クライアントデバイスにおいて接続リースおよびセッション妥当性検証から生成されてよい。例示的な実施形態では、受信することは、接続リースを使用してコネクタアプライアンスにクライアントデバイスを直接的に接続することによってクライアントデバイスから接続要求をコネクタアプライアンスによって受信することを含んでよい。別の例では、受信することは、ゲートウェイアプライアンスを介して接続リースを使用してコネクタアプライアンスにクライアントデバイスを接続することによってクライアントデバイスから接続要求をコネクタアプライアンスによって受信することを含んでよい。
【0007】
例示的な一実装では、接続は、接続ディスクリプタファイルを使用して仮想配信アプライアンスに直接的に接続することによってクライアントデバイスから仮想配信アプライアンスに始められてよい。別の例によれば、クライアントデバイスから仮想配信アプライアンスへの接続は、接続ディスクリプタファイルを使用してゲートウェイアプライアンスを介して始められてよい。
【0008】
方法は、コネクタアプライアンスにおいて、クライアントデバイスからの要求に応答して接続リース解決データを生成することをさらに含んでよい。さらに、クライアントデバイスは、ゲートウェイアプライアンスおよび他のクライアントデバイスのうちの少なくとも1つに接続リース解決データを要求するようにさらに構成されてよい。例示的な実施形態では、生成することは、接続リースおよび接続リース解決データのうちの少なくとも1つに基づいてテレメトリデータを生成することを含んでよく、クライアントデバイスは、それに応答してセッション要求を生成することなくテレメトリデータを受信する。
【0009】
接続リースは、クライアントデバイスのうちの少なくともいくつかに、コネクタアプライアンスを介して仮想配信アプライアンスを通じて仮想セッションへの接続を間接的に要求させるために、コネクタアプライアンスのネットワークアドレスを含んでよい。例示的な実施形態では、仮想配信アプライアンスは、異なるゾーンに配置された複数の仮想配信アプライアンスを備えてよく、コネクタアプライアンスは、異なるゾーンに配置され、それらのゾーン内の仮想配信アプライアンスに割り当てられた複数のコネクタアプライアンスを備えてよく、方法は、コネクタアプライアンスにおいて、それら自体のゾーンのための接続要求を許可するためにコンピューティングデバイスのアベイラビリティのない異なるゾーン内の別のコネクタアプライアンスに接続要求をリダイレクトすることをさらに含んでよい。別の例によれば、方法は、同じゾーン内のコネクタアプライアンスにおいて、ゾーンのためのリーダコネクタアプライアンスを選ぶことと、ゾーンのための接続要求を許可するためにコンピューティングデバイスのアベイラビリティなしでリーダコネクタアプライアンスに受信された接続要求をリダイレクトすることとをさらに含んでよい。さらに、ゾーンのためのリーダコネクタアプライアンスにおいて、方法は、パブリッシュされたリソースエンタイトルメントおよび仮想セッション情報のうちの少なくとも1つを備えるローカルホストキャッシュをコンピューティングデバイスと同期させることと、ゾーンのための接続要求を許可するためにコンピューティングデバイスのアベイラビリティなしで、接続リースを妥当性検証することと、仮想配信アプライアンスへの接続リースを解決することと、クライアントデバイスにセッション妥当性検証を返すことも含んでよい。方法は、コネクタアプライアンスにおいて、クライアントデバイスを、それらの接続リース内でコンピューティングデバイスのアベイラビリティなしで次のオプションに進むように向けることも含んでよい。
【0010】
関連コンピューティングシステムは、パブリッシュされたリソースエンタイトルメントに基づいてパブリッシュされる接続リースを使用する仮想セッションへの接続を要求するように構成された複数のクライアントデバイスと、複数のクライアントデバイスのためのパブリッシュされたリソースエンタイトルメントを記憶および更新するように構成されたコンピューティングデバイスとを含んでよい。コンピューティングシステムは、接続ディスクリプタファイルに基づいて仮想セッションへのアクセスをクライアントデバイスに提供するように構成された仮想配信アプライアンスも含んでよい。さらに、コネクタアプライアンスは、接続リースを含むクライアントデバイスから接続要求を受信し、コンピューティングデバイスに接続リースの妥当性検証を要求し、コンピューティングデバイスによる接続リースの妥当性検証に応答して、仮想配信アプライアンスに接続リースを解決し、セッション妥当性検証をクライアントデバイスに返すように構成されてよい。クライアントデバイスは、セッション妥当性検証に応答して接続ディスクリプタファイルを生成し、仮想セッションにアクセスするために生成された接続ディスクリプタファイルを使用して仮想配信アプライアンスとの接続を始めるように構成されてよい。
【図面の簡単な説明】
【0011】
【
図1】本開示の様々な態様が実装され得るコンピューティングデバイスのネットワーク環境の概略ブロック図である。
【
図2】
図1に示されているクライアントマシンまたはリモートマシンの一実施形態を実施するために有用なコンピューティングデバイスの概略ブロック図である。
【
図3】本開示の様々な態様が実装され得るクラウドコンピューティング環境の概略ブロック図である。
【
図4】本開示の様々な態様が実装され得る、ワークスペースアプリを動作させるデスクトップデバイス、モバイルデバイス、およびウェブベースのデバイスの概略ブロック図である。
【
図5】本開示の様々な態様が実装され得るコンピューティングデバイスのワークスペースネットワーク環境の概略ブロック図である。
【
図6】接続リース構成における非接続リースイネーブルド仮想配信アプライアンスを通じた仮想セッションアクセスを提供するコンピューティングシステムの概略ブロック図である。
【
図7】例示的な実施形態による、
図6のシステムが実装され得る、接続リースアーキテクチャの概略ブロック図および独立したフローシーケンスである。
【
図8】例示的な実施形態による、接続リースイネーブルド仮想配信アプライアンスと非接続リースイネーブルド(レガシー)仮想配信アプライアンスの両方に動作可能性を提供するように構成された
図7の接続リースアーキテクチャの概略ブロック図である。
【
図9A】ブローカが仮想配信アプライアンスと直接的に通信しない、例示的な実施形態において、ブローカオンラインモードで動作する
図8の接続リースアーキテクチャのコネクタアプライアンスの概略ブロック図である。
【
図9B】ブローカが仮想配信アプライアンスとの何らかの直接的通信を行う、例示的な実施形態において、ブローカオンラインモードで動作する
図8の接続リースアーキテクチャのコネクタアプライアンスの概略ブロック図である。
【
図10】
図8の接続リースアーキテクチャにおいてコネクタキーがブートストラップするための例示的な手法を示すシーケンスフロー図である。
【
図11】
図8の接続リースアーキテクチャにおけるブローカ登録のための例示的な手法を示すシーケンスフロー図である。
【
図12A】ブローカが仮想配信アプライアンスと直接的に通信しない、
図8の接続リースアーキテクチャのための例示的なゲートウェイ接続シーケンスを示すシーケンスフロー図である。
【
図12B】ブローカが仮想配信アプライアンスとの何らかの直接的な通信を行う、
図8の接続リースアーキテクチャのための例示的なゲートウェイ接続シーケンスを示すシーケンスフロー図である。
【
図13A】ブローカが仮想配信アプライアンスと直接的に通信しない、
図8の接続リースアーキテクチャのための例示的な直接接続シーケンスを示すシーケンスフロー図である。
【
図13B】ブローカが仮想配信アプライアンスとの何らかの直接的な通信を行う、
図8の接続リースアーキテクチャのための例示的な直接接続シーケンスを示すシーケンスフロー図である。
【
図14A】ブローカが仮想配信アプライアンスと直接的に通信しない、例示的な実施形態において、ブローカオフラインモードで動作する
図8の接続リースアーキテクチャのコネクタアプライアンスの概略ブロック図である。
【
図14B】ブローカが仮想配信アプライアンスとの何らかの直接的通信を行う、例示的な実施形態において、ブローカオフラインモードで動作する
図8の接続リースアーキテクチャのコネクタアプライアンスの概略ブロック図である。
【
図15】
図6のシステムに関連付けられた例示的な方法態様を示すフロー図である。
【
図16】
図6のシステムのコネクタアプライアンスに関連付けられた例示的な方法態様を示すフロー図である。
【発明を実施するための形態】
【0012】
仮想コンピューティングアーキテクチャでは、接続リースは、仲介サービスによってクライアントデバイスに発行され得る。接続リースは、クライアントデバイスがアクセスすることが許されているリソースエンタイトルメントの静的スナップショットを含んでよい。例として、クライアントデバイスによってアクセスされているリソースは、仮想アプリケーション、仮想デスクトップ、ソフトウェアアズアサービス(SaaS)アプリケーション、デスクトップアズアサービス(DaaS)セッションなどを含んでよい。さらに、接続リースは、接続リースが満了し、更改しなければならない前に比較的長期のアクセス(たとえば、1週間または複数の週間)を可能にするリソースロケーションデータも含んでよい。これは、クライアントデバイスは、それらが仮想コンピューティングセッションへのアクセスを要求するたびに仲介サービスに再登録することが必要とされないので、クライアントデバイスによってリソースへのより高速なアクセスを促進する助けとなる。しかし、レガシー(非接続リース互換)構成要素を含むシステム内の接続リース互換構成要素を展開することは、種々の技術的問題という結果になることがある。
【0013】
1つのそのような技術的問題は、異なる接続手法を利用する仮想配信アプライアンスの次世代に同時に移行しながら既存の仮想配信アプライアンスまたはレガシー仮想配信アプライアンスの比較的大きい占有面積をどのようにしてサポートするかである。すなわち、レガシー仮想配信アプライアンスは、第1のプロトコルに基づいて仮想セッションに接続を提供するネットワークインフラストラクチャ内にすでに展開されており、第1のプロトコルとは異なる第2のプロトコルを使用する新しい仮想配信アプライアンスが展開されるべきであり、ネットワークインフラストラクチャ内のレガシーアプライアンスが第1のプロトコルと互換性がない場合であっても、それらの継続使用をどのようにして可能にするかという技術的問題がある。加えて、いくつかの実装では、仮想配信アプライアンスは、専用領域、施設などにサービスするためにゾーンにグループ化されてよいが、そうでない場合、異なるゾーンが、互いに通信および協働するように構成されない。そのような設置に関する技術的問題は、クラウド接続リースインフラストラクチャが、仮想配信アプライアンスの異なるゾーン間の通信のないオフラインであるとき、ゾーンフェイルオーバをどのようにしてサポートするかである。本明細書において説明されるシステムおよび方法は、有利には、接続リース互換でないレガシー仮想配信アプライアンスに代わってクラウドベースの接続リースインフラストラクチャとインターフェースし得るコネクタアプライアンスの使用を通じて、これらの技術的問題に解決策を提供する。これは、有利には、以下でさらに論じられるように、仮想配信アプライアンスクラウドベースの接続リースインフラストラクチャとレガシーとの間の互換性と、クラウドインフラストラクチャ停止中にゾーン間のセッション要求をリダイレクトする機能も提供する。
【0014】
最初に
図1を参照すると、本開示の様々な態様が実装され得る非限定的なネットワーク環境10は、1つまたは複数のクライアントマシン12A~12Nと、1つまたは複数のリモートマシン16A~16Nと、1つまたは複数のネットワーク14、14’と、コンピューティング環境10内に設置された1つまたは複数のアプライアンス18とを含む。クライアントマシン12A~12Nは、ネットワーク14、14’を介してリモートマシン16A~16Nと通信する。
【0015】
いくつかの実施形態では、クライアントマシン12A~12Nは、中間アプライアンス18を介してリモートマシン16A~16Nと通信する。図のアプライアンス18は、ネットワーク14、14’間に配置され、ネットワークインターフェースまたはゲートウェイと称されることもある。いくつかの実施形態では、アプライアンス108は、アプリケーション配信コントローラ(ADC)として動作し得、クライアントにデータセンタ、クラウド内で展開される、またはクライアントデバイスの範囲にわたってソフトウェアアズアサービス(SaaS)として配信されるビジネスアプリケーションおよび他のデータへのアクセスを提供し、および/または負荷分散など他の機能性を提供する。いくつかの実施形態では、複数のアプライアンス18が使用され得、アプライアンス18は、ネットワーク14および/または14’の一部として展開され得る。
【0016】
クライアントマシン12A~12Nは、全体的に、クライアントマシン12、ローカルマシン12、クライアント12、クライアントノード12、クライアントコンピュータ12、クライアントデバイス12、コンピューティングデバイス12、エンドポイント12、またはエンドポイントノード12と称されることがある。リモートマシン16A~16Nは、全体的に、サーバ16またはサーバファーム16と称されることがある。いくつかの実施形態では、クライアントデバイス12は、サーバ16によって提供されるリソースにアクセスしようとするクライアントノードとしても、他のクライアントデバイス12A~12Nのためのホストされるリソースへのアクセスを提供するサーバ16としても機能するための能力を有し得る。ネットワーク14、14’は、全体的に、ネットワーク14と称されることがある。ネットワーク14は、有線ネットワークおよびワイヤレスネットワークの任意の組合せで構成されてよい。
【0017】
サーバ16は、たとえば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプライアンス、ネットワークアプライアンス、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、セキュアソケットレイヤ仮想プライベートネットワーク(SSL VPN)サーバ、ファイアウォール、ウェブサーバ、アクティブディレクトリを実行するサーバ、クラウドサーバ、またはファイアウォール機能性、アプリケーション機能性、もしくは負荷分散機能性を提供するアプリケーションアクセラレーションプログラムを実行するサーバなど、任意のサーバタイプであってよい。
【0018】
サーバ16は、ソフトウェア、プログラム、実行可能命令、仮想マシン、ハイパーバイザ、ウェブブラウザ、ウェブベースのクライアント、クライアント-サーバアプリケーション、シンクライアントコンピューティングクライアント、ActiveXコントロール、Javaアプレット、ソフトIP電話のようなボイスオーバーインターネットプロトコル(VoIP)通信に関連するソフトウェア、ストリーミングビデオおよび/またはオーディオのためのアプリケーション、リアルタイムデータ通信を容易にするためのアプリケーション、HTTPクライアント、FTPクライアント、Oscarクライアント、Telnetクライアント、または実行可能命令の任意の他のセットのいずれか1つであってよいアプリケーションを実行し、動作させ、または他の方法で提供し得る。
【0019】
いくつかの実施形態では、サーバ16は、シンクライアントまたはリモートディスプレイプロトコルを使用しサーバ16上で実行されるアプリケーションによって生成されるディスプレイ出力を取り込むリモートプレゼンテーションサービスプログラムまたは他のプログラムを実行し、アプリケーションディスプレイ出力をクライアントデバイス12に送信し得る。
【0020】
さらに他の実施形態では、サーバ16は、クライアントデバイス12のユーザにコンピューティング環境へのアクセスを提供する仮想マシンを実行し得る。クライアントデバイス12は、仮想マシンであってよい。仮想マシンは、たとえばハイパーバイザ、仮想マシンマネージャ(VMM)、またはサーバ16内の任意の他のハードウェア仮想化技法によって管理され得る。
【0021】
いくつかの実施形態では、ネットワーク14は、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、プライマリパブリックネットワーク14、およびプライマリプライベートネットワーク14であってよい。追加の実施形態は、様々なプロトコルを使用しモバイルデバイスの間で通信するモバイル電話ネットワークのネットワーク14を含み得る。ワイヤレスローカルエリアネットワーク(WLAN)内の近距離通信については、プロトコルは、802.11、Bluetooth、および近距離無線通信(NFC)を含み得る。
【0022】
図2は、クライアントデバイス12、アプライアンス18、および/またはサーバ16の一実施形態を実施するために有用なコンピューティングデバイス20のブロック図を示す。コンピューティングデバイス20は、1つまたは複数のプロセッサ22、揮発性メモリ24(たとえば、ランダムアクセスメモリ(RAM))、不揮発性メモリ30、ユーザインターフェース(UI)38、1つまたは複数の通信インターフェース26、および通信バス48を含む。
【0023】
不揮発性メモリ30は、1つもしくは複数のハードディスクドライブ(HDD)もしくは他の磁気記憶媒体もしくは光記憶媒体、フラッシュドライブもしくは他のソリッドステート記憶媒体など1つもしくは複数のソリッドステートドライブ(SSD)、1つもしくは複数のハイブリッド磁気およびソリッドステートドライブ、ならびに/またはクラウドストレージなど1つもしくは複数の仮想ストレージボリューム、あるいはそのような物理的ストレージボリュームおよび仮想ストレージボリュームの組合せ、またはそのアレイを含み得る。
【0024】
ユーザインターフェース38は、グラフィカルユーザインターフェース(GUI)40(たとえば、タッチスクリーン、ディスプレイなど)および1つまたは複数の入力/出力(I/O)デバイス42(たとえば、マウス、キーボード、マイクロフォン、1つまたは複数のスピーカ、1つまたは複数のカメラ、1つまたは複数のバイオメトリックスキャナ、1つまたは複数の環境センサ、および1つまたは複数の加速度計など)を含み得る。
【0025】
不揮発性メモリ30は、オペレーティングシステム32、1つまたは複数のアプリケーション34、およびデータ36を記憶し、たとえばオペレーティングシステム32および/またはアプリケーション34のコンピュータ命令が揮発性メモリ24から取り出されプロセッサ22によって実行されるようにする。いくつかの実施形態では、揮発性メモリ24は、メインメモリより速い応答時間を提供し得る1つまたは複数のタイプのRAMおよび/またはキャッシュメモリを含み得る。データは、GUI40の入力デバイスを使用して入力されても、I/Oデバイス42から受信されてもよい。コンピュータ20の様々な要素は、通信バス48を介して通信し得る。
【0026】
図のコンピューティングデバイス20は、例示的なクライアントデバイスまたはサーバとして示されているにすぎず、本明細書に記載されているように動作することが可能な好適なハードウェアおよび/またはソフトウェアを有し得る任意のタイプのマシンまたはマシンのセットを有する任意のコンピューティングまたは処理環境によって実装されてよい。
【0027】
プロセッサ22は、1つまたは複数のプログラム可能なプロセッサによって、コンピュータプログラムなど1つまたは複数の実行可能命令を実行し、システムの機能を実施するように実装され得る。本明細書で使用されるとき、「プロセッサ」という用語は、機能、動作、または動作のシーケンスを実施する回路を表す。機能、動作または動作のシーケンスは、回路にハードコード化されても、メモリデバイス内に保持された命令によりソフトコード化され、回路によって実行されてもよい。プロセッサは、デジタル値を使用して、および/またはアナログ信号を使用して機能、動作、または動作のシーケンスを実施し得る。
【0028】
いくつかの実施形態では、プロセッサは、1つもしくは複数の特定用途向け集積回路(ASIC)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、グラフィック処理ユニット(GPU)、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)、マルチコアプロセッサ、または関連のメモリを有する汎用コンピュータ内に埋め込むことができる。
【0029】
プロセッサ22は、アナログ、デジタル、または混合信号であってよい。いくつかの実施形態では、プロセッサ22は、1つもしくは複数の物理的プロセッサ、または1つもしくは複数の仮想(たとえば、リモートに位置する、またはクラウド)プロセッサであってよい。複数のプロセッサコアを含むプロセッサおよび/または複数のプロセッサは、命令の並列同時実行のための、または複数のデータ上の1つの命令の並列同時実行のための機能性を提供し得る。
【0030】
通信インターフェース26は、コンピューティングデバイス20が、セルラ接続を含む様々な有線および/またはワイヤレス接続を通じてローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、またはインターネットなどコンピュータネットワークにアクセスすることを可能にするための1つまたは複数のインターフェースを含み得る。
【0031】
記載の実施形態では、コンピューティングデバイス20は、クライアントデバイスのユーザの代わりにアプリケーションを実行し得る。たとえばコンピューティングデバイス20のハイパーバイザによって管理される1つまたは複数の仮想マシンを実行し得る。各仮想マシンは、ホストされるデスクトップセッションなど、ユーザまたはクライアントデバイスの代わりにアプリケーションが実行される実行セッションを提供し得る。また、コンピューティングデバイス20は、ホストされるデスクトップ環境を提供するために端末サービスセッションを実行し得る。コンピューティングデバイス20は、1つまたは複数のアプリケーション、1つまたは複数のデスクトップアプリケーション、および1つまたは複数のアプリケーションが実行され得る1つまたは複数のデスクトップセッションを含むリモートコンピューティング環境へのアクセスを提供し得る。
【0032】
例示的な仮想化サーバ16は、フロリダ州フォートローダーデールのCitrix Systems, Inc.(「Citrix Systems」)によって提供されるCitrix Hypervisorを使用して実装され得る。仮想アプリおよびデスクトップセッションは、やはりCitrix SystemsからのCitrix Virtual Apps and Desktops(CVAD)によってさらに提供され得る。Citrix Virtual Apps and Desktopsは、任意のデバイスからの仮想アプリ、デスクトップ、およびデータセッションを含む仮想セッションへの広範なアクセスとともに、スケーラブルなVDI解決策を実装するためのオプションを加えて、生産性を高めるアプリケーション仮想化解決策である。仮想セッションは、たとえばソフトウェアアズアサービス(SaaS)およびデスクトップアズアサービス(DaaS)セッションをさらに含み得る。
【0033】
図3を参照すると、クラウド環境、クラウドコンピューティング、またはクラウドネットワークとも称されることがあるクラウドコンピューティング環境50が示されている。クラウドコンピューティング環境50は、複数のユーザまたはテナントへの共有コンピューティングサービスおよび/またはリソースの配信を提供することができる。たとえば共有リソースおよびサービスは、それだけには限らないがネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、データベース、ソフトウェア、ハードウェア、アナリティクス、およびインテリジェンスを含むことができる。
【0034】
クラウドコンピューティング環境50では、1つまたは複数のクライアント52A~52C(上記のものなど)がクラウドネットワーク54と通信する。クラウドネットワーク54は、バックエンドプラットフォーム、たとえばサーバ、ストレージ、サーバファーム、またはデータセンタを含み得る。ユーザまたはクライアント52A~52Cは、単一の組織/テナントまたは複数の組織/テナントに対応することができる。より具体的には、例示的な実装では、クラウドコンピューティング環境50は、単一の組織(たとえば、エンタープライズクラウド)にサービスを提供するプライベートクラウドを提供し得る。別の例では、クラウドコンピューティング環境50は、複数の組織/テナントにサービスを提供するコミュニティまたはパブリッククラウドを提供し得る。さらなる実施形態では、クラウドコンピューティング環境50は、パブリッククラウドとプライベートクラウドの組合せであるハイブリッドクラウドを提供し得る。パブリッククラウドは、サードパーティによってクライアント52A~52Cまたは企業体/テナントに対して維持されるパブリックサーバを含み得る。サーバは、遠隔の地理的ロケーションなどに現地から離れて位置してもよい。
【0035】
クラウドコンピューティング環境50は、それぞれの環境内の異なる需要に応答して異なる物理的リソースおよび仮想リソースが動的に割り当てまたは再割り当てされるマルチテナント環境またはマルチテナントモデルを通じて、クライアント52A~52Cを介して複数のユーザにサービスを提供するために、リソースプール化を提供することができる。マルチテナント環境は、複数のユーザにサービスを提供するためにソフトウェア、アプリケーション、またはソフトウェアアプリケーションの単一のインスタンスを提供することができるシステムまたはアーキテクチャを含むことができる。いくつかの実施形態では、クラウドコンピューティング環境50は、複数のクライアント52A~52Cのためにネットワークにわたってコンピューティング能力(たとえば、サーバ時間、ネットワークストレージ)を一方的にプロビジョニングするためのオンデマンドのセルフサービスを提供することができる。クラウドコンピューティング環境50は、1つまたは複数のクライアント52からの異なる需要に応答して動的にスケールアウトまたはスケールインするための弾力性を提供することができる。いくつかの実施形態では、コンピューティング環境50は、提供された共有サービスおよびリソースに対応するレポートを監視、制御、および/または生成するための監視サービスを含む、または提供することができる。
【0036】
いくつかの実施形態では、クラウドコンピューティング環境50は、たとえばソフトウェアアズアサービス(SaaS)56、プラットフォームアズアサービス(PaaS)58、インフラストラクチャアズアサービス(IaaS)60、およびデスクトップアズアサービス(DaaS)62など異なるタイプのクラウドコンピューティングサービスのクラウドベースの配信を提供し得る。IaaSは、ユーザが指定された期間中、必要とされるインフラストラクチャリソースの使用を貸借することを指し得る。IaaSは、大きなプールからストレージ、ネットワーキング、サーバ、または仮想化リソースを提供し、ユーザが必要に応じてより多くのリソースにアクセスすることによって迅速にスケールアップすることを可能にし得る。IaaSの例は、ワシントン州シアトルのAmazon.com, Inc.によって提供されているAMAZON WEB SERVICES、テキサス州サンアントニオのRackspace US, Inc.によって提供されているRACKSPACE CLOUD、カリフォルニア州マウンテンビューのGoogle Inc.によって提供されているGoogle Compute Engine、またはカリフォルニア州サンタバーバラのRightScale, Inc.によって提供されているRIGHTSCALEを含む。
【0037】
PaaSプロバイダは、たとえばストレージ、ネットワーキング、サーバ、または仮想化を含むIaaSによって提供される機能性、ならびに、たとえばオペレーティングシステム、ミドルウェア、またはランタイムリソースなど追加のリソースを提供し得る。PaaSの例は、ワシントン州レドモンドのMicrosoft Corporationによって提供されているWINDOWS AZURE、Google Inc.によって提供されているGoogle App Engine、およびカリフォルニア州サンフランシスコのHeroku, Inc.によって提供されているHEROKUを含む。
【0038】
SaaSプロバイダは、ストレージ、ネットワーキング、サーバ、仮想化、オペレーティングシステム、ミドルウェア、またはランタイムリソースを含めて、PaaSが提供するリソースを提供し得る。いくつかの実施形態では、SaaSプロバイダは、たとえば、データおよびアプリケーションリソースを含む追加のリソースを提供し得る。SaaSの例は、Google Inc.によって提供されているGOOGLE APPS、カリフォルニア州サンフランシスコのSalesforce.com Inc.によって提供されているSALESFORCE、またはMicrosoft Corporationによって提供されているOFFICE 365を含む。また、SaaSの例は、データストレージプロバイダ、たとえば、カリフォルニア州サンフランシスコのDropbox, Inc.によって提供されているDROPBOX、Microsoft Corporationによって提供されているMicrosoft SKYDRIVE、Google Inc.によって提供されているGoogle Drive、またはカリフォルニア州クパチーノのApple Inc.によって提供されているApple ICLOUDを含み得る。
【0039】
SaaS、DaaS(ホストされるデスクトップサービスとしても知られる)と同様のものは、仮想デスクトップセッションが仮想デスクトップ上で使用されるアプリとともにクラウドサービスとして配信されることが典型的である仮想デスクトップインフラストラクチャ(VDI)の形態である。Citrix Cloudは、DaaS配信プラットフォームの一例である。DaaS配信プラットフォームは、たとえばワシントン州レドモンドのMicrosoft CorporationからのAZURE CLOUD(本明細書では「Azure」)、またはワシントン州シアトルのAmazon.com, Inc.によって提供されているAMAZON WEB SERVICES(本明細書では「AWS」)など、パブリッククラウドコンピューティングインフラストラクチャ上でホストされ得る。Citrix Cloudの場合、統一されたエクスペリエンスを届けるためにアプリ、ファイル、およびデスクトップを(オンプレミスまたはクラウド内にかかわらず)一緒にするための単一のエントリポイントとして、Citrix Workspaceアプリが使用され得る。
【0040】
次に、Citrix Workspaceアプリによって提供される統一されたエクスペリエンスについて、
図4を参照してより詳細に論じられる。Citrix Workspaceアプリは、本明細書では、全体的にワークスペースアプリ70と称されることになる。ワークスペースアプリ70は、その1つのカテゴリがアプリケーションである、ユーザがワークスペースリソースにアクセスする方法である。これらのアプリケーションは、SaaSアプリ、ウェブアプリ、または仮想アプリとすることができる。また、ワークスペースアプリ70は、ローカルデスクトップまたは仮想デスクトップであり得るデスクトップへユーザがアクセスできるようにする。さらに、ワークスペースアプリ70は、多数のリポジトリに記憶され得るファイルおよびデータにユーザがアクセスできるようにする。ファイルおよびデータは、たとえばCitrix ShareFile上でホストされても、オンプレミスネットワークファイルサーバ上でホストされても、Microsoft OneDriveまたはGoogle Drive Boxなど何らかの他のクラウドストレージプロバイダにおいてホストされてもよい。
【0041】
統一されたエクスペリエンスを提供するために、ユーザが必要とするリソースのすべてが、ワークスペースアプリ70に位置しそこからアクセス可能であってよい。ワークスペースアプリ70は、異なるバージョンで提供される。ワークスペースアプリ70の1つのバージョンは、デスクトップ72用のインストールされたアプリケーションであり、それはWindows、Mac、またはLinuxプラットフォームに基づくものであってよい。ワークスペースアプリ70の第2のバージョンは、モバイルデバイス74用のインストールされたアプリケーションであり、それはiOSまたはAndroidプラットフォームに基づくものであってよい。ワークスペースアプリ70の第3のバージョンは、ハイパーテキストマークアップ言語(HTML)ブラウザを使用し、ワークスペース環境へのユーザアクセスを提供する。ワークスペースアプリ70のウェブバージョンは、公衆ブース76を動作させるときなどユーザがワークスペースアプリをインストールしたくない、またはワークスペースアプリをインストールする権利を有していないときに使用される。
【0042】
ワークスペースアプリ70のこれらの異なるバージョンのそれぞれは、同じユーザエクスペリエンスを提供することが有利であり得る。これは、異なるプラットフォームでクライアントデバイス72からクライアントデバイス74からクライアントデバイス76へユーザが移動し、それらのワークスペースについて同じユーザエクスペリエンスを受けることを可能にすることが有利である。クライアントデバイス72、74、および76は、エンドポイントと称される。
【0043】
上記のように、ワークスペースアプリ70は、Windows、Mac、Linux、iOS、およびAndroidプラットフォーム、ならびにHTMLブラウザ(HTML5)を用いたプラットフォームをサポートする。ワークスペースアプリ70は、複数のエンジン80~90を組み込んでおり、ユーザが多数のタイプのアプリおよびデータリソースにアクセスすることを可能にする。各エンジン80~90は、特定のリソースについてユーザエクスペリエンスを最適化する。また、各エンジン80~90は、組織または企業体にユーザ活動および潜在的なセキュリティ脅威への洞察力を提供する。
【0044】
埋め込みブラウザエンジン80は、SaaSおよびウェブアプリを、ローカルでインストールされた管理されていないブラウザ上で起動する代わりに、ワークスペースアプリ70内に含まれたまま保つ。埋め込みブラウザを用いて、ワークスペースアプリ70は、SaaSおよびウェブアプリ内でユーザによって選択されたハイパーリンクをインターセプトし、アクセスを承認、拒否、または隔離する前にリスク分析を要求することができる。
【0045】
ハイデフィニションエクスペリエンス(HDX)エンジン82は、WindowsオペレーティングシステムまたはLinuxオペレーティングシステム上で動作する仮想ブラウザ、仮想アプリ、およびデスクトップセッションとの接続を確立する。HDXエンジン82を用いて、WindowsおよびLinuxリソースはリモートで動作し、一方、ディスプレイは、エンドポイント上でローカルのままとなる。可能な最良のユーザエクスペリエンスを提供するために、HDXエンジン82は、異なる仮想チャネルを使用し、変化するネットワーク条件およびアプリケーション要件に適応する。高レイテンシまたは高パケット損失ネットワークを克服するために、HDXエンジン82は、最適化されたトランスポートプロトコルおよびより大きな圧縮アルゴリズムを自動的に実装する。各アルゴリズムは、ビデオ画像またはテキストなど、あるタイプのディスプレイのために最適化される。HDXエンジン82は、アプリケーション内でこれらのタイプのリソースを識別し、画面のそのセクションに最も適切なアルゴリズムを適用する。
【0046】
多数のユーザについて、ワークスペースはデータを中心とする。コンテンツコラボレーションエンジン84は、そのデータがオンプレミスにあるかクラウド内にあるかにかかわらず、ユーザがすべてのデータをワークスペースに統合することを可能にする。コンテンツコラボレーションエンジン84は、管理者およびユーザが、協働するためのコネクタのセット、およびユーザ特有のデータストレージロケーションを作成することを可能にする。これは、たとえばOneDrive、Dropbox、およびオンプレミスネットワークファイル共有を含むことができる。ユーザは、ファイルを複数のリポジトリ内で維持し、ワークスペースアプリ70がそれらを単一の個人化されたライブラリにまとめることを可能にすることができる。
【0047】
ネットワーキングエンジン86は、エンドポイントまたはエンドポイント上のアプリが安全なバックエンドリソースへのネットワークコネクティビティを必要とするか否かを識別する。ネットワーキングエンジン86は、エンドポイントデバイス全体のために完全なVPNトンネルを自動的に確立することができ、またはアプリ特有のμVPN接続を作成することができる。μVPNは、どのバックエンドリソースにアプリケーションおよびエンドポイントデバイスがアクセスすることができるかを定義し、したがってバックエンドインフラストラクチャを保護する。多数の例において、いくつかのユーザ活動は、独特なネットワークベースの最適化から利益を得る。ユーザがファイルコピーを要求する場合、ワークスペースアプリ70は、その活動をより速く完了するために、自動的に複数のネットワーク接続を同時に使用する。ユーザがVoIP呼を開始する場合、ワークスペースアプリ70は、その呼を複数のネットワーク接続にわたって複製することによってその品質を改善する。ネットワーキングエンジン86は、最初に到着するパケットだけを使用する。
【0048】
アナリティクスエンジン88は、ユーザのデバイス、ロケーション、および挙動についてレポートし、クラウドベースのサービスは、盗難にあったデバイス、ハッキングされた識別、または退職する準備をしているユーザの結果起こり得る潜在的な異常を識別する。アナリティクスエンジン88によって集められる情報は、対策を自動的に実装することによって企業資産を保護する。
【0049】
管理エンジン90は、ワークスペースアプリ70を現在のまま保つ。これは、ユーザに最新の能力を提供するだけでなく、追加的なセキュリティ拡張をも含む。ワークスペースアプリ70は、カスタマイズ可能なポリシに基づいて、規定通りにチェックし、自動的に更新を展開する自動更新サービスを含む。
【0050】
次に
図5を参照して、ワークスペースアプリ70に基づいて、統一されたエクスペリエンスをユーザに提供するワークスペースネットワーク環境100について論じられる。ワークスペースアプリ70のデスクトップバージョン、モバイルバージョン、およびウェブバージョンはすべて、クラウド104内で動作するワークスペースエクスペリエンスサービス102と通信する。次いで、ワークスペースエクスペリエンスサービス102は、リソースフィードマイクロサービス108を介して異なるリソースフィード16をすべて引き込む。すなわち、クラウド104内で動作する他のサービスからの異なるリソースすべてが、リソースフィードマイクロサービス108によって引き込まれる。異なるサービスは、仮想アプリおよびデスクトップサービス110、安全なブラウザサービス112、エンドポイント管理サービス114、コンテンツコラボレーションサービス116、ならびにアクセス制御サービス118を含み得る。組織または企業体がサブスクライブするサービスは、自動的にワークスペースエクスペリエンスサービス102内に引き込まれ、ユーザのワークスペースアプリ70に配信される。
【0051】
クラウドフィード120に加えて、リソースフィードマイクロサービス108は、オンプレミスフィード122を引き込むことができる。オンプレミスデータセンタ内で動作している仮想アプリおよびデスクトップ展開を提供するために、クラウドコネクタ124が使用される。デスクトップ仮想化は、たとえばCitrix仮想アプリおよびデスクトップ126、Microsoft RDS 128、またはVMware Horizon 130によって提供され得る。クラウドフィード120およびオンプレミスフィード122に加えて、たとえばモノのインターネット(IoT)デバイス134からのデバイスフィード132がリソースフィードマイクロサービス108によって引き込まれてもよい。異なるリソースをユーザの全体的なワークスペースエクスペリエンスに結び付けるために、サイトアグリゲーションが使用される。
【0052】
クラウドフィード120、オンプレミスフィード122およびデバイスフィード132はそれぞれ、異なる独特のタイプのアプリケーションでユーザのワークスペースエクスペリエンスを提供する。ワークスペースエクスペリエンスは、ローカルアプリ、SaaSアプリ、仮想アプリ、およびデスクトップブラウザアプリ、ならびにストレージアプリをサポートすることができる。フィードが増大および膨張し続けるにつれて、ワークスペースエクスペリエンスは、ユーザの全体的なワークスペース内に追加のリソースを含むことができる。これは、ユーザがアクセスすることを必要とするアプリケーションに1つずつ到達することができることを意味する。
【0053】
なおもワークスペースネットワーク環境20を参照して、統一されたエクスペリエンスがどのようにユーザに提供されるかについて、一連のイベントが記載される。統一されたエクスペリエンスは、ユーザがワークスペースアプリ70を使用し、クラウド104内で動作するワークスペースエクスペリエンスサービス102に接続し、その識別を提示することで始まる(イベント1)。識別は、たとえばユーザ名およびパスワードを含む。
【0054】
ワークスペースエクスペリエンスサービス102は、ユーザの識別をクラウド104内の識別マイクロサービス140に転送する(イベント2)。識別マイクロサービス140は、組織のワークスペース構成に基づいて、正しい識別プロバイダ142に対してユーザを認証する(イベント3)。認証は、クラウドコネクタ146の展開を必要とするオンプレミスアクティブディレクトリ144に基づくものであってよい。また、認証は、たとえば、Azure Active Directory148、さらにはCitrix ADCまたはOktaなどサードパーティ識別プロバイダ150に基づくものであってもよい。
【0055】
許可された後、ワークスペースエクスペリエンスサービス102は、リソースフィードマイクロサービス108に、許可されたリソースのリストを要求する(イベント4)。各構成されたリソースフィード106について、リソースフィードマイクロサービス108は、シングルサインマイクロサービス152に識別トークンを要求する(イベント5)。
【0056】
リソースフィード特有の識別トークンが、各リソースの認証ポイントに渡される(イベント6)。オンプレミスリソース122が、クラウドコネクタ124を通じて接触を受ける。各リソースフィード106は、それぞれの識別について許可されたリソースのリストで返信する(イベント7)。
【0057】
リソースフィードマイクロサービス108は、異なるリソースフィード106からすべてのアイテムを集約し、ワークスペースエクスペリエンスサービス102に転送する(イベント8)。ユーザは、ワークスペースエクスペリエンスサービス102からリソースを選択する(イベント9)。
【0058】
ワークスペースエクスペリエンスサービス102は、要求をリソースフィードマイクロサービス108に転送する(イベント10)。リソースフィードマイクロサービス108は、シングルサインオンマイクロサービス152に識別トークンを要求する(イベント11)。ユーザの識別トークンは、ワークスペースエクスペリエンスサービス102に送られ(イベント12)、ここで起動チケットが生成され、ユーザに送られる。
【0059】
ユーザは、ゲートウェイサービス160に対する安全なセッションを開始し、起動チケットを提示する(イベント13)。ゲートウェイサービス160は、適切なリソースフィード106に対する安全なセッションを開始し、ユーザをシームレスに認証するために識別トークンを提示する(イベント14)。セッションが初期化した後、ユーザは、リソースを使用することができる(イベント15)。ワークスペース全体が単一のアクセスポイントまたはアプリケーションを通じて配信されることは、生産性を改善し、ユーザにとって共通ワークフローを簡素化することが有利である。
【0060】
次に
図6を参照すると、接続リース互換でないレガシー構成要素を使用する仮想コンピューティング環境内での仮想コンピューティングセッションにアクセスするための接続リースの使用を提供する仮想コンピューティングシステム200が最初に説明され、これは、以下でさらに論じられるように、それらが、接続リースを認識しないまたはそうでない場合はこれと互換でないレガシー接続プロトコル(たとえば、独立コンピューティングアーキテクチャ(ICA)ファイルなどのレガシー接続ディスクリプタファイルを使用するように構成されたプロトコル)を、代わりに使用することを意味する。例として、以下でさらに論じられるように、システム200は、上記で説明されたコンピューティングデバイスを使用して、いくつかの実装ではワークスペースインフラストラクチャ内で、実装されてよい。仮想コンピューティングセッションへのアクセスを提供するための例示的な別のアーキテクチャは、本出願人Citrix Systems, Inc.のCitrix Virtual Apps and Desktops(CVAD)である。Citrix Virtual Appsは、異なるクライアントデバイスからの仮想アプリおよびサーバベースのデスクトップへの汎用的アクセスを有する生産性を最適化する助けとなるアプリケーション仮想化ソリューションである。CVADは、Citrix Virtual Appsと同じすべての機能と、スケーラブルな仮想デスクトップインフラストラクチャ(VDI)を実装するオプションを保有する。Citrix Virtual Apps/CVADは、クラウドサービスまたは従来のソフトウェア構成として利用可能である。
【0061】
そのようなコンピュータ仮想化インフラストラクチャは、従来、仮想セッションおよびユーザが権利を与えられたコンピューティングリソースにアクセスするようにクライアントデバイスを認証するために独立コンピューティングアーキテクチャ(ICA)プロトコルおよびICAファイルを利用し得る。ICAは、ネットワーク上でWindowsグラフィカルディスプレイデータならびにユーザ入力を送信するために設計されたプロトコルである。ICAファイルは、短命のセキュアチケットオーソリティ(STA)およびログオンチケットを含む。STAチケットは、Gateway(たとえば、Citrix Gateway)を介して仮想配信アプライアンス(たとえば、Citrix Virtual Delivery Agent(VDA))への接続を許可するために使用され得る。ログオンチケットは、ユーザを仮想コンピューティングセッションにシングルサインオン(SSOn)させ得る。CVADの場合、これは、異なるクライアントデバイス上および異なるネットワークの上で、集中型アプリケーションおよびデスクトップのユーザにとって使用可であり得る「ハイデフィニション」エクスペリエンス(HDX)セッションを通じて行われる。CitrixHDXは、ICAリモーティングプロトコルの上に構築される。
【0062】
任意のネットワークインフラストラクチャを使用すると、リモートであろうとそうでなかろうと、外部攻撃からのセキュリティは、常に、かなりの関心事である。さらに、接続リースは寿命が長く(たとえば、ポリシに基づいて数時間から数週間であり)、したがって、攻撃機会ウィンドウははるかに増加されるので、セキュリティ要件も、従来のICAファイルと比較して増加される。したがって、接続リースは、暗号化および署名される。接続リースは、盗難にあったデバイス、損なわれたユーザアカウント、閉鎖されたユーザアカウントなどのイベントに対応するために取り消されることがある。接続リース失効は、クライアント/エンドポイントデバイスまたはホストが接続リース発行サービス(CLIS)またはブローカに関してオンラインであるとき、適用されてよい。しかし、接続リースはオフラインモードで使用されることが意味されているので、CLISまたはブローカは、一般的には、以前に発行された接続リースをクライアントが使用するためにオンラインでなくてよい。
【0063】
システム200は、例示的には、複数のクライアントデバイス203a~203nのためのパブリッシュされたリソースエンタイトルメント202を記憶および更新するように構成されたコンピューティングデバイス201を含む。例として、コンピューティングデバイス201は、仲介サービスまたは接続リース発行サービス(CLIS)の一部であってよく、パブリッシュされたリソースエンタイトルメントは、クライアントデバイス203a~203nがアクセスすることが許されているまたは許可されている仮想コンピューティングリソース(たとえば、SaaSアプリ、DaaSセッション、仮想アプリ/デスクトップなど)に関してよい。クライアントデバイス203a~203nは、上記で述べられたように、デスクトップコンピュータまたはラップトップコンピュータ、タブレットコンピュータ、スマートフォンなどであってよい。クライアントデバイス203a~203nは、パブリッシュされたリソースエンタイトルメントに基づいて(たとえば、CLISによって)発行された接続リースを使用する仮想セッションへの接続を要求するように構成される。
【0064】
システム200は、例示的には、ネットワーク205(たとえば、インターネットまたはウェブ)を介してクライアントデバイス203a~203nと通信する仮想配信アプライアンス204をさらに含む。本例では、仮想配信アプライアンス204は、たとえば、クラウドベースのCLISによってクライアントデバイスに発行された接続リースではなく、上記で論じられたように、接続ディスクリプタファイル(たとえば、ICAファイル)およびSTAチケットに基づいて仮想セッションへのアクセスをクライアントデバイス203a~203nに提供するように構成されたオンプレミス展開と一般的に関連付けられたレガシーアプライアンスである。すなわち、クラウドインフラストラクチャの一部としてコンピューティングデバイス201と直接的に相互作用するように構成され、接続リース互換であるクラウドベースの仮想配信アプライアンスではなく、レガシー仮想配信アプライアンス204は、それは代わりに接続リースではなく接続説明ファイル(たとえば、ICAファイル)に基づいて仮想セッションへの接続を確立するように構成されるので、たとえば、接続リース互換でなくてもよいし、接続リースを妥当性検証するためにコンピューティングデバイスと協働するように構成されなくてもよい。
【0065】
その結果、システム200は、有利には、コネクタアプライアンス206も含み、コネクタアプライアンス206は、いくつかの実施形態では、仮想配信アプライアンス204とともにオンプレミスで展開されてもよい。コネクタアプライアンス206は、(レガシー仮想配信アプライアンス204の代わりに)接続リースを含むクライアントデバイス203a~203nから接続要求を受信し、コンピューティングデバイス201に(仮想配信アプライアンスの代わりに)接続リースの妥当性検証を要求するように構成されてよい。いくつかの実施形態では、コネクタアプライアンス206は、接続リースを期限切れとチェックする(たとえば、期限切れ日をチェックする)またはテンパリングする(たとえば署名をチェックする)など、接続リースに対して追加の妥当性検証を実施してよい。コンピューティングデバイス201によって接続リースの妥当性検証に応答して、コネクタアプライアンス206は、次いで、仮想配信アプライアンス204に接続リースを解決し、クライアントデバイス203a~203nにセッション妥当性検証を返してよい。いくつかの実施形態では、仮想配信アプライアンス204に対する接続リースの解決は、コンピューティングデバイス201によって実施され、コネクタアプライアンス206がセッション妥当性検証をクライアントデバイス203a~203nに返す前にコネクタアプライアンス206に返されてよい。したがって、セッション妥当性検証に応答して、クライアントデバイス203a~203nは、有利には、仮想配信アプライアンス204がセッション接続を実施するために使用する接続ディスクリプタファイル(たとえば、ICAファイル)を生成し、接続リースの代わりに仮想セッションにアクセスするために生成された接続ディスクリプタファイルを使用する仮想配信アプライアンスとの接続を始めてよい。
【0066】
次に、前述の内容が、
図7に示されるコンピューティングシステム250の例示的な実装の文脈で説明される。図の例では、上記のコンピューティングデバイス201およびリース生成機能は、例示的には、仮想セッション254にアクセスするために加入およびリース生成するためにクライアントデバイス252とインターフェースするように構成されたクラウドインターフェース256を含むクラウドコンピューティングサービス255(たとえば、Citrix Cloud)内で実施される。例示的な一実施形態では、クラウドインターフェース256は、Citrix Workspaceで実装され得、クライアントデバイス252は、Citrix Workspaceアプリを動作させていてよいが、異なる実施形態において他の好適なプラットフォームが使用されてよい。クラウドコンピューティングサービス255は、例示的には、ルートオブトラスト(RoT)257、接続リース発行サービス(CLIS)258、ゲートウェイサービス259、ブローカ260、およびデータベース261をさらに含み、これらについては下記にさらに記載される。
【0067】
クライアントデバイス252には、図の例ではハードウェアに裏打ちされた鍵ストア262によって作成される公開-秘密暗号化鍵対が関連付けられている。ハードウェアに裏打ちされた鍵ストア262は、クライアントデバイス252のオペレーティングシステム(OS)が秘密鍵にアクセスすることを防止する。クライアントデバイス252のOSは、秘密鍵を用いて暗号演算を実施するが、鍵にアクセスする/鍵をエクスポートする能力を有していない。ハードウェアに裏打ちされた鍵ストアの例は、たとえばパーソナルコンピュータ(PC)上のトラステッドプラットフォームモジュール(TPM)、iOS Secure Enclave、およびAndroid Hardware Key Storeを含むが、他の好適な暗号化鍵生成プラットフォームが使用されてもよい。背景として、いくつかの実施形態では、TPMなどハードウェアに裏打ちされた鍵ストア262は、クライアントデバイス252のマザーボード上に設けられ、基本的なセキュリティ関連の機能、たとえば元来含まれる暗号化鍵を提供するように設計されたマイクロチップである。ハードウェアに裏打ちされた鍵ストア262は、ハードウェアバスを使用することによってシステムの残りの部分と通信する。ハードウェアに裏打ちされた鍵ストア262を組み込んでいるクライアントデバイス252は、暗号鍵を作成し、それらを、ハードウェアに裏打ちされた鍵ストア262によってのみ暗号化解除することができるように暗号化することができる。鍵のラッピングまたはバインディングと呼ばれるこのプロセスは、クライアントデバイス252の他の部分(たとえば、上記で説明されたクライアントデバイスオペレーティングシステム(OS))からなど、開示から、したがって、クライアントデバイス上で動作する悪意のあるプロセスに対する潜在的な脱出から、または他のデバイスへの脱出から鍵を保護する助けとなることができる。ハードウェアに裏打ちされた鍵ストア262は、ストレージルート鍵と呼ばれ、ハードウェアに裏打ちされた鍵ストア262それ自体内に記憶されるマスタラッピング鍵を有することができる。ハードウェアに裏打ちされた鍵ストア262内で作成されるストレージルート鍵のプライベート部分またはエンドースメント鍵は、他の構成要素、ソフトウェア、プロセス、またはユーザに決してさらされない。ハードウェアに裏打ちされた鍵ストア262は、命令を処理するためにそれ自体の内部ファームウェアおよび論理回路を使用するので、オペレーティングシステムに依拠せず、オペレーティングシステムまたはアプリケーションソフトウェアに存在し得る脆弱性にさらされない。
【0068】
図7に戻ると、クライアントデバイス252は、公開鍵をクラウドインターフェース256に提供し(
図7におけること(1))、これは次いでRoT257によって公開鍵に署名させ(
図7におけること(2))、署名済み公開鍵をクライアントデバイスに返す(
図7におけること(3))。RoT257によって公開鍵に署名させることは、ゲートウェイ263、仮想配信アプライアンス253、およびブローカ260もまたRoTを信頼し、したがってクライアントデバイス公開鍵を認証するためにその署名を使用することができるので重要である。
【0069】
次いで、クライアントデバイス252は、接続リースを得るためにクラウドインターフェース256を介してCLIS258と通信し得る(
図7におけること(4))。クライアントデバイス252の公開鍵は、ブローカ260を介して間接的に、またはクライアントデバイスによって直接、ホストまたは仮想配信アプライアンス253(たとえば、Citrix VDA)に提供され得る。本例では、仮想配信アプライアンス253は、上記で説明されるレガシー仮想配信アプライアンス204とは対照的に、接続リースとともに使用するためにイネーブルされる。クライアントデバイス252の公開鍵が仮想配信アプライアンス253に間接的に提供される場合には、安全なクライアント公開鍵送信のために、クライアントからブローカへの通信および仮想配信アプライアンスからブローカへの通信に関連付けられたセキュリティが利用され得る。しかし、これは、比較的多数のクライアント公開鍵(複数の異なるクライアントデバイス252からのもの)が間接的に仮想配信アプライアンス253に通信されることを含み得る。
【0070】
一方、クライアントデバイス252の公開鍵は、クライアントデバイスによって仮想配信アプライアンス253に直接提供することができ、これは、この場合には、ゲートウェイ263を介して行われる(
図7におけること(5))。クライアントデバイス252および仮想配信アプライアンス253は共に、RoT257を信頼する。仮想配信アプライアンス253は、RoT257を信頼し、RoT公開鍵へのアクセスを有するので、仮想配信アプライアンス253は、公開鍵上のRoT署名に基づいてクライアントデバイス252の有効性を検証することができ、有効である場合には、クライアントデバイス公開鍵を信頼し得る。さらに別の実施形態では、クライアントデバイス公開鍵は、任意選択で、ブローカ260によって事前に署名を受けてもよい。クライアントデバイス252および仮想配信アプライアンス253は共に、ブローカ260を信頼する。仮想配信アプライアンス253はブローカ260を信頼し、ブローカ公開鍵へのアクセスを有するので、仮想配信アプライアンス253は、公開鍵上のブローカ署名に基づいてクライアントデバイス252の有効性を検証することができ、有効である場合には、クライアントデバイス公開鍵を信頼し得る。図の例では、クライアントデバイス252の署名済み公開鍵は、ゲートウェイ263を介して接続リースとともに仮想配信アプライアンス253に直接提供される。例示的な一実装では、ゲートウェイ263は、たとえばCitrix Gatewayを使用して実装され得るが、異なる実施形態において他の好適なプラットフォームが使用されてもよい。
【0071】
仮想配信アプライアンス253およびゲートウェイ263は、クラウドコネクタ264を介してブローカ260およびゲートウェイサービス259(たとえば、Citrix Secure Web Gatewayを使用して実装され得る)と通信し得る。例示的な一実施形態では、クラウドコネクタ264は、Citrix Cloud Connectorを用いて実装され得るが、異なる実施形態において他の好適なプラットフォームが使用されてもよい。Citrix Cloud Connectorは、Citrix Cloudとカスタマリソースロケーションとの間で通信のためのチャネルとして働く構成要素であり、複雑なネットワーキングまたはインフラストラクチャ構成を必要とすることなくクラウド管理を可能にする。しかし、異なる実施形態において他の好適なクラウド接続インフラストラクチャが使用されてもよい。
【0072】
クライアントデバイス252署名済み公開鍵またはクライアントデバイス署名済み公開鍵のハッシュ(拇印)は、CLIS258によって生成される接続リース内に含まれ、接続リースの署名を計算するときに含まれる接続リースのフィールドの1つである。接続リースの署名は、接続リースコンテンツが有効であり改ざんされていないことを確実にする助けとなる。その結果、接続リースは、特定の認証済みユーザだけでなく特定のクライアントデバイス252のために作成される。
【0073】
さらに、仮想配信アプライアンス253は、クライアントデバイス252が対応する秘密鍵の真のオーナであることを妥当性検証するためにチャレンジレスポンスを使用し得る。最初に、仮想配信アプライアンス253は、クライアントデバイス252の公開鍵が有効であること、より具体的には、RoT257および/またはブローカ260によって署名されていることを妥当性検証する(
図7におけること(6))。図の例では、クライアントデバイス252の公開鍵は、上記のように、クライアントデバイスによって仮想配信アプライアンス253に直接送られている。いくつかの実施形態では、クライアントデバイス252または仮想配信アプライアンス253がCLIS258またはブローカ260に対してオフラインであるとき、接続リース取り消しが適用され得る。接続リースはオフラインモードで使用され得るので、オンラインであることは接続リースの使用のための要件ではない。仮想配信アプライアンス253によって提供される情報とブローカ260によって比較されるように、接続リースおよび取り消しリスト詳細がデータベース261内に記憶され得る。
【0074】
次に、クライアントデバイス252と仮想配信アプライアンス253との間で早期のセッションを確立したとき、たとえば、トランスポートおよびプレゼンテーションレベルのプロトコル確立後、仮想配信アプライアンス253は、その秘密鍵でナンス(暗号通信において1回使用される任意の数)に署名するようにクライアントデバイス252にチャレンジする(
図7におけること(7))。仮想配信アプライアンス253は、クライアントデバイス252の公開鍵でナンスの署名を検証する。これは、クライアントデバイス252が実際に対応する秘密鍵のオーナであることを仮想配信アプライアンス253が知ることを可能にする。このことは、いくつかの実施形態において、望むなら、クライアントデバイス252の公開鍵をRoT257および/またはブローカ260で妥当性検証する前に実施することができることに留意されたい。
【0075】
さらに、仮想配信アプライアンス253は、接続リースがクライアントデバイス252の公開鍵に一致する公開鍵(または公開鍵のハッシュ)を含むことを妥当性検証する。より具体的には、仮想配信アプライアンス253は、最初に、接続リース署名および日付を妥当性検証し、リース上のブローカ260の署名が有効であること(仮想配信アプライアンスはRoTを信頼するので、RoT257署名済みブローカ公開鍵を使用して)、およびリースが満了していないことを確認する。さらに、仮想配信アプライアンス253は、接続リースがクライアントデバイス252の公開鍵、またはクライアントデバイス公開鍵のハッシュを含むことを検証し、その場合、仮想配信アプライアンスは、クライアントデバイス公開鍵のハッシュを計算する。接続リースが、一致するクライアントデバイス252の公開鍵を含む場合には、仮想配信アプライアンス253は、それがそのために作成されたクライアントデバイスから接続リースが送られたことを確認する。
【0076】
その結果、接続リースがクライアントデバイス252から盗難にあい、悪意のあるクライアントデバイスから使用される場合、悪意のあるクライアントと仮想配信アプライアンス253との間のセッション確立は成功しないことになる。なぜなら、悪意のあるクライアントデバイスは、クライアント秘密鍵へのアクセスを有しておらず、この鍵は、エクスポート不可能であり、ハードウェアに裏打ちされた鍵ストア262内に記憶されるからである。
【0077】
また、図の接続リース管理インフラストラクチャは、ターゲットリソースロケーションとしての仮想配信アプライアンス253(たとえば、Citrix VDAなど)からブローカ260(たとえば、Citrix Virtual Apps and Desktops Broker)への「セッションのための逆準備」動作を使用する接続リース妥当性検証を可能にすることが有利である。これは、クライアントデバイス252と仮想配信アプライアンス253との間で行われる接続リース交換とともに、ブローカ260および仮想配信アプライアンス253からの署名された応答を利用して行われ得る。これらは、接続リース処理に関してレジリエンシ、セキュリティ、性能、およびユーザエクスペリエンス(UX)のために重要な役割を果たす。しかし、上記で
図6を参照して説明されたレガシー仮想配信アプライアンス204は、そのような接続リース交換のために構成されないので、これらの利点は、そうでない場合は、そのようなレガシーアプライアンスを使用する間は可能でないであろう。
【0078】
次に
図8を参照すると、クラウドベースの接続リースの準備ができた仮想配信アプライアンス253に加えて、接続リースの準備ができていないレガシー仮想配信アプライアンス267にも対応するシステム250の別の構成が、次に説明される。図の例では、接続リースイネーブルド仮想配信アプライアンス253(ここでは、Citrix VDA C)とともに、2つのレガシー仮想配信アプライアンス267(ここでは、Citrix VDA AおよびVDA B)がある。仮想配信アプライアンス253、267は、1つまたは複数のコネクタアプライアンス266(上記で説明されたコネクタアプライアンス206に類似した)とともに、共通ゾーン(ゾーンA)内に設置される。さらに、クライアントデバイス252はワークスペースアプリ270を動作させ、ワークスペースアプリ270は、上記で論じられたように、CLIS258における仮想接続リースフォルダ272に記憶された接続リース情報と同期されたその接続リースのためのフォルダ271を維持する。
【0079】
コネクタアプライアンス266は、有利には、クラウドコンピューティングサービス250との信頼された接続リース交換のためのエミュレータとして機能する。より具体的には、コネクタアプライアンス266は、クライアントデバイス252およびゲートウェイ263に対して接続リース可能仮想配信アプライアンス253をエミュレートする。さらに、それは、クラウドコンピューティングサービス250(たとえば、ブローカ260、信頼のルート257など)と通信しながら接続リース可能匿名仮想配信アプライアンスをエミュレートし、それが、解決されたリソースロケーションアドレス、クレデンシャルなどを受信することを可能にする。さらに、コネクタアプライアンス266は、レガシー仮想配信アプライアンス267と通信しながら、ブローカ260をさらにエミュレートまたは偽装する。代替的実施形態では、コネクタアプライアンス266は、ブローカ260をエミュレートまたは偽装する代わりに、ブローカ260を介してレガシー仮想配信アプライアンス267と通信する。さらに、コネクタアプライアンス266は、クライアントデバイス252(たとえば、ワークスペースアプリ270)が、レガシー仮想配信アプライアンス267をセキュアかつ確実に接続するためにレガシースタイル接続ディスクリプタファイル(たとえば、ICAファイル)を作成することを可能にするが、これは、これらのアプライアンスが接続リース互換でない場合であっても当てはまる。
【0080】
次に、例示的なコネクタアプライアンス266の実装が、
図9Aを参照して説明される。コネクタアプライアンス266は、例示的には、仮想配信アプライアンス253とともに使用されるであろう同じ接続リース互換の信頼されたプロトコルを使用してクライアントデバイス252、ゲートウェイ263(たとえば、オンプレミスゲートウェイアプライアンス)、およびゲートウェイサービス259(たとえば、複数のポイントオブプレゼンス(POP)を有するクラウドゲートウェイサービス)と通信するように構成されたホストモジュール273を含む。プロキシモジュール274は、ブローカ260およびレガシー仮想配信アプライアンス267と通信するように構成される。プロキシモジュール274は、例示的には、仲介プロトコル(BP)モジュール275を含む。たとえば、BPモジュール275は、ブローカ260とレガシー仮想配信アプライアンス267(たとえば、図のVDA A(レガシー)267)と接続リース可能仮想配信アプライアンス253との間でCBPプロトコルのプロキシをする、Citrixによる接続ブローカプロトコル(CBP)モジュールであってよい。プロキシモジュール274は、例示的には、セキュアなチケット機関(STA)モジュール276と、ウェブプロキシモジュール277も任意選択で含んでよい。ウェブプロキシモジュール277は、レガシー記憶インターフェース(たとえば、CitrixによるオンプレミスのStoreFront)がブローカ260と通信することを可能にする。ウェブプロキシモジュール277は、HTTP要求およびHTTPS要求を受け入れてよい。たとえば、ウェブプロキシモジュール277は、NfUseストアプロトコルをブローカ260にプロキシする、CitrixによるNfUseプロキシモジュールであってよい。以下でさらに論じられるように、コネクタアプライアンス266は、有利には、ローカルホストキャッシュ(LHC)278に関連付けられたローカルデータベース279も含み、これは、クラウドコンピューティングサービス250が一般に利用可能でないとき、または特にブローカ260が利用可能でないとき、オフラインキャッシュ動作に対するフォールバックを可能にする。たとえば、ローカルホストキャッシュ(LHC)278に関連付けられたローカルデータベース279は、パブリッシュされたリソースエンタイトルメント、仮想セッション情報などを含んでよい。
図9Aの例では、クラウドコンピューティングサービス250(および、より具体的には、ブローカ260)はオンラインであり、接続リース妥当性検証を実施するために利用可能である。
【0081】
次に、コネクタアプライアンス266の別の例示的な実装が
図9Bを参照して説明される。
図9Bは、
図9Aにおいて説明される実装に非常に類似している。
図9Aと
図9Bの両方において、クラウドコンピューティングサービス250(および、より具体的には、ブローカ260)はオンラインであり、接続リース妥当性検証を実施するために利用可能である。しかし、
図9Bによる重要な違いは、コネクタアプライアンス266がレガシー仮想配信アプライアンス267に話しかけるためにブローカ260を偽装し、その目的のためにVDA詳細(たとえば、SID、IP、バージョンなど)を記憶しなければならないのではなく、ブローカ260が、レガシー(非修正)コール(たとえば「Prepare For Session」)を使用してレガシー仮想配信アプライアンス267に話しかけることである。この手法は、設計を単純化し、追加の利点を提示する。たとえば、レガシー仮想配信アプライアンス267に対する接続リースの解決は、コネクタアプライアンス266がクライアントデバイス252にセッション妥当性検証を返す前に、コンピューティングデバイス201、および具体的にはブローカ260によって実施され、コネクタアプライアンス266に返されることである。これは、ブローカ260がオンラインであるとき、それが、異なるゾーン内のVDAを含んで、任意のVDAアドレスを解決することができる。たとえば、ブローカ260自体が、別のコネクタアプライアンス266に話しかけてよく、あるコネクタアプライアンス266が「Reverse Prepare For Session」を呼び出すのではなく、そのVDAにおいて「Prepare For Session」を開始するために異なるゾーン内の異なるコネクタアプライアンス266を呼び出すものとする。したがって、有利には、コネクタアプライアンス266は、ワークスペースアプリ270またはゲートウェイ263(もしくはゲートウェイサービス259)を、異なるゾーン内の別のコネクタアプライアンス266にリダイレクトする必要はない。したがって、ブローカ260は、代わりに、解決されたVDAが異なるゾーン内に偶然あるとき、接続リース解決プロセスを短縮する。
【0082】
加えて
図10を参照すると、コネクタアプライアンス266は、上記で説明されたようにそれ自体の秘密/公開鍵ペアを生成することによってクラウドコンピューティングサービス255に登録し、コネクタ公開鍵をブローカ260に提供し、ブローカ260は、それを署名のためにRoT257に提供する。署名されたコネクタ公開鍵はブローカ260に返され、ブローカ260は、それを、RoTの公開鍵および(RoTによって)署名されたCLIS258公開鍵とともにキャッシュし、それらのすべては、
図9Aにおいて示されるように、次いで、BPモジュール275によって記憶のためにコネクタアプライアンス266に提供されてよい。代替的実施形態では、コネクタアプライアンス266における公開鍵記憶は、
図9Bにおいて示されるように、ホスト273によって提供されてよい。
【0083】
次に、コネクタ266によるブローカ260に対するレガシー仮想配信アプライアンス267の登録が、
図11を参照して説明される。レガシー仮想配信アプライアンス267は、その登録情報を、コネクタアプライアンス266、より具体的にはBPプロキシモジュール275に提供する。コネクタアプライアンス266は、ID、ネットワークIPアドレス、バージョンなどの、レガシー仮想配信アプライアンス267の詳細を記憶する。次いで、コネクタアプライアンス266は、この情報を伝えるためにブローカ260に接続し、レガシー仮想配信アプライアンス267を登録してよい。これから先、CLIS258が、接続リースの一部としてレガシー仮想配信アプライアンス267をクライアントデバイス252に割り当てるとき、接続リースは、有利には、クライアントデバイスがそのセッション要求をコネクタアプライアンス266に向けるように、コネクタ266のネットワークIPアドレスを含んでよい。一方、CLIS258が、接続リースイネーブルド仮想配信アプライアンス253をクライアントデバイス252に割り当てる場合、接続リースは、そのような仮想配信アプライアンスの直接ネットワークIPアドレスを含んでよく、クライアントデバイスは、コネクタアプライアンス266を通過せずにこの仮想配信アプライアンスと接触してよい。
【0084】
いくつかの実装では、
図9Bで説明された代替手法と矛盾せず、以前に論じられたように、ブローカ260がオンラインであるとき、コネクタアプライアンス266は、ID、ネットワークIPアドレス、バージョンなどの、レガシー仮想配信アプライアンス267の詳細を記憶する必要はない。代わりに、コネクタアプライアンス266は、これらの詳細をブローカ260に中継するだけでよい。しかし、ブローカ260のオフライン条件では、レガシー仮想配信アプライアンス267は、たとえば、CitrixによるCBPプロトコルによってサポートされるレガシー機構を使用して、コネクタアプライアンス266(ブローカ260の代わりに)に登録し、VDAに関する詳細は、コネクタアプライアンス266に記憶されてよい。ブローカ260のオフライン条件は、
図14Aおよび
図14Bを参照して後でさらに論じられる。
【0085】
異なる実施形態ではレガシー仮想配信アプライアンス267にクライアントデバイス252を接続するために異なる手法が使用されてよい。次に、接続がゲートウェイ263を通じて取り扱われる、例示的な実装は、
図12Aのシーケンスフロー
図280に説明され得る。代替的実施形態では、ゲートウェイサービス259は、ゲートウェイ263の代わりにまたはこれに加えて、使用されてよいことが理解されるべきである。クライアントデバイス252は、ゲートウェイ263(またはゲートウェイサービス259)と接続リース相互信頼接続を確立し、これは、上記で論じられたように、コネクタアプライアンス266に類似した接続が確立される。接続リースは、ゲートウェイ263(またはゲートウェイサービス259)と、クライアントデバイス252に割り当てられたコネクタアプライアンス266の、ネットワークアドレスまたは完全修飾ドメイン名(FQDN)を含む。いくつかの実施形態では、コネクタアプライアンス266は、接続リースを期限切れとチェックする(たとえば、期限切れ日をチェックする)またはテンパリングする(たとえば署名をチェックする)など、接続リースの妥当性検証を実施してよい。異なる実施形態では、コネクタアプライアンス266における接続リース妥当性検証は、BPモジュール275またはホスト273によって形成されてよい。次いで、コネクタアプライアンス266は、上記で説明されたように、セッション妥当性検証要求(Reverse Prepare For Session)において、接続リースイネーブルド仮想配信アプライアンス253をブローカ260に偽装またはエミュレートする。
【0086】
セッションが許可されると仮定すると、次いで、ブローカ260は、セッション妥当性検証を署名してコネクタアプライアンス266に返し、次いで、コネクタアプライアンス266は、レガシー仮想配信アプライアンス267に対するブローカ260の動作を偽装またはエミュレートする。より具体的には、コネクタアプライアンス266は、ログオンチケットを生成し、それを使用して、クライアントデバイス252によって提供される可能性のあるユーザクレデンシャルを暗号化してよい。次いで、コネクタアプライアンス266は、クライアントデバイス252とのセッションを準備する(および任意選択で、暗号化されたユーザクレデンシャルおよびログオンチケットのハッシュを提供する)ようにレガシー仮想配信アプライアンス267に指示し、レガシー仮想配信アプライアンス267はそれに応じて応答する。レガシー仮想配信アプライアンス267は、リスナ(たとえば、HDXリスナ)を開始してよく、どのプロトコルを使用するべきか(たとえば、Citrixによる伝送制御プロトコル(TCP)または啓発されたデータ輸送(EDT))などに関する情報に接続するためにインターネットプロトコル(IP)アドレスおよびポートなどのマシンの詳細を返してよい。次いで、コネクタアプライアンス266は、ログオンチケットからPrepare For Sessionコマンドに応答して、妥当性検証されたセッション結果を生成および署名し(Validate Session Result)、次いで、それをゲートウェイ263(またはゲートウェイサービス259)に転送してよい。ゲートウェイ263(またはゲートウェイサービス259)は、ゲートウェイ接続チケットを生成し、これを、Validate Session Resultとともにクライアントデバイス252に転送する。ゲートウェイ接続チケットは、ゲートウェイ263(またはゲートウェイサービス259)がクライアントデバイス252からレガシー仮想配信アプライアンス267への接続を許可およびルーティングするのに十分な情報を含有してよい。ゲートウェイ接続チケットは、妥当性検証されたセッション結果(Validate Session Result)の内容に基づいて生成されてよい。クライアントデバイス252は、現在、それがレガシー仮想配信アプライアンス267にアクセスするために使用することができる接続ディスクリプタファイル(たとえば、ICAファイル)を生成することが可能である。接続ディスクリプタファイルは、接続リースおよび妥当性検証されたセッション結果に基づいて生成されてよい。次いで、クライアントデバイス252は、ゲートウェイ接続チケットを使用してゲートウェイ263を通じてレガシー仮想配信アプライアンス267への(たとえば、HDX接続を介した)セッション要求を始める。クライアントデバイス252はまた、検証されたセッション結果から抽出されたログオンチケットを、仮想セッションへのシングルサインオンのために、レガシー仮想配信アプライアンス267に供給してもよい。たとえば、レガシー仮想配信アプライアンス267は、ログオンチケットのハッシュを生成し、ログオンチケットハッシュに基づいて記憶された暗号化されたユーザクレデンシャルを見つけ、ログオンチケットを使用してクレデンシャルを復号し、クレデンシャルを仮想セッション認証サブシステム(たとえば、クレデンシャルプロバイダまたはクレデンシャルプロバイダフィルタ)に提供してよい。
【0087】
別の例示的な手法が、
図13Aのシーケンスフロー
図281に示されており、この図には、ゲートウェイ263(またはゲートウェイサービス259)はない。上記で
図12Aを参照して説明された動作は、上記で述べられた情報を交換するためにクライアントデバイス252とコネクタアプライアンス266がそれら自体の間で直接的に接続リース相互信頼接続を確立することと、クライアントデバイスが、(たとえば、HDX接続を介して)レガシー仮想配信アプライアンス267と直接的にセッションを始めることを例外として、同じままである。例示されたフローに関与されたゲートウェイ263(またはゲートウェイサービス259)はないので、ゲートウェイ接続チケットは生成されず、必要とされない。種々の手法が、トランスポート層セキュリティ(TLS)/伝送制御プロトコル(TCP)、Citrixによる共通ゲートウェイプロトコル(CGP)などを使用して実装される1つまたは複数のトランスポート層におけるセキュアなトンネル(たとえば、Citrixによる接続リース交換および相互信頼プロトコル(CLXMTP)、ICAプロトコルトンネルなど)の使用を含む相互信頼接続を確立するために使用されてよい。
【0088】
図9Bにおいて説明される代替手法と矛盾しない代替実装が、次に、
図12Bのシーケンスフロー
図280’および
図13Bのシーケンスフロー
図281’(ゲートウェイなし)を参照して説明される。
図12Aのシーケンスフロー
図280および
図12Bのシーケンスフロー
図281とそれぞれ比較した違いは、フロー280’および281’では、コネクタアプライアンス266が、認証トークンからユーザクレデンシャルを解決し、それらをブローカ260に提供し、ブローカ260は、以前に説明されたようにユーザクレデンシャルに基づいてログオンチケットを作成し、ブローカ260は、レガシー仮想配信アプライアンス267への「Prepare For Session」コールを実施する。
【0089】
いくつかの実装では、コネクタアプライアンス266がファイアウォールの後ろにあり、クライアントデバイス252によって直接的にアクセス可能でないときなどに、別のタイプの接続手法が使用されてよい。より具体的には、相互信頼接続は、ワークスペースアプリ270からゲートウェイ263(またはゲートウェイサービス259)を介してコネクタアプライアンス266まで確立される。いくつかの実施形態では、これは、ファイアウォールがゲートウェイ263(またはゲートウェイサービス259)のIP範囲からのコネクタアプライアンス266への着信接続を可能にし得るので、可能であり得る。セキュリティ上の理由で、これは、ゲートウェイ263(たとえば、オンプレミスゲートウェイアプライアンス)により一般に当てはまることがあり、ゲートウェイサービス259が当てはまるのはまれである。他の実施形態では、これは、コネクタアプライアンス266が、ファイアウォールによって可能にされ、制御メッセージを交換するために使用されてよいゲートウェイ263(またはゲートウェイサービス259)との永続的な認証された発信トランスポート接続を有してよいので、可能であり得る。言い換えれば、ファイアウォールは、コネクタアプライアンス266へのいかなる着信トランスポート接続もセキュリティ上の理由で可能にしないことがあるが、それは、依然として、発信トランスポート接続を可能にすることがある。さらに、必要に応じて、たとえばゲートウェイ263(またはゲートウェイサービス259)からの制御メッセージに基づいて、コネクタアプライアンス266は、追加の発信トランスポート接続を確立してよく、これもまたファイアウォールによって可能にされる。次いで、この追加のトランスポート接続は、接続リース相互信頼プロトコルを実施するためにゲートウェイ263(またはゲートウェイサービス259)によって使用されてよい。これは、上記で
図12Aおよび
図12Bを参照して説明されるゲートウェイ解決式ゲートウェイ263(またはゲートウェイサービス259)起動に類似している。しかし、本明細書では、相互信頼プロトコルは、これは、最終的にはレガシー仮想配信アプライアンス267への直接接続になること、したがって、ゲートウェイ接続チケットは生成されるべきでないことを、たとえばタイプ-長さ-値(TLV)能力を有するゲートウェイ263(またはゲートウェイサービス259)に指示する。
【0090】
この手法により、ゲートウェイ263(またはゲートウェイサービス259)は、有利には、接続リースを解決するためにコネクタアプライアンス266と接触するために使用されるが、最終的な接続は、依然として、(たとえば、HDXを介して)仮想配信アプライアンス267に対して直接的であり、これは、ゲートウェイ263(またはゲートウェイサービス259)を通じた接続をルーティングしなければならないことによる潜在的な性能劣化を回避する助けとなる。
【0091】
さらに別の構成手法では、相互信頼接続は、前述のように、ワークスペースアプリ270からゲートウェイ263(またはゲートウェイサービス259)を介してコネクタアプライアンス266まで実施される。しかし、この実装における相互信頼プロトコルは、これは最終的には直接接続であってよい(が、必ずしもそうでなくてよい)ことをゲートウェイ263(またはゲートウェイサービス259)(たとえば、TLV能力を有する)に指示する。したがって、ゲートウェイ263は、依然として、ゲートウェイ接続チケットを生成する。次いで、ワークスペースアプリ270は、(1)第1の接続ディスクリプタ(たとえば、ICA)ファイルを生成し、レガシー仮想配信アプライアンス267への直接接続を実施すること、および/または(2)第2の接続ディスクリプタ(たとえば、ICA)ファイルを生成し、ゲートウェイ接続チケットを使用してゲートウェイ263(またはゲートウェイサービス259)を介してレガシー仮想配信アプライアンス267への接続を実施することのいずれかまたは両方を実施する。この手法は、単一のラウンドトリップへの接続回復を強化し、その後でワークスペースアプリ270において潜在的なフォールバックを有するセッション起動を実施することによって、2つのラウンドトリップがクライアントデバイス-ゲートウェイ-コネクタアプライアンス-ブローカ-仮想配信アプライアンスに関与することを回避する。
【0092】
いくつかの実装では、接続リース起動は、デフォルトコードパスでなくてよいが、接続ディスクリプタ(たとえば、ICA)ファイルは依然として、第1選択である。たとえば、仮想配信アプライアンス267における仮想コンピューティングセッションへのSSOnが、コネクタアプライアンス266への接続リースを使用することに関連して利用可能でない(たとえば、コネクタアプライアンス266バージョンはログオンチケットの生成をサポートしない、またはクライアントデバイス252バージョンはユーザクレデンシャルのセキュアな送信をサポートしない)場合、ユーザは、接続ディスクリプタファイル起動を好み、停止の場合にレジリエンス(resiliency)のためのフォールバックとしてのみ接続リースを使用してよい。そうでない場合、SSOnサポートなしで、ユーザは、起動のたびに仮想セッションにおけるそれらのクレデンシャルを対話的に入力しなければならないことがある。しかし、通常まれな出来事であるが、停止の場合のみ接続リーシングを使用することは、接続リース解決に関するテレメトリデータ、たとえば、接続リースおよび鍵はワークスペースアプリ270に正常に同期されているかどうか、成功することになっている(試みられる場合)接続リース起動か、どのタイプの起動が成功したか、および何が失敗し、失敗の原因は何か、接続リース解決時間はどれかなどを収集する機能を制限する。
【0093】
この問題に対処するために、ワークスペースアプリ270は、有利には、ユーザ駆動でないサイレント接続リース解決を実施してよいが、テレメトリ収集のみを目的とする。言い換えれば、ワークスペースアプリ270は、明確なユーザ要求なしで、プログレスバー、ステータスインジケータ、エラーメッセージなどのエンドユーザへの標識を提供することなく、バックグラウンドで接続リース解決を自動的にトリガし得る。ワークスペースアプリ270は、たとえば、相互信頼プロトコルにおいてTLV能力を使用することによって、これは、仮想セッションを実際に要求する前の、接続リース解像度時間などに関する情報収集目的でのテレメトリ収集起動にすぎないことをゲートウェイ263(またはゲートウェイサービス259)またはコネクタアプライアンス266(それぞれ、ゲートウェイ解決型起動およびコネクタアプライアンス解決型起動の場合)に指示する。ゲートウェイ263(またはゲートウェイサービス259)およびコネクタアプライアンス266は、それらが必ずしもブローカ260と接触しなくてよいことを除いて、通常通り動作する。その理由としては、そうでなければブローカ260が、負荷分散技法のスキューイング、セッション要求の準備のできたレガシー仮想配信アプライアンス267と誤って接触することを回避するためにテレメトリ起動を認識する必要があり得るからである。
【0094】
ワークスペースアプリ270はまた、テレメトリ要求に続いてValidate Session Result成功を受信することを除いて、通常通り動作し、ワークスペースアプリ270は、実際の起動を実施する必要はない。ワークスペースアプリ270は、バックグラウンドでサイレント接続リース解決を周期的に始めてもよいし、実際のユーザ接続ディスクリプタ(たとえば、ICA)ファイル起動と並列に始めてもよいし、実際のユーザ接続ディスクリプタファイル起動に続く短時間の遅延の後に始めてもよい。構成要素は、データポイントも、接続リース使用法がユーザ駆動でないが、テレメトリのみの目的であることを示すためにマーキングされ得ることを除いて、通常通り接続リースの使用法に関するテレメトリデータポイントを記録してよい。
【0095】
さらに、接続時間を改善する助けとなるために、ワークスペースアプリ270は、いくつかの実施形態では、それが内部(たとえば、同じLAN上にある)にあるか外部であるかどうかを決定するために、接続リースにリストされた1つまたは複数のコネクタアプライアンス266にpingすることがある。pingは、周期的に、および/または起動時に、たとえば、ほとんどの状況下でpingよりも長くかかるであろうゲートウェイ解決が行われている間、実施されてよい。pingからの結果に基づいて、ワークスペースアプリ270は、接続リース内のデフォルト命令を無効にし、代わりに、異なるコネクタアプライアンス266または仮想配信アプライアンス253に仮想セッションを要求してよい。例として、「ping」は、インターネット制御メッセージプロトコル(ICMP)を使用して実施されてよいが、異なる実施形態では、他の適切な手法も使用されてよい。たとえば、ICMPは、ポートをサポートしない。しかし、ワークスペースアプリ270は、コネクタアプライアンス266上の特定の接続リース相互信頼プロトコルポートが開いているかどうかもチェックすることを必要とすることがある。いくつかの実装では、ワークスペースアプリ270は、telnetコマンド(open <IPアドレス> <ポート>)またはPowerShell Test-NetworkConnectionコマンド(tnc <IPアドレス> -ポート <ポート>)の等価物を実施することによって、(リモート)ネットワークポートが開いており、リッスン中であるかどうかをチェックすることがある。
【0096】
上記で述べられたように、コネクタアプライアンス266および仮想配信アプライアンス253、267は、異なるゾーン内に設置されてよい。ゾーンは、まとめてグループ化され、特定の地理的領域、顧客、施設などにサービスするように割り当てられた、1つまたは複数のコネクタアプライアンス266と、仮想配信アプライアンス253および/または267とを含む。ゾーンA内でのコネクタのping成功は、ゾーンA内の仮想配信アプライアンス253、267がアクセス可能であることのみを保証する。ワークスペースアプリ270は、解決された仮想配信アプライアンス253、267およびそれらのゾーン関連付けを前もって知らないことがある。したがって、ワークスペースアプリ270は、たとえば、異なるゾーン内のコネクタアプライアンス266にpingし、各ゾーンに関するマップ(内部/外部)を維持してよい。
【0097】
解決された仮想配信アプライアンス253、267アドレスがブローカ260(またはブローカ停止の場合はLHC278)からプロキシ274に戻ることに加えて、Reverse Prepare for Sessionプロトコルコマンド(または他の実装では、「Resolve Address」NfUseプロトコルコマンド)も、仮想配信アプライアンス253、267ゾーンマッピングを含む。このゾーン情報は、Validate Session Resultに挿入されるので、そのため、ワークスペースアプリ270は、仮想配信アプライアンス253または267が属するのはどのゾーンであるかを決定し得る。さらに、Validate Session Resultからのゾーン情報を使用して、ワークスペースアプリ270は、それが、解決されたVDAに対して外部/内部であるかを決定するために、その内部マップに問い合わせてよい。
【0098】
種々の優先順位付け強化が、異なる実施形態において使用されることがある。例示的な1つの手法では、ワークスペースアプリ270は、ゲートウェイ解決式直接起動を最初に試み、これに続いて、ゲートウェイ解決式ゲートウェイ263(またはゲートウェイサービス259)起動を試みてよい。あるいは、ワークスペースアプリ270は、ゲートウェイ解決式の組み合わされたゲートウェイ/直接起動を試みてよいが、これは依然として直接起動を好む。さらに、ワークスペースアプリ270は、コネクタ解決式直接起動を試みてよい。
【0099】
コネクタ解決式直接起動を依然として試みるための1つの理由は、ゲートウェイ263(またはゲートウェイサービス259)がダウンしている(利用可能でない、またはそれに対する利用可能な接続がないので)場合、または顧客のインターネット接続がダウンしている場合、残されている唯一のオプションが、コネクタアプライアンス266に通信しようとすることであるためであり、これは、コネクタアプライアンスが(たとえば、緩和されたファイアウォール軽減のために)ワークスペースアプリ270から直接的にアクセス可能である場合に機能し得る。
【0100】
さらなる改善点として、コネクタアプライアンス266のセットがアクセス可能であるかどうかを決定するために、ワークスペースアプリ270は、上記で説明されたように、コネクタアプライアンスにpingし、ゾーンマッピングを保ってよい。これは、仮想配信アプライアンス267がひとたび解決されると、直接対ゲートウェイ263(またはゲートウェイサービス259)起動の判断を進める助けとなり、ゲートウェイ解決よりも迅速であり得る、直接起動に優先順位を付ける判断も進める。
【0101】
さらに別の代替形態では、ワークスペースアプリ270は、ネットワークロケーションサービス(NLS)を使用して、それがコネクタアプライアンス266(と、したがってそれぞれのゾーン内の仮想配信アプライアンス253、267)に対してリモートであるかローカルであるかどうかを決定してよい。次いで、この情報は、ゲートウェイ解決式直接起動とコネクタアプライアンス解決式直接起動(内部の場合)対ゲートウェイ解決式ゲートウェイ起動(外部の場合)を判断するために使用されてよい。たとえば、いくつかの実施形態では、NLSは、コネクタアプライアンス266および仮想配信アプライアンス253、267のネットワークロケーションがNLSとともに構成され得るクラウドサービスとして実装されてよい。これらのネットワークロケーションは、クライアントデバイス203a~203nが内部から接続される(たとえば、オフィスまたは支店ロケーションにおける企業ネットワーク)ネットワークのパブリックIP範囲に対応してよい。接続リース解決を開始する前または周期的に、クライアントデバイス252は、NLSと接触し得る。NLSは、クライアントデバイス252は、クライアントデバイス252が接続されているネットワークのパブリックIPアドレスに基づいて構成されたネットワークロケーションに対して内部であるか外部であるかを検出し得る。次いで、NLSは、それが、構成されたネットワークロケーションに対して現在内部であるか外部であるという標識をクライアントデバイス252に返す。しかし、NLSがダウンしている、またはそうでない場合はクライアントデバイス252とNLSとの間の接続がない(たとえば、インターネットのない)場合、クライアントデバイス252は、NLSを使用することが可能でなく、それが内部であるか外部であるかを知らない。したがって、クラウドベースのNLS実装は、たとえばオンライン条件中のみ、限られた値を有する。接続リーシングは、オフライン条件(たとえば、インターネットなし、またはクラウドサービスがダウンしている)でも機能すると予想されるので、以下でさらに説明されるように、異なる手法が必要とされることがある。
【0102】
さらに別の代替形態では、ワークスペースアプリ270は、接続時間を最適化することとHDX性能を満たすことの両方の助けとなるために、異なるタイプの解決を並列に実施してよい。あまり有利でない接続(たとえば、ゲートウェイ263またはゲートウェイサービス259を介した)が最初に利用可能である場合、少し経ってから直接接続が利用可能になるが、ワークスペースアプリ270は、ゲートウェイ接続から直接接続に切り換えてよい。たとえば、いくつかの実装では、切り換えは、強制されたCGP切断の後にサイレントCGP(セッション信頼性)再接続を使用して実施されることがある。具体的には、クライアントデバイス252は、CGPプレゼンテーションレベルプロトコルセッションそれ自体を終わらせることなくゲートウェイへのプロトコルCGPによって使用されるトランスポート接続を故意に(強制的に)切断することがある。次いで、クライアントデバイス252は、すでに確立された直接接続を使用してCGPセッションを再開する、たとえば、Citrixから市販されているCGPセッション信頼性HDX特徴を使用してもよい。さらに、ゲートウェイ263(またはゲートウェイサービス259)から直接接続に切り換えるのではなく、ワークスペースアプリ270は、複数の並列接続(マルチパス)を維持し得る。これは、接続時間を最適化するだけでなく、複数のアグリゲート帯域幅の使用も可能である。マルチストリームICA(MSI)は、異なる並列接続上でイネーブルにされてよい。
【0103】
次に
図14Aおよび
図14Bを参照すると、ブローカ260が利用可能でない(オフライン)ときにコネクタアプライアンス266が用い得るオプションが次に論じられる。
図9Aおよび
図9Bに示される例では、ブローカ260は利用可能であり、LHC278は使用されない。しかし、
図14Aおよび
図14Bに示されるようにブローカ260がオフラインであるとき、コネクタアプライアンス266は、LHC278に戻ることによってある程度ブローカの役割を引き継ぐことがある。具体的には、
図14Aで開始するように、コネクタアプライアンス266は、いくつかの例では、上記で論じられたように仮想配信アプライアンス267アドレスを解決することによってブローカ260のセッション動作の逆準備を仮定してよい。他の例では、同じゾーン内のコネクタアプライアンス266は、そのゾーンのためのリーダコネクタアプライアンスを選ぶことがある。たとえば、いくつかの実装では、コネクタアプライアンス266は、ブロードキャストを介して互いに周期的に接触し、アルファベット順でリーダとなることになる第1のコネクタアプライアンス266を選ぶことがある。リーダ選定は、ブローカ260が利用可能である(オンライン)間とブローカ260が利用可能でない(オフライン)ときの両方で実施されてよい。これは、たとえばスケーラビリティを改善するために、リーダコネクタアプライアンス266がダウンし得る、ソフトウェア更新が進行中であり得る、または新しいコネクタアプライアンス266がゾーンに追加され得るからである。以前に論じられたように、すべてのコネクタアプライアンス266は、それが利用可能である(オンライン)ときブローカ260と同期された、それら自身のローカルデータベース279を維持する。しかし、ブローカ260オフライン(停止)条件中、そのような同期が起こることがある。たとえば、仮想セッション情報が、アクティブなセッション、切断されたセッションなどに関する情報とともに停止中に連続的に更新されるので、コネクタアプライアンス266は、互いの間でそれらのローカルデータベース279を同期させないことがある。代わりに、単一のリーダコネクタアプライアンス266のローカルデータベース279は、すべての接続リース要求を解決するために使用され、したがって、停止中にアクティブに更新されているゾーン内の唯一のローカルデータベース279になり、有利にはデータベース279同期問題を回避し得る。セッション要求を受信するコネクタアプライアンス266がリーダでない場合、それは、ブローカ260停止の場合にリーダへの要求をリダイレクトし得る。たとえば、これは、新しいターゲット(リーダ)コネクタアプライアンス266への相互信頼接続を実施するようにワークスペースアプリ270またはゲートウェイ263(もしくはゲートウェイサービス259)に指示する「リダイレクトターゲット」コードを通じて行われることがある。
【0104】
接続リースが、リーダコネクタアプライアンス266のゾーンとは異なるゾーン内で仮想配信アプライアンス267のために公開されるリソースを識別する場合、リーダコネクタアプライアンス266は、仮想配信アプライアンス267アドレスを解決することが可能でないことがある。ブローカ260が利用可能である(オンライン)ときのみ、ブローカ260は、異なるゾーン内のVDAアドレスを直接的に解決することが可能である、または、ブローカ260は、適切なゾーン内のコネクタアプライアンス266にリダイレクトし得る。しかし、たとえば、リーダコネクタアプライアンス266は、セッション要求を別のゾーンに暗黙的にリダイレクトしてよい。これは、たとえば、コネクタアプライアンスの次のゾーングルーピング下の接続リース内にリストされる次の(新規)ターゲットコネクタアプライアンス266への相互信頼接続を実施するようにワークスペースアプリ270またはゲートウェイ263(もしくはゲートウェイサービス259)に指示する「ソフト拒否(soft deny)」コードおよび「ゾーンフェイルオーバ」サブコードを通じて行われてよい。言い換えれば、ワークスペースアプリ270またはゲートウェイ263(もしくはゲートウェイサービス259)は、接続リース内にリストされた他のオプションへのフォールバックを実施し、それによって、それら自身を、接続リースを解決することが可能であり得る異なるゾーン内のコネクタアプライアンス266にリダイレクトする。これは、それがそれらのゾーンであるから、またはそれらが偶然アップしており動作しているブローカ260への接続性を有するから、のいずれかである。具体的には、有利には、次のゾーン内のリーダコネクタアプライアンス266は、仮想配信アプライアンス267アドレスへの接続リースを解決することを試みる。プロセスは、次のゾーン内のリーダコネクタアプライアンス266が仮想配信アプライアンス267アドレスを正常に解決する、すべてのゾーンが枯渇する、または全体的な接続リース解決プロセスのためのタイムアウトが発生するまで、継続し得る。
図9Aおよび
図9Bに以前に例示されたように、プロセスが継続する間、たとえば、停止条件が解決され、ブローカ260が再びオンラインにされた場合、次のゾーン内のコネクタアプライアンス266がブローカ260と接触することを可能にすることも可能であり、その場合、ブローカ260は、仮想配信アプライアンス267アドレスを解決する。
【0105】
さらに別の場合、コネクタアプライアンス266は、セッション要求に応答して「ソフト拒否」を用いてクライアントデバイス252またはゲートウェイ263(もしくはゲートウェイサービス259)に答えることがある。これは、たとえば、クライアントデバイス252またはゲートウェイ263(もしくはゲートウェイサービス259)に、そのセッション要求を、ブローカ260へのアクセスを持ち得る別のゾーン内などの別のコネクタアプライアンス266に「広げ」させる。より具体的には、広がりは、Validate Session Result内の「ソフト拒否」リターンコードに続いて発生する。ワークスペースアプリ270またはゲートウェイ263(もしくはゲートウェイサービス259)は、接続リース内の次のオプション(たとえば、コネクタアプライアンス266)への相互信頼プロトコル接続を実施し得る。
【0106】
いくつかの実施形態では、これらの応答の組合せが使用されることがある。たとえば、「リダイレクトターゲット」に続いて、ターゲットコネクタアプライアンス266が、「ソフト拒否」を発行することがある。たとえば、ターゲットコネクタアプライアンス266がリーダである場合でも、リースを妥当性検証するのに失敗することがあり、たとえば、コネクタアプライアンス266が、そのクロックが将来の時点で誤って設定されるクロックドリフト問題を経験する場合、接続リース妥当性検証日は期限切れと考えられてよい、またはコネクタアプライアンス266がキーの欠落または盗難に関する問題を経験する場合、接続リース署名が無効と考えられ得る。この場合、ワークスペースアプリ270またはゲートウェイ263(もしくはゲートウェイサービス259)は、広がりを始めるまたは再開する。ループを回避するために、広がりは、「リダイレクトターゲット」の前の接続リース内の前回のオプションから再開され得る。加えて、広がりは、たとえば、リダイレクトターゲットの結果として、すでに試行された接続リース内のオプションを省略してよい。言い換えれば、ワークスペースアプリ270またはゲートウェイ263(もしくはゲートウェイサービス259)は、有利には、「ターゲット可能」または「拒否」のいずれかが返されるまで広がり状態を維持し、したがって、ターゲットオプションを終えさせ得る。初期/開始広がり状態は、接続リース内の第1のオプション(たとえば、コネクタアプライアンス266)であってよい。さらに、上記で論じられたテレメトリにさらに対して、「ターゲット可能」に加えて、ワークスペースアプリ270またはゲートウェイ263(もしくはゲートウェイサービス259)またはコネクタアプライアンス266は、接続リースとともにワークスペースアプリ挙動およびレジリエンスを進め、完全に分析するために、「拒否(deny)」リターンコード、再試行期間を有する「拒否」リターンコード、「ソフト拒否」リターンコード、または「リダイレクトターゲット」リターンコードも人工的に発行してよいことが留意されるべきである。
【0107】
次に、コネクタアプライアンス266の別の例示的な実装が、
図14Bを参照して説明される。
図14Bは、
図14Aにおいて説明される実装に非常に類似している。
図14Aと
図14Bの両方において、クラウドコンピューティングサービス250(および、より具体的には、ブローカ260)はオフラインであり、接続リース妥当性検証を実施するために利用可能でない。以前に論じられたように、
図14Aおよび
図14Bに示されるようにブローカ260がオフラインであるとき、コネクタアプライアンス266は、LHC278に戻ることによってある程度ブローカの役割を引き継ぐことがある。しかし、
図14Bによる重要な違いは、コネクタアプライアンス266、特にプロキシ274が、レガシー仮想配信アプライアンス267に話しかけるためにLHC278を偽装するのではなく、LHC278が、レガシー(非修正)コール(たとえば「Prepare For Session」)を使用してレガシー仮想配信アプライアンス267に話しかけることである。
図14Bに示される追加の例示的な違いは、以前に説明されたように、コネクタアプライアンス266が、認証トークンからユーザクレデンシャルを解決し、それらをLHC278に提供し、次いで、LHC278が、ユーザクレデンシャルに基づいてログオンチケットを作成することである。
図14Bに示されるさらに別の例示的な変形形態は、接続リース相互信頼プロトコルおよびリース妥当性検証(たとえば、署名チェック)において使用されるキーがホスト273に記憶されることである。
【0108】
次に
図15のフロー
図320を参照すると、関連方法は、コンピューティングデバイス201においてクライアントデバイス203a~203nのためのパブリッシュされたリソースエンタイトルメントを記憶および更新することで開始し(ブロック321)、上記で論じられたように、ブロック322において、パブリッシュされたリソースエンタイトルメントに基づいて発行された接続リースを使用する仮想セッションへの接続をクライアントデバイスに要求する(ブロック323)。方法は、例示的には、ブロック324では、コネクタアプライアンス206において、接続リースを含むクライアントデバイス203a~203nから接続要求を受信することと、ブロック325では、コンピューティングデバイス201に接続リースの妥当性検証を要求することとをさらに含む。コンピューティングデバイス201による接続リースの妥当性検証に応答して、ブロック326では、接続リースは、仮想配信アプライアンス204に対して解決されてよく、ブロック327では、セッション妥当性検証は、クライアントデバイス203a~203nに返されてよい。上記で論じられたように、ブロック326では、コネクタアプライアンス206は、接続リースを期限切れとチェックする(たとえば、期限切れ日をチェックする)またはテンパリングする(たとえば署名をチェックする)など、接続リースの追加の妥当性検証を実施してよい。加えて、上記で論じられたように、ブロック327において、仮想配信アプライアンス204に対する接続リースの解決は、コンピューティングデバイス201によって実施され、コネクタアプライアンス206がセッション妥当性検証をクライアントデバイス203a~203nに返す前にコネクタアプライアンス206に返されてよい。加えて、上記で論じられたように、ブロック327では、コンピューティングデバイス201がオフラインであるとき、仮想配信アプライアンス204に対する接続リースの解決は、コネクタアプライアンス206によって実施されてよい。上記で論じられたように、仮想配信アプライアンス204は、接続リースではなく、接続ディスクリプタファイルに基づいて仮想セッションへのアクセスをクライアントデバイス203a~203nに提供するように構成される。しかし、上記でも論じられたように、接続ディスクリプタファイルは、セッション妥当性検証に応答してクライアントデバイス203a~203nにおいて生成されてよく、仮想配信アプライアンス204との接続は、ブロック328において、仮想セッションにアクセスするために生成された接続ディスクリプタファイルを使用して始められてよい。上記でも述べられたように、他のゾーンに対するリダイレクトは、コンピューティングデバイス201がセッション要求を要求するために利用可能でない(たとえば、オフライン)場合にも実施されてよい。
図15に示される方法は、ブロック329において例示的に終わる。
【0109】
次に、コネクタアプライアンス206の動作に関連するさらなる方法態様が、
図16のフロー
図400を参照して説明される。ブロック401で始まって、方法は、例示的には、上記で論じられたように、ブロック402において、仮想セッションを始めるためにクライアントデバイス203a~203nからコネクタアプライアンス206において接続要求を受信することと、コンピューティングデバイス201に接続リースの妥当性検証を要求することと(ブロック403)を含む。上記で論じられたように、ブロック403において、コネクタアプライアンス206は、接続リースを期限切れとチェックする(たとえば、期限切れ日をチェックする)またはテンパリングする(たとえば署名をチェックする)など、接続リースの追加の妥当性検証を実施してよい。方法は、例示的には、上記でもさらに論じられたように、コンピューティングデバイス201(ブロック404)による接続リースの妥当性検証に応答して、仮想配信アプライアンス204に対して接続リースを解決すること(ブロック405)と、仮想セッションにアクセスするように接続ディスクリプタファイルを準備する際に使用するためにセッション妥当性検証をクライアントデバイスに返すこと(ブロック406)とをさらに含む。加えて、上記で論じられたように、ブロック405において、仮想配信アプライアンス204に対する接続リースの解決は、コンピューティングデバイス201によって実施され、コネクタアプライアンス206に返されてよい。加えて、上記で論じられたように、ブロック405において、コンピューティングデバイス201がオフラインであるとき、仮想配信アプライアンス204に対する接続リースの解決は、コネクタアプライアンス206によって実施されてよい。
図16の方法は、ブロック407において例示的に終わる。
【0110】
前述の本開示を読めば当業者には理解されるように、本明細書に記載の様々な態様は、デバイス、方法、またはコンピュータプログラム製品(たとえば、記載の動作またはことを実施するためのコンピュータ実行可能命令を有する非一時的なコンピュータ可読媒体)として具体化され得る。したがって、これらの態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはソフトウェアの態様とハードウェアの態様の組合せの実施形態の形態をとり得る。
【0111】
さらに、そのような態様は、1つまたは複数のコンピュータ可読記憶媒体によって記憶されたコンピュータプログラム製品の形態をとり得、コンピュータ可読プログラムコード、または命令が記憶媒体内または記憶媒体上で具体化される。ハードディスク、CD-ROM、光記憶デバイス、磁気記憶デバイス、および/またはそれらの任意の組合せを含む任意の好適なコンピュータ可読記憶媒体が使用されてよい。
【0112】
多数の修正および他の実施形態が、前述の記載および関連の図面に提示されている教示の利益を有する当業者には想起されよう。したがって、前述は例示的な実施形態に限定されるべきではなく、修正および他の実施形態が添付の特許請求の範囲内に含まれることが意図されていることを理解されたい。
【国際調査報告】