(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-16
(45)【発行日】2022-09-28
(54)【発明の名称】強化されている省電力および接続性を有した仮想配信エージェントリーシングを通じた仮想コンピューティングセッションを提供するコンピューターシステムおよび関係する方法
(51)【国際特許分類】
G06F 9/50 20060101AFI20220920BHJP
G06F 9/455 20060101ALI20220920BHJP
【FI】
G06F9/50 150Z
G06F9/455 150
(21)【出願番号】P 2021539531
(86)(22)【出願日】2019-12-11
(86)【国際出願番号】 US2019065606
(87)【国際公開番号】W WO2020146078
(87)【国際公開日】2020-07-16
【審査請求日】2021-09-06
(32)【優先日】2019-01-07
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】508045099
【氏名又は名称】シトリックス・システムズ・インコーポレイテッド
【氏名又は名称原語表記】Citrix Systems,Inc.
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】レオ シングルトン ザ フォース
(72)【発明者】
【氏名】ゲオルギー モンチロフ
【審査官】坂東 博司
(56)【参考文献】
【文献】特表2018-524843(JP,A)
【文献】米国特許出願公開第2016/0359981(US,A1)
【文献】米国特許出願公開第2018/0083984(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
複数のクライアントコンピューティングデバイスと、
各々が前記クライアントコンピューティングデバイスに仮想コンピューティングセッションを提供するように構成された複数のホストコンピューティングデバイス
と、
前記仮想コンピューティングセッションと前記クライアントコンピューティングデバイスを接続するように構成された
複数の仮想配信エージェント(VDA
)と
を備え、
第1のグループ内のVDAは、オフピーク時間の間に作動するように構成され、前記第1のグループとは異なる第2のグループ内のVDAは、前記オフピーク時間の間に作動しないように構成され、
前記クライアントコンピューティングデバイスは、
VDAのリストを含んでいるそれぞれのVDAリース
を用いて、前記VDA
を介して前記ホストコンピューティングデバイスから仮想コンピューティングセッションを要求するように構成され、各VDAリース
におけるVDAの前記リストは、前記第1のグループからの前記VDAのうちの少なくとも1つを含む
ことを特徴とするコンピューターシステム。
【請求項2】
前記VDAリースの各々
におけるVDAの前記リストは、VDAの順序リストを含み、各クライアントコンピューティングデバイスは、仮想コンピューティングセッションが確立されるまで、それぞれの順序リストにおいて最も高い順位から最も低い順位まで前記VDAから仮想コンピューティングセッションを順次的に要求するように構成されることを特徴とする請求項1に記載のコンピューターシステム。
【請求項3】
前記順序リストにおいて前記最も低い順位のVDAは、VDAの前記第1のグループからであることを特徴とする請求項2に記載のコンピューターシステム。
【請求項4】
各クライアントコンピューティングデバイスは、関連付けられたそれぞれのユーザーアカウントを有し、関連付けられた同一のユーザーアカウントを有するクライアントコンピューティングデバイスは、VDAの同一の順序リストを共有することを特徴とする請求項2に記載のコンピューターシステム。
【請求項5】
前記VDAリースの各々
におけるVDAの前記リストは、前記第2のグループからの少なくとも1つのVDAをさらに含むことを特徴とする請求項1に記載のコンピューターシステム。
【請求項6】
前記第1のグループ内の前記VDAは、常時オンモードにおいて作動するようにさらに構成されることを特徴とする請求項1に記載のコンピューターシステム。
【請求項7】
前記VDAリース
の各々におけるVDAの前記リストは、前記第1のグループからの複数のVDAを含むことを特徴とする請求項1に記載のコンピューターシステム。
【請求項8】
前記VDAのうちの20%以下は、前記第1のグループに割り当てられることを特徴とする請求項1に記載のコンピューターシステム。
【請求項9】
前記仮想コンピューティングセッションは、仮想マシンセッションを含み、前記VDAは、各仮想マシンセッションへ複数のクライアントコンピューティングデバイスを接続するように構成されることを特徴とする請求項1に記載のコンピューターシステム。
【請求項10】
前記仮想コンピューティングセッションは、仮想デスクトップセッションおよび仮想アプリケーションセッションのうちの少なくとも1つを含むことを特徴とする請求項1に記載のコンピューターシステム。
【請求項11】
複数のホストコンピューティングデバイス
によって、複数のクライアントコンピューティングデバイスに仮想コンピューティングセッションを提供
し、仮想配信エージェント(VDA)によって、前記仮想コンピューティングセッションに前記クライアントコンピューティングデバイスを接続す
るステップと、
前記ホストコンピューティングデバイスの各々によって、オフピーク時間の間に第1のグループ内のVDAを作動させ、ピーク時間の間および前記オフピーク時間ではない間に、前記第1のグループとは異なる第2のグループ内のVDAを作動させるステップと、
前記VDAに
よって、
VDAのリストを含んでいるそれぞれのVDAリース
を用いて、前記クライアントコンピューティングデバイスからの仮想コンピューティングセッションに対する要求に基づいて、
前記ホストコンピューティングデバイスからの前記仮想コンピューティングセッションに前記クライアントコンピューティングデバイスを接続するステップであって、各VDAリース
におけるVDAの前記リストは、前記第1のグループからの前記VDAのうちの少なくとも1つを含む、ステップと
を備えることを特徴とする方法。
【請求項12】
前記VDAリースの各々
におけるVDAの前記リストは、VDAの順序リストを含み、各クライアントコンピューティングデバイスは、仮想コンピューティングセッションが確立されるまで、それぞれの順序リストにおいて最も高い順位から最も低い順位まで前記VDAから仮想コンピューティングセッションを順次的に要求するように構成されることを特徴とする請求項11に記載の方法。
【請求項13】
前記順序リストにおいて前記最も低い順位のVDAは、VDAの前記第1のグループからであることを特徴とする請求項
12に記載の方法。
【請求項14】
各クライアントコンピューティングデバイスは、関連付けられたそれぞれのユーザーアカウントを有し、関連付けられた同一のユーザーアカウントを有するクライアントコンピューティングデバイスは、VDAの同一の順序リストを共有することを特徴とする請求項
12に記載の方法。
【請求項15】
前記VDAリースの各々
におけるVDAの前記リストは、前記第2のグループからの少なくとも1つのVDAをさらに含むことを特徴とする請求項11に記載の方法。
【請求項16】
前記第1のグループ内の前記VDAは、常時オンモードにおいて作動するようにさらに構成されることを特徴とする請求項11に記載の方法。
【請求項17】
コンピューターシステムによって、
複数のホストコンピューティングデバイスから、複数のクライアントコンピューティングデバイスに仮想コンピューティングセッションを提供
し、
複数の仮想配信エージェント(VDA)を用いて、前記仮想コンピューティングセッションに前記クライアントコンピューティングデバイスを接続す
るステップと、
オフピーク時間の間に第1のグループ内のVDAを作動させ、ピーク時間の間および前記オフピーク時間ではない間に、前記第1のグループとは異なる第2のグループ内のVDAを作動させるステップと、
前記VDAにおいて、
VDAのリストを含んでいるそれぞれのVDAリース
を用いて、前記クライアントコンピューティングデバイスからの仮想コンピューティングセッションに対する要求に基づいて、
前記ホストコンピューティングデバイスから前記仮想コンピューティングセッションに前記クライアントコンピューティングデバイスを接続するステップと
を備え、
各VDAリース
におけるVDAの前記リストは、前記第1のグループからの前記VDAのうちの少なくとも1つ、および前記第2のグループからの前記VDAのうちの少なくとも1つを含み、
各VDAリース
におけるVDAの前記リストは、VDAの順序リストを含み、各クライアントコンピューティングデバイスは、仮想コンピューティングセッションが確立されるまで、それぞれの順序リストにおいて最も高い順位から最も低い順位まで前記VDAから仮想コンピューティングセッションを順次的に要求するように構成される
ことを特徴とする方法。
【請求項18】
前記順序リストにおいて前記最も低い順位のVDAは、VDAの前記第1のグループからであることを特徴とする請求項17に記載の方法。
【請求項19】
各クライアントコンピューティングデバイスは、関連付けられたそれぞれのユーザーアカウントを有し、関連付けられた同一のユーザーアカウントを有するクライアントコンピューティングデバイスは、VDAの同一の順序リストを共有することを特徴とする請求項17に記載の方法。
【請求項20】
前記第1のグループ内の前記VDAは、常時オンモードにおいて作動するようにさらに構成されることを特徴とする請求項17に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想コンピューティングセッションを提供するコンピューターシステムおよび関係する方法に関し、より詳細には、強化されている省電力および接続性を有した仮想配信エージェントリーシングを通じた仮想コンピューティングセッションを提供するコンピューターシステムおよび関係する方法に関する。
【背景技術】
【0002】
従来、パーソナルコンピューターは、進行ベースにて、オーナーまたはアドミニストレーターによって個々に各々管理されるオペレーティングシステム、アプリケーション、およびユーザー設定の組み合わせを含む。しかしながら、今、多くの組織は、ユーザーの変化するニーズに対処する、より柔軟なオプションを提供するデスクトップ仮想化を使用している。デスクトップ仮想化にて、ユーザーのコンピューティング環境(たとえば、オペレーティングシステム、アプリケーション、および/またはユーザー設定)は、ユーザーの物理的なコンピューティングデバイス(たとえば、スマートフォン、ラップトップ、デスクトップコンピューター)から分離されることがある。クライアントサーバーの技術を使用して、「仮想化されたデスクトップ」は、クライアントコンピューティングデバイスのローカルストレージにというよりは、リモートサーバーに格納され、リモートサーバーによって管理されることがある。
【0003】
いくつかの異なるタイプのデスクトップ仮想化システムがある。例として、VDI(Virtual Desktop Infrastructure)は、サーバーに常駐するバーチャルマシン内にてユーザーデスクトップを実行するプロセスを指す。VDIおよび他のサーバーベースのデスクトップ仮想化システムは、各ユーザーに対して、パーソナライズされたデスクトップを提供する一方、集中させた管理およびセキュリティを考慮に入れる。上記のシステムにおけるサーバーは、仮想デスクトップを提供し、ユーザーに相互連結させるのを可能にするために、仮想デスクトップの画像用およびシステムコンフィギュレーション情報用のストレージだけでなく、ソフトウェアコンポーネント用のストレージも含む。例えば、VDIサーバーは、複数のバーチャルマシンを作成するおよび維持するための1つまたは複数のハイパーバイザー(バーチャルマシンマネージャー)と、ハイパーバイザー(複数可)を管理するためのソフトウェアと、コネクションブローカーと、仮想デスクトップを供給するおよび管理するソフトウェアを含むことがある。
【0004】
デスクトップ仮想化システムは、単一の仮想化サーバー、またはサーバーグリッドとして相互連結されたサーバーの組み合わせを使用して、実装されることがある。例えば、クラウドコンピューティング環境、またはクラウドシステムは、コンピューティングリソース(たとえば、デスクトップ仮想化サーバー)と、ストレージディスクと、ネットワーキングハードウェアと、仮想デスクトップまたはアプリケーションセッションを供給するのに使用され得る他の物理リソースとのプールを、管理およびカスタマーポータルをクラウドシステムに提供する追加のコンピューティングデバイスと共に、含むことがある。
【発明の概要】
【0005】
コンピューターシステムは、複数のクライアントコンピューティングデバイスと、クライアントコンピューティングデバイスに仮想コンピューティングセッション(virtual computing session)を提供するように各々構成された複数のホストコンピューティングデバイスとを含むことがある。各ホストコンピューティングデバイスは、クライアントコンピューティングデバイスを仮想コンピューティングセッションに接続するように構成された、関連付けられたVDA(virtual delivery agent:仮想配信エージェント)を有することがある。第1のグループ内のVDAは、オフピーク時間の間に作動するように構成されることがあり、第1のグループとは異なる第2のグループ内のVDAは、オフピーク時間の間に作動しないように構成され得る。クライアントコンピューティングデバイスは、それぞれのVDAリース(VDA lease)にしたがってVDAから仮想コンピューティングセッションを要求するように構成されることがあり、各VDAリースは、第1のグループからVDAのうちの少なくとも1つを含み得る。
【0006】
1つの例示的な実装にて、VDAリースの各々は、VDAの順序リストを含むことがあり、各クライアントコンピューティングデバイスは、仮想コンピューティングセッションが確立されるまで、それぞれの順序リストにおいて最も高い順位から最も低い順位までVDAから仮想コンピューティングセッションを順次的に要求するように構成され得る。より具体的には、順序リストにおいて最も低い順位のVDAは、VDAの第1のグループからであり得る。その上さらに、各クライアントコンピューティングデバイスは、関連付けられたそれぞれのユーザーアカウントを有することがあり、関連付けられた同一のユーザーアカウントを有するクライアントコンピューティングデバイスは、VDAの同一の順序リストを共有し得る。
【0007】
VDAリースの各々は、第2のグループからの少なくとも1つのVDAをさらに含み得る。さらにその上、第1のグループ内のVDAは、例えば、常時オンモード(always-on mode)にて作動するようにさらに構成され得る。いくつかの態様にて、VDAリースは、第1のグループから複数のVDAを含み得る。例として、VDAのうちの20%以下は、第1のグループに割り当てられることがある。さらに、一例として、仮想コンピューティングセッションは、仮想マシンセッションを含むことがあり、VDAは、複数のクライアントコンピューティングデバイスを各仮想マシンセッションに接続するように構成され得る。その上さらに、仮想コンピューティングセッションは、例えば、仮想デスクトップセッションおよび仮想アプリケーションセッションのうちの少なくとも1つを含むこともある。
【0008】
関係する方法は、各ホストコンピューティングデバイスが、クライアントコンピューティングデバイスを仮想コンピューティングセッションに接続するように構成された、関連付けられたVDAを有する複数のホストコンピューティングデバイスから、仮想コンピューティングセッションを複数のクライアントコンピューティングデバイスに提供することを含み得る。さらに、方法は、オフピーク時間の間に第1のグループ内のVDAを作動させることと、ピーク時間の間に、およびオフピーク時間の間ではなく、第1のグループとは異なる第2のグループ内のVDAを作動させることとを含み得る。VDAにおいて、クライアントコンピューティングデバイスは、それぞれのVDAリース(VDA lease)にしたがって、クライアントコンピューティングデバイスからの仮想コンピューティングセッションに対する要求に基づいて、仮想コンピューティングセッションに接続されることがあり、各VDAリースは、第1のグループからVDAのうちの少なくとも1つを含む。
【図面の簡単な説明】
【0009】
【
図1】本開示の種々の側面が実装されることがあるコンピューティングデバイスのネットワーク環境のブロック図である。
【
図2】
図1に例示されるクライアントマシンまたはリモートマシンの態様を実践するのに有用なコンピューティングデバイスのブロック図である。
【
図3】オフピーク時間の間に作動する少なくとも1つのVDA(仮想配信エージェント)を有するVDAを使用して仮想コンピューティングセッションへコネクションを提供するコンピューターシステムの概略的なブロック図である。
【
図4】
図3のシステムの例示的な実装の概略的なブロック図である。
【
図5A】クライアントコンピューティングデバイスを仮想コンピューティングセッションに接続するためのVDA割当ての従来のアプローチを例示する概略的なブロック図である。
【
図5B】与えられたリース割当てに起因する接続確率とともに
図5AのVDA対するそれぞれのユーザーアカウント用の例示的なリース割当てのチャートである。
【
図6A】
図3のシステムの態様に対して利用可能なVDAの例示的なグルーピングを例示する概略的なブロック図である。
【
図6B】与えられたリース割当てに起因する接続確率とともに
図6AのVDA対するそれぞれのユーザーアカウント用の例示的なリース割当てのチャートである。
【
図7】オフピーク時間の間に作動するように指定されたVDAの有無にかかわらず例示的なリース構成に対する接続確率を比較する表である。
【
図8】
図3のシステムに関連付けられた方法の側面を例示するフロー図である。
【発明を実施するための形態】
【0010】
本説明は、例示的な態様が示される状態において、添付の図面を参照してなされる。しかしながら、多くの異なる態様が使用されることがあり、従って説明は、本明細書に記載される特定の態様に限定されると解釈するべきではない。同じ符号は、全体を通じて同じ要素を引用し、プライム符号の表記は、異なる態様にて類似した要素を示すのに使用され得る。
【0011】
後に続く本開示を読むとすぐに当業者によって理解されるように、本明細書にて説明される種々の側面は、デバイス、方法、またはコンピュータープログラム製品(たとえば、言及する動作またはステップを行うためのコンピューター実行可能な命令を有する非一時的なコンピューター読み取り可能媒体)として具現され得る。従って、今述べた側面は、完全なるハードウェアの態様、完全なるソフトウェアの態様、またはソフトウェアおよびハードウェアの側面を組み合わせる態様のかたちをとり得る。
【0012】
その上さらに、上記の側面は、記録媒体中または記録媒体上に具体化されたコンピューター読み取り可能なプログラムコードまたは命令を有する1つまたは複数のコンピューター読み取り可能な記録媒体によって格納されたコンピュータープログラム製品のかたちをとり得る。ハードディスク、CD-ROM、光記憶装置、磁気記憶装置、および/またはそれらのどんな組み合わせでも含む、どんな適切なコンピューター読み取り可能な記録媒体でも利用され得る。
【0013】
初めは
図1を参照しつつ、本開示の種々の側面が実装され得る非限定のネットワーク環境101は、コンピューティング環境101内に取り付けられた1つまたは複数のクライアントマシン102A~102N、1つまたは複数のリモートマシン106A~106N、1つまたは複数のネットワーク104、104’、および1つまたは複数のアプライアンス108を含むことがある。クライアントマシン102A~102Nは、ネットワーク104,104’を介して、リモートマシン106A~106Nと通信する。
【0014】
いくつかの態様にて、クライアントマシン102A~102Nは、中継アプライアンス108を介して、リモートマシン106A~106Nと通信する。例示されたアプライアンス108は、ネットワーク104、104’の間に置かれ、ネットワークインターフェイスまたはゲートウェイといわれることもある。いくつかの態様にて、アプライアンス108は、クライアントに、データセンター、クラウドにおいて配備される、もしくは広範囲のクライアントデバイスに渡ってSaaS(サービスとしてのソフトウェア)として配信されるビジネスアプリケーションおよび他のデータへのアクセスを提供するための、および/または例えば、負荷分散等などの他の機能性を提供するためのADC(アプリケーションデリバリコントローラー)として作動することがある。いくつかの態様にて、複数のアプライアンス108が使用されることがあり、アプライアンス(複数可)108は、ネットワーク104および/または104’の一部として配備されることがある。
【0015】
一般に、クライアントマシン102A~102Nは、クライアントマシン102、ローカルマシン102、クライアント102、クライアントノード102、クライアントコンピューター102、クライアントデバイス102、コンピューティングデバイス102、エンドポイント102、またはエンドポイントノード102といわれることがある。一般に、リモートマシン106A~106Nは、サーバー106またはサーバーファーム106といわれることがある。いくつかの態様にて、クライアントデバイス102は、サーバー106によって提供されるリソースへのアクセスを探し求めるクライアントノードとしてと、他のクライアントデバイス102A~102Nにホストリソースへのアクセスを提供するサーバー106としてとの両方として機能するキャパシティを有することがある。一般に、ネットワーク104、104’は、ネットワーク104といわれることがある。ネットワーク104は、有線および無線のネットワークのどんな組み合わせにおいてでも構成されることがある。
【0016】
サーバー106は、例えば、ファイルサーバー、アプリケーションサーバー、webサーバー、プロキシサーバー、アプライアンス、ネットワークアプライアンス、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバー、仮想化サーバー、展開サーバー、SSL VPN(Secure Sockets Layer Virtual Private Network)もしくはTLS仮想プライベートネットワークのサーバー、ファイアウォール、webサーバー、アクティブディレクトリを実行しているサーバー、クラウドサーバー、またはファイアウォールの機能性、アプリケーションの機能性、もしくは負荷分散の機能性を提供するアプリケーションアクセラレーションプログラムを実行しているサーバーなどのどんなサーバータイプでもあり得る。
【0017】
サーバー106は、次のうちのいずれか1つ、ソフトウェア、プログラム、実行可能な命令、バーチャルマシン、ハイパーバイザー、webブラウザー、webベースのクライアント、クライアントサーバーアプリケーション、シンクライアントコンピューティングクライアント、ActiveXコントロール、Javaアプレット、ソフトIP電話のようなVoIP(voice over internet protocol)に関するソフトウェア、ビデオストリーミングおよび/またはオーディオストリーミング用アプリケーション、リアルタイムデータ通信を容易にするアプリケーション、HTTPクライアント、FTPクライアント、OSCARクライアント、Telnetクライアント、他のどんな実行可能な命令セットでもあり得るアプリケーションを実行する、作動する、またはそうでなければ提供することがある。
【0018】
いくつかの態様にて、サーバー106は、シンクライアントか、あるいはサーバー106によって実行されているアプリケーションによって生成されるディスプレイ出力をキャプチャし、アプリケーションのディスプレイ出力をクライアントデバイス102に送信するリモートディスプレイプロトコルかを使用する、リモートプレゼンテーションサービスプログラム、または他のプログラムを実行することがある。
【0019】
さらに他の態様にて、サーバー106は、クライアントデバイス102のユーザーに、コンピューティング環境へのアクセスを提供するバーチャルマシンを実行することがある。クライアントデバイス102は、バーチャルマシンであり得る。バーチャルマシンは、例えば、ハイパーバイザー、VMM(virtual machine manager)、またはサーバー106内の他のどんなハードウェア仮想化の技法によってでも管理されることがある。
【0020】
いくつかの態様にて、ネットワーク104は、LAN(ローカルエリアネットワーク)、MAN(メトロポリタンエリアネットワーク)、WAN(広域通信網)、主要な公衆ネットワーク104、および主要なプライベートネットワーク104であり得る。追加の態様は、モバイルデバイス間において通信するための種々のプロトコルを使用する携帯電話ネットワークのネットワーク104を含むことがある。WLAN(wireless local-area network)内の短距離通信に対して、プロトコルは、802.11、ブルートゥース、およびNFC(Near Field Communication)を含むことがある。
【0021】
図2は、クライアントデバイス102、アプライアンス108、および/またはサーバー106の態様を実践するのに有用なコンピューティングデバイス100についての概略的なブロック図である。コンピューティングデバイス100は、1つまたは複数のプロセッサー103、揮発性メモリー122(たとえば、RAM(random access memory))、不揮発性メモリー128、ユーザーインターフェイス(UI)123、1つまたは複数の通信インターフェイス118、および通信バス150を含む。
【0022】
不揮発性メモリー128は、1つもしくは複数のHDD(hard disk drive)もしくは他の磁気記録媒体もしくは光記録媒体、例えば、フラッシュドライブもしくは他のソリッドステートの記録媒体などの1つもしくは複数のSSD(ソリッドステートドライブ)、1つもしくは複数のハイブリッド磁気およびソリッドステートのドライブ、ならびに/または例えば、クラウドストレージ、もしくは上記の物理ストレージボリュームと仮想ストレージボリュームとの組み合わせもしくはそれらのアレイなどの1つまたは複数の仮想ストレージボリュームを含むことがある。
【0023】
ユーザーインターフェイス123は、GUI(グラフィカルユーザーインターフェイス)124(たとえば、タッチスクリーン、ディスプレイなど)と、 1つまたは複数のI/O(入出力)デバイス126(たとえば、マウス、キーボード、マイクロフォン、1つまたは複数のスピーカー、1つまたは複数のカメラ、1つまたは複数の生体認証スキャナー、1つまたは複数の環境センサー、および1つまたは複数の加速度センサーなど)とを含む。
【0024】
不揮発性メモリー128は、例えば、オペレーティングシステム115および/またはアプリケーション116についてのコンピューター命令が、揮発性メモリー122から離れたプロセッサー(複数可)103によって実行されるように、オペレーティングシステム115、1つまたは複数のアプリケーション116、およびデータ117を格納する。いくつかの態様にて、揮発性メモリー122は、メインメモリーよりもより速い応答時間を示し得る1つまたは複数のタイプのRAMおよび/またはキャッシュメモリーを含むことがある。データは、GUI124の入力デバイスを使用して入力される、またはI/Oデバイス(複数可)126から受信されることがある。コンピューター100についての種々の要素は、通信バス150を介して通信することがある。
【0025】
例示されるコンピューティングデバイス100は、例示的なクライアントデバイスまたはサーバーとして単に示され、本明細書にて説明されるような作動する性能がある適切なハードウェアおよび/またはソフトウェアを有し得るどんな種類のマシンまたはマシンセットでも有するどんなコンピューティング環境または処理環境によってでも実装されることがある。
【0026】
プロセッサー(複数可)103は、システムのファンクションを行うために、例えば、コンピュータープログラムなどの1つまたは複数の実行可能な命令を実行する1つまたは複数のプログラマブルプロセッサーによって、実装されることがある。本明細書にて使用されるような、用語「プロセッサー」は、ファンクション、動作、または一連の動作を行う回路を言い表す。ファンクション、動作、または一連の動作は、メモリーデバイスに保持され、回路によって実行される命令として、回路へハードコードされる、またはソフトコードされることがある。プロセッサーは、デジタル値を使用して、および/またはアナログ信号を使用して、ファンクション、動作、または一連の動作を行うことがある。
【0027】
いくつかの態様にて、プロセッサーは、1つまたは複数のASIC(application specific integrated circuit)、マイクロプロセッサー、DSP(デジタルシグナルプロセッサー)GPU(グラフィックスプロセッサー)、マイクロコントローラー、FPGA(field programmable gate array)、PLA(programmable logic array)、マルチコアプロセッサー、またはメモリーに関連付けた汎用コンピューターにおいて具現されることが可能である。
【0028】
プロセッサー103は、アナログ、デジタル、または混合信号であることがある。いくつかの態様にて、プロセッサー103は、1つもしくは複数の物理プロセッサー、または1つもしくは複数の仮想(たとえば、リモートに位置される、もしくはクラウドである)プロセッサーであり得る。複数のプロセッサーコアおよび/または複数のプロセッサーを含むプロセッサーは、命令の並列、同時実行に、または複数のデータに対する1つの命令の並列、同時実行に機能性を提供することがある。
【0029】
通信インターフェイス118は、コンピューティングデバイス100に、いろいろな有線接続および/またはセルラー接続を含む無線接続を通じて、例えば、LAN(ローカルエリアネットワーク)、WAN(広域通信網)、PAN(パーソナルエリアネットワーク)、またはインターネットなどのコンピューターネットワークにアクセスすることを可能にする1つまたは複数のインターフェイスを含むことがある。
【0030】
説明される態様にて、コンピューティングデバイス100は、クライアントデバイスのユーザーの代わりにアプリケーションを実行することがある。例えば、コンピューティングデバイス100は、ハイパーバイザーによって管理される1つまたは複数のバーチャルマシンを実行することがある。各バーチャルマシンは、アプリケーションが、例えば、ホストのデスクトップセッションなど、ユーザーまたはクライアントデバイスの代わりに実行される実行セッションを提供することがある。さらに、コンピューティングデバイス100は、ホストのデスクトップ環境を提供するターミナルサービスのセッションを実行することもある。コンピューティングデバイス100は、1つまたは複数のアプリケーション、1つまたは複数のデスクトップアプリケーション、および1つまたは複数のアプリケーションが実行され得る1つまたは複数のデスクトップセッションを含むリモートコンピューティング環境へのアクセスを提供することがある。
【0031】
クライアントデバイス 102として、もしくはサーバー106として、またはクライアントデバイス102およびサーバー106に中継するアプライアンスとして構成されるコンピューティングデバイス100、ならびにそれらの動作についての追加の説明は、本明細書に参照によって全体として組み入れられる米国特許第9,176,744号明細書および米国特許第9,538,345号明細書にて手に入れられることがある。744号特許および345号特許は、両方とも本開示の現在の譲受人に割り当てられる。
【0032】
図3、および
図8のフロー
図80を参照すると、強化されている省電力性能および高い接続確率を依然として有する、接続リーシングを通じた仮想コンピューティングセッションへのアクセスをクライアントコンピューティングデバイスに提供するシステム30が、今、説明される。説明的に、システム30は、複数のクライアントコンピューティングデバイス31a、31b(たとえば、スマートフォン、タブレットコンピューター、ラップトップコンピューター、デスクトップコンピューターなど)と、クライアントコンピューティングデバイスに仮想コンピューティングセッション33a~33cを提供するように各々構成された複数のホストコンピューティングデバイス32a~32cとを含む。説明的に、各ホストコンピューティングデバイス32a~32cは、クライアントコンピューティングデバイスを仮想コンピューティングセッションに接続するように構成された、関連付けられたVDA(virtual delivery agent:仮想配信エージェント)34a~34cを含む。2つのクライアントコンピューティングデバイス31a、31b、および3つのホストのコンピューティングデバイス32a~32cのみが例示されている例にて示されるが、上記のコンピューティングデバイスが何台であっても、異なる態様にて使用され得ることが理解されるだろう。さらにその上、ホストコンピューティングデバイス32a~32cおよびVDA34a~34cは、異なる態様にてクラウドおよび/またはオンプレミスにおいて実装され得ることも理解されるだろう。
【0033】
背景として、Citrix XenAppおよびXenDesktopは、クライアントコンピューティングデバイスに、仮想コンピューティングセッション、例えば、仮想デスクトップセッションおよび仮想アプリケーションセッションのような仮想コンピューティングセッションにリモートにアクセスすることを可能にする製品である。いくつかの態様にて、複数の仮想コンピューティングセッションは、仮想マシンによってホストされ得る。例として、仮想アプリケーションセッションは、ホストアプリケーション、ウェブ/SaaS(サービスとしてのソフトウェア)アプリケーションなどを含む、共有コンピューティングアプリケーションへのアクセスを提供することがある。仮想デスクトップセッションは、共有アプリケーションと、ホストオペレーティングシステムコンポーネントとの両方を含むことがある。XenAppおよびXenDesktopの場合に、VDAは、アプリケーションおよびデスクトップへの接続を可能にし、通常、(いくつかの実装にて異なるマシンにインストールされ得るが)ユーザー用のXenAppおよび/またはXenDesktop仮想アプリケーション/デスクトップセッションを実行するサーバー/マシンにインストールされる。VDAは、マシンに、デリバリーコントローラー(delivery controller)に登録し、ユーザーデバイスへの接続を管理することを有効にする。本明細書に説明される技法は、例えば、XenAppおよびXenDesktopのような製品を使用して実装され得るが、他のコンピューティングシステムを使用して同様に実装され得ることが理解されるだろう。
【0034】
接続リーシングは、クライアントコンピューティングデバイスに権限を与えることによって相対的に高い可用性を提供して、署名されたリース文書を介して多くのVDAのうちの1つに接続する方策である。しかしながら、1つの難問は、クライアントコンピューティングデバイスが、ほとんどのVDAが省電力を与える電源オフであるときの夜間および週末および/または休日(すなわち、オフピーク時間)に、接続することが可能であることを確実にすることである。本アプローチは、著しい省電力を有利に与えるオフピーク時間の間にVDAパワーサイクリング(VDA power cycling)を依然として考慮する一方、VDAリースを通じて、望ましい接続確率を与えるという今述べた問題への技術的なソリューションを提供することによって、仮想化されたコンピューティング環境の動作を改善する。
【0035】
ブロック81にて開始すると、ホストコンピューティングデバイス32a~32cは、ブロック82にて、仮想コンピューティングセッション33a~33cをクライアントコンピューティングデバイス31a、31bに提供する。しかしながら、ブロック83にて、VDA(ここではVDA34cのみを含む)の第1のグループは、オフピーク時間の間に作動するように構成され、第1のグループとは異なる第2のグループ内のVDA(ここではVDA34a~34b)は、オフピーク時間の間に作動しないように構成される。つまり、VDA34a~34b(およびオプションとしてそれらが実行するホストコンピューティングデバイス32a、32b)は、例えば、通常の勤務時間外(たとえば、午後5時より後および午前9時より前)の平日と、休日および週末の終日とを含み得るオフピーク時間の間に、電源をオフにする、または削減されている電力モードにおいて実行するように構成される。もちろん、オフピーク時間は、異なる態様にて、異なる独立体または組織体に対して異なって選択され得る。
【0036】
依然として、第1のグループ内のVDA(すなわち、本例におけるVDA34c)は、オフピーク時間のうちのいくらかまたはすべての間に実行されるように構成され、オプションとしてピーク時間のうちのいくらかまたはすべての間に実行され得る。つまり、第1のグループにおけるVDAは、オフピーク時間の間のみ(すなわち、通常の動作モードにて)作動するように構成されることが可能であろう、またはピーク時間のうちのいくらかまたはすべての間に実行するようにも構成され得る。VDA34a~34cは、ブロック84にて、VDAリースにしたがって要求されるように、およびVDAが、第1のグループにあるか第2のグループにあるかどうかとピーク時間かオフピーク時間かどうかとに基づいて、利用可能であるように、クライアントコンピューティングデバイス31a、31bを仮想コンピューティングセッション33a~34cに接続する。例示的に、
図8の方法は、ブロック85にて終える。例示的な態様にて、VDAリースは、例えば、クライアントコンピューティングデバイスがシステム30に登録するとき、ブローカーまたは他のネットワークアドミニストレーターコンピューターによってクライアントコンピューティングデバイス31a、31bに割り当てられることがある。1つの例示的な構成にて、第1のグループにおけるVDAは、1日24時間、完全な動作性能を提供する「常時オン」流に作動され得る。
【0037】
その上さらに、クライアントコンピューティングデバイス31a、31bは、それぞれのVDAリース(VDA lease)にしたがってVDA34a~34cから仮想コンピューティングセッションを要求するように構成され、各VDAリースは、第1のグループからVDAのうちの少なくとも1つを含む。例示される例にて、クライアントコンピューティングデバイス31aは、VDA34b(第2/ピークのグループ)および34c(第1/オフピークのグループ)を含むVDAリースを割り当てられ、一方、クライアントコンピューティングデバイス31bは、VDA34a(第2/ピークのグループ)および34c(第1/オフピークのグループ)を含むVDAリースを割り当てられる。
【0038】
加えて
図4を参照しつつ、いくつかの実装にて、VDAリースの各々は、VDAの順序リストを含むことがあり、各クライアントコンピューティングデバイス31a、31bが、仮想コンピューティングセッションが確立されるまで、それぞれの順序リストにおいて最も高い順位から最も低い順位までVDA34a~34cから仮想コンピューティングセッションを順次的に要求するように構成される。その上さらに、クライアントコンピューティングデバイス31a、31bの各々は、関連付けられたそれぞれのユーザーアカウントを有し、本例にて、クライアントコンピューティングデバイスは、関連付けられた同一のユーザーアカウント(ユーザーアカウントA)を有し、VDAの同一の順序リストを共有する。例えば、クライアントコンピューティングデバイス31aは、ユーザーAのラップトップコンピューターであることが可能であろうし、一方、クライアントコンピューティングデバイス31bは、ユーザーAのスマートフォンなどである。
【0039】
今の場合、VDAリース内のVDAの順序リストは、最も高い順位から最も低い順位までの順に、(1)VDA34a(ピークのみ)、(2)VDA34b(ピークのみ)、および(3)VDA34c(常時オン)を含む。ゆえに、今述べた例にて、クライアントコンピューティングデバイス31a、31bは、VDA34aと、仮想コンピューティングセッションを確立しようと試み、不成功ならばVDA34bと、不成功ならば最終的にVDA34cとである。今述べたことは、順序リストにおける最後のVDA34cが、クライアントコンピューティングデバイス31aを仮想コンピューティングセッション33cに接続する例示的な例において示される場合である。今述べたことは、オフピーク時間(VDA34a~34bが電源オフまたは低電力状態であるとき)の間に、またはVDA34a~34bが過負荷である、接続がダウンしたときなどのピーク時間の間に、発生するだろうというシナリオである。
【0040】
順序リストにおいて、少なくとも1つのピークのみVDA(peak only VDA)(ここではVDA34a、34b)と、本例にて順序リストの最後に置かれている、少なくとも1つの常時オンVDA(always-on VDA)(ここではVDA34c)とがあることに注意する。順序リストの最後にオフピーク/常時オンVDAを置くことは、ピークのみVDA34a、34bがピーク時間の間、より多くのトラフィックを受信し、常時オンVDA34cがオフピーク時間の間、より多くのトラフィックを受信するように、時間をかけて処理リソースのより均一な分布を提供するということにおいて有利であり得る。しかしながら、オフピーク/常時オンVDAは、すべての態様にて順序リストの最後に置かれる必要はないことは、理解されるであろう。さらにその上、ピーク/オフピークのグループからVDAのいくらでも、異なる態様にてVDAリースに含まれ得る。さらに、異なるVDAリース(異なる順序リストを有する)は、異なるユーザーアカウントに割り当てられることがあり、初めに、異なるクライアントコンピューティングデバイスが、異なるVDAに仮想コンピューティングセッションを頼るので、正の負荷分散アプローチを提供することにも注意されなければならない。
【0041】
順序リストアプローチを使用してVDAを通じてクライアントコンピューティングデバイスを仮想コンピューティングセッションに接続することのさらなる詳細は、本出願人にも割り当てられ、ここに、参照によって全体として本明細書に組み入れられる2018年11月20日に出願されたともに係属中の出願第16/194823号において述べられる。
【0042】
前述は、上述したVDAリースアプローチを使用して取得され得る強化されている接続確率を論証する種々の実装例を参照して、さらに理解されるであろう。例を説明する前に、今、仮想コンピューティングセッションを仲介するための典型的なアプローチに関する次の背景を提供する。通常、プールされたデスクトップの仲介は、可用性(すなわち、公開されたデスクトップへ成功した接続)の一定のレベル、たとえば、スリーナイン(99.999%)、フォーナイン(99.9999%)などを保証する確率的なアプローチにより達成される。この状況では、今述べたことは、CL(Connection Lease)が複数のVDAを含む理由である。
【0043】
CWA(Citrix Workspace App)の場合に、プールされたデスクトップに接続することを要求すると、VDAが利用可能になる(電源オンであり使用中ではないことを意味する)まで1つずつ、VDAのCLリストからVDAに接続するのを試行する。エンドユーザーが(プールされたマシンを含むデリバリーグループから)デスクトップを始めるとき、CWAは、利用可能かどうかをチェックする迅速なICA/CGP pingをすることによってVDAに接続することを試みるだろう。そうでないならば、CWAは、VDAのリストにおける次の1つに行くなどするだろう。コストの理由により、通常、利用可能なVDAのサブセットのみが、XenApp/XenDesktop Smart Scale機能を利用して、特定の時間に電源オン(およびアイドル)である。通常、カスタマーは、使用が少ないとき、夜間および週末に利用可能なVDAの10~20%のみを電源オンにし得る。
【0044】
上記のシナリオにて、VDAを接続リースにおいて均等に分配するならば、首尾よく接続する確率を算出することが可能である。CLリストにおけるVDAが利用可能である確率がPaであると仮定すると、(連続的に試行することによって)VDAに首尾よく接続する確率は、次の漸化式によって定義される(ただし、nは、接続するのを試行するVDAの数である)。
Pn+1=Pn+(1-Pn)×Pa
およびP1=Pa
これは、次のように変形されることが可能である。
Pn+1=Pn×(1-Pa)+Pa
次のように帰着する。
Pn=1-(1-Pa)n
早い計算は、ツーナイン、スリーナインなど、VDAに首尾よく接続する確率を保証するのに、VDA(=n)が、CLリストにおいてどれぐらい必要とされるかを示す。次の表は、Pa=0.2へ転換する、利用可能なVDAの20%のみが電源オン(および利用可能/アイドル)であることを仮定する。
【0045】
【0046】
ちょうどスリーナインの信頼性を達成することは、どのリースにおいても多数のVDA(すなわち、30+)が必要であることが理解されるであろう。今述べたことは、リースが大きいだろうから性能に大きな影響を与えることが可能であろうし、CWAは、成功する前に多くの接続を試行しなければならないことがある。
【0047】
20個の利用可能なVDAを有するシステム50Aにおいてリースを発行することへの典型的なアプローチの例と、電源オンであることが等しい確率を有するすべてと、リースに均等に分配されているVDAとは、
図5Aと、
図5Bの関連したチャート50Bとにおいて示される。今述べたことは、与えられたどんなときでも、各VDAが電源オンである確率20%に帰着する。4ユーザーの場合に対して、各ユーザーは、接続確率約95%を有するだろう。
【0048】
すべてのVDAが、電源オンであることが同一の確率であることを仮定する代わりに、本アプローチは、オフピーク時間(または常時オン)の間、残っているそれらをあらかじめ選択する。上述の例を続けると、夜間および週末に電源オンのままであるVDAの20%は、早く、有利に選択され得る。次に、リースにおいてVDAを均等に分配するよりも、リースは、上述のように、ピーク期間の間、電源オンのVDA(高使用期間の間、適した負荷分散を確実にする)と、さらに予め選択されている20%からのVDA(低使用期間の間、利用可能性を確実にする)との混合から成り立っている。もちろん、オフピーク/常時オンのVDAの異なる百分率は、異なる態様にて使用され得る。
【0049】
さて、
図6A~
図6Bを参照すると、利用可能なVDAの10%が、オフピーク時間の間、動作のためにあらかじめ選択される、本アプローチを使用するシステム60Aの例示的な実装は、今、説明される。より具体的には、本例にて、VDA1~18は、ピークのみ動作のためにあらかじめ選択され、一方、VDA19~20(すなわち、利用可能な20個のVDAのうちの2個、または10%)が、オフピーク動作(ここでは常時オン動作)のためにあらかじめ選択される。上に説明したように、リースを発行するとき、常時オンVDAのうちの1は、
図6Bのチャート60Bに示されるように、どのユーザーのリースにおいても含まれる。ピークのみグループにて、各VDAが、与えられたときに電源オンであることが1%未満の確率があるが、常時オングループにて、今述べた2つのVDA(VDA19および20)が、与えられたときに電源オンであることが99%より大きい確率がある。
図6Bに見られるように、結果は、各ユーザーのVDAリースに対して、ユーザーが、リースにおいて常時オンVDAのうちの1つを含むことによって、仮想コンピューティングセッションに接続されることが、99%より大きい確率があり、同数のVDAおよびユーザーであるが常時オンVDAのあらかじめ選択がない上述のアプローチを介して、+4%の改善がある。もちろん、より多くの常時オンVDAは、いくらかの省電力を犠牲にするが、指定され、ユーザーリースに割り当てられて、接続の確率をさらに高くすることが可能であろうから、与えられたアプリケーションに対してあらかじめ選択されるVDAの適した量は、異なることがあることが理解されるだろう。一般的な手引きとして、利用可能なVDAのうちの20%以下は、典型的なアプリケーションにおいてオフピーク動作のためにあらかじめ選択され得るが、より高い百分率は、望まれる場合に選択され得る。
【0050】
さらに有利として、接続リーシングに加えて電力管理への本アプローチは、プールされたVDI(すなわち、VM毎に1人のユーザー)に、RDSワークロード(VM毎に複数のユーザー)も同様に適用される。RDSに関して、構成は、複数のユーザーが同一のVMを(制限まで)共有することが可能であるにつれて、より複雑になるので、シミュレーションが行われて、本アプローチの効果を実証した。シミュレーションの結果は、
図7の表70に示される。1個が10ユーザーを(合計200ユーザーに対して)取り扱う性能がある20個のVDA、10%のアイドルプール、およびリースの中に5個のVDAを仮定すると、あらかじめ選択された常時オンVDAがない接続の確率は95.5%であるが、各リースにおいて単一のあらかじめ選択された常時オンVDAがある接続の確率は、97.2%に上昇する。同様に、接続の試みの平均数は、1.27から1.41に変わり、負荷分散の不均一は、7.26ユーザーから7.03ユーザーに変わる。
【0051】
それゆえ、リースにおいてVDAの数を増やすことなく、本アプローチは、半分に近い接続失敗率を提供し、負荷分散を改善し、アンロードされたVDAを見つける前に、より多い接続の試みのため、接続時間おいてわずかな増加を生じただけであることが理解されるだろう。上述のように、大規模な環境において、リースに複数の常時オンVDAを含めて、接続確率をさらに高くすることも可能であろう。
【0052】
多くの修正および他の態様は、前述の説明および関連する図面において与えられた教授の利益を有する当業者が思いつくだろう。それゆえ、前述は、例示的な態様に限定されるべきではなく、修正および他の態様は、添付の特許請求の範囲の範囲内に含まれることが意図されることが理解される。