(57)【要約】      （修正有）【課題】複数のアプリケーションをセットにしてライセンス管理するフローティングライセンス管理システム、クライアント及びライセンス管理方法を提供する。【解決手段】複数のアプリケーション３００のうちの１つからライセンス取得要求が行われた場合、ライセンスサーバからライセンスを既に取得済みであるか判断し、ライセンスを取得済みでないと判断した場合、ライセンスサーバに対してライセンスのチェックアウト要求を行う。ライセンスサーバからライセンスのチェックアウトに成功した場合、もしくは、ライセンスサーバからライセンスを既に取得済みであると判断した場合、当該ライセンス取得要求を行ったアプリケーション３００に対してライセンス取得成功したことを通知する。【選択図】図３
2016110345.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションに対するライセンスを管理するクライアントであって、
前記複数のアプリケーションのうちの１つからライセンス取得要求が行われた場合、前記ライセンスサーバからライセンスを既に取得済みであるか判断する第１の判断手段と、
前記第１の判断手段でライセンスを取得済みでないと判断した場合、前記ライセンスサーバに対してライセンスのチェックアウト要求を行うチェックアウト要求手段と、
前記チェックアウト要求手段でチェックアウト要求を行った前記ライセンスサーバからライセンスのチェックアウトに成功した場合、もしくは、前記第１の判断手段でライセンスを既に取得済みであると判断した場合、当該ライセンス取得要求を行ったアプリケーションに対してライセンス取得成功したことを通知する通知手段と、
を有することを特徴とするクライアント。
【請求項２】
前記第１の判断手段は、前記複数のアプリケーションのうちの１つからライセンス取得要求が発行された場合、ライセンス取得を行ったアプリケーションの数を示すカウンタに基づいて、前記ライセンスサーバからライセンスを既に取得済みであるか判断することを特徴とする請求項１に記載のクライアント。
【請求項３】
前記チェックアウト要求手段でチェックアウト要求を行った前記ライセンスサーバからライセンスのチェックアウトに成功した場合、もしくは、前記第１の判断手段でライセンスを既に取得済みであると判断した場合に、前記カウンタをインクリメントするインクリメント手段を更に有することを特徴とする請求項２に記載のクライアント。
【請求項４】
前記複数のアプリケーションのうちの１つからライセンス返却要求が行われた場合、前記ライセンスを使用中の他のアプリケーションが存在するか否か判断する第２の判断手段と、
前記第２の判断手段で前記ライセンスを使用中の他のアプリケーションが存在しないと判断した場合、前記ライセンスサーバに対して前記ライセンスのチェックイン要求を行うチェックイン要求手段と、
を更に有することを特徴とする請求項１乃至３のいずれか１項に記載のクライアント。
【請求項５】
前記第２の判断手段は、前記複数のアプリケーションのうちの１つからライセンス返却要求が行われた場合、ライセンス取得を行ったアプリケーションの数を示すカウンタをデクリメントし、当該デクリメントしたカウンタに基づいて、前記ライセンスを使用中の他のアプリケーションが存在するか否か判断することを特徴とする請求項４に記載のクライアント。
【請求項６】
前記第２の判断手段は、前記ライセンスを使用中の他のアプリケーションが存在しないと判断した場合、一定時間の間待った後に、前記ライセンスを使用中の他のアプリケーションが存在するか否か再度判断し、
前記チェックイン要求手段は、前記第２の判断手段で前記ライセンスを使用中の他のアプリケーションが存在しないと再度判断した場合に、前記ライセンスサーバに対して前記ライセンスのチェックイン要求を行うことを特徴とする請求項４に記載のクライアント。
【請求項７】
前記第２の判断手段は、前記ライセンスを使用中の他のアプリケーションが存在しないと判断した場合、更に、別アプリケーションに対する処理を要求しているか判断し、別アプリケーションに対する処理を要求していると判断した場合は、第１の一定時間の間待った後に、前記ライセンスを使用中の他のアプリケーションが存在するか否か再度判断することを特徴とする請求項６に記載のクライアント。
【請求項８】
前記第２の判断手段は、前記ライセンスを使用中の他のアプリケーションが存在しないと判断した場合、更に、別アプリケーションに対する処理を要求しているか判断し、別アプリケーションに対する処理を要求していないと判断した場合は、第２の一定時間の間待った後に、前記ライセンスを使用中の他のアプリケーションが存在するか否か再度判断することを特徴とする請求項７に記載のクライアント。
【請求項９】
前記複数のアプリケーションのうちの１つからライセンス取得要求が行われた場合、トライアルライセンスを使用中であるか否かを判断する第３の判断手段を更に有し、
前記第１の判断手段は、前記第３の判断手段で前記トライアルライセンスを使用中でないと判断した場合に、前記ライセンスサーバからライセンスを既に取得済みであるか判断し、
前記通知手段は、前記チェックアウト要求手段でチェックアウト要求を行った前記ライセンスサーバからライセンスのチェックアウトに成功した場合、もしくは、前記第１の判断手段でライセンスを既に取得済みであると判断した場合、もしくは、前記第３の判断手段で前記トライアルライセンスを使用中であると判断した場合に、当該ライセンス取得要求を行ったアプリケーションに対してライセンス取得成功したことを通知することを特徴とする請求項１に記載のクライアント。
【請求項１０】
前記複数のアプリケーションは、スイート製品であることを特徴とする請求項請求項１乃至９のいずれか１項に記載のクライアント。
【請求項１１】
請求項１乃至１０のいずれか１項に記載のクライアントと、前記ライセンスサーバとを含むフローティングライセンス管理システム。
【請求項１２】
コンピュータを、請求項１乃至１０のいずれか１項に記載のクライアントの各手段として機能させるためのプログラム。
【請求項１３】
複数のアプリケーションに対するライセンスを管理する装置が実行するライセンス管理方法であって、
前記装置の第１の判断手段が、前記複数のアプリケーションのうちの１つからライセンス取得要求が行われた場合、前記ライセンスサーバからライセンスを既に取得済みであるか判断する第１の判断ステップと、
前記装置のが、前記第１の判断ステップでライセンスを取得済みでないと判断した場合、前記ライセンスサーバに対してライセンスのチェックアウト要求を行うチェックアウト要求ステップと、
前記装置の通知手段が、前記チェックアウト要求ステップでチェックアウト要求を行った前記ライセンスサーバからライセンスのチェックアウトに成功した場合、もしくは、前記第１の判断ステップでライセンスを既に取得済みであると判断した場合、当該ライセンス取得要求を行ったアプリケーションに対してライセンス取得成功したことを通知する通知ステップと、
を有することを特徴とするライセンス管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フローティングライセンスによるアプリケーションの使用許諾管理システムに関する。
【背景技術】
【０００２】
有償アプリケーションをクライアントに使用許諾する方法として、ノードロック方式とフローティング方式がある。ノードロック方式は、クライアントがメインライセンスサーバからライセンスを直接取得してそのクライアントでのみアプリケーションを使用可能にする方式である。一方、フローティング方式は、予め一定数のライセンス（同時利用可能な数のライセンス）をプールしているローカルライセンスサーバがクライアントに一時的にライセンスを貸し出すことにより、クライアントが一時的にアプリケーションを使用可能にする方式である。フローティング方式で管理されるフローティングライセンスは、各クライアントで該当するアプリケーションの使用が終わればローカルライセンスサーバに返却されるため、他のクライアントが当該返却されたライセンスを取得することにより、同じアプリケーションを別のクライアント上で使用することができる。このようなフローティングライセンスを用いて、各クライアントがアプリケーションを使用する時間帯をずらせば、プールしているライセンス数以上の複数のクライアント上で当該アプリケーションを利用することが可能となる。フローティングライセンスは、作業中は途切れずに保持し、作業後は速やかに返却することが望ましい。そのため、アプリケーション起動時にライセンスを取得し、終了時（プロセス終了時）に返却するという使い方が一般的である。
【０００３】
特許文献１では、クライアントアプリケーションの起動要求があると、クライアント側の使用権管理部がライセンスサーバと通信する。ライセンスサーバは該当ソフトウェアの使用者数がライセンス数に満たなければ使用を許可し、使用権管理部は使用が許可されたらアプリケーションを実行する。なお、特許文献１では、クライアント内に複数のクライアントアプリケーションが存在する場合、使用権管理部は、各アプリケーションをアプリケーションＩＤで区別し、アプリケーションＩＤごとに設けられた利用カウンタを用いてライセンス数に達しているかを判断している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０７−２００４９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、複数のアプリケーションが存在する場合は、アプリケーションごとに異なるライセンスで管理している。したがって、ライセンスの利用状況（すなわち、各アプリケーションを利用しているクライアントの数がライセンス数上限に達しているか否か）によって、使えるアプリケーションと使えないアプリケーションがあり得る。
【０００６】
一方、複数のアプリケーションが互いに連携するようなスイート製品では、アプリケーション群すべてを利用可能にする必要がある。しかしながら、特許文献１の技術は、複数のアプリケーションをアプリケーションＩＤごとに個別に管理して個別にライセンスを取得するので、利用状況によっては、アプリケーション群すべてを使用できない場合があり、複数のアプリケーションが互いに連携するような製品には適さない。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のクライアントは、複数のアプリケーションに対するライセンスを管理するクライアントであって、前記複数のアプリケーションのうちの１つからライセンス取得要求が行われた場合、前記ライセンスサーバからライセンスを既に取得済みであるか判断する第１の判断手段と、前記第１の判断手段でライセンスを取得済みでないと判断した場合、前記ライセンスサーバに対してライセンスのチェックアウト要求を行うチェックアウト要求手段と、前記チェックアウト要求手段でチェックアウト要求を行った前記ライセンスサーバからライセンスのチェックアウトに成功した場合、もしくは、前記第１の判断手段でライセンスを既に取得済みであると判断した場合、当該ライセンス取得要求を行ったアプリケーションに対してライセンス取得成功したことを通知する通知手段と、を有することを特徴とする。
【発明の効果】
【０００８】
複数のアプリケーションをセットにしてライセンス管理（使用許諾管理）することが可能となり、ユーザの利便性が向上する。
【図面の簡単な説明】
【０００９】
【図１】システムの構成を示す図
【図２】ハードウェア構成を示す図
【図３】クライアントのソフトウェア構成を示す図
【図４】ライセンスサーバのソフトウェア構成を示す図
【図５】実施例１の処理のフロー図
【図６】アプリケーション間連携を例示する図
【図７】情報メッセージ画面を例示する図
【図８】別の実施例の処理のフロー図
【発明を実施するための形態】
【００１０】
［実施例１］
＜システム構成＞
図１は、本発明の一実施形態におけるフローティングライセンス管理システムの構成を示す図である。本実施形態は、ライセンスサーバと複数のクライアントとが、ネットワークを介して通信可能なシステムである。
【００１１】
クライアント１１０（及び１１１）には、複数のアプリケーションがインストールされている。これらのアプリケーションは、ライセンスを用いて使用許諾を受けることによって、機能の一部または全体にかかっている使用制限が解除され、利用可能となる。
【００１２】
ライセンスサーバ１２０は、クライアント１１０（及び１１１）内で動作するアプリケーションに、フローティングライセンスの貸し出しを行うライセンスサーバ（複数のライセンスをプールしているローカルのライセンスサーバ）である。貸出可能なライセンスは、予めメインライセンスサーバ（不図示）等から取得しているものとする。
【００１３】
フローティングライセンス（以下、単にライセンス）とは、ライセンスの使用権を一時的に要求するクライアントに貸し出すものである。各クライアントでは予めアプリケーションをインストールしておき、利用する際にライセンスをライセンスサーバ１２０から借りることで、当該アプリケーションを利用することができる。利用が完了したら、借りていたフローティングライセンスを返却することで、他のクライアントユーザも、同じライセンスで同じアプリケーションの利用が可能となることから、ライセンス数以上のクライアントで当該アプリケーションの共有利用が可能となっている。なお、ライセンスを貸与する際、ライセンスファイルを受け渡ししてもよいし、単に使用権だけを与えてどのクライアントが使用権を持っているかを管理してもよい。
【００１４】
ＬＡＮ１００は、クライアント１１０（１１１）とライセンスサーバ１２０を通信可能とするＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）であるが、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）であっても構わない。
【００１５】
クライアント１１０には、互いに連携する複数のアプリケーションからなるアプリケーションセット（スイート製品）と、ライセンス管理部とがインストールされており、ひとつのライセンスでセット内のすべてのアプリケーションが利用可能となるものとする。本実施形態では、クライアント１１０にインストールされたアプリケーションセットが、ライセンスサーバ１２０から取得したフローティングライセンスによって動作する例を示す。
【００１６】
＜ハードウェア構成＞
図２は、図１に示したクライアント１１０（及び１１１）、及びライセンスサーバ１２０のハードウェア構成例を示す図である。図２において、キーボードやポインティングデバイスなどのユーザ操作入力を受信する入力デバイス２０５が設けられている。さらに、ユーザに視覚的な出力情報フィードバックを与える表示部２０２を備える。さらに、各種プログラムや各種データを保管する記憶デバイス（ＲＡＭ  ２０３，ＲＯＭ  ２０４，ＨＤＤ（ハードディスクドライブ）などの外部メモリ２０６）が設けられる。さらに、外部機器との通信を行うインターフェースデバイスＩ／Ｏ２０７を備え、プログラム実行を行うＣＰＵ２０１を備える。クライアント及びライセンスサーバのＣＰＵ２０１は、ＲＯＭ２０４または外部メモリ２０６に保存されたプログラムをＲＡＭ２０３に読み出し、当該読み出したそれぞれのプログラムを実行することにより、後述する図３のクライアントおよび図４のライセンスサーバそれぞれの各処理部として機能する。なお、クライアント１１０とライセンスサーバ１２０は、インターフェースデバイスＩ／Ｏ２０７を介して互いに通信を行う。
【００１７】
＜ソフトウェア構成＞
図３は、クライアント１１０上で実行される、アプリケーション３００及びライセンス管理部３２０のソフトウェア構成の一例を示す図である。
【００１８】
最初に、アプリケーション３００の説明を行う。アプリケーション３００は、クライアント１１０にインストールされたアプリケーションセットの中のひとつを表しているが、いずれのアプリケーションも同様の構成である。各アプリケーション特有の処理については各アプリケーションの処理実行部３０３によって異なる処理が実行されるが、ライセンスの取得および返却に関する構成部分（３０２，３０４，３０５）は、アプリケーションセットの中のいずれのアプリケーションも同様である。
【００１９】
入力部３０１は、ユーザからの操作を受け付け、入力された要求を管理部３０２に伝える。入力部３０１でアプリケーションの起動要求を受けた場合、管理部３０２はライセンスが必要になったと判断し、ライセンス取得要求部３０４に、ライセンスの取得を命ずる。なお、非アクティブ時（操作画面を開いていない等）にはライセンスが不要である常駐型アプリケーションの場合、入力部３０１でアクティブ指示を受けたときに同命令が発せられる。また、要ライセンス機能とライセンスフリー機能を共に持つアプリケーションの場合、入力部３０１で要ライセンス機能の使用指示を受けたときに同命令が発せられる。
【００２０】
ライセンス取得要求部３０４は、ライセンス管理部３２０のライセンス取得要求受信部３２１に対し、ライセンス取得要求を行う。ライセンス管理部３２０の詳細は後述するが、ここでは成功か失敗かのステータスが返却される。成功はライセンスを取得しており、失敗はライセンスを取得していないことを意味する。ライセンス取得要求部３０４は、ライセンス管理部３２０から返却された成功または失敗のステータスを、管理部３０２に返信する。
【００２１】
管理部３０２は、返信が成功だった場合は、入力部３０１で入力された要求に対応する処理（アプリケーションの起動や操作画面の表示、要ライセンス機能の実施）を処理実行部３０３に実行させる。また、管理部３０２は、各アプリケーションの機能の実行や操作画面での処理（ドキュメント編集や印刷等）を行う際は、処理実行部３０３へ命令する。また、管理部３０２は、ライセンス取得要求部３０４からの返信が失敗だった場合は、入力部３０１で入力された指示は実行しないように制御する。この場合、操作しているユーザに対してはメッセージ等で通知してもよい。
【００２２】
入力部３０１で入力された要求が、アプリケーションの終了（または画面クローズや要ライセンス機能の終了）だった場合、管理部３０２はライセンスが不要になったと判断し、ライセンス返却要求部３０５に、ライセンス返却手続きを命じる。ライセンス返却要求部３０５は、ライセンス管理部３２０のライセンス返却要求受信部３２２に、ライセンスの返却要求を行う。
【００２３】
また、入力部３０１で入力された要求が、アプリケーションセットの中の別のアプリケーション（連携対象のアプリケーション）での処理が必要であった場合、管理部３０２は、別アプリケーション通信部３０６に処理を命令する。別アプリケーション通信部３０６は、当該機能を有する別アプリケーションに対し、起動と処理の要求を送る。当該要求は、別アプリケーション３００の入力部３０１から入力される。
【００２４】
次に、ライセンス管理部３２０の説明を行う。ライセンス管理部３２０は、アプリケーション３００とライセンスサーバ４００との間でライセンスの管理を行う。ライセンス管理部３２０は、各アプリケーションからライセンス取得要求を受けた際に、ライセンスをライセンスサーバから既に取得済ならば即時成功を返し、未取得ならばライセンスサーバからライセンス取得を試み、その結果を返す。ライセンス管理部３２０は、各アプリケーションからライセンス返却要求を受けることにより、全てのアプリケーションが終了したと判断した際に、ライセンスサーバ１２０にライセンスを返却する。以下に、各処理部の説明を行う。
【００２５】
ライセンス取得要求受信部３２１は、ライセンス取得要求部３０４からライセンス取得要求を受けると、管理部３２３に伝える。管理部３２３は、要求カウンタ処理部３２４に要求カウントを問い合わせる。要求カウントは、アプリケーションセットの複数のアプリケーション３００から現在受けているライセンス取得要求の総数である。ここで要求カウントがゼロだった場合は、最初の要求であったことを意味するので、管理部３２３は、ライセンスチェックアウト要求部３２５にライセンス取得を命じる。ライセンスチェックアウト要求部３２５は、ライセンスサーバ１２０と接続し、ライセンスの取得要求を行う。ライセンスサーバ１２０の詳細は後述するが、ライセンス取得の成否に応じて成功または失敗のステータスを返却する。通常、利用可能なライセンスが残っていれば成功となる。
【００２６】
ここで、ライセンスサーバ１２０からのレスポンスは、ライセンスファイルそのものであってもよいし、使用権限であってもよい。使用権限の場合は、ライセンスサーバ１２０では、どのクライアントに使用権限を貸与したかを管理する。このような、ライセンスの取得や貸与、使用権限のみのステータスの変更に関わらず、クライアント１１０がライセンスサーバ１２０から使用権を獲得することを、本実施例ではライセンスのチェックアウトと呼ぶ。
【００２７】
ライセンスチェックアウト要求部３２５は、ライセンスのチェックアウトの成否を管理部３２３に返信する。成功時、ライセンス監視目的でライセンス貸与中のサーバ・クライアント間のセッション維持が必要な場合は、ライセンスチェックアウト要求部３２５はライセンスサーバ１２０との接続を続ける。
【００２８】
管理部３２３は、ライセンスチェックアウト要求部３２５からの返信が成功だった場合、要求カウンタ処理部３２４に命じて、要求カウントを＋１（１インクリメント）する。また、管理部３２３は、ライセンス取得要求受信部３２１に、成否の結果を返信する。
【００２９】
一方、管理部３２３は、ライセンス取得要求受信部３２１からの要求受付時に、要求カウントが既に１以上だった場合は、別のアプリケーションからの要求によってすでにライセンスを取得済であることを意味する。このとき、管理部３２３は、要求カウンタ処理部３２４に命じて要求カウントを＋１（１インクリメント）するとともに、ライセンス取得要求受信部３２１に成功ステータスを即時返信する。
【００３０】
また、ライセンス返却要求受信部３２２は、ライセンス返却要求部３０５からライセンス返却要求を受けると、管理部３２３に伝える。管理部３２３は、要求カウンタ処理部３２４に命じ、要求カウントを−１（１デクリメント）する。もしここで要求カウントがゼロになった場合、すべてのアプリケーションがライセンスを要する処理を終了したことを意味する。したがって、管理部３２３は、要求カウントがゼロになった場合、ライセンスチェックアウト要求部３２５に、ライセンスの返却を命じる。なお、返却にはライセンスファイルの送信や使用権限ステータスの返却処理など異なる方法があり得るが、その方法に関わらず、クライアント１１０がライセンスサーバ１２０から使用権を返却することを、本実施例ではライセンスのチェックインと呼ぶ。ライセンスチェックアウト要求部３２５は、ライセンスサーバ１２０に対し、ライセンスのチェックインを行う。また、ライセンスの監視は不要となるので、セッションの切断を行う。
【００３１】
なお、ライセンス管理部３２０は、アプリケーション３００と一体に形成して頒布してもよいし、アプリケーション３００とは独立に頒布し、複数のアプリケーションに対して共通に使用できるようにしてもよい。
【００３２】
図４は、ライセンスサーバ１２０のソフトウェア構成の一例を示す図である。ライセンスサーバ１２０は、フローティングライセンス管理システムでクライアントとの接続運用を開始する前に、予めメインライセンスサーバから１つ以上のライセンスを取得しているものとする。そのライセンスは、ライセンスプール４０４に格納されている。本システムでは、ライセンスプール４０４に取得済のライセンス数を上限に、クライアントからの要求に応じてライセンスの貸し出しを行うことができる。ライセンスカウンタ処理部４０３が管理するライセンスカウントは、初期値はライセンス総数（すなわち、同時使用可能なクライアント数）となる。以下に、各部の説明を行う。
【００３３】
ライセンスチェックアウト受信部４０１は、ライセンス管理部３２０からのチェックアウト要求およびチェックイン要求を受信し、管理部４０２に伝える。
【００３４】
管理部４０２は、チェックアウト要求を受けた場合、ライセンスカウンタ処理部４０３にライセンスカウントを問い合わせる。ライセンスカウントは、貸し出し可能なライセンスの残数を表しており、ライセンスカウントが１以上だった場合は、まだ貸し出し可能なライセンスが残っていることを意味する。この時、管理部４０２は、ライセンスカウンタ処理部４０３に、ライセンスカウントを−１（１デクリメント）するよう命じて、ライセンスプール４０４からライセンスをひとつ取得し、ライセンスチェックアウト受信部４０１へ成功ステータスとライセンスを返信する。
【００３５】
管理部４０２で取得したライセンスカウントが０だった場合は、これ以上貸し出し可能なライセンスは残っていないことを意味する。この時、管理部４０２は、失敗ステータスをライセンスチェックアウト受信部４０１へ返信する。
【００３６】
ライセンスチェックアウト受信部４０１は、ライセンス管理部３２０に、成否のステータスと、成功時にはライセンスを返信する（前述したように、チェックアウト処理にて実際のライセンスの授受を行わない場合は、使用権ステータスのみ処理する）。
【００３７】
ライセンスチェックアウト受信部４０１がチェックイン要求を受信した場合、管理部４０２は、ライセンスカウンタ処理部に命じ、ライセンスカウントを＋１（１インクリメント）する。なお、ライセンスファイルの授受がある場合は、ライセンスプールにライセンスを戻す。
【００３８】
＜ライセンス管理の処理＞
図５は、アプリケーション３００、ライセンス管理部３２０、ライセンスサーバ１２０の処理フローを示した図である。
【００３９】
最初に、ライセンス取得時の処理フローについて説明する。まず、アプリケーション３００では、Ｓ５０１にて、入力部３０１から要ライセンス機能の利用要求（例えば、非常駐型アプリケーションの起動や、常駐型アプリケーションのアクティブ化）があったかどうか判断する。要求があったと判断した場合、Ｓ５０２にて、アプリケーション３００のライセンス取得要求部３０４は、ライセンス管理部３２０に対してライセンス取得要求を発行する。
【００４０】
ライセンス管理部３２０は、ライセンス取得要求受信部３２１がＳ５０２で発行されたライセンス取得要求を受信すると、処理を開始する。なお、ライセンス管理部の初回起動時には、ライセンス取得を行ったアプリケーションの数を示す要求カウント（カウンタ）を０に初期化しているものとする（不図示）。なお、Ｓ５２１の処理は、後述する実施例４に係るものであるので、本実施例１では、Ｓ５２１の処理は行わずにＳ５２２に進む。Ｓ５２１における処理の詳細説明は、第４の実施形態にて後述する。
【００４１】
Ｓ５２２にて、要求カウンタ処理部３２４が管理する要求カウントを確認して、すでにアプリケーションセット内の他のアプリケーションによりフローティングライセンスを取得している状態か否かを判断する。ここでは、要求カウント（カウンタ）が１以上であれば、当該アプリケーションセットに対するフローティングライセンスを取得済みと判断する。Ｓ５２２にて既にライセンスを取得済みと判断した場合は、Ｓ５２５に進んで、要求カウンタ処理部３２４が要求カウントを＋１（１インクリメント）する。その後、Ｓ５２６にて、ライセンス取得要求受信部３２１からアプリケーション３００に対して、ライセンス取得成功を示す情報（成功ステータス）を通知する。
【００４２】
一方、Ｓ５２２にてライセンスを未取得と判断した場合（すなわち、要求カウントが０の場合）、Ｓ５２３に進んで、ライセンスチェックアウト要求部３２５が、ライセンスサーバ１２０に対してライセンスのチェックアウト要求（ライセンス貸出要求）を発行して送信する。
【００４３】
ライセンスサーバ１２０は、Ｓ５２３で発行されたライセンスチェックアウト要求をライセンスチェックアウト受信部４０１で受信すると、処理を開始する。ライセンスサーバ１２０の管理部４０２は、Ｓ５６１にて、ライセンスカウンタ処理部４０３が管理するライセンスカウントを取得して確認することで、貸し出し可能なライセンスが残っているか判断する。Ｓ５６１にて、管理部４０２は、貸し出し可能なライセンスが残っていると判断した場合（すなわち、ライセンスカウントが１以上の場合）、Ｓ５６２に進み、ライセンスカウンタ処理部４０３がライセンスカウントを−１（１デクリメント）する。そして、Ｓ５６３にて、ライセンスチェックアウト受信部４０１は、ライセンスのチェックアウト成功（貸出成功）を示す情報（成功ステータス）とライセンス情報とをライセンス管理部３２０に返信する。
【００４４】
一方、Ｓ５６１にて、貸出可能なライセンスが残っていないと判断した場合（すなわち、ライセンスカウントが０の場合）、Ｓ５６４に進んで、ライセンスチェックアウト受信部４０１は、ライセンス管理部３２０に対してライセンス取得失敗を示す失敗ステータスを返信する。
【００４５】
ライセンス管理部３２０の管理部３２３は、Ｓ５２４にて、ライセンスサーバ１２０から成功ステータスを受信してチェックアウト成功したと判断した場合、Ｓ５２５で要求カウントを１インクリメントして、Ｓ５２６でアプリケーションに対してライセンス取得成功を示す情報（成功ステータス）を通知する。
【００４６】
一方、管理部３２３は、Ｓ５２４にて、ライセンスサーバから失敗ステータスを受信してチェックアウト失敗したと判断した場合（全てのライセンスが貸し出し中と判断した場合）、Ｓ５２７に進んで、ライセンス取得失敗時の処理（例えばユーザへの状況通知等）を行う。さらに、Ｓ５２８にて、ライセンス取得要求受信部３２１を介してアプリケーション３００に対しライセンス取得失敗を示す失敗ステータスを返信する。
【００４７】
アプリケーション３００では、Ｓ５０３にて、ライセンス取得の成否を判断し、ライセンス取得成功を示す情報（成功ステータス）を受信したと判断した場合は、Ｓ５０４に進んで、管理部３０２及び処理実行部３０３で当該アプリケーションの利用を開始して各種処理を実行する。一方、Ｓ５０３にて失敗と判断した場合は、処理を実行せずに次の利用開始要求を受けるまで次の入力を待つ。以上が、ライセンス取得時の処理フローである。
【００４８】
次に、ライセンス返却時の処理フローについて説明する。アプリケーション３００では、Ｓ５０５にて、入力部３０１から要ライセンス機能の利用終了（例えば、起動中の非常駐型アプリケーションの終了や、常駐型アプリケーションの非アクティブ化）の要求があったかどうか判断する。利用終了要求でない場合（Ｓ５０５でＮＯ）は、Ｓ５０４で当該アプリケーションを引き続き利用可能である。なお、Ｓ５０６〜Ｓ５０７の処理は、後述する実施例２に係るものであるので、本実施例１では、Ｓ５０５で利用終了要求があったと判断した場合は、Ｓ５０６〜Ｓ５０７の処理は行わずにＳ５０８に進む。Ｓ５０８にて、ライセンス返却要求部３０５は、ライセンス管理部３２０に対して、ライセンス返却要求を発行する。なお、Ｓ５０６〜Ｓ５０７の処理の詳細説明は実施例２で後述する。
【００４９】
ライセンス管理部３２０では、Ｓ５０８で発行されたライセンス返却要求を受信すると、ライセンス返却処理を開始する。なお、Ｓ５３１の処理は後述する実施例４に係るものであるので、本実施例１では、ライセンス管理部３２０がライセンス返却要求を受信すると、Ｓ５３１の処理は行わずにＳ５３２に進む。なお、Ｓ５３１の処理の詳細説明は実施例４で後述する。
【００５０】
Ｓ５３２にて、要求カウンタ処理部３２４は要求カウントを−１（１デクリメント）する。Ｓ５３３にて、ライセンス管理部３２０の管理部３２３は、要求カウントが０であるか１以上であるかを判断する。Ｓ５３３で管理部３２３は要求カウントが０であると判断した場合（すなわち、ライセンス使用中のアプリケーションが１つも存在しなくなったと判断した場合）、Ｓ５３９に進む。なお、Ｓ５３５〜Ｓ５３８の処理は実施例２に係るものであるので、本実施例１では、Ｓ５３３で要求カウントが０であると判断した場合、Ｓ５３５〜Ｓ５３８の処理は行わずに、Ｓ５３９に進む。なお、Ｓ５３５〜Ｓ５３８の処理の詳細説明は、実施例２にて後述する。Ｓ５３９では、ライセンスチェックアウト要求部３２５が、ライセンスサーバ１２０に対してチェックイン要求を発行する。ライセンスサーバ１２０では、チェックイン要求を受信すると、Ｓ５７１にて、ライセンスカウンタ処理部４０３は、ライセンスカウントを＋１（１インクリメント）する。これにより、ライセンスサーバで管理している貸し出し可能なライセンスがひとつ復帰する。Ｓ５７１の処理の後、チェックイン処理が終了した旨を示すレスポンスをライセンス管理部３２０に送信する。そして、Ｓ５４０にて、ライセンス管理部３２０は、ライセンスサーバから該レスポンスを受信すると、ライセンス管理部３２０での処理が終了したことを示すレスポンスをアプリケーション３００に返す。
【００５１】
また、Ｓ５３３で、要求カウントが１以上であると判断した場合（すなわち、アプリケーションセットの中に、ライセンス使用中の他のアプリケーションが存在すると判断した場合）、ライセンス管理部３２０での処理が終了したことを示すレスポンスをアプリケーション３００に返す。
【００５２】
Ｓ５０９において、アプリケーション３００は、ライセンス管理部での処理終了レスポンスを受けて、Ｓ５１０にて当該アプリケーションの利用を終了する。
【００５３】
以上により、ライセンス管理部３２０は、アプリケーションセットに含まれる複数のアプリケーションのいずれかひとつでも要ライセンス機能が動作していれば、アプリケーションセットに対するライセンスを保持し続ける。そして、当該複数のアプリケーション全てで要ライセンス機能の利用が終了すると、ライセンス管理部３２０はライセンスサーバにライセンスを返却する。よって、複数のアプリケーションを１つのセットにしてライセンス管理することが可能となり、複数のアプリケーションが互いに連携するようなスイート製品において、ユーザの利便性が向上する。
【００５４】
また、各アプリケーションは自身が必要な時だけライセンス管理部に対してライセンス要求をすれば良く、アプリケーション同士でライセンスに関する情報交換を行うなどの複雑な構成は必要なくなる。したがって、管理対象のアプリケーションが増えた場合でも開発を容易に行うことができる。
【００５５】
また、要ライセンス機能の利用開始要求／終了要求に応じてライセンス管理を行うようにしたので、常駐アプリケーションやライセンスフリー機能を有するアプリケーションが含まれている場合でも、フローティングライセンスを適切に利用することができる。
【００５６】
［実施例２］
複数のアプリケーション間の連携において、あるアプリケーションが別のアプリケーションに処理を依頼すると、そのあるアプリケーション自体はすぐに終了する場合がある。例えば、図６に例示するアプリケーションＡは、ファイルのドラッグ＆ドロップをトリガーにして、複数の処理機能（例えば、印刷、ファクス送信、印刷プレビュー、ＰＤＦ変換）のいずれかを実行指示するアプリケーションである。図６のアプリケーションＡは、ファイルがアプリケーションＡのアイコン上にドラッグされると、当該アプリケーションＡのメニュー（印刷、ファクス、印刷プレビュー、ＰＤＦ変換）をポップアップ表示する。そして、当該ポップアップ表示したメニュー上のいずれかの機能にそのファイルがドロップされると、該当する機能が当該ファイルに対して実行されるように制御する。このとき、当該ファイルがドロップされた機能の実際の処理は、別アプリケーションが行う場合がある。例えば、印刷の場合、印刷設定選択画面までをアプリケーションＡが表示し、設定選択後は、印刷アプリケーションＢに印刷設定とファイルを送信して印刷処理を依頼するとともに、アプリケーションＡは終了する。同様に、ファクス機能を選択した時や印刷プレビュー機能を選択した時は、ファクスアプリケーションＣや印刷プレビューアプリケーションＤに処理を依頼するとともに、アプリケーションＡは終了する。なお、ＰＤＦ変換の場合は、アプリケーションＡが処理を実行する。
【００５７】
ここで、アプリケーションＡが終了する際にライセンスを返却してから、処理依頼された別アプリケーションがライセンス取得要求するまでに空白時間が発生すると、その間に別のユーザにライセンスを奪われる可能性がある。貸出し可能なライセンス全てを別のユーザに奪われた場合、複数のアプリケーション間の連携作業にも関わらず、作業の継続ができなくなってしまう。
【００５８】
そこで、本実施例２のライセンス管理部３２０は、アプリケーションからのライセンス返却要求によって要求カウントが０になった場合でも、一定時間（例えば５秒）待った後に、要求カウントが０のままであればライセンスサーバにライセンスの返却を行うようにする。
【００５９】
以下、図５のフローを用いて、実施例１との差異の部分を詳細に説明する。
【００６０】
アプリケーション３００では、Ｓ５０５にて利用終了要求を受けると、Ｓ５０６にて、本アプリケーションが別アプリケーションに処理を要求してから終了したものであったか判断する（すなわち、別アプリケーションに起動を指示してから終了したものであったか判断する）。Ｓ５０６の判断がＹｅｓの場合、Ｓ５０７にて、別アプリケーション起動を示す識別子をＯＮにし、Ｓ５０８のライセンス返却要求に反映する。識別子は、ライセンス管理部３２０に届くものであればどのようなものであってもよく、呼び出し関数の引数やフラグであってもよいし、プロセス間通信で伝えてもよい。
【００６１】
ライセンス管理部３２０では、Ｓ５３３にて、本アプリケーションの返却要求によってすべてのライセンス要求が終了したと判断された際、Ｓ５３５にて、別アプリケーション起動を示す識別子を確認する。Ｓ５３５にて、当該識別子がＯＮだと判断した場合、一時的に要求カウントが０になっているだけで、この後別のアプリケーションが起動する予定であることが判るため、Ｓ５３６にて、タイマー機能を用いて時間Ｔ１（例えば５秒）の間待つ。時間Ｔ１は、アプリケーションセットに含まれるアプリケーションの各々が起動要求を受けてからライセンス取得要求を発行するまでの時間の中で、少なくとも最も長い時間よりも長い時間（例えば５秒）が設定されていればよい。時間Ｔ１経過後、Ｓ５３８にて、要求カウントを再度確認し、１以上あれば別アプリケーションが起動したことが判るため、ライセンスサーバにライセンスを返却しないでライセンス管理部での処理を終了する。一方、時間Ｔ１経過後、Ｓ５３８にて、再度判断しても要求カウントが０だった場合、ユーザによるキャンセル等、何らかの理由で別アプリケーションが起動しなかったことを意味するので、Ｓ５３９に進み、ライセンスサーバにライセンス返却を行う。
【００６２】
以上により、アプリケーション間の連携において、呼び出し側の終了と呼ばれた側の起動との間にタイムラグがあっても、処理が中断されることはない。また、Ｔ１を条件の範囲内で十分小さい値にすることで（たとえば５秒）、他のユーザを待たせる時間も最小限に抑えることができ、ユーザの利便性を向上することができる。
【００６３】
また、上述した図６のように複数のアプリケーション間で自動連携する場合は、Ｓ５３６にて時間Ｔ１の間、別アプリケーションが起動するのを待機するように構成した。以下では、さらに、ユーザが使用中のアプリケーションを終了した後に、別のアプリケーションを手動で起動した場合でも、その間に別のユーザにライセンスを奪われないようにすることで、ユーザが作業を連続して行えるようにする。そこで、アプリケーションからのライセンス返却要求により要求カウントが０になった場合でも、すぐにライセンス返却せずに時間Ｔ２（例えば３０秒）待つ。また、メッセージ等でユーザに状況を通知してから、ライセンスの返却を行うようにする。
【００６４】
手動で別アプリケーションを起動する場合、ユーザ操作が必要なため、より長い待ち時間が必要である。そこで、別アプリケーションを連携して自動起動させている場合と、ユーザ操作により手動起動される可能性がある場合とで、異なる待ち時間Ｔ１，Ｔ２を用いる。
【００６５】
ライセンス管理部３２０は、Ｓ５３５にて、別アプリ起動識別子がＯＦＦだと判断した場合、全てのアプリケーションが終了し、且つ、その時点で別アプリケーションは連携して自動起動要求を受けていないことが判る。この場合、Ｓ５３７にて、タイマー機能を用いて時間Ｔ２（例えば３０秒）の間待つ。また、この間、同時にユーザへの情報メッセージ（警告）を表示してもよい。図７のメッセージ７００は、情報メッセージの例である。７０１はメッセージの内容であり、何秒後にライセンスを返却するかを示している。ボタン７０２は即時終了ボタンであり、押下により時間Ｔ２の経過前であっても処理を終了し、Ｓ５３８へ進む。また、ボタン７０３は延長ボタンであり、押下により時間Ｔ２を増加する。延長ボタンは、ユーザがまだ作業を継続したいが、アプリケーション起動に手間取る場合に備えて設けたものである。なお、このメッセージ表示中にアプリケーションセット内の別のアプリケーションが起動された場合は、当該メッセージは消去される。またメッセージ７００は、モーダル表示であってもモードレス表示であってもよい。
【００６６】
時間Ｔ２は、少なくともユーザが連続して作業をする場合に次のアプリケーションを起動するまでに必要とする時間以上であり、他のユーザもライセンス利用できるように、極端に長い時間でなければよい。なお、ユーザの指示により、時間Ｔ２の設定を変更可能なＵＩ（不図示）を設けてもよい。
【００６７】
時間Ｔ２経過後、Ｓ５３８にて、再度要求カウントを確認し、１以上あれば別アプリケーションが起動されたことが判るため、ライセンスサーバにライセンスを返却しないでライセンス管理部での処理を終了する。一方、Ｓ５３８にて、再度判断しても要求カウントが０だった場合、別アプリケーションの起動がなかったことを意味するので、Ｓ５３９に進み、ライセンスサーバにライセンス返却を行う。
【００６８】
以上により、ユーザによる操作の中でたまたまライセンスを必要としない空白時間ができてしまった場合でも、ユーザの作業を中断することなく継続可能となり、ユーザの利便性が向上する。
【００６９】
［実施例３］
なお、上述した実施例２では、連携する別アプリケーションの自動起動が指示されているかどうかに応じて、異なる待ち時間Ｔ１，Ｔ２を用いたが、これに限るものではない。例えば、Ｓ５３３で要求カウントが０になったと判定した場合に、タイマー機能を用いて常に所定時間Ｔ２（例えば３０秒）待つように構成してもよい。その場合、所定時間待ってから、Ｓ５３８で要求カウントが０のままか確認することになる。
【００７０】
このように、構成した場合、自動起動指示された別アプリケーションが何らかの理由で起動しなかった場合も、ライセンスサーバへのライセンス返却するまで実施例２よりは少し長く待つことになるが、その代わり、Ｓ５０６〜Ｓ５０７の別アプリ起動識別子は不要になるので、装置構成は簡略化できる。
【００７１】
［実施例４］
前述の実施形態では、フローティングライセンスのみの構成を説明してきたが、実際には、フローティングライセンスを用いてシステムを本運用する前に、トライアルライセンスを使って試用する場合がある。トライアルライセンスは、ライセンスサーバとの接続を必要とせず、予め定められた期間限定でアプリケーションを試用することができるライセンスである。
【００７２】
そこで、本実施例４では、トライアルライセンスを用いて試用した後にフローティングライセンスのシステムを導入した場合であっても、トライアルライセンスの試用期間が残っている間は、アプリケーションの使用許諾のためにトライアルライセンスを使うようにする。
【００７３】
以下、図５のフロー図を用いて、実施形態１との差異を詳細に説明する。
【００７４】
ライセンス管理部３２０の管理部３２３は、Ｓ５０２で発行されたライセンス取得要求を受信すると、Ｓ５２１にて、当該クライアントにおけるトライアルライセンスの残り期間の有無を判断する。トライアルライセンスの残り期間があると判断した場合は、フローティングライセンスを消費せずに、Ｓ５２６へ進み、ライセンス取得成功を示す成功ステータスを返却する。一方、Ｓ５２１にて、トライアルライセンスの残り期間がないと判断した場合は、Ｓ５２２へ進み、実施例１で説明した処理と同様の処理を行う。
【００７５】
また、ライセンス管理部３２０の管理部３２３は、Ｓ５０８で発行されたライセンス返却要求を受信すると、Ｓ５３１において、トライアルの残り期間が残っているか否か（すなわちトライアルライセンスによってアプリケーションの使用許諾を行ったか否か）を判断する。Ｓ５３１で、トライアルライセンスの残り期間がある（トライアルライセンスで使用許諾を行った）と判断した場合は、ライセンス管理部３２０での処理が終了したことを示すレスポンスをアプリケーション３００に返す。
【００７６】
以上により、トライアルライセンスが有効なクライアントに関しては、貴重なフローティングライセンスを消費せずにアプリケーションの実行が可能となり、ユーザの利便性が高まる。
【００７７】
［実施例５］
これまでの実施形態で説明したように、要求カウントを用いることで、要ライセンス機能を実行しているアプリケーションがあるかどうかを管理することができる。しかし、アプリケーション３００が途中で何らかのエラーによりクラッシュ（フリーズ）した場合、すなわち、ライセンス取得要求を行ってライセンスを取得しているが、ライセンスの返却要求ができなくなってしまった場合、正しい要求カウント管理ができなくなってしまう。正しい要求カウントの管理ができない結果、他のすべてのアプリケーションが終了しても要求カウントを０にできなければ、ライセンス管理部３２０はフローティングライセンスをライセンスサーバに返却しないので、他のユーザのライセンス利用を妨げることになる。また一方、アプリケーションのクラッシュはユーザの作業中に起きる可能性が高い。したがって、アプリケーションのクラッシュを検知してすぐにフローティングライセンスを返却してしまうと、他のユーザにライセンスを使われて、ユーザの作業を中断させられる可能性がある。
【００７８】
そこで、本実施例５のライセンス管理部３２０は、ライセンスを取得しているアプリケーション３００を一定時間（Ｔ３）ごとに監視し、問題を発見した場合は、一定時間（Ｔ４）の間待ってからライセンスを返却する処理を行う。また、本実施例５では、アプリケーションごとに要求カウントを持つ例を示す。
【００７９】
以下、図８のフロー図を用いて、ライセンス管理部３２０における処理を詳細に説明する。
【００８０】
まずＳ８０１において、ライセンス管理部３２０は、アプリケーション３００から発行（Ｓ５０２）されたライセンス取得要求を受信したか判断する。Ｓ８０１でＹｅｓ（ライセンス取得要求を受信）だった場合、Ｓ８０２にて、呼び出し元のアプリケーションＮに対応する要求カウントを＋１（１インクリメント）する。次に、Ｓ８０３にて、アプリケーション監視用のタイマーが起動されているかどうか判断する。本実施例における監視タイマーとは、一定時間（Ｔ３、たとえば５分）ごとにアプリケーションの状態を監視するための、ポーリング用タイマーである。Ｓ８０３でＮｏ（監視タイマーが未起動）だった場合（すなわち、いずれの要ライセンス機能も動作していなかった状態から動作する状態に変わった場合）、Ｓ８０４にて監視タイマーを起動する。Ｓ８０３でＹｅｓ（監視タイマーが起動済み）だった場合、何もせずに次の要求待ちを行う。なお、Ｓ８０１でＮｏだった場合、Ｓ８１１に進む。
【００８１】
次に、Ｓ８１１にて、ライセンス管理部３２０は、アプリケーション３００で発行（Ｓ５０８）されたライセンス返却要求を受信したか判断する。Ｓ８１１でＹｅｓ（ライセンス返却要求を受信）だった場合、Ｓ８１２にて、呼び出し元のアプリケーションＮに対応する要求カウントを−１（１デクリメント）する。次に、Ｓ８１３において、アプリケーションセットに属する全てのアプリケーションの要求カウントが０になったか判断する。Ｓ８１３でＹｅｓ（すべて０）だった場合、アプリケーションセットに含まれる全てのアプリケーションの要ライセンス機能がひとつも動作していないことを意味するので、Ｓ８１４にて、監視タイマーを停止する。Ｓ８１３でＮｏ（いずれかのアプリケーションの要求カウントが０ではない）だった場合、いずれかの要ライセンス機能が動作していることを意味するので、何もせずに次の要求待ちを行う。なお、Ｓ８１１でＮｏだった場合、Ｓ８２１に進む。
【００８２】
Ｓ８２１では、アプリケーションの状況確認（ポーリング）用の監視タイマーの時間Ｔ３が経過したかを確認する。Ｓ８２１でＮｏ（まだ経過していない）だった場合は何もせずに処理を戻し、Ｙｅｓ（経過していた）だった場合はＳ８２２へ進む。Ｓ８２２にて、アプリケーションセットに含まれる複数のアプリケーションそれぞれについて要求カウントが１以上であるか判断する。Ｓ８２２でＮｏ（要求カウントが０）だった場合、いずれのアプリケーションの要ライセンス処理も実行されていないため何もせずに処理を戻し、Ｙｅｓ（１以上ある）だった場合、処理が実行されていることを意味し、Ｓ８２３へ進む。Ｓ８２３にて、要求カウントが１以上であるアプリケーションの動作状況を確認する。Ｓ８２４にて、正常に動作しているか判断し、Ｙｅｓ（正常）だった場合は何もせずに処理を戻し、Ｎｏ（異常、クラッシュ）だった場合はＳ８２５へ進む。Ｓ８２５にて、異常のあったアプリケーションの要求カウントを０にする。Ｓ８２６にて、アプリケーションセットに含まれる全てのアプリケーションの要求カウントを再確認し、ひとつでも１以上のカウントがあればライセンスは保持されるので何もせずに戻り、すべてのアプリケーションが０だった場合はＳ８２７に進む。Ｓ８２７にて、ユーザが当該クラッシュしたアプリケーションを再起動する可能性に備えて、一定時間Ｔ４（たとえば２分）待つ。Ｓ８２８にて、再度いずれかのアプリケーションの要求カウントが１以上か確認する。Ｓ８２８でＹｅｓ（１以上のものがある）ならば、ライセンスを使用しているアプリケーションが存在するので、何もせずに戻る。Ｓ８２８でＮｏ（すべて０）ならば、ライセンスをライセンスサーバに返却するためにＳ５３９へ進む。Ｓ５３９以降の処理は第１の実施形態と同じである。
【００８３】
なお、時間Ｔ３は、ポーリング間隔としてシステムにパフォーマンスの悪影響を与えず、またアプリケーションがクラッシュした時にはできるだけ早く検知できるのに妥当な時間であればよい（たとえば５分）。
【００８４】
また、時間Ｔ４は、ユーザがアプリケーションのクラッシュに気づいてから再起動するまでの時間として短すぎず、また別ユーザのライセンス利用を長時間妨げないのに妥当な時間であればよい（たとえば２分）。
【００８５】
また、本実施形態では、アプリケーションごとに要求カウントを持つ例を示したが、アプリケーションの要ライセンス機能が処理中かどうかが判ればよいので、この方法に限定するものではない。たとえば、アプリケーションのステータスを管理する方法でもよいし、ＯＳ（オペレーティングシステム）の持つ管理機能を利用してもよい。
【００８６】
以上により、一部のアプリケーションがクラッシュした場合でも、不要にライセンスを保持し続けること、および、作業を再開したいのにできない状況を共に回避することができ、ユーザの利便性を向上することができる。
【００８７】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2016110345.tif 000003
【図２】
2016110345.tif 000004
【図３】
2016110345.tif 000005
【図４】
2016110345.tif 000006
【図５】
2016110345.tif 000007
【図６】
2016110345.tif 000008
【図７】
2016110345.tif 000009
【図８】
2016110345.tif 000010