(57)【要約】ソフトウェアアプリケーションの動作をガイドするライセンシング情報が、そのソフトウェアアプリケーションがインストールされているデバイスのオペレーティングシステム独立ストレージに格納され得る。オペレーティングシステム独立ストレージは、デバイスのファイルシステムとは独立であり、そのデバイスのチップセットの一部として実装されるストレージを含み得る。ライセンシング情報は、デバイスの状態に関わらず、リモートデバイスにより通信ネットワークを介して、デバイスのオペレーティングシステム独立ストレージに書き込まれる。ライセンシング情報はその後、アプリケーションのユーザにより要求される機能が、ライセンシング情報によってサポートされるかどうかを判断するのに、ソフトウェアアプリケーションによってアクセスされ得る。
2015531950.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサにより読み取り可能な非一時的プログラムストレージデバイスであって、該プロセッサに、
ローカルデバイスでアクションを実行する要求を受信させ、
前記要求されたアクションがライセンスを必要とすることを判断させ、
前記ローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求し、前記要求されたアクションのために有効なライセンスが存在するかどうか判断させる
命令を備え、
前記オペレーティングシステム独立ストレージは、前記プロセッサに関連付けられるチップセット内に存在する、非一時的プログラムストレージデバイス。
【請求項２】
前記オペレーティングシステム独立ストレージは、不揮発性フラッシュストレージデバイスを備える、
請求項１に記載の非一時的プログラムストレージデバイス。
【請求項３】
前記プロセッサに前記ローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求させる命令は、前記プロセッサに、ハードウェアデバイスドライバを通して前記データを要求させる命令を備える、
請求項１に記載の非一時的プログラムストレージデバイス。
【請求項４】
前記プロセッサに、リモートデバイスと通信して前記データを取得させる命令を更に備える、
請求項１に記載の非一時的プログラムストレージデバイス。
【請求項５】
前記プロセッサに、リモートデバイスと通信して前記データを取得させる命令は、前記ローカルデバイスがパワーダウン状態にあるときに、前記プロセッサによって実行可能である、
請求項４に記載の非一時的プログラムストレージデバイス。
【請求項６】
前記プロセッサに前記ローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求させる命令は、前記プロセッサに、読み取り認証情報を提示させる命令を備える、
請求項１に記載の非一時的プログラムストレージデバイス。
【請求項７】
前記プロセッサに前記ローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求させる命令は、前記プロセッサに、第三者ソフトウェアライブラリからの機能を利用させる命令を備える、
請求項１に記載の非一時的プログラムストレージデバイス。
【請求項８】
前記プロセッサに前記ローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求して、前記要求されたアクションのために有効なライセンスが存在するかどうか判断させる命令は、前記プロセッサに、前記データに対する操作を実行させる命令を備える、
請求項１に記載の非一時的プログラムストレージデバイス。
【請求項９】
前記データは、有効期限を含み、
前記プロセッサに、前記データに対する操作を実行させる命令は、前記プロセッサに、現在の日付が前記有効期限の前であるかどうかを判断させる命令を備える、
請求項８に記載の非一時的プログラムストレージデバイス。
【請求項１０】
前記要求されたアクションのために前記有効なライセンスが存在すると判断したときにのみ、前記プロセッサに、前記要求されたアクションを実行させる命令を更に備える、
請求項１に記載の非一時的プログラムストレージデバイス。
【請求項１１】
前記プロセッサに前記ローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求させる命令は、前記プロセッサに、ソフトウェアアプリケーションに割り当てられた前記オペレーティングシステム独立ストレージの部分からのデータを要求させる命令を備える、
請求項１に記載の非一時的プログラムストレージデバイス。
【請求項１２】
プロセッサによって実行される方法であって、
ソフトウェアアプリケーションにより、ローカルデバイスにおいてアクションを実行する要求を受信する動作と、
前記ソフトウェアアプリケーションにより、前記要求されたアクションがライセンスを必要とすることを判断する動作と、
前記ソフトウェアアプリケーションにより、前記ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスして、前記要求されたアクションを実行すべきかどうかを判断する動作と、
を備え、
前記オペレーティングシステム独立ストレージは、前記プロセッサに関連付けられるチップセット内に存在する、方法。
【請求項１３】
前記オペレーティングシステム独立ストレージは、不揮発性フラッシュストレージデバイスを備える、
請求項１２に記載の方法。
【請求項１４】
前記ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスする動作は、ハードウェアデバイスドライバを通して前記ライセンシング情報を要求する動作を含む、
請求項１２に記載の方法。
【請求項１５】
リモートデバイスと通信して前記ライセンシング情報を取得する動作を更に備える、
請求項１２に記載の方法。
【請求項１６】
リモートデバイスと通信して前記ライセンシング情報を取得する動作は、前記ローカルデバイスがパワーダウン状態にあるときに実行される、
請求項１５に記載の方法。
【請求項１７】
前記ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスする動作は、読み取り認証情報を提示する動作を備える、
請求項１２に記載の方法。
【請求項１８】
前記ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスする動作は、前記ソフトウェアアプリケーションにより、第三者ソフトウェアライブラリに提供された機能を呼び出す動作を含む、
請求項１２に記載の方法。
【請求項１９】
前記ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスして、前記要求されたアクションを実行すべきかどうかを判断する動作は、前記ライセンシング情報に対する操作を実行する動作を含む、
請求項１２に記載の方法。
【請求項２０】
前記ライセンシング情報は、有効期限を含み、
前記ライセンシング情報に対する操作を実行する動作は、現在の日付が前記有効期限の前であるかどうかを判断する動作を含む、
請求項１９に記載の方法。
【請求項２１】
前記要求されたアクションのために有効なライセンスが存在すると判断したときにのみ、前記要求されたアクションを実行する動作を更に備える、
請求項１２に記載の方法。
【請求項２２】
前記ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスする動作は、前記ソフトウェアアプリケーションに割り当てられた前記オペレーティングシステム独立ストレージの部分にアクセスする動作を備える、
請求項１２に記載の方法。
【請求項２３】
デバイスであって、
メモリと、
当該デバイスのオペレーティングシステムとは独立の関連するチップセット内にストレージを有するプロセッサと
を備え、
前記プロセッサは、前記メモリ内に格納されたプログラムコードを実行して、
アクションを実行する要求を受信し、
前記要求されたアクションがライセンスを必要とすると判断し、
オペレーティングシステム独立ストレージからのデータを要求して、前記要求されたアクションのために有効なライセンスが存在するかどうかを判断する
ように適合される、デバイス。
【請求項２４】
前記プロセッサに、オペレーティングシステム独立ストレージからのデータを要求して、前記要求されたアクションのために有効なライセンスが存在するかどうかを判断させるプログラムコードは、前記プロセッサに、前記データに対する操作を実行させるプログラムコードを備える、
請求項２３に記載のデバイス。
【請求項２５】
プロセッサにより、ソフトウェアアプリケーションのライセンシング情報と、対応するユーザ情報を、データストア内に格納する動作と、
前記プロセッサにより、前記ライセンシング情報を、前記ソフトウェアアプリケーションがインストールされているデバイスに関連付ける動作と、
前記プロセッサにより、前記ライセンシング情報をデバイスのオペレーティングシステム独立ストレージに書き込む動作と、
を含み、前記オペレーティングシステム独立ストレージが、前記デバイスのプロセッサに関連付けられるチップセット内に存在する、方法。
【請求項２６】
前記ライセンシング情報をデバイスのオペレーティングシステム独立ストレージに書き込む動作は、前記デバイスに対する書き込み認証情報を提示する動作を備える、
請求項２５に記載の方法。
【請求項２７】
前記ライセンシング情報をデバイスのオペレーティングシステム独立ストレージに書き込む動作は、前記デバイスがパワーダウン状態にあるとき、前記デバイスとのネットワーク接続を介して帯域外通信を使用して前記ライセンシング情報を書き込む動作を備える、
請求項２５に記載の方法。
【請求項２８】
前記ライセンシング情報をデバイスのオペレーティングシステム独立ストレージに書き込む動作は、前記デバイスのオペレーティングシステムが非アクティブであるとき、前記デバイスとのネットワーク接続を介して前記ライセンシング情報を書き込む動作を備える、
請求項２５に記載の方法。
【請求項２９】
ソフトウェアアプリケーションのライセンシング情報と、対応するユーザ情報を、データストア内に格納する動作は、前記ライセンシング情報と前記対応するユーザ情報を、前記ソフトウェアアプリケーションのプロバイダから受信する動作を備える、
請求項２５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、ソフトウェアアプリケーションの動作をガイドするライセンシング情報の格納及び利用に関する。より具体的には、これらに限られないが、本開示は、ライセンシング情報を、ソフトウェアアプリケーションがインストールされているデバイス上のセキュアな場所に格納する技術に関する。
【背景技術】
【０００２】
当業者には公知であるように、ソフトウェアのライセンスシング及びアクティベーションの動作は、ソフトウェアアプリケーションの動作を管理するのに使用されるライセンス情報のセキュアなストレージに依拠する。既存のライセンスシングスキームは、ライセンスシング情報をコンピュータのオペレーティングシステムによって管理されるアドレス可能なハードディスクスペースに格納する。そのようなライセンシング情報には、ユーザが購入したソフトウェアアプリケーションのレベル（例えばプロフェッショナル、初心者等）、そのソフトウェアアプリケーションの有効期限、ソフトウェアがそのアプリケーションのプロバイダによってアクティベート／登録されていることの指示又はアプリケーションの動作をガイドする他のデータが含まれ得る。これらの既存の技術は、ソフトウェア開発者が、ユーザにより得られたライセンスに基づいて異なる機能を有効にすることを可能にする（すなわち、共通のプログラムコードの機能がライセンシング情報によってガイドされる）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、アドレス可能なハードディスクスペース内へのライセンシング情報の格納により、このライセンシング情報は、ライセンス付与されたソフトウェアの動作に大いに影響を与える可能性がある他のアプリケーション及び／又はユーザによる、不正なアクセス及び操作を受けることになる。ライセンシング情報を、不正アクセス又は操作からよりセキュアなローカルの記憶場所に格納することが有利であろう。
【課題を解決するための手段】
【０００４】
本開示は、オペレーティングシステム独立ストレージ内へのライセンシング情報の格納及び使用に関する。一般に、ライセンシング情報をオペレーティングシステム独立ストレージに書き込み、後にそのストレージにアクセスして、要求されたタスクが有効なライセンスによってサポートされているかどうかを判断するための技術を開示する。
【図面の簡単な説明】
【０００５】
【図１】一実施形態に係るデバイス及び管理サーバを示すブロック図である。
【図２】一実施形態に係るライセンシング情報のプロビジョニングプロセスを示すフローチャートである。
【図３】一実施形態に係るライセンシング情報の利用プロセスを示すフローチャートである。
【図４】一実施形態に係る、ユーザデバイスと、管理サーバと、ソフトウェアプロバイダとの間の情報の交換を示す通信フロー図である。
【図５】一実施形態に係る例示的な電子デバイスのブロック図である。
【発明を実施するための形態】
【０００６】
以下の記載では、説明の目的で、発明の概念の完全な理解を提供するために様々な具体的な詳細が説明される。この記載の一部として、本開示における図面の一部は、本発明の実施形態を曖昧にするのを避けるために、構造及びデバイスをブロック図の形で表している。明確性のために、必ずしも実際の実装の全ての特徴が本明細書内で説明されていないことがある。さらに、本開示で使用される言葉は、主として読みやすさと教示性の目的で選択されており、本発明に係る主題を線引きするか、制限するようには選択されておらず、本発明に係る主題を決定するのには必要とされる請求項を用いる。本開示において、「一実施形態」又は「実施形態」への言及は、その実施形態と関連して説明される特定の特徴、構造又は特性が、本発明の少なくとも１つの実施形態に含まれることを意味し、「一実施形態」又は「実施形態」への幾つかの言及は、必ずしも全て同じ実施形態を指すものとして理解されるべきではない。
【０００７】
いずれかの実際の実装の開発において（いずれかの開発計画のように）、開発者の固有の目標（例えばシステム及び企業関連の制約の順守）を達成するよう様々な決定を行わなければならず、これらの目標は、実装に応じて変化するであろうことが認識されよう。また、そのような開発努力は、複雑で時間がかかるものである可能性があるが、それにもかかわらず、本開示の利益を享受する当業者にとっては、日常的な仕事であろうことが認識されよう。
【０００８】
図１に移ると、デバイス１００は、アプリケーションレイヤ１００Ａ、オペレーティングシステムレイヤ１００Ｂ及びハードウェアレイヤ１００Ｃを含む。アプリケーションレイヤ１００Ａは、アプリケーション１３０のようなユーザレベルのアプリケーションソフトウェアを含んでよい。アプリケーション１３０は、機能するためにライセンスを必要とする特定の機能（feature）を有する任意のタイプのソフトウェアアプリケーション（例えばワードプロセッシング、ファイナンシャルプランニング、スプレッドシート、アンチウィルス等）であってよい。アプリケーション１３０の各インストールのためのプログラムコードは、同じであってよい（例えばアプリケーション１３０の全ての機能を含んでよい）が、アプリケーション１３０の特定の機能は、これらの機能を利用するためにライセンスを取得することにより、「ロック解除」される必要がある可能性がある。当業者には公知であるように、デバイス１００のオペレーティングシステムは、オペレーティングシステムレイヤ１００Ｂ内に存在してよく、ハードウェアレイヤ１００Ｃの一部を管理して、共通の機能をアプリケーションレイヤ１００Ａ内のアプリケーションに提供し得る。ハードウェアレイヤ１００Ｃは、デバイス１００を形成する物理的なコンポーネントを含んでよい。例えばハードウェアレイヤ１００Ｃは、１つ又は複数の中央処理ユニット（ＣＰＵ）を含んでよく、その各々のＣＰＵは、１つ又は複数のコア、１つ又は複数のメモリデバイス、周辺デバイス等を有する。特に簡単な開示に関連して、ハードウェアレイヤ１００Ｃは、管理ファームウェア１４０を含んでよい。管理ファームウェア１４０は、デバイス１００の処理デバイスに関連付けられるチップセットのマイクロコントローラ内に配置されてよく、デバイス１００を管理するためのハードウェアベースの機能を提供することができる。そのような機能は、例えばインテル（登録商標）アクティブマネジメントテクノロジー（ＡＭＴ）を含むチップセットにより提供され得る（ＩＮＴＥＬは、インテル社の登録商標である）。
【０００９】
図示される実施形態において、管理ファームウェア１４０は、オペレーティングシステム独立ストレージ１４５を含む。本明細書で使用されるとき、オペレーティングシステム独立ストレージは、デバイスのオペレーティングシステムによって組み込まれていない（mount）ストレージを指す。したがって、オペレーティングシステム独立ストレージ１４５は、デバイス１００のファイルシステムの一部ではない。一実施形態において、オペレーティングシステム独立ストレージ１４５は、不揮発性ストレージを含んでよい。例えばオペレーティングシステム独立ストレージは、フラッシュストレージを含んでもよい。一実施形態において、オペレーティングシステム独立ストレージ１４５は、デバイス１００を制御するのに使用される処理デバイス内に統合されてもよい。
【００１０】
一実施形態において、オペレーティングシステム独立ストレージ１４５は、様々な部分が特定のアプリケーション用に予約されるように、割り当てられる。例えば部分１４５Ａがアプリケーション１３０に割り当てられてよい。したがって、部分１４５Ａは、アプリケーション１３０又はアプリケーション１３０により認証された他のアプリケーションのみによって使用され得る（例えばその部分１４５Ａへの書き込み及びこの部分からの読み出しが行われ得る）。割り当てられた部分１４５Ａ内に、アプリケーション１３０は、様々なアプリケーションの機能（例えば機能Ａ、Ｂ、Ｃ及びＤ）に関するライセンシングデータを格納してもよい。一実施形態において、ライセンシングデータは、特定の機能が有効であるかどうかの簡単な指示（例えば単一のビット）、その機能の有効期限、シートライセンスについてのシートの数等を含み得る。したがって、特定の機能専用の記憶空間の量は、サイズの点で異なることがある。部分１４５Ａを、単一のアプリケーションの特定の機能に関連付けられるライセンシングデータに関して説明したが、別の実施形態では、オペレーティングシステム独立ストレージ１４５の部分を、複数の追加のアプリケーションの代わりにライセンシングデータを管理するアプリケーションに割り当ててもよい。
【００１１】
以下で更に詳細に説明されるように、オペレーティングシステム独立ストレージ１４５は、管理ファームウェアインタフェース１５５により、デバイス１００上で動作している特定のアプリケーションに対してアクセス可能であってよい。管理ファームウェアインタフェース１５５は、アプリケーションがオペレーティングシステム独立ストレージ１４５にアクセスするのを可能にするデバイスドライバとして機能し得る。したがって、アプリケーションソフトウェアは、アプリケーションにオペレーティングシステム独立ストレージ１４５へアクセスさせて、特定のアプリケーションの機能が現在のライセンスによってサポートされるかどうかを判断させるプログラムコードを含み得る。オペレーティングシステム独立ストレージ１４５はまた、通信ドライバ１５０により、特定のリモートデバイスに対してもアクセス可能であってよい。通信ドライバ１５０は、ネットワークインタフェースコントローラ１３５と対話して、ネットワーク１８０により、例えば管理サーバ１８５等との通信を容易にすることができる。以下で更に説明されるように、管理ファームウェア１４０内における通信ドライバ１５０の位置は、デバイス１００（及びしたがって通信ドライバ１０５）がアクティブ状態でないときに通信を有効にすることがある。
【００１２】
管理サーバ１８５は、該サーバ上に存在するデータストア１９５を有することがあり、データストア１９５は、様々な機能及び／又はアプリケーションについてのライセンシング情報を、そのライセンスに関連付けられるユーザに関するユーザ情報に関連付ける。図示される実施形態では、データストア１９５は、複数のユーザ（例えばユーザＥ、Ｆ、Ｇ、Ｈ及びＩ）について、アプリケーション１３０の機能の有効期限のライセンシング情報を含む。データストア１９５に入力された日付は、指定された機能について現在のライセンスの期限が切れる日を示しており、「--」という入力は、指定された機能についてライセンスが存在していないことを示す。有効期限ライセンシング情報は、特定の機能を有効にすべきかどうかを判断するのに、アプリケーションソフトウェアによって（例えばオペレーティングシステム独立ストレージ１４５内の情報にアクセスすることによって）利用され得る。例えばユーザは、アプリケーション又はアプリケーション機能について、特定の期間の間（例えば１年）有効なライセンスを購入することがある。ユーザが、ライセンス付与されたアプリケーション又は機能を利用することを試みるとき、アプリケーションソフトウェアは、現在の日付を、記憶された有効期限と比較して、その機能が現在のライセンスの下で利用可能であるかどうかを判断することができる。このようにして、アプリケーションの機能は、ライセンスの期間の間有効にされ、ライセンスの有効期限の後はブロックされる。図１は、データストア１９５内に有効期限のライセンシング情報を示しているが、様々な追加のタイプのライセンシング情報を用いて、ソフトウェアアプリケーションの動作を制御してもよいことが理解されよう。例えばライセンシング情報は、有効にされる特徴を示し、特定のアプリケーションについての最大データ転送レートを定義し、共有リソースの最大ユーザ数を定義する等してもよい。
【００１３】
以下で更に詳細に説明されるように、データストア１９５内に含まれるライセンシング情報は、ユーザがソフトウェアライセンスを購入するかアップグレードするときに、ソフトウェアプロバイダ（又はベンダ）によって管理サーバ１８５に通信されてよい。特定のデバイスについてのライセンシング情報は、その後、ネットワークインタフェースコントローラ１９０によりネットワーク１８０を介して、ソフトウェアがインストールされる上記デバイスのオペレーティングシステム独立ストレージ１４５に書き込まれてよい。ネットワーク１８０は任意の形式を有してよく、これらに限られないが、ローカルエリアネットワーク（ＬＡＮ）、インターネットのようなワイドエリアネットワーク（ＷＡＮ）又はローカルとワイドエリアネットワークの組み合わせを含む。さらに、ネットワークは、任意の所望のテクノロジ（有線、無線又はその組み合わせ）及びプロトコル（例えば伝送制御プロトコル：ＴＣＰ）を使用してよい。
【００１４】
一実施形態において、管理ファームウェア１４０は、デバイス１００のオペレーティングシステム及び電力状態に関わらず、動作可能であってよい。例えば管理ファームウェア１４０は、デバイス１００がパワーダウン状態又はスタンバイ状態にあるとき、補助電源で動作してもよい。したがって、オペレーティングシステム独立ストレージ１４５は、デバイス１００がパワーダウンしているときであっても、あるいはデバイス１００のオペレーティングシステムがアクティブでないときであっても、ネットワーク１８０上の帯域外通信を介して、管理サーバ１８５に対してアクセス可能であってよい。したがって、ライセンシング情報は、デバイス１００の動作状態に関わらず、データストア１９５から、ローカルのオペレーティングシステム独立ストレージ１４５へ書き込まれることが可能である。
【００１５】
図２を参照すると、一実施形態に係るライセンスプロビジョニングプロセス２００は、ユーザ（例えばデバイス１００のユーザ）がソフトウェアを取得すると開始する（ブロック２０５）。公知であるように、ソフトウェアは様々な方法で取得され得る。一実施形態において、ユーザは、例えばソフトウェアプロバイダ又はソフトウェアベンダにより提供されるインターネットのウェブサーバからソフトウェアをダウンロードすること等によって、ソフトウェアを電気的に取得することができる。別の実施形態では、ソフトウェアの物理的コピー（例えばＣＤ−ＲＯＭ、ＤＶＤ、ユニバーサルシリアルバス（ＵＳＢ）メモリデバイス等のような有形の媒体上に具現化されるコピー）が、ユーザによって取得され得る。
【００１６】
ユーザによって取得されるソフトウェアは、特定のソフトウェアの機能を「ロック解除」する特定のライセンスに関連付けられてよい。例えばソフトウェアの「プロフェッショナル」バージョンを購入するユーザは、同じソフトウェアの「ビギナー」バージョンに関連付けられるライセンスよりも多くの機能を有効にするライセンスを受け取ることができる。したがって、ユーザがソフトウェアを取得するとき、ソフトウェアプロバイダは、ユーザを識別する情報を、取得したソフトウェアのバージョン又は機能に対応するライセンシング情報に関連付けてよい。一実施形態において、ユーザが、ソフトウェアプロバイダのウェブサイトからソフトウェアの電子コピーを購入する場合、ソフトウェアプロバイダは、購入プロセスを通して必要な情報を取得することができる。例えば購入プロセス中に、ユーザを識別する情報（例えば名前、クレジットカード情報等）が、ソフトウェアプロバイダ（又はソフトウェアベンダ）によって直接取得されてよく、この情報は、購入したソフトウェアに対応するライセンシング情報と関連付けられてよい。（ソフトウェアの物理的コピーがソフトウェアプロバイダ以外のエンティティから取得されるときのような）別の実施形態において、インストールがあると、ソフトウェアは登録プロセスを開始し、この登録プロセスに従って、ユーザ情報と、取得したソフトウェアに対応するライセンシング情報が、直接又は第三者を通して（例えばソフトウェアプロバイダのウェブサイトへの接続を通して）ソフトウェアプロバイダに提供される。ユーザが新しいソフトウェアを取得することに関して、ライセンスプロビジョニングプロセス２００をしばらく説明してきたが、同じプロセスが、既存のソフトウェアのライセンスを新しくするかアップグレードするユーザにも当てはまることに留意されたい。すなわち、ユーザが既存のソフトウェアについて新しいライセンスを取得するとき、そのユーザを識別する情報が、上述のように新たなライセンスに関連付けられてよく、プロセス２００は以下に説明されるように続いてよい。
【００１７】
関連付けられたユーザ情報と、取得したソフトウェアに対応するライセンシング情報が、管理サーバに提供され得る（ブロック２１０）。一実施形態において、ユーザ情報及びライセンシング情報は、ソフトウェアプロバイダによって提供され得る。例えばソフトウェアプロバイダは、上述のようにユーザ情報及びライセンシング情報を取得し、その後、ライセンシング情報を管理サーバに通信し得る。一実施形態において、管理サーバは、ソフトウェアプロバイダによって制御され得る。そのような実施形態では、ソフトウェアプロバイダ自身が、管理サーバからのライセンシング情報のプロビジョンを管理し、そして、プログラムコードを、取得したソフトウェア内に組み込んでもよい。このプログラムコードにより、ソフトウェアは、ライセンシング情報をローカルのオペレーティングシステム独立ストレージから取り出すことになる。
【００１８】
別の実施形態において、管理サーバは、第三者によって操作され得る。そのような実施形態では、第三者は、管理サーバからのライセンシング情報のプロビジョンを管理して、ソフトウェアライブラリを提供してよく、このソフトウェアライブラリは、ソフトウェアプロバイダがローカルのオペレーティングシステム独立ストレージ内に格納されたライセンシング情報を利用するのを可能にする。したがって、ソフトウェアプロバイダは、ライセンシング情報が、第三者のインタフェースを使用してローカルのオペレーティングシステム独立ストレージから取り出されるように、単に現在のユーザ／ライセンシング情報を第三者に提供し、取得したソフトウェアで第三者に提供されるライブラリを実装すればよい。
【００１９】
更に別の実施形態では、管理サーバは、ソフトウェアの購入者によって操作されてもよい。例えば大量のソフトウェアアプリケーションライセンスの購入者（例えば法人ユーザ）は、その自身の管理サーバをローカルエリアネットワーク上で管理することがある。この管理サーバは、更新されたユーザ情報／ライセンシング情報を（例えばソフトウェアプロバイダから）取得し、ソフトウェアのユーザのために、このライセンシング情報をローカルのオペレーティングシステム独立ストレージにプッシュする。
【００２０】
ユーザ情報及びライセンシング情報が管理サーバに提供された後、管理サーバは、ライセンシング情報を、取得したソフトウェアがインストールされているデバイスに関連付けることができる（ブロック２１５）。一実施形態において、取得したソフトウェアがインストールされているデバイスは、管理サーバによって管理されるユーザ情報／ライセンシング情報から直接的に識別可能であってよい。例えば上述した法人の場合、ユーザ情報には、管理サーバと同じローカルエリアネットワーク上のデバイスの静的なインターネットプロトコル（ＩＰ）アドレスが含まれることがある。したがって、デバイスは、管理サーバ上に格納された情報に基づいて識別可能であり得る。別の実施形態では、取得したソフトウェアがインストールされているデバイスは、管理サーバに提供されるユーザ情報／ライセンシング情報に基づくだけでは識別可能でないことがある。例えば個人ユーザが、取得したソフトウェアを、管理サーバとインターネット接続を介して通信する動的なＩＰアドレスを有するデバイス上にインストールしていることがある。そのような実施形態では、デバイスは、ライセンシング情報を該デバイスに関連付けるのを可能にするため、管理サーバとの通信を（例えば管理サーバへのインターネット接続を介して）開始する必要がある。例えば取得したソフトウェアは、デバイスに、周期的に管理サーバへ接触させて識別情報（例えばユーザ名又はアカウントアクセスの認証情報）を提示させる。これは、管理サーバが、デバイスをユーザ情報と、従って関連するライセンシング情報とマッチングするのを可能にする。デバイスに管理サーバへ接触させるプログラムコードが、上述の管理ファームウェア内に格納されてよいことに留意されたい。したがって、デバイスは、該デバイスの動作状態（例えばパワーダウン状態や非アクティブなオペレーティングシステム）に関わらず、管理サーバに接触することができる。
【００２１】
管理サーバが、ライセンシング情報を特定のデバイスに関連付けた後、管理サーバは、ライセンシング情報を、そのデバイス上のローカルのオペレーティングシステム独立ストレージに書き込むことができる（ブロック２２０）。一実施形態において、オペレーティングシステム独立ストレージへの書き込みアクセスは、書き込み認証情報（write  credentials）を必要とすることがある。そのような実施形態では、書き込み認証情報のコピーを、オペレーティングシステム独立ストレージ内に格納してもよく、書き込みアクセスは、合致する認証情報を提示するエンティティに対してのみ許可され得る。例えば自身の管理サーバを制御するソフトウェアプロバイダは、第三者証明書プロバイダから書き込み証明書（write  certificate）を取得して、その書き込み証明書のコピーをプロバイダが供給するソフトウェア内に含めることができる。書き込み証明書のコピーは、管理サーバによるオペレーティングシステム独立ストレージへの書き込みの試行の際に、管理サーバにより提示される書き込み証明書との比較のために、オペレーティングシステム独立ストレージ内に格納されてよい。そのような実施形態において、ソフトウェアに提供される書き込み証明書のコピーは、暗号化されたフォーマットで提供され得る。同様に、ソフトウェアプロバイダが、第三者のサービスを用いてライセンシング情報をプロビジョニングする場合、第三者の書き込み証明書のコピーが、ソフトウェアのコピーとともに提供され得る。
【００２２】
一実施形態において、書き込み認証情報は、単一のリモートデバイスに対して有効であってよい。そのような実施形態において、管理サーバは、オペレーティングシステム独立ストレージ内に格納された書き込み認証情報に合致する有効な書き込み認証情報を提供する必要があるだけでなく、該管理サーバが、提示された書き込み認証情報に基づいてデータを書き込むことが許可されたエンティティとして認証されることを可能にする、自己識別情報も提供する必要がある可能性がある。図１に関連して上述したように、管理ファームウェア１４０内の通信ドライバ１５０は、管理サーバ１８５との通信を可能にする。管理ファームウェア１４０は、管理サーバによって提示された認証情報を検証し、有効性が検証されると、その管理サーバは、デバイス１００の状態に関わらず、現在のライセンシング情報をローカルのオペレーティングシステム独立ストレージ１４５に書き込むことができる。
【００２３】
図３を参照すると、一実施形態に係るライセンス利用プロセス３００は、ユーザが、オペレーティングシステム独立ストレージ内に格納されたライセンシング情報によってガイドされる機能を組み込んだソフトウェアを利用すると、開始する（ブロック３０５）。ユーザがソフトウェアの特定の機能を使用することを試みると、その要求された機能がライセンスを必要とするかどうかが判断され得る（ブロック３１０）。例えば特定のソフトウェアの機能（例えばデータ転送、データベースに同時にアクセスするユーザの数等）は、ライセンシング情報によって制御され得るが、他の機能はライセンスなしで利用可能であってよい。この判断はソフトウェアアプリケーション自体の中で行われてよいことが理解されよう。すなわち、特定の機能がライセンスを必要とする場合、このソフトウェアは、その機能が有効にされる前にライセンシング情報を取り出すプログラムコードを含み得る。要求された機能がライセンスを必要とすると判断された場合（ブロック３１０の「はい」に進む場合）、ソフトウェアは、適用可能なライセンシング情報について、ローカルのオペレーティングシステム独立ストレージをクエリする（ブロック３１５）。図１を参照すると、オペレーティングシステム独立ストレージへのアクセスは、ファームウェアインタフェース１５５を介して得られる。一実施形態において、ファームウェアインタフェース１５５は、アプリケーションレイヤ１００Ａで動作するアプリケーションとオペレーティングシステム独立ストレージ１４５の間をインタフェースするハードウェアデバイスドライバとして機能してよい。上記のように、オペレーティングシステム独立ストレージ１４５は、特定のアプリケーション（又は特定のプロセス）に割り当てられる部分のみがアクセス可能となるように、割り当てられてよい。一実施形態において、アプリケーションは、オペレーティングシステム独立ストレージ内のライセンシング情報にアクセスするために、読み取り認証情報（read  credentials）を提示することがある。上述の書き込み認証情報と同様に、アプリケーションによって提示される読み取り認証情報を、オペレーティングシステム独立ストレージ内に格納された認証情報（例えばオペレーティングシステム独立ストレージの割り当ての一部として作成された認証情報）と比較して、そのアプリケーションが、オペレーティングシステム独立ストレージからデータを読み取ることを許可されていることを検証することがある。一実施形態において、読み取りアクセスは、特定のプロセスに縛られることもある。すなわち、プロセッサ上で実行される１つのプロセスのみが、オペレーティングシステム独立ストレージの割り当てられた部分からデータを取り出すことが可能であることがある。本開示の一実施形態によると、オペレーティングシステム独立ストレージは、オペレーティングシステム独立ストレージによって提供されるセキュリティ機能に基づいて、未許可のアクセス又は操作の影響を受けにくいライセンシング情報のローカルストレージを提供することができる。さらに、オペレーティングシステム独立ストレージは、アプリケーションが実行しているオペレーティングシステムのタイプに依存しな���ので、オペレーティングシステム独立ストレージ内のライセンシング情報へのアクセスは、オペレーティングシステムに関わらず一様であってよい。
【００２４】
上記のように、一実施形態では、ライセンシングデータをオペレーティングシステム独立ストレージに書き込む管理サーバは、オペレーティングシステム独立のライセンシング情報の機能をソフトウェアで実装するよう望むソフトウェアプロバイダによって制御されてよく、該ソフトウェアプロバイダが、そのソフトウェアを提供する。そのような実施形態において、ソフトウェアプロバイダは、管理サーバが制御する書き込み認証情報を取得し、そのソフトウェアがオペレーティングシステム独立ストレージに書き込まれたライセンシング情報を読み取るのを可能にする読み取り認証情報を取得することができる。ソフトウェアプロバイダは、（例えばファームウェアインタフェース１４５とインタフェースすることにより）オペレーティングシステム独立ストレージにアクセスするためのプログラムコードをソフトウェアで実装してもよい。
【００２５】
別の実施形態では、簡単に上記で説明したように、そのソフトウェアでオペレーティングシステム独立ストレージに格納されたライセンシング情報を利用することを望んでいるソフトウェアプロバイダは、第三者を介してこの機能を実装することを選んでもよい。例えばその自身の管理サーバを保持し、自身の読み取り及び書き込み認証情報を保持し、そのソフトウェアがオペレーティングシステム独立ストレージへアクセスするのを可能にするプログラムコードを実装するのではなく、ソフトウェアプロバイダは、これらのタスクを第三者プロバイダに委任してよい。そのような実施形態では、第三者プロバイダは、恐らくは複数のソフトウェアベンダからの複数のソフトウェアアプリケーションの代わりに、ライセンシング情報をプロビジョニングするよう、単一の管理サーバを動作させる。この機能とともに、第三者は、ソフトウェアアプリケーションが、ライブラリを用いてオペレーティングシステム独立ストレージからのライセンシング情報にアクセスするのを可能にする、ソフトウェアライブラリを提供してもよい。例えば第三者によって提供されるソフトウェアライブラリは、呼び出しアプリケーションの代わりに、（恐らくは第三者自身の読み取り認証情報を使用して）第三者アプリケーションにライセンシング情報をオペレーティングシステム独立ストレージから取り出させる機能を含んでもよい。したがって、ソフトウェアプロバイダは、ライセンシング情報を第三者に提供し、第三者ライブラリを用いてライセンシング情報にアクセスすることにより、プロビジョニング及び取り出し動作に直接参加することなく、改善されたライセンシング情報のセキュリティの利益を得ることができる。
【００２６】
ライセンシング情報をオペレーティングシステム独立ストレージから取り出した後、要求されたソフトウェア機能が、ライセンスによってサポートされるかどうかを判断することができる（ブロック３２０）。要求された機能がサポートされているかどうかの判断は、オペレーティングシステム独立ストレージから取得された情報を利用する動作を実行することを含んでよい。すなわち、取り出した情報は、ソフトウェアの挙動をガイドするよう、ソフトウェア内にプログラムされた機能によって操作されるデータを含み得る。例えば取り出した情報が有効期限である場合、ソフトウェア内のプログラムコードは、要求された機能のライセンスの有効期限が切れているかどうかを判断するために、現在の日付を、取り出した日付と比較することができる。同様に、取り出した情報が、グループシートライセンスのために購入されたシートの数に関する情報である場合、ソフトウェアの現在のユーザの数が、取り出した情報内に示されるシートの数より少ないかどうかが判断される。取り出したライセンシング情報に基づいてソフトウェアアプリケーションを制御する追加の手段は、当業者により認識されるであろう。ソフトウェアのユーザによって要求された機能が、ライセンシング情報によってサポートされるか、あるいはその機能がライセンスを必要としないと判断される場合（ブロック３２０の「はい」に進むか、ブロック３１０の「いいえ」に進む場合）、ソフトウェアは、要求された機能へのアクセスを許可してよい（ブロック３２５）。しかしながら、要求された機能がライセンスを必要とし、取り出されたライセンシング情報によってサポートされていない場合（ブロック３２０の「いいえ」に進む場合）、ソフトウェアは、その機能へのアクセスをブロックする（ブロック３３０）。要求された機能がブロックされる場合、ソフトウェアはユーザに、要求された機能がライセンスを必要とすること、そして必要とされたライセンスが取得されていないか有効期限が切れていること、あるいは他の形で欠如していることを通知することができる。ソフトウェアは、機能が有効にされるように、ユーザが必要とされたライセンスを取得できるようにする。
【００２７】
図４を参照すると、通信フロー図が、ライセンスプロビジョニングプロセス２００の一実施形態に係る情報の流れを示している。ユーザデバイス１００は、ソフトウェアプロバイダ４００からソフトウェアを取得する。デバイス１００がソフトウェアを取得することに関連して、デバイス１００のユーザを識別する情報であって、ユーザ情報を、取得したソフトウェアに関連付けられるライセンシング情報とリンクさせる情報（例えばバージョン情報）が、ソフトウェアプロバイダ４００に提供され得る（４０５）。図２に関連して上述したように、ユーザ情報及びライセンシング情報は、ソフトウェアの購入の一部として、ソフトウェアの登録の一部等としてソフトウェアプロバイダ４００に提供され得る。ユーザ情報及びライセンシング情報は、デバイス１００からソフトウェアプロバイダ４００に通信ネットワーク（例えばソフトウェアプロバイダのウェブサーバとの接続）を介して通信され得る。ユーザは、ライセンシング情報を将来更新できるようにする情報をソフトウェアプロバイダ４００に提供してもよい。例えばユーザは、ソフトウェアの有効なライセンスを維持するために、クレジットカード情報を提供し、ソフトウェアプロバイダがクレジットカードの請求を行うことができるよう、クレジットカードの請求が繰り返されることを許容することができる。ユーザが必要な識別情報を提供したことに応答して、ソフトウェアプロバイダ４００は、取得したソフトウェアがライセンス付与されていることを示す応答を、ユーザデバイス１００に提供する（４１０）。ほぼ同時に、ソフトウェアプロバイダ４００は、関連するユーザ情報及びライセンシング情報を管理サーバ１８５に提供してよい（４１５）。上述のように、管理デバイス１８５は、ソフトウェアプロバイダ４００、取得したソフトウェアのユーザ又は第三者によって制御され得る。一実施形態において、管理デバイス１８５は、ウェブサーバであってよく、ソフトウェアプロバイダ４００からの情報を、インターネット接続を介して受け取ることができる。別の実施形態において、管理デバイス１８５は、デバイス１００と同じローカルエリアネットワーク上のデータサーバであってよい。リンクされたユーザ情報とライセンシング情報が管理デバイス１８５上のデータストア内に格納され得る（４２０）。
【００２８】
デバイス１００はその後、（例えばインターネット接続を介して）管理デバイス１８５に接触し、該デバイス１００は、ソフトウェアがインストールされたデバイスとして認識されることが可能になる（４２５）。通信４２５は、ソフトウェアプロバイダ４００に提供される（そして、管理デバイス１８５に通信される）ユーザ情報を含むか、あるいは提供されるユーザ情報にデバイス１００を関連付けることができる何らかの識別情報を含み得る。例えばユーザ名とパスワード、クレジットカード情報又は他の識別情報が管理デバイス１８５に提供されることがあり、その結果、管理デバイス１８５は、デバイス１００を、以前に格納されたユーザ情報、したがってリンクされたライセンシング情報に関連付けることができる。一実施形態において、デバイス１００は、デバイスを識別する情報（例えばハードウェア識別子）を提供することもできる。そのような実施形態では、管理デバイス１８５は、デバイス識別子を含むように、ライセンシングレコードを含むデータストアを更新することができる。したがって、管理デバイス１８５は、デバイスの観点並びにユーザの観点から、ライセンシング情報を管理することができる。例えばユーザが第１のデバイス上にソフトウェアをインストールし、ライセンシングデータが第１のデバイス上のオペレーティングシステム独立ストレージに書き込まれる場合、ユーザが第２のデバイス上にソフトウェアをインストールすれば、管理デバイス１８５は、ライセンシング情報を再使用して第２のデバイスに書き込むか、あるいは第２のデバイスへ情報を書き込む前にライセンシング情報を第１のデバイスから取り除いてよい。
【００２９】
デバイス１００がライセンシング情報に関連付けられると、ライセンシング情報は、ソフトウェアによる後の使用のために、管理デバイス１８５からデバイス１００上のオペレーティングシステム独立ストレージへ書き込まれる（４３０）。上述のように、管理デバイス１８５からのライセンシング情報のプロビジョンは、デバイス１００の動作状態に関わらず起こり得る。したがって、本開示によるローカルのオペレーティングシステム独立ストレージ内のライセンシング情報の格納は、ライセンシング情報のセキュアな格納を提供し、デバイスの状態に関わらずライセンシング情報を更新することを可能にする。
【００３０】
図５に移ると、代表的デバイス５００（例えば汎用のデスクトップコンピュータシステム）は、プロセッサ５０５、メモリ５１０、ストレージ５１５、グラフィクスハードウェア５２０、通信インタフェース５２５、ユーザインタフェースアダプタ５３０及びディスプレイアダプタ５３５を含み、これらは全て、システムバス又はバックプレーン５４０を使用して結合され得る。メモリ５１０は、プロセッサ５０５及びグラフィクスハードウェア５２０によって使用される１つ又は複数の異なるタイプの媒体（典型的には半導体）を含んでよい。例えばメモリ５１０は、メモリキャッシュ、読み取り専用メモリ（ＲＯＭ）及び／又はランダムアクセスメモリ（ＲＡＭ）を含み得る。ストレージ５１５は、媒体（例えばオーディオ、画像及びビデオファイル）、コンピュータプログラム命令若しくはソフトウェア、プリファレンス情報、デバイスプロファイル情報及び任意の他の適切なデータを格納することができる。ストレージ５１５は、１つ又は複数の非一時的記憶媒体を含んでよく、このような媒体は、例えば磁気ディスク（固定、フロッピー（登録商標）及び取外し可能）及びテープ、ＣＤ−ＲＯＭ及びデジタルビデオディスク（ＤＶＤ）のような光媒体、電子的プログラマブル読み取り専用メモリ（ＥＰＲＯＭ）及び電子的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）を含む。メモリ５１０及びストレージ５１５は、１つ又は複数のモジュールに編成され、かつ任意の所望のコンピュータプログラミング言語で書かれるコンピュータプログラム命令又はコードを明白に保持するのに使用され得る。プロセッサ５０５及び／又はグラフィクスプロセッサ５２０によって実行されると、そのようなコンピュータプログラムコードは、本明細書で説明される方法の１つ又は複数を実施してよい。通信インタフェース５２５は、システム５００をネットワークに接続するのに使用され得る。例示のネットワークには、限定ではないが、ＵＳＢネットワークのようなローカルネットワーク；企業のローカルエリアネットワーク；又はインターネットのようなワイドエリアネットワークが含まれる。ユーザインタフェースアダプタ５３０は、キーボード５４５、マイクロフォン５５０、ポインタデバイス５５５、スピーカ５６０並びにタッチパッド及び／又はタッチスクリーン（図示せず）のような他のユーザインタフェースデバイスを接続するのに使用され得る。ディスプレイアダプタ５３５がディスプレイ５６５を接続するのに使用され得る。
【００３１】
プロセッサ５０５は、任意のプログラム可能な制御デバイスを含んでよく、限定ではないがこれには、Ｉｎｔｅｌ  Ｃｏｒｅ（登録商標）、Ｉｎｔｅｌ  Ａｔｏｍ（登録商標）、Ｐｅｎｔｉｕｍ（登録商標）及びＣｅｌｅｒｏｎ（登録商標）プロセッサのファミリのうちの１又は複数のメンバが含まれる（Ｉｎｔｅｌ  Ｃｏｒｅ、Ｉｎｔｅｌ  Ａｔｏｍ、Ｐｅｎｔｉｕｍ及びＣｅｌｅｒｏｎは、インテル社の登録商標である）。プロセッサ５０５は、特定用途向け集積回路（ＡＳＩＣ）やフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のようなハードウェアデバイスで具現化され得るカスタム設計される回路として実装されてもよい。上述のデバイスのいずれも（例えばデバイス１００及び管理デバイス１８５）は、システム５００の形式をとってもよい。さらに、システム５００は汎用のデスクトップパーソナルコンピュータについて説明されているが、本明細書で説明される方法は、システム５００のコンポーネントの一部又は全てを有する他のタイプのデバイス（例えばパーソナルデジタルアシスタント（ＰＤＡ）、パーソナル音楽プレイヤ、携帯電話、ネットブック、ラップトップ又はサーバコンピュータ等）にも適用可能である。最後に、システム５００は、その上に存在する任意の所望のオペレーティングシステムを有することができる。
【００３２】
以下の例は、更なる実施形態に関する。第１の実施形態において、プロセッサにより読み取り可能な非一時的プログラムストレージデバイスは、プロセッサに、ローカルデバイスでアクションを実行する要求を受信させ、要求されたアクションがライセンスを必要とすることを判断させ、ローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求して、要求されたアクションのために有効なライセンスが存在するかどうか判断させる命令を備え、ここで、オペレーティングシステム独立ストレージは、プロセッサに関連付けられるチップセット内に存在する。
【００３３】
上記の例において、オペレーティングシステム独立ストレージは、不揮発性フラッシュストレージデバイスを含んでよい。上記の例において、プロセッサにローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求させる命令は、プロセッサにハードウェアデバイスドライバを通してデータを要求させる命令を含み得る。上記の例において、更なる命令は、プロセッサにリモートデバイスと通信してデータを取得させ得る。上記の例において、プロセッサにリモートデバイスと通信してデータを取得させる命令は、ローカルデバイスがパワーダウン状態にあるときに、プロセッサによって実行可能であってよい。上記の例において、プロセッサにローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求させる命令は、プロセッサに読み取り認証情報を提示させる命令を含み得る。上記の例において、プロセッサにローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求させる命令は、プロセッサに第三者ソフトウェアライブラリからの機能を利用させる命令を含み得る。上記の例において、プロセッサに、ローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求して、要求されたアクションのために有効なライセンスが存在するかどうか判断させる命令は、プロセッサに、データに対する操作を実行させる命令を含み得る。上記の例において、データは有効期限を含んでよく、プロセッサに、データに対する操作を実行させる命令は、プロセッサに、現在の日付が有効期限の前であるかどうかを判断させる命令を含み得る。上記の例において、更なる命令は、要求されたアクションのために有効なライセンスが存在すると判断したときにのみ、プロセッサに、要求されたアクションを実行させてよい。上記の例において、プロセッサにローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求させる命令は、プロセッサに、ソフトウェアアプリケーションに割り当てられたオペレーティングシステム独立ストレージの部分からのデータを要求させる命令を含み得る。
【００３４】
別の例において、プロセッサによって実行される方法は、ソフトウェアアプリケーションにより、ローカルデバイスにおいてアクションを実行する要求を受信する動作と、ソフトウェアアプリケーションにより、要求されたアクションがライセンスを必要とすることを判断する動作と、ソフトウェアアプリケーションにより、ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスして、要求されたアクションを実行すべきかどうかを判断する動作とを含み、ここで、オペレーティングシステム独立ストレージは、プロセッサに関連付けられるチップセット内に存在する。
【００３５】
上記の例において、オペレーティングシステム独立ストレージは、不揮発性フラッシュストレージデバイスを含み得る。上記の例においてオペレーティングシステム独立ストレージからのライセンシング情報にアクセスする動作は、ハードウェアデバイスドライバを通してライセンシング情報を要求する動作を含んでよい。上記の例において、方法は、リモートデバイスと通信してライセンシング情報を取得する動作を更に含んでよい。上記の例において、リモートデバイスと通信してライセンシング情報を取得する動作は、ローカルデバイスがパワーダウン状態にあるときに実行され得る。上記の例において、ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスする動作は、読み取り認証情報を提示する動作を含んでよい。上記の例において、ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスする動作は、ソフトウェアアプリケーションにより、第三者ソフトウェアライブラリに提供された機能を呼び出す動作を含んでよい。上記の例において、ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスして、要求されたアクションを実行すべきかどうかを判断する動作は、ライセンシング情報に対する操作を実行する動作を含んでよい。上記の例において、ライセンシング情報は有効期限を含み、ライセンシング情報に対する操作を実行する動作は、現在の日付が有効期限の前であるかどうかを判断する動作を含んでよい。上記の例において、方法は、要求されたアクションのために有効なライセンスが存在すると判断したときにのみ、要求されたアクションを実行する動作を更に含んでよい。上記の例において、ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスする動作は、ソフトウェアアプリケーションに割り当てられたオペレーティングシステム独立ストレージの部分にアクセスする動作を含んでよい。
【００３６】
別の例において、デバイスは、メモリと、当該デバイスのオペレーティングシステムとは独立の関連するチップセット内にストレージを有するプロセッサとを含む。プロセッサは、メモリ内に格納されたプログラムコードを実行して、アクションを実行する要求を受信し、要求されたアクションがライセンスを必要とすると判断し、オペレーティングシステム独立ストレージからのデータを要求して、要求されたアクションのために有効なライセンスが存在するかどうかを判断するように適合される。
【００３７】
上記の例において、オペレーティングシステム独立ストレージは、不揮発性フラッシュストレージデバイスを含んでよい。上記の例において、プロセッサにオペレーティングシステム独立ストレージからのデータを要求させるプログラムコードは、プロセッサにハードウェアデバイスドライバを通してデータを要求させるプログラムコードを含み得る。上記の例において、更なるプログラムコードは、プロセッサにリモートデバイスと通信してデータを取得させ得る。上記の例において、プロセッサにリモートデバイスと通信してデータを取得させるプログラムコードは、デバイスがパワーダウン状態にあるときに、プロセッサによって実行可能であってよい。上記の例において、プロセッサにオペレーティングシステム独立ストレージからのデータを要求させるプログラムコードは、プロセッサに読み取り認証情報を提示させるプログラムコードを含み得る。上記の例において、プロセッサにオペレーティングシステム独立ストレージからのデータを要求させるプログラムコードは、プロセッサに第三者ソフトウェアライブラリからの機能を利用させるプログラムコードを含み得る。上記の例において、プロセッサに、オペレーティングシステム独立ストレージからのデータを要求して、要求されたアクションのために有効なライセンスが存在するかどうか判断させるプログラムコードは、プロセッサに、データに対する操作を実行させるプログラムコードを含み得る。上記の例において、データは有効期限を含んでよく、プロセッサに、データに対する操作を実行させるプログラムコードは、プロセッサに、現在の日付が有効期限の前であるかどうかを判断させるプログラムコードを含み得る。上記の例において、更なるプログラムコードは、要求されたアクションのために有効なライセンスが存在すると判断したときにのみ、プロセッサに、要求されたアクションを実行させてよい。上記の例において、プロセッサにローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求させるプログラムコードは、プロセッサに、ソフトウェアアプリケーションに割り当てられたオペレーティングシステム独立ストレージの部分からのデータを要求させるプログラムコードを含み得る。
【００３８】
更に別の例において、方法は、プロセッサにより、ソフトウェアアプリケーションのライセンシング情報と、対応するユーザ情報を、データストア内に格納する動作と、プロセッサにより、ライセンシング情報を、ソフトウェアアプリケーションがインストールされているデバイスに関連付ける動作と、プロセッサにより、ライセンシング情報をデバイスのオペレーティングシステム独立ストレージに書き込む動作とを含み、オペレーティングシステム独立ストレージが、デバイスのプロセッサに関連付けられるチップセット内に存在する。
【００３９】
上記の例において、ライセンシング情報をデバイスのオペレーティングシステム独立ストレージに書き込む動作は、デバイスに対する書き込み認証情報を提示する動作を含んでよい。上記の例において、ライセンシング情報をデバイスのオペレーティングシステム独立ストレージに書き込む動作は、デバイスがパワーダウン状態にあるとき、デバイスとのネットワーク接続を介して帯域外通信を使用してライセンシング情報を書き込む動作を含んでよい。上記の例において、ライセンシング情報をデバイスのオペレーティングシステム独立ストレージに書き込む動作は、デバイスのオペレーティングシステムが非アクティブであるとき、デバイスとのネットワーク接続を介してライセンシング情報を書き込む動作を含んでよい。上記の例において、ソフトウェアアプリケーションのライセンシング情報と、対応するユーザ情報を、データストア内に格納する動作は、ライセンシング情報と、対応するユーザ情報を、ソフトウェアアプリケーションのプロバイダから受信する動作を含んでよい。
【００４０】
上記の説明は、例示であるように意図されており、限定ではないことが理解されよう。当業者が本明細書で説明される発明の概念を作成して使用することを可能にする資料が提示されており、これは、特定の実施形態のコンテキストで提供されているが、その変形も当業者には容易に明らかとなるであろう（例えば開示される実施形態の一部は、相互に組み合わせて使用されてよい）。上記の説明を再検討すると、多くの他の実施形態も当業者には明らかとなるであろう。したがって、本発明の範囲は、添付の請求項が権利を与えられる均等物の完全な範囲とともに、添付の請求項との関連で決定されるべきである。添付の請求項において、「含む」、「その中において(in  which)」は、それぞれ「備える」及び「ここで（wherein）」という用語と、単に英語的に均等なものとして使用される。
【図１】
2015531950.tif 000003
【図２】
2015531950.tif 000004
【図３】
2015531950.tif 000005
【図４】
2015531950.tif 000006
【図５】
2015531950.tif 000007
【国際調査報告】
2015531950.tif 000008
2015531950.tif 000009