(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔で、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信ステップと、
前記通信ステップで前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始ステップと、
前記緊急稼働判定ステップで緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止ステップと、
前記通信ステップで前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新ステップと、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行ステップと、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止ステップと、
を実行させるアプリケーション実行制御プログラム。
【請求項２】
前記稼働形態情報として、緊急稼働を開始した日時と対をなす、前記管理対象プログラムを実行する前記コンピュータと前記ライセンス管理装置の間の通信が回復した日時を使用することを特徴とする請求項１記載のアプリケーション実行制御プログラム。
【請求項３】
前記コンピュータに、さらに、
前記コンピュータが前記ライセンス管理装置と通信できる状態でモバイル使用を指示する操作入力を受け付けた場合、所定のモバイル使用期限だけ次回の前記通信ステップの実行を延期するオフライン使用ステップを実行させることを特徴とする請求項１記載のアプリケーション実行制御プログラム。
【請求項４】
ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータが、
所定間隔での、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信ステップと、
前記通信ステップで前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始ステップと、
前記緊急稼働判定ステップで緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止ステップと、
前記通信ステップで前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新ステップと、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行ステップと、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止ステップと、
を実行するアプリケーション実行制御方法。
【請求項５】
ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するアプリケーション実行制御装置であって、
所定間隔での、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信手段と、
前記通信手段で前記アプリケーション実行制御装置が前記ライセンス管理装置と通信できない場合、該アプリケーション実行制御装置の記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定手段と、
前記緊急稼働判定手段で緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始手段と、
前記緊急稼働判定手段で緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続手段と、
前記緊急稼働判定手段で緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止手段と、
前記通信手段で前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新手段と、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行手段と、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止手段と、
を有するアプリケーション実行制御装置。
【請求項６】
ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
前記ライセンス管理装置との間の通信を所定間隔で試み、
前記コンピュータが前記ライセンス管理装置と通信できる場合、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを実行させ、
前記コンピュータが前記ライセンス管理装置と通信できない場合、前記プログラム実行手段に、所定の期間について前記管理対象プログラムを実行させる、
処理を実行させるアプリケーション実行制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムの実行を制御するアプリケーション実行制御プログラム、アプリケーション実行制御方法、およびアプリケーション実行制御装置に関し、特に定期的に使用の許諾を受ける必要がある管理対象プログラムの実行を制御するアプリケーション実行制御プログラム、アプリケーション実行制御方法、およびアプリケーション実行制御装置に関する。
【背景技術】
【０００２】
商用ソフトウエアでは、しばしばそのソフトウエアを使用できる端末のライセンス制限がなされる。使用制限の方法としては、例えば、ドングルなどと呼ばれる物理的な端子やプロダクトキーと、端末の識別子との対応関係を固定しておく。そして、ドングルやプロダクトキーに対応する端末でのみソフトウエアを使用可能にし、他の端末では使用できないようにする。このような使用制限方法は、ノードロックライセンスまたは固定ライセンスと呼ばれている。この使用制限方法では、端末に対して個別にライセンスを付与することとなり、端末の入れ替えや新規追加を行えば、ライセンスの再発行が必要である。
【０００３】
ところで、企業で業務に使用されるソフトウエアには、ＬＡＮ（Local Area Network）に接続された多数の端末に実装しておく必要はあるが、各端末での使用機会は断続的でしかないものがある。このようなソフトウエアを同時に使用する端末は、全体の端末の一部でしかない。このようなソフトウエアであれば、同時に使用される端末の数を制限する、いわゆるフローティングライセンス、フレキシブルライセンスなどと呼ばれるライセンス管理方式を利用することができる。このライセンス管理方式は、全ての端末に対する個別のライセンスを取得する必要がなくライセンス取得コストが低く抑えられると共に、ライセンス管理の一元化による利便性の向上が図れる。
【０００４】
フローティングライセンス、フレキシブルライセンスなどと呼ばれるライセンス管理方式の一つに、ネットワークライセンス管理と呼ばれる方式がある。ネットワークライセンス管理方式は、ＬＡＮにライセンスサーバと呼ばれる特別な管理用の計算機を設置する。ライセンスサーバは管理対象である端末上でのソフトウエアの稼働状態をオンラインで把握する。そして、ライセンスサーバは、管理対象とするソフトウエアが稼働する端末の数を制限する。
【０００５】
ネットワークライセンス方式では、ライセンスサーバは、クライアントの固有情報とライセンスキーとを含むライセンス要求をクライアントから受信する。クライアントの固有情報は、例えば、クライアントのＭＡＣ(Media Access Control)アドレス、ハードディスク装置のシリアル番号などである。ライセンスサーバは、正しいライセンスキーとクライアントの固有情報とを送信したクライアントに対してライセンスを付与する。以後、ライセンスサーバは、同一ライセンスキーを用いた同一固有情報のクライアントに対してのみ、ソフトウエアの起動を許可する（例えば、特許文献１参照）。
【０００６】
ネットワークライセンス方式では、ライセンスで制限された数以内であれば、複数の任意の端末にソフトウエアの使用が同時に許可される。そのため、新規の端末を購入した場合にも、その端末ですぐにソフトウエアを実行でき、企業内での複数の端末のライセンス管理などに非常に便利である。
【０００７】
また、予め販売管理用サーバから実施許諾データを取得しておき、その実施許諾データに基づいて一定時間または一定使用回数だけ、クライアントでソフトウエアを実行できるようにする技術もある（例えば、特許文献２参照）。
【特許文献１】特開２００４−３８２４７号公報
【特許文献２】特開２００１−３０６７３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ネットワークライセンス管理方式では、クライアント端末とライセンスサーバとの間で認可要求と認可諾否のメッセージが正常に交換されている定常稼働状態にあって、予め設定された制限台数の範囲内の端末で問題なく管理対象のソフトウエアを稼働させることができる。しかし、ライセンスサーバに障害が発生すると、すべてのクライアント端末で管理対象のソフトウエアを稼働させることができなくなる。
【０００９】
この問題を解決する手段として、例えば、バックアップ用のライセンスサーバを常時保有しておき、ライセンスサーバが故障した場合、バックアップ用のバックアップサーバに切り替えて運用することができる。また、その他の対応方法としては、２台のライセンスサーバ（デュアルサーバ）による冗長構成にして、一方のライセンスサーバが故障してもネットワークライセンス管理システムを停止することなく、他方のライセンスサーバでライセンス管理を行う運用形態も可能である。
【００１０】
しかしながら、バックアップサーバやデュアルサーバ構成を採用した場合であっても、ネットワークの障害などでライセンスサーバと端末との通信が途絶えると、端末で管理対象のソフトウエアを稼働させることができなくなり、業務が停止してしまう。業務の停止は、システムの運用上最も避けるべき事態である。
【００１１】
また、バックアップサーバやデュアルサーバは複数のコンピュータをサーバとして使用するので、ハードウエア資源、ソフトウエア資源および保守管理の手間が余分に発生する。その結果、ライセンス管理費用の増大を招く。
【００１２】
なお、上記特許文献２の技術であれば、実施許諾データを取得しておくことで、それ以降ネットワークに接続しなくても一定期間ソフトウエアを使用できる。ただし、このようなライセンス管理を行うと、ソフトウエアを使用する可能性がある全ての端末に対して個別のライセンスが必要となる。すると、ネットワークライセンス方式の本来の利点であるライセンスの集中管理による動的なライセンス付与ができなくなってしまう。
【００１３】
本発明はこのような点に鑑みてなされたものであり、ネットワークライセンス方式において、ライセンスを管理する装置との間の通信が途絶えたクライアントにおいてもソフトウエアを適切な制限付きで使用できるアプリケーション実行制御プログラム、アプリケーション実行制御方法、およびアプリケーション実行制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、アプリケーション実行制御プログラムが提供される。このアプリケーション実行制御プログラムは、ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータである
クライアント端末に、以下の処理を実行させる。
【００１５】
所定間隔で、ライセンス管理装置との間の通信および該管理対象プログラムの使用の認可応答の取得を試みる。
コンピュータがライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、該管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する。
【００１６】
ここで、緊急稼働開始可能と判定された場合、緊急稼働情報に緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムを稼働させる。
【００１７】
また、緊急稼働継続可能と判定された場合、プログラム実行手段に管理対象プログラムを実行させる。
さらに、緊急稼働解可能および緊急稼働継続可能のいずれでもないと判定された場合、プログラム実行手段に管理対象プログラムを実行させないようにする。
【００１８】
一方、クライアント端末がライセンス管理装置と通信できた場合、稼働形態情報が定常稼働状態を呈するように設定し、ライセンス管理装置から認可応答を受信したならばプログラム実行手段に管理対象プログラムを実行させ、ライセンス管理装置から前記認可応答を受信できなかったならばプログラム実行手段に該管理対象プログラムの実行を中断させる。
【００１９】
このようなアプリケーション実行制御プログラムにより、ライセンス管理装置から認可応答を受信できない場合であっても、緊急稼働可能条件の範囲内であれば緊急稼働として管理対象プログラムの実行が継続される。
【００２０】
また、上記アプリケーション実行制御プログラムを実行するコンピュータと同様の処理を実行させるアプリケーション実行制御方法が提供される。さらに、上記アプリケーション実行制御プログラムを実行するコンピュータと同様の機能を有するアプリケーション実行制御装置が提供される。
【発明の効果】
【００２１】
本発明では、回線障害等によりライセンス管理装置との通信が途絶えることによって管理対象プログラムが使用不能状態に陥ることを、回避できる。
また、従来ネットワークライセンス管理システムで使用されていたバックアップ用ライセンスサーバおよびデュアルサーバを必要としなくなるので、設備費用、保守費用および設備スペースを節約することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態の一つの最適な例を図面を参照して説明する。
図１は、本実施の形態の概要を示す図である。クライアント端末１は、ライセンス管理装置２とネットワークを介して接続されている。ライセンス管理装置２は、管理対象プログラム１ｃａのライセンスを管理している。
【００２３】
クライアント端末１には、アプリケーション実行制御手段１ａ、記憶手段１ｂ、プログラム実行手段１ｃが設けられている。アプリケーション実行制御手段１ａは、ライセンス管理装置２と定期的に通信することで、管理対象プログラム１ｃａの使用許諾を得る。ただし、ライセンス管理装置２の障害、あるいはネットワーク上の通信の障害によって、ライセンス管理装置２との間の定期的な通信に不具合が生じる場合がある。そのような場合を想定し、アプリケーション実行制御手段１ａが実行する処理の流れの概要を以下に記す。なお、これらのステップの処理の流れの細部は後に図１２ないし図１８を用いて詳しく説明される。なお、図１においては矢印付きの実線は処理の流れを、点線はデータの参照更新を表している。
【００２４】
［ステップＳ１］アプリケーション実行制御手段１ａは、所定の間隔で、ライセンス管理装置２との間の通信および管理対象プログラム１ｃａの使用の認可応答の取得を試みる。
【００２５】
［ステップＳ２］アプリケーション実行制御手段１ａは、ステップＳ１でクライアント端末１とライセンス管理装置２の間の通信が成功したかどうか判定し、通信が成功した場合は諾否情報を出力する。
【００２６】
［ステップＳ３］ステップＳ２でライセンス管理装置２と通信できない場合、アプリケーション実行制御手段１ａは、記憶手段１ｂに格納された、管理対象プログラムを緊急稼働させた緊急稼働開始日時と稼働形態情報を含む緊急稼働情報１ｂａを参照し、当該時点（通信できないと判断した時点）が緊急稼働開始可能か緊急稼働継続可能か否かを判定する。
【００２７】
［ステップＳ４］ステップＳ３で、稼働状態情報より当該時点は緊急稼働状態でないから緊急稼働開始可能と判定された場合、アプリケーション実行制御手段１ａは、管理対象プログラムが緊急稼働を開始したとして記憶手段内に緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、プログラム実行手段１ｃに管理対象プログラム１ｃａを稼働するよう指示する。
【００２８】
［ステップＳ５］ステップＳ３で、当該時点は緊急稼働状態であり、例えば緊急稼働開始日時より所定の期間内であるという理由で、緊急稼働継続可能と判定された場合、アプリケーション実行制御手段１ａは、プログラム実行手段１ｃに管理対象プログラム１ｃａを稼働するよう指示する。
【００２９】
［ステップＳ６］ステップＳ３で、当該時点は緊急稼働状態であり、例えば緊急稼働開始日時より所定の期間外であるという理由で、緊急稼働開始可能でも緊急稼働継続可能でもないと判定された場合は、アプリケーション実行制御手段１ａは、プログラム実行手段１ｃに管理対象プログラム１ｃａを稼働しないよう指示する。
【００３０】
［ステップＳ７］ステップＳ２でライセンス管理装置２と通信に成功し、かつライセンス管理装置２から認可応答を受信した場合、アプリケーション実行制御手段１ａは、プログラム実行手段１ｃに管理対象プログラム１ｃａを実行させる。
【００３１】
［ステップＳ８］ステップＳ２でライセンス管理装置２と通信に成功し、かつライセンス管理装置２から認可応答を受信できなかった場合、アプリケーション実行制御手段１ａは、プログラム実行手段１ｃに管理対象プログラム１ｃａの新たなコマンドの起動を阻止する。
【００３２】
［ステップＳ９］ステップＳ１でライセンス管理装置２と通信に成功した場合、稼働状態情報が緊急稼働状態であるならば、本ステップで、稼働形態情報を定常稼働状態を呈するように設定する。なお、図１では本ステップは、ステップＳ７あるいはステップＳ８の後ろにあるとしたが、順序は逆になっても問題ない。
【００３３】
このようなアプリケーション実行制御手段１ａで管理対象プログラム１ｃａの実行を制御することにより、ライセンス管理装置２から認可応答を受信できない場合であっても、緊急稼働可能条件の範囲内であれば緊急稼働として管理対象プログラム１ｃａの実行が継続できる。その結果、障害等によりライセンス管理装置２との通信が途絶えることによって管理対象プログラムが使用不能状態に陥ることを、適切な条件下で回避できる。
【００３４】
次に、本実施の形態の詳細を説明する。なお、本実施の形態は、例えばＣＡＤシステムの図形処理コマンドのように比較的処理単位が大きい（１つのコマンドの実行に時間がかかる）場合でも対応可能である。
【００３５】
図２は、本実施の形態のシステム構成例を示す図である。ライセンスサーバ４００には、ネットワーク１０を介してクライアント端末１００，２００，３００が接続されている。ライセンスサーバ４００は、クライアント端末１００，２００，３００に搭載されたソフトウエアの実行の諾否を管理する。
【００３６】
なお、クライアント端末３００はネットワーク１０から切り離し、モバイル端末として利用することができる。
図３は、本実施の形態に用いるクライアント端末のハードウエア構成例を示す図である。クライアント端末１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。
【００３７】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００３８】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。
【００３９】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００４０】
以上のようなハードウエア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、クライアント端末１００のハードウエア構成を示したが、他のクライアント端末２００，３００やライセンスサーバ４００も同様のハードウエアで実現できる。
【００４１】
図４は、クライアント端末の機能を示すブロック図である。クライアント端末１００は、ライセンス取得部１１０、ライセンス管理データベース（ＤＢ）１２０、緊急稼働ログ記憶部１３０、アプリケーション１４０、および実行管理部１５０を有している。
【００４２】
ライセンス取得部１１０は、ライセンスサーバ４００と通信し、アプリケーション１４０を実行するためのライセンスの取得を試み、ライセンス使用の可否を認可フラグ２１に出力する。ライセンス取得部１１０は、正常にライセンスを取得できた場合、実行許可を示すフラグの値”ＯＮ”を認可フラグ２１に設定する。認可フラグ２１は、例えば、ＲＡＭ１０２内に配置される。ライセンス取得部１１０は、ライセンス管理のために認可要求処理部１１１、諾否応答処理部１１２、および緊急稼働後処理部１１３を有している。
【００４３】
認可要求処理部１１１は、予め定めた時間間隔で、アプリケーション１４０の使用の許可を要求する使用認可要求をライセンスサーバ４００に発信する。認可要求には、クライアント端末１００のＭＡＣアドレスが含まれる。
【００４４】
なお、本実施の形態ではクライアント端末１００からの認可要求をトリガとしてライセンスの諾否を判断しているが、ライセンスサーバ４００がクライアント端末１００に対してポーリングを行い、ライセンスの諾否を判断する方式も可能である。ポーリングによってライセンスの諾否を判断する場合、ライセンスサーバ４００からクライアント端末１００に対して、アプリケーション１４０の起動の有無を確認する確認要求を送信する。そして、ライセンスサーバ４００は、確認要求に対する応答内容に基づいて、ライセンスの諾否を判断する。
【００４５】
諾否応答処理部１１２は、ライセンスサーバ４００から諾否応答を受け取る。諾否応答には、アプリケーション１４０の使用を許諾するのか否かを示す情報が含まれる。諾否応答処理部１１２は、諾否応答により使用が許諾されたときは、認可フラグ２１を”ＯＮ”にする。また、諾否応答処理部１１２は、諾否応答により使用が許諾されないときは、認可フラグ２１を”ＯＦＦ”にし、「認可されなかった」旨のメッセージをクライアント端末１００のモニタ１１に表示する。また、諾否応答処理部１１２は、認可要求処理部１１１から使用認可要求を出力したにも拘わらず諾否応答が返されない場合は、緊急稼働ログ記憶部１３０を参照し、認可フラグ２１を”ＯＮ”または”ＯＦＦ”にして、ライセンス管理の対象であるアプリケーション１４０の稼働を制御する。
【００４６】
緊急稼働後処理部１１３は、クライアント端末１００とライセンスサーバ４００の間の通信が回復して緊急稼働状態が終了した時点で、クライアント端末側の緊急稼働ログ記憶部１３０に記憶された情報をライセンスサーバ４００に送付する実務的な機能を執り行うが、本発明に対しては必須ではない。
【００４７】
なお、認可要求処理部１１１、諾否応答処理部１１２、および緊急稼働後処理部１１３は、ライセンス取得部１１０における一部の機能を個別に示したものである。すなわち、ライセンス取得部１１０は、ライセンス管理のために、認可要求処理部１１１、諾否応答処理部１１２、および緊急稼働後処理部１１３以外の機能も有している。例えば、ライセンス取得部１１０は、アプリケーション１４０の停止した場合には、認可フラグ２１を”ＯＦＦ”にして、ライセンスサーバ４００に対して使用終了通知を行う。また、ライセンス取得部１１０は、モバイルでの使用を示す操作入力（モバイル使用指示）が行われると、そのモバイル使用指示に応答して、ライセンス管理ＤＢ１２０内のモバイルフラグを”ＯＮ”にすると共に、ライセンスサーバ４００に対してモバイル使用通知を送信する。さらに、ライセンス取得部１１０は、モバイルでの使用の終了を示す操作入力（モバイル解除指示）が行われると、そのモバイル解除指示に応答して、ライセンス管理ＤＢ１２０内のモバイルフラグを”ＯＦＦ”にすると共に、ライセンスサーバ４００に対してモバイル解除通知を送信する。
【００４８】
なお、モバイル使用通知を送信できるのは、アプリケーション１４０の使用が認可されている場合（緊急稼働中以外で認可フラグ２１が”ＯＮ”の場合）のみである。すなわち、ライセンス取得部１１０は、モバイル使用指示を受け取ると緊急稼働ログ記憶部１３０を参照し、緊急稼働中か否かを判断する。緊急稼働ログ記憶部１３０に端末ＭＡＣアドレス以外に緊急稼働開始日時と緊急稼働終了日時の組みが少なくとも１つ登録されていれば、緊急稼働中である。稼働開始日時と緊急稼働終了日時の組みが全く登録されていなければ、緊急稼働中ではない。緊急稼働中でなく認可フラグ２１の値が”ＯＮ”であれば、ライセンスサーバ４００によってアプリケーション１４０の使用が認可されている。
【００４９】
ライセンス管理ＤＢ１２０は、クライアント端末１００のＭＡＣアドレスやライセンスサーバ４００のホスト名などのライセンス管理に必要な情報を記憶するデータベースである。例えば、ＨＤＤ１０３の記憶領域の一部にライセンス管理ＤＢ１２０が構築される。
【００５０】
緊急稼働ログ記憶部１３０は、アプリケーション１４０の緊急稼働による動作履歴を記憶するデータベースである。例えば、ＨＤＤ１０３の記憶領域の一部に緊急稼働ログ記憶部１３０が構築される。
【００５１】
アプリケーション１４０は、ライセンスサーバ４００でライセンスが管理されているソフトウエアである。アプリケーション１４０は、コマンド（一つの完結した処理の実行命令）が入力されるごとに、そのコマンドに応じた処理を実行する。なお、アプリケーション１４０に対して入力されるコマンドは、実行管理部１５０によって実行の可否が判断される。そして、アプリケーション１４０は、実行管理部１５０によってコマンドの実行が指示されたときに、該当するコマンドに対応する処理を実行する。
【００５２】
実行管理部１５０は、アプリケーション１４０に対するコマンドの実行の可否を判断する。具体的には、実行管理部１５０は、アプリケーション１４０に対するコマンドが入力されると、認可フラグ２１を参照する。認可フラグ２１が”ＯＮ”であれば、実行管理部１５０は、入力されたコマンドの実行を許可し、そのコマンドの実行をアプリケーション１４０に指示する。認可フラグ２１が”ＯＦＦ”であれば、実行管理部１５０は、入力されたコマンドの実行を保留し、認可フラグ２１が”ＯＮ”になるのを待つ。
【００５３】
次に、クライアント端末１００が有しているデータベースの内容について説明する。
図５は、クライアント端末のライセンス管理ＤＢのデータ構造例を示す図である。ライセンス管理ＤＢ１２０には、端末ＭＡＣアドレス、サーバホスト名、サーバＭＡＣアドレス、前回認可要求日時、前回許諾応答受領日時、認可要求サイクル、緊急稼働可能期間、モバイル使用期限、モバイルフラグ、およびモバイル運用開始時刻が登録されている。
【００５４】
端末ＭＡＣアドレスは、クライアント端末１００の通信インタフェース１０６に予め設定されたＭＡＣアドレスである。ＭＡＣアドレスにより、ネットワーク１０を経由した通信において、クライアント端末１００を一意に識別できる。端末ＭＡＣアドレスは、クライアント端末１００のシステム起動時の処理において、ブート通信インタフェース１０６内のＲＯＭからライセンス管理ＤＢ１２０に複写される。
【００５５】
サーバホスト名は、ライセンスサーバ４００の名称（ホスト名）である。ホスト名は、例えば図示していないＤＮＳ（Domain Name System）サーバによってＩＰ（Internet Protocol）アドレスに対応付けられている。ネットワーク１０上でＴＣＰ（Transmission Control Protocol）／ＩＰによる通信を行う際に、ホスト名を指定することでＤＮＳサーバによってＩＰアドレスが特定され、該当するＩＰアドレスを有する装置に対してパケットを送信できる。サーバホスト名は、ユーザの操作入力により予めライセンス管理ＤＢに登録される。
【００５６】
サーバＭＡＣアドレスは、ライセンスサーバ４００のＭＡＣアドレスである。サーバＭＡＣアドレスは、サーバホスト名を用いて、ＡＲＰ（Address Resolution Protocol）によって取得することができる。すなわち、ライセンス取得部１１０は、クライアント端末１００のシステム起動時にサーバホスト名に対応するＩＰアドレスをＤＮＳサーバから取得し、そのＩＰアドレスを指定したＡＲＰのリクエストをブロードキャストで送信する。すると、該当するＩＰアドレスを有するライセンスサーバ４００からＭＡＣアドレスを含む応答が返される。
【００５７】
前回認可要求日時は、前回認可要求を送信した日時である。前回認可要求日時は、認可要求が送信されるごとに、そのときの日時が設定される。
前回許諾応答受領日時は、前回許諾応答（許諾を示す諾否応答）を受領した日時である。前回許諾応答受領日時は、許諾応答を受信するごとに、そのときの日時が設定される。
【００５８】
認可要求サイクルは、クライアント端末１００から認可要求を送信する時間間隔である。認可要求サイクルは、予めユーザの操作入力に応じて設定される。
緊急稼働可能期間は、アプリケーション１４０を緊急稼働させることができる時間である。
【００５９】
モバイル使用期限は、モバイル動作を継続可能な期間である。モバイル使用期限は、クライアント端末１００起動時にライセンス取得部１１０がライセンスサーバ４００の認可条件記憶部４２０から取得し、ライセンス管理ＤＢ１２０に設定する。
【００６０】
モバイルフラグは、モバイル状態か否かを示す情報である。モバイル状態（オフライン状態）のとき、ライセンス取得部１１０によって、モバイルフラグが”ＯＮ”に設定される。また、オンライン状態のとき、ライセンス取得部１１０によって、モバイルフラグが”ＯＦＦ”に設定される。
【００６１】
モバイル運用開始時刻は、モバイル状態になった時刻である。モバイル運用開始時刻には、ライセンス取得部１１０によって、モバイルフラグが”ＯＮ”になったときに、そのときの時刻が設定され、モバイルフラグが”ＯＦＦ”になったときに、リセットされる（無効の値が設定される）。
【００６２】
図６は、クライアント端末の緊急稼働ログ記憶部のデータ構造例を示す図である。緊急稼働ログ記憶部１３０には、端末ＭＡＣアドレス、緊急稼働開始日時、および緊急稼働終了日時が登録されている。なお、端末ＭＡＣアドレスは、先頭に１つだけ登録されており、緊急稼働開始日時と緊急稼働終了日時は繰り返し登録される。
【００６３】
緊急稼働開始日時は緊急稼働を開始した日時であり、緊急稼働開始状態になった時点で書き込まれる。
緊急稼働終了日時は緊急稼働が終了した日時であり、クライアント端末とライセンスサーバ間の通信が復旧した日時と同じである。これは、ライセンスサーバとクライアント端末間の交信が失敗し緊急稼働状態になった時点で初期状態に設定される。つまり一つの緊急稼働開始日時と一つの緊急稼働終了日時との対が、緊急稼働一回当たりの緊急稼働期間を示す緊急稼働期間情報を構成している。
【００６４】
ここでは、緊急稼働開始日時と緊急稼働終了日時の繰り返しで緊急稼働を表現するデータ構造を実現しているが、実用的には緊急稼働継続日時を追加することもある。緊急稼働継続日時は緊急稼働状態が認識された最新の日時である。オーバタイムの把握などシステム管理上有用な情報である。しかしながら、ライセンス管理に関しては必須項目ではないので、ここでは説明を省略する。
【００６５】
なお他の実施例として、緊急稼働か定常かどうかのフラグ、たとえば緊急稼働のときは緊急稼働開始日時をセットするとしても問題ないし、緊急稼働継続日時をデータとして保有せず、緊急稼働が終了した時点で緊急稼働開始日時を消去する形式でも問題ない。
【００６６】
次に、ライセンスサーバ４００の機能について説明する。
図７は、ライセンスサーバの機能を示すブロック図である。ライセンスサーバ４００は、端末別緊急稼働ログ記憶部４１０、認可条件記憶部４２０、認可端末管理ＤＢ４３０、運行ログ記憶部４４０、緊急稼働ログ収集部４５０，認可条件設定部４６０、認可判定処理部４７０、運行ログ処理部４８０、および認可条件超過判定部４９０とライセンスサーバモニタ４９５を有している。
【００６７】
端末別緊急稼働ログ記憶部４１０は、クライアント端末１００，２００，３００それぞれの緊急稼働ログを記憶する。例えば、ライセンスサーバ４００内のＨＤＤの記憶領域の一部が、端末別緊急稼働ログ記憶部４１０として使用される。
【００６８】
認可条件記憶部４２０には、アプリケーションのライセンスの内容（認可条件）と、ライセンスに基づいて使用許可を与えるために必要な情報が格納されている。例えば、ライセンスサーバ４００内のＨＤＤの記憶領域の一部が、認可条件記憶部４２０として使用される。
【００６９】
認可端末管理ＤＢ４３０は、アプリケーションの使用を許諾したクライアント端末に関する情報を記憶するためのデータベースである。例えば、ライセンスサーバ４００内のＨＤＤの記憶領域の一部が、認可端末管理ＤＢ４３０として使用される。認可端末管理ＤＢ４３０には、認可端末ごとに稼働実績とモバイルとして運用する計画情報が格納される。認可端末管理ＤＢ４３０の内容は、クライアント端末からの認可要求に応答してアプリケーションの使用が認可されると自動的に更新される。また、認可端末管理ＤＢ４３０の内容は、クライアント端末からの認可要求に応答して（定常稼働）アプリケーションの使用が認可されるか、あるいは使用を認可したクライアント端末から使用終了通知を受けたときに自動的に更新される。
【００７０】
運行ログ記憶部４４０は、各クライアント端末１００，２００，３００におけるライセンス管理対象のアプリケーションの実行期間を記憶する。例えば、ライセンスサーバ４００内のＨＤＤの記憶領域の一部が、運行ログ記憶部４４０として使用される。
【００７１】
緊急稼働ログ収集部４５０は、ネットワーク１０に接続された各クライアント端末１００，２００，３００から緊急稼働ログを収集する。そして、緊急稼働ログ収集部４５０は、収集した緊急稼働ログを端末別緊急稼働ログ記憶部４１０に格納する。
【００７２】
認可条件設定部４６０は、ライセンス管理対象のアプリケーションに対して使用許可を与える条件を認可条件記憶部４２０に設定する。例えば、認可条件設定部４６０は、ライセンス管理対象のアプリケーションの販売元から、そのアプリケーションの使用ライセンスを取得し、取得した使用ライセンスに示される情報を認可条件記憶部４２０に設定する。なお、使用ライセンスには、同時に使用可能なクライアント端末の数や、アプリケーションを使用するクライアント端末として予め登録可能なクライアント端末数などが含まれる。
【００７３】
認可判定処理部４７０は、クライアント端末から送られた認可要求に応答し、認可条件記憶部４２０、および認可端末管理ＤＢ４３０に基づいて、そのクライアント端末にアプリケーションの使用を認可するか否かを判定する。そして、認可判定処理部４７０は、判定結果を示す諾否応答を、認可要求を出力したクライアント端末に送信する。また、認可判定処理部４７０は、アプリケーションの使用を許可した場合、認可端末管理ＤＢ４３０の内容を更新する。クライアント端末から使用終了通知を受け取ると、認可判定処理部４７０は、認可端末管理ＤＢ４３０から、使用終了通知を送信したクライアント端末に対応するレコードを削除する。
【００７４】
また、認可判定処理部４７０は、アプリケーションの使用を認可したクライアント端末からモバイル使用通知を受け取ると、認可端末管理ＤＢ４３０内のそのクライアント端末のＭＡＣアドレスに対応するモバイルフラグに”ＯＮ”（モバイル状態でのアプリケーションの使用中を示す）を設定する。逆に、認可判定処理部４７０は、モバイルフラグが”ＯＮ”のクライアント端末からモバイル解除通知を受け取ると、認可端末管理ＤＢ４３０内のそのクライアント端末のＭＡＣアドレスに対応するモバイルフラグに”ＯＦＦ”（オンライン使用中を示す）を設定する。
【００７５】
さらに、認可判定処理４７０は、アプリケーションの使用を認可したクライアント端末から定期的に送られるべき認可要求が途絶えると、そのクライアント端末に対する認可を取り消す。
【００７６】
運行ログ処理部４８０は、各クライアント端末１００，２００，３００によるアプリケーションの使用履歴を、運行ログとして運行ログ記憶部４４０に格納する。具体的には、運行ログ処理部４８０は、認可判定処理部４７０によってクライアント端末に対してアプリケーションの使用が認可されると、そのクライアント端末のＭＡＣアドレスと稼働開始日時（現在の日時）とに端末識別子を付加して、運行ログ記憶部４４０に登録する。また、運行ログ処理部４８０は、クライアント端末から使用終了通知を受け取ると、該当するクライアント端末のＭＡＣアドレスに対応付けて、稼働終了日時（現在の日時）を登録する。なお、運行ログ処理部４８０は、クライアント端末がモバイル状態の間は、アプリケーションが稼働中であるとみなす。
【００７７】
認可条件超過判定部４９０は、端末別緊急稼働ログ記憶部４１０と運行ログ記憶部４４０の内容に基づいて、認可条件記憶部４２０内の認可条件を超えたアプリケーションの使用が行われているか否かを判断する。そして、認可条件超過判定部４９０は、認可条件を超えてアプリケーションが使用されていた場合、その旨を示すアラームメッセージをライセンスサーバ４００に接続されたモニタに表示する。例えば、同時にアプリケーションを使用可能なクライアント端末数を超えてアプリケーションが同時使用されている場合に、超過して使用された時間の累計がライセンスサーバモニタ４９５に表示される。
【００７８】
次に、ライセンスサーバ４００で管理される情報の内容を具体的に説明する。
図８は、ライセンスサーバの端末別緊急稼働ログ記憶部のデータ構造の一例を示す図である。端末別緊急稼働ログ記憶部４１０には、各クライアント端末１００，２００，３００から収集した複数の緊急稼働ログが格納されている。緊急稼働ログの内容は、図６に示した緊急稼働ログ記憶部１３０に格納された緊急稼働ログと同様である。
【００７９】
図９は、ライセンスサーバの認可条件記憶部のデータ構造の一例を示す図である。認可条件記憶部４２０には、認可期限、認可端末数、認可可能端末数、モバイル使用期限、サーバホスト名、およびサーバＭＡＣアドレスが格納されている。なお、認可期限、認可端末数、および認可可能端末数は、管理対象のアプリケーションの提供者から与えられる情報である。
【００８０】
認可期限は、アプリケーションの使用が可能な最終期限である。認可端末数は、アプリケーションの使用を認可したクライアント端末の総数である。認可可能端末数は、アプリケーションの使用を同時に認可可能なクライアント端末の総数である。モバイル使用期限は、モバイル状態で使用可能な期間である。サーバホスト名は、ライセンスサーバ４００を、ＴＣＰ／ＩＰのネットワーク上で一意に識別するための名称（ホスト名）である。サーバＭＡＣアドレスは、ライセンスサーバ４００のＭＡＣアドレスである。
【００８１】
図１０は、ライセンスサーバの認可端末管理ＤＢのデータ構造の一例を示す図である。認可端末管理ＤＢ４３０には、アプリケーションの使用を許諾したクライアント端末ごとに、端末ＭＡＣアドレス、稼働開始日時、認可最終要求日時、認可要求サイクル、モバイルフラグ、およびモバイル運用開始時刻が設定されている。
【００８２】
端末ＭＡＣアドレスは、アプリケーションを使用するクライアント端末のＭＡＣアドレスである。稼働開始日時は、クライアント端末がアプリケーションの使用を開始した日時である。認可最終要求日時は、クライアント端末がアプリケーションの認可要求を最後に送信した日時である。認可要求サイクルとは、クライアント端末がアプリケーションの使用許諾を受けるべき時間間隔である。認可最終要求日時と認可要求サイクルに基づいて、ライセンスサーバはクライアントにライセンス使用認可を優先的に供与する。
【００８３】
モバイルフラグは、クライアント端末がネットワーク１０から切り離された状態でアプリケーションを使用していることを示すフラグである。例えば、アプリケーションを使用しているクライアント端末がネットワーク１０から切り離されているとき、モバイルフラグに”ＯＮ”が設定される。アプリケーションを使用しているクライアント端末がネットワーク１０に接続されているときは、モバイルフラグに”ＯＦＦ”が設定される。
【００８４】
モバイル運用開始時刻は、クライアント端末がモバイル状態となった時刻である。モバイル運用開始時刻には、モバイルフラグが”ＯＮ”になったときに、そのときの時刻が設定され、モバイルフラグが”ＯＦＦ”になったときに、リセットされる（無効の値が設定される）。
【００８５】
図１１は、ライセンスサーバの運行ログ記憶部のデータ構造の一例を示す図である。運行ログ記憶部４４０には、クライアント端末によるアプリケーションの使用実績として、端末識別子、端末ＭＡＣアドレス、稼働開始日時、稼働終了日時が設定される。端末識別子は、ライセンスサーバ４００内で各クライアント端末を一意に識別するための識別情報である。端末ＭＡＣアドレスは、端末識別子に対応するクライアント端末のＭＡＣアドレスである。稼働開始日時は、クライアント端末がアプリケーションの使用を開始した日時である。稼働終了日時は、クライアント端末がアプリケーションの使用を終了した日時である。
【００８６】
次に、本実施の形態におけるネットワークライセンス管理処理の内容を説明する。まず、１００を代表とするクライアント端末で実行される処理を説明する。
図１２は、図４のクライアント端末の実行管理部と諾否応答処理部で行われるコマンド実行管理処理の手順の一つの例を示す図である。以下、図１２に示す処理をステップ番号に沿って説明する。この処理は、ユーザからの操作入力によってアプリケーション１４０に対するコマンドが入力されたときに実行される。
【００８７】
ステップＳ１６の認可判定は諾否応答処理部１１２に属する。認可判定ステップＳ１６の詳細は後に詳しく説明されるが、その出力は認可フラグ２１である。
ステップＳ１１〜Ｓ１４は実行管理部１５０に属する。以下、実行管理部１５０の処理について説明する。
【００８８】
［ステップＳ１１］実行管理部１５０は、アプリケーション１４０に対して入力されたコマンドを取得する。
［ステップＳ１２］実行管理部１５０は、ライセンス取得部１１０が既に出力した認可フラグ２１が”ＯＫ”か否かを判断する。認可フラグ２１が”ＯＫ”であれば、処理はステップＳ１４に進められる。認可フラグ２１が”ＮＧ”であれば、処理はステップＳ１３に進められる。
【００８９】
［ステップＳ１３］実行管理部１５０は、認可フラグ２１が”ＮＧ”の場合、アプリケーション１４０を使用するライセンスを使用できないと認識し、所定時間待機する。その後、処理はステップＳ１２に進められる。
【００９０】
［ステップＳ１４］実行管理部１５０は、認可フラグ２１が”ＯＫ”であれば、入力されたコマンドを実行する。具体的には、実行管理部１５０は、入力されたコマンドに対応するプログラムの実行をアプリケーション１４０に指示する。すると、アプリケーション１４０が指示されたコマンドをディスパッチすることによって実行制御をコマンドのプログラムに移し実行する。その後コマンド処理が終了したならば、制御はステップＳ１１に移り次のコマンドを処理する過程が繰り返される。
【００９１】
このように実行管理部１５０は、認可フラグ２１が”ＯＫ”であることを条件にして、アプリケーション１４０に対してコマンドを実行させることができる。なお、アプリケーション１４０は、コマンドを実行中に認可フラグ２１が”ＮＧ”に変更されても、実行中のコマンドの処理は続行できる。
【００９２】
図１２左に示すように、前記の認可フラグ２１を出力するのはライセンス取得部１１０に属する諾否応答処理部１１２の中の認可判定ステップＳ１６である。認可判定ステップＳ１６は、ライセンスサーバ４００と通信を行い応答フラグを出力する認可判定前半処理ステップＳ１６ａと、前記応答フラグと緊急稼働情報１ｂａを参照して認可フラグ２１を出力し、緊急稼働情報１ｂａを更新する認可判定後半処理Ｓ１６ｂから構成される。
【００９３】
なお、認可判定処理ステップＳ１６は、概略図１においてはアプリケーション実行制御手段１ａの通信ステップＳ１および通信判定ステップＳ２に該当する。
ライセンスサーバ４００との通信は、処理時間が長い可能性があるコマンド実行ステップＳ１４を含むプロセスとは非同期で行うことが望ましいので、本実施例では別プロセスで行われる。
【００９４】
図１３は、ライセンス取得部内の諾否応答処理部に属する認可判定ステップＳ１６の前半の処理ステップＳ１６ａ（図１２参照）の手順を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
【００９５】
［ステップＳ２１］ライセンス取得部１１０は、実行管理部１５０を起動する。具体的には、ライセンス取得部１１０は、アプリケーション１４０のコマンドの実行を管理するためのプログラム（実行管理プログラム、またはモニタ）の実行要求をＯＳに対して出力する。つまり、クライアント端末１００のＯＳに実行管理プログラムを実行するためのプロセスを生成させ、そのプロセスに実行管理プログラム（モニタ）を実行させる。通信、通信判定と実行管理部は別プロセスとなるので、応答フラグの更新と参照は非同期で独立に行われることになる。
【００９６】
また逆に実行管理部が認可判定前半処理ステップＳ１６ａを実行するためのプロセスを発生するようにしても問題ない。
［ステップＳ２２］認可判定前半処理ステップＳ１６ａでは、ライセンス管理ＤＢ１２０を参照し、前回認可要求日時から認可要求サイクルで示された時間経過するまで待機する。なお、アプリケーション１４０起動後、最初の認可要求送信前であれば、当該待機処理は不要である。
【００９７】
［ステップＳ２３］認可判定前半処理ステップＳ１６ａでは、アプリケーション１４０が終了している可能性があるので、アプリケーション１４０が存在するか否かを検査する。具体的には、ライセンス取得部１１０は、ＯＳが起動させているプロセスの中から、アプリケーション１４０を実行中のプロセスを検索する。
【００９８】
［ステップＳ２４］ライセンス取得部１１０は、アプリケーション１４０が存在する場合、処理をステップＳ２６に進め、アプリケーション１４０が存在しない場合、処理を時間待ちステップＳ２２に進める。
【００９９】
［ステップＳ２６］認可判定前半処理ステップＳ１６ａでは、アプリケーション１４０が存在する場合、ライセンス管理ＤＢ１２０内のモバイルフラグが”ＯＮ”か否かを判断する。モバイルフラグが”ＯＮ”であれば、処理がステップＳ２７に進められる。モバイルフラグが”ＯＦＦ”であれば、処理はステップＳ２９に進められる。
【０１００】
［ステップＳ２７］認可判定前半処理ステップＳ１６ａでは、モバイル使用期限を過ぎているか否かを判断する。具体的には、ライセンス取得部１１０は、ライセンス管理ＤＢ１２０を参照し、モバイル運用開始時刻から現在までの経過時間が、モバイル使用期限を過ぎているか否かを判断する。モバイル使用期限が過ぎている場合、処理はステップＳ２８に進められる。モバイル使用期限が過ぎていなければ、処理はステップＳ２２に進められる。
【０１０１】
［ステップＳ２８］ライセンス取得部１１０の認可判定前半処理ステップＳ１６ａでは、ライセンス管理ＤＢ１２０内のモバイルフラグを”ＯＦＦ”にし、処理をステップＳ２９に進める。
【０１０２】
［ステップＳ２９］認可判定前半処理ステップＳ１６ａでは、アプリケーション１４０が存在する場合、認可要求を発信する。具体的には、ライセンス取得部１１０は、認可要求処理部１１１に対して、認可要求の送信を指示する。すると、認可要求処理部１１１は、ライセンス管理ＤＢ１２０を参照し、端末ＭＡＣアドレス、サーバホスト名、サーバＭＡＣアドレスを取得する。そして、認可要求処理部１１１は、サーバホスト名で示されるライセンスサーバ４００に対して、アプリケーション１４０の使用の認可を要求するパケットを生成し、そのパケットを含むフレームの宛先にサーバＭＡＣアドレスを設定して、ネットワーク１０上に送信する。このとき、認可要求処理部１１１は、ライセンス管理ＤＢ１２０内の前回認可要求日時を更新する。すなわち、認可要求処理部１１１は、前回認可要求日時として現在の日時を設定する。
【０１０３】
したがって、アプリケーションが存在する限り認可要求がライセンスサーバに送られ、ライセンスサーバが正常に機能する限り、以下のステップによって優先的に認可応答が返ってくることになる。
【０１０４】
［ステップＳ３０］認可判定前半処理ステップＳ１６ａでは、所定時間だけライセンスサーバ４００からの応答を待つ。
［ステップＳ３１］認可判定前半処理ステップＳ１６ａでは、ライセンスサーバ４００から諾否応答が送信された場合、その諾否応答を取得する。その後、処理はステップＳ３２に進められる。また、所定の時間内に諾否応答がない場合も、処理はステップＳ３２に進められる。
【０１０５】
［ステップＳ３２］認可判定前半処理ステップＳ１６ａでは、所定の時間内に諾否応答があるかどうか検査する。所定の時間内に諾否応答があれば、処理はステップＳ３４に進められる。所定の時間内に諾否応答がなければ、処理はステップＳ３３に進められる。
【０１０６】
［ステップＳ３３］認可判定前半処理ステップＳ１６ａでは、所定の時間内に諾否応答がなければ（交信失敗の場合）応答フラグに応答なしのフラグ”Ｎｏｎｅ”を立てる。その後ステップＳ２２の時間待ちに進む。
【０１０７】
［ステップＳ３４］認可判定前半処理ステップＳ１６ａでは、ステップＳ３１の応答が許諾応答かどうかどうか検査する。応答が許諾応答であれば、処理はステップＳ３６に進められる。応答が許諾応答でなければ、処理はステップＳ３５に進められる。
【０１０８】
［ステップＳ３５］認可判定前半処理ステップＳ１６ａでは、ステップＳ３１の応答が許諾応答でなければ応答フラグに許諾応答でないというフラグ”ＮＧ”を立てる。その後ステップＳ２２の時間待ちに進む。
【０１０９】
［ステップＳ３６］認可判定前半処理ステップＳ１６ａでは、ステップＳ３１の応答が許諾応答であれば応答フラグに許諾応答であるというフラグ”ＯＫ”を立てる。その後ステップＳ２２の時間待ちに進む。
【０１１０】
図１４は、ライセンス取得部における認可判定のステップＳ１６の後半の処理ステップＳ１６ｂの手順を示すフローチャートである。本実施例の本ステップのアウトプットは、コマンドの稼働を制御する認可フラグ２１と、緊急稼働情報１ｂａの更新である。以下、図１４に示す処理をステップ番号に沿って説明する。なお、図１４の流れの概要は既に図１に示されている。
【０１１１】
［ステップＳ３３ａ］本ステップは、認可判定前半処理ステップＳ１６ａを構成するステップＳ３３に対応する。ステップＳ３３は、所定の時間内に諾否応答がなければ、応答フラグにライセンスサーバ４００から応答なしのフラグ”Ｎｏｎｅ”を既に立てている。これに基づいて実行管理部１５０の認可判定後半処理Ｓ１６ａは認可フラグ２１を算出する。
【０１１２】
応答なしのフラグ”Ｎｏｎｅ”が立っている場合はステップＳ３７に、応答があるフラグの場合はステップＳ３６ａを経由して、応答フラグが許諾応答”ＯＫ”ならばステップＳ４２の定常稼働処理に、応答フラグが拒絶応答”ＮＧ”ならばステップＳ４４の定常稼働停止処理に進む。
【０１１３】
［ステップＳ３７］応答フラグにライセンスサーバ４００から応答なしのフラグが立っている場合は、実行管理部１５０の認可判定後半処理Ｓ１６ｂでは、緊急稼働中かどうかの判定を、記憶手段１ｂの緊急稼働情報の稼働形態情報に対応する情報に基づいて行う（判断基準の詳細はステップＳ５３の説明参照）。
【０１１４】
もし、稼働形態が緊急稼働状態を呈しているならば、ステップＳ３９の緊急稼働継続可能性判定処理に進む。もし、稼働形態が緊急稼働中でない、すなわち定型稼働状態を呈しているならば、ステップＳ３８の緊急稼働開始処理に進む。
【０１１５】
［ステップＳ３８］ライセンス取得部１１０の認可判定後半処理Ｓ１６ｂの緊急稼働開始処理の詳細について図１５を用いて説明する。
図１５は、緊急稼働開始処理の手順を示すフローチャートである。
【０１１６】
［ステップＳ５１］認可判定後半処理Ｓ１６ｂでは、認可フラグ２１を”ＯＮ”に設定する。これにより実行管理部のコマンド実行管理処理に示した機構によって（図１２）、コマンドが起動する。
【０１１７】
［ステップＳ５２］認可判定後半処理Ｓ１６ｂでは、緊急稼働開始日時を書き込む。具体的には、諾否応答処理部１１２は、現在の日時を、緊急稼働ログ記憶部１３０に緊急稼働開始日時として追加登録する。
【０１１８】
［ステップＳ５３］認可判定後半処理Ｓ１６ｂでは、緊急稼働終了日時の初期値を書き込む（初期化する）。具体的には、諾否応答処理部１１２は初期値０を、緊急稼働ログ記憶部１３０に緊急稼働終了日時として追加登録する。本実施例では、端末別緊急稼働ログ記憶部４１０中の緊急稼働終了日時（クライアント端末１００とライセンスサーバ４００の通信が回復したときに通信回復日時が設定される）が初期化されている（初期値が設定されている）ことが、稼働形態情報として緊急稼働状態であることを意味している。
【０１１９】
［ステップＳ５４］認可判定後半処理Ｓ１６ｂは、緊急稼働開始メッセージ「緊急稼働中」をクライアント端末１００のモニタ１１に表示する。本ステップは緊急稼働開始に付随する実務的な処理を行うステップである。その後、緊急稼働開始処理Ｓ３８が終了する。
【０１２０】
［ステップＳ３９］ライセンス取得部１１０の認可判定後半処理Ｓ１６ｂでは、ライセンスサーバ４００から応答なしであって、稼働形態情報が緊急稼働状態を呈するとき、緊急稼働を継続するかどうかの判定を行う。
【０１２１】
具体的には、緊急稼働ログ記憶部１３０の緊急稼働開始日時とライセンス管理ＤＢ１２０の緊急稼働可能期間より、緊急稼働継続可能日時を算出する。なお、緊急稼働期間の計算は、単純なカレンダを基にすることもあるし、稼働日を基にすることもある。
【０１２２】
もし、現在の日時が緊急稼働継続可能日時の前ならば緊急稼働継続期間中であると判定し、ステップＳ４０の緊急稼働継続処理に進む。
そうでなければ緊急稼働継続期間中ではないと判定し、ステップＳ４１の緊急稼働停止処理に進む。
【０１２３】
［ステップＳ４０］ライセンス取得部１１０の認可判定後半処理Ｓ１６ｂでは、稼働形態が緊急稼働状態を呈し、現時点が緊急稼働継続可能範囲内ならば緊急稼働を継続する。具体的には、ステップＳ５１の認可フラグ２１を”ＯＮ”に設定し、ステップＳ５４の緊急稼働開始メッセージ出力処理を行う。すなわち、図１５においてステップＳ５２、５３が不在としたときの手順を実施する。これにより実行管理部のコマンド実行管理処理に示した機構（図１２）によって、コマンドが起動する。
【０１２４】
［ステップＳ４１］ライセンス取得部１１０の認可判定後半処理Ｓ１６ｂでは、稼働形態が緊急稼働状態を呈し、緊急稼働継続可能範囲内でないならば緊急稼働を停止する。具体的には、図１６に示すように、ステップＳ５６で認可フラグ２１を”ＯＦＦ”に設定し、ステップＳ５７で緊急稼働終了メッセージ「緊急稼働停止」をクライアント端末１００のモニタ１１に表示する。これにより実行管理部のコマンド実行管理処理に示した機構（図１２）によって、コマンドは起動されない。
【０１２５】
［ステップＳ４２］ライセンス取得部１１０の認可判定後半処理Ｓ１６ｂでは、応答フラグが定常稼働を許容することを意味する”ＯＫ”であるならば、定常稼働を実現する。具体的には、認可フラグ２１を”ＯＮ”に設定する。これにより実行管理部コマンド実行管理処理に示した機構によって、コマンドが起動する。この後、ステップＳ４３の定常稼働復帰処理に進む。
【０１２６】
［ステップＳ４３］ライセンス取得部１１０の認可判定後半処理では、緊急稼働状態から定常稼働状態に復帰した場合は、特別な処理である定常稼働復帰処理を行う。
図１７を用いて定常稼働復帰処理を構成するステップについて順に説明する。
【０１２７】
［ステップＳ６１］定常稼働復帰処理Ｓ４３を構成する最初のステップは、定常稼働状態を呈するように稼働形態情報を更新する処理である。本実施の形態の場合は、端末別緊急稼働ログ記憶部４１０中の緊急稼働終了日時（クライアント端末１００とライセンスサーバ４００との通信回復日時）が初期状態であるかどうか検査した後、初期状態であれば現時刻を緊急稼働終了日時に書き込む。これは、緊急稼働情報中の稼働形態情報が定常稼働状態を呈することを意味する。
【０１２８】
［ステップＳ６２］ライセンス取得部１１０の認可判定後半処理Ｓ１６ｂでは、緊急稼働終了をライセンスサーバ４００に通知する。具体的には、諾否応答処理部１１２は、緊急稼働が終了したことを示す情報と共に、現在緊急稼働ログ記憶部１３０に格納されている緊急稼働ログをライセンスサーバ４００に送信する。
【０１２９】
［ステップＳ６３］ライセンス取得部１１０の認可判定後半処理Ｓ１６ｂでは、定常稼働開始メッセージ「定常稼働開始」をクライアント端末１００のモニタ１１に表示する。
以上でステップＳ４３は終了する。
【０１３０】
［ステップＳ４４］ライセンス取得部１１０の認可判定後半処理Ｓ１６ｂでは、応答フラグが定常稼働を許容しないことを意味する”ＮＧ”であるならば、定常稼働が実現しない状態にする。具体的には、認可フラグ２１を”ＯＦＦ”に設定する。これにより実行管理部コマンド実行管理処理に示した機構によって、コマンドの起動が阻止される。この後、ステップＳ４３の定常稼働復帰処理に進む。
【０１３１】
以上のようにして、クライアント端末１００においてアプリケーション１４０を緊急稼働させることができる。
次に、ライセンスサーバ４００における認可判定処理を説明する。
【０１３２】
図１８は、認可判定処理の手順を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。なお、この処理は、いずれかのクライアント端末からライセンスサーバ４００に対して認可要求が送信されたときに実行される処理である。
【０１３３】
［ステップＳ８１］ライセンスサーバ４００の認可判定処理部４７０は、認可期限が過ぎているか否かを判断する。具体的には、認可判定処理部４７０は、認可条件記憶部４２０に設定された認可期限と現在時刻とを比較し、現在時刻が認可期限を過ぎているか否かを判断する。認可期限を過ぎている場合、処理がステップＳ８２に進められる。認可期限を過ぎていない場合、処理がステップＳ８３に進められる。
【０１３４】
［ステップＳ８２］認可判定処理部４７０は、認可期限が過ぎている場合、認可要求を送信したクライアント端末に対して拒絶応答（拒絶を示す諾否応答）を送信する。その後、処理が終了する。
【０１３５】
［ステップＳ８３］の認可判定処理部４７０は、認可期限が過ぎていない場合、クライアント端末１００から送信された認可要求信号を受信する。
［ステップＳ８４］認可判定処理部４７０は、認可端末管理ＤＢ４３０から、認可要求を送信したクライアント端末のＭＡＣアドレスを探索する。
【０１３６】
［ステップＳ８５］認可判定処理部４７０は、ＭＡＣアドレスが検出された場合、処理をステップＳ８６に進める。また、認可判定処理部４７０は、ＭＡＣアドレスが検出されなかった場合、処理をステップＳ８８に進める。
【０１３７】
［ステップＳ８６］認可判定処理部４７０は、認可端末管理ＤＢ４３０を更新する。具体的には、認可判定処理部４７０は、認可端末管理ＤＢ４３０内の認可要求を出力したクライアント端末のＭＡＣアドレスに対応付けられた認可最終要求日時を、現在の日時に更新する。
【０１３８】
［ステップＳ８７］認可判定処理部４７０は、許諾応答（アプリケーションの使用の許諾を示す諾否応答）を、認可要求を送信したクライアント端末に送信する。その後、ライセンス管理処理が終了する。
【０１３９】
［ステップＳ８８］認可判定処理部４７０は、認可要求を送信したクライアント端末のＭＡＣアドレスが認可端末管理ＤＢに登録されていない場合、そのクライアント端末に対してアプリケーションの使用を許諾したときに認可可能端末数を超えるか否かを判断する。具体的には、認可判定処理部４７０は、認可条件記憶部４２０内の認可端末数が認可可能端末数以上であるか（認可端末を増加させると、認可端末数が認可可能端末数を超えるか）否かを判断する。認可端末数が認可可能端末数以上であれば、処理がステップＳ８９に進められる。認可端末数が認可可能端末数未満であれば、処理がステップＳ９０に進められる。
【０１４０】
［ステップＳ８９］認可判定処理部４７０は、認可要求を送信したクライアント端末に対して拒絶応答（拒絶を示す諾否応答）を送信する。その後、ライセンス管理処理が終了する。
【０１４１】
［ステップＳ９０］認可判定処理部４７０は、認可端末数が認可可能端末数未満であれば、認可端末管理ＤＢ４３０を更新する。具体的には、認可判定処理部４７０は、認可端末管理ＤＢ４３０に対して、認可要求を送信したクライアント端末に対応するレコードを追加する。そのレコードの端末ＭＡＣアドレスには、認可要求を送信したクライアント端末のＭＡＣアドレスが設定される。また、現在の日時が、稼働開始日時として設定される。さらに、認可要求に含まれる認可要求サイクルが、新たに登録されたレコードの認可要求サイクルとして設定される。また、認可判定処理部４７０は、認可条件記憶部４２０内の許可端末数に１を加算する。
【０１４２】
［ステップＳ９１］認可判定処理部４７０は、認可要求を送信したクライアント端末に対して、許諾応答（許可を示す諾否応答）を送信する。その後、ライセンス管理処理が終了する。
【０１４３】
このようにして、認可要求に応じた諾否判定を行うことができる。
次に、ライセンスサーバ４００で行われる認可取り消し処理について説明する。
図１９は、認可取り消し処理の手順を示すフローチャートである。以下、図１９に示す処理をステップ番号に沿って説明する。この処理は、所定の間隔（例えば、認可要求サイクルの最小値より短い間隔）で定期的に実行される。
【０１４４】
［ステップＳ１０１］認可判定処理部４７０は、認可期限が過ぎているか否かを判断する。具体的には、認可判定処理部４７０は、認可条件記憶部４２０に設定された認可期限と現在時刻とを比較し、現在時刻が認可期限を過ぎているか否かを判断する。認可期限を過ぎている場合、処理がステップＳ１０２に進められる。認可期限を過ぎていない場合、処理がステップＳ１０３に進められる。
【０１４５】
［ステップＳ１０２］認可判定処理部４７０は、認可期限が過ぎている場合、全てのクライアント端末の認可を取り消す。具体的には、認可判定処理部４７０は、認可端末管理ＤＢ４３０から、全てのレコードを削除する。その後、処理が終了する。
【０１４６】
［ステップＳ１０３］認可判定処理部４７０は、認可期限が過ぎていなければ、認可要求が途絶えたクライアント端末を検索する。具体的には、認可判定処理部４７０は、認可端末管理ＤＢ４３０を参照し、各クライアント端末の認可最終要求日時から現在までの経過時間と、認可要求サイクルとを比較する。そして、認可判定処理部４７０は、経過時間が認可要求サイクルを超えていれば、認可要求が途絶えていると判断する。
【０１４７】
［ステップＳ１０４］認可判定処理部４７０は、認可要求が途絶えたクライアント端末があるか否かを判断する。該当するクライアント端末があれば、処理がステップＳ１０５に進められる。該当するクライアント端末がなければ、処理が終了する。
【０１４８】
［ステップＳ１０５］認可判定処理部４７０は、認可要求が途絶えたクライアント端末がある場合、認可端末管理ＤＢ４３０を参照し、そのクライアント端末のモバイルフラグが”ＯＮ”か否かを判断する。モバイルフラグが”ＯＮ”であれば、処理がステップＳ１０６に進められる。モバイルフラグが”ＯＦＦ”であれば、処理がステップＳ１０７に進められる。
【０１４９】
［ステップＳ１０６］認可判定処理部４７０は、クライアント端末のモバイル状態が、モバイル使用期限を経過しているか否かを判断する。具体的には、認可判定処理部４７０は、認可端末管理ＤＢ４３０を参照し、モバイル状態のクライアント端末のモバイル運用開始時刻から現在までの経過時間と、認可条件記憶部４２０に示されるモバイル使用期限とを比較する。経過時間の方が大きければ、モバイル使用期限を経過しているものと判断される。モバイル使用期限を経過している場合、処理がステップＳ１０７に進められる。モバイル使用期限を経過していなければ、処理が終了する。
【０１５０】
［ステップＳ１０７］認可判定処理部４７０は、ステップＳ１０３で検出されたクライアント端末に対するアプリケーションの使用の認可を取り消す。具体的には、認可判定処理部４７０は、認可端末管理ＤＢ４３０から、ステップＳ１０３で検出されたクライアント端末に関するレコードを削除する。その後、処理が終了する。
【０１５１】
このように、クライアント端末１００，２００，３００においてアプリケーションを一定の制限下で緊急稼働可能とすることで、ライセンスサーバ４００の障害、あるいはネットワーク１０の通信回線障害の発生によって、クライアント端末１００，２００，３００に搭載されたアプリケーションが使用不能状態に陥ることを回避できる。しかも、ライセンスサーバ４００を冗長化する必要もないため、アプリケーションの安定運用のために必要なハードウエア、およびソフトウエア資源も少なくて済む。この際、緊急稼働ログ（緊急稼働の履歴情報）を保存しておき、障害が復旧したときに緊急稼働ログを収集することで、事後的に使用制限を超えたアプリケーションの使用の有無を判断することができる。緊急稼働があったことで使用制限を超えたアプリケーションの使用が検出された場合、ライセンス提供者は、ユーザに追加料金を請求したり、次回のライセンス提供の際に、使用可能端末数を増加させた新規契約を結ぶようにユーザに働きかけることができる。
【０１５２】
また、クライアント端末がオフラインの状態（ライセンスサーバ４００と通信できない状態）でも、予めモバイル使用の指示を入力しておけば、所定期間内はアプリケーションの使用を可能とした。これにより、モバイル端末でアプリケーションを使用し、顧客先でアプリケーションを用いたデモンストレーションを行うといった柔軟な運用が可能となる。例えば、アプリケーションが３次元ＣＡＤアプリケーションであれば、モバイル運用により、オフラインで３次元ＣＡＤデータによる製品の立体表示を行うことができる。
【０１５３】
しかも、モバイル状態の端末については、定期的な認可要求が途絶えていても、ライセンスサーバ４００において認可状態として扱うことで、モバイル状態のクライアント端末を含めて使用可能端末数をカウントすることができる。
【０１５４】
さらに、アプリケーションに対するコマンド実行時に認可フラグ２１が”ＯＮ”であれば、そのコマンドが終了するまで実行できるようにした。すなわち、コマンド実行中に認可フラグ２１が”ＯＦＦ”になったとしても、既に実行されているコマンドは、そのコマンドで指示された処理の終了まで実行できる。これにより、例えばＣＡＤシステムの図形処理コマンドのように比較的処理単位が大きい（処理に時間がかかる）場合であっても、アプリケーションの機能を動的に停止させることができる。
【０１５５】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、クライアント端末１００，２００，３００やライセンスサーバ４００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disc）などがある。
【０１５６】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１５７】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１５８】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【０１５９】
（付記１）  ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔で、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信ステップと、
前記通信ステップで前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始ステップと、
前記緊急稼働判定ステップで緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止ステップと、
前記通信ステップで前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新ステップと、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行ステップと、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止ステップと、
を実行させるアプリケーション実行制御プログラム。
【０１６０】
（付記２）  前記稼働形態情報として、緊急稼働を開始した日時と対をなす、前記管理対象プログラムを実行する前記コンピュータと前記ライセンス管理装置の間の通信が回復した日時を使用することを特徴とする付記１記載のアプリケーション実行制御プログラム。
【０１６１】
（付記３）  前記稼働状態判別情報として、緊急稼働の開始と対をなす、前記管理対象プログラムを実行するコンピュータと前記ライセンス管理装置間の通信の回復に基づいて生成したフラグを使用することを特徴とする付記１記載のアプリケーション実行制御プログラム。
【０１６２】
（付記４）  前記稼働状態判別情報として、緊急稼働の開始と対をなす、前記管理対象プログラムを実行するコンピュータと前記ライセンス管理装置間の通信の回復によって、前記緊急稼働を開始した日時を消去することを特徴とする付記１記載のアプリケーション実行制御プログラム。
【０１６３】
（付記５）  前記コンピュータに、さらに、
前記通信ステップで前記ライセンス管理装置と通信できた場合において、前記記憶手段に前記緊急稼働情報が格納されている場合、前記緊急稼働情報を前記ライセンス管理装置に送信し、前記記憶手段内の前記緊急稼働情報を消去するする初期化ステップを実行させることを特徴とする付記１記載の実行制御プログラム。
【０１６４】
（付記６）  前記コンピュータに、さらに、
前記コンピュータが前記ライセンス管理装置と通信できる状態でモバイル使用を指示する操作入力を受け付けた場合、所定のモバイル使用期限だけ次回の前記通信ステップの実行を延期するオフライン使用ステップを実行させることを特徴とする請求項１記載のアプリケーション実行制御プログラム。
【０１６５】
（付記７）  前記オフライン使用ステップでは、前記通信ステップで前記ライセンス管理装置と通信でき、かつ該ライセンス管理装置から前記認可応答を受信した後、次回の前記通信ステップの実行前に、モバイル使用を指示する操作入力を受け付けた場合、該ライセンス管理装置に対してモバイル使用通知を送信することを特徴とする付記６記載の実行制御プログラム。
【０１６６】
（付記８）  前記実行継続ステップでは、前記プログラム実行手段に対して前記管理対象プログラムに用意されたコマンドの実行の許可を示す認可フラグを有効に設定することで、該プログラム実行手段に該管理対象プログラムを継続して実行させ、
前記実行中断ステップでは、前記認可フラグを無効に設定することで、前記プログラム実行手段に前記管理対象プログラムの実行を中断させることを特徴とする付記１記載の実行制御プログラム。
【０１６７】
（付記９）  ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔での、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信ステップと、
前記通信ステップで前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始ステップと、
前記緊急稼働判定ステップで緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止ステップと、
前記通信ステップで前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新ステップと、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行ステップと、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止ステップと、
を実行するアプリケーション実行制御方法。
【０１６８】
（付記１０）  ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔での、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信手段と、
前記通信手段で前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定手段と、
前記緊急稼働判定手段で緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始手段と、
前記緊急稼働判定手段で緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続手段と、
前記緊急稼働判定手段で緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止手段と、
前記通信手段で前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新手段と、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行手段と、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止手段と、
を有するアプリケーション実行制御装置。
【図面の簡単な説明】
【０１６９】
【図１】本実施の形態の概要を示す図である。
【図２】本実施の形態のシステム構成例を示す図である。
【図３】本実施の形態に用いるクライアント端末のハードウエア構成例を示す図である。
【図４】クライアント端末の機能を示すブロック図である。
【図５】クライアント端末のライセンス管理ＤＢのデータ構造例を示す図である。
【図６】クライアント端末の緊急稼働ログ記憶部のデータ構造例を示す図である。
【図７】ライセンスサーバの機能を示すブロック図である。
【図８】ライセンスサーバの端末別緊急稼働ログ記憶部のデータ構造の一例を示す図である。
【図９】ライセンスサーバの認可条件記憶部のデータ構造の一例を示す図である。
【図１０】ライセンスサーバの認可端末管理ＤＢのデータ構造の一例を示す図である。
【図１１】ライセンスサーバの運行ログ記憶部のデータ構造の一例を示す図である。
【図１２】クライアント端末の実行管理部と諾否応答処理部で行われるコマンド実行管理処理の手順の一つの例を示す図である。
【図１３】ライセンス取得部内の諾否応答処理部に属する認可判定ステップの前半の処理ステップの手順を示すフローチャートである。
【図１４】ライセンス取得部における認可判定のステップＳ１６の後半の処理ステップＳ１６ｂの手順を示すフローチャートである。
【図１５】緊急稼働開始処理の手順を示すフローチャートである。
【図１６】緊急稼働停止処理の手順を示すフローチャートである。
【図１７】定常稼働復帰処理の手順を示すフローチャートである。
【図１８】諾否判定処理の手順を示すフローチャートである。
【図１９】認可取り消し処理の手順を示すフローチャートである。
【符号の説明】
【０１７０】
１  クライアント端末
１ａ  アプリケーション実行制御手段
１ｂ  記憶手段
１ｂａ  緊急稼働情報
１ｃ  プログラム実行手段
１ｃａ  管理対象プログラム
２  ライセンス管理装置
【図１】
0005157591.tif 000002
【図２】
0005157591.tif 000003
【図３】
0005157591.tif 000004
【図４】
0005157591.tif 000005
【図５】
0005157591.tif 000006
【図６】
0005157591.tif 000007
【図７】
0005157591.tif 000008
【図８】
0005157591.tif 000009
【図９】
0005157591.tif 000010
【図１０】
0005157591.tif 000011
【図１１】
0005157591.tif 000012
【図１２】
0005157591.tif 000013
【図１３】
0005157591.tif 000014
【図１４】
0005157591.tif 000015
【図１５】
0005157591.tif 000016
【図１６】
0005157591.tif 000017
【図１７】
0005157591.tif 000018
【図１８】
0005157591.tif 000019
【図１９】
0005157591.tif 000020