JP6621838B2 - 仮想デスクトップ・インフラストラクチャにおける複数のプロトコルの使用 - Google Patents

仮想デスクトップ・インフラストラクチャにおける複数のプロトコルの使用 Download PDF

Info

Publication number
JP6621838B2
JP6621838B2 JP2017549743A JP2017549743A JP6621838B2 JP 6621838 B2 JP6621838 B2 JP 6621838B2 JP 2017549743 A JP2017549743 A JP 2017549743A JP 2017549743 A JP2017549743 A JP 2017549743A JP 6621838 B2 JP6621838 B2 JP 6621838B2
Authority
JP
Japan
Prior art keywords
communication
communication protocol
protocol
computer
computing device
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.)
Active
Application number
JP2017549743A
Other languages
English (en)
Other versions
JP2018518728A (ja
Inventor
デイビッド ペシス
デイビッド ペシス
ネラマンガル クリスナスワミ スリニバス
ネラマンガル クリスナスワミ スリニバス
ハキムディン ハニフ
ハキムディン ハニフ
ユージン マイケル ファレル
ユージン マイケル ファレル
ディーパック スリヤナラヤナン
ディーパック スリヤナラヤナン
バルン ベルマ
バルン ベルマ
エリク ジョナサン テルビク
エリク ジョナサン テルビク
ネイサン バーソロミュー トーマス
ネイサン バーソロミュー トーマス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2018518728A publication Critical patent/JP2018518728A/ja
Application granted granted Critical
Publication of JP6621838B2 publication Critical patent/JP6621838B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Description

クラウド・コンピューティングは、遠隔位置で利用可能であり、インターネットのような、ネットワーク経由でアクセス可能であるコンピューティング・リソース(ハードウェア及びソフトウェア)の使用である。多くのサーバ・コンピュータを備える仮想サーバまたはクラウド・コンピューティング環境のような、多くのコンピューティング・デバイスを備えるコンピューティング環境で、コンピューティング・リソースの使用は、コスト優位性、及び/または変化するコンピューティング・リソース・ニーズに迅速に適合する能力を含む複数の利点を提供することが可能である。
データ・センター・リソースの稼働率の向上を促進するために、仮想化技術は、接続されたコンピュータ・ユーザに対して独立したコンピュータ・マシンとして出現し、動作する、1つ以上の仮想デスクトップ・インスタンスを単一の物理コンピューティング・マシンがホストすることを可能にすることができる。仮想化を用いて、単一の物理コンピューティング・デバイスは、動的な方法で仮想マシンを作成する、維持する、または削除することが可能である。一方で、ユーザは、データ・センターからコンピュータ・リソースを要求し、「必要に応じて」方式により、または少なくとも「要求に応じて」方式により、さまざまな数の仮想マシン・リソースが提供され得る。仮想デスクトップ・インスタンスを実行するクラウド・コンピューティング環境の中には、クラウド・コンピューティング・リソースの使用率の向上に伴って、リソース割当てを管理し、仮想デスクトップ・インスタンスと関連付けられた顧客要求機能に応じる通信機能を提供する効率が低下し得るものがある。
本開示に従いさまざまな実施形態が、図面を参照して記述される。
本開示の実施形態に従う、サービス・プロバイダにおいて仮想デスクトップ・インフラストラクチャをサポートする例示的なネットワーク環境の図解である。 本開示の実施形態に従う、1つ以上の通信プロトコルを使用して仮想デスクトップ・インスタンスにアクセスするための例示的なクライアント・コンピューティング・デバイス認証のブロック図である。 本開示の実施形態に従う、複数のデバイス・コンポーネントに複数の通信プロトコルを関連付けることが可能であるリモート・コンピューティング・アプリケーションを実行する例示的なクライアント・コンピューティング・デバイスのブロック図である。 本開示の例示的な実施形態に従う、プロトコル選択サービスを使用してマルチテナント環境で実行される複数の仮想マシン・インスタンスを示す例示的なシステム図である。 一実施形態に従ってプロトコル選択を提供するのに使用することができる、制御プレーンと関連付けられた複数の管理コンポーネントを含む例示的なシステムのさらなる詳細を示す。 一実施形態に従って構成することができるプロトコル選択関連機能を有するホスト・コンピュータを備えた、仮想マシン・インスタンスを実行するのに使用されるハードウェア資産である複数のホスト・コンピュータ、ルータ、及びスイッチの実施例を示す。 本開示の実施形態に従う、サービス・プロバイダ環境において仮想デスクトップ・インスタンスに対する通信プロトコルを選択する例示的な方法のフローチャートである。 本開示の実施形態に従う、サービス・プロバイダ環境において仮想デスクトップ・インスタンスに対する通信プロトコルを選択する例示的な方法のフローチャートである。 記述された技術革新を実現することができる適切なコンピューティング環境の一般化された実施例を描写する。
仮想マシン・イメージは、仮想環境で仮想マシンを起動させるのに必要とされる、オペレーティング・システム(たとえば、Linux)及び他のデータを含む。仮想マシン・イメージは、物理コンピュータのディスク容量に類似し、マシンとしてブートアップするのに必要とされる、ファイル・システム、オペレーティング・システム、及び他のコンポーネントを含むことができる。仮想マシンを起動させるために、ハードウェアを選択する必要がある。ハードウェア選択は、さまざまな異なるサイズのメモリ、CPU容量、I/Oパフォーマンスなどを許容することができる、インスタンス・タイプにより達成されることが可能である。仮想マシン・イメージとインスタンス・タイプとの組合せは、マルチテナント・ネットワーク環境内のホスト・サーバ・コンピュータのような、クラウド・コンピューティング・リソース上で起動することができる、「インスタンス」または仮想マシンを作成するのに使用されることが可能である。本明細書で使用される用語「仮想マシン」、及び「仮想マシン・インスタンス」は、交換可能である。
本明細書で使用される用語「仮想デスクトップ・インフラストラクチャ」は、複数のサーバ・コンピュータを含む環境を指し、デスクトップ・オペレーティング・システムは、複数のサーバ・コンピュータのうちの少なくとも1つにおいて起動される仮想マシン・インスタンス上で実行することが可能である。デスクトップ・オペレーティング・システムを実行する仮想マシン・インスタンスは、仮想デスクトップ・インスタンスと称されることがある。本明細書に開示された実施形態のうちの少なくともいくつかは、サービス・プロバイダにより提供される仮想デスクトップ・インフラストラクチャとの関連で記述されるが、さらに実施形態は、オンプレミス・ネットワークで、またはサービス・プロバイダ・ネットワークとオンプレミス・ネットワークとの組合せで使用されることが可能である。
以下の説明は、複数の通信プロトコルを使用することが可能である仮想デスクトップ・インフラストラクチャ環境を作成することをサポートする技術及び解決策を対象とする。より具体的には、サービス・プロバイダ環境のユーザは、クライアント・コンピューティング・デバイスを使用して、仮想マシン上で実行される仮想デスクトップ・インスタンスにアクセスすることができる。仮想デスクトップ・インスタンスへのアクセスは、第1の通信プロトコルと関連付けられた通信チャネルを使用して提供されることが可能である。ユーザは、第1の通信プロトコルによりサポートされない可能性がある機能(たとえば、USBリダイレクト)を要求することができる。サービス・プロバイダのプロトコル選択サービスを使用して、要求された機能をサポートする別の(第2の)通信プロトコルを選択することができる。プロトコル選択テーブル及び/または1つ以上のポリシー・ドキュメント(たとえば、グローバル・ポリシー・ドキュメント、及び/またはユーザの顧客アカウントと関連付けられたポリシー・ドキュメント)を使用して、プロトコル選択を実行することができる。第2の通信プロトコルを使用するユーザを認証することができ、認証時に、第1の通信チャネルを利用可能にしたまま、要求された機能を取り扱う第2の通信チャネルを確立することができる。例示的な実施形態において、サービス・プロバイダ環境ネットワークについての1つ以上のネットワーク健全性特性(たとえば、ネットワーク・レイテンシ)、及び/またはクライアント・コンピューティング・デバイス、及び仮想デスクトップ・インスタンスを実行するサーバ・コンピュータの1つ以上のソフトウェア及び/またはハードウェア特性(たとえば、CPU、メモリ、GPU可用性、オペレーティング・システム・バージョンなど)を使用して、すべての通信を第2の通信プロトコルと関連付けられた第2の通信チャネルへスイッチオーバーするかどうか、または第1及び第2の通信チャネル間で通信を分割するかどうかを判定することができる。この点について、複数の通信プロトコルを使用して、クライアント・コンピューティング・デバイスにより仮想デスクトップ・インスタンスへのアクセスをサポートすることができる。
図1は、本開示の実施形態に従う、サービス・プロバイダにおいて仮想デスクトップ・インフラストラクチャをサポートする例示的なネットワーク環境の図である。図1を参照して、ネットワーク環境100は、ネットワーク112を介してクライアント・コンピューティング・デバイス110と通信するサービス・プロバイダ102を含むことができる。サービス・プロバイダ102は、1人以上のクライアント(たとえば、クライアント・コンピューティング・デバイス110のユーザ)が1つ以上のサーバ・コンピュータ上の1つ以上の仮想マシン・インスタンス(VMI)(たとえば、サーバ・コンピュータ106上のインスタンス126)を実行することができるマルチテナント・クラウド・ネットワーク環境からなり得る(単一のサーバ・コンピュータ106のみを図1で示すが、サービス・プロバイダ102が複数のサーバ・コンピュータを使用することが可能である)。たとえば、仮想マシン・インスタンス126は、オペレーティング・システム及びアプリケーション・ソフトウェアのインスタンスを実行し、仮想デスクトップ・インスタンスを作成することができる。クライアント・コンピューティング・デバイス110のような、1つ以上のクライアント・コンピューティング・デバイスにより、1つ以上のサーバ・コンピュータ上で実行する各仮想デスクトップ・インスタンスにアクセスすることが可能である。サーバ・コンピュータ(たとえば、106)は、たとえば、サービス・プロバイダ102の1人以上のクライアントにより(またはクライアントの代わりに)操作されるクライアント・サーバからなり得る。サービス・プロバイダ102は、複数のエンドポイント118、...、124を用いるエンドポイント・サービス104、及びプロトコル選択サービス(PSS)108をさらに備えることができる。
また仮想デスクトップ・インスタンス126は、プロトコル・エージェント128を含むことができる。このプロトコル・エージェント128は、適切なロジック、インタフェース、及び/またはコードを含むことができ、新規の通信リンクについての新規の通信ポートをセットアップすることを備える、仮想デスクトップ・インスタンス126のストリーミングを管理する、及び/または既存の通信リンク及びポートを終了するように動作可能であり得る。例示的な実施形態において、プロトコル・エージェント128は、インスタンス126上においてアプリケーションとして実行することができる。
サーバ・コンピュータ106は、インスタンス・マネージャ130を含むことができる。このインスタンス・マネージャ122は、仮想デスクトップ・インスタンス126と同一のサーバ・コンピュータ(たとえば、106)上に、または別のコンピュータ上にあることができる。インスタンス・マネージャ130は、サーバ・コンピュータ(たとえば、106)上で実行されるインスタンスの進行状況を追跡し、クライアント・コンピューティング・デバイスを介してインスタンス(たとえば、126)とインタラクトしながらユーザにより作成されるデータのストレージを監視して調整し、クライアント・コンピューティング・デバイス(たとえば、110)上で実行する、サービス・プロバイダ102の、及びリモート・コンピューティング・アプリケーション(たとえば、116)のサーバ・コンピュータの全体的な健全性及び状態を監視することができる。インスタンス・マネージャ130は、図5で示されるような、管理プレーン(たとえば、管理サーバ・コンピュータ)の部分であることが可能である。
さらにサーバ・コンピュータ106は、ハイパーバイザ131及びサーバ機能ブロック132を含むことができる。ハイパーバイザ131は、サーバ・コンピュータ106上で複数のインスタンス(たとえば、インスタンス126)の実行を可能にするように構成されることが可能である。ハイパーバイザは、さらに以下で図4及び図6を参照して考察される。サーバ・コンピュータ106は、中央処理装置及びアーキテクチャ、メモリ、マス・ストレージ、グラフィックス・プロセッシング・ユニット(GPU)、通信ネットワーク可用性及び帯域幅などのような、さまざまなローカル・コンピューティング・リソースを含むことができる。サーバ・コンピュータ106のさまざまなコンピューティング・リソース上の情報がサーバ機能132として指定される。
クライアント・コンピューティング・デバイス110を使用して、リモート・オペレーティング・システム(たとえば、仮想デスクトップ・インスタンス126)へのアクセス、及びアプリケーションをユーザに提供することができる。例示的な実施形態において、クライアント・コンピューティング・デバイス110は、パーソナル・コンピューティング・デバイス、ラップトップ・コンピューティング・デバイス、ハンドヘルド・コンピューティング・デバイス、端末コンピューティング・デバイス、モバイル・デバイス(たとえば、携帯電話、タブレット・コンピューティング・デバイス、電子ブック・リーダーなど)、無線デバイス、さまざまな電子機器及びアプライアンスなどを含む、多種多様なコンピューティング・デバイスに相当することが可能である。例示的な実施形態において、クライアント・コンピューティング・デバイス110は、ワイド・エリア・ネットワーク、またはローカル・エリア・ネットワークのような、通信ネットワーク112経由で通信を確立する、必要なハードウェア及びソフトウェア・コンポーネントを含む。たとえば、クライアント・コンピューティング・デバイス110は、サービス・プロバイダ102内のサーバ・コンピュータ106のうちの1つ以上とのインターネットまたはイントラネットを介した通信を促進するネットワーキング機器、及びブラウザ・ソフトウェア・アプリケーションを備えることができる。クライアント・コンピューティング・デバイス110は、中央処理装置及びアーキテクチャ、メモリ、マス・ストレージ、グラフィックス・プロセッシング・ユニット(GPU)、通信ネットワーク可用性及び帯域幅などのような、さまざまなローカル・コンピューティング・リソースを含むことができる。クライアント・コンピューティング・デバイス110のさまざまなコンピューティング・リソース上の情報がクライアント機能114として指定される。
一実施形態において、クライアント・コンピューティング・デバイス110は、リモート・コンピューティング・アプリケーション116を実行することができる。リモート・コンピューティング・アプリケーション116は、サービス・プロバイダ102のサーバ・コンピュータ106によりホストされる仮想デスクトップ・インスタンス(たとえば、126)へのアクセスを要求することができる。またリモート・コンピューティング・アプリケーション116は、クライアント・コンピューティング・デバイス110とサービス・プロバイダ102との間のリモート・コンピューティング・セッションを管理することができる。加えて、リモート・コンピューティング・アプリケーション116は、1つ以上の通信プロトコル・エンドポイント(たとえば、複数の通信プロトコルのうちの1つを使用する通信リンク)とデバイス・コンポーネント(図3でより詳細に示されるような)との間の接続を確立することを促進することができる。
エンドポイント・サービス104は、複数のエンドポイント118、...、124を含むことができる。各エンドポイント118、...、124は、適切なロジック、回路、インタフェース、及び/またはコードを含むことができ、1人以上のサービス・プロバイダ・クライアント(たとえば、クライアント・デバイス110のユーザ)の認証を提供し、クライアント・コンピューティング・デバイス110とサーバ・コンピュータ(たとえば、106)との間の通信を促進するように動作可能であり得る。各エンドポイント118、...、124は、複数の通信プロトコルのうちの少なくとも1つと関連付けられた1つ以上の通信リンク(たとえば、通信プロトコル1、...、Nと関連付けられた通信リンク146、...、148、及び142、...、144)を使用するように動作可能な、安全なゲートウェイ、ルータ、または別のネットワーク・デバイスを含むことができる。加えて、エンドポイント・サービス104内の各エンドポイントは、サービス・プロバイダ102と関連付けられた複数の別々の領域(たとえば、別々の地理的領域)のうちの1つに設置されるクラウド・エンドポイントからなり得る。クライアント・コンピューティング・デバイス110とエンドポイント・サービス104とサーバ・コンピュータ106との間の安全なリンクを確立する例示的な通信シーケンスは、図2を参照して本明細書に以下で記述される。
プロトコル選択サービス(PSS)108は、適切なロジック、回路、インタフェース、及び/またはコードを含むことができ、通信プロトコルを選択し、クライアント・コンピューティング・デバイス110とサーバ・コンピュータ106との間の通信プロトコルと関連付けられた通信リンク(またはチャネル)の確立を促進するように動作可能であり得る。またPSS108は、プロトコル選択機能に関連して1つ以上のポリシーを指定することができるポリシー・ドキュメント(たとえば、138及び/または140)を使用することができる。たとえば、顧客アカウント・ポリシー138は、顧客(たとえば、コンピューティング・デバイス110のユーザ)に、仮想デスクトップ・インスタンス126にアクセスすることと関連付けられた特定の機能に使用するように権限付与される、1つ以上の通信プロトコルを指定することができる。仮想デスクトップ・インスタンス126へのアクセスに関連してクライアント・デバイス110のユーザにより要求され得る例示的な機能は、マルチメディア・データ処理機能、USBデータ処理機能(たとえば、USBリダイレクト)、仮想チャネル・データ処理機能、及びキーボード・データ処理機能を含むことができる。要求された機能性に関連して使用され得る例示的な通信プロトコルは、PC−over−IP(PCoIP)通信プロトコル、及びリモート・デスクトップ・プロトコル(RDP)を含むことができる。
グローバル・ポリシー140は、サービス・プロバイダ環境102のすべてのユーザと関連して使用されることが可能であるプロトコル選択ポリシーを指定することができる。ポリシー・ドキュメント138及び140は、たとえば、管理ポータル141を介して管理者により更新されることが可能である。さらにPSS108は、2つ以上の通信リンク(たとえば、各々は異なる通信プロトコルと関連付けられる)を利用可能にすることを同時に維持するかどうか、または単一の通信リンクを使用してコンピューティング・デバイス110とエンドポイント・サービス104とサーバ・コンピュータ102との間のすべての通信トラフィックをスイッチオーバーするかどうかを判定することに加え、通信プロトコルの選択中にネットワーク・モニタ136、及びプロトコル決定テーブル134を使用することができる。たとえば、PSS108は、クライアント機能114、サーバ機能132についての情報、及びネットワーク・モニタ136からの情報を受信し、受信した情報を使用して一方の通信プロトコルに基づく既存の通信リンクから、他方の通信プロトコルに基づく新規の通信リンクへ通信を切り換えるかどうかを判定することができる。ネットワーク・モニタから提供される情報は、ネットワーク・レイテンシ、帯域幅などの、サービス・プロバイダ102内の通信ネットワークについての健全性情報を含むことができる。
本開示の例示的な実施形態に従い、PSS108は、サービス・プロバイダ102(図1で示されるように)内にスタンドアロン・サービスとして実装されることが可能であり、またはそれは、サーバ・コンピュータ(たとえば、106)のうちの1つ以上の内のコード・ライブラリ(すなわち、ソフトウェア)として実装されることが可能である。
図2は、本開示の実施形態に従う、1つ以上の通信プロトコルを使用して、仮想デスクトップ・インスタンスにアクセスするための例示的なクライアント・コンピューティング・デバイス認証のブロック図である。図1〜図2を参照して、デバイス110のユーザは、サービス・プロバイダ102のクライアントからなり得るとともに、サーバ・コンピュータ106を使用して、仮想デスクトップ・インスタンス126を実行することができる(たとえば、ユーザは、サーバ・コンピュータ106のような1つ以上のサーバ・コンピュータ上で実行する1つ以上のインスタンス上で仮想デスクトップを起動させる権利をユーザに与える手数料と引き換えに、サービス・プロバイダ102から顧客アカウントを取得することができる)。換言すれば、仮想デスクトップ・インスタンス126は、デバイス110のユーザの顧客アカウントと関連付けられることが可能である。ユーザは、一度に1つより多い仮想デスクトップ・インスタンスを含むことができるが、一度に1つの仮想デスクトップ・インスタンスにログインし、これを使用することが可能であり得る。
仮想デスクトップ・インスタンス126へのアクセスを取得する例示的な通信交換において、クライアント・コンピューティング・デバイス110のユーザは、エンドポイント118へログインID(ユーザ名)及びパスワード(または顧客アカウントと関連付けられた任意の他のログイン/認証クレデンシャル)を送信する(ref#1で)ことで、エンドポイント・サービス104と通信を開始することができる。エンドポイント118は、ユーザを認証することができ、認証トークン210をクライアント・コンピューティング・デバイス110へ返送する(ref#2で)ことができる。つぎにクライアント・デバイス110は、エンドポイント120へ認証トークン210を送信する(ref#3で)ことができる。エンドポイント120は、エンドポイント118へトークンを転送し(ref#4で)、要求するユーザに属するトークンを確認することができ、ユーザは、有効な顧客アカウントを有する。ユーザが認証されたことの確認は、エンドポイント118からエンドポイント120へ送信される(ref#5で)ことが可能である。つぎにエンドポイント120は、仮想デスクトップ・インスタンス識別212(プロトコル1を使用して通信リンク204を確立するのに使用されるポートのような、ポート番号を含むことができる)、ゲートウェイIPアドレス214、及び安全なトークン216を返す(ref#6で)ことができる。ゲートウェイIPアドレス214は、通信リンク202及び204を使用しながら、クライアント・コンピューティング・デバイス110と仮想デスクトップ・インスタンス126との間でプロキシとして動作することが可能である、エンドポイント122についてのIPアドレスからなり得る。安全なトークン216を使用して、クライアント・デバイス110を認証し、プロキシとしてエンドポイント122を使用し、複数の利用可能な通信プロトコルのうちの少なくとも1つ(たとえば、プロトコル1)を使用して仮想デスクトップ・インスタンス126と通信することができる。
仮想デスクトップ・インスタンス識別212、ゲートウェイIPアドレス214、及び安全なトークン216は、エンドポイント122へ送信される(ref#7で)ことが可能である。エンドポイント122は、トークンを発行したエンドポイント120へ安全なトークン216を送信する(ref#8で)ことができる。エンドポイント120は、トークン216を認証することができ、エンドポイント122へ認証の確認を返信する(ref#9で)ことができる。つぎにプロトコル選択サービス108は、仮想デスクトップ・インスタンス126においてプロトコル・エージェント128と通信し(たとえば、仮想デスクトップ・インスタンス識別212を使用して)、通信プロトコル1を使用して通信リンク204を確立することに新規のポートを利用可能とするプロトコル・エージェント128を含むことができる。通信プロトコル1は、プロトコル決定テーブル134を使用してプロトコル選択サービスにより選択されることが可能である。より具体的には、プロトコル決定テーブル134は、1つ以上のデバイス機能(たとえば、デバイス110がインスタンス128にアクセスするのに要求される、または必要な機能)を、複数の利用可能な通信プロトコルから選択される1つ以上の通信プロトコルと関連付けることができる。
例示的な実施形態において、PSS108は、グローバル・ポリシー・ドキュメント、及び/または顧客アカウント・ポリシー138を使用して、通信リンク202及び204についての通信プロトコルを選択することができる。ポリシー・ドキュメント138/140は、仮想デスクトップ・インスタンス126にアクセスするコンピューティング・デバイス110により要求される特定の機能にいずれの通信プロトコルを使用するかを指定することができる。またPSS108は、このようなプロトコルを使用してリンクを確立する前に、所与の通信プロトコルを使用するクライアント・デバイス110のユーザを認証することができる。ユーザ認証は、たとえば、サービス・プロバイダ環境内でいずれのプロトコルを使用するクライアント/ユーザを承認するかを指定することができる、顧客アカウント・ポリシー138を使用して、実行されることが可能である。
プロトコル・エージェント128が新規のポートを利用可能にした後に、通信リンク202及び204(または図1のリンク142、146)は、クライアント・デバイス110に仮想デスクトップ・インスタンス126へのアクセスを提供する通信プロトコル1を使用して確立されることが可能である。別の例示的な実施形態において、PSS108は、クライアント・デバイス110により要求される、通信チャネル/リンク202/204と関連付けられた通信プロトコル1によりサポートされない新規の機能を検出することができる。たとえば、デバイス110のユーザは、インスタンス126にアクセスすることと関連してUSBメモリ・スティックを使用することができるが、USBリダイレクトは、通信プロトコル1によりサポートされない可能性がある。参照番号1〜6により示される通信シーケンスは、再度行うことができるが、エンドポイント120は、エンドポイント123を識別するゲートウェイIPアドレス214と、ユーザ及びクライアント・デバイス110に、通信プロトコル2と関連付けられた通信リンク206/208を使用してデバイス110と仮想デスクトップ・インスタンス126との間のプロキシとしてエンドポイント123にアクセスするように権限付与する安全なトークン216とを返信することができる。
PSS108は、プロトコル1によりサポートされない、要求された機能をサポートするような、通信プロトコル2を選択することができる。プロトコル2の選択は、プロトコル決定テーブル134、グローバル・ポリシー140、及び/または顧客アカウント・ポリシー138に基づくことができる。代替として、新規のプロトコル2は、ユーザにより選択され、エンドポイント123を介してPSS108へ送信されることも可能である。通信リンク204と同様に、プロトコル・エージェント128がプロトコル2と関連付けられた新規のポートを確立することができることによって、PSS108(またはプロトコル・エージェント128)は、通信プロトコル2と関連付けられた新規の通信リンク206/208(または図1の144/148)を利用可能にすることができる。この点で、クライアント・コンピューティング・デバイス110は、少なくとも2つの異なる通信プロトコルを同時に使用して(すなわち、通信リンク202、...、208が同時に、利用可能であり、使用される)仮想デスクトップ・インスタンス126にアクセスすることができる。
さらに別の例示的な実施形態において、PSS108は、クライアント機能114、サーバ機能132、及び/またはネットワーク・モニタ136からの情報(たとえば、ネットワーク・レイテンシ情報)を使用して、第1のプロトコル・タイプの一方の通信リンク(たとえば、プロトコル1を使用するリンク202/204)から、第2のプロトコル・タイプの他方の通信リンク(たとえば、プロトコル2を使用するリンク206/208)へ通信トラフィックをオフロードする(またはスイッチオーバーする)かどうかを判定することができる。このような通信配信機能は、自動的に、またはネットワーク管理者の承認時に(たとえば、ポータル141を介して)実行されることが可能である。加えて、新規の通信プロトコルを使用する(たとえば、新規の通信リンクを確立し、特定の機能性を取り扱う)、または一方のプロトコルから他方へ通信トラフィックを切り換える(完全に、または部分的に)ときは常に、クライアント・コンピューティング・デバイス110に通知を表示することができる。
図3は、本開示の実施形態に従う、複数の通信プロトコルを複数のデバイス・コンポーネントと関連付けることが可能であるリモート・コンピューティング・アプリケーションを実行する、例示的なクライアント・コンピューティング・デバイスのブロック図である。図3を参照して、異なる通信プロトコル1、...、Xを使用する、複数の通信リンク306、...、308を使用して、クライアント・コンピューティング・デバイス110を示す。各通信リンク306、...、308を使用して、クライアント・デバイス110により使用される機能または通信の特定のタイプを取り扱い、仮想デスクトップ・インスタンスにアクセスすることができる。加えて、通信リンク306、...、308は、対応するプロトコル・エンドポイント302、...、304からクライアント・コンピューティング・デバイス110に入ることができる。本開示の例示的な実施形態に従い、リモート・コンピューティング・アプリケーション116は、所与のプロトコルと関連付けられた1つ以上のデバイス・コンポーネントを決定し、つぎにこのようなプロトコルから1つ以上のコンポーネントへ通信トラフィックを向けることができる。たとえば、通信リンク306がRDPプロトコルを使用してUSBリダイレクトを取り扱う場合に、つぎにリモート・コンピューティング・アプリケーション116は、プロトコル・エンドポイント302をデバイス・コンポーネント312(たとえば、USBポート、及びUSBアクセス機能性を提供する関連コンポーネント)と関連付けることができる。
図4は、本開示の例示的な実施形態に従う、プロトコル選択サービスを使用する、マルチテナント環境内で実行する複数の仮想マシン・インスタンスを示す例示的なシステム図である。より具体的には、図4は、本明細書に記述される実施形態を使用することが可能である1つの環境を示すネットワーク・ベースのサービス・プロバイダ400のコンピューティング・システム図である。背景として、サービス・プロバイダ400(すなわち、クラウド・プロバイダ)は、末端受信者のコミュニティ(たとえば、テナントまたは顧客)へサービスとしてコンピューティング及びストレージ容量の配信が可能である。サービス・プロバイダ400は、図1〜図3に示されるサービス・プロバイダ102と同一のものからなり得る。
例示的な実施形態において、サービス・プロバイダ400は、組織によって、または組織のために、組織用に確立されることが可能である。すなわち、サービス・プロバイダ400は、「プライベート・クラウド環境」を提供することができる。別の実施形態において、サービス・プロバイダ400は、マルチテナント環境をサポートし、複数の顧客は、独立して運用する(すなわち、パブリック・クラウド環境)。一般的に言えば、サービス・プロバイダ400は、以下のモデル、すなわち、サービスとしてのインフラストラクチャ(「IaaS」)、サービスとしてのプラットフォーム(「PaaS」)、及び/またはサービスとしてのソフトウェア(「SaaS」)を提供することが可能である。他のモデルを提供することも可能である。IaaSモデルについて、サービス・プロバイダ400は、物理または仮想マシン、及び他のリソースとしてコンピュータを提供することが可能である。以下でさらに記述されるように、ハイパーバイザによりゲストとして仮想マシンを実行することが可能である。PaaSモデルは、オペレーティング・システム、プログラミング言語実行環境、データベース、及びウェブ・サーバを含むことが可能であるコンピューティング・プラットフォームを配信する。アプリケーション開発者は、基本的なハードウェア及びソフトウェアを購入して管理するコストなしでサービス・プロバイダ・プラットフォーム上に彼らのソフトウェア解決策を開発して実行することが可能である。SaaSモデルは、サービス・プロバイダ内でアプリケーション・ソフトウェアのインストール及び操作を可能にする。いくつかの実施形態で、エンド・ユーザは、ウェブ・ブラウザ、または他のライトウェイト顧客アプリケーションを実行する、デスクトップ・コンピュータ、ラップトップ、タブレット、スマートフォンなどのようなネットワーク化された顧客デバイスを使用して、サービス・プロバイダ400にアクセスする。当業者は、サービス・プロバイダ400を「クラウド」環境として記述することが可能であることを認識するであろう。
特定の図示されたサービス・プロバイダ400は、複数のサーバ・コンピュータ402A〜402Dを含む。4台のサーバ・コンピュータのみを示すが、任意の台数を使用することが可能であり、大規模なセンターは、数千台のサーバ・コンピュータを含むことが可能である。サーバ・コンピュータ402A〜402Dは、ソフトウェア・インスタンス406A〜406Dを実行するためにコンピューティング・リソースを提供することが可能である。一実施形態において、インスタンス406A〜406Dは、仮想マシンである。当該技術分野で既知であるように、仮想マシンは、物理マシンのようなアプリケーションを実行するマシン(すなわち、コンピュータ)のソフトウェア実装のインスタンスである。実施例で、各サーバ・コンピュータ402A〜402Dは、単一のサーバ上で複数のインスタンス406の実行を可能にするように構成されるハイパーバイザ408、または別のタイプのプログラムを実行するように構成されることが可能である。たとえば、各サーバ402A〜402Dは、各仮想マシン・パーティションが仮想マシン・インスタンスを実行することが可能でありながら、1つ以上の仮想マシン・パーティションをサポートするように構成される(たとえば、ハイパーバイザ408を介して)ことが可能である(たとえば、サーバ・コンピュータ402Aは、対応する仮想マシン・インスタンスを各実行する3つの仮想マシン・パーティションをサポートするように構成されることが可能である)。加えて、各インスタンス406は、1つ以上のアプリケーションを実行するように構成されることが可能である。
またサービス・プロバイダ400は、PSS108に関連して本明細書に記述される機能を有することができる、プロトコル選択サービス440を備えることができる。プロトコル選択サービス440は、プロバイダ400内でスタンドアロン・サービスとして、専用サーバ(サーバ402A〜402Dに類似する)として、1つ以上のサーバ402内のコード・ライブラリとして実装されることができる、及び/または管理機能を実行するサーバ・コンピュータ404の部分として実装されることができる。たとえば、プロトコル選択サービス440は、管理コンポーネント410(図5で示されるような)の部分として実装されることができる。
本明細書に開示された実施形態を仮想マシンとの関連で最初に記述するが、本明細書に開示された概念及び技術と併せて他のタイプのインスタンスを利用することが可能であることを理解するであろう。たとえば、本明細書に開示された技術は、ストレージ・リソース、データ通信リソースと併せて、及び他のタイプのコンピューティング・リソースと併せて利用されることが可能である。本明細書に開示された実施形態は、仮想マシン・インスタンスを利用せずにコンピュータ・システム上で直接にアプリケーションのすべて、または部分を実行することもできる。
1つ以上のサーバ・コンピュータ404は、サーバ・コンピュータ402、インスタンス406、ハイパーバイザ408、及び/またはプロトコル選択サービス440の操作を管理するソフトウェア・コンポーネントを実行するのに確保されることが可能である。たとえば、サーバ・コンピュータ404は、管理コンポーネント410を実行することが可能である。顧客は、管理コンポーネント410にアクセスし、顧客により購入されたインスタンス406の動作のさまざまな態様を設定することが可能である。たとえば、顧客は、インスタンスを購入し、レンタルし、またはリースし、インスタンスの設定へ変更を行うことが可能である。また顧客は、購入したインスタンスを需要に応じてスケーリングする方式について設定を指定することが可能である。
さらにサーバ・コンピュータ404は、プロトコル選択サービス440により処理メモリとして使用できるメモリ452を備えることができる。自動スケーリング・コンポーネント412は、顧客により定められたルールに基づきインスタンス406をスケーリングすることが可能である。一実施形態において、自動スケーリング・コンポーネント412は、新規のインスタンスをインスタンス化するときを決定することへの使用に供されるスケールアップ・ルール、及び既存のインスタンスを終了するときを決定することへの使用に供されるスケールダウン・ルールを顧客が指定することを可能にする。自動スケーリング・コンポーネント412は、異なるサーバ・コンピュータ402、または他のコンピューティング・デバイス上で実行する複数のサブコンポーネントからなることが可能である。自動スケーリング・コンポーネント412は、内部管理ネットワーク経由で利用可能なコンピューティング・リソースを監視し、必要に基づき利用可能なリソースを変更することが可能である。
デプロイメント・コンポーネント414を使用して、コンピューティング・リソースの新規のインスタンス406のデプロイメントにおいて顧客を支援することが可能である。デプロイメント・コンポーネントは、だれがアカウントの所有者であるかといった、インスタンスと関連付けられたアカウント情報、クレジット・カード情報、所有者の国などへのアクセス権を有することが可能である。デプロイメント・コンポーネント414は、新規のインスタンス406を設定する方式を記述するデータを含む顧客からの設定を受信することが可能である。たとえば、設定は、新規のインスタンス406内にインストールされる1つ以上のアプリケーションを指定し、新規のインスタンス406を構成するように実行されるスクリプト及び/または他のタイプのコードを提供し、アプリケーション・キャッシュを準備する方式を指定するキャッシュ・ロジック、及び他のタイプの情報を提供することが可能である。デプロイメント・コンポーネント414は、顧客が提供する設定及びキャッシュ・ロジックを利用して、新規のインスタンス406を設定し、準備し、起動させることが可能である。設定、キャッシュ・ロジック、及び他の情報は、管理コンポーネント410を使用して顧客により、またはデプロイメント・コンポーネント414へ直接にこの情報を提供することにより指定されることが可能である。インスタンス・マネージャ(たとえば、図5の550)は、デプロイメント・コンポーネント414の部分とみなされることが可能である。
顧客アカウント情報415は、マルチテナント環境の顧客と関連付けられた任意の所望の情報を含むことが可能である。たとえば、顧客アカウント情報は、顧客についての一意識別子、顧客アドレス、ビリング情報、ライセンス情報、インスタンスを起動させるカスタマイズ・パラメータ、スケジューリング情報、自動スケーリング・パラメータ、このアカウントにアクセスするのに使用された以前のIPアドレス、及びその他のものを含むことが可能である。
ネットワーク430は、サーバ・コンピュータ402A〜402D、及びサーバ・コンピュータ404を相互接続するのに利用されることが可能である。ネットワーク430は、ローカル・エリア・ネットワーク(LAN)からなることが可能であり、ワイド・エリア・ネットワーク(WAN)440へ接続されることが可能であるため、エンド・ユーザは、サービス・プロバイダ400にアクセスすることが可能である。図4で示されたネットワーク・トポロジが簡略化されていること、ならびにより多くのネットワーク及びネットワーキング・デバイスが本明細書に開示されたさまざまなコンピューティング・システムを相互接続するのに利用されることが可能であることを理解するであろう。
図5は、1つの実施形態によりプロトコル選択を提供するのに使用できる、制御プレーンと関連付けられた複数の管理コンポーネントを含む例示的なシステムのさらなる詳細を示す。より具体的には、図5は、より詳細に、サービス・プロバイダ400のマルチテナント環境内のプロトコル選択サービス440を実装することができる管理コンポーネント410を示す。
インスタンス(図4のインスタンス406のような)にアクセスし、これらを利用するために、顧客デバイスを使用することが可能である。顧客デバイス510は、セルフォン、スマートフォン、ハンドヘルド・コンピュータ、パーソナル・デジタル・アシスタント(PDA)、デスクトップ・コンピュータなどを含む、さまざまなコンピューティング・デバイス、モバイルまたはその他のもののうちのいずれかからなることが可能である。顧客デバイス510は、アプリケーション・プログラミング・インタフェース(API)要求を受信して処理するように設計されるDNSアドレスからなることが可能であるエンドポイント512を介して、サービス・プロバイダ400と通信することが可能である。特に、エンドポイント512は、APIを公開するように構成されるウェブ・サーバからなることが可能である。API要求を使用して、顧客デバイス510は、本明細書に記述された機能のいずれかを実装する、またはサービス・プロバイダ400により提供された1つ以上のサービスにアクセスする要求を行うことが可能である。他のサービス515は、サービス・プロバイダ400内部にあることが可能であり、同様にエンドポイント512へAPI要求を行うことが可能である。クライアントからのAPI要求は、サービス・プロバイダ400のプロトコル選択関連機能にアクセスするために、アドミッション・コントロール514を通過し、プロトコル選択サービス440へと向かうことが可能である。
サービス・プロバイダ400内に(及び/または管理コンポーネント410内に)含まれてもよい、または含まれなくてもよい他の一般的な管理サービスは、アドミッション・コントロール514、たとえば、アドミッション・コントロール・ウェブ・サービスとして共に動作する1つ以上のコンピュータを含む。アドミッション・コントロール514は、サービス・プロバイダ400内のデータのサービスまたはストレージについてのAPI要求を認証し、検証し、アンパックすることが可能である。容量トラッカー516は、容量の、予測と、プロビジョニングと、リアルタイムの構成及び割当てとの観点で物理インベントリを管理及び構成することによって、異なるインスタンス・タイプについての要求を満たすために、サーバが構成される必要がある方式を判定することを受け持つ。容量トラッカー516は、容量プール・データベース518内の利用可能なインベントリのプールを維持する。また容量トラッカー516は、リソースが直ちに利用可能であるか、それとも制限されているかを知るために、容量レベルを監視することが可能である。
インスタンス・マネージャ550は、ネットワーク内の仮想マシン・インスタンスの起動及び終了を制御する。インスタンスを起動させる命令(API要求を介してのような)を受信すると、インスタンス・マネージャ550は、容量プール518からリソースを引き出し、決定されたホスト・サーバ・コンピュータ上でインスタンスを起動させる。インスタンス・マネージャに類似するのは、ストレージ・マネージャ522、及びネットワーク・リソース・マネージャ524である。ストレージ・マネージャ522は、ストレージ容量の開始及び終了に関与し、ネットワーク・リソース・マネージャ524は、ルータ、スイッチ、サブネットなどの開始及び終了に関与する。パーティション540のネットワークは、図6に関連してさらに記述され、インスタンスを起動させる物理層を含む。
プロトコル選択サービス440は、本明細書に記述されたプロトコル選択機能性(たとえば、PSS108を参照して記述される機能性)を実行することができる。PSS440は、パーティション540のネットワーク(たとえば、サーバ・コンピュータ上で実行する仮想デスクトップ・インスタンスにアクセスするために)、ポリシー・ドキュメント138/140、及びプロトコル決定テーブル134(たとえば、図1と関連して記述されるような)を用いてアドミッション・コントロール514と通信する(ことにより、たとえば、新規の機能要求、及び新規の通信リンクを確立することを求める要求を受信する、または一方のプロトコル・タイプから他方のものへ通信を切り換える)ことができる。
図6は、一実施形態に従って構成することができるプロトコル選択関連機能を有するホスト・コンピュータを備えた、仮想マシン・インスタンスを実行するのに使用されるハードウェア資産である、複数のホスト・コンピュータ、ルータ、及びスイッチの実施例を示す。より具体的には、図6は、パーティション640のネットワーク、及びそれらと関連付けられた物理ハードウェアを示す。パーティション640のネットワークは、ルータ616のようなルータにより共に結合された、データ・センター610a、...、610nのような複数のデータ・センターを含むことが可能である。
ルータ616は、受信したパケット内のアドレス情報を読み出し、パケットの宛先を判定する。異なるデータ・センターがホスト・サーバ・コンピュータを含むとルータが決定する場合に、つぎにパケットは、そのデータ・センターへ転送される。このパケットをデータ・センター610a内のホストへアドレス指定する場合に、つぎにそれは、パケットのパブリックIPアドレスをプライベートIPアドレスへ変換するネットワーク・アドレス変換器(NAT)618へ伝えられる。またNAT618は、データ・センター610aの外側にバインドされるパブリック・アドレスへプライベート・アドレスを変換する。追加のルータ620は、NAT618へ結合され、ホスト・サーバ・コンピュータの1つ以上のラック630へパケットをルーティングすることが可能である。各ラック630は、複数のホスト・サーバ・コンピュータへ結合されるスイッチ632を含むことが可能である。特定のホスト・サーバ・コンピュータを641で拡大図に示す。
各ホスト641は、基本のハードウェア650を含む。ハードウェア650上に層を広げるのは、ハイパーバイザまたはカーネル層660である。ハイパーバイザまたはカーネル層660は、タイプ1またはタイプ2のハイパーバイザとして分類されることが可能である。タイプ1のハイパーバイザは、ホスト・ハードウェア650上で直接実行し、ハードウェアを制御し、ゲスト・オペレーティング・システムを管理する。タイプ2のハイパーバイザは、従来のオペレーティング・システム環境内で実行される。したがって、タイプ2の環境で、ハイパーバイザは、オペレーティング・システム上に広がる別個の層であることが可能であり、オペレーティング・システムは、システム・ハードウェアとインタラクトする。異なるタイプのハイパーバイザは、Xenベース、Hyper−V、ESXi/ESX、Linuxなどを含むが、他のハイパーバイザも使用されることが可能である。例示的な実施形態において、ハイパーバイザ層660は、本明細書に記述されるように、DSNまたはDMNをインストールするのに使用できるDFSソフトウェア409を含むことができる。
管理層670は、ハイパーバイザの部分である、またはそこから分離されることが可能であり、ハードウェア650にアクセスするのに必要とされるデバイス・ドライバを一般的に含む。パーティション680は、ハイパーバイザによる論理的な分離単位である。各パーティション680は、ハードウェア層のメモリ、CPU割り当て、ストレージなどのそれ自体の部分を割り当てられることが可能である。加えて、各パーティションは、仮想マシン、及びそれ自体のゲスト・オペレーティング・システムを含むことが可能である(たとえば、VMI1がパーティション1上で実行していることができ、VMInがパーティションn上で実行していることができる)。このようなものとして、各パーティション680は、他のパーティションから独立してそれ自体の仮想マシンをサポートするように設計される容量の理論上の部分である。また、パーティション680上のVMI(VMI1、...、VMIn)のうちの1つ以上は、図1のVDI126に類似して、顧客アカウントと関連付けられた仮想デスクトップ・インスタンス(VDI)を実行することができる。
図7〜図8は、本開示の実施形態に従う、サービス・プロバイダ環境内の仮想デスクトップ・インスタンスについての通信プロトコルを選択する例示的な方法のフローチャートである。図1〜図2及び図7を参照して、例示的な方法700は、702で開始することができ、第1の通信プロトコルと関連付けられた第1の通信チャネルを使用してサービス・プロバイダ環境内のサーバ・コンピュータ(たとえば、106)上で実行する仮想デスクトップ・インスタンス(たとえば、126)へのアクセスを、プロトコル選択サービス108がクライアント・コンピューティング・デバイス(たとえば、110)へ提供することができる。たとえば、エンドポイント・サービス104、及びクライアント・デバイス110は、図2を参照して記述されるような安全な認証シーケンスを実行することができ、PSS108は、通信プロトコル1の使用に供されるデバイス110を認証し、つぎに仮想デスクトップ・インスタンス126にアクセスする通信プロトコル1に基づき通信リンク202/204を確立することができる。
704で、PSS108は、クライアント・コンピューティング・デバイス110のユーザから機能についての要求を検出することができ、要求された機能は、第1の通信プロトコル(すなわち、既存の通信リンク202/204と関連付けられたプロトコル1)によりサポートされない。たとえば、要求された機能は、マルチメディア・データ処理機能、USBデータ処理機能、仮想チャネル・データ処理機能、及び/またはキーボード・データ処理機能のうちの1つからなり得る。706で、PSS108は、要求された機能に基づき、複数の利用可能な通信プロトコルからの第2の通信プロトコルを選択することができ、この第2の通信プロトコルは、要求された機能をサポートする。PSS108は、プロトコル1によりサポートされない、要求された機能をサポートするような通信プロトコル2を選択することができる。プロトコル2の選択は、プロトコル決定テーブル134、グローバル・ポリシー140、及び/または顧客アカウント・ポリシー138に基づくことができる。たとえば、708で、PSS108は、顧客アカウント・ポリシー138、及び/またはグローバル・ポリシー140を参照することで、ユーザが、第2の通信プロトコル(たとえば、プロトコル2)を使用するように権限付与されているかどうかを検証することができる。
710で、検証が成功すると、PSS108は、第1の通信チャネル(たとえば、202/204)を使用して仮想デスクトップ・インスタンス126へのアクセスを維持しながら、第2の通信プロトコル(たとえば、プロトコル2)を使用してサーバ・コンピュータとクライアント・コンピューティング・デバイスとの間に第2の通信チャネル(たとえば、206/208)を確立することができる。通信リンク204と同様に、プロトコル・エージェント128がプロトコル2と関連付けられた新規のポートを確立することができることによって、PSS108(またはプロトコル・エージェント128)は、通信プロトコル2と関連付けられた新規の通信リンク206/208(または図1の144/148)を利用可能にすることができる。
図1〜図2及び図8を参照して、例示的な方法800は、802で開始することができ、PSS108は、クライアント・コンピューティング・デバイス(110)のユーザに、サービス・プロバイダ環境内で利用可能な複数の通信プロトコルを使用するように権限付与することができる。たとえば、PSS108は、コンピューティング・デバイス110のユーザに、利用可能なプロトコル1、...、Nのうちの1つ以上を使用して、これらのようなプロトコルに基づきさまざまな通信リンクを確立するように権限付与することができる。804で、PSS108は、複数の通信プロトコルの第1の通信プロトコルと関連付けられた第1の通信チャネルを使用してサービス・プロバイダ環境内のサーバ・コンピュータ上で実行する仮想デスクトップ・インスタンス(たとえば、126)へのアクセスを、クライアント・コンピューティング・デバイス110のユーザへ提供することができる。たとえば、PSSは、デバイス110のユーザを認証した(たとえば、図2を参照して、参照番号1〜11で記述される安全な交換に基づき)後に、通信プロトコル1を使用して通信リンク202/204を確立することができる。
806で、PSS108は、ネットワーク・レイテンシ(たとえば、ネットワーク・モニタ136により測定されるような)、クライアント・コンピューティング・デバイスの特性(たとえば、114)、またはサーバ・コンピュータの特性(たとえば、132)のうちの1つ以上に基づき、第2の通信チャネル(たとえば、206/208)経由での仮想デスクトップ・インスタンス126へのアクセスのうちの少なくともいくつかを、クライアント・コンピューティング・デバイス110へ提供することができ、第2の通信チャネルは、複数の通信プロトコルの第2の通信プロトコルと関連付けられる。たとえば、PSS108は、クライアント機能114、サーバ機能132、及び/またはネットワーク・モニタ136からの情報(たとえば、ネットワーク・レイテンシ情報)を使用して、第1のプロトコル・タイプの一方の通信リンク(たとえば、プロトコル1を使用するリンク202/204)から、第2のプロトコル・タイプの他方の通信リンク(たとえば、プロトコル2を使用するリンク206/208)へ通信トラフィックをオフロードする(またはスイッチオーバーする)かどうかを判定することができる。このような通信配信機能は、自動的に、またはネットワーク管理者の承認時に(たとえば、ポータル141を介して)実行されることが可能である。
図9は、記述された技術革新を実施することができる適切なコンピューティング環境の一般化された実施例を描写する。図9を参照して、コンピューティング環境900は、多様な汎用または専用コンピューティング・システムで技術革新を実施することができるため、使用または機能の範囲について何らの制限も示唆しようとするものではない。たとえば、コンピューティング環境900は、さまざまなコンピューティング・デバイス(たとえば、デスクトップ・コンピュータ、ラップトップ・コンピュータ、サーバ・コンピュータ、タブレット・コンピュータなど)のうちのいずれかからなることが可能である。
図9を参照して、コンピューティング環境900は、1つ以上の処理ユニット910、915、及びメモリ920、925を含む。図9において、この基本的な構成930は、破線内に含まれる。処理ユニット910、915は、コンピュータ実行可能命令を実行する。処理ユニットは、汎用の中央処理装置(CPU)、特定用途向け集積回路(ASIC)内のプロセッサ、または任意の他のタイプのプロセッサであることが可能である。マルチプロセッシング・システムにおいて、複数の処理ユニットは、処理能力を高めるコンピュータ実行可能命令を実行する。たとえば、図9は、中央処理装置910と、グラフィックス・プロセッシング・ユニットまたはコプロセッシング・ユニット915とを示す。有形のメモリ920、925は、処理ユニット(複数可)によりアクセス可能な、揮発性メモリ(たとえば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(たとえば、ROM、EEPROM、フラッシュ・メモリなど)、またはこれら2つのいくつかの組合せからなり得る。メモリ920、925は、処理ユニット(複数可)による実行に適切なコンピュータ実行可能命令の形式で、本明細書に記述された1つ以上の技術革新(たとえば、機能性)を実装するソフトウェア980を格納する。
コンピューティング・システムは、追加の特徴を有することができる。たとえば、コンピューティング環境900は、ストレージ940、1つ以上の入力デバイス950、1つ以上の出力デバイス960、及び1つ以上の通信接続970を含む。バス、コントローラ、またはネットワークのような、相互接続メカニズム(示されない)は、コンピューティング環境900のコンポーネントを相互接続する。一般的に、オペレーティング・システム・ソフトウェア(示されない)は、コンピューティング環境900内で実行する他のソフトウェアについての動作環境を提供し、コンピューティング環境900のコンポーネントのアクティビティを調整する。
有形のストレージ940は、取り外し可能であっても、取り外し不可能であってもよく、磁気ディスク、磁気テープ若しくはカセット、CD−ROM、DVD、または非一時的な方式で情報を格納するために使用されることが可能であり、コンピューティング環境900内でアクセスされることが可能である、任意の他の媒体を含む。ストレージ940は、本明細書に記述された1つ以上の技術革新を実施するソフトウェア980についての命令を格納する。
入力デバイス(複数可)950は、コンピューティング環境900へ入力を提供する、キーボード、マウス、ペン、若しくはトラックボールのようなタッチ入力デバイス、音声入力デバイス、走査デバイス、または別のデバイスからなり得る。出力デバイス(複数可)960は、コンピューティング環境900からの出力を提供する、ディスプレイ、プリンタ、スピーカ、CDライター、または別のデバイスからなり得る。
通信接続(複数可)970は、別のコンピューティング・エンティティへ通信媒体を介した通信を可能にする。通信媒体は、変調されたデータ信号の、コンピュータ実行可能命令、オーディオ若しくはビデオ入力若しくは出力、または他のデータのような情報を伝える。変調されたデータ信号は、その特性セットのうちの1つ以上を含む信号である、またはこの信号の情報を符号化するような方式で変更される信号である。限定されないが、実施例として、通信媒体は、電気、光学、RF、または他のキャリアを使用することが可能である。
開示された方法のうちのいくつかの操作を便宜的な提示のために特定の順序で記述するが、以下に記載される特定の言語が特定の順序を要求しない限り、説明のこの方式が並べ替えを包含することを理解するであろう。たとえば、順次に記述された操作は、いくつかの事例で、並べ替えられる、または同時に実行されることが可能である。さらに、簡略のために、添付された図面は、開示された方法を他の方法と併せて使用することが可能であるさまざまな方式を示さない可能性がある。
開示された方法のいずれかは、1つ以上のコンピュータ可読記憶媒体(たとえば、1つ以上の光学媒体ディスク、揮発性メモリ・コンポーネント(DRAMまたはSRAMのような)、または不揮発性メモリ・コンポーネント(フラッシュ・メモリ、またはハード・ドライブのような))上に格納されたコンピュータ実行可能命令として実装され、コンピュータ(たとえば、スマートフォン、またはコンピューティング・ハードウェアを含む他のモバイル・デバイスを含む、いずれかの市販のコンピュータ)上で実行されることが可能である。コンピュータ可読記憶媒体との用語は、信号及び搬送波のような通信接続を含まない。開示された実施形態の実施中に作成され使用される任意のデータと同様に、開示された技術を実施するためのコンピュータ実行可能命令のいずれかは、1つ以上のコンピュータ可読記憶媒体上に格納されることが可能である。コンピュータ実行可能命令は、たとえば、ウェブ・ブラウザ、または他のソフトウェア・アプリケーション(リモート・コンピューティング・アプリケーションのような)を介してアクセスされる、またはダウンロードされる専用ソフトウェア・アプリケーション、またはソフトウェア・アプリケーションの部分であることが可能である。このようなソフトウェアは、たとえば、1つ以上のネットワーク・コンピュータを使用して、単一のローカル・コンピュータ(たとえば、任意の適切な市販のコンピュータ)上で、またはネットワーク環境(たとえば、インターネット、ワイド・エリア・ネットワーク、ローカル・エリア・ネットワーク、顧客サーバ・ネットワーク(クラウド・コンピューティング・ネットワークのような)、または他のこのようなネットワークを介して)内で実行されることが可能である。
明確にするために、ソフトウェア・ベースの実装の特定の選択された態様のみを記述する。当該技術で既知である他の詳細は、省略される。たとえば、開示された技術がいずれかの特定のコンピュータ言語またはプログラムに限定されないことを理解するであろう。たとえば、開示された技術は、C++、Java(登録商標)、Perl、JavaScript(登録商標)、Adobe Flash(登録商標)、または任意の他の適切なプログラミング言語で書き込まれたソフトウェアにより実施されることが可能である。同様に、開示された技術は、任意の特定のコンピュータ、またはハードウェアのタイプに限定されない。適切なコンピュータ及びハードウェアの特定の詳細は、既知であり、本開示で詳細に記載される必要がない。
ソフトウェアの代わりに、1つ以上のハードウェア・ロジック・コンポーネントにより、少なくとも部分的に、本明細書に記述された任意の機能性を実行することが可能であることもよく理解するであろう。たとえば、制限なしで、使用されることが可能であるハードウェア・ロジック・コンポーネントの例示的なタイプは、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準品(ASSP)、システムオンチップ(SOC)・システム、コンプレックス・プログラマブル・ロジック・デバイス(CPLD)などを含む。
さらに、ソフトウェア・ベースの実施形態(たとえば、コンピュータに開示された方法のいずれかを実行させるためのコンピュータ実行可能命令を含む)のいずれかは、適切な通信手段を介してアップロードされる、ダウンロードされる、または遠隔でアクセスされることが可能である。これらのような適切な通信手段は、たとえば、インターネット、ワールド・ワイド・ウェブ、イントラネット、ソフトウェア・アプリケーション、ケーブル(光ファイバ・ケーブルを含む)、磁気通信、電磁通信(RF、マイクロ波、及び赤外線通信を含む)、電子通信、または他のこのような通信手段を含む。
本開示の実施形態は、以下の条項を考慮して記述されることが可能である。
1.サービス・プロバイダ環境内の仮想デスクトップ・インスタンスについての通信プロトコルを選択する方法であって、
クライアント・コンピューティング・デバイスへ、第1の通信プロトコルと関連付けられた第1の通信チャネルを使用して、前記サービス・プロバイダ環境内のサーバ・コンピュータ上で実行される仮想デスクトップ・インスタンスへのアクセスを提供し、
前記クライアント・コンピューティング・デバイスのユーザから機能についての要求を検出し、要求された前記機能が前記第1の通信プロトコルによりサポートされず、
要求された前記機能に基づき、複数の利用可能な通信プロトコルから第2の通信プロトコルを選択し、前記第2の通信プロトコルが要求された前記機能をサポートし、
前記第2の通信プロトコルを使用するように前記ユーザに権限付与するかどうかを検証し、
検証が成功すると、前記第1の通信チャネルを使用して前記仮想デスクトップ・インスタンスへのアクセスを維持しながら、前記第2の通信プロトコルを使用して前記サーバ・コンピュータと前記クライアント・コンピューティング・デバイスとの間に第2の通信チャネルを確立する、
ことを含む、前記方法。
2.前記クライアント・コンピューティング・デバイス、及び前記サーバ・コンピュータの少なくとも1つの特性と、
前記サービス・プロバイダ環境と関連付けられたネットワーク・レイテンシと
を示す情報を受信する、
ことをさらに含む、条項1に記載の前記方法。
3.前記ネットワーク・レイテンシ、
前記クライアント・コンピューティング・デバイスの前記少なくとも1つの特性、または
前記サーバ・コンピュータの前記少なくとも1つの特性、
のうちの1つ以上に基づき前記第2の通信チャネルを使用して、前記第1の通信チャネルを終了し、前記仮想デスクトップ・インスタンスへのアクセスを提供するかどうかを判定する、
ことをさらに含む、条項2に記載の前記方法。
4.前記複数の利用可能な通信プロトコルは、前記サービス・プロバイダ環境内のプロトコル決定テーブルに列挙され、1つ以上の機能と関連付けられた各前記複数の利用可能な通信プロトコルは、前記クライアント・コンピューティング・デバイスにより実行される、先行条項のいずれか1項に記載の前記方法。
5.前記検証することは、
前記ユーザの顧客アカウント・ポリシーにアクセスし、前記ユーザが前記プロトコル決定テーブル内の前記複数の利用可能な通信プロトコルのうちの1つ以上を使用するように権限付与されているかどうかを判定する、
ことをさらに含む、条項4に記載の前記方法。
6.要求された前記機能は、
マルチメディア・データ処理機能、
USBデータ処理機能、
仮想チャネル・データ処理機能、または
キーボード・データ処理機能、
のうちの少なくとも1つからなる、先行条項のいずれか1項に記載の前記方法。
7.命令を含むコンピュータ可読記憶媒体であって、前記命令は、実行時に、コンピュータ・システムに、
クライアント・コンピューティング・デバイスへ、複数の通信プロトコルの第1の通信プロトコルと関連付けられた第1の通信チャネルを使用して、サーバ・コンピュータ上で実行される仮想デスクトップ・インスタンスへのアクセスを提供させ、
前記クライアント・コンピューティング・デバイスへ、1つ以上のネットワーク・レイテンシに基づき第2の通信チャネルを介した前記仮想デスクトップ・インスタンスへの前記アクセスのうちの少なくともいくつかを提供させ、
前記第2の通信チャネルは、前記複数の通信プロトコルの第2の通信プロトコルと関連付けられている、
前記コンピュータ可読記憶媒体。
8.前記命令は、実行時に、前記コンピュータ・システムにさらに、
前記第1の通信チャネルを終了させ、前記第2の通信プロトコルと関連付けられた前記第2の通信チャネルへ前記仮想デスクトップ・インスタンスへの前記アクセスを提供させる、
条項7に記載の前記コンピュータ可読記憶媒体。
9.前記命令は、実行時に、前記コンピュータ・システムにさらに、
前記第1の通信チャネルを使用して前記クライアント・コンピューティング・デバイスへ複数の機能のうちの少なくとも1つを提供しながら、前記第2の通信チャネルへ、前記仮想デスクトップ・インスタンスへの前記アクセスと関連付けられた、前記複数の機能のうちの少なくとももう1つをスイッチオーバーさせる、
条項7または8に記載の前記コンピュータ可読記憶媒体。
10.前記複数の機能は、
マルチメディア・データ処理機能、
USBデータ処理機能、
仮想チャネル・データ処理機能、または
キーボード・データ処理機能、
のうちの少なくとも1つを含む、条項9に記載の前記コンピュータ可読記憶媒体。
11.前記命令は、実行時に、前記第1の通信プロトコル及び第2の通信プロトコルを前記コンピュータ・システムに同時にさらに使用させ、前記仮想デスクトップ・インスタンスへの前記アクセスを提供する、条項7〜10のいずれか1項に記載の前記コンピュータ可読記憶媒体。
12.前記複数の通信プロトコルは、
PC−over−IP(PCoIP)通信プロトコル、
ウェブ実時間通信(WebRTC)プロトコル、または
リモート・デスクトップ・プロトコル(RDP)、
のうちの少なくとも1つを含む、条項7〜11のいずれか1項に記載の前記コンピュータ可読記憶媒体。
13.前記クライアント・コンピューティング・デバイスの前記少なくとも1つの特性、または前記サーバ・コンピュータの前記少なくとも1つの特性は、
少なくとも1つのCPU特性、
暗号化デバイスまたは復号デバイスの可用性、
メモリ容量、または
グラフィックス・プロセッシング・ユニット(GPU)の可用性、
のうちの少なくとも1つを含む、条項7〜12のいずれか1項に記載の前記コンピュータ可読記憶媒体。
14.前記命令は、実行時に、前記コンピュータ・システムにさらに、
前記クライアント・コンピューティング・デバイスから機能についての要求を検出させ、要求された前記機能が前記第1の通信プロトコルによりサポートされない、
条項7〜13のいずれかに記載の前記コンピュータ可読記憶媒体。
15.前記命令は、実行時に、前記コンピュータ・システムにさらに、
要求された前記機能が前記第2の通信プロトコルによりサポートされることを検証させ、
検証が成功すると、前記第2の通信チャネルを使用して前記クライアント・コンピューティング・デバイスへ要求された前記機能を提供させる、
条項14に記載の前記コンピュータ可読記憶媒体。
16.前記命令は、実行時に、前記コンピュータ・システムにさらに、
要求された前記機能が前記第2の通信プロトコルによりサポートされるかどうかを判定させ、
要求された前記機能が前記第2の通信プロトコルによりサポートされないと判定すると、
要求された前記機能に基づき、前記複数の通信プロトコルから第3の通信プロトコルを選択させ、前記第3の通信プロトコルが要求された前記機能をサポートし、
前記第1の通信チャネル及び第2の通信チャネルを使用して前記仮想デスクトップ・インスタンスへのアクセスを維持しながら、前記機能を実行する前記第3の通信プロトコルを使用して前記サーバ・コンピュータと前記クライアント・コンピューティング・デバイスとの間に第3の通信チャネルを確立させる、
条項14または15に記載の前記コンピュータ可読記憶媒体。
17.ネットワークを介して互いに結合されてサービス・プロバイダ環境を形成する複数のサーバ・コンピュータと、
前記複数のサーバ・コンピュータへ、及びクライアント・コンピューティング・デバイスへ通信可能に結合されたプロトコル選択サービスと
を備え、
前記サーバ・コンピュータの少なくとも一部は、仮想デスクトップ・インスタンスを実行し、
前記プロトコル選択サービスは、
前記仮想デスクトップ・インスタンスのうちの1つについての第1の機能を前記クライアント・コンピューティング・デバイスへ提供し、前記第1の機能が第1の通信プロトコルを使用して提供され、
前記仮想デスクトップ・インスタンスのうちの前記1つについての第2の機能を前記クライアント・デバイスへ提供し、前記第2の機能が第2の通信プロトコルを使用して提供され、前記第1の機能と同時に提供され、前記第1の通信プロトコルと第2の通信プロトコルとが異なるプロトコルである、
ように動作可能である、
システム。
18.前記プロトコル選択サービスは、
前記クライアント・コンピューティング・デバイスから、または前記複数のサーバ・コンピュータから前記第2の機能についての要求を検出し、前記第2の機能が前記第1の通信プロトコルによりサポートされず、
前記第2の機能についての前記要求に基づき前記第2の通信プロトコルを選択し、
前記第2の通信プロトコルを使用して、前記複数のサーバ・コンピュータと前記クライアント・コンピューティング・デバイスとの間に通信チャネルを確立する、
ようにさらに動作可能である、条項17に記載の前記システム。
19.前記プロトコル選択サービスは、
前記クライアント・コンピューティング・デバイスの少なくとも1つの特性を示す情報、前記複数のサーバ・コンピュータのうちの1つ以上の少なくとも1つの特性を示す情報、または前記サービス・プロバイダ環境と関連付けられたネットワーク・レイテンシを示す情報を受信する、
ようにさらに動作可能である、条項17または18に記載の前記システム。
20.前記プロトコル選択サービスは、前記受信した情報に基づき前記第1の通信プロトコルを使用して停止するかどうかを判定するようにさらに動作可能である、条項19に記載の前記システム。
開示された方法、装置、及びシステムは、いかなる場合も限定的であると解釈されるべきではない。代替に、本開示は、単独で、ならびに互いとのさまざまな組合せ、及び副組合せで、さまざまな開示された実施形態のすべての新規な、かつ非自明性の特徴及び態様を対象とする。開示された方法、装置、及びシステムは、任意の特定の態様、または特徴、またはそれらの組合せに限定されず、開示された実施形態も、任意の1つ以上の特定の利点が存在すること、または問題が解決されることを要求しない。
開示された本発明の原理を適用することができる、多くの可能な実施形態を考慮して、図示された実施形態が本発明の好ましい実施例のみであり、本発明の範囲を限定すると解釈されないことを認識するであろう。むしろ、本発明の範囲は、以下の特許請求の範囲により定められる。したがって、本発明として請求されるものは、これらの特許請求の範囲内に入るすべてのものである。

Claims (10)

  1. 命令を含むコンピュータ可読記憶媒体であって、前記命令は、実行時に、コンピュータ・システムに、
    クライアント・コンピューティング・デバイスへ、複数の通信プロトコルの第1の通信プロトコルと関連付けられた第1の通信チャネルを使用して、サービス・プロバイダのサーバ・コンピュータ上で実行される仮想デスクトップ・インスタンスへのアクセスを提供させ、
    前記複数の通信プロトコルの第2の通信プロトコルと関連付けられている第2の通信チャネルを介し前記仮想デスクトップ・インスタンスへの前記アクセスを前記クライアント・コンピューティング・デバイスに提供させ、
    前記サービス・プロバイダの前記サーバ・コンピュータと前記サービス・プロバイダのエンドポイント・サービスとが互いに、前記第1の通信プロトコル及び前記第2の通信プロトコルを同時に使って通信する
    前記コンピュータ可読記憶媒体。
  2. 前記命令は、実行時に、前記コンピュータ・システムにさらに、
    前記第1の通信チャネルを終了させ、前記第2の通信プロトコルと関連付けられた前記第2の通信チャネルへ前記仮想デスクトップ・インスタンスへの前記アクセスを提供させる、
    請求項1に記載の前記コンピュータ可読記憶媒体。
  3. 前記命令は、実行時に、前記コンピュータ・システムにさらに、
    前記第1の通信チャネルを使用して前記クライアント・コンピューティング・デバイスへ複数の機能のうちの少なくとも1つを提供しながら、前記第2の通信チャネルへ、前記仮想デスクトップ・インスタンスへの前記アクセスと関連付けられた、前記複数の機能のうちの少なくとも別の1つをスイッチオーバーさせる、
    請求項1または請求項2に記載の前記コンピュータ可読記憶媒体。
  4. 前記複数の機能は、
    マルチメディア・データ処理機能、
    USBデータ処理機能、
    仮想チャネル・データ処理機能、または
    キーボード・データ処理機能、
    のうちの少なくとも1つを含む、請求項3に記載の前記コンピュータ可読記憶媒体。
  5. 前記命令は、実行時に、前記コンピュータ・システムにさらに、前記第1の通信プロトコル及び第2の通信プロトコルを同時に使用させ、前記仮想デスクトップ・インスタンスへの前記アクセスを提供する、請求項1から請求項4のいずれか1項に記載の前記コンピュータ可読記憶媒体。
  6. 前記複数の通信プロトコルは、
    PC−over−IP(PCoIP)通信プロトコル、
    ウェブ実時間通信(WebRTC)プロトコル、または
    リモート・デスクトップ・プロトコル(RDP)、
    のうちの少なくとも1つを含む、請求項1から請求項5のいずれか1項に記載の前記コンピュータ可読記憶媒体。
  7. 前記命令は、実行時に、前記コンピュータ・システムにさらに、
    前記クライアント・コンピューティング・デバイスから機能についての要求を検出させ、要求された前記機能が前記第1の通信プロトコルによりサポートされない、
    請求項1から請求項6のいずれか1項に記載の前記コンピュータ可読記憶媒体。
  8. 前記命令は、実行時に、前記コンピュータ・システムにさらに、
    要求された前記機能が前記第2の通信プロトコルによりサポートされることを検証させ、
    検証が成功すると、前記第2の通信チャネルを使用して、要求された前記機能を前記クライアント・コンピューティング・デバイスへ提供させる、
    請求項7に記載の前記コンピュータ可読記憶媒体。
  9. 前記命令は、実行時に、前記コンピュータ・システムにさらに、
    要求された前記機能が前記第2の通信プロトコルによりサポートされるかどうかを判定させ、
    要求された前記機能が前記第2の通信プロトコルによりサポートされないと判定すると、
    要求された前記機能に基づき、前記複数の通信プロトコルから第3の通信プロトコルを選択させ、前記第3の通信プロトコルが要求された前記機能をサポートし、
    前記第1の通信チャネル及び第2の通信チャネルを使用して前記仮想デスクトップ・インスタンスへのアクセスを維持しながら、前記機能を実行する前記第3の通信プロトコルを使用して、前記サーバ・コンピュータ、及び前記クライアント・コンピューティング・デバイス間に第3の通信チャネルを確立させる、
    請求項7または請求項8に記載の前記コンピュータ可読記憶媒体。
  10. サービス・プロバイダ環境内で仮想デスクトップ・インスタンスについての通信プロトコルを選択する方法であって、
    クライアント・コンピューティング・デバイスへ、第1の通信プロトコルと関連付けられた第1の通信チャネルを使用して、前記サービス・プロバイダ環境内のサーバ・コンピュータ上で実行される仮想デスクトップ・インスタンスへのアクセスを提供し、
    前記クライアント・コンピューティング・デバイスのユーザから機能についての要求を検出し、要求された前記機能が前記第1の通信プロトコルによりサポートされず、
    要求された前記機能に基づき、複数の利用可能な通信プロトコルから第2の通信プロトコルを選択し、前記第2の通信プロトコルが要求された前記機能をサポートし、
    前記ユーザが前記第2の通信プロトコルを使用するように権限付与されるかどうかを検証し、
    検証が成功すると、前記第1の通信チャネルを使用して前記仮想デスクトップ・インスタンスへのアクセスを維持しながら、前記第2の通信プロトコルを使用して前記サーバ・コンピュータと前記クライアント・コンピューティング・デバイスとの間に第2の通信チャネルを確立し、
    前記サービス・プロバイダ環境内の前記サーバ・コンピュータと前記サービス・プロバイダ環境内のエンドポイント・サービスとが互いに、前記第1の通信プロトコル及び前記第2の通信プロトコルを同時に使って通信することを含む、前記方法。
JP2017549743A 2015-03-25 2016-03-22 仮想デスクトップ・インフラストラクチャにおける複数のプロトコルの使用 Active JP6621838B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/668,543 US10911574B2 (en) 2015-03-25 2015-03-25 Using multiple protocols in a virtual desktop infrastructure
US14/668,543 2015-03-25
PCT/US2016/023633 WO2016154226A1 (en) 2015-03-25 2016-03-22 Using multiple protocols in a virtual desktop infrastructure

Publications (2)

Publication Number Publication Date
JP2018518728A JP2018518728A (ja) 2018-07-12
JP6621838B2 true JP6621838B2 (ja) 2019-12-18

Family

ID=55640988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017549743A Active JP6621838B2 (ja) 2015-03-25 2016-03-22 仮想デスクトップ・インフラストラクチャにおける複数のプロトコルの使用

Country Status (6)

Country Link
US (1) US10911574B2 (ja)
EP (1) EP3274819A1 (ja)
JP (1) JP6621838B2 (ja)
CN (1) CN107683461B (ja)
CA (1) CA2980737C (ja)
WO (1) WO2016154226A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10999012B2 (en) 2014-11-07 2021-05-04 Strong Force Iot Portfolio 2016, Llc Packet coding based network communication
US9825733B1 (en) 2014-11-07 2017-11-21 Speedy Packets, Inc. Packet coding based network communication
US10530700B2 (en) 2015-07-07 2020-01-07 Strong Force Iot Portfolio 2016, Llc Message reordering timers
US9992126B1 (en) 2014-11-07 2018-06-05 Speedy Packets, Inc. Packet coding based network communication
US10320526B1 (en) 2014-11-07 2019-06-11 Strong Force Iot Portfolio 2016, Llc Packet coding based network communication
US9992088B1 (en) 2014-11-07 2018-06-05 Speedy Packets, Inc. Packet coding based network communication
US10397233B2 (en) 2015-04-20 2019-08-27 Bomgar Corporation Method and apparatus for credential handling
US10229262B2 (en) 2015-04-20 2019-03-12 Bomgar Corporation Systems, methods, and apparatuses for credential handling
US20180062936A1 (en) * 2015-05-15 2018-03-01 Hewlett-Packard Development Company, L.P. Display of Server Capabilities
US10757079B2 (en) * 2016-01-12 2020-08-25 Jens Schmidt Method and system for controlling remote session on computer systems using a virtual channel
EP3414877B1 (en) * 2016-02-10 2019-07-17 Telefonaktiebolaget LM Ericsson (publ) Technique for transport protocol selection and setup of a connection between a client and a server
US10044810B2 (en) * 2016-03-31 2018-08-07 Dell Products L.P. Selectively implementing reliability mechanisms based on the type of USB device that is redirected over a remote session
US11507064B2 (en) 2016-05-09 2022-11-22 Strong Force Iot Portfolio 2016, Llc Methods and systems for industrial internet of things data collection in downstream oil and gas environment
US10382475B2 (en) * 2016-07-01 2019-08-13 Genesys Telecommunications Laboratories, Inc. System and method for preventing attacks in communications
US10701206B2 (en) 2016-07-01 2020-06-30 Genesys Telecommunications Laboratories, Inc. System and method for contact center communications
CN108123925B (zh) * 2016-11-30 2021-07-30 中兴通讯股份有限公司 资源共享的方法、装置及***
US11587196B2 (en) * 2017-04-10 2023-02-21 Dell Products L.P. Information handling system remote desktop protocol selection
US20190047581A1 (en) * 2017-08-14 2019-02-14 GM Global Technology Operations LLC Method and apparatus for supporting mission-critical applications via computational cloud offloading
WO2019209315A1 (en) * 2018-04-27 2019-10-31 Hewlett-Packard Development Company, L.P. Messages based on input/output device signals to virtual computers
CN108989102A (zh) * 2018-07-05 2018-12-11 广州禹龙信息科技有限公司 双协议桌面云的配置方法及***
US20200099738A1 (en) * 2018-09-24 2020-03-26 Citrix Systems, Inc. Systems and methods for bridge protocol between diverse applications
WO2020167216A1 (en) * 2019-02-14 2020-08-20 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatus for transmitting capability information
KR102461918B1 (ko) 2019-10-11 2022-11-02 구글 엘엘씨 차량용 확장가능 컴퓨팅 아키텍처
US11429395B2 (en) * 2020-01-02 2022-08-30 Jpmorgan Chase Bank, N.A. Peripheral device support in thin client environments
CN113301004B (zh) * 2020-06-17 2023-05-09 阿里巴巴集团控股有限公司 数据处理方法、装置、通信方法和单网卡虚拟机
US11516276B1 (en) * 2022-01-04 2022-11-29 Vmware, Inc. Dynamically switching between synchronous and asynchronous communication channels
CN116015852A (zh) * 2022-12-26 2023-04-25 国网江苏省电力有限公司扬州供电分公司 一种基于国家电网信息的虚拟云桌面安全管理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984130B2 (en) 2006-07-14 2011-07-19 Cellco Partnership Multimedia next generation network architecture for IP services delivery based on network and user policy
US8856860B2 (en) 2006-08-18 2014-10-07 Cisco Technology, Inc. System and method for implementing policy server based application interaction manager
US10244056B2 (en) * 2009-04-15 2019-03-26 Wyse Technology L.L.C. Method and apparatus for transferring remote session data
US9137338B2 (en) * 2010-01-22 2015-09-15 Microsoft Technology Licensing, Llc Multi-link remote protocol
US8332517B2 (en) 2010-03-31 2012-12-11 Incnetworks, Inc. Method, computer program, and algorithm for computing network service value pricing based on communication service experiences delivered to consumers and merchants over a smart multi-services (SMS) communication network
US8855564B2 (en) 2011-06-07 2014-10-07 Clearcube Technology, Inc. Zero client device with integrated Bluetooth capability
US20120331032A1 (en) * 2011-06-22 2012-12-27 Microsoft Corporation Remote Presentation Session Connectionless Oriented Channel Broker
TWM438792U (en) * 2011-12-06 2012-10-01 Guo-Cheng Huang Improved structure for wrapper protector
JP6112779B2 (ja) * 2012-05-21 2017-04-12 キヤノン株式会社 データ処理装置、データ処理装置の制御方法、及びプログラム
FR3000339A1 (fr) * 2012-12-20 2014-06-27 France Telecom Procede de traitement de requetes d'acces a des services de virtualisation informatique, passerelle de virtualisation et navigateur web
US20140229608A1 (en) 2013-02-14 2014-08-14 Alcatel-Lucent Canada Inc. Parsimonious monitoring of service latency characteristics
US20140280959A1 (en) 2013-03-15 2014-09-18 Eric J. Bauer Application server instance selection based on protocol latency information
EP2813945A1 (en) 2013-06-14 2014-12-17 Tocario GmbH Method and system for enabling access of a client device to a remote desktop
US9674312B2 (en) * 2013-06-28 2017-06-06 Netapp, Inc. Dynamic protocol selection
US10440066B2 (en) * 2013-11-15 2019-10-08 Microsoft Technology Licensing, Llc Switching of connection protocol
US20160198021A1 (en) * 2015-01-02 2016-07-07 Citrix Systems, Inc. Dynamic protocol switching

Also Published As

Publication number Publication date
JP2018518728A (ja) 2018-07-12
CA2980737A1 (en) 2016-09-29
EP3274819A1 (en) 2018-01-31
CN107683461B (zh) 2021-09-17
US10911574B2 (en) 2021-02-02
CA2980737C (en) 2021-09-07
CN107683461A (zh) 2018-02-09
WO2016154226A1 (en) 2016-09-29
US20160286003A1 (en) 2016-09-29

Similar Documents

Publication Publication Date Title
JP6621838B2 (ja) 仮想デスクトップ・インフラストラクチャにおける複数のプロトコルの使用
US9485101B2 (en) Provisioning digital certificates in a network environment
US10320674B2 (en) Independent network interfaces for virtual network environments
JP6397568B2 (ja) 仮想デスクトップの移行
JP6518346B2 (ja) 分散型コンピューティング環境における仮想マシンインスタンス上のコマンドの実行
US9935937B1 (en) Implementing network security policies using TPM-based credentials
US9811365B2 (en) Migration of applications between an enterprise-based network and a multi-tenant network
US9648040B1 (en) Authorization check using a web service request
US10469390B2 (en) Load balancing with software defined network controllers
US9858105B1 (en) Service for managing custom virtual machine images
US10333901B1 (en) Policy based data aggregation
US10063445B1 (en) Detecting misconfiguration during software deployment
US9471352B1 (en) Capability based placement
US20170126699A1 (en) Location based authentication of users to a virtual machine in a computer system
US10476809B1 (en) Moving virtual machines using migration profiles
US10617955B1 (en) Testing and delivery of game design assets in a service provider environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170922

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181205

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190829

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20190904

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191120

R150 Certificate of patent or registration of utility model

Ref document number: 6621838

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250