アプリケーション実行制御プログラム、アプリケーション実行制御方法、およびアプリケーション実行制御装置
【課題】ライセンスを管理する装置との間の通信が途絶えたクライアントにおいてもソフトウエアを制限付きで使用できるようにする。
【解決手段】ライセンス管理装置2との間の通信およびライセンス使用の認可応答の取得を試みる(ステップS1)。ライセンス管理装置2と通信できない場合、緊急稼働状況が所定の緊急稼働可能判定をする(ステップS2,3)。緊急稼働開始可能と判定された場合、記憶手段16内の緊急稼働開始日時を更新する(ステップS4)。緊急稼働可能継続と判定された場合、プログラム実行手段1cに管理対象プログラム1caを継続して実行させる(ステップS5)。いずれでもないと判定された場合、管理対象プログラム1caの実行を中断させる(ステップS6)。ライセンス管理装置2と通信でき、記憶手段に緊急稼働状態と記憶されていれば緊急稼働状態を解除する。
【解決手段】ライセンス管理装置2との間の通信およびライセンス使用の認可応答の取得を試みる(ステップS1)。ライセンス管理装置2と通信できない場合、緊急稼働状況が所定の緊急稼働可能判定をする(ステップS2,3)。緊急稼働開始可能と判定された場合、記憶手段16内の緊急稼働開始日時を更新する(ステップS4)。緊急稼働可能継続と判定された場合、プログラム実行手段1cに管理対象プログラム1caを継続して実行させる(ステップS5)。いずれでもないと判定された場合、管理対象プログラム1caの実行を中断させる(ステップS6)。ライセンス管理装置2と通信でき、記憶手段に緊急稼働状態と記憶されていれば緊急稼働状態を解除する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムの実行を制御するアプリケーション実行制御プログラム、アプリケーション実行制御方法、およびアプリケーション実行制御装置に関し、特に定期的に使用の許諾を受ける必要がある管理対象プログラムの実行を制御するアプリケーション実行制御プログラム、アプリケーション実行制御方法、およびアプリケーション実行制御装置に関する。
【背景技術】
【0002】
商用ソフトウエアでは、しばしばそのソフトウエアを使用できる端末のライセンス制限がなされる。使用制限の方法としては、例えば、ドングルなどと呼ばれる物理的な端子やプロダクトキーと、端末の識別子との対応関係を固定しておく。そして、ドングルやプロダクトキーに対応する端末でのみソフトウエアを使用可能にし、他の端末では使用できないようにする。このような使用制限方法は、ノードロックライセンスまたは固定ライセンスと呼ばれている。この使用制限方法では、端末に対して個別にライセンスを付与することとなり、端末の入れ替えや新規追加を行えば、ライセンスの再発行が必要である。
【0003】
ところで、企業で業務に使用されるソフトウエアには、LAN(Local Area Network)に接続された多数の端末に実装しておく必要はあるが、各端末での使用機会は断続的でしかないものがある。このようなソフトウエアを同時に使用する端末は、全体の端末の一部でしかない。このようなソフトウエアであれば、同時に使用される端末の数を制限する、いわゆるフローティングライセンス、フレキシブルライセンスなどと呼ばれるライセンス管理方式を利用することができる。このライセンス管理方式は、全ての端末に対する個別のライセンスを取得する必要がなくライセンス取得コストが低く抑えられると共に、ライセンス管理の一元化による利便性の向上が図れる。
【0004】
フローティングライセンス、フレキシブルライセンスなどと呼ばれるライセンス管理方式の一つに、ネットワークライセンス管理と呼ばれる方式がある。ネットワークライセンス管理方式は、LANにライセンスサーバと呼ばれる特別な管理用の計算機を設置する。ライセンスサーバは管理対象である端末上でのソフトウエアの稼働状態をオンラインで把握する。そして、ライセンスサーバは、管理対象とするソフトウエアが稼働する端末の数を制限する。
【0005】
ネットワークライセンス方式では、ライセンスサーバは、クライアントの固有情報とライセンスキーとを含むライセンス要求をクライアントから受信する。クライアントの固有情報は、例えば、クライアントのMAC(Media Access Control)アドレス、ハードディスク装置のシリアル番号などである。ライセンスサーバは、正しいライセンスキーとクライアントの固有情報とを送信したクライアントに対してライセンスを付与する。以後、ライセンスサーバは、同一ライセンスキーを用いた同一固有情報のクライアントに対してのみ、ソフトウエアの起動を許可する(例えば、特許文献1参照)。
【0006】
ネットワークライセンス方式では、ライセンスで制限された数以内であれば、複数の任意の端末にソフトウエアの使用が同時に許可される。そのため、新規の端末を購入した場合にも、その端末ですぐにソフトウエアを実行でき、企業内での複数の端末のライセンス管理などに非常に便利である。
【0007】
また、予め販売管理用サーバから実施許諾データを取得しておき、その実施許諾データに基づいて一定時間または一定使用回数だけ、クライアントでソフトウエアを実行できるようにする技術もある(例えば、特許文献2参照)。
【特許文献1】特開2004−38247号公報
【特許文献2】特開2001−306735号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
ネットワークライセンス管理方式では、クライアント端末とライセンスサーバとの間で認可要求と認可諾否のメッセージが正常に交換されている定常稼働状態にあって、予め設定された制限台数の範囲内の端末で問題なく管理対象のソフトウエアを稼働させることができる。しかし、ライセンスサーバに障害が発生すると、すべてのクライアント端末で管理対象のソフトウエアを稼働させることができなくなる。
【0009】
この問題を解決する手段として、例えば、バックアップ用のライセンスサーバを常時保有しておき、ライセンスサーバが故障した場合、バックアップ用のバックアップサーバに切り替えて運用することができる。また、その他の対応方法としては、2台のライセンスサーバ(デュアルサーバ)による冗長構成にして、一方のライセンスサーバが故障してもネットワークライセンス管理システムを停止することなく、他方のライセンスサーバでライセンス管理を行う運用形態も可能である。
【0010】
しかしながら、バックアップサーバやデュアルサーバ構成を採用した場合であっても、ネットワークの障害などでライセンスサーバと端末との通信が途絶えると、端末で管理対象のソフトウエアを稼働させることができなくなり、業務が停止してしまう。業務の停止は、システムの運用上最も避けるべき事態である。
【0011】
また、バックアップサーバやデュアルサーバは複数のコンピュータをサーバとして使用するので、ハードウエア資源、ソフトウエア資源および保守管理の手間が余分に発生する。その結果、ライセンス管理費用の増大を招く。
【0012】
なお、上記特許文献2の技術であれば、実施許諾データを取得しておくことで、それ以降ネットワークに接続しなくても一定期間ソフトウエアを使用できる。ただし、このようなライセンス管理を行うと、ソフトウエアを使用する可能性がある全ての端末に対して個別のライセンスが必要となる。すると、ネットワークライセンス方式の本来の利点であるライセンスの集中管理による動的なライセンス付与ができなくなってしまう。
【0013】
本発明はこのような点に鑑みてなされたものであり、ネットワークライセンス方式において、ライセンスを管理する装置との間の通信が途絶えたクライアントにおいてもソフトウエアを適切な制限付きで使用できるアプリケーション実行制御プログラム、アプリケーション実行制御方法、およびアプリケーション実行制御装置を提供することを目的とする。
【課題を解決するための手段】
【0014】
上記課題を解決するために、アプリケーション実行制御プログラムが提供される。このアプリケーション実行制御プログラムは、ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータである
クライアント端末に、以下の処理を実行させる。
【0015】
所定間隔で、ライセンス管理装置との間の通信および該管理対象プログラムの使用の認可応答の取得を試みる。
コンピュータがライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、該管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する。
【0016】
ここで、緊急稼働開始可能と判定された場合、緊急稼働情報に緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムを稼働させる。
【0017】
また、緊急稼働継続可能と判定された場合、プログラム実行手段に管理対象プログラムを実行させる。
さらに、緊急稼働解可能および緊急稼働継続可能のいずれでもないと判定された場合、プログラム実行手段に管理対象プログラムを実行させないようにする。
【0018】
一方、クライアント端末がライセンス管理装置と通信できた場合、稼働形態情報が定常稼働状態を呈するように設定し、ライセンス管理装置から認可応答を受信したならばプログラム実行手段に管理対象プログラムを実行させ、ライセンス管理装置から前記認可応答を受信できなかったならばプログラム実行手段に該管理対象プログラムの実行を中断させる。
【0019】
このようなアプリケーション実行制御プログラムにより、ライセンス管理装置から認可応答を受信できない場合であっても、緊急稼働可能条件の範囲内であれば緊急稼働として管理対象プログラムの実行が継続される。
【0020】
また、上記アプリケーション実行制御プログラムを実行するコンピュータと同様の処理を実行させるアプリケーション実行制御方法が提供される。さらに、上記アプリケーション実行制御プログラムを実行するコンピュータと同様の機能を有するアプリケーション実行制御装置が提供される。
【発明の効果】
【0021】
本発明では、回線障害等によりライセンス管理装置との通信が途絶えることによって管理対象プログラムが使用不能状態に陥ることを、回避できる。
また、従来ネットワークライセンス管理システムで使用されていたバックアップ用ライセンスサーバおよびデュアルサーバを必要としなくなるので、設備費用、保守費用および設備スペースを節約することができる。
【発明を実施するための最良の形態】
【0022】
以下、本発明の実施の形態の一つの最適な例を図面を参照して説明する。
図1は、本実施の形態の概要を示す図である。クライアント端末1は、ライセンス管理装置2とネットワークを介して接続されている。ライセンス管理装置2は、管理対象プログラム1caのライセンスを管理している。
【0023】
クライアント端末1には、アプリケーション実行制御手段1a、記憶手段1b、プログラム実行手段1cが設けられている。アプリケーション実行制御手段1aは、ライセンス管理装置2と定期的に通信することで、管理対象プログラム1caの使用許諾を得る。ただし、ライセンス管理装置2の障害、あるいはネットワーク上の通信の障害によって、ライセンス管理装置2との間の定期的な通信に不具合が生じる場合がある。そのような場合を想定し、アプリケーション実行制御手段1aが実行する処理の流れの概要を以下に記す。なお、これらのステップの処理の流れの細部は後に図12ないし図18を用いて詳しく説明される。なお、図1においては矢印付きの実線は処理の流れを、点線はデータの参照更新を表している。
【0024】
[ステップS1]アプリケーション実行制御手段1aは、所定の間隔で、ライセンス管理装置2との間の通信および管理対象プログラム1caの使用の認可応答の取得を試みる。
【0025】
[ステップS2]アプリケーション実行制御手段1aは、ステップS1でクライアント端末1とライセンス管理装置2の間の通信が成功したかどうか判定し、通信が成功した場合は諾否情報を出力する。
【0026】
[ステップS3]ステップS2でライセンス管理装置2と通信できない場合、アプリケーション実行制御手段1aは、記憶手段1bに格納された、管理対象プログラムを緊急稼働させた緊急稼働開始日時と稼働形態情報を含む緊急稼働情報1baを参照し、当該時点(通信できないと判断した時点)が緊急稼働開始可能か緊急稼働継続可能か否かを判定する。
【0027】
[ステップS4]ステップS3で、稼働状態情報より当該時点は緊急稼働状態でないから緊急稼働開始可能と判定された場合、アプリケーション実行制御手段1aは、管理対象プログラムが緊急稼働を開始したとして記憶手段内に緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、プログラム実行手段1cに管理対象プログラム1caを稼働するよう指示する。
【0028】
[ステップS5]ステップS3で、当該時点は緊急稼働状態であり、例えば緊急稼働開始日時より所定の期間内であるという理由で、緊急稼働継続可能と判定された場合、アプリケーション実行制御手段1aは、プログラム実行手段1cに管理対象プログラム1caを稼働するよう指示する。
【0029】
[ステップS6]ステップS3で、当該時点は緊急稼働状態であり、例えば緊急稼働開始日時より所定の期間外であるという理由で、緊急稼働開始可能でも緊急稼働継続可能でもないと判定された場合は、アプリケーション実行制御手段1aは、プログラム実行手段1cに管理対象プログラム1caを稼働しないよう指示する。
【0030】
[ステップS7]ステップS2でライセンス管理装置2と通信に成功し、かつライセンス管理装置2から認可応答を受信した場合、アプリケーション実行制御手段1aは、プログラム実行手段1cに管理対象プログラム1caを実行させる。
【0031】
[ステップS8]ステップS2でライセンス管理装置2と通信に成功し、かつライセンス管理装置2から認可応答を受信できなかった場合、アプリケーション実行制御手段1aは、プログラム実行手段1cに管理対象プログラム1caの新たなコマンドの起動を阻止する。
【0032】
[ステップS9]ステップS1でライセンス管理装置2と通信に成功した場合、稼働状態情報が緊急稼働状態であるならば、本ステップで、稼働形態情報を定常稼働状態を呈するように設定する。なお、図1では本ステップは、ステップS7あるいはステップS8の後ろにあるとしたが、順序は逆になっても問題ない。
【0033】
このようなアプリケーション実行制御手段1aで管理対象プログラム1caの実行を制御することにより、ライセンス管理装置2から認可応答を受信できない場合であっても、緊急稼働可能条件の範囲内であれば緊急稼働として管理対象プログラム1caの実行が継続できる。その結果、障害等によりライセンス管理装置2との通信が途絶えることによって管理対象プログラムが使用不能状態に陥ることを、適切な条件下で回避できる。
【0034】
次に、本実施の形態の詳細を説明する。なお、本実施の形態は、例えばCADシステムの図形処理コマンドのように比較的処理単位が大きい(1つのコマンドの実行に時間がかかる)場合でも対応可能である。
【0035】
図2は、本実施の形態のシステム構成例を示す図である。ライセンスサーバ400には、ネットワーク10を介してクライアント端末100,200,300が接続されている。ライセンスサーバ400は、クライアント端末100,200,300に搭載されたソフトウエアの実行の諾否を管理する。
【0036】
なお、クライアント端末300はネットワーク10から切り離し、モバイル端末として利用することができる。
図3は、本実施の形態に用いるクライアント端末のハードウエア構成例を示す図である。クライアント端末100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
【0037】
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
【0038】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
【0039】
通信インタフェース106は、ネットワーク10に接続されている。通信インタフェース106は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
【0040】
以上のようなハードウエア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、クライアント端末100のハードウエア構成を示したが、他のクライアント端末200,300やライセンスサーバ400も同様のハードウエアで実現できる。
【0041】
図4は、クライアント端末の機能を示すブロック図である。クライアント端末100は、ライセンス取得部110、ライセンス管理データベース(DB)120、緊急稼働ログ記憶部130、アプリケーション140、および実行管理部150を有している。
【0042】
ライセンス取得部110は、ライセンスサーバ400と通信し、アプリケーション140を実行するためのライセンスの取得を試み、ライセンス使用の可否を認可フラグ21に出力する。ライセンス取得部110は、正常にライセンスを取得できた場合、実行許可を示すフラグの値”ON”を認可フラグ21に設定する。認可フラグ21は、例えば、RAM102内に配置される。ライセンス取得部110は、ライセンス管理のために認可要求処理部111、諾否応答処理部112、および緊急稼働後処理部113を有している。
【0043】
認可要求処理部111は、予め定めた時間間隔で、アプリケーション140の使用の許可を要求する使用認可要求をライセンスサーバ400に発信する。認可要求には、クライアント端末100のMACアドレスが含まれる。
【0044】
なお、本実施の形態ではクライアント端末100からの認可要求をトリガとしてライセンスの諾否を判断しているが、ライセンスサーバ400がクライアント端末100に対してポーリングを行い、ライセンスの諾否を判断する方式も可能である。ポーリングによってライセンスの諾否を判断する場合、ライセンスサーバ400からクライアント端末100に対して、アプリケーション140の起動の有無を確認する確認要求を送信する。そして、ライセンスサーバ400は、確認要求に対する応答内容に基づいて、ライセンスの諾否を判断する。
【0045】
諾否応答処理部112は、ライセンスサーバ400から諾否応答を受け取る。諾否応答には、アプリケーション140の使用を許諾するのか否かを示す情報が含まれる。諾否応答処理部112は、諾否応答により使用が許諾されたときは、認可フラグ21を”ON”にする。また、諾否応答処理部112は、諾否応答により使用が許諾されないときは、認可フラグ21を”OFF”にし、「認可されなかった」旨のメッセージをクライアント端末100のモニタ11に表示する。また、諾否応答処理部112は、認可要求処理部111から使用認可要求を出力したにも拘わらず諾否応答が返されない場合は、緊急稼働ログ記憶部130を参照し、認可フラグ21を”ON”または”OFF”にして、ライセンス管理の対象であるアプリケーション140の稼働を制御する。
【0046】
緊急稼働後処理部113は、クライアント端末100とライセンスサーバ400の間の通信が回復して緊急稼働状態が終了した時点で、クライアント端末側の緊急稼働ログ記憶部130に記憶された情報をライセンスサーバ400に送付する実務的な機能を執り行うが、本発明に対しては必須ではない。
【0047】
なお、認可要求処理部111、諾否応答処理部112、および緊急稼働後処理部113は、ライセンス取得部110における一部の機能を個別に示したものである。すなわち、ライセンス取得部110は、ライセンス管理のために、認可要求処理部111、諾否応答処理部112、および緊急稼働後処理部113以外の機能も有している。例えば、ライセンス取得部110は、アプリケーション140の停止した場合には、認可フラグ21を”OFF”にして、ライセンスサーバ400に対して使用終了通知を行う。また、ライセンス取得部110は、モバイルでの使用を示す操作入力(モバイル使用指示)が行われると、そのモバイル使用指示に応答して、ライセンス管理DB120内のモバイルフラグを”ON”にすると共に、ライセンスサーバ400に対してモバイル使用通知を送信する。さらに、ライセンス取得部110は、モバイルでの使用の終了を示す操作入力(モバイル解除指示)が行われると、そのモバイル解除指示に応答して、ライセンス管理DB120内のモバイルフラグを”OFF”にすると共に、ライセンスサーバ400に対してモバイル解除通知を送信する。
【0048】
なお、モバイル使用通知を送信できるのは、アプリケーション140の使用が認可されている場合(緊急稼働中以外で認可フラグ21が”ON”の場合)のみである。すなわち、ライセンス取得部110は、モバイル使用指示を受け取ると緊急稼働ログ記憶部130を参照し、緊急稼働中か否かを判断する。緊急稼働ログ記憶部130に端末MACアドレス以外に緊急稼働開始日時と緊急稼働終了日時の組みが少なくとも1つ登録されていれば、緊急稼働中である。稼働開始日時と緊急稼働終了日時の組みが全く登録されていなければ、緊急稼働中ではない。緊急稼働中でなく認可フラグ21の値が”ON”であれば、ライセンスサーバ400によってアプリケーション140の使用が認可されている。
【0049】
ライセンス管理DB120は、クライアント端末100のMACアドレスやライセンスサーバ400のホスト名などのライセンス管理に必要な情報を記憶するデータベースである。例えば、HDD103の記憶領域の一部にライセンス管理DB120が構築される。
【0050】
緊急稼働ログ記憶部130は、アプリケーション140の緊急稼働による動作履歴を記憶するデータベースである。例えば、HDD103の記憶領域の一部に緊急稼働ログ記憶部130が構築される。
【0051】
アプリケーション140は、ライセンスサーバ400でライセンスが管理されているソフトウエアである。アプリケーション140は、コマンド(一つの完結した処理の実行命令)が入力されるごとに、そのコマンドに応じた処理を実行する。なお、アプリケーション140に対して入力されるコマンドは、実行管理部150によって実行の可否が判断される。そして、アプリケーション140は、実行管理部150によってコマンドの実行が指示されたときに、該当するコマンドに対応する処理を実行する。
【0052】
実行管理部150は、アプリケーション140に対するコマンドの実行の可否を判断する。具体的には、実行管理部150は、アプリケーション140に対するコマンドが入力されると、認可フラグ21を参照する。認可フラグ21が”ON”であれば、実行管理部150は、入力されたコマンドの実行を許可し、そのコマンドの実行をアプリケーション140に指示する。認可フラグ21が”OFF”であれば、実行管理部150は、入力されたコマンドの実行を保留し、認可フラグ21が”ON”になるのを待つ。
【0053】
次に、クライアント端末100が有しているデータベースの内容について説明する。
図5は、クライアント端末のライセンス管理DBのデータ構造例を示す図である。ライセンス管理DB120には、端末MACアドレス、サーバホスト名、サーバMACアドレス、前回認可要求日時、前回許諾応答受領日時、認可要求サイクル、緊急稼働可能期間、モバイル使用期限、モバイルフラグ、およびモバイル運用開始時刻が登録されている。
【0054】
端末MACアドレスは、クライアント端末100の通信インタフェース106に予め設定されたMACアドレスである。MACアドレスにより、ネットワーク10を経由した通信において、クライアント端末100を一意に識別できる。端末MACアドレスは、クライアント端末100のシステム起動時の処理において、ブート通信インタフェース106内のROMからライセンス管理DB120に複写される。
【0055】
サーバホスト名は、ライセンスサーバ400の名称(ホスト名)である。ホスト名は、例えば図示していないDNS(Domain Name System)サーバによってIP(Internet Protocol)アドレスに対応付けられている。ネットワーク10上でTCP(Transmission Control Protocol)/IPによる通信を行う際に、ホスト名を指定することでDNSサーバによってIPアドレスが特定され、該当するIPアドレスを有する装置に対してパケットを送信できる。サーバホスト名は、ユーザの操作入力により予めライセンス管理DBに登録される。
【0056】
サーバMACアドレスは、ライセンスサーバ400のMACアドレスである。サーバMACアドレスは、サーバホスト名を用いて、ARP(Address Resolution Protocol)によって取得することができる。すなわち、ライセンス取得部110は、クライアント端末100のシステム起動時にサーバホスト名に対応するIPアドレスをDNSサーバから取得し、そのIPアドレスを指定したARPのリクエストをブロードキャストで送信する。すると、該当するIPアドレスを有するライセンスサーバ400からMACアドレスを含む応答が返される。
【0057】
前回認可要求日時は、前回認可要求を送信した日時である。前回認可要求日時は、認可要求が送信されるごとに、そのときの日時が設定される。
前回許諾応答受領日時は、前回許諾応答(許諾を示す諾否応答)を受領した日時である。前回許諾応答受領日時は、許諾応答を受信するごとに、そのときの日時が設定される。
【0058】
認可要求サイクルは、クライアント端末100から認可要求を送信する時間間隔である。認可要求サイクルは、予めユーザの操作入力に応じて設定される。
緊急稼働可能期間は、アプリケーション140を緊急稼働させることができる時間である。
【0059】
モバイル使用期限は、モバイル動作を継続可能な期間である。モバイル使用期限は、クライアント端末100起動時にライセンス取得部110がライセンスサーバ400の認可条件記憶部420から取得し、ライセンス管理DB120に設定する。
【0060】
モバイルフラグは、モバイル状態か否かを示す情報である。モバイル状態(オフライン状態)のとき、ライセンス取得部110によって、モバイルフラグが”ON”に設定される。また、オンライン状態のとき、ライセンス取得部110によって、モバイルフラグが”OFF”に設定される。
【0061】
モバイル運用開始時刻は、モバイル状態になった時刻である。モバイル運用開始時刻には、ライセンス取得部110によって、モバイルフラグが”ON”になったときに、そのときの時刻が設定され、モバイルフラグが”OFF”になったときに、リセットされる(無効の値が設定される)。
【0062】
図6は、クライアント端末の緊急稼働ログ記憶部のデータ構造例を示す図である。緊急稼働ログ記憶部130には、端末MACアドレス、緊急稼働開始日時、および緊急稼働終了日時が登録されている。なお、端末MACアドレスは、先頭に1つだけ登録されており、緊急稼働開始日時と緊急稼働終了日時は繰り返し登録される。
【0063】
緊急稼働開始日時は緊急稼働を開始した日時であり、緊急稼働開始状態になった時点で書き込まれる。
緊急稼働終了日時は緊急稼働が終了した日時であり、クライアント端末とライセンスサーバ間の通信が復旧した日時と同じである。これは、ライセンスサーバとクライアント端末間の交信が失敗し緊急稼働状態になった時点で初期状態に設定される。つまり一つの緊急稼働開始日時と一つの緊急稼働終了日時との対が、緊急稼働一回当たりの緊急稼働期間を示す緊急稼働期間情報を構成している。
【0064】
ここでは、緊急稼働開始日時と緊急稼働終了日時の繰り返しで緊急稼働を表現するデータ構造を実現しているが、実用的には緊急稼働継続日時を追加することもある。緊急稼働継続日時は緊急稼働状態が認識された最新の日時である。オーバタイムの把握などシステム管理上有用な情報である。しかしながら、ライセンス管理に関しては必須項目ではないので、ここでは説明を省略する。
【0065】
なお他の実施例として、緊急稼働か定常かどうかのフラグ、たとえば緊急稼働のときは緊急稼働開始日時をセットするとしても問題ないし、緊急稼働継続日時をデータとして保有せず、緊急稼働が終了した時点で緊急稼働開始日時を消去する形式でも問題ない。
【0066】
次に、ライセンスサーバ400の機能について説明する。
図7は、ライセンスサーバの機能を示すブロック図である。ライセンスサーバ400は、端末別緊急稼働ログ記憶部410、認可条件記憶部420、認可端末管理DB430、運行ログ記憶部440、緊急稼働ログ収集部450,認可条件設定部460、認可判定処理部470、運行ログ処理部480、および認可条件超過判定部490とライセンスサーバモニタ495を有している。
【0067】
端末別緊急稼働ログ記憶部410は、クライアント端末100,200,300それぞれの緊急稼働ログを記憶する。例えば、ライセンスサーバ400内のHDDの記憶領域の一部が、端末別緊急稼働ログ記憶部410として使用される。
【0068】
認可条件記憶部420には、アプリケーションのライセンスの内容(認可条件)と、ライセンスに基づいて使用許可を与えるために必要な情報が格納されている。例えば、ライセンスサーバ400内のHDDの記憶領域の一部が、認可条件記憶部420として使用される。
【0069】
認可端末管理DB430は、アプリケーションの使用を許諾したクライアント端末に関する情報を記憶するためのデータベースである。例えば、ライセンスサーバ400内のHDDの記憶領域の一部が、認可端末管理DB430として使用される。認可端末管理DB430には、認可端末ごとに稼働実績とモバイルとして運用する計画情報が格納される。認可端末管理DB430の内容は、クライアント端末からの認可要求に応答してアプリケーションの使用が認可されると自動的に更新される。また、認可端末管理DB430の内容は、クライアント端末からの認可要求に応答して(定常稼働)アプリケーションの使用が認可されるか、あるいは使用を認可したクライアント端末から使用終了通知を受けたときに自動的に更新される。
【0070】
運行ログ記憶部440は、各クライアント端末100,200,300におけるライセンス管理対象のアプリケーションの実行期間を記憶する。例えば、ライセンスサーバ400内のHDDの記憶領域の一部が、運行ログ記憶部440として使用される。
【0071】
緊急稼働ログ収集部450は、ネットワーク10に接続された各クライアント端末100,200,300から緊急稼働ログを収集する。そして、緊急稼働ログ収集部450は、収集した緊急稼働ログを端末別緊急稼働ログ記憶部410に格納する。
【0072】
認可条件設定部460は、ライセンス管理対象のアプリケーションに対して使用許可を与える条件を認可条件記憶部420に設定する。例えば、認可条件設定部460は、ライセンス管理対象のアプリケーションの販売元から、そのアプリケーションの使用ライセンスを取得し、取得した使用ライセンスに示される情報を認可条件記憶部420に設定する。なお、使用ライセンスには、同時に使用可能なクライアント端末の数や、アプリケーションを使用するクライアント端末として予め登録可能なクライアント端末数などが含まれる。
【0073】
認可判定処理部470は、クライアント端末から送られた認可要求に応答し、認可条件記憶部420、および認可端末管理DB430に基づいて、そのクライアント端末にアプリケーションの使用を認可するか否かを判定する。そして、認可判定処理部470は、判定結果を示す諾否応答を、認可要求を出力したクライアント端末に送信する。また、認可判定処理部470は、アプリケーションの使用を許可した場合、認可端末管理DB430の内容を更新する。クライアント端末から使用終了通知を受け取ると、認可判定処理部470は、認可端末管理DB430から、使用終了通知を送信したクライアント端末に対応するレコードを削除する。
【0074】
また、認可判定処理部470は、アプリケーションの使用を認可したクライアント端末からモバイル使用通知を受け取ると、認可端末管理DB430内のそのクライアント端末のMACアドレスに対応するモバイルフラグに”ON”(モバイル状態でのアプリケーションの使用中を示す)を設定する。逆に、認可判定処理部470は、モバイルフラグが”ON”のクライアント端末からモバイル解除通知を受け取ると、認可端末管理DB430内のそのクライアント端末のMACアドレスに対応するモバイルフラグに”OFF”(オンライン使用中を示す)を設定する。
【0075】
さらに、認可判定処理470は、アプリケーションの使用を認可したクライアント端末から定期的に送られるべき認可要求が途絶えると、そのクライアント端末に対する認可を取り消す。
【0076】
運行ログ処理部480は、各クライアント端末100,200,300によるアプリケーションの使用履歴を、運行ログとして運行ログ記憶部440に格納する。具体的には、運行ログ処理部480は、認可判定処理部470によってクライアント端末に対してアプリケーションの使用が認可されると、そのクライアント端末のMACアドレスと稼働開始日時(現在の日時)とに端末識別子を付加して、運行ログ記憶部440に登録する。また、運行ログ処理部480は、クライアント端末から使用終了通知を受け取ると、該当するクライアント端末のMACアドレスに対応付けて、稼働終了日時(現在の日時)を登録する。なお、運行ログ処理部480は、クライアント端末がモバイル状態の間は、アプリケーションが稼働中であるとみなす。
【0077】
認可条件超過判定部490は、端末別緊急稼働ログ記憶部410と運行ログ記憶部440の内容に基づいて、認可条件記憶部420内の認可条件を超えたアプリケーションの使用が行われているか否かを判断する。そして、認可条件超過判定部490は、認可条件を超えてアプリケーションが使用されていた場合、その旨を示すアラームメッセージをライセンスサーバ400に接続されたモニタに表示する。例えば、同時にアプリケーションを使用可能なクライアント端末数を超えてアプリケーションが同時使用されている場合に、超過して使用された時間の累計がライセンスサーバモニタ495に表示される。
【0078】
次に、ライセンスサーバ400で管理される情報の内容を具体的に説明する。
図8は、ライセンスサーバの端末別緊急稼働ログ記憶部のデータ構造の一例を示す図である。端末別緊急稼働ログ記憶部410には、各クライアント端末100,200,300から収集した複数の緊急稼働ログが格納されている。緊急稼働ログの内容は、図6に示した緊急稼働ログ記憶部130に格納された緊急稼働ログと同様である。
【0079】
図9は、ライセンスサーバの認可条件記憶部のデータ構造の一例を示す図である。認可条件記憶部420には、認可期限、認可端末数、認可可能端末数、モバイル使用期限、サーバホスト名、およびサーバMACアドレスが格納されている。なお、認可期限、認可端末数、および認可可能端末数は、管理対象のアプリケーションの提供者から与えられる情報である。
【0080】
認可期限は、アプリケーションの使用が可能な最終期限である。認可端末数は、アプリケーションの使用を認可したクライアント端末の総数である。認可可能端末数は、アプリケーションの使用を同時に認可可能なクライアント端末の総数である。モバイル使用期限は、モバイル状態で使用可能な期間である。サーバホスト名は、ライセンスサーバ400を、TCP/IPのネットワーク上で一意に識別するための名称(ホスト名)である。サーバMACアドレスは、ライセンスサーバ400のMACアドレスである。
【0081】
図10は、ライセンスサーバの認可端末管理DBのデータ構造の一例を示す図である。認可端末管理DB430には、アプリケーションの使用を許諾したクライアント端末ごとに、端末MACアドレス、稼働開始日時、認可最終要求日時、認可要求サイクル、モバイルフラグ、およびモバイル運用開始時刻が設定されている。
【0082】
端末MACアドレスは、アプリケーションを使用するクライアント端末のMACアドレスである。稼働開始日時は、クライアント端末がアプリケーションの使用を開始した日時である。認可最終要求日時は、クライアント端末がアプリケーションの認可要求を最後に送信した日時である。認可要求サイクルとは、クライアント端末がアプリケーションの使用許諾を受けるべき時間間隔である。認可最終要求日時と認可要求サイクルに基づいて、ライセンスサーバはクライアントにライセンス使用認可を優先的に供与する。
【0083】
モバイルフラグは、クライアント端末がネットワーク10から切り離された状態でアプリケーションを使用していることを示すフラグである。例えば、アプリケーションを使用しているクライアント端末がネットワーク10から切り離されているとき、モバイルフラグに”ON”が設定される。アプリケーションを使用しているクライアント端末がネットワーク10に接続されているときは、モバイルフラグに”OFF”が設定される。
【0084】
モバイル運用開始時刻は、クライアント端末がモバイル状態となった時刻である。モバイル運用開始時刻には、モバイルフラグが”ON”になったときに、そのときの時刻が設定され、モバイルフラグが”OFF”になったときに、リセットされる(無効の値が設定される)。
【0085】
図11は、ライセンスサーバの運行ログ記憶部のデータ構造の一例を示す図である。運行ログ記憶部440には、クライアント端末によるアプリケーションの使用実績として、端末識別子、端末MACアドレス、稼働開始日時、稼働終了日時が設定される。端末識別子は、ライセンスサーバ400内で各クライアント端末を一意に識別するための識別情報である。端末MACアドレスは、端末識別子に対応するクライアント端末のMACアドレスである。稼働開始日時は、クライアント端末がアプリケーションの使用を開始した日時である。稼働終了日時は、クライアント端末がアプリケーションの使用を終了した日時である。
【0086】
次に、本実施の形態におけるネットワークライセンス管理処理の内容を説明する。まず、100を代表とするクライアント端末で実行される処理を説明する。
図12は、図4のクライアント端末の実行管理部と諾否応答処理部で行われるコマンド実行管理処理の手順の一つの例を示す図である。以下、図12に示す処理をステップ番号に沿って説明する。この処理は、ユーザからの操作入力によってアプリケーション140に対するコマンドが入力されたときに実行される。
【0087】
ステップS16の認可判定は諾否応答処理部112に属する。認可判定ステップS16の詳細は後に詳しく説明されるが、その出力は認可フラグ21である。
ステップS11〜S14は実行管理部150に属する。以下、実行管理部150の処理について説明する。
【0088】
[ステップS11]実行管理部150は、アプリケーション140に対して入力されたコマンドを取得する。
[ステップS12]実行管理部150は、ライセンス取得部110が既に出力した認可フラグ21が”OK”か否かを判断する。認可フラグ21が”OK”であれば、処理はステップS14に進められる。認可フラグ21が”NG”であれば、処理はステップS13に進められる。
【0089】
[ステップS13]実行管理部150は、認可フラグ21が”NG”の場合、アプリケーション140を使用するライセンスを使用できないと認識し、所定時間待機する。その後、処理はステップS12に進められる。
【0090】
[ステップS14]実行管理部150は、認可フラグ21が”OK”であれば、入力されたコマンドを実行する。具体的には、実行管理部150は、入力されたコマンドに対応するプログラムの実行をアプリケーション140に指示する。すると、アプリケーション140が指示されたコマンドをディスパッチすることによって実行制御をコマンドのプログラムに移し実行する。その後コマンド処理が終了したならば、制御はステップS11に移り次のコマンドを処理する過程が繰り返される。
【0091】
このように実行管理部150は、認可フラグ21が”OK”であることを条件にして、アプリケーション140に対してコマンドを実行させることができる。なお、アプリケーション140は、コマンドを実行中に認可フラグ21が”NG”に変更されても、実行中のコマンドの処理は続行できる。
【0092】
図12左に示すように、前記の認可フラグ21を出力するのはライセンス取得部110に属する諾否応答処理部112の中の認可判定ステップS16である。認可判定ステップS16は、ライセンスサーバ400と通信を行い応答フラグを出力する認可判定前半処理ステップS16aと、前記応答フラグと緊急稼働情報1baを参照して認可フラグ21を出力し、緊急稼働情報1baを更新する認可判定後半処理S16bから構成される。
【0093】
なお、認可判定処理ステップS16は、概略図1においてはアプリケーション実行制御手段1aの通信ステップS1および通信判定ステップS2に該当する。
ライセンスサーバ400との通信は、処理時間が長い可能性があるコマンド実行ステップS14を含むプロセスとは非同期で行うことが望ましいので、本実施例では別プロセスで行われる。
【0094】
図13は、ライセンス取得部内の諾否応答処理部に属する認可判定ステップS16の前半の処理ステップS16a(図12参照)の手順を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
【0095】
[ステップS21]ライセンス取得部110は、実行管理部150を起動する。具体的には、ライセンス取得部110は、アプリケーション140のコマンドの実行を管理するためのプログラム(実行管理プログラム、またはモニタ)の実行要求をOSに対して出力する。つまり、クライアント端末100のOSに実行管理プログラムを実行するためのプロセスを生成させ、そのプロセスに実行管理プログラム(モニタ)を実行させる。通信、通信判定と実行管理部は別プロセスとなるので、応答フラグの更新と参照は非同期で独立に行われることになる。
【0096】
また逆に実行管理部が認可判定前半処理ステップS16aを実行するためのプロセスを発生するようにしても問題ない。
[ステップS22]認可判定前半処理ステップS16aでは、ライセンス管理DB120を参照し、前回認可要求日時から認可要求サイクルで示された時間経過するまで待機する。なお、アプリケーション140起動後、最初の認可要求送信前であれば、当該待機処理は不要である。
【0097】
[ステップS23]認可判定前半処理ステップS16aでは、アプリケーション140が終了している可能性があるので、アプリケーション140が存在するか否かを検査する。具体的には、ライセンス取得部110は、OSが起動させているプロセスの中から、アプリケーション140を実行中のプロセスを検索する。
【0098】
[ステップS24]ライセンス取得部110は、アプリケーション140が存在する場合、処理をステップS26に進め、アプリケーション140が存在しない場合、処理を時間待ちステップS22に進める。
【0099】
[ステップS26]認可判定前半処理ステップS16aでは、アプリケーション140が存在する場合、ライセンス管理DB120内のモバイルフラグが”ON”か否かを判断する。モバイルフラグが”ON”であれば、処理がステップS27に進められる。モバイルフラグが”OFF”であれば、処理はステップS29に進められる。
【0100】
[ステップS27]認可判定前半処理ステップS16aでは、モバイル使用期限を過ぎているか否かを判断する。具体的には、ライセンス取得部110は、ライセンス管理DB120を参照し、モバイル運用開始時刻から現在までの経過時間が、モバイル使用期限を過ぎているか否かを判断する。モバイル使用期限が過ぎている場合、処理はステップS28に進められる。モバイル使用期限が過ぎていなければ、処理はステップS22に進められる。
【0101】
[ステップS28]ライセンス取得部110の認可判定前半処理ステップS16aでは、ライセンス管理DB120内のモバイルフラグを”OFF”にし、処理をステップS29に進める。
【0102】
[ステップS29]認可判定前半処理ステップS16aでは、アプリケーション140が存在する場合、認可要求を発信する。具体的には、ライセンス取得部110は、認可要求処理部111に対して、認可要求の送信を指示する。すると、認可要求処理部111は、ライセンス管理DB120を参照し、端末MACアドレス、サーバホスト名、サーバMACアドレスを取得する。そして、認可要求処理部111は、サーバホスト名で示されるライセンスサーバ400に対して、アプリケーション140の使用の認可を要求するパケットを生成し、そのパケットを含むフレームの宛先にサーバMACアドレスを設定して、ネットワーク10上に送信する。このとき、認可要求処理部111は、ライセンス管理DB120内の前回認可要求日時を更新する。すなわち、認可要求処理部111は、前回認可要求日時として現在の日時を設定する。
【0103】
したがって、アプリケーションが存在する限り認可要求がライセンスサーバに送られ、ライセンスサーバが正常に機能する限り、以下のステップによって優先的に認可応答が返ってくることになる。
【0104】
[ステップS30]認可判定前半処理ステップS16aでは、所定時間だけライセンスサーバ400からの応答を待つ。
[ステップS31]認可判定前半処理ステップS16aでは、ライセンスサーバ400から諾否応答が送信された場合、その諾否応答を取得する。その後、処理はステップS32に進められる。また、所定の時間内に諾否応答がない場合も、処理はステップS32に進められる。
【0105】
[ステップS32]認可判定前半処理ステップS16aでは、所定の時間内に諾否応答があるかどうか検査する。所定の時間内に諾否応答があれば、処理はステップS34に進められる。所定の時間内に諾否応答がなければ、処理はステップS33に進められる。
【0106】
[ステップS33]認可判定前半処理ステップS16aでは、所定の時間内に諾否応答がなければ(交信失敗の場合)応答フラグに応答なしのフラグ”None”を立てる。その後ステップS22の時間待ちに進む。
【0107】
[ステップS34]認可判定前半処理ステップS16aでは、ステップS31の応答が許諾応答かどうかどうか検査する。応答が許諾応答であれば、処理はステップS36に進められる。応答が許諾応答でなければ、処理はステップS35に進められる。
【0108】
[ステップS35]認可判定前半処理ステップS16aでは、ステップS31の応答が許諾応答でなければ応答フラグに許諾応答でないというフラグ”NG”を立てる。その後ステップS22の時間待ちに進む。
【0109】
[ステップS36]認可判定前半処理ステップS16aでは、ステップS31の応答が許諾応答であれば応答フラグに許諾応答であるというフラグ”OK”を立てる。その後ステップS22の時間待ちに進む。
【0110】
図14は、ライセンス取得部における認可判定のステップS16の後半の処理ステップS16bの手順を示すフローチャートである。本実施例の本ステップのアウトプットは、コマンドの稼働を制御する認可フラグ21と、緊急稼働情報1baの更新である。以下、図14に示す処理をステップ番号に沿って説明する。なお、図14の流れの概要は既に図1に示されている。
【0111】
[ステップS33a]本ステップは、認可判定前半処理ステップS16aを構成するステップS33に対応する。ステップS33は、所定の時間内に諾否応答がなければ、応答フラグにライセンスサーバ400から応答なしのフラグ”None”を既に立てている。これに基づいて実行管理部150の認可判定後半処理S16aは認可フラグ21を算出する。
【0112】
応答なしのフラグ”None”が立っている場合はステップS37に、応答があるフラグの場合はステップS36aを経由して、応答フラグが許諾応答”OK”ならばステップS42の定常稼働処理に、応答フラグが拒絶応答”NG”ならばステップS44の定常稼働停止処理に進む。
【0113】
[ステップS37]応答フラグにライセンスサーバ400から応答なしのフラグが立っている場合は、実行管理部150の認可判定後半処理S16bでは、緊急稼働中かどうかの判定を、記憶手段1bの緊急稼働情報の稼働形態情報に対応する情報に基づいて行う(判断基準の詳細はステップS53の説明参照)。
【0114】
もし、稼働形態が緊急稼働状態を呈しているならば、ステップS39の緊急稼働継続可能性判定処理に進む。もし、稼働形態が緊急稼働中でない、すなわち定型稼働状態を呈しているならば、ステップS38の緊急稼働開始処理に進む。
【0115】
[ステップS38]ライセンス取得部110の認可判定後半処理S16bの緊急稼働開始処理の詳細について図15を用いて説明する。
図15は、緊急稼働開始処理の手順を示すフローチャートである。
【0116】
[ステップS51]認可判定後半処理S16bでは、認可フラグ21を”ON”に設定する。これにより実行管理部のコマンド実行管理処理に示した機構によって(図12)、コマンドが起動する。
【0117】
[ステップS52]認可判定後半処理S16bでは、緊急稼働開始日時を書き込む。具体的には、諾否応答処理部112は、現在の日時を、緊急稼働ログ記憶部130に緊急稼働開始日時として追加登録する。
【0118】
[ステップS53]認可判定後半処理S16bでは、緊急稼働終了日時の初期値を書き込む(初期化する)。具体的には、諾否応答処理部112は初期値0を、緊急稼働ログ記憶部130に緊急稼働終了日時として追加登録する。本実施例では、端末別緊急稼働ログ記憶部410中の緊急稼働終了日時(クライアント端末100とライセンスサーバ400の通信が回復したときに通信回復日時が設定される)が初期化されている(初期値が設定されている)ことが、稼働形態情報として緊急稼働状態であることを意味している。
【0119】
[ステップS54]認可判定後半処理S16bは、緊急稼働開始メッセージ「緊急稼働中」をクライアント端末100のモニタ11に表示する。本ステップは緊急稼働開始に付随する実務的な処理を行うステップである。その後、緊急稼働開始処理S38が終了する。
【0120】
[ステップS39]ライセンス取得部110の認可判定後半処理S16bでは、ライセンスサーバ400から応答なしであって、稼働形態情報が緊急稼働状態を呈するとき、緊急稼働を継続するかどうかの判定を行う。
【0121】
具体的には、緊急稼働ログ記憶部130の緊急稼働開始日時とライセンス管理DB120の緊急稼働可能期間より、緊急稼働継続可能日時を算出する。なお、緊急稼働期間の計算は、単純なカレンダを基にすることもあるし、稼働日を基にすることもある。
【0122】
もし、現在の日時が緊急稼働継続可能日時の前ならば緊急稼働継続期間中であると判定し、ステップS40の緊急稼働継続処理に進む。
そうでなければ緊急稼働継続期間中ではないと判定し、ステップS41の緊急稼働停止処理に進む。
【0123】
[ステップS40]ライセンス取得部110の認可判定後半処理S16bでは、稼働形態が緊急稼働状態を呈し、現時点が緊急稼働継続可能範囲内ならば緊急稼働を継続する。具体的には、ステップS51の認可フラグ21を”ON”に設定し、ステップS54の緊急稼働開始メッセージ出力処理を行う。すなわち、図15においてステップS52、53が不在としたときの手順を実施する。これにより実行管理部のコマンド実行管理処理に示した機構(図12)によって、コマンドが起動する。
【0124】
[ステップS41]ライセンス取得部110の認可判定後半処理S16bでは、稼働形態が緊急稼働状態を呈し、緊急稼働継続可能範囲内でないならば緊急稼働を停止する。具体的には、図16に示すように、ステップS56で認可フラグ21を”OFF”に設定し、ステップS57で緊急稼働終了メッセージ「緊急稼働停止」をクライアント端末100のモニタ11に表示する。これにより実行管理部のコマンド実行管理処理に示した機構(図12)によって、コマンドは起動されない。
【0125】
[ステップS42]ライセンス取得部110の認可判定後半処理S16bでは、応答フラグが定常稼働を許容することを意味する”OK”であるならば、定常稼働を実現する。具体的には、認可フラグ21を”ON”に設定する。これにより実行管理部コマンド実行管理処理に示した機構によって、コマンドが起動する。この後、ステップS43の定常稼働復帰処理に進む。
【0126】
[ステップS43]ライセンス取得部110の認可判定後半処理では、緊急稼働状態から定常稼働状態に復帰した場合は、特別な処理である定常稼働復帰処理を行う。
図17を用いて定常稼働復帰処理を構成するステップについて順に説明する。
【0127】
[ステップS61]定常稼働復帰処理S43を構成する最初のステップは、定常稼働状態を呈するように稼働形態情報を更新する処理である。本実施の形態の場合は、端末別緊急稼働ログ記憶部410中の緊急稼働終了日時(クライアント端末100とライセンスサーバ400との通信回復日時)が初期状態であるかどうか検査した後、初期状態であれば現時刻を緊急稼働終了日時に書き込む。これは、緊急稼働情報中の稼働形態情報が定常稼働状態を呈することを意味する。
【0128】
[ステップS62]ライセンス取得部110の認可判定後半処理S16bでは、緊急稼働終了をライセンスサーバ400に通知する。具体的には、諾否応答処理部112は、緊急稼働が終了したことを示す情報と共に、現在緊急稼働ログ記憶部130に格納されている緊急稼働ログをライセンスサーバ400に送信する。
【0129】
[ステップS63]ライセンス取得部110の認可判定後半処理S16bでは、定常稼働開始メッセージ「定常稼働開始」をクライアント端末100のモニタ11に表示する。
以上でステップS43は終了する。
【0130】
[ステップS44]ライセンス取得部110の認可判定後半処理S16bでは、応答フラグが定常稼働を許容しないことを意味する”NG”であるならば、定常稼働が実現しない状態にする。具体的には、認可フラグ21を”OFF”に設定する。これにより実行管理部コマンド実行管理処理に示した機構によって、コマンドの起動が阻止される。この後、ステップS43の定常稼働復帰処理に進む。
【0131】
以上のようにして、クライアント端末100においてアプリケーション140を緊急稼働させることができる。
次に、ライセンスサーバ400における認可判定処理を説明する。
【0132】
図18は、認可判定処理の手順を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。なお、この処理は、いずれかのクライアント端末からライセンスサーバ400に対して認可要求が送信されたときに実行される処理である。
【0133】
[ステップS81]ライセンスサーバ400の認可判定処理部470は、認可期限が過ぎているか否かを判断する。具体的には、認可判定処理部470は、認可条件記憶部420に設定された認可期限と現在時刻とを比較し、現在時刻が認可期限を過ぎているか否かを判断する。認可期限を過ぎている場合、処理がステップS82に進められる。認可期限を過ぎていない場合、処理がステップS83に進められる。
【0134】
[ステップS82]認可判定処理部470は、認可期限が過ぎている場合、認可要求を送信したクライアント端末に対して拒絶応答(拒絶を示す諾否応答)を送信する。その後、処理が終了する。
【0135】
[ステップS83]の認可判定処理部470は、認可期限が過ぎていない場合、クライアント端末100から送信された認可要求信号を受信する。
[ステップS84]認可判定処理部470は、認可端末管理DB430から、認可要求を送信したクライアント端末のMACアドレスを探索する。
【0136】
[ステップS85]認可判定処理部470は、MACアドレスが検出された場合、処理をステップS86に進める。また、認可判定処理部470は、MACアドレスが検出されなかった場合、処理をステップS88に進める。
【0137】
[ステップS86]認可判定処理部470は、認可端末管理DB430を更新する。具体的には、認可判定処理部470は、認可端末管理DB430内の認可要求を出力したクライアント端末のMACアドレスに対応付けられた認可最終要求日時を、現在の日時に更新する。
【0138】
[ステップS87]認可判定処理部470は、許諾応答(アプリケーションの使用の許諾を示す諾否応答)を、認可要求を送信したクライアント端末に送信する。その後、ライセンス管理処理が終了する。
【0139】
[ステップS88]認可判定処理部470は、認可要求を送信したクライアント端末のMACアドレスが認可端末管理DBに登録されていない場合、そのクライアント端末に対してアプリケーションの使用を許諾したときに認可可能端末数を超えるか否かを判断する。具体的には、認可判定処理部470は、認可条件記憶部420内の認可端末数が認可可能端末数以上であるか(認可端末を増加させると、認可端末数が認可可能端末数を超えるか)否かを判断する。認可端末数が認可可能端末数以上であれば、処理がステップS89に進められる。認可端末数が認可可能端末数未満であれば、処理がステップS90に進められる。
【0140】
[ステップS89]認可判定処理部470は、認可要求を送信したクライアント端末に対して拒絶応答(拒絶を示す諾否応答)を送信する。その後、ライセンス管理処理が終了する。
【0141】
[ステップS90]認可判定処理部470は、認可端末数が認可可能端末数未満であれば、認可端末管理DB430を更新する。具体的には、認可判定処理部470は、認可端末管理DB430に対して、認可要求を送信したクライアント端末に対応するレコードを追加する。そのレコードの端末MACアドレスには、認可要求を送信したクライアント端末のMACアドレスが設定される。また、現在の日時が、稼働開始日時として設定される。さらに、認可要求に含まれる認可要求サイクルが、新たに登録されたレコードの認可要求サイクルとして設定される。また、認可判定処理部470は、認可条件記憶部420内の許可端末数に1を加算する。
【0142】
[ステップS91]認可判定処理部470は、認可要求を送信したクライアント端末に対して、許諾応答(許可を示す諾否応答)を送信する。その後、ライセンス管理処理が終了する。
【0143】
このようにして、認可要求に応じた諾否判定を行うことができる。
次に、ライセンスサーバ400で行われる認可取り消し処理について説明する。
図19は、認可取り消し処理の手順を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。この処理は、所定の間隔(例えば、認可要求サイクルの最小値より短い間隔)で定期的に実行される。
【0144】
[ステップS101]認可判定処理部470は、認可期限が過ぎているか否かを判断する。具体的には、認可判定処理部470は、認可条件記憶部420に設定された認可期限と現在時刻とを比較し、現在時刻が認可期限を過ぎているか否かを判断する。認可期限を過ぎている場合、処理がステップS102に進められる。認可期限を過ぎていない場合、処理がステップS103に進められる。
【0145】
[ステップS102]認可判定処理部470は、認可期限が過ぎている場合、全てのクライアント端末の認可を取り消す。具体的には、認可判定処理部470は、認可端末管理DB430から、全てのレコードを削除する。その後、処理が終了する。
【0146】
[ステップS103]認可判定処理部470は、認可期限が過ぎていなければ、認可要求が途絶えたクライアント端末を検索する。具体的には、認可判定処理部470は、認可端末管理DB430を参照し、各クライアント端末の認可最終要求日時から現在までの経過時間と、認可要求サイクルとを比較する。そして、認可判定処理部470は、経過時間が認可要求サイクルを超えていれば、認可要求が途絶えていると判断する。
【0147】
[ステップS104]認可判定処理部470は、認可要求が途絶えたクライアント端末があるか否かを判断する。該当するクライアント端末があれば、処理がステップS105に進められる。該当するクライアント端末がなければ、処理が終了する。
【0148】
[ステップS105]認可判定処理部470は、認可要求が途絶えたクライアント端末がある場合、認可端末管理DB430を参照し、そのクライアント端末のモバイルフラグが”ON”か否かを判断する。モバイルフラグが”ON”であれば、処理がステップS106に進められる。モバイルフラグが”OFF”であれば、処理がステップS107に進められる。
【0149】
[ステップS106]認可判定処理部470は、クライアント端末のモバイル状態が、モバイル使用期限を経過しているか否かを判断する。具体的には、認可判定処理部470は、認可端末管理DB430を参照し、モバイル状態のクライアント端末のモバイル運用開始時刻から現在までの経過時間と、認可条件記憶部420に示されるモバイル使用期限とを比較する。経過時間の方が大きければ、モバイル使用期限を経過しているものと判断される。モバイル使用期限を経過している場合、処理がステップS107に進められる。モバイル使用期限を経過していなければ、処理が終了する。
【0150】
[ステップS107]認可判定処理部470は、ステップS103で検出されたクライアント端末に対するアプリケーションの使用の認可を取り消す。具体的には、認可判定処理部470は、認可端末管理DB430から、ステップS103で検出されたクライアント端末に関するレコードを削除する。その後、処理が終了する。
【0151】
このように、クライアント端末100,200,300においてアプリケーションを一定の制限下で緊急稼働可能とすることで、ライセンスサーバ400の障害、あるいはネットワーク10の通信回線障害の発生によって、クライアント端末100,200,300に搭載されたアプリケーションが使用不能状態に陥ることを回避できる。しかも、ライセンスサーバ400を冗長化する必要もないため、アプリケーションの安定運用のために必要なハードウエア、およびソフトウエア資源も少なくて済む。この際、緊急稼働ログ(緊急稼働の履歴情報)を保存しておき、障害が復旧したときに緊急稼働ログを収集することで、事後的に使用制限を超えたアプリケーションの使用の有無を判断することができる。緊急稼働があったことで使用制限を超えたアプリケーションの使用が検出された場合、ライセンス提供者は、ユーザに追加料金を請求したり、次回のライセンス提供の際に、使用可能端末数を増加させた新規契約を結ぶようにユーザに働きかけることができる。
【0152】
また、クライアント端末がオフラインの状態(ライセンスサーバ400と通信できない状態)でも、予めモバイル使用の指示を入力しておけば、所定期間内はアプリケーションの使用を可能とした。これにより、モバイル端末でアプリケーションを使用し、顧客先でアプリケーションを用いたデモンストレーションを行うといった柔軟な運用が可能となる。例えば、アプリケーションが3次元CADアプリケーションであれば、モバイル運用により、オフラインで3次元CADデータによる製品の立体表示を行うことができる。
【0153】
しかも、モバイル状態の端末については、定期的な認可要求が途絶えていても、ライセンスサーバ400において認可状態として扱うことで、モバイル状態のクライアント端末を含めて使用可能端末数をカウントすることができる。
【0154】
さらに、アプリケーションに対するコマンド実行時に認可フラグ21が”ON”であれば、そのコマンドが終了するまで実行できるようにした。すなわち、コマンド実行中に認可フラグ21が”OFF”になったとしても、既に実行されているコマンドは、そのコマンドで指示された処理の終了まで実行できる。これにより、例えばCADシステムの図形処理コマンドのように比較的処理単位が大きい(処理に時間がかかる)場合であっても、アプリケーションの機能を動的に停止させることができる。
【0155】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、クライアント端末100,200,300やライセンスサーバ400が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
【0156】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0157】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0158】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【0159】
(付記1) ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔で、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信ステップと、
前記通信ステップで前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始ステップと、
前記緊急稼働判定ステップで緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止ステップと、
前記通信ステップで前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新ステップと、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行ステップと、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止ステップと、
を実行させるアプリケーション実行制御プログラム。
【0160】
(付記2) 前記稼働形態情報として、緊急稼働を開始した日時と対をなす、前記管理対象プログラムを実行する前記コンピュータと前記ライセンス管理装置の間の通信が回復した日時を使用することを特徴とする付記1記載のアプリケーション実行制御プログラム。
【0161】
(付記3) 前記稼働状態判別情報として、緊急稼働の開始と対をなす、前記管理対象プログラムを実行するコンピュータと前記ライセンス管理装置間の通信の回復に基づいて生成したフラグを使用することを特徴とする付記1記載のアプリケーション実行制御プログラム。
【0162】
(付記4) 前記稼働状態判別情報として、緊急稼働の開始と対をなす、前記管理対象プログラムを実行するコンピュータと前記ライセンス管理装置間の通信の回復によって、前記緊急稼働を開始した日時を消去することを特徴とする付記1記載のアプリケーション実行制御プログラム。
【0163】
(付記5) 前記コンピュータに、さらに、
前記通信ステップで前記ライセンス管理装置と通信できた場合において、前記記憶手段に前記緊急稼働情報が格納されている場合、前記緊急稼働情報を前記ライセンス管理装置に送信し、前記記憶手段内の前記緊急稼働情報を消去するする初期化ステップを実行させることを特徴とする付記1記載の実行制御プログラム。
【0164】
(付記6) 前記コンピュータに、さらに、
前記コンピュータが前記ライセンス管理装置と通信できる状態でモバイル使用を指示する操作入力を受け付けた場合、所定のモバイル使用期限だけ次回の前記通信ステップの実行を延期するオフライン使用ステップを実行させることを特徴とする請求項1記載のアプリケーション実行制御プログラム。
【0165】
(付記7) 前記オフライン使用ステップでは、前記通信ステップで前記ライセンス管理装置と通信でき、かつ該ライセンス管理装置から前記認可応答を受信した後、次回の前記通信ステップの実行前に、モバイル使用を指示する操作入力を受け付けた場合、該ライセンス管理装置に対してモバイル使用通知を送信することを特徴とする付記6記載の実行制御プログラム。
【0166】
(付記8) 前記実行継続ステップでは、前記プログラム実行手段に対して前記管理対象プログラムに用意されたコマンドの実行の許可を示す認可フラグを有効に設定することで、該プログラム実行手段に該管理対象プログラムを継続して実行させ、
前記実行中断ステップでは、前記認可フラグを無効に設定することで、前記プログラム実行手段に前記管理対象プログラムの実行を中断させることを特徴とする付記1記載の実行制御プログラム。
【0167】
(付記9) ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔での、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信ステップと、
前記通信ステップで前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始ステップと、
前記緊急稼働判定ステップで緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止ステップと、
前記通信ステップで前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新ステップと、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行ステップと、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止ステップと、
を実行するアプリケーション実行制御方法。
【0168】
(付記10) ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔での、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信手段と、
前記通信手段で前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定手段と、
前記緊急稼働判定手段で緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始手段と、
前記緊急稼働判定手段で緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続手段と、
前記緊急稼働判定手段で緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止手段と、
前記通信手段で前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新手段と、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行手段と、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止手段と、
を有するアプリケーション実行制御装置。
【図面の簡単な説明】
【0169】
【図1】本実施の形態の概要を示す図である。
【図2】本実施の形態のシステム構成例を示す図である。
【図3】本実施の形態に用いるクライアント端末のハードウエア構成例を示す図である。
【図4】クライアント端末の機能を示すブロック図である。
【図5】クライアント端末のライセンス管理DBのデータ構造例を示す図である。
【図6】クライアント端末の緊急稼働ログ記憶部のデータ構造例を示す図である。
【図7】ライセンスサーバの機能を示すブロック図である。
【図8】ライセンスサーバの端末別緊急稼働ログ記憶部のデータ構造の一例を示す図である。
【図9】ライセンスサーバの認可条件記憶部のデータ構造の一例を示す図である。
【図10】ライセンスサーバの認可端末管理DBのデータ構造の一例を示す図である。
【図11】ライセンスサーバの運行ログ記憶部のデータ構造の一例を示す図である。
【図12】クライアント端末の実行管理部と諾否応答処理部で行われるコマンド実行管理処理の手順の一つの例を示す図である。
【図13】ライセンス取得部内の諾否応答処理部に属する認可判定ステップの前半の処理ステップの手順を示すフローチャートである。
【図14】ライセンス取得部における認可判定のステップS16の後半の処理ステップS16bの手順を示すフローチャートである。
【図15】緊急稼働開始処理の手順を示すフローチャートである。
【図16】緊急稼働停止処理の手順を示すフローチャートである。
【図17】定常稼働復帰処理の手順を示すフローチャートである。
【図18】諾否判定処理の手順を示すフローチャートである。
【図19】認可取り消し処理の手順を示すフローチャートである。
【符号の説明】
【0170】
1 クライアント端末
1a アプリケーション実行制御手段
1b 記憶手段
1ba 緊急稼働情報
1c プログラム実行手段
1ca 管理対象プログラム
2 ライセンス管理装置
【技術分野】
【0001】
本発明はネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムの実行を制御するアプリケーション実行制御プログラム、アプリケーション実行制御方法、およびアプリケーション実行制御装置に関し、特に定期的に使用の許諾を受ける必要がある管理対象プログラムの実行を制御するアプリケーション実行制御プログラム、アプリケーション実行制御方法、およびアプリケーション実行制御装置に関する。
【背景技術】
【0002】
商用ソフトウエアでは、しばしばそのソフトウエアを使用できる端末のライセンス制限がなされる。使用制限の方法としては、例えば、ドングルなどと呼ばれる物理的な端子やプロダクトキーと、端末の識別子との対応関係を固定しておく。そして、ドングルやプロダクトキーに対応する端末でのみソフトウエアを使用可能にし、他の端末では使用できないようにする。このような使用制限方法は、ノードロックライセンスまたは固定ライセンスと呼ばれている。この使用制限方法では、端末に対して個別にライセンスを付与することとなり、端末の入れ替えや新規追加を行えば、ライセンスの再発行が必要である。
【0003】
ところで、企業で業務に使用されるソフトウエアには、LAN(Local Area Network)に接続された多数の端末に実装しておく必要はあるが、各端末での使用機会は断続的でしかないものがある。このようなソフトウエアを同時に使用する端末は、全体の端末の一部でしかない。このようなソフトウエアであれば、同時に使用される端末の数を制限する、いわゆるフローティングライセンス、フレキシブルライセンスなどと呼ばれるライセンス管理方式を利用することができる。このライセンス管理方式は、全ての端末に対する個別のライセンスを取得する必要がなくライセンス取得コストが低く抑えられると共に、ライセンス管理の一元化による利便性の向上が図れる。
【0004】
フローティングライセンス、フレキシブルライセンスなどと呼ばれるライセンス管理方式の一つに、ネットワークライセンス管理と呼ばれる方式がある。ネットワークライセンス管理方式は、LANにライセンスサーバと呼ばれる特別な管理用の計算機を設置する。ライセンスサーバは管理対象である端末上でのソフトウエアの稼働状態をオンラインで把握する。そして、ライセンスサーバは、管理対象とするソフトウエアが稼働する端末の数を制限する。
【0005】
ネットワークライセンス方式では、ライセンスサーバは、クライアントの固有情報とライセンスキーとを含むライセンス要求をクライアントから受信する。クライアントの固有情報は、例えば、クライアントのMAC(Media Access Control)アドレス、ハードディスク装置のシリアル番号などである。ライセンスサーバは、正しいライセンスキーとクライアントの固有情報とを送信したクライアントに対してライセンスを付与する。以後、ライセンスサーバは、同一ライセンスキーを用いた同一固有情報のクライアントに対してのみ、ソフトウエアの起動を許可する(例えば、特許文献1参照)。
【0006】
ネットワークライセンス方式では、ライセンスで制限された数以内であれば、複数の任意の端末にソフトウエアの使用が同時に許可される。そのため、新規の端末を購入した場合にも、その端末ですぐにソフトウエアを実行でき、企業内での複数の端末のライセンス管理などに非常に便利である。
【0007】
また、予め販売管理用サーバから実施許諾データを取得しておき、その実施許諾データに基づいて一定時間または一定使用回数だけ、クライアントでソフトウエアを実行できるようにする技術もある(例えば、特許文献2参照)。
【特許文献1】特開2004−38247号公報
【特許文献2】特開2001−306735号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
ネットワークライセンス管理方式では、クライアント端末とライセンスサーバとの間で認可要求と認可諾否のメッセージが正常に交換されている定常稼働状態にあって、予め設定された制限台数の範囲内の端末で問題なく管理対象のソフトウエアを稼働させることができる。しかし、ライセンスサーバに障害が発生すると、すべてのクライアント端末で管理対象のソフトウエアを稼働させることができなくなる。
【0009】
この問題を解決する手段として、例えば、バックアップ用のライセンスサーバを常時保有しておき、ライセンスサーバが故障した場合、バックアップ用のバックアップサーバに切り替えて運用することができる。また、その他の対応方法としては、2台のライセンスサーバ(デュアルサーバ)による冗長構成にして、一方のライセンスサーバが故障してもネットワークライセンス管理システムを停止することなく、他方のライセンスサーバでライセンス管理を行う運用形態も可能である。
【0010】
しかしながら、バックアップサーバやデュアルサーバ構成を採用した場合であっても、ネットワークの障害などでライセンスサーバと端末との通信が途絶えると、端末で管理対象のソフトウエアを稼働させることができなくなり、業務が停止してしまう。業務の停止は、システムの運用上最も避けるべき事態である。
【0011】
また、バックアップサーバやデュアルサーバは複数のコンピュータをサーバとして使用するので、ハードウエア資源、ソフトウエア資源および保守管理の手間が余分に発生する。その結果、ライセンス管理費用の増大を招く。
【0012】
なお、上記特許文献2の技術であれば、実施許諾データを取得しておくことで、それ以降ネットワークに接続しなくても一定期間ソフトウエアを使用できる。ただし、このようなライセンス管理を行うと、ソフトウエアを使用する可能性がある全ての端末に対して個別のライセンスが必要となる。すると、ネットワークライセンス方式の本来の利点であるライセンスの集中管理による動的なライセンス付与ができなくなってしまう。
【0013】
本発明はこのような点に鑑みてなされたものであり、ネットワークライセンス方式において、ライセンスを管理する装置との間の通信が途絶えたクライアントにおいてもソフトウエアを適切な制限付きで使用できるアプリケーション実行制御プログラム、アプリケーション実行制御方法、およびアプリケーション実行制御装置を提供することを目的とする。
【課題を解決するための手段】
【0014】
上記課題を解決するために、アプリケーション実行制御プログラムが提供される。このアプリケーション実行制御プログラムは、ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータである
クライアント端末に、以下の処理を実行させる。
【0015】
所定間隔で、ライセンス管理装置との間の通信および該管理対象プログラムの使用の認可応答の取得を試みる。
コンピュータがライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、該管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する。
【0016】
ここで、緊急稼働開始可能と判定された場合、緊急稼働情報に緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムを稼働させる。
【0017】
また、緊急稼働継続可能と判定された場合、プログラム実行手段に管理対象プログラムを実行させる。
さらに、緊急稼働解可能および緊急稼働継続可能のいずれでもないと判定された場合、プログラム実行手段に管理対象プログラムを実行させないようにする。
【0018】
一方、クライアント端末がライセンス管理装置と通信できた場合、稼働形態情報が定常稼働状態を呈するように設定し、ライセンス管理装置から認可応答を受信したならばプログラム実行手段に管理対象プログラムを実行させ、ライセンス管理装置から前記認可応答を受信できなかったならばプログラム実行手段に該管理対象プログラムの実行を中断させる。
【0019】
このようなアプリケーション実行制御プログラムにより、ライセンス管理装置から認可応答を受信できない場合であっても、緊急稼働可能条件の範囲内であれば緊急稼働として管理対象プログラムの実行が継続される。
【0020】
また、上記アプリケーション実行制御プログラムを実行するコンピュータと同様の処理を実行させるアプリケーション実行制御方法が提供される。さらに、上記アプリケーション実行制御プログラムを実行するコンピュータと同様の機能を有するアプリケーション実行制御装置が提供される。
【発明の効果】
【0021】
本発明では、回線障害等によりライセンス管理装置との通信が途絶えることによって管理対象プログラムが使用不能状態に陥ることを、回避できる。
また、従来ネットワークライセンス管理システムで使用されていたバックアップ用ライセンスサーバおよびデュアルサーバを必要としなくなるので、設備費用、保守費用および設備スペースを節約することができる。
【発明を実施するための最良の形態】
【0022】
以下、本発明の実施の形態の一つの最適な例を図面を参照して説明する。
図1は、本実施の形態の概要を示す図である。クライアント端末1は、ライセンス管理装置2とネットワークを介して接続されている。ライセンス管理装置2は、管理対象プログラム1caのライセンスを管理している。
【0023】
クライアント端末1には、アプリケーション実行制御手段1a、記憶手段1b、プログラム実行手段1cが設けられている。アプリケーション実行制御手段1aは、ライセンス管理装置2と定期的に通信することで、管理対象プログラム1caの使用許諾を得る。ただし、ライセンス管理装置2の障害、あるいはネットワーク上の通信の障害によって、ライセンス管理装置2との間の定期的な通信に不具合が生じる場合がある。そのような場合を想定し、アプリケーション実行制御手段1aが実行する処理の流れの概要を以下に記す。なお、これらのステップの処理の流れの細部は後に図12ないし図18を用いて詳しく説明される。なお、図1においては矢印付きの実線は処理の流れを、点線はデータの参照更新を表している。
【0024】
[ステップS1]アプリケーション実行制御手段1aは、所定の間隔で、ライセンス管理装置2との間の通信および管理対象プログラム1caの使用の認可応答の取得を試みる。
【0025】
[ステップS2]アプリケーション実行制御手段1aは、ステップS1でクライアント端末1とライセンス管理装置2の間の通信が成功したかどうか判定し、通信が成功した場合は諾否情報を出力する。
【0026】
[ステップS3]ステップS2でライセンス管理装置2と通信できない場合、アプリケーション実行制御手段1aは、記憶手段1bに格納された、管理対象プログラムを緊急稼働させた緊急稼働開始日時と稼働形態情報を含む緊急稼働情報1baを参照し、当該時点(通信できないと判断した時点)が緊急稼働開始可能か緊急稼働継続可能か否かを判定する。
【0027】
[ステップS4]ステップS3で、稼働状態情報より当該時点は緊急稼働状態でないから緊急稼働開始可能と判定された場合、アプリケーション実行制御手段1aは、管理対象プログラムが緊急稼働を開始したとして記憶手段内に緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、プログラム実行手段1cに管理対象プログラム1caを稼働するよう指示する。
【0028】
[ステップS5]ステップS3で、当該時点は緊急稼働状態であり、例えば緊急稼働開始日時より所定の期間内であるという理由で、緊急稼働継続可能と判定された場合、アプリケーション実行制御手段1aは、プログラム実行手段1cに管理対象プログラム1caを稼働するよう指示する。
【0029】
[ステップS6]ステップS3で、当該時点は緊急稼働状態であり、例えば緊急稼働開始日時より所定の期間外であるという理由で、緊急稼働開始可能でも緊急稼働継続可能でもないと判定された場合は、アプリケーション実行制御手段1aは、プログラム実行手段1cに管理対象プログラム1caを稼働しないよう指示する。
【0030】
[ステップS7]ステップS2でライセンス管理装置2と通信に成功し、かつライセンス管理装置2から認可応答を受信した場合、アプリケーション実行制御手段1aは、プログラム実行手段1cに管理対象プログラム1caを実行させる。
【0031】
[ステップS8]ステップS2でライセンス管理装置2と通信に成功し、かつライセンス管理装置2から認可応答を受信できなかった場合、アプリケーション実行制御手段1aは、プログラム実行手段1cに管理対象プログラム1caの新たなコマンドの起動を阻止する。
【0032】
[ステップS9]ステップS1でライセンス管理装置2と通信に成功した場合、稼働状態情報が緊急稼働状態であるならば、本ステップで、稼働形態情報を定常稼働状態を呈するように設定する。なお、図1では本ステップは、ステップS7あるいはステップS8の後ろにあるとしたが、順序は逆になっても問題ない。
【0033】
このようなアプリケーション実行制御手段1aで管理対象プログラム1caの実行を制御することにより、ライセンス管理装置2から認可応答を受信できない場合であっても、緊急稼働可能条件の範囲内であれば緊急稼働として管理対象プログラム1caの実行が継続できる。その結果、障害等によりライセンス管理装置2との通信が途絶えることによって管理対象プログラムが使用不能状態に陥ることを、適切な条件下で回避できる。
【0034】
次に、本実施の形態の詳細を説明する。なお、本実施の形態は、例えばCADシステムの図形処理コマンドのように比較的処理単位が大きい(1つのコマンドの実行に時間がかかる)場合でも対応可能である。
【0035】
図2は、本実施の形態のシステム構成例を示す図である。ライセンスサーバ400には、ネットワーク10を介してクライアント端末100,200,300が接続されている。ライセンスサーバ400は、クライアント端末100,200,300に搭載されたソフトウエアの実行の諾否を管理する。
【0036】
なお、クライアント端末300はネットワーク10から切り離し、モバイル端末として利用することができる。
図3は、本実施の形態に用いるクライアント端末のハードウエア構成例を示す図である。クライアント端末100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
【0037】
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
【0038】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
【0039】
通信インタフェース106は、ネットワーク10に接続されている。通信インタフェース106は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
【0040】
以上のようなハードウエア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、クライアント端末100のハードウエア構成を示したが、他のクライアント端末200,300やライセンスサーバ400も同様のハードウエアで実現できる。
【0041】
図4は、クライアント端末の機能を示すブロック図である。クライアント端末100は、ライセンス取得部110、ライセンス管理データベース(DB)120、緊急稼働ログ記憶部130、アプリケーション140、および実行管理部150を有している。
【0042】
ライセンス取得部110は、ライセンスサーバ400と通信し、アプリケーション140を実行するためのライセンスの取得を試み、ライセンス使用の可否を認可フラグ21に出力する。ライセンス取得部110は、正常にライセンスを取得できた場合、実行許可を示すフラグの値”ON”を認可フラグ21に設定する。認可フラグ21は、例えば、RAM102内に配置される。ライセンス取得部110は、ライセンス管理のために認可要求処理部111、諾否応答処理部112、および緊急稼働後処理部113を有している。
【0043】
認可要求処理部111は、予め定めた時間間隔で、アプリケーション140の使用の許可を要求する使用認可要求をライセンスサーバ400に発信する。認可要求には、クライアント端末100のMACアドレスが含まれる。
【0044】
なお、本実施の形態ではクライアント端末100からの認可要求をトリガとしてライセンスの諾否を判断しているが、ライセンスサーバ400がクライアント端末100に対してポーリングを行い、ライセンスの諾否を判断する方式も可能である。ポーリングによってライセンスの諾否を判断する場合、ライセンスサーバ400からクライアント端末100に対して、アプリケーション140の起動の有無を確認する確認要求を送信する。そして、ライセンスサーバ400は、確認要求に対する応答内容に基づいて、ライセンスの諾否を判断する。
【0045】
諾否応答処理部112は、ライセンスサーバ400から諾否応答を受け取る。諾否応答には、アプリケーション140の使用を許諾するのか否かを示す情報が含まれる。諾否応答処理部112は、諾否応答により使用が許諾されたときは、認可フラグ21を”ON”にする。また、諾否応答処理部112は、諾否応答により使用が許諾されないときは、認可フラグ21を”OFF”にし、「認可されなかった」旨のメッセージをクライアント端末100のモニタ11に表示する。また、諾否応答処理部112は、認可要求処理部111から使用認可要求を出力したにも拘わらず諾否応答が返されない場合は、緊急稼働ログ記憶部130を参照し、認可フラグ21を”ON”または”OFF”にして、ライセンス管理の対象であるアプリケーション140の稼働を制御する。
【0046】
緊急稼働後処理部113は、クライアント端末100とライセンスサーバ400の間の通信が回復して緊急稼働状態が終了した時点で、クライアント端末側の緊急稼働ログ記憶部130に記憶された情報をライセンスサーバ400に送付する実務的な機能を執り行うが、本発明に対しては必須ではない。
【0047】
なお、認可要求処理部111、諾否応答処理部112、および緊急稼働後処理部113は、ライセンス取得部110における一部の機能を個別に示したものである。すなわち、ライセンス取得部110は、ライセンス管理のために、認可要求処理部111、諾否応答処理部112、および緊急稼働後処理部113以外の機能も有している。例えば、ライセンス取得部110は、アプリケーション140の停止した場合には、認可フラグ21を”OFF”にして、ライセンスサーバ400に対して使用終了通知を行う。また、ライセンス取得部110は、モバイルでの使用を示す操作入力(モバイル使用指示)が行われると、そのモバイル使用指示に応答して、ライセンス管理DB120内のモバイルフラグを”ON”にすると共に、ライセンスサーバ400に対してモバイル使用通知を送信する。さらに、ライセンス取得部110は、モバイルでの使用の終了を示す操作入力(モバイル解除指示)が行われると、そのモバイル解除指示に応答して、ライセンス管理DB120内のモバイルフラグを”OFF”にすると共に、ライセンスサーバ400に対してモバイル解除通知を送信する。
【0048】
なお、モバイル使用通知を送信できるのは、アプリケーション140の使用が認可されている場合(緊急稼働中以外で認可フラグ21が”ON”の場合)のみである。すなわち、ライセンス取得部110は、モバイル使用指示を受け取ると緊急稼働ログ記憶部130を参照し、緊急稼働中か否かを判断する。緊急稼働ログ記憶部130に端末MACアドレス以外に緊急稼働開始日時と緊急稼働終了日時の組みが少なくとも1つ登録されていれば、緊急稼働中である。稼働開始日時と緊急稼働終了日時の組みが全く登録されていなければ、緊急稼働中ではない。緊急稼働中でなく認可フラグ21の値が”ON”であれば、ライセンスサーバ400によってアプリケーション140の使用が認可されている。
【0049】
ライセンス管理DB120は、クライアント端末100のMACアドレスやライセンスサーバ400のホスト名などのライセンス管理に必要な情報を記憶するデータベースである。例えば、HDD103の記憶領域の一部にライセンス管理DB120が構築される。
【0050】
緊急稼働ログ記憶部130は、アプリケーション140の緊急稼働による動作履歴を記憶するデータベースである。例えば、HDD103の記憶領域の一部に緊急稼働ログ記憶部130が構築される。
【0051】
アプリケーション140は、ライセンスサーバ400でライセンスが管理されているソフトウエアである。アプリケーション140は、コマンド(一つの完結した処理の実行命令)が入力されるごとに、そのコマンドに応じた処理を実行する。なお、アプリケーション140に対して入力されるコマンドは、実行管理部150によって実行の可否が判断される。そして、アプリケーション140は、実行管理部150によってコマンドの実行が指示されたときに、該当するコマンドに対応する処理を実行する。
【0052】
実行管理部150は、アプリケーション140に対するコマンドの実行の可否を判断する。具体的には、実行管理部150は、アプリケーション140に対するコマンドが入力されると、認可フラグ21を参照する。認可フラグ21が”ON”であれば、実行管理部150は、入力されたコマンドの実行を許可し、そのコマンドの実行をアプリケーション140に指示する。認可フラグ21が”OFF”であれば、実行管理部150は、入力されたコマンドの実行を保留し、認可フラグ21が”ON”になるのを待つ。
【0053】
次に、クライアント端末100が有しているデータベースの内容について説明する。
図5は、クライアント端末のライセンス管理DBのデータ構造例を示す図である。ライセンス管理DB120には、端末MACアドレス、サーバホスト名、サーバMACアドレス、前回認可要求日時、前回許諾応答受領日時、認可要求サイクル、緊急稼働可能期間、モバイル使用期限、モバイルフラグ、およびモバイル運用開始時刻が登録されている。
【0054】
端末MACアドレスは、クライアント端末100の通信インタフェース106に予め設定されたMACアドレスである。MACアドレスにより、ネットワーク10を経由した通信において、クライアント端末100を一意に識別できる。端末MACアドレスは、クライアント端末100のシステム起動時の処理において、ブート通信インタフェース106内のROMからライセンス管理DB120に複写される。
【0055】
サーバホスト名は、ライセンスサーバ400の名称(ホスト名)である。ホスト名は、例えば図示していないDNS(Domain Name System)サーバによってIP(Internet Protocol)アドレスに対応付けられている。ネットワーク10上でTCP(Transmission Control Protocol)/IPによる通信を行う際に、ホスト名を指定することでDNSサーバによってIPアドレスが特定され、該当するIPアドレスを有する装置に対してパケットを送信できる。サーバホスト名は、ユーザの操作入力により予めライセンス管理DBに登録される。
【0056】
サーバMACアドレスは、ライセンスサーバ400のMACアドレスである。サーバMACアドレスは、サーバホスト名を用いて、ARP(Address Resolution Protocol)によって取得することができる。すなわち、ライセンス取得部110は、クライアント端末100のシステム起動時にサーバホスト名に対応するIPアドレスをDNSサーバから取得し、そのIPアドレスを指定したARPのリクエストをブロードキャストで送信する。すると、該当するIPアドレスを有するライセンスサーバ400からMACアドレスを含む応答が返される。
【0057】
前回認可要求日時は、前回認可要求を送信した日時である。前回認可要求日時は、認可要求が送信されるごとに、そのときの日時が設定される。
前回許諾応答受領日時は、前回許諾応答(許諾を示す諾否応答)を受領した日時である。前回許諾応答受領日時は、許諾応答を受信するごとに、そのときの日時が設定される。
【0058】
認可要求サイクルは、クライアント端末100から認可要求を送信する時間間隔である。認可要求サイクルは、予めユーザの操作入力に応じて設定される。
緊急稼働可能期間は、アプリケーション140を緊急稼働させることができる時間である。
【0059】
モバイル使用期限は、モバイル動作を継続可能な期間である。モバイル使用期限は、クライアント端末100起動時にライセンス取得部110がライセンスサーバ400の認可条件記憶部420から取得し、ライセンス管理DB120に設定する。
【0060】
モバイルフラグは、モバイル状態か否かを示す情報である。モバイル状態(オフライン状態)のとき、ライセンス取得部110によって、モバイルフラグが”ON”に設定される。また、オンライン状態のとき、ライセンス取得部110によって、モバイルフラグが”OFF”に設定される。
【0061】
モバイル運用開始時刻は、モバイル状態になった時刻である。モバイル運用開始時刻には、ライセンス取得部110によって、モバイルフラグが”ON”になったときに、そのときの時刻が設定され、モバイルフラグが”OFF”になったときに、リセットされる(無効の値が設定される)。
【0062】
図6は、クライアント端末の緊急稼働ログ記憶部のデータ構造例を示す図である。緊急稼働ログ記憶部130には、端末MACアドレス、緊急稼働開始日時、および緊急稼働終了日時が登録されている。なお、端末MACアドレスは、先頭に1つだけ登録されており、緊急稼働開始日時と緊急稼働終了日時は繰り返し登録される。
【0063】
緊急稼働開始日時は緊急稼働を開始した日時であり、緊急稼働開始状態になった時点で書き込まれる。
緊急稼働終了日時は緊急稼働が終了した日時であり、クライアント端末とライセンスサーバ間の通信が復旧した日時と同じである。これは、ライセンスサーバとクライアント端末間の交信が失敗し緊急稼働状態になった時点で初期状態に設定される。つまり一つの緊急稼働開始日時と一つの緊急稼働終了日時との対が、緊急稼働一回当たりの緊急稼働期間を示す緊急稼働期間情報を構成している。
【0064】
ここでは、緊急稼働開始日時と緊急稼働終了日時の繰り返しで緊急稼働を表現するデータ構造を実現しているが、実用的には緊急稼働継続日時を追加することもある。緊急稼働継続日時は緊急稼働状態が認識された最新の日時である。オーバタイムの把握などシステム管理上有用な情報である。しかしながら、ライセンス管理に関しては必須項目ではないので、ここでは説明を省略する。
【0065】
なお他の実施例として、緊急稼働か定常かどうかのフラグ、たとえば緊急稼働のときは緊急稼働開始日時をセットするとしても問題ないし、緊急稼働継続日時をデータとして保有せず、緊急稼働が終了した時点で緊急稼働開始日時を消去する形式でも問題ない。
【0066】
次に、ライセンスサーバ400の機能について説明する。
図7は、ライセンスサーバの機能を示すブロック図である。ライセンスサーバ400は、端末別緊急稼働ログ記憶部410、認可条件記憶部420、認可端末管理DB430、運行ログ記憶部440、緊急稼働ログ収集部450,認可条件設定部460、認可判定処理部470、運行ログ処理部480、および認可条件超過判定部490とライセンスサーバモニタ495を有している。
【0067】
端末別緊急稼働ログ記憶部410は、クライアント端末100,200,300それぞれの緊急稼働ログを記憶する。例えば、ライセンスサーバ400内のHDDの記憶領域の一部が、端末別緊急稼働ログ記憶部410として使用される。
【0068】
認可条件記憶部420には、アプリケーションのライセンスの内容(認可条件)と、ライセンスに基づいて使用許可を与えるために必要な情報が格納されている。例えば、ライセンスサーバ400内のHDDの記憶領域の一部が、認可条件記憶部420として使用される。
【0069】
認可端末管理DB430は、アプリケーションの使用を許諾したクライアント端末に関する情報を記憶するためのデータベースである。例えば、ライセンスサーバ400内のHDDの記憶領域の一部が、認可端末管理DB430として使用される。認可端末管理DB430には、認可端末ごとに稼働実績とモバイルとして運用する計画情報が格納される。認可端末管理DB430の内容は、クライアント端末からの認可要求に応答してアプリケーションの使用が認可されると自動的に更新される。また、認可端末管理DB430の内容は、クライアント端末からの認可要求に応答して(定常稼働)アプリケーションの使用が認可されるか、あるいは使用を認可したクライアント端末から使用終了通知を受けたときに自動的に更新される。
【0070】
運行ログ記憶部440は、各クライアント端末100,200,300におけるライセンス管理対象のアプリケーションの実行期間を記憶する。例えば、ライセンスサーバ400内のHDDの記憶領域の一部が、運行ログ記憶部440として使用される。
【0071】
緊急稼働ログ収集部450は、ネットワーク10に接続された各クライアント端末100,200,300から緊急稼働ログを収集する。そして、緊急稼働ログ収集部450は、収集した緊急稼働ログを端末別緊急稼働ログ記憶部410に格納する。
【0072】
認可条件設定部460は、ライセンス管理対象のアプリケーションに対して使用許可を与える条件を認可条件記憶部420に設定する。例えば、認可条件設定部460は、ライセンス管理対象のアプリケーションの販売元から、そのアプリケーションの使用ライセンスを取得し、取得した使用ライセンスに示される情報を認可条件記憶部420に設定する。なお、使用ライセンスには、同時に使用可能なクライアント端末の数や、アプリケーションを使用するクライアント端末として予め登録可能なクライアント端末数などが含まれる。
【0073】
認可判定処理部470は、クライアント端末から送られた認可要求に応答し、認可条件記憶部420、および認可端末管理DB430に基づいて、そのクライアント端末にアプリケーションの使用を認可するか否かを判定する。そして、認可判定処理部470は、判定結果を示す諾否応答を、認可要求を出力したクライアント端末に送信する。また、認可判定処理部470は、アプリケーションの使用を許可した場合、認可端末管理DB430の内容を更新する。クライアント端末から使用終了通知を受け取ると、認可判定処理部470は、認可端末管理DB430から、使用終了通知を送信したクライアント端末に対応するレコードを削除する。
【0074】
また、認可判定処理部470は、アプリケーションの使用を認可したクライアント端末からモバイル使用通知を受け取ると、認可端末管理DB430内のそのクライアント端末のMACアドレスに対応するモバイルフラグに”ON”(モバイル状態でのアプリケーションの使用中を示す)を設定する。逆に、認可判定処理部470は、モバイルフラグが”ON”のクライアント端末からモバイル解除通知を受け取ると、認可端末管理DB430内のそのクライアント端末のMACアドレスに対応するモバイルフラグに”OFF”(オンライン使用中を示す)を設定する。
【0075】
さらに、認可判定処理470は、アプリケーションの使用を認可したクライアント端末から定期的に送られるべき認可要求が途絶えると、そのクライアント端末に対する認可を取り消す。
【0076】
運行ログ処理部480は、各クライアント端末100,200,300によるアプリケーションの使用履歴を、運行ログとして運行ログ記憶部440に格納する。具体的には、運行ログ処理部480は、認可判定処理部470によってクライアント端末に対してアプリケーションの使用が認可されると、そのクライアント端末のMACアドレスと稼働開始日時(現在の日時)とに端末識別子を付加して、運行ログ記憶部440に登録する。また、運行ログ処理部480は、クライアント端末から使用終了通知を受け取ると、該当するクライアント端末のMACアドレスに対応付けて、稼働終了日時(現在の日時)を登録する。なお、運行ログ処理部480は、クライアント端末がモバイル状態の間は、アプリケーションが稼働中であるとみなす。
【0077】
認可条件超過判定部490は、端末別緊急稼働ログ記憶部410と運行ログ記憶部440の内容に基づいて、認可条件記憶部420内の認可条件を超えたアプリケーションの使用が行われているか否かを判断する。そして、認可条件超過判定部490は、認可条件を超えてアプリケーションが使用されていた場合、その旨を示すアラームメッセージをライセンスサーバ400に接続されたモニタに表示する。例えば、同時にアプリケーションを使用可能なクライアント端末数を超えてアプリケーションが同時使用されている場合に、超過して使用された時間の累計がライセンスサーバモニタ495に表示される。
【0078】
次に、ライセンスサーバ400で管理される情報の内容を具体的に説明する。
図8は、ライセンスサーバの端末別緊急稼働ログ記憶部のデータ構造の一例を示す図である。端末別緊急稼働ログ記憶部410には、各クライアント端末100,200,300から収集した複数の緊急稼働ログが格納されている。緊急稼働ログの内容は、図6に示した緊急稼働ログ記憶部130に格納された緊急稼働ログと同様である。
【0079】
図9は、ライセンスサーバの認可条件記憶部のデータ構造の一例を示す図である。認可条件記憶部420には、認可期限、認可端末数、認可可能端末数、モバイル使用期限、サーバホスト名、およびサーバMACアドレスが格納されている。なお、認可期限、認可端末数、および認可可能端末数は、管理対象のアプリケーションの提供者から与えられる情報である。
【0080】
認可期限は、アプリケーションの使用が可能な最終期限である。認可端末数は、アプリケーションの使用を認可したクライアント端末の総数である。認可可能端末数は、アプリケーションの使用を同時に認可可能なクライアント端末の総数である。モバイル使用期限は、モバイル状態で使用可能な期間である。サーバホスト名は、ライセンスサーバ400を、TCP/IPのネットワーク上で一意に識別するための名称(ホスト名)である。サーバMACアドレスは、ライセンスサーバ400のMACアドレスである。
【0081】
図10は、ライセンスサーバの認可端末管理DBのデータ構造の一例を示す図である。認可端末管理DB430には、アプリケーションの使用を許諾したクライアント端末ごとに、端末MACアドレス、稼働開始日時、認可最終要求日時、認可要求サイクル、モバイルフラグ、およびモバイル運用開始時刻が設定されている。
【0082】
端末MACアドレスは、アプリケーションを使用するクライアント端末のMACアドレスである。稼働開始日時は、クライアント端末がアプリケーションの使用を開始した日時である。認可最終要求日時は、クライアント端末がアプリケーションの認可要求を最後に送信した日時である。認可要求サイクルとは、クライアント端末がアプリケーションの使用許諾を受けるべき時間間隔である。認可最終要求日時と認可要求サイクルに基づいて、ライセンスサーバはクライアントにライセンス使用認可を優先的に供与する。
【0083】
モバイルフラグは、クライアント端末がネットワーク10から切り離された状態でアプリケーションを使用していることを示すフラグである。例えば、アプリケーションを使用しているクライアント端末がネットワーク10から切り離されているとき、モバイルフラグに”ON”が設定される。アプリケーションを使用しているクライアント端末がネットワーク10に接続されているときは、モバイルフラグに”OFF”が設定される。
【0084】
モバイル運用開始時刻は、クライアント端末がモバイル状態となった時刻である。モバイル運用開始時刻には、モバイルフラグが”ON”になったときに、そのときの時刻が設定され、モバイルフラグが”OFF”になったときに、リセットされる(無効の値が設定される)。
【0085】
図11は、ライセンスサーバの運行ログ記憶部のデータ構造の一例を示す図である。運行ログ記憶部440には、クライアント端末によるアプリケーションの使用実績として、端末識別子、端末MACアドレス、稼働開始日時、稼働終了日時が設定される。端末識別子は、ライセンスサーバ400内で各クライアント端末を一意に識別するための識別情報である。端末MACアドレスは、端末識別子に対応するクライアント端末のMACアドレスである。稼働開始日時は、クライアント端末がアプリケーションの使用を開始した日時である。稼働終了日時は、クライアント端末がアプリケーションの使用を終了した日時である。
【0086】
次に、本実施の形態におけるネットワークライセンス管理処理の内容を説明する。まず、100を代表とするクライアント端末で実行される処理を説明する。
図12は、図4のクライアント端末の実行管理部と諾否応答処理部で行われるコマンド実行管理処理の手順の一つの例を示す図である。以下、図12に示す処理をステップ番号に沿って説明する。この処理は、ユーザからの操作入力によってアプリケーション140に対するコマンドが入力されたときに実行される。
【0087】
ステップS16の認可判定は諾否応答処理部112に属する。認可判定ステップS16の詳細は後に詳しく説明されるが、その出力は認可フラグ21である。
ステップS11〜S14は実行管理部150に属する。以下、実行管理部150の処理について説明する。
【0088】
[ステップS11]実行管理部150は、アプリケーション140に対して入力されたコマンドを取得する。
[ステップS12]実行管理部150は、ライセンス取得部110が既に出力した認可フラグ21が”OK”か否かを判断する。認可フラグ21が”OK”であれば、処理はステップS14に進められる。認可フラグ21が”NG”であれば、処理はステップS13に進められる。
【0089】
[ステップS13]実行管理部150は、認可フラグ21が”NG”の場合、アプリケーション140を使用するライセンスを使用できないと認識し、所定時間待機する。その後、処理はステップS12に進められる。
【0090】
[ステップS14]実行管理部150は、認可フラグ21が”OK”であれば、入力されたコマンドを実行する。具体的には、実行管理部150は、入力されたコマンドに対応するプログラムの実行をアプリケーション140に指示する。すると、アプリケーション140が指示されたコマンドをディスパッチすることによって実行制御をコマンドのプログラムに移し実行する。その後コマンド処理が終了したならば、制御はステップS11に移り次のコマンドを処理する過程が繰り返される。
【0091】
このように実行管理部150は、認可フラグ21が”OK”であることを条件にして、アプリケーション140に対してコマンドを実行させることができる。なお、アプリケーション140は、コマンドを実行中に認可フラグ21が”NG”に変更されても、実行中のコマンドの処理は続行できる。
【0092】
図12左に示すように、前記の認可フラグ21を出力するのはライセンス取得部110に属する諾否応答処理部112の中の認可判定ステップS16である。認可判定ステップS16は、ライセンスサーバ400と通信を行い応答フラグを出力する認可判定前半処理ステップS16aと、前記応答フラグと緊急稼働情報1baを参照して認可フラグ21を出力し、緊急稼働情報1baを更新する認可判定後半処理S16bから構成される。
【0093】
なお、認可判定処理ステップS16は、概略図1においてはアプリケーション実行制御手段1aの通信ステップS1および通信判定ステップS2に該当する。
ライセンスサーバ400との通信は、処理時間が長い可能性があるコマンド実行ステップS14を含むプロセスとは非同期で行うことが望ましいので、本実施例では別プロセスで行われる。
【0094】
図13は、ライセンス取得部内の諾否応答処理部に属する認可判定ステップS16の前半の処理ステップS16a(図12参照)の手順を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
【0095】
[ステップS21]ライセンス取得部110は、実行管理部150を起動する。具体的には、ライセンス取得部110は、アプリケーション140のコマンドの実行を管理するためのプログラム(実行管理プログラム、またはモニタ)の実行要求をOSに対して出力する。つまり、クライアント端末100のOSに実行管理プログラムを実行するためのプロセスを生成させ、そのプロセスに実行管理プログラム(モニタ)を実行させる。通信、通信判定と実行管理部は別プロセスとなるので、応答フラグの更新と参照は非同期で独立に行われることになる。
【0096】
また逆に実行管理部が認可判定前半処理ステップS16aを実行するためのプロセスを発生するようにしても問題ない。
[ステップS22]認可判定前半処理ステップS16aでは、ライセンス管理DB120を参照し、前回認可要求日時から認可要求サイクルで示された時間経過するまで待機する。なお、アプリケーション140起動後、最初の認可要求送信前であれば、当該待機処理は不要である。
【0097】
[ステップS23]認可判定前半処理ステップS16aでは、アプリケーション140が終了している可能性があるので、アプリケーション140が存在するか否かを検査する。具体的には、ライセンス取得部110は、OSが起動させているプロセスの中から、アプリケーション140を実行中のプロセスを検索する。
【0098】
[ステップS24]ライセンス取得部110は、アプリケーション140が存在する場合、処理をステップS26に進め、アプリケーション140が存在しない場合、処理を時間待ちステップS22に進める。
【0099】
[ステップS26]認可判定前半処理ステップS16aでは、アプリケーション140が存在する場合、ライセンス管理DB120内のモバイルフラグが”ON”か否かを判断する。モバイルフラグが”ON”であれば、処理がステップS27に進められる。モバイルフラグが”OFF”であれば、処理はステップS29に進められる。
【0100】
[ステップS27]認可判定前半処理ステップS16aでは、モバイル使用期限を過ぎているか否かを判断する。具体的には、ライセンス取得部110は、ライセンス管理DB120を参照し、モバイル運用開始時刻から現在までの経過時間が、モバイル使用期限を過ぎているか否かを判断する。モバイル使用期限が過ぎている場合、処理はステップS28に進められる。モバイル使用期限が過ぎていなければ、処理はステップS22に進められる。
【0101】
[ステップS28]ライセンス取得部110の認可判定前半処理ステップS16aでは、ライセンス管理DB120内のモバイルフラグを”OFF”にし、処理をステップS29に進める。
【0102】
[ステップS29]認可判定前半処理ステップS16aでは、アプリケーション140が存在する場合、認可要求を発信する。具体的には、ライセンス取得部110は、認可要求処理部111に対して、認可要求の送信を指示する。すると、認可要求処理部111は、ライセンス管理DB120を参照し、端末MACアドレス、サーバホスト名、サーバMACアドレスを取得する。そして、認可要求処理部111は、サーバホスト名で示されるライセンスサーバ400に対して、アプリケーション140の使用の認可を要求するパケットを生成し、そのパケットを含むフレームの宛先にサーバMACアドレスを設定して、ネットワーク10上に送信する。このとき、認可要求処理部111は、ライセンス管理DB120内の前回認可要求日時を更新する。すなわち、認可要求処理部111は、前回認可要求日時として現在の日時を設定する。
【0103】
したがって、アプリケーションが存在する限り認可要求がライセンスサーバに送られ、ライセンスサーバが正常に機能する限り、以下のステップによって優先的に認可応答が返ってくることになる。
【0104】
[ステップS30]認可判定前半処理ステップS16aでは、所定時間だけライセンスサーバ400からの応答を待つ。
[ステップS31]認可判定前半処理ステップS16aでは、ライセンスサーバ400から諾否応答が送信された場合、その諾否応答を取得する。その後、処理はステップS32に進められる。また、所定の時間内に諾否応答がない場合も、処理はステップS32に進められる。
【0105】
[ステップS32]認可判定前半処理ステップS16aでは、所定の時間内に諾否応答があるかどうか検査する。所定の時間内に諾否応答があれば、処理はステップS34に進められる。所定の時間内に諾否応答がなければ、処理はステップS33に進められる。
【0106】
[ステップS33]認可判定前半処理ステップS16aでは、所定の時間内に諾否応答がなければ(交信失敗の場合)応答フラグに応答なしのフラグ”None”を立てる。その後ステップS22の時間待ちに進む。
【0107】
[ステップS34]認可判定前半処理ステップS16aでは、ステップS31の応答が許諾応答かどうかどうか検査する。応答が許諾応答であれば、処理はステップS36に進められる。応答が許諾応答でなければ、処理はステップS35に進められる。
【0108】
[ステップS35]認可判定前半処理ステップS16aでは、ステップS31の応答が許諾応答でなければ応答フラグに許諾応答でないというフラグ”NG”を立てる。その後ステップS22の時間待ちに進む。
【0109】
[ステップS36]認可判定前半処理ステップS16aでは、ステップS31の応答が許諾応答であれば応答フラグに許諾応答であるというフラグ”OK”を立てる。その後ステップS22の時間待ちに進む。
【0110】
図14は、ライセンス取得部における認可判定のステップS16の後半の処理ステップS16bの手順を示すフローチャートである。本実施例の本ステップのアウトプットは、コマンドの稼働を制御する認可フラグ21と、緊急稼働情報1baの更新である。以下、図14に示す処理をステップ番号に沿って説明する。なお、図14の流れの概要は既に図1に示されている。
【0111】
[ステップS33a]本ステップは、認可判定前半処理ステップS16aを構成するステップS33に対応する。ステップS33は、所定の時間内に諾否応答がなければ、応答フラグにライセンスサーバ400から応答なしのフラグ”None”を既に立てている。これに基づいて実行管理部150の認可判定後半処理S16aは認可フラグ21を算出する。
【0112】
応答なしのフラグ”None”が立っている場合はステップS37に、応答があるフラグの場合はステップS36aを経由して、応答フラグが許諾応答”OK”ならばステップS42の定常稼働処理に、応答フラグが拒絶応答”NG”ならばステップS44の定常稼働停止処理に進む。
【0113】
[ステップS37]応答フラグにライセンスサーバ400から応答なしのフラグが立っている場合は、実行管理部150の認可判定後半処理S16bでは、緊急稼働中かどうかの判定を、記憶手段1bの緊急稼働情報の稼働形態情報に対応する情報に基づいて行う(判断基準の詳細はステップS53の説明参照)。
【0114】
もし、稼働形態が緊急稼働状態を呈しているならば、ステップS39の緊急稼働継続可能性判定処理に進む。もし、稼働形態が緊急稼働中でない、すなわち定型稼働状態を呈しているならば、ステップS38の緊急稼働開始処理に進む。
【0115】
[ステップS38]ライセンス取得部110の認可判定後半処理S16bの緊急稼働開始処理の詳細について図15を用いて説明する。
図15は、緊急稼働開始処理の手順を示すフローチャートである。
【0116】
[ステップS51]認可判定後半処理S16bでは、認可フラグ21を”ON”に設定する。これにより実行管理部のコマンド実行管理処理に示した機構によって(図12)、コマンドが起動する。
【0117】
[ステップS52]認可判定後半処理S16bでは、緊急稼働開始日時を書き込む。具体的には、諾否応答処理部112は、現在の日時を、緊急稼働ログ記憶部130に緊急稼働開始日時として追加登録する。
【0118】
[ステップS53]認可判定後半処理S16bでは、緊急稼働終了日時の初期値を書き込む(初期化する)。具体的には、諾否応答処理部112は初期値0を、緊急稼働ログ記憶部130に緊急稼働終了日時として追加登録する。本実施例では、端末別緊急稼働ログ記憶部410中の緊急稼働終了日時(クライアント端末100とライセンスサーバ400の通信が回復したときに通信回復日時が設定される)が初期化されている(初期値が設定されている)ことが、稼働形態情報として緊急稼働状態であることを意味している。
【0119】
[ステップS54]認可判定後半処理S16bは、緊急稼働開始メッセージ「緊急稼働中」をクライアント端末100のモニタ11に表示する。本ステップは緊急稼働開始に付随する実務的な処理を行うステップである。その後、緊急稼働開始処理S38が終了する。
【0120】
[ステップS39]ライセンス取得部110の認可判定後半処理S16bでは、ライセンスサーバ400から応答なしであって、稼働形態情報が緊急稼働状態を呈するとき、緊急稼働を継続するかどうかの判定を行う。
【0121】
具体的には、緊急稼働ログ記憶部130の緊急稼働開始日時とライセンス管理DB120の緊急稼働可能期間より、緊急稼働継続可能日時を算出する。なお、緊急稼働期間の計算は、単純なカレンダを基にすることもあるし、稼働日を基にすることもある。
【0122】
もし、現在の日時が緊急稼働継続可能日時の前ならば緊急稼働継続期間中であると判定し、ステップS40の緊急稼働継続処理に進む。
そうでなければ緊急稼働継続期間中ではないと判定し、ステップS41の緊急稼働停止処理に進む。
【0123】
[ステップS40]ライセンス取得部110の認可判定後半処理S16bでは、稼働形態が緊急稼働状態を呈し、現時点が緊急稼働継続可能範囲内ならば緊急稼働を継続する。具体的には、ステップS51の認可フラグ21を”ON”に設定し、ステップS54の緊急稼働開始メッセージ出力処理を行う。すなわち、図15においてステップS52、53が不在としたときの手順を実施する。これにより実行管理部のコマンド実行管理処理に示した機構(図12)によって、コマンドが起動する。
【0124】
[ステップS41]ライセンス取得部110の認可判定後半処理S16bでは、稼働形態が緊急稼働状態を呈し、緊急稼働継続可能範囲内でないならば緊急稼働を停止する。具体的には、図16に示すように、ステップS56で認可フラグ21を”OFF”に設定し、ステップS57で緊急稼働終了メッセージ「緊急稼働停止」をクライアント端末100のモニタ11に表示する。これにより実行管理部のコマンド実行管理処理に示した機構(図12)によって、コマンドは起動されない。
【0125】
[ステップS42]ライセンス取得部110の認可判定後半処理S16bでは、応答フラグが定常稼働を許容することを意味する”OK”であるならば、定常稼働を実現する。具体的には、認可フラグ21を”ON”に設定する。これにより実行管理部コマンド実行管理処理に示した機構によって、コマンドが起動する。この後、ステップS43の定常稼働復帰処理に進む。
【0126】
[ステップS43]ライセンス取得部110の認可判定後半処理では、緊急稼働状態から定常稼働状態に復帰した場合は、特別な処理である定常稼働復帰処理を行う。
図17を用いて定常稼働復帰処理を構成するステップについて順に説明する。
【0127】
[ステップS61]定常稼働復帰処理S43を構成する最初のステップは、定常稼働状態を呈するように稼働形態情報を更新する処理である。本実施の形態の場合は、端末別緊急稼働ログ記憶部410中の緊急稼働終了日時(クライアント端末100とライセンスサーバ400との通信回復日時)が初期状態であるかどうか検査した後、初期状態であれば現時刻を緊急稼働終了日時に書き込む。これは、緊急稼働情報中の稼働形態情報が定常稼働状態を呈することを意味する。
【0128】
[ステップS62]ライセンス取得部110の認可判定後半処理S16bでは、緊急稼働終了をライセンスサーバ400に通知する。具体的には、諾否応答処理部112は、緊急稼働が終了したことを示す情報と共に、現在緊急稼働ログ記憶部130に格納されている緊急稼働ログをライセンスサーバ400に送信する。
【0129】
[ステップS63]ライセンス取得部110の認可判定後半処理S16bでは、定常稼働開始メッセージ「定常稼働開始」をクライアント端末100のモニタ11に表示する。
以上でステップS43は終了する。
【0130】
[ステップS44]ライセンス取得部110の認可判定後半処理S16bでは、応答フラグが定常稼働を許容しないことを意味する”NG”であるならば、定常稼働が実現しない状態にする。具体的には、認可フラグ21を”OFF”に設定する。これにより実行管理部コマンド実行管理処理に示した機構によって、コマンドの起動が阻止される。この後、ステップS43の定常稼働復帰処理に進む。
【0131】
以上のようにして、クライアント端末100においてアプリケーション140を緊急稼働させることができる。
次に、ライセンスサーバ400における認可判定処理を説明する。
【0132】
図18は、認可判定処理の手順を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。なお、この処理は、いずれかのクライアント端末からライセンスサーバ400に対して認可要求が送信されたときに実行される処理である。
【0133】
[ステップS81]ライセンスサーバ400の認可判定処理部470は、認可期限が過ぎているか否かを判断する。具体的には、認可判定処理部470は、認可条件記憶部420に設定された認可期限と現在時刻とを比較し、現在時刻が認可期限を過ぎているか否かを判断する。認可期限を過ぎている場合、処理がステップS82に進められる。認可期限を過ぎていない場合、処理がステップS83に進められる。
【0134】
[ステップS82]認可判定処理部470は、認可期限が過ぎている場合、認可要求を送信したクライアント端末に対して拒絶応答(拒絶を示す諾否応答)を送信する。その後、処理が終了する。
【0135】
[ステップS83]の認可判定処理部470は、認可期限が過ぎていない場合、クライアント端末100から送信された認可要求信号を受信する。
[ステップS84]認可判定処理部470は、認可端末管理DB430から、認可要求を送信したクライアント端末のMACアドレスを探索する。
【0136】
[ステップS85]認可判定処理部470は、MACアドレスが検出された場合、処理をステップS86に進める。また、認可判定処理部470は、MACアドレスが検出されなかった場合、処理をステップS88に進める。
【0137】
[ステップS86]認可判定処理部470は、認可端末管理DB430を更新する。具体的には、認可判定処理部470は、認可端末管理DB430内の認可要求を出力したクライアント端末のMACアドレスに対応付けられた認可最終要求日時を、現在の日時に更新する。
【0138】
[ステップS87]認可判定処理部470は、許諾応答(アプリケーションの使用の許諾を示す諾否応答)を、認可要求を送信したクライアント端末に送信する。その後、ライセンス管理処理が終了する。
【0139】
[ステップS88]認可判定処理部470は、認可要求を送信したクライアント端末のMACアドレスが認可端末管理DBに登録されていない場合、そのクライアント端末に対してアプリケーションの使用を許諾したときに認可可能端末数を超えるか否かを判断する。具体的には、認可判定処理部470は、認可条件記憶部420内の認可端末数が認可可能端末数以上であるか(認可端末を増加させると、認可端末数が認可可能端末数を超えるか)否かを判断する。認可端末数が認可可能端末数以上であれば、処理がステップS89に進められる。認可端末数が認可可能端末数未満であれば、処理がステップS90に進められる。
【0140】
[ステップS89]認可判定処理部470は、認可要求を送信したクライアント端末に対して拒絶応答(拒絶を示す諾否応答)を送信する。その後、ライセンス管理処理が終了する。
【0141】
[ステップS90]認可判定処理部470は、認可端末数が認可可能端末数未満であれば、認可端末管理DB430を更新する。具体的には、認可判定処理部470は、認可端末管理DB430に対して、認可要求を送信したクライアント端末に対応するレコードを追加する。そのレコードの端末MACアドレスには、認可要求を送信したクライアント端末のMACアドレスが設定される。また、現在の日時が、稼働開始日時として設定される。さらに、認可要求に含まれる認可要求サイクルが、新たに登録されたレコードの認可要求サイクルとして設定される。また、認可判定処理部470は、認可条件記憶部420内の許可端末数に1を加算する。
【0142】
[ステップS91]認可判定処理部470は、認可要求を送信したクライアント端末に対して、許諾応答(許可を示す諾否応答)を送信する。その後、ライセンス管理処理が終了する。
【0143】
このようにして、認可要求に応じた諾否判定を行うことができる。
次に、ライセンスサーバ400で行われる認可取り消し処理について説明する。
図19は、認可取り消し処理の手順を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。この処理は、所定の間隔(例えば、認可要求サイクルの最小値より短い間隔)で定期的に実行される。
【0144】
[ステップS101]認可判定処理部470は、認可期限が過ぎているか否かを判断する。具体的には、認可判定処理部470は、認可条件記憶部420に設定された認可期限と現在時刻とを比較し、現在時刻が認可期限を過ぎているか否かを判断する。認可期限を過ぎている場合、処理がステップS102に進められる。認可期限を過ぎていない場合、処理がステップS103に進められる。
【0145】
[ステップS102]認可判定処理部470は、認可期限が過ぎている場合、全てのクライアント端末の認可を取り消す。具体的には、認可判定処理部470は、認可端末管理DB430から、全てのレコードを削除する。その後、処理が終了する。
【0146】
[ステップS103]認可判定処理部470は、認可期限が過ぎていなければ、認可要求が途絶えたクライアント端末を検索する。具体的には、認可判定処理部470は、認可端末管理DB430を参照し、各クライアント端末の認可最終要求日時から現在までの経過時間と、認可要求サイクルとを比較する。そして、認可判定処理部470は、経過時間が認可要求サイクルを超えていれば、認可要求が途絶えていると判断する。
【0147】
[ステップS104]認可判定処理部470は、認可要求が途絶えたクライアント端末があるか否かを判断する。該当するクライアント端末があれば、処理がステップS105に進められる。該当するクライアント端末がなければ、処理が終了する。
【0148】
[ステップS105]認可判定処理部470は、認可要求が途絶えたクライアント端末がある場合、認可端末管理DB430を参照し、そのクライアント端末のモバイルフラグが”ON”か否かを判断する。モバイルフラグが”ON”であれば、処理がステップS106に進められる。モバイルフラグが”OFF”であれば、処理がステップS107に進められる。
【0149】
[ステップS106]認可判定処理部470は、クライアント端末のモバイル状態が、モバイル使用期限を経過しているか否かを判断する。具体的には、認可判定処理部470は、認可端末管理DB430を参照し、モバイル状態のクライアント端末のモバイル運用開始時刻から現在までの経過時間と、認可条件記憶部420に示されるモバイル使用期限とを比較する。経過時間の方が大きければ、モバイル使用期限を経過しているものと判断される。モバイル使用期限を経過している場合、処理がステップS107に進められる。モバイル使用期限を経過していなければ、処理が終了する。
【0150】
[ステップS107]認可判定処理部470は、ステップS103で検出されたクライアント端末に対するアプリケーションの使用の認可を取り消す。具体的には、認可判定処理部470は、認可端末管理DB430から、ステップS103で検出されたクライアント端末に関するレコードを削除する。その後、処理が終了する。
【0151】
このように、クライアント端末100,200,300においてアプリケーションを一定の制限下で緊急稼働可能とすることで、ライセンスサーバ400の障害、あるいはネットワーク10の通信回線障害の発生によって、クライアント端末100,200,300に搭載されたアプリケーションが使用不能状態に陥ることを回避できる。しかも、ライセンスサーバ400を冗長化する必要もないため、アプリケーションの安定運用のために必要なハードウエア、およびソフトウエア資源も少なくて済む。この際、緊急稼働ログ(緊急稼働の履歴情報)を保存しておき、障害が復旧したときに緊急稼働ログを収集することで、事後的に使用制限を超えたアプリケーションの使用の有無を判断することができる。緊急稼働があったことで使用制限を超えたアプリケーションの使用が検出された場合、ライセンス提供者は、ユーザに追加料金を請求したり、次回のライセンス提供の際に、使用可能端末数を増加させた新規契約を結ぶようにユーザに働きかけることができる。
【0152】
また、クライアント端末がオフラインの状態(ライセンスサーバ400と通信できない状態)でも、予めモバイル使用の指示を入力しておけば、所定期間内はアプリケーションの使用を可能とした。これにより、モバイル端末でアプリケーションを使用し、顧客先でアプリケーションを用いたデモンストレーションを行うといった柔軟な運用が可能となる。例えば、アプリケーションが3次元CADアプリケーションであれば、モバイル運用により、オフラインで3次元CADデータによる製品の立体表示を行うことができる。
【0153】
しかも、モバイル状態の端末については、定期的な認可要求が途絶えていても、ライセンスサーバ400において認可状態として扱うことで、モバイル状態のクライアント端末を含めて使用可能端末数をカウントすることができる。
【0154】
さらに、アプリケーションに対するコマンド実行時に認可フラグ21が”ON”であれば、そのコマンドが終了するまで実行できるようにした。すなわち、コマンド実行中に認可フラグ21が”OFF”になったとしても、既に実行されているコマンドは、そのコマンドで指示された処理の終了まで実行できる。これにより、例えばCADシステムの図形処理コマンドのように比較的処理単位が大きい(処理に時間がかかる)場合であっても、アプリケーションの機能を動的に停止させることができる。
【0155】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、クライアント端末100,200,300やライセンスサーバ400が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
【0156】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0157】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0158】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【0159】
(付記1) ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔で、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信ステップと、
前記通信ステップで前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始ステップと、
前記緊急稼働判定ステップで緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止ステップと、
前記通信ステップで前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新ステップと、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行ステップと、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止ステップと、
を実行させるアプリケーション実行制御プログラム。
【0160】
(付記2) 前記稼働形態情報として、緊急稼働を開始した日時と対をなす、前記管理対象プログラムを実行する前記コンピュータと前記ライセンス管理装置の間の通信が回復した日時を使用することを特徴とする付記1記載のアプリケーション実行制御プログラム。
【0161】
(付記3) 前記稼働状態判別情報として、緊急稼働の開始と対をなす、前記管理対象プログラムを実行するコンピュータと前記ライセンス管理装置間の通信の回復に基づいて生成したフラグを使用することを特徴とする付記1記載のアプリケーション実行制御プログラム。
【0162】
(付記4) 前記稼働状態判別情報として、緊急稼働の開始と対をなす、前記管理対象プログラムを実行するコンピュータと前記ライセンス管理装置間の通信の回復によって、前記緊急稼働を開始した日時を消去することを特徴とする付記1記載のアプリケーション実行制御プログラム。
【0163】
(付記5) 前記コンピュータに、さらに、
前記通信ステップで前記ライセンス管理装置と通信できた場合において、前記記憶手段に前記緊急稼働情報が格納されている場合、前記緊急稼働情報を前記ライセンス管理装置に送信し、前記記憶手段内の前記緊急稼働情報を消去するする初期化ステップを実行させることを特徴とする付記1記載の実行制御プログラム。
【0164】
(付記6) 前記コンピュータに、さらに、
前記コンピュータが前記ライセンス管理装置と通信できる状態でモバイル使用を指示する操作入力を受け付けた場合、所定のモバイル使用期限だけ次回の前記通信ステップの実行を延期するオフライン使用ステップを実行させることを特徴とする請求項1記載のアプリケーション実行制御プログラム。
【0165】
(付記7) 前記オフライン使用ステップでは、前記通信ステップで前記ライセンス管理装置と通信でき、かつ該ライセンス管理装置から前記認可応答を受信した後、次回の前記通信ステップの実行前に、モバイル使用を指示する操作入力を受け付けた場合、該ライセンス管理装置に対してモバイル使用通知を送信することを特徴とする付記6記載の実行制御プログラム。
【0166】
(付記8) 前記実行継続ステップでは、前記プログラム実行手段に対して前記管理対象プログラムに用意されたコマンドの実行の許可を示す認可フラグを有効に設定することで、該プログラム実行手段に該管理対象プログラムを継続して実行させ、
前記実行中断ステップでは、前記認可フラグを無効に設定することで、前記プログラム実行手段に前記管理対象プログラムの実行を中断させることを特徴とする付記1記載の実行制御プログラム。
【0167】
(付記9) ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔での、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信ステップと、
前記通信ステップで前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始ステップと、
前記緊急稼働判定ステップで緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止ステップと、
前記通信ステップで前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新ステップと、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行ステップと、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止ステップと、
を実行するアプリケーション実行制御方法。
【0168】
(付記10) ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔での、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信手段と、
前記通信手段で前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定手段と、
前記緊急稼働判定手段で緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始手段と、
前記緊急稼働判定手段で緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続手段と、
前記緊急稼働判定手段で緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止手段と、
前記通信手段で前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新手段と、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行手段と、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止手段と、
を有するアプリケーション実行制御装置。
【図面の簡単な説明】
【0169】
【図1】本実施の形態の概要を示す図である。
【図2】本実施の形態のシステム構成例を示す図である。
【図3】本実施の形態に用いるクライアント端末のハードウエア構成例を示す図である。
【図4】クライアント端末の機能を示すブロック図である。
【図5】クライアント端末のライセンス管理DBのデータ構造例を示す図である。
【図6】クライアント端末の緊急稼働ログ記憶部のデータ構造例を示す図である。
【図7】ライセンスサーバの機能を示すブロック図である。
【図8】ライセンスサーバの端末別緊急稼働ログ記憶部のデータ構造の一例を示す図である。
【図9】ライセンスサーバの認可条件記憶部のデータ構造の一例を示す図である。
【図10】ライセンスサーバの認可端末管理DBのデータ構造の一例を示す図である。
【図11】ライセンスサーバの運行ログ記憶部のデータ構造の一例を示す図である。
【図12】クライアント端末の実行管理部と諾否応答処理部で行われるコマンド実行管理処理の手順の一つの例を示す図である。
【図13】ライセンス取得部内の諾否応答処理部に属する認可判定ステップの前半の処理ステップの手順を示すフローチャートである。
【図14】ライセンス取得部における認可判定のステップS16の後半の処理ステップS16bの手順を示すフローチャートである。
【図15】緊急稼働開始処理の手順を示すフローチャートである。
【図16】緊急稼働停止処理の手順を示すフローチャートである。
【図17】定常稼働復帰処理の手順を示すフローチャートである。
【図18】諾否判定処理の手順を示すフローチャートである。
【図19】認可取り消し処理の手順を示すフローチャートである。
【符号の説明】
【0170】
1 クライアント端末
1a アプリケーション実行制御手段
1b 記憶手段
1ba 緊急稼働情報
1c プログラム実行手段
1ca 管理対象プログラム
2 ライセンス管理装置
【特許請求の範囲】
【請求項1】
ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔で、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信ステップと、
前記通信ステップで前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始ステップと、
前記緊急稼働判定ステップで緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止ステップと、
前記通信ステップで前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新ステップと、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行ステップと、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止ステップと、
を実行させるアプリケーション実行制御プログラム。
【請求項2】
前記稼働形態情報として、緊急稼働を開始した日時と対をなす、前記管理対象プログラムを実行する前記コンピュータと前記ライセンス管理装置の間の通信が回復した日時を使用することを特徴とする請求項1記載のアプリケーション実行制御プログラム。
【請求項3】
前記コンピュータに、さらに、
前記コンピュータが前記ライセンス管理装置と通信できる状態でモバイル使用を指示する操作入力を受け付けた場合、所定のモバイル使用期限だけ次回の前記通信ステップの実行を延期するオフライン使用ステップを実行させることを特徴とする請求項1記載のアプリケーション実行制御プログラム。
【請求項4】
ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔での、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信ステップと、
前記通信ステップで前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始ステップと、
前記緊急稼働判定ステップで緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止ステップと、
前記通信ステップで前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新ステップと、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行ステップと、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止ステップと、
を実行するアプリケーション実行制御方法。
【請求項5】
ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔での、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信手段と、
前記通信手段で前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定手段と、
前記緊急稼働判定手段で緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始手段と、
前記緊急稼働判定手段で緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続手段と、
前記緊急稼働判定手段で緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止手段と、
前記通信手段で前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新手段と、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行手段と、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止手段と、
を有するアプリケーション実行制御装置。
【請求項1】
ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔で、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信ステップと、
前記通信ステップで前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始ステップと、
前記緊急稼働判定ステップで緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止ステップと、
前記通信ステップで前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新ステップと、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行ステップと、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止ステップと、
を実行させるアプリケーション実行制御プログラム。
【請求項2】
前記稼働形態情報として、緊急稼働を開始した日時と対をなす、前記管理対象プログラムを実行する前記コンピュータと前記ライセンス管理装置の間の通信が回復した日時を使用することを特徴とする請求項1記載のアプリケーション実行制御プログラム。
【請求項3】
前記コンピュータに、さらに、
前記コンピュータが前記ライセンス管理装置と通信できる状態でモバイル使用を指示する操作入力を受け付けた場合、所定のモバイル使用期限だけ次回の前記通信ステップの実行を延期するオフライン使用ステップを実行させることを特徴とする請求項1記載のアプリケーション実行制御プログラム。
【請求項4】
ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔での、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信ステップと、
前記通信ステップで前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始ステップと、
前記緊急稼働判定ステップで緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続ステップと、
前記緊急稼働判定ステップで緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止ステップと、
前記通信ステップで前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新ステップと、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行ステップと、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止ステップと、
を実行するアプリケーション実行制御方法。
【請求項5】
ネットワークを介して接続されたライセンス管理装置によりライセンスが管理された管理対象プログラムを実行するコンピュータに、
所定間隔での、前記ライセンス管理装置との間の通信および前記管理対象プログラムの使用認可応答の取得を試みる通信手段と、
前記通信手段で前記コンピュータが前記ライセンス管理装置と通信できない場合、該コンピュータの記憶手段内に格納された、前記管理対象プログラムの緊急稼働開始日時および緊急稼働状態か定常稼働状態かを判別可能な稼働形態情報を含む緊急稼働情報を基にして、当該時点が緊急稼働開始可能か、緊急稼働継続可能かを判定する緊急稼働判定手段と、
前記緊急稼働判定手段で緊急稼働開始可能と判定された場合、前記緊急稼働情報に前記緊急稼働開始日時を書き込み、緊急稼働状態を呈するように稼働形態情報を設定し、前記管理対象プログラムの実行を制御するプログラム実行手段に、前記管理対象プログラムを稼働させる緊急稼働開始手段と、
前記緊急稼働判定手段で緊急稼働継続可能と判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させる緊急稼働継続手段と、
前記緊急稼働判定手段で緊急稼働開始可能、緊急稼働継続可能のいずれでもないと判定された場合、前記プログラム実行手段に前記管理対象プログラムを実行させない緊急稼働停止手段と、
前記通信手段で前記ライセンス管理装置と通信できた場合、前記稼働形態情報が定常稼働状態を呈するように設定する定常稼働状態更新手段と、該ライセンス管理装置から前記認可応答を受信したならば前記プログラム実行手段に前記管理対象プログラムを実行させる定常稼働実行手段と、該ライセンス管理装置から前記認可応答を受信できなかったならば前記プログラム実行手段に該管理対象プログラムの実行を中断させる定常稼働停止手段と、
を有するアプリケーション実行制御装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2009−245288(P2009−245288A)
【公開日】平成21年10月22日(2009.10.22)
【国際特許分類】
【出願番号】特願2008−92700(P2008−92700)
【出願日】平成20年3月31日(2008.3.31)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成21年10月22日(2009.10.22)
【国際特許分類】
【出願日】平成20年3月31日(2008.3.31)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]