(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-06
(45)【発行日】2022-07-14
(54)【発明の名称】コンピューティング環境内での仮想デスクトップの提供
(51)【国際特許分類】
H04L 67/133 20220101AFI20220707BHJP
G06F 3/0481 20220101ALI20220707BHJP
【FI】
H04L67/133
G06F3/0481
(21)【出願番号】P 2021521957
(86)(22)【出願日】2018-10-22
(86)【国際出願番号】 CN2018111203
(87)【国際公開番号】W WO2020082210
(87)【国際公開日】2020-04-30
【審査請求日】2021-04-22
(73)【特許権者】
【識別番号】508045099
【氏名又は名称】シトリックス・システムズ・インコーポレイテッド
【氏名又は名称原語表記】Citrix Systems,Inc.
(74)【代理人】
【識別番号】100118913
【氏名又は名称】上田 邦生
(74)【代理人】
【識別番号】100142789
【氏名又は名称】柳 順一郎
(74)【代理人】
【識別番号】100163050
【氏名又は名称】小栗 眞由美
(74)【代理人】
【識別番号】100201466
【氏名又は名称】竹内 邦彦
(72)【発明者】
【氏名】ディン, デバオ
(72)【発明者】
【氏名】ズー, キャンキャン
【審査官】羽岡 さやか
(56)【参考文献】
【文献】米国特許出願公開第2015/0003313(US,A1)
【文献】米国特許出願公開第2017/0279898(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/01
H04L 65/1083
G06F 3/0481
(57)【特許請求の範囲】
【請求項1】
仮想デスクトップを提供する方法であって、
表示機器上で動作するブラウザを介して、モバイルコンピューティングデバイスを識別するデバイス識別情報を受信することと、
前記デバイス識別情報に基づいて、前記表示機器と前記モバイルコンピューティングデバイスの間に通信経路を作成することと、
前記モバイルコンピューティングデバイスが、前記モバイルコンピューティングデバイスから仮想デスクトップサーバへの仮想デスクトップ入力と、前記仮想デスクトップサーバから前記モバイルコンピューティングデバイスへの仮想デスクトップ出力とを伝達して、前記モバイルコンピューティングデバイス上に仮想デスクトップを提供する仮想デスクトップセッションを実行している間に、前記モバイルコンピューティングデバイスから前記表示機器上で動作する前記ブラウザに前記仮想デスクトップをキャストするために、前記表示機器と前記モバイルコンピューティングデバイスの間に作成された前記通信経路を介して通信することと、
を含む方法。
【請求項2】
前記表示機器が、電子画面と、前記ブラウザを実行してブラウザウィンドウを前記電子画面に表示する制御回路と、を備え、
前記表示機器と前記モバイルコンピューティングデバイスの間に作成された前記通信経路を介して通信することが、前記モバイルコンピューティングデバイスから仮想デスクトップグラフィックスストリームを受信し、前記電子画面に表示された前記ブラウザウィンドウ内に前記仮想デスクトップグラフィックスストリームをレンダリングすることを含む請求項1に記載の方法。
【請求項3】
前記表示機器が、前記制御回路に結合されたキーボードおよび物理マウスを備え、
前記表示機器と前記モバイルコンピューティングデバイスの間に作成された前記通信経路を介して通信することが、前記ブラウザを実行する前記制御回路によってキャプチャされたキーボードイベントおよびマウスイベントを、前記通信経路を介して、前記表示機器から前記モバイルコンピューティングデバイスに送信することを含む請求項2に記載の方法。
【請求項4】
前記モバイルコンピューティングデバイスから前記仮想デスクトップグラフィックスストリームを受信し、前記電子画面に表示された前記ブラウザウィンドウ内に前記仮想デスクトップグラフィックスストリームをレンダリングすることが、前記キーボードイベントおよびマウスイベントが前記制御回路によって送信されている間に、前記モバイルコンピューティングデバイスが前記キーボードイベントおよび前記マウスイベントを前記仮想デスクトップサーバに伝達したことに応答して、前記仮想デスクトップの動作を描画するために前記電子画面上の前記ブラウザウィンドウ内に異なるデスクトップ画像を表示することを含む請求項3に記載の方法。
【請求項5】
前記仮想デスクトップサーバが前記異なるデスクトップ画像の解像度を前記表示機器の前記電子画面の画面解像度に一致させることを可能にするために、前記仮想デスクトップサーバへの伝達のために前記表示機器から前記モバイルコンピューティングデバイスに前記表示機器の前記電子画面の前記画面解像度を送信することを含む請求項4に記載の方法。
【請求項6】
前記モバイルコンピューティングデバイスが、タッチスクリーン解像度を有するタッチスクリーンを備え、
前記表示機器の前記電子画面の前記画面解像度を送信する前に、前記仮想デスクトップサーバが、前記タッチスクリーン解像度を有する第1のデスクトップ画像のセットを提供し、
前記表示機器の前記電子画面の前記画面解像度を送信することが、前記仮想デスクトップサーバに、前記第1のデスクトップ画像のセットとは異なる前記画面解像度を有する第2のデスクトップ画像のセットを提供させることを含む請求項5に記載の方法。
【請求項7】
前記ブラウザを実行する前記制御回路によってキャプチャされた前記キーボードイベントおよび前記マウスイベントを、前記通信経路を介して前記表示機器から前記モバイルコンピューティングデバイスに送信することが、前記ブラウザウィンドウ内で検出されたキーボードイベントおよびマウスイベントを前記モバイルコンピューティングデバイスにリダイレクトすることを含む請求項3に記載の方法。
【請求項8】
前記モバイルコンピューティングデバイスから前記仮想デスクトップグラフィックスストリームを受信し、前記電子画面に表示された前記ブラウザウィンドウ内に前記仮想デスクトップグラフィックスストリームをレンダリングすることが、前記ブラウザウィンドウ内で検出された前記キーボードイベントおよび前記マウスイベントが前記モバイルコンピューティングデバイスにリダイレクトされている間に、前記ブラウザウィンドウ内にユーザアクティビティを表示することを含む請求項7に記載の方法。
【請求項9】
前記表示機器上で動作する前記ブラウザを介して前記デバイス識別情報を受信することが、
発見スクリプトを含む第1のウェブページをロードすることと、
前記発見スクリプトを実行して、前記モバイルコンピューティングデバイスを識別する前記デバイス識別情報を取得することと、
を含む請求項2に記載の方法。
【請求項10】
前記デバイス識別情報が、コンピュータネットワーク上で前記モバイルコンピューティングデバイスを一意に識別するネットワークアドレスを含み、
前記発見スクリプトを実行して、前記モバイルコンピューティングデバイスを識別する前記デバイス識別情報を取得することが、
前記表示機器のカメラを使用して前記モバイルコンピューティングデバイスのタッチスクリーンに表示された画像をキャプチャすることと、
前記モバイルコンピューティングデバイスの前記タッチスクリーンに表示された前記キャプチャされた画像から前記ネットワークアドレスを導出することと、
を含む請求項9に記載の方法。
【請求項11】
前記表示機器と前記モバイルコンピューティングデバイスの間に前記通信経路を作成することが、前記表示機器上で動作する前記ブラウザが、前記表示機器上で動作する前記ブラウザと前記モバイルコンピューティングデバイスの間にウェブソケット通信を確立することを可能にするウェブソケット動作を実行することを含む請求項10に記載の方法。
【請求項12】
前記表示機器と前記モバイルコンピューティングデバイスの間に前記通信経路を作成したことに応答して、前記第1のウェブページの代わりに、レンダリングスクリプトを含む第2のウェブページをロードすることを含む請求項9に記載の方法。
【請求項13】
前記モバイルコンピューティングデバイスから前記仮想デスクトップグラフィックスストリームを受信し、前記電子画面に表示された前記ブラウザウィンドウ内に前記仮想デスクトップグラフィックスストリームをレンダリングすることが、前記第2のウェブページの前記レンダリングスクリプトに従って、前記仮想デスクトップサーバによって生成された異なるデスクトップ画像を前記電子画面に表示された前記ブラウザウィンドウに表示することを含む請求項12に記載の方法。
【請求項14】
前記仮想デスクトップサーバによって生成された前記異なるデスクトップ画像を前記電子画面に表示された前記ブラウザウィンドウに表示することが、前記表示機器の前記電子画面が前記モバイルコンピューティングデバイスによって拡張画面として認識されている間に、前記仮想デスクトップグラフィックスストリームをデコードして、前記異なるデスクトップ画像を前記第2のウェブページ内にレンダリングすることを含む請求項13に記載の方法。
【請求項15】
コンピュータネットワークに接続するように構築および構成される通信インターフェースと、
メモリと、
前記通信インターフェースおよび前記メモリに結合される制御回路と、
を備え、
前記制御回路が、
表示機器上で動作するブラウザを介して、モバイルコンピューティングデバイスを識別するデバイス識別情報を受信し、
前記デバイス識別情報に基づいて、前記通信インターフェースを介して前記表示機器と前記モバイルコンピューティングデバイスの間に通信経路を作成し、
前記モバイルコンピューティングデバイスが、前記モバイルコンピューティングデバイスから仮想デスクトップサーバへの仮想デスクトップ入力と、前記仮想デスクトップサーバから前記モバイルコンピューティングデバイスへの仮想デスクトップ出力とを伝達して、前記モバイルコンピューティングデバイス上に仮想デスクトップを提供する仮想デスクトップセッションを実行している間に、前記モバイルコンピューティングデバイスから前記表示機器上で動作する前記ブラウザに前記仮想デスクトップをキャストするために、前記表示機器と前記モバイルコンピューティングデバイスの間に作成された前記通信経路を介して通信するように構成される表示機器。
【請求項16】
電子画面を備え、
前記制御回路が、前記ブラウザを実行してブラウザウィンドウを前記電子画面に表示し、
前記制御回路が、前記表示機器と前記モバイルコンピューティングデバイスの間に作成された前記通信経路を介して通信する場合に、前記モバイルコンピューティングデバイスから仮想デスクトップグラフィックスストリームを受信し、前記電子画面に表示された前記ブラウザウィンドウ内に前記仮想デスクトップグラフィックスストリームをレンダリングするように構築および構成される請求項15に記載の表示機器。
【請求項17】
前記制御回路に結合されたキーボードおよび物理マウスを備え、
前記制御回路が、前記表示機器と前記モバイルコンピューティングデバイスの間に作成された前記通信経路を介して通信する場合に、
前記キーボードのユーザ操作に応じたキーボードイベントと、前記物理マウスのユーザ操作に応じたマウスイベントとをキャプチャし、
前記通信経路を介して前記キーボードイベントおよび前記マウスイベントを送信する
ように構築および構成される請求項16に記載の表示機器。
【請求項18】
仮想デスクトップを提供するための一連の命令を記憶する非一時的コンピュータ可読媒体を有するコンピュータプログラム製品であって、前記一連の命令が、表示機器によって実行された場合に、前記表示機器に、
表示機器上で動作するブラウザを介して、モバイルコンピューティングデバイスを識別するデバイス識別情報を受信することと、
前記デバイス識別情報に基づいて、前記表示機器と前記モバイルコンピューティングデバイスの間に通信経路を作成することと、
前記モバイルコンピューティングデバイスが、前記モバイルコンピューティングデバイスから仮想デスクトップサーバへの仮想デスクトップ入力と、前記仮想デスクトップサーバから前記モバイルコンピューティングデバイスへの仮想デスクトップ出力とを伝達して、前記モバイルコンピューティングデバイス上に仮想デスクトップを提供する仮想デスクトップセッションを実行している間に、前記モバイルコンピューティングデバイスから前記表示機器上で動作する前記ブラウザに前記仮想デスクトップをキャストするために、前記表示機器と前記モバイルコンピューティングデバイスの間に作成された前記通信経路を介して通信することと、
の方法を実行させるコンピュータプログラム製品。
【請求項19】
前記表示機器が、電子画面と、前記ブラウザを実行してブラウザウィンドウを前記電子画面に表示する制御回路と、を備え、前記電子画面が、前記モバイルコンピューティングデバイスのタッチスクリーンよりも大きく、
前記表示機器と前記モバイルコンピューティングデバイスの間に作成された前記通信経路を介して通信することが、前記モバイルコンピューティングデバイスから仮想デスクトップグラフィックスストリームを受信し、前記電子画面に表示された前記ブラウザウィンドウ内に前記仮想デスクトップグラフィックスストリームをレンダリングすることを含む請求項18に記載のコンピュータプログラム製品。
【請求項20】
前記表示機器が、前記制御回路に結合されたキーボードおよび物理マウスを備え、
前記表示機器と前記モバイルコンピューティングデバイスの間に作成された前記通信経路を介して通信することが、前記ブラウザを実行する前記制御回路によってキャプチャされたキーボードイベントおよびマウスイベントを、前記通信経路を介して前記表示機器から前記モバイルコンピューティングデバイスに送信することを含む請求項19に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【0001】
ユーザは、ユーザデバイス上で仮想デスクトップクライアントを実行して、仮想デスクトップサーバによって提供される仮想デスクトップにアクセスする。仮想デスクトップは、ドキュメントエディタ、電子メールクライアント、ウェブブラウザなどの様々な仮想デスクトップアプリケーションを含み得る。
【0002】
仮想デスクトップサーバが仮想デスクトップをユーザデバイスに提供する前に、ユーザデバイスは、ユーザデバイスのモニタの解像度を仮想デスクトップサーバに伝える。このような伝達により、仮想デスクトップサーバは、ユーザデバイスに適切に表示されるように適切にサイズ設定された仮想デスクトップグラフィックスを提供することが可能になる。
【発明の概要】
【0003】
改善された技術は、専用のウェブページのセットをロードするブラウザを実行する表示機器(たとえば、デスクトップコンピュータ、スマートテレビ、会議室用のスマートプロジェクションシステムなど)上に仮想デスクトップを提供することを対象とする。専用のウェブページのセットがロードされると、表示機器は、仮想デスクトップを既に起動しているモバイルコンピューティングデバイス(たとえば、タブレット、スマートフォン、ラップトップなど)との通信チャネルを作成する。次いで、表示機器およびモバイルコンピューティングデバイスは、通信チャネルを介してこれらの動作を連携させて、その仮想デスクトップをモバイルコンピューティングデバイスから表示機器に「キャスト」することを可能にする。このような動作により、表示機器で発生したキーボードイベントおよび物理マウスイベントなどのユーザ入力を、モバイルコンピューティングデバイス上で起動された仮想デスクトップへの入力としてリダイレクトし、仮想デスクトップグラフィックスストリームをモバイルコンピューティングデバイスから表示機器に伝達して、表示機器によって表示することが可能になる。さらに、モバイルコンピューティングデバイスは、仮想デスクトップをホストする仮想デスクトップサーバに表示機器の画面の解像度を伝えて、仮想デスクトップサーバが仮想デスクトップグラフィックスストリームを、表示機器によって適切に表示されるようにサイズ設定することができる。
【0004】
仮想デスクトップの「キャスト」という用語は、本明細書で使用する場合、仮想デスクトップが起動されたあるデバイス(たとえば、仮想デスクトップクライアントデバイス)から他のデバイス(たとえば、表示機器)に仮想デスクトップを投影することを指すことを理解されたい。また、ユーザ入力を表示機器に入力して、表示機器から仮想デスクトップをリモートで制御し得る(たとえば、仮想デスクトップクライアントデバイスが次いでユーザ入力を、仮想デスクトップをホストする仮想デスクトップサーバに中継する場合)。
【0005】
一実施形態は、仮想デスクトップを提供する方法を対象とする。この方法は、表示機器上で動作するブラウザを介してデバイス識別情報を受信することを含む。デバイス識別情報はモバイルコンピューティングデバイスを識別する。この方法は、デバイス識別情報に基づいて、表示機器とモバイルコンピューティングデバイスの間に通信経路を作成することをさらに含む。この方法は、モバイルコンピューティングデバイスが、仮想デスクトップセッションであって、モバイルコンピューティングデバイスから仮想デスクトップサーバに仮想デスクトップ入力を伝達し、仮想デスクトップサーバからモバイルコンピューティングデバイスに仮想デスクトップ出力を伝達して、モバイルコンピューティングデバイス上に仮想デスクトップを提供する仮想デスクトップセッションを実行している間に、モバイルコンピューティングデバイスから表示機器上で動作するブラウザに仮想デスクトップをキャストするために、表示機器とモバイルコンピューティングデバイスの間に作成された通信経路を介して通信することをさらに含む。
【0006】
いくつかの構成では、表示機器は、電子画面と、ブラウザを実行してブラウザウィンドウを電子画面に表示する制御回路と、を備える。加えて、表示機器とモバイルコンピューティングデバイスの間に作成された通信経路を介して通信することが、モバイルコンピューティングデバイスから仮想デスクトップグラフィックスストリームを受信し、電子画面に表示されたブラウザウィンドウ内に仮想デスクトップグラフィックスストリームをレンダリングすることを含む。
【0007】
いくつかの構成では、表示機器は、制御回路に結合されたキーボードおよび物理マウスをさらに備える。加えて、表示機器とモバイルコンピューティングデバイスの間に作成された通信経路を介して通信することが、ブラウザを実行する制御回路によってキャプチャされたキーボードイベントおよびマウスイベントを、通信経路を介して表示機器からモバイルコンピューティングデバイスに送信することをさらに含む。
【0008】
いくつかの構成では、モバイルコンピューティングデバイスから仮想デスクトップグラフィックスストリームを受信し、電子画面に表示されたブラウザウィンドウ内に仮想デスクトップグラフィックスストリームをレンダリングすることが、キーボードイベントおよびマウスイベントが制御回路によって送信されている間に、仮想デスクトップの動作を描画するために、電子画面上のブラウザウィンドウ内に異なるデスクトップ画像を表示することを含む。このような動作は、(i)モバイルコンピューティングデバイスがキーボードイベントおよびマウスイベントを仮想デスクトップサーバに伝達し、(ii)仮想デスクトップサーバがキーボードイベントおよびマウスイベントに基づいて異なるデスクトップ画像を生成し、異なるデスクトップ画像をモバイルコンピューティングデバイスに送信し、(iii)モバイルコンピューティングデバイスが異なるデスクトップ画像を表示機器に伝達したこと、に応答して行われる。
【0009】
いくつかの構成では、この方法は、仮想デスクトップサーバが異なるデスクトップ画像の解像度を表示機器の電子画面の画面解像度に一致させることを可能にするために、仮想デスクトップサーバへの伝達のために表示機器からモバイルコンピューティングデバイスに表示機器の電子画面の画面解像度を送信することをさらに含む。
【0010】
いくつかの構成では、モバイルコンピューティングデバイスは、タッチスクリーン解像度を有するタッチスクリーンを備える。加えて、表示機器の電子画面の画面解像度を送信する前に、仮想デスクトップサーバが、タッチスクリーン解像度を有する第1のデスクトップ画像のセットを提供する。さらに、表示機器の電子画面の画面解像度を送信することが、仮想デスクトップサーバに、タッチスクリーン解像度を有する第1のデスクトップ画像のセットの代わりに、画面解像度を有する第2のデスクトップ画像のセットを提供させることを含む。
【0011】
いくつかの構成では、ブラウザを実行する制御回路によってキャプチャされたキーボードイベントおよびマウスイベントを、通信経路を介して表示機器からモバイルコンピューティングデバイスに送信することが、ブラウザウィンドウ内で検出されたキーボードイベントおよびマウスイベントをモバイルコンピューティングデバイスにリダイレクトすることを含む。
【0012】
いくつかの構成では、モバイルコンピューティングデバイスから仮想デスクトップグラフィックスストリームを受信し、電子画面に表示されたブラウザウィンドウ内に仮想デスクトップグラフィックスストリームをレンダリングすることが、ブラウザウィンドウ内で検出されたキーボードイベントおよびマウスイベントがモバイルコンピューティングデバイスにリダイレクトされている間に、ブラウザウィンドウ内にユーザアクティビティを表示することを含む。
【0013】
いくつかの構成では、表示機器上で動作するブラウザを介してデバイス識別情報を受信することが、発見スクリプトを含む第1のウェブページをロードすることと、発見スクリプトを実行して、モバイルコンピューティングデバイスを識別するデバイス識別情報を取得することと、を含む。
【0014】
いくつかの構成では、デバイス識別情報は、コンピュータネットワーク上でモバイルコンピューティングデバイスを一意に識別するネットワークアドレスを含む。加えて、発見スクリプトを実行して、モバイルコンピューティングデバイスを識別するデバイス識別情報を取得することが、モバイルコンピューティングデバイスからワイヤレスの方法でネットワークアドレスを取得することを含む。
【0015】
いくつかの構成では、モバイルコンピューティングデバイスからワイヤレスの方法でネットワークアドレスを取得することが、表示機器のカメラを使用してモバイルコンピューティングデバイスのタッチスクリーンに表示された画像をキャプチャすることと、モバイルコンピューティングデバイスのタッチスクリーンに表示されたキャプチャされた画像からネットワークアドレスを導出することと、を含む。
【0016】
いくつかの構成では、表示機器とモバイルコンピューティングデバイスの間に通信経路を作成することが、表示機器上で動作するブラウザが、表示機器上で動作するブラウザとモバイルコンピューティングデバイスの間にウェブソケット通信を確立することを可能にするウェブソケット動作を実行することを含む。
【0017】
いくつかの構成では、この方法は、表示機器とモバイルコンピューティングデバイスの間に通信経路を作成した後に、第1のウェブページの代わりに、レンダリングスクリプトを含む第2のウェブページをロードすることをさらに含む。
【0018】
いくつかの構成では、モバイルコンピューティングデバイスから仮想デスクトップグラフィックスストリームを受信し、電子画面に表示されたブラウザウィンドウ内に仮想デスクトップグラフィックスストリームをレンダリングすることが、第2のウェブページのレンダリングスクリプトに従って、仮想デスクトップサーバによって生成された異なるデスクトップ画像を電子画面に表示されたブラウザウィンドウに表示することを含む。
【0019】
いくつかの構成では、仮想デスクトップサーバによって生成された異なるデスクトップ画像を電子画面に表示されたブラウザウィンドウに表示することが、表示機器の電子画面がモバイルコンピューティングデバイスによって拡張画面として認識されている間に、仮想デスクトップグラフィックスストリームをデコードして、異なるデスクトップ画像を第2のウェブページ内にレンダリングすることを含む。
【0020】
いくつかの構成では、表示機器はデスクトップコンピュータである。加えて、この方法は、デバイス識別情報を受信する前に、HTML5マークアップ言語をサポートするようにデスクトップコンピュータを構成することをさらに含む。
【0021】
いくつかの構成では、表示機器はスマートテレビである。加えて、この方法は、デバイス識別情報を受信する前に、HTML5マークアップ言語をサポートするようにスマートテレビを構成することをさらに含む。
【0022】
いくつかの構成では、表示機器はスマートプロジェクションシステムである。加えて、この方法は、デバイス識別情報を受信する前に、HTML5マークアップ言語をサポートするようにスマートプロジェクションシステムを構成することをさらに含む。
【0023】
他の実施形態は、コンピュータネットワークに接続するように構築および構成される通信インターフェースと、メモリと、通信インターフェースおよびメモリに結合される制御回路と、を備える表示機器を対象とする。メモリは命令を記憶し、命令は、制御回路によって実行された場合に、制御回路に以下を実行させる。
(A)表示機器上で動作するブラウザを介してデバイス識別情報を受信し、デバイス識別情報はモバイルコンピューティングデバイスを識別し、
(B)デバイス識別情報に基づいて、通信インターフェースを介して表示機器とモバイルコンピューティングデバイスの間に通信経路を作成し、
(C)モバイルコンピューティングデバイスが、モバイルコンピューティングデバイスから仮想デスクトップサーバへの仮想デスクトップ入力と、仮想デスクトップサーバからモバイルコンピューティングデバイスへの仮想デスクトップ出力とを伝達して、モバイルコンピューティングデバイス上に仮想デスクトップを提供する仮想デスクトップセッションを実行している間に、モバイルコンピューティングデバイスから表示機器上で動作するブラウザに仮想デスクトップをキャストするために、表示機器とモバイルコンピューティングデバイスの間に作成された通信経路を介して通信する。
【0024】
さらに他の実施形態は、仮想デスクトップを提供するための一連の命令を記憶する非一時的コンピュータ可読媒体を有するコンピュータプログラム製品を対象とする。一連の命令は、表示機器によって実行された場合に、表示機器に、
(A)表示機器上で動作するブラウザを介してデバイス識別情報を受信することであって、デバイス識別情報はモバイルコンピューティングデバイスを識別する、受信することと、
(B)デバイス識別情報に基づいて、表示機器とモバイルコンピューティングデバイスの間に通信経路を作成することと、
(C)モバイルコンピューティングデバイスが、モバイルコンピューティングデバイスから仮想デスクトップサーバへの仮想デスクトップ入力と、仮想デスクトップサーバからモバイルコンピューティングデバイスへの仮想デスクトップ出力とを伝達して、モバイルコンピューティングデバイス上に仮想デスクトップを提供する仮想デスクトップセッションを実行している間に、モバイルコンピューティングデバイスから表示機器上で動作するブラウザに仮想デスクトップをキャストするために、表示機器とモバイルコンピューティングデバイスの間に作成された通信経路を介して通信することと、
の方法を実行させる。
【0025】
クラウドのコンテキストでは、いくつかの電子回路が、ネットワーク上に分散されたリモートコンピュータリソースによって形成されることを理解されたい。このようなコンピュータ化された環境は、ホストされるサービスおよびリソース(たとえば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしてのインフラストラクチャなど)の分散、スケーラビリティの向上などの特定の利点を提供することが可能である。
【0026】
他の実施形態は、電子システムおよび装置、処理回路、コンピュータプログラム製品などを対象とする。いくつかの実施形態は、仮想デスクトップの提供に関与する様々な方法、電子部品、および回路を対象とする。
【0027】
前述および他の目的、特徴、および利点は、添付の図面に示した本開示の特定の実施形態の以下の説明から明らかとなり、添付の図面では、異なる図全体にわたって、同様の参照符号は同じ部分を指す。図面は必ずしも原寸に比例しておらず、代わりに、本開示の様々な実施形態の原理を説明することに重点を置いている。
【図面の簡単な説明】
【0028】
【
図1】特定の実施形態による、あるデバイスから他のデバイスへの仮想デスクトップのキャストを可能にする例示的なコンピューティング環境のブロック図である。
【
図2】特定の実施形態による、
図1のコンピューティング環境内での使用に適した電子機器のブロック図である。
【
図3】特定の実施形態による、特定の動作および/または通信を示すシーケンス図である。
【
図4】特定の実施形態による、
図1のコンピューティング環境内で発生する例示的な情報交換のブロック図である。
【
図5】特定の実施形態による、
図1のコンピューティング環境によって実行される手順のフローチャートである。
【
図6】特定の実施形態による、
図1の表示機器によって実行される詳細な手順のフローチャートである。
【発明を実施するための形態】
【0029】
改善された技術は、専用のウェブページのセット(たとえば、仮想デスクトップを表示機器に投影するためのスクリプトを有するウェブページのセット)をロードするブラウザを実行する表示機器上に仮想デスクトップを提供することを対象とする。専用のウェブページのセットがロードされると、表示機器は、仮想デスクトップを既に起動しているモバイルコンピューティングデバイスとの通信チャネルを作成する。表示機器およびモバイルコンピューティングデバイスは、通信チャネルを介してこれらの動作を連携させて、その仮想デスクトップをモバイルコンピューティングデバイスから表示機器に「キャスト」することを可能にする。このような動作により、表示機器で発生したキーボードイベントおよび物理マウスイベントなどのユーザ入力を、モバイルコンピューティングデバイス上で起動された仮想デスクトップへの入力としてリダイレクトし、仮想デスクトップグラフィックスストリームをモバイルコンピューティングデバイスから表示機器に伝達して、表示機器によって表示することが可能になる。
【0030】
モバイルコンピューティングデバイスの画面サイズは、表示機器の画面サイズとは異なり得る。しかしながら、モバイルコンピューティングデバイスは、仮想デスクトップをホストする仮想デスクトップサーバに表示機器の画面の解像度を伝えて、仮想デスクトップグラフィックスストリームを、表示機器によって適切に表示されるようにサイズ設定することができる(すなわち、仮想デスクトップがモバイルコンピューティングデバイス上で起動された場合でも、仮想デスクトップグラフィックスストリームはこのとき表示機器用にサイズ設定される)。
【0031】
加えて、モバイルコンピューティングデバイスは既に仮想デスクトップを起動しているので、ユーザは表示機器を使用して仮想デスクトップセッションを確立する必要はない。したがって、仮想デスクトップセッションを確立するために通常使用されるいかなる機密データも、表示機器に公開されない。
【0032】
本明細書に開示する特定の実施形態、実施例、および実装形態の個々の特徴は、技術的に意味をなす任意の所望の方法で組み合わせることができる。また、本明細書ではそのような特徴をこのように組み合わせて全ての可能な組み合わせ、並べ替え、および変形を形成するが、このような組み合わせ、並べ替え、および/または変形を明示的に除外しているか、または実用的でない場合を除く。このような組み合わせ、並べ替え、および変形の裏付け(support)は、本文書に存在すると考えられる。
【0033】
図1は、特定の実施形態に従って、仮想デスクトップインフラストラクチャ(VDI)を利用し、あるデバイスから他のデバイスへの仮想デスクトップのキャストを可能にする例示的なコンピューティング環境20を示している。コンピューティング環境20は、仮想デスクトップサーバ機器22、仮想デスクトップクライアントデバイス24(以下、クライアントデバイス24)、表示機器26、ウェブサーバデバイス28、他のデバイス30、および通信媒体32を備える。
【0034】
仮想デスクトップサーバ機器22は、仮想デスクトップを様々な仮想デスクトップクライアントデバイスにホストするように構築および構成される。仮想デスクトップサーバ機器22に適した機器には、中央集中型コンピュータ、コンピュータ化されたクラスタ、専用サーバファーム、他のデータセンタータイプの機器、クラウドプラットフォームなどが備えられる。このような機器は、1つまたは複数の中心位置(たとえば、単一のキャンパス、建物など)に存在するか、異なる場所(たとえば、異なる都市、州、海岸など)に分散されるか、またはこれらの組み合わせであり得る。
【0035】
クライアントデバイス24は、仮想デスクトップサーバ機器22との仮想デスクトップセッションを確立するように構築および構成される。すなわち、クライアントデバイス24は、仮想デスクトップサーバ機器22によってホストされる仮想デスクトップを提供する仮想デスクトップクライアントソフトウェアを実行する。仮想デスクトップがクライアントデバイス24上で起動されると、ユーザは有用な仕事(たとえば、ファイル/メッセージ/電子メール/他のデータなどへのアクセス、他のアプリケーションの実行、電子サービスの消費または提供、コンテンツの生成/編集/出力など)を行うことができる。クライアントデバイス24に適した電子装置には、タブレット、スマートフォン、ポータブルラップトップなどのモバイルデバイスが備えられる。モバイルデバイスのコンテキストでは、ユーザはクライアントデバイス24を様々な場所に持ち運ぶが(たとえば、会議に出席する、外出中に有用な仕事を行うなどのため)、様々な場所から引き続き仮想デスクトップにアクセスして操作することができる。
【0036】
表示機器26は、クライアントデバイス24が仮想デスクトップをキャストするサテライトプラットフォームとして動作するように構築および構成される。表示機器26に適した電子装置には、専用のウェブページをロードするためのブラウザアプリケーションがプロビジョニングされたコンピュータ化されたデバイス(たとえば、制御回路および電子ディスプレイ)が備えられる。クライアントデバイス24の画面よりも大きい画面を有する据え置き型の装置のコンテキストでは、ユーザは仮想デスクトップをクライアントデバイス24から表示機器26にキャストすることができ、これによって、ユーザは表示機器26から仮想デスクトップをリモートでより効果的に閲覧および/または操作することが可能になる。より大きい画面を有する適切な機器には、デスクトップワークステーション(たとえば、カフェまたはゲストオフィスのもの)、スマートテレビ(たとえば、会議室のもの)、コンピュータ化されたオーディオ/ビジュアルプロジェクションシステム(たとえば、講堂のもの)などが含まれる。
【0037】
ウェブサーバデバイス28は、表示機器26に専用のウェブページを提供するように構築および構成される。間もなくさらに詳細に説明するように、専用のウェブページは、表示機器26がクライアントデバイス24との通信チャネルを作成し、電子画面の解像度を特定し、クライアントデバイス24からの表示機器26への仮想デスクのキャストを実現することを可能にするスクリプトを含む。クライアントデバイス24から表示機器26への仮想デスクトップのこのようなキャスト中に、表示機器26は、仮想デスクトップの仮想デスクトップグラフィックスストリームを受信およびレンダリングすると共に、仮想デスクトップを制御するためのキーボード入力および物理マウス入力などのユーザ入力イベントをリダイレクトする。いくつかの構成では、ウェブサーバデバイス28は、ユーザが様々なアプリケーション(たとえば、仮想デスクトップクライアントソフトウェア、他のホストされた仮想化サービスにアクセスするためのソフトウェア、他の企業アプリケーションなど)にアクセスするためのインターフェース(たとえば、ストアフロントウェブサイト)を提供するストアフロントとして構成される。
【0038】
他のデバイス30は、コンピューティング環境20内に存在する他の機器を表す。このような他の機器には、他の仮想デスクトップクライアントデバイス24、他の表示機器26、他のサーバ(たとえば、電子メールサーバ、ファイルサーバ、データベースサーバ、ウェブサイト、仮想デスクトップのサービスおよび/またはコンテンツを提供する他の機器など)が備えられ得る。
【0039】
通信媒体32は、コンピューティング環境20の様々なコンポーネントを相互に接続して、これらのコンポーネントが電子信号34を交換することを可能にするように構築および構成される(たとえば、両矢印34を参照)。通信媒体32の少なくとも一部分をクラウドとして図示しており、通信媒体32が種々の異なるトポロジ、たとえば、バックボーン、ハブ&スポーク、ループ、イレギュラー、これらの組み合わせなどを有することが可能なことを示している。これに沿って、通信媒体32は、銅線ベースのデータ通信デバイスおよび配線、光ファイバデバイスおよび配線、無線デバイス、これらの組み合わせなどを備え得る。さらに、通信媒体32は、イーサネットベースの通信、セルラー通信、従来式基本電話サービス(POTS)通信、これらの組み合わせなどの様々な通信タイプをサポートすることが可能である。
【0040】
いくつかの状況では、コンピューティング環境20の少なくとも一部分は、スケーラビリティ、負荷分散、耐障害性などのために仮想マシン(VM)を実行する仮想化プラットフォームを利用する。いくつかの構成では、仮想デスクトップサーバ機器22およびウェブサーバデバイス28は、同じデータセンターに配置され(たとえば、1つまたは複数のデータセンターサーバ上でホストされ)、仮想化プラットフォームを利用することができる。
【0041】
コンピューティング環境20の動作中に、ユーザは、クライアントデバイス24を操作して、仮想デスクトップサーバ機器22との仮想デスクトップセッションを確立する。仮想デスクトップセッションが確立されると、ユーザは、仮想デスクトップサーバ機器22によってホストされる仮想デスクトップを利用することができる。すなわち、クライアントデバイス24のディスプレイ上で、ユーザは、仮想デスクトップサーバ機器22によって提供される仮想デスクトップグラフィックスストリームの仮想デスクトップ画像を閲覧する。加えて、ユーザはユーザ入力(たとえば、テキスト、画面座標など)を入力して、仮想デスクトップを制御し、有用な仕事を行うことができる。
【0042】
クライアントデバイス24がモバイルデバイス(たとえば、スマートフォン、タブレット、ラップトップなど)である構成では、ユーザはクライアントデバイス24を持ち運び、様々な異なる場所で(たとえば、オフィス、自宅、カフェなどの公共の場、他の会社の場所などで)仕事を行うことができる。また、ユーザは、クライアントデバイス24を場所から場所へと運ぶ間、クライアントデバイス24を所持し続けるので、ユーザが異なる場所にある様々な見知らぬデバイスで認証することと比較して、より強力なセキュリティが存在する(たとえば、認証ファクタはユーザのモバイルデバイスに入力されるので、ユーザは見知らぬデバイスでの認証による個人情報の漏洩を心配する必要はない)。
【0043】
ユーザがクライアントデバイス24上で仮想デスクトップを起動した後のある時点で、ユーザは、ユーザがクライアントデバイス24を継続して使用するよりも操作することを好むコンポーネントを有する表示機器26にアクセスする。たとえば、ユーザは、表示機器26が設置されたゲストオフィス、図書館、カフェなどにいる場合がある。このような状況では、表示機器26は、より大きい画面、キーボード、マウス、ウェブカメラなどをユーザに提供し得る。
【0044】
表示機器26において、ユーザは、ウェブサーバデバイス28から専用のウェブページのセットをロードする機能を備えたブラウザを起動する。いくつかの構成では、ブラウザは、事前定義された構造、カスケードスタイルシート(CSS)、およびJavascript(登録商標)を利用するHTML5ウェブページをサポートする。ここでは、専用のソフトウェアまたは構成/設定を表示機器26にプレインストールする必要がないことを理解されたい。むしろ、表示機器26は単に、HTML5をサポートするブラウザへのアクセスをユーザに提供する。
【0045】
次いで、ユーザは、表示機器26上でブラウザを、専用のウェブページのセットをロードするためのウェブサーバデバイス28上のネットワーク位置(たとえば、URLまたはリンク)にナビゲートする。ブラウザが専用のウェブページのセットをロードすると、ブラウザは、クライアントデバイス24から表示機器26への仮想デスクトップのキャストと、表示機器26からの仮想デスクトップのリモート操作とを可能にする一連の操作を順序付ける(sequence)。
【0046】
いくつかの構成では、ウェブサーバデバイス28は、専用のウェブページのセットへのアクセスをストアフロントの形で提示し、そこからユーザは最初のウェブページを簡単に取得することができ、これは次いでユーザに対して、仮想デスクトップをクライアントデバイス24から表示機器26にキャストする一連の操作を順序付ける。これに沿って、ユーザは、クライアントデバイス24の画面上に一意の識別子を表示し、表示機器26のカメラを使用して一意の識別子の画像をキャプチャする(たとえば、カメラを起動して、モバイルデバイスの画面に表示されたQRコード(登録商標)の写真を撮る)ことによって、クライアントデバイス24および表示機器26をペアリングし得る。
【0047】
これに応答して、表示機器26はクライアントデバイス24への通信経路を作成し、次いでクライアントデバイス24は、表示機器26をクライアントデバイス24の拡張画面として使用して、通信経路を介して仮想デスクトップを拡張画面デバイス26にキャストする。
【0048】
さらに、初期セットアップ中に、表示機器26は、表示機器の電子画面の画面解像度をクライアントデバイス24に送信し得、クライアントデバイス24は、画面解像度を仮想デスクトップサーバ機器22に渡して、仮想デスクトップサーバ機器22が、表示機器の電子画面に表示するのに適した解像度の仮想デスクトップの仮想デスクトップグラフィックスストリームを提供することを可能にし得る。
【0049】
このような動作によって、クライアントデバイス24から表示機器26への仮想デスクトップのキャストが効果的になる。すなわち、クライアントデバイス24はこのとき、クライアントデバイス24上で起動された仮想デスクトップを表示機器26に投影して、表示機器26の電子画面上に表示する。加えて、表示機器26は、キーボードイベントおよびマウスイベントなどのユーザ入力をクライアントデバイス24にリダイレクトする。これに応じて、ユーザは、表示機器26と直接やりとりして、クライアントデバイス24上の仮想デスクトップをリモート操作することによって、有用な仕事を行うことができる。
【0050】
Windows(登録商標)デスクトップまたはLinux(登録商標)デスクトップは、上述の仮想デスクトップキャストシナリオに非常に適している。ここで、
図2を参照して、さらなる詳細を提供する。
【0051】
図2は、特定の実施形態による、表示機器26としての使用に適した電子装置50を示している(
図1も参照されたい)。電子装置50は、外部の仮想デスクトップクライアントが仮想デスクトップをキャストするサテライトプラットフォームとして動作するように構築および構成される。
図2に示すように、電子装置50は、通信インターフェース52、メモリ54、および処理回路56、ならびにユーザインターフェースコンポーネントのセット58を備える。
【0052】
通信インターフェース52は、電子装置50を通信媒体32(
図1)に接続するように構築および構成される。これに応じて、通信インターフェース52は、電子装置50がコンピューティング環境20の他のコンポーネントと通信することを可能にする。このような通信は、有線、無線、これらの組み合わせなどであり得る。また、このような通信は、様々なプロトコル(たとえば、IP、セルラー、光ファイバ、RFなど)を利用し得る。
【0053】
メモリ54は、揮発性ストレージ(たとえば、DRAM、SRAMなど)と、不揮発性ストレージ(たとえば、フラッシュメモリ、磁気ディスクドライブなど)との両方を表すものとする。メモリ54は、オペレーティングシステム72と、ブラウザアプリケーション74と、他のコードおよびデータ76とを含む様々なソフトウェア構成物70を記憶する。
【0054】
処理回路56は、メモリ54に記憶された様々なソフトウェア構成物70に従って動作するように構築および構成される。具体的には、処理回路56は、オペレーティングシステム72を実行する場合、電子機器50の様々なリソース(たとえば、メモリ割り当て、プロセッササイクル、ハードウェア互換性など)を管理する。加えて、処理回路56は、ブラウザアプリケーション74に従って動作する場合、ローカルで実行されて専用の制御回路を形成するスクリプトを含むHTML5ウェブページなどの専用のウェブページを処理するように構築および構成される。さらに、処理回路56は、他のコードおよびデータ76に従って動作する場合、カメラの動作、光学式文字認識および/またはバーコード復号の実行、他のユーザレベルのサービスの提供などの他の動作を実行するように構築および構成される。
【0055】
上記の処理回路56は、専用のソフトウェアを実行する1つまたは複数のプロセッサ(またはコア)、特定用途向けIC(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)および関連するプログラム、個別部品、アナログ回路、他のハードウェア回路、これらの組み合わせなどを含む様々な方法で実装され得ることを理解されたい。1つまたは複数のプロセッサがソフトウェアを実行するコンテキストでは、コンピュータプログラム製品90は、ソフトウェアの全部または一部を電子装置50に配布することが可能である。コンピュータプログラム製品90は、電子装置50の1つまたは複数の動作を制御するための一連の命令を記憶する非一時的かつ不揮発性のコンピュータ可読媒体を有する。適切なコンピュータ可読記憶媒体の例には、CD-ROM、フラッシュメモリ、ディスクメモリ、テープメモリなど、不揮発性の様式で命令を記憶する有形の製造品および装置が含まれる。
【0056】
ユーザインターフェースコンポーネントのセット58は、ユーザが電子装置50にユーザ入力を入力すること、および/または電子装置50からユーザ出力を取得することを可能にする様々なユーザ入力/出力(I/O)コンポーネントを指す。たとえば、電子装置50は、キーストロークをキャプチャするためのキーボード(たとえば、ユーザがキーボードのキーをタイプしたときに電子装置50の制御回路によってキャプチャされる)、ポインタ/カーソル座標を受け取るための物理マウス(たとえば、ユーザが物理マウスを面上で動かしたときに電子装置50の制御回路によってキャプチャされる)、視覚画像をキャプチャするためのカメラなどを備え得る。マイク、スピーカーのセットなどの他のコンポーネントも使用に適している。ここで、
図3を参照して、さらなる詳細を提供する。
【0057】
図3は、特定の実施形態に従って、仮想デスクトップクライアントデバイス24から表示機器26に仮想デスクトップをキャストする場合にコンピューティング環境20内で発生する特定のアクティビティのシーケンス
図100を示している(
図1も参照されたい)。図示のように、シーケンス
図100は、仮想デスクトップサーバ機器22、クライアントデバイス24、表示機器26、およびウェブサーバデバイス28の関与を示している。
【0058】
110において、ユーザはクライアントデバイス24上で仮想デスクトップクライアントアプリケーションを実行し、クライアントデバイス24は仮想デスクトップサーバ機器22と通信して、仮想デスクトップを起動する。これに沿って、仮想デスクトップサーバ機器22およびクライアントデバイス24は、様々な情報を交換し得る。
【0059】
たとえば、ユーザは、認証するクライアントデバイス24に秘密データ(たとえば、ユーザ名、パスワードなど)を入力するように促され得る。しかしながら、ユーザは通常、クライアントデバイス24に対する支配を維持するので(たとえば、クライアントデバイス24は、ユーザが所持し続けるモバイルコンピューティングデバイスであり得る)、秘密データは保護されたままである。
【0060】
加えて、クライアントデバイス24は、仮想デスクトップクライアントデバイスの画面の画面解像度を仮想デスクトップサーバ機器22に送信し得る。たとえば、クライアントデバイス24は、タッチスクリーンを有するモバイルコンピューティングデバイスであり得る。これに応じて、仮想デスクトップサーバ機器22は、仮想デスクトップグラフィックスストリームを適切にサイズ設定および準備することができ、次いでクライアントデバイス24はこれをデコードおよびレンダリングして仮想デスクトップを提供する。
【0061】
112において、仮想デスクトップサーバ機器22およびクライアントデバイス24は、通信を継続して仮想デスクトップセッションを提供することによって、ユーザはクライアントデバイス24を使用して有用な仕事(たとえば、ドキュメントを読む/編集する、電子メールを送受信する、ウェブサイトにアクセスするなど)を行うことが可能になる。例には、Windowsデスクトップセッション、Linuxデスクトップセッションなどが含まれる。このとき、クライアントデバイス24は、仮想デスクトップ入力(たとえば、キーボード入力、マウス入力など)を仮想デスクトップサーバ機器22に提供し、これに応答して、仮想デスクトップサーバ機器22は、仮想デスクトップ出力(たとえば、仮想デスクトップグラフィックスストリーム)をクライアントデバイス24に提供する。
【0062】
114において、表示機器26は、ウェブサーバデバイス28と通信する。具体的には、表示機器26が、ウェブサーバデバイス28から専用のウェブページのセットをロードする機能を備えたブラウザを提供することを思い出されたい。これに応じて、ユーザは、ブラウザをウェブサーバデバイス28の特定の専用のウェブページにナビゲートする。これに沿って、ユーザは特定のウェブアドレス(URLなど)をブラウザに入力する、特定のリンクまたはアイコンをクリックする、以前に保存したお気に入りを選択するなどし得る。いくつかの構成では、ブラウザはHTML5をサポートし、ウェブページは、仮想デスクトップクライアントから表示機器26への仮想デスクトップの投影を可能にする専用の動作を実行するように表示機器26に指示するスクリプトを含むHTML5ウェブページである。
【0063】
116において、ウェブサーバデバイス28は、専用のウェブページを表示機器26に提供する。専用のウェブページは発見スクリプト(たとえば、ブラウザによって実行される専用の命令)を含み(または取得し)、表示機器26はこれを、専用のウェブページをロードするときに実行する。結果として、表示機器26はこのとき、クライアントデバイス24を識別するデバイス識別情報を受信するように構成されるので、表示機器26はクライアントデバイス24に直接メッセージを送信することが可能になる。いくつかの構成では、デバイス識別情報はクライアントデバイス24のネットワークアドレスを含み、これによって、ウェブサーバデバイス28は、コンピュータネットワークを介してクライアントデバイス24を識別し、これと電子的に通信することが可能になる(
図1の通信媒体32も参照されたい)。
【0064】
118において、クライアントデバイス24は、デバイス識別情報を表示機器26に提供する。いくつかの構成では、表示機器26は、発見スクリプトを実行すると、クライアントデバイス24の画面から画像をワイヤレスでキャプチャする準備が整う。画像は、クライアントデバイス24のネットワークアドレスを含むグラフィックスのセット(たとえば、QRコード、一次元バーコード、テキスト、これらの組み合わせなど)であり得る。モバイルコンピューティングデバイスのコンテキストでは、ユーザは、モバイルコンピューティングデバイスの画面を表示機器26のカメラの前にかざし、画像をキャプチャし得る(たとえば、ボタンを押した後、カウントダウン期間を待った後など)。
【0065】
他の様々な技術が、クライアントデバイス24のネットワークアドレスを表示機器26に提供するのに適していることを理解されたい。たとえば、ユーザは、クライアントデバイス24の画面からネットワークアドレスを読みながら、表示機器26のキーボードでネットワークアドレスを手動でタイプし得る。他のイネーブルとして、表示機器26およびクライアントデバイス24は最初に、Bluetooth(登録商標)、RFなどを使用して無線で互いを発見し、互いと通信して、ネットワークアドレスを伝達するなどし得る。
【0066】
120において、表示機器26はこのとき、クライアントデバイス24のネットワークアドレスを有し、クライアントデバイス24との通信経路を作成する。いくつかの構成では、クライアントデバイス24は、ウェブソケットサーバを備え(たとえば、特定のポート番号でリッスン(listen)する)、表示機器26からの最初のメッセージに応答して、表示機器26とのウェブソケット接続を確立する。
【0067】
122において、発見スクリプトに従って、表示機器26は、表示機器26の電子画面の画面解像度をクライアントデバイス24に送信する。画面解像度ならびに他の情報の伝達は、通信経路を介して行われ得る。
【0068】
124において、クライアントデバイス24は、画面解像度を仮想デスクトップサーバ機器22に伝え(
図3の仮想デスクトップセッション112も参照されたい)、これによって仮想デスクトップサーバ機器22は、表示機器26に適した画面解像度の新しい仮想デスクトップグラフィックスストリームを提供することが可能になる。
【0069】
126において、仮想デスクトップサーバ機器22およびクライアントデバイス24は、通信を継続して仮想デスクトップセッションを提供することによって、ユーザは有用な仕事を行うことが可能になる。一方、クライアントデバイス24はこのとき、(たとえば、クライアントデバイス24の画面と一致する解像度の代わりに)表示機器26の電子画面と一致する解像度を有する仮想デスクトップグラフィックスストリームを提供する。
【0070】
128において、依然として発見スクリプトに従って、表示機器26は、他の専用のウェブページを要求する他の通信をウェブサーバデバイス28に提供する。具体的には、表示機器26はこのとき、キャストされた仮想デスクトップのレンダリングを可能にする専用のウェブページを受信する準備が整う。
【0071】
130において、ウェブサーバデバイス28は、他の専用のウェブページを表示機器26に提供する。この専用のウェブページは、レンダリングスクリプトを含む。レンダリングスクリプトを実行することにより、表示機器26は、通信経路120を介したクライアントデバイス24からの仮想デスクトップグラフィックスストリームの受信を待機して、仮想デスクトップ画像を表示機器26の電子画面上にレンダリングするように構成される。いくつかの構成では、ブラウザはこのとき、仮想デスクトップグラフィックスストリームから画像を、ブラウザウィンドウまたはペインの領域内のコンテンツとしてデコード/表示するように構成される。
【0072】
132において、クライアントデバイス24は、表示機器26の電子画面と一致する解像度を有する仮想デスクトップグラフィックスストリームを表示機器26に提供する。この時点で、ユーザは、表示機器26を使用して、クライアントデバイス24上で起動された仮想デスクトップにリモートでアクセスする準備が整う。
【0073】
134において、仮想デスクトップグラフィックスストリームを受信すると、表示機器26は、仮想デスクトップをデコードして電子画面上にローカルにレンダリングする。具体的には、仮想デスクトップ画像はブラウザのウィンドウ内に表示され、ブラウザはレンダリングスクリプトに従って実行および動作し続ける。
【0074】
加えて、いくつかの構成によれば、ユーザは、キーボードでタイプし、物理マウス(または同様のポインティングツール)を動かすことによって、表示機器26に表示された仮想デスクトップを操作することができる。これに沿って、表示機器26は、キーボードイベントおよび物理マウスイベントをキャプチャし、通信経路120を介してこれらのイベントをクライアントデバイス24にリダイレクトする(イベントをローカルでさらに処理するのではない)。
【0075】
いくつかの構成では、ブラウザが表示機器26上で現在アクティブなアプリケーションである間に、キーボードイベントおよびマウスイベントはクライアントデバイス24に送られて仮想デスクトップ入力として使用され、ブラウザを操作するブラウザ入力としてさらに処理されるのではない。たとえば、ユーザがキーボードでタイプした場合、キーボード入力は、単にブラウザウィンドウにエコーされるのではなく、代わりにクライアントデバイス24に送信されて、仮想デスクトップ入力として処理される。同様に、ブラウザウィンドウ上のマウスイベント(たとえば、ポインタの移動、位置のクリックなど)は、単にブラウザウィンドウに表示されるのではなく、代わりにクライアントデバイス24に送信されて、仮想デスクトップ入力として処理される。
【0076】
クライアントデバイス24は、これらのイベントを受信し、これらを仮想デスクトップ入力として(すなわち、ユーザがクライアントデバイス24を直接操作することによってイベントが提供されたかのように)仮想デスクトップサーバ機器22に伝達する。これに応じて、ユーザは、クライアントデバイス24上で依然として起動されている仮想デスクトップをリモート操作することができる。ここで、
図4を参照して、さらなる詳細を提供する。
【0077】
図4は、デバイス識別情報を表示機器26にワイヤレスで提供して、クライアントデバイス24と表示機器26の間に通信チャネルを作成するための例示的な技術を示している。これに沿って、クライアントデバイス24がモバイルデバイス(たとえば、タブレット、スマートフォン、ラップトップなど)であり得、表示機器26が、より大きい画面、キーボード、マウスなどを有する据え置き型のコンピューティング機器(たとえば、デスクトップコンピュータ、スマートテレビ、スマートプロジェクションシステムなど)であり得ることを思い出されたい。このような状況において、ユーザは表示機器26の前にクライアントデバイス24をかざして動かすことができる。
【0078】
図4に示すように、クライアントデバイス24の画面210は、クライアントデバイス24のネットワークアドレスを含むデバイス識別情報を表す画像を表示する。画像はデバイス識別情報を、QRコード、一次元バーコード、認識可能なテキスト、これらの組み合わせなどとして表し得る。
【0079】
次に、表示機器26のカメラ220は画像をキャプチャする(矢印1)。具体的には、ユーザは、画面210がカメラ220に向けられるように、クライアントデバイス24を保持する。画像は、ボタンの押下、タイマーのカウントダウン、デバイス識別情報の自動認識などに応答してキャプチャされ得る。
【0080】
続いて、表示機器26の処理回路222は、画像からネットワークアドレスを導出する(矢印2)。このような動作には、バーコードの復号または変換、英数字の文字認識、これらの組み合わせなどが含まれ得る。
【0081】
処理回路222がクライアントデバイス24のネットワークアドレスを確認した後、表示機器26は、ネットワークアドレスを使用してクライアントデバイス24にメッセージを送信する(矢印3)。メッセージは表示機器26のネットワークアドレスを含み、これによってクライアントデバイス24は、表示機器26に通信を返信し、全二重ネットワーク接続を構築することが可能になる。
【0082】
クライアントデバイス24が表示機器26からメッセージを受信すると、クライアントデバイス24および表示機器26は通信経路を作成し(矢印4)、これを介して、クライアントデバイス24および表示機器26は、仮想デスクトップのキャスト中に電子信号の交換を継続することができる。いくつかの構成では、クライアントデバイス24はウェブソケットサーバを実行し得、ウェブソケットサーバは、最初は特定のポートでリッスンし、最終的にクライアントデバイス24と表示機器26の間にウェブソケット接続を作成する。
【0083】
他の技術が接続を確立するのに適していることを理解されたい。たとえば、クライアントデバイス24および表示機器26は、Bluetoothディスカバリを実行する、RF信号を交換するなどすることができる。ユーザは、GUIにネットワークアドレスを手動で入力し得る。あるいは、表示機器26は、クライアントデバイス24のカメラによってキャプチャされた画像を表示するなどすることができる。ここで、
図5を参照して、さらなる詳細を提供する。
【0084】
図5は、特定の実施形態による、仮想デスクトップを提供するための手順260のフローチャートである。手順260は、スマート表示機器によって実行され得る。
【0085】
262において、スマート表示機器は、ブラウザを実行して、モバイルデバイスを識別するモバイルデバイス識別子を受信する。いくつかの構成では、モバイルデバイス識別子は、モバイルデバイスのネットワークアドレスである。
【0086】
264において、スマート表示機器は、モバイルデバイス識別子を使用してモバイルデバイスとの通信を開始する。ここで、スマート表示機器は、モバイルデバイスとのネットワーク接続を作成する。
【0087】
266において、スマート表示機器は、モバイルデバイスから投影された仮想デスクトップをスマート表示機器の電子画面上に、ブラウザのブラウザウィンドウ内にレンダリングする。これに応じて、ユーザはこのとき、スマート表示機器から仮想デスクトップを楽しむことができる。
【0088】
図6は、特定の実施形態による、仮想デスクトップを提供するための詳細な手順300のフローチャートである。このような手順300は、スマート表示機器によって実行され得、ユーザにほとんどまたは全く負担を課さない。
【0089】
302において、表示機器26は、表示機器上で動作するブラウザを介してデバイス識別情報を受信し、デバイス識別情報は、モバイルコンピューティングデバイスなどの仮想デスクトップクライアントデバイスを識別する。前述のように、いくつかの構成では、表示機器のカメラが仮想デスクトップクライアントデバイスの画面に表示された画像をキャプチャし、画像から仮想デスクトップクライアントデバイスを識別するネットワークアドレスを抽出/デコードする(
図4の矢印1も参照されたい)。
【0090】
304において、表示機器26は、デバイス識別情報に基づいて、表示機器と仮想デスクトップクライアントデバイスの間に通信経路を作成する。いくつかの構成では、表示機器26は、コンピュータネットワークを介して仮想デスクトップクライアントデバイスにメッセージを送信する(
図1の通信媒体32も参照されたい)。仮想デスクトップクライアントデバイスはウェブソケットサーバを実行し、ウェブソケットサーバは、特定のポート番号でメッセージをリッスンし、メッセージを受信すると、これに応答して、コンピュータネットワークを介して全二重通信を提供することができる。このようなハンドシェイク通信により、仮想デスクトップクライアントデバイスおよび表示機器が通信を継続することができるウェブソケット接続が形成される。
【0091】
306において、仮想デスクトップクライアントデバイスが、仮想デスクトップクライアントデバイスから仮想デスクトップサーバに仮想デスクトップ入力を伝達し、仮想デスクトップサーバから仮想デスクトップクライアントデバイスに仮想デスクトップ出力を伝達して、仮想デスクトップクライアントデバイス上に仮想デスクトップを提供する仮想デスクトップセッションを実行している間に、仮想デスクトップクライアントデバイスおよび表示機器は、仮想デスクトップを仮想デスクトップクライアントデバイスから表示機器上で動作するブラウザにキャストするために、表示機器と仮想デスクトップクライアントデバイスの間に作成された通信経路を介して通信を継続する。このような通信は、表示機器が表示機器の画面解像度を仮想デスクトップクライアントデバイスに提供して、仮想デスクトップをホストする仮想デスクトップサーバに伝達することによって、仮想デスクトップサーバが、表示機器による表示に適するようにサイズ設定された仮想デスクトップ画像を含む仮想デスクトップグラフィックスストリームを出力できるようにすることを含む。
【0092】
いくつかの構成では、表示機器は、キーボードイベントおよびマウスイベントをキャプチャして、仮想デスクトップクライアントデバイスにリダイレクトする。次いで、仮想デスクトップクライアントデバイスは、キーボードイベントおよびマウスイベントを仮想デスクトップ入力として仮想デスクトップサーバに提供して、仮想デスクトップを操作する。これに応じて、仮想デスクトップサーバからの仮想デスクトップグラフィックスストリームは、キーボードイベントおよびマウスイベントに応じた仮想デスクトップアクティビティ(たとえば、仮想デスクトップ上での電子メールへのアクセス、仮想デスクトップ上でのドキュメントの編集、仮想デスクトップ上のウェブブラウザを使用したウェブサイトへのアクセスなど)を示す異なる仮想デスクトップ画像を含み得る。
【0093】
上記のように、改善された技術は、専用のウェブページのセットをロードするブラウザを実行する表示機器26(たとえば、デスクトップコンピュータ、スマートテレビ、会議室用のスマートプロジェクションシステムなど)上に仮想デスクトップを提供することを対象とする。専用のウェブページのセットがロードされると、表示機器26は、仮想デスクトップを既に起動しているクライアントデバイス24(たとえば、タブレット、スマートフォン、ラップトップなど)との通信チャネルを作成する。表示機器26およびクライアントデバイス24は、通信チャネルを介してこれらの動作を連携させて、その仮想デスクトップをクライアントデバイス24から表示機器26に「キャスト」することを可能にする。このような動作により、表示機器26で発生したキーボードイベントおよび物理マウスイベントなどのユーザ入力を、クライアントデバイス24上で起動された仮想デスクトップへの入力としてリダイレクトし、仮想デスクトップグラフィックスストリームをクライアントデバイス24から表示機器26に伝達して、表示機器26によって表示することが可能になる。さらに、クライアントデバイス24は、仮想デスクトップをホストする仮想デスクトップサーバ機器22に表示機器26の画面の解像度を伝えて、仮想デスクトップグラフィックスストリームを、表示機器26によって適切に表示されるようにサイズ設定することができる。
【0094】
上述の技術は、単にコンピュータを使用して日常的なタスクを実行する以上のものであるということを理解されたい。むしろ、これらの技術は、コンピュータ化されたリソースを管理および/または適用して、1人または複数のユーザを効率的かつ効果的にサポートする技術の改善を伴う。たとえば、携帯電話は、ユーザが使用するのが難しい小さいタッチスクリーンを有し得る。しかしながら、本明細書に開示した特定の改善によって、携帯電話上の仮想デスクトップを、より良いリソース(たとえば、より大きい画面、キーボード、マウスなど)を有する表示機器にキャストすることができる。これに応じて、ユーザは、より多くの情報を閲覧する、さらなる詳細(たとえば、より多くの情報を表示するためのより多くの画面スペース、より深いメニュー、より高い解像度のグラフィックスなど)を提供するGUIを操作するなどすることができる。また、ユーザのパスワードなどの特定の機密情報の公開を、キャスト前に携帯電話に封じ込める/隔離することができるので、秘密情報の漏洩のリスクは低い。
【0095】
本開示の様々な実施形態を具体的に図示および説明してきたが、当業者には、添付の特許請求の範囲によって定義される本開示の趣旨および範囲から逸脱することなく、様々な形態および詳細の変更が様々な実施形態に行われ得ることが理解されよう。
【0096】
たとえば、コンピューティング環境20の様々なコンポーネント、たとえば、仮想デスクトップサーバ機器22およびウェブサーバデバイス28(
図1)などは、クラウドに、すなわち、ネットワーク上に分散されたリモートコンピュータリソースに実装するまたは「移す」ことが可能であるということを理解されたい。ここで、様々なコンピュータリソースは、密に分散され得(たとえば、単一の施設内のサーバファーム)、または比較的長い距離にわたって分散され得る(たとえば、キャンパス全体、異なる都市、大陸横断など)。これらの状況では、リソースを接続するネットワークは、種々の異なるトポロジ、たとえば、バックボーン、ハブ&スポーク、ループ、イレギュラー、これらの組み合わせなどを有することが可能である。加えて、ネットワークは、銅線ベースのデータ通信デバイスおよび配線、光ファイバデバイスおよび配線、無線デバイス、これらの組み合わせなどを含み得る。さらに、ネットワークは、LANベースの通信、セルラーベースの通信、これらの組み合わせなどをサポートすることが可能である。
【0097】
本明細書に開示した改善のいくつかは、モバイルデバイスのディスプレイを拡張して仮想デスクトップシナリオでのモバイルワーキングのユーザ体験を改善するクロスプラットフォームソリューションを提供することを理解されたい。このソリューションは、仮想デスクトップのグラフィックスストリームをモバイルデバイスからウェブブラウザに転送し、HTML5ウェブページに動的に画像をレンダリングする。このようなソリューションは、キャストを基盤となるオペレーティングシステムから独立させ、開発の労力を大幅に削減し得る。
【0098】
いくつかの構成では、グラフィックストリームはHTML5ウェブページのセットにデコードおよびレンダリングされ、すなわち、ディスプレイプラットフォームにデコードおよびレンダリングソフトウェアをプレインストールする必要はない。また、このシナリオは、オペレーティングシステムおよび基盤となるハードウェアに関係なく、追加の労力なしで汎用的に機能し得る。
【0099】
いくつかの構成では、グラフィックスストリームは、モバイルデバイス上の仮想デスクトップ(たとえば、WindowsデスクトップまたはLinuxデスクトップ)から取得される。現在、WindowsデスクトップおよびLinuxデスクトップの両方が、モバイルタッチスクリーンよりも拡張画面に適し得る。
【0100】
いくつかの構成では、このソリューションは、モバイルワーキングに利便性およびセキュリティの両方をもたらす。仮想デスクトップが拡張画面にキャストされているときに、仮想デスクトップセッションはまだモバイルデバイスで実行されている。したがって、ユーザはデータおよび個人情報の漏洩を心配することなく、モバイルデバイスをオフィスの外に持ち出し、ユーザが見つけることができる任意のパブリックなディスプレイを用いて仕事をすることができる。
【0101】
一般的なモバイルワーキングのシナリオでは、画面サイズは通常、制限となり、ユーザに不便をもたらす。いくつかの従来のキャストの試みには、次のような制限がある。
・キャストされる仮想デスクトップが外部画面の解像度に適合していなかった。
・モバイルアプリケーションは、物理キーボードおよびマウスではなく、タッチスクリーンで動作するように設計されている。したがって、ユーザが物理キーボードおよびマウスに切り替えると、モバイルアプリケーションはうまく機能しない。
・いくつかのキャストの試みでは、専用のソフトウェアをプレインストールおよび構成する必要であるので、このようなキャストは、公共の場にある一般的なコンピューティングデバイスでは利用できないか、または実用的ではない。
【0102】
しかしながら、本明細書に開示した特定の実施形態によれば、仮想デスクトップを外部画面にキャストし、仮想デスクトップをHTML5ウェブページにレンダリングする新しいソリューションが存在する。このソリューションでは、ユーザが特定のハードウェアを購入してソフトウェアを配備する必要はない。むしろ、このソリューションにより、ユーザは、コンピュータおよび画面を有する任意の場所にある外部画面に自分の仮想デスクトップをキャストすることが可能になる。これに沿って、WindowsデスクトップおよびLinuxデスクトップは、外部画面、物理マウスおよびキーボードなどとうまく機能することができる。
【0103】
いくつかの構成では、ウェブサーバは、レンダリングウェブページが利用可能なウェブサイトをホストする。ウェブサーバには、パブリックネットワークを介してアクセスすることができる。レンダリングウェブページをロードするブラウザは、HTML5をサポートし、Windows、Linuxなどの任意の汎用的なオペレーティングシステム上で実行される。ブラウザは、ウェブサーバでホストされるHTML5ウェブページにアクセスすることができる。さらに、仮想デスクトップクライアントデバイスは、ユーザによって操作されるモバイルワーキングデバイスである。ここで、モバイルワーキングデバイスは、ユーザの企業ネットワークまたはクラウドに存在し得る仮想デスクトップホストにアクセスすることができる。これに応じて、ユーザはモバイルワーキングデバイス上で仮想デスクトップを起動することができる。
【0104】
次に、ユーザは、電話を発見する発見スクリプトを有するウェブページをロードするように表示機器に指示する。使用できる発見方法はいくつかある。たとえば、モバイルワーキングデバイスはウェブソケットサーバとして機能し、特定のポートでリッスンする。発見スクリプトがモバイルワーキングデバイスのアドレスを取得した後、表示機器はウェブソケットを介してモバイルワーキングデバイスに接続する。表示機器およびモバイルワーキングデバイスが接続されると、表示機器は自身の画面の解像度をモバイルワーキングデバイスに送信する。解像度を受信すると、モバイルワーキングデバイスは、仮想デスクトップをホストしている仮想デスクトップサーバに仮想デスクトップの新しい解像度を要求する。これに応答して、仮想デスクトップサーバは新しい解像度のグラフィックスストリームを提供する。モバイルワーキングデバイスはグラフィックス画面を表示機器に伝達し、表示機器はグラフィックストリームをデコードして、仮想デスクトップ画像をウェブページにレンダリングする。
【0105】
他のモバイルワーキングデバイス発見方法も使用に適している。たとえば、ユーザはモバイルワーキングデバイスのIPアドレスを表示機器に手動で入力することができる。あるいは、モバイルワーキングデバイスは、モバイルワーキングデバイスによって表示された画像をキャプチャし、画像をデコードしてアドレスを取得することができる。Bluetooth、NFCなどの他の発見技術も使用に適している。
【0106】
加えて、このソリューションはキーボードおよびマウスのリダイレクトをサポートしているので、仮想デスクトップが拡張画面にキャストされた後に、ユーザが物理キーボードおよびマウスを使用できるようになることを理解されたい。具体的には、レンダリングHTML5ウェブページは、キーボード/マウスイベントをキャプチャし、これらをモバイルワーキングデバイスに送信する。モバイルワーキングデバイスはこれらのイベントを処理せず、仮想デスクトップをホストする仮想デスクトップサーバにこれらを転送する。すなわち、仮想デスクトップサーバはキーボードイベントおよびマウスイベントを処理して、モバイルワーキングデバイスのデスクトップがブラウザでレンダリングされていても、キーボードおよびマウスが仮想デスクトップ内で機能しているように見せる。
【0107】
図3のシーケンス
図100は、仮想デスクトップクライアントを発見するための第1のウェブページと、仮想デスクトップをレンダリングするための第2のウェブページとをロードするものとして表示機器26を説明していることを理解されたい。さらに、表示機器26の画面の解像度は、第2のウェブページによって伝達されるものとして説明している。他の置き換えも好適である。たとえば、表示機器26の画面の解像度は、第2のウェブページを実行しているブラウザによって伝達され得る。このような修正および強化は、本開示の様々な実施形態に属するものとする。