JP2022160494A - 構成要素ベースの接続リースを使用した仮想セッション接続のためのシステムおよび方法 - Google Patents
構成要素ベースの接続リースを使用した仮想セッション接続のためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2022160494A JP2022160494A JP2022116392A JP2022116392A JP2022160494A JP 2022160494 A JP2022160494 A JP 2022160494A JP 2022116392 A JP2022116392 A JP 2022116392A JP 2022116392 A JP2022116392 A JP 2022116392A JP 2022160494 A JP2022160494 A JP 2022160494A
- Authority
- JP
- Japan
- Prior art keywords
- connection
- component
- appliance
- lease
- computing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/826—Involving periods of time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【課題】構成要素ベースの接続リースを使用した仮想セッション接続のためのシステムおよび方法を提供する。【解決手段】コンピューティングデバイスは、メモリと、メモリと協働し、クライアントデバイスによって選択されたパブリッシュリソースに対して接続リースを生成するように構成されたプロセッサとを含むことがある。接続リースは、パブリッシュリソースに対応する仮想コンピューティングセッションにクライアントデバイスを接続するための命令を提供することがある。各接続リースは、選択されたパブリッシュリソースに一意のパブリッシュリソースリース構成要素と、複数の異なるパブリッシュリソースによって共有される共通リース構成要素とを含むことがある。【選択図】図4
Description
本発明は、仮想セッション接続に関し、より詳細には、構成要素ベースの接続リースを使用した仮想セッション接続のためのシステムおよび方法に関する。
多数の組織が今や、それぞれのユーザの変動するニーズに対処するためのより柔軟なオプションを提供するために、アプリケーションおよび/またはデスクトップ仮想化を使用している。デスクトップ仮想化では、ユーザのコンピューティング環境(たとえば、オペレーティングシステム、アプリケーション、および/またはユーザ設定)は、ユーザの物理的コンピューティングデバイス(たとえば、スマートフォン、ラップトップ、デスクトップコンピュータ)から分離されてよい。クライアント-サーバ技術を使用して、「仮想化されたデスクトップ」がクライアントデバイスのローカルストレージ内ではなく、リモートサーバ内に記憶され、リモートサーバによって管理され得る。
いくつかの異なるタイプのデスクトップ仮想化システムがある。一例として、仮想デスクトップインフラストラクチャ(VDI)は、サーバ内に常駐する仮想マシン内でユーザデスクトップおよび/またはアプリケーションを動作させるプロセスを指す。仮想化システムはまた、クラウドコンピューティング環境内で実装されてもよいし、クラウドシステム内で実装されてもよく、クラウドコンピューティング環境またはクラウドシステム内では、コンピューティングリソース(たとえば、デスクトップ仮想化サーバ)、ストレージディスク、ネットワークハードウェア、および他の物理リソースのプールが仮想デスクトップをプロビジョニングする、および/または共有アプリケーションへのアクセスを提供するために使用され得る。
コンピューティングデバイスは、メモリと、メモリと協働し、クライアントデバイスによって選択されたパブリッシュリソース(published resource)のための接続リースを生成するように構成されたプロセッサとを含んでよい。接続リースは、パブリッシュリソースに対応する仮想コンピューティングセッションにクライアントデバイスを接続するための命令を提供し得る。各接続リースは、選択されたパブリッシュリソースに一意のパブリッシュリソースリース構成要素と、複数の異なるパブリッシュリソースによって共有される共通リース構成要素とを含んでよい。
例示的な一実装では、クライアントデバイスは、少なくとも1つの仮想配信アプライアンスによって仮想コンピューティングセッションに接続されてよく、共通リース構成要素は、少なくとも1つの仮想配信アプライアンスに関連付けられたネットワークアドレスを備えてよい。さらに、たとえば、クライアントデバイスは、少なくとも1つのゲートウェイアプライアンスによって仮想配信アプライアンスに接続されてよく、共通リース構成要素は、少なくとも1つのゲートウェイアプライアンスに関連付けられたネットワークアドレスをさらに備えてよい。別の例によれば、仮想コンピューティングセッションのうちの少なくともいくつかは、クラウドベースの仮想コンピューティングセッションを備えてよく、クライアントデバイスは、少なくとも1つのクラウドインターフェースアプライアンスによってクラウドベースの仮想コンピューティングセッションに接続されてよい。したがって、共通リース構成要素は、少なくとも1つのクラウドインターフェースアプライアンスに関連付けられたネットワークアドレスを備えてよい。
いくつかの例示的な実装では、クライアントデバイスは、異なるゾーンにグループ化された複数の仮想配信アプライアンスによって仮想コンピューティングセッションに接続されてよく、共通リース構成要素は、仮想配信アプライアンスの所与のグループのためのゾーン指定を備えてよい。いくつかの例示的な実施形態では、共通リース構成要素は、仮想配信アプライアンスの異なる順序付きリストを備えてよい。
例として、共通リース構成要素は、ネットワークトランスポートタイプ設定、オーディオ設定、ディスプレイ解像度設定、セキュリティ設定、およびドライブマッピングイネーブルメント(イネーブルメント)設定、のうちの少なくとも1つを備えてよい。また、例として、仮想コンピューティングセッションは、仮想アプリケーションセッション、仮想デスクトップセッション、ウェブアプリケーションセッション、ソフトウェアアズアサービス(SaaS)アプリケーションセッション、およびデスクトップアズアサービス(DaaS)セッション、のうちの少なくとも1つを備えてよい。
さらに、プロセッサは、パブリッシュリソースリース構成要素および共通リース構成要素を互いから独立して更新するように構成されてもよい。例として、パブリッシュリソースリース構成要素は、リソースキーグローバル一意識別子(GUID)、ユーザ識別子、および有効期限(expiration time)、のうちの少なくとも1つを備えてよい。
関連方法は、クライアントデバイスによって選択されたパブリッシュリソースのためのサーバにおける接続リースを生成することを含んでよく、この接続リースは、パブリッシュリソースに対応する仮想コンピューティングセッションにクライアントデバイスを接続するための命令を提供する。各接続リースは、選択されたパブリッシュリソースに一意のパブリッシュリソースリース構成要素と、複数の異なるパブリッシュリソースによって共有される共通リース構成要素とを含んでよい。
関連コンピューティングシステムは、仮想コンピューティングセッションに対応するパブリッシュリソースを選択するように構成された複数のクライアントデバイスと、クライアントデバイスによって選択されたパブリッシュリソースのための接続リースを生成するように構成されたサーバとを含んでよい。各接続リースは、選択されたパブリッシュリソースに一意のパブリッシュリソースリース構成要素と、複数の異なるパブリッシュリソースによって共有される共通リース構成要素とを含んでよい。コンピューティングシステムは、接続リースに基づいてそれぞれの仮想コンピューティングセッションにクライアントデバイスを接続するように構成された少なくとも1つの仮想配信アプライアンスをさらに含んでよい。
接続リースを使用する目的は、接続リースインフラストラクチャが到達可能でない場合でも、ユーザがそれらのリースされた作業負荷および/またはサービスに接続することを可能にすることであり、接続リースインフラストラクチャが到達可能でないのは、様々な理由のためであり得る。しかし、接続リース生成は、それが複数の問い合わせおよび処理動作を伴うので、費用のかかるプロセスであり得る。さらに、プロセスはまた、それが、たとえば、仮想配信アプライアンス、カタログ、配信グループ、アプリケーショングループ、およびパブリッシュリソースを管理することを伴う、公開アプリおよびデスクトップを配信することに関しては、かなり複雑であり得る。
加えて、接続リースは、比較的まれにリフレッシュされるユーザ権利(entitlement)の静的スナップショットであるので、ユーザは、一般的には、接続時に最新リアルタイム情報を有していない。代替形態として、システムが到達可能である間、ワンタイムレガシー接続ファイル(たとえば、独立コンピューティングアーキテクチャ(ICA)ファイル)を使用することと、システムがダウンしているときのみ接続リースを使用することは、これらのギャップに対処する助けとなることもある。しかも、異なるコードパスが実行されており、したがって、潜在的に一貫性のないユーザエクスペリエンス(たとえば、長いログオン時間対短いログオン時間)という結果になることもあり、接続リースコードパスをまれに実行したときの誤作動のリスクは、レジリエンス(resiliency)に依拠する。本明細書において開示されるシステムおよび方法は、有利には、複合的および/またはテンプレートベースの接続リース生成手法を提供し、より少ない処理動作およびリアルタイムまたはリアルタイムに近いリース更新能力という結果になることによって、これらの技術的課題に対処する助けとなる。
本説明は添付の図面を参照してなされ、添付の図面では、例示的な実施形態が示される。しかし、多くの異なる実施形態が使用されてよく、したがって、説明は、本明細書に記載される特定の実施形態に限定されると解釈されるべきではない。同じ番号は、全体を通じて、同じ要素を参照する。
以下の開示を読めば当業者によって諒解されるように、本明細書において説明される種々の態様は、デバイス、方法、またはコンピュータプログラム製品(たとえば、述べられる動作またはステップを実施するためのコンピュータ実行可能な命令を有する非一時的なコンピュータ可読媒体)として具現化されてよい。したがって、これらの態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはソフトウェアの態様とハードウェアの態様の組合せの実施形態の形態をとり得る。
さらに、そのような態様は、1つまたは複数のコンピュータ可読記憶媒体によって記憶されたコンピュータプログラム製品の形態をとり得、コンピュータ可読プログラムコード、または命令が記憶媒体内または記憶媒体上で具体化される。ハードディスク、CD-ROM、光記憶デバイス、磁気記憶デバイス、および/またはそれらの任意の組合せを含む任意の好適なコンピュータ可読記憶媒体が使用されてよい。
最初に図1を参照すると、本開示の様々な態様が実装され得る非限定的なネットワーク環境101は、1つまたは複数のクライアントマシン102A~102Nと、1つまたは複数のリモートマシン106A~106Nと、1つまたは複数のネットワーク104、104’と、コンピューティング環境101内に設置された1つまたは複数のアプライアンス108とを含む。クライアントマシン102A~102Nは、ネットワーク104、104’を介してリモートマシン106A~106Nと通信する。
いくつかの実施形態では、クライアントマシン102A~102Nは、中間アプライアンス108を介してリモートマシン106A~106Nと通信する。図のアプライアンス108は、ネットワーク104、104’間に配置され、ネットワークインターフェースまたはゲートウェイと称されることもある。いくつかの実施形態では、アプライアンス108は、アプリケーション配信コントローラ(ADC)として動作し得、クライアントにデータセンタ、クラウド内で展開される、またはクライアントデバイスの範囲にわたってソフトウェアアズアサービス(SaaS)として配信されるビジネスアプリケーションおよび他のデータへのアクセスを提供し、および/または負荷分散など他の機能性を提供する。いくつかの実施形態では、複数のアプライアンス108が使用され得、アプライアンス108は、ネットワーク104および/または104’の一部として展開され得る。
クライアントマシン102A~102Nは、全体的に、クライアントマシン102、ローカルマシン102、クライアント102、クライアントノード102、クライアントコンピュータ102、クライアントデバイス102、コンピューティングデバイス102、エンドポイント102、またはエンドポイントノード102と称されることがある。リモートマシン160A~106Nは、全体的に、サーバ106またはサーバファーム106と称されることがある。いくつかの実施形態では、クライアントデバイス102は、サーバ106によって提供されるリソースにアクセスしようとするクライアントノードとしても、他のクライアントデバイス102A~102Nのためのホストされるリソースへのアクセスを提供するサーバ106としても機能するための能力を有し得る。ネットワーク104、104’は、全体的に、ネットワーク104と称されることがある。ネットワーク104は、有線ネットワークおよびワイヤレスネットワークの任意の組合せで構成されてよい。
サーバ106は、たとえば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプライアンス、ネットワークアプライアンス、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、セキュアソケットレイヤ仮想プライベートネットワーク(SSL VPN)サーバ、ファイヤウォール、ウェブサーバ、アクティブディレクトリを実行するサーバ、クラウドサーバ、またはファイヤウォール機能性、アプリケーション機能性、もしくは負荷分散機能性を提供するアプリケーションアクセラレーションプログラムを実行するサーバなど、任意のサーバタイプであってよい。
サーバ106は、ソフトウェア、プログラム、実行可能命令、仮想マシン、ハイパーバイザ、ウェブブラウザ、ウェブベースのクライアント、クライアント-サーバアプリケーション、シンクライアントコンピューティングクライアント、ActiveXコントロール、Javaアプレット、ソフトIP電話のようなボイスオーバーインターネットプロトコル(VoIP)通信に関連するソフトウェア、ストリーミングビデオおよび/またはオーディオのためのアプリケーション、リアルタイムデータ通信を容易にするためのアプリケーション、HTTPクライアント、FTPクライアント、Oscarクライアント、Telnetクライアント、または実行可能命令の任意の他のセットのいずれか1つであってよいアプリケーションを実行し、動作させ、または他の方法で提供し得る。
いくつかの実施形態では、サーバ106は、シンクライアントまたはリモートディスプレイプロトコルを使用しサーバ106上で実行されるアプリケーションによって生成されるディスプレイ出力を取り込むリモートプレゼンテーションサービスプログラムまたは他のプログラムを実行し、アプリケーションディスプレイ出力をクライアントデバイス102に送信し得る。
さらに他の実施形態では、サーバ106は、クライアントデバイス102のユーザにコンピューティング環境へのアクセスを提供する仮想マシンを実行し得る。クライアントデバイス102は、仮想マシンであってよい。仮想マシンは、たとえばハイパーバイザ、仮想マシンマネージャ(VMM)、またはサーバ106内の任意の他のハードウェア仮想化技法によって管理され得る。
いくつかの実施形態では、ネットワーク104は、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、ワイドエリアネットワーク内のソフトウェアにより定義されたネットワーク(SD-WAN)、プライマリパブリックネットワーク104、およびプライマリプライベートネットワーク104であってよい。追加の実施形態は、様々なプロトコルを使用しモバイルデバイスの間で通信するモバイル電話ネットワークのネットワーク104を含み得る。ワイヤレスローカルエリアネットワーク(WLAN)内の近距離通信については、プロトコルは、802.11、Bluetooth、および近距離無線通信(NFC)を含み得る。
SD-WAN企業の特に有利な一実装は、Citrix SD-WANによって提供され、Citrix SD-WANは、企業が、それらのWANを、より多くのスケーラビリティを有し、クラウドに接続する準備のできたコスト効果を高くすることを可能にする。Citrix SD-WANは、個々のSaaSアプリケーションを含むアプリケーションを識別し、分岐からインターネット、クラウド、またはSaaSにトラフィックをインテリジェントに操縦するために、統合されたデータベースと、ディープパケットインスペクションを含有する。さらに、Citrix SD-WANは、安全なウェブゲートウェイを介して分岐からインターネットにトラフィックをルーティングし、ファイヤウォール、URLフィルタリング、および使用説明(usage accounting)を含むクラウドベースのセキュリティを配信する機能も提供する。
図2は、クライアントデバイス102、アプライアンス108、および/またはサーバ106の一実施形態を実施するために有用なコンピューティングデバイス100のブロック図を示す。コンピューティングデバイス100は、1つまたは複数のプロセッサ103、揮発性メモリ122(たとえば、ランダムアクセスメモリ(RAM))、不揮発性メモリ128、ユーザインターフェース(UI)123、1つまたは複数の通信インターフェース118、および通信バス150を含む。
不揮発性メモリ128は、1つもしくは複数のハードディスクドライブ(HDD)もしくは他の磁気記憶媒体もしくは光記憶媒体、フラッシュドライブもしくは他のソリッドステート記憶媒体など1つもしくは複数のソリッドステートドライブ(SSD)、1つもしくは複数のハイブリッド磁気およびソリッドステートドライブ、ならびに/またはクラウドストレージなど1つもしくは複数の仮想ストレージボリューム、あるいはそのような物理的ストレージボリュームおよび仮想ストレージボリュームの組合せ、またはそのアレイを含み得る。
ユーザインターフェース123は、グラフィカルユーザインターフェース(GUI)124(たとえば、タッチスクリーン、ディスプレイなど)および1つまたは複数の入力/出力(I/O)デバイス126(たとえば、マウス、キーボード、マイクロフォン、1つまたは複数のスピーカ、1つまたは複数のカメラ、1つまたは複数のバイオメトリックスキャナ、1つまたは複数の環境センサ、および1つまたは複数の加速度計など)を含み得る。
不揮発性メモリ128は、オペレーティングシステム115、1つまたは複数のアプリケーション116、およびデータ117を記憶し、たとえばオペレーティングシステム115および/またはアプリケーション116のコンピュータ命令が揮発性メモリ122から取り出されプロセッサ103によって実行されるようにする。いくつかの実施形態では、揮発性メモリ122は、メインメモリより速い応答時間を提供し得る1つまたは複数のタイプのRAMおよび/またはキャッシュメモリを含み得る。データは、GUI124の入力デバイスを使用して入力されても、I/Oデバイス126から受信されてもよい。コンピュータ100の様々な要素は、通信バス150を介して通信し得る。
図のコンピューティングデバイス100は、例示的なクライアントデバイスまたはサーバとして示されているにすぎず、本明細書に記載されているように動作することが可能な好適なハードウェアおよび/またはソフトウェアを有し得る任意のタイプのマシンまたはマシンのセットを有する任意のコンピューティングまたは処理環境によって実装されてよい。
プロセッサ103は、1つまたは複数のプログラム可能なプロセッサによって、コンピュータプログラムなど1つまたは複数の実行可能命令を実行し、システムの機能を実施するように実装され得る。本明細書で使用されるとき、「プロセッサ」という用語は、機能、動作、または動作のシーケンスを実施する回路を表す。機能、動作または動作のシーケンスは、回路にハードコード化されても、メモリデバイス内に保持された命令によりソフトコード化され、回路によって実行されてもよい。プロセッサは、デジタル値を使用して、および/またはアナログ信号を使用して機能、動作、または動作のシーケンスを実施し得る。
いくつかの実施形態では、プロセッサは、1つもしくは複数の特定用途向け集積回路(ASIC)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、グラフィック処理ユニット(GPU)、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)、マルチコアプロセッサ、または関連のメモリを有する汎用コンピュータ内に埋め込むことができる。
プロセッサ103は、アナログ、デジタル、または混合信号であってよい。いくつかの実施形態では、プロセッサ103は、1つもしくは複数の物理的プロセッサ、または1つもしくは複数の仮想(たとえば、リモートに位置する、またはクラウド)プロセッサであってよい。複数のプロセッサコアを含むプロセッサおよび/または複数のプロセッサは、命令の並列同時実行のための、または複数のデータ上の1つの命令の並列同時実行のための機能性を提供し得る。
通信インターフェース118は、コンピューティングデバイス100が、セルラ接続を含む様々な有線および/またはワイヤレス接続を通じてLAN、WAN、もしくはSD-WAN、パーソナルエリアネットワーク(PAN)、またはインターネットなどコンピュータネットワークにアクセスすることを可能にするための1つまたは複数のインターフェースを含み得る。
記載の実施形態では、コンピューティングデバイス100は、クライアントデバイスのユーザの代わりにアプリケーションを実行し得る。たとえばコンピューティングデバイス100のハイパーバイザによって管理される1つまたは複数の仮想マシンを実行し得る。各仮想マシンは、ホストされるデスクトップセッションなど、ユーザまたはクライアントデバイスの代わりにアプリケーションが実行される実行セッションを提供し得る。また、コンピューティングデバイス100は、ホストされるデスクトップ環境を提供するために端末サービスセッションを実行し得る。コンピューティングデバイス100は、1つまたは複数のアプリケーション、1つまたは複数のデスクトップアプリケーション、および1つまたは複数のアプリケーションが実行され得る1つまたは複数のデスクトップセッションを含むリモートコンピューティング環境へのアクセスを提供し得る。
例示的な仮想化サーバ106は、フロリダ州フォートローダーデールのCitrix Systems, Inc.(「Citrix Systems」)によって提供されるCitrix Hypervisorを使用して実装され得る。仮想アプリおよびデスクトップセッションは、やはりCitrix SystemsからのCitrix Virtual Apps and Desktopsによってさらに提供され得る。Citrix Virtual Apps and Desktopsは、任意のデバイスからの仮想アプリ、デスクトップ、およびデータセッションを含む仮想セッションへの広範なアクセスとともに、スケーラブルなVDI解決策を実装するためのオプションを加えて、生産性を高めるアプリケーション仮想化解決策である。仮想セッションは、たとえばソフトウェアアズアサービス(SaaS)およびデスクトップアズアサービス(DaaS)セッションをさらに含み得る。
図3を参照すると、クラウド環境、クラウドコンピューティング、またはクラウドネットワークとも称されることがあるクラウドコンピューティング環境160が示されている。クラウドコンピューティング環境160は、複数のユーザまたはテナントへの共有コンピューティングサービスおよび/またはリソースの配信を提供することができる。たとえば共有リソースおよびサービスは、それだけには限らないがネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、データベース、ソフトウェア、ハードウェア、アナリティクス、およびインテリジェンスを含むことができる。
クラウドコンピューティング環境160では、1つまたは複数のクライアント162A~162C(上記のものなど)がクラウドネットワーク164と通信する。クラウドネットワーク164は、バックエンドプラットフォーム、たとえばサーバ、ストレージ、サーバファーム、またはデータセンタを含み得る。ユーザまたはクライアント162A~162Cは、単一の組織/テナントまたは複数の組織/テナントに対応することができる。より具体的には、例示的な実装では、クラウドコンピューティング環境160は、単一の組織(たとえば、エンタープライズクラウド)にサービスを提供するプライベートクラウドを提供し得る。別の例では、クラウドコンピューティング環境160は、複数の組織/テナントにサービスを提供するコミュニティまたはパブリッククラウドを提供し得る。
いくつかの実施形態では、ゲートウェイアプライアンスまたはサービスは、クラウドコンピューティングリソースおよび仮想セッションへのアクセスを提供するために利用されてよい。例として、Citrix Systems, Inc.によって提供されるCitrix Gatewayは、仮想アプリケーション、SaaSアプリケーション、およびウェブアプリケーションへの安全なアクセスおよびシングルサインオンをユーザに提供するために、オンプレミスでまたはパブリッククラウド上に展開され得る。さらに、ユーザをウェブの脅威から保護するために、Citrix Secure ウェブ Gatewayなどのゲートウェイが使用されてよい。Citrix Secure ウェブ Gatewayは、クラウドベースのサービスおよびローカルキャッシュを使用して、URLレピュテーションおよびカテゴリをチェックする。
さらなる実施形態では、クラウドコンピューティング環境160は、パブリッククラウドとプライベートクラウドの組合せであるハイブリッドクラウドを提供し得る。パブリッククラウドは、クライアント162AA~162Cまたは企業体/テナントに対して、サードパーティによって維持されるパブリックサーバを含み得る。サーバは、遠隔の地理的ロケーションなどに現地から離れて位置してもよい。
クラウドコンピューティング環境160は、それぞれの環境内の異なる需要に応答して異なる物理的リソースおよび仮想リソースが動的に割り当てまたは再割り当てされるマルチテナント環境またはマルチテナントモデルを通じて、クライアント162A~162Cを介して複数のユーザにサービスを提供するために、リソースプール化を提供することができる。マルチテナント環境は、複数のユーザにサービスを提供するためにソフトウェア、アプリケーション、またはソフトウェアアプリケーションの単一のインスタンスを提供することができるシステムまたはアーキテクチャを含むことができる。いくつかの実施形態では、クラウドコンピューティング環境160は、複数のクライアント162A~162Cのためにネットワークにわたってコンピューティング能力(たとえば、サーバ時間、ネットワークストレージ)を一方的にプロビジョニングするためのオンデマンドのセルフサービスを提供することができる。例として、プロビジョニングサービスは、Citrix Provisioning Services(Citrix PVS)などのシステムを通じて提供されてよい。Citrix PVSは、共有デスクトップ画像を通して複数の仮想デスクトップエンドポイントにパッチ、更新、および他の構成情報を配信するソフトウェアストリーム技術である。クラウドコンピューティング環境160は、1つまたは複数のクライアント162からの異なる要請に応答して動的にスケールアウトまたはスケールインする弾力性を提供することができる。いくつかの実施形態では、クラウドコンピューティング環境160は、提供された共有サービスおよびリソースに対応するレポートを監視、制御、および/または生成するための監視サービスを含む、または提供することができる。
いくつかの実施形態では、クラウドコンピューティング環境160は、たとえばソフトウェアアズアサービス(SaaS)170、プラットフォームアズアサービス(PaaS)172、インフラストラクチャアズアサービス(IaaS)174、およびデスクトップアズアサービス(DaaS)176など異なるタイプのクラウドコンピューティングサービスのクラウドベースの配信を提供し得る。IaaSは、ユーザが指定された期間中、必要とされるインフラストラクチャリソースの使用を貸借することを指し得る。IaaSは、大きなプールからストレージ、ネットワーキング、サーバ、または仮想化リソースを提供し、ユーザが必要に応じてより多くのリソースにアクセスすることによって迅速にスケールアップすることを可能にし得る。IaaSの例は、ワシントン州シアトルのAmazon.com, Inc.によって提供されているAMAZON WEB SERVICES、テキサス州サンアントニオのRackspace US, Inc.によって提供されているRACKSPACE CLOUD、カリフォルニア州マウンテンビューのGoogle Inc.によって提供されているGoogle Compute Engine、またはカリフォルニア州サンタバーバラのRightScale, Inc.によって提供されているRIGHTSCALEを含む。
PaaSプロバイダは、たとえばストレージ、ネットワーキング、サーバ、または仮想化を含むIaaSによって提供される機能性、ならびに、たとえばオペレーティングシステム、ミドルウェア、またはランタイムリソースなど追加のリソースを提供し得る。PaaSの例は、ワシントン州レドモンドのMicrosoft Corporationによって提供されているWINDOWS AZURE、Google Inc.によって提供されているGoogle App Engine、およびカリフォルニア州サンフランシスコのHeroku, Inc.によって提供されているHEROKUを含む。
SaaSプロバイダは、ストレージ、ネットワーキング、サーバ、仮想化、オペレーティングシステム、ミドルウェア、またはランタイムリソースを含めて、PaaSが提供するリソースを提供し得る。いくつかの実施形態では、SaaSプロバイダは、たとえば、データおよびアプリケーションリソースを含む追加のリソースを提供し得る。SaaSの例は、Google Inc.によって提供されているGOOGLE APPS、カリフォルニア州サンフランシスコのSalesforce.com Inc.によって提供されているSALESFORCE、またはMicrosoft Corporationによって提供されているOFFICE 365を含む。SaaSの例は、データストレージプロバイダ、たとえば、Citrix SystemsのCitrix ShareFile、カリフォルニア州サンフランシスコのDropbox, Inc.によって提供されるDROPBOX、Microsoft Corporationによって提供されるMicrosoft SKYDRIVE、Google Inc.によって提供されるGoogle Drive、またはカリフォルニア州クパチーノの Apple Inc.によって提供されるApple ICLOUDも含んでよい。
SaaS、DaaS(ホストされるデスクトップサービスとしても知られる)と同様のものは、仮想デスクトップセッションが仮想デスクトップ上で使用されるアプリとともにクラウドサービスとして配信されることが典型的である仮想デスクトップインフラストラクチャ(VDI)の形態である。Citrix SystemsからのCitrix Cloudは、DaaS配信プラットフォームの一例である。DaaS配信プラットフォームは、たとえばワシントン州レドモンドのMicrosoft CorporationからのAZURE CLOUD(本明細書では「Azure」)、またはワシントン州シアトルのAmazon.com, Inc.によって提供されているAMAZON WEB SERVICES(本明細書では「AWS」)など、パブリッククラウドコンピューティングインフラストラクチャ上でホストされ得る。Citrix Cloudの場合、統一されたエクスペリエンスを届けるためにアプリ、ファイル、およびデスクトップを(オンプレミスまたはクラウド内にかかわらず)一緒にするための単一のエントリポイントとして、Citrix Workspaceアプリが使用され得る。
SaaS、DaaS(ホストされるデスクトップサービスとしても知られる)と同様のものは、仮想デスクトップセッションが仮想デスクトップ上で使用されるアプリとともにクラウドサービスとして配信されることが典型的である仮想デスクトップインフラストラクチャ(VDI)の形態である。Citrix SystemsからのCitrix Cloudは、DaaS配信プラットフォームの一例である。DaaS配信プラットフォームは、たとえばワシントン州レドモンドのMicrosoft CorporationからのAZURE CLOUD(本明細書では「Azure」)、またはワシントン州シアトルのAmazon.com, Inc.によって提供されているAMAZON WEB SERVICES(本明細書では「AWS」)など、パブリッククラウドコンピューティングインフラストラクチャ上でホストされ得る。Citrix Cloudの場合、統一されたエクスペリエンスを届けるためにアプリ、ファイル、およびデスクトップを(オンプレミスまたはクラウド内にかかわらず)一緒にするための単一のエントリポイントとして、Citrix Workspaceアプリが使用され得る。
次に図4を参照すると、有利には仮想コンピューティングセッションにクライアントデバイスを接続するための効率的な複合(モジュール式)接続リース(CL)設計を提供するコンピューティングシステム40が最初に説明される。仮想コンピューティングセッションへのアクセスを提供するための例示的な1つのアーキテクチャは、本出願人Citrix Systems, Inc.のCitrix Virtual Apps and Desktops(CVAD)である。Citrix Virtual Appsは、異なるクライアントデバイスからの仮想アプリおよびサーバベースのデスクトップへの汎用的アクセスを有する生産性を最適化する助けとなるアプリケーション仮想化プラットフォームである。CVADは、Citrix Virtual Appsと同じすべての機能と、スケーラブルな仮想デスクトップインフラストラクチャ(VDI)を実装するオプションを保有する。Citrix Virtual Apps/CVADは、クラウドサービスまたはオンプレミス構成として利用可能である。
そのようなコンピュータ仮想化インフラストラクチャは、それぞれの仮想セッションおよびコンピューティングリソースにアクセスするようにクライアントデバイスを認証するために独立コンピューティングアーキテクチャ(ICA)ファイルを利用し得る。ICAは、ネットワークの上でWindowsグラフィカルディスプレイデータならびにキーボードおよびマウス入力を送信するために設計されたプロトコルである。ICAファイルは、短命のセキュアチケットオーソリティ(STA)およびログオンチケットを含む。STAチケットは、ゲートウェイ(たとえば、Citrix Gateway)を介して、仮想配信アプライアンス(たとえば、Citrix Virtual Delivery Agent(VDA))に対する接続を認可するために使用され得る。ログオンチケットは、ユーザを仮想コンピューティングセッションにシングルサインオン(SSOn)させ得る。CVADの場合、これは、異なるクライアントデバイス上および異なるネットワークの上で、集中型アプリケーションおよびデスクトップのユーザにとって使用可であり得る「ハイデフィニション」エクスペリエンス(HDX)セッションを通じて行われる。CitrixHDXは、ICAリモーティングプロトコルの上に構築される。任意のネットワークインフラストラクチャを使用すると、リモートであろうとそうでなかろうと、外部攻撃(たとえば、傍受および反復攻撃)からのセキュリティは、常に、かなりの関心事である。たとえば、接続リースは、仮想配信アプライアンスへのネットワーク接続を確立するために寿命の長い認可を提供する。
接続リースは寿命が長く、たとえば、ポリシーに基づいて数時間から数週間であり、したがって、攻撃機会ウィンドウははるかには長いので、セキュリティ要件がより重大となり得る。したがって、接続リースは、暗号化および署名される。接続リースは、盗難にあったデバイス、損なわれたユーザアカウント、閉鎖されたユーザアカウントなどのイベントに対応するために取り消されることがある。接続リース失効は、クライアント/エンドポイントデバイスまたはホスト(たとえば、仮想配信アプライアンス)がCL発行サービス(CLIS)またはブローカに対してオンラインであるときのみ適用可能であるが、これは、接続リースはオフラインモードで使用されることが意図されるので、接続リースの使用のための要件ではない。
接続リース生成は、それが複数の問い合わせおよび処理動作を伴うので、費用のかかるプロセスであり得る。たとえば、いくつかの仮想化システムでは、ブローカは、単一のユーザが単一のアプリの起動をトリガするとき、複数の記憶手順を動作させることと、静的データならびにリアルタイムデータをチェックすることとを含む動作を実施する。プロセスは、それが、たとえば、仮想配信アプライアンス、カタログ、配信グループ、アプリケーショングループ、およびパブリッシュリソースを管理することを伴う、公開アプリおよびデスクトップを配信することに関しては、かなり複雑であり得る。
種々の1対1または1対多の関連づけ、優先、ゾーンおよび好み、セッション共有、タグ付けなどの構成およびポリシーは、接続(たとえば、ICA)ファイルへの単一の起動要求の解決を複雑にする。さらに、単一ユーザのための接続リースの生成は、すべての可能なアプリ、デスクトップ、ユーザが権利を与えられたリソースロケーション、および種々の接続環境(内部、外部)を含む関連付けられた構成の決定を伴うであろう。ブローカおよび接続リース管理サービスに対する負荷に関して、これは、ユーザがそれらのアプリおよびデスクトップを異なるロケーションから同時に、たとえば100個のアプリを2回、起動することの等価物であろう。組織内のユーザの数たとえば10,000人のユーザによって乗算されると、ブローカへの2百万の有効な起動要求という結果になる。たとえば、誰もが、月曜日に働き、システムに接続することになり、このことが、接続リース更改(renewal)をトリガする。これは、一度に多すぎる要求の負荷をシステムにかけることからのサービス故障という結果になることがある。単一のアクティブなユーザの場合であっても、パブリッシュリソース列挙(たとえば、利用可能なアプリおよびデスクトップのリスティングをクライアントデバイスに提供すること)が、非常に遅くなる、タイムアウトする、または失敗し、それは、ユーザのための多くのリースの生成を必要とするので、不十分なまたは壊れたユーザエクスペリエンス(UX)という結果になることがある。
アプリケーションプログラミングインターフェース(API)スロットリングまたは種々の(ランダムを含む)時点でエンドポイントに接続リースを要求させることなどの技法は、追加された複雑さという結果になるが、ブローカに対する負荷を取り除くことを潜在的に助けることがある。
パブリッシュリソースごとの接続リースデータは、比較的小さい、たとえば、数キロバイト程度であり得る。しかし、いくつかの環境では、ユーザは、比較的多数のアプリに権利を与えられていることがある。まれではあるが、権利は、数千のアプリに到達することがある。さらに、キオスク/共有デバイスは、複数のユーザをホストすることがあり、シンクライアントは、少量の利用可能なメモリと、したがって数多くの権利に関連付けられた大量のデータを扱う困難さを有することがある。加えて、あらゆる起動時に、たとえば、Citrix HDX起動時に、大きなモノリシック接続リースを送信することは、より大きな帯域幅を消費し、所与のユーザのための接続プロセスを低速化させるであろう。
上記で述べられたように、接続リースを使用する目的は、システムが到達可能でない場合でも、ユーザがそれらのリースされた作業負荷および/またはサービスに接続することを可能にすることである。しかし、接続リースは、比較的まれに(たとえば、週に1回)リフレッシュされるユーザ権利の静的スナップショットであるので、ユーザは、たとえば、パブリッシュリソースまたは接続インフラストラクチャの更新を反映しない接続時点の最新リアルタイム情報を有しないであろう。たとえば、この情報は、ユーザ権利更新、たとえば、管理者がアプリを追加または削除した;仮想配信アプライアンス電力または負荷管理更新(たとえば、仮想配信アプライアンスがアップしている、ダウンしている、または負荷がかかりすぎている);ユーザセッションロケーション(いくつかの場合ではプールされたデスクトップを含む);セッション中に異なるデバイスから起動されたすべての現在動作しているアプリに関する情報など、のうちの1つまたは複数を含んでよい。
あるいは、システムが到達可能である間、ワンタイムレガシー接続ファイル(たとえば、ICAファイル)を使用することと、システムがダウンしているときのみ接続リースを使用することは、これらのギャップに対処する助けとなることもある。しかし、異なるコードパスが実行されており、したがって、潜在的に一貫性のないユーザエクスペリエンス(たとえば、長いログオン時間対短いログオン時間)という結果になることもあり、接続リースコードパスをまれに実行したときの誤作動のリスクは、レジリエンスに依拠する。
本明細書において開示されるシステムおよび方法は、有利には、上記で述べられた技術的課題に対処する助けとなり、追加の利点を提供する。図4のシステム40は、例示的には、仮想コンピューティングセッション43に対応するパブリッシュリソースを選択するように構成された複数のクライアントデバイス41(上記で述べられたものなど)を含む。以下でさらに論じられるように、パブリッシュリソースは、オンプレミスまたはクラウドベースの仮想化サーバによってホストされる仮想コンピューティングセッション43内のクライアントデバイス41上でユーザがリモートにアクセスすることが可能である、利用可能なデスクトップ、アプリなどである。システム40は、例示的には、クライアントデバイス41によって選択されたパブリッシュリソースのための接続リースを生成するように構成されたサーバ42をさらに含む。より具体的には、以下でさらに論じられるように、各接続リースは、選択されたパブリッシュリソースに一意のパブリッシュリソースリース構成要素と、複数の異なるパブリッシュリソースによって共有される共通リース構成要素とを含む。コンピューティングシステム40は、例示的には、接続リースに基づいてそれぞれの仮想コンピューティングセッション43にクライアントデバイス41を接続するように構成された1つまたは複数の仮想配信アプライアンス44も含む。
加えて図5~7を参照すると、前述の内容は、Citrix Workspaceプラットフォーム内で実装される、シーケンス図70に示される例示的な接続リース管理システム50および関連付けられた動作を参照してさらに理解されよう。しかし、これは、本明細書において説明される接続リース技法が利用され得る例示的な1つの仮想化プラットフォームにすぎず、異なる実施形態では、他のプラットフォームまたは実装が使用されてよいことが理解されるであろう。
システム50は、有利には、接続リース管理の部分が前もって実施されてよく、接続リース要求に応答して(必要に応じて)即時に実施される必要はないことを意味する、バックグラウンドモードにおける効率的な複合的接続リース管理に、接続リースの自律的同期を提供する。以下でさらに論じられるように、この自律的同期は、リース更新であってよく、リースが生成された後にシステム50によって実施されてよく、リース全体を再生成する必要はないにもかかわらず、依然としてアクティブである。図の例では、上記で説明されたリース発行サーバ42は、Citrix Workspaceの一部である接続リース発行サービス(CLIS)52を使用して実装される。クライアントデバイス51は、Citrix Workspace StoreFront55を介してCLIS52と、ならびにゲートウェイ接続リースサービス59とインターフェースする。また、図の例では、クライアントデバイス51は、エンドポイント管理アプリケーションを動作させ、エンドポイント管理アプリケーションは、この例ではCitrix Workspace App(CWA)56であり、クライアントデバイスがWorkspace StoreFront55とインターフェースすることを可能にする。CWA56は、ワークスペース記憶サービス72を通じてパブリッシュリソースを列挙し、これは、独立して非同期に行われてよい。システム50は、例示的には、以下でさらに論じられるように、接続リース生成プロセス内で利用されてよいCLIS52に関連付けられた共有メモリ(ここでは、クラウドファイルストレージ68)をさらに含む。さらに、CLIS52と接続リースサービス58(CVADのための)の両方は、図の例では、それら自体のそれぞれのCLISデータベース66(たとえば、SQL)と、CVAD CLサービスデータベース67(たとえば、SQL)とを有する。さらに、CLIS52は、本明細書において説明される述べられる処理動作を実施するためにビジネスロジック69を含む。
さらに、この例では、以下でさらに論じられるように、CWA56はCLIS52にコールホームし、CLISは、パブリッシュリソースをホストするリソースプロバイダをコールすることによって接続リース作成を編成する。図7に見られるように、このプロセスは、CWA56が、認証(auth)マネージャ71にコールホームすることを開始するときに始まり、authマネージャ71は、比較的寿命が長いプライマリセッションキー/トークンと、CLIS52に関連付けられたセカンダリトークンとを含んでよい。authマネージャ71は、たとえば、ネイティブまたはクラウドベース(ホストされる)ブラウザに埋め込まれてよく、コールホームを受信すると、それは、セカンダリトークンのルックアップを実施する。authマネージャは、セカンダリトークンを、任意選択でクライアントデバイス51に関連付けられた公開鍵を、CLIS52に提供する。あるいは、クライアントデバイス51の公開鍵は、寿命の長いリフレッシュトークンのためのデバイス登録の一部として、クラウドに事前に記憶されてもよい。
CLIS52は、セカンダリトークンの署名をバリデーションし、復号は、権利チェック(たとえば、どのパブリッシュリソースにクライアントデバイス51が権利を与えられるか)を実施し、必要とされる接続リースの(たとえば、CLタイプGUIDなど)を決定するためコンテンツである。以下でさらに論じられるように、次いで、CLIS52は、ワークスペース記憶サービス72から接続リースのための優先順序を取得し、次いで、クラウド内でバックグラウンド接続リース作成を実施するために接続リースサービス58CVADをトリガする。システム50は、例示的には、CVAD接続リースサービス58に関連付けられたCVAD SQLデータベース67をさらに含む。
CWA56からのコールホーム動作の使用は、有利には、すべてのライセンスされたユーザとは反対に、アクティブなユーザおよびそれらの登録されたデバイス51のための接続リースの作成を予約することによってシステムリソースに対する負荷を減少させる。さらに、これは、有利には、リソースキーGUIDの長いリストなどを提供することが必要とされないので、CWA56によって実施される動作を単純化する助けとなることがある。さらに、ストアを列挙する誰もが、接続リースを受信する権利を与えられるとは限らないことがある。ユーザクライアントデバイス51が興味を有する接続リースタイプを指定することも、重要であり得る。たとえば、ユーザAのデスクトップデバイス1は、デスクトップ接続リースのみを必要とすることがあり、同じユーザAのモバイルデバイス2は、モバイル接続リースを必要とすることがある。
例示的な一実装では、クライアントデバイス51は、周期的にコールホームすることがあり、これは、クラウドプラットフォーム障害、REDIS(オープンソース、メモリ内データ構造記憶)がクリアされる、またはクラウドサービス内の他の任意の内部故障が発生するなどの状況における比較的ロバストな手法を提供してよい。いくつかの実施形態では、プログレッシブウェブアプリ(PWA)(ウェブ構成要素)またはサプライサイドプラットフォーム(SSP)(ネイティブ構成要素)がコールホームのために利用されてよい。PWAは、コード共有およびクラウドからの更新の利点を提示する。PWAは、それがロードされるたびにコールホームしてよい。別の手法は、周期的なまたはイベントベースのコールホームであり、これは、バックグラウンドで動作する追加のPWAサービスワーカサポートを利用し得る。1つの手法では、コールホームは、たとえば、ストアリフレッシュ時に、またはPWA(再)始動時に、周期的に実施されることがある。他の手法では、CWA56(PWAまたはSSP)は、接続リースが利用可能であるかどうかチェックすることがある。たとえば、障害が同期中にまたはクラウド内で発生した可能性がある。必要とされる接続リースが一定のタイムアウト後に見つからなかった場合、CWA56は、コールホームを先回りして実施する。
コールホームは、それが実施されるたびに接続リースのリフレッシュまたは作成をトリガしなくてよい。たとえば、以下でさらに論じられるように、最終的なユーザ-デバイス接続リースがすでに存在する場合、またはユーザのための中間接続リースの作成が進行中である場合、CLIS52は何もしない。そうでない場合、CLIS52は、CL作成をトリガする。
前述のように、CLIS52は、複合的または構成要素(たとえば、モジュール式)的に接続リースを生成する。より具体的には、各接続リースは、パブリッシュリソースリース構成要素(published resource lease component;PRLC)と、1つまたは複数の共通リース構成要素(common lease component;CLC)とを含む。PRLCは、そのために接続リースが作成されている特定のパブリックリソースに一意である比較的小さいパブリッシュリソースリース構成要素(PRLC)である。PRLCは他のCLCを指し、他のCLCは、複数の異なるパブリッシュリソース(およびしたがってPRLC)によって共有され、たとえば、共通パラメータ、直接的リソースロケーション、ゲートウェイリソースロケーション、リソースロケーション順序などの情報を含んでよい。例示的な一実施形態では、PRLCおよびCLCリース構成要素は、リンクされたJSONドキュメントとして実装されてよいが、異なる実施形態では、他の適切な手法も使用されてよい。とりわけ、モジュール式リース構造の1つの利点は、それが、接続リースに対するクライアントデバイス51(たとえば、CWA56)ソフトウェア更新の必要性を減少する助けとなり得ることであり、多くの必要とされる変更は、リース構成要素(たとえば、JSONドキュメント)自体への更新を通じて実装されてよい。
一緒にリンクされる複合JSONドキュメントとして接続リースが実装される例を続けると、それぞれのPRLCは、CVADの場合の公開デスクトップまたは公開アプリなどの、パブリッシュリソースごとの各クライアントデバイス51のために生成される。PRLCは、他の(CLC)JSONドキュメントを参照する比較的小さいJSONドキュメントとして実装されてよい。全体として、接続リースは、CLCを参照するマスタ/集約JSONファイル(PRLC)から作製された複合物と考えられてよく、CLCもJSONファイルである。
例示的な実装では、各接続リースJSONファイルは、CLIS52からの暗号署名を含む。各接続リースファイルは、平文であるマニフェストも含んでよい。接続リースの関連セクションはまた、セキュリティの理由のために暗号化されてよい。PRLCによって参照され得るCLCの例は、「Comp-Params」としても知られる共通パラメータ(たとえば、ネットワークトランスポートタイプ、オーディオ設定、ディスプレイ解像度設定、セキュリティ設定、ドライブマッピングイネーブルメント設定などのCVADのための共通ICAパラメータ);「Comp-ResLocsDirect」としても知られるリソースロケーションダイレクト(たとえば、ゲートウェイ接続リースサービス59が存在しないまたは利用可能でないときのリソースのロケーション);「Comp-ResLocsGateway」としても知られるリソースロケーションゲートウェイ(たとえば、ゲートウェイ接続リースサービス59が存在するときのリソースのロケーション);および「Comp-ResLocsOrder」としても知られるリソースロケーション順序(たとえば、リソースロケーションの順序を定義する)を含む。PRLCをCLCにリンクするために使用される参照機構はたとえば、CLCのファイル名であってよいが、他の参照機構も使用されてよい。
より具体的には、PRLCは、それが参照するCLCのファイル名をリストする参照セクションを含んでよい。上記で述べられたように、CLCは、複数のPRLCによって参照されてよい。これは、いくつかの技術的長所を提供し得る。たとえば、CLCは、それを参照する(潜在的に多数の)PRLCを更新する必要なく更新されてよい。さらに、この手法はまた、CLCは潜在的に多くのPRLCに共通であり、したがって、一度のみ記憶される必要がある(異なる接続リースのために複数回記憶される必要はない)ので、CLCのために必要とされる記憶空間を減少させ得る。加えて、すべてのCLCは、すべてのエンティティ(たとえば、クライアントデバイス51、ゲートウェイ60、仮想配信アプライアンス53(たとえば、Citrix VDA)、CVAD ブローカ57など)に送信される必要があるとは限らない。たとえば、共通パラメータCLCは、クライアントデバイス51によって利用されてよいが、他のエンティティによって利用されなくてよく、これは、1つのモノリシック接続リースを有することと比較してネットワークトラフィックを減少させる助けとなる。
接続リースファイル名前変更を介した改ざんを回避するために、いくつかの実施形態では、各署名された接続リースは、接続リースのJSONファイルの名前を含む「ファイル名」という名前のJSONメンバを含んでよい。PRLCのファイル名は、以下のパターンに従ってよい。
CL-<[App/Desk]Name>-<ResourceKey (GUID)>.V<N>.json
以下は、PRLCファイル名の一例である。
CL-Desktop1-9D47CB39-BCD6-4668-8BEB-AE135CCB4D10.V1.json
例示的な一実施形態では、PRLCファイルは、JSONファイル拡張子(.json)の前に(.V1、.V2、[…]、.VNの形をしたドット表記とともに)バージョン化される。 CLCのファイル名は、パターンに従ってよい。
CL-Comp-<CompType>-<GUID>.V<N>.json,
ここで、<CompType>は、たとえば、「Params」、「ResLocsDirect」、「ResLocsGateway」、または「ResLocsOrder」とすることができる。
以下は、CLCファイル名の一例である。
CL-Comp-Params-BB009218-98F6-4AB2-A4D7-0F007C2672C7.V2.json
例示的な一実施形態では、CLCファイルは、JSONファイル拡張子(.json)の前に(.V1、.V2、[…]、.VNの形をしたドット表記とともに)バージョン化される。PRLC参照セクションの一例は、以下(JSONオブジェクト)である。
“comp-references”: {
“r1”: “CL-Comp-Params-BB009218-98F6-4AB2-A4D7-0F007C2672C7.V2.json”,
“r2”: “CL-Comp_ResLocsDirect-8ED78F81-AFD7-46E0-B19E-E6291FB7AD1F.V1.json”,
“r3”: “CL-Comp_ResLocsGateway-9CA78F81-BAD7-46E7-B19E-E6291FB7BC2F.V1.json”,
“r4”: CL-Comp-ResLocsOrder-4DD357F4-C310-4FA9-A7E1-862650FCD853.V5.json”
}
参照メンバ名は、r<N>の形をし、たとえばr1、r2、r3などである。各参照は、同じ同期フォルダ内にあるJSONファイル名である。
CL-<[App/Desk]Name>-<ResourceKey (GUID)>.V<N>.json
以下は、PRLCファイル名の一例である。
CL-Desktop1-9D47CB39-BCD6-4668-8BEB-AE135CCB4D10.V1.json
例示的な一実施形態では、PRLCファイルは、JSONファイル拡張子(.json)の前に(.V1、.V2、[…]、.VNの形をしたドット表記とともに)バージョン化される。 CLCのファイル名は、パターンに従ってよい。
CL-Comp-<CompType>-<GUID>.V<N>.json,
ここで、<CompType>は、たとえば、「Params」、「ResLocsDirect」、「ResLocsGateway」、または「ResLocsOrder」とすることができる。
以下は、CLCファイル名の一例である。
CL-Comp-Params-BB009218-98F6-4AB2-A4D7-0F007C2672C7.V2.json
例示的な一実施形態では、CLCファイルは、JSONファイル拡張子(.json)の前に(.V1、.V2、[…]、.VNの形をしたドット表記とともに)バージョン化される。PRLC参照セクションの一例は、以下(JSONオブジェクト)である。
“comp-references”: {
“r1”: “CL-Comp-Params-BB009218-98F6-4AB2-A4D7-0F007C2672C7.V2.json”,
“r2”: “CL-Comp_ResLocsDirect-8ED78F81-AFD7-46E0-B19E-E6291FB7AD1F.V1.json”,
“r3”: “CL-Comp_ResLocsGateway-9CA78F81-BAD7-46E7-B19E-E6291FB7BC2F.V1.json”,
“r4”: CL-Comp-ResLocsOrder-4DD357F4-C310-4FA9-A7E1-862650FCD853.V5.json”
}
参照メンバ名は、r<N>の形をし、たとえばr1、r2、r3などである。各参照は、同じ同期フォルダ内にあるJSONファイル名である。
再び、接続リースファイルは特定のフォーマットに従ってよく、この特定のフォーマットは、本例ではJSONであるが、他の構造タイプ/値フォーマット(たとえば、XML、ASN.など)も使用されてよい。以下の説明では、オブジェクトは「JSONオブジェクト」を意味し、アレイは「JSONアレイ」を意味する。
Top-level (unnamed) object
Document object
Manifest object (cleartext)
Component References object (cleartext, optional)
Payload (encrypted with symmetric key)
Signatures - array of objects
Encrypted Symmetric Key - array of objects
Top-level (unnamed) object
Document object
Manifest object (cleartext)
Component References object (cleartext, optional)
Payload (encrypted with symmetric key)
Signatures - array of objects
Encrypted Symmetric Key - array of objects
ペイロードは、対称鍵とともに暗号化されてよい。さらに、対称鍵は、接続リースを受信するエンティティの公開鍵とともに暗号化されてよい。例示的な一実施形態では、複数のエンティティは、連続して接続リースを受信することがある(たとえば、クライアントデバイス51、ゲートウェイ60、仮想配信アプライアンス53など)ので、したがって、対称鍵は、宛先エンティティの公開鍵とともに複数回暗号化される。別の実施形態では、対称鍵は、最初は、クライアントデバイス51のみのために暗号化されてよい。次いで、接続リース交換プロトコルフェーズ中、対応するゲートウェイ60または仮想配信アプライアンス53に対する信頼のチェーンを確立した後、初期化エンティティ(たとえば、ゲートウェイのクライアントデバイス51)は、受信エンティティの公開鍵(たとえば、それぞれゲートウェイまたは仮想配信アプライアンスの公開鍵)とともに対称鍵を、確立された接続上でそれを送信する前に再暗号化する。
JSONが接続リースフォーマットとして使用される場合、署名は、たとえば、JSONウェブ署名(JWS)フォーマット(RFC7515)であってよい。また、例として、対称鍵は、JSONウェブキー(JWK)フォーマット(RFC7517)であってよく、宛先エンティティの公開鍵とともに暗号化されてよい。
さらに、各PRLCおよびCLCは、マニフェスト(たとえば、JSONオブジェクト)を平文で含んでよく、共通メンバ、すなわち、接続リースごとに一意のGUIDであるリース識別子(leaseId);接続リースのタイプの記述的名前(たとえば、Resource、Resource-Comp-Params、Resource-Comp-ResLocsDirect、Resource-Comp-ResLocsGateway、Resource-Comp-ResLocsOrder)であるリースタイプ(leaseType);接続リースごとに一意のGUIDであるリースタイプキー(leaseTypeKey);現在の接続のファイルの名前である(これは、各接続リースファイルが署名を含むので接続リースファイル名前変更を防止するためである)ファイル名(fileName);以下でさらに論じられるように、任意選択であり、現在の接続リース(もしあれば)を生成するために使用されたテンプレートファイルの名前を含有する、テンプレートから(fromTemplate);接続リースが属するワークスペースのURL(たとえば、「acme.citrix.cloud.com」)であるワークスペースURL(workspaceUrl);および一意の顧客識別子(ID)である顧客ID(customerId)のうちの1つまたは複数を含んでよい。
PRLCマニフェストは、パブリッシュリソース(たとえば、CVADのためのデスクトップまたはアプリ)ごとに一意のGUIDであり、リソースキーはPRLC JSONファイル名に含まれてよい、リソースキー(resourceKey);PRLCが有効になった日付である(たとえば、RFC3339フォーマットで)、有効から(validFrom);リソースCLが無効になった日付である(FC3339フォーマットで)、有効に(validTo);現在のリソース接続リースが適用するユーザの一意の識別子であるユーザ識別(userId);現在のリソース接続リースが適用されるクライアントまたはエンドポイントデバイスの一意の識別子であるエンドポイントデバイスID(endpointDeviceId);クライアントまたはエンドポイントデバイス公開鍵のハッシュ(たとえばSHA256)であるエンドポイントデバイス公開鍵拇印(endpoint device public thumbprint);ブローカ公開鍵を含有するJWKのアレイであるブローカ公開鍵(brokerPublicKeys)など、1つまたは複数の特定のメンバも含んでよい。これらのメンバのうちの1つまたは複数は、いくつかの実装では、必要に応じて、CVADブローカ57および仮想配信アプライアンス53からの署名された許可応答、否定応答、およびリダイレクトターゲット応答をサポートするために有用であってよい。
例示的な一実施形態では、接続リースファイルは、バージョン化されてよい。たとえば、バージョンは、各接続リースのファイル名の一部として含まれてよい。接続リースファイルのバージョニングは、有利には、それを参照するPRLCを更新する必要なくCLC(または複数のCLC)を更新する能力を提供する。これをするために、CWA56は、PRLCの参照を解決する(CWAは、最初は、PRLCファイル名に含まれるリソースキーとともに見つける)とき、参照されるCLCファイル名と、また、より新しいバージョンを有する任意のファイル名のためのルックアップを実施する。より新しいバージョンが見つかった(または複数)場合、CLCの最新バージョンが選択される。たとえば、PRLC参照セクションが、
CL-Comp_ResLocsDirect-8ED78F81-AFD7-46E0-B19E-E6291FB7AD1F.V1.jsonと
CL-Comp_ResLocsDirect-8ED78F81-AFD7-46E0-B19E-E6291FB7AD1F.V2.json
の両方を含むCWA接続リースファイル同期フォルダ61とともに
“compReferences”: {
….
“r2”: “CL-Comp_ResLocsDirect-8ED78F81-AFD7-46E0-B19E-E6291FB7AD1F.V1.json”,
….
}
を含む場合、
ResLocsDirect CLCのV2バージョンが使用される。
CL-Comp_ResLocsDirect-8ED78F81-AFD7-46E0-B19E-E6291FB7AD1F.V1.jsonと
CL-Comp_ResLocsDirect-8ED78F81-AFD7-46E0-B19E-E6291FB7AD1F.V2.json
の両方を含むCWA接続リースファイル同期フォルダ61とともに
“compReferences”: {
….
“r2”: “CL-Comp_ResLocsDirect-8ED78F81-AFD7-46E0-B19E-E6291FB7AD1F.V1.json”,
….
}
を含む場合、
ResLocsDirect CLCのV2バージョンが使用される。
この点に関して、CLCは、その以前のバージョンと旧バージョン互換性があってよい。PRLCの参照の解決が失敗した場合、より前のバージョンを有するPRLCが存在すれば、CWA56は、それを使用することを試み、その参照を解決し始める。これが失敗したまたはより前のバージョンが存在しない場合、CWAは、必要に応じて、従来の(非モジュール式)リーシング手法を使用して標準的なICA起動を実施し得る。たとえば、CLCは、それが、旧バージョン互換性がないような手段で更新される必要がある場合、新しいCLC(異なるリースIDを有する)が発行されてよく、関連付けられたPRLCが、それに応じて(新しいCLCを参照する新しいバージョンとともに)更新されてよい。
いくつかの実装では、CLCは、決して満了しないように設定されてよい。CLCが期限切れである(たとえば、新しいリソースロケーションが追加された)場合、それは、ファイルのより新しいバージョンまたは完全に異なるファイル(異なるリースIDを有する)によって置き換えられる。以前に説明された接続リース参照解決機構に関連して同期フォルダ61内の接続リースの以前のバージョン(存在する場合、最新CLCが一般的には選択される)を保つことは、ロッキング機構の必要なく接続リースファイル(PRLCおよびCLC)を更新することを可能にする。たとえば、PRLC(と、その従属CLC)の以前のバージョンは、新しい接続リースファイルが同期されているとき、保たれてよい。リソースのCWA56起動(および、したがって参照の解決)が失敗した間に同期が完了していない(たとえば、欠落したCLC)場合、CWAは、依然として存在するPRLCの以前のバージョンにデフォルトでなる。それが、あまりにも失敗する場合、上記で述べられたように、ICA起動が実施されてよい。
別の例示的な実施形態によれば、接続リース同期中にバージョニング手法を使用する代わりに、ロッキング機構が使用されてよい。より具体的には、接続リースファイルの同期中、同期フォルダ61に対するロックは、同期エンジン62によって獲得される(以下で図10A~図10Bを参照してさらに論じられる)。ロックは、同期が完了したとき、解除される。ロックが獲得不可能である(たとえば、CWAリソース起動が実施されている)場合、同期エンジン62は、それをすることが可能になることを待機する。同様に、CWA56が公開アプリまたはデスクトップを起動するとき、同期フォルダ61に対するロックは、CWA56によって獲得される。ロックは、接続リースファイルがもはや必要とされないとき、解除される(たとえば、それらは、最も短い可能な時間の量にわたってロックを保持するために、専用ロケーションにコピー可能である)。ロックが獲得不可能である(たとえば、同期が進行中である)場合、CWA56は、上記で説明されたように、諦めてICA起動を実施する前に設定された時間の量にわたってそれをすることを可能にするのを待機する。
CLIS52は、各ユーザのための接続リースを含む仮想フォルダ63を維持し、仮想フォルダ63は、例示的には、システム50とともに使用するためにプロビジョニングされたユーザのそれぞれのデバイスの各々のためのリースを有するサブフォルダ64をさらに含む。すなわち、クライアントデバイス51におけるローカルセキュアストレージに記憶された同期フォルダ61の内容は、CLIS52におけるそれぞれのサブフォルダ64の内容に対応する。図6に示される例示的な実施形態では、同期フォルダ61は、例示的には、2つのPRLC(PRLC1およびPRLC2)、ならびに6つのCLC(CLC1~CLC6)を含む。ここで再び、PRLCの各々は、それぞれのパブリッシュリソース(たとえば、アプリまたはデスクトップ)に対応し、適切なリソースキーGUIDと、ユーザIDに関連付けられたリソースに適切な有効期限などを含む。
最初の2つのCLC(CLC1~CLC2)は、特定のリソースにアクセスするためのクライアントデバイス51に割り当てられた所与のゾーンまたは地理的なリージョン内の適切なエンティティアドレス(たとえば、仮想配信アプライアンス53、ゲートウェイ60、コネクタ65など)のグループを含む。図の例では、PRLC1はCLC1(ゾーン1アドレス)を参照し、PRLC2はCLC2(ゾーン2アドレス)を参照する。そのような割り当ては、所与の時間におけるクライアントデバイス51の物理的ロケーションに基づいて変わってよい。さらに、他の実施形態では、これらのアドレスは、ゾーンによってグループ化される必要はなく、異なるCLCは、エンティティのそれぞれのタイプ(たとえば、仮想配信アプライアンス53、ゲートウェイ60、コネクタ65など)のために使用されてよい。図の例では2つのPRLCのみが図示されているが、他のPRLCが含まれ、また、CLC1および/またはCLC2を共有してよく、他のCLCアドレスファイルも含まれてよいことが理解されるであろう。
さらに、CLC3~CLC6は、PRLC1とPRLC2の両方によって共有される。より具体的には、CLC3は、それぞれの仮想コンピューティングセッション73のロケーション(たとえば、仮想コンピューティングセッションを動作させる仮想化サーバまたはホストのロケーション)を含み、CLIS52は、有利には、ロケーションの変更に応答して更新してよい。CLC4は、例示的には、アクティブかつ切断された仮想コンピューティングセッション73のためのステータスインジケータを含み、これは、仮想配信アプライアンス53が、適用可能であるとき、以前に確立されたアクティブかつ切断されたセッションにクライアントデバイス51を再接続することを可能にする。ここで再び、CLC4の更新は、仮想コンピューティングセッション73が閉じられる場合などと同様にリアルタイムで実施されてよい。
CLC5は、所与の仮想コンピューティングセッション73を取得するためにクライアントデバイス51が接続されるべきである仮想配信アプライアンス53の順序付きリストを含む。たとえば、異なるクライアントデバイス51は、仮想配信アプライアンスのグループにわたって負荷分散および/または所望のアベイラビリティを提供する助けとなるために仮想配信アプライアンス53の異なる順序付きリストが割り当てられ得る。さらに、CLC6は、上記で述べられた共通パラメータを含み、共通パラメータは、ネットワークトランスポートタイプ(たとえば、ユーザデータグラムプロトコル(UDP)対伝送制御プロトコル(TCP)など)、オーディオ設定ディスプレイ解像度設定、セキュリティ設定、ドライブマッピング設定(たとえば、イネーブルド/非イネーブルド)などを含んでよい。ここで再び、これらのCLCも、変更が発生する(たとえば、新しい仮想配信アプライアンス53がオンラインになる、共通パラメータが変更されるなど)と、リアルタイムで更新されてよい。
いくつかの実施形態では、接続リース作成および更新は、優先されることがある。たとえば、CLIS52は、ユーザ接続優先順序、たとえばお気に入りおよび最近使用されたパブリッシュリソースを検索するために、ワークスペース記憶サービス72と通信することがある。CLIS52はまた、この優先順序を接続リースサービス58に送ってよい。したがって、最も重要な接続リースが最初に作成される。
図11のフロー図210をさらに参照すると、図4のコンピューティングシステム40に関連付けられた、例示的な方法態様が次に説明される。方法は、ブロック212において、上記で説明されたようにCLCを生成することで始まる(ブロック211)。すなわち、たとえば、CLCは、異なるパブリッシュリソース間で共有されるので、それらは、最終的な接続リースを作成する時間になる前に生成されてよく、これは、有利には、CLC処理がオフピーク時間に実施され、したがって、負荷分散および/またはコンピューティングリソースのより効率的な使用を提供することを可能にする。サーバ42は、ブロック213において、クライアントデバイス41によってパブリッシュリソース選択を受信し、一意のPRLCとそれに基づいて関連付けられたCLCとを含む接続リースを生成してよく、ブロック214において、上記で論じられたように、それらをクライアントデバイスに提供し、これは、図11の方法を例示的に終える。上記で論じられたように、接続リースは、仮想配信アプライアンス44を介してパブリッシュリソース(たとえば、仮想アプリおよびデスクトップ、ウェブ/SaaSアプリなど)に対応する仮想コンピューティングセッション43にクライアントデバイス41を接続するために適切な命令を提供する。
図8を参照すると、ここで最初に、別の有利な接続リース生成態様が、図のコンピューティングシステム80を参照して説明される。上記で説明されたように、コンピューティングシステム80は、例示的には、クライアントデバイスにおいてリモートにアクセスされることになる仮想コンピューティングセッション83に対応するパブリッシュリソースを選択するように構成された複数のクライアントデバイス81を含む。コンピューティングシステム80は、例示的には、パブリッシュリソースに対応する複数の接続リーステンプレートを生成し、共有メモリ88(たとえば、クラウドベースのストレージシステム)に接続リーステンプレートを記憶するように構成された接続リーステンプレートアプライアンス89をさらに含む。コンピューティングシステム80はまた、例示的には、共有メモリ88に記憶された接続リーステンプレートにアクセスし、接続リーステンプレートに基づいてそれぞれのクライアントデバイス81のための接続リースをプロビジョニングするように構成された接続リース発行アプライアンス82を含む。接続リースは、以下でさらに論じられるように、クライアントデバイス81によってパブリッシュリソースの選択に応答して必要に応じて接続リース発行アプライアンス82によってプロビジョニングされる。上記で同様に論じられたように、コンピューティングシステム80はまた、例示的には、1つまたは複数の仮想配信アプライアンス84を含み、仮想配信アプライアンス84は、接続リースに基づいてそれぞれの仮想コンピューティングセッション83にクライアントデバイス81を接続するように構成される。
前述の内容は、次に図9~図10Bを参照して説明される例示的な実装を参照してさらに理解されよう。図9のシステム90および図10A~図10Bのシーケンス図230に示されるこの例示的な実装は、Citrix WorkspaceおよびCitrix Cloudプラットフォームを使用して実装され、上記で論じられたシステム50において利用される同じ構成要素のうちのいくつかを共有する。ここでもやはり、これは、テンプレートベースの接続リース動作が利用され得る例示的な1つのプラットフォームにすぎず、これらの技法は他の適切な仮想化プラットフォームにも組み込まれてよいことが留意されるべきである。
図の例では、接続リース発行アプライアンス52は、Citrix Workspaceの接続リース発行サービス(CLIS)を使用してもう一度実装される。CLIS52は、接続リーステンプレートアプライアンス58を介してリソースプロバイダ91を呼び出すことによって接続リース作成を編成し、これは、この例では、上記で説明された接続リースサービスによって提供される。リソースプロバイダ91とCLIS52との間のパイプライン内での接続リースの転送は、たとえば、接続リースサービスREST API74を介してであってよい。
接続リースサービス58は、この例では、共有メモリ内に初期接続リーステンプレート92および中間接続リーステンプレート93を作成し、共有メモリは、上記で述べられたクラウドファイルストレージ68である。さらに、CLIS52は、その後、クラウドファイルストレージ68内の初期接続リーステンプレート92および/または中間接続リーステンプレートにアクセスし、中間接続リース94および最終接続リース95を生成またはプロビジョニングする。
テンプレート92、93および接続リース94、95は、リース生成のための「工場」アセンブリラインと概念的に考えられてよく、「工場」アセンブリラインでは、初期テンプレート92はアセンブリラインの始まりであり、最終接続リースは、アセンブリラインの終了時に完了したリースである(すなわち、図5に示されるように、それぞれの仮想コンピューティングセッション73と所与のクライアントデバイス51を接続するために使用され得る最終接続リース)。以下でさらに論じられるように、この手法の長所は、それが、新しいリースが作成され得るまたは古いリースが、各リースをゼロから再作成しなければならないよりも容易かつ迅速に更新され得るように、実装の種々の段階で接続リースを提供することである。
より具体的には、初期接続リーステンプレート92は、たとえば、リソース配信グループ(RDG)などの比較的高いレベルのリース情報と、共通接続パラメータとを含んでよい。配信グループは、1つまたは複数のマシンカタログから選択されたマシンの集まりである。RDGは、どのユーザがどの仮想マシンを使用することができるかと、それらのユーザにとって利用可能なアプリケーションおよび/またはデスクトップを指定する。上記で論じられたように、共通接続パラメータは、ネットワークトランスポートタイプ、オーディオ/ディスプレイ設定、セキュリティ設定、ドライブマッピング設定などを含んでよい。
中間接続リーステンプレート93は、それぞれの初期テンプレートからの情報と、追加の特殊情報を組み込む。たとえば、追加の情報は、アプリグループ指定;リソース権利(たとえば、ユーザが権利を与えられるアプリ、ユーザが起動することを許可されているデスクトップの数など);セッション共有制限;タグ;およびユーザごとのリソースロケーション順序を含んでよい。異なる実施形態では、他のパラメータも、初期および/または中間接続リーステンプレート92、93に含まれてよい。
CLIS52は、情報のすべてを含む中間接続リースを生成して、それぞれの中間接続リーステンプレートに記憶し、さらに依然としてさらなる専門化生成および記憶する。たとえば、中間接続リースは、異なるユーザデバイスのために再暗号化されてよいユーザ固有接続リースと、接続が開始されるたびに割り当てられたゲートウェイ60(図6を見よ)がCLIS52によって問い合わされなくてもよいような、リソースロケーションゲートウェイ接続リースとをさらに含んでよい。リソースロケーション直接接続リースは、それが、ゲートウェイ60インスタンスのみが理解するキーとともに仮想配信アプライアンス53アドレスを暗号化し得るように、ゲートウェイ60に提供されてよい。これは、仮想配信アプライアンス53情報がクライアントデバイス51にさらされることを防止する助けとなるために、追加のセキュリティ尺度として実装されてよい。
最終接続リース95は、所与のクライアントデバイス51に関連付けられた固有情報に加えて、それぞれの中間接続リース94の情報を含む。より具体的には、このデバイス固有情報は、特定のユーザデバイスのために暗号化および署名された、上記で説明されたPRLC構成要素とCLC構成要素とを含んでよい。さらに、追加の情報も、自律的同期、サポート可能性などを容易にするために含まれてよい。
図の例では、接続リーステンプレートアプライアンス58とCLIS52の両方は、同じ共有クラウドファイルストレージ68を使用する。しかし、異なる実施形態では、接続リーステンプレートアプライアンス58およびCLIS52は、クラウドファイルストレージ68内の異なるパーティションが割り当てられてもよいし、異なるファイルストレージを全体で使用してもよい。すなわち、本明細書における「共有」メモリへの参照は、接続リーステンプレートアプライアンス58が、それがテンプレートにアクセスし得るが、CLISはテンプレートストレージエリアへの書き込みアクセスを必ずしも必要とせず、そこにその接続リース94および/または95を保存する必要もないように、CLIS52にアクセス可能な(または、これと共有される)ロケーションにテンプレート92および/または93を記憶することを意味する。いずれにしても、テンプレート92、93および中間接続リース94の使用は、有利には、クラウド負荷およびストレージを減少させる助けとなり、接続リーステンプレートアプライアンス58およびCLIS52のために使用される特定のクラウドファイルストレージ68の割り当ては、異なる実装では、これらの目的を促進する助けとなるために適宜選択されてよい。
いくつかの実施形態では、望ましい場合、クラウドファイルストレージ68の使用が抽象化(abstract)されてよい。たとえば、ブリッジ設計パターンが、ファイルストレージを抽象化する共有ライブラリ内のAzure、AWS、またはCitrix ShareFile上で実装されてよい。より具体的には、たとえば、共有APIは、完全に新しい共有サービスなしでプログラミングレベルにおいて異なるサービスによって使用されてもよいし、REST APIを有する共有クラウドファイルストレージサービスが使用されてもよい。
上記で述べられたように、別個のサービス(接続リーステンプレートアプライアンス58およびCLIS52)は、別個のデータベース67、66を使用する。いくつかの構成では、データベース67、66は、抽象化APIを共有してもよい。接続リースインデックスは、GUIDによって、またはユーザデバイス情報によって、またはデータベース外部キーの使用などを通じて、接続リースを見つける助けとなる。次いで、接続リースがクラウドファイルストレージ68に記憶されるポインタが見つけられる。例示的な1つの実装では、永続的なユーザDBを有するCitrix ShareFileは、データベース66および/または67を実装するために使用されてよい。例として、REDIS+SQL DBは、それらの性能、レジリエンス、および永続的な能力に基づいて使用されてよいが、異なる実施形態では、他のプラットフォームが使用されてよい。
構成、権利、マシン状態、セッション状態、接続リース満了、失効などの更新は、有利には部分的または完全な接続リース更新という結果になるために、CLIS52へのリソースプロバイダ91の「工場」チェーンの異なる段階から伝搬されてよい。すなわち、イベントは、リソースプロバイダ91からCLIS52に送信されてよく、これは、この例では、接続リーステンプレートアプライアンス58を介してなされる。
ブローカ57(図5参照)は、「工場」パターンでも接続リーステンプレートアプライアンス58および/またはCLIS52に接続リース更新を伝搬し得る。たとえば、そのような更新は、マシンカタログ、配信グループ、アプリグループ、または他の変更;アプリ追加/除去;ユーザ権利更新;仮想配信アプライアンス53電力管理更新:仮想配信アプライアンスダウン/アップステータス(たとえば、オンラインまたはオフライン);プールされた仮想配信アプライアンス電力管理;仮想配信アプライアンス負荷変化;ユーザセッションロケーション(たとえば、プールされた仮想配信アプライアンスなど);および、たとえば、ユーザのクライアントデバイスの別の1つに移動されることになる第1のクライアントデバイス51からユーザが起動し得る現在動作しているアプリを可能にするためのワークスペースローミング、を含んでよい。
CLIS52はまた、たとえば、最近のユーザ活動(アクティブなユーザ)、最近のデバイスコールホーム、最近のログオンなどに基づいて、接続リース期限切れをチェックし、接続リースを新しくする。この点に関して、CLIS52は、いくつかの実施形態では、ユーザのクライアントデバイス51の1つが最近使用されたことに基づいて、所与のユーザに関連付けられた最終接続リース95のうちのいくつかまたはすべてを新しくすることがある。たとえば、ユーザが、延長された期間にわたってそのラップトップを使用していないことがあるが、そのデスクトップデバイスは、その期間内で定期的に使用されている。したがって、CLIS52は、ユーザが依然としてアクティブであることを知り、したがって、デスクトップデバイスの使用が、ユーザが依然としてアクティブであることを実証したことに基づいて、ラップトップのためのリースを新しくするように構成されることがある。
例示的な一実装では、CLIS52は、期限切れをチェックする/リースを周期的に、たとえば7日ごとに新しくする(が、他の時間期間も使用されてよい)ことがある。別の例示的な実施形態では、CLIS52は、接続リース更改をコールホームのリズム(cadence)に結び付けることがあり、たとえば、それは、一定の時間の量(たとえば、長い休暇時間に相当する1か月など)以内にコールホームが起こらなかった場合、ユーザデバイスごとの新しい接続リースを生成することをやめることがある。CLIS52は、この目的のために、ユーザデバイスごとにタイムスタンプを保つことがある。
種々の手法も、接続リース失効のために使用されてよい。例示的な1つの手法では、接続リース失効は、ユーザごとに実施されないが、クラウド実装が取り組まれたなどの場合に、バルク失効がサポートされることがある。他の実装では、個々の接続リース失効がイネーブルにされてよい。たとえば、CLIS52は、証明書失効リストのパターンと同様に、取り消されることになるGUIDを仮想配信アプライアンス53およびゲートウェイ60に送信することがある。例示的な別の手法では、中間接続リースおよび/または最終接続リース94、95が、クラウドファイルストレージから削除されることがあり、したがって、CL同期エンジン62は、それらをクライアントデバイス51からも除去することがある。
加えて図10A~図10Bのシーケンス図230を参照すると、いくつかの実装では、CWA同期エンジン62は、ユーザの仮想フォルダ63からの接続リースをクライアントデバイス51における接続リースファイル同期フォルダ61へと自律的に同期させることがある。プロセスは、クライアント51が、ユーザの仮想フォルダ63(およびサブフォルダ64)のためのルート同期フォルダロケーションへの同期を接続リース同期エンジン62に要求することで始まる。クライアントデバイス51は、セッションキーに基づいてセカンダリトークン同期をauthマネージャ71にさらに要求し、セカンダリトークン同期は、authマネージャによってクライアントに返される。次いで、クライアントデバイス51は、同期されたセカンダリトークンに基づいて接続リース同期エンジン62を用いて初期化し、接続リース同期エンジンは、接続リースファイル同期サーバ75にauthを送信し、接続リースファイル同期サーバ75は、それに応じてauthトークンを返す。これは、接続リース同期エンジン62が同期プロセスを開始することを可能にする。
より具体的には、接続リース同期エンジン62は、接続リースファイル同期フォルダ61からローカル同期フォルダを検索し、次いで、authトークンに基づいて接続リースファイル同期サーバ75に要求を発行する。次いで、接続リースファイル同期サーバ75は、CLIS SQLデータベース66からユーザデバイス同期フォルダ情報を検索し、それを接続リース同期エンジン62に返す。次いで、接続リース同期エンジン62は、接続リースファイル情報のフォルダ変更/日付リストをチェックし、それをローカル同期フォルダ61情報と比較する。次いで、接続リース同期エンジン62が、クラウドファイルストレージ68から接続リースファイル情報を読み出し、クライアントデバイス51のローカル同期フォルダ61において適切な接続リースファイルを記憶、更新、または削除するために、接続リースファイル同期サーバ75と反復的に協働することがある。
埋め込まれた(たとえば、CWA)ブラウザ実装の場合、同期エンジン62は、ストアがリフレッシュされると、アクティブ化されることがある。あるいは、バックグラウンドリフレッシュも、たとえば、プログレッシブウェブアプリ(PWA)サービスワーカから、実施されてよい。
前述の手法は、有利には、効率的な複合的(モジュール式)接続リース設計を提供するために使用されてよい。さらに、これらの手法は、テンプレート、中間ユーザデバイスCL、および最終ユーザデバイスCLを使用した接続リースバックグラウンドイベントベースの生成および管理のための「工場」パターンも提供する。その結果、階層的機会主義的手法は、拡張されたレジリエンスと、権利および接続操縦に関する正確なリアルタイムデータが与えられる。本明細書に記載される手法の他の長所は、改善されたレジリエンス、スケーラビリティ、セキュリティ、および接続技術のユーザエクスペリエンス、のうちの1つまたは複数を含んでよい。
前述の手法の他の長所は、CLの自律的な一方向性同期に対するクライアントデバイスと、ならびに、クライアントデバイス/エンドポイントおよびクラウド上の接続リースの全体的なサイズを減少させる;ネットワークトラフィックを減少させる;ブローカ57、ワークスペース55、CLIS52などを含めてクラウドに対する負荷を減少させる;テレメトリおよびサポート可能性を容易にする;複雑さおよび漸進的な改善がクラウド内で発生する間エンドポイント(たとえば、CWA)を比較的単純に保つ;接続リースを用いてレジリエンス、セキュリティ、およびユーザエクスペリエンスを改善する機構を含んでよい。
次に、図8のシステム80に対する関連方法態様が、図12のフロー図220を参照して説明される。ブロック221で始まり、クライアントデバイス81によるパブリッシュリソースの選択に応答して(ブロック222)、方法は、例示的には、ブロック223において、接続リース発行アプライアンス82を使用して、共有メモリ68に記憶される、パブリッシュリソース91に対応する接続リーステンプレートにアクセスすることを含む。方法は、例示的には、ブロック224において、記憶された接続リーステンプレートに基づいて接続リース発行アプライアンス82を使用してそれぞれのクライアントデバイス81のための接続リースをプロビジョニングすることをさらに含み、これは、図の方法を終える(ブロック225)。上記で述べられたように、接続リースは、クライアントデバイス81によってパブリッシュリソースの選択に応答して必要に応じてプロビジョニングされてよく、接続リースは、パブリッシュリソースに対応する仮想コンピューティングセッション83にクライアントデバイスを接続するための命令を提供してよい。
さらなる例示的な実施形態
以下の例は、他の置換および構成が当業者には明らかになるさらなる例示的な実施形態である。
以下の例は、他の置換および構成が当業者には明らかになるさらなる例示的な実施形態である。
例Aは、メモリと、このメモリと協働し、クライアントデバイスによって選択されたパブリッシュリソースに対して接続リースを生成するように構成されたプロセッサとを備えるコンピューティングデバイスのためのものである。接続リースは、パブリッシュリソースに対応する仮想コンピューティングセッションにクライアントデバイスを接続するための命令を提供する。選択されたパブリッシュリソースに一意のパブリッシュリソースリース構成要素と、複数の異なるパブリッシュリソースによって共有される共通リース構成要素とを含む各接続リース。
例Bは例Aの主題を含み、クライアントデバイスは、少なくとも1つの仮想配信アプライアンスによって仮想コンピューティングセッションに接続され、共通リース構成要素は、少なくとも1つの仮想配信アプライアンスに関連付けられたネットワークアドレスを含む。
例Cは、例Aおよび例Bの主題を含み、クライアントデバイスは、少なくとも1つのゲートウェイアプライアンスによって仮想配信アプライアンスに接続され、共通リース構成要素は、少なくとも1つのゲートウェイアプライアンスに関連付けられたネットワークアドレスを含む。
例Dは例Aの主題を含み、仮想コンピューティングセッションのうちの少なくともいくつかは、クラウドベースの仮想コンピューティングセッションを含み、クライアントデバイスは、少なくとも1つのクラウドインターフェースアプライアンスによってクラウドベースの仮想コンピューティングセッションに接続され、共通リース構成要素は、少なくとも1つのクラウドインターフェースアプライアンスに関連付けられたネットワークアドレスを含む。
例Eは例Aの主題を含み、クライアントデバイスは、異なるゾーンにグループ化された複数の仮想配信アプライアンスによって仮想コンピューティングセッションに接続され、共通リース構成要素は、仮想配信アプライアンスの所与のグループに対してゾーン指定を含む。
例Fは例Aの主題を含み、少なくとも1つの仮想配信アプライアンスは、複数の仮想配信アプライアンスを含み、共通リース構成要素は、仮想配信アプライアンスのうちの少なくともいくつかの順序付きリストを含む。
例Gは例Aの主題を含み、共通リース構成要素は、ネットワークトランスポートタイプ設定、オーディオ設定、ディスプレイ解像度設定、セキュリティ設定、およびドライブマッピングイネーブルメント設定、のうちの少なくとも1つを含む。
例Hは例Aの主題を含み、プロセッサは、パブリッシュリソースリース構成要素および共通リース構成要素を互いから独立して更新するようにさらに構成される。
例Iは例Aの主題を含み、パブリッシュリソースリース構成要素は、リソースキーグローバル一意識別子(GUID)、ユーザ識別子、および有効期限、のうちの少なくとも1つを含む。
例Jは、サーバにおいて、クライアントデバイスによって選択されたパブリッシュリソースに対して接続リースを生成することであって、接続リースは、パブリッシュリソースに対応する仮想コンピューティングセッションにクライアントデバイスを接続するための命令を提供する、ことを含む方法が対象とされる。各接続リースは、選択されたパブリッシュリソースに一意のパブリッシュリソースリース構成要素と、複数の異なるパブリッシュリソースによって共有される共通リース構成要素とを含む。
例Kは例Jの主題を含み、クライアントデバイスは、少なくとも1つの仮想配信アプライアンスによって仮想コンピューティングセッションに接続され、共通リース構成要素は、少なくとも1つの仮想配信アプライアンスに関連付けられたネットワークアドレスを含む。
例Lは、例Jおよび例Kの主題を含み、クライアントデバイスは、少なくとも1つのゲートウェイアプライアンスによって仮想配信アプライアンスに接続され、共通リース構成要素は、少なくとも1つのゲートウェイアプライアンスに関連付けられたネットワークアドレスを含む。
例Mは例Jの主題を含み、仮想コンピューティングセッションのうちの少なくともいくつかは、クラウドベースの仮想コンピューティングセッションを含み、クライアントデバイスは、少なくとも1つのクラウドインターフェースアプライアンスによってクラウドベースの仮想コンピューティングセッションに接続され、共通リース構成要素は、少なくとも1つのクラウドインターフェースアプライアンスに関連付けられたネットワークアドレスを含む。
例Nは例Jの主題を含み、クライアントデバイスは、異なるゾーンにグループ化された複数の仮想配信アプライアンスによって仮想コンピューティングセッションに接続され、共通リース構成要素は、仮想配信アプライアンスの異なるグループに対してゾーン指定を含む。
例Oは、仮想コンピューティングセッションに対応するパブリッシュリソースを選択するように構成された複数のクライアントデバイスと、クライアントデバイスによって選択されたパブリッシュリソースに対して接続リースを生成するように構成されたサーバであって、各接続リースは、選択されたパブリッシュリソースに一意のパブリッシュリソースリース構成要素と、複数の異なるパブリッシュリソースによって共有される共通リース構成要素とを含む、サーバと、接続リースに基づいてそれぞれの仮想コンピューティングセッションにクライアントデバイスを接続するように構成された少なくとも1つの仮想配信アプライアンスと、を備えるコンピューティングシステムが対象とされる。
例Pは例Oの主題を含み、共通リース構成要素は、少なくとも1つの仮想配信アプライアンスに関連付けられたネットワークアドレスを含む。
例Qは例Oの主題を含み、少なくとも1つの仮想配信アプライアンスにクライアントデバイスを接続するように構成された少なくとも1つのゲートウェイアプライアンスをさらに備え、共通リース構成要素は、少なくとも1つのゲートウェイアプライアンスに関連付けられたネットワークアドレスを含む。
例Rは例Oの主題を含み、仮想コンピューティングセッションのうちの少なくともいくつかは、クラウドベースの仮想コンピューティングセッションを含み、クラウドベースの仮想コンピューティングセッションにクライアントデバイスを接続するように構成された少なくとも1つのクラウドインターフェースアプライアンスをさらに備え、共通リース構成要素は、少なくとも1つのクラウドインターフェースアプライアンスに関連付けられたネットワークアドレスを含む。
例Sは例Oの主題を含み、共通リース構成要素は、仮想コンピューティングセッションロケーションを含み、サーバは、仮想コンピューティングセッションロケーションにおける変更に応答して共通リース構成要素を更新する。
例Tは例Oの主題を含み、共通リース構成要素は、アクティブなおよび切断されたセッションに対してステータスインジケータをさらに含み、少なくとも1つの仮想配信アプライアンスは、以前に確立されたアクティブかつ切断されたセッションにクライアントデバイスを再接続するようにさらに構成される。
例AAは、メモリと、このメモリと協働し、共有メモリに記憶されたパブリッシュリソースに対応する複数の接続リーステンプレートにアクセスし、記憶された接続リーステンプレートに基づいて接続リース発行アプライアンスを使用してそれぞれのクライアントデバイスのための接続リースをプロビジョニングするように構成されたプロセッサとを備えるコンピューティングデバイスが対象とされる。接続リースは、クライアントデバイスによってパブリッシュリソースの選択に応答して必要に応じてプロビジョニングされ、接続リースは、パブリッシュリソースに対応する仮想コンピューティングセッションにクライアントデバイスを接続するための命令を提供する。
例BBは例AAの主題を含み、テンプレートは、第1の接続パラメータを含む初期テンプレートと、第1のパラメータと第2の接続パラメータとを含む中間テンプレートとを備える。
例CCは、例AAおよび例BBの主題を含み、第1の接続パラメータは、パブリッシュリソース配信グループおよび共通接続パラメータのうちの少なくとも1つを備える。
例DDは、例AAおよび例BBの主題を含み、第2の接続パラメータは、アプリケーショングループ、リソース権利、セッション共有制限、タグパラメータ、およびリソースロケーション順序、のうちの少なくとも1つを備える。
例EEは例AAの主題を含み、プロセッサは、接続リーステンプレートに基づいて中間接続リースを生成し、共有メモリに記憶するようにさらに構成され、各中間接続リースは、それぞれのユーザに関連付けられ、プロセッサは、中間接続リースを、各ユーザに関連付けられたそれぞれのクライアントデバイスのための接続リース最終へとプロビジョニングするように構成される。
例FFは例AAおよび例EEの主題を含み、プロセッサは、有効期間中に所与のユーザに関連付けられた最終接続リースのうちの少なくとも1つの使用法に基づいて有効期間の終了の前に所与のユーザに関連付けられた最終接続リースのすべてを新しくするようにさらに構成される。
例GGは、接続リース発行アプライアンスを使用して共有メモリに記憶されたパブリッシュリソースに対応する複数の接続リーステンプレートにアクセスすることと、記憶された接続リーステンプレートに基づいて接続リース発行アプライアンスを使用してそれぞれのクライアントデバイスのための接続リースをプロビジョニングすることとを含む方法が対象とされる。接続リースは、クライアントデバイスによってパブリッシュリソースの選択に応答して必要に応じてプロビジョニングされ、接続リースは、パブリッシュリソースに対応する仮想コンピューティングセッションにクライアントデバイスを接続するための命令を提供する。
例HHは例GGの主題を含み、テンプレートは、第1の接続パラメータを含む初期テンプレートと、第1のパラメータと第2の接続パラメータとを含む中間テンプレートとを備える。
例IIは、例GGおよび例HHの主題を含み、第1の接続パラメータは、パブリッシュリソース配信グループおよび共通接続パラメータのうちの少なくとも1つを備える。
例JJは例GGおよび例HHの主題を含み、第2の接続パラメータは、アプリケーショングループ、リソース権利、セッション共有制限、タグパラメータ、およびリソースロケーション順序、のうちの少なくとも1つを備える。
例KKは例GGの主題を含み、接続リース発行アプライアンスを使用して接続リーステンプレートに基づいて中間接続リースを生成し、共有メモリに記憶することであって、各中間接続リースはそれぞれのユーザに関連付けられる、ことをさらに含み、プロビジョニングは、中間接続リースを、各ユーザに関連付けられたそれぞれのクライアントデバイスのための最終接続リースにプロビジョニングすることを含む。
例LLは例GGおよび例KKの主題を含み、接続リース発行アプライアンスを使用して有効期間中に所与のユーザに関連付けられた最終接続リースのうちの少なくとも1つの使用法に基づいて有効期間の終了の前に所与のユーザに関連付けられた最終接続リースのすべてを新しくすることをさらに含む。
例MMは、仮想コンピューティングセッションに対応するパブリッシュリソースを選択するように構成された複数のクライアントデバイスと、パブリッシュリソースに対応する複数の接続リーステンプレートを生成し、接続リーステンプレートを共有メモリに記憶するように構成された接続リーステンプレートアプライアンスと、共有メモリに記憶された接続リーステンプレートにアクセスし、接続リーステンプレートに基づいてそれぞれのクライアントコンピューティングデバイスのための接続リースをプロビジョニングするように構成された接続リース発行アプライアンスであって、接続リースは、クライアントデバイスによって接続リース発行によるパブリッシュリソースの選択に応答して必要に応じてプロビジョニングされる、接続リース発行アプライアンスと、接続リースに基づいてそれぞれの仮想コンピューティングセッションにクライアントデバイスを接続するように構成された少なくとも1つの仮想配信アプライアンスと、を備えるコンピューティングシステムが対象とされる。
例NNは例MMの主題を含み、テンプレートは、第1の接続パラメータを含む初期テンプレートと、第1のパラメータと第2の接続パラメータとを含む中間テンプレートとを備える。
例OOは、例MMおよび例NNの主題を含み、第1の接続パラメータは、パブリッシュリソース配信グループおよび共通接続パラメータのうちの少なくとも1つを備える。
例PPは例MMおよび例NNの主題を含み、第2の接続パラメータは、アプリケーショングループ、リソース権利、セッション共有制限、タグパラメータ、およびリソースロケーション順序、のうちの少なくとも1つを備える。
例QQは例MMの主題を含み、接続リース発行アプライアンスは、各々がそれぞれのユーザに関連付けられた接続リーステンプレートに基づいて中間接続リースを生成し、共有メモリに記憶し、中間接続リースを、各ユーザに関連付けられたそれぞれのクライアントコンピューティングデバイスのための最終接続リースへとプロビジョニングするようにさらに構成される。
例RRは例MMおよび例QQの主題を含み、接続リース発行アプライアンスは、有効期間中に所与のユーザに関連付けられた最終接続リースのうちの少なくとも1つの使用法に基づいて有効期間の終了の前に所与のユーザに関連付けられた最終接続リースのすべてを新しくするようにさらに構成される。
例SSは例MMの主題を含み、少なくとも1つの仮想配信エージェントは複数の仮想配信エージェントを備え、接続リース発行アプライアンスは、仮想配信エージェントに対する変更に基づいてクライアントコンピューティングデバイスのための新しい接続リースをプロビジョニングするようにさらに構成される。
例TTは例MMの主題を含み、接続リース発行アプライアンスは、パブリッシュリソースに対する権利に対する変更に基づいてクライアントコンピューティングデバイスのための新しい接続リースをプロビジョニングするようにさらに構成される。
多数の修正および他の実施形態が、前述の記載および関連の図面に提示されている教示の利益を有する当業者には想起されよう。したがって、前述は例示的な実施形態に限定されるべきではなく、修正および他の実施形態が添付の特許請求の範囲内に含まれることが意図されていることを理解されたい。
40 コンピューティングシステム
41 クライアントデバイス
41 クライアントデバイス
Claims (20)
- メモリと、前記メモリと協働し、
コンピューティングセッションに接続するための命令を提供する接続リースを受信し、
前記接続リースを含む前記コンピューティングセッションへの接続を要求し、
ように構成されたプロセッサと
を備えたコンピューティングデバイスであって、
各接続リースは、パブリッシュリソースに一意の第1の構成要素と、前記第1の構成要素によって参照され、他の接続リースにおける複数の異なるパブリッシュリソースと同様に共有される第2の構成要素とを含み、前記第2の構成要素は、前記第1の構成要素から独立して更新可能であることを特徴とするコンピューティングデバイス。 - 前記プロセッサは、少なくとも1つの仮想配信アプライアンスによって前記コンピューティングセッションに接続され、前記第2の構成要素は、前記少なくとも1つの仮想配信アプライアンスに関連付けられたネットワークアドレスを含むことを特徴とする請求項1に記載のコンピューティングデバイス。
- 前記プロセッサは、少なくとも1つのゲートウェイアプライアンスによって前記少なくとも1つの仮想配信アプライアンスに接続され、前記第2の構成要素は、前記少なくとも1つのゲートウェイアプライアンスに関連付けられたネットワークアドレスを含むことを特徴とする請求項2に記載のコンピューティングデバイス。
- 前記コンピューティングセッションのうちの少なくともいくつかは、クラウドベースの仮想コンピューティングセッションを含み、前記プロセッサは、少なくとも1つのクラウドインターフェースアプライアンスによって前記クラウドベースの仮想コンピューティングセッションに接続され、前記第2の構成要素は、前記少なくとも1つのクラウドインターフェースアプライアンスに関連付けられたネットワークアドレスを含むことを特徴とする請求項1に記載のコンピューティングデバイス。
- 前記プロセッサは、異なるゾーンにグループ化された複数の仮想配信アプライアンスによって前記コンピューティングセッションに接続され、前記第2の構成要素は、仮想配信アプライアンスの所与のグループに対してゾーン指定を含むことを特徴とする請求項1に記載のコンピューティングデバイス。
- 前記プロセッサは、少なくとも1つの仮想配信アプライアンスによって前記コンピューティングセッションに接続され、前記第2の構成要素は、前記仮想配信アプライアンスのうちの少なくともいくつかの順序付きリストを含むことを特徴とする請求項1に記載のコンピューティングデバイス。
- 前記第2の構成要素は、ネットワークトランスポートタイプ設定、オーディオ設定、ディスプレイ解像度設定、セキュリティ設定、およびドライブマッピングイネーブルメント設定のうちの少なくとも1つを含むことを特徴とする請求項1に記載のコンピューティングデバイス。
- 前記第1の構成要素は、リソースキーグローバル一意識別子(GUID)、ユーザ識別子、および有効期限のうちの少なくとも1つを含むことを特徴とする請求項1に記載のコンピューティングデバイス。
- コンピューティングセッションに接続するための命令を提供するコンピューティングデバイスにおいて接続リースを受信することと、
前記接続リースを含む前記コンピューティングデバイスから前記コンピューティングセッションへの接続を要求することと
を備える方法であって、
各接続リースは、パブリッシュリソースに一意の第1の構成要素と、前記第1の構成要素によって参照され、他の接続リースにおける複数の異なるパブリッシュリソースと同様に共有される第2の構成要素とを含み、前記第2の構成要素は、前記第1の構成要素から独立して更新可能であることを特徴とする方法。 - 前記コンピューティングデバイスは、少なくとも1つの仮想配信アプライアンスによって前記コンピューティングセッションに接続され、前記第2の構成要素は、前記少なくとも1つの仮想配信アプライアンスに関連付けられたネットワークアドレスを含むことを特徴とする請求項9に記載の方法。
- 前記コンピューティングデバイスは、少なくとも1つのゲートウェイアプライアンスによって前記少なくとも1つの仮想配信アプライアンスに接続され、前記第2の構成要素は、前記少なくとも1つのゲートウェイアプライアンスに関連付けられたネットワークアドレスを含むことを特徴とする請求項10に記載の方法。
- 前記コンピューティングセッションのうちの少なくともいくつかは、クラウドベースの仮想コンピューティングセッションを含み、前記コンピューティングデバイスは、少なくとも1つのクラウドインターフェースアプライアンスによって前記クラウドベースの仮想コンピューティングセッションに接続され、前記第2の構成要素は、前記少なくとも1つのクラウドインターフェースアプライアンスに関連付けられたネットワークアドレスを含むことを特徴とする請求項9に記載の方法。
- 前記コンピューティングデバイスは、異なるゾーンにグループ化された複数の仮想配信アプライアンスによって前記コンピューティングセッションに接続され、前記第2の構成要素は、仮想配信アプライアンスの所与のグループに対してゾーン指定を含むことを特徴とする請求項9に記載の方法。
- 前記コンピューティングデバイスは、少なくとも1つの仮想配信アプライアンスによって前記コンピューティングセッションに接続され、前記第2の構成要素は、前記仮想配信アプライアンスのうちの少なくともいくつかの順序付きリストを含むことを特徴とする請求項9に記載の方法。
- コンピューティングデバイスに、
コンピューティングセッションに接続するための命令を提供する接続リースを受信することと、
前記接続リースを含む前記コンピューティングセッションへの接続を要求することと
を含むステップを行わせるためのコンピュータ実行可能な命令を有する非一時的なコンピュータ読取り可能媒体であって、
各接続リースは、パブリッシュリソースに一意の第1の構成要素と、前記第1の構成要素によって参照され、他の接続リースにおける複数の異なるパブリッシュリソースと同様に共有される第2の構成要素とを含み、前記第2の構成要素は、前記第1の構成要素から独立して更新可能であることを特徴とする非一時的なコンピュータ読取り可能媒体。 - 前記コンピューティングデバイスは、少なくとも1つの仮想配信アプライアンスによって前記コンピューティングセッションに接続され、前記第2の構成要素は、前記少なくとも1つの仮想配信アプライアンスに関連付けられたネットワークアドレスを含むことを特徴とする請求項15に記載の非一時的なコンピュータ読取り可能媒体。
- 前記コンピューティングデバイスは、少なくとも1つのゲートウェイアプライアンスによって前記少なくとも1つの仮想配信アプライアンスに接続され、前記第2の構成要素は、前記少なくとも1つのゲートウェイアプライアンスに関連付けられたネットワークアドレスを含むことを特徴とする請求項16に記載の非一時的なコンピュータ読取り可能媒体。
- 前記コンピューティングセッションのうちの少なくともいくつかは、クラウドベースの仮想コンピューティングセッションを含み、前記コンピューティングデバイスは、少なくとも1つのクラウドインターフェースアプライアンスによって前記クラウドベースの仮想コンピューティングセッションに接続され、前記第2の構成要素は、前記少なくとも1つのクラウドインターフェースアプライアンスに関連付けられたネットワークアドレスを含むことを特徴とする請求項15に記載の非一時的なコンピュータ読取り可能媒体。
- 前記コンピューティングデバイスは、異なるゾーンにグループ化された複数の仮想配信アプライアンスによって前記コンピューティングセッションに接続され、前記第2の構成要素は、仮想配信アプライアンスの所与のグループに対してゾーン指定を含むことを特徴とする請求項15に記載の非一時的なコンピュータ読取り可能媒体。
- 前記コンピューティングデバイスは、少なくとも1つの仮想配信アプライアンスによって前記コンピューティングセッションに接続され、前記第2の構成要素は、前記仮想配信アプライアンスのうちの少なくともいくつかの順序付きリストを含むことを特徴とする請求項15に記載の非一時的なコンピュータ読取り可能媒体。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/416,481 US11012374B2 (en) | 2019-05-20 | 2019-05-20 | Systems and methods for virtual session connection using component-based connection leases |
US16/416,481 | 2019-05-20 | ||
JP2021558668A JP7111912B2 (ja) | 2019-05-20 | 2020-04-22 | 構成要素ベースの接続リースを使用した仮想セッション接続のためのシステムおよび方法 |
PCT/US2020/029224 WO2020236382A1 (en) | 2019-05-20 | 2020-04-22 | Systems and methods for virtual session connection using component-based connection leases |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021558668A Division JP7111912B2 (ja) | 2019-05-20 | 2020-04-22 | 構成要素ベースの接続リースを使用した仮想セッション接続のためのシステムおよび方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022160494A true JP2022160494A (ja) | 2022-10-19 |
Family
ID=70740746
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021558668A Active JP7111912B2 (ja) | 2019-05-20 | 2020-04-22 | 構成要素ベースの接続リースを使用した仮想セッション接続のためのシステムおよび方法 |
JP2022116391A Pending JP2022160493A (ja) | 2019-05-20 | 2022-07-21 | 構成要素ベースの接続リースを使用した仮想セッション接続のためのシステムおよび方法 |
JP2022116392A Pending JP2022160494A (ja) | 2019-05-20 | 2022-07-21 | 構成要素ベースの接続リースを使用した仮想セッション接続のためのシステムおよび方法 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021558668A Active JP7111912B2 (ja) | 2019-05-20 | 2020-04-22 | 構成要素ベースの接続リースを使用した仮想セッション接続のためのシステムおよび方法 |
JP2022116391A Pending JP2022160493A (ja) | 2019-05-20 | 2022-07-21 | 構成要素ベースの接続リースを使用した仮想セッション接続のためのシステムおよび方法 |
Country Status (7)
Country | Link |
---|---|
US (3) | US11012374B2 (ja) |
EP (3) | EP3998530A1 (ja) |
JP (3) | JP7111912B2 (ja) |
CN (3) | CN115454582A (ja) |
AU (3) | AU2020279011B2 (ja) |
CA (1) | CA3135197A1 (ja) |
WO (1) | WO2020236382A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11601402B1 (en) * | 2018-05-03 | 2023-03-07 | Cyber Ip Holdings, Llc | Secure communications to multiple devices and multiple parties using physical and virtual key storage |
US11012374B2 (en) * | 2019-05-20 | 2021-05-18 | Citrix Systems, Inc. | Systems and methods for virtual session connection using component-based connection leases |
US11032381B2 (en) * | 2019-06-19 | 2021-06-08 | Servicenow, Inc. | Discovery and storage of resource tags |
JP7233342B2 (ja) * | 2019-08-08 | 2023-03-06 | 株式会社日立製作所 | サービス連携支援システムおよびその方法 |
US11853100B2 (en) * | 2021-04-12 | 2023-12-26 | EMC IP Holding Company LLC | Automated delivery of cloud native application updates using one or more user-connection gateways |
US11474840B1 (en) * | 2021-05-17 | 2022-10-18 | Citrix Systems, Inc. | Computing device and related methods providing virtual session launching from previously cached assets |
US20230080623A1 (en) * | 2021-09-15 | 2023-03-16 | Sam Barhoumeh | Systems and Methods for an Enterprise Computing Platform |
JP7340663B1 (ja) | 2022-07-13 | 2023-09-07 | 株式会社三菱Ufj銀行 | リソース申請システム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011117957A1 (ja) * | 2010-03-20 | 2011-09-29 | 株式会社Pfu | 仮想マシン管理装置、仮想マシン管理システム、仮想マシン管理方法、及びプログラム |
JP2012203640A (ja) * | 2011-03-25 | 2012-10-22 | Fujitsu Ltd | 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム |
JP2012256352A (ja) * | 2012-08-10 | 2012-12-27 | Hitachi Ltd | セキュリティ管理装置及び方法並びにプログラム |
WO2013122977A1 (en) * | 2012-02-16 | 2013-08-22 | Citrix Systems, Inc. | Connection leasing for hosted services |
JP2016009370A (ja) * | 2014-06-25 | 2016-01-18 | 株式会社東芝 | 情報処理装置および動作制御方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6917976B1 (en) | 2000-05-09 | 2005-07-12 | Sun Microsystems, Inc. | Message-based leasing of resources in a distributed computing environment |
EP1771998B1 (en) | 2004-07-23 | 2015-04-15 | Citrix Systems, Inc. | Systems and methods for optimizing communications between network nodes |
US8732182B2 (en) * | 2004-12-02 | 2014-05-20 | Desktopsites Inc. | System and method for launching a resource in a network |
US9009327B2 (en) | 2007-08-03 | 2015-04-14 | Citrix Systems, Inc. | Systems and methods for providing IIP address stickiness in an SSL VPN session failover environment |
US8856783B2 (en) | 2010-10-12 | 2014-10-07 | Citrix Systems, Inc. | Allocating virtual machines according to user-specific virtual machine metrics |
US9703609B2 (en) * | 2009-05-29 | 2017-07-11 | Red Hat, Inc. | Matching resources associated with a virtual machine to offered resources |
WO2011117958A1 (ja) * | 2010-03-20 | 2011-09-29 | 株式会社Pfu | 仮想マシン管理装置、仮想マシン管理方法、及びプログラム |
US8886806B2 (en) * | 2010-04-07 | 2014-11-11 | Accenture Global Services Limited | Generic control layer in a cloud environment |
US8812688B2 (en) * | 2010-09-28 | 2014-08-19 | Nokia Corporation | Method and apparatus for providing shared connectivity |
US8699499B2 (en) * | 2010-12-08 | 2014-04-15 | At&T Intellectual Property I, L.P. | Methods and apparatus to provision cloud computing network elements |
JP5606477B2 (ja) * | 2012-03-13 | 2014-10-15 | 株式会社東芝 | クライアント管理システム |
KR20140098919A (ko) * | 2013-01-31 | 2014-08-11 | 한국전자통신연구원 | 실시간 가상 데스크탑 서비스를 위한 가상머신 제공 방법 및 서비스 게이트웨이 |
US10474485B2 (en) * | 2014-08-07 | 2019-11-12 | Vmware, Inc. | Individualizing virtual hardware configurations of deployed desktop virtual machines using custom resource templates |
JP6519273B2 (ja) * | 2015-03-30 | 2019-05-29 | 日本電気株式会社 | 仮想マシン及びリモートデスクトップシステム |
US10075537B2 (en) * | 2015-08-27 | 2018-09-11 | Accenture Global Services Limited | Action execution architecture for virtual machines |
JP6803777B2 (ja) * | 2017-03-15 | 2020-12-23 | キヤノン株式会社 | 情報処理装置、制御方法およびプログラム |
US11012374B2 (en) * | 2019-05-20 | 2021-05-18 | Citrix Systems, Inc. | Systems and methods for virtual session connection using component-based connection leases |
-
2019
- 2019-05-20 US US16/416,481 patent/US11012374B2/en active Active
- 2019-05-24 US US16/421,846 patent/US11018992B2/en active Active
-
2020
- 2020-04-22 AU AU2020279011A patent/AU2020279011B2/en active Active
- 2020-04-22 EP EP21216406.5A patent/EP3998530A1/en not_active Withdrawn
- 2020-04-22 CN CN202211115013.4A patent/CN115454582A/zh active Pending
- 2020-04-22 CN CN202080026699.2A patent/CN113614695A/zh active Pending
- 2020-04-22 WO PCT/US2020/029224 patent/WO2020236382A1/en unknown
- 2020-04-22 CA CA3135197A patent/CA3135197A1/en not_active Abandoned
- 2020-04-22 JP JP2021558668A patent/JP7111912B2/ja active Active
- 2020-04-22 EP EP20726587.7A patent/EP3973392A1/en active Pending
- 2020-04-22 EP EP21216444.6A patent/EP3998531A1/en not_active Withdrawn
- 2020-04-22 CN CN202211115528.4A patent/CN115469952A/zh active Pending
-
2021
- 2021-05-11 US US17/316,821 patent/US11483255B2/en active Active
-
2022
- 2022-07-21 JP JP2022116391A patent/JP2022160493A/ja active Pending
- 2022-07-21 JP JP2022116392A patent/JP2022160494A/ja active Pending
- 2022-08-15 AU AU2022215325A patent/AU2022215325B2/en not_active Expired - Fee Related
- 2022-08-17 AU AU2022218514A patent/AU2022218514B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011117957A1 (ja) * | 2010-03-20 | 2011-09-29 | 株式会社Pfu | 仮想マシン管理装置、仮想マシン管理システム、仮想マシン管理方法、及びプログラム |
JP2012203640A (ja) * | 2011-03-25 | 2012-10-22 | Fujitsu Ltd | 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム |
WO2013122977A1 (en) * | 2012-02-16 | 2013-08-22 | Citrix Systems, Inc. | Connection leasing for hosted services |
JP2012256352A (ja) * | 2012-08-10 | 2012-12-27 | Hitachi Ltd | セキュリティ管理装置及び方法並びにプログラム |
JP2016009370A (ja) * | 2014-06-25 | 2016-01-18 | 株式会社東芝 | 情報処理装置および動作制御方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115454582A (zh) | 2022-12-09 |
EP3998530A1 (en) | 2022-05-18 |
EP3973392A1 (en) | 2022-03-30 |
US20210266271A1 (en) | 2021-08-26 |
AU2020279011B2 (en) | 2022-06-16 |
US20200374351A1 (en) | 2020-11-26 |
US11483255B2 (en) | 2022-10-25 |
AU2020279011A1 (en) | 2021-10-28 |
EP3998531A1 (en) | 2022-05-18 |
AU2022218514A1 (en) | 2022-09-08 |
JP2022160493A (ja) | 2022-10-19 |
CA3135197A1 (en) | 2020-11-26 |
CN115469952A (zh) | 2022-12-13 |
WO2020236382A1 (en) | 2020-11-26 |
US20200374239A1 (en) | 2020-11-26 |
US11018992B2 (en) | 2021-05-25 |
US11012374B2 (en) | 2021-05-18 |
JP7111912B2 (ja) | 2022-08-02 |
JP2022528532A (ja) | 2022-06-14 |
AU2022215325A1 (en) | 2022-09-08 |
CN113614695A (zh) | 2021-11-05 |
AU2022218514B2 (en) | 2022-12-01 |
AU2022215325B2 (en) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7111912B2 (ja) | 構成要素ベースの接続リースを使用した仮想セッション接続のためのシステムおよび方法 | |
US10708329B2 (en) | Application streaming using access and execution environments | |
US20220156090A1 (en) | Provisioning services (pvs) cloud streaming with read cache | |
JP7092432B2 (ja) | プライベートネットワークへのDaaS(Desktop as a Service )セッションのためのダイレクトルーティングを提供するコンピュータシステムおよび関連する方法 | |
US11922190B2 (en) | Systems and methods for autonomous provision of desktop as a service (DAAS) | |
AU2021202457B2 (en) | Provisioning service (PVS) cloud streaming with read cache | |
US20240114003A1 (en) | Multi-Tenant Resolver for Private Communications | |
US20230195493A1 (en) | Virtual device enrollment and management | |
JP2022536479A (ja) | クライアントデバイスへリンクされた電力管理を備えたデスクトップ仮想化 | |
JP2022532951A (ja) | 仮想アプリケーションの異なるバージョンをプロビジョニングするためのシステムおよび方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220725 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20220725 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221011 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20230509 |