(57)【特許請求の範囲】
【請求項１】
クライアントと、クライアントによって実行されるソフトウエアのライセンス管理を行なうサーバとを備え、クライアントがソフトウエアの起動要求を行なったときに、クライアントはライセンス認証要求をサーバに通知し、サーバはライセンス認証要求が通知されたときに、上記クライアントによる上記ソフトウエアの実行を許可するか否かを判定し、その判定結果をクライアントに通知し、クライアントはサーバによって通知された判定結果に応じて上記ソフトウエアの実行を許可または禁止するソフトウエアのライセンス管理システムにおいて、サーバは、ライセンス情報の暗号文が記憶された記憶手段、ならびに、ライセンス認証要求がクライアントから通知されたときに、記憶手段からライセンス情報の暗号文を読み出して解読し、得られた平文のライセンス情報に基づいて、上記クライアントによる上記ソフトウエアの実行を許可するか否かを判定する手段を備え、
ライセンス情報の暗号文は、平文のライセンス情報を暗号化キーを用いて暗号化することにより生成されたものであり、平文のライセンス情報に含まれている各項目に予め優先順位が付けられており、優先順位の高いものから順に、その項目が暗号化キーとして適切か否かが判定され、最初に暗号化キーとして適切であると判定された項目が暗号化キーとされることを特徴とするソフトウエアのライセンス管理システム。
【請求項２】
平文のライセンス情報に含まれている全ての項目が、暗号化キーとして適切でないと判定された場合には、予め定められた固定値が暗号化キーとされる請求項１に記載のソフトウエアのライセンス管理システム。
【請求項３】
クライアントと、クライアントによって実行されるソフトウエアのライセンス管理を行なうサーバとを備え、クライアントがソフトウエアの起動要求を行なったときに、クライアントはライセンス認証要求をサーバに通知し、サーバはライセンス認証要求が通知されたときに、上記クライアントによる上記ソフトウエアの実行を許可するか否かを判定し、その判定結果をクライアントに通知し、クライアントはサーバによって通知された判定結果に応じて上記ソフトウエアの実行を許可または禁止するソフトウエアのライセンス管理システムにおいて、サーバは、ライセンス情報の暗号文が記憶された記憶手段、ならびに、ライセンス認証要求がクライアントから通知されたときに、記憶手段からライセンス情報の暗号文を読み出して解読し、得られた平文のライセンス情報に基づいて、上記クライアントによる上記ソフトウエアの実行を許可するか否かを判定する手段を備え、
ライセンス情報の暗号文は、平文のライセンス情報を暗号化キーを用いて暗号化することにより生成されたものであり、平文のライセンス情報に含まれている各項目内に複数桁の数字で表される項目が少なくとも１つ存在しており、平文のライセンス情報に含まれている各項目に１から順番に番号が付けられており、複数桁の数字で表される所定の１つの項目の全ての桁の加算値が求められ、全項目数以下の数値が得られるまで、加算値の１桁目の数値から全項目数が所要回数減算され、得られた全項目数以下の数値に対応する番号を持つ項目が暗号化キーとされることを特徴とするソフトウエアのライセンス管理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ソフトウエアのライセンスを管理するシステムに関する。
【０００２】
【従来の技術】
アプリケーションソフトウエア等のソフトウエアの使用権（ライセンス）の管理を、ライセンス管理サーバを利用して行なうシステムが既に開発されている。
【０００３】
このようなシステムでは、図１に示すように、ＬＡＮ等のネットワーク１に、アプリケーションソフトウエア（以下、アプリケーションという）を実行するための複数のクライアント２と、アプリケーションの使用権を管理するためのライセンス管理サーバ３とが接続されている。
【０００４】
ライセンス管理サーバ３は、ライセンス情報を記憶したライセンスファイル４を備えている。ライセンス情報には、マシンＩＤ、アプリケーション名、有効期限、同時実行数等がある。同時実行数とは、当該アプリケーションを同時に実行できるクライアント数をいう。
【０００５】
図７は、クライアント２とライセンス管理サーバ３との処理手順を示している。ライセンス管理サーバ３によって行なわれるライセンス管理処理は、ライセンス管理プログラムによって実行される。
【０００６】
クライアント２側においてアプリケーションの起動要求が行なわれた場合には（ステップ１１１でＹＥＳ）、クライアント２は、当該クライアントのマシンＩＤおよび起動要求のあったアプリケーション名を含むライセンス認証要求をライセンス管理サーバ３に送信する（ステップ１１２）。
【０００７】
ライセンス管理サーバ３は、ライセンス認証要求を受信すると、ライセンスファイル４に記憶されているライセンス情報を読み出し（ステップ１２１）、当該クライアント２が当該アプリケーションを実行できるか否かを判定する（ステップ１２２）。
【０００８】
当該クライアント２が当該アプリケーションを実行できると判定した場合には、実行許可を示す認証結果をクライアント２に送信するとともに（ステップ１２４）、当該アプリケーションを現在実行しているクライアント数をカウントするカウンタの内容ｋを１だけインクリメントする（ステップ１２５）。当該クライアント２が当該アプリケーションを実行できないと判定した場合には、実行不許可を示す認証結果を、クライアント２に送信する（ステップ１２３）。
【０００９】
実行許可を示す認証結果をクライアント２が受信した場合には（ステップ１１３でＹＥＳ）、アプリケーションが起動されて実行される（ステップ１１４）。実行不許可を示す認証結果をクライアント２が受信した場合には（ステップ１１３でＮＯ）、アプリケーションは起動されない。
【００１０】
アプリケーションが実行された後、アプリケーションが終了した場合には（ステップ１１５）、クライアント２からアプリケーション名を含む終了通知が行なわれる（ステップ１１６）。ライセンス管理サーバ３は、終了通知を受信すると、当該アプリケーションを現在実行しているクライアント数を記憶するカウンタの内容ｋを１だけデクリメントする（ステップ１２６）。
【００１１】
上述したように、ライセンス管理サーバ３は、ライセンス認証要求を受信すると、ライセンスファイル４に記憶されているライセンス情報を読み出して、当該クライアント２が当該アプリケーションを実行できるか否かを判定している。しかしながら、このようなシステムでは、ライセンスファイル４に記憶されているライセンス情報が改ざんされた場合には、正常なライセンス管理が行なえなくなるという問題がある。
【００１２】
【発明が解決しようとする課題】
この発明は、不正が行なわれにくいソフトウエアのライセンス管理システムを提供することを目的とする。
【００１３】
【課題を解決するための手段】
この発明によるソフトウエアのライセンス管理システムは、クライアントと、クライアントによって実行されるソフトウエアのライセンス管理を行なうサーバとを備え、クライアントがソフトウエアの起動要求を行なったときに、クライアントはライセンス認証要求をサーバに通知し、サーバはライセンス認証要求が通知されたときに、上記クライアントによる上記ソフトウエアの実行を許可するか否かを判定し、その判定結果をクライアントに通知し、クライアントはサーバによって通知された判定結果に応じて上記ソフトウエアの実行を許可または禁止するソフトウエアのライセンス管理システムにおいて、サーバは、ライセンス情報の暗号文が記憶された記憶手段、ならびに、ライセンス認証要求がクライアントから通知されたときに、記憶手段からライセンス情報の暗号文を読み出して解読し、得られた平文のライセンス情報に基づいて、上記クライアントによる上記ソフトウエアの実行を許可するか否かを判定する手段を備え、ライセンス情報の暗号文は、平文のライセンス情報を暗号化キーを用いて暗号化することにより生成されたものであり、平文のライセンス情報に含まれている各項目に予め優先順位が付けられており、優先順位の高いものから順に、その項目が暗号化キーとして適切か否かが判定され、最初に暗号化キーとして適切であると判定された項目が暗号化キーとされることを特徴とする。
【００１５】
なお、平文のライセンス情報に含まれている全ての項目が、暗号化キーとして適切でないと判定された場合には、予め定められた固定値を暗号化キーとしてもよい。
【００１６】
また、暗号化キーを、次のようにして決定してもよい。平文のライセンス情報に含まれている各項目内に複数桁の数字で表される項目が少なくとも１つ存在しているものとする。平文のライセンス情報に含まれている各項目に１から順番に番号を付けておく。複数桁の数字で表される所定の１つの項目の全ての桁の加算値を求める。全項目数以下の数値が得られるまで、加算値の１桁目の数値から全項目数を所要回数減算する。そして、得られた全項目数以下の数値に対応する番号を持つ項目を暗号化キーとする。
【００１７】
【発明の実施の形態】
以下、図面を参照して、この発明の実施の形態について説明する。
【００１８】
図１は、ソフトウエアのライセンス管理システムの構成を示している。
【００１９】
このシステムでは、ＬＡＮ等のネットワーク１に、アプリケーションを実行するための複数のクライアント２と、アプリケーションの使用権を管理するための１つのライセンス管理サーバ３とが接続されている。
【００２０】
クライアント２としては、ワークステーション、パーソナルコンピュータ等が用いられる。ライセンス管理サーバ３は、アプリケーションの使用権を管理するためのライセンス管理プログラム、データを管理するためのデータ管理プログラム等の各種プログラム（ソフトウエア）を備えている。
【００２１】
ライセンス管理サーバ３は、クライアント２が実行するアプリケーションに関するライセンス情報を記憶したライセンスファイル４を備えている。図２は、ライセンスファイル４の内容の一例を示している。
【００２２】
ライセンスファイル４内には、ライセンス契約毎に、ライセンス情報およびライセンス情報の暗号文が格納されている。ライセンス情報には、この例では、クライアント２のマシンＩＤ、アプリケーション名、有効期限および同時実行数の４つの項目が含まれている。同時実行数とは、当該アプリケーションを同時に実行できるクライアント数をいう。
【００２３】
この例では、マシンＩＤは、５桁の数字を表すデータから構成されている。有効期限が無期限である場合には、”００／００／００００”のデータが使用されている。また、同時実行数が無制限である場合は、”０”のデータが使用されている。
【００２４】
ライセンス情報に対応する暗号文を格納しているのは、ライセンスファイル４内の平文のライセンス情報が改ざんされた場合にも、正しいライセンス情報をライセンス管理サーバ３が取得できるようにするためである。暗号文は、暗号化キーを用いて、ライセンス情報の平文から作成される。
【００２５】
図３は、クライアント２とライセンス管理サーバ３との処理手順を示している。ライセンス管理サーバ３によって行なわれるライセンス管理処理は、ライセンス管理プログラムによって実行される。ライセンス管理サーバ３側において、ライセンス管理プログラムが立ち上げられるごとに、異なる識別データ（以下、継続実行判定用ＩＤという）が発行される。
【００２６】
クライアント２がアプリケーションの起動要求を行なった場合には（ステップ１１でＹＥＳ）、当該クライアントのマシンＩＤおよび起動要求のあったアプリケーション名を含むライセンス認証要求がクライアント２からライセンス管理サーバ３に送信される（ステップ１２）。
【００２７】
ライセンス管理サーバ３は、ライセンス認証要求を受信すると、受信したマシンＩＤおよびアプリケーション名に対応するライセンス情報の暗号文をライセンスファイル４から読み出して（ステップ２１）、解読する（ステップ２２）。そして、解読されたライセンス情報に基づいて、当該クライアント２が当該アプリケーションを実行できるか否かを判定する（ステップ２３）。
【００２８】
具体的には、暗号文から得られたマシンＩＤおよびアプリケーション名がクライアントから送られてきたマシンＩＤおよびアプリケーション名と一致するか否か、現在の年月日が暗号文から得られた有効期限内であるか否か、当該アプリケーションを現在実行しているクライアント数が暗号文から得られた同時実行数以内かどうか等が検査される。
【００２９】
暗号文から得られたマシンＩＤおよびアプリケーション名がクライアントから送られてきたマシンＩＤおよびアプリケーション名と一致し、現在の年月日が暗号文から得られた有効期限内であり、当該アプリケーションを現在実行しているクライアント数が暗号文から得られた同時実行数以内である場合には、当該クライアント２は当該アプリケーションを実行できると判定する。そうでない場合には、当該クライアント２は当該アプリケーションを実行できないと判定する。
【００３０】
当該クライアント２が当該アプリケーションを実行できると判定した場合には、実行許可を示す認証結果および継続実行判定用ＩＤをクライアント２に送信するとともに（ステップ２５）、当該アプリケーションを現在実行しているクライアント数を記憶するカウンタの内容ｋを１だけインクリメントする（ステップ２６）。継続実行判定用ＩＤとしては、たとえば、現在起動しているライセンス管理プログラムが立ち上げられた時点での時刻が用いられる。当該クライアント２が当該アプリケーションを実行できないと判定すれば、実行不許可を示す認証結果を、クライアント２に送信する（ステップ２４）。
【００３１】
実行許可を示す認証結果および継続実行判定用ＩＤをクライアント２が受信した場合には（ステップ１３でＹＥＳ）、アプリケーションが起動されて実行される（ステップ１４）。実行不許可を示す認証結果をクライアント２が受信した場合には（ステップ１３でＮＯ）、アプリケーションは起動されない。
【００３２】
アプリケーションが起動された後においては、所定時間間隔で、クライアント２から、当該クライアントのマシンＩＤおよび継続実行判定用ＩＤを含む継続実行許可要求がライセンス管理サーバ３に送信される（ステップ１５）。
【００３３】
ライセンス管理サーバ３は、継続実行許可要求を受信すると、継続実行許可要求に含まれている継続実行判定用ＩＤが、現在発行されている継続実行判定用ＩＤと同じであるか否かを検査する（ステップ２７）。受信した継続実行判定用ＩＤが、現在発行されている継続実行判定用ＩＤと同じである場合には、継続実行許可要求を行なったクライアント２に対して、継続実行許可を通知する（ステップ２９）。受信した継続実行判定用ＩＤが、現在発行されている継続実行判定用ＩＤと同じでない場合には、継続実行許可要求を行なったクライアント２に対して、継続実行不許可を通知する（ステップ２８）。
【００３４】
継続実行許可がクライアント２に通知された場合には（ステップ１６でＹＥＳ）、アプリケーションが継続して実行される（ステップ１８）。継続実行不許可がクライアント２に通知された場合には（ステップ１６でＮＯ）、アプリケーションが強制終了される（ステップ１７）。図３では、継続実行許可要求は１回分しか記載されていないが、継続実行許可要求に対して継続実行不許可が通知されない限り、当該アプリケーションが終了するまで、断続的に継続実行許可要求が送信される。
【００３５】
アプリケーションが起動された後に、アプリケーションが正常に終了した場合には（ステップ１９）、クライアント２からアプリケーション名を含む終了通知が行なわれる（ステップ２０）。ライセンス管理サーバ３は、終了通知を受信すると、当該アプリケーションを現在実行しているクライアント数を記憶するカウンタの内容ｋを１だけデクリメントする（ステップ３０）。
【００３６】
あるクライアント２において、所定のアプリケーションが起動されて実行されているものとする。このような状況において、ライセンス管理プログラムが立ち上げ直された場合においては、上記アプリケーションを現在実行しているクライアント数をカウントするカウンタが初期化されるので、カウンタの内容ｋは０となる。また、ライセンス管理サーバ３のライセンス管理プログラムが立ち上げ直されると、継続実行判定用ＩＤが新たに発行される。つまり、継続実行判定用ＩＤが更新される。
【００３７】
ライセンス管理プログラムが立ち上げ直される場合としては、ライセンス管理サーバ３の電源がオフされた後にオンされることにより、ライセンス管理プログラムが立ち上げ直される場合、ライセンス管理サーバ３がリセットされることにより、ライセンス管理プログラムが立ち上げ直される場合、またはライセンス管理サーバ３のライセンス管理プログラムが強制終了せしめられた後に立ち上げ直される場合がある。
【００３８】
ライセンス管理プログラムが立ち上げ直された後において、ライセンス管理プログラムが立ち上げ直される前から継続して上記アプリケーションを実行しているクライアント２から、継続実行許可要求がライセンス管理サーバ３に初めて送信されてきた場合の動作について説明する。この場合には、継続実行許可要求に含まれている継続実行判定用ＩＤは、ライセンス管理プログラムが立ち上げ直される前にライセンス管理サーバ３によって発行された継続実行判定用ＩＤである。このため、継続実行許可要求に含まれている継続実行判定用ＩＤと、ライセンス管理サーバ３によって現在発行されている継続実行判定用ＩＤとは一致しない。したがって、継続実行許可要求を行なったクライアント２に対して、継続実行不許可が通知され、当該クライアント２において実行されているアプリケーションが強制終了せしめられる。
【００３９】
つまり、ライセンス管理サーバ３のライセンス管理プログラムが立ち上げ直された後において、ライセンス管理プログラムが立ち上げ直される前からアプリケーションを実行しているクライアント２から、継続実行許可要求がライセンス管理サーバ３に初めて送信されてくると、実行不許可が当該クライアント２に通知され、当該クライアント２で実行されている当該アプリケーションが強制終了せしめられる。
【００４０】
したがって、ライセンス管理サーバ３のライセンス管理プログラムが立ち上げ直された場合において、ライセンス管理プログラムが立ち上げ直される前からアプリケーションを実行していたクライアント２が存在していたとしても、ライセンス管理プログラムが立ち上げ直された後の一定期間内に、それらのクライアント２において上記アプリケーションの継続実行が禁止される。このため、ライセンス管理サーバ３のライセンス管理プログラムが立ち上げ直されることに起因して、ライセンス契約で定められた同時実行数より多い数のクライアントによってアプリケーションが同時に実行されれるといったことが回避される。
【００４１】
なお、継続実行判定用ＩＤとしては、ライセンス管理サーバ３のＯＳによって発行されるプロセスＩＤを用いてもよい。プロセスＩＤとは、複数のプログラム（ライセンス管理プログラム、データ管理プログラム等）が立ち上げられている場合に、個々のプログラムに対して発行されるＩＤをいう。
【００４２】
上記実施の形態では、アプリケーションが起動された後においては、所定時間間隔で、クライアント２から、当該クライアントのマシンＩＤおよび継続実行判定用ＩＤを含む継続実行許可要求がライセンス管理サーバ３に送信されているが、継続実行許可要求を行なわないシステムにもこの発明を適用することができる。つまり、ステップ１５、１６、１７、１８の処理およびステップ２７、２８、２９の処理を行なわないシステムにもこの発明を適用することができきる。のようなシステムでは、ライセンス管理サーバ３は、継続実行判定用ＩＤを発行する必要はない。
【００４３】
上述したように、暗号文は、暗号化キーを用いて作成される。暗号化キーとしては、たとえば、固定値が用いられる。しかしながら、暗号化キーとして固定値を用いると、第３者に解読されやすいという問題がある。
【００４４】
そこで、暗号化キーとして暗号化前の平文であるライセンス情報に含まれている項目（マシンＩＤ、アプリケーション名、有効期限、同時実行数）の一つを用いることが好ましい。しかしながら、暗号化キーとしてマシンＩＤを用いた場合において、ライセンス管理サーバ３が管理するクライアント２が少ない場合には、暗号化キーが特定され易くなり、第３者に解読されやすいという問題がある。
【００４５】
また、暗号化キーとしてアプリケーション名を用いた場合において、ライセンス管理サーバ３が管理するアプリケーション数が少ない場合には、暗号化キーが特定され易くなり、第３者に解読されやすいという問題がある。また、暗号化キーとして有効期限を用いた場合において、有効期限が無制限である場合には、暗号化キーが特定され易くなり、第３者に解読されやすいという問題がある。同様に、暗号化キーとして同時実行数を用いた場合において、同時実行数が無制限である場合には、暗号化キーが特定され易くなり、第３者に解読されやすいという問題がある。そこで、暗号化キーを次のようにして、決定することが好ましい。
【００４６】
図４は、暗号化キーを決定するための処理手順を示している。
【００４７】
暗号化キーとしては、暗号化前の平文のライセンス情報に含まれている各項目（マシンＩＤ、アプリケーション名、有効期限または同時実行数）もしくは固定値のうちから選択された１つが用いられる。平文のライセンス情報に含まれている各項目には、優先順位１、２、３、４が予め付けられている。優先順位１が最も優先度が高いことを示し、優先順位４が最も優先度が低いことを示している。
【００４８】
まず、優先順位を表す変数ｊに１が設定される（ステップ３１）。そして、優先順位ｊの項目が暗号化キーとして適切か否かが判別される（ステップ３２）。適切であると判定された場合には、優先順位ｊの項目が暗号化キーとして決定される（ステップ３３）。
【００４９】
ステップ３２において、優先順位ｊの項目が暗号化キーとして適切でないと判定された場合には、変数ｊが１だけインクリメントされる（ステップ３４）。そして、変数ｊが４を越えたか否かが判定される（ステップ３５）。変数ｊが４を越えてなければ、ステップ３２に戻り、ステップ３２〜３５の処理が再度行なわれる。
【００５０】
優先順位１〜４までの各項目とも、暗号化キーとして適切でない場合には、ステップ３５でＹＥＳとなる。この場合には、固定値が暗号化キーとして用いられる（ステップ３６）。
【００５１】
優先順位ｊの項目が暗号化キーとして適切か否かの判定は、たとえば次のようにして行なわれる。優先順位ｊの項目がマシンＩＤである場合には、ライセンス管理サーバ３が管理するクライアント数が所定値より多ければ、マシンＩＤが暗号化キーとして適切であると判定される。優先順位ｊの項目がアプリケーション名である場合には、ライセンス管理サーバ３が管理するアプリケーションの種類が所定値より多ければ、アプリケーション名が暗号化キーとして適切であると判定される。優先順位ｊの項目が有効期限である場合には、その有効期限が無制限でなければ、有効期限が暗号化キーとして適切であると判定される。優先順位ｊの項目が同時実行数である場合には、その同時実行数が無制限でなければ、同時実行数が暗号化キーとして適切であると判定される。
【００５２】
このようにして決定された暗号化キーを用いて暗号文が作成された場合において、ライセンス管理サーバ３が暗号文を解読する際には、図４と同じ処理を行なうことによって、暗号化キーが求められ、求められた暗号化キーを用いて暗号文の解読が行なわれる。
【００５３】
図５は、暗号化キーを決定するための他の処理手順を示している。
【００５４】
暗号化キーとしては、暗号化前の平文のライセンス情報に含まれているマシンＩＤ、アプリケーション名、有効期限または同時実行数のうちから選択された１つが用いられる。これらの各項目を暗号化キー対象項目ということにする。各暗号化キー対象項目には、１〜４の識別番号が付けられている。また、マシンＩＤとしては、５桁の数字を表すデータが用いられているものとする。
【００５５】
まず、平文であるマシンＩＤの各桁の合計値が算出される（ステップ４１）。そして、合計値の１桁目の値をｘとする（ステップ４２）。
【００５６】
次に、ｘが暗号化キー対象項目数以下であるか否かが判定される（ステップ４３）。つまり、この例では、ｘが４以下か否かが判定される。
【００５７】
ｘが暗号化キー対象項目数以下でない場合、すなわち、ｘが５以上である場合には、ｘから暗号化キー対象項目数が減算された後（ステップ４４）、ステップ４３に戻る。ステップ４３において、ｘが暗号化キー対象項目数以下であると判定された場合には、ｘに対応する識別番号をもつ項目が暗号化キーに決定される（ステップ４５）。
【００５８】
このようにして決定された暗号化キーを用いて暗号文が作成された場合において、ライセンス管理サーバ３が暗号文を解読する際には、図５と同じ処理を行なうことによって、暗号化キーが求められ、求められた暗号化キーを用いて暗号文の解読が行なわれる。
【００５９】
ところで、ライセンス管理システムにおいて、１つのライセンス管理サーバのみが設けられている場合には、そのライセンス管理サーバが何らかの原因によってダウンした場合には、クライアントはアプリケーションを起動できなくなってしまう。そこで、ライセンス管理システムにおいては、複数のライセンス管理サーバを設けておくことが好ましい。
【００６０】
図６は、複数のライセンス管理サーバが設けられている場合において、クライアントがアプリケーションの起動要求を行なった場合にクライアントによって実行される処理の手順を示している。
【００６１】
各ライセンス管理サーバには、０〜ｎの連番の識別番号が付けられているものとする。
【００６２】
まず、ライセンス管理サーバの識別番号を表す変数ｉに０がセットされる（ステップ５１）。次に、識別番号ｉのサーバに対して、ライセンス認証要求が行なわれる（ステップ５２）。この認証要求を行なった後、所定時間以内に認証結果を受信した場合には（ステップ５３でＹＥＳ）、受信した認証結果が、実行許可の認証結果であるか、実行不許可の認証結果であるかが判定される（ステップ５５）。
【００６３】
実行許可の認証結果である場合には、アプリケーションが起動せしめられて実行される。実行不許可の認証結果である場合には、アプリケーションは起動されずに、今回の処理は終了する。
【００６４】
上記ステップ５２において識別番号ｉのサーバに対してライセンス認証要求が行なわた後、所定時間以内に認証結果が受信されなかったときには（ステップ５３でＮＯ、ステップ５４でＹＥＳ）、ライセンス管理サーバの識別番号を表す変数ｉが１だけインクリメントされる（ステップ５６）。そして、更新された変数ｉが、サーバ総数ｎより大きいか否かが判定される（ステップ５７）。
【００６５】
更新された変数ｉが、サーバ総数ｎ以下である場合には、ステップ５２に戻り、識別番号ｉのサーバに対して、ライセンス認証要求が行なわれる。そして、ステップ５３以降の処理が再度実行される。ステップ５７において、更新された変数ｉが、サーバ総数ｎより大きいと判定された場合には、アプリケーションは起動されずに、今回の処理は終了する。
【００６６】
【発明の効果】
この発明によれば、不正が行なわれにくいソフトウエアのライセンス管理システムが実現する。
【図面の簡単な説明】
【図１】ソフトウエアのライセンス管理システムの構成を示すブロック図である。
【図２】ライセンスファイルの内容の一例を示す模式図である。
【図３】クライアントとライセンス管理サーバとの処理手順を示すフローチャートである。
【図４】暗号化キーを決定するための処理手順を示すフローチャートである。
【図５】暗号化キーを決定するための他の処理手順を示すフローチャートである。
【図６】複数のライセンス管理サーバが設けられている場合において、クライアントがアプリケーションの起動要求を行なった場合に、クライアントによって実行される処理手順を示すフローチャートである。
【図７】クライアントとライセンス管理サーバとの従来の処理手順を示すフローチャートである。
【符号の説明】
１  ネットワーク
２  クライアント
３  ライセンス管理サーバ
４  ライセンスファイル
【図１】
0003540506.tif 000002
【図２】
0003540506.tif 000003
【図３】
0003540506.tif 000004
【図４】
0003540506.tif 000005
【図５】
0003540506.tif 000006
【図６】
0003540506.tif 000007
【図７】
0003540506.tif 000008