(57)【特許請求の範囲】
【請求項１】
ペルソナベースのアプリケーションエクスペリエンスを提供するために、コンピュータによって実行される方法であって、
ペルソナパッケージについての問合せを、クライアントコンピュータ上で動作する仮想化クライアントから受け取るステップであって、前記ペルソナパッケージは、前記仮想化クライアント上で動作する仮想化されたアプリケーションのユーザ設定を含む、ステップと、
前記問合せを受け取ると、前記仮想化されたアプリケーションの実行を要求するユーザの現在のペルソナを決定するステップと、
前記ユーザの前記現在のペルソナに対応する前記ペルソナパッケージの場所を決定するステップと、
前記ユーザが前記仮想化されたアプリケーションの実行を要求した時刻に基づいて、前記ペルソナパッケージを選択するステップと
を含む、方法。
【請求項２】
前記ペルソナパッケージを選択する前記ステップが、前記ユーザに関連する確立された証明書に基づいて前記ペルソナパッケージを選択するステップを更に含む、請求項１に記載の方法。
【請求項３】
前記ペルソナパッケージを選択する前記ステップが、前記ユーザの現在の場所に基づいて前記ペルソナパッケージを選択するステップを更に含む、請求項１に記載の方法。
【請求項４】
前記ペルソナパッケージを選択する前記ステップが、前記問合せを送信した前記クライアントコンピュータのコンピュータネットワークに基づいて前記ペルソナパッケージを選択するステップを更に含む、請求項１に記載の方法。
【請求項５】
前記ペルソナパッケージを選択する前記ステップが、前記ユーザの嗜好または構成に基づいて前記ペルソナパッケージを選択するステップを更に含む、請求項１に記載の方法。
【請求項６】
前記ペルソナパッケージを選択する前記ステップが、前記ユーザのジェスチャに基づいて前記ペルソナパッケージを選択するステップを更に含む、請求項１に記載の方法。
【請求項７】
コンピュータによって実行されると、該コンピュータに、ペルソナベースのアプリケーションエクスペリエンスを提供するための方法を実行させるプログラムであって、前記方法は、
ペルソナパッケージについての問合せを、クライアントコンピュータ上で動作する仮想化クライアントから受け取るステップであって、前記ペルソナパッケージは、前記仮想化クライアント上で動作する仮想化されたアプリケーションのユーザ設定を含む、ステップと、
前記問合せを受け取ると、前記仮想化されたアプリケーションの実行を要求するユーザの現在のペルソナを決定するステップと、
前記ユーザの前記現在のペルソナに対応する前記ペルソナパッケージの場所を決定するステップと、
前記ユーザが前記仮想化されたアプリケーションの実行を要求した時刻に基づいて、前記ペルソナパッケージを選択するステップと
を含む、プログラム。
【請求項８】
コンピュータによって実行されると、該コンピュータに、ペルソナベースのアプリケーションエクスペリエンスを提供するための方法を実行させるプログラムであって、前記方法は、
ペルソナパッケージの場所についての問合せをペルソナプロバイダに送信するステップであって、前記ペルソナパッケージは、前記コンピュータ上で動作する仮想化されたアプリケーションのユーザ設定と、アプリケーション記憶設定と、アプリケーション状態設定とを含む、ステップと、
前記問合せに応答して、前記仮想化されたアプリケーションの実行を要求しているユーザの現在のペルソナに対応するペルソナパッケージの場所の情報を受け取るステップと、
前記場所において、前記ユーザ設定と、前記アプリケーション記憶設定と、前記アプリケーション状態設定とにアクセスするステップと、
前記ユーザ設定と、前記アプリケーション記憶設定と、前記アプリケーション状態設定とに従って、前記仮想化されたアプリケーションの実行を適合させるステップと
を含む、プログラム。
【請求項９】
プロセッサと、
前記プロセッサに通信可能に結合されたメモリであって、前記プロセッサによって実行されると、該プロセッサに、
ペルソナパッケージについての問合せを、クライアントコンピュータ上で動作する仮想化クライアントから受け取るステップであって、前記ペルソナパッケージが、前記仮想化クライアント上で動作する仮想化されたアプリケーションのユーザ設定を含むステップと、
前記問合せを受け取ると、前記仮想化されたアプリケーションの実行を要求するユーザの現在のペルソナを決定するステップと、
前記ユーザの前記現在のペルソナに対応する前記ペルソナパッケージの場所を決定するステップと、
前記ユーザが前記仮想化されたアプリケーションの実行を要求した時刻に基づいて、前記ペルソナパッケージを選択するステップと
を実行させるプログラムを記憶したメモリと
を備える、コンピュータシステム。
【請求項１０】
プロセッサと、
前記プロセッサに通信可能に結合されたメモリと
を備えたコンピュータシステムであって、
前記メモリは、前記プロセッサによって実行されると、該プロセッサに、
ペルソナパッケージの場所についての問合せをペルソナプロバイダに送信するステップであって、前記ペルソナパッケージは、当該コンピュータシステム上で動作する仮想化されたアプリケーションのユーザ設定と、アプリケーション記憶設定と、アプリケーション状態設定とを含む、ステップと、
前記問合せに応答して、前記仮想化されたアプリケーションの実行を要求しているユーザの現在のペルソナに対応するペルソナパッケージの場所の情報を受け取るステップと、
前記場所において、前記１つ又は複数のユーザ設定と、前記アプリケーション記憶設定と、前記アプリケーション状態設定とにアクセスするステップと、
前記１つ又は複数のユーザ設定と、前記アプリケーション記憶設定と、前記アプリケーション状態設定とに従って、前記仮想化されたアプリケーションの実行を適合させるステップと
を実行させるプログラムを記憶する、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ペルソナベースのアプリケーションエクスペリエンスの提供に関する。
【背景技術】
【０００２】
コンピューティング装置の中には、複数の目的でおよび様々な場所で利用できるモバイル装置がある。例えば、従業員がラップトップコンピュータを持ち運ぶこともあるかもしれない。ラップトップコンピュータの可搬性および柔軟性により、従業員は仕事関連の機能を実施し、職場、自宅、喫茶店、および他の場所で個人的なコンピューティングニーズに対処することができるかもしれない。しかし、従業員の地位により、従業員が安全な仕事用のネットワークを介してビジネス上重要なデータにアクセスする必要があるかもしれない。結果として、雇用者が、かかるビジネス上重要なデータおよび仕事用のネットワークの安全性を気にするかもしれない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従来、雇用者は、仕事用のラップトップコンピュータを従業員に割り当て、ビジネス上重要なデータおよび仕事用のネットワークへのアクセスを当該仕事用のラップトップコンピュータのみを介するよう制限することができる。雇用者はまた、仕事に関係しない個人的なアプリケーションへのアクセスを制限することもできる。結果として、従業員は、個人的なコンピューティングニーズに対処するために別のラップトップコンピュータを持ち運ぶこととなるかもしれない。このような、複数の目的を満足するために複数のコンピューティング装置を持ち運び維持するということは、特に複数の装置（例えば、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、等）を有するユーザにとって、非常に重荷であり費用がかかることになりうる。
【０００４】
本明細書における本開示は、以上およびその他を鑑みてなされたものである。
【課題を解決するための手段】
【０００５】
本明細書では、ペルソナベースのアプリケーションエクスペリエンスを提供するための技術を説明する。アプリケーション仮想化により、コンピュータに何らインストールすることなくその独自の１組の構成を有するアプリケーションをコンピュータに配信する能力を提供する。当該アプリケーションを、その独自の仮想ファイルシステム、構成ファイル、等を有する仮想環境を介してコンピュータ上で実行してもよい。このように、当該アプリケーションを他のアプリケーションから隔離して実行することができ、それにより、従来インストールされていたソフトウェアアプリケーション上に存在するアプリケーション衝突を回避することができる。
【０００６】
アプリケーション仮想化の機能を利用することで、仮想化されたアプリケーションを複数のペルソナパッケージから選択された適切なペルソナパッケージと適合させることができる。当該ペルソナパッケージは、ペルソナ固有のユーザ設定、ペルソナ固有のアプリケーション記憶設定、およびペルソナ固有のアプリケーション状態設定を含むことができる。適切なペルソナパッケージを、仮想化されたアプリケーションの実行を要求するユーザの現在のペルソナに基づいて選択してもよい。仮想化されたアプリケーションをこの選択されたペルソナパッケージと適合させることによって、仮想化されたアプリケーションをユーザの現在のペルソナに従ってカスタマイズすることができる。例えば、ユーザのペルソナが仕事のペルソナ、地域社会活動家のペルソナ、学生のペルソナ、自宅のペルソナ、等を含んでもよい。
【０００７】
幾つかの技術の例では、メモリおよびプロセッサを有するコンピュータを、ペルソナベースのアプリケーションエクスペリエンスを提供するように構成する。当該コンピュータは、ペルソナパッケージの場所に対する問合せを仮想化クライアントから受け取る。問合せを受け取ると、当該コンピュータは、仮想化されたアプリケーションの実行を要求するユーザの現在のペルソナを決定する。当該コンピュータは、ユーザの現在のペルソナに対応するペルソナパッケージの場所を決定する。当該コンピュータは、問合せに応答して、ペルソナパッケージの場所を仮想化クライアントに送信する。仮想化クライアントを、ペルソナパッケージに適合した仮想化されたアプリケーションを実行するように構成してもよい。
【０００８】
上述の主題を、コンピュータ制御された機器、コンピュータプロセス、コンピューティングシステムとして、またはコンピュータ読取可能記憶媒体のような製品として実装してもよいことは理解されよう。これらのおよび他の様々な特徴は、下記の発明を実施するための形態を読み添付図面を参照すれば明らかであろう。
【０００９】
本発明の概要は、選択した概念を簡潔な形で導入するために与えたものである。これらの概念は下記の発明を実施するための形態でさらに説明する。本発明の概要は、特許請求する主題の主要な特徴または本質的な特徴を特定しようとするものではなく、本発明の概要を用いて特許請求する主題の範囲を限定しようとするものでもない。さらに、特許請求する主題は、本開示の任意の部分に記載した任意のまたは全ての欠点を解決する実装形態に限定されない。
【図面の簡単な説明】
【００１０】
【図１】幾つかの実施形態に従う、ペルソナベースのアプリケーションエクスペリエンスを提供するためのネットワークアーキテクチャを示すブロック図である。
【図２】幾つかの実施形態に従う、ペルソナベースのアプリケーションエクスペリエンスを提供するための方法を示す流れ図である。
【図３】本明細書で提示した実施形態を実装できるコンピューティングシステムに対する例示的なコンピュータ・ハードウェア・アーキテクチャを示すコンピュータアーキテクチャ図である。
【発明を実施するための形態】
【００１１】
以下の詳細な説明は、ペルソナベースのアプリケーションエクスペリエンスを提供するための技術に関する。仮想化されたアプリケーションは、アプリケーション層および仮想化層を含むことができる。仮想化層は、基礎となる実行環境を抽象化することができる。仮想化層は、アプリケーション層が動作する隔離された仮想環境を提供することができる。仮想環境は、仮想ファイルシステム、仮想レジストリ等を備えることができる。
【００１２】
本明細書で提示する技術および概念を利用して、仮想化層を、仮想化されたアプリケーションを適切なペルソナパッケージに基づいてカスタマイズするように適合させることができる。ユーザが仮想化されたアプリケーションの実行を要求すると、仮想化層がペルソナプロバイダに問合せることができる。ペルソナプロバイダは、ユーザの現在のペルソナを複数のペルソナから決定するものである。ペルソナプロバイダは次に、現在のペルソナに対応するペルソナ構成を選択することができる。
【００１３】
ペルソナ構成を選択すると、ペルソナプロバイダは適切なペルソナパッケージの場所をこの選択されたペルソナ構成から取り出すことができる。ペルソナプロバイダは次に、適切なペルソナパッケージの場所を仮想化層に提供することができる。仮想化層は当該場所にあるペルソナパッケージにアクセスして、仮想化されたアプリケーションをペルソナパッケージに従ってカスタマイズすることができる。このように、ユーザにペルソナベースのアプリケーションエクスペリエンスを提供することができる。適切なペルソナパッケージは、ペルソナ固有のユーザ設定、ペルソナ固有のアプリケーション記憶設定、およびペルソナ固有のアプリケーション状態設定を含むことができる。
【００１４】
本明細書で説明する主題を、オペレーティングシステムおよびアプリケーションプログラムの実行とともにコンピュータシステムで実行されるプログラムモジュールの一般的なコンテキストで提示するが、他の実装形態を他の種類のプログラムモジュールと組み合わせて実施してもよいことは当業者には理解されよう。一般に、プログラムモジュールは、特定のタスクを実施するかまたは特定の抽象データ型を実装する、ルーチン、プログラム、コンポーネント、データ構造、および他の種類の構造を含む。さらに、本明細書で説明する主題を他のコンピュータシステム構成で実践してもよいことは当業者には理解されよう。当該他のコンピュータシステム構成には、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ等が含まれる。
【００１５】
以下の詳細な説明では、その一部を形成する添付図面を参照する。当該添付図面は、例示、具体的な実施形態、または例として示されている。次に図面を参照して、ペルソナベースのアプリケーションエクスペリエンスを提供するためのコンピューティングシステムおよび方法を説明する。当該図面においては、幾つかの図にわたって同じ番号が同じ要素を表す。特に、図１は、幾つかの実施形態に従う、ペルソナベースのアプリケーションエクスペリエンスを提供するためのネットワークアーキテクチャ１００を示す。ネットワークアーキテクチャ１００が、クライアントコンピュータ１０２、アプリケーション仮想化サーバコンピュータ１０４、ペルソナサーバコンピュータ１０６、およびデータストア１０８を備えてもよい。クライアントコンピュータ１０２、アプリケーション仮想化サーバコンピュータ１０４、ペルソナサーバコンピュータ１０６、およびデータストア１０８を、通信ネットワーク１１０を介して接続してもよい。通信ネットワーク１１０の幾つかの例には、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、およびインターネットを含めてもよい。
【００１６】
クライアントコンピュータ１０２が仮想化クライアント１１２を備えることができる。アプリケーション仮想化サーバコンピュータ１０４がシーケンサモジュール１１４および配備モジュール１１６を備えることができる。ペルソナサーバコンピュータ１０６はペルソナプロバイダ１１８および構成マネージャ１２０を備えることができる。他の実施形態では、ペルソナサーバコンピュータ１０６および／またはデータストア１０８内の１つまたは複数のコンポーネントをクライアントコンピュータ１０２内に局所的に含めてもよい。
【００１７】
クライアントコンピュータ１０２を、仮想化されたアプリケーション１２２のような１つまたは複数の仮想化されたアプリケーションを提供するように構成することができる。一般に、アプリケーション仮想化とは、従来インストールされていたアプリケーションを、クライアントコンピュータにインストールする必要なしに、クライアントコンピュータが利用できるようにする様々な技法のことをいう。アプリケーション仮想化では、仮想化されたアプリケーションをオンデマンドでクライアントコンピュータにストリーミングすることができる。各仮想化されたアプリケーションを、その自己充足的な仮想環境においてクライアントコンピュータ上で実行することができる。即ち、各仮想化されたアプリケーションを互いから、ならびに、基礎となるオペレーティングシステムから隔離することができる。結果として、アプリケーション仮想化によりアプリケーション衝突を減らすことができ、アプリケーションのパッチ適用および更新を集約化し簡略化することができ、新規のアプリケーションの展開および更新を加速することができる。
【００１８】
幾つかの例示的な実装形態では、シーケンサモジュール１１４は従来インストールされていたアプリケーション（以降、「従来のアプリケーション」）１２４を仮想化されたアプリケーション１２２に仮想化することができる。シーケンサモジュール１１４は次に、仮想化されたアプリケーション１２２を配備モジュール１１６に提供することができる。配備モジュール１１６は仮想化されたアプリケーション１２２をクライアントコンピュータ１０２にオンデマンドでストリーミングすることができる。例えば、ユーザは、クライアントコンピュータ１０２が提供するＧＵＩ（ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）上の仮想化されたアプリケーション１２２に対応するアイコンを選択することによって、仮想化されたアプリケーション１２２の実行を要求することができる。仮想化クライアント１１２は、クライアントコンピュータ１０２によって実行するための仮想化されたアプリケーション１２２を受け取ることができる。仮想化されたアプリケーション１２２を生成するための、および／または、仮想化されたアプリケーション１２２をクライアントコンピュータ１０２に展開するための、他の適切な技法を当業者が想到できることは理解されよう。
【００１９】
仮想化されたアプリケーション１２２はアプリケーション層１２６および仮想化層１２８を備えることができる。アプリケーション層１２６は、仮想化されたアプリケーション１２２の様々なアプリケーション関連のタスクを提供できるプログラムコードおよび他の適切なデータを含むことができる。仮想化層１２８は、クライアントコンピュータ１０２がアプリケーション層１２６を実行する、基礎となる仮想環境を提供し管理することができる。例えば、仮想環境が、仮想ファイルシステム、仮想レジストリ等を備えることができる。
【００２０】
仮想環境を確立するとき、仮想化層１２８は、ユーザの現在のペルソナに関連する適切なペルソナパッケージの場所についてペルソナプロバイダ１１８に問合わせることができる。この問合せを受け取ると、ペルソナプロバイダ１１８は、ユーザの現在のペルソナを決定し、ユーザの現在のペルソナに対応するペルソナ構成を選択することができる。ペルソナプロバイダ１１８は、１番目のペルソナ構成１３０Ａ、２番目のペルソナ構成１３０Ｂ、およびＮ番目のペルソナ構成１３０Ｎを備えることができる。ペルソナ構成１３０Ａ〜１３０Ｎを集合的にペルソナ構成１３０と称してもよい。他の実施形態では、ペルソナ構成１３０Ａ〜１３０Ｎをリモート・データストア（図示せず）に格納し、ペルソナプロバイダ１１８がネットワーク１１０を介して取り出してもよい。
【００２１】
様々な実施形態では、ペルソナプロバイダ１１８は、ユーザの現在のペルソナを決定し、対応するペルソナ構成をペルソナ構成１３０からペルソナ特定情報に基づいて選択することができる。ペルソナ構成１３０を、ユーザ、管理者が、および／または誰か他の社員が、構成マネージャ１２０を介して規定してもよい。構成マネージャ１２０へのアクセスを、幾つかの実施形態に従って制限してもよい。例えば、構成マネージャ１２０が、アクセスを制限して管理者のみを選択してもよく、それにより、企業は、従業員がペルソナ構成１３０を修正できないようにすることができる。ペルソナ特定情報の幾つかの例には、ユーザの確立された証明書、ユーザの場所、時刻、ユーザのコンピュータネットワーク、ユーザのジェスチャ、および／またはユーザの嗜好もしくは構成を含めてもよい。
【００２２】
確立された証明書が、ユーザを特定する何らかの形態のＩＤを含むことができる。このケースでは、ペルソナプロバイダ１１８が、特定されたユーザに対応するペルソナ構成を選択することができる。ユーザの身分を、ユーザが（例えば、ユーザ名およびパスワードを通じて）サブミットしてもよく、または、他の適切な手段（例えば、クライアントコンピュータ１０２に関連するＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス）により決定することができる。このケースでは、ペルソナプロバイダ１１８が、ユーザの身分に対応するペルソナ構成を選択してもよい。ユーザの場所が、ユーザが仮想化されたアプリケーション１２２の実行を要求したときのユーザの場所を指すことができる。ユーザの場所を、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎ  Ｓｙｓｔｅｍ）座標、または他の適切な場所決定技法に基づいて決定することができる。このケースでは、ペルソナプロバイダ１１８が、ユーザの場所に対応するペルソナ構成を選択することができる。
【００２３】
時刻は、ユーザが仮想化されたアプリケーション１２２の実行を要求したときの現在の時刻を指すことができる。このケースでは、ペルソナプロバイダ１１８が、時刻に対応するペルソナ構成を選択することができる。コンピュータネットワークが、クライアントコンピュータ１０２が接続されている現在のコンピュータネットワークを指すことができる。コンピュータネットワークを、ＩＰアドレス、または、クライアントコンピュータ１０２に関連する他の適切なネットワーク関連情報により決定してもよい。例えば、コンピュータネットワークを特定することにより、ペルソナプロバイダ１１８が、ユーザが自宅にいるか、職場にいるか、または他の何らかの場所にいるかどうかを決定してもよい。このケースでは、ペルソナプロバイダ１１８が、ユーザのコンピュータネットワークに対応するペルソナ構成を選択してもよい。
【００２４】
ユーザのジェスチャは、特定のユーザ動作を指すことができる。このケースでは、ペルソナプロバイダ１１８が、ペルソナ構成を当該ユーザの特定の動作に基づいて選択または推論することができる。例えば、ユーザが特定のドキュメントを開く場合、ペルソナプロバイダ１１８は、当該ドキュメントの種類および／または内容に対応するペルソナ構成を推論することができる。ユーザの嗜好または構成が、ペルソナ構成の選択に関するユーザ定義の嗜好および／または構成を指してもよい。このケースでは、ペルソナプロバイダ１１８が、ペルソナ構成をユーザの嗜好または構成に基づいて選択してもよい。例えば、ユーザが、各ペルソナ構成を様々な基準に関連付けてもよい。当該基準には、ユーザの場所、時刻、ユーザのコンピュータネットワーク、ユーザのジェスチャ等のような、以前に説明ものが含まれる。かかるユーザ嗜好が、管理者の構成とは別々に、または、管理者の構成と関連して動作してもよい。
【００２５】
ペルソナ構成１３０の各々は、データストア１０８内の対応するペルソナパッケージの場所を含むことができる。データストア１０８は、データベースまたは他の適切なデータ記憶機構とすることができる。データストア１０８は、１番目のペルソナパッケージ１３２Ａ、２番目のペルソナパッケージ１３２Ｂ、およびＮ番目のペルソナパッケージ１３２Ｎを含むことができる。例えば、１番目のペルソナパッケージ１３２Ａが１番目のペルソナ構成１３０Ａに対応してもよい。２番目のペルソナパッケージ１３２Ｂが２番目のペルソナ構成１３０Ｂに対応してもよい。Ｎ番目のペルソナパッケージ１３２ＮがＮ番目のペルソナ構成１３０Ｎに対応してもよい。ペルソナパッケージ１３２Ａ〜１３２Ｎを集合的にペルソナパッケージ１３２と称してもよい。ペルソナプロバイダ１１８がユーザの現在のペルソナを決定し、ペルソナ特定情報に基づいてペルソナ構成を選択するとき、ペルソナプロバイダ１１８が対応するペルソナパッケージの場所を選択されたペルソナ構成から取り出すことができる。ペルソナプロバイダ１１８は次に、問合せに応答してペルソナパッケージの場所を仮想化層１２８に提供することができる。
【００２６】
ペルソナパッケージの場所を受け取ると、仮想化層１２８がデータストア１０８の当該場所にあるペルソナパッケージにアクセスすることができる。仮想化層１２８は次に、仮想化されたアプリケーション１２２の実行をペルソナパッケージに従って適合させ、それにより、ペルソナベースのアプリケーションエクスペリエンスをユーザに提供することができる。特に、仮想化層１２８は、ペルソナパッケージに含まれるユーザ設定、アプリケーション記憶、およびアプリケーション状態にアクセスすることができる。例えば、１番目のペルソナパッケージ１３２Ａは、１番目のペルソナパッケージ１３２Ａに固有の、関連するユーザ設定１３４Ａ、アプリケーション記憶設定１３６Ａ、およびアプリケーション状態設定１３８Ａを備えることができる。２番目のペルソナパッケージ１３２Ｂは、２番目のペルソナパッケージ１３２Ｂに固有の、関連するユーザ設定１３４Ｂ、アプリケーション記憶設定１３６Ｂ、およびアプリケーション状態設定ｌ３８Ｂを備えることができる。Ｎ番目のペルソナパッケージ１３２Ｎは、Ｎ番目のペルソナパッケージ１３２Ｎに固有の、関連するユーザ設定１３４Ｎ、アプリケーション記憶設定１３６Ｎ、およびアプリケーション状態設定１３８Ｎを備えることができる。ユーザ設定１３４Ａ〜１３４Ｎを集合的にユーザ設定１３４と称してもよい。アプリケーション記憶設定１３６Ａ〜１３６Ｎを、集合的にアプリケーション記憶設定１３６と称してもよい。アプリケーション状態設定１３８Ａ〜１３８Ｎを集合的にアプリケーション状態設定１３８と称してもよい。
【００２７】
ユーザ設定１３４は、仮想化されたアプリケーション１２２のユーザ指定の設定を定義することができる。１例では、ユーザが、特定のテーマ、特定のアイコン、および特定のツールバーを選択することによって、仮想化されたアプリケーション１２２のＧＵＩをカスタマイズすることができる。別の例では、ユーザが、仮想化されたアプリケーション１２２のセキュリティ設定をカスタマイズしてもよい。アプリケーション記憶設定１３６は、ローカルおよび／またはリモートのアプリケーション記憶の場所を定義することができ、当該場所からアプリケーションデータを取り出すことができ、当該場所へアプリケーションデータを格納することができる。例えば、仮想化されたアプリケーション１２２がワードプロセッシング・アプリケーションである場合は、アプリケーション記憶が、仮想化されたアプリケーション１２２を介して生成されたドキュメントを格納することができる。アプリケーション状態設定１３８は、仮想化されたアプリケーション１２２が閉じられる前の仮想化されたアプリケーション１２２の直近の状態を定義することができる。例えば、仮想化されたアプリケーション１２２がワードプロセッシング・アプリケーションである場合は、アプリケーション状態は、仮想化されたアプリケーション１２２がアクセスした最近のドキュメントのリストおよび当該ドキュメントに挿入された最近の記号のリストを含むことができる。
【００２８】
図２を参照すると、仮想化クライアント１１２およびペルソナプロバイダ１１８の動作に関する追加の詳細が示されている。特に、図２は、幾つかの実施形態に従う、ペルソナベースのアプリケーションエクスペリエンスを提供するための方法を示す流れ図である。本明細書で説明する論理動作が、（１）コンピューティングシステムで実行されている一連のコンピュータ実装型の動作またはプログラムモジュールとして、および／または、（２）コンピューティングシステム内部の相互接続されたマシン論理回路もしくは回路モジュールとして、実装されることは理解されよう。実装は、コンピューティングシステムの性能および他の要件に応じた選択の問題である。したがって、本明細書で説明する論理動作は、状態操作、構造的装置、動作、またはモジュールと様々に称される。これらの操作、構造的装置、動作、およびモジュールを、ソフトウェアで、ファームウェアで、特殊目的のデジタル論理で、およびそれらの任意の組合せで実装してもよい。図に示し本明細書で説明するものよりも多くのまたは少ない動作を実施してもよいことは理解されよう。これらの動作を、本明細書で説明するものとは異なる順序で実施してもよい。
【００２９】
図２において、ルーチン２００は動作２０２で開始し、仮想化層１２８が適切なペルソナパッケージに対する問合せをペルソナプロバイダ１１８に送信する。仮想化層１２８は当該問合せを、ユーザが仮想化されたアプリケーション１２２の実行を要求したときに送信することができる。ルーチン２００は次に動作２０４に進み、ペルソナプロバイダ１１８が適切なペルソナパッケージに対する問合せを仮想化層１２８から受け取る。ペルソナプロバイダ１１８が適切なペルソナパッケージに対する問合せを仮想化層１２８から受け取ると、ルーチン２００は動作２０６に進む。
【００３０】
動作２０６で、ペルソナプロバイダ１１８は仮想化されたアプリケーション１２２の実行を要求するユーザの現在のペルソナを決定する。ペルソナプロバイダ１１８は、ユーザの現在のペルソナを適切なペルソナ特定情報に基づいて決定することができる。ペルソナ特定情報の幾つかの例には、ユーザの確立された証明書、ユーザの場所、時刻、ユーザのコンピュータネットワーク、ユーザのジェスチャ、および／またはユーザの嗜好もしくはユーザの構成を含むことができる。ペルソナプロバイダが、仮想化されたアプリケーション１２２の実行を要求するユーザの現在のペルソナを決定すると、ルーチン２００は動作２０８に進む。
【００３１】
動作２０８で、ペルソナプロバイダ１１８が適切なペルソナパッケージの場所を決定する。ペルソナプロバイダ１１８が、ユーザの現在のペルソナに対応するペルソナ構成を複数のペルソナ構成１３０から特定することができる。例示的な例では、ペルソナプロバイダ１１８が、１番目のペルソナ構成１３０Ａがユーザの現在のペルソナに対応すると特定してもよい。ペルソナプロバイダ１１８は次に、１番目のペルソナ構成１３０Ａに含まれる１番目のペルソナパッケージ１３２Ａの場所を取り出すことができる。ペルソナプロバイダ１１８が適切なペルソナパッケージの場所を決定すると、ルーチン２００は動作２１０に進む。
【００３２】
動作２１０で、ペルソナプロバイダ１１８が当該問合せに応答して適切なペルソナパッケージの場所を仮想化層１２８に送信する。例示的な例では、ペルソナプロバイダ１１８が１番目のペルソナパッケージ１３２Ａの場所を仮想化層１２８に送信することができる。ルーチン２００は次に動作２１２に進み、仮想化層１２８が適切なペルソナパッケージの場所を受け取る。仮想化層１２８が適切なペルソナパッケージの場所を受け取ると、ルーチン２００は動作２１４に進む。
【００３３】
動作２１４で、仮想化層１２８が、データストア１０８内の当該場所にあるペルソナパッケージにアクセスする。特に、仮想化層１２８が、適切なペルソナパッケージに含まれるユーザ設定、アプリケーション記憶設定、およびアプリケーション状態設定にアクセスすることができる。例示的な例では、仮想化層１２８が、１番目のペルソナパッケージ１３２Ａに含まれるユーザ設定１３４Ａ、アプリケーション記憶設定１３６Ａ、およびアプリケーション状態設定１３８Ａにアクセスすることができる。仮想化層１２８がデータストア１０８内の当該場所にあるペルソナパッケージにアクセスすると、ルーチン２００は動作２１８に進む。
【００３４】
動作２１８で、仮想化層１２８が、アクセスされたユーザ設定、アプリケーション記憶設定、およびアプリケーション状態設定に適合した仮想化されたアプリケーション１２２を実行する。例示的な例では、仮想化層１２８が、ユーザ設定１３４Ａ、アプリケーション記憶設定１３６Ａ、およびアプリケーション状態設定１３８Ａに適合した仮想化アプリケーション１２２を実行することができる。このように、仮想化されたアプリケーション１２２の実行をユーザの現在のペルソナに従ってカスタマイズすることができる。仮想化層１２８は、ユーザ設定、アプリケーション記憶設定、およびアプリケーション状態設定に適合した仮想化されたアプリケーション１２２を実行すると、ルーチン２００を（例えば、定期的に、継続的に、または必要に応じてオンデマンドで）繰り返すかまたは終了することができる。
【００３５】
次に図３を参照すると、コンピュータ３００を示す例示的なコンピュータアーキテクチャ図が示されている。コンピュータ３００の例には、クライアントコンピュータ１０２、アプリケーション仮想化サーバコンピュータ１０４、およびペルソナサーバコンピュータ１０６を含めてもよい。コンピュータ３００が、中央演算処理装置３０２、システムメモリ３０４、およびメモリ３０４を３０２に接続するシステムバス３０６を備えてもよい。コンピュータ３００がさらに、１つまたは複数のプログラムモジュール３１４およびデータストア３１６を格納するための大容量記憶装置３１２を備えてもよい。プログラムモジュール３１４の例には、仮想化クライアント１１２、シーケンサモジュール１１４、配備モジュール１１６、ペルソナプロバイダ１１８、および構成マネージャ１２０を含めてもよい。データストア３１６の例には、データストア１０８を含めてもよい。大容量記憶装置３１２を、バス３０６に接続した大容量記憶域制御装置（図示せず）を介して演算処理装置３０２に接続してもよい。大容量記憶装置３１２およびその関連するコンピュータ記憶媒体が、不揮発性記憶装置をコンピュータ３００に提供してもよい。本明細書に含まれるコンピュータ記憶媒体の説明ではハードディスクまたはＣＤ−ＲＯＭドライブのような大容量記憶装置について言及するが、コンピュータ記憶媒体が、コンピュータ３００がアクセスできる任意の利用可能なコンピュータ記憶媒体でありうることは当業者には理解されよう。
【００３６】
限定ではなく例として、コンピュータ記憶媒体には、コンピュータ記憶命令、データ構造、プログラムモジュール、または他のデータのような、情報を非一時的に記憶するための任意の方法または技術で実装した揮発性および不揮発性の媒体、取外し可能および取外し不能の媒体を含めてもよい。例えば、コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他の固体メモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）、ＨＤ−ＤＶＤ、ＢＬＵ−ＲＡＹ（登録商標）、もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報を記憶するために使用できコンピュータ３００がアクセスできる他の任意の媒体が含まれるがこれらに限らない。
【００３７】
様々な実施形態によれば、コンピュータ３００が、ネットワーク１１０のようなネットワークを介したリモートコンピュータへの論理接続を用いてネットワーク環境で動作してもよい。コンピュータ３００が、バス３０６に接続されたネットワークインタフェースユニット３１０を介してネットワーク１１０に接続してもよい。ネットワークインタフェースユニット３１０を利用して、他の種類のネットワークおよびリモートコンピュータシステムに接続してもよいことは理解されよう。コンピュータ３００がまた、キーボード、マウス、マイクロフォン、およびゲーム制御装置を含む幾つかの入力装置（図示せず）からの入力を受け取り処理するための入／出力制御装置３０８を備えてもよい。同様に、入／出力制御装置３０８が、ディスプレイまたは他の種類の出力装置（図示せず）へ出力を提供してもよい。
【００３８】
バス３０６により、演算処理装置３０２が、大容量記憶装置３１２または他のコンピュータ記憶媒体へ、またはそれらからコードおよび／またはデータを読み出すことができてもよい。コンピュータ記憶媒体が、任意の適切な技術を用いて実装された記憶要素の形の機器を表してもよい。当該技術には、半導体、磁気材料、光学、等が含まれるがこれらに限らない。コンピュータ記憶媒体が、ＲＡＭ、ＲＯＭ、フラッシュ、または他の種類の技術で特徴付けられるか否かに関わらず、メモリコンポーネントを表してもよい。コンピュータ記憶媒体が、ハードドライブまたはそれ以外で特徴付けられるか否かに関わらず、二次記憶装置を表してもよい。ハードドライブの実装形態を固体として特徴付けてもよく、または、磁気的にエンコードされた情報を格納する回転媒体を備えてもよい。
【００３９】
プログラムモジュール３１４が、演算処理装置３０２にロードされ実行されるとコンピュータ３００にペルソナベースのアプリケーションエクスペリエンスを提供させるソフトウェア命令を含んでもよい。プログラムモジュール３１４が様々なツールまたは技法を提供してもよく、これらの様々なツールまたは技法により、コンピュータ３００が、本明細書で論じたコンポーネント、フロー、およびデータ構造を用いて全体のシステムまたは動作環境に参加することができる。例えば、プログラムモジュール３１４が、ペルソナベースのアプリケーションエクスペリエンスを提供するインタフェースを実装してもよい。
【００４０】
一般に、プログラムモジュール３１４が、演算処理装置３０２にロードされて実行されると、演算処理装置３０２およびコンピュータ３００全体を汎用目的のコンピューティングシステムから、ペルソナベースのアプリケーションエクスペリエンスを提供するようにカスタマイズされた特殊目的のコンピューティングシステムへ変換することができる。演算処理装置３０２を、任意数のトランジスタまたは他の離散的な回路要素から構築してもよく、これにより個別的にまたは集合的に任意数の状態をとることができる。より具体的には、演算処理装置３０２が、プログラムモジュール３１４内に含まれる実行可能命令に応答して、有限状態機械として動作してもよい。これらのコンピュータ実行可能命令が、どのように演算処理装置３０２が状態間を遷移するかを規定することによって演算処理装置３０２を変換し、それにより、演算処理装置３０２を構成するトランジスタまたは他の離散的なハードウェア要素を変換してもよい。
【００４１】
プログラムモジュール３１４をエンコードすることで、コンピュータ記憶媒体の物理的構造を変換してもよい。本明細書の様々な実装形態において、物理的構造の具体的な変換は様々な因子に依存してもよい。かかる因子の例に、コンピュータ記憶媒体が一時記憶装置または二次記憶装置として特徴付けられるか否かに関わらず、コンピュータ記憶媒体を実装するために使用される技術、等を含めてもよいがこれらに限らない。例えば、コンピュータ記憶媒体が半導体ベースのメモリとして実装される場合、プログラムモジュール３１４がその中でエンコードされると、プログラムモジュール３１４が半導体メモリの物理的状態を変換してもよい。例えば、プログラムモジュール３１４が、トランジスタ、キャパシタ、または半導体メモリを構成する他の離散的な回路要素の状態を変換してもよい。
【００４２】
別の例として、コンピュータ記憶媒体を、磁気技術または光技術を用いて実装してもよい。かかる実装形態では、プログラムモジュール３１４が磁気媒体または光媒体の中でエンコードされると、プログラムモジュール３１４が磁気媒体または光媒体の物理的状態を変換してもよい。これらの変換が、所与の磁気媒体内の特定の場所の磁気特性を変化させることを含んでもよい。これらの変換がまた、所与の光媒体内の特定の場所の物理的特徴または特性を変化させてこれらの場所の光特性を変えることを含んでもよい。上述の例はこの議論を容易にするために与えたにすぎず、本明細書の範囲を逸脱しない物理媒体の他の変換が可能である。
【００４３】
以上に基づいて、ペルソナベースのアプリケーションエクスペリエンスを提供するための技術が本明細書で提示されていることが理解されよう。本明細書で提示した主題をコンピュータの構造的な特徴、方法論的動作、およびコンピュータ読取可能媒体に固有の言葉で説明したが、添付の特許請求の範囲で定義した本発明は本明細書で説明した具体的な特徴、動作、または媒体に必ずしも限定されないことは理解されよう。そうではなく、これらの具体的な特徴、動作、および媒体は、特許請求の範囲を実装する例示的な形として開示されている。
【００４４】
上述した主題は、例示としてのみ提供したものであって、限定として解釈すべきではない。例示および説明した例示的な実施形態およびアプリケーションに従うことなく、かつ、本発明の真の趣旨および範囲から逸脱せずに、様々な修正および変更を本明細書で説明した主題に加えてもよい。本発明の真の趣旨および範囲は添付の特許請求の範囲で説明されている。
【図１】
0005989001.tif 000002
【図２】
0005989001.tif 000003
【図３】
0005989001.tif 000004