(57)【特許請求の範囲】
【請求項１】
モバイルコンピューティングデバイスにインストールされている何れのアプリケーションによってもサポートされていない形式のファイルを、当該モバイルコンピューティングデバイスを用いて開く方法であって、
前記モバイルコンピューティングデバイスにログインしたユーザからファイル開封希望の指示を受け取ることであって、前記指示は、ファイルに関連するユーザよる入力に応答して受け取られる、前記指示を受け取ること、
前記指示の受け取りに応答して、かつユーザからの追加の入力無しにプログラムにより実行されることであって、
前記ファイルのメタデータを、ユーザからは隠され、かつユーザがログインする前記モバイルコンピューティングデバイスによっておよび仮想マシンによってアクセス可能な共有の隠しフォルダに提供することを含む、前記ファイルの開封要求を発行することであって、前記ファイルの開封要求の前記メタデータは、タイムスタンプを含み、要求は、前記タイムスタンプからの所定の長さの時間が経過した後に無効となる、前記ファイルの開封要求を発行すること、
ユーザの選好およびインストールされたアプリケーションを永続的に維持する永続的仮想マシンがユーザに割当てられているかどうかを判断し、そうである場合、ファイルを開封するために前記永続的仮想マシンを仮想マシンとして選択するか、またはファイルを開封するために複数の非永続的仮想マシンの1つを仮想マシンとして選択すること、
要求に応答して、前記ユーザの認証情報を接続サーバにプログラムにより送信して前記ユーザを選択された仮想マシンにログインさせること、
閲覧および編集のために前記ファイルにアクセスするために前記選択された仮想マシンとのリモーティングセッションを確立して、前記タイムスタンプから所定の長さの時間がまだ経過していない場合、前記選択された仮想マシンが、前記ファイルの開封要求および前記ファイルのメタデータに基づいて該仮想マシンによりアクセス可能な前記共有の隠しフォルダから前記ファイルを開くこと、を備える方法。
【請求項２】
前記ファイルは、前記ユーザがログインする何れのモバイルコンピューティングデバイスおよび仮想マシンによってもアクセス可能なフォルダに保存され、当該フォルダの内容は、前記ユーザがログインする１つまたは複数のモバイルコンピューティングデバイスおよび仮想マシンの間でプログラムにより同期される、請求項１に記載の方法。
【請求項３】
前記指示の受け取りに応答して、かつユーザからの追加の入力無しにプログラムにより実行されることであって、
前記ファイルを、前記ユーザがログインするモバイルコンピューティングデバイスおよび仮想マシンによってもアクセス可能な共有のフォルダの中にコピーすることをさらに備え、
当該共有のフォルダの内容は、前記ユーザがログインする１つまたは複数のモバイルコンピューティングデバイスおよび仮想マシンの間でプログラムにより同期される、請求項１に記載の方法。
【請求項４】
前記ファイルを閲覧および編集のために開いた前記仮想マシンは、前記ユーザの選好およびインストールされたアプリケーションにより構成された永続的仮想マシンである、請求項１に記載の方法。
【請求項５】
前記ファイルの形式が前記ユーザの前記仮想マシンによりサポートされているかを確認することをさらに備える請求項４に記載の方法。
【請求項６】
前記ファイルを閲覧および編集のために開いた前記仮想マシンは、前記リモーティングセッションをサポートするために前記ユーザに一時的に提供された非永続的仮想マシンである、請求項１に記載の方法。
【請求項７】
前記仮想マシンは、開封対象の前記ファイルの形式をサポートするアプリケーションが各々インストールされている複数の仮想マシンの中から自動的に選択される、請求項１に記載の方法。
【請求項８】
前記ファイルのメタデータが、ファイル名およびファイルが配置される共有のフォルダへのファイルパスを含み、前記共有のフォルダは、前記モバイルコンピューティングデバイスおよび前記選択された仮想マシンの両方によってアクセス可能である、請求項１に記載の方法。
【請求項９】
前記リモーティングセッションはリモートデスクトップセッションである、請求項１に記載の方法。
【請求項１０】
前記リモーティングセッションはリモートアプリケーションセッションである、請求項１に記載の方法。
【請求項１１】
コンピューティングデバイスにインストールされている何れのアプリケーションによってもサポートされていない形式のファイルを、当該コンピューティングデバイスを用いて開く方法であって、
前記コンピューティングデバイスにログインしたユーザからファイル開封希望の指示を受け取ることあって、前記指示は、ファイルに関連するユーザよる入力に応答して受け取られる、前記指示を受け取ること、
前記指示に応答して、かつユーザからの追加の入力無しにプログラムにより実行されることであって、
前記ファイルのメタデータを、ユーザからは隠され、かつユーザがログインする前記コンピューティングデバイスによっておよび仮想マシンによってアクセス可能な共有の隠しフォルダに提供することを含み、前記メタデータは、タイムスタンプを含み、要求は、前記タイムスタンプからの所定の長さの時間が経過した後に無効となる、前記ファイルの開封要求を発行すること、
要求に応答して、前記ファイルを開封可能なアプリケーションがインストールされている仮想マシンを自動的に選択することであって、
永続的仮想マシンがユーザに割当てられているかどうかを判断し、そうである場合、ファイルを開封するために前記永続的仮想マシンを仮想マシンとして選択するか、または
ユーザの選好およびインストールされたアプリケーションを永続的に維持しない非永続的仮想マシンがユーザに割当てられているという判断に応答して、ファイルを開封するために複数の非永続的仮想マシンの1つを仮想マシンとして選択することを含む、前記仮想マシンを自動的に選択すること、
前記ユーザの認証情報を管理サーバにプログラムにより送信して前記ユーザを前記選択された仮想マシンにログインさせること、
閲覧および編集のために前記ファイルにアクセスするために前記コンピューティングデバイスからの前記仮想マシンとのリモーティングセッションを確立して、前記タイムスタンプから所定の長さの時間がまだ経過していない場合、前記仮想マシンが、前記ファイルの開封要求および前記共有の隠しフォルダ内の前記ファイルのメタデータに基づいて前記ファイルを開くこと、を備える方法。
【請求項１２】
前記コンピューティングデバイスが、所定の記憶位置から、仮想マシンおよび仮想マシンにインストールされたアプリケーションに関する情報を読み出すことをさらに備え、
前記選択することは、前記情報に基づいて行われる、請求項１１に記載の方法。
【請求項１３】
前記ファイルは、前記ユーザがログインする何れのコンピューティングデバイスおよび仮想マシンによってもアクセス可能な共有のフォルダに保存され、当該共有のフォルダの内容は、前記ユーザがログインする１つまたは複数のコンピューティングデバイスおよび仮想マシンの間でプログラムにより同期される、請求項１１に記載の方法。
【請求項１４】
前記コンピューティングデバイスが、共有のフォルダにまだ配置されていないファイルを決定し、これに応答して、前記ファイルを、前記ユーザがログインするコンピューティングデバイスによっておよび仮想マシンによってアクセス可能な共有のフォルダの中にコピーすることをさらに備え、
当該共有のフォルダの内容は、前記ユーザがログインする１つまたは複数のコンピューティングデバイスおよび仮想マシンの間でプログラムにより同期される、請求項１１に記載の方法。
【請求項１５】
仮想マシンを通じてリモーティングセッションをサポートする方法であって、
ファイルに関連するユーザ入力に応答してユーザのモバイルコンピューティングデバイスから、かつユーザからの追加の入力無しにプログラムにより実行され、プログラムにより送信されたユーザの認証情報を受信してユーザを選択された仮想マシンにログインさせることであって、前記選択された仮想マシンは、永続的仮想マシンがユーザに割当てられているかどうかを判断し、そうである場合、ファイルを開封するために前記永続的仮想マシンを仮想マシンとして選択するか、または非永続的仮想マシンがユーザに割当てられているという判断に応答して、ファイルを開封するために複数の非永続的仮想マシンの１つを仮想マシンとして選択することにより選択される、ユーザを選択された仮想マシンにログインさせること、
前記選択された仮想マシンへのログイン成功と同時に、前記モバイルコンピューティングデバイスによっておよび前記選択された仮想マシンによってアクセス可能な共有のフォルダから前記ファイルの開封要求と、ユーザからは隠され、かつ前記モバイルコンピューティングデバイスによっておよび前記選択された仮想マシンによってアクセス可能な共有の隠しフォルダから前記ファイルのメタデータとを読み出すことであって、前記メタデータは、タイムスタンプを含み、要求は、前記タイムスタンプからの所定の長さの時間が経過した後に無効となる、前記読み出すこと、
前記選択された仮想マシンにおいて前記ファイルを開封可能なアプリケーションを起動すること、
前記開封要求のタイムスタンプを確認して、前記タイムスタンプが現在の時間から所定の長さの時間未満であることを判断し、そうである場合、前記アプリケーション内で前記ファイルを開くこと、
前記選択された仮想マシンにおいて前記アプリケーション内で開かれた前記ファイルの表示を生成して当該表示をモバイルコンピーティングデバイスに送信すること、を備える方法。
【請求項１６】
前記生成され且つ送信される表示は、デスクトップ環境内でのアプリケーション環境を示す、請求項１５に記載の方法。
【請求項１７】
前記生成され且つ送信される表示は、アプリケーション環境を示し、デスクトップ環境を示さない、請求項１５に記載の方法。
【請求項１８】
前記ファイルは、前記仮想マシンのユーザがログインするコンピューティングデバイスおよび仮想マシンの各々によってもアクセス可能なフォルダに保存され、当該フォルダの内容は、前記ユーザがログインする１つまたは複数のコンピューティングデバイスおよび仮想マシンの間でプログラムにより同期される、請求項１５に記載の方法。
【請求項１９】
前記メタデータを用いて前記ファイルをフォルダ内に位置付けることをさらに備える請求項１５に記載の方法。
【請求項２０】
前記ファイルを開くことの前に、前記ファイルの内容が同期されるまで待機することをさらに備える請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、リモーティングセッションを通じて、サポートされていないファイル形式のファイルを開封することに関する。
【背景技術】
【０００２】
モバイルコンピューティング技術の急速な進化に対応していく中での課題の１つは、スマートフォンやタブレットコンピュータ等の新型のモバイルデバイス間およびモバイルデバイスへのインストールが現実的ではないアプリケーション間の相互運用性を維持することである。このようなソフトウェアアプリケーションのいくつかの例は、専用アプリケーション、例えば写真編集用のソフトウェアや図式入出力用のソフトウェアである。一般に、これらのソフトウェアアプリケーションはモバイルデバイスがその中に実用的に実装するには大きすぎ、モバイルデバイスのストレージやメモリ資源を消耗しすぎる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
より新型のモバイルデバイスではストレージとメモリ資源は増えているものの、このような場合の限界は、ハードウェアというより、ソフトウェアライセンスの費用のほうにある。その結果、モバイルデバイスによって非サポート文書を閲覧または編集するために、モバイルデバイスのユーザはその文書を変換するか、または遠隔的に、その文書のファイル形式をサポートする別のシステムにアクセスするための面倒なステップを踏まなければならない。どちらの場合も、ステップの増加がユーザの生産性の損失とユーザのフラストレーションの増大につながる。
【課題を解決するための手段】
【０００４】
１つまたは複数の実施形態は、コンピューティングデバイス内にあるファイルの形式をサポートするアプリケーションがそのコンピューティングデバイス内にインストールされていなくても、そのファイルを閲覧および編集のためにシームレスに開封する方法を提供する。実施形態によれば、非サポートファイル形式のファイルの閲覧および編集操作を、仮想デスクトップまたはアプリケーションセッションを通じてシームレスに実行することができる。
【０００５】
一実施形態によれば、コンピューティングデバイスにインストールされている何れのアプリケーションによってもサポートされていない形式のファイルを、当該コンピューティングデバイスを用いて開く方法は、コンピューティングデバイスにログインしたユーザからファイル開封希望の指示を受け取るステップと、ファイルの開封要求およびファイルのメタデータを発行するステップと、ユーザの認証情報を接続サーバにプログラムにより送信してそのユーザを仮想マシンにログインさせるステップと、仮想マシンとのリモーティングセッションを確立して閲覧および編集のためにそのファイルにアクセスするステップであって、仮想マシンがファイルの開封要求およびファイルのメタデータに基づいてそのファイルを開くステップとを含む。
【０００６】
他の実施形態によれば、コンピューティングデバイスにインストールされている何れのアプリケーションによってもサポートされていない形式のファイルを、当該コンピューティングデバイスを用いて開く方法は、コンピューティングデバイスにログインしたユーザからファイル開封希望の指示を受け取るステップと、ファイルの開封要求およびファイルのメタデータを発行するステップと、そのファイルを開封可能なアプリケーションがインストールされている仮想マシンを自動的に選択するステップと、ユーザの認証情報を管理サーバにプログラムにより送信してそのユーザを選択された仮想マシンにログインさせるステップと、仮想マシンとのリモーティングセッションを確立して閲覧および編集のためにそのファイルにアクセスするステップであって、仮想マシンがファイルの開封要求およびファイルのメタデータに基づいてそのファイルを開くステップとを含む。
【０００７】
一実施形態による、仮想マシンを通じてリモーティングセッションをサポートする方法は、仮想マシンへのログイン成功と同時に、ファイルの開封要求およびファイルのメタデータを所定の記憶位置から読み出すこと、そのファイルを開封可能なアプリケーションを起動するステップと、そのアプリケーション内でファイルを開くステップと、アプリケーション内で開かれたファイルの表示を生成してその表示をリモートコンピーティングデバイスに送信するステップとを含む。
【０００８】
他の実施形態では、処理ユニットが上記１つまたは複数の態様の方法を実行可能にする命令を含む非一時的なコンピュータ読取可能記憶媒体のほか、上記１つまたは複数の態様の方法を実行するように構成されたコンピュータシステムを含む。
【図面の簡単な説明】
【０００９】
【図１】１つまたは複数の実施形態を実施可能な仮想化デスクトップインフラストラクチャシステムの構成要素を示す。
【図２】図２Ａおよび図２Ｂは、一実施形態においてファイル開封要求がどのように発行されるかの２つの異なる例を示す。
【図３】図３Ａおよび図３Ｂは、一実施形態において起動されたリモーティングセッションの２つの例示的な表示を示す。
【図４】リモーティングセッションを通じたファイル開封要求に応答してクライアントマシンにより実行される方法のステップを示す。
【図５】リモーティングセッションを通じてファイルを開くために、クライアントマシンからの要求をサポートする仮想マシンにより実行される方法のステップを示す。
【発明を実施するための形態】
【００１０】
図１は、１つまたは複数の実施形態を実施可能な仮想化デスクトップインフラストラクチャ（ＶＤＩ）システム１００の構成要素を示す。ＶＤＩシステム１００において、ＶＤＩクライアントソフトウェアプログラム（または、短縮して「ＶＤＩクライアント」とも呼ぶ）は、ローカルコンピューティングデバイスのオペレーティングシステムによって、例えば、オペレーティングシステム（ＯＳ）１１１上のクライアントマシン１０８で動作する。クライアントマシン１０８は、スマートフォン、タブレットコンピュータ、ノートブックコンピュータ、または、１つまたは複数の中央処理ユニット、メモリ、ローカルストレージ、ネットワークインタェースカード、キーボード、マウス、タッチスリーン、マイクロフォン等の入力デバイス、およびディスプレイやスピーカ等の出力デバイスといった従来の構成要素を有する他の何れの種類のコンピューティングデバイスとすることができる。単純化のために、図１にはクライアントマシン１０８が１つだけ示されているが、ＶＤＩシステム１００は、異なる種類のクライアントマシン１０８を多数サポートすると理解するべきである。ＶＤＩクライアントは、ユーザに対し、そのユーザの位置から離れたデータセンタ内の仮想マシン１５７やブレードサーバ（図示せず）のうちの１つで実行され得るデスクトップや特定のアプリケーションにアクセスするためのインタフェースを提供する。ＶＤＩクライアントにより、ユーザは、リモートデータセンタ内で実行されているデスクトップまたはアプリケーションに、ネットワーク１２０を通じて、どこからでも、汎用オペレーティングシステムおよびＶＤＩクライアントソフトウェアプログラムを実行する汎用コンピュータ、あるいは、デル、ＨＰ、ＮＥＣ、サンマイクロシステムズ、ワイズ等から入手可能な専用シンクライアントを用いてアクセスできる。
【００１１】
ＶＤＩシステム１００は、ユーザログイン情報を含むユーザアカウント１３６を管理する例えばマイクロソフト・アクティブ・ディレクトリ（Microsoft Active Directory）（登録商標）などのドメインコントローラ１３５と、ＶＤＩクライアントと仮想マシン１５７またはその他のプラットフォーム内で実行中のデスクトップとの間の接続を管理する接続ブローカ１３７とを含む。ドメインコントローラ１３５と接続ブローカ１３７は、別々のサーバ上で動作してもよいし、あるいは同じサーバもしくは異なるサーバ上で動作する別々の仮想マシン内で動作してもよい。図示されている実施形態において、デスクトップおよびアプリケーションは仮想マシン１５７内で実行されており、複数の物理コンピュータ１５０、１５２、１５４上に仮想マシン１５７のインスタンスが作成される。物理コンピュータ１５０、１５２、１５４の各々は、仮想化ソフトウェア１５８とハードウェア１５９とを含み、仮想マシン管理サーバ１４０によって制御され、共有の永続的記憶システム１６０に接続されている。本明細書において、「接続ブローカ」は、リモートユーザセッションとの接続を管理するように構成された装置、例えばリモートデスクトップであり、「ドメインコントローラ」は、ユーザログイン情報にアクセスしてそれを管理するように構成された装置である。
【００１２】
ＶＤＩシステム１００の構成要素は全て、ネットワーク１２０を介して通信する。単純化のために１つのネットワークだけが示されているが、実際の構成では、ＶＤＩシステム１００の構成要素は、同じネットワークで接続されていても、異なるネットワークで接続されていてもよい。また、仮想化デスクトップインフラストラクチャの特定の構成を説明し、図１に示しているが、本発明の１つまたは複数の実施形態は、他の構成の仮想化デスクトップインフラストラクチャで実現されてもよいと理解するべきである。
【００１３】
クライアントマシン１０８は、それに実装されているファイル同期エンジン１１２を有する。ファイル同期エンジン１１２は、ファイル同期サーバ１８０、特に、ファイル同期エージェント１８１と通信して、クライアントマシン１０８とファイル同期サーバ１８０との間で、ファイル同期サーバ１８０の記憶部１８３に永続的に記憶された共有ファイル１８２の内容を同期させる。ここに示される実施形態において、仮想マシン１５７は、それに実装されているファイル同期エンジン１６６を有する。同じユーザがクライアントマシン１０８と仮想マシン１５７にログインした場合、クライアントマシン１０８のファイル同期エンジン１１２および仮想マシン１５７のファイル同期エンジン１６６は、ファイル同期エージェント１８１と通信して、クライアントマシン１０８と仮想マシン１５７との間で共有ファイル１８２の内容を同期させる。この同期の結果として、共有ファイル１８２の永続的更新情報がすべて、クライアントマシン１０８と仮想マシン１５７（またはユーザが同じユーザ認証情報を用いてログインしたあらゆるクライアントマシン）の何れにより作成されたものかを問わず、記憶部１８３とその他のマシンの中に永続的に記憶される。一実施形態においては他の既知のファイル同期技術も利用されてよく、これには２０１３年３月４日に出願され、「ファイル間差分内容同期（Cross-File Differential Content Synchronization）」と題する米国特許出願第１３／７８４，５５１号明細書において開示されているものが含まれ、同出願の内容全体を参照によって本願に援用する。
【００１４】
一実施形態によれば、クライアントマシン１０８は、ファイル開封エンジン１０９を含む。ファイル開封エンジン１０９は、クライアントマシン１０８にインストールされている何れのアプリケーションによってもサポートされていないファイル拡張子を有するファイルを、クライアントマシン１０８を用いて、クライアントマシン１０８の中で起動される仮想デスクトップまたはアプリケーションセッション（本明細書では「リモーティングセッション」とも呼ぶ）を通じて閲覧可能かつ編集可能とする。ファイル開封エンジン１０９はソフトウェアで実装される。その詳細を以下にさらに説明する。また、一実施形態によれば、仮想マシン１５７はファイル開封エージェント１６７を含み、このファイル開封エージェント１６７は、閲覧および編集のためにリモーティングセッションを通じてファイル開封要求を送信したユーザが仮想マシン１５７にログインすると、アプリケーションおよびアプリケーション内のファイルを自動的に起動する。
【００１５】
他の実施形態において、ユーザがログインした仮想マシンは、ファイル同期エンジン１６６を持たなくてもよい。この場合、ファイル開封エージェント１６７は、共有ファイル１８２と自動的に通信して、開くべきファイルがあるか否かを確認し、そのようなファイルがあればそれを仮想マシンにコピーしてから、アプリケーションおよびそのアプリケーション内のファイルを起動する。
【００１６】
図２Ａおよび２Ｂは、一実施形態による、ファイル開封要求がどのように発行されるかの２種類の異なる例を示す。どちらの例においてもクライアントマシン１０８はタブレットコンピュータであり、タブレットコンピュータのディスプレイ２０８が図２Ａおよび図２Ｂの各々に示されている。
【００１７】
図２Ａにおいて、ユーザはタブレットコンピュータ内の電子メールクライアントを起動して電子メール２１０を見ている。電子メール２１０は添付２１２を含み、この添付ファイルは、マイクロソフト・ビジオ（Microsoft Visio）（登録商標）ファイルの拡張子であるファイル拡張子「．ｖｓｄ」を含んでいる。ここではこの例は、マイクロソフト・ビジオ（登録商標）アプリケーションがタブレットコンピュータやスマートフォンには一般にインストールされていないために使用されている。特定のファイル形式をサポートしていないコンピューティングデバイスのユーザをイネーブルする方法として、一実施形態が実装するファイル開封エンジン１０９は、ユーザに対し、リモーティングセッションを通じて閲覧および編集のためにそのファイルを開くオプションを提供する。ここで示される例において、ファイル開封エンジン１０９はタブレットコンピュータの中に実装され、タブレットコンピュータのユーザには、リモーティングセッションを通じて閲覧および編集のためにファイルを開封するオプションが付与される。オプションはコンテキストメニュー２１３を通じて表示され、これは現在既知の、または今後開発される、技術的に実現可能な何れの方法によって実装されてもよい（例えば、マウスの右クリック、またはマウスの右クリックと同等のタッチスクリーン入力）。このオプションが選択されると、ファイル開封エンジン１０９が図４の方法を実行する。
【００１８】
図２Ｂにおいて、ユーザは共有フォルダ２２０を開いており、その内容が上述の共有ファイル１８２と同様の方法で同期される。共有フォルダ２２０はファイル２２２を含み、これは、この実施形態ではタブレットコンピュータとして描かれている本体のコンピューティングデバイスによりサポートされていない場合がある拡張子「．ｖｓｄ」を持つ。タブレットコンピュータのユーザがそのようなファイルを閲覧および編集するために開封できるようにする方法として、ファイル開封エンジン１０９がタブレットコンピュータの中に実装され、ユーザに対し、そのファイルを閲覧および編集のためにリモーティングセッションを通じて開封するオプションが与えられる。このオプションは、コンテキストメニュー２２３を通じて表示され、これは現在既知の、または今後開発される、技術的に実現可能な何れの方法によって実装されてもよい（例えば、マウスの右クリック、またはマウスの右クリックと同等のタッチスクリーン入力）。このオプションが選択されると、ファイル開封エンジン１０９が図４の方法を実行する。
【００１９】
コンテキストメニュー２１３または２２３からオプションを選択するほかに、ユーザは異なるファイル形式についてデフォルトのファイル開封オプションを設定してもよい。例えば、ユーザは、リモーティングセッションを通じてすべてのマイクロソフト・ビジオ（登録商標）を開くが、すべてのマイクロソフト・ワード（Microsoft Word）（登録商標）ファイルやマイクロソフト・エクセル（Microsoft Excel）（登録商標）ファイルについてはローカルで開くように指定してもよい。これに加えて、企業は、そのユーザ全員が高額なアプケーションによりサポートされるファイルについては、必ずリモーティングセッションを通じて開封しなければならないようにしてもよく、それによって多数のライセンスシートの購入を減らすことができるようにしてもよい。
【００２０】
ファイル開封エンジン１０９により起動されるリモーティングセッションは、リモートデスクトップセッションまたはリモートアプリケーションセッションであってもよい。図３Ａは、タブレットコンピュータにより起動されるリモートデスクトップセッションを示しており、タブレットコンピュータのディスプレイ２０８は、仮想デスクトップ３１０と仮想デスクトップ３１０内で起動されたアプリケーション３１２を示している。図３Ｂは、タブレットコンピュータにより起動されるリモートアプリケーションセッションを示しており、タブレットコンピュータのディスプレイ２０８は、仮想デスクトップは示さずにアプリケーション３２０を示している。どちらの場合も、開封が要求されたファイルはアプリケーション環境内、例えばアプリケーション３１２またはアプリケーション３２０の中で開封されている。
【００２１】
図４は、リモーティングセッションを通じたファイル開封要求に応答してクライアントマシン１０８のファイル開封エンジン１０９が実行する方法のステップを示している。この方法はステップ４１０から始まる。ステップ４１０では、ファイル開封エンジン１０９は、リモーティングセッションを通じてファイル開封要求を受け取る（例えば、ユーザがコンテキストメニュー２１３または２２３を通じてそのようにするオプションを選択した場合）。次いで、ステップ４１２において、ファイル開封エンジン１０９は、そのファイルが、ファイル同期サーバ１８０を通じてユーザのすべてのデバイス間でその内容が自動的に同期される共有フォルダ２２０等の共有同期フォルダの中にあるのか、またはファイル２１２等のようにそうでないのかを判断する。ファイルが共有同期ファイルの中にないとファイル開封エンジン１０９が判断すると、ステップ４１８においてファイルが共有同期フォルダの中に移動またはコピーされてから、ステップ４２０が実行される。それ以外の場合にはステップ４１８は飛ばされる。
【００２２】
ステップ４２０において、ファイルの開封要求がファイルのメタデータと共に共有ファイル内に（例えば、共有の隠し同期フォルダ内にＸＭＬファイルとして）保存される。ファイルのメタデータは、ファイル名、ファイルパス、ファイルサイズ、およびファイル作成タイムスタンプが含まれる。詳しくは後述するように、この情報は、仮想マシン内で実行中のファイル開封エージェント１６７によって、クライアントマシン１０８が閲覧および編集のためにリモートでアクセスする仮想マシンの中に含まれるアプリケーション内でファイルを開く際に使用される。
【００２３】
ステップ４２２において、ファイル開封エンジン１０９は、クライアントマシン１０８にログインしたユーザに永続的または非永続的定仮想マシンが割り当てられているか否かを判断する。「永続的」仮想マシンとは、本明細書での使用においては、ユーザに割り当てられた特定の仮想マシンであって、そのユーザの選好およびインストールされたアプリケーションを永続的に維持する仮想マシンを意味する。永続的仮想マシンがユーザに割り当てられている場合、ステップ４２４において、ファイル開封エンジン１０９は、閲覧または編集のためにそのファイルを開封可能なアプリケーションがそのユーザの仮想マシンにインストールされているか否かを判断する。この判断は、ユーザの仮想マシンにインストールされているアプリケーションに関して更新される共有ファイル（例えば、共有の隠し同期フォルダ内のＸＭＬファイル）を通じて行われてもよい。閲覧または編集のためにそのファイルを開封可能なアプリケーションがそのユーザの仮想マシンにインストールされていない場合、ステップ４２６でエラーメッセージが戻されて、処理が終了する。一方、閲覧または編集のためにそのファイルを開封可能なアプリケーションがそのユーザの仮想マシンにインストールされている場合には、後述のステップ４３２が実行される。
【００２４】
クライアントマシン１０８にログインしたユーザに非永続的仮想マシンが割り当てられている場合には、ステップ４２８において、共有の隠し同期フォルダの中の、例えばＸＭＬファイルの中に保存された、複数の仮想マシンに関する情報がアクセスされ、ユーザの仮想マシンとしての選択の可能性が分析される。次に、ステップ４３０において、ユーザの仮想デスクトップまたはアプリケーションセッションをホストする仮想マシンが選択される。この選択は、閲覧または編集のためにファイルを開くことのできるアプリケーションがインストールされている仮想マシンの中から行われる。仮想マシンが選択されると、ステップ４３２が実行される。
【００２５】
ステップ４３２において、ファイル開封エンジン１０９は、シングルサインオン方式の一環として、ユーザ認証情報を接続ブローカ１３７に送信する。これについての詳細は、２０１０年１１月４日に出願された「リモートユーザセッションのためのシングルサインオン（Single Sign On For a Remote User Session）」と題する米国特許出願第１２／９３９，８１７号明細書に詳しく記載されており、同出願の全内容を参照によって本願に援用する。接続ブローカ１３７はユーザ認証情報が適正であるか否かを判断し、このステップ４３４での決定に応じて、ファイル開封エンジン１０９は処理を進める。ユーザ認証情報が適正であると判断されると、ユーザはその仮想マシン（これは、ユーザの永続的仮想マシンであっても、ステップ４３０で選択されたものであってもよい）にログインされ、ファイル開封エンジン１０９は、クライアントマシン１０８内の仮想デスクトップまたはアプリケーションクライアントを起動して、その仮想マシンでのリモーティングセッションを確立し、その仮想マシンにより閲覧および編集のために開かれていたファイルを表示する（ステップ４３６）。理解すべき点として、図４に示される、ステップ４１０のファイル開封要求以降のステップは、ユーザがそれ以上入力せずにプログラムにより実行される。その結果、ユーザは、そのファイルが、そのユーザのコンピューティングデバイスにインストールされている何れのアプリケーションによってもサポートされていない形式のファイルであっても、閲覧および編集のためにファイルをシームレスに開くことができる。
【００２６】
ステップ４３４において、ユーザ認証情報が適正であると判断されなかった場合、ステップ４３８でエラーメッセージが戻され、処理が終了する。
図５は、仮想マシン１６５のファイル開封エージェント１６７がユーザログインに応答して実行する方法のステップを示している。ステップ５１０でのユーザログインは、ファイル開封エージェント１６７による残りのステップの実行をトリガする。ステップ５１４において、ファイル開封エージェント１６７は、ユーザにより作成された共有ファイル（例えば、上述のステップ４２０で作製されたＸＭＬファイル）にアクセスして、共有ファイルを調べ、「最近」のファイル開封要求があるか否か判断する。一実施形態では、リモーティングセッションを通じてユーザにシームレスなファイル開封プロセスを提供することを目的としているため、ファイル開放エージェント１６７は、１分よりも古い要求を無視する。この時間の長さは環境要求に応じてカスタム化できる。ステップ５１６において、ファイル開封要求が古すぎるとファイル開封エージェント１６７が判断した場合、仮想デスクトップは通常の方法で起動される（ステップ５１８）。反対に、最近のファイル開封要求がある場合、ステップ５２０が実行される。一つの実施形態において、ファイル開封要求が古すぎるか否かの判断は、ファイル作成タイムスタンプを調べ、それを現在時刻と比較することによって行われる。
【００２７】
ステップ５２０で、ファイル開封エージェント１６７は、ファイル開封要求と共に保存されたファイルメタデータを調べて、ファイル開封要求の対象であるファイルのファイル名とファイル位置を特定し、仮想マシン内に保存されているそのファイルの内容が同期された状態であるか（すなわち、そのファイルについてなされたすべての永続的更新が仮想マシン内に永続的に保存されているか）を判断する。そうでなければ、ファイル開封エージェント１６７は、ステップ５２２でしばらく待機して、再びチェックする。仮想マシン内のファイルが同期されると、ファイル開封エージェント１６７は、ステップ５２４で、そのファイルを閲覧および編集のために開くことのできるアプリケーションを起動する。ファイルがマイクロソフト・ビジオ（登録商標）ファイルである例において、マイクロソフト・ビジオ（登録商標）のアプリケーションがステップ５２４で開封される。アプリケーションが起動されると、ステップ５２６で、ファイル開封エージェント１６７はそのアプリケーション内でファイルを開封する。
【００２８】
ステップ５２６とステップ５２８との間の破線の矢印は、ファイル開封エージェント１６７と、仮想マシン内で実行しているリモーティングサーバプロセスとの間の制御の移行を示している。ステップ５２８，５３０は、リモーティングサーバプロセスによって実行される。ステップ５２８において、クライアントマシン１０８に送信されるアプリケーション環境の表示が生成される。図３Ａおよび３Ｂに関して上述したように、この表示は、仮想デスクトップディスプレイを含んでいてもよいし、含んでいなくてもよい。リモートデスクトップセッションがクライアントマシン１０８内で起動されると、表示は、仮想デスクトップディスプレイを含むように生成される。一方、リモートアプリケーションセッションがクライアントマシン１０８内で起動されると、表示は、仮想デスクトップディスプレイのない状態で生成される。ステップ５３０で、生成された表示がクライアントマシン１０８に送信される。
【００２９】
ユーザがログインした仮想マシンがファイル同期エンジン１６６を持たない一実施形態では、ファイル開封エージェント１６７は、ステップ５１４において、自動的にファイル同期サーバ１８０の記憶部１８３と通信して、上述のステップ４２０で作製されたＸＭＬファイルにアクセスし、ステップ５１６において、「最近」のファイル開封要求があるか否かを確認する。次に、ステップ５２０において、ファイル開封エージェント１６７は、ファイル開封要求と共に保存されたファイルメタテータを調べて、ファイル開封要求の対象であるファイルのファイル名とファイル位置を特定し、その後、ステップ５２４に進む前に、このファイルの内容を仮想マシンにコピーする。
【００３０】
本明細書で説明した各種の実施形態は、コンピュータシステムに保存されたデータが関わる各種のコンピュータ実装動作を利用してよい。例えば、これらの動作は、物理的数量の物理的操作を必要とするかもしれず、通常、必ずではないが、これらの数量は、電気的または磁気的信号の形態をとってもよく、これらまたはそれを表現したものが保存、転送、複合、比較、またはその他の方法で操作される。さらに、このような操作はしばしば、例えば生成、特定、判断、また比較という用語で表される。本明細書に記載された、本発明の１つまたは複数の実施形態の一部を成す動作は、有益な機械動作であってもよい。これに加えて、本発明の１つまたは複数の実施形態は、この動作を実行するためのデバイスまたは装置にも関する。装置は、特定の要求された目的のために構築されてもよく、あるいは、コンピュータ内に保存されたコンピュータプログラムにより選択的に作動または構成される汎用コンピュータであってもよい。特に、各種の汎用マシンは、本明細書の教示に従って書かれたコンピュータプログラムと共に使用されてもよく、あるいは、必要な動作を実行するために、より専門化された装置を構成するほうが好都合である場合がある。
【００３１】
本明細書に記載される各種の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な民生用電子機器、マイクロコンピュータ、メインフレームコンピュータ、およびその他をはじめとするコンピュータシステムでも実施できる。
【００３２】
本発明の１つまたは複数の実施形態は、１つまたは複数のコンピュータ読取可能媒体に具現化された１つまたは複数のコンピュータプログラムとして、あるいは１つまたは複数のコンピュータプログラムモジュールとして実装することができる。ここで、コンピュータ読取可能媒体とは、コンピュータシステムに入力できるデータを保存しうるあらゆるデータ記憶デバイスを指す。コンピュータ読取可能媒体は、コンピュータプログラムをコンピュータが読み取れるような方法で具現化するための、いずれかの既存の、または今後開発される技術に基づいていてもよい。コンピュータ読取可能媒体の例としては、ハードドライブ、ネットワークアタッチトストレージ（ＮＡＳ）、リードオンリメモリ、ランダムアクセスメモリ（例えば、フラッシュメモリデバイス）、ＣＤ、例えばＣＤ−ＲＯＭ、ＣＤ−Ｒ、またはＣＤ−ＲＷ、ＤＶＤ、磁気テープ、ならびにその他の光および光以外のデータ記憶デバイスが含まれる。コンピュータ読取可能媒体はまた、ネットワークで連結されたコンピュータシステム上に分散させて、コンピュータ読取可能コードが分散された状態で保存、実行されてもよい。
【００３３】
本発明の１つまたは複数の実施形態を理解しやすいように詳しく説明したが、特許請求の範囲内で特定の変更や改変を加えることができる点は明らかである。したがって、記載された実施形態は、例示的であって、限定的と考えるべきではなく、特許請求の範囲は本明細書に記載された詳細な内容に限定されるべきではなく、特許請求の範囲とその均等物の範囲内で変更可能である。特許請求の範囲において、要素および／またはステップは、特許請求の範囲内に別段の明確な記載がない限り、何れの特定の動作順序も黙示していない。
【００３４】
各種の実施形態による仮想システムはホストされた実施形態、ホストされていない実施形態、またはこれら２つの間の区別が不明瞭になる実施形態でも実装でき、すべて想定される。さらに、各種の仮想化動作は、全体または部分的にハードウェアで実装されてもよい。例えば、ハードウェアの実装は、ディスク以外のデータを保護するために、ストレージアクセス要求の調整のためにルックアップテーブルを利用してもよい。
【００３５】
仮想化の程度に関しては、多くの変更、改変、追加、または改良が可能である。したがって、仮想化ソフトウェアは、仮想化機能を実行するホスト、コンソール、またはゲストオペレーティングシステムの構成要素を含むことができる。本明細書に記載された構成要素、動作、または構造について、複数の例が１つの例として示されている場合もある。最後に、各種の構成要素、動作、およびデータストア間の境界は、幾分任意であり、特定の動作が特定の例示的な構成に関して説明されている。その他の機能分配も想定され、本発明の範囲に含まれる。一般に、例示的な実施形態において別の構成要素として示された構造と機能は、組み合わされた構造または構成要素として実装されてもよい。同様に、単独のコンポーネントとして示された構造と機能は、別々の構成要素として実装されてもよい。これら、およびその他の変更、改変、追加、改良も、特許請求の範囲内に包含される。
【図１】
0006397113.tif 000002
【図２】
0006397113.tif 000003
【図３】
0006397113.tif 000004
【図４】
0006397113.tif 000005
【図５】
0006397113.tif 000006