JP6073483B2 - オペレーティングシステム独立ストレージ内のライセンシング情報の格納及びアクセス - Google Patents

オペレーティングシステム独立ストレージ内のライセンシング情報の格納及びアクセス Download PDF

Info

Publication number
JP6073483B2
JP6073483B2 JP2015532190A JP2015532190A JP6073483B2 JP 6073483 B2 JP6073483 B2 JP 6073483B2 JP 2015532190 A JP2015532190 A JP 2015532190A JP 2015532190 A JP2015532190 A JP 2015532190A JP 6073483 B2 JP6073483 B2 JP 6073483B2
Authority
JP
Japan
Prior art keywords
operating system
licensing information
system independent
independent storage
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015532190A
Other languages
English (en)
Other versions
JP2015531950A (ja
Inventor
ウッド,ロジャー
リバウム,ジェンズ
Original Assignee
マカフィー, インコーポレイテッド
マカフィー, インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マカフィー, インコーポレイテッド, マカフィー, インコーポレイテッド filed Critical マカフィー, インコーポレイテッド
Publication of JP2015531950A publication Critical patent/JP2015531950A/ja
Application granted granted Critical
Publication of JP6073483B2 publication Critical patent/JP6073483B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Storage Device Security (AREA)

Description

本開示は、一般に、ソフトウェアアプリケーションの動作をガイドするライセンシング情報の格納及び利用に関する。より具体的には、これらに限られないが、本開示は、ライセンシング情報を、ソフトウェアアプリケーションがインストールされているデバイス上のセキュアな場所に格納する技術に関する。
当業者には公知であるように、ソフトウェアのライセンスシング及びアクティベーションの動作は、ソフトウェアアプリケーションの動作を管理するのに使用されるライセンス情報のセキュアなストレージに依拠する。既存のライセンスシングスキームは、ライセンスシング情報をコンピュータのオペレーティングシステムによって管理されるアドレス可能なハードディスクスペースに格納する。そのようなライセンシング情報には、ユーザが購入したソフトウェアアプリケーションのレベル(例えばプロフェッショナル、初心者等)、そのソフトウェアアプリケーションの有効期限、ソフトウェアがそのアプリケーションのプロバイダによってアクティベート/登録されていることの指示又はアプリケーションの動作をガイドする他のデータが含まれ得る。これらの既存の技術は、ソフトウェア開発者が、ユーザにより得られたライセンスに基づいて異なる機能を有効にすることを可能にする(すなわち、共通のプログラムコードの機能がライセンシング情報によってガイドされる)。
しかしながら、アドレス可能なハードディスクスペース内へのライセンシング情報の格納により、このライセンシング情報は、ライセンス付与されたソフトウェアの動作に大いに影響を与える可能性がある他のアプリケーション及び/又はユーザによる、不正なアクセス及び操作を受けることになる。ライセンシング情報を、不正アクセス又は操作からよりセキュアなローカルの記憶場所に格納することが有利であろう。
本開示は、オペレーティングシステム独立ストレージ内へのライセンシング情報の格納及び使用に関する。一般に、ライセンシング情報をオペレーティングシステム独立ストレージに書き込み、後にそのストレージにアクセスして、要求されたタスクが有効なライセンスによってサポートされているかどうかを判断するための技術を開示する。
一実施形態に係るデバイス及び管理サーバを示すブロック図である。 一実施形態に係るライセンシング情報のプロビジョニングプロセスを示すフローチャートである。 一実施形態に係るライセンシング情報の利用プロセスを示すフローチャートである。 一実施形態に係る、ユーザデバイスと、管理サーバと、ソフトウェアプロバイダとの間の情報の交換を示す通信フロー図である。 一実施形態に係る例示的な電子デバイスのブロック図である。
以下の記載では、説明の目的で、発明の概念の完全な理解を提供するために様々な具体的な詳細が説明される。この記載の一部として、本開示における図面の一部は、本発明の実施形態を曖昧にするのを避けるために、構造及びデバイスをブロック図の形で表している。明確性のために、必ずしも実際の実装の全ての特徴が本明細書内で説明されていないことがある。さらに、本開示で使用される言葉は、主として読みやすさと教示性の目的で選択されており、本発明に係る主題を線引きするか、制限するようには選択されておらず、本発明に係る主題を決定するのには必要とされる請求項を用いる。本開示において、「一実施形態」又は「実施形態」への言及は、その実施形態と関連して説明される特定の特徴、構造又は特性が、本発明の少なくとも1つの実施形態に含まれることを意味し、「一実施形態」又は「実施形態」への幾つかの言及は、必ずしも全て同じ実施形態を指すものとして理解されるべきではない。
いずれかの実際の実装の開発において(いずれかの開発計画のように)、開発者の固有の目標(例えばシステム及び企業関連の制約の順守)を達成するよう様々な決定を行わなければならず、これらの目標は、実装に応じて変化するであろうことが認識されよう。また、そのような開発努力は、複雑で時間がかかるものである可能性があるが、それにもかかわらず、本開示の利益を享受する当業者にとっては、日常的な仕事であろうことが認識されよう。
図1に移ると、デバイス100は、アプリケーションレイヤ100A、オペレーティングシステムレイヤ100B及びハードウェアレイヤ100Cを含む。アプリケーションレイヤ100Aは、アプリケーション130のようなユーザレベルのアプリケーションソフトウェアを含んでよい。アプリケーション130は、機能するためにライセンスを必要とする特定の機能(feature)を有する任意のタイプのソフトウェアアプリケーション(例えばワードプロセッシング、ファイナンシャルプランニング、スプレッドシート、アンチウィルス等)であってよい。アプリケーション130の各インストールのためのプログラムコードは、同じであってよい(例えばアプリケーション130の全ての機能を含んでよい)が、アプリケーション130の特定の機能は、これらの機能を利用するためにライセンスを取得することにより、「ロック解除」される必要がある可能性がある。当業者には公知であるように、デバイス100のオペレーティングシステムは、オペレーティングシステムレイヤ100B内に存在してよく、ハードウェアレイヤ100Cの一部を管理して、共通の機能をアプリケーションレイヤ100A内のアプリケーションに提供し得る。ハードウェアレイヤ100Cは、デバイス100を形成する物理的なコンポーネントを含んでよい。例えばハードウェアレイヤ100Cは、1つ又は複数の中央処理ユニット(CPU)を含んでよく、その各々のCPUは、1つ又は複数のコア、1つ又は複数のメモリデバイス、周辺デバイス等を有する。特に簡単な開示に関連して、ハードウェアレイヤ100Cは、管理ファームウェア140を含んでよい。管理ファームウェア140は、デバイス100の処理デバイスに関連付けられるチップセットのマイクロコントローラ内に配置されてよく、デバイス100を管理するためのハードウェアベースの機能を提供することができる。そのような機能は、例えばインテル(登録商標)アクティブマネジメントテクノロジー(AMT)を含むチップセットにより提供され得る(INTELは、インテル社の登録商標である)。
図示される実施形態において、管理ファームウェア140は、オペレーティングシステム独立ストレージ145を含む。本明細書で使用されるとき、オペレーティングシステム独立ストレージは、デバイスのオペレーティングシステムによって組み込まれていない(mount)ストレージを指す。したがって、オペレーティングシステム独立ストレージ145は、デバイス100のファイルシステムの一部ではない。一実施形態において、オペレーティングシステム独立ストレージ145は、不揮発性ストレージを含んでよい。例えばオペレーティングシステム独立ストレージは、フラッシュストレージを含んでもよい。一実施形態において、オペレーティングシステム独立ストレージ145は、デバイス100を制御するのに使用される処理デバイス内に統合されてもよい。
一実施形態において、オペレーティングシステム独立ストレージ145は、様々な部分が特定のアプリケーション用に予約されるように、割り当てられる。例えば部分145Aがアプリケーション130に割り当てられてよい。したがって、部分145Aは、アプリケーション130又はアプリケーション130により認証された他のアプリケーションのみによって使用され得る(例えばその部分145Aへの書き込み及びこの部分からの読み出しが行われ得る)。割り当てられた部分145A内に、アプリケーション130は、様々なアプリケーションの機能(例えば機能A、B、C及びD)に関するライセンシングデータを格納してもよい。一実施形態において、ライセンシングデータは、特定の機能が有効であるかどうかの簡単な指示(例えば単一のビット)、その機能の有効期限、シートライセンスについてのシートの数等を含み得る。したがって、特定の機能専用の記憶空間の量は、サイズの点で異なることがある。部分145Aを、単一のアプリケーションの特定の機能に関連付けられるライセンシングデータに関して説明したが、別の実施形態では、オペレーティングシステム独立ストレージ145の部分を、複数の追加のアプリケーションの代わりにライセンシングデータを管理するアプリケーションに割り当ててもよい。
以下で更に詳細に説明されるように、オペレーティングシステム独立ストレージ145は、管理ファームウェアインタフェース155により、デバイス100上で動作している特定のアプリケーションに対してアクセス可能であってよい。管理ファームウェアインタフェース155は、アプリケーションがオペレーティングシステム独立ストレージ145にアクセスするのを可能にするデバイスドライバとして機能し得る。したがって、アプリケーションソフトウェアは、アプリケーションにオペレーティングシステム独立ストレージ145へアクセスさせて、特定のアプリケーションの機能が現在のライセンスによってサポートされるかどうかを判断させるプログラムコードを含み得る。オペレーティングシステム独立ストレージ145はまた、通信ドライバ150により、特定のリモートデバイスに対してもアクセス可能であってよい。通信ドライバ150は、ネットワークインタフェースコントローラ135と対話して、ネットワーク180により、例えば管理サーバ185等との通信を容易にすることができる。以下で更に説明されるように、管理ファームウェア140内における通信ドライバ150の位置は、デバイス100(及びしたがって通信ドライバ105)がアクティブ状態でないときに通信を有効にすることがある。
管理サーバ185は、該サーバ上に存在するデータストア195を有することがあり、データストア195は、様々な機能及び/又はアプリケーションについてのライセンシング情報を、そのライセンスに関連付けられるユーザに関するユーザ情報に関連付ける。図示される実施形態では、データストア195は、複数のユーザ(例えばユーザE、F、G、H及びI)について、アプリケーション130の機能の有効期限のライセンシング情報を含む。データストア195に入力された日付は、指定された機能について現在のライセンスの期限が切れる日を示しており、「--」という入力は、指定された機能についてライセンスが存在していないことを示す。有効期限ライセンシング情報は、特定の機能を有効にすべきかどうかを判断するのに、アプリケーションソフトウェアによって(例えばオペレーティングシステム独立ストレージ145内の情報にアクセスすることによって)利用され得る。例えばユーザは、アプリケーション又はアプリケーション機能について、特定の期間の間(例えば1年)有効なライセンスを購入することがある。ユーザが、ライセンス付与されたアプリケーション又は機能を利用することを試みるとき、アプリケーションソフトウェアは、現在の日付を、記憶された有効期限と比較して、その機能が現在のライセンスの下で利用可能であるかどうかを判断することができる。このようにして、アプリケーションの機能は、ライセンスの期間の間有効にされ、ライセンスの有効期限の後はブロックされる。図1は、データストア195内に有効期限のライセンシング情報を示しているが、様々な追加のタイプのライセンシング情報を用いて、ソフトウェアアプリケーションの動作を制御してもよいことが理解されよう。例えばライセンシング情報は、有効にされる特徴を示し、特定のアプリケーションについての最大データ転送レートを定義し、共有リソースの最大ユーザ数を定義する等してもよい。
以下で更に詳細に説明されるように、データストア195内に含まれるライセンシング情報は、ユーザがソフトウェアライセンスを購入するかアップグレードするときに、ソフトウェアプロバイダ(又はベンダ)によって管理サーバ185に通信されてよい。特定のデバイスについてのライセンシング情報は、その後、ネットワークインタフェースコントローラ190によりネットワーク180を介して、ソフトウェアがインストールされる上記デバイスのオペレーティングシステム独立ストレージ145に書き込まれてよい。ネットワーク180は任意の形式を有してよく、これらに限られないが、ローカルエリアネットワーク(LAN)、インターネットのようなワイドエリアネットワーク(WAN)又はローカルとワイドエリアネットワークの組み合わせを含む。さらに、ネットワークは、任意の所望のテクノロジ(有線、無線又はその組み合わせ)及びプロトコル(例えば伝送制御プロトコル:TCP)を使用してよい。
一実施形態において、管理ファームウェア140は、デバイス100のオペレーティングシステム及び電力状態に関わらず、動作可能であってよい。例えば管理ファームウェア140は、デバイス100がパワーダウン状態又はスタンバイ状態にあるとき、補助電源で動作してもよい。したがって、オペレーティングシステム独立ストレージ145は、デバイス100がパワーダウンしているときであっても、あるいはデバイス100のオペレーティングシステムがアクティブでないときであっても、ネットワーク180上の帯域外通信を介して、管理サーバ185に対してアクセス可能であってよい。したがって、ライセンシング情報は、デバイス100の動作状態に関わらず、データストア195から、ローカルのオペレーティングシステム独立ストレージ145へ書き込まれることが可能である。
図2を参照すると、一実施形態に係るライセンスプロビジョニングプロセス200は、ユーザ(例えばデバイス100のユーザ)がソフトウェアを取得すると開始する(ブロック205)。公知であるように、ソフトウェアは様々な方法で取得され得る。一実施形態において、ユーザは、例えばソフトウェアプロバイダ又はソフトウェアベンダにより提供されるインターネットのウェブサーバからソフトウェアをダウンロードすること等によって、ソフトウェアを電気的に取得することができる。別の実施形態では、ソフトウェアの物理的コピー(例えばCD−ROM、DVD、ユニバーサルシリアルバス(USB)メモリデバイス等のような有形の媒体上に具現化されるコピー)が、ユーザによって取得され得る。
ユーザによって取得されるソフトウェアは、特定のソフトウェアの機能を「ロック解除」する特定のライセンスに関連付けられてよい。例えばソフトウェアの「プロフェッショナル」バージョンを購入するユーザは、同じソフトウェアの「ビギナー」バージョンに関連付けられるライセンスよりも多くの機能を有効にするライセンスを受け取ることができる。したがって、ユーザがソフトウェアを取得するとき、ソフトウェアプロバイダは、ユーザを識別する情報を、取得したソフトウェアのバージョン又は機能に対応するライセンシング情報に関連付けてよい。一実施形態において、ユーザが、ソフトウェアプロバイダのウェブサイトからソフトウェアの電子コピーを購入する場合、ソフトウェアプロバイダは、購入プロセスを通して必要な情報を取得することができる。例えば購入プロセス中に、ユーザを識別する情報(例えば名前、クレジットカード情報等)が、ソフトウェアプロバイダ(又はソフトウェアベンダ)によって直接取得されてよく、この情報は、購入したソフトウェアに対応するライセンシング情報と関連付けられてよい。(ソフトウェアの物理的コピーがソフトウェアプロバイダ以外のエンティティから取得されるときのような)別の実施形態において、インストールがあると、ソフトウェアは登録プロセスを開始し、この登録プロセスに従って、ユーザ情報と、取得したソフトウェアに対応するライセンシング情報が、直接又は第三者を通して(例えばソフトウェアプロバイダのウェブサイトへの接続を通して)ソフトウェアプロバイダに提供される。ユーザが新しいソフトウェアを取得することに関して、ライセンスプロビジョニングプロセス200をしばらく説明してきたが、同じプロセスが、既存のソフトウェアのライセンスを新しくするかアップグレードするユーザにも当てはまることに留意されたい。すなわち、ユーザが既存のソフトウェアについて新しいライセンスを取得するとき、そのユーザを識別する情報が、上述のように新たなライセンスに関連付けられてよく、プロセス200は以下に説明されるように続いてよい。
関連付けられたユーザ情報と、取得したソフトウェアに対応するライセンシング情報が、管理サーバに提供され得る(ブロック210)。一実施形態において、ユーザ情報及びライセンシング情報は、ソフトウェアプロバイダによって提供され得る。例えばソフトウェアプロバイダは、上述のようにユーザ情報及びライセンシング情報を取得し、その後、ライセンシング情報を管理サーバに通信し得る。一実施形態において、管理サーバは、ソフトウェアプロバイダによって制御され得る。そのような実施形態では、ソフトウェアプロバイダ自身が、管理サーバからのライセンシング情報のプロビジョンを管理し、そして、プログラムコードを、取得したソフトウェア内に組み込んでもよい。このプログラムコードにより、ソフトウェアは、ライセンシング情報をローカルのオペレーティングシステム独立ストレージから取り出すことになる。
別の実施形態において、管理サーバは、第三者によって操作され得る。そのような実施形態では、第三者は、管理サーバからのライセンシング情報のプロビジョンを管理して、ソフトウェアライブラリを提供してよく、このソフトウェアライブラリは、ソフトウェアプロバイダがローカルのオペレーティングシステム独立ストレージ内に格納されたライセンシング情報を利用するのを可能にする。したがって、ソフトウェアプロバイダは、ライセンシング情報が、第三者のインタフェースを使用してローカルのオペレーティングシステム独立ストレージから取り出されるように、単に現在のユーザ/ライセンシング情報を第三者に提供し、取得したソフトウェアで第三者に提供されるライブラリを実装すればよい。
更に別の実施形態では、管理サーバは、ソフトウェアの購入者によって操作されてもよい。例えば大量のソフトウェアアプリケーションライセンスの購入者(例えば法人ユーザ)は、その自身の管理サーバをローカルエリアネットワーク上で管理することがある。この管理サーバは、更新されたユーザ情報/ライセンシング情報を(例えばソフトウェアプロバイダから)取得し、ソフトウェアのユーザのために、このライセンシング情報をローカルのオペレーティングシステム独立ストレージにプッシュする。
ユーザ情報及びライセンシング情報が管理サーバに提供された後、管理サーバは、ライセンシング情報を、取得したソフトウェアがインストールされているデバイスに関連付けることができる(ブロック215)。一実施形態において、取得したソフトウェアがインストールされているデバイスは、管理サーバによって管理されるユーザ情報/ライセンシング情報から直接的に識別可能であってよい。例えば上述した法人の場合、ユーザ情報には、管理サーバと同じローカルエリアネットワーク上のデバイスの静的なインターネットプロトコル(IP)アドレスが含まれることがある。したがって、デバイスは、管理サーバ上に格納された情報に基づいて識別可能であり得る。別の実施形態では、取得したソフトウェアがインストールされているデバイスは、管理サーバに提供されるユーザ情報/ライセンシング情報に基づくだけでは識別可能でないことがある。例えば個人ユーザが、取得したソフトウェアを、管理サーバとインターネット接続を介して通信する動的なIPアドレスを有するデバイス上にインストールしていることがある。そのような実施形態では、デバイスは、ライセンシング情報を該デバイスに関連付けるのを可能にするため、管理サーバとの通信を(例えば管理サーバへのインターネット接続を介して)開始する必要がある。例えば取得したソフトウェアは、デバイスに、周期的に管理サーバへ接触させて識別情報(例えばユーザ名又はアカウントアクセスの認証情報)を提示させる。これは、管理サーバが、デバイスをユーザ情報と、従って関連するライセンシング情報とマッチングするのを可能にする。デバイスに管理サーバへ接触させるプログラムコードが、上述の管理ファームウェア内に格納されてよいことに留意されたい。したがって、デバイスは、該デバイスの動作状態(例えばパワーダウン状態や非アクティブなオペレーティングシステム)に関わらず、管理サーバに接触することができる。
管理サーバが、ライセンシング情報を特定のデバイスに関連付けた後、管理サーバは、ライセンシング情報を、そのデバイス上のローカルのオペレーティングシステム独立ストレージに書き込むことができる(ブロック220)。一実施形態において、オペレーティングシステム独立ストレージへの書き込みアクセスは、書き込み認証情報(write credentials)を必要とすることがある。そのような実施形態では、書き込み認証情報のコピーを、オペレーティングシステム独立ストレージ内に格納してもよく、書き込みアクセスは、合致する認証情報を提示するエンティティに対してのみ許可され得る。例えば自身の管理サーバを制御するソフトウェアプロバイダは、第三者証明書プロバイダから書き込み証明書(write certificate)を取得して、その書き込み証明書のコピーをプロバイダが供給するソフトウェア内に含めることができる。書き込み証明書のコピーは、管理サーバによるオペレーティングシステム独立ストレージへの書き込みの試行の際に、管理サーバにより提示される書き込み証明書との比較のために、オペレーティングシステム独立ストレージ内に格納されてよい。そのような実施形態において、ソフトウェアに提供される書き込み証明書のコピーは、暗号化されたフォーマットで提供され得る。同様に、ソフトウェアプロバイダが、第三者のサービスを用いてライセンシング情報をプロビジョニングする場合、第三者の書き込み証明書のコピーが、ソフトウェアのコピーとともに提供され得る。
一実施形態において、書き込み認証情報は、単一のリモートデバイスに対して有効であってよい。そのような実施形態において、管理サーバは、オペレーティングシステム独立ストレージ内に格納された書き込み認証情報に合致する有効な書き込み認証情報を提供する必要があるだけでなく、該管理サーバが、提示された書き込み認証情報に基づいてデータを書き込むことが許可されたエンティティとして認証されることを可能にする、自己識別情報も提供する必要がある可能性がある。図1に関連して上述したように、管理ファームウェア140内の通信ドライバ150は、管理サーバ185との通信を可能にする。管理ファームウェア140は、管理サーバによって提示された認証情報を検証し、有効性が検証されると、その管理サーバは、デバイス100の状態に関わらず、現在のライセンシング情報をローカルのオペレーティングシステム独立ストレージ145に書き込むことができる。
図3を参照すると、一実施形態に係るライセンス利用プロセス300は、ユーザが、オペレーティングシステム独立ストレージ内に格納されたライセンシング情報によってガイドされる機能を組み込んだソフトウェアを利用すると、開始する(ブロック305)。ユーザがソフトウェアの特定の機能を使用することを試みると、その要求された機能がライセンスを必要とするかどうかが判断され得る(ブロック310)。例えば特定のソフトウェアの機能(例えばデータ転送、データベースに同時にアクセスするユーザの数等)は、ライセンシング情報によって制御され得るが、他の機能はライセンスなしで利用可能であってよい。この判断はソフトウェアアプリケーション自体の中で行われてよいことが理解されよう。すなわち、特定の機能がライセンスを必要とする場合、このソフトウェアは、その機能が有効にされる前にライセンシング情報を取り出すプログラムコードを含み得る。要求された機能がライセンスを必要とすると判断された場合(ブロック310の「はい」に進む場合)、ソフトウェアは、適用可能なライセンシング情報について、ローカルのオペレーティングシステム独立ストレージをクエリする(ブロック315)。図1を参照すると、オペレーティングシステム独立ストレージへのアクセスは、ファームウェアインタフェース155を介して得られる。一実施形態において、ファームウェアインタフェース155は、アプリケーションレイヤ100Aで動作するアプリケーションとオペレーティングシステム独立ストレージ145の間をインタフェースするハードウェアデバイスドライバとして機能してよい。上記のように、オペレーティングシステム独立ストレージ145は、特定のアプリケーション(又は特定のプロセス)に割り当てられる部分のみがアクセス可能となるように、割り当てられてよい。一実施形態において、アプリケーションは、オペレーティングシステム独立ストレージ内のライセンシング情報にアクセスするために、読み取り認証情報(read credentials)を提示することがある。上述の書き込み認証情報と同様に、アプリケーションによって提示される読み取り認証情報を、オペレーティングシステム独立ストレージ内に格納された認証情報(例えばオペレーティングシステム独立ストレージの割り当ての一部として作成された認証情報)と比較して、そのアプリケーションが、オペレーティングシステム独立ストレージからデータを読み取ることを許可されていることを検証することがある。一実施形態において、読み取りアクセスは、特定のプロセスに縛られることもある。すなわち、プロセッサ上で実行される1つのプロセスのみが、オペレーティングシステム独立ストレージの割り当てられた部分からデータを取り出すことが可能であることがある。本開示の一実施形態によると、オペレーティングシステム独立ストレージは、オペレーティングシステム独立ストレージによって提供されるセキュリティ機能に基づいて、未許可のアクセス又は操作の影響を受けにくいライセンシング情報のローカルストレージを提供することができる。さらに、オペレーティングシステム独立ストレージは、アプリケーションが実行しているオペレーティングシステムのタイプに依存しないので、オペレーティングシステム独立ストレージ内のライセンシング情報へのアクセスは、オペレーティングシステムに関わらず一様であってよい。
上記のように、一実施形態では、ライセンシングデータをオペレーティングシステム独立ストレージに書き込む管理サーバは、オペレーティングシステム独立のライセンシング情報の機能をソフトウェアで実装するよう望むソフトウェアプロバイダによって制御されてよく、該ソフトウェアプロバイダが、そのソフトウェアを提供する。そのような実施形態において、ソフトウェアプロバイダは、管理サーバが制御する書き込み認証情報を取得し、そのソフトウェアがオペレーティングシステム独立ストレージに書き込まれたライセンシング情報を読み取るのを可能にする読み取り認証情報を取得することができる。ソフトウェアプロバイダは、(例えばファームウェアインタフェース145とインタフェースすることにより)オペレーティングシステム独立ストレージにアクセスするためのプログラムコードをソフトウェアで実装してもよい。
別の実施形態では、簡単に上記で説明したように、そのソフトウェアでオペレーティングシステム独立ストレージに格納されたライセンシング情報を利用することを望んでいるソフトウェアプロバイダは、第三者を介してこの機能を実装することを選んでもよい。例えばその自身の管理サーバを保持し、自身の読み取り及び書き込み認証情報を保持し、そのソフトウェアがオペレーティングシステム独立ストレージへアクセスするのを可能にするプログラムコードを実装するのではなく、ソフトウェアプロバイダは、これらのタスクを第三者プロバイダに委任してよい。そのような実施形態では、第三者プロバイダは、恐らくは複数のソフトウェアベンダからの複数のソフトウェアアプリケーションの代わりに、ライセンシング情報をプロビジョニングするよう、単一の管理サーバを動作させる。この機能とともに、第三者は、ソフトウェアアプリケーションが、ライブラリを用いてオペレーティングシステム独立ストレージからのライセンシング情報にアクセスするのを可能にする、ソフトウェアライブラリを提供してもよい。例えば第三者によって提供されるソフトウェアライブラリは、呼び出しアプリケーションの代わりに、(恐らくは第三者自身の読み取り認証情報を使用して)第三者アプリケーションにライセンシング情報をオペレーティングシステム独立ストレージから取り出させる機能を含んでもよい。したがって、ソフトウェアプロバイダは、ライセンシング情報を第三者に提供し、第三者ライブラリを用いてライセンシング情報にアクセスすることにより、プロビジョニング及び取り出し動作に直接参加することなく、改善されたライセンシング情報のセキュリティの利益を得ることができる。
ライセンシング情報をオペレーティングシステム独立ストレージから取り出した後、要求されたソフトウェア機能が、ライセンスによってサポートされるかどうかを判断することができる(ブロック320)。要求された機能がサポートされているかどうかの判断は、オペレーティングシステム独立ストレージから取得された情報を利用する動作を実行することを含んでよい。すなわち、取り出した情報は、ソフトウェアの挙動をガイドするよう、ソフトウェア内にプログラムされた機能によって操作されるデータを含み得る。例えば取り出した情報が有効期限である場合、ソフトウェア内のプログラムコードは、要求された機能のライセンスの有効期限が切れているかどうかを判断するために、現在の日付を、取り出した日付と比較することができる。同様に、取り出した情報が、グループシートライセンスのために購入されたシートの数に関する情報である場合、ソフトウェアの現在のユーザの数が、取り出した情報内に示されるシートの数より少ないかどうかが判断される。取り出したライセンシング情報に基づいてソフトウェアアプリケーションを制御する追加の手段は、当業者により認識されるであろう。ソフトウェアのユーザによって要求された機能が、ライセンシング情報によってサポートされるか、あるいはその機能がライセンスを必要としないと判断される場合(ブロック320の「はい」に進むか、ブロック310の「いいえ」に進む場合)、ソフトウェアは、要求された機能へのアクセスを許可してよい(ブロック325)。しかしながら、要求された機能がライセンスを必要とし、取り出されたライセンシング情報によってサポートされていない場合(ブロック320の「いいえ」に進む場合)、ソフトウェアは、その機能へのアクセスをブロックする(ブロック330)。要求された機能がブロックされる場合、ソフトウェアはユーザに、要求された機能がライセンスを必要とすること、そして必要とされたライセンスが取得されていないか有効期限が切れていること、あるいは他の形で欠如していることを通知することができる。ソフトウェアは、機能が有効にされるように、ユーザが必要とされたライセンスを取得できるようにする。
図4を参照すると、通信フロー図が、ライセンスプロビジョニングプロセス200の一実施形態に係る情報の流れを示している。ユーザデバイス100は、ソフトウェアプロバイダ400からソフトウェアを取得する。デバイス100がソフトウェアを取得することに関連して、デバイス100のユーザを識別する情報であって、ユーザ情報を、取得したソフトウェアに関連付けられるライセンシング情報とリンクさせる情報(例えばバージョン情報)が、ソフトウェアプロバイダ400に提供され得る(405)。図2に関連して上述したように、ユーザ情報及びライセンシング情報は、ソフトウェアの購入の一部として、ソフトウェアの登録の一部等としてソフトウェアプロバイダ400に提供され得る。ユーザ情報及びライセンシング情報は、デバイス100からソフトウェアプロバイダ400に通信ネットワーク(例えばソフトウェアプロバイダのウェブサーバとの接続)を介して通信され得る。ユーザは、ライセンシング情報を将来更新できるようにする情報をソフトウェアプロバイダ400に提供してもよい。例えばユーザは、ソフトウェアの有効なライセンスを維持するために、クレジットカード情報を提供し、ソフトウェアプロバイダがクレジットカードの請求を行うことができるよう、クレジットカードの請求が繰り返されることを許容することができる。ユーザが必要な識別情報を提供したことに応答して、ソフトウェアプロバイダ400は、取得したソフトウェアがライセンス付与されていることを示す応答を、ユーザデバイス100に提供する(410)。ほぼ同時に、ソフトウェアプロバイダ400は、関連するユーザ情報及びライセンシング情報を管理サーバ185に提供してよい(415)。上述のように、管理デバイス185は、ソフトウェアプロバイダ400、取得したソフトウェアのユーザ又は第三者によって制御され得る。一実施形態において、管理デバイス185は、ウェブサーバであってよく、ソフトウェアプロバイダ400からの情報を、インターネット接続を介して受け取ることができる。別の実施形態において、管理デバイス185は、デバイス100と同じローカルエリアネットワーク上のデータサーバであってよい。リンクされたユーザ情報とライセンシング情報が管理デバイス185上のデータストア内に格納され得る(420)。
デバイス100はその後、(例えばインターネット接続を介して)管理デバイス185に接触し、該デバイス100は、ソフトウェアがインストールされたデバイスとして認識されることが可能になる(425)。通信425は、ソフトウェアプロバイダ400に提供される(そして、管理デバイス185に通信される)ユーザ情報を含むか、あるいは提供されるユーザ情報にデバイス100を関連付けることができる何らかの識別情報を含み得る。例えばユーザ名とパスワード、クレジットカード情報又は他の識別情報が管理デバイス185に提供されることがあり、その結果、管理デバイス185は、デバイス100を、以前に格納されたユーザ情報、したがってリンクされたライセンシング情報に関連付けることができる。一実施形態において、デバイス100は、デバイスを識別する情報(例えばハードウェア識別子)を提供することもできる。そのような実施形態では、管理デバイス185は、デバイス識別子を含むように、ライセンシングレコードを含むデータストアを更新することができる。したがって、管理デバイス185は、デバイスの観点並びにユーザの観点から、ライセンシング情報を管理することができる。例えばユーザが第1のデバイス上にソフトウェアをインストールし、ライセンシングデータが第1のデバイス上のオペレーティングシステム独立ストレージに書き込まれる場合、ユーザが第2のデバイス上にソフトウェアをインストールすれば、管理デバイス185は、ライセンシング情報を再使用して第2のデバイスに書き込むか、あるいは第2のデバイスへ情報を書き込む前にライセンシング情報を第1のデバイスから取り除いてよい。
デバイス100がライセンシング情報に関連付けられると、ライセンシング情報は、ソフトウェアによる後の使用のために、管理デバイス185からデバイス100上のオペレーティングシステム独立ストレージへ書き込まれる(430)。上述のように、管理デバイス185からのライセンシング情報のプロビジョンは、デバイス100の動作状態に関わらず起こり得る。したがって、本開示によるローカルのオペレーティングシステム独立ストレージ内のライセンシング情報の格納は、ライセンシング情報のセキュアな格納を提供し、デバイスの状態に関わらずライセンシング情報を更新することを可能にする。
図5に移ると、代表的デバイス500(例えば汎用のデスクトップコンピュータシステム)は、プロセッサ505、メモリ510、ストレージ515、グラフィクスハードウェア520、通信インタフェース525、ユーザインタフェースアダプタ530及びディスプレイアダプタ535を含み、これらは全て、システムバス又はバックプレーン540を使用して結合され得る。メモリ510は、プロセッサ505及びグラフィクスハードウェア520によって使用される1つ又は複数の異なるタイプの媒体(典型的には半導体)を含んでよい。例えばメモリ510は、メモリキャッシュ、読み取り専用メモリ(ROM)及び/又はランダムアクセスメモリ(RAM)を含み得る。ストレージ515は、媒体(例えばオーディオ、画像及びビデオファイル)、コンピュータプログラム命令若しくはソフトウェア、プリファレンス情報、デバイスプロファイル情報及び任意の他の適切なデータを格納することができる。ストレージ515は、1つ又は複数の非一時的記憶媒体を含んでよく、このような媒体は、例えば磁気ディスク(固定、フロッピー(登録商標)及び取外し可能)及びテープ、CD−ROM及びデジタルビデオディスク(DVD)のような光媒体、電子的プログラマブル読み取り専用メモリ(EPROM)及び電子的消去可能プログラマブル読み取り専用メモリ(EEPROM)を含む。メモリ510及びストレージ515は、1つ又は複数のモジュールに編成され、かつ任意の所望のコンピュータプログラミング言語で書かれるコンピュータプログラム命令又はコードを明白に保持するのに使用され得る。プロセッサ505及び/又はグラフィクスプロセッサ520によって実行されると、そのようなコンピュータプログラムコードは、本明細書で説明される方法の1つ又は複数を実施してよい。通信インタフェース525は、システム500をネットワークに接続するのに使用され得る。例示のネットワークには、限定ではないが、USBネットワークのようなローカルネットワーク;企業のローカルエリアネットワーク;又はインターネットのようなワイドエリアネットワークが含まれる。ユーザインタフェースアダプタ530は、キーボード545、マイクロフォン550、ポインタデバイス555、スピーカ560並びにタッチパッド及び/又はタッチスクリーン(図示せず)のような他のユーザインタフェースデバイスを接続するのに使用され得る。ディスプレイアダプタ535がディスプレイ565を接続するのに使用され得る。
プロセッサ505は、任意のプログラム可能な制御デバイスを含んでよく、限定ではないがこれには、Intel Core(登録商標)、Intel Atom(登録商標)、Pentium(登録商標)及びCeleron(登録商標)プロセッサのファミリのうちの1又は複数のメンバが含まれる(Intel Core、Intel Atom、Pentium及びCeleronは、インテル社の登録商標である)。プロセッサ505は、特定用途向け集積回路(ASIC)やフィールドプログラマブルゲートアレイ(FPGA)のようなハードウェアデバイスで具現化され得るカスタム設計される回路として実装されてもよい。上述のデバイスのいずれも(例えばデバイス100及び管理デバイス185)は、システム500の形式をとってもよい。さらに、システム500は汎用のデスクトップパーソナルコンピュータについて説明されているが、本明細書で説明される方法は、システム500のコンポーネントの一部又は全てを有する他のタイプのデバイス(例えばパーソナルデジタルアシスタント(PDA)、パーソナル音楽プレイヤ、携帯電話、ネットブック、ラップトップ又はサーバコンピュータ等)にも適用可能である。最後に、システム500は、その上に存在する任意の所望のオペレーティングシステムを有することができる。
以下の例は、更なる実施形態に関する。第1の実施形態において、プロセッサにより読み取り可能な非一時的プログラムストレージデバイスは、プロセッサに、ローカルデバイスでアクションを実行する要求を受信させ、要求されたアクションがライセンスを必要とすることを判断させ、ローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求して、要求されたアクションのために有効なライセンスが存在するかどうか判断させる命令を備え、ここで、オペレーティングシステム独立ストレージは、プロセッサに関連付けられるチップセット内に存在する。
上記の例において、オペレーティングシステム独立ストレージは、不揮発性フラッシュストレージデバイスを含んでよい。上記の例において、プロセッサにローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求させる命令は、プロセッサにハードウェアデバイスドライバを通してデータを要求させる命令を含み得る。上記の例において、更なる命令は、プロセッサにリモートデバイスと通信してデータを取得させ得る。上記の例において、プロセッサにリモートデバイスと通信してデータを取得させる命令は、ローカルデバイスがパワーダウン状態にあるときに、プロセッサによって実行可能であってよい。上記の例において、プロセッサにローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求させる命令は、プロセッサに読み取り認証情報を提示させる命令を含み得る。上記の例において、プロセッサにローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求させる命令は、プロセッサに第三者ソフトウェアライブラリからの機能を利用させる命令を含み得る。上記の例において、プロセッサに、ローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求して、要求されたアクションのために有効なライセンスが存在するかどうか判断させる命令は、プロセッサに、データに対する操作を実行させる命令を含み得る。上記の例において、データは有効期限を含んでよく、プロセッサに、データに対する操作を実行させる命令は、プロセッサに、現在の日付が有効期限の前であるかどうかを判断させる命令を含み得る。上記の例において、更なる命令は、要求されたアクションのために有効なライセンスが存在すると判断したときにのみ、プロセッサに、要求されたアクションを実行させてよい。上記の例において、プロセッサにローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求させる命令は、プロセッサに、ソフトウェアアプリケーションに割り当てられたオペレーティングシステム独立ストレージの部分からのデータを要求させる命令を含み得る。
別の例において、プロセッサによって実行される方法は、ソフトウェアアプリケーションにより、ローカルデバイスにおいてアクションを実行する要求を受信する動作と、ソフトウェアアプリケーションにより、要求されたアクションがライセンスを必要とすることを判断する動作と、ソフトウェアアプリケーションにより、ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスして、要求されたアクションを実行すべきかどうかを判断する動作とを含み、ここで、オペレーティングシステム独立ストレージは、プロセッサに関連付けられるチップセット内に存在する。
上記の例において、オペレーティングシステム独立ストレージは、不揮発性フラッシュストレージデバイスを含み得る。上記の例においてオペレーティングシステム独立ストレージからのライセンシング情報にアクセスする動作は、ハードウェアデバイスドライバを通してライセンシング情報を要求する動作を含んでよい。上記の例において、方法は、リモートデバイスと通信してライセンシング情報を取得する動作を更に含んでよい。上記の例において、リモートデバイスと通信してライセンシング情報を取得する動作は、ローカルデバイスがパワーダウン状態にあるときに実行され得る。上記の例において、ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスする動作は、読み取り認証情報を提示する動作を含んでよい。上記の例において、ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスする動作は、ソフトウェアアプリケーションにより、第三者ソフトウェアライブラリに提供された機能を呼び出す動作を含んでよい。上記の例において、ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスして、要求されたアクションを実行すべきかどうかを判断する動作は、ライセンシング情報に対する操作を実行する動作を含んでよい。上記の例において、ライセンシング情報は有効期限を含み、ライセンシング情報に対する操作を実行する動作は、現在の日付が有効期限の前であるかどうかを判断する動作を含んでよい。上記の例において、方法は、要求されたアクションのために有効なライセンスが存在すると判断したときにのみ、要求されたアクションを実行する動作を更に含んでよい。上記の例において、ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスする動作は、ソフトウェアアプリケーションに割り当てられたオペレーティングシステム独立ストレージの部分にアクセスする動作を含んでよい。
別の例において、デバイスは、メモリと、当該デバイスのオペレーティングシステムとは独立の関連するチップセット内にストレージを有するプロセッサとを含む。プロセッサは、メモリ内に格納されたプログラムコードを実行して、アクションを実行する要求を受信し、要求されたアクションがライセンスを必要とすると判断し、オペレーティングシステム独立ストレージからのデータを要求して、要求されたアクションのために有効なライセンスが存在するかどうかを判断するように適合される。
上記の例において、オペレーティングシステム独立ストレージは、不揮発性フラッシュストレージデバイスを含んでよい。上記の例において、プロセッサにオペレーティングシステム独立ストレージからのデータを要求させるプログラムコードは、プロセッサにハードウェアデバイスドライバを通してデータを要求させるプログラムコードを含み得る。上記の例において、更なるプログラムコードは、プロセッサにリモートデバイスと通信してデータを取得させ得る。上記の例において、プロセッサにリモートデバイスと通信してデータを取得させるプログラムコードは、デバイスがパワーダウン状態にあるときに、プロセッサによって実行可能であってよい。上記の例において、プロセッサにオペレーティングシステム独立ストレージからのデータを要求させるプログラムコードは、プロセッサに読み取り認証情報を提示させるプログラムコードを含み得る。上記の例において、プロセッサにオペレーティングシステム独立ストレージからのデータを要求させるプログラムコードは、プロセッサに第三者ソフトウェアライブラリからの機能を利用させるプログラムコードを含み得る。上記の例において、プロセッサに、オペレーティングシステム独立ストレージからのデータを要求して、要求されたアクションのために有効なライセンスが存在するかどうか判断させるプログラムコードは、プロセッサに、データに対する操作を実行させるプログラムコードを含み得る。上記の例において、データは有効期限を含んでよく、プロセッサに、データに対する操作を実行させるプログラムコードは、プロセッサに、現在の日付が有効期限の前であるかどうかを判断させるプログラムコードを含み得る。上記の例において、更なるプログラムコードは、要求されたアクションのために有効なライセンスが存在すると判断したときにのみ、プロセッサに、要求されたアクションを実行させてよい。上記の例において、プロセッサにローカルデバイス上のオペレーティングシステム独立ストレージからのデータを要求させるプログラムコードは、プロセッサに、ソフトウェアアプリケーションに割り当てられたオペレーティングシステム独立ストレージの部分からのデータを要求させるプログラムコードを含み得る。
更に別の例において、方法は、プロセッサにより、ソフトウェアアプリケーションのライセンシング情報と、対応するユーザ情報を、データストア内に格納する動作と、プロセッサにより、ライセンシング情報を、ソフトウェアアプリケーションがインストールされているデバイスに関連付ける動作と、プロセッサにより、ライセンシング情報をデバイスのオペレーティングシステム独立ストレージに書き込む動作とを含み、オペレーティングシステム独立ストレージが、デバイスのプロセッサに関連付けられるチップセット内に存在する。
上記の例において、ライセンシング情報をデバイスのオペレーティングシステム独立ストレージに書き込む動作は、デバイスに対する書き込み認証情報を提示する動作を含んでよい。上記の例において、ライセンシング情報をデバイスのオペレーティングシステム独立ストレージに書き込む動作は、デバイスがパワーダウン状態にあるとき、デバイスとのネットワーク接続を介して帯域外通信を使用してライセンシング情報を書き込む動作を含んでよい。上記の例において、ライセンシング情報をデバイスのオペレーティングシステム独立ストレージに書き込む動作は、デバイスのオペレーティングシステムが非アクティブであるとき、デバイスとのネットワーク接続を介してライセンシング情報を書き込む動作を含んでよい。上記の例において、ソフトウェアアプリケーションのライセンシング情報と、対応するユーザ情報を、データストア内に格納する動作は、ライセンシング情報と、対応するユーザ情報を、ソフトウェアアプリケーションのプロバイダから受信する動作を含んでよい。
上記の説明は、例示であるように意図されており、限定ではないことが理解されよう。当業者が本明細書で説明される発明の概念を作成して使用することを可能にする資料が提示されており、これは、特定の実施形態のコンテキストで提供されているが、その変形も当業者には容易に明らかとなるであろう(例えば開示される実施形態の一部は、相互に組み合わせて使用されてよい)。上記の説明を再検討すると、多くの他の実施形態も当業者には明らかとなるであろう。したがって、本発明の範囲は、添付の請求項が権利を与えられる均等物の完全な範囲とともに、添付の請求項との関連で決定されるべきである。添付の請求項において、「含む」、「その中において(in which)」は、それぞれ「備える」及び「ここで(wherein)」という用語と、単に英語的に均等なものとして使用される。

Claims (25)

  1. プロセッサによって実行されると、該プロセッサに、
    ローカルデバイスでソフトウェアアプリケーションの特定の機能を実行する要求を受信するステップと
    前記要求された機能がライセンスを必要とすることを判断するステップと
    前記ローカルデバイス上のオペレーティングシステム独立ストレージにライセンシング情報を要求し、前記要求された機能のために有効なライセンスが存在するかどうかを判断するステップであって、前記オペレーティングシステム独立ストレージに読み取り認証情報を提示すること又は第三者ソフトウェアライブラリに提供された機能を呼び出すことにより、前記オペレーティングシステム独立ストレージから、前記要求された機能を実行するためのライセンシング情報を取得することを含む、ステップと、
    を備える動作を実行させ
    前記オペレーティングシステム独立ストレージは、前記プロセッサに関連付けられるチップセット内に存在する、コンピュータプログラム
  2. 前記オペレーティングシステム独立ストレージは、不揮発性フラッシュストレージデバイスを備える、
    請求項1に記載のコンピュータプログラム
  3. 記ローカルデバイス上のオペレーティングシステム独立ストレージにライセンシング情報を要求することは、ハードウェアデバイスドライバを通して前記ライセンシング情報を要求することを備える、
    請求項1に記載のコンピュータプログラム
  4. 前記動作は、リモートデバイスと通信して前記ライセンシング情報を取得するステップを更に備える、
    請求項1に記載のコンピュータプログラム
  5. 前記リモートデバイスと通信して前記ライセンシング情報を取得するステップは、前記ローカルデバイスがパワーダウン状態にあるときに、前記プロセッサによって実行可能である、
    請求項4に記載のコンピュータプログラム
  6. 記要求された機能のために有効なライセンスが存在するかどうか判断するステップは前記ライセンシング情報に基づいて、前記要求された機能がライセンスによってサポートされているかどうかを判断することを含む、
    請求項1に記載のコンピュータプログラム
  7. 前記ライセンシング情報は、有効期限を含み、
    要求された機能がライセンスによってサポートされているかどうかを判断することは現在の日付が前記有効期限の前であるかどうかを判断することを備える、
    請求項に記載のコンピュータプログラム
  8. 前記動作は、前記要求された機能のために前記有効なライセンスが存在すると判断したときにのみ、前記要求された機能を実行するステップを更に備える、
    請求項1に記載のコンピュータプログラム
  9. 記ローカルデバイス上のオペレーティングシステム独立ストレージにライセンシング情報を要求することは、前記オペレーティングシステム独立ストレージのうち、前記ソフトウェアアプリケーションに割り当てられた部分からのライセンシング情報を要求することを備える、
    請求項1に記載のコンピュータプログラム
  10. 請求項1乃至9のいずれかに記載のコンピュータプログラムを記録する非一時的プログラムストレージデバイス。
  11. プロセッサによって実行される方法であって、
    ソフトウェアアプリケーションにより、ローカルデバイスにおいて前記ソフトウェアアプリケーションの特定の機能を実行する要求を受信する動作と、
    前記ソフトウェアアプリケーションにより、前記要求された機能がライセンスを必要とすることを判断する動作と、
    前記ソフトウェアアプリケーションにより、前記ローカルデバイス上のオペレーティングシステム独立ストレージのライセンシング情報にアクセスして、前記要求された機能を実行すべきかどうかを判断する動作と、
    を備え、
    前記要求された機能を実行すべきかどうかを判断する動作は、前記オペレーティングシステム独立ストレージに読み取り認証情報を提示すること又は第三者ソフトウェアライブラリに提供された機能を呼び出すことにより、前記オペレーティングシステム独立ストレージから、前記要求された機能を実行するためのライセンシング情報を取得することを含み、
    前記オペレーティングシステム独立ストレージは、前記プロセッサに関連付けられるチップセット内に存在する、方法。
  12. 前記オペレーティングシステム独立ストレージは、不揮発性フラッシュストレージデバイスを備える、
    請求項11に記載の方法。
  13. 前記ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスする動作は、ハードウェアデバイスドライバを通して前記ライセンシング情報を要求する動作を含む、
    請求項11に記載の方法。
  14. リモートデバイスと通信して前記ライセンシング情報を取得する動作を更に備える、
    請求項11に記載の方法。
  15. リモートデバイスと通信して前記ライセンシング情報を取得する動作は、前記ローカルデバイスがパワーダウン状態にあるときに実行される、
    請求項14に記載の方法。
  16. 前記ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスして、前記要求された機能を実行すべきかどうかを判断する動作は、前記ライセンシング情報に基づいて、前記要求された機能がライセンスによってサポートされているかどうかを判断する動作を含む、
    請求項11に記載の方法。
  17. 前記ライセンシング情報は、有効期限を含み、
    前記要求された機能がライセンスによってサポートされているかどうかを判断する動作は、現在の日付が前記有効期限の前であるかどうかを判断する動作を含む、
    請求項16に記載の方法。
  18. 前記要求された機能のために有効なライセンスが存在すると判断したときにのみ、前記要求された機能を実行する動作を更に備える、
    請求項11に記載の方法。
  19. 前記ローカルデバイス上のオペレーティングシステム独立ストレージからのライセンシング情報にアクセスする動作は、前記オペレーティングシステム独立ストレージのうち、前記ソフトウェアアプリケーションに割り当てられた部分にアクセスする動作を備える、
    請求項11に記載の方法。
  20. デバイスであって、
    メモリと、
    当該デバイスのオペレーティングシステムとは独立の関連するチップセット内にストレージを有するプロセッサと
    を備え、
    前記プロセッサは、前記メモリ内に格納されたプログラムコードを実行して、
    ソフトウェアアプリケーションの特定の機能を実行する要求を受信し、
    前記要求された機能がライセンスを必要とすると判断し、
    オペレーティングシステム独立ストレージにライセンシング情報を要求して、前記要求された機能のために有効なライセンスが存在するかどうかを判断する
    ように適合される、デバイスであって、
    前記オペレーティングシステム独立ストレージにライセンシング情報を要求して前記要求された機能のために有効なライセンスが存在するかどうかを判断することは、前記オペレーティングシステム独立ストレージに読み取り認証情報を提示すること又は第三者ソフトウェアライブラリに提供された機能を呼び出すことにより、前記オペレーティングシステム独立ストレージから、前記要求された機能を実行するためのライセンシング情報を取得することを含む、デバイス
  21. 記要求された機能のために有効なライセンスが存在するかどうかを判断するプログラムコードは、前記ライセンシング情報に基づいて、前記要求された機能がライセンスによってサポートされているかどうかを判断するプログラムコードを備える、
    請求項20に記載のデバイス。
  22. プロセッサにより、ソフトウェアアプリケーションの機能についてのライセンシング情報と、対応するユーザ情報を、データストア内に格納する動作と、
    前記プロセッサにより、前記ライセンシング情報を、前記ソフトウェアアプリケーションがインストールされているデバイスに関連付ける動作と、
    前記プロセッサにより、前記ライセンシング情報を前記デバイスのオペレーティングシステム独立ストレージに書き込む動作と、
    を含み、
    前記オペレーティングシステム独立ストレージが、前記デバイスのプロセッサに関連付けられるチップセット内に存在し、
    前記ライセンシング情報を前記オペレーティングシステム独立ストレージに書き込む動作は、前記デバイスに対する書き込み認証情報を提示して、書き込みが許容されるときに実行される、方法。
  23. 前記ライセンシング情報をデバイスのオペレーティングシステム独立ストレージに書き込む動作は、前記デバイスがパワーダウン状態にあるとき、前記デバイスとのネットワーク接続を介して帯域外通信を使用して前記ライセンシング情報を書き込む動作を備える、
    請求項22に記載の方法。
  24. 前記ライセンシング情報をデバイスのオペレーティングシステム独立ストレージに書き込む動作は、前記デバイスのオペレーティングシステムが非アクティブであるとき、前記デバイスとのネットワーク接続を介して前記ライセンシング情報を書き込む動作を備える、
    請求項22に記載の方法。
  25. 前記ソフトウェアアプリケーションのライセンシング情報と前記対応するユーザ情報を、データストア内に格納する動作は、前記ライセンシング情報と前記対応するユーザ情報を、前記ソフトウェアアプリケーションのプロバイダから受信する動作を備える、
    請求項22に記載の方法。
JP2015532190A 2012-10-18 2013-10-17 オペレーティングシステム独立ストレージ内のライセンシング情報の格納及びアクセス Active JP6073483B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/654,568 2012-10-18
US13/654,568 US20140115672A1 (en) 2012-10-18 2012-10-18 Storing and Accessing Licensing Information in Operating System-Independent Storage
PCT/US2013/065539 WO2014062979A1 (en) 2012-10-18 2013-10-17 Storing and accessing licensing information in operating system-independent storage

Publications (2)

Publication Number Publication Date
JP2015531950A JP2015531950A (ja) 2015-11-05
JP6073483B2 true JP6073483B2 (ja) 2017-02-01

Family

ID=50486619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015532190A Active JP6073483B2 (ja) 2012-10-18 2013-10-17 オペレーティングシステム独立ストレージ内のライセンシング情報の格納及びアクセス

Country Status (5)

Country Link
US (1) US20140115672A1 (ja)
EP (1) EP2909774B1 (ja)
JP (1) JP6073483B2 (ja)
CN (1) CN104641376A (ja)
WO (1) WO2014062979A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047161B1 (en) * 2013-01-16 2015-06-02 Sprint Communications Company L.P. Discovery, consolidation, and archival of multiple operating system software licenses
US9176974B1 (en) 2013-01-18 2015-11-03 Sprint Communications Company L.P. Low priority, multi-pass, server file discovery and management
TW201619880A (zh) * 2014-11-26 2016-06-01 hong-jian Zhou 利用卡裝置的網路認證方法
US9858412B2 (en) * 2015-06-25 2018-01-02 Intel Corporation Secure trusted execution environment data store
US10133856B2 (en) * 2016-11-07 2018-11-20 Honeywell International Inc. Method and system for managing software license for vehicle
US10365931B2 (en) * 2017-02-27 2019-07-30 Microsoft Technology Licensing, Llc Remote administration of initial computer operating system setup options
KR102405752B1 (ko) * 2017-08-23 2022-06-08 삼성전자주식회사 어플리케이션 프로그램의 권한을 제어하는 방법 및 전자 장치
US10795974B2 (en) * 2018-05-31 2020-10-06 Microsoft Technology Licensing, Llc Memory assignment for guest operating systems
CN112513839A (zh) 2018-08-02 2021-03-16 日本电气方案创新株式会社 许可证管理设备、发布设备和方法、程序执行设备和方法以及计算机可读介质
CN112491604B (zh) * 2019-01-18 2023-09-26 创新先进技术有限公司 物联网设备的远程管理实现方法、装置及系统
CN110516413A (zh) * 2019-07-26 2019-11-29 苏州浪潮智能科技有限公司 一种许可证存储的方法、系统、设备及可读存储介质
JP7090140B2 (ja) * 2020-11-26 2022-06-23 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、及びbios管理方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020116340A1 (en) * 2000-10-25 2002-08-22 Isogon Corp. Method and system for retrieving data from the XSLM license manager
JP3921057B2 (ja) * 2001-05-11 2007-05-30 株式会社エヌ・ティ・ティ・ドコモ アクセス方法および通信端末
JP2004326278A (ja) * 2003-04-23 2004-11-18 Renesas Technology Corp 不揮発性記憶装置及びデータ処理装置
US20050289072A1 (en) * 2004-06-29 2005-12-29 Vinay Sabharwal System for automatic, secure and large scale software license management over any computer network
US7565685B2 (en) * 2005-11-12 2009-07-21 Intel Corporation Operating system independent data management
US7930728B2 (en) 2006-01-06 2011-04-19 Intel Corporation Mechanism to support rights management in a pre-operating system environment
US20070219919A1 (en) * 2006-03-16 2007-09-20 Dandekar Shree A Process of accessing licensed digital content on MediaDirect enabled systems in a multiple operating system environment
JP2007265193A (ja) * 2006-03-29 2007-10-11 Fujitsu Ltd ジョブ割当プログラム、ジョブ割当装置およびジョブ割当方法
US8726014B2 (en) * 2006-10-23 2014-05-13 Ca, Inc. System and method for securely updating license files in an automated licensing system
US7613915B2 (en) * 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
JP4891054B2 (ja) * 2006-12-21 2012-03-07 キヤノン株式会社 ライセンスを利用する画像処理装置、その制御方法およびプログラム
US8782385B2 (en) * 2007-04-16 2014-07-15 Dell Products, Lp System and method of enabling use of software applications using stored software licensing information
US8452967B2 (en) * 2007-08-31 2013-05-28 Microsoft Corporation Using flash storage device to prevent unauthorized use of software
US8468356B2 (en) * 2008-06-30 2013-06-18 Intel Corporation Software copy protection via protected execution of applications
GB2465769A (en) * 2008-11-27 2010-06-02 Symbian Software Ltd Method and apparatus relating to licenses necessary for the operation of a software application on a mobile terminal
JP5241520B2 (ja) * 2009-01-05 2013-07-17 キヤノン株式会社 ワークフロー管理装置、タスク連携処理システム、ワークフロー管理方法、及びプログラム
US8332631B2 (en) * 2010-11-22 2012-12-11 Intel Corporation Secure software licensing and provisioning using hardware based security engine

Also Published As

Publication number Publication date
US20140115672A1 (en) 2014-04-24
WO2014062979A1 (en) 2014-04-24
CN104641376A (zh) 2015-05-20
EP2909774A1 (en) 2015-08-26
EP2909774A4 (en) 2016-06-22
EP2909774B1 (en) 2019-07-10
JP2015531950A (ja) 2015-11-05

Similar Documents

Publication Publication Date Title
JP6073483B2 (ja) オペレーティングシステム独立ストレージ内のライセンシング情報の格納及びアクセス
JP6147731B2 (ja) デバイス機能へのアプリケーションの結び付け
JP6151256B2 (ja) コンピューティングデバイス、作動方法及びコンピュータプログラム
US9633183B2 (en) Modular software protection
JP5030626B2 (ja) ソフトウェア・アプリケーション配布のための範囲を制限された許可
JP4007873B2 (ja) データ保護プログラムおよびデータ保護方法
EP1946238B1 (en) Operating system independent data management
JP5963957B2 (ja) 開発環境システム、開発環境装置、開発環境提供方法及びプログラム
JP5402498B2 (ja) 情報記憶装置、情報記憶プログラム、そのプログラムを記録した記録媒体及び情報記憶方法
US20110321130A1 (en) Network layer claims based access control
US8949401B2 (en) Automated digital migration
CA2758288A1 (en) Enhanced product functionality based on user identification
US20110196793A1 (en) Generic feature licensing framework
JP2004118327A (ja) コンテンツ使用制御装置及びコンテンツ使用制御方法、並びにコンピュータ・プログラム
US8544083B2 (en) Identification security elevation
US20110154455A1 (en) Security management framework
JP6390696B2 (ja) ライセンス情報管理装置、ライセンス情報管理方法、および、プログラム
JP5584548B2 (ja) プログラムおよびライセンス管理用の記憶媒体、サーバおよびコンピュータシステム
JP2004046756A (ja) ライセンス管理方法、ライセンス管理システム、ライセンス管理プログラム
JP2013511090A (ja) 初回アクセス時のコンテンツ結合
US9355224B1 (en) System and method for dynamic adjustment of expiration date for authorization key for antivirus products
JP2008262579A (ja) コンテンツ情報送信システム
JP6304427B2 (ja) 情報処理システム及び操作端末
US20140108593A1 (en) System and Method for Migration of Digital Assets
JP2007087275A (ja) ライセンス管理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160628

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170104

R150 Certificate of patent or registration of utility model

Ref document number: 6073483

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250