(57)【要約】本明細書において開示するのは、アプリケーション・ライセンシングを容易にするシステム、方法、およびソフトウェアである。少なくとも１つの実施態様では、アプリケーションを起動するとき、またはそれ以外でアプリケーションに関与するときに、アプリケーションに対するライセンスの以前の状態を識別する。加えて、このアプリケーションに対するライセンスの現在の状態も識別する。以前の状態および現在の状態に基づいて、どのモードでアプリケーションを提示するかについて決定を行う。次いで、決定したモードでアプリケーションの提示を開始することができる。【選択図】図１
2016500176.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション・ライセンシングを容易にする方法であって、
アプリケーションの現在の使用を開始したことに応答して、前記アプリケーションに対するライセンスの現在の状態を判定するステップと、
前記アプリケーションの現在の使用を開始したことに応答して、前記アプリケーションの以前の使用中に判定された前記アプリケーションに対するライセンスの以前の状態を識別するステップと、前記ライセンスの以前の状態および前記ライセンスの現在の状態に少なくとも部分的に基づいてアプリケーション・モードを決定するステップと、
前記アプリケーションの現在の使用中に、前記アプリケーション・モードにしたがって前記アプリケーションを提示するステップと、
を含む、方法。
【請求項２】
請求項１に記載の方法であって、更に、通信デバイスと、当該通信デバイスから離れたライセンシング・サービスとの間において通信を開始して、前記ライセンスの現在の状態を含むリモート・ライセンス情報を入手し、前記ライセンスの以前の状態を含むローカル・ライセンス情報を引き出すステップを含む、方法。
【請求項３】
請求項２に記載の方法であって、更に、前記現在の状態に基づいて、前記ライセンスの以前の状態を更新された以前の状態に更新するために、前記ローカル・ライセンス情報を処理するステップを含む、方法。
【請求項４】
請求項３に記載の方法であって、更に、前記アプリケーションの開発者の識別情報に基づいてアクセス可能なデーター構造から、前記ローカル・ライセンス情報を引き出すステップを含む、方法。
【請求項５】
請求項４に記載の方法において、前記データー構造がキーチェーン・データー構造を含む、方法。
【請求項６】
請求項４に記載の方法において、前記アプリケーション・モードが、少なくとも最大モードおよび限定モードの内１つを含む、方法。
【請求項７】
請求項１に記載の方法において、前記以前の状態が、少なくとも、支払い済み、未払い、および最近失効の内１つを含み、前記現在の状態が、少なくとも、支払い済み、未払い、および最近失効の内１つを含む、方法。
【請求項８】
計算装置であって、
記憶システムと、
前記記憶システム上に格納された第１プログラム命令であって、処理システムによって実行されると、少なくとも部分的にローカル・ライセンス情報に基づいてソフトウェア・アプリケーションに対するライセンスの第１状態を判定するように、前記処理システムに指令する、第１プログラム命令と、
前記記憶システム上に格納された第２プログラム命令であって、前記処理システムによって実行されると、少なくとも部分的にリモート・ライセンス情報に基づいて、前記ソフトウェア・アプリケーションに対するライセンスの第２状態を判定するように、前記処理システムに指令する、第２プログラム命令と、
前記記憶システム上に格納された第３プログラム命令であって、前記処理システムによって実行されると、少なくとも前記ライセンスの第１状態と前記ライセンスの第２状態とに基づいて、前記ソフトウェア・アプリケーションを提示するときに従うアプリケーション・モードを決定するように、前記処理システムに指令する、第３プログラム命令と、
を含む、計算装置。
【請求項９】
請求項８に記載の計算装置において、前記ソフトウェア・アプリケーションが、前記第１プログラム命令と、前記第２プログラム命令と、前記第３プログラム命令とを含む生産性アプリケーションを含む、計算装置。
【請求項１０】
請求項８に記載の計算装置であって、更に、
前記処理システムが、前記第１プログラム命令と、前記第２プログラム命令と、前記第３プログラム命令とを実行するように構成され、
前記記憶システム上に格納され、前記アプリケーションの開発者の識別情報に基づいてアクセス可能なデーター構造を含み、前記データー構造がキーチェーン・データー構造を含む、計算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本開示の態様は、コンピューター・ハードウェアおよびソフトウェア技術に関し、特に、ソフトウェア・ライセンシング技術に関する。
【背景技術】
【０００２】
[0002]  ソフトウェア製品の不正使用および不正配信を防止するために、種々のライセンシング・モデルおよび技術が存在する。例えば、解決手段の中には、ソフトウェアを認証するための製品鍵またはトークン、ならびにアクセスを管理するためのユーザー名およびパスワードを伴うものがある。解決手段の中には、インストール中にソフトウェア製品を認証するものがある。他の解決手段には、アプリケーションが起動される毎に認証を要求するものもあり、一方更に他の解決手段には、その変形または組み合わせ、あるいは完全に異なるメカニズムを採用する場合もある。
【０００３】
[0003]  多くの状況において、内部、外部、または他の場所に格納されているライセンス情報を参照して、ソフトウェア・ライセンスの状態を判定するのが通例である。このライセンス情報は、例えば、ライセンスが現在有効である(current)こと、失効していること、未払いであること等を示すことができる。次いで、ライセンスの状態に基づいて、当のアプリケーションを提示することができ、また場合によっては全く提示できない。例えば、ライセンス失効の検出時に、アプリケーションの限定バージョンが提示されることもあり、ユーザーは、ライセンスを購入または更新するために、ウェブサイトまたはアプリケーション販売店を訪問するように促されることもある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
[0004]  所与のライセンス実施枠組みの有効性とユーザー体験の品質との均衡を取ることは、多くのソフトウェア開発者に直面する１つの課題となっている。一般に、実施枠組みが厳格である程、即ち、厳しい程、不正使用および配信に対抗して所与のソフトウェア製品に付与される予防策は強くなる。しかしながら、このようなライセンス実施は、最適ではないユーザー体験に通じる可能性もある。
【課題を解決するための手段】
【０００５】
[0005]  本明細書において提供するのは、アプリケーション・ライセンシングを容易にするシステム、方法、およびソフトウェアである。少なくとも１つの実施態様では、あるアプリケーションに対するライセンスの以前の状態を、そのアプリケーションを起動するときまたはそれ以外で関与する(engage)ときに、識別する。加えて、アプリケーションに対するライセンスの現在の状態も識別する。以前の状態および現在の状態に基づいて、アプリケーションをどのモードで提示するかに関して決定を行う。次いで、決定したモードでのアプリケーションの提示を開始することができる。
【０００６】
[0006]  この全体像は、技術的開示において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。尚、この全体像は、特許請求する主題の主要な特徴または必須の特徴を識別することを意図するのではなく、特許請求する主題の範囲を限定することを意図するのでもないことは、理解されてしかるべきである。
【図面の簡単な説明】
【０００７】
[0007]  本開示の多くの態様は、以下の図面を参照すると、一層良く理解することができる。これらの図面に関連付けて様々な実施態様を説明するが、本開示は、本明細書において開示される実施形態に限定されるのではない。逆に、全ての代替、変更、および均等を包含することを意図している。
【図１】図１は、一実施態様におけるアプリケーション環境を示す。
【図２】図２は、一実施態様におけるライセンス・プロセスを示す。
【図３】図３は、一実施形態における計算システムを示す。
【図４】図４は、一実施態様における通信デバイスを伴う動作シナリオを示す。
【図５】図５は、一実施態様における通信デバイスを更に示す。
【図６】図６は、一実施態様における動作シナリオを示す。
【図７】図７は、一実施形態における動作シナリオを示す。
【図８】図８は、一実施形態における動作シナリオを示す。
【図９】図９は、一実施態様における動作シナリオを示す。
【発明を実施するための形態】
【０００８】
[0017]  本明細書において説明する実施態様は、アプリケーション・ライセンシングの改善に備え、これによって、アプリケーションまたは一揃いのアプリケーションに対するライセンスの以前の状態、およびこのアプリケーションまたは一揃いのアプリケーションに対するライセンスの現在の状態の双方に少なくとも基づいて、アプリケーション・モードを決定する。ライセンスの以前の状態および現在の状態を考慮することによって、柔軟なアプリケーションの使用に対処しつつも、ライセンス・メカニズムを順応させる(accommodate)ことができる。
【０００９】
[0018]  例えば、ライセンスの現在の状態が失効であっても、ユーザーがこのアプリケーションを使用し続けることを許可することもできる。これは、ライセンスの以前の状態が支払い済みのとき、または他の方法で許可されているときに、行うことができる。他の例では、ライセンスの以前の状態が最近失効した場合であっても、ユーザーがこのアプリケーションを使用し続けることを許可することもできる。このような場合、このような使用は、ライセンスの現在の状態をチェックしながら、許可される。場合によっては、現在の状態が未払いと報告されている場合もあり得るが、この場合、アプリケーション全体の使用を継続することができる。しかしながら、最近のライセンスの失効をユーザーに警告し、ライセンスを購入するまたは他の方法で許可することができるようなメカニズムを提供するというような、他の措置を講ずることもできる。
【００１０】
[0019]  実施態様の中には、ライセンスの現在の状態を判定するときに、ライセンスの以前の状態を更新し、更新した以前の状態を得ることができるようにしてもよい。したがって、アプリケーションの次の起動中、ライセンスの現在の状態と共に、更新された以前の状態が検査される。
【００１１】
[0020]  図面を参照すると、図１は、ライセンスの以前の状態および現在の状態に基づいてアプリケーションの使用を許可するライセンス・プロセスを採用することができるアプリケーション環境を示す。図２は、ライセンス・プロセスを示し、一方図３は、これらのライセンス・プロセスおよびアプリケーション環境を実現することができる計算システムを示す。図４は、通信デバイスの動作を示し、それ自体は更に図５に示される。図６〜図９は、図４および図５における通信デバイスを伴う様々な動作シナリオを示す。
【００１２】
[0021]  これより図１に移ると、一実施態様におけるアプリケーション環境１００が示されている。アプリケーション環境１００は、アプリケーション１０１、ローカル・ライセンス情報１０３、リモート・ライセンス情報１０５、提示モード１０７、および提示モード１０９を含む。アプリケーション１０１は、ライセンス、条件、あるいはその使用および配信を制限する他の制約または指針を受ける任意のソフトウェア・アプリケーションまたは製品とすればよい。アプリケーション１０１の例は、生産性アプリケーション、通信アプリケーション、共同作業アプリケーション、ゲーミング・アプリケーション、企業用アプリケーション、および移動体用アプリケーション、そしてこれらの任意の組み合わせまたは変形、更にはその使用および配信について少なくとも何らかの制約を受ける他のタイプのアプリケーションを含む。
【００１３】
[0022]  ローカル・ライセンス情報１０３は、アプリケーション１０１に対するライセンスの以前の状態を識別することができる任意の情報とすればよく、一方リモート・ライセンス情報１０５は、アプリケーション１０１に対するライセンスの現在の状態を識別することができる任意の情報とすればよい。また、ローカル・ライセンス情報１０３およびリモート・ライセンス情報１０５は、相対的なレイテンシーに関しても解釈することができる。ローカル・ライセンス情報１０３は、ライセンスの以前の状態をライセンスの現在の状態と比較して識別するときに伴うレイテンシーが短くなるように格納すること、またはリモート・ライセンス情報に関係する位置に格納することができる。
【００１４】
[0023]  例えば、ローカル・ライセンス情報１０３は、アプリケーション１０１に関してローカルに格納されている任意の情報でもよく、その少なくとも一部がアプリケーション１０１に対するライセンスの以前の状態を表すデーターを含めばよい。リモート・ライセンス情報１０５は、アプリケーション１０１に関して離れて格納されている任意の情報でもよく、その少なくとも一部が、アプリケーション１０１に対するライセンスの現在の状況を現すデーターを含めばよい。単に例示の目的のために限って端的に図３を参照すると、ローカル・ライセンス情報１０３は記憶システム３０３上に格納されればよく、一方リモート・ライセンス情報１０５は、計算システム３００から離れており、通信インターフェース３０７を通じてアクセス可能な何らかの他のシステムに格納されればよい。
【００１５】
[0024]  他の例では、ローカル・ライセンス情報１０３がアプリケーション１０１から離れて格納されてもよく、一方リモート・ライセンス情報１０５もアプリケーション１０１から離れて格納されてもよい。このような例では、ライセンスの以前の状態を判定するときに伴うレイテンシーは、ライセンスの現在の状態を識別するときに伴うレイテンシーよりも、なおも少なくすることができる。これは、ローカル・ライセンス情報１０３が、リモート・ライセンス情報１０５が存在するかもしれない場所に対して相対的にアプリケーション１０１に近い場所に格納されるときというように、多数のシナリオで発生することがあり得る。
【００１６】
[0025]  提示モード１０７は、アプリケーション１０１に対するライセンスの以前の状態および現在の状態双方に依存して、ディスプレイのようなユーザー・インターフェースを介してアプリケーションを提示することができる１つのモードを表す。また、提示モード１０９は、アプリケーション１０１に対するライセンスの以前の状態および現在の状態双方に基づいて、アプリケーション１０１を提示することができる他のモードも表す。提示モード１０７の塗りつぶし様式(fill style)は、種々のアプリケーション・モードが、ライセンスに対する以前および現在の状態に可能な種々の組み合わせに基づいて可能であることを実証するために、提示モード１０９の塗りつぶし様式とは異なる。例えば、１つの状態の組み合わせが１つの特定のアプリケーション・モードに対応することができ、一方他の状態の組み合わせが他の異なるアプリケーション・モードに対応することができる。どのモードでアプリケーションを提示するかは、アプリケーションのどの特徴(feature)、サービス、ツール、および他の側面が入手可能であるかに影響を及ぼすこともある。
【００１７】
[0026]  図２は、アプリケーション・ライセンシングを容易にするための実施態様において採用することができるライセンス・プロセス２００を示す。ライセンス・プロセス２００についての以下の論述は、その動作を例示するために、アプリケーション環境１００を参照しながら進める。動作において、アプリケーション１０１を起動したことまたはこれに関与したことに応答して、アプリケーション１０１に対するライセンスの以前の状態、およびアプリケーション１０１に対するライセンスの現在の状態を識別する（ステップ２０１）。アプリケーション１０１は、種々の仕方で起動すること、またはそれ以外で関与することができる。例えば、アプリケーション１０１は、アプリケーション１０１と関与する要望を示すタッチ、クリック、またはジェスチャーのような、ユーザー入力またはコマンドに応答して起動されてもよい。他の例では、アプリケーション１０１が既に開いている即ち実行しているのでもよく、あるいは少なくとも既に起動されていてもよく、ユーザーは、アプリケーション１０１のビューにナビゲートすればよい。更に他の例では、他のアプリケーションまたはソフトウェア・コンポーネントがアプリケーション１０１をコールする、またはそれ以外でアプリケーション１０１に関与するアクションを開始するのでもよい。
【００１８】
[0027]  次いで、アプリケーション１０１を提示することができるモードを、アプリケーション１０１に対するライセンスの以前の状態およびライセンスの現在の状態に基づいて決定する（ステップ２０３）。前述のように、多数の状態の組み合わせが可能であり得る。種々の組み合わせは、種々のアプリケーション・モードに対応することができる。例えば、いくつかの組み合わせが１つのモードに対応してもよく、一方他の複数の組み合わせが他の１つのモードに対応してもよい。更に他の例では、各組み合わせが唯一のアプリケーション・モードに対応するのでもよい。尚、種々の組み合わせ、アプリケーション・モード、およびその対応が可能であり、本開示の範囲内に該当すると考えられることを注記しておく。
【００１９】
[0028]  次いで、先に決定されたモードにしたがって、アプリケーション１０１を提示することができる（ステップ２０５）。各モードは、他のモードに対して、種々の面で異なってよい。例えば、あるモードが、他のモードでは見られないまたは利用できない特徴、サービス、またはツールを含んでもよい。他の例では、１つのモードにおいて利用可能な特徴、サービス、またはツールが、他のモードにおけるそれらと同一または同様であるが、その利用可能性が、時間、使用頻度、または他の何らかの相応する制限要因に関して制限されてもよい。尚、モード間において種々の相違が可能であり、本開示の範囲に該当すると考えられることを注記しておく。
【００２０】
[0029]  ライセンス・プロセス２００は、全体的に、ライセンスの以前および現在の状態を識別し、アプリケーション・モードを判定し、このモードにしたがってアプリケーションを提示することを示すが、ライセンス・プロセス２００の変形も可能である。例えば、ライセンス・プロセス２００の１つの変形は、前述のステップの各々を実際に実行することに加えて、またはその代わりに、前述のステップの各々を開始する(initiate)ことを伴ってもよい。例えば、ライセンス・プロセス２００の１つの変形は、以前および現在の状態の識別を開始し、アプリケーション・モードの判定を開始し、このモードにしたがってアプリケーションの提示を開始することの一部または全部を含んでもよい。
【００２１】
[0030]  図３を参照すると、計算システム３００は、ライセンス・プロセス２００またはその変形を相応に実装することができるあらゆる計算装置、システム、または複数のシステムを代表することができる。任意に、計算システム３００は、アプリケーション環境１００の全部または一部を実現するのに適するのでもよい。計算システム３００の例には、セル・フォン、タブレット・コンピューター、ラップトップ・コンピューター、ノートブック・コンピューター、およびゲーミング・デバイスのような移動体計算デバイス、ならびにあらゆる他のタイプの移動体計算デバイスおよびそのあらゆる組み合わせまたは変形が含まれる。また、計算システム３００の例には、デスクトップ・コンピューター、サーバー・コンピューター、および仮想機械、ならびに、他のあらゆるタイプの計算システム、その変形、またはその組み合わせも含まれる。
【００２２】
[0031]  計算システム３００は、処理システム３０１、記憶システム３０３、ソフトウェア３０５、通信インターフェース３０７、およびユーザー・インターフェース３０９を含む。処理システム３０１は、記憶システム３０３、通信インターフェース３０７、およびユーザー・インターフェース３０９に動作可能に結合される。処理システム３０１は、ソフトウェア３０５を記憶システム３０３からロードして実行する。全体的には計算システム３００によって、具体的には処理システム３０１によって実行されると、ソフトウェア３０５は、ライセンス・プロセス２００またはその変形について本明細書において説明したように、計算システム３００に動作するように指令する。計算システム３００は、任意に、追加のデバイス、特徴、または機能も含むことができるが、簡潔にするという目的上、ここでは論じない。
【００２３】
[0032]  更に図３を参照すると、処理システム３０１は、マイクロプロセッサーと、ソフトウェア３０５を記憶システム３０３から引き出して実行する他の回路とを含むこともできる。処理システム３０１は、１つの処理デバイス内部に実装されてもよいが、プログラム命令を実行するときに協働する多数の処理デバイスまたはサブシステムに跨がって分散されてもよい。処理システム３０１の例には、汎用中央処理ユニット、特定用途プロセッサー、および論理デバイス、ならびにあらゆる他のタイプの処理デバイス、その組み合わせ、または変形が含まれる。
【００２４】
[0033]  記憶システム３０３は、処理システム３０１によって読み取り可能であり、ソフトウェア３０５を格納することができる任意のコンピューター読み取り可能記憶媒体を含むことができる。記憶システム３０３は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含むことができ、これらは、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、または他のデーターというような情報の格納のための任意の方法または技術で実現される。記憶媒体に加えて、実施態様の中には、記憶システム３０３が、ソフトウェア３０５を伝達することができる通信媒体も含むことができる場合もある。記憶システム３０３は、１つの記憶デバイスとして実装されてもよいが、同じ場所に配置された、または互いに対して分散された多数の記憶デバイスまたはサブシステムに跨がって実装されてもよい。記憶システム３０３は、処理システム３０１と通信することができる、コントローラーのような、追加のエレメントも含むことができる。
【００２５】
[0034]  記憶媒体の例には、ランダム・アクセス・メモリー、リード・オンリー・メモリー、磁気ディスク、光ディスク、フラッシュ・メモリー、仮想メモリーおよび非仮想メモリー、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、あるいは、所望の情報を格納するために使用することができ、命令実行システムによってアクセスすることができる他のあらゆる媒体、更にはこれらのあらゆる組み合わせまたは変形、あるいは他のあらゆるタイプの記憶媒体が含まれる。伝搬信号は、記憶媒体には該当しない。
【００２６】
[0035]  ソフトウェア３０５は、プログラム命令で実現することができ、機能の中でもとりわけ、全体的には計算システム３００によって、または具体的には処理システム３０１によって実行されると、計算システム３００または処理システム３０１に、ライセンスの以前および現在の状態を識別し、このライセンスの以前および現在の状態に基づいてアプリケーション・モードを決定し、決定したモードにしたがってアプリケーションを提示するように指令する。ソフトウェア３０５は、オペレーティング・システム・ソフトウェアまたは他のアプリケーション・プログラムのような、追加のプロセス、プログラム、またはコンポーネントも含むことができる。また、ソフトウェア３０５は、ファームウェア、または処理システム３０１によって実行可能な何らかの他の形態の機械読み取り可能処理命令も含むことができる。
【００２７】
[0036]  少なくとも１つの実施態様では、プログラム命令は、ローカル・ライセンス情報に少なくとも部分的に基づいてソフトウェア・アプリケーションに対するライセンスの第１状態を判定するように処理システム３０１に指令する第１プログラム命令と、リモート・ライセンス情報に少なくとも部分的に基づいてソフトウェア・アプリケーションに対するライセンスの第２状態を判定するように処理システム３０１に指令する第２プログラム命令と、ライセンスの第１状態およびライセンスの第２状態に少なくとも部分的に基づいてソフトウェア・アプリケーションを提示するときに従うアプリケーション・モードを決定するように処理システム３０１に指令する第３プログラム命令とを含むことができる。
【００２８】
[0037]  実施態様の中には、プログラム命令が、アプリケーションの現在の状態に基づいて、アプリケーションに対するライセンスの以前の状態を、更新された以前の状態に更新するように処理システム３０１に指令する第４プログラム命令を含むとよい場合もある。その後のアプリケーションの起動に応答して、第４プログラム命令は、アプリケーションに対するライセンスの更新された以前の状態およびその後の現在の状態を識別し、更新された以前の状態およびその後の現在の状態に少なくとも基づいて、その後のアプリケーション・モードを決定するように処理システム３０１に指令し、その後のアプリケーション・モードにしたがってアプリケーションの提示を開始するように処理システム３０１に指令することができる。シナリオの中には、第４プログラム命令が、前述のアプリケーション・モードにおいてソフトウェア・アプリケーションを提示するように、計算システム３００の処理システム３０１または他のエレメントに指令するとよい場合もある。
【００２９】
[0038]  一般に、ソフトウェア３０５は、処理システム３０１にロードされ実行されると、計算システム３００全体を汎用計算システムから、実施態様毎に本明細書において説明するようなアプリケーション・ライセンシングを容易にするようにカスタム化された特殊目的計算システムに変換することができる。実際、記憶システム３０３上においてソフトウェア３０５をエンコードすると、記憶システム３０３の物理構造を変換することができる。物理構造の具体的な変換は、この説明の異なる実施態様における種々の要因に依存してもよい。このような要因の例には、記憶システム３０３の記憶媒体を実現するために使用された技術、コンピューター記憶媒体が主ストレージまたは副ストレージのどちらとして特徴付けられるかを含むことができるが、これらに限定されるのではない。
【００３０】
[0039]  例えば、コンピューター記憶媒体が半導体ベースのメモリーとして実現される場合、ソフトウェア３０５は、プログラムがその中でエンコードされると、半導体メモリーの物理状態を変換することができる。例えば、ソフトウェア３０５は、半導体メモリーを構成するトランジスター、キャパシター、または他のディスクリート回路エレメントの状態を変換することができる。同様の変換は、磁気媒体または光媒体に関しても行うことができる。本説明の範囲から逸脱することなく、物理媒体の他の変換も可能であり、以上の例は、この論述を容易にするためにのみ挙げられたに過ぎない。
【００３１】
[0040]  尚、計算システム３００は、全体的に、ライセンス・プロセス２００（およびその変形）、そして任意にアプリケーション環境１００の全部または一部を実現するためにソフトウェア３０５が配備および実行される計算システムを表すことを意図していることは理解されてしかるべきである。しかしながら、計算システム３００は、ソフトウェア３０５を実現する(stage)ことができ、ソフトウェア３０５を配信、移送、ダウンロード、またはそれ以外の方法で、配備および実行、または更に追加の配信のために更に他の計算システムに提供することができるあらゆる計算システムを表すこともできる。
【００３２】
[0041]  再度図１を参照すると、ソフトウェア３０５を採用する計算システム３００の動作によって、アプリケーション環境１００に関して変換を実行することができる。一例として、アプリケーション１０１は、ライセンス・プロセス２００またはその変形に従うとき、１つの状態から他の状態に変換されると考えることができる。第１状態では、計算システム３００は、アプリケーション１０１に対するライセンスの以前および現在の状態に基づいて、アプリケーション１０１を提示モード１０７でレンダリングすることができる。以前の状態または現在の状態、あるいは双方のいずれかに関して変化が生じたときに、計算システム３００は提示モード１０９でアプリケーション１０１をレンダリングすることができる。
【００３３】
[0042]  再度図３を参照すると、通信インターフェース３０７は、通信接続と、計算システム３００と他の計算システム（図示せず）間における通信を、通信ネットワークまたはネットワークの集合体（図示せず）を通じて可能にするデバイスとを含むことができる。統合してシステム間通信を可能にする接続およびデバイスの例には、ネットワーク・インターフェース・カード、アンテナ、電力増幅器、ＲＦ回路、送受信機、および他の通信回路を含むことができる。これらの接続およびデバイスは、金属、ガラス、空気、または任意の他の適した通信媒体のように、通信媒体を通じて通信して、他の計算システムまたはシステムのネットワークと通信を交換することができる。前述の通信媒体、ネットワーク、接続、およびデバイスは、周知でありここで延々と論ずる必要はない。
【００３４】
[0043]  ユーザー・インターフェース３０９は、マウス、音声入力デバイス、ユーザーからジェスチャーを受けるタッチ入力デバイス、非接触ジェスチャーおよびユーザーによる他の動きを検出する動き入力デバイス、ならびにユーザーからユーザー入力を受けることができる他の相当する入力デバイスおよび関連する処理エレメントを含むことができる。ディスプレイ、スピーカー、触覚系デバイス、および他のタイプの出力デバイスというような出力デバイスも、ユーザー・インターフェース３０９に含むことができる。前述のユーザー入力デバイスは、当技術分野では周知であり、ここで延々と論ずる必要はない。また、ユーザー・インターフェース３０９は、先に論じた種々のユーザー入力および出力デバイスをサポートするために、処理システム３０１によって実行可能な関連ユーザー・インターフェース・ソフトウェアも含むことができる。 ユーザー・インターフェース・ソフトウェアおよびデバイスは、別々にまたは互いに組み合わせて、更に他のハードウェアおよびソフトウェア・エレメントと組み合わせて、グラフィカル・ユーザー・インターフェース、自然ユーザー・インターフェース、または他のあらゆる種類のユーザー・インターフェースを提供することができる。
【００３５】
[0044]  図４は、通信デバイス４０１によるライセンス・プロセス２００のアプリケーションを伴う一実施態様における動作シナリオ４００を示す。通信デバイス４０１は、制御エレメント４０３およびディスプレイ・システム４０５を含む。通信デバイス４０１は、図５に関して更に詳細に説明する他のコンポーネントを含む。これらのコンポーネントには、処理システム５０１、記憶システム５０３、ソフトウェア５０５、通信インターフェース５０７、およびユーザー・インターフェース５０９が含まれる。ソフトウェア５０５は、アプリケーション４３４を含み、アプリケーション４３４自体がライセンス・プロセス２００を含む。ライセンス・プロセス２００は、任意に、アプリケーション４３４とは別個に実装されてもよい。
【００３６】
[0045]  動作において、ユーザー・インターフェース５０９と併せて、処理システム５０１は、オペレーティング・システム・エレメントのような、ソフトウェア５０５の一部をロードし実行して、ディスプレイ・システム４０５による表示のために、アプリケーション・メニュー４０７をレンダリングする。オペレーティング・システムの例には、Windows（登録商標）、iOS、およびAndroid、ならびに他のあらゆる適したオペレーティング・システムが含まれる。アプリケーション・メニュー４０７は、アプリケーション・アイコン４１１〜４１９を含む。アプリケーション・アイコン４１１〜４１９は、各々、通信デバイス４０１上にインストールされているアプリケーションに対応する。アプリケーション・アイコン４１１〜４１９から１つを選択すると、対応するアプリケーションが起動される。尚、アプリケーションは、アプリケーション・ハブのような、他のビュー内部から選択されてもよいことを注記しておく。
【００３７】
[0046]  動作シナリオ４００において、アプリケーション・アイコン４１４が時点Ｔ１において選択される。例示の目的に限って、アプリケーション・アイコン４１４はアプリケーション４３４に対応すると過程する。時点Ｔ２において、通信デバイス４０１は、アプリケーション４３４に対するライセンスの以前の状態を識別する。これは、通信デバイス４０１内部に格納されている、ローカルに格納されたライセンス情報を参照することによって遂行することができる。時点Ｔ３において、通信デバイス４０１はライセンシング・サービス４２１と通信して、アプリケーション４３４に対するライセンスの現在の状態を識別する。ライセンシング・サービス４２１は、種々のソースからプロビジョニング・データーを取得する、製品鍵を取得する、無鍵許可を与える、およびユーザー対機械関係を管理するというような、多数の機能を実行することができる。
【００３８】
[0047]  ライセンスの以前および現在の状態を識別し終えると、時点Ｔ４において、アプリケーション４３４を提示することができるアプリケーション・モードを識別する。先に論じたように、以前および現在のライセンス状態には多数の組み合わせが可能であり得るので、多数のアプリケーション・モードも可能であり得る。異なるアプリケーション・モード間において可能な多様さを例示するために、２つのアプリケーション提示例を紹介する。
【００３９】
[0048]  最初に、時点Ｔ５Ａにおいて、モードＡにしたがってアプリケーション４３４を提示する。この例では、アプリケーション４３４は、４つの特徴４３５、４３６、４３７、および４３８と共に提示される。しかしながら、特徴４３７は、ディスエーブルされた状態で示されている。対照的に、時点Ｔ５Ｂにおいて、４つの特徴全てがイネーブルされた状態で示されており、特徴４３７を含む。これは、アプリケーション・モードが特徴レベルで異なってもよい一面を単に実証することを意図している。アプリケーション・モードが異なることができる他の仕方も可能であり、本開示の範囲内に該当すると考えることができる。
【００４０】
[0049] 図６〜図９は、通信デバイス４０１によるライセンス・プロセスの応用を更に説明する様々な動作シーケンスを示す。図６を参照すると、シーケンス６００において、アプリケーション４３４は、記憶システム５０３に格納されているローカル・ライセンス情報をチェックして、アプリケーション４３４に対するライセンスの以前の状態を判定する。このシーケンスでは、例示の目的のために、以前の状態が支払い済みであると仮定する。ライセンスの以前の状態が支払い済みであるので、アプリケーション４３４を最大モードで提示することができる。
【００４１】
[0050]  その間に、アプリケーション４３４はライセンシング・サービス４２１と通信して、アプリケーション４３４に対するライセンスの現在の状態を判定する。このシーケンスでは、現在の状態は最近失効したことになっている。ライセンスの現在の状態を判定したとき、アプリケーション４３４は、ライセンスの以前の状態を支払い済みから最近消失に更新する。このように、次回アプリケーション４３４が起動されるとき、以前の状態はライセンスの最近の失効を正確に反映する。
【００４２】
[0051]  図７では、シーケンス７００が提示されることによって、ライセンスの以前の状態の開始値が最近失効になる。これは、アプリケーション４３４を起動して、記憶システム５０３に格納されているライセンシング情報を調べるときに判定することができる。ライセンスは失効しているが、以前の状態が単に最近失効したに過ぎないので、アプリケーション４３４を最大モードで提示することができる。
【００４３】
[0052]  また、アプリケーション４３４はライセンシング・サービス４２１と通信して、ライセンシング・サービス４２１によって維持されているライセンスの現在の状態をチェックする。この図では、現在の状態は支払い済みになっている。アプリケーション４３４は、これにしたがって、ライセンスの以前の状態を、最近失効から支払い済みに更新する。このように、次回アプリケーション４３４が起動されるときに、以前の状態は、ライセンスがもはや最近失効したのではなく、支払い済みであることを正確に反映する。
【００４４】
[0053]  図８を参照すると、シーケンス８００は、アプリケーション４３４の起動から開始し、この時点において、記憶システム５０３に格納されているローカル・ライセンス情報がチェックされ、ライセンスの以前の状態が求められる。このシーケンスでは、例示の目的のために、以前の状態が最近失効になっていると仮定する。ライセンスは失効しているが、以前の状態は単に最近失効したに過ぎないので、アプリケーション４３４を最大モードで提示することができる。次に、ライセンシング・サービス４２１によって維持されているリモート・ライセンス情報を入手して、アプリケーション４３４に対するライセンスの現在の状態を判定する。
【００４５】
[0054]  このシーケンスでは、例示の目的のために、現在の状態が未払いであると仮定する。ライセンスの現在の状態が未払いである状況では、多数の応答が誘起される可能性がある。この図では、ライセンスが未払い状態であるという警告がユーザーに与えられる。ユーザーが、ライセンスを購入するというような、種々の措置を講ずることも可能であるとよい。いずれの場合でも、記憶システム５０３に格納されているライセンスの以前の状態は、未払いに更新されて、ライセンスがもはや最近失効状態ではないことを反映する。
【００４６】
[0055]  図９において、シーケンス９００は、アプリケーション４３４が起動されるときにも開始する。アプリケーション４３４を起動するとき、記憶システム５０３に格納されているローカル・ライセンス情報をチェックして、アプリケーション４３４に対するライセンスの以前の状態を判定する。このシーケンスでは、例示の目的のために、以前の状態が未払いであると仮定する。以前の状態が未払いなので、アプリケーション４３４は限定モードで提示される場合もある。例えば、限定モードは、最大モードにおけるそれらに対して少ない特徴、ツール、または他の側面を含むのでもよい。シナリオによっては、限定モードを無料モードまたはお試しモードと見なしてもよい。
【００４７】
[0056]  また、シーケンス９００は購入選択肢も含み、この購入選択肢は、アプリケーション４３４に最大モードでの提示の資格を与えるために実行することができる。アプリケーション４３４または他の何らかのユーティリティは、ライセンシング・サービス４２１と通信して、ライセンスを購入する、またそうでなければ更新することができる。例えば、ユーザーは、アプリケーション販売店を通じてアプリケーション４３４を即座に購入し、登録に基づく使用のためにサイン・アップすることができ、あるいは有効な登録、ボリューム・ライセンス、または他のライセンシング方式と関連付けられた識別情報(identity)を使用してサイン・インすることも潜在的に可能である。尚、購入選択肢は、アプリケーション・アクセスを許可することができる多くの異なる方法の一例に過ぎないことを注記しておく。
【００４８】
[0057]  このシナリオでは、記憶システム５０３に格納されているローカル・ライセンス情報を更新して、ライセンスの状態が現在では支払い済みであることを反映することができる。このように、次回アプリケーション４３４が起動されるとき、ライセンスの以前の状態は、アプリケーション４３４に対するライセンスが既に支払われており、アプリケーション４３４を最大モードで提示することを許可することを正確に反映する。
【００４９】
[0058]  他のシナリオでは、ライセンスの購入を試すことを可能にしなくてもよい。例えば、通信デバイス４０１がライセンシング・サービス４２１と通信することができないために、アプリケーション４３４がライセンシング・サービス４２１と通信できないこともあり得る。このようなシナリオでは、アプリケーション４３４を最大モードで提示できるように、例外を許してもよい。このように、少なくとも一時的に、限定モードでアプリケーション４３４を提示することを回避することもできる。
【００５０】
[0059]  状況によっては、アプリケーション４３４がライセンシング・サービス４２１と通信できない期間を追跡してもよい。この期間を期間判断基準と比較して、アプリケーション４３４を最大モードで提示することができるように例外を許可してもよいか否か判断することができる。例えば、この期間を閾値時間量と比較するのでもよい。期間が閾値時間量を超えない場合、アプリケーション４３４を最大モードで提示することができる。この期間が閾値時間量と一致するまたはこれを超える場合、例外を許可せず、アプリケーション４３４を限定モードで提示するように処理を進めるのでもよい。
【００５１】
[0060]  実施態様の中には、アプリケーションが、一揃いのアプリケーションにおけるいくつかのアプリケーションの内の１つである場合もある。ライセンスの以前の状態は、アプリケーションに関連する開発者のプロファイルに基づいて、アクセス可能にしてもよい。このように、ローカル・ライセンス情報には、一揃いの中にある多数のアプリケーションのいずれかに代表してアクセスすることができる。例えば、一揃いのアプリケーションに対してライセンスを取得し、このライセンスの以前の状態を示すライセンス情報を格納することができる。リモート・ライセンス情報は、オンライン・ライセンス・サービスまたは他の何らかの離れたデーター・ストアに格納することができる。リモート・ライセンス情報は、一揃いに対するライセンスの現在の状態を示すことができ、アプリケーションの開発者、ユーザーの識別情報、ライセンスの識別情報、または他のあらゆるタイプの適した識別情報というような、種々の情報に基づいてアクセス可能であるとよい。
【００５２】
[0061]  アプリケーションの一揃いから１つのアプリケーションを起動するとき、このアプリケーションに関連する開発者プロファイルに基づいて、ローカル・ライセンス情報にアクセスすることができる。したがって、この一揃いから他のアプリケーションが起動されるとき、同じローカル・ライセンス情報にアクセスすればよい。実際に、このような構成は、アプリケーションの一揃いに属するか否かには関係なく、いずれのアプリケーションについてのライセンス情報へのアクセスも、アプリケーションの開発者の識別情報またはプロファイルに基づいて管理することを可能にする。
【００５３】
[0062]  実施態様の中には、開発者プロファイルによって示されるアプリケーションの開発者の識別情報に基づいてアクセス可能なデーター構造に、ローカル・ライセンス情報を格納し、ここから引き出すとよい場合がある。ローカル・ライセンス情報を引き出すためには、アプリケーションは、データー構造にアクセスするためのユーティリティ・アプリケーションに要求を伝えればよい。ユーティリティ・アプリケーションの一例に、キーチェーン・サービス・アプリケーション(keychain service application)がある。
【００５４】
[0063]  このようなキーチェーン・サービス・アプリケーションまたはキーチェーン・ユーティリティの１つを伴う種々のシナリオでは、アプリケーションに関連する開発者プロファイルに基づいてアクセス可能なキーチェーン・データー構造にライセンスの以前の状態を格納することができるように、アプリケーションはライセンスの以前の状態をキーチェーン・ユーティリティに伝えることができる。このアプリケーションまたは同じ開発者に関連する他のアプリケーションも、キーチェーン・ユーティリティと通信して、ライセンスの以前の状態にアクセスすることができる。
【００５５】
[0064]  再度図５を参照すると、通信デバイス４０１は、アプリケーション４３４およびライセンス・プロセス２００またはその変形を相応に実現できるあらゆる計算装置、システム、または複数のシステムを現すことができる。通信デバイス４０１の例には、セル・フォン、タブレット・コンピューター、ラップトップ・コンピューター、ノートブック・コンピューター、およびゲーミング・デバイスのような移動体計算デバイス、ならびに他のあらゆるタイプの移動体計算デバイス、更にはそのあらゆる組み合わせまたは変形が含まれる。尚、通信デバイス４０１の特徴および機能は、デスクトップ・コンピューター、サーバー・コンピューター、および仮想機械、ならびにあらゆる他のタイプの計算システム、その変形または組み合わせにも同様に適用できることを注記しておく。
【００５６】
[0065]  通信デバイス４０１は、処理システム５０１、記憶システム５０３、ソフトウェア５０５、通信インターフェース５０７、およびユーザー・インターフェース５０９を含む。処理システム５０１は、動作可能に記憶システム５０３、通信インターフェース５０７、およびユーザー・インターフェース５０９に結合されている。処理システム５０１は、ソフトウェア５０５を記憶システム５０３からロードして実行する。全体的には通信デバイス４０１によって、具体的には処理システム５０１によって実行されると、ソフトウェア５０５は、ライセンス・プロセス２００またはその変形について本明細書において説明したように、通信デバイス４０１に動作するように指令する。通信デバイス４０１は、任意に、簡潔さの目的のためにここでは論じなかった追加のデバイス、特徴、または機能を含むこともできる。
【００５７】
[0066]  更に図５を参照すると、処理システム５０１は、マイクロプロセッサー、およびソフトウェア５０５を記憶システム５０３から引き出して実行する他の回路を含むことができる。処理システム５０１は、１つの処理デバイス内部に実装すればよいが、プログラム命令を実行するときに協働する多数の処理デバイスまたはサブシステムに跨がって分散されてもよい。処理システム５０１の例には、汎用中央処理ユニット、特定用途プロセッサー、および論理デバイス、ならびに他のあらゆるタイプの処理デバイス、その組み合わせ、または変形が含まれる。
【００５８】
[0067]  記憶システム５０３は、処理システム５０１によって読み取り可能でありソフトウェア５０５を格納することができるあらゆるコンピューター読み取り可能媒体または記憶媒体を含むことができる。記憶システム５０３は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含み、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、または他のデーターのような情報の格納のための任意の方法または技術で実現することができる。記憶システム５０３は、１つの記憶デバイスとして実現することもできるが、互いに対して同じ場所に配置されたまたは分散された多数の記憶デバイスまたはサブシステムに跨がって実現されてもよい。記憶システム５０３は、処理システム５０１と通信することができるコントローラーのような追加のエレメントも含むことができる。記憶媒体の例には、ランダム・アクセス・メモリー、リード・オンリー・メモリー、磁気ディスク、光ディスク、フラッシュ・メモリー、仮想メモリーおよび非仮想メモリー、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、あるいは所望の情報を格納するために使用することができ、命令実行システムによってアクセスすることができる他のあらゆる媒体、更にはそのあらゆる組み合わせまたは変形、あるいは他のあらゆるタイプの記憶媒体が含まれる。伝搬信号は、記憶媒体に該当しない。
【００５９】
[0068]  ソフトウェア５０５は、プログラム命令で実現することができ、機能の中でもとりわけ、全体的には通信デバイス４０１によって、または具体的には処理システム５０１によって実行されると、ライセンスの以前および現在の状態を識別し、このライセンスの以前および現在の状態に基づいてアプリケーション・モードを決定し、決定したモードでアプリケーションを提示するように、通信デバイス４０１または処理システム５０１に指令することができる。ソフトウェア５０５は、オペレーティング・システム・ソフトウェアまたは他のアプリケーション・ソフトウェアのような、追加のプロセス、プログラム、またはコンポーネントも含むことができる。また、ソフトウェア５０５は、ファームウェア、または処理システム５０１によって実行可能な何らかの他の形態の機械読み取り可能処理命令も含むことができる。一般に、ソフトウェア５０５は、処理システム５０１内にロードされ実行されると、通信デバイス４０１全体を汎用計算システムから、実施態様毎に本明細書において説明したように、アプリケーション・ライセンシングを容易にするようにカスタム化された特殊目的計算システムに変換することができる。
【００６０】
[0069]  通信インターフェース５０７は、通信デバイス４０１と、他の計算システム（図示せず）またはライセンシング・サービス４２１のようなサービスとの間において、通信ネットワークまたはネットワークの集合体（図示せず）を介した通信を可能にする通信接続およびデバイスを含むことができる。統合してシステム間通信を可能にする接続およびデバイスの例には、ネットワーク・インターフェース・カード、アンテナ、電力増幅器、ＲＦ回路、送受信機、および他の通信回路を含むことができる。前述のネットワーク、接続、およびデバイスは、周知であり、ここで延々と論ずる必要はない。
【００６１】
[0070]  ユーザー・インターフェース５０９は、音声入力デバイス、ユーザーからジェスチャーを受けるタッチ入力デバイス、非接触ジェスチャーおよびユーザーによる他の動きを検出する動き入力デバイス、ならびにユーザーからユーザー入力を受けることができる他の相当する入力デバイスおよび関連する処理エレメントを含むことができる。ディスプレイ・システム４０５、スピーカー、触覚系デバイス、および他のタイプの出力デバイスというような出力デバイスも、ユーザー・インターフェース５０９に含まれてもよい。前述のユーザー入力デバイスは、当技術分野では周知であり、ここで延々と論ずる必要はない。また、ユーザー・インターフェース５０９は、先に論じた種々のユーザー入力および出力デバイスをサポートするために、処理システム５０１によって実行可能な関連ユーザー・インターフェース・ソフトウェアも含むことができる。 ユーザー・インターフェース・ソフトウェアおよびデバイスは、別々にまたは互いに組み合わせて、更には他のハードウェアおよびソフトウェア・エレメントと併せて、グラフィカル・ユーザー・インターフェース、自然ユーザー・インターフェース、または他のあらゆる種類のユーザー・インターフェースを提供することができる。
【００６２】
[0071]  図に示した機能ブロック図、動作シーケンス、および流れ図は、本開示の新規な態様を実行するための例示的なアーキテクチャー、環境、および方法を表す。説明を簡素にするという目的に限って言うと、本明細書において含まれる方法は、機能図、動作シーケンス、または流れ図の形態にするとよく、一連のアクト(act)として説明するとよいが、これらの方法は、アクトの順序には限定されないことは言うまでもないことであり、認められてしかるべきである。何故なら、一部のアクトは、これらの方法によれば、本明細書において示し説明したものとは異なる順序で起こること、および／または他のアクトと同時に起こることもできるからである。例えば、１つの方法は、代わりに、状態図におけるように一連の相互関係付けられた状態またはイベントとして表すこともできることは、当業者には理解され認められよう。更に、方法において示される全てのアクトが、新規な実施態様に必要とされるのではない。
【００６３】
[0072]  ここに含まれた説明および図は、どのように最良の態様を行い使用するかについて当業者に教示するために、具体的な実施態様を描写した。発明原理を教示する目的上、従来の態様は簡略化または省略されたものもある。当業者には、本発明の範囲に該当する、これらの実施態様からの変形が認められよう。また、当業者には、以上で説明した特徴は、種々の仕方で組み合わせて多数の実施態様を形成できることが認められよう。その結果、本発明は、以上で説明した具体的な実施態様に限定されるのではなく、特許請求の範囲およびその均等物によってのみ限定されるものとする。
【図１】
2016500176.tif 000003
【図２】
2016500176.tif 000004
【図３】
2016500176.tif 000005
【図４】
2016500176.tif 000006
【図５】
2016500176.tif 000007
【図６】
2016500176.tif 000008
【図７】
2016500176.tif 000009
【図８】
2016500176.tif 000010
【図９】
2016500176.tif 000011
【国際調査報告】
2016500176.tif 000012
2016500176.tif 000013
2016500176.tif 000014