(57)【要約】仮想アプリケーションを実行する要求が受信されると、ライセンシング／メータリングコンポーネントは、要求されたアプリケーションに対して有効なライセンスが存在するか否かを判断する。ライセンシング／メータリングコンポーネントが要求されたアプリケーションに対して有効なライセンスが存在すると判断した場合、アプリケーション仮想化サーバーコンポーネントは、仮想アプリケーションをクライアントデバイスにストリーミングして、アプリケーションの実行を許可する。ライセンシング／メータリングコンポーネントが要求されたアプリケーションに対して有効なライセンスが存在しないと判断した場合、アプリケーション仮想化サーバーコンポーネントは、仮想アプリケーションがクライアントデバイスにストリーミングできないようにする。仮想アプリケーションがクライアントデバイスにストリーミングされた時点で、ライセンシング／メータリングコンポーネントは、仮想アプリケーションの利用状況をモニタリングする。
2014505931.tif 000002
【特許請求の範囲】
【請求項１】
ハイパーテキスト転送プロトコル（ＨＴＴＰ）接続を介して仮想アプリケーションを起動する要求を受信することと、
前記要求に応答して、前記仮想アプリケーションが有効なライセンスを有するか否かを判断することと、
前記仮想アプリケーションが有効なライセンスを有するとの判断に応答して、前記ＨＴＴＰ接続を介して前記仮想アプリケーションの少なくとも一部をクライアントデバイスにストリーミングすることと
のためのコンピューターによって実施される動作を含むことを特徴とするコンピューター実装方法。
【請求項２】
前記仮想アプリケーションが有効なライセンスを持たないとの判断に応答して、前記ＨＴＴＰ接続を介して前記仮想アプリケーションをストリーミングしないことを更に含むことを特徴とする請求項１に記載のコンピューター実装方法。
【請求項３】
前記仮想アプリケーションの実行をモニタリングすることと、
前記仮想アプリケーションの前記実行の前記モニタリングすることに基づいて、前記仮想アプリケーションの利用状況を示した利用データを生成することと、
前記ＨＴＴＰ接続を介して前記利用データをサーバーコンピューターに伝送することと
をさらに含むことを特徴とする請求項２に記載のコンピューター実装方法。
【請求項４】
前記ソフトウェアライセンスは、前記ソフトウェアライセンスが期限切れであるまたは存在しないために、無効であることを特徴とする請求項３に記載のコンピューター実装方法。
【請求項５】
前記仮想アプリケーションが有効なライセンスを有するか否かを判断することは、クライアントデバイスによって提供されたシリアル番号が前記ソフトウェアライセンスに関連付けられたシリアル番号と一致するか否かを判断することを含むことを特徴とする請求項１に記載のコンピューター実装方法。
【請求項６】
アプリケーションが有効なライセンスを有するか否かを判断することは、サーバー上で実行しているライセンシング／メータリングコンポーネントに接続して前記仮想アプリケーションが有効なソフトウェアライセンスを有するか否かを判断することを含むことを特徴とする請求項１に記載のコンピューター実装方法。
【請求項７】
前記ライセンシング／メータリングコンポーネントは、アプリケーションプログラミングインターフェース（ＡＰＩ）を公開して前記仮想アプリケーションに対して有効なソフトウェアライセンスが存在することを確認することを特徴とする請求項６に記載のコンピューター実装方法。
【請求項８】
前記仮想アプリケーションが有効なライセンスを有するか否かを判断することは、前記仮想アプリケーションをストリーミングする前に行われることを特徴とする請求項１に記載のコンピューター実装方法。
【請求項９】
コンピューターによって実行されると、前記コンピューターに、
ハイパーテキスト転送プロトコル（ＨＴＴＰ）接続を介して仮想アプリケーションを起動する要求を受信させ、
前記要求に応答して、前記仮想アプリケーションが有効なライセンスを有するか否かを判断させ、
前記仮想アプリケーションが有効なライセンスを有するとの判断に応答して、前記ＨＴＴＰ接続を介して前記仮想アプリケーションの少なくとも一部をクライアントデバイスにストリーミングさせる
コンピューター実行可能命令が記憶されることを特徴とするコンピューター可読記憶媒体。
【請求項１０】
前記コンピューターによって実行されると、アプリケーションに対して利用可能なソフトウェアライセンスの数を超える場合、前記コンピューターに前記仮想アプリケーションをストリーミングさせないコンピューター実行可能命令がさらに記憶されることを特徴とする請求項９に記載のコンピューター可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション仮想化技術に関する。
【背景技術】
【０００２】
コンピュータープログラム（本明細書では、「アプリケーション」とする）の配布および実行は、ソフトウェアライセンスによって管理される場合が多い。ソフトウェアライセンスとは、ソフトウェアが利用される条件を規定したものである。例えば、ソフトウェアライセンスは、任意の時間にアプリケーションを使用することが認可されたユーザの数を指定することができる。
【０００３】
ソフトウェアライセンスの行使は、アプリケーションが必ずしも従来の方法で実行されるとは限らない現代のコンピューター環境では困難である場合がある。例えば、コンピューターシステムがアプリケーションの実行を仮想化した場合（「アプリケーション仮想化」）、アプリケーションが有効なソフトウェアライセンスを有するかの確認、およびアプリケーションの利用状況のモニタリングが難しくなる可能性がある。その理由の１つは、仮想アプリケーションはクライアントコンピューターにストリーミングされることが多く、従来のようにクライアントコンピューター上にローカルに存在しないためである。その結果、ライセンスを行使して利用状況をモニタリングする従来の技術は、仮想アプリケーションと共に使用される場合には、互換性がなく、効率が悪くなる場合がある。さらに、ソフトウェアライセンスや利用状況のモニタリングに関するデータの交換に使用するための従来のプロトコルも役に立たない場合がある。
【０００４】
本明細書で開示するのは、上記およびその他の問題に鑑みた内容である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第７，２２５，２６４号明細書
【特許文献２】米国特許第７，２００，６３２号明細書
【特許文献３】米国特許第７，４５１，４５１号明細書
【特許文献４】米国特許第７，７９７，３７２号明細書
【発明の概要】
【０００６】
本明細書において、ソフトウェアライセンスを行使する技術および仮想アプリケーションの利用状況をモニタリングする技術について説明する。本明細書内で示されているコンセプトおよび技術を実装することで、ソフトウェアライセンスの行使およびアプリケーションの利用状況のモニタリングが可能なアプリケーション仮想化環境を実現することができる。実施形態において、サーバーからクライアントに仮想アプリケーションをストリーミングすると共に、ソフトウェアライセンスの有効性に関するデータおよびアプリケーション利用データを交換するのにハイパーテキスト転送プロトコル（Hypertext Transfer Protocol：ＨＴＴＰ）が使用される。このように、仮想アプリケーションは、少なくとも１つのＨＴＴＰ接続を使用して、クライアントにストリーミングされ、認証され、およびモニタリングされる。
【０００７】
本明細書で開示されている実施形態は、アプリケーション仮想化環境と共に実装される。特に、アプリケーション仮想化クライアントコンポーネントは、仮想アプリケーションを実行するための環境を提供するように構成される。アプリケーション仮想化クライアントコンポーネントはさらに、基礎となるオペレーティングシステム、他のアプリケーションプログラム、およびシステムリソースから仮想アプリケーションをカプセル化する機能を提供する。また、アプリケーション仮想化クライアントコンポーネントは、ＨＴＴＰ接続を介してアプリケーション仮想化サーバーから仮想アプリケーションの必要な一部をストリーミングすることによってコンポーネント仮想アプリケーションの一部をロードする機能を提供してもよい。
【０００８】
別の態様によれば、仮想アプリケーションが起動されると、ライセンシング／メータリング（licensing/metering）コンポーネントが、仮想アプリケーションに対して有効なソフトウェアライセンスが存在することを確認する。有効なソフトウェアライセンスが存在する場合、ライセンシング／メータリングコンポーネントは、アプリケーション仮想化サーバーコンポーネントに仮想アプリケーションをクライアントデバイスへストリーミングさせる。ライセンシング／メータリングコンポーネントは、仮想アプリケーションの利用状況をモニタリングしてもよい。仮想アプリケーションに対して有効なソフトウェアライセンスが存在しない場合、ライセンシング／メータリングコンポーネントは、サーバーが仮想アプリケーションをクライアントデバイスにストリーミングできないようにする。クライアントデバイスとアプリケーション仮想化サーバーコンポーネントとの間がＨＴＴＰプロトコルを使用して接続されてもよい。この接続は、仮想アプリケーションのライセンシングおよび利用状況に関するデータを交換するのに使用されてもよい。
【０００９】
本概要は、請求される発明の主題の重要な特徴または本質的な特徴を特定するものでなく、また、本概要は、請求される対象物の範囲を制限するのに使用するものでもない。さらに、請求される発明の主題は、本開示のいずれの部分にも記載されている任意または全ての不利点を解消する実装に限定されない。
【図面の簡単な説明】
【００１０】
【図１】本明細書で開示されている実施形態の１つの例示的なオペレーティング環境を示したソフトウェアおよびネットワークアーキテクチャの図である。
【図２】本明細書で示される一実施形態に従って、仮想アプリケーションをライセンシングおよびメータリングするための本明細書で開示される１つの例示的なプロセスの態様を示したフロー図である。
【図３】本明細書で示されている種々の実施形態を実装することができるコンピューティングシステムの例示的なコンピューターハードウェアおよびソフトウェアのアーキテクチャを示したコンピューターキテクチャの図である。
【発明を実施するための形態】
【００１１】
以下に、ソフトウェアライセンスを認証する技術および仮想アプリケーションの利用状況をメータリングする技術について詳細に説明する。簡単に上述したように、仮想アプリケーションが実行される時に、仮想アプリケーションに関連付けられたソフトウェアライセンスを認証するように構成されたアプリケーション仮想環境を提供する。アプリケーション仮想環境はさらに、ライセンシング／メータリングコンポーネントを使用して、仮想アプリケーションの利用状況をモニタリングするように構成される。ソフトウェアライセンスおよび仮想アプリケーションの利用状況に関するデータは、ＨＴＴＰプロトコルを使用して交換されてもよい。
【００１２】
本明細書で説明される発明の主題は、一般的なコンピューターシステム上でオペレーティングシステムおよびアプリケーションプログラムと共に実行するプログラムモジュールとの関連で示されているが、当業者は、他のタイプのプログラムモジュールと組み合わせた他の実装も可能であることは理解するであろう。一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造体、および特定のタスクを実行する、または特定の抽象データ型を実装する他のタイプの構造体を含む。また、当業者は、本明細書で説明される発明の主題が他のコンピューターシステム、例えば、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースもしくはプログラム可能な家庭用電化製品、ミニコンピューター、メインフレームコンピューターなどによって実施可能であることも理解するであろう。
【００１３】
以下の詳細な説明では、明細書の一部であり、特定の実施形態もしくは実施例を例示した添付図面を参照するものとする。図面では、複数の図面にわたって同じ参照番号は同じ要素を指しており、これらの図面を参照しながら、コンピューティングシステムおよび仮想アプリケーションのライセンシングならびにメータリング方法の態様について説明する。
【００１４】
図１は、本明細書で開示される実施形態の１つの例示的なオペレーティング環境１００を示したソフトウェアおよびネットワークのアーキテクチャの図である。図１に示される例示的なオペレーティング環境１００は、ネットワーク１０６を介してサーバー１０４と通信するように構成されたクライアントデバイス１０２を含む。クライアントデバイス１０２は、オペレーティングシステム１０８Ａおよびアプリケーション仮想化クライアントコンポーネント１１０を実行するように構成されたコンピューティングデバイスである。クライアントデバイス１０２は、標準的なデスクトップもしくはラップトップコンピューター、タブレットコンピューター、スマートフォン、または仮想アプリケーションのライセンシングおよびメータリングのために本明細書で示されている動作を実行することができる任意の他のコンピューティングデバイスとしてよい。また、クライアントデバイス１０２は、本明細書で開示されている機能を提供することができるサーバーコンピューターとしてもよい。
【００１５】
サーバー１０４は、オペレーティングシステム１０８Ｂおよびアプリケーション仮想化サーバーコンポーネント１１６を実行するように構成されたコンピューティングデバイスである。当然、サーバー１０４は、アプリケーション仮想化サーバーコンポーネント１１０を実行するように構成された実際のサーバーコンピューターとしてもよいし、サーバー１０４によって実行されるように本明細書で記載されている機能を実行するように構成された別のタイプのコンピューターシステムを備えてもよい。
【００１６】
図１に示されているネットワーク１０６は、ワイドエリアネットワークまたはローカルエリアネットワークを備えてもよい。例えば、ネットワーク１０６は、企業のローカルエリアネットワーク、インターネットなどのワイドエリアネットワーク、または複数のワイドエリアネットワークおよびローカルエリアネットワークの組み合わせたものとしてもよい。当然、図１には１つのネットワーク１０６が示されているが、多くの他のネットワークを使用してもよい。また、当然、図１には、１つのクライアントデバイス１０２と１つのサーバー１０４が示されているが、本明細書で記載される実施形態で多くのクライアントデバイスおよびサーバーを使用してもよい。
【００１７】
簡単に上述したように、クライアントデバイス１０２は、アプリケーション仮想化クライアントコンポーネント１１０を実行するように構成される。アプリケーション仮想化クライアントコンポーネント１１０は、アプリケーション仮想環境を提供するように構成されたソフトウェアコンポーネントである。これに関して、アプリケーション仮想化クライアントコンポーネント１１０は、仮想アプリケーション１１２を実行するように構成される。
【００１８】
アプリケーション仮想化クライアントコンポーネント１１０は、オペレーティングシステム１０８Ａから仮想アプリケーション１１２の実行をカプセル化する機能を提供する。さらに、アプリケーション仮想化クライアントコンポーネント１１０は、クライアントデバイス１０２の他のアプリケーションプログラムおよびシステムリソースから仮想アプリケーション１１２の実行をカプセル化する機能を提供してもよい。例えば、アプリケーション仮想化クライアントコンポーネント１１０は、オペレーティングシステム１０８Ａまたはクライアントデバイス１０２のリソースを仮想化してもよい。仮想アプリケーション１１２が物理的リソースへのアクセスを試みた時に、アプリケーション仮想化クライアントコンポーネント１１０は、仮想リソースをアプリケーション１１２に提示する。このように、オペレーティングシステム１０８Ａまたはクライアントデバイス１０２によって公開される実際のリソースに影響を与えない形で仮想アプリケーション１１２を実行することができる。
【００１９】
他の態様によれば、アプリケーション仮想化クライアントコンポーネント１１０は、要求に応じて仮想アプリケーション１１２の一部をロードする機能も提供する。特に、アプリケーション仮想化クライアントコンポーネント１１０は、アプリケーション仮想化サーバーコンポーネント１１６と一緒に動作して仮想アプリケーション１１２の必要な部分をサーバー１０４からクライアントデバイス１０２にストリーミングしてもよい。このように、必要に応じて、クライアントデバイス１０２で仮想アプリケーション１１２が完全にインストールされていなくても、クライアントデバイス１０２において仮想アプリケーション１１２にアクセスすることができる。
【００２０】
さらに、仮想アプリケーション１１２の実行をカプセル化するために、また仮想アプリケーション１１２をサーバー１０４からクライアントデバイス１０２にストリーミングするために、アプリケーション仮想化クライアントコンポーネント１１０によって提供される種々の機能に関する詳細については、特許文献１、特許文献２、特許文献３、および特許文献４に記載されており、上述のそれぞれの特許の内容全体を参照によって本願明細書に引用したものとする。
【００２１】
仮想アプリケーション１１２は、トランスポートプロトコルを使用して、アプリケーション仮想化サーバーコンポーネント１１６からアプリケーション仮想化クライアントコンポーネント１１０にストリーミングされてもよい。例えば、本明細書で開示される一実施形態では、仮想アプリケーションは、ＨＴＴＰプロトコルを使用してサーバー１０４からクライアント１０２にストリーミングされる。ＨＴＴＰプロトコルを使用してサーバー１０４からクライアント１０２に仮想アプリケーション１１２をストリーミングするのは、典型的なストリーミングプロトコル、例えば、リアルタイムストリーミングプロトコル（real time streaming protocol：ＲＴＳＰ）を使用する場合より、効率がよく、速い場合がある。
【００２２】
一実装によれば、アプリケーション仮想化サーバーコンポーネント１１６はさらに、ソフトウェアライセンスの行使およびメータリングの機能を提供するように構成される。例えば、一実施形態では、仮想アプリケーション１１２に関連付けられたソフトウェアライセンスを認証するように構成されたライセンシング／メータリングコンポーネント１１４を備える。ソフトウェアライセンスが認証された場合、ライセンシング／メータリングコンポーネント１１４は、仮想アプリケーション１１２がクライアントデバイス１０２にストリーミングされるのを許可する。ソフトウェアライセンスが認証されない場合、ライセンシング／メータリングコンポーネント１１４は仮想アプリケーション１１２がクライアントデバイス１０２にストリーミングされるのを許可しないことになる。
【００２３】
ライセンシング／メータリングコンポーネント１１４は、仮想アプリケーション１１２のソフトウェアライセンスの認証をさまざまな方法で支援するように構成されてもよい。例えば、ライセンシング／メータリングコンポーネント１１４は、ライセンシング／メータリングコンポーネント１１４によって記憶されている、もしくはライセンシング／メータリングコンポーネント１１４にアクセス可能な仮想アプリケーション１１２に関連付けられたシリアル番号をクライアントデバイス１０２のユーザによって入力されサーバー１０４によって受信されたシリアル番号と比較することでソフトウェアライセンスを認証してもよい。ユーザによって入力されたシリアル番号がライセンシング／メータリングコンポーネント１１４によって記憶されている、もしくはライセンシング／メータリングコンポーネント１１４にアクセス可能なシリアル番号と一致すれば、ライセンシング／メータリングコンポーネント１１４は、アプリケーション仮想化サーバーコンポーネント１１６がアプリケーション仮想化クライアントコンポーネント１１０に要求された仮想アプリケーション１１２をストリーミングするのを許可する。シリアル番号が一致しない場合、仮想アプリケーション１１２はストリーミングされないことになる。
【００２４】
また、ライセンシング／メータリングコンポーネント１１４は、クライアントデバイス１０２上で実行している仮想アプリケーション１１２から受信した認証要求を受信して処理することで、ソフトウェアライセンスを認証してもよい。この点に関して、多くのアプリケーションは、ローカルもしくはリモートサーバーコンポーネントと通信することによって認証プロセスを実行するように構成される。適切なデータ交換によって、アプリケーションは自身を認証させて実行を開始することができる。
【００２５】
一実施形態では、ライセンシング／メータリングコンポーネント１１４は、クライアントデバイス１０２上で実行している仮想アプリケーション１１２からの認証要求を受信して応答するように構成される。この点に関して、ライセンシング／メータリングコンポーネント１１４は、これらのコールを受け取るために、少なくとも１つのアプリケーションプログラミングインターフェース（application programing interface：ＡＰＩ）を公開してもよい。さまざまな製造会社によって作成されたアプリケーションが認証のためにライセンシング／メータリングコンポーネント１１４にコールすることができるように、ライセンシング／メータリングコンポーネント１１４によって、さまざまなＡＰＩが公開されてもよい。
【００２６】
公開されたＡＰＩによる認証要求の受信に応答して、ライセンシング／メータリングコンポーネント１１４は、アプリケーション１１２の実行を許可してよいか否かを判断してもよい。例えば、ライセンシング／メータリングコンポーネント１１４は、アプリケーション１１２の有効なライセンスの検証に基づいて、アプリケーション１１２の実行を許可してもよいか否かを判断してもよい。他のメカニズムを利用してもよい。
【００２７】
ライセンシング／メータリングコンポーネント１１４は、仮想アプリケーション１１２がクライアントデバイス１０２にストリーミングされた時点で仮想アプリケーション１１２の利用状況をモニタリングしてもよい。ライセンシング／メータリングコンポーネント１１４は、仮想アプリケーション１１２の現在の利用状況、ユーザのログイン、仮想アプリケーション１１２の使用時間、ユーザがアプリケーションを開いた時点または閉じた時点などに関する情報を収集してもよい。アプリケーション仮想化クライアントコンポーネント１１０、ライセンシング／メータリングコンポーネント１１４、アプリケーション仮想化サーバーコンポーネント１１６、クライアントデバイス１０２、およびサーバー１０４の動作に関して、図２を参照しながらさらに詳細に後述する。
【００２８】
当然、ライセンシング／メータリングコンポーネント１１４はサーバー１０４上で実行するものとして示されているが、一部もしくは全体がクライアントデバイス上で実行してもよい。例えば、一実施形態では、ライセンシング／メータリングコンポーネントは、上述したライセンシングおよびメータリング機能の全てもしくは一部を実行するためにクライアントデバイス１０２上で実行する。また、他の実施形態では、ライセンシング／メータリングコンポーネント１１４によって実行されるとして本明細書で記載されている機能は、アプリケーション仮想化サーバーコンポーネント１１６、アプリケーション仮想化クライアントコンポーネント１１０、またはサーバー１０４、クライアントデバイス１０２、もしくは別のコンピューター上で実行する他のプログラムと直接統合されてもよい。当然、仮想アプリケーション１１２のライセンシングまたは利用状況に関するデータは、ＨＴＴＰプロトコルを使用してクライアント１０２とサーバー１０４との間で伝送されてもよい。他の実施形態は、当業者には明らかであろう。
【００２９】
図２は、仮想アプリケーションのライセンス行使およびメータリングのための本明細書で開示される１つの例示的なプロセスの態様を示すルーチン２００のフロー図である。当然、図２および他の図に関して本明細書で説明される論理動作は、（１）コンピューティングシステム上で実行される一連のコンピューター実装動作またはプログラムモジュールとして、および／または（２）コンピューティングシステム内の相互接続マシン論理回路または回路モジュールとして実装される。実装は、コンピューターシステムの性能や他の要件に基づいて選択できる。したがって、本明細書内で説明される論理動作は、動作、構造装置、アクト、またはモジュールとさまざまな呼び方で呼ばれる。これらの動作、構造装置、アクト、およびモジュールは、ソフトウェア、ファームウェア、専用のデジタル論理、およびこれらの任意の組み合わせにおいて実装されてもよい。当然、図示され、本明細書で示されている例よりも多くの動作または少ない動作を実行してもよい。これらの動作は、本明細書で示されている例とは異なる順序で実行されてもよい。
【００３０】
ルーチン２００は、動作２０２で始まり、アプリケーション仮想化サーバーコンポーネント１１６が仮想アプリケーション１１２を起動する要求が受信されたか否かを判断する。例えば、クライアントデバイス１０２のユーザがアプリケーション１１２を起動するように要求を出してもよい。アプリケーション仮想化サーバーコンポーネント１１６が仮想アプリケーション１１２を起動する要求が受信されたと判断した場合、ルーチン２００は動作２０２から動作２０４に進む。
【００３１】
動作２０４において、ライセンシング／メータリングコンポーネント１１４はこの仮想アプリケーション１１２に対して有効なソフトウェアライセンスが存在するか否かを判断する。ライセンスが期限切れである、または存在しない場合、ソフトウェアライセンスは無効となる。また、要求の期間がライセンスの期間を超えた場合も、ライセンスは無効となる。例えば、ライセンスは、アプリケーションの指定数のインスタンスのみが同時に実行可能であることを示してもよい。ソフトウェアライセンスは、その他の理由でも無効と見なされる場合がある。
【００３２】
上述したように、アプリケーション仮想化サーバーコンポーネント１１６は、ユーザによる要求およびソフトウェアライセンス認証により、仮想アプリケーション１１２をアプリケーション仮想化クライアントコンポーネント１１０にストリーミングしてもよい。ライセンシング／メータリングコンポーネント１１４が要求されたアプリケーション１１２に対して有効なソフトウェアライセンスが存在すると判断した場合、ルーチン２００は動作２０４から動作２０８に進む。ライセンシング／メータリングコンポーネント１１４がアプリケーション１１２に対して有効なソフトウェアライセンスが存在しないと判断した場合、ルーチン２００は動作２０６に進み、サーバー１０４はクライアントデバイス１０２に仮想アプリケーション１１２をストリーミングすることができなくなる。ルーチン２００は、動作２０６から動作２１４に進み、ルーチンが終了する。
【００３３】
動作２０８において、アプリケーション仮想化サーバーコンポーネント１１６は、アプリケーション１１２の全てまたは一部をクライアントデバイス１０２にストリーミングする。上述したように、アプリケーション１１２は、ＨＴＴＰ接続によってクライアントデバイスにストリーミングされてもよい。ルーチン２００は、動作２０８から動作２１０に進み、アプリケーション仮想化クライアントコンポーネント１１０がアプリケーション１１２を仮想化する。上述したように、この動作は、基礎となるオペレーティングシステム、他のアプリケーションプログラム、およびシステムリソースから仮想アプリケーション１１２をカプセル化する動作を含んでもよい。
【００３４】
ルーチン２００は、動作２１０から動作２１２に進み、ライセンシング／メータリングコンポーネント１１４が仮想アプリケーション１１２の実行をモニタリングして、仮想アプリケーション１１２の実行および利用状況に関する情報（本明細書では、「利用データ」と呼ばれる）を生成する。生成される情報は、仮想アプリケーション１１２の利用状況、仮想アプリケーション１１２の使用時間などに関する情報としてもよい。
【００３５】
ルーチン２００は、動作２１２から動作２０４に進み、クライアントデバイス１０２とサーバー１０４との異なる同期時間に、アプリケーション１１２のライセンスが再確認される。したがって、仮想アプリケーション１１２は、ライセンスが有効でなくなるので仮想アプリケーション１１２の利用を無効にすべきか否かを判断して、ライセンスが有効でなくなると、確実に仮想アプリケーション１１２が公開されないようにするために、継続的にモニタリングされる。アプリケーションの実行時にライセンスを確認することで、本明細書内で開示されている技術により、アプリケーション１１２が実行中でも確実にソフトウェアライセンスが適切に行使される。
【００３６】
図３は、本明細書に示されている種々の実施形態を実装することができるコンピューティングシステムの例示的なコンピューターハードウェアおよびソフトウェアのアーキテクチャを示したコンピューターキテクチャの図である。図３に示されているコンピューターキテクチャは、従来のデスクトップ、ラップトップコンピューター、またはサーバーコンピューターを示しており、本明細書で示されている種々のソフトウェアコンポーネントを実行するのに使用することができる。
【００３７】
図３に示されているコンピューターキテクチャは、中央処理装置３０２（「central processing unit：ＣＰＵ」）と、ランダムアクセスメモリ（「random access memory：ＲＡＭ」）３１４およびリードオンリメモリ（「read-only memory：ＲＯＭ」）３１６を含むシステムメモリ３０８と、メモリをＣＰＵ３０２に接続するシステムバス３０４とを含む。起動時などにコンピューター３００内の要素間で情報を伝達するのを支援する基本ルーチンを含む基本入出力システム（「basic input/output system：ＢＩＯＳ」）は、ＲＯＭ３１６内に記憶されている。コンピューター３００はさらに、オペレーティングシステム３１８、アプリケーションプログラム、および他のプログラムモジュールを記憶するための大容量記憶装置３１０を含む。この大容量記憶装置３１０については、以下で詳細に説明する。
【００３８】
大容量記憶装置３１０は、バス３０４に接続される大容量記憶装置コントローラー（図示せず）を介してＣＰＵ３０２に接続される。大容量記憶装置３１０および関連するコンピューター可読記憶媒体は、コンピューター３００の不揮発性記憶装置となる。コンピューター可読記憶媒体は、本明細書内ではハードディスクまたはＣＤ−ＲＯＭドライブのような大容量記憶装置について説明されているが、コンピューター可読記憶媒体はコンピューター３００によってアクセス可能な任意の利用可能なコンピューター記憶媒体も可能であることは当業者には理解できるであろう。
【００３９】
例えば、コンピューター可読記憶媒体として、コンピューター可読命令、データ構造体、プログラムモジュール、または他のデータのような情報を記憶するための任意の方法または技術で実現される揮発性および不揮発性、取り外し可能および取り外し不可能な媒体が挙げられるが、これに限定されない。例えば、コンピューター可読記憶媒体として、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくは他のソリッドステートのメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（「digital versatile disk：ＤＶＤ」）、ＨＤ−ＤＶＤ、ＢＬＵ−ＲＡＹ（登録商標）、もしくは他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶装置、または所望の情報を記憶するのに使用することができ、コンピューター３００によってアクセス可能なその他の持続性媒体が挙げられるが、これらに限定されない。
【００４０】
当然、本明細書で開示されているコンピューター可読媒体は通信媒体も含む。通信媒体は、典型的には、コンピューター可読命令、データ構造体、プログラムモジュール、または他のデータを、搬送波または他の搬送機構のような変調データ信号で具現化するものであり、情報伝達媒体を含む。用語「変調データ信号」とは、少なくとも１つの特性セットを有する、または情報を信号でエンコードするように変換された信号のことである。例えば、通信媒体として、有線ネットワークもしくは直接有線接続のような有線媒体、音波、ＲＦ、赤外線および他の無線媒体のような無線媒体が挙げられるが、これらに限定されない。上述の通信媒体の任意の組み合わせもコンピューター可読媒体の範囲に含まれるものとする。コンピューター可読記憶媒体には、通信媒体は含れない。
【００４１】
種々の実施形態によれば、コンピューター３００は、ネットワーク３２０のようなネットワークを介してリモートコンピューターへの論理接続を使用して、ネットワーク環境で動作することができる。コンピューター３００は、バス３０４に接続されるネットワークインターフェースユニット３０６を介してネットワーク３２０に接続してもよい。当然、ネットワークインターフェースユニット３０６は、他のタイプのネットワークやリモートコンピューターシステムに接続するのに使用されてもよい。さらに、コンピューター３００は、多数の他の装置、例えば、キーボード、マウス、または電子スタイラスペン（図３には図示せず）からの入力を受信して処理するための入出力コントローラー３１２を含んでもよい。同様に、入出力コントローラーは、ディスプレイ画面、プリンタ、または他のタイプの出力装置（図３には図示せず）に対して出力を行うことができる。
【００４２】
簡単に上述したように、多数のプログラムモジュールおよびデータファイルは、ネットワーク化されたデスクトップ、ラップトップ、またはサーバーコンピューターの動作を制御するのに適したオペレーティングシステム３１８を含む大容量記憶装置３１０およびコンピューター３００のＲＡＭ３１４に記憶されてもよい。大容量記憶装置３１０およびＲＡＭ３１４は、少なくとも１つのプログラムモジュールを記憶することもできる。特に、大容量記憶装置３１０およびＲＡＭ３１４は、仮想アプリケーション１１２、アプリケーション仮想化サーバーコンポーネント１１６、ライセンシング／メータリングコンポーネント１１４、および／または上述した他のソフトウェアコンポーネントを記憶することができる。大容量記憶装置３１０およびＲＡＭ３１４は、他のプログラムモジュールおよびデータを記憶することもできる。
【００４３】
一般に、ソフトウェアアプリケーションまたはモジュールは、ＣＰＵ３０２にロードされて実行されると、ＣＰＵ３０２およびコンピューター３００全体を汎用コンピューティングシステムから本明細書に示されている機能を実行するようにカスタマイズされた専用のコンピューティングシステムに変換することができる。ＣＰＵ３０２は、任意の数のトランジスタまたは他のディスクリート回路素子で構成され、これらは個々に、または協働して任意の数の状態を呈することができる。より詳細には、ＣＰＵ３０２は、ソフトウェアまたはモジュール内に含まれる実行可能な命令に応答して有限状態機械として動作することができる。コンピューター実行可能命令は、２つの状態の間でＣＰＵ３０２が遷移する様子を指定することによってＣＰＵ３０２を変換して、ＣＰＵ３０２を構成するトランジスタまたは他のディスクリートハードウェア素子を物理的に変化させることができる。
【００４４】
また、大容量記憶装置にソフトウェアまたはモジュールをエンコードすることで、大容量記憶装置または関連するコンピューター可読記憶媒体の物理的構造を変化させることができる。物理的構造の特定の変化は、上述の異なる実装において、さまざまな要因によって決まる可能性がある。この要因の例として、コンピューター可読記憶媒体を実装するのに使用される技術、コンピューター可読記憶媒体が一次記憶装置と見なされるか、または二次記憶装置と見なされるかなどが挙げられるが、これらに限定されない。例えば、コンピューター可読記憶媒体が半導体ベースのメモリとして実装される場合、ソフトウェアまたはモジュールは、ソフトウェアがエンコードされると、半導体メモリの物理的状態を変化させることができる。例えば、ソフトウェアは、半導体メモリを構成するトランジスタ、コンデンサ、または他のディスクリート回路素子の状態を変化させることができる。
【００４５】
別の例として、コンピューター可読記憶媒体は、磁気技術または光技術を使用して実装されてもよい。このような実装では、ソフトウェアまたはモジュールは、ソフトウェアがエンコードされると、磁気媒体または光媒体の物理的状態を変化させることができる。これらの変換は、所与の磁気媒体の特定の位置の磁気特性を変えることを含んでもよい。また、これらの変換は、所与の光媒体の特定の物理的特徴または特性を変えてこれらの位置の光学特性を変えることを含んでもよい。本発明の説明の範囲および精神から逸脱せずに他の物理媒体の変換も可能であり、上述の例は、単に本発明の説明を進めるために示したにすぎない。
【００４６】
このことに基づいて、本明細書で仮想アプリケーションのライセンス行使およびメータリングの技術が示されていることは理解されたい。本明細書で示されている発明の主題は、コンピューターの構造的特徴、方法動作、およびコンピューター可読媒体に特定して説明されているが、添付の請求項で定義される本発明は、必ずしも本明細書に記載されている特定の特徴、動作、または媒体に限定されるものではないことは理解されたい。むしろ、特定の特徴、動作、および媒体は、請求項を実装する形態例として開示されている。
【００４７】
上述の発明の主題は、単なる例として示されており、限定的なものと見なすべきではない。図示され説明されている実施形態およびアプリケーションの例に従うのではなく、また以下の請求項で説明される本発明の真の精神および範囲から逸脱せずに、本明細書に記載されている発明の主題に種々の修正及び変更が加えられてもよい。
【図１】
2014505931.tif 000003
【図２】
2014505931.tif 000004
【図３】
2014505931.tif 000005
【国際調査報告】
2014505931.tif 000006
2014505931.tif 000007