(57)【要約】【課題】ノードロック方式およびフローティング方式の両方に対応するアプリケーションで、ライセンスの取得タイミングを適切に管理する。【解決手段】アプリケーションの起動時に、ライセンス方式がノードロック（ＮＬ）方式であるかフローティング（ＦＬ）方式であるかを判定する。そして、ＮＬ方式であると判定した場合は、ＮＬ方式のライセンスを取得したか否か更に判定する。ＮＬ方式のライセンスを取得した場合は、ライセンスを必要とする機能を使用可とした状態のユーザインタフェースを表示するように初期化する一方、ＮＬ方式のライセンスを取得しなかった場合は、ライセンスを必要とする機能を使用不可とした状態のユーザインタフェースを表示するように初期化する。また、ライセンス方式がＦＬ方式であると判定した場合は、ライセンスを必要とする機能を使用可とした状態のユーザインタフェースを表示するように初期化する。【選択図】  図５
2016110346.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションの起動時に、当該アプリケーションのライセンス方式がノードロック方式であるかフローティング方式であるかを判定する第１判定手段と、
前記第１判定手段で前記アプリケーションのライセンス方式がノードロック方式であると判定した場合、ノードロック方式のライセンスを取得したか否か判定する第２判定手段と、
前記第２判定手段でノードロック方式のライセンスを取得したと判定した場合もしくは前記第１判定手段でフローティング方式であると判定した場合は、ライセンスを必要とする機能を使用可とした状態のユーザインタフェースを表示するように初期化し、前記第２判定手段でノードロック方式のライセンスを取得しなかったと判定した場合は、前記ライセンスを必要とする機能を使用不可とした状態のユーザインタフェースを表示するように初期化する初期化手段と、
を有することを特徴とするクライアント装置。
【請求項２】
前記第２判定手段は、前記第１判定手段で前記アプリケーションのライセンス方式がノードロック方式であると判定した場合、前記ノードロック方式のライセンスを既に取得済みか否か判定し、まだ取得していないと判定した場合は、ライセンス認証処理を実行することによりライセンスを取得したか否か判定することを特徴とする請求項１に記載のクライアント装置。
【請求項３】
前記初期化手段で初期化されたユーザインタフェースを表示する表示手段と、
前記表示手段で表示されたユーザインタフェースの中からユーザーにより機能が選択された場合、当該選択された機能が前記ライセンスを必要とする機能で、且つ、前記ライセンス方式がフローティング方式である場合、ライセンスサーバーに対してフローティング方式のライセンスの取得を要求する要求手段と、
前記要求手段で要求したライセンスを前記ライセンスサーバーから取得した場合、前記選択された機能の処理を実行する実行手段と、
を更に有することを特徴とする請求項１または２のいずれかに記載のクライアント装置。
【請求項４】
前記要求手段で要求したライセンスを取得できなかった場合、前記選択された機能の処理を実行せずに、エラー通知を行う通知手段を、更に有することを特徴とする請求項３に記載のクライアント装置。
【請求項５】
前記要求手段で要求したライセンスを前記ライセンスサーバーから取得して、前記実行手段で前記選択された機能の処理の実行が完了した場合、前記ライセンスサーバーに前記取得したライセンスを返却する返却手段、を更に有することを特徴とする請求項３または４のいずれかに記載のクライアント装置。
【請求項６】
前記表示手段は、ファイルが前記アプリケーションの画面にドラッグオーバーされるのに応じて、前記初期化手段で初期化されたユーザインタフェースを表示し、
前記表示されたユーザインタフェースに当該ドラッグオーバーされたファイルがドロップされるのに応じて、前記選択された機能を判定することを特徴とする請求項３に記載のクライアント装置。
【請求項７】
前記アプリケーションが、前記第１判定手段と前記第２判定手段と前記初期化手段とを備えることを特徴とする請求項１に記載のクライアント装置。
【請求項８】
前記アプリケーションと異なるライセンス管理部が、前記第１判定手段と前記第２判定手段とを備え、前記アプリケーションが前記初期化手段を備えることを特徴とする請求項１に記載のクライアント装置。
【請求項９】
前記通知手段は、前記エラー通知を行った後、ライセンス取得に成功した場合、使用可能になったことを更に通知することを特徴とする請求項４に記載のクライアント装置。
【請求項１０】
請求項１乃至９のいずれか１項に記載のクライアント装置と、ライセンスサーバーとを含むライセンス管理システム。
【請求項１１】
コンピュータを、請求項１乃至９のいずれか１項に記載のクライアント装置の各手段として機能させるためのプログラム。
【請求項１２】
装置の第１判定手段が、アプリケーションの起動時に、当該アプリケーションのライセンス方式がノードロック方式であるかフローティング方式であるかを判定する第１判定ステップと、
前記装置の第２判定手段が、前記第１判定ステップで前記アプリケーションのライセンス方式がノードロック方式であると判定した場合、ノードロック方式のライセンスを取得したか否か判定する第２判定ステップと、
前記装置の初期化手段が、前記第２判定ステップでノードロック方式のライセンスを取得したと判定した場合もしくは前記第１判定ステップでフローティング方式であると判定した場合は、ライセンスを必要とする機能を使用可とした状態のユーザインタフェースを表示するように初期化し、前記第２判定ステップでノードロック方式のライセンスを取得しなかったと判定した場合は、前記ライセンスを必要とする機能を使用不可とした状態のユーザインタフェースを表示するように初期化する初期化ステップと、
を有することを特徴とする装置のライセンス管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションのライセンス管理に関する。
【背景技術】
【０００２】
有償アプリケーションをクライアントに使用許諾する方法として、ノードロック方式及びフローティング方式がある。ノードロック方式は、クライアントがメインライセンスサーバーからライセンスを直接取得する方式で、ライセンスはアプリケーションのインストールされている当該クライアントマシンに固定される。一方、フローティング方式は、予め一定数のライセンス（同時利用可能な数のライセンス）をプールしているローカルライセンスサーバがクライアントにライセンスを一時的に貸し出すことにより、クライアントが一時的にアプリケーションを使用可能にする方式である。フローティング方式で管理されるフローティングライセンスは、各クライアントで該当するアプリケーションの使用が終わればローカルライセンスサーバに返却される。そのため、他のクライアントが当該返却されたライセンスを取得することにより、同じアプリケーションを別のクライアント上で使用することができる。このようなフローティングライセンスを用いて、各クライアントがアプリケーションを使用する時間帯をずらせば、プールしているライセンス数以上の複数のクライアント上で当該アプリケーションを利用することが可能となる。フローティング方式は、アプリケーション起動時にライセンス認証や取得を行い、終了時にライセンスを返却する使い方が一般的である。また、アプリケーションの使用許諾方法として、このノードロック方式、フローティング方式の両方に対応することが可能なアプリケーションも存在し、このようなアプリケーションでは、ユーザーの用途に応じてどちらかの方式を選択して利用することが可能である。
【０００３】
また、特許文献１では、クライアントアプリケーションの起動要求があると、クライアント側の使用権管理部がライセンスサーバーと通信する。ライセンスサーバーは該当ソフトウェアの使用者数がライセンス数に満たなければ使用を許可し、使用権管理部は使用が許可されたらアプリケーションを実行する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０７−２００４９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のようなフローティング方式のライセンス管理では、アプリケーションの起動から終了までの間、ライセンスを占有する。一方、アプリケーションには、クライアントの電源がＯＮの間、常に起動し、要求に応じて処理を実行する常駐型のアプリケーションがある。このような常駐型のアプリケーションに対して、アプリケーションの起動時にフローティングライセンスを取得する特許文献１のような方式を適用すると、常駐状態でもライセンスが消費されてしまう。その結果、常駐アプリケーションの機能を実際に使用中か否かに関わらず、アプリケーションを常駐状態で起動しているユーザーが多くなると、ライセンスが枯渇し、その他のユーザーがアプリケーションを利用できなくなってしまう。そこで、本発明では、フローティング方式のライセンス管理を行う場合、アプリケーションの機能を使用する際にライセンスを取得することを目的とする。
【０００６】
また、アプリケーションによっては、ライセンスを取得している場合は当該アプリケーションが備える複数の機能の全てを利用可能とする一方、ライセンスを取得していない場合は複数の機能のうちの一部を制限するアプリケーションがある。このようなアプリケーションでは、ライセンスが無い場合に該一部の機能を使用できないことを表示するために、操作メニュー等のＵＩ（ユーザインタフェース）を表示する際にその一部を無効化して表示する（例えば使用できない機能をグレーアウトして表示する）。このようなアプリケーションにノードロック方式のライセンス管理を適用する場合、アプリケーション起動時にライセンスを確認し、ライセンス無効の場合に使用できない機能のＵＩをグレーアウト表示すれば、ユーザーはメニューを表示させた際に使用できない機能を認識できる。一方、このような起動時にライセンスを確認してＵＩ表示を変更するアプリケーションに対してフローティング方式のライセンス管理を適用しようとすると、アプリケーション起動時にフローティングライセンスを取得可能かどうか確認する必要が生じ、上述したように常駐アプリケーションには適さない。また、操作メニュー等のＵＩを表示する時点でフローティングライセンスを取得可能かどうか確認して使用できない機能のＵＩを無効化するような構成にすると、操作メニュー等を表示させるたびに、ライセンスの確認処理が発生してしまいＵＩの表示レスポンスが悪くなってしまう。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のクライアント装置は、アプリケーションの起動時に、当該アプリケーションのライセンス方式がノードロック方式であるかフローティング方式であるかを判定する第１判定手段と、前記第１判定手段で前記アプリケーションのライセンス方式がノードロック方式であると判定した場合、ノードロック方式のライセンスを取得したか否か判定する第２判定手段と、前記第２判定手段でノードロック方式のライセンスを取得したと判定した場合もしくは前記第１判定手段でフローティング方式であると判定した場合は、ライセンスを必要とする機能を使用可とした状態のユーザインタフェースを表示するように初期化し、前記第２判定手段でノードロック方式のライセンスを取得しなかったと判定した場合は、前記ライセンスを必要とする機能を使用不可とした状態のユーザインタフェースを表示するように初期化する初期化手段と、を有することを特徴とする。
【発明の効果】
【０００８】
このノードロック方式およびフローティング方式の両方に対応するアプリケーションにおいて、ライセンスの取得タイミングを適切に管理することで、ユーザーの利便性を向上する。
【図面の簡単な説明】
【０００９】
【図１】システムの構成を示す図
【図２】ハードウェア構成を示す図
【図３】クライアントのソフトウェア構成を示す図
【図４】ライセンスサーバーのソフトウェア構成を示す図
【図５】第１実施形態の処理のフロー図
【図６】ＵＩ図
【図７】第２実施形態のクライアントのソフトウェア構成を示す図
【図８】第２実施形態の常駐型アプリケーションの場合のフロー図
【図９】第２実施形態の非常駐型アプリケーションの場合のフロー図
【図１０】第３実施形態の処理のフロー図
【図１１】第３実施形態のＵＩ図
【発明を実施するための形態】
【００１０】
＜＜第１実施形態＞＞
［システム構成］
図１は、本発明の第１実施形態におけるライセンス管理システムの構成を示す図である。本実施形態は、ライセンスサーバーと複数のクライアント装置とが、ネットワークを介して通信可能なシステムである。
【００１１】
クライアント装置（クライアント１１０及び１１１）には、ノードロックおよびフローティングの両方のライセンス方式に対応するアプリケーションがインストールされている。このアプリケーションは、ライセンスを用いて使用許諾を受けることによって、機能の一部または全体にかかっている使用制限が解除され、利用可能となる。ノードロック方式でライセンスを取得する場合、アプリケーションは、メインライセンスサーバー（不図示）に対してライセンスの取得要求を行う。一方、フローティング方式でライセンスを取得する場合、アプリケーションは、ライセンスサーバー１２０に対してライセンスの取得要求を行う。
【００１２】
ライセンスサーバー１２０は、クライアント１１０（及び１１１）内で動作するアプリケーションに、フローティング方式のライセンスの貸し出しを行うライセンスサーバー（すなわち、複数のライセンスをプールしているローカルのライセンスサーバー）である。貸出可能なライセンスは、予めメインライセンスサーバー（不図示）等から取得しているものとする。
【００１３】
フローティング方式とは、ライセンスの使用権を一時的に要求するクライアントに貸し出すものである。各クライアントでは予めアプリケーションをインストールしておき、利用する際にライセンスをライセンスサーバー１２０から借りることで、当該アプリケーションを利用することができる。利用が完了したら、借りていたライセンスを返却することで、他のクライアントユーザも、同じライセンスで同じアプリケーションの利用が可能となることから、ライセンス数以上のクライアントで当該アプリケーションの共有利用が可能となっている。なお、ライセンスを貸与する際、ライセンスファイルを受け渡ししてもよいし、単に使用権だけを与えてどのクライアントが使用権を持っているかを管理してもよい。
【００１４】
ＬＡＮ１００は、クライアント１１０（１１１）とライセンスサーバー１２０を通信可能とするＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）であるが、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）であっても構わない。
【００１５】
［ハードウェア構成］
図２は、図１に示したクライアント１１０（及び１１１）、及びライセンスサーバー１２０のハードウェア構成を示す図である。図２において、キーボードやポインティングデバイスなどのユーザー操作入力を受信する入力デバイス２０５が設けられている。さらに、ユーザーに視覚的な出力情報フィードバックを与える表示部２０２を備える。さらに、本実施形態における各種プログラムや各種データを記憶する記憶デバイス（ＲＡＭ  ２０３，ＲＯＭ  ２０４，ＨＤＤ（ハードディスクドライブ）などの外部メモリ２０６）が設けられる。さらに、外部機器との通信を行うインターフェースデバイスＩ／Ｏ２０７を備え、プログラム実行を行うＣＰＵ２０１を備える。クライアント及びライセンスサーバーのＣＰＵ２０１は、ＲＯＭ２０４または外部メモリ２０６に保存されたプログラムをＲＡＭ２０３に読み出し、当該読み出したそれぞれのプログラムを実行することにより、後述する図３のクライアントおよび図４のライセンスサーバーそれぞれの各処理部として機能する。なお、クライアント１１０とライセンスサーバー１２０及びメインライセンスサーバー（不図示）は、インターフェースデバイスＩ／Ｏ２０７を介して互いに通信を行う。
【００１６】
［ソフトウェア構成］
図３は、クライアント１１０上で実行されるアプリケーション３００のソフトウェア構成の一例を示す図である。アプリケーション３００は、クライアント１１０にインストールされている。
【００１７】
入力部３０１は、ユーザーからの操作を受け付け、入力された要求を管理部３０２に伝える。
【００１８】
入力部３０１でユーザーからアプリケーションの起動要求を受けた場合、管理部３０２はライセンス方式判定部３０４に対し、アプリケーションのライセンス方式の判定を指示する。ライセンス方式判定部３０４は、アプリケーションのライセンス方式をアプリケーションのライセンス設定情報（不図示）を参照することで判定する。ライセンス設定情報（不図示）は、クライアント１１０内の外部メモリ２０６に設定情報として予め保存される構成であっても、メインライセンスサーバー（不図示）に問い合わせて得る構成であっても良い。ライセンス方式判定部３０４は、判定結果のライセンス方式を管理部３０２へ返却する。管理部３０２は、判定結果のライセンス方式をライセンス取得部３０５へ渡し、ライセンスの取得処理の実行を指示する。
【００１９】
ライセンス取得部３０５は、受け付けたライセンス方式に応じて、ライセンスの取得処理を実行する。受け付けたライセンス方式がノードロック方式の場合、ライセンス認証を実行し、その結果を管理部３０５に返却する。ここでのライセンス認証は、ノードロックライセンスの認証が未認証の場合に、メインライセンスサーバー（不図示）に対してライセンスの取得要求を行うことで実行される。なお、既にノードロックライセンスが認証済みで当該クライアント内にノードロックライセンスの取得情報が保存されている場合は、認証済みの結果を管理部３０５に返却する。一方、受け付けたライセンス方式がフローティング方式の場合、この時点（アプリケーション起動時）では、ライセンス取得部３０５は、ライセンス取得処理を実行せずに、ライセンスを有効として結果を管理部３０２に返却する。フローティングライセンスを有効とすることで、アプリケーションの各機能を使用可の状態でＵＩ（ユーザインタフェース）の表示等を行い、その後、ユーザーにより操作指示が為されて実際に処理を実行する時点でライセンスの取得処理を行うように制御する。
【００２０】
管理部３０２はライセンス取得部３０５からライセンス取得結果を受け付けると、その結果に応じて、アプリケーションの初期化を行う。具体的には、ライセンスの取得結果が有効であった場合、アプリケーションの全機能を使用可とした状態のＵＩ（ユーザインタフェース）を表示するようにＵＩを初期化する。一方、ライセンスの取得結果が無効であった場合、無償で提供する機能を使用可とし、且つ有償で提供する機能の使用を不可とした状態のＵＩ（すなわち一部の機能を使用不可としたユーザインタフェース）を表示するようにＵＩを初期化する。
【００２１】
また、入力部３０１でユーザーからアプリケーションに対する処理の実行要求を受けた場合、起動時と同様にして、管理部３０２はライセンス方式判定部３０４に対し、アプリケーションのライセンス方式の判定を指示し、ライセンス方式の判定結果を受け付ける。管理部３０２は、判定結果のライセンス方式をライセンス取得部３０５へ渡し、ライセンスの取得処理の実行を命ずる。
【００２２】
ライセンス取得部３０５は、受け付けたライセンス方式に応じて、ライセンス取得処理を実行する。受け付けたライセンス方式がノードロック方式の場合、アプリケーション起動時に実行した認証結果を返却する。一方、受け付けたライセンス方式がフローティング方式の場合、ライセンス取得部３０５は、ライセンスサーバー１２０に対してライセンスの取得を要求し、その取得結果を管理部３０２に返却する。
【００２３】
なお、ライセンス取得要求に対するライセンスサーバー１２０からのレスポンスは、ライセンスファイルそのものであってもよいし、使用権限であってもよい。使用権限の場合は、ライセンスサーバー１２０では、どのクライアントに使用権限を貸与したかを管理する。このような、ライセンスの取得や貸与、使用権限のみのステータスの変更に関わらず、クライアント１１０がライセンスサーバー１２０からライセンス（使用権）を獲得することを、本実施例ではライセンスのチェックアウトと呼ぶ。また、返却にはライセンスファイルの送信や使用権限ステータスの返却処理など異なる方法があり得るが、その方法に関わらず、クライアント１１０がライセンスサーバー１２０にライセンス（使用権）を返却することを、本実施例ではライセンスのチェックインと呼ぶ。
【００２４】
管理部３０２は、ライセンス取得部３０５から取得結果を受け付けると、その結果に応じて、受け付けた処理要求が実行可能か否か判断する。ライセンスが有効である場合、処理要求を実行可と判断して、処理実行部３０３に対して処理の実行を指示する。処理実行部３０３は入力部３０１によってアプリケーションが受け付けた処理要求に応じてその処理を実行する。一方、ライセンスが無効である場合、実行不可と判断して処理を実行しない。この場合、ユーザーに対してメッセージ等で通知してもよい。
【００２５】
処理が完了すると、処理実行部３０３は処理の完了を管理部３０２へ通知する。管理部３０２は処理完了を受け付けると、ライセンス返却部３０６に対し、ライセンスの返却要求を命ずる。ライセンス返却部３０６は、ライセンス方式判定部３０４によって判定済みのライセンス方式がフローティング方式の場合、ライセンスサーバー１２０に対して、ライセンスの返却を行う。
【００２６】
次にライセンスサーバー１２０について説明する。図４は、ライセンスサーバー１２０のソフトウェア構成の一例を示す図である。ライセンスサーバー１２０は、フローティングライセンス管理システムでクライアントとの接続運用を開始する前に、予めメインライセンスサーバーから１つ以上のライセンスを取得しているものとする。そのライセンスは、ライセンスプール４０４に格納されている。本システムでは、ライセンスプール４０４に取得済のライセンス数を上限に、クライアントからの要求に応じてライセンスの貸し出しを行うことができる。ライセンスカウンタ処理部４０３が管理するライセンスカウントは、初期値はライセンス総数（すなわち、同時使用可能なクライアント数）となる。以下に、各部の説明を行う。
【００２７】
ライセンスチェックアウト受信部４０１は、アプリケーション３００からのチェックアウト、チェックイン要求を受信し、管理部４０２に伝える。
【００２８】
管理部４０２は、チェックアウト要求を受けた場合、ライセンスカウンタ処理部４０３にライセンスカウントを問い合わせる。ライセンスカウントは、貸し出し可能なライセンスの残数を表しており、ライセンスカウントが１以上だった場合は、まだ貸し出し可能なライセンスが残っていることを意味する。この時、管理部４０２は、ライセンスカウンタ処理部４０３に、ライセンスカウントを−１（１デクリメント）するよう命じ、ライセンスプール４０４からライセンスをひとつ取得し、ライセンスチェックアウト受信部４０１へ成功ステータスとライセンスを返信する。
【００２９】
管理部４０２で取得したライセンスカウントが０だった場合は、これ以上貸し出し可能なライセンスは残っていないことを意味する。この時、管理部４０２は、失敗ステータスをライセンスチェックアウト受信部４０１へ返信する。
【００３０】
ライセンスチェックアウト受信部４０１は、ライセンス管理部３２０に、成否のステータスと、成功時にはライセンスを返信する（前述したように、チェックアウト処理にて実際のライセンスの授受を行わない場合は、使用権ステータスのみ処理する）。
【００３１】
次に、ライセンスチェックアウト受信部４０１がチェックイン要求を受信した場合、管理部４０２は、ライセンスカウンタ処理部に命じ、ライセンスカウントを＋１（１インクリメント）する。なお、ライセンスファイルの授受がある場合は、ライセンスプールにライセンスを戻す。
【００３２】
［ライセンス管理の処理］
図５は、アプリケーション３００、ライセンスサーバー１２０の処理フローを示した図である。
【００３３】
最初に、アプリケーション３００のライセンス取得時の処理フローについて説明する。Ｓ５０１にて、アプリケーション３００の入力部３０１は、アプリケーションの起動要求を受け付け、管理部３０２へ通知しアプリケーションの起動処理を開始する。Ｓ５０２にて、起動要求を受け付けた管理部３０２は、ライセンス方式判定部３０４に指示し、アプリケーションのライセンス方式としてフローティング方式とノードロック方式のいずれが指定されているかを判定する。なお、ライセンス方式はアプリケーショのインストール時や初回起動時などに、ユーザーの運用に応じて予め指定されているものとする。ライセンス方式がフローティング方式であると判定した場合は、Ｓ５０３に進んで、ライセンス取得部３０５はアプリケーションのライセンスを有効としてＳ５０８へ進む。一方、ライセンス方式がノードロック方式であると判定した場合は、Ｓ５０４に進んで、ライセンス取得部３０５にライセンスを既に取得済みかどうか問い合わせる。
【００３４】
Ｓ５０４において、問い合わせの結果、ライセンス取得済みと判定した場合は、Ｓ５０３でライセンス有効とした後、Ｓ５０８へ進む。一方、ライセンスが未取得であると判定した場合は、Ｓ５０５に進み、管理部３０２はライセンス取得部３０５にノードロック方式のライセンス認証処理を実行させ、ライセンス取得部３０５はその認証結果を管理部３０２へ返却する。Ｓ５０６にて、管理部３０２はライセンス認証処理の結果、ノードロックライセンスの取得に成功した場合、Ｓ５０３に進んで、アプリケーションのライセンスを有効としてＳ５０８へ進む。一方、Ｓ５０６においてライセンスの取得に失敗した場合は、Ｓ５０７に進んで、アプリケーションのライセンスを無効としてＳ５０８へ進む。なお、ここではノードロックライセンス未取得と判定した場合にライセンス認証を行う例を示したが、ライセンス認証は別のフローでのみ行うケースもある。そのようなケースでは、Ｓ５０４で認証済みでないと判断された場合、Ｓ５０７に進んでライセンス無効としてもよい。
【００３５】
Ｓ５０８において、管理部３０２は、アプリケーションのＵＩの初期化を行う。Ｓ５０３でライセンス有効とされた場合は、アプリケーションのＵＩを制限せずに、ＵＩの全てを実行可（Ｅｎａｂｌｅ）の表示状態にする。一方、Ｓ５０７でライセンス無効とされた場合は、アプリケーションの一部のＵＩ（例えば、有償の機能等のＵＩ）を実行不可（Ｄｉｓａｂｌｅ）の表示状態にする。Ｓ５０８でのアプリケーションのＵＩの初期化が完了すると、アプリケーションはユーザーからの操作を待ち受ける待機状態となる。待機状態のときに、入力部３０１が、アプリケーションに対するユーザーによる操作を受け付けることで、当該指示された操作に対応する処理を実行する。
【００３６】
Ｓ５０９において、ユーザーの操作により、入力部３０１が機能表示要求を受信すると、該機能表示要求を管理部３０２へ通知し、Ｓ５１０において、管理部３０２はアプリケーションの提供する機能を示すメニューを表示する。
【００３７】
Ｓ５１１にて、管理部３０２は、Ｓ５１０で表示したメニューにおいてユーザーの操作によりメニュー選択が為されて、入力部３０１から当該選択された機能の処理要求を受け付けると、管理部３０２は要求された処理の実行へ移る。
【００３８】
Ｓ５１２にて、管理部３０２は、当該要求された処理がライセンスを必要とする機能か否かを判断する。ライセンスを必要としない機能であると判定した場合は、Ｓ５２０へ進んで、当該要求された処理を実行する。一方、ライセンスを必要とする機能であると判定した場合は、Ｓ５１３へ進む。
【００３９】
Ｓ５１３にて、管理部３０２はライセンス方式判定部３０４に指示し、ライセンス方式を判定させる。ここでライセンス方式がノードロック方式のであると判定した場合はＳ５１８へ進み、アプリケーション起動時に処理したライセンスの認証結果を反映する。ただし、ノードロック方式の場合は、Ｓ５０８でアプリケーションのＵＩの初期化時に、使用不可の機能のＵＩは選択不可能になっているため、ここでの値は必ずライセンス有効となる。
【００４０】
Ｓ５１３でライセンス方式がフローティング方式であると判定した場合は、Ｓ５１４に進み、管理部３０２はライセンス取得部３０５へ指示して、ライセンスサーバー１２０に対してライセンスの取得要求を送信させる。ライセンスサーバー１２０からの取得要求に対する返信を受け付けると、ライセンス取得部３０５はその結果を管理部３０２へ通知する。Ｓ５１５において、管理部３０２は、ライセンス取得結果を参照し、ライセンスの取得に成功したと判定した場合、Ｓ５１６においてライセンスを有効とする。一方、Ｓ５１５においてライセンスの取得に失敗したと判定した場合は、Ｓ５１７においてライセンスを無効とする。
【００４１】
Ｓ５１９において、管理部３０２はライセンスが有効であったか無効であったかを判定する。管理部は、ライセンスが有効であると判定した場合、Ｓ５２０において、処理実行部３０３に指示して、当該要求された処理を実行させる。一方、管理部は、ライセンスが無効であると判定した場合、Ｓ５２１において当該要求された処理の実行を中止する。この際、ユーザーに対して、ライセンス取得不可のため処理の続行不可を示すメッセージを表示してエラー通知を行う（後述するように、図６の６０５のようなメッセージ例が表示される）。
【００４２】
Ｓ５２２で、管理部３０２はＳ５２０で実行された処理の完了を受け付けると、Ｓ５２３へ進み、ライセンス方式判定部３０４に指示し、ライセンス方式を判定する。ここでライセンス方式が、ノードロック方式であった場合は何も処理しない（Ｓ５２６）。一方、ライセンス方式がフローティング方式であった場合、Ｓ５２４に進んで、管理部がライセンス返却部３０６へ指示することにより、該ライセンス返却部３０６は、ライセンスサーバー１２０に対して、Ｓ５１４で取得していたライセンスの返却要求を送信して返却処理を行う。そして、Ｓ５２５にてライセンスサーバーからの返答を受信する。
【００４３】
Ｓ５２７において、アプリケーション３００は、ユーザーの操作に基づき入力部３０１からアプリケーションの終了要求を受け付けた場合は、アプリケーションを終了する。終了要求でない場合は、Ｓ５０９に戻って、次の操作指示が為されるのを待機する。
【００４４】
次にライセンスサーバー１２０の処理フローを説明する。
【００４５】
ライセンスサーバー１２０は、Ｓ５１４で送信されたライセンス取得要求を受信すると、Ｓ５５１において、ライセンスカウンタ処理部４０３が管理するライセンスカウントを確認することで、貸し出し可能なライセンスが残っているか判断する。
【００４６】
Ｓ５５１でライセンスが残っていると判断した場合、Ｓ５５２において、ライセンスカウンタ処理部４０３でライセンスカウントを−１（１デクリメント）する。そして、Ｓ５５３にて、ライセンス貸与可として取得結果を成功とし、Ｓ５５４にてライセンスチェックアウト受信部４０１は成功ステータスとライセンス情報をアプリケーション３００に返信する。一方、Ｓ５５１にてライセンスが残っていないと判断した場合、Ｓ５５４にて、ライセンスチェックアウト受信部４０１からアプリケーション３００に失敗ステータスを返信する。
【００４７】
また、Ｓ５２４で送信されたライセンス返却要求を受信すると、Ｓ５５５にて、ライセンスサーバー１２０のライセンスカウンタ処理部４０３は、ライセンスカウントを＋１（１インクリメント）する。これにより、ライセンスサーバー１２０で貸し出し可能なライセンスがひとつ復帰する。
【００４８】
以上が、アプリケーション３００およびライセンスサーバー１２０におけるライセンス管理処理フローである。このように、ライセンス方式がノードロック方式の場合には、アプリケーション起動時にライセンス認証を試み、その結果に応じてアプリケーション（ＵＩ）を初期化することで、ライセンス無効の場合の機能制限をＵＩに反映することができる。したがって、ノードロック方式の場合はアプリケーション起動時のライセンス認証の結果に応じて、処理の実行可否を判断してＵＩで機能制限するため、実行不可の機能をユーザーは容易に認識することができ、その機能を選択することはなくなる。
【００４９】
一方、ライセンス方式がフローティング方式の場合には、ライセンスを有効とみなしてアプリケーション（ＵＩ）を初期化することで、アプリケーション起動時はＵＩの制限が無い状態でＵＩを初期化する。このように構成することにより、操作メニューの表示レスポンスが良くなる。そして、アプリケーションの機能が選択されて実行する際に、当該選択された機能がライセンスが必要な機能であり、ライセンス方式がフローティング方式の場合は、ライセンスの取得を試み、その結果に応じて処理の実行可否を判断する。
【００５０】
これにより、ノードロック方式とフローティング方式のどちらのライセンス方式でも運用可能なアプリケーションを提供するとともに、フローティング方式でアプリケーションを使用する場合は、処理を実行する時点でライセンスを取得することで、ユーザーの利便性を向上する。
【００５１】
［ＵＩ図］
図６は、アプリケーション３００のＵＩの一例を示すＵＩ図である。アプリケーション３００は常駐型のアプリケーションであり、クライアント１１０にインストールされるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の起動時に、該アプリケーションも起動されるものとする。アプリケーション３００は起動するとクライアント１１０の表示部２０２にメイン画面６０１を表示する。図６の常駐アプリケーションのメイン画面６０１は、アイコンのような状態で表示され、ユーザーにより、ファイルがこのメイン画面上にドラッグ操作されると、操作メニューを表示し、当該ファイルがドロップされたメニューに応じた処理を実行する。６１１〜６１３は、アプリケーション３００がユーザーからの処理要求を受け付けてから処理を実行するまでの流れを模式的に示している。
【００５２】
説明図６１１において、６０２はファイルのアイコンを示し、６０３は入力デバイス２０５で表示部２０２上の位置を指すためのカーソルアイコンを示す。カーソルアイコン６０３でファイル６０２を選択し、当該選択したファイルをドラッグしてメイン画面６０１上に移動させて静止させる（ドラッグオーバー）と、アプリケーション３００は、当該アプリケーションの機能（メニュー）６０４を一覧表示する。説明図６１２は、ファイル６０２がメイン画面６０１上にドラッグオーバーされたときに表示されるメニュー６０４の例である、本実施例では、印刷、ファクス送信、印刷プレビュー、ＰＤＦ変換の機能メニューを表示している例を示している。本例は一例であり、アプリケーションの提供するその他の機能をメニュー表示しても良い。その後、説明図６１３に示すように、ユーザーがファイル６０２を所望の機能メニューの上に移動させ、カーソルアイコンの選択状態を解除する（ファイルをドロップ）すると、アプリケーション３００は該当する機能の処理を実行する。ライセンス方式がノードロック方式で、且つノードロックライセンスを取得している場合は、説明図６１３のようなメニューが表示される。また、ライセンス方式がフローティング方式の場合も、説明図６１３のようなメニューが表示される。
【００５３】
説明図６１４は、ファイルがドラッグオーバーされたときに、機能（メニュー）の一部が使用不可（Ｄｉｓａｂｌｅ）の状態で表示される例を示している。ライセンス方式がノードロック方式で、且つ、図５のＳ５０７でライセンスが無効とされた場合、一部の機能を制限して機能表示（図５のＳ５１０）する際のＵＩの一例である。
【００５４】
説明図６０５は、ライセンス方式がフローティング方式で、且つ、ユーザーによりライセンス必要な機能が選択された場合に、ライセンス取得に失敗した場合に、Ｓ５２１において、ユーザーにエラー通知する場合のメッセージ画面の例である。
【００５５】
ライセンス方式がフローティング方式の場合、処理実行から完了までの間、ライセンスを取得することで、必要以上にライセンスを占有しない。また、フローティング方式の場合、アプリケーション起動時はライセンス有効と見なしてＵＩ初期化を行い、且つ、処理実行時にライセンスを取得することで、操作メニューの表示レスポンス（ＵＩ初期化時のパフォーマンス）の低下を抑止する。
【００５６】
さらに、ライセンス方式がノードロック方式の場合は、アプリケーション起動時にライセンス認証してＵＩを初期化する。したがって、ライセンス無効の場合は、使用できる操作メニューと使用できない操作メニューとが区別されて表示されるので、ユーザーは操作の試行前に使用不可であることを認識できる。
【００５７】
＜＜第２実施形態＞＞
本実施形態では、第１の実施形態と同一の構成については同一の符号を用い、その説明を適宜省略する。
【００５８】
複数のアプリケーションが互いに連携するようなスイート製品では、アプリケーション群をセットにして利用可能にする必要がある。この場合、第一の実施形態で示す例ではライセンスに関する処理をアプリケーション毎に行う必要があり、アプリケーションの処理が複雑になる。例えば、常駐型アプリケーションと非常駐型アプリケーションが混在するアプリケーションセットを考える。常駐型アプリケーションは第１実施形態で説明したようにライセンスが必要となるタイミングが起動時と実処理開始時で異なり、非常駐型アプリケーションは起動時にライセンスが必要となる。また、複数のアプリケーションのライセンスを一括で管理する場合に、取得済みライセンスをアプリケーション間で共有する必要がある。
【００５９】
第２の実施形態は、ライセンス管理に関する処理を、各アプリケーション内部で行うのではなく、ライセンス管理部７２０で行うように構成した場合の実施例を示す。以下、図７のソフトウェア構成図、及び図８、図９のフロー図を用いて詳細に説明する。
【００６０】
［ソフトウェア構成図］
図７は、クライアント１１０上で実行されるアプリケーション７００のソフトウェア構成の一例を示す図である。
【００６１】
本実施例におけるアプリケーション７００の例では、アプリケーションの形態を常駐型アプリケーションと非常駐型アプリケーションに分けて説明する。常駐型アプリケーションはＯＳの起動に伴い、アプリケーションを起動し、ライセンスが無効の場合に使用できる機能を制限する。この場合、制限される機能は使用できないが、その他の機能は使用できる。非常駐型アプリケーションはユーザーによるアプリケーションの起動操作に起動し、ライセンスが無効の場合はアプリケーションの起動を中止する。アプリケーション７００は、クライアント１１０にインストールされる。
【００６２】
入力部７０１は、ユーザーからの操作を受け付け、入力された要求を管理部７０２に伝える。入力部７０１でアプリケーションの起動要求を受けた場合、管理部７０２へ通知し、管理部７０２はライセンス処理要求部７０４に対してライセンス取得を要求する。
【００６３】
ライセンス処理要求部７０４は、ライセンス取得要求を受け付けると、ライセンス管理部７２０のライセンス処理要求受信部７２１に対し、ライセンスの取得要求を行う。ここで、要求時に指定する情報として、初期化フラグを指定する。この初期化フラグは、主にＵＩ初期化のための呼び出しか否かを識別するためのものでＴｒｕｅの場合はＵＩ初期化のための呼び出し、Ｆａｌｓｅの場合はそれ以外での呼び出しを示す。アプリケーション７００が常駐型のアプリケーションである場合、初期化フラグをＴｒｕｅとし、非常駐型のアプリケーションの場合は初期化フラグをＦａｌｓｅとしてライセンス取得要求を実行する。ライセンス処理要求部７０４は、ライセンス管理部７２０からライセンスの取得結果を受け付けると、その結果を管理部７０２に返却する。
【００６４】
管理部７０２はライセンス処理要求部７０４から取得結果を受け付けると、その結果に応じて、アプリケーションの初期化を行う。常駐型のアプリケーションでは、ライセンスが有効である場合に全機能を使用可としてＵＩを初期化し、ライセンスが無効の場合に、一部の機能（有償の機能など）の使用を不可としてＵＩを初期化する。非常駐型のアプリケーションでは、ライセンスが有効の場合にアプリケーションを起動し、無効の場合にはアプリケーションの起動を中止する。起動を中止する場合、その旨をメッセージによりユーザーに通知してもよい。
【００６５】
また、入力部７０１でアプリケーションに対する処理の実行要求を受けた場合、管理部７０２に通知し、管理部７０２は処理実行部７０３に指示し、要求された処理を実行する。ここで、常駐型アプリケーションの場合は、要求された処理を実行する際にライセンスの取得要求を行い、当該ライセンスの取得可否に応じて、要求された処理の実行の可否を判断する。前述と同様にして、管理部７０２はライセンス処理要求部７０４に対し、ライセンスの取得を要求し、その結果に応じて、受け付けた処理要求が実行可能か否か判断する。ライセンスが有効で実行可と判断する場合に処理実行部７０３に対して処理の実行を指示する。ライセンスが無効で実行不可と判断する場合は処理を実行しない。この場合、ユーザーに対して処理続行が不可の旨をメッセージで通知してもよい。常駐型アプリケーションの場合、当該要求された処理が完了した際（またはユーザーがアプリケーションを終了した際）に、処理実行部７０３は処理の完了を管理部７０２へ通知する。管理部７０２は処理完了を受け付けると、ライセンス処理要求部７０４に対し、ライセンスの返却要求を行う。ライセンス処理要求部７０４は、ライセンス管理部７２０に対して、ライセンスの返却を行う。
【００６６】
次に、ライセンス管理部７２０の説明を行う。ライセンス管理部７２０は、アプリケーション７００とライセンスサーバー１２０との間でライセンスの管理を行う。ライセンス管理部７２０は、各アプリケーションからライセンス取得要求を受けた際は、ライセンスモードに応じた処理を行う。フローティング方式の場合、ライセンス管理部７２０は、他のアプリケーションからのライセンス要求によりライセンスを取得済みであるならば、即時成功を返し、未取得ならばライセンスサーバーからライセンス取得を試み、その結果を返す。各アプリケーションからライセンス返却要求を受けた際は、すべてのアプリケーションでの処理が終了したと判断した際に、ライセンスサーバー１２０にライセンスを返却する。ノードロック方式の場合は、ライセンス取得要求のみ処理し、ライセンス認証済みであればその結果を返却し、未認証であればライセンス認証を実行しその結果を返却する。以下に、各部の説明を行う。
【００６７】
ライセンス処理要求受信部７２１は、アプリケーション７００のライセンス処理要求部７０４からライセンス取得や返却の要求を受けると、管理部７２２に伝える。
【００６８】
管理部７２２は、ライセンス方式判定部７２４に指示しライセンス方式の判定を行う。ライセンス方式判定部７２４は、アプリケーションのライセンス方式をアプリケーションのライセンス設定情報（不図示）を参照することで判定する。ライセンス設定情報（不図示）は、クライアント１１０内の外部メモリ２０６に設定情報として保存される構成であっても、メインライセンスサーバー（不図示）に問い合わせて得る構成であっても良い。ライセンス方式判定部７２４は、判定の結果のライセンス方式を管理部７２２へ返却する。
【００６９】
管理部７２２は、受け付けたライセンス方式に応じて、ライセンス取得部７２５に指示し、ライセンスの取得処理を実行する。ライセンス方式がノードロック方式の場合、ライセンス取得部７２５に指示し、ライセンス認証処理を実行してその結果を返却する。ここでのライセンス認証は、メインライセンスサーバー（不図示）に対してライセンスの取得要求を行うことで実行される。尚、既にライセンスが認証済みの場合は、認証済みの結果を返却する。その結果をライセンス処理要求受信部７２１に渡し、アプリケーション７００に返却する。
【００７０】
ライセンスの方式が、フローティングの場合、管理部７２２は、要求カウンタ処理部７２３に要求カウントを問い合わせる。要求カウントは、複数のアプリケーション７００からから現在受けているライセンス取得要求の総数である。ここで要求カウントがゼロだった場合は、最初の要求であったことを意味するので、管理部７２２は、ライセンス取得部７２５にライセンス取得を命じる。ライセンス取得部７２５は、ライセンスサーバー１２０と接続し、ライセンスの取得要求を行う。ライセンスサーバー１２０は、ライセンス取得の成否に応じて成功または失敗のステータスを返却する。通常、利用可能なライセンスが残っていれば成功となる。
【００７１】
ライセンス取得部７２５は、ライセンスのチェックアウトの成否を管理部７２２に返信する。成功時、ライセンス監視目的でライセンス貸与中のサーバ・クライアント間のセッション維持が必要な場合は、ライセンス取得部７２５はライセンスサーバー１２０との接続を続ける。
【００７２】
管理部７２２は、ライセンス取得部３２５からの返信が成功だった場合、要求カウンタ処理部７２４に命じて、要求カウントを＋１（１インクリメント）する。また、管理部７２２は、ライセンス処理要求受信部７２１に、成否の結果を返信する。
【００７３】
一方、ライセンス処理要求受信部７２１からの要求受付時に、要求カウントが既に１以上だった場合は、別のアプリケーションからの要求によってすでにライセンスを取得済であることを意味する。このとき、管理部７２２は、要求カウンタ処理部７２４に命じて要求カウントを＋１（１インクリメント）し、また、ライセンス処理要求受信部７２１に成功ステータスを返信する。その結果をライセンス処理要求受信部７２１に渡し、アプリケーション７００に返却する。
【００７４】
ライセンス処理要求受信部７２１は、アプリケーション７００のライセンス処理要求部７０４からライセンス返却要求を受けると、管理部７２２に伝える。管理部７２２は、ライセンス方式判定部７２４によって判定済みのライセンス方式に応じて、ライセンス方式がフローティングの場合に、ライセンスの返却処理を実行する。管理部７２２は、要求カウンタ処理部７２４に命じ、要求カウントを−１（１デクリメント）する。もしここで要求カウントがゼロになった場合、すべてのアプリケーションがライセンスを要する処理を終了したことを意味する。そこで管理部７２２は、ライセンス返却部７２６に、ライセンスの返却を命じる。
【００７５】
ライセンス返却部７２６は、ライセンスサーバー１２０に対し、ライセンスのチェックインを行う。また、ライセンスの監視は不要となるので、セッションの切断を行う。
【００７６】
なお、ライセンス管理部３２０は、アプリケーション７００と一体に形成して頒布してもよいし、アプリケーション７００とは独立に複数のアプリケーションに対して共通に使用できるようにしてもよい。
【００７７】
［ライセンス管理の処理］
図８および図９は、アプリケーション７００、ライセンス管理部７２０、ライセンスサーバー１２０の処理フローを示した図である。本実施形態を例に、処理の流れを説明する。
【００７８】
図８のフローは、アプリケーション７００が常駐型アプリケーションの場合の処理の流れを示す。
【００７９】
Ｓ８０１にて、アプリケーション３００の入力部７０１は、アプリケーションの起動要求を受け付け、管理部７０２へ通知しアプリケーションの起動処理を開始する。Ｓ８０２にて、起動要求を受信した管理部７０２は、ライセンス処理要求部７０４に対してライセンスの取得を指示する。ライセンス処理要求部７０４は、ライセンス管理部７２０に対してライセンス取得を要求し、その取得結果を管理部７０２へ通知する。取得要求時に、ライセンス取得要求の初期化フラグをＴｒｕｅとする。
【００８０】
Ｓ８０３で管理部７０２は、ライセンス取得結果を受け、ライセンスが有効の場合はＳ８０４へ進み、アプリケーションの全機能のＵＩを使用可とみなし、アプリケーションの初期化を行う。ここでの初期化は、具体的にはアプリケーションのＵＩを制限せずに全て実行可（Ｅｎａｂｌｅ）の状態で表示する処理を示す。ライセンスが無効の場合はＳ８０５へ進み、一部の機能を制限してアプリケーションを初期化する。ここでの初期化は、具体的にはアプリケーションの一部の機能（有償機能など）を実行するためのＵＩを実行不可（Ｄｉｓａｂｌｅ）の状態で表示する処理を示す。
【００８１】
Ｓ８０４またはＳ８０５によりアプリケーションの初期化を完了すると、アプリケーションはユーザーからの操作を待ち受ける待機状態となる。待機状態では、ユーザーによるアプリケーションへの操作を入力部７０１で受け付けることで処理を実行する。Ｓ８０６にて、入力部７０１でユーザーからの機能表示要求（機能メニュー表示要求）を受け付けると、該要求を管理部７０２へ通知する。Ｓ８０７にて、管理部７０２はアプリケーションの提供する機能を示すメニューを表示する。
【００８２】
Ｓ８０８にて、入力部７０１により、Ｓ８０７で表示したメニューに対する処理要求を受け付けると、該要求を管理部７０２へ通知する。Ｓ８０９にて、管理部７０２は要求された処理がライセンスを必要とする機能か否かを判断する。ライセンスを必要としない機能の場合は、Ｓ８１３へ進み要求された処理を実行する。一方、ライセンスを必要とする機能の場合、Ｓ８１０へ進み、ライセンス処理要求部７０４に対してライセンスの取得を指示する。ライセンス処理要求部７０４はライセンス管理部７２０に対してライセンス取得を要求する。このときライセンス取得要求の初期化フラグをＦａｌｓｅとして要求する。イセンス処理要求部７０４は、ライセンス取得処理の結果を管理部７０２へ通知する。
【００８３】
Ｓ８１１において、管理部７０２は、ライセンス取得結果を参照し、ライセンスの取得に成功した場合はライセンスを有効とみなし、Ｓ８１３へ進み要求された処理を実行する。ライセンスの取得に失敗した場合は、Ｓ８１２で、ライセンスを無効と見無し処理の続行をキャンセルする。この際、ユーザーに対して、ライセンス取得不可のため処理の続行不可を示すメッセージ（例えば、図６の６０５）を表示する。
【００８４】
Ｓ８１３の処理は、処理実行部７０３によって実行する。処理が完了すると処理完了を管理部７０２へ通知する。Ｓ８１４で、管理部７０２は処理完了を受け付けると、Ｓ８１５へ進み、ライセンス処理要求部７０４に対してライセンスの返却を指示する。ライセンス処理要求部７０４はライセンス管理部７２０に対してライセンス返却を要求し、その返却結果を管理部７０２へ通知する。
【００８５】
アプリケーション７００は、Ｓ８１６で入力部７０１によるアプリケーションの終了要求を受け付けると、アプリケーションを終了する。
【００８６】
次にライセンス管理部７２０の処理フローを説明する。ライセンス管理部７２０のライセンス処理要求受信部７２１は、アプリケーション７００によるライセンスの処理要求を受信すると、その要求に従ってライセンス取得、返却を処理する。
【００８７】
ライセンス処理要求受信部７２１はライセンスの取得要求を受けると、Ｓ８３１で、ライセンス方式判定部７２４に指示し、アプリケーションのライセンス方式を判定する。ライセンス方式がノードロック方式の場合に、Ｓ８３２の処理へ進む。
【００８８】
Ｓ８３２にて、管理部７２２はライセンス取得部７２４に問い合わせ、既にライセンス認証済みかどうかを判断する。ライセンス認証済みと判断した場合は、Ｓ８３４の処理へ移り、ライセンス処理要求受信部７２１に指示し、アプリケーション７００に対して認証済みの結果を返却する。Ｓ８３２でライセンスが未認証と判断した場合、Ｓ８３３の処理へ移る。Ｓ８３３にて、管理部７２２はライセンス取得部７２４へ指示し、ライセンス認証を実行し、その認証結果を管理部７２２へ返却する。Ｓ８３４で、管理部７２２はライセンス処理要求受信部７２１に指示し、アプリケーション７００に対して認証済みの結果を返却する。
【００８９】
Ｓ８３１の判定の結果、ライセンス方式がフローティング方式の場合には、Ｓ８３５の処理へ進む。Ｓ８３５で、管理部７２２はライセンス処理要求受信部７２１によって受け付けたアプリケーション７００からの取得要求の情報を参照し、初期化フラグの真偽を判定する。ここで初期化フラグがＴｒｕｅの場合は、Ｓ８３６へ進み、ライセンス処理要求受信部７２１に指示し、アプリケーション７００に対してライセンスを有効として結果を返却する。一方、初期化フラグがＦａｌｓｅの場合、Ｓ８３７の処理へ進む。
【００９０】
Ｓ８３７で、要求カウンタ処理部７２４が管理する要求カウントを確認し、アプリケーションセット内のいずれかのアプリケーションからの要求によって既にフローティングライセンスを取得済みか否か判断する。Ｓ８３７にて取得済と判断した場合、Ｓ８４０で、管理部７２２は要求カウンタ処理部７２４に指示して要求カウントを＋１（１インクリメント）し、Ｓ８４１で、ライセンス取得要求受信部７２１に指示し、アプリケーション７００に対して、ライセンスの取得結果（ライセンス有効）を返信する。
【００９１】
一方、Ｓ８３７にてライセンスを未取得と判断した場合、Ｓ８３８にて、管理部７２２はライセンス取得部７２５に指示し、ライセンスサーバー１２０に対してライセンスの取得要求を送信する。ライセンスサーバー１２０からの取得要求に対する返信を受け付けると、ライセンス取得部７２５はその結果を管理部７２２へ通知する。Ｓ８３９で、管理部７２２はライセンス取得結果を参照し、ライセンスの取得に成功した場合はライセンスを有効として、Ｓ８４０で要求カウンタ処理部７２４へ指示し要求カウントを＋１（１インクリメント）する。そして、Ｓ８４１で、ライセンス取得要求受信部７２１に指示し、アプリケーション７００に対して、ライセンスの取得結果（ライセンス有効）を返信する。ライセンスの取得に失敗した場合は、ライセンス取得要求受信部７２１に指示し、アプリケーション７００に対して、ライセンスの取得結果（ライセンス無効）を返信する。
【００９２】
また、Ｓ８１５でアプリケーション７００が送信したライセンスの返却要求を、ライセンス処理要求受信部７２１が受信した場合、Ｓ８４２で、管理部７２２は、ライセンス方式判定部７２４に指示し、アプリケーションのライセンス方式を判定する。ライセンス方式がノードロック方式の場合は何も処理しない（Ｓ８４３）。フローティング方式の場合には、Ｓ８４４の処理へ進み、要求カウンタ処理部７２４へ指示し要求カウントを−１（１デクリメント）する。Ｓ８４５にて、管理部７２２は要求カウントを参照し、カウントが１以上あると判断した場合、すなわち、ライセンス使用中のアプリケーションが存在する場合、これ以上何もせずに終了する。Ｓ８４５にて、要求カウントが０だと判断した場合、すなわち、ライセンス使用中のアプリケーションが存在しなくなった場合、管理部７２２はＳ８４６にて、ライセンス返却部７２６にライセンスの返却要求を送信し、Ｓ８４７にてライセンスサーバーからの返答を受信する。ライセンス返却部７２６はライセンスサーバー１２０へ、ライセンスの返却要求を送信する。
【００９３】
次にライセンスサーバー１２０の処理フローを説明する。
【００９４】
ライセンスサーバー１２０では、Ｓ８３８のライセンス取得要求に応じ、Ｓ８５１にて、ライセンスカウンタ処理部４０３が管理するライセンスカウントを確認することで、ライセンスが残っているか判断する。
【００９５】
Ｓ８５１にて残っていると判断した場合、Ｓ８５２にて、ライセンスカウンタ処理部４０３でライセンスカウントを−１（１デクリメント）する。また、Ｓ８５３にて、ライセンス貸与可とみなし取得結果を成功とし、Ｓ８５４にてライセンスチェックアウト受信部４０１は成功ステータスとライセンスをアプリケーション３００に返信する。Ｓ８５１にてライセンスが残っていないと判断した場合、Ｓ８５４にて、ライセンスチェックアウト受信部４０１からアプリケーション３００に失敗ステータスを返信する。
【００９６】
また、Ｓ８４６のライセンス返却要求に応じて、Ｓ８５４にて、ライセンスサーバー１２０のライセンスカウンタ処理部４０３は、ライセンスカウントを＋１（１インクリメント）する。これにより、ライセンスサーバー１２０で貸し出し可能なライセンスがひとつ復帰する。
【００９７】
以上が、プリケーション７００、ライセンス管理部７２０、ライセンスサーバー１２０の処理フローにおけるライセンス管理処理フローである。
【００９８】
図９のフローは、アプリケーション７００が非常駐型アプリケーションの場合の処理の流れを示す。尚、図中のライセンス管理部７２０及びライセンスサーバー１２０の処理は図８で説明済みの内容と同一のため省略する。
【００９９】
Ｓ８６１にて、アプリケーション７００の入力部７０１は、アプリケーションの起動要求を受け付け、管理部７０２へ通知しアプリケーションの起動処理を開始する。Ｓ８６２にて、起動要求を受け付けた管理部７０２は、ライセンス処理要求部７０４に対してライセンスの取得を指示する。ライセンス処理要求部７０４はライセンス管理部７２０に対してライセンス取得を要求する。このときライセンス取得要求の初期化フラグをＦａｌｓｅとする。そして、管理部７０２は、ライセンス処理要求部７０４を介してライセンス取得結果を受け、Ｓ８６３でライセンスが有効か無効か判断する。
【０１００】
Ｓ８６３でライセンスが無効と判断した場合はＳ８６５へ進み、アプリケーションの起動を中止する。また、メッセージを表示し、ユーザーに対してアプリケーションの起動不可の旨を通知する。
【０１０１】
Ｓ８６３でライセンスが有効と判断した場合はＳ８６４へ進み、アプリケーションのＵＩを表示する。Ｓ８６４でアプリケーションを起動してＵＩを表示すると、アプリケーションの提供する処理を実行する（Ｓ８６５）。ここでの処理は、アプリケーションの提供する任意の処理であり、本実施例における説明では特に限定しない。
【０１０２】
アプリケーション７００は、Ｓ８６６で入力部７０１によるアプリケーションの終了要求を受け付けると、Ｓ８６７でライセンス処理要求部７０４に対してライセンス返却を指示する。ライセンス処理要求部７０４はライセンス管理部７２０に対してライセンス返却を要求する。ライセンス返却後、Ｓ８６８でアプリケーションを終了する。
【０１０３】
以上により、ライセンス管理部７２０によってライセンス管理の処理を実行することで、複数のアプリケーションをセットにしてライセンス管理する場合も、アプリケーションのライセンス処理が複雑にならずに済む。また、各アプリケーションはライセンス方式によって適したタイミングでライセンス取得を実行できる。
【０１０４】
＜＜第３実施形態＞＞
これまでの実施形態で説明したように、常駐型のアプリケーションでライセンス方式がフローティング方式の場合は、ＵＩ初期化時に全機能使用可の状態のＵＩ表示とし、処理実行時にライセンス取得を試み、処理の実行後ライセンスを返却するように処理する。これにより、常駐時に不要にライセンスを保持せず、必要な場合のみライセンスを取得するように制御できる。但し、ライセンスの保持期間が処理の実行から完了までのため、次の操作実行までの間に他のユーザーによってライセンスが消費された場合など、操作のタイミングによって処理を実行できる場合とできない場合がある。第３実施形態では、アプリケーションは、処理実行時のライセンス取得に失敗した場合、ライセンスの取得を一定回数または一定期間試み、それによりライセンスの取得に成功した場合はライセンスの利用可能をユーザーに通知する。
【０１０５】
以下、図１０のフロー図を用いて詳細に説明する。
【０１０６】
［ライセンス取得の再試行処理］
図１０で示す処理は、常駐型アプリケーションを示すアプリケーション３００（または７００）の処理実行時のライセンス取得処理（Ｓ５１３（またはＳ８１０））に失敗した場合に実行される。本説明ではアプリケーション３００のソフトウェア構成を用いて説明する。
【０１０７】
アプリケーション３００の処理実行時のライセンス取得処理（Ｓ５１３）に失敗した場合、そのエラー処理として、一定回数、ライセンスの取得処理を試みる。Ｓ９０１で、管理部３０２は、ライセンス取得部３０５に指示しライセンスの取得を実行し、その取得結果を判定する（Ｓ９０２）。ライセンスの取得に成功した場合、本フローの処理を終了し、アプリケーション３００の処理実行へ進む。ライセンスの取得に失敗する場合、Ｓ９０３へ進み、Ｓ９０１の処理の試行回数が一定回数を超えているか判定する。一定回数は予めアプリケーションの設定値として決められた値でＵＩ等から変更できてもよい。一定回数を超えていない場合、再度ライセンスの取得（Ｓ９０１）を試みる。一定回数を超えた場合は、Ｓ９０４の処理へ進み、ユーザーに対して、ライセンス取得不可のため処理の続行不可を示すメッセージ（図６の６０５）を表示する。
【０１０８】
一定回数、ライセンス取得を試みてライセンス取得に成功しない場合、一定期間の間、一定間隔でライセンス取得を試みる。Ｓ９０５で、管理部３０２は、入力部３０１に対する操作で処理対象として指定されたファイルを解放する。具体的には、保持するファイルの位置情報を破棄し、またファイルを排他している場合はファイルの排他状態を解除する。
【０１０９】
その後、Ｓ９０６で管理部３０２はライセンス取得部３０５に指示し、ライセンスの取得を実行する。Ｓ９０７でその取得結果を判定し、ライセンスの取得に成功した場合、Ｓ９０８で管理部３０２は、ライセンスが使用可能になった旨を通知し、ＵＩの機能制限を解除し（図１１の１００２でＵＩの一例を示す）、本フローの処理を終了する。
【０１１０】
Ｓ９０７でライセンス取得に失敗する場合、Ｓ９０９で管理部３０２は一部の機能を制限するようＵＩに反映する（図１１の１００１でＵＩの一例を示す）。具体的にはアプリケーションの一部の機能（有償機能等）を実行するためのＵＩを実行不可（Ｄｉｓａｂｌｅ）とする処理を示す。常駐型アプリケーションでフローティング方式のライセンスを使用する場合、全機能を使用可としてＵＩを初期化するが、本処理によるライセンス取得の再試行中はＵＩ上に機能制限を反映することでユーザーによる不要な再試行を抑止できる。Ｓ９０９のＵＩ反映後、Ｓ９１０にて、管理部３０２は一定間隔の間、処理を待機状態とする。一定間隔の時間は予めアプリケーションの設定値として決められた値でＵＩ等から変更できてもよい。一定間隔経過後、Ｓ９１１で、ライセンス取得の試行を開始してからの時間が一定期間経過しているか否か判定する。一定期間の時間は予めアプリケーションの設定値として決められた値でＵＩ等から変更できてもよい。一定期間を経過していない場合、再度ライセンス取得を試みる（Ｓ９０６）。一定期間経過している場合、Ｓ９１２で管理部３０２はＳ９０９の処理で反映して機能制限を解除し、本フローの処理を終了する。
【０１１１】
［ＵＩ図］
図１１は、アプリケーションのＵＩの一例を示すＵＩ図である。図１０におけるＳ９０８でのライセンスが使用可能を通知するＵＩ、ＵＩの機能制限を解除した状態、Ｓ９０９における一部機能を制限した状態のＵＩの一例を示す。
【０１１２】
１００１は、機能（メニュー）の一部が使用不可（Ｄｉｓａｂｌｅ）の状態を示している。ライセンスの取得（Ｓ９０６）に失敗する間、一部機能を制限して機能表示（Ｓ９０９）する際のＵＩの一例を示す。図６の６１４と区別するため、Ｄｉｓａｂｌｅの表示を異なる表現（色や網掛け等）で行ってもよい。
【０１１３】
１００２は、ライセンス取得の再試行中（Ｓ９０６）にライセンス取得に成功した場合にユーザーにライセンスを使用できる旨を通知（Ｓ９０８）するＵＩの一例を示す。ユーザーは、この通知を見ることで操作可能となったことが分かるので、操作を再試行する（対象ファイルのドラッグ＆ドロップ）ことで所望する処理を実行できる。
【０１１４】
１００３は、機能の一部が使用不可（Ｄｉｓａｂｌｅ）の状態の別の一例を示している。ファクス送信を指定したときに表示される送信先の設定画面において、アドレス帳を参照して宛先を指定できるが、アドレス帳の種類に応じてライセンスが必要なアドレス帳と必要でないアドレス帳がある場合の画面例である。この設定画面では、ライセンスの取得（Ｓ９０６）に失敗する間、画面内で参照するアドレス帳のうち、デバイスのアドレス帳（ライセンスが必要なアドレス帳）が使用不可であること、またライセンスの確認中を示す文言を表示しているＵＩの一例を示す。
【０１１５】
１００４は、ライセンス取得の再試行中（Ｓ９０６）にライセンス取得に成功した場合に１００３で示すアドレス帳のＤｉｓａｂｌｅ状態が解除され、使用可となった状態のＵＩの一例を示す。
【０１１６】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア（プログラム）を、ネットワーク又はコンピュータ読み取り可能な記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2016110346.tif 000003
【図２】
2016110346.tif 000004
【図３】
2016110346.tif 000005
【図４】
2016110346.tif 000006
【図５】
2016110346.tif 000007
【図６】
2016110346.tif 000008
【図７】
2016110346.tif 000009
【図８】
2016110346.tif 000010
【図９】
2016110346.tif 000011
【図１０】
2016110346.tif 000012
【図１１】
2016110346.tif 000013