(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5989001
(24)【登録日】2016年8月19日
(45)【発行日】2016年9月7日
(54)【発明の名称】ペルソナベースのアプリケーションエクスペリエンスの提供
(51)【国際特許分類】
G06F 9/445 20060101AFI20160825BHJP
【FI】
G06F9/06 610A
G06F9/06 610Q
【請求項の数】10
【全頁数】14
(21)【出願番号】特願2013-546297(P2013-546297)
(86)(22)【出願日】2011年12月20日
(65)【公表番号】特表2014-501408(P2014-501408A)
(43)【公表日】2014年1月20日
(86)【国際出願番号】US2011065950
(87)【国際公開番号】WO2012087990
(87)【国際公開日】20120628
【審査請求日】2014年11月21日
(31)【優先権主張番号】12/973,939
(32)【優先日】2010年12月21日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】オルビン チャードン
(72)【発明者】
【氏名】クリストファー ヘリック レイアーソン
(72)【発明者】
【氏名】アンジェラ メル アンダーソン
(72)【発明者】
【氏名】ガレン クライド ハント
(72)【発明者】
【氏名】ダグラス クリストファー バーガー
(72)【発明者】
【氏名】ディリップ クリシュナ パイ
【審査官】
長谷川 篤男
(56)【参考文献】
【文献】
米国特許出願公開第2009/0199178(US,A1)
【文献】
特開2003−337704(JP,A)
【文献】
特開2008−204330(JP,A)
【文献】
米国特許出願公開第2009/0183182(US,A1)
【文献】
米国特許出願公開第2009/0195711(US,A1)
【文献】
米国特許出願公開第2010/0023738(US,A1)
【文献】
特開2009−032073(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/445
G06F 15/00
(57)【特許請求の範囲】
【請求項1】
ペルソナベースのアプリケーションエクスペリエンスを提供するために、コンピュータによって実行される方法であって、
ペルソナパッケージについての問合せを、クライアントコンピュータ上で動作する仮想化クライアントから受け取るステップであって、前記ペルソナパッケージは、前記仮想化クライアント上で動作する仮想化されたアプリケーションのユーザ設定を含む、ステップと、
前記問合せを受け取ると、前記仮想化されたアプリケーションの実行を要求するユーザの現在のペルソナを決定するステップと、
前記ユーザの前記現在のペルソナに対応する前記ペルソナパッケージの場所を決定するステップと、
前記ユーザが前記仮想化されたアプリケーションの実行を要求した時刻に基づいて、前記ペルソナパッケージを選択するステップと
を含む、方法。
【請求項2】
前記ペルソナパッケージを選択する前記ステップが、前記ユーザに関連する確立された証明書に基づいて前記ペルソナパッケージを選択するステップを更に含む、請求項1に記載の方法。
【請求項3】
前記ペルソナパッケージを選択する前記ステップが、前記ユーザの現在の場所に基づいて前記ペルソナパッケージを選択するステップを更に含む、請求項1に記載の方法。
【請求項4】
前記ペルソナパッケージを選択する前記ステップが、前記問合せを送信した前記クライアントコンピュータのコンピュータネットワークに基づいて前記ペルソナパッケージを選択するステップを更に含む、請求項1に記載の方法。
【請求項5】
前記ペルソナパッケージを選択する前記ステップが、前記ユーザの嗜好または構成に基づいて前記ペルソナパッケージを選択するステップを更に含む、請求項1に記載の方法。
【請求項6】
前記ペルソナパッケージを選択する前記ステップが、前記ユーザのジェスチャに基づいて前記ペルソナパッケージを選択するステップを更に含む、請求項1に記載の方法。
【請求項7】
コンピュータによって実行されると、該コンピュータに、ペルソナベースのアプリケーションエクスペリエンスを提供するための方法を実行させるプログラムであって、前記方法は、
ペルソナパッケージについての問合せを、クライアントコンピュータ上で動作する仮想化クライアントから受け取るステップであって、前記ペルソナパッケージは、前記仮想化クライアント上で動作する仮想化されたアプリケーションのユーザ設定を含む、ステップと、
前記問合せを受け取ると、前記仮想化されたアプリケーションの実行を要求するユーザの現在のペルソナを決定するステップと、
前記ユーザの前記現在のペルソナに対応する前記ペルソナパッケージの場所を決定するステップと、
前記ユーザが前記仮想化されたアプリケーションの実行を要求した時刻に基づいて、前記ペルソナパッケージを選択するステップと
を含む、プログラム。
【請求項8】
コンピュータによって実行されると、該コンピュータに、ペルソナベースのアプリケーションエクスペリエンスを提供するための方法を実行させるプログラムであって、前記方法は、
ペルソナパッケージの場所についての問合せをペルソナプロバイダに送信するステップであって、前記ペルソナパッケージは、前記コンピュータ上で動作する仮想化されたアプリケーションのユーザ設定と、アプリケーション記憶設定と、アプリケーション状態設定とを含む、ステップと、
前記問合せに応答して、前記仮想化されたアプリケーションの実行を要求しているユーザの現在のペルソナに対応するペルソナパッケージの場所の情報を受け取るステップと、
前記場所において、前記ユーザ設定と、前記アプリケーション記憶設定と、前記アプリケーション状態設定とにアクセスするステップと、
前記ユーザ設定と、前記アプリケーション記憶設定と、前記アプリケーション状態設定とに従って、前記仮想化されたアプリケーションの実行を適合させるステップと
を含む、プログラム。
【請求項9】
プロセッサと、
前記プロセッサに通信可能に結合されたメモリであって、前記プロセッサによって実行されると、該プロセッサに、
ペルソナパッケージについての問合せを、クライアントコンピュータ上で動作する仮想化クライアントから受け取るステップであって、前記ペルソナパッケージが、前記仮想化クライアント上で動作する仮想化されたアプリケーションのユーザ設定を含むステップと、
前記問合せを受け取ると、前記仮想化されたアプリケーションの実行を要求するユーザの現在のペルソナを決定するステップと、
前記ユーザの前記現在のペルソナに対応する前記ペルソナパッケージの場所を決定するステップと、
前記ユーザが前記仮想化されたアプリケーションの実行を要求した時刻に基づいて、前記ペルソナパッケージを選択するステップと
を実行させるプログラムを記憶したメモリと
を備える、コンピュータシステム。
【請求項10】
プロセッサと、
前記プロセッサに通信可能に結合されたメモリと
を備えたコンピュータシステムであって、
前記メモリは、前記プロセッサによって実行されると、該プロセッサに、
ペルソナパッケージの場所についての問合せをペルソナプロバイダに送信するステップであって、前記ペルソナパッケージは、当該コンピュータシステム上で動作する仮想化されたアプリケーションのユーザ設定と、アプリケーション記憶設定と、アプリケーション状態設定とを含む、ステップと、
前記問合せに応答して、前記仮想化されたアプリケーションの実行を要求しているユーザの現在のペルソナに対応するペルソナパッケージの場所の情報を受け取るステップと、
前記場所において、前記1つ又は複数のユーザ設定と、前記アプリケーション記憶設定と、前記アプリケーション状態設定とにアクセスするステップと、
前記1つ又は複数のユーザ設定と、前記アプリケーション記憶設定と、前記アプリケーション状態設定とに従って、前記仮想化されたアプリケーションの実行を適合させるステップと
を実行させるプログラムを記憶する、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ペルソナベースのアプリケーションエクスペリエンスの提供に関する。
【背景技術】
【0002】
コンピューティング装置の中には、複数の目的でおよび様々な場所で利用できるモバイル装置がある。例えば、従業員がラップトップコンピュータを持ち運ぶこともあるかもしれない。ラップトップコンピュータの可搬性および柔軟性により、従業員は仕事関連の機能を実施し、職場、自宅、喫茶店、および他の場所で個人的なコンピューティングニーズに対処することができるかもしれない。しかし、従業員の地位により、従業員が安全な仕事用のネットワークを介してビジネス上重要なデータにアクセスする必要があるかもしれない。結果として、雇用者が、かかるビジネス上重要なデータおよび仕事用のネットワークの安全性を気にするかもしれない。
【発明の概要】
【発明が解決しようとする課題】
【0003】
従来、雇用者は、仕事用のラップトップコンピュータを従業員に割り当て、ビジネス上重要なデータおよび仕事用のネットワークへのアクセスを当該仕事用のラップトップコンピュータのみを介するよう制限することができる。雇用者はまた、仕事に関係しない個人的なアプリケーションへのアクセスを制限することもできる。結果として、従業員は、個人的なコンピューティングニーズに対処するために別のラップトップコンピュータを持ち運ぶこととなるかもしれない。このような、複数の目的を満足するために複数のコンピューティング装置を持ち運び維持するということは、特に複数の装置(例えば、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、等)を有するユーザにとって、非常に重荷であり費用がかかることになりうる。
【0004】
本明細書における本開示は、以上およびその他を鑑みてなされたものである。
【課題を解決するための手段】
【0005】
本明細書では、ペルソナベースのアプリケーションエクスペリエンスを提供するための技術を説明する。アプリケーション仮想化により、コンピュータに何らインストールすることなくその独自の1組の構成を有するアプリケーションをコンピュータに配信する能力を提供する。当該アプリケーションを、その独自の仮想ファイルシステム、構成ファイル、等を有する仮想環境を介してコンピュータ上で実行してもよい。このように、当該アプリケーションを他のアプリケーションから隔離して実行することができ、それにより、従来インストールされていたソフトウェアアプリケーション上に存在するアプリケーション衝突を回避することができる。
【0006】
アプリケーション仮想化の機能を利用することで、仮想化されたアプリケーションを複数のペルソナパッケージから選択された適切なペルソナパッケージと適合させることができる。当該ペルソナパッケージは、ペルソナ固有のユーザ設定、ペルソナ固有のアプリケーション記憶設定、およびペルソナ固有のアプリケーション状態設定を含むことができる。適切なペルソナパッケージを、仮想化されたアプリケーションの実行を要求するユーザの現在のペルソナに基づいて選択してもよい。仮想化されたアプリケーションをこの選択されたペルソナパッケージと適合させることによって、仮想化されたアプリケーションをユーザの現在のペルソナに従ってカスタマイズすることができる。例えば、ユーザのペルソナが仕事のペルソナ、地域社会活動家のペルソナ、学生のペルソナ、自宅のペルソナ、等を含んでもよい。
【0007】
幾つかの技術の例では、メモリおよびプロセッサを有するコンピュータを、ペルソナベースのアプリケーションエクスペリエンスを提供するように構成する。当該コンピュータは、ペルソナパッケージの場所に対する問合せを仮想化クライアントから受け取る。問合せを受け取ると、当該コンピュータは、仮想化されたアプリケーションの実行を要求するユーザの現在のペルソナを決定する。当該コンピュータは、ユーザの現在のペルソナに対応するペルソナパッケージの場所を決定する。当該コンピュータは、問合せに応答して、ペルソナパッケージの場所を仮想化クライアントに送信する。仮想化クライアントを、ペルソナパッケージに適合した仮想化されたアプリケーションを実行するように構成してもよい。
【0008】
上述の主題を、コンピュータ制御された機器、コンピュータプロセス、コンピューティングシステムとして、またはコンピュータ読取可能記憶媒体のような製品として実装してもよいことは理解されよう。これらのおよび他の様々な特徴は、下記の発明を実施するための形態を読み添付図面を参照すれば明らかであろう。
【0009】
本発明の概要は、選択した概念を簡潔な形で導入するために与えたものである。これらの概念は下記の発明を実施するための形態でさらに説明する。本発明の概要は、特許請求する主題の主要な特徴または本質的な特徴を特定しようとするものではなく、本発明の概要を用いて特許請求する主題の範囲を限定しようとするものでもない。さらに、特許請求する主題は、本開示の任意の部分に記載した任意のまたは全ての欠点を解決する実装形態に限定されない。
【図面の簡単な説明】
【0010】
【
図1】幾つかの実施形態に従う、ペルソナベースのアプリケーションエクスペリエンスを提供するためのネットワークアーキテクチャを示すブロック図である。
【
図2】幾つかの実施形態に従う、ペルソナベースのアプリケーションエクスペリエンスを提供するための方法を示す流れ図である。
【
図3】本明細書で提示した実施形態を実装できるコンピューティングシステムに対する例示的なコンピュータ・ハードウェア・アーキテクチャを示すコンピュータアーキテクチャ図である。
【発明を実施するための形態】
【0011】
以下の詳細な説明は、ペルソナベースのアプリケーションエクスペリエンスを提供するための技術に関する。仮想化されたアプリケーションは、アプリケーション層および仮想化層を含むことができる。仮想化層は、基礎となる実行環境を抽象化することができる。仮想化層は、アプリケーション層が動作する隔離された仮想環境を提供することができる。仮想環境は、仮想ファイルシステム、仮想レジストリ等を備えることができる。
【0012】
本明細書で提示する技術および概念を利用して、仮想化層を、仮想化されたアプリケーションを適切なペルソナパッケージに基づいてカスタマイズするように適合させることができる。ユーザが仮想化されたアプリケーションの実行を要求すると、仮想化層がペルソナプロバイダに問合せることができる。ペルソナプロバイダは、ユーザの現在のペルソナを複数のペルソナから決定するものである。ペルソナプロバイダは次に、現在のペルソナに対応するペルソナ構成を選択することができる。
【0013】
ペルソナ構成を選択すると、ペルソナプロバイダは適切なペルソナパッケージの場所をこの選択されたペルソナ構成から取り出すことができる。ペルソナプロバイダは次に、適切なペルソナパッケージの場所を仮想化層に提供することができる。仮想化層は当該場所にあるペルソナパッケージにアクセスして、仮想化されたアプリケーションをペルソナパッケージに従ってカスタマイズすることができる。このように、ユーザにペルソナベースのアプリケーションエクスペリエンスを提供することができる。適切なペルソナパッケージは、ペルソナ固有のユーザ設定、ペルソナ固有のアプリケーション記憶設定、およびペルソナ固有のアプリケーション状態設定を含むことができる。
【0014】
本明細書で説明する主題を、オペレーティングシステムおよびアプリケーションプログラムの実行とともにコンピュータシステムで実行されるプログラムモジュールの一般的なコンテキストで提示するが、他の実装形態を他の種類のプログラムモジュールと組み合わせて実施してもよいことは当業者には理解されよう。一般に、プログラムモジュールは、特定のタスクを実施するかまたは特定の抽象データ型を実装する、ルーチン、プログラム、コンポーネント、データ構造、および他の種類の構造を含む。さらに、本明細書で説明する主題を他のコンピュータシステム構成で実践してもよいことは当業者には理解されよう。当該他のコンピュータシステム構成には、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ等が含まれる。
【0015】
以下の詳細な説明では、その一部を形成する添付図面を参照する。当該添付図面は、例示、具体的な実施形態、または例として示されている。次に図面を参照して、ペルソナベースのアプリケーションエクスペリエンスを提供するためのコンピューティングシステムおよび方法を説明する。当該図面においては、幾つかの図にわたって同じ番号が同じ要素を表す。特に、
図1は、幾つかの実施形態に従う、ペルソナベースのアプリケーションエクスペリエンスを提供するためのネットワークアーキテクチャ100を示す。ネットワークアーキテクチャ100が、クライアントコンピュータ102、アプリケーション仮想化サーバコンピュータ104、ペルソナサーバコンピュータ106、およびデータストア108を備えてもよい。クライアントコンピュータ102、アプリケーション仮想化サーバコンピュータ104、ペルソナサーバコンピュータ106、およびデータストア108を、通信ネットワーク110を介して接続してもよい。通信ネットワーク110の幾つかの例には、LAN(local area network)、WAN(wide area network)、およびインターネットを含めてもよい。
【0016】
クライアントコンピュータ102が仮想化クライアント112を備えることができる。アプリケーション仮想化サーバコンピュータ104がシーケンサモジュール114および配備モジュール116を備えることができる。ペルソナサーバコンピュータ106はペルソナプロバイダ118および構成マネージャ120を備えることができる。他の実施形態では、ペルソナサーバコンピュータ106および/またはデータストア108内の1つまたは複数のコンポーネントをクライアントコンピュータ102内に局所的に含めてもよい。
【0017】
クライアントコンピュータ102を、仮想化されたアプリケーション122のような1つまたは複数の仮想化されたアプリケーションを提供するように構成することができる。一般に、アプリケーション仮想化とは、従来インストールされていたアプリケーションを、クライアントコンピュータにインストールする必要なしに、クライアントコンピュータが利用できるようにする様々な技法のことをいう。アプリケーション仮想化では、仮想化されたアプリケーションをオンデマンドでクライアントコンピュータにストリーミングすることができる。各仮想化されたアプリケーションを、その自己充足的な仮想環境においてクライアントコンピュータ上で実行することができる。即ち、各仮想化されたアプリケーションを互いから、ならびに、基礎となるオペレーティングシステムから隔離することができる。結果として、アプリケーション仮想化によりアプリケーション衝突を減らすことができ、アプリケーションのパッチ適用および更新を集約化し簡略化することができ、新規のアプリケーションの展開および更新を加速することができる。
【0018】
幾つかの例示的な実装形態では、シーケンサモジュール114は従来インストールされていたアプリケーション(以降、「従来のアプリケーション」)124を仮想化されたアプリケーション122に仮想化することができる。シーケンサモジュール114は次に、仮想化されたアプリケーション122を配備モジュール116に提供することができる。配備モジュール116は仮想化されたアプリケーション122をクライアントコンピュータ102にオンデマンドでストリーミングすることができる。例えば、ユーザは、クライアントコンピュータ102が提供するGUI(graphical user interface)上の仮想化されたアプリケーション122に対応するアイコンを選択することによって、仮想化されたアプリケーション122の実行を要求することができる。仮想化クライアント112は、クライアントコンピュータ102によって実行するための仮想化されたアプリケーション122を受け取ることができる。仮想化されたアプリケーション122を生成するための、および/または、仮想化されたアプリケーション122をクライアントコンピュータ102に展開するための、他の適切な技法を当業者が想到できることは理解されよう。
【0019】
仮想化されたアプリケーション122はアプリケーション層126および仮想化層128を備えることができる。アプリケーション層126は、仮想化されたアプリケーション122の様々なアプリケーション関連のタスクを提供できるプログラムコードおよび他の適切なデータを含むことができる。仮想化層128は、クライアントコンピュータ102がアプリケーション層126を実行する、基礎となる仮想環境を提供し管理することができる。例えば、仮想環境が、仮想ファイルシステム、仮想レジストリ等を備えることができる。
【0020】
仮想環境を確立するとき、仮想化層128は、ユーザの現在のペルソナに関連する適切なペルソナパッケージの場所についてペルソナプロバイダ118に問合わせることができる。この問合せを受け取ると、ペルソナプロバイダ118は、ユーザの現在のペルソナを決定し、ユーザの現在のペルソナに対応するペルソナ構成を選択することができる。ペルソナプロバイダ118は、1番目のペルソナ構成130A、2番目のペルソナ構成130B、およびN番目のペルソナ構成130Nを備えることができる。ペルソナ構成130A〜130Nを集合的にペルソナ構成130と称してもよい。他の実施形態では、ペルソナ構成130A〜130Nをリモート・データストア(図示せず)に格納し、ペルソナプロバイダ118がネットワーク110を介して取り出してもよい。
【0021】
様々な実施形態では、ペルソナプロバイダ118は、ユーザの現在のペルソナを決定し、対応するペルソナ構成をペルソナ構成130からペルソナ特定情報に基づいて選択することができる。ペルソナ構成130を、ユーザ、管理者が、および/または誰か他の社員が、構成マネージャ120を介して規定してもよい。構成マネージャ120へのアクセスを、幾つかの実施形態に従って制限してもよい。例えば、構成マネージャ120が、アクセスを制限して管理者のみを選択してもよく、それにより、企業は、従業員がペルソナ構成130を修正できないようにすることができる。ペルソナ特定情報の幾つかの例には、ユーザの確立された証明書、ユーザの場所、時刻、ユーザのコンピュータネットワーク、ユーザのジェスチャ、および/またはユーザの嗜好もしくは構成を含めてもよい。
【0022】
確立された証明書が、ユーザを特定する何らかの形態のIDを含むことができる。このケースでは、ペルソナプロバイダ118が、特定されたユーザに対応するペルソナ構成を選択することができる。ユーザの身分を、ユーザが(例えば、ユーザ名およびパスワードを通じて)サブミットしてもよく、または、他の適切な手段(例えば、クライアントコンピュータ102に関連するMAC(Media Access Control)アドレス)により決定することができる。このケースでは、ペルソナプロバイダ118が、ユーザの身分に対応するペルソナ構成を選択してもよい。ユーザの場所が、ユーザが仮想化されたアプリケーション122の実行を要求したときのユーザの場所を指すことができる。ユーザの場所を、IP(Internet Protocol)アドレス、GPS(Global Position System)座標、または他の適切な場所決定技法に基づいて決定することができる。このケースでは、ペルソナプロバイダ118が、ユーザの場所に対応するペルソナ構成を選択することができる。
【0023】
時刻は、ユーザが仮想化されたアプリケーション122の実行を要求したときの現在の時刻を指すことができる。このケースでは、ペルソナプロバイダ118が、時刻に対応するペルソナ構成を選択することができる。コンピュータネットワークが、クライアントコンピュータ102が接続されている現在のコンピュータネットワークを指すことができる。コンピュータネットワークを、IPアドレス、または、クライアントコンピュータ102に関連する他の適切なネットワーク関連情報により決定してもよい。例えば、コンピュータネットワークを特定することにより、ペルソナプロバイダ118が、ユーザが自宅にいるか、職場にいるか、または他の何らかの場所にいるかどうかを決定してもよい。このケースでは、ペルソナプロバイダ118が、ユーザのコンピュータネットワークに対応するペルソナ構成を選択してもよい。
【0024】
ユーザのジェスチャは、特定のユーザ動作を指すことができる。このケースでは、ペルソナプロバイダ118が、ペルソナ構成を当該ユーザの特定の動作に基づいて選択または推論することができる。例えば、ユーザが特定のドキュメントを開く場合、ペルソナプロバイダ118は、当該ドキュメントの種類および/または内容に対応するペルソナ構成を推論することができる。ユーザの嗜好または構成が、ペルソナ構成の選択に関するユーザ定義の嗜好および/または構成を指してもよい。このケースでは、ペルソナプロバイダ118が、ペルソナ構成をユーザの嗜好または構成に基づいて選択してもよい。例えば、ユーザが、各ペルソナ構成を様々な基準に関連付けてもよい。当該基準には、ユーザの場所、時刻、ユーザのコンピュータネットワーク、ユーザのジェスチャ等のような、以前に説明ものが含まれる。かかるユーザ嗜好が、管理者の構成とは別々に、または、管理者の構成と関連して動作してもよい。
【0025】
ペルソナ構成130の各々は、データストア108内の対応するペルソナパッケージの場所を含むことができる。データストア108は、データベースまたは他の適切なデータ記憶機構とすることができる。データストア108は、1番目のペルソナパッケージ132A、2番目のペルソナパッケージ132B、およびN番目のペルソナパッケージ132Nを含むことができる。例えば、1番目のペルソナパッケージ132Aが1番目のペルソナ構成130Aに対応してもよい。2番目のペルソナパッケージ132Bが2番目のペルソナ構成130Bに対応してもよい。N番目のペルソナパッケージ132NがN番目のペルソナ構成130Nに対応してもよい。ペルソナパッケージ132A〜132Nを集合的にペルソナパッケージ132と称してもよい。ペルソナプロバイダ118がユーザの現在のペルソナを決定し、ペルソナ特定情報に基づいてペルソナ構成を選択するとき、ペルソナプロバイダ118が対応するペルソナパッケージの場所を選択されたペルソナ構成から取り出すことができる。ペルソナプロバイダ118は次に、問合せに応答してペルソナパッケージの場所を仮想化層128に提供することができる。
【0026】
ペルソナパッケージの場所を受け取ると、仮想化層128がデータストア108の当該場所にあるペルソナパッケージにアクセスすることができる。仮想化層128は次に、仮想化されたアプリケーション122の実行をペルソナパッケージに従って適合させ、それにより、ペルソナベースのアプリケーションエクスペリエンスをユーザに提供することができる。特に、仮想化層128は、ペルソナパッケージに含まれるユーザ設定、アプリケーション記憶、およびアプリケーション状態にアクセスすることができる。例えば、1番目のペルソナパッケージ132Aは、1番目のペルソナパッケージ132Aに固有の、関連するユーザ設定134A、アプリケーション記憶設定136A、およびアプリケーション状態設定138Aを備えることができる。2番目のペルソナパッケージ132Bは、2番目のペルソナパッケージ132Bに固有の、関連するユーザ設定134B、アプリケーション記憶設定136B、およびアプリケーション状態設定l38Bを備えることができる。N番目のペルソナパッケージ132Nは、N番目のペルソナパッケージ132Nに固有の、関連するユーザ設定134N、アプリケーション記憶設定136N、およびアプリケーション状態設定138Nを備えることができる。ユーザ設定134A〜134Nを集合的にユーザ設定134と称してもよい。アプリケーション記憶設定136A〜136Nを、集合的にアプリケーション記憶設定136と称してもよい。アプリケーション状態設定138A〜138Nを集合的にアプリケーション状態設定138と称してもよい。
【0027】
ユーザ設定134は、仮想化されたアプリケーション122のユーザ指定の設定を定義することができる。1例では、ユーザが、特定のテーマ、特定のアイコン、および特定のツールバーを選択することによって、仮想化されたアプリケーション122のGUIをカスタマイズすることができる。別の例では、ユーザが、仮想化されたアプリケーション122のセキュリティ設定をカスタマイズしてもよい。アプリケーション記憶設定136は、ローカルおよび/またはリモートのアプリケーション記憶の場所を定義することができ、当該場所からアプリケーションデータを取り出すことができ、当該場所へアプリケーションデータを格納することができる。例えば、仮想化されたアプリケーション122がワードプロセッシング・アプリケーションである場合は、アプリケーション記憶が、仮想化されたアプリケーション122を介して生成されたドキュメントを格納することができる。アプリケーション状態設定138は、仮想化されたアプリケーション122が閉じられる前の仮想化されたアプリケーション122の直近の状態を定義することができる。例えば、仮想化されたアプリケーション122がワードプロセッシング・アプリケーションである場合は、アプリケーション状態は、仮想化されたアプリケーション122がアクセスした最近のドキュメントのリストおよび当該ドキュメントに挿入された最近の記号のリストを含むことができる。
【0028】
図2を参照すると、仮想化クライアント112およびペルソナプロバイダ118の動作に関する追加の詳細が示されている。特に、
図2は、幾つかの実施形態に従う、ペルソナベースのアプリケーションエクスペリエンスを提供するための方法を示す流れ図である。本明細書で説明する論理動作が、(1)コンピューティングシステムで実行されている一連のコンピュータ実装型の動作またはプログラムモジュールとして、および/または、(2)コンピューティングシステム内部の相互接続されたマシン論理回路もしくは回路モジュールとして、実装されることは理解されよう。実装は、コンピューティングシステムの性能および他の要件に応じた選択の問題である。したがって、本明細書で説明する論理動作は、状態操作、構造的装置、動作、またはモジュールと様々に称される。これらの操作、構造的装置、動作、およびモジュールを、ソフトウェアで、ファームウェアで、特殊目的のデジタル論理で、およびそれらの任意の組合せで実装してもよい。図に示し本明細書で説明するものよりも多くのまたは少ない動作を実施してもよいことは理解されよう。これらの動作を、本明細書で説明するものとは異なる順序で実施してもよい。
【0029】
図2において、ルーチン200は動作202で開始し、仮想化層128が適切なペルソナパッケージに対する問合せをペルソナプロバイダ118に送信する。仮想化層128は当該問合せを、ユーザが仮想化されたアプリケーション122の実行を要求したときに送信することができる。ルーチン200は次に動作204に進み、ペルソナプロバイダ118が適切なペルソナパッケージに対する問合せを仮想化層128から受け取る。ペルソナプロバイダ118が適切なペルソナパッケージに対する問合せを仮想化層128から受け取ると、ルーチン200は動作206に進む。
【0030】
動作206で、ペルソナプロバイダ118は仮想化されたアプリケーション122の実行を要求するユーザの現在のペルソナを決定する。ペルソナプロバイダ118は、ユーザの現在のペルソナを適切なペルソナ特定情報に基づいて決定することができる。ペルソナ特定情報の幾つかの例には、ユーザの確立された証明書、ユーザの場所、時刻、ユーザのコンピュータネットワーク、ユーザのジェスチャ、および/またはユーザの嗜好もしくはユーザの構成を含むことができる。ペルソナプロバイダが、仮想化されたアプリケーション122の実行を要求するユーザの現在のペルソナを決定すると、ルーチン200は動作208に進む。
【0031】
動作208で、ペルソナプロバイダ118が適切なペルソナパッケージの場所を決定する。ペルソナプロバイダ118が、ユーザの現在のペルソナに対応するペルソナ構成を複数のペルソナ構成130から特定することができる。例示的な例では、ペルソナプロバイダ118が、1番目のペルソナ構成130Aがユーザの現在のペルソナに対応すると特定してもよい。ペルソナプロバイダ118は次に、1番目のペルソナ構成130Aに含まれる1番目のペルソナパッケージ132Aの場所を取り出すことができる。ペルソナプロバイダ118が適切なペルソナパッケージの場所を決定すると、ルーチン200は動作210に進む。
【0032】
動作210で、ペルソナプロバイダ118が当該問合せに応答して適切なペルソナパッケージの場所を仮想化層128に送信する。例示的な例では、ペルソナプロバイダ118が1番目のペルソナパッケージ132Aの場所を仮想化層128に送信することができる。ルーチン200は次に動作212に進み、仮想化層128が適切なペルソナパッケージの場所を受け取る。仮想化層128が適切なペルソナパッケージの場所を受け取ると、ルーチン200は動作214に進む。
【0033】
動作214で、仮想化層128が、データストア108内の当該場所にあるペルソナパッケージにアクセスする。特に、仮想化層128が、適切なペルソナパッケージに含まれるユーザ設定、アプリケーション記憶設定、およびアプリケーション状態設定にアクセスすることができる。例示的な例では、仮想化層128が、1番目のペルソナパッケージ132Aに含まれるユーザ設定134A、アプリケーション記憶設定136A、およびアプリケーション状態設定138Aにアクセスすることができる。仮想化層128がデータストア108内の当該場所にあるペルソナパッケージにアクセスすると、ルーチン200は動作218に進む。
【0034】
動作218で、仮想化層128が、アクセスされたユーザ設定、アプリケーション記憶設定、およびアプリケーション状態設定に適合した仮想化されたアプリケーション122を実行する。例示的な例では、仮想化層128が、ユーザ設定134A、アプリケーション記憶設定136A、およびアプリケーション状態設定138Aに適合した仮想化アプリケーション122を実行することができる。このように、仮想化されたアプリケーション122の実行をユーザの現在のペルソナに従ってカスタマイズすることができる。仮想化層128は、ユーザ設定、アプリケーション記憶設定、およびアプリケーション状態設定に適合した仮想化されたアプリケーション122を実行すると、ルーチン200を(例えば、定期的に、継続的に、または必要に応じてオンデマンドで)繰り返すかまたは終了することができる。
【0035】
次に
図3を参照すると、コンピュータ300を示す例示的なコンピュータアーキテクチャ図が示されている。コンピュータ300の例には、クライアントコンピュータ102、アプリケーション仮想化サーバコンピュータ104、およびペルソナサーバコンピュータ106を含めてもよい。コンピュータ300が、中央演算処理装置302、システムメモリ304、およびメモリ304を302に接続するシステムバス306を備えてもよい。コンピュータ300がさらに、1つまたは複数のプログラムモジュール314およびデータストア316を格納するための大容量記憶装置312を備えてもよい。プログラムモジュール314の例には、仮想化クライアント112、シーケンサモジュール114、配備モジュール116、ペルソナプロバイダ118、および構成マネージャ120を含めてもよい。データストア316の例には、データストア108を含めてもよい。大容量記憶装置312を、バス306に接続した大容量記憶域制御装置(図示せず)を介して演算処理装置302に接続してもよい。大容量記憶装置312およびその関連するコンピュータ記憶媒体が、不揮発性記憶装置をコンピュータ300に提供してもよい。本明細書に含まれるコンピュータ記憶媒体の説明ではハードディスクまたはCD−ROMドライブのような大容量記憶装置について言及するが、コンピュータ記憶媒体が、コンピュータ300がアクセスできる任意の利用可能なコンピュータ記憶媒体でありうることは当業者には理解されよう。
【0036】
限定ではなく例として、コンピュータ記憶媒体には、コンピュータ記憶命令、データ構造、プログラムモジュール、または他のデータのような、情報を非一時的に記憶するための任意の方法または技術で実装した揮発性および不揮発性の媒体、取外し可能および取外し不能の媒体を含めてもよい。例えば、コンピュータ記憶媒体には、RAM、ROM、EPROM、EEPROM、フラッシュメモリもしくは他の固体メモリ技術、CD−ROM、DVD(digital versatile disk)、HD−DVD、BLU−RAY(登録商標)、もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報を記憶するために使用できコンピュータ300がアクセスできる他の任意の媒体が含まれるがこれらに限らない。
【0037】
様々な実施形態によれば、コンピュータ300が、ネットワーク110のようなネットワークを介したリモートコンピュータへの論理接続を用いてネットワーク環境で動作してもよい。コンピュータ300が、バス306に接続されたネットワークインタフェースユニット310を介してネットワーク110に接続してもよい。ネットワークインタフェースユニット310を利用して、他の種類のネットワークおよびリモートコンピュータシステムに接続してもよいことは理解されよう。コンピュータ300がまた、キーボード、マウス、マイクロフォン、およびゲーム制御装置を含む幾つかの入力装置(図示せず)からの入力を受け取り処理するための入/出力制御装置308を備えてもよい。同様に、入/出力制御装置308が、ディスプレイまたは他の種類の出力装置(図示せず)へ出力を提供してもよい。
【0038】
バス306により、演算処理装置302が、大容量記憶装置312または他のコンピュータ記憶媒体へ、またはそれらからコードおよび/またはデータを読み出すことができてもよい。コンピュータ記憶媒体が、任意の適切な技術を用いて実装された記憶要素の形の機器を表してもよい。当該技術には、半導体、磁気材料、光学、等が含まれるがこれらに限らない。コンピュータ記憶媒体が、RAM、ROM、フラッシュ、または他の種類の技術で特徴付けられるか否かに関わらず、メモリコンポーネントを表してもよい。コンピュータ記憶媒体が、ハードドライブまたはそれ以外で特徴付けられるか否かに関わらず、二次記憶装置を表してもよい。ハードドライブの実装形態を固体として特徴付けてもよく、または、磁気的にエンコードされた情報を格納する回転媒体を備えてもよい。
【0039】
プログラムモジュール314が、演算処理装置302にロードされ実行されるとコンピュータ300にペルソナベースのアプリケーションエクスペリエンスを提供させるソフトウェア命令を含んでもよい。プログラムモジュール314が様々なツールまたは技法を提供してもよく、これらの様々なツールまたは技法により、コンピュータ300が、本明細書で論じたコンポーネント、フロー、およびデータ構造を用いて全体のシステムまたは動作環境に参加することができる。例えば、プログラムモジュール314が、ペルソナベースのアプリケーションエクスペリエンスを提供するインタフェースを実装してもよい。
【0040】
一般に、プログラムモジュール314が、演算処理装置302にロードされて実行されると、演算処理装置302およびコンピュータ300全体を汎用目的のコンピューティングシステムから、ペルソナベースのアプリケーションエクスペリエンスを提供するようにカスタマイズされた特殊目的のコンピューティングシステムへ変換することができる。演算処理装置302を、任意数のトランジスタまたは他の離散的な回路要素から構築してもよく、これにより個別的にまたは集合的に任意数の状態をとることができる。より具体的には、演算処理装置302が、プログラムモジュール314内に含まれる実行可能命令に応答して、有限状態機械として動作してもよい。これらのコンピュータ実行可能命令が、どのように演算処理装置302が状態間を遷移するかを規定することによって演算処理装置302を変換し、それにより、演算処理装置302を構成するトランジスタまたは他の離散的なハードウェア要素を変換してもよい。
【0041】
プログラムモジュール314をエンコードすることで、コンピュータ記憶媒体の物理的構造を変換してもよい。本明細書の様々な実装形態において、物理的構造の具体的な変換は様々な因子に依存してもよい。かかる因子の例に、コンピュータ記憶媒体が一時記憶装置または二次記憶装置として特徴付けられるか否かに関わらず、コンピュータ記憶媒体を実装するために使用される技術、等を含めてもよいがこれらに限らない。例えば、コンピュータ記憶媒体が半導体ベースのメモリとして実装される場合、プログラムモジュール314がその中でエンコードされると、プログラムモジュール314が半導体メモリの物理的状態を変換してもよい。例えば、プログラムモジュール314が、トランジスタ、キャパシタ、または半導体メモリを構成する他の離散的な回路要素の状態を変換してもよい。
【0042】
別の例として、コンピュータ記憶媒体を、磁気技術または光技術を用いて実装してもよい。かかる実装形態では、プログラムモジュール314が磁気媒体または光媒体の中でエンコードされると、プログラムモジュール314が磁気媒体または光媒体の物理的状態を変換してもよい。これらの変換が、所与の磁気媒体内の特定の場所の磁気特性を変化させることを含んでもよい。これらの変換がまた、所与の光媒体内の特定の場所の物理的特徴または特性を変化させてこれらの場所の光特性を変えることを含んでもよい。上述の例はこの議論を容易にするために与えたにすぎず、本明細書の範囲を逸脱しない物理媒体の他の変換が可能である。
【0043】
以上に基づいて、ペルソナベースのアプリケーションエクスペリエンスを提供するための技術が本明細書で提示されていることが理解されよう。本明細書で提示した主題をコンピュータの構造的な特徴、方法論的動作、およびコンピュータ読取可能媒体に固有の言葉で説明したが、添付の特許請求の範囲で定義した本発明は本明細書で説明した具体的な特徴、動作、または媒体に必ずしも限定されないことは理解されよう。そうではなく、これらの具体的な特徴、動作、および媒体は、特許請求の範囲を実装する例示的な形として開示されている。
【0044】
上述した主題は、例示としてのみ提供したものであって、限定として解釈すべきではない。例示および説明した例示的な実施形態およびアプリケーションに従うことなく、かつ、本発明の真の趣旨および範囲から逸脱せずに、様々な修正および変更を本明細書で説明した主題に加えてもよい。本発明の真の趣旨および範囲は添付の特許請求の範囲で説明されている。