(57)【特許請求の範囲】
【請求項１】
方法であって、
クライアント装置とリモートデスクトップとの間のセッションを確立して前記クライアント装置が前記リモートデスクトップに遠隔的にアクセスすることを可能にすること、
前記セッションにおいて前記リモートデスクトップによって実行されるサービスを求める要求を前記クライアント装置から送ること、
前記リモートデスクトップによって実行される前記サービスから求められる結果セットを受け取ること、
前記結果セットに含まれるデータの種類に基づき、前記クライアント装置上の複数のネイティブビューアーから、前記クライアント装置が、前記クライアント装置に対する結果セットを描画可能なネイティブビューアーを含むかどうかを判定すること、
前記クライアント装置が、前記クライアント装置に対する結果セットを描画可能なネイティブビューアーを含む場合、前記ネイティブビューアーを呼び出して前記クライアント装置に対する結果セットを描画すること、
前記クライアント装置が、前記結果セットを描画可能なネイティブビューアーを含まない場合、
サードパーティアプリケーションと通信して前記結果セットをリモートサーバで実行している前記サードパーティアプリケーションによって表示させること、
前記サードパーティアプリケーションのリモートデスクトップ表現を前記クライアント装置上に表示すること、を備える、方法。
【請求項２】
前記クライアント装置が、前記リモートデスクトップと異なる関連するフォームファクタを有し、
前記ネイティブビューアーが、前記クライアント装置の前記フォームファクタに合わせた方法で前記結果セットを提示する、請求項１に記載の方法。
【請求項３】
前記結果セットがメタデータを含み、
前記メタデータは、使用するサードパーティアプリケーションを決定するように用いられる、請求項１に記載の方法。
【請求項４】
前記結果セットを前記クライアント装置に送る前に、前記結果セットのデータの種類に基づいて前記リモートデスクトップによる伝送の前記結果セットを最適化することを、更に備える、請求項１に記載の方法。
【請求項５】
前記サービスが、前記リモートデスクトップを検索するための検索サービス、ブラウザベースの検索を行うためのブラウザサービス、又はファイルシステムにアクセスするためのファイルエクスプローラサービスを含むことにより、前記クライアント装置に、前記リモートデスクトップのユーザインタフェースの表示無しで、前記クライアント装置に検索結果またはファイルシステムへのアクセス結果を表示させる、請求項１に記載の方法。
【請求項６】
前記サービスの要求がファイル一覧を得るための要求を含み、
前記結果セットが前記ファイル一覧を含み、
前記サードパーティアプリケーションを呼び出すことは、
ファイルエクスプローラを呼び出して、前記クライアント装置に関連するフォームファクタで前記ファイル一覧を表示することを含む、請求項１に記載の方法。
【請求項７】
前記サービスの要求がファイルを得るための要求を含み、
前記結果セットが前記ファイルのコンテンツを含み、
前記サードパーティアプリケーションを呼び出すことは、
ファイルビューアーを呼び出して、前記ファイルの前記コンテンツを表示することを含む、請求項１に記載の方法。
【請求項８】
前記方法は、
前記コンテンツを前記クライアント装置に記憶することを更に備え、
前記ファイルを得るための追加の要求が、前記リモートデスクトップではなく記憶済みの前記コンテンツからサービス提供される、請求項７に記載の方法。
【請求項９】
前記クライアント装置と前記リモートデスクトップとの間の前記セッションが終了した後、前記追加の要求が前記記憶済みコンテンツからサービス提供される、請求項８に記載の方法。
【請求項１０】
前記方法は、
前記ファイルの前記コンテンツの第１の部分を受け取ることであって、前記サードパーティアプリケーションを用いて前記第１の部分は前記ネイティブビューアー内に表示される、前記コンテンツの第１の部分を受け取ること、
更なる要求があり次第、前記ファイルの前記コンテンツの第２の部分を受け取ることをさらに備え、
前記第２の部分は第２のサードパーティアプリケーションを用いて表示される、前記コンテンツの第２の部分を受け取ることを更に備える、請求項７に記載の方法。
【請求項１１】
非表示トラフィックを送るか又は受け取るように構成されたメインチャネルに対するサイドチャネルを介して前記サービスの要求が送られ、前記結果セットが受け取られる、請求項１に記載の方法。
【請求項１２】
デスクトップ管理サーバを用いて前記クライアント装置の認証を行うこと、
デスクトップ管理サーバによる認証時に作成されたトンネルを介し、前記要求を送り前記結果セットを受け取ることを更に備える、請求項１に記載の方法。
【請求項１３】
方法であって、
ユーザ用のリモートデスクトップにおいて前記ユーザ用のクライアント装置へのセッションを確立することであって、前記リモートデスクトップの資源を使用して前記クライアント装置の前記ユーザに対して１つ又は複数のサービスを実行させるために、前記セッションは、前記クライアント装置が前記リモートデスクトップに遠隔的にアクセスすることを可能にする、前記セッションを確立すること、
前記セッション内で実行される前記１つ又は複数のサービスのうちの或るサービスを求める前記クライアント装置からの要求を前記リモートデスクトップのサービス・エージェントにおいて受け取ること、
前記リモートデスクトップに前記サービスを実行させること、
実行される前記サービスから結果セットを求めること、
クライアント装置に前記結果セットを送ることを備え、
前記クライアント装置は、前記結果セットに含まれるデータの種類に基づいて、
前記クライアント装置上の複数のネイティブビューアーから、前記クライアント装置が、前記クライアント装置に対する結果セットを描画可能なネイティブビューアーを含むかどうかを判定すること、
前記クライアント装置が、前記クライアント装置に対する結果セットを描画可能なネイティブビューアーを含む場合、前記ネイティブビューアーを呼び出して前記クライアント装置に対する結果セットを描画すること、
前記クライアント装置が、前記結果セットを描画可能なネイティブビューアーを含まない場合、
サードパーティアプリケーションと通信して、前記結果セットをリモートサーバで実行している前記サードパーティアプリケーションによって表示させること、
前記サードパーティアプリケーションのリモートデスクトップ表現を前記クライアント装置上に表示すること、を備える、方法。
【請求項１４】
前記結果セットの伝送を最適化するために前記結果セットを処理することを更に備える、請求項１３に記載の方法。
【請求項１５】
前記リモートデスクトップへのアクセスを管理するように構成されるリモートデスクトップサーバにより、前記リモートデスクトップと前記クライアント装置との間の前記セッションが確立される、請求項１３に記載の方法。
【請求項１６】
各ファイルアクセスごとの監査証跡がログファイルに伝送される、請求項１３に記載の方法。
【請求項１７】
前記リモートデスクトップが複数のサービス・エージェントを含み、
様々なサービス・エージェントが様々な種類のサービス要求を処理する、請求項１３に記載の方法。
【請求項１８】
前記サービス・エージェントが、前記リモートデスクトップを検索するための検索サービス・エージェント、ブラウザベースの検索を行うためのブラウザサービス・エージェント、又はファイルシステムにアクセスするためのファイルエクスプローラサービス・エージェントを含む、請求項１３に記載の方法。
【請求項１９】
リモートデスクトッププロトコルセッションに使用されるメインチャネルに対するサイドチャネルを介して前記サービスの要求が受け取られ、前記結果セットが送られる、請求項１３に記載の方法。
【請求項２０】
非一時的なコンピュータ可読記憶媒体であって、
リモートデスクトップとクライアント装置との間のセッションを確立することであって、前記クライアント装置が、前記リモートデスクトップに遠隔的にアクセスすることを可能にする、前記セッションを確立すること、
前記リモートデスクトップによって実行されるサービスを求める要求を前記クライアント装置から送ること、
前記リモートデスクトップによって実行される前記サービスから求められる結果セットを受け取ること、
前記結果セットに含まれるデータの種類に基づき、前記クライアント装置上の複数のネイティブビューアーから、前記クライアント装置が、前記クライアント装置に対する結果セットを描画可能なネイティブビューアーを含むかどうかを判定すること、
前記クライアント装置が、前記クライアント装置に対する結果セットを描画可能なネイティブビューアーを含む場合、前記ネイティブビューアーを呼び出して前記クライアント装置に対する結果セットを描画すること、
前記クライアント装置が、前記結果セットを描画可能なネイティブビューアーを含まない場合、
サードパーティアプリケーションと通信して前記結果セットをリモートサーバで実行している前記サードパーティアプリケーションによって表示させること、
前記サードパーティアプリケーションのリモートデスクトップ表現を前記クライアント装置上に表示すること、を行うよう動作可能であるように、コンピュータシステムを制御するための命令を含む非一時的なコンピュータ可読記憶媒体。
【請求項２１】
請求項１に記載の方法を実行するように構成されたシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
サーバベースのコンピューティングは、サーバコンピューティングシステムに対して遠隔地にあるネットワーク化されたクライアント装置が、サーバ上のコンピューティング資源にアクセスすることを可能にする。例えばクライアント装置は、デスクトップに遠隔的にアクセスするために、リモートデスクトッププロトコル（RDP:Remote Desktop Protocol）、仮想ネットワークコンピューティング（VNC:Virtual Network Computing）、パーソナルコンピュータオーバインターネットプロトコル（PCoIP:Personal Computer over Internet Protocol）などの、リモートデスクトッププロトコルを使用するデスクトップリモーティングクライアントソフトウェア（及び／又はハードウェア）を実行することができる。デスクトップリモーティングアプリケーションは、サーバコンピューティングシステム、例えば仮想マシン内で実行されるオペレーティングシステム及びアプリケーションによって生成されるグラフィカルユーザインターフェイスのイメージを表示する。
【０００２】
「デスクトップ」という用語は、（ユーザにとって）ローカルなデスクトップ又はワークステーションコンピュータとしてエンドユーザによってアクセスされる仮想マシン又は物理システムを指すことができる。或いは「デスクトップ」という用語は、ユーザがそれによりアプリケーション、設定、及び／又はデータを起動し、それらとやり取りし、管理することができるヒューマンインターフェイス環境を指す場合がある。リモートデスクトップは、リモートデスクトッププロトコル及びデスクトップリモーティングクライアントを使用するユーザによってアクセス可能である。クライアント装置は、キーボード入力やマウス入力などのユーザ入力を、そこで処理させるためにリモートシステムに伝送し、ユーザに提示するための表示データ及び音声などの他のデータを受け取る。
【０００３】
仮想デスクトップインフラ（VDI:Virtual Desktop Infrastructure）は、コンピュータ仮想化技術を使用する多数のユーザ向けに多数の独立したコンピューティング環境を作成するために使用される。ユーザは、リモートデスクトップのユーザインターフェイスをリモートするソフトウェアを使用し、データセンタ内で実行される仮想手段に遠隔的にアクセスする。ユーザは、仮想デスクトップに接続するためのリモートプロトコルをサポートするどの装置からでも仮想デスクトップに何時でもログインすることができる。ユーザは、デスクトップの典型的なコンピュータ又はラップトップとは異なるフォームファクタを有するスマートフォン、タブレット装置、携帯電話などのクライアント装置によってリモートデスクトップにアクセスすることができる。その結果、クライアント装置のフォームファクタにより、グラフィカルユーザインターフェイスのイメージが、エンドユーザが読むには理想的ではない場合がある。
【０００４】
例えば、クライアント装置はより小さい画面の解像度を有する場合があり、イメージを見にくく又はナビゲートしづらくし、正確なポインティングは困難又は不可能であり得る。例えば、ユーザがアプリケーションとやり取りする方法を単純化するためにクライアント装置によって接触画面が活用されても良く、タッチ事象をリモートデスクトップのためにマウス／キーボード事象に変換するリモートデスクトップソリューションは満足のいくユーザエクスペリエンスをもたらさない場合がある。従って、リモートデスクトップのイメージを表示することは、そのような装置からリモートデスクトップ上のファイルにアクセスするには非常に好都合とはいかない場合がある。
【０００５】
クラウドベースのファイル同期サービスは、クラウドファイルシステム内のデータを同期させるために、ユーザが様々な装置上にクライアントソフトウェアをインストールできるようにする。このサービスは、クラウドファイルシステム内にファイルを移動し、様々なクライアント装置／プラットフォームからのファイルへのアクセスを許可することによって実施される。ファイルの変更は「中央（central）」コピー内に同期される。このソリューションは、リモーティングがデスクトップソリューションではなく、管理するのに不便であり得るという点で制約がある。更に、企業顧客は、セキュリティ上の理由から自身の従業員がサードパーティのパブリッククラウド展開を使用することを望まない場合がある。企業は、従業員が様々な装置から顧客ファイルにアクセスすることを許可したい場合があるが、如何なる永続コピーも企業の私設データセンタ内にしか残らないようにしたいことがある。又、クラウドベースのファイル同期サービスは、クラウド内にファイルを記憶するための追加の記憶域を要し非効率であり、費用の増加を招く。
【発明の概要】
【課題を解決するための手段】
【０００６】
一実施形態では、一方法が、クライアント装置のユーザに対して決定されたリモートデスクトップへのセッションを確立することを含む。リモートデスクトップの資源を使用してクライアント装置のユーザに対して１つ又は複数のサービスを実行させるために、このセッションは、クライアント装置がリモートデスクトップに遠隔的にアクセスすることを可能にする。クライアント装置は、セッションにおいてリモートデスクトップ上で実行される１つ又は複数のサービスのうちの或るサービスを求める要求を送り、リモートデスクトップによって実行されるサービスから求められる結果セットを受け取る。結果セットの種類に基づき、クライアント装置のネイティブビューアーが決定される。次いで、ネイティブビューアーが呼び出されて結果セットを表示する。
【０００７】
別の実施形態では、一方法が、ユーザ用のリモートデスクトップにおいてユーザ用のクライアント装置へのセッションを確立することであって、リモートデスクトップの資源を使用してクライアント装置のユーザに対して１つ又は複数のサービスを実行させるために、このセッションは、クライアント装置がリモートデスクトップに遠隔的にアクセスすることを可能にする、確立すること、セッションにおいて実行される１つ又は複数のサービスのうちの或るサービスを求めるクライアント装置からの要求をリモートデスクトップのサービス・エージェントにおいて受け取ること、リモートデスクトップにサービスを実行させること、実行されるサービスから結果セットを求めること、その結果セットをクライアント装置に送ることであって、クライアント装置はネイティブビューアーを使用して結果セットを表示する、送ることを含む。
【０００８】
別の実施形態では、非一時的なコンピュータ可読記憶媒体が提供され、クライアント装置のユーザに対して決定されたリモートデスクトップへのセッションを確立することであって、リモートデスクトップの資源を使用してクライアント装置のユーザに対して１つ又は複数のサービスを実行させるために、このセッションは、クライアント装置がリモートデスクトップに遠隔的にアクセスすることを可能にする、確立すること、セッション内でリモートデスクトップ上で実行される１つ又は複数のサービスのうちの或るサービスを求める要求をクライアント装置から送ること、リモートデスクトップによって実行されるサービスから求められる結果セットを受け取ること、結果セットの種類に基づきクライアント装置のネイティブビューアーを決定すること、及び結果セットを表示するためにネイティブビューアーを呼び出すことを行うよう動作可能であるように、コンピュータシステムを制御するための命令を含む。
【０００９】
以下の詳細な説明及び添付図面は、本発明の性質及び利点のより詳細な理解を可能にする。
【図面の簡単な説明】
【００１０】
【図１】一実施形態による、デスクトップサービスを提供するためのシステムを示す。
【図２】一実施形態による、クライアント装置のより詳細な例を示す。
【図３】一実施形態による、ユーザを認証するためのシステムのより詳細な例を示す。
【図４】一実施形態による、プロキシサービス・エージェントのより詳細な例を示す。
【図５】一実施形態による、ファイルサービス要求を処理する方法の単純化した流れ図を示す。
【図６ａ】一実施形態による、ファイル閲覧用のネイティブファイルエクスプローラアプリケーションの第１の表示を示す。
【図６ｂ】一実施形態による、ファイル閲覧用のネイティブファイルエクスプローラアプリケーションの第２の表示を示す。
【図６ｃ】一実施形態による、ウェブコンテンツ閲覧用のネイティブウェブ閲覧アプリケーションの第３の表示を示す。
【図７】実施形態例を実行するための全体的な仮想化されたマシンアーキテクチャ環境の一例のブロック図である。
【発明を実施するための形態】
【００１１】
以下の説明では、本発明の実施形態の完全な理解を可能にするために、数多くの例及び具体的詳細を説明目的で記載する。特許請求の範囲によって定める特定の実施形態は、単独で又は以下に記載する他の特徴と組み合わせてこれらの例の中の特徴の一部又は全てを含むことができ、本明細書に記載の特徴及び概念の修正形態及び等価物を更に含むことができる。
【００１２】
図１は、一実施形態によるデスクトップサービスを提供するためのシステム１００を示す。ユーザは、ユーザのリモートデスクトップ１０６によって提供されるサービスにアクセスするために、クライアント装置１０４を用いてデスクトップ管理サーバ１０２とやり取りすることができる。クライアント装置１０４は、リモートデスクトップ１０６にサービスを実行させるために、クライアントサービスインターフェイスを使用することができる。クライアントサービスインターフェイスは、リモートデスクトップ１０６へのアクセスを可能にするリモートデスクトップソリューションの一部であり得る。
【００１３】
クライアント装置１０４は、リモートデスクトップ１０６にサービス要求を送ることができる。以下で説明するように、プロキシサービス・エージェント１１０は複数のサービスを提供することができる。プロキシサービス・エージェント１１０は、リモートデスクトップ１０６にサービスを実行させることにより要求を処理する。リモートデスクトップ１０６によって結果セットが生成され、プロキシサービス・エージェント１１０がその結果セットをクライアント装置１０４に送る。結果セットを表示するためにクライアント装置１０４上のネイティブビューアー（native viewer）（不図示）が呼び出され、使用されても良い。従って、リモートデスクトップのプロトコルを使用してユーザのリモートデスクトップ１０６のイメージを表示する代わりに、ネイティブビューアーが使用されて結果セットを表示する。クライアント装置１０４がユーザのデスクトップとは異なるフォームファクタを有する状態では、ユーザは、クライアント装置１０４上では利用可能だが、リモーティングデスクトップ１０６では利用不能であり得るネイティブアプリケーションによって提供されるタッチスクリーンナビゲーションやスムーズスクロールなどの一定の機能を活用することができる。
【００１４】
リモートデスクトップ１０６は、物理的なコンピュータシステム又は仮想化されたコンピュータシステムとすることができる。物理的なデスクトップは、遠隔制御される実際の物理マシンとすることができる。仮想化されたデスクトップは、（データセンタ内で）遠隔的に実行される仮想マシン若しくはクライアント装置１０４上でローカルに実行される仮想マシンから、又は場合によってはハイブリッドを使用し、ユーザインターフェイス、例えばキーボードやマウス入力、音声や映像出力をユーザにエクスポートすることができる。
【００１５】
デスクトップ管理サーバ１０２は、様々な機能を有するデスクトップ管理ソフトウェアを含むインターフェイスレイヤとすることができる。デスクトップ管理サーバ１０２（図７参照）は、リモートユーザがクライアント装置１０４を用いてリモートデスクトップ（例えばリモートデスクトップクライアントやクライアントサービスインターフェイス）の種類を選択すること、及びデスクトップセッションを開始するか又はリモートデスクトップ１０６への接続を開始することを可能にする接続ブローカ７２３を含む。クライアント装置１０４は、携帯電話、スマートフォン、タブレット、パーソナルコンピュータ（ＰＣ）、ラップトップ、又はリモートデスクトップとは異なるフォームファクタを有し得る他の計算装置などの携帯機器とすることができる。例えばリモートデスクトップ１０６は、アクセス装置１０４によって与えられる表示サイズとは異なる画面サイズを仮想化することができる。更に、クライアント装置１０４は、リモートデスクトップ１０６とは異なるアプリケーション特性及びアプリケーションプログラミングインターフェイス（ＡＰＩ）を有する異なるオペレーティングシステム（ＯＳ）を実行していても良い。クライアント装置１０４は、デスクトップ管理サーバ１０２と通信するか又はリモートデスクトップ１０６と直接通信するデスクトップ・エージェント１０８を含み、リモートデスクトップ１０６はクライアント装置１０４上で実行されるＴｙｐｅ２ハイパーバイザによって遠隔的に又はローカルにホストされ得る。デスクトップ・エージェント１０８は、ユーザのリモートデスクトップ１０６にサービスを実行させるためにサービス要求を送ることができる。一実施形態では、要求を送り、結果セットを受け取るために、リモートデスクトップセッション用のサイドチャネルを使用することができる。このサイドチャネルは、表示プロトコルを使用してリモートデスクトップ１０６のイメージを送るために使用されるチャネルの代わりに用いることができる。デスクトップ管理サーバ１０２は、デスクトップ・エージェント１０８からリモートデスクトップ１０６にサイドチャネル内で非表示トラフィックを送ることを可能にする。この方法は以下において詳しく説明する。
【００１６】
サービスクエリは、ファイルエクスプローラサービス、ウェブプロキシサービス、及び検索サービスを含み、その全てを以下でより詳細に説明する。他のサービスが実行されても良い。一実施形態では、プロキシサービス・エージェント１１０がクライアント装置１０４からのサービス要求しか処理しない場合がある。デスクトップに関するリモートデスクトッププロトコル要求などの他の要求は、デスクトップ管理サーバ１０２内の他のエージェントによって処理されても良い。
【００１７】
プロキシサービス・エージェント１１０は、結果セットを出力する。結果セットは、リモートデスクトップ１０６のイメージ上に出力される内容に相当し得る。例えば結果セットは、クライアント装置１０４によって表示可能なファイル一覧を含むことができる。クライアント装置１０４とデスクトップ管理サーバ１０２との間のメッセージ伝送のために、任意の適切なプロトコル又はＡＰＩを実装することができる。例えば、様々なウェブサービスプロトコルを使用することができ、メッセージペイロードを暗号化及び／又は圧縮することができる。デスクトップ・エージェント１０８は、結果セットを表示するためにネイティブレンダラー（native renderer）１１６を使用する。デスクトップ・エージェント１０８及びネイティブレンダラー１１６は、装置上にインストールされる単一のアプリケーション（又は「ａｐｐ」）へと統合することができる。ネイティブレンダラー１１６はネイティブビューアーを選択し、ネイティブビューアーを起動して結果セットを表示する。ネイティブビューアーは、装置１０４と共に発送されるシステムソフトウェアのコンポーネント、アドオンアプリケーション若しくはプラグインとすることができ、又はデスクトップ・エージェント１０８及び／若しくはネイティブレンダラー１１６に統合されても良い。結果セット内の情報の種類に応じて、様々なネイティブビューアーを使用することができる。一例では、ＰＤＦ、ＰＰＴ、ＸＬＳ、ＤＯＣｘなどの様々なファイル形式の文書を表示するためにネイティブビューアーが使用される。ネイティブビューアーは、クライアント装置１０４の画面サイズに合わせて最適化することができ、リモートデスクトップ１０６上では利用できない場合がある、クライアント装置１０４にとって使用可能な機能を含む。例えば、ローカルに閲覧される結果セットのために、様々な表示、オプション、及びナビゲーション機能（例えばズームイン、パン、及び回転機能、タッチスクリーン等）を提供することができる。例えばファイル一覧を表示するために、ネイティブファイルエクスプローラアプリケーションを使用することができる。
【００１８】
図２は、一実施形態によるクライアント装置１０４のより詳細な例を示す。ユーザは、リモートデスクトップ１０６へのアクセスを許可される前に認証される。認証されると、サービス要求送信機２０１を用いてリモートデスクトップ１０６にサービス要求が送られる。デスクトップ・エージェント１０８の結果セット受信機２０２が、プロキシサービス・エージェント１１０から結果セットを受け取る。リモートデスクトップ１０６におけるサービス要求の認証プロセス及び処理について、以下でより詳細に説明する。
【００１９】
一実施形態では、リモートデスクトップ１０６のリモートビットマップ表現を表示するために、通信チャネルを開くことができる。リモートデスクトップ１０６にアクセスするために、ＲＤＰ、ＶＮＣ、ＰＣｏＩＰなどの様々なリモートデスクトッププロトコルを使用することができる。クライアント装置１０４が表示プロトコルを用いて表示情報を通信チャネルを介して受け取り、リモートデスクトップのビットマップ表現を表示する。サービスクエリを送り、結果セットを受け取るために、メイン表示プロトコル通信と同じネットワークポート内で動作するが、埋込み型コンテンツタギングのシステムを用いて「サイドチャネル」データを論理的に区分化する、通信チャネルのサイドチャネルを使用することができる。デスクトップ・エージェント１０８は、サイドチャネルを介してデスクトップ管理サーバ１０２に接続するために使用するポートをクライアント装置１０４上に開くことができる。従ってクライアント装置１０４は、リモートデスクトップ１０６のビットマップ表現を受け取るためにサイドチャネルを介して通信する必要はない。むしろ、サービス要求を送り、結果セットを受け取るための独立チャネルを使用することができる。
【００２０】
実装形態にもよるが、サービス要求送信機２０１及び結果セット受信機２０２は、独立したネットワークチャネルとして又は確立された表示プロトコルネットワークチャネルに対するサイドチャネルとして、任意の適切なプロトコルで通信をそれぞれ送信及び受信でき得る。それらのプロトコルは、メタデータ及び結果セットをテキストベース形式又はバイナリ形式で送ることができ得る。更に、それらのプロトコルは、ｉＯＳ（商標）、アンドロイド（Android）（商標）、ＷｅｂＯＳ（商標）、ブラックベリー（Blackberry）などの異なるプラットフォームにわたって使用することができる。一実施形態では、ＪＳＯＮ（Java（登録商標） Script object notation）が使用される。ＪＳＯＮとは、ウェブサービスを得るためにネットワーク接続を介してデータを送るために使用されるテキストベース形式である。他のプロトコルを使用することもできる。例えば、アパッチ（Apache）「スリフト（Thrift）」は、遠隔手続き呼出し（RPC:remote procedure call）フレームワークとして使用されるインターフェイス定義言語である。アパッチスリフトはバイナリ通信プロトコルであり、バイナリワイアプロトコルを用いたオブジェクトレベルＲＰＣアブストラクションを提供する。バイナリ形式の構造化データを符号化するために、「Google protobuf」を使用しても良い。一実施形態では、取得するためにファイルがクライアント装置１０４上でユーザによって選択されるとき、ネイティブアプリケーションがクライアント表示を１回の表示当たり限られたファイル数に制限する場合は上記のプロトコルが使用されても良く、一度にファイル（例えばページ）の一部がダウンロードされる場合はページングが使用されても良い。プロトコルの幾つかは、ファイルの圧縮及びページングも可能にする。ファイルのパッケージング形式が公開されているＤＯＣｘ、ＰＰＴｘ、ＰＤＦなどの一般に使用される高度な形式では、ファイルをページ単位でダウンロードすることができる。この場合、要求に応じて、例えばユーザが現在キャッシュされている情報を超えて進む場合又はスクロールする場合にページを送るために、クライアントサービスインターフェイスはネイティブビューアーアプリケーションともインターフェイスする必要がある。
【００２１】
結果セットは、ダウンロードされると、ローカルキャッシュメモリとすることができるメモリ２０４内に記憶することができる。メモリ２０４（又はその中に記憶される結果セット）は暗号化し、ユーザが認証された後にだけアクセス可能にすることができる。更に、ユーザがリモートデスクトップ１０６にアクセスしていないとき、メモリ２０４をクライアント装置１０４上の他のアプリケーションから保護することができる。例えば、メモリ２０４内に記憶されたデータは、デスクトップ・エージェント１０８によるもの以外、他のアプリケーションによってアクセスすることができない。メモリ２０４を保護する（例えば暗号化する）ための既知の技法が使用されても良い。又、メモリ２０４内に記憶される結果セットは永続的とすることができる。例えばクライアント装置１０４がオフラインのときでも、メモリ内の結果セットに相変らずアクセスすることができる。一実施形態では、メモリ２０４を固定サイズとすることができる。メモリ２０４が固定サイズのものである場合、解放ポリシを用いてメモリ２０４内の空間をクリアすることができる。最低使用頻度（LRU:least recently used）ポリシなど、メモリ２０４内の空間を空けるための様々な方法が当技術分野で知られている。又、メモリ２０４を固定サイズであるものとして記載したが、メモリ２０４は外部のメモリ装置によって拡張可能とすることができる。
【００２２】
一例では、サービス要求が実行されると、結果セットがメモリ２０４内に既にあるかどうかを判定するためにメモリ２０４を検査することができる。例えば、ファイルを要求するとき、そのファイルを再度ダウンロードする前に、「最終更新日」タイムスタンプポリシを使用し、リモートデスクトップ１０６上でファイルが変更されているかどうかを判定する。ファイルが変更されていない場合、ファイルをメモリ２０４から取得し表示することができる。
【００２３】
メモリ２０４に結果セットがダウンロードされた後、ネイティブビューアー２０６を用いて結果セットを描画することができる。ネイティブビューアー２０６は、クライアント装置１０４にとってローカルである。つまり、ネイティブビューアー２０６を構成するアプリケーション、コンポーネント、プラグイン等がクライアント装置１０４上に記憶され、クライアント装置１０４上で起動される。典型的には、ネイティブビューアー２０６は、クライアント装置１０４のフォームファクタ向けにカスタマイズされる。この場合、ネイティブビューアー２０６はフォームファクタを活用する様々な機能を有し得る。例えば、ネイティブビューアー２０６は、タッチスクリーン及び様々なタッチコマンドを活用することができる。更にネイティブビューアー２０６は、リモートデスクトップ１０６上で実行されるアプリケーション上では利用できない機能を有し得る。加えて、クライアント装置１０４内のフォームファクタに適合する方法でデータを表示させることができる。例えば、携帯機器はより小さい画面を有する場合があり、データの閲覧を最適化する方法でデータをフォーマットすることができる。
【００２４】
ネイティブビューアー２０６の種類を選択するために、ネイティブビューアー・セレクタ２０８を使用する。どのネイティブビューアー２０６を使用するのかを決定することは、結果セット内に含まれるデータの種類に基づいても良い。例えば、どのネイティブビューアー１０６を使用するのかを決定するために、結果セットのメタデータを使用する。一例では、データの種類及びどのネイティブビューアー１０６を使用するのかを決定するために、多目的インターネットメール拡張機能（MIME:Multipurpose Internet Mail Extensions）の種類を使用する。例えばＰＤＦファイルが表示されている場合、ローカルＰＤＦ「インテント」が起動される。「インテント」とは、クライアント装置１０４用のローカルアプリケーションを起動することができるハンドラである。他の例では、テキスト文書が描画されている場合、文書を描画するためにローカル文書処理アプリケーションが使用される。殆どのクライアント装置１０４は、一般的なファイル形式、例えば様々なマイクロソフトオフィス（Microsoft Office）（商標）ファイル、ＰＤＦファイル、ＪＰＧファイル等のためのビルトインサポートを含む。
【００２５】
ネイティブビューアー・ランチャ２１０は、選択されたネイティブビューアー２０６を起動して結果セットを表示する。一実施形態では、ユーザが見るディスプレイは、リモートデスクトップ１０６に接続することなしに結果セットを表示するためにネイティブビューアー２０６が起動された場合と同じである。他の実施形態では、ビットマップ表示とネイティブビューアー２０６との組合せを使用することができる。例えば、第１のフレームはリモートデスクトップ１０６のビットマップ表現を含むことができ、第２のフレームはネイティブビューアー２０６内の結果セット（又は結果セットの一部）の表示を含むことができる。
【００２６】
一部の実施形態では、結果セットを描画するためにローカルネイティブビューアー２０６を利用できない場合がある。この場合、サードパーティアプリケーションを使用することができる。サードパーティアプリケーションはクラウドベースアプリケーションを含むことができ、クラウドベースアプリケーションでは、クライアント１０４にとってアクセス可能なサーバ（例えばリモートデスクトップ１０６も含むデータセンタ内のサーバ）上にアプリケーションがインストールされ保持される。一例では、ネイティブビューアー・ランチャ２１０が、ＲＥＳＴ（representational state transfer）インターフェイスを用いてサードパーティアプリケーション用のインターフェイスを開く。ネイティブビューアー・ランチャ２１０は、結果セットをダウンロードし、編集／閲覧機能用のユーザインターフェイスを与えられるために、アプリケーション発行サーバなどのサーバ（例えば端末サーバや同様の技術など）にデスクトップリモーティングプロトコルによって接続することができる。この場合、リモートデスクトップ１０６は結果セットをクライアント装置１０４ではなくサーバに送ることができる。又、ファイルのサイズが大きく、ユーザがそのファイルの一部にしか興味がない場合、サードパーティアプリケーションを使用することが効率的な場合がある。一実施形態では、クライアント装置１０４に結果セットを送るよりもデータセンタでは帯域幅が高くなることにより、サーバ及びリモートデスクトップ１０６を実行する仮想マシンが同じデータセンタ内にある場合、サーバに結果セットを送ることがより高速であり得る。
【００２７】
ユーザは、リモートデスクトップ１０６にアクセスする前に認証され得る。図３は、一実施形態によるユーザを認証するためのシステム１００のより詳細な例を示す。ユーザを認証するためにリモートデスクトップゲートウェイ３０２を使用する。リモートデスクトップゲートウェイ３０２は、データセンタ内の非武装地帯（ＤＭＺ）内に導入されても良く、以下で説明する図７の接続ブローカ７２３内に含まれても良い。一例では、サービスを実行させるために、（図６に示す）新たなクライアントサービスインターフェイスがユーザによって起動される。このクライアントサービスインターフェイスは、リモートデスクトップ１０６への接続を確立する点でリモートデスクトップクライアントと同様であり得る。リモートデスクトップセッションを確立することに関して認証を説明するが、サービスを実行させるためのセッションを確立するために独立した認証プロセスを使用しても良い。クライアント装置１０４上のクライアントサービスインターフェイスが起動されると、クライアント装置１０４がリモートデスクトップゲートウェイ３０２に資格情報（credential）を与える。例えば、リモートデスクトップ１０６に対するユーザのアクセスを認証するために、企業資格情報（enterprise credential）が与えられる。ゲートウェイ認証部３０４がその資格情報を認証する。ゲートウェイ認証部３０４は、資格情報を認証する様々な方法を使用することができる。一例では、管理ポリシに基づき、ユーザが２要素認証を使用することを求められる場合がある。例えば、ユーザはＲＳＡ  ＳｅｃｕｒＩＤ（登録商標）又は他のトークンをまず提供することを求められる場合があり、次いでアクティブディレクトリ資格情報を提供する。この認証プロセスは知られており、更に説明する必要はない。
【００２８】
一実施形態では、ユーザが企業ネットワークの外側にいる一部の事例では、ユーザが認証されると、トンネルイニシエータ３０６がユーザのためのリモートデスクトップ１０６を決定する。例えば、データセンタ内で実行される仮想マシンへの接続が開始される。資格情報が仮想マシンに渡される。アクセスされる仮想マシンは、ユーザの割り当てられた仮想マシン又はユーザの仮想ディスクにマウントしアクセスするためだけに使用される汎用仮想マシンとすることができる。このようにして、ユーザのデータにアクセスするためにユーザの仮想マシンが実行される必要はない。デスクトップ認証部３１２は、ユーザを認証するために使用され、リモートデスクトップ１０６との通信のためにクライアント装置１０４によって使用され得るトークンを返す。その後、トンネルイニシエータ３０６がクライアント装置１０４、ゲートウェイ３０２、及びリモートデスクトップ１０６間のトンネル３１０を開始する。トンネル３１０は、企業のファイアウォールの外側にいるユーザが企業内でホストされる資源（例えばリモートデスクトップ１０６）にアクセスすることを可能にする。企業ネットワーク内のユーザのためにトンネルを確立することは必要ない場合がある。
【００２９】
一実施形態では、ユーザのデスクトップのイメージを表示できるようにするためにリモートデスクトップセッションも開始される。ＰＣｏＩＰ／ＲＤＰプロトコル表示情報などの表示プロトコル情報は、トンネル３１０を介して送られても良い。例えば、ハイパーテキスト転送プロトコルセキュア（HTTPS:Hypertext Transfer Protocol Secure）が使用され、セキュアソケットレイヤ（SSL:secure socket layer）を用いて表示情報が暗号化される。更に、上記のように、トンネルを介してサービス要求及び結果セットを送るためにリモートデスクトップセッションに対するサイドチャネルが使用される。一実施形態では、クライアント装置１０４が表示情報を送るために使用されるポートとは別のポートを使用してサービスを実行させる。
【００３０】
クライアント装置１０４が認証されると、クライアント装置１０４はトンネル３１０を介してサービス要求を送ることができる。ユーザがリモートデスクトップ１０６と同じネットワーク上にいる場合、通信は、リモートデスクトップゲートウェイ３０２による仲介なしにクライアント装置１０４からリモートデスクトップ１０６に直接流れることができる。一例では、リモートデスクトップ１０６とやり取りするための様々なオプションを提供する初期クライアントサービス・インターフェイスがクライアント１０４に与えられる場合がある。例えば、ファイルエクスプローラサービス、検索サービス、又はブラウザサービスなどの様々なサービスが実行され得る。クライアント装置１０４はサービス要求を生成し、トークンと共にトンネル３１０を介して送ることができる。プロキシサービス・エージェント１１０がトークンを検証し、その要求にサービス提供することができる。図４は、一実施形態によるプロキシサービス・エージェント１１０のより詳細な例を示す。上記のように、クライアント装置１０４からサイドチャネルを介してサービス要求が受け取られ得る。プロキシサービス・エージェント１１０がサービス要求に応答し、クライアント装置１０４から受け取った全ての要求の記録を保持することができ、この記録は要求を監査する際に使用することができる。例えば、記憶するために監査証跡がデスクトップ管理サーバ１０２に転送される。一実施形態では、業界で認められたＤＬＰ（データ漏洩防止）製品との統合が行われる。例えば、サービス要求が処理されるたびに、デスクトップ管理サーバ１０２に監査ログが伝えられる。監査ログは保たれるので、特定の実施形態はデータの発行を調整する一定の規則に準拠し得る。更に、集中化された情報のコピー（例えばファイル）がデータセンタ内に保たれる。このことは会社の規則に準拠し得る。更に、クライアント装置１０４上で加えた編集を中央のコピーに同期させることができる。
【００３１】
サービス要求に応じて、プロキシサービス・エージェント１１０は様々なサービスプラグイン１１２を活用することができる。例えば、ファイルエクスプローラサービス・エージェント１１２−１、検索サービス・エージェント１１２−２、及びブラウザサービス・エージェント１１２−３を使用して様々なサービス要求を処理することができる。他のサービスをプラグインとして追加することもでき、既存のプラグインを除去することもできる。ファイルエクスプローラサービス・エージェント１１２−１は、リモートデスクトップ１０６上に記憶されたファイル、又はリモートデスクトップ１０６がアクセス可能なファイルに関連する要求を実行することができる。検索サービス・エージェント１１２−２は、リモートデスクトップ１０６においてローカルデスクトップの検索を実行することができる。ブラウザサービス・エージェント１１２−３は、ウェブ閲覧要求のためのプロキシであり得る。例えばブラウザサービス・エージェント１１２−３により、イントラネット又はインターネットへのアクセスが提供される。
【００３２】
プロキシサービス・エージェント１１０はサービス要求を受け取り、任意選択的にリモートデスクトップ１０６上で実行されるオペレーティングシステム内にシステムコールを行うことにより、要求されたサービスを実行する。例えば、リモートデスクトップ１０６上のオペレーティングシステムのシステム関数にアクセスすることにより、ファイルを取得することができる。更に、サービスを実行するために、リモートデスクトップ１０６上で実行されるアプリケーションに問い合わせを行うこともできる。プロキシサービスエージェント１１０によって集められ、次いで結果セットがクライアント装置１０４に返される。結果セットの種類は、実行されるサービスに依存し得る。例えば、プロキシサービス・エージェント１１０は、ファイル一覧を出力するためにファイルエクスプローラサービス・エージェント１１２−１を使用することができる。ブラウザサービス・エージェント１１２−３はウェブページを出力することができ、検索サービス・エージェント１１２−２はローカルデスクトップの検索結果を出力することができる。サービスは、リモートデスクトップ１０６上の対応するアプリケーションを呼び出すことなしに実行され得る。例えばウェブページが開かれる場合、そのウェブページを開くためにリモートデスクトップ１０６上のウェブブラウザが起動されることは慨してない。むしろ、そのウェブページにアクセスするために、オペレーティングシステムのＡＰＩにより要求されたウェブページを突き止めるための問い合わせが行われる。結果セットは、ウェブページのハイパーテキスト転送マークアップ言語（HTML）を含むことができる。
【００３３】
リモートデスクトップ１０６によってサービスが実行されると、クライアント装置１０４に伝送するために結果セットが作成される。データ送信機４０２が、送られるデータの種類に基づき結果セットを最適化することができる。例えば、或るデータは送信前に圧縮及び／又は暗号化することができる。一例では、ウェブページからのＨＴＴＰデータを圧縮することができ、又はファイルを圧縮し暗号化することができる。暗号化は、セキュアソケットレイヤ（ＳＳＬ）又は他の既知の暗号化技法とすることができる。クライアント装置１０４に送るためのファイルを結果セットが含む場合、ハイパーテキスト転送プロトコル（ＨＴＴＰ）チャンクセッションが開始され、ファイルが転送用の小さなバイナリチャンクに分割される。チャンク転送エンコーディングはＨＴＴＰ  ＷＡＮプロトコルで利用できるデータ転送方式であり、クライアント装置１０４へのライブ接続を維持して可変サイズのチャンクを送るために活用される。
【００３４】
検索の例では、クライアント装置１０４上では可能でない場合があるリモートデスクトップ１０６の検索を行うために、検索サービス・エージェント１１２−２が使用される。例えば、リモートデスクトップ１０６上のローカル電子メールクライアントが検索され得る。ローカル電子メールクライアントは、電子メールサーバ上のユーザの電子メールの索引付きバージョンへのアクセスを有し得る。ユーザはクライアント装置１０４上で検索クエリを入力することができ、そのクエリはプロキシサービス・エージェント１１０に送られる。クエリを実行するために検索サービス・エージェント１１２−２が使用される。ユーザの電子メールの索引付きバージョンの検索に基づき、クエリに一致する電子メールの結果セットが求められる。索引付きバージョンを検索することは、ユーザの電子メールを検索する効率的方法である。その後、結果セットがクライアント装置１０４に送り返されても良い。ネイティブ電子メールアプリケーションを使用し、結果セットから選択した電子メールを表示することができる。
【００３５】
ブラウザの例では、内部の企業イントラネット又は公のインターネットのウェブを閲覧するために、ブラウザサービス・エージェント１１２−３が使用される。ウェブページの閲覧は、リモートデスクトップ１０６を用いてより効率的に行うことができる。例えば、データセンタ内でのインターネットへの接続の帯域幅は、クライアント装置１０４が利用できる接続の帯域幅よりも高速であり得る。一例では、ユーザがウェブページの統一資源ロケータ（ＵＲＬ）を入力することができる。次いで、クエリがプロキシサービス・エージェント１１０に送られる。ブラウザサービス・エージェント１１２−３は、リモートデスクトップ１０６を使用してウェブページにアクセスすることができる。例えば、リモートデスクトップ１０６上のウェブブラウザのＡＰＩを用いてウェブページのＨＴＭＬが取得される。ウェブページがクライアント装置１０４に送られ、クライアント装置１０４はネイティブウェブブラウザ（native web browser）を起動してそのウェブページを表示する。例えば、ネイティブウェブブラウザはＨＴＭＬを用いてウェブページを表示する。閲覧を最適化できる一つの方法は、ウェブページのＨＴＭＬが圧縮されクライアント装置１０４に送られ得ることであり、そうすることはより少ない帯域幅を使用する。最適化の別の方法は、ウェブページが取得されるときにリンク取得が行われ得る。リンク取得では、クライアント装置１０４に送られるウェブページ上のリンクに関連するウェブページを最適に取得し、キャッシュする。データセンタ内の帯域幅の方が通常は速いので、ウェブページはリモートデスクトップ１０６において効率的に取得し記憶することができる。その後ユーザによってリンクが選択される場合、別のウェブクエリを行うことなしに、新たに選択されたページを直ちにクライアント装置１０４に送ることができる。
【００３６】
ファイルエクスプローラの例では、リモートデスクトップ１０６を使用してファイルシステムがアクセスされ得る。図５は、一実施形態によるファイルサービス要求を処理する方法の単純化した流れ図５００を示す。一例では、入力されるファイルサービス要求を処理するために、専用のハンドラ／サービスがファイルエクスプローラサービス・エージェント１１２−１によって提供される。ファイルエクスプローラサービス・エージェント１１２−１は、携帯機器用のＨＴＴＰファイルエクスプローラリモーティングアプリケーションプログラマインターフェイス（ＡＰＩ）を提供する、構成可能なポート上のマイクロＨＴＴＰプロトコルハンドラとすることができる。一例では、ＡＰＩを用いてファイルサービス要求を実行させるために、クライアント装置１０４上のファイルハンドラポート上に接続がオープンされる。
【００３７】
５０２で、クライアント装置１０４がデフォルトディレクトリ要求を送り、ファイルのデフォルトディレクトリ（例えばホームディレクトリ）を示す。デフォルトディレクトリは、各ユーザ又は管理者によって構成可能とすることもできる。５０４で、クライアント１０４がホームディレクトリ内に記憶されたファイル一覧を受け取る。例えば、ファイルエクスプローラサービス・エージェント１１２−１は、ホームディレクトリ内のファイル一覧を取得するための要求をリモートデスクトップ１０６に送ることができる。「ファイル一覧」は、ディレクトリ内のファイル及びフォルダのファイル名及び／又はフォルダ名を含むことができる。ファイル一覧は、結果セットとしてクライアント１０４に返される。
【００３８】
５０６で、クライアント装置１０４が、ネイティブビューアー２０６を使用してファイル一覧を表示する。例えばファイル一覧を表示するために、クライアント装置１０４上のネイティブファイルビューアーアプリケーションを使用しても良い。ユーザはファイル一覧を検討し、追加のディレクトリ要求を使用して他のフォルダに移動し、ファイル要求を実行することができる。５０８で、クライアント１０４がファイル要求を生成して送る。メタデータ要求やファイル転送要求など、様々なファイル要求を送ることができる。ファイル転送要求とは、ファイルコンテンツ及びリモートデスクトップ１０６に記憶されたファイルに関するデータを記述するメタデータ要求戻り情報を得るための要求である。メタデータ要求の例には、フォルダ内に記憶されたファイル一覧を取得する、デフォルトフォルダ（例えばウィンドウズ（登録商標、Ｗｉｎｄｏｗｓ）の「マイドキュメント」フォルダ）用の「ＧｅｔＡｌｌＦｉｌｅｓ」などの要求が含まれる。「ｒｅｃｅｎｔｌｙＵｓｅｄＦｉｌｅｓ」、「ｓｅａｒｃｈＦｉｌｅｓＩｎＡＦｏｌｄｅｒ」、「ｅｍａｉｌＦｉｌｅｓ」などの更なる要求もサポートすることができる。これらの要求は最近使用したファイルを取得し、フォルダ内のファイルを検索し、又は特定のファイルを電子メールで送る。
【００３９】
５１０で、要求がファイル転送を求めるものなのか、メタデータ転送を求めるものなのかを判定する。要求がメタデータ要求である場合、５１２で、クライアント装置１０４が要求されたファイル情報又はファイル一覧を取得する。５１４で、ファイル情報又はファイル一覧がメモリ２０４内に記憶される。要求がファイル転送要求である場合、５１６で、クライアント１０４が要求されたファイルのコンテンツの少なくとも一部を受け取る。例えばファイルコンテンツは、チャンク又はページ単位で送ることができる。５１８で、ファイルコンテンツがメモリ２０４内に記憶される。どちらの種類の要求の結果セットも、「ｉｓＦｉｌｅＡＦｏｌｄｅｒ」、「ｌａｓｔＭｏｄｉｆｉｅｄ  Ｔｉｍｅｓｔａｍｐ」、「ｆｉｌｅＳｉｚｅ」、「ｆｉｌｅＡＣＬ」メタデータなど、取得ファイルに関するメタデータ情報を更に含むことができる。「ｉｓＦｉｌｅＡＦｏｌｄｅｒ」メタデータはそのファイルがフォルダかどうかを示し、「ｌａｓｔＭｏｄｉｆｉｅｄ  Ｔｉｍｅｓｔａｍｐ」メタデータはそのファイルが最後に修正された時間を示し、「ｆｉｌｅＳｉｚｅ」メタデータはファイルのサイズを示し、「ｆｉｌｅＡＣＬ」メタデータはファイルへのアクセス権を示す。
【００４０】
要求がメタデータ要求であろうとファイル転送要求であろうと、５２０で、ネイティブビューアー・セレクタ２０８が、ファイル、ファイル一覧、又はコンテンツに関する要求された情報を描画するために使用可能なネイティブビューアー２０６を決定する。５２２で、ネイティブビューアー・ランチャ２１０がネイティブビューアー２０６を起動し、ファイル又はファイル一覧を描画する。図６ａは、一実施形態によるファイル閲覧用のネイティブファイルエクスプローラアプリケーションの第１の表示６０１を示す。ネイティブファイルエクスプローラアプリケーションは、ファイル名一覧を表示するために使用することができる。第１の表示６０１には、初期のクライアントサービスインターフェイスが示されている。表示６０１は、「ファイルエクスプローラ起動」オプション６０２、「ブラウザ起動」オプション６０４、「ＰＣｏＩＰを使用して接続する」オプション６０５、及び「検索」オプション６０６を含む。ファイルエクスプローラ起動オプション６０２は、ユーザがファイルサービス要求を行うことを可能にする。ブラウザ起動オプション６０４は、ユーザがウェブコンテンツのブラウザ取得を行うことを可能にする。ＰＣｏＩＰを使用して接続するオプション６０５は、ユーザが標準のリモートデスクトッププロトコルセッションに接続することを可能にする。ここで、ユーザのリモートデスクトップ１０６のビットマップがクライアント１０４に表示される。検索オプション６０６は、リモートデスクトップ１０６のローカル検索を可能にする。
【００４１】
図６ｂは、一実施形態によるファイル閲覧用のネイティブファイルエクスプローラアプリケーションの第２の表示６０７を示す。第２の表示６０７では、ファイルエクスプローラ起動オプション６０２が選択され、新たな表示が示されている。第２の表示６０７はネイティブ表示として生成することができ、そのためエクスペリエンスは、クライアント装置１０４上のローカルファイルシステムにアクセスするのと似ている。つまり、ネイティブビューアー２０６は、クライアント装置１０４上にローカルに記憶されたファイルにアクセスするために使用するのと同じビューアーである。表示６０７は、デフォルトディレクトリ（又はユーザが要求した別のディレクトリ）を表示することができる。この場合、クライアント装置１０４が、デフォルトディレクトリを得るためにリモートデスクトップ１０６へのサービス要求を生成する。ファイルエクスプローラサービス・エージェント１１２−１がその要求にサービス提供し、ディレクトリ内のフォルダ及び／又はファイルの一覧と共にメタデータを返す。例えばデフォルトディレクトリは、「マイドキュメント」、「マイピクチャ」、及び「ＣｏｒｐＤｅｖ」のフォルダ６０８−１〜６０８−３を含む。更に、ファイル６１０−１〜６１０−４は異なる種類のものである（例えば．ｐｐｔ、．ｘｌｓ、及び．ｐｄｆ）。
【００４２】
ユーザがファイル又はフォルダを例えばタップすることによって選択すると、そのファイルをメモリ２０４にダウンロードすることができ、ネイティブビューアー２０６を起動してファイルコンテンツ又はファイル一覧を描画することができる。メタデータ要求の一例では、「マイピクチャ」フォルダ６０８−２が選択され得る。次いで、「マイピクチャ」フォルダ６０８−２内のファイル一覧を得るためのメタデータ要求が生成され、リモートデスクトップ１０６に送られ得る。ファイルエクスプローラサービス・エージェント１１２−１がその要求を処理し、ユーザのリモートデスクトップ１０６上の「マイピクチャ」フォルダ内のファイル一覧を突き止める。ファイル一覧がクライアント装置１０４に送られ、ネイティブビューアー２０６内に描画される。例えば一覧は、クライアント装置１０４のフォームファクタを活用するローカルファイルエクスプローラアプリケーションを用いて示される。又、ファイル転送要求の一例では、「ＧａｒｔｎｅｒＨｙｐｅ．ｐｄｆ」ファイル６１０−４など、ファイル６１０のうちの１つについてユーザ選択が受け取られる。ファイル要求が生成され、リモートデスクトップ１０６に送られる。ファイルエクスプローラサービス・エージェント１１２−１がその要求を処理し、リモートデスクトップ１０６にファイルを取得させる。最適に伝送するためにそのファイルはデータ送信機４０２によって処理され、その後クライアント装置１０４に送られる。クライアント装置１０４がコンテンツを受け取り、結果セット受信機２０２が、復号／解凍などの任意のデータ前処理を行う。次いで、ファイルの種類がＰＤＦファイルであることをクライアント装置１０４が突き止め、ネイティブＰＤＦビューアーを呼び出す。ネイティブＰＤＦビューアーは、「文書．ｐｄｆ」ファイル６１０−４を表示する。一例では、ネイティブＰＤＦビューアーは、リモートデスクトップ１０６上のＰＤＦビューアーとは（例えば別の販売業者の）異なるアプリケーションであり得る。クライアント装置１０４上で結果セットを閲覧するために使用されるアプリケーションに関する制約は無くても良い。
【００４３】
図６ｃは、一実施形態によるウェブコンテンツ閲覧用のネイティブウェブ閲覧アプリケーションの第３の表示６１３を示す。例えば、ブラウザサービス・エージェント１１２−３を使用し、インターネット又は企業私設イントラネットにアクセスすることができる。タブ６１４−１、６１４−２、６１４−３は、複数の開かれたブラウザウィンドウ間をユーザが切り替えることを可能にする標準的なブラウザタブである。例えばタブ６１４−１を使用し、インターネットウェブブラウザを選択して検索を行うことができる。タブ６１４−２は、企業私設イントラネットウェブページを表示することができ、タブ６１４−３は更に別の私設イントラネットウェブページ、例えばバグリストを表示することができる。一例では、タブ６１４−２を選択してネイティブウェブブラウザを表示させることができる。ユーザから検索クエリが受け取られ、検索要求がリモートデスクトップ１０６に送られる。ブラウザサービス・エージェント１１２−３は、検索要求を実行させるためにその要求をリモートデスクトップ１０６にプロキシする。例えば、イントラネットからウェブページを取得することができる。ウェブページがクライアント装置１０４に送られるとき、データ送信機４０２による伝送を強化するようウェブページを最適化し、ネイティブウェブブラウザによって描画することができる。
【００４４】
従って特定の実施形態では、ネイティブビューアー２０６を用いてサービス要求に由来する結果セットを表示する。ネイティブビューアー２０６を使用することは、クライアント装置１０４のフォームファクタ及びエルゴノミクスを活用する。例えば、クライアント装置１０４が小型の携帯電話のフォームファクタを有する場合、完全なウィンドウズ（Ｗｉｎｄｏｗｓ）（商標）デスクトップフォルダの表示は、ユーザにとって直感的ではない場合がある。更に、小さい画面の解像度を有する携帯電話上では、タッチ事象をマウス／キーボード事象に変換することが正常に機能しない場合がある。ネイティブビューアー２０６を使用することにより、それらのタッチ事象が、マウス／キーボード事象に変換することなく使用できるようになる。更に、ネイティブビューアー２０６の機能が今度は活用できるようになる。例えば、様々なファイル形式用のローカルに描画されたネイティブビューアー２０６上のズームイン、パン、回転などの機能を活用することができる。
【００４５】
ファイルの閲覧について説明したが、リモートデスクトップ１０６に変更点が戻され得るファイルの編集も可能である。この場合、リモートデスクトップ１０６に変更点を送り返すことができる。編集箇所はリモートデスクトップ１０６のファイル内に記憶することができる。ファイル内の変更点だけを戻すファイルのバイナリ「ｄｉｆｆ」など、変更点を記憶するために様々な技法を使用することができる。
【００４６】
図７は、実施形態例を実行するための全体的な仮想デスクトップインフラ（VDI:virtual desktop infrastructure）環境の一例のブロック図である。以下のアーキテクチャはリモートデスクトップセッションで使用することができ、クライアントサービスインターフェイスを用いてサービスを実行させ、ネイティブビューアー２０６を用いて表示するための結果セットを戻すために強化しても良い。図７に示すように、従来の用法では、リモートユーザ、例えばユーザ７０５ａ及び７０５ｂは、任意の数の異なる種類の装置により、ネットワーク７１０（例えばローカルエリアネットワーク、又は他の私設ネットワーク若しくはインターネットなどの公にアクセス可能な広域ネットワーク）を使い、データセンタ内で実行される仮想マシン７４６によって実装されるものなどの、中央管理されたリモートデスクトップ１０６にアクセスすることができる。これらの仮想マシン（ＶＭ）７４６は、上記の物理システムのハードウェア及びシステムソフトウェアコンポーネントの仮想的等価物を含む完全な計算環境であり、典型的には多岐にわたるソフトウェア及びハードウェアコンポーネントを含む大規模な仮想化インフラによって実装される。
【００４７】
デスクトップ管理サーバ１０２により、リモートデスクトップへの遠隔アクセスが概してクライアント装置に与えられる。デスクトップ管理サーバ１０２は、リモートユーザ装置によるリモートデスクトップへのアクセスを可能にし、仮想マシン管理サーバ（VMMS:Virtual Machine Management Server）７３０のソフトウェアインターフェイス７３２との通信により対応する仮想マシンを管理する。仮想マシン管理サーバ（ＶＭＭＳ）７３０は、コンピュータ７４０、７５０、７６０など、ことによると多数の物理コンピュータにわたって実装される多数の仮想マシン（ＶＭ）７４６を使えるように設定し、維持することを担う。ユーザが既存の仮想マシンにアクセスしたい場合、ユーザはデスクトップ管理サーバ１０２を介して接続を確立し、リモートデスクトップであって、それを介して基礎を成す仮想マシンとの通信が行われる、リモートデスクトップがユーザのクライアント装置上に（ユーザインターフェイスとして）提示される。更に仮想マシンは、図１及び図４に関して上述した、サービス要求を実行するためのプロキシサービス・エージェント１１０を含むことができる。
【００４８】
図示の実施形態例では、各物理コンピュータ、例えばコンピュータ７４０が、基礎を成すハードウェア７４２と、仮想化ソフトウェア（ここではハイパーバイザ７４４）と、ここでは各ＶＭの長方形の中で「Ａ」とラベル表示してあるエージェントソフトウェア（ゲストシステムソフトウェア）をそれぞれ含む１つ又は複数の仮想マシン、例えばＶＭ７４６ａ及びＶＭ７４６ｂとを含む。エージェントソフトウェアは、典型的には各ＶＭをデスクトップ管理サーバ１０２に接続することを担い、各デスクトップ接続を管理する。エージェントソフトウェアは、典型的にはログイン、ログオフ、及び切断の度にデスクトップ管理サーバ１０２に通知する。エージェントソフトウェアは、ＵＳＢ装置などのリモート装置のサポートも行う。エージェントソフトウェアは、プロキシサービス・エージェント１１０及びサービスプラグイン１１２を含むように機能拡張されても良い。
【００４９】
ＶＭＭＳ７３０は、典型的にはＣＰＵ、メモリ、及び通信ハードウェア（ネットワーク）を有する複数のサーバを含む１組のクラスタ上で仮想マシンを実行するために使用される計算資源のプールを管理する。仮想コンピュータ（仮想マシン即ちＶＭ）は、活性状態のとき物理的な計算資源を消費し、物理コンピュータ７４０上で実行されるハイパーバイザ７４４などのハイパーバイザレイヤによって管理される。ハイパーバイザは、物理資源を管理すると共に、仮想ハードウェアから物理ハードウェアへのマッピングを維持する。ＶＭＭＳ７３０上で実行されるソフトウェアインターフェイス７３２は、これらのハイパーバイザ（例えばハイパーバイザ７４４）と通信し、各ＶＭ７４６を使えるように設定し管理する。例えば従来の仮想化技法によれば、リモートユーザ（例えばユーザ７０５ａ）が特定の既存のデスクトップへのアクセスを要求する場合、デスクトップ管理サーバ１０２は（そのソフトウェア７２５により）、ユーザがリモートデスクトップとやり取りできるように、ＶＭＭＳのソフトウェアインターフェイス７３２を介してＶＭＭＳと通信し、適切な物理コンピュータ上で実行される対応するＶＭ７４６を開始し、ＶＭ７４６によってエクスポートされるユーザインターフェイスをリモートユーザに中継する。一部の例では、（例えば管理者のポリシにより）デスクトップを終了するか又はシャットダウンすると、ＶＭのイメージをデータストア７７０に適宜保存し、物理システム及びＶＭシステムの資源割当を必要に応じて解除するために、デスクトップ管理サーバ１０２がＶＭＭＳ７３０と通信する。
【００５０】
概して、ＶＭＭＳサーバ７３０は、プール・マネージャ７２４などの他のプログラムがハイパーバイザ上で実行される様々な仮想マシンのライフサイクルを制御できるようにするための、インターフェイス７３２を提供する。ＶＭｗａｒｅ  Ｉｎｃ．によって提供される既存の仮想化インフラの一実施形態例では、デスクトップ管理サーバ１０２が、管理コンソール７２１、インベントリ・マネージャ７２２、接続ブローカ７２３、及びプール・マネージャ７２４を含む。接続ブローカ７２３は、リモートユーザ７０５ａなどのリモートユーザが、クライアント装置１０４により、割り当てられたＶＭ７４６とのデスクトップセッションを開始し又はＶＭ７４６への既存の接続にアクセスすることを可能にする。接続ブローカ７２３は、リモートデスクトップゲートウェイ３０２を含むように機能拡張されても良い。
【００５１】
インベントリ・マネージャ７２２は、システム内の様々なユーザの帰属のマッピングを維持する。例えばユーザは、特定のアプリケーションに対する権限を得ることができ、複数のデスクトップにアクセスすること等ができる。インベントリ・マネージャ７２２は、システム内で実行されているリモートデスクトップの追跡も行う。マッピングは、ネットワーク７１０を介してアクセス可能な１つ又は複数のディレクトリサーバ７１５を使用することを含む、任意の数のメカニズムを使用して記憶することができる。
【００５２】
プール・マネージャ７２４コンポーネントは、リモートデスクトップの完全なライフサイクルを管理する。プール内のデスクトップは、類似のソフトウェア要件に基づいてまとめられる。デスクトップ管理者は、典型的にはエージェントソフトウェアを含む、同じ基本イメージから使えるように設定される論理デスクトップのグループ（デスクトッププール）を作成する。例えばデスクトッププールは、同じソフトウェアアプリケーションの組を実行し、同じオペレーティングシステムを実行する仮想マシンを含むことができる。更に別の例として、デスクトッププールは、あらゆる点で同一である１組のクローン仮想マシンだが、とりわけ例えば一意のコンピュータ名、ＩＰ／ＭＡＣアドレス、ドメインメンバシップ、ソフトウェアライセンスシリアル番号、ＯＳ固有のセキュリティ識別情報を含む一意の識別情報を含むようにカスタマイズされる、１組のクローン仮想マシンを含んでも良い。基本イメージは、ＶＭＭＳ７３０によって作成され且つ／又は管理される仮想マシン若しくはテンプレート仮想マシンとすることができる。
【００５３】
デスクトッププール内の全ての仮想マシン７４６のソフトウェア状態は永続的でも非永続的でも良い。永続的デスクトップは、仮想マシン内に記憶されるファイル又はアプリケーションの状態を保つ。非永続的デスクトップはステートレスデスクトップであり、ユーザセッションごとにデスクトップの状態が元の状態に復元される。場合によっては、デスクトップ管理者が「ゴールデンステート（golden state）に戻る」操作を行うべき頻度を定めることができる。初期状態イメージへの復元又はゴールデンステートに戻る操作は、一定の条件に基づいて起こるようにスケジュールすることもできる。
【００５４】
管理コンソール７２１は、典型的にはデスクトップ管理者がデスクトッププールの構成を管理し、ユーザアクセスポリシを定め、進行中の保守を管理し、デスクトップ内にインストールされたソフトウェア等を管理するためのユーザインターフェイスを提供する。
【００５５】
ディレクトリサーバ７１５は、リモートデスクトップを管理するのに必要な永続状態を記憶する。例えば、デスクトッププール内のＶＭは、１人又は複数のユーザに関連付けられても良い。プール用のユーザ識別情報がディレクトリサーバ７１５内に記憶され得る。ユーザは、マイクロソフトアクティブディレクトリ（Microsoft Active Directory）、ノベル（Novell）ｅＤｉｒｅｃｔｏｒｙ、ＩＢＭ  Ｔｉｖｏｌｉディレクトリサーバ（Tivoli Directory Server）などの外部のディレクトリサーバによって参照されても良い。
【００５６】
図７に関して説明したものなど、仮想化アーキテクチャの改変形態の例及び詳細は、２０１０年１月２７日に出願され、「仮想マシンのデスクトップコンテンツへの独立アクセス（Independent Access to Virtual Machine Desktop Content）」と題された米国特許出願第１２／６９４，３５８号明細書、２０１０年１月２７日に出願され、「制御仮想マシンを用いた仮想マシンの仮想ディスクコンテンツへのアクセス（Accessing Virtual Disk Content of a Virtual Machine Using a Control Virtual Machine）」と題された米国特許出願第１２／６９４，３６８号明細書、２０１０年１月２７日に出願され、「仮想デスクトップを実行しない、仮想マシンの仮想ディスクコンテンツへのアクセス（Accessing Virtual Disk Content of a Virtual Machine Without Running A Virtual Desktop）」と題された米国特許出願第１２／６９４，３８３号明細書、２００６年３月３１日に出願され、「仮想インフラを使用する仮想化デスクトップ割当システム（Virtualized Desktop Allocation System Using Virtual Infrastructure）」と題された米国特許出願第１１／３９５，０１２号明細書、２００８年３月２８日に出願され、「同期されたクローン（Synchronized Clones）」と題された米国特許出願第１２／０５８，２６９号明細書、及び２００９年２月２３日に出願され、「サーバベースデスクトップ仮想マシンアーキテクチャのクライアントマシンへの拡張（Extending Server-Based Desktop Virtual Machine Architecture to Client Machines）」と題された米国特許出願公開第２００９／０２１６９７５号明細書の中で見つけることができ、これら全ては本明細書において参照によりその全体を援用する。
【００５７】
本明細書に記載した様々な実施形態は、コンピュータシステム内に記憶されたデータを用いる様々なコンピュータによって実施される操作を使用することができる。例えばこれらの操作は物理量の物理的操作を必要とする場合があり、必ずしもそうとは限らないが通常、それらの量は電気信号又は磁気信号の形を取ることができ、それら又はそれらの表現は記憶し、転送し、組み合わせ、比較し、又は他の方法で操作することができる。更に、かかる操作は多くの場合、作成する、識別する、判定する、比較するなどの用語で言及される。１つ又は複数の実施形態の一部を形成する本明細書に記載の如何なる操作も、有用な機械操作とすることができる。更に、１つ又は複数の実施形態は、それらの操作を行うための装置又は機器にも関する。機器は、特定の所要の目的のために特別に構築されても良く、又はコンピュータ内に記憶されたコンピュータプログラムによって選択的に活性化され若しくは構成される汎用コンピュータとすることもできる。特に、本明細書の教示に従って書かれるコンピュータプログラムと共に様々な汎用機を使用することができ、又は所要の操作を行うためのより特化した機器を構築する方がより便利な場合もある。本明細書に記載した様々な実施形態は、携帯端末、マイクロプロセッサシステム、マイクロプロセッサベースの又はプログラム可能な消費者家電、ミニコンピュータ、メインフレームコンピュータ等を含む、他のコンピュータシステム構成を用いて実施しても良い。
【００５８】
１つ又は複数の実施形態は、１つ又は複数のコンピュータプログラムとして、又は１つ又は複数のコンピュータ可読記憶媒体の中に具体化される１つ又は複数のコンピュータプログラムモジュールとして実装することができる。コンピュータ可読記憶媒体という用語は、後でコンピュータシステムに入力可能なデータを記憶することができる任意のデータ記憶装置を指し、コンピュータ可読媒体は、コンピュータプログラムがコンピュータによって読み取られることを可能にする方法でコンピュータプログラムを具体化する既存の任意の技術、又は後に開発される技術に基づくことができる。非一時的なコンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、読取専用メモリ、ランダムアクセスメモリ（例えばフラッシュメモリデバイス）、ＣＤ（コンパクトディスク）、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ（デジタル多用途ディスク）、磁気テープ、並びに他の光学的及び非光学的データ記憶装置が含まれる。コンピュータ可読コードが分散された方法で記憶され実行されるように、コンピュータ可読媒体をネットワークに結合されたコンピュータシステムにわたって分散させることもできる。
【００５９】
加えて、説明した仮想化方法では、慨して仮想マシンが特定のハードウェアシステムに合ったインターフェイスを示すと仮定したが、記載した方法は或る特定のハードウェアシステムに直接対応しない仮想化と組み合わせて使用しても良いことを当業者なら理解されよう。様々な実施形態による仮想化システム、ホスト型の実施形態として実装される仮想化システム、非ホスト型の実施形態として実装される仮想化システム、又はその２つの区別を曖昧にする傾向がある実施形態として実装される仮想化システムの全てが想定されている。更に、様々な仮想化操作がハードウェアにより完全に又は部分的に実施されても良い。
【００６０】
仮想化の程度に関係なく、多くの改変、修正、追加、及び改善が可能である。従って仮想化ソフトウェアは、仮想化機能を実行するホスト、コンソール、又はゲストオペレーティングシステムのコンポーネントを含むことができる。単一の例として本明細書に記載したコンポーネント、操作、又は構造について複数の例が実現されても良い。最後に、様々なコンポーネント、操作、及びデータストア間の境界は幾らか恣意的であり、特定の操作を特定の例示的構成との関連で解説した。他の機能の割当ても想定されており、本発明の範囲に含まれ得る。慨して、例示的構成の中で別個のコンポーネントとして提示した構造及び機能は、複合構造又は複合コンポーネントとして実装しても良い。同様に、単一のコンポーネントとして提示した構造及び機能を別個のコンポーネントとして実装しても良い。
【００６１】
これらの及び他の改変、修正、追加、及び改善は添付の特許請求の範囲に含まれ得る。
上記の説明は、本発明の態様を実施し得る方法の例と共に、本発明の様々な実施形態を示す。上記の例及び実施形態は唯一の実施形態と見なされるべきではなく、添付の特許請求の範囲によって定める本発明の柔軟性及び利点を例示するために示した。上記の開示及び添付の特許請求の範囲に基づき、添付の特許請求の範囲によって定める本発明の範囲から逸脱することなく他の構成、実施形態、実装形態、及び等価物を使用することができる。
【図１】
0005993947.tif 000002
【図２】
0005993947.tif 000003
【図３】
0005993947.tif 000004
【図４】
0005993947.tif 000005
【図５】
0005993947.tif 000006
【図６ａ】
0005993947.tif 000007
【図６ｂ】
0005993947.tif 000008
【図６ｃ】
0005993947.tif 000009
【図７】
0005993947.tif 000010