JP2016110346A - ライセンス管理システム、クライアント装置、ライセンス管理方法 - Google Patents
ライセンス管理システム、クライアント装置、ライセンス管理方法 Download PDFInfo
- Publication number
- JP2016110346A JP2016110346A JP2014246349A JP2014246349A JP2016110346A JP 2016110346 A JP2016110346 A JP 2016110346A JP 2014246349 A JP2014246349 A JP 2014246349A JP 2014246349 A JP2014246349 A JP 2014246349A JP 2016110346 A JP2016110346 A JP 2016110346A
- Authority
- JP
- Japan
- Prior art keywords
- license
- application
- unit
- acquired
- request
- 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.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims 5
- 238000000034 method Methods 0.000 claims description 246
- 238000012545 processing Methods 0.000 claims description 122
- 230000008569 process Effects 0.000 claims description 103
- 230000004044 response Effects 0.000 claims description 13
- 230000006870 function Effects 0.000 description 76
- 238000010586 diagram Methods 0.000 description 22
- 238000001994 activation Methods 0.000 description 19
- 230000004913 activation Effects 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
- G06Q2220/10—Usage protection of distributed data files
- G06Q2220/18—Licensing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
Abstract
【課題】ノードロック方式およびフローティング方式の両方に対応するアプリケーションで、ライセンスの取得タイミングを適切に管理する。【解決手段】アプリケーションの起動時に、ライセンス方式がノードロック(NL)方式であるかフローティング(FL)方式であるかを判定する。そして、NL方式であると判定した場合は、NL方式のライセンスを取得したか否か更に判定する。NL方式のライセンスを取得した場合は、ライセンスを必要とする機能を使用可とした状態のユーザインタフェースを表示するように初期化する一方、NL方式のライセンスを取得しなかった場合は、ライセンスを必要とする機能を使用不可とした状態のユーザインタフェースを表示するように初期化する。また、ライセンス方式がFL方式であると判定した場合は、ライセンスを必要とする機能を使用可とした状態のユーザインタフェースを表示するように初期化する。【選択図】 図5
Description
本発明は、アプリケーションのライセンス管理に関する。
有償アプリケーションをクライアントに使用許諾する方法として、ノードロック方式及びフローティング方式がある。ノードロック方式は、クライアントがメインライセンスサーバーからライセンスを直接取得する方式で、ライセンスはアプリケーションのインストールされている当該クライアントマシンに固定される。一方、フローティング方式は、予め一定数のライセンス(同時利用可能な数のライセンス)をプールしているローカルライセンスサーバがクライアントにライセンスを一時的に貸し出すことにより、クライアントが一時的にアプリケーションを使用可能にする方式である。フローティング方式で管理されるフローティングライセンスは、各クライアントで該当するアプリケーションの使用が終わればローカルライセンスサーバに返却される。そのため、他のクライアントが当該返却されたライセンスを取得することにより、同じアプリケーションを別のクライアント上で使用することができる。このようなフローティングライセンスを用いて、各クライアントがアプリケーションを使用する時間帯をずらせば、プールしているライセンス数以上の複数のクライアント上で当該アプリケーションを利用することが可能となる。フローティング方式は、アプリケーション起動時にライセンス認証や取得を行い、終了時にライセンスを返却する使い方が一般的である。また、アプリケーションの使用許諾方法として、このノードロック方式、フローティング方式の両方に対応することが可能なアプリケーションも存在し、このようなアプリケーションでは、ユーザーの用途に応じてどちらかの方式を選択して利用することが可能である。
また、特許文献1では、クライアントアプリケーションの起動要求があると、クライアント側の使用権管理部がライセンスサーバーと通信する。ライセンスサーバーは該当ソフトウェアの使用者数がライセンス数に満たなければ使用を許可し、使用権管理部は使用が許可されたらアプリケーションを実行する。
特許文献1のようなフローティング方式のライセンス管理では、アプリケーションの起動から終了までの間、ライセンスを占有する。一方、アプリケーションには、クライアントの電源がONの間、常に起動し、要求に応じて処理を実行する常駐型のアプリケーションがある。このような常駐型のアプリケーションに対して、アプリケーションの起動時にフローティングライセンスを取得する特許文献1のような方式を適用すると、常駐状態でもライセンスが消費されてしまう。その結果、常駐アプリケーションの機能を実際に使用中か否かに関わらず、アプリケーションを常駐状態で起動しているユーザーが多くなると、ライセンスが枯渇し、その他のユーザーがアプリケーションを利用できなくなってしまう。そこで、本発明では、フローティング方式のライセンス管理を行う場合、アプリケーションの機能を使用する際にライセンスを取得することを目的とする。
また、アプリケーションによっては、ライセンスを取得している場合は当該アプリケーションが備える複数の機能の全てを利用可能とする一方、ライセンスを取得していない場合は複数の機能のうちの一部を制限するアプリケーションがある。このようなアプリケーションでは、ライセンスが無い場合に該一部の機能を使用できないことを表示するために、操作メニュー等のUI(ユーザインタフェース)を表示する際にその一部を無効化して表示する(例えば使用できない機能をグレーアウトして表示する)。このようなアプリケーションにノードロック方式のライセンス管理を適用する場合、アプリケーション起動時にライセンスを確認し、ライセンス無効の場合に使用できない機能のUIをグレーアウト表示すれば、ユーザーはメニューを表示させた際に使用できない機能を認識できる。一方、このような起動時にライセンスを確認してUI表示を変更するアプリケーションに対してフローティング方式のライセンス管理を適用しようとすると、アプリケーション起動時にフローティングライセンスを取得可能かどうか確認する必要が生じ、上述したように常駐アプリケーションには適さない。また、操作メニュー等のUIを表示する時点でフローティングライセンスを取得可能かどうか確認して使用できない機能のUIを無効化するような構成にすると、操作メニュー等を表示させるたびに、ライセンスの確認処理が発生してしまいUIの表示レスポンスが悪くなってしまう。
上記課題を解決するために、本発明のクライアント装置は、アプリケーションの起動時に、当該アプリケーションのライセンス方式がノードロック方式であるかフローティング方式であるかを判定する第1判定手段と、前記第1判定手段で前記アプリケーションのライセンス方式がノードロック方式であると判定した場合、ノードロック方式のライセンスを取得したか否か判定する第2判定手段と、前記第2判定手段でノードロック方式のライセンスを取得したと判定した場合もしくは前記第1判定手段でフローティング方式であると判定した場合は、ライセンスを必要とする機能を使用可とした状態のユーザインタフェースを表示するように初期化し、前記第2判定手段でノードロック方式のライセンスを取得しなかったと判定した場合は、前記ライセンスを必要とする機能を使用不可とした状態のユーザインタフェースを表示するように初期化する初期化手段と、を有することを特徴とする。
このノードロック方式およびフローティング方式の両方に対応するアプリケーションにおいて、ライセンスの取得タイミングを適切に管理することで、ユーザーの利便性を向上する。
<<第1実施形態>>
[システム構成]
図1は、本発明の第1実施形態におけるライセンス管理システムの構成を示す図である。本実施形態は、ライセンスサーバーと複数のクライアント装置とが、ネットワークを介して通信可能なシステムである。
[システム構成]
図1は、本発明の第1実施形態におけるライセンス管理システムの構成を示す図である。本実施形態は、ライセンスサーバーと複数のクライアント装置とが、ネットワークを介して通信可能なシステムである。
クライアント装置(クライアント110及び111)には、ノードロックおよびフローティングの両方のライセンス方式に対応するアプリケーションがインストールされている。このアプリケーションは、ライセンスを用いて使用許諾を受けることによって、機能の一部または全体にかかっている使用制限が解除され、利用可能となる。ノードロック方式でライセンスを取得する場合、アプリケーションは、メインライセンスサーバー(不図示)に対してライセンスの取得要求を行う。一方、フローティング方式でライセンスを取得する場合、アプリケーションは、ライセンスサーバー120に対してライセンスの取得要求を行う。
ライセンスサーバー120は、クライアント110(及び111)内で動作するアプリケーションに、フローティング方式のライセンスの貸し出しを行うライセンスサーバー(すなわち、複数のライセンスをプールしているローカルのライセンスサーバー)である。貸出可能なライセンスは、予めメインライセンスサーバー(不図示)等から取得しているものとする。
フローティング方式とは、ライセンスの使用権を一時的に要求するクライアントに貸し出すものである。各クライアントでは予めアプリケーションをインストールしておき、利用する際にライセンスをライセンスサーバー120から借りることで、当該アプリケーションを利用することができる。利用が完了したら、借りていたライセンスを返却することで、他のクライアントユーザも、同じライセンスで同じアプリケーションの利用が可能となることから、ライセンス数以上のクライアントで当該アプリケーションの共有利用が可能となっている。なお、ライセンスを貸与する際、ライセンスファイルを受け渡ししてもよいし、単に使用権だけを与えてどのクライアントが使用権を持っているかを管理してもよい。
LAN100は、クライアント110(111)とライセンスサーバー120を通信可能とするLAN(Local Area Network)であるが、WAN(Wide Area Network)であっても構わない。
[ハードウェア構成]
図2は、図1に示したクライアント110(及び111)、及びライセンスサーバー120のハードウェア構成を示す図である。図2において、キーボードやポインティングデバイスなどのユーザー操作入力を受信する入力デバイス205が設けられている。さらに、ユーザーに視覚的な出力情報フィードバックを与える表示部202を備える。さらに、本実施形態における各種プログラムや各種データを記憶する記憶デバイス(RAM 203,ROM 204,HDD(ハードディスクドライブ)などの外部メモリ206)が設けられる。さらに、外部機器との通信を行うインターフェースデバイスI/O207を備え、プログラム実行を行うCPU201を備える。クライアント及びライセンスサーバーのCPU201は、ROM204または外部メモリ206に保存されたプログラムをRAM203に読み出し、当該読み出したそれぞれのプログラムを実行することにより、後述する図3のクライアントおよび図4のライセンスサーバーそれぞれの各処理部として機能する。なお、クライアント110とライセンスサーバー120及びメインライセンスサーバー(不図示)は、インターフェースデバイスI/O207を介して互いに通信を行う。
図2は、図1に示したクライアント110(及び111)、及びライセンスサーバー120のハードウェア構成を示す図である。図2において、キーボードやポインティングデバイスなどのユーザー操作入力を受信する入力デバイス205が設けられている。さらに、ユーザーに視覚的な出力情報フィードバックを与える表示部202を備える。さらに、本実施形態における各種プログラムや各種データを記憶する記憶デバイス(RAM 203,ROM 204,HDD(ハードディスクドライブ)などの外部メモリ206)が設けられる。さらに、外部機器との通信を行うインターフェースデバイスI/O207を備え、プログラム実行を行うCPU201を備える。クライアント及びライセンスサーバーのCPU201は、ROM204または外部メモリ206に保存されたプログラムをRAM203に読み出し、当該読み出したそれぞれのプログラムを実行することにより、後述する図3のクライアントおよび図4のライセンスサーバーそれぞれの各処理部として機能する。なお、クライアント110とライセンスサーバー120及びメインライセンスサーバー(不図示)は、インターフェースデバイスI/O207を介して互いに通信を行う。
[ソフトウェア構成]
図3は、クライアント110上で実行されるアプリケーション300のソフトウェア構成の一例を示す図である。アプリケーション300は、クライアント110にインストールされている。
図3は、クライアント110上で実行されるアプリケーション300のソフトウェア構成の一例を示す図である。アプリケーション300は、クライアント110にインストールされている。
入力部301は、ユーザーからの操作を受け付け、入力された要求を管理部302に伝える。
入力部301でユーザーからアプリケーションの起動要求を受けた場合、管理部302はライセンス方式判定部304に対し、アプリケーションのライセンス方式の判定を指示する。ライセンス方式判定部304は、アプリケーションのライセンス方式をアプリケーションのライセンス設定情報(不図示)を参照することで判定する。ライセンス設定情報(不図示)は、クライアント110内の外部メモリ206に設定情報として予め保存される構成であっても、メインライセンスサーバー(不図示)に問い合わせて得る構成であっても良い。ライセンス方式判定部304は、判定結果のライセンス方式を管理部302へ返却する。管理部302は、判定結果のライセンス方式をライセンス取得部305へ渡し、ライセンスの取得処理の実行を指示する。
ライセンス取得部305は、受け付けたライセンス方式に応じて、ライセンスの取得処理を実行する。受け付けたライセンス方式がノードロック方式の場合、ライセンス認証を実行し、その結果を管理部305に返却する。ここでのライセンス認証は、ノードロックライセンスの認証が未認証の場合に、メインライセンスサーバー(不図示)に対してライセンスの取得要求を行うことで実行される。なお、既にノードロックライセンスが認証済みで当該クライアント内にノードロックライセンスの取得情報が保存されている場合は、認証済みの結果を管理部305に返却する。一方、受け付けたライセンス方式がフローティング方式の場合、この時点(アプリケーション起動時)では、ライセンス取得部305は、ライセンス取得処理を実行せずに、ライセンスを有効として結果を管理部302に返却する。フローティングライセンスを有効とすることで、アプリケーションの各機能を使用可の状態でUI(ユーザインタフェース)の表示等を行い、その後、ユーザーにより操作指示が為されて実際に処理を実行する時点でライセンスの取得処理を行うように制御する。
管理部302はライセンス取得部305からライセンス取得結果を受け付けると、その結果に応じて、アプリケーションの初期化を行う。具体的には、ライセンスの取得結果が有効であった場合、アプリケーションの全機能を使用可とした状態のUI(ユーザインタフェース)を表示するようにUIを初期化する。一方、ライセンスの取得結果が無効であった場合、無償で提供する機能を使用可とし、且つ有償で提供する機能の使用を不可とした状態のUI(すなわち一部の機能を使用不可としたユーザインタフェース)を表示するようにUIを初期化する。
また、入力部301でユーザーからアプリケーションに対する処理の実行要求を受けた場合、起動時と同様にして、管理部302はライセンス方式判定部304に対し、アプリケーションのライセンス方式の判定を指示し、ライセンス方式の判定結果を受け付ける。管理部302は、判定結果のライセンス方式をライセンス取得部305へ渡し、ライセンスの取得処理の実行を命ずる。
ライセンス取得部305は、受け付けたライセンス方式に応じて、ライセンス取得処理を実行する。受け付けたライセンス方式がノードロック方式の場合、アプリケーション起動時に実行した認証結果を返却する。一方、受け付けたライセンス方式がフローティング方式の場合、ライセンス取得部305は、ライセンスサーバー120に対してライセンスの取得を要求し、その取得結果を管理部302に返却する。
なお、ライセンス取得要求に対するライセンスサーバー120からのレスポンスは、ライセンスファイルそのものであってもよいし、使用権限であってもよい。使用権限の場合は、ライセンスサーバー120では、どのクライアントに使用権限を貸与したかを管理する。このような、ライセンスの取得や貸与、使用権限のみのステータスの変更に関わらず、クライアント110がライセンスサーバー120からライセンス(使用権)を獲得することを、本実施例ではライセンスのチェックアウトと呼ぶ。また、返却にはライセンスファイルの送信や使用権限ステータスの返却処理など異なる方法があり得るが、その方法に関わらず、クライアント110がライセンスサーバー120にライセンス(使用権)を返却することを、本実施例ではライセンスのチェックインと呼ぶ。
管理部302は、ライセンス取得部305から取得結果を受け付けると、その結果に応じて、受け付けた処理要求が実行可能か否か判断する。ライセンスが有効である場合、処理要求を実行可と判断して、処理実行部303に対して処理の実行を指示する。処理実行部303は入力部301によってアプリケーションが受け付けた処理要求に応じてその処理を実行する。一方、ライセンスが無効である場合、実行不可と判断して処理を実行しない。この場合、ユーザーに対してメッセージ等で通知してもよい。
処理が完了すると、処理実行部303は処理の完了を管理部302へ通知する。管理部302は処理完了を受け付けると、ライセンス返却部306に対し、ライセンスの返却要求を命ずる。ライセンス返却部306は、ライセンス方式判定部304によって判定済みのライセンス方式がフローティング方式の場合、ライセンスサーバー120に対して、ライセンスの返却を行う。
次にライセンスサーバー120について説明する。図4は、ライセンスサーバー120のソフトウェア構成の一例を示す図である。ライセンスサーバー120は、フローティングライセンス管理システムでクライアントとの接続運用を開始する前に、予めメインライセンスサーバーから1つ以上のライセンスを取得しているものとする。そのライセンスは、ライセンスプール404に格納されている。本システムでは、ライセンスプール404に取得済のライセンス数を上限に、クライアントからの要求に応じてライセンスの貸し出しを行うことができる。ライセンスカウンタ処理部403が管理するライセンスカウントは、初期値はライセンス総数(すなわち、同時使用可能なクライアント数)となる。以下に、各部の説明を行う。
ライセンスチェックアウト受信部401は、アプリケーション300からのチェックアウト、チェックイン要求を受信し、管理部402に伝える。
管理部402は、チェックアウト要求を受けた場合、ライセンスカウンタ処理部403にライセンスカウントを問い合わせる。ライセンスカウントは、貸し出し可能なライセンスの残数を表しており、ライセンスカウントが1以上だった場合は、まだ貸し出し可能なライセンスが残っていることを意味する。この時、管理部402は、ライセンスカウンタ処理部403に、ライセンスカウントを−1(1デクリメント)するよう命じ、ライセンスプール404からライセンスをひとつ取得し、ライセンスチェックアウト受信部401へ成功ステータスとライセンスを返信する。
管理部402で取得したライセンスカウントが0だった場合は、これ以上貸し出し可能なライセンスは残っていないことを意味する。この時、管理部402は、失敗ステータスをライセンスチェックアウト受信部401へ返信する。
ライセンスチェックアウト受信部401は、ライセンス管理部320に、成否のステータスと、成功時にはライセンスを返信する(前述したように、チェックアウト処理にて実際のライセンスの授受を行わない場合は、使用権ステータスのみ処理する)。
次に、ライセンスチェックアウト受信部401がチェックイン要求を受信した場合、管理部402は、ライセンスカウンタ処理部に命じ、ライセンスカウントを+1(1インクリメント)する。なお、ライセンスファイルの授受がある場合は、ライセンスプールにライセンスを戻す。
[ライセンス管理の処理]
図5は、アプリケーション300、ライセンスサーバー120の処理フローを示した図である。
図5は、アプリケーション300、ライセンスサーバー120の処理フローを示した図である。
最初に、アプリケーション300のライセンス取得時の処理フローについて説明する。S501にて、アプリケーション300の入力部301は、アプリケーションの起動要求を受け付け、管理部302へ通知しアプリケーションの起動処理を開始する。S502にて、起動要求を受け付けた管理部302は、ライセンス方式判定部304に指示し、アプリケーションのライセンス方式としてフローティング方式とノードロック方式のいずれが指定されているかを判定する。なお、ライセンス方式はアプリケーショのインストール時や初回起動時などに、ユーザーの運用に応じて予め指定されているものとする。ライセンス方式がフローティング方式であると判定した場合は、S503に進んで、ライセンス取得部305はアプリケーションのライセンスを有効としてS508へ進む。一方、ライセンス方式がノードロック方式であると判定した場合は、S504に進んで、ライセンス取得部305にライセンスを既に取得済みかどうか問い合わせる。
S504において、問い合わせの結果、ライセンス取得済みと判定した場合は、S503でライセンス有効とした後、S508へ進む。一方、ライセンスが未取得であると判定した場合は、S505に進み、管理部302はライセンス取得部305にノードロック方式のライセンス認証処理を実行させ、ライセンス取得部305はその認証結果を管理部302へ返却する。S506にて、管理部302はライセンス認証処理の結果、ノードロックライセンスの取得に成功した場合、S503に進んで、アプリケーションのライセンスを有効としてS508へ進む。一方、S506においてライセンスの取得に失敗した場合は、S507に進んで、アプリケーションのライセンスを無効としてS508へ進む。なお、ここではノードロックライセンス未取得と判定した場合にライセンス認証を行う例を示したが、ライセンス認証は別のフローでのみ行うケースもある。そのようなケースでは、S504で認証済みでないと判断された場合、S507に進んでライセンス無効としてもよい。
S508において、管理部302は、アプリケーションのUIの初期化を行う。S503でライセンス有効とされた場合は、アプリケーションのUIを制限せずに、UIの全てを実行可(Enable)の表示状態にする。一方、S507でライセンス無効とされた場合は、アプリケーションの一部のUI(例えば、有償の機能等のUI)を実行不可(Disable)の表示状態にする。S508でのアプリケーションのUIの初期化が完了すると、アプリケーションはユーザーからの操作を待ち受ける待機状態となる。待機状態のときに、入力部301が、アプリケーションに対するユーザーによる操作を受け付けることで、当該指示された操作に対応する処理を実行する。
S509において、ユーザーの操作により、入力部301が機能表示要求を受信すると、該機能表示要求を管理部302へ通知し、S510において、管理部302はアプリケーションの提供する機能を示すメニューを表示する。
S511にて、管理部302は、S510で表示したメニューにおいてユーザーの操作によりメニュー選択が為されて、入力部301から当該選択された機能の処理要求を受け付けると、管理部302は要求された処理の実行へ移る。
S512にて、管理部302は、当該要求された処理がライセンスを必要とする機能か否かを判断する。ライセンスを必要としない機能であると判定した場合は、S520へ進んで、当該要求された処理を実行する。一方、ライセンスを必要とする機能であると判定した場合は、S513へ進む。
S513にて、管理部302はライセンス方式判定部304に指示し、ライセンス方式を判定させる。ここでライセンス方式がノードロック方式のであると判定した場合はS518へ進み、アプリケーション起動時に処理したライセンスの認証結果を反映する。ただし、ノードロック方式の場合は、S508でアプリケーションのUIの初期化時に、使用不可の機能のUIは選択不可能になっているため、ここでの値は必ずライセンス有効となる。
S513でライセンス方式がフローティング方式であると判定した場合は、S514に進み、管理部302はライセンス取得部305へ指示して、ライセンスサーバー120に対してライセンスの取得要求を送信させる。ライセンスサーバー120からの取得要求に対する返信を受け付けると、ライセンス取得部305はその結果を管理部302へ通知する。S515において、管理部302は、ライセンス取得結果を参照し、ライセンスの取得に成功したと判定した場合、S516においてライセンスを有効とする。一方、S515においてライセンスの取得に失敗したと判定した場合は、S517においてライセンスを無効とする。
S519において、管理部302はライセンスが有効であったか無効であったかを判定する。管理部は、ライセンスが有効であると判定した場合、S520において、処理実行部303に指示して、当該要求された処理を実行させる。一方、管理部は、ライセンスが無効であると判定した場合、S521において当該要求された処理の実行を中止する。この際、ユーザーに対して、ライセンス取得不可のため処理の続行不可を示すメッセージを表示してエラー通知を行う(後述するように、図6の605のようなメッセージ例が表示される)。
S522で、管理部302はS520で実行された処理の完了を受け付けると、S523へ進み、ライセンス方式判定部304に指示し、ライセンス方式を判定する。ここでライセンス方式が、ノードロック方式であった場合は何も処理しない(S526)。一方、ライセンス方式がフローティング方式であった場合、S524に進んで、管理部がライセンス返却部306へ指示することにより、該ライセンス返却部306は、ライセンスサーバー120に対して、S514で取得していたライセンスの返却要求を送信して返却処理を行う。そして、S525にてライセンスサーバーからの返答を受信する。
S527において、アプリケーション300は、ユーザーの操作に基づき入力部301からアプリケーションの終了要求を受け付けた場合は、アプリケーションを終了する。終了要求でない場合は、S509に戻って、次の操作指示が為されるのを待機する。
次にライセンスサーバー120の処理フローを説明する。
ライセンスサーバー120は、S514で送信されたライセンス取得要求を受信すると、S551において、ライセンスカウンタ処理部403が管理するライセンスカウントを確認することで、貸し出し可能なライセンスが残っているか判断する。
S551でライセンスが残っていると判断した場合、S552において、ライセンスカウンタ処理部403でライセンスカウントを−1(1デクリメント)する。そして、S553にて、ライセンス貸与可として取得結果を成功とし、S554にてライセンスチェックアウト受信部401は成功ステータスとライセンス情報をアプリケーション300に返信する。一方、S551にてライセンスが残っていないと判断した場合、S554にて、ライセンスチェックアウト受信部401からアプリケーション300に失敗ステータスを返信する。
また、S524で送信されたライセンス返却要求を受信すると、S555にて、ライセンスサーバー120のライセンスカウンタ処理部403は、ライセンスカウントを+1(1インクリメント)する。これにより、ライセンスサーバー120で貸し出し可能なライセンスがひとつ復帰する。
以上が、アプリケーション300およびライセンスサーバー120におけるライセンス管理処理フローである。このように、ライセンス方式がノードロック方式の場合には、アプリケーション起動時にライセンス認証を試み、その結果に応じてアプリケーション(UI)を初期化することで、ライセンス無効の場合の機能制限をUIに反映することができる。したがって、ノードロック方式の場合はアプリケーション起動時のライセンス認証の結果に応じて、処理の実行可否を判断してUIで機能制限するため、実行不可の機能をユーザーは容易に認識することができ、その機能を選択することはなくなる。
一方、ライセンス方式がフローティング方式の場合には、ライセンスを有効とみなしてアプリケーション(UI)を初期化することで、アプリケーション起動時はUIの制限が無い状態でUIを初期化する。このように構成することにより、操作メニューの表示レスポンスが良くなる。そして、アプリケーションの機能が選択されて実行する際に、当該選択された機能がライセンスが必要な機能であり、ライセンス方式がフローティング方式の場合は、ライセンスの取得を試み、その結果に応じて処理の実行可否を判断する。
これにより、ノードロック方式とフローティング方式のどちらのライセンス方式でも運用可能なアプリケーションを提供するとともに、フローティング方式でアプリケーションを使用する場合は、処理を実行する時点でライセンスを取得することで、ユーザーの利便性を向上する。
[UI図]
図6は、アプリケーション300のUIの一例を示すUI図である。アプリケーション300は常駐型のアプリケーションであり、クライアント110にインストールされるOS(Operating System)の起動時に、該アプリケーションも起動されるものとする。アプリケーション300は起動するとクライアント110の表示部202にメイン画面601を表示する。図6の常駐アプリケーションのメイン画面601は、アイコンのような状態で表示され、ユーザーにより、ファイルがこのメイン画面上にドラッグ操作されると、操作メニューを表示し、当該ファイルがドロップされたメニューに応じた処理を実行する。611〜613は、アプリケーション300がユーザーからの処理要求を受け付けてから処理を実行するまでの流れを模式的に示している。
図6は、アプリケーション300のUIの一例を示すUI図である。アプリケーション300は常駐型のアプリケーションであり、クライアント110にインストールされるOS(Operating System)の起動時に、該アプリケーションも起動されるものとする。アプリケーション300は起動するとクライアント110の表示部202にメイン画面601を表示する。図6の常駐アプリケーションのメイン画面601は、アイコンのような状態で表示され、ユーザーにより、ファイルがこのメイン画面上にドラッグ操作されると、操作メニューを表示し、当該ファイルがドロップされたメニューに応じた処理を実行する。611〜613は、アプリケーション300がユーザーからの処理要求を受け付けてから処理を実行するまでの流れを模式的に示している。
説明図611において、602はファイルのアイコンを示し、603は入力デバイス205で表示部202上の位置を指すためのカーソルアイコンを示す。カーソルアイコン603でファイル602を選択し、当該選択したファイルをドラッグしてメイン画面601上に移動させて静止させる(ドラッグオーバー)と、アプリケーション300は、当該アプリケーションの機能(メニュー)604を一覧表示する。説明図612は、ファイル602がメイン画面601上にドラッグオーバーされたときに表示されるメニュー604の例である、本実施例では、印刷、ファクス送信、印刷プレビュー、PDF変換の機能メニューを表示している例を示している。本例は一例であり、アプリケーションの提供するその他の機能をメニュー表示しても良い。その後、説明図613に示すように、ユーザーがファイル602を所望の機能メニューの上に移動させ、カーソルアイコンの選択状態を解除する(ファイルをドロップ)すると、アプリケーション300は該当する機能の処理を実行する。ライセンス方式がノードロック方式で、且つノードロックライセンスを取得している場合は、説明図613のようなメニューが表示される。また、ライセンス方式がフローティング方式の場合も、説明図613のようなメニューが表示される。
説明図614は、ファイルがドラッグオーバーされたときに、機能(メニュー)の一部が使用不可(Disable)の状態で表示される例を示している。ライセンス方式がノードロック方式で、且つ、図5のS507でライセンスが無効とされた場合、一部の機能を制限して機能表示(図5のS510)する際のUIの一例である。
説明図605は、ライセンス方式がフローティング方式で、且つ、ユーザーによりライセンス必要な機能が選択された場合に、ライセンス取得に失敗した場合に、S521において、ユーザーにエラー通知する場合のメッセージ画面の例である。
ライセンス方式がフローティング方式の場合、処理実行から完了までの間、ライセンスを取得することで、必要以上にライセンスを占有しない。また、フローティング方式の場合、アプリケーション起動時はライセンス有効と見なしてUI初期化を行い、且つ、処理実行時にライセンスを取得することで、操作メニューの表示レスポンス(UI初期化時のパフォーマンス)の低下を抑止する。
さらに、ライセンス方式がノードロック方式の場合は、アプリケーション起動時にライセンス認証してUIを初期化する。したがって、ライセンス無効の場合は、使用できる操作メニューと使用できない操作メニューとが区別されて表示されるので、ユーザーは操作の試行前に使用不可であることを認識できる。
<<第2実施形態>>
本実施形態では、第1の実施形態と同一の構成については同一の符号を用い、その説明を適宜省略する。
本実施形態では、第1の実施形態と同一の構成については同一の符号を用い、その説明を適宜省略する。
複数のアプリケーションが互いに連携するようなスイート製品では、アプリケーション群をセットにして利用可能にする必要がある。この場合、第一の実施形態で示す例ではライセンスに関する処理をアプリケーション毎に行う必要があり、アプリケーションの処理が複雑になる。例えば、常駐型アプリケーションと非常駐型アプリケーションが混在するアプリケーションセットを考える。常駐型アプリケーションは第1実施形態で説明したようにライセンスが必要となるタイミングが起動時と実処理開始時で異なり、非常駐型アプリケーションは起動時にライセンスが必要となる。また、複数のアプリケーションのライセンスを一括で管理する場合に、取得済みライセンスをアプリケーション間で共有する必要がある。
第2の実施形態は、ライセンス管理に関する処理を、各アプリケーション内部で行うのではなく、ライセンス管理部720で行うように構成した場合の実施例を示す。以下、図7のソフトウェア構成図、及び図8、図9のフロー図を用いて詳細に説明する。
[ソフトウェア構成図]
図7は、クライアント110上で実行されるアプリケーション700のソフトウェア構成の一例を示す図である。
図7は、クライアント110上で実行されるアプリケーション700のソフトウェア構成の一例を示す図である。
本実施例におけるアプリケーション700の例では、アプリケーションの形態を常駐型アプリケーションと非常駐型アプリケーションに分けて説明する。常駐型アプリケーションはOSの起動に伴い、アプリケーションを起動し、ライセンスが無効の場合に使用できる機能を制限する。この場合、制限される機能は使用できないが、その他の機能は使用できる。非常駐型アプリケーションはユーザーによるアプリケーションの起動操作に起動し、ライセンスが無効の場合はアプリケーションの起動を中止する。アプリケーション700は、クライアント110にインストールされる。
入力部701は、ユーザーからの操作を受け付け、入力された要求を管理部702に伝える。入力部701でアプリケーションの起動要求を受けた場合、管理部702へ通知し、管理部702はライセンス処理要求部704に対してライセンス取得を要求する。
ライセンス処理要求部704は、ライセンス取得要求を受け付けると、ライセンス管理部720のライセンス処理要求受信部721に対し、ライセンスの取得要求を行う。ここで、要求時に指定する情報として、初期化フラグを指定する。この初期化フラグは、主にUI初期化のための呼び出しか否かを識別するためのものでTrueの場合はUI初期化のための呼び出し、Falseの場合はそれ以外での呼び出しを示す。アプリケーション700が常駐型のアプリケーションである場合、初期化フラグをTrueとし、非常駐型のアプリケーションの場合は初期化フラグをFalseとしてライセンス取得要求を実行する。ライセンス処理要求部704は、ライセンス管理部720からライセンスの取得結果を受け付けると、その結果を管理部702に返却する。
管理部702はライセンス処理要求部704から取得結果を受け付けると、その結果に応じて、アプリケーションの初期化を行う。常駐型のアプリケーションでは、ライセンスが有効である場合に全機能を使用可としてUIを初期化し、ライセンスが無効の場合に、一部の機能(有償の機能など)の使用を不可としてUIを初期化する。非常駐型のアプリケーションでは、ライセンスが有効の場合にアプリケーションを起動し、無効の場合にはアプリケーションの起動を中止する。起動を中止する場合、その旨をメッセージによりユーザーに通知してもよい。
また、入力部701でアプリケーションに対する処理の実行要求を受けた場合、管理部702に通知し、管理部702は処理実行部703に指示し、要求された処理を実行する。ここで、常駐型アプリケーションの場合は、要求された処理を実行する際にライセンスの取得要求を行い、当該ライセンスの取得可否に応じて、要求された処理の実行の可否を判断する。前述と同様にして、管理部702はライセンス処理要求部704に対し、ライセンスの取得を要求し、その結果に応じて、受け付けた処理要求が実行可能か否か判断する。ライセンスが有効で実行可と判断する場合に処理実行部703に対して処理の実行を指示する。ライセンスが無効で実行不可と判断する場合は処理を実行しない。この場合、ユーザーに対して処理続行が不可の旨をメッセージで通知してもよい。常駐型アプリケーションの場合、当該要求された処理が完了した際(またはユーザーがアプリケーションを終了した際)に、処理実行部703は処理の完了を管理部702へ通知する。管理部702は処理完了を受け付けると、ライセンス処理要求部704に対し、ライセンスの返却要求を行う。ライセンス処理要求部704は、ライセンス管理部720に対して、ライセンスの返却を行う。
次に、ライセンス管理部720の説明を行う。ライセンス管理部720は、アプリケーション700とライセンスサーバー120との間でライセンスの管理を行う。ライセンス管理部720は、各アプリケーションからライセンス取得要求を受けた際は、ライセンスモードに応じた処理を行う。フローティング方式の場合、ライセンス管理部720は、他のアプリケーションからのライセンス要求によりライセンスを取得済みであるならば、即時成功を返し、未取得ならばライセンスサーバーからライセンス取得を試み、その結果を返す。各アプリケーションからライセンス返却要求を受けた際は、すべてのアプリケーションでの処理が終了したと判断した際に、ライセンスサーバー120にライセンスを返却する。ノードロック方式の場合は、ライセンス取得要求のみ処理し、ライセンス認証済みであればその結果を返却し、未認証であればライセンス認証を実行しその結果を返却する。以下に、各部の説明を行う。
ライセンス処理要求受信部721は、アプリケーション700のライセンス処理要求部704からライセンス取得や返却の要求を受けると、管理部722に伝える。
管理部722は、ライセンス方式判定部724に指示しライセンス方式の判定を行う。ライセンス方式判定部724は、アプリケーションのライセンス方式をアプリケーションのライセンス設定情報(不図示)を参照することで判定する。ライセンス設定情報(不図示)は、クライアント110内の外部メモリ206に設定情報として保存される構成であっても、メインライセンスサーバー(不図示)に問い合わせて得る構成であっても良い。ライセンス方式判定部724は、判定の結果のライセンス方式を管理部722へ返却する。
管理部722は、受け付けたライセンス方式に応じて、ライセンス取得部725に指示し、ライセンスの取得処理を実行する。ライセンス方式がノードロック方式の場合、ライセンス取得部725に指示し、ライセンス認証処理を実行してその結果を返却する。ここでのライセンス認証は、メインライセンスサーバー(不図示)に対してライセンスの取得要求を行うことで実行される。尚、既にライセンスが認証済みの場合は、認証済みの結果を返却する。その結果をライセンス処理要求受信部721に渡し、アプリケーション700に返却する。
ライセンスの方式が、フローティングの場合、管理部722は、要求カウンタ処理部723に要求カウントを問い合わせる。要求カウントは、複数のアプリケーション700からから現在受けているライセンス取得要求の総数である。ここで要求カウントがゼロだった場合は、最初の要求であったことを意味するので、管理部722は、ライセンス取得部725にライセンス取得を命じる。ライセンス取得部725は、ライセンスサーバー120と接続し、ライセンスの取得要求を行う。ライセンスサーバー120は、ライセンス取得の成否に応じて成功または失敗のステータスを返却する。通常、利用可能なライセンスが残っていれば成功となる。
ライセンス取得部725は、ライセンスのチェックアウトの成否を管理部722に返信する。成功時、ライセンス監視目的でライセンス貸与中のサーバ・クライアント間のセッション維持が必要な場合は、ライセンス取得部725はライセンスサーバー120との接続を続ける。
管理部722は、ライセンス取得部325からの返信が成功だった場合、要求カウンタ処理部724に命じて、要求カウントを+1(1インクリメント)する。また、管理部722は、ライセンス処理要求受信部721に、成否の結果を返信する。
一方、ライセンス処理要求受信部721からの要求受付時に、要求カウントが既に1以上だった場合は、別のアプリケーションからの要求によってすでにライセンスを取得済であることを意味する。このとき、管理部722は、要求カウンタ処理部724に命じて要求カウントを+1(1インクリメント)し、また、ライセンス処理要求受信部721に成功ステータスを返信する。その結果をライセンス処理要求受信部721に渡し、アプリケーション700に返却する。
ライセンス処理要求受信部721は、アプリケーション700のライセンス処理要求部704からライセンス返却要求を受けると、管理部722に伝える。管理部722は、ライセンス方式判定部724によって判定済みのライセンス方式に応じて、ライセンス方式がフローティングの場合に、ライセンスの返却処理を実行する。管理部722は、要求カウンタ処理部724に命じ、要求カウントを−1(1デクリメント)する。もしここで要求カウントがゼロになった場合、すべてのアプリケーションがライセンスを要する処理を終了したことを意味する。そこで管理部722は、ライセンス返却部726に、ライセンスの返却を命じる。
ライセンス返却部726は、ライセンスサーバー120に対し、ライセンスのチェックインを行う。また、ライセンスの監視は不要となるので、セッションの切断を行う。
なお、ライセンス管理部320は、アプリケーション700と一体に形成して頒布してもよいし、アプリケーション700とは独立に複数のアプリケーションに対して共通に使用できるようにしてもよい。
[ライセンス管理の処理]
図8および図9は、アプリケーション700、ライセンス管理部720、ライセンスサーバー120の処理フローを示した図である。本実施形態を例に、処理の流れを説明する。
図8および図9は、アプリケーション700、ライセンス管理部720、ライセンスサーバー120の処理フローを示した図である。本実施形態を例に、処理の流れを説明する。
図8のフローは、アプリケーション700が常駐型アプリケーションの場合の処理の流れを示す。
S801にて、アプリケーション300の入力部701は、アプリケーションの起動要求を受け付け、管理部702へ通知しアプリケーションの起動処理を開始する。S802にて、起動要求を受信した管理部702は、ライセンス処理要求部704に対してライセンスの取得を指示する。ライセンス処理要求部704は、ライセンス管理部720に対してライセンス取得を要求し、その取得結果を管理部702へ通知する。取得要求時に、ライセンス取得要求の初期化フラグをTrueとする。
S803で管理部702は、ライセンス取得結果を受け、ライセンスが有効の場合はS804へ進み、アプリケーションの全機能のUIを使用可とみなし、アプリケーションの初期化を行う。ここでの初期化は、具体的にはアプリケーションのUIを制限せずに全て実行可(Enable)の状態で表示する処理を示す。ライセンスが無効の場合はS805へ進み、一部の機能を制限してアプリケーションを初期化する。ここでの初期化は、具体的にはアプリケーションの一部の機能(有償機能など)を実行するためのUIを実行不可(Disable)の状態で表示する処理を示す。
S804またはS805によりアプリケーションの初期化を完了すると、アプリケーションはユーザーからの操作を待ち受ける待機状態となる。待機状態では、ユーザーによるアプリケーションへの操作を入力部701で受け付けることで処理を実行する。S806にて、入力部701でユーザーからの機能表示要求(機能メニュー表示要求)を受け付けると、該要求を管理部702へ通知する。S807にて、管理部702はアプリケーションの提供する機能を示すメニューを表示する。
S808にて、入力部701により、S807で表示したメニューに対する処理要求を受け付けると、該要求を管理部702へ通知する。S809にて、管理部702は要求された処理がライセンスを必要とする機能か否かを判断する。ライセンスを必要としない機能の場合は、S813へ進み要求された処理を実行する。一方、ライセンスを必要とする機能の場合、S810へ進み、ライセンス処理要求部704に対してライセンスの取得を指示する。ライセンス処理要求部704はライセンス管理部720に対してライセンス取得を要求する。このときライセンス取得要求の初期化フラグをFalseとして要求する。イセンス処理要求部704は、ライセンス取得処理の結果を管理部702へ通知する。
S811において、管理部702は、ライセンス取得結果を参照し、ライセンスの取得に成功した場合はライセンスを有効とみなし、S813へ進み要求された処理を実行する。ライセンスの取得に失敗した場合は、S812で、ライセンスを無効と見無し処理の続行をキャンセルする。この際、ユーザーに対して、ライセンス取得不可のため処理の続行不可を示すメッセージ(例えば、図6の605)を表示する。
S813の処理は、処理実行部703によって実行する。処理が完了すると処理完了を管理部702へ通知する。S814で、管理部702は処理完了を受け付けると、S815へ進み、ライセンス処理要求部704に対してライセンスの返却を指示する。ライセンス処理要求部704はライセンス管理部720に対してライセンス返却を要求し、その返却結果を管理部702へ通知する。
アプリケーション700は、S816で入力部701によるアプリケーションの終了要求を受け付けると、アプリケーションを終了する。
次にライセンス管理部720の処理フローを説明する。ライセンス管理部720のライセンス処理要求受信部721は、アプリケーション700によるライセンスの処理要求を受信すると、その要求に従ってライセンス取得、返却を処理する。
ライセンス処理要求受信部721はライセンスの取得要求を受けると、S831で、ライセンス方式判定部724に指示し、アプリケーションのライセンス方式を判定する。ライセンス方式がノードロック方式の場合に、S832の処理へ進む。
S832にて、管理部722はライセンス取得部724に問い合わせ、既にライセンス認証済みかどうかを判断する。ライセンス認証済みと判断した場合は、S834の処理へ移り、ライセンス処理要求受信部721に指示し、アプリケーション700に対して認証済みの結果を返却する。S832でライセンスが未認証と判断した場合、S833の処理へ移る。S833にて、管理部722はライセンス取得部724へ指示し、ライセンス認証を実行し、その認証結果を管理部722へ返却する。S834で、管理部722はライセンス処理要求受信部721に指示し、アプリケーション700に対して認証済みの結果を返却する。
S831の判定の結果、ライセンス方式がフローティング方式の場合には、S835の処理へ進む。S835で、管理部722はライセンス処理要求受信部721によって受け付けたアプリケーション700からの取得要求の情報を参照し、初期化フラグの真偽を判定する。ここで初期化フラグがTrueの場合は、S836へ進み、ライセンス処理要求受信部721に指示し、アプリケーション700に対してライセンスを有効として結果を返却する。一方、初期化フラグがFalseの場合、S837の処理へ進む。
S837で、要求カウンタ処理部724が管理する要求カウントを確認し、アプリケーションセット内のいずれかのアプリケーションからの要求によって既にフローティングライセンスを取得済みか否か判断する。S837にて取得済と判断した場合、S840で、管理部722は要求カウンタ処理部724に指示して要求カウントを+1(1インクリメント)し、S841で、ライセンス取得要求受信部721に指示し、アプリケーション700に対して、ライセンスの取得結果(ライセンス有効)を返信する。
一方、S837にてライセンスを未取得と判断した場合、S838にて、管理部722はライセンス取得部725に指示し、ライセンスサーバー120に対してライセンスの取得要求を送信する。ライセンスサーバー120からの取得要求に対する返信を受け付けると、ライセンス取得部725はその結果を管理部722へ通知する。S839で、管理部722はライセンス取得結果を参照し、ライセンスの取得に成功した場合はライセンスを有効として、S840で要求カウンタ処理部724へ指示し要求カウントを+1(1インクリメント)する。そして、S841で、ライセンス取得要求受信部721に指示し、アプリケーション700に対して、ライセンスの取得結果(ライセンス有効)を返信する。ライセンスの取得に失敗した場合は、ライセンス取得要求受信部721に指示し、アプリケーション700に対して、ライセンスの取得結果(ライセンス無効)を返信する。
また、S815でアプリケーション700が送信したライセンスの返却要求を、ライセンス処理要求受信部721が受信した場合、S842で、管理部722は、ライセンス方式判定部724に指示し、アプリケーションのライセンス方式を判定する。ライセンス方式がノードロック方式の場合は何も処理しない(S843)。フローティング方式の場合には、S844の処理へ進み、要求カウンタ処理部724へ指示し要求カウントを−1(1デクリメント)する。S845にて、管理部722は要求カウントを参照し、カウントが1以上あると判断した場合、すなわち、ライセンス使用中のアプリケーションが存在する場合、これ以上何もせずに終了する。S845にて、要求カウントが0だと判断した場合、すなわち、ライセンス使用中のアプリケーションが存在しなくなった場合、管理部722はS846にて、ライセンス返却部726にライセンスの返却要求を送信し、S847にてライセンスサーバーからの返答を受信する。ライセンス返却部726はライセンスサーバー120へ、ライセンスの返却要求を送信する。
次にライセンスサーバー120の処理フローを説明する。
ライセンスサーバー120では、S838のライセンス取得要求に応じ、S851にて、ライセンスカウンタ処理部403が管理するライセンスカウントを確認することで、ライセンスが残っているか判断する。
S851にて残っていると判断した場合、S852にて、ライセンスカウンタ処理部403でライセンスカウントを−1(1デクリメント)する。また、S853にて、ライセンス貸与可とみなし取得結果を成功とし、S854にてライセンスチェックアウト受信部401は成功ステータスとライセンスをアプリケーション300に返信する。S851にてライセンスが残っていないと判断した場合、S854にて、ライセンスチェックアウト受信部401からアプリケーション300に失敗ステータスを返信する。
また、S846のライセンス返却要求に応じて、S854にて、ライセンスサーバー120のライセンスカウンタ処理部403は、ライセンスカウントを+1(1インクリメント)する。これにより、ライセンスサーバー120で貸し出し可能なライセンスがひとつ復帰する。
以上が、プリケーション700、ライセンス管理部720、ライセンスサーバー120の処理フローにおけるライセンス管理処理フローである。
図9のフローは、アプリケーション700が非常駐型アプリケーションの場合の処理の流れを示す。尚、図中のライセンス管理部720及びライセンスサーバー120の処理は図8で説明済みの内容と同一のため省略する。
S861にて、アプリケーション700の入力部701は、アプリケーションの起動要求を受け付け、管理部702へ通知しアプリケーションの起動処理を開始する。S862にて、起動要求を受け付けた管理部702は、ライセンス処理要求部704に対してライセンスの取得を指示する。ライセンス処理要求部704はライセンス管理部720に対してライセンス取得を要求する。このときライセンス取得要求の初期化フラグをFalseとする。そして、管理部702は、ライセンス処理要求部704を介してライセンス取得結果を受け、S863でライセンスが有効か無効か判断する。
S863でライセンスが無効と判断した場合はS865へ進み、アプリケーションの起動を中止する。また、メッセージを表示し、ユーザーに対してアプリケーションの起動不可の旨を通知する。
S863でライセンスが有効と判断した場合はS864へ進み、アプリケーションのUIを表示する。S864でアプリケーションを起動してUIを表示すると、アプリケーションの提供する処理を実行する(S865)。ここでの処理は、アプリケーションの提供する任意の処理であり、本実施例における説明では特に限定しない。
アプリケーション700は、S866で入力部701によるアプリケーションの終了要求を受け付けると、S867でライセンス処理要求部704に対してライセンス返却を指示する。ライセンス処理要求部704はライセンス管理部720に対してライセンス返却を要求する。ライセンス返却後、S868でアプリケーションを終了する。
以上により、ライセンス管理部720によってライセンス管理の処理を実行することで、複数のアプリケーションをセットにしてライセンス管理する場合も、アプリケーションのライセンス処理が複雑にならずに済む。また、各アプリケーションはライセンス方式によって適したタイミングでライセンス取得を実行できる。
<<第3実施形態>>
これまでの実施形態で説明したように、常駐型のアプリケーションでライセンス方式がフローティング方式の場合は、UI初期化時に全機能使用可の状態のUI表示とし、処理実行時にライセンス取得を試み、処理の実行後ライセンスを返却するように処理する。これにより、常駐時に不要にライセンスを保持せず、必要な場合のみライセンスを取得するように制御できる。但し、ライセンスの保持期間が処理の実行から完了までのため、次の操作実行までの間に他のユーザーによってライセンスが消費された場合など、操作のタイミングによって処理を実行できる場合とできない場合がある。第3実施形態では、アプリケーションは、処理実行時のライセンス取得に失敗した場合、ライセンスの取得を一定回数または一定期間試み、それによりライセンスの取得に成功した場合はライセンスの利用可能をユーザーに通知する。
これまでの実施形態で説明したように、常駐型のアプリケーションでライセンス方式がフローティング方式の場合は、UI初期化時に全機能使用可の状態のUI表示とし、処理実行時にライセンス取得を試み、処理の実行後ライセンスを返却するように処理する。これにより、常駐時に不要にライセンスを保持せず、必要な場合のみライセンスを取得するように制御できる。但し、ライセンスの保持期間が処理の実行から完了までのため、次の操作実行までの間に他のユーザーによってライセンスが消費された場合など、操作のタイミングによって処理を実行できる場合とできない場合がある。第3実施形態では、アプリケーションは、処理実行時のライセンス取得に失敗した場合、ライセンスの取得を一定回数または一定期間試み、それによりライセンスの取得に成功した場合はライセンスの利用可能をユーザーに通知する。
以下、図10のフロー図を用いて詳細に説明する。
[ライセンス取得の再試行処理]
図10で示す処理は、常駐型アプリケーションを示すアプリケーション300(または700)の処理実行時のライセンス取得処理(S513(またはS810))に失敗した場合に実行される。本説明ではアプリケーション300のソフトウェア構成を用いて説明する。
図10で示す処理は、常駐型アプリケーションを示すアプリケーション300(または700)の処理実行時のライセンス取得処理(S513(またはS810))に失敗した場合に実行される。本説明ではアプリケーション300のソフトウェア構成を用いて説明する。
アプリケーション300の処理実行時のライセンス取得処理(S513)に失敗した場合、そのエラー処理として、一定回数、ライセンスの取得処理を試みる。S901で、管理部302は、ライセンス取得部305に指示しライセンスの取得を実行し、その取得結果を判定する(S902)。ライセンスの取得に成功した場合、本フローの処理を終了し、アプリケーション300の処理実行へ進む。ライセンスの取得に失敗する場合、S903へ進み、S901の処理の試行回数が一定回数を超えているか判定する。一定回数は予めアプリケーションの設定値として決められた値でUI等から変更できてもよい。一定回数を超えていない場合、再度ライセンスの取得(S901)を試みる。一定回数を超えた場合は、S904の処理へ進み、ユーザーに対して、ライセンス取得不可のため処理の続行不可を示すメッセージ(図6の605)を表示する。
一定回数、ライセンス取得を試みてライセンス取得に成功しない場合、一定期間の間、一定間隔でライセンス取得を試みる。S905で、管理部302は、入力部301に対する操作で処理対象として指定されたファイルを解放する。具体的には、保持するファイルの位置情報を破棄し、またファイルを排他している場合はファイルの排他状態を解除する。
その後、S906で管理部302はライセンス取得部305に指示し、ライセンスの取得を実行する。S907でその取得結果を判定し、ライセンスの取得に成功した場合、S908で管理部302は、ライセンスが使用可能になった旨を通知し、UIの機能制限を解除し(図11の1002でUIの一例を示す)、本フローの処理を終了する。
S907でライセンス取得に失敗する場合、S909で管理部302は一部の機能を制限するようUIに反映する(図11の1001でUIの一例を示す)。具体的にはアプリケーションの一部の機能(有償機能等)を実行するためのUIを実行不可(Disable)とする処理を示す。常駐型アプリケーションでフローティング方式のライセンスを使用する場合、全機能を使用可としてUIを初期化するが、本処理によるライセンス取得の再試行中はUI上に機能制限を反映することでユーザーによる不要な再試行を抑止できる。S909のUI反映後、S910にて、管理部302は一定間隔の間、処理を待機状態とする。一定間隔の時間は予めアプリケーションの設定値として決められた値でUI等から変更できてもよい。一定間隔経過後、S911で、ライセンス取得の試行を開始してからの時間が一定期間経過しているか否か判定する。一定期間の時間は予めアプリケーションの設定値として決められた値でUI等から変更できてもよい。一定期間を経過していない場合、再度ライセンス取得を試みる(S906)。一定期間経過している場合、S912で管理部302はS909の処理で反映して機能制限を解除し、本フローの処理を終了する。
[UI図]
図11は、アプリケーションのUIの一例を示すUI図である。図10におけるS908でのライセンスが使用可能を通知するUI、UIの機能制限を解除した状態、S909における一部機能を制限した状態のUIの一例を示す。
図11は、アプリケーションのUIの一例を示すUI図である。図10におけるS908でのライセンスが使用可能を通知するUI、UIの機能制限を解除した状態、S909における一部機能を制限した状態のUIの一例を示す。
1001は、機能(メニュー)の一部が使用不可(Disable)の状態を示している。ライセンスの取得(S906)に失敗する間、一部機能を制限して機能表示(S909)する際のUIの一例を示す。図6の614と区別するため、Disableの表示を異なる表現(色や網掛け等)で行ってもよい。
1002は、ライセンス取得の再試行中(S906)にライセンス取得に成功した場合にユーザーにライセンスを使用できる旨を通知(S908)するUIの一例を示す。ユーザーは、この通知を見ることで操作可能となったことが分かるので、操作を再試行する(対象ファイルのドラッグ&ドロップ)ことで所望する処理を実行できる。
1003は、機能の一部が使用不可(Disable)の状態の別の一例を示している。ファクス送信を指定したときに表示される送信先の設定画面において、アドレス帳を参照して宛先を指定できるが、アドレス帳の種類に応じてライセンスが必要なアドレス帳と必要でないアドレス帳がある場合の画面例である。この設定画面では、ライセンスの取得(S906)に失敗する間、画面内で参照するアドレス帳のうち、デバイスのアドレス帳(ライセンスが必要なアドレス帳)が使用不可であること、またライセンスの確認中を示す文言を表示しているUIの一例を示す。
1004は、ライセンス取得の再試行中(S906)にライセンス取得に成功した場合に1003で示すアドレス帳のDisable状態が解除され、使用可となった状態のUIの一例を示す。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア(プログラム)を、ネットワーク又はコンピュータ読み取り可能な記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア(プログラム)を、ネットワーク又はコンピュータ読み取り可能な記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Claims (12)
- アプリケーションの起動時に、当該アプリケーションのライセンス方式がノードロック方式であるかフローティング方式であるかを判定する第1判定手段と、
前記第1判定手段で前記アプリケーションのライセンス方式がノードロック方式であると判定した場合、ノードロック方式のライセンスを取得したか否か判定する第2判定手段と、
前記第2判定手段でノードロック方式のライセンスを取得したと判定した場合もしくは前記第1判定手段でフローティング方式であると判定した場合は、ライセンスを必要とする機能を使用可とした状態のユーザインタフェースを表示するように初期化し、前記第2判定手段でノードロック方式のライセンスを取得しなかったと判定した場合は、前記ライセンスを必要とする機能を使用不可とした状態のユーザインタフェースを表示するように初期化する初期化手段と、
を有することを特徴とするクライアント装置。 - 前記第2判定手段は、前記第1判定手段で前記アプリケーションのライセンス方式がノードロック方式であると判定した場合、前記ノードロック方式のライセンスを既に取得済みか否か判定し、まだ取得していないと判定した場合は、ライセンス認証処理を実行することによりライセンスを取得したか否か判定することを特徴とする請求項1に記載のクライアント装置。
- 前記初期化手段で初期化されたユーザインタフェースを表示する表示手段と、
前記表示手段で表示されたユーザインタフェースの中からユーザーにより機能が選択された場合、当該選択された機能が前記ライセンスを必要とする機能で、且つ、前記ライセンス方式がフローティング方式である場合、ライセンスサーバーに対してフローティング方式のライセンスの取得を要求する要求手段と、
前記要求手段で要求したライセンスを前記ライセンスサーバーから取得した場合、前記選択された機能の処理を実行する実行手段と、
を更に有することを特徴とする請求項1または2のいずれかに記載のクライアント装置。 - 前記要求手段で要求したライセンスを取得できなかった場合、前記選択された機能の処理を実行せずに、エラー通知を行う通知手段を、更に有することを特徴とする請求項3に記載のクライアント装置。
- 前記要求手段で要求したライセンスを前記ライセンスサーバーから取得して、前記実行手段で前記選択された機能の処理の実行が完了した場合、前記ライセンスサーバーに前記取得したライセンスを返却する返却手段、を更に有することを特徴とする請求項3または4のいずれかに記載のクライアント装置。
- 前記表示手段は、ファイルが前記アプリケーションの画面にドラッグオーバーされるのに応じて、前記初期化手段で初期化されたユーザインタフェースを表示し、
前記表示されたユーザインタフェースに当該ドラッグオーバーされたファイルがドロップされるのに応じて、前記選択された機能を判定することを特徴とする請求項3に記載のクライアント装置。 - 前記アプリケーションが、前記第1判定手段と前記第2判定手段と前記初期化手段とを備えることを特徴とする請求項1に記載のクライアント装置。
- 前記アプリケーションと異なるライセンス管理部が、前記第1判定手段と前記第2判定手段とを備え、前記アプリケーションが前記初期化手段を備えることを特徴とする請求項1に記載のクライアント装置。
- 前記通知手段は、前記エラー通知を行った後、ライセンス取得に成功した場合、使用可能になったことを更に通知することを特徴とする請求項4に記載のクライアント装置。
- 請求項1乃至9のいずれか1項に記載のクライアント装置と、ライセンスサーバーとを含むライセンス管理システム。
- コンピュータを、請求項1乃至9のいずれか1項に記載のクライアント装置の各手段として機能させるためのプログラム。
- 装置の第1判定手段が、アプリケーションの起動時に、当該アプリケーションのライセンス方式がノードロック方式であるかフローティング方式であるかを判定する第1判定ステップと、
前記装置の第2判定手段が、前記第1判定ステップで前記アプリケーションのライセンス方式がノードロック方式であると判定した場合、ノードロック方式のライセンスを取得したか否か判定する第2判定ステップと、
前記装置の初期化手段が、前記第2判定ステップでノードロック方式のライセンスを取得したと判定した場合もしくは前記第1判定ステップでフローティング方式であると判定した場合は、ライセンスを必要とする機能を使用可とした状態のユーザインタフェースを表示するように初期化し、前記第2判定ステップでノードロック方式のライセンスを取得しなかったと判定した場合は、前記ライセンスを必要とする機能を使用不可とした状態のユーザインタフェースを表示するように初期化する初期化ステップと、
を有することを特徴とする装置のライセンス管理方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014246349A JP2016110346A (ja) | 2014-12-04 | 2014-12-04 | ライセンス管理システム、クライアント装置、ライセンス管理方法 |
DE102015015207.6A DE102015015207A1 (de) | 2014-12-04 | 2015-11-24 | Lizenzverwaltungsverfahren und -vorrichtung |
US14/955,974 US11204979B2 (en) | 2014-12-04 | 2015-12-01 | License management method and apparatus |
KR1020150171158A KR101992514B1 (ko) | 2014-12-04 | 2015-12-03 | 라이센스 관리 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014246349A JP2016110346A (ja) | 2014-12-04 | 2014-12-04 | ライセンス管理システム、クライアント装置、ライセンス管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016110346A true JP2016110346A (ja) | 2016-06-20 |
Family
ID=55974328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014246349A Pending JP2016110346A (ja) | 2014-12-04 | 2014-12-04 | ライセンス管理システム、クライアント装置、ライセンス管理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11204979B2 (ja) |
JP (1) | JP2016110346A (ja) |
KR (1) | KR101992514B1 (ja) |
DE (1) | DE102015015207A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180260539A1 (en) * | 2017-03-08 | 2018-09-13 | Microsoft Technology Licensing, Llc | Device specific identity linked to user account |
US10755269B1 (en) * | 2017-06-21 | 2020-08-25 | Noble Systems Corporation | Providing improved contact center agent assistance during a secure transaction involving an interactive voice response unit |
CN108132813B (zh) * | 2017-12-21 | 2021-07-23 | 北京小米移动软件有限公司 | 应用程序的功能锁定方法、装置及电子设备 |
US11693929B2 (en) * | 2018-02-13 | 2023-07-04 | Sony Corporation | Electronic device, information processing apparatus, information processing method, and information processing system |
US11146590B2 (en) * | 2018-04-19 | 2021-10-12 | Ncr Corporation | Omni-channel end-point security |
US20210182363A1 (en) * | 2019-12-11 | 2021-06-17 | The Boeing Company | Software license manager |
US20210223942A1 (en) * | 2020-01-17 | 2021-07-22 | Apple Inc. | Systems and methods for changing representations of applications based on application status |
US20210390645A1 (en) * | 2020-06-16 | 2021-12-16 | OSAAP America, LLC | Offline License Distribution Device |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5204897A (en) * | 1991-06-28 | 1993-04-20 | Digital Equipment Corporation | Management interface for license management system |
JPH07200492A (ja) | 1993-12-29 | 1995-08-04 | Csk Corp | ネットワーク上のソフトウェア使用権管理システム |
US5892900A (en) * | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5671412A (en) * | 1995-07-28 | 1997-09-23 | Globetrotter Software, Incorporated | License management system for software applications |
US20010011253A1 (en) * | 1998-08-04 | 2001-08-02 | Christopher D. Coley | Automated system for management of licensed software |
US20020067364A1 (en) * | 2000-06-22 | 2002-06-06 | Lane John F. | Method for browsing various intelligent design data abstractions |
JP4102045B2 (ja) * | 2001-09-28 | 2008-06-18 | 富士フイルム株式会社 | デスクトップ上の隠蔽ウインドウの表示制御方法および表示制御処理装置 |
US6915278B1 (en) * | 2002-03-22 | 2005-07-05 | Borland Software Corporation | License management method and system |
JP4625282B2 (ja) * | 2003-08-22 | 2011-02-02 | 株式会社リコー | 情報処理装置、ファイル操作方法、ファイル操作プログラム及び記録媒体 |
US7703142B1 (en) * | 2004-05-06 | 2010-04-20 | Sprint Communications Company L.P. | Software license authorization system |
US20060287959A1 (en) * | 2005-06-17 | 2006-12-21 | Macrovision Corporation | Software license manager employing license proofs for remote execution of software functions |
US7552399B2 (en) * | 2005-12-27 | 2009-06-23 | International Business Machines Corporation | Extensible icons with multiple drop zones |
US20080209393A1 (en) * | 2007-02-28 | 2008-08-28 | Tomas Evensen | System and method to automatically detect incompatible licensing models |
CH705457A1 (de) * | 2011-08-31 | 2013-03-15 | Ferag Ag | Generieren einer Benutzerschnittstelle auf einer Anzeige. |
JP5975666B2 (ja) * | 2012-02-15 | 2016-08-23 | キヤノン株式会社 | 情報処理装置、情報処理方法、及びプログラム |
US9081645B2 (en) * | 2013-01-15 | 2015-07-14 | International Business Machines Corporation | Software product licensing based on a content space |
-
2014
- 2014-12-04 JP JP2014246349A patent/JP2016110346A/ja active Pending
-
2015
- 2015-11-24 DE DE102015015207.6A patent/DE102015015207A1/de active Pending
- 2015-12-01 US US14/955,974 patent/US11204979B2/en active Active
- 2015-12-03 KR KR1020150171158A patent/KR101992514B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
US20160162668A1 (en) | 2016-06-09 |
KR101992514B1 (ko) | 2019-06-24 |
DE102015015207A1 (de) | 2016-06-09 |
US11204979B2 (en) | 2021-12-21 |
KR20160067769A (ko) | 2016-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2016110346A (ja) | ライセンス管理システム、クライアント装置、ライセンス管理方法 | |
CN110262725B (zh) | 信息处理装置、信息处理装置的控制方法和存储介质 | |
JP5653139B2 (ja) | ネットワークプリントシステム、クライアント端末、制御サーバ、印刷方法、およびプログラム | |
JP7086754B2 (ja) | 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム | |
JP6882064B2 (ja) | モバイル端末、モバイル端末の制御方法、プログラム、及び画像処理システム | |
JP6405263B2 (ja) | 印刷装置、携帯端末、印刷システム、及びその制御方法とプログラム | |
JP2012208617A (ja) | 画像形成システム、情報管理サーバおよび処理プログラム | |
JP2012216166A (ja) | 情報処理装置、その方法、及びプログラム | |
JP5230211B2 (ja) | 承認ワークフロー管理システム、印刷装置、印刷装置の制御方法及び制御プログラム | |
JP4305367B2 (ja) | 通信装置及び画像形成装置 | |
JP2019036369A (ja) | 情報処理装置、制御方法、及びプログラム | |
JP6362453B2 (ja) | 印刷システム、画像処理装置、情報処理方法及びプログラム | |
JP2015097356A (ja) | 通信システム、画像形成装置及びそれらの制御方法、並びにプログラム | |
JP2013196263A (ja) | 印刷システム、印刷装置、情報処理装置、印刷処理方法、およびプログラム | |
US9405490B2 (en) | Electronic apparatus, management server, print system and method of controlling printing including determining a plurality of storages to store print data | |
JP2014172394A (ja) | 印刷装置、プログラム及び印刷システム | |
JP2019074995A (ja) | 情報処理装置 | |
JP2007249327A (ja) | 情報処理装置、画像処理装置、画像処理システム、ジョブ処理方法、記憶媒体、プログラム | |
JP6302313B2 (ja) | 画像通信装置とその制御方法、及びプログラム | |
JP6195357B2 (ja) | 画像処理装置、その制御方法、及びプログラム | |
JP6226001B2 (ja) | 利用制御システム及び利用制御方法 | |
JP2013058010A (ja) | 画像処理システム、画像処理装置、画像形成装置およびプログラム | |
JP2017073035A (ja) | 情報処理装置およびその制御方法 | |
JP6575577B2 (ja) | 利用制御システム及び利用制御方法 | |
JP5676921B2 (ja) | サーバ装置及びその制御方法、システム |